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