Blame lib/accelerated/x86/coff/aesni-x86.s

Packit Service 991b93
# Copyright (c) 2011-2016, Andy Polyakov <appro@openssl.org>
Packit aea12f
# All rights reserved.
Packit aea12f
#
Packit aea12f
# Redistribution and use in source and binary forms, with or without
Packit aea12f
# modification, are permitted provided that the following conditions
Packit aea12f
# are met:
Packit aea12f
# 
Packit aea12f
#     * Redistributions of source code must retain copyright notices,
Packit aea12f
#      this list of conditions and the following disclaimer.
Packit aea12f
#
Packit aea12f
#     * Redistributions in binary form must reproduce the above
Packit aea12f
#      copyright notice, this list of conditions and the following
Packit aea12f
#      disclaimer in the documentation and/or other materials
Packit aea12f
#      provided with the distribution.
Packit aea12f
#
Packit aea12f
#     * Neither the name of the Andy Polyakov nor the names of its
Packit aea12f
#      copyright holder and contributors may be used to endorse or
Packit aea12f
#      promote products derived from this software without specific
Packit aea12f
#      prior written permission.
Packit aea12f
#
Packit aea12f
# ALTERNATIVELY, provided that this notice is retained in full, this
Packit aea12f
# product may be distributed under the terms of the GNU General Public
Packit aea12f
# License (GPL), in which case the provisions of the GPL apply INSTEAD OF
Packit aea12f
# those given above.
Packit aea12f
#
Packit aea12f
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
Packit aea12f
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit aea12f
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Packit aea12f
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Packit aea12f
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
Packit aea12f
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Packit aea12f
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Packit aea12f
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Packit aea12f
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Packit aea12f
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit aea12f
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit aea12f
#
Packit aea12f
# *** This file is auto-generated ***
Packit aea12f
#
Packit aea12f
.text
Packit aea12f
.globl	_aesni_encrypt
Packit aea12f
.def	_aesni_encrypt;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_encrypt:
Packit aea12f
.L_aesni_encrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movl	4(%esp),%eax
Packit aea12f
	movl	12(%esp),%edx
Packit aea12f
	movups	(%eax),%xmm2
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movl	8(%esp),%eax
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
.L000enc1_loop_1:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit aea12f
	jnz	.L000enc1_loop_1
Packit aea12f
.byte	102,15,56,221,209
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit aea12f
	movups	%xmm2,(%eax)
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_decrypt
Packit aea12f
.def	_aesni_decrypt;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_decrypt:
Packit aea12f
.L_aesni_decrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movl	4(%esp),%eax
Packit aea12f
	movl	12(%esp),%edx
Packit aea12f
	movups	(%eax),%xmm2
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movl	8(%esp),%eax
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
.L001dec1_loop_2:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit aea12f
	jnz	.L001dec1_loop_2
Packit aea12f
.byte	102,15,56,223,209
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit aea12f
	movups	%xmm2,(%eax)
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	ret
Packit Service 991b93
.def	__aesni_encrypt2;	.scl	3;	.type	32;	.endef
Packit Service 991b93
.align	16
Packit Service 991b93
__aesni_encrypt2:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit Service 991b93
	movups	(%edx),%xmm0
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movups	16(%edx),%xmm1
Packit Service 991b93
	xorps	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	movups	32(%edx),%xmm0
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
.L002enc2_loop:
Packit Service 991b93
.byte	102,15,56,220,209
Packit Service 991b93
.byte	102,15,56,220,217
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit Service 991b93
.byte	102,15,56,220,208
Packit Service 991b93
.byte	102,15,56,220,216
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L002enc2_loop
Packit Service 991b93
.byte	102,15,56,220,209
Packit Service 991b93
.byte	102,15,56,220,217
Packit Service 991b93
.byte	102,15,56,221,208
Packit Service 991b93
.byte	102,15,56,221,216
Packit Service 991b93
	ret
Packit Service 991b93
.def	__aesni_decrypt2;	.scl	3;	.type	32;	.endef
Packit Service 991b93
.align	16
Packit Service 991b93
__aesni_decrypt2:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit Service 991b93
	movups	(%edx),%xmm0
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movups	16(%edx),%xmm1
Packit Service 991b93
	xorps	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	movups	32(%edx),%xmm0
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
.L003dec2_loop:
Packit Service 991b93
.byte	102,15,56,222,209
Packit Service 991b93
.byte	102,15,56,222,217
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit Service 991b93
.byte	102,15,56,222,208
Packit Service 991b93
.byte	102,15,56,222,216
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L003dec2_loop
Packit Service 991b93
.byte	102,15,56,222,209
Packit Service 991b93
.byte	102,15,56,222,217
Packit Service 991b93
.byte	102,15,56,223,208
Packit Service 991b93
.byte	102,15,56,223,216
Packit aea12f
	ret
Packit aea12f
.def	__aesni_encrypt3;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_encrypt3:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movups	(%edx),%xmm0
Packit Service 991b93
	shll	$4,%ecx
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm4
Packit Service 991b93
	movups	32(%edx),%xmm0
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
.L004enc3_loop:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,220,225
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,220,208
Packit aea12f
.byte	102,15,56,220,216
Packit aea12f
.byte	102,15,56,220,224
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L004enc3_loop
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,220,225
Packit aea12f
.byte	102,15,56,221,208
Packit aea12f
.byte	102,15,56,221,216
Packit aea12f
.byte	102,15,56,221,224
Packit aea12f
	ret
Packit aea12f
.def	__aesni_decrypt3;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_decrypt3:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movups	(%edx),%xmm0
Packit Service 991b93
	shll	$4,%ecx
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm4
Packit Service 991b93
	movups	32(%edx),%xmm0
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
.L005dec3_loop:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
.byte	102,15,56,222,217
Packit aea12f
.byte	102,15,56,222,225
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,222,208
Packit aea12f
.byte	102,15,56,222,216
Packit aea12f
.byte	102,15,56,222,224
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L005dec3_loop
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
.byte	102,15,56,222,217
Packit aea12f
.byte	102,15,56,222,225
Packit aea12f
.byte	102,15,56,223,208
Packit aea12f
.byte	102,15,56,223,216
Packit aea12f
.byte	102,15,56,223,224
Packit aea12f
	ret
Packit aea12f
.def	__aesni_encrypt4;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_encrypt4:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit Service 991b93
	shll	$4,%ecx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm4
Packit aea12f
	pxor	%xmm0,%xmm5
Packit Service 991b93
	movups	32(%edx),%xmm0
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
.byte	15,31,64,0
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
.L006enc4_loop:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,220,225
Packit aea12f
.byte	102,15,56,220,233
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,220,208
Packit aea12f
.byte	102,15,56,220,216
Packit aea12f
.byte	102,15,56,220,224
Packit aea12f
.byte	102,15,56,220,232
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L006enc4_loop
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,220,225
Packit aea12f
.byte	102,15,56,220,233
Packit aea12f
.byte	102,15,56,221,208
Packit aea12f
.byte	102,15,56,221,216
Packit aea12f
.byte	102,15,56,221,224
Packit aea12f
.byte	102,15,56,221,232
Packit aea12f
	ret
Packit aea12f
.def	__aesni_decrypt4;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_decrypt4:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit Service 991b93
	shll	$4,%ecx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm4
Packit aea12f
	pxor	%xmm0,%xmm5
Packit Service 991b93
	movups	32(%edx),%xmm0
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
.byte	15,31,64,0
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
.L007dec4_loop:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
.byte	102,15,56,222,217
Packit aea12f
.byte	102,15,56,222,225
Packit aea12f
.byte	102,15,56,222,233
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,222,208
Packit aea12f
.byte	102,15,56,222,216
Packit aea12f
.byte	102,15,56,222,224
Packit aea12f
.byte	102,15,56,222,232
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L007dec4_loop
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
.byte	102,15,56,222,217
Packit aea12f
.byte	102,15,56,222,225
Packit aea12f
.byte	102,15,56,222,233
Packit aea12f
.byte	102,15,56,223,208
Packit aea12f
.byte	102,15,56,223,216
Packit aea12f
.byte	102,15,56,223,224
Packit aea12f
.byte	102,15,56,223,232
Packit aea12f
	ret
Packit aea12f
.def	__aesni_encrypt6;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_encrypt6:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movups	(%edx),%xmm0
Packit Service 991b93
	shll	$4,%ecx
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm4
Packit Service 991b93
.byte	102,15,56,220,209
Packit aea12f
	pxor	%xmm0,%xmm5
Packit aea12f
	pxor	%xmm0,%xmm6
Packit Service 991b93
.byte	102,15,56,220,217
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
.byte	102,15,56,220,225
Packit aea12f
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm0
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
	jmp	.L008_aesni_encrypt6_inner
Packit aea12f
.align	16
Packit Service 991b93
.L009enc6_loop:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,220,225
Packit Service 991b93
.L008_aesni_encrypt6_inner:
Packit aea12f
.byte	102,15,56,220,233
Packit aea12f
.byte	102,15,56,220,241
Packit aea12f
.byte	102,15,56,220,249
Packit aea12f
.L_aesni_encrypt6_enter:
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,220,208
Packit aea12f
.byte	102,15,56,220,216
Packit aea12f
.byte	102,15,56,220,224
Packit aea12f
.byte	102,15,56,220,232
Packit aea12f
.byte	102,15,56,220,240
Packit aea12f
.byte	102,15,56,220,248
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L009enc6_loop
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,220,225
Packit aea12f
.byte	102,15,56,220,233
Packit aea12f
.byte	102,15,56,220,241
Packit aea12f
.byte	102,15,56,220,249
Packit aea12f
.byte	102,15,56,221,208
Packit aea12f
.byte	102,15,56,221,216
Packit aea12f
.byte	102,15,56,221,224
Packit aea12f
.byte	102,15,56,221,232
Packit aea12f
.byte	102,15,56,221,240
Packit aea12f
.byte	102,15,56,221,248
Packit aea12f
	ret
Packit aea12f
.def	__aesni_decrypt6;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_decrypt6:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movups	(%edx),%xmm0
Packit Service 991b93
	shll	$4,%ecx
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm4
Packit Service 991b93
.byte	102,15,56,222,209
Packit aea12f
	pxor	%xmm0,%xmm5
Packit aea12f
	pxor	%xmm0,%xmm6
Packit Service 991b93
.byte	102,15,56,222,217
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	negl	%ecx
Packit Service 991b93
.byte	102,15,56,222,225
Packit aea12f
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm0
Packit Service 991b93
	addl	$16,%ecx
Packit Service 991b93
	jmp	.L010_aesni_decrypt6_inner
Packit aea12f
.align	16
Packit Service 991b93
.L011dec6_loop:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
.byte	102,15,56,222,217
Packit aea12f
.byte	102,15,56,222,225
Packit Service 991b93
.L010_aesni_decrypt6_inner:
Packit aea12f
.byte	102,15,56,222,233
Packit aea12f
.byte	102,15,56,222,241
Packit aea12f
.byte	102,15,56,222,249
Packit aea12f
.L_aesni_decrypt6_enter:
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,222,208
Packit aea12f
.byte	102,15,56,222,216
Packit aea12f
.byte	102,15,56,222,224
Packit aea12f
.byte	102,15,56,222,232
Packit aea12f
.byte	102,15,56,222,240
Packit aea12f
.byte	102,15,56,222,248
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L011dec6_loop
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
.byte	102,15,56,222,217
Packit aea12f
.byte	102,15,56,222,225
Packit aea12f
.byte	102,15,56,222,233
Packit aea12f
.byte	102,15,56,222,241
Packit aea12f
.byte	102,15,56,222,249
Packit aea12f
.byte	102,15,56,223,208
Packit aea12f
.byte	102,15,56,223,216
Packit aea12f
.byte	102,15,56,223,224
Packit aea12f
.byte	102,15,56,223,232
Packit aea12f
.byte	102,15,56,223,240
Packit aea12f
.byte	102,15,56,223,248
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_ecb_encrypt
Packit aea12f
.def	_aesni_ecb_encrypt;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_ecb_encrypt:
Packit aea12f
.L_aesni_ecb_encrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit aea12f
	movl	36(%esp),%ebx
Packit aea12f
	andl	$-16,%eax
Packit Service 991b93
	jz	.L012ecb_ret
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	testl	%ebx,%ebx
Packit Service 991b93
	jz	.L013ecb_decrypt
Packit aea12f
	movl	%edx,%ebp
Packit aea12f
	movl	%ecx,%ebx
Packit aea12f
	cmpl	$96,%eax
Packit Service 991b93
	jb	.L014ecb_enc_tail
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	movdqu	80(%esi),%xmm7
Packit aea12f
	leal	96(%esi),%esi
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jmp	.L015ecb_enc_loop6_enter
Packit aea12f
.align	16
Packit Service 991b93
.L016ecb_enc_loop6:
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit aea12f
	movdqu	80(%esi),%xmm7
Packit aea12f
	leal	96(%esi),%esi
Packit Service 991b93
.L015ecb_enc_loop6_enter:
Packit aea12f
	call	__aesni_encrypt6
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jnc	.L016ecb_enc_loop6
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit aea12f
	addl	$96,%eax
Packit Service 991b93
	jz	.L012ecb_ret
Packit Service 991b93
.L014ecb_enc_tail:
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	cmpl	$32,%eax
Packit Service 991b93
	jb	.L017ecb_enc_one
Packit aea12f
	movups	16(%esi),%xmm3
Packit Service 991b93
	je	.L018ecb_enc_two
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	cmpl	$64,%eax
Packit Service 991b93
	jb	.L019ecb_enc_three
Packit aea12f
	movups	48(%esi),%xmm5
Packit Service 991b93
	je	.L020ecb_enc_four
Packit aea12f
	movups	64(%esi),%xmm6
Packit aea12f
	xorps	%xmm7,%xmm7
Packit aea12f
	call	__aesni_encrypt6
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L017ecb_enc_one:
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L021enc1_loop_3:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L021enc1_loop_3
Packit aea12f
.byte	102,15,56,221,209
Packit aea12f
	movups	%xmm2,(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L018ecb_enc_two:
Packit Service 991b93
	call	__aesni_encrypt2
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L019ecb_enc_three:
Packit aea12f
	call	__aesni_encrypt3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L020ecb_enc_four:
Packit aea12f
	call	__aesni_encrypt4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L013ecb_decrypt:
Packit aea12f
	movl	%edx,%ebp
Packit aea12f
	movl	%ecx,%ebx
Packit aea12f
	cmpl	$96,%eax
Packit Service 991b93
	jb	.L022ecb_dec_tail
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	movdqu	80(%esi),%xmm7
Packit aea12f
	leal	96(%esi),%esi
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jmp	.L023ecb_dec_loop6_enter
Packit aea12f
.align	16
Packit Service 991b93
.L024ecb_dec_loop6:
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit aea12f
	movdqu	80(%esi),%xmm7
Packit aea12f
	leal	96(%esi),%esi
Packit Service 991b93
.L023ecb_dec_loop6_enter:
Packit aea12f
	call	__aesni_decrypt6
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jnc	.L024ecb_dec_loop6
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit aea12f
	addl	$96,%eax
Packit Service 991b93
	jz	.L012ecb_ret
Packit Service 991b93
.L022ecb_dec_tail:
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	cmpl	$32,%eax
Packit Service 991b93
	jb	.L025ecb_dec_one
Packit aea12f
	movups	16(%esi),%xmm3
Packit Service 991b93
	je	.L026ecb_dec_two
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	cmpl	$64,%eax
Packit Service 991b93
	jb	.L027ecb_dec_three
Packit aea12f
	movups	48(%esi),%xmm5
Packit Service 991b93
	je	.L028ecb_dec_four
Packit aea12f
	movups	64(%esi),%xmm6
Packit aea12f
	xorps	%xmm7,%xmm7
Packit aea12f
	call	__aesni_decrypt6
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L025ecb_dec_one:
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L029dec1_loop_4:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L029dec1_loop_4
Packit aea12f
.byte	102,15,56,223,209
Packit aea12f
	movups	%xmm2,(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L026ecb_dec_two:
Packit Service 991b93
	call	__aesni_decrypt2
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L027ecb_dec_three:
Packit aea12f
	call	__aesni_decrypt3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit Service 991b93
	jmp	.L012ecb_ret
Packit aea12f
.align	16
Packit Service 991b93
.L028ecb_dec_four:
Packit aea12f
	call	__aesni_decrypt4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit Service 991b93
.L012ecb_ret:
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_ccm64_encrypt_blocks
Packit aea12f
.def	_aesni_ccm64_encrypt_blocks;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_ccm64_encrypt_blocks:
Packit aea12f
.L_aesni_ccm64_encrypt_blocks_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit aea12f
	movl	36(%esp),%ebx
Packit aea12f
	movl	40(%esp),%ecx
Packit aea12f
	movl	%esp,%ebp
Packit aea12f
	subl	$60,%esp
Packit aea12f
	andl	$-16,%esp
Packit aea12f
	movl	%ebp,48(%esp)
Packit aea12f
	movdqu	(%ebx),%xmm7
Packit aea12f
	movdqu	(%ecx),%xmm3
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movl	$202182159,(%esp)
Packit aea12f
	movl	$134810123,4(%esp)
Packit aea12f
	movl	$67438087,8(%esp)
Packit aea12f
	movl	$66051,12(%esp)
Packit aea12f
	movl	$1,%ebx
Packit aea12f
	xorl	%ebp,%ebp
Packit aea12f
	movl	%ebx,16(%esp)
Packit aea12f
	movl	%ebp,20(%esp)
Packit aea12f
	movl	%ebp,24(%esp)
Packit aea12f
	movl	%ebp,28(%esp)
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movl	$16,%ebx
Packit aea12f
	leal	(%edx),%ebp
Packit aea12f
	movdqa	(%esp),%xmm5
Packit aea12f
	movdqa	%xmm7,%xmm2
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	subl	%ecx,%ebx
Packit aea12f
.byte	102,15,56,0,253
Packit Service 991b93
.L030ccm64_enc_outer:
Packit aea12f
	movups	(%ebp),%xmm0
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	movups	(%esi),%xmm6
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	movups	16(%ebp),%xmm1
Packit aea12f
	xorps	%xmm6,%xmm0
Packit aea12f
	xorps	%xmm0,%xmm3
Packit Service 991b93
	movups	32(%ebp),%xmm0
Packit Service 991b93
.L031ccm64_enc2_loop:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,220,208
Packit aea12f
.byte	102,15,56,220,216
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L031ccm64_enc2_loop
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
	paddq	16(%esp),%xmm7
Packit Service 991b93
	decl	%eax
Packit aea12f
.byte	102,15,56,221,208
Packit aea12f
.byte	102,15,56,221,216
Packit aea12f
	leal	16(%esi),%esi
Packit aea12f
	xorps	%xmm2,%xmm6
Packit aea12f
	movdqa	%xmm7,%xmm2
Packit aea12f
	movups	%xmm6,(%edi)
Packit aea12f
.byte	102,15,56,0,213
Packit Service 991b93
	leal	16(%edi),%edi
Packit Service 991b93
	jnz	.L030ccm64_enc_outer
Packit aea12f
	movl	48(%esp),%esp
Packit aea12f
	movl	40(%esp),%edi
Packit aea12f
	movups	%xmm3,(%edi)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_ccm64_decrypt_blocks
Packit aea12f
.def	_aesni_ccm64_decrypt_blocks;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_ccm64_decrypt_blocks:
Packit aea12f
.L_aesni_ccm64_decrypt_blocks_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit aea12f
	movl	36(%esp),%ebx
Packit aea12f
	movl	40(%esp),%ecx
Packit aea12f
	movl	%esp,%ebp
Packit aea12f
	subl	$60,%esp
Packit aea12f
	andl	$-16,%esp
Packit aea12f
	movl	%ebp,48(%esp)
Packit aea12f
	movdqu	(%ebx),%xmm7
Packit aea12f
	movdqu	(%ecx),%xmm3
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movl	$202182159,(%esp)
Packit aea12f
	movl	$134810123,4(%esp)
Packit aea12f
	movl	$67438087,8(%esp)
Packit aea12f
	movl	$66051,12(%esp)
Packit aea12f
	movl	$1,%ebx
Packit aea12f
	xorl	%ebp,%ebp
Packit aea12f
	movl	%ebx,16(%esp)
Packit aea12f
	movl	%ebp,20(%esp)
Packit aea12f
	movl	%ebp,24(%esp)
Packit aea12f
	movl	%ebp,28(%esp)
Packit aea12f
	movdqa	(%esp),%xmm5
Packit aea12f
	movdqa	%xmm7,%xmm2
Packit aea12f
	movl	%edx,%ebp
Packit aea12f
	movl	%ecx,%ebx
Packit aea12f
.byte	102,15,56,0,253
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L032enc1_loop_5:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L032enc1_loop_5
Packit aea12f
.byte	102,15,56,221,209
Packit Service 991b93
	shll	$4,%ebx
Packit Service 991b93
	movl	$16,%ecx
Packit aea12f
	movups	(%esi),%xmm6
Packit aea12f
	paddq	16(%esp),%xmm7
Packit aea12f
	leal	16(%esi),%esi
Packit Service 991b93
	subl	%ebx,%ecx
Packit Service 991b93
	leal	32(%ebp,%ebx,1),%edx
Packit Service 991b93
	movl	%ecx,%ebx
Packit Service 991b93
	jmp	.L033ccm64_dec_outer
Packit aea12f
.align	16
Packit Service 991b93
.L033ccm64_dec_outer:
Packit aea12f
	xorps	%xmm2,%xmm6
Packit aea12f
	movdqa	%xmm7,%xmm2
Packit aea12f
	movups	%xmm6,(%edi)
Packit aea12f
	leal	16(%edi),%edi
Packit aea12f
.byte	102,15,56,0,213
Packit aea12f
	subl	$1,%eax
Packit Service 991b93
	jz	.L034ccm64_dec_break
Packit aea12f
	movups	(%ebp),%xmm0
Packit Service 991b93
	movl	%ebx,%ecx
Packit aea12f
	movups	16(%ebp),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm6
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit Service 991b93
	movups	32(%ebp),%xmm0
Packit Service 991b93
.L035ccm64_dec2_loop:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit Service 991b93
	movups	(%edx,%ecx,1),%xmm1
Packit Service 991b93
	addl	$32,%ecx
Packit aea12f
.byte	102,15,56,220,208
Packit aea12f
.byte	102,15,56,220,216
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
	jnz	.L035ccm64_dec2_loop
Packit aea12f
	movups	(%esi),%xmm6
Packit aea12f
	paddq	16(%esp),%xmm7
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
.byte	102,15,56,221,208
Packit aea12f
.byte	102,15,56,221,216
Packit Service 991b93
	leal	16(%esi),%esi
Packit Service 991b93
	jmp	.L033ccm64_dec_outer
Packit aea12f
.align	16
Packit Service 991b93
.L034ccm64_dec_break:
Packit Service 991b93
	movl	240(%ebp),%ecx
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm6
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm6,%xmm3
Packit Service 991b93
.L036enc1_loop_6:
Packit aea12f
.byte	102,15,56,220,217
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L036enc1_loop_6
Packit aea12f
.byte	102,15,56,221,217
Packit aea12f
	movl	48(%esp),%esp
Packit aea12f
	movl	40(%esp),%edi
Packit aea12f
	movups	%xmm3,(%edi)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_ctr32_encrypt_blocks
Packit aea12f
.def	_aesni_ctr32_encrypt_blocks;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_ctr32_encrypt_blocks:
Packit aea12f
.L_aesni_ctr32_encrypt_blocks_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit aea12f
	movl	36(%esp),%ebx
Packit aea12f
	movl	%esp,%ebp
Packit aea12f
	subl	$88,%esp
Packit aea12f
	andl	$-16,%esp
Packit aea12f
	movl	%ebp,80(%esp)
Packit aea12f
	cmpl	$1,%eax
Packit Service 991b93
	je	.L037ctr32_one_shortcut
Packit aea12f
	movdqu	(%ebx),%xmm7
Packit aea12f
	movl	$202182159,(%esp)
Packit aea12f
	movl	$134810123,4(%esp)
Packit aea12f
	movl	$67438087,8(%esp)
Packit aea12f
	movl	$66051,12(%esp)
Packit aea12f
	movl	$6,%ecx
Packit aea12f
	xorl	%ebp,%ebp
Packit aea12f
	movl	%ecx,16(%esp)
Packit aea12f
	movl	%ecx,20(%esp)
Packit aea12f
	movl	%ecx,24(%esp)
Packit aea12f
	movl	%ebp,28(%esp)
Packit aea12f
.byte	102,15,58,22,251,3
Packit aea12f
.byte	102,15,58,34,253,3
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	bswap	%ebx
Packit aea12f
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit aea12f
	movdqa	(%esp),%xmm2
Packit Service 991b93
.byte	102,15,58,34,195,0
Packit aea12f
	leal	3(%ebx),%ebp
Packit Service 991b93
.byte	102,15,58,34,205,0
Packit aea12f
	incl	%ebx
Packit Service 991b93
.byte	102,15,58,34,195,1
Packit aea12f
	incl	%ebp
Packit Service 991b93
.byte	102,15,58,34,205,1
Packit aea12f
	incl	%ebx
Packit Service 991b93
.byte	102,15,58,34,195,2
Packit aea12f
	incl	%ebp
Packit Service 991b93
.byte	102,15,58,34,205,2
Packit Service 991b93
	movdqa	%xmm0,48(%esp)
Packit aea12f
.byte	102,15,56,0,194
Packit Service 991b93
	movdqu	(%edx),%xmm6
Packit Service 991b93
	movdqa	%xmm1,64(%esp)
Packit Service 991b93
.byte	102,15,56,0,202
Packit Service 991b93
	pshufd	$192,%xmm0,%xmm2
Packit Service 991b93
	pshufd	$128,%xmm0,%xmm3
Packit aea12f
	cmpl	$6,%eax
Packit Service 991b93
	jb	.L038ctr32_tail
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movl	$16,%ebx
Packit aea12f
	movdqa	%xmm7,32(%esp)
Packit aea12f
	movl	%edx,%ebp
Packit Service 991b93
	subl	%ecx,%ebx
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit aea12f
	subl	$6,%eax
Packit Service 991b93
	jmp	.L039ctr32_loop6
Packit Service 991b93
.align	16
Packit Service 991b93
.L039ctr32_loop6:
Packit Service 991b93
	pshufd	$64,%xmm0,%xmm4
Packit Service 991b93
	movdqa	32(%esp),%xmm0
Packit Service 991b93
	pshufd	$192,%xmm1,%xmm5
Packit aea12f
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pshufd	$128,%xmm1,%xmm6
Packit aea12f
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pshufd	$64,%xmm1,%xmm7
Packit Service 991b93
	movups	16(%ebp),%xmm1
Packit aea12f
	pxor	%xmm0,%xmm4
Packit aea12f
	pxor	%xmm0,%xmm5
Packit Service 991b93
.byte	102,15,56,220,209
Packit aea12f
	pxor	%xmm0,%xmm6
Packit aea12f
	pxor	%xmm0,%xmm7
Packit Service 991b93
.byte	102,15,56,220,217
Packit Service 991b93
	movups	32(%ebp),%xmm0
Packit Service 991b93
	movl	%ebx,%ecx
Packit Service 991b93
.byte	102,15,56,220,225
Packit Service 991b93
.byte	102,15,56,220,233
Packit aea12f
.byte	102,15,56,220,241
Packit aea12f
.byte	102,15,56,220,249
Packit aea12f
	call	.L_aesni_encrypt6_enter
Packit aea12f
	movups	(%esi),%xmm1
Packit aea12f
	movups	16(%esi),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm2
Packit aea12f
	movups	32(%esi),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movdqa	16(%esp),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm4
Packit Service 991b93
	movdqa	64(%esp),%xmm1
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	paddd	%xmm0,%xmm1
Packit Service 991b93
	paddd	48(%esp),%xmm0
Packit aea12f
	movdqa	(%esp),%xmm2
Packit aea12f
	movups	48(%esi),%xmm3
Packit aea12f
	movups	64(%esi),%xmm4
Packit aea12f
	xorps	%xmm3,%xmm5
Packit aea12f
	movups	80(%esi),%xmm3
Packit aea12f
	leal	96(%esi),%esi
Packit Service 991b93
	movdqa	%xmm0,48(%esp)
Packit Service 991b93
.byte	102,15,56,0,194
Packit aea12f
	xorps	%xmm4,%xmm6
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	xorps	%xmm3,%xmm7
Packit Service 991b93
	movdqa	%xmm1,64(%esp)
Packit Service 991b93
.byte	102,15,56,0,202
Packit aea12f
	movups	%xmm6,64(%edi)
Packit Service 991b93
	pshufd	$192,%xmm0,%xmm2
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit Service 991b93
	pshufd	$128,%xmm0,%xmm3
Packit aea12f
	subl	$6,%eax
Packit Service 991b93
	jnc	.L039ctr32_loop6
Packit aea12f
	addl	$6,%eax
Packit Service 991b93
	jz	.L040ctr32_ret
Packit Service 991b93
	movdqu	(%ebp),%xmm7
Packit aea12f
	movl	%ebp,%edx
Packit Service 991b93
	pxor	32(%esp),%xmm7
Packit Service 991b93
	movl	240(%ebp),%ecx
Packit Service 991b93
.L038ctr32_tail:
Packit aea12f
	por	%xmm7,%xmm2
Packit aea12f
	cmpl	$2,%eax
Packit Service 991b93
	jb	.L041ctr32_one
Packit Service 991b93
	pshufd	$64,%xmm0,%xmm4
Packit aea12f
	por	%xmm7,%xmm3
Packit Service 991b93
	je	.L042ctr32_two
Packit Service 991b93
	pshufd	$192,%xmm1,%xmm5
Packit aea12f
	por	%xmm7,%xmm4
Packit aea12f
	cmpl	$4,%eax
Packit Service 991b93
	jb	.L043ctr32_three
Packit Service 991b93
	pshufd	$128,%xmm1,%xmm6
Packit aea12f
	por	%xmm7,%xmm5
Packit Service 991b93
	je	.L044ctr32_four
Packit aea12f
	por	%xmm7,%xmm6
Packit aea12f
	call	__aesni_encrypt6
Packit aea12f
	movups	(%esi),%xmm1
Packit aea12f
	movups	16(%esi),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm2
Packit aea12f
	movups	32(%esi),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm3
Packit aea12f
	movups	48(%esi),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm4
Packit aea12f
	movups	64(%esi),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm5
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	%xmm1,%xmm6
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit Service 991b93
	jmp	.L040ctr32_ret
Packit aea12f
.align	16
Packit Service 991b93
.L037ctr32_one_shortcut:
Packit aea12f
	movups	(%ebx),%xmm2
Packit aea12f
	movl	240(%edx),%ecx
Packit Service 991b93
.L041ctr32_one:
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L045enc1_loop_7:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L045enc1_loop_7
Packit aea12f
.byte	102,15,56,221,209
Packit aea12f
	movups	(%esi),%xmm6
Packit aea12f
	xorps	%xmm2,%xmm6
Packit aea12f
	movups	%xmm6,(%edi)
Packit Service 991b93
	jmp	.L040ctr32_ret
Packit aea12f
.align	16
Packit Service 991b93
.L042ctr32_two:
Packit Service 991b93
	call	__aesni_encrypt2
Packit aea12f
	movups	(%esi),%xmm5
Packit aea12f
	movups	16(%esi),%xmm6
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit Service 991b93
	jmp	.L040ctr32_ret
Packit aea12f
.align	16
Packit Service 991b93
.L043ctr32_three:
Packit aea12f
	call	__aesni_encrypt3
Packit aea12f
	movups	(%esi),%xmm5
Packit aea12f
	movups	16(%esi),%xmm6
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	32(%esi),%xmm7
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit Service 991b93
	jmp	.L040ctr32_ret
Packit aea12f
.align	16
Packit Service 991b93
.L044ctr32_four:
Packit aea12f
	call	__aesni_encrypt4
Packit aea12f
	movups	(%esi),%xmm6
Packit aea12f
	movups	16(%esi),%xmm7
Packit aea12f
	movups	32(%esi),%xmm1
Packit aea12f
	xorps	%xmm6,%xmm2
Packit aea12f
	movups	48(%esi),%xmm0
Packit aea12f
	xorps	%xmm7,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	%xmm1,%xmm4
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	xorps	%xmm0,%xmm5
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit Service 991b93
.L040ctr32_ret:
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	movdqa	%xmm0,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	movdqa	%xmm0,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	movdqa	%xmm0,64(%esp)
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit aea12f
	movl	80(%esp),%esp
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_xts_encrypt
Packit aea12f
.def	_aesni_xts_encrypt;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_xts_encrypt:
Packit aea12f
.L_aesni_xts_encrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit aea12f
	movl	36(%esp),%edx
Packit aea12f
	movl	40(%esp),%esi
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L046enc1_loop_8:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L046enc1_loop_8
Packit aea12f
.byte	102,15,56,221,209
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit aea12f
	movl	%esp,%ebp
Packit aea12f
	subl	$120,%esp
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	andl	$-16,%esp
Packit aea12f
	movl	$135,96(%esp)
Packit aea12f
	movl	$0,100(%esp)
Packit aea12f
	movl	$1,104(%esp)
Packit aea12f
	movl	$0,108(%esp)
Packit aea12f
	movl	%eax,112(%esp)
Packit aea12f
	movl	%ebp,116(%esp)
Packit aea12f
	movdqa	%xmm2,%xmm1
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	96(%esp),%xmm3
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	andl	$-16,%eax
Packit aea12f
	movl	%edx,%ebp
Packit aea12f
	movl	%ecx,%ebx
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jc	.L047xts_enc_short
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movl	$16,%ebx
Packit Service 991b93
	subl	%ecx,%ebx
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	jmp	.L048xts_enc_loop6
Packit aea12f
.align	16
Packit Service 991b93
.L048xts_enc_loop6:
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,16(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,32(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,48(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm7
Packit aea12f
	movdqa	%xmm1,64(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	movups	(%ebp),%xmm0
Packit aea12f
	pand	%xmm3,%xmm7
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	pxor	%xmm1,%xmm7
Packit Service 991b93
	movl	%ebx,%ecx
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	pxor	%xmm0,%xmm4
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	pxor	%xmm0,%xmm5
Packit aea12f
	movdqu	80(%esi),%xmm1
Packit aea12f
	pxor	%xmm0,%xmm6
Packit aea12f
	leal	96(%esi),%esi
Packit aea12f
	pxor	(%esp),%xmm2
Packit aea12f
	movdqa	%xmm7,80(%esp)
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
	movups	16(%ebp),%xmm1
Packit aea12f
	pxor	16(%esp),%xmm3
Packit aea12f
	pxor	32(%esp),%xmm4
Packit Service 991b93
.byte	102,15,56,220,209
Packit aea12f
	pxor	48(%esp),%xmm5
Packit aea12f
	pxor	64(%esp),%xmm6
Packit Service 991b93
.byte	102,15,56,220,217
Packit aea12f
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movups	32(%ebp),%xmm0
Packit Service 991b93
.byte	102,15,56,220,225
Packit Service 991b93
.byte	102,15,56,220,233
Packit aea12f
.byte	102,15,56,220,241
Packit aea12f
.byte	102,15,56,220,249
Packit aea12f
	call	.L_aesni_encrypt6_enter
Packit aea12f
	movdqa	80(%esp),%xmm1
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	32(%esp),%xmm4
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	xorps	48(%esp),%xmm5
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	xorps	64(%esp),%xmm6
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	xorps	%xmm1,%xmm7
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit aea12f
	movdqa	96(%esp),%xmm3
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jnc	.L048xts_enc_loop6
Packit Service 991b93
	movl	240(%ebp),%ecx
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ecx,%ebx
Packit Service 991b93
.L047xts_enc_short:
Packit aea12f
	addl	$96,%eax
Packit Service 991b93
	jz	.L049xts_enc_done6x
Packit aea12f
	movdqa	%xmm1,%xmm5
Packit aea12f
	cmpl	$32,%eax
Packit Service 991b93
	jb	.L050xts_enc_one
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit Service 991b93
	je	.L051xts_enc_two
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,%xmm6
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	cmpl	$64,%eax
Packit Service 991b93
	jb	.L052xts_enc_three
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,%xmm7
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	movdqa	%xmm5,(%esp)
Packit aea12f
	movdqa	%xmm6,16(%esp)
Packit Service 991b93
	je	.L053xts_enc_four
Packit aea12f
	movdqa	%xmm7,32(%esp)
Packit aea12f
	pshufd	$19,%xmm0,%xmm7
Packit aea12f
	movdqa	%xmm1,48(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm7
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	pxor	(%esp),%xmm2
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	pxor	16(%esp),%xmm3
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	pxor	32(%esp),%xmm4
Packit aea12f
	leal	80(%esi),%esi
Packit aea12f
	pxor	48(%esp),%xmm5
Packit aea12f
	movdqa	%xmm7,64(%esp)
Packit aea12f
	pxor	%xmm7,%xmm6
Packit aea12f
	call	__aesni_encrypt6
Packit aea12f
	movaps	64(%esp),%xmm1
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	xorps	32(%esp),%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	48(%esp),%xmm5
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	xorps	%xmm1,%xmm6
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	leal	80(%edi),%edi
Packit Service 991b93
	jmp	.L054xts_enc_done
Packit aea12f
.align	16
Packit Service 991b93
.L050xts_enc_one:
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	leal	16(%esi),%esi
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L055enc1_loop_9:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L055enc1_loop_9
Packit aea12f
.byte	102,15,56,221,209
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	leal	16(%edi),%edi
Packit aea12f
	movdqa	%xmm5,%xmm1
Packit Service 991b93
	jmp	.L054xts_enc_done
Packit aea12f
.align	16
Packit Service 991b93
.L051xts_enc_two:
Packit aea12f
	movaps	%xmm1,%xmm6
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	leal	32(%esi),%esi
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit Service 991b93
	call	__aesni_encrypt2
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	leal	32(%edi),%edi
Packit aea12f
	movdqa	%xmm6,%xmm1
Packit Service 991b93
	jmp	.L054xts_enc_done
Packit aea12f
.align	16
Packit Service 991b93
.L052xts_enc_three:
Packit aea12f
	movaps	%xmm1,%xmm7
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	leal	48(%esi),%esi
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	call	__aesni_encrypt3
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	leal	48(%edi),%edi
Packit aea12f
	movdqa	%xmm7,%xmm1
Packit Service 991b93
	jmp	.L054xts_enc_done
Packit aea12f
.align	16
Packit Service 991b93
.L053xts_enc_four:
Packit aea12f
	movaps	%xmm1,%xmm6
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	movups	48(%esi),%xmm5
Packit aea12f
	leal	64(%esi),%esi
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	xorps	%xmm6,%xmm5
Packit aea12f
	call	__aesni_encrypt4
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	%xmm6,%xmm5
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	leal	64(%edi),%edi
Packit aea12f
	movdqa	%xmm6,%xmm1
Packit Service 991b93
	jmp	.L054xts_enc_done
Packit aea12f
.align	16
Packit Service 991b93
.L049xts_enc_done6x:
Packit aea12f
	movl	112(%esp),%eax
Packit aea12f
	andl	$15,%eax
Packit Service 991b93
	jz	.L056xts_enc_ret
Packit aea12f
	movdqa	%xmm1,%xmm5
Packit aea12f
	movl	%eax,112(%esp)
Packit Service 991b93
	jmp	.L057xts_enc_steal
Packit aea12f
.align	16
Packit Service 991b93
.L054xts_enc_done:
Packit aea12f
	movl	112(%esp),%eax
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	andl	$15,%eax
Packit Service 991b93
	jz	.L056xts_enc_ret
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	movl	%eax,112(%esp)
Packit aea12f
	pshufd	$19,%xmm0,%xmm5
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	96(%esp),%xmm5
Packit aea12f
	pxor	%xmm1,%xmm5
Packit Service 991b93
.L057xts_enc_steal:
Packit aea12f
	movzbl	(%esi),%ecx
Packit aea12f
	movzbl	-16(%edi),%edx
Packit aea12f
	leal	1(%esi),%esi
Packit aea12f
	movb	%cl,-16(%edi)
Packit aea12f
	movb	%dl,(%edi)
Packit aea12f
	leal	1(%edi),%edi
Packit aea12f
	subl	$1,%eax
Packit Service 991b93
	jnz	.L057xts_enc_steal
Packit aea12f
	subl	112(%esp),%edi
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	movups	-16(%edi),%xmm2
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L058enc1_loop_10:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L058enc1_loop_10
Packit aea12f
.byte	102,15,56,221,209
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	%xmm2,-16(%edi)
Packit Service 991b93
.L056xts_enc_ret:
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	movdqa	%xmm0,(%esp)
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	movdqa	%xmm0,16(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	movdqa	%xmm0,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	movdqa	%xmm0,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	movdqa	%xmm0,64(%esp)
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
	movdqa	%xmm0,80(%esp)
Packit aea12f
	movl	116(%esp),%esp
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_xts_decrypt
Packit aea12f
.def	_aesni_xts_decrypt;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_xts_decrypt:
Packit aea12f
.L_aesni_xts_decrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit aea12f
	movl	36(%esp),%edx
Packit aea12f
	movl	40(%esp),%esi
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L059enc1_loop_11:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L059enc1_loop_11
Packit aea12f
.byte	102,15,56,221,209
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit aea12f
	movl	%esp,%ebp
Packit aea12f
	subl	$120,%esp
Packit aea12f
	andl	$-16,%esp
Packit aea12f
	xorl	%ebx,%ebx
Packit aea12f
	testl	$15,%eax
Packit aea12f
	setnz	%bl
Packit aea12f
	shll	$4,%ebx
Packit aea12f
	subl	%ebx,%eax
Packit aea12f
	movl	$135,96(%esp)
Packit aea12f
	movl	$0,100(%esp)
Packit aea12f
	movl	$1,104(%esp)
Packit aea12f
	movl	$0,108(%esp)
Packit aea12f
	movl	%eax,112(%esp)
Packit aea12f
	movl	%ebp,116(%esp)
Packit aea12f
	movl	240(%edx),%ecx
Packit aea12f
	movl	%edx,%ebp
Packit aea12f
	movl	%ecx,%ebx
Packit aea12f
	movdqa	%xmm2,%xmm1
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	96(%esp),%xmm3
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	andl	$-16,%eax
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jc	.L060xts_dec_short
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movl	$16,%ebx
Packit Service 991b93
	subl	%ecx,%ebx
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	jmp	.L061xts_dec_loop6
Packit aea12f
.align	16
Packit Service 991b93
.L061xts_dec_loop6:
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,16(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,32(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,48(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	pshufd	$19,%xmm0,%xmm7
Packit aea12f
	movdqa	%xmm1,64(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	movups	(%ebp),%xmm0
Packit aea12f
	pand	%xmm3,%xmm7
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	pxor	%xmm1,%xmm7
Packit Service 991b93
	movl	%ebx,%ecx
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	xorps	%xmm0,%xmm2
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	pxor	%xmm0,%xmm4
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	pxor	%xmm0,%xmm5
Packit aea12f
	movdqu	80(%esi),%xmm1
Packit aea12f
	pxor	%xmm0,%xmm6
Packit aea12f
	leal	96(%esi),%esi
Packit aea12f
	pxor	(%esp),%xmm2
Packit aea12f
	movdqa	%xmm7,80(%esp)
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
	movups	16(%ebp),%xmm1
Packit aea12f
	pxor	16(%esp),%xmm3
Packit aea12f
	pxor	32(%esp),%xmm4
Packit Service 991b93
.byte	102,15,56,222,209
Packit aea12f
	pxor	48(%esp),%xmm5
Packit aea12f
	pxor	64(%esp),%xmm6
Packit Service 991b93
.byte	102,15,56,222,217
Packit aea12f
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movups	32(%ebp),%xmm0
Packit Service 991b93
.byte	102,15,56,222,225
Packit Service 991b93
.byte	102,15,56,222,233
Packit aea12f
.byte	102,15,56,222,241
Packit aea12f
.byte	102,15,56,222,249
Packit aea12f
	call	.L_aesni_decrypt6_enter
Packit aea12f
	movdqa	80(%esp),%xmm1
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	32(%esp),%xmm4
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	xorps	48(%esp),%xmm5
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	xorps	64(%esp),%xmm6
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	xorps	%xmm1,%xmm7
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	movups	%xmm7,80(%edi)
Packit aea12f
	leal	96(%edi),%edi
Packit aea12f
	movdqa	96(%esp),%xmm3
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	jnc	.L061xts_dec_loop6
Packit Service 991b93
	movl	240(%ebp),%ecx
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ecx,%ebx
Packit Service 991b93
.L060xts_dec_short:
Packit aea12f
	addl	$96,%eax
Packit Service 991b93
	jz	.L062xts_dec_done6x
Packit aea12f
	movdqa	%xmm1,%xmm5
Packit aea12f
	cmpl	$32,%eax
Packit Service 991b93
	jb	.L063xts_dec_one
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit Service 991b93
	je	.L064xts_dec_two
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,%xmm6
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	cmpl	$64,%eax
Packit Service 991b93
	jb	.L065xts_dec_three
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm1,%xmm7
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit aea12f
	movdqa	%xmm5,(%esp)
Packit aea12f
	movdqa	%xmm6,16(%esp)
Packit Service 991b93
	je	.L066xts_dec_four
Packit aea12f
	movdqa	%xmm7,32(%esp)
Packit aea12f
	pshufd	$19,%xmm0,%xmm7
Packit aea12f
	movdqa	%xmm1,48(%esp)
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm7
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	pxor	(%esp),%xmm2
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	pxor	16(%esp),%xmm3
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	pxor	32(%esp),%xmm4
Packit aea12f
	leal	80(%esi),%esi
Packit aea12f
	pxor	48(%esp),%xmm5
Packit aea12f
	movdqa	%xmm7,64(%esp)
Packit aea12f
	pxor	%xmm7,%xmm6
Packit aea12f
	call	__aesni_decrypt6
Packit aea12f
	movaps	64(%esp),%xmm1
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	xorps	32(%esp),%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	48(%esp),%xmm5
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	xorps	%xmm1,%xmm6
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	leal	80(%edi),%edi
Packit Service 991b93
	jmp	.L067xts_dec_done
Packit aea12f
.align	16
Packit Service 991b93
.L063xts_dec_one:
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	leal	16(%esi),%esi
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L068dec1_loop_12:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L068dec1_loop_12
Packit aea12f
.byte	102,15,56,223,209
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	leal	16(%edi),%edi
Packit aea12f
	movdqa	%xmm5,%xmm1
Packit Service 991b93
	jmp	.L067xts_dec_done
Packit aea12f
.align	16
Packit Service 991b93
.L064xts_dec_two:
Packit aea12f
	movaps	%xmm1,%xmm6
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	leal	32(%esi),%esi
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit Service 991b93
	call	__aesni_decrypt2
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	leal	32(%edi),%edi
Packit aea12f
	movdqa	%xmm6,%xmm1
Packit Service 991b93
	jmp	.L067xts_dec_done
Packit aea12f
.align	16
Packit Service 991b93
.L065xts_dec_three:
Packit aea12f
	movaps	%xmm1,%xmm7
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	leal	48(%esi),%esi
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	call	__aesni_decrypt3
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	leal	48(%edi),%edi
Packit aea12f
	movdqa	%xmm7,%xmm1
Packit Service 991b93
	jmp	.L067xts_dec_done
Packit aea12f
.align	16
Packit Service 991b93
.L066xts_dec_four:
Packit aea12f
	movaps	%xmm1,%xmm6
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	movups	48(%esi),%xmm5
Packit aea12f
	leal	64(%esi),%esi
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	xorps	%xmm6,%xmm5
Packit aea12f
	call	__aesni_decrypt4
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	xorps	16(%esp),%xmm3
Packit aea12f
	xorps	%xmm7,%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	%xmm6,%xmm5
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	leal	64(%edi),%edi
Packit aea12f
	movdqa	%xmm6,%xmm1
Packit Service 991b93
	jmp	.L067xts_dec_done
Packit aea12f
.align	16
Packit Service 991b93
.L062xts_dec_done6x:
Packit aea12f
	movl	112(%esp),%eax
Packit aea12f
	andl	$15,%eax
Packit Service 991b93
	jz	.L069xts_dec_ret
Packit aea12f
	movl	%eax,112(%esp)
Packit Service 991b93
	jmp	.L070xts_dec_only_one_more
Packit aea12f
.align	16
Packit Service 991b93
.L067xts_dec_done:
Packit aea12f
	movl	112(%esp),%eax
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	andl	$15,%eax
Packit Service 991b93
	jz	.L069xts_dec_ret
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	movl	%eax,112(%esp)
Packit aea12f
	pshufd	$19,%xmm0,%xmm2
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	movdqa	96(%esp),%xmm3
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm2
Packit aea12f
	pcmpgtd	%xmm1,%xmm0
Packit aea12f
	pxor	%xmm2,%xmm1
Packit Service 991b93
.L070xts_dec_only_one_more:
Packit aea12f
	pshufd	$19,%xmm0,%xmm5
Packit aea12f
	movdqa	%xmm1,%xmm6
Packit aea12f
	paddq	%xmm1,%xmm1
Packit aea12f
	pand	%xmm3,%xmm5
Packit aea12f
	pxor	%xmm1,%xmm5
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L071dec1_loop_13:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L071dec1_loop_13
Packit aea12f
.byte	102,15,56,223,209
Packit aea12f
	xorps	%xmm5,%xmm2
Packit aea12f
	movups	%xmm2,(%edi)
Packit Service 991b93
.L072xts_dec_steal:
Packit aea12f
	movzbl	16(%esi),%ecx
Packit aea12f
	movzbl	(%edi),%edx
Packit aea12f
	leal	1(%esi),%esi
Packit aea12f
	movb	%cl,(%edi)
Packit aea12f
	movb	%dl,16(%edi)
Packit aea12f
	leal	1(%edi),%edi
Packit aea12f
	subl	$1,%eax
Packit Service 991b93
	jnz	.L072xts_dec_steal
Packit aea12f
	subl	112(%esp),%edi
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	movups	(%edi),%xmm2
Packit aea12f
	xorps	%xmm6,%xmm2
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L073dec1_loop_14:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L073dec1_loop_14
Packit aea12f
.byte	102,15,56,223,209
Packit aea12f
	xorps	%xmm6,%xmm2
Packit aea12f
	movups	%xmm2,(%edi)
Packit Service 991b93
.L069xts_dec_ret:
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	movdqa	%xmm0,(%esp)
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	movdqa	%xmm0,16(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	movdqa	%xmm0,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	movdqa	%xmm0,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	movdqa	%xmm0,64(%esp)
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
	movdqa	%xmm0,80(%esp)
Packit aea12f
	movl	116(%esp),%esp
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit Service 991b93
.globl	_aesni_ocb_encrypt
Packit Service 991b93
.def	_aesni_ocb_encrypt;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit Service 991b93
_aesni_ocb_encrypt:
Packit Service 991b93
.L_aesni_ocb_encrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	pushl	%ebp
Packit aea12f
	pushl	%ebx
Packit aea12f
	pushl	%esi
Packit aea12f
	pushl	%edi
Packit Service 991b93
	movl	40(%esp),%ecx
Packit Service 991b93
	movl	48(%esp),%ebx
Packit aea12f
	movl	20(%esp),%esi
Packit aea12f
	movl	24(%esp),%edi
Packit aea12f
	movl	28(%esp),%eax
Packit aea12f
	movl	32(%esp),%edx
Packit Service 991b93
	movdqu	(%ecx),%xmm0
Packit aea12f
	movl	36(%esp),%ebp
Packit Service 991b93
	movdqu	(%ebx),%xmm1
Packit Service 991b93
	movl	44(%esp),%ebx
Packit Service 991b93
	movl	%esp,%ecx
Packit Service 991b93
	subl	$132,%esp
Packit Service 991b93
	andl	$-16,%esp
Packit Service 991b93
	subl	%esi,%edi
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	leal	-96(%esi,%eax,1),%eax
Packit Service 991b93
	movl	%edi,120(%esp)
Packit Service 991b93
	movl	%eax,124(%esp)
Packit Service 991b93
	movl	%ecx,128(%esp)
Packit aea12f
	movl	240(%edx),%ecx
Packit Service 991b93
	testl	$1,%ebp
Packit Service 991b93
	jnz	.L074odd
Packit Service 991b93
	bsfl	%ebp,%eax
Packit Service 991b93
	addl	$1,%ebp
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm7
Packit Service 991b93
	movl	%edx,%eax
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit aea12f
	leal	16(%esi),%esi
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	%xmm7,%xmm2
Packit Service 991b93
	movdqa	%xmm1,%xmm6
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit Service 991b93
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L075enc1_loop_15:
Packit aea12f
.byte	102,15,56,220,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L075enc1_loop_15
Packit aea12f
.byte	102,15,56,221,209
Packit Service 991b93
	xorps	%xmm7,%xmm2
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movdqa	%xmm6,%xmm1
Packit Service 991b93
	movups	%xmm2,-16(%edi,%esi,1)
Packit Service 991b93
	movl	240(%eax),%ecx
Packit Service 991b93
	movl	%eax,%edx
Packit Service 991b93
	movl	124(%esp),%eax
Packit Service 991b93
.L074odd:
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movl	$16,%edi
Packit Service 991b93
	subl	%ecx,%edi
Packit Service 991b93
	movl	%edx,112(%esp)
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	movl	%edi,116(%esp)
Packit Service 991b93
	cmpl	%eax,%esi
Packit Service 991b93
	ja	.L076short
Packit Service 991b93
	jmp	.L077grandloop
Packit Service 991b93
.align	32
Packit Service 991b93
.L077grandloop:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	leal	3(%ebp),%eax
Packit Service 991b93
	leal	5(%ebp),%edi
Packit Service 991b93
	addl	$6,%ebp
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	bsfl	%eax,%eax
Packit Service 991b93
	bsfl	%edi,%edi
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	shll	$4,%edi
Packit Service 991b93
	movdqu	(%ebx),%xmm2
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm3
Packit Service 991b93
	movl	116(%esp),%ecx
Packit Service 991b93
	movdqa	%xmm2,%xmm4
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm5
Packit Service 991b93
	movdqa	%xmm2,%xmm6
Packit Service 991b93
	movdqu	(%ebx,%edi,1),%xmm7
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm3,%xmm4
Packit Service 991b93
	movdqa	%xmm3,16(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm5
Packit Service 991b93
	movdqa	%xmm4,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	movdqa	%xmm5,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	movdqa	%xmm6,64(%esp)
Packit Service 991b93
	movdqa	%xmm7,80(%esp)
Packit Service 991b93
	movups	-48(%edx,%ecx,1),%xmm0
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movdqu	48(%esi),%xmm5
Packit Service 991b93
	movdqu	64(%esi),%xmm6
Packit Service 991b93
	movdqu	80(%esi),%xmm7
Packit Service 991b93
	leal	96(%esi),%esi
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm5
Packit Service 991b93
	pxor	%xmm6,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	pxor	%xmm7,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	movups	-32(%edx,%ecx,1),%xmm1
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	64(%esp),%xmm6
Packit Service 991b93
	pxor	80(%esp),%xmm7
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
.byte	102,15,56,220,209
Packit Service 991b93
.byte	102,15,56,220,217
Packit Service 991b93
.byte	102,15,56,220,225
Packit Service 991b93
.byte	102,15,56,220,233
Packit Service 991b93
.byte	102,15,56,220,241
Packit Service 991b93
.byte	102,15,56,220,249
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	movl	124(%esp),%eax
Packit Service 991b93
	call	.L_aesni_encrypt6_enter
Packit Service 991b93
	movdqa	80(%esp),%xmm0
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	64(%esp),%xmm6
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	movdqu	%xmm2,-96(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm3,-80(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm4,-64(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm5,-48(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm6,-32(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm7,-16(%edi,%esi,1)
Packit Service 991b93
	cmpl	%eax,%esi
Packit Service 991b93
	jb	.L077grandloop
Packit Service 991b93
.L076short:
Packit Service 991b93
	addl	$96,%eax
Packit Service 991b93
	subl	%esi,%eax
Packit Service 991b93
	jz	.L078done
Packit Service 991b93
	cmpl	$32,%eax
Packit Service 991b93
	jb	.L079one
Packit Service 991b93
	je	.L080two
Packit Service 991b93
	cmpl	$64,%eax
Packit Service 991b93
	jb	.L081three
Packit Service 991b93
	je	.L082four
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	leal	3(%ebp),%eax
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	bsfl	%eax,%eax
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	movdqu	(%ebx),%xmm2
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm3
Packit Service 991b93
	movl	116(%esp),%ecx
Packit Service 991b93
	movdqa	%xmm2,%xmm4
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm5
Packit Service 991b93
	movdqa	%xmm2,%xmm6
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm3,%xmm4
Packit Service 991b93
	movdqa	%xmm3,16(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm5
Packit Service 991b93
	movdqa	%xmm4,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	movdqa	%xmm5,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	movdqa	%xmm6,64(%esp)
Packit Service 991b93
	movups	-48(%edx,%ecx,1),%xmm0
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movdqu	48(%esi),%xmm5
Packit Service 991b93
	movdqu	64(%esi),%xmm6
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm5
Packit Service 991b93
	pxor	%xmm6,%xmm1
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	movups	-32(%edx,%ecx,1),%xmm1
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	64(%esp),%xmm6
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
.byte	102,15,56,220,209
Packit Service 991b93
.byte	102,15,56,220,217
Packit Service 991b93
.byte	102,15,56,220,225
Packit Service 991b93
.byte	102,15,56,220,233
Packit Service 991b93
.byte	102,15,56,220,241
Packit Service 991b93
.byte	102,15,56,220,249
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	.L_aesni_encrypt6_enter
Packit Service 991b93
	movdqa	64(%esp),%xmm0
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	movdqu	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm4,32(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm5,48(%edi,%esi,1)
Packit Service 991b93
	movdqu	%xmm6,64(%edi,%esi,1)
Packit Service 991b93
	jmp	.L078done
Packit Service 991b93
.align	16
Packit Service 991b93
.L079one:
Packit Service 991b93
	movdqu	(%ebx),%xmm7
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	%xmm7,%xmm2
Packit Service 991b93
	movdqa	%xmm1,%xmm6
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	movups	(%edx),%xmm0
Packit Service 991b93
	movups	16(%edx),%xmm1
Packit Service 991b93
	leal	32(%edx),%edx
Packit Service 991b93
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L083enc1_loop_16:
Packit Service 991b93
.byte	102,15,56,220,209
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	movups	(%edx),%xmm1
Packit Service 991b93
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L083enc1_loop_16
Packit Service 991b93
.byte	102,15,56,221,209
Packit Service 991b93
	xorps	%xmm7,%xmm2
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movdqa	%xmm6,%xmm1
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	jmp	.L078done
Packit Service 991b93
.align	16
Packit Service 991b93
.L080two:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movdqu	(%ebx),%xmm6
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm7
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	%xmm6,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	pxor	%xmm7,%xmm3
Packit Service 991b93
	movdqa	%xmm1,%xmm5
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	__aesni_encrypt2
Packit Service 991b93
	xorps	%xmm6,%xmm2
Packit Service 991b93
	xorps	%xmm7,%xmm3
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movdqa	%xmm5,%xmm1
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	movups	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	jmp	.L078done
Packit Service 991b93
.align	16
Packit Service 991b93
.L081three:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movdqu	(%ebx),%xmm5
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm6
Packit Service 991b93
	movdqa	%xmm5,%xmm7
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	pxor	%xmm0,%xmm5
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	%xmm5,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	pxor	%xmm6,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	pxor	%xmm7,%xmm4
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	__aesni_encrypt3
Packit Service 991b93
	xorps	%xmm5,%xmm2
Packit Service 991b93
	xorps	%xmm6,%xmm3
Packit Service 991b93
	xorps	%xmm7,%xmm4
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	movups	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	movups	%xmm4,32(%edi,%esi,1)
Packit Service 991b93
	jmp	.L078done
Packit Service 991b93
.align	16
Packit Service 991b93
.L082four:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	leal	3(%ebp),%eax
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	bsfl	%eax,%eax
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	movdqu	(%ebx),%xmm4
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm5
Packit Service 991b93
	movdqa	%xmm4,%xmm6
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm7
Packit Service 991b93
	pxor	%xmm0,%xmm4
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	pxor	%xmm4,%xmm5
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	movdqa	%xmm4,(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	movdqa	%xmm5,16(%esp)
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movdqu	48(%esi),%xmm5
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	pxor	%xmm6,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm1
Packit Service 991b93
	pxor	%xmm7,%xmm5
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	__aesni_encrypt4
Packit Service 991b93
	xorps	(%esp),%xmm2
Packit Service 991b93
	xorps	16(%esp),%xmm3
Packit Service 991b93
	xorps	%xmm6,%xmm4
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	xorps	%xmm7,%xmm5
Packit Service 991b93
	movups	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movups	%xmm4,32(%edi,%esi,1)
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	movups	%xmm5,48(%edi,%esi,1)
Packit Service 991b93
.L078done:
Packit Service 991b93
	movl	128(%esp),%edx
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	movdqa	%xmm2,16(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	movdqa	%xmm2,32(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	movdqa	%xmm2,48(%esp)
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
	movdqa	%xmm2,64(%esp)
Packit Service 991b93
	movdqa	%xmm2,80(%esp)
Packit Service 991b93
	movdqa	%xmm2,96(%esp)
Packit Service 991b93
	leal	(%edx),%esp
Packit Service 991b93
	movl	40(%esp),%ecx
Packit Service 991b93
	movl	48(%esp),%ebx
Packit Service 991b93
	movdqu	%xmm0,(%ecx)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	movdqu	%xmm1,(%ebx)
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	popl	%edi
Packit Service 991b93
	popl	%esi
Packit Service 991b93
	popl	%ebx
Packit Service 991b93
	popl	%ebp
Packit Service 991b93
	ret
Packit Service 991b93
.globl	_aesni_ocb_decrypt
Packit Service 991b93
.def	_aesni_ocb_decrypt;	.scl	2;	.type	32;	.endef
Packit Service 991b93
.align	16
Packit Service 991b93
_aesni_ocb_decrypt:
Packit Service 991b93
.L_aesni_ocb_decrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit Service 991b93
	pushl	%ebp
Packit Service 991b93
	pushl	%ebx
Packit Service 991b93
	pushl	%esi
Packit Service 991b93
	pushl	%edi
Packit Service 991b93
	movl	40(%esp),%ecx
Packit Service 991b93
	movl	48(%esp),%ebx
Packit Service 991b93
	movl	20(%esp),%esi
Packit Service 991b93
	movl	24(%esp),%edi
Packit Service 991b93
	movl	28(%esp),%eax
Packit Service 991b93
	movl	32(%esp),%edx
Packit Service 991b93
	movdqu	(%ecx),%xmm0
Packit Service 991b93
	movl	36(%esp),%ebp
Packit Service 991b93
	movdqu	(%ebx),%xmm1
Packit Service 991b93
	movl	44(%esp),%ebx
Packit Service 991b93
	movl	%esp,%ecx
Packit Service 991b93
	subl	$132,%esp
Packit Service 991b93
	andl	$-16,%esp
Packit Service 991b93
	subl	%esi,%edi
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	leal	-96(%esi,%eax,1),%eax
Packit Service 991b93
	movl	%edi,120(%esp)
Packit Service 991b93
	movl	%eax,124(%esp)
Packit Service 991b93
	movl	%ecx,128(%esp)
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	testl	$1,%ebp
Packit Service 991b93
	jnz	.L084odd
Packit Service 991b93
	bsfl	%ebp,%eax
Packit Service 991b93
	addl	$1,%ebp
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm7
Packit Service 991b93
	movl	%edx,%eax
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	leal	16(%esi),%esi
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	pxor	%xmm7,%xmm2
Packit Service 991b93
	movdqa	%xmm1,%xmm6
Packit Service 991b93
	movups	(%edx),%xmm0
Packit Service 991b93
	movups	16(%edx),%xmm1
Packit Service 991b93
	leal	32(%edx),%edx
Packit Service 991b93
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L085dec1_loop_17:
Packit Service 991b93
.byte	102,15,56,222,209
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	movups	(%edx),%xmm1
Packit Service 991b93
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L085dec1_loop_17
Packit Service 991b93
.byte	102,15,56,223,209
Packit Service 991b93
	xorps	%xmm7,%xmm2
Packit Service 991b93
	movaps	%xmm6,%xmm1
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	xorps	%xmm2,%xmm1
Packit Service 991b93
	movups	%xmm2,-16(%edi,%esi,1)
Packit Service 991b93
	movl	240(%eax),%ecx
Packit Service 991b93
	movl	%eax,%edx
Packit Service 991b93
	movl	124(%esp),%eax
Packit Service 991b93
.L084odd:
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movl	$16,%edi
Packit Service 991b93
	subl	%ecx,%edi
Packit Service 991b93
	movl	%edx,112(%esp)
Packit Service 991b93
	leal	32(%edx,%ecx,1),%edx
Packit Service 991b93
	movl	%edi,116(%esp)
Packit Service 991b93
	cmpl	%eax,%esi
Packit Service 991b93
	ja	.L086short
Packit Service 991b93
	jmp	.L087grandloop
Packit Service 991b93
.align	32
Packit Service 991b93
.L087grandloop:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	leal	3(%ebp),%eax
Packit Service 991b93
	leal	5(%ebp),%edi
Packit Service 991b93
	addl	$6,%ebp
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	bsfl	%eax,%eax
Packit Service 991b93
	bsfl	%edi,%edi
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	shll	$4,%edi
Packit Service 991b93
	movdqu	(%ebx),%xmm2
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm3
Packit Service 991b93
	movl	116(%esp),%ecx
Packit Service 991b93
	movdqa	%xmm2,%xmm4
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm5
Packit Service 991b93
	movdqa	%xmm2,%xmm6
Packit Service 991b93
	movdqu	(%ebx,%edi,1),%xmm7
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm3,%xmm4
Packit Service 991b93
	movdqa	%xmm3,16(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm5
Packit Service 991b93
	movdqa	%xmm4,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	movdqa	%xmm5,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	movdqa	%xmm6,64(%esp)
Packit Service 991b93
	movdqa	%xmm7,80(%esp)
Packit Service 991b93
	movups	-48(%edx,%ecx,1),%xmm0
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movdqu	48(%esi),%xmm5
Packit Service 991b93
	movdqu	64(%esi),%xmm6
Packit Service 991b93
	movdqu	80(%esi),%xmm7
Packit Service 991b93
	leal	96(%esi),%esi
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pxor	%xmm0,%xmm4
Packit Service 991b93
	pxor	%xmm0,%xmm5
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	movups	-32(%edx,%ecx,1),%xmm1
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	64(%esp),%xmm6
Packit Service 991b93
	pxor	80(%esp),%xmm7
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
.byte	102,15,56,222,209
Packit Service 991b93
.byte	102,15,56,222,217
Packit Service 991b93
.byte	102,15,56,222,225
Packit Service 991b93
.byte	102,15,56,222,233
Packit Service 991b93
.byte	102,15,56,222,241
Packit Service 991b93
.byte	102,15,56,222,249
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	movl	124(%esp),%eax
Packit Service 991b93
	call	.L_aesni_decrypt6_enter
Packit Service 991b93
	movdqa	80(%esp),%xmm0
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	64(%esp),%xmm6
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	movdqu	%xmm2,-96(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	movdqu	%xmm3,-80(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	movdqu	%xmm4,-64(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm5,%xmm1
Packit Service 991b93
	movdqu	%xmm5,-48(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm6,%xmm1
Packit Service 991b93
	movdqu	%xmm6,-32(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm7,%xmm1
Packit Service 991b93
	movdqu	%xmm7,-16(%edi,%esi,1)
Packit Service 991b93
	cmpl	%eax,%esi
Packit Service 991b93
	jb	.L087grandloop
Packit Service 991b93
.L086short:
Packit Service 991b93
	addl	$96,%eax
Packit Service 991b93
	subl	%esi,%eax
Packit Service 991b93
	jz	.L088done
Packit Service 991b93
	cmpl	$32,%eax
Packit Service 991b93
	jb	.L089one
Packit Service 991b93
	je	.L090two
Packit Service 991b93
	cmpl	$64,%eax
Packit Service 991b93
	jb	.L091three
Packit Service 991b93
	je	.L092four
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	leal	3(%ebp),%eax
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	bsfl	%eax,%eax
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	movdqu	(%ebx),%xmm2
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm3
Packit Service 991b93
	movl	116(%esp),%ecx
Packit Service 991b93
	movdqa	%xmm2,%xmm4
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm5
Packit Service 991b93
	movdqa	%xmm2,%xmm6
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm3,%xmm4
Packit Service 991b93
	movdqa	%xmm3,16(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm5
Packit Service 991b93
	movdqa	%xmm4,32(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	movdqa	%xmm5,48(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	movdqa	%xmm6,64(%esp)
Packit Service 991b93
	movups	-48(%edx,%ecx,1),%xmm0
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movdqu	48(%esi),%xmm5
Packit Service 991b93
	movdqu	64(%esi),%xmm6
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	pxor	%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pxor	%xmm0,%xmm4
Packit Service 991b93
	pxor	%xmm0,%xmm5
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	movups	-32(%edx,%ecx,1),%xmm1
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	64(%esp),%xmm6
Packit Service 991b93
	movups	-16(%edx,%ecx,1),%xmm0
Packit Service 991b93
.byte	102,15,56,222,209
Packit Service 991b93
.byte	102,15,56,222,217
Packit Service 991b93
.byte	102,15,56,222,225
Packit Service 991b93
.byte	102,15,56,222,233
Packit Service 991b93
.byte	102,15,56,222,241
Packit Service 991b93
.byte	102,15,56,222,249
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	.L_aesni_decrypt6_enter
Packit Service 991b93
	movdqa	64(%esp),%xmm0
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	32(%esp),%xmm4
Packit Service 991b93
	pxor	48(%esp),%xmm5
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	movdqu	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	movdqu	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	movdqu	%xmm4,32(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm5,%xmm1
Packit Service 991b93
	movdqu	%xmm5,48(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm6,%xmm1
Packit Service 991b93
	movdqu	%xmm6,64(%edi,%esi,1)
Packit Service 991b93
	jmp	.L088done
Packit Service 991b93
.align	16
Packit Service 991b93
.L089one:
Packit Service 991b93
	movdqu	(%ebx),%xmm7
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	pxor	%xmm0,%xmm7
Packit Service 991b93
	pxor	%xmm7,%xmm2
Packit Service 991b93
	movdqa	%xmm1,%xmm6
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	movups	(%edx),%xmm0
Packit Service 991b93
	movups	16(%edx),%xmm1
Packit Service 991b93
	leal	32(%edx),%edx
Packit Service 991b93
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L093dec1_loop_18:
Packit Service 991b93
.byte	102,15,56,222,209
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	movups	(%edx),%xmm1
Packit Service 991b93
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L093dec1_loop_18
Packit Service 991b93
.byte	102,15,56,223,209
Packit Service 991b93
	xorps	%xmm7,%xmm2
Packit Service 991b93
	movaps	%xmm6,%xmm1
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	xorps	%xmm2,%xmm1
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	jmp	.L088done
Packit Service 991b93
.align	16
Packit Service 991b93
.L090two:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movdqu	(%ebx),%xmm6
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm7
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	movdqa	%xmm1,%xmm5
Packit Service 991b93
	pxor	%xmm0,%xmm6
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	pxor	%xmm6,%xmm2
Packit Service 991b93
	pxor	%xmm7,%xmm3
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	__aesni_decrypt2
Packit Service 991b93
	xorps	%xmm6,%xmm2
Packit Service 991b93
	xorps	%xmm7,%xmm3
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	xorps	%xmm2,%xmm5
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	xorps	%xmm3,%xmm5
Packit Service 991b93
	movups	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	movaps	%xmm5,%xmm1
Packit Service 991b93
	jmp	.L088done
Packit Service 991b93
.align	16
Packit Service 991b93
.L091three:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	movdqu	(%ebx),%xmm5
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm6
Packit Service 991b93
	movdqa	%xmm5,%xmm7
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	pxor	%xmm0,%xmm5
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	pxor	%xmm5,%xmm2
Packit Service 991b93
	pxor	%xmm6,%xmm3
Packit Service 991b93
	pxor	%xmm7,%xmm4
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	__aesni_decrypt3
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	xorps	%xmm5,%xmm2
Packit Service 991b93
	xorps	%xmm6,%xmm3
Packit Service 991b93
	xorps	%xmm7,%xmm4
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movups	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	movups	%xmm4,32(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	jmp	.L088done
Packit Service 991b93
.align	16
Packit Service 991b93
.L092four:
Packit Service 991b93
	leal	1(%ebp),%ecx
Packit Service 991b93
	leal	3(%ebp),%eax
Packit Service 991b93
	bsfl	%ecx,%ecx
Packit Service 991b93
	bsfl	%eax,%eax
Packit Service 991b93
	movl	112(%esp),%edx
Packit Service 991b93
	shll	$4,%ecx
Packit Service 991b93
	shll	$4,%eax
Packit Service 991b93
	movdqu	(%ebx),%xmm4
Packit Service 991b93
	movdqu	(%ebx,%ecx,1),%xmm5
Packit Service 991b93
	movdqa	%xmm4,%xmm6
Packit Service 991b93
	movdqu	(%ebx,%eax,1),%xmm7
Packit Service 991b93
	pxor	%xmm0,%xmm4
Packit Service 991b93
	movdqu	(%esi),%xmm2
Packit Service 991b93
	pxor	%xmm4,%xmm5
Packit Service 991b93
	movdqu	16(%esi),%xmm3
Packit Service 991b93
	pxor	%xmm5,%xmm6
Packit Service 991b93
	movdqa	%xmm4,(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm7
Packit Service 991b93
	movdqa	%xmm5,16(%esp)
Packit Service 991b93
	movdqu	32(%esi),%xmm4
Packit Service 991b93
	movdqu	48(%esi),%xmm5
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	movdqa	%xmm1,96(%esp)
Packit Service 991b93
	pxor	(%esp),%xmm2
Packit Service 991b93
	pxor	16(%esp),%xmm3
Packit Service 991b93
	pxor	%xmm6,%xmm4
Packit Service 991b93
	pxor	%xmm7,%xmm5
Packit Service 991b93
	movl	120(%esp),%edi
Packit Service 991b93
	call	__aesni_decrypt4
Packit Service 991b93
	movdqa	96(%esp),%xmm1
Packit Service 991b93
	xorps	(%esp),%xmm2
Packit Service 991b93
	xorps	16(%esp),%xmm3
Packit Service 991b93
	xorps	%xmm6,%xmm4
Packit Service 991b93
	movups	%xmm2,(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm2,%xmm1
Packit Service 991b93
	xorps	%xmm7,%xmm5
Packit Service 991b93
	movups	%xmm3,16(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	movdqa	%xmm7,%xmm0
Packit Service 991b93
	movups	%xmm4,32(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm4,%xmm1
Packit Service 991b93
	movups	%xmm5,48(%edi,%esi,1)
Packit Service 991b93
	pxor	%xmm5,%xmm1
Packit Service 991b93
.L088done:
Packit Service 991b93
	movl	128(%esp),%edx
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	movdqa	%xmm2,16(%esp)
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	movdqa	%xmm2,32(%esp)
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
	movdqa	%xmm2,48(%esp)
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
	movdqa	%xmm2,64(%esp)
Packit Service 991b93
	movdqa	%xmm2,80(%esp)
Packit Service 991b93
	movdqa	%xmm2,96(%esp)
Packit Service 991b93
	leal	(%edx),%esp
Packit Service 991b93
	movl	40(%esp),%ecx
Packit Service 991b93
	movl	48(%esp),%ebx
Packit Service 991b93
	movdqu	%xmm0,(%ecx)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	movdqu	%xmm1,(%ebx)
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	popl	%edi
Packit Service 991b93
	popl	%esi
Packit Service 991b93
	popl	%ebx
Packit Service 991b93
	popl	%ebp
Packit Service 991b93
	ret
Packit Service 991b93
.globl	_aesni_cbc_encrypt
Packit Service 991b93
.def	_aesni_cbc_encrypt;	.scl	2;	.type	32;	.endef
Packit Service 991b93
.align	16
Packit Service 991b93
_aesni_cbc_encrypt:
Packit Service 991b93
.L_aesni_cbc_encrypt_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit Service 991b93
	pushl	%ebp
Packit Service 991b93
	pushl	%ebx
Packit Service 991b93
	pushl	%esi
Packit Service 991b93
	pushl	%edi
Packit Service 991b93
	movl	20(%esp),%esi
Packit Service 991b93
	movl	%esp,%ebx
Packit Service 991b93
	movl	24(%esp),%edi
Packit Service 991b93
	subl	$24,%ebx
Packit Service 991b93
	movl	28(%esp),%eax
Packit Service 991b93
	andl	$-16,%ebx
Packit Service 991b93
	movl	32(%esp),%edx
Packit Service 991b93
	movl	36(%esp),%ebp
Packit Service 991b93
	testl	%eax,%eax
Packit Service 991b93
	jz	.L094cbc_abort
Packit Service 991b93
	cmpl	$0,40(%esp)
Packit Service 991b93
	xchgl	%esp,%ebx
Packit Service 991b93
	movups	(%ebp),%xmm7
Packit Service 991b93
	movl	240(%edx),%ecx
Packit Service 991b93
	movl	%edx,%ebp
Packit Service 991b93
	movl	%ebx,16(%esp)
Packit Service 991b93
	movl	%ecx,%ebx
Packit Service 991b93
	je	.L095cbc_decrypt
Packit Service 991b93
	movaps	%xmm7,%xmm2
Packit Service 991b93
	cmpl	$16,%eax
Packit Service 991b93
	jb	.L096cbc_enc_tail
Packit Service 991b93
	subl	$16,%eax
Packit Service 991b93
	jmp	.L097cbc_enc_loop
Packit Service 991b93
.align	16
Packit Service 991b93
.L097cbc_enc_loop:
Packit Service 991b93
	movups	(%esi),%xmm7
Packit Service 991b93
	leal	16(%esi),%esi
Packit Service 991b93
	movups	(%edx),%xmm0
Packit Service 991b93
	movups	16(%edx),%xmm1
Packit Service 991b93
	xorps	%xmm0,%xmm7
Packit Service 991b93
	leal	32(%edx),%edx
Packit Service 991b93
	xorps	%xmm7,%xmm2
Packit Service 991b93
.L098enc1_loop_19:
Packit Service 991b93
.byte	102,15,56,220,209
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	movups	(%edx),%xmm1
Packit Service 991b93
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L098enc1_loop_19
Packit Service 991b93
.byte	102,15,56,221,209
Packit Service 991b93
	movl	%ebx,%ecx
Packit Service 991b93
	movl	%ebp,%edx
Packit Service 991b93
	movups	%xmm2,(%edi)
Packit aea12f
	leal	16(%edi),%edi
Packit Service 991b93
	subl	$16,%eax
Packit Service 991b93
	jnc	.L097cbc_enc_loop
Packit Service 991b93
	addl	$16,%eax
Packit Service 991b93
	jnz	.L096cbc_enc_tail
Packit Service 991b93
	movaps	%xmm2,%xmm7
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	jmp	.L099cbc_ret
Packit Service 991b93
.L096cbc_enc_tail:
Packit Service 991b93
	movl	%eax,%ecx
Packit Service 991b93
.long	2767451785
Packit Service 991b93
	movl	$16,%ecx
Packit Service 991b93
	subl	%eax,%ecx
Packit Service 991b93
	xorl	%eax,%eax
Packit Service 991b93
.long	2868115081
Packit Service 991b93
	leal	-16(%edi),%edi
Packit Service 991b93
	movl	%ebx,%ecx
Packit Service 991b93
	movl	%edi,%esi
Packit Service 991b93
	movl	%ebp,%edx
Packit Service 991b93
	jmp	.L097cbc_enc_loop
Packit Service 991b93
.align	16
Packit Service 991b93
.L095cbc_decrypt:
Packit Service 991b93
	cmpl	$80,%eax
Packit Service 991b93
	jbe	.L100cbc_dec_tail
Packit Service 991b93
	movaps	%xmm7,(%esp)
Packit Service 991b93
	subl	$80,%eax
Packit Service 991b93
	jmp	.L101cbc_dec_loop6_enter
Packit Service 991b93
.align	16
Packit Service 991b93
.L102cbc_dec_loop6:
Packit Service 991b93
	movaps	%xmm0,(%esp)
Packit Service 991b93
	movups	%xmm7,(%edi)
Packit Service 991b93
	leal	16(%edi),%edi
Packit Service 991b93
.L101cbc_dec_loop6_enter:
Packit aea12f
	movdqu	(%esi),%xmm2
Packit aea12f
	movdqu	16(%esi),%xmm3
Packit aea12f
	movdqu	32(%esi),%xmm4
Packit aea12f
	movdqu	48(%esi),%xmm5
Packit aea12f
	movdqu	64(%esi),%xmm6
Packit aea12f
	movdqu	80(%esi),%xmm7
Packit aea12f
	call	__aesni_decrypt6
Packit aea12f
	movups	(%esi),%xmm1
Packit aea12f
	movups	16(%esi),%xmm0
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	xorps	%xmm1,%xmm3
Packit aea12f
	movups	32(%esi),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm4
Packit aea12f
	movups	48(%esi),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm5
Packit aea12f
	movups	64(%esi),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm6
Packit aea12f
	movups	80(%esi),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm7
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit aea12f
	leal	96(%esi),%esi
Packit aea12f
	movups	%xmm4,32(%edi)
Packit aea12f
	movl	%ebx,%ecx
Packit aea12f
	movups	%xmm5,48(%edi)
Packit aea12f
	movl	%ebp,%edx
Packit aea12f
	movups	%xmm6,64(%edi)
Packit aea12f
	leal	80(%edi),%edi
Packit aea12f
	subl	$96,%eax
Packit Service 991b93
	ja	.L102cbc_dec_loop6
Packit aea12f
	movaps	%xmm7,%xmm2
Packit aea12f
	movaps	%xmm0,%xmm7
Packit aea12f
	addl	$80,%eax
Packit Service 991b93
	jle	.L103cbc_dec_clear_tail_collected
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	leal	16(%edi),%edi
Packit Service 991b93
.L100cbc_dec_tail:
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	movaps	%xmm2,%xmm6
Packit aea12f
	cmpl	$16,%eax
Packit Service 991b93
	jbe	.L104cbc_dec_one
Packit aea12f
	movups	16(%esi),%xmm3
Packit aea12f
	movaps	%xmm3,%xmm5
Packit aea12f
	cmpl	$32,%eax
Packit Service 991b93
	jbe	.L105cbc_dec_two
Packit aea12f
	movups	32(%esi),%xmm4
Packit aea12f
	cmpl	$48,%eax
Packit Service 991b93
	jbe	.L106cbc_dec_three
Packit aea12f
	movups	48(%esi),%xmm5
Packit aea12f
	cmpl	$64,%eax
Packit Service 991b93
	jbe	.L107cbc_dec_four
Packit aea12f
	movups	64(%esi),%xmm6
Packit aea12f
	movaps	%xmm7,(%esp)
Packit aea12f
	movups	(%esi),%xmm2
Packit aea12f
	xorps	%xmm7,%xmm7
Packit aea12f
	call	__aesni_decrypt6
Packit aea12f
	movups	(%esi),%xmm1
Packit aea12f
	movups	16(%esi),%xmm0
Packit aea12f
	xorps	(%esp),%xmm2
Packit aea12f
	xorps	%xmm1,%xmm3
Packit aea12f
	movups	32(%esi),%xmm1
Packit aea12f
	xorps	%xmm0,%xmm4
Packit aea12f
	movups	48(%esi),%xmm0
Packit aea12f
	xorps	%xmm1,%xmm5
Packit aea12f
	movups	64(%esi),%xmm7
Packit aea12f
	xorps	%xmm0,%xmm6
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movups	%xmm3,16(%edi)
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit aea12f
	movups	%xmm4,32(%edi)
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit aea12f
	movups	%xmm5,48(%edi)
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit aea12f
	leal	64(%edi),%edi
Packit aea12f
	movaps	%xmm6,%xmm2
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit aea12f
	subl	$80,%eax
Packit Service 991b93
	jmp	.L108cbc_dec_tail_collected
Packit aea12f
.align	16
Packit Service 991b93
.L104cbc_dec_one:
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	16(%edx),%xmm1
Packit aea12f
	leal	32(%edx),%edx
Packit aea12f
	xorps	%xmm0,%xmm2
Packit Service 991b93
.L109dec1_loop_20:
Packit aea12f
.byte	102,15,56,222,209
Packit aea12f
	decl	%ecx
Packit aea12f
	movups	(%edx),%xmm1
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	jnz	.L109dec1_loop_20
Packit aea12f
.byte	102,15,56,223,209
Packit aea12f
	xorps	%xmm7,%xmm2
Packit aea12f
	movaps	%xmm6,%xmm7
Packit aea12f
	subl	$16,%eax
Packit Service 991b93
	jmp	.L108cbc_dec_tail_collected
Packit aea12f
.align	16
Packit Service 991b93
.L105cbc_dec_two:
Packit Service 991b93
	call	__aesni_decrypt2
Packit aea12f
	xorps	%xmm7,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movaps	%xmm3,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit aea12f
	leal	16(%edi),%edi
Packit aea12f
	movaps	%xmm5,%xmm7
Packit aea12f
	subl	$32,%eax
Packit Service 991b93
	jmp	.L108cbc_dec_tail_collected
Packit aea12f
.align	16
Packit Service 991b93
.L106cbc_dec_three:
Packit aea12f
	call	__aesni_decrypt3
Packit aea12f
	xorps	%xmm7,%xmm2
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	xorps	%xmm5,%xmm4
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	movaps	%xmm4,%xmm2
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit aea12f
	movups	%xmm3,16(%edi)
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit aea12f
	leal	32(%edi),%edi
Packit aea12f
	movups	32(%esi),%xmm7
Packit aea12f
	subl	$48,%eax
Packit Service 991b93
	jmp	.L108cbc_dec_tail_collected
Packit aea12f
.align	16
Packit Service 991b93
.L107cbc_dec_four:
Packit aea12f
	call	__aesni_decrypt4
Packit aea12f
	movups	16(%esi),%xmm1
Packit aea12f
	movups	32(%esi),%xmm0
Packit aea12f
	xorps	%xmm7,%xmm2
Packit aea12f
	movups	48(%esi),%xmm7
Packit aea12f
	xorps	%xmm6,%xmm3
Packit aea12f
	movups	%xmm2,(%edi)
Packit aea12f
	xorps	%xmm1,%xmm4
Packit aea12f
	movups	%xmm3,16(%edi)
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit aea12f
	xorps	%xmm0,%xmm5
Packit aea12f
	movups	%xmm4,32(%edi)
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit aea12f
	leal	48(%edi),%edi
Packit aea12f
	movaps	%xmm5,%xmm2
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit aea12f
	subl	$64,%eax
Packit Service 991b93
	jmp	.L108cbc_dec_tail_collected
Packit Service 991b93
.align	16
Packit Service 991b93
.L103cbc_dec_clear_tail_collected:
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	pxor	%xmm6,%xmm6
Packit Service 991b93
.L108cbc_dec_tail_collected:
Packit aea12f
	andl	$15,%eax
Packit Service 991b93
	jnz	.L110cbc_dec_tail_partial
Packit aea12f
	movups	%xmm2,(%edi)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	jmp	.L099cbc_ret
Packit aea12f
.align	16
Packit Service 991b93
.L110cbc_dec_tail_partial:
Packit aea12f
	movaps	%xmm2,(%esp)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit aea12f
	movl	$16,%ecx
Packit aea12f
	movl	%esp,%esi
Packit aea12f
	subl	%eax,%ecx
Packit aea12f
.long	2767451785
Packit Service 991b93
	movdqa	%xmm2,(%esp)
Packit Service 991b93
.L099cbc_ret:
Packit aea12f
	movl	16(%esp),%esp
Packit aea12f
	movl	36(%esp),%ebp
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit aea12f
	movups	%xmm7,(%ebp)
Packit Service 991b93
	pxor	%xmm7,%xmm7
Packit Service 991b93
.L094cbc_abort:
Packit aea12f
	popl	%edi
Packit aea12f
	popl	%esi
Packit aea12f
	popl	%ebx
Packit aea12f
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.def	__aesni_set_encrypt_key;	.scl	3;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
__aesni_set_encrypt_key:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit Service 991b93
	pushl	%ebp
Packit Service 991b93
	pushl	%ebx
Packit aea12f
	testl	%eax,%eax
Packit Service 991b93
	jz	.L111bad_pointer
Packit aea12f
	testl	%edx,%edx
Packit Service 991b93
	jz	.L111bad_pointer
Packit Service 991b93
	call	.L112pic
Packit Service 991b93
.L112pic:
Packit Service 991b93
	popl	%ebx
Packit Service 991b93
	leal	.Lkey_const-.L112pic(%ebx),%ebx
Packit Service 991b93
	leal	__gnutls_x86_cpuid_s,%ebp
Packit aea12f
	movups	(%eax),%xmm0
Packit aea12f
	xorps	%xmm4,%xmm4
Packit Service 991b93
	movl	4(%ebp),%ebp
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	andl	$268437504,%ebp
Packit aea12f
	cmpl	$256,%ecx
Packit Service 991b93
	je	.L11314rounds
Packit aea12f
	cmpl	$192,%ecx
Packit Service 991b93
	je	.L11412rounds
Packit aea12f
	cmpl	$128,%ecx
Packit Service 991b93
	jne	.L115bad_keybits
Packit aea12f
.align	16
Packit Service 991b93
.L11610rounds:
Packit Service 991b93
	cmpl	$268435456,%ebp
Packit Service 991b93
	je	.L11710rounds_alt
Packit aea12f
	movl	$9,%ecx
Packit aea12f
	movups	%xmm0,-16(%edx)
Packit aea12f
.byte	102,15,58,223,200,1
Packit Service 991b93
	call	.L118key_128_cold
Packit aea12f
.byte	102,15,58,223,200,2
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,4
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,8
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,16
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,32
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,64
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,128
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,27
Packit Service 991b93
	call	.L119key_128
Packit aea12f
.byte	102,15,58,223,200,54
Packit Service 991b93
	call	.L119key_128
Packit aea12f
	movups	%xmm0,(%edx)
Packit aea12f
	movl	%ecx,80(%edx)
Packit Service 991b93
	jmp	.L120good_key
Packit aea12f
.align	16
Packit Service 991b93
.L119key_128:
Packit aea12f
	movups	%xmm0,(%edx)
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
.L118key_128_cold:
Packit aea12f
	shufps	$16,%xmm0,%xmm4
Packit aea12f
	xorps	%xmm4,%xmm0
Packit aea12f
	shufps	$140,%xmm0,%xmm4
Packit aea12f
	xorps	%xmm4,%xmm0
Packit aea12f
	shufps	$255,%xmm1,%xmm1
Packit aea12f
	xorps	%xmm1,%xmm0
Packit aea12f
	ret
Packit aea12f
.align	16
Packit Service 991b93
.L11710rounds_alt:
Packit Service 991b93
	movdqa	(%ebx),%xmm5
Packit Service 991b93
	movl	$8,%ecx
Packit Service 991b93
	movdqa	32(%ebx),%xmm4
Packit Service 991b93
	movdqa	%xmm0,%xmm2
Packit Service 991b93
	movdqu	%xmm0,-16(%edx)
Packit Service 991b93
.L121loop_key128:
Packit Service 991b93
.byte	102,15,56,0,197
Packit Service 991b93
.byte	102,15,56,221,196
Packit Service 991b93
	pslld	$1,%xmm4
Packit Service 991b93
	leal	16(%edx),%edx
Packit Service 991b93
	movdqa	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm0
Packit Service 991b93
	movdqu	%xmm0,-16(%edx)
Packit Service 991b93
	movdqa	%xmm0,%xmm2
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	jnz	.L121loop_key128
Packit Service 991b93
	movdqa	48(%ebx),%xmm4
Packit Service 991b93
.byte	102,15,56,0,197
Packit Service 991b93
.byte	102,15,56,221,196
Packit Service 991b93
	pslld	$1,%xmm4
Packit Service 991b93
	movdqa	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm0
Packit Service 991b93
	movdqu	%xmm0,(%edx)
Packit Service 991b93
	movdqa	%xmm0,%xmm2
Packit Service 991b93
.byte	102,15,56,0,197
Packit Service 991b93
.byte	102,15,56,221,196
Packit Service 991b93
	movdqa	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm2
Packit Service 991b93
	pxor	%xmm2,%xmm0
Packit Service 991b93
	movdqu	%xmm0,16(%edx)
Packit Service 991b93
	movl	$9,%ecx
Packit Service 991b93
	movl	%ecx,96(%edx)
Packit Service 991b93
	jmp	.L120good_key
Packit Service 991b93
.align	16
Packit Service 991b93
.L11412rounds:
Packit aea12f
	movq	16(%eax),%xmm2
Packit Service 991b93
	cmpl	$268435456,%ebp
Packit Service 991b93
	je	.L12212rounds_alt
Packit aea12f
	movl	$11,%ecx
Packit aea12f
	movups	%xmm0,-16(%edx)
Packit aea12f
.byte	102,15,58,223,202,1
Packit Service 991b93
	call	.L123key_192a_cold
Packit aea12f
.byte	102,15,58,223,202,2
Packit Service 991b93
	call	.L124key_192b
Packit aea12f
.byte	102,15,58,223,202,4
Packit Service 991b93
	call	.L125key_192a
Packit aea12f
.byte	102,15,58,223,202,8
Packit Service 991b93
	call	.L124key_192b
Packit aea12f
.byte	102,15,58,223,202,16
Packit Service 991b93
	call	.L125key_192a
Packit aea12f
.byte	102,15,58,223,202,32
Packit Service 991b93
	call	.L124key_192b
Packit aea12f
.byte	102,15,58,223,202,64
Packit Service 991b93
	call	.L125key_192a
Packit aea12f
.byte	102,15,58,223,202,128
Packit Service 991b93
	call	.L124key_192b
Packit aea12f
	movups	%xmm0,(%edx)
Packit aea12f
	movl	%ecx,48(%edx)
Packit Service 991b93
	jmp	.L120good_key
Packit aea12f
.align	16
Packit Service 991b93
.L125key_192a:
Packit aea12f
	movups	%xmm0,(%edx)
Packit aea12f
	leal	16(%edx),%edx
Packit aea12f
.align	16
Packit Service 991b93
.L123key_192a_cold:
Packit aea12f
	movaps	%xmm2,%xmm5
Packit Service 991b93
.L126key_192b_warm:
Packit aea12f
	shufps	$16,%xmm0,%xmm4
Packit aea12f
	movdqa	%xmm2,%xmm3
Packit aea12f
	xorps	%xmm4,%xmm0
Packit aea12f
	shufps	$140,%xmm0,%xmm4
Packit aea12f
	pslldq	$4,%xmm3
Packit aea12f
	xorps	%xmm4,%xmm0
Packit aea12f
	pshufd	$85,%xmm1,%xmm1
Packit aea12f
	pxor	%xmm3,%xmm2
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
	pshufd	$255,%xmm0,%xmm3
Packit aea12f
	pxor	%xmm3,%xmm2
Packit aea12f
	ret
Packit aea12f
.align	16
Packit Service 991b93
.L124key_192b:
Packit aea12f
	movaps	%xmm0,%xmm3
Packit aea12f
	shufps	$68,%xmm0,%xmm5
Packit aea12f
	movups	%xmm5,(%edx)
Packit aea12f
	shufps	$78,%xmm2,%xmm3
Packit aea12f
	movups	%xmm3,16(%edx)
Packit aea12f
	leal	32(%edx),%edx
Packit Service 991b93
	jmp	.L126key_192b_warm
Packit Service 991b93
.align	16
Packit Service 991b93
.L12212rounds_alt:
Packit Service 991b93
	movdqa	16(%ebx),%xmm5
Packit Service 991b93
	movdqa	32(%ebx),%xmm4
Packit Service 991b93
	movl	$8,%ecx
Packit Service 991b93
	movdqu	%xmm0,-16(%edx)
Packit Service 991b93
.L127loop_key192:
Packit Service 991b93
	movq	%xmm2,(%edx)
Packit Service 991b93
	movdqa	%xmm2,%xmm1
Packit Service 991b93
.byte	102,15,56,0,213
Packit Service 991b93
.byte	102,15,56,221,212
Packit Service 991b93
	pslld	$1,%xmm4
Packit Service 991b93
	leal	24(%edx),%edx
Packit Service 991b93
	movdqa	%xmm0,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm0
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm0
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm0
Packit Service 991b93
	pxor	%xmm3,%xmm0
Packit Service 991b93
	pshufd	$255,%xmm0,%xmm3
Packit Service 991b93
	pxor	%xmm1,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm1
Packit Service 991b93
	pxor	%xmm1,%xmm3
Packit Service 991b93
	pxor	%xmm2,%xmm0
Packit Service 991b93
	pxor	%xmm3,%xmm2
Packit Service 991b93
	movdqu	%xmm0,-16(%edx)
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	jnz	.L127loop_key192
Packit Service 991b93
	movl	$11,%ecx
Packit Service 991b93
	movl	%ecx,32(%edx)
Packit Service 991b93
	jmp	.L120good_key
Packit aea12f
.align	16
Packit Service 991b93
.L11314rounds:
Packit aea12f
	movups	16(%eax),%xmm2
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
	cmpl	$268435456,%ebp
Packit Service 991b93
	je	.L12814rounds_alt
Packit Service 991b93
	movl	$13,%ecx
Packit aea12f
	movups	%xmm0,-32(%edx)
Packit aea12f
	movups	%xmm2,-16(%edx)
Packit aea12f
.byte	102,15,58,223,202,1
Packit Service 991b93
	call	.L129key_256a_cold
Packit aea12f
.byte	102,15,58,223,200,1
Packit Service 991b93
	call	.L130key_256b
Packit aea12f
.byte	102,15,58,223,202,2
Packit Service 991b93
	call	.L131key_256a
Packit aea12f
.byte	102,15,58,223,200,2
Packit Service 991b93
	call	.L130key_256b
Packit aea12f
.byte	102,15,58,223,202,4
Packit Service 991b93
	call	.L131key_256a
Packit aea12f
.byte	102,15,58,223,200,4
Packit Service 991b93
	call	.L130key_256b
Packit aea12f
.byte	102,15,58,223,202,8
Packit Service 991b93
	call	.L131key_256a
Packit aea12f
.byte	102,15,58,223,200,8
Packit Service 991b93
	call	.L130key_256b
Packit aea12f
.byte	102,15,58,223,202,16
Packit Service 991b93
	call	.L131key_256a
Packit aea12f
.byte	102,15,58,223,200,16
Packit Service 991b93
	call	.L130key_256b
Packit aea12f
.byte	102,15,58,223,202,32
Packit Service 991b93
	call	.L131key_256a
Packit aea12f
.byte	102,15,58,223,200,32
Packit Service 991b93
	call	.L130key_256b
Packit aea12f
.byte	102,15,58,223,202,64
Packit Service 991b93
	call	.L131key_256a
Packit aea12f
	movups	%xmm0,(%edx)
Packit aea12f
	movl	%ecx,16(%edx)
Packit aea12f
	xorl	%eax,%eax
Packit Service 991b93
	jmp	.L120good_key
Packit aea12f
.align	16
Packit Service 991b93
.L131key_256a:
Packit aea12f
	movups	%xmm2,(%edx)
Packit aea12f
	leal	16(%edx),%edx
Packit Service 991b93
.L129key_256a_cold:
Packit aea12f
	shufps	$16,%xmm0,%xmm4
Packit aea12f
	xorps	%xmm4,%xmm0
Packit aea12f
	shufps	$140,%xmm0,%xmm4
Packit aea12f
	xorps	%xmm4,%xmm0
Packit aea12f
	shufps	$255,%xmm1,%xmm1
Packit aea12f
	xorps	%xmm1,%xmm0
Packit aea12f
	ret
Packit aea12f
.align	16
Packit Service 991b93
.L130key_256b:
Packit aea12f
	movups	%xmm0,(%edx)
Packit aea12f
	leal	16(%edx),%edx
Packit aea12f
	shufps	$16,%xmm2,%xmm4
Packit aea12f
	xorps	%xmm4,%xmm2
Packit aea12f
	shufps	$140,%xmm2,%xmm4
Packit aea12f
	xorps	%xmm4,%xmm2
Packit aea12f
	shufps	$170,%xmm1,%xmm1
Packit aea12f
	xorps	%xmm1,%xmm2
Packit aea12f
	ret
Packit Service 991b93
.align	16
Packit Service 991b93
.L12814rounds_alt:
Packit Service 991b93
	movdqa	(%ebx),%xmm5
Packit Service 991b93
	movdqa	32(%ebx),%xmm4
Packit Service 991b93
	movl	$7,%ecx
Packit Service 991b93
	movdqu	%xmm0,-32(%edx)
Packit Service 991b93
	movdqa	%xmm2,%xmm1
Packit Service 991b93
	movdqu	%xmm2,-16(%edx)
Packit Service 991b93
.L132loop_key256:
Packit Service 991b93
.byte	102,15,56,0,213
Packit Service 991b93
.byte	102,15,56,221,212
Packit Service 991b93
	movdqa	%xmm0,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm0
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm0
Packit Service 991b93
	pxor	%xmm0,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm0
Packit Service 991b93
	pxor	%xmm3,%xmm0
Packit Service 991b93
	pslld	$1,%xmm4
Packit Service 991b93
	pxor	%xmm2,%xmm0
Packit Service 991b93
	movdqu	%xmm0,(%edx)
Packit Service 991b93
	decl	%ecx
Packit Service 991b93
	jz	.L133done_key256
Packit Service 991b93
	pshufd	$255,%xmm0,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
.byte	102,15,56,221,211
Packit Service 991b93
	movdqa	%xmm1,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm1
Packit Service 991b93
	pxor	%xmm1,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm1
Packit Service 991b93
	pxor	%xmm1,%xmm3
Packit Service 991b93
	pslldq	$4,%xmm1
Packit Service 991b93
	pxor	%xmm3,%xmm1
Packit Service 991b93
	pxor	%xmm1,%xmm2
Packit Service 991b93
	movdqu	%xmm2,16(%edx)
Packit Service 991b93
	leal	32(%edx),%edx
Packit Service 991b93
	movdqa	%xmm2,%xmm1
Packit Service 991b93
	jmp	.L132loop_key256
Packit Service 991b93
.L133done_key256:
Packit Service 991b93
	movl	$13,%ecx
Packit Service 991b93
	movl	%ecx,16(%edx)
Packit Service 991b93
.L120good_key:
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit Service 991b93
	pxor	%xmm2,%xmm2
Packit Service 991b93
	pxor	%xmm3,%xmm3
Packit Service 991b93
	pxor	%xmm4,%xmm4
Packit Service 991b93
	pxor	%xmm5,%xmm5
Packit Service 991b93
	xorl	%eax,%eax
Packit Service 991b93
	popl	%ebx
Packit Service 991b93
	popl	%ebp
Packit Service 991b93
	ret
Packit aea12f
.align	4
Packit Service 991b93
.L111bad_pointer:
Packit aea12f
	movl	$-1,%eax
Packit Service 991b93
	popl	%ebx
Packit Service 991b93
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.align	4
Packit Service 991b93
.L115bad_keybits:
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit aea12f
	movl	$-2,%eax
Packit Service 991b93
	popl	%ebx
Packit Service 991b93
	popl	%ebp
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_set_encrypt_key
Packit aea12f
.def	_aesni_set_encrypt_key;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_set_encrypt_key:
Packit aea12f
.L_aesni_set_encrypt_key_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movl	4(%esp),%eax
Packit aea12f
	movl	8(%esp),%ecx
Packit aea12f
	movl	12(%esp),%edx
Packit aea12f
	call	__aesni_set_encrypt_key
Packit aea12f
	ret
Packit aea12f
.globl	_aesni_set_decrypt_key
Packit aea12f
.def	_aesni_set_decrypt_key;	.scl	2;	.type	32;	.endef
Packit aea12f
.align	16
Packit aea12f
_aesni_set_decrypt_key:
Packit aea12f
.L_aesni_set_decrypt_key_begin:
Packit Service 2e7f1f
.byte	243,15,30,251
Packit aea12f
	movl	4(%esp),%eax
Packit aea12f
	movl	8(%esp),%ecx
Packit aea12f
	movl	12(%esp),%edx
Packit aea12f
	call	__aesni_set_encrypt_key
Packit aea12f
	movl	12(%esp),%edx
Packit aea12f
	shll	$4,%ecx
Packit aea12f
	testl	%eax,%eax
Packit Service 991b93
	jnz	.L134dec_key_ret
Packit aea12f
	leal	16(%edx,%ecx,1),%eax
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	(%eax),%xmm1
Packit aea12f
	movups	%xmm0,(%eax)
Packit aea12f
	movups	%xmm1,(%edx)
Packit aea12f
	leal	16(%edx),%edx
Packit aea12f
	leal	-16(%eax),%eax
Packit Service 991b93
.L135dec_key_inverse:
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
	movups	(%eax),%xmm1
Packit aea12f
.byte	102,15,56,219,192
Packit aea12f
.byte	102,15,56,219,201
Packit aea12f
	leal	16(%edx),%edx
Packit aea12f
	leal	-16(%eax),%eax
Packit aea12f
	movups	%xmm0,16(%eax)
Packit aea12f
	movups	%xmm1,-16(%edx)
Packit aea12f
	cmpl	%edx,%eax
Packit Service 991b93
	ja	.L135dec_key_inverse
Packit aea12f
	movups	(%edx),%xmm0
Packit aea12f
.byte	102,15,56,219,192
Packit aea12f
	movups	%xmm0,(%edx)
Packit Service 991b93
	pxor	%xmm0,%xmm0
Packit Service 991b93
	pxor	%xmm1,%xmm1
Packit aea12f
	xorl	%eax,%eax
Packit Service 991b93
.L134dec_key_ret:
Packit aea12f
	ret
Packit Service 991b93
.align	64
Packit Service 991b93
.Lkey_const:
Packit Service 991b93
.long	202313229,202313229,202313229,202313229
Packit Service 991b93
.long	67569157,67569157,67569157,67569157
Packit Service 991b93
.long	1,1,1,1
Packit Service 991b93
.long	27,27,27,27
Packit aea12f
.byte	65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
Packit aea12f
.byte	83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
Packit aea12f
.byte	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
Packit aea12f
.byte	115,108,46,111,114,103,62,0
Packit Service 991b93
.comm	__gnutls_x86_cpuid_s,16
Packit aea12f