VirtualBox

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