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

Packit aea12f
######################################################################
Packit aea12f
## Constant-time SSSE3 AES core implementation.
Packit aea12f
## version 0.1
Packit aea12f
##
Packit aea12f
## By Mike Hamburg (Stanford University), 2009
Packit aea12f
## Public domain.
Packit aea12f
##
Packit aea12f
## For details see https://shiftleft.org/papers/vector_aes/ and
Packit aea12f
## https://crypto.stanford.edu/vpaes/.
Packit aea12f
#
Packit aea12f
# *** This file is auto-generated ***
Packit aea12f
#
Packit aea12f
.text	
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_encrypt_core;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_encrypt_core:
Packit aea12f
	movq	%rdx,%r9
Packit aea12f
	movq	$16,%r11
Packit aea12f
	movl	240(%rdx),%eax
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	movdqa	.Lk_ipt(%rip),%xmm2
Packit aea12f
	pandn	%xmm0,%xmm1
Packit aea12f
	movdqu	(%r9),%xmm5
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	pand	%xmm9,%xmm0
Packit aea12f
.byte	102,15,56,0,208
Packit aea12f
	movdqa	.Lk_ipt+16(%rip),%xmm0
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	pxor	%xmm5,%xmm2
Packit aea12f
	addq	$16,%r9
Packit aea12f
	pxor	%xmm2,%xmm0
Packit aea12f
	leaq	.Lk_mc_backward(%rip),%r10
Packit aea12f
	jmp	.Lenc_entry
Packit aea12f
Packit aea12f
.p2align	4
Packit aea12f
.Lenc_loop:
Packit aea12f
Packit aea12f
	movdqa	%xmm13,%xmm4
Packit aea12f
	movdqa	%xmm12,%xmm0
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
.byte	102,15,56,0,195
Packit aea12f
	pxor	%xmm5,%xmm4
Packit aea12f
	movdqa	%xmm15,%xmm5
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
	movdqa	-64(%r11,%r10,1),%xmm1
Packit aea12f
.byte	102,15,56,0,234
Packit aea12f
	movdqa	(%r11,%r10,1),%xmm4
Packit aea12f
	movdqa	%xmm14,%xmm2
Packit aea12f
.byte	102,15,56,0,211
Packit aea12f
	movdqa	%xmm0,%xmm3
Packit aea12f
	pxor	%xmm5,%xmm2
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	addq	$16,%r9
Packit aea12f
	pxor	%xmm2,%xmm0
Packit aea12f
.byte	102,15,56,0,220
Packit aea12f
	addq	$16,%r11
Packit aea12f
	pxor	%xmm0,%xmm3
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	andq	$0x30,%r11
Packit aea12f
	subq	$1,%rax
Packit aea12f
	pxor	%xmm3,%xmm0
Packit aea12f
Packit aea12f
.Lenc_entry:
Packit aea12f
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	movdqa	%xmm11,%xmm5
Packit aea12f
	pandn	%xmm0,%xmm1
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	pand	%xmm9,%xmm0
Packit aea12f
.byte	102,15,56,0,232
Packit aea12f
	movdqa	%xmm10,%xmm3
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	movdqa	%xmm10,%xmm4
Packit aea12f
	pxor	%xmm5,%xmm3
Packit aea12f
.byte	102,15,56,0,224
Packit aea12f
	movdqa	%xmm10,%xmm2
Packit aea12f
	pxor	%xmm5,%xmm4
Packit aea12f
.byte	102,15,56,0,211
Packit aea12f
	movdqa	%xmm10,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm2
Packit aea12f
.byte	102,15,56,0,220
Packit aea12f
	movdqu	(%r9),%xmm5
Packit aea12f
	pxor	%xmm1,%xmm3
Packit aea12f
	jnz	.Lenc_loop
Packit aea12f
Packit aea12f
Packit aea12f
	movdqa	-96(%r10),%xmm4
Packit aea12f
	movdqa	-80(%r10),%xmm0
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
	pxor	%xmm5,%xmm4
Packit aea12f
.byte	102,15,56,0,195
Packit aea12f
	movdqa	64(%r11,%r10,1),%xmm1
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_decrypt_core;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_decrypt_core:
Packit aea12f
	movq	%rdx,%r9
Packit aea12f
	movl	240(%rdx),%eax
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	movdqa	.Lk_dipt(%rip),%xmm2
Packit aea12f
	pandn	%xmm0,%xmm1
Packit aea12f
	movq	%rax,%r11
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	movdqu	(%r9),%xmm5
Packit aea12f
	shlq	$4,%r11
Packit aea12f
	pand	%xmm9,%xmm0
Packit aea12f
.byte	102,15,56,0,208
Packit aea12f
	movdqa	.Lk_dipt+16(%rip),%xmm0
Packit aea12f
	xorq	$0x30,%r11
Packit aea12f
	leaq	.Lk_dsbd(%rip),%r10
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	andq	$0x30,%r11
Packit aea12f
	pxor	%xmm5,%xmm2
Packit aea12f
	movdqa	.Lk_mc_forward+48(%rip),%xmm5
Packit aea12f
	pxor	%xmm2,%xmm0
Packit aea12f
	addq	$16,%r9
Packit aea12f
	addq	%r10,%r11
Packit aea12f
	jmp	.Ldec_entry
Packit aea12f
Packit aea12f
.p2align	4
Packit aea12f
.Ldec_loop:
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
	movdqa	-32(%r10),%xmm4
Packit aea12f
	movdqa	-16(%r10),%xmm1
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
.byte	102,15,56,0,203
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
	movdqa	0(%r10),%xmm4
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
	movdqa	16(%r10),%xmm1
Packit aea12f
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
.byte	102,15,56,0,197
Packit aea12f
.byte	102,15,56,0,203
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
	movdqa	32(%r10),%xmm4
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
	movdqa	48(%r10),%xmm1
Packit aea12f
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
.byte	102,15,56,0,197
Packit aea12f
.byte	102,15,56,0,203
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
	movdqa	64(%r10),%xmm4
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
	movdqa	80(%r10),%xmm1
Packit aea12f
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
.byte	102,15,56,0,197
Packit aea12f
.byte	102,15,56,0,203
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
	addq	$16,%r9
Packit aea12f
.byte	102,15,58,15,237,12
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
	subq	$1,%rax
Packit aea12f
Packit aea12f
.Ldec_entry:
Packit aea12f
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	pandn	%xmm0,%xmm1
Packit aea12f
	movdqa	%xmm11,%xmm2
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	pand	%xmm9,%xmm0
Packit aea12f
.byte	102,15,56,0,208
Packit aea12f
	movdqa	%xmm10,%xmm3
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	movdqa	%xmm10,%xmm4
Packit aea12f
	pxor	%xmm2,%xmm3
Packit aea12f
.byte	102,15,56,0,224
Packit aea12f
	pxor	%xmm2,%xmm4
Packit aea12f
	movdqa	%xmm10,%xmm2
Packit aea12f
.byte	102,15,56,0,211
Packit aea12f
	movdqa	%xmm10,%xmm3
Packit aea12f
	pxor	%xmm0,%xmm2
Packit aea12f
.byte	102,15,56,0,220
Packit aea12f
	movdqu	(%r9),%xmm0
Packit aea12f
	pxor	%xmm1,%xmm3
Packit aea12f
	jnz	.Ldec_loop
Packit aea12f
Packit aea12f
Packit aea12f
	movdqa	96(%r10),%xmm4
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
	pxor	%xmm0,%xmm4
Packit aea12f
	movdqa	112(%r10),%xmm0
Packit aea12f
	movdqa	-352(%r11),%xmm2
Packit aea12f
.byte	102,15,56,0,195
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
.byte	102,15,56,0,194
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_schedule_core;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_schedule_core:
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
	call	_vpaes_preheat
Packit aea12f
	movdqa	.Lk_rcon(%rip),%xmm8
Packit aea12f
	movdqu	(%rdi),%xmm0
Packit aea12f
Packit aea12f
Packit aea12f
	movdqa	%xmm0,%xmm3
Packit aea12f
	leaq	.Lk_ipt(%rip),%r11
Packit aea12f
	call	_vpaes_schedule_transform
Packit aea12f
	movdqa	%xmm0,%xmm7
Packit aea12f
Packit aea12f
	leaq	.Lk_sr(%rip),%r10
Packit aea12f
	testq	%rcx,%rcx
Packit aea12f
	jnz	.Lschedule_am_decrypting
Packit aea12f
Packit aea12f
Packit aea12f
	movdqu	%xmm0,(%rdx)
Packit aea12f
	jmp	.Lschedule_go
Packit aea12f
Packit aea12f
.Lschedule_am_decrypting:
Packit aea12f
Packit aea12f
	movdqa	(%r8,%r10,1),%xmm1
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	movdqu	%xmm3,(%rdx)
Packit aea12f
	xorq	$0x30,%r8
Packit aea12f
Packit aea12f
.Lschedule_go:
Packit aea12f
	cmpl	$192,%esi
Packit aea12f
	ja	.Lschedule_256
Packit aea12f
	je	.Lschedule_192
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.Lschedule_128:
Packit aea12f
	movl	$10,%esi
Packit aea12f
Packit aea12f
.Loop_schedule_128:
Packit aea12f
	call	_vpaes_schedule_round
Packit aea12f
	decq	%rsi
Packit aea12f
	jz	.Lschedule_mangle_last
Packit aea12f
	call	_vpaes_schedule_mangle
Packit aea12f
	jmp	.Loop_schedule_128
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.p2align	4
Packit aea12f
.Lschedule_192:
Packit aea12f
	movdqu	8(%rdi),%xmm0
Packit aea12f
	call	_vpaes_schedule_transform
Packit aea12f
	movdqa	%xmm0,%xmm6
Packit aea12f
	pxor	%xmm4,%xmm4
Packit aea12f
	movhlps	%xmm4,%xmm6
Packit aea12f
	movl	$4,%esi
Packit aea12f
Packit aea12f
.Loop_schedule_192:
Packit aea12f
	call	_vpaes_schedule_round
Packit aea12f
.byte	102,15,58,15,198,8
Packit aea12f
	call	_vpaes_schedule_mangle
Packit aea12f
	call	_vpaes_schedule_192_smear
Packit aea12f
	call	_vpaes_schedule_mangle
Packit aea12f
	call	_vpaes_schedule_round
Packit aea12f
	decq	%rsi
Packit aea12f
	jz	.Lschedule_mangle_last
Packit aea12f
	call	_vpaes_schedule_mangle
Packit aea12f
	call	_vpaes_schedule_192_smear
Packit aea12f
	jmp	.Loop_schedule_192
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.p2align	4
Packit aea12f
.Lschedule_256:
Packit aea12f
	movdqu	16(%rdi),%xmm0
Packit aea12f
	call	_vpaes_schedule_transform
Packit aea12f
	movl	$7,%esi
Packit aea12f
Packit aea12f
.Loop_schedule_256:
Packit aea12f
	call	_vpaes_schedule_mangle
Packit aea12f
	movdqa	%xmm0,%xmm6
Packit aea12f
Packit aea12f
Packit aea12f
	call	_vpaes_schedule_round
Packit aea12f
	decq	%rsi
Packit aea12f
	jz	.Lschedule_mangle_last
Packit aea12f
	call	_vpaes_schedule_mangle
Packit aea12f
Packit aea12f
Packit aea12f
	pshufd	$0xFF,%xmm0,%xmm0
Packit aea12f
	movdqa	%xmm7,%xmm5
Packit aea12f
	movdqa	%xmm6,%xmm7
Packit aea12f
	call	_vpaes_schedule_low_round
Packit aea12f
	movdqa	%xmm5,%xmm7
Packit aea12f
Packit aea12f
	jmp	.Loop_schedule_256
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.p2align	4
Packit aea12f
.Lschedule_mangle_last:
Packit aea12f
Packit aea12f
	leaq	.Lk_deskew(%rip),%r11
Packit aea12f
	testq	%rcx,%rcx
Packit aea12f
	jnz	.Lschedule_mangle_last_dec
Packit aea12f
Packit aea12f
Packit aea12f
	movdqa	(%r8,%r10,1),%xmm1
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	leaq	.Lk_opt(%rip),%r11
Packit aea12f
	addq	$32,%rdx
Packit aea12f
Packit aea12f
.Lschedule_mangle_last_dec:
Packit aea12f
	addq	$-16,%rdx
Packit aea12f
	pxor	.Lk_s63(%rip),%xmm0
Packit aea12f
	call	_vpaes_schedule_transform
Packit aea12f
	movdqu	%xmm0,(%rdx)
Packit aea12f
Packit aea12f
Packit aea12f
	pxor	%xmm0,%xmm0
Packit aea12f
	pxor	%xmm1,%xmm1
Packit aea12f
	pxor	%xmm2,%xmm2
Packit aea12f
	pxor	%xmm3,%xmm3
Packit aea12f
	pxor	%xmm4,%xmm4
Packit aea12f
	pxor	%xmm5,%xmm5
Packit aea12f
	pxor	%xmm6,%xmm6
Packit aea12f
	pxor	%xmm7,%xmm7
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_schedule_192_smear;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_schedule_192_smear:
Packit aea12f
	pshufd	$0x80,%xmm6,%xmm1
Packit aea12f
	pshufd	$0xFE,%xmm7,%xmm0
Packit aea12f
	pxor	%xmm1,%xmm6
Packit aea12f
	pxor	%xmm1,%xmm1
Packit aea12f
	pxor	%xmm0,%xmm6
Packit aea12f
	movdqa	%xmm6,%xmm0
Packit aea12f
	movhlps	%xmm1,%xmm6
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_schedule_round;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_schedule_round:
Packit aea12f
Packit aea12f
	pxor	%xmm1,%xmm1
Packit aea12f
.byte	102,65,15,58,15,200,15
Packit aea12f
.byte	102,69,15,58,15,192,15
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
Packit aea12f
Packit aea12f
	pshufd	$0xFF,%xmm0,%xmm0
Packit aea12f
.byte	102,15,58,15,192,1
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
_vpaes_schedule_low_round:
Packit aea12f
Packit aea12f
	movdqa	%xmm7,%xmm1
Packit aea12f
	pslldq	$4,%xmm7
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
	movdqa	%xmm7,%xmm1
Packit aea12f
	pslldq	$8,%xmm7
Packit aea12f
	pxor	%xmm1,%xmm7
Packit aea12f
	pxor	.Lk_s63(%rip),%xmm7
Packit aea12f
Packit aea12f
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	pandn	%xmm0,%xmm1
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	pand	%xmm9,%xmm0
Packit aea12f
	movdqa	%xmm11,%xmm2
Packit aea12f
.byte	102,15,56,0,208
Packit aea12f
	pxor	%xmm1,%xmm0
Packit aea12f
	movdqa	%xmm10,%xmm3
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	pxor	%xmm2,%xmm3
Packit aea12f
	movdqa	%xmm10,%xmm4
Packit aea12f
.byte	102,15,56,0,224
Packit aea12f
	pxor	%xmm2,%xmm4
Packit aea12f
	movdqa	%xmm10,%xmm2
Packit aea12f
.byte	102,15,56,0,211
Packit aea12f
	pxor	%xmm0,%xmm2
Packit aea12f
	movdqa	%xmm10,%xmm3
Packit aea12f
.byte	102,15,56,0,220
Packit aea12f
	pxor	%xmm1,%xmm3
Packit aea12f
	movdqa	%xmm13,%xmm4
Packit aea12f
.byte	102,15,56,0,226
Packit aea12f
	movdqa	%xmm12,%xmm0
Packit aea12f
.byte	102,15,56,0,195
Packit aea12f
	pxor	%xmm4,%xmm0
Packit aea12f
Packit aea12f
Packit aea12f
	pxor	%xmm7,%xmm0
Packit aea12f
	movdqa	%xmm0,%xmm7
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_schedule_transform;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_schedule_transform:
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	pandn	%xmm0,%xmm1
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	pand	%xmm9,%xmm0
Packit aea12f
	movdqa	(%r11),%xmm2
Packit aea12f
.byte	102,15,56,0,208
Packit aea12f
	movdqa	16(%r11),%xmm0
Packit aea12f
.byte	102,15,56,0,193
Packit aea12f
	pxor	%xmm2,%xmm0
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_schedule_mangle;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_schedule_mangle:
Packit aea12f
	movdqa	%xmm0,%xmm4
Packit aea12f
	movdqa	.Lk_mc_forward(%rip),%xmm5
Packit aea12f
	testq	%rcx,%rcx
Packit aea12f
	jnz	.Lschedule_mangle_dec
Packit aea12f
Packit aea12f
Packit aea12f
	addq	$16,%rdx
Packit aea12f
	pxor	.Lk_s63(%rip),%xmm4
Packit aea12f
.byte	102,15,56,0,229
Packit aea12f
	movdqa	%xmm4,%xmm3
Packit aea12f
.byte	102,15,56,0,229
Packit aea12f
	pxor	%xmm4,%xmm3
Packit aea12f
.byte	102,15,56,0,229
Packit aea12f
	pxor	%xmm4,%xmm3
Packit aea12f
Packit aea12f
	jmp	.Lschedule_mangle_both
Packit aea12f
.p2align	4
Packit aea12f
.Lschedule_mangle_dec:
Packit aea12f
Packit aea12f
	leaq	.Lk_dksd(%rip),%r11
Packit aea12f
	movdqa	%xmm9,%xmm1
Packit aea12f
	pandn	%xmm4,%xmm1
Packit aea12f
	psrld	$4,%xmm1
Packit aea12f
	pand	%xmm9,%xmm4
Packit aea12f
Packit aea12f
	movdqa	0(%r11),%xmm2
Packit aea12f
.byte	102,15,56,0,212
Packit aea12f
	movdqa	16(%r11),%xmm3
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	pxor	%xmm2,%xmm3
Packit aea12f
.byte	102,15,56,0,221
Packit aea12f
Packit aea12f
	movdqa	32(%r11),%xmm2
Packit aea12f
.byte	102,15,56,0,212
Packit aea12f
	pxor	%xmm3,%xmm2
Packit aea12f
	movdqa	48(%r11),%xmm3
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	pxor	%xmm2,%xmm3
Packit aea12f
.byte	102,15,56,0,221
Packit aea12f
Packit aea12f
	movdqa	64(%r11),%xmm2
Packit aea12f
.byte	102,15,56,0,212
Packit aea12f
	pxor	%xmm3,%xmm2
Packit aea12f
	movdqa	80(%r11),%xmm3
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	pxor	%xmm2,%xmm3
Packit aea12f
.byte	102,15,56,0,221
Packit aea12f
Packit aea12f
	movdqa	96(%r11),%xmm2
Packit aea12f
.byte	102,15,56,0,212
Packit aea12f
	pxor	%xmm3,%xmm2
Packit aea12f
	movdqa	112(%r11),%xmm3
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	pxor	%xmm2,%xmm3
Packit aea12f
Packit aea12f
	addq	$-16,%rdx
Packit aea12f
Packit aea12f
.Lschedule_mangle_both:
Packit aea12f
	movdqa	(%r8,%r10,1),%xmm1
Packit aea12f
.byte	102,15,56,0,217
Packit aea12f
	addq	$-16,%r8
Packit aea12f
	andq	$0x30,%r8
Packit aea12f
	movdqu	%xmm3,(%rdx)
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.globl	vpaes_set_encrypt_key
Packit aea12f
.def	vpaes_set_encrypt_key;	.scl 2;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
vpaes_set_encrypt_key:
Packit aea12f
	movq	%rdi,8(%rsp)
Packit aea12f
	movq	%rsi,16(%rsp)
Packit aea12f
	movq	%rsp,%rax
Packit aea12f
.LSEH_begin_vpaes_set_encrypt_key:
Packit aea12f
	movq	%rcx,%rdi
Packit aea12f
	movq	%rdx,%rsi
Packit aea12f
	movq	%r8,%rdx
Packit aea12f
Packit aea12f
	leaq	-184(%rsp),%rsp
Packit aea12f
	movaps	%xmm6,16(%rsp)
Packit aea12f
	movaps	%xmm7,32(%rsp)
Packit aea12f
	movaps	%xmm8,48(%rsp)
Packit aea12f
	movaps	%xmm9,64(%rsp)
Packit aea12f
	movaps	%xmm10,80(%rsp)
Packit aea12f
	movaps	%xmm11,96(%rsp)
Packit aea12f
	movaps	%xmm12,112(%rsp)
Packit aea12f
	movaps	%xmm13,128(%rsp)
Packit aea12f
	movaps	%xmm14,144(%rsp)
Packit aea12f
	movaps	%xmm15,160(%rsp)
Packit aea12f
.Lenc_key_body:
Packit aea12f
	movl	%esi,%eax
Packit aea12f
	shrl	$5,%eax
Packit aea12f
	addl	$5,%eax
Packit aea12f
	movl	%eax,240(%rdx)
Packit aea12f
Packit aea12f
	movl	$0,%ecx
Packit aea12f
	movl	$0x30,%r8d
Packit aea12f
	call	_vpaes_schedule_core
Packit aea12f
	movaps	16(%rsp),%xmm6
Packit aea12f
	movaps	32(%rsp),%xmm7
Packit aea12f
	movaps	48(%rsp),%xmm8
Packit aea12f
	movaps	64(%rsp),%xmm9
Packit aea12f
	movaps	80(%rsp),%xmm10
Packit aea12f
	movaps	96(%rsp),%xmm11
Packit aea12f
	movaps	112(%rsp),%xmm12
Packit aea12f
	movaps	128(%rsp),%xmm13
Packit aea12f
	movaps	144(%rsp),%xmm14
Packit aea12f
	movaps	160(%rsp),%xmm15
Packit aea12f
	leaq	184(%rsp),%rsp
Packit aea12f
.Lenc_key_epilogue:
Packit aea12f
	xorl	%eax,%eax
Packit aea12f
	movq	8(%rsp),%rdi
Packit aea12f
	movq	16(%rsp),%rsi
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
.LSEH_end_vpaes_set_encrypt_key:
Packit aea12f
Packit aea12f
.globl	vpaes_set_decrypt_key
Packit aea12f
.def	vpaes_set_decrypt_key;	.scl 2;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
vpaes_set_decrypt_key:
Packit aea12f
	movq	%rdi,8(%rsp)
Packit aea12f
	movq	%rsi,16(%rsp)
Packit aea12f
	movq	%rsp,%rax
Packit aea12f
.LSEH_begin_vpaes_set_decrypt_key:
Packit aea12f
	movq	%rcx,%rdi
Packit aea12f
	movq	%rdx,%rsi
Packit aea12f
	movq	%r8,%rdx
Packit aea12f
Packit aea12f
	leaq	-184(%rsp),%rsp
Packit aea12f
	movaps	%xmm6,16(%rsp)
Packit aea12f
	movaps	%xmm7,32(%rsp)
Packit aea12f
	movaps	%xmm8,48(%rsp)
Packit aea12f
	movaps	%xmm9,64(%rsp)
Packit aea12f
	movaps	%xmm10,80(%rsp)
Packit aea12f
	movaps	%xmm11,96(%rsp)
Packit aea12f
	movaps	%xmm12,112(%rsp)
Packit aea12f
	movaps	%xmm13,128(%rsp)
Packit aea12f
	movaps	%xmm14,144(%rsp)
Packit aea12f
	movaps	%xmm15,160(%rsp)
Packit aea12f
.Ldec_key_body:
Packit aea12f
	movl	%esi,%eax
Packit aea12f
	shrl	$5,%eax
Packit aea12f
	addl	$5,%eax
Packit aea12f
	movl	%eax,240(%rdx)
Packit aea12f
	shll	$4,%eax
Packit aea12f
	leaq	16(%rdx,%rax,1),%rdx
Packit aea12f
Packit aea12f
	movl	$1,%ecx
Packit aea12f
	movl	%esi,%r8d
Packit aea12f
	shrl	$1,%r8d
Packit aea12f
	andl	$32,%r8d
Packit aea12f
	xorl	$32,%r8d
Packit aea12f
	call	_vpaes_schedule_core
Packit aea12f
	movaps	16(%rsp),%xmm6
Packit aea12f
	movaps	32(%rsp),%xmm7
Packit aea12f
	movaps	48(%rsp),%xmm8
Packit aea12f
	movaps	64(%rsp),%xmm9
Packit aea12f
	movaps	80(%rsp),%xmm10
Packit aea12f
	movaps	96(%rsp),%xmm11
Packit aea12f
	movaps	112(%rsp),%xmm12
Packit aea12f
	movaps	128(%rsp),%xmm13
Packit aea12f
	movaps	144(%rsp),%xmm14
Packit aea12f
	movaps	160(%rsp),%xmm15
Packit aea12f
	leaq	184(%rsp),%rsp
Packit aea12f
.Ldec_key_epilogue:
Packit aea12f
	xorl	%eax,%eax
Packit aea12f
	movq	8(%rsp),%rdi
Packit aea12f
	movq	16(%rsp),%rsi
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
.LSEH_end_vpaes_set_decrypt_key:
Packit aea12f
Packit aea12f
.globl	vpaes_encrypt
Packit aea12f
.def	vpaes_encrypt;	.scl 2;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
vpaes_encrypt:
Packit aea12f
	movq	%rdi,8(%rsp)
Packit aea12f
	movq	%rsi,16(%rsp)
Packit aea12f
	movq	%rsp,%rax
Packit aea12f
.LSEH_begin_vpaes_encrypt:
Packit aea12f
	movq	%rcx,%rdi
Packit aea12f
	movq	%rdx,%rsi
Packit aea12f
	movq	%r8,%rdx
Packit aea12f
Packit aea12f
	leaq	-184(%rsp),%rsp
Packit aea12f
	movaps	%xmm6,16(%rsp)
Packit aea12f
	movaps	%xmm7,32(%rsp)
Packit aea12f
	movaps	%xmm8,48(%rsp)
Packit aea12f
	movaps	%xmm9,64(%rsp)
Packit aea12f
	movaps	%xmm10,80(%rsp)
Packit aea12f
	movaps	%xmm11,96(%rsp)
Packit aea12f
	movaps	%xmm12,112(%rsp)
Packit aea12f
	movaps	%xmm13,128(%rsp)
Packit aea12f
	movaps	%xmm14,144(%rsp)
Packit aea12f
	movaps	%xmm15,160(%rsp)
Packit aea12f
.Lenc_body:
Packit aea12f
	movdqu	(%rdi),%xmm0
Packit aea12f
	call	_vpaes_preheat
Packit aea12f
	call	_vpaes_encrypt_core
Packit aea12f
	movdqu	%xmm0,(%rsi)
Packit aea12f
	movaps	16(%rsp),%xmm6
Packit aea12f
	movaps	32(%rsp),%xmm7
Packit aea12f
	movaps	48(%rsp),%xmm8
Packit aea12f
	movaps	64(%rsp),%xmm9
Packit aea12f
	movaps	80(%rsp),%xmm10
Packit aea12f
	movaps	96(%rsp),%xmm11
Packit aea12f
	movaps	112(%rsp),%xmm12
Packit aea12f
	movaps	128(%rsp),%xmm13
Packit aea12f
	movaps	144(%rsp),%xmm14
Packit aea12f
	movaps	160(%rsp),%xmm15
Packit aea12f
	leaq	184(%rsp),%rsp
Packit aea12f
.Lenc_epilogue:
Packit aea12f
	movq	8(%rsp),%rdi
Packit aea12f
	movq	16(%rsp),%rsi
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
.LSEH_end_vpaes_encrypt:
Packit aea12f
Packit aea12f
.globl	vpaes_decrypt
Packit aea12f
.def	vpaes_decrypt;	.scl 2;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
vpaes_decrypt:
Packit aea12f
	movq	%rdi,8(%rsp)
Packit aea12f
	movq	%rsi,16(%rsp)
Packit aea12f
	movq	%rsp,%rax
Packit aea12f
.LSEH_begin_vpaes_decrypt:
Packit aea12f
	movq	%rcx,%rdi
Packit aea12f
	movq	%rdx,%rsi
Packit aea12f
	movq	%r8,%rdx
Packit aea12f
Packit aea12f
	leaq	-184(%rsp),%rsp
Packit aea12f
	movaps	%xmm6,16(%rsp)
Packit aea12f
	movaps	%xmm7,32(%rsp)
Packit aea12f
	movaps	%xmm8,48(%rsp)
Packit aea12f
	movaps	%xmm9,64(%rsp)
Packit aea12f
	movaps	%xmm10,80(%rsp)
Packit aea12f
	movaps	%xmm11,96(%rsp)
Packit aea12f
	movaps	%xmm12,112(%rsp)
Packit aea12f
	movaps	%xmm13,128(%rsp)
Packit aea12f
	movaps	%xmm14,144(%rsp)
Packit aea12f
	movaps	%xmm15,160(%rsp)
Packit aea12f
.Ldec_body:
Packit aea12f
	movdqu	(%rdi),%xmm0
Packit aea12f
	call	_vpaes_preheat
Packit aea12f
	call	_vpaes_decrypt_core
Packit aea12f
	movdqu	%xmm0,(%rsi)
Packit aea12f
	movaps	16(%rsp),%xmm6
Packit aea12f
	movaps	32(%rsp),%xmm7
Packit aea12f
	movaps	48(%rsp),%xmm8
Packit aea12f
	movaps	64(%rsp),%xmm9
Packit aea12f
	movaps	80(%rsp),%xmm10
Packit aea12f
	movaps	96(%rsp),%xmm11
Packit aea12f
	movaps	112(%rsp),%xmm12
Packit aea12f
	movaps	128(%rsp),%xmm13
Packit aea12f
	movaps	144(%rsp),%xmm14
Packit aea12f
	movaps	160(%rsp),%xmm15
Packit aea12f
	leaq	184(%rsp),%rsp
Packit aea12f
.Ldec_epilogue:
Packit aea12f
	movq	8(%rsp),%rdi
Packit aea12f
	movq	16(%rsp),%rsi
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
.LSEH_end_vpaes_decrypt:
Packit aea12f
.globl	vpaes_cbc_encrypt
Packit aea12f
.def	vpaes_cbc_encrypt;	.scl 2;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
vpaes_cbc_encrypt:
Packit aea12f
	movq	%rdi,8(%rsp)
Packit aea12f
	movq	%rsi,16(%rsp)
Packit aea12f
	movq	%rsp,%rax
Packit aea12f
.LSEH_begin_vpaes_cbc_encrypt:
Packit aea12f
	movq	%rcx,%rdi
Packit aea12f
	movq	%rdx,%rsi
Packit aea12f
	movq	%r8,%rdx
Packit aea12f
	movq	%r9,%rcx
Packit aea12f
	movq	40(%rsp),%r8
Packit aea12f
	movq	48(%rsp),%r9
Packit aea12f
Packit aea12f
	xchgq	%rcx,%rdx
Packit aea12f
	subq	$16,%rcx
Packit aea12f
	jc	.Lcbc_abort
Packit aea12f
	leaq	-184(%rsp),%rsp
Packit aea12f
	movaps	%xmm6,16(%rsp)
Packit aea12f
	movaps	%xmm7,32(%rsp)
Packit aea12f
	movaps	%xmm8,48(%rsp)
Packit aea12f
	movaps	%xmm9,64(%rsp)
Packit aea12f
	movaps	%xmm10,80(%rsp)
Packit aea12f
	movaps	%xmm11,96(%rsp)
Packit aea12f
	movaps	%xmm12,112(%rsp)
Packit aea12f
	movaps	%xmm13,128(%rsp)
Packit aea12f
	movaps	%xmm14,144(%rsp)
Packit aea12f
	movaps	%xmm15,160(%rsp)
Packit aea12f
.Lcbc_body:
Packit aea12f
	movdqu	(%r8),%xmm6
Packit aea12f
	subq	%rdi,%rsi
Packit aea12f
	call	_vpaes_preheat
Packit aea12f
	cmpl	$0,%r9d
Packit aea12f
	je	.Lcbc_dec_loop
Packit aea12f
	jmp	.Lcbc_enc_loop
Packit aea12f
.p2align	4
Packit aea12f
.Lcbc_enc_loop:
Packit aea12f
	movdqu	(%rdi),%xmm0
Packit aea12f
	pxor	%xmm6,%xmm0
Packit aea12f
	call	_vpaes_encrypt_core
Packit aea12f
	movdqa	%xmm0,%xmm6
Packit aea12f
	movdqu	%xmm0,(%rsi,%rdi,1)
Packit aea12f
	leaq	16(%rdi),%rdi
Packit aea12f
	subq	$16,%rcx
Packit aea12f
	jnc	.Lcbc_enc_loop
Packit aea12f
	jmp	.Lcbc_done
Packit aea12f
.p2align	4
Packit aea12f
.Lcbc_dec_loop:
Packit aea12f
	movdqu	(%rdi),%xmm0
Packit aea12f
	movdqa	%xmm0,%xmm7
Packit aea12f
	call	_vpaes_decrypt_core
Packit aea12f
	pxor	%xmm6,%xmm0
Packit aea12f
	movdqa	%xmm7,%xmm6
Packit aea12f
	movdqu	%xmm0,(%rsi,%rdi,1)
Packit aea12f
	leaq	16(%rdi),%rdi
Packit aea12f
	subq	$16,%rcx
Packit aea12f
	jnc	.Lcbc_dec_loop
Packit aea12f
.Lcbc_done:
Packit aea12f
	movdqu	%xmm6,(%r8)
Packit aea12f
	movaps	16(%rsp),%xmm6
Packit aea12f
	movaps	32(%rsp),%xmm7
Packit aea12f
	movaps	48(%rsp),%xmm8
Packit aea12f
	movaps	64(%rsp),%xmm9
Packit aea12f
	movaps	80(%rsp),%xmm10
Packit aea12f
	movaps	96(%rsp),%xmm11
Packit aea12f
	movaps	112(%rsp),%xmm12
Packit aea12f
	movaps	128(%rsp),%xmm13
Packit aea12f
	movaps	144(%rsp),%xmm14
Packit aea12f
	movaps	160(%rsp),%xmm15
Packit aea12f
	leaq	184(%rsp),%rsp
Packit aea12f
.Lcbc_epilogue:
Packit aea12f
.Lcbc_abort:
Packit aea12f
	movq	8(%rsp),%rdi
Packit aea12f
	movq	16(%rsp),%rsi
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
.LSEH_end_vpaes_cbc_encrypt:
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.def	_vpaes_preheat;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
_vpaes_preheat:
Packit aea12f
	leaq	.Lk_s0F(%rip),%r10
Packit aea12f
	movdqa	-32(%r10),%xmm10
Packit aea12f
	movdqa	-16(%r10),%xmm11
Packit aea12f
	movdqa	0(%r10),%xmm9
Packit aea12f
	movdqa	48(%r10),%xmm13
Packit aea12f
	movdqa	64(%r10),%xmm12
Packit aea12f
	movdqa	80(%r10),%xmm15
Packit aea12f
	movdqa	96(%r10),%xmm14
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.p2align	6
Packit aea12f
_vpaes_consts:
Packit aea12f
.Lk_inv:
Packit aea12f
.quad	0x0E05060F0D080180, 0x040703090A0B0C02
Packit aea12f
.quad	0x01040A060F0B0780, 0x030D0E0C02050809
Packit aea12f
Packit aea12f
.Lk_s0F:
Packit aea12f
.quad	0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
Packit aea12f
Packit aea12f
.Lk_ipt:
Packit aea12f
.quad	0xC2B2E8985A2A7000, 0xCABAE09052227808
Packit aea12f
.quad	0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
Packit aea12f
Packit aea12f
.Lk_sb1:
Packit aea12f
.quad	0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
Packit aea12f
.quad	0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
Packit aea12f
.Lk_sb2:
Packit aea12f
.quad	0xE27A93C60B712400, 0x5EB7E955BC982FCD
Packit aea12f
.quad	0x69EB88400AE12900, 0xC2A163C8AB82234A
Packit aea12f
.Lk_sbo:
Packit aea12f
.quad	0xD0D26D176FBDC700, 0x15AABF7AC502A878
Packit aea12f
.quad	0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
Packit aea12f
Packit aea12f
.Lk_mc_forward:
Packit aea12f
.quad	0x0407060500030201, 0x0C0F0E0D080B0A09
Packit aea12f
.quad	0x080B0A0904070605, 0x000302010C0F0E0D
Packit aea12f
.quad	0x0C0F0E0D080B0A09, 0x0407060500030201
Packit aea12f
.quad	0x000302010C0F0E0D, 0x080B0A0904070605
Packit aea12f
Packit aea12f
.Lk_mc_backward:
Packit aea12f
.quad	0x0605040702010003, 0x0E0D0C0F0A09080B
Packit aea12f
.quad	0x020100030E0D0C0F, 0x0A09080B06050407
Packit aea12f
.quad	0x0E0D0C0F0A09080B, 0x0605040702010003
Packit aea12f
.quad	0x0A09080B06050407, 0x020100030E0D0C0F
Packit aea12f
Packit aea12f
.Lk_sr:
Packit aea12f
.quad	0x0706050403020100, 0x0F0E0D0C0B0A0908
Packit aea12f
.quad	0x030E09040F0A0500, 0x0B06010C07020D08
Packit aea12f
.quad	0x0F060D040B020900, 0x070E050C030A0108
Packit aea12f
.quad	0x0B0E0104070A0D00, 0x0306090C0F020508
Packit aea12f
Packit aea12f
.Lk_rcon:
Packit aea12f
.quad	0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
Packit aea12f
Packit aea12f
.Lk_s63:
Packit aea12f
.quad	0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
Packit aea12f
Packit aea12f
.Lk_opt:
Packit aea12f
.quad	0xFF9F4929D6B66000, 0xF7974121DEBE6808
Packit aea12f
.quad	0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
Packit aea12f
Packit aea12f
.Lk_deskew:
Packit aea12f
.quad	0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
Packit aea12f
.quad	0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.Lk_dksd:
Packit aea12f
.quad	0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
Packit aea12f
.quad	0x41C277F4B5368300, 0x5FDC69EAAB289D1E
Packit aea12f
.Lk_dksb:
Packit aea12f
.quad	0x9A4FCA1F8550D500, 0x03D653861CC94C99
Packit aea12f
.quad	0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
Packit aea12f
.Lk_dkse:
Packit aea12f
.quad	0xD5031CCA1FC9D600, 0x53859A4C994F5086
Packit aea12f
.quad	0xA23196054FDC7BE8, 0xCD5EF96A20B31487
Packit aea12f
.Lk_dks9:
Packit aea12f
.quad	0xB6116FC87ED9A700, 0x4AED933482255BFC
Packit aea12f
.quad	0x4576516227143300, 0x8BB89FACE9DAFDCE
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
Packit aea12f
.Lk_dipt:
Packit aea12f
.quad	0x0F505B040B545F00, 0x154A411E114E451A
Packit aea12f
.quad	0x86E383E660056500, 0x12771772F491F194
Packit aea12f
Packit aea12f
.Lk_dsb9:
Packit aea12f
.quad	0x851C03539A86D600, 0xCAD51F504F994CC9
Packit aea12f
.quad	0xC03B1789ECD74900, 0x725E2C9EB2FBA565
Packit aea12f
.Lk_dsbd:
Packit aea12f
.quad	0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
Packit aea12f
.quad	0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
Packit aea12f
.Lk_dsbb:
Packit aea12f
.quad	0xD022649296B44200, 0x602646F6B0F2D404
Packit aea12f
.quad	0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
Packit aea12f
.Lk_dsbe:
Packit aea12f
.quad	0x46F2929626D4D000, 0x2242600464B4F6B0
Packit aea12f
.quad	0x0C55A6CDFFAAC100, 0x9467F36B98593E32
Packit aea12f
.Lk_dsbo:
Packit aea12f
.quad	0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
Packit aea12f
.quad	0x12D7560F93441D00, 0xCA4B8159D8C58E9C
Packit aea12f
.byte	86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
Packit aea12f
.p2align	6
Packit aea12f
Packit aea12f
Packit aea12f
.def	se_handler;	.scl 3;	.type 32;	.endef
Packit aea12f
.p2align	4
Packit aea12f
se_handler:
Packit aea12f
	pushq	%rsi
Packit aea12f
	pushq	%rdi
Packit aea12f
	pushq	%rbx
Packit aea12f
	pushq	%rbp
Packit aea12f
	pushq	%r12
Packit aea12f
	pushq	%r13
Packit aea12f
	pushq	%r14
Packit aea12f
	pushq	%r15
Packit aea12f
	pushfq
Packit aea12f
	subq	$64,%rsp
Packit aea12f
Packit aea12f
	movq	120(%r8),%rax
Packit aea12f
	movq	248(%r8),%rbx
Packit aea12f
Packit aea12f
	movq	8(%r9),%rsi
Packit aea12f
	movq	56(%r9),%r11
Packit aea12f
Packit aea12f
	movl	0(%r11),%r10d
Packit aea12f
	leaq	(%rsi,%r10,1),%r10
Packit aea12f
	cmpq	%r10,%rbx
Packit aea12f
	jb	.Lin_prologue
Packit aea12f
Packit aea12f
	movq	152(%r8),%rax
Packit aea12f
Packit aea12f
	movl	4(%r11),%r10d
Packit aea12f
	leaq	(%rsi,%r10,1),%r10
Packit aea12f
	cmpq	%r10,%rbx
Packit aea12f
	jae	.Lin_prologue
Packit aea12f
Packit aea12f
	leaq	16(%rax),%rsi
Packit aea12f
	leaq	512(%r8),%rdi
Packit aea12f
	movl	$20,%ecx
Packit aea12f
.long	0xa548f3fc
Packit aea12f
	leaq	184(%rax),%rax
Packit aea12f
Packit aea12f
.Lin_prologue:
Packit aea12f
	movq	8(%rax),%rdi
Packit aea12f
	movq	16(%rax),%rsi
Packit aea12f
	movq	%rax,152(%r8)
Packit aea12f
	movq	%rsi,168(%r8)
Packit aea12f
	movq	%rdi,176(%r8)
Packit aea12f
Packit aea12f
	movq	40(%r9),%rdi
Packit aea12f
	movq	%r8,%rsi
Packit aea12f
	movl	$154,%ecx
Packit aea12f
.long	0xa548f3fc
Packit aea12f
Packit aea12f
	movq	%r9,%rsi
Packit aea12f
	xorq	%rcx,%rcx
Packit aea12f
	movq	8(%rsi),%rdx
Packit aea12f
	movq	0(%rsi),%r8
Packit aea12f
	movq	16(%rsi),%r9
Packit aea12f
	movq	40(%rsi),%r10
Packit aea12f
	leaq	56(%rsi),%r11
Packit aea12f
	leaq	24(%rsi),%r12
Packit aea12f
	movq	%r10,32(%rsp)
Packit aea12f
	movq	%r11,40(%rsp)
Packit aea12f
	movq	%r12,48(%rsp)
Packit aea12f
	movq	%rcx,56(%rsp)
Packit aea12f
	call	*__imp_RtlVirtualUnwind(%rip)
Packit aea12f
Packit aea12f
	movl	$1,%eax
Packit aea12f
	addq	$64,%rsp
Packit aea12f
	popfq
Packit aea12f
	popq	%r15
Packit aea12f
	popq	%r14
Packit aea12f
	popq	%r13
Packit aea12f
	popq	%r12
Packit aea12f
	popq	%rbp
Packit aea12f
	popq	%rbx
Packit aea12f
	popq	%rdi
Packit aea12f
	popq	%rsi
Packit aea12f
	.byte	0xf3,0xc3
Packit aea12f
Packit aea12f
Packit aea12f
.section	.pdata
Packit aea12f
.p2align	2
Packit aea12f
.rva	.LSEH_begin_vpaes_set_encrypt_key
Packit aea12f
.rva	.LSEH_end_vpaes_set_encrypt_key
Packit aea12f
.rva	.LSEH_info_vpaes_set_encrypt_key
Packit aea12f
Packit aea12f
.rva	.LSEH_begin_vpaes_set_decrypt_key
Packit aea12f
.rva	.LSEH_end_vpaes_set_decrypt_key
Packit aea12f
.rva	.LSEH_info_vpaes_set_decrypt_key
Packit aea12f
Packit aea12f
.rva	.LSEH_begin_vpaes_encrypt
Packit aea12f
.rva	.LSEH_end_vpaes_encrypt
Packit aea12f
.rva	.LSEH_info_vpaes_encrypt
Packit aea12f
Packit aea12f
.rva	.LSEH_begin_vpaes_decrypt
Packit aea12f
.rva	.LSEH_end_vpaes_decrypt
Packit aea12f
.rva	.LSEH_info_vpaes_decrypt
Packit aea12f
Packit aea12f
.rva	.LSEH_begin_vpaes_cbc_encrypt
Packit aea12f
.rva	.LSEH_end_vpaes_cbc_encrypt
Packit aea12f
.rva	.LSEH_info_vpaes_cbc_encrypt
Packit aea12f
Packit aea12f
.section	.xdata
Packit aea12f
.p2align	3
Packit aea12f
.LSEH_info_vpaes_set_encrypt_key:
Packit aea12f
.byte	9,0,0,0
Packit aea12f
.rva	se_handler
Packit aea12f
.rva	.Lenc_key_body,.Lenc_key_epilogue
Packit aea12f
.LSEH_info_vpaes_set_decrypt_key:
Packit aea12f
.byte	9,0,0,0
Packit aea12f
.rva	se_handler
Packit aea12f
.rva	.Ldec_key_body,.Ldec_key_epilogue
Packit aea12f
.LSEH_info_vpaes_encrypt:
Packit aea12f
.byte	9,0,0,0
Packit aea12f
.rva	se_handler
Packit aea12f
.rva	.Lenc_body,.Lenc_epilogue
Packit aea12f
.LSEH_info_vpaes_decrypt:
Packit aea12f
.byte	9,0,0,0
Packit aea12f
.rva	se_handler
Packit aea12f
.rva	.Ldec_body,.Ldec_epilogue
Packit aea12f
.LSEH_info_vpaes_cbc_encrypt:
Packit aea12f
.byte	9,0,0,0
Packit aea12f
.rva	se_handler
Packit aea12f
.rva	.Lcbc_body,.Lcbc_epilogue
Packit aea12f