VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.3/crypto/genasm-nasm/sha1-x86_64.S@ 95221

Last change on this file since 95221 was 95221, checked in by vboxsync, 3 years ago

libs/openssl-3.0.3: Recreated openssl assembler files, bugref:10128

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

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