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