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