xref: /freebsd/sys/crypto/openssl/i386/crypt586.S (revision 2ad756a6)
1/* Do not modify. This file is auto-generated from crypt586.pl. */
2#ifdef PIC
3.text
4.globl	fcrypt_body
5.type	fcrypt_body,@function
6.align	16
7fcrypt_body:
8.L_fcrypt_body_begin:
9	#ifdef __CET__
10
11.byte	243,15,30,251
12	#endif
13
14	pushl	%ebp
15	pushl	%ebx
16	pushl	%esi
17	pushl	%edi
18
19
20	xorl	%edi,%edi
21	xorl	%esi,%esi
22	call	.L000PIC_me_up
23.L000PIC_me_up:
24	popl	%edx
25	leal	_GLOBAL_OFFSET_TABLE_+[.-.L000PIC_me_up](%edx),%edx
26	movl	DES_SPtrans@GOT(%edx),%edx
27	pushl	%edx
28	movl	28(%esp),%ebp
29	pushl	$25
30.L001start:
31
32
33	movl	36(%esp),%eax
34	movl	%esi,%edx
35	shrl	$16,%edx
36	movl	40(%esp),%ecx
37	xorl	%esi,%edx
38	andl	%edx,%eax
39	andl	%ecx,%edx
40	movl	%eax,%ebx
41	shll	$16,%ebx
42	movl	%edx,%ecx
43	shll	$16,%ecx
44	xorl	%ebx,%eax
45	xorl	%ecx,%edx
46	movl	(%ebp),%ebx
47	xorl	%ebx,%eax
48	movl	4(%ebp),%ecx
49	xorl	%esi,%eax
50	xorl	%esi,%edx
51	xorl	%ecx,%edx
52	andl	$0xfcfcfcfc,%eax
53	xorl	%ebx,%ebx
54	andl	$0xcfcfcfcf,%edx
55	xorl	%ecx,%ecx
56	movb	%al,%bl
57	movb	%ah,%cl
58	rorl	$4,%edx
59	movl	4(%esp),%ebp
60	xorl	(%ebp,%ebx,1),%edi
61	movb	%dl,%bl
62	xorl	0x200(%ebp,%ecx,1),%edi
63	movb	%dh,%cl
64	shrl	$16,%eax
65	xorl	0x100(%ebp,%ebx,1),%edi
66	movb	%ah,%bl
67	shrl	$16,%edx
68	xorl	0x300(%ebp,%ecx,1),%edi
69	movb	%dh,%cl
70	andl	$0xff,%eax
71	andl	$0xff,%edx
72	movl	0x600(%ebp,%ebx,1),%ebx
73	xorl	%ebx,%edi
74	movl	0x700(%ebp,%ecx,1),%ebx
75	xorl	%ebx,%edi
76	movl	0x400(%ebp,%eax,1),%ebx
77	xorl	%ebx,%edi
78	movl	0x500(%ebp,%edx,1),%ebx
79	xorl	%ebx,%edi
80	movl	32(%esp),%ebp
81
82
83	movl	36(%esp),%eax
84	movl	%edi,%edx
85	shrl	$16,%edx
86	movl	40(%esp),%ecx
87	xorl	%edi,%edx
88	andl	%edx,%eax
89	andl	%ecx,%edx
90	movl	%eax,%ebx
91	shll	$16,%ebx
92	movl	%edx,%ecx
93	shll	$16,%ecx
94	xorl	%ebx,%eax
95	xorl	%ecx,%edx
96	movl	8(%ebp),%ebx
97	xorl	%ebx,%eax
98	movl	12(%ebp),%ecx
99	xorl	%edi,%eax
100	xorl	%edi,%edx
101	xorl	%ecx,%edx
102	andl	$0xfcfcfcfc,%eax
103	xorl	%ebx,%ebx
104	andl	$0xcfcfcfcf,%edx
105	xorl	%ecx,%ecx
106	movb	%al,%bl
107	movb	%ah,%cl
108	rorl	$4,%edx
109	movl	4(%esp),%ebp
110	xorl	(%ebp,%ebx,1),%esi
111	movb	%dl,%bl
112	xorl	0x200(%ebp,%ecx,1),%esi
113	movb	%dh,%cl
114	shrl	$16,%eax
115	xorl	0x100(%ebp,%ebx,1),%esi
116	movb	%ah,%bl
117	shrl	$16,%edx
118	xorl	0x300(%ebp,%ecx,1),%esi
119	movb	%dh,%cl
120	andl	$0xff,%eax
121	andl	$0xff,%edx
122	movl	0x600(%ebp,%ebx,1),%ebx
123	xorl	%ebx,%esi
124	movl	0x700(%ebp,%ecx,1),%ebx
125	xorl	%ebx,%esi
126	movl	0x400(%ebp,%eax,1),%ebx
127	xorl	%ebx,%esi
128	movl	0x500(%ebp,%edx,1),%ebx
129	xorl	%ebx,%esi
130	movl	32(%esp),%ebp
131
132
133	movl	36(%esp),%eax
134	movl	%esi,%edx
135	shrl	$16,%edx
136	movl	40(%esp),%ecx
137	xorl	%esi,%edx
138	andl	%edx,%eax
139	andl	%ecx,%edx
140	movl	%eax,%ebx
141	shll	$16,%ebx
142	movl	%edx,%ecx
143	shll	$16,%ecx
144	xorl	%ebx,%eax
145	xorl	%ecx,%edx
146	movl	16(%ebp),%ebx
147	xorl	%ebx,%eax
148	movl	20(%ebp),%ecx
149	xorl	%esi,%eax
150	xorl	%esi,%edx
151	xorl	%ecx,%edx
152	andl	$0xfcfcfcfc,%eax
153	xorl	%ebx,%ebx
154	andl	$0xcfcfcfcf,%edx
155	xorl	%ecx,%ecx
156	movb	%al,%bl
157	movb	%ah,%cl
158	rorl	$4,%edx
159	movl	4(%esp),%ebp
160	xorl	(%ebp,%ebx,1),%edi
161	movb	%dl,%bl
162	xorl	0x200(%ebp,%ecx,1),%edi
163	movb	%dh,%cl
164	shrl	$16,%eax
165	xorl	0x100(%ebp,%ebx,1),%edi
166	movb	%ah,%bl
167	shrl	$16,%edx
168	xorl	0x300(%ebp,%ecx,1),%edi
169	movb	%dh,%cl
170	andl	$0xff,%eax
171	andl	$0xff,%edx
172	movl	0x600(%ebp,%ebx,1),%ebx
173	xorl	%ebx,%edi
174	movl	0x700(%ebp,%ecx,1),%ebx
175	xorl	%ebx,%edi
176	movl	0x400(%ebp,%eax,1),%ebx
177	xorl	%ebx,%edi
178	movl	0x500(%ebp,%edx,1),%ebx
179	xorl	%ebx,%edi
180	movl	32(%esp),%ebp
181
182
183	movl	36(%esp),%eax
184	movl	%edi,%edx
185	shrl	$16,%edx
186	movl	40(%esp),%ecx
187	xorl	%edi,%edx
188	andl	%edx,%eax
189	andl	%ecx,%edx
190	movl	%eax,%ebx
191	shll	$16,%ebx
192	movl	%edx,%ecx
193	shll	$16,%ecx
194	xorl	%ebx,%eax
195	xorl	%ecx,%edx
196	movl	24(%ebp),%ebx
197	xorl	%ebx,%eax
198	movl	28(%ebp),%ecx
199	xorl	%edi,%eax
200	xorl	%edi,%edx
201	xorl	%ecx,%edx
202	andl	$0xfcfcfcfc,%eax
203	xorl	%ebx,%ebx
204	andl	$0xcfcfcfcf,%edx
205	xorl	%ecx,%ecx
206	movb	%al,%bl
207	movb	%ah,%cl
208	rorl	$4,%edx
209	movl	4(%esp),%ebp
210	xorl	(%ebp,%ebx,1),%esi
211	movb	%dl,%bl
212	xorl	0x200(%ebp,%ecx,1),%esi
213	movb	%dh,%cl
214	shrl	$16,%eax
215	xorl	0x100(%ebp,%ebx,1),%esi
216	movb	%ah,%bl
217	shrl	$16,%edx
218	xorl	0x300(%ebp,%ecx,1),%esi
219	movb	%dh,%cl
220	andl	$0xff,%eax
221	andl	$0xff,%edx
222	movl	0x600(%ebp,%ebx,1),%ebx
223	xorl	%ebx,%esi
224	movl	0x700(%ebp,%ecx,1),%ebx
225	xorl	%ebx,%esi
226	movl	0x400(%ebp,%eax,1),%ebx
227	xorl	%ebx,%esi
228	movl	0x500(%ebp,%edx,1),%ebx
229	xorl	%ebx,%esi
230	movl	32(%esp),%ebp
231
232
233	movl	36(%esp),%eax
234	movl	%esi,%edx
235	shrl	$16,%edx
236	movl	40(%esp),%ecx
237	xorl	%esi,%edx
238	andl	%edx,%eax
239	andl	%ecx,%edx
240	movl	%eax,%ebx
241	shll	$16,%ebx
242	movl	%edx,%ecx
243	shll	$16,%ecx
244	xorl	%ebx,%eax
245	xorl	%ecx,%edx
246	movl	32(%ebp),%ebx
247	xorl	%ebx,%eax
248	movl	36(%ebp),%ecx
249	xorl	%esi,%eax
250	xorl	%esi,%edx
251	xorl	%ecx,%edx
252	andl	$0xfcfcfcfc,%eax
253	xorl	%ebx,%ebx
254	andl	$0xcfcfcfcf,%edx
255	xorl	%ecx,%ecx
256	movb	%al,%bl
257	movb	%ah,%cl
258	rorl	$4,%edx
259	movl	4(%esp),%ebp
260	xorl	(%ebp,%ebx,1),%edi
261	movb	%dl,%bl
262	xorl	0x200(%ebp,%ecx,1),%edi
263	movb	%dh,%cl
264	shrl	$16,%eax
265	xorl	0x100(%ebp,%ebx,1),%edi
266	movb	%ah,%bl
267	shrl	$16,%edx
268	xorl	0x300(%ebp,%ecx,1),%edi
269	movb	%dh,%cl
270	andl	$0xff,%eax
271	andl	$0xff,%edx
272	movl	0x600(%ebp,%ebx,1),%ebx
273	xorl	%ebx,%edi
274	movl	0x700(%ebp,%ecx,1),%ebx
275	xorl	%ebx,%edi
276	movl	0x400(%ebp,%eax,1),%ebx
277	xorl	%ebx,%edi
278	movl	0x500(%ebp,%edx,1),%ebx
279	xorl	%ebx,%edi
280	movl	32(%esp),%ebp
281
282
283	movl	36(%esp),%eax
284	movl	%edi,%edx
285	shrl	$16,%edx
286	movl	40(%esp),%ecx
287	xorl	%edi,%edx
288	andl	%edx,%eax
289	andl	%ecx,%edx
290	movl	%eax,%ebx
291	shll	$16,%ebx
292	movl	%edx,%ecx
293	shll	$16,%ecx
294	xorl	%ebx,%eax
295	xorl	%ecx,%edx
296	movl	40(%ebp),%ebx
297	xorl	%ebx,%eax
298	movl	44(%ebp),%ecx
299	xorl	%edi,%eax
300	xorl	%edi,%edx
301	xorl	%ecx,%edx
302	andl	$0xfcfcfcfc,%eax
303	xorl	%ebx,%ebx
304	andl	$0xcfcfcfcf,%edx
305	xorl	%ecx,%ecx
306	movb	%al,%bl
307	movb	%ah,%cl
308	rorl	$4,%edx
309	movl	4(%esp),%ebp
310	xorl	(%ebp,%ebx,1),%esi
311	movb	%dl,%bl
312	xorl	0x200(%ebp,%ecx,1),%esi
313	movb	%dh,%cl
314	shrl	$16,%eax
315	xorl	0x100(%ebp,%ebx,1),%esi
316	movb	%ah,%bl
317	shrl	$16,%edx
318	xorl	0x300(%ebp,%ecx,1),%esi
319	movb	%dh,%cl
320	andl	$0xff,%eax
321	andl	$0xff,%edx
322	movl	0x600(%ebp,%ebx,1),%ebx
323	xorl	%ebx,%esi
324	movl	0x700(%ebp,%ecx,1),%ebx
325	xorl	%ebx,%esi
326	movl	0x400(%ebp,%eax,1),%ebx
327	xorl	%ebx,%esi
328	movl	0x500(%ebp,%edx,1),%ebx
329	xorl	%ebx,%esi
330	movl	32(%esp),%ebp
331
332
333	movl	36(%esp),%eax
334	movl	%esi,%edx
335	shrl	$16,%edx
336	movl	40(%esp),%ecx
337	xorl	%esi,%edx
338	andl	%edx,%eax
339	andl	%ecx,%edx
340	movl	%eax,%ebx
341	shll	$16,%ebx
342	movl	%edx,%ecx
343	shll	$16,%ecx
344	xorl	%ebx,%eax
345	xorl	%ecx,%edx
346	movl	48(%ebp),%ebx
347	xorl	%ebx,%eax
348	movl	52(%ebp),%ecx
349	xorl	%esi,%eax
350	xorl	%esi,%edx
351	xorl	%ecx,%edx
352	andl	$0xfcfcfcfc,%eax
353	xorl	%ebx,%ebx
354	andl	$0xcfcfcfcf,%edx
355	xorl	%ecx,%ecx
356	movb	%al,%bl
357	movb	%ah,%cl
358	rorl	$4,%edx
359	movl	4(%esp),%ebp
360	xorl	(%ebp,%ebx,1),%edi
361	movb	%dl,%bl
362	xorl	0x200(%ebp,%ecx,1),%edi
363	movb	%dh,%cl
364	shrl	$16,%eax
365	xorl	0x100(%ebp,%ebx,1),%edi
366	movb	%ah,%bl
367	shrl	$16,%edx
368	xorl	0x300(%ebp,%ecx,1),%edi
369	movb	%dh,%cl
370	andl	$0xff,%eax
371	andl	$0xff,%edx
372	movl	0x600(%ebp,%ebx,1),%ebx
373	xorl	%ebx,%edi
374	movl	0x700(%ebp,%ecx,1),%ebx
375	xorl	%ebx,%edi
376	movl	0x400(%ebp,%eax,1),%ebx
377	xorl	%ebx,%edi
378	movl	0x500(%ebp,%edx,1),%ebx
379	xorl	%ebx,%edi
380	movl	32(%esp),%ebp
381
382
383	movl	36(%esp),%eax
384	movl	%edi,%edx
385	shrl	$16,%edx
386	movl	40(%esp),%ecx
387	xorl	%edi,%edx
388	andl	%edx,%eax
389	andl	%ecx,%edx
390	movl	%eax,%ebx
391	shll	$16,%ebx
392	movl	%edx,%ecx
393	shll	$16,%ecx
394	xorl	%ebx,%eax
395	xorl	%ecx,%edx
396	movl	56(%ebp),%ebx
397	xorl	%ebx,%eax
398	movl	60(%ebp),%ecx
399	xorl	%edi,%eax
400	xorl	%edi,%edx
401	xorl	%ecx,%edx
402	andl	$0xfcfcfcfc,%eax
403	xorl	%ebx,%ebx
404	andl	$0xcfcfcfcf,%edx
405	xorl	%ecx,%ecx
406	movb	%al,%bl
407	movb	%ah,%cl
408	rorl	$4,%edx
409	movl	4(%esp),%ebp
410	xorl	(%ebp,%ebx,1),%esi
411	movb	%dl,%bl
412	xorl	0x200(%ebp,%ecx,1),%esi
413	movb	%dh,%cl
414	shrl	$16,%eax
415	xorl	0x100(%ebp,%ebx,1),%esi
416	movb	%ah,%bl
417	shrl	$16,%edx
418	xorl	0x300(%ebp,%ecx,1),%esi
419	movb	%dh,%cl
420	andl	$0xff,%eax
421	andl	$0xff,%edx
422	movl	0x600(%ebp,%ebx,1),%ebx
423	xorl	%ebx,%esi
424	movl	0x700(%ebp,%ecx,1),%ebx
425	xorl	%ebx,%esi
426	movl	0x400(%ebp,%eax,1),%ebx
427	xorl	%ebx,%esi
428	movl	0x500(%ebp,%edx,1),%ebx
429	xorl	%ebx,%esi
430	movl	32(%esp),%ebp
431
432
433	movl	36(%esp),%eax
434	movl	%esi,%edx
435	shrl	$16,%edx
436	movl	40(%esp),%ecx
437	xorl	%esi,%edx
438	andl	%edx,%eax
439	andl	%ecx,%edx
440	movl	%eax,%ebx
441	shll	$16,%ebx
442	movl	%edx,%ecx
443	shll	$16,%ecx
444	xorl	%ebx,%eax
445	xorl	%ecx,%edx
446	movl	64(%ebp),%ebx
447	xorl	%ebx,%eax
448	movl	68(%ebp),%ecx
449	xorl	%esi,%eax
450	xorl	%esi,%edx
451	xorl	%ecx,%edx
452	andl	$0xfcfcfcfc,%eax
453	xorl	%ebx,%ebx
454	andl	$0xcfcfcfcf,%edx
455	xorl	%ecx,%ecx
456	movb	%al,%bl
457	movb	%ah,%cl
458	rorl	$4,%edx
459	movl	4(%esp),%ebp
460	xorl	(%ebp,%ebx,1),%edi
461	movb	%dl,%bl
462	xorl	0x200(%ebp,%ecx,1),%edi
463	movb	%dh,%cl
464	shrl	$16,%eax
465	xorl	0x100(%ebp,%ebx,1),%edi
466	movb	%ah,%bl
467	shrl	$16,%edx
468	xorl	0x300(%ebp,%ecx,1),%edi
469	movb	%dh,%cl
470	andl	$0xff,%eax
471	andl	$0xff,%edx
472	movl	0x600(%ebp,%ebx,1),%ebx
473	xorl	%ebx,%edi
474	movl	0x700(%ebp,%ecx,1),%ebx
475	xorl	%ebx,%edi
476	movl	0x400(%ebp,%eax,1),%ebx
477	xorl	%ebx,%edi
478	movl	0x500(%ebp,%edx,1),%ebx
479	xorl	%ebx,%edi
480	movl	32(%esp),%ebp
481
482
483	movl	36(%esp),%eax
484	movl	%edi,%edx
485	shrl	$16,%edx
486	movl	40(%esp),%ecx
487	xorl	%edi,%edx
488	andl	%edx,%eax
489	andl	%ecx,%edx
490	movl	%eax,%ebx
491	shll	$16,%ebx
492	movl	%edx,%ecx
493	shll	$16,%ecx
494	xorl	%ebx,%eax
495	xorl	%ecx,%edx
496	movl	72(%ebp),%ebx
497	xorl	%ebx,%eax
498	movl	76(%ebp),%ecx
499	xorl	%edi,%eax
500	xorl	%edi,%edx
501	xorl	%ecx,%edx
502	andl	$0xfcfcfcfc,%eax
503	xorl	%ebx,%ebx
504	andl	$0xcfcfcfcf,%edx
505	xorl	%ecx,%ecx
506	movb	%al,%bl
507	movb	%ah,%cl
508	rorl	$4,%edx
509	movl	4(%esp),%ebp
510	xorl	(%ebp,%ebx,1),%esi
511	movb	%dl,%bl
512	xorl	0x200(%ebp,%ecx,1),%esi
513	movb	%dh,%cl
514	shrl	$16,%eax
515	xorl	0x100(%ebp,%ebx,1),%esi
516	movb	%ah,%bl
517	shrl	$16,%edx
518	xorl	0x300(%ebp,%ecx,1),%esi
519	movb	%dh,%cl
520	andl	$0xff,%eax
521	andl	$0xff,%edx
522	movl	0x600(%ebp,%ebx,1),%ebx
523	xorl	%ebx,%esi
524	movl	0x700(%ebp,%ecx,1),%ebx
525	xorl	%ebx,%esi
526	movl	0x400(%ebp,%eax,1),%ebx
527	xorl	%ebx,%esi
528	movl	0x500(%ebp,%edx,1),%ebx
529	xorl	%ebx,%esi
530	movl	32(%esp),%ebp
531
532
533	movl	36(%esp),%eax
534	movl	%esi,%edx
535	shrl	$16,%edx
536	movl	40(%esp),%ecx
537	xorl	%esi,%edx
538	andl	%edx,%eax
539	andl	%ecx,%edx
540	movl	%eax,%ebx
541	shll	$16,%ebx
542	movl	%edx,%ecx
543	shll	$16,%ecx
544	xorl	%ebx,%eax
545	xorl	%ecx,%edx
546	movl	80(%ebp),%ebx
547	xorl	%ebx,%eax
548	movl	84(%ebp),%ecx
549	xorl	%esi,%eax
550	xorl	%esi,%edx
551	xorl	%ecx,%edx
552	andl	$0xfcfcfcfc,%eax
553	xorl	%ebx,%ebx
554	andl	$0xcfcfcfcf,%edx
555	xorl	%ecx,%ecx
556	movb	%al,%bl
557	movb	%ah,%cl
558	rorl	$4,%edx
559	movl	4(%esp),%ebp
560	xorl	(%ebp,%ebx,1),%edi
561	movb	%dl,%bl
562	xorl	0x200(%ebp,%ecx,1),%edi
563	movb	%dh,%cl
564	shrl	$16,%eax
565	xorl	0x100(%ebp,%ebx,1),%edi
566	movb	%ah,%bl
567	shrl	$16,%edx
568	xorl	0x300(%ebp,%ecx,1),%edi
569	movb	%dh,%cl
570	andl	$0xff,%eax
571	andl	$0xff,%edx
572	movl	0x600(%ebp,%ebx,1),%ebx
573	xorl	%ebx,%edi
574	movl	0x700(%ebp,%ecx,1),%ebx
575	xorl	%ebx,%edi
576	movl	0x400(%ebp,%eax,1),%ebx
577	xorl	%ebx,%edi
578	movl	0x500(%ebp,%edx,1),%ebx
579	xorl	%ebx,%edi
580	movl	32(%esp),%ebp
581
582
583	movl	36(%esp),%eax
584	movl	%edi,%edx
585	shrl	$16,%edx
586	movl	40(%esp),%ecx
587	xorl	%edi,%edx
588	andl	%edx,%eax
589	andl	%ecx,%edx
590	movl	%eax,%ebx
591	shll	$16,%ebx
592	movl	%edx,%ecx
593	shll	$16,%ecx
594	xorl	%ebx,%eax
595	xorl	%ecx,%edx
596	movl	88(%ebp),%ebx
597	xorl	%ebx,%eax
598	movl	92(%ebp),%ecx
599	xorl	%edi,%eax
600	xorl	%edi,%edx
601	xorl	%ecx,%edx
602	andl	$0xfcfcfcfc,%eax
603	xorl	%ebx,%ebx
604	andl	$0xcfcfcfcf,%edx
605	xorl	%ecx,%ecx
606	movb	%al,%bl
607	movb	%ah,%cl
608	rorl	$4,%edx
609	movl	4(%esp),%ebp
610	xorl	(%ebp,%ebx,1),%esi
611	movb	%dl,%bl
612	xorl	0x200(%ebp,%ecx,1),%esi
613	movb	%dh,%cl
614	shrl	$16,%eax
615	xorl	0x100(%ebp,%ebx,1),%esi
616	movb	%ah,%bl
617	shrl	$16,%edx
618	xorl	0x300(%ebp,%ecx,1),%esi
619	movb	%dh,%cl
620	andl	$0xff,%eax
621	andl	$0xff,%edx
622	movl	0x600(%ebp,%ebx,1),%ebx
623	xorl	%ebx,%esi
624	movl	0x700(%ebp,%ecx,1),%ebx
625	xorl	%ebx,%esi
626	movl	0x400(%ebp,%eax,1),%ebx
627	xorl	%ebx,%esi
628	movl	0x500(%ebp,%edx,1),%ebx
629	xorl	%ebx,%esi
630	movl	32(%esp),%ebp
631
632
633	movl	36(%esp),%eax
634	movl	%esi,%edx
635	shrl	$16,%edx
636	movl	40(%esp),%ecx
637	xorl	%esi,%edx
638	andl	%edx,%eax
639	andl	%ecx,%edx
640	movl	%eax,%ebx
641	shll	$16,%ebx
642	movl	%edx,%ecx
643	shll	$16,%ecx
644	xorl	%ebx,%eax
645	xorl	%ecx,%edx
646	movl	96(%ebp),%ebx
647	xorl	%ebx,%eax
648	movl	100(%ebp),%ecx
649	xorl	%esi,%eax
650	xorl	%esi,%edx
651	xorl	%ecx,%edx
652	andl	$0xfcfcfcfc,%eax
653	xorl	%ebx,%ebx
654	andl	$0xcfcfcfcf,%edx
655	xorl	%ecx,%ecx
656	movb	%al,%bl
657	movb	%ah,%cl
658	rorl	$4,%edx
659	movl	4(%esp),%ebp
660	xorl	(%ebp,%ebx,1),%edi
661	movb	%dl,%bl
662	xorl	0x200(%ebp,%ecx,1),%edi
663	movb	%dh,%cl
664	shrl	$16,%eax
665	xorl	0x100(%ebp,%ebx,1),%edi
666	movb	%ah,%bl
667	shrl	$16,%edx
668	xorl	0x300(%ebp,%ecx,1),%edi
669	movb	%dh,%cl
670	andl	$0xff,%eax
671	andl	$0xff,%edx
672	movl	0x600(%ebp,%ebx,1),%ebx
673	xorl	%ebx,%edi
674	movl	0x700(%ebp,%ecx,1),%ebx
675	xorl	%ebx,%edi
676	movl	0x400(%ebp,%eax,1),%ebx
677	xorl	%ebx,%edi
678	movl	0x500(%ebp,%edx,1),%ebx
679	xorl	%ebx,%edi
680	movl	32(%esp),%ebp
681
682
683	movl	36(%esp),%eax
684	movl	%edi,%edx
685	shrl	$16,%edx
686	movl	40(%esp),%ecx
687	xorl	%edi,%edx
688	andl	%edx,%eax
689	andl	%ecx,%edx
690	movl	%eax,%ebx
691	shll	$16,%ebx
692	movl	%edx,%ecx
693	shll	$16,%ecx
694	xorl	%ebx,%eax
695	xorl	%ecx,%edx
696	movl	104(%ebp),%ebx
697	xorl	%ebx,%eax
698	movl	108(%ebp),%ecx
699	xorl	%edi,%eax
700	xorl	%edi,%edx
701	xorl	%ecx,%edx
702	andl	$0xfcfcfcfc,%eax
703	xorl	%ebx,%ebx
704	andl	$0xcfcfcfcf,%edx
705	xorl	%ecx,%ecx
706	movb	%al,%bl
707	movb	%ah,%cl
708	rorl	$4,%edx
709	movl	4(%esp),%ebp
710	xorl	(%ebp,%ebx,1),%esi
711	movb	%dl,%bl
712	xorl	0x200(%ebp,%ecx,1),%esi
713	movb	%dh,%cl
714	shrl	$16,%eax
715	xorl	0x100(%ebp,%ebx,1),%esi
716	movb	%ah,%bl
717	shrl	$16,%edx
718	xorl	0x300(%ebp,%ecx,1),%esi
719	movb	%dh,%cl
720	andl	$0xff,%eax
721	andl	$0xff,%edx
722	movl	0x600(%ebp,%ebx,1),%ebx
723	xorl	%ebx,%esi
724	movl	0x700(%ebp,%ecx,1),%ebx
725	xorl	%ebx,%esi
726	movl	0x400(%ebp,%eax,1),%ebx
727	xorl	%ebx,%esi
728	movl	0x500(%ebp,%edx,1),%ebx
729	xorl	%ebx,%esi
730	movl	32(%esp),%ebp
731
732
733	movl	36(%esp),%eax
734	movl	%esi,%edx
735	shrl	$16,%edx
736	movl	40(%esp),%ecx
737	xorl	%esi,%edx
738	andl	%edx,%eax
739	andl	%ecx,%edx
740	movl	%eax,%ebx
741	shll	$16,%ebx
742	movl	%edx,%ecx
743	shll	$16,%ecx
744	xorl	%ebx,%eax
745	xorl	%ecx,%edx
746	movl	112(%ebp),%ebx
747	xorl	%ebx,%eax
748	movl	116(%ebp),%ecx
749	xorl	%esi,%eax
750	xorl	%esi,%edx
751	xorl	%ecx,%edx
752	andl	$0xfcfcfcfc,%eax
753	xorl	%ebx,%ebx
754	andl	$0xcfcfcfcf,%edx
755	xorl	%ecx,%ecx
756	movb	%al,%bl
757	movb	%ah,%cl
758	rorl	$4,%edx
759	movl	4(%esp),%ebp
760	xorl	(%ebp,%ebx,1),%edi
761	movb	%dl,%bl
762	xorl	0x200(%ebp,%ecx,1),%edi
763	movb	%dh,%cl
764	shrl	$16,%eax
765	xorl	0x100(%ebp,%ebx,1),%edi
766	movb	%ah,%bl
767	shrl	$16,%edx
768	xorl	0x300(%ebp,%ecx,1),%edi
769	movb	%dh,%cl
770	andl	$0xff,%eax
771	andl	$0xff,%edx
772	movl	0x600(%ebp,%ebx,1),%ebx
773	xorl	%ebx,%edi
774	movl	0x700(%ebp,%ecx,1),%ebx
775	xorl	%ebx,%edi
776	movl	0x400(%ebp,%eax,1),%ebx
777	xorl	%ebx,%edi
778	movl	0x500(%ebp,%edx,1),%ebx
779	xorl	%ebx,%edi
780	movl	32(%esp),%ebp
781
782
783	movl	36(%esp),%eax
784	movl	%edi,%edx
785	shrl	$16,%edx
786	movl	40(%esp),%ecx
787	xorl	%edi,%edx
788	andl	%edx,%eax
789	andl	%ecx,%edx
790	movl	%eax,%ebx
791	shll	$16,%ebx
792	movl	%edx,%ecx
793	shll	$16,%ecx
794	xorl	%ebx,%eax
795	xorl	%ecx,%edx
796	movl	120(%ebp),%ebx
797	xorl	%ebx,%eax
798	movl	124(%ebp),%ecx
799	xorl	%edi,%eax
800	xorl	%edi,%edx
801	xorl	%ecx,%edx
802	andl	$0xfcfcfcfc,%eax
803	xorl	%ebx,%ebx
804	andl	$0xcfcfcfcf,%edx
805	xorl	%ecx,%ecx
806	movb	%al,%bl
807	movb	%ah,%cl
808	rorl	$4,%edx
809	movl	4(%esp),%ebp
810	xorl	(%ebp,%ebx,1),%esi
811	movb	%dl,%bl
812	xorl	0x200(%ebp,%ecx,1),%esi
813	movb	%dh,%cl
814	shrl	$16,%eax
815	xorl	0x100(%ebp,%ebx,1),%esi
816	movb	%ah,%bl
817	shrl	$16,%edx
818	xorl	0x300(%ebp,%ecx,1),%esi
819	movb	%dh,%cl
820	andl	$0xff,%eax
821	andl	$0xff,%edx
822	movl	0x600(%ebp,%ebx,1),%ebx
823	xorl	%ebx,%esi
824	movl	0x700(%ebp,%ecx,1),%ebx
825	xorl	%ebx,%esi
826	movl	0x400(%ebp,%eax,1),%ebx
827	xorl	%ebx,%esi
828	movl	0x500(%ebp,%edx,1),%ebx
829	xorl	%ebx,%esi
830	movl	32(%esp),%ebp
831	movl	(%esp),%ebx
832	movl	%edi,%eax
833	decl	%ebx
834	movl	%esi,%edi
835	movl	%eax,%esi
836	movl	%ebx,(%esp)
837	jnz	.L001start
838
839
840	movl	28(%esp),%edx
841	rorl	$1,%edi
842	movl	%esi,%eax
843	xorl	%edi,%esi
844	andl	$0xaaaaaaaa,%esi
845	xorl	%esi,%eax
846	xorl	%esi,%edi
847
848	roll	$23,%eax
849	movl	%eax,%esi
850	xorl	%edi,%eax
851	andl	$0x03fc03fc,%eax
852	xorl	%eax,%esi
853	xorl	%eax,%edi
854
855	roll	$10,%esi
856	movl	%esi,%eax
857	xorl	%edi,%esi
858	andl	$0x33333333,%esi
859	xorl	%esi,%eax
860	xorl	%esi,%edi
861
862	roll	$18,%edi
863	movl	%edi,%esi
864	xorl	%eax,%edi
865	andl	$0xfff0000f,%edi
866	xorl	%edi,%esi
867	xorl	%edi,%eax
868
869	roll	$12,%esi
870	movl	%esi,%edi
871	xorl	%eax,%esi
872	andl	$0xf0f0f0f0,%esi
873	xorl	%esi,%edi
874	xorl	%esi,%eax
875
876	rorl	$4,%eax
877	movl	%eax,(%edx)
878	movl	%edi,4(%edx)
879	addl	$8,%esp
880	popl	%edi
881	popl	%esi
882	popl	%ebx
883	popl	%ebp
884	ret
885.size	fcrypt_body,.-.L_fcrypt_body_begin
886
887	.section ".note.gnu.property", "a"
888	.p2align 2
889	.long 1f - 0f
890	.long 4f - 1f
891	.long 5
8920:
893	.asciz "GNU"
8941:
895	.p2align 2
896	.long 0xc0000002
897	.long 3f - 2f
8982:
899	.long 3
9003:
901	.p2align 2
9024:
903#else
904.text
905.globl	fcrypt_body
906.type	fcrypt_body,@function
907.align	16
908fcrypt_body:
909.L_fcrypt_body_begin:
910	#ifdef __CET__
911
912.byte	243,15,30,251
913	#endif
914
915	pushl	%ebp
916	pushl	%ebx
917	pushl	%esi
918	pushl	%edi
919
920
921	xorl	%edi,%edi
922	xorl	%esi,%esi
923	leal	DES_SPtrans,%edx
924	pushl	%edx
925	movl	28(%esp),%ebp
926	pushl	$25
927.L000start:
928
929
930	movl	36(%esp),%eax
931	movl	%esi,%edx
932	shrl	$16,%edx
933	movl	40(%esp),%ecx
934	xorl	%esi,%edx
935	andl	%edx,%eax
936	andl	%ecx,%edx
937	movl	%eax,%ebx
938	shll	$16,%ebx
939	movl	%edx,%ecx
940	shll	$16,%ecx
941	xorl	%ebx,%eax
942	xorl	%ecx,%edx
943	movl	(%ebp),%ebx
944	xorl	%ebx,%eax
945	movl	4(%ebp),%ecx
946	xorl	%esi,%eax
947	xorl	%esi,%edx
948	xorl	%ecx,%edx
949	andl	$0xfcfcfcfc,%eax
950	xorl	%ebx,%ebx
951	andl	$0xcfcfcfcf,%edx
952	xorl	%ecx,%ecx
953	movb	%al,%bl
954	movb	%ah,%cl
955	rorl	$4,%edx
956	movl	4(%esp),%ebp
957	xorl	(%ebp,%ebx,1),%edi
958	movb	%dl,%bl
959	xorl	0x200(%ebp,%ecx,1),%edi
960	movb	%dh,%cl
961	shrl	$16,%eax
962	xorl	0x100(%ebp,%ebx,1),%edi
963	movb	%ah,%bl
964	shrl	$16,%edx
965	xorl	0x300(%ebp,%ecx,1),%edi
966	movb	%dh,%cl
967	andl	$0xff,%eax
968	andl	$0xff,%edx
969	movl	0x600(%ebp,%ebx,1),%ebx
970	xorl	%ebx,%edi
971	movl	0x700(%ebp,%ecx,1),%ebx
972	xorl	%ebx,%edi
973	movl	0x400(%ebp,%eax,1),%ebx
974	xorl	%ebx,%edi
975	movl	0x500(%ebp,%edx,1),%ebx
976	xorl	%ebx,%edi
977	movl	32(%esp),%ebp
978
979
980	movl	36(%esp),%eax
981	movl	%edi,%edx
982	shrl	$16,%edx
983	movl	40(%esp),%ecx
984	xorl	%edi,%edx
985	andl	%edx,%eax
986	andl	%ecx,%edx
987	movl	%eax,%ebx
988	shll	$16,%ebx
989	movl	%edx,%ecx
990	shll	$16,%ecx
991	xorl	%ebx,%eax
992	xorl	%ecx,%edx
993	movl	8(%ebp),%ebx
994	xorl	%ebx,%eax
995	movl	12(%ebp),%ecx
996	xorl	%edi,%eax
997	xorl	%edi,%edx
998	xorl	%ecx,%edx
999	andl	$0xfcfcfcfc,%eax
1000	xorl	%ebx,%ebx
1001	andl	$0xcfcfcfcf,%edx
1002	xorl	%ecx,%ecx
1003	movb	%al,%bl
1004	movb	%ah,%cl
1005	rorl	$4,%edx
1006	movl	4(%esp),%ebp
1007	xorl	(%ebp,%ebx,1),%esi
1008	movb	%dl,%bl
1009	xorl	0x200(%ebp,%ecx,1),%esi
1010	movb	%dh,%cl
1011	shrl	$16,%eax
1012	xorl	0x100(%ebp,%ebx,1),%esi
1013	movb	%ah,%bl
1014	shrl	$16,%edx
1015	xorl	0x300(%ebp,%ecx,1),%esi
1016	movb	%dh,%cl
1017	andl	$0xff,%eax
1018	andl	$0xff,%edx
1019	movl	0x600(%ebp,%ebx,1),%ebx
1020	xorl	%ebx,%esi
1021	movl	0x700(%ebp,%ecx,1),%ebx
1022	xorl	%ebx,%esi
1023	movl	0x400(%ebp,%eax,1),%ebx
1024	xorl	%ebx,%esi
1025	movl	0x500(%ebp,%edx,1),%ebx
1026	xorl	%ebx,%esi
1027	movl	32(%esp),%ebp
1028
1029
1030	movl	36(%esp),%eax
1031	movl	%esi,%edx
1032	shrl	$16,%edx
1033	movl	40(%esp),%ecx
1034	xorl	%esi,%edx
1035	andl	%edx,%eax
1036	andl	%ecx,%edx
1037	movl	%eax,%ebx
1038	shll	$16,%ebx
1039	movl	%edx,%ecx
1040	shll	$16,%ecx
1041	xorl	%ebx,%eax
1042	xorl	%ecx,%edx
1043	movl	16(%ebp),%ebx
1044	xorl	%ebx,%eax
1045	movl	20(%ebp),%ecx
1046	xorl	%esi,%eax
1047	xorl	%esi,%edx
1048	xorl	%ecx,%edx
1049	andl	$0xfcfcfcfc,%eax
1050	xorl	%ebx,%ebx
1051	andl	$0xcfcfcfcf,%edx
1052	xorl	%ecx,%ecx
1053	movb	%al,%bl
1054	movb	%ah,%cl
1055	rorl	$4,%edx
1056	movl	4(%esp),%ebp
1057	xorl	(%ebp,%ebx,1),%edi
1058	movb	%dl,%bl
1059	xorl	0x200(%ebp,%ecx,1),%edi
1060	movb	%dh,%cl
1061	shrl	$16,%eax
1062	xorl	0x100(%ebp,%ebx,1),%edi
1063	movb	%ah,%bl
1064	shrl	$16,%edx
1065	xorl	0x300(%ebp,%ecx,1),%edi
1066	movb	%dh,%cl
1067	andl	$0xff,%eax
1068	andl	$0xff,%edx
1069	movl	0x600(%ebp,%ebx,1),%ebx
1070	xorl	%ebx,%edi
1071	movl	0x700(%ebp,%ecx,1),%ebx
1072	xorl	%ebx,%edi
1073	movl	0x400(%ebp,%eax,1),%ebx
1074	xorl	%ebx,%edi
1075	movl	0x500(%ebp,%edx,1),%ebx
1076	xorl	%ebx,%edi
1077	movl	32(%esp),%ebp
1078
1079
1080	movl	36(%esp),%eax
1081	movl	%edi,%edx
1082	shrl	$16,%edx
1083	movl	40(%esp),%ecx
1084	xorl	%edi,%edx
1085	andl	%edx,%eax
1086	andl	%ecx,%edx
1087	movl	%eax,%ebx
1088	shll	$16,%ebx
1089	movl	%edx,%ecx
1090	shll	$16,%ecx
1091	xorl	%ebx,%eax
1092	xorl	%ecx,%edx
1093	movl	24(%ebp),%ebx
1094	xorl	%ebx,%eax
1095	movl	28(%ebp),%ecx
1096	xorl	%edi,%eax
1097	xorl	%edi,%edx
1098	xorl	%ecx,%edx
1099	andl	$0xfcfcfcfc,%eax
1100	xorl	%ebx,%ebx
1101	andl	$0xcfcfcfcf,%edx
1102	xorl	%ecx,%ecx
1103	movb	%al,%bl
1104	movb	%ah,%cl
1105	rorl	$4,%edx
1106	movl	4(%esp),%ebp
1107	xorl	(%ebp,%ebx,1),%esi
1108	movb	%dl,%bl
1109	xorl	0x200(%ebp,%ecx,1),%esi
1110	movb	%dh,%cl
1111	shrl	$16,%eax
1112	xorl	0x100(%ebp,%ebx,1),%esi
1113	movb	%ah,%bl
1114	shrl	$16,%edx
1115	xorl	0x300(%ebp,%ecx,1),%esi
1116	movb	%dh,%cl
1117	andl	$0xff,%eax
1118	andl	$0xff,%edx
1119	movl	0x600(%ebp,%ebx,1),%ebx
1120	xorl	%ebx,%esi
1121	movl	0x700(%ebp,%ecx,1),%ebx
1122	xorl	%ebx,%esi
1123	movl	0x400(%ebp,%eax,1),%ebx
1124	xorl	%ebx,%esi
1125	movl	0x500(%ebp,%edx,1),%ebx
1126	xorl	%ebx,%esi
1127	movl	32(%esp),%ebp
1128
1129
1130	movl	36(%esp),%eax
1131	movl	%esi,%edx
1132	shrl	$16,%edx
1133	movl	40(%esp),%ecx
1134	xorl	%esi,%edx
1135	andl	%edx,%eax
1136	andl	%ecx,%edx
1137	movl	%eax,%ebx
1138	shll	$16,%ebx
1139	movl	%edx,%ecx
1140	shll	$16,%ecx
1141	xorl	%ebx,%eax
1142	xorl	%ecx,%edx
1143	movl	32(%ebp),%ebx
1144	xorl	%ebx,%eax
1145	movl	36(%ebp),%ecx
1146	xorl	%esi,%eax
1147	xorl	%esi,%edx
1148	xorl	%ecx,%edx
1149	andl	$0xfcfcfcfc,%eax
1150	xorl	%ebx,%ebx
1151	andl	$0xcfcfcfcf,%edx
1152	xorl	%ecx,%ecx
1153	movb	%al,%bl
1154	movb	%ah,%cl
1155	rorl	$4,%edx
1156	movl	4(%esp),%ebp
1157	xorl	(%ebp,%ebx,1),%edi
1158	movb	%dl,%bl
1159	xorl	0x200(%ebp,%ecx,1),%edi
1160	movb	%dh,%cl
1161	shrl	$16,%eax
1162	xorl	0x100(%ebp,%ebx,1),%edi
1163	movb	%ah,%bl
1164	shrl	$16,%edx
1165	xorl	0x300(%ebp,%ecx,1),%edi
1166	movb	%dh,%cl
1167	andl	$0xff,%eax
1168	andl	$0xff,%edx
1169	movl	0x600(%ebp,%ebx,1),%ebx
1170	xorl	%ebx,%edi
1171	movl	0x700(%ebp,%ecx,1),%ebx
1172	xorl	%ebx,%edi
1173	movl	0x400(%ebp,%eax,1),%ebx
1174	xorl	%ebx,%edi
1175	movl	0x500(%ebp,%edx,1),%ebx
1176	xorl	%ebx,%edi
1177	movl	32(%esp),%ebp
1178
1179
1180	movl	36(%esp),%eax
1181	movl	%edi,%edx
1182	shrl	$16,%edx
1183	movl	40(%esp),%ecx
1184	xorl	%edi,%edx
1185	andl	%edx,%eax
1186	andl	%ecx,%edx
1187	movl	%eax,%ebx
1188	shll	$16,%ebx
1189	movl	%edx,%ecx
1190	shll	$16,%ecx
1191	xorl	%ebx,%eax
1192	xorl	%ecx,%edx
1193	movl	40(%ebp),%ebx
1194	xorl	%ebx,%eax
1195	movl	44(%ebp),%ecx
1196	xorl	%edi,%eax
1197	xorl	%edi,%edx
1198	xorl	%ecx,%edx
1199	andl	$0xfcfcfcfc,%eax
1200	xorl	%ebx,%ebx
1201	andl	$0xcfcfcfcf,%edx
1202	xorl	%ecx,%ecx
1203	movb	%al,%bl
1204	movb	%ah,%cl
1205	rorl	$4,%edx
1206	movl	4(%esp),%ebp
1207	xorl	(%ebp,%ebx,1),%esi
1208	movb	%dl,%bl
1209	xorl	0x200(%ebp,%ecx,1),%esi
1210	movb	%dh,%cl
1211	shrl	$16,%eax
1212	xorl	0x100(%ebp,%ebx,1),%esi
1213	movb	%ah,%bl
1214	shrl	$16,%edx
1215	xorl	0x300(%ebp,%ecx,1),%esi
1216	movb	%dh,%cl
1217	andl	$0xff,%eax
1218	andl	$0xff,%edx
1219	movl	0x600(%ebp,%ebx,1),%ebx
1220	xorl	%ebx,%esi
1221	movl	0x700(%ebp,%ecx,1),%ebx
1222	xorl	%ebx,%esi
1223	movl	0x400(%ebp,%eax,1),%ebx
1224	xorl	%ebx,%esi
1225	movl	0x500(%ebp,%edx,1),%ebx
1226	xorl	%ebx,%esi
1227	movl	32(%esp),%ebp
1228
1229
1230	movl	36(%esp),%eax
1231	movl	%esi,%edx
1232	shrl	$16,%edx
1233	movl	40(%esp),%ecx
1234	xorl	%esi,%edx
1235	andl	%edx,%eax
1236	andl	%ecx,%edx
1237	movl	%eax,%ebx
1238	shll	$16,%ebx
1239	movl	%edx,%ecx
1240	shll	$16,%ecx
1241	xorl	%ebx,%eax
1242	xorl	%ecx,%edx
1243	movl	48(%ebp),%ebx
1244	xorl	%ebx,%eax
1245	movl	52(%ebp),%ecx
1246	xorl	%esi,%eax
1247	xorl	%esi,%edx
1248	xorl	%ecx,%edx
1249	andl	$0xfcfcfcfc,%eax
1250	xorl	%ebx,%ebx
1251	andl	$0xcfcfcfcf,%edx
1252	xorl	%ecx,%ecx
1253	movb	%al,%bl
1254	movb	%ah,%cl
1255	rorl	$4,%edx
1256	movl	4(%esp),%ebp
1257	xorl	(%ebp,%ebx,1),%edi
1258	movb	%dl,%bl
1259	xorl	0x200(%ebp,%ecx,1),%edi
1260	movb	%dh,%cl
1261	shrl	$16,%eax
1262	xorl	0x100(%ebp,%ebx,1),%edi
1263	movb	%ah,%bl
1264	shrl	$16,%edx
1265	xorl	0x300(%ebp,%ecx,1),%edi
1266	movb	%dh,%cl
1267	andl	$0xff,%eax
1268	andl	$0xff,%edx
1269	movl	0x600(%ebp,%ebx,1),%ebx
1270	xorl	%ebx,%edi
1271	movl	0x700(%ebp,%ecx,1),%ebx
1272	xorl	%ebx,%edi
1273	movl	0x400(%ebp,%eax,1),%ebx
1274	xorl	%ebx,%edi
1275	movl	0x500(%ebp,%edx,1),%ebx
1276	xorl	%ebx,%edi
1277	movl	32(%esp),%ebp
1278
1279
1280	movl	36(%esp),%eax
1281	movl	%edi,%edx
1282	shrl	$16,%edx
1283	movl	40(%esp),%ecx
1284	xorl	%edi,%edx
1285	andl	%edx,%eax
1286	andl	%ecx,%edx
1287	movl	%eax,%ebx
1288	shll	$16,%ebx
1289	movl	%edx,%ecx
1290	shll	$16,%ecx
1291	xorl	%ebx,%eax
1292	xorl	%ecx,%edx
1293	movl	56(%ebp),%ebx
1294	xorl	%ebx,%eax
1295	movl	60(%ebp),%ecx
1296	xorl	%edi,%eax
1297	xorl	%edi,%edx
1298	xorl	%ecx,%edx
1299	andl	$0xfcfcfcfc,%eax
1300	xorl	%ebx,%ebx
1301	andl	$0xcfcfcfcf,%edx
1302	xorl	%ecx,%ecx
1303	movb	%al,%bl
1304	movb	%ah,%cl
1305	rorl	$4,%edx
1306	movl	4(%esp),%ebp
1307	xorl	(%ebp,%ebx,1),%esi
1308	movb	%dl,%bl
1309	xorl	0x200(%ebp,%ecx,1),%esi
1310	movb	%dh,%cl
1311	shrl	$16,%eax
1312	xorl	0x100(%ebp,%ebx,1),%esi
1313	movb	%ah,%bl
1314	shrl	$16,%edx
1315	xorl	0x300(%ebp,%ecx,1),%esi
1316	movb	%dh,%cl
1317	andl	$0xff,%eax
1318	andl	$0xff,%edx
1319	movl	0x600(%ebp,%ebx,1),%ebx
1320	xorl	%ebx,%esi
1321	movl	0x700(%ebp,%ecx,1),%ebx
1322	xorl	%ebx,%esi
1323	movl	0x400(%ebp,%eax,1),%ebx
1324	xorl	%ebx,%esi
1325	movl	0x500(%ebp,%edx,1),%ebx
1326	xorl	%ebx,%esi
1327	movl	32(%esp),%ebp
1328
1329
1330	movl	36(%esp),%eax
1331	movl	%esi,%edx
1332	shrl	$16,%edx
1333	movl	40(%esp),%ecx
1334	xorl	%esi,%edx
1335	andl	%edx,%eax
1336	andl	%ecx,%edx
1337	movl	%eax,%ebx
1338	shll	$16,%ebx
1339	movl	%edx,%ecx
1340	shll	$16,%ecx
1341	xorl	%ebx,%eax
1342	xorl	%ecx,%edx
1343	movl	64(%ebp),%ebx
1344	xorl	%ebx,%eax
1345	movl	68(%ebp),%ecx
1346	xorl	%esi,%eax
1347	xorl	%esi,%edx
1348	xorl	%ecx,%edx
1349	andl	$0xfcfcfcfc,%eax
1350	xorl	%ebx,%ebx
1351	andl	$0xcfcfcfcf,%edx
1352	xorl	%ecx,%ecx
1353	movb	%al,%bl
1354	movb	%ah,%cl
1355	rorl	$4,%edx
1356	movl	4(%esp),%ebp
1357	xorl	(%ebp,%ebx,1),%edi
1358	movb	%dl,%bl
1359	xorl	0x200(%ebp,%ecx,1),%edi
1360	movb	%dh,%cl
1361	shrl	$16,%eax
1362	xorl	0x100(%ebp,%ebx,1),%edi
1363	movb	%ah,%bl
1364	shrl	$16,%edx
1365	xorl	0x300(%ebp,%ecx,1),%edi
1366	movb	%dh,%cl
1367	andl	$0xff,%eax
1368	andl	$0xff,%edx
1369	movl	0x600(%ebp,%ebx,1),%ebx
1370	xorl	%ebx,%edi
1371	movl	0x700(%ebp,%ecx,1),%ebx
1372	xorl	%ebx,%edi
1373	movl	0x400(%ebp,%eax,1),%ebx
1374	xorl	%ebx,%edi
1375	movl	0x500(%ebp,%edx,1),%ebx
1376	xorl	%ebx,%edi
1377	movl	32(%esp),%ebp
1378
1379
1380	movl	36(%esp),%eax
1381	movl	%edi,%edx
1382	shrl	$16,%edx
1383	movl	40(%esp),%ecx
1384	xorl	%edi,%edx
1385	andl	%edx,%eax
1386	andl	%ecx,%edx
1387	movl	%eax,%ebx
1388	shll	$16,%ebx
1389	movl	%edx,%ecx
1390	shll	$16,%ecx
1391	xorl	%ebx,%eax
1392	xorl	%ecx,%edx
1393	movl	72(%ebp),%ebx
1394	xorl	%ebx,%eax
1395	movl	76(%ebp),%ecx
1396	xorl	%edi,%eax
1397	xorl	%edi,%edx
1398	xorl	%ecx,%edx
1399	andl	$0xfcfcfcfc,%eax
1400	xorl	%ebx,%ebx
1401	andl	$0xcfcfcfcf,%edx
1402	xorl	%ecx,%ecx
1403	movb	%al,%bl
1404	movb	%ah,%cl
1405	rorl	$4,%edx
1406	movl	4(%esp),%ebp
1407	xorl	(%ebp,%ebx,1),%esi
1408	movb	%dl,%bl
1409	xorl	0x200(%ebp,%ecx,1),%esi
1410	movb	%dh,%cl
1411	shrl	$16,%eax
1412	xorl	0x100(%ebp,%ebx,1),%esi
1413	movb	%ah,%bl
1414	shrl	$16,%edx
1415	xorl	0x300(%ebp,%ecx,1),%esi
1416	movb	%dh,%cl
1417	andl	$0xff,%eax
1418	andl	$0xff,%edx
1419	movl	0x600(%ebp,%ebx,1),%ebx
1420	xorl	%ebx,%esi
1421	movl	0x700(%ebp,%ecx,1),%ebx
1422	xorl	%ebx,%esi
1423	movl	0x400(%ebp,%eax,1),%ebx
1424	xorl	%ebx,%esi
1425	movl	0x500(%ebp,%edx,1),%ebx
1426	xorl	%ebx,%esi
1427	movl	32(%esp),%ebp
1428
1429
1430	movl	36(%esp),%eax
1431	movl	%esi,%edx
1432	shrl	$16,%edx
1433	movl	40(%esp),%ecx
1434	xorl	%esi,%edx
1435	andl	%edx,%eax
1436	andl	%ecx,%edx
1437	movl	%eax,%ebx
1438	shll	$16,%ebx
1439	movl	%edx,%ecx
1440	shll	$16,%ecx
1441	xorl	%ebx,%eax
1442	xorl	%ecx,%edx
1443	movl	80(%ebp),%ebx
1444	xorl	%ebx,%eax
1445	movl	84(%ebp),%ecx
1446	xorl	%esi,%eax
1447	xorl	%esi,%edx
1448	xorl	%ecx,%edx
1449	andl	$0xfcfcfcfc,%eax
1450	xorl	%ebx,%ebx
1451	andl	$0xcfcfcfcf,%edx
1452	xorl	%ecx,%ecx
1453	movb	%al,%bl
1454	movb	%ah,%cl
1455	rorl	$4,%edx
1456	movl	4(%esp),%ebp
1457	xorl	(%ebp,%ebx,1),%edi
1458	movb	%dl,%bl
1459	xorl	0x200(%ebp,%ecx,1),%edi
1460	movb	%dh,%cl
1461	shrl	$16,%eax
1462	xorl	0x100(%ebp,%ebx,1),%edi
1463	movb	%ah,%bl
1464	shrl	$16,%edx
1465	xorl	0x300(%ebp,%ecx,1),%edi
1466	movb	%dh,%cl
1467	andl	$0xff,%eax
1468	andl	$0xff,%edx
1469	movl	0x600(%ebp,%ebx,1),%ebx
1470	xorl	%ebx,%edi
1471	movl	0x700(%ebp,%ecx,1),%ebx
1472	xorl	%ebx,%edi
1473	movl	0x400(%ebp,%eax,1),%ebx
1474	xorl	%ebx,%edi
1475	movl	0x500(%ebp,%edx,1),%ebx
1476	xorl	%ebx,%edi
1477	movl	32(%esp),%ebp
1478
1479
1480	movl	36(%esp),%eax
1481	movl	%edi,%edx
1482	shrl	$16,%edx
1483	movl	40(%esp),%ecx
1484	xorl	%edi,%edx
1485	andl	%edx,%eax
1486	andl	%ecx,%edx
1487	movl	%eax,%ebx
1488	shll	$16,%ebx
1489	movl	%edx,%ecx
1490	shll	$16,%ecx
1491	xorl	%ebx,%eax
1492	xorl	%ecx,%edx
1493	movl	88(%ebp),%ebx
1494	xorl	%ebx,%eax
1495	movl	92(%ebp),%ecx
1496	xorl	%edi,%eax
1497	xorl	%edi,%edx
1498	xorl	%ecx,%edx
1499	andl	$0xfcfcfcfc,%eax
1500	xorl	%ebx,%ebx
1501	andl	$0xcfcfcfcf,%edx
1502	xorl	%ecx,%ecx
1503	movb	%al,%bl
1504	movb	%ah,%cl
1505	rorl	$4,%edx
1506	movl	4(%esp),%ebp
1507	xorl	(%ebp,%ebx,1),%esi
1508	movb	%dl,%bl
1509	xorl	0x200(%ebp,%ecx,1),%esi
1510	movb	%dh,%cl
1511	shrl	$16,%eax
1512	xorl	0x100(%ebp,%ebx,1),%esi
1513	movb	%ah,%bl
1514	shrl	$16,%edx
1515	xorl	0x300(%ebp,%ecx,1),%esi
1516	movb	%dh,%cl
1517	andl	$0xff,%eax
1518	andl	$0xff,%edx
1519	movl	0x600(%ebp,%ebx,1),%ebx
1520	xorl	%ebx,%esi
1521	movl	0x700(%ebp,%ecx,1),%ebx
1522	xorl	%ebx,%esi
1523	movl	0x400(%ebp,%eax,1),%ebx
1524	xorl	%ebx,%esi
1525	movl	0x500(%ebp,%edx,1),%ebx
1526	xorl	%ebx,%esi
1527	movl	32(%esp),%ebp
1528
1529
1530	movl	36(%esp),%eax
1531	movl	%esi,%edx
1532	shrl	$16,%edx
1533	movl	40(%esp),%ecx
1534	xorl	%esi,%edx
1535	andl	%edx,%eax
1536	andl	%ecx,%edx
1537	movl	%eax,%ebx
1538	shll	$16,%ebx
1539	movl	%edx,%ecx
1540	shll	$16,%ecx
1541	xorl	%ebx,%eax
1542	xorl	%ecx,%edx
1543	movl	96(%ebp),%ebx
1544	xorl	%ebx,%eax
1545	movl	100(%ebp),%ecx
1546	xorl	%esi,%eax
1547	xorl	%esi,%edx
1548	xorl	%ecx,%edx
1549	andl	$0xfcfcfcfc,%eax
1550	xorl	%ebx,%ebx
1551	andl	$0xcfcfcfcf,%edx
1552	xorl	%ecx,%ecx
1553	movb	%al,%bl
1554	movb	%ah,%cl
1555	rorl	$4,%edx
1556	movl	4(%esp),%ebp
1557	xorl	(%ebp,%ebx,1),%edi
1558	movb	%dl,%bl
1559	xorl	0x200(%ebp,%ecx,1),%edi
1560	movb	%dh,%cl
1561	shrl	$16,%eax
1562	xorl	0x100(%ebp,%ebx,1),%edi
1563	movb	%ah,%bl
1564	shrl	$16,%edx
1565	xorl	0x300(%ebp,%ecx,1),%edi
1566	movb	%dh,%cl
1567	andl	$0xff,%eax
1568	andl	$0xff,%edx
1569	movl	0x600(%ebp,%ebx,1),%ebx
1570	xorl	%ebx,%edi
1571	movl	0x700(%ebp,%ecx,1),%ebx
1572	xorl	%ebx,%edi
1573	movl	0x400(%ebp,%eax,1),%ebx
1574	xorl	%ebx,%edi
1575	movl	0x500(%ebp,%edx,1),%ebx
1576	xorl	%ebx,%edi
1577	movl	32(%esp),%ebp
1578
1579
1580	movl	36(%esp),%eax
1581	movl	%edi,%edx
1582	shrl	$16,%edx
1583	movl	40(%esp),%ecx
1584	xorl	%edi,%edx
1585	andl	%edx,%eax
1586	andl	%ecx,%edx
1587	movl	%eax,%ebx
1588	shll	$16,%ebx
1589	movl	%edx,%ecx
1590	shll	$16,%ecx
1591	xorl	%ebx,%eax
1592	xorl	%ecx,%edx
1593	movl	104(%ebp),%ebx
1594	xorl	%ebx,%eax
1595	movl	108(%ebp),%ecx
1596	xorl	%edi,%eax
1597	xorl	%edi,%edx
1598	xorl	%ecx,%edx
1599	andl	$0xfcfcfcfc,%eax
1600	xorl	%ebx,%ebx
1601	andl	$0xcfcfcfcf,%edx
1602	xorl	%ecx,%ecx
1603	movb	%al,%bl
1604	movb	%ah,%cl
1605	rorl	$4,%edx
1606	movl	4(%esp),%ebp
1607	xorl	(%ebp,%ebx,1),%esi
1608	movb	%dl,%bl
1609	xorl	0x200(%ebp,%ecx,1),%esi
1610	movb	%dh,%cl
1611	shrl	$16,%eax
1612	xorl	0x100(%ebp,%ebx,1),%esi
1613	movb	%ah,%bl
1614	shrl	$16,%edx
1615	xorl	0x300(%ebp,%ecx,1),%esi
1616	movb	%dh,%cl
1617	andl	$0xff,%eax
1618	andl	$0xff,%edx
1619	movl	0x600(%ebp,%ebx,1),%ebx
1620	xorl	%ebx,%esi
1621	movl	0x700(%ebp,%ecx,1),%ebx
1622	xorl	%ebx,%esi
1623	movl	0x400(%ebp,%eax,1),%ebx
1624	xorl	%ebx,%esi
1625	movl	0x500(%ebp,%edx,1),%ebx
1626	xorl	%ebx,%esi
1627	movl	32(%esp),%ebp
1628
1629
1630	movl	36(%esp),%eax
1631	movl	%esi,%edx
1632	shrl	$16,%edx
1633	movl	40(%esp),%ecx
1634	xorl	%esi,%edx
1635	andl	%edx,%eax
1636	andl	%ecx,%edx
1637	movl	%eax,%ebx
1638	shll	$16,%ebx
1639	movl	%edx,%ecx
1640	shll	$16,%ecx
1641	xorl	%ebx,%eax
1642	xorl	%ecx,%edx
1643	movl	112(%ebp),%ebx
1644	xorl	%ebx,%eax
1645	movl	116(%ebp),%ecx
1646	xorl	%esi,%eax
1647	xorl	%esi,%edx
1648	xorl	%ecx,%edx
1649	andl	$0xfcfcfcfc,%eax
1650	xorl	%ebx,%ebx
1651	andl	$0xcfcfcfcf,%edx
1652	xorl	%ecx,%ecx
1653	movb	%al,%bl
1654	movb	%ah,%cl
1655	rorl	$4,%edx
1656	movl	4(%esp),%ebp
1657	xorl	(%ebp,%ebx,1),%edi
1658	movb	%dl,%bl
1659	xorl	0x200(%ebp,%ecx,1),%edi
1660	movb	%dh,%cl
1661	shrl	$16,%eax
1662	xorl	0x100(%ebp,%ebx,1),%edi
1663	movb	%ah,%bl
1664	shrl	$16,%edx
1665	xorl	0x300(%ebp,%ecx,1),%edi
1666	movb	%dh,%cl
1667	andl	$0xff,%eax
1668	andl	$0xff,%edx
1669	movl	0x600(%ebp,%ebx,1),%ebx
1670	xorl	%ebx,%edi
1671	movl	0x700(%ebp,%ecx,1),%ebx
1672	xorl	%ebx,%edi
1673	movl	0x400(%ebp,%eax,1),%ebx
1674	xorl	%ebx,%edi
1675	movl	0x500(%ebp,%edx,1),%ebx
1676	xorl	%ebx,%edi
1677	movl	32(%esp),%ebp
1678
1679
1680	movl	36(%esp),%eax
1681	movl	%edi,%edx
1682	shrl	$16,%edx
1683	movl	40(%esp),%ecx
1684	xorl	%edi,%edx
1685	andl	%edx,%eax
1686	andl	%ecx,%edx
1687	movl	%eax,%ebx
1688	shll	$16,%ebx
1689	movl	%edx,%ecx
1690	shll	$16,%ecx
1691	xorl	%ebx,%eax
1692	xorl	%ecx,%edx
1693	movl	120(%ebp),%ebx
1694	xorl	%ebx,%eax
1695	movl	124(%ebp),%ecx
1696	xorl	%edi,%eax
1697	xorl	%edi,%edx
1698	xorl	%ecx,%edx
1699	andl	$0xfcfcfcfc,%eax
1700	xorl	%ebx,%ebx
1701	andl	$0xcfcfcfcf,%edx
1702	xorl	%ecx,%ecx
1703	movb	%al,%bl
1704	movb	%ah,%cl
1705	rorl	$4,%edx
1706	movl	4(%esp),%ebp
1707	xorl	(%ebp,%ebx,1),%esi
1708	movb	%dl,%bl
1709	xorl	0x200(%ebp,%ecx,1),%esi
1710	movb	%dh,%cl
1711	shrl	$16,%eax
1712	xorl	0x100(%ebp,%ebx,1),%esi
1713	movb	%ah,%bl
1714	shrl	$16,%edx
1715	xorl	0x300(%ebp,%ecx,1),%esi
1716	movb	%dh,%cl
1717	andl	$0xff,%eax
1718	andl	$0xff,%edx
1719	movl	0x600(%ebp,%ebx,1),%ebx
1720	xorl	%ebx,%esi
1721	movl	0x700(%ebp,%ecx,1),%ebx
1722	xorl	%ebx,%esi
1723	movl	0x400(%ebp,%eax,1),%ebx
1724	xorl	%ebx,%esi
1725	movl	0x500(%ebp,%edx,1),%ebx
1726	xorl	%ebx,%esi
1727	movl	32(%esp),%ebp
1728	movl	(%esp),%ebx
1729	movl	%edi,%eax
1730	decl	%ebx
1731	movl	%esi,%edi
1732	movl	%eax,%esi
1733	movl	%ebx,(%esp)
1734	jnz	.L000start
1735
1736
1737	movl	28(%esp),%edx
1738	rorl	$1,%edi
1739	movl	%esi,%eax
1740	xorl	%edi,%esi
1741	andl	$0xaaaaaaaa,%esi
1742	xorl	%esi,%eax
1743	xorl	%esi,%edi
1744
1745	roll	$23,%eax
1746	movl	%eax,%esi
1747	xorl	%edi,%eax
1748	andl	$0x03fc03fc,%eax
1749	xorl	%eax,%esi
1750	xorl	%eax,%edi
1751
1752	roll	$10,%esi
1753	movl	%esi,%eax
1754	xorl	%edi,%esi
1755	andl	$0x33333333,%esi
1756	xorl	%esi,%eax
1757	xorl	%esi,%edi
1758
1759	roll	$18,%edi
1760	movl	%edi,%esi
1761	xorl	%eax,%edi
1762	andl	$0xfff0000f,%edi
1763	xorl	%edi,%esi
1764	xorl	%edi,%eax
1765
1766	roll	$12,%esi
1767	movl	%esi,%edi
1768	xorl	%eax,%esi
1769	andl	$0xf0f0f0f0,%esi
1770	xorl	%esi,%edi
1771	xorl	%esi,%eax
1772
1773	rorl	$4,%eax
1774	movl	%eax,(%edx)
1775	movl	%edi,4(%edx)
1776	addl	$8,%esp
1777	popl	%edi
1778	popl	%esi
1779	popl	%ebx
1780	popl	%ebp
1781	ret
1782.size	fcrypt_body,.-.L_fcrypt_body_begin
1783
1784	.section ".note.gnu.property", "a"
1785	.p2align 2
1786	.long 1f - 0f
1787	.long 4f - 1f
1788	.long 5
17890:
1790	.asciz "GNU"
17911:
1792	.p2align 2
1793	.long 0xc0000002
1794	.long 3f - 2f
17952:
1796	.long 3
17973:
1798	.p2align 2
17994:
1800#endif
1801