Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/i386/aes-586.S
39482 views
1
/* Do not modify. This file is auto-generated from aes-586.pl. */
2
#ifdef PIC
3
.text
4
.type _x86_AES_encrypt_compact,@function
5
.align 16
6
_x86_AES_encrypt_compact:
7
#ifdef __CET__
8
9
.byte 243,15,30,251
10
#endif
11
12
movl %edi,20(%esp)
13
xorl (%edi),%eax
14
xorl 4(%edi),%ebx
15
xorl 8(%edi),%ecx
16
xorl 12(%edi),%edx
17
movl 240(%edi),%esi
18
leal -2(%esi,%esi,1),%esi
19
leal (%edi,%esi,8),%esi
20
movl %esi,24(%esp)
21
movl -128(%ebp),%edi
22
movl -96(%ebp),%esi
23
movl -64(%ebp),%edi
24
movl -32(%ebp),%esi
25
movl (%ebp),%edi
26
movl 32(%ebp),%esi
27
movl 64(%ebp),%edi
28
movl 96(%ebp),%esi
29
.align 16
30
.L000loop:
31
movl %eax,%esi
32
andl $255,%esi
33
movzbl -128(%ebp,%esi,1),%esi
34
movzbl %bh,%edi
35
movzbl -128(%ebp,%edi,1),%edi
36
shll $8,%edi
37
xorl %edi,%esi
38
movl %ecx,%edi
39
shrl $16,%edi
40
andl $255,%edi
41
movzbl -128(%ebp,%edi,1),%edi
42
shll $16,%edi
43
xorl %edi,%esi
44
movl %edx,%edi
45
shrl $24,%edi
46
movzbl -128(%ebp,%edi,1),%edi
47
shll $24,%edi
48
xorl %edi,%esi
49
movl %esi,4(%esp)
50
51
movl %ebx,%esi
52
andl $255,%esi
53
shrl $16,%ebx
54
movzbl -128(%ebp,%esi,1),%esi
55
movzbl %ch,%edi
56
movzbl -128(%ebp,%edi,1),%edi
57
shll $8,%edi
58
xorl %edi,%esi
59
movl %edx,%edi
60
shrl $16,%edi
61
andl $255,%edi
62
movzbl -128(%ebp,%edi,1),%edi
63
shll $16,%edi
64
xorl %edi,%esi
65
movl %eax,%edi
66
shrl $24,%edi
67
movzbl -128(%ebp,%edi,1),%edi
68
shll $24,%edi
69
xorl %edi,%esi
70
movl %esi,8(%esp)
71
72
movl %ecx,%esi
73
andl $255,%esi
74
shrl $24,%ecx
75
movzbl -128(%ebp,%esi,1),%esi
76
movzbl %dh,%edi
77
movzbl -128(%ebp,%edi,1),%edi
78
shll $8,%edi
79
xorl %edi,%esi
80
movl %eax,%edi
81
shrl $16,%edi
82
andl $255,%edx
83
andl $255,%edi
84
movzbl -128(%ebp,%edi,1),%edi
85
shll $16,%edi
86
xorl %edi,%esi
87
movzbl %bh,%edi
88
movzbl -128(%ebp,%edi,1),%edi
89
shll $24,%edi
90
xorl %edi,%esi
91
92
andl $255,%edx
93
movzbl -128(%ebp,%edx,1),%edx
94
movzbl %ah,%eax
95
movzbl -128(%ebp,%eax,1),%eax
96
shll $8,%eax
97
xorl %eax,%edx
98
movl 4(%esp),%eax
99
andl $255,%ebx
100
movzbl -128(%ebp,%ebx,1),%ebx
101
shll $16,%ebx
102
xorl %ebx,%edx
103
movl 8(%esp),%ebx
104
movzbl -128(%ebp,%ecx,1),%ecx
105
shll $24,%ecx
106
xorl %ecx,%edx
107
movl %esi,%ecx
108
109
movl $2155905152,%ebp
110
andl %ecx,%ebp
111
leal (%ecx,%ecx,1),%edi
112
movl %ebp,%esi
113
shrl $7,%ebp
114
andl $4278124286,%edi
115
subl %ebp,%esi
116
movl %ecx,%ebp
117
andl $454761243,%esi
118
rorl $16,%ebp
119
xorl %edi,%esi
120
movl %ecx,%edi
121
xorl %esi,%ecx
122
rorl $24,%edi
123
xorl %ebp,%esi
124
roll $24,%ecx
125
xorl %edi,%esi
126
movl $2155905152,%ebp
127
xorl %esi,%ecx
128
andl %edx,%ebp
129
leal (%edx,%edx,1),%edi
130
movl %ebp,%esi
131
shrl $7,%ebp
132
andl $4278124286,%edi
133
subl %ebp,%esi
134
movl %edx,%ebp
135
andl $454761243,%esi
136
rorl $16,%ebp
137
xorl %edi,%esi
138
movl %edx,%edi
139
xorl %esi,%edx
140
rorl $24,%edi
141
xorl %ebp,%esi
142
roll $24,%edx
143
xorl %edi,%esi
144
movl $2155905152,%ebp
145
xorl %esi,%edx
146
andl %eax,%ebp
147
leal (%eax,%eax,1),%edi
148
movl %ebp,%esi
149
shrl $7,%ebp
150
andl $4278124286,%edi
151
subl %ebp,%esi
152
movl %eax,%ebp
153
andl $454761243,%esi
154
rorl $16,%ebp
155
xorl %edi,%esi
156
movl %eax,%edi
157
xorl %esi,%eax
158
rorl $24,%edi
159
xorl %ebp,%esi
160
roll $24,%eax
161
xorl %edi,%esi
162
movl $2155905152,%ebp
163
xorl %esi,%eax
164
andl %ebx,%ebp
165
leal (%ebx,%ebx,1),%edi
166
movl %ebp,%esi
167
shrl $7,%ebp
168
andl $4278124286,%edi
169
subl %ebp,%esi
170
movl %ebx,%ebp
171
andl $454761243,%esi
172
rorl $16,%ebp
173
xorl %edi,%esi
174
movl %ebx,%edi
175
xorl %esi,%ebx
176
rorl $24,%edi
177
xorl %ebp,%esi
178
roll $24,%ebx
179
xorl %edi,%esi
180
xorl %esi,%ebx
181
movl 20(%esp),%edi
182
movl 28(%esp),%ebp
183
addl $16,%edi
184
xorl (%edi),%eax
185
xorl 4(%edi),%ebx
186
xorl 8(%edi),%ecx
187
xorl 12(%edi),%edx
188
cmpl 24(%esp),%edi
189
movl %edi,20(%esp)
190
jb .L000loop
191
movl %eax,%esi
192
andl $255,%esi
193
movzbl -128(%ebp,%esi,1),%esi
194
movzbl %bh,%edi
195
movzbl -128(%ebp,%edi,1),%edi
196
shll $8,%edi
197
xorl %edi,%esi
198
movl %ecx,%edi
199
shrl $16,%edi
200
andl $255,%edi
201
movzbl -128(%ebp,%edi,1),%edi
202
shll $16,%edi
203
xorl %edi,%esi
204
movl %edx,%edi
205
shrl $24,%edi
206
movzbl -128(%ebp,%edi,1),%edi
207
shll $24,%edi
208
xorl %edi,%esi
209
movl %esi,4(%esp)
210
211
movl %ebx,%esi
212
andl $255,%esi
213
shrl $16,%ebx
214
movzbl -128(%ebp,%esi,1),%esi
215
movzbl %ch,%edi
216
movzbl -128(%ebp,%edi,1),%edi
217
shll $8,%edi
218
xorl %edi,%esi
219
movl %edx,%edi
220
shrl $16,%edi
221
andl $255,%edi
222
movzbl -128(%ebp,%edi,1),%edi
223
shll $16,%edi
224
xorl %edi,%esi
225
movl %eax,%edi
226
shrl $24,%edi
227
movzbl -128(%ebp,%edi,1),%edi
228
shll $24,%edi
229
xorl %edi,%esi
230
movl %esi,8(%esp)
231
232
movl %ecx,%esi
233
andl $255,%esi
234
shrl $24,%ecx
235
movzbl -128(%ebp,%esi,1),%esi
236
movzbl %dh,%edi
237
movzbl -128(%ebp,%edi,1),%edi
238
shll $8,%edi
239
xorl %edi,%esi
240
movl %eax,%edi
241
shrl $16,%edi
242
andl $255,%edx
243
andl $255,%edi
244
movzbl -128(%ebp,%edi,1),%edi
245
shll $16,%edi
246
xorl %edi,%esi
247
movzbl %bh,%edi
248
movzbl -128(%ebp,%edi,1),%edi
249
shll $24,%edi
250
xorl %edi,%esi
251
252
movl 20(%esp),%edi
253
andl $255,%edx
254
movzbl -128(%ebp,%edx,1),%edx
255
movzbl %ah,%eax
256
movzbl -128(%ebp,%eax,1),%eax
257
shll $8,%eax
258
xorl %eax,%edx
259
movl 4(%esp),%eax
260
andl $255,%ebx
261
movzbl -128(%ebp,%ebx,1),%ebx
262
shll $16,%ebx
263
xorl %ebx,%edx
264
movl 8(%esp),%ebx
265
movzbl -128(%ebp,%ecx,1),%ecx
266
shll $24,%ecx
267
xorl %ecx,%edx
268
movl %esi,%ecx
269
270
xorl 16(%edi),%eax
271
xorl 20(%edi),%ebx
272
xorl 24(%edi),%ecx
273
xorl 28(%edi),%edx
274
ret
275
.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
276
.type _sse_AES_encrypt_compact,@function
277
.align 16
278
_sse_AES_encrypt_compact:
279
#ifdef __CET__
280
281
.byte 243,15,30,251
282
#endif
283
284
pxor (%edi),%mm0
285
pxor 8(%edi),%mm4
286
movl 240(%edi),%esi
287
leal -2(%esi,%esi,1),%esi
288
leal (%edi,%esi,8),%esi
289
movl %esi,24(%esp)
290
movl $454761243,%eax
291
movl %eax,8(%esp)
292
movl %eax,12(%esp)
293
movl -128(%ebp),%eax
294
movl -96(%ebp),%ebx
295
movl -64(%ebp),%ecx
296
movl -32(%ebp),%edx
297
movl (%ebp),%eax
298
movl 32(%ebp),%ebx
299
movl 64(%ebp),%ecx
300
movl 96(%ebp),%edx
301
.align 16
302
.L001loop:
303
pshufw $8,%mm0,%mm1
304
pshufw $13,%mm4,%mm5
305
movd %mm1,%eax
306
movd %mm5,%ebx
307
movl %edi,20(%esp)
308
movzbl %al,%esi
309
movzbl %ah,%edx
310
pshufw $13,%mm0,%mm2
311
movzbl -128(%ebp,%esi,1),%ecx
312
movzbl %bl,%edi
313
movzbl -128(%ebp,%edx,1),%edx
314
shrl $16,%eax
315
shll $8,%edx
316
movzbl -128(%ebp,%edi,1),%esi
317
movzbl %bh,%edi
318
shll $16,%esi
319
pshufw $8,%mm4,%mm6
320
orl %esi,%ecx
321
movzbl -128(%ebp,%edi,1),%esi
322
movzbl %ah,%edi
323
shll $24,%esi
324
shrl $16,%ebx
325
orl %esi,%edx
326
movzbl -128(%ebp,%edi,1),%esi
327
movzbl %bh,%edi
328
shll $8,%esi
329
orl %esi,%ecx
330
movzbl -128(%ebp,%edi,1),%esi
331
movzbl %al,%edi
332
shll $24,%esi
333
orl %esi,%ecx
334
movzbl -128(%ebp,%edi,1),%esi
335
movzbl %bl,%edi
336
movd %mm2,%eax
337
movd %ecx,%mm0
338
movzbl -128(%ebp,%edi,1),%ecx
339
movzbl %ah,%edi
340
shll $16,%ecx
341
movd %mm6,%ebx
342
orl %esi,%ecx
343
movzbl -128(%ebp,%edi,1),%esi
344
movzbl %bh,%edi
345
shll $24,%esi
346
orl %esi,%ecx
347
movzbl -128(%ebp,%edi,1),%esi
348
movzbl %bl,%edi
349
shll $8,%esi
350
shrl $16,%ebx
351
orl %esi,%ecx
352
movzbl -128(%ebp,%edi,1),%esi
353
movzbl %al,%edi
354
shrl $16,%eax
355
movd %ecx,%mm1
356
movzbl -128(%ebp,%edi,1),%ecx
357
movzbl %ah,%edi
358
shll $16,%ecx
359
andl $255,%eax
360
orl %esi,%ecx
361
punpckldq %mm1,%mm0
362
movzbl -128(%ebp,%edi,1),%esi
363
movzbl %bh,%edi
364
shll $24,%esi
365
andl $255,%ebx
366
movzbl -128(%ebp,%eax,1),%eax
367
orl %esi,%ecx
368
shll $16,%eax
369
movzbl -128(%ebp,%edi,1),%esi
370
orl %eax,%edx
371
shll $8,%esi
372
movzbl -128(%ebp,%ebx,1),%ebx
373
orl %esi,%ecx
374
orl %ebx,%edx
375
movl 20(%esp),%edi
376
movd %ecx,%mm4
377
movd %edx,%mm5
378
punpckldq %mm5,%mm4
379
addl $16,%edi
380
cmpl 24(%esp),%edi
381
ja .L002out
382
movq 8(%esp),%mm2
383
pxor %mm3,%mm3
384
pxor %mm7,%mm7
385
movq %mm0,%mm1
386
movq %mm4,%mm5
387
pcmpgtb %mm0,%mm3
388
pcmpgtb %mm4,%mm7
389
pand %mm2,%mm3
390
pand %mm2,%mm7
391
pshufw $177,%mm0,%mm2
392
pshufw $177,%mm4,%mm6
393
paddb %mm0,%mm0
394
paddb %mm4,%mm4
395
pxor %mm3,%mm0
396
pxor %mm7,%mm4
397
pshufw $177,%mm2,%mm3
398
pshufw $177,%mm6,%mm7
399
pxor %mm0,%mm1
400
pxor %mm4,%mm5
401
pxor %mm2,%mm0
402
pxor %mm6,%mm4
403
movq %mm3,%mm2
404
movq %mm7,%mm6
405
pslld $8,%mm3
406
pslld $8,%mm7
407
psrld $24,%mm2
408
psrld $24,%mm6
409
pxor %mm3,%mm0
410
pxor %mm7,%mm4
411
pxor %mm2,%mm0
412
pxor %mm6,%mm4
413
movq %mm1,%mm3
414
movq %mm5,%mm7
415
movq (%edi),%mm2
416
movq 8(%edi),%mm6
417
psrld $8,%mm1
418
psrld $8,%mm5
419
movl -128(%ebp),%eax
420
pslld $24,%mm3
421
pslld $24,%mm7
422
movl -64(%ebp),%ebx
423
pxor %mm1,%mm0
424
pxor %mm5,%mm4
425
movl (%ebp),%ecx
426
pxor %mm3,%mm0
427
pxor %mm7,%mm4
428
movl 64(%ebp),%edx
429
pxor %mm2,%mm0
430
pxor %mm6,%mm4
431
jmp .L001loop
432
.align 16
433
.L002out:
434
pxor (%edi),%mm0
435
pxor 8(%edi),%mm4
436
ret
437
.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
438
.type _x86_AES_encrypt,@function
439
.align 16
440
_x86_AES_encrypt:
441
#ifdef __CET__
442
443
.byte 243,15,30,251
444
#endif
445
446
movl %edi,20(%esp)
447
xorl (%edi),%eax
448
xorl 4(%edi),%ebx
449
xorl 8(%edi),%ecx
450
xorl 12(%edi),%edx
451
movl 240(%edi),%esi
452
leal -2(%esi,%esi,1),%esi
453
leal (%edi,%esi,8),%esi
454
movl %esi,24(%esp)
455
.align 16
456
.L003loop:
457
movl %eax,%esi
458
andl $255,%esi
459
movl (%ebp,%esi,8),%esi
460
movzbl %bh,%edi
461
xorl 3(%ebp,%edi,8),%esi
462
movl %ecx,%edi
463
shrl $16,%edi
464
andl $255,%edi
465
xorl 2(%ebp,%edi,8),%esi
466
movl %edx,%edi
467
shrl $24,%edi
468
xorl 1(%ebp,%edi,8),%esi
469
movl %esi,4(%esp)
470
471
movl %ebx,%esi
472
andl $255,%esi
473
shrl $16,%ebx
474
movl (%ebp,%esi,8),%esi
475
movzbl %ch,%edi
476
xorl 3(%ebp,%edi,8),%esi
477
movl %edx,%edi
478
shrl $16,%edi
479
andl $255,%edi
480
xorl 2(%ebp,%edi,8),%esi
481
movl %eax,%edi
482
shrl $24,%edi
483
xorl 1(%ebp,%edi,8),%esi
484
movl %esi,8(%esp)
485
486
movl %ecx,%esi
487
andl $255,%esi
488
shrl $24,%ecx
489
movl (%ebp,%esi,8),%esi
490
movzbl %dh,%edi
491
xorl 3(%ebp,%edi,8),%esi
492
movl %eax,%edi
493
shrl $16,%edi
494
andl $255,%edx
495
andl $255,%edi
496
xorl 2(%ebp,%edi,8),%esi
497
movzbl %bh,%edi
498
xorl 1(%ebp,%edi,8),%esi
499
500
movl 20(%esp),%edi
501
movl (%ebp,%edx,8),%edx
502
movzbl %ah,%eax
503
xorl 3(%ebp,%eax,8),%edx
504
movl 4(%esp),%eax
505
andl $255,%ebx
506
xorl 2(%ebp,%ebx,8),%edx
507
movl 8(%esp),%ebx
508
xorl 1(%ebp,%ecx,8),%edx
509
movl %esi,%ecx
510
511
addl $16,%edi
512
xorl (%edi),%eax
513
xorl 4(%edi),%ebx
514
xorl 8(%edi),%ecx
515
xorl 12(%edi),%edx
516
cmpl 24(%esp),%edi
517
movl %edi,20(%esp)
518
jb .L003loop
519
movl %eax,%esi
520
andl $255,%esi
521
movl 2(%ebp,%esi,8),%esi
522
andl $255,%esi
523
movzbl %bh,%edi
524
movl (%ebp,%edi,8),%edi
525
andl $65280,%edi
526
xorl %edi,%esi
527
movl %ecx,%edi
528
shrl $16,%edi
529
andl $255,%edi
530
movl (%ebp,%edi,8),%edi
531
andl $16711680,%edi
532
xorl %edi,%esi
533
movl %edx,%edi
534
shrl $24,%edi
535
movl 2(%ebp,%edi,8),%edi
536
andl $4278190080,%edi
537
xorl %edi,%esi
538
movl %esi,4(%esp)
539
movl %ebx,%esi
540
andl $255,%esi
541
shrl $16,%ebx
542
movl 2(%ebp,%esi,8),%esi
543
andl $255,%esi
544
movzbl %ch,%edi
545
movl (%ebp,%edi,8),%edi
546
andl $65280,%edi
547
xorl %edi,%esi
548
movl %edx,%edi
549
shrl $16,%edi
550
andl $255,%edi
551
movl (%ebp,%edi,8),%edi
552
andl $16711680,%edi
553
xorl %edi,%esi
554
movl %eax,%edi
555
shrl $24,%edi
556
movl 2(%ebp,%edi,8),%edi
557
andl $4278190080,%edi
558
xorl %edi,%esi
559
movl %esi,8(%esp)
560
movl %ecx,%esi
561
andl $255,%esi
562
shrl $24,%ecx
563
movl 2(%ebp,%esi,8),%esi
564
andl $255,%esi
565
movzbl %dh,%edi
566
movl (%ebp,%edi,8),%edi
567
andl $65280,%edi
568
xorl %edi,%esi
569
movl %eax,%edi
570
shrl $16,%edi
571
andl $255,%edx
572
andl $255,%edi
573
movl (%ebp,%edi,8),%edi
574
andl $16711680,%edi
575
xorl %edi,%esi
576
movzbl %bh,%edi
577
movl 2(%ebp,%edi,8),%edi
578
andl $4278190080,%edi
579
xorl %edi,%esi
580
movl 20(%esp),%edi
581
andl $255,%edx
582
movl 2(%ebp,%edx,8),%edx
583
andl $255,%edx
584
movzbl %ah,%eax
585
movl (%ebp,%eax,8),%eax
586
andl $65280,%eax
587
xorl %eax,%edx
588
movl 4(%esp),%eax
589
andl $255,%ebx
590
movl (%ebp,%ebx,8),%ebx
591
andl $16711680,%ebx
592
xorl %ebx,%edx
593
movl 8(%esp),%ebx
594
movl 2(%ebp,%ecx,8),%ecx
595
andl $4278190080,%ecx
596
xorl %ecx,%edx
597
movl %esi,%ecx
598
addl $16,%edi
599
xorl (%edi),%eax
600
xorl 4(%edi),%ebx
601
xorl 8(%edi),%ecx
602
xorl 12(%edi),%edx
603
ret
604
.align 64
605
.LAES_Te:
606
.long 2774754246,2774754246
607
.long 2222750968,2222750968
608
.long 2574743534,2574743534
609
.long 2373680118,2373680118
610
.long 234025727,234025727
611
.long 3177933782,3177933782
612
.long 2976870366,2976870366
613
.long 1422247313,1422247313
614
.long 1345335392,1345335392
615
.long 50397442,50397442
616
.long 2842126286,2842126286
617
.long 2099981142,2099981142
618
.long 436141799,436141799
619
.long 1658312629,1658312629
620
.long 3870010189,3870010189
621
.long 2591454956,2591454956
622
.long 1170918031,1170918031
623
.long 2642575903,2642575903
624
.long 1086966153,1086966153
625
.long 2273148410,2273148410
626
.long 368769775,368769775
627
.long 3948501426,3948501426
628
.long 3376891790,3376891790
629
.long 200339707,200339707
630
.long 3970805057,3970805057
631
.long 1742001331,1742001331
632
.long 4255294047,4255294047
633
.long 3937382213,3937382213
634
.long 3214711843,3214711843
635
.long 4154762323,4154762323
636
.long 2524082916,2524082916
637
.long 1539358875,1539358875
638
.long 3266819957,3266819957
639
.long 486407649,486407649
640
.long 2928907069,2928907069
641
.long 1780885068,1780885068
642
.long 1513502316,1513502316
643
.long 1094664062,1094664062
644
.long 49805301,49805301
645
.long 1338821763,1338821763
646
.long 1546925160,1546925160
647
.long 4104496465,4104496465
648
.long 887481809,887481809
649
.long 150073849,150073849
650
.long 2473685474,2473685474
651
.long 1943591083,1943591083
652
.long 1395732834,1395732834
653
.long 1058346282,1058346282
654
.long 201589768,201589768
655
.long 1388824469,1388824469
656
.long 1696801606,1696801606
657
.long 1589887901,1589887901
658
.long 672667696,672667696
659
.long 2711000631,2711000631
660
.long 251987210,251987210
661
.long 3046808111,3046808111
662
.long 151455502,151455502
663
.long 907153956,907153956
664
.long 2608889883,2608889883
665
.long 1038279391,1038279391
666
.long 652995533,652995533
667
.long 1764173646,1764173646
668
.long 3451040383,3451040383
669
.long 2675275242,2675275242
670
.long 453576978,453576978
671
.long 2659418909,2659418909
672
.long 1949051992,1949051992
673
.long 773462580,773462580
674
.long 756751158,756751158
675
.long 2993581788,2993581788
676
.long 3998898868,3998898868
677
.long 4221608027,4221608027
678
.long 4132590244,4132590244
679
.long 1295727478,1295727478
680
.long 1641469623,1641469623
681
.long 3467883389,3467883389
682
.long 2066295122,2066295122
683
.long 1055122397,1055122397
684
.long 1898917726,1898917726
685
.long 2542044179,2542044179
686
.long 4115878822,4115878822
687
.long 1758581177,1758581177
688
.long 0,0
689
.long 753790401,753790401
690
.long 1612718144,1612718144
691
.long 536673507,536673507
692
.long 3367088505,3367088505
693
.long 3982187446,3982187446
694
.long 3194645204,3194645204
695
.long 1187761037,1187761037
696
.long 3653156455,3653156455
697
.long 1262041458,1262041458
698
.long 3729410708,3729410708
699
.long 3561770136,3561770136
700
.long 3898103984,3898103984
701
.long 1255133061,1255133061
702
.long 1808847035,1808847035
703
.long 720367557,720367557
704
.long 3853167183,3853167183
705
.long 385612781,385612781
706
.long 3309519750,3309519750
707
.long 3612167578,3612167578
708
.long 1429418854,1429418854
709
.long 2491778321,2491778321
710
.long 3477423498,3477423498
711
.long 284817897,284817897
712
.long 100794884,100794884
713
.long 2172616702,2172616702
714
.long 4031795360,4031795360
715
.long 1144798328,1144798328
716
.long 3131023141,3131023141
717
.long 3819481163,3819481163
718
.long 4082192802,4082192802
719
.long 4272137053,4272137053
720
.long 3225436288,3225436288
721
.long 2324664069,2324664069
722
.long 2912064063,2912064063
723
.long 3164445985,3164445985
724
.long 1211644016,1211644016
725
.long 83228145,83228145
726
.long 3753688163,3753688163
727
.long 3249976951,3249976951
728
.long 1977277103,1977277103
729
.long 1663115586,1663115586
730
.long 806359072,806359072
731
.long 452984805,452984805
732
.long 250868733,250868733
733
.long 1842533055,1842533055
734
.long 1288555905,1288555905
735
.long 336333848,336333848
736
.long 890442534,890442534
737
.long 804056259,804056259
738
.long 3781124030,3781124030
739
.long 2727843637,2727843637
740
.long 3427026056,3427026056
741
.long 957814574,957814574
742
.long 1472513171,1472513171
743
.long 4071073621,4071073621
744
.long 2189328124,2189328124
745
.long 1195195770,1195195770
746
.long 2892260552,2892260552
747
.long 3881655738,3881655738
748
.long 723065138,723065138
749
.long 2507371494,2507371494
750
.long 2690670784,2690670784
751
.long 2558624025,2558624025
752
.long 3511635870,3511635870
753
.long 2145180835,2145180835
754
.long 1713513028,1713513028
755
.long 2116692564,2116692564
756
.long 2878378043,2878378043
757
.long 2206763019,2206763019
758
.long 3393603212,3393603212
759
.long 703524551,703524551
760
.long 3552098411,3552098411
761
.long 1007948840,1007948840
762
.long 2044649127,2044649127
763
.long 3797835452,3797835452
764
.long 487262998,487262998
765
.long 1994120109,1994120109
766
.long 1004593371,1004593371
767
.long 1446130276,1446130276
768
.long 1312438900,1312438900
769
.long 503974420,503974420
770
.long 3679013266,3679013266
771
.long 168166924,168166924
772
.long 1814307912,1814307912
773
.long 3831258296,3831258296
774
.long 1573044895,1573044895
775
.long 1859376061,1859376061
776
.long 4021070915,4021070915
777
.long 2791465668,2791465668
778
.long 2828112185,2828112185
779
.long 2761266481,2761266481
780
.long 937747667,937747667
781
.long 2339994098,2339994098
782
.long 854058965,854058965
783
.long 1137232011,1137232011
784
.long 1496790894,1496790894
785
.long 3077402074,3077402074
786
.long 2358086913,2358086913
787
.long 1691735473,1691735473
788
.long 3528347292,3528347292
789
.long 3769215305,3769215305
790
.long 3027004632,3027004632
791
.long 4199962284,4199962284
792
.long 133494003,133494003
793
.long 636152527,636152527
794
.long 2942657994,2942657994
795
.long 2390391540,2390391540
796
.long 3920539207,3920539207
797
.long 403179536,403179536
798
.long 3585784431,3585784431
799
.long 2289596656,2289596656
800
.long 1864705354,1864705354
801
.long 1915629148,1915629148
802
.long 605822008,605822008
803
.long 4054230615,4054230615
804
.long 3350508659,3350508659
805
.long 1371981463,1371981463
806
.long 602466507,602466507
807
.long 2094914977,2094914977
808
.long 2624877800,2624877800
809
.long 555687742,555687742
810
.long 3712699286,3712699286
811
.long 3703422305,3703422305
812
.long 2257292045,2257292045
813
.long 2240449039,2240449039
814
.long 2423288032,2423288032
815
.long 1111375484,1111375484
816
.long 3300242801,3300242801
817
.long 2858837708,2858837708
818
.long 3628615824,3628615824
819
.long 84083462,84083462
820
.long 32962295,32962295
821
.long 302911004,302911004
822
.long 2741068226,2741068226
823
.long 1597322602,1597322602
824
.long 4183250862,4183250862
825
.long 3501832553,3501832553
826
.long 2441512471,2441512471
827
.long 1489093017,1489093017
828
.long 656219450,656219450
829
.long 3114180135,3114180135
830
.long 954327513,954327513
831
.long 335083755,335083755
832
.long 3013122091,3013122091
833
.long 856756514,856756514
834
.long 3144247762,3144247762
835
.long 1893325225,1893325225
836
.long 2307821063,2307821063
837
.long 2811532339,2811532339
838
.long 3063651117,3063651117
839
.long 572399164,572399164
840
.long 2458355477,2458355477
841
.long 552200649,552200649
842
.long 1238290055,1238290055
843
.long 4283782570,4283782570
844
.long 2015897680,2015897680
845
.long 2061492133,2061492133
846
.long 2408352771,2408352771
847
.long 4171342169,4171342169
848
.long 2156497161,2156497161
849
.long 386731290,386731290
850
.long 3669999461,3669999461
851
.long 837215959,837215959
852
.long 3326231172,3326231172
853
.long 3093850320,3093850320
854
.long 3275833730,3275833730
855
.long 2962856233,2962856233
856
.long 1999449434,1999449434
857
.long 286199582,286199582
858
.long 3417354363,3417354363
859
.long 4233385128,4233385128
860
.long 3602627437,3602627437
861
.long 974525996,974525996
862
.byte 99,124,119,123,242,107,111,197
863
.byte 48,1,103,43,254,215,171,118
864
.byte 202,130,201,125,250,89,71,240
865
.byte 173,212,162,175,156,164,114,192
866
.byte 183,253,147,38,54,63,247,204
867
.byte 52,165,229,241,113,216,49,21
868
.byte 4,199,35,195,24,150,5,154
869
.byte 7,18,128,226,235,39,178,117
870
.byte 9,131,44,26,27,110,90,160
871
.byte 82,59,214,179,41,227,47,132
872
.byte 83,209,0,237,32,252,177,91
873
.byte 106,203,190,57,74,76,88,207
874
.byte 208,239,170,251,67,77,51,133
875
.byte 69,249,2,127,80,60,159,168
876
.byte 81,163,64,143,146,157,56,245
877
.byte 188,182,218,33,16,255,243,210
878
.byte 205,12,19,236,95,151,68,23
879
.byte 196,167,126,61,100,93,25,115
880
.byte 96,129,79,220,34,42,144,136
881
.byte 70,238,184,20,222,94,11,219
882
.byte 224,50,58,10,73,6,36,92
883
.byte 194,211,172,98,145,149,228,121
884
.byte 231,200,55,109,141,213,78,169
885
.byte 108,86,244,234,101,122,174,8
886
.byte 186,120,37,46,28,166,180,198
887
.byte 232,221,116,31,75,189,139,138
888
.byte 112,62,181,102,72,3,246,14
889
.byte 97,53,87,185,134,193,29,158
890
.byte 225,248,152,17,105,217,142,148
891
.byte 155,30,135,233,206,85,40,223
892
.byte 140,161,137,13,191,230,66,104
893
.byte 65,153,45,15,176,84,187,22
894
.byte 99,124,119,123,242,107,111,197
895
.byte 48,1,103,43,254,215,171,118
896
.byte 202,130,201,125,250,89,71,240
897
.byte 173,212,162,175,156,164,114,192
898
.byte 183,253,147,38,54,63,247,204
899
.byte 52,165,229,241,113,216,49,21
900
.byte 4,199,35,195,24,150,5,154
901
.byte 7,18,128,226,235,39,178,117
902
.byte 9,131,44,26,27,110,90,160
903
.byte 82,59,214,179,41,227,47,132
904
.byte 83,209,0,237,32,252,177,91
905
.byte 106,203,190,57,74,76,88,207
906
.byte 208,239,170,251,67,77,51,133
907
.byte 69,249,2,127,80,60,159,168
908
.byte 81,163,64,143,146,157,56,245
909
.byte 188,182,218,33,16,255,243,210
910
.byte 205,12,19,236,95,151,68,23
911
.byte 196,167,126,61,100,93,25,115
912
.byte 96,129,79,220,34,42,144,136
913
.byte 70,238,184,20,222,94,11,219
914
.byte 224,50,58,10,73,6,36,92
915
.byte 194,211,172,98,145,149,228,121
916
.byte 231,200,55,109,141,213,78,169
917
.byte 108,86,244,234,101,122,174,8
918
.byte 186,120,37,46,28,166,180,198
919
.byte 232,221,116,31,75,189,139,138
920
.byte 112,62,181,102,72,3,246,14
921
.byte 97,53,87,185,134,193,29,158
922
.byte 225,248,152,17,105,217,142,148
923
.byte 155,30,135,233,206,85,40,223
924
.byte 140,161,137,13,191,230,66,104
925
.byte 65,153,45,15,176,84,187,22
926
.byte 99,124,119,123,242,107,111,197
927
.byte 48,1,103,43,254,215,171,118
928
.byte 202,130,201,125,250,89,71,240
929
.byte 173,212,162,175,156,164,114,192
930
.byte 183,253,147,38,54,63,247,204
931
.byte 52,165,229,241,113,216,49,21
932
.byte 4,199,35,195,24,150,5,154
933
.byte 7,18,128,226,235,39,178,117
934
.byte 9,131,44,26,27,110,90,160
935
.byte 82,59,214,179,41,227,47,132
936
.byte 83,209,0,237,32,252,177,91
937
.byte 106,203,190,57,74,76,88,207
938
.byte 208,239,170,251,67,77,51,133
939
.byte 69,249,2,127,80,60,159,168
940
.byte 81,163,64,143,146,157,56,245
941
.byte 188,182,218,33,16,255,243,210
942
.byte 205,12,19,236,95,151,68,23
943
.byte 196,167,126,61,100,93,25,115
944
.byte 96,129,79,220,34,42,144,136
945
.byte 70,238,184,20,222,94,11,219
946
.byte 224,50,58,10,73,6,36,92
947
.byte 194,211,172,98,145,149,228,121
948
.byte 231,200,55,109,141,213,78,169
949
.byte 108,86,244,234,101,122,174,8
950
.byte 186,120,37,46,28,166,180,198
951
.byte 232,221,116,31,75,189,139,138
952
.byte 112,62,181,102,72,3,246,14
953
.byte 97,53,87,185,134,193,29,158
954
.byte 225,248,152,17,105,217,142,148
955
.byte 155,30,135,233,206,85,40,223
956
.byte 140,161,137,13,191,230,66,104
957
.byte 65,153,45,15,176,84,187,22
958
.byte 99,124,119,123,242,107,111,197
959
.byte 48,1,103,43,254,215,171,118
960
.byte 202,130,201,125,250,89,71,240
961
.byte 173,212,162,175,156,164,114,192
962
.byte 183,253,147,38,54,63,247,204
963
.byte 52,165,229,241,113,216,49,21
964
.byte 4,199,35,195,24,150,5,154
965
.byte 7,18,128,226,235,39,178,117
966
.byte 9,131,44,26,27,110,90,160
967
.byte 82,59,214,179,41,227,47,132
968
.byte 83,209,0,237,32,252,177,91
969
.byte 106,203,190,57,74,76,88,207
970
.byte 208,239,170,251,67,77,51,133
971
.byte 69,249,2,127,80,60,159,168
972
.byte 81,163,64,143,146,157,56,245
973
.byte 188,182,218,33,16,255,243,210
974
.byte 205,12,19,236,95,151,68,23
975
.byte 196,167,126,61,100,93,25,115
976
.byte 96,129,79,220,34,42,144,136
977
.byte 70,238,184,20,222,94,11,219
978
.byte 224,50,58,10,73,6,36,92
979
.byte 194,211,172,98,145,149,228,121
980
.byte 231,200,55,109,141,213,78,169
981
.byte 108,86,244,234,101,122,174,8
982
.byte 186,120,37,46,28,166,180,198
983
.byte 232,221,116,31,75,189,139,138
984
.byte 112,62,181,102,72,3,246,14
985
.byte 97,53,87,185,134,193,29,158
986
.byte 225,248,152,17,105,217,142,148
987
.byte 155,30,135,233,206,85,40,223
988
.byte 140,161,137,13,191,230,66,104
989
.byte 65,153,45,15,176,84,187,22
990
.long 1,2,4,8
991
.long 16,32,64,128
992
.long 27,54,0,0
993
.long 0,0,0,0
994
.size _x86_AES_encrypt,.-_x86_AES_encrypt
995
.globl AES_encrypt
996
.type AES_encrypt,@function
997
.align 16
998
AES_encrypt:
999
.L_AES_encrypt_begin:
1000
#ifdef __CET__
1001
1002
.byte 243,15,30,251
1003
#endif
1004
1005
pushl %ebp
1006
pushl %ebx
1007
pushl %esi
1008
pushl %edi
1009
movl 20(%esp),%esi
1010
movl 28(%esp),%edi
1011
movl %esp,%eax
1012
subl $36,%esp
1013
andl $-64,%esp
1014
leal -127(%edi),%ebx
1015
subl %esp,%ebx
1016
negl %ebx
1017
andl $960,%ebx
1018
subl %ebx,%esp
1019
addl $4,%esp
1020
movl %eax,28(%esp)
1021
call .L004pic_point
1022
.L004pic_point:
1023
popl %ebp
1024
leal OPENSSL_ia32cap_P-.L004pic_point(%ebp),%eax
1025
leal .LAES_Te-.L004pic_point(%ebp),%ebp
1026
leal 764(%esp),%ebx
1027
subl %ebp,%ebx
1028
andl $768,%ebx
1029
leal 2176(%ebp,%ebx,1),%ebp
1030
btl $25,(%eax)
1031
jnc .L005x86
1032
movq (%esi),%mm0
1033
movq 8(%esi),%mm4
1034
call _sse_AES_encrypt_compact
1035
movl 28(%esp),%esp
1036
movl 24(%esp),%esi
1037
movq %mm0,(%esi)
1038
movq %mm4,8(%esi)
1039
emms
1040
popl %edi
1041
popl %esi
1042
popl %ebx
1043
popl %ebp
1044
ret
1045
.align 16
1046
.L005x86:
1047
movl %ebp,24(%esp)
1048
movl (%esi),%eax
1049
movl 4(%esi),%ebx
1050
movl 8(%esi),%ecx
1051
movl 12(%esi),%edx
1052
call _x86_AES_encrypt_compact
1053
movl 28(%esp),%esp
1054
movl 24(%esp),%esi
1055
movl %eax,(%esi)
1056
movl %ebx,4(%esi)
1057
movl %ecx,8(%esi)
1058
movl %edx,12(%esi)
1059
popl %edi
1060
popl %esi
1061
popl %ebx
1062
popl %ebp
1063
ret
1064
.size AES_encrypt,.-.L_AES_encrypt_begin
1065
.type _x86_AES_decrypt_compact,@function
1066
.align 16
1067
_x86_AES_decrypt_compact:
1068
#ifdef __CET__
1069
1070
.byte 243,15,30,251
1071
#endif
1072
1073
movl %edi,20(%esp)
1074
xorl (%edi),%eax
1075
xorl 4(%edi),%ebx
1076
xorl 8(%edi),%ecx
1077
xorl 12(%edi),%edx
1078
movl 240(%edi),%esi
1079
leal -2(%esi,%esi,1),%esi
1080
leal (%edi,%esi,8),%esi
1081
movl %esi,24(%esp)
1082
movl -128(%ebp),%edi
1083
movl -96(%ebp),%esi
1084
movl -64(%ebp),%edi
1085
movl -32(%ebp),%esi
1086
movl (%ebp),%edi
1087
movl 32(%ebp),%esi
1088
movl 64(%ebp),%edi
1089
movl 96(%ebp),%esi
1090
.align 16
1091
.L006loop:
1092
movl %eax,%esi
1093
andl $255,%esi
1094
movzbl -128(%ebp,%esi,1),%esi
1095
movzbl %dh,%edi
1096
movzbl -128(%ebp,%edi,1),%edi
1097
shll $8,%edi
1098
xorl %edi,%esi
1099
movl %ecx,%edi
1100
shrl $16,%edi
1101
andl $255,%edi
1102
movzbl -128(%ebp,%edi,1),%edi
1103
shll $16,%edi
1104
xorl %edi,%esi
1105
movl %ebx,%edi
1106
shrl $24,%edi
1107
movzbl -128(%ebp,%edi,1),%edi
1108
shll $24,%edi
1109
xorl %edi,%esi
1110
movl %esi,4(%esp)
1111
movl %ebx,%esi
1112
andl $255,%esi
1113
movzbl -128(%ebp,%esi,1),%esi
1114
movzbl %ah,%edi
1115
movzbl -128(%ebp,%edi,1),%edi
1116
shll $8,%edi
1117
xorl %edi,%esi
1118
movl %edx,%edi
1119
shrl $16,%edi
1120
andl $255,%edi
1121
movzbl -128(%ebp,%edi,1),%edi
1122
shll $16,%edi
1123
xorl %edi,%esi
1124
movl %ecx,%edi
1125
shrl $24,%edi
1126
movzbl -128(%ebp,%edi,1),%edi
1127
shll $24,%edi
1128
xorl %edi,%esi
1129
movl %esi,8(%esp)
1130
movl %ecx,%esi
1131
andl $255,%esi
1132
movzbl -128(%ebp,%esi,1),%esi
1133
movzbl %bh,%edi
1134
movzbl -128(%ebp,%edi,1),%edi
1135
shll $8,%edi
1136
xorl %edi,%esi
1137
movl %eax,%edi
1138
shrl $16,%edi
1139
andl $255,%edi
1140
movzbl -128(%ebp,%edi,1),%edi
1141
shll $16,%edi
1142
xorl %edi,%esi
1143
movl %edx,%edi
1144
shrl $24,%edi
1145
movzbl -128(%ebp,%edi,1),%edi
1146
shll $24,%edi
1147
xorl %edi,%esi
1148
andl $255,%edx
1149
movzbl -128(%ebp,%edx,1),%edx
1150
movzbl %ch,%ecx
1151
movzbl -128(%ebp,%ecx,1),%ecx
1152
shll $8,%ecx
1153
xorl %ecx,%edx
1154
movl %esi,%ecx
1155
shrl $16,%ebx
1156
andl $255,%ebx
1157
movzbl -128(%ebp,%ebx,1),%ebx
1158
shll $16,%ebx
1159
xorl %ebx,%edx
1160
shrl $24,%eax
1161
movzbl -128(%ebp,%eax,1),%eax
1162
shll $24,%eax
1163
xorl %eax,%edx
1164
movl $2155905152,%edi
1165
andl %ecx,%edi
1166
movl %edi,%esi
1167
shrl $7,%edi
1168
leal (%ecx,%ecx,1),%eax
1169
subl %edi,%esi
1170
andl $4278124286,%eax
1171
andl $454761243,%esi
1172
xorl %esi,%eax
1173
movl $2155905152,%edi
1174
andl %eax,%edi
1175
movl %edi,%esi
1176
shrl $7,%edi
1177
leal (%eax,%eax,1),%ebx
1178
subl %edi,%esi
1179
andl $4278124286,%ebx
1180
andl $454761243,%esi
1181
xorl %ecx,%eax
1182
xorl %esi,%ebx
1183
movl $2155905152,%edi
1184
andl %ebx,%edi
1185
movl %edi,%esi
1186
shrl $7,%edi
1187
leal (%ebx,%ebx,1),%ebp
1188
subl %edi,%esi
1189
andl $4278124286,%ebp
1190
andl $454761243,%esi
1191
xorl %ecx,%ebx
1192
roll $8,%ecx
1193
xorl %esi,%ebp
1194
xorl %eax,%ecx
1195
xorl %ebp,%eax
1196
xorl %ebx,%ecx
1197
xorl %ebp,%ebx
1198
roll $24,%eax
1199
xorl %ebp,%ecx
1200
roll $16,%ebx
1201
xorl %eax,%ecx
1202
roll $8,%ebp
1203
xorl %ebx,%ecx
1204
movl 4(%esp),%eax
1205
xorl %ebp,%ecx
1206
movl %ecx,12(%esp)
1207
movl $2155905152,%edi
1208
andl %edx,%edi
1209
movl %edi,%esi
1210
shrl $7,%edi
1211
leal (%edx,%edx,1),%ebx
1212
subl %edi,%esi
1213
andl $4278124286,%ebx
1214
andl $454761243,%esi
1215
xorl %esi,%ebx
1216
movl $2155905152,%edi
1217
andl %ebx,%edi
1218
movl %edi,%esi
1219
shrl $7,%edi
1220
leal (%ebx,%ebx,1),%ecx
1221
subl %edi,%esi
1222
andl $4278124286,%ecx
1223
andl $454761243,%esi
1224
xorl %edx,%ebx
1225
xorl %esi,%ecx
1226
movl $2155905152,%edi
1227
andl %ecx,%edi
1228
movl %edi,%esi
1229
shrl $7,%edi
1230
leal (%ecx,%ecx,1),%ebp
1231
subl %edi,%esi
1232
andl $4278124286,%ebp
1233
andl $454761243,%esi
1234
xorl %edx,%ecx
1235
roll $8,%edx
1236
xorl %esi,%ebp
1237
xorl %ebx,%edx
1238
xorl %ebp,%ebx
1239
xorl %ecx,%edx
1240
xorl %ebp,%ecx
1241
roll $24,%ebx
1242
xorl %ebp,%edx
1243
roll $16,%ecx
1244
xorl %ebx,%edx
1245
roll $8,%ebp
1246
xorl %ecx,%edx
1247
movl 8(%esp),%ebx
1248
xorl %ebp,%edx
1249
movl %edx,16(%esp)
1250
movl $2155905152,%edi
1251
andl %eax,%edi
1252
movl %edi,%esi
1253
shrl $7,%edi
1254
leal (%eax,%eax,1),%ecx
1255
subl %edi,%esi
1256
andl $4278124286,%ecx
1257
andl $454761243,%esi
1258
xorl %esi,%ecx
1259
movl $2155905152,%edi
1260
andl %ecx,%edi
1261
movl %edi,%esi
1262
shrl $7,%edi
1263
leal (%ecx,%ecx,1),%edx
1264
subl %edi,%esi
1265
andl $4278124286,%edx
1266
andl $454761243,%esi
1267
xorl %eax,%ecx
1268
xorl %esi,%edx
1269
movl $2155905152,%edi
1270
andl %edx,%edi
1271
movl %edi,%esi
1272
shrl $7,%edi
1273
leal (%edx,%edx,1),%ebp
1274
subl %edi,%esi
1275
andl $4278124286,%ebp
1276
andl $454761243,%esi
1277
xorl %eax,%edx
1278
roll $8,%eax
1279
xorl %esi,%ebp
1280
xorl %ecx,%eax
1281
xorl %ebp,%ecx
1282
xorl %edx,%eax
1283
xorl %ebp,%edx
1284
roll $24,%ecx
1285
xorl %ebp,%eax
1286
roll $16,%edx
1287
xorl %ecx,%eax
1288
roll $8,%ebp
1289
xorl %edx,%eax
1290
xorl %ebp,%eax
1291
movl $2155905152,%edi
1292
andl %ebx,%edi
1293
movl %edi,%esi
1294
shrl $7,%edi
1295
leal (%ebx,%ebx,1),%ecx
1296
subl %edi,%esi
1297
andl $4278124286,%ecx
1298
andl $454761243,%esi
1299
xorl %esi,%ecx
1300
movl $2155905152,%edi
1301
andl %ecx,%edi
1302
movl %edi,%esi
1303
shrl $7,%edi
1304
leal (%ecx,%ecx,1),%edx
1305
subl %edi,%esi
1306
andl $4278124286,%edx
1307
andl $454761243,%esi
1308
xorl %ebx,%ecx
1309
xorl %esi,%edx
1310
movl $2155905152,%edi
1311
andl %edx,%edi
1312
movl %edi,%esi
1313
shrl $7,%edi
1314
leal (%edx,%edx,1),%ebp
1315
subl %edi,%esi
1316
andl $4278124286,%ebp
1317
andl $454761243,%esi
1318
xorl %ebx,%edx
1319
roll $8,%ebx
1320
xorl %esi,%ebp
1321
xorl %ecx,%ebx
1322
xorl %ebp,%ecx
1323
xorl %edx,%ebx
1324
xorl %ebp,%edx
1325
roll $24,%ecx
1326
xorl %ebp,%ebx
1327
roll $16,%edx
1328
xorl %ecx,%ebx
1329
roll $8,%ebp
1330
xorl %edx,%ebx
1331
movl 12(%esp),%ecx
1332
xorl %ebp,%ebx
1333
movl 16(%esp),%edx
1334
movl 20(%esp),%edi
1335
movl 28(%esp),%ebp
1336
addl $16,%edi
1337
xorl (%edi),%eax
1338
xorl 4(%edi),%ebx
1339
xorl 8(%edi),%ecx
1340
xorl 12(%edi),%edx
1341
cmpl 24(%esp),%edi
1342
movl %edi,20(%esp)
1343
jb .L006loop
1344
movl %eax,%esi
1345
andl $255,%esi
1346
movzbl -128(%ebp,%esi,1),%esi
1347
movzbl %dh,%edi
1348
movzbl -128(%ebp,%edi,1),%edi
1349
shll $8,%edi
1350
xorl %edi,%esi
1351
movl %ecx,%edi
1352
shrl $16,%edi
1353
andl $255,%edi
1354
movzbl -128(%ebp,%edi,1),%edi
1355
shll $16,%edi
1356
xorl %edi,%esi
1357
movl %ebx,%edi
1358
shrl $24,%edi
1359
movzbl -128(%ebp,%edi,1),%edi
1360
shll $24,%edi
1361
xorl %edi,%esi
1362
movl %esi,4(%esp)
1363
movl %ebx,%esi
1364
andl $255,%esi
1365
movzbl -128(%ebp,%esi,1),%esi
1366
movzbl %ah,%edi
1367
movzbl -128(%ebp,%edi,1),%edi
1368
shll $8,%edi
1369
xorl %edi,%esi
1370
movl %edx,%edi
1371
shrl $16,%edi
1372
andl $255,%edi
1373
movzbl -128(%ebp,%edi,1),%edi
1374
shll $16,%edi
1375
xorl %edi,%esi
1376
movl %ecx,%edi
1377
shrl $24,%edi
1378
movzbl -128(%ebp,%edi,1),%edi
1379
shll $24,%edi
1380
xorl %edi,%esi
1381
movl %esi,8(%esp)
1382
movl %ecx,%esi
1383
andl $255,%esi
1384
movzbl -128(%ebp,%esi,1),%esi
1385
movzbl %bh,%edi
1386
movzbl -128(%ebp,%edi,1),%edi
1387
shll $8,%edi
1388
xorl %edi,%esi
1389
movl %eax,%edi
1390
shrl $16,%edi
1391
andl $255,%edi
1392
movzbl -128(%ebp,%edi,1),%edi
1393
shll $16,%edi
1394
xorl %edi,%esi
1395
movl %edx,%edi
1396
shrl $24,%edi
1397
movzbl -128(%ebp,%edi,1),%edi
1398
shll $24,%edi
1399
xorl %edi,%esi
1400
movl 20(%esp),%edi
1401
andl $255,%edx
1402
movzbl -128(%ebp,%edx,1),%edx
1403
movzbl %ch,%ecx
1404
movzbl -128(%ebp,%ecx,1),%ecx
1405
shll $8,%ecx
1406
xorl %ecx,%edx
1407
movl %esi,%ecx
1408
shrl $16,%ebx
1409
andl $255,%ebx
1410
movzbl -128(%ebp,%ebx,1),%ebx
1411
shll $16,%ebx
1412
xorl %ebx,%edx
1413
movl 8(%esp),%ebx
1414
shrl $24,%eax
1415
movzbl -128(%ebp,%eax,1),%eax
1416
shll $24,%eax
1417
xorl %eax,%edx
1418
movl 4(%esp),%eax
1419
xorl 16(%edi),%eax
1420
xorl 20(%edi),%ebx
1421
xorl 24(%edi),%ecx
1422
xorl 28(%edi),%edx
1423
ret
1424
.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
1425
.type _sse_AES_decrypt_compact,@function
1426
.align 16
1427
_sse_AES_decrypt_compact:
1428
#ifdef __CET__
1429
1430
.byte 243,15,30,251
1431
#endif
1432
1433
pxor (%edi),%mm0
1434
pxor 8(%edi),%mm4
1435
movl 240(%edi),%esi
1436
leal -2(%esi,%esi,1),%esi
1437
leal (%edi,%esi,8),%esi
1438
movl %esi,24(%esp)
1439
movl $454761243,%eax
1440
movl %eax,8(%esp)
1441
movl %eax,12(%esp)
1442
movl -128(%ebp),%eax
1443
movl -96(%ebp),%ebx
1444
movl -64(%ebp),%ecx
1445
movl -32(%ebp),%edx
1446
movl (%ebp),%eax
1447
movl 32(%ebp),%ebx
1448
movl 64(%ebp),%ecx
1449
movl 96(%ebp),%edx
1450
.align 16
1451
.L007loop:
1452
pshufw $12,%mm0,%mm1
1453
pshufw $9,%mm4,%mm5
1454
movd %mm1,%eax
1455
movd %mm5,%ebx
1456
movl %edi,20(%esp)
1457
movzbl %al,%esi
1458
movzbl %ah,%edx
1459
pshufw $6,%mm0,%mm2
1460
movzbl -128(%ebp,%esi,1),%ecx
1461
movzbl %bl,%edi
1462
movzbl -128(%ebp,%edx,1),%edx
1463
shrl $16,%eax
1464
shll $8,%edx
1465
movzbl -128(%ebp,%edi,1),%esi
1466
movzbl %bh,%edi
1467
shll $16,%esi
1468
pshufw $3,%mm4,%mm6
1469
orl %esi,%ecx
1470
movzbl -128(%ebp,%edi,1),%esi
1471
movzbl %ah,%edi
1472
shll $24,%esi
1473
shrl $16,%ebx
1474
orl %esi,%edx
1475
movzbl -128(%ebp,%edi,1),%esi
1476
movzbl %bh,%edi
1477
shll $24,%esi
1478
orl %esi,%ecx
1479
movzbl -128(%ebp,%edi,1),%esi
1480
movzbl %al,%edi
1481
shll $8,%esi
1482
movd %mm2,%eax
1483
orl %esi,%ecx
1484
movzbl -128(%ebp,%edi,1),%esi
1485
movzbl %bl,%edi
1486
shll $16,%esi
1487
movd %mm6,%ebx
1488
movd %ecx,%mm0
1489
movzbl -128(%ebp,%edi,1),%ecx
1490
movzbl %al,%edi
1491
orl %esi,%ecx
1492
movzbl -128(%ebp,%edi,1),%esi
1493
movzbl %bl,%edi
1494
orl %esi,%edx
1495
movzbl -128(%ebp,%edi,1),%esi
1496
movzbl %ah,%edi
1497
shll $16,%esi
1498
shrl $16,%eax
1499
orl %esi,%edx
1500
movzbl -128(%ebp,%edi,1),%esi
1501
movzbl %bh,%edi
1502
shrl $16,%ebx
1503
shll $8,%esi
1504
movd %edx,%mm1
1505
movzbl -128(%ebp,%edi,1),%edx
1506
movzbl %bh,%edi
1507
shll $24,%edx
1508
andl $255,%ebx
1509
orl %esi,%edx
1510
punpckldq %mm1,%mm0
1511
movzbl -128(%ebp,%edi,1),%esi
1512
movzbl %al,%edi
1513
shll $8,%esi
1514
movzbl %ah,%eax
1515
movzbl -128(%ebp,%ebx,1),%ebx
1516
orl %esi,%ecx
1517
movzbl -128(%ebp,%edi,1),%esi
1518
orl %ebx,%edx
1519
shll $16,%esi
1520
movzbl -128(%ebp,%eax,1),%eax
1521
orl %esi,%edx
1522
shll $24,%eax
1523
orl %eax,%ecx
1524
movl 20(%esp),%edi
1525
movd %edx,%mm4
1526
movd %ecx,%mm5
1527
punpckldq %mm5,%mm4
1528
addl $16,%edi
1529
cmpl 24(%esp),%edi
1530
ja .L008out
1531
movq %mm0,%mm3
1532
movq %mm4,%mm7
1533
pshufw $228,%mm0,%mm2
1534
pshufw $228,%mm4,%mm6
1535
movq %mm0,%mm1
1536
movq %mm4,%mm5
1537
pshufw $177,%mm0,%mm0
1538
pshufw $177,%mm4,%mm4
1539
pslld $8,%mm2
1540
pslld $8,%mm6
1541
psrld $8,%mm3
1542
psrld $8,%mm7
1543
pxor %mm2,%mm0
1544
pxor %mm6,%mm4
1545
pxor %mm3,%mm0
1546
pxor %mm7,%mm4
1547
pslld $16,%mm2
1548
pslld $16,%mm6
1549
psrld $16,%mm3
1550
psrld $16,%mm7
1551
pxor %mm2,%mm0
1552
pxor %mm6,%mm4
1553
pxor %mm3,%mm0
1554
pxor %mm7,%mm4
1555
movq 8(%esp),%mm3
1556
pxor %mm2,%mm2
1557
pxor %mm6,%mm6
1558
pcmpgtb %mm1,%mm2
1559
pcmpgtb %mm5,%mm6
1560
pand %mm3,%mm2
1561
pand %mm3,%mm6
1562
paddb %mm1,%mm1
1563
paddb %mm5,%mm5
1564
pxor %mm2,%mm1
1565
pxor %mm6,%mm5
1566
movq %mm1,%mm3
1567
movq %mm5,%mm7
1568
movq %mm1,%mm2
1569
movq %mm5,%mm6
1570
pxor %mm1,%mm0
1571
pxor %mm5,%mm4
1572
pslld $24,%mm3
1573
pslld $24,%mm7
1574
psrld $8,%mm2
1575
psrld $8,%mm6
1576
pxor %mm3,%mm0
1577
pxor %mm7,%mm4
1578
pxor %mm2,%mm0
1579
pxor %mm6,%mm4
1580
movq 8(%esp),%mm2
1581
pxor %mm3,%mm3
1582
pxor %mm7,%mm7
1583
pcmpgtb %mm1,%mm3
1584
pcmpgtb %mm5,%mm7
1585
pand %mm2,%mm3
1586
pand %mm2,%mm7
1587
paddb %mm1,%mm1
1588
paddb %mm5,%mm5
1589
pxor %mm3,%mm1
1590
pxor %mm7,%mm5
1591
pshufw $177,%mm1,%mm3
1592
pshufw $177,%mm5,%mm7
1593
pxor %mm1,%mm0
1594
pxor %mm5,%mm4
1595
pxor %mm3,%mm0
1596
pxor %mm7,%mm4
1597
pxor %mm3,%mm3
1598
pxor %mm7,%mm7
1599
pcmpgtb %mm1,%mm3
1600
pcmpgtb %mm5,%mm7
1601
pand %mm2,%mm3
1602
pand %mm2,%mm7
1603
paddb %mm1,%mm1
1604
paddb %mm5,%mm5
1605
pxor %mm3,%mm1
1606
pxor %mm7,%mm5
1607
pxor %mm1,%mm0
1608
pxor %mm5,%mm4
1609
movq %mm1,%mm3
1610
movq %mm5,%mm7
1611
pshufw $177,%mm1,%mm2
1612
pshufw $177,%mm5,%mm6
1613
pxor %mm2,%mm0
1614
pxor %mm6,%mm4
1615
pslld $8,%mm1
1616
pslld $8,%mm5
1617
psrld $8,%mm3
1618
psrld $8,%mm7
1619
movq (%edi),%mm2
1620
movq 8(%edi),%mm6
1621
pxor %mm1,%mm0
1622
pxor %mm5,%mm4
1623
pxor %mm3,%mm0
1624
pxor %mm7,%mm4
1625
movl -128(%ebp),%eax
1626
pslld $16,%mm1
1627
pslld $16,%mm5
1628
movl -64(%ebp),%ebx
1629
psrld $16,%mm3
1630
psrld $16,%mm7
1631
movl (%ebp),%ecx
1632
pxor %mm1,%mm0
1633
pxor %mm5,%mm4
1634
movl 64(%ebp),%edx
1635
pxor %mm3,%mm0
1636
pxor %mm7,%mm4
1637
pxor %mm2,%mm0
1638
pxor %mm6,%mm4
1639
jmp .L007loop
1640
.align 16
1641
.L008out:
1642
pxor (%edi),%mm0
1643
pxor 8(%edi),%mm4
1644
ret
1645
.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
1646
.type _x86_AES_decrypt,@function
1647
.align 16
1648
_x86_AES_decrypt:
1649
#ifdef __CET__
1650
1651
.byte 243,15,30,251
1652
#endif
1653
1654
movl %edi,20(%esp)
1655
xorl (%edi),%eax
1656
xorl 4(%edi),%ebx
1657
xorl 8(%edi),%ecx
1658
xorl 12(%edi),%edx
1659
movl 240(%edi),%esi
1660
leal -2(%esi,%esi,1),%esi
1661
leal (%edi,%esi,8),%esi
1662
movl %esi,24(%esp)
1663
.align 16
1664
.L009loop:
1665
movl %eax,%esi
1666
andl $255,%esi
1667
movl (%ebp,%esi,8),%esi
1668
movzbl %dh,%edi
1669
xorl 3(%ebp,%edi,8),%esi
1670
movl %ecx,%edi
1671
shrl $16,%edi
1672
andl $255,%edi
1673
xorl 2(%ebp,%edi,8),%esi
1674
movl %ebx,%edi
1675
shrl $24,%edi
1676
xorl 1(%ebp,%edi,8),%esi
1677
movl %esi,4(%esp)
1678
1679
movl %ebx,%esi
1680
andl $255,%esi
1681
movl (%ebp,%esi,8),%esi
1682
movzbl %ah,%edi
1683
xorl 3(%ebp,%edi,8),%esi
1684
movl %edx,%edi
1685
shrl $16,%edi
1686
andl $255,%edi
1687
xorl 2(%ebp,%edi,8),%esi
1688
movl %ecx,%edi
1689
shrl $24,%edi
1690
xorl 1(%ebp,%edi,8),%esi
1691
movl %esi,8(%esp)
1692
1693
movl %ecx,%esi
1694
andl $255,%esi
1695
movl (%ebp,%esi,8),%esi
1696
movzbl %bh,%edi
1697
xorl 3(%ebp,%edi,8),%esi
1698
movl %eax,%edi
1699
shrl $16,%edi
1700
andl $255,%edi
1701
xorl 2(%ebp,%edi,8),%esi
1702
movl %edx,%edi
1703
shrl $24,%edi
1704
xorl 1(%ebp,%edi,8),%esi
1705
1706
movl 20(%esp),%edi
1707
andl $255,%edx
1708
movl (%ebp,%edx,8),%edx
1709
movzbl %ch,%ecx
1710
xorl 3(%ebp,%ecx,8),%edx
1711
movl %esi,%ecx
1712
shrl $16,%ebx
1713
andl $255,%ebx
1714
xorl 2(%ebp,%ebx,8),%edx
1715
movl 8(%esp),%ebx
1716
shrl $24,%eax
1717
xorl 1(%ebp,%eax,8),%edx
1718
movl 4(%esp),%eax
1719
1720
addl $16,%edi
1721
xorl (%edi),%eax
1722
xorl 4(%edi),%ebx
1723
xorl 8(%edi),%ecx
1724
xorl 12(%edi),%edx
1725
cmpl 24(%esp),%edi
1726
movl %edi,20(%esp)
1727
jb .L009loop
1728
leal 2176(%ebp),%ebp
1729
movl -128(%ebp),%edi
1730
movl -96(%ebp),%esi
1731
movl -64(%ebp),%edi
1732
movl -32(%ebp),%esi
1733
movl (%ebp),%edi
1734
movl 32(%ebp),%esi
1735
movl 64(%ebp),%edi
1736
movl 96(%ebp),%esi
1737
leal -128(%ebp),%ebp
1738
movl %eax,%esi
1739
andl $255,%esi
1740
movzbl (%ebp,%esi,1),%esi
1741
movzbl %dh,%edi
1742
movzbl (%ebp,%edi,1),%edi
1743
shll $8,%edi
1744
xorl %edi,%esi
1745
movl %ecx,%edi
1746
shrl $16,%edi
1747
andl $255,%edi
1748
movzbl (%ebp,%edi,1),%edi
1749
shll $16,%edi
1750
xorl %edi,%esi
1751
movl %ebx,%edi
1752
shrl $24,%edi
1753
movzbl (%ebp,%edi,1),%edi
1754
shll $24,%edi
1755
xorl %edi,%esi
1756
movl %esi,4(%esp)
1757
movl %ebx,%esi
1758
andl $255,%esi
1759
movzbl (%ebp,%esi,1),%esi
1760
movzbl %ah,%edi
1761
movzbl (%ebp,%edi,1),%edi
1762
shll $8,%edi
1763
xorl %edi,%esi
1764
movl %edx,%edi
1765
shrl $16,%edi
1766
andl $255,%edi
1767
movzbl (%ebp,%edi,1),%edi
1768
shll $16,%edi
1769
xorl %edi,%esi
1770
movl %ecx,%edi
1771
shrl $24,%edi
1772
movzbl (%ebp,%edi,1),%edi
1773
shll $24,%edi
1774
xorl %edi,%esi
1775
movl %esi,8(%esp)
1776
movl %ecx,%esi
1777
andl $255,%esi
1778
movzbl (%ebp,%esi,1),%esi
1779
movzbl %bh,%edi
1780
movzbl (%ebp,%edi,1),%edi
1781
shll $8,%edi
1782
xorl %edi,%esi
1783
movl %eax,%edi
1784
shrl $16,%edi
1785
andl $255,%edi
1786
movzbl (%ebp,%edi,1),%edi
1787
shll $16,%edi
1788
xorl %edi,%esi
1789
movl %edx,%edi
1790
shrl $24,%edi
1791
movzbl (%ebp,%edi,1),%edi
1792
shll $24,%edi
1793
xorl %edi,%esi
1794
movl 20(%esp),%edi
1795
andl $255,%edx
1796
movzbl (%ebp,%edx,1),%edx
1797
movzbl %ch,%ecx
1798
movzbl (%ebp,%ecx,1),%ecx
1799
shll $8,%ecx
1800
xorl %ecx,%edx
1801
movl %esi,%ecx
1802
shrl $16,%ebx
1803
andl $255,%ebx
1804
movzbl (%ebp,%ebx,1),%ebx
1805
shll $16,%ebx
1806
xorl %ebx,%edx
1807
movl 8(%esp),%ebx
1808
shrl $24,%eax
1809
movzbl (%ebp,%eax,1),%eax
1810
shll $24,%eax
1811
xorl %eax,%edx
1812
movl 4(%esp),%eax
1813
leal -2048(%ebp),%ebp
1814
addl $16,%edi
1815
xorl (%edi),%eax
1816
xorl 4(%edi),%ebx
1817
xorl 8(%edi),%ecx
1818
xorl 12(%edi),%edx
1819
ret
1820
.align 64
1821
.LAES_Td:
1822
.long 1353184337,1353184337
1823
.long 1399144830,1399144830
1824
.long 3282310938,3282310938
1825
.long 2522752826,2522752826
1826
.long 3412831035,3412831035
1827
.long 4047871263,4047871263
1828
.long 2874735276,2874735276
1829
.long 2466505547,2466505547
1830
.long 1442459680,1442459680
1831
.long 4134368941,4134368941
1832
.long 2440481928,2440481928
1833
.long 625738485,625738485
1834
.long 4242007375,4242007375
1835
.long 3620416197,3620416197
1836
.long 2151953702,2151953702
1837
.long 2409849525,2409849525
1838
.long 1230680542,1230680542
1839
.long 1729870373,1729870373
1840
.long 2551114309,2551114309
1841
.long 3787521629,3787521629
1842
.long 41234371,41234371
1843
.long 317738113,317738113
1844
.long 2744600205,2744600205
1845
.long 3338261355,3338261355
1846
.long 3881799427,3881799427
1847
.long 2510066197,2510066197
1848
.long 3950669247,3950669247
1849
.long 3663286933,3663286933
1850
.long 763608788,763608788
1851
.long 3542185048,3542185048
1852
.long 694804553,694804553
1853
.long 1154009486,1154009486
1854
.long 1787413109,1787413109
1855
.long 2021232372,2021232372
1856
.long 1799248025,1799248025
1857
.long 3715217703,3715217703
1858
.long 3058688446,3058688446
1859
.long 397248752,397248752
1860
.long 1722556617,1722556617
1861
.long 3023752829,3023752829
1862
.long 407560035,407560035
1863
.long 2184256229,2184256229
1864
.long 1613975959,1613975959
1865
.long 1165972322,1165972322
1866
.long 3765920945,3765920945
1867
.long 2226023355,2226023355
1868
.long 480281086,480281086
1869
.long 2485848313,2485848313
1870
.long 1483229296,1483229296
1871
.long 436028815,436028815
1872
.long 2272059028,2272059028
1873
.long 3086515026,3086515026
1874
.long 601060267,601060267
1875
.long 3791801202,3791801202
1876
.long 1468997603,1468997603
1877
.long 715871590,715871590
1878
.long 120122290,120122290
1879
.long 63092015,63092015
1880
.long 2591802758,2591802758
1881
.long 2768779219,2768779219
1882
.long 4068943920,4068943920
1883
.long 2997206819,2997206819
1884
.long 3127509762,3127509762
1885
.long 1552029421,1552029421
1886
.long 723308426,723308426
1887
.long 2461301159,2461301159
1888
.long 4042393587,4042393587
1889
.long 2715969870,2715969870
1890
.long 3455375973,3455375973
1891
.long 3586000134,3586000134
1892
.long 526529745,526529745
1893
.long 2331944644,2331944644
1894
.long 2639474228,2639474228
1895
.long 2689987490,2689987490
1896
.long 853641733,853641733
1897
.long 1978398372,1978398372
1898
.long 971801355,971801355
1899
.long 2867814464,2867814464
1900
.long 111112542,111112542
1901
.long 1360031421,1360031421
1902
.long 4186579262,4186579262
1903
.long 1023860118,1023860118
1904
.long 2919579357,2919579357
1905
.long 1186850381,1186850381
1906
.long 3045938321,3045938321
1907
.long 90031217,90031217
1908
.long 1876166148,1876166148
1909
.long 4279586912,4279586912
1910
.long 620468249,620468249
1911
.long 2548678102,2548678102
1912
.long 3426959497,3426959497
1913
.long 2006899047,2006899047
1914
.long 3175278768,3175278768
1915
.long 2290845959,2290845959
1916
.long 945494503,945494503
1917
.long 3689859193,3689859193
1918
.long 1191869601,1191869601
1919
.long 3910091388,3910091388
1920
.long 3374220536,3374220536
1921
.long 0,0
1922
.long 2206629897,2206629897
1923
.long 1223502642,1223502642
1924
.long 2893025566,2893025566
1925
.long 1316117100,1316117100
1926
.long 4227796733,4227796733
1927
.long 1446544655,1446544655
1928
.long 517320253,517320253
1929
.long 658058550,658058550
1930
.long 1691946762,1691946762
1931
.long 564550760,564550760
1932
.long 3511966619,3511966619
1933
.long 976107044,976107044
1934
.long 2976320012,2976320012
1935
.long 266819475,266819475
1936
.long 3533106868,3533106868
1937
.long 2660342555,2660342555
1938
.long 1338359936,1338359936
1939
.long 2720062561,2720062561
1940
.long 1766553434,1766553434
1941
.long 370807324,370807324
1942
.long 179999714,179999714
1943
.long 3844776128,3844776128
1944
.long 1138762300,1138762300
1945
.long 488053522,488053522
1946
.long 185403662,185403662
1947
.long 2915535858,2915535858
1948
.long 3114841645,3114841645
1949
.long 3366526484,3366526484
1950
.long 2233069911,2233069911
1951
.long 1275557295,1275557295
1952
.long 3151862254,3151862254
1953
.long 4250959779,4250959779
1954
.long 2670068215,2670068215
1955
.long 3170202204,3170202204
1956
.long 3309004356,3309004356
1957
.long 880737115,880737115
1958
.long 1982415755,1982415755
1959
.long 3703972811,3703972811
1960
.long 1761406390,1761406390
1961
.long 1676797112,1676797112
1962
.long 3403428311,3403428311
1963
.long 277177154,277177154
1964
.long 1076008723,1076008723
1965
.long 538035844,538035844
1966
.long 2099530373,2099530373
1967
.long 4164795346,4164795346
1968
.long 288553390,288553390
1969
.long 1839278535,1839278535
1970
.long 1261411869,1261411869
1971
.long 4080055004,4080055004
1972
.long 3964831245,3964831245
1973
.long 3504587127,3504587127
1974
.long 1813426987,1813426987
1975
.long 2579067049,2579067049
1976
.long 4199060497,4199060497
1977
.long 577038663,577038663
1978
.long 3297574056,3297574056
1979
.long 440397984,440397984
1980
.long 3626794326,3626794326
1981
.long 4019204898,4019204898
1982
.long 3343796615,3343796615
1983
.long 3251714265,3251714265
1984
.long 4272081548,4272081548
1985
.long 906744984,906744984
1986
.long 3481400742,3481400742
1987
.long 685669029,685669029
1988
.long 646887386,646887386
1989
.long 2764025151,2764025151
1990
.long 3835509292,3835509292
1991
.long 227702864,227702864
1992
.long 2613862250,2613862250
1993
.long 1648787028,1648787028
1994
.long 3256061430,3256061430
1995
.long 3904428176,3904428176
1996
.long 1593260334,1593260334
1997
.long 4121936770,4121936770
1998
.long 3196083615,3196083615
1999
.long 2090061929,2090061929
2000
.long 2838353263,2838353263
2001
.long 3004310991,3004310991
2002
.long 999926984,999926984
2003
.long 2809993232,2809993232
2004
.long 1852021992,1852021992
2005
.long 2075868123,2075868123
2006
.long 158869197,158869197
2007
.long 4095236462,4095236462
2008
.long 28809964,28809964
2009
.long 2828685187,2828685187
2010
.long 1701746150,1701746150
2011
.long 2129067946,2129067946
2012
.long 147831841,147831841
2013
.long 3873969647,3873969647
2014
.long 3650873274,3650873274
2015
.long 3459673930,3459673930
2016
.long 3557400554,3557400554
2017
.long 3598495785,3598495785
2018
.long 2947720241,2947720241
2019
.long 824393514,824393514
2020
.long 815048134,815048134
2021
.long 3227951669,3227951669
2022
.long 935087732,935087732
2023
.long 2798289660,2798289660
2024
.long 2966458592,2966458592
2025
.long 366520115,366520115
2026
.long 1251476721,1251476721
2027
.long 4158319681,4158319681
2028
.long 240176511,240176511
2029
.long 804688151,804688151
2030
.long 2379631990,2379631990
2031
.long 1303441219,1303441219
2032
.long 1414376140,1414376140
2033
.long 3741619940,3741619940
2034
.long 3820343710,3820343710
2035
.long 461924940,461924940
2036
.long 3089050817,3089050817
2037
.long 2136040774,2136040774
2038
.long 82468509,82468509
2039
.long 1563790337,1563790337
2040
.long 1937016826,1937016826
2041
.long 776014843,776014843
2042
.long 1511876531,1511876531
2043
.long 1389550482,1389550482
2044
.long 861278441,861278441
2045
.long 323475053,323475053
2046
.long 2355222426,2355222426
2047
.long 2047648055,2047648055
2048
.long 2383738969,2383738969
2049
.long 2302415851,2302415851
2050
.long 3995576782,3995576782
2051
.long 902390199,902390199
2052
.long 3991215329,3991215329
2053
.long 1018251130,1018251130
2054
.long 1507840668,1507840668
2055
.long 1064563285,1064563285
2056
.long 2043548696,2043548696
2057
.long 3208103795,3208103795
2058
.long 3939366739,3939366739
2059
.long 1537932639,1537932639
2060
.long 342834655,342834655
2061
.long 2262516856,2262516856
2062
.long 2180231114,2180231114
2063
.long 1053059257,1053059257
2064
.long 741614648,741614648
2065
.long 1598071746,1598071746
2066
.long 1925389590,1925389590
2067
.long 203809468,203809468
2068
.long 2336832552,2336832552
2069
.long 1100287487,1100287487
2070
.long 1895934009,1895934009
2071
.long 3736275976,3736275976
2072
.long 2632234200,2632234200
2073
.long 2428589668,2428589668
2074
.long 1636092795,1636092795
2075
.long 1890988757,1890988757
2076
.long 1952214088,1952214088
2077
.long 1113045200,1113045200
2078
.byte 82,9,106,213,48,54,165,56
2079
.byte 191,64,163,158,129,243,215,251
2080
.byte 124,227,57,130,155,47,255,135
2081
.byte 52,142,67,68,196,222,233,203
2082
.byte 84,123,148,50,166,194,35,61
2083
.byte 238,76,149,11,66,250,195,78
2084
.byte 8,46,161,102,40,217,36,178
2085
.byte 118,91,162,73,109,139,209,37
2086
.byte 114,248,246,100,134,104,152,22
2087
.byte 212,164,92,204,93,101,182,146
2088
.byte 108,112,72,80,253,237,185,218
2089
.byte 94,21,70,87,167,141,157,132
2090
.byte 144,216,171,0,140,188,211,10
2091
.byte 247,228,88,5,184,179,69,6
2092
.byte 208,44,30,143,202,63,15,2
2093
.byte 193,175,189,3,1,19,138,107
2094
.byte 58,145,17,65,79,103,220,234
2095
.byte 151,242,207,206,240,180,230,115
2096
.byte 150,172,116,34,231,173,53,133
2097
.byte 226,249,55,232,28,117,223,110
2098
.byte 71,241,26,113,29,41,197,137
2099
.byte 111,183,98,14,170,24,190,27
2100
.byte 252,86,62,75,198,210,121,32
2101
.byte 154,219,192,254,120,205,90,244
2102
.byte 31,221,168,51,136,7,199,49
2103
.byte 177,18,16,89,39,128,236,95
2104
.byte 96,81,127,169,25,181,74,13
2105
.byte 45,229,122,159,147,201,156,239
2106
.byte 160,224,59,77,174,42,245,176
2107
.byte 200,235,187,60,131,83,153,97
2108
.byte 23,43,4,126,186,119,214,38
2109
.byte 225,105,20,99,85,33,12,125
2110
.byte 82,9,106,213,48,54,165,56
2111
.byte 191,64,163,158,129,243,215,251
2112
.byte 124,227,57,130,155,47,255,135
2113
.byte 52,142,67,68,196,222,233,203
2114
.byte 84,123,148,50,166,194,35,61
2115
.byte 238,76,149,11,66,250,195,78
2116
.byte 8,46,161,102,40,217,36,178
2117
.byte 118,91,162,73,109,139,209,37
2118
.byte 114,248,246,100,134,104,152,22
2119
.byte 212,164,92,204,93,101,182,146
2120
.byte 108,112,72,80,253,237,185,218
2121
.byte 94,21,70,87,167,141,157,132
2122
.byte 144,216,171,0,140,188,211,10
2123
.byte 247,228,88,5,184,179,69,6
2124
.byte 208,44,30,143,202,63,15,2
2125
.byte 193,175,189,3,1,19,138,107
2126
.byte 58,145,17,65,79,103,220,234
2127
.byte 151,242,207,206,240,180,230,115
2128
.byte 150,172,116,34,231,173,53,133
2129
.byte 226,249,55,232,28,117,223,110
2130
.byte 71,241,26,113,29,41,197,137
2131
.byte 111,183,98,14,170,24,190,27
2132
.byte 252,86,62,75,198,210,121,32
2133
.byte 154,219,192,254,120,205,90,244
2134
.byte 31,221,168,51,136,7,199,49
2135
.byte 177,18,16,89,39,128,236,95
2136
.byte 96,81,127,169,25,181,74,13
2137
.byte 45,229,122,159,147,201,156,239
2138
.byte 160,224,59,77,174,42,245,176
2139
.byte 200,235,187,60,131,83,153,97
2140
.byte 23,43,4,126,186,119,214,38
2141
.byte 225,105,20,99,85,33,12,125
2142
.byte 82,9,106,213,48,54,165,56
2143
.byte 191,64,163,158,129,243,215,251
2144
.byte 124,227,57,130,155,47,255,135
2145
.byte 52,142,67,68,196,222,233,203
2146
.byte 84,123,148,50,166,194,35,61
2147
.byte 238,76,149,11,66,250,195,78
2148
.byte 8,46,161,102,40,217,36,178
2149
.byte 118,91,162,73,109,139,209,37
2150
.byte 114,248,246,100,134,104,152,22
2151
.byte 212,164,92,204,93,101,182,146
2152
.byte 108,112,72,80,253,237,185,218
2153
.byte 94,21,70,87,167,141,157,132
2154
.byte 144,216,171,0,140,188,211,10
2155
.byte 247,228,88,5,184,179,69,6
2156
.byte 208,44,30,143,202,63,15,2
2157
.byte 193,175,189,3,1,19,138,107
2158
.byte 58,145,17,65,79,103,220,234
2159
.byte 151,242,207,206,240,180,230,115
2160
.byte 150,172,116,34,231,173,53,133
2161
.byte 226,249,55,232,28,117,223,110
2162
.byte 71,241,26,113,29,41,197,137
2163
.byte 111,183,98,14,170,24,190,27
2164
.byte 252,86,62,75,198,210,121,32
2165
.byte 154,219,192,254,120,205,90,244
2166
.byte 31,221,168,51,136,7,199,49
2167
.byte 177,18,16,89,39,128,236,95
2168
.byte 96,81,127,169,25,181,74,13
2169
.byte 45,229,122,159,147,201,156,239
2170
.byte 160,224,59,77,174,42,245,176
2171
.byte 200,235,187,60,131,83,153,97
2172
.byte 23,43,4,126,186,119,214,38
2173
.byte 225,105,20,99,85,33,12,125
2174
.byte 82,9,106,213,48,54,165,56
2175
.byte 191,64,163,158,129,243,215,251
2176
.byte 124,227,57,130,155,47,255,135
2177
.byte 52,142,67,68,196,222,233,203
2178
.byte 84,123,148,50,166,194,35,61
2179
.byte 238,76,149,11,66,250,195,78
2180
.byte 8,46,161,102,40,217,36,178
2181
.byte 118,91,162,73,109,139,209,37
2182
.byte 114,248,246,100,134,104,152,22
2183
.byte 212,164,92,204,93,101,182,146
2184
.byte 108,112,72,80,253,237,185,218
2185
.byte 94,21,70,87,167,141,157,132
2186
.byte 144,216,171,0,140,188,211,10
2187
.byte 247,228,88,5,184,179,69,6
2188
.byte 208,44,30,143,202,63,15,2
2189
.byte 193,175,189,3,1,19,138,107
2190
.byte 58,145,17,65,79,103,220,234
2191
.byte 151,242,207,206,240,180,230,115
2192
.byte 150,172,116,34,231,173,53,133
2193
.byte 226,249,55,232,28,117,223,110
2194
.byte 71,241,26,113,29,41,197,137
2195
.byte 111,183,98,14,170,24,190,27
2196
.byte 252,86,62,75,198,210,121,32
2197
.byte 154,219,192,254,120,205,90,244
2198
.byte 31,221,168,51,136,7,199,49
2199
.byte 177,18,16,89,39,128,236,95
2200
.byte 96,81,127,169,25,181,74,13
2201
.byte 45,229,122,159,147,201,156,239
2202
.byte 160,224,59,77,174,42,245,176
2203
.byte 200,235,187,60,131,83,153,97
2204
.byte 23,43,4,126,186,119,214,38
2205
.byte 225,105,20,99,85,33,12,125
2206
.size _x86_AES_decrypt,.-_x86_AES_decrypt
2207
.globl AES_decrypt
2208
.type AES_decrypt,@function
2209
.align 16
2210
AES_decrypt:
2211
.L_AES_decrypt_begin:
2212
#ifdef __CET__
2213
2214
.byte 243,15,30,251
2215
#endif
2216
2217
pushl %ebp
2218
pushl %ebx
2219
pushl %esi
2220
pushl %edi
2221
movl 20(%esp),%esi
2222
movl 28(%esp),%edi
2223
movl %esp,%eax
2224
subl $36,%esp
2225
andl $-64,%esp
2226
leal -127(%edi),%ebx
2227
subl %esp,%ebx
2228
negl %ebx
2229
andl $960,%ebx
2230
subl %ebx,%esp
2231
addl $4,%esp
2232
movl %eax,28(%esp)
2233
call .L010pic_point
2234
.L010pic_point:
2235
popl %ebp
2236
leal OPENSSL_ia32cap_P-.L010pic_point(%ebp),%eax
2237
leal .LAES_Td-.L010pic_point(%ebp),%ebp
2238
leal 764(%esp),%ebx
2239
subl %ebp,%ebx
2240
andl $768,%ebx
2241
leal 2176(%ebp,%ebx,1),%ebp
2242
btl $25,(%eax)
2243
jnc .L011x86
2244
movq (%esi),%mm0
2245
movq 8(%esi),%mm4
2246
call _sse_AES_decrypt_compact
2247
movl 28(%esp),%esp
2248
movl 24(%esp),%esi
2249
movq %mm0,(%esi)
2250
movq %mm4,8(%esi)
2251
emms
2252
popl %edi
2253
popl %esi
2254
popl %ebx
2255
popl %ebp
2256
ret
2257
.align 16
2258
.L011x86:
2259
movl %ebp,24(%esp)
2260
movl (%esi),%eax
2261
movl 4(%esi),%ebx
2262
movl 8(%esi),%ecx
2263
movl 12(%esi),%edx
2264
call _x86_AES_decrypt_compact
2265
movl 28(%esp),%esp
2266
movl 24(%esp),%esi
2267
movl %eax,(%esi)
2268
movl %ebx,4(%esi)
2269
movl %ecx,8(%esi)
2270
movl %edx,12(%esi)
2271
popl %edi
2272
popl %esi
2273
popl %ebx
2274
popl %ebp
2275
ret
2276
.size AES_decrypt,.-.L_AES_decrypt_begin
2277
.globl AES_cbc_encrypt
2278
.type AES_cbc_encrypt,@function
2279
.align 16
2280
AES_cbc_encrypt:
2281
.L_AES_cbc_encrypt_begin:
2282
#ifdef __CET__
2283
2284
.byte 243,15,30,251
2285
#endif
2286
2287
pushl %ebp
2288
pushl %ebx
2289
pushl %esi
2290
pushl %edi
2291
movl 28(%esp),%ecx
2292
cmpl $0,%ecx
2293
je .L012drop_out
2294
call .L013pic_point
2295
.L013pic_point:
2296
popl %ebp
2297
leal OPENSSL_ia32cap_P-.L013pic_point(%ebp),%eax
2298
cmpl $0,40(%esp)
2299
leal .LAES_Te-.L013pic_point(%ebp),%ebp
2300
jne .L014picked_te
2301
leal .LAES_Td-.LAES_Te(%ebp),%ebp
2302
.L014picked_te:
2303
pushfl
2304
cld
2305
cmpl $512,%ecx
2306
jb .L015slow_way
2307
testl $15,%ecx
2308
jnz .L015slow_way
2309
btl $28,(%eax)
2310
jc .L015slow_way
2311
leal -324(%esp),%esi
2312
andl $-64,%esi
2313
movl %ebp,%eax
2314
leal 2304(%ebp),%ebx
2315
movl %esi,%edx
2316
andl $4095,%eax
2317
andl $4095,%ebx
2318
andl $4095,%edx
2319
cmpl %ebx,%edx
2320
jb .L016tbl_break_out
2321
subl %ebx,%edx
2322
subl %edx,%esi
2323
jmp .L017tbl_ok
2324
.align 4
2325
.L016tbl_break_out:
2326
subl %eax,%edx
2327
andl $4095,%edx
2328
addl $384,%edx
2329
subl %edx,%esi
2330
.align 4
2331
.L017tbl_ok:
2332
leal 24(%esp),%edx
2333
xchgl %esi,%esp
2334
addl $4,%esp
2335
movl %ebp,24(%esp)
2336
movl %esi,28(%esp)
2337
movl (%edx),%eax
2338
movl 4(%edx),%ebx
2339
movl 12(%edx),%edi
2340
movl 16(%edx),%esi
2341
movl 20(%edx),%edx
2342
movl %eax,32(%esp)
2343
movl %ebx,36(%esp)
2344
movl %ecx,40(%esp)
2345
movl %edi,44(%esp)
2346
movl %esi,48(%esp)
2347
movl $0,316(%esp)
2348
movl %edi,%ebx
2349
movl $61,%ecx
2350
subl %ebp,%ebx
2351
movl %edi,%esi
2352
andl $4095,%ebx
2353
leal 76(%esp),%edi
2354
cmpl $2304,%ebx
2355
jb .L018do_copy
2356
cmpl $3852,%ebx
2357
jb .L019skip_copy
2358
.align 4
2359
.L018do_copy:
2360
movl %edi,44(%esp)
2361
.long 2784229001
2362
.L019skip_copy:
2363
movl $16,%edi
2364
.align 4
2365
.L020prefetch_tbl:
2366
movl (%ebp),%eax
2367
movl 32(%ebp),%ebx
2368
movl 64(%ebp),%ecx
2369
movl 96(%ebp),%esi
2370
leal 128(%ebp),%ebp
2371
subl $1,%edi
2372
jnz .L020prefetch_tbl
2373
subl $2048,%ebp
2374
movl 32(%esp),%esi
2375
movl 48(%esp),%edi
2376
cmpl $0,%edx
2377
je .L021fast_decrypt
2378
movl (%edi),%eax
2379
movl 4(%edi),%ebx
2380
.align 16
2381
.L022fast_enc_loop:
2382
movl 8(%edi),%ecx
2383
movl 12(%edi),%edx
2384
xorl (%esi),%eax
2385
xorl 4(%esi),%ebx
2386
xorl 8(%esi),%ecx
2387
xorl 12(%esi),%edx
2388
movl 44(%esp),%edi
2389
call _x86_AES_encrypt
2390
movl 32(%esp),%esi
2391
movl 36(%esp),%edi
2392
movl %eax,(%edi)
2393
movl %ebx,4(%edi)
2394
movl %ecx,8(%edi)
2395
movl %edx,12(%edi)
2396
leal 16(%esi),%esi
2397
movl 40(%esp),%ecx
2398
movl %esi,32(%esp)
2399
leal 16(%edi),%edx
2400
movl %edx,36(%esp)
2401
subl $16,%ecx
2402
movl %ecx,40(%esp)
2403
jnz .L022fast_enc_loop
2404
movl 48(%esp),%esi
2405
movl 8(%edi),%ecx
2406
movl 12(%edi),%edx
2407
movl %eax,(%esi)
2408
movl %ebx,4(%esi)
2409
movl %ecx,8(%esi)
2410
movl %edx,12(%esi)
2411
cmpl $0,316(%esp)
2412
movl 44(%esp),%edi
2413
je .L023skip_ezero
2414
movl $60,%ecx
2415
xorl %eax,%eax
2416
.align 4
2417
.long 2884892297
2418
.L023skip_ezero:
2419
movl 28(%esp),%esp
2420
popfl
2421
.L012drop_out:
2422
popl %edi
2423
popl %esi
2424
popl %ebx
2425
popl %ebp
2426
ret
2427
pushfl
2428
.align 16
2429
.L021fast_decrypt:
2430
cmpl 36(%esp),%esi
2431
je .L024fast_dec_in_place
2432
movl %edi,52(%esp)
2433
.align 4
2434
.align 16
2435
.L025fast_dec_loop:
2436
movl (%esi),%eax
2437
movl 4(%esi),%ebx
2438
movl 8(%esi),%ecx
2439
movl 12(%esi),%edx
2440
movl 44(%esp),%edi
2441
call _x86_AES_decrypt
2442
movl 52(%esp),%edi
2443
movl 40(%esp),%esi
2444
xorl (%edi),%eax
2445
xorl 4(%edi),%ebx
2446
xorl 8(%edi),%ecx
2447
xorl 12(%edi),%edx
2448
movl 36(%esp),%edi
2449
movl 32(%esp),%esi
2450
movl %eax,(%edi)
2451
movl %ebx,4(%edi)
2452
movl %ecx,8(%edi)
2453
movl %edx,12(%edi)
2454
movl 40(%esp),%ecx
2455
movl %esi,52(%esp)
2456
leal 16(%esi),%esi
2457
movl %esi,32(%esp)
2458
leal 16(%edi),%edi
2459
movl %edi,36(%esp)
2460
subl $16,%ecx
2461
movl %ecx,40(%esp)
2462
jnz .L025fast_dec_loop
2463
movl 52(%esp),%edi
2464
movl 48(%esp),%esi
2465
movl (%edi),%eax
2466
movl 4(%edi),%ebx
2467
movl 8(%edi),%ecx
2468
movl 12(%edi),%edx
2469
movl %eax,(%esi)
2470
movl %ebx,4(%esi)
2471
movl %ecx,8(%esi)
2472
movl %edx,12(%esi)
2473
jmp .L026fast_dec_out
2474
.align 16
2475
.L024fast_dec_in_place:
2476
.L027fast_dec_in_place_loop:
2477
movl (%esi),%eax
2478
movl 4(%esi),%ebx
2479
movl 8(%esi),%ecx
2480
movl 12(%esi),%edx
2481
leal 60(%esp),%edi
2482
movl %eax,(%edi)
2483
movl %ebx,4(%edi)
2484
movl %ecx,8(%edi)
2485
movl %edx,12(%edi)
2486
movl 44(%esp),%edi
2487
call _x86_AES_decrypt
2488
movl 48(%esp),%edi
2489
movl 36(%esp),%esi
2490
xorl (%edi),%eax
2491
xorl 4(%edi),%ebx
2492
xorl 8(%edi),%ecx
2493
xorl 12(%edi),%edx
2494
movl %eax,(%esi)
2495
movl %ebx,4(%esi)
2496
movl %ecx,8(%esi)
2497
movl %edx,12(%esi)
2498
leal 16(%esi),%esi
2499
movl %esi,36(%esp)
2500
leal 60(%esp),%esi
2501
movl (%esi),%eax
2502
movl 4(%esi),%ebx
2503
movl 8(%esi),%ecx
2504
movl 12(%esi),%edx
2505
movl %eax,(%edi)
2506
movl %ebx,4(%edi)
2507
movl %ecx,8(%edi)
2508
movl %edx,12(%edi)
2509
movl 32(%esp),%esi
2510
movl 40(%esp),%ecx
2511
leal 16(%esi),%esi
2512
movl %esi,32(%esp)
2513
subl $16,%ecx
2514
movl %ecx,40(%esp)
2515
jnz .L027fast_dec_in_place_loop
2516
.align 4
2517
.L026fast_dec_out:
2518
cmpl $0,316(%esp)
2519
movl 44(%esp),%edi
2520
je .L028skip_dzero
2521
movl $60,%ecx
2522
xorl %eax,%eax
2523
.align 4
2524
.long 2884892297
2525
.L028skip_dzero:
2526
movl 28(%esp),%esp
2527
popfl
2528
popl %edi
2529
popl %esi
2530
popl %ebx
2531
popl %ebp
2532
ret
2533
pushfl
2534
.align 16
2535
.L015slow_way:
2536
movl (%eax),%eax
2537
movl 36(%esp),%edi
2538
leal -80(%esp),%esi
2539
andl $-64,%esi
2540
leal -143(%edi),%ebx
2541
subl %esi,%ebx
2542
negl %ebx
2543
andl $960,%ebx
2544
subl %ebx,%esi
2545
leal 768(%esi),%ebx
2546
subl %ebp,%ebx
2547
andl $768,%ebx
2548
leal 2176(%ebp,%ebx,1),%ebp
2549
leal 24(%esp),%edx
2550
xchgl %esi,%esp
2551
addl $4,%esp
2552
movl %ebp,24(%esp)
2553
movl %esi,28(%esp)
2554
movl %eax,52(%esp)
2555
movl (%edx),%eax
2556
movl 4(%edx),%ebx
2557
movl 16(%edx),%esi
2558
movl 20(%edx),%edx
2559
movl %eax,32(%esp)
2560
movl %ebx,36(%esp)
2561
movl %ecx,40(%esp)
2562
movl %edi,44(%esp)
2563
movl %esi,48(%esp)
2564
movl %esi,%edi
2565
movl %eax,%esi
2566
cmpl $0,%edx
2567
je .L029slow_decrypt
2568
cmpl $16,%ecx
2569
movl %ebx,%edx
2570
jb .L030slow_enc_tail
2571
btl $25,52(%esp)
2572
jnc .L031slow_enc_x86
2573
movq (%edi),%mm0
2574
movq 8(%edi),%mm4
2575
.align 16
2576
.L032slow_enc_loop_sse:
2577
pxor (%esi),%mm0
2578
pxor 8(%esi),%mm4
2579
movl 44(%esp),%edi
2580
call _sse_AES_encrypt_compact
2581
movl 32(%esp),%esi
2582
movl 36(%esp),%edi
2583
movl 40(%esp),%ecx
2584
movq %mm0,(%edi)
2585
movq %mm4,8(%edi)
2586
leal 16(%esi),%esi
2587
movl %esi,32(%esp)
2588
leal 16(%edi),%edx
2589
movl %edx,36(%esp)
2590
subl $16,%ecx
2591
cmpl $16,%ecx
2592
movl %ecx,40(%esp)
2593
jae .L032slow_enc_loop_sse
2594
testl $15,%ecx
2595
jnz .L030slow_enc_tail
2596
movl 48(%esp),%esi
2597
movq %mm0,(%esi)
2598
movq %mm4,8(%esi)
2599
emms
2600
movl 28(%esp),%esp
2601
popfl
2602
popl %edi
2603
popl %esi
2604
popl %ebx
2605
popl %ebp
2606
ret
2607
pushfl
2608
.align 16
2609
.L031slow_enc_x86:
2610
movl (%edi),%eax
2611
movl 4(%edi),%ebx
2612
.align 4
2613
.L033slow_enc_loop_x86:
2614
movl 8(%edi),%ecx
2615
movl 12(%edi),%edx
2616
xorl (%esi),%eax
2617
xorl 4(%esi),%ebx
2618
xorl 8(%esi),%ecx
2619
xorl 12(%esi),%edx
2620
movl 44(%esp),%edi
2621
call _x86_AES_encrypt_compact
2622
movl 32(%esp),%esi
2623
movl 36(%esp),%edi
2624
movl %eax,(%edi)
2625
movl %ebx,4(%edi)
2626
movl %ecx,8(%edi)
2627
movl %edx,12(%edi)
2628
movl 40(%esp),%ecx
2629
leal 16(%esi),%esi
2630
movl %esi,32(%esp)
2631
leal 16(%edi),%edx
2632
movl %edx,36(%esp)
2633
subl $16,%ecx
2634
cmpl $16,%ecx
2635
movl %ecx,40(%esp)
2636
jae .L033slow_enc_loop_x86
2637
testl $15,%ecx
2638
jnz .L030slow_enc_tail
2639
movl 48(%esp),%esi
2640
movl 8(%edi),%ecx
2641
movl 12(%edi),%edx
2642
movl %eax,(%esi)
2643
movl %ebx,4(%esi)
2644
movl %ecx,8(%esi)
2645
movl %edx,12(%esi)
2646
movl 28(%esp),%esp
2647
popfl
2648
popl %edi
2649
popl %esi
2650
popl %ebx
2651
popl %ebp
2652
ret
2653
pushfl
2654
.align 16
2655
.L030slow_enc_tail:
2656
emms
2657
movl %edx,%edi
2658
movl $16,%ebx
2659
subl %ecx,%ebx
2660
cmpl %esi,%edi
2661
je .L034enc_in_place
2662
.align 4
2663
.long 2767451785
2664
jmp .L035enc_skip_in_place
2665
.L034enc_in_place:
2666
leal (%edi,%ecx,1),%edi
2667
.L035enc_skip_in_place:
2668
movl %ebx,%ecx
2669
xorl %eax,%eax
2670
.align 4
2671
.long 2868115081
2672
movl 48(%esp),%edi
2673
movl %edx,%esi
2674
movl (%edi),%eax
2675
movl 4(%edi),%ebx
2676
movl $16,40(%esp)
2677
jmp .L033slow_enc_loop_x86
2678
.align 16
2679
.L029slow_decrypt:
2680
btl $25,52(%esp)
2681
jnc .L036slow_dec_loop_x86
2682
.align 4
2683
.L037slow_dec_loop_sse:
2684
movq (%esi),%mm0
2685
movq 8(%esi),%mm4
2686
movl 44(%esp),%edi
2687
call _sse_AES_decrypt_compact
2688
movl 32(%esp),%esi
2689
leal 60(%esp),%eax
2690
movl 36(%esp),%ebx
2691
movl 40(%esp),%ecx
2692
movl 48(%esp),%edi
2693
movq (%esi),%mm1
2694
movq 8(%esi),%mm5
2695
pxor (%edi),%mm0
2696
pxor 8(%edi),%mm4
2697
movq %mm1,(%edi)
2698
movq %mm5,8(%edi)
2699
subl $16,%ecx
2700
jc .L038slow_dec_partial_sse
2701
movq %mm0,(%ebx)
2702
movq %mm4,8(%ebx)
2703
leal 16(%ebx),%ebx
2704
movl %ebx,36(%esp)
2705
leal 16(%esi),%esi
2706
movl %esi,32(%esp)
2707
movl %ecx,40(%esp)
2708
jnz .L037slow_dec_loop_sse
2709
emms
2710
movl 28(%esp),%esp
2711
popfl
2712
popl %edi
2713
popl %esi
2714
popl %ebx
2715
popl %ebp
2716
ret
2717
pushfl
2718
.align 16
2719
.L038slow_dec_partial_sse:
2720
movq %mm0,(%eax)
2721
movq %mm4,8(%eax)
2722
emms
2723
addl $16,%ecx
2724
movl %ebx,%edi
2725
movl %eax,%esi
2726
.align 4
2727
.long 2767451785
2728
movl 28(%esp),%esp
2729
popfl
2730
popl %edi
2731
popl %esi
2732
popl %ebx
2733
popl %ebp
2734
ret
2735
pushfl
2736
.align 16
2737
.L036slow_dec_loop_x86:
2738
movl (%esi),%eax
2739
movl 4(%esi),%ebx
2740
movl 8(%esi),%ecx
2741
movl 12(%esi),%edx
2742
leal 60(%esp),%edi
2743
movl %eax,(%edi)
2744
movl %ebx,4(%edi)
2745
movl %ecx,8(%edi)
2746
movl %edx,12(%edi)
2747
movl 44(%esp),%edi
2748
call _x86_AES_decrypt_compact
2749
movl 48(%esp),%edi
2750
movl 40(%esp),%esi
2751
xorl (%edi),%eax
2752
xorl 4(%edi),%ebx
2753
xorl 8(%edi),%ecx
2754
xorl 12(%edi),%edx
2755
subl $16,%esi
2756
jc .L039slow_dec_partial_x86
2757
movl %esi,40(%esp)
2758
movl 36(%esp),%esi
2759
movl %eax,(%esi)
2760
movl %ebx,4(%esi)
2761
movl %ecx,8(%esi)
2762
movl %edx,12(%esi)
2763
leal 16(%esi),%esi
2764
movl %esi,36(%esp)
2765
leal 60(%esp),%esi
2766
movl (%esi),%eax
2767
movl 4(%esi),%ebx
2768
movl 8(%esi),%ecx
2769
movl 12(%esi),%edx
2770
movl %eax,(%edi)
2771
movl %ebx,4(%edi)
2772
movl %ecx,8(%edi)
2773
movl %edx,12(%edi)
2774
movl 32(%esp),%esi
2775
leal 16(%esi),%esi
2776
movl %esi,32(%esp)
2777
jnz .L036slow_dec_loop_x86
2778
movl 28(%esp),%esp
2779
popfl
2780
popl %edi
2781
popl %esi
2782
popl %ebx
2783
popl %ebp
2784
ret
2785
pushfl
2786
.align 16
2787
.L039slow_dec_partial_x86:
2788
leal 60(%esp),%esi
2789
movl %eax,(%esi)
2790
movl %ebx,4(%esi)
2791
movl %ecx,8(%esi)
2792
movl %edx,12(%esi)
2793
movl 32(%esp),%esi
2794
movl (%esi),%eax
2795
movl 4(%esi),%ebx
2796
movl 8(%esi),%ecx
2797
movl 12(%esi),%edx
2798
movl %eax,(%edi)
2799
movl %ebx,4(%edi)
2800
movl %ecx,8(%edi)
2801
movl %edx,12(%edi)
2802
movl 40(%esp),%ecx
2803
movl 36(%esp),%edi
2804
leal 60(%esp),%esi
2805
.align 4
2806
.long 2767451785
2807
movl 28(%esp),%esp
2808
popfl
2809
popl %edi
2810
popl %esi
2811
popl %ebx
2812
popl %ebp
2813
ret
2814
.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
2815
.type _x86_AES_set_encrypt_key,@function
2816
.align 16
2817
_x86_AES_set_encrypt_key:
2818
#ifdef __CET__
2819
2820
.byte 243,15,30,251
2821
#endif
2822
2823
pushl %ebp
2824
pushl %ebx
2825
pushl %esi
2826
pushl %edi
2827
movl 24(%esp),%esi
2828
movl 32(%esp),%edi
2829
testl $-1,%esi
2830
jz .L040badpointer
2831
testl $-1,%edi
2832
jz .L040badpointer
2833
call .L041pic_point
2834
.L041pic_point:
2835
popl %ebp
2836
leal .LAES_Te-.L041pic_point(%ebp),%ebp
2837
leal 2176(%ebp),%ebp
2838
movl -128(%ebp),%eax
2839
movl -96(%ebp),%ebx
2840
movl -64(%ebp),%ecx
2841
movl -32(%ebp),%edx
2842
movl (%ebp),%eax
2843
movl 32(%ebp),%ebx
2844
movl 64(%ebp),%ecx
2845
movl 96(%ebp),%edx
2846
movl 28(%esp),%ecx
2847
cmpl $128,%ecx
2848
je .L04210rounds
2849
cmpl $192,%ecx
2850
je .L04312rounds
2851
cmpl $256,%ecx
2852
je .L04414rounds
2853
movl $-2,%eax
2854
jmp .L045exit
2855
.L04210rounds:
2856
movl (%esi),%eax
2857
movl 4(%esi),%ebx
2858
movl 8(%esi),%ecx
2859
movl 12(%esi),%edx
2860
movl %eax,(%edi)
2861
movl %ebx,4(%edi)
2862
movl %ecx,8(%edi)
2863
movl %edx,12(%edi)
2864
xorl %ecx,%ecx
2865
jmp .L04610shortcut
2866
.align 4
2867
.L04710loop:
2868
movl (%edi),%eax
2869
movl 12(%edi),%edx
2870
.L04610shortcut:
2871
movzbl %dl,%esi
2872
movzbl -128(%ebp,%esi,1),%ebx
2873
movzbl %dh,%esi
2874
shll $24,%ebx
2875
xorl %ebx,%eax
2876
movzbl -128(%ebp,%esi,1),%ebx
2877
shrl $16,%edx
2878
movzbl %dl,%esi
2879
xorl %ebx,%eax
2880
movzbl -128(%ebp,%esi,1),%ebx
2881
movzbl %dh,%esi
2882
shll $8,%ebx
2883
xorl %ebx,%eax
2884
movzbl -128(%ebp,%esi,1),%ebx
2885
shll $16,%ebx
2886
xorl %ebx,%eax
2887
xorl 896(%ebp,%ecx,4),%eax
2888
movl %eax,16(%edi)
2889
xorl 4(%edi),%eax
2890
movl %eax,20(%edi)
2891
xorl 8(%edi),%eax
2892
movl %eax,24(%edi)
2893
xorl 12(%edi),%eax
2894
movl %eax,28(%edi)
2895
incl %ecx
2896
addl $16,%edi
2897
cmpl $10,%ecx
2898
jl .L04710loop
2899
movl $10,80(%edi)
2900
xorl %eax,%eax
2901
jmp .L045exit
2902
.L04312rounds:
2903
movl (%esi),%eax
2904
movl 4(%esi),%ebx
2905
movl 8(%esi),%ecx
2906
movl 12(%esi),%edx
2907
movl %eax,(%edi)
2908
movl %ebx,4(%edi)
2909
movl %ecx,8(%edi)
2910
movl %edx,12(%edi)
2911
movl 16(%esi),%ecx
2912
movl 20(%esi),%edx
2913
movl %ecx,16(%edi)
2914
movl %edx,20(%edi)
2915
xorl %ecx,%ecx
2916
jmp .L04812shortcut
2917
.align 4
2918
.L04912loop:
2919
movl (%edi),%eax
2920
movl 20(%edi),%edx
2921
.L04812shortcut:
2922
movzbl %dl,%esi
2923
movzbl -128(%ebp,%esi,1),%ebx
2924
movzbl %dh,%esi
2925
shll $24,%ebx
2926
xorl %ebx,%eax
2927
movzbl -128(%ebp,%esi,1),%ebx
2928
shrl $16,%edx
2929
movzbl %dl,%esi
2930
xorl %ebx,%eax
2931
movzbl -128(%ebp,%esi,1),%ebx
2932
movzbl %dh,%esi
2933
shll $8,%ebx
2934
xorl %ebx,%eax
2935
movzbl -128(%ebp,%esi,1),%ebx
2936
shll $16,%ebx
2937
xorl %ebx,%eax
2938
xorl 896(%ebp,%ecx,4),%eax
2939
movl %eax,24(%edi)
2940
xorl 4(%edi),%eax
2941
movl %eax,28(%edi)
2942
xorl 8(%edi),%eax
2943
movl %eax,32(%edi)
2944
xorl 12(%edi),%eax
2945
movl %eax,36(%edi)
2946
cmpl $7,%ecx
2947
je .L05012break
2948
incl %ecx
2949
xorl 16(%edi),%eax
2950
movl %eax,40(%edi)
2951
xorl 20(%edi),%eax
2952
movl %eax,44(%edi)
2953
addl $24,%edi
2954
jmp .L04912loop
2955
.L05012break:
2956
movl $12,72(%edi)
2957
xorl %eax,%eax
2958
jmp .L045exit
2959
.L04414rounds:
2960
movl (%esi),%eax
2961
movl 4(%esi),%ebx
2962
movl 8(%esi),%ecx
2963
movl 12(%esi),%edx
2964
movl %eax,(%edi)
2965
movl %ebx,4(%edi)
2966
movl %ecx,8(%edi)
2967
movl %edx,12(%edi)
2968
movl 16(%esi),%eax
2969
movl 20(%esi),%ebx
2970
movl 24(%esi),%ecx
2971
movl 28(%esi),%edx
2972
movl %eax,16(%edi)
2973
movl %ebx,20(%edi)
2974
movl %ecx,24(%edi)
2975
movl %edx,28(%edi)
2976
xorl %ecx,%ecx
2977
jmp .L05114shortcut
2978
.align 4
2979
.L05214loop:
2980
movl 28(%edi),%edx
2981
.L05114shortcut:
2982
movl (%edi),%eax
2983
movzbl %dl,%esi
2984
movzbl -128(%ebp,%esi,1),%ebx
2985
movzbl %dh,%esi
2986
shll $24,%ebx
2987
xorl %ebx,%eax
2988
movzbl -128(%ebp,%esi,1),%ebx
2989
shrl $16,%edx
2990
movzbl %dl,%esi
2991
xorl %ebx,%eax
2992
movzbl -128(%ebp,%esi,1),%ebx
2993
movzbl %dh,%esi
2994
shll $8,%ebx
2995
xorl %ebx,%eax
2996
movzbl -128(%ebp,%esi,1),%ebx
2997
shll $16,%ebx
2998
xorl %ebx,%eax
2999
xorl 896(%ebp,%ecx,4),%eax
3000
movl %eax,32(%edi)
3001
xorl 4(%edi),%eax
3002
movl %eax,36(%edi)
3003
xorl 8(%edi),%eax
3004
movl %eax,40(%edi)
3005
xorl 12(%edi),%eax
3006
movl %eax,44(%edi)
3007
cmpl $6,%ecx
3008
je .L05314break
3009
incl %ecx
3010
movl %eax,%edx
3011
movl 16(%edi),%eax
3012
movzbl %dl,%esi
3013
movzbl -128(%ebp,%esi,1),%ebx
3014
movzbl %dh,%esi
3015
xorl %ebx,%eax
3016
movzbl -128(%ebp,%esi,1),%ebx
3017
shrl $16,%edx
3018
shll $8,%ebx
3019
movzbl %dl,%esi
3020
xorl %ebx,%eax
3021
movzbl -128(%ebp,%esi,1),%ebx
3022
movzbl %dh,%esi
3023
shll $16,%ebx
3024
xorl %ebx,%eax
3025
movzbl -128(%ebp,%esi,1),%ebx
3026
shll $24,%ebx
3027
xorl %ebx,%eax
3028
movl %eax,48(%edi)
3029
xorl 20(%edi),%eax
3030
movl %eax,52(%edi)
3031
xorl 24(%edi),%eax
3032
movl %eax,56(%edi)
3033
xorl 28(%edi),%eax
3034
movl %eax,60(%edi)
3035
addl $32,%edi
3036
jmp .L05214loop
3037
.L05314break:
3038
movl $14,48(%edi)
3039
xorl %eax,%eax
3040
jmp .L045exit
3041
.L040badpointer:
3042
movl $-1,%eax
3043
.L045exit:
3044
popl %edi
3045
popl %esi
3046
popl %ebx
3047
popl %ebp
3048
ret
3049
.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
3050
.globl AES_set_encrypt_key
3051
.type AES_set_encrypt_key,@function
3052
.align 16
3053
AES_set_encrypt_key:
3054
.L_AES_set_encrypt_key_begin:
3055
#ifdef __CET__
3056
3057
.byte 243,15,30,251
3058
#endif
3059
3060
call _x86_AES_set_encrypt_key
3061
ret
3062
.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin
3063
.globl AES_set_decrypt_key
3064
.type AES_set_decrypt_key,@function
3065
.align 16
3066
AES_set_decrypt_key:
3067
.L_AES_set_decrypt_key_begin:
3068
#ifdef __CET__
3069
3070
.byte 243,15,30,251
3071
#endif
3072
3073
call _x86_AES_set_encrypt_key
3074
cmpl $0,%eax
3075
je .L054proceed
3076
ret
3077
.L054proceed:
3078
pushl %ebp
3079
pushl %ebx
3080
pushl %esi
3081
pushl %edi
3082
movl 28(%esp),%esi
3083
movl 240(%esi),%ecx
3084
leal (,%ecx,4),%ecx
3085
leal (%esi,%ecx,4),%edi
3086
.align 4
3087
.L055invert:
3088
movl (%esi),%eax
3089
movl 4(%esi),%ebx
3090
movl (%edi),%ecx
3091
movl 4(%edi),%edx
3092
movl %eax,(%edi)
3093
movl %ebx,4(%edi)
3094
movl %ecx,(%esi)
3095
movl %edx,4(%esi)
3096
movl 8(%esi),%eax
3097
movl 12(%esi),%ebx
3098
movl 8(%edi),%ecx
3099
movl 12(%edi),%edx
3100
movl %eax,8(%edi)
3101
movl %ebx,12(%edi)
3102
movl %ecx,8(%esi)
3103
movl %edx,12(%esi)
3104
addl $16,%esi
3105
subl $16,%edi
3106
cmpl %edi,%esi
3107
jne .L055invert
3108
movl 28(%esp),%edi
3109
movl 240(%edi),%esi
3110
leal -2(%esi,%esi,1),%esi
3111
leal (%edi,%esi,8),%esi
3112
movl %esi,28(%esp)
3113
movl 16(%edi),%eax
3114
.align 4
3115
.L056permute:
3116
addl $16,%edi
3117
movl $2155905152,%ebp
3118
andl %eax,%ebp
3119
leal (%eax,%eax,1),%ebx
3120
movl %ebp,%esi
3121
shrl $7,%ebp
3122
subl %ebp,%esi
3123
andl $4278124286,%ebx
3124
andl $454761243,%esi
3125
xorl %esi,%ebx
3126
movl $2155905152,%ebp
3127
andl %ebx,%ebp
3128
leal (%ebx,%ebx,1),%ecx
3129
movl %ebp,%esi
3130
shrl $7,%ebp
3131
subl %ebp,%esi
3132
andl $4278124286,%ecx
3133
andl $454761243,%esi
3134
xorl %eax,%ebx
3135
xorl %esi,%ecx
3136
movl $2155905152,%ebp
3137
andl %ecx,%ebp
3138
leal (%ecx,%ecx,1),%edx
3139
movl %ebp,%esi
3140
shrl $7,%ebp
3141
xorl %eax,%ecx
3142
subl %ebp,%esi
3143
andl $4278124286,%edx
3144
andl $454761243,%esi
3145
roll $8,%eax
3146
xorl %esi,%edx
3147
movl 4(%edi),%ebp
3148
xorl %ebx,%eax
3149
xorl %edx,%ebx
3150
xorl %ecx,%eax
3151
roll $24,%ebx
3152
xorl %edx,%ecx
3153
xorl %edx,%eax
3154
roll $16,%ecx
3155
xorl %ebx,%eax
3156
roll $8,%edx
3157
xorl %ecx,%eax
3158
movl %ebp,%ebx
3159
xorl %edx,%eax
3160
movl %eax,(%edi)
3161
movl $2155905152,%ebp
3162
andl %ebx,%ebp
3163
leal (%ebx,%ebx,1),%ecx
3164
movl %ebp,%esi
3165
shrl $7,%ebp
3166
subl %ebp,%esi
3167
andl $4278124286,%ecx
3168
andl $454761243,%esi
3169
xorl %esi,%ecx
3170
movl $2155905152,%ebp
3171
andl %ecx,%ebp
3172
leal (%ecx,%ecx,1),%edx
3173
movl %ebp,%esi
3174
shrl $7,%ebp
3175
subl %ebp,%esi
3176
andl $4278124286,%edx
3177
andl $454761243,%esi
3178
xorl %ebx,%ecx
3179
xorl %esi,%edx
3180
movl $2155905152,%ebp
3181
andl %edx,%ebp
3182
leal (%edx,%edx,1),%eax
3183
movl %ebp,%esi
3184
shrl $7,%ebp
3185
xorl %ebx,%edx
3186
subl %ebp,%esi
3187
andl $4278124286,%eax
3188
andl $454761243,%esi
3189
roll $8,%ebx
3190
xorl %esi,%eax
3191
movl 8(%edi),%ebp
3192
xorl %ecx,%ebx
3193
xorl %eax,%ecx
3194
xorl %edx,%ebx
3195
roll $24,%ecx
3196
xorl %eax,%edx
3197
xorl %eax,%ebx
3198
roll $16,%edx
3199
xorl %ecx,%ebx
3200
roll $8,%eax
3201
xorl %edx,%ebx
3202
movl %ebp,%ecx
3203
xorl %eax,%ebx
3204
movl %ebx,4(%edi)
3205
movl $2155905152,%ebp
3206
andl %ecx,%ebp
3207
leal (%ecx,%ecx,1),%edx
3208
movl %ebp,%esi
3209
shrl $7,%ebp
3210
subl %ebp,%esi
3211
andl $4278124286,%edx
3212
andl $454761243,%esi
3213
xorl %esi,%edx
3214
movl $2155905152,%ebp
3215
andl %edx,%ebp
3216
leal (%edx,%edx,1),%eax
3217
movl %ebp,%esi
3218
shrl $7,%ebp
3219
subl %ebp,%esi
3220
andl $4278124286,%eax
3221
andl $454761243,%esi
3222
xorl %ecx,%edx
3223
xorl %esi,%eax
3224
movl $2155905152,%ebp
3225
andl %eax,%ebp
3226
leal (%eax,%eax,1),%ebx
3227
movl %ebp,%esi
3228
shrl $7,%ebp
3229
xorl %ecx,%eax
3230
subl %ebp,%esi
3231
andl $4278124286,%ebx
3232
andl $454761243,%esi
3233
roll $8,%ecx
3234
xorl %esi,%ebx
3235
movl 12(%edi),%ebp
3236
xorl %edx,%ecx
3237
xorl %ebx,%edx
3238
xorl %eax,%ecx
3239
roll $24,%edx
3240
xorl %ebx,%eax
3241
xorl %ebx,%ecx
3242
roll $16,%eax
3243
xorl %edx,%ecx
3244
roll $8,%ebx
3245
xorl %eax,%ecx
3246
movl %ebp,%edx
3247
xorl %ebx,%ecx
3248
movl %ecx,8(%edi)
3249
movl $2155905152,%ebp
3250
andl %edx,%ebp
3251
leal (%edx,%edx,1),%eax
3252
movl %ebp,%esi
3253
shrl $7,%ebp
3254
subl %ebp,%esi
3255
andl $4278124286,%eax
3256
andl $454761243,%esi
3257
xorl %esi,%eax
3258
movl $2155905152,%ebp
3259
andl %eax,%ebp
3260
leal (%eax,%eax,1),%ebx
3261
movl %ebp,%esi
3262
shrl $7,%ebp
3263
subl %ebp,%esi
3264
andl $4278124286,%ebx
3265
andl $454761243,%esi
3266
xorl %edx,%eax
3267
xorl %esi,%ebx
3268
movl $2155905152,%ebp
3269
andl %ebx,%ebp
3270
leal (%ebx,%ebx,1),%ecx
3271
movl %ebp,%esi
3272
shrl $7,%ebp
3273
xorl %edx,%ebx
3274
subl %ebp,%esi
3275
andl $4278124286,%ecx
3276
andl $454761243,%esi
3277
roll $8,%edx
3278
xorl %esi,%ecx
3279
movl 16(%edi),%ebp
3280
xorl %eax,%edx
3281
xorl %ecx,%eax
3282
xorl %ebx,%edx
3283
roll $24,%eax
3284
xorl %ecx,%ebx
3285
xorl %ecx,%edx
3286
roll $16,%ebx
3287
xorl %eax,%edx
3288
roll $8,%ecx
3289
xorl %ebx,%edx
3290
movl %ebp,%eax
3291
xorl %ecx,%edx
3292
movl %edx,12(%edi)
3293
cmpl 28(%esp),%edi
3294
jb .L056permute
3295
xorl %eax,%eax
3296
popl %edi
3297
popl %esi
3298
popl %ebx
3299
popl %ebp
3300
ret
3301
.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin
3302
.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3303
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3304
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3305
.comm OPENSSL_ia32cap_P,40,4
3306
3307
.section ".note.gnu.property", "a"
3308
.p2align 2
3309
.long 1f - 0f
3310
.long 4f - 1f
3311
.long 5
3312
0:
3313
.asciz "GNU"
3314
1:
3315
.p2align 2
3316
.long 0xc0000002
3317
.long 3f - 2f
3318
2:
3319
.long 3
3320
3:
3321
.p2align 2
3322
4:
3323
#else
3324
.text
3325
.type _x86_AES_encrypt_compact,@function
3326
.align 16
3327
_x86_AES_encrypt_compact:
3328
#ifdef __CET__
3329
3330
.byte 243,15,30,251
3331
#endif
3332
3333
movl %edi,20(%esp)
3334
xorl (%edi),%eax
3335
xorl 4(%edi),%ebx
3336
xorl 8(%edi),%ecx
3337
xorl 12(%edi),%edx
3338
movl 240(%edi),%esi
3339
leal -2(%esi,%esi,1),%esi
3340
leal (%edi,%esi,8),%esi
3341
movl %esi,24(%esp)
3342
movl -128(%ebp),%edi
3343
movl -96(%ebp),%esi
3344
movl -64(%ebp),%edi
3345
movl -32(%ebp),%esi
3346
movl (%ebp),%edi
3347
movl 32(%ebp),%esi
3348
movl 64(%ebp),%edi
3349
movl 96(%ebp),%esi
3350
.align 16
3351
.L000loop:
3352
movl %eax,%esi
3353
andl $255,%esi
3354
movzbl -128(%ebp,%esi,1),%esi
3355
movzbl %bh,%edi
3356
movzbl -128(%ebp,%edi,1),%edi
3357
shll $8,%edi
3358
xorl %edi,%esi
3359
movl %ecx,%edi
3360
shrl $16,%edi
3361
andl $255,%edi
3362
movzbl -128(%ebp,%edi,1),%edi
3363
shll $16,%edi
3364
xorl %edi,%esi
3365
movl %edx,%edi
3366
shrl $24,%edi
3367
movzbl -128(%ebp,%edi,1),%edi
3368
shll $24,%edi
3369
xorl %edi,%esi
3370
movl %esi,4(%esp)
3371
3372
movl %ebx,%esi
3373
andl $255,%esi
3374
shrl $16,%ebx
3375
movzbl -128(%ebp,%esi,1),%esi
3376
movzbl %ch,%edi
3377
movzbl -128(%ebp,%edi,1),%edi
3378
shll $8,%edi
3379
xorl %edi,%esi
3380
movl %edx,%edi
3381
shrl $16,%edi
3382
andl $255,%edi
3383
movzbl -128(%ebp,%edi,1),%edi
3384
shll $16,%edi
3385
xorl %edi,%esi
3386
movl %eax,%edi
3387
shrl $24,%edi
3388
movzbl -128(%ebp,%edi,1),%edi
3389
shll $24,%edi
3390
xorl %edi,%esi
3391
movl %esi,8(%esp)
3392
3393
movl %ecx,%esi
3394
andl $255,%esi
3395
shrl $24,%ecx
3396
movzbl -128(%ebp,%esi,1),%esi
3397
movzbl %dh,%edi
3398
movzbl -128(%ebp,%edi,1),%edi
3399
shll $8,%edi
3400
xorl %edi,%esi
3401
movl %eax,%edi
3402
shrl $16,%edi
3403
andl $255,%edx
3404
andl $255,%edi
3405
movzbl -128(%ebp,%edi,1),%edi
3406
shll $16,%edi
3407
xorl %edi,%esi
3408
movzbl %bh,%edi
3409
movzbl -128(%ebp,%edi,1),%edi
3410
shll $24,%edi
3411
xorl %edi,%esi
3412
3413
andl $255,%edx
3414
movzbl -128(%ebp,%edx,1),%edx
3415
movzbl %ah,%eax
3416
movzbl -128(%ebp,%eax,1),%eax
3417
shll $8,%eax
3418
xorl %eax,%edx
3419
movl 4(%esp),%eax
3420
andl $255,%ebx
3421
movzbl -128(%ebp,%ebx,1),%ebx
3422
shll $16,%ebx
3423
xorl %ebx,%edx
3424
movl 8(%esp),%ebx
3425
movzbl -128(%ebp,%ecx,1),%ecx
3426
shll $24,%ecx
3427
xorl %ecx,%edx
3428
movl %esi,%ecx
3429
3430
movl $2155905152,%ebp
3431
andl %ecx,%ebp
3432
leal (%ecx,%ecx,1),%edi
3433
movl %ebp,%esi
3434
shrl $7,%ebp
3435
andl $4278124286,%edi
3436
subl %ebp,%esi
3437
movl %ecx,%ebp
3438
andl $454761243,%esi
3439
rorl $16,%ebp
3440
xorl %edi,%esi
3441
movl %ecx,%edi
3442
xorl %esi,%ecx
3443
rorl $24,%edi
3444
xorl %ebp,%esi
3445
roll $24,%ecx
3446
xorl %edi,%esi
3447
movl $2155905152,%ebp
3448
xorl %esi,%ecx
3449
andl %edx,%ebp
3450
leal (%edx,%edx,1),%edi
3451
movl %ebp,%esi
3452
shrl $7,%ebp
3453
andl $4278124286,%edi
3454
subl %ebp,%esi
3455
movl %edx,%ebp
3456
andl $454761243,%esi
3457
rorl $16,%ebp
3458
xorl %edi,%esi
3459
movl %edx,%edi
3460
xorl %esi,%edx
3461
rorl $24,%edi
3462
xorl %ebp,%esi
3463
roll $24,%edx
3464
xorl %edi,%esi
3465
movl $2155905152,%ebp
3466
xorl %esi,%edx
3467
andl %eax,%ebp
3468
leal (%eax,%eax,1),%edi
3469
movl %ebp,%esi
3470
shrl $7,%ebp
3471
andl $4278124286,%edi
3472
subl %ebp,%esi
3473
movl %eax,%ebp
3474
andl $454761243,%esi
3475
rorl $16,%ebp
3476
xorl %edi,%esi
3477
movl %eax,%edi
3478
xorl %esi,%eax
3479
rorl $24,%edi
3480
xorl %ebp,%esi
3481
roll $24,%eax
3482
xorl %edi,%esi
3483
movl $2155905152,%ebp
3484
xorl %esi,%eax
3485
andl %ebx,%ebp
3486
leal (%ebx,%ebx,1),%edi
3487
movl %ebp,%esi
3488
shrl $7,%ebp
3489
andl $4278124286,%edi
3490
subl %ebp,%esi
3491
movl %ebx,%ebp
3492
andl $454761243,%esi
3493
rorl $16,%ebp
3494
xorl %edi,%esi
3495
movl %ebx,%edi
3496
xorl %esi,%ebx
3497
rorl $24,%edi
3498
xorl %ebp,%esi
3499
roll $24,%ebx
3500
xorl %edi,%esi
3501
xorl %esi,%ebx
3502
movl 20(%esp),%edi
3503
movl 28(%esp),%ebp
3504
addl $16,%edi
3505
xorl (%edi),%eax
3506
xorl 4(%edi),%ebx
3507
xorl 8(%edi),%ecx
3508
xorl 12(%edi),%edx
3509
cmpl 24(%esp),%edi
3510
movl %edi,20(%esp)
3511
jb .L000loop
3512
movl %eax,%esi
3513
andl $255,%esi
3514
movzbl -128(%ebp,%esi,1),%esi
3515
movzbl %bh,%edi
3516
movzbl -128(%ebp,%edi,1),%edi
3517
shll $8,%edi
3518
xorl %edi,%esi
3519
movl %ecx,%edi
3520
shrl $16,%edi
3521
andl $255,%edi
3522
movzbl -128(%ebp,%edi,1),%edi
3523
shll $16,%edi
3524
xorl %edi,%esi
3525
movl %edx,%edi
3526
shrl $24,%edi
3527
movzbl -128(%ebp,%edi,1),%edi
3528
shll $24,%edi
3529
xorl %edi,%esi
3530
movl %esi,4(%esp)
3531
3532
movl %ebx,%esi
3533
andl $255,%esi
3534
shrl $16,%ebx
3535
movzbl -128(%ebp,%esi,1),%esi
3536
movzbl %ch,%edi
3537
movzbl -128(%ebp,%edi,1),%edi
3538
shll $8,%edi
3539
xorl %edi,%esi
3540
movl %edx,%edi
3541
shrl $16,%edi
3542
andl $255,%edi
3543
movzbl -128(%ebp,%edi,1),%edi
3544
shll $16,%edi
3545
xorl %edi,%esi
3546
movl %eax,%edi
3547
shrl $24,%edi
3548
movzbl -128(%ebp,%edi,1),%edi
3549
shll $24,%edi
3550
xorl %edi,%esi
3551
movl %esi,8(%esp)
3552
3553
movl %ecx,%esi
3554
andl $255,%esi
3555
shrl $24,%ecx
3556
movzbl -128(%ebp,%esi,1),%esi
3557
movzbl %dh,%edi
3558
movzbl -128(%ebp,%edi,1),%edi
3559
shll $8,%edi
3560
xorl %edi,%esi
3561
movl %eax,%edi
3562
shrl $16,%edi
3563
andl $255,%edx
3564
andl $255,%edi
3565
movzbl -128(%ebp,%edi,1),%edi
3566
shll $16,%edi
3567
xorl %edi,%esi
3568
movzbl %bh,%edi
3569
movzbl -128(%ebp,%edi,1),%edi
3570
shll $24,%edi
3571
xorl %edi,%esi
3572
3573
movl 20(%esp),%edi
3574
andl $255,%edx
3575
movzbl -128(%ebp,%edx,1),%edx
3576
movzbl %ah,%eax
3577
movzbl -128(%ebp,%eax,1),%eax
3578
shll $8,%eax
3579
xorl %eax,%edx
3580
movl 4(%esp),%eax
3581
andl $255,%ebx
3582
movzbl -128(%ebp,%ebx,1),%ebx
3583
shll $16,%ebx
3584
xorl %ebx,%edx
3585
movl 8(%esp),%ebx
3586
movzbl -128(%ebp,%ecx,1),%ecx
3587
shll $24,%ecx
3588
xorl %ecx,%edx
3589
movl %esi,%ecx
3590
3591
xorl 16(%edi),%eax
3592
xorl 20(%edi),%ebx
3593
xorl 24(%edi),%ecx
3594
xorl 28(%edi),%edx
3595
ret
3596
.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
3597
.type _sse_AES_encrypt_compact,@function
3598
.align 16
3599
_sse_AES_encrypt_compact:
3600
#ifdef __CET__
3601
3602
.byte 243,15,30,251
3603
#endif
3604
3605
pxor (%edi),%mm0
3606
pxor 8(%edi),%mm4
3607
movl 240(%edi),%esi
3608
leal -2(%esi,%esi,1),%esi
3609
leal (%edi,%esi,8),%esi
3610
movl %esi,24(%esp)
3611
movl $454761243,%eax
3612
movl %eax,8(%esp)
3613
movl %eax,12(%esp)
3614
movl -128(%ebp),%eax
3615
movl -96(%ebp),%ebx
3616
movl -64(%ebp),%ecx
3617
movl -32(%ebp),%edx
3618
movl (%ebp),%eax
3619
movl 32(%ebp),%ebx
3620
movl 64(%ebp),%ecx
3621
movl 96(%ebp),%edx
3622
.align 16
3623
.L001loop:
3624
pshufw $8,%mm0,%mm1
3625
pshufw $13,%mm4,%mm5
3626
movd %mm1,%eax
3627
movd %mm5,%ebx
3628
movl %edi,20(%esp)
3629
movzbl %al,%esi
3630
movzbl %ah,%edx
3631
pshufw $13,%mm0,%mm2
3632
movzbl -128(%ebp,%esi,1),%ecx
3633
movzbl %bl,%edi
3634
movzbl -128(%ebp,%edx,1),%edx
3635
shrl $16,%eax
3636
shll $8,%edx
3637
movzbl -128(%ebp,%edi,1),%esi
3638
movzbl %bh,%edi
3639
shll $16,%esi
3640
pshufw $8,%mm4,%mm6
3641
orl %esi,%ecx
3642
movzbl -128(%ebp,%edi,1),%esi
3643
movzbl %ah,%edi
3644
shll $24,%esi
3645
shrl $16,%ebx
3646
orl %esi,%edx
3647
movzbl -128(%ebp,%edi,1),%esi
3648
movzbl %bh,%edi
3649
shll $8,%esi
3650
orl %esi,%ecx
3651
movzbl -128(%ebp,%edi,1),%esi
3652
movzbl %al,%edi
3653
shll $24,%esi
3654
orl %esi,%ecx
3655
movzbl -128(%ebp,%edi,1),%esi
3656
movzbl %bl,%edi
3657
movd %mm2,%eax
3658
movd %ecx,%mm0
3659
movzbl -128(%ebp,%edi,1),%ecx
3660
movzbl %ah,%edi
3661
shll $16,%ecx
3662
movd %mm6,%ebx
3663
orl %esi,%ecx
3664
movzbl -128(%ebp,%edi,1),%esi
3665
movzbl %bh,%edi
3666
shll $24,%esi
3667
orl %esi,%ecx
3668
movzbl -128(%ebp,%edi,1),%esi
3669
movzbl %bl,%edi
3670
shll $8,%esi
3671
shrl $16,%ebx
3672
orl %esi,%ecx
3673
movzbl -128(%ebp,%edi,1),%esi
3674
movzbl %al,%edi
3675
shrl $16,%eax
3676
movd %ecx,%mm1
3677
movzbl -128(%ebp,%edi,1),%ecx
3678
movzbl %ah,%edi
3679
shll $16,%ecx
3680
andl $255,%eax
3681
orl %esi,%ecx
3682
punpckldq %mm1,%mm0
3683
movzbl -128(%ebp,%edi,1),%esi
3684
movzbl %bh,%edi
3685
shll $24,%esi
3686
andl $255,%ebx
3687
movzbl -128(%ebp,%eax,1),%eax
3688
orl %esi,%ecx
3689
shll $16,%eax
3690
movzbl -128(%ebp,%edi,1),%esi
3691
orl %eax,%edx
3692
shll $8,%esi
3693
movzbl -128(%ebp,%ebx,1),%ebx
3694
orl %esi,%ecx
3695
orl %ebx,%edx
3696
movl 20(%esp),%edi
3697
movd %ecx,%mm4
3698
movd %edx,%mm5
3699
punpckldq %mm5,%mm4
3700
addl $16,%edi
3701
cmpl 24(%esp),%edi
3702
ja .L002out
3703
movq 8(%esp),%mm2
3704
pxor %mm3,%mm3
3705
pxor %mm7,%mm7
3706
movq %mm0,%mm1
3707
movq %mm4,%mm5
3708
pcmpgtb %mm0,%mm3
3709
pcmpgtb %mm4,%mm7
3710
pand %mm2,%mm3
3711
pand %mm2,%mm7
3712
pshufw $177,%mm0,%mm2
3713
pshufw $177,%mm4,%mm6
3714
paddb %mm0,%mm0
3715
paddb %mm4,%mm4
3716
pxor %mm3,%mm0
3717
pxor %mm7,%mm4
3718
pshufw $177,%mm2,%mm3
3719
pshufw $177,%mm6,%mm7
3720
pxor %mm0,%mm1
3721
pxor %mm4,%mm5
3722
pxor %mm2,%mm0
3723
pxor %mm6,%mm4
3724
movq %mm3,%mm2
3725
movq %mm7,%mm6
3726
pslld $8,%mm3
3727
pslld $8,%mm7
3728
psrld $24,%mm2
3729
psrld $24,%mm6
3730
pxor %mm3,%mm0
3731
pxor %mm7,%mm4
3732
pxor %mm2,%mm0
3733
pxor %mm6,%mm4
3734
movq %mm1,%mm3
3735
movq %mm5,%mm7
3736
movq (%edi),%mm2
3737
movq 8(%edi),%mm6
3738
psrld $8,%mm1
3739
psrld $8,%mm5
3740
movl -128(%ebp),%eax
3741
pslld $24,%mm3
3742
pslld $24,%mm7
3743
movl -64(%ebp),%ebx
3744
pxor %mm1,%mm0
3745
pxor %mm5,%mm4
3746
movl (%ebp),%ecx
3747
pxor %mm3,%mm0
3748
pxor %mm7,%mm4
3749
movl 64(%ebp),%edx
3750
pxor %mm2,%mm0
3751
pxor %mm6,%mm4
3752
jmp .L001loop
3753
.align 16
3754
.L002out:
3755
pxor (%edi),%mm0
3756
pxor 8(%edi),%mm4
3757
ret
3758
.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
3759
.type _x86_AES_encrypt,@function
3760
.align 16
3761
_x86_AES_encrypt:
3762
#ifdef __CET__
3763
3764
.byte 243,15,30,251
3765
#endif
3766
3767
movl %edi,20(%esp)
3768
xorl (%edi),%eax
3769
xorl 4(%edi),%ebx
3770
xorl 8(%edi),%ecx
3771
xorl 12(%edi),%edx
3772
movl 240(%edi),%esi
3773
leal -2(%esi,%esi,1),%esi
3774
leal (%edi,%esi,8),%esi
3775
movl %esi,24(%esp)
3776
.align 16
3777
.L003loop:
3778
movl %eax,%esi
3779
andl $255,%esi
3780
movl (%ebp,%esi,8),%esi
3781
movzbl %bh,%edi
3782
xorl 3(%ebp,%edi,8),%esi
3783
movl %ecx,%edi
3784
shrl $16,%edi
3785
andl $255,%edi
3786
xorl 2(%ebp,%edi,8),%esi
3787
movl %edx,%edi
3788
shrl $24,%edi
3789
xorl 1(%ebp,%edi,8),%esi
3790
movl %esi,4(%esp)
3791
3792
movl %ebx,%esi
3793
andl $255,%esi
3794
shrl $16,%ebx
3795
movl (%ebp,%esi,8),%esi
3796
movzbl %ch,%edi
3797
xorl 3(%ebp,%edi,8),%esi
3798
movl %edx,%edi
3799
shrl $16,%edi
3800
andl $255,%edi
3801
xorl 2(%ebp,%edi,8),%esi
3802
movl %eax,%edi
3803
shrl $24,%edi
3804
xorl 1(%ebp,%edi,8),%esi
3805
movl %esi,8(%esp)
3806
3807
movl %ecx,%esi
3808
andl $255,%esi
3809
shrl $24,%ecx
3810
movl (%ebp,%esi,8),%esi
3811
movzbl %dh,%edi
3812
xorl 3(%ebp,%edi,8),%esi
3813
movl %eax,%edi
3814
shrl $16,%edi
3815
andl $255,%edx
3816
andl $255,%edi
3817
xorl 2(%ebp,%edi,8),%esi
3818
movzbl %bh,%edi
3819
xorl 1(%ebp,%edi,8),%esi
3820
3821
movl 20(%esp),%edi
3822
movl (%ebp,%edx,8),%edx
3823
movzbl %ah,%eax
3824
xorl 3(%ebp,%eax,8),%edx
3825
movl 4(%esp),%eax
3826
andl $255,%ebx
3827
xorl 2(%ebp,%ebx,8),%edx
3828
movl 8(%esp),%ebx
3829
xorl 1(%ebp,%ecx,8),%edx
3830
movl %esi,%ecx
3831
3832
addl $16,%edi
3833
xorl (%edi),%eax
3834
xorl 4(%edi),%ebx
3835
xorl 8(%edi),%ecx
3836
xorl 12(%edi),%edx
3837
cmpl 24(%esp),%edi
3838
movl %edi,20(%esp)
3839
jb .L003loop
3840
movl %eax,%esi
3841
andl $255,%esi
3842
movl 2(%ebp,%esi,8),%esi
3843
andl $255,%esi
3844
movzbl %bh,%edi
3845
movl (%ebp,%edi,8),%edi
3846
andl $65280,%edi
3847
xorl %edi,%esi
3848
movl %ecx,%edi
3849
shrl $16,%edi
3850
andl $255,%edi
3851
movl (%ebp,%edi,8),%edi
3852
andl $16711680,%edi
3853
xorl %edi,%esi
3854
movl %edx,%edi
3855
shrl $24,%edi
3856
movl 2(%ebp,%edi,8),%edi
3857
andl $4278190080,%edi
3858
xorl %edi,%esi
3859
movl %esi,4(%esp)
3860
movl %ebx,%esi
3861
andl $255,%esi
3862
shrl $16,%ebx
3863
movl 2(%ebp,%esi,8),%esi
3864
andl $255,%esi
3865
movzbl %ch,%edi
3866
movl (%ebp,%edi,8),%edi
3867
andl $65280,%edi
3868
xorl %edi,%esi
3869
movl %edx,%edi
3870
shrl $16,%edi
3871
andl $255,%edi
3872
movl (%ebp,%edi,8),%edi
3873
andl $16711680,%edi
3874
xorl %edi,%esi
3875
movl %eax,%edi
3876
shrl $24,%edi
3877
movl 2(%ebp,%edi,8),%edi
3878
andl $4278190080,%edi
3879
xorl %edi,%esi
3880
movl %esi,8(%esp)
3881
movl %ecx,%esi
3882
andl $255,%esi
3883
shrl $24,%ecx
3884
movl 2(%ebp,%esi,8),%esi
3885
andl $255,%esi
3886
movzbl %dh,%edi
3887
movl (%ebp,%edi,8),%edi
3888
andl $65280,%edi
3889
xorl %edi,%esi
3890
movl %eax,%edi
3891
shrl $16,%edi
3892
andl $255,%edx
3893
andl $255,%edi
3894
movl (%ebp,%edi,8),%edi
3895
andl $16711680,%edi
3896
xorl %edi,%esi
3897
movzbl %bh,%edi
3898
movl 2(%ebp,%edi,8),%edi
3899
andl $4278190080,%edi
3900
xorl %edi,%esi
3901
movl 20(%esp),%edi
3902
andl $255,%edx
3903
movl 2(%ebp,%edx,8),%edx
3904
andl $255,%edx
3905
movzbl %ah,%eax
3906
movl (%ebp,%eax,8),%eax
3907
andl $65280,%eax
3908
xorl %eax,%edx
3909
movl 4(%esp),%eax
3910
andl $255,%ebx
3911
movl (%ebp,%ebx,8),%ebx
3912
andl $16711680,%ebx
3913
xorl %ebx,%edx
3914
movl 8(%esp),%ebx
3915
movl 2(%ebp,%ecx,8),%ecx
3916
andl $4278190080,%ecx
3917
xorl %ecx,%edx
3918
movl %esi,%ecx
3919
addl $16,%edi
3920
xorl (%edi),%eax
3921
xorl 4(%edi),%ebx
3922
xorl 8(%edi),%ecx
3923
xorl 12(%edi),%edx
3924
ret
3925
.align 64
3926
.LAES_Te:
3927
.long 2774754246,2774754246
3928
.long 2222750968,2222750968
3929
.long 2574743534,2574743534
3930
.long 2373680118,2373680118
3931
.long 234025727,234025727
3932
.long 3177933782,3177933782
3933
.long 2976870366,2976870366
3934
.long 1422247313,1422247313
3935
.long 1345335392,1345335392
3936
.long 50397442,50397442
3937
.long 2842126286,2842126286
3938
.long 2099981142,2099981142
3939
.long 436141799,436141799
3940
.long 1658312629,1658312629
3941
.long 3870010189,3870010189
3942
.long 2591454956,2591454956
3943
.long 1170918031,1170918031
3944
.long 2642575903,2642575903
3945
.long 1086966153,1086966153
3946
.long 2273148410,2273148410
3947
.long 368769775,368769775
3948
.long 3948501426,3948501426
3949
.long 3376891790,3376891790
3950
.long 200339707,200339707
3951
.long 3970805057,3970805057
3952
.long 1742001331,1742001331
3953
.long 4255294047,4255294047
3954
.long 3937382213,3937382213
3955
.long 3214711843,3214711843
3956
.long 4154762323,4154762323
3957
.long 2524082916,2524082916
3958
.long 1539358875,1539358875
3959
.long 3266819957,3266819957
3960
.long 486407649,486407649
3961
.long 2928907069,2928907069
3962
.long 1780885068,1780885068
3963
.long 1513502316,1513502316
3964
.long 1094664062,1094664062
3965
.long 49805301,49805301
3966
.long 1338821763,1338821763
3967
.long 1546925160,1546925160
3968
.long 4104496465,4104496465
3969
.long 887481809,887481809
3970
.long 150073849,150073849
3971
.long 2473685474,2473685474
3972
.long 1943591083,1943591083
3973
.long 1395732834,1395732834
3974
.long 1058346282,1058346282
3975
.long 201589768,201589768
3976
.long 1388824469,1388824469
3977
.long 1696801606,1696801606
3978
.long 1589887901,1589887901
3979
.long 672667696,672667696
3980
.long 2711000631,2711000631
3981
.long 251987210,251987210
3982
.long 3046808111,3046808111
3983
.long 151455502,151455502
3984
.long 907153956,907153956
3985
.long 2608889883,2608889883
3986
.long 1038279391,1038279391
3987
.long 652995533,652995533
3988
.long 1764173646,1764173646
3989
.long 3451040383,3451040383
3990
.long 2675275242,2675275242
3991
.long 453576978,453576978
3992
.long 2659418909,2659418909
3993
.long 1949051992,1949051992
3994
.long 773462580,773462580
3995
.long 756751158,756751158
3996
.long 2993581788,2993581788
3997
.long 3998898868,3998898868
3998
.long 4221608027,4221608027
3999
.long 4132590244,4132590244
4000
.long 1295727478,1295727478
4001
.long 1641469623,1641469623
4002
.long 3467883389,3467883389
4003
.long 2066295122,2066295122
4004
.long 1055122397,1055122397
4005
.long 1898917726,1898917726
4006
.long 2542044179,2542044179
4007
.long 4115878822,4115878822
4008
.long 1758581177,1758581177
4009
.long 0,0
4010
.long 753790401,753790401
4011
.long 1612718144,1612718144
4012
.long 536673507,536673507
4013
.long 3367088505,3367088505
4014
.long 3982187446,3982187446
4015
.long 3194645204,3194645204
4016
.long 1187761037,1187761037
4017
.long 3653156455,3653156455
4018
.long 1262041458,1262041458
4019
.long 3729410708,3729410708
4020
.long 3561770136,3561770136
4021
.long 3898103984,3898103984
4022
.long 1255133061,1255133061
4023
.long 1808847035,1808847035
4024
.long 720367557,720367557
4025
.long 3853167183,3853167183
4026
.long 385612781,385612781
4027
.long 3309519750,3309519750
4028
.long 3612167578,3612167578
4029
.long 1429418854,1429418854
4030
.long 2491778321,2491778321
4031
.long 3477423498,3477423498
4032
.long 284817897,284817897
4033
.long 100794884,100794884
4034
.long 2172616702,2172616702
4035
.long 4031795360,4031795360
4036
.long 1144798328,1144798328
4037
.long 3131023141,3131023141
4038
.long 3819481163,3819481163
4039
.long 4082192802,4082192802
4040
.long 4272137053,4272137053
4041
.long 3225436288,3225436288
4042
.long 2324664069,2324664069
4043
.long 2912064063,2912064063
4044
.long 3164445985,3164445985
4045
.long 1211644016,1211644016
4046
.long 83228145,83228145
4047
.long 3753688163,3753688163
4048
.long 3249976951,3249976951
4049
.long 1977277103,1977277103
4050
.long 1663115586,1663115586
4051
.long 806359072,806359072
4052
.long 452984805,452984805
4053
.long 250868733,250868733
4054
.long 1842533055,1842533055
4055
.long 1288555905,1288555905
4056
.long 336333848,336333848
4057
.long 890442534,890442534
4058
.long 804056259,804056259
4059
.long 3781124030,3781124030
4060
.long 2727843637,2727843637
4061
.long 3427026056,3427026056
4062
.long 957814574,957814574
4063
.long 1472513171,1472513171
4064
.long 4071073621,4071073621
4065
.long 2189328124,2189328124
4066
.long 1195195770,1195195770
4067
.long 2892260552,2892260552
4068
.long 3881655738,3881655738
4069
.long 723065138,723065138
4070
.long 2507371494,2507371494
4071
.long 2690670784,2690670784
4072
.long 2558624025,2558624025
4073
.long 3511635870,3511635870
4074
.long 2145180835,2145180835
4075
.long 1713513028,1713513028
4076
.long 2116692564,2116692564
4077
.long 2878378043,2878378043
4078
.long 2206763019,2206763019
4079
.long 3393603212,3393603212
4080
.long 703524551,703524551
4081
.long 3552098411,3552098411
4082
.long 1007948840,1007948840
4083
.long 2044649127,2044649127
4084
.long 3797835452,3797835452
4085
.long 487262998,487262998
4086
.long 1994120109,1994120109
4087
.long 1004593371,1004593371
4088
.long 1446130276,1446130276
4089
.long 1312438900,1312438900
4090
.long 503974420,503974420
4091
.long 3679013266,3679013266
4092
.long 168166924,168166924
4093
.long 1814307912,1814307912
4094
.long 3831258296,3831258296
4095
.long 1573044895,1573044895
4096
.long 1859376061,1859376061
4097
.long 4021070915,4021070915
4098
.long 2791465668,2791465668
4099
.long 2828112185,2828112185
4100
.long 2761266481,2761266481
4101
.long 937747667,937747667
4102
.long 2339994098,2339994098
4103
.long 854058965,854058965
4104
.long 1137232011,1137232011
4105
.long 1496790894,1496790894
4106
.long 3077402074,3077402074
4107
.long 2358086913,2358086913
4108
.long 1691735473,1691735473
4109
.long 3528347292,3528347292
4110
.long 3769215305,3769215305
4111
.long 3027004632,3027004632
4112
.long 4199962284,4199962284
4113
.long 133494003,133494003
4114
.long 636152527,636152527
4115
.long 2942657994,2942657994
4116
.long 2390391540,2390391540
4117
.long 3920539207,3920539207
4118
.long 403179536,403179536
4119
.long 3585784431,3585784431
4120
.long 2289596656,2289596656
4121
.long 1864705354,1864705354
4122
.long 1915629148,1915629148
4123
.long 605822008,605822008
4124
.long 4054230615,4054230615
4125
.long 3350508659,3350508659
4126
.long 1371981463,1371981463
4127
.long 602466507,602466507
4128
.long 2094914977,2094914977
4129
.long 2624877800,2624877800
4130
.long 555687742,555687742
4131
.long 3712699286,3712699286
4132
.long 3703422305,3703422305
4133
.long 2257292045,2257292045
4134
.long 2240449039,2240449039
4135
.long 2423288032,2423288032
4136
.long 1111375484,1111375484
4137
.long 3300242801,3300242801
4138
.long 2858837708,2858837708
4139
.long 3628615824,3628615824
4140
.long 84083462,84083462
4141
.long 32962295,32962295
4142
.long 302911004,302911004
4143
.long 2741068226,2741068226
4144
.long 1597322602,1597322602
4145
.long 4183250862,4183250862
4146
.long 3501832553,3501832553
4147
.long 2441512471,2441512471
4148
.long 1489093017,1489093017
4149
.long 656219450,656219450
4150
.long 3114180135,3114180135
4151
.long 954327513,954327513
4152
.long 335083755,335083755
4153
.long 3013122091,3013122091
4154
.long 856756514,856756514
4155
.long 3144247762,3144247762
4156
.long 1893325225,1893325225
4157
.long 2307821063,2307821063
4158
.long 2811532339,2811532339
4159
.long 3063651117,3063651117
4160
.long 572399164,572399164
4161
.long 2458355477,2458355477
4162
.long 552200649,552200649
4163
.long 1238290055,1238290055
4164
.long 4283782570,4283782570
4165
.long 2015897680,2015897680
4166
.long 2061492133,2061492133
4167
.long 2408352771,2408352771
4168
.long 4171342169,4171342169
4169
.long 2156497161,2156497161
4170
.long 386731290,386731290
4171
.long 3669999461,3669999461
4172
.long 837215959,837215959
4173
.long 3326231172,3326231172
4174
.long 3093850320,3093850320
4175
.long 3275833730,3275833730
4176
.long 2962856233,2962856233
4177
.long 1999449434,1999449434
4178
.long 286199582,286199582
4179
.long 3417354363,3417354363
4180
.long 4233385128,4233385128
4181
.long 3602627437,3602627437
4182
.long 974525996,974525996
4183
.byte 99,124,119,123,242,107,111,197
4184
.byte 48,1,103,43,254,215,171,118
4185
.byte 202,130,201,125,250,89,71,240
4186
.byte 173,212,162,175,156,164,114,192
4187
.byte 183,253,147,38,54,63,247,204
4188
.byte 52,165,229,241,113,216,49,21
4189
.byte 4,199,35,195,24,150,5,154
4190
.byte 7,18,128,226,235,39,178,117
4191
.byte 9,131,44,26,27,110,90,160
4192
.byte 82,59,214,179,41,227,47,132
4193
.byte 83,209,0,237,32,252,177,91
4194
.byte 106,203,190,57,74,76,88,207
4195
.byte 208,239,170,251,67,77,51,133
4196
.byte 69,249,2,127,80,60,159,168
4197
.byte 81,163,64,143,146,157,56,245
4198
.byte 188,182,218,33,16,255,243,210
4199
.byte 205,12,19,236,95,151,68,23
4200
.byte 196,167,126,61,100,93,25,115
4201
.byte 96,129,79,220,34,42,144,136
4202
.byte 70,238,184,20,222,94,11,219
4203
.byte 224,50,58,10,73,6,36,92
4204
.byte 194,211,172,98,145,149,228,121
4205
.byte 231,200,55,109,141,213,78,169
4206
.byte 108,86,244,234,101,122,174,8
4207
.byte 186,120,37,46,28,166,180,198
4208
.byte 232,221,116,31,75,189,139,138
4209
.byte 112,62,181,102,72,3,246,14
4210
.byte 97,53,87,185,134,193,29,158
4211
.byte 225,248,152,17,105,217,142,148
4212
.byte 155,30,135,233,206,85,40,223
4213
.byte 140,161,137,13,191,230,66,104
4214
.byte 65,153,45,15,176,84,187,22
4215
.byte 99,124,119,123,242,107,111,197
4216
.byte 48,1,103,43,254,215,171,118
4217
.byte 202,130,201,125,250,89,71,240
4218
.byte 173,212,162,175,156,164,114,192
4219
.byte 183,253,147,38,54,63,247,204
4220
.byte 52,165,229,241,113,216,49,21
4221
.byte 4,199,35,195,24,150,5,154
4222
.byte 7,18,128,226,235,39,178,117
4223
.byte 9,131,44,26,27,110,90,160
4224
.byte 82,59,214,179,41,227,47,132
4225
.byte 83,209,0,237,32,252,177,91
4226
.byte 106,203,190,57,74,76,88,207
4227
.byte 208,239,170,251,67,77,51,133
4228
.byte 69,249,2,127,80,60,159,168
4229
.byte 81,163,64,143,146,157,56,245
4230
.byte 188,182,218,33,16,255,243,210
4231
.byte 205,12,19,236,95,151,68,23
4232
.byte 196,167,126,61,100,93,25,115
4233
.byte 96,129,79,220,34,42,144,136
4234
.byte 70,238,184,20,222,94,11,219
4235
.byte 224,50,58,10,73,6,36,92
4236
.byte 194,211,172,98,145,149,228,121
4237
.byte 231,200,55,109,141,213,78,169
4238
.byte 108,86,244,234,101,122,174,8
4239
.byte 186,120,37,46,28,166,180,198
4240
.byte 232,221,116,31,75,189,139,138
4241
.byte 112,62,181,102,72,3,246,14
4242
.byte 97,53,87,185,134,193,29,158
4243
.byte 225,248,152,17,105,217,142,148
4244
.byte 155,30,135,233,206,85,40,223
4245
.byte 140,161,137,13,191,230,66,104
4246
.byte 65,153,45,15,176,84,187,22
4247
.byte 99,124,119,123,242,107,111,197
4248
.byte 48,1,103,43,254,215,171,118
4249
.byte 202,130,201,125,250,89,71,240
4250
.byte 173,212,162,175,156,164,114,192
4251
.byte 183,253,147,38,54,63,247,204
4252
.byte 52,165,229,241,113,216,49,21
4253
.byte 4,199,35,195,24,150,5,154
4254
.byte 7,18,128,226,235,39,178,117
4255
.byte 9,131,44,26,27,110,90,160
4256
.byte 82,59,214,179,41,227,47,132
4257
.byte 83,209,0,237,32,252,177,91
4258
.byte 106,203,190,57,74,76,88,207
4259
.byte 208,239,170,251,67,77,51,133
4260
.byte 69,249,2,127,80,60,159,168
4261
.byte 81,163,64,143,146,157,56,245
4262
.byte 188,182,218,33,16,255,243,210
4263
.byte 205,12,19,236,95,151,68,23
4264
.byte 196,167,126,61,100,93,25,115
4265
.byte 96,129,79,220,34,42,144,136
4266
.byte 70,238,184,20,222,94,11,219
4267
.byte 224,50,58,10,73,6,36,92
4268
.byte 194,211,172,98,145,149,228,121
4269
.byte 231,200,55,109,141,213,78,169
4270
.byte 108,86,244,234,101,122,174,8
4271
.byte 186,120,37,46,28,166,180,198
4272
.byte 232,221,116,31,75,189,139,138
4273
.byte 112,62,181,102,72,3,246,14
4274
.byte 97,53,87,185,134,193,29,158
4275
.byte 225,248,152,17,105,217,142,148
4276
.byte 155,30,135,233,206,85,40,223
4277
.byte 140,161,137,13,191,230,66,104
4278
.byte 65,153,45,15,176,84,187,22
4279
.byte 99,124,119,123,242,107,111,197
4280
.byte 48,1,103,43,254,215,171,118
4281
.byte 202,130,201,125,250,89,71,240
4282
.byte 173,212,162,175,156,164,114,192
4283
.byte 183,253,147,38,54,63,247,204
4284
.byte 52,165,229,241,113,216,49,21
4285
.byte 4,199,35,195,24,150,5,154
4286
.byte 7,18,128,226,235,39,178,117
4287
.byte 9,131,44,26,27,110,90,160
4288
.byte 82,59,214,179,41,227,47,132
4289
.byte 83,209,0,237,32,252,177,91
4290
.byte 106,203,190,57,74,76,88,207
4291
.byte 208,239,170,251,67,77,51,133
4292
.byte 69,249,2,127,80,60,159,168
4293
.byte 81,163,64,143,146,157,56,245
4294
.byte 188,182,218,33,16,255,243,210
4295
.byte 205,12,19,236,95,151,68,23
4296
.byte 196,167,126,61,100,93,25,115
4297
.byte 96,129,79,220,34,42,144,136
4298
.byte 70,238,184,20,222,94,11,219
4299
.byte 224,50,58,10,73,6,36,92
4300
.byte 194,211,172,98,145,149,228,121
4301
.byte 231,200,55,109,141,213,78,169
4302
.byte 108,86,244,234,101,122,174,8
4303
.byte 186,120,37,46,28,166,180,198
4304
.byte 232,221,116,31,75,189,139,138
4305
.byte 112,62,181,102,72,3,246,14
4306
.byte 97,53,87,185,134,193,29,158
4307
.byte 225,248,152,17,105,217,142,148
4308
.byte 155,30,135,233,206,85,40,223
4309
.byte 140,161,137,13,191,230,66,104
4310
.byte 65,153,45,15,176,84,187,22
4311
.long 1,2,4,8
4312
.long 16,32,64,128
4313
.long 27,54,0,0
4314
.long 0,0,0,0
4315
.size _x86_AES_encrypt,.-_x86_AES_encrypt
4316
.globl AES_encrypt
4317
.type AES_encrypt,@function
4318
.align 16
4319
AES_encrypt:
4320
.L_AES_encrypt_begin:
4321
#ifdef __CET__
4322
4323
.byte 243,15,30,251
4324
#endif
4325
4326
pushl %ebp
4327
pushl %ebx
4328
pushl %esi
4329
pushl %edi
4330
movl 20(%esp),%esi
4331
movl 28(%esp),%edi
4332
movl %esp,%eax
4333
subl $36,%esp
4334
andl $-64,%esp
4335
leal -127(%edi),%ebx
4336
subl %esp,%ebx
4337
negl %ebx
4338
andl $960,%ebx
4339
subl %ebx,%esp
4340
addl $4,%esp
4341
movl %eax,28(%esp)
4342
call .L004pic_point
4343
.L004pic_point:
4344
popl %ebp
4345
leal OPENSSL_ia32cap_P,%eax
4346
leal .LAES_Te-.L004pic_point(%ebp),%ebp
4347
leal 764(%esp),%ebx
4348
subl %ebp,%ebx
4349
andl $768,%ebx
4350
leal 2176(%ebp,%ebx,1),%ebp
4351
btl $25,(%eax)
4352
jnc .L005x86
4353
movq (%esi),%mm0
4354
movq 8(%esi),%mm4
4355
call _sse_AES_encrypt_compact
4356
movl 28(%esp),%esp
4357
movl 24(%esp),%esi
4358
movq %mm0,(%esi)
4359
movq %mm4,8(%esi)
4360
emms
4361
popl %edi
4362
popl %esi
4363
popl %ebx
4364
popl %ebp
4365
ret
4366
.align 16
4367
.L005x86:
4368
movl %ebp,24(%esp)
4369
movl (%esi),%eax
4370
movl 4(%esi),%ebx
4371
movl 8(%esi),%ecx
4372
movl 12(%esi),%edx
4373
call _x86_AES_encrypt_compact
4374
movl 28(%esp),%esp
4375
movl 24(%esp),%esi
4376
movl %eax,(%esi)
4377
movl %ebx,4(%esi)
4378
movl %ecx,8(%esi)
4379
movl %edx,12(%esi)
4380
popl %edi
4381
popl %esi
4382
popl %ebx
4383
popl %ebp
4384
ret
4385
.size AES_encrypt,.-.L_AES_encrypt_begin
4386
.type _x86_AES_decrypt_compact,@function
4387
.align 16
4388
_x86_AES_decrypt_compact:
4389
#ifdef __CET__
4390
4391
.byte 243,15,30,251
4392
#endif
4393
4394
movl %edi,20(%esp)
4395
xorl (%edi),%eax
4396
xorl 4(%edi),%ebx
4397
xorl 8(%edi),%ecx
4398
xorl 12(%edi),%edx
4399
movl 240(%edi),%esi
4400
leal -2(%esi,%esi,1),%esi
4401
leal (%edi,%esi,8),%esi
4402
movl %esi,24(%esp)
4403
movl -128(%ebp),%edi
4404
movl -96(%ebp),%esi
4405
movl -64(%ebp),%edi
4406
movl -32(%ebp),%esi
4407
movl (%ebp),%edi
4408
movl 32(%ebp),%esi
4409
movl 64(%ebp),%edi
4410
movl 96(%ebp),%esi
4411
.align 16
4412
.L006loop:
4413
movl %eax,%esi
4414
andl $255,%esi
4415
movzbl -128(%ebp,%esi,1),%esi
4416
movzbl %dh,%edi
4417
movzbl -128(%ebp,%edi,1),%edi
4418
shll $8,%edi
4419
xorl %edi,%esi
4420
movl %ecx,%edi
4421
shrl $16,%edi
4422
andl $255,%edi
4423
movzbl -128(%ebp,%edi,1),%edi
4424
shll $16,%edi
4425
xorl %edi,%esi
4426
movl %ebx,%edi
4427
shrl $24,%edi
4428
movzbl -128(%ebp,%edi,1),%edi
4429
shll $24,%edi
4430
xorl %edi,%esi
4431
movl %esi,4(%esp)
4432
movl %ebx,%esi
4433
andl $255,%esi
4434
movzbl -128(%ebp,%esi,1),%esi
4435
movzbl %ah,%edi
4436
movzbl -128(%ebp,%edi,1),%edi
4437
shll $8,%edi
4438
xorl %edi,%esi
4439
movl %edx,%edi
4440
shrl $16,%edi
4441
andl $255,%edi
4442
movzbl -128(%ebp,%edi,1),%edi
4443
shll $16,%edi
4444
xorl %edi,%esi
4445
movl %ecx,%edi
4446
shrl $24,%edi
4447
movzbl -128(%ebp,%edi,1),%edi
4448
shll $24,%edi
4449
xorl %edi,%esi
4450
movl %esi,8(%esp)
4451
movl %ecx,%esi
4452
andl $255,%esi
4453
movzbl -128(%ebp,%esi,1),%esi
4454
movzbl %bh,%edi
4455
movzbl -128(%ebp,%edi,1),%edi
4456
shll $8,%edi
4457
xorl %edi,%esi
4458
movl %eax,%edi
4459
shrl $16,%edi
4460
andl $255,%edi
4461
movzbl -128(%ebp,%edi,1),%edi
4462
shll $16,%edi
4463
xorl %edi,%esi
4464
movl %edx,%edi
4465
shrl $24,%edi
4466
movzbl -128(%ebp,%edi,1),%edi
4467
shll $24,%edi
4468
xorl %edi,%esi
4469
andl $255,%edx
4470
movzbl -128(%ebp,%edx,1),%edx
4471
movzbl %ch,%ecx
4472
movzbl -128(%ebp,%ecx,1),%ecx
4473
shll $8,%ecx
4474
xorl %ecx,%edx
4475
movl %esi,%ecx
4476
shrl $16,%ebx
4477
andl $255,%ebx
4478
movzbl -128(%ebp,%ebx,1),%ebx
4479
shll $16,%ebx
4480
xorl %ebx,%edx
4481
shrl $24,%eax
4482
movzbl -128(%ebp,%eax,1),%eax
4483
shll $24,%eax
4484
xorl %eax,%edx
4485
movl $2155905152,%edi
4486
andl %ecx,%edi
4487
movl %edi,%esi
4488
shrl $7,%edi
4489
leal (%ecx,%ecx,1),%eax
4490
subl %edi,%esi
4491
andl $4278124286,%eax
4492
andl $454761243,%esi
4493
xorl %esi,%eax
4494
movl $2155905152,%edi
4495
andl %eax,%edi
4496
movl %edi,%esi
4497
shrl $7,%edi
4498
leal (%eax,%eax,1),%ebx
4499
subl %edi,%esi
4500
andl $4278124286,%ebx
4501
andl $454761243,%esi
4502
xorl %ecx,%eax
4503
xorl %esi,%ebx
4504
movl $2155905152,%edi
4505
andl %ebx,%edi
4506
movl %edi,%esi
4507
shrl $7,%edi
4508
leal (%ebx,%ebx,1),%ebp
4509
subl %edi,%esi
4510
andl $4278124286,%ebp
4511
andl $454761243,%esi
4512
xorl %ecx,%ebx
4513
roll $8,%ecx
4514
xorl %esi,%ebp
4515
xorl %eax,%ecx
4516
xorl %ebp,%eax
4517
xorl %ebx,%ecx
4518
xorl %ebp,%ebx
4519
roll $24,%eax
4520
xorl %ebp,%ecx
4521
roll $16,%ebx
4522
xorl %eax,%ecx
4523
roll $8,%ebp
4524
xorl %ebx,%ecx
4525
movl 4(%esp),%eax
4526
xorl %ebp,%ecx
4527
movl %ecx,12(%esp)
4528
movl $2155905152,%edi
4529
andl %edx,%edi
4530
movl %edi,%esi
4531
shrl $7,%edi
4532
leal (%edx,%edx,1),%ebx
4533
subl %edi,%esi
4534
andl $4278124286,%ebx
4535
andl $454761243,%esi
4536
xorl %esi,%ebx
4537
movl $2155905152,%edi
4538
andl %ebx,%edi
4539
movl %edi,%esi
4540
shrl $7,%edi
4541
leal (%ebx,%ebx,1),%ecx
4542
subl %edi,%esi
4543
andl $4278124286,%ecx
4544
andl $454761243,%esi
4545
xorl %edx,%ebx
4546
xorl %esi,%ecx
4547
movl $2155905152,%edi
4548
andl %ecx,%edi
4549
movl %edi,%esi
4550
shrl $7,%edi
4551
leal (%ecx,%ecx,1),%ebp
4552
subl %edi,%esi
4553
andl $4278124286,%ebp
4554
andl $454761243,%esi
4555
xorl %edx,%ecx
4556
roll $8,%edx
4557
xorl %esi,%ebp
4558
xorl %ebx,%edx
4559
xorl %ebp,%ebx
4560
xorl %ecx,%edx
4561
xorl %ebp,%ecx
4562
roll $24,%ebx
4563
xorl %ebp,%edx
4564
roll $16,%ecx
4565
xorl %ebx,%edx
4566
roll $8,%ebp
4567
xorl %ecx,%edx
4568
movl 8(%esp),%ebx
4569
xorl %ebp,%edx
4570
movl %edx,16(%esp)
4571
movl $2155905152,%edi
4572
andl %eax,%edi
4573
movl %edi,%esi
4574
shrl $7,%edi
4575
leal (%eax,%eax,1),%ecx
4576
subl %edi,%esi
4577
andl $4278124286,%ecx
4578
andl $454761243,%esi
4579
xorl %esi,%ecx
4580
movl $2155905152,%edi
4581
andl %ecx,%edi
4582
movl %edi,%esi
4583
shrl $7,%edi
4584
leal (%ecx,%ecx,1),%edx
4585
subl %edi,%esi
4586
andl $4278124286,%edx
4587
andl $454761243,%esi
4588
xorl %eax,%ecx
4589
xorl %esi,%edx
4590
movl $2155905152,%edi
4591
andl %edx,%edi
4592
movl %edi,%esi
4593
shrl $7,%edi
4594
leal (%edx,%edx,1),%ebp
4595
subl %edi,%esi
4596
andl $4278124286,%ebp
4597
andl $454761243,%esi
4598
xorl %eax,%edx
4599
roll $8,%eax
4600
xorl %esi,%ebp
4601
xorl %ecx,%eax
4602
xorl %ebp,%ecx
4603
xorl %edx,%eax
4604
xorl %ebp,%edx
4605
roll $24,%ecx
4606
xorl %ebp,%eax
4607
roll $16,%edx
4608
xorl %ecx,%eax
4609
roll $8,%ebp
4610
xorl %edx,%eax
4611
xorl %ebp,%eax
4612
movl $2155905152,%edi
4613
andl %ebx,%edi
4614
movl %edi,%esi
4615
shrl $7,%edi
4616
leal (%ebx,%ebx,1),%ecx
4617
subl %edi,%esi
4618
andl $4278124286,%ecx
4619
andl $454761243,%esi
4620
xorl %esi,%ecx
4621
movl $2155905152,%edi
4622
andl %ecx,%edi
4623
movl %edi,%esi
4624
shrl $7,%edi
4625
leal (%ecx,%ecx,1),%edx
4626
subl %edi,%esi
4627
andl $4278124286,%edx
4628
andl $454761243,%esi
4629
xorl %ebx,%ecx
4630
xorl %esi,%edx
4631
movl $2155905152,%edi
4632
andl %edx,%edi
4633
movl %edi,%esi
4634
shrl $7,%edi
4635
leal (%edx,%edx,1),%ebp
4636
subl %edi,%esi
4637
andl $4278124286,%ebp
4638
andl $454761243,%esi
4639
xorl %ebx,%edx
4640
roll $8,%ebx
4641
xorl %esi,%ebp
4642
xorl %ecx,%ebx
4643
xorl %ebp,%ecx
4644
xorl %edx,%ebx
4645
xorl %ebp,%edx
4646
roll $24,%ecx
4647
xorl %ebp,%ebx
4648
roll $16,%edx
4649
xorl %ecx,%ebx
4650
roll $8,%ebp
4651
xorl %edx,%ebx
4652
movl 12(%esp),%ecx
4653
xorl %ebp,%ebx
4654
movl 16(%esp),%edx
4655
movl 20(%esp),%edi
4656
movl 28(%esp),%ebp
4657
addl $16,%edi
4658
xorl (%edi),%eax
4659
xorl 4(%edi),%ebx
4660
xorl 8(%edi),%ecx
4661
xorl 12(%edi),%edx
4662
cmpl 24(%esp),%edi
4663
movl %edi,20(%esp)
4664
jb .L006loop
4665
movl %eax,%esi
4666
andl $255,%esi
4667
movzbl -128(%ebp,%esi,1),%esi
4668
movzbl %dh,%edi
4669
movzbl -128(%ebp,%edi,1),%edi
4670
shll $8,%edi
4671
xorl %edi,%esi
4672
movl %ecx,%edi
4673
shrl $16,%edi
4674
andl $255,%edi
4675
movzbl -128(%ebp,%edi,1),%edi
4676
shll $16,%edi
4677
xorl %edi,%esi
4678
movl %ebx,%edi
4679
shrl $24,%edi
4680
movzbl -128(%ebp,%edi,1),%edi
4681
shll $24,%edi
4682
xorl %edi,%esi
4683
movl %esi,4(%esp)
4684
movl %ebx,%esi
4685
andl $255,%esi
4686
movzbl -128(%ebp,%esi,1),%esi
4687
movzbl %ah,%edi
4688
movzbl -128(%ebp,%edi,1),%edi
4689
shll $8,%edi
4690
xorl %edi,%esi
4691
movl %edx,%edi
4692
shrl $16,%edi
4693
andl $255,%edi
4694
movzbl -128(%ebp,%edi,1),%edi
4695
shll $16,%edi
4696
xorl %edi,%esi
4697
movl %ecx,%edi
4698
shrl $24,%edi
4699
movzbl -128(%ebp,%edi,1),%edi
4700
shll $24,%edi
4701
xorl %edi,%esi
4702
movl %esi,8(%esp)
4703
movl %ecx,%esi
4704
andl $255,%esi
4705
movzbl -128(%ebp,%esi,1),%esi
4706
movzbl %bh,%edi
4707
movzbl -128(%ebp,%edi,1),%edi
4708
shll $8,%edi
4709
xorl %edi,%esi
4710
movl %eax,%edi
4711
shrl $16,%edi
4712
andl $255,%edi
4713
movzbl -128(%ebp,%edi,1),%edi
4714
shll $16,%edi
4715
xorl %edi,%esi
4716
movl %edx,%edi
4717
shrl $24,%edi
4718
movzbl -128(%ebp,%edi,1),%edi
4719
shll $24,%edi
4720
xorl %edi,%esi
4721
movl 20(%esp),%edi
4722
andl $255,%edx
4723
movzbl -128(%ebp,%edx,1),%edx
4724
movzbl %ch,%ecx
4725
movzbl -128(%ebp,%ecx,1),%ecx
4726
shll $8,%ecx
4727
xorl %ecx,%edx
4728
movl %esi,%ecx
4729
shrl $16,%ebx
4730
andl $255,%ebx
4731
movzbl -128(%ebp,%ebx,1),%ebx
4732
shll $16,%ebx
4733
xorl %ebx,%edx
4734
movl 8(%esp),%ebx
4735
shrl $24,%eax
4736
movzbl -128(%ebp,%eax,1),%eax
4737
shll $24,%eax
4738
xorl %eax,%edx
4739
movl 4(%esp),%eax
4740
xorl 16(%edi),%eax
4741
xorl 20(%edi),%ebx
4742
xorl 24(%edi),%ecx
4743
xorl 28(%edi),%edx
4744
ret
4745
.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
4746
.type _sse_AES_decrypt_compact,@function
4747
.align 16
4748
_sse_AES_decrypt_compact:
4749
#ifdef __CET__
4750
4751
.byte 243,15,30,251
4752
#endif
4753
4754
pxor (%edi),%mm0
4755
pxor 8(%edi),%mm4
4756
movl 240(%edi),%esi
4757
leal -2(%esi,%esi,1),%esi
4758
leal (%edi,%esi,8),%esi
4759
movl %esi,24(%esp)
4760
movl $454761243,%eax
4761
movl %eax,8(%esp)
4762
movl %eax,12(%esp)
4763
movl -128(%ebp),%eax
4764
movl -96(%ebp),%ebx
4765
movl -64(%ebp),%ecx
4766
movl -32(%ebp),%edx
4767
movl (%ebp),%eax
4768
movl 32(%ebp),%ebx
4769
movl 64(%ebp),%ecx
4770
movl 96(%ebp),%edx
4771
.align 16
4772
.L007loop:
4773
pshufw $12,%mm0,%mm1
4774
pshufw $9,%mm4,%mm5
4775
movd %mm1,%eax
4776
movd %mm5,%ebx
4777
movl %edi,20(%esp)
4778
movzbl %al,%esi
4779
movzbl %ah,%edx
4780
pshufw $6,%mm0,%mm2
4781
movzbl -128(%ebp,%esi,1),%ecx
4782
movzbl %bl,%edi
4783
movzbl -128(%ebp,%edx,1),%edx
4784
shrl $16,%eax
4785
shll $8,%edx
4786
movzbl -128(%ebp,%edi,1),%esi
4787
movzbl %bh,%edi
4788
shll $16,%esi
4789
pshufw $3,%mm4,%mm6
4790
orl %esi,%ecx
4791
movzbl -128(%ebp,%edi,1),%esi
4792
movzbl %ah,%edi
4793
shll $24,%esi
4794
shrl $16,%ebx
4795
orl %esi,%edx
4796
movzbl -128(%ebp,%edi,1),%esi
4797
movzbl %bh,%edi
4798
shll $24,%esi
4799
orl %esi,%ecx
4800
movzbl -128(%ebp,%edi,1),%esi
4801
movzbl %al,%edi
4802
shll $8,%esi
4803
movd %mm2,%eax
4804
orl %esi,%ecx
4805
movzbl -128(%ebp,%edi,1),%esi
4806
movzbl %bl,%edi
4807
shll $16,%esi
4808
movd %mm6,%ebx
4809
movd %ecx,%mm0
4810
movzbl -128(%ebp,%edi,1),%ecx
4811
movzbl %al,%edi
4812
orl %esi,%ecx
4813
movzbl -128(%ebp,%edi,1),%esi
4814
movzbl %bl,%edi
4815
orl %esi,%edx
4816
movzbl -128(%ebp,%edi,1),%esi
4817
movzbl %ah,%edi
4818
shll $16,%esi
4819
shrl $16,%eax
4820
orl %esi,%edx
4821
movzbl -128(%ebp,%edi,1),%esi
4822
movzbl %bh,%edi
4823
shrl $16,%ebx
4824
shll $8,%esi
4825
movd %edx,%mm1
4826
movzbl -128(%ebp,%edi,1),%edx
4827
movzbl %bh,%edi
4828
shll $24,%edx
4829
andl $255,%ebx
4830
orl %esi,%edx
4831
punpckldq %mm1,%mm0
4832
movzbl -128(%ebp,%edi,1),%esi
4833
movzbl %al,%edi
4834
shll $8,%esi
4835
movzbl %ah,%eax
4836
movzbl -128(%ebp,%ebx,1),%ebx
4837
orl %esi,%ecx
4838
movzbl -128(%ebp,%edi,1),%esi
4839
orl %ebx,%edx
4840
shll $16,%esi
4841
movzbl -128(%ebp,%eax,1),%eax
4842
orl %esi,%edx
4843
shll $24,%eax
4844
orl %eax,%ecx
4845
movl 20(%esp),%edi
4846
movd %edx,%mm4
4847
movd %ecx,%mm5
4848
punpckldq %mm5,%mm4
4849
addl $16,%edi
4850
cmpl 24(%esp),%edi
4851
ja .L008out
4852
movq %mm0,%mm3
4853
movq %mm4,%mm7
4854
pshufw $228,%mm0,%mm2
4855
pshufw $228,%mm4,%mm6
4856
movq %mm0,%mm1
4857
movq %mm4,%mm5
4858
pshufw $177,%mm0,%mm0
4859
pshufw $177,%mm4,%mm4
4860
pslld $8,%mm2
4861
pslld $8,%mm6
4862
psrld $8,%mm3
4863
psrld $8,%mm7
4864
pxor %mm2,%mm0
4865
pxor %mm6,%mm4
4866
pxor %mm3,%mm0
4867
pxor %mm7,%mm4
4868
pslld $16,%mm2
4869
pslld $16,%mm6
4870
psrld $16,%mm3
4871
psrld $16,%mm7
4872
pxor %mm2,%mm0
4873
pxor %mm6,%mm4
4874
pxor %mm3,%mm0
4875
pxor %mm7,%mm4
4876
movq 8(%esp),%mm3
4877
pxor %mm2,%mm2
4878
pxor %mm6,%mm6
4879
pcmpgtb %mm1,%mm2
4880
pcmpgtb %mm5,%mm6
4881
pand %mm3,%mm2
4882
pand %mm3,%mm6
4883
paddb %mm1,%mm1
4884
paddb %mm5,%mm5
4885
pxor %mm2,%mm1
4886
pxor %mm6,%mm5
4887
movq %mm1,%mm3
4888
movq %mm5,%mm7
4889
movq %mm1,%mm2
4890
movq %mm5,%mm6
4891
pxor %mm1,%mm0
4892
pxor %mm5,%mm4
4893
pslld $24,%mm3
4894
pslld $24,%mm7
4895
psrld $8,%mm2
4896
psrld $8,%mm6
4897
pxor %mm3,%mm0
4898
pxor %mm7,%mm4
4899
pxor %mm2,%mm0
4900
pxor %mm6,%mm4
4901
movq 8(%esp),%mm2
4902
pxor %mm3,%mm3
4903
pxor %mm7,%mm7
4904
pcmpgtb %mm1,%mm3
4905
pcmpgtb %mm5,%mm7
4906
pand %mm2,%mm3
4907
pand %mm2,%mm7
4908
paddb %mm1,%mm1
4909
paddb %mm5,%mm5
4910
pxor %mm3,%mm1
4911
pxor %mm7,%mm5
4912
pshufw $177,%mm1,%mm3
4913
pshufw $177,%mm5,%mm7
4914
pxor %mm1,%mm0
4915
pxor %mm5,%mm4
4916
pxor %mm3,%mm0
4917
pxor %mm7,%mm4
4918
pxor %mm3,%mm3
4919
pxor %mm7,%mm7
4920
pcmpgtb %mm1,%mm3
4921
pcmpgtb %mm5,%mm7
4922
pand %mm2,%mm3
4923
pand %mm2,%mm7
4924
paddb %mm1,%mm1
4925
paddb %mm5,%mm5
4926
pxor %mm3,%mm1
4927
pxor %mm7,%mm5
4928
pxor %mm1,%mm0
4929
pxor %mm5,%mm4
4930
movq %mm1,%mm3
4931
movq %mm5,%mm7
4932
pshufw $177,%mm1,%mm2
4933
pshufw $177,%mm5,%mm6
4934
pxor %mm2,%mm0
4935
pxor %mm6,%mm4
4936
pslld $8,%mm1
4937
pslld $8,%mm5
4938
psrld $8,%mm3
4939
psrld $8,%mm7
4940
movq (%edi),%mm2
4941
movq 8(%edi),%mm6
4942
pxor %mm1,%mm0
4943
pxor %mm5,%mm4
4944
pxor %mm3,%mm0
4945
pxor %mm7,%mm4
4946
movl -128(%ebp),%eax
4947
pslld $16,%mm1
4948
pslld $16,%mm5
4949
movl -64(%ebp),%ebx
4950
psrld $16,%mm3
4951
psrld $16,%mm7
4952
movl (%ebp),%ecx
4953
pxor %mm1,%mm0
4954
pxor %mm5,%mm4
4955
movl 64(%ebp),%edx
4956
pxor %mm3,%mm0
4957
pxor %mm7,%mm4
4958
pxor %mm2,%mm0
4959
pxor %mm6,%mm4
4960
jmp .L007loop
4961
.align 16
4962
.L008out:
4963
pxor (%edi),%mm0
4964
pxor 8(%edi),%mm4
4965
ret
4966
.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
4967
.type _x86_AES_decrypt,@function
4968
.align 16
4969
_x86_AES_decrypt:
4970
#ifdef __CET__
4971
4972
.byte 243,15,30,251
4973
#endif
4974
4975
movl %edi,20(%esp)
4976
xorl (%edi),%eax
4977
xorl 4(%edi),%ebx
4978
xorl 8(%edi),%ecx
4979
xorl 12(%edi),%edx
4980
movl 240(%edi),%esi
4981
leal -2(%esi,%esi,1),%esi
4982
leal (%edi,%esi,8),%esi
4983
movl %esi,24(%esp)
4984
.align 16
4985
.L009loop:
4986
movl %eax,%esi
4987
andl $255,%esi
4988
movl (%ebp,%esi,8),%esi
4989
movzbl %dh,%edi
4990
xorl 3(%ebp,%edi,8),%esi
4991
movl %ecx,%edi
4992
shrl $16,%edi
4993
andl $255,%edi
4994
xorl 2(%ebp,%edi,8),%esi
4995
movl %ebx,%edi
4996
shrl $24,%edi
4997
xorl 1(%ebp,%edi,8),%esi
4998
movl %esi,4(%esp)
4999
5000
movl %ebx,%esi
5001
andl $255,%esi
5002
movl (%ebp,%esi,8),%esi
5003
movzbl %ah,%edi
5004
xorl 3(%ebp,%edi,8),%esi
5005
movl %edx,%edi
5006
shrl $16,%edi
5007
andl $255,%edi
5008
xorl 2(%ebp,%edi,8),%esi
5009
movl %ecx,%edi
5010
shrl $24,%edi
5011
xorl 1(%ebp,%edi,8),%esi
5012
movl %esi,8(%esp)
5013
5014
movl %ecx,%esi
5015
andl $255,%esi
5016
movl (%ebp,%esi,8),%esi
5017
movzbl %bh,%edi
5018
xorl 3(%ebp,%edi,8),%esi
5019
movl %eax,%edi
5020
shrl $16,%edi
5021
andl $255,%edi
5022
xorl 2(%ebp,%edi,8),%esi
5023
movl %edx,%edi
5024
shrl $24,%edi
5025
xorl 1(%ebp,%edi,8),%esi
5026
5027
movl 20(%esp),%edi
5028
andl $255,%edx
5029
movl (%ebp,%edx,8),%edx
5030
movzbl %ch,%ecx
5031
xorl 3(%ebp,%ecx,8),%edx
5032
movl %esi,%ecx
5033
shrl $16,%ebx
5034
andl $255,%ebx
5035
xorl 2(%ebp,%ebx,8),%edx
5036
movl 8(%esp),%ebx
5037
shrl $24,%eax
5038
xorl 1(%ebp,%eax,8),%edx
5039
movl 4(%esp),%eax
5040
5041
addl $16,%edi
5042
xorl (%edi),%eax
5043
xorl 4(%edi),%ebx
5044
xorl 8(%edi),%ecx
5045
xorl 12(%edi),%edx
5046
cmpl 24(%esp),%edi
5047
movl %edi,20(%esp)
5048
jb .L009loop
5049
leal 2176(%ebp),%ebp
5050
movl -128(%ebp),%edi
5051
movl -96(%ebp),%esi
5052
movl -64(%ebp),%edi
5053
movl -32(%ebp),%esi
5054
movl (%ebp),%edi
5055
movl 32(%ebp),%esi
5056
movl 64(%ebp),%edi
5057
movl 96(%ebp),%esi
5058
leal -128(%ebp),%ebp
5059
movl %eax,%esi
5060
andl $255,%esi
5061
movzbl (%ebp,%esi,1),%esi
5062
movzbl %dh,%edi
5063
movzbl (%ebp,%edi,1),%edi
5064
shll $8,%edi
5065
xorl %edi,%esi
5066
movl %ecx,%edi
5067
shrl $16,%edi
5068
andl $255,%edi
5069
movzbl (%ebp,%edi,1),%edi
5070
shll $16,%edi
5071
xorl %edi,%esi
5072
movl %ebx,%edi
5073
shrl $24,%edi
5074
movzbl (%ebp,%edi,1),%edi
5075
shll $24,%edi
5076
xorl %edi,%esi
5077
movl %esi,4(%esp)
5078
movl %ebx,%esi
5079
andl $255,%esi
5080
movzbl (%ebp,%esi,1),%esi
5081
movzbl %ah,%edi
5082
movzbl (%ebp,%edi,1),%edi
5083
shll $8,%edi
5084
xorl %edi,%esi
5085
movl %edx,%edi
5086
shrl $16,%edi
5087
andl $255,%edi
5088
movzbl (%ebp,%edi,1),%edi
5089
shll $16,%edi
5090
xorl %edi,%esi
5091
movl %ecx,%edi
5092
shrl $24,%edi
5093
movzbl (%ebp,%edi,1),%edi
5094
shll $24,%edi
5095
xorl %edi,%esi
5096
movl %esi,8(%esp)
5097
movl %ecx,%esi
5098
andl $255,%esi
5099
movzbl (%ebp,%esi,1),%esi
5100
movzbl %bh,%edi
5101
movzbl (%ebp,%edi,1),%edi
5102
shll $8,%edi
5103
xorl %edi,%esi
5104
movl %eax,%edi
5105
shrl $16,%edi
5106
andl $255,%edi
5107
movzbl (%ebp,%edi,1),%edi
5108
shll $16,%edi
5109
xorl %edi,%esi
5110
movl %edx,%edi
5111
shrl $24,%edi
5112
movzbl (%ebp,%edi,1),%edi
5113
shll $24,%edi
5114
xorl %edi,%esi
5115
movl 20(%esp),%edi
5116
andl $255,%edx
5117
movzbl (%ebp,%edx,1),%edx
5118
movzbl %ch,%ecx
5119
movzbl (%ebp,%ecx,1),%ecx
5120
shll $8,%ecx
5121
xorl %ecx,%edx
5122
movl %esi,%ecx
5123
shrl $16,%ebx
5124
andl $255,%ebx
5125
movzbl (%ebp,%ebx,1),%ebx
5126
shll $16,%ebx
5127
xorl %ebx,%edx
5128
movl 8(%esp),%ebx
5129
shrl $24,%eax
5130
movzbl (%ebp,%eax,1),%eax
5131
shll $24,%eax
5132
xorl %eax,%edx
5133
movl 4(%esp),%eax
5134
leal -2048(%ebp),%ebp
5135
addl $16,%edi
5136
xorl (%edi),%eax
5137
xorl 4(%edi),%ebx
5138
xorl 8(%edi),%ecx
5139
xorl 12(%edi),%edx
5140
ret
5141
.align 64
5142
.LAES_Td:
5143
.long 1353184337,1353184337
5144
.long 1399144830,1399144830
5145
.long 3282310938,3282310938
5146
.long 2522752826,2522752826
5147
.long 3412831035,3412831035
5148
.long 4047871263,4047871263
5149
.long 2874735276,2874735276
5150
.long 2466505547,2466505547
5151
.long 1442459680,1442459680
5152
.long 4134368941,4134368941
5153
.long 2440481928,2440481928
5154
.long 625738485,625738485
5155
.long 4242007375,4242007375
5156
.long 3620416197,3620416197
5157
.long 2151953702,2151953702
5158
.long 2409849525,2409849525
5159
.long 1230680542,1230680542
5160
.long 1729870373,1729870373
5161
.long 2551114309,2551114309
5162
.long 3787521629,3787521629
5163
.long 41234371,41234371
5164
.long 317738113,317738113
5165
.long 2744600205,2744600205
5166
.long 3338261355,3338261355
5167
.long 3881799427,3881799427
5168
.long 2510066197,2510066197
5169
.long 3950669247,3950669247
5170
.long 3663286933,3663286933
5171
.long 763608788,763608788
5172
.long 3542185048,3542185048
5173
.long 694804553,694804553
5174
.long 1154009486,1154009486
5175
.long 1787413109,1787413109
5176
.long 2021232372,2021232372
5177
.long 1799248025,1799248025
5178
.long 3715217703,3715217703
5179
.long 3058688446,3058688446
5180
.long 397248752,397248752
5181
.long 1722556617,1722556617
5182
.long 3023752829,3023752829
5183
.long 407560035,407560035
5184
.long 2184256229,2184256229
5185
.long 1613975959,1613975959
5186
.long 1165972322,1165972322
5187
.long 3765920945,3765920945
5188
.long 2226023355,2226023355
5189
.long 480281086,480281086
5190
.long 2485848313,2485848313
5191
.long 1483229296,1483229296
5192
.long 436028815,436028815
5193
.long 2272059028,2272059028
5194
.long 3086515026,3086515026
5195
.long 601060267,601060267
5196
.long 3791801202,3791801202
5197
.long 1468997603,1468997603
5198
.long 715871590,715871590
5199
.long 120122290,120122290
5200
.long 63092015,63092015
5201
.long 2591802758,2591802758
5202
.long 2768779219,2768779219
5203
.long 4068943920,4068943920
5204
.long 2997206819,2997206819
5205
.long 3127509762,3127509762
5206
.long 1552029421,1552029421
5207
.long 723308426,723308426
5208
.long 2461301159,2461301159
5209
.long 4042393587,4042393587
5210
.long 2715969870,2715969870
5211
.long 3455375973,3455375973
5212
.long 3586000134,3586000134
5213
.long 526529745,526529745
5214
.long 2331944644,2331944644
5215
.long 2639474228,2639474228
5216
.long 2689987490,2689987490
5217
.long 853641733,853641733
5218
.long 1978398372,1978398372
5219
.long 971801355,971801355
5220
.long 2867814464,2867814464
5221
.long 111112542,111112542
5222
.long 1360031421,1360031421
5223
.long 4186579262,4186579262
5224
.long 1023860118,1023860118
5225
.long 2919579357,2919579357
5226
.long 1186850381,1186850381
5227
.long 3045938321,3045938321
5228
.long 90031217,90031217
5229
.long 1876166148,1876166148
5230
.long 4279586912,4279586912
5231
.long 620468249,620468249
5232
.long 2548678102,2548678102
5233
.long 3426959497,3426959497
5234
.long 2006899047,2006899047
5235
.long 3175278768,3175278768
5236
.long 2290845959,2290845959
5237
.long 945494503,945494503
5238
.long 3689859193,3689859193
5239
.long 1191869601,1191869601
5240
.long 3910091388,3910091388
5241
.long 3374220536,3374220536
5242
.long 0,0
5243
.long 2206629897,2206629897
5244
.long 1223502642,1223502642
5245
.long 2893025566,2893025566
5246
.long 1316117100,1316117100
5247
.long 4227796733,4227796733
5248
.long 1446544655,1446544655
5249
.long 517320253,517320253
5250
.long 658058550,658058550
5251
.long 1691946762,1691946762
5252
.long 564550760,564550760
5253
.long 3511966619,3511966619
5254
.long 976107044,976107044
5255
.long 2976320012,2976320012
5256
.long 266819475,266819475
5257
.long 3533106868,3533106868
5258
.long 2660342555,2660342555
5259
.long 1338359936,1338359936
5260
.long 2720062561,2720062561
5261
.long 1766553434,1766553434
5262
.long 370807324,370807324
5263
.long 179999714,179999714
5264
.long 3844776128,3844776128
5265
.long 1138762300,1138762300
5266
.long 488053522,488053522
5267
.long 185403662,185403662
5268
.long 2915535858,2915535858
5269
.long 3114841645,3114841645
5270
.long 3366526484,3366526484
5271
.long 2233069911,2233069911
5272
.long 1275557295,1275557295
5273
.long 3151862254,3151862254
5274
.long 4250959779,4250959779
5275
.long 2670068215,2670068215
5276
.long 3170202204,3170202204
5277
.long 3309004356,3309004356
5278
.long 880737115,880737115
5279
.long 1982415755,1982415755
5280
.long 3703972811,3703972811
5281
.long 1761406390,1761406390
5282
.long 1676797112,1676797112
5283
.long 3403428311,3403428311
5284
.long 277177154,277177154
5285
.long 1076008723,1076008723
5286
.long 538035844,538035844
5287
.long 2099530373,2099530373
5288
.long 4164795346,4164795346
5289
.long 288553390,288553390
5290
.long 1839278535,1839278535
5291
.long 1261411869,1261411869
5292
.long 4080055004,4080055004
5293
.long 3964831245,3964831245
5294
.long 3504587127,3504587127
5295
.long 1813426987,1813426987
5296
.long 2579067049,2579067049
5297
.long 4199060497,4199060497
5298
.long 577038663,577038663
5299
.long 3297574056,3297574056
5300
.long 440397984,440397984
5301
.long 3626794326,3626794326
5302
.long 4019204898,4019204898
5303
.long 3343796615,3343796615
5304
.long 3251714265,3251714265
5305
.long 4272081548,4272081548
5306
.long 906744984,906744984
5307
.long 3481400742,3481400742
5308
.long 685669029,685669029
5309
.long 646887386,646887386
5310
.long 2764025151,2764025151
5311
.long 3835509292,3835509292
5312
.long 227702864,227702864
5313
.long 2613862250,2613862250
5314
.long 1648787028,1648787028
5315
.long 3256061430,3256061430
5316
.long 3904428176,3904428176
5317
.long 1593260334,1593260334
5318
.long 4121936770,4121936770
5319
.long 3196083615,3196083615
5320
.long 2090061929,2090061929
5321
.long 2838353263,2838353263
5322
.long 3004310991,3004310991
5323
.long 999926984,999926984
5324
.long 2809993232,2809993232
5325
.long 1852021992,1852021992
5326
.long 2075868123,2075868123
5327
.long 158869197,158869197
5328
.long 4095236462,4095236462
5329
.long 28809964,28809964
5330
.long 2828685187,2828685187
5331
.long 1701746150,1701746150
5332
.long 2129067946,2129067946
5333
.long 147831841,147831841
5334
.long 3873969647,3873969647
5335
.long 3650873274,3650873274
5336
.long 3459673930,3459673930
5337
.long 3557400554,3557400554
5338
.long 3598495785,3598495785
5339
.long 2947720241,2947720241
5340
.long 824393514,824393514
5341
.long 815048134,815048134
5342
.long 3227951669,3227951669
5343
.long 935087732,935087732
5344
.long 2798289660,2798289660
5345
.long 2966458592,2966458592
5346
.long 366520115,366520115
5347
.long 1251476721,1251476721
5348
.long 4158319681,4158319681
5349
.long 240176511,240176511
5350
.long 804688151,804688151
5351
.long 2379631990,2379631990
5352
.long 1303441219,1303441219
5353
.long 1414376140,1414376140
5354
.long 3741619940,3741619940
5355
.long 3820343710,3820343710
5356
.long 461924940,461924940
5357
.long 3089050817,3089050817
5358
.long 2136040774,2136040774
5359
.long 82468509,82468509
5360
.long 1563790337,1563790337
5361
.long 1937016826,1937016826
5362
.long 776014843,776014843
5363
.long 1511876531,1511876531
5364
.long 1389550482,1389550482
5365
.long 861278441,861278441
5366
.long 323475053,323475053
5367
.long 2355222426,2355222426
5368
.long 2047648055,2047648055
5369
.long 2383738969,2383738969
5370
.long 2302415851,2302415851
5371
.long 3995576782,3995576782
5372
.long 902390199,902390199
5373
.long 3991215329,3991215329
5374
.long 1018251130,1018251130
5375
.long 1507840668,1507840668
5376
.long 1064563285,1064563285
5377
.long 2043548696,2043548696
5378
.long 3208103795,3208103795
5379
.long 3939366739,3939366739
5380
.long 1537932639,1537932639
5381
.long 342834655,342834655
5382
.long 2262516856,2262516856
5383
.long 2180231114,2180231114
5384
.long 1053059257,1053059257
5385
.long 741614648,741614648
5386
.long 1598071746,1598071746
5387
.long 1925389590,1925389590
5388
.long 203809468,203809468
5389
.long 2336832552,2336832552
5390
.long 1100287487,1100287487
5391
.long 1895934009,1895934009
5392
.long 3736275976,3736275976
5393
.long 2632234200,2632234200
5394
.long 2428589668,2428589668
5395
.long 1636092795,1636092795
5396
.long 1890988757,1890988757
5397
.long 1952214088,1952214088
5398
.long 1113045200,1113045200
5399
.byte 82,9,106,213,48,54,165,56
5400
.byte 191,64,163,158,129,243,215,251
5401
.byte 124,227,57,130,155,47,255,135
5402
.byte 52,142,67,68,196,222,233,203
5403
.byte 84,123,148,50,166,194,35,61
5404
.byte 238,76,149,11,66,250,195,78
5405
.byte 8,46,161,102,40,217,36,178
5406
.byte 118,91,162,73,109,139,209,37
5407
.byte 114,248,246,100,134,104,152,22
5408
.byte 212,164,92,204,93,101,182,146
5409
.byte 108,112,72,80,253,237,185,218
5410
.byte 94,21,70,87,167,141,157,132
5411
.byte 144,216,171,0,140,188,211,10
5412
.byte 247,228,88,5,184,179,69,6
5413
.byte 208,44,30,143,202,63,15,2
5414
.byte 193,175,189,3,1,19,138,107
5415
.byte 58,145,17,65,79,103,220,234
5416
.byte 151,242,207,206,240,180,230,115
5417
.byte 150,172,116,34,231,173,53,133
5418
.byte 226,249,55,232,28,117,223,110
5419
.byte 71,241,26,113,29,41,197,137
5420
.byte 111,183,98,14,170,24,190,27
5421
.byte 252,86,62,75,198,210,121,32
5422
.byte 154,219,192,254,120,205,90,244
5423
.byte 31,221,168,51,136,7,199,49
5424
.byte 177,18,16,89,39,128,236,95
5425
.byte 96,81,127,169,25,181,74,13
5426
.byte 45,229,122,159,147,201,156,239
5427
.byte 160,224,59,77,174,42,245,176
5428
.byte 200,235,187,60,131,83,153,97
5429
.byte 23,43,4,126,186,119,214,38
5430
.byte 225,105,20,99,85,33,12,125
5431
.byte 82,9,106,213,48,54,165,56
5432
.byte 191,64,163,158,129,243,215,251
5433
.byte 124,227,57,130,155,47,255,135
5434
.byte 52,142,67,68,196,222,233,203
5435
.byte 84,123,148,50,166,194,35,61
5436
.byte 238,76,149,11,66,250,195,78
5437
.byte 8,46,161,102,40,217,36,178
5438
.byte 118,91,162,73,109,139,209,37
5439
.byte 114,248,246,100,134,104,152,22
5440
.byte 212,164,92,204,93,101,182,146
5441
.byte 108,112,72,80,253,237,185,218
5442
.byte 94,21,70,87,167,141,157,132
5443
.byte 144,216,171,0,140,188,211,10
5444
.byte 247,228,88,5,184,179,69,6
5445
.byte 208,44,30,143,202,63,15,2
5446
.byte 193,175,189,3,1,19,138,107
5447
.byte 58,145,17,65,79,103,220,234
5448
.byte 151,242,207,206,240,180,230,115
5449
.byte 150,172,116,34,231,173,53,133
5450
.byte 226,249,55,232,28,117,223,110
5451
.byte 71,241,26,113,29,41,197,137
5452
.byte 111,183,98,14,170,24,190,27
5453
.byte 252,86,62,75,198,210,121,32
5454
.byte 154,219,192,254,120,205,90,244
5455
.byte 31,221,168,51,136,7,199,49
5456
.byte 177,18,16,89,39,128,236,95
5457
.byte 96,81,127,169,25,181,74,13
5458
.byte 45,229,122,159,147,201,156,239
5459
.byte 160,224,59,77,174,42,245,176
5460
.byte 200,235,187,60,131,83,153,97
5461
.byte 23,43,4,126,186,119,214,38
5462
.byte 225,105,20,99,85,33,12,125
5463
.byte 82,9,106,213,48,54,165,56
5464
.byte 191,64,163,158,129,243,215,251
5465
.byte 124,227,57,130,155,47,255,135
5466
.byte 52,142,67,68,196,222,233,203
5467
.byte 84,123,148,50,166,194,35,61
5468
.byte 238,76,149,11,66,250,195,78
5469
.byte 8,46,161,102,40,217,36,178
5470
.byte 118,91,162,73,109,139,209,37
5471
.byte 114,248,246,100,134,104,152,22
5472
.byte 212,164,92,204,93,101,182,146
5473
.byte 108,112,72,80,253,237,185,218
5474
.byte 94,21,70,87,167,141,157,132
5475
.byte 144,216,171,0,140,188,211,10
5476
.byte 247,228,88,5,184,179,69,6
5477
.byte 208,44,30,143,202,63,15,2
5478
.byte 193,175,189,3,1,19,138,107
5479
.byte 58,145,17,65,79,103,220,234
5480
.byte 151,242,207,206,240,180,230,115
5481
.byte 150,172,116,34,231,173,53,133
5482
.byte 226,249,55,232,28,117,223,110
5483
.byte 71,241,26,113,29,41,197,137
5484
.byte 111,183,98,14,170,24,190,27
5485
.byte 252,86,62,75,198,210,121,32
5486
.byte 154,219,192,254,120,205,90,244
5487
.byte 31,221,168,51,136,7,199,49
5488
.byte 177,18,16,89,39,128,236,95
5489
.byte 96,81,127,169,25,181,74,13
5490
.byte 45,229,122,159,147,201,156,239
5491
.byte 160,224,59,77,174,42,245,176
5492
.byte 200,235,187,60,131,83,153,97
5493
.byte 23,43,4,126,186,119,214,38
5494
.byte 225,105,20,99,85,33,12,125
5495
.byte 82,9,106,213,48,54,165,56
5496
.byte 191,64,163,158,129,243,215,251
5497
.byte 124,227,57,130,155,47,255,135
5498
.byte 52,142,67,68,196,222,233,203
5499
.byte 84,123,148,50,166,194,35,61
5500
.byte 238,76,149,11,66,250,195,78
5501
.byte 8,46,161,102,40,217,36,178
5502
.byte 118,91,162,73,109,139,209,37
5503
.byte 114,248,246,100,134,104,152,22
5504
.byte 212,164,92,204,93,101,182,146
5505
.byte 108,112,72,80,253,237,185,218
5506
.byte 94,21,70,87,167,141,157,132
5507
.byte 144,216,171,0,140,188,211,10
5508
.byte 247,228,88,5,184,179,69,6
5509
.byte 208,44,30,143,202,63,15,2
5510
.byte 193,175,189,3,1,19,138,107
5511
.byte 58,145,17,65,79,103,220,234
5512
.byte 151,242,207,206,240,180,230,115
5513
.byte 150,172,116,34,231,173,53,133
5514
.byte 226,249,55,232,28,117,223,110
5515
.byte 71,241,26,113,29,41,197,137
5516
.byte 111,183,98,14,170,24,190,27
5517
.byte 252,86,62,75,198,210,121,32
5518
.byte 154,219,192,254,120,205,90,244
5519
.byte 31,221,168,51,136,7,199,49
5520
.byte 177,18,16,89,39,128,236,95
5521
.byte 96,81,127,169,25,181,74,13
5522
.byte 45,229,122,159,147,201,156,239
5523
.byte 160,224,59,77,174,42,245,176
5524
.byte 200,235,187,60,131,83,153,97
5525
.byte 23,43,4,126,186,119,214,38
5526
.byte 225,105,20,99,85,33,12,125
5527
.size _x86_AES_decrypt,.-_x86_AES_decrypt
5528
.globl AES_decrypt
5529
.type AES_decrypt,@function
5530
.align 16
5531
AES_decrypt:
5532
.L_AES_decrypt_begin:
5533
#ifdef __CET__
5534
5535
.byte 243,15,30,251
5536
#endif
5537
5538
pushl %ebp
5539
pushl %ebx
5540
pushl %esi
5541
pushl %edi
5542
movl 20(%esp),%esi
5543
movl 28(%esp),%edi
5544
movl %esp,%eax
5545
subl $36,%esp
5546
andl $-64,%esp
5547
leal -127(%edi),%ebx
5548
subl %esp,%ebx
5549
negl %ebx
5550
andl $960,%ebx
5551
subl %ebx,%esp
5552
addl $4,%esp
5553
movl %eax,28(%esp)
5554
call .L010pic_point
5555
.L010pic_point:
5556
popl %ebp
5557
leal OPENSSL_ia32cap_P,%eax
5558
leal .LAES_Td-.L010pic_point(%ebp),%ebp
5559
leal 764(%esp),%ebx
5560
subl %ebp,%ebx
5561
andl $768,%ebx
5562
leal 2176(%ebp,%ebx,1),%ebp
5563
btl $25,(%eax)
5564
jnc .L011x86
5565
movq (%esi),%mm0
5566
movq 8(%esi),%mm4
5567
call _sse_AES_decrypt_compact
5568
movl 28(%esp),%esp
5569
movl 24(%esp),%esi
5570
movq %mm0,(%esi)
5571
movq %mm4,8(%esi)
5572
emms
5573
popl %edi
5574
popl %esi
5575
popl %ebx
5576
popl %ebp
5577
ret
5578
.align 16
5579
.L011x86:
5580
movl %ebp,24(%esp)
5581
movl (%esi),%eax
5582
movl 4(%esi),%ebx
5583
movl 8(%esi),%ecx
5584
movl 12(%esi),%edx
5585
call _x86_AES_decrypt_compact
5586
movl 28(%esp),%esp
5587
movl 24(%esp),%esi
5588
movl %eax,(%esi)
5589
movl %ebx,4(%esi)
5590
movl %ecx,8(%esi)
5591
movl %edx,12(%esi)
5592
popl %edi
5593
popl %esi
5594
popl %ebx
5595
popl %ebp
5596
ret
5597
.size AES_decrypt,.-.L_AES_decrypt_begin
5598
.globl AES_cbc_encrypt
5599
.type AES_cbc_encrypt,@function
5600
.align 16
5601
AES_cbc_encrypt:
5602
.L_AES_cbc_encrypt_begin:
5603
#ifdef __CET__
5604
5605
.byte 243,15,30,251
5606
#endif
5607
5608
pushl %ebp
5609
pushl %ebx
5610
pushl %esi
5611
pushl %edi
5612
movl 28(%esp),%ecx
5613
cmpl $0,%ecx
5614
je .L012drop_out
5615
call .L013pic_point
5616
.L013pic_point:
5617
popl %ebp
5618
leal OPENSSL_ia32cap_P,%eax
5619
cmpl $0,40(%esp)
5620
leal .LAES_Te-.L013pic_point(%ebp),%ebp
5621
jne .L014picked_te
5622
leal .LAES_Td-.LAES_Te(%ebp),%ebp
5623
.L014picked_te:
5624
pushfl
5625
cld
5626
cmpl $512,%ecx
5627
jb .L015slow_way
5628
testl $15,%ecx
5629
jnz .L015slow_way
5630
btl $28,(%eax)
5631
jc .L015slow_way
5632
leal -324(%esp),%esi
5633
andl $-64,%esi
5634
movl %ebp,%eax
5635
leal 2304(%ebp),%ebx
5636
movl %esi,%edx
5637
andl $4095,%eax
5638
andl $4095,%ebx
5639
andl $4095,%edx
5640
cmpl %ebx,%edx
5641
jb .L016tbl_break_out
5642
subl %ebx,%edx
5643
subl %edx,%esi
5644
jmp .L017tbl_ok
5645
.align 4
5646
.L016tbl_break_out:
5647
subl %eax,%edx
5648
andl $4095,%edx
5649
addl $384,%edx
5650
subl %edx,%esi
5651
.align 4
5652
.L017tbl_ok:
5653
leal 24(%esp),%edx
5654
xchgl %esi,%esp
5655
addl $4,%esp
5656
movl %ebp,24(%esp)
5657
movl %esi,28(%esp)
5658
movl (%edx),%eax
5659
movl 4(%edx),%ebx
5660
movl 12(%edx),%edi
5661
movl 16(%edx),%esi
5662
movl 20(%edx),%edx
5663
movl %eax,32(%esp)
5664
movl %ebx,36(%esp)
5665
movl %ecx,40(%esp)
5666
movl %edi,44(%esp)
5667
movl %esi,48(%esp)
5668
movl $0,316(%esp)
5669
movl %edi,%ebx
5670
movl $61,%ecx
5671
subl %ebp,%ebx
5672
movl %edi,%esi
5673
andl $4095,%ebx
5674
leal 76(%esp),%edi
5675
cmpl $2304,%ebx
5676
jb .L018do_copy
5677
cmpl $3852,%ebx
5678
jb .L019skip_copy
5679
.align 4
5680
.L018do_copy:
5681
movl %edi,44(%esp)
5682
.long 2784229001
5683
.L019skip_copy:
5684
movl $16,%edi
5685
.align 4
5686
.L020prefetch_tbl:
5687
movl (%ebp),%eax
5688
movl 32(%ebp),%ebx
5689
movl 64(%ebp),%ecx
5690
movl 96(%ebp),%esi
5691
leal 128(%ebp),%ebp
5692
subl $1,%edi
5693
jnz .L020prefetch_tbl
5694
subl $2048,%ebp
5695
movl 32(%esp),%esi
5696
movl 48(%esp),%edi
5697
cmpl $0,%edx
5698
je .L021fast_decrypt
5699
movl (%edi),%eax
5700
movl 4(%edi),%ebx
5701
.align 16
5702
.L022fast_enc_loop:
5703
movl 8(%edi),%ecx
5704
movl 12(%edi),%edx
5705
xorl (%esi),%eax
5706
xorl 4(%esi),%ebx
5707
xorl 8(%esi),%ecx
5708
xorl 12(%esi),%edx
5709
movl 44(%esp),%edi
5710
call _x86_AES_encrypt
5711
movl 32(%esp),%esi
5712
movl 36(%esp),%edi
5713
movl %eax,(%edi)
5714
movl %ebx,4(%edi)
5715
movl %ecx,8(%edi)
5716
movl %edx,12(%edi)
5717
leal 16(%esi),%esi
5718
movl 40(%esp),%ecx
5719
movl %esi,32(%esp)
5720
leal 16(%edi),%edx
5721
movl %edx,36(%esp)
5722
subl $16,%ecx
5723
movl %ecx,40(%esp)
5724
jnz .L022fast_enc_loop
5725
movl 48(%esp),%esi
5726
movl 8(%edi),%ecx
5727
movl 12(%edi),%edx
5728
movl %eax,(%esi)
5729
movl %ebx,4(%esi)
5730
movl %ecx,8(%esi)
5731
movl %edx,12(%esi)
5732
cmpl $0,316(%esp)
5733
movl 44(%esp),%edi
5734
je .L023skip_ezero
5735
movl $60,%ecx
5736
xorl %eax,%eax
5737
.align 4
5738
.long 2884892297
5739
.L023skip_ezero:
5740
movl 28(%esp),%esp
5741
popfl
5742
.L012drop_out:
5743
popl %edi
5744
popl %esi
5745
popl %ebx
5746
popl %ebp
5747
ret
5748
pushfl
5749
.align 16
5750
.L021fast_decrypt:
5751
cmpl 36(%esp),%esi
5752
je .L024fast_dec_in_place
5753
movl %edi,52(%esp)
5754
.align 4
5755
.align 16
5756
.L025fast_dec_loop:
5757
movl (%esi),%eax
5758
movl 4(%esi),%ebx
5759
movl 8(%esi),%ecx
5760
movl 12(%esi),%edx
5761
movl 44(%esp),%edi
5762
call _x86_AES_decrypt
5763
movl 52(%esp),%edi
5764
movl 40(%esp),%esi
5765
xorl (%edi),%eax
5766
xorl 4(%edi),%ebx
5767
xorl 8(%edi),%ecx
5768
xorl 12(%edi),%edx
5769
movl 36(%esp),%edi
5770
movl 32(%esp),%esi
5771
movl %eax,(%edi)
5772
movl %ebx,4(%edi)
5773
movl %ecx,8(%edi)
5774
movl %edx,12(%edi)
5775
movl 40(%esp),%ecx
5776
movl %esi,52(%esp)
5777
leal 16(%esi),%esi
5778
movl %esi,32(%esp)
5779
leal 16(%edi),%edi
5780
movl %edi,36(%esp)
5781
subl $16,%ecx
5782
movl %ecx,40(%esp)
5783
jnz .L025fast_dec_loop
5784
movl 52(%esp),%edi
5785
movl 48(%esp),%esi
5786
movl (%edi),%eax
5787
movl 4(%edi),%ebx
5788
movl 8(%edi),%ecx
5789
movl 12(%edi),%edx
5790
movl %eax,(%esi)
5791
movl %ebx,4(%esi)
5792
movl %ecx,8(%esi)
5793
movl %edx,12(%esi)
5794
jmp .L026fast_dec_out
5795
.align 16
5796
.L024fast_dec_in_place:
5797
.L027fast_dec_in_place_loop:
5798
movl (%esi),%eax
5799
movl 4(%esi),%ebx
5800
movl 8(%esi),%ecx
5801
movl 12(%esi),%edx
5802
leal 60(%esp),%edi
5803
movl %eax,(%edi)
5804
movl %ebx,4(%edi)
5805
movl %ecx,8(%edi)
5806
movl %edx,12(%edi)
5807
movl 44(%esp),%edi
5808
call _x86_AES_decrypt
5809
movl 48(%esp),%edi
5810
movl 36(%esp),%esi
5811
xorl (%edi),%eax
5812
xorl 4(%edi),%ebx
5813
xorl 8(%edi),%ecx
5814
xorl 12(%edi),%edx
5815
movl %eax,(%esi)
5816
movl %ebx,4(%esi)
5817
movl %ecx,8(%esi)
5818
movl %edx,12(%esi)
5819
leal 16(%esi),%esi
5820
movl %esi,36(%esp)
5821
leal 60(%esp),%esi
5822
movl (%esi),%eax
5823
movl 4(%esi),%ebx
5824
movl 8(%esi),%ecx
5825
movl 12(%esi),%edx
5826
movl %eax,(%edi)
5827
movl %ebx,4(%edi)
5828
movl %ecx,8(%edi)
5829
movl %edx,12(%edi)
5830
movl 32(%esp),%esi
5831
movl 40(%esp),%ecx
5832
leal 16(%esi),%esi
5833
movl %esi,32(%esp)
5834
subl $16,%ecx
5835
movl %ecx,40(%esp)
5836
jnz .L027fast_dec_in_place_loop
5837
.align 4
5838
.L026fast_dec_out:
5839
cmpl $0,316(%esp)
5840
movl 44(%esp),%edi
5841
je .L028skip_dzero
5842
movl $60,%ecx
5843
xorl %eax,%eax
5844
.align 4
5845
.long 2884892297
5846
.L028skip_dzero:
5847
movl 28(%esp),%esp
5848
popfl
5849
popl %edi
5850
popl %esi
5851
popl %ebx
5852
popl %ebp
5853
ret
5854
pushfl
5855
.align 16
5856
.L015slow_way:
5857
movl (%eax),%eax
5858
movl 36(%esp),%edi
5859
leal -80(%esp),%esi
5860
andl $-64,%esi
5861
leal -143(%edi),%ebx
5862
subl %esi,%ebx
5863
negl %ebx
5864
andl $960,%ebx
5865
subl %ebx,%esi
5866
leal 768(%esi),%ebx
5867
subl %ebp,%ebx
5868
andl $768,%ebx
5869
leal 2176(%ebp,%ebx,1),%ebp
5870
leal 24(%esp),%edx
5871
xchgl %esi,%esp
5872
addl $4,%esp
5873
movl %ebp,24(%esp)
5874
movl %esi,28(%esp)
5875
movl %eax,52(%esp)
5876
movl (%edx),%eax
5877
movl 4(%edx),%ebx
5878
movl 16(%edx),%esi
5879
movl 20(%edx),%edx
5880
movl %eax,32(%esp)
5881
movl %ebx,36(%esp)
5882
movl %ecx,40(%esp)
5883
movl %edi,44(%esp)
5884
movl %esi,48(%esp)
5885
movl %esi,%edi
5886
movl %eax,%esi
5887
cmpl $0,%edx
5888
je .L029slow_decrypt
5889
cmpl $16,%ecx
5890
movl %ebx,%edx
5891
jb .L030slow_enc_tail
5892
btl $25,52(%esp)
5893
jnc .L031slow_enc_x86
5894
movq (%edi),%mm0
5895
movq 8(%edi),%mm4
5896
.align 16
5897
.L032slow_enc_loop_sse:
5898
pxor (%esi),%mm0
5899
pxor 8(%esi),%mm4
5900
movl 44(%esp),%edi
5901
call _sse_AES_encrypt_compact
5902
movl 32(%esp),%esi
5903
movl 36(%esp),%edi
5904
movl 40(%esp),%ecx
5905
movq %mm0,(%edi)
5906
movq %mm4,8(%edi)
5907
leal 16(%esi),%esi
5908
movl %esi,32(%esp)
5909
leal 16(%edi),%edx
5910
movl %edx,36(%esp)
5911
subl $16,%ecx
5912
cmpl $16,%ecx
5913
movl %ecx,40(%esp)
5914
jae .L032slow_enc_loop_sse
5915
testl $15,%ecx
5916
jnz .L030slow_enc_tail
5917
movl 48(%esp),%esi
5918
movq %mm0,(%esi)
5919
movq %mm4,8(%esi)
5920
emms
5921
movl 28(%esp),%esp
5922
popfl
5923
popl %edi
5924
popl %esi
5925
popl %ebx
5926
popl %ebp
5927
ret
5928
pushfl
5929
.align 16
5930
.L031slow_enc_x86:
5931
movl (%edi),%eax
5932
movl 4(%edi),%ebx
5933
.align 4
5934
.L033slow_enc_loop_x86:
5935
movl 8(%edi),%ecx
5936
movl 12(%edi),%edx
5937
xorl (%esi),%eax
5938
xorl 4(%esi),%ebx
5939
xorl 8(%esi),%ecx
5940
xorl 12(%esi),%edx
5941
movl 44(%esp),%edi
5942
call _x86_AES_encrypt_compact
5943
movl 32(%esp),%esi
5944
movl 36(%esp),%edi
5945
movl %eax,(%edi)
5946
movl %ebx,4(%edi)
5947
movl %ecx,8(%edi)
5948
movl %edx,12(%edi)
5949
movl 40(%esp),%ecx
5950
leal 16(%esi),%esi
5951
movl %esi,32(%esp)
5952
leal 16(%edi),%edx
5953
movl %edx,36(%esp)
5954
subl $16,%ecx
5955
cmpl $16,%ecx
5956
movl %ecx,40(%esp)
5957
jae .L033slow_enc_loop_x86
5958
testl $15,%ecx
5959
jnz .L030slow_enc_tail
5960
movl 48(%esp),%esi
5961
movl 8(%edi),%ecx
5962
movl 12(%edi),%edx
5963
movl %eax,(%esi)
5964
movl %ebx,4(%esi)
5965
movl %ecx,8(%esi)
5966
movl %edx,12(%esi)
5967
movl 28(%esp),%esp
5968
popfl
5969
popl %edi
5970
popl %esi
5971
popl %ebx
5972
popl %ebp
5973
ret
5974
pushfl
5975
.align 16
5976
.L030slow_enc_tail:
5977
emms
5978
movl %edx,%edi
5979
movl $16,%ebx
5980
subl %ecx,%ebx
5981
cmpl %esi,%edi
5982
je .L034enc_in_place
5983
.align 4
5984
.long 2767451785
5985
jmp .L035enc_skip_in_place
5986
.L034enc_in_place:
5987
leal (%edi,%ecx,1),%edi
5988
.L035enc_skip_in_place:
5989
movl %ebx,%ecx
5990
xorl %eax,%eax
5991
.align 4
5992
.long 2868115081
5993
movl 48(%esp),%edi
5994
movl %edx,%esi
5995
movl (%edi),%eax
5996
movl 4(%edi),%ebx
5997
movl $16,40(%esp)
5998
jmp .L033slow_enc_loop_x86
5999
.align 16
6000
.L029slow_decrypt:
6001
btl $25,52(%esp)
6002
jnc .L036slow_dec_loop_x86
6003
.align 4
6004
.L037slow_dec_loop_sse:
6005
movq (%esi),%mm0
6006
movq 8(%esi),%mm4
6007
movl 44(%esp),%edi
6008
call _sse_AES_decrypt_compact
6009
movl 32(%esp),%esi
6010
leal 60(%esp),%eax
6011
movl 36(%esp),%ebx
6012
movl 40(%esp),%ecx
6013
movl 48(%esp),%edi
6014
movq (%esi),%mm1
6015
movq 8(%esi),%mm5
6016
pxor (%edi),%mm0
6017
pxor 8(%edi),%mm4
6018
movq %mm1,(%edi)
6019
movq %mm5,8(%edi)
6020
subl $16,%ecx
6021
jc .L038slow_dec_partial_sse
6022
movq %mm0,(%ebx)
6023
movq %mm4,8(%ebx)
6024
leal 16(%ebx),%ebx
6025
movl %ebx,36(%esp)
6026
leal 16(%esi),%esi
6027
movl %esi,32(%esp)
6028
movl %ecx,40(%esp)
6029
jnz .L037slow_dec_loop_sse
6030
emms
6031
movl 28(%esp),%esp
6032
popfl
6033
popl %edi
6034
popl %esi
6035
popl %ebx
6036
popl %ebp
6037
ret
6038
pushfl
6039
.align 16
6040
.L038slow_dec_partial_sse:
6041
movq %mm0,(%eax)
6042
movq %mm4,8(%eax)
6043
emms
6044
addl $16,%ecx
6045
movl %ebx,%edi
6046
movl %eax,%esi
6047
.align 4
6048
.long 2767451785
6049
movl 28(%esp),%esp
6050
popfl
6051
popl %edi
6052
popl %esi
6053
popl %ebx
6054
popl %ebp
6055
ret
6056
pushfl
6057
.align 16
6058
.L036slow_dec_loop_x86:
6059
movl (%esi),%eax
6060
movl 4(%esi),%ebx
6061
movl 8(%esi),%ecx
6062
movl 12(%esi),%edx
6063
leal 60(%esp),%edi
6064
movl %eax,(%edi)
6065
movl %ebx,4(%edi)
6066
movl %ecx,8(%edi)
6067
movl %edx,12(%edi)
6068
movl 44(%esp),%edi
6069
call _x86_AES_decrypt_compact
6070
movl 48(%esp),%edi
6071
movl 40(%esp),%esi
6072
xorl (%edi),%eax
6073
xorl 4(%edi),%ebx
6074
xorl 8(%edi),%ecx
6075
xorl 12(%edi),%edx
6076
subl $16,%esi
6077
jc .L039slow_dec_partial_x86
6078
movl %esi,40(%esp)
6079
movl 36(%esp),%esi
6080
movl %eax,(%esi)
6081
movl %ebx,4(%esi)
6082
movl %ecx,8(%esi)
6083
movl %edx,12(%esi)
6084
leal 16(%esi),%esi
6085
movl %esi,36(%esp)
6086
leal 60(%esp),%esi
6087
movl (%esi),%eax
6088
movl 4(%esi),%ebx
6089
movl 8(%esi),%ecx
6090
movl 12(%esi),%edx
6091
movl %eax,(%edi)
6092
movl %ebx,4(%edi)
6093
movl %ecx,8(%edi)
6094
movl %edx,12(%edi)
6095
movl 32(%esp),%esi
6096
leal 16(%esi),%esi
6097
movl %esi,32(%esp)
6098
jnz .L036slow_dec_loop_x86
6099
movl 28(%esp),%esp
6100
popfl
6101
popl %edi
6102
popl %esi
6103
popl %ebx
6104
popl %ebp
6105
ret
6106
pushfl
6107
.align 16
6108
.L039slow_dec_partial_x86:
6109
leal 60(%esp),%esi
6110
movl %eax,(%esi)
6111
movl %ebx,4(%esi)
6112
movl %ecx,8(%esi)
6113
movl %edx,12(%esi)
6114
movl 32(%esp),%esi
6115
movl (%esi),%eax
6116
movl 4(%esi),%ebx
6117
movl 8(%esi),%ecx
6118
movl 12(%esi),%edx
6119
movl %eax,(%edi)
6120
movl %ebx,4(%edi)
6121
movl %ecx,8(%edi)
6122
movl %edx,12(%edi)
6123
movl 40(%esp),%ecx
6124
movl 36(%esp),%edi
6125
leal 60(%esp),%esi
6126
.align 4
6127
.long 2767451785
6128
movl 28(%esp),%esp
6129
popfl
6130
popl %edi
6131
popl %esi
6132
popl %ebx
6133
popl %ebp
6134
ret
6135
.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
6136
.type _x86_AES_set_encrypt_key,@function
6137
.align 16
6138
_x86_AES_set_encrypt_key:
6139
#ifdef __CET__
6140
6141
.byte 243,15,30,251
6142
#endif
6143
6144
pushl %ebp
6145
pushl %ebx
6146
pushl %esi
6147
pushl %edi
6148
movl 24(%esp),%esi
6149
movl 32(%esp),%edi
6150
testl $-1,%esi
6151
jz .L040badpointer
6152
testl $-1,%edi
6153
jz .L040badpointer
6154
call .L041pic_point
6155
.L041pic_point:
6156
popl %ebp
6157
leal .LAES_Te-.L041pic_point(%ebp),%ebp
6158
leal 2176(%ebp),%ebp
6159
movl -128(%ebp),%eax
6160
movl -96(%ebp),%ebx
6161
movl -64(%ebp),%ecx
6162
movl -32(%ebp),%edx
6163
movl (%ebp),%eax
6164
movl 32(%ebp),%ebx
6165
movl 64(%ebp),%ecx
6166
movl 96(%ebp),%edx
6167
movl 28(%esp),%ecx
6168
cmpl $128,%ecx
6169
je .L04210rounds
6170
cmpl $192,%ecx
6171
je .L04312rounds
6172
cmpl $256,%ecx
6173
je .L04414rounds
6174
movl $-2,%eax
6175
jmp .L045exit
6176
.L04210rounds:
6177
movl (%esi),%eax
6178
movl 4(%esi),%ebx
6179
movl 8(%esi),%ecx
6180
movl 12(%esi),%edx
6181
movl %eax,(%edi)
6182
movl %ebx,4(%edi)
6183
movl %ecx,8(%edi)
6184
movl %edx,12(%edi)
6185
xorl %ecx,%ecx
6186
jmp .L04610shortcut
6187
.align 4
6188
.L04710loop:
6189
movl (%edi),%eax
6190
movl 12(%edi),%edx
6191
.L04610shortcut:
6192
movzbl %dl,%esi
6193
movzbl -128(%ebp,%esi,1),%ebx
6194
movzbl %dh,%esi
6195
shll $24,%ebx
6196
xorl %ebx,%eax
6197
movzbl -128(%ebp,%esi,1),%ebx
6198
shrl $16,%edx
6199
movzbl %dl,%esi
6200
xorl %ebx,%eax
6201
movzbl -128(%ebp,%esi,1),%ebx
6202
movzbl %dh,%esi
6203
shll $8,%ebx
6204
xorl %ebx,%eax
6205
movzbl -128(%ebp,%esi,1),%ebx
6206
shll $16,%ebx
6207
xorl %ebx,%eax
6208
xorl 896(%ebp,%ecx,4),%eax
6209
movl %eax,16(%edi)
6210
xorl 4(%edi),%eax
6211
movl %eax,20(%edi)
6212
xorl 8(%edi),%eax
6213
movl %eax,24(%edi)
6214
xorl 12(%edi),%eax
6215
movl %eax,28(%edi)
6216
incl %ecx
6217
addl $16,%edi
6218
cmpl $10,%ecx
6219
jl .L04710loop
6220
movl $10,80(%edi)
6221
xorl %eax,%eax
6222
jmp .L045exit
6223
.L04312rounds:
6224
movl (%esi),%eax
6225
movl 4(%esi),%ebx
6226
movl 8(%esi),%ecx
6227
movl 12(%esi),%edx
6228
movl %eax,(%edi)
6229
movl %ebx,4(%edi)
6230
movl %ecx,8(%edi)
6231
movl %edx,12(%edi)
6232
movl 16(%esi),%ecx
6233
movl 20(%esi),%edx
6234
movl %ecx,16(%edi)
6235
movl %edx,20(%edi)
6236
xorl %ecx,%ecx
6237
jmp .L04812shortcut
6238
.align 4
6239
.L04912loop:
6240
movl (%edi),%eax
6241
movl 20(%edi),%edx
6242
.L04812shortcut:
6243
movzbl %dl,%esi
6244
movzbl -128(%ebp,%esi,1),%ebx
6245
movzbl %dh,%esi
6246
shll $24,%ebx
6247
xorl %ebx,%eax
6248
movzbl -128(%ebp,%esi,1),%ebx
6249
shrl $16,%edx
6250
movzbl %dl,%esi
6251
xorl %ebx,%eax
6252
movzbl -128(%ebp,%esi,1),%ebx
6253
movzbl %dh,%esi
6254
shll $8,%ebx
6255
xorl %ebx,%eax
6256
movzbl -128(%ebp,%esi,1),%ebx
6257
shll $16,%ebx
6258
xorl %ebx,%eax
6259
xorl 896(%ebp,%ecx,4),%eax
6260
movl %eax,24(%edi)
6261
xorl 4(%edi),%eax
6262
movl %eax,28(%edi)
6263
xorl 8(%edi),%eax
6264
movl %eax,32(%edi)
6265
xorl 12(%edi),%eax
6266
movl %eax,36(%edi)
6267
cmpl $7,%ecx
6268
je .L05012break
6269
incl %ecx
6270
xorl 16(%edi),%eax
6271
movl %eax,40(%edi)
6272
xorl 20(%edi),%eax
6273
movl %eax,44(%edi)
6274
addl $24,%edi
6275
jmp .L04912loop
6276
.L05012break:
6277
movl $12,72(%edi)
6278
xorl %eax,%eax
6279
jmp .L045exit
6280
.L04414rounds:
6281
movl (%esi),%eax
6282
movl 4(%esi),%ebx
6283
movl 8(%esi),%ecx
6284
movl 12(%esi),%edx
6285
movl %eax,(%edi)
6286
movl %ebx,4(%edi)
6287
movl %ecx,8(%edi)
6288
movl %edx,12(%edi)
6289
movl 16(%esi),%eax
6290
movl 20(%esi),%ebx
6291
movl 24(%esi),%ecx
6292
movl 28(%esi),%edx
6293
movl %eax,16(%edi)
6294
movl %ebx,20(%edi)
6295
movl %ecx,24(%edi)
6296
movl %edx,28(%edi)
6297
xorl %ecx,%ecx
6298
jmp .L05114shortcut
6299
.align 4
6300
.L05214loop:
6301
movl 28(%edi),%edx
6302
.L05114shortcut:
6303
movl (%edi),%eax
6304
movzbl %dl,%esi
6305
movzbl -128(%ebp,%esi,1),%ebx
6306
movzbl %dh,%esi
6307
shll $24,%ebx
6308
xorl %ebx,%eax
6309
movzbl -128(%ebp,%esi,1),%ebx
6310
shrl $16,%edx
6311
movzbl %dl,%esi
6312
xorl %ebx,%eax
6313
movzbl -128(%ebp,%esi,1),%ebx
6314
movzbl %dh,%esi
6315
shll $8,%ebx
6316
xorl %ebx,%eax
6317
movzbl -128(%ebp,%esi,1),%ebx
6318
shll $16,%ebx
6319
xorl %ebx,%eax
6320
xorl 896(%ebp,%ecx,4),%eax
6321
movl %eax,32(%edi)
6322
xorl 4(%edi),%eax
6323
movl %eax,36(%edi)
6324
xorl 8(%edi),%eax
6325
movl %eax,40(%edi)
6326
xorl 12(%edi),%eax
6327
movl %eax,44(%edi)
6328
cmpl $6,%ecx
6329
je .L05314break
6330
incl %ecx
6331
movl %eax,%edx
6332
movl 16(%edi),%eax
6333
movzbl %dl,%esi
6334
movzbl -128(%ebp,%esi,1),%ebx
6335
movzbl %dh,%esi
6336
xorl %ebx,%eax
6337
movzbl -128(%ebp,%esi,1),%ebx
6338
shrl $16,%edx
6339
shll $8,%ebx
6340
movzbl %dl,%esi
6341
xorl %ebx,%eax
6342
movzbl -128(%ebp,%esi,1),%ebx
6343
movzbl %dh,%esi
6344
shll $16,%ebx
6345
xorl %ebx,%eax
6346
movzbl -128(%ebp,%esi,1),%ebx
6347
shll $24,%ebx
6348
xorl %ebx,%eax
6349
movl %eax,48(%edi)
6350
xorl 20(%edi),%eax
6351
movl %eax,52(%edi)
6352
xorl 24(%edi),%eax
6353
movl %eax,56(%edi)
6354
xorl 28(%edi),%eax
6355
movl %eax,60(%edi)
6356
addl $32,%edi
6357
jmp .L05214loop
6358
.L05314break:
6359
movl $14,48(%edi)
6360
xorl %eax,%eax
6361
jmp .L045exit
6362
.L040badpointer:
6363
movl $-1,%eax
6364
.L045exit:
6365
popl %edi
6366
popl %esi
6367
popl %ebx
6368
popl %ebp
6369
ret
6370
.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
6371
.globl AES_set_encrypt_key
6372
.type AES_set_encrypt_key,@function
6373
.align 16
6374
AES_set_encrypt_key:
6375
.L_AES_set_encrypt_key_begin:
6376
#ifdef __CET__
6377
6378
.byte 243,15,30,251
6379
#endif
6380
6381
call _x86_AES_set_encrypt_key
6382
ret
6383
.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin
6384
.globl AES_set_decrypt_key
6385
.type AES_set_decrypt_key,@function
6386
.align 16
6387
AES_set_decrypt_key:
6388
.L_AES_set_decrypt_key_begin:
6389
#ifdef __CET__
6390
6391
.byte 243,15,30,251
6392
#endif
6393
6394
call _x86_AES_set_encrypt_key
6395
cmpl $0,%eax
6396
je .L054proceed
6397
ret
6398
.L054proceed:
6399
pushl %ebp
6400
pushl %ebx
6401
pushl %esi
6402
pushl %edi
6403
movl 28(%esp),%esi
6404
movl 240(%esi),%ecx
6405
leal (,%ecx,4),%ecx
6406
leal (%esi,%ecx,4),%edi
6407
.align 4
6408
.L055invert:
6409
movl (%esi),%eax
6410
movl 4(%esi),%ebx
6411
movl (%edi),%ecx
6412
movl 4(%edi),%edx
6413
movl %eax,(%edi)
6414
movl %ebx,4(%edi)
6415
movl %ecx,(%esi)
6416
movl %edx,4(%esi)
6417
movl 8(%esi),%eax
6418
movl 12(%esi),%ebx
6419
movl 8(%edi),%ecx
6420
movl 12(%edi),%edx
6421
movl %eax,8(%edi)
6422
movl %ebx,12(%edi)
6423
movl %ecx,8(%esi)
6424
movl %edx,12(%esi)
6425
addl $16,%esi
6426
subl $16,%edi
6427
cmpl %edi,%esi
6428
jne .L055invert
6429
movl 28(%esp),%edi
6430
movl 240(%edi),%esi
6431
leal -2(%esi,%esi,1),%esi
6432
leal (%edi,%esi,8),%esi
6433
movl %esi,28(%esp)
6434
movl 16(%edi),%eax
6435
.align 4
6436
.L056permute:
6437
addl $16,%edi
6438
movl $2155905152,%ebp
6439
andl %eax,%ebp
6440
leal (%eax,%eax,1),%ebx
6441
movl %ebp,%esi
6442
shrl $7,%ebp
6443
subl %ebp,%esi
6444
andl $4278124286,%ebx
6445
andl $454761243,%esi
6446
xorl %esi,%ebx
6447
movl $2155905152,%ebp
6448
andl %ebx,%ebp
6449
leal (%ebx,%ebx,1),%ecx
6450
movl %ebp,%esi
6451
shrl $7,%ebp
6452
subl %ebp,%esi
6453
andl $4278124286,%ecx
6454
andl $454761243,%esi
6455
xorl %eax,%ebx
6456
xorl %esi,%ecx
6457
movl $2155905152,%ebp
6458
andl %ecx,%ebp
6459
leal (%ecx,%ecx,1),%edx
6460
movl %ebp,%esi
6461
shrl $7,%ebp
6462
xorl %eax,%ecx
6463
subl %ebp,%esi
6464
andl $4278124286,%edx
6465
andl $454761243,%esi
6466
roll $8,%eax
6467
xorl %esi,%edx
6468
movl 4(%edi),%ebp
6469
xorl %ebx,%eax
6470
xorl %edx,%ebx
6471
xorl %ecx,%eax
6472
roll $24,%ebx
6473
xorl %edx,%ecx
6474
xorl %edx,%eax
6475
roll $16,%ecx
6476
xorl %ebx,%eax
6477
roll $8,%edx
6478
xorl %ecx,%eax
6479
movl %ebp,%ebx
6480
xorl %edx,%eax
6481
movl %eax,(%edi)
6482
movl $2155905152,%ebp
6483
andl %ebx,%ebp
6484
leal (%ebx,%ebx,1),%ecx
6485
movl %ebp,%esi
6486
shrl $7,%ebp
6487
subl %ebp,%esi
6488
andl $4278124286,%ecx
6489
andl $454761243,%esi
6490
xorl %esi,%ecx
6491
movl $2155905152,%ebp
6492
andl %ecx,%ebp
6493
leal (%ecx,%ecx,1),%edx
6494
movl %ebp,%esi
6495
shrl $7,%ebp
6496
subl %ebp,%esi
6497
andl $4278124286,%edx
6498
andl $454761243,%esi
6499
xorl %ebx,%ecx
6500
xorl %esi,%edx
6501
movl $2155905152,%ebp
6502
andl %edx,%ebp
6503
leal (%edx,%edx,1),%eax
6504
movl %ebp,%esi
6505
shrl $7,%ebp
6506
xorl %ebx,%edx
6507
subl %ebp,%esi
6508
andl $4278124286,%eax
6509
andl $454761243,%esi
6510
roll $8,%ebx
6511
xorl %esi,%eax
6512
movl 8(%edi),%ebp
6513
xorl %ecx,%ebx
6514
xorl %eax,%ecx
6515
xorl %edx,%ebx
6516
roll $24,%ecx
6517
xorl %eax,%edx
6518
xorl %eax,%ebx
6519
roll $16,%edx
6520
xorl %ecx,%ebx
6521
roll $8,%eax
6522
xorl %edx,%ebx
6523
movl %ebp,%ecx
6524
xorl %eax,%ebx
6525
movl %ebx,4(%edi)
6526
movl $2155905152,%ebp
6527
andl %ecx,%ebp
6528
leal (%ecx,%ecx,1),%edx
6529
movl %ebp,%esi
6530
shrl $7,%ebp
6531
subl %ebp,%esi
6532
andl $4278124286,%edx
6533
andl $454761243,%esi
6534
xorl %esi,%edx
6535
movl $2155905152,%ebp
6536
andl %edx,%ebp
6537
leal (%edx,%edx,1),%eax
6538
movl %ebp,%esi
6539
shrl $7,%ebp
6540
subl %ebp,%esi
6541
andl $4278124286,%eax
6542
andl $454761243,%esi
6543
xorl %ecx,%edx
6544
xorl %esi,%eax
6545
movl $2155905152,%ebp
6546
andl %eax,%ebp
6547
leal (%eax,%eax,1),%ebx
6548
movl %ebp,%esi
6549
shrl $7,%ebp
6550
xorl %ecx,%eax
6551
subl %ebp,%esi
6552
andl $4278124286,%ebx
6553
andl $454761243,%esi
6554
roll $8,%ecx
6555
xorl %esi,%ebx
6556
movl 12(%edi),%ebp
6557
xorl %edx,%ecx
6558
xorl %ebx,%edx
6559
xorl %eax,%ecx
6560
roll $24,%edx
6561
xorl %ebx,%eax
6562
xorl %ebx,%ecx
6563
roll $16,%eax
6564
xorl %edx,%ecx
6565
roll $8,%ebx
6566
xorl %eax,%ecx
6567
movl %ebp,%edx
6568
xorl %ebx,%ecx
6569
movl %ecx,8(%edi)
6570
movl $2155905152,%ebp
6571
andl %edx,%ebp
6572
leal (%edx,%edx,1),%eax
6573
movl %ebp,%esi
6574
shrl $7,%ebp
6575
subl %ebp,%esi
6576
andl $4278124286,%eax
6577
andl $454761243,%esi
6578
xorl %esi,%eax
6579
movl $2155905152,%ebp
6580
andl %eax,%ebp
6581
leal (%eax,%eax,1),%ebx
6582
movl %ebp,%esi
6583
shrl $7,%ebp
6584
subl %ebp,%esi
6585
andl $4278124286,%ebx
6586
andl $454761243,%esi
6587
xorl %edx,%eax
6588
xorl %esi,%ebx
6589
movl $2155905152,%ebp
6590
andl %ebx,%ebp
6591
leal (%ebx,%ebx,1),%ecx
6592
movl %ebp,%esi
6593
shrl $7,%ebp
6594
xorl %edx,%ebx
6595
subl %ebp,%esi
6596
andl $4278124286,%ecx
6597
andl $454761243,%esi
6598
roll $8,%edx
6599
xorl %esi,%ecx
6600
movl 16(%edi),%ebp
6601
xorl %eax,%edx
6602
xorl %ecx,%eax
6603
xorl %ebx,%edx
6604
roll $24,%eax
6605
xorl %ecx,%ebx
6606
xorl %ecx,%edx
6607
roll $16,%ebx
6608
xorl %eax,%edx
6609
roll $8,%ecx
6610
xorl %ebx,%edx
6611
movl %ebp,%eax
6612
xorl %ecx,%edx
6613
movl %edx,12(%edi)
6614
cmpl 28(%esp),%edi
6615
jb .L056permute
6616
xorl %eax,%eax
6617
popl %edi
6618
popl %esi
6619
popl %ebx
6620
popl %ebp
6621
ret
6622
.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin
6623
.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
6624
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
6625
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
6626
.comm OPENSSL_ia32cap_P,40,4
6627
6628
.section ".note.gnu.property", "a"
6629
.p2align 2
6630
.long 1f - 0f
6631
.long 4f - 1f
6632
.long 5
6633
0:
6634
.asciz "GNU"
6635
1:
6636
.p2align 2
6637
.long 0xc0000002
6638
.long 3f - 2f
6639
2:
6640
.long 3
6641
3:
6642
.p2align 2
6643
4:
6644
#endif
6645
6646