VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1f/crypto/genasm-macosx/aes-586.S@ 83531

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

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