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