• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1.text
2.globl	_fcrypt_body
3.align	4
4_fcrypt_body:
5L_fcrypt_body_begin:
6	%ifdef __CET__
7
8.byte	243,15,30,251
9	%endif
10
11	pushl	%ebp
12	pushl	%ebx
13	pushl	%esi
14	pushl	%edi
15
16	# Load the 2 words
17	xorl	%edi,%edi
18	xorl	%esi,%esi
19	call	L000PIC_me_up
20L000PIC_me_up:
21	popl	%edx
22	movl	L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx
23	pushl	%edx
24	movl	28(%esp),%ebp
25	pushl	$25
26L001start:
27
28	# Round 0
29	movl	36(%esp),%eax
30	movl	%esi,%edx
31	shrl	$16,%edx
32	movl	40(%esp),%ecx
33	xorl	%esi,%edx
34	andl	%edx,%eax
35	andl	%ecx,%edx
36	movl	%eax,%ebx
37	shll	$16,%ebx
38	movl	%edx,%ecx
39	shll	$16,%ecx
40	xorl	%ebx,%eax
41	xorl	%ecx,%edx
42	movl	(%ebp),%ebx
43	xorl	%ebx,%eax
44	movl	4(%ebp),%ecx
45	xorl	%esi,%eax
46	xorl	%esi,%edx
47	xorl	%ecx,%edx
48	andl	$0xfcfcfcfc,%eax
49	xorl	%ebx,%ebx
50	andl	$0xcfcfcfcf,%edx
51	xorl	%ecx,%ecx
52	movb	%al,%bl
53	movb	%ah,%cl
54	rorl	$4,%edx
55	movl	4(%esp),%ebp
56	xorl	(%ebp,%ebx,1),%edi
57	movb	%dl,%bl
58	xorl	0x200(%ebp,%ecx,1),%edi
59	movb	%dh,%cl
60	shrl	$16,%eax
61	xorl	0x100(%ebp,%ebx,1),%edi
62	movb	%ah,%bl
63	shrl	$16,%edx
64	xorl	0x300(%ebp,%ecx,1),%edi
65	movb	%dh,%cl
66	andl	$0xff,%eax
67	andl	$0xff,%edx
68	movl	0x600(%ebp,%ebx,1),%ebx
69	xorl	%ebx,%edi
70	movl	0x700(%ebp,%ecx,1),%ebx
71	xorl	%ebx,%edi
72	movl	0x400(%ebp,%eax,1),%ebx
73	xorl	%ebx,%edi
74	movl	0x500(%ebp,%edx,1),%ebx
75	xorl	%ebx,%edi
76	movl	32(%esp),%ebp
77
78	# Round 1
79	movl	36(%esp),%eax
80	movl	%edi,%edx
81	shrl	$16,%edx
82	movl	40(%esp),%ecx
83	xorl	%edi,%edx
84	andl	%edx,%eax
85	andl	%ecx,%edx
86	movl	%eax,%ebx
87	shll	$16,%ebx
88	movl	%edx,%ecx
89	shll	$16,%ecx
90	xorl	%ebx,%eax
91	xorl	%ecx,%edx
92	movl	8(%ebp),%ebx
93	xorl	%ebx,%eax
94	movl	12(%ebp),%ecx
95	xorl	%edi,%eax
96	xorl	%edi,%edx
97	xorl	%ecx,%edx
98	andl	$0xfcfcfcfc,%eax
99	xorl	%ebx,%ebx
100	andl	$0xcfcfcfcf,%edx
101	xorl	%ecx,%ecx
102	movb	%al,%bl
103	movb	%ah,%cl
104	rorl	$4,%edx
105	movl	4(%esp),%ebp
106	xorl	(%ebp,%ebx,1),%esi
107	movb	%dl,%bl
108	xorl	0x200(%ebp,%ecx,1),%esi
109	movb	%dh,%cl
110	shrl	$16,%eax
111	xorl	0x100(%ebp,%ebx,1),%esi
112	movb	%ah,%bl
113	shrl	$16,%edx
114	xorl	0x300(%ebp,%ecx,1),%esi
115	movb	%dh,%cl
116	andl	$0xff,%eax
117	andl	$0xff,%edx
118	movl	0x600(%ebp,%ebx,1),%ebx
119	xorl	%ebx,%esi
120	movl	0x700(%ebp,%ecx,1),%ebx
121	xorl	%ebx,%esi
122	movl	0x400(%ebp,%eax,1),%ebx
123	xorl	%ebx,%esi
124	movl	0x500(%ebp,%edx,1),%ebx
125	xorl	%ebx,%esi
126	movl	32(%esp),%ebp
127
128	# Round 2
129	movl	36(%esp),%eax
130	movl	%esi,%edx
131	shrl	$16,%edx
132	movl	40(%esp),%ecx
133	xorl	%esi,%edx
134	andl	%edx,%eax
135	andl	%ecx,%edx
136	movl	%eax,%ebx
137	shll	$16,%ebx
138	movl	%edx,%ecx
139	shll	$16,%ecx
140	xorl	%ebx,%eax
141	xorl	%ecx,%edx
142	movl	16(%ebp),%ebx
143	xorl	%ebx,%eax
144	movl	20(%ebp),%ecx
145	xorl	%esi,%eax
146	xorl	%esi,%edx
147	xorl	%ecx,%edx
148	andl	$0xfcfcfcfc,%eax
149	xorl	%ebx,%ebx
150	andl	$0xcfcfcfcf,%edx
151	xorl	%ecx,%ecx
152	movb	%al,%bl
153	movb	%ah,%cl
154	rorl	$4,%edx
155	movl	4(%esp),%ebp
156	xorl	(%ebp,%ebx,1),%edi
157	movb	%dl,%bl
158	xorl	0x200(%ebp,%ecx,1),%edi
159	movb	%dh,%cl
160	shrl	$16,%eax
161	xorl	0x100(%ebp,%ebx,1),%edi
162	movb	%ah,%bl
163	shrl	$16,%edx
164	xorl	0x300(%ebp,%ecx,1),%edi
165	movb	%dh,%cl
166	andl	$0xff,%eax
167	andl	$0xff,%edx
168	movl	0x600(%ebp,%ebx,1),%ebx
169	xorl	%ebx,%edi
170	movl	0x700(%ebp,%ecx,1),%ebx
171	xorl	%ebx,%edi
172	movl	0x400(%ebp,%eax,1),%ebx
173	xorl	%ebx,%edi
174	movl	0x500(%ebp,%edx,1),%ebx
175	xorl	%ebx,%edi
176	movl	32(%esp),%ebp
177
178	# Round 3
179	movl	36(%esp),%eax
180	movl	%edi,%edx
181	shrl	$16,%edx
182	movl	40(%esp),%ecx
183	xorl	%edi,%edx
184	andl	%edx,%eax
185	andl	%ecx,%edx
186	movl	%eax,%ebx
187	shll	$16,%ebx
188	movl	%edx,%ecx
189	shll	$16,%ecx
190	xorl	%ebx,%eax
191	xorl	%ecx,%edx
192	movl	24(%ebp),%ebx
193	xorl	%ebx,%eax
194	movl	28(%ebp),%ecx
195	xorl	%edi,%eax
196	xorl	%edi,%edx
197	xorl	%ecx,%edx
198	andl	$0xfcfcfcfc,%eax
199	xorl	%ebx,%ebx
200	andl	$0xcfcfcfcf,%edx
201	xorl	%ecx,%ecx
202	movb	%al,%bl
203	movb	%ah,%cl
204	rorl	$4,%edx
205	movl	4(%esp),%ebp
206	xorl	(%ebp,%ebx,1),%esi
207	movb	%dl,%bl
208	xorl	0x200(%ebp,%ecx,1),%esi
209	movb	%dh,%cl
210	shrl	$16,%eax
211	xorl	0x100(%ebp,%ebx,1),%esi
212	movb	%ah,%bl
213	shrl	$16,%edx
214	xorl	0x300(%ebp,%ecx,1),%esi
215	movb	%dh,%cl
216	andl	$0xff,%eax
217	andl	$0xff,%edx
218	movl	0x600(%ebp,%ebx,1),%ebx
219	xorl	%ebx,%esi
220	movl	0x700(%ebp,%ecx,1),%ebx
221	xorl	%ebx,%esi
222	movl	0x400(%ebp,%eax,1),%ebx
223	xorl	%ebx,%esi
224	movl	0x500(%ebp,%edx,1),%ebx
225	xorl	%ebx,%esi
226	movl	32(%esp),%ebp
227
228	# Round 4
229	movl	36(%esp),%eax
230	movl	%esi,%edx
231	shrl	$16,%edx
232	movl	40(%esp),%ecx
233	xorl	%esi,%edx
234	andl	%edx,%eax
235	andl	%ecx,%edx
236	movl	%eax,%ebx
237	shll	$16,%ebx
238	movl	%edx,%ecx
239	shll	$16,%ecx
240	xorl	%ebx,%eax
241	xorl	%ecx,%edx
242	movl	32(%ebp),%ebx
243	xorl	%ebx,%eax
244	movl	36(%ebp),%ecx
245	xorl	%esi,%eax
246	xorl	%esi,%edx
247	xorl	%ecx,%edx
248	andl	$0xfcfcfcfc,%eax
249	xorl	%ebx,%ebx
250	andl	$0xcfcfcfcf,%edx
251	xorl	%ecx,%ecx
252	movb	%al,%bl
253	movb	%ah,%cl
254	rorl	$4,%edx
255	movl	4(%esp),%ebp
256	xorl	(%ebp,%ebx,1),%edi
257	movb	%dl,%bl
258	xorl	0x200(%ebp,%ecx,1),%edi
259	movb	%dh,%cl
260	shrl	$16,%eax
261	xorl	0x100(%ebp,%ebx,1),%edi
262	movb	%ah,%bl
263	shrl	$16,%edx
264	xorl	0x300(%ebp,%ecx,1),%edi
265	movb	%dh,%cl
266	andl	$0xff,%eax
267	andl	$0xff,%edx
268	movl	0x600(%ebp,%ebx,1),%ebx
269	xorl	%ebx,%edi
270	movl	0x700(%ebp,%ecx,1),%ebx
271	xorl	%ebx,%edi
272	movl	0x400(%ebp,%eax,1),%ebx
273	xorl	%ebx,%edi
274	movl	0x500(%ebp,%edx,1),%ebx
275	xorl	%ebx,%edi
276	movl	32(%esp),%ebp
277
278	# Round 5
279	movl	36(%esp),%eax
280	movl	%edi,%edx
281	shrl	$16,%edx
282	movl	40(%esp),%ecx
283	xorl	%edi,%edx
284	andl	%edx,%eax
285	andl	%ecx,%edx
286	movl	%eax,%ebx
287	shll	$16,%ebx
288	movl	%edx,%ecx
289	shll	$16,%ecx
290	xorl	%ebx,%eax
291	xorl	%ecx,%edx
292	movl	40(%ebp),%ebx
293	xorl	%ebx,%eax
294	movl	44(%ebp),%ecx
295	xorl	%edi,%eax
296	xorl	%edi,%edx
297	xorl	%ecx,%edx
298	andl	$0xfcfcfcfc,%eax
299	xorl	%ebx,%ebx
300	andl	$0xcfcfcfcf,%edx
301	xorl	%ecx,%ecx
302	movb	%al,%bl
303	movb	%ah,%cl
304	rorl	$4,%edx
305	movl	4(%esp),%ebp
306	xorl	(%ebp,%ebx,1),%esi
307	movb	%dl,%bl
308	xorl	0x200(%ebp,%ecx,1),%esi
309	movb	%dh,%cl
310	shrl	$16,%eax
311	xorl	0x100(%ebp,%ebx,1),%esi
312	movb	%ah,%bl
313	shrl	$16,%edx
314	xorl	0x300(%ebp,%ecx,1),%esi
315	movb	%dh,%cl
316	andl	$0xff,%eax
317	andl	$0xff,%edx
318	movl	0x600(%ebp,%ebx,1),%ebx
319	xorl	%ebx,%esi
320	movl	0x700(%ebp,%ecx,1),%ebx
321	xorl	%ebx,%esi
322	movl	0x400(%ebp,%eax,1),%ebx
323	xorl	%ebx,%esi
324	movl	0x500(%ebp,%edx,1),%ebx
325	xorl	%ebx,%esi
326	movl	32(%esp),%ebp
327
328	# Round 6
329	movl	36(%esp),%eax
330	movl	%esi,%edx
331	shrl	$16,%edx
332	movl	40(%esp),%ecx
333	xorl	%esi,%edx
334	andl	%edx,%eax
335	andl	%ecx,%edx
336	movl	%eax,%ebx
337	shll	$16,%ebx
338	movl	%edx,%ecx
339	shll	$16,%ecx
340	xorl	%ebx,%eax
341	xorl	%ecx,%edx
342	movl	48(%ebp),%ebx
343	xorl	%ebx,%eax
344	movl	52(%ebp),%ecx
345	xorl	%esi,%eax
346	xorl	%esi,%edx
347	xorl	%ecx,%edx
348	andl	$0xfcfcfcfc,%eax
349	xorl	%ebx,%ebx
350	andl	$0xcfcfcfcf,%edx
351	xorl	%ecx,%ecx
352	movb	%al,%bl
353	movb	%ah,%cl
354	rorl	$4,%edx
355	movl	4(%esp),%ebp
356	xorl	(%ebp,%ebx,1),%edi
357	movb	%dl,%bl
358	xorl	0x200(%ebp,%ecx,1),%edi
359	movb	%dh,%cl
360	shrl	$16,%eax
361	xorl	0x100(%ebp,%ebx,1),%edi
362	movb	%ah,%bl
363	shrl	$16,%edx
364	xorl	0x300(%ebp,%ecx,1),%edi
365	movb	%dh,%cl
366	andl	$0xff,%eax
367	andl	$0xff,%edx
368	movl	0x600(%ebp,%ebx,1),%ebx
369	xorl	%ebx,%edi
370	movl	0x700(%ebp,%ecx,1),%ebx
371	xorl	%ebx,%edi
372	movl	0x400(%ebp,%eax,1),%ebx
373	xorl	%ebx,%edi
374	movl	0x500(%ebp,%edx,1),%ebx
375	xorl	%ebx,%edi
376	movl	32(%esp),%ebp
377
378	# Round 7
379	movl	36(%esp),%eax
380	movl	%edi,%edx
381	shrl	$16,%edx
382	movl	40(%esp),%ecx
383	xorl	%edi,%edx
384	andl	%edx,%eax
385	andl	%ecx,%edx
386	movl	%eax,%ebx
387	shll	$16,%ebx
388	movl	%edx,%ecx
389	shll	$16,%ecx
390	xorl	%ebx,%eax
391	xorl	%ecx,%edx
392	movl	56(%ebp),%ebx
393	xorl	%ebx,%eax
394	movl	60(%ebp),%ecx
395	xorl	%edi,%eax
396	xorl	%edi,%edx
397	xorl	%ecx,%edx
398	andl	$0xfcfcfcfc,%eax
399	xorl	%ebx,%ebx
400	andl	$0xcfcfcfcf,%edx
401	xorl	%ecx,%ecx
402	movb	%al,%bl
403	movb	%ah,%cl
404	rorl	$4,%edx
405	movl	4(%esp),%ebp
406	xorl	(%ebp,%ebx,1),%esi
407	movb	%dl,%bl
408	xorl	0x200(%ebp,%ecx,1),%esi
409	movb	%dh,%cl
410	shrl	$16,%eax
411	xorl	0x100(%ebp,%ebx,1),%esi
412	movb	%ah,%bl
413	shrl	$16,%edx
414	xorl	0x300(%ebp,%ecx,1),%esi
415	movb	%dh,%cl
416	andl	$0xff,%eax
417	andl	$0xff,%edx
418	movl	0x600(%ebp,%ebx,1),%ebx
419	xorl	%ebx,%esi
420	movl	0x700(%ebp,%ecx,1),%ebx
421	xorl	%ebx,%esi
422	movl	0x400(%ebp,%eax,1),%ebx
423	xorl	%ebx,%esi
424	movl	0x500(%ebp,%edx,1),%ebx
425	xorl	%ebx,%esi
426	movl	32(%esp),%ebp
427
428	# Round 8
429	movl	36(%esp),%eax
430	movl	%esi,%edx
431	shrl	$16,%edx
432	movl	40(%esp),%ecx
433	xorl	%esi,%edx
434	andl	%edx,%eax
435	andl	%ecx,%edx
436	movl	%eax,%ebx
437	shll	$16,%ebx
438	movl	%edx,%ecx
439	shll	$16,%ecx
440	xorl	%ebx,%eax
441	xorl	%ecx,%edx
442	movl	64(%ebp),%ebx
443	xorl	%ebx,%eax
444	movl	68(%ebp),%ecx
445	xorl	%esi,%eax
446	xorl	%esi,%edx
447	xorl	%ecx,%edx
448	andl	$0xfcfcfcfc,%eax
449	xorl	%ebx,%ebx
450	andl	$0xcfcfcfcf,%edx
451	xorl	%ecx,%ecx
452	movb	%al,%bl
453	movb	%ah,%cl
454	rorl	$4,%edx
455	movl	4(%esp),%ebp
456	xorl	(%ebp,%ebx,1),%edi
457	movb	%dl,%bl
458	xorl	0x200(%ebp,%ecx,1),%edi
459	movb	%dh,%cl
460	shrl	$16,%eax
461	xorl	0x100(%ebp,%ebx,1),%edi
462	movb	%ah,%bl
463	shrl	$16,%edx
464	xorl	0x300(%ebp,%ecx,1),%edi
465	movb	%dh,%cl
466	andl	$0xff,%eax
467	andl	$0xff,%edx
468	movl	0x600(%ebp,%ebx,1),%ebx
469	xorl	%ebx,%edi
470	movl	0x700(%ebp,%ecx,1),%ebx
471	xorl	%ebx,%edi
472	movl	0x400(%ebp,%eax,1),%ebx
473	xorl	%ebx,%edi
474	movl	0x500(%ebp,%edx,1),%ebx
475	xorl	%ebx,%edi
476	movl	32(%esp),%ebp
477
478	# Round 9
479	movl	36(%esp),%eax
480	movl	%edi,%edx
481	shrl	$16,%edx
482	movl	40(%esp),%ecx
483	xorl	%edi,%edx
484	andl	%edx,%eax
485	andl	%ecx,%edx
486	movl	%eax,%ebx
487	shll	$16,%ebx
488	movl	%edx,%ecx
489	shll	$16,%ecx
490	xorl	%ebx,%eax
491	xorl	%ecx,%edx
492	movl	72(%ebp),%ebx
493	xorl	%ebx,%eax
494	movl	76(%ebp),%ecx
495	xorl	%edi,%eax
496	xorl	%edi,%edx
497	xorl	%ecx,%edx
498	andl	$0xfcfcfcfc,%eax
499	xorl	%ebx,%ebx
500	andl	$0xcfcfcfcf,%edx
501	xorl	%ecx,%ecx
502	movb	%al,%bl
503	movb	%ah,%cl
504	rorl	$4,%edx
505	movl	4(%esp),%ebp
506	xorl	(%ebp,%ebx,1),%esi
507	movb	%dl,%bl
508	xorl	0x200(%ebp,%ecx,1),%esi
509	movb	%dh,%cl
510	shrl	$16,%eax
511	xorl	0x100(%ebp,%ebx,1),%esi
512	movb	%ah,%bl
513	shrl	$16,%edx
514	xorl	0x300(%ebp,%ecx,1),%esi
515	movb	%dh,%cl
516	andl	$0xff,%eax
517	andl	$0xff,%edx
518	movl	0x600(%ebp,%ebx,1),%ebx
519	xorl	%ebx,%esi
520	movl	0x700(%ebp,%ecx,1),%ebx
521	xorl	%ebx,%esi
522	movl	0x400(%ebp,%eax,1),%ebx
523	xorl	%ebx,%esi
524	movl	0x500(%ebp,%edx,1),%ebx
525	xorl	%ebx,%esi
526	movl	32(%esp),%ebp
527
528	# Round 10
529	movl	36(%esp),%eax
530	movl	%esi,%edx
531	shrl	$16,%edx
532	movl	40(%esp),%ecx
533	xorl	%esi,%edx
534	andl	%edx,%eax
535	andl	%ecx,%edx
536	movl	%eax,%ebx
537	shll	$16,%ebx
538	movl	%edx,%ecx
539	shll	$16,%ecx
540	xorl	%ebx,%eax
541	xorl	%ecx,%edx
542	movl	80(%ebp),%ebx
543	xorl	%ebx,%eax
544	movl	84(%ebp),%ecx
545	xorl	%esi,%eax
546	xorl	%esi,%edx
547	xorl	%ecx,%edx
548	andl	$0xfcfcfcfc,%eax
549	xorl	%ebx,%ebx
550	andl	$0xcfcfcfcf,%edx
551	xorl	%ecx,%ecx
552	movb	%al,%bl
553	movb	%ah,%cl
554	rorl	$4,%edx
555	movl	4(%esp),%ebp
556	xorl	(%ebp,%ebx,1),%edi
557	movb	%dl,%bl
558	xorl	0x200(%ebp,%ecx,1),%edi
559	movb	%dh,%cl
560	shrl	$16,%eax
561	xorl	0x100(%ebp,%ebx,1),%edi
562	movb	%ah,%bl
563	shrl	$16,%edx
564	xorl	0x300(%ebp,%ecx,1),%edi
565	movb	%dh,%cl
566	andl	$0xff,%eax
567	andl	$0xff,%edx
568	movl	0x600(%ebp,%ebx,1),%ebx
569	xorl	%ebx,%edi
570	movl	0x700(%ebp,%ecx,1),%ebx
571	xorl	%ebx,%edi
572	movl	0x400(%ebp,%eax,1),%ebx
573	xorl	%ebx,%edi
574	movl	0x500(%ebp,%edx,1),%ebx
575	xorl	%ebx,%edi
576	movl	32(%esp),%ebp
577
578	# Round 11
579	movl	36(%esp),%eax
580	movl	%edi,%edx
581	shrl	$16,%edx
582	movl	40(%esp),%ecx
583	xorl	%edi,%edx
584	andl	%edx,%eax
585	andl	%ecx,%edx
586	movl	%eax,%ebx
587	shll	$16,%ebx
588	movl	%edx,%ecx
589	shll	$16,%ecx
590	xorl	%ebx,%eax
591	xorl	%ecx,%edx
592	movl	88(%ebp),%ebx
593	xorl	%ebx,%eax
594	movl	92(%ebp),%ecx
595	xorl	%edi,%eax
596	xorl	%edi,%edx
597	xorl	%ecx,%edx
598	andl	$0xfcfcfcfc,%eax
599	xorl	%ebx,%ebx
600	andl	$0xcfcfcfcf,%edx
601	xorl	%ecx,%ecx
602	movb	%al,%bl
603	movb	%ah,%cl
604	rorl	$4,%edx
605	movl	4(%esp),%ebp
606	xorl	(%ebp,%ebx,1),%esi
607	movb	%dl,%bl
608	xorl	0x200(%ebp,%ecx,1),%esi
609	movb	%dh,%cl
610	shrl	$16,%eax
611	xorl	0x100(%ebp,%ebx,1),%esi
612	movb	%ah,%bl
613	shrl	$16,%edx
614	xorl	0x300(%ebp,%ecx,1),%esi
615	movb	%dh,%cl
616	andl	$0xff,%eax
617	andl	$0xff,%edx
618	movl	0x600(%ebp,%ebx,1),%ebx
619	xorl	%ebx,%esi
620	movl	0x700(%ebp,%ecx,1),%ebx
621	xorl	%ebx,%esi
622	movl	0x400(%ebp,%eax,1),%ebx
623	xorl	%ebx,%esi
624	movl	0x500(%ebp,%edx,1),%ebx
625	xorl	%ebx,%esi
626	movl	32(%esp),%ebp
627
628	# Round 12
629	movl	36(%esp),%eax
630	movl	%esi,%edx
631	shrl	$16,%edx
632	movl	40(%esp),%ecx
633	xorl	%esi,%edx
634	andl	%edx,%eax
635	andl	%ecx,%edx
636	movl	%eax,%ebx
637	shll	$16,%ebx
638	movl	%edx,%ecx
639	shll	$16,%ecx
640	xorl	%ebx,%eax
641	xorl	%ecx,%edx
642	movl	96(%ebp),%ebx
643	xorl	%ebx,%eax
644	movl	100(%ebp),%ecx
645	xorl	%esi,%eax
646	xorl	%esi,%edx
647	xorl	%ecx,%edx
648	andl	$0xfcfcfcfc,%eax
649	xorl	%ebx,%ebx
650	andl	$0xcfcfcfcf,%edx
651	xorl	%ecx,%ecx
652	movb	%al,%bl
653	movb	%ah,%cl
654	rorl	$4,%edx
655	movl	4(%esp),%ebp
656	xorl	(%ebp,%ebx,1),%edi
657	movb	%dl,%bl
658	xorl	0x200(%ebp,%ecx,1),%edi
659	movb	%dh,%cl
660	shrl	$16,%eax
661	xorl	0x100(%ebp,%ebx,1),%edi
662	movb	%ah,%bl
663	shrl	$16,%edx
664	xorl	0x300(%ebp,%ecx,1),%edi
665	movb	%dh,%cl
666	andl	$0xff,%eax
667	andl	$0xff,%edx
668	movl	0x600(%ebp,%ebx,1),%ebx
669	xorl	%ebx,%edi
670	movl	0x700(%ebp,%ecx,1),%ebx
671	xorl	%ebx,%edi
672	movl	0x400(%ebp,%eax,1),%ebx
673	xorl	%ebx,%edi
674	movl	0x500(%ebp,%edx,1),%ebx
675	xorl	%ebx,%edi
676	movl	32(%esp),%ebp
677
678	# Round 13
679	movl	36(%esp),%eax
680	movl	%edi,%edx
681	shrl	$16,%edx
682	movl	40(%esp),%ecx
683	xorl	%edi,%edx
684	andl	%edx,%eax
685	andl	%ecx,%edx
686	movl	%eax,%ebx
687	shll	$16,%ebx
688	movl	%edx,%ecx
689	shll	$16,%ecx
690	xorl	%ebx,%eax
691	xorl	%ecx,%edx
692	movl	104(%ebp),%ebx
693	xorl	%ebx,%eax
694	movl	108(%ebp),%ecx
695	xorl	%edi,%eax
696	xorl	%edi,%edx
697	xorl	%ecx,%edx
698	andl	$0xfcfcfcfc,%eax
699	xorl	%ebx,%ebx
700	andl	$0xcfcfcfcf,%edx
701	xorl	%ecx,%ecx
702	movb	%al,%bl
703	movb	%ah,%cl
704	rorl	$4,%edx
705	movl	4(%esp),%ebp
706	xorl	(%ebp,%ebx,1),%esi
707	movb	%dl,%bl
708	xorl	0x200(%ebp,%ecx,1),%esi
709	movb	%dh,%cl
710	shrl	$16,%eax
711	xorl	0x100(%ebp,%ebx,1),%esi
712	movb	%ah,%bl
713	shrl	$16,%edx
714	xorl	0x300(%ebp,%ecx,1),%esi
715	movb	%dh,%cl
716	andl	$0xff,%eax
717	andl	$0xff,%edx
718	movl	0x600(%ebp,%ebx,1),%ebx
719	xorl	%ebx,%esi
720	movl	0x700(%ebp,%ecx,1),%ebx
721	xorl	%ebx,%esi
722	movl	0x400(%ebp,%eax,1),%ebx
723	xorl	%ebx,%esi
724	movl	0x500(%ebp,%edx,1),%ebx
725	xorl	%ebx,%esi
726	movl	32(%esp),%ebp
727
728	# Round 14
729	movl	36(%esp),%eax
730	movl	%esi,%edx
731	shrl	$16,%edx
732	movl	40(%esp),%ecx
733	xorl	%esi,%edx
734	andl	%edx,%eax
735	andl	%ecx,%edx
736	movl	%eax,%ebx
737	shll	$16,%ebx
738	movl	%edx,%ecx
739	shll	$16,%ecx
740	xorl	%ebx,%eax
741	xorl	%ecx,%edx
742	movl	112(%ebp),%ebx
743	xorl	%ebx,%eax
744	movl	116(%ebp),%ecx
745	xorl	%esi,%eax
746	xorl	%esi,%edx
747	xorl	%ecx,%edx
748	andl	$0xfcfcfcfc,%eax
749	xorl	%ebx,%ebx
750	andl	$0xcfcfcfcf,%edx
751	xorl	%ecx,%ecx
752	movb	%al,%bl
753	movb	%ah,%cl
754	rorl	$4,%edx
755	movl	4(%esp),%ebp
756	xorl	(%ebp,%ebx,1),%edi
757	movb	%dl,%bl
758	xorl	0x200(%ebp,%ecx,1),%edi
759	movb	%dh,%cl
760	shrl	$16,%eax
761	xorl	0x100(%ebp,%ebx,1),%edi
762	movb	%ah,%bl
763	shrl	$16,%edx
764	xorl	0x300(%ebp,%ecx,1),%edi
765	movb	%dh,%cl
766	andl	$0xff,%eax
767	andl	$0xff,%edx
768	movl	0x600(%ebp,%ebx,1),%ebx
769	xorl	%ebx,%edi
770	movl	0x700(%ebp,%ecx,1),%ebx
771	xorl	%ebx,%edi
772	movl	0x400(%ebp,%eax,1),%ebx
773	xorl	%ebx,%edi
774	movl	0x500(%ebp,%edx,1),%ebx
775	xorl	%ebx,%edi
776	movl	32(%esp),%ebp
777
778	# Round 15
779	movl	36(%esp),%eax
780	movl	%edi,%edx
781	shrl	$16,%edx
782	movl	40(%esp),%ecx
783	xorl	%edi,%edx
784	andl	%edx,%eax
785	andl	%ecx,%edx
786	movl	%eax,%ebx
787	shll	$16,%ebx
788	movl	%edx,%ecx
789	shll	$16,%ecx
790	xorl	%ebx,%eax
791	xorl	%ecx,%edx
792	movl	120(%ebp),%ebx
793	xorl	%ebx,%eax
794	movl	124(%ebp),%ecx
795	xorl	%edi,%eax
796	xorl	%edi,%edx
797	xorl	%ecx,%edx
798	andl	$0xfcfcfcfc,%eax
799	xorl	%ebx,%ebx
800	andl	$0xcfcfcfcf,%edx
801	xorl	%ecx,%ecx
802	movb	%al,%bl
803	movb	%ah,%cl
804	rorl	$4,%edx
805	movl	4(%esp),%ebp
806	xorl	(%ebp,%ebx,1),%esi
807	movb	%dl,%bl
808	xorl	0x200(%ebp,%ecx,1),%esi
809	movb	%dh,%cl
810	shrl	$16,%eax
811	xorl	0x100(%ebp,%ebx,1),%esi
812	movb	%ah,%bl
813	shrl	$16,%edx
814	xorl	0x300(%ebp,%ecx,1),%esi
815	movb	%dh,%cl
816	andl	$0xff,%eax
817	andl	$0xff,%edx
818	movl	0x600(%ebp,%ebx,1),%ebx
819	xorl	%ebx,%esi
820	movl	0x700(%ebp,%ecx,1),%ebx
821	xorl	%ebx,%esi
822	movl	0x400(%ebp,%eax,1),%ebx
823	xorl	%ebx,%esi
824	movl	0x500(%ebp,%edx,1),%ebx
825	xorl	%ebx,%esi
826	movl	32(%esp),%ebp
827	movl	(%esp),%ebx
828	movl	%edi,%eax
829	decl	%ebx
830	movl	%esi,%edi
831	movl	%eax,%esi
832	movl	%ebx,(%esp)
833	jnz	L001start
834
835	# FP
836	movl	28(%esp),%edx
837	rorl	$1,%edi
838	movl	%esi,%eax
839	xorl	%edi,%esi
840	andl	$0xaaaaaaaa,%esi
841	xorl	%esi,%eax
842	xorl	%esi,%edi
843
844	roll	$23,%eax
845	movl	%eax,%esi
846	xorl	%edi,%eax
847	andl	$0x03fc03fc,%eax
848	xorl	%eax,%esi
849	xorl	%eax,%edi
850
851	roll	$10,%esi
852	movl	%esi,%eax
853	xorl	%edi,%esi
854	andl	$0x33333333,%esi
855	xorl	%esi,%eax
856	xorl	%esi,%edi
857
858	roll	$18,%edi
859	movl	%edi,%esi
860	xorl	%eax,%edi
861	andl	$0xfff0000f,%edi
862	xorl	%edi,%esi
863	xorl	%edi,%eax
864
865	roll	$12,%esi
866	movl	%esi,%edi
867	xorl	%eax,%esi
868	andl	$0xf0f0f0f0,%esi
869	xorl	%esi,%edi
870	xorl	%esi,%eax
871
872	rorl	$4,%eax
873	movl	%eax,(%edx)
874	movl	%edi,4(%edx)
875	addl	$8,%esp
876	popl	%edi
877	popl	%esi
878	popl	%ebx
879	popl	%ebp
880	ret
881.section __IMPORT,__pointers,non_lazy_symbol_pointers
882L_DES_SPtrans$non_lazy_ptr:
883.indirect_symbol	_DES_SPtrans
884.long	0
885