VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-elf/aes-586.S@ 98024

Last change on this file since 98024 was 97372, checked in by vboxsync, 2 years ago

libs: Switch to openssl-3.0.7, bugref:10317

File size: 67.4 KB
Line 
1.text
2.type _x86_AES_encrypt_compact,@function
3.align 16
4_x86_AES_encrypt_compact:
5 #ifdef __CET__
6
7.byte 243,15,30,251
8 #endif
9
10 movl %edi,20(%esp)
11 xorl (%edi),%eax
12 xorl 4(%edi),%ebx
13 xorl 8(%edi),%ecx
14 xorl 12(%edi),%edx
15 movl 240(%edi),%esi
16 leal -2(%esi,%esi,1),%esi
17 leal (%edi,%esi,8),%esi
18 movl %esi,24(%esp)
19 movl -128(%ebp),%edi
20 movl -96(%ebp),%esi
21 movl -64(%ebp),%edi
22 movl -32(%ebp),%esi
23 movl (%ebp),%edi
24 movl 32(%ebp),%esi
25 movl 64(%ebp),%edi
26 movl 96(%ebp),%esi
27.align 16
28.L000loop:
29 movl %eax,%esi
30 andl $255,%esi
31 movzbl -128(%ebp,%esi,1),%esi
32 movzbl %bh,%edi
33 movzbl -128(%ebp,%edi,1),%edi
34 shll $8,%edi
35 xorl %edi,%esi
36 movl %ecx,%edi
37 shrl $16,%edi
38 andl $255,%edi
39 movzbl -128(%ebp,%edi,1),%edi
40 shll $16,%edi
41 xorl %edi,%esi
42 movl %edx,%edi
43 shrl $24,%edi
44 movzbl -128(%ebp,%edi,1),%edi
45 shll $24,%edi
46 xorl %edi,%esi
47 movl %esi,4(%esp)
48
49 movl %ebx,%esi
50 andl $255,%esi
51 shrl $16,%ebx
52 movzbl -128(%ebp,%esi,1),%esi
53 movzbl %ch,%edi
54 movzbl -128(%ebp,%edi,1),%edi
55 shll $8,%edi
56 xorl %edi,%esi
57 movl %edx,%edi
58 shrl $16,%edi
59 andl $255,%edi
60 movzbl -128(%ebp,%edi,1),%edi
61 shll $16,%edi
62 xorl %edi,%esi
63 movl %eax,%edi
64 shrl $24,%edi
65 movzbl -128(%ebp,%edi,1),%edi
66 shll $24,%edi
67 xorl %edi,%esi
68 movl %esi,8(%esp)
69
70 movl %ecx,%esi
71 andl $255,%esi
72 shrl $24,%ecx
73 movzbl -128(%ebp,%esi,1),%esi
74 movzbl %dh,%edi
75 movzbl -128(%ebp,%edi,1),%edi
76 shll $8,%edi
77 xorl %edi,%esi
78 movl %eax,%edi
79 shrl $16,%edi
80 andl $255,%edx
81 andl $255,%edi
82 movzbl -128(%ebp,%edi,1),%edi
83 shll $16,%edi
84 xorl %edi,%esi
85 movzbl %bh,%edi
86 movzbl -128(%ebp,%edi,1),%edi
87 shll $24,%edi
88 xorl %edi,%esi
89
90 andl $255,%edx
91 movzbl -128(%ebp,%edx,1),%edx
92 movzbl %ah,%eax
93 movzbl -128(%ebp,%eax,1),%eax
94 shll $8,%eax
95 xorl %eax,%edx
96 movl 4(%esp),%eax
97 andl $255,%ebx
98 movzbl -128(%ebp,%ebx,1),%ebx
99 shll $16,%ebx
100 xorl %ebx,%edx
101 movl 8(%esp),%ebx
102 movzbl -128(%ebp,%ecx,1),%ecx
103 shll $24,%ecx
104 xorl %ecx,%edx
105 movl %esi,%ecx
106
107 movl $2155905152,%ebp
108 andl %ecx,%ebp
109 leal (%ecx,%ecx,1),%edi
110 movl %ebp,%esi
111 shrl $7,%ebp
112 andl $4278124286,%edi
113 subl %ebp,%esi
114 movl %ecx,%ebp
115 andl $454761243,%esi
116 rorl $16,%ebp
117 xorl %edi,%esi
118 movl %ecx,%edi
119 xorl %esi,%ecx
120 rorl $24,%edi
121 xorl %ebp,%esi
122 roll $24,%ecx
123 xorl %edi,%esi
124 movl $2155905152,%ebp
125 xorl %esi,%ecx
126 andl %edx,%ebp
127 leal (%edx,%edx,1),%edi
128 movl %ebp,%esi
129 shrl $7,%ebp
130 andl $4278124286,%edi
131 subl %ebp,%esi
132 movl %edx,%ebp
133 andl $454761243,%esi
134 rorl $16,%ebp
135 xorl %edi,%esi
136 movl %edx,%edi
137 xorl %esi,%edx
138 rorl $24,%edi
139 xorl %ebp,%esi
140 roll $24,%edx
141 xorl %edi,%esi
142 movl $2155905152,%ebp
143 xorl %esi,%edx
144 andl %eax,%ebp
145 leal (%eax,%eax,1),%edi
146 movl %ebp,%esi
147 shrl $7,%ebp
148 andl $4278124286,%edi
149 subl %ebp,%esi
150 movl %eax,%ebp
151 andl $454761243,%esi
152 rorl $16,%ebp
153 xorl %edi,%esi
154 movl %eax,%edi
155 xorl %esi,%eax
156 rorl $24,%edi
157 xorl %ebp,%esi
158 roll $24,%eax
159 xorl %edi,%esi
160 movl $2155905152,%ebp
161 xorl %esi,%eax
162 andl %ebx,%ebp
163 leal (%ebx,%ebx,1),%edi
164 movl %ebp,%esi
165 shrl $7,%ebp
166 andl $4278124286,%edi
167 subl %ebp,%esi
168 movl %ebx,%ebp
169 andl $454761243,%esi
170 rorl $16,%ebp
171 xorl %edi,%esi
172 movl %ebx,%edi
173 xorl %esi,%ebx
174 rorl $24,%edi
175 xorl %ebp,%esi
176 roll $24,%ebx
177 xorl %edi,%esi
178 xorl %esi,%ebx
179 movl 20(%esp),%edi
180 movl 28(%esp),%ebp
181 addl $16,%edi
182 xorl (%edi),%eax
183 xorl 4(%edi),%ebx
184 xorl 8(%edi),%ecx
185 xorl 12(%edi),%edx
186 cmpl 24(%esp),%edi
187 movl %edi,20(%esp)
188 jb .L000loop
189 movl %eax,%esi
190 andl $255,%esi
191 movzbl -128(%ebp,%esi,1),%esi
192 movzbl %bh,%edi
193 movzbl -128(%ebp,%edi,1),%edi
194 shll $8,%edi
195 xorl %edi,%esi
196 movl %ecx,%edi
197 shrl $16,%edi
198 andl $255,%edi
199 movzbl -128(%ebp,%edi,1),%edi
200 shll $16,%edi
201 xorl %edi,%esi
202 movl %edx,%edi
203 shrl $24,%edi
204 movzbl -128(%ebp,%edi,1),%edi
205 shll $24,%edi
206 xorl %edi,%esi
207 movl %esi,4(%esp)
208
209 movl %ebx,%esi
210 andl $255,%esi
211 shrl $16,%ebx
212 movzbl -128(%ebp,%esi,1),%esi
213 movzbl %ch,%edi
214 movzbl -128(%ebp,%edi,1),%edi
215 shll $8,%edi
216 xorl %edi,%esi
217 movl %edx,%edi
218 shrl $16,%edi
219 andl $255,%edi
220 movzbl -128(%ebp,%edi,1),%edi
221 shll $16,%edi
222 xorl %edi,%esi
223 movl %eax,%edi
224 shrl $24,%edi
225 movzbl -128(%ebp,%edi,1),%edi
226 shll $24,%edi
227 xorl %edi,%esi
228 movl %esi,8(%esp)
229
230 movl %ecx,%esi
231 andl $255,%esi
232 shrl $24,%ecx
233 movzbl -128(%ebp,%esi,1),%esi
234 movzbl %dh,%edi
235 movzbl -128(%ebp,%edi,1),%edi
236 shll $8,%edi
237 xorl %edi,%esi
238 movl %eax,%edi
239 shrl $16,%edi
240 andl $255,%edx
241 andl $255,%edi
242 movzbl -128(%ebp,%edi,1),%edi
243 shll $16,%edi
244 xorl %edi,%esi
245 movzbl %bh,%edi
246 movzbl -128(%ebp,%edi,1),%edi
247 shll $24,%edi
248 xorl %edi,%esi
249
250 movl 20(%esp),%edi
251 andl $255,%edx
252 movzbl -128(%ebp,%edx,1),%edx
253 movzbl %ah,%eax
254 movzbl -128(%ebp,%eax,1),%eax
255 shll $8,%eax
256 xorl %eax,%edx
257 movl 4(%esp),%eax
258 andl $255,%ebx
259 movzbl -128(%ebp,%ebx,1),%ebx
260 shll $16,%ebx
261 xorl %ebx,%edx
262 movl 8(%esp),%ebx
263 movzbl -128(%ebp,%ecx,1),%ecx
264 shll $24,%ecx
265 xorl %ecx,%edx
266 movl %esi,%ecx
267
268 xorl 16(%edi),%eax
269 xorl 20(%edi),%ebx
270 xorl 24(%edi),%ecx
271 xorl 28(%edi),%edx
272 ret
273.size _x86_AES_encrypt_compact,.-_x86_AES_encrypt_compact
274.type _sse_AES_encrypt_compact,@function
275.align 16
276_sse_AES_encrypt_compact:
277 #ifdef __CET__
278
279.byte 243,15,30,251
280 #endif
281
282 pxor (%edi),%mm0
283 pxor 8(%edi),%mm4
284 movl 240(%edi),%esi
285 leal -2(%esi,%esi,1),%esi
286 leal (%edi,%esi,8),%esi
287 movl %esi,24(%esp)
288 movl $454761243,%eax
289 movl %eax,8(%esp)
290 movl %eax,12(%esp)
291 movl -128(%ebp),%eax
292 movl -96(%ebp),%ebx
293 movl -64(%ebp),%ecx
294 movl -32(%ebp),%edx
295 movl (%ebp),%eax
296 movl 32(%ebp),%ebx
297 movl 64(%ebp),%ecx
298 movl 96(%ebp),%edx
299.align 16
300.L001loop:
301 pshufw $8,%mm0,%mm1
302 pshufw $13,%mm4,%mm5
303 movd %mm1,%eax
304 movd %mm5,%ebx
305 movl %edi,20(%esp)
306 movzbl %al,%esi
307 movzbl %ah,%edx
308 pshufw $13,%mm0,%mm2
309 movzbl -128(%ebp,%esi,1),%ecx
310 movzbl %bl,%edi
311 movzbl -128(%ebp,%edx,1),%edx
312 shrl $16,%eax
313 shll $8,%edx
314 movzbl -128(%ebp,%edi,1),%esi
315 movzbl %bh,%edi
316 shll $16,%esi
317 pshufw $8,%mm4,%mm6
318 orl %esi,%ecx
319 movzbl -128(%ebp,%edi,1),%esi
320 movzbl %ah,%edi
321 shll $24,%esi
322 shrl $16,%ebx
323 orl %esi,%edx
324 movzbl -128(%ebp,%edi,1),%esi
325 movzbl %bh,%edi
326 shll $8,%esi
327 orl %esi,%ecx
328 movzbl -128(%ebp,%edi,1),%esi
329 movzbl %al,%edi
330 shll $24,%esi
331 orl %esi,%ecx
332 movzbl -128(%ebp,%edi,1),%esi
333 movzbl %bl,%edi
334 movd %mm2,%eax
335 movd %ecx,%mm0
336 movzbl -128(%ebp,%edi,1),%ecx
337 movzbl %ah,%edi
338 shll $16,%ecx
339 movd %mm6,%ebx
340 orl %esi,%ecx
341 movzbl -128(%ebp,%edi,1),%esi
342 movzbl %bh,%edi
343 shll $24,%esi
344 orl %esi,%ecx
345 movzbl -128(%ebp,%edi,1),%esi
346 movzbl %bl,%edi
347 shll $8,%esi
348 shrl $16,%ebx
349 orl %esi,%ecx
350 movzbl -128(%ebp,%edi,1),%esi
351 movzbl %al,%edi
352 shrl $16,%eax
353 movd %ecx,%mm1
354 movzbl -128(%ebp,%edi,1),%ecx
355 movzbl %ah,%edi
356 shll $16,%ecx
357 andl $255,%eax
358 orl %esi,%ecx
359 punpckldq %mm1,%mm0
360 movzbl -128(%ebp,%edi,1),%esi
361 movzbl %bh,%edi
362 shll $24,%esi
363 andl $255,%ebx
364 movzbl -128(%ebp,%eax,1),%eax
365 orl %esi,%ecx
366 shll $16,%eax
367 movzbl -128(%ebp,%edi,1),%esi
368 orl %eax,%edx
369 shll $8,%esi
370 movzbl -128(%ebp,%ebx,1),%ebx
371 orl %esi,%ecx
372 orl %ebx,%edx
373 movl 20(%esp),%edi
374 movd %ecx,%mm4
375 movd %edx,%mm5
376 punpckldq %mm5,%mm4
377 addl $16,%edi
378 cmpl 24(%esp),%edi
379 ja .L002out
380 movq 8(%esp),%mm2
381 pxor %mm3,%mm3
382 pxor %mm7,%mm7
383 movq %mm0,%mm1
384 movq %mm4,%mm5
385 pcmpgtb %mm0,%mm3
386 pcmpgtb %mm4,%mm7
387 pand %mm2,%mm3
388 pand %mm2,%mm7
389 pshufw $177,%mm0,%mm2
390 pshufw $177,%mm4,%mm6
391 paddb %mm0,%mm0
392 paddb %mm4,%mm4
393 pxor %mm3,%mm0
394 pxor %mm7,%mm4
395 pshufw $177,%mm2,%mm3
396 pshufw $177,%mm6,%mm7
397 pxor %mm0,%mm1
398 pxor %mm4,%mm5
399 pxor %mm2,%mm0
400 pxor %mm6,%mm4
401 movq %mm3,%mm2
402 movq %mm7,%mm6
403 pslld $8,%mm3
404 pslld $8,%mm7
405 psrld $24,%mm2
406 psrld $24,%mm6
407 pxor %mm3,%mm0
408 pxor %mm7,%mm4
409 pxor %mm2,%mm0
410 pxor %mm6,%mm4
411 movq %mm1,%mm3
412 movq %mm5,%mm7
413 movq (%edi),%mm2
414 movq 8(%edi),%mm6
415 psrld $8,%mm1
416 psrld $8,%mm5
417 movl -128(%ebp),%eax
418 pslld $24,%mm3
419 pslld $24,%mm7
420 movl -64(%ebp),%ebx
421 pxor %mm1,%mm0
422 pxor %mm5,%mm4
423 movl (%ebp),%ecx
424 pxor %mm3,%mm0
425 pxor %mm7,%mm4
426 movl 64(%ebp),%edx
427 pxor %mm2,%mm0
428 pxor %mm6,%mm4
429 jmp .L001loop
430.align 16
431.L002out:
432 pxor (%edi),%mm0
433 pxor 8(%edi),%mm4
434 ret
435.size _sse_AES_encrypt_compact,.-_sse_AES_encrypt_compact
436.type _x86_AES_encrypt,@function
437.align 16
438_x86_AES_encrypt:
439 #ifdef __CET__
440
441.byte 243,15,30,251
442 #endif
443
444 movl %edi,20(%esp)
445 xorl (%edi),%eax
446 xorl 4(%edi),%ebx
447 xorl 8(%edi),%ecx
448 xorl 12(%edi),%edx
449 movl 240(%edi),%esi
450 leal -2(%esi,%esi,1),%esi
451 leal (%edi,%esi,8),%esi
452 movl %esi,24(%esp)
453.align 16
454.L003loop:
455 movl %eax,%esi
456 andl $255,%esi
457 movl (%ebp,%esi,8),%esi
458 movzbl %bh,%edi
459 xorl 3(%ebp,%edi,8),%esi
460 movl %ecx,%edi
461 shrl $16,%edi
462 andl $255,%edi
463 xorl 2(%ebp,%edi,8),%esi
464 movl %edx,%edi
465 shrl $24,%edi
466 xorl 1(%ebp,%edi,8),%esi
467 movl %esi,4(%esp)
468
469 movl %ebx,%esi
470 andl $255,%esi
471 shrl $16,%ebx
472 movl (%ebp,%esi,8),%esi
473 movzbl %ch,%edi
474 xorl 3(%ebp,%edi,8),%esi
475 movl %edx,%edi
476 shrl $16,%edi
477 andl $255,%edi
478 xorl 2(%ebp,%edi,8),%esi
479 movl %eax,%edi
480 shrl $24,%edi
481 xorl 1(%ebp,%edi,8),%esi
482 movl %esi,8(%esp)
483
484 movl %ecx,%esi
485 andl $255,%esi
486 shrl $24,%ecx
487 movl (%ebp,%esi,8),%esi
488 movzbl %dh,%edi
489 xorl 3(%ebp,%edi,8),%esi
490 movl %eax,%edi
491 shrl $16,%edi
492 andl $255,%edx
493 andl $255,%edi
494 xorl 2(%ebp,%edi,8),%esi
495 movzbl %bh,%edi
496 xorl 1(%ebp,%edi,8),%esi
497
498 movl 20(%esp),%edi
499 movl (%ebp,%edx,8),%edx
500 movzbl %ah,%eax
501 xorl 3(%ebp,%eax,8),%edx
502 movl 4(%esp),%eax
503 andl $255,%ebx
504 xorl 2(%ebp,%ebx,8),%edx
505 movl 8(%esp),%ebx
506 xorl 1(%ebp,%ecx,8),%edx
507 movl %esi,%ecx
508
509 addl $16,%edi
510 xorl (%edi),%eax
511 xorl 4(%edi),%ebx
512 xorl 8(%edi),%ecx
513 xorl 12(%edi),%edx
514 cmpl 24(%esp),%edi
515 movl %edi,20(%esp)
516 jb .L003loop
517 movl %eax,%esi
518 andl $255,%esi
519 movl 2(%ebp,%esi,8),%esi
520 andl $255,%esi
521 movzbl %bh,%edi
522 movl (%ebp,%edi,8),%edi
523 andl $65280,%edi
524 xorl %edi,%esi
525 movl %ecx,%edi
526 shrl $16,%edi
527 andl $255,%edi
528 movl (%ebp,%edi,8),%edi
529 andl $16711680,%edi
530 xorl %edi,%esi
531 movl %edx,%edi
532 shrl $24,%edi
533 movl 2(%ebp,%edi,8),%edi
534 andl $4278190080,%edi
535 xorl %edi,%esi
536 movl %esi,4(%esp)
537 movl %ebx,%esi
538 andl $255,%esi
539 shrl $16,%ebx
540 movl 2(%ebp,%esi,8),%esi
541 andl $255,%esi
542 movzbl %ch,%edi
543 movl (%ebp,%edi,8),%edi
544 andl $65280,%edi
545 xorl %edi,%esi
546 movl %edx,%edi
547 shrl $16,%edi
548 andl $255,%edi
549 movl (%ebp,%edi,8),%edi
550 andl $16711680,%edi
551 xorl %edi,%esi
552 movl %eax,%edi
553 shrl $24,%edi
554 movl 2(%ebp,%edi,8),%edi
555 andl $4278190080,%edi
556 xorl %edi,%esi
557 movl %esi,8(%esp)
558 movl %ecx,%esi
559 andl $255,%esi
560 shrl $24,%ecx
561 movl 2(%ebp,%esi,8),%esi
562 andl $255,%esi
563 movzbl %dh,%edi
564 movl (%ebp,%edi,8),%edi
565 andl $65280,%edi
566 xorl %edi,%esi
567 movl %eax,%edi
568 shrl $16,%edi
569 andl $255,%edx
570 andl $255,%edi
571 movl (%ebp,%edi,8),%edi
572 andl $16711680,%edi
573 xorl %edi,%esi
574 movzbl %bh,%edi
575 movl 2(%ebp,%edi,8),%edi
576 andl $4278190080,%edi
577 xorl %edi,%esi
578 movl 20(%esp),%edi
579 andl $255,%edx
580 movl 2(%ebp,%edx,8),%edx
581 andl $255,%edx
582 movzbl %ah,%eax
583 movl (%ebp,%eax,8),%eax
584 andl $65280,%eax
585 xorl %eax,%edx
586 movl 4(%esp),%eax
587 andl $255,%ebx
588 movl (%ebp,%ebx,8),%ebx
589 andl $16711680,%ebx
590 xorl %ebx,%edx
591 movl 8(%esp),%ebx
592 movl 2(%ebp,%ecx,8),%ecx
593 andl $4278190080,%ecx
594 xorl %ecx,%edx
595 movl %esi,%ecx
596 addl $16,%edi
597 xorl (%edi),%eax
598 xorl 4(%edi),%ebx
599 xorl 8(%edi),%ecx
600 xorl 12(%edi),%edx
601 ret
602.align 64
603.LAES_Te:
604.long 2774754246,2774754246
605.long 2222750968,2222750968
606.long 2574743534,2574743534
607.long 2373680118,2373680118
608.long 234025727,234025727
609.long 3177933782,3177933782
610.long 2976870366,2976870366
611.long 1422247313,1422247313
612.long 1345335392,1345335392
613.long 50397442,50397442
614.long 2842126286,2842126286
615.long 2099981142,2099981142
616.long 436141799,436141799
617.long 1658312629,1658312629
618.long 3870010189,3870010189
619.long 2591454956,2591454956
620.long 1170918031,1170918031
621.long 2642575903,2642575903
622.long 1086966153,1086966153
623.long 2273148410,2273148410
624.long 368769775,368769775
625.long 3948501426,3948501426
626.long 3376891790,3376891790
627.long 200339707,200339707
628.long 3970805057,3970805057
629.long 1742001331,1742001331
630.long 4255294047,4255294047
631.long 3937382213,3937382213
632.long 3214711843,3214711843
633.long 4154762323,4154762323
634.long 2524082916,2524082916
635.long 1539358875,1539358875
636.long 3266819957,3266819957
637.long 486407649,486407649
638.long 2928907069,2928907069
639.long 1780885068,1780885068
640.long 1513502316,1513502316
641.long 1094664062,1094664062
642.long 49805301,49805301
643.long 1338821763,1338821763
644.long 1546925160,1546925160
645.long 4104496465,4104496465
646.long 887481809,887481809
647.long 150073849,150073849
648.long 2473685474,2473685474
649.long 1943591083,1943591083
650.long 1395732834,1395732834
651.long 1058346282,1058346282
652.long 201589768,201589768
653.long 1388824469,1388824469
654.long 1696801606,1696801606
655.long 1589887901,1589887901
656.long 672667696,672667696
657.long 2711000631,2711000631
658.long 251987210,251987210
659.long 3046808111,3046808111
660.long 151455502,151455502
661.long 907153956,907153956
662.long 2608889883,2608889883
663.long 1038279391,1038279391
664.long 652995533,652995533
665.long 1764173646,1764173646
666.long 3451040383,3451040383
667.long 2675275242,2675275242
668.long 453576978,453576978
669.long 2659418909,2659418909
670.long 1949051992,1949051992
671.long 773462580,773462580
672.long 756751158,756751158
673.long 2993581788,2993581788
674.long 3998898868,3998898868
675.long 4221608027,4221608027
676.long 4132590244,4132590244
677.long 1295727478,1295727478
678.long 1641469623,1641469623
679.long 3467883389,3467883389
680.long 2066295122,2066295122
681.long 1055122397,1055122397
682.long 1898917726,1898917726
683.long 2542044179,2542044179
684.long 4115878822,4115878822
685.long 1758581177,1758581177
686.long 0,0
687.long 753790401,753790401
688.long 1612718144,1612718144
689.long 536673507,536673507
690.long 3367088505,3367088505
691.long 3982187446,3982187446
692.long 3194645204,3194645204
693.long 1187761037,1187761037
694.long 3653156455,3653156455
695.long 1262041458,1262041458
696.long 3729410708,3729410708
697.long 3561770136,3561770136
698.long 3898103984,3898103984
699.long 1255133061,1255133061
700.long 1808847035,1808847035
701.long 720367557,720367557
702.long 3853167183,3853167183
703.long 385612781,385612781
704.long 3309519750,3309519750
705.long 3612167578,3612167578
706.long 1429418854,1429418854
707.long 2491778321,2491778321
708.long 3477423498,3477423498
709.long 284817897,284817897
710.long 100794884,100794884
711.long 2172616702,2172616702
712.long 4031795360,4031795360
713.long 1144798328,1144798328
714.long 3131023141,3131023141
715.long 3819481163,3819481163
716.long 4082192802,4082192802
717.long 4272137053,4272137053
718.long 3225436288,3225436288
719.long 2324664069,2324664069
720.long 2912064063,2912064063
721.long 3164445985,3164445985
722.long 1211644016,1211644016
723.long 83228145,83228145
724.long 3753688163,3753688163
725.long 3249976951,3249976951
726.long 1977277103,1977277103
727.long 1663115586,1663115586
728.long 806359072,806359072
729.long 452984805,452984805
730.long 250868733,250868733
731.long 1842533055,1842533055
732.long 1288555905,1288555905
733.long 336333848,336333848
734.long 890442534,890442534
735.long 804056259,804056259
736.long 3781124030,3781124030
737.long 2727843637,2727843637
738.long 3427026056,3427026056
739.long 957814574,957814574
740.long 1472513171,1472513171
741.long 4071073621,4071073621
742.long 2189328124,2189328124
743.long 1195195770,1195195770
744.long 2892260552,2892260552
745.long 3881655738,3881655738
746.long 723065138,723065138
747.long 2507371494,2507371494
748.long 2690670784,2690670784
749.long 2558624025,2558624025
750.long 3511635870,3511635870
751.long 2145180835,2145180835
752.long 1713513028,1713513028
753.long 2116692564,2116692564
754.long 2878378043,2878378043
755.long 2206763019,2206763019
756.long 3393603212,3393603212
757.long 703524551,703524551
758.long 3552098411,3552098411
759.long 1007948840,1007948840
760.long 2044649127,2044649127
761.long 3797835452,3797835452
762.long 487262998,487262998
763.long 1994120109,1994120109
764.long 1004593371,1004593371
765.long 1446130276,1446130276
766.long 1312438900,1312438900
767.long 503974420,503974420
768.long 3679013266,3679013266
769.long 168166924,168166924
770.long 1814307912,1814307912
771.long 3831258296,3831258296
772.long 1573044895,1573044895
773.long 1859376061,1859376061
774.long 4021070915,4021070915
775.long 2791465668,2791465668
776.long 2828112185,2828112185
777.long 2761266481,2761266481
778.long 937747667,937747667
779.long 2339994098,2339994098
780.long 854058965,854058965
781.long 1137232011,1137232011
782.long 1496790894,1496790894
783.long 3077402074,3077402074
784.long 2358086913,2358086913
785.long 1691735473,1691735473
786.long 3528347292,3528347292
787.long 3769215305,3769215305
788.long 3027004632,3027004632
789.long 4199962284,4199962284
790.long 133494003,133494003
791.long 636152527,636152527
792.long 2942657994,2942657994
793.long 2390391540,2390391540
794.long 3920539207,3920539207
795.long 403179536,403179536
796.long 3585784431,3585784431
797.long 2289596656,2289596656
798.long 1864705354,1864705354
799.long 1915629148,1915629148
800.long 605822008,605822008
801.long 4054230615,4054230615
802.long 3350508659,3350508659
803.long 1371981463,1371981463
804.long 602466507,602466507
805.long 2094914977,2094914977
806.long 2624877800,2624877800
807.long 555687742,555687742
808.long 3712699286,3712699286
809.long 3703422305,3703422305
810.long 2257292045,2257292045
811.long 2240449039,2240449039
812.long 2423288032,2423288032
813.long 1111375484,1111375484
814.long 3300242801,3300242801
815.long 2858837708,2858837708
816.long 3628615824,3628615824
817.long 84083462,84083462
818.long 32962295,32962295
819.long 302911004,302911004
820.long 2741068226,2741068226
821.long 1597322602,1597322602
822.long 4183250862,4183250862
823.long 3501832553,3501832553
824.long 2441512471,2441512471
825.long 1489093017,1489093017
826.long 656219450,656219450
827.long 3114180135,3114180135
828.long 954327513,954327513
829.long 335083755,335083755
830.long 3013122091,3013122091
831.long 856756514,856756514
832.long 3144247762,3144247762
833.long 1893325225,1893325225
834.long 2307821063,2307821063
835.long 2811532339,2811532339
836.long 3063651117,3063651117
837.long 572399164,572399164
838.long 2458355477,2458355477
839.long 552200649,552200649
840.long 1238290055,1238290055
841.long 4283782570,4283782570
842.long 2015897680,2015897680
843.long 2061492133,2061492133
844.long 2408352771,2408352771
845.long 4171342169,4171342169
846.long 2156497161,2156497161
847.long 386731290,386731290
848.long 3669999461,3669999461
849.long 837215959,837215959
850.long 3326231172,3326231172
851.long 3093850320,3093850320
852.long 3275833730,3275833730
853.long 2962856233,2962856233
854.long 1999449434,1999449434
855.long 286199582,286199582
856.long 3417354363,3417354363
857.long 4233385128,4233385128
858.long 3602627437,3602627437
859.long 974525996,974525996
860.byte 99,124,119,123,242,107,111,197
861.byte 48,1,103,43,254,215,171,118
862.byte 202,130,201,125,250,89,71,240
863.byte 173,212,162,175,156,164,114,192
864.byte 183,253,147,38,54,63,247,204
865.byte 52,165,229,241,113,216,49,21
866.byte 4,199,35,195,24,150,5,154
867.byte 7,18,128,226,235,39,178,117
868.byte 9,131,44,26,27,110,90,160
869.byte 82,59,214,179,41,227,47,132
870.byte 83,209,0,237,32,252,177,91
871.byte 106,203,190,57,74,76,88,207
872.byte 208,239,170,251,67,77,51,133
873.byte 69,249,2,127,80,60,159,168
874.byte 81,163,64,143,146,157,56,245
875.byte 188,182,218,33,16,255,243,210
876.byte 205,12,19,236,95,151,68,23
877.byte 196,167,126,61,100,93,25,115
878.byte 96,129,79,220,34,42,144,136
879.byte 70,238,184,20,222,94,11,219
880.byte 224,50,58,10,73,6,36,92
881.byte 194,211,172,98,145,149,228,121
882.byte 231,200,55,109,141,213,78,169
883.byte 108,86,244,234,101,122,174,8
884.byte 186,120,37,46,28,166,180,198
885.byte 232,221,116,31,75,189,139,138
886.byte 112,62,181,102,72,3,246,14
887.byte 97,53,87,185,134,193,29,158
888.byte 225,248,152,17,105,217,142,148
889.byte 155,30,135,233,206,85,40,223
890.byte 140,161,137,13,191,230,66,104
891.byte 65,153,45,15,176,84,187,22
892.byte 99,124,119,123,242,107,111,197
893.byte 48,1,103,43,254,215,171,118
894.byte 202,130,201,125,250,89,71,240
895.byte 173,212,162,175,156,164,114,192
896.byte 183,253,147,38,54,63,247,204
897.byte 52,165,229,241,113,216,49,21
898.byte 4,199,35,195,24,150,5,154
899.byte 7,18,128,226,235,39,178,117
900.byte 9,131,44,26,27,110,90,160
901.byte 82,59,214,179,41,227,47,132
902.byte 83,209,0,237,32,252,177,91
903.byte 106,203,190,57,74,76,88,207
904.byte 208,239,170,251,67,77,51,133
905.byte 69,249,2,127,80,60,159,168
906.byte 81,163,64,143,146,157,56,245
907.byte 188,182,218,33,16,255,243,210
908.byte 205,12,19,236,95,151,68,23
909.byte 196,167,126,61,100,93,25,115
910.byte 96,129,79,220,34,42,144,136
911.byte 70,238,184,20,222,94,11,219
912.byte 224,50,58,10,73,6,36,92
913.byte 194,211,172,98,145,149,228,121
914.byte 231,200,55,109,141,213,78,169
915.byte 108,86,244,234,101,122,174,8
916.byte 186,120,37,46,28,166,180,198
917.byte 232,221,116,31,75,189,139,138
918.byte 112,62,181,102,72,3,246,14
919.byte 97,53,87,185,134,193,29,158
920.byte 225,248,152,17,105,217,142,148
921.byte 155,30,135,233,206,85,40,223
922.byte 140,161,137,13,191,230,66,104
923.byte 65,153,45,15,176,84,187,22
924.byte 99,124,119,123,242,107,111,197
925.byte 48,1,103,43,254,215,171,118
926.byte 202,130,201,125,250,89,71,240
927.byte 173,212,162,175,156,164,114,192
928.byte 183,253,147,38,54,63,247,204
929.byte 52,165,229,241,113,216,49,21
930.byte 4,199,35,195,24,150,5,154
931.byte 7,18,128,226,235,39,178,117
932.byte 9,131,44,26,27,110,90,160
933.byte 82,59,214,179,41,227,47,132
934.byte 83,209,0,237,32,252,177,91
935.byte 106,203,190,57,74,76,88,207
936.byte 208,239,170,251,67,77,51,133
937.byte 69,249,2,127,80,60,159,168
938.byte 81,163,64,143,146,157,56,245
939.byte 188,182,218,33,16,255,243,210
940.byte 205,12,19,236,95,151,68,23
941.byte 196,167,126,61,100,93,25,115
942.byte 96,129,79,220,34,42,144,136
943.byte 70,238,184,20,222,94,11,219
944.byte 224,50,58,10,73,6,36,92
945.byte 194,211,172,98,145,149,228,121
946.byte 231,200,55,109,141,213,78,169
947.byte 108,86,244,234,101,122,174,8
948.byte 186,120,37,46,28,166,180,198
949.byte 232,221,116,31,75,189,139,138
950.byte 112,62,181,102,72,3,246,14
951.byte 97,53,87,185,134,193,29,158
952.byte 225,248,152,17,105,217,142,148
953.byte 155,30,135,233,206,85,40,223
954.byte 140,161,137,13,191,230,66,104
955.byte 65,153,45,15,176,84,187,22
956.byte 99,124,119,123,242,107,111,197
957.byte 48,1,103,43,254,215,171,118
958.byte 202,130,201,125,250,89,71,240
959.byte 173,212,162,175,156,164,114,192
960.byte 183,253,147,38,54,63,247,204
961.byte 52,165,229,241,113,216,49,21
962.byte 4,199,35,195,24,150,5,154
963.byte 7,18,128,226,235,39,178,117
964.byte 9,131,44,26,27,110,90,160
965.byte 82,59,214,179,41,227,47,132
966.byte 83,209,0,237,32,252,177,91
967.byte 106,203,190,57,74,76,88,207
968.byte 208,239,170,251,67,77,51,133
969.byte 69,249,2,127,80,60,159,168
970.byte 81,163,64,143,146,157,56,245
971.byte 188,182,218,33,16,255,243,210
972.byte 205,12,19,236,95,151,68,23
973.byte 196,167,126,61,100,93,25,115
974.byte 96,129,79,220,34,42,144,136
975.byte 70,238,184,20,222,94,11,219
976.byte 224,50,58,10,73,6,36,92
977.byte 194,211,172,98,145,149,228,121
978.byte 231,200,55,109,141,213,78,169
979.byte 108,86,244,234,101,122,174,8
980.byte 186,120,37,46,28,166,180,198
981.byte 232,221,116,31,75,189,139,138
982.byte 112,62,181,102,72,3,246,14
983.byte 97,53,87,185,134,193,29,158
984.byte 225,248,152,17,105,217,142,148
985.byte 155,30,135,233,206,85,40,223
986.byte 140,161,137,13,191,230,66,104
987.byte 65,153,45,15,176,84,187,22
988.long 1,2,4,8
989.long 16,32,64,128
990.long 27,54,0,0
991.long 0,0,0,0
992.size _x86_AES_encrypt,.-_x86_AES_encrypt
993.globl AES_encrypt
994.type AES_encrypt,@function
995.align 16
996AES_encrypt:
997.L_AES_encrypt_begin:
998 #ifdef __CET__
999
1000.byte 243,15,30,251
1001 #endif
1002
1003 pushl %ebp
1004 pushl %ebx
1005 pushl %esi
1006 pushl %edi
1007 movl 20(%esp),%esi
1008 movl 28(%esp),%edi
1009 movl %esp,%eax
1010 subl $36,%esp
1011 andl $-64,%esp
1012 leal -127(%edi),%ebx
1013 subl %esp,%ebx
1014 negl %ebx
1015 andl $960,%ebx
1016 subl %ebx,%esp
1017 addl $4,%esp
1018 movl %eax,28(%esp)
1019 call .L004pic_point
1020.L004pic_point:
1021 popl %ebp
1022 leal OPENSSL_ia32cap_P-.L004pic_point(%ebp),%eax
1023 leal .LAES_Te-.L004pic_point(%ebp),%ebp
1024 leal 764(%esp),%ebx
1025 subl %ebp,%ebx
1026 andl $768,%ebx
1027 leal 2176(%ebp,%ebx,1),%ebp
1028 btl $25,(%eax)
1029 jnc .L005x86
1030 movq (%esi),%mm0
1031 movq 8(%esi),%mm4
1032 call _sse_AES_encrypt_compact
1033 movl 28(%esp),%esp
1034 movl 24(%esp),%esi
1035 movq %mm0,(%esi)
1036 movq %mm4,8(%esi)
1037 emms
1038 popl %edi
1039 popl %esi
1040 popl %ebx
1041 popl %ebp
1042 ret
1043.align 16
1044.L005x86:
1045 movl %ebp,24(%esp)
1046 movl (%esi),%eax
1047 movl 4(%esi),%ebx
1048 movl 8(%esi),%ecx
1049 movl 12(%esi),%edx
1050 call _x86_AES_encrypt_compact
1051 movl 28(%esp),%esp
1052 movl 24(%esp),%esi
1053 movl %eax,(%esi)
1054 movl %ebx,4(%esi)
1055 movl %ecx,8(%esi)
1056 movl %edx,12(%esi)
1057 popl %edi
1058 popl %esi
1059 popl %ebx
1060 popl %ebp
1061 ret
1062.size AES_encrypt,.-.L_AES_encrypt_begin
1063.type _x86_AES_decrypt_compact,@function
1064.align 16
1065_x86_AES_decrypt_compact:
1066 #ifdef __CET__
1067
1068.byte 243,15,30,251
1069 #endif
1070
1071 movl %edi,20(%esp)
1072 xorl (%edi),%eax
1073 xorl 4(%edi),%ebx
1074 xorl 8(%edi),%ecx
1075 xorl 12(%edi),%edx
1076 movl 240(%edi),%esi
1077 leal -2(%esi,%esi,1),%esi
1078 leal (%edi,%esi,8),%esi
1079 movl %esi,24(%esp)
1080 movl -128(%ebp),%edi
1081 movl -96(%ebp),%esi
1082 movl -64(%ebp),%edi
1083 movl -32(%ebp),%esi
1084 movl (%ebp),%edi
1085 movl 32(%ebp),%esi
1086 movl 64(%ebp),%edi
1087 movl 96(%ebp),%esi
1088.align 16
1089.L006loop:
1090 movl %eax,%esi
1091 andl $255,%esi
1092 movzbl -128(%ebp,%esi,1),%esi
1093 movzbl %dh,%edi
1094 movzbl -128(%ebp,%edi,1),%edi
1095 shll $8,%edi
1096 xorl %edi,%esi
1097 movl %ecx,%edi
1098 shrl $16,%edi
1099 andl $255,%edi
1100 movzbl -128(%ebp,%edi,1),%edi
1101 shll $16,%edi
1102 xorl %edi,%esi
1103 movl %ebx,%edi
1104 shrl $24,%edi
1105 movzbl -128(%ebp,%edi,1),%edi
1106 shll $24,%edi
1107 xorl %edi,%esi
1108 movl %esi,4(%esp)
1109 movl %ebx,%esi
1110 andl $255,%esi
1111 movzbl -128(%ebp,%esi,1),%esi
1112 movzbl %ah,%edi
1113 movzbl -128(%ebp,%edi,1),%edi
1114 shll $8,%edi
1115 xorl %edi,%esi
1116 movl %edx,%edi
1117 shrl $16,%edi
1118 andl $255,%edi
1119 movzbl -128(%ebp,%edi,1),%edi
1120 shll $16,%edi
1121 xorl %edi,%esi
1122 movl %ecx,%edi
1123 shrl $24,%edi
1124 movzbl -128(%ebp,%edi,1),%edi
1125 shll $24,%edi
1126 xorl %edi,%esi
1127 movl %esi,8(%esp)
1128 movl %ecx,%esi
1129 andl $255,%esi
1130 movzbl -128(%ebp,%esi,1),%esi
1131 movzbl %bh,%edi
1132 movzbl -128(%ebp,%edi,1),%edi
1133 shll $8,%edi
1134 xorl %edi,%esi
1135 movl %eax,%edi
1136 shrl $16,%edi
1137 andl $255,%edi
1138 movzbl -128(%ebp,%edi,1),%edi
1139 shll $16,%edi
1140 xorl %edi,%esi
1141 movl %edx,%edi
1142 shrl $24,%edi
1143 movzbl -128(%ebp,%edi,1),%edi
1144 shll $24,%edi
1145 xorl %edi,%esi
1146 andl $255,%edx
1147 movzbl -128(%ebp,%edx,1),%edx
1148 movzbl %ch,%ecx
1149 movzbl -128(%ebp,%ecx,1),%ecx
1150 shll $8,%ecx
1151 xorl %ecx,%edx
1152 movl %esi,%ecx
1153 shrl $16,%ebx
1154 andl $255,%ebx
1155 movzbl -128(%ebp,%ebx,1),%ebx
1156 shll $16,%ebx
1157 xorl %ebx,%edx
1158 shrl $24,%eax
1159 movzbl -128(%ebp,%eax,1),%eax
1160 shll $24,%eax
1161 xorl %eax,%edx
1162 movl $2155905152,%edi
1163 andl %ecx,%edi
1164 movl %edi,%esi
1165 shrl $7,%edi
1166 leal (%ecx,%ecx,1),%eax
1167 subl %edi,%esi
1168 andl $4278124286,%eax
1169 andl $454761243,%esi
1170 xorl %esi,%eax
1171 movl $2155905152,%edi
1172 andl %eax,%edi
1173 movl %edi,%esi
1174 shrl $7,%edi
1175 leal (%eax,%eax,1),%ebx
1176 subl %edi,%esi
1177 andl $4278124286,%ebx
1178 andl $454761243,%esi
1179 xorl %ecx,%eax
1180 xorl %esi,%ebx
1181 movl $2155905152,%edi
1182 andl %ebx,%edi
1183 movl %edi,%esi
1184 shrl $7,%edi
1185 leal (%ebx,%ebx,1),%ebp
1186 subl %edi,%esi
1187 andl $4278124286,%ebp
1188 andl $454761243,%esi
1189 xorl %ecx,%ebx
1190 roll $8,%ecx
1191 xorl %esi,%ebp
1192 xorl %eax,%ecx
1193 xorl %ebp,%eax
1194 xorl %ebx,%ecx
1195 xorl %ebp,%ebx
1196 roll $24,%eax
1197 xorl %ebp,%ecx
1198 roll $16,%ebx
1199 xorl %eax,%ecx
1200 roll $8,%ebp
1201 xorl %ebx,%ecx
1202 movl 4(%esp),%eax
1203 xorl %ebp,%ecx
1204 movl %ecx,12(%esp)
1205 movl $2155905152,%edi
1206 andl %edx,%edi
1207 movl %edi,%esi
1208 shrl $7,%edi
1209 leal (%edx,%edx,1),%ebx
1210 subl %edi,%esi
1211 andl $4278124286,%ebx
1212 andl $454761243,%esi
1213 xorl %esi,%ebx
1214 movl $2155905152,%edi
1215 andl %ebx,%edi
1216 movl %edi,%esi
1217 shrl $7,%edi
1218 leal (%ebx,%ebx,1),%ecx
1219 subl %edi,%esi
1220 andl $4278124286,%ecx
1221 andl $454761243,%esi
1222 xorl %edx,%ebx
1223 xorl %esi,%ecx
1224 movl $2155905152,%edi
1225 andl %ecx,%edi
1226 movl %edi,%esi
1227 shrl $7,%edi
1228 leal (%ecx,%ecx,1),%ebp
1229 subl %edi,%esi
1230 andl $4278124286,%ebp
1231 andl $454761243,%esi
1232 xorl %edx,%ecx
1233 roll $8,%edx
1234 xorl %esi,%ebp
1235 xorl %ebx,%edx
1236 xorl %ebp,%ebx
1237 xorl %ecx,%edx
1238 xorl %ebp,%ecx
1239 roll $24,%ebx
1240 xorl %ebp,%edx
1241 roll $16,%ecx
1242 xorl %ebx,%edx
1243 roll $8,%ebp
1244 xorl %ecx,%edx
1245 movl 8(%esp),%ebx
1246 xorl %ebp,%edx
1247 movl %edx,16(%esp)
1248 movl $2155905152,%edi
1249 andl %eax,%edi
1250 movl %edi,%esi
1251 shrl $7,%edi
1252 leal (%eax,%eax,1),%ecx
1253 subl %edi,%esi
1254 andl $4278124286,%ecx
1255 andl $454761243,%esi
1256 xorl %esi,%ecx
1257 movl $2155905152,%edi
1258 andl %ecx,%edi
1259 movl %edi,%esi
1260 shrl $7,%edi
1261 leal (%ecx,%ecx,1),%edx
1262 subl %edi,%esi
1263 andl $4278124286,%edx
1264 andl $454761243,%esi
1265 xorl %eax,%ecx
1266 xorl %esi,%edx
1267 movl $2155905152,%edi
1268 andl %edx,%edi
1269 movl %edi,%esi
1270 shrl $7,%edi
1271 leal (%edx,%edx,1),%ebp
1272 subl %edi,%esi
1273 andl $4278124286,%ebp
1274 andl $454761243,%esi
1275 xorl %eax,%edx
1276 roll $8,%eax
1277 xorl %esi,%ebp
1278 xorl %ecx,%eax
1279 xorl %ebp,%ecx
1280 xorl %edx,%eax
1281 xorl %ebp,%edx
1282 roll $24,%ecx
1283 xorl %ebp,%eax
1284 roll $16,%edx
1285 xorl %ecx,%eax
1286 roll $8,%ebp
1287 xorl %edx,%eax
1288 xorl %ebp,%eax
1289 movl $2155905152,%edi
1290 andl %ebx,%edi
1291 movl %edi,%esi
1292 shrl $7,%edi
1293 leal (%ebx,%ebx,1),%ecx
1294 subl %edi,%esi
1295 andl $4278124286,%ecx
1296 andl $454761243,%esi
1297 xorl %esi,%ecx
1298 movl $2155905152,%edi
1299 andl %ecx,%edi
1300 movl %edi,%esi
1301 shrl $7,%edi
1302 leal (%ecx,%ecx,1),%edx
1303 subl %edi,%esi
1304 andl $4278124286,%edx
1305 andl $454761243,%esi
1306 xorl %ebx,%ecx
1307 xorl %esi,%edx
1308 movl $2155905152,%edi
1309 andl %edx,%edi
1310 movl %edi,%esi
1311 shrl $7,%edi
1312 leal (%edx,%edx,1),%ebp
1313 subl %edi,%esi
1314 andl $4278124286,%ebp
1315 andl $454761243,%esi
1316 xorl %ebx,%edx
1317 roll $8,%ebx
1318 xorl %esi,%ebp
1319 xorl %ecx,%ebx
1320 xorl %ebp,%ecx
1321 xorl %edx,%ebx
1322 xorl %ebp,%edx
1323 roll $24,%ecx
1324 xorl %ebp,%ebx
1325 roll $16,%edx
1326 xorl %ecx,%ebx
1327 roll $8,%ebp
1328 xorl %edx,%ebx
1329 movl 12(%esp),%ecx
1330 xorl %ebp,%ebx
1331 movl 16(%esp),%edx
1332 movl 20(%esp),%edi
1333 movl 28(%esp),%ebp
1334 addl $16,%edi
1335 xorl (%edi),%eax
1336 xorl 4(%edi),%ebx
1337 xorl 8(%edi),%ecx
1338 xorl 12(%edi),%edx
1339 cmpl 24(%esp),%edi
1340 movl %edi,20(%esp)
1341 jb .L006loop
1342 movl %eax,%esi
1343 andl $255,%esi
1344 movzbl -128(%ebp,%esi,1),%esi
1345 movzbl %dh,%edi
1346 movzbl -128(%ebp,%edi,1),%edi
1347 shll $8,%edi
1348 xorl %edi,%esi
1349 movl %ecx,%edi
1350 shrl $16,%edi
1351 andl $255,%edi
1352 movzbl -128(%ebp,%edi,1),%edi
1353 shll $16,%edi
1354 xorl %edi,%esi
1355 movl %ebx,%edi
1356 shrl $24,%edi
1357 movzbl -128(%ebp,%edi,1),%edi
1358 shll $24,%edi
1359 xorl %edi,%esi
1360 movl %esi,4(%esp)
1361 movl %ebx,%esi
1362 andl $255,%esi
1363 movzbl -128(%ebp,%esi,1),%esi
1364 movzbl %ah,%edi
1365 movzbl -128(%ebp,%edi,1),%edi
1366 shll $8,%edi
1367 xorl %edi,%esi
1368 movl %edx,%edi
1369 shrl $16,%edi
1370 andl $255,%edi
1371 movzbl -128(%ebp,%edi,1),%edi
1372 shll $16,%edi
1373 xorl %edi,%esi
1374 movl %ecx,%edi
1375 shrl $24,%edi
1376 movzbl -128(%ebp,%edi,1),%edi
1377 shll $24,%edi
1378 xorl %edi,%esi
1379 movl %esi,8(%esp)
1380 movl %ecx,%esi
1381 andl $255,%esi
1382 movzbl -128(%ebp,%esi,1),%esi
1383 movzbl %bh,%edi
1384 movzbl -128(%ebp,%edi,1),%edi
1385 shll $8,%edi
1386 xorl %edi,%esi
1387 movl %eax,%edi
1388 shrl $16,%edi
1389 andl $255,%edi
1390 movzbl -128(%ebp,%edi,1),%edi
1391 shll $16,%edi
1392 xorl %edi,%esi
1393 movl %edx,%edi
1394 shrl $24,%edi
1395 movzbl -128(%ebp,%edi,1),%edi
1396 shll $24,%edi
1397 xorl %edi,%esi
1398 movl 20(%esp),%edi
1399 andl $255,%edx
1400 movzbl -128(%ebp,%edx,1),%edx
1401 movzbl %ch,%ecx
1402 movzbl -128(%ebp,%ecx,1),%ecx
1403 shll $8,%ecx
1404 xorl %ecx,%edx
1405 movl %esi,%ecx
1406 shrl $16,%ebx
1407 andl $255,%ebx
1408 movzbl -128(%ebp,%ebx,1),%ebx
1409 shll $16,%ebx
1410 xorl %ebx,%edx
1411 movl 8(%esp),%ebx
1412 shrl $24,%eax
1413 movzbl -128(%ebp,%eax,1),%eax
1414 shll $24,%eax
1415 xorl %eax,%edx
1416 movl 4(%esp),%eax
1417 xorl 16(%edi),%eax
1418 xorl 20(%edi),%ebx
1419 xorl 24(%edi),%ecx
1420 xorl 28(%edi),%edx
1421 ret
1422.size _x86_AES_decrypt_compact,.-_x86_AES_decrypt_compact
1423.type _sse_AES_decrypt_compact,@function
1424.align 16
1425_sse_AES_decrypt_compact:
1426 #ifdef __CET__
1427
1428.byte 243,15,30,251
1429 #endif
1430
1431 pxor (%edi),%mm0
1432 pxor 8(%edi),%mm4
1433 movl 240(%edi),%esi
1434 leal -2(%esi,%esi,1),%esi
1435 leal (%edi,%esi,8),%esi
1436 movl %esi,24(%esp)
1437 movl $454761243,%eax
1438 movl %eax,8(%esp)
1439 movl %eax,12(%esp)
1440 movl -128(%ebp),%eax
1441 movl -96(%ebp),%ebx
1442 movl -64(%ebp),%ecx
1443 movl -32(%ebp),%edx
1444 movl (%ebp),%eax
1445 movl 32(%ebp),%ebx
1446 movl 64(%ebp),%ecx
1447 movl 96(%ebp),%edx
1448.align 16
1449.L007loop:
1450 pshufw $12,%mm0,%mm1
1451 pshufw $9,%mm4,%mm5
1452 movd %mm1,%eax
1453 movd %mm5,%ebx
1454 movl %edi,20(%esp)
1455 movzbl %al,%esi
1456 movzbl %ah,%edx
1457 pshufw $6,%mm0,%mm2
1458 movzbl -128(%ebp,%esi,1),%ecx
1459 movzbl %bl,%edi
1460 movzbl -128(%ebp,%edx,1),%edx
1461 shrl $16,%eax
1462 shll $8,%edx
1463 movzbl -128(%ebp,%edi,1),%esi
1464 movzbl %bh,%edi
1465 shll $16,%esi
1466 pshufw $3,%mm4,%mm6
1467 orl %esi,%ecx
1468 movzbl -128(%ebp,%edi,1),%esi
1469 movzbl %ah,%edi
1470 shll $24,%esi
1471 shrl $16,%ebx
1472 orl %esi,%edx
1473 movzbl -128(%ebp,%edi,1),%esi
1474 movzbl %bh,%edi
1475 shll $24,%esi
1476 orl %esi,%ecx
1477 movzbl -128(%ebp,%edi,1),%esi
1478 movzbl %al,%edi
1479 shll $8,%esi
1480 movd %mm2,%eax
1481 orl %esi,%ecx
1482 movzbl -128(%ebp,%edi,1),%esi
1483 movzbl %bl,%edi
1484 shll $16,%esi
1485 movd %mm6,%ebx
1486 movd %ecx,%mm0
1487 movzbl -128(%ebp,%edi,1),%ecx
1488 movzbl %al,%edi
1489 orl %esi,%ecx
1490 movzbl -128(%ebp,%edi,1),%esi
1491 movzbl %bl,%edi
1492 orl %esi,%edx
1493 movzbl -128(%ebp,%edi,1),%esi
1494 movzbl %ah,%edi
1495 shll $16,%esi
1496 shrl $16,%eax
1497 orl %esi,%edx
1498 movzbl -128(%ebp,%edi,1),%esi
1499 movzbl %bh,%edi
1500 shrl $16,%ebx
1501 shll $8,%esi
1502 movd %edx,%mm1
1503 movzbl -128(%ebp,%edi,1),%edx
1504 movzbl %bh,%edi
1505 shll $24,%edx
1506 andl $255,%ebx
1507 orl %esi,%edx
1508 punpckldq %mm1,%mm0
1509 movzbl -128(%ebp,%edi,1),%esi
1510 movzbl %al,%edi
1511 shll $8,%esi
1512 movzbl %ah,%eax
1513 movzbl -128(%ebp,%ebx,1),%ebx
1514 orl %esi,%ecx
1515 movzbl -128(%ebp,%edi,1),%esi
1516 orl %ebx,%edx
1517 shll $16,%esi
1518 movzbl -128(%ebp,%eax,1),%eax
1519 orl %esi,%edx
1520 shll $24,%eax
1521 orl %eax,%ecx
1522 movl 20(%esp),%edi
1523 movd %edx,%mm4
1524 movd %ecx,%mm5
1525 punpckldq %mm5,%mm4
1526 addl $16,%edi
1527 cmpl 24(%esp),%edi
1528 ja .L008out
1529 movq %mm0,%mm3
1530 movq %mm4,%mm7
1531 pshufw $228,%mm0,%mm2
1532 pshufw $228,%mm4,%mm6
1533 movq %mm0,%mm1
1534 movq %mm4,%mm5
1535 pshufw $177,%mm0,%mm0
1536 pshufw $177,%mm4,%mm4
1537 pslld $8,%mm2
1538 pslld $8,%mm6
1539 psrld $8,%mm3
1540 psrld $8,%mm7
1541 pxor %mm2,%mm0
1542 pxor %mm6,%mm4
1543 pxor %mm3,%mm0
1544 pxor %mm7,%mm4
1545 pslld $16,%mm2
1546 pslld $16,%mm6
1547 psrld $16,%mm3
1548 psrld $16,%mm7
1549 pxor %mm2,%mm0
1550 pxor %mm6,%mm4
1551 pxor %mm3,%mm0
1552 pxor %mm7,%mm4
1553 movq 8(%esp),%mm3
1554 pxor %mm2,%mm2
1555 pxor %mm6,%mm6
1556 pcmpgtb %mm1,%mm2
1557 pcmpgtb %mm5,%mm6
1558 pand %mm3,%mm2
1559 pand %mm3,%mm6
1560 paddb %mm1,%mm1
1561 paddb %mm5,%mm5
1562 pxor %mm2,%mm1
1563 pxor %mm6,%mm5
1564 movq %mm1,%mm3
1565 movq %mm5,%mm7
1566 movq %mm1,%mm2
1567 movq %mm5,%mm6
1568 pxor %mm1,%mm0
1569 pxor %mm5,%mm4
1570 pslld $24,%mm3
1571 pslld $24,%mm7
1572 psrld $8,%mm2
1573 psrld $8,%mm6
1574 pxor %mm3,%mm0
1575 pxor %mm7,%mm4
1576 pxor %mm2,%mm0
1577 pxor %mm6,%mm4
1578 movq 8(%esp),%mm2
1579 pxor %mm3,%mm3
1580 pxor %mm7,%mm7
1581 pcmpgtb %mm1,%mm3
1582 pcmpgtb %mm5,%mm7
1583 pand %mm2,%mm3
1584 pand %mm2,%mm7
1585 paddb %mm1,%mm1
1586 paddb %mm5,%mm5
1587 pxor %mm3,%mm1
1588 pxor %mm7,%mm5
1589 pshufw $177,%mm1,%mm3
1590 pshufw $177,%mm5,%mm7
1591 pxor %mm1,%mm0
1592 pxor %mm5,%mm4
1593 pxor %mm3,%mm0
1594 pxor %mm7,%mm4
1595 pxor %mm3,%mm3
1596 pxor %mm7,%mm7
1597 pcmpgtb %mm1,%mm3
1598 pcmpgtb %mm5,%mm7
1599 pand %mm2,%mm3
1600 pand %mm2,%mm7
1601 paddb %mm1,%mm1
1602 paddb %mm5,%mm5
1603 pxor %mm3,%mm1
1604 pxor %mm7,%mm5
1605 pxor %mm1,%mm0
1606 pxor %mm5,%mm4
1607 movq %mm1,%mm3
1608 movq %mm5,%mm7
1609 pshufw $177,%mm1,%mm2
1610 pshufw $177,%mm5,%mm6
1611 pxor %mm2,%mm0
1612 pxor %mm6,%mm4
1613 pslld $8,%mm1
1614 pslld $8,%mm5
1615 psrld $8,%mm3
1616 psrld $8,%mm7
1617 movq (%edi),%mm2
1618 movq 8(%edi),%mm6
1619 pxor %mm1,%mm0
1620 pxor %mm5,%mm4
1621 pxor %mm3,%mm0
1622 pxor %mm7,%mm4
1623 movl -128(%ebp),%eax
1624 pslld $16,%mm1
1625 pslld $16,%mm5
1626 movl -64(%ebp),%ebx
1627 psrld $16,%mm3
1628 psrld $16,%mm7
1629 movl (%ebp),%ecx
1630 pxor %mm1,%mm0
1631 pxor %mm5,%mm4
1632 movl 64(%ebp),%edx
1633 pxor %mm3,%mm0
1634 pxor %mm7,%mm4
1635 pxor %mm2,%mm0
1636 pxor %mm6,%mm4
1637 jmp .L007loop
1638.align 16
1639.L008out:
1640 pxor (%edi),%mm0
1641 pxor 8(%edi),%mm4
1642 ret
1643.size _sse_AES_decrypt_compact,.-_sse_AES_decrypt_compact
1644.type _x86_AES_decrypt,@function
1645.align 16
1646_x86_AES_decrypt:
1647 #ifdef __CET__
1648
1649.byte 243,15,30,251
1650 #endif
1651
1652 movl %edi,20(%esp)
1653 xorl (%edi),%eax
1654 xorl 4(%edi),%ebx
1655 xorl 8(%edi),%ecx
1656 xorl 12(%edi),%edx
1657 movl 240(%edi),%esi
1658 leal -2(%esi,%esi,1),%esi
1659 leal (%edi,%esi,8),%esi
1660 movl %esi,24(%esp)
1661.align 16
1662.L009loop:
1663 movl %eax,%esi
1664 andl $255,%esi
1665 movl (%ebp,%esi,8),%esi
1666 movzbl %dh,%edi
1667 xorl 3(%ebp,%edi,8),%esi
1668 movl %ecx,%edi
1669 shrl $16,%edi
1670 andl $255,%edi
1671 xorl 2(%ebp,%edi,8),%esi
1672 movl %ebx,%edi
1673 shrl $24,%edi
1674 xorl 1(%ebp,%edi,8),%esi
1675 movl %esi,4(%esp)
1676
1677 movl %ebx,%esi
1678 andl $255,%esi
1679 movl (%ebp,%esi,8),%esi
1680 movzbl %ah,%edi
1681 xorl 3(%ebp,%edi,8),%esi
1682 movl %edx,%edi
1683 shrl $16,%edi
1684 andl $255,%edi
1685 xorl 2(%ebp,%edi,8),%esi
1686 movl %ecx,%edi
1687 shrl $24,%edi
1688 xorl 1(%ebp,%edi,8),%esi
1689 movl %esi,8(%esp)
1690
1691 movl %ecx,%esi
1692 andl $255,%esi
1693 movl (%ebp,%esi,8),%esi
1694 movzbl %bh,%edi
1695 xorl 3(%ebp,%edi,8),%esi
1696 movl %eax,%edi
1697 shrl $16,%edi
1698 andl $255,%edi
1699 xorl 2(%ebp,%edi,8),%esi
1700 movl %edx,%edi
1701 shrl $24,%edi
1702 xorl 1(%ebp,%edi,8),%esi
1703
1704 movl 20(%esp),%edi
1705 andl $255,%edx
1706 movl (%ebp,%edx,8),%edx
1707 movzbl %ch,%ecx
1708 xorl 3(%ebp,%ecx,8),%edx
1709 movl %esi,%ecx
1710 shrl $16,%ebx
1711 andl $255,%ebx
1712 xorl 2(%ebp,%ebx,8),%edx
1713 movl 8(%esp),%ebx
1714 shrl $24,%eax
1715 xorl 1(%ebp,%eax,8),%edx
1716 movl 4(%esp),%eax
1717
1718 addl $16,%edi
1719 xorl (%edi),%eax
1720 xorl 4(%edi),%ebx
1721 xorl 8(%edi),%ecx
1722 xorl 12(%edi),%edx
1723 cmpl 24(%esp),%edi
1724 movl %edi,20(%esp)
1725 jb .L009loop
1726 leal 2176(%ebp),%ebp
1727 movl -128(%ebp),%edi
1728 movl -96(%ebp),%esi
1729 movl -64(%ebp),%edi
1730 movl -32(%ebp),%esi
1731 movl (%ebp),%edi
1732 movl 32(%ebp),%esi
1733 movl 64(%ebp),%edi
1734 movl 96(%ebp),%esi
1735 leal -128(%ebp),%ebp
1736 movl %eax,%esi
1737 andl $255,%esi
1738 movzbl (%ebp,%esi,1),%esi
1739 movzbl %dh,%edi
1740 movzbl (%ebp,%edi,1),%edi
1741 shll $8,%edi
1742 xorl %edi,%esi
1743 movl %ecx,%edi
1744 shrl $16,%edi
1745 andl $255,%edi
1746 movzbl (%ebp,%edi,1),%edi
1747 shll $16,%edi
1748 xorl %edi,%esi
1749 movl %ebx,%edi
1750 shrl $24,%edi
1751 movzbl (%ebp,%edi,1),%edi
1752 shll $24,%edi
1753 xorl %edi,%esi
1754 movl %esi,4(%esp)
1755 movl %ebx,%esi
1756 andl $255,%esi
1757 movzbl (%ebp,%esi,1),%esi
1758 movzbl %ah,%edi
1759 movzbl (%ebp,%edi,1),%edi
1760 shll $8,%edi
1761 xorl %edi,%esi
1762 movl %edx,%edi
1763 shrl $16,%edi
1764 andl $255,%edi
1765 movzbl (%ebp,%edi,1),%edi
1766 shll $16,%edi
1767 xorl %edi,%esi
1768 movl %ecx,%edi
1769 shrl $24,%edi
1770 movzbl (%ebp,%edi,1),%edi
1771 shll $24,%edi
1772 xorl %edi,%esi
1773 movl %esi,8(%esp)
1774 movl %ecx,%esi
1775 andl $255,%esi
1776 movzbl (%ebp,%esi,1),%esi
1777 movzbl %bh,%edi
1778 movzbl (%ebp,%edi,1),%edi
1779 shll $8,%edi
1780 xorl %edi,%esi
1781 movl %eax,%edi
1782 shrl $16,%edi
1783 andl $255,%edi
1784 movzbl (%ebp,%edi,1),%edi
1785 shll $16,%edi
1786 xorl %edi,%esi
1787 movl %edx,%edi
1788 shrl $24,%edi
1789 movzbl (%ebp,%edi,1),%edi
1790 shll $24,%edi
1791 xorl %edi,%esi
1792 movl 20(%esp),%edi
1793 andl $255,%edx
1794 movzbl (%ebp,%edx,1),%edx
1795 movzbl %ch,%ecx
1796 movzbl (%ebp,%ecx,1),%ecx
1797 shll $8,%ecx
1798 xorl %ecx,%edx
1799 movl %esi,%ecx
1800 shrl $16,%ebx
1801 andl $255,%ebx
1802 movzbl (%ebp,%ebx,1),%ebx
1803 shll $16,%ebx
1804 xorl %ebx,%edx
1805 movl 8(%esp),%ebx
1806 shrl $24,%eax
1807 movzbl (%ebp,%eax,1),%eax
1808 shll $24,%eax
1809 xorl %eax,%edx
1810 movl 4(%esp),%eax
1811 leal -2048(%ebp),%ebp
1812 addl $16,%edi
1813 xorl (%edi),%eax
1814 xorl 4(%edi),%ebx
1815 xorl 8(%edi),%ecx
1816 xorl 12(%edi),%edx
1817 ret
1818.align 64
1819.LAES_Td:
1820.long 1353184337,1353184337
1821.long 1399144830,1399144830
1822.long 3282310938,3282310938
1823.long 2522752826,2522752826
1824.long 3412831035,3412831035
1825.long 4047871263,4047871263
1826.long 2874735276,2874735276
1827.long 2466505547,2466505547
1828.long 1442459680,1442459680
1829.long 4134368941,4134368941
1830.long 2440481928,2440481928
1831.long 625738485,625738485
1832.long 4242007375,4242007375
1833.long 3620416197,3620416197
1834.long 2151953702,2151953702
1835.long 2409849525,2409849525
1836.long 1230680542,1230680542
1837.long 1729870373,1729870373
1838.long 2551114309,2551114309
1839.long 3787521629,3787521629
1840.long 41234371,41234371
1841.long 317738113,317738113
1842.long 2744600205,2744600205
1843.long 3338261355,3338261355
1844.long 3881799427,3881799427
1845.long 2510066197,2510066197
1846.long 3950669247,3950669247
1847.long 3663286933,3663286933
1848.long 763608788,763608788
1849.long 3542185048,3542185048
1850.long 694804553,694804553
1851.long 1154009486,1154009486
1852.long 1787413109,1787413109
1853.long 2021232372,2021232372
1854.long 1799248025,1799248025
1855.long 3715217703,3715217703
1856.long 3058688446,3058688446
1857.long 397248752,397248752
1858.long 1722556617,1722556617
1859.long 3023752829,3023752829
1860.long 407560035,407560035
1861.long 2184256229,2184256229
1862.long 1613975959,1613975959
1863.long 1165972322,1165972322
1864.long 3765920945,3765920945
1865.long 2226023355,2226023355
1866.long 480281086,480281086
1867.long 2485848313,2485848313
1868.long 1483229296,1483229296
1869.long 436028815,436028815
1870.long 2272059028,2272059028
1871.long 3086515026,3086515026
1872.long 601060267,601060267
1873.long 3791801202,3791801202
1874.long 1468997603,1468997603
1875.long 715871590,715871590
1876.long 120122290,120122290
1877.long 63092015,63092015
1878.long 2591802758,2591802758
1879.long 2768779219,2768779219
1880.long 4068943920,4068943920
1881.long 2997206819,2997206819
1882.long 3127509762,3127509762
1883.long 1552029421,1552029421
1884.long 723308426,723308426
1885.long 2461301159,2461301159
1886.long 4042393587,4042393587
1887.long 2715969870,2715969870
1888.long 3455375973,3455375973
1889.long 3586000134,3586000134
1890.long 526529745,526529745
1891.long 2331944644,2331944644
1892.long 2639474228,2639474228
1893.long 2689987490,2689987490
1894.long 853641733,853641733
1895.long 1978398372,1978398372
1896.long 971801355,971801355
1897.long 2867814464,2867814464
1898.long 111112542,111112542
1899.long 1360031421,1360031421
1900.long 4186579262,4186579262
1901.long 1023860118,1023860118
1902.long 2919579357,2919579357
1903.long 1186850381,1186850381
1904.long 3045938321,3045938321
1905.long 90031217,90031217
1906.long 1876166148,1876166148
1907.long 4279586912,4279586912
1908.long 620468249,620468249
1909.long 2548678102,2548678102
1910.long 3426959497,3426959497
1911.long 2006899047,2006899047
1912.long 3175278768,3175278768
1913.long 2290845959,2290845959
1914.long 945494503,945494503
1915.long 3689859193,3689859193
1916.long 1191869601,1191869601
1917.long 3910091388,3910091388
1918.long 3374220536,3374220536
1919.long 0,0
1920.long 2206629897,2206629897
1921.long 1223502642,1223502642
1922.long 2893025566,2893025566
1923.long 1316117100,1316117100
1924.long 4227796733,4227796733
1925.long 1446544655,1446544655
1926.long 517320253,517320253
1927.long 658058550,658058550
1928.long 1691946762,1691946762
1929.long 564550760,564550760
1930.long 3511966619,3511966619
1931.long 976107044,976107044
1932.long 2976320012,2976320012
1933.long 266819475,266819475
1934.long 3533106868,3533106868
1935.long 2660342555,2660342555
1936.long 1338359936,1338359936
1937.long 2720062561,2720062561
1938.long 1766553434,1766553434
1939.long 370807324,370807324
1940.long 179999714,179999714
1941.long 3844776128,3844776128
1942.long 1138762300,1138762300
1943.long 488053522,488053522
1944.long 185403662,185403662
1945.long 2915535858,2915535858
1946.long 3114841645,3114841645
1947.long 3366526484,3366526484
1948.long 2233069911,2233069911
1949.long 1275557295,1275557295
1950.long 3151862254,3151862254
1951.long 4250959779,4250959779
1952.long 2670068215,2670068215
1953.long 3170202204,3170202204
1954.long 3309004356,3309004356
1955.long 880737115,880737115
1956.long 1982415755,1982415755
1957.long 3703972811,3703972811
1958.long 1761406390,1761406390
1959.long 1676797112,1676797112
1960.long 3403428311,3403428311
1961.long 277177154,277177154
1962.long 1076008723,1076008723
1963.long 538035844,538035844
1964.long 2099530373,2099530373
1965.long 4164795346,4164795346
1966.long 288553390,288553390
1967.long 1839278535,1839278535
1968.long 1261411869,1261411869
1969.long 4080055004,4080055004
1970.long 3964831245,3964831245
1971.long 3504587127,3504587127
1972.long 1813426987,1813426987
1973.long 2579067049,2579067049
1974.long 4199060497,4199060497
1975.long 577038663,577038663
1976.long 3297574056,3297574056
1977.long 440397984,440397984
1978.long 3626794326,3626794326
1979.long 4019204898,4019204898
1980.long 3343796615,3343796615
1981.long 3251714265,3251714265
1982.long 4272081548,4272081548
1983.long 906744984,906744984
1984.long 3481400742,3481400742
1985.long 685669029,685669029
1986.long 646887386,646887386
1987.long 2764025151,2764025151
1988.long 3835509292,3835509292
1989.long 227702864,227702864
1990.long 2613862250,2613862250
1991.long 1648787028,1648787028
1992.long 3256061430,3256061430
1993.long 3904428176,3904428176
1994.long 1593260334,1593260334
1995.long 4121936770,4121936770
1996.long 3196083615,3196083615
1997.long 2090061929,2090061929
1998.long 2838353263,2838353263
1999.long 3004310991,3004310991
2000.long 999926984,999926984
2001.long 2809993232,2809993232
2002.long 1852021992,1852021992
2003.long 2075868123,2075868123
2004.long 158869197,158869197
2005.long 4095236462,4095236462
2006.long 28809964,28809964
2007.long 2828685187,2828685187
2008.long 1701746150,1701746150
2009.long 2129067946,2129067946
2010.long 147831841,147831841
2011.long 3873969647,3873969647
2012.long 3650873274,3650873274
2013.long 3459673930,3459673930
2014.long 3557400554,3557400554
2015.long 3598495785,3598495785
2016.long 2947720241,2947720241
2017.long 824393514,824393514
2018.long 815048134,815048134
2019.long 3227951669,3227951669
2020.long 935087732,935087732
2021.long 2798289660,2798289660
2022.long 2966458592,2966458592
2023.long 366520115,366520115
2024.long 1251476721,1251476721
2025.long 4158319681,4158319681
2026.long 240176511,240176511
2027.long 804688151,804688151
2028.long 2379631990,2379631990
2029.long 1303441219,1303441219
2030.long 1414376140,1414376140
2031.long 3741619940,3741619940
2032.long 3820343710,3820343710
2033.long 461924940,461924940
2034.long 3089050817,3089050817
2035.long 2136040774,2136040774
2036.long 82468509,82468509
2037.long 1563790337,1563790337
2038.long 1937016826,1937016826
2039.long 776014843,776014843
2040.long 1511876531,1511876531
2041.long 1389550482,1389550482
2042.long 861278441,861278441
2043.long 323475053,323475053
2044.long 2355222426,2355222426
2045.long 2047648055,2047648055
2046.long 2383738969,2383738969
2047.long 2302415851,2302415851
2048.long 3995576782,3995576782
2049.long 902390199,902390199
2050.long 3991215329,3991215329
2051.long 1018251130,1018251130
2052.long 1507840668,1507840668
2053.long 1064563285,1064563285
2054.long 2043548696,2043548696
2055.long 3208103795,3208103795
2056.long 3939366739,3939366739
2057.long 1537932639,1537932639
2058.long 342834655,342834655
2059.long 2262516856,2262516856
2060.long 2180231114,2180231114
2061.long 1053059257,1053059257
2062.long 741614648,741614648
2063.long 1598071746,1598071746
2064.long 1925389590,1925389590
2065.long 203809468,203809468
2066.long 2336832552,2336832552
2067.long 1100287487,1100287487
2068.long 1895934009,1895934009
2069.long 3736275976,3736275976
2070.long 2632234200,2632234200
2071.long 2428589668,2428589668
2072.long 1636092795,1636092795
2073.long 1890988757,1890988757
2074.long 1952214088,1952214088
2075.long 1113045200,1113045200
2076.byte 82,9,106,213,48,54,165,56
2077.byte 191,64,163,158,129,243,215,251
2078.byte 124,227,57,130,155,47,255,135
2079.byte 52,142,67,68,196,222,233,203
2080.byte 84,123,148,50,166,194,35,61
2081.byte 238,76,149,11,66,250,195,78
2082.byte 8,46,161,102,40,217,36,178
2083.byte 118,91,162,73,109,139,209,37
2084.byte 114,248,246,100,134,104,152,22
2085.byte 212,164,92,204,93,101,182,146
2086.byte 108,112,72,80,253,237,185,218
2087.byte 94,21,70,87,167,141,157,132
2088.byte 144,216,171,0,140,188,211,10
2089.byte 247,228,88,5,184,179,69,6
2090.byte 208,44,30,143,202,63,15,2
2091.byte 193,175,189,3,1,19,138,107
2092.byte 58,145,17,65,79,103,220,234
2093.byte 151,242,207,206,240,180,230,115
2094.byte 150,172,116,34,231,173,53,133
2095.byte 226,249,55,232,28,117,223,110
2096.byte 71,241,26,113,29,41,197,137
2097.byte 111,183,98,14,170,24,190,27
2098.byte 252,86,62,75,198,210,121,32
2099.byte 154,219,192,254,120,205,90,244
2100.byte 31,221,168,51,136,7,199,49
2101.byte 177,18,16,89,39,128,236,95
2102.byte 96,81,127,169,25,181,74,13
2103.byte 45,229,122,159,147,201,156,239
2104.byte 160,224,59,77,174,42,245,176
2105.byte 200,235,187,60,131,83,153,97
2106.byte 23,43,4,126,186,119,214,38
2107.byte 225,105,20,99,85,33,12,125
2108.byte 82,9,106,213,48,54,165,56
2109.byte 191,64,163,158,129,243,215,251
2110.byte 124,227,57,130,155,47,255,135
2111.byte 52,142,67,68,196,222,233,203
2112.byte 84,123,148,50,166,194,35,61
2113.byte 238,76,149,11,66,250,195,78
2114.byte 8,46,161,102,40,217,36,178
2115.byte 118,91,162,73,109,139,209,37
2116.byte 114,248,246,100,134,104,152,22
2117.byte 212,164,92,204,93,101,182,146
2118.byte 108,112,72,80,253,237,185,218
2119.byte 94,21,70,87,167,141,157,132
2120.byte 144,216,171,0,140,188,211,10
2121.byte 247,228,88,5,184,179,69,6
2122.byte 208,44,30,143,202,63,15,2
2123.byte 193,175,189,3,1,19,138,107
2124.byte 58,145,17,65,79,103,220,234
2125.byte 151,242,207,206,240,180,230,115
2126.byte 150,172,116,34,231,173,53,133
2127.byte 226,249,55,232,28,117,223,110
2128.byte 71,241,26,113,29,41,197,137
2129.byte 111,183,98,14,170,24,190,27
2130.byte 252,86,62,75,198,210,121,32
2131.byte 154,219,192,254,120,205,90,244
2132.byte 31,221,168,51,136,7,199,49
2133.byte 177,18,16,89,39,128,236,95
2134.byte 96,81,127,169,25,181,74,13
2135.byte 45,229,122,159,147,201,156,239
2136.byte 160,224,59,77,174,42,245,176
2137.byte 200,235,187,60,131,83,153,97
2138.byte 23,43,4,126,186,119,214,38
2139.byte 225,105,20,99,85,33,12,125
2140.byte 82,9,106,213,48,54,165,56
2141.byte 191,64,163,158,129,243,215,251
2142.byte 124,227,57,130,155,47,255,135
2143.byte 52,142,67,68,196,222,233,203
2144.byte 84,123,148,50,166,194,35,61
2145.byte 238,76,149,11,66,250,195,78
2146.byte 8,46,161,102,40,217,36,178
2147.byte 118,91,162,73,109,139,209,37
2148.byte 114,248,246,100,134,104,152,22
2149.byte 212,164,92,204,93,101,182,146
2150.byte 108,112,72,80,253,237,185,218
2151.byte 94,21,70,87,167,141,157,132
2152.byte 144,216,171,0,140,188,211,10
2153.byte 247,228,88,5,184,179,69,6
2154.byte 208,44,30,143,202,63,15,2
2155.byte 193,175,189,3,1,19,138,107
2156.byte 58,145,17,65,79,103,220,234
2157.byte 151,242,207,206,240,180,230,115
2158.byte 150,172,116,34,231,173,53,133
2159.byte 226,249,55,232,28,117,223,110
2160.byte 71,241,26,113,29,41,197,137
2161.byte 111,183,98,14,170,24,190,27
2162.byte 252,86,62,75,198,210,121,32
2163.byte 154,219,192,254,120,205,90,244
2164.byte 31,221,168,51,136,7,199,49
2165.byte 177,18,16,89,39,128,236,95
2166.byte 96,81,127,169,25,181,74,13
2167.byte 45,229,122,159,147,201,156,239
2168.byte 160,224,59,77,174,42,245,176
2169.byte 200,235,187,60,131,83,153,97
2170.byte 23,43,4,126,186,119,214,38
2171.byte 225,105,20,99,85,33,12,125
2172.byte 82,9,106,213,48,54,165,56
2173.byte 191,64,163,158,129,243,215,251
2174.byte 124,227,57,130,155,47,255,135
2175.byte 52,142,67,68,196,222,233,203
2176.byte 84,123,148,50,166,194,35,61
2177.byte 238,76,149,11,66,250,195,78
2178.byte 8,46,161,102,40,217,36,178
2179.byte 118,91,162,73,109,139,209,37
2180.byte 114,248,246,100,134,104,152,22
2181.byte 212,164,92,204,93,101,182,146
2182.byte 108,112,72,80,253,237,185,218
2183.byte 94,21,70,87,167,141,157,132
2184.byte 144,216,171,0,140,188,211,10
2185.byte 247,228,88,5,184,179,69,6
2186.byte 208,44,30,143,202,63,15,2
2187.byte 193,175,189,3,1,19,138,107
2188.byte 58,145,17,65,79,103,220,234
2189.byte 151,242,207,206,240,180,230,115
2190.byte 150,172,116,34,231,173,53,133
2191.byte 226,249,55,232,28,117,223,110
2192.byte 71,241,26,113,29,41,197,137
2193.byte 111,183,98,14,170,24,190,27
2194.byte 252,86,62,75,198,210,121,32
2195.byte 154,219,192,254,120,205,90,244
2196.byte 31,221,168,51,136,7,199,49
2197.byte 177,18,16,89,39,128,236,95
2198.byte 96,81,127,169,25,181,74,13
2199.byte 45,229,122,159,147,201,156,239
2200.byte 160,224,59,77,174,42,245,176
2201.byte 200,235,187,60,131,83,153,97
2202.byte 23,43,4,126,186,119,214,38
2203.byte 225,105,20,99,85,33,12,125
2204.size _x86_AES_decrypt,.-_x86_AES_decrypt
2205.globl AES_decrypt
2206.type AES_decrypt,@function
2207.align 16
2208AES_decrypt:
2209.L_AES_decrypt_begin:
2210 #ifdef __CET__
2211
2212.byte 243,15,30,251
2213 #endif
2214
2215 pushl %ebp
2216 pushl %ebx
2217 pushl %esi
2218 pushl %edi
2219 movl 20(%esp),%esi
2220 movl 28(%esp),%edi
2221 movl %esp,%eax
2222 subl $36,%esp
2223 andl $-64,%esp
2224 leal -127(%edi),%ebx
2225 subl %esp,%ebx
2226 negl %ebx
2227 andl $960,%ebx
2228 subl %ebx,%esp
2229 addl $4,%esp
2230 movl %eax,28(%esp)
2231 call .L010pic_point
2232.L010pic_point:
2233 popl %ebp
2234 leal OPENSSL_ia32cap_P-.L010pic_point(%ebp),%eax
2235 leal .LAES_Td-.L010pic_point(%ebp),%ebp
2236 leal 764(%esp),%ebx
2237 subl %ebp,%ebx
2238 andl $768,%ebx
2239 leal 2176(%ebp,%ebx,1),%ebp
2240 btl $25,(%eax)
2241 jnc .L011x86
2242 movq (%esi),%mm0
2243 movq 8(%esi),%mm4
2244 call _sse_AES_decrypt_compact
2245 movl 28(%esp),%esp
2246 movl 24(%esp),%esi
2247 movq %mm0,(%esi)
2248 movq %mm4,8(%esi)
2249 emms
2250 popl %edi
2251 popl %esi
2252 popl %ebx
2253 popl %ebp
2254 ret
2255.align 16
2256.L011x86:
2257 movl %ebp,24(%esp)
2258 movl (%esi),%eax
2259 movl 4(%esi),%ebx
2260 movl 8(%esi),%ecx
2261 movl 12(%esi),%edx
2262 call _x86_AES_decrypt_compact
2263 movl 28(%esp),%esp
2264 movl 24(%esp),%esi
2265 movl %eax,(%esi)
2266 movl %ebx,4(%esi)
2267 movl %ecx,8(%esi)
2268 movl %edx,12(%esi)
2269 popl %edi
2270 popl %esi
2271 popl %ebx
2272 popl %ebp
2273 ret
2274.size AES_decrypt,.-.L_AES_decrypt_begin
2275.globl AES_cbc_encrypt
2276.type AES_cbc_encrypt,@function
2277.align 16
2278AES_cbc_encrypt:
2279.L_AES_cbc_encrypt_begin:
2280 #ifdef __CET__
2281
2282.byte 243,15,30,251
2283 #endif
2284
2285 pushl %ebp
2286 pushl %ebx
2287 pushl %esi
2288 pushl %edi
2289 movl 28(%esp),%ecx
2290 cmpl $0,%ecx
2291 je .L012drop_out
2292 call .L013pic_point
2293.L013pic_point:
2294 popl %ebp
2295 leal OPENSSL_ia32cap_P-.L013pic_point(%ebp),%eax
2296 cmpl $0,40(%esp)
2297 leal .LAES_Te-.L013pic_point(%ebp),%ebp
2298 jne .L014picked_te
2299 leal .LAES_Td-.LAES_Te(%ebp),%ebp
2300.L014picked_te:
2301 pushfl
2302 cld
2303 cmpl $512,%ecx
2304 jb .L015slow_way
2305 testl $15,%ecx
2306 jnz .L015slow_way
2307 btl $28,(%eax)
2308 jc .L015slow_way
2309 leal -324(%esp),%esi
2310 andl $-64,%esi
2311 movl %ebp,%eax
2312 leal 2304(%ebp),%ebx
2313 movl %esi,%edx
2314 andl $4095,%eax
2315 andl $4095,%ebx
2316 andl $4095,%edx
2317 cmpl %ebx,%edx
2318 jb .L016tbl_break_out
2319 subl %ebx,%edx
2320 subl %edx,%esi
2321 jmp .L017tbl_ok
2322.align 4
2323.L016tbl_break_out:
2324 subl %eax,%edx
2325 andl $4095,%edx
2326 addl $384,%edx
2327 subl %edx,%esi
2328.align 4
2329.L017tbl_ok:
2330 leal 24(%esp),%edx
2331 xchgl %esi,%esp
2332 addl $4,%esp
2333 movl %ebp,24(%esp)
2334 movl %esi,28(%esp)
2335 movl (%edx),%eax
2336 movl 4(%edx),%ebx
2337 movl 12(%edx),%edi
2338 movl 16(%edx),%esi
2339 movl 20(%edx),%edx
2340 movl %eax,32(%esp)
2341 movl %ebx,36(%esp)
2342 movl %ecx,40(%esp)
2343 movl %edi,44(%esp)
2344 movl %esi,48(%esp)
2345 movl $0,316(%esp)
2346 movl %edi,%ebx
2347 movl $61,%ecx
2348 subl %ebp,%ebx
2349 movl %edi,%esi
2350 andl $4095,%ebx
2351 leal 76(%esp),%edi
2352 cmpl $2304,%ebx
2353 jb .L018do_copy
2354 cmpl $3852,%ebx
2355 jb .L019skip_copy
2356.align 4
2357.L018do_copy:
2358 movl %edi,44(%esp)
2359.long 2784229001
2360.L019skip_copy:
2361 movl $16,%edi
2362.align 4
2363.L020prefetch_tbl:
2364 movl (%ebp),%eax
2365 movl 32(%ebp),%ebx
2366 movl 64(%ebp),%ecx
2367 movl 96(%ebp),%esi
2368 leal 128(%ebp),%ebp
2369 subl $1,%edi
2370 jnz .L020prefetch_tbl
2371 subl $2048,%ebp
2372 movl 32(%esp),%esi
2373 movl 48(%esp),%edi
2374 cmpl $0,%edx
2375 je .L021fast_decrypt
2376 movl (%edi),%eax
2377 movl 4(%edi),%ebx
2378.align 16
2379.L022fast_enc_loop:
2380 movl 8(%edi),%ecx
2381 movl 12(%edi),%edx
2382 xorl (%esi),%eax
2383 xorl 4(%esi),%ebx
2384 xorl 8(%esi),%ecx
2385 xorl 12(%esi),%edx
2386 movl 44(%esp),%edi
2387 call _x86_AES_encrypt
2388 movl 32(%esp),%esi
2389 movl 36(%esp),%edi
2390 movl %eax,(%edi)
2391 movl %ebx,4(%edi)
2392 movl %ecx,8(%edi)
2393 movl %edx,12(%edi)
2394 leal 16(%esi),%esi
2395 movl 40(%esp),%ecx
2396 movl %esi,32(%esp)
2397 leal 16(%edi),%edx
2398 movl %edx,36(%esp)
2399 subl $16,%ecx
2400 movl %ecx,40(%esp)
2401 jnz .L022fast_enc_loop
2402 movl 48(%esp),%esi
2403 movl 8(%edi),%ecx
2404 movl 12(%edi),%edx
2405 movl %eax,(%esi)
2406 movl %ebx,4(%esi)
2407 movl %ecx,8(%esi)
2408 movl %edx,12(%esi)
2409 cmpl $0,316(%esp)
2410 movl 44(%esp),%edi
2411 je .L023skip_ezero
2412 movl $60,%ecx
2413 xorl %eax,%eax
2414.align 4
2415.long 2884892297
2416.L023skip_ezero:
2417 movl 28(%esp),%esp
2418 popfl
2419.L012drop_out:
2420 popl %edi
2421 popl %esi
2422 popl %ebx
2423 popl %ebp
2424 ret
2425 pushfl
2426.align 16
2427.L021fast_decrypt:
2428 cmpl 36(%esp),%esi
2429 je .L024fast_dec_in_place
2430 movl %edi,52(%esp)
2431.align 4
2432.align 16
2433.L025fast_dec_loop:
2434 movl (%esi),%eax
2435 movl 4(%esi),%ebx
2436 movl 8(%esi),%ecx
2437 movl 12(%esi),%edx
2438 movl 44(%esp),%edi
2439 call _x86_AES_decrypt
2440 movl 52(%esp),%edi
2441 movl 40(%esp),%esi
2442 xorl (%edi),%eax
2443 xorl 4(%edi),%ebx
2444 xorl 8(%edi),%ecx
2445 xorl 12(%edi),%edx
2446 movl 36(%esp),%edi
2447 movl 32(%esp),%esi
2448 movl %eax,(%edi)
2449 movl %ebx,4(%edi)
2450 movl %ecx,8(%edi)
2451 movl %edx,12(%edi)
2452 movl 40(%esp),%ecx
2453 movl %esi,52(%esp)
2454 leal 16(%esi),%esi
2455 movl %esi,32(%esp)
2456 leal 16(%edi),%edi
2457 movl %edi,36(%esp)
2458 subl $16,%ecx
2459 movl %ecx,40(%esp)
2460 jnz .L025fast_dec_loop
2461 movl 52(%esp),%edi
2462 movl 48(%esp),%esi
2463 movl (%edi),%eax
2464 movl 4(%edi),%ebx
2465 movl 8(%edi),%ecx
2466 movl 12(%edi),%edx
2467 movl %eax,(%esi)
2468 movl %ebx,4(%esi)
2469 movl %ecx,8(%esi)
2470 movl %edx,12(%esi)
2471 jmp .L026fast_dec_out
2472.align 16
2473.L024fast_dec_in_place:
2474.L027fast_dec_in_place_loop:
2475 movl (%esi),%eax
2476 movl 4(%esi),%ebx
2477 movl 8(%esi),%ecx
2478 movl 12(%esi),%edx
2479 leal 60(%esp),%edi
2480 movl %eax,(%edi)
2481 movl %ebx,4(%edi)
2482 movl %ecx,8(%edi)
2483 movl %edx,12(%edi)
2484 movl 44(%esp),%edi
2485 call _x86_AES_decrypt
2486 movl 48(%esp),%edi
2487 movl 36(%esp),%esi
2488 xorl (%edi),%eax
2489 xorl 4(%edi),%ebx
2490 xorl 8(%edi),%ecx
2491 xorl 12(%edi),%edx
2492 movl %eax,(%esi)
2493 movl %ebx,4(%esi)
2494 movl %ecx,8(%esi)
2495 movl %edx,12(%esi)
2496 leal 16(%esi),%esi
2497 movl %esi,36(%esp)
2498 leal 60(%esp),%esi
2499 movl (%esi),%eax
2500 movl 4(%esi),%ebx
2501 movl 8(%esi),%ecx
2502 movl 12(%esi),%edx
2503 movl %eax,(%edi)
2504 movl %ebx,4(%edi)
2505 movl %ecx,8(%edi)
2506 movl %edx,12(%edi)
2507 movl 32(%esp),%esi
2508 movl 40(%esp),%ecx
2509 leal 16(%esi),%esi
2510 movl %esi,32(%esp)
2511 subl $16,%ecx
2512 movl %ecx,40(%esp)
2513 jnz .L027fast_dec_in_place_loop
2514.align 4
2515.L026fast_dec_out:
2516 cmpl $0,316(%esp)
2517 movl 44(%esp),%edi
2518 je .L028skip_dzero
2519 movl $60,%ecx
2520 xorl %eax,%eax
2521.align 4
2522.long 2884892297
2523.L028skip_dzero:
2524 movl 28(%esp),%esp
2525 popfl
2526 popl %edi
2527 popl %esi
2528 popl %ebx
2529 popl %ebp
2530 ret
2531 pushfl
2532.align 16
2533.L015slow_way:
2534 movl (%eax),%eax
2535 movl 36(%esp),%edi
2536 leal -80(%esp),%esi
2537 andl $-64,%esi
2538 leal -143(%edi),%ebx
2539 subl %esi,%ebx
2540 negl %ebx
2541 andl $960,%ebx
2542 subl %ebx,%esi
2543 leal 768(%esi),%ebx
2544 subl %ebp,%ebx
2545 andl $768,%ebx
2546 leal 2176(%ebp,%ebx,1),%ebp
2547 leal 24(%esp),%edx
2548 xchgl %esi,%esp
2549 addl $4,%esp
2550 movl %ebp,24(%esp)
2551 movl %esi,28(%esp)
2552 movl %eax,52(%esp)
2553 movl (%edx),%eax
2554 movl 4(%edx),%ebx
2555 movl 16(%edx),%esi
2556 movl 20(%edx),%edx
2557 movl %eax,32(%esp)
2558 movl %ebx,36(%esp)
2559 movl %ecx,40(%esp)
2560 movl %edi,44(%esp)
2561 movl %esi,48(%esp)
2562 movl %esi,%edi
2563 movl %eax,%esi
2564 cmpl $0,%edx
2565 je .L029slow_decrypt
2566 cmpl $16,%ecx
2567 movl %ebx,%edx
2568 jb .L030slow_enc_tail
2569 btl $25,52(%esp)
2570 jnc .L031slow_enc_x86
2571 movq (%edi),%mm0
2572 movq 8(%edi),%mm4
2573.align 16
2574.L032slow_enc_loop_sse:
2575 pxor (%esi),%mm0
2576 pxor 8(%esi),%mm4
2577 movl 44(%esp),%edi
2578 call _sse_AES_encrypt_compact
2579 movl 32(%esp),%esi
2580 movl 36(%esp),%edi
2581 movl 40(%esp),%ecx
2582 movq %mm0,(%edi)
2583 movq %mm4,8(%edi)
2584 leal 16(%esi),%esi
2585 movl %esi,32(%esp)
2586 leal 16(%edi),%edx
2587 movl %edx,36(%esp)
2588 subl $16,%ecx
2589 cmpl $16,%ecx
2590 movl %ecx,40(%esp)
2591 jae .L032slow_enc_loop_sse
2592 testl $15,%ecx
2593 jnz .L030slow_enc_tail
2594 movl 48(%esp),%esi
2595 movq %mm0,(%esi)
2596 movq %mm4,8(%esi)
2597 emms
2598 movl 28(%esp),%esp
2599 popfl
2600 popl %edi
2601 popl %esi
2602 popl %ebx
2603 popl %ebp
2604 ret
2605 pushfl
2606.align 16
2607.L031slow_enc_x86:
2608 movl (%edi),%eax
2609 movl 4(%edi),%ebx
2610.align 4
2611.L033slow_enc_loop_x86:
2612 movl 8(%edi),%ecx
2613 movl 12(%edi),%edx
2614 xorl (%esi),%eax
2615 xorl 4(%esi),%ebx
2616 xorl 8(%esi),%ecx
2617 xorl 12(%esi),%edx
2618 movl 44(%esp),%edi
2619 call _x86_AES_encrypt_compact
2620 movl 32(%esp),%esi
2621 movl 36(%esp),%edi
2622 movl %eax,(%edi)
2623 movl %ebx,4(%edi)
2624 movl %ecx,8(%edi)
2625 movl %edx,12(%edi)
2626 movl 40(%esp),%ecx
2627 leal 16(%esi),%esi
2628 movl %esi,32(%esp)
2629 leal 16(%edi),%edx
2630 movl %edx,36(%esp)
2631 subl $16,%ecx
2632 cmpl $16,%ecx
2633 movl %ecx,40(%esp)
2634 jae .L033slow_enc_loop_x86
2635 testl $15,%ecx
2636 jnz .L030slow_enc_tail
2637 movl 48(%esp),%esi
2638 movl 8(%edi),%ecx
2639 movl 12(%edi),%edx
2640 movl %eax,(%esi)
2641 movl %ebx,4(%esi)
2642 movl %ecx,8(%esi)
2643 movl %edx,12(%esi)
2644 movl 28(%esp),%esp
2645 popfl
2646 popl %edi
2647 popl %esi
2648 popl %ebx
2649 popl %ebp
2650 ret
2651 pushfl
2652.align 16
2653.L030slow_enc_tail:
2654 emms
2655 movl %edx,%edi
2656 movl $16,%ebx
2657 subl %ecx,%ebx
2658 cmpl %esi,%edi
2659 je .L034enc_in_place
2660.align 4
2661.long 2767451785
2662 jmp .L035enc_skip_in_place
2663.L034enc_in_place:
2664 leal (%edi,%ecx,1),%edi
2665.L035enc_skip_in_place:
2666 movl %ebx,%ecx
2667 xorl %eax,%eax
2668.align 4
2669.long 2868115081
2670 movl 48(%esp),%edi
2671 movl %edx,%esi
2672 movl (%edi),%eax
2673 movl 4(%edi),%ebx
2674 movl $16,40(%esp)
2675 jmp .L033slow_enc_loop_x86
2676.align 16
2677.L029slow_decrypt:
2678 btl $25,52(%esp)
2679 jnc .L036slow_dec_loop_x86
2680.align 4
2681.L037slow_dec_loop_sse:
2682 movq (%esi),%mm0
2683 movq 8(%esi),%mm4
2684 movl 44(%esp),%edi
2685 call _sse_AES_decrypt_compact
2686 movl 32(%esp),%esi
2687 leal 60(%esp),%eax
2688 movl 36(%esp),%ebx
2689 movl 40(%esp),%ecx
2690 movl 48(%esp),%edi
2691 movq (%esi),%mm1
2692 movq 8(%esi),%mm5
2693 pxor (%edi),%mm0
2694 pxor 8(%edi),%mm4
2695 movq %mm1,(%edi)
2696 movq %mm5,8(%edi)
2697 subl $16,%ecx
2698 jc .L038slow_dec_partial_sse
2699 movq %mm0,(%ebx)
2700 movq %mm4,8(%ebx)
2701 leal 16(%ebx),%ebx
2702 movl %ebx,36(%esp)
2703 leal 16(%esi),%esi
2704 movl %esi,32(%esp)
2705 movl %ecx,40(%esp)
2706 jnz .L037slow_dec_loop_sse
2707 emms
2708 movl 28(%esp),%esp
2709 popfl
2710 popl %edi
2711 popl %esi
2712 popl %ebx
2713 popl %ebp
2714 ret
2715 pushfl
2716.align 16
2717.L038slow_dec_partial_sse:
2718 movq %mm0,(%eax)
2719 movq %mm4,8(%eax)
2720 emms
2721 addl $16,%ecx
2722 movl %ebx,%edi
2723 movl %eax,%esi
2724.align 4
2725.long 2767451785
2726 movl 28(%esp),%esp
2727 popfl
2728 popl %edi
2729 popl %esi
2730 popl %ebx
2731 popl %ebp
2732 ret
2733 pushfl
2734.align 16
2735.L036slow_dec_loop_x86:
2736 movl (%esi),%eax
2737 movl 4(%esi),%ebx
2738 movl 8(%esi),%ecx
2739 movl 12(%esi),%edx
2740 leal 60(%esp),%edi
2741 movl %eax,(%edi)
2742 movl %ebx,4(%edi)
2743 movl %ecx,8(%edi)
2744 movl %edx,12(%edi)
2745 movl 44(%esp),%edi
2746 call _x86_AES_decrypt_compact
2747 movl 48(%esp),%edi
2748 movl 40(%esp),%esi
2749 xorl (%edi),%eax
2750 xorl 4(%edi),%ebx
2751 xorl 8(%edi),%ecx
2752 xorl 12(%edi),%edx
2753 subl $16,%esi
2754 jc .L039slow_dec_partial_x86
2755 movl %esi,40(%esp)
2756 movl 36(%esp),%esi
2757 movl %eax,(%esi)
2758 movl %ebx,4(%esi)
2759 movl %ecx,8(%esi)
2760 movl %edx,12(%esi)
2761 leal 16(%esi),%esi
2762 movl %esi,36(%esp)
2763 leal 60(%esp),%esi
2764 movl (%esi),%eax
2765 movl 4(%esi),%ebx
2766 movl 8(%esi),%ecx
2767 movl 12(%esi),%edx
2768 movl %eax,(%edi)
2769 movl %ebx,4(%edi)
2770 movl %ecx,8(%edi)
2771 movl %edx,12(%edi)
2772 movl 32(%esp),%esi
2773 leal 16(%esi),%esi
2774 movl %esi,32(%esp)
2775 jnz .L036slow_dec_loop_x86
2776 movl 28(%esp),%esp
2777 popfl
2778 popl %edi
2779 popl %esi
2780 popl %ebx
2781 popl %ebp
2782 ret
2783 pushfl
2784.align 16
2785.L039slow_dec_partial_x86:
2786 leal 60(%esp),%esi
2787 movl %eax,(%esi)
2788 movl %ebx,4(%esi)
2789 movl %ecx,8(%esi)
2790 movl %edx,12(%esi)
2791 movl 32(%esp),%esi
2792 movl (%esi),%eax
2793 movl 4(%esi),%ebx
2794 movl 8(%esi),%ecx
2795 movl 12(%esi),%edx
2796 movl %eax,(%edi)
2797 movl %ebx,4(%edi)
2798 movl %ecx,8(%edi)
2799 movl %edx,12(%edi)
2800 movl 40(%esp),%ecx
2801 movl 36(%esp),%edi
2802 leal 60(%esp),%esi
2803.align 4
2804.long 2767451785
2805 movl 28(%esp),%esp
2806 popfl
2807 popl %edi
2808 popl %esi
2809 popl %ebx
2810 popl %ebp
2811 ret
2812.size AES_cbc_encrypt,.-.L_AES_cbc_encrypt_begin
2813.type _x86_AES_set_encrypt_key,@function
2814.align 16
2815_x86_AES_set_encrypt_key:
2816 #ifdef __CET__
2817
2818.byte 243,15,30,251
2819 #endif
2820
2821 pushl %ebp
2822 pushl %ebx
2823 pushl %esi
2824 pushl %edi
2825 movl 24(%esp),%esi
2826 movl 32(%esp),%edi
2827 testl $-1,%esi
2828 jz .L040badpointer
2829 testl $-1,%edi
2830 jz .L040badpointer
2831 call .L041pic_point
2832.L041pic_point:
2833 popl %ebp
2834 leal .LAES_Te-.L041pic_point(%ebp),%ebp
2835 leal 2176(%ebp),%ebp
2836 movl -128(%ebp),%eax
2837 movl -96(%ebp),%ebx
2838 movl -64(%ebp),%ecx
2839 movl -32(%ebp),%edx
2840 movl (%ebp),%eax
2841 movl 32(%ebp),%ebx
2842 movl 64(%ebp),%ecx
2843 movl 96(%ebp),%edx
2844 movl 28(%esp),%ecx
2845 cmpl $128,%ecx
2846 je .L04210rounds
2847 cmpl $192,%ecx
2848 je .L04312rounds
2849 cmpl $256,%ecx
2850 je .L04414rounds
2851 movl $-2,%eax
2852 jmp .L045exit
2853.L04210rounds:
2854 movl (%esi),%eax
2855 movl 4(%esi),%ebx
2856 movl 8(%esi),%ecx
2857 movl 12(%esi),%edx
2858 movl %eax,(%edi)
2859 movl %ebx,4(%edi)
2860 movl %ecx,8(%edi)
2861 movl %edx,12(%edi)
2862 xorl %ecx,%ecx
2863 jmp .L04610shortcut
2864.align 4
2865.L04710loop:
2866 movl (%edi),%eax
2867 movl 12(%edi),%edx
2868.L04610shortcut:
2869 movzbl %dl,%esi
2870 movzbl -128(%ebp,%esi,1),%ebx
2871 movzbl %dh,%esi
2872 shll $24,%ebx
2873 xorl %ebx,%eax
2874 movzbl -128(%ebp,%esi,1),%ebx
2875 shrl $16,%edx
2876 movzbl %dl,%esi
2877 xorl %ebx,%eax
2878 movzbl -128(%ebp,%esi,1),%ebx
2879 movzbl %dh,%esi
2880 shll $8,%ebx
2881 xorl %ebx,%eax
2882 movzbl -128(%ebp,%esi,1),%ebx
2883 shll $16,%ebx
2884 xorl %ebx,%eax
2885 xorl 896(%ebp,%ecx,4),%eax
2886 movl %eax,16(%edi)
2887 xorl 4(%edi),%eax
2888 movl %eax,20(%edi)
2889 xorl 8(%edi),%eax
2890 movl %eax,24(%edi)
2891 xorl 12(%edi),%eax
2892 movl %eax,28(%edi)
2893 incl %ecx
2894 addl $16,%edi
2895 cmpl $10,%ecx
2896 jl .L04710loop
2897 movl $10,80(%edi)
2898 xorl %eax,%eax
2899 jmp .L045exit
2900.L04312rounds:
2901 movl (%esi),%eax
2902 movl 4(%esi),%ebx
2903 movl 8(%esi),%ecx
2904 movl 12(%esi),%edx
2905 movl %eax,(%edi)
2906 movl %ebx,4(%edi)
2907 movl %ecx,8(%edi)
2908 movl %edx,12(%edi)
2909 movl 16(%esi),%ecx
2910 movl 20(%esi),%edx
2911 movl %ecx,16(%edi)
2912 movl %edx,20(%edi)
2913 xorl %ecx,%ecx
2914 jmp .L04812shortcut
2915.align 4
2916.L04912loop:
2917 movl (%edi),%eax
2918 movl 20(%edi),%edx
2919.L04812shortcut:
2920 movzbl %dl,%esi
2921 movzbl -128(%ebp,%esi,1),%ebx
2922 movzbl %dh,%esi
2923 shll $24,%ebx
2924 xorl %ebx,%eax
2925 movzbl -128(%ebp,%esi,1),%ebx
2926 shrl $16,%edx
2927 movzbl %dl,%esi
2928 xorl %ebx,%eax
2929 movzbl -128(%ebp,%esi,1),%ebx
2930 movzbl %dh,%esi
2931 shll $8,%ebx
2932 xorl %ebx,%eax
2933 movzbl -128(%ebp,%esi,1),%ebx
2934 shll $16,%ebx
2935 xorl %ebx,%eax
2936 xorl 896(%ebp,%ecx,4),%eax
2937 movl %eax,24(%edi)
2938 xorl 4(%edi),%eax
2939 movl %eax,28(%edi)
2940 xorl 8(%edi),%eax
2941 movl %eax,32(%edi)
2942 xorl 12(%edi),%eax
2943 movl %eax,36(%edi)
2944 cmpl $7,%ecx
2945 je .L05012break
2946 incl %ecx
2947 xorl 16(%edi),%eax
2948 movl %eax,40(%edi)
2949 xorl 20(%edi),%eax
2950 movl %eax,44(%edi)
2951 addl $24,%edi
2952 jmp .L04912loop
2953.L05012break:
2954 movl $12,72(%edi)
2955 xorl %eax,%eax
2956 jmp .L045exit
2957.L04414rounds:
2958 movl (%esi),%eax
2959 movl 4(%esi),%ebx
2960 movl 8(%esi),%ecx
2961 movl 12(%esi),%edx
2962 movl %eax,(%edi)
2963 movl %ebx,4(%edi)
2964 movl %ecx,8(%edi)
2965 movl %edx,12(%edi)
2966 movl 16(%esi),%eax
2967 movl 20(%esi),%ebx
2968 movl 24(%esi),%ecx
2969 movl 28(%esi),%edx
2970 movl %eax,16(%edi)
2971 movl %ebx,20(%edi)
2972 movl %ecx,24(%edi)
2973 movl %edx,28(%edi)
2974 xorl %ecx,%ecx
2975 jmp .L05114shortcut
2976.align 4
2977.L05214loop:
2978 movl 28(%edi),%edx
2979.L05114shortcut:
2980 movl (%edi),%eax
2981 movzbl %dl,%esi
2982 movzbl -128(%ebp,%esi,1),%ebx
2983 movzbl %dh,%esi
2984 shll $24,%ebx
2985 xorl %ebx,%eax
2986 movzbl -128(%ebp,%esi,1),%ebx
2987 shrl $16,%edx
2988 movzbl %dl,%esi
2989 xorl %ebx,%eax
2990 movzbl -128(%ebp,%esi,1),%ebx
2991 movzbl %dh,%esi
2992 shll $8,%ebx
2993 xorl %ebx,%eax
2994 movzbl -128(%ebp,%esi,1),%ebx
2995 shll $16,%ebx
2996 xorl %ebx,%eax
2997 xorl 896(%ebp,%ecx,4),%eax
2998 movl %eax,32(%edi)
2999 xorl 4(%edi),%eax
3000 movl %eax,36(%edi)
3001 xorl 8(%edi),%eax
3002 movl %eax,40(%edi)
3003 xorl 12(%edi),%eax
3004 movl %eax,44(%edi)
3005 cmpl $6,%ecx
3006 je .L05314break
3007 incl %ecx
3008 movl %eax,%edx
3009 movl 16(%edi),%eax
3010 movzbl %dl,%esi
3011 movzbl -128(%ebp,%esi,1),%ebx
3012 movzbl %dh,%esi
3013 xorl %ebx,%eax
3014 movzbl -128(%ebp,%esi,1),%ebx
3015 shrl $16,%edx
3016 shll $8,%ebx
3017 movzbl %dl,%esi
3018 xorl %ebx,%eax
3019 movzbl -128(%ebp,%esi,1),%ebx
3020 movzbl %dh,%esi
3021 shll $16,%ebx
3022 xorl %ebx,%eax
3023 movzbl -128(%ebp,%esi,1),%ebx
3024 shll $24,%ebx
3025 xorl %ebx,%eax
3026 movl %eax,48(%edi)
3027 xorl 20(%edi),%eax
3028 movl %eax,52(%edi)
3029 xorl 24(%edi),%eax
3030 movl %eax,56(%edi)
3031 xorl 28(%edi),%eax
3032 movl %eax,60(%edi)
3033 addl $32,%edi
3034 jmp .L05214loop
3035.L05314break:
3036 movl $14,48(%edi)
3037 xorl %eax,%eax
3038 jmp .L045exit
3039.L040badpointer:
3040 movl $-1,%eax
3041.L045exit:
3042 popl %edi
3043 popl %esi
3044 popl %ebx
3045 popl %ebp
3046 ret
3047.size _x86_AES_set_encrypt_key,.-_x86_AES_set_encrypt_key
3048.globl AES_set_encrypt_key
3049.type AES_set_encrypt_key,@function
3050.align 16
3051AES_set_encrypt_key:
3052.L_AES_set_encrypt_key_begin:
3053 #ifdef __CET__
3054
3055.byte 243,15,30,251
3056 #endif
3057
3058 call _x86_AES_set_encrypt_key
3059 ret
3060.size AES_set_encrypt_key,.-.L_AES_set_encrypt_key_begin
3061.globl AES_set_decrypt_key
3062.type AES_set_decrypt_key,@function
3063.align 16
3064AES_set_decrypt_key:
3065.L_AES_set_decrypt_key_begin:
3066 #ifdef __CET__
3067
3068.byte 243,15,30,251
3069 #endif
3070
3071 call _x86_AES_set_encrypt_key
3072 cmpl $0,%eax
3073 je .L054proceed
3074 ret
3075.L054proceed:
3076 pushl %ebp
3077 pushl %ebx
3078 pushl %esi
3079 pushl %edi
3080 movl 28(%esp),%esi
3081 movl 240(%esi),%ecx
3082 leal (,%ecx,4),%ecx
3083 leal (%esi,%ecx,4),%edi
3084.align 4
3085.L055invert:
3086 movl (%esi),%eax
3087 movl 4(%esi),%ebx
3088 movl (%edi),%ecx
3089 movl 4(%edi),%edx
3090 movl %eax,(%edi)
3091 movl %ebx,4(%edi)
3092 movl %ecx,(%esi)
3093 movl %edx,4(%esi)
3094 movl 8(%esi),%eax
3095 movl 12(%esi),%ebx
3096 movl 8(%edi),%ecx
3097 movl 12(%edi),%edx
3098 movl %eax,8(%edi)
3099 movl %ebx,12(%edi)
3100 movl %ecx,8(%esi)
3101 movl %edx,12(%esi)
3102 addl $16,%esi
3103 subl $16,%edi
3104 cmpl %edi,%esi
3105 jne .L055invert
3106 movl 28(%esp),%edi
3107 movl 240(%edi),%esi
3108 leal -2(%esi,%esi,1),%esi
3109 leal (%edi,%esi,8),%esi
3110 movl %esi,28(%esp)
3111 movl 16(%edi),%eax
3112.align 4
3113.L056permute:
3114 addl $16,%edi
3115 movl $2155905152,%ebp
3116 andl %eax,%ebp
3117 leal (%eax,%eax,1),%ebx
3118 movl %ebp,%esi
3119 shrl $7,%ebp
3120 subl %ebp,%esi
3121 andl $4278124286,%ebx
3122 andl $454761243,%esi
3123 xorl %esi,%ebx
3124 movl $2155905152,%ebp
3125 andl %ebx,%ebp
3126 leal (%ebx,%ebx,1),%ecx
3127 movl %ebp,%esi
3128 shrl $7,%ebp
3129 subl %ebp,%esi
3130 andl $4278124286,%ecx
3131 andl $454761243,%esi
3132 xorl %eax,%ebx
3133 xorl %esi,%ecx
3134 movl $2155905152,%ebp
3135 andl %ecx,%ebp
3136 leal (%ecx,%ecx,1),%edx
3137 movl %ebp,%esi
3138 shrl $7,%ebp
3139 xorl %eax,%ecx
3140 subl %ebp,%esi
3141 andl $4278124286,%edx
3142 andl $454761243,%esi
3143 roll $8,%eax
3144 xorl %esi,%edx
3145 movl 4(%edi),%ebp
3146 xorl %ebx,%eax
3147 xorl %edx,%ebx
3148 xorl %ecx,%eax
3149 roll $24,%ebx
3150 xorl %edx,%ecx
3151 xorl %edx,%eax
3152 roll $16,%ecx
3153 xorl %ebx,%eax
3154 roll $8,%edx
3155 xorl %ecx,%eax
3156 movl %ebp,%ebx
3157 xorl %edx,%eax
3158 movl %eax,(%edi)
3159 movl $2155905152,%ebp
3160 andl %ebx,%ebp
3161 leal (%ebx,%ebx,1),%ecx
3162 movl %ebp,%esi
3163 shrl $7,%ebp
3164 subl %ebp,%esi
3165 andl $4278124286,%ecx
3166 andl $454761243,%esi
3167 xorl %esi,%ecx
3168 movl $2155905152,%ebp
3169 andl %ecx,%ebp
3170 leal (%ecx,%ecx,1),%edx
3171 movl %ebp,%esi
3172 shrl $7,%ebp
3173 subl %ebp,%esi
3174 andl $4278124286,%edx
3175 andl $454761243,%esi
3176 xorl %ebx,%ecx
3177 xorl %esi,%edx
3178 movl $2155905152,%ebp
3179 andl %edx,%ebp
3180 leal (%edx,%edx,1),%eax
3181 movl %ebp,%esi
3182 shrl $7,%ebp
3183 xorl %ebx,%edx
3184 subl %ebp,%esi
3185 andl $4278124286,%eax
3186 andl $454761243,%esi
3187 roll $8,%ebx
3188 xorl %esi,%eax
3189 movl 8(%edi),%ebp
3190 xorl %ecx,%ebx
3191 xorl %eax,%ecx
3192 xorl %edx,%ebx
3193 roll $24,%ecx
3194 xorl %eax,%edx
3195 xorl %eax,%ebx
3196 roll $16,%edx
3197 xorl %ecx,%ebx
3198 roll $8,%eax
3199 xorl %edx,%ebx
3200 movl %ebp,%ecx
3201 xorl %eax,%ebx
3202 movl %ebx,4(%edi)
3203 movl $2155905152,%ebp
3204 andl %ecx,%ebp
3205 leal (%ecx,%ecx,1),%edx
3206 movl %ebp,%esi
3207 shrl $7,%ebp
3208 subl %ebp,%esi
3209 andl $4278124286,%edx
3210 andl $454761243,%esi
3211 xorl %esi,%edx
3212 movl $2155905152,%ebp
3213 andl %edx,%ebp
3214 leal (%edx,%edx,1),%eax
3215 movl %ebp,%esi
3216 shrl $7,%ebp
3217 subl %ebp,%esi
3218 andl $4278124286,%eax
3219 andl $454761243,%esi
3220 xorl %ecx,%edx
3221 xorl %esi,%eax
3222 movl $2155905152,%ebp
3223 andl %eax,%ebp
3224 leal (%eax,%eax,1),%ebx
3225 movl %ebp,%esi
3226 shrl $7,%ebp
3227 xorl %ecx,%eax
3228 subl %ebp,%esi
3229 andl $4278124286,%ebx
3230 andl $454761243,%esi
3231 roll $8,%ecx
3232 xorl %esi,%ebx
3233 movl 12(%edi),%ebp
3234 xorl %edx,%ecx
3235 xorl %ebx,%edx
3236 xorl %eax,%ecx
3237 roll $24,%edx
3238 xorl %ebx,%eax
3239 xorl %ebx,%ecx
3240 roll $16,%eax
3241 xorl %edx,%ecx
3242 roll $8,%ebx
3243 xorl %eax,%ecx
3244 movl %ebp,%edx
3245 xorl %ebx,%ecx
3246 movl %ecx,8(%edi)
3247 movl $2155905152,%ebp
3248 andl %edx,%ebp
3249 leal (%edx,%edx,1),%eax
3250 movl %ebp,%esi
3251 shrl $7,%ebp
3252 subl %ebp,%esi
3253 andl $4278124286,%eax
3254 andl $454761243,%esi
3255 xorl %esi,%eax
3256 movl $2155905152,%ebp
3257 andl %eax,%ebp
3258 leal (%eax,%eax,1),%ebx
3259 movl %ebp,%esi
3260 shrl $7,%ebp
3261 subl %ebp,%esi
3262 andl $4278124286,%ebx
3263 andl $454761243,%esi
3264 xorl %edx,%eax
3265 xorl %esi,%ebx
3266 movl $2155905152,%ebp
3267 andl %ebx,%ebp
3268 leal (%ebx,%ebx,1),%ecx
3269 movl %ebp,%esi
3270 shrl $7,%ebp
3271 xorl %edx,%ebx
3272 subl %ebp,%esi
3273 andl $4278124286,%ecx
3274 andl $454761243,%esi
3275 roll $8,%edx
3276 xorl %esi,%ecx
3277 movl 16(%edi),%ebp
3278 xorl %eax,%edx
3279 xorl %ecx,%eax
3280 xorl %ebx,%edx
3281 roll $24,%eax
3282 xorl %ecx,%ebx
3283 xorl %ecx,%edx
3284 roll $16,%ebx
3285 xorl %eax,%edx
3286 roll $8,%ecx
3287 xorl %ebx,%edx
3288 movl %ebp,%eax
3289 xorl %ecx,%edx
3290 movl %edx,12(%edi)
3291 cmpl 28(%esp),%edi
3292 jb .L056permute
3293 xorl %eax,%eax
3294 popl %edi
3295 popl %esi
3296 popl %ebx
3297 popl %ebp
3298 ret
3299.size AES_set_decrypt_key,.-.L_AES_set_decrypt_key_begin
3300.byte 65,69,83,32,102,111,114,32,120,56,54,44,32,67,82,89
3301.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
3302.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
3303.comm OPENSSL_ia32cap_P,16,4
3304
3305 .section ".note.gnu.property", "a"
3306 .p2align 2
3307 .long 1f - 0f
3308 .long 4f - 1f
3309 .long 5
33100:
3311 .asciz "GNU"
33121:
3313 .p2align 2
3314 .long 0xc0000002
3315 .long 3f - 2f
33162:
3317 .long 3
33183:
3319 .p2align 2
33204:
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette