Blame lib/accelerated/x86/coff/aes-ssse3-x86.s

Packit Service 4684c1
######################################################################
Packit Service 4684c1
## Constant-time SSSE3 AES core implementation.
Packit Service 4684c1
## version 0.1
Packit Service 4684c1
##
Packit Service 4684c1
## By Mike Hamburg (Stanford University), 2009
Packit Service 4684c1
## Public domain.
Packit Service 4684c1
##
Packit Service 4684c1
## For details see http://shiftleft.org/papers/vector_aes/ and
Packit Service 4684c1
## http://crypto.stanford.edu/vpaes/.
Packit Service 4684c1
#
Packit Service 4684c1
# *** This file is auto-generated ***
Packit Service 4684c1
#
Packit Service 4684c1
.text
Packit Service 4684c1
.align	64
Packit Service 4684c1
.L_vpaes_consts:
Packit Service 4684c1
.long	218628480,235210255,168496130,67568393
Packit Service 4684c1
.long	252381056,17041926,33884169,51187212
Packit Service 4684c1
.long	252645135,252645135,252645135,252645135
Packit Service 4684c1
.long	1512730624,3266504856,1377990664,3401244816
Packit Service 4684c1
.long	830229760,1275146365,2969422977,3447763452
Packit Service 4684c1
.long	3411033600,2979783055,338359620,2782886510
Packit Service 4684c1
.long	4209124096,907596821,221174255,1006095553
Packit Service 4684c1
.long	191964160,3799684038,3164090317,1589111125
Packit Service 4684c1
.long	182528256,1777043520,2877432650,3265356744
Packit Service 4684c1
.long	1874708224,3503451415,3305285752,363511674
Packit Service 4684c1
.long	1606117888,3487855781,1093350906,2384367825
Packit Service 4684c1
.long	197121,67569157,134941193,202313229
Packit Service 4684c1
.long	67569157,134941193,202313229,197121
Packit Service 4684c1
.long	134941193,202313229,197121,67569157
Packit Service 4684c1
.long	202313229,197121,67569157,134941193
Packit Service 4684c1
.long	33619971,100992007,168364043,235736079
Packit Service 4684c1
.long	235736079,33619971,100992007,168364043
Packit Service 4684c1
.long	168364043,235736079,33619971,100992007
Packit Service 4684c1
.long	100992007,168364043,235736079,33619971
Packit Service 4684c1
.long	50462976,117835012,185207048,252579084
Packit Service 4684c1
.long	252314880,51251460,117574920,184942860
Packit Service 4684c1
.long	184682752,252054788,50987272,118359308
Packit Service 4684c1
.long	118099200,185467140,251790600,50727180
Packit Service 4684c1
.long	2946363062,528716217,1300004225,1881839624
Packit Service 4684c1
.long	1532713819,1532713819,1532713819,1532713819
Packit Service 4684c1
.long	3602276352,4288629033,3737020424,4153884961
Packit Service 4684c1
.long	1354558464,32357713,2958822624,3775749553
Packit Service 4684c1
.long	1201988352,132424512,1572796698,503232858
Packit Service 4684c1
.long	2213177600,1597421020,4103937655,675398315
Packit Service 4684c1
.long	2749646592,4273543773,1511898873,121693092
Packit Service 4684c1
.long	3040248576,1103263732,2871565598,1608280554
Packit Service 4684c1
.long	2236667136,2588920351,482954393,64377734
Packit Service 4684c1
.long	3069987328,291237287,2117370568,3650299247
Packit Service 4684c1
.long	533321216,3573750986,2572112006,1401264716
Packit Service 4684c1
.long	1339849704,2721158661,548607111,3445553514
Packit Service 4684c1
.long	2128193280,3054596040,2183486460,1257083700
Packit Service 4684c1
.long	655635200,1165381986,3923443150,2344132524
Packit Service 4684c1
.long	190078720,256924420,290342170,357187870
Packit Service 4684c1
.long	1610966272,2263057382,4103205268,309794674
Packit Service 4684c1
.long	2592527872,2233205587,1335446729,3402964816
Packit Service 4684c1
.long	3973531904,3225098121,3002836325,1918774430
Packit Service 4684c1
.long	3870401024,2102906079,2284471353,4117666579
Packit Service 4684c1
.long	617007872,1021508343,366931923,691083277
Packit Service 4684c1
.long	2528395776,3491914898,2968704004,1613121270
Packit Service 4684c1
.long	3445188352,3247741094,844474987,4093578302
Packit Service 4684c1
.long	651481088,1190302358,1689581232,574775300
Packit Service 4684c1
.long	4289380608,206939853,2555985458,2489840491
Packit Service 4684c1
.long	2130264064,327674451,3566485037,3349835193
Packit Service 4684c1
.long	2470714624,316102159,3636825756,3393945945
Packit Service 4684c1
.byte	86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105
Packit Service 4684c1
.byte	111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83
Packit Service 4684c1
.byte	83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117
Packit Service 4684c1
.byte	114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105
Packit Service 4684c1
.byte	118,101,114,115,105,116,121,41,0
Packit Service 4684c1
.align	64
Packit Service 4684c1
.def	__vpaes_preheat;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_preheat:
Packit Service 4684c1
	addl	(%esp),%ebp
Packit Service 4684c1
	movdqa	-48(%ebp),%xmm7
Packit Service 4684c1
	movdqa	-16(%ebp),%xmm6
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_encrypt_core;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_encrypt_core:
Packit Service 4684c1
	movl	$16,%ecx
Packit Service 4684c1
	movl	240(%edx),%eax
Packit Service 4684c1
	movdqa	%xmm6,%xmm1
Packit Service 4684c1
	movdqa	(%ebp),%xmm2
Packit Service 4684c1
	pandn	%xmm0,%xmm1
Packit Service 4684c1
	pand	%xmm6,%xmm0
Packit Service 4684c1
	movdqu	(%edx),%xmm5
Packit Service 4684c1
.byte	102,15,56,0,208
Packit Service 4684c1
	movdqa	16(%ebp),%xmm0
Packit Service 4684c1
	pxor	%xmm5,%xmm2
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
	addl	$16,%edx
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	leal	192(%ebp),%ebx
Packit Service 4684c1
	pxor	%xmm2,%xmm0
Packit Service 4684c1
	jmp	.L000enc_entry
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L001enc_loop:
Packit Service 4684c1
	movdqa	32(%ebp),%xmm4
Packit Service 4684c1
	movdqa	48(%ebp),%xmm0
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
.byte	102,15,56,0,195
Packit Service 4684c1
	pxor	%xmm5,%xmm4
Packit Service 4684c1
	movdqa	64(%ebp),%xmm5
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
	movdqa	-64(%ebx,%ecx,1),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,234
Packit Service 4684c1
	movdqa	80(%ebp),%xmm2
Packit Service 4684c1
	movdqa	(%ebx,%ecx,1),%xmm4
Packit Service 4684c1
.byte	102,15,56,0,211
Packit Service 4684c1
	movdqa	%xmm0,%xmm3
Packit Service 4684c1
	pxor	%xmm5,%xmm2
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	addl	$16,%edx
Packit Service 4684c1
	pxor	%xmm2,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,220
Packit Service 4684c1
	addl	$16,%ecx
Packit Service 4684c1
	pxor	%xmm0,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	andl	$48,%ecx
Packit Service 4684c1
	subl	$1,%eax
Packit Service 4684c1
	pxor	%xmm3,%xmm0
Packit Service 4684c1
.L000enc_entry:
Packit Service 4684c1
	movdqa	%xmm6,%xmm1
Packit Service 4684c1
	movdqa	-32(%ebp),%xmm5
Packit Service 4684c1
	pandn	%xmm0,%xmm1
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
	pand	%xmm6,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,232
Packit Service 4684c1
	movdqa	%xmm7,%xmm3
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	movdqa	%xmm7,%xmm4
Packit Service 4684c1
	pxor	%xmm5,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,224
Packit Service 4684c1
	movdqa	%xmm7,%xmm2
Packit Service 4684c1
	pxor	%xmm5,%xmm4
Packit Service 4684c1
.byte	102,15,56,0,211
Packit Service 4684c1
	movdqa	%xmm7,%xmm3
Packit Service 4684c1
	pxor	%xmm0,%xmm2
Packit Service 4684c1
.byte	102,15,56,0,220
Packit Service 4684c1
	movdqu	(%edx),%xmm5
Packit Service 4684c1
	pxor	%xmm1,%xmm3
Packit Service 4684c1
	jnz	.L001enc_loop
Packit Service 4684c1
	movdqa	96(%ebp),%xmm4
Packit Service 4684c1
	movdqa	112(%ebp),%xmm0
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
	pxor	%xmm5,%xmm4
Packit Service 4684c1
.byte	102,15,56,0,195
Packit Service 4684c1
	movdqa	64(%ebx,%ecx,1),%xmm1
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_decrypt_core;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_decrypt_core:
Packit Service 4684c1
	leal	608(%ebp),%ebx
Packit Service 4684c1
	movl	240(%edx),%eax
Packit Service 4684c1
	movdqa	%xmm6,%xmm1
Packit Service 4684c1
	movdqa	-64(%ebx),%xmm2
Packit Service 4684c1
	pandn	%xmm0,%xmm1
Packit Service 4684c1
	movl	%eax,%ecx
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
	movdqu	(%edx),%xmm5
Packit Service 4684c1
	shll	$4,%ecx
Packit Service 4684c1
	pand	%xmm6,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,208
Packit Service 4684c1
	movdqa	-48(%ebx),%xmm0
Packit Service 4684c1
	xorl	$48,%ecx
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	andl	$48,%ecx
Packit Service 4684c1
	pxor	%xmm5,%xmm2
Packit Service 4684c1
	movdqa	176(%ebp),%xmm5
Packit Service 4684c1
	pxor	%xmm2,%xmm0
Packit Service 4684c1
	addl	$16,%edx
Packit Service 4684c1
	leal	-352(%ebx,%ecx,1),%ecx
Packit Service 4684c1
	jmp	.L002dec_entry
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L003dec_loop:
Packit Service 4684c1
	movdqa	-32(%ebx),%xmm4
Packit Service 4684c1
	movdqa	-16(%ebx),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
.byte	102,15,56,0,203
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
	movdqa	(%ebx),%xmm4
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
	movdqa	16(%ebx),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
.byte	102,15,56,0,197
Packit Service 4684c1
.byte	102,15,56,0,203
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
	movdqa	32(%ebx),%xmm4
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
	movdqa	48(%ebx),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
.byte	102,15,56,0,197
Packit Service 4684c1
.byte	102,15,56,0,203
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
	movdqa	64(%ebx),%xmm4
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
	movdqa	80(%ebx),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
.byte	102,15,56,0,197
Packit Service 4684c1
.byte	102,15,56,0,203
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
	addl	$16,%edx
Packit Service 4684c1
.byte	102,15,58,15,237,12
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
	subl	$1,%eax
Packit Service 4684c1
.L002dec_entry:
Packit Service 4684c1
	movdqa	%xmm6,%xmm1
Packit Service 4684c1
	movdqa	-32(%ebp),%xmm2
Packit Service 4684c1
	pandn	%xmm0,%xmm1
Packit Service 4684c1
	pand	%xmm6,%xmm0
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
.byte	102,15,56,0,208
Packit Service 4684c1
	movdqa	%xmm7,%xmm3
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	movdqa	%xmm7,%xmm4
Packit Service 4684c1
	pxor	%xmm2,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,224
Packit Service 4684c1
	pxor	%xmm2,%xmm4
Packit Service 4684c1
	movdqa	%xmm7,%xmm2
Packit Service 4684c1
.byte	102,15,56,0,211
Packit Service 4684c1
	movdqa	%xmm7,%xmm3
Packit Service 4684c1
	pxor	%xmm0,%xmm2
Packit Service 4684c1
.byte	102,15,56,0,220
Packit Service 4684c1
	movdqu	(%edx),%xmm0
Packit Service 4684c1
	pxor	%xmm1,%xmm3
Packit Service 4684c1
	jnz	.L003dec_loop
Packit Service 4684c1
	movdqa	96(%ebx),%xmm4
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
	pxor	%xmm0,%xmm4
Packit Service 4684c1
	movdqa	112(%ebx),%xmm0
Packit Service 4684c1
	movdqa	(%ecx),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,195
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
.byte	102,15,56,0,194
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_schedule_core;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_schedule_core:
Packit Service 4684c1
	addl	(%esp),%ebp
Packit Service 4684c1
	movdqu	(%esi),%xmm0
Packit Service 4684c1
	movdqa	320(%ebp),%xmm2
Packit Service 4684c1
	movdqa	%xmm0,%xmm3
Packit Service 4684c1
	leal	(%ebp),%ebx
Packit Service 4684c1
	movdqa	%xmm2,4(%esp)
Packit Service 4684c1
	call	__vpaes_schedule_transform
Packit Service 4684c1
	movdqa	%xmm0,%xmm7
Packit Service 4684c1
	testl	%edi,%edi
Packit Service 4684c1
	jnz	.L004schedule_am_decrypting
Packit Service 4684c1
	movdqu	%xmm0,(%edx)
Packit Service 4684c1
	jmp	.L005schedule_go
Packit Service 4684c1
.L004schedule_am_decrypting:
Packit Service 4684c1
	movdqa	256(%ebp,%ecx,1),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	movdqu	%xmm3,(%edx)
Packit Service 4684c1
	xorl	$48,%ecx
Packit Service 4684c1
.L005schedule_go:
Packit Service 4684c1
	cmpl	$192,%eax
Packit Service 4684c1
	ja	.L006schedule_256
Packit Service 4684c1
	je	.L007schedule_192
Packit Service 4684c1
.L008schedule_128:
Packit Service 4684c1
	movl	$10,%eax
Packit Service 4684c1
.L009loop_schedule_128:
Packit Service 4684c1
	call	__vpaes_schedule_round
Packit Service 4684c1
	decl	%eax
Packit Service 4684c1
	jz	.L010schedule_mangle_last
Packit Service 4684c1
	call	__vpaes_schedule_mangle
Packit Service 4684c1
	jmp	.L009loop_schedule_128
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L007schedule_192:
Packit Service 4684c1
	movdqu	8(%esi),%xmm0
Packit Service 4684c1
	call	__vpaes_schedule_transform
Packit Service 4684c1
	movdqa	%xmm0,%xmm6
Packit Service 4684c1
	pxor	%xmm4,%xmm4
Packit Service 4684c1
	movhlps	%xmm4,%xmm6
Packit Service 4684c1
	movl	$4,%eax
Packit Service 4684c1
.L011loop_schedule_192:
Packit Service 4684c1
	call	__vpaes_schedule_round
Packit Service 4684c1
.byte	102,15,58,15,198,8
Packit Service 4684c1
	call	__vpaes_schedule_mangle
Packit Service 4684c1
	call	__vpaes_schedule_192_smear
Packit Service 4684c1
	call	__vpaes_schedule_mangle
Packit Service 4684c1
	call	__vpaes_schedule_round
Packit Service 4684c1
	decl	%eax
Packit Service 4684c1
	jz	.L010schedule_mangle_last
Packit Service 4684c1
	call	__vpaes_schedule_mangle
Packit Service 4684c1
	call	__vpaes_schedule_192_smear
Packit Service 4684c1
	jmp	.L011loop_schedule_192
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L006schedule_256:
Packit Service 4684c1
	movdqu	16(%esi),%xmm0
Packit Service 4684c1
	call	__vpaes_schedule_transform
Packit Service 4684c1
	movl	$7,%eax
Packit Service 4684c1
.L012loop_schedule_256:
Packit Service 4684c1
	call	__vpaes_schedule_mangle
Packit Service 4684c1
	movdqa	%xmm0,%xmm6
Packit Service 4684c1
	call	__vpaes_schedule_round
Packit Service 4684c1
	decl	%eax
Packit Service 4684c1
	jz	.L010schedule_mangle_last
Packit Service 4684c1
	call	__vpaes_schedule_mangle
Packit Service 4684c1
	pshufd	$255,%xmm0,%xmm0
Packit Service 4684c1
	movdqa	%xmm7,20(%esp)
Packit Service 4684c1
	movdqa	%xmm6,%xmm7
Packit Service 4684c1
	call	.L_vpaes_schedule_low_round
Packit Service 4684c1
	movdqa	20(%esp),%xmm7
Packit Service 4684c1
	jmp	.L012loop_schedule_256
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L010schedule_mangle_last:
Packit Service 4684c1
	leal	384(%ebp),%ebx
Packit Service 4684c1
	testl	%edi,%edi
Packit Service 4684c1
	jnz	.L013schedule_mangle_last_dec
Packit Service 4684c1
	movdqa	256(%ebp,%ecx,1),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	leal	352(%ebp),%ebx
Packit Service 4684c1
	addl	$32,%edx
Packit Service 4684c1
.L013schedule_mangle_last_dec:
Packit Service 4684c1
	addl	$-16,%edx
Packit Service 4684c1
	pxor	336(%ebp),%xmm0
Packit Service 4684c1
	call	__vpaes_schedule_transform
Packit Service 4684c1
	movdqu	%xmm0,(%edx)
Packit Service 4684c1
	pxor	%xmm0,%xmm0
Packit Service 4684c1
	pxor	%xmm1,%xmm1
Packit Service 4684c1
	pxor	%xmm2,%xmm2
Packit Service 4684c1
	pxor	%xmm3,%xmm3
Packit Service 4684c1
	pxor	%xmm4,%xmm4
Packit Service 4684c1
	pxor	%xmm5,%xmm5
Packit Service 4684c1
	pxor	%xmm6,%xmm6
Packit Service 4684c1
	pxor	%xmm7,%xmm7
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_schedule_192_smear;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_schedule_192_smear:
Packit Service 4684c1
	pshufd	$128,%xmm6,%xmm1
Packit Service 4684c1
	pshufd	$254,%xmm7,%xmm0
Packit Service 4684c1
	pxor	%xmm1,%xmm6
Packit Service 4684c1
	pxor	%xmm1,%xmm1
Packit Service 4684c1
	pxor	%xmm0,%xmm6
Packit Service 4684c1
	movdqa	%xmm6,%xmm0
Packit Service 4684c1
	movhlps	%xmm1,%xmm6
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_schedule_round;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_schedule_round:
Packit Service 4684c1
	movdqa	8(%esp),%xmm2
Packit Service 4684c1
	pxor	%xmm1,%xmm1
Packit Service 4684c1
.byte	102,15,58,15,202,15
Packit Service 4684c1
.byte	102,15,58,15,210,15
Packit Service 4684c1
	pxor	%xmm1,%xmm7
Packit Service 4684c1
	pshufd	$255,%xmm0,%xmm0
Packit Service 4684c1
.byte	102,15,58,15,192,1
Packit Service 4684c1
	movdqa	%xmm2,8(%esp)
Packit Service 4684c1
.L_vpaes_schedule_low_round:
Packit Service 4684c1
	movdqa	%xmm7,%xmm1
Packit Service 4684c1
	pslldq	$4,%xmm7
Packit Service 4684c1
	pxor	%xmm1,%xmm7
Packit Service 4684c1
	movdqa	%xmm7,%xmm1
Packit Service 4684c1
	pslldq	$8,%xmm7
Packit Service 4684c1
	pxor	%xmm1,%xmm7
Packit Service 4684c1
	pxor	336(%ebp),%xmm7
Packit Service 4684c1
	movdqa	-16(%ebp),%xmm4
Packit Service 4684c1
	movdqa	-48(%ebp),%xmm5
Packit Service 4684c1
	movdqa	%xmm4,%xmm1
Packit Service 4684c1
	pandn	%xmm0,%xmm1
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
	pand	%xmm4,%xmm0
Packit Service 4684c1
	movdqa	-32(%ebp),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,208
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
	movdqa	%xmm5,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	pxor	%xmm2,%xmm3
Packit Service 4684c1
	movdqa	%xmm5,%xmm4
Packit Service 4684c1
.byte	102,15,56,0,224
Packit Service 4684c1
	pxor	%xmm2,%xmm4
Packit Service 4684c1
	movdqa	%xmm5,%xmm2
Packit Service 4684c1
.byte	102,15,56,0,211
Packit Service 4684c1
	pxor	%xmm0,%xmm2
Packit Service 4684c1
	movdqa	%xmm5,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,220
Packit Service 4684c1
	pxor	%xmm1,%xmm3
Packit Service 4684c1
	movdqa	32(%ebp),%xmm4
Packit Service 4684c1
.byte	102,15,56,0,226
Packit Service 4684c1
	movdqa	48(%ebp),%xmm0
Packit Service 4684c1
.byte	102,15,56,0,195
Packit Service 4684c1
	pxor	%xmm4,%xmm0
Packit Service 4684c1
	pxor	%xmm7,%xmm0
Packit Service 4684c1
	movdqa	%xmm0,%xmm7
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_schedule_transform;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_schedule_transform:
Packit Service 4684c1
	movdqa	-16(%ebp),%xmm2
Packit Service 4684c1
	movdqa	%xmm2,%xmm1
Packit Service 4684c1
	pandn	%xmm0,%xmm1
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
	pand	%xmm2,%xmm0
Packit Service 4684c1
	movdqa	(%ebx),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,208
Packit Service 4684c1
	movdqa	16(%ebx),%xmm0
Packit Service 4684c1
.byte	102,15,56,0,193
Packit Service 4684c1
	pxor	%xmm2,%xmm0
Packit Service 4684c1
	ret
Packit Service 4684c1
.def	__vpaes_schedule_mangle;	.scl	3;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
__vpaes_schedule_mangle:
Packit Service 4684c1
	movdqa	%xmm0,%xmm4
Packit Service 4684c1
	movdqa	128(%ebp),%xmm5
Packit Service 4684c1
	testl	%edi,%edi
Packit Service 4684c1
	jnz	.L014schedule_mangle_dec
Packit Service 4684c1
	addl	$16,%edx
Packit Service 4684c1
	pxor	336(%ebp),%xmm4
Packit Service 4684c1
.byte	102,15,56,0,229
Packit Service 4684c1
	movdqa	%xmm4,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,229
Packit Service 4684c1
	pxor	%xmm4,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,229
Packit Service 4684c1
	pxor	%xmm4,%xmm3
Packit Service 4684c1
	jmp	.L015schedule_mangle_both
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L014schedule_mangle_dec:
Packit Service 4684c1
	movdqa	-16(%ebp),%xmm2
Packit Service 4684c1
	leal	416(%ebp),%esi
Packit Service 4684c1
	movdqa	%xmm2,%xmm1
Packit Service 4684c1
	pandn	%xmm4,%xmm1
Packit Service 4684c1
	psrld	$4,%xmm1
Packit Service 4684c1
	pand	%xmm2,%xmm4
Packit Service 4684c1
	movdqa	(%esi),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,212
Packit Service 4684c1
	movdqa	16(%esi),%xmm3
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	pxor	%xmm2,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,221
Packit Service 4684c1
	movdqa	32(%esi),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,212
Packit Service 4684c1
	pxor	%xmm3,%xmm2
Packit Service 4684c1
	movdqa	48(%esi),%xmm3
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	pxor	%xmm2,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,221
Packit Service 4684c1
	movdqa	64(%esi),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,212
Packit Service 4684c1
	pxor	%xmm3,%xmm2
Packit Service 4684c1
	movdqa	80(%esi),%xmm3
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	pxor	%xmm2,%xmm3
Packit Service 4684c1
.byte	102,15,56,0,221
Packit Service 4684c1
	movdqa	96(%esi),%xmm2
Packit Service 4684c1
.byte	102,15,56,0,212
Packit Service 4684c1
	pxor	%xmm3,%xmm2
Packit Service 4684c1
	movdqa	112(%esi),%xmm3
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	pxor	%xmm2,%xmm3
Packit Service 4684c1
	addl	$-16,%edx
Packit Service 4684c1
.L015schedule_mangle_both:
Packit Service 4684c1
	movdqa	256(%ebp,%ecx,1),%xmm1
Packit Service 4684c1
.byte	102,15,56,0,217
Packit Service 4684c1
	addl	$-16,%ecx
Packit Service 4684c1
	andl	$48,%ecx
Packit Service 4684c1
	movdqu	%xmm3,(%edx)
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_vpaes_set_encrypt_key
Packit Service 4684c1
.def	_vpaes_set_encrypt_key;	.scl	2;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
_vpaes_set_encrypt_key:
Packit Service 4684c1
.L_vpaes_set_encrypt_key_begin:
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%esi
Packit Service 4684c1
	leal	-56(%esp),%ebx
Packit Service 4684c1
	movl	24(%esp),%eax
Packit Service 4684c1
	andl	$-16,%ebx
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	xchgl	%esp,%ebx
Packit Service 4684c1
	movl	%ebx,48(%esp)
Packit Service 4684c1
	movl	%eax,%ebx
Packit Service 4684c1
	shrl	$5,%ebx
Packit Service 4684c1
	addl	$5,%ebx
Packit Service 4684c1
	movl	%ebx,240(%edx)
Packit Service 4684c1
	movl	$48,%ecx
Packit Service 4684c1
	movl	$0,%edi
Packit Service 4684c1
	leal	.L_vpaes_consts+0x30-.L016pic_point,%ebp
Packit Service 4684c1
	call	__vpaes_schedule_core
Packit Service 4684c1
.L016pic_point:
Packit Service 4684c1
	movl	48(%esp),%esp
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_vpaes_set_decrypt_key
Packit Service 4684c1
.def	_vpaes_set_decrypt_key;	.scl	2;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
_vpaes_set_decrypt_key:
Packit Service 4684c1
.L_vpaes_set_decrypt_key_begin:
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%esi
Packit Service 4684c1
	leal	-56(%esp),%ebx
Packit Service 4684c1
	movl	24(%esp),%eax
Packit Service 4684c1
	andl	$-16,%ebx
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	xchgl	%esp,%ebx
Packit Service 4684c1
	movl	%ebx,48(%esp)
Packit Service 4684c1
	movl	%eax,%ebx
Packit Service 4684c1
	shrl	$5,%ebx
Packit Service 4684c1
	addl	$5,%ebx
Packit Service 4684c1
	movl	%ebx,240(%edx)
Packit Service 4684c1
	shll	$4,%ebx
Packit Service 4684c1
	leal	16(%edx,%ebx,1),%edx
Packit Service 4684c1
	movl	$1,%edi
Packit Service 4684c1
	movl	%eax,%ecx
Packit Service 4684c1
	shrl	$1,%ecx
Packit Service 4684c1
	andl	$32,%ecx
Packit Service 4684c1
	xorl	$32,%ecx
Packit Service 4684c1
	leal	.L_vpaes_consts+0x30-.L017pic_point,%ebp
Packit Service 4684c1
	call	__vpaes_schedule_core
Packit Service 4684c1
.L017pic_point:
Packit Service 4684c1
	movl	48(%esp),%esp
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_vpaes_encrypt
Packit Service 4684c1
.def	_vpaes_encrypt;	.scl	2;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
_vpaes_encrypt:
Packit Service 4684c1
.L_vpaes_encrypt_begin:
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	leal	.L_vpaes_consts+0x30-.L018pic_point,%ebp
Packit Service 4684c1
	call	__vpaes_preheat
Packit Service 4684c1
.L018pic_point:
Packit Service 4684c1
	movl	20(%esp),%esi
Packit Service 4684c1
	leal	-56(%esp),%ebx
Packit Service 4684c1
	movl	24(%esp),%edi
Packit Service 4684c1
	andl	$-16,%ebx
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	xchgl	%esp,%ebx
Packit Service 4684c1
	movl	%ebx,48(%esp)
Packit Service 4684c1
	movdqu	(%esi),%xmm0
Packit Service 4684c1
	call	__vpaes_encrypt_core
Packit Service 4684c1
	movdqu	%xmm0,(%edi)
Packit Service 4684c1
	movl	48(%esp),%esp
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_vpaes_decrypt
Packit Service 4684c1
.def	_vpaes_decrypt;	.scl	2;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
_vpaes_decrypt:
Packit Service 4684c1
.L_vpaes_decrypt_begin:
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	leal	.L_vpaes_consts+0x30-.L019pic_point,%ebp
Packit Service 4684c1
	call	__vpaes_preheat
Packit Service 4684c1
.L019pic_point:
Packit Service 4684c1
	movl	20(%esp),%esi
Packit Service 4684c1
	leal	-56(%esp),%ebx
Packit Service 4684c1
	movl	24(%esp),%edi
Packit Service 4684c1
	andl	$-16,%ebx
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	xchgl	%esp,%ebx
Packit Service 4684c1
	movl	%ebx,48(%esp)
Packit Service 4684c1
	movdqu	(%esi),%xmm0
Packit Service 4684c1
	call	__vpaes_decrypt_core
Packit Service 4684c1
	movdqu	%xmm0,(%edi)
Packit Service 4684c1
	movl	48(%esp),%esp
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_vpaes_cbc_encrypt
Packit Service 4684c1
.def	_vpaes_cbc_encrypt;	.scl	2;	.type	32;	.endef
Packit Service 4684c1
.align	16
Packit Service 4684c1
_vpaes_cbc_encrypt:
Packit Service 4684c1
.L_vpaes_cbc_encrypt_begin:
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%esi
Packit Service 4684c1
	movl	24(%esp),%edi
Packit Service 4684c1
	movl	28(%esp),%eax
Packit Service 4684c1
	movl	32(%esp),%edx
Packit Service 4684c1
	subl	$16,%eax
Packit Service 4684c1
	jc	.L020cbc_abort
Packit Service 4684c1
	leal	-56(%esp),%ebx
Packit Service 4684c1
	movl	36(%esp),%ebp
Packit Service 4684c1
	andl	$-16,%ebx
Packit Service 4684c1
	movl	40(%esp),%ecx
Packit Service 4684c1
	xchgl	%esp,%ebx
Packit Service 4684c1
	movdqu	(%ebp),%xmm1
Packit Service 4684c1
	subl	%esi,%edi
Packit Service 4684c1
	movl	%ebx,48(%esp)
Packit Service 4684c1
	movl	%edi,(%esp)
Packit Service 4684c1
	movl	%edx,4(%esp)
Packit Service 4684c1
	movl	%ebp,8(%esp)
Packit Service 4684c1
	movl	%eax,%edi
Packit Service 4684c1
	leal	.L_vpaes_consts+0x30-.L021pic_point,%ebp
Packit Service 4684c1
	call	__vpaes_preheat
Packit Service 4684c1
.L021pic_point:
Packit Service 4684c1
	cmpl	$0,%ecx
Packit Service 4684c1
	je	.L022cbc_dec_loop
Packit Service 4684c1
	jmp	.L023cbc_enc_loop
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L023cbc_enc_loop:
Packit Service 4684c1
	movdqu	(%esi),%xmm0
Packit Service 4684c1
	pxor	%xmm1,%xmm0
Packit Service 4684c1
	call	__vpaes_encrypt_core
Packit Service 4684c1
	movl	(%esp),%ebx
Packit Service 4684c1
	movl	4(%esp),%edx
Packit Service 4684c1
	movdqa	%xmm0,%xmm1
Packit Service 4684c1
	movdqu	%xmm0,(%ebx,%esi,1)
Packit Service 4684c1
	leal	16(%esi),%esi
Packit Service 4684c1
	subl	$16,%edi
Packit Service 4684c1
	jnc	.L023cbc_enc_loop
Packit Service 4684c1
	jmp	.L024cbc_done
Packit Service 4684c1
.align	16
Packit Service 4684c1
.L022cbc_dec_loop:
Packit Service 4684c1
	movdqu	(%esi),%xmm0
Packit Service 4684c1
	movdqa	%xmm1,16(%esp)
Packit Service 4684c1
	movdqa	%xmm0,32(%esp)
Packit Service 4684c1
	call	__vpaes_decrypt_core
Packit Service 4684c1
	movl	(%esp),%ebx
Packit Service 4684c1
	movl	4(%esp),%edx
Packit Service 4684c1
	pxor	16(%esp),%xmm0
Packit Service 4684c1
	movdqa	32(%esp),%xmm1
Packit Service 4684c1
	movdqu	%xmm0,(%ebx,%esi,1)
Packit Service 4684c1
	leal	16(%esi),%esi
Packit Service 4684c1
	subl	$16,%edi
Packit Service 4684c1
	jnc	.L022cbc_dec_loop
Packit Service 4684c1
.L024cbc_done:
Packit Service 4684c1
	movl	8(%esp),%ebx
Packit Service 4684c1
	movl	48(%esp),%esp
Packit Service 4684c1
	movdqu	%xmm1,(%ebx)
Packit Service 4684c1
.L020cbc_abort:
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1