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