• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file is generated from a similarly-named Perl script in the BoringSSL
2# source tree. Do not edit by hand.
3
4#if defined(__i386__)
5#if defined(BORINGSSL_PREFIX)
6#include <boringssl_prefix_symbols_asm.h>
7#endif
8.text
9#ifndef NDEBUG
10#endif
11.globl	_aes_hw_encrypt
12.private_extern	_aes_hw_encrypt
13.align	4
14_aes_hw_encrypt:
15L_aes_hw_encrypt_begin:
16#ifndef NDEBUG
17	pushl	%ebx
18	pushl	%edx
19	call	L000pic
20L000pic:
21	popl	%ebx
22	leal	_BORINGSSL_function_hit+1-L000pic(%ebx),%ebx
23	movl	$1,%edx
24	movb	%dl,(%ebx)
25	popl	%edx
26	popl	%ebx
27#endif
28	movl	4(%esp),%eax
29	movl	12(%esp),%edx
30	movups	(%eax),%xmm2
31	movl	240(%edx),%ecx
32	movl	8(%esp),%eax
33	movups	(%edx),%xmm0
34	movups	16(%edx),%xmm1
35	leal	32(%edx),%edx
36	xorps	%xmm0,%xmm2
37L001enc1_loop_1:
38.byte	102,15,56,220,209
39	decl	%ecx
40	movups	(%edx),%xmm1
41	leal	16(%edx),%edx
42	jnz	L001enc1_loop_1
43.byte	102,15,56,221,209
44	pxor	%xmm0,%xmm0
45	pxor	%xmm1,%xmm1
46	movups	%xmm2,(%eax)
47	pxor	%xmm2,%xmm2
48	ret
49.globl	_aes_hw_decrypt
50.private_extern	_aes_hw_decrypt
51.align	4
52_aes_hw_decrypt:
53L_aes_hw_decrypt_begin:
54	movl	4(%esp),%eax
55	movl	12(%esp),%edx
56	movups	(%eax),%xmm2
57	movl	240(%edx),%ecx
58	movl	8(%esp),%eax
59	movups	(%edx),%xmm0
60	movups	16(%edx),%xmm1
61	leal	32(%edx),%edx
62	xorps	%xmm0,%xmm2
63L002dec1_loop_2:
64.byte	102,15,56,222,209
65	decl	%ecx
66	movups	(%edx),%xmm1
67	leal	16(%edx),%edx
68	jnz	L002dec1_loop_2
69.byte	102,15,56,223,209
70	pxor	%xmm0,%xmm0
71	pxor	%xmm1,%xmm1
72	movups	%xmm2,(%eax)
73	pxor	%xmm2,%xmm2
74	ret
75.private_extern	__aesni_encrypt2
76.align	4
77__aesni_encrypt2:
78	movups	(%edx),%xmm0
79	shll	$4,%ecx
80	movups	16(%edx),%xmm1
81	xorps	%xmm0,%xmm2
82	pxor	%xmm0,%xmm3
83	movups	32(%edx),%xmm0
84	leal	32(%edx,%ecx,1),%edx
85	negl	%ecx
86	addl	$16,%ecx
87L003enc2_loop:
88.byte	102,15,56,220,209
89.byte	102,15,56,220,217
90	movups	(%edx,%ecx,1),%xmm1
91	addl	$32,%ecx
92.byte	102,15,56,220,208
93.byte	102,15,56,220,216
94	movups	-16(%edx,%ecx,1),%xmm0
95	jnz	L003enc2_loop
96.byte	102,15,56,220,209
97.byte	102,15,56,220,217
98.byte	102,15,56,221,208
99.byte	102,15,56,221,216
100	ret
101.private_extern	__aesni_decrypt2
102.align	4
103__aesni_decrypt2:
104	movups	(%edx),%xmm0
105	shll	$4,%ecx
106	movups	16(%edx),%xmm1
107	xorps	%xmm0,%xmm2
108	pxor	%xmm0,%xmm3
109	movups	32(%edx),%xmm0
110	leal	32(%edx,%ecx,1),%edx
111	negl	%ecx
112	addl	$16,%ecx
113L004dec2_loop:
114.byte	102,15,56,222,209
115.byte	102,15,56,222,217
116	movups	(%edx,%ecx,1),%xmm1
117	addl	$32,%ecx
118.byte	102,15,56,222,208
119.byte	102,15,56,222,216
120	movups	-16(%edx,%ecx,1),%xmm0
121	jnz	L004dec2_loop
122.byte	102,15,56,222,209
123.byte	102,15,56,222,217
124.byte	102,15,56,223,208
125.byte	102,15,56,223,216
126	ret
127.private_extern	__aesni_encrypt3
128.align	4
129__aesni_encrypt3:
130	movups	(%edx),%xmm0
131	shll	$4,%ecx
132	movups	16(%edx),%xmm1
133	xorps	%xmm0,%xmm2
134	pxor	%xmm0,%xmm3
135	pxor	%xmm0,%xmm4
136	movups	32(%edx),%xmm0
137	leal	32(%edx,%ecx,1),%edx
138	negl	%ecx
139	addl	$16,%ecx
140L005enc3_loop:
141.byte	102,15,56,220,209
142.byte	102,15,56,220,217
143.byte	102,15,56,220,225
144	movups	(%edx,%ecx,1),%xmm1
145	addl	$32,%ecx
146.byte	102,15,56,220,208
147.byte	102,15,56,220,216
148.byte	102,15,56,220,224
149	movups	-16(%edx,%ecx,1),%xmm0
150	jnz	L005enc3_loop
151.byte	102,15,56,220,209
152.byte	102,15,56,220,217
153.byte	102,15,56,220,225
154.byte	102,15,56,221,208
155.byte	102,15,56,221,216
156.byte	102,15,56,221,224
157	ret
158.private_extern	__aesni_decrypt3
159.align	4
160__aesni_decrypt3:
161	movups	(%edx),%xmm0
162	shll	$4,%ecx
163	movups	16(%edx),%xmm1
164	xorps	%xmm0,%xmm2
165	pxor	%xmm0,%xmm3
166	pxor	%xmm0,%xmm4
167	movups	32(%edx),%xmm0
168	leal	32(%edx,%ecx,1),%edx
169	negl	%ecx
170	addl	$16,%ecx
171L006dec3_loop:
172.byte	102,15,56,222,209
173.byte	102,15,56,222,217
174.byte	102,15,56,222,225
175	movups	(%edx,%ecx,1),%xmm1
176	addl	$32,%ecx
177.byte	102,15,56,222,208
178.byte	102,15,56,222,216
179.byte	102,15,56,222,224
180	movups	-16(%edx,%ecx,1),%xmm0
181	jnz	L006dec3_loop
182.byte	102,15,56,222,209
183.byte	102,15,56,222,217
184.byte	102,15,56,222,225
185.byte	102,15,56,223,208
186.byte	102,15,56,223,216
187.byte	102,15,56,223,224
188	ret
189.private_extern	__aesni_encrypt4
190.align	4
191__aesni_encrypt4:
192	movups	(%edx),%xmm0
193	movups	16(%edx),%xmm1
194	shll	$4,%ecx
195	xorps	%xmm0,%xmm2
196	pxor	%xmm0,%xmm3
197	pxor	%xmm0,%xmm4
198	pxor	%xmm0,%xmm5
199	movups	32(%edx),%xmm0
200	leal	32(%edx,%ecx,1),%edx
201	negl	%ecx
202.byte	15,31,64,0
203	addl	$16,%ecx
204L007enc4_loop:
205.byte	102,15,56,220,209
206.byte	102,15,56,220,217
207.byte	102,15,56,220,225
208.byte	102,15,56,220,233
209	movups	(%edx,%ecx,1),%xmm1
210	addl	$32,%ecx
211.byte	102,15,56,220,208
212.byte	102,15,56,220,216
213.byte	102,15,56,220,224
214.byte	102,15,56,220,232
215	movups	-16(%edx,%ecx,1),%xmm0
216	jnz	L007enc4_loop
217.byte	102,15,56,220,209
218.byte	102,15,56,220,217
219.byte	102,15,56,220,225
220.byte	102,15,56,220,233
221.byte	102,15,56,221,208
222.byte	102,15,56,221,216
223.byte	102,15,56,221,224
224.byte	102,15,56,221,232
225	ret
226.private_extern	__aesni_decrypt4
227.align	4
228__aesni_decrypt4:
229	movups	(%edx),%xmm0
230	movups	16(%edx),%xmm1
231	shll	$4,%ecx
232	xorps	%xmm0,%xmm2
233	pxor	%xmm0,%xmm3
234	pxor	%xmm0,%xmm4
235	pxor	%xmm0,%xmm5
236	movups	32(%edx),%xmm0
237	leal	32(%edx,%ecx,1),%edx
238	negl	%ecx
239.byte	15,31,64,0
240	addl	$16,%ecx
241L008dec4_loop:
242.byte	102,15,56,222,209
243.byte	102,15,56,222,217
244.byte	102,15,56,222,225
245.byte	102,15,56,222,233
246	movups	(%edx,%ecx,1),%xmm1
247	addl	$32,%ecx
248.byte	102,15,56,222,208
249.byte	102,15,56,222,216
250.byte	102,15,56,222,224
251.byte	102,15,56,222,232
252	movups	-16(%edx,%ecx,1),%xmm0
253	jnz	L008dec4_loop
254.byte	102,15,56,222,209
255.byte	102,15,56,222,217
256.byte	102,15,56,222,225
257.byte	102,15,56,222,233
258.byte	102,15,56,223,208
259.byte	102,15,56,223,216
260.byte	102,15,56,223,224
261.byte	102,15,56,223,232
262	ret
263.private_extern	__aesni_encrypt6
264.align	4
265__aesni_encrypt6:
266	movups	(%edx),%xmm0
267	shll	$4,%ecx
268	movups	16(%edx),%xmm1
269	xorps	%xmm0,%xmm2
270	pxor	%xmm0,%xmm3
271	pxor	%xmm0,%xmm4
272.byte	102,15,56,220,209
273	pxor	%xmm0,%xmm5
274	pxor	%xmm0,%xmm6
275.byte	102,15,56,220,217
276	leal	32(%edx,%ecx,1),%edx
277	negl	%ecx
278.byte	102,15,56,220,225
279	pxor	%xmm0,%xmm7
280	movups	(%edx,%ecx,1),%xmm0
281	addl	$16,%ecx
282	jmp	L009_aesni_encrypt6_inner
283.align	4,0x90
284L010enc6_loop:
285.byte	102,15,56,220,209
286.byte	102,15,56,220,217
287.byte	102,15,56,220,225
288L009_aesni_encrypt6_inner:
289.byte	102,15,56,220,233
290.byte	102,15,56,220,241
291.byte	102,15,56,220,249
292L_aesni_encrypt6_enter:
293	movups	(%edx,%ecx,1),%xmm1
294	addl	$32,%ecx
295.byte	102,15,56,220,208
296.byte	102,15,56,220,216
297.byte	102,15,56,220,224
298.byte	102,15,56,220,232
299.byte	102,15,56,220,240
300.byte	102,15,56,220,248
301	movups	-16(%edx,%ecx,1),%xmm0
302	jnz	L010enc6_loop
303.byte	102,15,56,220,209
304.byte	102,15,56,220,217
305.byte	102,15,56,220,225
306.byte	102,15,56,220,233
307.byte	102,15,56,220,241
308.byte	102,15,56,220,249
309.byte	102,15,56,221,208
310.byte	102,15,56,221,216
311.byte	102,15,56,221,224
312.byte	102,15,56,221,232
313.byte	102,15,56,221,240
314.byte	102,15,56,221,248
315	ret
316.private_extern	__aesni_decrypt6
317.align	4
318__aesni_decrypt6:
319	movups	(%edx),%xmm0
320	shll	$4,%ecx
321	movups	16(%edx),%xmm1
322	xorps	%xmm0,%xmm2
323	pxor	%xmm0,%xmm3
324	pxor	%xmm0,%xmm4
325.byte	102,15,56,222,209
326	pxor	%xmm0,%xmm5
327	pxor	%xmm0,%xmm6
328.byte	102,15,56,222,217
329	leal	32(%edx,%ecx,1),%edx
330	negl	%ecx
331.byte	102,15,56,222,225
332	pxor	%xmm0,%xmm7
333	movups	(%edx,%ecx,1),%xmm0
334	addl	$16,%ecx
335	jmp	L011_aesni_decrypt6_inner
336.align	4,0x90
337L012dec6_loop:
338.byte	102,15,56,222,209
339.byte	102,15,56,222,217
340.byte	102,15,56,222,225
341L011_aesni_decrypt6_inner:
342.byte	102,15,56,222,233
343.byte	102,15,56,222,241
344.byte	102,15,56,222,249
345L_aesni_decrypt6_enter:
346	movups	(%edx,%ecx,1),%xmm1
347	addl	$32,%ecx
348.byte	102,15,56,222,208
349.byte	102,15,56,222,216
350.byte	102,15,56,222,224
351.byte	102,15,56,222,232
352.byte	102,15,56,222,240
353.byte	102,15,56,222,248
354	movups	-16(%edx,%ecx,1),%xmm0
355	jnz	L012dec6_loop
356.byte	102,15,56,222,209
357.byte	102,15,56,222,217
358.byte	102,15,56,222,225
359.byte	102,15,56,222,233
360.byte	102,15,56,222,241
361.byte	102,15,56,222,249
362.byte	102,15,56,223,208
363.byte	102,15,56,223,216
364.byte	102,15,56,223,224
365.byte	102,15,56,223,232
366.byte	102,15,56,223,240
367.byte	102,15,56,223,248
368	ret
369.globl	_aes_hw_ecb_encrypt
370.private_extern	_aes_hw_ecb_encrypt
371.align	4
372_aes_hw_ecb_encrypt:
373L_aes_hw_ecb_encrypt_begin:
374	pushl	%ebp
375	pushl	%ebx
376	pushl	%esi
377	pushl	%edi
378	movl	20(%esp),%esi
379	movl	24(%esp),%edi
380	movl	28(%esp),%eax
381	movl	32(%esp),%edx
382	movl	36(%esp),%ebx
383	andl	$-16,%eax
384	jz	L013ecb_ret
385	movl	240(%edx),%ecx
386	testl	%ebx,%ebx
387	jz	L014ecb_decrypt
388	movl	%edx,%ebp
389	movl	%ecx,%ebx
390	cmpl	$96,%eax
391	jb	L015ecb_enc_tail
392	movdqu	(%esi),%xmm2
393	movdqu	16(%esi),%xmm3
394	movdqu	32(%esi),%xmm4
395	movdqu	48(%esi),%xmm5
396	movdqu	64(%esi),%xmm6
397	movdqu	80(%esi),%xmm7
398	leal	96(%esi),%esi
399	subl	$96,%eax
400	jmp	L016ecb_enc_loop6_enter
401.align	4,0x90
402L017ecb_enc_loop6:
403	movups	%xmm2,(%edi)
404	movdqu	(%esi),%xmm2
405	movups	%xmm3,16(%edi)
406	movdqu	16(%esi),%xmm3
407	movups	%xmm4,32(%edi)
408	movdqu	32(%esi),%xmm4
409	movups	%xmm5,48(%edi)
410	movdqu	48(%esi),%xmm5
411	movups	%xmm6,64(%edi)
412	movdqu	64(%esi),%xmm6
413	movups	%xmm7,80(%edi)
414	leal	96(%edi),%edi
415	movdqu	80(%esi),%xmm7
416	leal	96(%esi),%esi
417L016ecb_enc_loop6_enter:
418	call	__aesni_encrypt6
419	movl	%ebp,%edx
420	movl	%ebx,%ecx
421	subl	$96,%eax
422	jnc	L017ecb_enc_loop6
423	movups	%xmm2,(%edi)
424	movups	%xmm3,16(%edi)
425	movups	%xmm4,32(%edi)
426	movups	%xmm5,48(%edi)
427	movups	%xmm6,64(%edi)
428	movups	%xmm7,80(%edi)
429	leal	96(%edi),%edi
430	addl	$96,%eax
431	jz	L013ecb_ret
432L015ecb_enc_tail:
433	movups	(%esi),%xmm2
434	cmpl	$32,%eax
435	jb	L018ecb_enc_one
436	movups	16(%esi),%xmm3
437	je	L019ecb_enc_two
438	movups	32(%esi),%xmm4
439	cmpl	$64,%eax
440	jb	L020ecb_enc_three
441	movups	48(%esi),%xmm5
442	je	L021ecb_enc_four
443	movups	64(%esi),%xmm6
444	xorps	%xmm7,%xmm7
445	call	__aesni_encrypt6
446	movups	%xmm2,(%edi)
447	movups	%xmm3,16(%edi)
448	movups	%xmm4,32(%edi)
449	movups	%xmm5,48(%edi)
450	movups	%xmm6,64(%edi)
451	jmp	L013ecb_ret
452.align	4,0x90
453L018ecb_enc_one:
454	movups	(%edx),%xmm0
455	movups	16(%edx),%xmm1
456	leal	32(%edx),%edx
457	xorps	%xmm0,%xmm2
458L022enc1_loop_3:
459.byte	102,15,56,220,209
460	decl	%ecx
461	movups	(%edx),%xmm1
462	leal	16(%edx),%edx
463	jnz	L022enc1_loop_3
464.byte	102,15,56,221,209
465	movups	%xmm2,(%edi)
466	jmp	L013ecb_ret
467.align	4,0x90
468L019ecb_enc_two:
469	call	__aesni_encrypt2
470	movups	%xmm2,(%edi)
471	movups	%xmm3,16(%edi)
472	jmp	L013ecb_ret
473.align	4,0x90
474L020ecb_enc_three:
475	call	__aesni_encrypt3
476	movups	%xmm2,(%edi)
477	movups	%xmm3,16(%edi)
478	movups	%xmm4,32(%edi)
479	jmp	L013ecb_ret
480.align	4,0x90
481L021ecb_enc_four:
482	call	__aesni_encrypt4
483	movups	%xmm2,(%edi)
484	movups	%xmm3,16(%edi)
485	movups	%xmm4,32(%edi)
486	movups	%xmm5,48(%edi)
487	jmp	L013ecb_ret
488.align	4,0x90
489L014ecb_decrypt:
490	movl	%edx,%ebp
491	movl	%ecx,%ebx
492	cmpl	$96,%eax
493	jb	L023ecb_dec_tail
494	movdqu	(%esi),%xmm2
495	movdqu	16(%esi),%xmm3
496	movdqu	32(%esi),%xmm4
497	movdqu	48(%esi),%xmm5
498	movdqu	64(%esi),%xmm6
499	movdqu	80(%esi),%xmm7
500	leal	96(%esi),%esi
501	subl	$96,%eax
502	jmp	L024ecb_dec_loop6_enter
503.align	4,0x90
504L025ecb_dec_loop6:
505	movups	%xmm2,(%edi)
506	movdqu	(%esi),%xmm2
507	movups	%xmm3,16(%edi)
508	movdqu	16(%esi),%xmm3
509	movups	%xmm4,32(%edi)
510	movdqu	32(%esi),%xmm4
511	movups	%xmm5,48(%edi)
512	movdqu	48(%esi),%xmm5
513	movups	%xmm6,64(%edi)
514	movdqu	64(%esi),%xmm6
515	movups	%xmm7,80(%edi)
516	leal	96(%edi),%edi
517	movdqu	80(%esi),%xmm7
518	leal	96(%esi),%esi
519L024ecb_dec_loop6_enter:
520	call	__aesni_decrypt6
521	movl	%ebp,%edx
522	movl	%ebx,%ecx
523	subl	$96,%eax
524	jnc	L025ecb_dec_loop6
525	movups	%xmm2,(%edi)
526	movups	%xmm3,16(%edi)
527	movups	%xmm4,32(%edi)
528	movups	%xmm5,48(%edi)
529	movups	%xmm6,64(%edi)
530	movups	%xmm7,80(%edi)
531	leal	96(%edi),%edi
532	addl	$96,%eax
533	jz	L013ecb_ret
534L023ecb_dec_tail:
535	movups	(%esi),%xmm2
536	cmpl	$32,%eax
537	jb	L026ecb_dec_one
538	movups	16(%esi),%xmm3
539	je	L027ecb_dec_two
540	movups	32(%esi),%xmm4
541	cmpl	$64,%eax
542	jb	L028ecb_dec_three
543	movups	48(%esi),%xmm5
544	je	L029ecb_dec_four
545	movups	64(%esi),%xmm6
546	xorps	%xmm7,%xmm7
547	call	__aesni_decrypt6
548	movups	%xmm2,(%edi)
549	movups	%xmm3,16(%edi)
550	movups	%xmm4,32(%edi)
551	movups	%xmm5,48(%edi)
552	movups	%xmm6,64(%edi)
553	jmp	L013ecb_ret
554.align	4,0x90
555L026ecb_dec_one:
556	movups	(%edx),%xmm0
557	movups	16(%edx),%xmm1
558	leal	32(%edx),%edx
559	xorps	%xmm0,%xmm2
560L030dec1_loop_4:
561.byte	102,15,56,222,209
562	decl	%ecx
563	movups	(%edx),%xmm1
564	leal	16(%edx),%edx
565	jnz	L030dec1_loop_4
566.byte	102,15,56,223,209
567	movups	%xmm2,(%edi)
568	jmp	L013ecb_ret
569.align	4,0x90
570L027ecb_dec_two:
571	call	__aesni_decrypt2
572	movups	%xmm2,(%edi)
573	movups	%xmm3,16(%edi)
574	jmp	L013ecb_ret
575.align	4,0x90
576L028ecb_dec_three:
577	call	__aesni_decrypt3
578	movups	%xmm2,(%edi)
579	movups	%xmm3,16(%edi)
580	movups	%xmm4,32(%edi)
581	jmp	L013ecb_ret
582.align	4,0x90
583L029ecb_dec_four:
584	call	__aesni_decrypt4
585	movups	%xmm2,(%edi)
586	movups	%xmm3,16(%edi)
587	movups	%xmm4,32(%edi)
588	movups	%xmm5,48(%edi)
589L013ecb_ret:
590	pxor	%xmm0,%xmm0
591	pxor	%xmm1,%xmm1
592	pxor	%xmm2,%xmm2
593	pxor	%xmm3,%xmm3
594	pxor	%xmm4,%xmm4
595	pxor	%xmm5,%xmm5
596	pxor	%xmm6,%xmm6
597	pxor	%xmm7,%xmm7
598	popl	%edi
599	popl	%esi
600	popl	%ebx
601	popl	%ebp
602	ret
603.globl	_aes_hw_ccm64_encrypt_blocks
604.private_extern	_aes_hw_ccm64_encrypt_blocks
605.align	4
606_aes_hw_ccm64_encrypt_blocks:
607L_aes_hw_ccm64_encrypt_blocks_begin:
608	pushl	%ebp
609	pushl	%ebx
610	pushl	%esi
611	pushl	%edi
612	movl	20(%esp),%esi
613	movl	24(%esp),%edi
614	movl	28(%esp),%eax
615	movl	32(%esp),%edx
616	movl	36(%esp),%ebx
617	movl	40(%esp),%ecx
618	movl	%esp,%ebp
619	subl	$60,%esp
620	andl	$-16,%esp
621	movl	%ebp,48(%esp)
622	movdqu	(%ebx),%xmm7
623	movdqu	(%ecx),%xmm3
624	movl	240(%edx),%ecx
625	movl	$202182159,(%esp)
626	movl	$134810123,4(%esp)
627	movl	$67438087,8(%esp)
628	movl	$66051,12(%esp)
629	movl	$1,%ebx
630	xorl	%ebp,%ebp
631	movl	%ebx,16(%esp)
632	movl	%ebp,20(%esp)
633	movl	%ebp,24(%esp)
634	movl	%ebp,28(%esp)
635	shll	$4,%ecx
636	movl	$16,%ebx
637	leal	(%edx),%ebp
638	movdqa	(%esp),%xmm5
639	movdqa	%xmm7,%xmm2
640	leal	32(%edx,%ecx,1),%edx
641	subl	%ecx,%ebx
642.byte	102,15,56,0,253
643L031ccm64_enc_outer:
644	movups	(%ebp),%xmm0
645	movl	%ebx,%ecx
646	movups	(%esi),%xmm6
647	xorps	%xmm0,%xmm2
648	movups	16(%ebp),%xmm1
649	xorps	%xmm6,%xmm0
650	xorps	%xmm0,%xmm3
651	movups	32(%ebp),%xmm0
652L032ccm64_enc2_loop:
653.byte	102,15,56,220,209
654.byte	102,15,56,220,217
655	movups	(%edx,%ecx,1),%xmm1
656	addl	$32,%ecx
657.byte	102,15,56,220,208
658.byte	102,15,56,220,216
659	movups	-16(%edx,%ecx,1),%xmm0
660	jnz	L032ccm64_enc2_loop
661.byte	102,15,56,220,209
662.byte	102,15,56,220,217
663	paddq	16(%esp),%xmm7
664	decl	%eax
665.byte	102,15,56,221,208
666.byte	102,15,56,221,216
667	leal	16(%esi),%esi
668	xorps	%xmm2,%xmm6
669	movdqa	%xmm7,%xmm2
670	movups	%xmm6,(%edi)
671.byte	102,15,56,0,213
672	leal	16(%edi),%edi
673	jnz	L031ccm64_enc_outer
674	movl	48(%esp),%esp
675	movl	40(%esp),%edi
676	movups	%xmm3,(%edi)
677	pxor	%xmm0,%xmm0
678	pxor	%xmm1,%xmm1
679	pxor	%xmm2,%xmm2
680	pxor	%xmm3,%xmm3
681	pxor	%xmm4,%xmm4
682	pxor	%xmm5,%xmm5
683	pxor	%xmm6,%xmm6
684	pxor	%xmm7,%xmm7
685	popl	%edi
686	popl	%esi
687	popl	%ebx
688	popl	%ebp
689	ret
690.globl	_aes_hw_ccm64_decrypt_blocks
691.private_extern	_aes_hw_ccm64_decrypt_blocks
692.align	4
693_aes_hw_ccm64_decrypt_blocks:
694L_aes_hw_ccm64_decrypt_blocks_begin:
695	pushl	%ebp
696	pushl	%ebx
697	pushl	%esi
698	pushl	%edi
699	movl	20(%esp),%esi
700	movl	24(%esp),%edi
701	movl	28(%esp),%eax
702	movl	32(%esp),%edx
703	movl	36(%esp),%ebx
704	movl	40(%esp),%ecx
705	movl	%esp,%ebp
706	subl	$60,%esp
707	andl	$-16,%esp
708	movl	%ebp,48(%esp)
709	movdqu	(%ebx),%xmm7
710	movdqu	(%ecx),%xmm3
711	movl	240(%edx),%ecx
712	movl	$202182159,(%esp)
713	movl	$134810123,4(%esp)
714	movl	$67438087,8(%esp)
715	movl	$66051,12(%esp)
716	movl	$1,%ebx
717	xorl	%ebp,%ebp
718	movl	%ebx,16(%esp)
719	movl	%ebp,20(%esp)
720	movl	%ebp,24(%esp)
721	movl	%ebp,28(%esp)
722	movdqa	(%esp),%xmm5
723	movdqa	%xmm7,%xmm2
724	movl	%edx,%ebp
725	movl	%ecx,%ebx
726.byte	102,15,56,0,253
727	movups	(%edx),%xmm0
728	movups	16(%edx),%xmm1
729	leal	32(%edx),%edx
730	xorps	%xmm0,%xmm2
731L033enc1_loop_5:
732.byte	102,15,56,220,209
733	decl	%ecx
734	movups	(%edx),%xmm1
735	leal	16(%edx),%edx
736	jnz	L033enc1_loop_5
737.byte	102,15,56,221,209
738	shll	$4,%ebx
739	movl	$16,%ecx
740	movups	(%esi),%xmm6
741	paddq	16(%esp),%xmm7
742	leal	16(%esi),%esi
743	subl	%ebx,%ecx
744	leal	32(%ebp,%ebx,1),%edx
745	movl	%ecx,%ebx
746	jmp	L034ccm64_dec_outer
747.align	4,0x90
748L034ccm64_dec_outer:
749	xorps	%xmm2,%xmm6
750	movdqa	%xmm7,%xmm2
751	movups	%xmm6,(%edi)
752	leal	16(%edi),%edi
753.byte	102,15,56,0,213
754	subl	$1,%eax
755	jz	L035ccm64_dec_break
756	movups	(%ebp),%xmm0
757	movl	%ebx,%ecx
758	movups	16(%ebp),%xmm1
759	xorps	%xmm0,%xmm6
760	xorps	%xmm0,%xmm2
761	xorps	%xmm6,%xmm3
762	movups	32(%ebp),%xmm0
763L036ccm64_dec2_loop:
764.byte	102,15,56,220,209
765.byte	102,15,56,220,217
766	movups	(%edx,%ecx,1),%xmm1
767	addl	$32,%ecx
768.byte	102,15,56,220,208
769.byte	102,15,56,220,216
770	movups	-16(%edx,%ecx,1),%xmm0
771	jnz	L036ccm64_dec2_loop
772	movups	(%esi),%xmm6
773	paddq	16(%esp),%xmm7
774.byte	102,15,56,220,209
775.byte	102,15,56,220,217
776.byte	102,15,56,221,208
777.byte	102,15,56,221,216
778	leal	16(%esi),%esi
779	jmp	L034ccm64_dec_outer
780.align	4,0x90
781L035ccm64_dec_break:
782	movl	240(%ebp),%ecx
783	movl	%ebp,%edx
784	movups	(%edx),%xmm0
785	movups	16(%edx),%xmm1
786	xorps	%xmm0,%xmm6
787	leal	32(%edx),%edx
788	xorps	%xmm6,%xmm3
789L037enc1_loop_6:
790.byte	102,15,56,220,217
791	decl	%ecx
792	movups	(%edx),%xmm1
793	leal	16(%edx),%edx
794	jnz	L037enc1_loop_6
795.byte	102,15,56,221,217
796	movl	48(%esp),%esp
797	movl	40(%esp),%edi
798	movups	%xmm3,(%edi)
799	pxor	%xmm0,%xmm0
800	pxor	%xmm1,%xmm1
801	pxor	%xmm2,%xmm2
802	pxor	%xmm3,%xmm3
803	pxor	%xmm4,%xmm4
804	pxor	%xmm5,%xmm5
805	pxor	%xmm6,%xmm6
806	pxor	%xmm7,%xmm7
807	popl	%edi
808	popl	%esi
809	popl	%ebx
810	popl	%ebp
811	ret
812.globl	_aes_hw_ctr32_encrypt_blocks
813.private_extern	_aes_hw_ctr32_encrypt_blocks
814.align	4
815_aes_hw_ctr32_encrypt_blocks:
816L_aes_hw_ctr32_encrypt_blocks_begin:
817	pushl	%ebp
818	pushl	%ebx
819	pushl	%esi
820	pushl	%edi
821#ifndef NDEBUG
822	pushl	%ebx
823	pushl	%edx
824	call	L038pic
825L038pic:
826	popl	%ebx
827	leal	_BORINGSSL_function_hit+0-L038pic(%ebx),%ebx
828	movl	$1,%edx
829	movb	%dl,(%ebx)
830	popl	%edx
831	popl	%ebx
832#endif
833	movl	20(%esp),%esi
834	movl	24(%esp),%edi
835	movl	28(%esp),%eax
836	movl	32(%esp),%edx
837	movl	36(%esp),%ebx
838	movl	%esp,%ebp
839	subl	$88,%esp
840	andl	$-16,%esp
841	movl	%ebp,80(%esp)
842	cmpl	$1,%eax
843	je	L039ctr32_one_shortcut
844	movdqu	(%ebx),%xmm7
845	movl	$202182159,(%esp)
846	movl	$134810123,4(%esp)
847	movl	$67438087,8(%esp)
848	movl	$66051,12(%esp)
849	movl	$6,%ecx
850	xorl	%ebp,%ebp
851	movl	%ecx,16(%esp)
852	movl	%ecx,20(%esp)
853	movl	%ecx,24(%esp)
854	movl	%ebp,28(%esp)
855.byte	102,15,58,22,251,3
856.byte	102,15,58,34,253,3
857	movl	240(%edx),%ecx
858	bswap	%ebx
859	pxor	%xmm0,%xmm0
860	pxor	%xmm1,%xmm1
861	movdqa	(%esp),%xmm2
862.byte	102,15,58,34,195,0
863	leal	3(%ebx),%ebp
864.byte	102,15,58,34,205,0
865	incl	%ebx
866.byte	102,15,58,34,195,1
867	incl	%ebp
868.byte	102,15,58,34,205,1
869	incl	%ebx
870.byte	102,15,58,34,195,2
871	incl	%ebp
872.byte	102,15,58,34,205,2
873	movdqa	%xmm0,48(%esp)
874.byte	102,15,56,0,194
875	movdqu	(%edx),%xmm6
876	movdqa	%xmm1,64(%esp)
877.byte	102,15,56,0,202
878	pshufd	$192,%xmm0,%xmm2
879	pshufd	$128,%xmm0,%xmm3
880	cmpl	$6,%eax
881	jb	L040ctr32_tail
882	pxor	%xmm6,%xmm7
883	shll	$4,%ecx
884	movl	$16,%ebx
885	movdqa	%xmm7,32(%esp)
886	movl	%edx,%ebp
887	subl	%ecx,%ebx
888	leal	32(%edx,%ecx,1),%edx
889	subl	$6,%eax
890	jmp	L041ctr32_loop6
891.align	4,0x90
892L041ctr32_loop6:
893	pshufd	$64,%xmm0,%xmm4
894	movdqa	32(%esp),%xmm0
895	pshufd	$192,%xmm1,%xmm5
896	pxor	%xmm0,%xmm2
897	pshufd	$128,%xmm1,%xmm6
898	pxor	%xmm0,%xmm3
899	pshufd	$64,%xmm1,%xmm7
900	movups	16(%ebp),%xmm1
901	pxor	%xmm0,%xmm4
902	pxor	%xmm0,%xmm5
903.byte	102,15,56,220,209
904	pxor	%xmm0,%xmm6
905	pxor	%xmm0,%xmm7
906.byte	102,15,56,220,217
907	movups	32(%ebp),%xmm0
908	movl	%ebx,%ecx
909.byte	102,15,56,220,225
910.byte	102,15,56,220,233
911.byte	102,15,56,220,241
912.byte	102,15,56,220,249
913	call	L_aesni_encrypt6_enter
914	movups	(%esi),%xmm1
915	movups	16(%esi),%xmm0
916	xorps	%xmm1,%xmm2
917	movups	32(%esi),%xmm1
918	xorps	%xmm0,%xmm3
919	movups	%xmm2,(%edi)
920	movdqa	16(%esp),%xmm0
921	xorps	%xmm1,%xmm4
922	movdqa	64(%esp),%xmm1
923	movups	%xmm3,16(%edi)
924	movups	%xmm4,32(%edi)
925	paddd	%xmm0,%xmm1
926	paddd	48(%esp),%xmm0
927	movdqa	(%esp),%xmm2
928	movups	48(%esi),%xmm3
929	movups	64(%esi),%xmm4
930	xorps	%xmm3,%xmm5
931	movups	80(%esi),%xmm3
932	leal	96(%esi),%esi
933	movdqa	%xmm0,48(%esp)
934.byte	102,15,56,0,194
935	xorps	%xmm4,%xmm6
936	movups	%xmm5,48(%edi)
937	xorps	%xmm3,%xmm7
938	movdqa	%xmm1,64(%esp)
939.byte	102,15,56,0,202
940	movups	%xmm6,64(%edi)
941	pshufd	$192,%xmm0,%xmm2
942	movups	%xmm7,80(%edi)
943	leal	96(%edi),%edi
944	pshufd	$128,%xmm0,%xmm3
945	subl	$6,%eax
946	jnc	L041ctr32_loop6
947	addl	$6,%eax
948	jz	L042ctr32_ret
949	movdqu	(%ebp),%xmm7
950	movl	%ebp,%edx
951	pxor	32(%esp),%xmm7
952	movl	240(%ebp),%ecx
953L040ctr32_tail:
954	por	%xmm7,%xmm2
955	cmpl	$2,%eax
956	jb	L043ctr32_one
957	pshufd	$64,%xmm0,%xmm4
958	por	%xmm7,%xmm3
959	je	L044ctr32_two
960	pshufd	$192,%xmm1,%xmm5
961	por	%xmm7,%xmm4
962	cmpl	$4,%eax
963	jb	L045ctr32_three
964	pshufd	$128,%xmm1,%xmm6
965	por	%xmm7,%xmm5
966	je	L046ctr32_four
967	por	%xmm7,%xmm6
968	call	__aesni_encrypt6
969	movups	(%esi),%xmm1
970	movups	16(%esi),%xmm0
971	xorps	%xmm1,%xmm2
972	movups	32(%esi),%xmm1
973	xorps	%xmm0,%xmm3
974	movups	48(%esi),%xmm0
975	xorps	%xmm1,%xmm4
976	movups	64(%esi),%xmm1
977	xorps	%xmm0,%xmm5
978	movups	%xmm2,(%edi)
979	xorps	%xmm1,%xmm6
980	movups	%xmm3,16(%edi)
981	movups	%xmm4,32(%edi)
982	movups	%xmm5,48(%edi)
983	movups	%xmm6,64(%edi)
984	jmp	L042ctr32_ret
985.align	4,0x90
986L039ctr32_one_shortcut:
987	movups	(%ebx),%xmm2
988	movl	240(%edx),%ecx
989L043ctr32_one:
990	movups	(%edx),%xmm0
991	movups	16(%edx),%xmm1
992	leal	32(%edx),%edx
993	xorps	%xmm0,%xmm2
994L047enc1_loop_7:
995.byte	102,15,56,220,209
996	decl	%ecx
997	movups	(%edx),%xmm1
998	leal	16(%edx),%edx
999	jnz	L047enc1_loop_7
1000.byte	102,15,56,221,209
1001	movups	(%esi),%xmm6
1002	xorps	%xmm2,%xmm6
1003	movups	%xmm6,(%edi)
1004	jmp	L042ctr32_ret
1005.align	4,0x90
1006L044ctr32_two:
1007	call	__aesni_encrypt2
1008	movups	(%esi),%xmm5
1009	movups	16(%esi),%xmm6
1010	xorps	%xmm5,%xmm2
1011	xorps	%xmm6,%xmm3
1012	movups	%xmm2,(%edi)
1013	movups	%xmm3,16(%edi)
1014	jmp	L042ctr32_ret
1015.align	4,0x90
1016L045ctr32_three:
1017	call	__aesni_encrypt3
1018	movups	(%esi),%xmm5
1019	movups	16(%esi),%xmm6
1020	xorps	%xmm5,%xmm2
1021	movups	32(%esi),%xmm7
1022	xorps	%xmm6,%xmm3
1023	movups	%xmm2,(%edi)
1024	xorps	%xmm7,%xmm4
1025	movups	%xmm3,16(%edi)
1026	movups	%xmm4,32(%edi)
1027	jmp	L042ctr32_ret
1028.align	4,0x90
1029L046ctr32_four:
1030	call	__aesni_encrypt4
1031	movups	(%esi),%xmm6
1032	movups	16(%esi),%xmm7
1033	movups	32(%esi),%xmm1
1034	xorps	%xmm6,%xmm2
1035	movups	48(%esi),%xmm0
1036	xorps	%xmm7,%xmm3
1037	movups	%xmm2,(%edi)
1038	xorps	%xmm1,%xmm4
1039	movups	%xmm3,16(%edi)
1040	xorps	%xmm0,%xmm5
1041	movups	%xmm4,32(%edi)
1042	movups	%xmm5,48(%edi)
1043L042ctr32_ret:
1044	pxor	%xmm0,%xmm0
1045	pxor	%xmm1,%xmm1
1046	pxor	%xmm2,%xmm2
1047	pxor	%xmm3,%xmm3
1048	pxor	%xmm4,%xmm4
1049	movdqa	%xmm0,32(%esp)
1050	pxor	%xmm5,%xmm5
1051	movdqa	%xmm0,48(%esp)
1052	pxor	%xmm6,%xmm6
1053	movdqa	%xmm0,64(%esp)
1054	pxor	%xmm7,%xmm7
1055	movl	80(%esp),%esp
1056	popl	%edi
1057	popl	%esi
1058	popl	%ebx
1059	popl	%ebp
1060	ret
1061.globl	_aes_hw_xts_encrypt
1062.private_extern	_aes_hw_xts_encrypt
1063.align	4
1064_aes_hw_xts_encrypt:
1065L_aes_hw_xts_encrypt_begin:
1066	pushl	%ebp
1067	pushl	%ebx
1068	pushl	%esi
1069	pushl	%edi
1070	movl	36(%esp),%edx
1071	movl	40(%esp),%esi
1072	movl	240(%edx),%ecx
1073	movups	(%esi),%xmm2
1074	movups	(%edx),%xmm0
1075	movups	16(%edx),%xmm1
1076	leal	32(%edx),%edx
1077	xorps	%xmm0,%xmm2
1078L048enc1_loop_8:
1079.byte	102,15,56,220,209
1080	decl	%ecx
1081	movups	(%edx),%xmm1
1082	leal	16(%edx),%edx
1083	jnz	L048enc1_loop_8
1084.byte	102,15,56,221,209
1085	movl	20(%esp),%esi
1086	movl	24(%esp),%edi
1087	movl	28(%esp),%eax
1088	movl	32(%esp),%edx
1089	movl	%esp,%ebp
1090	subl	$120,%esp
1091	movl	240(%edx),%ecx
1092	andl	$-16,%esp
1093	movl	$135,96(%esp)
1094	movl	$0,100(%esp)
1095	movl	$1,104(%esp)
1096	movl	$0,108(%esp)
1097	movl	%eax,112(%esp)
1098	movl	%ebp,116(%esp)
1099	movdqa	%xmm2,%xmm1
1100	pxor	%xmm0,%xmm0
1101	movdqa	96(%esp),%xmm3
1102	pcmpgtd	%xmm1,%xmm0
1103	andl	$-16,%eax
1104	movl	%edx,%ebp
1105	movl	%ecx,%ebx
1106	subl	$96,%eax
1107	jc	L049xts_enc_short
1108	shll	$4,%ecx
1109	movl	$16,%ebx
1110	subl	%ecx,%ebx
1111	leal	32(%edx,%ecx,1),%edx
1112	jmp	L050xts_enc_loop6
1113.align	4,0x90
1114L050xts_enc_loop6:
1115	pshufd	$19,%xmm0,%xmm2
1116	pxor	%xmm0,%xmm0
1117	movdqa	%xmm1,(%esp)
1118	paddq	%xmm1,%xmm1
1119	pand	%xmm3,%xmm2
1120	pcmpgtd	%xmm1,%xmm0
1121	pxor	%xmm2,%xmm1
1122	pshufd	$19,%xmm0,%xmm2
1123	pxor	%xmm0,%xmm0
1124	movdqa	%xmm1,16(%esp)
1125	paddq	%xmm1,%xmm1
1126	pand	%xmm3,%xmm2
1127	pcmpgtd	%xmm1,%xmm0
1128	pxor	%xmm2,%xmm1
1129	pshufd	$19,%xmm0,%xmm2
1130	pxor	%xmm0,%xmm0
1131	movdqa	%xmm1,32(%esp)
1132	paddq	%xmm1,%xmm1
1133	pand	%xmm3,%xmm2
1134	pcmpgtd	%xmm1,%xmm0
1135	pxor	%xmm2,%xmm1
1136	pshufd	$19,%xmm0,%xmm2
1137	pxor	%xmm0,%xmm0
1138	movdqa	%xmm1,48(%esp)
1139	paddq	%xmm1,%xmm1
1140	pand	%xmm3,%xmm2
1141	pcmpgtd	%xmm1,%xmm0
1142	pxor	%xmm2,%xmm1
1143	pshufd	$19,%xmm0,%xmm7
1144	movdqa	%xmm1,64(%esp)
1145	paddq	%xmm1,%xmm1
1146	movups	(%ebp),%xmm0
1147	pand	%xmm3,%xmm7
1148	movups	(%esi),%xmm2
1149	pxor	%xmm1,%xmm7
1150	movl	%ebx,%ecx
1151	movdqu	16(%esi),%xmm3
1152	xorps	%xmm0,%xmm2
1153	movdqu	32(%esi),%xmm4
1154	pxor	%xmm0,%xmm3
1155	movdqu	48(%esi),%xmm5
1156	pxor	%xmm0,%xmm4
1157	movdqu	64(%esi),%xmm6
1158	pxor	%xmm0,%xmm5
1159	movdqu	80(%esi),%xmm1
1160	pxor	%xmm0,%xmm6
1161	leal	96(%esi),%esi
1162	pxor	(%esp),%xmm2
1163	movdqa	%xmm7,80(%esp)
1164	pxor	%xmm1,%xmm7
1165	movups	16(%ebp),%xmm1
1166	pxor	16(%esp),%xmm3
1167	pxor	32(%esp),%xmm4
1168.byte	102,15,56,220,209
1169	pxor	48(%esp),%xmm5
1170	pxor	64(%esp),%xmm6
1171.byte	102,15,56,220,217
1172	pxor	%xmm0,%xmm7
1173	movups	32(%ebp),%xmm0
1174.byte	102,15,56,220,225
1175.byte	102,15,56,220,233
1176.byte	102,15,56,220,241
1177.byte	102,15,56,220,249
1178	call	L_aesni_encrypt6_enter
1179	movdqa	80(%esp),%xmm1
1180	pxor	%xmm0,%xmm0
1181	xorps	(%esp),%xmm2
1182	pcmpgtd	%xmm1,%xmm0
1183	xorps	16(%esp),%xmm3
1184	movups	%xmm2,(%edi)
1185	xorps	32(%esp),%xmm4
1186	movups	%xmm3,16(%edi)
1187	xorps	48(%esp),%xmm5
1188	movups	%xmm4,32(%edi)
1189	xorps	64(%esp),%xmm6
1190	movups	%xmm5,48(%edi)
1191	xorps	%xmm1,%xmm7
1192	movups	%xmm6,64(%edi)
1193	pshufd	$19,%xmm0,%xmm2
1194	movups	%xmm7,80(%edi)
1195	leal	96(%edi),%edi
1196	movdqa	96(%esp),%xmm3
1197	pxor	%xmm0,%xmm0
1198	paddq	%xmm1,%xmm1
1199	pand	%xmm3,%xmm2
1200	pcmpgtd	%xmm1,%xmm0
1201	pxor	%xmm2,%xmm1
1202	subl	$96,%eax
1203	jnc	L050xts_enc_loop6
1204	movl	240(%ebp),%ecx
1205	movl	%ebp,%edx
1206	movl	%ecx,%ebx
1207L049xts_enc_short:
1208	addl	$96,%eax
1209	jz	L051xts_enc_done6x
1210	movdqa	%xmm1,%xmm5
1211	cmpl	$32,%eax
1212	jb	L052xts_enc_one
1213	pshufd	$19,%xmm0,%xmm2
1214	pxor	%xmm0,%xmm0
1215	paddq	%xmm1,%xmm1
1216	pand	%xmm3,%xmm2
1217	pcmpgtd	%xmm1,%xmm0
1218	pxor	%xmm2,%xmm1
1219	je	L053xts_enc_two
1220	pshufd	$19,%xmm0,%xmm2
1221	pxor	%xmm0,%xmm0
1222	movdqa	%xmm1,%xmm6
1223	paddq	%xmm1,%xmm1
1224	pand	%xmm3,%xmm2
1225	pcmpgtd	%xmm1,%xmm0
1226	pxor	%xmm2,%xmm1
1227	cmpl	$64,%eax
1228	jb	L054xts_enc_three
1229	pshufd	$19,%xmm0,%xmm2
1230	pxor	%xmm0,%xmm0
1231	movdqa	%xmm1,%xmm7
1232	paddq	%xmm1,%xmm1
1233	pand	%xmm3,%xmm2
1234	pcmpgtd	%xmm1,%xmm0
1235	pxor	%xmm2,%xmm1
1236	movdqa	%xmm5,(%esp)
1237	movdqa	%xmm6,16(%esp)
1238	je	L055xts_enc_four
1239	movdqa	%xmm7,32(%esp)
1240	pshufd	$19,%xmm0,%xmm7
1241	movdqa	%xmm1,48(%esp)
1242	paddq	%xmm1,%xmm1
1243	pand	%xmm3,%xmm7
1244	pxor	%xmm1,%xmm7
1245	movdqu	(%esi),%xmm2
1246	movdqu	16(%esi),%xmm3
1247	movdqu	32(%esi),%xmm4
1248	pxor	(%esp),%xmm2
1249	movdqu	48(%esi),%xmm5
1250	pxor	16(%esp),%xmm3
1251	movdqu	64(%esi),%xmm6
1252	pxor	32(%esp),%xmm4
1253	leal	80(%esi),%esi
1254	pxor	48(%esp),%xmm5
1255	movdqa	%xmm7,64(%esp)
1256	pxor	%xmm7,%xmm6
1257	call	__aesni_encrypt6
1258	movaps	64(%esp),%xmm1
1259	xorps	(%esp),%xmm2
1260	xorps	16(%esp),%xmm3
1261	xorps	32(%esp),%xmm4
1262	movups	%xmm2,(%edi)
1263	xorps	48(%esp),%xmm5
1264	movups	%xmm3,16(%edi)
1265	xorps	%xmm1,%xmm6
1266	movups	%xmm4,32(%edi)
1267	movups	%xmm5,48(%edi)
1268	movups	%xmm6,64(%edi)
1269	leal	80(%edi),%edi
1270	jmp	L056xts_enc_done
1271.align	4,0x90
1272L052xts_enc_one:
1273	movups	(%esi),%xmm2
1274	leal	16(%esi),%esi
1275	xorps	%xmm5,%xmm2
1276	movups	(%edx),%xmm0
1277	movups	16(%edx),%xmm1
1278	leal	32(%edx),%edx
1279	xorps	%xmm0,%xmm2
1280L057enc1_loop_9:
1281.byte	102,15,56,220,209
1282	decl	%ecx
1283	movups	(%edx),%xmm1
1284	leal	16(%edx),%edx
1285	jnz	L057enc1_loop_9
1286.byte	102,15,56,221,209
1287	xorps	%xmm5,%xmm2
1288	movups	%xmm2,(%edi)
1289	leal	16(%edi),%edi
1290	movdqa	%xmm5,%xmm1
1291	jmp	L056xts_enc_done
1292.align	4,0x90
1293L053xts_enc_two:
1294	movaps	%xmm1,%xmm6
1295	movups	(%esi),%xmm2
1296	movups	16(%esi),%xmm3
1297	leal	32(%esi),%esi
1298	xorps	%xmm5,%xmm2
1299	xorps	%xmm6,%xmm3
1300	call	__aesni_encrypt2
1301	xorps	%xmm5,%xmm2
1302	xorps	%xmm6,%xmm3
1303	movups	%xmm2,(%edi)
1304	movups	%xmm3,16(%edi)
1305	leal	32(%edi),%edi
1306	movdqa	%xmm6,%xmm1
1307	jmp	L056xts_enc_done
1308.align	4,0x90
1309L054xts_enc_three:
1310	movaps	%xmm1,%xmm7
1311	movups	(%esi),%xmm2
1312	movups	16(%esi),%xmm3
1313	movups	32(%esi),%xmm4
1314	leal	48(%esi),%esi
1315	xorps	%xmm5,%xmm2
1316	xorps	%xmm6,%xmm3
1317	xorps	%xmm7,%xmm4
1318	call	__aesni_encrypt3
1319	xorps	%xmm5,%xmm2
1320	xorps	%xmm6,%xmm3
1321	xorps	%xmm7,%xmm4
1322	movups	%xmm2,(%edi)
1323	movups	%xmm3,16(%edi)
1324	movups	%xmm4,32(%edi)
1325	leal	48(%edi),%edi
1326	movdqa	%xmm7,%xmm1
1327	jmp	L056xts_enc_done
1328.align	4,0x90
1329L055xts_enc_four:
1330	movaps	%xmm1,%xmm6
1331	movups	(%esi),%xmm2
1332	movups	16(%esi),%xmm3
1333	movups	32(%esi),%xmm4
1334	xorps	(%esp),%xmm2
1335	movups	48(%esi),%xmm5
1336	leal	64(%esi),%esi
1337	xorps	16(%esp),%xmm3
1338	xorps	%xmm7,%xmm4
1339	xorps	%xmm6,%xmm5
1340	call	__aesni_encrypt4
1341	xorps	(%esp),%xmm2
1342	xorps	16(%esp),%xmm3
1343	xorps	%xmm7,%xmm4
1344	movups	%xmm2,(%edi)
1345	xorps	%xmm6,%xmm5
1346	movups	%xmm3,16(%edi)
1347	movups	%xmm4,32(%edi)
1348	movups	%xmm5,48(%edi)
1349	leal	64(%edi),%edi
1350	movdqa	%xmm6,%xmm1
1351	jmp	L056xts_enc_done
1352.align	4,0x90
1353L051xts_enc_done6x:
1354	movl	112(%esp),%eax
1355	andl	$15,%eax
1356	jz	L058xts_enc_ret
1357	movdqa	%xmm1,%xmm5
1358	movl	%eax,112(%esp)
1359	jmp	L059xts_enc_steal
1360.align	4,0x90
1361L056xts_enc_done:
1362	movl	112(%esp),%eax
1363	pxor	%xmm0,%xmm0
1364	andl	$15,%eax
1365	jz	L058xts_enc_ret
1366	pcmpgtd	%xmm1,%xmm0
1367	movl	%eax,112(%esp)
1368	pshufd	$19,%xmm0,%xmm5
1369	paddq	%xmm1,%xmm1
1370	pand	96(%esp),%xmm5
1371	pxor	%xmm1,%xmm5
1372L059xts_enc_steal:
1373	movzbl	(%esi),%ecx
1374	movzbl	-16(%edi),%edx
1375	leal	1(%esi),%esi
1376	movb	%cl,-16(%edi)
1377	movb	%dl,(%edi)
1378	leal	1(%edi),%edi
1379	subl	$1,%eax
1380	jnz	L059xts_enc_steal
1381	subl	112(%esp),%edi
1382	movl	%ebp,%edx
1383	movl	%ebx,%ecx
1384	movups	-16(%edi),%xmm2
1385	xorps	%xmm5,%xmm2
1386	movups	(%edx),%xmm0
1387	movups	16(%edx),%xmm1
1388	leal	32(%edx),%edx
1389	xorps	%xmm0,%xmm2
1390L060enc1_loop_10:
1391.byte	102,15,56,220,209
1392	decl	%ecx
1393	movups	(%edx),%xmm1
1394	leal	16(%edx),%edx
1395	jnz	L060enc1_loop_10
1396.byte	102,15,56,221,209
1397	xorps	%xmm5,%xmm2
1398	movups	%xmm2,-16(%edi)
1399L058xts_enc_ret:
1400	pxor	%xmm0,%xmm0
1401	pxor	%xmm1,%xmm1
1402	pxor	%xmm2,%xmm2
1403	movdqa	%xmm0,(%esp)
1404	pxor	%xmm3,%xmm3
1405	movdqa	%xmm0,16(%esp)
1406	pxor	%xmm4,%xmm4
1407	movdqa	%xmm0,32(%esp)
1408	pxor	%xmm5,%xmm5
1409	movdqa	%xmm0,48(%esp)
1410	pxor	%xmm6,%xmm6
1411	movdqa	%xmm0,64(%esp)
1412	pxor	%xmm7,%xmm7
1413	movdqa	%xmm0,80(%esp)
1414	movl	116(%esp),%esp
1415	popl	%edi
1416	popl	%esi
1417	popl	%ebx
1418	popl	%ebp
1419	ret
1420.globl	_aes_hw_xts_decrypt
1421.private_extern	_aes_hw_xts_decrypt
1422.align	4
1423_aes_hw_xts_decrypt:
1424L_aes_hw_xts_decrypt_begin:
1425	pushl	%ebp
1426	pushl	%ebx
1427	pushl	%esi
1428	pushl	%edi
1429	movl	36(%esp),%edx
1430	movl	40(%esp),%esi
1431	movl	240(%edx),%ecx
1432	movups	(%esi),%xmm2
1433	movups	(%edx),%xmm0
1434	movups	16(%edx),%xmm1
1435	leal	32(%edx),%edx
1436	xorps	%xmm0,%xmm2
1437L061enc1_loop_11:
1438.byte	102,15,56,220,209
1439	decl	%ecx
1440	movups	(%edx),%xmm1
1441	leal	16(%edx),%edx
1442	jnz	L061enc1_loop_11
1443.byte	102,15,56,221,209
1444	movl	20(%esp),%esi
1445	movl	24(%esp),%edi
1446	movl	28(%esp),%eax
1447	movl	32(%esp),%edx
1448	movl	%esp,%ebp
1449	subl	$120,%esp
1450	andl	$-16,%esp
1451	xorl	%ebx,%ebx
1452	testl	$15,%eax
1453	setnz	%bl
1454	shll	$4,%ebx
1455	subl	%ebx,%eax
1456	movl	$135,96(%esp)
1457	movl	$0,100(%esp)
1458	movl	$1,104(%esp)
1459	movl	$0,108(%esp)
1460	movl	%eax,112(%esp)
1461	movl	%ebp,116(%esp)
1462	movl	240(%edx),%ecx
1463	movl	%edx,%ebp
1464	movl	%ecx,%ebx
1465	movdqa	%xmm2,%xmm1
1466	pxor	%xmm0,%xmm0
1467	movdqa	96(%esp),%xmm3
1468	pcmpgtd	%xmm1,%xmm0
1469	andl	$-16,%eax
1470	subl	$96,%eax
1471	jc	L062xts_dec_short
1472	shll	$4,%ecx
1473	movl	$16,%ebx
1474	subl	%ecx,%ebx
1475	leal	32(%edx,%ecx,1),%edx
1476	jmp	L063xts_dec_loop6
1477.align	4,0x90
1478L063xts_dec_loop6:
1479	pshufd	$19,%xmm0,%xmm2
1480	pxor	%xmm0,%xmm0
1481	movdqa	%xmm1,(%esp)
1482	paddq	%xmm1,%xmm1
1483	pand	%xmm3,%xmm2
1484	pcmpgtd	%xmm1,%xmm0
1485	pxor	%xmm2,%xmm1
1486	pshufd	$19,%xmm0,%xmm2
1487	pxor	%xmm0,%xmm0
1488	movdqa	%xmm1,16(%esp)
1489	paddq	%xmm1,%xmm1
1490	pand	%xmm3,%xmm2
1491	pcmpgtd	%xmm1,%xmm0
1492	pxor	%xmm2,%xmm1
1493	pshufd	$19,%xmm0,%xmm2
1494	pxor	%xmm0,%xmm0
1495	movdqa	%xmm1,32(%esp)
1496	paddq	%xmm1,%xmm1
1497	pand	%xmm3,%xmm2
1498	pcmpgtd	%xmm1,%xmm0
1499	pxor	%xmm2,%xmm1
1500	pshufd	$19,%xmm0,%xmm2
1501	pxor	%xmm0,%xmm0
1502	movdqa	%xmm1,48(%esp)
1503	paddq	%xmm1,%xmm1
1504	pand	%xmm3,%xmm2
1505	pcmpgtd	%xmm1,%xmm0
1506	pxor	%xmm2,%xmm1
1507	pshufd	$19,%xmm0,%xmm7
1508	movdqa	%xmm1,64(%esp)
1509	paddq	%xmm1,%xmm1
1510	movups	(%ebp),%xmm0
1511	pand	%xmm3,%xmm7
1512	movups	(%esi),%xmm2
1513	pxor	%xmm1,%xmm7
1514	movl	%ebx,%ecx
1515	movdqu	16(%esi),%xmm3
1516	xorps	%xmm0,%xmm2
1517	movdqu	32(%esi),%xmm4
1518	pxor	%xmm0,%xmm3
1519	movdqu	48(%esi),%xmm5
1520	pxor	%xmm0,%xmm4
1521	movdqu	64(%esi),%xmm6
1522	pxor	%xmm0,%xmm5
1523	movdqu	80(%esi),%xmm1
1524	pxor	%xmm0,%xmm6
1525	leal	96(%esi),%esi
1526	pxor	(%esp),%xmm2
1527	movdqa	%xmm7,80(%esp)
1528	pxor	%xmm1,%xmm7
1529	movups	16(%ebp),%xmm1
1530	pxor	16(%esp),%xmm3
1531	pxor	32(%esp),%xmm4
1532.byte	102,15,56,222,209
1533	pxor	48(%esp),%xmm5
1534	pxor	64(%esp),%xmm6
1535.byte	102,15,56,222,217
1536	pxor	%xmm0,%xmm7
1537	movups	32(%ebp),%xmm0
1538.byte	102,15,56,222,225
1539.byte	102,15,56,222,233
1540.byte	102,15,56,222,241
1541.byte	102,15,56,222,249
1542	call	L_aesni_decrypt6_enter
1543	movdqa	80(%esp),%xmm1
1544	pxor	%xmm0,%xmm0
1545	xorps	(%esp),%xmm2
1546	pcmpgtd	%xmm1,%xmm0
1547	xorps	16(%esp),%xmm3
1548	movups	%xmm2,(%edi)
1549	xorps	32(%esp),%xmm4
1550	movups	%xmm3,16(%edi)
1551	xorps	48(%esp),%xmm5
1552	movups	%xmm4,32(%edi)
1553	xorps	64(%esp),%xmm6
1554	movups	%xmm5,48(%edi)
1555	xorps	%xmm1,%xmm7
1556	movups	%xmm6,64(%edi)
1557	pshufd	$19,%xmm0,%xmm2
1558	movups	%xmm7,80(%edi)
1559	leal	96(%edi),%edi
1560	movdqa	96(%esp),%xmm3
1561	pxor	%xmm0,%xmm0
1562	paddq	%xmm1,%xmm1
1563	pand	%xmm3,%xmm2
1564	pcmpgtd	%xmm1,%xmm0
1565	pxor	%xmm2,%xmm1
1566	subl	$96,%eax
1567	jnc	L063xts_dec_loop6
1568	movl	240(%ebp),%ecx
1569	movl	%ebp,%edx
1570	movl	%ecx,%ebx
1571L062xts_dec_short:
1572	addl	$96,%eax
1573	jz	L064xts_dec_done6x
1574	movdqa	%xmm1,%xmm5
1575	cmpl	$32,%eax
1576	jb	L065xts_dec_one
1577	pshufd	$19,%xmm0,%xmm2
1578	pxor	%xmm0,%xmm0
1579	paddq	%xmm1,%xmm1
1580	pand	%xmm3,%xmm2
1581	pcmpgtd	%xmm1,%xmm0
1582	pxor	%xmm2,%xmm1
1583	je	L066xts_dec_two
1584	pshufd	$19,%xmm0,%xmm2
1585	pxor	%xmm0,%xmm0
1586	movdqa	%xmm1,%xmm6
1587	paddq	%xmm1,%xmm1
1588	pand	%xmm3,%xmm2
1589	pcmpgtd	%xmm1,%xmm0
1590	pxor	%xmm2,%xmm1
1591	cmpl	$64,%eax
1592	jb	L067xts_dec_three
1593	pshufd	$19,%xmm0,%xmm2
1594	pxor	%xmm0,%xmm0
1595	movdqa	%xmm1,%xmm7
1596	paddq	%xmm1,%xmm1
1597	pand	%xmm3,%xmm2
1598	pcmpgtd	%xmm1,%xmm0
1599	pxor	%xmm2,%xmm1
1600	movdqa	%xmm5,(%esp)
1601	movdqa	%xmm6,16(%esp)
1602	je	L068xts_dec_four
1603	movdqa	%xmm7,32(%esp)
1604	pshufd	$19,%xmm0,%xmm7
1605	movdqa	%xmm1,48(%esp)
1606	paddq	%xmm1,%xmm1
1607	pand	%xmm3,%xmm7
1608	pxor	%xmm1,%xmm7
1609	movdqu	(%esi),%xmm2
1610	movdqu	16(%esi),%xmm3
1611	movdqu	32(%esi),%xmm4
1612	pxor	(%esp),%xmm2
1613	movdqu	48(%esi),%xmm5
1614	pxor	16(%esp),%xmm3
1615	movdqu	64(%esi),%xmm6
1616	pxor	32(%esp),%xmm4
1617	leal	80(%esi),%esi
1618	pxor	48(%esp),%xmm5
1619	movdqa	%xmm7,64(%esp)
1620	pxor	%xmm7,%xmm6
1621	call	__aesni_decrypt6
1622	movaps	64(%esp),%xmm1
1623	xorps	(%esp),%xmm2
1624	xorps	16(%esp),%xmm3
1625	xorps	32(%esp),%xmm4
1626	movups	%xmm2,(%edi)
1627	xorps	48(%esp),%xmm5
1628	movups	%xmm3,16(%edi)
1629	xorps	%xmm1,%xmm6
1630	movups	%xmm4,32(%edi)
1631	movups	%xmm5,48(%edi)
1632	movups	%xmm6,64(%edi)
1633	leal	80(%edi),%edi
1634	jmp	L069xts_dec_done
1635.align	4,0x90
1636L065xts_dec_one:
1637	movups	(%esi),%xmm2
1638	leal	16(%esi),%esi
1639	xorps	%xmm5,%xmm2
1640	movups	(%edx),%xmm0
1641	movups	16(%edx),%xmm1
1642	leal	32(%edx),%edx
1643	xorps	%xmm0,%xmm2
1644L070dec1_loop_12:
1645.byte	102,15,56,222,209
1646	decl	%ecx
1647	movups	(%edx),%xmm1
1648	leal	16(%edx),%edx
1649	jnz	L070dec1_loop_12
1650.byte	102,15,56,223,209
1651	xorps	%xmm5,%xmm2
1652	movups	%xmm2,(%edi)
1653	leal	16(%edi),%edi
1654	movdqa	%xmm5,%xmm1
1655	jmp	L069xts_dec_done
1656.align	4,0x90
1657L066xts_dec_two:
1658	movaps	%xmm1,%xmm6
1659	movups	(%esi),%xmm2
1660	movups	16(%esi),%xmm3
1661	leal	32(%esi),%esi
1662	xorps	%xmm5,%xmm2
1663	xorps	%xmm6,%xmm3
1664	call	__aesni_decrypt2
1665	xorps	%xmm5,%xmm2
1666	xorps	%xmm6,%xmm3
1667	movups	%xmm2,(%edi)
1668	movups	%xmm3,16(%edi)
1669	leal	32(%edi),%edi
1670	movdqa	%xmm6,%xmm1
1671	jmp	L069xts_dec_done
1672.align	4,0x90
1673L067xts_dec_three:
1674	movaps	%xmm1,%xmm7
1675	movups	(%esi),%xmm2
1676	movups	16(%esi),%xmm3
1677	movups	32(%esi),%xmm4
1678	leal	48(%esi),%esi
1679	xorps	%xmm5,%xmm2
1680	xorps	%xmm6,%xmm3
1681	xorps	%xmm7,%xmm4
1682	call	__aesni_decrypt3
1683	xorps	%xmm5,%xmm2
1684	xorps	%xmm6,%xmm3
1685	xorps	%xmm7,%xmm4
1686	movups	%xmm2,(%edi)
1687	movups	%xmm3,16(%edi)
1688	movups	%xmm4,32(%edi)
1689	leal	48(%edi),%edi
1690	movdqa	%xmm7,%xmm1
1691	jmp	L069xts_dec_done
1692.align	4,0x90
1693L068xts_dec_four:
1694	movaps	%xmm1,%xmm6
1695	movups	(%esi),%xmm2
1696	movups	16(%esi),%xmm3
1697	movups	32(%esi),%xmm4
1698	xorps	(%esp),%xmm2
1699	movups	48(%esi),%xmm5
1700	leal	64(%esi),%esi
1701	xorps	16(%esp),%xmm3
1702	xorps	%xmm7,%xmm4
1703	xorps	%xmm6,%xmm5
1704	call	__aesni_decrypt4
1705	xorps	(%esp),%xmm2
1706	xorps	16(%esp),%xmm3
1707	xorps	%xmm7,%xmm4
1708	movups	%xmm2,(%edi)
1709	xorps	%xmm6,%xmm5
1710	movups	%xmm3,16(%edi)
1711	movups	%xmm4,32(%edi)
1712	movups	%xmm5,48(%edi)
1713	leal	64(%edi),%edi
1714	movdqa	%xmm6,%xmm1
1715	jmp	L069xts_dec_done
1716.align	4,0x90
1717L064xts_dec_done6x:
1718	movl	112(%esp),%eax
1719	andl	$15,%eax
1720	jz	L071xts_dec_ret
1721	movl	%eax,112(%esp)
1722	jmp	L072xts_dec_only_one_more
1723.align	4,0x90
1724L069xts_dec_done:
1725	movl	112(%esp),%eax
1726	pxor	%xmm0,%xmm0
1727	andl	$15,%eax
1728	jz	L071xts_dec_ret
1729	pcmpgtd	%xmm1,%xmm0
1730	movl	%eax,112(%esp)
1731	pshufd	$19,%xmm0,%xmm2
1732	pxor	%xmm0,%xmm0
1733	movdqa	96(%esp),%xmm3
1734	paddq	%xmm1,%xmm1
1735	pand	%xmm3,%xmm2
1736	pcmpgtd	%xmm1,%xmm0
1737	pxor	%xmm2,%xmm1
1738L072xts_dec_only_one_more:
1739	pshufd	$19,%xmm0,%xmm5
1740	movdqa	%xmm1,%xmm6
1741	paddq	%xmm1,%xmm1
1742	pand	%xmm3,%xmm5
1743	pxor	%xmm1,%xmm5
1744	movl	%ebp,%edx
1745	movl	%ebx,%ecx
1746	movups	(%esi),%xmm2
1747	xorps	%xmm5,%xmm2
1748	movups	(%edx),%xmm0
1749	movups	16(%edx),%xmm1
1750	leal	32(%edx),%edx
1751	xorps	%xmm0,%xmm2
1752L073dec1_loop_13:
1753.byte	102,15,56,222,209
1754	decl	%ecx
1755	movups	(%edx),%xmm1
1756	leal	16(%edx),%edx
1757	jnz	L073dec1_loop_13
1758.byte	102,15,56,223,209
1759	xorps	%xmm5,%xmm2
1760	movups	%xmm2,(%edi)
1761L074xts_dec_steal:
1762	movzbl	16(%esi),%ecx
1763	movzbl	(%edi),%edx
1764	leal	1(%esi),%esi
1765	movb	%cl,(%edi)
1766	movb	%dl,16(%edi)
1767	leal	1(%edi),%edi
1768	subl	$1,%eax
1769	jnz	L074xts_dec_steal
1770	subl	112(%esp),%edi
1771	movl	%ebp,%edx
1772	movl	%ebx,%ecx
1773	movups	(%edi),%xmm2
1774	xorps	%xmm6,%xmm2
1775	movups	(%edx),%xmm0
1776	movups	16(%edx),%xmm1
1777	leal	32(%edx),%edx
1778	xorps	%xmm0,%xmm2
1779L075dec1_loop_14:
1780.byte	102,15,56,222,209
1781	decl	%ecx
1782	movups	(%edx),%xmm1
1783	leal	16(%edx),%edx
1784	jnz	L075dec1_loop_14
1785.byte	102,15,56,223,209
1786	xorps	%xmm6,%xmm2
1787	movups	%xmm2,(%edi)
1788L071xts_dec_ret:
1789	pxor	%xmm0,%xmm0
1790	pxor	%xmm1,%xmm1
1791	pxor	%xmm2,%xmm2
1792	movdqa	%xmm0,(%esp)
1793	pxor	%xmm3,%xmm3
1794	movdqa	%xmm0,16(%esp)
1795	pxor	%xmm4,%xmm4
1796	movdqa	%xmm0,32(%esp)
1797	pxor	%xmm5,%xmm5
1798	movdqa	%xmm0,48(%esp)
1799	pxor	%xmm6,%xmm6
1800	movdqa	%xmm0,64(%esp)
1801	pxor	%xmm7,%xmm7
1802	movdqa	%xmm0,80(%esp)
1803	movl	116(%esp),%esp
1804	popl	%edi
1805	popl	%esi
1806	popl	%ebx
1807	popl	%ebp
1808	ret
1809.globl	_aes_hw_cbc_encrypt
1810.private_extern	_aes_hw_cbc_encrypt
1811.align	4
1812_aes_hw_cbc_encrypt:
1813L_aes_hw_cbc_encrypt_begin:
1814	pushl	%ebp
1815	pushl	%ebx
1816	pushl	%esi
1817	pushl	%edi
1818	movl	20(%esp),%esi
1819	movl	%esp,%ebx
1820	movl	24(%esp),%edi
1821	subl	$24,%ebx
1822	movl	28(%esp),%eax
1823	andl	$-16,%ebx
1824	movl	32(%esp),%edx
1825	movl	36(%esp),%ebp
1826	testl	%eax,%eax
1827	jz	L076cbc_abort
1828	cmpl	$0,40(%esp)
1829	xchgl	%esp,%ebx
1830	movups	(%ebp),%xmm7
1831	movl	240(%edx),%ecx
1832	movl	%edx,%ebp
1833	movl	%ebx,16(%esp)
1834	movl	%ecx,%ebx
1835	je	L077cbc_decrypt
1836	movaps	%xmm7,%xmm2
1837	cmpl	$16,%eax
1838	jb	L078cbc_enc_tail
1839	subl	$16,%eax
1840	jmp	L079cbc_enc_loop
1841.align	4,0x90
1842L079cbc_enc_loop:
1843	movups	(%esi),%xmm7
1844	leal	16(%esi),%esi
1845	movups	(%edx),%xmm0
1846	movups	16(%edx),%xmm1
1847	xorps	%xmm0,%xmm7
1848	leal	32(%edx),%edx
1849	xorps	%xmm7,%xmm2
1850L080enc1_loop_15:
1851.byte	102,15,56,220,209
1852	decl	%ecx
1853	movups	(%edx),%xmm1
1854	leal	16(%edx),%edx
1855	jnz	L080enc1_loop_15
1856.byte	102,15,56,221,209
1857	movl	%ebx,%ecx
1858	movl	%ebp,%edx
1859	movups	%xmm2,(%edi)
1860	leal	16(%edi),%edi
1861	subl	$16,%eax
1862	jnc	L079cbc_enc_loop
1863	addl	$16,%eax
1864	jnz	L078cbc_enc_tail
1865	movaps	%xmm2,%xmm7
1866	pxor	%xmm2,%xmm2
1867	jmp	L081cbc_ret
1868L078cbc_enc_tail:
1869	movl	%eax,%ecx
1870.long	2767451785
1871	movl	$16,%ecx
1872	subl	%eax,%ecx
1873	xorl	%eax,%eax
1874.long	2868115081
1875	leal	-16(%edi),%edi
1876	movl	%ebx,%ecx
1877	movl	%edi,%esi
1878	movl	%ebp,%edx
1879	jmp	L079cbc_enc_loop
1880.align	4,0x90
1881L077cbc_decrypt:
1882	cmpl	$80,%eax
1883	jbe	L082cbc_dec_tail
1884	movaps	%xmm7,(%esp)
1885	subl	$80,%eax
1886	jmp	L083cbc_dec_loop6_enter
1887.align	4,0x90
1888L084cbc_dec_loop6:
1889	movaps	%xmm0,(%esp)
1890	movups	%xmm7,(%edi)
1891	leal	16(%edi),%edi
1892L083cbc_dec_loop6_enter:
1893	movdqu	(%esi),%xmm2
1894	movdqu	16(%esi),%xmm3
1895	movdqu	32(%esi),%xmm4
1896	movdqu	48(%esi),%xmm5
1897	movdqu	64(%esi),%xmm6
1898	movdqu	80(%esi),%xmm7
1899	call	__aesni_decrypt6
1900	movups	(%esi),%xmm1
1901	movups	16(%esi),%xmm0
1902	xorps	(%esp),%xmm2
1903	xorps	%xmm1,%xmm3
1904	movups	32(%esi),%xmm1
1905	xorps	%xmm0,%xmm4
1906	movups	48(%esi),%xmm0
1907	xorps	%xmm1,%xmm5
1908	movups	64(%esi),%xmm1
1909	xorps	%xmm0,%xmm6
1910	movups	80(%esi),%xmm0
1911	xorps	%xmm1,%xmm7
1912	movups	%xmm2,(%edi)
1913	movups	%xmm3,16(%edi)
1914	leal	96(%esi),%esi
1915	movups	%xmm4,32(%edi)
1916	movl	%ebx,%ecx
1917	movups	%xmm5,48(%edi)
1918	movl	%ebp,%edx
1919	movups	%xmm6,64(%edi)
1920	leal	80(%edi),%edi
1921	subl	$96,%eax
1922	ja	L084cbc_dec_loop6
1923	movaps	%xmm7,%xmm2
1924	movaps	%xmm0,%xmm7
1925	addl	$80,%eax
1926	jle	L085cbc_dec_clear_tail_collected
1927	movups	%xmm2,(%edi)
1928	leal	16(%edi),%edi
1929L082cbc_dec_tail:
1930	movups	(%esi),%xmm2
1931	movaps	%xmm2,%xmm6
1932	cmpl	$16,%eax
1933	jbe	L086cbc_dec_one
1934	movups	16(%esi),%xmm3
1935	movaps	%xmm3,%xmm5
1936	cmpl	$32,%eax
1937	jbe	L087cbc_dec_two
1938	movups	32(%esi),%xmm4
1939	cmpl	$48,%eax
1940	jbe	L088cbc_dec_three
1941	movups	48(%esi),%xmm5
1942	cmpl	$64,%eax
1943	jbe	L089cbc_dec_four
1944	movups	64(%esi),%xmm6
1945	movaps	%xmm7,(%esp)
1946	movups	(%esi),%xmm2
1947	xorps	%xmm7,%xmm7
1948	call	__aesni_decrypt6
1949	movups	(%esi),%xmm1
1950	movups	16(%esi),%xmm0
1951	xorps	(%esp),%xmm2
1952	xorps	%xmm1,%xmm3
1953	movups	32(%esi),%xmm1
1954	xorps	%xmm0,%xmm4
1955	movups	48(%esi),%xmm0
1956	xorps	%xmm1,%xmm5
1957	movups	64(%esi),%xmm7
1958	xorps	%xmm0,%xmm6
1959	movups	%xmm2,(%edi)
1960	movups	%xmm3,16(%edi)
1961	pxor	%xmm3,%xmm3
1962	movups	%xmm4,32(%edi)
1963	pxor	%xmm4,%xmm4
1964	movups	%xmm5,48(%edi)
1965	pxor	%xmm5,%xmm5
1966	leal	64(%edi),%edi
1967	movaps	%xmm6,%xmm2
1968	pxor	%xmm6,%xmm6
1969	subl	$80,%eax
1970	jmp	L090cbc_dec_tail_collected
1971.align	4,0x90
1972L086cbc_dec_one:
1973	movups	(%edx),%xmm0
1974	movups	16(%edx),%xmm1
1975	leal	32(%edx),%edx
1976	xorps	%xmm0,%xmm2
1977L091dec1_loop_16:
1978.byte	102,15,56,222,209
1979	decl	%ecx
1980	movups	(%edx),%xmm1
1981	leal	16(%edx),%edx
1982	jnz	L091dec1_loop_16
1983.byte	102,15,56,223,209
1984	xorps	%xmm7,%xmm2
1985	movaps	%xmm6,%xmm7
1986	subl	$16,%eax
1987	jmp	L090cbc_dec_tail_collected
1988.align	4,0x90
1989L087cbc_dec_two:
1990	call	__aesni_decrypt2
1991	xorps	%xmm7,%xmm2
1992	xorps	%xmm6,%xmm3
1993	movups	%xmm2,(%edi)
1994	movaps	%xmm3,%xmm2
1995	pxor	%xmm3,%xmm3
1996	leal	16(%edi),%edi
1997	movaps	%xmm5,%xmm7
1998	subl	$32,%eax
1999	jmp	L090cbc_dec_tail_collected
2000.align	4,0x90
2001L088cbc_dec_three:
2002	call	__aesni_decrypt3
2003	xorps	%xmm7,%xmm2
2004	xorps	%xmm6,%xmm3
2005	xorps	%xmm5,%xmm4
2006	movups	%xmm2,(%edi)
2007	movaps	%xmm4,%xmm2
2008	pxor	%xmm4,%xmm4
2009	movups	%xmm3,16(%edi)
2010	pxor	%xmm3,%xmm3
2011	leal	32(%edi),%edi
2012	movups	32(%esi),%xmm7
2013	subl	$48,%eax
2014	jmp	L090cbc_dec_tail_collected
2015.align	4,0x90
2016L089cbc_dec_four:
2017	call	__aesni_decrypt4
2018	movups	16(%esi),%xmm1
2019	movups	32(%esi),%xmm0
2020	xorps	%xmm7,%xmm2
2021	movups	48(%esi),%xmm7
2022	xorps	%xmm6,%xmm3
2023	movups	%xmm2,(%edi)
2024	xorps	%xmm1,%xmm4
2025	movups	%xmm3,16(%edi)
2026	pxor	%xmm3,%xmm3
2027	xorps	%xmm0,%xmm5
2028	movups	%xmm4,32(%edi)
2029	pxor	%xmm4,%xmm4
2030	leal	48(%edi),%edi
2031	movaps	%xmm5,%xmm2
2032	pxor	%xmm5,%xmm5
2033	subl	$64,%eax
2034	jmp	L090cbc_dec_tail_collected
2035.align	4,0x90
2036L085cbc_dec_clear_tail_collected:
2037	pxor	%xmm3,%xmm3
2038	pxor	%xmm4,%xmm4
2039	pxor	%xmm5,%xmm5
2040	pxor	%xmm6,%xmm6
2041L090cbc_dec_tail_collected:
2042	andl	$15,%eax
2043	jnz	L092cbc_dec_tail_partial
2044	movups	%xmm2,(%edi)
2045	pxor	%xmm0,%xmm0
2046	jmp	L081cbc_ret
2047.align	4,0x90
2048L092cbc_dec_tail_partial:
2049	movaps	%xmm2,(%esp)
2050	pxor	%xmm0,%xmm0
2051	movl	$16,%ecx
2052	movl	%esp,%esi
2053	subl	%eax,%ecx
2054.long	2767451785
2055	movdqa	%xmm2,(%esp)
2056L081cbc_ret:
2057	movl	16(%esp),%esp
2058	movl	36(%esp),%ebp
2059	pxor	%xmm2,%xmm2
2060	pxor	%xmm1,%xmm1
2061	movups	%xmm7,(%ebp)
2062	pxor	%xmm7,%xmm7
2063L076cbc_abort:
2064	popl	%edi
2065	popl	%esi
2066	popl	%ebx
2067	popl	%ebp
2068	ret
2069.private_extern	__aesni_set_encrypt_key
2070.align	4
2071__aesni_set_encrypt_key:
2072	pushl	%ebp
2073	pushl	%ebx
2074	testl	%eax,%eax
2075	jz	L093bad_pointer
2076	testl	%edx,%edx
2077	jz	L093bad_pointer
2078	call	L094pic
2079L094pic:
2080	popl	%ebx
2081	leal	Lkey_const-L094pic(%ebx),%ebx
2082	movl	L_OPENSSL_ia32cap_P$non_lazy_ptr-Lkey_const(%ebx),%ebp
2083	movups	(%eax),%xmm0
2084	xorps	%xmm4,%xmm4
2085	movl	4(%ebp),%ebp
2086	leal	16(%edx),%edx
2087	andl	$268437504,%ebp
2088	cmpl	$256,%ecx
2089	je	L09514rounds
2090	cmpl	$192,%ecx
2091	je	L09612rounds
2092	cmpl	$128,%ecx
2093	jne	L097bad_keybits
2094.align	4,0x90
2095L09810rounds:
2096	cmpl	$268435456,%ebp
2097	je	L09910rounds_alt
2098	movl	$9,%ecx
2099	movups	%xmm0,-16(%edx)
2100.byte	102,15,58,223,200,1
2101	call	L100key_128_cold
2102.byte	102,15,58,223,200,2
2103	call	L101key_128
2104.byte	102,15,58,223,200,4
2105	call	L101key_128
2106.byte	102,15,58,223,200,8
2107	call	L101key_128
2108.byte	102,15,58,223,200,16
2109	call	L101key_128
2110.byte	102,15,58,223,200,32
2111	call	L101key_128
2112.byte	102,15,58,223,200,64
2113	call	L101key_128
2114.byte	102,15,58,223,200,128
2115	call	L101key_128
2116.byte	102,15,58,223,200,27
2117	call	L101key_128
2118.byte	102,15,58,223,200,54
2119	call	L101key_128
2120	movups	%xmm0,(%edx)
2121	movl	%ecx,80(%edx)
2122	jmp	L102good_key
2123.align	4,0x90
2124L101key_128:
2125	movups	%xmm0,(%edx)
2126	leal	16(%edx),%edx
2127L100key_128_cold:
2128	shufps	$16,%xmm0,%xmm4
2129	xorps	%xmm4,%xmm0
2130	shufps	$140,%xmm0,%xmm4
2131	xorps	%xmm4,%xmm0
2132	shufps	$255,%xmm1,%xmm1
2133	xorps	%xmm1,%xmm0
2134	ret
2135.align	4,0x90
2136L09910rounds_alt:
2137	movdqa	(%ebx),%xmm5
2138	movl	$8,%ecx
2139	movdqa	32(%ebx),%xmm4
2140	movdqa	%xmm0,%xmm2
2141	movdqu	%xmm0,-16(%edx)
2142L103loop_key128:
2143.byte	102,15,56,0,197
2144.byte	102,15,56,221,196
2145	pslld	$1,%xmm4
2146	leal	16(%edx),%edx
2147	movdqa	%xmm2,%xmm3
2148	pslldq	$4,%xmm2
2149	pxor	%xmm2,%xmm3
2150	pslldq	$4,%xmm2
2151	pxor	%xmm2,%xmm3
2152	pslldq	$4,%xmm2
2153	pxor	%xmm3,%xmm2
2154	pxor	%xmm2,%xmm0
2155	movdqu	%xmm0,-16(%edx)
2156	movdqa	%xmm0,%xmm2
2157	decl	%ecx
2158	jnz	L103loop_key128
2159	movdqa	48(%ebx),%xmm4
2160.byte	102,15,56,0,197
2161.byte	102,15,56,221,196
2162	pslld	$1,%xmm4
2163	movdqa	%xmm2,%xmm3
2164	pslldq	$4,%xmm2
2165	pxor	%xmm2,%xmm3
2166	pslldq	$4,%xmm2
2167	pxor	%xmm2,%xmm3
2168	pslldq	$4,%xmm2
2169	pxor	%xmm3,%xmm2
2170	pxor	%xmm2,%xmm0
2171	movdqu	%xmm0,(%edx)
2172	movdqa	%xmm0,%xmm2
2173.byte	102,15,56,0,197
2174.byte	102,15,56,221,196
2175	movdqa	%xmm2,%xmm3
2176	pslldq	$4,%xmm2
2177	pxor	%xmm2,%xmm3
2178	pslldq	$4,%xmm2
2179	pxor	%xmm2,%xmm3
2180	pslldq	$4,%xmm2
2181	pxor	%xmm3,%xmm2
2182	pxor	%xmm2,%xmm0
2183	movdqu	%xmm0,16(%edx)
2184	movl	$9,%ecx
2185	movl	%ecx,96(%edx)
2186	jmp	L102good_key
2187.align	4,0x90
2188L09612rounds:
2189	movq	16(%eax),%xmm2
2190	cmpl	$268435456,%ebp
2191	je	L10412rounds_alt
2192	movl	$11,%ecx
2193	movups	%xmm0,-16(%edx)
2194.byte	102,15,58,223,202,1
2195	call	L105key_192a_cold
2196.byte	102,15,58,223,202,2
2197	call	L106key_192b
2198.byte	102,15,58,223,202,4
2199	call	L107key_192a
2200.byte	102,15,58,223,202,8
2201	call	L106key_192b
2202.byte	102,15,58,223,202,16
2203	call	L107key_192a
2204.byte	102,15,58,223,202,32
2205	call	L106key_192b
2206.byte	102,15,58,223,202,64
2207	call	L107key_192a
2208.byte	102,15,58,223,202,128
2209	call	L106key_192b
2210	movups	%xmm0,(%edx)
2211	movl	%ecx,48(%edx)
2212	jmp	L102good_key
2213.align	4,0x90
2214L107key_192a:
2215	movups	%xmm0,(%edx)
2216	leal	16(%edx),%edx
2217.align	4,0x90
2218L105key_192a_cold:
2219	movaps	%xmm2,%xmm5
2220L108key_192b_warm:
2221	shufps	$16,%xmm0,%xmm4
2222	movdqa	%xmm2,%xmm3
2223	xorps	%xmm4,%xmm0
2224	shufps	$140,%xmm0,%xmm4
2225	pslldq	$4,%xmm3
2226	xorps	%xmm4,%xmm0
2227	pshufd	$85,%xmm1,%xmm1
2228	pxor	%xmm3,%xmm2
2229	pxor	%xmm1,%xmm0
2230	pshufd	$255,%xmm0,%xmm3
2231	pxor	%xmm3,%xmm2
2232	ret
2233.align	4,0x90
2234L106key_192b:
2235	movaps	%xmm0,%xmm3
2236	shufps	$68,%xmm0,%xmm5
2237	movups	%xmm5,(%edx)
2238	shufps	$78,%xmm2,%xmm3
2239	movups	%xmm3,16(%edx)
2240	leal	32(%edx),%edx
2241	jmp	L108key_192b_warm
2242.align	4,0x90
2243L10412rounds_alt:
2244	movdqa	16(%ebx),%xmm5
2245	movdqa	32(%ebx),%xmm4
2246	movl	$8,%ecx
2247	movdqu	%xmm0,-16(%edx)
2248L109loop_key192:
2249	movq	%xmm2,(%edx)
2250	movdqa	%xmm2,%xmm1
2251.byte	102,15,56,0,213
2252.byte	102,15,56,221,212
2253	pslld	$1,%xmm4
2254	leal	24(%edx),%edx
2255	movdqa	%xmm0,%xmm3
2256	pslldq	$4,%xmm0
2257	pxor	%xmm0,%xmm3
2258	pslldq	$4,%xmm0
2259	pxor	%xmm0,%xmm3
2260	pslldq	$4,%xmm0
2261	pxor	%xmm3,%xmm0
2262	pshufd	$255,%xmm0,%xmm3
2263	pxor	%xmm1,%xmm3
2264	pslldq	$4,%xmm1
2265	pxor	%xmm1,%xmm3
2266	pxor	%xmm2,%xmm0
2267	pxor	%xmm3,%xmm2
2268	movdqu	%xmm0,-16(%edx)
2269	decl	%ecx
2270	jnz	L109loop_key192
2271	movl	$11,%ecx
2272	movl	%ecx,32(%edx)
2273	jmp	L102good_key
2274.align	4,0x90
2275L09514rounds:
2276	movups	16(%eax),%xmm2
2277	leal	16(%edx),%edx
2278	cmpl	$268435456,%ebp
2279	je	L11014rounds_alt
2280	movl	$13,%ecx
2281	movups	%xmm0,-32(%edx)
2282	movups	%xmm2,-16(%edx)
2283.byte	102,15,58,223,202,1
2284	call	L111key_256a_cold
2285.byte	102,15,58,223,200,1
2286	call	L112key_256b
2287.byte	102,15,58,223,202,2
2288	call	L113key_256a
2289.byte	102,15,58,223,200,2
2290	call	L112key_256b
2291.byte	102,15,58,223,202,4
2292	call	L113key_256a
2293.byte	102,15,58,223,200,4
2294	call	L112key_256b
2295.byte	102,15,58,223,202,8
2296	call	L113key_256a
2297.byte	102,15,58,223,200,8
2298	call	L112key_256b
2299.byte	102,15,58,223,202,16
2300	call	L113key_256a
2301.byte	102,15,58,223,200,16
2302	call	L112key_256b
2303.byte	102,15,58,223,202,32
2304	call	L113key_256a
2305.byte	102,15,58,223,200,32
2306	call	L112key_256b
2307.byte	102,15,58,223,202,64
2308	call	L113key_256a
2309	movups	%xmm0,(%edx)
2310	movl	%ecx,16(%edx)
2311	xorl	%eax,%eax
2312	jmp	L102good_key
2313.align	4,0x90
2314L113key_256a:
2315	movups	%xmm2,(%edx)
2316	leal	16(%edx),%edx
2317L111key_256a_cold:
2318	shufps	$16,%xmm0,%xmm4
2319	xorps	%xmm4,%xmm0
2320	shufps	$140,%xmm0,%xmm4
2321	xorps	%xmm4,%xmm0
2322	shufps	$255,%xmm1,%xmm1
2323	xorps	%xmm1,%xmm0
2324	ret
2325.align	4,0x90
2326L112key_256b:
2327	movups	%xmm0,(%edx)
2328	leal	16(%edx),%edx
2329	shufps	$16,%xmm2,%xmm4
2330	xorps	%xmm4,%xmm2
2331	shufps	$140,%xmm2,%xmm4
2332	xorps	%xmm4,%xmm2
2333	shufps	$170,%xmm1,%xmm1
2334	xorps	%xmm1,%xmm2
2335	ret
2336.align	4,0x90
2337L11014rounds_alt:
2338	movdqa	(%ebx),%xmm5
2339	movdqa	32(%ebx),%xmm4
2340	movl	$7,%ecx
2341	movdqu	%xmm0,-32(%edx)
2342	movdqa	%xmm2,%xmm1
2343	movdqu	%xmm2,-16(%edx)
2344L114loop_key256:
2345.byte	102,15,56,0,213
2346.byte	102,15,56,221,212
2347	movdqa	%xmm0,%xmm3
2348	pslldq	$4,%xmm0
2349	pxor	%xmm0,%xmm3
2350	pslldq	$4,%xmm0
2351	pxor	%xmm0,%xmm3
2352	pslldq	$4,%xmm0
2353	pxor	%xmm3,%xmm0
2354	pslld	$1,%xmm4
2355	pxor	%xmm2,%xmm0
2356	movdqu	%xmm0,(%edx)
2357	decl	%ecx
2358	jz	L115done_key256
2359	pshufd	$255,%xmm0,%xmm2
2360	pxor	%xmm3,%xmm3
2361.byte	102,15,56,221,211
2362	movdqa	%xmm1,%xmm3
2363	pslldq	$4,%xmm1
2364	pxor	%xmm1,%xmm3
2365	pslldq	$4,%xmm1
2366	pxor	%xmm1,%xmm3
2367	pslldq	$4,%xmm1
2368	pxor	%xmm3,%xmm1
2369	pxor	%xmm1,%xmm2
2370	movdqu	%xmm2,16(%edx)
2371	leal	32(%edx),%edx
2372	movdqa	%xmm2,%xmm1
2373	jmp	L114loop_key256
2374L115done_key256:
2375	movl	$13,%ecx
2376	movl	%ecx,16(%edx)
2377L102good_key:
2378	pxor	%xmm0,%xmm0
2379	pxor	%xmm1,%xmm1
2380	pxor	%xmm2,%xmm2
2381	pxor	%xmm3,%xmm3
2382	pxor	%xmm4,%xmm4
2383	pxor	%xmm5,%xmm5
2384	xorl	%eax,%eax
2385	popl	%ebx
2386	popl	%ebp
2387	ret
2388.align	2,0x90
2389L093bad_pointer:
2390	movl	$-1,%eax
2391	popl	%ebx
2392	popl	%ebp
2393	ret
2394.align	2,0x90
2395L097bad_keybits:
2396	pxor	%xmm0,%xmm0
2397	movl	$-2,%eax
2398	popl	%ebx
2399	popl	%ebp
2400	ret
2401.globl	_aes_hw_set_encrypt_key
2402.private_extern	_aes_hw_set_encrypt_key
2403.align	4
2404_aes_hw_set_encrypt_key:
2405L_aes_hw_set_encrypt_key_begin:
2406#ifndef NDEBUG
2407	pushl	%ebx
2408	pushl	%edx
2409	call	L116pic
2410L116pic:
2411	popl	%ebx
2412	leal	_BORINGSSL_function_hit+3-L116pic(%ebx),%ebx
2413	movl	$1,%edx
2414	movb	%dl,(%ebx)
2415	popl	%edx
2416	popl	%ebx
2417#endif
2418	movl	4(%esp),%eax
2419	movl	8(%esp),%ecx
2420	movl	12(%esp),%edx
2421	call	__aesni_set_encrypt_key
2422	ret
2423.globl	_aes_hw_set_decrypt_key
2424.private_extern	_aes_hw_set_decrypt_key
2425.align	4
2426_aes_hw_set_decrypt_key:
2427L_aes_hw_set_decrypt_key_begin:
2428	movl	4(%esp),%eax
2429	movl	8(%esp),%ecx
2430	movl	12(%esp),%edx
2431	call	__aesni_set_encrypt_key
2432	movl	12(%esp),%edx
2433	shll	$4,%ecx
2434	testl	%eax,%eax
2435	jnz	L117dec_key_ret
2436	leal	16(%edx,%ecx,1),%eax
2437	movups	(%edx),%xmm0
2438	movups	(%eax),%xmm1
2439	movups	%xmm0,(%eax)
2440	movups	%xmm1,(%edx)
2441	leal	16(%edx),%edx
2442	leal	-16(%eax),%eax
2443L118dec_key_inverse:
2444	movups	(%edx),%xmm0
2445	movups	(%eax),%xmm1
2446.byte	102,15,56,219,192
2447.byte	102,15,56,219,201
2448	leal	16(%edx),%edx
2449	leal	-16(%eax),%eax
2450	movups	%xmm0,16(%eax)
2451	movups	%xmm1,-16(%edx)
2452	cmpl	%edx,%eax
2453	ja	L118dec_key_inverse
2454	movups	(%edx),%xmm0
2455.byte	102,15,56,219,192
2456	movups	%xmm0,(%edx)
2457	pxor	%xmm0,%xmm0
2458	pxor	%xmm1,%xmm1
2459	xorl	%eax,%eax
2460L117dec_key_ret:
2461	ret
2462.align	6,0x90
2463Lkey_const:
2464.long	202313229,202313229,202313229,202313229
2465.long	67569157,67569157,67569157,67569157
2466.long	1,1,1,1
2467.long	27,27,27,27
2468.byte	65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69
2469.byte	83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83
2470.byte	32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2471.byte	115,108,46,111,114,103,62,0
2472.section __IMPORT,__pointers,non_lazy_symbol_pointers
2473L_OPENSSL_ia32cap_P$non_lazy_ptr:
2474.indirect_symbol	_OPENSSL_ia32cap_P
2475.long	0
2476#endif
2477