1#if defined(lint) || defined(__lint)
2#include <sys/stdint.h>
3#include <sys/sha1.h>
4
5/* ARGSUSED */
6void
7sha1_block_data_order(SHA1_CTX *ctx, const void *inpp, size_t blocks)
8{
9}
10
11#else
12#include <sys/asm_linkage.h>
13ENTRY_NP(sha1_block_data_order)
14	push	%rbx
15	push	%rbp
16	push	%r12
17	mov	%rsp,%rax
18	mov	%rdi,%r8	# reassigned argument
19	sub	$72,%rsp
20	mov	%rsi,%r9	# reassigned argument
21	and	$-64,%rsp
22	mov	%rdx,%r10	# reassigned argument
23	mov	%rax,64(%rsp)
24
25	mov	0(%r8),%edx
26	mov	4(%r8),%esi
27	mov	8(%r8),%edi
28	mov	12(%r8),%ebp
29	mov	16(%r8),%r11d
30.align	4
31.Lloop:
32	mov	0(%r9),%eax
33	bswap	%eax
34	mov	%eax,0(%rsp)
35	lea	0x5a827999(%eax,%r11d),%r12d
36	mov	%edi,%ebx
37	mov	4(%r9),%eax
38	mov	%edx,%r11d
39	xor	%ebp,%ebx
40	bswap	%eax
41	rol	$5,%r11d
42	and	%esi,%ebx
43	mov	%eax,4(%rsp)
44	add	%r11d,%r12d
45	xor	%ebp,%ebx
46	rol	$30,%esi
47	add	%ebx,%r12d
48	lea	0x5a827999(%eax,%ebp),%r11d
49	mov	%esi,%ebx
50	mov	8(%r9),%eax
51	mov	%r12d,%ebp
52	xor	%edi,%ebx
53	bswap	%eax
54	rol	$5,%ebp
55	and	%edx,%ebx
56	mov	%eax,8(%rsp)
57	add	%ebp,%r11d
58	xor	%edi,%ebx
59	rol	$30,%edx
60	add	%ebx,%r11d
61	lea	0x5a827999(%eax,%edi),%ebp
62	mov	%edx,%ebx
63	mov	12(%r9),%eax
64	mov	%r11d,%edi
65	xor	%esi,%ebx
66	bswap	%eax
67	rol	$5,%edi
68	and	%r12d,%ebx
69	mov	%eax,12(%rsp)
70	add	%edi,%ebp
71	xor	%esi,%ebx
72	rol	$30,%r12d
73	add	%ebx,%ebp
74	lea	0x5a827999(%eax,%esi),%edi
75	mov	%r12d,%ebx
76	mov	16(%r9),%eax
77	mov	%ebp,%esi
78	xor	%edx,%ebx
79	bswap	%eax
80	rol	$5,%esi
81	and	%r11d,%ebx
82	mov	%eax,16(%rsp)
83	add	%esi,%edi
84	xor	%edx,%ebx
85	rol	$30,%r11d
86	add	%ebx,%edi
87	lea	0x5a827999(%eax,%edx),%esi
88	mov	%r11d,%ebx
89	mov	20(%r9),%eax
90	mov	%edi,%edx
91	xor	%r12d,%ebx
92	bswap	%eax
93	rol	$5,%edx
94	and	%ebp,%ebx
95	mov	%eax,20(%rsp)
96	add	%edx,%esi
97	xor	%r12d,%ebx
98	rol	$30,%ebp
99	add	%ebx,%esi
100	lea	0x5a827999(%eax,%r12d),%edx
101	mov	%ebp,%ebx
102	mov	24(%r9),%eax
103	mov	%esi,%r12d
104	xor	%r11d,%ebx
105	bswap	%eax
106	rol	$5,%r12d
107	and	%edi,%ebx
108	mov	%eax,24(%rsp)
109	add	%r12d,%edx
110	xor	%r11d,%ebx
111	rol	$30,%edi
112	add	%ebx,%edx
113	lea	0x5a827999(%eax,%r11d),%r12d
114	mov	%edi,%ebx
115	mov	28(%r9),%eax
116	mov	%edx,%r11d
117	xor	%ebp,%ebx
118	bswap	%eax
119	rol	$5,%r11d
120	and	%esi,%ebx
121	mov	%eax,28(%rsp)
122	add	%r11d,%r12d
123	xor	%ebp,%ebx
124	rol	$30,%esi
125	add	%ebx,%r12d
126	lea	0x5a827999(%eax,%ebp),%r11d
127	mov	%esi,%ebx
128	mov	32(%r9),%eax
129	mov	%r12d,%ebp
130	xor	%edi,%ebx
131	bswap	%eax
132	rol	$5,%ebp
133	and	%edx,%ebx
134	mov	%eax,32(%rsp)
135	add	%ebp,%r11d
136	xor	%edi,%ebx
137	rol	$30,%edx
138	add	%ebx,%r11d
139	lea	0x5a827999(%eax,%edi),%ebp
140	mov	%edx,%ebx
141	mov	36(%r9),%eax
142	mov	%r11d,%edi
143	xor	%esi,%ebx
144	bswap	%eax
145	rol	$5,%edi
146	and	%r12d,%ebx
147	mov	%eax,36(%rsp)
148	add	%edi,%ebp
149	xor	%esi,%ebx
150	rol	$30,%r12d
151	add	%ebx,%ebp
152	lea	0x5a827999(%eax,%esi),%edi
153	mov	%r12d,%ebx
154	mov	40(%r9),%eax
155	mov	%ebp,%esi
156	xor	%edx,%ebx
157	bswap	%eax
158	rol	$5,%esi
159	and	%r11d,%ebx
160	mov	%eax,40(%rsp)
161	add	%esi,%edi
162	xor	%edx,%ebx
163	rol	$30,%r11d
164	add	%ebx,%edi
165	lea	0x5a827999(%eax,%edx),%esi
166	mov	%r11d,%ebx
167	mov	44(%r9),%eax
168	mov	%edi,%edx
169	xor	%r12d,%ebx
170	bswap	%eax
171	rol	$5,%edx
172	and	%ebp,%ebx
173	mov	%eax,44(%rsp)
174	add	%edx,%esi
175	xor	%r12d,%ebx
176	rol	$30,%ebp
177	add	%ebx,%esi
178	lea	0x5a827999(%eax,%r12d),%edx
179	mov	%ebp,%ebx
180	mov	48(%r9),%eax
181	mov	%esi,%r12d
182	xor	%r11d,%ebx
183	bswap	%eax
184	rol	$5,%r12d
185	and	%edi,%ebx
186	mov	%eax,48(%rsp)
187	add	%r12d,%edx
188	xor	%r11d,%ebx
189	rol	$30,%edi
190	add	%ebx,%edx
191	lea	0x5a827999(%eax,%r11d),%r12d
192	mov	%edi,%ebx
193	mov	52(%r9),%eax
194	mov	%edx,%r11d
195	xor	%ebp,%ebx
196	bswap	%eax
197	rol	$5,%r11d
198	and	%esi,%ebx
199	mov	%eax,52(%rsp)
200	add	%r11d,%r12d
201	xor	%ebp,%ebx
202	rol	$30,%esi
203	add	%ebx,%r12d
204	lea	0x5a827999(%eax,%ebp),%r11d
205	mov	%esi,%ebx
206	mov	56(%r9),%eax
207	mov	%r12d,%ebp
208	xor	%edi,%ebx
209	bswap	%eax
210	rol	$5,%ebp
211	and	%edx,%ebx
212	mov	%eax,56(%rsp)
213	add	%ebp,%r11d
214	xor	%edi,%ebx
215	rol	$30,%edx
216	add	%ebx,%r11d
217	lea	0x5a827999(%eax,%edi),%ebp
218	mov	%edx,%ebx
219	mov	60(%r9),%eax
220	mov	%r11d,%edi
221	xor	%esi,%ebx
222	bswap	%eax
223	rol	$5,%edi
224	and	%r12d,%ebx
225	mov	%eax,60(%rsp)
226	add	%edi,%ebp
227	xor	%esi,%ebx
228	rol	$30,%r12d
229	add	%ebx,%ebp
230	lea	0x5a827999(%eax,%esi),%edi
231	mov	0(%rsp),%eax
232	mov	%r12d,%ebx
233	mov	%ebp,%esi
234	xor	8(%rsp),%eax
235	xor	%edx,%ebx
236	rol	$5,%esi
237	xor	32(%rsp),%eax
238	and	%r11d,%ebx
239	add	%esi,%edi
240	xor	52(%rsp),%eax
241	xor	%edx,%ebx
242	rol	$30,%r11d
243	add	%ebx,%edi
244	rol	$1,%eax
245	mov	%eax,0(%rsp)
246	lea	0x5a827999(%eax,%edx),%esi
247	mov	4(%rsp),%eax
248	mov	%r11d,%ebx
249	mov	%edi,%edx
250	xor	12(%rsp),%eax
251	xor	%r12d,%ebx
252	rol	$5,%edx
253	xor	36(%rsp),%eax
254	and	%ebp,%ebx
255	add	%edx,%esi
256	xor	56(%rsp),%eax
257	xor	%r12d,%ebx
258	rol	$30,%ebp
259	add	%ebx,%esi
260	rol	$1,%eax
261	mov	%eax,4(%rsp)
262	lea	0x5a827999(%eax,%r12d),%edx
263	mov	8(%rsp),%eax
264	mov	%ebp,%ebx
265	mov	%esi,%r12d
266	xor	16(%rsp),%eax
267	xor	%r11d,%ebx
268	rol	$5,%r12d
269	xor	40(%rsp),%eax
270	and	%edi,%ebx
271	add	%r12d,%edx
272	xor	60(%rsp),%eax
273	xor	%r11d,%ebx
274	rol	$30,%edi
275	add	%ebx,%edx
276	rol	$1,%eax
277	mov	%eax,8(%rsp)
278	lea	0x5a827999(%eax,%r11d),%r12d
279	mov	12(%rsp),%eax
280	mov	%edi,%ebx
281	mov	%edx,%r11d
282	xor	20(%rsp),%eax
283	xor	%ebp,%ebx
284	rol	$5,%r11d
285	xor	44(%rsp),%eax
286	and	%esi,%ebx
287	add	%r11d,%r12d
288	xor	0(%rsp),%eax
289	xor	%ebp,%ebx
290	rol	$30,%esi
291	add	%ebx,%r12d
292	rol	$1,%eax
293	mov	%eax,12(%rsp)
294	lea	0x5a827999(%eax,%ebp),%r11d
295	mov	16(%rsp),%eax
296	mov	%esi,%ebx
297	mov	%r12d,%ebp
298	xor	24(%rsp),%eax
299	xor	%edi,%ebx
300	rol	$5,%ebp
301	xor	48(%rsp),%eax
302	and	%edx,%ebx
303	add	%ebp,%r11d
304	xor	4(%rsp),%eax
305	xor	%edi,%ebx
306	rol	$30,%edx
307	add	%ebx,%r11d
308	rol	$1,%eax
309	mov	%eax,16(%rsp)
310	lea	0x6ed9eba1(%eax,%edi),%ebp
311	mov	20(%rsp),%eax
312	mov	%edx,%ebx
313	mov	%r11d,%edi
314	xor	28(%rsp),%eax
315	xor	%r12d,%ebx
316	rol	$5,%edi
317	xor	52(%rsp),%eax
318	xor	%esi,%ebx
319	add	%edi,%ebp
320	xor	8(%rsp),%eax
321	rol	$30,%r12d
322	add	%ebx,%ebp
323	rol	$1,%eax
324	mov	%eax,20(%rsp)
325	lea	0x6ed9eba1(%eax,%esi),%edi
326	mov	24(%rsp),%eax
327	mov	%r12d,%ebx
328	mov	%ebp,%esi
329	xor	32(%rsp),%eax
330	xor	%r11d,%ebx
331	rol	$5,%esi
332	xor	56(%rsp),%eax
333	xor	%edx,%ebx
334	add	%esi,%edi
335	xor	12(%rsp),%eax
336	rol	$30,%r11d
337	add	%ebx,%edi
338	rol	$1,%eax
339	mov	%eax,24(%rsp)
340	lea	0x6ed9eba1(%eax,%edx),%esi
341	mov	28(%rsp),%eax
342	mov	%r11d,%ebx
343	mov	%edi,%edx
344	xor	36(%rsp),%eax
345	xor	%ebp,%ebx
346	rol	$5,%edx
347	xor	60(%rsp),%eax
348	xor	%r12d,%ebx
349	add	%edx,%esi
350	xor	16(%rsp),%eax
351	rol	$30,%ebp
352	add	%ebx,%esi
353	rol	$1,%eax
354	mov	%eax,28(%rsp)
355	lea	0x6ed9eba1(%eax,%r12d),%edx
356	mov	32(%rsp),%eax
357	mov	%ebp,%ebx
358	mov	%esi,%r12d
359	xor	40(%rsp),%eax
360	xor	%edi,%ebx
361	rol	$5,%r12d
362	xor	0(%rsp),%eax
363	xor	%r11d,%ebx
364	add	%r12d,%edx
365	xor	20(%rsp),%eax
366	rol	$30,%edi
367	add	%ebx,%edx
368	rol	$1,%eax
369	mov	%eax,32(%rsp)
370	lea	0x6ed9eba1(%eax,%r11d),%r12d
371	mov	36(%rsp),%eax
372	mov	%edi,%ebx
373	mov	%edx,%r11d
374	xor	44(%rsp),%eax
375	xor	%esi,%ebx
376	rol	$5,%r11d
377	xor	4(%rsp),%eax
378	xor	%ebp,%ebx
379	add	%r11d,%r12d
380	xor	24(%rsp),%eax
381	rol	$30,%esi
382	add	%ebx,%r12d
383	rol	$1,%eax
384	mov	%eax,36(%rsp)
385	lea	0x6ed9eba1(%eax,%ebp),%r11d
386	mov	40(%rsp),%eax
387	mov	%esi,%ebx
388	mov	%r12d,%ebp
389	xor	48(%rsp),%eax
390	xor	%edx,%ebx
391	rol	$5,%ebp
392	xor	8(%rsp),%eax
393	xor	%edi,%ebx
394	add	%ebp,%r11d
395	xor	28(%rsp),%eax
396	rol	$30,%edx
397	add	%ebx,%r11d
398	rol	$1,%eax
399	mov	%eax,40(%rsp)
400	lea	0x6ed9eba1(%eax,%edi),%ebp
401	mov	44(%rsp),%eax
402	mov	%edx,%ebx
403	mov	%r11d,%edi
404	xor	52(%rsp),%eax
405	xor	%r12d,%ebx
406	rol	$5,%edi
407	xor	12(%rsp),%eax
408	xor	%esi,%ebx
409	add	%edi,%ebp
410	xor	32(%rsp),%eax
411	rol	$30,%r12d
412	add	%ebx,%ebp
413	rol	$1,%eax
414	mov	%eax,44(%rsp)
415	lea	0x6ed9eba1(%eax,%esi),%edi
416	mov	48(%rsp),%eax
417	mov	%r12d,%ebx
418	mov	%ebp,%esi
419	xor	56(%rsp),%eax
420	xor	%r11d,%ebx
421	rol	$5,%esi
422	xor	16(%rsp),%eax
423	xor	%edx,%ebx
424	add	%esi,%edi
425	xor	36(%rsp),%eax
426	rol	$30,%r11d
427	add	%ebx,%edi
428	rol	$1,%eax
429	mov	%eax,48(%rsp)
430	lea	0x6ed9eba1(%eax,%edx),%esi
431	mov	52(%rsp),%eax
432	mov	%r11d,%ebx
433	mov	%edi,%edx
434	xor	60(%rsp),%eax
435	xor	%ebp,%ebx
436	rol	$5,%edx
437	xor	20(%rsp),%eax
438	xor	%r12d,%ebx
439	add	%edx,%esi
440	xor	40(%rsp),%eax
441	rol	$30,%ebp
442	add	%ebx,%esi
443	rol	$1,%eax
444	mov	%eax,52(%rsp)
445	lea	0x6ed9eba1(%eax,%r12d),%edx
446	mov	56(%rsp),%eax
447	mov	%ebp,%ebx
448	mov	%esi,%r12d
449	xor	0(%rsp),%eax
450	xor	%edi,%ebx
451	rol	$5,%r12d
452	xor	24(%rsp),%eax
453	xor	%r11d,%ebx
454	add	%r12d,%edx
455	xor	44(%rsp),%eax
456	rol	$30,%edi
457	add	%ebx,%edx
458	rol	$1,%eax
459	mov	%eax,56(%rsp)
460	lea	0x6ed9eba1(%eax,%r11d),%r12d
461	mov	60(%rsp),%eax
462	mov	%edi,%ebx
463	mov	%edx,%r11d
464	xor	4(%rsp),%eax
465	xor	%esi,%ebx
466	rol	$5,%r11d
467	xor	28(%rsp),%eax
468	xor	%ebp,%ebx
469	add	%r11d,%r12d
470	xor	48(%rsp),%eax
471	rol	$30,%esi
472	add	%ebx,%r12d
473	rol	$1,%eax
474	mov	%eax,60(%rsp)
475	lea	0x6ed9eba1(%eax,%ebp),%r11d
476	mov	0(%rsp),%eax
477	mov	%esi,%ebx
478	mov	%r12d,%ebp
479	xor	8(%rsp),%eax
480	xor	%edx,%ebx
481	rol	$5,%ebp
482	xor	32(%rsp),%eax
483	xor	%edi,%ebx
484	add	%ebp,%r11d
485	xor	52(%rsp),%eax
486	rol	$30,%edx
487	add	%ebx,%r11d
488	rol	$1,%eax
489	mov	%eax,0(%rsp)
490	lea	0x6ed9eba1(%eax,%edi),%ebp
491	mov	4(%rsp),%eax
492	mov	%edx,%ebx
493	mov	%r11d,%edi
494	xor	12(%rsp),%eax
495	xor	%r12d,%ebx
496	rol	$5,%edi
497	xor	36(%rsp),%eax
498	xor	%esi,%ebx
499	add	%edi,%ebp
500	xor	56(%rsp),%eax
501	rol	$30,%r12d
502	add	%ebx,%ebp
503	rol	$1,%eax
504	mov	%eax,4(%rsp)
505	lea	0x6ed9eba1(%eax,%esi),%edi
506	mov	8(%rsp),%eax
507	mov	%r12d,%ebx
508	mov	%ebp,%esi
509	xor	16(%rsp),%eax
510	xor	%r11d,%ebx
511	rol	$5,%esi
512	xor	40(%rsp),%eax
513	xor	%edx,%ebx
514	add	%esi,%edi
515	xor	60(%rsp),%eax
516	rol	$30,%r11d
517	add	%ebx,%edi
518	rol	$1,%eax
519	mov	%eax,8(%rsp)
520	lea	0x6ed9eba1(%eax,%edx),%esi
521	mov	12(%rsp),%eax
522	mov	%r11d,%ebx
523	mov	%edi,%edx
524	xor	20(%rsp),%eax
525	xor	%ebp,%ebx
526	rol	$5,%edx
527	xor	44(%rsp),%eax
528	xor	%r12d,%ebx
529	add	%edx,%esi
530	xor	0(%rsp),%eax
531	rol	$30,%ebp
532	add	%ebx,%esi
533	rol	$1,%eax
534	mov	%eax,12(%rsp)
535	lea	0x6ed9eba1(%eax,%r12d),%edx
536	mov	16(%rsp),%eax
537	mov	%ebp,%ebx
538	mov	%esi,%r12d
539	xor	24(%rsp),%eax
540	xor	%edi,%ebx
541	rol	$5,%r12d
542	xor	48(%rsp),%eax
543	xor	%r11d,%ebx
544	add	%r12d,%edx
545	xor	4(%rsp),%eax
546	rol	$30,%edi
547	add	%ebx,%edx
548	rol	$1,%eax
549	mov	%eax,16(%rsp)
550	lea	0x6ed9eba1(%eax,%r11d),%r12d
551	mov	20(%rsp),%eax
552	mov	%edi,%ebx
553	mov	%edx,%r11d
554	xor	28(%rsp),%eax
555	xor	%esi,%ebx
556	rol	$5,%r11d
557	xor	52(%rsp),%eax
558	xor	%ebp,%ebx
559	add	%r11d,%r12d
560	xor	8(%rsp),%eax
561	rol	$30,%esi
562	add	%ebx,%r12d
563	rol	$1,%eax
564	mov	%eax,20(%rsp)
565	lea	0x6ed9eba1(%eax,%ebp),%r11d
566	mov	24(%rsp),%eax
567	mov	%esi,%ebx
568	mov	%r12d,%ebp
569	xor	32(%rsp),%eax
570	xor	%edx,%ebx
571	rol	$5,%ebp
572	xor	56(%rsp),%eax
573	xor	%edi,%ebx
574	add	%ebp,%r11d
575	xor	12(%rsp),%eax
576	rol	$30,%edx
577	add	%ebx,%r11d
578	rol	$1,%eax
579	mov	%eax,24(%rsp)
580	lea	0x6ed9eba1(%eax,%edi),%ebp
581	mov	28(%rsp),%eax
582	mov	%edx,%ebx
583	mov	%r11d,%edi
584	xor	36(%rsp),%eax
585	xor	%r12d,%ebx
586	rol	$5,%edi
587	xor	60(%rsp),%eax
588	xor	%esi,%ebx
589	add	%edi,%ebp
590	xor	16(%rsp),%eax
591	rol	$30,%r12d
592	add	%ebx,%ebp
593	rol	$1,%eax
594	mov	%eax,28(%rsp)
595	lea	0x6ed9eba1(%eax,%esi),%edi
596	mov	32(%rsp),%eax
597	mov	%r12d,%ebx
598	mov	%ebp,%esi
599	xor	40(%rsp),%eax
600	xor	%r11d,%ebx
601	rol	$5,%esi
602	xor	0(%rsp),%eax
603	xor	%edx,%ebx
604	add	%esi,%edi
605	xor	20(%rsp),%eax
606	rol	$30,%r11d
607	add	%ebx,%edi
608	rol	$1,%eax
609	mov	%eax,32(%rsp)
610	lea	-0x70e44324(%eax,%edx),%esi
611	mov	36(%rsp),%eax
612	mov	%ebp,%ebx
613	mov	%ebp,%ecx
614	xor	44(%rsp),%eax
615	mov	%edi,%edx
616	and	%r11d,%ebx
617	xor	4(%rsp),%eax
618	or	%r11d,%ecx
619	rol	$5,%edx
620	xor	24(%rsp),%eax
621	and	%r12d,%ecx
622	add	%edx,%esi
623	rol	$1,%eax
624	or	%ecx,%ebx
625	rol	$30,%ebp
626	mov	%eax,36(%rsp)
627	add	%ebx,%esi
628	lea	-0x70e44324(%eax,%r12d),%edx
629	mov	40(%rsp),%eax
630	mov	%edi,%ebx
631	mov	%edi,%ecx
632	xor	48(%rsp),%eax
633	mov	%esi,%r12d
634	and	%ebp,%ebx
635	xor	8(%rsp),%eax
636	or	%ebp,%ecx
637	rol	$5,%r12d
638	xor	28(%rsp),%eax
639	and	%r11d,%ecx
640	add	%r12d,%edx
641	rol	$1,%eax
642	or	%ecx,%ebx
643	rol	$30,%edi
644	mov	%eax,40(%rsp)
645	add	%ebx,%edx
646	lea	-0x70e44324(%eax,%r11d),%r12d
647	mov	44(%rsp),%eax
648	mov	%esi,%ebx
649	mov	%esi,%ecx
650	xor	52(%rsp),%eax
651	mov	%edx,%r11d
652	and	%edi,%ebx
653	xor	12(%rsp),%eax
654	or	%edi,%ecx
655	rol	$5,%r11d
656	xor	32(%rsp),%eax
657	and	%ebp,%ecx
658	add	%r11d,%r12d
659	rol	$1,%eax
660	or	%ecx,%ebx
661	rol	$30,%esi
662	mov	%eax,44(%rsp)
663	add	%ebx,%r12d
664	lea	-0x70e44324(%eax,%ebp),%r11d
665	mov	48(%rsp),%eax
666	mov	%edx,%ebx
667	mov	%edx,%ecx
668	xor	56(%rsp),%eax
669	mov	%r12d,%ebp
670	and	%esi,%ebx
671	xor	16(%rsp),%eax
672	or	%esi,%ecx
673	rol	$5,%ebp
674	xor	36(%rsp),%eax
675	and	%edi,%ecx
676	add	%ebp,%r11d
677	rol	$1,%eax
678	or	%ecx,%ebx
679	rol	$30,%edx
680	mov	%eax,48(%rsp)
681	add	%ebx,%r11d
682	lea	-0x70e44324(%eax,%edi),%ebp
683	mov	52(%rsp),%eax
684	mov	%r12d,%ebx
685	mov	%r12d,%ecx
686	xor	60(%rsp),%eax
687	mov	%r11d,%edi
688	and	%edx,%ebx
689	xor	20(%rsp),%eax
690	or	%edx,%ecx
691	rol	$5,%edi
692	xor	40(%rsp),%eax
693	and	%esi,%ecx
694	add	%edi,%ebp
695	rol	$1,%eax
696	or	%ecx,%ebx
697	rol	$30,%r12d
698	mov	%eax,52(%rsp)
699	add	%ebx,%ebp
700	lea	-0x70e44324(%eax,%esi),%edi
701	mov	56(%rsp),%eax
702	mov	%r11d,%ebx
703	mov	%r11d,%ecx
704	xor	0(%rsp),%eax
705	mov	%ebp,%esi
706	and	%r12d,%ebx
707	xor	24(%rsp),%eax
708	or	%r12d,%ecx
709	rol	$5,%esi
710	xor	44(%rsp),%eax
711	and	%edx,%ecx
712	add	%esi,%edi
713	rol	$1,%eax
714	or	%ecx,%ebx
715	rol	$30,%r11d
716	mov	%eax,56(%rsp)
717	add	%ebx,%edi
718	lea	-0x70e44324(%eax,%edx),%esi
719	mov	60(%rsp),%eax
720	mov	%ebp,%ebx
721	mov	%ebp,%ecx
722	xor	4(%rsp),%eax
723	mov	%edi,%edx
724	and	%r11d,%ebx
725	xor	28(%rsp),%eax
726	or	%r11d,%ecx
727	rol	$5,%edx
728	xor	48(%rsp),%eax
729	and	%r12d,%ecx
730	add	%edx,%esi
731	rol	$1,%eax
732	or	%ecx,%ebx
733	rol	$30,%ebp
734	mov	%eax,60(%rsp)
735	add	%ebx,%esi
736	lea	-0x70e44324(%eax,%r12d),%edx
737	mov	0(%rsp),%eax
738	mov	%edi,%ebx
739	mov	%edi,%ecx
740	xor	8(%rsp),%eax
741	mov	%esi,%r12d
742	and	%ebp,%ebx
743	xor	32(%rsp),%eax
744	or	%ebp,%ecx
745	rol	$5,%r12d
746	xor	52(%rsp),%eax
747	and	%r11d,%ecx
748	add	%r12d,%edx
749	rol	$1,%eax
750	or	%ecx,%ebx
751	rol	$30,%edi
752	mov	%eax,0(%rsp)
753	add	%ebx,%edx
754	lea	-0x70e44324(%eax,%r11d),%r12d
755	mov	4(%rsp),%eax
756	mov	%esi,%ebx
757	mov	%esi,%ecx
758	xor	12(%rsp),%eax
759	mov	%edx,%r11d
760	and	%edi,%ebx
761	xor	36(%rsp),%eax
762	or	%edi,%ecx
763	rol	$5,%r11d
764	xor	56(%rsp),%eax
765	and	%ebp,%ecx
766	add	%r11d,%r12d
767	rol	$1,%eax
768	or	%ecx,%ebx
769	rol	$30,%esi
770	mov	%eax,4(%rsp)
771	add	%ebx,%r12d
772	lea	-0x70e44324(%eax,%ebp),%r11d
773	mov	8(%rsp),%eax
774	mov	%edx,%ebx
775	mov	%edx,%ecx
776	xor	16(%rsp),%eax
777	mov	%r12d,%ebp
778	and	%esi,%ebx
779	xor	40(%rsp),%eax
780	or	%esi,%ecx
781	rol	$5,%ebp
782	xor	60(%rsp),%eax
783	and	%edi,%ecx
784	add	%ebp,%r11d
785	rol	$1,%eax
786	or	%ecx,%ebx
787	rol	$30,%edx
788	mov	%eax,8(%rsp)
789	add	%ebx,%r11d
790	lea	-0x70e44324(%eax,%edi),%ebp
791	mov	12(%rsp),%eax
792	mov	%r12d,%ebx
793	mov	%r12d,%ecx
794	xor	20(%rsp),%eax
795	mov	%r11d,%edi
796	and	%edx,%ebx
797	xor	44(%rsp),%eax
798	or	%edx,%ecx
799	rol	$5,%edi
800	xor	0(%rsp),%eax
801	and	%esi,%ecx
802	add	%edi,%ebp
803	rol	$1,%eax
804	or	%ecx,%ebx
805	rol	$30,%r12d
806	mov	%eax,12(%rsp)
807	add	%ebx,%ebp
808	lea	-0x70e44324(%eax,%esi),%edi
809	mov	16(%rsp),%eax
810	mov	%r11d,%ebx
811	mov	%r11d,%ecx
812	xor	24(%rsp),%eax
813	mov	%ebp,%esi
814	and	%r12d,%ebx
815	xor	48(%rsp),%eax
816	or	%r12d,%ecx
817	rol	$5,%esi
818	xor	4(%rsp),%eax
819	and	%edx,%ecx
820	add	%esi,%edi
821	rol	$1,%eax
822	or	%ecx,%ebx
823	rol	$30,%r11d
824	mov	%eax,16(%rsp)
825	add	%ebx,%edi
826	lea	-0x70e44324(%eax,%edx),%esi
827	mov	20(%rsp),%eax
828	mov	%ebp,%ebx
829	mov	%ebp,%ecx
830	xor	28(%rsp),%eax
831	mov	%edi,%edx
832	and	%r11d,%ebx
833	xor	52(%rsp),%eax
834	or	%r11d,%ecx
835	rol	$5,%edx
836	xor	8(%rsp),%eax
837	and	%r12d,%ecx
838	add	%edx,%esi
839	rol	$1,%eax
840	or	%ecx,%ebx
841	rol	$30,%ebp
842	mov	%eax,20(%rsp)
843	add	%ebx,%esi
844	lea	-0x70e44324(%eax,%r12d),%edx
845	mov	24(%rsp),%eax
846	mov	%edi,%ebx
847	mov	%edi,%ecx
848	xor	32(%rsp),%eax
849	mov	%esi,%r12d
850	and	%ebp,%ebx
851	xor	56(%rsp),%eax
852	or	%ebp,%ecx
853	rol	$5,%r12d
854	xor	12(%rsp),%eax
855	and	%r11d,%ecx
856	add	%r12d,%edx
857	rol	$1,%eax
858	or	%ecx,%ebx
859	rol	$30,%edi
860	mov	%eax,24(%rsp)
861	add	%ebx,%edx
862	lea	-0x70e44324(%eax,%r11d),%r12d
863	mov	28(%rsp),%eax
864	mov	%esi,%ebx
865	mov	%esi,%ecx
866	xor	36(%rsp),%eax
867	mov	%edx,%r11d
868	and	%edi,%ebx
869	xor	60(%rsp),%eax
870	or	%edi,%ecx
871	rol	$5,%r11d
872	xor	16(%rsp),%eax
873	and	%ebp,%ecx
874	add	%r11d,%r12d
875	rol	$1,%eax
876	or	%ecx,%ebx
877	rol	$30,%esi
878	mov	%eax,28(%rsp)
879	add	%ebx,%r12d
880	lea	-0x70e44324(%eax,%ebp),%r11d
881	mov	32(%rsp),%eax
882	mov	%edx,%ebx
883	mov	%edx,%ecx
884	xor	40(%rsp),%eax
885	mov	%r12d,%ebp
886	and	%esi,%ebx
887	xor	0(%rsp),%eax
888	or	%esi,%ecx
889	rol	$5,%ebp
890	xor	20(%rsp),%eax
891	and	%edi,%ecx
892	add	%ebp,%r11d
893	rol	$1,%eax
894	or	%ecx,%ebx
895	rol	$30,%edx
896	mov	%eax,32(%rsp)
897	add	%ebx,%r11d
898	lea	-0x70e44324(%eax,%edi),%ebp
899	mov	36(%rsp),%eax
900	mov	%r12d,%ebx
901	mov	%r12d,%ecx
902	xor	44(%rsp),%eax
903	mov	%r11d,%edi
904	and	%edx,%ebx
905	xor	4(%rsp),%eax
906	or	%edx,%ecx
907	rol	$5,%edi
908	xor	24(%rsp),%eax
909	and	%esi,%ecx
910	add	%edi,%ebp
911	rol	$1,%eax
912	or	%ecx,%ebx
913	rol	$30,%r12d
914	mov	%eax,36(%rsp)
915	add	%ebx,%ebp
916	lea	-0x70e44324(%eax,%esi),%edi
917	mov	40(%rsp),%eax
918	mov	%r11d,%ebx
919	mov	%r11d,%ecx
920	xor	48(%rsp),%eax
921	mov	%ebp,%esi
922	and	%r12d,%ebx
923	xor	8(%rsp),%eax
924	or	%r12d,%ecx
925	rol	$5,%esi
926	xor	28(%rsp),%eax
927	and	%edx,%ecx
928	add	%esi,%edi
929	rol	$1,%eax
930	or	%ecx,%ebx
931	rol	$30,%r11d
932	mov	%eax,40(%rsp)
933	add	%ebx,%edi
934	lea	-0x70e44324(%eax,%edx),%esi
935	mov	44(%rsp),%eax
936	mov	%ebp,%ebx
937	mov	%ebp,%ecx
938	xor	52(%rsp),%eax
939	mov	%edi,%edx
940	and	%r11d,%ebx
941	xor	12(%rsp),%eax
942	or	%r11d,%ecx
943	rol	$5,%edx
944	xor	32(%rsp),%eax
945	and	%r12d,%ecx
946	add	%edx,%esi
947	rol	$1,%eax
948	or	%ecx,%ebx
949	rol	$30,%ebp
950	mov	%eax,44(%rsp)
951	add	%ebx,%esi
952	lea	-0x70e44324(%eax,%r12d),%edx
953	mov	48(%rsp),%eax
954	mov	%edi,%ebx
955	mov	%edi,%ecx
956	xor	56(%rsp),%eax
957	mov	%esi,%r12d
958	and	%ebp,%ebx
959	xor	16(%rsp),%eax
960	or	%ebp,%ecx
961	rol	$5,%r12d
962	xor	36(%rsp),%eax
963	and	%r11d,%ecx
964	add	%r12d,%edx
965	rol	$1,%eax
966	or	%ecx,%ebx
967	rol	$30,%edi
968	mov	%eax,48(%rsp)
969	add	%ebx,%edx
970	lea	-0x359d3e2a(%eax,%r11d),%r12d
971	mov	52(%rsp),%eax
972	mov	%edi,%ebx
973	mov	%edx,%r11d
974	xor	60(%rsp),%eax
975	xor	%esi,%ebx
976	rol	$5,%r11d
977	xor	20(%rsp),%eax
978	xor	%ebp,%ebx
979	add	%r11d,%r12d
980	xor	40(%rsp),%eax
981	rol	$30,%esi
982	add	%ebx,%r12d
983	rol	$1,%eax
984	mov	%eax,52(%rsp)
985	lea	-0x359d3e2a(%eax,%ebp),%r11d
986	mov	56(%rsp),%eax
987	mov	%esi,%ebx
988	mov	%r12d,%ebp
989	xor	0(%rsp),%eax
990	xor	%edx,%ebx
991	rol	$5,%ebp
992	xor	24(%rsp),%eax
993	xor	%edi,%ebx
994	add	%ebp,%r11d
995	xor	44(%rsp),%eax
996	rol	$30,%edx
997	add	%ebx,%r11d
998	rol	$1,%eax
999	mov	%eax,56(%rsp)
1000	lea	-0x359d3e2a(%eax,%edi),%ebp
1001	mov	60(%rsp),%eax
1002	mov	%edx,%ebx
1003	mov	%r11d,%edi
1004	xor	4(%rsp),%eax
1005	xor	%r12d,%ebx
1006	rol	$5,%edi
1007	xor	28(%rsp),%eax
1008	xor	%esi,%ebx
1009	add	%edi,%ebp
1010	xor	48(%rsp),%eax
1011	rol	$30,%r12d
1012	add	%ebx,%ebp
1013	rol	$1,%eax
1014	mov	%eax,60(%rsp)
1015	lea	-0x359d3e2a(%eax,%esi),%edi
1016	mov	0(%rsp),%eax
1017	mov	%r12d,%ebx
1018	mov	%ebp,%esi
1019	xor	8(%rsp),%eax
1020	xor	%r11d,%ebx
1021	rol	$5,%esi
1022	xor	32(%rsp),%eax
1023	xor	%edx,%ebx
1024	add	%esi,%edi
1025	xor	52(%rsp),%eax
1026	rol	$30,%r11d
1027	add	%ebx,%edi
1028	rol	$1,%eax
1029	mov	%eax,0(%rsp)
1030	lea	-0x359d3e2a(%eax,%edx),%esi
1031	mov	4(%rsp),%eax
1032	mov	%r11d,%ebx
1033	mov	%edi,%edx
1034	xor	12(%rsp),%eax
1035	xor	%ebp,%ebx
1036	rol	$5,%edx
1037	xor	36(%rsp),%eax
1038	xor	%r12d,%ebx
1039	add	%edx,%esi
1040	xor	56(%rsp),%eax
1041	rol	$30,%ebp
1042	add	%ebx,%esi
1043	rol	$1,%eax
1044	mov	%eax,4(%rsp)
1045	lea	-0x359d3e2a(%eax,%r12d),%edx
1046	mov	8(%rsp),%eax
1047	mov	%ebp,%ebx
1048	mov	%esi,%r12d
1049	xor	16(%rsp),%eax
1050	xor	%edi,%ebx
1051	rol	$5,%r12d
1052	xor	40(%rsp),%eax
1053	xor	%r11d,%ebx
1054	add	%r12d,%edx
1055	xor	60(%rsp),%eax
1056	rol	$30,%edi
1057	add	%ebx,%edx
1058	rol	$1,%eax
1059	mov	%eax,8(%rsp)
1060	lea	-0x359d3e2a(%eax,%r11d),%r12d
1061	mov	12(%rsp),%eax
1062	mov	%edi,%ebx
1063	mov	%edx,%r11d
1064	xor	20(%rsp),%eax
1065	xor	%esi,%ebx
1066	rol	$5,%r11d
1067	xor	44(%rsp),%eax
1068	xor	%ebp,%ebx
1069	add	%r11d,%r12d
1070	xor	0(%rsp),%eax
1071	rol	$30,%esi
1072	add	%ebx,%r12d
1073	rol	$1,%eax
1074	mov	%eax,12(%rsp)
1075	lea	-0x359d3e2a(%eax,%ebp),%r11d
1076	mov	16(%rsp),%eax
1077	mov	%esi,%ebx
1078	mov	%r12d,%ebp
1079	xor	24(%rsp),%eax
1080	xor	%edx,%ebx
1081	rol	$5,%ebp
1082	xor	48(%rsp),%eax
1083	xor	%edi,%ebx
1084	add	%ebp,%r11d
1085	xor	4(%rsp),%eax
1086	rol	$30,%edx
1087	add	%ebx,%r11d
1088	rol	$1,%eax
1089	mov	%eax,16(%rsp)
1090	lea	-0x359d3e2a(%eax,%edi),%ebp
1091	mov	20(%rsp),%eax
1092	mov	%edx,%ebx
1093	mov	%r11d,%edi
1094	xor	28(%rsp),%eax
1095	xor	%r12d,%ebx
1096	rol	$5,%edi
1097	xor	52(%rsp),%eax
1098	xor	%esi,%ebx
1099	add	%edi,%ebp
1100	xor	8(%rsp),%eax
1101	rol	$30,%r12d
1102	add	%ebx,%ebp
1103	rol	$1,%eax
1104	mov	%eax,20(%rsp)
1105	lea	-0x359d3e2a(%eax,%esi),%edi
1106	mov	24(%rsp),%eax
1107	mov	%r12d,%ebx
1108	mov	%ebp,%esi
1109	xor	32(%rsp),%eax
1110	xor	%r11d,%ebx
1111	rol	$5,%esi
1112	xor	56(%rsp),%eax
1113	xor	%edx,%ebx
1114	add	%esi,%edi
1115	xor	12(%rsp),%eax
1116	rol	$30,%r11d
1117	add	%ebx,%edi
1118	rol	$1,%eax
1119	mov	%eax,24(%rsp)
1120	lea	-0x359d3e2a(%eax,%edx),%esi
1121	mov	28(%rsp),%eax
1122	mov	%r11d,%ebx
1123	mov	%edi,%edx
1124	xor	36(%rsp),%eax
1125	xor	%ebp,%ebx
1126	rol	$5,%edx
1127	xor	60(%rsp),%eax
1128	xor	%r12d,%ebx
1129	add	%edx,%esi
1130	xor	16(%rsp),%eax
1131	rol	$30,%ebp
1132	add	%ebx,%esi
1133	rol	$1,%eax
1134	mov	%eax,28(%rsp)
1135	lea	-0x359d3e2a(%eax,%r12d),%edx
1136	mov	32(%rsp),%eax
1137	mov	%ebp,%ebx
1138	mov	%esi,%r12d
1139	xor	40(%rsp),%eax
1140	xor	%edi,%ebx
1141	rol	$5,%r12d
1142	xor	0(%rsp),%eax
1143	xor	%r11d,%ebx
1144	add	%r12d,%edx
1145	xor	20(%rsp),%eax
1146	rol	$30,%edi
1147	add	%ebx,%edx
1148	rol	$1,%eax
1149	mov	%eax,32(%rsp)
1150	lea	-0x359d3e2a(%eax,%r11d),%r12d
1151	mov	36(%rsp),%eax
1152	mov	%edi,%ebx
1153	mov	%edx,%r11d
1154	xor	44(%rsp),%eax
1155	xor	%esi,%ebx
1156	rol	$5,%r11d
1157	xor	4(%rsp),%eax
1158	xor	%ebp,%ebx
1159	add	%r11d,%r12d
1160	xor	24(%rsp),%eax
1161	rol	$30,%esi
1162	add	%ebx,%r12d
1163	rol	$1,%eax
1164	mov	%eax,36(%rsp)
1165	lea	-0x359d3e2a(%eax,%ebp),%r11d
1166	mov	40(%rsp),%eax
1167	mov	%esi,%ebx
1168	mov	%r12d,%ebp
1169	xor	48(%rsp),%eax
1170	xor	%edx,%ebx
1171	rol	$5,%ebp
1172	xor	8(%rsp),%eax
1173	xor	%edi,%ebx
1174	add	%ebp,%r11d
1175	xor	28(%rsp),%eax
1176	rol	$30,%edx
1177	add	%ebx,%r11d
1178	rol	$1,%eax
1179	mov	%eax,40(%rsp)
1180	lea	-0x359d3e2a(%eax,%edi),%ebp
1181	mov	44(%rsp),%eax
1182	mov	%edx,%ebx
1183	mov	%r11d,%edi
1184	xor	52(%rsp),%eax
1185	xor	%r12d,%ebx
1186	rol	$5,%edi
1187	xor	12(%rsp),%eax
1188	xor	%esi,%ebx
1189	add	%edi,%ebp
1190	xor	32(%rsp),%eax
1191	rol	$30,%r12d
1192	add	%ebx,%ebp
1193	rol	$1,%eax
1194	mov	%eax,44(%rsp)
1195	lea	-0x359d3e2a(%eax,%esi),%edi
1196	mov	48(%rsp),%eax
1197	mov	%r12d,%ebx
1198	mov	%ebp,%esi
1199	xor	56(%rsp),%eax
1200	xor	%r11d,%ebx
1201	rol	$5,%esi
1202	xor	16(%rsp),%eax
1203	xor	%edx,%ebx
1204	add	%esi,%edi
1205	xor	36(%rsp),%eax
1206	rol	$30,%r11d
1207	add	%ebx,%edi
1208	rol	$1,%eax
1209	mov	%eax,48(%rsp)
1210	lea	-0x359d3e2a(%eax,%edx),%esi
1211	mov	52(%rsp),%eax
1212	mov	%r11d,%ebx
1213	mov	%edi,%edx
1214	xor	60(%rsp),%eax
1215	xor	%ebp,%ebx
1216	rol	$5,%edx
1217	xor	20(%rsp),%eax
1218	xor	%r12d,%ebx
1219	add	%edx,%esi
1220	xor	40(%rsp),%eax
1221	rol	$30,%ebp
1222	add	%ebx,%esi
1223	rol	$1,%eax
1224	lea	-0x359d3e2a(%eax,%r12d),%edx
1225	mov	56(%rsp),%eax
1226	mov	%ebp,%ebx
1227	mov	%esi,%r12d
1228	xor	0(%rsp),%eax
1229	xor	%edi,%ebx
1230	rol	$5,%r12d
1231	xor	24(%rsp),%eax
1232	xor	%r11d,%ebx
1233	add	%r12d,%edx
1234	xor	44(%rsp),%eax
1235	rol	$30,%edi
1236	add	%ebx,%edx
1237	rol	$1,%eax
1238	lea	-0x359d3e2a(%eax,%r11d),%r12d
1239	mov	60(%rsp),%eax
1240	mov	%edi,%ebx
1241	mov	%edx,%r11d
1242	xor	4(%rsp),%eax
1243	xor	%esi,%ebx
1244	rol	$5,%r11d
1245	xor	28(%rsp),%eax
1246	xor	%ebp,%ebx
1247	add	%r11d,%r12d
1248	xor	48(%rsp),%eax
1249	rol	$30,%esi
1250	add	%ebx,%r12d
1251	rol	$1,%eax
1252	lea	-0x359d3e2a(%eax,%ebp),%r11d
1253	mov	%esi,%ebx
1254	mov	%r12d,%ebp
1255	xor	%edx,%ebx
1256	rol	$5,%ebp
1257	xor	%edi,%ebx
1258	add	%ebp,%r11d
1259	rol	$30,%edx
1260	add	%ebx,%r11d
1261	/ Update and save state information in SHA-1 context
1262	add	0(%r8),%r11d
1263	add	4(%r8),%r12d
1264	add	8(%r8),%edx
1265	add	12(%r8),%esi
1266	add	16(%r8),%edi
1267	mov	%r11d,0(%r8)
1268	mov	%r12d,4(%r8)
1269	mov	%edx,8(%r8)
1270	mov	%esi,12(%r8)
1271	mov	%edi,16(%r8)
1272
1273	xchg	%r11d,%edx	# mov	%r11d,%edx
1274	xchg	%r12d,%esi	# mov	%r12d,%esi
1275	xchg	%r11d,%edi	# mov	%edx,%edi
1276	xchg	%r12d,%ebp	# mov	%esi,%ebp
1277			# mov	%edi,%r11d
1278	lea	64(%r9),%r9
1279	sub	$1,%r10
1280	jnz	.Lloop
1281	mov	64(%rsp),%rsp
1282	pop	%r12
1283	pop	%rbp
1284	pop	%rbx
1285	ret
1286SET_SIZE(sha1_block_data_order)
1287.asciz	"SHA1 block transform for x86_64, CRYPTOGAMS by <appro@openssl.org>"
1288
1289#endif /* lint || __lint */
1290