]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - secure/lib/libcrypto/i386/rc5-586.S
- Make libcrypto.so position independent on i386.
[FreeBSD/stable/10.git] / secure / lib / libcrypto / i386 / rc5-586.S
1 # $FreeBSD$
2 # Do not modify. This file is auto-generated from rc5-586.pl.
3 #ifdef PIC
4 .file   "rc5-586.S"
5 .text
6 .globl  RC5_32_encrypt
7 .type   RC5_32_encrypt,@function
8 .align  16
9 RC5_32_encrypt:
10 .L_RC5_32_encrypt_begin:
11
12         pushl   %ebp
13         pushl   %esi
14         pushl   %edi
15         movl    16(%esp),%edx
16         movl    20(%esp),%ebp
17
18         movl    (%edx),%edi
19         movl    4(%edx),%esi
20         pushl   %ebx
21         movl    (%ebp),%ebx
22         addl    4(%ebp),%edi
23         addl    8(%ebp),%esi
24         xorl    %esi,%edi
25         movl    12(%ebp),%eax
26         movl    %esi,%ecx
27         roll    %cl,%edi
28         addl    %eax,%edi
29         xorl    %edi,%esi
30         movl    16(%ebp),%eax
31         movl    %edi,%ecx
32         roll    %cl,%esi
33         addl    %eax,%esi
34         xorl    %esi,%edi
35         movl    20(%ebp),%eax
36         movl    %esi,%ecx
37         roll    %cl,%edi
38         addl    %eax,%edi
39         xorl    %edi,%esi
40         movl    24(%ebp),%eax
41         movl    %edi,%ecx
42         roll    %cl,%esi
43         addl    %eax,%esi
44         xorl    %esi,%edi
45         movl    28(%ebp),%eax
46         movl    %esi,%ecx
47         roll    %cl,%edi
48         addl    %eax,%edi
49         xorl    %edi,%esi
50         movl    32(%ebp),%eax
51         movl    %edi,%ecx
52         roll    %cl,%esi
53         addl    %eax,%esi
54         xorl    %esi,%edi
55         movl    36(%ebp),%eax
56         movl    %esi,%ecx
57         roll    %cl,%edi
58         addl    %eax,%edi
59         xorl    %edi,%esi
60         movl    40(%ebp),%eax
61         movl    %edi,%ecx
62         roll    %cl,%esi
63         addl    %eax,%esi
64         xorl    %esi,%edi
65         movl    44(%ebp),%eax
66         movl    %esi,%ecx
67         roll    %cl,%edi
68         addl    %eax,%edi
69         xorl    %edi,%esi
70         movl    48(%ebp),%eax
71         movl    %edi,%ecx
72         roll    %cl,%esi
73         addl    %eax,%esi
74         xorl    %esi,%edi
75         movl    52(%ebp),%eax
76         movl    %esi,%ecx
77         roll    %cl,%edi
78         addl    %eax,%edi
79         xorl    %edi,%esi
80         movl    56(%ebp),%eax
81         movl    %edi,%ecx
82         roll    %cl,%esi
83         addl    %eax,%esi
84         xorl    %esi,%edi
85         movl    60(%ebp),%eax
86         movl    %esi,%ecx
87         roll    %cl,%edi
88         addl    %eax,%edi
89         xorl    %edi,%esi
90         movl    64(%ebp),%eax
91         movl    %edi,%ecx
92         roll    %cl,%esi
93         addl    %eax,%esi
94         xorl    %esi,%edi
95         movl    68(%ebp),%eax
96         movl    %esi,%ecx
97         roll    %cl,%edi
98         addl    %eax,%edi
99         xorl    %edi,%esi
100         movl    72(%ebp),%eax
101         movl    %edi,%ecx
102         roll    %cl,%esi
103         addl    %eax,%esi
104         cmpl    $8,%ebx
105         je      .L000rc5_exit
106         xorl    %esi,%edi
107         movl    76(%ebp),%eax
108         movl    %esi,%ecx
109         roll    %cl,%edi
110         addl    %eax,%edi
111         xorl    %edi,%esi
112         movl    80(%ebp),%eax
113         movl    %edi,%ecx
114         roll    %cl,%esi
115         addl    %eax,%esi
116         xorl    %esi,%edi
117         movl    84(%ebp),%eax
118         movl    %esi,%ecx
119         roll    %cl,%edi
120         addl    %eax,%edi
121         xorl    %edi,%esi
122         movl    88(%ebp),%eax
123         movl    %edi,%ecx
124         roll    %cl,%esi
125         addl    %eax,%esi
126         xorl    %esi,%edi
127         movl    92(%ebp),%eax
128         movl    %esi,%ecx
129         roll    %cl,%edi
130         addl    %eax,%edi
131         xorl    %edi,%esi
132         movl    96(%ebp),%eax
133         movl    %edi,%ecx
134         roll    %cl,%esi
135         addl    %eax,%esi
136         xorl    %esi,%edi
137         movl    100(%ebp),%eax
138         movl    %esi,%ecx
139         roll    %cl,%edi
140         addl    %eax,%edi
141         xorl    %edi,%esi
142         movl    104(%ebp),%eax
143         movl    %edi,%ecx
144         roll    %cl,%esi
145         addl    %eax,%esi
146         cmpl    $12,%ebx
147         je      .L000rc5_exit
148         xorl    %esi,%edi
149         movl    108(%ebp),%eax
150         movl    %esi,%ecx
151         roll    %cl,%edi
152         addl    %eax,%edi
153         xorl    %edi,%esi
154         movl    112(%ebp),%eax
155         movl    %edi,%ecx
156         roll    %cl,%esi
157         addl    %eax,%esi
158         xorl    %esi,%edi
159         movl    116(%ebp),%eax
160         movl    %esi,%ecx
161         roll    %cl,%edi
162         addl    %eax,%edi
163         xorl    %edi,%esi
164         movl    120(%ebp),%eax
165         movl    %edi,%ecx
166         roll    %cl,%esi
167         addl    %eax,%esi
168         xorl    %esi,%edi
169         movl    124(%ebp),%eax
170         movl    %esi,%ecx
171         roll    %cl,%edi
172         addl    %eax,%edi
173         xorl    %edi,%esi
174         movl    128(%ebp),%eax
175         movl    %edi,%ecx
176         roll    %cl,%esi
177         addl    %eax,%esi
178         xorl    %esi,%edi
179         movl    132(%ebp),%eax
180         movl    %esi,%ecx
181         roll    %cl,%edi
182         addl    %eax,%edi
183         xorl    %edi,%esi
184         movl    136(%ebp),%eax
185         movl    %edi,%ecx
186         roll    %cl,%esi
187         addl    %eax,%esi
188 .L000rc5_exit:
189         movl    %edi,(%edx)
190         movl    %esi,4(%edx)
191         popl    %ebx
192         popl    %edi
193         popl    %esi
194         popl    %ebp
195         ret
196 .size   RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
197 .globl  RC5_32_decrypt
198 .type   RC5_32_decrypt,@function
199 .align  16
200 RC5_32_decrypt:
201 .L_RC5_32_decrypt_begin:
202
203         pushl   %ebp
204         pushl   %esi
205         pushl   %edi
206         movl    16(%esp),%edx
207         movl    20(%esp),%ebp
208
209         movl    (%edx),%edi
210         movl    4(%edx),%esi
211         pushl   %ebx
212         movl    (%ebp),%ebx
213         cmpl    $12,%ebx
214         je      .L001rc5_dec_12
215         cmpl    $8,%ebx
216         je      .L002rc5_dec_8
217         movl    136(%ebp),%eax
218         subl    %eax,%esi
219         movl    %edi,%ecx
220         rorl    %cl,%esi
221         xorl    %edi,%esi
222         movl    132(%ebp),%eax
223         subl    %eax,%edi
224         movl    %esi,%ecx
225         rorl    %cl,%edi
226         xorl    %esi,%edi
227         movl    128(%ebp),%eax
228         subl    %eax,%esi
229         movl    %edi,%ecx
230         rorl    %cl,%esi
231         xorl    %edi,%esi
232         movl    124(%ebp),%eax
233         subl    %eax,%edi
234         movl    %esi,%ecx
235         rorl    %cl,%edi
236         xorl    %esi,%edi
237         movl    120(%ebp),%eax
238         subl    %eax,%esi
239         movl    %edi,%ecx
240         rorl    %cl,%esi
241         xorl    %edi,%esi
242         movl    116(%ebp),%eax
243         subl    %eax,%edi
244         movl    %esi,%ecx
245         rorl    %cl,%edi
246         xorl    %esi,%edi
247         movl    112(%ebp),%eax
248         subl    %eax,%esi
249         movl    %edi,%ecx
250         rorl    %cl,%esi
251         xorl    %edi,%esi
252         movl    108(%ebp),%eax
253         subl    %eax,%edi
254         movl    %esi,%ecx
255         rorl    %cl,%edi
256         xorl    %esi,%edi
257 .L001rc5_dec_12:
258         movl    104(%ebp),%eax
259         subl    %eax,%esi
260         movl    %edi,%ecx
261         rorl    %cl,%esi
262         xorl    %edi,%esi
263         movl    100(%ebp),%eax
264         subl    %eax,%edi
265         movl    %esi,%ecx
266         rorl    %cl,%edi
267         xorl    %esi,%edi
268         movl    96(%ebp),%eax
269         subl    %eax,%esi
270         movl    %edi,%ecx
271         rorl    %cl,%esi
272         xorl    %edi,%esi
273         movl    92(%ebp),%eax
274         subl    %eax,%edi
275         movl    %esi,%ecx
276         rorl    %cl,%edi
277         xorl    %esi,%edi
278         movl    88(%ebp),%eax
279         subl    %eax,%esi
280         movl    %edi,%ecx
281         rorl    %cl,%esi
282         xorl    %edi,%esi
283         movl    84(%ebp),%eax
284         subl    %eax,%edi
285         movl    %esi,%ecx
286         rorl    %cl,%edi
287         xorl    %esi,%edi
288         movl    80(%ebp),%eax
289         subl    %eax,%esi
290         movl    %edi,%ecx
291         rorl    %cl,%esi
292         xorl    %edi,%esi
293         movl    76(%ebp),%eax
294         subl    %eax,%edi
295         movl    %esi,%ecx
296         rorl    %cl,%edi
297         xorl    %esi,%edi
298 .L002rc5_dec_8:
299         movl    72(%ebp),%eax
300         subl    %eax,%esi
301         movl    %edi,%ecx
302         rorl    %cl,%esi
303         xorl    %edi,%esi
304         movl    68(%ebp),%eax
305         subl    %eax,%edi
306         movl    %esi,%ecx
307         rorl    %cl,%edi
308         xorl    %esi,%edi
309         movl    64(%ebp),%eax
310         subl    %eax,%esi
311         movl    %edi,%ecx
312         rorl    %cl,%esi
313         xorl    %edi,%esi
314         movl    60(%ebp),%eax
315         subl    %eax,%edi
316         movl    %esi,%ecx
317         rorl    %cl,%edi
318         xorl    %esi,%edi
319         movl    56(%ebp),%eax
320         subl    %eax,%esi
321         movl    %edi,%ecx
322         rorl    %cl,%esi
323         xorl    %edi,%esi
324         movl    52(%ebp),%eax
325         subl    %eax,%edi
326         movl    %esi,%ecx
327         rorl    %cl,%edi
328         xorl    %esi,%edi
329         movl    48(%ebp),%eax
330         subl    %eax,%esi
331         movl    %edi,%ecx
332         rorl    %cl,%esi
333         xorl    %edi,%esi
334         movl    44(%ebp),%eax
335         subl    %eax,%edi
336         movl    %esi,%ecx
337         rorl    %cl,%edi
338         xorl    %esi,%edi
339         movl    40(%ebp),%eax
340         subl    %eax,%esi
341         movl    %edi,%ecx
342         rorl    %cl,%esi
343         xorl    %edi,%esi
344         movl    36(%ebp),%eax
345         subl    %eax,%edi
346         movl    %esi,%ecx
347         rorl    %cl,%edi
348         xorl    %esi,%edi
349         movl    32(%ebp),%eax
350         subl    %eax,%esi
351         movl    %edi,%ecx
352         rorl    %cl,%esi
353         xorl    %edi,%esi
354         movl    28(%ebp),%eax
355         subl    %eax,%edi
356         movl    %esi,%ecx
357         rorl    %cl,%edi
358         xorl    %esi,%edi
359         movl    24(%ebp),%eax
360         subl    %eax,%esi
361         movl    %edi,%ecx
362         rorl    %cl,%esi
363         xorl    %edi,%esi
364         movl    20(%ebp),%eax
365         subl    %eax,%edi
366         movl    %esi,%ecx
367         rorl    %cl,%edi
368         xorl    %esi,%edi
369         movl    16(%ebp),%eax
370         subl    %eax,%esi
371         movl    %edi,%ecx
372         rorl    %cl,%esi
373         xorl    %edi,%esi
374         movl    12(%ebp),%eax
375         subl    %eax,%edi
376         movl    %esi,%ecx
377         rorl    %cl,%edi
378         xorl    %esi,%edi
379         subl    8(%ebp),%esi
380         subl    4(%ebp),%edi
381 .L003rc5_exit:
382         movl    %edi,(%edx)
383         movl    %esi,4(%edx)
384         popl    %ebx
385         popl    %edi
386         popl    %esi
387         popl    %ebp
388         ret
389 .size   RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
390 .globl  RC5_32_cbc_encrypt
391 .type   RC5_32_cbc_encrypt,@function
392 .align  16
393 RC5_32_cbc_encrypt:
394 .L_RC5_32_cbc_encrypt_begin:
395
396         pushl   %ebp
397         pushl   %ebx
398         pushl   %esi
399         pushl   %edi
400         movl    28(%esp),%ebp
401
402         movl    36(%esp),%ebx
403         movl    (%ebx),%esi
404         movl    4(%ebx),%edi
405         pushl   %edi
406         pushl   %esi
407         pushl   %edi
408         pushl   %esi
409         movl    %esp,%ebx
410         movl    36(%esp),%esi
411         movl    40(%esp),%edi
412
413         movl    56(%esp),%ecx
414
415         movl    48(%esp),%eax
416         pushl   %eax
417         pushl   %ebx
418         cmpl    $0,%ecx
419         jz      .L004decrypt
420         andl    $4294967288,%ebp
421         movl    8(%esp),%eax
422         movl    12(%esp),%ebx
423         jz      .L005encrypt_finish
424 .L006encrypt_loop:
425         movl    (%esi),%ecx
426         movl    4(%esi),%edx
427         xorl    %ecx,%eax
428         xorl    %edx,%ebx
429         movl    %eax,8(%esp)
430         movl    %ebx,12(%esp)
431         call    .L_RC5_32_encrypt_begin
432         movl    8(%esp),%eax
433         movl    12(%esp),%ebx
434         movl    %eax,(%edi)
435         movl    %ebx,4(%edi)
436         addl    $8,%esi
437         addl    $8,%edi
438         subl    $8,%ebp
439         jnz     .L006encrypt_loop
440 .L005encrypt_finish:
441         movl    52(%esp),%ebp
442         andl    $7,%ebp
443         jz      .L007finish
444         call    .L008PIC_point
445 .L008PIC_point:
446         popl    %edx
447         leal    .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
448         movl    (%ecx,%ebp,4),%ebp
449         addl    %edx,%ebp
450         xorl    %ecx,%ecx
451         xorl    %edx,%edx
452         jmp     *%ebp
453 .L010ej7:
454         movb    6(%esi),%dh
455         shll    $8,%edx
456 .L011ej6:
457         movb    5(%esi),%dh
458 .L012ej5:
459         movb    4(%esi),%dl
460 .L013ej4:
461         movl    (%esi),%ecx
462         jmp     .L014ejend
463 .L015ej3:
464         movb    2(%esi),%ch
465         shll    $8,%ecx
466 .L016ej2:
467         movb    1(%esi),%ch
468 .L017ej1:
469         movb    (%esi),%cl
470 .L014ejend:
471         xorl    %ecx,%eax
472         xorl    %edx,%ebx
473         movl    %eax,8(%esp)
474         movl    %ebx,12(%esp)
475         call    .L_RC5_32_encrypt_begin
476         movl    8(%esp),%eax
477         movl    12(%esp),%ebx
478         movl    %eax,(%edi)
479         movl    %ebx,4(%edi)
480         jmp     .L007finish
481 .L004decrypt:
482         andl    $4294967288,%ebp
483         movl    16(%esp),%eax
484         movl    20(%esp),%ebx
485         jz      .L018decrypt_finish
486 .L019decrypt_loop:
487         movl    (%esi),%eax
488         movl    4(%esi),%ebx
489         movl    %eax,8(%esp)
490         movl    %ebx,12(%esp)
491         call    .L_RC5_32_decrypt_begin
492         movl    8(%esp),%eax
493         movl    12(%esp),%ebx
494         movl    16(%esp),%ecx
495         movl    20(%esp),%edx
496         xorl    %eax,%ecx
497         xorl    %ebx,%edx
498         movl    (%esi),%eax
499         movl    4(%esi),%ebx
500         movl    %ecx,(%edi)
501         movl    %edx,4(%edi)
502         movl    %eax,16(%esp)
503         movl    %ebx,20(%esp)
504         addl    $8,%esi
505         addl    $8,%edi
506         subl    $8,%ebp
507         jnz     .L019decrypt_loop
508 .L018decrypt_finish:
509         movl    52(%esp),%ebp
510         andl    $7,%ebp
511         jz      .L007finish
512         movl    (%esi),%eax
513         movl    4(%esi),%ebx
514         movl    %eax,8(%esp)
515         movl    %ebx,12(%esp)
516         call    .L_RC5_32_decrypt_begin
517         movl    8(%esp),%eax
518         movl    12(%esp),%ebx
519         movl    16(%esp),%ecx
520         movl    20(%esp),%edx
521         xorl    %eax,%ecx
522         xorl    %ebx,%edx
523         movl    (%esi),%eax
524         movl    4(%esi),%ebx
525 .L020dj7:
526         rorl    $16,%edx
527         movb    %dl,6(%edi)
528         shrl    $16,%edx
529 .L021dj6:
530         movb    %dh,5(%edi)
531 .L022dj5:
532         movb    %dl,4(%edi)
533 .L023dj4:
534         movl    %ecx,(%edi)
535         jmp     .L024djend
536 .L025dj3:
537         rorl    $16,%ecx
538         movb    %cl,2(%edi)
539         shll    $16,%ecx
540 .L026dj2:
541         movb    %ch,1(%esi)
542 .L027dj1:
543         movb    %cl,(%esi)
544 .L024djend:
545         jmp     .L007finish
546 .L007finish:
547         movl    60(%esp),%ecx
548         addl    $24,%esp
549         movl    %eax,(%ecx)
550         movl    %ebx,4(%ecx)
551         popl    %edi
552         popl    %esi
553         popl    %ebx
554         popl    %ebp
555         ret
556 .align  64
557 .L009cbc_enc_jmp_table:
558 .long   0
559 .long   .L017ej1-.L008PIC_point
560 .long   .L016ej2-.L008PIC_point
561 .long   .L015ej3-.L008PIC_point
562 .long   .L013ej4-.L008PIC_point
563 .long   .L012ej5-.L008PIC_point
564 .long   .L011ej6-.L008PIC_point
565 .long   .L010ej7-.L008PIC_point
566 .align  64
567 .size   RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin
568 #else
569 .file   "rc5-586.S"
570 .text
571 .globl  RC5_32_encrypt
572 .type   RC5_32_encrypt,@function
573 .align  16
574 RC5_32_encrypt:
575 .L_RC5_32_encrypt_begin:
576
577         pushl   %ebp
578         pushl   %esi
579         pushl   %edi
580         movl    16(%esp),%edx
581         movl    20(%esp),%ebp
582
583         movl    (%edx),%edi
584         movl    4(%edx),%esi
585         pushl   %ebx
586         movl    (%ebp),%ebx
587         addl    4(%ebp),%edi
588         addl    8(%ebp),%esi
589         xorl    %esi,%edi
590         movl    12(%ebp),%eax
591         movl    %esi,%ecx
592         roll    %cl,%edi
593         addl    %eax,%edi
594         xorl    %edi,%esi
595         movl    16(%ebp),%eax
596         movl    %edi,%ecx
597         roll    %cl,%esi
598         addl    %eax,%esi
599         xorl    %esi,%edi
600         movl    20(%ebp),%eax
601         movl    %esi,%ecx
602         roll    %cl,%edi
603         addl    %eax,%edi
604         xorl    %edi,%esi
605         movl    24(%ebp),%eax
606         movl    %edi,%ecx
607         roll    %cl,%esi
608         addl    %eax,%esi
609         xorl    %esi,%edi
610         movl    28(%ebp),%eax
611         movl    %esi,%ecx
612         roll    %cl,%edi
613         addl    %eax,%edi
614         xorl    %edi,%esi
615         movl    32(%ebp),%eax
616         movl    %edi,%ecx
617         roll    %cl,%esi
618         addl    %eax,%esi
619         xorl    %esi,%edi
620         movl    36(%ebp),%eax
621         movl    %esi,%ecx
622         roll    %cl,%edi
623         addl    %eax,%edi
624         xorl    %edi,%esi
625         movl    40(%ebp),%eax
626         movl    %edi,%ecx
627         roll    %cl,%esi
628         addl    %eax,%esi
629         xorl    %esi,%edi
630         movl    44(%ebp),%eax
631         movl    %esi,%ecx
632         roll    %cl,%edi
633         addl    %eax,%edi
634         xorl    %edi,%esi
635         movl    48(%ebp),%eax
636         movl    %edi,%ecx
637         roll    %cl,%esi
638         addl    %eax,%esi
639         xorl    %esi,%edi
640         movl    52(%ebp),%eax
641         movl    %esi,%ecx
642         roll    %cl,%edi
643         addl    %eax,%edi
644         xorl    %edi,%esi
645         movl    56(%ebp),%eax
646         movl    %edi,%ecx
647         roll    %cl,%esi
648         addl    %eax,%esi
649         xorl    %esi,%edi
650         movl    60(%ebp),%eax
651         movl    %esi,%ecx
652         roll    %cl,%edi
653         addl    %eax,%edi
654         xorl    %edi,%esi
655         movl    64(%ebp),%eax
656         movl    %edi,%ecx
657         roll    %cl,%esi
658         addl    %eax,%esi
659         xorl    %esi,%edi
660         movl    68(%ebp),%eax
661         movl    %esi,%ecx
662         roll    %cl,%edi
663         addl    %eax,%edi
664         xorl    %edi,%esi
665         movl    72(%ebp),%eax
666         movl    %edi,%ecx
667         roll    %cl,%esi
668         addl    %eax,%esi
669         cmpl    $8,%ebx
670         je      .L000rc5_exit
671         xorl    %esi,%edi
672         movl    76(%ebp),%eax
673         movl    %esi,%ecx
674         roll    %cl,%edi
675         addl    %eax,%edi
676         xorl    %edi,%esi
677         movl    80(%ebp),%eax
678         movl    %edi,%ecx
679         roll    %cl,%esi
680         addl    %eax,%esi
681         xorl    %esi,%edi
682         movl    84(%ebp),%eax
683         movl    %esi,%ecx
684         roll    %cl,%edi
685         addl    %eax,%edi
686         xorl    %edi,%esi
687         movl    88(%ebp),%eax
688         movl    %edi,%ecx
689         roll    %cl,%esi
690         addl    %eax,%esi
691         xorl    %esi,%edi
692         movl    92(%ebp),%eax
693         movl    %esi,%ecx
694         roll    %cl,%edi
695         addl    %eax,%edi
696         xorl    %edi,%esi
697         movl    96(%ebp),%eax
698         movl    %edi,%ecx
699         roll    %cl,%esi
700         addl    %eax,%esi
701         xorl    %esi,%edi
702         movl    100(%ebp),%eax
703         movl    %esi,%ecx
704         roll    %cl,%edi
705         addl    %eax,%edi
706         xorl    %edi,%esi
707         movl    104(%ebp),%eax
708         movl    %edi,%ecx
709         roll    %cl,%esi
710         addl    %eax,%esi
711         cmpl    $12,%ebx
712         je      .L000rc5_exit
713         xorl    %esi,%edi
714         movl    108(%ebp),%eax
715         movl    %esi,%ecx
716         roll    %cl,%edi
717         addl    %eax,%edi
718         xorl    %edi,%esi
719         movl    112(%ebp),%eax
720         movl    %edi,%ecx
721         roll    %cl,%esi
722         addl    %eax,%esi
723         xorl    %esi,%edi
724         movl    116(%ebp),%eax
725         movl    %esi,%ecx
726         roll    %cl,%edi
727         addl    %eax,%edi
728         xorl    %edi,%esi
729         movl    120(%ebp),%eax
730         movl    %edi,%ecx
731         roll    %cl,%esi
732         addl    %eax,%esi
733         xorl    %esi,%edi
734         movl    124(%ebp),%eax
735         movl    %esi,%ecx
736         roll    %cl,%edi
737         addl    %eax,%edi
738         xorl    %edi,%esi
739         movl    128(%ebp),%eax
740         movl    %edi,%ecx
741         roll    %cl,%esi
742         addl    %eax,%esi
743         xorl    %esi,%edi
744         movl    132(%ebp),%eax
745         movl    %esi,%ecx
746         roll    %cl,%edi
747         addl    %eax,%edi
748         xorl    %edi,%esi
749         movl    136(%ebp),%eax
750         movl    %edi,%ecx
751         roll    %cl,%esi
752         addl    %eax,%esi
753 .L000rc5_exit:
754         movl    %edi,(%edx)
755         movl    %esi,4(%edx)
756         popl    %ebx
757         popl    %edi
758         popl    %esi
759         popl    %ebp
760         ret
761 .size   RC5_32_encrypt,.-.L_RC5_32_encrypt_begin
762 .globl  RC5_32_decrypt
763 .type   RC5_32_decrypt,@function
764 .align  16
765 RC5_32_decrypt:
766 .L_RC5_32_decrypt_begin:
767
768         pushl   %ebp
769         pushl   %esi
770         pushl   %edi
771         movl    16(%esp),%edx
772         movl    20(%esp),%ebp
773
774         movl    (%edx),%edi
775         movl    4(%edx),%esi
776         pushl   %ebx
777         movl    (%ebp),%ebx
778         cmpl    $12,%ebx
779         je      .L001rc5_dec_12
780         cmpl    $8,%ebx
781         je      .L002rc5_dec_8
782         movl    136(%ebp),%eax
783         subl    %eax,%esi
784         movl    %edi,%ecx
785         rorl    %cl,%esi
786         xorl    %edi,%esi
787         movl    132(%ebp),%eax
788         subl    %eax,%edi
789         movl    %esi,%ecx
790         rorl    %cl,%edi
791         xorl    %esi,%edi
792         movl    128(%ebp),%eax
793         subl    %eax,%esi
794         movl    %edi,%ecx
795         rorl    %cl,%esi
796         xorl    %edi,%esi
797         movl    124(%ebp),%eax
798         subl    %eax,%edi
799         movl    %esi,%ecx
800         rorl    %cl,%edi
801         xorl    %esi,%edi
802         movl    120(%ebp),%eax
803         subl    %eax,%esi
804         movl    %edi,%ecx
805         rorl    %cl,%esi
806         xorl    %edi,%esi
807         movl    116(%ebp),%eax
808         subl    %eax,%edi
809         movl    %esi,%ecx
810         rorl    %cl,%edi
811         xorl    %esi,%edi
812         movl    112(%ebp),%eax
813         subl    %eax,%esi
814         movl    %edi,%ecx
815         rorl    %cl,%esi
816         xorl    %edi,%esi
817         movl    108(%ebp),%eax
818         subl    %eax,%edi
819         movl    %esi,%ecx
820         rorl    %cl,%edi
821         xorl    %esi,%edi
822 .L001rc5_dec_12:
823         movl    104(%ebp),%eax
824         subl    %eax,%esi
825         movl    %edi,%ecx
826         rorl    %cl,%esi
827         xorl    %edi,%esi
828         movl    100(%ebp),%eax
829         subl    %eax,%edi
830         movl    %esi,%ecx
831         rorl    %cl,%edi
832         xorl    %esi,%edi
833         movl    96(%ebp),%eax
834         subl    %eax,%esi
835         movl    %edi,%ecx
836         rorl    %cl,%esi
837         xorl    %edi,%esi
838         movl    92(%ebp),%eax
839         subl    %eax,%edi
840         movl    %esi,%ecx
841         rorl    %cl,%edi
842         xorl    %esi,%edi
843         movl    88(%ebp),%eax
844         subl    %eax,%esi
845         movl    %edi,%ecx
846         rorl    %cl,%esi
847         xorl    %edi,%esi
848         movl    84(%ebp),%eax
849         subl    %eax,%edi
850         movl    %esi,%ecx
851         rorl    %cl,%edi
852         xorl    %esi,%edi
853         movl    80(%ebp),%eax
854         subl    %eax,%esi
855         movl    %edi,%ecx
856         rorl    %cl,%esi
857         xorl    %edi,%esi
858         movl    76(%ebp),%eax
859         subl    %eax,%edi
860         movl    %esi,%ecx
861         rorl    %cl,%edi
862         xorl    %esi,%edi
863 .L002rc5_dec_8:
864         movl    72(%ebp),%eax
865         subl    %eax,%esi
866         movl    %edi,%ecx
867         rorl    %cl,%esi
868         xorl    %edi,%esi
869         movl    68(%ebp),%eax
870         subl    %eax,%edi
871         movl    %esi,%ecx
872         rorl    %cl,%edi
873         xorl    %esi,%edi
874         movl    64(%ebp),%eax
875         subl    %eax,%esi
876         movl    %edi,%ecx
877         rorl    %cl,%esi
878         xorl    %edi,%esi
879         movl    60(%ebp),%eax
880         subl    %eax,%edi
881         movl    %esi,%ecx
882         rorl    %cl,%edi
883         xorl    %esi,%edi
884         movl    56(%ebp),%eax
885         subl    %eax,%esi
886         movl    %edi,%ecx
887         rorl    %cl,%esi
888         xorl    %edi,%esi
889         movl    52(%ebp),%eax
890         subl    %eax,%edi
891         movl    %esi,%ecx
892         rorl    %cl,%edi
893         xorl    %esi,%edi
894         movl    48(%ebp),%eax
895         subl    %eax,%esi
896         movl    %edi,%ecx
897         rorl    %cl,%esi
898         xorl    %edi,%esi
899         movl    44(%ebp),%eax
900         subl    %eax,%edi
901         movl    %esi,%ecx
902         rorl    %cl,%edi
903         xorl    %esi,%edi
904         movl    40(%ebp),%eax
905         subl    %eax,%esi
906         movl    %edi,%ecx
907         rorl    %cl,%esi
908         xorl    %edi,%esi
909         movl    36(%ebp),%eax
910         subl    %eax,%edi
911         movl    %esi,%ecx
912         rorl    %cl,%edi
913         xorl    %esi,%edi
914         movl    32(%ebp),%eax
915         subl    %eax,%esi
916         movl    %edi,%ecx
917         rorl    %cl,%esi
918         xorl    %edi,%esi
919         movl    28(%ebp),%eax
920         subl    %eax,%edi
921         movl    %esi,%ecx
922         rorl    %cl,%edi
923         xorl    %esi,%edi
924         movl    24(%ebp),%eax
925         subl    %eax,%esi
926         movl    %edi,%ecx
927         rorl    %cl,%esi
928         xorl    %edi,%esi
929         movl    20(%ebp),%eax
930         subl    %eax,%edi
931         movl    %esi,%ecx
932         rorl    %cl,%edi
933         xorl    %esi,%edi
934         movl    16(%ebp),%eax
935         subl    %eax,%esi
936         movl    %edi,%ecx
937         rorl    %cl,%esi
938         xorl    %edi,%esi
939         movl    12(%ebp),%eax
940         subl    %eax,%edi
941         movl    %esi,%ecx
942         rorl    %cl,%edi
943         xorl    %esi,%edi
944         subl    8(%ebp),%esi
945         subl    4(%ebp),%edi
946 .L003rc5_exit:
947         movl    %edi,(%edx)
948         movl    %esi,4(%edx)
949         popl    %ebx
950         popl    %edi
951         popl    %esi
952         popl    %ebp
953         ret
954 .size   RC5_32_decrypt,.-.L_RC5_32_decrypt_begin
955 .globl  RC5_32_cbc_encrypt
956 .type   RC5_32_cbc_encrypt,@function
957 .align  16
958 RC5_32_cbc_encrypt:
959 .L_RC5_32_cbc_encrypt_begin:
960
961         pushl   %ebp
962         pushl   %ebx
963         pushl   %esi
964         pushl   %edi
965         movl    28(%esp),%ebp
966
967         movl    36(%esp),%ebx
968         movl    (%ebx),%esi
969         movl    4(%ebx),%edi
970         pushl   %edi
971         pushl   %esi
972         pushl   %edi
973         pushl   %esi
974         movl    %esp,%ebx
975         movl    36(%esp),%esi
976         movl    40(%esp),%edi
977
978         movl    56(%esp),%ecx
979
980         movl    48(%esp),%eax
981         pushl   %eax
982         pushl   %ebx
983         cmpl    $0,%ecx
984         jz      .L004decrypt
985         andl    $4294967288,%ebp
986         movl    8(%esp),%eax
987         movl    12(%esp),%ebx
988         jz      .L005encrypt_finish
989 .L006encrypt_loop:
990         movl    (%esi),%ecx
991         movl    4(%esi),%edx
992         xorl    %ecx,%eax
993         xorl    %edx,%ebx
994         movl    %eax,8(%esp)
995         movl    %ebx,12(%esp)
996         call    .L_RC5_32_encrypt_begin
997         movl    8(%esp),%eax
998         movl    12(%esp),%ebx
999         movl    %eax,(%edi)
1000         movl    %ebx,4(%edi)
1001         addl    $8,%esi
1002         addl    $8,%edi
1003         subl    $8,%ebp
1004         jnz     .L006encrypt_loop
1005 .L005encrypt_finish:
1006         movl    52(%esp),%ebp
1007         andl    $7,%ebp
1008         jz      .L007finish
1009         call    .L008PIC_point
1010 .L008PIC_point:
1011         popl    %edx
1012         leal    .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
1013         movl    (%ecx,%ebp,4),%ebp
1014         addl    %edx,%ebp
1015         xorl    %ecx,%ecx
1016         xorl    %edx,%edx
1017         jmp     *%ebp
1018 .L010ej7:
1019         movb    6(%esi),%dh
1020         shll    $8,%edx
1021 .L011ej6:
1022         movb    5(%esi),%dh
1023 .L012ej5:
1024         movb    4(%esi),%dl
1025 .L013ej4:
1026         movl    (%esi),%ecx
1027         jmp     .L014ejend
1028 .L015ej3:
1029         movb    2(%esi),%ch
1030         shll    $8,%ecx
1031 .L016ej2:
1032         movb    1(%esi),%ch
1033 .L017ej1:
1034         movb    (%esi),%cl
1035 .L014ejend:
1036         xorl    %ecx,%eax
1037         xorl    %edx,%ebx
1038         movl    %eax,8(%esp)
1039         movl    %ebx,12(%esp)
1040         call    .L_RC5_32_encrypt_begin
1041         movl    8(%esp),%eax
1042         movl    12(%esp),%ebx
1043         movl    %eax,(%edi)
1044         movl    %ebx,4(%edi)
1045         jmp     .L007finish
1046 .L004decrypt:
1047         andl    $4294967288,%ebp
1048         movl    16(%esp),%eax
1049         movl    20(%esp),%ebx
1050         jz      .L018decrypt_finish
1051 .L019decrypt_loop:
1052         movl    (%esi),%eax
1053         movl    4(%esi),%ebx
1054         movl    %eax,8(%esp)
1055         movl    %ebx,12(%esp)
1056         call    .L_RC5_32_decrypt_begin
1057         movl    8(%esp),%eax
1058         movl    12(%esp),%ebx
1059         movl    16(%esp),%ecx
1060         movl    20(%esp),%edx
1061         xorl    %eax,%ecx
1062         xorl    %ebx,%edx
1063         movl    (%esi),%eax
1064         movl    4(%esi),%ebx
1065         movl    %ecx,(%edi)
1066         movl    %edx,4(%edi)
1067         movl    %eax,16(%esp)
1068         movl    %ebx,20(%esp)
1069         addl    $8,%esi
1070         addl    $8,%edi
1071         subl    $8,%ebp
1072         jnz     .L019decrypt_loop
1073 .L018decrypt_finish:
1074         movl    52(%esp),%ebp
1075         andl    $7,%ebp
1076         jz      .L007finish
1077         movl    (%esi),%eax
1078         movl    4(%esi),%ebx
1079         movl    %eax,8(%esp)
1080         movl    %ebx,12(%esp)
1081         call    .L_RC5_32_decrypt_begin
1082         movl    8(%esp),%eax
1083         movl    12(%esp),%ebx
1084         movl    16(%esp),%ecx
1085         movl    20(%esp),%edx
1086         xorl    %eax,%ecx
1087         xorl    %ebx,%edx
1088         movl    (%esi),%eax
1089         movl    4(%esi),%ebx
1090 .L020dj7:
1091         rorl    $16,%edx
1092         movb    %dl,6(%edi)
1093         shrl    $16,%edx
1094 .L021dj6:
1095         movb    %dh,5(%edi)
1096 .L022dj5:
1097         movb    %dl,4(%edi)
1098 .L023dj4:
1099         movl    %ecx,(%edi)
1100         jmp     .L024djend
1101 .L025dj3:
1102         rorl    $16,%ecx
1103         movb    %cl,2(%edi)
1104         shll    $16,%ecx
1105 .L026dj2:
1106         movb    %ch,1(%esi)
1107 .L027dj1:
1108         movb    %cl,(%esi)
1109 .L024djend:
1110         jmp     .L007finish
1111 .L007finish:
1112         movl    60(%esp),%ecx
1113         addl    $24,%esp
1114         movl    %eax,(%ecx)
1115         movl    %ebx,4(%ecx)
1116         popl    %edi
1117         popl    %esi
1118         popl    %ebx
1119         popl    %ebp
1120         ret
1121 .align  64
1122 .L009cbc_enc_jmp_table:
1123 .long   0
1124 .long   .L017ej1-.L008PIC_point
1125 .long   .L016ej2-.L008PIC_point
1126 .long   .L015ej3-.L008PIC_point
1127 .long   .L013ej4-.L008PIC_point
1128 .long   .L012ej5-.L008PIC_point
1129 .long   .L011ej6-.L008PIC_point
1130 .long   .L010ej7-.L008PIC_point
1131 .align  64
1132 .size   RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin
1133 #endif