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

Side by Side Diff: third_party/boringssl/mac-x86/crypto/aes/aes-586.S

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

Powered by Google App Engine
This is Rietveld 408576698