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