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 _sha256_block_data_order
20 _sha256_block_data_order:
21 L$
_sha256_block_data_order_begin:
26 mov esi,DWORD [20+esp]
27 mov edi,DWORD [24+esp]
28 mov eax,DWORD [28+esp]
33 lea ebp,[(L
$001K256
-L
$000pic_point
)+ebp]
41 mov DWORD [12+esp],ebx
42 lea edx,[_OPENSSL_ia32cap_P
]
62 jae NEAR L
$006unrolled
70 mov edx,DWORD [12+edi]
78 mov eax,DWORD [16+edi]
79 mov ebx,DWORD [20+edi]
80 mov ecx,DWORD [24+edi]
82 mov edx,DWORD [28+edi]
90 mov eax,DWORD [32+edi]
91 mov ebx,DWORD [36+edi]
92 mov ecx,DWORD [40+edi]
94 mov edx,DWORD [44+edi]
102 mov eax,DWORD [48+edi]
103 mov ebx,DWORD [52+edi]
104 mov ecx,DWORD [56+edi]
106 mov edx,DWORD [60+edi]
116 mov DWORD [104+esp],edi
118 mov ebx,DWORD [4+esi]
119 mov ecx,DWORD [8+esi]
120 mov edi,DWORD [12+esi]
121 mov DWORD [8+esp],ebx
123 mov DWORD [12+esp],ecx
124 mov DWORD [16+esp],edi
126 mov edx,DWORD [16+esi]
127 mov ebx,DWORD [20+esi]
128 mov ecx,DWORD [24+esi]
129 mov edi,DWORD [28+esi]
130 mov DWORD [24+esp],ebx
131 mov DWORD [28+esp],ecx
132 mov DWORD [32+esp],edi
136 mov esi,DWORD [24+esp]
138 mov edi,DWORD [28+esp]
141 mov ebx,DWORD [96+esp]
144 mov DWORD [20+esp],edx
146 add ebx,DWORD [32+esp]
153 mov edi,DWORD [8+esp]
155 mov DWORD [4+esp],eax
160 mov edx,DWORD [20+esp]
166 and eax,DWORD [4+esp]
173 mov ecx,DWORD [156+esp]
178 mov esi,DWORD [104+esp]
188 add ebx,DWORD [160+esp]
190 add ebx,DWORD [124+esp]
193 mov esi,DWORD [24+esp]
196 mov edi,DWORD [28+esp]
199 mov DWORD [96+esp],ebx
202 mov DWORD [20+esp],edx
204 add ebx,DWORD [32+esp]
211 mov edi,DWORD [8+esp]
213 mov DWORD [4+esp],eax
218 mov edx,DWORD [20+esp]
224 and eax,DWORD [4+esp]
227 mov ecx,DWORD [156+esp]
232 mov esi,DWORD [356+esp]
233 mov ebx,DWORD [8+esp]
234 mov ecx,DWORD [16+esp]
236 add ebx,DWORD [4+esi]
237 add edi,DWORD [8+esi]
238 add ecx,DWORD [12+esi]
240 mov DWORD [4+esi],ebx
241 mov DWORD [8+esi],edi
242 mov DWORD [12+esi],ecx
243 mov eax,DWORD [24+esp]
244 mov ebx,DWORD [28+esp]
245 mov ecx,DWORD [32+esp]
246 mov edi,DWORD [360+esp]
247 add edx,DWORD [16+esi]
248 add eax,DWORD [20+esi]
249 add ebx,DWORD [24+esi]
250 add ecx,DWORD [28+esi]
251 mov DWORD [16+esi],edx
252 mov DWORD [20+esi],eax
253 mov DWORD [24+esi],ebx
254 mov DWORD [28+esi],ecx
257 cmp edi,DWORD [8+esp]
259 mov esp,DWORD [12+esp]
267 dd 1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298
268 dd 66051,67438087,134810123,202182159
269 db 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
270 db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
271 db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
272 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
278 mov ebp,DWORD [4+esi]
279 mov ecx,DWORD [8+esi]
280 mov ebx,DWORD [12+esi]
281 mov DWORD [4+esp],ebp
283 mov DWORD [8+esp],ecx
284 mov DWORD [12+esp],ebx
285 mov edx,DWORD [16+esi]
286 mov ebx,DWORD [20+esi]
287 mov ecx,DWORD [24+esi]
288 mov esi,DWORD [28+esi]
289 mov DWORD [20+esp],ebx
290 mov DWORD [24+esp],ecx
291 mov DWORD [28+esp],esi
292 jmp NEAR L
$009grand_loop
296 mov ecx,DWORD [4+edi]
298 mov esi,DWORD [8+edi]
300 mov DWORD [32+esp],ebx
302 mov DWORD [36+esp],ecx
303 mov DWORD [40+esp],esi
304 mov ebx,DWORD [12+edi]
305 mov ecx,DWORD [16+edi]
307 mov esi,DWORD [20+edi]
309 mov DWORD [44+esp],ebx
311 mov DWORD [48+esp],ecx
312 mov DWORD [52+esp],esi
313 mov ebx,DWORD [24+edi]
314 mov ecx,DWORD [28+edi]
316 mov esi,DWORD [32+edi]
318 mov DWORD [56+esp],ebx
320 mov DWORD [60+esp],ecx
321 mov DWORD [64+esp],esi
322 mov ebx,DWORD [36+edi]
323 mov ecx,DWORD [40+edi]
325 mov esi,DWORD [44+edi]
327 mov DWORD [68+esp],ebx
329 mov DWORD [72+esp],ecx
330 mov DWORD [76+esp],esi
331 mov ebx,DWORD [48+edi]
332 mov ecx,DWORD [52+edi]
334 mov esi,DWORD [56+edi]
336 mov DWORD [80+esp],ebx
338 mov DWORD [84+esp],ecx
339 mov DWORD [88+esp],esi
340 mov ebx,DWORD [60+edi]
343 mov DWORD [100+esp],edi
344 mov DWORD [92+esp],ebx
346 mov esi,DWORD [20+esp]
348 mov edi,DWORD [24+esp]
350 mov ebx,DWORD [32+esp]
354 mov DWORD [16+esp],ecx
356 add ebx,DWORD [28+esp]
363 mov edi,DWORD [4+esp]
369 lea edx,[1116352408+edx*1+ebx]
374 add edx,DWORD [12+esp]
377 mov ecx,DWORD [16+esp]
379 mov edi,DWORD [20+esp]
381 mov ebx,DWORD [36+esp]
385 mov DWORD [12+esp],esi
387 add ebx,DWORD [24+esp]
396 mov DWORD [28+esp],ebp
400 lea edx,[1899447441+edx*1+ebx]
405 add edx,DWORD [8+esp]
408 mov esi,DWORD [12+esp]
410 mov edi,DWORD [16+esp]
412 mov ebx,DWORD [40+esp]
416 mov DWORD [8+esp],ecx
418 add ebx,DWORD [20+esp]
425 mov edi,DWORD [28+esp]
427 mov DWORD [24+esp],eax
431 lea edx,[3049323471+edx*1+ebx]
436 add edx,DWORD [4+esp]
439 mov ecx,DWORD [8+esp]
441 mov edi,DWORD [12+esp]
443 mov ebx,DWORD [44+esp]
447 mov DWORD [4+esp],esi
449 add ebx,DWORD [16+esp]
456 mov edi,DWORD [24+esp]
458 mov DWORD [20+esp],ebp
462 lea edx,[3921009573+edx*1+ebx]
470 mov esi,DWORD [4+esp]
472 mov edi,DWORD [8+esp]
474 mov ebx,DWORD [48+esp]
480 add ebx,DWORD [12+esp]
487 mov edi,DWORD [20+esp]
489 mov DWORD [16+esp],eax
493 lea edx,[961987163+edx*1+ebx]
498 add edx,DWORD [28+esp]
503 mov edi,DWORD [4+esp]
505 mov ebx,DWORD [52+esp]
509 mov DWORD [28+esp],esi
511 add ebx,DWORD [8+esp]
518 mov edi,DWORD [16+esp]
520 mov DWORD [12+esp],ebp
524 lea edx,[1508970993+edx*1+ebx]
529 add edx,DWORD [24+esp]
532 mov esi,DWORD [28+esp]
536 mov ebx,DWORD [56+esp]
540 mov DWORD [24+esp],ecx
542 add ebx,DWORD [4+esp]
549 mov edi,DWORD [12+esp]
551 mov DWORD [8+esp],eax
555 lea edx,[2453635748+edx*1+ebx]
560 add edx,DWORD [20+esp]
563 mov ecx,DWORD [24+esp]
565 mov edi,DWORD [28+esp]
567 mov ebx,DWORD [60+esp]
571 mov DWORD [20+esp],esi
580 mov edi,DWORD [8+esp]
582 mov DWORD [4+esp],ebp
586 lea edx,[2870763221+edx*1+ebx]
591 add edx,DWORD [16+esp]
594 mov esi,DWORD [20+esp]
596 mov edi,DWORD [24+esp]
598 mov ebx,DWORD [64+esp]
602 mov DWORD [16+esp],ecx
604 add ebx,DWORD [28+esp]
611 mov edi,DWORD [4+esp]
617 lea edx,[3624381080+edx*1+ebx]
622 add edx,DWORD [12+esp]
625 mov ecx,DWORD [16+esp]
627 mov edi,DWORD [20+esp]
629 mov ebx,DWORD [68+esp]
633 mov DWORD [12+esp],esi
635 add ebx,DWORD [24+esp]
644 mov DWORD [28+esp],ebp
648 lea edx,[310598401+edx*1+ebx]
653 add edx,DWORD [8+esp]
656 mov esi,DWORD [12+esp]
658 mov edi,DWORD [16+esp]
660 mov ebx,DWORD [72+esp]
664 mov DWORD [8+esp],ecx
666 add ebx,DWORD [20+esp]
673 mov edi,DWORD [28+esp]
675 mov DWORD [24+esp],eax
679 lea edx,[607225278+edx*1+ebx]
684 add edx,DWORD [4+esp]
687 mov ecx,DWORD [8+esp]
689 mov edi,DWORD [12+esp]
691 mov ebx,DWORD [76+esp]
695 mov DWORD [4+esp],esi
697 add ebx,DWORD [16+esp]
704 mov edi,DWORD [24+esp]
706 mov DWORD [20+esp],ebp
710 lea edx,[1426881987+edx*1+ebx]
718 mov esi,DWORD [4+esp]
720 mov edi,DWORD [8+esp]
722 mov ebx,DWORD [80+esp]
728 add ebx,DWORD [12+esp]
735 mov edi,DWORD [20+esp]
737 mov DWORD [16+esp],eax
741 lea edx,[1925078388+edx*1+ebx]
746 add edx,DWORD [28+esp]
751 mov edi,DWORD [4+esp]
753 mov ebx,DWORD [84+esp]
757 mov DWORD [28+esp],esi
759 add ebx,DWORD [8+esp]
766 mov edi,DWORD [16+esp]
768 mov DWORD [12+esp],ebp
772 lea edx,[2162078206+edx*1+ebx]
777 add edx,DWORD [24+esp]
780 mov esi,DWORD [28+esp]
784 mov ebx,DWORD [88+esp]
788 mov DWORD [24+esp],ecx
790 add ebx,DWORD [4+esp]
797 mov edi,DWORD [12+esp]
799 mov DWORD [8+esp],eax
803 lea edx,[2614888103+edx*1+ebx]
808 add edx,DWORD [20+esp]
811 mov ecx,DWORD [24+esp]
813 mov edi,DWORD [28+esp]
815 mov ebx,DWORD [92+esp]
819 mov DWORD [20+esp],esi
828 mov edi,DWORD [8+esp]
830 mov DWORD [4+esp],ebp
834 lea edx,[3248222580+edx*1+ebx]
837 mov ecx,DWORD [36+esp]
840 add edx,DWORD [16+esp]
842 mov esi,DWORD [88+esp]
853 add ebx,DWORD [32+esp]
855 add ebx,DWORD [68+esp]
858 mov esi,DWORD [20+esp]
861 mov edi,DWORD [24+esp]
863 mov DWORD [32+esp],ebx
867 mov DWORD [16+esp],ecx
869 add ebx,DWORD [28+esp]
876 mov edi,DWORD [4+esp]
882 lea edx,[3835390401+edx*1+ebx]
885 mov esi,DWORD [40+esp]
888 add edx,DWORD [12+esp]
890 mov ecx,DWORD [92+esp]
901 add ebx,DWORD [36+esp]
903 add ebx,DWORD [72+esp]
906 mov ecx,DWORD [16+esp]
909 mov edi,DWORD [20+esp]
911 mov DWORD [36+esp],ebx
915 mov DWORD [12+esp],esi
917 add ebx,DWORD [24+esp]
926 mov DWORD [28+esp],ebp
930 lea edx,[4022224774+edx*1+ebx]
933 mov ecx,DWORD [44+esp]
936 add edx,DWORD [8+esp]
938 mov esi,DWORD [32+esp]
949 add ebx,DWORD [40+esp]
951 add ebx,DWORD [76+esp]
954 mov esi,DWORD [12+esp]
957 mov edi,DWORD [16+esp]
959 mov DWORD [40+esp],ebx
963 mov DWORD [8+esp],ecx
965 add ebx,DWORD [20+esp]
972 mov edi,DWORD [28+esp]
974 mov DWORD [24+esp],eax
978 lea edx,[264347078+edx*1+ebx]
981 mov esi,DWORD [48+esp]
984 add edx,DWORD [4+esp]
986 mov ecx,DWORD [36+esp]
997 add ebx,DWORD [44+esp]
999 add ebx,DWORD [80+esp]
1002 mov ecx,DWORD [8+esp]
1005 mov edi,DWORD [12+esp]
1007 mov DWORD [44+esp],ebx
1011 mov DWORD [4+esp],esi
1013 add ebx,DWORD [16+esp]
1020 mov edi,DWORD [24+esp]
1022 mov DWORD [20+esp],ebp
1026 lea edx,[604807628+edx*1+ebx]
1029 mov ecx,DWORD [52+esp]
1034 mov esi,DWORD [40+esp]
1045 add ebx,DWORD [48+esp]
1047 add ebx,DWORD [84+esp]
1050 mov esi,DWORD [4+esp]
1053 mov edi,DWORD [8+esp]
1055 mov DWORD [48+esp],ebx
1061 add ebx,DWORD [12+esp]
1068 mov edi,DWORD [20+esp]
1070 mov DWORD [16+esp],eax
1074 lea edx,[770255983+edx*1+ebx]
1077 mov esi,DWORD [56+esp]
1080 add edx,DWORD [28+esp]
1082 mov ecx,DWORD [44+esp]
1093 add ebx,DWORD [52+esp]
1095 add ebx,DWORD [88+esp]
1101 mov edi,DWORD [4+esp]
1103 mov DWORD [52+esp],ebx
1107 mov DWORD [28+esp],esi
1109 add ebx,DWORD [8+esp]
1116 mov edi,DWORD [16+esp]
1118 mov DWORD [12+esp],ebp
1122 lea edx,[1249150122+edx*1+ebx]
1125 mov ecx,DWORD [60+esp]
1128 add edx,DWORD [24+esp]
1130 mov esi,DWORD [48+esp]
1141 add ebx,DWORD [56+esp]
1143 add ebx,DWORD [92+esp]
1146 mov esi,DWORD [28+esp]
1151 mov DWORD [56+esp],ebx
1155 mov DWORD [24+esp],ecx
1157 add ebx,DWORD [4+esp]
1164 mov edi,DWORD [12+esp]
1166 mov DWORD [8+esp],eax
1170 lea edx,[1555081692+edx*1+ebx]
1173 mov esi,DWORD [64+esp]
1176 add edx,DWORD [20+esp]
1178 mov ecx,DWORD [52+esp]
1189 add ebx,DWORD [60+esp]
1191 add ebx,DWORD [32+esp]
1194 mov ecx,DWORD [24+esp]
1197 mov edi,DWORD [28+esp]
1199 mov DWORD [60+esp],ebx
1203 mov DWORD [20+esp],esi
1212 mov edi,DWORD [8+esp]
1214 mov DWORD [4+esp],ebp
1218 lea edx,[1996064986+edx*1+ebx]
1221 mov ecx,DWORD [68+esp]
1224 add edx,DWORD [16+esp]
1226 mov esi,DWORD [56+esp]
1237 add ebx,DWORD [64+esp]
1239 add ebx,DWORD [36+esp]
1242 mov esi,DWORD [20+esp]
1245 mov edi,DWORD [24+esp]
1247 mov DWORD [64+esp],ebx
1251 mov DWORD [16+esp],ecx
1253 add ebx,DWORD [28+esp]
1260 mov edi,DWORD [4+esp]
1266 lea edx,[2554220882+edx*1+ebx]
1269 mov esi,DWORD [72+esp]
1272 add edx,DWORD [12+esp]
1274 mov ecx,DWORD [60+esp]
1285 add ebx,DWORD [68+esp]
1287 add ebx,DWORD [40+esp]
1290 mov ecx,DWORD [16+esp]
1293 mov edi,DWORD [20+esp]
1295 mov DWORD [68+esp],ebx
1299 mov DWORD [12+esp],esi
1301 add ebx,DWORD [24+esp]
1310 mov DWORD [28+esp],ebp
1314 lea edx,[2821834349+edx*1+ebx]
1317 mov ecx,DWORD [76+esp]
1320 add edx,DWORD [8+esp]
1322 mov esi,DWORD [64+esp]
1333 add ebx,DWORD [72+esp]
1335 add ebx,DWORD [44+esp]
1338 mov esi,DWORD [12+esp]
1341 mov edi,DWORD [16+esp]
1343 mov DWORD [72+esp],ebx
1347 mov DWORD [8+esp],ecx
1349 add ebx,DWORD [20+esp]
1356 mov edi,DWORD [28+esp]
1358 mov DWORD [24+esp],eax
1362 lea edx,[2952996808+edx*1+ebx]
1365 mov esi,DWORD [80+esp]
1368 add edx,DWORD [4+esp]
1370 mov ecx,DWORD [68+esp]
1381 add ebx,DWORD [76+esp]
1383 add ebx,DWORD [48+esp]
1386 mov ecx,DWORD [8+esp]
1389 mov edi,DWORD [12+esp]
1391 mov DWORD [76+esp],ebx
1395 mov DWORD [4+esp],esi
1397 add ebx,DWORD [16+esp]
1404 mov edi,DWORD [24+esp]
1406 mov DWORD [20+esp],ebp
1410 lea edx,[3210313671+edx*1+ebx]
1413 mov ecx,DWORD [84+esp]
1418 mov esi,DWORD [72+esp]
1429 add ebx,DWORD [80+esp]
1431 add ebx,DWORD [52+esp]
1434 mov esi,DWORD [4+esp]
1437 mov edi,DWORD [8+esp]
1439 mov DWORD [80+esp],ebx
1445 add ebx,DWORD [12+esp]
1452 mov edi,DWORD [20+esp]
1454 mov DWORD [16+esp],eax
1458 lea edx,[3336571891+edx*1+ebx]
1461 mov esi,DWORD [88+esp]
1464 add edx,DWORD [28+esp]
1466 mov ecx,DWORD [76+esp]
1477 add ebx,DWORD [84+esp]
1479 add ebx,DWORD [56+esp]
1485 mov edi,DWORD [4+esp]
1487 mov DWORD [84+esp],ebx
1491 mov DWORD [28+esp],esi
1493 add ebx,DWORD [8+esp]
1500 mov edi,DWORD [16+esp]
1502 mov DWORD [12+esp],ebp
1506 lea edx,[3584528711+edx*1+ebx]
1509 mov ecx,DWORD [92+esp]
1512 add edx,DWORD [24+esp]
1514 mov esi,DWORD [80+esp]
1525 add ebx,DWORD [88+esp]
1527 add ebx,DWORD [60+esp]
1530 mov esi,DWORD [28+esp]
1535 mov DWORD [88+esp],ebx
1539 mov DWORD [24+esp],ecx
1541 add ebx,DWORD [4+esp]
1548 mov edi,DWORD [12+esp]
1550 mov DWORD [8+esp],eax
1554 lea edx,[113926993+edx*1+ebx]
1557 mov esi,DWORD [32+esp]
1560 add edx,DWORD [20+esp]
1562 mov ecx,DWORD [84+esp]
1573 add ebx,DWORD [92+esp]
1575 add ebx,DWORD [64+esp]
1578 mov ecx,DWORD [24+esp]
1581 mov edi,DWORD [28+esp]
1583 mov DWORD [92+esp],ebx
1587 mov DWORD [20+esp],esi
1596 mov edi,DWORD [8+esp]
1598 mov DWORD [4+esp],ebp
1602 lea edx,[338241895+edx*1+ebx]
1605 mov ecx,DWORD [36+esp]
1608 add edx,DWORD [16+esp]
1610 mov esi,DWORD [88+esp]
1621 add ebx,DWORD [32+esp]
1623 add ebx,DWORD [68+esp]
1626 mov esi,DWORD [20+esp]
1629 mov edi,DWORD [24+esp]
1631 mov DWORD [32+esp],ebx
1635 mov DWORD [16+esp],ecx
1637 add ebx,DWORD [28+esp]
1644 mov edi,DWORD [4+esp]
1650 lea edx,[666307205+edx*1+ebx]
1653 mov esi,DWORD [40+esp]
1656 add edx,DWORD [12+esp]
1658 mov ecx,DWORD [92+esp]
1669 add ebx,DWORD [36+esp]
1671 add ebx,DWORD [72+esp]
1674 mov ecx,DWORD [16+esp]
1677 mov edi,DWORD [20+esp]
1679 mov DWORD [36+esp],ebx
1683 mov DWORD [12+esp],esi
1685 add ebx,DWORD [24+esp]
1694 mov DWORD [28+esp],ebp
1698 lea edx,[773529912+edx*1+ebx]
1701 mov ecx,DWORD [44+esp]
1704 add edx,DWORD [8+esp]
1706 mov esi,DWORD [32+esp]
1717 add ebx,DWORD [40+esp]
1719 add ebx,DWORD [76+esp]
1722 mov esi,DWORD [12+esp]
1725 mov edi,DWORD [16+esp]
1727 mov DWORD [40+esp],ebx
1731 mov DWORD [8+esp],ecx
1733 add ebx,DWORD [20+esp]
1740 mov edi,DWORD [28+esp]
1742 mov DWORD [24+esp],eax
1746 lea edx,[1294757372+edx*1+ebx]
1749 mov esi,DWORD [48+esp]
1752 add edx,DWORD [4+esp]
1754 mov ecx,DWORD [36+esp]
1765 add ebx,DWORD [44+esp]
1767 add ebx,DWORD [80+esp]
1770 mov ecx,DWORD [8+esp]
1773 mov edi,DWORD [12+esp]
1775 mov DWORD [44+esp],ebx
1779 mov DWORD [4+esp],esi
1781 add ebx,DWORD [16+esp]
1788 mov edi,DWORD [24+esp]
1790 mov DWORD [20+esp],ebp
1794 lea edx,[1396182291+edx*1+ebx]
1797 mov ecx,DWORD [52+esp]
1802 mov esi,DWORD [40+esp]
1813 add ebx,DWORD [48+esp]
1815 add ebx,DWORD [84+esp]
1818 mov esi,DWORD [4+esp]
1821 mov edi,DWORD [8+esp]
1823 mov DWORD [48+esp],ebx
1829 add ebx,DWORD [12+esp]
1836 mov edi,DWORD [20+esp]
1838 mov DWORD [16+esp],eax
1842 lea edx,[1695183700+edx*1+ebx]
1845 mov esi,DWORD [56+esp]
1848 add edx,DWORD [28+esp]
1850 mov ecx,DWORD [44+esp]
1861 add ebx,DWORD [52+esp]
1863 add ebx,DWORD [88+esp]
1869 mov edi,DWORD [4+esp]
1871 mov DWORD [52+esp],ebx
1875 mov DWORD [28+esp],esi
1877 add ebx,DWORD [8+esp]
1884 mov edi,DWORD [16+esp]
1886 mov DWORD [12+esp],ebp
1890 lea edx,[1986661051+edx*1+ebx]
1893 mov ecx,DWORD [60+esp]
1896 add edx,DWORD [24+esp]
1898 mov esi,DWORD [48+esp]
1909 add ebx,DWORD [56+esp]
1911 add ebx,DWORD [92+esp]
1914 mov esi,DWORD [28+esp]
1919 mov DWORD [56+esp],ebx
1923 mov DWORD [24+esp],ecx
1925 add ebx,DWORD [4+esp]
1932 mov edi,DWORD [12+esp]
1934 mov DWORD [8+esp],eax
1938 lea edx,[2177026350+edx*1+ebx]
1941 mov esi,DWORD [64+esp]
1944 add edx,DWORD [20+esp]
1946 mov ecx,DWORD [52+esp]
1957 add ebx,DWORD [60+esp]
1959 add ebx,DWORD [32+esp]
1962 mov ecx,DWORD [24+esp]
1965 mov edi,DWORD [28+esp]
1967 mov DWORD [60+esp],ebx
1971 mov DWORD [20+esp],esi
1980 mov edi,DWORD [8+esp]
1982 mov DWORD [4+esp],ebp
1986 lea edx,[2456956037+edx*1+ebx]
1989 mov ecx,DWORD [68+esp]
1992 add edx,DWORD [16+esp]
1994 mov esi,DWORD [56+esp]
2005 add ebx,DWORD [64+esp]
2007 add ebx,DWORD [36+esp]
2010 mov esi,DWORD [20+esp]
2013 mov edi,DWORD [24+esp]
2015 mov DWORD [64+esp],ebx
2019 mov DWORD [16+esp],ecx
2021 add ebx,DWORD [28+esp]
2028 mov edi,DWORD [4+esp]
2034 lea edx,[2730485921+edx*1+ebx]
2037 mov esi,DWORD [72+esp]
2040 add edx,DWORD [12+esp]
2042 mov ecx,DWORD [60+esp]
2053 add ebx,DWORD [68+esp]
2055 add ebx,DWORD [40+esp]
2058 mov ecx,DWORD [16+esp]
2061 mov edi,DWORD [20+esp]
2063 mov DWORD [68+esp],ebx
2067 mov DWORD [12+esp],esi
2069 add ebx,DWORD [24+esp]
2078 mov DWORD [28+esp],ebp
2082 lea edx,[2820302411+edx*1+ebx]
2085 mov ecx,DWORD [76+esp]
2088 add edx,DWORD [8+esp]
2090 mov esi,DWORD [64+esp]
2101 add ebx,DWORD [72+esp]
2103 add ebx,DWORD [44+esp]
2106 mov esi,DWORD [12+esp]
2109 mov edi,DWORD [16+esp]
2111 mov DWORD [72+esp],ebx
2115 mov DWORD [8+esp],ecx
2117 add ebx,DWORD [20+esp]
2124 mov edi,DWORD [28+esp]
2126 mov DWORD [24+esp],eax
2130 lea edx,[3259730800+edx*1+ebx]
2133 mov esi,DWORD [80+esp]
2136 add edx,DWORD [4+esp]
2138 mov ecx,DWORD [68+esp]
2149 add ebx,DWORD [76+esp]
2151 add ebx,DWORD [48+esp]
2154 mov ecx,DWORD [8+esp]
2157 mov edi,DWORD [12+esp]
2159 mov DWORD [76+esp],ebx
2163 mov DWORD [4+esp],esi
2165 add ebx,DWORD [16+esp]
2172 mov edi,DWORD [24+esp]
2174 mov DWORD [20+esp],ebp
2178 lea edx,[3345764771+edx*1+ebx]
2181 mov ecx,DWORD [84+esp]
2186 mov esi,DWORD [72+esp]
2197 add ebx,DWORD [80+esp]
2199 add ebx,DWORD [52+esp]
2202 mov esi,DWORD [4+esp]
2205 mov edi,DWORD [8+esp]
2207 mov DWORD [80+esp],ebx
2213 add ebx,DWORD [12+esp]
2220 mov edi,DWORD [20+esp]
2222 mov DWORD [16+esp],eax
2226 lea edx,[3516065817+edx*1+ebx]
2229 mov esi,DWORD [88+esp]
2232 add edx,DWORD [28+esp]
2234 mov ecx,DWORD [76+esp]
2245 add ebx,DWORD [84+esp]
2247 add ebx,DWORD [56+esp]
2253 mov edi,DWORD [4+esp]
2255 mov DWORD [84+esp],ebx
2259 mov DWORD [28+esp],esi
2261 add ebx,DWORD [8+esp]
2268 mov edi,DWORD [16+esp]
2270 mov DWORD [12+esp],ebp
2274 lea edx,[3600352804+edx*1+ebx]
2277 mov ecx,DWORD [92+esp]
2280 add edx,DWORD [24+esp]
2282 mov esi,DWORD [80+esp]
2293 add ebx,DWORD [88+esp]
2295 add ebx,DWORD [60+esp]
2298 mov esi,DWORD [28+esp]
2303 mov DWORD [88+esp],ebx
2307 mov DWORD [24+esp],ecx
2309 add ebx,DWORD [4+esp]
2316 mov edi,DWORD [12+esp]
2318 mov DWORD [8+esp],eax
2322 lea edx,[4094571909+edx*1+ebx]
2325 mov esi,DWORD [32+esp]
2328 add edx,DWORD [20+esp]
2330 mov ecx,DWORD [84+esp]
2341 add ebx,DWORD [92+esp]
2343 add ebx,DWORD [64+esp]
2346 mov ecx,DWORD [24+esp]
2349 mov edi,DWORD [28+esp]
2351 mov DWORD [92+esp],ebx
2355 mov DWORD [20+esp],esi
2364 mov edi,DWORD [8+esp]
2366 mov DWORD [4+esp],ebp
2370 lea edx,[275423344+edx*1+ebx]
2373 mov ecx,DWORD [36+esp]
2376 add edx,DWORD [16+esp]
2378 mov esi,DWORD [88+esp]
2389 add ebx,DWORD [32+esp]
2391 add ebx,DWORD [68+esp]
2394 mov esi,DWORD [20+esp]
2397 mov edi,DWORD [24+esp]
2399 mov DWORD [32+esp],ebx
2403 mov DWORD [16+esp],ecx
2405 add ebx,DWORD [28+esp]
2412 mov edi,DWORD [4+esp]
2418 lea edx,[430227734+edx*1+ebx]
2421 mov esi,DWORD [40+esp]
2424 add edx,DWORD [12+esp]
2426 mov ecx,DWORD [92+esp]
2437 add ebx,DWORD [36+esp]
2439 add ebx,DWORD [72+esp]
2442 mov ecx,DWORD [16+esp]
2445 mov edi,DWORD [20+esp]
2447 mov DWORD [36+esp],ebx
2451 mov DWORD [12+esp],esi
2453 add ebx,DWORD [24+esp]
2462 mov DWORD [28+esp],ebp
2466 lea edx,[506948616+edx*1+ebx]
2469 mov ecx,DWORD [44+esp]
2472 add edx,DWORD [8+esp]
2474 mov esi,DWORD [32+esp]
2485 add ebx,DWORD [40+esp]
2487 add ebx,DWORD [76+esp]
2490 mov esi,DWORD [12+esp]
2493 mov edi,DWORD [16+esp]
2495 mov DWORD [40+esp],ebx
2499 mov DWORD [8+esp],ecx
2501 add ebx,DWORD [20+esp]
2508 mov edi,DWORD [28+esp]
2510 mov DWORD [24+esp],eax
2514 lea edx,[659060556+edx*1+ebx]
2517 mov esi,DWORD [48+esp]
2520 add edx,DWORD [4+esp]
2522 mov ecx,DWORD [36+esp]
2533 add ebx,DWORD [44+esp]
2535 add ebx,DWORD [80+esp]
2538 mov ecx,DWORD [8+esp]
2541 mov edi,DWORD [12+esp]
2543 mov DWORD [44+esp],ebx
2547 mov DWORD [4+esp],esi
2549 add ebx,DWORD [16+esp]
2556 mov edi,DWORD [24+esp]
2558 mov DWORD [20+esp],ebp
2562 lea edx,[883997877+edx*1+ebx]
2565 mov ecx,DWORD [52+esp]
2570 mov esi,DWORD [40+esp]
2581 add ebx,DWORD [48+esp]
2583 add ebx,DWORD [84+esp]
2586 mov esi,DWORD [4+esp]
2589 mov edi,DWORD [8+esp]
2591 mov DWORD [48+esp],ebx
2597 add ebx,DWORD [12+esp]
2604 mov edi,DWORD [20+esp]
2606 mov DWORD [16+esp],eax
2610 lea edx,[958139571+edx*1+ebx]
2613 mov esi,DWORD [56+esp]
2616 add edx,DWORD [28+esp]
2618 mov ecx,DWORD [44+esp]
2629 add ebx,DWORD [52+esp]
2631 add ebx,DWORD [88+esp]
2637 mov edi,DWORD [4+esp]
2639 mov DWORD [52+esp],ebx
2643 mov DWORD [28+esp],esi
2645 add ebx,DWORD [8+esp]
2652 mov edi,DWORD [16+esp]
2654 mov DWORD [12+esp],ebp
2658 lea edx,[1322822218+edx*1+ebx]
2661 mov ecx,DWORD [60+esp]
2664 add edx,DWORD [24+esp]
2666 mov esi,DWORD [48+esp]
2677 add ebx,DWORD [56+esp]
2679 add ebx,DWORD [92+esp]
2682 mov esi,DWORD [28+esp]
2687 mov DWORD [56+esp],ebx
2691 mov DWORD [24+esp],ecx
2693 add ebx,DWORD [4+esp]
2700 mov edi,DWORD [12+esp]
2702 mov DWORD [8+esp],eax
2706 lea edx,[1537002063+edx*1+ebx]
2709 mov esi,DWORD [64+esp]
2712 add edx,DWORD [20+esp]
2714 mov ecx,DWORD [52+esp]
2725 add ebx,DWORD [60+esp]
2727 add ebx,DWORD [32+esp]
2730 mov ecx,DWORD [24+esp]
2733 mov edi,DWORD [28+esp]
2735 mov DWORD [60+esp],ebx
2739 mov DWORD [20+esp],esi
2748 mov edi,DWORD [8+esp]
2750 mov DWORD [4+esp],ebp
2754 lea edx,[1747873779+edx*1+ebx]
2757 mov ecx,DWORD [68+esp]
2760 add edx,DWORD [16+esp]
2762 mov esi,DWORD [56+esp]
2773 add ebx,DWORD [64+esp]
2775 add ebx,DWORD [36+esp]
2778 mov esi,DWORD [20+esp]
2781 mov edi,DWORD [24+esp]
2783 mov DWORD [64+esp],ebx
2787 mov DWORD [16+esp],ecx
2789 add ebx,DWORD [28+esp]
2796 mov edi,DWORD [4+esp]
2802 lea edx,[1955562222+edx*1+ebx]
2805 mov esi,DWORD [72+esp]
2808 add edx,DWORD [12+esp]
2810 mov ecx,DWORD [60+esp]
2821 add ebx,DWORD [68+esp]
2823 add ebx,DWORD [40+esp]
2826 mov ecx,DWORD [16+esp]
2829 mov edi,DWORD [20+esp]
2831 mov DWORD [68+esp],ebx
2835 mov DWORD [12+esp],esi
2837 add ebx,DWORD [24+esp]
2846 mov DWORD [28+esp],ebp
2850 lea edx,[2024104815+edx*1+ebx]
2853 mov ecx,DWORD [76+esp]
2856 add edx,DWORD [8+esp]
2858 mov esi,DWORD [64+esp]
2869 add ebx,DWORD [72+esp]
2871 add ebx,DWORD [44+esp]
2874 mov esi,DWORD [12+esp]
2877 mov edi,DWORD [16+esp]
2879 mov DWORD [72+esp],ebx
2883 mov DWORD [8+esp],ecx
2885 add ebx,DWORD [20+esp]
2892 mov edi,DWORD [28+esp]
2894 mov DWORD [24+esp],eax
2898 lea edx,[2227730452+edx*1+ebx]
2901 mov esi,DWORD [80+esp]
2904 add edx,DWORD [4+esp]
2906 mov ecx,DWORD [68+esp]
2917 add ebx,DWORD [76+esp]
2919 add ebx,DWORD [48+esp]
2922 mov ecx,DWORD [8+esp]
2925 mov edi,DWORD [12+esp]
2927 mov DWORD [76+esp],ebx
2931 mov DWORD [4+esp],esi
2933 add ebx,DWORD [16+esp]
2940 mov edi,DWORD [24+esp]
2942 mov DWORD [20+esp],ebp
2946 lea edx,[2361852424+edx*1+ebx]
2949 mov ecx,DWORD [84+esp]
2954 mov esi,DWORD [72+esp]
2965 add ebx,DWORD [80+esp]
2967 add ebx,DWORD [52+esp]
2970 mov esi,DWORD [4+esp]
2973 mov edi,DWORD [8+esp]
2975 mov DWORD [80+esp],ebx
2981 add ebx,DWORD [12+esp]
2988 mov edi,DWORD [20+esp]
2990 mov DWORD [16+esp],eax
2994 lea edx,[2428436474+edx*1+ebx]
2997 mov esi,DWORD [88+esp]
3000 add edx,DWORD [28+esp]
3002 mov ecx,DWORD [76+esp]
3013 add ebx,DWORD [84+esp]
3015 add ebx,DWORD [56+esp]
3021 mov edi,DWORD [4+esp]
3023 mov DWORD [84+esp],ebx
3027 mov DWORD [28+esp],esi
3029 add ebx,DWORD [8+esp]
3036 mov edi,DWORD [16+esp]
3038 mov DWORD [12+esp],ebp
3042 lea edx,[2756734187+edx*1+ebx]
3045 mov ecx,DWORD [92+esp]
3048 add edx,DWORD [24+esp]
3050 mov esi,DWORD [80+esp]
3061 add ebx,DWORD [88+esp]
3063 add ebx,DWORD [60+esp]
3066 mov esi,DWORD [28+esp]
3074 mov DWORD [24+esp],ecx
3076 add ebx,DWORD [4+esp]
3083 mov edi,DWORD [12+esp]
3085 mov DWORD [8+esp],eax
3089 lea edx,[3204031479+edx*1+ebx]
3092 mov esi,DWORD [32+esp]
3095 add edx,DWORD [20+esp]
3097 mov ecx,DWORD [84+esp]
3108 add ebx,DWORD [92+esp]
3110 add ebx,DWORD [64+esp]
3113 mov ecx,DWORD [24+esp]
3116 mov edi,DWORD [28+esp]
3121 mov DWORD [20+esp],esi
3130 mov edi,DWORD [8+esp]
3132 mov DWORD [4+esp],ebp
3136 lea edx,[3329325298+edx*1+ebx]
3141 add edx,DWORD [16+esp]
3143 mov esi,DWORD [96+esp]
3145 mov ecx,DWORD [12+esp]
3147 add ebp,DWORD [4+esi]
3148 add edi,DWORD [8+esi]
3149 add ecx,DWORD [12+esi]
3151 mov DWORD [4+esi],ebp
3152 mov DWORD [8+esi],edi
3153 mov DWORD [12+esi],ecx
3154 mov DWORD [4+esp],ebp
3156 mov DWORD [8+esp],edi
3157 mov DWORD [12+esp],ecx
3158 mov edi,DWORD [20+esp]
3159 mov ebx,DWORD [24+esp]
3160 mov ecx,DWORD [28+esp]
3161 add edx,DWORD [16+esi]
3162 add edi,DWORD [20+esi]
3163 add ebx,DWORD [24+esi]
3164 add ecx,DWORD [28+esi]
3165 mov DWORD [16+esi],edx
3166 mov DWORD [20+esi],edi
3167 mov DWORD [24+esi],ebx
3168 mov DWORD [28+esi],ecx
3169 mov DWORD [20+esp],edi
3170 mov edi,DWORD [100+esp]
3171 mov DWORD [24+esp],ebx
3172 mov DWORD [28+esp],ecx
3173 cmp edi,DWORD [104+esp]
3174 jb NEAR L
$009grand_loop
3175 mov esp,DWORD [108+esp]
3186 movdqu xmm2
,[16+esi]
3187 movdqa xmm7
,[128+ebp]
3189 pshufd xmm1
,xmm1
,177
3191 db 102,15,58,15,202,8
3192 punpcklqdq xmm2
,xmm0
3193 jmp NEAR L
$010loop_shaext
3197 movdqu xmm4
,[16+edi]
3198 movdqu xmm5
,[32+edi]
3200 movdqu xmm6
,[48+edi]
3201 movdqa
[16+esp],xmm2
3202 movdqa xmm0
,[ebp-128]
3210 movdqa xmm0
,[ebp-112]
3218 movdqa xmm0
,[ebp-96]
3224 db 102,15,58,15,253,4
3229 movdqa xmm0
,[ebp-80]
3235 db 102,15,58,15,254,4
3240 movdqa xmm0
,[ebp-64]
3246 db 102,15,58,15,251,4
3251 movdqa xmm0
,[ebp-48]
3257 db 102,15,58,15,252,4
3262 movdqa xmm0
,[ebp-32]
3268 db 102,15,58,15,253,4
3273 movdqa xmm0
,[ebp-16]
3279 db 102,15,58,15,254,4
3290 db 102,15,58,15,251,4
3295 movdqa xmm0
,[16+ebp]
3301 db 102,15,58,15,252,4
3306 movdqa xmm0
,[32+ebp]
3312 db 102,15,58,15,253,4
3317 movdqa xmm0
,[48+ebp]
3323 db 102,15,58,15,254,4
3328 movdqa xmm0
,[64+ebp]
3334 db 102,15,58,15,251,4
3339 movdqa xmm0
,[80+ebp]
3345 db 102,15,58,15,252,4
3348 movdqa xmm0
,[96+ebp]
3353 movdqa xmm7
,[128+ebp]
3355 movdqa xmm0
,[112+ebp]
3365 jnz NEAR L
$010loop_shaext
3366 pshufd xmm2
,xmm2
,177
3368 pshufd xmm1
,xmm1
,177
3369 punpckhqdq xmm1
,xmm2
3370 db 102,15,58,15,215,8
3371 mov esp,DWORD [44+esp]
3373 movdqu
[16+esi],xmm2
3383 mov ebx,DWORD [4+esi]
3384 mov ecx,DWORD [8+esi]
3385 mov edi,DWORD [12+esi]
3386 mov DWORD [4+esp],ebx
3388 mov DWORD [8+esp],ecx
3389 mov DWORD [12+esp],edi
3390 mov edx,DWORD [16+esi]
3391 mov edi,DWORD [20+esi]
3392 mov ecx,DWORD [24+esi]
3393 mov esi,DWORD [28+esi]
3394 mov DWORD [20+esp],edi
3395 mov edi,DWORD [100+esp]
3396 mov DWORD [24+esp],ecx
3397 mov DWORD [28+esp],esi
3398 movdqa xmm7
,[256+ebp]
3399 jmp NEAR L
$011grand_ssse3
3403 movdqu xmm1
,[16+edi]
3404 movdqu xmm2
,[32+edi]
3405 movdqu xmm3
,[48+edi]
3408 mov DWORD [100+esp],edi
3412 movdqa xmm5
,[16+ebp]
3415 movdqa xmm6
,[32+ebp]
3417 movdqa xmm7
,[48+ebp]
3418 movdqa
[32+esp],xmm4
3420 movdqa
[48+esp],xmm5
3422 movdqa
[64+esp],xmm6
3423 movdqa
[80+esp],xmm7
3424 jmp NEAR L
$012ssse3_00_47
3431 mov esi,DWORD [20+esp]
3434 mov edi,DWORD [24+esp]
3435 db 102,15,58,15,224,4
3439 db 102,15,58,15,250,4
3440 mov DWORD [16+esp],ecx
3448 mov edi,DWORD [4+esp]
3457 add edx,DWORD [28+esp]
3460 pshufd xmm7
,xmm3
,250
3462 add edx,DWORD [32+esp]
3468 add edx,DWORD [12+esp]
3474 mov esi,DWORD [16+esp]
3477 mov edi,DWORD [20+esp]
3482 mov DWORD [12+esp],ecx
3495 mov DWORD [28+esp],ebx
3499 add edx,DWORD [24+esp]
3505 add edx,DWORD [36+esp]
3510 add edx,DWORD [8+esp]
3511 pshufd xmm7
,xmm7
,128
3515 mov esi,DWORD [12+esp]
3517 mov edi,DWORD [16+esp]
3522 mov DWORD [8+esp],ecx
3529 mov edi,DWORD [28+esp]
3532 mov DWORD [24+esp],eax
3536 add edx,DWORD [20+esp]
3543 add edx,DWORD [40+esp]
3548 add edx,DWORD [4+esp]
3554 mov esi,DWORD [8+esp]
3556 mov edi,DWORD [12+esp]
3562 mov DWORD [4+esp],ecx
3569 mov edi,DWORD [24+esp]
3573 mov DWORD [20+esp],ebx
3576 add edx,DWORD [16+esp]
3581 add edx,DWORD [44+esp]
3587 movdqa
[32+esp],xmm6
3591 mov esi,DWORD [4+esp]
3594 mov edi,DWORD [8+esp]
3595 db 102,15,58,15,225,4
3599 db 102,15,58,15,251,4
3608 mov edi,DWORD [20+esp]
3613 mov DWORD [16+esp],eax
3617 add edx,DWORD [12+esp]
3620 pshufd xmm7
,xmm0
,250
3622 add edx,DWORD [48+esp]
3628 add edx,DWORD [28+esp]
3637 mov edi,DWORD [4+esp]
3642 mov DWORD [28+esp],ecx
3651 mov edi,DWORD [16+esp]
3655 mov DWORD [12+esp],ebx
3659 add edx,DWORD [8+esp]
3665 add edx,DWORD [52+esp]
3670 add edx,DWORD [24+esp]
3671 pshufd xmm7
,xmm7
,128
3675 mov esi,DWORD [28+esp]
3682 mov DWORD [24+esp],ecx
3689 mov edi,DWORD [12+esp]
3692 mov DWORD [8+esp],eax
3696 add edx,DWORD [4+esp]
3703 add edx,DWORD [56+esp]
3708 add edx,DWORD [20+esp]
3714 mov esi,DWORD [24+esp]
3716 mov edi,DWORD [28+esp]
3720 movdqa xmm6
,[16+ebp]
3722 mov DWORD [20+esp],ecx
3729 mov edi,DWORD [8+esp]
3733 mov DWORD [4+esp],ebx
3741 add edx,DWORD [60+esp]
3745 add edx,DWORD [16+esp]
3747 movdqa
[48+esp],xmm6
3751 mov esi,DWORD [20+esp]
3754 mov edi,DWORD [24+esp]
3755 db 102,15,58,15,226,4
3759 db 102,15,58,15,248,4
3760 mov DWORD [16+esp],ecx
3768 mov edi,DWORD [4+esp]
3777 add edx,DWORD [28+esp]
3780 pshufd xmm7
,xmm1
,250
3782 add edx,DWORD [64+esp]
3788 add edx,DWORD [12+esp]
3794 mov esi,DWORD [16+esp]
3797 mov edi,DWORD [20+esp]
3802 mov DWORD [12+esp],ecx
3815 mov DWORD [28+esp],ebx
3819 add edx,DWORD [24+esp]
3825 add edx,DWORD [68+esp]
3830 add edx,DWORD [8+esp]
3831 pshufd xmm7
,xmm7
,128
3835 mov esi,DWORD [12+esp]
3837 mov edi,DWORD [16+esp]
3842 mov DWORD [8+esp],ecx
3849 mov edi,DWORD [28+esp]
3852 mov DWORD [24+esp],eax
3856 add edx,DWORD [20+esp]
3863 add edx,DWORD [72+esp]
3868 add edx,DWORD [4+esp]
3874 mov esi,DWORD [8+esp]
3876 mov edi,DWORD [12+esp]
3880 movdqa xmm6
,[32+ebp]
3882 mov DWORD [4+esp],ecx
3889 mov edi,DWORD [24+esp]
3893 mov DWORD [20+esp],ebx
3896 add edx,DWORD [16+esp]
3901 add edx,DWORD [76+esp]
3907 movdqa
[64+esp],xmm6
3911 mov esi,DWORD [4+esp]
3914 mov edi,DWORD [8+esp]
3915 db 102,15,58,15,227,4
3919 db 102,15,58,15,249,4
3928 mov edi,DWORD [20+esp]
3933 mov DWORD [16+esp],eax
3937 add edx,DWORD [12+esp]
3940 pshufd xmm7
,xmm2
,250
3942 add edx,DWORD [80+esp]
3948 add edx,DWORD [28+esp]
3957 mov edi,DWORD [4+esp]
3962 mov DWORD [28+esp],ecx
3971 mov edi,DWORD [16+esp]
3975 mov DWORD [12+esp],ebx
3979 add edx,DWORD [8+esp]
3985 add edx,DWORD [84+esp]
3990 add edx,DWORD [24+esp]
3991 pshufd xmm7
,xmm7
,128
3995 mov esi,DWORD [28+esp]
4002 mov DWORD [24+esp],ecx
4009 mov edi,DWORD [12+esp]
4012 mov DWORD [8+esp],eax
4016 add edx,DWORD [4+esp]
4023 add edx,DWORD [88+esp]
4028 add edx,DWORD [20+esp]
4034 mov esi,DWORD [24+esp]
4036 mov edi,DWORD [28+esp]
4040 movdqa xmm6
,[48+ebp]
4042 mov DWORD [20+esp],ecx
4049 mov edi,DWORD [8+esp]
4053 mov DWORD [4+esp],ebx
4061 add edx,DWORD [92+esp]
4065 add edx,DWORD [16+esp]
4067 movdqa
[80+esp],xmm6
4068 cmp DWORD [64+ebp],66051
4069 jne NEAR L
$012ssse3_00_47
4072 mov esi,DWORD [20+esp]
4074 mov edi,DWORD [24+esp]
4078 mov DWORD [16+esp],ecx
4084 mov edi,DWORD [4+esp]
4090 add edx,DWORD [28+esp]
4094 add edx,DWORD [32+esp]
4098 add edx,DWORD [12+esp]
4102 mov esi,DWORD [16+esp]
4104 mov edi,DWORD [20+esp]
4108 mov DWORD [12+esp],ecx
4117 mov DWORD [28+esp],ebx
4120 add edx,DWORD [24+esp]
4124 add edx,DWORD [36+esp]
4128 add edx,DWORD [8+esp]
4132 mov esi,DWORD [12+esp]
4134 mov edi,DWORD [16+esp]
4138 mov DWORD [8+esp],ecx
4144 mov edi,DWORD [28+esp]
4147 mov DWORD [24+esp],eax
4150 add edx,DWORD [20+esp]
4154 add edx,DWORD [40+esp]
4158 add edx,DWORD [4+esp]
4162 mov esi,DWORD [8+esp]
4164 mov edi,DWORD [12+esp]
4168 mov DWORD [4+esp],ecx
4174 mov edi,DWORD [24+esp]
4177 mov DWORD [20+esp],ebx
4180 add edx,DWORD [16+esp]
4184 add edx,DWORD [44+esp]
4192 mov esi,DWORD [4+esp]
4194 mov edi,DWORD [8+esp]
4204 mov edi,DWORD [20+esp]
4207 mov DWORD [16+esp],eax
4210 add edx,DWORD [12+esp]
4214 add edx,DWORD [48+esp]
4218 add edx,DWORD [28+esp]
4224 mov edi,DWORD [4+esp]
4228 mov DWORD [28+esp],ecx
4234 mov edi,DWORD [16+esp]
4237 mov DWORD [12+esp],ebx
4240 add edx,DWORD [8+esp]
4244 add edx,DWORD [52+esp]
4248 add edx,DWORD [24+esp]
4252 mov esi,DWORD [28+esp]
4258 mov DWORD [24+esp],ecx
4264 mov edi,DWORD [12+esp]
4267 mov DWORD [8+esp],eax
4270 add edx,DWORD [4+esp]
4274 add edx,DWORD [56+esp]
4278 add edx,DWORD [20+esp]
4282 mov esi,DWORD [24+esp]
4284 mov edi,DWORD [28+esp]
4288 mov DWORD [20+esp],ecx
4294 mov edi,DWORD [8+esp]
4297 mov DWORD [4+esp],ebx
4304 add edx,DWORD [60+esp]
4308 add edx,DWORD [16+esp]
4312 mov esi,DWORD [20+esp]
4314 mov edi,DWORD [24+esp]
4318 mov DWORD [16+esp],ecx
4324 mov edi,DWORD [4+esp]
4330 add edx,DWORD [28+esp]
4334 add edx,DWORD [64+esp]
4338 add edx,DWORD [12+esp]
4342 mov esi,DWORD [16+esp]
4344 mov edi,DWORD [20+esp]
4348 mov DWORD [12+esp],ecx
4357 mov DWORD [28+esp],ebx
4360 add edx,DWORD [24+esp]
4364 add edx,DWORD [68+esp]
4368 add edx,DWORD [8+esp]
4372 mov esi,DWORD [12+esp]
4374 mov edi,DWORD [16+esp]
4378 mov DWORD [8+esp],ecx
4384 mov edi,DWORD [28+esp]
4387 mov DWORD [24+esp],eax
4390 add edx,DWORD [20+esp]
4394 add edx,DWORD [72+esp]
4398 add edx,DWORD [4+esp]
4402 mov esi,DWORD [8+esp]
4404 mov edi,DWORD [12+esp]
4408 mov DWORD [4+esp],ecx
4414 mov edi,DWORD [24+esp]
4417 mov DWORD [20+esp],ebx
4420 add edx,DWORD [16+esp]
4424 add edx,DWORD [76+esp]
4432 mov esi,DWORD [4+esp]
4434 mov edi,DWORD [8+esp]
4444 mov edi,DWORD [20+esp]
4447 mov DWORD [16+esp],eax
4450 add edx,DWORD [12+esp]
4454 add edx,DWORD [80+esp]
4458 add edx,DWORD [28+esp]
4464 mov edi,DWORD [4+esp]
4468 mov DWORD [28+esp],ecx
4474 mov edi,DWORD [16+esp]
4477 mov DWORD [12+esp],ebx
4480 add edx,DWORD [8+esp]
4484 add edx,DWORD [84+esp]
4488 add edx,DWORD [24+esp]
4492 mov esi,DWORD [28+esp]
4498 mov DWORD [24+esp],ecx
4504 mov edi,DWORD [12+esp]
4507 mov DWORD [8+esp],eax
4510 add edx,DWORD [4+esp]
4514 add edx,DWORD [88+esp]
4518 add edx,DWORD [20+esp]
4522 mov esi,DWORD [24+esp]
4524 mov edi,DWORD [28+esp]
4528 mov DWORD [20+esp],ecx
4534 mov edi,DWORD [8+esp]
4537 mov DWORD [4+esp],ebx
4544 add edx,DWORD [92+esp]
4548 add edx,DWORD [16+esp]
4550 mov esi,DWORD [96+esp]
4552 mov ecx,DWORD [12+esp]
4554 add ebx,DWORD [4+esi]
4555 add edi,DWORD [8+esi]
4556 add ecx,DWORD [12+esi]
4558 mov DWORD [4+esi],ebx
4559 mov DWORD [8+esi],edi
4560 mov DWORD [12+esi],ecx
4561 mov DWORD [4+esp],ebx
4563 mov DWORD [8+esp],edi
4564 mov DWORD [12+esp],ecx
4565 mov edi,DWORD [20+esp]
4566 mov ecx,DWORD [24+esp]
4567 add edx,DWORD [16+esi]
4568 add edi,DWORD [20+esi]
4569 add ecx,DWORD [24+esi]
4570 mov DWORD [16+esi],edx
4571 mov DWORD [20+esi],edi
4572 mov DWORD [20+esp],edi
4573 mov edi,DWORD [28+esp]
4574 mov DWORD [24+esi],ecx
4575 add edi,DWORD [28+esi]
4576 mov DWORD [24+esp],ecx
4577 mov DWORD [28+esi],edi
4578 mov DWORD [28+esp],edi
4579 mov edi,DWORD [100+esp]
4580 movdqa xmm7
,[64+ebp]
4582 cmp edi,DWORD [104+esp]
4583 jb NEAR L
$011grand_ssse3
4584 mov esp,DWORD [108+esp]
4591 common _OPENSSL_ia32cap_P
16