OLD | NEW |
1 default rel | 1 default rel |
2 %define XMMWORD | 2 %define XMMWORD |
3 %define YMMWORD | 3 %define YMMWORD |
4 %define ZMMWORD | 4 %define ZMMWORD |
5 section .text code align=64 | 5 section .text code align=64 |
6 | 6 |
7 EXTERN OPENSSL_ia32cap_P | 7 EXTERN OPENSSL_ia32cap_P |
8 global aesni_encrypt | 8 global aesni_encrypt |
9 | 9 |
10 ALIGN 16 | 10 ALIGN 16 |
11 aesni_encrypt: | 11 aesni_encrypt: |
12 movups xmm2,XMMWORD[rcx] | 12 movups xmm2,XMMWORD[rcx] |
13 mov eax,DWORD[240+r8] | 13 mov eax,DWORD[240+r8] |
14 movups xmm0,XMMWORD[r8] | 14 movups xmm0,XMMWORD[r8] |
15 movups xmm1,XMMWORD[16+r8] | 15 movups xmm1,XMMWORD[16+r8] |
16 lea r8,[32+r8] | 16 lea r8,[32+r8] |
17 xorps xmm2,xmm0 | 17 xorps xmm2,xmm0 |
18 $L$oop_enc1_1: | 18 $L$oop_enc1_1: |
19 DB 102,15,56,220,209 | 19 DB 102,15,56,220,209 |
20 dec eax | 20 dec eax |
21 movups xmm1,XMMWORD[r8] | 21 movups xmm1,XMMWORD[r8] |
22 lea r8,[16+r8] | 22 lea r8,[16+r8] |
23 jnz NEAR $L$oop_enc1_1 | 23 jnz NEAR $L$oop_enc1_1 |
24 DB 102,15,56,221,209 | 24 DB 102,15,56,221,209 |
| 25 pxor xmm0,xmm0 |
| 26 pxor xmm1,xmm1 |
25 movups XMMWORD[rdx],xmm2 | 27 movups XMMWORD[rdx],xmm2 |
| 28 pxor xmm2,xmm2 |
26 DB 0F3h,0C3h ;repret | 29 DB 0F3h,0C3h ;repret |
27 | 30 |
28 | 31 |
29 global aesni_decrypt | 32 global aesni_decrypt |
30 | 33 |
31 ALIGN 16 | 34 ALIGN 16 |
32 aesni_decrypt: | 35 aesni_decrypt: |
33 movups xmm2,XMMWORD[rcx] | 36 movups xmm2,XMMWORD[rcx] |
34 mov eax,DWORD[240+r8] | 37 mov eax,DWORD[240+r8] |
35 movups xmm0,XMMWORD[r8] | 38 movups xmm0,XMMWORD[r8] |
36 movups xmm1,XMMWORD[16+r8] | 39 movups xmm1,XMMWORD[16+r8] |
37 lea r8,[32+r8] | 40 lea r8,[32+r8] |
38 xorps xmm2,xmm0 | 41 xorps xmm2,xmm0 |
39 $L$oop_dec1_2: | 42 $L$oop_dec1_2: |
40 DB 102,15,56,222,209 | 43 DB 102,15,56,222,209 |
41 dec eax | 44 dec eax |
42 movups xmm1,XMMWORD[r8] | 45 movups xmm1,XMMWORD[r8] |
43 lea r8,[16+r8] | 46 lea r8,[16+r8] |
44 jnz NEAR $L$oop_dec1_2 | 47 jnz NEAR $L$oop_dec1_2 |
45 DB 102,15,56,223,209 | 48 DB 102,15,56,223,209 |
| 49 pxor xmm0,xmm0 |
| 50 pxor xmm1,xmm1 |
46 movups XMMWORD[rdx],xmm2 | 51 movups XMMWORD[rdx],xmm2 |
| 52 pxor xmm2,xmm2 |
47 DB 0F3h,0C3h ;repret | 53 DB 0F3h,0C3h ;repret |
48 | 54 |
49 | 55 |
50 ALIGN 16 | 56 ALIGN 16 |
51 _aesni_encrypt2: | 57 _aesni_encrypt2: |
52 movups xmm0,XMMWORD[rcx] | 58 movups xmm0,XMMWORD[rcx] |
53 shl eax,4 | 59 shl eax,4 |
54 movups xmm1,XMMWORD[16+rcx] | 60 movups xmm1,XMMWORD[16+rcx] |
55 xorps xmm2,xmm0 | 61 xorps xmm2,xmm0 |
56 xorps xmm3,xmm0 | 62 xorps xmm3,xmm0 |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 pxor xmm3,xmm0 | 268 pxor xmm3,xmm0 |
263 pxor xmm4,xmm0 | 269 pxor xmm4,xmm0 |
264 DB 102,15,56,220,209 | 270 DB 102,15,56,220,209 |
265 lea rcx,[32+rax*1+rcx] | 271 lea rcx,[32+rax*1+rcx] |
266 neg rax | 272 neg rax |
267 DB 102,15,56,220,217 | 273 DB 102,15,56,220,217 |
268 pxor xmm5,xmm0 | 274 pxor xmm5,xmm0 |
269 pxor xmm6,xmm0 | 275 pxor xmm6,xmm0 |
270 DB 102,15,56,220,225 | 276 DB 102,15,56,220,225 |
271 pxor xmm7,xmm0 | 277 pxor xmm7,xmm0 |
| 278 movups xmm0,XMMWORD[rax*1+rcx] |
272 add rax,16 | 279 add rax,16 |
273 DB 102,15,56,220,233 | |
274 DB 102,15,56,220,241 | |
275 DB 102,15,56,220,249 | |
276 movups xmm0,XMMWORD[((-16))+rax*1+rcx] | |
277 jmp NEAR $L$enc_loop6_enter | 280 jmp NEAR $L$enc_loop6_enter |
278 ALIGN 16 | 281 ALIGN 16 |
279 $L$enc_loop6: | 282 $L$enc_loop6: |
280 DB 102,15,56,220,209 | 283 DB 102,15,56,220,209 |
281 DB 102,15,56,220,217 | 284 DB 102,15,56,220,217 |
282 DB 102,15,56,220,225 | 285 DB 102,15,56,220,225 |
| 286 $L$enc_loop6_enter: |
283 DB 102,15,56,220,233 | 287 DB 102,15,56,220,233 |
284 DB 102,15,56,220,241 | 288 DB 102,15,56,220,241 |
285 DB 102,15,56,220,249 | 289 DB 102,15,56,220,249 |
286 $L$enc_loop6_enter: | |
287 movups xmm1,XMMWORD[rax*1+rcx] | 290 movups xmm1,XMMWORD[rax*1+rcx] |
288 add rax,32 | 291 add rax,32 |
289 DB 102,15,56,220,208 | 292 DB 102,15,56,220,208 |
290 DB 102,15,56,220,216 | 293 DB 102,15,56,220,216 |
291 DB 102,15,56,220,224 | 294 DB 102,15,56,220,224 |
292 DB 102,15,56,220,232 | 295 DB 102,15,56,220,232 |
293 DB 102,15,56,220,240 | 296 DB 102,15,56,220,240 |
294 DB 102,15,56,220,248 | 297 DB 102,15,56,220,248 |
295 movups xmm0,XMMWORD[((-16))+rax*1+rcx] | 298 movups xmm0,XMMWORD[((-16))+rax*1+rcx] |
296 jnz NEAR $L$enc_loop6 | 299 jnz NEAR $L$enc_loop6 |
(...skipping 22 matching lines...) Expand all Loading... |
319 pxor xmm3,xmm0 | 322 pxor xmm3,xmm0 |
320 pxor xmm4,xmm0 | 323 pxor xmm4,xmm0 |
321 DB 102,15,56,222,209 | 324 DB 102,15,56,222,209 |
322 lea rcx,[32+rax*1+rcx] | 325 lea rcx,[32+rax*1+rcx] |
323 neg rax | 326 neg rax |
324 DB 102,15,56,222,217 | 327 DB 102,15,56,222,217 |
325 pxor xmm5,xmm0 | 328 pxor xmm5,xmm0 |
326 pxor xmm6,xmm0 | 329 pxor xmm6,xmm0 |
327 DB 102,15,56,222,225 | 330 DB 102,15,56,222,225 |
328 pxor xmm7,xmm0 | 331 pxor xmm7,xmm0 |
| 332 movups xmm0,XMMWORD[rax*1+rcx] |
329 add rax,16 | 333 add rax,16 |
330 DB 102,15,56,222,233 | |
331 DB 102,15,56,222,241 | |
332 DB 102,15,56,222,249 | |
333 movups xmm0,XMMWORD[((-16))+rax*1+rcx] | |
334 jmp NEAR $L$dec_loop6_enter | 334 jmp NEAR $L$dec_loop6_enter |
335 ALIGN 16 | 335 ALIGN 16 |
336 $L$dec_loop6: | 336 $L$dec_loop6: |
337 DB 102,15,56,222,209 | 337 DB 102,15,56,222,209 |
338 DB 102,15,56,222,217 | 338 DB 102,15,56,222,217 |
339 DB 102,15,56,222,225 | 339 DB 102,15,56,222,225 |
| 340 $L$dec_loop6_enter: |
340 DB 102,15,56,222,233 | 341 DB 102,15,56,222,233 |
341 DB 102,15,56,222,241 | 342 DB 102,15,56,222,241 |
342 DB 102,15,56,222,249 | 343 DB 102,15,56,222,249 |
343 $L$dec_loop6_enter: | |
344 movups xmm1,XMMWORD[rax*1+rcx] | 344 movups xmm1,XMMWORD[rax*1+rcx] |
345 add rax,32 | 345 add rax,32 |
346 DB 102,15,56,222,208 | 346 DB 102,15,56,222,208 |
347 DB 102,15,56,222,216 | 347 DB 102,15,56,222,216 |
348 DB 102,15,56,222,224 | 348 DB 102,15,56,222,224 |
349 DB 102,15,56,222,232 | 349 DB 102,15,56,222,232 |
350 DB 102,15,56,222,240 | 350 DB 102,15,56,222,240 |
351 DB 102,15,56,222,248 | 351 DB 102,15,56,222,248 |
352 movups xmm0,XMMWORD[((-16))+rax*1+rcx] | 352 movups xmm0,XMMWORD[((-16))+rax*1+rcx] |
353 jnz NEAR $L$dec_loop6 | 353 jnz NEAR $L$dec_loop6 |
(...skipping 19 matching lines...) Expand all Loading... |
373 shl eax,4 | 373 shl eax,4 |
374 movups xmm1,XMMWORD[16+rcx] | 374 movups xmm1,XMMWORD[16+rcx] |
375 xorps xmm2,xmm0 | 375 xorps xmm2,xmm0 |
376 xorps xmm3,xmm0 | 376 xorps xmm3,xmm0 |
377 pxor xmm4,xmm0 | 377 pxor xmm4,xmm0 |
378 pxor xmm5,xmm0 | 378 pxor xmm5,xmm0 |
379 pxor xmm6,xmm0 | 379 pxor xmm6,xmm0 |
380 lea rcx,[32+rax*1+rcx] | 380 lea rcx,[32+rax*1+rcx] |
381 neg rax | 381 neg rax |
382 DB 102,15,56,220,209 | 382 DB 102,15,56,220,209 |
| 383 pxor xmm7,xmm0 |
| 384 pxor xmm8,xmm0 |
| 385 DB 102,15,56,220,217 |
| 386 pxor xmm9,xmm0 |
| 387 movups xmm0,XMMWORD[rax*1+rcx] |
383 add rax,16 | 388 add rax,16 |
384 » pxor» xmm7,xmm0 | 389 » jmp» NEAR $L$enc_loop8_inner |
385 DB» 102,15,56,220,217 | |
386 » pxor» xmm8,xmm0 | |
387 » pxor» xmm9,xmm0 | |
388 DB» 102,15,56,220,225 | |
389 DB» 102,15,56,220,233 | |
390 DB» 102,15,56,220,241 | |
391 DB» 102,15,56,220,249 | |
392 DB» 102,68,15,56,220,193 | |
393 DB» 102,68,15,56,220,201 | |
394 » movups» xmm0,XMMWORD[((-16))+rax*1+rcx] | |
395 » jmp» NEAR $L$enc_loop8_enter | |
396 ALIGN 16 | 390 ALIGN 16 |
397 $L$enc_loop8: | 391 $L$enc_loop8: |
398 DB 102,15,56,220,209 | 392 DB 102,15,56,220,209 |
399 DB 102,15,56,220,217 | 393 DB 102,15,56,220,217 |
| 394 $L$enc_loop8_inner: |
400 DB 102,15,56,220,225 | 395 DB 102,15,56,220,225 |
401 DB 102,15,56,220,233 | 396 DB 102,15,56,220,233 |
402 DB 102,15,56,220,241 | 397 DB 102,15,56,220,241 |
403 DB 102,15,56,220,249 | 398 DB 102,15,56,220,249 |
404 DB 102,68,15,56,220,193 | 399 DB 102,68,15,56,220,193 |
405 DB 102,68,15,56,220,201 | 400 DB 102,68,15,56,220,201 |
406 $L$enc_loop8_enter: | 401 $L$enc_loop8_enter: |
407 movups xmm1,XMMWORD[rax*1+rcx] | 402 movups xmm1,XMMWORD[rax*1+rcx] |
408 add rax,32 | 403 add rax,32 |
409 DB 102,15,56,220,208 | 404 DB 102,15,56,220,208 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
442 shl eax,4 | 437 shl eax,4 |
443 movups xmm1,XMMWORD[16+rcx] | 438 movups xmm1,XMMWORD[16+rcx] |
444 xorps xmm2,xmm0 | 439 xorps xmm2,xmm0 |
445 xorps xmm3,xmm0 | 440 xorps xmm3,xmm0 |
446 pxor xmm4,xmm0 | 441 pxor xmm4,xmm0 |
447 pxor xmm5,xmm0 | 442 pxor xmm5,xmm0 |
448 pxor xmm6,xmm0 | 443 pxor xmm6,xmm0 |
449 lea rcx,[32+rax*1+rcx] | 444 lea rcx,[32+rax*1+rcx] |
450 neg rax | 445 neg rax |
451 DB 102,15,56,222,209 | 446 DB 102,15,56,222,209 |
| 447 pxor xmm7,xmm0 |
| 448 pxor xmm8,xmm0 |
| 449 DB 102,15,56,222,217 |
| 450 pxor xmm9,xmm0 |
| 451 movups xmm0,XMMWORD[rax*1+rcx] |
452 add rax,16 | 452 add rax,16 |
453 » pxor» xmm7,xmm0 | 453 » jmp» NEAR $L$dec_loop8_inner |
454 DB» 102,15,56,222,217 | |
455 » pxor» xmm8,xmm0 | |
456 » pxor» xmm9,xmm0 | |
457 DB» 102,15,56,222,225 | |
458 DB» 102,15,56,222,233 | |
459 DB» 102,15,56,222,241 | |
460 DB» 102,15,56,222,249 | |
461 DB» 102,68,15,56,222,193 | |
462 DB» 102,68,15,56,222,201 | |
463 » movups» xmm0,XMMWORD[((-16))+rax*1+rcx] | |
464 » jmp» NEAR $L$dec_loop8_enter | |
465 ALIGN 16 | 454 ALIGN 16 |
466 $L$dec_loop8: | 455 $L$dec_loop8: |
467 DB 102,15,56,222,209 | 456 DB 102,15,56,222,209 |
468 DB 102,15,56,222,217 | 457 DB 102,15,56,222,217 |
| 458 $L$dec_loop8_inner: |
469 DB 102,15,56,222,225 | 459 DB 102,15,56,222,225 |
470 DB 102,15,56,222,233 | 460 DB 102,15,56,222,233 |
471 DB 102,15,56,222,241 | 461 DB 102,15,56,222,241 |
472 DB 102,15,56,222,249 | 462 DB 102,15,56,222,249 |
473 DB 102,68,15,56,222,193 | 463 DB 102,68,15,56,222,193 |
474 DB 102,68,15,56,222,201 | 464 DB 102,68,15,56,222,201 |
475 $L$dec_loop8_enter: | 465 $L$dec_loop8_enter: |
476 movups xmm1,XMMWORD[rax*1+rcx] | 466 movups xmm1,XMMWORD[rax*1+rcx] |
477 add rax,32 | 467 add rax,32 |
478 DB 102,15,56,222,208 | 468 DB 102,15,56,222,208 |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
602 cmp rdx,0x40 | 592 cmp rdx,0x40 |
603 jb NEAR $L$ecb_enc_three | 593 jb NEAR $L$ecb_enc_three |
604 movups xmm5,XMMWORD[48+rdi] | 594 movups xmm5,XMMWORD[48+rdi] |
605 je NEAR $L$ecb_enc_four | 595 je NEAR $L$ecb_enc_four |
606 movups xmm6,XMMWORD[64+rdi] | 596 movups xmm6,XMMWORD[64+rdi] |
607 cmp rdx,0x60 | 597 cmp rdx,0x60 |
608 jb NEAR $L$ecb_enc_five | 598 jb NEAR $L$ecb_enc_five |
609 movups xmm7,XMMWORD[80+rdi] | 599 movups xmm7,XMMWORD[80+rdi] |
610 je NEAR $L$ecb_enc_six | 600 je NEAR $L$ecb_enc_six |
611 movdqu xmm8,XMMWORD[96+rdi] | 601 movdqu xmm8,XMMWORD[96+rdi] |
| 602 xorps xmm9,xmm9 |
612 call _aesni_encrypt8 | 603 call _aesni_encrypt8 |
613 movups XMMWORD[rsi],xmm2 | 604 movups XMMWORD[rsi],xmm2 |
614 movups XMMWORD[16+rsi],xmm3 | 605 movups XMMWORD[16+rsi],xmm3 |
615 movups XMMWORD[32+rsi],xmm4 | 606 movups XMMWORD[32+rsi],xmm4 |
616 movups XMMWORD[48+rsi],xmm5 | 607 movups XMMWORD[48+rsi],xmm5 |
617 movups XMMWORD[64+rsi],xmm6 | 608 movups XMMWORD[64+rsi],xmm6 |
618 movups XMMWORD[80+rsi],xmm7 | 609 movups XMMWORD[80+rsi],xmm7 |
619 movups XMMWORD[96+rsi],xmm8 | 610 movups XMMWORD[96+rsi],xmm8 |
620 jmp NEAR $L$ecb_ret | 611 jmp NEAR $L$ecb_ret |
621 ALIGN 16 | 612 ALIGN 16 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 lea rdi,[128+rdi] | 706 lea rdi,[128+rdi] |
716 $L$ecb_dec_loop8_enter: | 707 $L$ecb_dec_loop8_enter: |
717 | 708 |
718 call _aesni_decrypt8 | 709 call _aesni_decrypt8 |
719 | 710 |
720 movups xmm0,XMMWORD[r11] | 711 movups xmm0,XMMWORD[r11] |
721 sub rdx,0x80 | 712 sub rdx,0x80 |
722 jnc NEAR $L$ecb_dec_loop8 | 713 jnc NEAR $L$ecb_dec_loop8 |
723 | 714 |
724 movups XMMWORD[rsi],xmm2 | 715 movups XMMWORD[rsi],xmm2 |
| 716 pxor xmm2,xmm2 |
725 mov rcx,r11 | 717 mov rcx,r11 |
726 movups XMMWORD[16+rsi],xmm3 | 718 movups XMMWORD[16+rsi],xmm3 |
| 719 pxor xmm3,xmm3 |
727 mov eax,r10d | 720 mov eax,r10d |
728 movups XMMWORD[32+rsi],xmm4 | 721 movups XMMWORD[32+rsi],xmm4 |
| 722 pxor xmm4,xmm4 |
729 movups XMMWORD[48+rsi],xmm5 | 723 movups XMMWORD[48+rsi],xmm5 |
| 724 pxor xmm5,xmm5 |
730 movups XMMWORD[64+rsi],xmm6 | 725 movups XMMWORD[64+rsi],xmm6 |
| 726 pxor xmm6,xmm6 |
731 movups XMMWORD[80+rsi],xmm7 | 727 movups XMMWORD[80+rsi],xmm7 |
| 728 pxor xmm7,xmm7 |
732 movups XMMWORD[96+rsi],xmm8 | 729 movups XMMWORD[96+rsi],xmm8 |
| 730 pxor xmm8,xmm8 |
733 movups XMMWORD[112+rsi],xmm9 | 731 movups XMMWORD[112+rsi],xmm9 |
| 732 pxor xmm9,xmm9 |
734 lea rsi,[128+rsi] | 733 lea rsi,[128+rsi] |
735 add rdx,0x80 | 734 add rdx,0x80 |
736 jz NEAR $L$ecb_ret | 735 jz NEAR $L$ecb_ret |
737 | 736 |
738 $L$ecb_dec_tail: | 737 $L$ecb_dec_tail: |
739 movups xmm2,XMMWORD[rdi] | 738 movups xmm2,XMMWORD[rdi] |
740 cmp rdx,0x20 | 739 cmp rdx,0x20 |
741 jb NEAR $L$ecb_dec_one | 740 jb NEAR $L$ecb_dec_one |
742 movups xmm3,XMMWORD[16+rdi] | 741 movups xmm3,XMMWORD[16+rdi] |
743 je NEAR $L$ecb_dec_two | 742 je NEAR $L$ecb_dec_two |
744 movups xmm4,XMMWORD[32+rdi] | 743 movups xmm4,XMMWORD[32+rdi] |
745 cmp rdx,0x40 | 744 cmp rdx,0x40 |
746 jb NEAR $L$ecb_dec_three | 745 jb NEAR $L$ecb_dec_three |
747 movups xmm5,XMMWORD[48+rdi] | 746 movups xmm5,XMMWORD[48+rdi] |
748 je NEAR $L$ecb_dec_four | 747 je NEAR $L$ecb_dec_four |
749 movups xmm6,XMMWORD[64+rdi] | 748 movups xmm6,XMMWORD[64+rdi] |
750 cmp rdx,0x60 | 749 cmp rdx,0x60 |
751 jb NEAR $L$ecb_dec_five | 750 jb NEAR $L$ecb_dec_five |
752 movups xmm7,XMMWORD[80+rdi] | 751 movups xmm7,XMMWORD[80+rdi] |
753 je NEAR $L$ecb_dec_six | 752 je NEAR $L$ecb_dec_six |
754 movups xmm8,XMMWORD[96+rdi] | 753 movups xmm8,XMMWORD[96+rdi] |
755 movups xmm0,XMMWORD[rcx] | 754 movups xmm0,XMMWORD[rcx] |
| 755 xorps xmm9,xmm9 |
756 call _aesni_decrypt8 | 756 call _aesni_decrypt8 |
757 movups XMMWORD[rsi],xmm2 | 757 movups XMMWORD[rsi],xmm2 |
| 758 pxor xmm2,xmm2 |
758 movups XMMWORD[16+rsi],xmm3 | 759 movups XMMWORD[16+rsi],xmm3 |
| 760 pxor xmm3,xmm3 |
759 movups XMMWORD[32+rsi],xmm4 | 761 movups XMMWORD[32+rsi],xmm4 |
| 762 pxor xmm4,xmm4 |
760 movups XMMWORD[48+rsi],xmm5 | 763 movups XMMWORD[48+rsi],xmm5 |
| 764 pxor xmm5,xmm5 |
761 movups XMMWORD[64+rsi],xmm6 | 765 movups XMMWORD[64+rsi],xmm6 |
| 766 pxor xmm6,xmm6 |
762 movups XMMWORD[80+rsi],xmm7 | 767 movups XMMWORD[80+rsi],xmm7 |
| 768 pxor xmm7,xmm7 |
763 movups XMMWORD[96+rsi],xmm8 | 769 movups XMMWORD[96+rsi],xmm8 |
| 770 pxor xmm8,xmm8 |
| 771 pxor xmm9,xmm9 |
764 jmp NEAR $L$ecb_ret | 772 jmp NEAR $L$ecb_ret |
765 ALIGN 16 | 773 ALIGN 16 |
766 $L$ecb_dec_one: | 774 $L$ecb_dec_one: |
767 movups xmm0,XMMWORD[rcx] | 775 movups xmm0,XMMWORD[rcx] |
768 movups xmm1,XMMWORD[16+rcx] | 776 movups xmm1,XMMWORD[16+rcx] |
769 lea rcx,[32+rcx] | 777 lea rcx,[32+rcx] |
770 xorps xmm2,xmm0 | 778 xorps xmm2,xmm0 |
771 $L$oop_dec1_4: | 779 $L$oop_dec1_4: |
772 DB 102,15,56,222,209 | 780 DB 102,15,56,222,209 |
773 dec eax | 781 dec eax |
774 movups xmm1,XMMWORD[rcx] | 782 movups xmm1,XMMWORD[rcx] |
775 lea rcx,[16+rcx] | 783 lea rcx,[16+rcx] |
776 jnz NEAR $L$oop_dec1_4 | 784 jnz NEAR $L$oop_dec1_4 |
777 DB 102,15,56,223,209 | 785 DB 102,15,56,223,209 |
778 movups XMMWORD[rsi],xmm2 | 786 movups XMMWORD[rsi],xmm2 |
| 787 pxor xmm2,xmm2 |
779 jmp NEAR $L$ecb_ret | 788 jmp NEAR $L$ecb_ret |
780 ALIGN 16 | 789 ALIGN 16 |
781 $L$ecb_dec_two: | 790 $L$ecb_dec_two: |
782 call _aesni_decrypt2 | 791 call _aesni_decrypt2 |
783 movups XMMWORD[rsi],xmm2 | 792 movups XMMWORD[rsi],xmm2 |
| 793 pxor xmm2,xmm2 |
784 movups XMMWORD[16+rsi],xmm3 | 794 movups XMMWORD[16+rsi],xmm3 |
| 795 pxor xmm3,xmm3 |
785 jmp NEAR $L$ecb_ret | 796 jmp NEAR $L$ecb_ret |
786 ALIGN 16 | 797 ALIGN 16 |
787 $L$ecb_dec_three: | 798 $L$ecb_dec_three: |
788 call _aesni_decrypt3 | 799 call _aesni_decrypt3 |
789 movups XMMWORD[rsi],xmm2 | 800 movups XMMWORD[rsi],xmm2 |
| 801 pxor xmm2,xmm2 |
790 movups XMMWORD[16+rsi],xmm3 | 802 movups XMMWORD[16+rsi],xmm3 |
| 803 pxor xmm3,xmm3 |
791 movups XMMWORD[32+rsi],xmm4 | 804 movups XMMWORD[32+rsi],xmm4 |
| 805 pxor xmm4,xmm4 |
792 jmp NEAR $L$ecb_ret | 806 jmp NEAR $L$ecb_ret |
793 ALIGN 16 | 807 ALIGN 16 |
794 $L$ecb_dec_four: | 808 $L$ecb_dec_four: |
795 call _aesni_decrypt4 | 809 call _aesni_decrypt4 |
796 movups XMMWORD[rsi],xmm2 | 810 movups XMMWORD[rsi],xmm2 |
| 811 pxor xmm2,xmm2 |
797 movups XMMWORD[16+rsi],xmm3 | 812 movups XMMWORD[16+rsi],xmm3 |
| 813 pxor xmm3,xmm3 |
798 movups XMMWORD[32+rsi],xmm4 | 814 movups XMMWORD[32+rsi],xmm4 |
| 815 pxor xmm4,xmm4 |
799 movups XMMWORD[48+rsi],xmm5 | 816 movups XMMWORD[48+rsi],xmm5 |
| 817 pxor xmm5,xmm5 |
800 jmp NEAR $L$ecb_ret | 818 jmp NEAR $L$ecb_ret |
801 ALIGN 16 | 819 ALIGN 16 |
802 $L$ecb_dec_five: | 820 $L$ecb_dec_five: |
803 xorps xmm7,xmm7 | 821 xorps xmm7,xmm7 |
804 call _aesni_decrypt6 | 822 call _aesni_decrypt6 |
805 movups XMMWORD[rsi],xmm2 | 823 movups XMMWORD[rsi],xmm2 |
| 824 pxor xmm2,xmm2 |
806 movups XMMWORD[16+rsi],xmm3 | 825 movups XMMWORD[16+rsi],xmm3 |
| 826 pxor xmm3,xmm3 |
807 movups XMMWORD[32+rsi],xmm4 | 827 movups XMMWORD[32+rsi],xmm4 |
| 828 pxor xmm4,xmm4 |
808 movups XMMWORD[48+rsi],xmm5 | 829 movups XMMWORD[48+rsi],xmm5 |
| 830 pxor xmm5,xmm5 |
809 movups XMMWORD[64+rsi],xmm6 | 831 movups XMMWORD[64+rsi],xmm6 |
| 832 pxor xmm6,xmm6 |
| 833 pxor xmm7,xmm7 |
810 jmp NEAR $L$ecb_ret | 834 jmp NEAR $L$ecb_ret |
811 ALIGN 16 | 835 ALIGN 16 |
812 $L$ecb_dec_six: | 836 $L$ecb_dec_six: |
813 call _aesni_decrypt6 | 837 call _aesni_decrypt6 |
814 movups XMMWORD[rsi],xmm2 | 838 movups XMMWORD[rsi],xmm2 |
| 839 pxor xmm2,xmm2 |
815 movups XMMWORD[16+rsi],xmm3 | 840 movups XMMWORD[16+rsi],xmm3 |
| 841 pxor xmm3,xmm3 |
816 movups XMMWORD[32+rsi],xmm4 | 842 movups XMMWORD[32+rsi],xmm4 |
| 843 pxor xmm4,xmm4 |
817 movups XMMWORD[48+rsi],xmm5 | 844 movups XMMWORD[48+rsi],xmm5 |
| 845 pxor xmm5,xmm5 |
818 movups XMMWORD[64+rsi],xmm6 | 846 movups XMMWORD[64+rsi],xmm6 |
| 847 pxor xmm6,xmm6 |
819 movups XMMWORD[80+rsi],xmm7 | 848 movups XMMWORD[80+rsi],xmm7 |
| 849 pxor xmm7,xmm7 |
820 | 850 |
821 $L$ecb_ret: | 851 $L$ecb_ret: |
| 852 xorps xmm0,xmm0 |
| 853 pxor xmm1,xmm1 |
822 movaps xmm6,XMMWORD[rsp] | 854 movaps xmm6,XMMWORD[rsp] |
| 855 movaps XMMWORD[rsp],xmm0 |
823 movaps xmm7,XMMWORD[16+rsp] | 856 movaps xmm7,XMMWORD[16+rsp] |
| 857 movaps XMMWORD[16+rsp],xmm0 |
824 movaps xmm8,XMMWORD[32+rsp] | 858 movaps xmm8,XMMWORD[32+rsp] |
| 859 movaps XMMWORD[32+rsp],xmm0 |
825 movaps xmm9,XMMWORD[48+rsp] | 860 movaps xmm9,XMMWORD[48+rsp] |
| 861 movaps XMMWORD[48+rsp],xmm0 |
826 lea rsp,[88+rsp] | 862 lea rsp,[88+rsp] |
827 $L$ecb_enc_ret: | 863 $L$ecb_enc_ret: |
828 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 864 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
829 mov rsi,QWORD[16+rsp] | 865 mov rsi,QWORD[16+rsp] |
830 DB 0F3h,0C3h ;repret | 866 DB 0F3h,0C3h ;repret |
831 $L$SEH_end_aesni_ecb_encrypt: | 867 $L$SEH_end_aesni_ecb_encrypt: |
832 global aesni_ccm64_encrypt_blocks | 868 global aesni_ccm64_encrypt_blocks |
833 | 869 |
834 ALIGN 16 | 870 ALIGN 16 |
835 aesni_ccm64_encrypt_blocks: | 871 aesni_ccm64_encrypt_blocks: |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
894 DB 102,15,56,221,216 | 930 DB 102,15,56,221,216 |
895 | 931 |
896 lea rdi,[16+rdi] | 932 lea rdi,[16+rdi] |
897 xorps xmm8,xmm2 | 933 xorps xmm8,xmm2 |
898 movdqa xmm2,xmm6 | 934 movdqa xmm2,xmm6 |
899 movups XMMWORD[rsi],xmm8 | 935 movups XMMWORD[rsi],xmm8 |
900 DB 102,15,56,0,215 | 936 DB 102,15,56,0,215 |
901 lea rsi,[16+rsi] | 937 lea rsi,[16+rsi] |
902 jnz NEAR $L$ccm64_enc_outer | 938 jnz NEAR $L$ccm64_enc_outer |
903 | 939 |
| 940 pxor xmm0,xmm0 |
| 941 pxor xmm1,xmm1 |
| 942 pxor xmm2,xmm2 |
904 movups XMMWORD[r9],xmm3 | 943 movups XMMWORD[r9],xmm3 |
| 944 pxor xmm3,xmm3 |
| 945 pxor xmm8,xmm8 |
| 946 pxor xmm6,xmm6 |
905 movaps xmm6,XMMWORD[rsp] | 947 movaps xmm6,XMMWORD[rsp] |
| 948 movaps XMMWORD[rsp],xmm0 |
906 movaps xmm7,XMMWORD[16+rsp] | 949 movaps xmm7,XMMWORD[16+rsp] |
| 950 movaps XMMWORD[16+rsp],xmm0 |
907 movaps xmm8,XMMWORD[32+rsp] | 951 movaps xmm8,XMMWORD[32+rsp] |
| 952 movaps XMMWORD[32+rsp],xmm0 |
908 movaps xmm9,XMMWORD[48+rsp] | 953 movaps xmm9,XMMWORD[48+rsp] |
| 954 movaps XMMWORD[48+rsp],xmm0 |
909 lea rsp,[88+rsp] | 955 lea rsp,[88+rsp] |
910 $L$ccm64_enc_ret: | 956 $L$ccm64_enc_ret: |
911 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 957 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
912 mov rsi,QWORD[16+rsp] | 958 mov rsi,QWORD[16+rsp] |
913 DB 0F3h,0C3h ;repret | 959 DB 0F3h,0C3h ;repret |
914 $L$SEH_end_aesni_ccm64_encrypt_blocks: | 960 $L$SEH_end_aesni_ccm64_encrypt_blocks: |
915 global aesni_ccm64_decrypt_blocks | 961 global aesni_ccm64_decrypt_blocks |
916 | 962 |
917 ALIGN 16 | 963 ALIGN 16 |
918 aesni_ccm64_decrypt_blocks: | 964 aesni_ccm64_decrypt_blocks: |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1011 xorps xmm8,xmm0 | 1057 xorps xmm8,xmm0 |
1012 lea r11,[32+r11] | 1058 lea r11,[32+r11] |
1013 xorps xmm3,xmm8 | 1059 xorps xmm3,xmm8 |
1014 $L$oop_enc1_6: | 1060 $L$oop_enc1_6: |
1015 DB 102,15,56,220,217 | 1061 DB 102,15,56,220,217 |
1016 dec eax | 1062 dec eax |
1017 movups xmm1,XMMWORD[r11] | 1063 movups xmm1,XMMWORD[r11] |
1018 lea r11,[16+r11] | 1064 lea r11,[16+r11] |
1019 jnz NEAR $L$oop_enc1_6 | 1065 jnz NEAR $L$oop_enc1_6 |
1020 DB 102,15,56,221,217 | 1066 DB 102,15,56,221,217 |
| 1067 pxor xmm0,xmm0 |
| 1068 pxor xmm1,xmm1 |
| 1069 pxor xmm2,xmm2 |
1021 movups XMMWORD[r9],xmm3 | 1070 movups XMMWORD[r9],xmm3 |
| 1071 pxor xmm3,xmm3 |
| 1072 pxor xmm8,xmm8 |
| 1073 pxor xmm6,xmm6 |
1022 movaps xmm6,XMMWORD[rsp] | 1074 movaps xmm6,XMMWORD[rsp] |
| 1075 movaps XMMWORD[rsp],xmm0 |
1023 movaps xmm7,XMMWORD[16+rsp] | 1076 movaps xmm7,XMMWORD[16+rsp] |
| 1077 movaps XMMWORD[16+rsp],xmm0 |
1024 movaps xmm8,XMMWORD[32+rsp] | 1078 movaps xmm8,XMMWORD[32+rsp] |
| 1079 movaps XMMWORD[32+rsp],xmm0 |
1025 movaps xmm9,XMMWORD[48+rsp] | 1080 movaps xmm9,XMMWORD[48+rsp] |
| 1081 movaps XMMWORD[48+rsp],xmm0 |
1026 lea rsp,[88+rsp] | 1082 lea rsp,[88+rsp] |
1027 $L$ccm64_dec_ret: | 1083 $L$ccm64_dec_ret: |
1028 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 1084 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
1029 mov rsi,QWORD[16+rsp] | 1085 mov rsi,QWORD[16+rsp] |
1030 DB 0F3h,0C3h ;repret | 1086 DB 0F3h,0C3h ;repret |
1031 $L$SEH_end_aesni_ccm64_decrypt_blocks: | 1087 $L$SEH_end_aesni_ccm64_decrypt_blocks: |
1032 global aesni_ctr32_encrypt_blocks | 1088 global aesni_ctr32_encrypt_blocks |
1033 | 1089 |
1034 ALIGN 16 | 1090 ALIGN 16 |
1035 aesni_ctr32_encrypt_blocks: | 1091 aesni_ctr32_encrypt_blocks: |
1036 mov QWORD[8+rsp],rdi ;WIN64 prologue | 1092 mov QWORD[8+rsp],rdi ;WIN64 prologue |
1037 mov QWORD[16+rsp],rsi | 1093 mov QWORD[16+rsp],rsi |
1038 mov rax,rsp | 1094 mov rax,rsp |
1039 $L$SEH_begin_aesni_ctr32_encrypt_blocks: | 1095 $L$SEH_begin_aesni_ctr32_encrypt_blocks: |
1040 mov rdi,rcx | 1096 mov rdi,rcx |
1041 mov rsi,rdx | 1097 mov rsi,rdx |
1042 mov rdx,r8 | 1098 mov rdx,r8 |
1043 mov rcx,r9 | 1099 mov rcx,r9 |
1044 mov r8,QWORD[40+rsp] | 1100 mov r8,QWORD[40+rsp] |
1045 | 1101 |
1046 | 1102 |
| 1103 cmp rdx,1 |
| 1104 jne NEAR $L$ctr32_bulk |
| 1105 |
| 1106 |
| 1107 |
| 1108 movups xmm2,XMMWORD[r8] |
| 1109 movups xmm3,XMMWORD[rdi] |
| 1110 mov edx,DWORD[240+rcx] |
| 1111 movups xmm0,XMMWORD[rcx] |
| 1112 movups xmm1,XMMWORD[16+rcx] |
| 1113 lea rcx,[32+rcx] |
| 1114 xorps xmm2,xmm0 |
| 1115 $L$oop_enc1_7: |
| 1116 DB 102,15,56,220,209 |
| 1117 dec edx |
| 1118 movups xmm1,XMMWORD[rcx] |
| 1119 lea rcx,[16+rcx] |
| 1120 jnz NEAR $L$oop_enc1_7 |
| 1121 DB 102,15,56,221,209 |
| 1122 pxor xmm0,xmm0 |
| 1123 pxor xmm1,xmm1 |
| 1124 xorps xmm2,xmm3 |
| 1125 pxor xmm3,xmm3 |
| 1126 movups XMMWORD[rsi],xmm2 |
| 1127 xorps xmm2,xmm2 |
| 1128 jmp NEAR $L$ctr32_epilogue |
| 1129 |
| 1130 ALIGN 16 |
| 1131 $L$ctr32_bulk: |
1047 lea rax,[rsp] | 1132 lea rax,[rsp] |
1048 push rbp | 1133 push rbp |
1049 sub rsp,288 | 1134 sub rsp,288 |
1050 and rsp,-16 | 1135 and rsp,-16 |
1051 movaps XMMWORD[(-168)+rax],xmm6 | 1136 movaps XMMWORD[(-168)+rax],xmm6 |
1052 movaps XMMWORD[(-152)+rax],xmm7 | 1137 movaps XMMWORD[(-152)+rax],xmm7 |
1053 movaps XMMWORD[(-136)+rax],xmm8 | 1138 movaps XMMWORD[(-136)+rax],xmm8 |
1054 movaps XMMWORD[(-120)+rax],xmm9 | 1139 movaps XMMWORD[(-120)+rax],xmm9 |
1055 movaps XMMWORD[(-104)+rax],xmm10 | 1140 movaps XMMWORD[(-104)+rax],xmm10 |
1056 movaps XMMWORD[(-88)+rax],xmm11 | 1141 movaps XMMWORD[(-88)+rax],xmm11 |
1057 movaps XMMWORD[(-72)+rax],xmm12 | 1142 movaps XMMWORD[(-72)+rax],xmm12 |
1058 movaps XMMWORD[(-56)+rax],xmm13 | 1143 movaps XMMWORD[(-56)+rax],xmm13 |
1059 movaps XMMWORD[(-40)+rax],xmm14 | 1144 movaps XMMWORD[(-40)+rax],xmm14 |
1060 movaps XMMWORD[(-24)+rax],xmm15 | 1145 movaps XMMWORD[(-24)+rax],xmm15 |
1061 $L$ctr32_body: | 1146 $L$ctr32_body: |
1062 lea rbp,[((-8))+rax] | 1147 lea rbp,[((-8))+rax] |
1063 | 1148 |
1064 » cmp» rdx,1 | 1149 |
1065 » je» NEAR $L$ctr32_one_shortcut | 1150 |
1066 | 1151 |
1067 movdqu xmm2,XMMWORD[r8] | 1152 movdqu xmm2,XMMWORD[r8] |
1068 movdqu xmm0,XMMWORD[rcx] | 1153 movdqu xmm0,XMMWORD[rcx] |
1069 mov r8d,DWORD[12+r8] | 1154 mov r8d,DWORD[12+r8] |
1070 pxor xmm2,xmm0 | 1155 pxor xmm2,xmm0 |
1071 mov r11d,DWORD[12+rcx] | 1156 mov r11d,DWORD[12+rcx] |
1072 movdqa XMMWORD[rsp],xmm2 | 1157 movdqa XMMWORD[rsp],xmm2 |
1073 bswap r8d | 1158 bswap r8d |
1074 movdqa xmm3,xmm2 | 1159 movdqa xmm3,xmm2 |
1075 movdqa xmm4,xmm2 | 1160 movdqa xmm4,xmm2 |
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1446 lea rsi,[128+rsi] | 1531 lea rsi,[128+rsi] |
1447 | 1532 |
1448 sub rdx,8 | 1533 sub rdx,8 |
1449 jnc NEAR $L$ctr32_loop8 | 1534 jnc NEAR $L$ctr32_loop8 |
1450 | 1535 |
1451 add rdx,8 | 1536 add rdx,8 |
1452 jz NEAR $L$ctr32_done | 1537 jz NEAR $L$ctr32_done |
1453 lea rcx,[((-128))+rcx] | 1538 lea rcx,[((-128))+rcx] |
1454 | 1539 |
1455 $L$ctr32_tail: | 1540 $L$ctr32_tail: |
| 1541 |
| 1542 |
1456 lea rcx,[16+rcx] | 1543 lea rcx,[16+rcx] |
1457 cmp rdx,4 | 1544 cmp rdx,4 |
1458 jb NEAR $L$ctr32_loop3 | 1545 jb NEAR $L$ctr32_loop3 |
1459 je NEAR $L$ctr32_loop4 | 1546 je NEAR $L$ctr32_loop4 |
1460 | 1547 |
| 1548 |
1461 shl eax,4 | 1549 shl eax,4 |
1462 movdqa xmm8,XMMWORD[96+rsp] | 1550 movdqa xmm8,XMMWORD[96+rsp] |
1463 pxor xmm9,xmm9 | 1551 pxor xmm9,xmm9 |
1464 | 1552 |
1465 movups xmm0,XMMWORD[16+rcx] | 1553 movups xmm0,XMMWORD[16+rcx] |
1466 DB 102,15,56,220,209 | 1554 DB 102,15,56,220,209 |
1467 DB 102,15,56,220,217 | 1555 DB 102,15,56,220,217 |
1468 lea rcx,[((32-16))+rax*1+rcx] | 1556 lea rcx,[((32-16))+rax*1+rcx] |
1469 neg rax | 1557 neg rax |
1470 DB 102,15,56,220,225 | 1558 DB 102,15,56,220,225 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1553 jb NEAR $L$ctr32_done | 1641 jb NEAR $L$ctr32_done |
1554 | 1642 |
1555 movups xmm11,XMMWORD[16+rdi] | 1643 movups xmm11,XMMWORD[16+rdi] |
1556 xorps xmm3,xmm11 | 1644 xorps xmm3,xmm11 |
1557 movups XMMWORD[16+rsi],xmm3 | 1645 movups XMMWORD[16+rsi],xmm3 |
1558 je NEAR $L$ctr32_done | 1646 je NEAR $L$ctr32_done |
1559 | 1647 |
1560 movups xmm12,XMMWORD[32+rdi] | 1648 movups xmm12,XMMWORD[32+rdi] |
1561 xorps xmm4,xmm12 | 1649 xorps xmm4,xmm12 |
1562 movups XMMWORD[32+rsi],xmm4 | 1650 movups XMMWORD[32+rsi],xmm4 |
1563 jmp NEAR $L$ctr32_done | |
1564 | 1651 |
1565 ALIGN 16 | |
1566 $L$ctr32_one_shortcut: | |
1567 movups xmm2,XMMWORD[r8] | |
1568 movups xmm10,XMMWORD[rdi] | |
1569 mov eax,DWORD[240+rcx] | |
1570 movups xmm0,XMMWORD[rcx] | |
1571 movups xmm1,XMMWORD[16+rcx] | |
1572 lea rcx,[32+rcx] | |
1573 xorps xmm2,xmm0 | |
1574 $L$oop_enc1_7: | |
1575 DB 102,15,56,220,209 | |
1576 dec eax | |
1577 movups xmm1,XMMWORD[rcx] | |
1578 lea rcx,[16+rcx] | |
1579 jnz NEAR $L$oop_enc1_7 | |
1580 DB 102,15,56,221,209 | |
1581 xorps xmm2,xmm10 | |
1582 movups XMMWORD[rsi],xmm2 | |
1583 jmp NEAR $L$ctr32_done | |
1584 | |
1585 ALIGN 16 | |
1586 $L$ctr32_done: | 1652 $L$ctr32_done: |
| 1653 xorps xmm0,xmm0 |
| 1654 xor r11d,r11d |
| 1655 pxor xmm1,xmm1 |
| 1656 pxor xmm2,xmm2 |
| 1657 pxor xmm3,xmm3 |
| 1658 pxor xmm4,xmm4 |
| 1659 pxor xmm5,xmm5 |
1587 movaps xmm6,XMMWORD[((-160))+rbp] | 1660 movaps xmm6,XMMWORD[((-160))+rbp] |
| 1661 movaps XMMWORD[(-160)+rbp],xmm0 |
1588 movaps xmm7,XMMWORD[((-144))+rbp] | 1662 movaps xmm7,XMMWORD[((-144))+rbp] |
| 1663 movaps XMMWORD[(-144)+rbp],xmm0 |
1589 movaps xmm8,XMMWORD[((-128))+rbp] | 1664 movaps xmm8,XMMWORD[((-128))+rbp] |
| 1665 movaps XMMWORD[(-128)+rbp],xmm0 |
1590 movaps xmm9,XMMWORD[((-112))+rbp] | 1666 movaps xmm9,XMMWORD[((-112))+rbp] |
| 1667 movaps XMMWORD[(-112)+rbp],xmm0 |
1591 movaps xmm10,XMMWORD[((-96))+rbp] | 1668 movaps xmm10,XMMWORD[((-96))+rbp] |
| 1669 movaps XMMWORD[(-96)+rbp],xmm0 |
1592 movaps xmm11,XMMWORD[((-80))+rbp] | 1670 movaps xmm11,XMMWORD[((-80))+rbp] |
| 1671 movaps XMMWORD[(-80)+rbp],xmm0 |
1593 movaps xmm12,XMMWORD[((-64))+rbp] | 1672 movaps xmm12,XMMWORD[((-64))+rbp] |
| 1673 movaps XMMWORD[(-64)+rbp],xmm0 |
1594 movaps xmm13,XMMWORD[((-48))+rbp] | 1674 movaps xmm13,XMMWORD[((-48))+rbp] |
| 1675 movaps XMMWORD[(-48)+rbp],xmm0 |
1595 movaps xmm14,XMMWORD[((-32))+rbp] | 1676 movaps xmm14,XMMWORD[((-32))+rbp] |
| 1677 movaps XMMWORD[(-32)+rbp],xmm0 |
1596 movaps xmm15,XMMWORD[((-16))+rbp] | 1678 movaps xmm15,XMMWORD[((-16))+rbp] |
| 1679 movaps XMMWORD[(-16)+rbp],xmm0 |
| 1680 movaps XMMWORD[rsp],xmm0 |
| 1681 movaps XMMWORD[16+rsp],xmm0 |
| 1682 movaps XMMWORD[32+rsp],xmm0 |
| 1683 movaps XMMWORD[48+rsp],xmm0 |
| 1684 movaps XMMWORD[64+rsp],xmm0 |
| 1685 movaps XMMWORD[80+rsp],xmm0 |
| 1686 movaps XMMWORD[96+rsp],xmm0 |
| 1687 movaps XMMWORD[112+rsp],xmm0 |
1597 lea rsp,[rbp] | 1688 lea rsp,[rbp] |
1598 pop rbp | 1689 pop rbp |
1599 $L$ctr32_epilogue: | 1690 $L$ctr32_epilogue: |
1600 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 1691 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
1601 mov rsi,QWORD[16+rsp] | 1692 mov rsi,QWORD[16+rsp] |
1602 DB 0F3h,0C3h ;repret | 1693 DB 0F3h,0C3h ;repret |
1603 $L$SEH_end_aesni_ctr32_encrypt_blocks: | 1694 $L$SEH_end_aesni_ctr32_encrypt_blocks: |
1604 global aesni_xts_encrypt | 1695 global aesni_xts_encrypt |
1605 | 1696 |
1606 ALIGN 16 | 1697 ALIGN 16 |
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1882 movups XMMWORD[(-16)+rsi],xmm7 | 1973 movups XMMWORD[(-16)+rsi],xmm7 |
1883 sub rdx,16*6 | 1974 sub rdx,16*6 |
1884 jnc NEAR $L$xts_enc_grandloop | 1975 jnc NEAR $L$xts_enc_grandloop |
1885 | 1976 |
1886 mov eax,16+96 | 1977 mov eax,16+96 |
1887 sub eax,r10d | 1978 sub eax,r10d |
1888 mov rcx,r11 | 1979 mov rcx,r11 |
1889 shr eax,4 | 1980 shr eax,4 |
1890 | 1981 |
1891 $L$xts_enc_short: | 1982 $L$xts_enc_short: |
| 1983 |
1892 mov r10d,eax | 1984 mov r10d,eax |
1893 pxor xmm10,xmm0 | 1985 pxor xmm10,xmm0 |
1894 add rdx,16*6 | 1986 add rdx,16*6 |
1895 jz NEAR $L$xts_enc_done | 1987 jz NEAR $L$xts_enc_done |
1896 | 1988 |
1897 pxor xmm11,xmm0 | 1989 pxor xmm11,xmm0 |
1898 cmp rdx,0x20 | 1990 cmp rdx,0x20 |
1899 jb NEAR $L$xts_enc_one | 1991 jb NEAR $L$xts_enc_one |
1900 pxor xmm12,xmm0 | 1992 pxor xmm12,xmm0 |
1901 je NEAR $L$xts_enc_two | 1993 je NEAR $L$xts_enc_two |
1902 | 1994 |
1903 pxor xmm13,xmm0 | 1995 pxor xmm13,xmm0 |
1904 cmp rdx,0x40 | 1996 cmp rdx,0x40 |
1905 jb NEAR $L$xts_enc_three | 1997 jb NEAR $L$xts_enc_three |
1906 pxor xmm14,xmm0 | 1998 pxor xmm14,xmm0 |
1907 je NEAR $L$xts_enc_four | 1999 je NEAR $L$xts_enc_four |
1908 | 2000 |
1909 movdqu xmm2,XMMWORD[rdi] | 2001 movdqu xmm2,XMMWORD[rdi] |
1910 movdqu xmm3,XMMWORD[16+rdi] | 2002 movdqu xmm3,XMMWORD[16+rdi] |
1911 movdqu xmm4,XMMWORD[32+rdi] | 2003 movdqu xmm4,XMMWORD[32+rdi] |
1912 pxor xmm2,xmm10 | 2004 pxor xmm2,xmm10 |
1913 movdqu xmm5,XMMWORD[48+rdi] | 2005 movdqu xmm5,XMMWORD[48+rdi] |
1914 pxor xmm3,xmm11 | 2006 pxor xmm3,xmm11 |
1915 movdqu xmm6,XMMWORD[64+rdi] | 2007 movdqu xmm6,XMMWORD[64+rdi] |
1916 lea rdi,[80+rdi] | 2008 lea rdi,[80+rdi] |
1917 pxor xmm4,xmm12 | 2009 pxor xmm4,xmm12 |
1918 pxor xmm5,xmm13 | 2010 pxor xmm5,xmm13 |
1919 pxor xmm6,xmm14 | 2011 pxor xmm6,xmm14 |
| 2012 pxor xmm7,xmm7 |
1920 | 2013 |
1921 call _aesni_encrypt6 | 2014 call _aesni_encrypt6 |
1922 | 2015 |
1923 xorps xmm2,xmm10 | 2016 xorps xmm2,xmm10 |
1924 movdqa xmm10,xmm15 | 2017 movdqa xmm10,xmm15 |
1925 xorps xmm3,xmm11 | 2018 xorps xmm3,xmm11 |
1926 xorps xmm4,xmm12 | 2019 xorps xmm4,xmm12 |
1927 movdqu XMMWORD[rsi],xmm2 | 2020 movdqu XMMWORD[rsi],xmm2 |
1928 xorps xmm5,xmm13 | 2021 xorps xmm5,xmm13 |
1929 movdqu XMMWORD[16+rsi],xmm3 | 2022 movdqu XMMWORD[16+rsi],xmm3 |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2052 DB 102,15,56,220,209 | 2145 DB 102,15,56,220,209 |
2053 dec eax | 2146 dec eax |
2054 movups xmm1,XMMWORD[rcx] | 2147 movups xmm1,XMMWORD[rcx] |
2055 lea rcx,[16+rcx] | 2148 lea rcx,[16+rcx] |
2056 jnz NEAR $L$oop_enc1_10 | 2149 jnz NEAR $L$oop_enc1_10 |
2057 DB 102,15,56,221,209 | 2150 DB 102,15,56,221,209 |
2058 xorps xmm2,xmm10 | 2151 xorps xmm2,xmm10 |
2059 movups XMMWORD[(-16)+rsi],xmm2 | 2152 movups XMMWORD[(-16)+rsi],xmm2 |
2060 | 2153 |
2061 $L$xts_enc_ret: | 2154 $L$xts_enc_ret: |
| 2155 xorps xmm0,xmm0 |
| 2156 pxor xmm1,xmm1 |
| 2157 pxor xmm2,xmm2 |
| 2158 pxor xmm3,xmm3 |
| 2159 pxor xmm4,xmm4 |
| 2160 pxor xmm5,xmm5 |
2062 movaps xmm6,XMMWORD[((-160))+rbp] | 2161 movaps xmm6,XMMWORD[((-160))+rbp] |
| 2162 movaps XMMWORD[(-160)+rbp],xmm0 |
2063 movaps xmm7,XMMWORD[((-144))+rbp] | 2163 movaps xmm7,XMMWORD[((-144))+rbp] |
| 2164 movaps XMMWORD[(-144)+rbp],xmm0 |
2064 movaps xmm8,XMMWORD[((-128))+rbp] | 2165 movaps xmm8,XMMWORD[((-128))+rbp] |
| 2166 movaps XMMWORD[(-128)+rbp],xmm0 |
2065 movaps xmm9,XMMWORD[((-112))+rbp] | 2167 movaps xmm9,XMMWORD[((-112))+rbp] |
| 2168 movaps XMMWORD[(-112)+rbp],xmm0 |
2066 movaps xmm10,XMMWORD[((-96))+rbp] | 2169 movaps xmm10,XMMWORD[((-96))+rbp] |
| 2170 movaps XMMWORD[(-96)+rbp],xmm0 |
2067 movaps xmm11,XMMWORD[((-80))+rbp] | 2171 movaps xmm11,XMMWORD[((-80))+rbp] |
| 2172 movaps XMMWORD[(-80)+rbp],xmm0 |
2068 movaps xmm12,XMMWORD[((-64))+rbp] | 2173 movaps xmm12,XMMWORD[((-64))+rbp] |
| 2174 movaps XMMWORD[(-64)+rbp],xmm0 |
2069 movaps xmm13,XMMWORD[((-48))+rbp] | 2175 movaps xmm13,XMMWORD[((-48))+rbp] |
| 2176 movaps XMMWORD[(-48)+rbp],xmm0 |
2070 movaps xmm14,XMMWORD[((-32))+rbp] | 2177 movaps xmm14,XMMWORD[((-32))+rbp] |
| 2178 movaps XMMWORD[(-32)+rbp],xmm0 |
2071 movaps xmm15,XMMWORD[((-16))+rbp] | 2179 movaps xmm15,XMMWORD[((-16))+rbp] |
| 2180 movaps XMMWORD[(-16)+rbp],xmm0 |
| 2181 movaps XMMWORD[rsp],xmm0 |
| 2182 movaps XMMWORD[16+rsp],xmm0 |
| 2183 movaps XMMWORD[32+rsp],xmm0 |
| 2184 movaps XMMWORD[48+rsp],xmm0 |
| 2185 movaps XMMWORD[64+rsp],xmm0 |
| 2186 movaps XMMWORD[80+rsp],xmm0 |
| 2187 movaps XMMWORD[96+rsp],xmm0 |
2072 lea rsp,[rbp] | 2188 lea rsp,[rbp] |
2073 pop rbp | 2189 pop rbp |
2074 $L$xts_enc_epilogue: | 2190 $L$xts_enc_epilogue: |
2075 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 2191 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
2076 mov rsi,QWORD[16+rsp] | 2192 mov rsi,QWORD[16+rsp] |
2077 DB 0F3h,0C3h ;repret | 2193 DB 0F3h,0C3h ;repret |
2078 $L$SEH_end_aesni_xts_encrypt: | 2194 $L$SEH_end_aesni_xts_encrypt: |
2079 global aesni_xts_decrypt | 2195 global aesni_xts_decrypt |
2080 | 2196 |
2081 ALIGN 16 | 2197 ALIGN 16 |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2363 movups XMMWORD[(-16)+rsi],xmm7 | 2479 movups XMMWORD[(-16)+rsi],xmm7 |
2364 sub rdx,16*6 | 2480 sub rdx,16*6 |
2365 jnc NEAR $L$xts_dec_grandloop | 2481 jnc NEAR $L$xts_dec_grandloop |
2366 | 2482 |
2367 mov eax,16+96 | 2483 mov eax,16+96 |
2368 sub eax,r10d | 2484 sub eax,r10d |
2369 mov rcx,r11 | 2485 mov rcx,r11 |
2370 shr eax,4 | 2486 shr eax,4 |
2371 | 2487 |
2372 $L$xts_dec_short: | 2488 $L$xts_dec_short: |
| 2489 |
2373 mov r10d,eax | 2490 mov r10d,eax |
2374 pxor xmm10,xmm0 | 2491 pxor xmm10,xmm0 |
2375 pxor xmm11,xmm0 | 2492 pxor xmm11,xmm0 |
2376 add rdx,16*6 | 2493 add rdx,16*6 |
2377 jz NEAR $L$xts_dec_done | 2494 jz NEAR $L$xts_dec_done |
2378 | 2495 |
2379 pxor xmm12,xmm0 | 2496 pxor xmm12,xmm0 |
2380 cmp rdx,0x20 | 2497 cmp rdx,0x20 |
2381 jb NEAR $L$xts_dec_one | 2498 jb NEAR $L$xts_dec_one |
2382 pxor xmm13,xmm0 | 2499 pxor xmm13,xmm0 |
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2565 DB 102,15,56,222,209 | 2682 DB 102,15,56,222,209 |
2566 dec eax | 2683 dec eax |
2567 movups xmm1,XMMWORD[rcx] | 2684 movups xmm1,XMMWORD[rcx] |
2568 lea rcx,[16+rcx] | 2685 lea rcx,[16+rcx] |
2569 jnz NEAR $L$oop_dec1_14 | 2686 jnz NEAR $L$oop_dec1_14 |
2570 DB 102,15,56,223,209 | 2687 DB 102,15,56,223,209 |
2571 xorps xmm2,xmm10 | 2688 xorps xmm2,xmm10 |
2572 movups XMMWORD[rsi],xmm2 | 2689 movups XMMWORD[rsi],xmm2 |
2573 | 2690 |
2574 $L$xts_dec_ret: | 2691 $L$xts_dec_ret: |
| 2692 xorps xmm0,xmm0 |
| 2693 pxor xmm1,xmm1 |
| 2694 pxor xmm2,xmm2 |
| 2695 pxor xmm3,xmm3 |
| 2696 pxor xmm4,xmm4 |
| 2697 pxor xmm5,xmm5 |
2575 movaps xmm6,XMMWORD[((-160))+rbp] | 2698 movaps xmm6,XMMWORD[((-160))+rbp] |
| 2699 movaps XMMWORD[(-160)+rbp],xmm0 |
2576 movaps xmm7,XMMWORD[((-144))+rbp] | 2700 movaps xmm7,XMMWORD[((-144))+rbp] |
| 2701 movaps XMMWORD[(-144)+rbp],xmm0 |
2577 movaps xmm8,XMMWORD[((-128))+rbp] | 2702 movaps xmm8,XMMWORD[((-128))+rbp] |
| 2703 movaps XMMWORD[(-128)+rbp],xmm0 |
2578 movaps xmm9,XMMWORD[((-112))+rbp] | 2704 movaps xmm9,XMMWORD[((-112))+rbp] |
| 2705 movaps XMMWORD[(-112)+rbp],xmm0 |
2579 movaps xmm10,XMMWORD[((-96))+rbp] | 2706 movaps xmm10,XMMWORD[((-96))+rbp] |
| 2707 movaps XMMWORD[(-96)+rbp],xmm0 |
2580 movaps xmm11,XMMWORD[((-80))+rbp] | 2708 movaps xmm11,XMMWORD[((-80))+rbp] |
| 2709 movaps XMMWORD[(-80)+rbp],xmm0 |
2581 movaps xmm12,XMMWORD[((-64))+rbp] | 2710 movaps xmm12,XMMWORD[((-64))+rbp] |
| 2711 movaps XMMWORD[(-64)+rbp],xmm0 |
2582 movaps xmm13,XMMWORD[((-48))+rbp] | 2712 movaps xmm13,XMMWORD[((-48))+rbp] |
| 2713 movaps XMMWORD[(-48)+rbp],xmm0 |
2583 movaps xmm14,XMMWORD[((-32))+rbp] | 2714 movaps xmm14,XMMWORD[((-32))+rbp] |
| 2715 movaps XMMWORD[(-32)+rbp],xmm0 |
2584 movaps xmm15,XMMWORD[((-16))+rbp] | 2716 movaps xmm15,XMMWORD[((-16))+rbp] |
| 2717 movaps XMMWORD[(-16)+rbp],xmm0 |
| 2718 movaps XMMWORD[rsp],xmm0 |
| 2719 movaps XMMWORD[16+rsp],xmm0 |
| 2720 movaps XMMWORD[32+rsp],xmm0 |
| 2721 movaps XMMWORD[48+rsp],xmm0 |
| 2722 movaps XMMWORD[64+rsp],xmm0 |
| 2723 movaps XMMWORD[80+rsp],xmm0 |
| 2724 movaps XMMWORD[96+rsp],xmm0 |
2585 lea rsp,[rbp] | 2725 lea rsp,[rbp] |
2586 pop rbp | 2726 pop rbp |
2587 $L$xts_dec_epilogue: | 2727 $L$xts_dec_epilogue: |
2588 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 2728 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
2589 mov rsi,QWORD[16+rsp] | 2729 mov rsi,QWORD[16+rsp] |
2590 DB 0F3h,0C3h ;repret | 2730 DB 0F3h,0C3h ;repret |
2591 $L$SEH_end_aesni_xts_decrypt: | 2731 $L$SEH_end_aesni_xts_decrypt: |
2592 global aesni_cbc_encrypt | 2732 global aesni_cbc_encrypt |
2593 | 2733 |
2594 ALIGN 16 | 2734 ALIGN 16 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2637 jnz NEAR $L$oop_enc1_15 | 2777 jnz NEAR $L$oop_enc1_15 |
2638 DB 102,15,56,221,209 | 2778 DB 102,15,56,221,209 |
2639 mov eax,r10d | 2779 mov eax,r10d |
2640 mov rcx,r11 | 2780 mov rcx,r11 |
2641 movups XMMWORD[rsi],xmm2 | 2781 movups XMMWORD[rsi],xmm2 |
2642 lea rsi,[16+rsi] | 2782 lea rsi,[16+rsi] |
2643 sub rdx,16 | 2783 sub rdx,16 |
2644 jnc NEAR $L$cbc_enc_loop | 2784 jnc NEAR $L$cbc_enc_loop |
2645 add rdx,16 | 2785 add rdx,16 |
2646 jnz NEAR $L$cbc_enc_tail | 2786 jnz NEAR $L$cbc_enc_tail |
| 2787 pxor xmm0,xmm0 |
| 2788 pxor xmm1,xmm1 |
2647 movups XMMWORD[r8],xmm2 | 2789 movups XMMWORD[r8],xmm2 |
| 2790 pxor xmm2,xmm2 |
| 2791 pxor xmm3,xmm3 |
2648 jmp NEAR $L$cbc_ret | 2792 jmp NEAR $L$cbc_ret |
2649 | 2793 |
2650 $L$cbc_enc_tail: | 2794 $L$cbc_enc_tail: |
2651 mov rcx,rdx | 2795 mov rcx,rdx |
2652 xchg rsi,rdi | 2796 xchg rsi,rdi |
2653 DD 0x9066A4F3 | 2797 DD 0x9066A4F3 |
2654 mov ecx,16 | 2798 mov ecx,16 |
2655 sub rcx,rdx | 2799 sub rcx,rdx |
2656 xor eax,eax | 2800 xor eax,eax |
2657 DD 0x9066AAF3 | 2801 DD 0x9066AAF3 |
2658 lea rdi,[((-16))+rdi] | 2802 lea rdi,[((-16))+rdi] |
2659 mov eax,r10d | 2803 mov eax,r10d |
2660 mov rsi,rdi | 2804 mov rsi,rdi |
2661 mov rcx,r11 | 2805 mov rcx,r11 |
2662 xor rdx,rdx | 2806 xor rdx,rdx |
2663 jmp NEAR $L$cbc_enc_loop | 2807 jmp NEAR $L$cbc_enc_loop |
2664 | 2808 |
2665 ALIGN 16 | 2809 ALIGN 16 |
2666 $L$cbc_decrypt: | 2810 $L$cbc_decrypt: |
| 2811 cmp rdx,16 |
| 2812 jne NEAR $L$cbc_decrypt_bulk |
| 2813 |
| 2814 |
| 2815 |
| 2816 movdqu xmm2,XMMWORD[rdi] |
| 2817 movdqu xmm3,XMMWORD[r8] |
| 2818 movdqa xmm4,xmm2 |
| 2819 movups xmm0,XMMWORD[rcx] |
| 2820 movups xmm1,XMMWORD[16+rcx] |
| 2821 lea rcx,[32+rcx] |
| 2822 xorps xmm2,xmm0 |
| 2823 $L$oop_dec1_16: |
| 2824 DB 102,15,56,222,209 |
| 2825 dec r10d |
| 2826 movups xmm1,XMMWORD[rcx] |
| 2827 lea rcx,[16+rcx] |
| 2828 jnz NEAR $L$oop_dec1_16 |
| 2829 DB 102,15,56,223,209 |
| 2830 pxor xmm0,xmm0 |
| 2831 pxor xmm1,xmm1 |
| 2832 movdqu XMMWORD[r8],xmm4 |
| 2833 xorps xmm2,xmm3 |
| 2834 pxor xmm3,xmm3 |
| 2835 movups XMMWORD[rsi],xmm2 |
| 2836 pxor xmm2,xmm2 |
| 2837 jmp NEAR $L$cbc_ret |
| 2838 ALIGN 16 |
| 2839 $L$cbc_decrypt_bulk: |
2667 lea rax,[rsp] | 2840 lea rax,[rsp] |
2668 push rbp | 2841 push rbp |
2669 sub rsp,176 | 2842 sub rsp,176 |
2670 and rsp,-16 | 2843 and rsp,-16 |
2671 movaps XMMWORD[16+rsp],xmm6 | 2844 movaps XMMWORD[16+rsp],xmm6 |
2672 movaps XMMWORD[32+rsp],xmm7 | 2845 movaps XMMWORD[32+rsp],xmm7 |
2673 movaps XMMWORD[48+rsp],xmm8 | 2846 movaps XMMWORD[48+rsp],xmm8 |
2674 movaps XMMWORD[64+rsp],xmm9 | 2847 movaps XMMWORD[64+rsp],xmm9 |
2675 movaps XMMWORD[80+rsp],xmm10 | 2848 movaps XMMWORD[80+rsp],xmm10 |
2676 movaps XMMWORD[96+rsp],xmm11 | 2849 movaps XMMWORD[96+rsp],xmm11 |
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2904 movdqa xmm7,xmm1 | 3077 movdqa xmm7,xmm1 |
2905 movups XMMWORD[96+rsi],xmm8 | 3078 movups XMMWORD[96+rsi],xmm8 |
2906 lea rsi,[112+rsi] | 3079 lea rsi,[112+rsi] |
2907 | 3080 |
2908 sub rdx,0x80 | 3081 sub rdx,0x80 |
2909 ja NEAR $L$cbc_dec_loop8 | 3082 ja NEAR $L$cbc_dec_loop8 |
2910 | 3083 |
2911 movaps xmm2,xmm9 | 3084 movaps xmm2,xmm9 |
2912 lea rcx,[((-112))+rcx] | 3085 lea rcx,[((-112))+rcx] |
2913 add rdx,0x70 | 3086 add rdx,0x70 |
2914 » jle» NEAR $L$cbc_dec_tail_collected | 3087 » jle» NEAR $L$cbc_dec_clear_tail_collected |
2915 movups XMMWORD[rsi],xmm9 | 3088 movups XMMWORD[rsi],xmm9 |
2916 lea rsi,[16+rsi] | 3089 lea rsi,[16+rsi] |
2917 cmp rdx,0x50 | 3090 cmp rdx,0x50 |
2918 jbe NEAR $L$cbc_dec_tail | 3091 jbe NEAR $L$cbc_dec_tail |
2919 | 3092 |
2920 movaps xmm2,xmm11 | 3093 movaps xmm2,xmm11 |
2921 $L$cbc_dec_six_or_seven: | 3094 $L$cbc_dec_six_or_seven: |
2922 cmp rdx,0x60 | 3095 cmp rdx,0x60 |
2923 ja NEAR $L$cbc_dec_seven | 3096 ja NEAR $L$cbc_dec_seven |
2924 | 3097 |
2925 movaps xmm8,xmm7 | 3098 movaps xmm8,xmm7 |
2926 call _aesni_decrypt6 | 3099 call _aesni_decrypt6 |
2927 pxor xmm2,xmm10 | 3100 pxor xmm2,xmm10 |
2928 movaps xmm10,xmm8 | 3101 movaps xmm10,xmm8 |
2929 pxor xmm3,xmm11 | 3102 pxor xmm3,xmm11 |
2930 movdqu XMMWORD[rsi],xmm2 | 3103 movdqu XMMWORD[rsi],xmm2 |
2931 pxor xmm4,xmm12 | 3104 pxor xmm4,xmm12 |
2932 movdqu XMMWORD[16+rsi],xmm3 | 3105 movdqu XMMWORD[16+rsi],xmm3 |
| 3106 pxor xmm3,xmm3 |
2933 pxor xmm5,xmm13 | 3107 pxor xmm5,xmm13 |
2934 movdqu XMMWORD[32+rsi],xmm4 | 3108 movdqu XMMWORD[32+rsi],xmm4 |
| 3109 pxor xmm4,xmm4 |
2935 pxor xmm6,xmm14 | 3110 pxor xmm6,xmm14 |
2936 movdqu XMMWORD[48+rsi],xmm5 | 3111 movdqu XMMWORD[48+rsi],xmm5 |
| 3112 pxor xmm5,xmm5 |
2937 pxor xmm7,xmm15 | 3113 pxor xmm7,xmm15 |
2938 movdqu XMMWORD[64+rsi],xmm6 | 3114 movdqu XMMWORD[64+rsi],xmm6 |
| 3115 pxor xmm6,xmm6 |
2939 lea rsi,[80+rsi] | 3116 lea rsi,[80+rsi] |
2940 movdqa xmm2,xmm7 | 3117 movdqa xmm2,xmm7 |
| 3118 pxor xmm7,xmm7 |
2941 jmp NEAR $L$cbc_dec_tail_collected | 3119 jmp NEAR $L$cbc_dec_tail_collected |
2942 | 3120 |
2943 ALIGN 16 | 3121 ALIGN 16 |
2944 $L$cbc_dec_seven: | 3122 $L$cbc_dec_seven: |
2945 movups xmm8,XMMWORD[96+rdi] | 3123 movups xmm8,XMMWORD[96+rdi] |
2946 xorps xmm9,xmm9 | 3124 xorps xmm9,xmm9 |
2947 call _aesni_decrypt8 | 3125 call _aesni_decrypt8 |
2948 movups xmm9,XMMWORD[80+rdi] | 3126 movups xmm9,XMMWORD[80+rdi] |
2949 pxor xmm2,xmm10 | 3127 pxor xmm2,xmm10 |
2950 movups xmm10,XMMWORD[96+rdi] | 3128 movups xmm10,XMMWORD[96+rdi] |
2951 pxor xmm3,xmm11 | 3129 pxor xmm3,xmm11 |
2952 movdqu XMMWORD[rsi],xmm2 | 3130 movdqu XMMWORD[rsi],xmm2 |
2953 pxor xmm4,xmm12 | 3131 pxor xmm4,xmm12 |
2954 movdqu XMMWORD[16+rsi],xmm3 | 3132 movdqu XMMWORD[16+rsi],xmm3 |
| 3133 pxor xmm3,xmm3 |
2955 pxor xmm5,xmm13 | 3134 pxor xmm5,xmm13 |
2956 movdqu XMMWORD[32+rsi],xmm4 | 3135 movdqu XMMWORD[32+rsi],xmm4 |
| 3136 pxor xmm4,xmm4 |
2957 pxor xmm6,xmm14 | 3137 pxor xmm6,xmm14 |
2958 movdqu XMMWORD[48+rsi],xmm5 | 3138 movdqu XMMWORD[48+rsi],xmm5 |
| 3139 pxor xmm5,xmm5 |
2959 pxor xmm7,xmm15 | 3140 pxor xmm7,xmm15 |
2960 movdqu XMMWORD[64+rsi],xmm6 | 3141 movdqu XMMWORD[64+rsi],xmm6 |
| 3142 pxor xmm6,xmm6 |
2961 pxor xmm8,xmm9 | 3143 pxor xmm8,xmm9 |
2962 movdqu XMMWORD[80+rsi],xmm7 | 3144 movdqu XMMWORD[80+rsi],xmm7 |
| 3145 pxor xmm7,xmm7 |
2963 lea rsi,[96+rsi] | 3146 lea rsi,[96+rsi] |
2964 movdqa xmm2,xmm8 | 3147 movdqa xmm2,xmm8 |
| 3148 pxor xmm8,xmm8 |
| 3149 pxor xmm9,xmm9 |
2965 jmp NEAR $L$cbc_dec_tail_collected | 3150 jmp NEAR $L$cbc_dec_tail_collected |
2966 | 3151 |
2967 ALIGN 16 | 3152 ALIGN 16 |
2968 $L$cbc_dec_loop6: | 3153 $L$cbc_dec_loop6: |
2969 movups XMMWORD[rsi],xmm7 | 3154 movups XMMWORD[rsi],xmm7 |
2970 lea rsi,[16+rsi] | 3155 lea rsi,[16+rsi] |
2971 movdqu xmm2,XMMWORD[rdi] | 3156 movdqu xmm2,XMMWORD[rdi] |
2972 movdqu xmm3,XMMWORD[16+rdi] | 3157 movdqu xmm3,XMMWORD[16+rdi] |
2973 movdqa xmm11,xmm2 | 3158 movdqa xmm11,xmm2 |
2974 movdqu xmm4,XMMWORD[32+rdi] | 3159 movdqu xmm4,XMMWORD[32+rdi] |
(...skipping 23 matching lines...) Expand all Loading... |
2998 movdqu XMMWORD[48+rsi],xmm5 | 3183 movdqu XMMWORD[48+rsi],xmm5 |
2999 pxor xmm7,xmm15 | 3184 pxor xmm7,xmm15 |
3000 mov eax,r10d | 3185 mov eax,r10d |
3001 movdqu XMMWORD[64+rsi],xmm6 | 3186 movdqu XMMWORD[64+rsi],xmm6 |
3002 lea rsi,[80+rsi] | 3187 lea rsi,[80+rsi] |
3003 sub rdx,0x60 | 3188 sub rdx,0x60 |
3004 ja NEAR $L$cbc_dec_loop6 | 3189 ja NEAR $L$cbc_dec_loop6 |
3005 | 3190 |
3006 movdqa xmm2,xmm7 | 3191 movdqa xmm2,xmm7 |
3007 add rdx,0x50 | 3192 add rdx,0x50 |
3008 » jle» NEAR $L$cbc_dec_tail_collected | 3193 » jle» NEAR $L$cbc_dec_clear_tail_collected |
3009 movups XMMWORD[rsi],xmm7 | 3194 movups XMMWORD[rsi],xmm7 |
3010 lea rsi,[16+rsi] | 3195 lea rsi,[16+rsi] |
3011 | 3196 |
3012 $L$cbc_dec_tail: | 3197 $L$cbc_dec_tail: |
3013 movups xmm2,XMMWORD[rdi] | 3198 movups xmm2,XMMWORD[rdi] |
3014 sub rdx,0x10 | 3199 sub rdx,0x10 |
3015 jbe NEAR $L$cbc_dec_one | 3200 jbe NEAR $L$cbc_dec_one |
3016 | 3201 |
3017 movups xmm3,XMMWORD[16+rdi] | 3202 movups xmm3,XMMWORD[16+rdi] |
3018 movaps xmm11,xmm2 | 3203 movaps xmm11,xmm2 |
(...skipping 14 matching lines...) Expand all Loading... |
3033 movaps xmm14,xmm5 | 3218 movaps xmm14,xmm5 |
3034 movaps xmm15,xmm6 | 3219 movaps xmm15,xmm6 |
3035 xorps xmm7,xmm7 | 3220 xorps xmm7,xmm7 |
3036 call _aesni_decrypt6 | 3221 call _aesni_decrypt6 |
3037 pxor xmm2,xmm10 | 3222 pxor xmm2,xmm10 |
3038 movaps xmm10,xmm15 | 3223 movaps xmm10,xmm15 |
3039 pxor xmm3,xmm11 | 3224 pxor xmm3,xmm11 |
3040 movdqu XMMWORD[rsi],xmm2 | 3225 movdqu XMMWORD[rsi],xmm2 |
3041 pxor xmm4,xmm12 | 3226 pxor xmm4,xmm12 |
3042 movdqu XMMWORD[16+rsi],xmm3 | 3227 movdqu XMMWORD[16+rsi],xmm3 |
| 3228 pxor xmm3,xmm3 |
3043 pxor xmm5,xmm13 | 3229 pxor xmm5,xmm13 |
3044 movdqu XMMWORD[32+rsi],xmm4 | 3230 movdqu XMMWORD[32+rsi],xmm4 |
| 3231 pxor xmm4,xmm4 |
3045 pxor xmm6,xmm14 | 3232 pxor xmm6,xmm14 |
3046 movdqu XMMWORD[48+rsi],xmm5 | 3233 movdqu XMMWORD[48+rsi],xmm5 |
| 3234 pxor xmm5,xmm5 |
3047 lea rsi,[64+rsi] | 3235 lea rsi,[64+rsi] |
3048 movdqa xmm2,xmm6 | 3236 movdqa xmm2,xmm6 |
| 3237 pxor xmm6,xmm6 |
| 3238 pxor xmm7,xmm7 |
3049 sub rdx,0x10 | 3239 sub rdx,0x10 |
3050 jmp NEAR $L$cbc_dec_tail_collected | 3240 jmp NEAR $L$cbc_dec_tail_collected |
3051 | 3241 |
3052 ALIGN 16 | 3242 ALIGN 16 |
3053 $L$cbc_dec_one: | 3243 $L$cbc_dec_one: |
3054 movaps xmm11,xmm2 | 3244 movaps xmm11,xmm2 |
3055 movups xmm0,XMMWORD[rcx] | 3245 movups xmm0,XMMWORD[rcx] |
3056 movups xmm1,XMMWORD[16+rcx] | 3246 movups xmm1,XMMWORD[16+rcx] |
3057 lea rcx,[32+rcx] | 3247 lea rcx,[32+rcx] |
3058 xorps xmm2,xmm0 | 3248 xorps xmm2,xmm0 |
3059 $L$oop_dec1_16: | 3249 $L$oop_dec1_17: |
3060 DB 102,15,56,222,209 | 3250 DB 102,15,56,222,209 |
3061 dec eax | 3251 dec eax |
3062 movups xmm1,XMMWORD[rcx] | 3252 movups xmm1,XMMWORD[rcx] |
3063 lea rcx,[16+rcx] | 3253 lea rcx,[16+rcx] |
3064 » jnz» NEAR $L$oop_dec1_16 | 3254 » jnz» NEAR $L$oop_dec1_17 |
3065 DB 102,15,56,223,209 | 3255 DB 102,15,56,223,209 |
3066 xorps xmm2,xmm10 | 3256 xorps xmm2,xmm10 |
3067 movaps xmm10,xmm11 | 3257 movaps xmm10,xmm11 |
3068 jmp NEAR $L$cbc_dec_tail_collected | 3258 jmp NEAR $L$cbc_dec_tail_collected |
3069 ALIGN 16 | 3259 ALIGN 16 |
3070 $L$cbc_dec_two: | 3260 $L$cbc_dec_two: |
3071 movaps xmm12,xmm3 | 3261 movaps xmm12,xmm3 |
3072 call _aesni_decrypt2 | 3262 call _aesni_decrypt2 |
3073 pxor xmm2,xmm10 | 3263 pxor xmm2,xmm10 |
3074 movaps xmm10,xmm12 | 3264 movaps xmm10,xmm12 |
3075 pxor xmm3,xmm11 | 3265 pxor xmm3,xmm11 |
3076 movdqu XMMWORD[rsi],xmm2 | 3266 movdqu XMMWORD[rsi],xmm2 |
3077 movdqa xmm2,xmm3 | 3267 movdqa xmm2,xmm3 |
| 3268 pxor xmm3,xmm3 |
3078 lea rsi,[16+rsi] | 3269 lea rsi,[16+rsi] |
3079 jmp NEAR $L$cbc_dec_tail_collected | 3270 jmp NEAR $L$cbc_dec_tail_collected |
3080 ALIGN 16 | 3271 ALIGN 16 |
3081 $L$cbc_dec_three: | 3272 $L$cbc_dec_three: |
3082 movaps xmm13,xmm4 | 3273 movaps xmm13,xmm4 |
3083 call _aesni_decrypt3 | 3274 call _aesni_decrypt3 |
3084 pxor xmm2,xmm10 | 3275 pxor xmm2,xmm10 |
3085 movaps xmm10,xmm13 | 3276 movaps xmm10,xmm13 |
3086 pxor xmm3,xmm11 | 3277 pxor xmm3,xmm11 |
3087 movdqu XMMWORD[rsi],xmm2 | 3278 movdqu XMMWORD[rsi],xmm2 |
3088 pxor xmm4,xmm12 | 3279 pxor xmm4,xmm12 |
3089 movdqu XMMWORD[16+rsi],xmm3 | 3280 movdqu XMMWORD[16+rsi],xmm3 |
| 3281 pxor xmm3,xmm3 |
3090 movdqa xmm2,xmm4 | 3282 movdqa xmm2,xmm4 |
| 3283 pxor xmm4,xmm4 |
3091 lea rsi,[32+rsi] | 3284 lea rsi,[32+rsi] |
3092 jmp NEAR $L$cbc_dec_tail_collected | 3285 jmp NEAR $L$cbc_dec_tail_collected |
3093 ALIGN 16 | 3286 ALIGN 16 |
3094 $L$cbc_dec_four: | 3287 $L$cbc_dec_four: |
3095 movaps xmm14,xmm5 | 3288 movaps xmm14,xmm5 |
3096 call _aesni_decrypt4 | 3289 call _aesni_decrypt4 |
3097 pxor xmm2,xmm10 | 3290 pxor xmm2,xmm10 |
3098 movaps xmm10,xmm14 | 3291 movaps xmm10,xmm14 |
3099 pxor xmm3,xmm11 | 3292 pxor xmm3,xmm11 |
3100 movdqu XMMWORD[rsi],xmm2 | 3293 movdqu XMMWORD[rsi],xmm2 |
3101 pxor xmm4,xmm12 | 3294 pxor xmm4,xmm12 |
3102 movdqu XMMWORD[16+rsi],xmm3 | 3295 movdqu XMMWORD[16+rsi],xmm3 |
| 3296 pxor xmm3,xmm3 |
3103 pxor xmm5,xmm13 | 3297 pxor xmm5,xmm13 |
3104 movdqu XMMWORD[32+rsi],xmm4 | 3298 movdqu XMMWORD[32+rsi],xmm4 |
| 3299 pxor xmm4,xmm4 |
3105 movdqa xmm2,xmm5 | 3300 movdqa xmm2,xmm5 |
| 3301 pxor xmm5,xmm5 |
3106 lea rsi,[48+rsi] | 3302 lea rsi,[48+rsi] |
3107 jmp NEAR $L$cbc_dec_tail_collected | 3303 jmp NEAR $L$cbc_dec_tail_collected |
3108 | 3304 |
3109 ALIGN 16 | 3305 ALIGN 16 |
| 3306 $L$cbc_dec_clear_tail_collected: |
| 3307 pxor xmm3,xmm3 |
| 3308 pxor xmm4,xmm4 |
| 3309 pxor xmm5,xmm5 |
3110 $L$cbc_dec_tail_collected: | 3310 $L$cbc_dec_tail_collected: |
3111 movups XMMWORD[r8],xmm10 | 3311 movups XMMWORD[r8],xmm10 |
3112 and rdx,15 | 3312 and rdx,15 |
3113 jnz NEAR $L$cbc_dec_tail_partial | 3313 jnz NEAR $L$cbc_dec_tail_partial |
3114 movups XMMWORD[rsi],xmm2 | 3314 movups XMMWORD[rsi],xmm2 |
| 3315 pxor xmm2,xmm2 |
3115 jmp NEAR $L$cbc_dec_ret | 3316 jmp NEAR $L$cbc_dec_ret |
3116 ALIGN 16 | 3317 ALIGN 16 |
3117 $L$cbc_dec_tail_partial: | 3318 $L$cbc_dec_tail_partial: |
3118 movaps XMMWORD[rsp],xmm2 | 3319 movaps XMMWORD[rsp],xmm2 |
| 3320 pxor xmm2,xmm2 |
3119 mov rcx,16 | 3321 mov rcx,16 |
3120 mov rdi,rsi | 3322 mov rdi,rsi |
3121 sub rcx,rdx | 3323 sub rcx,rdx |
3122 lea rsi,[rsp] | 3324 lea rsi,[rsp] |
3123 DD 0x9066A4F3 | 3325 DD 0x9066A4F3 |
| 3326 movdqa XMMWORD[rsp],xmm2 |
3124 | 3327 |
3125 $L$cbc_dec_ret: | 3328 $L$cbc_dec_ret: |
| 3329 xorps xmm0,xmm0 |
| 3330 pxor xmm1,xmm1 |
3126 movaps xmm6,XMMWORD[16+rsp] | 3331 movaps xmm6,XMMWORD[16+rsp] |
| 3332 movaps XMMWORD[16+rsp],xmm0 |
3127 movaps xmm7,XMMWORD[32+rsp] | 3333 movaps xmm7,XMMWORD[32+rsp] |
| 3334 movaps XMMWORD[32+rsp],xmm0 |
3128 movaps xmm8,XMMWORD[48+rsp] | 3335 movaps xmm8,XMMWORD[48+rsp] |
| 3336 movaps XMMWORD[48+rsp],xmm0 |
3129 movaps xmm9,XMMWORD[64+rsp] | 3337 movaps xmm9,XMMWORD[64+rsp] |
| 3338 movaps XMMWORD[64+rsp],xmm0 |
3130 movaps xmm10,XMMWORD[80+rsp] | 3339 movaps xmm10,XMMWORD[80+rsp] |
| 3340 movaps XMMWORD[80+rsp],xmm0 |
3131 movaps xmm11,XMMWORD[96+rsp] | 3341 movaps xmm11,XMMWORD[96+rsp] |
| 3342 movaps XMMWORD[96+rsp],xmm0 |
3132 movaps xmm12,XMMWORD[112+rsp] | 3343 movaps xmm12,XMMWORD[112+rsp] |
| 3344 movaps XMMWORD[112+rsp],xmm0 |
3133 movaps xmm13,XMMWORD[128+rsp] | 3345 movaps xmm13,XMMWORD[128+rsp] |
| 3346 movaps XMMWORD[128+rsp],xmm0 |
3134 movaps xmm14,XMMWORD[144+rsp] | 3347 movaps xmm14,XMMWORD[144+rsp] |
| 3348 movaps XMMWORD[144+rsp],xmm0 |
3135 movaps xmm15,XMMWORD[160+rsp] | 3349 movaps xmm15,XMMWORD[160+rsp] |
| 3350 movaps XMMWORD[160+rsp],xmm0 |
3136 lea rsp,[rbp] | 3351 lea rsp,[rbp] |
3137 pop rbp | 3352 pop rbp |
3138 $L$cbc_ret: | 3353 $L$cbc_ret: |
3139 mov rdi,QWORD[8+rsp] ;WIN64 epilogue | 3354 mov rdi,QWORD[8+rsp] ;WIN64 epilogue |
3140 mov rsi,QWORD[16+rsp] | 3355 mov rsi,QWORD[16+rsp] |
3141 DB 0F3h,0C3h ;repret | 3356 DB 0F3h,0C3h ;repret |
3142 $L$SEH_end_aesni_cbc_encrypt: | 3357 $L$SEH_end_aesni_cbc_encrypt: |
3143 global aesni_set_decrypt_key | 3358 global aesni_set_decrypt_key |
3144 | 3359 |
3145 ALIGN 16 | 3360 ALIGN 16 |
(...skipping 19 matching lines...) Expand all Loading... |
3165 DB 102,15,56,219,201 | 3380 DB 102,15,56,219,201 |
3166 lea r8,[16+r8] | 3381 lea r8,[16+r8] |
3167 lea rcx,[((-16))+rcx] | 3382 lea rcx,[((-16))+rcx] |
3168 movups XMMWORD[16+rcx],xmm0 | 3383 movups XMMWORD[16+rcx],xmm0 |
3169 movups XMMWORD[(-16)+r8],xmm1 | 3384 movups XMMWORD[(-16)+r8],xmm1 |
3170 cmp rcx,r8 | 3385 cmp rcx,r8 |
3171 ja NEAR $L$dec_key_inverse | 3386 ja NEAR $L$dec_key_inverse |
3172 | 3387 |
3173 movups xmm0,XMMWORD[r8] | 3388 movups xmm0,XMMWORD[r8] |
3174 DB 102,15,56,219,192 | 3389 DB 102,15,56,219,192 |
| 3390 pxor xmm1,xmm1 |
3175 movups XMMWORD[rcx],xmm0 | 3391 movups XMMWORD[rcx],xmm0 |
| 3392 pxor xmm0,xmm0 |
3176 $L$dec_key_ret: | 3393 $L$dec_key_ret: |
3177 add rsp,8 | 3394 add rsp,8 |
3178 DB 0F3h,0C3h ;repret | 3395 DB 0F3h,0C3h ;repret |
3179 $L$SEH_end_set_decrypt_key: | 3396 $L$SEH_end_set_decrypt_key: |
3180 | 3397 |
3181 global aesni_set_encrypt_key | 3398 global aesni_set_encrypt_key |
3182 | 3399 |
3183 ALIGN 16 | 3400 ALIGN 16 |
3184 aesni_set_encrypt_key: | 3401 aesni_set_encrypt_key: |
3185 __aesni_set_encrypt_key: | 3402 __aesni_set_encrypt_key: |
3186 DB 0x48,0x83,0xEC,0x08 | 3403 DB 0x48,0x83,0xEC,0x08 |
3187 mov rax,-1 | 3404 mov rax,-1 |
3188 test rcx,rcx | 3405 test rcx,rcx |
3189 jz NEAR $L$enc_key_ret | 3406 jz NEAR $L$enc_key_ret |
3190 test r8,r8 | 3407 test r8,r8 |
3191 jz NEAR $L$enc_key_ret | 3408 jz NEAR $L$enc_key_ret |
3192 | 3409 |
| 3410 mov r10d,268437504 |
3193 movups xmm0,XMMWORD[rcx] | 3411 movups xmm0,XMMWORD[rcx] |
3194 xorps xmm4,xmm4 | 3412 xorps xmm4,xmm4 |
| 3413 and r10d,DWORD[((OPENSSL_ia32cap_P+4))] |
3195 lea rax,[16+r8] | 3414 lea rax,[16+r8] |
3196 cmp edx,256 | 3415 cmp edx,256 |
3197 je NEAR $L$14rounds | 3416 je NEAR $L$14rounds |
3198 cmp edx,192 | 3417 cmp edx,192 |
3199 je NEAR $L$12rounds | 3418 je NEAR $L$12rounds |
3200 cmp edx,128 | 3419 cmp edx,128 |
3201 jne NEAR $L$bad_keybits | 3420 jne NEAR $L$bad_keybits |
3202 | 3421 |
3203 $L$10rounds: | 3422 $L$10rounds: |
3204 mov edx,9 | 3423 mov edx,9 |
| 3424 cmp r10d,268435456 |
| 3425 je NEAR $L$10rounds_alt |
| 3426 |
3205 movups XMMWORD[r8],xmm0 | 3427 movups XMMWORD[r8],xmm0 |
3206 DB 102,15,58,223,200,1 | 3428 DB 102,15,58,223,200,1 |
3207 call $L$key_expansion_128_cold | 3429 call $L$key_expansion_128_cold |
3208 DB 102,15,58,223,200,2 | 3430 DB 102,15,58,223,200,2 |
3209 call $L$key_expansion_128 | 3431 call $L$key_expansion_128 |
3210 DB 102,15,58,223,200,4 | 3432 DB 102,15,58,223,200,4 |
3211 call $L$key_expansion_128 | 3433 call $L$key_expansion_128 |
3212 DB 102,15,58,223,200,8 | 3434 DB 102,15,58,223,200,8 |
3213 call $L$key_expansion_128 | 3435 call $L$key_expansion_128 |
3214 DB 102,15,58,223,200,16 | 3436 DB 102,15,58,223,200,16 |
3215 call $L$key_expansion_128 | 3437 call $L$key_expansion_128 |
3216 DB 102,15,58,223,200,32 | 3438 DB 102,15,58,223,200,32 |
3217 call $L$key_expansion_128 | 3439 call $L$key_expansion_128 |
3218 DB 102,15,58,223,200,64 | 3440 DB 102,15,58,223,200,64 |
3219 call $L$key_expansion_128 | 3441 call $L$key_expansion_128 |
3220 DB 102,15,58,223,200,128 | 3442 DB 102,15,58,223,200,128 |
3221 call $L$key_expansion_128 | 3443 call $L$key_expansion_128 |
3222 DB 102,15,58,223,200,27 | 3444 DB 102,15,58,223,200,27 |
3223 call $L$key_expansion_128 | 3445 call $L$key_expansion_128 |
3224 DB 102,15,58,223,200,54 | 3446 DB 102,15,58,223,200,54 |
3225 call $L$key_expansion_128 | 3447 call $L$key_expansion_128 |
3226 movups XMMWORD[rax],xmm0 | 3448 movups XMMWORD[rax],xmm0 |
3227 mov DWORD[80+rax],edx | 3449 mov DWORD[80+rax],edx |
3228 xor eax,eax | 3450 xor eax,eax |
3229 jmp NEAR $L$enc_key_ret | 3451 jmp NEAR $L$enc_key_ret |
3230 | 3452 |
3231 ALIGN 16 | 3453 ALIGN 16 |
| 3454 $L$10rounds_alt: |
| 3455 movdqa xmm5,XMMWORD[$L$key_rotate] |
| 3456 mov r10d,8 |
| 3457 movdqa xmm4,XMMWORD[$L$key_rcon1] |
| 3458 movdqa xmm2,xmm0 |
| 3459 movdqu XMMWORD[r8],xmm0 |
| 3460 jmp NEAR $L$oop_key128 |
| 3461 |
| 3462 ALIGN 16 |
| 3463 $L$oop_key128: |
| 3464 DB 102,15,56,0,197 |
| 3465 DB 102,15,56,221,196 |
| 3466 pslld xmm4,1 |
| 3467 lea rax,[16+rax] |
| 3468 |
| 3469 movdqa xmm3,xmm2 |
| 3470 pslldq xmm2,4 |
| 3471 pxor xmm3,xmm2 |
| 3472 pslldq xmm2,4 |
| 3473 pxor xmm3,xmm2 |
| 3474 pslldq xmm2,4 |
| 3475 pxor xmm2,xmm3 |
| 3476 |
| 3477 pxor xmm0,xmm2 |
| 3478 movdqu XMMWORD[(-16)+rax],xmm0 |
| 3479 movdqa xmm2,xmm0 |
| 3480 |
| 3481 dec r10d |
| 3482 jnz NEAR $L$oop_key128 |
| 3483 |
| 3484 movdqa xmm4,XMMWORD[$L$key_rcon1b] |
| 3485 |
| 3486 DB 102,15,56,0,197 |
| 3487 DB 102,15,56,221,196 |
| 3488 pslld xmm4,1 |
| 3489 |
| 3490 movdqa xmm3,xmm2 |
| 3491 pslldq xmm2,4 |
| 3492 pxor xmm3,xmm2 |
| 3493 pslldq xmm2,4 |
| 3494 pxor xmm3,xmm2 |
| 3495 pslldq xmm2,4 |
| 3496 pxor xmm2,xmm3 |
| 3497 |
| 3498 pxor xmm0,xmm2 |
| 3499 movdqu XMMWORD[rax],xmm0 |
| 3500 |
| 3501 movdqa xmm2,xmm0 |
| 3502 DB 102,15,56,0,197 |
| 3503 DB 102,15,56,221,196 |
| 3504 |
| 3505 movdqa xmm3,xmm2 |
| 3506 pslldq xmm2,4 |
| 3507 pxor xmm3,xmm2 |
| 3508 pslldq xmm2,4 |
| 3509 pxor xmm3,xmm2 |
| 3510 pslldq xmm2,4 |
| 3511 pxor xmm2,xmm3 |
| 3512 |
| 3513 pxor xmm0,xmm2 |
| 3514 movdqu XMMWORD[16+rax],xmm0 |
| 3515 |
| 3516 mov DWORD[96+rax],edx |
| 3517 xor eax,eax |
| 3518 jmp NEAR $L$enc_key_ret |
| 3519 |
| 3520 ALIGN 16 |
3232 $L$12rounds: | 3521 $L$12rounds: |
3233 movq xmm2,QWORD[16+rcx] | 3522 movq xmm2,QWORD[16+rcx] |
3234 mov edx,11 | 3523 mov edx,11 |
| 3524 cmp r10d,268435456 |
| 3525 je NEAR $L$12rounds_alt |
| 3526 |
3235 movups XMMWORD[r8],xmm0 | 3527 movups XMMWORD[r8],xmm0 |
3236 DB 102,15,58,223,202,1 | 3528 DB 102,15,58,223,202,1 |
3237 call $L$key_expansion_192a_cold | 3529 call $L$key_expansion_192a_cold |
3238 DB 102,15,58,223,202,2 | 3530 DB 102,15,58,223,202,2 |
3239 call $L$key_expansion_192b | 3531 call $L$key_expansion_192b |
3240 DB 102,15,58,223,202,4 | 3532 DB 102,15,58,223,202,4 |
3241 call $L$key_expansion_192a | 3533 call $L$key_expansion_192a |
3242 DB 102,15,58,223,202,8 | 3534 DB 102,15,58,223,202,8 |
3243 call $L$key_expansion_192b | 3535 call $L$key_expansion_192b |
3244 DB 102,15,58,223,202,16 | 3536 DB 102,15,58,223,202,16 |
3245 call $L$key_expansion_192a | 3537 call $L$key_expansion_192a |
3246 DB 102,15,58,223,202,32 | 3538 DB 102,15,58,223,202,32 |
3247 call $L$key_expansion_192b | 3539 call $L$key_expansion_192b |
3248 DB 102,15,58,223,202,64 | 3540 DB 102,15,58,223,202,64 |
3249 call $L$key_expansion_192a | 3541 call $L$key_expansion_192a |
3250 DB 102,15,58,223,202,128 | 3542 DB 102,15,58,223,202,128 |
3251 call $L$key_expansion_192b | 3543 call $L$key_expansion_192b |
3252 movups XMMWORD[rax],xmm0 | 3544 movups XMMWORD[rax],xmm0 |
3253 mov DWORD[48+rax],edx | 3545 mov DWORD[48+rax],edx |
3254 xor rax,rax | 3546 xor rax,rax |
3255 jmp NEAR $L$enc_key_ret | 3547 jmp NEAR $L$enc_key_ret |
3256 | 3548 |
3257 ALIGN 16 | 3549 ALIGN 16 |
| 3550 $L$12rounds_alt: |
| 3551 movdqa xmm5,XMMWORD[$L$key_rotate192] |
| 3552 movdqa xmm4,XMMWORD[$L$key_rcon1] |
| 3553 mov r10d,8 |
| 3554 movdqu XMMWORD[r8],xmm0 |
| 3555 jmp NEAR $L$oop_key192 |
| 3556 |
| 3557 ALIGN 16 |
| 3558 $L$oop_key192: |
| 3559 movq QWORD[rax],xmm2 |
| 3560 movdqa xmm1,xmm2 |
| 3561 DB 102,15,56,0,213 |
| 3562 DB 102,15,56,221,212 |
| 3563 pslld xmm4,1 |
| 3564 lea rax,[24+rax] |
| 3565 |
| 3566 movdqa xmm3,xmm0 |
| 3567 pslldq xmm0,4 |
| 3568 pxor xmm3,xmm0 |
| 3569 pslldq xmm0,4 |
| 3570 pxor xmm3,xmm0 |
| 3571 pslldq xmm0,4 |
| 3572 pxor xmm0,xmm3 |
| 3573 |
| 3574 pshufd xmm3,xmm0,0xff |
| 3575 pxor xmm3,xmm1 |
| 3576 pslldq xmm1,4 |
| 3577 pxor xmm3,xmm1 |
| 3578 |
| 3579 pxor xmm0,xmm2 |
| 3580 pxor xmm2,xmm3 |
| 3581 movdqu XMMWORD[(-16)+rax],xmm0 |
| 3582 |
| 3583 dec r10d |
| 3584 jnz NEAR $L$oop_key192 |
| 3585 |
| 3586 mov DWORD[32+rax],edx |
| 3587 xor eax,eax |
| 3588 jmp NEAR $L$enc_key_ret |
| 3589 |
| 3590 ALIGN 16 |
3258 $L$14rounds: | 3591 $L$14rounds: |
3259 movups xmm2,XMMWORD[16+rcx] | 3592 movups xmm2,XMMWORD[16+rcx] |
3260 mov edx,13 | 3593 mov edx,13 |
3261 lea rax,[16+rax] | 3594 lea rax,[16+rax] |
| 3595 cmp r10d,268435456 |
| 3596 je NEAR $L$14rounds_alt |
| 3597 |
3262 movups XMMWORD[r8],xmm0 | 3598 movups XMMWORD[r8],xmm0 |
3263 movups XMMWORD[16+r8],xmm2 | 3599 movups XMMWORD[16+r8],xmm2 |
3264 DB 102,15,58,223,202,1 | 3600 DB 102,15,58,223,202,1 |
3265 call $L$key_expansion_256a_cold | 3601 call $L$key_expansion_256a_cold |
3266 DB 102,15,58,223,200,1 | 3602 DB 102,15,58,223,200,1 |
3267 call $L$key_expansion_256b | 3603 call $L$key_expansion_256b |
3268 DB 102,15,58,223,202,2 | 3604 DB 102,15,58,223,202,2 |
3269 call $L$key_expansion_256a | 3605 call $L$key_expansion_256a |
3270 DB 102,15,58,223,200,2 | 3606 DB 102,15,58,223,200,2 |
3271 call $L$key_expansion_256b | 3607 call $L$key_expansion_256b |
(...skipping 14 matching lines...) Expand all Loading... |
3286 DB 102,15,58,223,200,32 | 3622 DB 102,15,58,223,200,32 |
3287 call $L$key_expansion_256b | 3623 call $L$key_expansion_256b |
3288 DB 102,15,58,223,202,64 | 3624 DB 102,15,58,223,202,64 |
3289 call $L$key_expansion_256a | 3625 call $L$key_expansion_256a |
3290 movups XMMWORD[rax],xmm0 | 3626 movups XMMWORD[rax],xmm0 |
3291 mov DWORD[16+rax],edx | 3627 mov DWORD[16+rax],edx |
3292 xor rax,rax | 3628 xor rax,rax |
3293 jmp NEAR $L$enc_key_ret | 3629 jmp NEAR $L$enc_key_ret |
3294 | 3630 |
3295 ALIGN 16 | 3631 ALIGN 16 |
| 3632 $L$14rounds_alt: |
| 3633 movdqa xmm5,XMMWORD[$L$key_rotate] |
| 3634 movdqa xmm4,XMMWORD[$L$key_rcon1] |
| 3635 mov r10d,7 |
| 3636 movdqu XMMWORD[r8],xmm0 |
| 3637 movdqa xmm1,xmm2 |
| 3638 movdqu XMMWORD[16+r8],xmm2 |
| 3639 jmp NEAR $L$oop_key256 |
| 3640 |
| 3641 ALIGN 16 |
| 3642 $L$oop_key256: |
| 3643 DB 102,15,56,0,213 |
| 3644 DB 102,15,56,221,212 |
| 3645 |
| 3646 movdqa xmm3,xmm0 |
| 3647 pslldq xmm0,4 |
| 3648 pxor xmm3,xmm0 |
| 3649 pslldq xmm0,4 |
| 3650 pxor xmm3,xmm0 |
| 3651 pslldq xmm0,4 |
| 3652 pxor xmm0,xmm3 |
| 3653 pslld xmm4,1 |
| 3654 |
| 3655 pxor xmm0,xmm2 |
| 3656 movdqu XMMWORD[rax],xmm0 |
| 3657 |
| 3658 dec r10d |
| 3659 jz NEAR $L$done_key256 |
| 3660 |
| 3661 pshufd xmm2,xmm0,0xff |
| 3662 pxor xmm3,xmm3 |
| 3663 DB 102,15,56,221,211 |
| 3664 |
| 3665 movdqa xmm3,xmm1 |
| 3666 pslldq xmm1,4 |
| 3667 pxor xmm3,xmm1 |
| 3668 pslldq xmm1,4 |
| 3669 pxor xmm3,xmm1 |
| 3670 pslldq xmm1,4 |
| 3671 pxor xmm1,xmm3 |
| 3672 |
| 3673 pxor xmm2,xmm1 |
| 3674 movdqu XMMWORD[16+rax],xmm2 |
| 3675 lea rax,[32+rax] |
| 3676 movdqa xmm1,xmm2 |
| 3677 |
| 3678 jmp NEAR $L$oop_key256 |
| 3679 |
| 3680 $L$done_key256: |
| 3681 mov DWORD[16+rax],edx |
| 3682 xor eax,eax |
| 3683 jmp NEAR $L$enc_key_ret |
| 3684 |
| 3685 ALIGN 16 |
3296 $L$bad_keybits: | 3686 $L$bad_keybits: |
3297 mov rax,-2 | 3687 mov rax,-2 |
3298 $L$enc_key_ret: | 3688 $L$enc_key_ret: |
| 3689 pxor xmm0,xmm0 |
| 3690 pxor xmm1,xmm1 |
| 3691 pxor xmm2,xmm2 |
| 3692 pxor xmm3,xmm3 |
| 3693 pxor xmm4,xmm4 |
| 3694 pxor xmm5,xmm5 |
3299 add rsp,8 | 3695 add rsp,8 |
3300 DB 0F3h,0C3h ;repret | 3696 DB 0F3h,0C3h ;repret |
3301 $L$SEH_end_set_encrypt_key: | 3697 $L$SEH_end_set_encrypt_key: |
3302 | 3698 |
3303 ALIGN 16 | 3699 ALIGN 16 |
3304 $L$key_expansion_128: | 3700 $L$key_expansion_128: |
3305 movups XMMWORD[rax],xmm0 | 3701 movups XMMWORD[rax],xmm0 |
3306 lea rax,[16+rax] | 3702 lea rax,[16+rax] |
3307 $L$key_expansion_128_cold: | 3703 $L$key_expansion_128_cold: |
3308 shufps xmm4,xmm0,16 | 3704 shufps xmm4,xmm0,16 |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3374 $L$bswap_mask: | 3770 $L$bswap_mask: |
3375 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 | 3771 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 |
3376 $L$increment32: | 3772 $L$increment32: |
3377 DD 6,6,6,0 | 3773 DD 6,6,6,0 |
3378 $L$increment64: | 3774 $L$increment64: |
3379 DD 1,0,0,0 | 3775 DD 1,0,0,0 |
3380 $L$xts_magic: | 3776 $L$xts_magic: |
3381 DD 0x87,0,1,0 | 3777 DD 0x87,0,1,0 |
3382 $L$increment1: | 3778 $L$increment1: |
3383 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 | 3779 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 |
| 3780 $L$key_rotate: |
| 3781 DD 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d |
| 3782 $L$key_rotate192: |
| 3783 DD 0x04070605,0x04070605,0x04070605,0x04070605 |
| 3784 $L$key_rcon1: |
| 3785 DD 1,1,1,1 |
| 3786 $L$key_rcon1b: |
| 3787 DD 0x1b,0x1b,0x1b,0x1b |
3384 | 3788 |
3385 DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 | 3789 DB 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69 |
3386 DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 | 3790 DB 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83 |
3387 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 | 3791 DB 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115 |
3388 DB 115,108,46,111,114,103,62,0 | 3792 DB 115,108,46,111,114,103,62,0 |
3389 ALIGN 64 | 3793 ALIGN 64 |
3390 EXTERN __imp_RtlVirtualUnwind | 3794 EXTERN __imp_RtlVirtualUnwind |
3391 | 3795 |
3392 ALIGN 16 | 3796 ALIGN 16 |
3393 ecb_ccm64_se_handler: | 3797 ecb_ccm64_se_handler: |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3479 push r12 | 3883 push r12 |
3480 push r13 | 3884 push r13 |
3481 push r14 | 3885 push r14 |
3482 push r15 | 3886 push r15 |
3483 pushfq | 3887 pushfq |
3484 sub rsp,64 | 3888 sub rsp,64 |
3485 | 3889 |
3486 mov rax,QWORD[152+r8] | 3890 mov rax,QWORD[152+r8] |
3487 mov rbx,QWORD[248+r8] | 3891 mov rbx,QWORD[248+r8] |
3488 | 3892 |
3489 » lea» r10,[$L$cbc_decrypt] | 3893 » lea» r10,[$L$cbc_decrypt_bulk] |
3490 cmp rbx,r10 | 3894 cmp rbx,r10 |
3491 jb NEAR $L$common_seh_tail | 3895 jb NEAR $L$common_seh_tail |
3492 | 3896 |
3493 lea r10,[$L$cbc_decrypt_body] | 3897 lea r10,[$L$cbc_decrypt_body] |
3494 cmp rbx,r10 | 3898 cmp rbx,r10 |
3495 jb NEAR $L$restore_cbc_rax | 3899 jb NEAR $L$restore_cbc_rax |
3496 | 3900 |
3497 lea r10,[$L$cbc_ret] | 3901 lea r10,[$L$cbc_ret] |
3498 cmp rbx,r10 | 3902 cmp rbx,r10 |
3499 jae NEAR $L$common_seh_tail | 3903 jae NEAR $L$common_seh_tail |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3614 $L$SEH_info_xts_dec: | 4018 $L$SEH_info_xts_dec: |
3615 DB 9,0,0,0 | 4019 DB 9,0,0,0 |
3616 DD ctr_xts_se_handler wrt ..imagebase | 4020 DD ctr_xts_se_handler wrt ..imagebase |
3617 DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imageb
ase | 4021 DD $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imageb
ase |
3618 $L$SEH_info_cbc: | 4022 $L$SEH_info_cbc: |
3619 DB 9,0,0,0 | 4023 DB 9,0,0,0 |
3620 DD cbc_se_handler wrt ..imagebase | 4024 DD cbc_se_handler wrt ..imagebase |
3621 $L$SEH_info_key: | 4025 $L$SEH_info_key: |
3622 DB 0x01,0x04,0x01,0x00 | 4026 DB 0x01,0x04,0x01,0x00 |
3623 DB 0x04,0x02,0x00,0x00 | 4027 DB 0x04,0x02,0x00,0x00 |
OLD | NEW |