Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/i386/des-586.S
39482 views
1
/* Do not modify. This file is auto-generated from des-586.pl. */
2
#ifdef PIC
3
.text
4
.globl DES_SPtrans
5
.type _x86_DES_encrypt,@function
6
.align 16
7
_x86_DES_encrypt:
8
#ifdef __CET__
9
10
.byte 243,15,30,251
11
#endif
12
13
pushl %ecx
14
15
movl (%ecx),%eax
16
xorl %ebx,%ebx
17
movl 4(%ecx),%edx
18
xorl %esi,%eax
19
xorl %ecx,%ecx
20
xorl %esi,%edx
21
andl $0xfcfcfcfc,%eax
22
andl $0xcfcfcfcf,%edx
23
movb %al,%bl
24
movb %ah,%cl
25
rorl $4,%edx
26
xorl (%ebp,%ebx,1),%edi
27
movb %dl,%bl
28
xorl 0x200(%ebp,%ecx,1),%edi
29
movb %dh,%cl
30
shrl $16,%eax
31
xorl 0x100(%ebp,%ebx,1),%edi
32
movb %ah,%bl
33
shrl $16,%edx
34
xorl 0x300(%ebp,%ecx,1),%edi
35
movb %dh,%cl
36
andl $0xff,%eax
37
andl $0xff,%edx
38
xorl 0x600(%ebp,%ebx,1),%edi
39
xorl 0x700(%ebp,%ecx,1),%edi
40
movl (%esp),%ecx
41
xorl 0x400(%ebp,%eax,1),%edi
42
xorl 0x500(%ebp,%edx,1),%edi
43
44
movl 8(%ecx),%eax
45
xorl %ebx,%ebx
46
movl 12(%ecx),%edx
47
xorl %edi,%eax
48
xorl %ecx,%ecx
49
xorl %edi,%edx
50
andl $0xfcfcfcfc,%eax
51
andl $0xcfcfcfcf,%edx
52
movb %al,%bl
53
movb %ah,%cl
54
rorl $4,%edx
55
xorl (%ebp,%ebx,1),%esi
56
movb %dl,%bl
57
xorl 0x200(%ebp,%ecx,1),%esi
58
movb %dh,%cl
59
shrl $16,%eax
60
xorl 0x100(%ebp,%ebx,1),%esi
61
movb %ah,%bl
62
shrl $16,%edx
63
xorl 0x300(%ebp,%ecx,1),%esi
64
movb %dh,%cl
65
andl $0xff,%eax
66
andl $0xff,%edx
67
xorl 0x600(%ebp,%ebx,1),%esi
68
xorl 0x700(%ebp,%ecx,1),%esi
69
movl (%esp),%ecx
70
xorl 0x400(%ebp,%eax,1),%esi
71
xorl 0x500(%ebp,%edx,1),%esi
72
73
movl 16(%ecx),%eax
74
xorl %ebx,%ebx
75
movl 20(%ecx),%edx
76
xorl %esi,%eax
77
xorl %ecx,%ecx
78
xorl %esi,%edx
79
andl $0xfcfcfcfc,%eax
80
andl $0xcfcfcfcf,%edx
81
movb %al,%bl
82
movb %ah,%cl
83
rorl $4,%edx
84
xorl (%ebp,%ebx,1),%edi
85
movb %dl,%bl
86
xorl 0x200(%ebp,%ecx,1),%edi
87
movb %dh,%cl
88
shrl $16,%eax
89
xorl 0x100(%ebp,%ebx,1),%edi
90
movb %ah,%bl
91
shrl $16,%edx
92
xorl 0x300(%ebp,%ecx,1),%edi
93
movb %dh,%cl
94
andl $0xff,%eax
95
andl $0xff,%edx
96
xorl 0x600(%ebp,%ebx,1),%edi
97
xorl 0x700(%ebp,%ecx,1),%edi
98
movl (%esp),%ecx
99
xorl 0x400(%ebp,%eax,1),%edi
100
xorl 0x500(%ebp,%edx,1),%edi
101
102
movl 24(%ecx),%eax
103
xorl %ebx,%ebx
104
movl 28(%ecx),%edx
105
xorl %edi,%eax
106
xorl %ecx,%ecx
107
xorl %edi,%edx
108
andl $0xfcfcfcfc,%eax
109
andl $0xcfcfcfcf,%edx
110
movb %al,%bl
111
movb %ah,%cl
112
rorl $4,%edx
113
xorl (%ebp,%ebx,1),%esi
114
movb %dl,%bl
115
xorl 0x200(%ebp,%ecx,1),%esi
116
movb %dh,%cl
117
shrl $16,%eax
118
xorl 0x100(%ebp,%ebx,1),%esi
119
movb %ah,%bl
120
shrl $16,%edx
121
xorl 0x300(%ebp,%ecx,1),%esi
122
movb %dh,%cl
123
andl $0xff,%eax
124
andl $0xff,%edx
125
xorl 0x600(%ebp,%ebx,1),%esi
126
xorl 0x700(%ebp,%ecx,1),%esi
127
movl (%esp),%ecx
128
xorl 0x400(%ebp,%eax,1),%esi
129
xorl 0x500(%ebp,%edx,1),%esi
130
131
movl 32(%ecx),%eax
132
xorl %ebx,%ebx
133
movl 36(%ecx),%edx
134
xorl %esi,%eax
135
xorl %ecx,%ecx
136
xorl %esi,%edx
137
andl $0xfcfcfcfc,%eax
138
andl $0xcfcfcfcf,%edx
139
movb %al,%bl
140
movb %ah,%cl
141
rorl $4,%edx
142
xorl (%ebp,%ebx,1),%edi
143
movb %dl,%bl
144
xorl 0x200(%ebp,%ecx,1),%edi
145
movb %dh,%cl
146
shrl $16,%eax
147
xorl 0x100(%ebp,%ebx,1),%edi
148
movb %ah,%bl
149
shrl $16,%edx
150
xorl 0x300(%ebp,%ecx,1),%edi
151
movb %dh,%cl
152
andl $0xff,%eax
153
andl $0xff,%edx
154
xorl 0x600(%ebp,%ebx,1),%edi
155
xorl 0x700(%ebp,%ecx,1),%edi
156
movl (%esp),%ecx
157
xorl 0x400(%ebp,%eax,1),%edi
158
xorl 0x500(%ebp,%edx,1),%edi
159
160
movl 40(%ecx),%eax
161
xorl %ebx,%ebx
162
movl 44(%ecx),%edx
163
xorl %edi,%eax
164
xorl %ecx,%ecx
165
xorl %edi,%edx
166
andl $0xfcfcfcfc,%eax
167
andl $0xcfcfcfcf,%edx
168
movb %al,%bl
169
movb %ah,%cl
170
rorl $4,%edx
171
xorl (%ebp,%ebx,1),%esi
172
movb %dl,%bl
173
xorl 0x200(%ebp,%ecx,1),%esi
174
movb %dh,%cl
175
shrl $16,%eax
176
xorl 0x100(%ebp,%ebx,1),%esi
177
movb %ah,%bl
178
shrl $16,%edx
179
xorl 0x300(%ebp,%ecx,1),%esi
180
movb %dh,%cl
181
andl $0xff,%eax
182
andl $0xff,%edx
183
xorl 0x600(%ebp,%ebx,1),%esi
184
xorl 0x700(%ebp,%ecx,1),%esi
185
movl (%esp),%ecx
186
xorl 0x400(%ebp,%eax,1),%esi
187
xorl 0x500(%ebp,%edx,1),%esi
188
189
movl 48(%ecx),%eax
190
xorl %ebx,%ebx
191
movl 52(%ecx),%edx
192
xorl %esi,%eax
193
xorl %ecx,%ecx
194
xorl %esi,%edx
195
andl $0xfcfcfcfc,%eax
196
andl $0xcfcfcfcf,%edx
197
movb %al,%bl
198
movb %ah,%cl
199
rorl $4,%edx
200
xorl (%ebp,%ebx,1),%edi
201
movb %dl,%bl
202
xorl 0x200(%ebp,%ecx,1),%edi
203
movb %dh,%cl
204
shrl $16,%eax
205
xorl 0x100(%ebp,%ebx,1),%edi
206
movb %ah,%bl
207
shrl $16,%edx
208
xorl 0x300(%ebp,%ecx,1),%edi
209
movb %dh,%cl
210
andl $0xff,%eax
211
andl $0xff,%edx
212
xorl 0x600(%ebp,%ebx,1),%edi
213
xorl 0x700(%ebp,%ecx,1),%edi
214
movl (%esp),%ecx
215
xorl 0x400(%ebp,%eax,1),%edi
216
xorl 0x500(%ebp,%edx,1),%edi
217
218
movl 56(%ecx),%eax
219
xorl %ebx,%ebx
220
movl 60(%ecx),%edx
221
xorl %edi,%eax
222
xorl %ecx,%ecx
223
xorl %edi,%edx
224
andl $0xfcfcfcfc,%eax
225
andl $0xcfcfcfcf,%edx
226
movb %al,%bl
227
movb %ah,%cl
228
rorl $4,%edx
229
xorl (%ebp,%ebx,1),%esi
230
movb %dl,%bl
231
xorl 0x200(%ebp,%ecx,1),%esi
232
movb %dh,%cl
233
shrl $16,%eax
234
xorl 0x100(%ebp,%ebx,1),%esi
235
movb %ah,%bl
236
shrl $16,%edx
237
xorl 0x300(%ebp,%ecx,1),%esi
238
movb %dh,%cl
239
andl $0xff,%eax
240
andl $0xff,%edx
241
xorl 0x600(%ebp,%ebx,1),%esi
242
xorl 0x700(%ebp,%ecx,1),%esi
243
movl (%esp),%ecx
244
xorl 0x400(%ebp,%eax,1),%esi
245
xorl 0x500(%ebp,%edx,1),%esi
246
247
movl 64(%ecx),%eax
248
xorl %ebx,%ebx
249
movl 68(%ecx),%edx
250
xorl %esi,%eax
251
xorl %ecx,%ecx
252
xorl %esi,%edx
253
andl $0xfcfcfcfc,%eax
254
andl $0xcfcfcfcf,%edx
255
movb %al,%bl
256
movb %ah,%cl
257
rorl $4,%edx
258
xorl (%ebp,%ebx,1),%edi
259
movb %dl,%bl
260
xorl 0x200(%ebp,%ecx,1),%edi
261
movb %dh,%cl
262
shrl $16,%eax
263
xorl 0x100(%ebp,%ebx,1),%edi
264
movb %ah,%bl
265
shrl $16,%edx
266
xorl 0x300(%ebp,%ecx,1),%edi
267
movb %dh,%cl
268
andl $0xff,%eax
269
andl $0xff,%edx
270
xorl 0x600(%ebp,%ebx,1),%edi
271
xorl 0x700(%ebp,%ecx,1),%edi
272
movl (%esp),%ecx
273
xorl 0x400(%ebp,%eax,1),%edi
274
xorl 0x500(%ebp,%edx,1),%edi
275
276
movl 72(%ecx),%eax
277
xorl %ebx,%ebx
278
movl 76(%ecx),%edx
279
xorl %edi,%eax
280
xorl %ecx,%ecx
281
xorl %edi,%edx
282
andl $0xfcfcfcfc,%eax
283
andl $0xcfcfcfcf,%edx
284
movb %al,%bl
285
movb %ah,%cl
286
rorl $4,%edx
287
xorl (%ebp,%ebx,1),%esi
288
movb %dl,%bl
289
xorl 0x200(%ebp,%ecx,1),%esi
290
movb %dh,%cl
291
shrl $16,%eax
292
xorl 0x100(%ebp,%ebx,1),%esi
293
movb %ah,%bl
294
shrl $16,%edx
295
xorl 0x300(%ebp,%ecx,1),%esi
296
movb %dh,%cl
297
andl $0xff,%eax
298
andl $0xff,%edx
299
xorl 0x600(%ebp,%ebx,1),%esi
300
xorl 0x700(%ebp,%ecx,1),%esi
301
movl (%esp),%ecx
302
xorl 0x400(%ebp,%eax,1),%esi
303
xorl 0x500(%ebp,%edx,1),%esi
304
305
movl 80(%ecx),%eax
306
xorl %ebx,%ebx
307
movl 84(%ecx),%edx
308
xorl %esi,%eax
309
xorl %ecx,%ecx
310
xorl %esi,%edx
311
andl $0xfcfcfcfc,%eax
312
andl $0xcfcfcfcf,%edx
313
movb %al,%bl
314
movb %ah,%cl
315
rorl $4,%edx
316
xorl (%ebp,%ebx,1),%edi
317
movb %dl,%bl
318
xorl 0x200(%ebp,%ecx,1),%edi
319
movb %dh,%cl
320
shrl $16,%eax
321
xorl 0x100(%ebp,%ebx,1),%edi
322
movb %ah,%bl
323
shrl $16,%edx
324
xorl 0x300(%ebp,%ecx,1),%edi
325
movb %dh,%cl
326
andl $0xff,%eax
327
andl $0xff,%edx
328
xorl 0x600(%ebp,%ebx,1),%edi
329
xorl 0x700(%ebp,%ecx,1),%edi
330
movl (%esp),%ecx
331
xorl 0x400(%ebp,%eax,1),%edi
332
xorl 0x500(%ebp,%edx,1),%edi
333
334
movl 88(%ecx),%eax
335
xorl %ebx,%ebx
336
movl 92(%ecx),%edx
337
xorl %edi,%eax
338
xorl %ecx,%ecx
339
xorl %edi,%edx
340
andl $0xfcfcfcfc,%eax
341
andl $0xcfcfcfcf,%edx
342
movb %al,%bl
343
movb %ah,%cl
344
rorl $4,%edx
345
xorl (%ebp,%ebx,1),%esi
346
movb %dl,%bl
347
xorl 0x200(%ebp,%ecx,1),%esi
348
movb %dh,%cl
349
shrl $16,%eax
350
xorl 0x100(%ebp,%ebx,1),%esi
351
movb %ah,%bl
352
shrl $16,%edx
353
xorl 0x300(%ebp,%ecx,1),%esi
354
movb %dh,%cl
355
andl $0xff,%eax
356
andl $0xff,%edx
357
xorl 0x600(%ebp,%ebx,1),%esi
358
xorl 0x700(%ebp,%ecx,1),%esi
359
movl (%esp),%ecx
360
xorl 0x400(%ebp,%eax,1),%esi
361
xorl 0x500(%ebp,%edx,1),%esi
362
363
movl 96(%ecx),%eax
364
xorl %ebx,%ebx
365
movl 100(%ecx),%edx
366
xorl %esi,%eax
367
xorl %ecx,%ecx
368
xorl %esi,%edx
369
andl $0xfcfcfcfc,%eax
370
andl $0xcfcfcfcf,%edx
371
movb %al,%bl
372
movb %ah,%cl
373
rorl $4,%edx
374
xorl (%ebp,%ebx,1),%edi
375
movb %dl,%bl
376
xorl 0x200(%ebp,%ecx,1),%edi
377
movb %dh,%cl
378
shrl $16,%eax
379
xorl 0x100(%ebp,%ebx,1),%edi
380
movb %ah,%bl
381
shrl $16,%edx
382
xorl 0x300(%ebp,%ecx,1),%edi
383
movb %dh,%cl
384
andl $0xff,%eax
385
andl $0xff,%edx
386
xorl 0x600(%ebp,%ebx,1),%edi
387
xorl 0x700(%ebp,%ecx,1),%edi
388
movl (%esp),%ecx
389
xorl 0x400(%ebp,%eax,1),%edi
390
xorl 0x500(%ebp,%edx,1),%edi
391
392
movl 104(%ecx),%eax
393
xorl %ebx,%ebx
394
movl 108(%ecx),%edx
395
xorl %edi,%eax
396
xorl %ecx,%ecx
397
xorl %edi,%edx
398
andl $0xfcfcfcfc,%eax
399
andl $0xcfcfcfcf,%edx
400
movb %al,%bl
401
movb %ah,%cl
402
rorl $4,%edx
403
xorl (%ebp,%ebx,1),%esi
404
movb %dl,%bl
405
xorl 0x200(%ebp,%ecx,1),%esi
406
movb %dh,%cl
407
shrl $16,%eax
408
xorl 0x100(%ebp,%ebx,1),%esi
409
movb %ah,%bl
410
shrl $16,%edx
411
xorl 0x300(%ebp,%ecx,1),%esi
412
movb %dh,%cl
413
andl $0xff,%eax
414
andl $0xff,%edx
415
xorl 0x600(%ebp,%ebx,1),%esi
416
xorl 0x700(%ebp,%ecx,1),%esi
417
movl (%esp),%ecx
418
xorl 0x400(%ebp,%eax,1),%esi
419
xorl 0x500(%ebp,%edx,1),%esi
420
421
movl 112(%ecx),%eax
422
xorl %ebx,%ebx
423
movl 116(%ecx),%edx
424
xorl %esi,%eax
425
xorl %ecx,%ecx
426
xorl %esi,%edx
427
andl $0xfcfcfcfc,%eax
428
andl $0xcfcfcfcf,%edx
429
movb %al,%bl
430
movb %ah,%cl
431
rorl $4,%edx
432
xorl (%ebp,%ebx,1),%edi
433
movb %dl,%bl
434
xorl 0x200(%ebp,%ecx,1),%edi
435
movb %dh,%cl
436
shrl $16,%eax
437
xorl 0x100(%ebp,%ebx,1),%edi
438
movb %ah,%bl
439
shrl $16,%edx
440
xorl 0x300(%ebp,%ecx,1),%edi
441
movb %dh,%cl
442
andl $0xff,%eax
443
andl $0xff,%edx
444
xorl 0x600(%ebp,%ebx,1),%edi
445
xorl 0x700(%ebp,%ecx,1),%edi
446
movl (%esp),%ecx
447
xorl 0x400(%ebp,%eax,1),%edi
448
xorl 0x500(%ebp,%edx,1),%edi
449
450
movl 120(%ecx),%eax
451
xorl %ebx,%ebx
452
movl 124(%ecx),%edx
453
xorl %edi,%eax
454
xorl %ecx,%ecx
455
xorl %edi,%edx
456
andl $0xfcfcfcfc,%eax
457
andl $0xcfcfcfcf,%edx
458
movb %al,%bl
459
movb %ah,%cl
460
rorl $4,%edx
461
xorl (%ebp,%ebx,1),%esi
462
movb %dl,%bl
463
xorl 0x200(%ebp,%ecx,1),%esi
464
movb %dh,%cl
465
shrl $16,%eax
466
xorl 0x100(%ebp,%ebx,1),%esi
467
movb %ah,%bl
468
shrl $16,%edx
469
xorl 0x300(%ebp,%ecx,1),%esi
470
movb %dh,%cl
471
andl $0xff,%eax
472
andl $0xff,%edx
473
xorl 0x600(%ebp,%ebx,1),%esi
474
xorl 0x700(%ebp,%ecx,1),%esi
475
movl (%esp),%ecx
476
xorl 0x400(%ebp,%eax,1),%esi
477
xorl 0x500(%ebp,%edx,1),%esi
478
addl $4,%esp
479
ret
480
.size _x86_DES_encrypt,.-_x86_DES_encrypt
481
.type _x86_DES_decrypt,@function
482
.align 16
483
_x86_DES_decrypt:
484
#ifdef __CET__
485
486
.byte 243,15,30,251
487
#endif
488
489
pushl %ecx
490
491
movl 120(%ecx),%eax
492
xorl %ebx,%ebx
493
movl 124(%ecx),%edx
494
xorl %esi,%eax
495
xorl %ecx,%ecx
496
xorl %esi,%edx
497
andl $0xfcfcfcfc,%eax
498
andl $0xcfcfcfcf,%edx
499
movb %al,%bl
500
movb %ah,%cl
501
rorl $4,%edx
502
xorl (%ebp,%ebx,1),%edi
503
movb %dl,%bl
504
xorl 0x200(%ebp,%ecx,1),%edi
505
movb %dh,%cl
506
shrl $16,%eax
507
xorl 0x100(%ebp,%ebx,1),%edi
508
movb %ah,%bl
509
shrl $16,%edx
510
xorl 0x300(%ebp,%ecx,1),%edi
511
movb %dh,%cl
512
andl $0xff,%eax
513
andl $0xff,%edx
514
xorl 0x600(%ebp,%ebx,1),%edi
515
xorl 0x700(%ebp,%ecx,1),%edi
516
movl (%esp),%ecx
517
xorl 0x400(%ebp,%eax,1),%edi
518
xorl 0x500(%ebp,%edx,1),%edi
519
520
movl 112(%ecx),%eax
521
xorl %ebx,%ebx
522
movl 116(%ecx),%edx
523
xorl %edi,%eax
524
xorl %ecx,%ecx
525
xorl %edi,%edx
526
andl $0xfcfcfcfc,%eax
527
andl $0xcfcfcfcf,%edx
528
movb %al,%bl
529
movb %ah,%cl
530
rorl $4,%edx
531
xorl (%ebp,%ebx,1),%esi
532
movb %dl,%bl
533
xorl 0x200(%ebp,%ecx,1),%esi
534
movb %dh,%cl
535
shrl $16,%eax
536
xorl 0x100(%ebp,%ebx,1),%esi
537
movb %ah,%bl
538
shrl $16,%edx
539
xorl 0x300(%ebp,%ecx,1),%esi
540
movb %dh,%cl
541
andl $0xff,%eax
542
andl $0xff,%edx
543
xorl 0x600(%ebp,%ebx,1),%esi
544
xorl 0x700(%ebp,%ecx,1),%esi
545
movl (%esp),%ecx
546
xorl 0x400(%ebp,%eax,1),%esi
547
xorl 0x500(%ebp,%edx,1),%esi
548
549
movl 104(%ecx),%eax
550
xorl %ebx,%ebx
551
movl 108(%ecx),%edx
552
xorl %esi,%eax
553
xorl %ecx,%ecx
554
xorl %esi,%edx
555
andl $0xfcfcfcfc,%eax
556
andl $0xcfcfcfcf,%edx
557
movb %al,%bl
558
movb %ah,%cl
559
rorl $4,%edx
560
xorl (%ebp,%ebx,1),%edi
561
movb %dl,%bl
562
xorl 0x200(%ebp,%ecx,1),%edi
563
movb %dh,%cl
564
shrl $16,%eax
565
xorl 0x100(%ebp,%ebx,1),%edi
566
movb %ah,%bl
567
shrl $16,%edx
568
xorl 0x300(%ebp,%ecx,1),%edi
569
movb %dh,%cl
570
andl $0xff,%eax
571
andl $0xff,%edx
572
xorl 0x600(%ebp,%ebx,1),%edi
573
xorl 0x700(%ebp,%ecx,1),%edi
574
movl (%esp),%ecx
575
xorl 0x400(%ebp,%eax,1),%edi
576
xorl 0x500(%ebp,%edx,1),%edi
577
578
movl 96(%ecx),%eax
579
xorl %ebx,%ebx
580
movl 100(%ecx),%edx
581
xorl %edi,%eax
582
xorl %ecx,%ecx
583
xorl %edi,%edx
584
andl $0xfcfcfcfc,%eax
585
andl $0xcfcfcfcf,%edx
586
movb %al,%bl
587
movb %ah,%cl
588
rorl $4,%edx
589
xorl (%ebp,%ebx,1),%esi
590
movb %dl,%bl
591
xorl 0x200(%ebp,%ecx,1),%esi
592
movb %dh,%cl
593
shrl $16,%eax
594
xorl 0x100(%ebp,%ebx,1),%esi
595
movb %ah,%bl
596
shrl $16,%edx
597
xorl 0x300(%ebp,%ecx,1),%esi
598
movb %dh,%cl
599
andl $0xff,%eax
600
andl $0xff,%edx
601
xorl 0x600(%ebp,%ebx,1),%esi
602
xorl 0x700(%ebp,%ecx,1),%esi
603
movl (%esp),%ecx
604
xorl 0x400(%ebp,%eax,1),%esi
605
xorl 0x500(%ebp,%edx,1),%esi
606
607
movl 88(%ecx),%eax
608
xorl %ebx,%ebx
609
movl 92(%ecx),%edx
610
xorl %esi,%eax
611
xorl %ecx,%ecx
612
xorl %esi,%edx
613
andl $0xfcfcfcfc,%eax
614
andl $0xcfcfcfcf,%edx
615
movb %al,%bl
616
movb %ah,%cl
617
rorl $4,%edx
618
xorl (%ebp,%ebx,1),%edi
619
movb %dl,%bl
620
xorl 0x200(%ebp,%ecx,1),%edi
621
movb %dh,%cl
622
shrl $16,%eax
623
xorl 0x100(%ebp,%ebx,1),%edi
624
movb %ah,%bl
625
shrl $16,%edx
626
xorl 0x300(%ebp,%ecx,1),%edi
627
movb %dh,%cl
628
andl $0xff,%eax
629
andl $0xff,%edx
630
xorl 0x600(%ebp,%ebx,1),%edi
631
xorl 0x700(%ebp,%ecx,1),%edi
632
movl (%esp),%ecx
633
xorl 0x400(%ebp,%eax,1),%edi
634
xorl 0x500(%ebp,%edx,1),%edi
635
636
movl 80(%ecx),%eax
637
xorl %ebx,%ebx
638
movl 84(%ecx),%edx
639
xorl %edi,%eax
640
xorl %ecx,%ecx
641
xorl %edi,%edx
642
andl $0xfcfcfcfc,%eax
643
andl $0xcfcfcfcf,%edx
644
movb %al,%bl
645
movb %ah,%cl
646
rorl $4,%edx
647
xorl (%ebp,%ebx,1),%esi
648
movb %dl,%bl
649
xorl 0x200(%ebp,%ecx,1),%esi
650
movb %dh,%cl
651
shrl $16,%eax
652
xorl 0x100(%ebp,%ebx,1),%esi
653
movb %ah,%bl
654
shrl $16,%edx
655
xorl 0x300(%ebp,%ecx,1),%esi
656
movb %dh,%cl
657
andl $0xff,%eax
658
andl $0xff,%edx
659
xorl 0x600(%ebp,%ebx,1),%esi
660
xorl 0x700(%ebp,%ecx,1),%esi
661
movl (%esp),%ecx
662
xorl 0x400(%ebp,%eax,1),%esi
663
xorl 0x500(%ebp,%edx,1),%esi
664
665
movl 72(%ecx),%eax
666
xorl %ebx,%ebx
667
movl 76(%ecx),%edx
668
xorl %esi,%eax
669
xorl %ecx,%ecx
670
xorl %esi,%edx
671
andl $0xfcfcfcfc,%eax
672
andl $0xcfcfcfcf,%edx
673
movb %al,%bl
674
movb %ah,%cl
675
rorl $4,%edx
676
xorl (%ebp,%ebx,1),%edi
677
movb %dl,%bl
678
xorl 0x200(%ebp,%ecx,1),%edi
679
movb %dh,%cl
680
shrl $16,%eax
681
xorl 0x100(%ebp,%ebx,1),%edi
682
movb %ah,%bl
683
shrl $16,%edx
684
xorl 0x300(%ebp,%ecx,1),%edi
685
movb %dh,%cl
686
andl $0xff,%eax
687
andl $0xff,%edx
688
xorl 0x600(%ebp,%ebx,1),%edi
689
xorl 0x700(%ebp,%ecx,1),%edi
690
movl (%esp),%ecx
691
xorl 0x400(%ebp,%eax,1),%edi
692
xorl 0x500(%ebp,%edx,1),%edi
693
694
movl 64(%ecx),%eax
695
xorl %ebx,%ebx
696
movl 68(%ecx),%edx
697
xorl %edi,%eax
698
xorl %ecx,%ecx
699
xorl %edi,%edx
700
andl $0xfcfcfcfc,%eax
701
andl $0xcfcfcfcf,%edx
702
movb %al,%bl
703
movb %ah,%cl
704
rorl $4,%edx
705
xorl (%ebp,%ebx,1),%esi
706
movb %dl,%bl
707
xorl 0x200(%ebp,%ecx,1),%esi
708
movb %dh,%cl
709
shrl $16,%eax
710
xorl 0x100(%ebp,%ebx,1),%esi
711
movb %ah,%bl
712
shrl $16,%edx
713
xorl 0x300(%ebp,%ecx,1),%esi
714
movb %dh,%cl
715
andl $0xff,%eax
716
andl $0xff,%edx
717
xorl 0x600(%ebp,%ebx,1),%esi
718
xorl 0x700(%ebp,%ecx,1),%esi
719
movl (%esp),%ecx
720
xorl 0x400(%ebp,%eax,1),%esi
721
xorl 0x500(%ebp,%edx,1),%esi
722
723
movl 56(%ecx),%eax
724
xorl %ebx,%ebx
725
movl 60(%ecx),%edx
726
xorl %esi,%eax
727
xorl %ecx,%ecx
728
xorl %esi,%edx
729
andl $0xfcfcfcfc,%eax
730
andl $0xcfcfcfcf,%edx
731
movb %al,%bl
732
movb %ah,%cl
733
rorl $4,%edx
734
xorl (%ebp,%ebx,1),%edi
735
movb %dl,%bl
736
xorl 0x200(%ebp,%ecx,1),%edi
737
movb %dh,%cl
738
shrl $16,%eax
739
xorl 0x100(%ebp,%ebx,1),%edi
740
movb %ah,%bl
741
shrl $16,%edx
742
xorl 0x300(%ebp,%ecx,1),%edi
743
movb %dh,%cl
744
andl $0xff,%eax
745
andl $0xff,%edx
746
xorl 0x600(%ebp,%ebx,1),%edi
747
xorl 0x700(%ebp,%ecx,1),%edi
748
movl (%esp),%ecx
749
xorl 0x400(%ebp,%eax,1),%edi
750
xorl 0x500(%ebp,%edx,1),%edi
751
752
movl 48(%ecx),%eax
753
xorl %ebx,%ebx
754
movl 52(%ecx),%edx
755
xorl %edi,%eax
756
xorl %ecx,%ecx
757
xorl %edi,%edx
758
andl $0xfcfcfcfc,%eax
759
andl $0xcfcfcfcf,%edx
760
movb %al,%bl
761
movb %ah,%cl
762
rorl $4,%edx
763
xorl (%ebp,%ebx,1),%esi
764
movb %dl,%bl
765
xorl 0x200(%ebp,%ecx,1),%esi
766
movb %dh,%cl
767
shrl $16,%eax
768
xorl 0x100(%ebp,%ebx,1),%esi
769
movb %ah,%bl
770
shrl $16,%edx
771
xorl 0x300(%ebp,%ecx,1),%esi
772
movb %dh,%cl
773
andl $0xff,%eax
774
andl $0xff,%edx
775
xorl 0x600(%ebp,%ebx,1),%esi
776
xorl 0x700(%ebp,%ecx,1),%esi
777
movl (%esp),%ecx
778
xorl 0x400(%ebp,%eax,1),%esi
779
xorl 0x500(%ebp,%edx,1),%esi
780
781
movl 40(%ecx),%eax
782
xorl %ebx,%ebx
783
movl 44(%ecx),%edx
784
xorl %esi,%eax
785
xorl %ecx,%ecx
786
xorl %esi,%edx
787
andl $0xfcfcfcfc,%eax
788
andl $0xcfcfcfcf,%edx
789
movb %al,%bl
790
movb %ah,%cl
791
rorl $4,%edx
792
xorl (%ebp,%ebx,1),%edi
793
movb %dl,%bl
794
xorl 0x200(%ebp,%ecx,1),%edi
795
movb %dh,%cl
796
shrl $16,%eax
797
xorl 0x100(%ebp,%ebx,1),%edi
798
movb %ah,%bl
799
shrl $16,%edx
800
xorl 0x300(%ebp,%ecx,1),%edi
801
movb %dh,%cl
802
andl $0xff,%eax
803
andl $0xff,%edx
804
xorl 0x600(%ebp,%ebx,1),%edi
805
xorl 0x700(%ebp,%ecx,1),%edi
806
movl (%esp),%ecx
807
xorl 0x400(%ebp,%eax,1),%edi
808
xorl 0x500(%ebp,%edx,1),%edi
809
810
movl 32(%ecx),%eax
811
xorl %ebx,%ebx
812
movl 36(%ecx),%edx
813
xorl %edi,%eax
814
xorl %ecx,%ecx
815
xorl %edi,%edx
816
andl $0xfcfcfcfc,%eax
817
andl $0xcfcfcfcf,%edx
818
movb %al,%bl
819
movb %ah,%cl
820
rorl $4,%edx
821
xorl (%ebp,%ebx,1),%esi
822
movb %dl,%bl
823
xorl 0x200(%ebp,%ecx,1),%esi
824
movb %dh,%cl
825
shrl $16,%eax
826
xorl 0x100(%ebp,%ebx,1),%esi
827
movb %ah,%bl
828
shrl $16,%edx
829
xorl 0x300(%ebp,%ecx,1),%esi
830
movb %dh,%cl
831
andl $0xff,%eax
832
andl $0xff,%edx
833
xorl 0x600(%ebp,%ebx,1),%esi
834
xorl 0x700(%ebp,%ecx,1),%esi
835
movl (%esp),%ecx
836
xorl 0x400(%ebp,%eax,1),%esi
837
xorl 0x500(%ebp,%edx,1),%esi
838
839
movl 24(%ecx),%eax
840
xorl %ebx,%ebx
841
movl 28(%ecx),%edx
842
xorl %esi,%eax
843
xorl %ecx,%ecx
844
xorl %esi,%edx
845
andl $0xfcfcfcfc,%eax
846
andl $0xcfcfcfcf,%edx
847
movb %al,%bl
848
movb %ah,%cl
849
rorl $4,%edx
850
xorl (%ebp,%ebx,1),%edi
851
movb %dl,%bl
852
xorl 0x200(%ebp,%ecx,1),%edi
853
movb %dh,%cl
854
shrl $16,%eax
855
xorl 0x100(%ebp,%ebx,1),%edi
856
movb %ah,%bl
857
shrl $16,%edx
858
xorl 0x300(%ebp,%ecx,1),%edi
859
movb %dh,%cl
860
andl $0xff,%eax
861
andl $0xff,%edx
862
xorl 0x600(%ebp,%ebx,1),%edi
863
xorl 0x700(%ebp,%ecx,1),%edi
864
movl (%esp),%ecx
865
xorl 0x400(%ebp,%eax,1),%edi
866
xorl 0x500(%ebp,%edx,1),%edi
867
868
movl 16(%ecx),%eax
869
xorl %ebx,%ebx
870
movl 20(%ecx),%edx
871
xorl %edi,%eax
872
xorl %ecx,%ecx
873
xorl %edi,%edx
874
andl $0xfcfcfcfc,%eax
875
andl $0xcfcfcfcf,%edx
876
movb %al,%bl
877
movb %ah,%cl
878
rorl $4,%edx
879
xorl (%ebp,%ebx,1),%esi
880
movb %dl,%bl
881
xorl 0x200(%ebp,%ecx,1),%esi
882
movb %dh,%cl
883
shrl $16,%eax
884
xorl 0x100(%ebp,%ebx,1),%esi
885
movb %ah,%bl
886
shrl $16,%edx
887
xorl 0x300(%ebp,%ecx,1),%esi
888
movb %dh,%cl
889
andl $0xff,%eax
890
andl $0xff,%edx
891
xorl 0x600(%ebp,%ebx,1),%esi
892
xorl 0x700(%ebp,%ecx,1),%esi
893
movl (%esp),%ecx
894
xorl 0x400(%ebp,%eax,1),%esi
895
xorl 0x500(%ebp,%edx,1),%esi
896
897
movl 8(%ecx),%eax
898
xorl %ebx,%ebx
899
movl 12(%ecx),%edx
900
xorl %esi,%eax
901
xorl %ecx,%ecx
902
xorl %esi,%edx
903
andl $0xfcfcfcfc,%eax
904
andl $0xcfcfcfcf,%edx
905
movb %al,%bl
906
movb %ah,%cl
907
rorl $4,%edx
908
xorl (%ebp,%ebx,1),%edi
909
movb %dl,%bl
910
xorl 0x200(%ebp,%ecx,1),%edi
911
movb %dh,%cl
912
shrl $16,%eax
913
xorl 0x100(%ebp,%ebx,1),%edi
914
movb %ah,%bl
915
shrl $16,%edx
916
xorl 0x300(%ebp,%ecx,1),%edi
917
movb %dh,%cl
918
andl $0xff,%eax
919
andl $0xff,%edx
920
xorl 0x600(%ebp,%ebx,1),%edi
921
xorl 0x700(%ebp,%ecx,1),%edi
922
movl (%esp),%ecx
923
xorl 0x400(%ebp,%eax,1),%edi
924
xorl 0x500(%ebp,%edx,1),%edi
925
926
movl (%ecx),%eax
927
xorl %ebx,%ebx
928
movl 4(%ecx),%edx
929
xorl %edi,%eax
930
xorl %ecx,%ecx
931
xorl %edi,%edx
932
andl $0xfcfcfcfc,%eax
933
andl $0xcfcfcfcf,%edx
934
movb %al,%bl
935
movb %ah,%cl
936
rorl $4,%edx
937
xorl (%ebp,%ebx,1),%esi
938
movb %dl,%bl
939
xorl 0x200(%ebp,%ecx,1),%esi
940
movb %dh,%cl
941
shrl $16,%eax
942
xorl 0x100(%ebp,%ebx,1),%esi
943
movb %ah,%bl
944
shrl $16,%edx
945
xorl 0x300(%ebp,%ecx,1),%esi
946
movb %dh,%cl
947
andl $0xff,%eax
948
andl $0xff,%edx
949
xorl 0x600(%ebp,%ebx,1),%esi
950
xorl 0x700(%ebp,%ecx,1),%esi
951
movl (%esp),%ecx
952
xorl 0x400(%ebp,%eax,1),%esi
953
xorl 0x500(%ebp,%edx,1),%esi
954
addl $4,%esp
955
ret
956
.size _x86_DES_decrypt,.-_x86_DES_decrypt
957
.globl DES_encrypt1
958
.type DES_encrypt1,@function
959
.align 16
960
DES_encrypt1:
961
.L_DES_encrypt1_begin:
962
#ifdef __CET__
963
964
.byte 243,15,30,251
965
#endif
966
967
pushl %esi
968
pushl %edi
969
970
971
movl 12(%esp),%esi
972
xorl %ecx,%ecx
973
pushl %ebx
974
pushl %ebp
975
movl (%esi),%eax
976
movl 28(%esp),%ebx
977
movl 4(%esi),%edi
978
979
980
roll $4,%eax
981
movl %eax,%esi
982
xorl %edi,%eax
983
andl $0xf0f0f0f0,%eax
984
xorl %eax,%esi
985
xorl %eax,%edi
986
987
roll $20,%edi
988
movl %edi,%eax
989
xorl %esi,%edi
990
andl $0xfff0000f,%edi
991
xorl %edi,%eax
992
xorl %edi,%esi
993
994
roll $14,%eax
995
movl %eax,%edi
996
xorl %esi,%eax
997
andl $0x33333333,%eax
998
xorl %eax,%edi
999
xorl %eax,%esi
1000
1001
roll $22,%esi
1002
movl %esi,%eax
1003
xorl %edi,%esi
1004
andl $0x03fc03fc,%esi
1005
xorl %esi,%eax
1006
xorl %esi,%edi
1007
1008
roll $9,%eax
1009
movl %eax,%esi
1010
xorl %edi,%eax
1011
andl $0xaaaaaaaa,%eax
1012
xorl %eax,%esi
1013
xorl %eax,%edi
1014
1015
roll $1,%edi
1016
call .L000pic_point
1017
.L000pic_point:
1018
popl %ebp
1019
leal .Ldes_sptrans-.L000pic_point(%ebp),%ebp
1020
movl 24(%esp),%ecx
1021
cmpl $0,%ebx
1022
je .L001decrypt
1023
call _x86_DES_encrypt
1024
jmp .L002done
1025
.L001decrypt:
1026
call _x86_DES_decrypt
1027
.L002done:
1028
1029
1030
movl 20(%esp),%edx
1031
rorl $1,%esi
1032
movl %edi,%eax
1033
xorl %esi,%edi
1034
andl $0xaaaaaaaa,%edi
1035
xorl %edi,%eax
1036
xorl %edi,%esi
1037
1038
roll $23,%eax
1039
movl %eax,%edi
1040
xorl %esi,%eax
1041
andl $0x03fc03fc,%eax
1042
xorl %eax,%edi
1043
xorl %eax,%esi
1044
1045
roll $10,%edi
1046
movl %edi,%eax
1047
xorl %esi,%edi
1048
andl $0x33333333,%edi
1049
xorl %edi,%eax
1050
xorl %edi,%esi
1051
1052
roll $18,%esi
1053
movl %esi,%edi
1054
xorl %eax,%esi
1055
andl $0xfff0000f,%esi
1056
xorl %esi,%edi
1057
xorl %esi,%eax
1058
1059
roll $12,%edi
1060
movl %edi,%esi
1061
xorl %eax,%edi
1062
andl $0xf0f0f0f0,%edi
1063
xorl %edi,%esi
1064
xorl %edi,%eax
1065
1066
rorl $4,%eax
1067
movl %eax,(%edx)
1068
movl %esi,4(%edx)
1069
popl %ebp
1070
popl %ebx
1071
popl %edi
1072
popl %esi
1073
ret
1074
.size DES_encrypt1,.-.L_DES_encrypt1_begin
1075
.globl DES_encrypt2
1076
.type DES_encrypt2,@function
1077
.align 16
1078
DES_encrypt2:
1079
.L_DES_encrypt2_begin:
1080
#ifdef __CET__
1081
1082
.byte 243,15,30,251
1083
#endif
1084
1085
pushl %esi
1086
pushl %edi
1087
1088
1089
movl 12(%esp),%eax
1090
xorl %ecx,%ecx
1091
pushl %ebx
1092
pushl %ebp
1093
movl (%eax),%esi
1094
movl 28(%esp),%ebx
1095
roll $3,%esi
1096
movl 4(%eax),%edi
1097
roll $3,%edi
1098
call .L003pic_point
1099
.L003pic_point:
1100
popl %ebp
1101
leal .Ldes_sptrans-.L003pic_point(%ebp),%ebp
1102
movl 24(%esp),%ecx
1103
cmpl $0,%ebx
1104
je .L004decrypt
1105
call _x86_DES_encrypt
1106
jmp .L005done
1107
.L004decrypt:
1108
call _x86_DES_decrypt
1109
.L005done:
1110
1111
1112
rorl $3,%edi
1113
movl 20(%esp),%eax
1114
rorl $3,%esi
1115
movl %edi,(%eax)
1116
movl %esi,4(%eax)
1117
popl %ebp
1118
popl %ebx
1119
popl %edi
1120
popl %esi
1121
ret
1122
.size DES_encrypt2,.-.L_DES_encrypt2_begin
1123
.globl DES_encrypt3
1124
.type DES_encrypt3,@function
1125
.align 16
1126
DES_encrypt3:
1127
.L_DES_encrypt3_begin:
1128
#ifdef __CET__
1129
1130
.byte 243,15,30,251
1131
#endif
1132
1133
pushl %ebx
1134
movl 8(%esp),%ebx
1135
pushl %ebp
1136
pushl %esi
1137
pushl %edi
1138
1139
1140
movl (%ebx),%edi
1141
movl 4(%ebx),%esi
1142
subl $12,%esp
1143
1144
1145
roll $4,%edi
1146
movl %edi,%edx
1147
xorl %esi,%edi
1148
andl $0xf0f0f0f0,%edi
1149
xorl %edi,%edx
1150
xorl %edi,%esi
1151
1152
roll $20,%esi
1153
movl %esi,%edi
1154
xorl %edx,%esi
1155
andl $0xfff0000f,%esi
1156
xorl %esi,%edi
1157
xorl %esi,%edx
1158
1159
roll $14,%edi
1160
movl %edi,%esi
1161
xorl %edx,%edi
1162
andl $0x33333333,%edi
1163
xorl %edi,%esi
1164
xorl %edi,%edx
1165
1166
roll $22,%edx
1167
movl %edx,%edi
1168
xorl %esi,%edx
1169
andl $0x03fc03fc,%edx
1170
xorl %edx,%edi
1171
xorl %edx,%esi
1172
1173
roll $9,%edi
1174
movl %edi,%edx
1175
xorl %esi,%edi
1176
andl $0xaaaaaaaa,%edi
1177
xorl %edi,%edx
1178
xorl %edi,%esi
1179
1180
rorl $3,%edx
1181
rorl $2,%esi
1182
movl %esi,4(%ebx)
1183
movl 36(%esp),%eax
1184
movl %edx,(%ebx)
1185
movl 40(%esp),%edi
1186
movl 44(%esp),%esi
1187
movl $1,8(%esp)
1188
movl %eax,4(%esp)
1189
movl %ebx,(%esp)
1190
call .L_DES_encrypt2_begin
1191
movl $0,8(%esp)
1192
movl %edi,4(%esp)
1193
movl %ebx,(%esp)
1194
call .L_DES_encrypt2_begin
1195
movl $1,8(%esp)
1196
movl %esi,4(%esp)
1197
movl %ebx,(%esp)
1198
call .L_DES_encrypt2_begin
1199
addl $12,%esp
1200
movl (%ebx),%edi
1201
movl 4(%ebx),%esi
1202
1203
1204
roll $2,%esi
1205
roll $3,%edi
1206
movl %edi,%eax
1207
xorl %esi,%edi
1208
andl $0xaaaaaaaa,%edi
1209
xorl %edi,%eax
1210
xorl %edi,%esi
1211
1212
roll $23,%eax
1213
movl %eax,%edi
1214
xorl %esi,%eax
1215
andl $0x03fc03fc,%eax
1216
xorl %eax,%edi
1217
xorl %eax,%esi
1218
1219
roll $10,%edi
1220
movl %edi,%eax
1221
xorl %esi,%edi
1222
andl $0x33333333,%edi
1223
xorl %edi,%eax
1224
xorl %edi,%esi
1225
1226
roll $18,%esi
1227
movl %esi,%edi
1228
xorl %eax,%esi
1229
andl $0xfff0000f,%esi
1230
xorl %esi,%edi
1231
xorl %esi,%eax
1232
1233
roll $12,%edi
1234
movl %edi,%esi
1235
xorl %eax,%edi
1236
andl $0xf0f0f0f0,%edi
1237
xorl %edi,%esi
1238
xorl %edi,%eax
1239
1240
rorl $4,%eax
1241
movl %eax,(%ebx)
1242
movl %esi,4(%ebx)
1243
popl %edi
1244
popl %esi
1245
popl %ebp
1246
popl %ebx
1247
ret
1248
.size DES_encrypt3,.-.L_DES_encrypt3_begin
1249
.globl DES_decrypt3
1250
.type DES_decrypt3,@function
1251
.align 16
1252
DES_decrypt3:
1253
.L_DES_decrypt3_begin:
1254
#ifdef __CET__
1255
1256
.byte 243,15,30,251
1257
#endif
1258
1259
pushl %ebx
1260
movl 8(%esp),%ebx
1261
pushl %ebp
1262
pushl %esi
1263
pushl %edi
1264
1265
1266
movl (%ebx),%edi
1267
movl 4(%ebx),%esi
1268
subl $12,%esp
1269
1270
1271
roll $4,%edi
1272
movl %edi,%edx
1273
xorl %esi,%edi
1274
andl $0xf0f0f0f0,%edi
1275
xorl %edi,%edx
1276
xorl %edi,%esi
1277
1278
roll $20,%esi
1279
movl %esi,%edi
1280
xorl %edx,%esi
1281
andl $0xfff0000f,%esi
1282
xorl %esi,%edi
1283
xorl %esi,%edx
1284
1285
roll $14,%edi
1286
movl %edi,%esi
1287
xorl %edx,%edi
1288
andl $0x33333333,%edi
1289
xorl %edi,%esi
1290
xorl %edi,%edx
1291
1292
roll $22,%edx
1293
movl %edx,%edi
1294
xorl %esi,%edx
1295
andl $0x03fc03fc,%edx
1296
xorl %edx,%edi
1297
xorl %edx,%esi
1298
1299
roll $9,%edi
1300
movl %edi,%edx
1301
xorl %esi,%edi
1302
andl $0xaaaaaaaa,%edi
1303
xorl %edi,%edx
1304
xorl %edi,%esi
1305
1306
rorl $3,%edx
1307
rorl $2,%esi
1308
movl %esi,4(%ebx)
1309
movl 36(%esp),%esi
1310
movl %edx,(%ebx)
1311
movl 40(%esp),%edi
1312
movl 44(%esp),%eax
1313
movl $0,8(%esp)
1314
movl %eax,4(%esp)
1315
movl %ebx,(%esp)
1316
call .L_DES_encrypt2_begin
1317
movl $1,8(%esp)
1318
movl %edi,4(%esp)
1319
movl %ebx,(%esp)
1320
call .L_DES_encrypt2_begin
1321
movl $0,8(%esp)
1322
movl %esi,4(%esp)
1323
movl %ebx,(%esp)
1324
call .L_DES_encrypt2_begin
1325
addl $12,%esp
1326
movl (%ebx),%edi
1327
movl 4(%ebx),%esi
1328
1329
1330
roll $2,%esi
1331
roll $3,%edi
1332
movl %edi,%eax
1333
xorl %esi,%edi
1334
andl $0xaaaaaaaa,%edi
1335
xorl %edi,%eax
1336
xorl %edi,%esi
1337
1338
roll $23,%eax
1339
movl %eax,%edi
1340
xorl %esi,%eax
1341
andl $0x03fc03fc,%eax
1342
xorl %eax,%edi
1343
xorl %eax,%esi
1344
1345
roll $10,%edi
1346
movl %edi,%eax
1347
xorl %esi,%edi
1348
andl $0x33333333,%edi
1349
xorl %edi,%eax
1350
xorl %edi,%esi
1351
1352
roll $18,%esi
1353
movl %esi,%edi
1354
xorl %eax,%esi
1355
andl $0xfff0000f,%esi
1356
xorl %esi,%edi
1357
xorl %esi,%eax
1358
1359
roll $12,%edi
1360
movl %edi,%esi
1361
xorl %eax,%edi
1362
andl $0xf0f0f0f0,%edi
1363
xorl %edi,%esi
1364
xorl %edi,%eax
1365
1366
rorl $4,%eax
1367
movl %eax,(%ebx)
1368
movl %esi,4(%ebx)
1369
popl %edi
1370
popl %esi
1371
popl %ebp
1372
popl %ebx
1373
ret
1374
.size DES_decrypt3,.-.L_DES_decrypt3_begin
1375
.globl DES_ncbc_encrypt
1376
.type DES_ncbc_encrypt,@function
1377
.align 16
1378
DES_ncbc_encrypt:
1379
.L_DES_ncbc_encrypt_begin:
1380
#ifdef __CET__
1381
1382
.byte 243,15,30,251
1383
#endif
1384
1385
1386
pushl %ebp
1387
pushl %ebx
1388
pushl %esi
1389
pushl %edi
1390
movl 28(%esp),%ebp
1391
1392
movl 36(%esp),%ebx
1393
movl (%ebx),%esi
1394
movl 4(%ebx),%edi
1395
pushl %edi
1396
pushl %esi
1397
pushl %edi
1398
pushl %esi
1399
movl %esp,%ebx
1400
movl 36(%esp),%esi
1401
movl 40(%esp),%edi
1402
1403
movl 56(%esp),%ecx
1404
1405
pushl %ecx
1406
1407
movl 52(%esp),%eax
1408
pushl %eax
1409
pushl %ebx
1410
cmpl $0,%ecx
1411
jz .L006decrypt
1412
andl $4294967288,%ebp
1413
movl 12(%esp),%eax
1414
movl 16(%esp),%ebx
1415
jz .L007encrypt_finish
1416
.L008encrypt_loop:
1417
movl (%esi),%ecx
1418
movl 4(%esi),%edx
1419
xorl %ecx,%eax
1420
xorl %edx,%ebx
1421
movl %eax,12(%esp)
1422
movl %ebx,16(%esp)
1423
call .L_DES_encrypt1_begin
1424
movl 12(%esp),%eax
1425
movl 16(%esp),%ebx
1426
movl %eax,(%edi)
1427
movl %ebx,4(%edi)
1428
addl $8,%esi
1429
addl $8,%edi
1430
subl $8,%ebp
1431
jnz .L008encrypt_loop
1432
.L007encrypt_finish:
1433
movl 56(%esp),%ebp
1434
andl $7,%ebp
1435
jz .L009finish
1436
call .L010PIC_point
1437
.L010PIC_point:
1438
popl %edx
1439
leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
1440
movl (%ecx,%ebp,4),%ebp
1441
addl %edx,%ebp
1442
xorl %ecx,%ecx
1443
xorl %edx,%edx
1444
jmp *%ebp
1445
.L012ej7:
1446
#ifdef __CET__
1447
1448
.byte 243,15,30,251
1449
#endif
1450
1451
movb 6(%esi),%dh
1452
shll $8,%edx
1453
.L013ej6:
1454
#ifdef __CET__
1455
1456
.byte 243,15,30,251
1457
#endif
1458
1459
movb 5(%esi),%dh
1460
.L014ej5:
1461
#ifdef __CET__
1462
1463
.byte 243,15,30,251
1464
#endif
1465
1466
movb 4(%esi),%dl
1467
.L015ej4:
1468
#ifdef __CET__
1469
1470
.byte 243,15,30,251
1471
#endif
1472
1473
movl (%esi),%ecx
1474
jmp .L016ejend
1475
.L017ej3:
1476
#ifdef __CET__
1477
1478
.byte 243,15,30,251
1479
#endif
1480
1481
movb 2(%esi),%ch
1482
shll $8,%ecx
1483
.L018ej2:
1484
#ifdef __CET__
1485
1486
.byte 243,15,30,251
1487
#endif
1488
1489
movb 1(%esi),%ch
1490
.L019ej1:
1491
#ifdef __CET__
1492
1493
.byte 243,15,30,251
1494
#endif
1495
1496
movb (%esi),%cl
1497
.L016ejend:
1498
xorl %ecx,%eax
1499
xorl %edx,%ebx
1500
movl %eax,12(%esp)
1501
movl %ebx,16(%esp)
1502
call .L_DES_encrypt1_begin
1503
movl 12(%esp),%eax
1504
movl 16(%esp),%ebx
1505
movl %eax,(%edi)
1506
movl %ebx,4(%edi)
1507
jmp .L009finish
1508
.L006decrypt:
1509
andl $4294967288,%ebp
1510
movl 20(%esp),%eax
1511
movl 24(%esp),%ebx
1512
jz .L020decrypt_finish
1513
.L021decrypt_loop:
1514
movl (%esi),%eax
1515
movl 4(%esi),%ebx
1516
movl %eax,12(%esp)
1517
movl %ebx,16(%esp)
1518
call .L_DES_encrypt1_begin
1519
movl 12(%esp),%eax
1520
movl 16(%esp),%ebx
1521
movl 20(%esp),%ecx
1522
movl 24(%esp),%edx
1523
xorl %eax,%ecx
1524
xorl %ebx,%edx
1525
movl (%esi),%eax
1526
movl 4(%esi),%ebx
1527
movl %ecx,(%edi)
1528
movl %edx,4(%edi)
1529
movl %eax,20(%esp)
1530
movl %ebx,24(%esp)
1531
addl $8,%esi
1532
addl $8,%edi
1533
subl $8,%ebp
1534
jnz .L021decrypt_loop
1535
.L020decrypt_finish:
1536
movl 56(%esp),%ebp
1537
andl $7,%ebp
1538
jz .L009finish
1539
movl (%esi),%eax
1540
movl 4(%esi),%ebx
1541
movl %eax,12(%esp)
1542
movl %ebx,16(%esp)
1543
call .L_DES_encrypt1_begin
1544
movl 12(%esp),%eax
1545
movl 16(%esp),%ebx
1546
movl 20(%esp),%ecx
1547
movl 24(%esp),%edx
1548
xorl %eax,%ecx
1549
xorl %ebx,%edx
1550
movl (%esi),%eax
1551
movl 4(%esi),%ebx
1552
.L022dj7:
1553
rorl $16,%edx
1554
movb %dl,6(%edi)
1555
shrl $16,%edx
1556
.L023dj6:
1557
movb %dh,5(%edi)
1558
.L024dj5:
1559
movb %dl,4(%edi)
1560
.L025dj4:
1561
movl %ecx,(%edi)
1562
jmp .L026djend
1563
.L027dj3:
1564
rorl $16,%ecx
1565
movb %cl,2(%edi)
1566
shll $16,%ecx
1567
.L028dj2:
1568
movb %ch,1(%esi)
1569
.L029dj1:
1570
movb %cl,(%esi)
1571
.L026djend:
1572
jmp .L009finish
1573
.L009finish:
1574
movl 64(%esp),%ecx
1575
addl $28,%esp
1576
movl %eax,(%ecx)
1577
movl %ebx,4(%ecx)
1578
popl %edi
1579
popl %esi
1580
popl %ebx
1581
popl %ebp
1582
ret
1583
.align 64
1584
.L011cbc_enc_jmp_table:
1585
.long 0
1586
.long .L019ej1-.L010PIC_point
1587
.long .L018ej2-.L010PIC_point
1588
.long .L017ej3-.L010PIC_point
1589
.long .L015ej4-.L010PIC_point
1590
.long .L014ej5-.L010PIC_point
1591
.long .L013ej6-.L010PIC_point
1592
.long .L012ej7-.L010PIC_point
1593
.align 64
1594
.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
1595
.globl DES_ede3_cbc_encrypt
1596
.type DES_ede3_cbc_encrypt,@function
1597
.align 16
1598
DES_ede3_cbc_encrypt:
1599
.L_DES_ede3_cbc_encrypt_begin:
1600
#ifdef __CET__
1601
1602
.byte 243,15,30,251
1603
#endif
1604
1605
1606
pushl %ebp
1607
pushl %ebx
1608
pushl %esi
1609
pushl %edi
1610
movl 28(%esp),%ebp
1611
1612
movl 44(%esp),%ebx
1613
movl (%ebx),%esi
1614
movl 4(%ebx),%edi
1615
pushl %edi
1616
pushl %esi
1617
pushl %edi
1618
pushl %esi
1619
movl %esp,%ebx
1620
movl 36(%esp),%esi
1621
movl 40(%esp),%edi
1622
1623
movl 64(%esp),%ecx
1624
1625
movl 56(%esp),%eax
1626
pushl %eax
1627
1628
movl 56(%esp),%eax
1629
pushl %eax
1630
1631
movl 56(%esp),%eax
1632
pushl %eax
1633
pushl %ebx
1634
cmpl $0,%ecx
1635
jz .L030decrypt
1636
andl $4294967288,%ebp
1637
movl 16(%esp),%eax
1638
movl 20(%esp),%ebx
1639
jz .L031encrypt_finish
1640
.L032encrypt_loop:
1641
movl (%esi),%ecx
1642
movl 4(%esi),%edx
1643
xorl %ecx,%eax
1644
xorl %edx,%ebx
1645
movl %eax,16(%esp)
1646
movl %ebx,20(%esp)
1647
call .L_DES_encrypt3_begin
1648
movl 16(%esp),%eax
1649
movl 20(%esp),%ebx
1650
movl %eax,(%edi)
1651
movl %ebx,4(%edi)
1652
addl $8,%esi
1653
addl $8,%edi
1654
subl $8,%ebp
1655
jnz .L032encrypt_loop
1656
.L031encrypt_finish:
1657
movl 60(%esp),%ebp
1658
andl $7,%ebp
1659
jz .L033finish
1660
call .L034PIC_point
1661
.L034PIC_point:
1662
popl %edx
1663
leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
1664
movl (%ecx,%ebp,4),%ebp
1665
addl %edx,%ebp
1666
xorl %ecx,%ecx
1667
xorl %edx,%edx
1668
jmp *%ebp
1669
.L036ej7:
1670
#ifdef __CET__
1671
1672
.byte 243,15,30,251
1673
#endif
1674
1675
movb 6(%esi),%dh
1676
shll $8,%edx
1677
.L037ej6:
1678
#ifdef __CET__
1679
1680
.byte 243,15,30,251
1681
#endif
1682
1683
movb 5(%esi),%dh
1684
.L038ej5:
1685
#ifdef __CET__
1686
1687
.byte 243,15,30,251
1688
#endif
1689
1690
movb 4(%esi),%dl
1691
.L039ej4:
1692
#ifdef __CET__
1693
1694
.byte 243,15,30,251
1695
#endif
1696
1697
movl (%esi),%ecx
1698
jmp .L040ejend
1699
.L041ej3:
1700
#ifdef __CET__
1701
1702
.byte 243,15,30,251
1703
#endif
1704
1705
movb 2(%esi),%ch
1706
shll $8,%ecx
1707
.L042ej2:
1708
#ifdef __CET__
1709
1710
.byte 243,15,30,251
1711
#endif
1712
1713
movb 1(%esi),%ch
1714
.L043ej1:
1715
#ifdef __CET__
1716
1717
.byte 243,15,30,251
1718
#endif
1719
1720
movb (%esi),%cl
1721
.L040ejend:
1722
xorl %ecx,%eax
1723
xorl %edx,%ebx
1724
movl %eax,16(%esp)
1725
movl %ebx,20(%esp)
1726
call .L_DES_encrypt3_begin
1727
movl 16(%esp),%eax
1728
movl 20(%esp),%ebx
1729
movl %eax,(%edi)
1730
movl %ebx,4(%edi)
1731
jmp .L033finish
1732
.L030decrypt:
1733
andl $4294967288,%ebp
1734
movl 24(%esp),%eax
1735
movl 28(%esp),%ebx
1736
jz .L044decrypt_finish
1737
.L045decrypt_loop:
1738
movl (%esi),%eax
1739
movl 4(%esi),%ebx
1740
movl %eax,16(%esp)
1741
movl %ebx,20(%esp)
1742
call .L_DES_decrypt3_begin
1743
movl 16(%esp),%eax
1744
movl 20(%esp),%ebx
1745
movl 24(%esp),%ecx
1746
movl 28(%esp),%edx
1747
xorl %eax,%ecx
1748
xorl %ebx,%edx
1749
movl (%esi),%eax
1750
movl 4(%esi),%ebx
1751
movl %ecx,(%edi)
1752
movl %edx,4(%edi)
1753
movl %eax,24(%esp)
1754
movl %ebx,28(%esp)
1755
addl $8,%esi
1756
addl $8,%edi
1757
subl $8,%ebp
1758
jnz .L045decrypt_loop
1759
.L044decrypt_finish:
1760
movl 60(%esp),%ebp
1761
andl $7,%ebp
1762
jz .L033finish
1763
movl (%esi),%eax
1764
movl 4(%esi),%ebx
1765
movl %eax,16(%esp)
1766
movl %ebx,20(%esp)
1767
call .L_DES_decrypt3_begin
1768
movl 16(%esp),%eax
1769
movl 20(%esp),%ebx
1770
movl 24(%esp),%ecx
1771
movl 28(%esp),%edx
1772
xorl %eax,%ecx
1773
xorl %ebx,%edx
1774
movl (%esi),%eax
1775
movl 4(%esi),%ebx
1776
.L046dj7:
1777
rorl $16,%edx
1778
movb %dl,6(%edi)
1779
shrl $16,%edx
1780
.L047dj6:
1781
movb %dh,5(%edi)
1782
.L048dj5:
1783
movb %dl,4(%edi)
1784
.L049dj4:
1785
movl %ecx,(%edi)
1786
jmp .L050djend
1787
.L051dj3:
1788
rorl $16,%ecx
1789
movb %cl,2(%edi)
1790
shll $16,%ecx
1791
.L052dj2:
1792
movb %ch,1(%esi)
1793
.L053dj1:
1794
movb %cl,(%esi)
1795
.L050djend:
1796
jmp .L033finish
1797
.L033finish:
1798
movl 76(%esp),%ecx
1799
addl $32,%esp
1800
movl %eax,(%ecx)
1801
movl %ebx,4(%ecx)
1802
popl %edi
1803
popl %esi
1804
popl %ebx
1805
popl %ebp
1806
ret
1807
.align 64
1808
.L035cbc_enc_jmp_table:
1809
.long 0
1810
.long .L043ej1-.L034PIC_point
1811
.long .L042ej2-.L034PIC_point
1812
.long .L041ej3-.L034PIC_point
1813
.long .L039ej4-.L034PIC_point
1814
.long .L038ej5-.L034PIC_point
1815
.long .L037ej6-.L034PIC_point
1816
.long .L036ej7-.L034PIC_point
1817
.align 64
1818
.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
1819
.align 64
1820
DES_SPtrans:
1821
.Ldes_sptrans:
1822
.long 34080768,524288,33554434,34080770
1823
.long 33554432,526338,524290,33554434
1824
.long 526338,34080768,34078720,2050
1825
.long 33556482,33554432,0,524290
1826
.long 524288,2,33556480,526336
1827
.long 34080770,34078720,2050,33556480
1828
.long 2,2048,526336,34078722
1829
.long 2048,33556482,34078722,0
1830
.long 0,34080770,33556480,524290
1831
.long 34080768,524288,2050,33556480
1832
.long 34078722,2048,526336,33554434
1833
.long 526338,2,33554434,34078720
1834
.long 34080770,526336,34078720,33556482
1835
.long 33554432,2050,524290,0
1836
.long 524288,33554432,33556482,34080768
1837
.long 2,34078722,2048,526338
1838
.long 1074823184,0,1081344,1074790400
1839
.long 1073741840,32784,1073774592,1081344
1840
.long 32768,1074790416,16,1073774592
1841
.long 1048592,1074823168,1074790400,16
1842
.long 1048576,1073774608,1074790416,32768
1843
.long 1081360,1073741824,0,1048592
1844
.long 1073774608,1081360,1074823168,1073741840
1845
.long 1073741824,1048576,32784,1074823184
1846
.long 1048592,1074823168,1073774592,1081360
1847
.long 1074823184,1048592,1073741840,0
1848
.long 1073741824,32784,1048576,1074790416
1849
.long 32768,1073741824,1081360,1073774608
1850
.long 1074823168,32768,0,1073741840
1851
.long 16,1074823184,1081344,1074790400
1852
.long 1074790416,1048576,32784,1073774592
1853
.long 1073774608,16,1074790400,1081344
1854
.long 67108865,67371264,256,67109121
1855
.long 262145,67108864,67109121,262400
1856
.long 67109120,262144,67371008,1
1857
.long 67371265,257,1,67371009
1858
.long 0,262145,67371264,256
1859
.long 257,67371265,262144,67108865
1860
.long 67371009,67109120,262401,67371008
1861
.long 262400,0,67108864,262401
1862
.long 67371264,256,1,262144
1863
.long 257,262145,67371008,67109121
1864
.long 0,67371264,262400,67371009
1865
.long 262145,67108864,67371265,1
1866
.long 262401,67108865,67108864,67371265
1867
.long 262144,67109120,67109121,262400
1868
.long 67109120,0,67371009,257
1869
.long 67108865,262401,256,67371008
1870
.long 4198408,268439552,8,272633864
1871
.long 0,272629760,268439560,4194312
1872
.long 272633856,268435464,268435456,4104
1873
.long 268435464,4198408,4194304,268435456
1874
.long 272629768,4198400,4096,8
1875
.long 4198400,268439560,272629760,4096
1876
.long 4104,0,4194312,272633856
1877
.long 268439552,272629768,272633864,4194304
1878
.long 272629768,4104,4194304,268435464
1879
.long 4198400,268439552,8,272629760
1880
.long 268439560,0,4096,4194312
1881
.long 0,272629768,272633856,4096
1882
.long 268435456,272633864,4198408,4194304
1883
.long 272633864,8,268439552,4198408
1884
.long 4194312,4198400,272629760,268439560
1885
.long 4104,268435456,268435464,272633856
1886
.long 134217728,65536,1024,134284320
1887
.long 134283296,134218752,66592,134283264
1888
.long 65536,32,134217760,66560
1889
.long 134218784,134283296,134284288,0
1890
.long 66560,134217728,65568,1056
1891
.long 134218752,66592,0,134217760
1892
.long 32,134218784,134284320,65568
1893
.long 134283264,1024,1056,134284288
1894
.long 134284288,134218784,65568,134283264
1895
.long 65536,32,134217760,134218752
1896
.long 134217728,66560,134284320,0
1897
.long 66592,134217728,1024,65568
1898
.long 134218784,1024,0,134284320
1899
.long 134283296,134284288,1056,65536
1900
.long 66560,134283296,134218752,1056
1901
.long 32,66592,134283264,134217760
1902
.long 2147483712,2097216,0,2149588992
1903
.long 2097216,8192,2147491904,2097152
1904
.long 8256,2149589056,2105344,2147483648
1905
.long 2147491840,2147483712,2149580800,2105408
1906
.long 2097152,2147491904,2149580864,0
1907
.long 8192,64,2149588992,2149580864
1908
.long 2149589056,2149580800,2147483648,8256
1909
.long 64,2105344,2105408,2147491840
1910
.long 8256,2147483648,2147491840,2105408
1911
.long 2149588992,2097216,0,2147491840
1912
.long 2147483648,8192,2149580864,2097152
1913
.long 2097216,2149589056,2105344,64
1914
.long 2149589056,2105344,2097152,2147491904
1915
.long 2147483712,2149580800,2105408,0
1916
.long 8192,2147483712,2147491904,2149588992
1917
.long 2149580800,8256,64,2149580864
1918
.long 16384,512,16777728,16777220
1919
.long 16794116,16388,16896,0
1920
.long 16777216,16777732,516,16793600
1921
.long 4,16794112,16793600,516
1922
.long 16777732,16384,16388,16794116
1923
.long 0,16777728,16777220,16896
1924
.long 16793604,16900,16794112,4
1925
.long 16900,16793604,512,16777216
1926
.long 16900,16793600,16793604,516
1927
.long 16384,512,16777216,16793604
1928
.long 16777732,16900,16896,0
1929
.long 512,16777220,4,16777728
1930
.long 0,16777732,16777728,16896
1931
.long 516,16384,16794116,16777216
1932
.long 16794112,4,16388,16794116
1933
.long 16777220,16794112,16793600,16388
1934
.long 545259648,545390592,131200,0
1935
.long 537001984,8388736,545259520,545390720
1936
.long 128,536870912,8519680,131200
1937
.long 8519808,537002112,536871040,545259520
1938
.long 131072,8519808,8388736,537001984
1939
.long 545390720,536871040,0,8519680
1940
.long 536870912,8388608,537002112,545259648
1941
.long 8388608,131072,545390592,128
1942
.long 8388608,131072,536871040,545390720
1943
.long 131200,536870912,0,8519680
1944
.long 545259648,537002112,537001984,8388736
1945
.long 545390592,128,8388736,537001984
1946
.long 545390720,8388608,545259520,536871040
1947
.long 8519680,131200,537002112,545259520
1948
.long 128,545390592,8519808,0
1949
.long 536870912,545259648,131072,8519808
1950
1951
.section ".note.gnu.property", "a"
1952
.p2align 2
1953
.long 1f - 0f
1954
.long 4f - 1f
1955
.long 5
1956
0:
1957
.asciz "GNU"
1958
1:
1959
.p2align 2
1960
.long 0xc0000002
1961
.long 3f - 2f
1962
2:
1963
.long 3
1964
3:
1965
.p2align 2
1966
4:
1967
#else
1968
.text
1969
.globl DES_SPtrans
1970
.type _x86_DES_encrypt,@function
1971
.align 16
1972
_x86_DES_encrypt:
1973
#ifdef __CET__
1974
1975
.byte 243,15,30,251
1976
#endif
1977
1978
pushl %ecx
1979
1980
movl (%ecx),%eax
1981
xorl %ebx,%ebx
1982
movl 4(%ecx),%edx
1983
xorl %esi,%eax
1984
xorl %ecx,%ecx
1985
xorl %esi,%edx
1986
andl $0xfcfcfcfc,%eax
1987
andl $0xcfcfcfcf,%edx
1988
movb %al,%bl
1989
movb %ah,%cl
1990
rorl $4,%edx
1991
xorl (%ebp,%ebx,1),%edi
1992
movb %dl,%bl
1993
xorl 0x200(%ebp,%ecx,1),%edi
1994
movb %dh,%cl
1995
shrl $16,%eax
1996
xorl 0x100(%ebp,%ebx,1),%edi
1997
movb %ah,%bl
1998
shrl $16,%edx
1999
xorl 0x300(%ebp,%ecx,1),%edi
2000
movb %dh,%cl
2001
andl $0xff,%eax
2002
andl $0xff,%edx
2003
xorl 0x600(%ebp,%ebx,1),%edi
2004
xorl 0x700(%ebp,%ecx,1),%edi
2005
movl (%esp),%ecx
2006
xorl 0x400(%ebp,%eax,1),%edi
2007
xorl 0x500(%ebp,%edx,1),%edi
2008
2009
movl 8(%ecx),%eax
2010
xorl %ebx,%ebx
2011
movl 12(%ecx),%edx
2012
xorl %edi,%eax
2013
xorl %ecx,%ecx
2014
xorl %edi,%edx
2015
andl $0xfcfcfcfc,%eax
2016
andl $0xcfcfcfcf,%edx
2017
movb %al,%bl
2018
movb %ah,%cl
2019
rorl $4,%edx
2020
xorl (%ebp,%ebx,1),%esi
2021
movb %dl,%bl
2022
xorl 0x200(%ebp,%ecx,1),%esi
2023
movb %dh,%cl
2024
shrl $16,%eax
2025
xorl 0x100(%ebp,%ebx,1),%esi
2026
movb %ah,%bl
2027
shrl $16,%edx
2028
xorl 0x300(%ebp,%ecx,1),%esi
2029
movb %dh,%cl
2030
andl $0xff,%eax
2031
andl $0xff,%edx
2032
xorl 0x600(%ebp,%ebx,1),%esi
2033
xorl 0x700(%ebp,%ecx,1),%esi
2034
movl (%esp),%ecx
2035
xorl 0x400(%ebp,%eax,1),%esi
2036
xorl 0x500(%ebp,%edx,1),%esi
2037
2038
movl 16(%ecx),%eax
2039
xorl %ebx,%ebx
2040
movl 20(%ecx),%edx
2041
xorl %esi,%eax
2042
xorl %ecx,%ecx
2043
xorl %esi,%edx
2044
andl $0xfcfcfcfc,%eax
2045
andl $0xcfcfcfcf,%edx
2046
movb %al,%bl
2047
movb %ah,%cl
2048
rorl $4,%edx
2049
xorl (%ebp,%ebx,1),%edi
2050
movb %dl,%bl
2051
xorl 0x200(%ebp,%ecx,1),%edi
2052
movb %dh,%cl
2053
shrl $16,%eax
2054
xorl 0x100(%ebp,%ebx,1),%edi
2055
movb %ah,%bl
2056
shrl $16,%edx
2057
xorl 0x300(%ebp,%ecx,1),%edi
2058
movb %dh,%cl
2059
andl $0xff,%eax
2060
andl $0xff,%edx
2061
xorl 0x600(%ebp,%ebx,1),%edi
2062
xorl 0x700(%ebp,%ecx,1),%edi
2063
movl (%esp),%ecx
2064
xorl 0x400(%ebp,%eax,1),%edi
2065
xorl 0x500(%ebp,%edx,1),%edi
2066
2067
movl 24(%ecx),%eax
2068
xorl %ebx,%ebx
2069
movl 28(%ecx),%edx
2070
xorl %edi,%eax
2071
xorl %ecx,%ecx
2072
xorl %edi,%edx
2073
andl $0xfcfcfcfc,%eax
2074
andl $0xcfcfcfcf,%edx
2075
movb %al,%bl
2076
movb %ah,%cl
2077
rorl $4,%edx
2078
xorl (%ebp,%ebx,1),%esi
2079
movb %dl,%bl
2080
xorl 0x200(%ebp,%ecx,1),%esi
2081
movb %dh,%cl
2082
shrl $16,%eax
2083
xorl 0x100(%ebp,%ebx,1),%esi
2084
movb %ah,%bl
2085
shrl $16,%edx
2086
xorl 0x300(%ebp,%ecx,1),%esi
2087
movb %dh,%cl
2088
andl $0xff,%eax
2089
andl $0xff,%edx
2090
xorl 0x600(%ebp,%ebx,1),%esi
2091
xorl 0x700(%ebp,%ecx,1),%esi
2092
movl (%esp),%ecx
2093
xorl 0x400(%ebp,%eax,1),%esi
2094
xorl 0x500(%ebp,%edx,1),%esi
2095
2096
movl 32(%ecx),%eax
2097
xorl %ebx,%ebx
2098
movl 36(%ecx),%edx
2099
xorl %esi,%eax
2100
xorl %ecx,%ecx
2101
xorl %esi,%edx
2102
andl $0xfcfcfcfc,%eax
2103
andl $0xcfcfcfcf,%edx
2104
movb %al,%bl
2105
movb %ah,%cl
2106
rorl $4,%edx
2107
xorl (%ebp,%ebx,1),%edi
2108
movb %dl,%bl
2109
xorl 0x200(%ebp,%ecx,1),%edi
2110
movb %dh,%cl
2111
shrl $16,%eax
2112
xorl 0x100(%ebp,%ebx,1),%edi
2113
movb %ah,%bl
2114
shrl $16,%edx
2115
xorl 0x300(%ebp,%ecx,1),%edi
2116
movb %dh,%cl
2117
andl $0xff,%eax
2118
andl $0xff,%edx
2119
xorl 0x600(%ebp,%ebx,1),%edi
2120
xorl 0x700(%ebp,%ecx,1),%edi
2121
movl (%esp),%ecx
2122
xorl 0x400(%ebp,%eax,1),%edi
2123
xorl 0x500(%ebp,%edx,1),%edi
2124
2125
movl 40(%ecx),%eax
2126
xorl %ebx,%ebx
2127
movl 44(%ecx),%edx
2128
xorl %edi,%eax
2129
xorl %ecx,%ecx
2130
xorl %edi,%edx
2131
andl $0xfcfcfcfc,%eax
2132
andl $0xcfcfcfcf,%edx
2133
movb %al,%bl
2134
movb %ah,%cl
2135
rorl $4,%edx
2136
xorl (%ebp,%ebx,1),%esi
2137
movb %dl,%bl
2138
xorl 0x200(%ebp,%ecx,1),%esi
2139
movb %dh,%cl
2140
shrl $16,%eax
2141
xorl 0x100(%ebp,%ebx,1),%esi
2142
movb %ah,%bl
2143
shrl $16,%edx
2144
xorl 0x300(%ebp,%ecx,1),%esi
2145
movb %dh,%cl
2146
andl $0xff,%eax
2147
andl $0xff,%edx
2148
xorl 0x600(%ebp,%ebx,1),%esi
2149
xorl 0x700(%ebp,%ecx,1),%esi
2150
movl (%esp),%ecx
2151
xorl 0x400(%ebp,%eax,1),%esi
2152
xorl 0x500(%ebp,%edx,1),%esi
2153
2154
movl 48(%ecx),%eax
2155
xorl %ebx,%ebx
2156
movl 52(%ecx),%edx
2157
xorl %esi,%eax
2158
xorl %ecx,%ecx
2159
xorl %esi,%edx
2160
andl $0xfcfcfcfc,%eax
2161
andl $0xcfcfcfcf,%edx
2162
movb %al,%bl
2163
movb %ah,%cl
2164
rorl $4,%edx
2165
xorl (%ebp,%ebx,1),%edi
2166
movb %dl,%bl
2167
xorl 0x200(%ebp,%ecx,1),%edi
2168
movb %dh,%cl
2169
shrl $16,%eax
2170
xorl 0x100(%ebp,%ebx,1),%edi
2171
movb %ah,%bl
2172
shrl $16,%edx
2173
xorl 0x300(%ebp,%ecx,1),%edi
2174
movb %dh,%cl
2175
andl $0xff,%eax
2176
andl $0xff,%edx
2177
xorl 0x600(%ebp,%ebx,1),%edi
2178
xorl 0x700(%ebp,%ecx,1),%edi
2179
movl (%esp),%ecx
2180
xorl 0x400(%ebp,%eax,1),%edi
2181
xorl 0x500(%ebp,%edx,1),%edi
2182
2183
movl 56(%ecx),%eax
2184
xorl %ebx,%ebx
2185
movl 60(%ecx),%edx
2186
xorl %edi,%eax
2187
xorl %ecx,%ecx
2188
xorl %edi,%edx
2189
andl $0xfcfcfcfc,%eax
2190
andl $0xcfcfcfcf,%edx
2191
movb %al,%bl
2192
movb %ah,%cl
2193
rorl $4,%edx
2194
xorl (%ebp,%ebx,1),%esi
2195
movb %dl,%bl
2196
xorl 0x200(%ebp,%ecx,1),%esi
2197
movb %dh,%cl
2198
shrl $16,%eax
2199
xorl 0x100(%ebp,%ebx,1),%esi
2200
movb %ah,%bl
2201
shrl $16,%edx
2202
xorl 0x300(%ebp,%ecx,1),%esi
2203
movb %dh,%cl
2204
andl $0xff,%eax
2205
andl $0xff,%edx
2206
xorl 0x600(%ebp,%ebx,1),%esi
2207
xorl 0x700(%ebp,%ecx,1),%esi
2208
movl (%esp),%ecx
2209
xorl 0x400(%ebp,%eax,1),%esi
2210
xorl 0x500(%ebp,%edx,1),%esi
2211
2212
movl 64(%ecx),%eax
2213
xorl %ebx,%ebx
2214
movl 68(%ecx),%edx
2215
xorl %esi,%eax
2216
xorl %ecx,%ecx
2217
xorl %esi,%edx
2218
andl $0xfcfcfcfc,%eax
2219
andl $0xcfcfcfcf,%edx
2220
movb %al,%bl
2221
movb %ah,%cl
2222
rorl $4,%edx
2223
xorl (%ebp,%ebx,1),%edi
2224
movb %dl,%bl
2225
xorl 0x200(%ebp,%ecx,1),%edi
2226
movb %dh,%cl
2227
shrl $16,%eax
2228
xorl 0x100(%ebp,%ebx,1),%edi
2229
movb %ah,%bl
2230
shrl $16,%edx
2231
xorl 0x300(%ebp,%ecx,1),%edi
2232
movb %dh,%cl
2233
andl $0xff,%eax
2234
andl $0xff,%edx
2235
xorl 0x600(%ebp,%ebx,1),%edi
2236
xorl 0x700(%ebp,%ecx,1),%edi
2237
movl (%esp),%ecx
2238
xorl 0x400(%ebp,%eax,1),%edi
2239
xorl 0x500(%ebp,%edx,1),%edi
2240
2241
movl 72(%ecx),%eax
2242
xorl %ebx,%ebx
2243
movl 76(%ecx),%edx
2244
xorl %edi,%eax
2245
xorl %ecx,%ecx
2246
xorl %edi,%edx
2247
andl $0xfcfcfcfc,%eax
2248
andl $0xcfcfcfcf,%edx
2249
movb %al,%bl
2250
movb %ah,%cl
2251
rorl $4,%edx
2252
xorl (%ebp,%ebx,1),%esi
2253
movb %dl,%bl
2254
xorl 0x200(%ebp,%ecx,1),%esi
2255
movb %dh,%cl
2256
shrl $16,%eax
2257
xorl 0x100(%ebp,%ebx,1),%esi
2258
movb %ah,%bl
2259
shrl $16,%edx
2260
xorl 0x300(%ebp,%ecx,1),%esi
2261
movb %dh,%cl
2262
andl $0xff,%eax
2263
andl $0xff,%edx
2264
xorl 0x600(%ebp,%ebx,1),%esi
2265
xorl 0x700(%ebp,%ecx,1),%esi
2266
movl (%esp),%ecx
2267
xorl 0x400(%ebp,%eax,1),%esi
2268
xorl 0x500(%ebp,%edx,1),%esi
2269
2270
movl 80(%ecx),%eax
2271
xorl %ebx,%ebx
2272
movl 84(%ecx),%edx
2273
xorl %esi,%eax
2274
xorl %ecx,%ecx
2275
xorl %esi,%edx
2276
andl $0xfcfcfcfc,%eax
2277
andl $0xcfcfcfcf,%edx
2278
movb %al,%bl
2279
movb %ah,%cl
2280
rorl $4,%edx
2281
xorl (%ebp,%ebx,1),%edi
2282
movb %dl,%bl
2283
xorl 0x200(%ebp,%ecx,1),%edi
2284
movb %dh,%cl
2285
shrl $16,%eax
2286
xorl 0x100(%ebp,%ebx,1),%edi
2287
movb %ah,%bl
2288
shrl $16,%edx
2289
xorl 0x300(%ebp,%ecx,1),%edi
2290
movb %dh,%cl
2291
andl $0xff,%eax
2292
andl $0xff,%edx
2293
xorl 0x600(%ebp,%ebx,1),%edi
2294
xorl 0x700(%ebp,%ecx,1),%edi
2295
movl (%esp),%ecx
2296
xorl 0x400(%ebp,%eax,1),%edi
2297
xorl 0x500(%ebp,%edx,1),%edi
2298
2299
movl 88(%ecx),%eax
2300
xorl %ebx,%ebx
2301
movl 92(%ecx),%edx
2302
xorl %edi,%eax
2303
xorl %ecx,%ecx
2304
xorl %edi,%edx
2305
andl $0xfcfcfcfc,%eax
2306
andl $0xcfcfcfcf,%edx
2307
movb %al,%bl
2308
movb %ah,%cl
2309
rorl $4,%edx
2310
xorl (%ebp,%ebx,1),%esi
2311
movb %dl,%bl
2312
xorl 0x200(%ebp,%ecx,1),%esi
2313
movb %dh,%cl
2314
shrl $16,%eax
2315
xorl 0x100(%ebp,%ebx,1),%esi
2316
movb %ah,%bl
2317
shrl $16,%edx
2318
xorl 0x300(%ebp,%ecx,1),%esi
2319
movb %dh,%cl
2320
andl $0xff,%eax
2321
andl $0xff,%edx
2322
xorl 0x600(%ebp,%ebx,1),%esi
2323
xorl 0x700(%ebp,%ecx,1),%esi
2324
movl (%esp),%ecx
2325
xorl 0x400(%ebp,%eax,1),%esi
2326
xorl 0x500(%ebp,%edx,1),%esi
2327
2328
movl 96(%ecx),%eax
2329
xorl %ebx,%ebx
2330
movl 100(%ecx),%edx
2331
xorl %esi,%eax
2332
xorl %ecx,%ecx
2333
xorl %esi,%edx
2334
andl $0xfcfcfcfc,%eax
2335
andl $0xcfcfcfcf,%edx
2336
movb %al,%bl
2337
movb %ah,%cl
2338
rorl $4,%edx
2339
xorl (%ebp,%ebx,1),%edi
2340
movb %dl,%bl
2341
xorl 0x200(%ebp,%ecx,1),%edi
2342
movb %dh,%cl
2343
shrl $16,%eax
2344
xorl 0x100(%ebp,%ebx,1),%edi
2345
movb %ah,%bl
2346
shrl $16,%edx
2347
xorl 0x300(%ebp,%ecx,1),%edi
2348
movb %dh,%cl
2349
andl $0xff,%eax
2350
andl $0xff,%edx
2351
xorl 0x600(%ebp,%ebx,1),%edi
2352
xorl 0x700(%ebp,%ecx,1),%edi
2353
movl (%esp),%ecx
2354
xorl 0x400(%ebp,%eax,1),%edi
2355
xorl 0x500(%ebp,%edx,1),%edi
2356
2357
movl 104(%ecx),%eax
2358
xorl %ebx,%ebx
2359
movl 108(%ecx),%edx
2360
xorl %edi,%eax
2361
xorl %ecx,%ecx
2362
xorl %edi,%edx
2363
andl $0xfcfcfcfc,%eax
2364
andl $0xcfcfcfcf,%edx
2365
movb %al,%bl
2366
movb %ah,%cl
2367
rorl $4,%edx
2368
xorl (%ebp,%ebx,1),%esi
2369
movb %dl,%bl
2370
xorl 0x200(%ebp,%ecx,1),%esi
2371
movb %dh,%cl
2372
shrl $16,%eax
2373
xorl 0x100(%ebp,%ebx,1),%esi
2374
movb %ah,%bl
2375
shrl $16,%edx
2376
xorl 0x300(%ebp,%ecx,1),%esi
2377
movb %dh,%cl
2378
andl $0xff,%eax
2379
andl $0xff,%edx
2380
xorl 0x600(%ebp,%ebx,1),%esi
2381
xorl 0x700(%ebp,%ecx,1),%esi
2382
movl (%esp),%ecx
2383
xorl 0x400(%ebp,%eax,1),%esi
2384
xorl 0x500(%ebp,%edx,1),%esi
2385
2386
movl 112(%ecx),%eax
2387
xorl %ebx,%ebx
2388
movl 116(%ecx),%edx
2389
xorl %esi,%eax
2390
xorl %ecx,%ecx
2391
xorl %esi,%edx
2392
andl $0xfcfcfcfc,%eax
2393
andl $0xcfcfcfcf,%edx
2394
movb %al,%bl
2395
movb %ah,%cl
2396
rorl $4,%edx
2397
xorl (%ebp,%ebx,1),%edi
2398
movb %dl,%bl
2399
xorl 0x200(%ebp,%ecx,1),%edi
2400
movb %dh,%cl
2401
shrl $16,%eax
2402
xorl 0x100(%ebp,%ebx,1),%edi
2403
movb %ah,%bl
2404
shrl $16,%edx
2405
xorl 0x300(%ebp,%ecx,1),%edi
2406
movb %dh,%cl
2407
andl $0xff,%eax
2408
andl $0xff,%edx
2409
xorl 0x600(%ebp,%ebx,1),%edi
2410
xorl 0x700(%ebp,%ecx,1),%edi
2411
movl (%esp),%ecx
2412
xorl 0x400(%ebp,%eax,1),%edi
2413
xorl 0x500(%ebp,%edx,1),%edi
2414
2415
movl 120(%ecx),%eax
2416
xorl %ebx,%ebx
2417
movl 124(%ecx),%edx
2418
xorl %edi,%eax
2419
xorl %ecx,%ecx
2420
xorl %edi,%edx
2421
andl $0xfcfcfcfc,%eax
2422
andl $0xcfcfcfcf,%edx
2423
movb %al,%bl
2424
movb %ah,%cl
2425
rorl $4,%edx
2426
xorl (%ebp,%ebx,1),%esi
2427
movb %dl,%bl
2428
xorl 0x200(%ebp,%ecx,1),%esi
2429
movb %dh,%cl
2430
shrl $16,%eax
2431
xorl 0x100(%ebp,%ebx,1),%esi
2432
movb %ah,%bl
2433
shrl $16,%edx
2434
xorl 0x300(%ebp,%ecx,1),%esi
2435
movb %dh,%cl
2436
andl $0xff,%eax
2437
andl $0xff,%edx
2438
xorl 0x600(%ebp,%ebx,1),%esi
2439
xorl 0x700(%ebp,%ecx,1),%esi
2440
movl (%esp),%ecx
2441
xorl 0x400(%ebp,%eax,1),%esi
2442
xorl 0x500(%ebp,%edx,1),%esi
2443
addl $4,%esp
2444
ret
2445
.size _x86_DES_encrypt,.-_x86_DES_encrypt
2446
.type _x86_DES_decrypt,@function
2447
.align 16
2448
_x86_DES_decrypt:
2449
#ifdef __CET__
2450
2451
.byte 243,15,30,251
2452
#endif
2453
2454
pushl %ecx
2455
2456
movl 120(%ecx),%eax
2457
xorl %ebx,%ebx
2458
movl 124(%ecx),%edx
2459
xorl %esi,%eax
2460
xorl %ecx,%ecx
2461
xorl %esi,%edx
2462
andl $0xfcfcfcfc,%eax
2463
andl $0xcfcfcfcf,%edx
2464
movb %al,%bl
2465
movb %ah,%cl
2466
rorl $4,%edx
2467
xorl (%ebp,%ebx,1),%edi
2468
movb %dl,%bl
2469
xorl 0x200(%ebp,%ecx,1),%edi
2470
movb %dh,%cl
2471
shrl $16,%eax
2472
xorl 0x100(%ebp,%ebx,1),%edi
2473
movb %ah,%bl
2474
shrl $16,%edx
2475
xorl 0x300(%ebp,%ecx,1),%edi
2476
movb %dh,%cl
2477
andl $0xff,%eax
2478
andl $0xff,%edx
2479
xorl 0x600(%ebp,%ebx,1),%edi
2480
xorl 0x700(%ebp,%ecx,1),%edi
2481
movl (%esp),%ecx
2482
xorl 0x400(%ebp,%eax,1),%edi
2483
xorl 0x500(%ebp,%edx,1),%edi
2484
2485
movl 112(%ecx),%eax
2486
xorl %ebx,%ebx
2487
movl 116(%ecx),%edx
2488
xorl %edi,%eax
2489
xorl %ecx,%ecx
2490
xorl %edi,%edx
2491
andl $0xfcfcfcfc,%eax
2492
andl $0xcfcfcfcf,%edx
2493
movb %al,%bl
2494
movb %ah,%cl
2495
rorl $4,%edx
2496
xorl (%ebp,%ebx,1),%esi
2497
movb %dl,%bl
2498
xorl 0x200(%ebp,%ecx,1),%esi
2499
movb %dh,%cl
2500
shrl $16,%eax
2501
xorl 0x100(%ebp,%ebx,1),%esi
2502
movb %ah,%bl
2503
shrl $16,%edx
2504
xorl 0x300(%ebp,%ecx,1),%esi
2505
movb %dh,%cl
2506
andl $0xff,%eax
2507
andl $0xff,%edx
2508
xorl 0x600(%ebp,%ebx,1),%esi
2509
xorl 0x700(%ebp,%ecx,1),%esi
2510
movl (%esp),%ecx
2511
xorl 0x400(%ebp,%eax,1),%esi
2512
xorl 0x500(%ebp,%edx,1),%esi
2513
2514
movl 104(%ecx),%eax
2515
xorl %ebx,%ebx
2516
movl 108(%ecx),%edx
2517
xorl %esi,%eax
2518
xorl %ecx,%ecx
2519
xorl %esi,%edx
2520
andl $0xfcfcfcfc,%eax
2521
andl $0xcfcfcfcf,%edx
2522
movb %al,%bl
2523
movb %ah,%cl
2524
rorl $4,%edx
2525
xorl (%ebp,%ebx,1),%edi
2526
movb %dl,%bl
2527
xorl 0x200(%ebp,%ecx,1),%edi
2528
movb %dh,%cl
2529
shrl $16,%eax
2530
xorl 0x100(%ebp,%ebx,1),%edi
2531
movb %ah,%bl
2532
shrl $16,%edx
2533
xorl 0x300(%ebp,%ecx,1),%edi
2534
movb %dh,%cl
2535
andl $0xff,%eax
2536
andl $0xff,%edx
2537
xorl 0x600(%ebp,%ebx,1),%edi
2538
xorl 0x700(%ebp,%ecx,1),%edi
2539
movl (%esp),%ecx
2540
xorl 0x400(%ebp,%eax,1),%edi
2541
xorl 0x500(%ebp,%edx,1),%edi
2542
2543
movl 96(%ecx),%eax
2544
xorl %ebx,%ebx
2545
movl 100(%ecx),%edx
2546
xorl %edi,%eax
2547
xorl %ecx,%ecx
2548
xorl %edi,%edx
2549
andl $0xfcfcfcfc,%eax
2550
andl $0xcfcfcfcf,%edx
2551
movb %al,%bl
2552
movb %ah,%cl
2553
rorl $4,%edx
2554
xorl (%ebp,%ebx,1),%esi
2555
movb %dl,%bl
2556
xorl 0x200(%ebp,%ecx,1),%esi
2557
movb %dh,%cl
2558
shrl $16,%eax
2559
xorl 0x100(%ebp,%ebx,1),%esi
2560
movb %ah,%bl
2561
shrl $16,%edx
2562
xorl 0x300(%ebp,%ecx,1),%esi
2563
movb %dh,%cl
2564
andl $0xff,%eax
2565
andl $0xff,%edx
2566
xorl 0x600(%ebp,%ebx,1),%esi
2567
xorl 0x700(%ebp,%ecx,1),%esi
2568
movl (%esp),%ecx
2569
xorl 0x400(%ebp,%eax,1),%esi
2570
xorl 0x500(%ebp,%edx,1),%esi
2571
2572
movl 88(%ecx),%eax
2573
xorl %ebx,%ebx
2574
movl 92(%ecx),%edx
2575
xorl %esi,%eax
2576
xorl %ecx,%ecx
2577
xorl %esi,%edx
2578
andl $0xfcfcfcfc,%eax
2579
andl $0xcfcfcfcf,%edx
2580
movb %al,%bl
2581
movb %ah,%cl
2582
rorl $4,%edx
2583
xorl (%ebp,%ebx,1),%edi
2584
movb %dl,%bl
2585
xorl 0x200(%ebp,%ecx,1),%edi
2586
movb %dh,%cl
2587
shrl $16,%eax
2588
xorl 0x100(%ebp,%ebx,1),%edi
2589
movb %ah,%bl
2590
shrl $16,%edx
2591
xorl 0x300(%ebp,%ecx,1),%edi
2592
movb %dh,%cl
2593
andl $0xff,%eax
2594
andl $0xff,%edx
2595
xorl 0x600(%ebp,%ebx,1),%edi
2596
xorl 0x700(%ebp,%ecx,1),%edi
2597
movl (%esp),%ecx
2598
xorl 0x400(%ebp,%eax,1),%edi
2599
xorl 0x500(%ebp,%edx,1),%edi
2600
2601
movl 80(%ecx),%eax
2602
xorl %ebx,%ebx
2603
movl 84(%ecx),%edx
2604
xorl %edi,%eax
2605
xorl %ecx,%ecx
2606
xorl %edi,%edx
2607
andl $0xfcfcfcfc,%eax
2608
andl $0xcfcfcfcf,%edx
2609
movb %al,%bl
2610
movb %ah,%cl
2611
rorl $4,%edx
2612
xorl (%ebp,%ebx,1),%esi
2613
movb %dl,%bl
2614
xorl 0x200(%ebp,%ecx,1),%esi
2615
movb %dh,%cl
2616
shrl $16,%eax
2617
xorl 0x100(%ebp,%ebx,1),%esi
2618
movb %ah,%bl
2619
shrl $16,%edx
2620
xorl 0x300(%ebp,%ecx,1),%esi
2621
movb %dh,%cl
2622
andl $0xff,%eax
2623
andl $0xff,%edx
2624
xorl 0x600(%ebp,%ebx,1),%esi
2625
xorl 0x700(%ebp,%ecx,1),%esi
2626
movl (%esp),%ecx
2627
xorl 0x400(%ebp,%eax,1),%esi
2628
xorl 0x500(%ebp,%edx,1),%esi
2629
2630
movl 72(%ecx),%eax
2631
xorl %ebx,%ebx
2632
movl 76(%ecx),%edx
2633
xorl %esi,%eax
2634
xorl %ecx,%ecx
2635
xorl %esi,%edx
2636
andl $0xfcfcfcfc,%eax
2637
andl $0xcfcfcfcf,%edx
2638
movb %al,%bl
2639
movb %ah,%cl
2640
rorl $4,%edx
2641
xorl (%ebp,%ebx,1),%edi
2642
movb %dl,%bl
2643
xorl 0x200(%ebp,%ecx,1),%edi
2644
movb %dh,%cl
2645
shrl $16,%eax
2646
xorl 0x100(%ebp,%ebx,1),%edi
2647
movb %ah,%bl
2648
shrl $16,%edx
2649
xorl 0x300(%ebp,%ecx,1),%edi
2650
movb %dh,%cl
2651
andl $0xff,%eax
2652
andl $0xff,%edx
2653
xorl 0x600(%ebp,%ebx,1),%edi
2654
xorl 0x700(%ebp,%ecx,1),%edi
2655
movl (%esp),%ecx
2656
xorl 0x400(%ebp,%eax,1),%edi
2657
xorl 0x500(%ebp,%edx,1),%edi
2658
2659
movl 64(%ecx),%eax
2660
xorl %ebx,%ebx
2661
movl 68(%ecx),%edx
2662
xorl %edi,%eax
2663
xorl %ecx,%ecx
2664
xorl %edi,%edx
2665
andl $0xfcfcfcfc,%eax
2666
andl $0xcfcfcfcf,%edx
2667
movb %al,%bl
2668
movb %ah,%cl
2669
rorl $4,%edx
2670
xorl (%ebp,%ebx,1),%esi
2671
movb %dl,%bl
2672
xorl 0x200(%ebp,%ecx,1),%esi
2673
movb %dh,%cl
2674
shrl $16,%eax
2675
xorl 0x100(%ebp,%ebx,1),%esi
2676
movb %ah,%bl
2677
shrl $16,%edx
2678
xorl 0x300(%ebp,%ecx,1),%esi
2679
movb %dh,%cl
2680
andl $0xff,%eax
2681
andl $0xff,%edx
2682
xorl 0x600(%ebp,%ebx,1),%esi
2683
xorl 0x700(%ebp,%ecx,1),%esi
2684
movl (%esp),%ecx
2685
xorl 0x400(%ebp,%eax,1),%esi
2686
xorl 0x500(%ebp,%edx,1),%esi
2687
2688
movl 56(%ecx),%eax
2689
xorl %ebx,%ebx
2690
movl 60(%ecx),%edx
2691
xorl %esi,%eax
2692
xorl %ecx,%ecx
2693
xorl %esi,%edx
2694
andl $0xfcfcfcfc,%eax
2695
andl $0xcfcfcfcf,%edx
2696
movb %al,%bl
2697
movb %ah,%cl
2698
rorl $4,%edx
2699
xorl (%ebp,%ebx,1),%edi
2700
movb %dl,%bl
2701
xorl 0x200(%ebp,%ecx,1),%edi
2702
movb %dh,%cl
2703
shrl $16,%eax
2704
xorl 0x100(%ebp,%ebx,1),%edi
2705
movb %ah,%bl
2706
shrl $16,%edx
2707
xorl 0x300(%ebp,%ecx,1),%edi
2708
movb %dh,%cl
2709
andl $0xff,%eax
2710
andl $0xff,%edx
2711
xorl 0x600(%ebp,%ebx,1),%edi
2712
xorl 0x700(%ebp,%ecx,1),%edi
2713
movl (%esp),%ecx
2714
xorl 0x400(%ebp,%eax,1),%edi
2715
xorl 0x500(%ebp,%edx,1),%edi
2716
2717
movl 48(%ecx),%eax
2718
xorl %ebx,%ebx
2719
movl 52(%ecx),%edx
2720
xorl %edi,%eax
2721
xorl %ecx,%ecx
2722
xorl %edi,%edx
2723
andl $0xfcfcfcfc,%eax
2724
andl $0xcfcfcfcf,%edx
2725
movb %al,%bl
2726
movb %ah,%cl
2727
rorl $4,%edx
2728
xorl (%ebp,%ebx,1),%esi
2729
movb %dl,%bl
2730
xorl 0x200(%ebp,%ecx,1),%esi
2731
movb %dh,%cl
2732
shrl $16,%eax
2733
xorl 0x100(%ebp,%ebx,1),%esi
2734
movb %ah,%bl
2735
shrl $16,%edx
2736
xorl 0x300(%ebp,%ecx,1),%esi
2737
movb %dh,%cl
2738
andl $0xff,%eax
2739
andl $0xff,%edx
2740
xorl 0x600(%ebp,%ebx,1),%esi
2741
xorl 0x700(%ebp,%ecx,1),%esi
2742
movl (%esp),%ecx
2743
xorl 0x400(%ebp,%eax,1),%esi
2744
xorl 0x500(%ebp,%edx,1),%esi
2745
2746
movl 40(%ecx),%eax
2747
xorl %ebx,%ebx
2748
movl 44(%ecx),%edx
2749
xorl %esi,%eax
2750
xorl %ecx,%ecx
2751
xorl %esi,%edx
2752
andl $0xfcfcfcfc,%eax
2753
andl $0xcfcfcfcf,%edx
2754
movb %al,%bl
2755
movb %ah,%cl
2756
rorl $4,%edx
2757
xorl (%ebp,%ebx,1),%edi
2758
movb %dl,%bl
2759
xorl 0x200(%ebp,%ecx,1),%edi
2760
movb %dh,%cl
2761
shrl $16,%eax
2762
xorl 0x100(%ebp,%ebx,1),%edi
2763
movb %ah,%bl
2764
shrl $16,%edx
2765
xorl 0x300(%ebp,%ecx,1),%edi
2766
movb %dh,%cl
2767
andl $0xff,%eax
2768
andl $0xff,%edx
2769
xorl 0x600(%ebp,%ebx,1),%edi
2770
xorl 0x700(%ebp,%ecx,1),%edi
2771
movl (%esp),%ecx
2772
xorl 0x400(%ebp,%eax,1),%edi
2773
xorl 0x500(%ebp,%edx,1),%edi
2774
2775
movl 32(%ecx),%eax
2776
xorl %ebx,%ebx
2777
movl 36(%ecx),%edx
2778
xorl %edi,%eax
2779
xorl %ecx,%ecx
2780
xorl %edi,%edx
2781
andl $0xfcfcfcfc,%eax
2782
andl $0xcfcfcfcf,%edx
2783
movb %al,%bl
2784
movb %ah,%cl
2785
rorl $4,%edx
2786
xorl (%ebp,%ebx,1),%esi
2787
movb %dl,%bl
2788
xorl 0x200(%ebp,%ecx,1),%esi
2789
movb %dh,%cl
2790
shrl $16,%eax
2791
xorl 0x100(%ebp,%ebx,1),%esi
2792
movb %ah,%bl
2793
shrl $16,%edx
2794
xorl 0x300(%ebp,%ecx,1),%esi
2795
movb %dh,%cl
2796
andl $0xff,%eax
2797
andl $0xff,%edx
2798
xorl 0x600(%ebp,%ebx,1),%esi
2799
xorl 0x700(%ebp,%ecx,1),%esi
2800
movl (%esp),%ecx
2801
xorl 0x400(%ebp,%eax,1),%esi
2802
xorl 0x500(%ebp,%edx,1),%esi
2803
2804
movl 24(%ecx),%eax
2805
xorl %ebx,%ebx
2806
movl 28(%ecx),%edx
2807
xorl %esi,%eax
2808
xorl %ecx,%ecx
2809
xorl %esi,%edx
2810
andl $0xfcfcfcfc,%eax
2811
andl $0xcfcfcfcf,%edx
2812
movb %al,%bl
2813
movb %ah,%cl
2814
rorl $4,%edx
2815
xorl (%ebp,%ebx,1),%edi
2816
movb %dl,%bl
2817
xorl 0x200(%ebp,%ecx,1),%edi
2818
movb %dh,%cl
2819
shrl $16,%eax
2820
xorl 0x100(%ebp,%ebx,1),%edi
2821
movb %ah,%bl
2822
shrl $16,%edx
2823
xorl 0x300(%ebp,%ecx,1),%edi
2824
movb %dh,%cl
2825
andl $0xff,%eax
2826
andl $0xff,%edx
2827
xorl 0x600(%ebp,%ebx,1),%edi
2828
xorl 0x700(%ebp,%ecx,1),%edi
2829
movl (%esp),%ecx
2830
xorl 0x400(%ebp,%eax,1),%edi
2831
xorl 0x500(%ebp,%edx,1),%edi
2832
2833
movl 16(%ecx),%eax
2834
xorl %ebx,%ebx
2835
movl 20(%ecx),%edx
2836
xorl %edi,%eax
2837
xorl %ecx,%ecx
2838
xorl %edi,%edx
2839
andl $0xfcfcfcfc,%eax
2840
andl $0xcfcfcfcf,%edx
2841
movb %al,%bl
2842
movb %ah,%cl
2843
rorl $4,%edx
2844
xorl (%ebp,%ebx,1),%esi
2845
movb %dl,%bl
2846
xorl 0x200(%ebp,%ecx,1),%esi
2847
movb %dh,%cl
2848
shrl $16,%eax
2849
xorl 0x100(%ebp,%ebx,1),%esi
2850
movb %ah,%bl
2851
shrl $16,%edx
2852
xorl 0x300(%ebp,%ecx,1),%esi
2853
movb %dh,%cl
2854
andl $0xff,%eax
2855
andl $0xff,%edx
2856
xorl 0x600(%ebp,%ebx,1),%esi
2857
xorl 0x700(%ebp,%ecx,1),%esi
2858
movl (%esp),%ecx
2859
xorl 0x400(%ebp,%eax,1),%esi
2860
xorl 0x500(%ebp,%edx,1),%esi
2861
2862
movl 8(%ecx),%eax
2863
xorl %ebx,%ebx
2864
movl 12(%ecx),%edx
2865
xorl %esi,%eax
2866
xorl %ecx,%ecx
2867
xorl %esi,%edx
2868
andl $0xfcfcfcfc,%eax
2869
andl $0xcfcfcfcf,%edx
2870
movb %al,%bl
2871
movb %ah,%cl
2872
rorl $4,%edx
2873
xorl (%ebp,%ebx,1),%edi
2874
movb %dl,%bl
2875
xorl 0x200(%ebp,%ecx,1),%edi
2876
movb %dh,%cl
2877
shrl $16,%eax
2878
xorl 0x100(%ebp,%ebx,1),%edi
2879
movb %ah,%bl
2880
shrl $16,%edx
2881
xorl 0x300(%ebp,%ecx,1),%edi
2882
movb %dh,%cl
2883
andl $0xff,%eax
2884
andl $0xff,%edx
2885
xorl 0x600(%ebp,%ebx,1),%edi
2886
xorl 0x700(%ebp,%ecx,1),%edi
2887
movl (%esp),%ecx
2888
xorl 0x400(%ebp,%eax,1),%edi
2889
xorl 0x500(%ebp,%edx,1),%edi
2890
2891
movl (%ecx),%eax
2892
xorl %ebx,%ebx
2893
movl 4(%ecx),%edx
2894
xorl %edi,%eax
2895
xorl %ecx,%ecx
2896
xorl %edi,%edx
2897
andl $0xfcfcfcfc,%eax
2898
andl $0xcfcfcfcf,%edx
2899
movb %al,%bl
2900
movb %ah,%cl
2901
rorl $4,%edx
2902
xorl (%ebp,%ebx,1),%esi
2903
movb %dl,%bl
2904
xorl 0x200(%ebp,%ecx,1),%esi
2905
movb %dh,%cl
2906
shrl $16,%eax
2907
xorl 0x100(%ebp,%ebx,1),%esi
2908
movb %ah,%bl
2909
shrl $16,%edx
2910
xorl 0x300(%ebp,%ecx,1),%esi
2911
movb %dh,%cl
2912
andl $0xff,%eax
2913
andl $0xff,%edx
2914
xorl 0x600(%ebp,%ebx,1),%esi
2915
xorl 0x700(%ebp,%ecx,1),%esi
2916
movl (%esp),%ecx
2917
xorl 0x400(%ebp,%eax,1),%esi
2918
xorl 0x500(%ebp,%edx,1),%esi
2919
addl $4,%esp
2920
ret
2921
.size _x86_DES_decrypt,.-_x86_DES_decrypt
2922
.globl DES_encrypt1
2923
.type DES_encrypt1,@function
2924
.align 16
2925
DES_encrypt1:
2926
.L_DES_encrypt1_begin:
2927
#ifdef __CET__
2928
2929
.byte 243,15,30,251
2930
#endif
2931
2932
pushl %esi
2933
pushl %edi
2934
2935
2936
movl 12(%esp),%esi
2937
xorl %ecx,%ecx
2938
pushl %ebx
2939
pushl %ebp
2940
movl (%esi),%eax
2941
movl 28(%esp),%ebx
2942
movl 4(%esi),%edi
2943
2944
2945
roll $4,%eax
2946
movl %eax,%esi
2947
xorl %edi,%eax
2948
andl $0xf0f0f0f0,%eax
2949
xorl %eax,%esi
2950
xorl %eax,%edi
2951
2952
roll $20,%edi
2953
movl %edi,%eax
2954
xorl %esi,%edi
2955
andl $0xfff0000f,%edi
2956
xorl %edi,%eax
2957
xorl %edi,%esi
2958
2959
roll $14,%eax
2960
movl %eax,%edi
2961
xorl %esi,%eax
2962
andl $0x33333333,%eax
2963
xorl %eax,%edi
2964
xorl %eax,%esi
2965
2966
roll $22,%esi
2967
movl %esi,%eax
2968
xorl %edi,%esi
2969
andl $0x03fc03fc,%esi
2970
xorl %esi,%eax
2971
xorl %esi,%edi
2972
2973
roll $9,%eax
2974
movl %eax,%esi
2975
xorl %edi,%eax
2976
andl $0xaaaaaaaa,%eax
2977
xorl %eax,%esi
2978
xorl %eax,%edi
2979
2980
roll $1,%edi
2981
call .L000pic_point
2982
.L000pic_point:
2983
popl %ebp
2984
leal .Ldes_sptrans-.L000pic_point(%ebp),%ebp
2985
movl 24(%esp),%ecx
2986
cmpl $0,%ebx
2987
je .L001decrypt
2988
call _x86_DES_encrypt
2989
jmp .L002done
2990
.L001decrypt:
2991
call _x86_DES_decrypt
2992
.L002done:
2993
2994
2995
movl 20(%esp),%edx
2996
rorl $1,%esi
2997
movl %edi,%eax
2998
xorl %esi,%edi
2999
andl $0xaaaaaaaa,%edi
3000
xorl %edi,%eax
3001
xorl %edi,%esi
3002
3003
roll $23,%eax
3004
movl %eax,%edi
3005
xorl %esi,%eax
3006
andl $0x03fc03fc,%eax
3007
xorl %eax,%edi
3008
xorl %eax,%esi
3009
3010
roll $10,%edi
3011
movl %edi,%eax
3012
xorl %esi,%edi
3013
andl $0x33333333,%edi
3014
xorl %edi,%eax
3015
xorl %edi,%esi
3016
3017
roll $18,%esi
3018
movl %esi,%edi
3019
xorl %eax,%esi
3020
andl $0xfff0000f,%esi
3021
xorl %esi,%edi
3022
xorl %esi,%eax
3023
3024
roll $12,%edi
3025
movl %edi,%esi
3026
xorl %eax,%edi
3027
andl $0xf0f0f0f0,%edi
3028
xorl %edi,%esi
3029
xorl %edi,%eax
3030
3031
rorl $4,%eax
3032
movl %eax,(%edx)
3033
movl %esi,4(%edx)
3034
popl %ebp
3035
popl %ebx
3036
popl %edi
3037
popl %esi
3038
ret
3039
.size DES_encrypt1,.-.L_DES_encrypt1_begin
3040
.globl DES_encrypt2
3041
.type DES_encrypt2,@function
3042
.align 16
3043
DES_encrypt2:
3044
.L_DES_encrypt2_begin:
3045
#ifdef __CET__
3046
3047
.byte 243,15,30,251
3048
#endif
3049
3050
pushl %esi
3051
pushl %edi
3052
3053
3054
movl 12(%esp),%eax
3055
xorl %ecx,%ecx
3056
pushl %ebx
3057
pushl %ebp
3058
movl (%eax),%esi
3059
movl 28(%esp),%ebx
3060
roll $3,%esi
3061
movl 4(%eax),%edi
3062
roll $3,%edi
3063
call .L003pic_point
3064
.L003pic_point:
3065
popl %ebp
3066
leal .Ldes_sptrans-.L003pic_point(%ebp),%ebp
3067
movl 24(%esp),%ecx
3068
cmpl $0,%ebx
3069
je .L004decrypt
3070
call _x86_DES_encrypt
3071
jmp .L005done
3072
.L004decrypt:
3073
call _x86_DES_decrypt
3074
.L005done:
3075
3076
3077
rorl $3,%edi
3078
movl 20(%esp),%eax
3079
rorl $3,%esi
3080
movl %edi,(%eax)
3081
movl %esi,4(%eax)
3082
popl %ebp
3083
popl %ebx
3084
popl %edi
3085
popl %esi
3086
ret
3087
.size DES_encrypt2,.-.L_DES_encrypt2_begin
3088
.globl DES_encrypt3
3089
.type DES_encrypt3,@function
3090
.align 16
3091
DES_encrypt3:
3092
.L_DES_encrypt3_begin:
3093
#ifdef __CET__
3094
3095
.byte 243,15,30,251
3096
#endif
3097
3098
pushl %ebx
3099
movl 8(%esp),%ebx
3100
pushl %ebp
3101
pushl %esi
3102
pushl %edi
3103
3104
3105
movl (%ebx),%edi
3106
movl 4(%ebx),%esi
3107
subl $12,%esp
3108
3109
3110
roll $4,%edi
3111
movl %edi,%edx
3112
xorl %esi,%edi
3113
andl $0xf0f0f0f0,%edi
3114
xorl %edi,%edx
3115
xorl %edi,%esi
3116
3117
roll $20,%esi
3118
movl %esi,%edi
3119
xorl %edx,%esi
3120
andl $0xfff0000f,%esi
3121
xorl %esi,%edi
3122
xorl %esi,%edx
3123
3124
roll $14,%edi
3125
movl %edi,%esi
3126
xorl %edx,%edi
3127
andl $0x33333333,%edi
3128
xorl %edi,%esi
3129
xorl %edi,%edx
3130
3131
roll $22,%edx
3132
movl %edx,%edi
3133
xorl %esi,%edx
3134
andl $0x03fc03fc,%edx
3135
xorl %edx,%edi
3136
xorl %edx,%esi
3137
3138
roll $9,%edi
3139
movl %edi,%edx
3140
xorl %esi,%edi
3141
andl $0xaaaaaaaa,%edi
3142
xorl %edi,%edx
3143
xorl %edi,%esi
3144
3145
rorl $3,%edx
3146
rorl $2,%esi
3147
movl %esi,4(%ebx)
3148
movl 36(%esp),%eax
3149
movl %edx,(%ebx)
3150
movl 40(%esp),%edi
3151
movl 44(%esp),%esi
3152
movl $1,8(%esp)
3153
movl %eax,4(%esp)
3154
movl %ebx,(%esp)
3155
call .L_DES_encrypt2_begin
3156
movl $0,8(%esp)
3157
movl %edi,4(%esp)
3158
movl %ebx,(%esp)
3159
call .L_DES_encrypt2_begin
3160
movl $1,8(%esp)
3161
movl %esi,4(%esp)
3162
movl %ebx,(%esp)
3163
call .L_DES_encrypt2_begin
3164
addl $12,%esp
3165
movl (%ebx),%edi
3166
movl 4(%ebx),%esi
3167
3168
3169
roll $2,%esi
3170
roll $3,%edi
3171
movl %edi,%eax
3172
xorl %esi,%edi
3173
andl $0xaaaaaaaa,%edi
3174
xorl %edi,%eax
3175
xorl %edi,%esi
3176
3177
roll $23,%eax
3178
movl %eax,%edi
3179
xorl %esi,%eax
3180
andl $0x03fc03fc,%eax
3181
xorl %eax,%edi
3182
xorl %eax,%esi
3183
3184
roll $10,%edi
3185
movl %edi,%eax
3186
xorl %esi,%edi
3187
andl $0x33333333,%edi
3188
xorl %edi,%eax
3189
xorl %edi,%esi
3190
3191
roll $18,%esi
3192
movl %esi,%edi
3193
xorl %eax,%esi
3194
andl $0xfff0000f,%esi
3195
xorl %esi,%edi
3196
xorl %esi,%eax
3197
3198
roll $12,%edi
3199
movl %edi,%esi
3200
xorl %eax,%edi
3201
andl $0xf0f0f0f0,%edi
3202
xorl %edi,%esi
3203
xorl %edi,%eax
3204
3205
rorl $4,%eax
3206
movl %eax,(%ebx)
3207
movl %esi,4(%ebx)
3208
popl %edi
3209
popl %esi
3210
popl %ebp
3211
popl %ebx
3212
ret
3213
.size DES_encrypt3,.-.L_DES_encrypt3_begin
3214
.globl DES_decrypt3
3215
.type DES_decrypt3,@function
3216
.align 16
3217
DES_decrypt3:
3218
.L_DES_decrypt3_begin:
3219
#ifdef __CET__
3220
3221
.byte 243,15,30,251
3222
#endif
3223
3224
pushl %ebx
3225
movl 8(%esp),%ebx
3226
pushl %ebp
3227
pushl %esi
3228
pushl %edi
3229
3230
3231
movl (%ebx),%edi
3232
movl 4(%ebx),%esi
3233
subl $12,%esp
3234
3235
3236
roll $4,%edi
3237
movl %edi,%edx
3238
xorl %esi,%edi
3239
andl $0xf0f0f0f0,%edi
3240
xorl %edi,%edx
3241
xorl %edi,%esi
3242
3243
roll $20,%esi
3244
movl %esi,%edi
3245
xorl %edx,%esi
3246
andl $0xfff0000f,%esi
3247
xorl %esi,%edi
3248
xorl %esi,%edx
3249
3250
roll $14,%edi
3251
movl %edi,%esi
3252
xorl %edx,%edi
3253
andl $0x33333333,%edi
3254
xorl %edi,%esi
3255
xorl %edi,%edx
3256
3257
roll $22,%edx
3258
movl %edx,%edi
3259
xorl %esi,%edx
3260
andl $0x03fc03fc,%edx
3261
xorl %edx,%edi
3262
xorl %edx,%esi
3263
3264
roll $9,%edi
3265
movl %edi,%edx
3266
xorl %esi,%edi
3267
andl $0xaaaaaaaa,%edi
3268
xorl %edi,%edx
3269
xorl %edi,%esi
3270
3271
rorl $3,%edx
3272
rorl $2,%esi
3273
movl %esi,4(%ebx)
3274
movl 36(%esp),%esi
3275
movl %edx,(%ebx)
3276
movl 40(%esp),%edi
3277
movl 44(%esp),%eax
3278
movl $0,8(%esp)
3279
movl %eax,4(%esp)
3280
movl %ebx,(%esp)
3281
call .L_DES_encrypt2_begin
3282
movl $1,8(%esp)
3283
movl %edi,4(%esp)
3284
movl %ebx,(%esp)
3285
call .L_DES_encrypt2_begin
3286
movl $0,8(%esp)
3287
movl %esi,4(%esp)
3288
movl %ebx,(%esp)
3289
call .L_DES_encrypt2_begin
3290
addl $12,%esp
3291
movl (%ebx),%edi
3292
movl 4(%ebx),%esi
3293
3294
3295
roll $2,%esi
3296
roll $3,%edi
3297
movl %edi,%eax
3298
xorl %esi,%edi
3299
andl $0xaaaaaaaa,%edi
3300
xorl %edi,%eax
3301
xorl %edi,%esi
3302
3303
roll $23,%eax
3304
movl %eax,%edi
3305
xorl %esi,%eax
3306
andl $0x03fc03fc,%eax
3307
xorl %eax,%edi
3308
xorl %eax,%esi
3309
3310
roll $10,%edi
3311
movl %edi,%eax
3312
xorl %esi,%edi
3313
andl $0x33333333,%edi
3314
xorl %edi,%eax
3315
xorl %edi,%esi
3316
3317
roll $18,%esi
3318
movl %esi,%edi
3319
xorl %eax,%esi
3320
andl $0xfff0000f,%esi
3321
xorl %esi,%edi
3322
xorl %esi,%eax
3323
3324
roll $12,%edi
3325
movl %edi,%esi
3326
xorl %eax,%edi
3327
andl $0xf0f0f0f0,%edi
3328
xorl %edi,%esi
3329
xorl %edi,%eax
3330
3331
rorl $4,%eax
3332
movl %eax,(%ebx)
3333
movl %esi,4(%ebx)
3334
popl %edi
3335
popl %esi
3336
popl %ebp
3337
popl %ebx
3338
ret
3339
.size DES_decrypt3,.-.L_DES_decrypt3_begin
3340
.globl DES_ncbc_encrypt
3341
.type DES_ncbc_encrypt,@function
3342
.align 16
3343
DES_ncbc_encrypt:
3344
.L_DES_ncbc_encrypt_begin:
3345
#ifdef __CET__
3346
3347
.byte 243,15,30,251
3348
#endif
3349
3350
3351
pushl %ebp
3352
pushl %ebx
3353
pushl %esi
3354
pushl %edi
3355
movl 28(%esp),%ebp
3356
3357
movl 36(%esp),%ebx
3358
movl (%ebx),%esi
3359
movl 4(%ebx),%edi
3360
pushl %edi
3361
pushl %esi
3362
pushl %edi
3363
pushl %esi
3364
movl %esp,%ebx
3365
movl 36(%esp),%esi
3366
movl 40(%esp),%edi
3367
3368
movl 56(%esp),%ecx
3369
3370
pushl %ecx
3371
3372
movl 52(%esp),%eax
3373
pushl %eax
3374
pushl %ebx
3375
cmpl $0,%ecx
3376
jz .L006decrypt
3377
andl $4294967288,%ebp
3378
movl 12(%esp),%eax
3379
movl 16(%esp),%ebx
3380
jz .L007encrypt_finish
3381
.L008encrypt_loop:
3382
movl (%esi),%ecx
3383
movl 4(%esi),%edx
3384
xorl %ecx,%eax
3385
xorl %edx,%ebx
3386
movl %eax,12(%esp)
3387
movl %ebx,16(%esp)
3388
call .L_DES_encrypt1_begin
3389
movl 12(%esp),%eax
3390
movl 16(%esp),%ebx
3391
movl %eax,(%edi)
3392
movl %ebx,4(%edi)
3393
addl $8,%esi
3394
addl $8,%edi
3395
subl $8,%ebp
3396
jnz .L008encrypt_loop
3397
.L007encrypt_finish:
3398
movl 56(%esp),%ebp
3399
andl $7,%ebp
3400
jz .L009finish
3401
call .L010PIC_point
3402
.L010PIC_point:
3403
popl %edx
3404
leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
3405
movl (%ecx,%ebp,4),%ebp
3406
addl %edx,%ebp
3407
xorl %ecx,%ecx
3408
xorl %edx,%edx
3409
jmp *%ebp
3410
.L012ej7:
3411
#ifdef __CET__
3412
3413
.byte 243,15,30,251
3414
#endif
3415
3416
movb 6(%esi),%dh
3417
shll $8,%edx
3418
.L013ej6:
3419
#ifdef __CET__
3420
3421
.byte 243,15,30,251
3422
#endif
3423
3424
movb 5(%esi),%dh
3425
.L014ej5:
3426
#ifdef __CET__
3427
3428
.byte 243,15,30,251
3429
#endif
3430
3431
movb 4(%esi),%dl
3432
.L015ej4:
3433
#ifdef __CET__
3434
3435
.byte 243,15,30,251
3436
#endif
3437
3438
movl (%esi),%ecx
3439
jmp .L016ejend
3440
.L017ej3:
3441
#ifdef __CET__
3442
3443
.byte 243,15,30,251
3444
#endif
3445
3446
movb 2(%esi),%ch
3447
shll $8,%ecx
3448
.L018ej2:
3449
#ifdef __CET__
3450
3451
.byte 243,15,30,251
3452
#endif
3453
3454
movb 1(%esi),%ch
3455
.L019ej1:
3456
#ifdef __CET__
3457
3458
.byte 243,15,30,251
3459
#endif
3460
3461
movb (%esi),%cl
3462
.L016ejend:
3463
xorl %ecx,%eax
3464
xorl %edx,%ebx
3465
movl %eax,12(%esp)
3466
movl %ebx,16(%esp)
3467
call .L_DES_encrypt1_begin
3468
movl 12(%esp),%eax
3469
movl 16(%esp),%ebx
3470
movl %eax,(%edi)
3471
movl %ebx,4(%edi)
3472
jmp .L009finish
3473
.L006decrypt:
3474
andl $4294967288,%ebp
3475
movl 20(%esp),%eax
3476
movl 24(%esp),%ebx
3477
jz .L020decrypt_finish
3478
.L021decrypt_loop:
3479
movl (%esi),%eax
3480
movl 4(%esi),%ebx
3481
movl %eax,12(%esp)
3482
movl %ebx,16(%esp)
3483
call .L_DES_encrypt1_begin
3484
movl 12(%esp),%eax
3485
movl 16(%esp),%ebx
3486
movl 20(%esp),%ecx
3487
movl 24(%esp),%edx
3488
xorl %eax,%ecx
3489
xorl %ebx,%edx
3490
movl (%esi),%eax
3491
movl 4(%esi),%ebx
3492
movl %ecx,(%edi)
3493
movl %edx,4(%edi)
3494
movl %eax,20(%esp)
3495
movl %ebx,24(%esp)
3496
addl $8,%esi
3497
addl $8,%edi
3498
subl $8,%ebp
3499
jnz .L021decrypt_loop
3500
.L020decrypt_finish:
3501
movl 56(%esp),%ebp
3502
andl $7,%ebp
3503
jz .L009finish
3504
movl (%esi),%eax
3505
movl 4(%esi),%ebx
3506
movl %eax,12(%esp)
3507
movl %ebx,16(%esp)
3508
call .L_DES_encrypt1_begin
3509
movl 12(%esp),%eax
3510
movl 16(%esp),%ebx
3511
movl 20(%esp),%ecx
3512
movl 24(%esp),%edx
3513
xorl %eax,%ecx
3514
xorl %ebx,%edx
3515
movl (%esi),%eax
3516
movl 4(%esi),%ebx
3517
.L022dj7:
3518
rorl $16,%edx
3519
movb %dl,6(%edi)
3520
shrl $16,%edx
3521
.L023dj6:
3522
movb %dh,5(%edi)
3523
.L024dj5:
3524
movb %dl,4(%edi)
3525
.L025dj4:
3526
movl %ecx,(%edi)
3527
jmp .L026djend
3528
.L027dj3:
3529
rorl $16,%ecx
3530
movb %cl,2(%edi)
3531
shll $16,%ecx
3532
.L028dj2:
3533
movb %ch,1(%esi)
3534
.L029dj1:
3535
movb %cl,(%esi)
3536
.L026djend:
3537
jmp .L009finish
3538
.L009finish:
3539
movl 64(%esp),%ecx
3540
addl $28,%esp
3541
movl %eax,(%ecx)
3542
movl %ebx,4(%ecx)
3543
popl %edi
3544
popl %esi
3545
popl %ebx
3546
popl %ebp
3547
ret
3548
.align 64
3549
.L011cbc_enc_jmp_table:
3550
.long 0
3551
.long .L019ej1-.L010PIC_point
3552
.long .L018ej2-.L010PIC_point
3553
.long .L017ej3-.L010PIC_point
3554
.long .L015ej4-.L010PIC_point
3555
.long .L014ej5-.L010PIC_point
3556
.long .L013ej6-.L010PIC_point
3557
.long .L012ej7-.L010PIC_point
3558
.align 64
3559
.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
3560
.globl DES_ede3_cbc_encrypt
3561
.type DES_ede3_cbc_encrypt,@function
3562
.align 16
3563
DES_ede3_cbc_encrypt:
3564
.L_DES_ede3_cbc_encrypt_begin:
3565
#ifdef __CET__
3566
3567
.byte 243,15,30,251
3568
#endif
3569
3570
3571
pushl %ebp
3572
pushl %ebx
3573
pushl %esi
3574
pushl %edi
3575
movl 28(%esp),%ebp
3576
3577
movl 44(%esp),%ebx
3578
movl (%ebx),%esi
3579
movl 4(%ebx),%edi
3580
pushl %edi
3581
pushl %esi
3582
pushl %edi
3583
pushl %esi
3584
movl %esp,%ebx
3585
movl 36(%esp),%esi
3586
movl 40(%esp),%edi
3587
3588
movl 64(%esp),%ecx
3589
3590
movl 56(%esp),%eax
3591
pushl %eax
3592
3593
movl 56(%esp),%eax
3594
pushl %eax
3595
3596
movl 56(%esp),%eax
3597
pushl %eax
3598
pushl %ebx
3599
cmpl $0,%ecx
3600
jz .L030decrypt
3601
andl $4294967288,%ebp
3602
movl 16(%esp),%eax
3603
movl 20(%esp),%ebx
3604
jz .L031encrypt_finish
3605
.L032encrypt_loop:
3606
movl (%esi),%ecx
3607
movl 4(%esi),%edx
3608
xorl %ecx,%eax
3609
xorl %edx,%ebx
3610
movl %eax,16(%esp)
3611
movl %ebx,20(%esp)
3612
call .L_DES_encrypt3_begin
3613
movl 16(%esp),%eax
3614
movl 20(%esp),%ebx
3615
movl %eax,(%edi)
3616
movl %ebx,4(%edi)
3617
addl $8,%esi
3618
addl $8,%edi
3619
subl $8,%ebp
3620
jnz .L032encrypt_loop
3621
.L031encrypt_finish:
3622
movl 60(%esp),%ebp
3623
andl $7,%ebp
3624
jz .L033finish
3625
call .L034PIC_point
3626
.L034PIC_point:
3627
popl %edx
3628
leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
3629
movl (%ecx,%ebp,4),%ebp
3630
addl %edx,%ebp
3631
xorl %ecx,%ecx
3632
xorl %edx,%edx
3633
jmp *%ebp
3634
.L036ej7:
3635
#ifdef __CET__
3636
3637
.byte 243,15,30,251
3638
#endif
3639
3640
movb 6(%esi),%dh
3641
shll $8,%edx
3642
.L037ej6:
3643
#ifdef __CET__
3644
3645
.byte 243,15,30,251
3646
#endif
3647
3648
movb 5(%esi),%dh
3649
.L038ej5:
3650
#ifdef __CET__
3651
3652
.byte 243,15,30,251
3653
#endif
3654
3655
movb 4(%esi),%dl
3656
.L039ej4:
3657
#ifdef __CET__
3658
3659
.byte 243,15,30,251
3660
#endif
3661
3662
movl (%esi),%ecx
3663
jmp .L040ejend
3664
.L041ej3:
3665
#ifdef __CET__
3666
3667
.byte 243,15,30,251
3668
#endif
3669
3670
movb 2(%esi),%ch
3671
shll $8,%ecx
3672
.L042ej2:
3673
#ifdef __CET__
3674
3675
.byte 243,15,30,251
3676
#endif
3677
3678
movb 1(%esi),%ch
3679
.L043ej1:
3680
#ifdef __CET__
3681
3682
.byte 243,15,30,251
3683
#endif
3684
3685
movb (%esi),%cl
3686
.L040ejend:
3687
xorl %ecx,%eax
3688
xorl %edx,%ebx
3689
movl %eax,16(%esp)
3690
movl %ebx,20(%esp)
3691
call .L_DES_encrypt3_begin
3692
movl 16(%esp),%eax
3693
movl 20(%esp),%ebx
3694
movl %eax,(%edi)
3695
movl %ebx,4(%edi)
3696
jmp .L033finish
3697
.L030decrypt:
3698
andl $4294967288,%ebp
3699
movl 24(%esp),%eax
3700
movl 28(%esp),%ebx
3701
jz .L044decrypt_finish
3702
.L045decrypt_loop:
3703
movl (%esi),%eax
3704
movl 4(%esi),%ebx
3705
movl %eax,16(%esp)
3706
movl %ebx,20(%esp)
3707
call .L_DES_decrypt3_begin
3708
movl 16(%esp),%eax
3709
movl 20(%esp),%ebx
3710
movl 24(%esp),%ecx
3711
movl 28(%esp),%edx
3712
xorl %eax,%ecx
3713
xorl %ebx,%edx
3714
movl (%esi),%eax
3715
movl 4(%esi),%ebx
3716
movl %ecx,(%edi)
3717
movl %edx,4(%edi)
3718
movl %eax,24(%esp)
3719
movl %ebx,28(%esp)
3720
addl $8,%esi
3721
addl $8,%edi
3722
subl $8,%ebp
3723
jnz .L045decrypt_loop
3724
.L044decrypt_finish:
3725
movl 60(%esp),%ebp
3726
andl $7,%ebp
3727
jz .L033finish
3728
movl (%esi),%eax
3729
movl 4(%esi),%ebx
3730
movl %eax,16(%esp)
3731
movl %ebx,20(%esp)
3732
call .L_DES_decrypt3_begin
3733
movl 16(%esp),%eax
3734
movl 20(%esp),%ebx
3735
movl 24(%esp),%ecx
3736
movl 28(%esp),%edx
3737
xorl %eax,%ecx
3738
xorl %ebx,%edx
3739
movl (%esi),%eax
3740
movl 4(%esi),%ebx
3741
.L046dj7:
3742
rorl $16,%edx
3743
movb %dl,6(%edi)
3744
shrl $16,%edx
3745
.L047dj6:
3746
movb %dh,5(%edi)
3747
.L048dj5:
3748
movb %dl,4(%edi)
3749
.L049dj4:
3750
movl %ecx,(%edi)
3751
jmp .L050djend
3752
.L051dj3:
3753
rorl $16,%ecx
3754
movb %cl,2(%edi)
3755
shll $16,%ecx
3756
.L052dj2:
3757
movb %ch,1(%esi)
3758
.L053dj1:
3759
movb %cl,(%esi)
3760
.L050djend:
3761
jmp .L033finish
3762
.L033finish:
3763
movl 76(%esp),%ecx
3764
addl $32,%esp
3765
movl %eax,(%ecx)
3766
movl %ebx,4(%ecx)
3767
popl %edi
3768
popl %esi
3769
popl %ebx
3770
popl %ebp
3771
ret
3772
.align 64
3773
.L035cbc_enc_jmp_table:
3774
.long 0
3775
.long .L043ej1-.L034PIC_point
3776
.long .L042ej2-.L034PIC_point
3777
.long .L041ej3-.L034PIC_point
3778
.long .L039ej4-.L034PIC_point
3779
.long .L038ej5-.L034PIC_point
3780
.long .L037ej6-.L034PIC_point
3781
.long .L036ej7-.L034PIC_point
3782
.align 64
3783
.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
3784
.align 64
3785
DES_SPtrans:
3786
.Ldes_sptrans:
3787
.long 34080768,524288,33554434,34080770
3788
.long 33554432,526338,524290,33554434
3789
.long 526338,34080768,34078720,2050
3790
.long 33556482,33554432,0,524290
3791
.long 524288,2,33556480,526336
3792
.long 34080770,34078720,2050,33556480
3793
.long 2,2048,526336,34078722
3794
.long 2048,33556482,34078722,0
3795
.long 0,34080770,33556480,524290
3796
.long 34080768,524288,2050,33556480
3797
.long 34078722,2048,526336,33554434
3798
.long 526338,2,33554434,34078720
3799
.long 34080770,526336,34078720,33556482
3800
.long 33554432,2050,524290,0
3801
.long 524288,33554432,33556482,34080768
3802
.long 2,34078722,2048,526338
3803
.long 1074823184,0,1081344,1074790400
3804
.long 1073741840,32784,1073774592,1081344
3805
.long 32768,1074790416,16,1073774592
3806
.long 1048592,1074823168,1074790400,16
3807
.long 1048576,1073774608,1074790416,32768
3808
.long 1081360,1073741824,0,1048592
3809
.long 1073774608,1081360,1074823168,1073741840
3810
.long 1073741824,1048576,32784,1074823184
3811
.long 1048592,1074823168,1073774592,1081360
3812
.long 1074823184,1048592,1073741840,0
3813
.long 1073741824,32784,1048576,1074790416
3814
.long 32768,1073741824,1081360,1073774608
3815
.long 1074823168,32768,0,1073741840
3816
.long 16,1074823184,1081344,1074790400
3817
.long 1074790416,1048576,32784,1073774592
3818
.long 1073774608,16,1074790400,1081344
3819
.long 67108865,67371264,256,67109121
3820
.long 262145,67108864,67109121,262400
3821
.long 67109120,262144,67371008,1
3822
.long 67371265,257,1,67371009
3823
.long 0,262145,67371264,256
3824
.long 257,67371265,262144,67108865
3825
.long 67371009,67109120,262401,67371008
3826
.long 262400,0,67108864,262401
3827
.long 67371264,256,1,262144
3828
.long 257,262145,67371008,67109121
3829
.long 0,67371264,262400,67371009
3830
.long 262145,67108864,67371265,1
3831
.long 262401,67108865,67108864,67371265
3832
.long 262144,67109120,67109121,262400
3833
.long 67109120,0,67371009,257
3834
.long 67108865,262401,256,67371008
3835
.long 4198408,268439552,8,272633864
3836
.long 0,272629760,268439560,4194312
3837
.long 272633856,268435464,268435456,4104
3838
.long 268435464,4198408,4194304,268435456
3839
.long 272629768,4198400,4096,8
3840
.long 4198400,268439560,272629760,4096
3841
.long 4104,0,4194312,272633856
3842
.long 268439552,272629768,272633864,4194304
3843
.long 272629768,4104,4194304,268435464
3844
.long 4198400,268439552,8,272629760
3845
.long 268439560,0,4096,4194312
3846
.long 0,272629768,272633856,4096
3847
.long 268435456,272633864,4198408,4194304
3848
.long 272633864,8,268439552,4198408
3849
.long 4194312,4198400,272629760,268439560
3850
.long 4104,268435456,268435464,272633856
3851
.long 134217728,65536,1024,134284320
3852
.long 134283296,134218752,66592,134283264
3853
.long 65536,32,134217760,66560
3854
.long 134218784,134283296,134284288,0
3855
.long 66560,134217728,65568,1056
3856
.long 134218752,66592,0,134217760
3857
.long 32,134218784,134284320,65568
3858
.long 134283264,1024,1056,134284288
3859
.long 134284288,134218784,65568,134283264
3860
.long 65536,32,134217760,134218752
3861
.long 134217728,66560,134284320,0
3862
.long 66592,134217728,1024,65568
3863
.long 134218784,1024,0,134284320
3864
.long 134283296,134284288,1056,65536
3865
.long 66560,134283296,134218752,1056
3866
.long 32,66592,134283264,134217760
3867
.long 2147483712,2097216,0,2149588992
3868
.long 2097216,8192,2147491904,2097152
3869
.long 8256,2149589056,2105344,2147483648
3870
.long 2147491840,2147483712,2149580800,2105408
3871
.long 2097152,2147491904,2149580864,0
3872
.long 8192,64,2149588992,2149580864
3873
.long 2149589056,2149580800,2147483648,8256
3874
.long 64,2105344,2105408,2147491840
3875
.long 8256,2147483648,2147491840,2105408
3876
.long 2149588992,2097216,0,2147491840
3877
.long 2147483648,8192,2149580864,2097152
3878
.long 2097216,2149589056,2105344,64
3879
.long 2149589056,2105344,2097152,2147491904
3880
.long 2147483712,2149580800,2105408,0
3881
.long 8192,2147483712,2147491904,2149588992
3882
.long 2149580800,8256,64,2149580864
3883
.long 16384,512,16777728,16777220
3884
.long 16794116,16388,16896,0
3885
.long 16777216,16777732,516,16793600
3886
.long 4,16794112,16793600,516
3887
.long 16777732,16384,16388,16794116
3888
.long 0,16777728,16777220,16896
3889
.long 16793604,16900,16794112,4
3890
.long 16900,16793604,512,16777216
3891
.long 16900,16793600,16793604,516
3892
.long 16384,512,16777216,16793604
3893
.long 16777732,16900,16896,0
3894
.long 512,16777220,4,16777728
3895
.long 0,16777732,16777728,16896
3896
.long 516,16384,16794116,16777216
3897
.long 16794112,4,16388,16794116
3898
.long 16777220,16794112,16793600,16388
3899
.long 545259648,545390592,131200,0
3900
.long 537001984,8388736,545259520,545390720
3901
.long 128,536870912,8519680,131200
3902
.long 8519808,537002112,536871040,545259520
3903
.long 131072,8519808,8388736,537001984
3904
.long 545390720,536871040,0,8519680
3905
.long 536870912,8388608,537002112,545259648
3906
.long 8388608,131072,545390592,128
3907
.long 8388608,131072,536871040,545390720
3908
.long 131200,536870912,0,8519680
3909
.long 545259648,537002112,537001984,8388736
3910
.long 545390592,128,8388736,537001984
3911
.long 545390720,8388608,545259520,536871040
3912
.long 8519680,131200,537002112,545259520
3913
.long 128,545390592,8519808,0
3914
.long 536870912,545259648,131072,8519808
3915
3916
.section ".note.gnu.property", "a"
3917
.p2align 2
3918
.long 1f - 0f
3919
.long 4f - 1f
3920
.long 5
3921
0:
3922
.asciz "GNU"
3923
1:
3924
.p2align 2
3925
.long 0xc0000002
3926
.long 3f - 2f
3927
2:
3928
.long 3
3929
3:
3930
.p2align 2
3931
4:
3932
#endif
3933
3934