120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.text
220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_encrypt
320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_encrypt,@function
420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_encrypt:
620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rdx),%eax
820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm0
920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdx),%xmm1
1020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rdx),%rdx
1120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
1220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_1:
1320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
1420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
1520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm1
1620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdx),%rdx
1720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_1
1820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
1920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
2020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
2120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_encrypt,.-aesni_encrypt
2220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
2320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_decrypt
2420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_decrypt,@function
2520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
2620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_decrypt:
2720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
2820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rdx),%eax
2920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm0
3020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdx),%xmm1
3120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rdx),%rdx
3220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
3320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_2:
3420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
3520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
3620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm1
3720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdx),%rdx
3820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_dec1_2
3920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,209
4020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
4120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
4220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_decrypt, .-aesni_decrypt
4320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_encrypt3,@function
4420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
4520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt3:
4620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
4720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
4820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
4920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
5020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
5120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
5220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm4
5320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
5420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
5520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop3:
5620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
5720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
5820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
5920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
6020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
6120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
6220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
6320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
6420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
6520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
6620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lenc_loop3
6720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
6820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
6920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
7020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
7120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
7220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
7320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,224
7420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
7520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_encrypt3,.-_aesni_encrypt3
7620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_decrypt3,@function
7720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
7820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt3:
7920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
8020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
8120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
8220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
8320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
8420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
8520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm4
8620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
8720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
8820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop3:
8920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
9020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
9120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
9220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
9320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
9420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,208
9520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,216
9620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
9720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,224
9820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
9920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Ldec_loop3
10020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
10120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
10220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
10320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
10420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,208
10520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,216
10620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,224
10720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
10820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_decrypt3,.-_aesni_decrypt3
10920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_encrypt4,@function
11020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
11120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt4:
11220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
11320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
11420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
11520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
11620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
11720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
11820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm4
11920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm5
12020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
12120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
12220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop4:
12320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
12420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
12520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
12620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
12720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
12820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
12920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
13020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
13120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
13220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
13320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,232
13420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
13520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lenc_loop4
13620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
13720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
13820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
13920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
14020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
14120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
14220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
14320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,224
14420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,232
14520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
14620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_encrypt4,.-_aesni_encrypt4
14720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_decrypt4,@function
14820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
14920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt4:
15020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
15120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
15220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
15320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
15420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
15520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
15620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm4
15720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm5
15820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
15920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
16020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop4:
16120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
16220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
16320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
16420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
16520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
16620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
16720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,208
16820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,216
16920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
17020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,224
17120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,232
17220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
17320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Ldec_loop4
17420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
17520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
17620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
17720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
17820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
17920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,208
18020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,216
18120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,224
18220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,232
18320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
18420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_decrypt4,.-_aesni_decrypt4
18520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_encrypt6,@function
18620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
18720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt6:
18820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
18920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
19020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
19120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
19220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
19320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm3
19420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
19520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
19620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
19720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
19820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
19920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
20020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
20120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
20220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
20320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
20420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
20520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
20620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lenc_loop6_enter
20720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
20820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop6:
20920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
21020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
21120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
21220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
21320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
21420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
21520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
21620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop6_enter:
21720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
21820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
21920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
22020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
22120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
22220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,232
22320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,240
22420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,248
22520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
22620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lenc_loop6
22720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
22820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
22920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
23020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
23120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
23220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
23320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
23420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
23520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
23620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,224
23720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,232
23820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,240
23920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,248
24020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
24120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_encrypt6,.-_aesni_encrypt6
24220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_decrypt6,@function
24320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
24420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt6:
24520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
24620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
24720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
24820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
24920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
25020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm3
25120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
25220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
25320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
25420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
25520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
25620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
25720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
25820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
25920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
26020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
26120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
26220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
26320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Ldec_loop6_enter
26420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
26520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop6:
26620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
26720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
26820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
26920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
27020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
27120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
27220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
27320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop6_enter:
27420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
27520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,208
27620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,216
27720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
27820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,224
27920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,232
28020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,240
28120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,248
28220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
28320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Ldec_loop6
28420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
28520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
28620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
28720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
28820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
28920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
29020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
29120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,208
29220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,216
29320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,224
29420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,232
29520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,240
29620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,248
29720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
29820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_decrypt6,.-_aesni_decrypt6
29920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_encrypt8,@function
30020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
30120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt8:
30220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
30320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
30420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
30520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
30620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
30720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
30820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
30920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
31020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
31120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
31220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
31320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
31420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
31520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
31620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
31720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
31820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm8
31920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
32020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm9
32120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
32220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,193
32320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,201
32420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
32520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lenc_loop8_enter
32620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
32720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop8:
32820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
32920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
33020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
33120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
33220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
33320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
33420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
33520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,193
33620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,201
33720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
33820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop8_enter:
33920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
34020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
34120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
34220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
34320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,232
34420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,240
34520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,248
34620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,192
34720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,200
34820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
34920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lenc_loop8
35020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
35120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
35220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
35320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
35420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
35520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
35620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
35720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,193
35820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,201
35920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
36020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
36120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,224
36220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,232
36320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,240
36420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,248
36520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,221,192
36620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,221,200
36720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
36820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_encrypt8,.-_aesni_encrypt8
36920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	_aesni_decrypt8,@function
37020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
37120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt8:
37220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
37320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
37420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
37520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
37620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
37720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
37820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
37920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
38020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
38120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
38220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
38320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
38420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
38520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
38620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
38720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
38820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm8
38920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
39020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm9
39120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
39220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,193
39320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,201
39420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
39520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Ldec_loop8_enter
39620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
39720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop8:
39820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
39920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
40020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
40120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
40220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
40320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
40420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
40520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,193
40620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,201
40720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
40820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop8_enter:
40920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,208
41020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,216
41120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
41220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,224
41320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,232
41420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,240
41520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,248
41620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,192
41720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,200
41820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
41920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Ldec_loop8
42020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
42120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
42220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
42320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
42420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
42520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
42620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
42720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,193
42820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,201
42920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,208
43020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,216
43120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,224
43220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,232
43320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,240
43420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,248
43520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,223,192
43620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,223,200
43720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
43820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	_aesni_decrypt8,.-_aesni_decrypt8
43920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_ecb_encrypt
44020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_ecb_encrypt,@function
44120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
44220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ecb_encrypt:
44320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$-16,%rdx
44420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lecb_ret
44520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
44620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%eax
44720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
44820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rcx,%r11
44920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
45020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testl	%r8d,%r8d
45120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lecb_decrypt
45220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
45320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$128,%rdx
45420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_enc_tail
45520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
45620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%rdi),%xmm2
45720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
45820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
45920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
46020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
46120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
46220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	96(%rdi),%xmm8
46320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	112(%rdi),%xmm9
46420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rdi),%rdi
46520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$128,%rdx
46620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_enc_loop8_enter
46720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
46820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_loop8:
46920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
47020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
47120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%rdi),%xmm2
47220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
47320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
47420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
47520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
47620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
47720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
47820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
47920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
48020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
48120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
48220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
48320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
48420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	96(%rdi),%xmm8
48520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,112(%rsi)
48620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rsi),%rsi
48720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	112(%rdi),%xmm9
48820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rdi),%rdi
48920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_loop8_enter:
49020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
49120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt8
49220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
49320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$128,%rdx
49420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnc	.Lecb_enc_loop8
49520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
49620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
49720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
49820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
49920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
50020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
50120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
50220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
50320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
50420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
50520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,112(%rsi)
50620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rsi),%rsi
50720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$128,%rdx
50820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lecb_ret
50920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
51020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_tail:
51120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
51220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$32,%rdx
51320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_enc_one
51420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
51520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lecb_enc_two
51620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
51720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$64,%rdx
51820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_enc_three
51920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm5
52020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lecb_enc_four
52120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm6
52220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$96,%rdx
52320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_enc_five
52420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm7
52520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lecb_enc_six
52620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	96(%rdi),%xmm8
52720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt8
52820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
52920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
53020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
53120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
53220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
53320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
53420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
53520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
53620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
53720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_one:
53820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
53920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
54020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
54120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
54220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_3:
54320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
54420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
54520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
54620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
54720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_3
54820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
54920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
55020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
55120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
55220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_two:
55320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm4
55420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt3
55520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
55620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
55720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
55820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
55920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_three:
56020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt3
56120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
56220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
56320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
56420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
56520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
56620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_four:
56720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt4
56820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
56920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
57020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
57120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
57220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
57320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
57420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_five:
57520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm7
57620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt6
57720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
57820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
57920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
58020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
58120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
58220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
58320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
58420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_six:
58520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt6
58620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
58720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
58820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
58920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
59020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
59120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
59220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
59320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
59420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
59520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_decrypt:
59620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$128,%rdx
59720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_dec_tail
59820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
59920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%rdi),%xmm2
60020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
60120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
60220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
60320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
60420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
60520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	96(%rdi),%xmm8
60620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	112(%rdi),%xmm9
60720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rdi),%rdi
60820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$128,%rdx
60920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_dec_loop8_enter
61020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
61120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_loop8:
61220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
61320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
61420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%rdi),%xmm2
61520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
61620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
61720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
61820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
61920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
62020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
62120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
62220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
62320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
62420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
62520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
62620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
62720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	96(%rdi),%xmm8
62820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,112(%rsi)
62920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rsi),%rsi
63020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	112(%rdi),%xmm9
63120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rdi),%rdi
63220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_loop8_enter:
63320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
63420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt8
63520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
63620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
63720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$128,%rdx
63820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnc	.Lecb_dec_loop8
63920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
64020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
64120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
64220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
64320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
64420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
64520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
64620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
64720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
64820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
64920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,112(%rsi)
65020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rsi),%rsi
65120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$128,%rdx
65220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lecb_ret
65320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
65420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_tail:
65520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
65620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$32,%rdx
65720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_dec_one
65820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
65920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lecb_dec_two
66020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
66120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$64,%rdx
66220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_dec_three
66320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm5
66420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lecb_dec_four
66520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm6
66620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$96,%rdx
66720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lecb_dec_five
66820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm7
66920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lecb_dec_six
67020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	96(%rdi),%xmm8
67120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
67220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt8
67320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
67420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
67520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
67620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
67720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
67820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
67920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
68020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
68120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
68220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_one:
68320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
68420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
68520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
68620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
68720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_4:
68820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
68920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
69020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
69120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
69220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_dec1_4
69320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,209
69420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
69520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
69620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
69720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_two:
69820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm4
69920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt3
70020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
70120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
70220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
70320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
70420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_three:
70520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt3
70620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
70720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
70820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
70920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
71020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
71120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_four:
71220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt4
71320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
71420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
71520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
71620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
71720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
71820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
71920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_five:
72020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm7
72120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt6
72220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
72320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
72420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
72520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
72620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
72720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lecb_ret
72820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
72920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_six:
73020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt6
73120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
73220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
73320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
73420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
73520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
73620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
73720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
73820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_ret:
73920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
74020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_ecb_encrypt,.-aesni_ecb_encrypt
74120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_ccm64_encrypt_blocks
74220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_ccm64_encrypt_blocks,@function
74320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
74420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ccm64_encrypt_blocks:
74520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%eax
74620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%r8),%xmm9
74720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lincrement64(%rip),%xmm6
74820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lbswap_mask(%rip),%xmm7
74920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
75020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
75120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	0(%rcx),%r11
75220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%r9),%xmm3
75320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm9,%xmm2
75420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
75520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,0,207
75620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lccm64_enc_outer
75720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
75820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_enc_outer:
75920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
76020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
76120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm8
76220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
76320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
76420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r11),%xmm1
76520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm0
76620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r11),%rcx
76720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
76820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
76920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
77020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_enc2_loop:
77120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
77220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
77320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
77420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
77520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
77620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
77720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
77820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	0(%rcx),%xmm0
77920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lccm64_enc2_loop
78020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
78120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
78220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm6,%xmm9
78320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
78420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
78520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
78620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decq	%rdx
78720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdi),%rdi
78820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
78920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm9,%xmm2
79020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
79120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
79220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,0,215
79320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lccm64_enc_outer
79420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
79520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,(%r9)
79620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
79720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks
79820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_ccm64_decrypt_blocks
79920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_ccm64_decrypt_blocks,@function
80020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
80120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ccm64_decrypt_blocks:
80220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%eax
80320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm9
80420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%r9),%xmm3
80520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lincrement64(%rip),%xmm6
80620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lbswap_mask(%rip),%xmm7
80720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
80820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm9,%xmm2
80920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
81020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rcx,%r11
81120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,0,207
81220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
81320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
81420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
81520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
81620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_5:
81720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
81820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
81920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
82020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
82120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_5
82220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
82320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm8
82420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm6,%xmm9
82520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdi),%rdi
82620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lccm64_dec_outer
82720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
82820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_dec_outer:
82920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
83020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm9,%xmm2
83120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
83220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
83320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
83420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,0,215
83520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
83620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$1,%rdx
83720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lccm64_dec_break
83820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
83920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
84020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
84120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r11),%xmm1
84220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm8
84320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r11),%rcx
84420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
84520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
84620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
84720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
84820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_dec2_loop:
84920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
85020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
85120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
85220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
85320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
85420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
85520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
85620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	0(%rcx),%xmm0
85720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lccm64_dec2_loop
85820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm8
85920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm6,%xmm9
86020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
86120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
86220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdi),%rdi
86320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
86420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
86520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lccm64_dec_outer
86620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
86720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
86820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_dec_break:
86920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
87020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
87120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r11),%xmm1
87220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm8
87320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r11),%r11
87420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
87520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_6:
87620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
87720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
87820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm1
87920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%r11),%r11
88020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_6
88120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,217
88220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,(%r9)
88320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
88420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks
88520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_ctr32_encrypt_blocks
88620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_ctr32_encrypt_blocks,@function
88720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
88820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ctr32_encrypt_blocks:
88920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$1,%rdx
89020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lctr32_one_shortcut
89120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
89220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%r8),%xmm14
89320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lbswap_mask(%rip),%xmm15
89420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorl	%eax,%eax
89520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,22,242,3
89620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,58,34,240,3
89720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
89820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%eax
89920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	bswapl	%r10d
90020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm12,%xmm12
90120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm13,%xmm13
90220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,34,226,0
90320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	3(%r10),%r11
90420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,34,235,0
90520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	incl	%r10d
90620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,34,226,1
90720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	incq	%r11
90820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,34,235,1
90920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	incl	%r10d
91020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,34,226,2
91120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	incq	%r11
91220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,58,34,235,2
91320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,-40(%rsp)
91420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,56,0,231
91520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,-24(%rsp)
91620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,56,0,239
91720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
91820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$192,%xmm12,%xmm2
91920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$128,%xmm12,%xmm3
92020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$64,%xmm12,%xmm4
92120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$6,%rdx
92220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lctr32_tail
92320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
92420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rcx,%r11
92520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
92620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$6,%rdx
92720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lctr32_loop6
92820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
92920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
93020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_loop6:
93120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$192,%xmm13,%xmm5
93220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm2
93320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
93420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$128,%xmm13,%xmm6
93520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm3
93620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r11),%xmm1
93720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$64,%xmm13,%xmm7
93820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm4
93920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm5
94020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
94120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm6
94220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm7
94320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
94420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
94520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
94620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
94720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm3
94820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
94920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r11),%rcx
95020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
95120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
95220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lincrement32(%rip),%xmm13
95320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
95420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
95520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	-40(%rsp),%xmm12
95620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
95720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
95820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
95920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
96020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
96120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
96220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
96320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lctr32_enc_loop6_enter
96420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
96520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_enc_loop6:
96620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
96720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
96820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
96920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
97020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
97120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
97220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
97320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_enc_loop6_enter:
97420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
97520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
97620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
97720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
97820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
97920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,232
98020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,240
98120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,248
98220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
98320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lctr32_enc_loop6
98420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
98520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
98620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddd	%xmm13,%xmm12
98720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
98820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddd	-24(%rsp),%xmm13
98920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
99020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,-40(%rsp)
99120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
99220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,-24(%rsp)
99320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
99420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,56,0,231
99520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
99620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,69,15,56,0,239
99720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
99820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
99920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm8
100020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
100120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm9
100220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,224
100320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm10
100420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,232
100520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm11
100620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,240
100720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm1
100820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,248
100920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm0
101020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rdi),%rdi
101120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
101220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
101320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$192,%xmm12,%xmm2
101420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm3,%xmm9
101520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$128,%xmm12,%xmm3
101620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
101720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm10
101820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$64,%xmm12,%xmm4
101920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,16(%rsi)
102020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm5,%xmm11
102120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm10,32(%rsi)
102220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm6,%xmm1
102320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm11,48(%rsi)
102420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm0
102520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm1,64(%rsi)
102620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,80(%rsi)
102720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rsi),%rsi
102820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
102920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$6,%rdx
103020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnc	.Lctr32_loop6
103120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
103220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$6,%rdx
103320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lctr32_done
103420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
103520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leal	1(%rax,%rax,1),%eax
103620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
103720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_tail:
103820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm2
103920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm8
104020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$2,%rdx
104120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lctr32_one
104220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
104320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm3
104420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm9
104520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lctr32_two
104620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
104720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$192,%xmm13,%xmm5
104820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm4
104920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm10
105020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$4,%rdx
105120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lctr32_three
105220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
105320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$128,%xmm13,%xmm6
105420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm5
105520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm11
105620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lctr32_four
105720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
105820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	por	%xmm14,%xmm6
105920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm7
106020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
106120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt6
106220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
106320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm1
106420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
106520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm3,%xmm9
106620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
106720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm10
106820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,16(%rsi)
106920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm5,%xmm11
107020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm10,32(%rsi)
107120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm6,%xmm1
107220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm11,48(%rsi)
107320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm1,64(%rsi)
107420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lctr32_done
107520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
107620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
107720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_one_shortcut:
107820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm2
107920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm8
108020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%eax
108120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_one:
108220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
108320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
108420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
108520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
108620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_7:
108720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
108820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
108920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
109020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
109120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_7
109220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
109320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
109420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
109520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lctr32_done
109620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
109720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
109820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_two:
109920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm4
110020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt3
110120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
110220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm3,%xmm9
110320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
110420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,16(%rsi)
110520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lctr32_done
110620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
110720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
110820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_three:
110920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt3
111020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
111120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm3,%xmm9
111220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
111320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm10
111420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,16(%rsi)
111520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm10,32(%rsi)
111620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lctr32_done
111720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
111820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
111920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_four:
112020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt4
112120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm2,%xmm8
112220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm3,%xmm9
112320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,(%rsi)
112420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm10
112520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,16(%rsi)
112620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm5,%xmm11
112720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm10,32(%rsi)
112820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm11,48(%rsi)
112920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
113020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_done:
113120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
113220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks
113320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_xts_encrypt
113420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_xts_encrypt,@function
113520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
113620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_xts_encrypt:
113720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	-104(%rsp),%rsp
113820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r9),%xmm15
113920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%r8),%eax
114020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%r10d
114120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm0
114220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r8),%xmm1
114320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r8),%r8
114420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm15
114520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_8:
114620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,249
114720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
114820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm1
114920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%r8),%r8
115020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_8
115120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,221,249
115220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rcx,%r11
115320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
115420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rdx,%r9
115520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$-16,%rdx
115620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
115720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lxts_magic(%rip),%xmm8
115820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
115920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
116020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
116120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
116220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
116320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
116420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
116520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
116620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
116720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
116820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
116920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm11
117020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
117120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
117220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
117320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
117420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
117520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
117620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm12
117720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
117820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
117920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
118020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
118120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
118220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
118320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm13
118420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
118520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
118620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
118720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
118820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$96,%rdx
118920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jc	.Lxts_enc_short
119020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
119120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
119220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subl	$1,%eax
119320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
119420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_grandloop
119520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
119620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
119720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_grandloop:
119820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
119920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm14
120020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
120120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	0(%rdi),%xmm2
120220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
120320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
120420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
120520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
120620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
120720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm10,%xmm2
120820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
120920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm11,%xmm3
121020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
121120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm12,%xmm4
121220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
121320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rdi),%rdi
121420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm13,%xmm5
121520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
121620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm6
121720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm15,%xmm7
121820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
121920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
122020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
122120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r11),%xmm1
122220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm2
122320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm3
122420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm10,0(%rsp)
122520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
122620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r11),%rcx
122720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
122820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm11,16(%rsp)
122920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
123020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
123120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,32(%rsp)
123220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
123320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
123420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,48(%rsp)
123520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
123620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
123720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
123820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
123920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm14,64(%rsp)
124020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
124120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,80(%rsp)
124220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
124320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
124420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
124520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_loop6_enter
124620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
124720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
124820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_loop6:
124920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
125020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
125120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
125220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
125320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
125420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
125520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
125620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_loop6_enter:
125720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
125820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
125920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
126020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
126120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
126220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,232
126320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,240
126420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,248
126520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
126620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lxts_enc_loop6
126720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
126820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
126920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
127020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
127120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
127220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
127320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
127420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
127520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
127620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
127720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
127820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
127920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
128020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
128120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
128220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
128320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
128420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
128520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
128620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,208
128720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
128820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,216
128920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
129020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,224
129120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
129220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,232
129320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,240
129420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,248
129520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rcx),%xmm0
129620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
129720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
129820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
129920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm11
130020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
130120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
130220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
130320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,217
130420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
130520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,225
130620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
130720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,233
130820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,241
130920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,249
131020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
131120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
131220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
131320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm12
131420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
131520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,208
131620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
131720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,216
131820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
131920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,224
132020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
132120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,232
132220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,240
132320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,248
132420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
132520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
132620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
132720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm13
132820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
132920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	0(%rsp),%xmm2
133020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
133120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	16(%rsp),%xmm3
133220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
133320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
133420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
133520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	32(%rsp),%xmm4
133620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,0(%rsi)
133720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	48(%rsp),%xmm5
133820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
133920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	64(%rsp),%xmm6
134020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
134120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	80(%rsp),%xmm7
134220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
134320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
134420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
134520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
134620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rsi),%rsi
134720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$96,%rdx
134820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnc	.Lxts_enc_grandloop
134920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
135020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leal	3(%rax,%rax,1),%eax
135120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
135220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
135320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
135420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_short:
135520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$96,%rdx
135620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lxts_enc_done
135720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
135820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$32,%rdx
135920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lxts_enc_one
136020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lxts_enc_two
136120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
136220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$64,%rdx
136320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lxts_enc_three
136420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lxts_enc_four
136520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
136620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
136720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm14
136820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
136920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%rdi),%xmm2
137020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
137120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
137220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
137320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
137420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
137520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm10,%xmm2
137620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
137720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm11,%xmm3
137820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
137920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	80(%rdi),%rdi
138020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm12,%xmm4
138120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm13,%xmm5
138220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm6
138320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
138420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt6
138520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
138620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
138720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
138820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
138920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
139020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm2,(%rsi)
139120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm13,%xmm5
139220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm3,16(%rsi)
139320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm14,%xmm6
139420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm4,32(%rsi)
139520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm5,48(%rsi)
139620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm6,64(%rsi)
139720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	80(%rsi),%rsi
139820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_done
139920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
140020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
140120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_one:
140220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
140320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdi),%rdi
140420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
140520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
140620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
140720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
140820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
140920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_9:
141020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
141120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
141220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
141320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
141420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_9
141520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
141620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
141720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm11,%xmm10
141820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
141920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
142020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_done
142120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
142220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
142320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_two:
142420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
142520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
142620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rdi),%rdi
142720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
142820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
142920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
143020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt3
143120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
143220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
143320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,%xmm10
143420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
143520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
143620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
143720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rsi),%rsi
143820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_done
143920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
144020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
144120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_three:
144220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
144320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
144420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
144520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	48(%rdi),%rdi
144620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
144720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
144820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
144920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
145020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt3
145120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
145220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
145320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,%xmm10
145420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
145520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
145620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
145720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
145820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
145920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	48(%rsi),%rsi
146020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_done
146120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
146220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
146320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_four:
146420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
146520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
146620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
146720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
146820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm5
146920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	64(%rdi),%rdi
147020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
147120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
147220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm13,%xmm5
147320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
147420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_encrypt4
147520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
147620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
147720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
147820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
147920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
148020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
148120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm13,%xmm5
148220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
148320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
148420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
148520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	64(%rsi),%rsi
148620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_enc_done
148720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
148820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
148920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_done:
149020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$15,%r9
149120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lxts_enc_ret
149220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r9,%rdx
149320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
149420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_steal:
149520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movzbl	(%rdi),%eax
149620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movzbl	-16(%rsi),%ecx
149720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	1(%rdi),%rdi
149820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movb	%al,-16(%rsi)
149920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movb	%cl,0(%rsi)
150020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	1(%rsi),%rsi
150120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$1,%rdx
150220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lxts_enc_steal
150320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
150420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	%r9,%rsi
150520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
150620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
150720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
150820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	-16(%rsi),%xmm2
150920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
151020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
151120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
151220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
151320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
151420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_10:
151520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
151620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
151720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
151820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
151920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_10
152020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
152120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
152220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,-16(%rsi)
152320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
152420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_ret:
152520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	104(%rsp),%rsp
152620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_epilogue:
152720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
152820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_xts_encrypt,.-aesni_xts_encrypt
152920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_xts_decrypt
153020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_xts_decrypt,@function
153120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
153220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_xts_decrypt:
153320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	-104(%rsp),%rsp
153420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r9),%xmm15
153520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%r8),%eax
153620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%r10d
153720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm0
153820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r8),%xmm1
153920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r8),%r8
154020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm15
154120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_11:
154220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,220,249
154320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
154420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm1
154520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%r8),%r8
154620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_11
154720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,221,249
154820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorl	%eax,%eax
154920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testq	$15,%rdx
155020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	setnz	%al
155120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shlq	$4,%rax
155220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	%rax,%rdx
155320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
155420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rcx,%r11
155520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
155620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rdx,%r9
155720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$-16,%rdx
155820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
155920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	.Lxts_magic(%rip),%xmm8
156020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
156120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
156220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
156320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
156420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
156520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
156620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
156720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
156820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
156920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
157020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
157120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm11
157220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
157320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
157420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
157520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
157620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
157720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
157820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm12
157920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
158020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
158120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
158220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
158320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
158420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
158520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm13
158620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
158720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
158820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
158920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
159020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$96,%rdx
159120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jc	.Lxts_dec_short
159220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
159320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%eax
159420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subl	$1,%eax
159520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
159620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_grandloop
159720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
159820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
159920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_grandloop:
160020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
160120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm14
160220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
160320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	0(%rdi),%xmm2
160420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
160520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
160620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
160720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
160820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
160920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm10,%xmm2
161020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
161120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm11,%xmm3
161220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
161320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm12,%xmm4
161420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
161520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rdi),%rdi
161620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm13,%xmm5
161720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r11),%xmm0
161820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm6
161920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm15,%xmm7
162020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
162120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
162220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
162320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%r11),%xmm1
162420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm2
162520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm3
162620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm10,0(%rsp)
162720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
162820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%r11),%rcx
162920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
163020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm11,16(%rsp)
163120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
163220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
163320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,32(%rsp)
163420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
163520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
163620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,48(%rsp)
163720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
163820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
163920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
164020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
164120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm14,64(%rsp)
164220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
164320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,80(%rsp)
164420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
164520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
164620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
164720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_loop6_enter
164820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
164920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
165020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_loop6:
165120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
165220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
165320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
165420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
165520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
165620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
165720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
165820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_loop6_enter:
165920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
166020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,208
166120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,216
166220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
166320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,224
166420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,232
166520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,240
166620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,248
166720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
166820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lxts_dec_loop6
166920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
167020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
167120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
167220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
167320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
167420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
167520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
167620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
167720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
167820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
167920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
168020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
168120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
168220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
168320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
168420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
168520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
168620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
168720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
168820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,208
168920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
169020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,216
169120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
169220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,224
169320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
169420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,232
169520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,240
169620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,248
169720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rcx),%xmm0
169820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
169920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
170020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
170120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm11
170220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
170320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
170420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
170520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
170620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
170720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
170820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
170920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
171020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
171120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
171220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
171320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
171420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
171520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm12
171620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
171720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,208
171820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
171920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,216
172020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
172120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,224
172220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
172320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,232
172420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,240
172520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,248
172620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
172720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
172820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
172920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm13
173020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
173120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	0(%rsp),%xmm2
173220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
173320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	16(%rsp),%xmm3
173420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
173520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
173620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
173720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	32(%rsp),%xmm4
173820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,0(%rsi)
173920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	48(%rsp),%xmm5
174020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
174120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	64(%rsp),%xmm6
174220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
174320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	80(%rsp),%xmm7
174420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
174520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
174620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
174720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
174820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rsi),%rsi
174920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$96,%rdx
175020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnc	.Lxts_dec_grandloop
175120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
175220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leal	3(%rax,%rax,1),%eax
175320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
175420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%eax,%r10d
175520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
175620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_short:
175720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$96,%rdx
175820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lxts_dec_done
175920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
176020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$32,%rdx
176120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lxts_dec_one
176220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lxts_dec_two
176320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
176420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$64,%rdx
176520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lxts_dec_three
176620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.Lxts_dec_four
176720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
176820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
176920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm14
177020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
177120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	(%rdi),%xmm2
177220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
177320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	16(%rdi),%xmm3
177420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
177520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
177620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
177720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm10,%xmm2
177820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
177920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm11,%xmm3
178020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
178120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	80(%rdi),%rdi
178220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm12,%xmm4
178320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm13,%xmm5
178420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm6
178520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
178620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt6
178720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
178820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
178920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
179020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
179120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm2,(%rsi)
179220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm13,%xmm5
179320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm3,16(%rsi)
179420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm14,%xmm6
179520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm4,32(%rsi)
179620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm14,%xmm14
179720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm5,48(%rsi)
179820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pcmpgtd	%xmm15,%xmm14
179920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	%xmm6,64(%rsi)
180020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	80(%rsi),%rsi
180120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm11
180220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$15,%r9
180320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lxts_dec_ret
180420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
180520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm10
180620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
180720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm11
180820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm15,%xmm11
180920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_done2
181020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
181120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
181220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_one:
181320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
181420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdi),%rdi
181520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
181620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
181720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
181820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
181920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
182020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_12:
182120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
182220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
182320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
182420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
182520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_dec1_12
182620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,209
182720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
182820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm11,%xmm10
182920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
183020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,%xmm11
183120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
183220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_done
183320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
183420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
183520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_two:
183620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
183720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
183820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rdi),%rdi
183920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
184020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
184120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
184220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt3
184320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
184420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
184520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm12,%xmm10
184620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
184720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,%xmm11
184820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
184920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
185020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rsi),%rsi
185120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_done
185220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
185320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
185420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_three:
185520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
185620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
185720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
185820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	48(%rdi),%rdi
185920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
186020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
186120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
186220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
186320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt3
186420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
186520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
186620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm13,%xmm10
186720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
186820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm11
186920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
187020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
187120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
187220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
187320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	48(%rsi),%rsi
187420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_done
187520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
187620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
187720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_four:
187820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$19,%xmm14,%xmm9
187920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm14
188020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	paddq	%xmm15,%xmm15
188120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
188220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pand	%xmm8,%xmm9
188320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
188420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm9,%xmm15
188520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
188620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
188720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
188820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm5
188920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	64(%rdi),%rdi
189020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
189120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
189220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm13,%xmm5
189320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
189420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt4
189520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
189620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
189720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm14,%xmm10
189820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm3
189920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm15,%xmm11
190020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm12,%xmm4
190120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
190220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm13,%xmm5
190320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
190420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
190520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
190620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	64(%rsi),%rsi
190720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lxts_dec_done
190820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
190920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
191020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_done:
191120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$15,%r9
191220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lxts_dec_ret
191320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_done2:
191420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r9,%rdx
191520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
191620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
191720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
191820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
191920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm2
192020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
192120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
192220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
192320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
192420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_13:
192520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
192620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
192720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
192820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
192920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_dec1_13
193020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,209
193120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm11,%xmm2
193220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
193320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
193420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_steal:
193520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movzbl	16(%rdi),%eax
193620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movzbl	(%rsi),%ecx
193720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	1(%rdi),%rdi
193820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movb	%al,(%rsi)
193920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movb	%cl,16(%rsi)
194020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	1(%rsi),%rsi
194120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$1,%rdx
194220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lxts_dec_steal
194320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
194420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	%r9,%rsi
194520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
194620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
194720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
194820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rsi),%xmm2
194920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
195020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
195120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
195220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
195320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
195420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_14:
195520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
195620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
195720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
195820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
195920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_dec1_14
196020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,209
196120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm10,%xmm2
196220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
196320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
196420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_ret:
196520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	104(%rsp),%rsp
196620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_epilogue:
196720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
196820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_xts_decrypt,.-aesni_xts_decrypt
196920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_cbc_encrypt
197020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_cbc_encrypt,@function
197120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
197220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_cbc_encrypt:
197320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testq	%rdx,%rdx
197420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lcbc_ret
197520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
197620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	240(%rcx),%r10d
197720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rcx,%r11
197820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testl	%r9d,%r9d
197920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lcbc_decrypt
198020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
198120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm2
198220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
198320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$16,%rdx
198420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jb	.Lcbc_enc_tail
198520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$16,%rdx
198620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_enc_loop
198720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
198820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_enc_loop:
198920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm3
199020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdi),%rdi
199120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
199220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
199320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
199420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
199520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
199620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm3,%xmm2
199720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_15:
199820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,220,209
199920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
200020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
200120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
200220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_enc1_15
200320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,221,209
200420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
200520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
200620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,0(%rsi)
200720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
200820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$16,%rdx
200920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnc	.Lcbc_enc_loop
201020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$16,%rdx
201120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lcbc_enc_tail
201220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%r8)
201320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_ret
201420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
201520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_enc_tail:
201620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rdx,%rcx
201720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xchgq	%rdi,%rsi
201820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long	0x9066A4F3
201920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	$16,%ecx
202020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	%rdx,%rcx
202120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorl	%eax,%eax
202220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long	0x9066AAF3
202320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	-16(%rdi),%rdi
202420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
202520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rdi,%rsi
202620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
202720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorq	%rdx,%rdx
202820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_enc_loop
202920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
203020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
203120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_decrypt:
203220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%r8),%xmm9
203320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
203420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$112,%rdx
203520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_tail
203620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shrl	$1,%r10d
203720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$112,%rdx
203820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
203920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm9,-24(%rsp)
204020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_loop8_enter
204120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
204220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_loop8:
204320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm0,-24(%rsp)
204420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,(%rsi)
204520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
204620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_loop8_enter:
204720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
204820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
204920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
205020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
205120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
205220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
205320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	32(%rdi),%xmm4
205420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
205520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	48(%rdi),%xmm5
205620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm3
205720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	64(%rdi),%xmm6
205820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
205920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm4
206020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	80(%rdi),%xmm7
206120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,217
206220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm5
206320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	96(%rdi),%xmm8
206420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,225
206520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm6
206620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqu	112(%rdi),%xmm9
206720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,233
206820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm7
206920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
207020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,241
207120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm8
207220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,249
207320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm0,%xmm9
207420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
207520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,193
207620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,68,15,56,222,201
207720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
207820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
207920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Ldec_loop8_enter
208020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
208120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm1
208220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm0
208320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	-24(%rsp),%xmm2
208420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm3
208520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm1
208620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm4
208720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm0
208820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm5
208920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm1
209020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm6
209120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm0
209220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm7
209320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	96(%rdi),%xmm1
209420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm8
209520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	112(%rdi),%xmm0
209620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm9
209720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
209820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
209920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
210020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
210120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%r10d,%eax
210220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
210320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%r11,%rcx
210420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
210520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	128(%rdi),%rdi
210620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm8,96(%rsi)
210720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	112(%rsi),%rsi
210820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$128,%rdx
210920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	ja	.Lcbc_dec_loop8
211020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
211120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm9,%xmm2
211220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm0,%xmm9
211320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$112,%rdx
211420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jle	.Lcbc_dec_tail_collected
211520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
211620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leal	1(%r10,%r10,1),%eax
211720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
211820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_tail:
211920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm2
212020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm2,%xmm8
212120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$16,%rdx
212220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_one
212320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
212420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm3
212520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm3,%xmm7
212620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$32,%rdx
212720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_two
212820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
212920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm4
213020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm4,%xmm6
213120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$48,%rdx
213220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_three
213320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
213420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm5
213520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$64,%rdx
213620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_four
213720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
213820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm6
213920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$80,%rdx
214020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_five
214120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
214220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm7
214320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	$96,%rdx
214420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jbe	.Lcbc_dec_six
214520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
214620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	96(%rdi),%xmm8
214720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm9,-24(%rsp)
214820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt8
214920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm1
215020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm0
215120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	-24(%rsp),%xmm2
215220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm3
215320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm1
215420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm4
215520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm0
215620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm5
215720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm1
215820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm6
215920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm0
216020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm7
216120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	96(%rdi),%xmm9
216220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm8
216320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
216420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
216520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
216620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
216720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
216820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm7,80(%rsi)
216920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	96(%rsi),%rsi
217020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm8,%xmm2
217120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$112,%rdx
217220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
217320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
217420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_one:
217520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm0
217620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rcx),%xmm1
217720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rcx),%rcx
217820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm2
217920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_16:
218020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,222,209
218120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	decl	%eax
218220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rcx),%xmm1
218320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rcx),%rcx
218420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Loop_dec1_16
218520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,223,209
218620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm9,%xmm2
218720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm8,%xmm9
218820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$16,%rdx
218920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
219020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
219120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_two:
219220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm4
219320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt3
219420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm9,%xmm2
219520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
219620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
219720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm7,%xmm9
219820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm3,%xmm2
219920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rsi),%rsi
220020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$32,%rdx
220120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
220220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
220320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_three:
220420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt3
220520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm9,%xmm2
220620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
220720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
220820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm4
220920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
221020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm6,%xmm9
221120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm4,%xmm2
221220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rsi),%rsi
221320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$48,%rdx
221420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
221520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
221620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_four:
221720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt4
221820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm9,%xmm2
221920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm9
222020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
222120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
222220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm4
222320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
222420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm6,%xmm5
222520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
222620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm5,%xmm2
222720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	48(%rsi),%rsi
222820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$64,%rdx
222920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
223020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
223120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_five:
223220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm7,%xmm7
223320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt6
223420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm1
223520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm0
223620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm9,%xmm2
223720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
223820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm4
223920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm1
224020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm5
224120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm9
224220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm6
224320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
224420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
224520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
224620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
224720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	64(%rsi),%rsi
224820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm6,%xmm2
224920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$80,%rdx
225020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
225120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
225220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_six:
225320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	_aesni_decrypt6
225420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm1
225520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	32(%rdi),%xmm0
225620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm9,%xmm2
225720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm8,%xmm3
225820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm4
225920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	48(%rdi),%xmm1
226020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm5
226120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	64(%rdi),%xmm0
226220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm6
226320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	80(%rdi),%xmm9
226420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm0,%xmm7
226520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
226620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rsi)
226720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm4,32(%rsi)
226820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,48(%rsi)
226920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm6,64(%rsi)
227020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	80(%rsi),%rsi
227120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm7,%xmm2
227220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	$96,%rdx
227320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_tail_collected
227420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
227520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_tail_collected:
227620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	andq	$15,%rdx
227720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm9,(%r8)
227820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Lcbc_dec_tail_partial
227920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rsi)
228020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lcbc_dec_ret
228120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
228220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_tail_partial:
228320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm2,-24(%rsp)
228420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	$16,%rcx
228520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	%rsi,%rdi
228620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	subq	%rdx,%rcx
228720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	-24(%rsp),%rsi
228820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long	0x9066A4F3
228920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
229020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_ret:
229120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_ret:
229220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
229320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_cbc_encrypt,.-aesni_cbc_encrypt
229420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_set_decrypt_key
229520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_set_decrypt_key,@function
229620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
229720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_set_decrypt_key:
229820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	0x48,0x83,0xEC,0x08
229920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	__aesni_set_encrypt_key
230020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shll	$4,%esi
230120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testl	%eax,%eax
230220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jnz	.Ldec_key_ret
230320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdx,%rsi,1),%rdi
230420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
230520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm0
230620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm1
230720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rdi)
230820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm1,(%rdx)
230920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdx),%rdx
231020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	-16(%rdi),%rdi
231120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
231220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_key_inverse:
231320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm0
231420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm1
231520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,219,192
231620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,219,201
231720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdx),%rdx
231820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	-16(%rdi),%rdi
231920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,16(%rdi)
232020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm1,-16(%rdx)
232120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpq	%rdx,%rdi
232220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	ja	.Ldec_key_inverse
232320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
232420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdx),%xmm0
232520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,56,219,192
232620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rdi)
232720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_key_ret:
232820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$8,%rsp
232920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
233020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.LSEH_end_set_decrypt_key:
233120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_set_decrypt_key,.-aesni_set_decrypt_key
233220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl	aesni_set_encrypt_key
233320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type	aesni_set_encrypt_key,@function
233420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
233520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_set_encrypt_key:
233620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner__aesni_set_encrypt_key:
233720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	0x48,0x83,0xEC,0x08
233820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	$-1,%rax
233920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testq	%rdi,%rdi
234020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lenc_key_ret
234120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	testq	%rdx,%rdx
234220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jz	.Lenc_key_ret
234320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
234420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	(%rdi),%xmm0
234520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm4
234620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rdx),%rax
234720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpl	$256,%esi
234820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.L14rounds
234920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpl	$192,%esi
235020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	je	.L12rounds
235120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	cmpl	$128,%esi
235220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jne	.Lbad_keybits
235320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
235420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L10rounds:
235520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	$9,%esi
235620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rdx)
235720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,1
235820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128_cold
235920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,2
236020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
236120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,4
236220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
236320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,8
236420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
236520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,16
236620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
236720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,32
236820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
236920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,64
237020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
237120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,128
237220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
237320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,27
237420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
237520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,54
237620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_128
237720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rax)
237820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%esi,80(%rax)
237920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorl	%eax,%eax
238020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lenc_key_ret
238120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
238220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
238320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L12rounds:
238420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	16(%rdi),%xmm2
238520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	$11,%esi
238620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rdx)
238720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,1
238820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192a_cold
238920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,2
239020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192b
239120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,4
239220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192a
239320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,8
239420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192b
239520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,16
239620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192a
239720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,32
239820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192b
239920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,64
240020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192a
240120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,128
240220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_192b
240320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rax)
240420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%esi,48(%rax)
240520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorq	%rax,%rax
240620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lenc_key_ret
240720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
240820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
240920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L14rounds:
241020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	16(%rdi),%xmm2
241120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	$13,%esi
241220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rax),%rax
241320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rdx)
241420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,16(%rdx)
241520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,1
241620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a_cold
241720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,1
241820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256b
241920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,2
242020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a
242120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,2
242220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256b
242320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,4
242420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a
242520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,4
242620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256b
242720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,8
242820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a
242920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,8
243020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256b
243120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,16
243220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a
243320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,16
243420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256b
243520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,32
243620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a
243720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,200,32
243820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256b
243920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	102,15,58,223,202,64
244020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	call	.Lkey_expansion_256a
244120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rax)
244220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movl	%esi,16(%rax)
244320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorq	%rax,%rax
244420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lenc_key_ret
244520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
244620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
244720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lbad_keybits:
244820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movq	$-2,%rax
244920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_key_ret:
245020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	addq	$8,%rsp
245120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
245220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.LSEH_end_set_encrypt_key:
245320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
245420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
245520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_128:
245620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rax)
245720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rax),%rax
245820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_128_cold:
245920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$16,%xmm0,%xmm4
246020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm0
246120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$140,%xmm0,%xmm4
246220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm0
246320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$255,%xmm1,%xmm1
246420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm0
246520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
246620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
246720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
246820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192a:
246920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rax)
247020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rax),%rax
247120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192a_cold:
247220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm2,%xmm5
247320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192b_warm:
247420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$16,%xmm0,%xmm4
247520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movdqa	%xmm2,%xmm3
247620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm0
247720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$140,%xmm0,%xmm4
247820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pslldq	$4,%xmm3
247920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm0
248020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$85,%xmm1,%xmm1
248120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm3,%xmm2
248220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm1,%xmm0
248320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pshufd	$255,%xmm0,%xmm3
248420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	pxor	%xmm3,%xmm2
248520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
248620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
248720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
248820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192b:
248920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movaps	%xmm0,%xmm3
249020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$68,%xmm0,%xmm5
249120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm5,(%rax)
249220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$78,%xmm2,%xmm3
249320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm3,16(%rax)
249420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	32(%rax),%rax
249520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	jmp	.Lkey_expansion_192b_warm
249620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
249720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
249820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_256a:
249920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm2,(%rax)
250020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rax),%rax
250120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_256a_cold:
250220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$16,%xmm0,%xmm4
250320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm0
250420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$140,%xmm0,%xmm4
250520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm0
250620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$255,%xmm1,%xmm1
250720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm0
250820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
250920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
251020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	16
251120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_256b:
251220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	movups	%xmm0,(%rax)
251320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	leaq	16(%rax),%rax
251420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
251520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$16,%xmm2,%xmm4
251620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm2
251720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$140,%xmm2,%xmm4
251820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm4,%xmm2
251920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	shufps	$170,%xmm1,%xmm1
252020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	xorps	%xmm1,%xmm2
252120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner	.byte	0xf3,0xc3
252220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	aesni_set_encrypt_key,.-aesni_set_encrypt_key
252320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size	__aesni_set_encrypt_key,.-__aesni_set_encrypt_key
252420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	64
252520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lbswap_mask:
252620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
252720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lincrement32:
252820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long	6,6,6,0
252920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lincrement64:
253020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long	1,0,0,0
253120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_magic:
253220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long	0x87,0,1,0
253320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner
253420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte	65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
253520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align	64
2536