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