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