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