Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/aes/bsaes-x86_64.asm

Issue 693893006: Roll BoringSSL. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@nasm
Patch Set: roll further Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 OPTION» DOTNAME 1 default»rel
2 .text$» SEGMENT ALIGN(256) 'CODE' 2 %define XMMWORD
3 %define YMMWORD
4 %define ZMMWORD
5 section».text code align=64
3 6
4 EXTERN» asm_AES_encrypt:NEAR 7
5 EXTERN» asm_AES_decrypt:NEAR 8 EXTERN» asm_AES_encrypt
9 EXTERN» asm_AES_decrypt
6 10
7 11
8 ALIGN 64 12 ALIGN 64
9 _bsaes_encrypt8»PROC PRIVATE 13 _bsaes_encrypt8:
10 » lea» r11,QWORD PTR[$L$BS0] 14 » lea» r11,[$L$BS0]
11 15
12 » movdqa» xmm8,XMMWORD PTR[rax] 16 » movdqa» xmm8,XMMWORD[rax]
13 » lea» rax,QWORD PTR[16+rax] 17 » lea» rax,[16+rax]
14 » movdqa» xmm7,XMMWORD PTR[80+r11] 18 » movdqa» xmm7,XMMWORD[80+r11]
15 pxor xmm15,xmm8 19 pxor xmm15,xmm8
16 pxor xmm0,xmm8 20 pxor xmm0,xmm8
17 pxor xmm1,xmm8 21 pxor xmm1,xmm8
18 pxor xmm2,xmm8 22 pxor xmm2,xmm8
19 DB 102,68,15,56,0,255 23 DB 102,68,15,56,0,255
20 DB 102,15,56,0,199 24 DB 102,15,56,0,199
21 pxor xmm3,xmm8 25 pxor xmm3,xmm8
22 pxor xmm4,xmm8 26 pxor xmm4,xmm8
23 DB 102,15,56,0,207 27 DB 102,15,56,0,207
24 DB 102,15,56,0,215 28 DB 102,15,56,0,215
25 pxor xmm5,xmm8 29 pxor xmm5,xmm8
26 pxor xmm6,xmm8 30 pxor xmm6,xmm8
27 DB 102,15,56,0,223 31 DB 102,15,56,0,223
28 DB 102,15,56,0,231 32 DB 102,15,56,0,231
29 DB 102,15,56,0,239 33 DB 102,15,56,0,239
30 DB 102,15,56,0,247 34 DB 102,15,56,0,247
31 _bsaes_encrypt8_bitslice:: 35 _bsaes_encrypt8_bitslice:
32 » movdqa» xmm7,XMMWORD PTR[r11] 36 » movdqa» xmm7,XMMWORD[r11]
33 » movdqa» xmm8,XMMWORD PTR[16+r11] 37 » movdqa» xmm8,XMMWORD[16+r11]
34 movdqa xmm9,xmm5 38 movdqa xmm9,xmm5
35 psrlq xmm5,1 39 psrlq xmm5,1
36 movdqa xmm10,xmm3 40 movdqa xmm10,xmm3
37 psrlq xmm3,1 41 psrlq xmm3,1
38 pxor xmm5,xmm6 42 pxor xmm5,xmm6
39 pxor xmm3,xmm4 43 pxor xmm3,xmm4
40 pand xmm5,xmm7 44 pand xmm5,xmm7
41 pand xmm3,xmm7 45 pand xmm3,xmm7
42 pxor xmm6,xmm5 46 pxor xmm6,xmm5
43 psllq xmm5,1 47 psllq xmm5,1
44 pxor xmm4,xmm3 48 pxor xmm4,xmm3
45 psllq xmm3,1 49 psllq xmm3,1
46 pxor xmm5,xmm9 50 pxor xmm5,xmm9
47 pxor xmm3,xmm10 51 pxor xmm3,xmm10
48 movdqa xmm9,xmm1 52 movdqa xmm9,xmm1
49 psrlq xmm1,1 53 psrlq xmm1,1
50 movdqa xmm10,xmm15 54 movdqa xmm10,xmm15
51 psrlq xmm15,1 55 psrlq xmm15,1
52 pxor xmm1,xmm2 56 pxor xmm1,xmm2
53 pxor xmm15,xmm0 57 pxor xmm15,xmm0
54 pand xmm1,xmm7 58 pand xmm1,xmm7
55 pand xmm15,xmm7 59 pand xmm15,xmm7
56 pxor xmm2,xmm1 60 pxor xmm2,xmm1
57 psllq xmm1,1 61 psllq xmm1,1
58 pxor xmm0,xmm15 62 pxor xmm0,xmm15
59 psllq xmm15,1 63 psllq xmm15,1
60 pxor xmm1,xmm9 64 pxor xmm1,xmm9
61 pxor xmm15,xmm10 65 pxor xmm15,xmm10
62 » movdqa» xmm7,XMMWORD PTR[32+r11] 66 » movdqa» xmm7,XMMWORD[32+r11]
63 movdqa xmm9,xmm4 67 movdqa xmm9,xmm4
64 psrlq xmm4,2 68 psrlq xmm4,2
65 movdqa xmm10,xmm3 69 movdqa xmm10,xmm3
66 psrlq xmm3,2 70 psrlq xmm3,2
67 pxor xmm4,xmm6 71 pxor xmm4,xmm6
68 pxor xmm3,xmm5 72 pxor xmm3,xmm5
69 pand xmm4,xmm8 73 pand xmm4,xmm8
70 pand xmm3,xmm8 74 pand xmm3,xmm8
71 pxor xmm6,xmm4 75 pxor xmm6,xmm4
72 psllq xmm4,2 76 psllq xmm4,2
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 pxor xmm15,xmm3 114 pxor xmm15,xmm3
111 pand xmm0,xmm7 115 pand xmm0,xmm7
112 pand xmm15,xmm7 116 pand xmm15,xmm7
113 pxor xmm4,xmm0 117 pxor xmm4,xmm0
114 psllq xmm0,4 118 psllq xmm0,4
115 pxor xmm3,xmm15 119 pxor xmm3,xmm15
116 psllq xmm15,4 120 psllq xmm15,4
117 pxor xmm0,xmm9 121 pxor xmm0,xmm9
118 pxor xmm15,xmm10 122 pxor xmm15,xmm10
119 dec r10d 123 dec r10d
120 » jmp» $L$enc_sbox 124 » jmp» NEAR $L$enc_sbox
121 ALIGN 16 125 ALIGN 16
122 $L$enc_loop:: 126 $L$enc_loop:
123 » pxor» xmm15,XMMWORD PTR[rax] 127 » pxor» xmm15,XMMWORD[rax]
124 » pxor» xmm0,XMMWORD PTR[16+rax] 128 » pxor» xmm0,XMMWORD[16+rax]
125 » pxor» xmm1,XMMWORD PTR[32+rax] 129 » pxor» xmm1,XMMWORD[32+rax]
126 » pxor» xmm2,XMMWORD PTR[48+rax] 130 » pxor» xmm2,XMMWORD[48+rax]
127 DB 102,68,15,56,0,255 131 DB 102,68,15,56,0,255
128 DB 102,15,56,0,199 132 DB 102,15,56,0,199
129 » pxor» xmm3,XMMWORD PTR[64+rax] 133 » pxor» xmm3,XMMWORD[64+rax]
130 » pxor» xmm4,XMMWORD PTR[80+rax] 134 » pxor» xmm4,XMMWORD[80+rax]
131 DB 102,15,56,0,207 135 DB 102,15,56,0,207
132 DB 102,15,56,0,215 136 DB 102,15,56,0,215
133 » pxor» xmm5,XMMWORD PTR[96+rax] 137 » pxor» xmm5,XMMWORD[96+rax]
134 » pxor» xmm6,XMMWORD PTR[112+rax] 138 » pxor» xmm6,XMMWORD[112+rax]
135 DB 102,15,56,0,223 139 DB 102,15,56,0,223
136 DB 102,15,56,0,231 140 DB 102,15,56,0,231
137 DB 102,15,56,0,239 141 DB 102,15,56,0,239
138 DB 102,15,56,0,247 142 DB 102,15,56,0,247
139 » lea» rax,QWORD PTR[128+rax] 143 » lea» rax,[128+rax]
140 $L$enc_sbox:: 144 $L$enc_sbox:
141 pxor xmm4,xmm5 145 pxor xmm4,xmm5
142 pxor xmm1,xmm0 146 pxor xmm1,xmm0
143 pxor xmm2,xmm15 147 pxor xmm2,xmm15
144 pxor xmm5,xmm1 148 pxor xmm5,xmm1
145 pxor xmm4,xmm15 149 pxor xmm4,xmm15
146 150
147 pxor xmm5,xmm2 151 pxor xmm5,xmm2
148 pxor xmm2,xmm6 152 pxor xmm2,xmm6
149 pxor xmm6,xmm4 153 pxor xmm6,xmm4
150 pxor xmm2,xmm3 154 pxor xmm2,xmm3
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
317 pxor xmm15,xmm0 321 pxor xmm15,xmm0
318 322
319 pxor xmm0,xmm4 323 pxor xmm0,xmm4
320 pxor xmm4,xmm1 324 pxor xmm4,xmm1
321 pxor xmm1,xmm2 325 pxor xmm1,xmm2
322 pxor xmm2,xmm4 326 pxor xmm2,xmm4
323 pxor xmm3,xmm4 327 pxor xmm3,xmm4
324 328
325 pxor xmm5,xmm2 329 pxor xmm5,xmm2
326 dec r10d 330 dec r10d
327 » jl» $L$enc_done 331 » jl» NEAR $L$enc_done
328 » pshufd» xmm7,xmm15,093h 332 » pshufd» xmm7,xmm15,0x93
329 » pshufd» xmm8,xmm0,093h 333 » pshufd» xmm8,xmm0,0x93
330 pxor xmm15,xmm7 334 pxor xmm15,xmm7
331 » pshufd» xmm9,xmm3,093h 335 » pshufd» xmm9,xmm3,0x93
332 pxor xmm0,xmm8 336 pxor xmm0,xmm8
333 » pshufd» xmm10,xmm5,093h 337 » pshufd» xmm10,xmm5,0x93
334 pxor xmm3,xmm9 338 pxor xmm3,xmm9
335 » pshufd» xmm11,xmm2,093h 339 » pshufd» xmm11,xmm2,0x93
336 pxor xmm5,xmm10 340 pxor xmm5,xmm10
337 » pshufd» xmm12,xmm6,093h 341 » pshufd» xmm12,xmm6,0x93
338 pxor xmm2,xmm11 342 pxor xmm2,xmm11
339 » pshufd» xmm13,xmm1,093h 343 » pshufd» xmm13,xmm1,0x93
340 pxor xmm6,xmm12 344 pxor xmm6,xmm12
341 » pshufd» xmm14,xmm4,093h 345 » pshufd» xmm14,xmm4,0x93
342 pxor xmm1,xmm13 346 pxor xmm1,xmm13
343 pxor xmm4,xmm14 347 pxor xmm4,xmm14
344 348
345 pxor xmm8,xmm15 349 pxor xmm8,xmm15
346 pxor xmm7,xmm4 350 pxor xmm7,xmm4
347 pxor xmm8,xmm4 351 pxor xmm8,xmm4
348 » pshufd» xmm15,xmm15,04Eh 352 » pshufd» xmm15,xmm15,0x4E
349 pxor xmm9,xmm0 353 pxor xmm9,xmm0
350 » pshufd» xmm0,xmm0,04Eh 354 » pshufd» xmm0,xmm0,0x4E
351 pxor xmm12,xmm2 355 pxor xmm12,xmm2
352 pxor xmm15,xmm7 356 pxor xmm15,xmm7
353 pxor xmm13,xmm6 357 pxor xmm13,xmm6
354 pxor xmm0,xmm8 358 pxor xmm0,xmm8
355 pxor xmm11,xmm5 359 pxor xmm11,xmm5
356 » pshufd» xmm7,xmm2,04Eh 360 » pshufd» xmm7,xmm2,0x4E
357 pxor xmm14,xmm1 361 pxor xmm14,xmm1
358 » pshufd» xmm8,xmm6,04Eh 362 » pshufd» xmm8,xmm6,0x4E
359 pxor xmm10,xmm3 363 pxor xmm10,xmm3
360 » pshufd» xmm2,xmm5,04Eh 364 » pshufd» xmm2,xmm5,0x4E
361 pxor xmm10,xmm4 365 pxor xmm10,xmm4
362 » pshufd» xmm6,xmm4,04Eh 366 » pshufd» xmm6,xmm4,0x4E
363 pxor xmm11,xmm4 367 pxor xmm11,xmm4
364 » pshufd» xmm5,xmm1,04Eh 368 » pshufd» xmm5,xmm1,0x4E
365 pxor xmm7,xmm11 369 pxor xmm7,xmm11
366 » pshufd» xmm1,xmm3,04Eh 370 » pshufd» xmm1,xmm3,0x4E
367 pxor xmm8,xmm12 371 pxor xmm8,xmm12
368 pxor xmm2,xmm10 372 pxor xmm2,xmm10
369 pxor xmm6,xmm14 373 pxor xmm6,xmm14
370 pxor xmm5,xmm13 374 pxor xmm5,xmm13
371 movdqa xmm3,xmm7 375 movdqa xmm3,xmm7
372 pxor xmm1,xmm9 376 pxor xmm1,xmm9
373 movdqa xmm4,xmm8 377 movdqa xmm4,xmm8
374 » movdqa» xmm7,XMMWORD PTR[48+r11] 378 » movdqa» xmm7,XMMWORD[48+r11]
375 » jnz» $L$enc_loop 379 » jnz» NEAR $L$enc_loop
376 » movdqa» xmm7,XMMWORD PTR[64+r11] 380 » movdqa» xmm7,XMMWORD[64+r11]
377 » jmp» $L$enc_loop 381 » jmp» NEAR $L$enc_loop
378 ALIGN 16 382 ALIGN 16
379 $L$enc_done:: 383 $L$enc_done:
380 » movdqa» xmm7,XMMWORD PTR[r11] 384 » movdqa» xmm7,XMMWORD[r11]
381 » movdqa» xmm8,XMMWORD PTR[16+r11] 385 » movdqa» xmm8,XMMWORD[16+r11]
382 movdqa xmm9,xmm1 386 movdqa xmm9,xmm1
383 psrlq xmm1,1 387 psrlq xmm1,1
384 movdqa xmm10,xmm2 388 movdqa xmm10,xmm2
385 psrlq xmm2,1 389 psrlq xmm2,1
386 pxor xmm1,xmm4 390 pxor xmm1,xmm4
387 pxor xmm2,xmm6 391 pxor xmm2,xmm6
388 pand xmm1,xmm7 392 pand xmm1,xmm7
389 pand xmm2,xmm7 393 pand xmm2,xmm7
390 pxor xmm4,xmm1 394 pxor xmm4,xmm1
391 psllq xmm1,1 395 psllq xmm1,1
392 pxor xmm6,xmm2 396 pxor xmm6,xmm2
393 psllq xmm2,1 397 psllq xmm2,1
394 pxor xmm1,xmm9 398 pxor xmm1,xmm9
395 pxor xmm2,xmm10 399 pxor xmm2,xmm10
396 movdqa xmm9,xmm3 400 movdqa xmm9,xmm3
397 psrlq xmm3,1 401 psrlq xmm3,1
398 movdqa xmm10,xmm15 402 movdqa xmm10,xmm15
399 psrlq xmm15,1 403 psrlq xmm15,1
400 pxor xmm3,xmm5 404 pxor xmm3,xmm5
401 pxor xmm15,xmm0 405 pxor xmm15,xmm0
402 pand xmm3,xmm7 406 pand xmm3,xmm7
403 pand xmm15,xmm7 407 pand xmm15,xmm7
404 pxor xmm5,xmm3 408 pxor xmm5,xmm3
405 psllq xmm3,1 409 psllq xmm3,1
406 pxor xmm0,xmm15 410 pxor xmm0,xmm15
407 psllq xmm15,1 411 psllq xmm15,1
408 pxor xmm3,xmm9 412 pxor xmm3,xmm9
409 pxor xmm15,xmm10 413 pxor xmm15,xmm10
410 » movdqa» xmm7,XMMWORD PTR[32+r11] 414 » movdqa» xmm7,XMMWORD[32+r11]
411 movdqa xmm9,xmm6 415 movdqa xmm9,xmm6
412 psrlq xmm6,2 416 psrlq xmm6,2
413 movdqa xmm10,xmm2 417 movdqa xmm10,xmm2
414 psrlq xmm2,2 418 psrlq xmm2,2
415 pxor xmm6,xmm4 419 pxor xmm6,xmm4
416 pxor xmm2,xmm1 420 pxor xmm2,xmm1
417 pand xmm6,xmm8 421 pand xmm6,xmm8
418 pand xmm2,xmm8 422 pand xmm2,xmm8
419 pxor xmm4,xmm6 423 pxor xmm4,xmm6
420 psllq xmm6,2 424 psllq xmm6,2
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
457 pxor xmm0,xmm6 461 pxor xmm0,xmm6
458 pxor xmm15,xmm2 462 pxor xmm15,xmm2
459 pand xmm0,xmm7 463 pand xmm0,xmm7
460 pand xmm15,xmm7 464 pand xmm15,xmm7
461 pxor xmm6,xmm0 465 pxor xmm6,xmm0
462 psllq xmm0,4 466 psllq xmm0,4
463 pxor xmm2,xmm15 467 pxor xmm2,xmm15
464 psllq xmm15,4 468 psllq xmm15,4
465 pxor xmm0,xmm9 469 pxor xmm0,xmm9
466 pxor xmm15,xmm10 470 pxor xmm15,xmm10
467 » movdqa» xmm7,XMMWORD PTR[rax] 471 » movdqa» xmm7,XMMWORD[rax]
468 pxor xmm3,xmm7 472 pxor xmm3,xmm7
469 pxor xmm5,xmm7 473 pxor xmm5,xmm7
470 pxor xmm2,xmm7 474 pxor xmm2,xmm7
471 pxor xmm6,xmm7 475 pxor xmm6,xmm7
472 pxor xmm1,xmm7 476 pxor xmm1,xmm7
473 pxor xmm4,xmm7 477 pxor xmm4,xmm7
474 pxor xmm15,xmm7 478 pxor xmm15,xmm7
475 pxor xmm0,xmm7 479 pxor xmm0,xmm7
476 DB 0F3h,0C3h ;repret 480 DB 0F3h,0C3h ;repret
477 _bsaes_encrypt8»ENDP 481
478 482
479 483
480 ALIGN 64 484 ALIGN 64
481 _bsaes_decrypt8»PROC PRIVATE 485 _bsaes_decrypt8:
482 » lea» r11,QWORD PTR[$L$BS0] 486 » lea» r11,[$L$BS0]
483 487
484 » movdqa» xmm8,XMMWORD PTR[rax] 488 » movdqa» xmm8,XMMWORD[rax]
485 » lea» rax,QWORD PTR[16+rax] 489 » lea» rax,[16+rax]
486 » movdqa» xmm7,XMMWORD PTR[((-48))+r11] 490 » movdqa» xmm7,XMMWORD[((-48))+r11]
487 pxor xmm15,xmm8 491 pxor xmm15,xmm8
488 pxor xmm0,xmm8 492 pxor xmm0,xmm8
489 pxor xmm1,xmm8 493 pxor xmm1,xmm8
490 pxor xmm2,xmm8 494 pxor xmm2,xmm8
491 DB 102,68,15,56,0,255 495 DB 102,68,15,56,0,255
492 DB 102,15,56,0,199 496 DB 102,15,56,0,199
493 pxor xmm3,xmm8 497 pxor xmm3,xmm8
494 pxor xmm4,xmm8 498 pxor xmm4,xmm8
495 DB 102,15,56,0,207 499 DB 102,15,56,0,207
496 DB 102,15,56,0,215 500 DB 102,15,56,0,215
497 pxor xmm5,xmm8 501 pxor xmm5,xmm8
498 pxor xmm6,xmm8 502 pxor xmm6,xmm8
499 DB 102,15,56,0,223 503 DB 102,15,56,0,223
500 DB 102,15,56,0,231 504 DB 102,15,56,0,231
501 DB 102,15,56,0,239 505 DB 102,15,56,0,239
502 DB 102,15,56,0,247 506 DB 102,15,56,0,247
503 » movdqa» xmm7,XMMWORD PTR[r11] 507 » movdqa» xmm7,XMMWORD[r11]
504 » movdqa» xmm8,XMMWORD PTR[16+r11] 508 » movdqa» xmm8,XMMWORD[16+r11]
505 movdqa xmm9,xmm5 509 movdqa xmm9,xmm5
506 psrlq xmm5,1 510 psrlq xmm5,1
507 movdqa xmm10,xmm3 511 movdqa xmm10,xmm3
508 psrlq xmm3,1 512 psrlq xmm3,1
509 pxor xmm5,xmm6 513 pxor xmm5,xmm6
510 pxor xmm3,xmm4 514 pxor xmm3,xmm4
511 pand xmm5,xmm7 515 pand xmm5,xmm7
512 pand xmm3,xmm7 516 pand xmm3,xmm7
513 pxor xmm6,xmm5 517 pxor xmm6,xmm5
514 psllq xmm5,1 518 psllq xmm5,1
515 pxor xmm4,xmm3 519 pxor xmm4,xmm3
516 psllq xmm3,1 520 psllq xmm3,1
517 pxor xmm5,xmm9 521 pxor xmm5,xmm9
518 pxor xmm3,xmm10 522 pxor xmm3,xmm10
519 movdqa xmm9,xmm1 523 movdqa xmm9,xmm1
520 psrlq xmm1,1 524 psrlq xmm1,1
521 movdqa xmm10,xmm15 525 movdqa xmm10,xmm15
522 psrlq xmm15,1 526 psrlq xmm15,1
523 pxor xmm1,xmm2 527 pxor xmm1,xmm2
524 pxor xmm15,xmm0 528 pxor xmm15,xmm0
525 pand xmm1,xmm7 529 pand xmm1,xmm7
526 pand xmm15,xmm7 530 pand xmm15,xmm7
527 pxor xmm2,xmm1 531 pxor xmm2,xmm1
528 psllq xmm1,1 532 psllq xmm1,1
529 pxor xmm0,xmm15 533 pxor xmm0,xmm15
530 psllq xmm15,1 534 psllq xmm15,1
531 pxor xmm1,xmm9 535 pxor xmm1,xmm9
532 pxor xmm15,xmm10 536 pxor xmm15,xmm10
533 » movdqa» xmm7,XMMWORD PTR[32+r11] 537 » movdqa» xmm7,XMMWORD[32+r11]
534 movdqa xmm9,xmm4 538 movdqa xmm9,xmm4
535 psrlq xmm4,2 539 psrlq xmm4,2
536 movdqa xmm10,xmm3 540 movdqa xmm10,xmm3
537 psrlq xmm3,2 541 psrlq xmm3,2
538 pxor xmm4,xmm6 542 pxor xmm4,xmm6
539 pxor xmm3,xmm5 543 pxor xmm3,xmm5
540 pand xmm4,xmm8 544 pand xmm4,xmm8
541 pand xmm3,xmm8 545 pand xmm3,xmm8
542 pxor xmm6,xmm4 546 pxor xmm6,xmm4
543 psllq xmm4,2 547 psllq xmm4,2
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 pxor xmm15,xmm3 585 pxor xmm15,xmm3
582 pand xmm0,xmm7 586 pand xmm0,xmm7
583 pand xmm15,xmm7 587 pand xmm15,xmm7
584 pxor xmm4,xmm0 588 pxor xmm4,xmm0
585 psllq xmm0,4 589 psllq xmm0,4
586 pxor xmm3,xmm15 590 pxor xmm3,xmm15
587 psllq xmm15,4 591 psllq xmm15,4
588 pxor xmm0,xmm9 592 pxor xmm0,xmm9
589 pxor xmm15,xmm10 593 pxor xmm15,xmm10
590 dec r10d 594 dec r10d
591 » jmp» $L$dec_sbox 595 » jmp» NEAR $L$dec_sbox
592 ALIGN 16 596 ALIGN 16
593 $L$dec_loop:: 597 $L$dec_loop:
594 » pxor» xmm15,XMMWORD PTR[rax] 598 » pxor» xmm15,XMMWORD[rax]
595 » pxor» xmm0,XMMWORD PTR[16+rax] 599 » pxor» xmm0,XMMWORD[16+rax]
596 » pxor» xmm1,XMMWORD PTR[32+rax] 600 » pxor» xmm1,XMMWORD[32+rax]
597 » pxor» xmm2,XMMWORD PTR[48+rax] 601 » pxor» xmm2,XMMWORD[48+rax]
598 DB 102,68,15,56,0,255 602 DB 102,68,15,56,0,255
599 DB 102,15,56,0,199 603 DB 102,15,56,0,199
600 » pxor» xmm3,XMMWORD PTR[64+rax] 604 » pxor» xmm3,XMMWORD[64+rax]
601 » pxor» xmm4,XMMWORD PTR[80+rax] 605 » pxor» xmm4,XMMWORD[80+rax]
602 DB 102,15,56,0,207 606 DB 102,15,56,0,207
603 DB 102,15,56,0,215 607 DB 102,15,56,0,215
604 » pxor» xmm5,XMMWORD PTR[96+rax] 608 » pxor» xmm5,XMMWORD[96+rax]
605 » pxor» xmm6,XMMWORD PTR[112+rax] 609 » pxor» xmm6,XMMWORD[112+rax]
606 DB 102,15,56,0,223 610 DB 102,15,56,0,223
607 DB 102,15,56,0,231 611 DB 102,15,56,0,231
608 DB 102,15,56,0,239 612 DB 102,15,56,0,239
609 DB 102,15,56,0,247 613 DB 102,15,56,0,247
610 » lea» rax,QWORD PTR[128+rax] 614 » lea» rax,[128+rax]
611 $L$dec_sbox:: 615 $L$dec_sbox:
612 pxor xmm2,xmm3 616 pxor xmm2,xmm3
613 617
614 pxor xmm3,xmm6 618 pxor xmm3,xmm6
615 pxor xmm1,xmm6 619 pxor xmm1,xmm6
616 pxor xmm5,xmm3 620 pxor xmm5,xmm3
617 pxor xmm6,xmm5 621 pxor xmm6,xmm5
618 pxor xmm0,xmm6 622 pxor xmm0,xmm6
619 623
620 pxor xmm15,xmm0 624 pxor xmm15,xmm0
621 pxor xmm1,xmm4 625 pxor xmm1,xmm4
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 pxor xmm3,xmm1 792 pxor xmm3,xmm1
789 pxor xmm6,xmm15 793 pxor xmm6,xmm15
790 pxor xmm3,xmm4 794 pxor xmm3,xmm4
791 pxor xmm2,xmm5 795 pxor xmm2,xmm5
792 pxor xmm5,xmm0 796 pxor xmm5,xmm0
793 pxor xmm2,xmm3 797 pxor xmm2,xmm3
794 798
795 pxor xmm3,xmm15 799 pxor xmm3,xmm15
796 pxor xmm6,xmm2 800 pxor xmm6,xmm2
797 dec r10d 801 dec r10d
798 » jl» $L$dec_done 802 » jl» NEAR $L$dec_done
799 803
800 » pshufd» xmm7,xmm15,04Eh 804 » pshufd» xmm7,xmm15,0x4E
801 » pshufd» xmm13,xmm2,04Eh 805 » pshufd» xmm13,xmm2,0x4E
802 pxor xmm7,xmm15 806 pxor xmm7,xmm15
803 » pshufd» xmm14,xmm4,04Eh 807 » pshufd» xmm14,xmm4,0x4E
804 pxor xmm13,xmm2 808 pxor xmm13,xmm2
805 » pshufd» xmm8,xmm0,04Eh 809 » pshufd» xmm8,xmm0,0x4E
806 pxor xmm14,xmm4 810 pxor xmm14,xmm4
807 » pshufd» xmm9,xmm5,04Eh 811 » pshufd» xmm9,xmm5,0x4E
808 pxor xmm8,xmm0 812 pxor xmm8,xmm0
809 » pshufd» xmm10,xmm3,04Eh 813 » pshufd» xmm10,xmm3,0x4E
810 pxor xmm9,xmm5 814 pxor xmm9,xmm5
811 pxor xmm15,xmm13 815 pxor xmm15,xmm13
812 pxor xmm0,xmm13 816 pxor xmm0,xmm13
813 » pshufd» xmm11,xmm1,04Eh 817 » pshufd» xmm11,xmm1,0x4E
814 pxor xmm10,xmm3 818 pxor xmm10,xmm3
815 pxor xmm5,xmm7 819 pxor xmm5,xmm7
816 pxor xmm3,xmm8 820 pxor xmm3,xmm8
817 » pshufd» xmm12,xmm6,04Eh 821 » pshufd» xmm12,xmm6,0x4E
818 pxor xmm11,xmm1 822 pxor xmm11,xmm1
819 pxor xmm0,xmm14 823 pxor xmm0,xmm14
820 pxor xmm1,xmm9 824 pxor xmm1,xmm9
821 pxor xmm12,xmm6 825 pxor xmm12,xmm6
822 826
823 pxor xmm5,xmm14 827 pxor xmm5,xmm14
824 pxor xmm3,xmm13 828 pxor xmm3,xmm13
825 pxor xmm1,xmm13 829 pxor xmm1,xmm13
826 pxor xmm6,xmm10 830 pxor xmm6,xmm10
827 pxor xmm2,xmm11 831 pxor xmm2,xmm11
828 pxor xmm1,xmm14 832 pxor xmm1,xmm14
829 pxor xmm6,xmm14 833 pxor xmm6,xmm14
830 pxor xmm4,xmm12 834 pxor xmm4,xmm12
831 » pshufd» xmm7,xmm15,093h 835 » pshufd» xmm7,xmm15,0x93
832 » pshufd» xmm8,xmm0,093h 836 » pshufd» xmm8,xmm0,0x93
833 pxor xmm15,xmm7 837 pxor xmm15,xmm7
834 » pshufd» xmm9,xmm5,093h 838 » pshufd» xmm9,xmm5,0x93
835 pxor xmm0,xmm8 839 pxor xmm0,xmm8
836 » pshufd» xmm10,xmm3,093h 840 » pshufd» xmm10,xmm3,0x93
837 pxor xmm5,xmm9 841 pxor xmm5,xmm9
838 » pshufd» xmm11,xmm1,093h 842 » pshufd» xmm11,xmm1,0x93
839 pxor xmm3,xmm10 843 pxor xmm3,xmm10
840 » pshufd» xmm12,xmm6,093h 844 » pshufd» xmm12,xmm6,0x93
841 pxor xmm1,xmm11 845 pxor xmm1,xmm11
842 » pshufd» xmm13,xmm2,093h 846 » pshufd» xmm13,xmm2,0x93
843 pxor xmm6,xmm12 847 pxor xmm6,xmm12
844 » pshufd» xmm14,xmm4,093h 848 » pshufd» xmm14,xmm4,0x93
845 pxor xmm2,xmm13 849 pxor xmm2,xmm13
846 pxor xmm4,xmm14 850 pxor xmm4,xmm14
847 851
848 pxor xmm8,xmm15 852 pxor xmm8,xmm15
849 pxor xmm7,xmm4 853 pxor xmm7,xmm4
850 pxor xmm8,xmm4 854 pxor xmm8,xmm4
851 » pshufd» xmm15,xmm15,04Eh 855 » pshufd» xmm15,xmm15,0x4E
852 pxor xmm9,xmm0 856 pxor xmm9,xmm0
853 » pshufd» xmm0,xmm0,04Eh 857 » pshufd» xmm0,xmm0,0x4E
854 pxor xmm12,xmm1 858 pxor xmm12,xmm1
855 pxor xmm15,xmm7 859 pxor xmm15,xmm7
856 pxor xmm13,xmm6 860 pxor xmm13,xmm6
857 pxor xmm0,xmm8 861 pxor xmm0,xmm8
858 pxor xmm11,xmm3 862 pxor xmm11,xmm3
859 » pshufd» xmm7,xmm1,04Eh 863 » pshufd» xmm7,xmm1,0x4E
860 pxor xmm14,xmm2 864 pxor xmm14,xmm2
861 » pshufd» xmm8,xmm6,04Eh 865 » pshufd» xmm8,xmm6,0x4E
862 pxor xmm10,xmm5 866 pxor xmm10,xmm5
863 » pshufd» xmm1,xmm3,04Eh 867 » pshufd» xmm1,xmm3,0x4E
864 pxor xmm10,xmm4 868 pxor xmm10,xmm4
865 » pshufd» xmm6,xmm4,04Eh 869 » pshufd» xmm6,xmm4,0x4E
866 pxor xmm11,xmm4 870 pxor xmm11,xmm4
867 » pshufd» xmm3,xmm2,04Eh 871 » pshufd» xmm3,xmm2,0x4E
868 pxor xmm7,xmm11 872 pxor xmm7,xmm11
869 » pshufd» xmm2,xmm5,04Eh 873 » pshufd» xmm2,xmm5,0x4E
870 pxor xmm8,xmm12 874 pxor xmm8,xmm12
871 pxor xmm10,xmm1 875 pxor xmm10,xmm1
872 pxor xmm6,xmm14 876 pxor xmm6,xmm14
873 pxor xmm13,xmm3 877 pxor xmm13,xmm3
874 movdqa xmm3,xmm7 878 movdqa xmm3,xmm7
875 pxor xmm2,xmm9 879 pxor xmm2,xmm9
876 movdqa xmm5,xmm13 880 movdqa xmm5,xmm13
877 movdqa xmm4,xmm8 881 movdqa xmm4,xmm8
878 movdqa xmm1,xmm2 882 movdqa xmm1,xmm2
879 movdqa xmm2,xmm10 883 movdqa xmm2,xmm10
880 » movdqa» xmm7,XMMWORD PTR[((-16))+r11] 884 » movdqa» xmm7,XMMWORD[((-16))+r11]
881 » jnz» $L$dec_loop 885 » jnz» NEAR $L$dec_loop
882 » movdqa» xmm7,XMMWORD PTR[((-32))+r11] 886 » movdqa» xmm7,XMMWORD[((-32))+r11]
883 » jmp» $L$dec_loop 887 » jmp» NEAR $L$dec_loop
884 ALIGN 16 888 ALIGN 16
885 $L$dec_done:: 889 $L$dec_done:
886 » movdqa» xmm7,XMMWORD PTR[r11] 890 » movdqa» xmm7,XMMWORD[r11]
887 » movdqa» xmm8,XMMWORD PTR[16+r11] 891 » movdqa» xmm8,XMMWORD[16+r11]
888 movdqa xmm9,xmm2 892 movdqa xmm9,xmm2
889 psrlq xmm2,1 893 psrlq xmm2,1
890 movdqa xmm10,xmm1 894 movdqa xmm10,xmm1
891 psrlq xmm1,1 895 psrlq xmm1,1
892 pxor xmm2,xmm4 896 pxor xmm2,xmm4
893 pxor xmm1,xmm6 897 pxor xmm1,xmm6
894 pand xmm2,xmm7 898 pand xmm2,xmm7
895 pand xmm1,xmm7 899 pand xmm1,xmm7
896 pxor xmm4,xmm2 900 pxor xmm4,xmm2
897 psllq xmm2,1 901 psllq xmm2,1
898 pxor xmm6,xmm1 902 pxor xmm6,xmm1
899 psllq xmm1,1 903 psllq xmm1,1
900 pxor xmm2,xmm9 904 pxor xmm2,xmm9
901 pxor xmm1,xmm10 905 pxor xmm1,xmm10
902 movdqa xmm9,xmm5 906 movdqa xmm9,xmm5
903 psrlq xmm5,1 907 psrlq xmm5,1
904 movdqa xmm10,xmm15 908 movdqa xmm10,xmm15
905 psrlq xmm15,1 909 psrlq xmm15,1
906 pxor xmm5,xmm3 910 pxor xmm5,xmm3
907 pxor xmm15,xmm0 911 pxor xmm15,xmm0
908 pand xmm5,xmm7 912 pand xmm5,xmm7
909 pand xmm15,xmm7 913 pand xmm15,xmm7
910 pxor xmm3,xmm5 914 pxor xmm3,xmm5
911 psllq xmm5,1 915 psllq xmm5,1
912 pxor xmm0,xmm15 916 pxor xmm0,xmm15
913 psllq xmm15,1 917 psllq xmm15,1
914 pxor xmm5,xmm9 918 pxor xmm5,xmm9
915 pxor xmm15,xmm10 919 pxor xmm15,xmm10
916 » movdqa» xmm7,XMMWORD PTR[32+r11] 920 » movdqa» xmm7,XMMWORD[32+r11]
917 movdqa xmm9,xmm6 921 movdqa xmm9,xmm6
918 psrlq xmm6,2 922 psrlq xmm6,2
919 movdqa xmm10,xmm1 923 movdqa xmm10,xmm1
920 psrlq xmm1,2 924 psrlq xmm1,2
921 pxor xmm6,xmm4 925 pxor xmm6,xmm4
922 pxor xmm1,xmm2 926 pxor xmm1,xmm2
923 pand xmm6,xmm8 927 pand xmm6,xmm8
924 pand xmm1,xmm8 928 pand xmm1,xmm8
925 pxor xmm4,xmm6 929 pxor xmm4,xmm6
926 psllq xmm6,2 930 psllq xmm6,2
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 pxor xmm0,xmm6 967 pxor xmm0,xmm6
964 pxor xmm15,xmm1 968 pxor xmm15,xmm1
965 pand xmm0,xmm7 969 pand xmm0,xmm7
966 pand xmm15,xmm7 970 pand xmm15,xmm7
967 pxor xmm6,xmm0 971 pxor xmm6,xmm0
968 psllq xmm0,4 972 psllq xmm0,4
969 pxor xmm1,xmm15 973 pxor xmm1,xmm15
970 psllq xmm15,4 974 psllq xmm15,4
971 pxor xmm0,xmm9 975 pxor xmm0,xmm9
972 pxor xmm15,xmm10 976 pxor xmm15,xmm10
973 » movdqa» xmm7,XMMWORD PTR[rax] 977 » movdqa» xmm7,XMMWORD[rax]
974 pxor xmm5,xmm7 978 pxor xmm5,xmm7
975 pxor xmm3,xmm7 979 pxor xmm3,xmm7
976 pxor xmm1,xmm7 980 pxor xmm1,xmm7
977 pxor xmm6,xmm7 981 pxor xmm6,xmm7
978 pxor xmm2,xmm7 982 pxor xmm2,xmm7
979 pxor xmm4,xmm7 983 pxor xmm4,xmm7
980 pxor xmm15,xmm7 984 pxor xmm15,xmm7
981 pxor xmm0,xmm7 985 pxor xmm0,xmm7
982 DB 0F3h,0C3h ;repret 986 DB 0F3h,0C3h ;repret
983 _bsaes_decrypt8»ENDP 987
984 988
985 ALIGN 16 989 ALIGN 16
986 _bsaes_key_convert» PROC PRIVATE 990 _bsaes_key_convert:
987 » lea» r11,QWORD PTR[$L$masks] 991 » lea» r11,[$L$masks]
988 » movdqu» xmm7,XMMWORD PTR[rcx] 992 » movdqu» xmm7,XMMWORD[rcx]
989 » lea» rcx,QWORD PTR[16+rcx] 993 » lea» rcx,[16+rcx]
990 » movdqa» xmm0,XMMWORD PTR[r11] 994 » movdqa» xmm0,XMMWORD[r11]
991 » movdqa» xmm1,XMMWORD PTR[16+r11] 995 » movdqa» xmm1,XMMWORD[16+r11]
992 » movdqa» xmm2,XMMWORD PTR[32+r11] 996 » movdqa» xmm2,XMMWORD[32+r11]
993 » movdqa» xmm3,XMMWORD PTR[48+r11] 997 » movdqa» xmm3,XMMWORD[48+r11]
994 » movdqa» xmm4,XMMWORD PTR[64+r11] 998 » movdqa» xmm4,XMMWORD[64+r11]
995 pcmpeqd xmm5,xmm5 999 pcmpeqd xmm5,xmm5
996 1000
997 » movdqu» xmm6,XMMWORD PTR[rcx] 1001 » movdqu» xmm6,XMMWORD[rcx]
998 » movdqa» XMMWORD PTR[rax],xmm7 1002 » movdqa» XMMWORD[rax],xmm7
999 » lea» rax,QWORD PTR[16+rax] 1003 » lea» rax,[16+rax]
1000 dec r10d 1004 dec r10d
1001 » jmp» $L$key_loop 1005 » jmp» NEAR $L$key_loop
1002 ALIGN 16 1006 ALIGN 16
1003 $L$key_loop:: 1007 $L$key_loop:
1004 DB 102,15,56,0,244 1008 DB 102,15,56,0,244
1005 1009
1006 movdqa xmm8,xmm0 1010 movdqa xmm8,xmm0
1007 movdqa xmm9,xmm1 1011 movdqa xmm9,xmm1
1008 1012
1009 pand xmm8,xmm6 1013 pand xmm8,xmm6
1010 pand xmm9,xmm6 1014 pand xmm9,xmm6
1011 movdqa xmm10,xmm2 1015 movdqa xmm10,xmm2
1012 pcmpeqb xmm8,xmm0 1016 pcmpeqb xmm8,xmm0
1013 psllq xmm0,4 1017 psllq xmm0,4
(...skipping 10 matching lines...) Expand all
1024 pcmpeqb xmm11,xmm3 1028 pcmpeqb xmm11,xmm3
1025 psllq xmm3,4 1029 psllq xmm3,4
1026 1030
1027 movdqa xmm14,xmm2 1031 movdqa xmm14,xmm2
1028 movdqa xmm15,xmm3 1032 movdqa xmm15,xmm3
1029 pxor xmm8,xmm5 1033 pxor xmm8,xmm5
1030 pxor xmm9,xmm5 1034 pxor xmm9,xmm5
1031 1035
1032 pand xmm12,xmm6 1036 pand xmm12,xmm6
1033 pand xmm13,xmm6 1037 pand xmm13,xmm6
1034 » movdqa» XMMWORD PTR[rax],xmm8 1038 » movdqa» XMMWORD[rax],xmm8
1035 pcmpeqb xmm12,xmm0 1039 pcmpeqb xmm12,xmm0
1036 psrlq xmm0,4 1040 psrlq xmm0,4
1037 » movdqa» XMMWORD PTR[16+rax],xmm9 1041 » movdqa» XMMWORD[16+rax],xmm9
1038 pcmpeqb xmm13,xmm1 1042 pcmpeqb xmm13,xmm1
1039 psrlq xmm1,4 1043 psrlq xmm1,4
1040 » lea» rcx,QWORD PTR[16+rcx] 1044 » lea» rcx,[16+rcx]
1041 1045
1042 pand xmm14,xmm6 1046 pand xmm14,xmm6
1043 pand xmm15,xmm6 1047 pand xmm15,xmm6
1044 » movdqa» XMMWORD PTR[32+rax],xmm10 1048 » movdqa» XMMWORD[32+rax],xmm10
1045 pcmpeqb xmm14,xmm2 1049 pcmpeqb xmm14,xmm2
1046 psrlq xmm2,4 1050 psrlq xmm2,4
1047 » movdqa» XMMWORD PTR[48+rax],xmm11 1051 » movdqa» XMMWORD[48+rax],xmm11
1048 pcmpeqb xmm15,xmm3 1052 pcmpeqb xmm15,xmm3
1049 psrlq xmm3,4 1053 psrlq xmm3,4
1050 » movdqu» xmm6,XMMWORD PTR[rcx] 1054 » movdqu» xmm6,XMMWORD[rcx]
1051 1055
1052 pxor xmm13,xmm5 1056 pxor xmm13,xmm5
1053 pxor xmm14,xmm5 1057 pxor xmm14,xmm5
1054 » movdqa» XMMWORD PTR[64+rax],xmm12 1058 » movdqa» XMMWORD[64+rax],xmm12
1055 » movdqa» XMMWORD PTR[80+rax],xmm13 1059 » movdqa» XMMWORD[80+rax],xmm13
1056 » movdqa» XMMWORD PTR[96+rax],xmm14 1060 » movdqa» XMMWORD[96+rax],xmm14
1057 » movdqa» XMMWORD PTR[112+rax],xmm15 1061 » movdqa» XMMWORD[112+rax],xmm15
1058 » lea» rax,QWORD PTR[128+rax] 1062 » lea» rax,[128+rax]
1059 dec r10d 1063 dec r10d
1060 » jnz» $L$key_loop 1064 » jnz» NEAR $L$key_loop
1061 1065
1062 » movdqa» xmm7,XMMWORD PTR[80+r11] 1066 » movdqa» xmm7,XMMWORD[80+r11]
1063 1067
1064 DB 0F3h,0C3h ;repret 1068 DB 0F3h,0C3h ;repret
1065 _bsaes_key_convert» ENDP 1069
1066 EXTERN» asm_AES_cbc_encrypt:NEAR 1070 EXTERN» asm_AES_cbc_encrypt
1067 PUBLIC» bsaes_cbc_encrypt 1071 global» bsaes_cbc_encrypt
1068 1072
1069 ALIGN 16 1073 ALIGN 16
1070 bsaes_cbc_encrypt» PROC PUBLIC 1074 bsaes_cbc_encrypt:
1071 » mov» r11d,DWORD PTR[48+rsp] 1075 » mov» r11d,DWORD[48+rsp]
1072 cmp r11d,0 1076 cmp r11d,0
1073 » jne» asm_AES_cbc_encrypt 1077 » jne» NEAR asm_AES_cbc_encrypt
1074 cmp r8,128 1078 cmp r8,128
1075 » jb» asm_AES_cbc_encrypt 1079 » jb» NEAR asm_AES_cbc_encrypt
1076 1080
1077 mov rax,rsp 1081 mov rax,rsp
1078 $L$cbc_dec_prologue:: 1082 $L$cbc_dec_prologue:
1079 push rbp 1083 push rbp
1080 push rbx 1084 push rbx
1081 push r12 1085 push r12
1082 push r13 1086 push r13
1083 push r14 1087 push r14
1084 push r15 1088 push r15
1085 » lea» rsp,QWORD PTR[((-72))+rsp] 1089 » lea» rsp,[((-72))+rsp]
1086 » mov» r10,QWORD PTR[160+rsp] 1090 » mov» r10,QWORD[160+rsp]
1087 » lea» rsp,QWORD PTR[((-160))+rsp] 1091 » lea» rsp,[((-160))+rsp]
1088 » movaps» XMMWORD PTR[64+rsp],xmm6 1092 » movaps» XMMWORD[64+rsp],xmm6
1089 » movaps» XMMWORD PTR[80+rsp],xmm7 1093 » movaps» XMMWORD[80+rsp],xmm7
1090 » movaps» XMMWORD PTR[96+rsp],xmm8 1094 » movaps» XMMWORD[96+rsp],xmm8
1091 » movaps» XMMWORD PTR[112+rsp],xmm9 1095 » movaps» XMMWORD[112+rsp],xmm9
1092 » movaps» XMMWORD PTR[128+rsp],xmm10 1096 » movaps» XMMWORD[128+rsp],xmm10
1093 » movaps» XMMWORD PTR[144+rsp],xmm11 1097 » movaps» XMMWORD[144+rsp],xmm11
1094 » movaps» XMMWORD PTR[160+rsp],xmm12 1098 » movaps» XMMWORD[160+rsp],xmm12
1095 » movaps» XMMWORD PTR[176+rsp],xmm13 1099 » movaps» XMMWORD[176+rsp],xmm13
1096 » movaps» XMMWORD PTR[192+rsp],xmm14 1100 » movaps» XMMWORD[192+rsp],xmm14
1097 » movaps» XMMWORD PTR[208+rsp],xmm15 1101 » movaps» XMMWORD[208+rsp],xmm15
1098 $L$cbc_dec_body:: 1102 $L$cbc_dec_body:
1099 mov rbp,rsp 1103 mov rbp,rsp
1100 » mov» eax,DWORD PTR[240+r9] 1104 » mov» eax,DWORD[240+r9]
1101 mov r12,rcx 1105 mov r12,rcx
1102 mov r13,rdx 1106 mov r13,rdx
1103 mov r14,r8 1107 mov r14,r8
1104 mov r15,r9 1108 mov r15,r9
1105 mov rbx,r10 1109 mov rbx,r10
1106 shr r14,4 1110 shr r14,4
1107 1111
1108 mov edx,eax 1112 mov edx,eax
1109 shl rax,7 1113 shl rax,7
1110 sub rax,96 1114 sub rax,96
1111 sub rsp,rax 1115 sub rsp,rax
1112 1116
1113 mov rax,rsp 1117 mov rax,rsp
1114 mov rcx,r15 1118 mov rcx,r15
1115 mov r10d,edx 1119 mov r10d,edx
1116 call _bsaes_key_convert 1120 call _bsaes_key_convert
1117 » pxor» xmm7,XMMWORD PTR[rsp] 1121 » pxor» xmm7,XMMWORD[rsp]
1118 » movdqa» XMMWORD PTR[rax],xmm6 1122 » movdqa» XMMWORD[rax],xmm6
1119 » movdqa» XMMWORD PTR[rsp],xmm7 1123 » movdqa» XMMWORD[rsp],xmm7
1120 1124
1121 » movdqu» xmm14,XMMWORD PTR[rbx] 1125 » movdqu» xmm14,XMMWORD[rbx]
1122 sub r14,8 1126 sub r14,8
1123 $L$cbc_dec_loop:: 1127 $L$cbc_dec_loop:
1124 » movdqu» xmm15,XMMWORD PTR[r12] 1128 » movdqu» xmm15,XMMWORD[r12]
1125 » movdqu» xmm0,XMMWORD PTR[16+r12] 1129 » movdqu» xmm0,XMMWORD[16+r12]
1126 » movdqu» xmm1,XMMWORD PTR[32+r12] 1130 » movdqu» xmm1,XMMWORD[32+r12]
1127 » movdqu» xmm2,XMMWORD PTR[48+r12] 1131 » movdqu» xmm2,XMMWORD[48+r12]
1128 » movdqu» xmm3,XMMWORD PTR[64+r12] 1132 » movdqu» xmm3,XMMWORD[64+r12]
1129 » movdqu» xmm4,XMMWORD PTR[80+r12] 1133 » movdqu» xmm4,XMMWORD[80+r12]
1130 mov rax,rsp 1134 mov rax,rsp
1131 » movdqu» xmm5,XMMWORD PTR[96+r12] 1135 » movdqu» xmm5,XMMWORD[96+r12]
1132 mov r10d,edx 1136 mov r10d,edx
1133 » movdqu» xmm6,XMMWORD PTR[112+r12] 1137 » movdqu» xmm6,XMMWORD[112+r12]
1134 » movdqa» XMMWORD PTR[32+rbp],xmm14 1138 » movdqa» XMMWORD[32+rbp],xmm14
1135 1139
1136 » call» _bsaes_decrypt8 1140 » call» _bsaes_decrypt8
1137 1141
1138 » pxor» xmm15,XMMWORD PTR[32+rbp] 1142 » pxor» xmm15,XMMWORD[32+rbp]
1139 » movdqu» xmm7,XMMWORD PTR[r12] 1143 » movdqu» xmm7,XMMWORD[r12]
1140 » movdqu» xmm8,XMMWORD PTR[16+r12] 1144 » movdqu» xmm8,XMMWORD[16+r12]
1141 » pxor» xmm0,xmm7 1145 » pxor» xmm0,xmm7
1142 » movdqu» xmm9,XMMWORD PTR[32+r12] 1146 » movdqu» xmm9,XMMWORD[32+r12]
1143 » pxor» xmm5,xmm8 1147 » pxor» xmm5,xmm8
1144 » movdqu» xmm10,XMMWORD PTR[48+r12] 1148 » movdqu» xmm10,XMMWORD[48+r12]
1145 » pxor» xmm3,xmm9 1149 » pxor» xmm3,xmm9
1146 » movdqu» xmm11,XMMWORD PTR[64+r12] 1150 » movdqu» xmm11,XMMWORD[64+r12]
1147 » pxor» xmm1,xmm10 1151 » pxor» xmm1,xmm10
1148 » movdqu» xmm12,XMMWORD PTR[80+r12] 1152 » movdqu» xmm12,XMMWORD[80+r12]
1149 pxor xmm6,xmm11 1153 pxor xmm6,xmm11
1150 » movdqu» xmm13,XMMWORD PTR[96+r12] 1154 » movdqu» xmm13,XMMWORD[96+r12]
1151 pxor xmm2,xmm12 1155 pxor xmm2,xmm12
1152 » movdqu» xmm14,XMMWORD PTR[112+r12] 1156 » movdqu» xmm14,XMMWORD[112+r12]
1153 pxor xmm4,xmm13 1157 pxor xmm4,xmm13
1154 » movdqu» XMMWORD PTR[r13],xmm15 1158 » movdqu» XMMWORD[r13],xmm15
1155 » lea» r12,QWORD PTR[128+r12] 1159 » lea» r12,[128+r12]
1156 » movdqu» XMMWORD PTR[16+r13],xmm0 1160 » movdqu» XMMWORD[16+r13],xmm0
1157 » movdqu» XMMWORD PTR[32+r13],xmm5 1161 » movdqu» XMMWORD[32+r13],xmm5
1158 » movdqu» XMMWORD PTR[48+r13],xmm3 1162 » movdqu» XMMWORD[48+r13],xmm3
1159 » movdqu» XMMWORD PTR[64+r13],xmm1 1163 » movdqu» XMMWORD[64+r13],xmm1
1160 » movdqu» XMMWORD PTR[80+r13],xmm6 1164 » movdqu» XMMWORD[80+r13],xmm6
1161 » movdqu» XMMWORD PTR[96+r13],xmm2 1165 » movdqu» XMMWORD[96+r13],xmm2
1162 » movdqu» XMMWORD PTR[112+r13],xmm4 1166 » movdqu» XMMWORD[112+r13],xmm4
1163 » lea» r13,QWORD PTR[128+r13] 1167 » lea» r13,[128+r13]
1164 sub r14,8 1168 sub r14,8
1165 » jnc» $L$cbc_dec_loop 1169 » jnc» NEAR $L$cbc_dec_loop
1166 1170
1167 add r14,8 1171 add r14,8
1168 » jz» $L$cbc_dec_done 1172 » jz» NEAR $L$cbc_dec_done
1169 1173
1170 » movdqu» xmm15,XMMWORD PTR[r12] 1174 » movdqu» xmm15,XMMWORD[r12]
1171 mov rax,rsp 1175 mov rax,rsp
1172 mov r10d,edx 1176 mov r10d,edx
1173 cmp r14,2 1177 cmp r14,2
1174 » jb» $L$cbc_dec_one 1178 » jb» NEAR $L$cbc_dec_one
1175 » movdqu» xmm0,XMMWORD PTR[16+r12] 1179 » movdqu» xmm0,XMMWORD[16+r12]
1176 » je» $L$cbc_dec_two 1180 » je» NEAR $L$cbc_dec_two
1177 » movdqu» xmm1,XMMWORD PTR[32+r12] 1181 » movdqu» xmm1,XMMWORD[32+r12]
1178 cmp r14,4 1182 cmp r14,4
1179 » jb» $L$cbc_dec_three 1183 » jb» NEAR $L$cbc_dec_three
1180 » movdqu» xmm2,XMMWORD PTR[48+r12] 1184 » movdqu» xmm2,XMMWORD[48+r12]
1181 » je» $L$cbc_dec_four 1185 » je» NEAR $L$cbc_dec_four
1182 » movdqu» xmm3,XMMWORD PTR[64+r12] 1186 » movdqu» xmm3,XMMWORD[64+r12]
1183 cmp r14,6 1187 cmp r14,6
1184 » jb» $L$cbc_dec_five 1188 » jb» NEAR $L$cbc_dec_five
1185 » movdqu» xmm4,XMMWORD PTR[80+r12] 1189 » movdqu» xmm4,XMMWORD[80+r12]
1186 » je» $L$cbc_dec_six 1190 » je» NEAR $L$cbc_dec_six
1187 » movdqu» xmm5,XMMWORD PTR[96+r12] 1191 » movdqu» xmm5,XMMWORD[96+r12]
1188 » movdqa» XMMWORD PTR[32+rbp],xmm14 1192 » movdqa» XMMWORD[32+rbp],xmm14
1189 » call» _bsaes_decrypt8 1193 » call» _bsaes_decrypt8
1190 » pxor» xmm15,XMMWORD PTR[32+rbp] 1194 » pxor» xmm15,XMMWORD[32+rbp]
1191 » movdqu» xmm7,XMMWORD PTR[r12] 1195 » movdqu» xmm7,XMMWORD[r12]
1192 » movdqu» xmm8,XMMWORD PTR[16+r12] 1196 » movdqu» xmm8,XMMWORD[16+r12]
1193 » pxor» xmm0,xmm7 1197 » pxor» xmm0,xmm7
1194 » movdqu» xmm9,XMMWORD PTR[32+r12] 1198 » movdqu» xmm9,XMMWORD[32+r12]
1195 » pxor» xmm5,xmm8 1199 » pxor» xmm5,xmm8
1196 » movdqu» xmm10,XMMWORD PTR[48+r12] 1200 » movdqu» xmm10,XMMWORD[48+r12]
1197 » pxor» xmm3,xmm9 1201 » pxor» xmm3,xmm9
1198 » movdqu» xmm11,XMMWORD PTR[64+r12] 1202 » movdqu» xmm11,XMMWORD[64+r12]
1199 » pxor» xmm1,xmm10 1203 » pxor» xmm1,xmm10
1200 » movdqu» xmm12,XMMWORD PTR[80+r12] 1204 » movdqu» xmm12,XMMWORD[80+r12]
1201 pxor xmm6,xmm11 1205 pxor xmm6,xmm11
1202 » movdqu» xmm14,XMMWORD PTR[96+r12] 1206 » movdqu» xmm14,XMMWORD[96+r12]
1203 pxor xmm2,xmm12 1207 pxor xmm2,xmm12
1204 » movdqu» XMMWORD PTR[r13],xmm15 1208 » movdqu» XMMWORD[r13],xmm15
1205 » movdqu» XMMWORD PTR[16+r13],xmm0 1209 » movdqu» XMMWORD[16+r13],xmm0
1206 » movdqu» XMMWORD PTR[32+r13],xmm5 1210 » movdqu» XMMWORD[32+r13],xmm5
1207 » movdqu» XMMWORD PTR[48+r13],xmm3 1211 » movdqu» XMMWORD[48+r13],xmm3
1208 » movdqu» XMMWORD PTR[64+r13],xmm1 1212 » movdqu» XMMWORD[64+r13],xmm1
1209 » movdqu» XMMWORD PTR[80+r13],xmm6 1213 » movdqu» XMMWORD[80+r13],xmm6
1210 » movdqu» XMMWORD PTR[96+r13],xmm2 1214 » movdqu» XMMWORD[96+r13],xmm2
1211 » jmp» $L$cbc_dec_done 1215 » jmp» NEAR $L$cbc_dec_done
1212 ALIGN» 16 1216 ALIGN» 16
1213 $L$cbc_dec_six:: 1217 $L$cbc_dec_six:
1214 » movdqa» XMMWORD PTR[32+rbp],xmm14 1218 » movdqa» XMMWORD[32+rbp],xmm14
1215 » call» _bsaes_decrypt8 1219 » call» _bsaes_decrypt8
1216 » pxor» xmm15,XMMWORD PTR[32+rbp] 1220 » pxor» xmm15,XMMWORD[32+rbp]
1217 » movdqu» xmm7,XMMWORD PTR[r12] 1221 » movdqu» xmm7,XMMWORD[r12]
1218 » movdqu» xmm8,XMMWORD PTR[16+r12] 1222 » movdqu» xmm8,XMMWORD[16+r12]
1219 » pxor» xmm0,xmm7 1223 » pxor» xmm0,xmm7
1220 » movdqu» xmm9,XMMWORD PTR[32+r12] 1224 » movdqu» xmm9,XMMWORD[32+r12]
1221 » pxor» xmm5,xmm8 1225 » pxor» xmm5,xmm8
1222 » movdqu» xmm10,XMMWORD PTR[48+r12] 1226 » movdqu» xmm10,XMMWORD[48+r12]
1223 » pxor» xmm3,xmm9 1227 » pxor» xmm3,xmm9
1224 » movdqu» xmm11,XMMWORD PTR[64+r12] 1228 » movdqu» xmm11,XMMWORD[64+r12]
1225 » pxor» xmm1,xmm10 1229 » pxor» xmm1,xmm10
1226 » movdqu» xmm14,XMMWORD PTR[80+r12] 1230 » movdqu» xmm14,XMMWORD[80+r12]
1227 pxor xmm6,xmm11 1231 pxor xmm6,xmm11
1228 » movdqu» XMMWORD PTR[r13],xmm15 1232 » movdqu» XMMWORD[r13],xmm15
1229 » movdqu» XMMWORD PTR[16+r13],xmm0 1233 » movdqu» XMMWORD[16+r13],xmm0
1230 » movdqu» XMMWORD PTR[32+r13],xmm5 1234 » movdqu» XMMWORD[32+r13],xmm5
1231 » movdqu» XMMWORD PTR[48+r13],xmm3 1235 » movdqu» XMMWORD[48+r13],xmm3
1232 » movdqu» XMMWORD PTR[64+r13],xmm1 1236 » movdqu» XMMWORD[64+r13],xmm1
1233 » movdqu» XMMWORD PTR[80+r13],xmm6 1237 » movdqu» XMMWORD[80+r13],xmm6
1234 » jmp» $L$cbc_dec_done 1238 » jmp» NEAR $L$cbc_dec_done
1235 ALIGN» 16 1239 ALIGN» 16
1236 $L$cbc_dec_five:: 1240 $L$cbc_dec_five:
1237 » movdqa» XMMWORD PTR[32+rbp],xmm14 1241 » movdqa» XMMWORD[32+rbp],xmm14
1238 » call» _bsaes_decrypt8 1242 » call» _bsaes_decrypt8
1239 » pxor» xmm15,XMMWORD PTR[32+rbp] 1243 » pxor» xmm15,XMMWORD[32+rbp]
1240 » movdqu» xmm7,XMMWORD PTR[r12] 1244 » movdqu» xmm7,XMMWORD[r12]
1241 » movdqu» xmm8,XMMWORD PTR[16+r12] 1245 » movdqu» xmm8,XMMWORD[16+r12]
1242 » pxor» xmm0,xmm7 1246 » pxor» xmm0,xmm7
1243 » movdqu» xmm9,XMMWORD PTR[32+r12] 1247 » movdqu» xmm9,XMMWORD[32+r12]
1244 » pxor» xmm5,xmm8 1248 » pxor» xmm5,xmm8
1245 » movdqu» xmm10,XMMWORD PTR[48+r12] 1249 » movdqu» xmm10,XMMWORD[48+r12]
1246 » pxor» xmm3,xmm9 1250 » pxor» xmm3,xmm9
1247 » movdqu» xmm14,XMMWORD PTR[64+r12] 1251 » movdqu» xmm14,XMMWORD[64+r12]
1248 » pxor» xmm1,xmm10 1252 » pxor» xmm1,xmm10
1249 » movdqu» XMMWORD PTR[r13],xmm15 1253 » movdqu» XMMWORD[r13],xmm15
1250 » movdqu» XMMWORD PTR[16+r13],xmm0 1254 » movdqu» XMMWORD[16+r13],xmm0
1251 » movdqu» XMMWORD PTR[32+r13],xmm5 1255 » movdqu» XMMWORD[32+r13],xmm5
1252 » movdqu» XMMWORD PTR[48+r13],xmm3 1256 » movdqu» XMMWORD[48+r13],xmm3
1253 » movdqu» XMMWORD PTR[64+r13],xmm1 1257 » movdqu» XMMWORD[64+r13],xmm1
1254 » jmp» $L$cbc_dec_done 1258 » jmp» NEAR $L$cbc_dec_done
1255 ALIGN» 16 1259 ALIGN» 16
1256 $L$cbc_dec_four:: 1260 $L$cbc_dec_four:
1257 » movdqa» XMMWORD PTR[32+rbp],xmm14 1261 » movdqa» XMMWORD[32+rbp],xmm14
1258 » call» _bsaes_decrypt8 1262 » call» _bsaes_decrypt8
1259 » pxor» xmm15,XMMWORD PTR[32+rbp] 1263 » pxor» xmm15,XMMWORD[32+rbp]
1260 » movdqu» xmm7,XMMWORD PTR[r12] 1264 » movdqu» xmm7,XMMWORD[r12]
1261 » movdqu» xmm8,XMMWORD PTR[16+r12] 1265 » movdqu» xmm8,XMMWORD[16+r12]
1262 » pxor» xmm0,xmm7 1266 » pxor» xmm0,xmm7
1263 » movdqu» xmm9,XMMWORD PTR[32+r12] 1267 » movdqu» xmm9,XMMWORD[32+r12]
1264 » pxor» xmm5,xmm8 1268 » pxor» xmm5,xmm8
1265 » movdqu» xmm14,XMMWORD PTR[48+r12] 1269 » movdqu» xmm14,XMMWORD[48+r12]
1266 » pxor» xmm3,xmm9 1270 » pxor» xmm3,xmm9
1267 » movdqu» XMMWORD PTR[r13],xmm15 1271 » movdqu» XMMWORD[r13],xmm15
1268 » movdqu» XMMWORD PTR[16+r13],xmm0 1272 » movdqu» XMMWORD[16+r13],xmm0
1269 » movdqu» XMMWORD PTR[32+r13],xmm5 1273 » movdqu» XMMWORD[32+r13],xmm5
1270 » movdqu» XMMWORD PTR[48+r13],xmm3 1274 » movdqu» XMMWORD[48+r13],xmm3
1271 » jmp» $L$cbc_dec_done 1275 » jmp» NEAR $L$cbc_dec_done
1272 ALIGN» 16 1276 ALIGN» 16
1273 $L$cbc_dec_three:: 1277 $L$cbc_dec_three:
1274 » movdqa» XMMWORD PTR[32+rbp],xmm14 1278 » movdqa» XMMWORD[32+rbp],xmm14
1275 » call» _bsaes_decrypt8 1279 » call» _bsaes_decrypt8
1276 » pxor» xmm15,XMMWORD PTR[32+rbp] 1280 » pxor» xmm15,XMMWORD[32+rbp]
1277 » movdqu» xmm7,XMMWORD PTR[r12] 1281 » movdqu» xmm7,XMMWORD[r12]
1278 » movdqu» xmm8,XMMWORD PTR[16+r12] 1282 » movdqu» xmm8,XMMWORD[16+r12]
1279 » pxor» xmm0,xmm7 1283 » pxor» xmm0,xmm7
1280 » movdqu» xmm14,XMMWORD PTR[32+r12] 1284 » movdqu» xmm14,XMMWORD[32+r12]
1281 » pxor» xmm5,xmm8 1285 » pxor» xmm5,xmm8
1282 » movdqu» XMMWORD PTR[r13],xmm15 1286 » movdqu» XMMWORD[r13],xmm15
1283 » movdqu» XMMWORD PTR[16+r13],xmm0 1287 » movdqu» XMMWORD[16+r13],xmm0
1284 » movdqu» XMMWORD PTR[32+r13],xmm5 1288 » movdqu» XMMWORD[32+r13],xmm5
1285 » jmp» $L$cbc_dec_done 1289 » jmp» NEAR $L$cbc_dec_done
1286 ALIGN» 16 1290 ALIGN» 16
1287 $L$cbc_dec_two:: 1291 $L$cbc_dec_two:
1288 » movdqa» XMMWORD PTR[32+rbp],xmm14 1292 » movdqa» XMMWORD[32+rbp],xmm14
1289 » call» _bsaes_decrypt8 1293 » call» _bsaes_decrypt8
1290 » pxor» xmm15,XMMWORD PTR[32+rbp] 1294 » pxor» xmm15,XMMWORD[32+rbp]
1291 » movdqu» xmm7,XMMWORD PTR[r12] 1295 » movdqu» xmm7,XMMWORD[r12]
1292 » movdqu» xmm14,XMMWORD PTR[16+r12] 1296 » movdqu» xmm14,XMMWORD[16+r12]
1293 » pxor» xmm0,xmm7 1297 » pxor» xmm0,xmm7
1294 » movdqu» XMMWORD PTR[r13],xmm15 1298 » movdqu» XMMWORD[r13],xmm15
1295 » movdqu» XMMWORD PTR[16+r13],xmm0 1299 » movdqu» XMMWORD[16+r13],xmm0
1296 » jmp» $L$cbc_dec_done 1300 » jmp» NEAR $L$cbc_dec_done
1297 ALIGN» 16 1301 ALIGN» 16
1298 $L$cbc_dec_one:: 1302 $L$cbc_dec_one:
1299 » lea» rcx,QWORD PTR[r12] 1303 » lea» rcx,[r12]
1300 » lea» rdx,QWORD PTR[32+rbp] 1304 » lea» rdx,[32+rbp]
1301 » lea» r8,QWORD PTR[r15] 1305 » lea» r8,[r15]
1302 call asm_AES_decrypt 1306 call asm_AES_decrypt
1303 » pxor» xmm14,XMMWORD PTR[32+rbp] 1307 » pxor» xmm14,XMMWORD[32+rbp]
1304 » movdqu» XMMWORD PTR[r13],xmm14 1308 » movdqu» XMMWORD[r13],xmm14
1305 movdqa xmm14,xmm15 1309 movdqa xmm14,xmm15
1306 1310
1307 $L$cbc_dec_done:: 1311 $L$cbc_dec_done:
1308 » movdqu» XMMWORD PTR[rbx],xmm14 1312 » movdqu» XMMWORD[rbx],xmm14
1309 » lea» rax,QWORD PTR[rsp] 1313 » lea» rax,[rsp]
1310 pxor xmm0,xmm0 1314 pxor xmm0,xmm0
1311 $L$cbc_dec_bzero:: 1315 $L$cbc_dec_bzero:
1312 » movdqa» XMMWORD PTR[rax],xmm0 1316 » movdqa» XMMWORD[rax],xmm0
1313 » movdqa» XMMWORD PTR[16+rax],xmm0 1317 » movdqa» XMMWORD[16+rax],xmm0
1314 » lea» rax,QWORD PTR[32+rax] 1318 » lea» rax,[32+rax]
1315 cmp rbp,rax 1319 cmp rbp,rax
1316 » ja» $L$cbc_dec_bzero 1320 » ja» NEAR $L$cbc_dec_bzero
1317 1321
1318 » lea» rsp,QWORD PTR[rbp] 1322 » lea» rsp,[rbp]
1319 » movaps» xmm6,XMMWORD PTR[64+rbp] 1323 » movaps» xmm6,XMMWORD[64+rbp]
1320 » movaps» xmm7,XMMWORD PTR[80+rbp] 1324 » movaps» xmm7,XMMWORD[80+rbp]
1321 » movaps» xmm8,XMMWORD PTR[96+rbp] 1325 » movaps» xmm8,XMMWORD[96+rbp]
1322 » movaps» xmm9,XMMWORD PTR[112+rbp] 1326 » movaps» xmm9,XMMWORD[112+rbp]
1323 » movaps» xmm10,XMMWORD PTR[128+rbp] 1327 » movaps» xmm10,XMMWORD[128+rbp]
1324 » movaps» xmm11,XMMWORD PTR[144+rbp] 1328 » movaps» xmm11,XMMWORD[144+rbp]
1325 » movaps» xmm12,XMMWORD PTR[160+rbp] 1329 » movaps» xmm12,XMMWORD[160+rbp]
1326 » movaps» xmm13,XMMWORD PTR[176+rbp] 1330 » movaps» xmm13,XMMWORD[176+rbp]
1327 » movaps» xmm14,XMMWORD PTR[192+rbp] 1331 » movaps» xmm14,XMMWORD[192+rbp]
1328 » movaps» xmm15,XMMWORD PTR[208+rbp] 1332 » movaps» xmm15,XMMWORD[208+rbp]
1329 » lea» rsp,QWORD PTR[160+rbp] 1333 » lea» rsp,[160+rbp]
1330 » mov» r15,QWORD PTR[72+rsp] 1334 » mov» r15,QWORD[72+rsp]
1331 » mov» r14,QWORD PTR[80+rsp] 1335 » mov» r14,QWORD[80+rsp]
1332 » mov» r13,QWORD PTR[88+rsp] 1336 » mov» r13,QWORD[88+rsp]
1333 » mov» r12,QWORD PTR[96+rsp] 1337 » mov» r12,QWORD[96+rsp]
1334 » mov» rbx,QWORD PTR[104+rsp] 1338 » mov» rbx,QWORD[104+rsp]
1335 » mov» rax,QWORD PTR[112+rsp] 1339 » mov» rax,QWORD[112+rsp]
1336 » lea» rsp,QWORD PTR[120+rsp] 1340 » lea» rsp,[120+rsp]
1337 mov rbp,rax 1341 mov rbp,rax
1338 $L$cbc_dec_epilogue:: 1342 $L$cbc_dec_epilogue:
1339 DB 0F3h,0C3h ;repret 1343 DB 0F3h,0C3h ;repret
1340 bsaes_cbc_encrypt» ENDP 1344
1341 1345
1342 PUBLIC» bsaes_ctr32_encrypt_blocks 1346 global» bsaes_ctr32_encrypt_blocks
1343 1347
1344 ALIGN» 16 1348 ALIGN» 16
1345 bsaes_ctr32_encrypt_blocks» PROC PUBLIC 1349 bsaes_ctr32_encrypt_blocks:
1346 mov rax,rsp 1350 mov rax,rsp
1347 $L$ctr_enc_prologue:: 1351 $L$ctr_enc_prologue:
1348 push rbp 1352 push rbp
1349 push rbx 1353 push rbx
1350 push r12 1354 push r12
1351 push r13 1355 push r13
1352 push r14 1356 push r14
1353 push r15 1357 push r15
1354 » lea» rsp,QWORD PTR[((-72))+rsp] 1358 » lea» rsp,[((-72))+rsp]
1355 » mov» r10,QWORD PTR[160+rsp] 1359 » mov» r10,QWORD[160+rsp]
1356 » lea» rsp,QWORD PTR[((-160))+rsp] 1360 » lea» rsp,[((-160))+rsp]
1357 » movaps» XMMWORD PTR[64+rsp],xmm6 1361 » movaps» XMMWORD[64+rsp],xmm6
1358 » movaps» XMMWORD PTR[80+rsp],xmm7 1362 » movaps» XMMWORD[80+rsp],xmm7
1359 » movaps» XMMWORD PTR[96+rsp],xmm8 1363 » movaps» XMMWORD[96+rsp],xmm8
1360 » movaps» XMMWORD PTR[112+rsp],xmm9 1364 » movaps» XMMWORD[112+rsp],xmm9
1361 » movaps» XMMWORD PTR[128+rsp],xmm10 1365 » movaps» XMMWORD[128+rsp],xmm10
1362 » movaps» XMMWORD PTR[144+rsp],xmm11 1366 » movaps» XMMWORD[144+rsp],xmm11
1363 » movaps» XMMWORD PTR[160+rsp],xmm12 1367 » movaps» XMMWORD[160+rsp],xmm12
1364 » movaps» XMMWORD PTR[176+rsp],xmm13 1368 » movaps» XMMWORD[176+rsp],xmm13
1365 » movaps» XMMWORD PTR[192+rsp],xmm14 1369 » movaps» XMMWORD[192+rsp],xmm14
1366 » movaps» XMMWORD PTR[208+rsp],xmm15 1370 » movaps» XMMWORD[208+rsp],xmm15
1367 $L$ctr_enc_body:: 1371 $L$ctr_enc_body:
1368 mov rbp,rsp 1372 mov rbp,rsp
1369 » movdqu» xmm0,XMMWORD PTR[r10] 1373 » movdqu» xmm0,XMMWORD[r10]
1370 » mov» eax,DWORD PTR[240+r9] 1374 » mov» eax,DWORD[240+r9]
1371 mov r12,rcx 1375 mov r12,rcx
1372 mov r13,rdx 1376 mov r13,rdx
1373 mov r14,r8 1377 mov r14,r8
1374 mov r15,r9 1378 mov r15,r9
1375 » movdqa» XMMWORD PTR[32+rbp],xmm0 1379 » movdqa» XMMWORD[32+rbp],xmm0
1376 cmp r8,8 1380 cmp r8,8
1377 » jb» $L$ctr_enc_short 1381 » jb» NEAR $L$ctr_enc_short
1378 1382
1379 mov ebx,eax 1383 mov ebx,eax
1380 shl rax,7 1384 shl rax,7
1381 sub rax,96 1385 sub rax,96
1382 sub rsp,rax 1386 sub rsp,rax
1383 1387
1384 mov rax,rsp 1388 mov rax,rsp
1385 mov rcx,r15 1389 mov rcx,r15
1386 mov r10d,ebx 1390 mov r10d,ebx
1387 call _bsaes_key_convert 1391 call _bsaes_key_convert
1388 pxor xmm7,xmm6 1392 pxor xmm7,xmm6
1389 » movdqa» XMMWORD PTR[rax],xmm7 1393 » movdqa» XMMWORD[rax],xmm7
1390 1394
1391 » movdqa» xmm8,XMMWORD PTR[rsp] 1395 » movdqa» xmm8,XMMWORD[rsp]
1392 » lea» r11,QWORD PTR[$L$ADD1] 1396 » lea» r11,[$L$ADD1]
1393 » movdqa» xmm15,XMMWORD PTR[32+rbp] 1397 » movdqa» xmm15,XMMWORD[32+rbp]
1394 » movdqa» xmm7,XMMWORD PTR[((-32))+r11] 1398 » movdqa» xmm7,XMMWORD[((-32))+r11]
1395 DB 102,68,15,56,0,199 1399 DB 102,68,15,56,0,199
1396 DB 102,68,15,56,0,255 1400 DB 102,68,15,56,0,255
1397 » movdqa» XMMWORD PTR[rsp],xmm8 1401 » movdqa» XMMWORD[rsp],xmm8
1398 » jmp» $L$ctr_enc_loop 1402 » jmp» NEAR $L$ctr_enc_loop
1399 ALIGN 16 1403 ALIGN 16
1400 $L$ctr_enc_loop:: 1404 $L$ctr_enc_loop:
1401 » movdqa» XMMWORD PTR[32+rbp],xmm15 1405 » movdqa» XMMWORD[32+rbp],xmm15
1402 movdqa xmm0,xmm15 1406 movdqa xmm0,xmm15
1403 movdqa xmm1,xmm15 1407 movdqa xmm1,xmm15
1404 » paddd» xmm0,XMMWORD PTR[r11] 1408 » paddd» xmm0,XMMWORD[r11]
1405 movdqa xmm2,xmm15 1409 movdqa xmm2,xmm15
1406 » paddd» xmm1,XMMWORD PTR[16+r11] 1410 » paddd» xmm1,XMMWORD[16+r11]
1407 movdqa xmm3,xmm15 1411 movdqa xmm3,xmm15
1408 » paddd» xmm2,XMMWORD PTR[32+r11] 1412 » paddd» xmm2,XMMWORD[32+r11]
1409 movdqa xmm4,xmm15 1413 movdqa xmm4,xmm15
1410 » paddd» xmm3,XMMWORD PTR[48+r11] 1414 » paddd» xmm3,XMMWORD[48+r11]
1411 movdqa xmm5,xmm15 1415 movdqa xmm5,xmm15
1412 » paddd» xmm4,XMMWORD PTR[64+r11] 1416 » paddd» xmm4,XMMWORD[64+r11]
1413 movdqa xmm6,xmm15 1417 movdqa xmm6,xmm15
1414 » paddd» xmm5,XMMWORD PTR[80+r11] 1418 » paddd» xmm5,XMMWORD[80+r11]
1415 » paddd» xmm6,XMMWORD PTR[96+r11] 1419 » paddd» xmm6,XMMWORD[96+r11]
1416 1420
1417 1421
1418 1422
1419 » movdqa» xmm8,XMMWORD PTR[rsp] 1423 » movdqa» xmm8,XMMWORD[rsp]
1420 » lea» rax,QWORD PTR[16+rsp] 1424 » lea» rax,[16+rsp]
1421 » movdqa» xmm7,XMMWORD PTR[((-16))+r11] 1425 » movdqa» xmm7,XMMWORD[((-16))+r11]
1422 pxor xmm15,xmm8 1426 pxor xmm15,xmm8
1423 pxor xmm0,xmm8 1427 pxor xmm0,xmm8
1424 pxor xmm1,xmm8 1428 pxor xmm1,xmm8
1425 pxor xmm2,xmm8 1429 pxor xmm2,xmm8
1426 DB 102,68,15,56,0,255 1430 DB 102,68,15,56,0,255
1427 DB 102,15,56,0,199 1431 DB 102,15,56,0,199
1428 pxor xmm3,xmm8 1432 pxor xmm3,xmm8
1429 pxor xmm4,xmm8 1433 pxor xmm4,xmm8
1430 DB 102,15,56,0,207 1434 DB 102,15,56,0,207
1431 DB 102,15,56,0,215 1435 DB 102,15,56,0,215
1432 pxor xmm5,xmm8 1436 pxor xmm5,xmm8
1433 pxor xmm6,xmm8 1437 pxor xmm6,xmm8
1434 DB 102,15,56,0,223 1438 DB 102,15,56,0,223
1435 DB 102,15,56,0,231 1439 DB 102,15,56,0,231
1436 DB 102,15,56,0,239 1440 DB 102,15,56,0,239
1437 DB 102,15,56,0,247 1441 DB 102,15,56,0,247
1438 » lea» r11,QWORD PTR[$L$BS0] 1442 » lea» r11,[$L$BS0]
1439 mov r10d,ebx 1443 mov r10d,ebx
1440 1444
1441 call _bsaes_encrypt8_bitslice 1445 call _bsaes_encrypt8_bitslice
1442 1446
1443 sub r14,8 1447 sub r14,8
1444 » jc» $L$ctr_enc_loop_done 1448 » jc» NEAR $L$ctr_enc_loop_done
1445 1449
1446 » movdqu» xmm7,XMMWORD PTR[r12] 1450 » movdqu» xmm7,XMMWORD[r12]
1447 » movdqu» xmm8,XMMWORD PTR[16+r12] 1451 » movdqu» xmm8,XMMWORD[16+r12]
1448 » movdqu» xmm9,XMMWORD PTR[32+r12] 1452 » movdqu» xmm9,XMMWORD[32+r12]
1449 » movdqu» xmm10,XMMWORD PTR[48+r12] 1453 » movdqu» xmm10,XMMWORD[48+r12]
1450 » movdqu» xmm11,XMMWORD PTR[64+r12] 1454 » movdqu» xmm11,XMMWORD[64+r12]
1451 » movdqu» xmm12,XMMWORD PTR[80+r12] 1455 » movdqu» xmm12,XMMWORD[80+r12]
1452 » movdqu» xmm13,XMMWORD PTR[96+r12] 1456 » movdqu» xmm13,XMMWORD[96+r12]
1453 » movdqu» xmm14,XMMWORD PTR[112+r12] 1457 » movdqu» xmm14,XMMWORD[112+r12]
1454 » lea» r12,QWORD PTR[128+r12] 1458 » lea» r12,[128+r12]
1455 pxor xmm7,xmm15 1459 pxor xmm7,xmm15
1456 » movdqa» xmm15,XMMWORD PTR[32+rbp] 1460 » movdqa» xmm15,XMMWORD[32+rbp]
1457 pxor xmm0,xmm8 1461 pxor xmm0,xmm8
1458 » movdqu» XMMWORD PTR[r13],xmm7 1462 » movdqu» XMMWORD[r13],xmm7
1459 pxor xmm3,xmm9 1463 pxor xmm3,xmm9
1460 » movdqu» XMMWORD PTR[16+r13],xmm0 1464 » movdqu» XMMWORD[16+r13],xmm0
1461 pxor xmm5,xmm10 1465 pxor xmm5,xmm10
1462 » movdqu» XMMWORD PTR[32+r13],xmm3 1466 » movdqu» XMMWORD[32+r13],xmm3
1463 pxor xmm2,xmm11 1467 pxor xmm2,xmm11
1464 » movdqu» XMMWORD PTR[48+r13],xmm5 1468 » movdqu» XMMWORD[48+r13],xmm5
1465 pxor xmm6,xmm12 1469 pxor xmm6,xmm12
1466 » movdqu» XMMWORD PTR[64+r13],xmm2 1470 » movdqu» XMMWORD[64+r13],xmm2
1467 pxor xmm1,xmm13 1471 pxor xmm1,xmm13
1468 » movdqu» XMMWORD PTR[80+r13],xmm6 1472 » movdqu» XMMWORD[80+r13],xmm6
1469 pxor xmm4,xmm14 1473 pxor xmm4,xmm14
1470 » movdqu» XMMWORD PTR[96+r13],xmm1 1474 » movdqu» XMMWORD[96+r13],xmm1
1471 » lea» r11,QWORD PTR[$L$ADD1] 1475 » lea» r11,[$L$ADD1]
1472 » movdqu» XMMWORD PTR[112+r13],xmm4 1476 » movdqu» XMMWORD[112+r13],xmm4
1473 » lea» r13,QWORD PTR[128+r13] 1477 » lea» r13,[128+r13]
1474 » paddd» xmm15,XMMWORD PTR[112+r11] 1478 » paddd» xmm15,XMMWORD[112+r11]
1475 » jnz» $L$ctr_enc_loop 1479 » jnz» NEAR $L$ctr_enc_loop
1476 1480
1477 » jmp» $L$ctr_enc_done 1481 » jmp» NEAR $L$ctr_enc_done
1478 ALIGN 16 1482 ALIGN 16
1479 $L$ctr_enc_loop_done:: 1483 $L$ctr_enc_loop_done:
1480 add r14,8 1484 add r14,8
1481 » movdqu» xmm7,XMMWORD PTR[r12] 1485 » movdqu» xmm7,XMMWORD[r12]
1482 pxor xmm15,xmm7 1486 pxor xmm15,xmm7
1483 » movdqu» XMMWORD PTR[r13],xmm15 1487 » movdqu» XMMWORD[r13],xmm15
1484 cmp r14,2 1488 cmp r14,2
1485 » jb» $L$ctr_enc_done 1489 » jb» NEAR $L$ctr_enc_done
1486 » movdqu» xmm8,XMMWORD PTR[16+r12] 1490 » movdqu» xmm8,XMMWORD[16+r12]
1487 pxor xmm0,xmm8 1491 pxor xmm0,xmm8
1488 » movdqu» XMMWORD PTR[16+r13],xmm0 1492 » movdqu» XMMWORD[16+r13],xmm0
1489 » je» $L$ctr_enc_done 1493 » je» NEAR $L$ctr_enc_done
1490 » movdqu» xmm9,XMMWORD PTR[32+r12] 1494 » movdqu» xmm9,XMMWORD[32+r12]
1491 pxor xmm3,xmm9 1495 pxor xmm3,xmm9
1492 » movdqu» XMMWORD PTR[32+r13],xmm3 1496 » movdqu» XMMWORD[32+r13],xmm3
1493 cmp r14,4 1497 cmp r14,4
1494 » jb» $L$ctr_enc_done 1498 » jb» NEAR $L$ctr_enc_done
1495 » movdqu» xmm10,XMMWORD PTR[48+r12] 1499 » movdqu» xmm10,XMMWORD[48+r12]
1496 pxor xmm5,xmm10 1500 pxor xmm5,xmm10
1497 » movdqu» XMMWORD PTR[48+r13],xmm5 1501 » movdqu» XMMWORD[48+r13],xmm5
1498 » je» $L$ctr_enc_done 1502 » je» NEAR $L$ctr_enc_done
1499 » movdqu» xmm11,XMMWORD PTR[64+r12] 1503 » movdqu» xmm11,XMMWORD[64+r12]
1500 pxor xmm2,xmm11 1504 pxor xmm2,xmm11
1501 » movdqu» XMMWORD PTR[64+r13],xmm2 1505 » movdqu» XMMWORD[64+r13],xmm2
1502 cmp r14,6 1506 cmp r14,6
1503 » jb» $L$ctr_enc_done 1507 » jb» NEAR $L$ctr_enc_done
1504 » movdqu» xmm12,XMMWORD PTR[80+r12] 1508 » movdqu» xmm12,XMMWORD[80+r12]
1505 pxor xmm6,xmm12 1509 pxor xmm6,xmm12
1506 » movdqu» XMMWORD PTR[80+r13],xmm6 1510 » movdqu» XMMWORD[80+r13],xmm6
1507 » je» $L$ctr_enc_done 1511 » je» NEAR $L$ctr_enc_done
1508 » movdqu» xmm13,XMMWORD PTR[96+r12] 1512 » movdqu» xmm13,XMMWORD[96+r12]
1509 pxor xmm1,xmm13 1513 pxor xmm1,xmm13
1510 » movdqu» XMMWORD PTR[96+r13],xmm1 1514 » movdqu» XMMWORD[96+r13],xmm1
1511 » jmp» $L$ctr_enc_done 1515 » jmp» NEAR $L$ctr_enc_done
1512 1516
1513 ALIGN 16 1517 ALIGN 16
1514 $L$ctr_enc_short:: 1518 $L$ctr_enc_short:
1515 » lea» rcx,QWORD PTR[32+rbp] 1519 » lea» rcx,[32+rbp]
1516 » lea» rdx,QWORD PTR[48+rbp] 1520 » lea» rdx,[48+rbp]
1517 » lea» r8,QWORD PTR[r15] 1521 » lea» r8,[r15]
1518 call asm_AES_encrypt 1522 call asm_AES_encrypt
1519 » movdqu» xmm0,XMMWORD PTR[r12] 1523 » movdqu» xmm0,XMMWORD[r12]
1520 » lea» r12,QWORD PTR[16+r12] 1524 » lea» r12,[16+r12]
1521 » mov» eax,DWORD PTR[44+rbp] 1525 » mov» eax,DWORD[44+rbp]
1522 bswap eax 1526 bswap eax
1523 » pxor» xmm0,XMMWORD PTR[48+rbp] 1527 » pxor» xmm0,XMMWORD[48+rbp]
1524 inc eax 1528 inc eax
1525 » movdqu» XMMWORD PTR[r13],xmm0 1529 » movdqu» XMMWORD[r13],xmm0
1526 bswap eax 1530 bswap eax
1527 » lea» r13,QWORD PTR[16+r13] 1531 » lea» r13,[16+r13]
1528 » mov» DWORD PTR[44+rsp],eax 1532 » mov» DWORD[44+rsp],eax
1529 dec r14 1533 dec r14
1530 » jnz» $L$ctr_enc_short 1534 » jnz» NEAR $L$ctr_enc_short
1531 1535
1532 $L$ctr_enc_done:: 1536 $L$ctr_enc_done:
1533 » lea» rax,QWORD PTR[rsp] 1537 » lea» rax,[rsp]
1534 pxor xmm0,xmm0 1538 pxor xmm0,xmm0
1535 $L$ctr_enc_bzero:: 1539 $L$ctr_enc_bzero:
1536 » movdqa» XMMWORD PTR[rax],xmm0 1540 » movdqa» XMMWORD[rax],xmm0
1537 » movdqa» XMMWORD PTR[16+rax],xmm0 1541 » movdqa» XMMWORD[16+rax],xmm0
1538 » lea» rax,QWORD PTR[32+rax] 1542 » lea» rax,[32+rax]
1539 cmp rbp,rax 1543 cmp rbp,rax
1540 » ja» $L$ctr_enc_bzero 1544 » ja» NEAR $L$ctr_enc_bzero
1541 1545
1542 » lea» rsp,QWORD PTR[rbp] 1546 » lea» rsp,[rbp]
1543 » movaps» xmm6,XMMWORD PTR[64+rbp] 1547 » movaps» xmm6,XMMWORD[64+rbp]
1544 » movaps» xmm7,XMMWORD PTR[80+rbp] 1548 » movaps» xmm7,XMMWORD[80+rbp]
1545 » movaps» xmm8,XMMWORD PTR[96+rbp] 1549 » movaps» xmm8,XMMWORD[96+rbp]
1546 » movaps» xmm9,XMMWORD PTR[112+rbp] 1550 » movaps» xmm9,XMMWORD[112+rbp]
1547 » movaps» xmm10,XMMWORD PTR[128+rbp] 1551 » movaps» xmm10,XMMWORD[128+rbp]
1548 » movaps» xmm11,XMMWORD PTR[144+rbp] 1552 » movaps» xmm11,XMMWORD[144+rbp]
1549 » movaps» xmm12,XMMWORD PTR[160+rbp] 1553 » movaps» xmm12,XMMWORD[160+rbp]
1550 » movaps» xmm13,XMMWORD PTR[176+rbp] 1554 » movaps» xmm13,XMMWORD[176+rbp]
1551 » movaps» xmm14,XMMWORD PTR[192+rbp] 1555 » movaps» xmm14,XMMWORD[192+rbp]
1552 » movaps» xmm15,XMMWORD PTR[208+rbp] 1556 » movaps» xmm15,XMMWORD[208+rbp]
1553 » lea» rsp,QWORD PTR[160+rbp] 1557 » lea» rsp,[160+rbp]
1554 » mov» r15,QWORD PTR[72+rsp] 1558 » mov» r15,QWORD[72+rsp]
1555 » mov» r14,QWORD PTR[80+rsp] 1559 » mov» r14,QWORD[80+rsp]
1556 » mov» r13,QWORD PTR[88+rsp] 1560 » mov» r13,QWORD[88+rsp]
1557 » mov» r12,QWORD PTR[96+rsp] 1561 » mov» r12,QWORD[96+rsp]
1558 » mov» rbx,QWORD PTR[104+rsp] 1562 » mov» rbx,QWORD[104+rsp]
1559 » mov» rax,QWORD PTR[112+rsp] 1563 » mov» rax,QWORD[112+rsp]
1560 » lea» rsp,QWORD PTR[120+rsp] 1564 » lea» rsp,[120+rsp]
1561 mov rbp,rax 1565 mov rbp,rax
1562 $L$ctr_enc_epilogue:: 1566 $L$ctr_enc_epilogue:
1563 DB 0F3h,0C3h ;repret 1567 DB 0F3h,0C3h ;repret
1564 bsaes_ctr32_encrypt_blocks» ENDP 1568
1565 PUBLIC» bsaes_xts_encrypt 1569 global» bsaes_xts_encrypt
1566 1570
1567 ALIGN 16 1571 ALIGN 16
1568 bsaes_xts_encrypt» PROC PUBLIC 1572 bsaes_xts_encrypt:
1569 mov rax,rsp 1573 mov rax,rsp
1570 $L$xts_enc_prologue:: 1574 $L$xts_enc_prologue:
1571 push rbp 1575 push rbp
1572 push rbx 1576 push rbx
1573 push r12 1577 push r12
1574 push r13 1578 push r13
1575 push r14 1579 push r14
1576 push r15 1580 push r15
1577 » lea» rsp,QWORD PTR[((-72))+rsp] 1581 » lea» rsp,[((-72))+rsp]
1578 » mov» r10,QWORD PTR[160+rsp] 1582 » mov» r10,QWORD[160+rsp]
1579 » mov» r11,QWORD PTR[168+rsp] 1583 » mov» r11,QWORD[168+rsp]
1580 » lea» rsp,QWORD PTR[((-160))+rsp] 1584 » lea» rsp,[((-160))+rsp]
1581 » movaps» XMMWORD PTR[64+rsp],xmm6 1585 » movaps» XMMWORD[64+rsp],xmm6
1582 » movaps» XMMWORD PTR[80+rsp],xmm7 1586 » movaps» XMMWORD[80+rsp],xmm7
1583 » movaps» XMMWORD PTR[96+rsp],xmm8 1587 » movaps» XMMWORD[96+rsp],xmm8
1584 » movaps» XMMWORD PTR[112+rsp],xmm9 1588 » movaps» XMMWORD[112+rsp],xmm9
1585 » movaps» XMMWORD PTR[128+rsp],xmm10 1589 » movaps» XMMWORD[128+rsp],xmm10
1586 » movaps» XMMWORD PTR[144+rsp],xmm11 1590 » movaps» XMMWORD[144+rsp],xmm11
1587 » movaps» XMMWORD PTR[160+rsp],xmm12 1591 » movaps» XMMWORD[160+rsp],xmm12
1588 » movaps» XMMWORD PTR[176+rsp],xmm13 1592 » movaps» XMMWORD[176+rsp],xmm13
1589 » movaps» XMMWORD PTR[192+rsp],xmm14 1593 » movaps» XMMWORD[192+rsp],xmm14
1590 » movaps» XMMWORD PTR[208+rsp],xmm15 1594 » movaps» XMMWORD[208+rsp],xmm15
1591 $L$xts_enc_body:: 1595 $L$xts_enc_body:
1592 mov rbp,rsp 1596 mov rbp,rsp
1593 mov r12,rcx 1597 mov r12,rcx
1594 mov r13,rdx 1598 mov r13,rdx
1595 mov r14,r8 1599 mov r14,r8
1596 mov r15,r9 1600 mov r15,r9
1597 1601
1598 » lea» rcx,QWORD PTR[r11] 1602 » lea» rcx,[r11]
1599 » lea» rdx,QWORD PTR[32+rbp] 1603 » lea» rdx,[32+rbp]
1600 » lea» r8,QWORD PTR[r10] 1604 » lea» r8,[r10]
1601 call asm_AES_encrypt 1605 call asm_AES_encrypt
1602 1606
1603 » mov» eax,DWORD PTR[240+r15] 1607 » mov» eax,DWORD[240+r15]
1604 mov rbx,r14 1608 mov rbx,r14
1605 1609
1606 mov edx,eax 1610 mov edx,eax
1607 shl rax,7 1611 shl rax,7
1608 sub rax,96 1612 sub rax,96
1609 sub rsp,rax 1613 sub rsp,rax
1610 1614
1611 mov rax,rsp 1615 mov rax,rsp
1612 mov rcx,r15 1616 mov rcx,r15
1613 mov r10d,edx 1617 mov r10d,edx
1614 call _bsaes_key_convert 1618 call _bsaes_key_convert
1615 pxor xmm7,xmm6 1619 pxor xmm7,xmm6
1616 » movdqa» XMMWORD PTR[rax],xmm7 1620 » movdqa» XMMWORD[rax],xmm7
1617 1621
1618 and r14,-16 1622 and r14,-16
1619 » sub» rsp,080h 1623 » sub» rsp,0x80
1620 » movdqa» xmm6,XMMWORD PTR[32+rbp] 1624 » movdqa» xmm6,XMMWORD[32+rbp]
1621 1625
1622 » pxor» xmm14,xmm14 1626 » pxor» xmm14,xmm14
1623 » movdqa» xmm12,XMMWORD PTR[$L$xts_magic] 1627 » movdqa» xmm12,XMMWORD[$L$xts_magic]
1624 » pcmpgtd»xmm14,xmm6 1628 » pcmpgtd»xmm14,xmm6
1625 1629
1626 » sub» r14,080h 1630 » sub» r14,0x80
1627 » jc» $L$xts_enc_short 1631 » jc» NEAR $L$xts_enc_short
1628 » jmp» $L$xts_enc_loop 1632 » jmp» NEAR $L$xts_enc_loop
1629 1633
1630 ALIGN» 16 1634 ALIGN» 16
1631 $L$xts_enc_loop:: 1635 $L$xts_enc_loop:
1632 » pshufd» xmm13,xmm14,013h 1636 » pshufd» xmm13,xmm14,0x13
1633 pxor xmm14,xmm14 1637 pxor xmm14,xmm14
1634 movdqa xmm15,xmm6 1638 movdqa xmm15,xmm6
1635 » movdqa» XMMWORD PTR[rsp],xmm6 1639 » movdqa» XMMWORD[rsp],xmm6
1636 » paddq» xmm6,xmm6 1640 » paddq» xmm6,xmm6
1637 » pand» xmm13,xmm12 1641 » pand» xmm13,xmm12
1638 » pcmpgtd»xmm14,xmm6 1642 » pcmpgtd»xmm14,xmm6
1639 » pxor» xmm6,xmm13 1643 » pxor» xmm6,xmm13
1640 » pshufd» xmm13,xmm14,013h 1644 » pshufd» xmm13,xmm14,0x13
1641 pxor xmm14,xmm14 1645 pxor xmm14,xmm14
1642 movdqa xmm0,xmm6 1646 movdqa xmm0,xmm6
1643 » movdqa» XMMWORD PTR[16+rsp],xmm6 1647 » movdqa» XMMWORD[16+rsp],xmm6
1644 » paddq» xmm6,xmm6 1648 » paddq» xmm6,xmm6
1645 » pand» xmm13,xmm12 1649 » pand» xmm13,xmm12
1646 » pcmpgtd»xmm14,xmm6 1650 » pcmpgtd»xmm14,xmm6
1647 » pxor» xmm6,xmm13 1651 » pxor» xmm6,xmm13
1648 » movdqu» xmm7,XMMWORD PTR[r12] 1652 » movdqu» xmm7,XMMWORD[r12]
1649 » pshufd» xmm13,xmm14,013h 1653 » pshufd» xmm13,xmm14,0x13
1650 pxor xmm14,xmm14 1654 pxor xmm14,xmm14
1651 movdqa xmm1,xmm6 1655 movdqa xmm1,xmm6
1652 » movdqa» XMMWORD PTR[32+rsp],xmm6 1656 » movdqa» XMMWORD[32+rsp],xmm6
1653 » paddq» xmm6,xmm6 1657 » paddq» xmm6,xmm6
1654 » pand» xmm13,xmm12 1658 » pand» xmm13,xmm12
1655 » pcmpgtd»xmm14,xmm6 1659 » pcmpgtd»xmm14,xmm6
1656 » pxor» xmm6,xmm13 1660 » pxor» xmm6,xmm13
1657 » movdqu» xmm8,XMMWORD PTR[16+r12] 1661 » movdqu» xmm8,XMMWORD[16+r12]
1658 pxor xmm15,xmm7 1662 pxor xmm15,xmm7
1659 » pshufd» xmm13,xmm14,013h 1663 » pshufd» xmm13,xmm14,0x13
1660 pxor xmm14,xmm14 1664 pxor xmm14,xmm14
1661 movdqa xmm2,xmm6 1665 movdqa xmm2,xmm6
1662 » movdqa» XMMWORD PTR[48+rsp],xmm6 1666 » movdqa» XMMWORD[48+rsp],xmm6
1663 » paddq» xmm6,xmm6 1667 » paddq» xmm6,xmm6
1664 » pand» xmm13,xmm12 1668 » pand» xmm13,xmm12
1665 » pcmpgtd»xmm14,xmm6 1669 » pcmpgtd»xmm14,xmm6
1666 » pxor» xmm6,xmm13 1670 » pxor» xmm6,xmm13
1667 » movdqu» xmm9,XMMWORD PTR[32+r12] 1671 » movdqu» xmm9,XMMWORD[32+r12]
1668 pxor xmm0,xmm8 1672 pxor xmm0,xmm8
1669 » pshufd» xmm13,xmm14,013h 1673 » pshufd» xmm13,xmm14,0x13
1670 pxor xmm14,xmm14 1674 pxor xmm14,xmm14
1671 movdqa xmm3,xmm6 1675 movdqa xmm3,xmm6
1672 » movdqa» XMMWORD PTR[64+rsp],xmm6 1676 » movdqa» XMMWORD[64+rsp],xmm6
1673 » paddq» xmm6,xmm6 1677 » paddq» xmm6,xmm6
1674 » pand» xmm13,xmm12 1678 » pand» xmm13,xmm12
1675 » pcmpgtd»xmm14,xmm6 1679 » pcmpgtd»xmm14,xmm6
1676 » pxor» xmm6,xmm13 1680 » pxor» xmm6,xmm13
1677 » movdqu» xmm10,XMMWORD PTR[48+r12] 1681 » movdqu» xmm10,XMMWORD[48+r12]
1678 pxor xmm1,xmm9 1682 pxor xmm1,xmm9
1679 » pshufd» xmm13,xmm14,013h 1683 » pshufd» xmm13,xmm14,0x13
1680 pxor xmm14,xmm14 1684 pxor xmm14,xmm14
1681 movdqa xmm4,xmm6 1685 movdqa xmm4,xmm6
1682 » movdqa» XMMWORD PTR[80+rsp],xmm6 1686 » movdqa» XMMWORD[80+rsp],xmm6
1683 » paddq» xmm6,xmm6 1687 » paddq» xmm6,xmm6
1684 » pand» xmm13,xmm12 1688 » pand» xmm13,xmm12
1685 » pcmpgtd»xmm14,xmm6 1689 » pcmpgtd»xmm14,xmm6
1686 » pxor» xmm6,xmm13 1690 » pxor» xmm6,xmm13
1687 » movdqu» xmm11,XMMWORD PTR[64+r12] 1691 » movdqu» xmm11,XMMWORD[64+r12]
1688 pxor xmm2,xmm10 1692 pxor xmm2,xmm10
1689 » pshufd» xmm13,xmm14,013h 1693 » pshufd» xmm13,xmm14,0x13
1690 pxor xmm14,xmm14 1694 pxor xmm14,xmm14
1691 movdqa xmm5,xmm6 1695 movdqa xmm5,xmm6
1692 » movdqa» XMMWORD PTR[96+rsp],xmm6 1696 » movdqa» XMMWORD[96+rsp],xmm6
1693 » paddq» xmm6,xmm6 1697 » paddq» xmm6,xmm6
1694 » pand» xmm13,xmm12 1698 » pand» xmm13,xmm12
1695 » pcmpgtd»xmm14,xmm6 1699 » pcmpgtd»xmm14,xmm6
1696 » pxor» xmm6,xmm13 1700 » pxor» xmm6,xmm13
1697 » movdqu» xmm12,XMMWORD PTR[80+r12] 1701 » movdqu» xmm12,XMMWORD[80+r12]
1698 pxor xmm3,xmm11 1702 pxor xmm3,xmm11
1699 » movdqu» xmm13,XMMWORD PTR[96+r12] 1703 » movdqu» xmm13,XMMWORD[96+r12]
1700 pxor xmm4,xmm12 1704 pxor xmm4,xmm12
1701 » movdqu» xmm14,XMMWORD PTR[112+r12] 1705 » movdqu» xmm14,XMMWORD[112+r12]
1702 » lea» r12,QWORD PTR[128+r12] 1706 » lea» r12,[128+r12]
1703 » movdqa» XMMWORD PTR[112+rsp],xmm6 1707 » movdqa» XMMWORD[112+rsp],xmm6
1704 pxor xmm5,xmm13 1708 pxor xmm5,xmm13
1705 » lea» rax,QWORD PTR[128+rsp] 1709 » lea» rax,[128+rsp]
1706 pxor xmm6,xmm14 1710 pxor xmm6,xmm14
1707 mov r10d,edx 1711 mov r10d,edx
1708 1712
1709 call _bsaes_encrypt8 1713 call _bsaes_encrypt8
1710 1714
1711 » pxor» xmm15,XMMWORD PTR[rsp] 1715 » pxor» xmm15,XMMWORD[rsp]
1712 » pxor» xmm0,XMMWORD PTR[16+rsp] 1716 » pxor» xmm0,XMMWORD[16+rsp]
1713 » movdqu» XMMWORD PTR[r13],xmm15 1717 » movdqu» XMMWORD[r13],xmm15
1714 » pxor» xmm3,XMMWORD PTR[32+rsp] 1718 » pxor» xmm3,XMMWORD[32+rsp]
1715 » movdqu» XMMWORD PTR[16+r13],xmm0 1719 » movdqu» XMMWORD[16+r13],xmm0
1716 » pxor» xmm5,XMMWORD PTR[48+rsp] 1720 » pxor» xmm5,XMMWORD[48+rsp]
1717 » movdqu» XMMWORD PTR[32+r13],xmm3 1721 » movdqu» XMMWORD[32+r13],xmm3
1718 » pxor» xmm2,XMMWORD PTR[64+rsp] 1722 » pxor» xmm2,XMMWORD[64+rsp]
1719 » movdqu» XMMWORD PTR[48+r13],xmm5 1723 » movdqu» XMMWORD[48+r13],xmm5
1720 » pxor» xmm6,XMMWORD PTR[80+rsp] 1724 » pxor» xmm6,XMMWORD[80+rsp]
1721 » movdqu» XMMWORD PTR[64+r13],xmm2 1725 » movdqu» XMMWORD[64+r13],xmm2
1722 » pxor» xmm1,XMMWORD PTR[96+rsp] 1726 » pxor» xmm1,XMMWORD[96+rsp]
1723 » movdqu» XMMWORD PTR[80+r13],xmm6 1727 » movdqu» XMMWORD[80+r13],xmm6
1724 » pxor» xmm4,XMMWORD PTR[112+rsp] 1728 » pxor» xmm4,XMMWORD[112+rsp]
1725 » movdqu» XMMWORD PTR[96+r13],xmm1 1729 » movdqu» XMMWORD[96+r13],xmm1
1726 » movdqu» XMMWORD PTR[112+r13],xmm4 1730 » movdqu» XMMWORD[112+r13],xmm4
1727 » lea» r13,QWORD PTR[128+r13] 1731 » lea» r13,[128+r13]
1728 1732
1729 » movdqa» xmm6,XMMWORD PTR[112+rsp] 1733 » movdqa» xmm6,XMMWORD[112+rsp]
1730 » pxor» xmm14,xmm14 1734 » pxor» xmm14,xmm14
1731 » movdqa» xmm12,XMMWORD PTR[$L$xts_magic] 1735 » movdqa» xmm12,XMMWORD[$L$xts_magic]
1732 » pcmpgtd»xmm14,xmm6 1736 » pcmpgtd»xmm14,xmm6
1733 » pshufd» xmm13,xmm14,013h 1737 » pshufd» xmm13,xmm14,0x13
1734 » pxor» xmm14,xmm14 1738 » pxor» xmm14,xmm14
1735 » paddq» xmm6,xmm6 1739 » paddq» xmm6,xmm6
1736 » pand» xmm13,xmm12 1740 » pand» xmm13,xmm12
1737 » pcmpgtd»xmm14,xmm6 1741 » pcmpgtd»xmm14,xmm6
1738 » pxor» xmm6,xmm13 1742 » pxor» xmm6,xmm13
1739 1743
1740 » sub» r14,080h 1744 » sub» r14,0x80
1741 » jnc» $L$xts_enc_loop 1745 » jnc» NEAR $L$xts_enc_loop
1742 1746
1743 $L$xts_enc_short:: 1747 $L$xts_enc_short:
1744 » add» r14,080h 1748 » add» r14,0x80
1745 » jz» $L$xts_enc_done 1749 » jz» NEAR $L$xts_enc_done
1746 » pshufd» xmm13,xmm14,013h 1750 » pshufd» xmm13,xmm14,0x13
1747 pxor xmm14,xmm14 1751 pxor xmm14,xmm14
1748 movdqa xmm15,xmm6 1752 movdqa xmm15,xmm6
1749 » movdqa» XMMWORD PTR[rsp],xmm6 1753 » movdqa» XMMWORD[rsp],xmm6
1750 » paddq» xmm6,xmm6 1754 » paddq» xmm6,xmm6
1751 » pand» xmm13,xmm12 1755 » pand» xmm13,xmm12
1752 » pcmpgtd»xmm14,xmm6 1756 » pcmpgtd»xmm14,xmm6
1753 » pxor» xmm6,xmm13 1757 » pxor» xmm6,xmm13
1754 » pshufd» xmm13,xmm14,013h 1758 » pshufd» xmm13,xmm14,0x13
1755 pxor xmm14,xmm14 1759 pxor xmm14,xmm14
1756 movdqa xmm0,xmm6 1760 movdqa xmm0,xmm6
1757 » movdqa» XMMWORD PTR[16+rsp],xmm6 1761 » movdqa» XMMWORD[16+rsp],xmm6
1758 » paddq» xmm6,xmm6 1762 » paddq» xmm6,xmm6
1759 » pand» xmm13,xmm12 1763 » pand» xmm13,xmm12
1760 » pcmpgtd»xmm14,xmm6 1764 » pcmpgtd»xmm14,xmm6
1761 » pxor» xmm6,xmm13 1765 » pxor» xmm6,xmm13
1762 » movdqu» xmm7,XMMWORD PTR[r12] 1766 » movdqu» xmm7,XMMWORD[r12]
1763 cmp r14,16 1767 cmp r14,16
1764 » je» $L$xts_enc_1 1768 » je» NEAR $L$xts_enc_1
1765 » pshufd» xmm13,xmm14,013h 1769 » pshufd» xmm13,xmm14,0x13
1766 pxor xmm14,xmm14 1770 pxor xmm14,xmm14
1767 movdqa xmm1,xmm6 1771 movdqa xmm1,xmm6
1768 » movdqa» XMMWORD PTR[32+rsp],xmm6 1772 » movdqa» XMMWORD[32+rsp],xmm6
1769 » paddq» xmm6,xmm6 1773 » paddq» xmm6,xmm6
1770 » pand» xmm13,xmm12 1774 » pand» xmm13,xmm12
1771 » pcmpgtd»xmm14,xmm6 1775 » pcmpgtd»xmm14,xmm6
1772 » pxor» xmm6,xmm13 1776 » pxor» xmm6,xmm13
1773 » movdqu» xmm8,XMMWORD PTR[16+r12] 1777 » movdqu» xmm8,XMMWORD[16+r12]
1774 cmp r14,32 1778 cmp r14,32
1775 » je» $L$xts_enc_2 1779 » je» NEAR $L$xts_enc_2
1776 pxor xmm15,xmm7 1780 pxor xmm15,xmm7
1777 » pshufd» xmm13,xmm14,013h 1781 » pshufd» xmm13,xmm14,0x13
1778 pxor xmm14,xmm14 1782 pxor xmm14,xmm14
1779 movdqa xmm2,xmm6 1783 movdqa xmm2,xmm6
1780 » movdqa» XMMWORD PTR[48+rsp],xmm6 1784 » movdqa» XMMWORD[48+rsp],xmm6
1781 » paddq» xmm6,xmm6 1785 » paddq» xmm6,xmm6
1782 » pand» xmm13,xmm12 1786 » pand» xmm13,xmm12
1783 » pcmpgtd»xmm14,xmm6 1787 » pcmpgtd»xmm14,xmm6
1784 » pxor» xmm6,xmm13 1788 » pxor» xmm6,xmm13
1785 » movdqu» xmm9,XMMWORD PTR[32+r12] 1789 » movdqu» xmm9,XMMWORD[32+r12]
1786 cmp r14,48 1790 cmp r14,48
1787 » je» $L$xts_enc_3 1791 » je» NEAR $L$xts_enc_3
1788 pxor xmm0,xmm8 1792 pxor xmm0,xmm8
1789 » pshufd» xmm13,xmm14,013h 1793 » pshufd» xmm13,xmm14,0x13
1790 pxor xmm14,xmm14 1794 pxor xmm14,xmm14
1791 movdqa xmm3,xmm6 1795 movdqa xmm3,xmm6
1792 » movdqa» XMMWORD PTR[64+rsp],xmm6 1796 » movdqa» XMMWORD[64+rsp],xmm6
1793 » paddq» xmm6,xmm6 1797 » paddq» xmm6,xmm6
1794 » pand» xmm13,xmm12 1798 » pand» xmm13,xmm12
1795 » pcmpgtd»xmm14,xmm6 1799 » pcmpgtd»xmm14,xmm6
1796 » pxor» xmm6,xmm13 1800 » pxor» xmm6,xmm13
1797 » movdqu» xmm10,XMMWORD PTR[48+r12] 1801 » movdqu» xmm10,XMMWORD[48+r12]
1798 cmp r14,64 1802 cmp r14,64
1799 » je» $L$xts_enc_4 1803 » je» NEAR $L$xts_enc_4
1800 pxor xmm1,xmm9 1804 pxor xmm1,xmm9
1801 » pshufd» xmm13,xmm14,013h 1805 » pshufd» xmm13,xmm14,0x13
1802 pxor xmm14,xmm14 1806 pxor xmm14,xmm14
1803 movdqa xmm4,xmm6 1807 movdqa xmm4,xmm6
1804 » movdqa» XMMWORD PTR[80+rsp],xmm6 1808 » movdqa» XMMWORD[80+rsp],xmm6
1805 » paddq» xmm6,xmm6 1809 » paddq» xmm6,xmm6
1806 » pand» xmm13,xmm12 1810 » pand» xmm13,xmm12
1807 » pcmpgtd»xmm14,xmm6 1811 » pcmpgtd»xmm14,xmm6
1808 » pxor» xmm6,xmm13 1812 » pxor» xmm6,xmm13
1809 » movdqu» xmm11,XMMWORD PTR[64+r12] 1813 » movdqu» xmm11,XMMWORD[64+r12]
1810 cmp r14,80 1814 cmp r14,80
1811 » je» $L$xts_enc_5 1815 » je» NEAR $L$xts_enc_5
1812 pxor xmm2,xmm10 1816 pxor xmm2,xmm10
1813 » pshufd» xmm13,xmm14,013h 1817 » pshufd» xmm13,xmm14,0x13
1814 pxor xmm14,xmm14 1818 pxor xmm14,xmm14
1815 movdqa xmm5,xmm6 1819 movdqa xmm5,xmm6
1816 » movdqa» XMMWORD PTR[96+rsp],xmm6 1820 » movdqa» XMMWORD[96+rsp],xmm6
1817 » paddq» xmm6,xmm6 1821 » paddq» xmm6,xmm6
1818 » pand» xmm13,xmm12 1822 » pand» xmm13,xmm12
1819 » pcmpgtd»xmm14,xmm6 1823 » pcmpgtd»xmm14,xmm6
1820 » pxor» xmm6,xmm13 1824 » pxor» xmm6,xmm13
1821 » movdqu» xmm12,XMMWORD PTR[80+r12] 1825 » movdqu» xmm12,XMMWORD[80+r12]
1822 cmp r14,96 1826 cmp r14,96
1823 » je» $L$xts_enc_6 1827 » je» NEAR $L$xts_enc_6
1824 pxor xmm3,xmm11 1828 pxor xmm3,xmm11
1825 » movdqu» xmm13,XMMWORD PTR[96+r12] 1829 » movdqu» xmm13,XMMWORD[96+r12]
1826 pxor xmm4,xmm12 1830 pxor xmm4,xmm12
1827 » movdqa» XMMWORD PTR[112+rsp],xmm6 1831 » movdqa» XMMWORD[112+rsp],xmm6
1828 » lea» r12,QWORD PTR[112+r12] 1832 » lea» r12,[112+r12]
1829 pxor xmm5,xmm13 1833 pxor xmm5,xmm13
1830 » lea» rax,QWORD PTR[128+rsp] 1834 » lea» rax,[128+rsp]
1831 » mov» r10d,edx 1835 » mov» r10d,edx
1832 1836
1833 » call» _bsaes_encrypt8 1837 » call» _bsaes_encrypt8
1834 1838
1835 » pxor» xmm15,XMMWORD PTR[rsp] 1839 » pxor» xmm15,XMMWORD[rsp]
1836 » pxor» xmm0,XMMWORD PTR[16+rsp] 1840 » pxor» xmm0,XMMWORD[16+rsp]
1837 » movdqu» XMMWORD PTR[r13],xmm15 1841 » movdqu» XMMWORD[r13],xmm15
1838 » pxor» xmm3,XMMWORD PTR[32+rsp] 1842 » pxor» xmm3,XMMWORD[32+rsp]
1839 » movdqu» XMMWORD PTR[16+r13],xmm0 1843 » movdqu» XMMWORD[16+r13],xmm0
1840 » pxor» xmm5,XMMWORD PTR[48+rsp] 1844 » pxor» xmm5,XMMWORD[48+rsp]
1841 » movdqu» XMMWORD PTR[32+r13],xmm3 1845 » movdqu» XMMWORD[32+r13],xmm3
1842 » pxor» xmm2,XMMWORD PTR[64+rsp] 1846 » pxor» xmm2,XMMWORD[64+rsp]
1843 » movdqu» XMMWORD PTR[48+r13],xmm5 1847 » movdqu» XMMWORD[48+r13],xmm5
1844 » pxor» xmm6,XMMWORD PTR[80+rsp] 1848 » pxor» xmm6,XMMWORD[80+rsp]
1845 » movdqu» XMMWORD PTR[64+r13],xmm2 1849 » movdqu» XMMWORD[64+r13],xmm2
1846 » pxor» xmm1,XMMWORD PTR[96+rsp] 1850 » pxor» xmm1,XMMWORD[96+rsp]
1847 » movdqu» XMMWORD PTR[80+r13],xmm6 1851 » movdqu» XMMWORD[80+r13],xmm6
1848 » movdqu» XMMWORD PTR[96+r13],xmm1 1852 » movdqu» XMMWORD[96+r13],xmm1
1849 » lea» r13,QWORD PTR[112+r13] 1853 » lea» r13,[112+r13]
1850 1854
1851 » movdqa» xmm6,XMMWORD PTR[112+rsp] 1855 » movdqa» xmm6,XMMWORD[112+rsp]
1852 » jmp» $L$xts_enc_done 1856 » jmp» NEAR $L$xts_enc_done
1853 ALIGN» 16 1857 ALIGN» 16
1854 $L$xts_enc_6:: 1858 $L$xts_enc_6:
1855 pxor xmm3,xmm11 1859 pxor xmm3,xmm11
1856 » lea» r12,QWORD PTR[96+r12] 1860 » lea» r12,[96+r12]
1857 pxor xmm4,xmm12 1861 pxor xmm4,xmm12
1858 » lea» rax,QWORD PTR[128+rsp] 1862 » lea» rax,[128+rsp]
1859 » mov» r10d,edx 1863 » mov» r10d,edx
1860 1864
1861 » call» _bsaes_encrypt8 1865 » call» _bsaes_encrypt8
1862 1866
1863 » pxor» xmm15,XMMWORD PTR[rsp] 1867 » pxor» xmm15,XMMWORD[rsp]
1864 » pxor» xmm0,XMMWORD PTR[16+rsp] 1868 » pxor» xmm0,XMMWORD[16+rsp]
1865 » movdqu» XMMWORD PTR[r13],xmm15 1869 » movdqu» XMMWORD[r13],xmm15
1866 » pxor» xmm3,XMMWORD PTR[32+rsp] 1870 » pxor» xmm3,XMMWORD[32+rsp]
1867 » movdqu» XMMWORD PTR[16+r13],xmm0 1871 » movdqu» XMMWORD[16+r13],xmm0
1868 » pxor» xmm5,XMMWORD PTR[48+rsp] 1872 » pxor» xmm5,XMMWORD[48+rsp]
1869 » movdqu» XMMWORD PTR[32+r13],xmm3 1873 » movdqu» XMMWORD[32+r13],xmm3
1870 » pxor» xmm2,XMMWORD PTR[64+rsp] 1874 » pxor» xmm2,XMMWORD[64+rsp]
1871 » movdqu» XMMWORD PTR[48+r13],xmm5 1875 » movdqu» XMMWORD[48+r13],xmm5
1872 » pxor» xmm6,XMMWORD PTR[80+rsp] 1876 » pxor» xmm6,XMMWORD[80+rsp]
1873 » movdqu» XMMWORD PTR[64+r13],xmm2 1877 » movdqu» XMMWORD[64+r13],xmm2
1874 » movdqu» XMMWORD PTR[80+r13],xmm6 1878 » movdqu» XMMWORD[80+r13],xmm6
1875 » lea» r13,QWORD PTR[96+r13] 1879 » lea» r13,[96+r13]
1876 1880
1877 » movdqa» xmm6,XMMWORD PTR[96+rsp] 1881 » movdqa» xmm6,XMMWORD[96+rsp]
1878 » jmp» $L$xts_enc_done 1882 » jmp» NEAR $L$xts_enc_done
1879 ALIGN» 16 1883 ALIGN» 16
1880 $L$xts_enc_5:: 1884 $L$xts_enc_5:
1881 pxor xmm2,xmm10 1885 pxor xmm2,xmm10
1882 » lea» r12,QWORD PTR[80+r12] 1886 » lea» r12,[80+r12]
1883 pxor xmm3,xmm11 1887 pxor xmm3,xmm11
1884 » lea» rax,QWORD PTR[128+rsp] 1888 » lea» rax,[128+rsp]
1885 » mov» r10d,edx 1889 » mov» r10d,edx
1886 1890
1887 » call» _bsaes_encrypt8 1891 » call» _bsaes_encrypt8
1888 1892
1889 » pxor» xmm15,XMMWORD PTR[rsp] 1893 » pxor» xmm15,XMMWORD[rsp]
1890 » pxor» xmm0,XMMWORD PTR[16+rsp] 1894 » pxor» xmm0,XMMWORD[16+rsp]
1891 » movdqu» XMMWORD PTR[r13],xmm15 1895 » movdqu» XMMWORD[r13],xmm15
1892 » pxor» xmm3,XMMWORD PTR[32+rsp] 1896 » pxor» xmm3,XMMWORD[32+rsp]
1893 » movdqu» XMMWORD PTR[16+r13],xmm0 1897 » movdqu» XMMWORD[16+r13],xmm0
1894 » pxor» xmm5,XMMWORD PTR[48+rsp] 1898 » pxor» xmm5,XMMWORD[48+rsp]
1895 » movdqu» XMMWORD PTR[32+r13],xmm3 1899 » movdqu» XMMWORD[32+r13],xmm3
1896 » pxor» xmm2,XMMWORD PTR[64+rsp] 1900 » pxor» xmm2,XMMWORD[64+rsp]
1897 » movdqu» XMMWORD PTR[48+r13],xmm5 1901 » movdqu» XMMWORD[48+r13],xmm5
1898 » movdqu» XMMWORD PTR[64+r13],xmm2 1902 » movdqu» XMMWORD[64+r13],xmm2
1899 » lea» r13,QWORD PTR[80+r13] 1903 » lea» r13,[80+r13]
1900 1904
1901 » movdqa» xmm6,XMMWORD PTR[80+rsp] 1905 » movdqa» xmm6,XMMWORD[80+rsp]
1902 » jmp» $L$xts_enc_done 1906 » jmp» NEAR $L$xts_enc_done
1903 ALIGN» 16 1907 ALIGN» 16
1904 $L$xts_enc_4:: 1908 $L$xts_enc_4:
1905 pxor xmm1,xmm9 1909 pxor xmm1,xmm9
1906 » lea» r12,QWORD PTR[64+r12] 1910 » lea» r12,[64+r12]
1907 pxor xmm2,xmm10 1911 pxor xmm2,xmm10
1908 » lea» rax,QWORD PTR[128+rsp] 1912 » lea» rax,[128+rsp]
1909 » mov» r10d,edx 1913 » mov» r10d,edx
1910 1914
1911 » call» _bsaes_encrypt8 1915 » call» _bsaes_encrypt8
1912 1916
1913 » pxor» xmm15,XMMWORD PTR[rsp] 1917 » pxor» xmm15,XMMWORD[rsp]
1914 » pxor» xmm0,XMMWORD PTR[16+rsp] 1918 » pxor» xmm0,XMMWORD[16+rsp]
1915 » movdqu» XMMWORD PTR[r13],xmm15 1919 » movdqu» XMMWORD[r13],xmm15
1916 » pxor» xmm3,XMMWORD PTR[32+rsp] 1920 » pxor» xmm3,XMMWORD[32+rsp]
1917 » movdqu» XMMWORD PTR[16+r13],xmm0 1921 » movdqu» XMMWORD[16+r13],xmm0
1918 » pxor» xmm5,XMMWORD PTR[48+rsp] 1922 » pxor» xmm5,XMMWORD[48+rsp]
1919 » movdqu» XMMWORD PTR[32+r13],xmm3 1923 » movdqu» XMMWORD[32+r13],xmm3
1920 » movdqu» XMMWORD PTR[48+r13],xmm5 1924 » movdqu» XMMWORD[48+r13],xmm5
1921 » lea» r13,QWORD PTR[64+r13] 1925 » lea» r13,[64+r13]
1922 1926
1923 » movdqa» xmm6,XMMWORD PTR[64+rsp] 1927 » movdqa» xmm6,XMMWORD[64+rsp]
1924 » jmp» $L$xts_enc_done 1928 » jmp» NEAR $L$xts_enc_done
1925 ALIGN» 16 1929 ALIGN» 16
1926 $L$xts_enc_3:: 1930 $L$xts_enc_3:
1927 pxor xmm0,xmm8 1931 pxor xmm0,xmm8
1928 » lea» r12,QWORD PTR[48+r12] 1932 » lea» r12,[48+r12]
1929 pxor xmm1,xmm9 1933 pxor xmm1,xmm9
1930 » lea» rax,QWORD PTR[128+rsp] 1934 » lea» rax,[128+rsp]
1931 » mov» r10d,edx 1935 » mov» r10d,edx
1932 1936
1933 » call» _bsaes_encrypt8 1937 » call» _bsaes_encrypt8
1934 1938
1935 » pxor» xmm15,XMMWORD PTR[rsp] 1939 » pxor» xmm15,XMMWORD[rsp]
1936 » pxor» xmm0,XMMWORD PTR[16+rsp] 1940 » pxor» xmm0,XMMWORD[16+rsp]
1937 » movdqu» XMMWORD PTR[r13],xmm15 1941 » movdqu» XMMWORD[r13],xmm15
1938 » pxor» xmm3,XMMWORD PTR[32+rsp] 1942 » pxor» xmm3,XMMWORD[32+rsp]
1939 » movdqu» XMMWORD PTR[16+r13],xmm0 1943 » movdqu» XMMWORD[16+r13],xmm0
1940 » movdqu» XMMWORD PTR[32+r13],xmm3 1944 » movdqu» XMMWORD[32+r13],xmm3
1941 » lea» r13,QWORD PTR[48+r13] 1945 » lea» r13,[48+r13]
1942 1946
1943 » movdqa» xmm6,XMMWORD PTR[48+rsp] 1947 » movdqa» xmm6,XMMWORD[48+rsp]
1944 » jmp» $L$xts_enc_done 1948 » jmp» NEAR $L$xts_enc_done
1945 ALIGN» 16 1949 ALIGN» 16
1946 $L$xts_enc_2:: 1950 $L$xts_enc_2:
1947 pxor xmm15,xmm7 1951 pxor xmm15,xmm7
1948 » lea» r12,QWORD PTR[32+r12] 1952 » lea» r12,[32+r12]
1949 pxor xmm0,xmm8 1953 pxor xmm0,xmm8
1950 » lea» rax,QWORD PTR[128+rsp] 1954 » lea» rax,[128+rsp]
1951 » mov» r10d,edx 1955 » mov» r10d,edx
1952 1956
1953 » call» _bsaes_encrypt8 1957 » call» _bsaes_encrypt8
1954 1958
1955 » pxor» xmm15,XMMWORD PTR[rsp] 1959 » pxor» xmm15,XMMWORD[rsp]
1956 » pxor» xmm0,XMMWORD PTR[16+rsp] 1960 » pxor» xmm0,XMMWORD[16+rsp]
1957 » movdqu» XMMWORD PTR[r13],xmm15 1961 » movdqu» XMMWORD[r13],xmm15
1958 » movdqu» XMMWORD PTR[16+r13],xmm0 1962 » movdqu» XMMWORD[16+r13],xmm0
1959 » lea» r13,QWORD PTR[32+r13] 1963 » lea» r13,[32+r13]
1960 1964
1961 » movdqa» xmm6,XMMWORD PTR[32+rsp] 1965 » movdqa» xmm6,XMMWORD[32+rsp]
1962 » jmp» $L$xts_enc_done 1966 » jmp» NEAR $L$xts_enc_done
1963 ALIGN» 16 1967 ALIGN» 16
1964 $L$xts_enc_1:: 1968 $L$xts_enc_1:
1965 pxor xmm7,xmm15 1969 pxor xmm7,xmm15
1966 » lea» r12,QWORD PTR[16+r12] 1970 » lea» r12,[16+r12]
1967 » movdqa» XMMWORD PTR[32+rbp],xmm7 1971 » movdqa» XMMWORD[32+rbp],xmm7
1968 » lea» rcx,QWORD PTR[32+rbp] 1972 » lea» rcx,[32+rbp]
1969 » lea» rdx,QWORD PTR[32+rbp] 1973 » lea» rdx,[32+rbp]
1970 » lea» r8,QWORD PTR[r15] 1974 » lea» r8,[r15]
1971 call asm_AES_encrypt 1975 call asm_AES_encrypt
1972 » pxor» xmm15,XMMWORD PTR[32+rbp] 1976 » pxor» xmm15,XMMWORD[32+rbp]
1973 1977
1974 1978
1975 1979
1976 1980
1977 1981
1978 » movdqu» XMMWORD PTR[r13],xmm15 1982 » movdqu» XMMWORD[r13],xmm15
1979 » lea» r13,QWORD PTR[16+r13] 1983 » lea» r13,[16+r13]
1980 1984
1981 » movdqa» xmm6,XMMWORD PTR[16+rsp] 1985 » movdqa» xmm6,XMMWORD[16+rsp]
1982 1986
1983 $L$xts_enc_done:: 1987 $L$xts_enc_done:
1984 and ebx,15 1988 and ebx,15
1985 » jz» $L$xts_enc_ret 1989 » jz» NEAR $L$xts_enc_ret
1986 mov rdx,r13 1990 mov rdx,r13
1987 1991
1988 $L$xts_enc_steal:: 1992 $L$xts_enc_steal:
1989 » movzx» eax,BYTE PTR[r12] 1993 » movzx» eax,BYTE[r12]
1990 » movzx» ecx,BYTE PTR[((-16))+rdx] 1994 » movzx» ecx,BYTE[((-16))+rdx]
1991 » lea» r12,QWORD PTR[1+r12] 1995 » lea» r12,[1+r12]
1992 » mov» BYTE PTR[((-16))+rdx],al 1996 » mov» BYTE[((-16))+rdx],al
1993 » mov» BYTE PTR[rdx],cl 1997 » mov» BYTE[rdx],cl
1994 » lea» rdx,QWORD PTR[1+rdx] 1998 » lea» rdx,[1+rdx]
1995 sub ebx,1 1999 sub ebx,1
1996 » jnz» $L$xts_enc_steal 2000 » jnz» NEAR $L$xts_enc_steal
1997 2001
1998 » movdqu» xmm15,XMMWORD PTR[((-16))+r13] 2002 » movdqu» xmm15,XMMWORD[((-16))+r13]
1999 » lea» rcx,QWORD PTR[32+rbp] 2003 » lea» rcx,[32+rbp]
2000 pxor xmm15,xmm6 2004 pxor xmm15,xmm6
2001 » lea» rdx,QWORD PTR[32+rbp] 2005 » lea» rdx,[32+rbp]
2002 » movdqa» XMMWORD PTR[32+rbp],xmm15 2006 » movdqa» XMMWORD[32+rbp],xmm15
2003 » lea» r8,QWORD PTR[r15] 2007 » lea» r8,[r15]
2004 call asm_AES_encrypt 2008 call asm_AES_encrypt
2005 » pxor» xmm6,XMMWORD PTR[32+rbp] 2009 » pxor» xmm6,XMMWORD[32+rbp]
2006 » movdqu» XMMWORD PTR[(-16)+r13],xmm6 2010 » movdqu» XMMWORD[(-16)+r13],xmm6
2007 2011
2008 $L$xts_enc_ret:: 2012 $L$xts_enc_ret:
2009 » lea» rax,QWORD PTR[rsp] 2013 » lea» rax,[rsp]
2010 pxor xmm0,xmm0 2014 pxor xmm0,xmm0
2011 $L$xts_enc_bzero:: 2015 $L$xts_enc_bzero:
2012 » movdqa» XMMWORD PTR[rax],xmm0 2016 » movdqa» XMMWORD[rax],xmm0
2013 » movdqa» XMMWORD PTR[16+rax],xmm0 2017 » movdqa» XMMWORD[16+rax],xmm0
2014 » lea» rax,QWORD PTR[32+rax] 2018 » lea» rax,[32+rax]
2015 cmp rbp,rax 2019 cmp rbp,rax
2016 » ja» $L$xts_enc_bzero 2020 » ja» NEAR $L$xts_enc_bzero
2017 2021
2018 » lea» rsp,QWORD PTR[rbp] 2022 » lea» rsp,[rbp]
2019 » movaps» xmm6,XMMWORD PTR[64+rbp] 2023 » movaps» xmm6,XMMWORD[64+rbp]
2020 » movaps» xmm7,XMMWORD PTR[80+rbp] 2024 » movaps» xmm7,XMMWORD[80+rbp]
2021 » movaps» xmm8,XMMWORD PTR[96+rbp] 2025 » movaps» xmm8,XMMWORD[96+rbp]
2022 » movaps» xmm9,XMMWORD PTR[112+rbp] 2026 » movaps» xmm9,XMMWORD[112+rbp]
2023 » movaps» xmm10,XMMWORD PTR[128+rbp] 2027 » movaps» xmm10,XMMWORD[128+rbp]
2024 » movaps» xmm11,XMMWORD PTR[144+rbp] 2028 » movaps» xmm11,XMMWORD[144+rbp]
2025 » movaps» xmm12,XMMWORD PTR[160+rbp] 2029 » movaps» xmm12,XMMWORD[160+rbp]
2026 » movaps» xmm13,XMMWORD PTR[176+rbp] 2030 » movaps» xmm13,XMMWORD[176+rbp]
2027 » movaps» xmm14,XMMWORD PTR[192+rbp] 2031 » movaps» xmm14,XMMWORD[192+rbp]
2028 » movaps» xmm15,XMMWORD PTR[208+rbp] 2032 » movaps» xmm15,XMMWORD[208+rbp]
2029 » lea» rsp,QWORD PTR[160+rbp] 2033 » lea» rsp,[160+rbp]
2030 » mov» r15,QWORD PTR[72+rsp] 2034 » mov» r15,QWORD[72+rsp]
2031 » mov» r14,QWORD PTR[80+rsp] 2035 » mov» r14,QWORD[80+rsp]
2032 » mov» r13,QWORD PTR[88+rsp] 2036 » mov» r13,QWORD[88+rsp]
2033 » mov» r12,QWORD PTR[96+rsp] 2037 » mov» r12,QWORD[96+rsp]
2034 » mov» rbx,QWORD PTR[104+rsp] 2038 » mov» rbx,QWORD[104+rsp]
2035 » mov» rax,QWORD PTR[112+rsp] 2039 » mov» rax,QWORD[112+rsp]
2036 » lea» rsp,QWORD PTR[120+rsp] 2040 » lea» rsp,[120+rsp]
2037 mov rbp,rax 2041 mov rbp,rax
2038 $L$xts_enc_epilogue:: 2042 $L$xts_enc_epilogue:
2039 DB 0F3h,0C3h ;repret 2043 DB 0F3h,0C3h ;repret
2040 bsaes_xts_encrypt» ENDP 2044
2041 2045
2042 PUBLIC» bsaes_xts_decrypt 2046 global» bsaes_xts_decrypt
2043 2047
2044 ALIGN» 16 2048 ALIGN» 16
2045 bsaes_xts_decrypt» PROC PUBLIC 2049 bsaes_xts_decrypt:
2046 mov rax,rsp 2050 mov rax,rsp
2047 $L$xts_dec_prologue:: 2051 $L$xts_dec_prologue:
2048 push rbp 2052 push rbp
2049 push rbx 2053 push rbx
2050 push r12 2054 push r12
2051 push r13 2055 push r13
2052 push r14 2056 push r14
2053 push r15 2057 push r15
2054 » lea» rsp,QWORD PTR[((-72))+rsp] 2058 » lea» rsp,[((-72))+rsp]
2055 » mov» r10,QWORD PTR[160+rsp] 2059 » mov» r10,QWORD[160+rsp]
2056 » mov» r11,QWORD PTR[168+rsp] 2060 » mov» r11,QWORD[168+rsp]
2057 » lea» rsp,QWORD PTR[((-160))+rsp] 2061 » lea» rsp,[((-160))+rsp]
2058 » movaps» XMMWORD PTR[64+rsp],xmm6 2062 » movaps» XMMWORD[64+rsp],xmm6
2059 » movaps» XMMWORD PTR[80+rsp],xmm7 2063 » movaps» XMMWORD[80+rsp],xmm7
2060 » movaps» XMMWORD PTR[96+rsp],xmm8 2064 » movaps» XMMWORD[96+rsp],xmm8
2061 » movaps» XMMWORD PTR[112+rsp],xmm9 2065 » movaps» XMMWORD[112+rsp],xmm9
2062 » movaps» XMMWORD PTR[128+rsp],xmm10 2066 » movaps» XMMWORD[128+rsp],xmm10
2063 » movaps» XMMWORD PTR[144+rsp],xmm11 2067 » movaps» XMMWORD[144+rsp],xmm11
2064 » movaps» XMMWORD PTR[160+rsp],xmm12 2068 » movaps» XMMWORD[160+rsp],xmm12
2065 » movaps» XMMWORD PTR[176+rsp],xmm13 2069 » movaps» XMMWORD[176+rsp],xmm13
2066 » movaps» XMMWORD PTR[192+rsp],xmm14 2070 » movaps» XMMWORD[192+rsp],xmm14
2067 » movaps» XMMWORD PTR[208+rsp],xmm15 2071 » movaps» XMMWORD[208+rsp],xmm15
2068 $L$xts_dec_body:: 2072 $L$xts_dec_body:
2069 mov rbp,rsp 2073 mov rbp,rsp
2070 mov r12,rcx 2074 mov r12,rcx
2071 mov r13,rdx 2075 mov r13,rdx
2072 mov r14,r8 2076 mov r14,r8
2073 mov r15,r9 2077 mov r15,r9
2074 2078
2075 » lea» rcx,QWORD PTR[r11] 2079 » lea» rcx,[r11]
2076 » lea» rdx,QWORD PTR[32+rbp] 2080 » lea» rdx,[32+rbp]
2077 » lea» r8,QWORD PTR[r10] 2081 » lea» r8,[r10]
2078 call asm_AES_encrypt 2082 call asm_AES_encrypt
2079 2083
2080 » mov» eax,DWORD PTR[240+r15] 2084 » mov» eax,DWORD[240+r15]
2081 mov rbx,r14 2085 mov rbx,r14
2082 2086
2083 mov edx,eax 2087 mov edx,eax
2084 shl rax,7 2088 shl rax,7
2085 sub rax,96 2089 sub rax,96
2086 sub rsp,rax 2090 sub rsp,rax
2087 2091
2088 mov rax,rsp 2092 mov rax,rsp
2089 mov rcx,r15 2093 mov rcx,r15
2090 mov r10d,edx 2094 mov r10d,edx
2091 call _bsaes_key_convert 2095 call _bsaes_key_convert
2092 » pxor» xmm7,XMMWORD PTR[rsp] 2096 » pxor» xmm7,XMMWORD[rsp]
2093 » movdqa» XMMWORD PTR[rax],xmm6 2097 » movdqa» XMMWORD[rax],xmm6
2094 » movdqa» XMMWORD PTR[rsp],xmm7 2098 » movdqa» XMMWORD[rsp],xmm7
2095 2099
2096 xor eax,eax 2100 xor eax,eax
2097 and r14,-16 2101 and r14,-16
2098 test ebx,15 2102 test ebx,15
2099 setnz al 2103 setnz al
2100 shl rax,4 2104 shl rax,4
2101 sub r14,rax 2105 sub r14,rax
2102 2106
2103 » sub» rsp,080h 2107 » sub» rsp,0x80
2104 » movdqa» xmm6,XMMWORD PTR[32+rbp] 2108 » movdqa» xmm6,XMMWORD[32+rbp]
2105 2109
2106 » pxor» xmm14,xmm14 2110 » pxor» xmm14,xmm14
2107 » movdqa» xmm12,XMMWORD PTR[$L$xts_magic] 2111 » movdqa» xmm12,XMMWORD[$L$xts_magic]
2108 » pcmpgtd»xmm14,xmm6 2112 » pcmpgtd»xmm14,xmm6
2109 2113
2110 » sub» r14,080h 2114 » sub» r14,0x80
2111 » jc» $L$xts_dec_short 2115 » jc» NEAR $L$xts_dec_short
2112 » jmp» $L$xts_dec_loop 2116 » jmp» NEAR $L$xts_dec_loop
2113 2117
2114 ALIGN» 16 2118 ALIGN» 16
2115 $L$xts_dec_loop:: 2119 $L$xts_dec_loop:
2116 » pshufd» xmm13,xmm14,013h 2120 » pshufd» xmm13,xmm14,0x13
2117 pxor xmm14,xmm14 2121 pxor xmm14,xmm14
2118 movdqa xmm15,xmm6 2122 movdqa xmm15,xmm6
2119 » movdqa» XMMWORD PTR[rsp],xmm6 2123 » movdqa» XMMWORD[rsp],xmm6
2120 » paddq» xmm6,xmm6 2124 » paddq» xmm6,xmm6
2121 » pand» xmm13,xmm12 2125 » pand» xmm13,xmm12
2122 » pcmpgtd»xmm14,xmm6 2126 » pcmpgtd»xmm14,xmm6
2123 » pxor» xmm6,xmm13 2127 » pxor» xmm6,xmm13
2124 » pshufd» xmm13,xmm14,013h 2128 » pshufd» xmm13,xmm14,0x13
2125 pxor xmm14,xmm14 2129 pxor xmm14,xmm14
2126 movdqa xmm0,xmm6 2130 movdqa xmm0,xmm6
2127 » movdqa» XMMWORD PTR[16+rsp],xmm6 2131 » movdqa» XMMWORD[16+rsp],xmm6
2128 » paddq» xmm6,xmm6 2132 » paddq» xmm6,xmm6
2129 » pand» xmm13,xmm12 2133 » pand» xmm13,xmm12
2130 » pcmpgtd»xmm14,xmm6 2134 » pcmpgtd»xmm14,xmm6
2131 » pxor» xmm6,xmm13 2135 » pxor» xmm6,xmm13
2132 » movdqu» xmm7,XMMWORD PTR[r12] 2136 » movdqu» xmm7,XMMWORD[r12]
2133 » pshufd» xmm13,xmm14,013h 2137 » pshufd» xmm13,xmm14,0x13
2134 pxor xmm14,xmm14 2138 pxor xmm14,xmm14
2135 movdqa xmm1,xmm6 2139 movdqa xmm1,xmm6
2136 » movdqa» XMMWORD PTR[32+rsp],xmm6 2140 » movdqa» XMMWORD[32+rsp],xmm6
2137 » paddq» xmm6,xmm6 2141 » paddq» xmm6,xmm6
2138 » pand» xmm13,xmm12 2142 » pand» xmm13,xmm12
2139 » pcmpgtd»xmm14,xmm6 2143 » pcmpgtd»xmm14,xmm6
2140 » pxor» xmm6,xmm13 2144 » pxor» xmm6,xmm13
2141 » movdqu» xmm8,XMMWORD PTR[16+r12] 2145 » movdqu» xmm8,XMMWORD[16+r12]
2142 pxor xmm15,xmm7 2146 pxor xmm15,xmm7
2143 » pshufd» xmm13,xmm14,013h 2147 » pshufd» xmm13,xmm14,0x13
2144 pxor xmm14,xmm14 2148 pxor xmm14,xmm14
2145 movdqa xmm2,xmm6 2149 movdqa xmm2,xmm6
2146 » movdqa» XMMWORD PTR[48+rsp],xmm6 2150 » movdqa» XMMWORD[48+rsp],xmm6
2147 » paddq» xmm6,xmm6 2151 » paddq» xmm6,xmm6
2148 » pand» xmm13,xmm12 2152 » pand» xmm13,xmm12
2149 » pcmpgtd»xmm14,xmm6 2153 » pcmpgtd»xmm14,xmm6
2150 » pxor» xmm6,xmm13 2154 » pxor» xmm6,xmm13
2151 » movdqu» xmm9,XMMWORD PTR[32+r12] 2155 » movdqu» xmm9,XMMWORD[32+r12]
2152 pxor xmm0,xmm8 2156 pxor xmm0,xmm8
2153 » pshufd» xmm13,xmm14,013h 2157 » pshufd» xmm13,xmm14,0x13
2154 pxor xmm14,xmm14 2158 pxor xmm14,xmm14
2155 movdqa xmm3,xmm6 2159 movdqa xmm3,xmm6
2156 » movdqa» XMMWORD PTR[64+rsp],xmm6 2160 » movdqa» XMMWORD[64+rsp],xmm6
2157 » paddq» xmm6,xmm6 2161 » paddq» xmm6,xmm6
2158 » pand» xmm13,xmm12 2162 » pand» xmm13,xmm12
2159 » pcmpgtd»xmm14,xmm6 2163 » pcmpgtd»xmm14,xmm6
2160 » pxor» xmm6,xmm13 2164 » pxor» xmm6,xmm13
2161 » movdqu» xmm10,XMMWORD PTR[48+r12] 2165 » movdqu» xmm10,XMMWORD[48+r12]
2162 pxor xmm1,xmm9 2166 pxor xmm1,xmm9
2163 » pshufd» xmm13,xmm14,013h 2167 » pshufd» xmm13,xmm14,0x13
2164 pxor xmm14,xmm14 2168 pxor xmm14,xmm14
2165 movdqa xmm4,xmm6 2169 movdqa xmm4,xmm6
2166 » movdqa» XMMWORD PTR[80+rsp],xmm6 2170 » movdqa» XMMWORD[80+rsp],xmm6
2167 » paddq» xmm6,xmm6 2171 » paddq» xmm6,xmm6
2168 » pand» xmm13,xmm12 2172 » pand» xmm13,xmm12
2169 » pcmpgtd»xmm14,xmm6 2173 » pcmpgtd»xmm14,xmm6
2170 » pxor» xmm6,xmm13 2174 » pxor» xmm6,xmm13
2171 » movdqu» xmm11,XMMWORD PTR[64+r12] 2175 » movdqu» xmm11,XMMWORD[64+r12]
2172 pxor xmm2,xmm10 2176 pxor xmm2,xmm10
2173 » pshufd» xmm13,xmm14,013h 2177 » pshufd» xmm13,xmm14,0x13
2174 pxor xmm14,xmm14 2178 pxor xmm14,xmm14
2175 movdqa xmm5,xmm6 2179 movdqa xmm5,xmm6
2176 » movdqa» XMMWORD PTR[96+rsp],xmm6 2180 » movdqa» XMMWORD[96+rsp],xmm6
2177 » paddq» xmm6,xmm6 2181 » paddq» xmm6,xmm6
2178 » pand» xmm13,xmm12 2182 » pand» xmm13,xmm12
2179 » pcmpgtd»xmm14,xmm6 2183 » pcmpgtd»xmm14,xmm6
2180 » pxor» xmm6,xmm13 2184 » pxor» xmm6,xmm13
2181 » movdqu» xmm12,XMMWORD PTR[80+r12] 2185 » movdqu» xmm12,XMMWORD[80+r12]
2182 pxor xmm3,xmm11 2186 pxor xmm3,xmm11
2183 » movdqu» xmm13,XMMWORD PTR[96+r12] 2187 » movdqu» xmm13,XMMWORD[96+r12]
2184 pxor xmm4,xmm12 2188 pxor xmm4,xmm12
2185 » movdqu» xmm14,XMMWORD PTR[112+r12] 2189 » movdqu» xmm14,XMMWORD[112+r12]
2186 » lea» r12,QWORD PTR[128+r12] 2190 » lea» r12,[128+r12]
2187 » movdqa» XMMWORD PTR[112+rsp],xmm6 2191 » movdqa» XMMWORD[112+rsp],xmm6
2188 pxor xmm5,xmm13 2192 pxor xmm5,xmm13
2189 » lea» rax,QWORD PTR[128+rsp] 2193 » lea» rax,[128+rsp]
2190 pxor xmm6,xmm14 2194 pxor xmm6,xmm14
2191 mov r10d,edx 2195 mov r10d,edx
2192 2196
2193 call _bsaes_decrypt8 2197 call _bsaes_decrypt8
2194 2198
2195 » pxor» xmm15,XMMWORD PTR[rsp] 2199 » pxor» xmm15,XMMWORD[rsp]
2196 » pxor» xmm0,XMMWORD PTR[16+rsp] 2200 » pxor» xmm0,XMMWORD[16+rsp]
2197 » movdqu» XMMWORD PTR[r13],xmm15 2201 » movdqu» XMMWORD[r13],xmm15
2198 » pxor» xmm5,XMMWORD PTR[32+rsp] 2202 » pxor» xmm5,XMMWORD[32+rsp]
2199 » movdqu» XMMWORD PTR[16+r13],xmm0 2203 » movdqu» XMMWORD[16+r13],xmm0
2200 » pxor» xmm3,XMMWORD PTR[48+rsp] 2204 » pxor» xmm3,XMMWORD[48+rsp]
2201 » movdqu» XMMWORD PTR[32+r13],xmm5 2205 » movdqu» XMMWORD[32+r13],xmm5
2202 » pxor» xmm1,XMMWORD PTR[64+rsp] 2206 » pxor» xmm1,XMMWORD[64+rsp]
2203 » movdqu» XMMWORD PTR[48+r13],xmm3 2207 » movdqu» XMMWORD[48+r13],xmm3
2204 » pxor» xmm6,XMMWORD PTR[80+rsp] 2208 » pxor» xmm6,XMMWORD[80+rsp]
2205 » movdqu» XMMWORD PTR[64+r13],xmm1 2209 » movdqu» XMMWORD[64+r13],xmm1
2206 » pxor» xmm2,XMMWORD PTR[96+rsp] 2210 » pxor» xmm2,XMMWORD[96+rsp]
2207 » movdqu» XMMWORD PTR[80+r13],xmm6 2211 » movdqu» XMMWORD[80+r13],xmm6
2208 » pxor» xmm4,XMMWORD PTR[112+rsp] 2212 » pxor» xmm4,XMMWORD[112+rsp]
2209 » movdqu» XMMWORD PTR[96+r13],xmm2 2213 » movdqu» XMMWORD[96+r13],xmm2
2210 » movdqu» XMMWORD PTR[112+r13],xmm4 2214 » movdqu» XMMWORD[112+r13],xmm4
2211 » lea» r13,QWORD PTR[128+r13] 2215 » lea» r13,[128+r13]
2212 2216
2213 » movdqa» xmm6,XMMWORD PTR[112+rsp] 2217 » movdqa» xmm6,XMMWORD[112+rsp]
2214 » pxor» xmm14,xmm14 2218 » pxor» xmm14,xmm14
2215 » movdqa» xmm12,XMMWORD PTR[$L$xts_magic] 2219 » movdqa» xmm12,XMMWORD[$L$xts_magic]
2216 » pcmpgtd»xmm14,xmm6 2220 » pcmpgtd»xmm14,xmm6
2217 » pshufd» xmm13,xmm14,013h 2221 » pshufd» xmm13,xmm14,0x13
2218 » pxor» xmm14,xmm14 2222 » pxor» xmm14,xmm14
2219 » paddq» xmm6,xmm6 2223 » paddq» xmm6,xmm6
2220 » pand» xmm13,xmm12 2224 » pand» xmm13,xmm12
2221 » pcmpgtd»xmm14,xmm6 2225 » pcmpgtd»xmm14,xmm6
2222 » pxor» xmm6,xmm13 2226 » pxor» xmm6,xmm13
2223 2227
2224 » sub» r14,080h 2228 » sub» r14,0x80
2225 » jnc» $L$xts_dec_loop 2229 » jnc» NEAR $L$xts_dec_loop
2226 2230
2227 $L$xts_dec_short:: 2231 $L$xts_dec_short:
2228 » add» r14,080h 2232 » add» r14,0x80
2229 » jz» $L$xts_dec_done 2233 » jz» NEAR $L$xts_dec_done
2230 » pshufd» xmm13,xmm14,013h 2234 » pshufd» xmm13,xmm14,0x13
2231 pxor xmm14,xmm14 2235 pxor xmm14,xmm14
2232 movdqa xmm15,xmm6 2236 movdqa xmm15,xmm6
2233 » movdqa» XMMWORD PTR[rsp],xmm6 2237 » movdqa» XMMWORD[rsp],xmm6
2234 » paddq» xmm6,xmm6 2238 » paddq» xmm6,xmm6
2235 » pand» xmm13,xmm12 2239 » pand» xmm13,xmm12
2236 » pcmpgtd»xmm14,xmm6 2240 » pcmpgtd»xmm14,xmm6
2237 » pxor» xmm6,xmm13 2241 » pxor» xmm6,xmm13
2238 » pshufd» xmm13,xmm14,013h 2242 » pshufd» xmm13,xmm14,0x13
2239 pxor xmm14,xmm14 2243 pxor xmm14,xmm14
2240 movdqa xmm0,xmm6 2244 movdqa xmm0,xmm6
2241 » movdqa» XMMWORD PTR[16+rsp],xmm6 2245 » movdqa» XMMWORD[16+rsp],xmm6
2242 » paddq» xmm6,xmm6 2246 » paddq» xmm6,xmm6
2243 » pand» xmm13,xmm12 2247 » pand» xmm13,xmm12
2244 » pcmpgtd»xmm14,xmm6 2248 » pcmpgtd»xmm14,xmm6
2245 » pxor» xmm6,xmm13 2249 » pxor» xmm6,xmm13
2246 » movdqu» xmm7,XMMWORD PTR[r12] 2250 » movdqu» xmm7,XMMWORD[r12]
2247 cmp r14,16 2251 cmp r14,16
2248 » je» $L$xts_dec_1 2252 » je» NEAR $L$xts_dec_1
2249 » pshufd» xmm13,xmm14,013h 2253 » pshufd» xmm13,xmm14,0x13
2250 pxor xmm14,xmm14 2254 pxor xmm14,xmm14
2251 movdqa xmm1,xmm6 2255 movdqa xmm1,xmm6
2252 » movdqa» XMMWORD PTR[32+rsp],xmm6 2256 » movdqa» XMMWORD[32+rsp],xmm6
2253 » paddq» xmm6,xmm6 2257 » paddq» xmm6,xmm6
2254 » pand» xmm13,xmm12 2258 » pand» xmm13,xmm12
2255 » pcmpgtd»xmm14,xmm6 2259 » pcmpgtd»xmm14,xmm6
2256 » pxor» xmm6,xmm13 2260 » pxor» xmm6,xmm13
2257 » movdqu» xmm8,XMMWORD PTR[16+r12] 2261 » movdqu» xmm8,XMMWORD[16+r12]
2258 cmp r14,32 2262 cmp r14,32
2259 » je» $L$xts_dec_2 2263 » je» NEAR $L$xts_dec_2
2260 pxor xmm15,xmm7 2264 pxor xmm15,xmm7
2261 » pshufd» xmm13,xmm14,013h 2265 » pshufd» xmm13,xmm14,0x13
2262 pxor xmm14,xmm14 2266 pxor xmm14,xmm14
2263 movdqa xmm2,xmm6 2267 movdqa xmm2,xmm6
2264 » movdqa» XMMWORD PTR[48+rsp],xmm6 2268 » movdqa» XMMWORD[48+rsp],xmm6
2265 » paddq» xmm6,xmm6 2269 » paddq» xmm6,xmm6
2266 » pand» xmm13,xmm12 2270 » pand» xmm13,xmm12
2267 » pcmpgtd»xmm14,xmm6 2271 » pcmpgtd»xmm14,xmm6
2268 » pxor» xmm6,xmm13 2272 » pxor» xmm6,xmm13
2269 » movdqu» xmm9,XMMWORD PTR[32+r12] 2273 » movdqu» xmm9,XMMWORD[32+r12]
2270 cmp r14,48 2274 cmp r14,48
2271 » je» $L$xts_dec_3 2275 » je» NEAR $L$xts_dec_3
2272 pxor xmm0,xmm8 2276 pxor xmm0,xmm8
2273 » pshufd» xmm13,xmm14,013h 2277 » pshufd» xmm13,xmm14,0x13
2274 pxor xmm14,xmm14 2278 pxor xmm14,xmm14
2275 movdqa xmm3,xmm6 2279 movdqa xmm3,xmm6
2276 » movdqa» XMMWORD PTR[64+rsp],xmm6 2280 » movdqa» XMMWORD[64+rsp],xmm6
2277 » paddq» xmm6,xmm6 2281 » paddq» xmm6,xmm6
2278 » pand» xmm13,xmm12 2282 » pand» xmm13,xmm12
2279 » pcmpgtd»xmm14,xmm6 2283 » pcmpgtd»xmm14,xmm6
2280 » pxor» xmm6,xmm13 2284 » pxor» xmm6,xmm13
2281 » movdqu» xmm10,XMMWORD PTR[48+r12] 2285 » movdqu» xmm10,XMMWORD[48+r12]
2282 cmp r14,64 2286 cmp r14,64
2283 » je» $L$xts_dec_4 2287 » je» NEAR $L$xts_dec_4
2284 pxor xmm1,xmm9 2288 pxor xmm1,xmm9
2285 » pshufd» xmm13,xmm14,013h 2289 » pshufd» xmm13,xmm14,0x13
2286 pxor xmm14,xmm14 2290 pxor xmm14,xmm14
2287 movdqa xmm4,xmm6 2291 movdqa xmm4,xmm6
2288 » movdqa» XMMWORD PTR[80+rsp],xmm6 2292 » movdqa» XMMWORD[80+rsp],xmm6
2289 » paddq» xmm6,xmm6 2293 » paddq» xmm6,xmm6
2290 » pand» xmm13,xmm12 2294 » pand» xmm13,xmm12
2291 » pcmpgtd»xmm14,xmm6 2295 » pcmpgtd»xmm14,xmm6
2292 » pxor» xmm6,xmm13 2296 » pxor» xmm6,xmm13
2293 » movdqu» xmm11,XMMWORD PTR[64+r12] 2297 » movdqu» xmm11,XMMWORD[64+r12]
2294 cmp r14,80 2298 cmp r14,80
2295 » je» $L$xts_dec_5 2299 » je» NEAR $L$xts_dec_5
2296 pxor xmm2,xmm10 2300 pxor xmm2,xmm10
2297 » pshufd» xmm13,xmm14,013h 2301 » pshufd» xmm13,xmm14,0x13
2298 pxor xmm14,xmm14 2302 pxor xmm14,xmm14
2299 movdqa xmm5,xmm6 2303 movdqa xmm5,xmm6
2300 » movdqa» XMMWORD PTR[96+rsp],xmm6 2304 » movdqa» XMMWORD[96+rsp],xmm6
2301 » paddq» xmm6,xmm6 2305 » paddq» xmm6,xmm6
2302 » pand» xmm13,xmm12 2306 » pand» xmm13,xmm12
2303 » pcmpgtd»xmm14,xmm6 2307 » pcmpgtd»xmm14,xmm6
2304 » pxor» xmm6,xmm13 2308 » pxor» xmm6,xmm13
2305 » movdqu» xmm12,XMMWORD PTR[80+r12] 2309 » movdqu» xmm12,XMMWORD[80+r12]
2306 cmp r14,96 2310 cmp r14,96
2307 » je» $L$xts_dec_6 2311 » je» NEAR $L$xts_dec_6
2308 pxor xmm3,xmm11 2312 pxor xmm3,xmm11
2309 » movdqu» xmm13,XMMWORD PTR[96+r12] 2313 » movdqu» xmm13,XMMWORD[96+r12]
2310 pxor xmm4,xmm12 2314 pxor xmm4,xmm12
2311 » movdqa» XMMWORD PTR[112+rsp],xmm6 2315 » movdqa» XMMWORD[112+rsp],xmm6
2312 » lea» r12,QWORD PTR[112+r12] 2316 » lea» r12,[112+r12]
2313 pxor xmm5,xmm13 2317 pxor xmm5,xmm13
2314 » lea» rax,QWORD PTR[128+rsp] 2318 » lea» rax,[128+rsp]
2315 » mov» r10d,edx 2319 » mov» r10d,edx
2316 2320
2317 » call» _bsaes_decrypt8 2321 » call» _bsaes_decrypt8
2318 2322
2319 » pxor» xmm15,XMMWORD PTR[rsp] 2323 » pxor» xmm15,XMMWORD[rsp]
2320 » pxor» xmm0,XMMWORD PTR[16+rsp] 2324 » pxor» xmm0,XMMWORD[16+rsp]
2321 » movdqu» XMMWORD PTR[r13],xmm15 2325 » movdqu» XMMWORD[r13],xmm15
2322 » pxor» xmm5,XMMWORD PTR[32+rsp] 2326 » pxor» xmm5,XMMWORD[32+rsp]
2323 » movdqu» XMMWORD PTR[16+r13],xmm0 2327 » movdqu» XMMWORD[16+r13],xmm0
2324 » pxor» xmm3,XMMWORD PTR[48+rsp] 2328 » pxor» xmm3,XMMWORD[48+rsp]
2325 » movdqu» XMMWORD PTR[32+r13],xmm5 2329 » movdqu» XMMWORD[32+r13],xmm5
2326 » pxor» xmm1,XMMWORD PTR[64+rsp] 2330 » pxor» xmm1,XMMWORD[64+rsp]
2327 » movdqu» XMMWORD PTR[48+r13],xmm3 2331 » movdqu» XMMWORD[48+r13],xmm3
2328 » pxor» xmm6,XMMWORD PTR[80+rsp] 2332 » pxor» xmm6,XMMWORD[80+rsp]
2329 » movdqu» XMMWORD PTR[64+r13],xmm1 2333 » movdqu» XMMWORD[64+r13],xmm1
2330 » pxor» xmm2,XMMWORD PTR[96+rsp] 2334 » pxor» xmm2,XMMWORD[96+rsp]
2331 » movdqu» XMMWORD PTR[80+r13],xmm6 2335 » movdqu» XMMWORD[80+r13],xmm6
2332 » movdqu» XMMWORD PTR[96+r13],xmm2 2336 » movdqu» XMMWORD[96+r13],xmm2
2333 » lea» r13,QWORD PTR[112+r13] 2337 » lea» r13,[112+r13]
2334 2338
2335 » movdqa» xmm6,XMMWORD PTR[112+rsp] 2339 » movdqa» xmm6,XMMWORD[112+rsp]
2336 » jmp» $L$xts_dec_done 2340 » jmp» NEAR $L$xts_dec_done
2337 ALIGN» 16 2341 ALIGN» 16
2338 $L$xts_dec_6:: 2342 $L$xts_dec_6:
2339 pxor xmm3,xmm11 2343 pxor xmm3,xmm11
2340 » lea» r12,QWORD PTR[96+r12] 2344 » lea» r12,[96+r12]
2341 pxor xmm4,xmm12 2345 pxor xmm4,xmm12
2342 » lea» rax,QWORD PTR[128+rsp] 2346 » lea» rax,[128+rsp]
2343 » mov» r10d,edx 2347 » mov» r10d,edx
2344 2348
2345 » call» _bsaes_decrypt8 2349 » call» _bsaes_decrypt8
2346 2350
2347 » pxor» xmm15,XMMWORD PTR[rsp] 2351 » pxor» xmm15,XMMWORD[rsp]
2348 » pxor» xmm0,XMMWORD PTR[16+rsp] 2352 » pxor» xmm0,XMMWORD[16+rsp]
2349 » movdqu» XMMWORD PTR[r13],xmm15 2353 » movdqu» XMMWORD[r13],xmm15
2350 » pxor» xmm5,XMMWORD PTR[32+rsp] 2354 » pxor» xmm5,XMMWORD[32+rsp]
2351 » movdqu» XMMWORD PTR[16+r13],xmm0 2355 » movdqu» XMMWORD[16+r13],xmm0
2352 » pxor» xmm3,XMMWORD PTR[48+rsp] 2356 » pxor» xmm3,XMMWORD[48+rsp]
2353 » movdqu» XMMWORD PTR[32+r13],xmm5 2357 » movdqu» XMMWORD[32+r13],xmm5
2354 » pxor» xmm1,XMMWORD PTR[64+rsp] 2358 » pxor» xmm1,XMMWORD[64+rsp]
2355 » movdqu» XMMWORD PTR[48+r13],xmm3 2359 » movdqu» XMMWORD[48+r13],xmm3
2356 » pxor» xmm6,XMMWORD PTR[80+rsp] 2360 » pxor» xmm6,XMMWORD[80+rsp]
2357 » movdqu» XMMWORD PTR[64+r13],xmm1 2361 » movdqu» XMMWORD[64+r13],xmm1
2358 » movdqu» XMMWORD PTR[80+r13],xmm6 2362 » movdqu» XMMWORD[80+r13],xmm6
2359 » lea» r13,QWORD PTR[96+r13] 2363 » lea» r13,[96+r13]
2360 2364
2361 » movdqa» xmm6,XMMWORD PTR[96+rsp] 2365 » movdqa» xmm6,XMMWORD[96+rsp]
2362 » jmp» $L$xts_dec_done 2366 » jmp» NEAR $L$xts_dec_done
2363 ALIGN» 16 2367 ALIGN» 16
2364 $L$xts_dec_5:: 2368 $L$xts_dec_5:
2365 pxor xmm2,xmm10 2369 pxor xmm2,xmm10
2366 » lea» r12,QWORD PTR[80+r12] 2370 » lea» r12,[80+r12]
2367 pxor xmm3,xmm11 2371 pxor xmm3,xmm11
2368 » lea» rax,QWORD PTR[128+rsp] 2372 » lea» rax,[128+rsp]
2369 » mov» r10d,edx 2373 » mov» r10d,edx
2370 2374
2371 » call» _bsaes_decrypt8 2375 » call» _bsaes_decrypt8
2372 2376
2373 » pxor» xmm15,XMMWORD PTR[rsp] 2377 » pxor» xmm15,XMMWORD[rsp]
2374 » pxor» xmm0,XMMWORD PTR[16+rsp] 2378 » pxor» xmm0,XMMWORD[16+rsp]
2375 » movdqu» XMMWORD PTR[r13],xmm15 2379 » movdqu» XMMWORD[r13],xmm15
2376 » pxor» xmm5,XMMWORD PTR[32+rsp] 2380 » pxor» xmm5,XMMWORD[32+rsp]
2377 » movdqu» XMMWORD PTR[16+r13],xmm0 2381 » movdqu» XMMWORD[16+r13],xmm0
2378 » pxor» xmm3,XMMWORD PTR[48+rsp] 2382 » pxor» xmm3,XMMWORD[48+rsp]
2379 » movdqu» XMMWORD PTR[32+r13],xmm5 2383 » movdqu» XMMWORD[32+r13],xmm5
2380 » pxor» xmm1,XMMWORD PTR[64+rsp] 2384 » pxor» xmm1,XMMWORD[64+rsp]
2381 » movdqu» XMMWORD PTR[48+r13],xmm3 2385 » movdqu» XMMWORD[48+r13],xmm3
2382 » movdqu» XMMWORD PTR[64+r13],xmm1 2386 » movdqu» XMMWORD[64+r13],xmm1
2383 » lea» r13,QWORD PTR[80+r13] 2387 » lea» r13,[80+r13]
2384 2388
2385 » movdqa» xmm6,XMMWORD PTR[80+rsp] 2389 » movdqa» xmm6,XMMWORD[80+rsp]
2386 » jmp» $L$xts_dec_done 2390 » jmp» NEAR $L$xts_dec_done
2387 ALIGN» 16 2391 ALIGN» 16
2388 $L$xts_dec_4:: 2392 $L$xts_dec_4:
2389 pxor xmm1,xmm9 2393 pxor xmm1,xmm9
2390 » lea» r12,QWORD PTR[64+r12] 2394 » lea» r12,[64+r12]
2391 pxor xmm2,xmm10 2395 pxor xmm2,xmm10
2392 » lea» rax,QWORD PTR[128+rsp] 2396 » lea» rax,[128+rsp]
2393 » mov» r10d,edx 2397 » mov» r10d,edx
2394 2398
2395 » call» _bsaes_decrypt8 2399 » call» _bsaes_decrypt8
2396 2400
2397 » pxor» xmm15,XMMWORD PTR[rsp] 2401 » pxor» xmm15,XMMWORD[rsp]
2398 » pxor» xmm0,XMMWORD PTR[16+rsp] 2402 » pxor» xmm0,XMMWORD[16+rsp]
2399 » movdqu» XMMWORD PTR[r13],xmm15 2403 » movdqu» XMMWORD[r13],xmm15
2400 » pxor» xmm5,XMMWORD PTR[32+rsp] 2404 » pxor» xmm5,XMMWORD[32+rsp]
2401 » movdqu» XMMWORD PTR[16+r13],xmm0 2405 » movdqu» XMMWORD[16+r13],xmm0
2402 » pxor» xmm3,XMMWORD PTR[48+rsp] 2406 » pxor» xmm3,XMMWORD[48+rsp]
2403 » movdqu» XMMWORD PTR[32+r13],xmm5 2407 » movdqu» XMMWORD[32+r13],xmm5
2404 » movdqu» XMMWORD PTR[48+r13],xmm3 2408 » movdqu» XMMWORD[48+r13],xmm3
2405 » lea» r13,QWORD PTR[64+r13] 2409 » lea» r13,[64+r13]
2406 2410
2407 » movdqa» xmm6,XMMWORD PTR[64+rsp] 2411 » movdqa» xmm6,XMMWORD[64+rsp]
2408 » jmp» $L$xts_dec_done 2412 » jmp» NEAR $L$xts_dec_done
2409 ALIGN» 16 2413 ALIGN» 16
2410 $L$xts_dec_3:: 2414 $L$xts_dec_3:
2411 pxor xmm0,xmm8 2415 pxor xmm0,xmm8
2412 » lea» r12,QWORD PTR[48+r12] 2416 » lea» r12,[48+r12]
2413 pxor xmm1,xmm9 2417 pxor xmm1,xmm9
2414 » lea» rax,QWORD PTR[128+rsp] 2418 » lea» rax,[128+rsp]
2415 » mov» r10d,edx 2419 » mov» r10d,edx
2416 2420
2417 » call» _bsaes_decrypt8 2421 » call» _bsaes_decrypt8
2418 2422
2419 » pxor» xmm15,XMMWORD PTR[rsp] 2423 » pxor» xmm15,XMMWORD[rsp]
2420 » pxor» xmm0,XMMWORD PTR[16+rsp] 2424 » pxor» xmm0,XMMWORD[16+rsp]
2421 » movdqu» XMMWORD PTR[r13],xmm15 2425 » movdqu» XMMWORD[r13],xmm15
2422 » pxor» xmm5,XMMWORD PTR[32+rsp] 2426 » pxor» xmm5,XMMWORD[32+rsp]
2423 » movdqu» XMMWORD PTR[16+r13],xmm0 2427 » movdqu» XMMWORD[16+r13],xmm0
2424 » movdqu» XMMWORD PTR[32+r13],xmm5 2428 » movdqu» XMMWORD[32+r13],xmm5
2425 » lea» r13,QWORD PTR[48+r13] 2429 » lea» r13,[48+r13]
2426 2430
2427 » movdqa» xmm6,XMMWORD PTR[48+rsp] 2431 » movdqa» xmm6,XMMWORD[48+rsp]
2428 » jmp» $L$xts_dec_done 2432 » jmp» NEAR $L$xts_dec_done
2429 ALIGN» 16 2433 ALIGN» 16
2430 $L$xts_dec_2:: 2434 $L$xts_dec_2:
2431 pxor xmm15,xmm7 2435 pxor xmm15,xmm7
2432 » lea» r12,QWORD PTR[32+r12] 2436 » lea» r12,[32+r12]
2433 pxor xmm0,xmm8 2437 pxor xmm0,xmm8
2434 » lea» rax,QWORD PTR[128+rsp] 2438 » lea» rax,[128+rsp]
2435 » mov» r10d,edx 2439 » mov» r10d,edx
2436 2440
2437 » call» _bsaes_decrypt8 2441 » call» _bsaes_decrypt8
2438 2442
2439 » pxor» xmm15,XMMWORD PTR[rsp] 2443 » pxor» xmm15,XMMWORD[rsp]
2440 » pxor» xmm0,XMMWORD PTR[16+rsp] 2444 » pxor» xmm0,XMMWORD[16+rsp]
2441 » movdqu» XMMWORD PTR[r13],xmm15 2445 » movdqu» XMMWORD[r13],xmm15
2442 » movdqu» XMMWORD PTR[16+r13],xmm0 2446 » movdqu» XMMWORD[16+r13],xmm0
2443 » lea» r13,QWORD PTR[32+r13] 2447 » lea» r13,[32+r13]
2444 2448
2445 » movdqa» xmm6,XMMWORD PTR[32+rsp] 2449 » movdqa» xmm6,XMMWORD[32+rsp]
2446 » jmp» $L$xts_dec_done 2450 » jmp» NEAR $L$xts_dec_done
2447 ALIGN» 16 2451 ALIGN» 16
2448 $L$xts_dec_1:: 2452 $L$xts_dec_1:
2449 pxor xmm7,xmm15 2453 pxor xmm7,xmm15
2450 » lea» r12,QWORD PTR[16+r12] 2454 » lea» r12,[16+r12]
2451 » movdqa» XMMWORD PTR[32+rbp],xmm7 2455 » movdqa» XMMWORD[32+rbp],xmm7
2452 » lea» rcx,QWORD PTR[32+rbp] 2456 » lea» rcx,[32+rbp]
2453 » lea» rdx,QWORD PTR[32+rbp] 2457 » lea» rdx,[32+rbp]
2454 » lea» r8,QWORD PTR[r15] 2458 » lea» r8,[r15]
2455 call asm_AES_decrypt 2459 call asm_AES_decrypt
2456 » pxor» xmm15,XMMWORD PTR[32+rbp] 2460 » pxor» xmm15,XMMWORD[32+rbp]
2457 2461
2458 2462
2459 2463
2460 2464
2461 2465
2462 » movdqu» XMMWORD PTR[r13],xmm15 2466 » movdqu» XMMWORD[r13],xmm15
2463 » lea» r13,QWORD PTR[16+r13] 2467 » lea» r13,[16+r13]
2464 2468
2465 » movdqa» xmm6,XMMWORD PTR[16+rsp] 2469 » movdqa» xmm6,XMMWORD[16+rsp]
2466 2470
2467 $L$xts_dec_done:: 2471 $L$xts_dec_done:
2468 and ebx,15 2472 and ebx,15
2469 » jz» $L$xts_dec_ret 2473 » jz» NEAR $L$xts_dec_ret
2470 2474
2471 » pxor» xmm14,xmm14 2475 » pxor» xmm14,xmm14
2472 » movdqa» xmm12,XMMWORD PTR[$L$xts_magic] 2476 » movdqa» xmm12,XMMWORD[$L$xts_magic]
2473 » pcmpgtd»xmm14,xmm6 2477 » pcmpgtd»xmm14,xmm6
2474 » pshufd» xmm13,xmm14,013h 2478 » pshufd» xmm13,xmm14,0x13
2475 movdqa xmm5,xmm6 2479 movdqa xmm5,xmm6
2476 paddq xmm6,xmm6 2480 paddq xmm6,xmm6
2477 pand xmm13,xmm12 2481 pand xmm13,xmm12
2478 » movdqu» xmm15,XMMWORD PTR[r12] 2482 » movdqu» xmm15,XMMWORD[r12]
2479 » pxor» xmm6,xmm13 2483 » pxor» xmm6,xmm13
2480 2484
2481 » lea» rcx,QWORD PTR[32+rbp] 2485 » lea» rcx,[32+rbp]
2482 pxor xmm15,xmm6 2486 pxor xmm15,xmm6
2483 » lea» rdx,QWORD PTR[32+rbp] 2487 » lea» rdx,[32+rbp]
2484 » movdqa» XMMWORD PTR[32+rbp],xmm15 2488 » movdqa» XMMWORD[32+rbp],xmm15
2485 » lea» r8,QWORD PTR[r15] 2489 » lea» r8,[r15]
2486 call asm_AES_decrypt 2490 call asm_AES_decrypt
2487 » pxor» xmm6,XMMWORD PTR[32+rbp] 2491 » pxor» xmm6,XMMWORD[32+rbp]
2488 mov rdx,r13 2492 mov rdx,r13
2489 » movdqu» XMMWORD PTR[r13],xmm6 2493 » movdqu» XMMWORD[r13],xmm6
2490 2494
2491 $L$xts_dec_steal:: 2495 $L$xts_dec_steal:
2492 » movzx» eax,BYTE PTR[16+r12] 2496 » movzx» eax,BYTE[16+r12]
2493 » movzx» ecx,BYTE PTR[rdx] 2497 » movzx» ecx,BYTE[rdx]
2494 » lea» r12,QWORD PTR[1+r12] 2498 » lea» r12,[1+r12]
2495 » mov» BYTE PTR[rdx],al 2499 » mov» BYTE[rdx],al
2496 » mov» BYTE PTR[16+rdx],cl 2500 » mov» BYTE[16+rdx],cl
2497 » lea» rdx,QWORD PTR[1+rdx] 2501 » lea» rdx,[1+rdx]
2498 sub ebx,1 2502 sub ebx,1
2499 » jnz» $L$xts_dec_steal 2503 » jnz» NEAR $L$xts_dec_steal
2500 2504
2501 » movdqu» xmm15,XMMWORD PTR[r13] 2505 » movdqu» xmm15,XMMWORD[r13]
2502 » lea» rcx,QWORD PTR[32+rbp] 2506 » lea» rcx,[32+rbp]
2503 pxor xmm15,xmm5 2507 pxor xmm15,xmm5
2504 » lea» rdx,QWORD PTR[32+rbp] 2508 » lea» rdx,[32+rbp]
2505 » movdqa» XMMWORD PTR[32+rbp],xmm15 2509 » movdqa» XMMWORD[32+rbp],xmm15
2506 » lea» r8,QWORD PTR[r15] 2510 » lea» r8,[r15]
2507 call asm_AES_decrypt 2511 call asm_AES_decrypt
2508 » pxor» xmm5,XMMWORD PTR[32+rbp] 2512 » pxor» xmm5,XMMWORD[32+rbp]
2509 » movdqu» XMMWORD PTR[r13],xmm5 2513 » movdqu» XMMWORD[r13],xmm5
2510 2514
2511 $L$xts_dec_ret:: 2515 $L$xts_dec_ret:
2512 » lea» rax,QWORD PTR[rsp] 2516 » lea» rax,[rsp]
2513 pxor xmm0,xmm0 2517 pxor xmm0,xmm0
2514 $L$xts_dec_bzero:: 2518 $L$xts_dec_bzero:
2515 » movdqa» XMMWORD PTR[rax],xmm0 2519 » movdqa» XMMWORD[rax],xmm0
2516 » movdqa» XMMWORD PTR[16+rax],xmm0 2520 » movdqa» XMMWORD[16+rax],xmm0
2517 » lea» rax,QWORD PTR[32+rax] 2521 » lea» rax,[32+rax]
2518 cmp rbp,rax 2522 cmp rbp,rax
2519 » ja» $L$xts_dec_bzero 2523 » ja» NEAR $L$xts_dec_bzero
2520 2524
2521 » lea» rsp,QWORD PTR[rbp] 2525 » lea» rsp,[rbp]
2522 » movaps» xmm6,XMMWORD PTR[64+rbp] 2526 » movaps» xmm6,XMMWORD[64+rbp]
2523 » movaps» xmm7,XMMWORD PTR[80+rbp] 2527 » movaps» xmm7,XMMWORD[80+rbp]
2524 » movaps» xmm8,XMMWORD PTR[96+rbp] 2528 » movaps» xmm8,XMMWORD[96+rbp]
2525 » movaps» xmm9,XMMWORD PTR[112+rbp] 2529 » movaps» xmm9,XMMWORD[112+rbp]
2526 » movaps» xmm10,XMMWORD PTR[128+rbp] 2530 » movaps» xmm10,XMMWORD[128+rbp]
2527 » movaps» xmm11,XMMWORD PTR[144+rbp] 2531 » movaps» xmm11,XMMWORD[144+rbp]
2528 » movaps» xmm12,XMMWORD PTR[160+rbp] 2532 » movaps» xmm12,XMMWORD[160+rbp]
2529 » movaps» xmm13,XMMWORD PTR[176+rbp] 2533 » movaps» xmm13,XMMWORD[176+rbp]
2530 » movaps» xmm14,XMMWORD PTR[192+rbp] 2534 » movaps» xmm14,XMMWORD[192+rbp]
2531 » movaps» xmm15,XMMWORD PTR[208+rbp] 2535 » movaps» xmm15,XMMWORD[208+rbp]
2532 » lea» rsp,QWORD PTR[160+rbp] 2536 » lea» rsp,[160+rbp]
2533 » mov» r15,QWORD PTR[72+rsp] 2537 » mov» r15,QWORD[72+rsp]
2534 » mov» r14,QWORD PTR[80+rsp] 2538 » mov» r14,QWORD[80+rsp]
2535 » mov» r13,QWORD PTR[88+rsp] 2539 » mov» r13,QWORD[88+rsp]
2536 » mov» r12,QWORD PTR[96+rsp] 2540 » mov» r12,QWORD[96+rsp]
2537 » mov» rbx,QWORD PTR[104+rsp] 2541 » mov» rbx,QWORD[104+rsp]
2538 » mov» rax,QWORD PTR[112+rsp] 2542 » mov» rax,QWORD[112+rsp]
2539 » lea» rsp,QWORD PTR[120+rsp] 2543 » lea» rsp,[120+rsp]
2540 mov rbp,rax 2544 mov rbp,rax
2541 $L$xts_dec_epilogue:: 2545 $L$xts_dec_epilogue:
2542 DB 0F3h,0C3h ;repret 2546 DB 0F3h,0C3h ;repret
2543 bsaes_xts_decrypt» ENDP 2547
2544 2548
2545 ALIGN 64 2549 ALIGN 64
2546 _bsaes_const:: 2550 _bsaes_const:
2547 $L$M0ISR:: 2551 $L$M0ISR:
2548 » DQ» 00a0e0206070b0f03h,00004080c0d010509h 2552 » DQ» 0x0a0e0206070b0f03,0x0004080c0d010509
2549 $L$ISRM0:: 2553 $L$ISRM0:
2550 » DQ» 001040b0e0205080fh,00306090c00070a0dh 2554 » DQ» 0x01040b0e0205080f,0x0306090c00070a0d
2551 $L$ISR:: 2555 $L$ISR:
2552 » DQ» 00504070602010003h,00f0e0d0c080b0a09h 2556 » DQ» 0x0504070602010003,0x0f0e0d0c080b0a09
2553 $L$BS0:: 2557 $L$BS0:
2554 » DQ» 05555555555555555h,05555555555555555h 2558 » DQ» 0x5555555555555555,0x5555555555555555
2555 $L$BS1:: 2559 $L$BS1:
2556 » DQ» 03333333333333333h,03333333333333333h 2560 » DQ» 0x3333333333333333,0x3333333333333333
2557 $L$BS2:: 2561 $L$BS2:
2558 » DQ» 00f0f0f0f0f0f0f0fh,00f0f0f0f0f0f0f0fh 2562 » DQ» 0x0f0f0f0f0f0f0f0f,0x0f0f0f0f0f0f0f0f
2559 $L$SR:: 2563 $L$SR:
2560 » DQ» 00504070600030201h,00f0e0d0c0a09080bh 2564 » DQ» 0x0504070600030201,0x0f0e0d0c0a09080b
2561 $L$SRM0:: 2565 $L$SRM0:
2562 » DQ» 00304090e00050a0fh,001060b0c0207080dh 2566 » DQ» 0x0304090e00050a0f,0x01060b0c0207080d
2563 $L$M0SR:: 2567 $L$M0SR:
2564 » DQ» 00a0e02060f03070bh,00004080c05090d01h 2568 » DQ» 0x0a0e02060f03070b,0x0004080c05090d01
2565 $L$SWPUP:: 2569 $L$SWPUP:
2566 » DQ» 00706050403020100h,00c0d0e0f0b0a0908h 2570 » DQ» 0x0706050403020100,0x0c0d0e0f0b0a0908
2567 $L$SWPUPM0SR:: 2571 $L$SWPUPM0SR:
2568 » DQ» 00a0d02060c03070bh,00004080f05090e01h 2572 » DQ» 0x0a0d02060c03070b,0x0004080f05090e01
2569 $L$ADD1:: 2573 $L$ADD1:
2570 » DQ» 00000000000000000h,00000000100000000h 2574 » DQ» 0x0000000000000000,0x0000000100000000
2571 $L$ADD2:: 2575 $L$ADD2:
2572 » DQ» 00000000000000000h,00000000200000000h 2576 » DQ» 0x0000000000000000,0x0000000200000000
2573 $L$ADD3:: 2577 $L$ADD3:
2574 » DQ» 00000000000000000h,00000000300000000h 2578 » DQ» 0x0000000000000000,0x0000000300000000
2575 $L$ADD4:: 2579 $L$ADD4:
2576 » DQ» 00000000000000000h,00000000400000000h 2580 » DQ» 0x0000000000000000,0x0000000400000000
2577 $L$ADD5:: 2581 $L$ADD5:
2578 » DQ» 00000000000000000h,00000000500000000h 2582 » DQ» 0x0000000000000000,0x0000000500000000
2579 $L$ADD6:: 2583 $L$ADD6:
2580 » DQ» 00000000000000000h,00000000600000000h 2584 » DQ» 0x0000000000000000,0x0000000600000000
2581 $L$ADD7:: 2585 $L$ADD7:
2582 » DQ» 00000000000000000h,00000000700000000h 2586 » DQ» 0x0000000000000000,0x0000000700000000
2583 $L$ADD8:: 2587 $L$ADD8:
2584 » DQ» 00000000000000000h,00000000800000000h 2588 » DQ» 0x0000000000000000,0x0000000800000000
2585 $L$xts_magic:: 2589 $L$xts_magic:
2586 » DD» 087h,0,1,0 2590 » DD» 0x87,0,1,0
2587 $L$masks:: 2591 $L$masks:
2588 » DQ» 00101010101010101h,00101010101010101h 2592 » DQ» 0x0101010101010101,0x0101010101010101
2589 » DQ» 00202020202020202h,00202020202020202h 2593 » DQ» 0x0202020202020202,0x0202020202020202
2590 » DQ» 00404040404040404h,00404040404040404h 2594 » DQ» 0x0404040404040404,0x0404040404040404
2591 » DQ» 00808080808080808h,00808080808080808h 2595 » DQ» 0x0808080808080808,0x0808080808080808
2592 $L$M0:: 2596 $L$M0:
2593 » DQ» 002060a0e03070b0fh,00004080c0105090dh 2597 » DQ» 0x02060a0e03070b0f,0x0004080c0105090d
2594 $L$63:: 2598 $L$63:
2595 » DQ» 06363636363636363h,06363636363636363h 2599 » DQ» 0x6363636363636363,0x6363636363636363
2596 DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102 2600 DB 66,105,116,45,115,108,105,99,101,100,32,65,69,83,32,102
2597 DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44 2601 DB 111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44
2598 DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44 2602 DB 32,69,109,105,108,105,97,32,75,195,164,115,112,101,114,44
2599 DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32 2603 DB 32,80,101,116,101,114,32,83,99,104,119,97,98,101,44,32
2600 DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0 2604 DB 65,110,100,121,32,80,111,108,121,97,107,111,118,0
2601 ALIGN 64 2605 ALIGN 64
2602 2606
2603 EXTERN» __imp_RtlVirtualUnwind:NEAR 2607 EXTERN» __imp_RtlVirtualUnwind
2604 2608
2605 ALIGN 16 2609 ALIGN 16
2606 se_handler» PROC PRIVATE 2610 se_handler:
2607 push rsi 2611 push rsi
2608 push rdi 2612 push rdi
2609 push rbx 2613 push rbx
2610 push rbp 2614 push rbp
2611 push r12 2615 push r12
2612 push r13 2616 push r13
2613 push r14 2617 push r14
2614 push r15 2618 push r15
2615 pushfq 2619 pushfq
2616 sub rsp,64 2620 sub rsp,64
2617 2621
2618 » mov» rax,QWORD PTR[120+r8] 2622 » mov» rax,QWORD[120+r8]
2619 » mov» rbx,QWORD PTR[248+r8] 2623 » mov» rbx,QWORD[248+r8]
2620 2624
2621 » mov» rsi,QWORD PTR[8+r9] 2625 » mov» rsi,QWORD[8+r9]
2622 » mov» r11,QWORD PTR[56+r9] 2626 » mov» r11,QWORD[56+r9]
2623 2627
2624 » mov» r10d,DWORD PTR[r11] 2628 » mov» r10d,DWORD[r11]
2625 » lea» r10,QWORD PTR[r10*1+rsi] 2629 » lea» r10,[r10*1+rsi]
2626 cmp rbx,r10 2630 cmp rbx,r10
2627 » jb» $L$in_prologue 2631 » jb» NEAR $L$in_prologue
2628 2632
2629 » mov» rax,QWORD PTR[152+r8] 2633 » mov» rax,QWORD[152+r8]
2630 2634
2631 » mov» r10d,DWORD PTR[4+r11] 2635 » mov» r10d,DWORD[4+r11]
2632 » lea» r10,QWORD PTR[r10*1+rsi] 2636 » lea» r10,[r10*1+rsi]
2633 cmp rbx,r10 2637 cmp rbx,r10
2634 » jae» $L$in_prologue 2638 » jae» NEAR $L$in_prologue
2635 2639
2636 » mov» rax,QWORD PTR[160+r8] 2640 » mov» rax,QWORD[160+r8]
2637 2641
2638 » lea» rsi,QWORD PTR[64+rax] 2642 » lea» rsi,[64+rax]
2639 » lea» rdi,QWORD PTR[512+r8] 2643 » lea» rdi,[512+r8]
2640 mov ecx,20 2644 mov ecx,20
2641 » DD» 0a548f3fch 2645 » DD» 0xa548f3fc
2642 » lea» rax,QWORD PTR[160+rax] 2646 » lea» rax,[160+rax]
2643 2647
2644 » mov» rbp,QWORD PTR[112+rax] 2648 » mov» rbp,QWORD[112+rax]
2645 » mov» rbx,QWORD PTR[104+rax] 2649 » mov» rbx,QWORD[104+rax]
2646 » mov» r12,QWORD PTR[96+rax] 2650 » mov» r12,QWORD[96+rax]
2647 » mov» r13,QWORD PTR[88+rax] 2651 » mov» r13,QWORD[88+rax]
2648 » mov» r14,QWORD PTR[80+rax] 2652 » mov» r14,QWORD[80+rax]
2649 » mov» r15,QWORD PTR[72+rax] 2653 » mov» r15,QWORD[72+rax]
2650 » lea» rax,QWORD PTR[120+rax] 2654 » lea» rax,[120+rax]
2651 » mov» QWORD PTR[144+r8],rbx 2655 » mov» QWORD[144+r8],rbx
2652 » mov» QWORD PTR[160+r8],rbp 2656 » mov» QWORD[160+r8],rbp
2653 » mov» QWORD PTR[216+r8],r12 2657 » mov» QWORD[216+r8],r12
2654 » mov» QWORD PTR[224+r8],r13 2658 » mov» QWORD[224+r8],r13
2655 » mov» QWORD PTR[232+r8],r14 2659 » mov» QWORD[232+r8],r14
2656 » mov» QWORD PTR[240+r8],r15 2660 » mov» QWORD[240+r8],r15
2657 2661
2658 $L$in_prologue:: 2662 $L$in_prologue:
2659 » mov» QWORD PTR[152+r8],rax 2663 » mov» QWORD[152+r8],rax
2660 2664
2661 » mov» rdi,QWORD PTR[40+r9] 2665 » mov» rdi,QWORD[40+r9]
2662 mov rsi,r8 2666 mov rsi,r8
2663 mov ecx,154 2667 mov ecx,154
2664 » DD» 0a548f3fch 2668 » DD» 0xa548f3fc
2665 2669
2666 mov rsi,r9 2670 mov rsi,r9
2667 xor rcx,rcx 2671 xor rcx,rcx
2668 » mov» rdx,QWORD PTR[8+rsi] 2672 » mov» rdx,QWORD[8+rsi]
2669 » mov» r8,QWORD PTR[rsi] 2673 » mov» r8,QWORD[rsi]
2670 » mov» r9,QWORD PTR[16+rsi] 2674 » mov» r9,QWORD[16+rsi]
2671 » mov» r10,QWORD PTR[40+rsi] 2675 » mov» r10,QWORD[40+rsi]
2672 » lea» r11,QWORD PTR[56+rsi] 2676 » lea» r11,[56+rsi]
2673 » lea» r12,QWORD PTR[24+rsi] 2677 » lea» r12,[24+rsi]
2674 » mov» QWORD PTR[32+rsp],r10 2678 » mov» QWORD[32+rsp],r10
2675 » mov» QWORD PTR[40+rsp],r11 2679 » mov» QWORD[40+rsp],r11
2676 » mov» QWORD PTR[48+rsp],r12 2680 » mov» QWORD[48+rsp],r12
2677 » mov» QWORD PTR[56+rsp],rcx 2681 » mov» QWORD[56+rsp],rcx
2678 » call» QWORD PTR[__imp_RtlVirtualUnwind] 2682 » call» QWORD[__imp_RtlVirtualUnwind]
2679 2683
2680 mov eax,1 2684 mov eax,1
2681 add rsp,64 2685 add rsp,64
2682 popfq 2686 popfq
2683 pop r15 2687 pop r15
2684 pop r14 2688 pop r14
2685 pop r13 2689 pop r13
2686 pop r12 2690 pop r12
2687 pop rbp 2691 pop rbp
2688 pop rbx 2692 pop rbx
2689 pop rdi 2693 pop rdi
2690 pop rsi 2694 pop rsi
2691 DB 0F3h,0C3h ;repret 2695 DB 0F3h,0C3h ;repret
2692 se_handler ENDP
2693 2696
2694 .text$» ENDS 2697
2695 .pdata» SEGMENT READONLY ALIGN(4) 2698 section».pdata rdata align=4
2696 ALIGN 4 2699 ALIGN 4
2697 » DD» imagerel $L$cbc_dec_prologue 2700 » DD» $L$cbc_dec_prologue wrt ..imagebase
2698 » DD» imagerel $L$cbc_dec_epilogue 2701 » DD» $L$cbc_dec_epilogue wrt ..imagebase
2699 » DD» imagerel $L$cbc_dec_info 2702 » DD» $L$cbc_dec_info wrt ..imagebase
2700 2703
2701 » DD» imagerel $L$ctr_enc_prologue 2704 » DD» $L$ctr_enc_prologue wrt ..imagebase
2702 » DD» imagerel $L$ctr_enc_epilogue 2705 » DD» $L$ctr_enc_epilogue wrt ..imagebase
2703 » DD» imagerel $L$ctr_enc_info 2706 » DD» $L$ctr_enc_info wrt ..imagebase
2704 2707
2705 » DD» imagerel $L$xts_enc_prologue 2708 » DD» $L$xts_enc_prologue wrt ..imagebase
2706 » DD» imagerel $L$xts_enc_epilogue 2709 » DD» $L$xts_enc_epilogue wrt ..imagebase
2707 » DD» imagerel $L$xts_enc_info 2710 » DD» $L$xts_enc_info wrt ..imagebase
2708 2711
2709 » DD» imagerel $L$xts_dec_prologue 2712 » DD» $L$xts_dec_prologue wrt ..imagebase
2710 » DD» imagerel $L$xts_dec_epilogue 2713 » DD» $L$xts_dec_epilogue wrt ..imagebase
2711 » DD» imagerel $L$xts_dec_info 2714 » DD» $L$xts_dec_info wrt ..imagebase
2712 2715
2713 .pdata» ENDS 2716 section».xdata rdata align=8
2714 .xdata» SEGMENT READONLY ALIGN(8)
2715 ALIGN 8 2717 ALIGN 8
2716 $L$cbc_dec_info:: 2718 $L$cbc_dec_info:
2717 DB 9,0,0,0 2719 DB 9,0,0,0
2718 » DD» imagerel se_handler 2720 » DD» se_handler wrt ..imagebase
2719 » DD» imagerel $L$cbc_dec_body,imagerel $L$cbc_dec_epilogue 2721 » DD» $L$cbc_dec_body wrt ..imagebase,$L$cbc_dec_epilogue wrt ..imageb ase
2720 $L$ctr_enc_info:: 2722 $L$ctr_enc_info:
2721 DB 9,0,0,0 2723 DB 9,0,0,0
2722 » DD» imagerel se_handler 2724 » DD» se_handler wrt ..imagebase
2723 » DD» imagerel $L$ctr_enc_body,imagerel $L$ctr_enc_epilogue 2725 » DD» $L$ctr_enc_body wrt ..imagebase,$L$ctr_enc_epilogue wrt ..imageb ase
2724 $L$xts_enc_info:: 2726 $L$xts_enc_info:
2725 DB 9,0,0,0 2727 DB 9,0,0,0
2726 » DD» imagerel se_handler 2728 » DD» se_handler wrt ..imagebase
2727 » DD» imagerel $L$xts_enc_body,imagerel $L$xts_enc_epilogue 2729 » DD» $L$xts_enc_body wrt ..imagebase,$L$xts_enc_epilogue wrt ..imageb ase
2728 $L$xts_dec_info:: 2730 $L$xts_dec_info:
2729 DB 9,0,0,0 2731 DB 9,0,0,0
2730 » DD» imagerel se_handler 2732 » DD» se_handler wrt ..imagebase
2731 » DD» imagerel $L$xts_dec_body,imagerel $L$xts_dec_epilogue 2733 » DD» $L$xts_dec_body wrt ..imagebase,$L$xts_dec_epilogue wrt ..imageb ase
2732
2733 .xdata» ENDS
2734 END
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698