Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(388)

Side by Side Diff: openssl/crypto/aes/asm/aes-586-mac.S

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

Powered by Google App Engine
This is Rietveld 408576698