# Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Generated by admin/import-aws-lc from aws-lc 91c93a8eb860e51482a871a8772cb9b1b310baea:
# generated-src/linux-x86_64/crypto/fipsmodule/vpaes-x86_64.S, which aws-lc generates from crypto/fipsmodule/aes/asm/vpaes-x86_64.pl.
# Do not edit by hand.
.cfi_startproc
xchgq %rcx,%rdx
testq %rcx,%rcx
jz .Lvpaes_ctr32_abort
movdqu (%r8),%xmm0
movdqa {vpaes_consts}+800(%rip),%xmm8
subq %rdi,%rsi
call {vpaes_preheat}
movdqa %xmm0,%xmm6
pshufb {vpaes_consts}+784(%rip),%xmm6
testq $1,%rcx
jz .Lvpaes_ctr32_prep_loop
movdqu (%rdi),%xmm7
call {vpaes_encrypt_core}
pxor %xmm7,%xmm0
paddd %xmm8,%xmm6
movdqu %xmm0,(%rsi,%rdi,1)
subq $1,%rcx
leaq 16(%rdi),%rdi
jz .Lvpaes_ctr32_done
.Lvpaes_ctr32_prep_loop:
movdqa %xmm6,%xmm14
movdqa %xmm6,%xmm15
paddd %xmm8,%xmm15
.Lvpaes_ctr32_loop:
movdqa {vpaes_consts}+784(%rip),%xmm1
movdqa %xmm14,%xmm0
movdqa %xmm15,%xmm6
.byte 102,15,56,0,193
.byte 102,15,56,0,241
call {vpaes_encrypt_core_2x}
movdqu (%rdi),%xmm1
movdqu 16(%rdi),%xmm2
movdqa {vpaes_consts}+816(%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
jnz .Lvpaes_ctr32_loop
.Lvpaes_ctr32_done:
.Lvpaes_ctr32_abort:
.byte 0xf3,0xc3
.cfi_endproc