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