VirtualBox

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

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

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

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