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