VirtualBox

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

最後變更 在這個檔案從98103是 97373,由 vboxsync 提交於 2 年 前

libs/openssl-3.0.7: Recreate openssl nasm files to hopefully fix the windows build boxes, bugref:10317

檔案大小: 33.4 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 jmp NEAR aesni_cbc_sha1_enc_ssse3
20 DB 0F3h,0C3h ;repret
21
22
23
24ALIGN 32
25aesni_cbc_sha1_enc_ssse3:
26 mov QWORD[8+rsp],rdi ;WIN64 prologue
27 mov QWORD[16+rsp],rsi
28 mov rax,rsp
29$L$SEH_begin_aesni_cbc_sha1_enc_ssse3:
30 mov rdi,rcx
31 mov rsi,rdx
32 mov rdx,r8
33 mov rcx,r9
34 mov r8,QWORD[40+rsp]
35 mov r9,QWORD[48+rsp]
36
37
38
39 mov r10,QWORD[56+rsp]
40
41
42 push rbx
43
44 push rbp
45
46 push r12
47
48 push r13
49
50 push r14
51
52 push r15
53
54 lea rsp,[((-264))+rsp]
55
56
57
58 movaps XMMWORD[(96+0)+rsp],xmm6
59 movaps XMMWORD[(96+16)+rsp],xmm7
60 movaps XMMWORD[(96+32)+rsp],xmm8
61 movaps XMMWORD[(96+48)+rsp],xmm9
62 movaps XMMWORD[(96+64)+rsp],xmm10
63 movaps XMMWORD[(96+80)+rsp],xmm11
64 movaps XMMWORD[(96+96)+rsp],xmm12
65 movaps XMMWORD[(96+112)+rsp],xmm13
66 movaps XMMWORD[(96+128)+rsp],xmm14
67 movaps XMMWORD[(96+144)+rsp],xmm15
68$L$prologue_ssse3:
69 mov r12,rdi
70 mov r13,rsi
71 mov r14,rdx
72 lea r15,[112+rcx]
73 movdqu xmm2,XMMWORD[r8]
74 mov QWORD[88+rsp],r8
75 shl r14,6
76 sub r13,r12
77 mov r8d,DWORD[((240-112))+r15]
78 add r14,r10
79
80 lea r11,[K_XX_XX]
81 mov eax,DWORD[r9]
82 mov ebx,DWORD[4+r9]
83 mov ecx,DWORD[8+r9]
84 mov edx,DWORD[12+r9]
85 mov esi,ebx
86 mov ebp,DWORD[16+r9]
87 mov edi,ecx
88 xor edi,edx
89 and esi,edi
90
91 movdqa xmm3,XMMWORD[64+r11]
92 movdqa xmm13,XMMWORD[r11]
93 movdqu xmm4,XMMWORD[r10]
94 movdqu xmm5,XMMWORD[16+r10]
95 movdqu xmm6,XMMWORD[32+r10]
96 movdqu xmm7,XMMWORD[48+r10]
97DB 102,15,56,0,227
98DB 102,15,56,0,235
99DB 102,15,56,0,243
100 add r10,64
101 paddd xmm4,xmm13
102DB 102,15,56,0,251
103 paddd xmm5,xmm13
104 paddd xmm6,xmm13
105 movdqa XMMWORD[rsp],xmm4
106 psubd xmm4,xmm13
107 movdqa XMMWORD[16+rsp],xmm5
108 psubd xmm5,xmm13
109 movdqa XMMWORD[32+rsp],xmm6
110 psubd xmm6,xmm13
111 movups xmm15,XMMWORD[((-112))+r15]
112 movups xmm0,XMMWORD[((16-112))+r15]
113 jmp NEAR $L$oop_ssse3
114ALIGN 32
115$L$oop_ssse3:
116 ror ebx,2
117 movups xmm14,XMMWORD[r12]
118 xorps xmm14,xmm15
119 xorps xmm2,xmm14
120 movups xmm1,XMMWORD[((-80))+r15]
121DB 102,15,56,220,208
122 pshufd xmm8,xmm4,238
123 xor esi,edx
124 movdqa xmm12,xmm7
125 paddd xmm13,xmm7
126 mov edi,eax
127 add ebp,DWORD[rsp]
128 punpcklqdq xmm8,xmm5
129 xor ebx,ecx
130 rol eax,5
131 add ebp,esi
132 psrldq xmm12,4
133 and edi,ebx
134 xor ebx,ecx
135 pxor xmm8,xmm4
136 add ebp,eax
137 ror eax,7
138 pxor xmm12,xmm6
139 xor edi,ecx
140 mov esi,ebp
141 add edx,DWORD[4+rsp]
142 pxor xmm8,xmm12
143 xor eax,ebx
144 rol ebp,5
145 movdqa XMMWORD[48+rsp],xmm13
146 add edx,edi
147 movups xmm0,XMMWORD[((-64))+r15]
148DB 102,15,56,220,209
149 and esi,eax
150 movdqa xmm3,xmm8
151 xor eax,ebx
152 add edx,ebp
153 ror ebp,7
154 movdqa xmm12,xmm8
155 xor esi,ebx
156 pslldq xmm3,12
157 paddd xmm8,xmm8
158 mov edi,edx
159 add ecx,DWORD[8+rsp]
160 psrld xmm12,31
161 xor ebp,eax
162 rol edx,5
163 add ecx,esi
164 movdqa xmm13,xmm3
165 and edi,ebp
166 xor ebp,eax
167 psrld xmm3,30
168 add ecx,edx
169 ror edx,7
170 por xmm8,xmm12
171 xor edi,eax
172 mov esi,ecx
173 add ebx,DWORD[12+rsp]
174 movups xmm1,XMMWORD[((-48))+r15]
175DB 102,15,56,220,208
176 pslld xmm13,2
177 pxor xmm8,xmm3
178 xor edx,ebp
179 movdqa xmm3,XMMWORD[r11]
180 rol ecx,5
181 add ebx,edi
182 and esi,edx
183 pxor xmm8,xmm13
184 xor edx,ebp
185 add ebx,ecx
186 ror ecx,7
187 pshufd xmm9,xmm5,238
188 xor esi,ebp
189 movdqa xmm13,xmm8
190 paddd xmm3,xmm8
191 mov edi,ebx
192 add eax,DWORD[16+rsp]
193 punpcklqdq xmm9,xmm6
194 xor ecx,edx
195 rol ebx,5
196 add eax,esi
197 psrldq xmm13,4
198 and edi,ecx
199 xor ecx,edx
200 pxor xmm9,xmm5
201 add eax,ebx
202 ror ebx,7
203 movups xmm0,XMMWORD[((-32))+r15]
204DB 102,15,56,220,209
205 pxor xmm13,xmm7
206 xor edi,edx
207 mov esi,eax
208 add ebp,DWORD[20+rsp]
209 pxor xmm9,xmm13
210 xor ebx,ecx
211 rol eax,5
212 movdqa XMMWORD[rsp],xmm3
213 add ebp,edi
214 and esi,ebx
215 movdqa xmm12,xmm9
216 xor ebx,ecx
217 add ebp,eax
218 ror eax,7
219 movdqa xmm13,xmm9
220 xor esi,ecx
221 pslldq xmm12,12
222 paddd xmm9,xmm9
223 mov edi,ebp
224 add edx,DWORD[24+rsp]
225 psrld xmm13,31
226 xor eax,ebx
227 rol ebp,5
228 add edx,esi
229 movups xmm1,XMMWORD[((-16))+r15]
230DB 102,15,56,220,208
231 movdqa xmm3,xmm12
232 and edi,eax
233 xor eax,ebx
234 psrld xmm12,30
235 add edx,ebp
236 ror ebp,7
237 por xmm9,xmm13
238 xor edi,ebx
239 mov esi,edx
240 add ecx,DWORD[28+rsp]
241 pslld xmm3,2
242 pxor xmm9,xmm12
243 xor ebp,eax
244 movdqa xmm12,XMMWORD[16+r11]
245 rol edx,5
246 add ecx,edi
247 and esi,ebp
248 pxor xmm9,xmm3
249 xor ebp,eax
250 add ecx,edx
251 ror edx,7
252 pshufd xmm10,xmm6,238
253 xor esi,eax
254 movdqa xmm3,xmm9
255 paddd xmm12,xmm9
256 mov edi,ecx
257 add ebx,DWORD[32+rsp]
258 movups xmm0,XMMWORD[r15]
259DB 102,15,56,220,209
260 punpcklqdq xmm10,xmm7
261 xor edx,ebp
262 rol ecx,5
263 add ebx,esi
264 psrldq xmm3,4
265 and edi,edx
266 xor edx,ebp
267 pxor xmm10,xmm6
268 add ebx,ecx
269 ror ecx,7
270 pxor xmm3,xmm8
271 xor edi,ebp
272 mov esi,ebx
273 add eax,DWORD[36+rsp]
274 pxor xmm10,xmm3
275 xor ecx,edx
276 rol ebx,5
277 movdqa XMMWORD[16+rsp],xmm12
278 add eax,edi
279 and esi,ecx
280 movdqa xmm13,xmm10
281 xor ecx,edx
282 add eax,ebx
283 ror ebx,7
284 movups xmm1,XMMWORD[16+r15]
285DB 102,15,56,220,208
286 movdqa xmm3,xmm10
287 xor esi,edx
288 pslldq xmm13,12
289 paddd xmm10,xmm10
290 mov edi,eax
291 add ebp,DWORD[40+rsp]
292 psrld xmm3,31
293 xor ebx,ecx
294 rol eax,5
295 add ebp,esi
296 movdqa xmm12,xmm13
297 and edi,ebx
298 xor ebx,ecx
299 psrld xmm13,30
300 add ebp,eax
301 ror eax,7
302 por xmm10,xmm3
303 xor edi,ecx
304 mov esi,ebp
305 add edx,DWORD[44+rsp]
306 pslld xmm12,2
307 pxor xmm10,xmm13
308 xor eax,ebx
309 movdqa xmm13,XMMWORD[16+r11]
310 rol ebp,5
311 add edx,edi
312 movups xmm0,XMMWORD[32+r15]
313DB 102,15,56,220,209
314 and esi,eax
315 pxor xmm10,xmm12
316 xor eax,ebx
317 add edx,ebp
318 ror ebp,7
319 pshufd xmm11,xmm7,238
320 xor esi,ebx
321 movdqa xmm12,xmm10
322 paddd xmm13,xmm10
323 mov edi,edx
324 add ecx,DWORD[48+rsp]
325 punpcklqdq xmm11,xmm8
326 xor ebp,eax
327 rol edx,5
328 add ecx,esi
329 psrldq xmm12,4
330 and edi,ebp
331 xor ebp,eax
332 pxor xmm11,xmm7
333 add ecx,edx
334 ror edx,7
335 pxor xmm12,xmm9
336 xor edi,eax
337 mov esi,ecx
338 add ebx,DWORD[52+rsp]
339 movups xmm1,XMMWORD[48+r15]
340DB 102,15,56,220,208
341 pxor xmm11,xmm12
342 xor edx,ebp
343 rol ecx,5
344 movdqa XMMWORD[32+rsp],xmm13
345 add ebx,edi
346 and esi,edx
347 movdqa xmm3,xmm11
348 xor edx,ebp
349 add ebx,ecx
350 ror ecx,7
351 movdqa xmm12,xmm11
352 xor esi,ebp
353 pslldq xmm3,12
354 paddd xmm11,xmm11
355 mov edi,ebx
356 add eax,DWORD[56+rsp]
357 psrld xmm12,31
358 xor ecx,edx
359 rol ebx,5
360 add eax,esi
361 movdqa xmm13,xmm3
362 and edi,ecx
363 xor ecx,edx
364 psrld xmm3,30
365 add eax,ebx
366 ror ebx,7
367 cmp r8d,11
368 jb NEAR $L$aesenclast1
369 movups xmm0,XMMWORD[64+r15]
370DB 102,15,56,220,209
371 movups xmm1,XMMWORD[80+r15]
372DB 102,15,56,220,208
373 je NEAR $L$aesenclast1
374 movups xmm0,XMMWORD[96+r15]
375DB 102,15,56,220,209
376 movups xmm1,XMMWORD[112+r15]
377DB 102,15,56,220,208
378$L$aesenclast1:
379DB 102,15,56,221,209
380 movups xmm0,XMMWORD[((16-112))+r15]
381 por xmm11,xmm12
382 xor edi,edx
383 mov esi,eax
384 add ebp,DWORD[60+rsp]
385 pslld xmm13,2
386 pxor xmm11,xmm3
387 xor ebx,ecx
388 movdqa xmm3,XMMWORD[16+r11]
389 rol eax,5
390 add ebp,edi
391 and esi,ebx
392 pxor xmm11,xmm13
393 pshufd xmm13,xmm10,238
394 xor ebx,ecx
395 add ebp,eax
396 ror eax,7
397 pxor xmm4,xmm8
398 xor esi,ecx
399 mov edi,ebp
400 add edx,DWORD[rsp]
401 punpcklqdq xmm13,xmm11
402 xor eax,ebx
403 rol ebp,5
404 pxor xmm4,xmm5
405 add edx,esi
406 movups xmm14,XMMWORD[16+r12]
407 xorps xmm14,xmm15
408 movups XMMWORD[r13*1+r12],xmm2
409 xorps xmm2,xmm14
410 movups xmm1,XMMWORD[((-80))+r15]
411DB 102,15,56,220,208
412 and edi,eax
413 movdqa xmm12,xmm3
414 xor eax,ebx
415 paddd xmm3,xmm11
416 add edx,ebp
417 pxor xmm4,xmm13
418 ror ebp,7
419 xor edi,ebx
420 mov esi,edx
421 add ecx,DWORD[4+rsp]
422 movdqa xmm13,xmm4
423 xor ebp,eax
424 rol edx,5
425 movdqa XMMWORD[48+rsp],xmm3
426 add ecx,edi
427 and esi,ebp
428 xor ebp,eax
429 pslld xmm4,2
430 add ecx,edx
431 ror edx,7
432 psrld xmm13,30
433 xor esi,eax
434 mov edi,ecx
435 add ebx,DWORD[8+rsp]
436 movups xmm0,XMMWORD[((-64))+r15]
437DB 102,15,56,220,209
438 por xmm4,xmm13
439 xor edx,ebp
440 rol ecx,5
441 pshufd xmm3,xmm11,238
442 add ebx,esi
443 and edi,edx
444 xor edx,ebp
445 add ebx,ecx
446 add eax,DWORD[12+rsp]
447 xor edi,ebp
448 mov esi,ebx
449 rol ebx,5
450 add eax,edi
451 xor esi,edx
452 ror ecx,7
453 add eax,ebx
454 pxor xmm5,xmm9
455 add ebp,DWORD[16+rsp]
456 movups xmm1,XMMWORD[((-48))+r15]
457DB 102,15,56,220,208
458 xor esi,ecx
459 punpcklqdq xmm3,xmm4
460 mov edi,eax
461 rol eax,5
462 pxor xmm5,xmm6
463 add ebp,esi
464 xor edi,ecx
465 movdqa xmm13,xmm12
466 ror ebx,7
467 paddd xmm12,xmm4
468 add ebp,eax
469 pxor xmm5,xmm3
470 add edx,DWORD[20+rsp]
471 xor edi,ebx
472 mov esi,ebp
473 rol ebp,5
474 movdqa xmm3,xmm5
475 add edx,edi
476 xor esi,ebx
477 movdqa XMMWORD[rsp],xmm12
478 ror eax,7
479 add edx,ebp
480 add ecx,DWORD[24+rsp]
481 pslld xmm5,2
482 xor esi,eax
483 mov edi,edx
484 psrld xmm3,30
485 rol edx,5
486 add ecx,esi
487 movups xmm0,XMMWORD[((-32))+r15]
488DB 102,15,56,220,209
489 xor edi,eax
490 ror ebp,7
491 por xmm5,xmm3
492 add ecx,edx
493 add ebx,DWORD[28+rsp]
494 pshufd xmm12,xmm4,238
495 xor edi,ebp
496 mov esi,ecx
497 rol ecx,5
498 add ebx,edi
499 xor esi,ebp
500 ror edx,7
501 add ebx,ecx
502 pxor xmm6,xmm10
503 add eax,DWORD[32+rsp]
504 xor esi,edx
505 punpcklqdq xmm12,xmm5
506 mov edi,ebx
507 rol ebx,5
508 pxor xmm6,xmm7
509 add eax,esi
510 xor edi,edx
511 movdqa xmm3,XMMWORD[32+r11]
512 ror ecx,7
513 paddd xmm13,xmm5
514 add eax,ebx
515 pxor xmm6,xmm12
516 add ebp,DWORD[36+rsp]
517 movups xmm1,XMMWORD[((-16))+r15]
518DB 102,15,56,220,208
519 xor edi,ecx
520 mov esi,eax
521 rol eax,5
522 movdqa xmm12,xmm6
523 add ebp,edi
524 xor esi,ecx
525 movdqa XMMWORD[16+rsp],xmm13
526 ror ebx,7
527 add ebp,eax
528 add edx,DWORD[40+rsp]
529 pslld xmm6,2
530 xor esi,ebx
531 mov edi,ebp
532 psrld xmm12,30
533 rol ebp,5
534 add edx,esi
535 xor edi,ebx
536 ror eax,7
537 por xmm6,xmm12
538 add edx,ebp
539 add ecx,DWORD[44+rsp]
540 pshufd xmm13,xmm5,238
541 xor edi,eax
542 mov esi,edx
543 rol edx,5
544 add ecx,edi
545 movups xmm0,XMMWORD[r15]
546DB 102,15,56,220,209
547 xor esi,eax
548 ror ebp,7
549 add ecx,edx
550 pxor xmm7,xmm11
551 add ebx,DWORD[48+rsp]
552 xor esi,ebp
553 punpcklqdq xmm13,xmm6
554 mov edi,ecx
555 rol ecx,5
556 pxor xmm7,xmm8
557 add ebx,esi
558 xor edi,ebp
559 movdqa xmm12,xmm3
560 ror edx,7
561 paddd xmm3,xmm6
562 add ebx,ecx
563 pxor xmm7,xmm13
564 add eax,DWORD[52+rsp]
565 xor edi,edx
566 mov esi,ebx
567 rol ebx,5
568 movdqa xmm13,xmm7
569 add eax,edi
570 xor esi,edx
571 movdqa XMMWORD[32+rsp],xmm3
572 ror ecx,7
573 add eax,ebx
574 add ebp,DWORD[56+rsp]
575 movups xmm1,XMMWORD[16+r15]
576DB 102,15,56,220,208
577 pslld xmm7,2
578 xor esi,ecx
579 mov edi,eax
580 psrld xmm13,30
581 rol eax,5
582 add ebp,esi
583 xor edi,ecx
584 ror ebx,7
585 por xmm7,xmm13
586 add ebp,eax
587 add edx,DWORD[60+rsp]
588 pshufd xmm3,xmm6,238
589 xor edi,ebx
590 mov esi,ebp
591 rol ebp,5
592 add edx,edi
593 xor esi,ebx
594 ror eax,7
595 add edx,ebp
596 pxor xmm8,xmm4
597 add ecx,DWORD[rsp]
598 xor esi,eax
599 punpcklqdq xmm3,xmm7
600 mov edi,edx
601 rol edx,5
602 pxor xmm8,xmm9
603 add ecx,esi
604 movups xmm0,XMMWORD[32+r15]
605DB 102,15,56,220,209
606 xor edi,eax
607 movdqa xmm13,xmm12
608 ror ebp,7
609 paddd xmm12,xmm7
610 add ecx,edx
611 pxor xmm8,xmm3
612 add ebx,DWORD[4+rsp]
613 xor edi,ebp
614 mov esi,ecx
615 rol ecx,5
616 movdqa xmm3,xmm8
617 add ebx,edi
618 xor esi,ebp
619 movdqa XMMWORD[48+rsp],xmm12
620 ror edx,7
621 add ebx,ecx
622 add eax,DWORD[8+rsp]
623 pslld xmm8,2
624 xor esi,edx
625 mov edi,ebx
626 psrld xmm3,30
627 rol ebx,5
628 add eax,esi
629 xor edi,edx
630 ror ecx,7
631 por xmm8,xmm3
632 add eax,ebx
633 add ebp,DWORD[12+rsp]
634 movups xmm1,XMMWORD[48+r15]
635DB 102,15,56,220,208
636 pshufd xmm12,xmm7,238
637 xor edi,ecx
638 mov esi,eax
639 rol eax,5
640 add ebp,edi
641 xor esi,ecx
642 ror ebx,7
643 add ebp,eax
644 pxor xmm9,xmm5
645 add edx,DWORD[16+rsp]
646 xor esi,ebx
647 punpcklqdq xmm12,xmm8
648 mov edi,ebp
649 rol ebp,5
650 pxor xmm9,xmm10
651 add edx,esi
652 xor edi,ebx
653 movdqa xmm3,xmm13
654 ror eax,7
655 paddd xmm13,xmm8
656 add edx,ebp
657 pxor xmm9,xmm12
658 add ecx,DWORD[20+rsp]
659 xor edi,eax
660 mov esi,edx
661 rol edx,5
662 movdqa xmm12,xmm9
663 add ecx,edi
664 cmp r8d,11
665 jb NEAR $L$aesenclast2
666 movups xmm0,XMMWORD[64+r15]
667DB 102,15,56,220,209
668 movups xmm1,XMMWORD[80+r15]
669DB 102,15,56,220,208
670 je NEAR $L$aesenclast2
671 movups xmm0,XMMWORD[96+r15]
672DB 102,15,56,220,209
673 movups xmm1,XMMWORD[112+r15]
674DB 102,15,56,220,208
675$L$aesenclast2:
676DB 102,15,56,221,209
677 movups xmm0,XMMWORD[((16-112))+r15]
678 xor esi,eax
679 movdqa XMMWORD[rsp],xmm13
680 ror ebp,7
681 add ecx,edx
682 add ebx,DWORD[24+rsp]
683 pslld xmm9,2
684 xor esi,ebp
685 mov edi,ecx
686 psrld xmm12,30
687 rol ecx,5
688 add ebx,esi
689 xor edi,ebp
690 ror edx,7
691 por xmm9,xmm12
692 add ebx,ecx
693 add eax,DWORD[28+rsp]
694 pshufd xmm13,xmm8,238
695 ror ecx,7
696 mov esi,ebx
697 xor edi,edx
698 rol ebx,5
699 add eax,edi
700 xor esi,ecx
701 xor ecx,edx
702 add eax,ebx
703 pxor xmm10,xmm6
704 add ebp,DWORD[32+rsp]
705 movups xmm14,XMMWORD[32+r12]
706 xorps xmm14,xmm15
707 movups XMMWORD[16+r12*1+r13],xmm2
708 xorps xmm2,xmm14
709 movups xmm1,XMMWORD[((-80))+r15]
710DB 102,15,56,220,208
711 and esi,ecx
712 xor ecx,edx
713 ror ebx,7
714 punpcklqdq xmm13,xmm9
715 mov edi,eax
716 xor esi,ecx
717 pxor xmm10,xmm11
718 rol eax,5
719 add ebp,esi
720 movdqa xmm12,xmm3
721 xor edi,ebx
722 paddd xmm3,xmm9
723 xor ebx,ecx
724 pxor xmm10,xmm13
725 add ebp,eax
726 add edx,DWORD[36+rsp]
727 and edi,ebx
728 xor ebx,ecx
729 ror eax,7
730 movdqa xmm13,xmm10
731 mov esi,ebp
732 xor edi,ebx
733 movdqa XMMWORD[16+rsp],xmm3
734 rol ebp,5
735 add edx,edi
736 movups xmm0,XMMWORD[((-64))+r15]
737DB 102,15,56,220,209
738 xor esi,eax
739 pslld xmm10,2
740 xor eax,ebx
741 add edx,ebp
742 psrld xmm13,30
743 add ecx,DWORD[40+rsp]
744 and esi,eax
745 xor eax,ebx
746 por xmm10,xmm13
747 ror ebp,7
748 mov edi,edx
749 xor esi,eax
750 rol edx,5
751 pshufd xmm3,xmm9,238
752 add ecx,esi
753 xor edi,ebp
754 xor ebp,eax
755 add ecx,edx
756 add ebx,DWORD[44+rsp]
757 and edi,ebp
758 xor ebp,eax
759 ror edx,7
760 movups xmm1,XMMWORD[((-48))+r15]
761DB 102,15,56,220,208
762 mov esi,ecx
763 xor edi,ebp
764 rol ecx,5
765 add ebx,edi
766 xor esi,edx
767 xor edx,ebp
768 add ebx,ecx
769 pxor xmm11,xmm7
770 add eax,DWORD[48+rsp]
771 and esi,edx
772 xor edx,ebp
773 ror ecx,7
774 punpcklqdq xmm3,xmm10
775 mov edi,ebx
776 xor esi,edx
777 pxor xmm11,xmm4
778 rol ebx,5
779 add eax,esi
780 movdqa xmm13,XMMWORD[48+r11]
781 xor edi,ecx
782 paddd xmm12,xmm10
783 xor ecx,edx
784 pxor xmm11,xmm3
785 add eax,ebx
786 add ebp,DWORD[52+rsp]
787 movups xmm0,XMMWORD[((-32))+r15]
788DB 102,15,56,220,209
789 and edi,ecx
790 xor ecx,edx
791 ror ebx,7
792 movdqa xmm3,xmm11
793 mov esi,eax
794 xor edi,ecx
795 movdqa XMMWORD[32+rsp],xmm12
796 rol eax,5
797 add ebp,edi
798 xor esi,ebx
799 pslld xmm11,2
800 xor ebx,ecx
801 add ebp,eax
802 psrld xmm3,30
803 add edx,DWORD[56+rsp]
804 and esi,ebx
805 xor ebx,ecx
806 por xmm11,xmm3
807 ror eax,7
808 mov edi,ebp
809 xor esi,ebx
810 rol ebp,5
811 pshufd xmm12,xmm10,238
812 add edx,esi
813 movups xmm1,XMMWORD[((-16))+r15]
814DB 102,15,56,220,208
815 xor edi,eax
816 xor eax,ebx
817 add edx,ebp
818 add ecx,DWORD[60+rsp]
819 and edi,eax
820 xor eax,ebx
821 ror ebp,7
822 mov esi,edx
823 xor edi,eax
824 rol edx,5
825 add ecx,edi
826 xor esi,ebp
827 xor ebp,eax
828 add ecx,edx
829 pxor xmm4,xmm8
830 add ebx,DWORD[rsp]
831 and esi,ebp
832 xor ebp,eax
833 ror edx,7
834 movups xmm0,XMMWORD[r15]
835DB 102,15,56,220,209
836 punpcklqdq xmm12,xmm11
837 mov edi,ecx
838 xor esi,ebp
839 pxor xmm4,xmm5
840 rol ecx,5
841 add ebx,esi
842 movdqa xmm3,xmm13
843 xor edi,edx
844 paddd xmm13,xmm11
845 xor edx,ebp
846 pxor xmm4,xmm12
847 add ebx,ecx
848 add eax,DWORD[4+rsp]
849 and edi,edx
850 xor edx,ebp
851 ror ecx,7
852 movdqa xmm12,xmm4
853 mov esi,ebx
854 xor edi,edx
855 movdqa XMMWORD[48+rsp],xmm13
856 rol ebx,5
857 add eax,edi
858 xor esi,ecx
859 pslld xmm4,2
860 xor ecx,edx
861 add eax,ebx
862 psrld xmm12,30
863 add ebp,DWORD[8+rsp]
864 movups xmm1,XMMWORD[16+r15]
865DB 102,15,56,220,208
866 and esi,ecx
867 xor ecx,edx
868 por xmm4,xmm12
869 ror ebx,7
870 mov edi,eax
871 xor esi,ecx
872 rol eax,5
873 pshufd xmm13,xmm11,238
874 add ebp,esi
875 xor edi,ebx
876 xor ebx,ecx
877 add ebp,eax
878 add edx,DWORD[12+rsp]
879 and edi,ebx
880 xor ebx,ecx
881 ror eax,7
882 mov esi,ebp
883 xor edi,ebx
884 rol ebp,5
885 add edx,edi
886 movups xmm0,XMMWORD[32+r15]
887DB 102,15,56,220,209
888 xor esi,eax
889 xor eax,ebx
890 add edx,ebp
891 pxor xmm5,xmm9
892 add ecx,DWORD[16+rsp]
893 and esi,eax
894 xor eax,ebx
895 ror ebp,7
896 punpcklqdq xmm13,xmm4
897 mov edi,edx
898 xor esi,eax
899 pxor xmm5,xmm6
900 rol edx,5
901 add ecx,esi
902 movdqa xmm12,xmm3
903 xor edi,ebp
904 paddd xmm3,xmm4
905 xor ebp,eax
906 pxor xmm5,xmm13
907 add ecx,edx
908 add ebx,DWORD[20+rsp]
909 and edi,ebp
910 xor ebp,eax
911 ror edx,7
912 movups xmm1,XMMWORD[48+r15]
913DB 102,15,56,220,208
914 movdqa xmm13,xmm5
915 mov esi,ecx
916 xor edi,ebp
917 movdqa XMMWORD[rsp],xmm3
918 rol ecx,5
919 add ebx,edi
920 xor esi,edx
921 pslld xmm5,2
922 xor edx,ebp
923 add ebx,ecx
924 psrld xmm13,30
925 add eax,DWORD[24+rsp]
926 and esi,edx
927 xor edx,ebp
928 por xmm5,xmm13
929 ror ecx,7
930 mov edi,ebx
931 xor esi,edx
932 rol ebx,5
933 pshufd xmm3,xmm4,238
934 add eax,esi
935 xor edi,ecx
936 xor ecx,edx
937 add eax,ebx
938 add ebp,DWORD[28+rsp]
939 cmp r8d,11
940 jb NEAR $L$aesenclast3
941 movups xmm0,XMMWORD[64+r15]
942DB 102,15,56,220,209
943 movups xmm1,XMMWORD[80+r15]
944DB 102,15,56,220,208
945 je NEAR $L$aesenclast3
946 movups xmm0,XMMWORD[96+r15]
947DB 102,15,56,220,209
948 movups xmm1,XMMWORD[112+r15]
949DB 102,15,56,220,208
950$L$aesenclast3:
951DB 102,15,56,221,209
952 movups xmm0,XMMWORD[((16-112))+r15]
953 and edi,ecx
954 xor ecx,edx
955 ror ebx,7
956 mov esi,eax
957 xor edi,ecx
958 rol eax,5
959 add ebp,edi
960 xor esi,ebx
961 xor ebx,ecx
962 add ebp,eax
963 pxor xmm6,xmm10
964 add edx,DWORD[32+rsp]
965 and esi,ebx
966 xor ebx,ecx
967 ror eax,7
968 punpcklqdq xmm3,xmm5
969 mov edi,ebp
970 xor esi,ebx
971 pxor xmm6,xmm7
972 rol ebp,5
973 add edx,esi
974 movups xmm14,XMMWORD[48+r12]
975 xorps xmm14,xmm15
976 movups XMMWORD[32+r12*1+r13],xmm2
977 xorps xmm2,xmm14
978 movups xmm1,XMMWORD[((-80))+r15]
979DB 102,15,56,220,208
980 movdqa xmm13,xmm12
981 xor edi,eax
982 paddd xmm12,xmm5
983 xor eax,ebx
984 pxor xmm6,xmm3
985 add edx,ebp
986 add ecx,DWORD[36+rsp]
987 and edi,eax
988 xor eax,ebx
989 ror ebp,7
990 movdqa xmm3,xmm6
991 mov esi,edx
992 xor edi,eax
993 movdqa XMMWORD[16+rsp],xmm12
994 rol edx,5
995 add ecx,edi
996 xor esi,ebp
997 pslld xmm6,2
998 xor ebp,eax
999 add ecx,edx
1000 psrld xmm3,30
1001 add ebx,DWORD[40+rsp]
1002 and esi,ebp
1003 xor ebp,eax
1004 por xmm6,xmm3
1005 ror edx,7
1006 movups xmm0,XMMWORD[((-64))+r15]
1007DB 102,15,56,220,209
1008 mov edi,ecx
1009 xor esi,ebp
1010 rol ecx,5
1011 pshufd xmm12,xmm5,238
1012 add ebx,esi
1013 xor edi,edx
1014 xor edx,ebp
1015 add ebx,ecx
1016 add eax,DWORD[44+rsp]
1017 and edi,edx
1018 xor edx,ebp
1019 ror ecx,7
1020 mov esi,ebx
1021 xor edi,edx
1022 rol ebx,5
1023 add eax,edi
1024 xor esi,edx
1025 add eax,ebx
1026 pxor xmm7,xmm11
1027 add ebp,DWORD[48+rsp]
1028 movups xmm1,XMMWORD[((-48))+r15]
1029DB 102,15,56,220,208
1030 xor esi,ecx
1031 punpcklqdq xmm12,xmm6
1032 mov edi,eax
1033 rol eax,5
1034 pxor xmm7,xmm8
1035 add ebp,esi
1036 xor edi,ecx
1037 movdqa xmm3,xmm13
1038 ror ebx,7
1039 paddd xmm13,xmm6
1040 add ebp,eax
1041 pxor xmm7,xmm12
1042 add edx,DWORD[52+rsp]
1043 xor edi,ebx
1044 mov esi,ebp
1045 rol ebp,5
1046 movdqa xmm12,xmm7
1047 add edx,edi
1048 xor esi,ebx
1049 movdqa XMMWORD[32+rsp],xmm13
1050 ror eax,7
1051 add edx,ebp
1052 add ecx,DWORD[56+rsp]
1053 pslld xmm7,2
1054 xor esi,eax
1055 mov edi,edx
1056 psrld xmm12,30
1057 rol edx,5
1058 add ecx,esi
1059 movups xmm0,XMMWORD[((-32))+r15]
1060DB 102,15,56,220,209
1061 xor edi,eax
1062 ror ebp,7
1063 por xmm7,xmm12
1064 add ecx,edx
1065 add ebx,DWORD[60+rsp]
1066 xor edi,ebp
1067 mov esi,ecx
1068 rol ecx,5
1069 add ebx,edi
1070 xor esi,ebp
1071 ror edx,7
1072 add ebx,ecx
1073 add eax,DWORD[rsp]
1074 xor esi,edx
1075 mov edi,ebx
1076 rol ebx,5
1077 paddd xmm3,xmm7
1078 add eax,esi
1079 xor edi,edx
1080 movdqa XMMWORD[48+rsp],xmm3
1081 ror ecx,7
1082 add eax,ebx
1083 add ebp,DWORD[4+rsp]
1084 movups xmm1,XMMWORD[((-16))+r15]
1085DB 102,15,56,220,208
1086 xor edi,ecx
1087 mov esi,eax
1088 rol eax,5
1089 add ebp,edi
1090 xor esi,ecx
1091 ror ebx,7
1092 add ebp,eax
1093 add edx,DWORD[8+rsp]
1094 xor esi,ebx
1095 mov edi,ebp
1096 rol ebp,5
1097 add edx,esi
1098 xor edi,ebx
1099 ror eax,7
1100 add edx,ebp
1101 add ecx,DWORD[12+rsp]
1102 xor edi,eax
1103 mov esi,edx
1104 rol edx,5
1105 add ecx,edi
1106 movups xmm0,XMMWORD[r15]
1107DB 102,15,56,220,209
1108 xor esi,eax
1109 ror ebp,7
1110 add ecx,edx
1111 cmp r10,r14
1112 je NEAR $L$done_ssse3
1113 movdqa xmm3,XMMWORD[64+r11]
1114 movdqa xmm13,XMMWORD[r11]
1115 movdqu xmm4,XMMWORD[r10]
1116 movdqu xmm5,XMMWORD[16+r10]
1117 movdqu xmm6,XMMWORD[32+r10]
1118 movdqu xmm7,XMMWORD[48+r10]
1119DB 102,15,56,0,227
1120 add r10,64
1121 add ebx,DWORD[16+rsp]
1122 xor esi,ebp
1123 mov edi,ecx
1124DB 102,15,56,0,235
1125 rol ecx,5
1126 add ebx,esi
1127 xor edi,ebp
1128 ror edx,7
1129 paddd xmm4,xmm13
1130 add ebx,ecx
1131 add eax,DWORD[20+rsp]
1132 xor edi,edx
1133 mov esi,ebx
1134 movdqa XMMWORD[rsp],xmm4
1135 rol ebx,5
1136 add eax,edi
1137 xor esi,edx
1138 ror ecx,7
1139 psubd xmm4,xmm13
1140 add eax,ebx
1141 add ebp,DWORD[24+rsp]
1142 movups xmm1,XMMWORD[16+r15]
1143DB 102,15,56,220,208
1144 xor esi,ecx
1145 mov edi,eax
1146 rol eax,5
1147 add ebp,esi
1148 xor edi,ecx
1149 ror ebx,7
1150 add ebp,eax
1151 add edx,DWORD[28+rsp]
1152 xor edi,ebx
1153 mov esi,ebp
1154 rol ebp,5
1155 add edx,edi
1156 xor esi,ebx
1157 ror eax,7
1158 add edx,ebp
1159 add ecx,DWORD[32+rsp]
1160 xor esi,eax
1161 mov edi,edx
1162DB 102,15,56,0,243
1163 rol edx,5
1164 add ecx,esi
1165 movups xmm0,XMMWORD[32+r15]
1166DB 102,15,56,220,209
1167 xor edi,eax
1168 ror ebp,7
1169 paddd xmm5,xmm13
1170 add ecx,edx
1171 add ebx,DWORD[36+rsp]
1172 xor edi,ebp
1173 mov esi,ecx
1174 movdqa XMMWORD[16+rsp],xmm5
1175 rol ecx,5
1176 add ebx,edi
1177 xor esi,ebp
1178 ror edx,7
1179 psubd xmm5,xmm13
1180 add ebx,ecx
1181 add eax,DWORD[40+rsp]
1182 xor esi,edx
1183 mov edi,ebx
1184 rol ebx,5
1185 add eax,esi
1186 xor edi,edx
1187 ror ecx,7
1188 add eax,ebx
1189 add ebp,DWORD[44+rsp]
1190 movups xmm1,XMMWORD[48+r15]
1191DB 102,15,56,220,208
1192 xor edi,ecx
1193 mov esi,eax
1194 rol eax,5
1195 add ebp,edi
1196 xor esi,ecx
1197 ror ebx,7
1198 add ebp,eax
1199 add edx,DWORD[48+rsp]
1200 xor esi,ebx
1201 mov edi,ebp
1202DB 102,15,56,0,251
1203 rol ebp,5
1204 add edx,esi
1205 xor edi,ebx
1206 ror eax,7
1207 paddd xmm6,xmm13
1208 add edx,ebp
1209 add ecx,DWORD[52+rsp]
1210 xor edi,eax
1211 mov esi,edx
1212 movdqa XMMWORD[32+rsp],xmm6
1213 rol edx,5
1214 add ecx,edi
1215 cmp r8d,11
1216 jb NEAR $L$aesenclast4
1217 movups xmm0,XMMWORD[64+r15]
1218DB 102,15,56,220,209
1219 movups xmm1,XMMWORD[80+r15]
1220DB 102,15,56,220,208
1221 je NEAR $L$aesenclast4
1222 movups xmm0,XMMWORD[96+r15]
1223DB 102,15,56,220,209
1224 movups xmm1,XMMWORD[112+r15]
1225DB 102,15,56,220,208
1226$L$aesenclast4:
1227DB 102,15,56,221,209
1228 movups xmm0,XMMWORD[((16-112))+r15]
1229 xor esi,eax
1230 ror ebp,7
1231 psubd xmm6,xmm13
1232 add ecx,edx
1233 add ebx,DWORD[56+rsp]
1234 xor esi,ebp
1235 mov edi,ecx
1236 rol ecx,5
1237 add ebx,esi
1238 xor edi,ebp
1239 ror edx,7
1240 add ebx,ecx
1241 add eax,DWORD[60+rsp]
1242 xor edi,edx
1243 mov esi,ebx
1244 rol ebx,5
1245 add eax,edi
1246 ror ecx,7
1247 add eax,ebx
1248 movups XMMWORD[48+r12*1+r13],xmm2
1249 lea r12,[64+r12]
1250
1251 add eax,DWORD[r9]
1252 add esi,DWORD[4+r9]
1253 add ecx,DWORD[8+r9]
1254 add edx,DWORD[12+r9]
1255 mov DWORD[r9],eax
1256 add ebp,DWORD[16+r9]
1257 mov DWORD[4+r9],esi
1258 mov ebx,esi
1259 mov DWORD[8+r9],ecx
1260 mov edi,ecx
1261 mov DWORD[12+r9],edx
1262 xor edi,edx
1263 mov DWORD[16+r9],ebp
1264 and esi,edi
1265 jmp NEAR $L$oop_ssse3
1266
1267$L$done_ssse3:
1268 add ebx,DWORD[16+rsp]
1269 xor esi,ebp
1270 mov edi,ecx
1271 rol ecx,5
1272 add ebx,esi
1273 xor edi,ebp
1274 ror edx,7
1275 add ebx,ecx
1276 add eax,DWORD[20+rsp]
1277 xor edi,edx
1278 mov esi,ebx
1279 rol ebx,5
1280 add eax,edi
1281 xor esi,edx
1282 ror ecx,7
1283 add eax,ebx
1284 add ebp,DWORD[24+rsp]
1285 movups xmm1,XMMWORD[16+r15]
1286DB 102,15,56,220,208
1287 xor esi,ecx
1288 mov edi,eax
1289 rol eax,5
1290 add ebp,esi
1291 xor edi,ecx
1292 ror ebx,7
1293 add ebp,eax
1294 add edx,DWORD[28+rsp]
1295 xor edi,ebx
1296 mov esi,ebp
1297 rol ebp,5
1298 add edx,edi
1299 xor esi,ebx
1300 ror eax,7
1301 add edx,ebp
1302 add ecx,DWORD[32+rsp]
1303 xor esi,eax
1304 mov edi,edx
1305 rol edx,5
1306 add ecx,esi
1307 movups xmm0,XMMWORD[32+r15]
1308DB 102,15,56,220,209
1309 xor edi,eax
1310 ror ebp,7
1311 add ecx,edx
1312 add ebx,DWORD[36+rsp]
1313 xor edi,ebp
1314 mov esi,ecx
1315 rol ecx,5
1316 add ebx,edi
1317 xor esi,ebp
1318 ror edx,7
1319 add ebx,ecx
1320 add eax,DWORD[40+rsp]
1321 xor esi,edx
1322 mov edi,ebx
1323 rol ebx,5
1324 add eax,esi
1325 xor edi,edx
1326 ror ecx,7
1327 add eax,ebx
1328 add ebp,DWORD[44+rsp]
1329 movups xmm1,XMMWORD[48+r15]
1330DB 102,15,56,220,208
1331 xor edi,ecx
1332 mov esi,eax
1333 rol eax,5
1334 add ebp,edi
1335 xor esi,ecx
1336 ror ebx,7
1337 add ebp,eax
1338 add edx,DWORD[48+rsp]
1339 xor esi,ebx
1340 mov edi,ebp
1341 rol ebp,5
1342 add edx,esi
1343 xor edi,ebx
1344 ror eax,7
1345 add edx,ebp
1346 add ecx,DWORD[52+rsp]
1347 xor edi,eax
1348 mov esi,edx
1349 rol edx,5
1350 add ecx,edi
1351 cmp r8d,11
1352 jb NEAR $L$aesenclast5
1353 movups xmm0,XMMWORD[64+r15]
1354DB 102,15,56,220,209
1355 movups xmm1,XMMWORD[80+r15]
1356DB 102,15,56,220,208
1357 je NEAR $L$aesenclast5
1358 movups xmm0,XMMWORD[96+r15]
1359DB 102,15,56,220,209
1360 movups xmm1,XMMWORD[112+r15]
1361DB 102,15,56,220,208
1362$L$aesenclast5:
1363DB 102,15,56,221,209
1364 movups xmm0,XMMWORD[((16-112))+r15]
1365 xor esi,eax
1366 ror ebp,7
1367 add ecx,edx
1368 add ebx,DWORD[56+rsp]
1369 xor esi,ebp
1370 mov edi,ecx
1371 rol ecx,5
1372 add ebx,esi
1373 xor edi,ebp
1374 ror edx,7
1375 add ebx,ecx
1376 add eax,DWORD[60+rsp]
1377 xor edi,edx
1378 mov esi,ebx
1379 rol ebx,5
1380 add eax,edi
1381 ror ecx,7
1382 add eax,ebx
1383 movups XMMWORD[48+r12*1+r13],xmm2
1384 mov r8,QWORD[88+rsp]
1385
1386 add eax,DWORD[r9]
1387 add esi,DWORD[4+r9]
1388 add ecx,DWORD[8+r9]
1389 mov DWORD[r9],eax
1390 add edx,DWORD[12+r9]
1391 mov DWORD[4+r9],esi
1392 add ebp,DWORD[16+r9]
1393 mov DWORD[8+r9],ecx
1394 mov DWORD[12+r9],edx
1395 mov DWORD[16+r9],ebp
1396 movups XMMWORD[r8],xmm2
1397 movaps xmm6,XMMWORD[((96+0))+rsp]
1398 movaps xmm7,XMMWORD[((96+16))+rsp]
1399 movaps xmm8,XMMWORD[((96+32))+rsp]
1400 movaps xmm9,XMMWORD[((96+48))+rsp]
1401 movaps xmm10,XMMWORD[((96+64))+rsp]
1402 movaps xmm11,XMMWORD[((96+80))+rsp]
1403 movaps xmm12,XMMWORD[((96+96))+rsp]
1404 movaps xmm13,XMMWORD[((96+112))+rsp]
1405 movaps xmm14,XMMWORD[((96+128))+rsp]
1406 movaps xmm15,XMMWORD[((96+144))+rsp]
1407 lea rsi,[264+rsp]
1408
1409 mov r15,QWORD[rsi]
1410
1411 mov r14,QWORD[8+rsi]
1412
1413 mov r13,QWORD[16+rsi]
1414
1415 mov r12,QWORD[24+rsi]
1416
1417 mov rbp,QWORD[32+rsi]
1418
1419 mov rbx,QWORD[40+rsi]
1420
1421 lea rsp,[48+rsi]
1422
1423$L$epilogue_ssse3:
1424 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1425 mov rsi,QWORD[16+rsp]
1426 DB 0F3h,0C3h ;repret
1427
1428$L$SEH_end_aesni_cbc_sha1_enc_ssse3:
1429ALIGN 64
1430K_XX_XX:
1431 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999
1432 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
1433 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
1434 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
1435 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1436DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
1437
1438DB 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115
1439DB 116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52
1440DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
1441DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
1442DB 114,103,62,0
1443ALIGN 64
1444
1445ALIGN 32
1446aesni_cbc_sha1_enc_shaext:
1447 mov QWORD[8+rsp],rdi ;WIN64 prologue
1448 mov QWORD[16+rsp],rsi
1449 mov rax,rsp
1450$L$SEH_begin_aesni_cbc_sha1_enc_shaext:
1451 mov rdi,rcx
1452 mov rsi,rdx
1453 mov rdx,r8
1454 mov rcx,r9
1455 mov r8,QWORD[40+rsp]
1456 mov r9,QWORD[48+rsp]
1457
1458
1459
1460 mov r10,QWORD[56+rsp]
1461 lea rsp,[((-168))+rsp]
1462 movaps XMMWORD[(-8-160)+rax],xmm6
1463 movaps XMMWORD[(-8-144)+rax],xmm7
1464 movaps XMMWORD[(-8-128)+rax],xmm8
1465 movaps XMMWORD[(-8-112)+rax],xmm9
1466 movaps XMMWORD[(-8-96)+rax],xmm10
1467 movaps XMMWORD[(-8-80)+rax],xmm11
1468 movaps XMMWORD[(-8-64)+rax],xmm12
1469 movaps XMMWORD[(-8-48)+rax],xmm13
1470 movaps XMMWORD[(-8-32)+rax],xmm14
1471 movaps XMMWORD[(-8-16)+rax],xmm15
1472$L$prologue_shaext:
1473 movdqu xmm8,XMMWORD[r9]
1474 movd xmm9,DWORD[16+r9]
1475 movdqa xmm7,XMMWORD[((K_XX_XX+80))]
1476
1477 mov r11d,DWORD[240+rcx]
1478 sub rsi,rdi
1479 movups xmm15,XMMWORD[rcx]
1480 movups xmm2,XMMWORD[r8]
1481 movups xmm0,XMMWORD[16+rcx]
1482 lea rcx,[112+rcx]
1483
1484 pshufd xmm8,xmm8,27
1485 pshufd xmm9,xmm9,27
1486 jmp NEAR $L$oop_shaext
1487
1488ALIGN 16
1489$L$oop_shaext:
1490 movups xmm14,XMMWORD[rdi]
1491 xorps xmm14,xmm15
1492 xorps xmm2,xmm14
1493 movups xmm1,XMMWORD[((-80))+rcx]
1494DB 102,15,56,220,208
1495 movdqu xmm3,XMMWORD[r10]
1496 movdqa xmm12,xmm9
1497DB 102,15,56,0,223
1498 movdqu xmm4,XMMWORD[16+r10]
1499 movdqa xmm11,xmm8
1500 movups xmm0,XMMWORD[((-64))+rcx]
1501DB 102,15,56,220,209
1502DB 102,15,56,0,231
1503
1504 paddd xmm9,xmm3
1505 movdqu xmm5,XMMWORD[32+r10]
1506 lea r10,[64+r10]
1507 pxor xmm3,xmm12
1508 movups xmm1,XMMWORD[((-48))+rcx]
1509DB 102,15,56,220,208
1510 pxor xmm3,xmm12
1511 movdqa xmm10,xmm8
1512DB 102,15,56,0,239
1513DB 69,15,58,204,193,0
1514DB 68,15,56,200,212
1515 movups xmm0,XMMWORD[((-32))+rcx]
1516DB 102,15,56,220,209
1517DB 15,56,201,220
1518 movdqu xmm6,XMMWORD[((-16))+r10]
1519 movdqa xmm9,xmm8
1520DB 102,15,56,0,247
1521 movups xmm1,XMMWORD[((-16))+rcx]
1522DB 102,15,56,220,208
1523DB 69,15,58,204,194,0
1524DB 68,15,56,200,205
1525 pxor xmm3,xmm5
1526DB 15,56,201,229
1527 movups xmm0,XMMWORD[rcx]
1528DB 102,15,56,220,209
1529 movdqa xmm10,xmm8
1530DB 69,15,58,204,193,0
1531DB 68,15,56,200,214
1532 movups xmm1,XMMWORD[16+rcx]
1533DB 102,15,56,220,208
1534DB 15,56,202,222
1535 pxor xmm4,xmm6
1536DB 15,56,201,238
1537 movups xmm0,XMMWORD[32+rcx]
1538DB 102,15,56,220,209
1539 movdqa xmm9,xmm8
1540DB 69,15,58,204,194,0
1541DB 68,15,56,200,203
1542 movups xmm1,XMMWORD[48+rcx]
1543DB 102,15,56,220,208
1544DB 15,56,202,227
1545 pxor xmm5,xmm3
1546DB 15,56,201,243
1547 cmp r11d,11
1548 jb NEAR $L$aesenclast6
1549 movups xmm0,XMMWORD[64+rcx]
1550DB 102,15,56,220,209
1551 movups xmm1,XMMWORD[80+rcx]
1552DB 102,15,56,220,208
1553 je NEAR $L$aesenclast6
1554 movups xmm0,XMMWORD[96+rcx]
1555DB 102,15,56,220,209
1556 movups xmm1,XMMWORD[112+rcx]
1557DB 102,15,56,220,208
1558$L$aesenclast6:
1559DB 102,15,56,221,209
1560 movups xmm0,XMMWORD[((16-112))+rcx]
1561 movdqa xmm10,xmm8
1562DB 69,15,58,204,193,0
1563DB 68,15,56,200,212
1564 movups xmm14,XMMWORD[16+rdi]
1565 xorps xmm14,xmm15
1566 movups XMMWORD[rdi*1+rsi],xmm2
1567 xorps xmm2,xmm14
1568 movups xmm1,XMMWORD[((-80))+rcx]
1569DB 102,15,56,220,208
1570DB 15,56,202,236
1571 pxor xmm6,xmm4
1572DB 15,56,201,220
1573 movups xmm0,XMMWORD[((-64))+rcx]
1574DB 102,15,56,220,209
1575 movdqa xmm9,xmm8
1576DB 69,15,58,204,194,1
1577DB 68,15,56,200,205
1578 movups xmm1,XMMWORD[((-48))+rcx]
1579DB 102,15,56,220,208
1580DB 15,56,202,245
1581 pxor xmm3,xmm5
1582DB 15,56,201,229
1583 movups xmm0,XMMWORD[((-32))+rcx]
1584DB 102,15,56,220,209
1585 movdqa xmm10,xmm8
1586DB 69,15,58,204,193,1
1587DB 68,15,56,200,214
1588 movups xmm1,XMMWORD[((-16))+rcx]
1589DB 102,15,56,220,208
1590DB 15,56,202,222
1591 pxor xmm4,xmm6
1592DB 15,56,201,238
1593 movups xmm0,XMMWORD[rcx]
1594DB 102,15,56,220,209
1595 movdqa xmm9,xmm8
1596DB 69,15,58,204,194,1
1597DB 68,15,56,200,203
1598 movups xmm1,XMMWORD[16+rcx]
1599DB 102,15,56,220,208
1600DB 15,56,202,227
1601 pxor xmm5,xmm3
1602DB 15,56,201,243
1603 movups xmm0,XMMWORD[32+rcx]
1604DB 102,15,56,220,209
1605 movdqa xmm10,xmm8
1606DB 69,15,58,204,193,1
1607DB 68,15,56,200,212
1608 movups xmm1,XMMWORD[48+rcx]
1609DB 102,15,56,220,208
1610DB 15,56,202,236
1611 pxor xmm6,xmm4
1612DB 15,56,201,220
1613 cmp r11d,11
1614 jb NEAR $L$aesenclast7
1615 movups xmm0,XMMWORD[64+rcx]
1616DB 102,15,56,220,209
1617 movups xmm1,XMMWORD[80+rcx]
1618DB 102,15,56,220,208
1619 je NEAR $L$aesenclast7
1620 movups xmm0,XMMWORD[96+rcx]
1621DB 102,15,56,220,209
1622 movups xmm1,XMMWORD[112+rcx]
1623DB 102,15,56,220,208
1624$L$aesenclast7:
1625DB 102,15,56,221,209
1626 movups xmm0,XMMWORD[((16-112))+rcx]
1627 movdqa xmm9,xmm8
1628DB 69,15,58,204,194,1
1629DB 68,15,56,200,205
1630 movups xmm14,XMMWORD[32+rdi]
1631 xorps xmm14,xmm15
1632 movups XMMWORD[16+rdi*1+rsi],xmm2
1633 xorps xmm2,xmm14
1634 movups xmm1,XMMWORD[((-80))+rcx]
1635DB 102,15,56,220,208
1636DB 15,56,202,245
1637 pxor xmm3,xmm5
1638DB 15,56,201,229
1639 movups xmm0,XMMWORD[((-64))+rcx]
1640DB 102,15,56,220,209
1641 movdqa xmm10,xmm8
1642DB 69,15,58,204,193,2
1643DB 68,15,56,200,214
1644 movups xmm1,XMMWORD[((-48))+rcx]
1645DB 102,15,56,220,208
1646DB 15,56,202,222
1647 pxor xmm4,xmm6
1648DB 15,56,201,238
1649 movups xmm0,XMMWORD[((-32))+rcx]
1650DB 102,15,56,220,209
1651 movdqa xmm9,xmm8
1652DB 69,15,58,204,194,2
1653DB 68,15,56,200,203
1654 movups xmm1,XMMWORD[((-16))+rcx]
1655DB 102,15,56,220,208
1656DB 15,56,202,227
1657 pxor xmm5,xmm3
1658DB 15,56,201,243
1659 movups xmm0,XMMWORD[rcx]
1660DB 102,15,56,220,209
1661 movdqa xmm10,xmm8
1662DB 69,15,58,204,193,2
1663DB 68,15,56,200,212
1664 movups xmm1,XMMWORD[16+rcx]
1665DB 102,15,56,220,208
1666DB 15,56,202,236
1667 pxor xmm6,xmm4
1668DB 15,56,201,220
1669 movups xmm0,XMMWORD[32+rcx]
1670DB 102,15,56,220,209
1671 movdqa xmm9,xmm8
1672DB 69,15,58,204,194,2
1673DB 68,15,56,200,205
1674 movups xmm1,XMMWORD[48+rcx]
1675DB 102,15,56,220,208
1676DB 15,56,202,245
1677 pxor xmm3,xmm5
1678DB 15,56,201,229
1679 cmp r11d,11
1680 jb NEAR $L$aesenclast8
1681 movups xmm0,XMMWORD[64+rcx]
1682DB 102,15,56,220,209
1683 movups xmm1,XMMWORD[80+rcx]
1684DB 102,15,56,220,208
1685 je NEAR $L$aesenclast8
1686 movups xmm0,XMMWORD[96+rcx]
1687DB 102,15,56,220,209
1688 movups xmm1,XMMWORD[112+rcx]
1689DB 102,15,56,220,208
1690$L$aesenclast8:
1691DB 102,15,56,221,209
1692 movups xmm0,XMMWORD[((16-112))+rcx]
1693 movdqa xmm10,xmm8
1694DB 69,15,58,204,193,2
1695DB 68,15,56,200,214
1696 movups xmm14,XMMWORD[48+rdi]
1697 xorps xmm14,xmm15
1698 movups XMMWORD[32+rdi*1+rsi],xmm2
1699 xorps xmm2,xmm14
1700 movups xmm1,XMMWORD[((-80))+rcx]
1701DB 102,15,56,220,208
1702DB 15,56,202,222
1703 pxor xmm4,xmm6
1704DB 15,56,201,238
1705 movups xmm0,XMMWORD[((-64))+rcx]
1706DB 102,15,56,220,209
1707 movdqa xmm9,xmm8
1708DB 69,15,58,204,194,3
1709DB 68,15,56,200,203
1710 movups xmm1,XMMWORD[((-48))+rcx]
1711DB 102,15,56,220,208
1712DB 15,56,202,227
1713 pxor xmm5,xmm3
1714DB 15,56,201,243
1715 movups xmm0,XMMWORD[((-32))+rcx]
1716DB 102,15,56,220,209
1717 movdqa xmm10,xmm8
1718DB 69,15,58,204,193,3
1719DB 68,15,56,200,212
1720DB 15,56,202,236
1721 pxor xmm6,xmm4
1722 movups xmm1,XMMWORD[((-16))+rcx]
1723DB 102,15,56,220,208
1724 movdqa xmm9,xmm8
1725DB 69,15,58,204,194,3
1726DB 68,15,56,200,205
1727DB 15,56,202,245
1728 movups xmm0,XMMWORD[rcx]
1729DB 102,15,56,220,209
1730 movdqa xmm5,xmm12
1731 movdqa xmm10,xmm8
1732DB 69,15,58,204,193,3
1733DB 68,15,56,200,214
1734 movups xmm1,XMMWORD[16+rcx]
1735DB 102,15,56,220,208
1736 movdqa xmm9,xmm8
1737DB 69,15,58,204,194,3
1738DB 68,15,56,200,205
1739 movups xmm0,XMMWORD[32+rcx]
1740DB 102,15,56,220,209
1741 movups xmm1,XMMWORD[48+rcx]
1742DB 102,15,56,220,208
1743 cmp r11d,11
1744 jb NEAR $L$aesenclast9
1745 movups xmm0,XMMWORD[64+rcx]
1746DB 102,15,56,220,209
1747 movups xmm1,XMMWORD[80+rcx]
1748DB 102,15,56,220,208
1749 je NEAR $L$aesenclast9
1750 movups xmm0,XMMWORD[96+rcx]
1751DB 102,15,56,220,209
1752 movups xmm1,XMMWORD[112+rcx]
1753DB 102,15,56,220,208
1754$L$aesenclast9:
1755DB 102,15,56,221,209
1756 movups xmm0,XMMWORD[((16-112))+rcx]
1757 dec rdx
1758
1759 paddd xmm8,xmm11
1760 movups XMMWORD[48+rdi*1+rsi],xmm2
1761 lea rdi,[64+rdi]
1762 jnz NEAR $L$oop_shaext
1763
1764 pshufd xmm8,xmm8,27
1765 pshufd xmm9,xmm9,27
1766 movups XMMWORD[r8],xmm2
1767 movdqu XMMWORD[r9],xmm8
1768 movd DWORD[16+r9],xmm9
1769 movaps xmm6,XMMWORD[((-8-160))+rax]
1770 movaps xmm7,XMMWORD[((-8-144))+rax]
1771 movaps xmm8,XMMWORD[((-8-128))+rax]
1772 movaps xmm9,XMMWORD[((-8-112))+rax]
1773 movaps xmm10,XMMWORD[((-8-96))+rax]
1774 movaps xmm11,XMMWORD[((-8-80))+rax]
1775 movaps xmm12,XMMWORD[((-8-64))+rax]
1776 movaps xmm13,XMMWORD[((-8-48))+rax]
1777 movaps xmm14,XMMWORD[((-8-32))+rax]
1778 movaps xmm15,XMMWORD[((-8-16))+rax]
1779 mov rsp,rax
1780$L$epilogue_shaext:
1781 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1782 mov rsi,QWORD[16+rsp]
1783 DB 0F3h,0C3h ;repret
1784
1785$L$SEH_end_aesni_cbc_sha1_enc_shaext:
1786EXTERN __imp_RtlVirtualUnwind
1787
1788ALIGN 16
1789ssse3_handler:
1790 push rsi
1791 push rdi
1792 push rbx
1793 push rbp
1794 push r12
1795 push r13
1796 push r14
1797 push r15
1798 pushfq
1799 sub rsp,64
1800
1801 mov rax,QWORD[120+r8]
1802 mov rbx,QWORD[248+r8]
1803
1804 mov rsi,QWORD[8+r9]
1805 mov r11,QWORD[56+r9]
1806
1807 mov r10d,DWORD[r11]
1808 lea r10,[r10*1+rsi]
1809 cmp rbx,r10
1810 jb NEAR $L$common_seh_tail
1811
1812 mov rax,QWORD[152+r8]
1813
1814 mov r10d,DWORD[4+r11]
1815 lea r10,[r10*1+rsi]
1816 cmp rbx,r10
1817 jae NEAR $L$common_seh_tail
1818 lea r10,[aesni_cbc_sha1_enc_shaext]
1819 cmp rbx,r10
1820 jb NEAR $L$seh_no_shaext
1821
1822 lea rsi,[rax]
1823 lea rdi,[512+r8]
1824 mov ecx,20
1825 DD 0xa548f3fc
1826 lea rax,[168+rax]
1827 jmp NEAR $L$common_seh_tail
1828$L$seh_no_shaext:
1829 lea rsi,[96+rax]
1830 lea rdi,[512+r8]
1831 mov ecx,20
1832 DD 0xa548f3fc
1833 lea rax,[264+rax]
1834
1835 mov r15,QWORD[rax]
1836 mov r14,QWORD[8+rax]
1837 mov r13,QWORD[16+rax]
1838 mov r12,QWORD[24+rax]
1839 mov rbp,QWORD[32+rax]
1840 mov rbx,QWORD[40+rax]
1841 lea rax,[48+rax]
1842 mov QWORD[144+r8],rbx
1843 mov QWORD[160+r8],rbp
1844 mov QWORD[216+r8],r12
1845 mov QWORD[224+r8],r13
1846 mov QWORD[232+r8],r14
1847 mov QWORD[240+r8],r15
1848
1849$L$common_seh_tail:
1850 mov rdi,QWORD[8+rax]
1851 mov rsi,QWORD[16+rax]
1852 mov QWORD[152+r8],rax
1853 mov QWORD[168+r8],rsi
1854 mov QWORD[176+r8],rdi
1855
1856 mov rdi,QWORD[40+r9]
1857 mov rsi,r8
1858 mov ecx,154
1859 DD 0xa548f3fc
1860
1861 mov rsi,r9
1862 xor rcx,rcx
1863 mov rdx,QWORD[8+rsi]
1864 mov r8,QWORD[rsi]
1865 mov r9,QWORD[16+rsi]
1866 mov r10,QWORD[40+rsi]
1867 lea r11,[56+rsi]
1868 lea r12,[24+rsi]
1869 mov QWORD[32+rsp],r10
1870 mov QWORD[40+rsp],r11
1871 mov QWORD[48+rsp],r12
1872 mov QWORD[56+rsp],rcx
1873 call QWORD[__imp_RtlVirtualUnwind]
1874
1875 mov eax,1
1876 add rsp,64
1877 popfq
1878 pop r15
1879 pop r14
1880 pop r13
1881 pop r12
1882 pop rbp
1883 pop rbx
1884 pop rdi
1885 pop rsi
1886 DB 0F3h,0C3h ;repret
1887
1888
1889section .pdata rdata align=4
1890ALIGN 4
1891 DD $L$SEH_begin_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
1892 DD $L$SEH_end_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
1893 DD $L$SEH_info_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
1894 DD $L$SEH_begin_aesni_cbc_sha1_enc_shaext wrt ..imagebase
1895 DD $L$SEH_end_aesni_cbc_sha1_enc_shaext wrt ..imagebase
1896 DD $L$SEH_info_aesni_cbc_sha1_enc_shaext wrt ..imagebase
1897section .xdata rdata align=8
1898ALIGN 8
1899$L$SEH_info_aesni_cbc_sha1_enc_ssse3:
1900DB 9,0,0,0
1901 DD ssse3_handler wrt ..imagebase
1902 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
1903$L$SEH_info_aesni_cbc_sha1_enc_shaext:
1904DB 9,0,0,0
1905 DD ssse3_handler wrt ..imagebase
1906 DD $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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