VirtualBox

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

Last change on this file was 109052, checked in by vboxsync, 4 weeks ago

openssl-3.4.1: Applied our changes, regenerated files, added missing files and functions. This time with a three way merge. ​bugref:10890

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 33.4 KB
Line 
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:
1429section .rdata rdata align=64
1430ALIGN 64
1431K_XX_XX:
1432 DD 0x5a827999,0x5a827999,0x5a827999,0x5a827999
1433 DD 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
1434 DD 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
1435 DD 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
1436 DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
1437DB 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
1438
1439DB 65,69,83,78,73,45,67,66,67,43,83,72,65,49,32,115
1440DB 116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52
1441DB 44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32
1442DB 60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111
1443DB 114,103,62,0
1444ALIGN 64
1445section .text
1446
1447ALIGN 32
1448aesni_cbc_sha1_enc_shaext:
1449 mov QWORD[8+rsp],rdi ;WIN64 prologue
1450 mov QWORD[16+rsp],rsi
1451 mov rax,rsp
1452$L$SEH_begin_aesni_cbc_sha1_enc_shaext:
1453 mov rdi,rcx
1454 mov rsi,rdx
1455 mov rdx,r8
1456 mov rcx,r9
1457 mov r8,QWORD[40+rsp]
1458 mov r9,QWORD[48+rsp]
1459
1460
1461
1462 mov r10,QWORD[56+rsp]
1463 lea rsp,[((-168))+rsp]
1464 movaps XMMWORD[(-8-160)+rax],xmm6
1465 movaps XMMWORD[(-8-144)+rax],xmm7
1466 movaps XMMWORD[(-8-128)+rax],xmm8
1467 movaps XMMWORD[(-8-112)+rax],xmm9
1468 movaps XMMWORD[(-8-96)+rax],xmm10
1469 movaps XMMWORD[(-8-80)+rax],xmm11
1470 movaps XMMWORD[(-8-64)+rax],xmm12
1471 movaps XMMWORD[(-8-48)+rax],xmm13
1472 movaps XMMWORD[(-8-32)+rax],xmm14
1473 movaps XMMWORD[(-8-16)+rax],xmm15
1474$L$prologue_shaext:
1475 movdqu xmm8,XMMWORD[r9]
1476 movd xmm9,DWORD[16+r9]
1477 movdqa xmm7,XMMWORD[((K_XX_XX+80))]
1478
1479 mov r11d,DWORD[240+rcx]
1480 sub rsi,rdi
1481 movups xmm15,XMMWORD[rcx]
1482 movups xmm2,XMMWORD[r8]
1483 movups xmm0,XMMWORD[16+rcx]
1484 lea rcx,[112+rcx]
1485
1486 pshufd xmm8,xmm8,27
1487 pshufd xmm9,xmm9,27
1488 jmp NEAR $L$oop_shaext
1489
1490ALIGN 16
1491$L$oop_shaext:
1492 movups xmm14,XMMWORD[rdi]
1493 xorps xmm14,xmm15
1494 xorps xmm2,xmm14
1495 movups xmm1,XMMWORD[((-80))+rcx]
1496DB 102,15,56,220,208
1497 movdqu xmm3,XMMWORD[r10]
1498 movdqa xmm12,xmm9
1499DB 102,15,56,0,223
1500 movdqu xmm4,XMMWORD[16+r10]
1501 movdqa xmm11,xmm8
1502 movups xmm0,XMMWORD[((-64))+rcx]
1503DB 102,15,56,220,209
1504DB 102,15,56,0,231
1505
1506 paddd xmm9,xmm3
1507 movdqu xmm5,XMMWORD[32+r10]
1508 lea r10,[64+r10]
1509 pxor xmm3,xmm12
1510 movups xmm1,XMMWORD[((-48))+rcx]
1511DB 102,15,56,220,208
1512 pxor xmm3,xmm12
1513 movdqa xmm10,xmm8
1514DB 102,15,56,0,239
1515DB 69,15,58,204,193,0
1516DB 68,15,56,200,212
1517 movups xmm0,XMMWORD[((-32))+rcx]
1518DB 102,15,56,220,209
1519DB 15,56,201,220
1520 movdqu xmm6,XMMWORD[((-16))+r10]
1521 movdqa xmm9,xmm8
1522DB 102,15,56,0,247
1523 movups xmm1,XMMWORD[((-16))+rcx]
1524DB 102,15,56,220,208
1525DB 69,15,58,204,194,0
1526DB 68,15,56,200,205
1527 pxor xmm3,xmm5
1528DB 15,56,201,229
1529 movups xmm0,XMMWORD[rcx]
1530DB 102,15,56,220,209
1531 movdqa xmm10,xmm8
1532DB 69,15,58,204,193,0
1533DB 68,15,56,200,214
1534 movups xmm1,XMMWORD[16+rcx]
1535DB 102,15,56,220,208
1536DB 15,56,202,222
1537 pxor xmm4,xmm6
1538DB 15,56,201,238
1539 movups xmm0,XMMWORD[32+rcx]
1540DB 102,15,56,220,209
1541 movdqa xmm9,xmm8
1542DB 69,15,58,204,194,0
1543DB 68,15,56,200,203
1544 movups xmm1,XMMWORD[48+rcx]
1545DB 102,15,56,220,208
1546DB 15,56,202,227
1547 pxor xmm5,xmm3
1548DB 15,56,201,243
1549 cmp r11d,11
1550 jb NEAR $L$aesenclast6
1551 movups xmm0,XMMWORD[64+rcx]
1552DB 102,15,56,220,209
1553 movups xmm1,XMMWORD[80+rcx]
1554DB 102,15,56,220,208
1555 je NEAR $L$aesenclast6
1556 movups xmm0,XMMWORD[96+rcx]
1557DB 102,15,56,220,209
1558 movups xmm1,XMMWORD[112+rcx]
1559DB 102,15,56,220,208
1560$L$aesenclast6:
1561DB 102,15,56,221,209
1562 movups xmm0,XMMWORD[((16-112))+rcx]
1563 movdqa xmm10,xmm8
1564DB 69,15,58,204,193,0
1565DB 68,15,56,200,212
1566 movups xmm14,XMMWORD[16+rdi]
1567 xorps xmm14,xmm15
1568 movups XMMWORD[rdi*1+rsi],xmm2
1569 xorps xmm2,xmm14
1570 movups xmm1,XMMWORD[((-80))+rcx]
1571DB 102,15,56,220,208
1572DB 15,56,202,236
1573 pxor xmm6,xmm4
1574DB 15,56,201,220
1575 movups xmm0,XMMWORD[((-64))+rcx]
1576DB 102,15,56,220,209
1577 movdqa xmm9,xmm8
1578DB 69,15,58,204,194,1
1579DB 68,15,56,200,205
1580 movups xmm1,XMMWORD[((-48))+rcx]
1581DB 102,15,56,220,208
1582DB 15,56,202,245
1583 pxor xmm3,xmm5
1584DB 15,56,201,229
1585 movups xmm0,XMMWORD[((-32))+rcx]
1586DB 102,15,56,220,209
1587 movdqa xmm10,xmm8
1588DB 69,15,58,204,193,1
1589DB 68,15,56,200,214
1590 movups xmm1,XMMWORD[((-16))+rcx]
1591DB 102,15,56,220,208
1592DB 15,56,202,222
1593 pxor xmm4,xmm6
1594DB 15,56,201,238
1595 movups xmm0,XMMWORD[rcx]
1596DB 102,15,56,220,209
1597 movdqa xmm9,xmm8
1598DB 69,15,58,204,194,1
1599DB 68,15,56,200,203
1600 movups xmm1,XMMWORD[16+rcx]
1601DB 102,15,56,220,208
1602DB 15,56,202,227
1603 pxor xmm5,xmm3
1604DB 15,56,201,243
1605 movups xmm0,XMMWORD[32+rcx]
1606DB 102,15,56,220,209
1607 movdqa xmm10,xmm8
1608DB 69,15,58,204,193,1
1609DB 68,15,56,200,212
1610 movups xmm1,XMMWORD[48+rcx]
1611DB 102,15,56,220,208
1612DB 15,56,202,236
1613 pxor xmm6,xmm4
1614DB 15,56,201,220
1615 cmp r11d,11
1616 jb NEAR $L$aesenclast7
1617 movups xmm0,XMMWORD[64+rcx]
1618DB 102,15,56,220,209
1619 movups xmm1,XMMWORD[80+rcx]
1620DB 102,15,56,220,208
1621 je NEAR $L$aesenclast7
1622 movups xmm0,XMMWORD[96+rcx]
1623DB 102,15,56,220,209
1624 movups xmm1,XMMWORD[112+rcx]
1625DB 102,15,56,220,208
1626$L$aesenclast7:
1627DB 102,15,56,221,209
1628 movups xmm0,XMMWORD[((16-112))+rcx]
1629 movdqa xmm9,xmm8
1630DB 69,15,58,204,194,1
1631DB 68,15,56,200,205
1632 movups xmm14,XMMWORD[32+rdi]
1633 xorps xmm14,xmm15
1634 movups XMMWORD[16+rdi*1+rsi],xmm2
1635 xorps xmm2,xmm14
1636 movups xmm1,XMMWORD[((-80))+rcx]
1637DB 102,15,56,220,208
1638DB 15,56,202,245
1639 pxor xmm3,xmm5
1640DB 15,56,201,229
1641 movups xmm0,XMMWORD[((-64))+rcx]
1642DB 102,15,56,220,209
1643 movdqa xmm10,xmm8
1644DB 69,15,58,204,193,2
1645DB 68,15,56,200,214
1646 movups xmm1,XMMWORD[((-48))+rcx]
1647DB 102,15,56,220,208
1648DB 15,56,202,222
1649 pxor xmm4,xmm6
1650DB 15,56,201,238
1651 movups xmm0,XMMWORD[((-32))+rcx]
1652DB 102,15,56,220,209
1653 movdqa xmm9,xmm8
1654DB 69,15,58,204,194,2
1655DB 68,15,56,200,203
1656 movups xmm1,XMMWORD[((-16))+rcx]
1657DB 102,15,56,220,208
1658DB 15,56,202,227
1659 pxor xmm5,xmm3
1660DB 15,56,201,243
1661 movups xmm0,XMMWORD[rcx]
1662DB 102,15,56,220,209
1663 movdqa xmm10,xmm8
1664DB 69,15,58,204,193,2
1665DB 68,15,56,200,212
1666 movups xmm1,XMMWORD[16+rcx]
1667DB 102,15,56,220,208
1668DB 15,56,202,236
1669 pxor xmm6,xmm4
1670DB 15,56,201,220
1671 movups xmm0,XMMWORD[32+rcx]
1672DB 102,15,56,220,209
1673 movdqa xmm9,xmm8
1674DB 69,15,58,204,194,2
1675DB 68,15,56,200,205
1676 movups xmm1,XMMWORD[48+rcx]
1677DB 102,15,56,220,208
1678DB 15,56,202,245
1679 pxor xmm3,xmm5
1680DB 15,56,201,229
1681 cmp r11d,11
1682 jb NEAR $L$aesenclast8
1683 movups xmm0,XMMWORD[64+rcx]
1684DB 102,15,56,220,209
1685 movups xmm1,XMMWORD[80+rcx]
1686DB 102,15,56,220,208
1687 je NEAR $L$aesenclast8
1688 movups xmm0,XMMWORD[96+rcx]
1689DB 102,15,56,220,209
1690 movups xmm1,XMMWORD[112+rcx]
1691DB 102,15,56,220,208
1692$L$aesenclast8:
1693DB 102,15,56,221,209
1694 movups xmm0,XMMWORD[((16-112))+rcx]
1695 movdqa xmm10,xmm8
1696DB 69,15,58,204,193,2
1697DB 68,15,56,200,214
1698 movups xmm14,XMMWORD[48+rdi]
1699 xorps xmm14,xmm15
1700 movups XMMWORD[32+rdi*1+rsi],xmm2
1701 xorps xmm2,xmm14
1702 movups xmm1,XMMWORD[((-80))+rcx]
1703DB 102,15,56,220,208
1704DB 15,56,202,222
1705 pxor xmm4,xmm6
1706DB 15,56,201,238
1707 movups xmm0,XMMWORD[((-64))+rcx]
1708DB 102,15,56,220,209
1709 movdqa xmm9,xmm8
1710DB 69,15,58,204,194,3
1711DB 68,15,56,200,203
1712 movups xmm1,XMMWORD[((-48))+rcx]
1713DB 102,15,56,220,208
1714DB 15,56,202,227
1715 pxor xmm5,xmm3
1716DB 15,56,201,243
1717 movups xmm0,XMMWORD[((-32))+rcx]
1718DB 102,15,56,220,209
1719 movdqa xmm10,xmm8
1720DB 69,15,58,204,193,3
1721DB 68,15,56,200,212
1722DB 15,56,202,236
1723 pxor xmm6,xmm4
1724 movups xmm1,XMMWORD[((-16))+rcx]
1725DB 102,15,56,220,208
1726 movdqa xmm9,xmm8
1727DB 69,15,58,204,194,3
1728DB 68,15,56,200,205
1729DB 15,56,202,245
1730 movups xmm0,XMMWORD[rcx]
1731DB 102,15,56,220,209
1732 movdqa xmm5,xmm12
1733 movdqa xmm10,xmm8
1734DB 69,15,58,204,193,3
1735DB 68,15,56,200,214
1736 movups xmm1,XMMWORD[16+rcx]
1737DB 102,15,56,220,208
1738 movdqa xmm9,xmm8
1739DB 69,15,58,204,194,3
1740DB 68,15,56,200,205
1741 movups xmm0,XMMWORD[32+rcx]
1742DB 102,15,56,220,209
1743 movups xmm1,XMMWORD[48+rcx]
1744DB 102,15,56,220,208
1745 cmp r11d,11
1746 jb NEAR $L$aesenclast9
1747 movups xmm0,XMMWORD[64+rcx]
1748DB 102,15,56,220,209
1749 movups xmm1,XMMWORD[80+rcx]
1750DB 102,15,56,220,208
1751 je NEAR $L$aesenclast9
1752 movups xmm0,XMMWORD[96+rcx]
1753DB 102,15,56,220,209
1754 movups xmm1,XMMWORD[112+rcx]
1755DB 102,15,56,220,208
1756$L$aesenclast9:
1757DB 102,15,56,221,209
1758 movups xmm0,XMMWORD[((16-112))+rcx]
1759 dec rdx
1760
1761 paddd xmm8,xmm11
1762 movups XMMWORD[48+rdi*1+rsi],xmm2
1763 lea rdi,[64+rdi]
1764 jnz NEAR $L$oop_shaext
1765
1766 pshufd xmm8,xmm8,27
1767 pshufd xmm9,xmm9,27
1768 movups XMMWORD[r8],xmm2
1769 movdqu XMMWORD[r9],xmm8
1770 movd DWORD[16+r9],xmm9
1771 movaps xmm6,XMMWORD[((-8-160))+rax]
1772 movaps xmm7,XMMWORD[((-8-144))+rax]
1773 movaps xmm8,XMMWORD[((-8-128))+rax]
1774 movaps xmm9,XMMWORD[((-8-112))+rax]
1775 movaps xmm10,XMMWORD[((-8-96))+rax]
1776 movaps xmm11,XMMWORD[((-8-80))+rax]
1777 movaps xmm12,XMMWORD[((-8-64))+rax]
1778 movaps xmm13,XMMWORD[((-8-48))+rax]
1779 movaps xmm14,XMMWORD[((-8-32))+rax]
1780 movaps xmm15,XMMWORD[((-8-16))+rax]
1781 mov rsp,rax
1782$L$epilogue_shaext:
1783 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1784 mov rsi,QWORD[16+rsp]
1785 DB 0F3h,0C3h ;repret
1786
1787$L$SEH_end_aesni_cbc_sha1_enc_shaext:
1788EXTERN __imp_RtlVirtualUnwind
1789
1790ALIGN 16
1791ssse3_handler:
1792 push rsi
1793 push rdi
1794 push rbx
1795 push rbp
1796 push r12
1797 push r13
1798 push r14
1799 push r15
1800 pushfq
1801 sub rsp,64
1802
1803 mov rax,QWORD[120+r8]
1804 mov rbx,QWORD[248+r8]
1805
1806 mov rsi,QWORD[8+r9]
1807 mov r11,QWORD[56+r9]
1808
1809 mov r10d,DWORD[r11]
1810 lea r10,[r10*1+rsi]
1811 cmp rbx,r10
1812 jb NEAR $L$common_seh_tail
1813
1814 mov rax,QWORD[152+r8]
1815
1816 mov r10d,DWORD[4+r11]
1817 lea r10,[r10*1+rsi]
1818 cmp rbx,r10
1819 jae NEAR $L$common_seh_tail
1820 lea r10,[aesni_cbc_sha1_enc_shaext]
1821 cmp rbx,r10
1822 jb NEAR $L$seh_no_shaext
1823
1824 lea rsi,[rax]
1825 lea rdi,[512+r8]
1826 mov ecx,20
1827 DD 0xa548f3fc
1828 lea rax,[168+rax]
1829 jmp NEAR $L$common_seh_tail
1830$L$seh_no_shaext:
1831 lea rsi,[96+rax]
1832 lea rdi,[512+r8]
1833 mov ecx,20
1834 DD 0xa548f3fc
1835 lea rax,[264+rax]
1836
1837 mov r15,QWORD[rax]
1838 mov r14,QWORD[8+rax]
1839 mov r13,QWORD[16+rax]
1840 mov r12,QWORD[24+rax]
1841 mov rbp,QWORD[32+rax]
1842 mov rbx,QWORD[40+rax]
1843 lea rax,[48+rax]
1844 mov QWORD[144+r8],rbx
1845 mov QWORD[160+r8],rbp
1846 mov QWORD[216+r8],r12
1847 mov QWORD[224+r8],r13
1848 mov QWORD[232+r8],r14
1849 mov QWORD[240+r8],r15
1850
1851$L$common_seh_tail:
1852 mov rdi,QWORD[8+rax]
1853 mov rsi,QWORD[16+rax]
1854 mov QWORD[152+r8],rax
1855 mov QWORD[168+r8],rsi
1856 mov QWORD[176+r8],rdi
1857
1858 mov rdi,QWORD[40+r9]
1859 mov rsi,r8
1860 mov ecx,154
1861 DD 0xa548f3fc
1862
1863 mov rsi,r9
1864 xor rcx,rcx
1865 mov rdx,QWORD[8+rsi]
1866 mov r8,QWORD[rsi]
1867 mov r9,QWORD[16+rsi]
1868 mov r10,QWORD[40+rsi]
1869 lea r11,[56+rsi]
1870 lea r12,[24+rsi]
1871 mov QWORD[32+rsp],r10
1872 mov QWORD[40+rsp],r11
1873 mov QWORD[48+rsp],r12
1874 mov QWORD[56+rsp],rcx
1875 call QWORD[__imp_RtlVirtualUnwind]
1876
1877 mov eax,1
1878 add rsp,64
1879 popfq
1880 pop r15
1881 pop r14
1882 pop r13
1883 pop r12
1884 pop rbp
1885 pop rbx
1886 pop rdi
1887 pop rsi
1888 DB 0F3h,0C3h ;repret
1889
1890
1891section .pdata rdata align=4
1892ALIGN 4
1893 DD $L$SEH_begin_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
1894 DD $L$SEH_end_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
1895 DD $L$SEH_info_aesni_cbc_sha1_enc_ssse3 wrt ..imagebase
1896 DD $L$SEH_begin_aesni_cbc_sha1_enc_shaext wrt ..imagebase
1897 DD $L$SEH_end_aesni_cbc_sha1_enc_shaext wrt ..imagebase
1898 DD $L$SEH_info_aesni_cbc_sha1_enc_shaext wrt ..imagebase
1899section .xdata rdata align=8
1900ALIGN 8
1901$L$SEH_info_aesni_cbc_sha1_enc_ssse3:
1902DB 9,0,0,0
1903 DD ssse3_handler wrt ..imagebase
1904 DD $L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
1905$L$SEH_info_aesni_cbc_sha1_enc_shaext:
1906DB 9,0,0,0
1907 DD ssse3_handler wrt ..imagebase
1908 DD $L$prologue_shaext wrt ..imagebase,$L$epilogue_shaext wrt ..imagebase
Note: See TracBrowser for help on using the repository browser.

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