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