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