VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1j/crypto/genasm-elf/aes-586.S@ 88679

Last change on this file since 88679 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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