VirtualBox

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

Last change on this file since 94083 was 94083, checked in by vboxsync, 3 years ago

libs/openssl-3.0.1: Recreate asm files, bugref:10128

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