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