1 %ifidn __OUTPUT_FORMAT__
,obj
2 section code use32 class
=code
align=64
3 %elifidn __OUTPUT_FORMAT__
,win32
4 %ifdef __YASM_VERSION_ID__
5 %if __YASM_VERSION_ID__
< 01010000h
6 %error yasm version
1.1.0 or later needed.
8 ; Yasm automatically includes .00 and complains about redefining it.
9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
13 section .text code
align=64
17 ;extern _OPENSSL_ia32cap_P
18 global _sha1_block_data_order
20 _sha1_block_data_order:
21 L$
_sha1_block_data_order_begin:
29 lea esi,[_OPENSSL_ia32cap_P
]
30 lea ebp,[(L$K_XX_XX
-L
$000pic_point
)+ebp]
39 jnz NEAR L$shaext_shortcut
40 jmp NEAR L$ssse3_shortcut
43 mov ebp,DWORD [20+esp]
44 mov esi,DWORD [24+esp]
45 mov eax,DWORD [28+esp]
49 mov DWORD [104+esp],eax
50 mov edi,DWORD [16+ebp]
57 mov edx,DWORD [12+esi]
65 mov DWORD [12+esp],edx
66 mov eax,DWORD [16+esi]
67 mov ebx,DWORD [20+esi]
68 mov ecx,DWORD [24+esi]
69 mov edx,DWORD [28+esi]
74 mov DWORD [16+esp],eax
75 mov DWORD [20+esp],ebx
76 mov DWORD [24+esp],ecx
77 mov DWORD [28+esp],edx
78 mov eax,DWORD [32+esi]
79 mov ebx,DWORD [36+esi]
80 mov ecx,DWORD [40+esi]
81 mov edx,DWORD [44+esi]
86 mov DWORD [32+esp],eax
87 mov DWORD [36+esp],ebx
88 mov DWORD [40+esp],ecx
89 mov DWORD [44+esp],edx
90 mov eax,DWORD [48+esi]
91 mov ebx,DWORD [52+esi]
92 mov ecx,DWORD [56+esi]
93 mov edx,DWORD [60+esi]
98 mov DWORD [48+esp],eax
99 mov DWORD [52+esp],ebx
100 mov DWORD [56+esp],ecx
101 mov DWORD [60+esp],edx
102 mov DWORD [100+esp],esi
104 mov ebx,DWORD [4+ebp]
105 mov ecx,DWORD [8+ebp]
106 mov edx,DWORD [12+ebp]
117 lea ebp,[1518500249+edi*1+ebp]
125 mov edx,DWORD [4+esp]
129 lea ebp,[1518500249+edx*1+ebp]
137 mov ecx,DWORD [8+esp]
141 lea ebp,[1518500249+ecx*1+ebp]
149 mov ebx,DWORD [12+esp]
153 lea ebp,[1518500249+ebx*1+ebp]
161 mov eax,DWORD [16+esp]
165 lea ebp,[1518500249+eax*1+ebp]
173 mov esi,DWORD [20+esp]
177 lea ebp,[1518500249+esi*1+ebp]
185 mov edi,DWORD [24+esp]
189 lea ebp,[1518500249+edi*1+ebp]
197 mov edx,DWORD [28+esp]
201 lea ebp,[1518500249+edx*1+ebp]
209 mov ecx,DWORD [32+esp]
213 lea ebp,[1518500249+ecx*1+ebp]
221 mov ebx,DWORD [36+esp]
225 lea ebp,[1518500249+ebx*1+ebp]
233 mov eax,DWORD [40+esp]
237 lea ebp,[1518500249+eax*1+ebp]
245 mov esi,DWORD [44+esp]
249 lea ebp,[1518500249+esi*1+ebp]
257 mov edi,DWORD [48+esp]
261 lea ebp,[1518500249+edi*1+ebp]
269 mov edx,DWORD [52+esp]
273 lea ebp,[1518500249+edx*1+ebp]
281 mov ecx,DWORD [56+esp]
285 lea ebp,[1518500249+ecx*1+ebp]
293 mov ebx,DWORD [60+esp]
297 lea ebp,[1518500249+ebx*1+ebp]
302 xor ebx,DWORD [8+esp]
304 xor ebx,DWORD [32+esp]
306 xor ebx,DWORD [52+esp]
314 lea ebx,[1518500249+eax*1+ebx]
315 mov eax,DWORD [4+esp]
319 xor eax,DWORD [12+esp]
321 xor eax,DWORD [36+esp]
323 xor eax,DWORD [56+esp]
329 mov DWORD [4+esp],eax
331 lea eax,[1518500249+esi*1+eax]
332 mov esi,DWORD [8+esp]
336 xor esi,DWORD [16+esp]
338 xor esi,DWORD [40+esp]
340 xor esi,DWORD [60+esp]
346 mov DWORD [8+esp],esi
348 lea esi,[1518500249+edi*1+esi]
349 mov edi,DWORD [12+esp]
353 xor edi,DWORD [20+esp]
355 xor edi,DWORD [44+esp]
363 mov DWORD [12+esp],edi
365 lea edi,[1518500249+edx*1+edi]
366 mov edx,DWORD [16+esp]
370 xor edx,DWORD [24+esp]
372 xor edx,DWORD [48+esp]
374 xor edx,DWORD [4+esp]
380 mov DWORD [16+esp],edx
381 lea edx,[1859775393+ecx*1+edx]
382 mov ecx,DWORD [20+esp]
386 xor ecx,DWORD [28+esp]
388 xor ecx,DWORD [52+esp]
390 xor ecx,DWORD [8+esp]
396 mov DWORD [20+esp],ecx
397 lea ecx,[1859775393+ebx*1+ecx]
398 mov ebx,DWORD [24+esp]
402 xor ebx,DWORD [32+esp]
404 xor ebx,DWORD [56+esp]
406 xor ebx,DWORD [12+esp]
412 mov DWORD [24+esp],ebx
413 lea ebx,[1859775393+eax*1+ebx]
414 mov eax,DWORD [28+esp]
418 xor eax,DWORD [36+esp]
420 xor eax,DWORD [60+esp]
422 xor eax,DWORD [16+esp]
428 mov DWORD [28+esp],eax
429 lea eax,[1859775393+esi*1+eax]
430 mov esi,DWORD [32+esp]
434 xor esi,DWORD [40+esp]
438 xor esi,DWORD [20+esp]
444 mov DWORD [32+esp],esi
445 lea esi,[1859775393+edi*1+esi]
446 mov edi,DWORD [36+esp]
450 xor edi,DWORD [44+esp]
452 xor edi,DWORD [4+esp]
454 xor edi,DWORD [24+esp]
460 mov DWORD [36+esp],edi
461 lea edi,[1859775393+edx*1+edi]
462 mov edx,DWORD [40+esp]
466 xor edx,DWORD [48+esp]
468 xor edx,DWORD [8+esp]
470 xor edx,DWORD [28+esp]
476 mov DWORD [40+esp],edx
477 lea edx,[1859775393+ecx*1+edx]
478 mov ecx,DWORD [44+esp]
482 xor ecx,DWORD [52+esp]
484 xor ecx,DWORD [12+esp]
486 xor ecx,DWORD [32+esp]
492 mov DWORD [44+esp],ecx
493 lea ecx,[1859775393+ebx*1+ecx]
494 mov ebx,DWORD [48+esp]
498 xor ebx,DWORD [56+esp]
500 xor ebx,DWORD [16+esp]
502 xor ebx,DWORD [36+esp]
508 mov DWORD [48+esp],ebx
509 lea ebx,[1859775393+eax*1+ebx]
510 mov eax,DWORD [52+esp]
514 xor eax,DWORD [60+esp]
516 xor eax,DWORD [20+esp]
518 xor eax,DWORD [40+esp]
524 mov DWORD [52+esp],eax
525 lea eax,[1859775393+esi*1+eax]
526 mov esi,DWORD [56+esp]
532 xor esi,DWORD [24+esp]
534 xor esi,DWORD [44+esp]
540 mov DWORD [56+esp],esi
541 lea esi,[1859775393+edi*1+esi]
542 mov edi,DWORD [60+esp]
546 xor edi,DWORD [4+esp]
548 xor edi,DWORD [28+esp]
550 xor edi,DWORD [48+esp]
556 mov DWORD [60+esp],edi
557 lea edi,[1859775393+edx*1+edi]
562 xor edx,DWORD [8+esp]
564 xor edx,DWORD [32+esp]
566 xor edx,DWORD [52+esp]
573 lea edx,[1859775393+ecx*1+edx]
574 mov ecx,DWORD [4+esp]
578 xor ecx,DWORD [12+esp]
580 xor ecx,DWORD [36+esp]
582 xor ecx,DWORD [56+esp]
588 mov DWORD [4+esp],ecx
589 lea ecx,[1859775393+ebx*1+ecx]
590 mov ebx,DWORD [8+esp]
594 xor ebx,DWORD [16+esp]
596 xor ebx,DWORD [40+esp]
598 xor ebx,DWORD [60+esp]
604 mov DWORD [8+esp],ebx
605 lea ebx,[1859775393+eax*1+ebx]
606 mov eax,DWORD [12+esp]
610 xor eax,DWORD [20+esp]
612 xor eax,DWORD [44+esp]
620 mov DWORD [12+esp],eax
621 lea eax,[1859775393+esi*1+eax]
622 mov esi,DWORD [16+esp]
626 xor esi,DWORD [24+esp]
628 xor esi,DWORD [48+esp]
630 xor esi,DWORD [4+esp]
636 mov DWORD [16+esp],esi
637 lea esi,[1859775393+edi*1+esi]
638 mov edi,DWORD [20+esp]
642 xor edi,DWORD [28+esp]
644 xor edi,DWORD [52+esp]
646 xor edi,DWORD [8+esp]
652 mov DWORD [20+esp],edi
653 lea edi,[1859775393+edx*1+edi]
654 mov edx,DWORD [24+esp]
658 xor edx,DWORD [32+esp]
660 xor edx,DWORD [56+esp]
662 xor edx,DWORD [12+esp]
668 mov DWORD [24+esp],edx
669 lea edx,[1859775393+ecx*1+edx]
670 mov ecx,DWORD [28+esp]
674 xor ecx,DWORD [36+esp]
676 xor ecx,DWORD [60+esp]
678 xor ecx,DWORD [16+esp]
684 mov DWORD [28+esp],ecx
685 lea ecx,[1859775393+ebx*1+ecx]
686 mov ebx,DWORD [32+esp]
690 xor ebx,DWORD [40+esp]
694 xor ebx,DWORD [20+esp]
700 mov DWORD [32+esp],ebx
701 lea ebx,[2400959708+ebp*1+ebx]
705 mov eax,DWORD [36+esp]
709 xor eax,DWORD [44+esp]
711 xor eax,DWORD [4+esp]
713 xor eax,DWORD [24+esp]
719 mov DWORD [36+esp],eax
720 lea eax,[2400959708+ebp*1+eax]
724 mov esi,DWORD [40+esp]
728 xor esi,DWORD [48+esp]
730 xor esi,DWORD [8+esp]
732 xor esi,DWORD [28+esp]
738 mov DWORD [40+esp],esi
739 lea esi,[2400959708+ebp*1+esi]
743 mov edi,DWORD [44+esp]
747 xor edi,DWORD [52+esp]
749 xor edi,DWORD [12+esp]
751 xor edi,DWORD [32+esp]
757 mov DWORD [44+esp],edi
758 lea edi,[2400959708+ebp*1+edi]
762 mov edx,DWORD [48+esp]
766 xor edx,DWORD [56+esp]
768 xor edx,DWORD [16+esp]
770 xor edx,DWORD [36+esp]
776 mov DWORD [48+esp],edx
777 lea edx,[2400959708+ebp*1+edx]
781 mov ecx,DWORD [52+esp]
785 xor ecx,DWORD [60+esp]
787 xor ecx,DWORD [20+esp]
789 xor ecx,DWORD [40+esp]
795 mov DWORD [52+esp],ecx
796 lea ecx,[2400959708+ebp*1+ecx]
800 mov ebx,DWORD [56+esp]
806 xor ebx,DWORD [24+esp]
808 xor ebx,DWORD [44+esp]
814 mov DWORD [56+esp],ebx
815 lea ebx,[2400959708+ebp*1+ebx]
819 mov eax,DWORD [60+esp]
823 xor eax,DWORD [4+esp]
825 xor eax,DWORD [28+esp]
827 xor eax,DWORD [48+esp]
833 mov DWORD [60+esp],eax
834 lea eax,[2400959708+ebp*1+eax]
842 xor esi,DWORD [8+esp]
844 xor esi,DWORD [32+esp]
846 xor esi,DWORD [52+esp]
853 lea esi,[2400959708+ebp*1+esi]
857 mov edi,DWORD [4+esp]
861 xor edi,DWORD [12+esp]
863 xor edi,DWORD [36+esp]
865 xor edi,DWORD [56+esp]
871 mov DWORD [4+esp],edi
872 lea edi,[2400959708+ebp*1+edi]
876 mov edx,DWORD [8+esp]
880 xor edx,DWORD [16+esp]
882 xor edx,DWORD [40+esp]
884 xor edx,DWORD [60+esp]
890 mov DWORD [8+esp],edx
891 lea edx,[2400959708+ebp*1+edx]
895 mov ecx,DWORD [12+esp]
899 xor ecx,DWORD [20+esp]
901 xor ecx,DWORD [44+esp]
909 mov DWORD [12+esp],ecx
910 lea ecx,[2400959708+ebp*1+ecx]
914 mov ebx,DWORD [16+esp]
918 xor ebx,DWORD [24+esp]
920 xor ebx,DWORD [48+esp]
922 xor ebx,DWORD [4+esp]
928 mov DWORD [16+esp],ebx
929 lea ebx,[2400959708+ebp*1+ebx]
933 mov eax,DWORD [20+esp]
937 xor eax,DWORD [28+esp]
939 xor eax,DWORD [52+esp]
941 xor eax,DWORD [8+esp]
947 mov DWORD [20+esp],eax
948 lea eax,[2400959708+ebp*1+eax]
952 mov esi,DWORD [24+esp]
956 xor esi,DWORD [32+esp]
958 xor esi,DWORD [56+esp]
960 xor esi,DWORD [12+esp]
966 mov DWORD [24+esp],esi
967 lea esi,[2400959708+ebp*1+esi]
971 mov edi,DWORD [28+esp]
975 xor edi,DWORD [36+esp]
977 xor edi,DWORD [60+esp]
979 xor edi,DWORD [16+esp]
985 mov DWORD [28+esp],edi
986 lea edi,[2400959708+ebp*1+edi]
990 mov edx,DWORD [32+esp]
994 xor edx,DWORD [40+esp]
998 xor edx,DWORD [20+esp]
1004 mov DWORD [32+esp],edx
1005 lea edx,[2400959708+ebp*1+edx]
1009 mov ecx,DWORD [36+esp]
1013 xor ecx,DWORD [44+esp]
1015 xor ecx,DWORD [4+esp]
1017 xor ecx,DWORD [24+esp]
1023 mov DWORD [36+esp],ecx
1024 lea ecx,[2400959708+ebp*1+ecx]
1028 mov ebx,DWORD [40+esp]
1032 xor ebx,DWORD [48+esp]
1034 xor ebx,DWORD [8+esp]
1036 xor ebx,DWORD [28+esp]
1042 mov DWORD [40+esp],ebx
1043 lea ebx,[2400959708+ebp*1+ebx]
1047 mov eax,DWORD [44+esp]
1051 xor eax,DWORD [52+esp]
1053 xor eax,DWORD [12+esp]
1055 xor eax,DWORD [32+esp]
1061 mov DWORD [44+esp],eax
1062 lea eax,[2400959708+ebp*1+eax]
1066 mov esi,DWORD [48+esp]
1070 xor esi,DWORD [56+esp]
1072 xor esi,DWORD [16+esp]
1074 xor esi,DWORD [36+esp]
1080 mov DWORD [48+esp],esi
1081 lea esi,[3395469782+edi*1+esi]
1082 mov edi,DWORD [52+esp]
1086 xor edi,DWORD [60+esp]
1088 xor edi,DWORD [20+esp]
1090 xor edi,DWORD [40+esp]
1096 mov DWORD [52+esp],edi
1097 lea edi,[3395469782+edx*1+edi]
1098 mov edx,DWORD [56+esp]
1104 xor edx,DWORD [24+esp]
1106 xor edx,DWORD [44+esp]
1112 mov DWORD [56+esp],edx
1113 lea edx,[3395469782+ecx*1+edx]
1114 mov ecx,DWORD [60+esp]
1118 xor ecx,DWORD [4+esp]
1120 xor ecx,DWORD [28+esp]
1122 xor ecx,DWORD [48+esp]
1128 mov DWORD [60+esp],ecx
1129 lea ecx,[3395469782+ebx*1+ecx]
1134 xor ebx,DWORD [8+esp]
1136 xor ebx,DWORD [32+esp]
1138 xor ebx,DWORD [52+esp]
1145 lea ebx,[3395469782+eax*1+ebx]
1146 mov eax,DWORD [4+esp]
1150 xor eax,DWORD [12+esp]
1152 xor eax,DWORD [36+esp]
1154 xor eax,DWORD [56+esp]
1160 mov DWORD [4+esp],eax
1161 lea eax,[3395469782+esi*1+eax]
1162 mov esi,DWORD [8+esp]
1166 xor esi,DWORD [16+esp]
1168 xor esi,DWORD [40+esp]
1170 xor esi,DWORD [60+esp]
1176 mov DWORD [8+esp],esi
1177 lea esi,[3395469782+edi*1+esi]
1178 mov edi,DWORD [12+esp]
1182 xor edi,DWORD [20+esp]
1184 xor edi,DWORD [44+esp]
1192 mov DWORD [12+esp],edi
1193 lea edi,[3395469782+edx*1+edi]
1194 mov edx,DWORD [16+esp]
1198 xor edx,DWORD [24+esp]
1200 xor edx,DWORD [48+esp]
1202 xor edx,DWORD [4+esp]
1208 mov DWORD [16+esp],edx
1209 lea edx,[3395469782+ecx*1+edx]
1210 mov ecx,DWORD [20+esp]
1214 xor ecx,DWORD [28+esp]
1216 xor ecx,DWORD [52+esp]
1218 xor ecx,DWORD [8+esp]
1224 mov DWORD [20+esp],ecx
1225 lea ecx,[3395469782+ebx*1+ecx]
1226 mov ebx,DWORD [24+esp]
1230 xor ebx,DWORD [32+esp]
1232 xor ebx,DWORD [56+esp]
1234 xor ebx,DWORD [12+esp]
1240 mov DWORD [24+esp],ebx
1241 lea ebx,[3395469782+eax*1+ebx]
1242 mov eax,DWORD [28+esp]
1246 xor eax,DWORD [36+esp]
1248 xor eax,DWORD [60+esp]
1250 xor eax,DWORD [16+esp]
1256 mov DWORD [28+esp],eax
1257 lea eax,[3395469782+esi*1+eax]
1258 mov esi,DWORD [32+esp]
1262 xor esi,DWORD [40+esp]
1266 xor esi,DWORD [20+esp]
1272 mov DWORD [32+esp],esi
1273 lea esi,[3395469782+edi*1+esi]
1274 mov edi,DWORD [36+esp]
1278 xor edi,DWORD [44+esp]
1280 xor edi,DWORD [4+esp]
1282 xor edi,DWORD [24+esp]
1288 mov DWORD [36+esp],edi
1289 lea edi,[3395469782+edx*1+edi]
1290 mov edx,DWORD [40+esp]
1294 xor edx,DWORD [48+esp]
1296 xor edx,DWORD [8+esp]
1298 xor edx,DWORD [28+esp]
1304 mov DWORD [40+esp],edx
1305 lea edx,[3395469782+ecx*1+edx]
1306 mov ecx,DWORD [44+esp]
1310 xor ecx,DWORD [52+esp]
1312 xor ecx,DWORD [12+esp]
1314 xor ecx,DWORD [32+esp]
1320 mov DWORD [44+esp],ecx
1321 lea ecx,[3395469782+ebx*1+ecx]
1322 mov ebx,DWORD [48+esp]
1326 xor ebx,DWORD [56+esp]
1328 xor ebx,DWORD [16+esp]
1330 xor ebx,DWORD [36+esp]
1336 mov DWORD [48+esp],ebx
1337 lea ebx,[3395469782+eax*1+ebx]
1338 mov eax,DWORD [52+esp]
1342 xor eax,DWORD [60+esp]
1344 xor eax,DWORD [20+esp]
1346 xor eax,DWORD [40+esp]
1352 lea eax,[3395469782+esi*1+eax]
1353 mov esi,DWORD [56+esp]
1359 xor esi,DWORD [24+esp]
1361 xor esi,DWORD [44+esp]
1367 lea esi,[3395469782+edi*1+esi]
1368 mov edi,DWORD [60+esp]
1372 xor edi,DWORD [4+esp]
1374 xor edi,DWORD [28+esp]
1376 xor edi,DWORD [48+esp]
1382 lea edi,[3395469782+edx*1+edi]
1384 mov ebp,DWORD [96+esp]
1385 mov edx,DWORD [100+esp]
1387 add esi,DWORD [4+ebp]
1388 add eax,DWORD [8+ebp]
1389 add ebx,DWORD [12+ebp]
1390 add ecx,DWORD [16+ebp]
1393 mov DWORD [4+ebp],esi
1394 cmp edx,DWORD [104+esp]
1395 mov DWORD [8+ebp],eax
1397 mov DWORD [12+ebp],ebx
1399 mov DWORD [16+ebp],ecx
1408 __sha1_block_data_order_shaext:
1416 lea ebp,[(L$K_XX_XX
-L
$003pic_point
)+ebp]
1418 mov edi,DWORD [20+esp]
1420 mov esi,DWORD [24+esp]
1421 mov ecx,DWORD [28+esp]
1424 movd xmm1
,DWORD [16+edi]
1426 movdqa xmm3
,[80+ebp]
1429 movdqu xmm5
,[16+esi]
1431 movdqu xmm6
,[32+esi]
1433 movdqu xmm7
,[48+esi]
1437 jmp NEAR L
$004loop_shaext
1445 movdqa
[16+esp],xmm0
1546 movdqu xmm5
,[16+esi]
1551 movdqu xmm6
,[32+esi]
1556 movdqu xmm7
,[48+esi]
1564 jnz NEAR L
$004loop_shaext
1568 movd
DWORD [16+edi],xmm1
1576 __sha1_block_data_order_ssse3:
1584 lea ebp,[(L$K_XX_XX
-L
$005pic_point
)+ebp]
1587 movdqa xmm0
,[16+ebp]
1588 movdqa xmm1
,[32+ebp]
1589 movdqa xmm2
,[48+ebp]
1590 movdqa xmm6
,[64+ebp]
1591 mov edi,DWORD [20+esp]
1592 mov ebp,DWORD [24+esp]
1593 mov edx,DWORD [28+esp]
1597 movdqa
[112+esp],xmm0
1598 movdqa
[128+esp],xmm1
1599 movdqa
[144+esp],xmm2
1601 movdqa
[160+esp],xmm7
1603 movdqa
[176+esp],xmm6
1605 mov DWORD [192+esp],edi
1606 mov DWORD [196+esp],ebp
1607 mov DWORD [200+esp],edx
1608 mov DWORD [204+esp],esi
1610 mov ebx,DWORD [4+edi]
1611 mov ecx,DWORD [8+edi]
1612 mov edx,DWORD [12+edi]
1613 mov edi,DWORD [16+edi]
1615 movdqu xmm0
,[ebp-64]
1616 movdqu xmm1
,[ebp-48]
1617 movdqu xmm2
,[ebp-32]
1618 movdqu xmm3
,[ebp-16]
1622 movdqa
[96+esp],xmm7
1629 movdqa
[16+esp],xmm1
1631 movdqa
[32+esp],xmm2
1635 pshufd xmm4
,xmm0
,238
1643 punpcklqdq xmm4
,xmm1
1648 movdqa
[64+esp],xmm0
1660 add edx,DWORD [4+esp]
1664 movdqa
[48+esp],xmm7
1676 add ecx,DWORD [8+esp]
1690 add ebx,DWORD [12+esp]
1695 movdqa xmm0
,[96+esp]
1699 pshufd xmm5
,xmm1
,238
1705 punpcklqdq xmm5
,xmm2
1707 add eax,DWORD [16+esp]
1710 movdqa
[80+esp],xmm1
1722 add edi,DWORD [20+esp]
1738 add edx,DWORD [24+esp]
1752 add ecx,DWORD [28+esp]
1757 movdqa xmm1
,[112+esp]
1761 pshufd xmm6
,xmm2
,238
1767 punpcklqdq xmm6
,xmm3
1769 add ebx,DWORD [32+esp]
1772 movdqa
[96+esp],xmm2
1784 add eax,DWORD [36+esp]
1788 movdqa
[16+esp],xmm1
1800 add edi,DWORD [40+esp]
1813 movdqa xmm0
,[64+esp]
1815 add edx,DWORD [44+esp]
1820 movdqa xmm2
,[112+esp]
1824 pshufd xmm7
,xmm3
,238
1830 punpcklqdq xmm7
,xmm4
1832 add ecx,DWORD [48+esp]
1835 movdqa
[64+esp],xmm3
1847 add ebx,DWORD [52+esp]
1851 movdqa
[32+esp],xmm2
1863 add eax,DWORD [56+esp]
1876 movdqa xmm1
,[80+esp]
1878 add edi,DWORD [60+esp]
1883 movdqa xmm3
,[112+esp]
1887 pshufd xmm2
,xmm6
,238
1892 punpcklqdq xmm2
,xmm7
1897 movdqa
[80+esp],xmm4
1910 movdqa
[48+esp],xmm3
1912 add ecx,DWORD [4+esp]
1924 add ebx,DWORD [8+esp]
1930 movdqa xmm2
,[96+esp]
1933 add eax,DWORD [12+esp]
1936 pshufd xmm3
,xmm7
,238
1942 add edi,DWORD [16+esp]
1944 punpcklqdq xmm3
,xmm0
1949 movdqa
[96+esp],xmm5
1957 add edx,DWORD [20+esp]
1968 add ecx,DWORD [24+esp]
1978 add ebx,DWORD [28+esp]
1980 movdqa xmm3
,[64+esp]
1986 pshufd xmm4
,xmm0
,238
1988 add eax,DWORD [32+esp]
1990 punpcklqdq xmm4
,xmm1
1995 movdqa
[64+esp],xmm6
1998 movdqa xmm6
,[128+esp]
2003 add edi,DWORD [36+esp]
2008 movdqa
[16+esp],xmm5
2014 add edx,DWORD [40+esp]
2024 add ecx,DWORD [44+esp]
2026 movdqa xmm4
,[80+esp]
2032 pshufd xmm5
,xmm1
,238
2034 add ebx,DWORD [48+esp]
2036 punpcklqdq xmm5
,xmm2
2041 movdqa
[80+esp],xmm7
2049 add eax,DWORD [52+esp]
2054 movdqa
[32+esp],xmm6
2060 add edi,DWORD [56+esp]
2070 add edx,DWORD [60+esp]
2072 movdqa xmm5
,[96+esp]
2078 pshufd xmm6
,xmm2
,238
2082 punpcklqdq xmm6
,xmm3
2087 movdqa
[96+esp],xmm0
2095 add ebx,DWORD [4+esp]
2100 movdqa
[48+esp],xmm7
2106 add eax,DWORD [8+esp]
2116 add edi,DWORD [12+esp]
2118 movdqa xmm6
,[64+esp]
2124 pshufd xmm7
,xmm3
,238
2126 add edx,DWORD [16+esp]
2128 punpcklqdq xmm7
,xmm4
2133 movdqa
[64+esp],xmm1
2141 add ecx,DWORD [20+esp]
2152 add ebx,DWORD [24+esp]
2162 add eax,DWORD [28+esp]
2163 movdqa xmm7
,[80+esp]
2168 pshufd xmm0
,xmm4
,238
2173 add edi,DWORD [32+esp]
2175 punpcklqdq xmm0
,xmm5
2180 movdqa
[80+esp],xmm2
2191 add edx,DWORD [36+esp]
2194 movdqa
[16+esp],xmm1
2206 add ecx,DWORD [40+esp]
2213 movdqa xmm0
,[96+esp]
2219 pshufd xmm1
,xmm5
,238
2220 add ebx,DWORD [44+esp]
2231 add eax,DWORD [48+esp]
2233 punpcklqdq xmm1
,xmm6
2238 movdqa
[96+esp],xmm3
2242 movdqa xmm3
,[144+esp]
2249 add edi,DWORD [52+esp]
2252 movdqa
[32+esp],xmm2
2264 add edx,DWORD [56+esp]
2271 movdqa xmm1
,[64+esp]
2277 pshufd xmm2
,xmm6
,238
2278 add ecx,DWORD [60+esp]
2291 punpcklqdq xmm2
,xmm7
2296 movdqa
[64+esp],xmm4
2307 add eax,DWORD [4+esp]
2310 movdqa
[48+esp],xmm3
2322 add edi,DWORD [8+esp]
2329 movdqa xmm2
,[80+esp]
2335 pshufd xmm3
,xmm7
,238
2336 add edx,DWORD [12+esp]
2347 add ecx,DWORD [16+esp]
2349 punpcklqdq xmm3
,xmm0
2354 movdqa
[80+esp],xmm5
2365 add ebx,DWORD [20+esp]
2380 add eax,DWORD [24+esp]
2387 movdqa xmm3
,[96+esp]
2393 pshufd xmm4
,xmm0
,238
2394 add edi,DWORD [28+esp]
2405 add edx,DWORD [32+esp]
2407 punpcklqdq xmm4
,xmm1
2412 movdqa
[96+esp],xmm6
2423 add ecx,DWORD [36+esp]
2426 movdqa
[16+esp],xmm5
2438 add ebx,DWORD [40+esp]
2445 movdqa xmm4
,[64+esp]
2451 pshufd xmm5
,xmm1
,238
2452 add eax,DWORD [44+esp]
2462 add edi,DWORD [48+esp]
2464 punpcklqdq xmm5
,xmm2
2469 movdqa
[64+esp],xmm7
2477 add edx,DWORD [52+esp]
2482 movdqa
[32+esp],xmm6
2488 add ecx,DWORD [56+esp]
2498 add ebx,DWORD [60+esp]
2515 add edi,DWORD [4+esp]
2518 movdqa
[48+esp],xmm7
2524 add edx,DWORD [8+esp]
2532 add ecx,DWORD [12+esp]
2540 mov ebp,DWORD [196+esp]
2541 cmp ebp,DWORD [200+esp]
2543 movdqa xmm7
,[160+esp]
2544 movdqa xmm6
,[176+esp]
2546 movdqu xmm1
,[16+ebp]
2547 movdqu xmm2
,[32+ebp]
2548 movdqu xmm3
,[48+ebp]
2551 mov DWORD [196+esp],ebp
2552 movdqa
[96+esp],xmm7
2553 add ebx,DWORD [16+esp]
2562 add eax,DWORD [20+esp]
2572 add edi,DWORD [24+esp]
2581 add edx,DWORD [28+esp]
2589 add ecx,DWORD [32+esp]
2598 add ebx,DWORD [36+esp]
2606 movdqa
[16+esp],xmm1
2608 add eax,DWORD [40+esp]
2617 add edi,DWORD [44+esp]
2625 add edx,DWORD [48+esp]
2634 add ecx,DWORD [52+esp]
2642 movdqa
[32+esp],xmm2
2644 add ebx,DWORD [56+esp]
2653 add eax,DWORD [60+esp]
2660 mov ebp,DWORD [192+esp]
2662 add esi,DWORD [4+ebp]
2663 add ecx,DWORD [8+ebp]
2665 add edx,DWORD [12+ebp]
2666 mov DWORD [4+ebp],esi
2667 add edi,DWORD [16+ebp]
2668 mov DWORD [8+ebp],ecx
2670 mov DWORD [12+ebp],edx
2672 mov DWORD [16+ebp],edi
2674 pshufd xmm4
,xmm0
,238
2680 add ebx,DWORD [16+esp]
2688 add eax,DWORD [20+esp]
2696 add edi,DWORD [24+esp]
2704 add edx,DWORD [28+esp]
2712 add ecx,DWORD [32+esp]
2720 add ebx,DWORD [36+esp]
2728 add eax,DWORD [40+esp]
2736 add edi,DWORD [44+esp]
2744 add edx,DWORD [48+esp]
2752 add ecx,DWORD [52+esp]
2760 add ebx,DWORD [56+esp]
2768 add eax,DWORD [60+esp]
2775 mov ebp,DWORD [192+esp]
2777 mov esp,DWORD [204+esp]
2778 add esi,DWORD [4+ebp]
2779 add ecx,DWORD [8+ebp]
2781 add edx,DWORD [12+ebp]
2782 mov DWORD [4+ebp],esi
2783 add edi,DWORD [16+ebp]
2784 mov DWORD [8+ebp],ecx
2785 mov DWORD [12+ebp],edx
2786 mov DWORD [16+ebp],edi
2794 dd 1518500249,1518500249,1518500249,1518500249
2795 dd 1859775393,1859775393,1859775393,1859775393
2796 dd 2400959708,2400959708,2400959708,2400959708
2797 dd 3395469782,3395469782,3395469782,3395469782
2798 dd 66051,67438087,134810123,202182159
2799 db 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0
2800 db 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
2801 db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
2802 db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
2803 db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
2805 common _OPENSSL_ia32cap_P
16