VirtualBox

source: vbox/trunk/src/libs/openssl-3.1.7/crypto/genasm-nasm/aesni-sha1-x86_64.S@ 107278

最後變更 在這個檔案從107278是 99371,由 vboxsync 提交於 23 月 前

openssl-3.1.0: After generating headers and asm (kmk recreate-headers recreate-headers)

檔案大小: 57.9 KB
 
1default rel
2%define XMMWORD
3%define YMMWORD
4%define ZMMWORD
5section .text code align=64
6
7EXTERN OPENSSL_ia32cap_P
8
9global aesni_cbc_sha1_enc
10
11ALIGN 32
12aesni_cbc_sha1_enc:
13
14
15 mov r10d,DWORD[((OPENSSL_ia32cap_P+0))]
16 mov r11,QWORD[((OPENSSL_ia32cap_P+4))]
17 bt r11,61
18 jc NEAR aesni_cbc_sha1_enc_shaext
19 and r11d,268435456
20 and r10d,1073741824
21 or r10d,r11d
22 cmp r10d,1342177280
23 je NEAR aesni_cbc_sha1_enc_avx
24 jmp NEAR aesni_cbc_sha1_enc_ssse3
25 DB 0F3h,0C3h ;repret
26
27
28
29ALIGN 32
30aesni_cbc_sha1_enc_ssse3:
31 mov QWORD[8+rsp],rdi ;WIN64 prologue
32 mov QWORD[16+rsp],rsi
33 mov rax,rsp
34$L$SEH_begin_aesni_cbc_sha1_enc_ssse3:
35 mov rdi,rcx
36 mov rsi,rdx
37 mov rdx,r8
38 mov rcx,r9
39 mov r8,QWORD[40+rsp]
40 mov r9,QWORD[48+rsp]
41
42
43
44 mov r10,QWORD[56+rsp]
45
46
47 push rbx
48
49 push rbp
50
51 push r12
52
53 push r13
54
55 push r14
56
57 push r15
58
59 lea rsp,[((-264))+rsp]
60
61
62
63 movaps XMMWORD[(96+0)+rsp],xmm6
64 movaps XMMWORD[(96+16)+rsp],xmm7
65 movaps XMMWORD[(96+32)+rsp],xmm8
66 movaps XMMWORD[(96+48)+rsp],xmm9
67 movaps XMMWORD[(96+64)+rsp],xmm10
68 movaps XMMWORD[(96+80)+rsp],xmm11
69 movaps XMMWORD[(96+96)+rsp],xmm12
70 movaps XMMWORD[(96+112)+rsp],xmm13
71 movaps XMMWORD[(96+128)+rsp],xmm14
72 movaps XMMWORD[(96+144)+rsp],xmm15
73$L$prologue_ssse3:
74 mov r12,rdi
75 mov r13,rsi
76 mov r14,rdx
77 lea r15,[112+rcx]
78 movdqu xmm2,XMMWORD[r8]
79 mov QWORD[88+rsp],r8
80 shl r14,6
81 sub r13,r12
82 mov r8d,DWORD[((240-112))+r15]
83 add r14,r10
84
85 lea r11,[K_XX_XX]
86 mov eax,DWORD[r9]
87 mov ebx,DWORD[4+r9]
88 mov ecx,DWORD[8+r9]
89 mov edx,DWORD[12+r9]
90 mov esi,ebx
91 mov ebp,DWORD[16+r9]
92 mov edi,ecx
93 xor edi,edx
94 and esi,edi
95
96 movdqa xmm3,XMMWORD[64+r11]
97 movdqa xmm13,XMMWORD[r11]
98 movdqu xmm4,XMMWORD[r10]
99 movdqu xmm5,XMMWORD[16+r10]
100 movdqu xmm6,XMMWORD[32+r10]
101 movdqu xmm7,XMMWORD[48+r10]
102DB 102,15,56,0,227
103DB 102,15,56,0,235
104DB 102,15,56,0,243
105 add r10,64
106 paddd xmm4,xmm13
107DB 102,15,56,0,251
108 paddd xmm5,xmm13
109 paddd xmm6,xmm13
110 movdqa XMMWORD[rsp],xmm4
111 psubd xmm4,xmm13
112 movdqa XMMWORD[16+rsp],xmm5
113 psubd xmm5,xmm13
114 movdqa XMMWORD[32+rsp],xmm6
115 psubd xmm6,xmm13
116 movups xmm15,XMMWORD[((-112))+r15]
117 movups xmm0,XMMWORD[((16-112))+r15]
118 jmp NEAR $L$oop_ssse3
119ALIGN 32
120$L$oop_ssse3:
121 ror ebx,2
122 movups xmm14,XMMWORD[r12]
123 xorps xmm14,xmm15
124 xorps xmm2,xmm14
125 movups xmm1,XMMWORD[((-80))+r15]
126DB 102,15,56,220,208
127 pshufd xmm8,xmm4,238
128 xor esi,edx
129 movdqa xmm12,xmm7
130 paddd xmm13,xmm7
131 mov edi,eax
132 add ebp,DWORD[rsp]
133 punpcklqdq xmm8,xmm5
134 xor ebx,ecx
135 rol eax,5
136 add ebp,esi
137 psrldq xmm12,4
138 and edi,ebx
139 xor ebx,ecx
140 pxor xmm8,xmm4
141 add ebp,eax
142 ror eax,7
143 pxor xmm12,xmm6
144 xor edi,ecx
145 mov esi,ebp
146 add edx,DWORD[4+rsp]
147 pxor xmm8,xmm12
148 xor eax,ebx
149 rol ebp,5
150 movdqa XMMWORD[48+rsp],xmm13
151 add edx,edi
152 movups xmm0,XMMWORD[((-64))+r15]
153DB 102,15,56,220,209
154 and esi,eax
155 movdqa xmm3,xmm8
156 xor eax,ebx
157 add edx,ebp
158 ror ebp,7
159 movdqa xmm12,xmm8
160 xor esi,ebx
161 pslldq xmm3,12
162 paddd xmm8,xmm8
163 mov edi,edx
164 add ecx,DWORD[8+rsp]
165 psrld xmm12,31
166 xor ebp,eax
167 rol edx,5
168 add ecx,esi
169 movdqa xmm13,xmm3
170 and edi,ebp
171 xor ebp,eax
172 psrld xmm3,30
173 add ecx,edx
174 ror edx,7
175 por xmm8,xmm12
176 xor edi,eax
177 mov esi,ecx
178 add ebx,DWORD[12+rsp]
179 movups xmm1,XMMWORD[((-48))+r15]
180DB 102,15,56,220,208
181 pslld xmm13,2
182 pxor xmm8,xmm3
183 xor edx,ebp
184 movdqa xmm3,XMMWORD[r11]
185 rol ecx,5
186 add ebx,edi
187 and esi,edx
188 pxor xmm8,xmm13
189 xor edx,ebp
190 add ebx,ecx
191 ror ecx,7
192 pshufd xmm9,xmm5,238
193 xor esi,ebp
194 movdqa xmm13,xmm8
195 paddd xmm3,xmm8
196 mov edi,ebx
197 add eax,DWORD[16+rsp]
198 punpcklqdq xmm9,xmm6
199 xor ecx,edx
200 rol ebx,5
201 add eax,esi
202 psrldq xmm13,4
203 and edi,ecx
204 xor ecx,edx
205 pxor xmm9,xmm5
206 add eax,ebx
207 ror ebx,7
208 movups xmm0,XMMWORD[((-32))+r15]
209DB 102,15,56,220,209
210 pxor xmm13,xmm7
211 xor edi,edx
212 mov esi,eax
213 add ebp,DWORD[20+rsp]
214 pxor xmm9,xmm13
215 xor ebx,ecx
216 rol eax,5
217 movdqa XMMWORD[rsp],xmm3
218 add ebp,edi
219 and esi,ebx
220 movdqa xmm12,xmm9
221 xor ebx,ecx
222 add ebp,eax
223 ror eax,7
224 movdqa xmm13,xmm9
225 xor esi,ecx
226 pslldq xmm12,12
227 paddd xmm9,xmm9
228 mov edi,ebp
229 add edx,DWORD[24+rsp]
230 psrld xmm13,31
231 xor eax,ebx
232 rol ebp,5
233 add edx,esi
234 movups xmm1,XMMWORD[((-16))+r15]
235DB 102,15,56,220,208
236 movdqa xmm3,xmm12
237 and edi,eax
238 xor eax,ebx
239 psrld xmm12,30
240 add edx,ebp
241 ror ebp,7
242 por xmm9,xmm13
243 xor edi,ebx
244 mov esi,edx
245 add ecx,DWORD[28+rsp]
246 pslld xmm3,2
247 pxor xmm9,xmm12
248 xor ebp,eax
249 movdqa xmm12,XMMWORD[16+r11]
250 rol edx,5
251 add ecx,edi
252 and esi,ebp
253 pxor xmm9,xmm3
254 xor ebp,eax
255 add ecx,edx
256 ror edx,7
257 pshufd xmm10,xmm6,238
258 xor esi,eax
259 movdqa xmm3,xmm9
260 paddd xmm12,xmm9
261 mov edi,ecx
262 add ebx,DWORD[32+rsp]
263 movups xmm0,XMMWORD[r15]
264DB 102,15,56,220,209
265 punpcklqdq xmm10,xmm7
266 xor edx,ebp
267 rol ecx,5
268 add ebx,esi
269 psrldq xmm3,4
270 and edi,edx
271 xor edx,ebp
272 pxor xmm10,xmm6
273 add ebx,ecx
274 ror ecx,7
275 pxor xmm3,xmm8
276 xor edi,ebp
277 mov esi,ebx
278 add eax,DWORD[36+rsp]
279 pxor xmm10,xmm3
280 xor ecx,edx
281 rol ebx,5
282 movdqa XMMWORD[16+rsp],xmm12
283 add eax,edi
284 and esi,ecx
285 movdqa xmm13,xmm10
286 xor ecx,edx
287 add eax,ebx
288 ror ebx,7
289 movups xmm1,XMMWORD[16+r15]
290DB 102,15,56,220,208
291 movdqa xmm3,xmm10
292 xor esi,edx
293 pslldq xmm13,12
294 paddd xmm10,xmm10
295 mov edi,eax
296 add ebp,DWORD[40+rsp]
297 psrld xmm3,31
298 xor ebx,ecx
299 rol eax,5
300 add ebp,esi
301 movdqa xmm12,xmm13
302 and edi,ebx
303 xor ebx,ecx
304 psrld xmm13,30
305 add ebp,eax
306 ror eax,7
307 por xmm10,xmm3
308 xor edi,ecx
309 mov esi,ebp
310 add edx,DWORD[44+rsp]
311 pslld xmm12,2
312 pxor xmm10,xmm13
313 xor eax,ebx
314 movdqa xmm13,XMMWORD[16+r11]
315 rol ebp,5
316 add edx,edi
317 movups xmm0,XMMWORD[32+r15]
318DB 102,15,56,220,209
319 and esi,eax
320 pxor xmm10,xmm12
321 xor eax,ebx
322 add edx,ebp
323 ror ebp,7
324 pshufd xmm11,xmm7,238
325 xor esi,ebx
326 movdqa xmm12,xmm10
327 paddd xmm13,xmm10
328 mov edi,edx
329 add ecx,DWORD[48+rsp]
330 punpcklqdq xmm11,xmm8
331 xor ebp,eax
332 rol edx,5
333 add ecx,esi
334 psrldq xmm12,4
335 and edi,ebp
336 xor ebp,eax
337 pxor xmm11,xmm7
338 add ecx,edx
339 ror edx,7
340 pxor xmm12,xmm9
341 xor edi,eax
342 mov esi,ecx
343 add ebx,DWORD[52+rsp]
344 movups xmm1,XMMWORD[48+r15]
345DB 102,15,56,220,208
346 pxor xmm11,xmm12
347 xor edx,ebp
348 rol ecx,5
349 movdqa XMMWORD[32+rsp],xmm13
350 add ebx,edi
351 and esi,edx
352 movdqa xmm3,xmm11
353 xor edx,ebp
354 add ebx,ecx
355 ror ecx,7
356 movdqa xmm12,xmm11
357 xor esi,ebp
358 pslldq xmm3,12
359 paddd xmm11,xmm11
360 mov edi,ebx
361 add eax,DWORD[56+rsp]
362 psrld xmm12,31
363 xor ecx,edx
364 rol ebx,5
365 add eax,esi
366 movdqa xmm13,xmm3
367 and edi,ecx
368 xor ecx,edx
369 psrld xmm3,30
370 add eax,ebx
371 ror ebx,7
372 cmp r8d,11
373 jb NEAR $L$aesenclast1
374 movups xmm0,XMMWORD[64+r15]
375DB 102,15,56,220,209
376 movups xmm1,XMMWORD[80+r15]
377DB 102,15,56,220,208
378 je NEAR $L$aesenclast1
379 movups xmm0,XMMWORD[96+r15]
380DB 102,15,56,220,209
381 movups xmm1,XMMWORD[112+r15]
382DB 102,15,56,220,208
383$L$aesenclast1:
384DB 102,15,56,221,209
385 movups xmm0,XMMWORD[((16-112))+r15]
386 por xmm11,xmm12
387 xor edi,edx
388 mov esi,eax
389 add ebp,DWORD[60+rsp]
390 pslld xmm13,2
391 pxor xmm11,xmm3
392 xor ebx,ecx
393 movdqa xmm3,XMMWORD[16+r11]
394 rol eax,5
395 add ebp,edi
396 and esi,ebx
397 pxor xmm11,xmm13
398 pshufd xmm13,xmm10,238
399 xor ebx,ecx
400 add ebp,eax
401 ror eax,7
402 pxor xmm4,xmm8
403 xor esi,ecx
404 mov edi,ebp
405 add edx,DWORD[rsp]
406 punpcklqdq xmm13,xmm11
407 xor eax,ebx
408 rol ebp,5
409 pxor xmm4,xmm5
410 add edx,esi
411 movups xmm14,XMMWORD[16+r12]
412 xorps xmm14,xmm15
413 movups XMMWORD[r13*1+r12],xmm2
414 xorps xmm2,xmm14
415 movups xmm1,XMMWORD[((-80))+r15]
416DB 102,15,56,220,208
417 and edi,eax
418 movdqa xmm12,xmm3
419 xor eax,ebx
420 paddd xmm3,xmm11
421 add edx,ebp
422 pxor xmm4,xmm13
423 ror ebp,7
424 xor edi,ebx
425 mov esi,edx
426 add ecx,DWORD[4+rsp]
427 movdqa xmm13,xmm4
428 xor ebp,eax
429 rol edx,5
430 movdqa XMMWORD[48+rsp],xmm3
431 add ecx,edi
432 and esi,ebp
433 xor ebp,eax
434 pslld xmm4,2
435 add ecx,edx
436 ror edx,7
437 psrld xmm13,30
438 xor esi,eax
439 mov edi,ecx
440 add ebx,DWORD[8+rsp]
441 movups xmm0,XMMWORD[((-64))+r15]
442DB 102,15,56,220,209
443 por xmm4,xmm13
444 xor edx,ebp
445 rol ecx,5
446 pshufd xmm3,xmm11,238
447 add ebx,esi
448 and edi,edx
449 xor edx,ebp
450 add ebx,ecx
451 add eax,DWORD[12+rsp]
452 xor edi,ebp
453 mov esi,ebx
454 rol ebx,5
455 add eax,edi
456 xor esi,edx
457 ror ecx,7
458 add eax,ebx
459 pxor xmm5,xmm9
460 add ebp,DWORD[16+rsp]
461 movups xmm1,XMMWORD[((-48))+r15]
462DB 102,15,56,220,208
463 xor esi,ecx
464 punpcklqdq xmm3,xmm4
465 mov edi,eax
466 rol eax,5
467 pxor xmm5,xmm6
468 add ebp,esi
469 xor edi,ecx
470 movdqa xmm13,xmm12
471 ror ebx,7
472 paddd xmm12,xmm4
473 add ebp,eax
474 pxor xmm5,xmm3
475 add edx,DWORD[20+rsp]
476 xor edi,ebx
477 mov esi,ebp
478 rol ebp,5
479 movdqa xmm3,xmm5
480 add edx,edi
481 xor esi,ebx
482 movdqa XMMWORD[rsp],xmm12
483 ror eax,7
484 add edx,ebp
485 add ecx,DWORD[24+rsp]
486 pslld xmm5,2
487 xor esi,eax
488 mov edi,edx
489 psrld xmm3,30
490 rol edx,5
491 add ecx,esi
492 movups xmm0,XMMWORD[((-32))+r15]
493DB 102,15,56,220,209
494 xor edi,eax
495 ror ebp,7
496 por xmm5,xmm3
497 add ecx,edx
498 add ebx,DWORD[28+rsp]
499 pshufd xmm12,xmm4,238
500 xor edi,ebp
501 mov esi,ecx
502 rol ecx,5
503 add ebx,edi
504 xor esi,ebp
505 ror edx,7
506 add ebx,ecx
507 pxor xmm6,xmm10
508 add eax,DWORD[32+rsp]
509 xor esi,edx
510 punpcklqdq xmm12,xmm5
511 mov edi,ebx
512 rol ebx,5
513 pxor xmm6,xmm7
514 add eax,esi
515 xor edi,edx
516 movdqa xmm3,XMMWORD[32+r11]
517 ror ecx,7
518 paddd xmm13,xmm5
519 add eax,ebx
520 pxor xmm6,xmm12
521 add ebp,DWORD[36+rsp]
522 movups xmm1,XMMWORD[((-16))+r15]
523DB 102,15,56,220,208
524 xor edi,ecx
525 mov esi,eax
526 rol eax,5
527 movdqa xmm12,xmm6
528 add ebp,edi
529 xor esi,ecx
530 movdqa XMMWORD[16+rsp],xmm13
531 ror ebx,7
532 add ebp,eax
533 add edx,DWORD[40+rsp]
534 pslld xmm6,2
535 xor esi,ebx
536 mov edi,ebp
537 psrld xmm12,30
538 rol ebp,5
539 add edx,esi
540 xor edi,ebx
541 ror eax,7
542 por xmm6,xmm12
543 add edx,ebp
544 add ecx,DWORD[44+rsp]
545 pshufd xmm13,xmm5,238
546 xor edi,eax
547 mov esi,edx
548 rol edx,5
549 add ecx,edi
550 movups xmm0,XMMWORD[r15]
551DB 102,15,56,220,209
552 xor esi,eax
553 ror ebp,7
554 add ecx,edx
555 pxor xmm7,xmm11
556 add ebx,DWORD[48+rsp]
557 xor esi,ebp
558 punpcklqdq xmm13,xmm6
559 mov edi,ecx
560 rol ecx,5
561 pxor xmm7,xmm8
562 add ebx,esi
563 xor edi,ebp
564 movdqa xmm12,xmm3
565 ror edx,7
566 paddd xmm3,xmm6
567 add ebx,ecx
568 pxor xmm7,xmm13
569 add eax,DWORD[52+rsp]
570 xor edi,edx
571 mov esi,ebx
572 rol ebx,5
573 movdqa xmm13,xmm7
574 add eax,edi
575 xor esi,edx
576 movdqa XMMWORD[32+rsp],xmm3
577 ror ecx,7
578 add eax,ebx
579 add ebp,DWORD[56+rsp]
580 movups xmm1,XMMWORD[16+r15]
581DB 102,15,56,220,208
582 pslld xmm7,2
583 xor esi,ecx
584 mov edi,eax
585 psrld xmm13,30
586 rol eax,5
587 add ebp,esi
588 xor edi,ecx
589 ror ebx,7
590 por xmm7,xmm13
591 add ebp,eax
592 add edx,DWORD[60+rsp]
593 pshufd xmm3,xmm6,238
594 xor edi,ebx
595 mov esi,ebp
596 rol ebp,5
597 add edx,edi
598 xor esi,ebx
599 ror eax,7
600 add edx,ebp
601 pxor xmm8,xmm4
602 add ecx,DWORD[rsp]
603 xor esi,eax
604 punpcklqdq xmm3,xmm7
605 mov edi,edx
606 rol edx,5
607 pxor xmm8,xmm9
608 add ecx,esi
609 movups xmm0,XMMWORD[32+r15]
610DB 102,15,56,220,209
611 xor edi,eax
612 movdqa xmm13,xmm12
613 ror ebp,7
614 paddd xmm12,xmm7
615 add ecx,edx
616 pxor xmm8,xmm3
617 add ebx,DWORD[4+rsp]
618 xor edi,ebp
619 mov esi,ecx
620 rol ecx,5
621 movdqa xmm3,xmm8
622 add ebx,edi
623 xor esi,ebp
624 movdqa XMMWORD[48+rsp],xmm12
625 ror edx,7
626 add ebx,ecx
627 add eax,DWORD[8+rsp]
628 pslld xmm8,2
629 xor esi,edx
630 mov edi,ebx
631 psrld xmm3,30
632 rol ebx,5
633 add eax,esi
634 xor edi,edx
635 ror ecx,7
636 por xmm8,xmm3
637 add eax,ebx
638 add ebp,DWORD[12+rsp]
639 movups xmm1,XMMWORD[48+r15]
640DB 102,15,56,220,208
641 pshufd xmm12,xmm7,238
642 xor edi,ecx
643 mov esi,eax
644 rol eax,5
645 add ebp,edi
646 xor esi,ecx
647 ror ebx,7
648 add ebp,eax
649 pxor xmm9,xmm5
650 add edx,DWORD[16+rsp]
651 xor esi,ebx
652 punpcklqdq xmm12,xmm8
653 mov edi,ebp
654 rol ebp,5
655 pxor xmm9,xmm10
656 add edx,esi
657 xor edi,ebx
658 movdqa xmm3,xmm13
659 ror eax,7
660 paddd xmm13,xmm8
661 add edx,ebp
662 pxor xmm9,xmm12
663 add ecx,DWORD[20+rsp]
664 xor edi,eax
665 mov esi,edx
666 rol edx,5
667 movdqa xmm12,xmm9
668 add ecx,edi
669 cmp r8d,11
670 jb NEAR $L$aesenclast2
671 movups xmm0,XMMWORD[64+r15]
672DB 102,15,56,220,209
673 movups xmm1,XMMWORD[80+r15]
674DB 102,15,56,220,208
675 je NEAR $L$aesenclast2
676 movups xmm0,XMMWORD[96+r15]
677DB 102,15,56,220,209
678 movups xmm1,XMMWORD[112+r15]
679DB 102,15,56,220,208
680$L$aesenclast2:
681DB 102,15,56,221,209
682 movups xmm0,XMMWORD[((16-112))+r15]
683 xor esi,eax
684 movdqa XMMWORD[rsp],xmm13
685 ror ebp,7
686 add ecx,edx
687 add ebx,DWORD[24+rsp]
688 pslld xmm9,2
689 xor esi,ebp
690 mov edi,ecx
691 psrld xmm12,30
692 rol ecx,5
693 add ebx,esi
694 xor edi,ebp
695 ror edx,7
696 por xmm9,xmm12
697 add ebx,ecx
698 add eax,DWORD[28+rsp]
699 pshufd xmm13,xmm8,238
700 ror ecx,7
701 mov esi,ebx
702 xor edi,edx
703 rol ebx,5
704 add eax,edi
705 xor esi,ecx
706 xor ecx,edx
707 add eax,ebx
708 pxor xmm10,xmm6
709 add ebp,DWORD[32+rsp]
710 movups xmm14,XMMWORD[32+r12]
711 xorps xmm14,xmm15
712 movups XMMWORD[16+r12*1+r13],xmm2
713 xorps xmm2,xmm14
714 movups xmm1,XMMWORD[((-80))+r15]
715DB 102,15,56,220,208
716 and esi,ecx
717 xor ecx,edx
718 ror ebx,7
719 punpcklqdq xmm13,xmm9
720 mov edi,eax
721 xor esi,ecx
722 pxor xmm10,xmm11
723 rol eax,5
724 add ebp,esi
725 movdqa xmm12,xmm3
726 xor edi,ebx
727 paddd xmm3,xmm9
728 xor ebx,ecx
729 pxor xmm10,xmm13
730 add ebp,eax
731 add edx,DWORD[36+rsp]
732 and edi,ebx
733 xor ebx,ecx
734 ror eax,7
735 movdqa xmm13,xmm10
736 mov esi,ebp
737 xor edi,ebx
738 movdqa XMMWORD[16+rsp],xmm3
739 rol ebp,5
740 add edx,edi
741 movups xmm0,XMMWORD[((-64))+r15]
742DB 102,15,56,220,209
743 xor esi,eax
744 pslld xmm10,2
745 xor eax,ebx
746 add edx,ebp
747 psrld xmm13,30
748 add ecx,DWORD[40+rsp]
749 and esi,eax
750 xor eax,ebx
751 por xmm10,xmm13
752 ror ebp,7
753 mov edi,edx
754 xor esi,eax
755 rol edx,5
756 pshufd xmm3,xmm9,238
757 add ecx,esi
758 xor edi,ebp
759 xor ebp,eax
760 add ecx,edx
761 add ebx,DWORD[44+rsp]
762 and edi,ebp
763 xor ebp,eax
764 ror edx,7
765 movups xmm1,XMMWORD[((-48))+r15]
766DB 102,15,56,220,208
767 mov esi,ecx
768 xor edi,ebp
769 rol ecx,5
770 add ebx,edi
771 xor esi,edx
772 xor edx,ebp
773 add ebx,ecx
774 pxor xmm11,xmm7
775 add eax,DWORD[48+rsp]
776 and esi,edx
777 xor edx,ebp
778 ror ecx,7
779 punpcklqdq xmm3,xmm10
780 mov edi,ebx
781 xor esi,edx
782 pxor xmm11,xmm4
783 rol ebx,5
784 add eax,esi
785 movdqa xmm13,XMMWORD[48+r11]
786 xor edi,ecx
787 paddd xmm12,xmm10
788 xor ecx,edx
789 pxor xmm11,xmm3
790 add eax,ebx
791 add ebp,DWORD[52+rsp]
792 movups xmm0,XMMWORD[((-32))+r15]
793DB 102,15,56,220,209
794 and edi,ecx
795 xor ecx,edx
796 ror ebx,7
797 movdqa xmm3,xmm11
798 mov esi,eax
799 xor edi,ecx
800 movdqa XMMWORD[32+rsp],xmm12
801 rol eax,5
802 add ebp,edi
803 xor esi,ebx
804 pslld xmm11,2
805 xor ebx,ecx
806 add ebp,eax
807 psrld xmm3,30
808 add edx,DWORD[56+rsp]
809 and esi,ebx
810 xor ebx,ecx
811 por xmm11,xmm3
812 ror eax,7
813 mov edi,ebp
814 xor esi,ebx
815 rol ebp,5
816 pshufd xmm12,xmm10,238
817 add edx,esi
818 movups xmm1,XMMWORD[((-16))+r15]
819DB 102,15,56,220,208
820 xor edi,eax
821 xor eax,ebx
822 add edx,ebp
823 add ecx,DWORD[60+rsp]
824 and edi,eax
825 xor eax,ebx
826 ror ebp,7
827 mov esi,edx
828 xor edi,eax
829 rol edx,5
830 add ecx,edi
831 xor esi,ebp
832 xor ebp,eax
833 add ecx,edx
834 pxor xmm4,xmm8
835 add ebx,DWORD[rsp]
836 and esi,ebp
837 xor ebp,eax
838 ror edx,7
839 movups xmm0,XMMWORD[r15]
840DB 102,15,56,220,209
841 punpcklqdq xmm12,xmm11
842 mov edi,ecx
843 xor esi,ebp
844 pxor xmm4,xmm5
845 rol ecx,5
846 add ebx,esi
847 movdqa xmm3,xmm13
848 xor edi,edx
849 paddd xmm13,xmm11
850 xor edx,ebp
851 pxor xmm4,xmm12
852 add ebx,ecx
853 add eax,DWORD[4+rsp]
854 and edi,edx
855 xor edx,ebp
856 ror ecx,7
857 movdqa xmm12,xmm4
858 mov esi,ebx
859 xor edi,edx
860 movdqa XMMWORD[48+rsp],xmm13
861 rol ebx,5
862 add eax,edi
863 xor esi,ecx
864 pslld xmm4,2
865 xor ecx,edx
866 add eax,ebx
867 psrld xmm12,30
868 add ebp,DWORD[8+rsp]
869 movups xmm1,XMMWORD[16+r15]
870DB 102,15,56,220,208
871 and esi,ecx
872 xor ecx,edx
873 por xmm4,xmm12
874 ror ebx,7
875 mov edi,eax
876 xor esi,ecx
877 rol eax,5
878 pshufd xmm13,xmm11,238
879 add ebp,esi
880 xor edi,ebx
881 xor ebx,ecx
882 add ebp,eax
883 add edx,DWORD[12+rsp]
884 and edi,ebx
885 xor ebx,ecx
886 ror eax,7
887 mov esi,ebp
888 xor edi,ebx
889 rol ebp,5
890 add edx,edi
891 movups xmm0,XMMWORD[32+r15]
892DB 102,15,56,220,209
893 xor esi,eax
894 xor eax,ebx
895 add edx,ebp
896 pxor xmm5,xmm9
897 add ecx,DWORD[16+rsp]
898 and esi,eax
899 xor eax,ebx
900 ror ebp,7
901 punpcklqdq xmm13,xmm4
902 mov edi,edx
903 xor esi,eax
904 pxor xmm5,xmm6
905 rol edx,5
906 add ecx,esi
907 movdqa xmm12,xmm3
908 xor edi,ebp
909 paddd xmm3,xmm4
910 xor ebp,eax
911 pxor xmm5,xmm13
912 add ecx,edx
913 add ebx,DWORD[20+rsp]
914 and edi,ebp
915 xor ebp,eax
916 ror edx,7
917 movups xmm1,XMMWORD[48+r15]
918DB 102,15,56,220,208
919 movdqa xmm13,xmm5
920 mov esi,ecx
921 xor edi,ebp
922 movdqa XMMWORD[rsp],xmm3
923 rol ecx,5
924 add ebx,edi
925 xor esi,edx
926 pslld xmm5,2
927 xor edx,ebp
928 add ebx,ecx
929 psrld xmm13,30
930 add eax,DWORD[24+rsp]
931 and esi,edx
932 xor edx,ebp
933 por xmm5,xmm13
934 ror ecx,7
935 mov edi,ebx
936 xor esi,edx
937 rol ebx,5
938 pshufd xmm3,xmm4,238
939 add eax,esi
940 xor edi,ecx
941 xor ecx,edx
942 add eax,ebx
943 add ebp,DWORD[28+rsp]
944 cmp r8d,11
945 jb NEAR $L$aesenclast3
946 movups xmm0,XMMWORD[64+r15]
947DB 102,15,56,220,209
948 movups xmm1,XMMWORD[80+r15]
949DB 102,15,56,220,208
950 je NEAR $L$aesenclast3
951 movups xmm0,XMMWORD[96+r15]
952DB 102,15,56,220,209
953 movups xmm1,XMMWORD[112+r15]
954DB 102,15,56,220,208
955$L$aesenclast3:
956DB 102,15,56,221,209
957 movups xmm0,XMMWORD[((16-112))+r15]
958 and edi,ecx
959 xor ecx,edx
960 ror ebx,7
961 mov esi,eax
962 xor edi,ecx
963 rol eax,5
964 add ebp,edi
965 xor esi,ebx
966 xor ebx,ecx
967 add ebp,eax
968 pxor xmm6,xmm10
969 add edx,DWORD[32+rsp]
970 and esi,ebx
971 xor ebx,ecx
972 ror eax,7
973 punpcklqdq xmm3,xmm5
974 mov edi,ebp
975 xor esi,ebx
976 pxor xmm6,xmm7
977 rol ebp,5
978 add edx,esi
979 movups xmm14,XMMWORD[48+r12]
980 xorps xmm14,xmm15
981 movups XMMWORD[32+r12*1+r13],xmm2
982 xorps xmm2,xmm14
983 movups xmm1,XMMWORD[((-80))+r15]
984DB 102,15,56,220,208
985 movdqa xmm13,xmm12
986 xor edi,eax
987 paddd xmm12,xmm5
988 xor eax,ebx
989 pxor xmm6,xmm3
990 add edx,ebp
991 add ecx,DWORD[36+rsp]
992 and edi,eax
993 xor eax,ebx
994 ror ebp,7
995 movdqa xmm3,xmm6
996 mov esi,edx
997 xor edi,eax
998 movdqa XMMWORD[16+rsp],xmm12
999 rol edx,5
1000 add ecx,edi
1001 xor esi,ebp
1002 pslld xmm6,2
1003 xor ebp,eax
1004 add ecx,edx
1005 psrld xmm3,30
1006 add ebx,DWORD[40+rsp]
1007 and esi,ebp
1008 xor ebp,eax
1009 por xmm6,xmm3
1010 ror edx,7
1011 movups xmm0,XMMWORD[((-64))+r15]
1012DB 102,15,56,220,209
1013 mov edi,ecx
1014 xor esi,ebp
1015 rol ecx,5
1016 pshufd xmm12,xmm5,238
1017 add ebx,esi
1018 xor edi,edx
1019 xor edx,ebp
1020 add ebx,ecx
1021 add eax,DWORD[44+rsp]
1022 and edi,edx
1023 xor edx,ebp
1024 ror ecx,7
1025 mov esi,ebx
1026 xor edi,edx
1027 rol ebx,5
1028 add eax,edi
1029 xor esi,edx
1030 add eax,ebx
1031 pxor xmm7,xmm11
1032 add ebp,DWORD[48+rsp]
1033 movups xmm1,XMMWORD[((-48))+r15]
1034DB 102,15,56,220,208
1035 xor esi,ecx
1036 punpcklqdq xmm12,xmm6
1037 mov edi,eax
1038 rol eax,5
1039 pxor xmm7,xmm8
1040 add ebp,esi
1041 xor edi,ecx
1042 movdqa xmm3,xmm13
1043 ror ebx,7
1044 paddd xmm13,xmm6
1045 add ebp,eax
1046 pxor xmm7,xmm12
1047 add edx,DWORD[52+rsp]
1048 xor edi,ebx
1049 mov esi,ebp
1050 rol ebp,5
1051 movdqa xmm12,xmm7
1052 add edx,edi
1053 xor esi,ebx
1054 movdqa XMMWORD[32+rsp],xmm13
1055 ror eax,7
1056 add edx,ebp
1057 add ecx,DWORD[56+rsp]
1058 pslld xmm7,2
1059 xor esi,eax
1060 mov edi,edx
1061 psrld xmm12,30
1062 rol edx,5
1063 add ecx,esi
1064 movups xmm0,XMMWORD[((-32))+r15]
1065DB 102,15,56,220,209
1066 xor edi,eax
1067 ror ebp,7
1068 por xmm7,xmm12
1069 add ecx,edx
1070 add ebx,DWORD[60+rsp]
1071 xor edi,ebp
1072 mov esi,ecx
1073 rol ecx,5
1074 add ebx,edi
1075 xor esi,ebp
1076 ror edx,7
1077 add ebx,ecx
1078 add eax,DWORD[rsp]
1079 xor esi,edx
1080 mov edi,ebx
1081 rol ebx,5
1082 paddd xmm3,xmm7
1083 add eax,esi
1084 xor edi,edx
1085 movdqa XMMWORD[48+rsp],xmm3
1086 ror ecx,7
1087 add eax,ebx
1088 add ebp,DWORD[4+rsp]
1089 movups xmm1,XMMWORD[((-16))+r15]
1090DB 102,15,56,220,208
1091 xor edi,ecx
1092 mov esi,eax
1093 rol eax,5
1094 add ebp,edi
1095 xor esi,ecx
1096 ror ebx,7
1097 add ebp,eax
1098 add edx,DWORD[8+rsp]
1099 xor esi,ebx
1100 mov edi,ebp
1101 rol ebp,5
1102 add edx,esi
1103 xor edi,ebx
1104 ror eax,7
1105 add edx,ebp
1106 add ecx,DWORD[12+rsp]
1107 xor edi,eax
1108 mov esi,edx
1109 rol edx,5
1110 add ecx,edi
1111 movups xmm0,XMMWORD[r15]
1112DB 102,15,56,220,209
1113 xor esi,eax
1114 ror ebp,7
1115 add ecx,edx
1116 cmp r10,r14
1117 je NEAR $L$done_ssse3
1118 movdqa xmm3,XMMWORD[64+r11]
1119 movdqa xmm13,XMMWORD[r11]
1120 movdqu xmm4,XMMWORD[r10]
1121 movdqu xmm5,XMMWORD[16+r10]
1122 movdqu xmm6,XMMWORD[32+r10]
1123 movdqu xmm7,XMMWORD[48+r10]
1124DB 102,15,56,0,227
1125 add r10,64
1126 add ebx,DWORD[16+rsp]
1127 xor esi,ebp
1128 mov edi,ecx
1129DB 102,15,56,0,235
1130 rol ecx,5
1131 add ebx,esi
1132 xor edi,ebp
1133 ror edx,7
1134 paddd xmm4,xmm13
1135 add ebx,ecx
1136 add eax,DWORD[20+rsp]
1137 xor edi,edx
1138 mov esi,ebx
1139 movdqa XMMWORD[rsp],xmm4
1140 rol ebx,5
1141 add eax,edi
1142 xor esi,edx
1143 ror ecx,7
1144 psubd xmm4,xmm13
1145 add eax,ebx
1146 add ebp,DWORD[24+rsp]
1147 movups xmm1,XMMWORD[16+r15]
1148DB 102,15,56,220,208
1149 xor esi,ecx
1150 mov edi,eax
1151 rol eax,5
1152 add ebp,esi
1153 xor edi,ecx
1154 ror ebx,7
1155 add ebp,eax
1156 add edx,DWORD[28+rsp]
1157 xor edi,ebx
1158 mov esi,ebp
1159 rol ebp,5
1160 add edx,edi
1161 xor esi,ebx
1162 ror eax,7
1163 add edx,ebp
1164 add ecx,DWORD[32+rsp]
1165 xor esi,eax
1166 mov edi,edx
1167DB 102,15,56,0,243
1168 rol edx,5
1169 add ecx,esi
1170 movups xmm0,XMMWORD[32+r15]
1171DB 102,15,56,220,209
1172 xor edi,eax
1173 ror ebp,7
1174 paddd xmm5,xmm13
1175 add ecx,edx
1176 add ebx,DWORD[36+rsp]
1177 xor edi,ebp
1178 mov esi,ecx
1179 movdqa XMMWORD[16+rsp],xmm5
1180 rol ecx,5
1181 add ebx,edi
1182 xor esi,ebp
1183 ror edx,7
1184 psubd xmm5,xmm13
1185 add ebx,ecx
1186 add eax,DWORD[40+rsp]
1187 xor esi,edx
1188 mov edi,ebx
1189 rol ebx,5
1190 add eax,esi
1191 xor edi,edx
1192 ror ecx,7
1193 add eax,ebx
1194 add ebp,DWORD[44+rsp]
1195 movups xmm1,XMMWORD[48+r15]
1196DB 102,15,56,220,208
1197 xor edi,ecx
1198 mov esi,eax
1199 rol eax,5
1200 add ebp,edi
1201 xor esi,ecx
1202 ror ebx,7
1203 add ebp,eax
1204 add edx,DWORD[48+rsp]
1205 xor esi,ebx
1206 mov edi,ebp
1207DB 102,15,56,0,251
1208 rol ebp,5
1209 add edx,esi
1210 xor edi,ebx
1211 ror eax,7
1212 paddd xmm6,xmm13
1213 add edx,ebp
1214 add ecx,DWORD[52+rsp]
1215 xor edi,eax
1216 mov esi,edx
1217 movdqa XMMWORD[32+rsp],xmm6
1218 rol edx,5
1219 add ecx,edi
1220 cmp r8d,11
1221 jb NEAR $L$aesenclast4
1222 movups xmm0,XMMWORD[64+r15]
1223DB 102,15,56,220,209
1224 movups xmm1,XMMWORD[80+r15]
1225DB 102,15,56,220,208
1226 je NEAR $L$aesenclast4
1227 movups xmm0,XMMWORD[96+r15]
1228DB 102,15,56,220,209
1229 movups xmm1,XMMWORD[112+r15]
1230DB 102,15,56,220,208
1231$L$aesenclast4:
1232DB 102,15,56,221,209
1233 movups xmm0,XMMWORD[((16-112))+r15]
1234 xor esi,eax
1235 ror ebp,7
1236 psubd xmm6,xmm13
1237 add ecx,edx
1238 add ebx,DWORD[56+rsp]
1239 xor esi,ebp
1240 mov edi,ecx
1241 rol ecx,5
1242 add ebx,esi
1243 xor edi,ebp
1244 ror edx,7
1245 add ebx,ecx
1246 add eax,DWORD[60+rsp]
1247 xor edi,edx
1248 mov esi,ebx
1249 rol ebx,5
1250 add eax,edi
1251 ror ecx,7
1252 add eax,ebx
1253 movups XMMWORD[48+r12*1+r13],xmm2
1254 lea r12,[64+r12]
1255
1256 add eax,DWORD[r9]
1257 add esi,DWORD[4+r9]
1258 add ecx,DWORD[8+r9]
1259 add edx,DWORD[12+r9]
1260 mov DWORD[r9],eax
1261 add ebp,DWORD[16+r9]
1262 mov DWORD[4+r9],esi
1263 mov ebx,esi
1264 mov DWORD[8+r9],ecx
1265 mov edi,ecx
1266 mov DWORD[12+r9],edx
1267 xor edi,edx
1268 mov DWORD[16+r9],ebp
1269 and esi,edi
1270 jmp NEAR $L$oop_ssse3
1271
1272$L$done_ssse3:
1273 add ebx,DWORD[16+rsp]
1274 xor esi,ebp
1275 mov edi,ecx
1276 rol ecx,5
1277 add ebx,esi
1278 xor edi,ebp
1279 ror edx,7
1280 add ebx,ecx
1281 add eax,DWORD[20+rsp]
1282 xor edi,edx
1283 mov esi,ebx
1284 rol ebx,5
1285 add eax,edi
1286 xor esi,edx
1287 ror ecx,7
1288 add eax,ebx
1289 add ebp,DWORD[24+rsp]
1290 movups xmm1,XMMWORD[16+r15]
1291DB 102,15,56,220,208
1292 xor esi,ecx
1293 mov edi,eax
1294 rol eax,5
1295 add ebp,esi
1296 xor edi,ecx
1297 ror ebx,7
1298 add ebp,eax
1299 add edx,DWORD[28+rsp]
1300 xor edi,ebx
1301 mov esi,ebp
1302 rol ebp,5
1303 add edx,edi
1304 xor esi,ebx
1305 ror eax,7
1306 add edx,ebp
1307 add ecx,DWORD[32+rsp]
1308 xor esi,eax
1309 mov edi,edx
1310 rol edx,5
1311 add ecx,esi
1312 movups xmm0,XMMWORD[32+r15]
1313DB 102,15,56,220,209
1314 xor edi,eax
1315 ror ebp,7
1316 add ecx,edx
1317 add ebx,DWORD[36+rsp]
1318 xor edi,ebp
1319 mov esi,ecx
1320 rol ecx,5
1321 add ebx,edi
1322 xor esi,ebp
1323 ror edx,7
1324 add ebx,ecx
1325 add eax,DWORD[40+rsp]
1326 xor esi,edx
1327 mov edi,ebx
1328 rol ebx,5
1329 add eax,esi
1330 xor edi,edx
1331 ror ecx,7
1332 add eax,ebx
1333 add ebp,DWORD[44+rsp]
1334 movups xmm1,XMMWORD[48+r15]
1335DB 102,15,56,220,208
1336 xor edi,ecx
1337 mov esi,eax
1338 rol eax,5
1339 add ebp,edi
1340 xor esi,ecx
1341 ror ebx,7
1342 add ebp,eax
1343 add edx,DWORD[48+rsp]
1344 xor esi,ebx
1345 mov edi,ebp
1346 rol ebp,5
1347 add edx,esi
1348 xor edi,ebx
1349 ror eax,7
1350 add edx,ebp
1351 add ecx,DWORD[52+rsp]
1352 xor edi,eax
1353 mov esi,edx
1354 rol edx,5
1355 add ecx,edi
1356 cmp r8d,11
1357 jb NEAR $L$aesenclast5
1358 movups xmm0,XMMWORD[64+r15]
1359DB 102,15,56,220,209
1360 movups xmm1,XMMWORD[80+r15]
1361DB 102,15,56,220,208
1362 je NEAR $L$aesenclast5
1363 movups xmm0,XMMWORD[96+r15]
1364DB 102,15,56,220,209
1365 movups xmm1,XMMWORD[112+r15]
1366DB 102,15,56,220,208
1367$L$aesenclast5:
1368DB 102,15,56,221,209
1369 movups xmm0,XMMWORD[((16-112))+r15]
1370 xor esi,eax
1371 ror ebp,7
1372 add ecx,edx
1373 add ebx,DWORD[56+rsp]
1374 xor esi,ebp
1375 mov edi,ecx
1376 rol ecx,5
1377 add ebx,esi
1378 xor edi,ebp
1379 ror edx,7
1380 add ebx,ecx
1381 add eax,DWORD[60+rsp]
1382 xor edi,edx
1383 mov esi,ebx
1384 rol ebx,5
1385 add eax,edi
1386 ror ecx,7
1387 add eax,ebx
1388 movups XMMWORD[48+r12*1+r13],xmm2
1389 mov r8,QWORD[88+rsp]
1390
1391 add eax,DWORD[r9]
1392 add esi,DWORD[4+r9]
1393 add ecx,DWORD[8+r9]
1394 mov DWORD[r9],eax
1395 add edx,DWORD[12+r9]
1396 mov DWORD[4+r9],esi
1397 add ebp,DWORD[16+r9]
1398 mov DWORD[8+r9],ecx
1399 mov DWORD[12+r9],edx
1400 mov DWORD[16+r9],ebp
1401 movups XMMWORD[r8],xmm2
1402 movaps xmm6,XMMWORD[((96+0))+rsp]
1403 movaps xmm7,XMMWORD[((96+16))+rsp]
1404 movaps xmm8,XMMWORD[((96+32))+rsp]
1405 movaps xmm9,XMMWORD[((96+48))+rsp]
1406 movaps xmm10,XMMWORD[((96+64))+rsp]
1407 movaps xmm11,XMMWORD[((96+80))+rsp]
1408 movaps xmm12,XMMWORD[((96+96))+rsp]
1409 movaps xmm13,XMMWORD[((96+112))+rsp]
1410 movaps xmm14,XMMWORD[((96+128))+rsp]
1411 movaps xmm15,XMMWORD[((96+144))+rsp]
1412 lea rsi,[264+rsp]
1413
1414 mov r15,QWORD[rsi]
1415
1416 mov r14,QWORD[8+rsi]
1417
1418 mov r13,QWORD[16+rsi]
1419
1420 mov r12,QWORD[24+rsi]
1421
1422 mov rbp,QWORD[32+rsi]
1423
1424 mov rbx,QWORD[40+rsi]
1425
1426 lea rsp,[48+rsi]
1427
1428$L$epilogue_ssse3:
1429 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1430 mov rsi,QWORD[16+rsp]
1431 DB 0F3h,0C3h ;repret
1432
1433$L$SEH_end_aesni_cbc_sha1_enc_ssse3:
1434
1435ALIGN 32
1436aesni_cbc_sha1_enc_avx:
1437 mov QWORD[8+rsp],rdi ;WIN64 prologue
1438 mov QWORD[16+rsp],rsi
1439 mov rax,rsp
1440$L$SEH_begin_aesni_cbc_sha1_enc_avx:
1441 mov rdi,rcx
1442 mov rsi,rdx
1443 mov rdx,r8
1444 mov rcx,r9
1445 mov r8,QWORD[40+rsp]
1446 mov r9,QWORD[48+rsp]
1447
1448
1449
1450 mov r10,QWORD[56+rsp]
1451
1452
1453 push rbx
1454
1455 push rbp
1456
1457 push r12
1458
1459 push r13
1460
1461 push r14
1462
1463 push r15
1464
1465 lea rsp,[((-264))+rsp]
1466
1467
1468
1469 movaps XMMWORD[(96+0)+rsp],xmm6
1470 movaps XMMWORD[(96+16)+rsp],xmm7
1471 movaps XMMWORD[(96+32)+rsp],xmm8
1472 movaps XMMWORD[(96+48)+rsp],xmm9
1473 movaps XMMWORD[(96+64)+rsp],xmm10
1474 movaps XMMWORD[(96+80)+rsp],xmm11
1475 movaps XMMWORD[(96+96)+rsp],xmm12
1476 movaps XMMWORD[(96+112)+rsp],xmm13
1477 movaps XMMWORD[(96+128)+rsp],xmm14
1478 movaps XMMWORD[(96+144)+rsp],xmm15
1479$L$prologue_avx:
1480 vzeroall
1481 mov r12,rdi
1482 mov r13,rsi
1483 mov r14,rdx
1484 lea r15,[112+rcx]
1485 vmovdqu xmm12,XMMWORD[r8]
1486 mov QWORD[88+rsp],r8
1487 shl r14,6
1488 sub r13,r12
1489 mov r8d,DWORD[((240-112))+r15]
1490 add r14,r10
1491
1492 lea r11,[K_XX_XX]
1493 mov eax,DWORD[r9]
1494 mov ebx,DWORD[4+r9]
1495 mov ecx,DWORD[8+r9]
1496 mov edx,DWORD[12+r9]
1497 mov esi,ebx
1498 mov ebp,DWORD[16+r9]
1499 mov edi,ecx
1500 xor edi,edx
1501 and esi,edi
1502
1503 vmovdqa xmm6,XMMWORD[64+r11]
1504 vmovdqa xmm10,XMMWORD[r11]
1505 vmovdqu xmm0,XMMWORD[r10]
1506 vmovdqu xmm1,XMMWORD[16+r10]
1507 vmovdqu xmm2,XMMWORD[32+r10]
1508 vmovdqu xmm3,XMMWORD[48+r10]
1509 vpshufb xmm0,xmm0,xmm6
1510 add r10,64
1511 vpshufb xmm1,xmm1,xmm6
1512 vpshufb xmm2,xmm2,xmm6
1513 vpshufb xmm3,xmm3,xmm6
1514 vpaddd xmm4,xmm0,xmm10
1515 vpaddd xmm5,xmm1,xmm10
1516 vpaddd xmm6,xmm2,xmm10
1517 vmovdqa XMMWORD[rsp],xmm4
1518 vmovdqa XMMWORD[16+rsp],xmm5
1519 vmovdqa XMMWORD[32+rsp],xmm6
1520 vmovups xmm15,XMMWORD[((-112))+r15]
1521 vmovups xmm14,XMMWORD[((16-112))+r15]
1522 jmp NEAR $L$oop_avx
1523ALIGN 32
1524$L$oop_avx:
1525 shrd ebx,ebx,2
1526 vmovdqu xmm13,XMMWORD[r12]
1527 vpxor xmm13,xmm13,xmm15
1528 vpxor xmm12,xmm12,xmm13
1529 vaesenc xmm12,xmm12,xmm14
1530 vmovups xmm15,XMMWORD[((-80))+r15]
1531 xor esi,edx
1532 vpalignr xmm4,xmm1,xmm0,8
1533 mov edi,eax
1534 add ebp,DWORD[rsp]
1535 vpaddd xmm9,xmm10,xmm3
1536 xor ebx,ecx
1537 shld eax,eax,5
1538 vpsrldq xmm8,xmm3,4
1539 add ebp,esi
1540 and edi,ebx
1541 vpxor xmm4,xmm4,xmm0
1542 xor ebx,ecx
1543 add ebp,eax
1544 vpxor xmm8,xmm8,xmm2
1545 shrd eax,eax,7
1546 xor edi,ecx
1547 mov esi,ebp
1548 add edx,DWORD[4+rsp]
1549 vpxor xmm4,xmm4,xmm8
1550 xor eax,ebx
1551 shld ebp,ebp,5
1552 vmovdqa XMMWORD[48+rsp],xmm9
1553 add edx,edi
1554 vaesenc xmm12,xmm12,xmm15
1555 vmovups xmm14,XMMWORD[((-64))+r15]
1556 and esi,eax
1557 vpsrld xmm8,xmm4,31
1558 xor eax,ebx
1559 add edx,ebp
1560 shrd ebp,ebp,7
1561 xor esi,ebx
1562 vpslldq xmm9,xmm4,12
1563 vpaddd xmm4,xmm4,xmm4
1564 mov edi,edx
1565 add ecx,DWORD[8+rsp]
1566 xor ebp,eax
1567 shld edx,edx,5
1568 vpor xmm4,xmm4,xmm8
1569 vpsrld xmm8,xmm9,30
1570 add ecx,esi
1571 and edi,ebp
1572 xor ebp,eax
1573 add ecx,edx
1574 vpslld xmm9,xmm9,2
1575 vpxor xmm4,xmm4,xmm8
1576 shrd edx,edx,7
1577 xor edi,eax
1578 mov esi,ecx
1579 add ebx,DWORD[12+rsp]
1580 vaesenc xmm12,xmm12,xmm14
1581 vmovups xmm15,XMMWORD[((-48))+r15]
1582 vpxor xmm4,xmm4,xmm9
1583 xor edx,ebp
1584 shld ecx,ecx,5
1585 add ebx,edi
1586 and esi,edx
1587 xor edx,ebp
1588 add ebx,ecx
1589 shrd ecx,ecx,7
1590 xor esi,ebp
1591 vpalignr xmm5,xmm2,xmm1,8
1592 mov edi,ebx
1593 add eax,DWORD[16+rsp]
1594 vpaddd xmm9,xmm10,xmm4
1595 xor ecx,edx
1596 shld ebx,ebx,5
1597 vpsrldq xmm8,xmm4,4
1598 add eax,esi
1599 and edi,ecx
1600 vpxor xmm5,xmm5,xmm1
1601 xor ecx,edx
1602 add eax,ebx
1603 vpxor xmm8,xmm8,xmm3
1604 shrd ebx,ebx,7
1605 vaesenc xmm12,xmm12,xmm15
1606 vmovups xmm14,XMMWORD[((-32))+r15]
1607 xor edi,edx
1608 mov esi,eax
1609 add ebp,DWORD[20+rsp]
1610 vpxor xmm5,xmm5,xmm8
1611 xor ebx,ecx
1612 shld eax,eax,5
1613 vmovdqa XMMWORD[rsp],xmm9
1614 add ebp,edi
1615 and esi,ebx
1616 vpsrld xmm8,xmm5,31
1617 xor ebx,ecx
1618 add ebp,eax
1619 shrd eax,eax,7
1620 xor esi,ecx
1621 vpslldq xmm9,xmm5,12
1622 vpaddd xmm5,xmm5,xmm5
1623 mov edi,ebp
1624 add edx,DWORD[24+rsp]
1625 xor eax,ebx
1626 shld ebp,ebp,5
1627 vpor xmm5,xmm5,xmm8
1628 vpsrld xmm8,xmm9,30
1629 add edx,esi
1630 vaesenc xmm12,xmm12,xmm14
1631 vmovups xmm15,XMMWORD[((-16))+r15]
1632 and edi,eax
1633 xor eax,ebx
1634 add edx,ebp
1635 vpslld xmm9,xmm9,2
1636 vpxor xmm5,xmm5,xmm8
1637 shrd ebp,ebp,7
1638 xor edi,ebx
1639 mov esi,edx
1640 add ecx,DWORD[28+rsp]
1641 vpxor xmm5,xmm5,xmm9
1642 xor ebp,eax
1643 shld edx,edx,5
1644 vmovdqa xmm10,XMMWORD[16+r11]
1645 add ecx,edi
1646 and esi,ebp
1647 xor ebp,eax
1648 add ecx,edx
1649 shrd edx,edx,7
1650 xor esi,eax
1651 vpalignr xmm6,xmm3,xmm2,8
1652 mov edi,ecx
1653 add ebx,DWORD[32+rsp]
1654 vaesenc xmm12,xmm12,xmm15
1655 vmovups xmm14,XMMWORD[r15]
1656 vpaddd xmm9,xmm10,xmm5
1657 xor edx,ebp
1658 shld ecx,ecx,5
1659 vpsrldq xmm8,xmm5,4
1660 add ebx,esi
1661 and edi,edx
1662 vpxor xmm6,xmm6,xmm2
1663 xor edx,ebp
1664 add ebx,ecx
1665 vpxor xmm8,xmm8,xmm4
1666 shrd ecx,ecx,7
1667 xor edi,ebp
1668 mov esi,ebx
1669 add eax,DWORD[36+rsp]
1670 vpxor xmm6,xmm6,xmm8
1671 xor ecx,edx
1672 shld ebx,ebx,5
1673 vmovdqa XMMWORD[16+rsp],xmm9
1674 add eax,edi
1675 and esi,ecx
1676 vpsrld xmm8,xmm6,31
1677 xor ecx,edx
1678 add eax,ebx
1679 shrd ebx,ebx,7
1680 vaesenc xmm12,xmm12,xmm14
1681 vmovups xmm15,XMMWORD[16+r15]
1682 xor esi,edx
1683 vpslldq xmm9,xmm6,12
1684 vpaddd xmm6,xmm6,xmm6
1685 mov edi,eax
1686 add ebp,DWORD[40+rsp]
1687 xor ebx,ecx
1688 shld eax,eax,5
1689 vpor xmm6,xmm6,xmm8
1690 vpsrld xmm8,xmm9,30
1691 add ebp,esi
1692 and edi,ebx
1693 xor ebx,ecx
1694 add ebp,eax
1695 vpslld xmm9,xmm9,2
1696 vpxor xmm6,xmm6,xmm8
1697 shrd eax,eax,7
1698 xor edi,ecx
1699 mov esi,ebp
1700 add edx,DWORD[44+rsp]
1701 vpxor xmm6,xmm6,xmm9
1702 xor eax,ebx
1703 shld ebp,ebp,5
1704 add edx,edi
1705 vaesenc xmm12,xmm12,xmm15
1706 vmovups xmm14,XMMWORD[32+r15]
1707 and esi,eax
1708 xor eax,ebx
1709 add edx,ebp
1710 shrd ebp,ebp,7
1711 xor esi,ebx
1712 vpalignr xmm7,xmm4,xmm3,8
1713 mov edi,edx
1714 add ecx,DWORD[48+rsp]
1715 vpaddd xmm9,xmm10,xmm6
1716 xor ebp,eax
1717 shld edx,edx,5
1718 vpsrldq xmm8,xmm6,4
1719 add ecx,esi
1720 and edi,ebp
1721 vpxor xmm7,xmm7,xmm3
1722 xor ebp,eax
1723 add ecx,edx
1724 vpxor xmm8,xmm8,xmm5
1725 shrd edx,edx,7
1726 xor edi,eax
1727 mov esi,ecx
1728 add ebx,DWORD[52+rsp]
1729 vaesenc xmm12,xmm12,xmm14
1730 vmovups xmm15,XMMWORD[48+r15]
1731 vpxor xmm7,xmm7,xmm8
1732 xor edx,ebp
1733 shld ecx,ecx,5
1734 vmovdqa XMMWORD[32+rsp],xmm9
1735 add ebx,edi
1736 and esi,edx
1737 vpsrld xmm8,xmm7,31
1738 xor edx,ebp
1739 add ebx,ecx
1740 shrd ecx,ecx,7
1741 xor esi,ebp
1742 vpslldq xmm9,xmm7,12
1743 vpaddd xmm7,xmm7,xmm7
1744 mov edi,ebx
1745 add eax,DWORD[56+rsp]
1746 xor ecx,edx
1747 shld ebx,ebx,5
1748 vpor xmm7,xmm7,xmm8
1749 vpsrld xmm8,xmm9,30
1750 add eax,esi
1751 and edi,ecx
1752 xor ecx,edx
1753 add eax,ebx
1754 vpslld xmm9,xmm9,2
1755 vpxor xmm7,xmm7,xmm8
1756 shrd ebx,ebx,7
1757 cmp r8d,11
1758 jb NEAR $L$vaesenclast6
1759 vaesenc xmm12,xmm12,xmm15
1760 vmovups xmm14,XMMWORD[64+r15]
1761 vaesenc xmm12,xmm12,xmm14
1762 vmovups xmm15,XMMWORD[80+r15]
1763 je NEAR $L$vaesenclast6
1764 vaesenc xmm12,xmm12,xmm15
1765 vmovups xmm14,XMMWORD[96+r15]
1766 vaesenc xmm12,xmm12,xmm14
1767 vmovups xmm15,XMMWORD[112+r15]
1768$L$vaesenclast6:
1769 vaesenclast xmm12,xmm12,xmm15
1770 vmovups xmm15,XMMWORD[((-112))+r15]
1771 vmovups xmm14,XMMWORD[((16-112))+r15]
1772 xor edi,edx
1773 mov esi,eax
1774 add ebp,DWORD[60+rsp]
1775 vpxor xmm7,xmm7,xmm9
1776 xor ebx,ecx
1777 shld eax,eax,5
1778 add ebp,edi
1779 and esi,ebx
1780 xor ebx,ecx
1781 add ebp,eax
1782 vpalignr xmm8,xmm7,xmm6,8
1783 vpxor xmm0,xmm0,xmm4
1784 shrd eax,eax,7
1785 xor esi,ecx
1786 mov edi,ebp
1787 add edx,DWORD[rsp]
1788 vpxor xmm0,xmm0,xmm1
1789 xor eax,ebx
1790 shld ebp,ebp,5
1791 vpaddd xmm9,xmm10,xmm7
1792 add edx,esi
1793 vmovdqu xmm13,XMMWORD[16+r12]
1794 vpxor xmm13,xmm13,xmm15
1795 vmovups XMMWORD[r13*1+r12],xmm12
1796 vpxor xmm12,xmm12,xmm13
1797 vaesenc xmm12,xmm12,xmm14
1798 vmovups xmm15,XMMWORD[((-80))+r15]
1799 and edi,eax
1800 vpxor xmm0,xmm0,xmm8
1801 xor eax,ebx
1802 add edx,ebp
1803 shrd ebp,ebp,7
1804 xor edi,ebx
1805 vpsrld xmm8,xmm0,30
1806 vmovdqa XMMWORD[48+rsp],xmm9
1807 mov esi,edx
1808 add ecx,DWORD[4+rsp]
1809 xor ebp,eax
1810 shld edx,edx,5
1811 vpslld xmm0,xmm0,2
1812 add ecx,edi
1813 and esi,ebp
1814 xor ebp,eax
1815 add ecx,edx
1816 shrd edx,edx,7
1817 xor esi,eax
1818 mov edi,ecx
1819 add ebx,DWORD[8+rsp]
1820 vaesenc xmm12,xmm12,xmm15
1821 vmovups xmm14,XMMWORD[((-64))+r15]
1822 vpor xmm0,xmm0,xmm8
1823 xor edx,ebp
1824 shld ecx,ecx,5
1825 add ebx,esi
1826 and edi,edx
1827 xor edx,ebp
1828 add ebx,ecx
1829 add eax,DWORD[12+rsp]
1830 xor edi,ebp
1831 mov esi,ebx
1832 shld ebx,ebx,5
1833 add eax,edi
1834 xor esi,edx
1835 shrd ecx,ecx,7
1836 add eax,ebx
1837 vpalignr xmm8,xmm0,xmm7,8
1838 vpxor xmm1,xmm1,xmm5
1839 add ebp,DWORD[16+rsp]
1840 vaesenc xmm12,xmm12,xmm14
1841 vmovups xmm15,XMMWORD[((-48))+r15]
1842 xor esi,ecx
1843 mov edi,eax
1844 shld eax,eax,5
1845 vpxor xmm1,xmm1,xmm2
1846 add ebp,esi
1847 xor edi,ecx
1848 vpaddd xmm9,xmm10,xmm0
1849 shrd ebx,ebx,7
1850 add ebp,eax
1851 vpxor xmm1,xmm1,xmm8
1852 add edx,DWORD[20+rsp]
1853 xor edi,ebx
1854 mov esi,ebp
1855 shld ebp,ebp,5
1856 vpsrld xmm8,xmm1,30
1857 vmovdqa XMMWORD[rsp],xmm9
1858 add edx,edi
1859 xor esi,ebx
1860 shrd eax,eax,7
1861 add edx,ebp
1862 vpslld xmm1,xmm1,2
1863 add ecx,DWORD[24+rsp]
1864 xor esi,eax
1865 mov edi,edx
1866 shld edx,edx,5
1867 add ecx,esi
1868 vaesenc xmm12,xmm12,xmm15
1869 vmovups xmm14,XMMWORD[((-32))+r15]
1870 xor edi,eax
1871 shrd ebp,ebp,7
1872 add ecx,edx
1873 vpor xmm1,xmm1,xmm8
1874 add ebx,DWORD[28+rsp]
1875 xor edi,ebp
1876 mov esi,ecx
1877 shld ecx,ecx,5
1878 add ebx,edi
1879 xor esi,ebp
1880 shrd edx,edx,7
1881 add ebx,ecx
1882 vpalignr xmm8,xmm1,xmm0,8
1883 vpxor xmm2,xmm2,xmm6
1884 add eax,DWORD[32+rsp]
1885 xor esi,edx
1886 mov edi,ebx
1887 shld ebx,ebx,5
1888 vpxor xmm2,xmm2,xmm3
1889 add eax,esi
1890 xor edi,edx
1891 vpaddd xmm9,xmm10,xmm1
1892 vmovdqa xmm10,XMMWORD[32+r11]
1893 shrd ecx,ecx,7
1894 add eax,ebx
1895 vpxor xmm2,xmm2,xmm8
1896 add ebp,DWORD[36+rsp]
1897 vaesenc xmm12,xmm12,xmm14
1898 vmovups xmm15,XMMWORD[((-16))+r15]
1899 xor edi,ecx
1900 mov esi,eax
1901 shld eax,eax,5
1902 vpsrld xmm8,xmm2,30
1903 vmovdqa XMMWORD[16+rsp],xmm9
1904 add ebp,edi
1905 xor esi,ecx
1906 shrd ebx,ebx,7
1907 add ebp,eax
1908 vpslld xmm2,xmm2,2
1909 add edx,DWORD[40+rsp]
1910 xor esi,ebx
1911 mov edi,ebp
1912 shld ebp,ebp,5
1913 add edx,esi
1914 xor edi,ebx
1915 shrd eax,eax,7
1916 add edx,ebp
1917 vpor xmm2,xmm2,xmm8
1918 add ecx,DWORD[44+rsp]
1919 xor edi,eax
1920 mov esi,edx
1921 shld edx,edx,5
1922 add ecx,edi
1923 vaesenc xmm12,xmm12,xmm15
1924 vmovups xmm14,XMMWORD[r15]
1925 xor esi,eax
1926 shrd ebp,ebp,7
1927 add ecx,edx
1928 vpalignr xmm8,xmm2,xmm1,8
1929 vpxor xmm3,xmm3,xmm7
1930 add ebx,DWORD[48+rsp]
1931 xor esi,ebp
1932 mov edi,ecx
1933 shld ecx,ecx,5
1934 vpxor xmm3,xmm3,xmm4
1935 add ebx,esi
1936 xor edi,ebp
1937 vpaddd xmm9,xmm10,xmm2
1938 shrd edx,edx,7
1939 add ebx,ecx
1940 vpxor xmm3,xmm3,xmm8
1941 add eax,DWORD[52+rsp]
1942 xor edi,edx
1943 mov esi,ebx
1944 shld ebx,ebx,5
1945 vpsrld xmm8,xmm3,30
1946 vmovdqa XMMWORD[32+rsp],xmm9
1947 add eax,edi
1948 xor esi,edx
1949 shrd ecx,ecx,7
1950 add eax,ebx
1951 vpslld xmm3,xmm3,2
1952 add ebp,DWORD[56+rsp]
1953 vaesenc xmm12,xmm12,xmm14
1954 vmovups xmm15,XMMWORD[16+r15]
1955 xor esi,ecx
1956 mov edi,eax
1957 shld eax,eax,5
1958 add ebp,esi
1959 xor edi,ecx
1960 shrd ebx,ebx,7
1961 add ebp,eax
1962 vpor xmm3,xmm3,xmm8
1963 add edx,DWORD[60+rsp]
1964 xor edi,ebx
1965 mov esi,ebp
1966 shld ebp,ebp,5
1967 add edx,edi
1968 xor esi,ebx
1969 shrd eax,eax,7
1970 add edx,ebp
1971 vpalignr xmm8,xmm3,xmm2,8
1972 vpxor xmm4,xmm4,xmm0
1973 add ecx,DWORD[rsp]
1974 xor esi,eax
1975 mov edi,edx
1976 shld edx,edx,5
1977 vpxor xmm4,xmm4,xmm5
1978 add ecx,esi
1979 vaesenc xmm12,xmm12,xmm15
1980 vmovups xmm14,XMMWORD[32+r15]
1981 xor edi,eax
1982 vpaddd xmm9,xmm10,xmm3
1983 shrd ebp,ebp,7
1984 add ecx,edx
1985 vpxor xmm4,xmm4,xmm8
1986 add ebx,DWORD[4+rsp]
1987 xor edi,ebp
1988 mov esi,ecx
1989 shld ecx,ecx,5
1990 vpsrld xmm8,xmm4,30
1991 vmovdqa XMMWORD[48+rsp],xmm9
1992 add ebx,edi
1993 xor esi,ebp
1994 shrd edx,edx,7
1995 add ebx,ecx
1996 vpslld xmm4,xmm4,2
1997 add eax,DWORD[8+rsp]
1998 xor esi,edx
1999 mov edi,ebx
2000 shld ebx,ebx,5
2001 add eax,esi
2002 xor edi,edx
2003 shrd ecx,ecx,7
2004 add eax,ebx
2005 vpor xmm4,xmm4,xmm8
2006 add ebp,DWORD[12+rsp]
2007 vaesenc xmm12,xmm12,xmm14
2008 vmovups xmm15,XMMWORD[48+r15]
2009 xor edi,ecx
2010 mov esi,eax
2011 shld eax,eax,5
2012 add ebp,edi
2013 xor esi,ecx
2014 shrd ebx,ebx,7
2015 add ebp,eax
2016 vpalignr xmm8,xmm4,xmm3,8
2017 vpxor xmm5,xmm5,xmm1
2018 add edx,DWORD[16+rsp]
2019 xor esi,ebx
2020 mov edi,ebp
2021 shld ebp,ebp,5
2022 vpxor xmm5,xmm5,xmm6
2023 add edx,esi
2024 xor edi,ebx
2025 vpaddd xmm9,xmm10,xmm4
2026 shrd eax,eax,7
2027 add edx,ebp
2028 vpxor xmm5,xmm5,xmm8
2029 add ecx,DWORD[20+rsp]
2030 xor edi,eax
2031 mov esi,edx
2032 shld edx,edx,5
2033 vpsrld xmm8,xmm5,30
2034 vmovdqa XMMWORD[rsp],xmm9
2035 add ecx,edi
2036 cmp r8d,11
2037 jb NEAR $L$vaesenclast7
2038 vaesenc xmm12,xmm12,xmm15
2039 vmovups xmm14,XMMWORD[64+r15]
2040 vaesenc xmm12,xmm12,xmm14
2041 vmovups xmm15,XMMWORD[80+r15]
2042 je NEAR $L$vaesenclast7
2043 vaesenc xmm12,xmm12,xmm15
2044 vmovups xmm14,XMMWORD[96+r15]
2045 vaesenc xmm12,xmm12,xmm14
2046 vmovups xmm15,XMMWORD[112+r15]
2047$L$vaesenclast7:
2048 vaesenclast xmm12,xmm12,xmm15
2049 vmovups xmm15,XMMWORD[((-112))+r15]
2050 vmovups xmm14,XMMWORD[((16-112))+r15]
2051 xor esi,eax
2052 shrd ebp,ebp,7
2053 add ecx,edx
2054 vpslld xmm5,xmm5,2
2055 add ebx,DWORD[24+rsp]
2056 xor esi,ebp
2057 mov edi,ecx
2058 shld ecx,ecx,5
2059 add ebx,esi
2060 xor edi,ebp
2061 shrd edx,edx,7
2062 add ebx,ecx
2063 vpor xmm5,xmm5,xmm8
2064 add eax,DWORD[28+rsp]
2065 shrd ecx,ecx,7
2066 mov esi,ebx
2067 xor edi,edx
2068 shld ebx,ebx,5
2069 add eax,edi
2070 xor esi,ecx
2071 xor ecx,edx
2072 add eax,ebx
2073 vpalignr xmm8,xmm5,xmm4,8
2074 vpxor xmm6,xmm6,xmm2
2075 add ebp,DWORD[32+rsp]
2076 vmovdqu xmm13,XMMWORD[32+r12]
2077 vpxor xmm13,xmm13,xmm15
2078 vmovups XMMWORD[16+r12*1+r13],xmm12
2079 vpxor xmm12,xmm12,xmm13
2080 vaesenc xmm12,xmm12,xmm14
2081 vmovups xmm15,XMMWORD[((-80))+r15]
2082 and esi,ecx
2083 xor ecx,edx
2084 shrd ebx,ebx,7
2085 vpxor xmm6,xmm6,xmm7
2086 mov edi,eax
2087 xor esi,ecx
2088 vpaddd xmm9,xmm10,xmm5
2089 shld eax,eax,5
2090 add ebp,esi
2091 vpxor xmm6,xmm6,xmm8
2092 xor edi,ebx
2093 xor ebx,ecx
2094 add ebp,eax
2095 add edx,DWORD[36+rsp]
2096 vpsrld xmm8,xmm6,30
2097 vmovdqa XMMWORD[16+rsp],xmm9
2098 and edi,ebx
2099 xor ebx,ecx
2100 shrd eax,eax,7
2101 mov esi,ebp
2102 vpslld xmm6,xmm6,2
2103 xor edi,ebx
2104 shld ebp,ebp,5
2105 add edx,edi
2106 vaesenc xmm12,xmm12,xmm15
2107 vmovups xmm14,XMMWORD[((-64))+r15]
2108 xor esi,eax
2109 xor eax,ebx
2110 add edx,ebp
2111 add ecx,DWORD[40+rsp]
2112 and esi,eax
2113 vpor xmm6,xmm6,xmm8
2114 xor eax,ebx
2115 shrd ebp,ebp,7
2116 mov edi,edx
2117 xor esi,eax
2118 shld edx,edx,5
2119 add ecx,esi
2120 xor edi,ebp
2121 xor ebp,eax
2122 add ecx,edx
2123 add ebx,DWORD[44+rsp]
2124 and edi,ebp
2125 xor ebp,eax
2126 shrd edx,edx,7
2127 vaesenc xmm12,xmm12,xmm14
2128 vmovups xmm15,XMMWORD[((-48))+r15]
2129 mov esi,ecx
2130 xor edi,ebp
2131 shld ecx,ecx,5
2132 add ebx,edi
2133 xor esi,edx
2134 xor edx,ebp
2135 add ebx,ecx
2136 vpalignr xmm8,xmm6,xmm5,8
2137 vpxor xmm7,xmm7,xmm3
2138 add eax,DWORD[48+rsp]
2139 and esi,edx
2140 xor edx,ebp
2141 shrd ecx,ecx,7
2142 vpxor xmm7,xmm7,xmm0
2143 mov edi,ebx
2144 xor esi,edx
2145 vpaddd xmm9,xmm10,xmm6
2146 vmovdqa xmm10,XMMWORD[48+r11]
2147 shld ebx,ebx,5
2148 add eax,esi
2149 vpxor xmm7,xmm7,xmm8
2150 xor edi,ecx
2151 xor ecx,edx
2152 add eax,ebx
2153 add ebp,DWORD[52+rsp]
2154 vaesenc xmm12,xmm12,xmm15
2155 vmovups xmm14,XMMWORD[((-32))+r15]
2156 vpsrld xmm8,xmm7,30
2157 vmovdqa XMMWORD[32+rsp],xmm9
2158 and edi,ecx
2159 xor ecx,edx
2160 shrd ebx,ebx,7
2161 mov esi,eax
2162 vpslld xmm7,xmm7,2
2163 xor edi,ecx
2164 shld eax,eax,5
2165 add ebp,edi
2166 xor esi,ebx
2167 xor ebx,ecx
2168 add ebp,eax
2169 add edx,DWORD[56+rsp]
2170 and esi,ebx
2171 vpor xmm7,xmm7,xmm8
2172 xor ebx,ecx
2173 shrd eax,eax,7
2174 mov edi,ebp
2175 xor esi,ebx
2176 shld ebp,ebp,5
2177 add edx,esi
2178 vaesenc xmm12,xmm12,xmm14
2179 vmovups xmm15,XMMWORD[((-16))+r15]
2180 xor edi,eax
2181 xor eax,ebx
2182 add edx,ebp
2183 add ecx,DWORD[60+rsp]
2184 and edi,eax
2185 xor eax,ebx
2186 shrd ebp,ebp,7
2187 mov esi,edx
2188 xor edi,eax
2189 shld edx,edx,5
2190 add ecx,edi
2191 xor esi,ebp
2192 xor ebp,eax
2193 add ecx,edx
2194 vpalignr xmm8,xmm7,xmm6,8
2195 vpxor xmm0,xmm0,xmm4
2196 add ebx,DWORD[rsp]
2197 and esi,ebp
2198 xor ebp,eax
2199 shrd edx,edx,7
2200 vaesenc xmm12,xmm12,xmm15
2201 vmovups xmm14,XMMWORD[r15]
2202 vpxor xmm0,xmm0,xmm1
2203 mov edi,ecx
2204 xor esi,ebp
2205 vpaddd xmm9,xmm10,xmm7
2206 shld ecx,ecx,5
2207 add ebx,esi
2208 vpxor xmm0,xmm0,xmm8
2209 xor edi,edx
2210 xor edx,ebp
2211 add ebx,ecx
2212 add eax,DWORD[4+rsp]
2213 vpsrld xmm8,xmm0,30
2214 vmovdqa XMMWORD[48+rsp],xmm9
2215 and edi,edx
2216 xor edx,ebp
2217 shrd ecx,ecx,7
2218 mov esi,ebx
2219 vpslld xmm0,xmm0,2
2220 xor edi,edx
2221 shld ebx,ebx,5
2222 add eax,edi
2223 xor esi,ecx
2224 xor ecx,edx
2225 add eax,ebx
2226 add ebp,DWORD[8+rsp]
2227 vaesenc xmm12,xmm12,xmm14
2228 vmovups xmm15,XMMWORD[16+r15]
2229 and esi,ecx
2230 vpor xmm0,xmm0,xmm8
2231 xor ecx,edx
2232 shrd ebx,ebx,7
2233 mov edi,eax
2234 xor esi,ecx
2235 shld eax,eax,5
2236 add ebp,esi
2237 xor edi,ebx
2238 xor ebx,ecx
2239 add ebp,eax
2240 add edx,DWORD[12+rsp]
2241 and edi,ebx
2242 xor ebx,ecx
2243 shrd eax,eax,7
2244 mov esi,ebp
2245 xor edi,ebx
2246 shld ebp,ebp,5
2247 add edx,edi
2248 vaesenc xmm12,xmm12,xmm15
2249 vmovups xmm14,XMMWORD[32+r15]
2250 xor esi,eax
2251 xor eax,ebx
2252 add edx,ebp
2253 vpalignr xmm8,xmm0,xmm7,8
2254 vpxor xmm1,xmm1,xmm5
2255 add ecx,DWORD[16+rsp]
2256 and esi,eax
2257 xor eax,ebx
2258 shrd ebp,ebp,7
2259 vpxor xmm1,xmm1,xmm2
2260 mov edi,edx
2261 xor esi,eax
2262 vpaddd xmm9,xmm10,xmm0
2263 shld edx,edx,5
2264 add ecx,esi
2265 vpxor xmm1,xmm1,xmm8
2266 xor edi,ebp
2267 xor ebp,eax
2268 add ecx,edx
2269 add ebx,DWORD[20+rsp]
2270 vpsrld xmm8,xmm1,30
2271 vmovdqa XMMWORD[rsp],xmm9
2272 and edi,ebp
2273 xor ebp,eax
2274 shrd edx,edx,7
2275 vaesenc xmm12,xmm12,xmm14
2276 vmovups xmm15,XMMWORD[48+r15]
2277 mov esi,ecx
2278 vpslld xmm1,xmm1,2
2279 xor edi,ebp
2280 shld ecx,ecx,5
2281 add ebx,edi
2282 xor esi,edx
2283 xor edx,ebp
2284 add ebx,ecx
2285 add eax,DWORD[24+rsp]
2286 and esi,edx
2287 vpor xmm1,xmm1,xmm8
2288 xor edx,ebp
2289 shrd ecx,ecx,7
2290 mov edi,ebx
2291 xor esi,edx
2292 shld ebx,ebx,5
2293 add eax,esi
2294 xor edi,ecx
2295 xor ecx,edx
2296 add eax,ebx
2297 add ebp,DWORD[28+rsp]
2298 cmp r8d,11
2299 jb NEAR $L$vaesenclast8
2300 vaesenc xmm12,xmm12,xmm15
2301 vmovups xmm14,XMMWORD[64+r15]
2302 vaesenc xmm12,xmm12,xmm14
2303 vmovups xmm15,XMMWORD[80+r15]
2304 je NEAR $L$vaesenclast8
2305 vaesenc xmm12,xmm12,xmm15
2306 vmovups xmm14,XMMWORD[96+r15]
2307 vaesenc xmm12,xmm12,xmm14
2308 vmovups xmm15,XMMWORD[112+r15]
2309$L$vaesenclast8:
2310 vaesenclast xmm12,xmm12,xmm15
2311 vmovups xmm15,XMMWORD[((-112))+r15]
2312 vmovups xmm14,XMMWORD[((16-112))+r15]
2313 and edi,ecx
2314 xor ecx,edx
2315 shrd ebx,ebx,7
2316 mov esi,eax
2317 xor edi,ecx
2318 shld eax,eax,5
2319 add ebp,edi
2320 xor esi,ebx
2321 xor ebx,ecx
2322 add ebp,eax
2323 vpalignr xmm8,xmm1,xmm0,8
2324 vpxor xmm2,xmm2,xmm6
2325 add edx,DWORD[32+rsp]
2326 and esi,ebx
2327 xor ebx,ecx
2328 shrd eax,eax,7
2329 vpxor xmm2,xmm2,xmm3
2330 mov edi,ebp
2331 xor esi,ebx
2332 vpaddd xmm9,xmm10,xmm1
2333 shld ebp,ebp,5
2334 add edx,esi
2335 vmovdqu xmm13,XMMWORD[48+r12]
2336 vpxor xmm13,xmm13,xmm15
2337 vmovups XMMWORD[32+r12*1+r13],xmm12
2338 vpxor xmm12,xmm12,xmm13
2339 vaesenc xmm12,xmm12,xmm14
2340 vmovups xmm15,XMMWORD[((-80))+r15]
2341 vpxor xmm2,xmm2,xmm8
2342 xor edi,eax
2343 xor eax,ebx
2344 add edx,ebp
2345 add ecx,DWORD[36+rsp]
2346 vpsrld xmm8,xmm2,30
2347 vmovdqa XMMWORD[16+rsp],xmm9
2348 and edi,eax
2349 xor eax,ebx
2350 shrd ebp,ebp,7
2351 mov esi,edx
2352 vpslld xmm2,xmm2,2
2353 xor edi,eax
2354 shld edx,edx,5
2355 add ecx,edi
2356 xor esi,ebp
2357 xor ebp,eax
2358 add ecx,edx
2359 add ebx,DWORD[40+rsp]
2360 and esi,ebp
2361 vpor xmm2,xmm2,xmm8
2362 xor ebp,eax
2363 shrd edx,edx,7
2364 vaesenc xmm12,xmm12,xmm15
2365 vmovups xmm14,XMMWORD[((-64))+r15]
2366 mov edi,ecx
2367 xor esi,ebp
2368 shld ecx,ecx,5
2369 add ebx,esi
2370 xor edi,edx
2371 xor edx,ebp
2372 add ebx,ecx
2373 add eax,DWORD[44+rsp]
2374 and edi,edx
2375 xor edx,ebp
2376 shrd ecx,ecx,7
2377 mov esi,ebx
2378 xor edi,edx
2379 shld ebx,ebx,5
2380 add eax,edi
2381 xor esi,edx
2382 add eax,ebx
2383 vpalignr xmm8,xmm2,xmm1,8
2384 vpxor xmm3,xmm3,xmm7
2385 add ebp,DWORD[48+rsp]
2386 vaesenc xmm12,xmm12,xmm14
2387 vmovups xmm15,XMMWORD[((-48))+r15]
2388 xor esi,ecx
2389 mov edi,eax
2390 shld eax,eax,5
2391 vpxor xmm3,xmm3,xmm4
2392 add ebp,esi
2393 xor edi,ecx
2394 vpaddd xmm9,xmm10,xmm2
2395 shrd ebx,ebx,7
2396 add ebp,eax
2397 vpxor xmm3,xmm3,xmm8
2398 add edx,DWORD[52+rsp]
2399 xor edi,ebx
2400 mov esi,ebp
2401 shld ebp,ebp,5
2402 vpsrld xmm8,xmm3,30
2403 vmovdqa XMMWORD[32+rsp],xmm9
2404 add edx,edi
2405 xor esi,ebx
2406 shrd eax,eax,7
2407 add edx,ebp
2408 vpslld xmm3,xmm3,2
2409 add ecx,DWORD[56+rsp]
2410 xor esi,eax
2411 mov edi,edx
2412 shld edx,edx,5
2413 add ecx,esi
2414 vaesenc xmm12,xmm12,xmm15
2415 vmovups xmm14,XMMWORD[((-32))+r15]
2416 xor edi,eax
2417 shrd ebp,ebp,7
2418 add ecx,edx
2419 vpor xmm3,xmm3,xmm8
2420 add ebx,DWORD[60+rsp]
2421 xor edi,ebp
2422 mov esi,ecx
2423 shld ecx,ecx,5
2424 add ebx,edi
2425 xor esi,ebp
2426 shrd edx,edx,7
2427 add ebx,ecx
2428 add eax,DWORD[rsp]
2429 vpaddd xmm9,xmm10,xmm3
2430 xor esi,edx
2431 mov edi,ebx
2432 shld ebx,ebx,5
2433 add eax,esi
2434 vmovdqa XMMWORD[48+rsp],xmm9
2435 xor edi,edx
2436 shrd ecx,ecx,7
2437 add eax,ebx
2438 add ebp,DWORD[4+rsp]
2439 vaesenc xmm12,xmm12,xmm14
2440 vmovups xmm15,XMMWORD[((-16))+r15]
2441 xor edi,ecx
2442 mov esi,eax
2443 shld eax,eax,5
2444 add ebp,edi
2445 xor esi,ecx
2446 shrd ebx,ebx,7
2447 add ebp,eax
2448 add edx,DWORD[8+rsp]
2449 xor esi,ebx
2450 mov edi,ebp
2451 shld ebp,ebp,5
2452 add edx,esi
2453 xor edi,ebx
2454 shrd eax,eax,7
2455 add edx,ebp
2456 add ecx,DWORD[12+rsp]
2457 xor edi,eax
2458 mov esi,edx
2459 shld edx,edx,5
2460 add ecx,edi
2461 vaesenc xmm12,xmm12,xmm15
2462 vmovups xmm14,XMMWORD[r15]
2463 xor esi,eax
2464 shrd ebp,ebp,7
2465 add ecx,edx
2466 cmp r10,r14
2467 je NEAR $L$done_avx
2468 vmovdqa xmm9,XMMWORD[64+r11]
2469 vmovdqa xmm10,XMMWORD[r11]
2470 vmovdqu xmm0,XMMWORD[r10]
2471 vmovdqu xmm1,XMMWORD[16+r10]
2472 vmovdqu xmm2,XMMWORD[32+r10]
2473 vmovdqu xmm3,XMMWORD[48+r10]
2474 vpshufb xmm0,xmm0,xmm9
2475 add r10,64
2476 add ebx,DWORD[16+rsp]
2477 xor esi,ebp
2478 vpshufb xmm1,xmm1,xmm9
2479 mov edi,ecx
2480 shld ecx,ecx,5
2481 vpaddd xmm8,xmm0,xmm10
2482 add ebx,esi
2483 xor edi,ebp
2484 shrd edx,edx,7
2485 add ebx,ecx
2486 vmovdqa XMMWORD[rsp],xmm8
2487 add eax,DWORD[20+rsp]
2488 xor edi,edx
2489 mov esi,ebx
2490 shld ebx,ebx,5
2491 add eax,edi
2492 xor esi,edx
2493 shrd ecx,ecx,7
2494 add eax,ebx
2495 add ebp,DWORD[24+rsp]
2496 vaesenc xmm12,xmm12,xmm14
2497 vmovups xmm15,XMMWORD[16+r15]
2498 xor esi,ecx
2499 mov edi,eax
2500 shld eax,eax,5
2501 add ebp,esi
2502 xor edi,ecx
2503 shrd ebx,ebx,7
2504 add ebp,eax
2505 add edx,DWORD[28+rsp]
2506 xor edi,ebx
2507 mov esi,ebp
2508 shld ebp,ebp,5
2509 add edx,edi
2510 xor esi,ebx
2511 shrd eax,eax,7
2512 add edx,ebp
2513 add ecx,DWORD[32+rsp]
2514 xor esi,eax
2515 vpshufb xmm2,xmm2,xmm9
2516 mov edi,edx
2517 shld edx,edx,5
2518 vpaddd xmm8,xmm1,xmm10
2519 add ecx,esi
2520 vaesenc xmm12,xmm12,xmm15
2521 vmovups xmm14,XMMWORD[32+r15]
2522 xor edi,eax
2523 shrd ebp,ebp,7
2524 add ecx,edx
2525 vmovdqa XMMWORD[16+rsp],xmm8
2526 add ebx,DWORD[36+rsp]
2527 xor edi,ebp
2528 mov esi,ecx
2529 shld ecx,ecx,5
2530 add ebx,edi
2531 xor esi,ebp
2532 shrd edx,edx,7
2533 add ebx,ecx
2534 add eax,DWORD[40+rsp]
2535 xor esi,edx
2536 mov edi,ebx
2537 shld ebx,ebx,5
2538 add eax,esi
2539 xor edi,edx
2540 shrd ecx,ecx,7
2541 add eax,ebx
2542 add ebp,DWORD[44+rsp]
2543 vaesenc xmm12,xmm12,xmm14
2544 vmovups xmm15,XMMWORD[48+r15]
2545 xor edi,ecx
2546 mov esi,eax
2547 shld eax,eax,5
2548 add ebp,edi
2549 xor esi,ecx
2550 shrd ebx,ebx,7
2551 add ebp,eax
2552 add edx,DWORD[48+rsp]
2553 xor esi,ebx
2554 vpshufb xmm3,xmm3,xmm9
2555 mov edi,ebp
2556 shld ebp,ebp,5
2557 vpaddd xmm8,xmm2,xmm10
2558 add edx,esi
2559 xor edi,ebx
2560 shrd eax,eax,7
2561 add edx,ebp
2562 vmovdqa XMMWORD[32+rsp],xmm8
2563 add ecx,DWORD[52+rsp]
2564 xor edi,eax
2565 mov esi,edx
2566 shld edx,edx,5
2567 add ecx,edi
2568 cmp r8d,11
2569 jb NEAR $L$vaesenclast9
2570 vaesenc xmm12,xmm12,xmm15
2571 vmovups xmm14,XMMWORD[64+r15]
2572 vaesenc xmm12,xmm12,xmm14
2573 vmovups xmm15,XMMWORD[80+r15]
2574 je NEAR $L$vaesenclast9
2575 vaesenc xmm12,xmm12,xmm15
2576 vmovups xmm14,XMMWORD[96+r15]
2577 vaesenc xmm12,xmm12,xmm14
2578 vmovups xmm15,XMMWORD[112+r15]
2579$L$vaesenclast9:
2580 vaesenclast xmm12,xmm12,xmm15
2581 vmovups xmm15,XMMWORD[((-112))+r15]
2582 vmovups xmm14,XMMWORD[((16-112))+r15]
2583 xor esi,eax
2584 shrd ebp,ebp,7
2585 add ecx,edx
2586 add ebx,DWORD[56+rsp]
2587 xor esi,ebp
2588 mov edi,ecx
2589 shld ecx,ecx,5
2590 add ebx,esi
2591 xor edi,ebp
2592 shrd edx,edx,7
2593 add ebx,ecx
2594 add eax,DWORD[60+rsp]
2595 xor edi,edx
2596 mov esi,ebx
2597 shld ebx,ebx,5
2598 add eax,edi
2599 shrd ecx,ecx,7
2600 add eax,ebx
2601 vmovups XMMWORD[48+r12*1+r13],xmm12
2602 lea r12,[64+r12]
2603
2604 add eax,DWORD[r9]
2605 add esi,DWORD[4+r9]
2606 add ecx,DWORD[8+r9]
2607 add edx,DWORD[12+r9]
2608 mov DWORD[r9],eax
2609 add ebp,DWORD[16+r9]
2610 mov DWORD[4+r9],esi
2611 mov ebx,esi
2612 mov DWORD[8+r9],ecx
2613 mov edi,ecx
2614 mov DWORD[12+r9],edx
2615 xor edi,edx
2616 mov DWORD[16+r9],ebp
2617 and esi,edi
2618 jmp NEAR $L$oop_avx
2619
2620$L$done_avx:
2621 add ebx,DWORD[16+rsp]
2622 xor esi,ebp
2623 mov edi,ecx
2624 shld ecx,ecx,5
2625 add ebx,esi
2626 xor edi,ebp
2627 shrd edx,edx,7
2628 add ebx,ecx
2629 add eax,DWORD[20+rsp]
2630 xor edi,edx
2631 mov esi,ebx
2632 shld ebx,ebx,5
2633 add eax,edi
2634 xor esi,edx
2635 shrd ecx,ecx,7
2636 add eax,ebx
2637 add ebp,DWORD[24+rsp]
2638 vaesenc xmm12,xmm12,xmm14
2639 vmovups xmm15,XMMWORD[16+r15]
2640 xor esi,ecx
2641 mov edi,eax
2642 shld eax,eax,5
2643 add ebp,esi
2644 xor edi,ecx
2645 shrd ebx,ebx,7
2646 add ebp,eax
2647 add edx,DWORD[28+rsp]
2648 xor edi,ebx
2649 mov esi,ebp
2650 shld ebp,ebp,5
2651 add edx,edi
2652 xor esi,ebx
2653 shrd eax,eax,7
2654 add edx,ebp
2655 add ecx,DWORD[32+rsp]
2656 xor esi,eax
2657 mov edi,edx
2658 shld edx,edx,5
2659 add ecx,esi
2660 vaesenc xmm12,xmm12,xmm15
2661 vmovups xmm14,XMMWORD[32+r15]
2662 xor edi,eax
2663 shrd ebp,ebp,7
2664 add ecx,edx
2665 add ebx,DWORD[36+rsp]
2666 xor edi,ebp
2667 mov esi,ecx
2668 shld ecx,ecx,5
2669 add ebx,edi
2670 xor esi,ebp
2671 shrd edx,edx,7
2672 add ebx,ecx
2673 add eax,DWORD[40+rsp]
2674 xor esi,edx
2675 mov edi,ebx
2676 shld ebx,ebx,5
2677 add eax,esi
2678 xor edi,edx
2679 shrd ecx,ecx,7
2680 add eax,ebx
2681 add ebp,DWORD[44+rsp]
2682 vaesenc xmm12,xmm12,xmm14
2683 vmovups xmm15,XMMWORD[48+r15]
2684 xor edi,ecx
2685 mov esi,eax
2686 shld eax,eax,5
2687 add ebp,edi
2688 xor esi,ecx
2689 shrd ebx,ebx,7
2690 add ebp,eax
2691 add edx,DWORD[48+rsp]
2692 xor esi,ebx
2693 mov edi,ebp
2694 shld ebp,ebp,5
2695 add edx,esi
2696 xor edi,ebx
2697 shrd eax,eax,7
2698 add edx,ebp
2699 add ecx,DWORD[52+rsp]
2700 xor edi,eax
2701 mov esi,edx
2702 shld edx,edx,5
2703 add ecx,edi
2704 cmp r8d,11
2705 jb NEAR $L$vaesenclast10
2706 vaesenc xmm12,xmm12,xmm15
2707 vmovups xmm14,XMMWORD[64+r15]
2708 vaesenc xmm12,xmm12,xmm14
2709 vmovups xmm15,XMMWORD[80+r15]
2710 je NEAR $L$vaesenclast10
2711 vaesenc xmm12,xmm12,xmm15
2712 vmovups xmm14,XMMWORD[96+r15]
2713 vaesenc xmm12,xmm12,xmm14
2714 vmovups xmm15,XMMWORD[112+r15]
2715$L$vaesenclast10:
2716 vaesenclast xmm12,xmm12,xmm15
2717 vmovups xmm15,XMMWORD[((-112))+r15]
2718 vmovups xmm14,XMMWORD[((16-112))+r15]
2719 xor esi,eax
2720 shrd ebp,ebp,7
2721 add ecx,edx
2722 add ebx,DWORD[56+rsp]
2723 xor esi,ebp
2724 mov edi,ecx
2725 shld ecx,ecx,5
2726 add ebx,esi
2727 xor edi,ebp
2728 shrd edx,edx,7
2729 add ebx,ecx
2730 add eax,DWORD[60+rsp]
2731 xor edi,edx
2732 mov esi,ebx
2733 shld ebx,ebx,5
2734 add eax,edi
2735 shrd ecx,ecx,7
2736 add eax,ebx
2737 vmovups XMMWORD[48+r12*1+r13],xmm12
2738 mov r8,QWORD[88+rsp]
2739
2740 add eax,DWORD[r9]
2741 add esi,DWORD[4+r9]
2742 add ecx,DWORD[8+r9]
2743 mov DWORD[r9],eax
2744 add edx,DWORD[12+r9]
2745 mov DWORD[4+r9],esi
2746 add ebp,DWORD[16+r9]
2747 mov DWORD[8+r9],ecx
2748 mov DWORD[12+r9],edx
2749 mov DWORD[16+r9],ebp
2750 vmovups XMMWORD[r8],xmm12
2751 vzeroall
2752 movaps xmm6,XMMWORD[((96+0))+rsp]
2753 movaps xmm7,XMMWORD[((96+16))+rsp]
2754 movaps xmm8,XMMWORD[((96+32))+rsp]
2755 movaps xmm9,XMMWORD[((96+48))+rsp]
2756 movaps xmm10,XMMWORD[((96+64))+rsp]
2757 movaps xmm11,XMMWORD[((96+80))+rsp]
2758 movaps xmm12,XMMWORD[((96+96))+rsp]
2759 movaps xmm13,XMMWORD[((96+112))+rsp]
2760 movaps xmm14,XMMWORD[((96+128))+rsp]
2761 movaps xmm15,XMMWORD[((96+144))+rsp]
2762 lea rsi,[264+rsp]
2763
2764 mov r15,QWORD[rsi]
2765
2766 mov r14,QWORD[8+rsi]
2767
2768 mov r13,QWORD[16+rsi]
2769
2770 mov r12,QWORD[24+rsi]
2771
2772 mov rbp,QWORD[32+rsi]
2773
2774 mov rbx,QWORD[40+rsi]
2775
2776 lea rsp,[48+rsi]
2777
2778$L$epilogue_avx:
2779 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
2780 mov rsi,QWORD[16+rsp]
2781 DB 0F3h,0C3h ;repret
2782
2783$L$SEH_end_aesni_cbc_sha1_enc_avx:
2784ALIGN 64
2785K_XX_XX:
2786 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999
2787 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
2788 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
2789 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
2790 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
2791DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
2792
2793DB 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115
2794DB 116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52
2795DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
2796DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
2797DB 114,103,62,0
2798ALIGN 64
2799
2800ALIGN 32
2801aesni_cbc_sha1_enc_shaext:
2802 mov QWORD[8+rsp],rdi ;WIN64 prologue
2803 mov QWORD[16+rsp],rsi
2804 mov rax,rsp
2805$L$SEH_begin_aesni_cbc_sha1_enc_shaext:
2806 mov rdi,rcx
2807 mov rsi,rdx
2808 mov rdx,r8
2809 mov rcx,r9
2810 mov r8,QWORD[40+rsp]
2811 mov r9,QWORD[48+rsp]
2812
2813
2814
2815 mov r10,QWORD[56+rsp]
2816 lea rsp,[((-168))+rsp]
2817 movaps XMMWORD[(-8-160)+rax],xmm6
2818 movaps XMMWORD[(-8-144)+rax],xmm7
2819 movaps XMMWORD[(-8-128)+rax],xmm8
2820 movaps XMMWORD[(-8-112)+rax],xmm9
2821 movaps XMMWORD[(-8-96)+rax],xmm10
2822 movaps XMMWORD[(-8-80)+rax],xmm11
2823 movaps XMMWORD[(-8-64)+rax],xmm12
2824 movaps XMMWORD[(-8-48)+rax],xmm13
2825 movaps XMMWORD[(-8-32)+rax],xmm14
2826 movaps XMMWORD[(-8-16)+rax],xmm15
2827$L$prologue_shaext:
2828 movdqu xmm8,XMMWORD[r9]
2829 movd xmm9,DWORD[16+r9]
2830 movdqa xmm7,XMMWORD[((K_XX_XX+80))]
2831
2832 mov r11d,DWORD[240+rcx]
2833 sub rsi,rdi
2834 movups xmm15,XMMWORD[rcx]
2835 movups xmm2,XMMWORD[r8]
2836 movups xmm0,XMMWORD[16+rcx]
2837 lea rcx,[112+rcx]
2838
2839 pshufd xmm8,xmm8,27
2840 pshufd xmm9,xmm9,27
2841 jmp NEAR $L$oop_shaext
2842
2843ALIGN 16
2844$L$oop_shaext:
2845 movups xmm14,XMMWORD[rdi]
2846 xorps xmm14,xmm15
2847 xorps xmm2,xmm14
2848 movups xmm1,XMMWORD[((-80))+rcx]
2849DB 102,15,56,220,208
2850 movdqu xmm3,XMMWORD[r10]
2851 movdqa xmm12,xmm9
2852DB 102,15,56,0,223
2853 movdqu xmm4,XMMWORD[16+r10]
2854 movdqa xmm11,xmm8
2855 movups xmm0,XMMWORD[((-64))+rcx]
2856DB 102,15,56,220,209
2857DB 102,15,56,0,231
2858
2859 paddd xmm9,xmm3
2860 movdqu xmm5,XMMWORD[32+r10]
2861 lea r10,[64+r10]
2862 pxor xmm3,xmm12
2863 movups xmm1,XMMWORD[((-48))+rcx]
2864DB 102,15,56,220,208
2865 pxor xmm3,xmm12
2866 movdqa xmm10,xmm8
2867DB 102,15,56,0,239
2868DB 69,15,58,204,193,0
2869DB 68,15,56,200,212
2870 movups xmm0,XMMWORD[((-32))+rcx]
2871DB 102,15,56,220,209
2872DB 15,56,201,220
2873 movdqu xmm6,XMMWORD[((-16))+r10]
2874 movdqa xmm9,xmm8
2875DB 102,15,56,0,247
2876 movups xmm1,XMMWORD[((-16))+rcx]
2877DB 102,15,56,220,208
2878DB 69,15,58,204,194,0
2879DB 68,15,56,200,205
2880 pxor xmm3,xmm5
2881DB 15,56,201,229
2882 movups xmm0,XMMWORD[rcx]
2883DB 102,15,56,220,209
2884 movdqa xmm10,xmm8
2885DB 69,15,58,204,193,0
2886DB 68,15,56,200,214
2887 movups xmm1,XMMWORD[16+rcx]
2888DB 102,15,56,220,208
2889DB 15,56,202,222
2890 pxor xmm4,xmm6
2891DB 15,56,201,238
2892 movups xmm0,XMMWORD[32+rcx]
2893DB 102,15,56,220,209
2894 movdqa xmm9,xmm8
2895DB 69,15,58,204,194,0
2896DB 68,15,56,200,203
2897 movups xmm1,XMMWORD[48+rcx]
2898DB 102,15,56,220,208
2899DB 15,56,202,227
2900 pxor xmm5,xmm3
2901DB 15,56,201,243
2902 cmp r11d,11
2903 jb NEAR $L$aesenclast11
2904 movups xmm0,XMMWORD[64+rcx]
2905DB 102,15,56,220,209
2906 movups xmm1,XMMWORD[80+rcx]
2907DB 102,15,56,220,208
2908 je NEAR $L$aesenclast11
2909 movups xmm0,XMMWORD[96+rcx]
2910DB 102,15,56,220,209
2911 movups xmm1,XMMWORD[112+rcx]
2912DB 102,15,56,220,208
2913$L$aesenclast11:
2914DB 102,15,56,221,209
2915 movups xmm0,XMMWORD[((16-112))+rcx]
2916 movdqa xmm10,xmm8
2917DB 69,15,58,204,193,0
2918DB 68,15,56,200,212
2919 movups xmm14,XMMWORD[16+rdi]
2920 xorps xmm14,xmm15
2921 movups XMMWORD[rdi*1+rsi],xmm2
2922 xorps xmm2,xmm14
2923 movups xmm1,XMMWORD[((-80))+rcx]
2924DB 102,15,56,220,208
2925DB 15,56,202,236
2926 pxor xmm6,xmm4
2927DB 15,56,201,220
2928 movups xmm0,XMMWORD[((-64))+rcx]
2929DB 102,15,56,220,209
2930 movdqa xmm9,xmm8
2931DB 69,15,58,204,194,1
2932DB 68,15,56,200,205
2933 movups xmm1,XMMWORD[((-48))+rcx]
2934DB 102,15,56,220,208
2935DB 15,56,202,245
2936 pxor xmm3,xmm5
2937DB 15,56,201,229
2938 movups xmm0,XMMWORD[((-32))+rcx]
2939DB 102,15,56,220,209
2940 movdqa xmm10,xmm8
2941DB 69,15,58,204,193,1
2942DB 68,15,56,200,214
2943 movups xmm1,XMMWORD[((-16))+rcx]
2944DB 102,15,56,220,208
2945DB 15,56,202,222
2946 pxor xmm4,xmm6
2947DB 15,56,201,238
2948 movups xmm0,XMMWORD[rcx]
2949DB 102,15,56,220,209
2950 movdqa xmm9,xmm8
2951DB 69,15,58,204,194,1
2952DB 68,15,56,200,203
2953 movups xmm1,XMMWORD[16+rcx]
2954DB 102,15,56,220,208
2955DB 15,56,202,227
2956 pxor xmm5,xmm3
2957DB 15,56,201,243
2958 movups xmm0,XMMWORD[32+rcx]
2959DB 102,15,56,220,209
2960 movdqa xmm10,xmm8
2961DB 69,15,58,204,193,1
2962DB 68,15,56,200,212
2963 movups xmm1,XMMWORD[48+rcx]
2964DB 102,15,56,220,208
2965DB 15,56,202,236
2966 pxor xmm6,xmm4
2967DB 15,56,201,220
2968 cmp r11d,11
2969 jb NEAR $L$aesenclast12
2970 movups xmm0,XMMWORD[64+rcx]
2971DB 102,15,56,220,209
2972 movups xmm1,XMMWORD[80+rcx]
2973DB 102,15,56,220,208
2974 je NEAR $L$aesenclast12
2975 movups xmm0,XMMWORD[96+rcx]
2976DB 102,15,56,220,209
2977 movups xmm1,XMMWORD[112+rcx]
2978DB 102,15,56,220,208
2979$L$aesenclast12:
2980DB 102,15,56,221,209
2981 movups xmm0,XMMWORD[((16-112))+rcx]
2982 movdqa xmm9,xmm8
2983DB 69,15,58,204,194,1
2984DB 68,15,56,200,205
2985 movups xmm14,XMMWORD[32+rdi]
2986 xorps xmm14,xmm15
2987 movups XMMWORD[16+rdi*1+rsi],xmm2
2988 xorps xmm2,xmm14
2989 movups xmm1,XMMWORD[((-80))+rcx]
2990DB 102,15,56,220,208
2991DB 15,56,202,245
2992 pxor xmm3,xmm5
2993DB 15,56,201,229
2994 movups xmm0,XMMWORD[((-64))+rcx]
2995DB 102,15,56,220,209
2996 movdqa xmm10,xmm8
2997DB 69,15,58,204,193,2
2998DB 68,15,56,200,214
2999 movups xmm1,XMMWORD[((-48))+rcx]
3000DB 102,15,56,220,208
3001DB 15,56,202,222
3002 pxor xmm4,xmm6
3003DB 15,56,201,238
3004 movups xmm0,XMMWORD[((-32))+rcx]
3005DB 102,15,56,220,209
3006 movdqa xmm9,xmm8
3007DB 69,15,58,204,194,2
3008DB 68,15,56,200,203
3009 movups xmm1,XMMWORD[((-16))+rcx]
3010DB 102,15,56,220,208
3011DB 15,56,202,227
3012 pxor xmm5,xmm3
3013DB 15,56,201,243
3014 movups xmm0,XMMWORD[rcx]
3015DB 102,15,56,220,209
3016 movdqa xmm10,xmm8
3017DB 69,15,58,204,193,2
3018DB 68,15,56,200,212
3019 movups xmm1,XMMWORD[16+rcx]
3020DB 102,15,56,220,208
3021DB 15,56,202,236
3022 pxor xmm6,xmm4
3023DB 15,56,201,220
3024 movups xmm0,XMMWORD[32+rcx]
3025DB 102,15,56,220,209
3026 movdqa xmm9,xmm8
3027DB 69,15,58,204,194,2
3028DB 68,15,56,200,205
3029 movups xmm1,XMMWORD[48+rcx]
3030DB 102,15,56,220,208
3031DB 15,56,202,245
3032 pxor xmm3,xmm5
3033DB 15,56,201,229
3034 cmp r11d,11
3035 jb NEAR $L$aesenclast13
3036 movups xmm0,XMMWORD[64+rcx]
3037DB 102,15,56,220,209
3038 movups xmm1,XMMWORD[80+rcx]
3039DB 102,15,56,220,208
3040 je NEAR $L$aesenclast13
3041 movups xmm0,XMMWORD[96+rcx]
3042DB 102,15,56,220,209
3043 movups xmm1,XMMWORD[112+rcx]
3044DB 102,15,56,220,208
3045$L$aesenclast13:
3046DB 102,15,56,221,209
3047 movups xmm0,XMMWORD[((16-112))+rcx]
3048 movdqa xmm10,xmm8
3049DB 69,15,58,204,193,2
3050DB 68,15,56,200,214
3051 movups xmm14,XMMWORD[48+rdi]
3052 xorps xmm14,xmm15
3053 movups XMMWORD[32+rdi*1+rsi],xmm2
3054 xorps xmm2,xmm14
3055 movups xmm1,XMMWORD[((-80))+rcx]
3056DB 102,15,56,220,208
3057DB 15,56,202,222
3058 pxor xmm4,xmm6
3059DB 15,56,201,238
3060 movups xmm0,XMMWORD[((-64))+rcx]
3061DB 102,15,56,220,209
3062 movdqa xmm9,xmm8
3063DB 69,15,58,204,194,3
3064DB 68,15,56,200,203
3065 movups xmm1,XMMWORD[((-48))+rcx]
3066DB 102,15,56,220,208
3067DB 15,56,202,227
3068 pxor xmm5,xmm3
3069DB 15,56,201,243
3070 movups xmm0,XMMWORD[((-32))+rcx]
3071DB 102,15,56,220,209
3072 movdqa xmm10,xmm8
3073DB 69,15,58,204,193,3
3074DB 68,15,56,200,212
3075DB 15,56,202,236
3076 pxor xmm6,xmm4
3077 movups xmm1,XMMWORD[((-16))+rcx]
3078DB 102,15,56,220,208
3079 movdqa xmm9,xmm8
3080DB 69,15,58,204,194,3
3081DB 68,15,56,200,205
3082DB 15,56,202,245
3083 movups xmm0,XMMWORD[rcx]
3084DB 102,15,56,220,209
3085 movdqa xmm5,xmm12
3086 movdqa xmm10,xmm8
3087DB 69,15,58,204,193,3
3088DB 68,15,56,200,214
3089 movups xmm1,XMMWORD[16+rcx]
3090DB 102,15,56,220,208
3091 movdqa xmm9,xmm8
3092DB 69,15,58,204,194,3
3093DB 68,15,56,200,205
3094 movups xmm0,XMMWORD[32+rcx]
3095DB 102,15,56,220,209
3096 movups xmm1,XMMWORD[48+rcx]
3097DB 102,15,56,220,208
3098 cmp r11d,11
3099 jb NEAR $L$aesenclast14
3100 movups xmm0,XMMWORD[64+rcx]
3101DB 102,15,56,220,209
3102 movups xmm1,XMMWORD[80+rcx]
3103DB 102,15,56,220,208
3104 je NEAR $L$aesenclast14
3105 movups xmm0,XMMWORD[96+rcx]
3106DB 102,15,56,220,209
3107 movups xmm1,XMMWORD[112+rcx]
3108DB 102,15,56,220,208
3109$L$aesenclast14:
3110DB 102,15,56,221,209
3111 movups xmm0,XMMWORD[((16-112))+rcx]
3112 dec rdx
3113
3114 paddd xmm8,xmm11
3115 movups XMMWORD[48+rdi*1+rsi],xmm2
3116 lea rdi,[64+rdi]
3117 jnz NEAR $L$oop_shaext
3118
3119 pshufd xmm8,xmm8,27
3120 pshufd xmm9,xmm9,27
3121 movups XMMWORD[r8],xmm2
3122 movdqu XMMWORD[r9],xmm8
3123 movd DWORD[16+r9],xmm9
3124 movaps xmm6,XMMWORD[((-8-160))+rax]
3125 movaps xmm7,XMMWORD[((-8-144))+rax]
3126 movaps xmm8,XMMWORD[((-8-128))+rax]
3127 movaps xmm9,XMMWORD[((-8-112))+rax]
3128 movaps xmm10,XMMWORD[((-8-96))+rax]
3129 movaps xmm11,XMMWORD[((-8-80))+rax]
3130 movaps xmm12,XMMWORD[((-8-64))+rax]
3131 movaps xmm13,XMMWORD[((-8-48))+rax]
3132 movaps xmm14,XMMWORD[((-8-32))+rax]
3133 movaps xmm15,XMMWORD[((-8-16))+rax]
3134 mov rsp,rax
3135$L$epilogue_shaext:
3136 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
3137 mov rsi,QWORD[16+rsp]
3138 DB 0F3h,0C3h ;repret
3139
3140$L$SEH_end_aesni_cbc_sha1_enc_shaext:
3141EXTERN __imp_RtlVirtualUnwind
3142
3143ALIGN 16
3144ssse3_handler:
3145 push rsi
3146 push rdi
3147 push rbx
3148 push rbp
3149 push r12
3150 push r13
3151 push r14
3152 push r15
3153 pushfq
3154 sub rsp,64
3155
3156 mov rax,QWORD[120+r8]
3157 mov rbx,QWORD[248+r8]
3158
3159 mov rsi,QWORD[8+r9]
3160 mov r11,QWORD[56+r9]
3161
3162 mov r10d,DWORD[r11]
3163 lea r10,[r10*1+rsi]
3164 cmp rbx,r10
3165 jb NEAR $L$common_seh_tail
3166
3167 mov rax,QWORD[152+r8]
3168
3169 mov r10d,DWORD[4+r11]
3170 lea r10,[r10*1+rsi]
3171 cmp rbx,r10
3172 jae NEAR $L$common_seh_tail
3173 lea r10,[aesni_cbc_sha1_enc_shaext]
3174 cmp rbx,r10
3175 jb NEAR $L$seh_no_shaext
3176
3177 lea rsi,[rax]
3178 lea rdi,[512+r8]
3179 mov ecx,20
3180 DD 0xa548f3fc
3181 lea rax,[168+rax]
3182 jmp NEAR $L$common_seh_tail
3183$L$seh_no_shaext:
3184 lea rsi,[96+rax]
3185 lea rdi,[512+r8]
3186 mov ecx,20
3187 DD 0xa548f3fc
3188 lea rax,[264+rax]
3189
3190 mov r15,QWORD[rax]
3191 mov r14,QWORD[8+rax]
3192 mov r13,QWORD[16+rax]
3193 mov r12,QWORD[24+rax]
3194 mov rbp,QWORD[32+rax]
3195 mov rbx,QWORD[40+rax]
3196 lea rax,[48+rax]
3197 mov QWORD[144+r8],rbx
3198 mov QWORD[160+r8],rbp
3199 mov QWORD[216+r8],r12
3200 mov QWORD[224+r8],r13
3201 mov QWORD[232+r8],r14
3202 mov QWORD[240+r8],r15
3203
3204$L$common_seh_tail:
3205 mov rdi,QWORD[8+rax]
3206 mov rsi,QWORD[16+rax]
3207 mov QWORD[152+r8],rax
3208 mov QWORD[168+r8],rsi
3209 mov QWORD[176+r8],rdi
3210
3211 mov rdi,QWORD[40+r9]
3212 mov rsi,r8
3213 mov ecx,154
3214 DD 0xa548f3fc
3215
3216 mov rsi,r9
3217 xor rcx,rcx
3218 mov rdx,QWORD[8+rsi]
3219 mov r8,QWORD[rsi]
3220 mov r9,QWORD[16+rsi]
3221 mov r10,QWORD[40+rsi]
3222 lea r11,[56+rsi]
3223 lea r12,[24+rsi]
3224 mov QWORD[32+rsp],r10
3225 mov QWORD[40+rsp],r11
3226 mov QWORD[48+rsp],r12
3227 mov QWORD[56+rsp],rcx
3228 call QWORD[__imp_RtlVirtualUnwind]
3229
3230 mov eax,1
3231 add rsp,64
3232 popfq
3233 pop r15
3234 pop r14
3235 pop r13
3236 pop r12
3237 pop rbp
3238 pop rbx
3239 pop rdi
3240 pop rsi
3241 DB 0F3h,0C3h ;repret
3242
3243
3244section .pdata rdata align=4
3245ALIGN 4
3246 DD $L$SEH_begin_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
3247 DD $L$SEH_end_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
3248 DD $L$SEH_info_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
3249 DD $L$SEH_begin_aesni_cbc_sha1_enc_avx wrt ..imagebase
3250 DD $L$SEH_end_aesni_cbc_sha1_enc_avx wrt ..imagebase
3251 DD $L$SEH_info_aesni_cbc_sha1_enc_avx wrt ..imagebase
3252 DD $L$SEH_begin_aesni_cbc_sha1_enc_shaext wrt ..imagebase
3253 DD $L$SEH_end_aesni_cbc_sha1_enc_shaext wrt ..imagebase
3254 DD $L$SEH_info_aesni_cbc_sha1_enc_shaext wrt ..imagebase
3255section .xdata rdata align=8
3256ALIGN 8
3257$L$SEH_info_aesni_cbc_sha1_enc_ssse3:
3258DB 9,0,0,0
3259 DD ssse3_handler wrt ..imagebase
3260 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
3261$L$SEH_info_aesni_cbc_sha1_enc_avx:
3262DB 9,0,0,0
3263 DD ssse3_handler wrt ..imagebase
3264 DD $L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase
3265$L$SEH_info_aesni_cbc_sha1_enc_shaext:
3266DB 9,0,0,0
3267 DD ssse3_handler wrt ..imagebase
3268 DD $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette