Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(526)

Side by Side Diff: third_party/boringssl/win-x86/crypto/sha/sha256-586.asm

Issue 2811393005: Roll src/third_party/boringssl/src c8ff30cbe..bc6a76b0e (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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.
7 %endif
8 ; Yasm automatically includes .00 and complains about redefining it.
9 ; https://www.tortall.net/projects/yasm/manual/html/objfmt-win32-safeseh.html
10 %else
11 $@feat.00 equ 1
12 %endif
13 section .text code align=64
14 %else
15 section .text code
16 %endif
17 ;extern _OPENSSL_ia32cap_P
18 global _sha256_block_data_order
19 align 16
20 _sha256_block_data_order:
21 L$_sha256_block_data_order_begin:
22 push ebp
23 push ebx
24 push esi
25 push edi
26 mov esi,DWORD [20+esp]
27 mov edi,DWORD [24+esp]
28 mov eax,DWORD [28+esp]
29 mov ebx,esp
30 call L$000pic_point
31 L$000pic_point:
32 pop ebp
33 lea ebp,[(L$001K256-L$000pic_point)+ebp]
34 sub esp,16
35 and esp,-64
36 shl eax,6
37 add eax,edi
38 mov DWORD [esp],esi
39 mov DWORD [4+esp],edi
40 mov DWORD [8+esp],eax
41 mov DWORD [12+esp],ebx
42 lea edx,[_OPENSSL_ia32cap_P]
43 mov ecx,DWORD [edx]
44 mov ebx,DWORD [4+edx]
45 test ecx,1048576
46 jnz NEAR L$002loop
47 mov edx,DWORD [8+edx]
48 test ecx,16777216
49 jz NEAR L$003no_xmm
50 and ecx,1073741824
51 and ebx,268435968
52 or ecx,ebx
53 and ecx,1342177280
54 cmp ecx,1342177280
55 je NEAR L$004AVX
56 test ebx,512
57 jnz NEAR L$005SSSE3
58 L$003no_xmm:
59 sub eax,edi
60 cmp eax,256
61 jae NEAR L$006unrolled
62 jmp NEAR L$002loop
63 align 16
64 L$002loop:
65 mov eax,DWORD [edi]
66 mov ebx,DWORD [4+edi]
67 mov ecx,DWORD [8+edi]
68 bswap eax
69 mov edx,DWORD [12+edi]
70 bswap ebx
71 push eax
72 bswap ecx
73 push ebx
74 bswap edx
75 push ecx
76 push edx
77 mov eax,DWORD [16+edi]
78 mov ebx,DWORD [20+edi]
79 mov ecx,DWORD [24+edi]
80 bswap eax
81 mov edx,DWORD [28+edi]
82 bswap ebx
83 push eax
84 bswap ecx
85 push ebx
86 bswap edx
87 push ecx
88 push edx
89 mov eax,DWORD [32+edi]
90 mov ebx,DWORD [36+edi]
91 mov ecx,DWORD [40+edi]
92 bswap eax
93 mov edx,DWORD [44+edi]
94 bswap ebx
95 push eax
96 bswap ecx
97 push ebx
98 bswap edx
99 push ecx
100 push edx
101 mov eax,DWORD [48+edi]
102 mov ebx,DWORD [52+edi]
103 mov ecx,DWORD [56+edi]
104 bswap eax
105 mov edx,DWORD [60+edi]
106 bswap ebx
107 push eax
108 bswap ecx
109 push ebx
110 bswap edx
111 push ecx
112 push edx
113 add edi,64
114 lea esp,[esp-36]
115 mov DWORD [104+esp],edi
116 mov eax,DWORD [esi]
117 mov ebx,DWORD [4+esi]
118 mov ecx,DWORD [8+esi]
119 mov edi,DWORD [12+esi]
120 mov DWORD [8+esp],ebx
121 xor ebx,ecx
122 mov DWORD [12+esp],ecx
123 mov DWORD [16+esp],edi
124 mov DWORD [esp],ebx
125 mov edx,DWORD [16+esi]
126 mov ebx,DWORD [20+esi]
127 mov ecx,DWORD [24+esi]
128 mov edi,DWORD [28+esi]
129 mov DWORD [24+esp],ebx
130 mov DWORD [28+esp],ecx
131 mov DWORD [32+esp],edi
132 align 16
133 L$00700_15:
134 mov ecx,edx
135 mov esi,DWORD [24+esp]
136 ror ecx,14
137 mov edi,DWORD [28+esp]
138 xor ecx,edx
139 xor esi,edi
140 mov ebx,DWORD [96+esp]
141 ror ecx,5
142 and esi,edx
143 mov DWORD [20+esp],edx
144 xor edx,ecx
145 add ebx,DWORD [32+esp]
146 xor esi,edi
147 ror edx,6
148 mov ecx,eax
149 add ebx,esi
150 ror ecx,9
151 add ebx,edx
152 mov edi,DWORD [8+esp]
153 xor ecx,eax
154 mov DWORD [4+esp],eax
155 lea esp,[esp-4]
156 ror ecx,11
157 mov esi,DWORD [ebp]
158 xor ecx,eax
159 mov edx,DWORD [20+esp]
160 xor eax,edi
161 ror ecx,2
162 add ebx,esi
163 mov DWORD [esp],eax
164 add edx,ebx
165 and eax,DWORD [4+esp]
166 add ebx,ecx
167 xor eax,edi
168 add ebp,4
169 add eax,ebx
170 cmp esi,3248222580
171 jne NEAR L$00700_15
172 mov ecx,DWORD [156+esp]
173 jmp NEAR L$00816_63
174 align 16
175 L$00816_63:
176 mov ebx,ecx
177 mov esi,DWORD [104+esp]
178 ror ecx,11
179 mov edi,esi
180 ror esi,2
181 xor ecx,ebx
182 shr ebx,3
183 ror ecx,7
184 xor esi,edi
185 xor ebx,ecx
186 ror esi,17
187 add ebx,DWORD [160+esp]
188 shr edi,10
189 add ebx,DWORD [124+esp]
190 mov ecx,edx
191 xor edi,esi
192 mov esi,DWORD [24+esp]
193 ror ecx,14
194 add ebx,edi
195 mov edi,DWORD [28+esp]
196 xor ecx,edx
197 xor esi,edi
198 mov DWORD [96+esp],ebx
199 ror ecx,5
200 and esi,edx
201 mov DWORD [20+esp],edx
202 xor edx,ecx
203 add ebx,DWORD [32+esp]
204 xor esi,edi
205 ror edx,6
206 mov ecx,eax
207 add ebx,esi
208 ror ecx,9
209 add ebx,edx
210 mov edi,DWORD [8+esp]
211 xor ecx,eax
212 mov DWORD [4+esp],eax
213 lea esp,[esp-4]
214 ror ecx,11
215 mov esi,DWORD [ebp]
216 xor ecx,eax
217 mov edx,DWORD [20+esp]
218 xor eax,edi
219 ror ecx,2
220 add ebx,esi
221 mov DWORD [esp],eax
222 add edx,ebx
223 and eax,DWORD [4+esp]
224 add ebx,ecx
225 xor eax,edi
226 mov ecx,DWORD [156+esp]
227 add ebp,4
228 add eax,ebx
229 cmp esi,3329325298
230 jne NEAR L$00816_63
231 mov esi,DWORD [356+esp]
232 mov ebx,DWORD [8+esp]
233 mov ecx,DWORD [16+esp]
234 add eax,DWORD [esi]
235 add ebx,DWORD [4+esi]
236 add edi,DWORD [8+esi]
237 add ecx,DWORD [12+esi]
238 mov DWORD [esi],eax
239 mov DWORD [4+esi],ebx
240 mov DWORD [8+esi],edi
241 mov DWORD [12+esi],ecx
242 mov eax,DWORD [24+esp]
243 mov ebx,DWORD [28+esp]
244 mov ecx,DWORD [32+esp]
245 mov edi,DWORD [360+esp]
246 add edx,DWORD [16+esi]
247 add eax,DWORD [20+esi]
248 add ebx,DWORD [24+esi]
249 add ecx,DWORD [28+esi]
250 mov DWORD [16+esi],edx
251 mov DWORD [20+esi],eax
252 mov DWORD [24+esi],ebx
253 mov DWORD [28+esi],ecx
254 lea esp,[356+esp]
255 sub ebp,256
256 cmp edi,DWORD [8+esp]
257 jb NEAR L$002loop
258 mov esp,DWORD [12+esp]
259 pop edi
260 pop esi
261 pop ebx
262 pop ebp
263 ret
264 align 64
265 L$001K256:
266 dd 1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635 748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2 614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150 122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891 ,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,169518 3700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,334576477 1,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,88399 7877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452 ,2361852424,2428436474,2756734187,3204031479,3329325298
267 dd 66051,67438087,134810123,202182159
268 db 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
269 db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
270 db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
271 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
272 db 62,0
273 align 16
274 L$006unrolled:
275 lea esp,[esp-96]
276 mov eax,DWORD [esi]
277 mov ebp,DWORD [4+esi]
278 mov ecx,DWORD [8+esi]
279 mov ebx,DWORD [12+esi]
280 mov DWORD [4+esp],ebp
281 xor ebp,ecx
282 mov DWORD [8+esp],ecx
283 mov DWORD [12+esp],ebx
284 mov edx,DWORD [16+esi]
285 mov ebx,DWORD [20+esi]
286 mov ecx,DWORD [24+esi]
287 mov esi,DWORD [28+esi]
288 mov DWORD [20+esp],ebx
289 mov DWORD [24+esp],ecx
290 mov DWORD [28+esp],esi
291 jmp NEAR L$009grand_loop
292 align 16
293 L$009grand_loop:
294 mov ebx,DWORD [edi]
295 mov ecx,DWORD [4+edi]
296 bswap ebx
297 mov esi,DWORD [8+edi]
298 bswap ecx
299 mov DWORD [32+esp],ebx
300 bswap esi
301 mov DWORD [36+esp],ecx
302 mov DWORD [40+esp],esi
303 mov ebx,DWORD [12+edi]
304 mov ecx,DWORD [16+edi]
305 bswap ebx
306 mov esi,DWORD [20+edi]
307 bswap ecx
308 mov DWORD [44+esp],ebx
309 bswap esi
310 mov DWORD [48+esp],ecx
311 mov DWORD [52+esp],esi
312 mov ebx,DWORD [24+edi]
313 mov ecx,DWORD [28+edi]
314 bswap ebx
315 mov esi,DWORD [32+edi]
316 bswap ecx
317 mov DWORD [56+esp],ebx
318 bswap esi
319 mov DWORD [60+esp],ecx
320 mov DWORD [64+esp],esi
321 mov ebx,DWORD [36+edi]
322 mov ecx,DWORD [40+edi]
323 bswap ebx
324 mov esi,DWORD [44+edi]
325 bswap ecx
326 mov DWORD [68+esp],ebx
327 bswap esi
328 mov DWORD [72+esp],ecx
329 mov DWORD [76+esp],esi
330 mov ebx,DWORD [48+edi]
331 mov ecx,DWORD [52+edi]
332 bswap ebx
333 mov esi,DWORD [56+edi]
334 bswap ecx
335 mov DWORD [80+esp],ebx
336 bswap esi
337 mov DWORD [84+esp],ecx
338 mov DWORD [88+esp],esi
339 mov ebx,DWORD [60+edi]
340 add edi,64
341 bswap ebx
342 mov DWORD [100+esp],edi
343 mov DWORD [92+esp],ebx
344 mov ecx,edx
345 mov esi,DWORD [20+esp]
346 ror edx,14
347 mov edi,DWORD [24+esp]
348 xor edx,ecx
349 mov ebx,DWORD [32+esp]
350 xor esi,edi
351 ror edx,5
352 and esi,ecx
353 mov DWORD [16+esp],ecx
354 xor edx,ecx
355 add ebx,DWORD [28+esp]
356 xor edi,esi
357 ror edx,6
358 mov ecx,eax
359 add ebx,edi
360 ror ecx,9
361 mov esi,eax
362 mov edi,DWORD [4+esp]
363 xor ecx,eax
364 mov DWORD [esp],eax
365 xor eax,edi
366 ror ecx,11
367 and ebp,eax
368 lea edx,[1116352408+edx*1+ebx]
369 xor ecx,esi
370 xor ebp,edi
371 ror ecx,2
372 add ebp,edx
373 add edx,DWORD [12+esp]
374 add ebp,ecx
375 mov esi,edx
376 mov ecx,DWORD [16+esp]
377 ror edx,14
378 mov edi,DWORD [20+esp]
379 xor edx,esi
380 mov ebx,DWORD [36+esp]
381 xor ecx,edi
382 ror edx,5
383 and ecx,esi
384 mov DWORD [12+esp],esi
385 xor edx,esi
386 add ebx,DWORD [24+esp]
387 xor edi,ecx
388 ror edx,6
389 mov esi,ebp
390 add ebx,edi
391 ror esi,9
392 mov ecx,ebp
393 mov edi,DWORD [esp]
394 xor esi,ebp
395 mov DWORD [28+esp],ebp
396 xor ebp,edi
397 ror esi,11
398 and eax,ebp
399 lea edx,[1899447441+edx*1+ebx]
400 xor esi,ecx
401 xor eax,edi
402 ror esi,2
403 add eax,edx
404 add edx,DWORD [8+esp]
405 add eax,esi
406 mov ecx,edx
407 mov esi,DWORD [12+esp]
408 ror edx,14
409 mov edi,DWORD [16+esp]
410 xor edx,ecx
411 mov ebx,DWORD [40+esp]
412 xor esi,edi
413 ror edx,5
414 and esi,ecx
415 mov DWORD [8+esp],ecx
416 xor edx,ecx
417 add ebx,DWORD [20+esp]
418 xor edi,esi
419 ror edx,6
420 mov ecx,eax
421 add ebx,edi
422 ror ecx,9
423 mov esi,eax
424 mov edi,DWORD [28+esp]
425 xor ecx,eax
426 mov DWORD [24+esp],eax
427 xor eax,edi
428 ror ecx,11
429 and ebp,eax
430 lea edx,[3049323471+edx*1+ebx]
431 xor ecx,esi
432 xor ebp,edi
433 ror ecx,2
434 add ebp,edx
435 add edx,DWORD [4+esp]
436 add ebp,ecx
437 mov esi,edx
438 mov ecx,DWORD [8+esp]
439 ror edx,14
440 mov edi,DWORD [12+esp]
441 xor edx,esi
442 mov ebx,DWORD [44+esp]
443 xor ecx,edi
444 ror edx,5
445 and ecx,esi
446 mov DWORD [4+esp],esi
447 xor edx,esi
448 add ebx,DWORD [16+esp]
449 xor edi,ecx
450 ror edx,6
451 mov esi,ebp
452 add ebx,edi
453 ror esi,9
454 mov ecx,ebp
455 mov edi,DWORD [24+esp]
456 xor esi,ebp
457 mov DWORD [20+esp],ebp
458 xor ebp,edi
459 ror esi,11
460 and eax,ebp
461 lea edx,[3921009573+edx*1+ebx]
462 xor esi,ecx
463 xor eax,edi
464 ror esi,2
465 add eax,edx
466 add edx,DWORD [esp]
467 add eax,esi
468 mov ecx,edx
469 mov esi,DWORD [4+esp]
470 ror edx,14
471 mov edi,DWORD [8+esp]
472 xor edx,ecx
473 mov ebx,DWORD [48+esp]
474 xor esi,edi
475 ror edx,5
476 and esi,ecx
477 mov DWORD [esp],ecx
478 xor edx,ecx
479 add ebx,DWORD [12+esp]
480 xor edi,esi
481 ror edx,6
482 mov ecx,eax
483 add ebx,edi
484 ror ecx,9
485 mov esi,eax
486 mov edi,DWORD [20+esp]
487 xor ecx,eax
488 mov DWORD [16+esp],eax
489 xor eax,edi
490 ror ecx,11
491 and ebp,eax
492 lea edx,[961987163+edx*1+ebx]
493 xor ecx,esi
494 xor ebp,edi
495 ror ecx,2
496 add ebp,edx
497 add edx,DWORD [28+esp]
498 add ebp,ecx
499 mov esi,edx
500 mov ecx,DWORD [esp]
501 ror edx,14
502 mov edi,DWORD [4+esp]
503 xor edx,esi
504 mov ebx,DWORD [52+esp]
505 xor ecx,edi
506 ror edx,5
507 and ecx,esi
508 mov DWORD [28+esp],esi
509 xor edx,esi
510 add ebx,DWORD [8+esp]
511 xor edi,ecx
512 ror edx,6
513 mov esi,ebp
514 add ebx,edi
515 ror esi,9
516 mov ecx,ebp
517 mov edi,DWORD [16+esp]
518 xor esi,ebp
519 mov DWORD [12+esp],ebp
520 xor ebp,edi
521 ror esi,11
522 and eax,ebp
523 lea edx,[1508970993+edx*1+ebx]
524 xor esi,ecx
525 xor eax,edi
526 ror esi,2
527 add eax,edx
528 add edx,DWORD [24+esp]
529 add eax,esi
530 mov ecx,edx
531 mov esi,DWORD [28+esp]
532 ror edx,14
533 mov edi,DWORD [esp]
534 xor edx,ecx
535 mov ebx,DWORD [56+esp]
536 xor esi,edi
537 ror edx,5
538 and esi,ecx
539 mov DWORD [24+esp],ecx
540 xor edx,ecx
541 add ebx,DWORD [4+esp]
542 xor edi,esi
543 ror edx,6
544 mov ecx,eax
545 add ebx,edi
546 ror ecx,9
547 mov esi,eax
548 mov edi,DWORD [12+esp]
549 xor ecx,eax
550 mov DWORD [8+esp],eax
551 xor eax,edi
552 ror ecx,11
553 and ebp,eax
554 lea edx,[2453635748+edx*1+ebx]
555 xor ecx,esi
556 xor ebp,edi
557 ror ecx,2
558 add ebp,edx
559 add edx,DWORD [20+esp]
560 add ebp,ecx
561 mov esi,edx
562 mov ecx,DWORD [24+esp]
563 ror edx,14
564 mov edi,DWORD [28+esp]
565 xor edx,esi
566 mov ebx,DWORD [60+esp]
567 xor ecx,edi
568 ror edx,5
569 and ecx,esi
570 mov DWORD [20+esp],esi
571 xor edx,esi
572 add ebx,DWORD [esp]
573 xor edi,ecx
574 ror edx,6
575 mov esi,ebp
576 add ebx,edi
577 ror esi,9
578 mov ecx,ebp
579 mov edi,DWORD [8+esp]
580 xor esi,ebp
581 mov DWORD [4+esp],ebp
582 xor ebp,edi
583 ror esi,11
584 and eax,ebp
585 lea edx,[2870763221+edx*1+ebx]
586 xor esi,ecx
587 xor eax,edi
588 ror esi,2
589 add eax,edx
590 add edx,DWORD [16+esp]
591 add eax,esi
592 mov ecx,edx
593 mov esi,DWORD [20+esp]
594 ror edx,14
595 mov edi,DWORD [24+esp]
596 xor edx,ecx
597 mov ebx,DWORD [64+esp]
598 xor esi,edi
599 ror edx,5
600 and esi,ecx
601 mov DWORD [16+esp],ecx
602 xor edx,ecx
603 add ebx,DWORD [28+esp]
604 xor edi,esi
605 ror edx,6
606 mov ecx,eax
607 add ebx,edi
608 ror ecx,9
609 mov esi,eax
610 mov edi,DWORD [4+esp]
611 xor ecx,eax
612 mov DWORD [esp],eax
613 xor eax,edi
614 ror ecx,11
615 and ebp,eax
616 lea edx,[3624381080+edx*1+ebx]
617 xor ecx,esi
618 xor ebp,edi
619 ror ecx,2
620 add ebp,edx
621 add edx,DWORD [12+esp]
622 add ebp,ecx
623 mov esi,edx
624 mov ecx,DWORD [16+esp]
625 ror edx,14
626 mov edi,DWORD [20+esp]
627 xor edx,esi
628 mov ebx,DWORD [68+esp]
629 xor ecx,edi
630 ror edx,5
631 and ecx,esi
632 mov DWORD [12+esp],esi
633 xor edx,esi
634 add ebx,DWORD [24+esp]
635 xor edi,ecx
636 ror edx,6
637 mov esi,ebp
638 add ebx,edi
639 ror esi,9
640 mov ecx,ebp
641 mov edi,DWORD [esp]
642 xor esi,ebp
643 mov DWORD [28+esp],ebp
644 xor ebp,edi
645 ror esi,11
646 and eax,ebp
647 lea edx,[310598401+edx*1+ebx]
648 xor esi,ecx
649 xor eax,edi
650 ror esi,2
651 add eax,edx
652 add edx,DWORD [8+esp]
653 add eax,esi
654 mov ecx,edx
655 mov esi,DWORD [12+esp]
656 ror edx,14
657 mov edi,DWORD [16+esp]
658 xor edx,ecx
659 mov ebx,DWORD [72+esp]
660 xor esi,edi
661 ror edx,5
662 and esi,ecx
663 mov DWORD [8+esp],ecx
664 xor edx,ecx
665 add ebx,DWORD [20+esp]
666 xor edi,esi
667 ror edx,6
668 mov ecx,eax
669 add ebx,edi
670 ror ecx,9
671 mov esi,eax
672 mov edi,DWORD [28+esp]
673 xor ecx,eax
674 mov DWORD [24+esp],eax
675 xor eax,edi
676 ror ecx,11
677 and ebp,eax
678 lea edx,[607225278+edx*1+ebx]
679 xor ecx,esi
680 xor ebp,edi
681 ror ecx,2
682 add ebp,edx
683 add edx,DWORD [4+esp]
684 add ebp,ecx
685 mov esi,edx
686 mov ecx,DWORD [8+esp]
687 ror edx,14
688 mov edi,DWORD [12+esp]
689 xor edx,esi
690 mov ebx,DWORD [76+esp]
691 xor ecx,edi
692 ror edx,5
693 and ecx,esi
694 mov DWORD [4+esp],esi
695 xor edx,esi
696 add ebx,DWORD [16+esp]
697 xor edi,ecx
698 ror edx,6
699 mov esi,ebp
700 add ebx,edi
701 ror esi,9
702 mov ecx,ebp
703 mov edi,DWORD [24+esp]
704 xor esi,ebp
705 mov DWORD [20+esp],ebp
706 xor ebp,edi
707 ror esi,11
708 and eax,ebp
709 lea edx,[1426881987+edx*1+ebx]
710 xor esi,ecx
711 xor eax,edi
712 ror esi,2
713 add eax,edx
714 add edx,DWORD [esp]
715 add eax,esi
716 mov ecx,edx
717 mov esi,DWORD [4+esp]
718 ror edx,14
719 mov edi,DWORD [8+esp]
720 xor edx,ecx
721 mov ebx,DWORD [80+esp]
722 xor esi,edi
723 ror edx,5
724 and esi,ecx
725 mov DWORD [esp],ecx
726 xor edx,ecx
727 add ebx,DWORD [12+esp]
728 xor edi,esi
729 ror edx,6
730 mov ecx,eax
731 add ebx,edi
732 ror ecx,9
733 mov esi,eax
734 mov edi,DWORD [20+esp]
735 xor ecx,eax
736 mov DWORD [16+esp],eax
737 xor eax,edi
738 ror ecx,11
739 and ebp,eax
740 lea edx,[1925078388+edx*1+ebx]
741 xor ecx,esi
742 xor ebp,edi
743 ror ecx,2
744 add ebp,edx
745 add edx,DWORD [28+esp]
746 add ebp,ecx
747 mov esi,edx
748 mov ecx,DWORD [esp]
749 ror edx,14
750 mov edi,DWORD [4+esp]
751 xor edx,esi
752 mov ebx,DWORD [84+esp]
753 xor ecx,edi
754 ror edx,5
755 and ecx,esi
756 mov DWORD [28+esp],esi
757 xor edx,esi
758 add ebx,DWORD [8+esp]
759 xor edi,ecx
760 ror edx,6
761 mov esi,ebp
762 add ebx,edi
763 ror esi,9
764 mov ecx,ebp
765 mov edi,DWORD [16+esp]
766 xor esi,ebp
767 mov DWORD [12+esp],ebp
768 xor ebp,edi
769 ror esi,11
770 and eax,ebp
771 lea edx,[2162078206+edx*1+ebx]
772 xor esi,ecx
773 xor eax,edi
774 ror esi,2
775 add eax,edx
776 add edx,DWORD [24+esp]
777 add eax,esi
778 mov ecx,edx
779 mov esi,DWORD [28+esp]
780 ror edx,14
781 mov edi,DWORD [esp]
782 xor edx,ecx
783 mov ebx,DWORD [88+esp]
784 xor esi,edi
785 ror edx,5
786 and esi,ecx
787 mov DWORD [24+esp],ecx
788 xor edx,ecx
789 add ebx,DWORD [4+esp]
790 xor edi,esi
791 ror edx,6
792 mov ecx,eax
793 add ebx,edi
794 ror ecx,9
795 mov esi,eax
796 mov edi,DWORD [12+esp]
797 xor ecx,eax
798 mov DWORD [8+esp],eax
799 xor eax,edi
800 ror ecx,11
801 and ebp,eax
802 lea edx,[2614888103+edx*1+ebx]
803 xor ecx,esi
804 xor ebp,edi
805 ror ecx,2
806 add ebp,edx
807 add edx,DWORD [20+esp]
808 add ebp,ecx
809 mov esi,edx
810 mov ecx,DWORD [24+esp]
811 ror edx,14
812 mov edi,DWORD [28+esp]
813 xor edx,esi
814 mov ebx,DWORD [92+esp]
815 xor ecx,edi
816 ror edx,5
817 and ecx,esi
818 mov DWORD [20+esp],esi
819 xor edx,esi
820 add ebx,DWORD [esp]
821 xor edi,ecx
822 ror edx,6
823 mov esi,ebp
824 add ebx,edi
825 ror esi,9
826 mov ecx,ebp
827 mov edi,DWORD [8+esp]
828 xor esi,ebp
829 mov DWORD [4+esp],ebp
830 xor ebp,edi
831 ror esi,11
832 and eax,ebp
833 lea edx,[3248222580+edx*1+ebx]
834 xor esi,ecx
835 xor eax,edi
836 mov ecx,DWORD [36+esp]
837 ror esi,2
838 add eax,edx
839 add edx,DWORD [16+esp]
840 add eax,esi
841 mov esi,DWORD [88+esp]
842 mov ebx,ecx
843 ror ecx,11
844 mov edi,esi
845 ror esi,2
846 xor ecx,ebx
847 shr ebx,3
848 ror ecx,7
849 xor esi,edi
850 xor ebx,ecx
851 ror esi,17
852 add ebx,DWORD [32+esp]
853 shr edi,10
854 add ebx,DWORD [68+esp]
855 mov ecx,edx
856 xor edi,esi
857 mov esi,DWORD [20+esp]
858 ror edx,14
859 add ebx,edi
860 mov edi,DWORD [24+esp]
861 xor edx,ecx
862 mov DWORD [32+esp],ebx
863 xor esi,edi
864 ror edx,5
865 and esi,ecx
866 mov DWORD [16+esp],ecx
867 xor edx,ecx
868 add ebx,DWORD [28+esp]
869 xor edi,esi
870 ror edx,6
871 mov ecx,eax
872 add ebx,edi
873 ror ecx,9
874 mov esi,eax
875 mov edi,DWORD [4+esp]
876 xor ecx,eax
877 mov DWORD [esp],eax
878 xor eax,edi
879 ror ecx,11
880 and ebp,eax
881 lea edx,[3835390401+edx*1+ebx]
882 xor ecx,esi
883 xor ebp,edi
884 mov esi,DWORD [40+esp]
885 ror ecx,2
886 add ebp,edx
887 add edx,DWORD [12+esp]
888 add ebp,ecx
889 mov ecx,DWORD [92+esp]
890 mov ebx,esi
891 ror esi,11
892 mov edi,ecx
893 ror ecx,2
894 xor esi,ebx
895 shr ebx,3
896 ror esi,7
897 xor ecx,edi
898 xor ebx,esi
899 ror ecx,17
900 add ebx,DWORD [36+esp]
901 shr edi,10
902 add ebx,DWORD [72+esp]
903 mov esi,edx
904 xor edi,ecx
905 mov ecx,DWORD [16+esp]
906 ror edx,14
907 add ebx,edi
908 mov edi,DWORD [20+esp]
909 xor edx,esi
910 mov DWORD [36+esp],ebx
911 xor ecx,edi
912 ror edx,5
913 and ecx,esi
914 mov DWORD [12+esp],esi
915 xor edx,esi
916 add ebx,DWORD [24+esp]
917 xor edi,ecx
918 ror edx,6
919 mov esi,ebp
920 add ebx,edi
921 ror esi,9
922 mov ecx,ebp
923 mov edi,DWORD [esp]
924 xor esi,ebp
925 mov DWORD [28+esp],ebp
926 xor ebp,edi
927 ror esi,11
928 and eax,ebp
929 lea edx,[4022224774+edx*1+ebx]
930 xor esi,ecx
931 xor eax,edi
932 mov ecx,DWORD [44+esp]
933 ror esi,2
934 add eax,edx
935 add edx,DWORD [8+esp]
936 add eax,esi
937 mov esi,DWORD [32+esp]
938 mov ebx,ecx
939 ror ecx,11
940 mov edi,esi
941 ror esi,2
942 xor ecx,ebx
943 shr ebx,3
944 ror ecx,7
945 xor esi,edi
946 xor ebx,ecx
947 ror esi,17
948 add ebx,DWORD [40+esp]
949 shr edi,10
950 add ebx,DWORD [76+esp]
951 mov ecx,edx
952 xor edi,esi
953 mov esi,DWORD [12+esp]
954 ror edx,14
955 add ebx,edi
956 mov edi,DWORD [16+esp]
957 xor edx,ecx
958 mov DWORD [40+esp],ebx
959 xor esi,edi
960 ror edx,5
961 and esi,ecx
962 mov DWORD [8+esp],ecx
963 xor edx,ecx
964 add ebx,DWORD [20+esp]
965 xor edi,esi
966 ror edx,6
967 mov ecx,eax
968 add ebx,edi
969 ror ecx,9
970 mov esi,eax
971 mov edi,DWORD [28+esp]
972 xor ecx,eax
973 mov DWORD [24+esp],eax
974 xor eax,edi
975 ror ecx,11
976 and ebp,eax
977 lea edx,[264347078+edx*1+ebx]
978 xor ecx,esi
979 xor ebp,edi
980 mov esi,DWORD [48+esp]
981 ror ecx,2
982 add ebp,edx
983 add edx,DWORD [4+esp]
984 add ebp,ecx
985 mov ecx,DWORD [36+esp]
986 mov ebx,esi
987 ror esi,11
988 mov edi,ecx
989 ror ecx,2
990 xor esi,ebx
991 shr ebx,3
992 ror esi,7
993 xor ecx,edi
994 xor ebx,esi
995 ror ecx,17
996 add ebx,DWORD [44+esp]
997 shr edi,10
998 add ebx,DWORD [80+esp]
999 mov esi,edx
1000 xor edi,ecx
1001 mov ecx,DWORD [8+esp]
1002 ror edx,14
1003 add ebx,edi
1004 mov edi,DWORD [12+esp]
1005 xor edx,esi
1006 mov DWORD [44+esp],ebx
1007 xor ecx,edi
1008 ror edx,5
1009 and ecx,esi
1010 mov DWORD [4+esp],esi
1011 xor edx,esi
1012 add ebx,DWORD [16+esp]
1013 xor edi,ecx
1014 ror edx,6
1015 mov esi,ebp
1016 add ebx,edi
1017 ror esi,9
1018 mov ecx,ebp
1019 mov edi,DWORD [24+esp]
1020 xor esi,ebp
1021 mov DWORD [20+esp],ebp
1022 xor ebp,edi
1023 ror esi,11
1024 and eax,ebp
1025 lea edx,[604807628+edx*1+ebx]
1026 xor esi,ecx
1027 xor eax,edi
1028 mov ecx,DWORD [52+esp]
1029 ror esi,2
1030 add eax,edx
1031 add edx,DWORD [esp]
1032 add eax,esi
1033 mov esi,DWORD [40+esp]
1034 mov ebx,ecx
1035 ror ecx,11
1036 mov edi,esi
1037 ror esi,2
1038 xor ecx,ebx
1039 shr ebx,3
1040 ror ecx,7
1041 xor esi,edi
1042 xor ebx,ecx
1043 ror esi,17
1044 add ebx,DWORD [48+esp]
1045 shr edi,10
1046 add ebx,DWORD [84+esp]
1047 mov ecx,edx
1048 xor edi,esi
1049 mov esi,DWORD [4+esp]
1050 ror edx,14
1051 add ebx,edi
1052 mov edi,DWORD [8+esp]
1053 xor edx,ecx
1054 mov DWORD [48+esp],ebx
1055 xor esi,edi
1056 ror edx,5
1057 and esi,ecx
1058 mov DWORD [esp],ecx
1059 xor edx,ecx
1060 add ebx,DWORD [12+esp]
1061 xor edi,esi
1062 ror edx,6
1063 mov ecx,eax
1064 add ebx,edi
1065 ror ecx,9
1066 mov esi,eax
1067 mov edi,DWORD [20+esp]
1068 xor ecx,eax
1069 mov DWORD [16+esp],eax
1070 xor eax,edi
1071 ror ecx,11
1072 and ebp,eax
1073 lea edx,[770255983+edx*1+ebx]
1074 xor ecx,esi
1075 xor ebp,edi
1076 mov esi,DWORD [56+esp]
1077 ror ecx,2
1078 add ebp,edx
1079 add edx,DWORD [28+esp]
1080 add ebp,ecx
1081 mov ecx,DWORD [44+esp]
1082 mov ebx,esi
1083 ror esi,11
1084 mov edi,ecx
1085 ror ecx,2
1086 xor esi,ebx
1087 shr ebx,3
1088 ror esi,7
1089 xor ecx,edi
1090 xor ebx,esi
1091 ror ecx,17
1092 add ebx,DWORD [52+esp]
1093 shr edi,10
1094 add ebx,DWORD [88+esp]
1095 mov esi,edx
1096 xor edi,ecx
1097 mov ecx,DWORD [esp]
1098 ror edx,14
1099 add ebx,edi
1100 mov edi,DWORD [4+esp]
1101 xor edx,esi
1102 mov DWORD [52+esp],ebx
1103 xor ecx,edi
1104 ror edx,5
1105 and ecx,esi
1106 mov DWORD [28+esp],esi
1107 xor edx,esi
1108 add ebx,DWORD [8+esp]
1109 xor edi,ecx
1110 ror edx,6
1111 mov esi,ebp
1112 add ebx,edi
1113 ror esi,9
1114 mov ecx,ebp
1115 mov edi,DWORD [16+esp]
1116 xor esi,ebp
1117 mov DWORD [12+esp],ebp
1118 xor ebp,edi
1119 ror esi,11
1120 and eax,ebp
1121 lea edx,[1249150122+edx*1+ebx]
1122 xor esi,ecx
1123 xor eax,edi
1124 mov ecx,DWORD [60+esp]
1125 ror esi,2
1126 add eax,edx
1127 add edx,DWORD [24+esp]
1128 add eax,esi
1129 mov esi,DWORD [48+esp]
1130 mov ebx,ecx
1131 ror ecx,11
1132 mov edi,esi
1133 ror esi,2
1134 xor ecx,ebx
1135 shr ebx,3
1136 ror ecx,7
1137 xor esi,edi
1138 xor ebx,ecx
1139 ror esi,17
1140 add ebx,DWORD [56+esp]
1141 shr edi,10
1142 add ebx,DWORD [92+esp]
1143 mov ecx,edx
1144 xor edi,esi
1145 mov esi,DWORD [28+esp]
1146 ror edx,14
1147 add ebx,edi
1148 mov edi,DWORD [esp]
1149 xor edx,ecx
1150 mov DWORD [56+esp],ebx
1151 xor esi,edi
1152 ror edx,5
1153 and esi,ecx
1154 mov DWORD [24+esp],ecx
1155 xor edx,ecx
1156 add ebx,DWORD [4+esp]
1157 xor edi,esi
1158 ror edx,6
1159 mov ecx,eax
1160 add ebx,edi
1161 ror ecx,9
1162 mov esi,eax
1163 mov edi,DWORD [12+esp]
1164 xor ecx,eax
1165 mov DWORD [8+esp],eax
1166 xor eax,edi
1167 ror ecx,11
1168 and ebp,eax
1169 lea edx,[1555081692+edx*1+ebx]
1170 xor ecx,esi
1171 xor ebp,edi
1172 mov esi,DWORD [64+esp]
1173 ror ecx,2
1174 add ebp,edx
1175 add edx,DWORD [20+esp]
1176 add ebp,ecx
1177 mov ecx,DWORD [52+esp]
1178 mov ebx,esi
1179 ror esi,11
1180 mov edi,ecx
1181 ror ecx,2
1182 xor esi,ebx
1183 shr ebx,3
1184 ror esi,7
1185 xor ecx,edi
1186 xor ebx,esi
1187 ror ecx,17
1188 add ebx,DWORD [60+esp]
1189 shr edi,10
1190 add ebx,DWORD [32+esp]
1191 mov esi,edx
1192 xor edi,ecx
1193 mov ecx,DWORD [24+esp]
1194 ror edx,14
1195 add ebx,edi
1196 mov edi,DWORD [28+esp]
1197 xor edx,esi
1198 mov DWORD [60+esp],ebx
1199 xor ecx,edi
1200 ror edx,5
1201 and ecx,esi
1202 mov DWORD [20+esp],esi
1203 xor edx,esi
1204 add ebx,DWORD [esp]
1205 xor edi,ecx
1206 ror edx,6
1207 mov esi,ebp
1208 add ebx,edi
1209 ror esi,9
1210 mov ecx,ebp
1211 mov edi,DWORD [8+esp]
1212 xor esi,ebp
1213 mov DWORD [4+esp],ebp
1214 xor ebp,edi
1215 ror esi,11
1216 and eax,ebp
1217 lea edx,[1996064986+edx*1+ebx]
1218 xor esi,ecx
1219 xor eax,edi
1220 mov ecx,DWORD [68+esp]
1221 ror esi,2
1222 add eax,edx
1223 add edx,DWORD [16+esp]
1224 add eax,esi
1225 mov esi,DWORD [56+esp]
1226 mov ebx,ecx
1227 ror ecx,11
1228 mov edi,esi
1229 ror esi,2
1230 xor ecx,ebx
1231 shr ebx,3
1232 ror ecx,7
1233 xor esi,edi
1234 xor ebx,ecx
1235 ror esi,17
1236 add ebx,DWORD [64+esp]
1237 shr edi,10
1238 add ebx,DWORD [36+esp]
1239 mov ecx,edx
1240 xor edi,esi
1241 mov esi,DWORD [20+esp]
1242 ror edx,14
1243 add ebx,edi
1244 mov edi,DWORD [24+esp]
1245 xor edx,ecx
1246 mov DWORD [64+esp],ebx
1247 xor esi,edi
1248 ror edx,5
1249 and esi,ecx
1250 mov DWORD [16+esp],ecx
1251 xor edx,ecx
1252 add ebx,DWORD [28+esp]
1253 xor edi,esi
1254 ror edx,6
1255 mov ecx,eax
1256 add ebx,edi
1257 ror ecx,9
1258 mov esi,eax
1259 mov edi,DWORD [4+esp]
1260 xor ecx,eax
1261 mov DWORD [esp],eax
1262 xor eax,edi
1263 ror ecx,11
1264 and ebp,eax
1265 lea edx,[2554220882+edx*1+ebx]
1266 xor ecx,esi
1267 xor ebp,edi
1268 mov esi,DWORD [72+esp]
1269 ror ecx,2
1270 add ebp,edx
1271 add edx,DWORD [12+esp]
1272 add ebp,ecx
1273 mov ecx,DWORD [60+esp]
1274 mov ebx,esi
1275 ror esi,11
1276 mov edi,ecx
1277 ror ecx,2
1278 xor esi,ebx
1279 shr ebx,3
1280 ror esi,7
1281 xor ecx,edi
1282 xor ebx,esi
1283 ror ecx,17
1284 add ebx,DWORD [68+esp]
1285 shr edi,10
1286 add ebx,DWORD [40+esp]
1287 mov esi,edx
1288 xor edi,ecx
1289 mov ecx,DWORD [16+esp]
1290 ror edx,14
1291 add ebx,edi
1292 mov edi,DWORD [20+esp]
1293 xor edx,esi
1294 mov DWORD [68+esp],ebx
1295 xor ecx,edi
1296 ror edx,5
1297 and ecx,esi
1298 mov DWORD [12+esp],esi
1299 xor edx,esi
1300 add ebx,DWORD [24+esp]
1301 xor edi,ecx
1302 ror edx,6
1303 mov esi,ebp
1304 add ebx,edi
1305 ror esi,9
1306 mov ecx,ebp
1307 mov edi,DWORD [esp]
1308 xor esi,ebp
1309 mov DWORD [28+esp],ebp
1310 xor ebp,edi
1311 ror esi,11
1312 and eax,ebp
1313 lea edx,[2821834349+edx*1+ebx]
1314 xor esi,ecx
1315 xor eax,edi
1316 mov ecx,DWORD [76+esp]
1317 ror esi,2
1318 add eax,edx
1319 add edx,DWORD [8+esp]
1320 add eax,esi
1321 mov esi,DWORD [64+esp]
1322 mov ebx,ecx
1323 ror ecx,11
1324 mov edi,esi
1325 ror esi,2
1326 xor ecx,ebx
1327 shr ebx,3
1328 ror ecx,7
1329 xor esi,edi
1330 xor ebx,ecx
1331 ror esi,17
1332 add ebx,DWORD [72+esp]
1333 shr edi,10
1334 add ebx,DWORD [44+esp]
1335 mov ecx,edx
1336 xor edi,esi
1337 mov esi,DWORD [12+esp]
1338 ror edx,14
1339 add ebx,edi
1340 mov edi,DWORD [16+esp]
1341 xor edx,ecx
1342 mov DWORD [72+esp],ebx
1343 xor esi,edi
1344 ror edx,5
1345 and esi,ecx
1346 mov DWORD [8+esp],ecx
1347 xor edx,ecx
1348 add ebx,DWORD [20+esp]
1349 xor edi,esi
1350 ror edx,6
1351 mov ecx,eax
1352 add ebx,edi
1353 ror ecx,9
1354 mov esi,eax
1355 mov edi,DWORD [28+esp]
1356 xor ecx,eax
1357 mov DWORD [24+esp],eax
1358 xor eax,edi
1359 ror ecx,11
1360 and ebp,eax
1361 lea edx,[2952996808+edx*1+ebx]
1362 xor ecx,esi
1363 xor ebp,edi
1364 mov esi,DWORD [80+esp]
1365 ror ecx,2
1366 add ebp,edx
1367 add edx,DWORD [4+esp]
1368 add ebp,ecx
1369 mov ecx,DWORD [68+esp]
1370 mov ebx,esi
1371 ror esi,11
1372 mov edi,ecx
1373 ror ecx,2
1374 xor esi,ebx
1375 shr ebx,3
1376 ror esi,7
1377 xor ecx,edi
1378 xor ebx,esi
1379 ror ecx,17
1380 add ebx,DWORD [76+esp]
1381 shr edi,10
1382 add ebx,DWORD [48+esp]
1383 mov esi,edx
1384 xor edi,ecx
1385 mov ecx,DWORD [8+esp]
1386 ror edx,14
1387 add ebx,edi
1388 mov edi,DWORD [12+esp]
1389 xor edx,esi
1390 mov DWORD [76+esp],ebx
1391 xor ecx,edi
1392 ror edx,5
1393 and ecx,esi
1394 mov DWORD [4+esp],esi
1395 xor edx,esi
1396 add ebx,DWORD [16+esp]
1397 xor edi,ecx
1398 ror edx,6
1399 mov esi,ebp
1400 add ebx,edi
1401 ror esi,9
1402 mov ecx,ebp
1403 mov edi,DWORD [24+esp]
1404 xor esi,ebp
1405 mov DWORD [20+esp],ebp
1406 xor ebp,edi
1407 ror esi,11
1408 and eax,ebp
1409 lea edx,[3210313671+edx*1+ebx]
1410 xor esi,ecx
1411 xor eax,edi
1412 mov ecx,DWORD [84+esp]
1413 ror esi,2
1414 add eax,edx
1415 add edx,DWORD [esp]
1416 add eax,esi
1417 mov esi,DWORD [72+esp]
1418 mov ebx,ecx
1419 ror ecx,11
1420 mov edi,esi
1421 ror esi,2
1422 xor ecx,ebx
1423 shr ebx,3
1424 ror ecx,7
1425 xor esi,edi
1426 xor ebx,ecx
1427 ror esi,17
1428 add ebx,DWORD [80+esp]
1429 shr edi,10
1430 add ebx,DWORD [52+esp]
1431 mov ecx,edx
1432 xor edi,esi
1433 mov esi,DWORD [4+esp]
1434 ror edx,14
1435 add ebx,edi
1436 mov edi,DWORD [8+esp]
1437 xor edx,ecx
1438 mov DWORD [80+esp],ebx
1439 xor esi,edi
1440 ror edx,5
1441 and esi,ecx
1442 mov DWORD [esp],ecx
1443 xor edx,ecx
1444 add ebx,DWORD [12+esp]
1445 xor edi,esi
1446 ror edx,6
1447 mov ecx,eax
1448 add ebx,edi
1449 ror ecx,9
1450 mov esi,eax
1451 mov edi,DWORD [20+esp]
1452 xor ecx,eax
1453 mov DWORD [16+esp],eax
1454 xor eax,edi
1455 ror ecx,11
1456 and ebp,eax
1457 lea edx,[3336571891+edx*1+ebx]
1458 xor ecx,esi
1459 xor ebp,edi
1460 mov esi,DWORD [88+esp]
1461 ror ecx,2
1462 add ebp,edx
1463 add edx,DWORD [28+esp]
1464 add ebp,ecx
1465 mov ecx,DWORD [76+esp]
1466 mov ebx,esi
1467 ror esi,11
1468 mov edi,ecx
1469 ror ecx,2
1470 xor esi,ebx
1471 shr ebx,3
1472 ror esi,7
1473 xor ecx,edi
1474 xor ebx,esi
1475 ror ecx,17
1476 add ebx,DWORD [84+esp]
1477 shr edi,10
1478 add ebx,DWORD [56+esp]
1479 mov esi,edx
1480 xor edi,ecx
1481 mov ecx,DWORD [esp]
1482 ror edx,14
1483 add ebx,edi
1484 mov edi,DWORD [4+esp]
1485 xor edx,esi
1486 mov DWORD [84+esp],ebx
1487 xor ecx,edi
1488 ror edx,5
1489 and ecx,esi
1490 mov DWORD [28+esp],esi
1491 xor edx,esi
1492 add ebx,DWORD [8+esp]
1493 xor edi,ecx
1494 ror edx,6
1495 mov esi,ebp
1496 add ebx,edi
1497 ror esi,9
1498 mov ecx,ebp
1499 mov edi,DWORD [16+esp]
1500 xor esi,ebp
1501 mov DWORD [12+esp],ebp
1502 xor ebp,edi
1503 ror esi,11
1504 and eax,ebp
1505 lea edx,[3584528711+edx*1+ebx]
1506 xor esi,ecx
1507 xor eax,edi
1508 mov ecx,DWORD [92+esp]
1509 ror esi,2
1510 add eax,edx
1511 add edx,DWORD [24+esp]
1512 add eax,esi
1513 mov esi,DWORD [80+esp]
1514 mov ebx,ecx
1515 ror ecx,11
1516 mov edi,esi
1517 ror esi,2
1518 xor ecx,ebx
1519 shr ebx,3
1520 ror ecx,7
1521 xor esi,edi
1522 xor ebx,ecx
1523 ror esi,17
1524 add ebx,DWORD [88+esp]
1525 shr edi,10
1526 add ebx,DWORD [60+esp]
1527 mov ecx,edx
1528 xor edi,esi
1529 mov esi,DWORD [28+esp]
1530 ror edx,14
1531 add ebx,edi
1532 mov edi,DWORD [esp]
1533 xor edx,ecx
1534 mov DWORD [88+esp],ebx
1535 xor esi,edi
1536 ror edx,5
1537 and esi,ecx
1538 mov DWORD [24+esp],ecx
1539 xor edx,ecx
1540 add ebx,DWORD [4+esp]
1541 xor edi,esi
1542 ror edx,6
1543 mov ecx,eax
1544 add ebx,edi
1545 ror ecx,9
1546 mov esi,eax
1547 mov edi,DWORD [12+esp]
1548 xor ecx,eax
1549 mov DWORD [8+esp],eax
1550 xor eax,edi
1551 ror ecx,11
1552 and ebp,eax
1553 lea edx,[113926993+edx*1+ebx]
1554 xor ecx,esi
1555 xor ebp,edi
1556 mov esi,DWORD [32+esp]
1557 ror ecx,2
1558 add ebp,edx
1559 add edx,DWORD [20+esp]
1560 add ebp,ecx
1561 mov ecx,DWORD [84+esp]
1562 mov ebx,esi
1563 ror esi,11
1564 mov edi,ecx
1565 ror ecx,2
1566 xor esi,ebx
1567 shr ebx,3
1568 ror esi,7
1569 xor ecx,edi
1570 xor ebx,esi
1571 ror ecx,17
1572 add ebx,DWORD [92+esp]
1573 shr edi,10
1574 add ebx,DWORD [64+esp]
1575 mov esi,edx
1576 xor edi,ecx
1577 mov ecx,DWORD [24+esp]
1578 ror edx,14
1579 add ebx,edi
1580 mov edi,DWORD [28+esp]
1581 xor edx,esi
1582 mov DWORD [92+esp],ebx
1583 xor ecx,edi
1584 ror edx,5
1585 and ecx,esi
1586 mov DWORD [20+esp],esi
1587 xor edx,esi
1588 add ebx,DWORD [esp]
1589 xor edi,ecx
1590 ror edx,6
1591 mov esi,ebp
1592 add ebx,edi
1593 ror esi,9
1594 mov ecx,ebp
1595 mov edi,DWORD [8+esp]
1596 xor esi,ebp
1597 mov DWORD [4+esp],ebp
1598 xor ebp,edi
1599 ror esi,11
1600 and eax,ebp
1601 lea edx,[338241895+edx*1+ebx]
1602 xor esi,ecx
1603 xor eax,edi
1604 mov ecx,DWORD [36+esp]
1605 ror esi,2
1606 add eax,edx
1607 add edx,DWORD [16+esp]
1608 add eax,esi
1609 mov esi,DWORD [88+esp]
1610 mov ebx,ecx
1611 ror ecx,11
1612 mov edi,esi
1613 ror esi,2
1614 xor ecx,ebx
1615 shr ebx,3
1616 ror ecx,7
1617 xor esi,edi
1618 xor ebx,ecx
1619 ror esi,17
1620 add ebx,DWORD [32+esp]
1621 shr edi,10
1622 add ebx,DWORD [68+esp]
1623 mov ecx,edx
1624 xor edi,esi
1625 mov esi,DWORD [20+esp]
1626 ror edx,14
1627 add ebx,edi
1628 mov edi,DWORD [24+esp]
1629 xor edx,ecx
1630 mov DWORD [32+esp],ebx
1631 xor esi,edi
1632 ror edx,5
1633 and esi,ecx
1634 mov DWORD [16+esp],ecx
1635 xor edx,ecx
1636 add ebx,DWORD [28+esp]
1637 xor edi,esi
1638 ror edx,6
1639 mov ecx,eax
1640 add ebx,edi
1641 ror ecx,9
1642 mov esi,eax
1643 mov edi,DWORD [4+esp]
1644 xor ecx,eax
1645 mov DWORD [esp],eax
1646 xor eax,edi
1647 ror ecx,11
1648 and ebp,eax
1649 lea edx,[666307205+edx*1+ebx]
1650 xor ecx,esi
1651 xor ebp,edi
1652 mov esi,DWORD [40+esp]
1653 ror ecx,2
1654 add ebp,edx
1655 add edx,DWORD [12+esp]
1656 add ebp,ecx
1657 mov ecx,DWORD [92+esp]
1658 mov ebx,esi
1659 ror esi,11
1660 mov edi,ecx
1661 ror ecx,2
1662 xor esi,ebx
1663 shr ebx,3
1664 ror esi,7
1665 xor ecx,edi
1666 xor ebx,esi
1667 ror ecx,17
1668 add ebx,DWORD [36+esp]
1669 shr edi,10
1670 add ebx,DWORD [72+esp]
1671 mov esi,edx
1672 xor edi,ecx
1673 mov ecx,DWORD [16+esp]
1674 ror edx,14
1675 add ebx,edi
1676 mov edi,DWORD [20+esp]
1677 xor edx,esi
1678 mov DWORD [36+esp],ebx
1679 xor ecx,edi
1680 ror edx,5
1681 and ecx,esi
1682 mov DWORD [12+esp],esi
1683 xor edx,esi
1684 add ebx,DWORD [24+esp]
1685 xor edi,ecx
1686 ror edx,6
1687 mov esi,ebp
1688 add ebx,edi
1689 ror esi,9
1690 mov ecx,ebp
1691 mov edi,DWORD [esp]
1692 xor esi,ebp
1693 mov DWORD [28+esp],ebp
1694 xor ebp,edi
1695 ror esi,11
1696 and eax,ebp
1697 lea edx,[773529912+edx*1+ebx]
1698 xor esi,ecx
1699 xor eax,edi
1700 mov ecx,DWORD [44+esp]
1701 ror esi,2
1702 add eax,edx
1703 add edx,DWORD [8+esp]
1704 add eax,esi
1705 mov esi,DWORD [32+esp]
1706 mov ebx,ecx
1707 ror ecx,11
1708 mov edi,esi
1709 ror esi,2
1710 xor ecx,ebx
1711 shr ebx,3
1712 ror ecx,7
1713 xor esi,edi
1714 xor ebx,ecx
1715 ror esi,17
1716 add ebx,DWORD [40+esp]
1717 shr edi,10
1718 add ebx,DWORD [76+esp]
1719 mov ecx,edx
1720 xor edi,esi
1721 mov esi,DWORD [12+esp]
1722 ror edx,14
1723 add ebx,edi
1724 mov edi,DWORD [16+esp]
1725 xor edx,ecx
1726 mov DWORD [40+esp],ebx
1727 xor esi,edi
1728 ror edx,5
1729 and esi,ecx
1730 mov DWORD [8+esp],ecx
1731 xor edx,ecx
1732 add ebx,DWORD [20+esp]
1733 xor edi,esi
1734 ror edx,6
1735 mov ecx,eax
1736 add ebx,edi
1737 ror ecx,9
1738 mov esi,eax
1739 mov edi,DWORD [28+esp]
1740 xor ecx,eax
1741 mov DWORD [24+esp],eax
1742 xor eax,edi
1743 ror ecx,11
1744 and ebp,eax
1745 lea edx,[1294757372+edx*1+ebx]
1746 xor ecx,esi
1747 xor ebp,edi
1748 mov esi,DWORD [48+esp]
1749 ror ecx,2
1750 add ebp,edx
1751 add edx,DWORD [4+esp]
1752 add ebp,ecx
1753 mov ecx,DWORD [36+esp]
1754 mov ebx,esi
1755 ror esi,11
1756 mov edi,ecx
1757 ror ecx,2
1758 xor esi,ebx
1759 shr ebx,3
1760 ror esi,7
1761 xor ecx,edi
1762 xor ebx,esi
1763 ror ecx,17
1764 add ebx,DWORD [44+esp]
1765 shr edi,10
1766 add ebx,DWORD [80+esp]
1767 mov esi,edx
1768 xor edi,ecx
1769 mov ecx,DWORD [8+esp]
1770 ror edx,14
1771 add ebx,edi
1772 mov edi,DWORD [12+esp]
1773 xor edx,esi
1774 mov DWORD [44+esp],ebx
1775 xor ecx,edi
1776 ror edx,5
1777 and ecx,esi
1778 mov DWORD [4+esp],esi
1779 xor edx,esi
1780 add ebx,DWORD [16+esp]
1781 xor edi,ecx
1782 ror edx,6
1783 mov esi,ebp
1784 add ebx,edi
1785 ror esi,9
1786 mov ecx,ebp
1787 mov edi,DWORD [24+esp]
1788 xor esi,ebp
1789 mov DWORD [20+esp],ebp
1790 xor ebp,edi
1791 ror esi,11
1792 and eax,ebp
1793 lea edx,[1396182291+edx*1+ebx]
1794 xor esi,ecx
1795 xor eax,edi
1796 mov ecx,DWORD [52+esp]
1797 ror esi,2
1798 add eax,edx
1799 add edx,DWORD [esp]
1800 add eax,esi
1801 mov esi,DWORD [40+esp]
1802 mov ebx,ecx
1803 ror ecx,11
1804 mov edi,esi
1805 ror esi,2
1806 xor ecx,ebx
1807 shr ebx,3
1808 ror ecx,7
1809 xor esi,edi
1810 xor ebx,ecx
1811 ror esi,17
1812 add ebx,DWORD [48+esp]
1813 shr edi,10
1814 add ebx,DWORD [84+esp]
1815 mov ecx,edx
1816 xor edi,esi
1817 mov esi,DWORD [4+esp]
1818 ror edx,14
1819 add ebx,edi
1820 mov edi,DWORD [8+esp]
1821 xor edx,ecx
1822 mov DWORD [48+esp],ebx
1823 xor esi,edi
1824 ror edx,5
1825 and esi,ecx
1826 mov DWORD [esp],ecx
1827 xor edx,ecx
1828 add ebx,DWORD [12+esp]
1829 xor edi,esi
1830 ror edx,6
1831 mov ecx,eax
1832 add ebx,edi
1833 ror ecx,9
1834 mov esi,eax
1835 mov edi,DWORD [20+esp]
1836 xor ecx,eax
1837 mov DWORD [16+esp],eax
1838 xor eax,edi
1839 ror ecx,11
1840 and ebp,eax
1841 lea edx,[1695183700+edx*1+ebx]
1842 xor ecx,esi
1843 xor ebp,edi
1844 mov esi,DWORD [56+esp]
1845 ror ecx,2
1846 add ebp,edx
1847 add edx,DWORD [28+esp]
1848 add ebp,ecx
1849 mov ecx,DWORD [44+esp]
1850 mov ebx,esi
1851 ror esi,11
1852 mov edi,ecx
1853 ror ecx,2
1854 xor esi,ebx
1855 shr ebx,3
1856 ror esi,7
1857 xor ecx,edi
1858 xor ebx,esi
1859 ror ecx,17
1860 add ebx,DWORD [52+esp]
1861 shr edi,10
1862 add ebx,DWORD [88+esp]
1863 mov esi,edx
1864 xor edi,ecx
1865 mov ecx,DWORD [esp]
1866 ror edx,14
1867 add ebx,edi
1868 mov edi,DWORD [4+esp]
1869 xor edx,esi
1870 mov DWORD [52+esp],ebx
1871 xor ecx,edi
1872 ror edx,5
1873 and ecx,esi
1874 mov DWORD [28+esp],esi
1875 xor edx,esi
1876 add ebx,DWORD [8+esp]
1877 xor edi,ecx
1878 ror edx,6
1879 mov esi,ebp
1880 add ebx,edi
1881 ror esi,9
1882 mov ecx,ebp
1883 mov edi,DWORD [16+esp]
1884 xor esi,ebp
1885 mov DWORD [12+esp],ebp
1886 xor ebp,edi
1887 ror esi,11
1888 and eax,ebp
1889 lea edx,[1986661051+edx*1+ebx]
1890 xor esi,ecx
1891 xor eax,edi
1892 mov ecx,DWORD [60+esp]
1893 ror esi,2
1894 add eax,edx
1895 add edx,DWORD [24+esp]
1896 add eax,esi
1897 mov esi,DWORD [48+esp]
1898 mov ebx,ecx
1899 ror ecx,11
1900 mov edi,esi
1901 ror esi,2
1902 xor ecx,ebx
1903 shr ebx,3
1904 ror ecx,7
1905 xor esi,edi
1906 xor ebx,ecx
1907 ror esi,17
1908 add ebx,DWORD [56+esp]
1909 shr edi,10
1910 add ebx,DWORD [92+esp]
1911 mov ecx,edx
1912 xor edi,esi
1913 mov esi,DWORD [28+esp]
1914 ror edx,14
1915 add ebx,edi
1916 mov edi,DWORD [esp]
1917 xor edx,ecx
1918 mov DWORD [56+esp],ebx
1919 xor esi,edi
1920 ror edx,5
1921 and esi,ecx
1922 mov DWORD [24+esp],ecx
1923 xor edx,ecx
1924 add ebx,DWORD [4+esp]
1925 xor edi,esi
1926 ror edx,6
1927 mov ecx,eax
1928 add ebx,edi
1929 ror ecx,9
1930 mov esi,eax
1931 mov edi,DWORD [12+esp]
1932 xor ecx,eax
1933 mov DWORD [8+esp],eax
1934 xor eax,edi
1935 ror ecx,11
1936 and ebp,eax
1937 lea edx,[2177026350+edx*1+ebx]
1938 xor ecx,esi
1939 xor ebp,edi
1940 mov esi,DWORD [64+esp]
1941 ror ecx,2
1942 add ebp,edx
1943 add edx,DWORD [20+esp]
1944 add ebp,ecx
1945 mov ecx,DWORD [52+esp]
1946 mov ebx,esi
1947 ror esi,11
1948 mov edi,ecx
1949 ror ecx,2
1950 xor esi,ebx
1951 shr ebx,3
1952 ror esi,7
1953 xor ecx,edi
1954 xor ebx,esi
1955 ror ecx,17
1956 add ebx,DWORD [60+esp]
1957 shr edi,10
1958 add ebx,DWORD [32+esp]
1959 mov esi,edx
1960 xor edi,ecx
1961 mov ecx,DWORD [24+esp]
1962 ror edx,14
1963 add ebx,edi
1964 mov edi,DWORD [28+esp]
1965 xor edx,esi
1966 mov DWORD [60+esp],ebx
1967 xor ecx,edi
1968 ror edx,5
1969 and ecx,esi
1970 mov DWORD [20+esp],esi
1971 xor edx,esi
1972 add ebx,DWORD [esp]
1973 xor edi,ecx
1974 ror edx,6
1975 mov esi,ebp
1976 add ebx,edi
1977 ror esi,9
1978 mov ecx,ebp
1979 mov edi,DWORD [8+esp]
1980 xor esi,ebp
1981 mov DWORD [4+esp],ebp
1982 xor ebp,edi
1983 ror esi,11
1984 and eax,ebp
1985 lea edx,[2456956037+edx*1+ebx]
1986 xor esi,ecx
1987 xor eax,edi
1988 mov ecx,DWORD [68+esp]
1989 ror esi,2
1990 add eax,edx
1991 add edx,DWORD [16+esp]
1992 add eax,esi
1993 mov esi,DWORD [56+esp]
1994 mov ebx,ecx
1995 ror ecx,11
1996 mov edi,esi
1997 ror esi,2
1998 xor ecx,ebx
1999 shr ebx,3
2000 ror ecx,7
2001 xor esi,edi
2002 xor ebx,ecx
2003 ror esi,17
2004 add ebx,DWORD [64+esp]
2005 shr edi,10
2006 add ebx,DWORD [36+esp]
2007 mov ecx,edx
2008 xor edi,esi
2009 mov esi,DWORD [20+esp]
2010 ror edx,14
2011 add ebx,edi
2012 mov edi,DWORD [24+esp]
2013 xor edx,ecx
2014 mov DWORD [64+esp],ebx
2015 xor esi,edi
2016 ror edx,5
2017 and esi,ecx
2018 mov DWORD [16+esp],ecx
2019 xor edx,ecx
2020 add ebx,DWORD [28+esp]
2021 xor edi,esi
2022 ror edx,6
2023 mov ecx,eax
2024 add ebx,edi
2025 ror ecx,9
2026 mov esi,eax
2027 mov edi,DWORD [4+esp]
2028 xor ecx,eax
2029 mov DWORD [esp],eax
2030 xor eax,edi
2031 ror ecx,11
2032 and ebp,eax
2033 lea edx,[2730485921+edx*1+ebx]
2034 xor ecx,esi
2035 xor ebp,edi
2036 mov esi,DWORD [72+esp]
2037 ror ecx,2
2038 add ebp,edx
2039 add edx,DWORD [12+esp]
2040 add ebp,ecx
2041 mov ecx,DWORD [60+esp]
2042 mov ebx,esi
2043 ror esi,11
2044 mov edi,ecx
2045 ror ecx,2
2046 xor esi,ebx
2047 shr ebx,3
2048 ror esi,7
2049 xor ecx,edi
2050 xor ebx,esi
2051 ror ecx,17
2052 add ebx,DWORD [68+esp]
2053 shr edi,10
2054 add ebx,DWORD [40+esp]
2055 mov esi,edx
2056 xor edi,ecx
2057 mov ecx,DWORD [16+esp]
2058 ror edx,14
2059 add ebx,edi
2060 mov edi,DWORD [20+esp]
2061 xor edx,esi
2062 mov DWORD [68+esp],ebx
2063 xor ecx,edi
2064 ror edx,5
2065 and ecx,esi
2066 mov DWORD [12+esp],esi
2067 xor edx,esi
2068 add ebx,DWORD [24+esp]
2069 xor edi,ecx
2070 ror edx,6
2071 mov esi,ebp
2072 add ebx,edi
2073 ror esi,9
2074 mov ecx,ebp
2075 mov edi,DWORD [esp]
2076 xor esi,ebp
2077 mov DWORD [28+esp],ebp
2078 xor ebp,edi
2079 ror esi,11
2080 and eax,ebp
2081 lea edx,[2820302411+edx*1+ebx]
2082 xor esi,ecx
2083 xor eax,edi
2084 mov ecx,DWORD [76+esp]
2085 ror esi,2
2086 add eax,edx
2087 add edx,DWORD [8+esp]
2088 add eax,esi
2089 mov esi,DWORD [64+esp]
2090 mov ebx,ecx
2091 ror ecx,11
2092 mov edi,esi
2093 ror esi,2
2094 xor ecx,ebx
2095 shr ebx,3
2096 ror ecx,7
2097 xor esi,edi
2098 xor ebx,ecx
2099 ror esi,17
2100 add ebx,DWORD [72+esp]
2101 shr edi,10
2102 add ebx,DWORD [44+esp]
2103 mov ecx,edx
2104 xor edi,esi
2105 mov esi,DWORD [12+esp]
2106 ror edx,14
2107 add ebx,edi
2108 mov edi,DWORD [16+esp]
2109 xor edx,ecx
2110 mov DWORD [72+esp],ebx
2111 xor esi,edi
2112 ror edx,5
2113 and esi,ecx
2114 mov DWORD [8+esp],ecx
2115 xor edx,ecx
2116 add ebx,DWORD [20+esp]
2117 xor edi,esi
2118 ror edx,6
2119 mov ecx,eax
2120 add ebx,edi
2121 ror ecx,9
2122 mov esi,eax
2123 mov edi,DWORD [28+esp]
2124 xor ecx,eax
2125 mov DWORD [24+esp],eax
2126 xor eax,edi
2127 ror ecx,11
2128 and ebp,eax
2129 lea edx,[3259730800+edx*1+ebx]
2130 xor ecx,esi
2131 xor ebp,edi
2132 mov esi,DWORD [80+esp]
2133 ror ecx,2
2134 add ebp,edx
2135 add edx,DWORD [4+esp]
2136 add ebp,ecx
2137 mov ecx,DWORD [68+esp]
2138 mov ebx,esi
2139 ror esi,11
2140 mov edi,ecx
2141 ror ecx,2
2142 xor esi,ebx
2143 shr ebx,3
2144 ror esi,7
2145 xor ecx,edi
2146 xor ebx,esi
2147 ror ecx,17
2148 add ebx,DWORD [76+esp]
2149 shr edi,10
2150 add ebx,DWORD [48+esp]
2151 mov esi,edx
2152 xor edi,ecx
2153 mov ecx,DWORD [8+esp]
2154 ror edx,14
2155 add ebx,edi
2156 mov edi,DWORD [12+esp]
2157 xor edx,esi
2158 mov DWORD [76+esp],ebx
2159 xor ecx,edi
2160 ror edx,5
2161 and ecx,esi
2162 mov DWORD [4+esp],esi
2163 xor edx,esi
2164 add ebx,DWORD [16+esp]
2165 xor edi,ecx
2166 ror edx,6
2167 mov esi,ebp
2168 add ebx,edi
2169 ror esi,9
2170 mov ecx,ebp
2171 mov edi,DWORD [24+esp]
2172 xor esi,ebp
2173 mov DWORD [20+esp],ebp
2174 xor ebp,edi
2175 ror esi,11
2176 and eax,ebp
2177 lea edx,[3345764771+edx*1+ebx]
2178 xor esi,ecx
2179 xor eax,edi
2180 mov ecx,DWORD [84+esp]
2181 ror esi,2
2182 add eax,edx
2183 add edx,DWORD [esp]
2184 add eax,esi
2185 mov esi,DWORD [72+esp]
2186 mov ebx,ecx
2187 ror ecx,11
2188 mov edi,esi
2189 ror esi,2
2190 xor ecx,ebx
2191 shr ebx,3
2192 ror ecx,7
2193 xor esi,edi
2194 xor ebx,ecx
2195 ror esi,17
2196 add ebx,DWORD [80+esp]
2197 shr edi,10
2198 add ebx,DWORD [52+esp]
2199 mov ecx,edx
2200 xor edi,esi
2201 mov esi,DWORD [4+esp]
2202 ror edx,14
2203 add ebx,edi
2204 mov edi,DWORD [8+esp]
2205 xor edx,ecx
2206 mov DWORD [80+esp],ebx
2207 xor esi,edi
2208 ror edx,5
2209 and esi,ecx
2210 mov DWORD [esp],ecx
2211 xor edx,ecx
2212 add ebx,DWORD [12+esp]
2213 xor edi,esi
2214 ror edx,6
2215 mov ecx,eax
2216 add ebx,edi
2217 ror ecx,9
2218 mov esi,eax
2219 mov edi,DWORD [20+esp]
2220 xor ecx,eax
2221 mov DWORD [16+esp],eax
2222 xor eax,edi
2223 ror ecx,11
2224 and ebp,eax
2225 lea edx,[3516065817+edx*1+ebx]
2226 xor ecx,esi
2227 xor ebp,edi
2228 mov esi,DWORD [88+esp]
2229 ror ecx,2
2230 add ebp,edx
2231 add edx,DWORD [28+esp]
2232 add ebp,ecx
2233 mov ecx,DWORD [76+esp]
2234 mov ebx,esi
2235 ror esi,11
2236 mov edi,ecx
2237 ror ecx,2
2238 xor esi,ebx
2239 shr ebx,3
2240 ror esi,7
2241 xor ecx,edi
2242 xor ebx,esi
2243 ror ecx,17
2244 add ebx,DWORD [84+esp]
2245 shr edi,10
2246 add ebx,DWORD [56+esp]
2247 mov esi,edx
2248 xor edi,ecx
2249 mov ecx,DWORD [esp]
2250 ror edx,14
2251 add ebx,edi
2252 mov edi,DWORD [4+esp]
2253 xor edx,esi
2254 mov DWORD [84+esp],ebx
2255 xor ecx,edi
2256 ror edx,5
2257 and ecx,esi
2258 mov DWORD [28+esp],esi
2259 xor edx,esi
2260 add ebx,DWORD [8+esp]
2261 xor edi,ecx
2262 ror edx,6
2263 mov esi,ebp
2264 add ebx,edi
2265 ror esi,9
2266 mov ecx,ebp
2267 mov edi,DWORD [16+esp]
2268 xor esi,ebp
2269 mov DWORD [12+esp],ebp
2270 xor ebp,edi
2271 ror esi,11
2272 and eax,ebp
2273 lea edx,[3600352804+edx*1+ebx]
2274 xor esi,ecx
2275 xor eax,edi
2276 mov ecx,DWORD [92+esp]
2277 ror esi,2
2278 add eax,edx
2279 add edx,DWORD [24+esp]
2280 add eax,esi
2281 mov esi,DWORD [80+esp]
2282 mov ebx,ecx
2283 ror ecx,11
2284 mov edi,esi
2285 ror esi,2
2286 xor ecx,ebx
2287 shr ebx,3
2288 ror ecx,7
2289 xor esi,edi
2290 xor ebx,ecx
2291 ror esi,17
2292 add ebx,DWORD [88+esp]
2293 shr edi,10
2294 add ebx,DWORD [60+esp]
2295 mov ecx,edx
2296 xor edi,esi
2297 mov esi,DWORD [28+esp]
2298 ror edx,14
2299 add ebx,edi
2300 mov edi,DWORD [esp]
2301 xor edx,ecx
2302 mov DWORD [88+esp],ebx
2303 xor esi,edi
2304 ror edx,5
2305 and esi,ecx
2306 mov DWORD [24+esp],ecx
2307 xor edx,ecx
2308 add ebx,DWORD [4+esp]
2309 xor edi,esi
2310 ror edx,6
2311 mov ecx,eax
2312 add ebx,edi
2313 ror ecx,9
2314 mov esi,eax
2315 mov edi,DWORD [12+esp]
2316 xor ecx,eax
2317 mov DWORD [8+esp],eax
2318 xor eax,edi
2319 ror ecx,11
2320 and ebp,eax
2321 lea edx,[4094571909+edx*1+ebx]
2322 xor ecx,esi
2323 xor ebp,edi
2324 mov esi,DWORD [32+esp]
2325 ror ecx,2
2326 add ebp,edx
2327 add edx,DWORD [20+esp]
2328 add ebp,ecx
2329 mov ecx,DWORD [84+esp]
2330 mov ebx,esi
2331 ror esi,11
2332 mov edi,ecx
2333 ror ecx,2
2334 xor esi,ebx
2335 shr ebx,3
2336 ror esi,7
2337 xor ecx,edi
2338 xor ebx,esi
2339 ror ecx,17
2340 add ebx,DWORD [92+esp]
2341 shr edi,10
2342 add ebx,DWORD [64+esp]
2343 mov esi,edx
2344 xor edi,ecx
2345 mov ecx,DWORD [24+esp]
2346 ror edx,14
2347 add ebx,edi
2348 mov edi,DWORD [28+esp]
2349 xor edx,esi
2350 mov DWORD [92+esp],ebx
2351 xor ecx,edi
2352 ror edx,5
2353 and ecx,esi
2354 mov DWORD [20+esp],esi
2355 xor edx,esi
2356 add ebx,DWORD [esp]
2357 xor edi,ecx
2358 ror edx,6
2359 mov esi,ebp
2360 add ebx,edi
2361 ror esi,9
2362 mov ecx,ebp
2363 mov edi,DWORD [8+esp]
2364 xor esi,ebp
2365 mov DWORD [4+esp],ebp
2366 xor ebp,edi
2367 ror esi,11
2368 and eax,ebp
2369 lea edx,[275423344+edx*1+ebx]
2370 xor esi,ecx
2371 xor eax,edi
2372 mov ecx,DWORD [36+esp]
2373 ror esi,2
2374 add eax,edx
2375 add edx,DWORD [16+esp]
2376 add eax,esi
2377 mov esi,DWORD [88+esp]
2378 mov ebx,ecx
2379 ror ecx,11
2380 mov edi,esi
2381 ror esi,2
2382 xor ecx,ebx
2383 shr ebx,3
2384 ror ecx,7
2385 xor esi,edi
2386 xor ebx,ecx
2387 ror esi,17
2388 add ebx,DWORD [32+esp]
2389 shr edi,10
2390 add ebx,DWORD [68+esp]
2391 mov ecx,edx
2392 xor edi,esi
2393 mov esi,DWORD [20+esp]
2394 ror edx,14
2395 add ebx,edi
2396 mov edi,DWORD [24+esp]
2397 xor edx,ecx
2398 mov DWORD [32+esp],ebx
2399 xor esi,edi
2400 ror edx,5
2401 and esi,ecx
2402 mov DWORD [16+esp],ecx
2403 xor edx,ecx
2404 add ebx,DWORD [28+esp]
2405 xor edi,esi
2406 ror edx,6
2407 mov ecx,eax
2408 add ebx,edi
2409 ror ecx,9
2410 mov esi,eax
2411 mov edi,DWORD [4+esp]
2412 xor ecx,eax
2413 mov DWORD [esp],eax
2414 xor eax,edi
2415 ror ecx,11
2416 and ebp,eax
2417 lea edx,[430227734+edx*1+ebx]
2418 xor ecx,esi
2419 xor ebp,edi
2420 mov esi,DWORD [40+esp]
2421 ror ecx,2
2422 add ebp,edx
2423 add edx,DWORD [12+esp]
2424 add ebp,ecx
2425 mov ecx,DWORD [92+esp]
2426 mov ebx,esi
2427 ror esi,11
2428 mov edi,ecx
2429 ror ecx,2
2430 xor esi,ebx
2431 shr ebx,3
2432 ror esi,7
2433 xor ecx,edi
2434 xor ebx,esi
2435 ror ecx,17
2436 add ebx,DWORD [36+esp]
2437 shr edi,10
2438 add ebx,DWORD [72+esp]
2439 mov esi,edx
2440 xor edi,ecx
2441 mov ecx,DWORD [16+esp]
2442 ror edx,14
2443 add ebx,edi
2444 mov edi,DWORD [20+esp]
2445 xor edx,esi
2446 mov DWORD [36+esp],ebx
2447 xor ecx,edi
2448 ror edx,5
2449 and ecx,esi
2450 mov DWORD [12+esp],esi
2451 xor edx,esi
2452 add ebx,DWORD [24+esp]
2453 xor edi,ecx
2454 ror edx,6
2455 mov esi,ebp
2456 add ebx,edi
2457 ror esi,9
2458 mov ecx,ebp
2459 mov edi,DWORD [esp]
2460 xor esi,ebp
2461 mov DWORD [28+esp],ebp
2462 xor ebp,edi
2463 ror esi,11
2464 and eax,ebp
2465 lea edx,[506948616+edx*1+ebx]
2466 xor esi,ecx
2467 xor eax,edi
2468 mov ecx,DWORD [44+esp]
2469 ror esi,2
2470 add eax,edx
2471 add edx,DWORD [8+esp]
2472 add eax,esi
2473 mov esi,DWORD [32+esp]
2474 mov ebx,ecx
2475 ror ecx,11
2476 mov edi,esi
2477 ror esi,2
2478 xor ecx,ebx
2479 shr ebx,3
2480 ror ecx,7
2481 xor esi,edi
2482 xor ebx,ecx
2483 ror esi,17
2484 add ebx,DWORD [40+esp]
2485 shr edi,10
2486 add ebx,DWORD [76+esp]
2487 mov ecx,edx
2488 xor edi,esi
2489 mov esi,DWORD [12+esp]
2490 ror edx,14
2491 add ebx,edi
2492 mov edi,DWORD [16+esp]
2493 xor edx,ecx
2494 mov DWORD [40+esp],ebx
2495 xor esi,edi
2496 ror edx,5
2497 and esi,ecx
2498 mov DWORD [8+esp],ecx
2499 xor edx,ecx
2500 add ebx,DWORD [20+esp]
2501 xor edi,esi
2502 ror edx,6
2503 mov ecx,eax
2504 add ebx,edi
2505 ror ecx,9
2506 mov esi,eax
2507 mov edi,DWORD [28+esp]
2508 xor ecx,eax
2509 mov DWORD [24+esp],eax
2510 xor eax,edi
2511 ror ecx,11
2512 and ebp,eax
2513 lea edx,[659060556+edx*1+ebx]
2514 xor ecx,esi
2515 xor ebp,edi
2516 mov esi,DWORD [48+esp]
2517 ror ecx,2
2518 add ebp,edx
2519 add edx,DWORD [4+esp]
2520 add ebp,ecx
2521 mov ecx,DWORD [36+esp]
2522 mov ebx,esi
2523 ror esi,11
2524 mov edi,ecx
2525 ror ecx,2
2526 xor esi,ebx
2527 shr ebx,3
2528 ror esi,7
2529 xor ecx,edi
2530 xor ebx,esi
2531 ror ecx,17
2532 add ebx,DWORD [44+esp]
2533 shr edi,10
2534 add ebx,DWORD [80+esp]
2535 mov esi,edx
2536 xor edi,ecx
2537 mov ecx,DWORD [8+esp]
2538 ror edx,14
2539 add ebx,edi
2540 mov edi,DWORD [12+esp]
2541 xor edx,esi
2542 mov DWORD [44+esp],ebx
2543 xor ecx,edi
2544 ror edx,5
2545 and ecx,esi
2546 mov DWORD [4+esp],esi
2547 xor edx,esi
2548 add ebx,DWORD [16+esp]
2549 xor edi,ecx
2550 ror edx,6
2551 mov esi,ebp
2552 add ebx,edi
2553 ror esi,9
2554 mov ecx,ebp
2555 mov edi,DWORD [24+esp]
2556 xor esi,ebp
2557 mov DWORD [20+esp],ebp
2558 xor ebp,edi
2559 ror esi,11
2560 and eax,ebp
2561 lea edx,[883997877+edx*1+ebx]
2562 xor esi,ecx
2563 xor eax,edi
2564 mov ecx,DWORD [52+esp]
2565 ror esi,2
2566 add eax,edx
2567 add edx,DWORD [esp]
2568 add eax,esi
2569 mov esi,DWORD [40+esp]
2570 mov ebx,ecx
2571 ror ecx,11
2572 mov edi,esi
2573 ror esi,2
2574 xor ecx,ebx
2575 shr ebx,3
2576 ror ecx,7
2577 xor esi,edi
2578 xor ebx,ecx
2579 ror esi,17
2580 add ebx,DWORD [48+esp]
2581 shr edi,10
2582 add ebx,DWORD [84+esp]
2583 mov ecx,edx
2584 xor edi,esi
2585 mov esi,DWORD [4+esp]
2586 ror edx,14
2587 add ebx,edi
2588 mov edi,DWORD [8+esp]
2589 xor edx,ecx
2590 mov DWORD [48+esp],ebx
2591 xor esi,edi
2592 ror edx,5
2593 and esi,ecx
2594 mov DWORD [esp],ecx
2595 xor edx,ecx
2596 add ebx,DWORD [12+esp]
2597 xor edi,esi
2598 ror edx,6
2599 mov ecx,eax
2600 add ebx,edi
2601 ror ecx,9
2602 mov esi,eax
2603 mov edi,DWORD [20+esp]
2604 xor ecx,eax
2605 mov DWORD [16+esp],eax
2606 xor eax,edi
2607 ror ecx,11
2608 and ebp,eax
2609 lea edx,[958139571+edx*1+ebx]
2610 xor ecx,esi
2611 xor ebp,edi
2612 mov esi,DWORD [56+esp]
2613 ror ecx,2
2614 add ebp,edx
2615 add edx,DWORD [28+esp]
2616 add ebp,ecx
2617 mov ecx,DWORD [44+esp]
2618 mov ebx,esi
2619 ror esi,11
2620 mov edi,ecx
2621 ror ecx,2
2622 xor esi,ebx
2623 shr ebx,3
2624 ror esi,7
2625 xor ecx,edi
2626 xor ebx,esi
2627 ror ecx,17
2628 add ebx,DWORD [52+esp]
2629 shr edi,10
2630 add ebx,DWORD [88+esp]
2631 mov esi,edx
2632 xor edi,ecx
2633 mov ecx,DWORD [esp]
2634 ror edx,14
2635 add ebx,edi
2636 mov edi,DWORD [4+esp]
2637 xor edx,esi
2638 mov DWORD [52+esp],ebx
2639 xor ecx,edi
2640 ror edx,5
2641 and ecx,esi
2642 mov DWORD [28+esp],esi
2643 xor edx,esi
2644 add ebx,DWORD [8+esp]
2645 xor edi,ecx
2646 ror edx,6
2647 mov esi,ebp
2648 add ebx,edi
2649 ror esi,9
2650 mov ecx,ebp
2651 mov edi,DWORD [16+esp]
2652 xor esi,ebp
2653 mov DWORD [12+esp],ebp
2654 xor ebp,edi
2655 ror esi,11
2656 and eax,ebp
2657 lea edx,[1322822218+edx*1+ebx]
2658 xor esi,ecx
2659 xor eax,edi
2660 mov ecx,DWORD [60+esp]
2661 ror esi,2
2662 add eax,edx
2663 add edx,DWORD [24+esp]
2664 add eax,esi
2665 mov esi,DWORD [48+esp]
2666 mov ebx,ecx
2667 ror ecx,11
2668 mov edi,esi
2669 ror esi,2
2670 xor ecx,ebx
2671 shr ebx,3
2672 ror ecx,7
2673 xor esi,edi
2674 xor ebx,ecx
2675 ror esi,17
2676 add ebx,DWORD [56+esp]
2677 shr edi,10
2678 add ebx,DWORD [92+esp]
2679 mov ecx,edx
2680 xor edi,esi
2681 mov esi,DWORD [28+esp]
2682 ror edx,14
2683 add ebx,edi
2684 mov edi,DWORD [esp]
2685 xor edx,ecx
2686 mov DWORD [56+esp],ebx
2687 xor esi,edi
2688 ror edx,5
2689 and esi,ecx
2690 mov DWORD [24+esp],ecx
2691 xor edx,ecx
2692 add ebx,DWORD [4+esp]
2693 xor edi,esi
2694 ror edx,6
2695 mov ecx,eax
2696 add ebx,edi
2697 ror ecx,9
2698 mov esi,eax
2699 mov edi,DWORD [12+esp]
2700 xor ecx,eax
2701 mov DWORD [8+esp],eax
2702 xor eax,edi
2703 ror ecx,11
2704 and ebp,eax
2705 lea edx,[1537002063+edx*1+ebx]
2706 xor ecx,esi
2707 xor ebp,edi
2708 mov esi,DWORD [64+esp]
2709 ror ecx,2
2710 add ebp,edx
2711 add edx,DWORD [20+esp]
2712 add ebp,ecx
2713 mov ecx,DWORD [52+esp]
2714 mov ebx,esi
2715 ror esi,11
2716 mov edi,ecx
2717 ror ecx,2
2718 xor esi,ebx
2719 shr ebx,3
2720 ror esi,7
2721 xor ecx,edi
2722 xor ebx,esi
2723 ror ecx,17
2724 add ebx,DWORD [60+esp]
2725 shr edi,10
2726 add ebx,DWORD [32+esp]
2727 mov esi,edx
2728 xor edi,ecx
2729 mov ecx,DWORD [24+esp]
2730 ror edx,14
2731 add ebx,edi
2732 mov edi,DWORD [28+esp]
2733 xor edx,esi
2734 mov DWORD [60+esp],ebx
2735 xor ecx,edi
2736 ror edx,5
2737 and ecx,esi
2738 mov DWORD [20+esp],esi
2739 xor edx,esi
2740 add ebx,DWORD [esp]
2741 xor edi,ecx
2742 ror edx,6
2743 mov esi,ebp
2744 add ebx,edi
2745 ror esi,9
2746 mov ecx,ebp
2747 mov edi,DWORD [8+esp]
2748 xor esi,ebp
2749 mov DWORD [4+esp],ebp
2750 xor ebp,edi
2751 ror esi,11
2752 and eax,ebp
2753 lea edx,[1747873779+edx*1+ebx]
2754 xor esi,ecx
2755 xor eax,edi
2756 mov ecx,DWORD [68+esp]
2757 ror esi,2
2758 add eax,edx
2759 add edx,DWORD [16+esp]
2760 add eax,esi
2761 mov esi,DWORD [56+esp]
2762 mov ebx,ecx
2763 ror ecx,11
2764 mov edi,esi
2765 ror esi,2
2766 xor ecx,ebx
2767 shr ebx,3
2768 ror ecx,7
2769 xor esi,edi
2770 xor ebx,ecx
2771 ror esi,17
2772 add ebx,DWORD [64+esp]
2773 shr edi,10
2774 add ebx,DWORD [36+esp]
2775 mov ecx,edx
2776 xor edi,esi
2777 mov esi,DWORD [20+esp]
2778 ror edx,14
2779 add ebx,edi
2780 mov edi,DWORD [24+esp]
2781 xor edx,ecx
2782 mov DWORD [64+esp],ebx
2783 xor esi,edi
2784 ror edx,5
2785 and esi,ecx
2786 mov DWORD [16+esp],ecx
2787 xor edx,ecx
2788 add ebx,DWORD [28+esp]
2789 xor edi,esi
2790 ror edx,6
2791 mov ecx,eax
2792 add ebx,edi
2793 ror ecx,9
2794 mov esi,eax
2795 mov edi,DWORD [4+esp]
2796 xor ecx,eax
2797 mov DWORD [esp],eax
2798 xor eax,edi
2799 ror ecx,11
2800 and ebp,eax
2801 lea edx,[1955562222+edx*1+ebx]
2802 xor ecx,esi
2803 xor ebp,edi
2804 mov esi,DWORD [72+esp]
2805 ror ecx,2
2806 add ebp,edx
2807 add edx,DWORD [12+esp]
2808 add ebp,ecx
2809 mov ecx,DWORD [60+esp]
2810 mov ebx,esi
2811 ror esi,11
2812 mov edi,ecx
2813 ror ecx,2
2814 xor esi,ebx
2815 shr ebx,3
2816 ror esi,7
2817 xor ecx,edi
2818 xor ebx,esi
2819 ror ecx,17
2820 add ebx,DWORD [68+esp]
2821 shr edi,10
2822 add ebx,DWORD [40+esp]
2823 mov esi,edx
2824 xor edi,ecx
2825 mov ecx,DWORD [16+esp]
2826 ror edx,14
2827 add ebx,edi
2828 mov edi,DWORD [20+esp]
2829 xor edx,esi
2830 mov DWORD [68+esp],ebx
2831 xor ecx,edi
2832 ror edx,5
2833 and ecx,esi
2834 mov DWORD [12+esp],esi
2835 xor edx,esi
2836 add ebx,DWORD [24+esp]
2837 xor edi,ecx
2838 ror edx,6
2839 mov esi,ebp
2840 add ebx,edi
2841 ror esi,9
2842 mov ecx,ebp
2843 mov edi,DWORD [esp]
2844 xor esi,ebp
2845 mov DWORD [28+esp],ebp
2846 xor ebp,edi
2847 ror esi,11
2848 and eax,ebp
2849 lea edx,[2024104815+edx*1+ebx]
2850 xor esi,ecx
2851 xor eax,edi
2852 mov ecx,DWORD [76+esp]
2853 ror esi,2
2854 add eax,edx
2855 add edx,DWORD [8+esp]
2856 add eax,esi
2857 mov esi,DWORD [64+esp]
2858 mov ebx,ecx
2859 ror ecx,11
2860 mov edi,esi
2861 ror esi,2
2862 xor ecx,ebx
2863 shr ebx,3
2864 ror ecx,7
2865 xor esi,edi
2866 xor ebx,ecx
2867 ror esi,17
2868 add ebx,DWORD [72+esp]
2869 shr edi,10
2870 add ebx,DWORD [44+esp]
2871 mov ecx,edx
2872 xor edi,esi
2873 mov esi,DWORD [12+esp]
2874 ror edx,14
2875 add ebx,edi
2876 mov edi,DWORD [16+esp]
2877 xor edx,ecx
2878 mov DWORD [72+esp],ebx
2879 xor esi,edi
2880 ror edx,5
2881 and esi,ecx
2882 mov DWORD [8+esp],ecx
2883 xor edx,ecx
2884 add ebx,DWORD [20+esp]
2885 xor edi,esi
2886 ror edx,6
2887 mov ecx,eax
2888 add ebx,edi
2889 ror ecx,9
2890 mov esi,eax
2891 mov edi,DWORD [28+esp]
2892 xor ecx,eax
2893 mov DWORD [24+esp],eax
2894 xor eax,edi
2895 ror ecx,11
2896 and ebp,eax
2897 lea edx,[2227730452+edx*1+ebx]
2898 xor ecx,esi
2899 xor ebp,edi
2900 mov esi,DWORD [80+esp]
2901 ror ecx,2
2902 add ebp,edx
2903 add edx,DWORD [4+esp]
2904 add ebp,ecx
2905 mov ecx,DWORD [68+esp]
2906 mov ebx,esi
2907 ror esi,11
2908 mov edi,ecx
2909 ror ecx,2
2910 xor esi,ebx
2911 shr ebx,3
2912 ror esi,7
2913 xor ecx,edi
2914 xor ebx,esi
2915 ror ecx,17
2916 add ebx,DWORD [76+esp]
2917 shr edi,10
2918 add ebx,DWORD [48+esp]
2919 mov esi,edx
2920 xor edi,ecx
2921 mov ecx,DWORD [8+esp]
2922 ror edx,14
2923 add ebx,edi
2924 mov edi,DWORD [12+esp]
2925 xor edx,esi
2926 mov DWORD [76+esp],ebx
2927 xor ecx,edi
2928 ror edx,5
2929 and ecx,esi
2930 mov DWORD [4+esp],esi
2931 xor edx,esi
2932 add ebx,DWORD [16+esp]
2933 xor edi,ecx
2934 ror edx,6
2935 mov esi,ebp
2936 add ebx,edi
2937 ror esi,9
2938 mov ecx,ebp
2939 mov edi,DWORD [24+esp]
2940 xor esi,ebp
2941 mov DWORD [20+esp],ebp
2942 xor ebp,edi
2943 ror esi,11
2944 and eax,ebp
2945 lea edx,[2361852424+edx*1+ebx]
2946 xor esi,ecx
2947 xor eax,edi
2948 mov ecx,DWORD [84+esp]
2949 ror esi,2
2950 add eax,edx
2951 add edx,DWORD [esp]
2952 add eax,esi
2953 mov esi,DWORD [72+esp]
2954 mov ebx,ecx
2955 ror ecx,11
2956 mov edi,esi
2957 ror esi,2
2958 xor ecx,ebx
2959 shr ebx,3
2960 ror ecx,7
2961 xor esi,edi
2962 xor ebx,ecx
2963 ror esi,17
2964 add ebx,DWORD [80+esp]
2965 shr edi,10
2966 add ebx,DWORD [52+esp]
2967 mov ecx,edx
2968 xor edi,esi
2969 mov esi,DWORD [4+esp]
2970 ror edx,14
2971 add ebx,edi
2972 mov edi,DWORD [8+esp]
2973 xor edx,ecx
2974 mov DWORD [80+esp],ebx
2975 xor esi,edi
2976 ror edx,5
2977 and esi,ecx
2978 mov DWORD [esp],ecx
2979 xor edx,ecx
2980 add ebx,DWORD [12+esp]
2981 xor edi,esi
2982 ror edx,6
2983 mov ecx,eax
2984 add ebx,edi
2985 ror ecx,9
2986 mov esi,eax
2987 mov edi,DWORD [20+esp]
2988 xor ecx,eax
2989 mov DWORD [16+esp],eax
2990 xor eax,edi
2991 ror ecx,11
2992 and ebp,eax
2993 lea edx,[2428436474+edx*1+ebx]
2994 xor ecx,esi
2995 xor ebp,edi
2996 mov esi,DWORD [88+esp]
2997 ror ecx,2
2998 add ebp,edx
2999 add edx,DWORD [28+esp]
3000 add ebp,ecx
3001 mov ecx,DWORD [76+esp]
3002 mov ebx,esi
3003 ror esi,11
3004 mov edi,ecx
3005 ror ecx,2
3006 xor esi,ebx
3007 shr ebx,3
3008 ror esi,7
3009 xor ecx,edi
3010 xor ebx,esi
3011 ror ecx,17
3012 add ebx,DWORD [84+esp]
3013 shr edi,10
3014 add ebx,DWORD [56+esp]
3015 mov esi,edx
3016 xor edi,ecx
3017 mov ecx,DWORD [esp]
3018 ror edx,14
3019 add ebx,edi
3020 mov edi,DWORD [4+esp]
3021 xor edx,esi
3022 mov DWORD [84+esp],ebx
3023 xor ecx,edi
3024 ror edx,5
3025 and ecx,esi
3026 mov DWORD [28+esp],esi
3027 xor edx,esi
3028 add ebx,DWORD [8+esp]
3029 xor edi,ecx
3030 ror edx,6
3031 mov esi,ebp
3032 add ebx,edi
3033 ror esi,9
3034 mov ecx,ebp
3035 mov edi,DWORD [16+esp]
3036 xor esi,ebp
3037 mov DWORD [12+esp],ebp
3038 xor ebp,edi
3039 ror esi,11
3040 and eax,ebp
3041 lea edx,[2756734187+edx*1+ebx]
3042 xor esi,ecx
3043 xor eax,edi
3044 mov ecx,DWORD [92+esp]
3045 ror esi,2
3046 add eax,edx
3047 add edx,DWORD [24+esp]
3048 add eax,esi
3049 mov esi,DWORD [80+esp]
3050 mov ebx,ecx
3051 ror ecx,11
3052 mov edi,esi
3053 ror esi,2
3054 xor ecx,ebx
3055 shr ebx,3
3056 ror ecx,7
3057 xor esi,edi
3058 xor ebx,ecx
3059 ror esi,17
3060 add ebx,DWORD [88+esp]
3061 shr edi,10
3062 add ebx,DWORD [60+esp]
3063 mov ecx,edx
3064 xor edi,esi
3065 mov esi,DWORD [28+esp]
3066 ror edx,14
3067 add ebx,edi
3068 mov edi,DWORD [esp]
3069 xor edx,ecx
3070 xor esi,edi
3071 ror edx,5
3072 and esi,ecx
3073 mov DWORD [24+esp],ecx
3074 xor edx,ecx
3075 add ebx,DWORD [4+esp]
3076 xor edi,esi
3077 ror edx,6
3078 mov ecx,eax
3079 add ebx,edi
3080 ror ecx,9
3081 mov esi,eax
3082 mov edi,DWORD [12+esp]
3083 xor ecx,eax
3084 mov DWORD [8+esp],eax
3085 xor eax,edi
3086 ror ecx,11
3087 and ebp,eax
3088 lea edx,[3204031479+edx*1+ebx]
3089 xor ecx,esi
3090 xor ebp,edi
3091 mov esi,DWORD [32+esp]
3092 ror ecx,2
3093 add ebp,edx
3094 add edx,DWORD [20+esp]
3095 add ebp,ecx
3096 mov ecx,DWORD [84+esp]
3097 mov ebx,esi
3098 ror esi,11
3099 mov edi,ecx
3100 ror ecx,2
3101 xor esi,ebx
3102 shr ebx,3
3103 ror esi,7
3104 xor ecx,edi
3105 xor ebx,esi
3106 ror ecx,17
3107 add ebx,DWORD [92+esp]
3108 shr edi,10
3109 add ebx,DWORD [64+esp]
3110 mov esi,edx
3111 xor edi,ecx
3112 mov ecx,DWORD [24+esp]
3113 ror edx,14
3114 add ebx,edi
3115 mov edi,DWORD [28+esp]
3116 xor edx,esi
3117 xor ecx,edi
3118 ror edx,5
3119 and ecx,esi
3120 mov DWORD [20+esp],esi
3121 xor edx,esi
3122 add ebx,DWORD [esp]
3123 xor edi,ecx
3124 ror edx,6
3125 mov esi,ebp
3126 add ebx,edi
3127 ror esi,9
3128 mov ecx,ebp
3129 mov edi,DWORD [8+esp]
3130 xor esi,ebp
3131 mov DWORD [4+esp],ebp
3132 xor ebp,edi
3133 ror esi,11
3134 and eax,ebp
3135 lea edx,[3329325298+edx*1+ebx]
3136 xor esi,ecx
3137 xor eax,edi
3138 ror esi,2
3139 add eax,edx
3140 add edx,DWORD [16+esp]
3141 add eax,esi
3142 mov esi,DWORD [96+esp]
3143 xor ebp,edi
3144 mov ecx,DWORD [12+esp]
3145 add eax,DWORD [esi]
3146 add ebp,DWORD [4+esi]
3147 add edi,DWORD [8+esi]
3148 add ecx,DWORD [12+esi]
3149 mov DWORD [esi],eax
3150 mov DWORD [4+esi],ebp
3151 mov DWORD [8+esi],edi
3152 mov DWORD [12+esi],ecx
3153 mov DWORD [4+esp],ebp
3154 xor ebp,edi
3155 mov DWORD [8+esp],edi
3156 mov DWORD [12+esp],ecx
3157 mov edi,DWORD [20+esp]
3158 mov ebx,DWORD [24+esp]
3159 mov ecx,DWORD [28+esp]
3160 add edx,DWORD [16+esi]
3161 add edi,DWORD [20+esi]
3162 add ebx,DWORD [24+esi]
3163 add ecx,DWORD [28+esi]
3164 mov DWORD [16+esi],edx
3165 mov DWORD [20+esi],edi
3166 mov DWORD [24+esi],ebx
3167 mov DWORD [28+esi],ecx
3168 mov DWORD [20+esp],edi
3169 mov edi,DWORD [100+esp]
3170 mov DWORD [24+esp],ebx
3171 mov DWORD [28+esp],ecx
3172 cmp edi,DWORD [104+esp]
3173 jb NEAR L$009grand_loop
3174 mov esp,DWORD [108+esp]
3175 pop edi
3176 pop esi
3177 pop ebx
3178 pop ebp
3179 ret
3180 align 32
3181 L$005SSSE3:
3182 lea esp,[esp-96]
3183 mov eax,DWORD [esi]
3184 mov ebx,DWORD [4+esi]
3185 mov ecx,DWORD [8+esi]
3186 mov edi,DWORD [12+esi]
3187 mov DWORD [4+esp],ebx
3188 xor ebx,ecx
3189 mov DWORD [8+esp],ecx
3190 mov DWORD [12+esp],edi
3191 mov edx,DWORD [16+esi]
3192 mov edi,DWORD [20+esi]
3193 mov ecx,DWORD [24+esi]
3194 mov esi,DWORD [28+esi]
3195 mov DWORD [20+esp],edi
3196 mov edi,DWORD [100+esp]
3197 mov DWORD [24+esp],ecx
3198 mov DWORD [28+esp],esi
3199 movdqa xmm7,[256+ebp]
3200 jmp NEAR L$010grand_ssse3
3201 align 16
3202 L$010grand_ssse3:
3203 movdqu xmm0,[edi]
3204 movdqu xmm1,[16+edi]
3205 movdqu xmm2,[32+edi]
3206 movdqu xmm3,[48+edi]
3207 add edi,64
3208 db 102,15,56,0,199
3209 mov DWORD [100+esp],edi
3210 db 102,15,56,0,207
3211 movdqa xmm4,[ebp]
3212 db 102,15,56,0,215
3213 movdqa xmm5,[16+ebp]
3214 paddd xmm4,xmm0
3215 db 102,15,56,0,223
3216 movdqa xmm6,[32+ebp]
3217 paddd xmm5,xmm1
3218 movdqa xmm7,[48+ebp]
3219 movdqa [32+esp],xmm4
3220 paddd xmm6,xmm2
3221 movdqa [48+esp],xmm5
3222 paddd xmm7,xmm3
3223 movdqa [64+esp],xmm6
3224 movdqa [80+esp],xmm7
3225 jmp NEAR L$011ssse3_00_47
3226 align 16
3227 L$011ssse3_00_47:
3228 add ebp,64
3229 mov ecx,edx
3230 movdqa xmm4,xmm1
3231 ror edx,14
3232 mov esi,DWORD [20+esp]
3233 movdqa xmm7,xmm3
3234 xor edx,ecx
3235 mov edi,DWORD [24+esp]
3236 db 102,15,58,15,224,4
3237 xor esi,edi
3238 ror edx,5
3239 and esi,ecx
3240 db 102,15,58,15,250,4
3241 mov DWORD [16+esp],ecx
3242 xor edx,ecx
3243 xor edi,esi
3244 movdqa xmm5,xmm4
3245 ror edx,6
3246 mov ecx,eax
3247 movdqa xmm6,xmm4
3248 add edx,edi
3249 mov edi,DWORD [4+esp]
3250 psrld xmm4,3
3251 mov esi,eax
3252 ror ecx,9
3253 paddd xmm0,xmm7
3254 mov DWORD [esp],eax
3255 xor ecx,eax
3256 psrld xmm6,7
3257 xor eax,edi
3258 add edx,DWORD [28+esp]
3259 ror ecx,11
3260 and ebx,eax
3261 pshufd xmm7,xmm3,250
3262 xor ecx,esi
3263 add edx,DWORD [32+esp]
3264 pslld xmm5,14
3265 xor ebx,edi
3266 ror ecx,2
3267 pxor xmm4,xmm6
3268 add ebx,edx
3269 add edx,DWORD [12+esp]
3270 psrld xmm6,11
3271 add ebx,ecx
3272 mov ecx,edx
3273 ror edx,14
3274 pxor xmm4,xmm5
3275 mov esi,DWORD [16+esp]
3276 xor edx,ecx
3277 pslld xmm5,11
3278 mov edi,DWORD [20+esp]
3279 xor esi,edi
3280 ror edx,5
3281 pxor xmm4,xmm6
3282 and esi,ecx
3283 mov DWORD [12+esp],ecx
3284 movdqa xmm6,xmm7
3285 xor edx,ecx
3286 xor edi,esi
3287 ror edx,6
3288 pxor xmm4,xmm5
3289 mov ecx,ebx
3290 add edx,edi
3291 psrld xmm7,10
3292 mov edi,DWORD [esp]
3293 mov esi,ebx
3294 ror ecx,9
3295 paddd xmm0,xmm4
3296 mov DWORD [28+esp],ebx
3297 xor ecx,ebx
3298 psrlq xmm6,17
3299 xor ebx,edi
3300 add edx,DWORD [24+esp]
3301 ror ecx,11
3302 pxor xmm7,xmm6
3303 and eax,ebx
3304 xor ecx,esi
3305 psrlq xmm6,2
3306 add edx,DWORD [36+esp]
3307 xor eax,edi
3308 ror ecx,2
3309 pxor xmm7,xmm6
3310 add eax,edx
3311 add edx,DWORD [8+esp]
3312 pshufd xmm7,xmm7,128
3313 add eax,ecx
3314 mov ecx,edx
3315 ror edx,14
3316 mov esi,DWORD [12+esp]
3317 xor edx,ecx
3318 mov edi,DWORD [16+esp]
3319 xor esi,edi
3320 ror edx,5
3321 and esi,ecx
3322 psrldq xmm7,8
3323 mov DWORD [8+esp],ecx
3324 xor edx,ecx
3325 xor edi,esi
3326 paddd xmm0,xmm7
3327 ror edx,6
3328 mov ecx,eax
3329 add edx,edi
3330 mov edi,DWORD [28+esp]
3331 mov esi,eax
3332 ror ecx,9
3333 mov DWORD [24+esp],eax
3334 pshufd xmm7,xmm0,80
3335 xor ecx,eax
3336 xor eax,edi
3337 add edx,DWORD [20+esp]
3338 movdqa xmm6,xmm7
3339 ror ecx,11
3340 psrld xmm7,10
3341 and ebx,eax
3342 psrlq xmm6,17
3343 xor ecx,esi
3344 add edx,DWORD [40+esp]
3345 xor ebx,edi
3346 ror ecx,2
3347 pxor xmm7,xmm6
3348 add ebx,edx
3349 add edx,DWORD [4+esp]
3350 psrlq xmm6,2
3351 add ebx,ecx
3352 mov ecx,edx
3353 ror edx,14
3354 pxor xmm7,xmm6
3355 mov esi,DWORD [8+esp]
3356 xor edx,ecx
3357 mov edi,DWORD [12+esp]
3358 pshufd xmm7,xmm7,8
3359 xor esi,edi
3360 ror edx,5
3361 movdqa xmm6,[ebp]
3362 and esi,ecx
3363 mov DWORD [4+esp],ecx
3364 pslldq xmm7,8
3365 xor edx,ecx
3366 xor edi,esi
3367 ror edx,6
3368 mov ecx,ebx
3369 add edx,edi
3370 mov edi,DWORD [24+esp]
3371 mov esi,ebx
3372 ror ecx,9
3373 paddd xmm0,xmm7
3374 mov DWORD [20+esp],ebx
3375 xor ecx,ebx
3376 xor ebx,edi
3377 add edx,DWORD [16+esp]
3378 paddd xmm6,xmm0
3379 ror ecx,11
3380 and eax,ebx
3381 xor ecx,esi
3382 add edx,DWORD [44+esp]
3383 xor eax,edi
3384 ror ecx,2
3385 add eax,edx
3386 add edx,DWORD [esp]
3387 add eax,ecx
3388 movdqa [32+esp],xmm6
3389 mov ecx,edx
3390 movdqa xmm4,xmm2
3391 ror edx,14
3392 mov esi,DWORD [4+esp]
3393 movdqa xmm7,xmm0
3394 xor edx,ecx
3395 mov edi,DWORD [8+esp]
3396 db 102,15,58,15,225,4
3397 xor esi,edi
3398 ror edx,5
3399 and esi,ecx
3400 db 102,15,58,15,251,4
3401 mov DWORD [esp],ecx
3402 xor edx,ecx
3403 xor edi,esi
3404 movdqa xmm5,xmm4
3405 ror edx,6
3406 mov ecx,eax
3407 movdqa xmm6,xmm4
3408 add edx,edi
3409 mov edi,DWORD [20+esp]
3410 psrld xmm4,3
3411 mov esi,eax
3412 ror ecx,9
3413 paddd xmm1,xmm7
3414 mov DWORD [16+esp],eax
3415 xor ecx,eax
3416 psrld xmm6,7
3417 xor eax,edi
3418 add edx,DWORD [12+esp]
3419 ror ecx,11
3420 and ebx,eax
3421 pshufd xmm7,xmm0,250
3422 xor ecx,esi
3423 add edx,DWORD [48+esp]
3424 pslld xmm5,14
3425 xor ebx,edi
3426 ror ecx,2
3427 pxor xmm4,xmm6
3428 add ebx,edx
3429 add edx,DWORD [28+esp]
3430 psrld xmm6,11
3431 add ebx,ecx
3432 mov ecx,edx
3433 ror edx,14
3434 pxor xmm4,xmm5
3435 mov esi,DWORD [esp]
3436 xor edx,ecx
3437 pslld xmm5,11
3438 mov edi,DWORD [4+esp]
3439 xor esi,edi
3440 ror edx,5
3441 pxor xmm4,xmm6
3442 and esi,ecx
3443 mov DWORD [28+esp],ecx
3444 movdqa xmm6,xmm7
3445 xor edx,ecx
3446 xor edi,esi
3447 ror edx,6
3448 pxor xmm4,xmm5
3449 mov ecx,ebx
3450 add edx,edi
3451 psrld xmm7,10
3452 mov edi,DWORD [16+esp]
3453 mov esi,ebx
3454 ror ecx,9
3455 paddd xmm1,xmm4
3456 mov DWORD [12+esp],ebx
3457 xor ecx,ebx
3458 psrlq xmm6,17
3459 xor ebx,edi
3460 add edx,DWORD [8+esp]
3461 ror ecx,11
3462 pxor xmm7,xmm6
3463 and eax,ebx
3464 xor ecx,esi
3465 psrlq xmm6,2
3466 add edx,DWORD [52+esp]
3467 xor eax,edi
3468 ror ecx,2
3469 pxor xmm7,xmm6
3470 add eax,edx
3471 add edx,DWORD [24+esp]
3472 pshufd xmm7,xmm7,128
3473 add eax,ecx
3474 mov ecx,edx
3475 ror edx,14
3476 mov esi,DWORD [28+esp]
3477 xor edx,ecx
3478 mov edi,DWORD [esp]
3479 xor esi,edi
3480 ror edx,5
3481 and esi,ecx
3482 psrldq xmm7,8
3483 mov DWORD [24+esp],ecx
3484 xor edx,ecx
3485 xor edi,esi
3486 paddd xmm1,xmm7
3487 ror edx,6
3488 mov ecx,eax
3489 add edx,edi
3490 mov edi,DWORD [12+esp]
3491 mov esi,eax
3492 ror ecx,9
3493 mov DWORD [8+esp],eax
3494 pshufd xmm7,xmm1,80
3495 xor ecx,eax
3496 xor eax,edi
3497 add edx,DWORD [4+esp]
3498 movdqa xmm6,xmm7
3499 ror ecx,11
3500 psrld xmm7,10
3501 and ebx,eax
3502 psrlq xmm6,17
3503 xor ecx,esi
3504 add edx,DWORD [56+esp]
3505 xor ebx,edi
3506 ror ecx,2
3507 pxor xmm7,xmm6
3508 add ebx,edx
3509 add edx,DWORD [20+esp]
3510 psrlq xmm6,2
3511 add ebx,ecx
3512 mov ecx,edx
3513 ror edx,14
3514 pxor xmm7,xmm6
3515 mov esi,DWORD [24+esp]
3516 xor edx,ecx
3517 mov edi,DWORD [28+esp]
3518 pshufd xmm7,xmm7,8
3519 xor esi,edi
3520 ror edx,5
3521 movdqa xmm6,[16+ebp]
3522 and esi,ecx
3523 mov DWORD [20+esp],ecx
3524 pslldq xmm7,8
3525 xor edx,ecx
3526 xor edi,esi
3527 ror edx,6
3528 mov ecx,ebx
3529 add edx,edi
3530 mov edi,DWORD [8+esp]
3531 mov esi,ebx
3532 ror ecx,9
3533 paddd xmm1,xmm7
3534 mov DWORD [4+esp],ebx
3535 xor ecx,ebx
3536 xor ebx,edi
3537 add edx,DWORD [esp]
3538 paddd xmm6,xmm1
3539 ror ecx,11
3540 and eax,ebx
3541 xor ecx,esi
3542 add edx,DWORD [60+esp]
3543 xor eax,edi
3544 ror ecx,2
3545 add eax,edx
3546 add edx,DWORD [16+esp]
3547 add eax,ecx
3548 movdqa [48+esp],xmm6
3549 mov ecx,edx
3550 movdqa xmm4,xmm3
3551 ror edx,14
3552 mov esi,DWORD [20+esp]
3553 movdqa xmm7,xmm1
3554 xor edx,ecx
3555 mov edi,DWORD [24+esp]
3556 db 102,15,58,15,226,4
3557 xor esi,edi
3558 ror edx,5
3559 and esi,ecx
3560 db 102,15,58,15,248,4
3561 mov DWORD [16+esp],ecx
3562 xor edx,ecx
3563 xor edi,esi
3564 movdqa xmm5,xmm4
3565 ror edx,6
3566 mov ecx,eax
3567 movdqa xmm6,xmm4
3568 add edx,edi
3569 mov edi,DWORD [4+esp]
3570 psrld xmm4,3
3571 mov esi,eax
3572 ror ecx,9
3573 paddd xmm2,xmm7
3574 mov DWORD [esp],eax
3575 xor ecx,eax
3576 psrld xmm6,7
3577 xor eax,edi
3578 add edx,DWORD [28+esp]
3579 ror ecx,11
3580 and ebx,eax
3581 pshufd xmm7,xmm1,250
3582 xor ecx,esi
3583 add edx,DWORD [64+esp]
3584 pslld xmm5,14
3585 xor ebx,edi
3586 ror ecx,2
3587 pxor xmm4,xmm6
3588 add ebx,edx
3589 add edx,DWORD [12+esp]
3590 psrld xmm6,11
3591 add ebx,ecx
3592 mov ecx,edx
3593 ror edx,14
3594 pxor xmm4,xmm5
3595 mov esi,DWORD [16+esp]
3596 xor edx,ecx
3597 pslld xmm5,11
3598 mov edi,DWORD [20+esp]
3599 xor esi,edi
3600 ror edx,5
3601 pxor xmm4,xmm6
3602 and esi,ecx
3603 mov DWORD [12+esp],ecx
3604 movdqa xmm6,xmm7
3605 xor edx,ecx
3606 xor edi,esi
3607 ror edx,6
3608 pxor xmm4,xmm5
3609 mov ecx,ebx
3610 add edx,edi
3611 psrld xmm7,10
3612 mov edi,DWORD [esp]
3613 mov esi,ebx
3614 ror ecx,9
3615 paddd xmm2,xmm4
3616 mov DWORD [28+esp],ebx
3617 xor ecx,ebx
3618 psrlq xmm6,17
3619 xor ebx,edi
3620 add edx,DWORD [24+esp]
3621 ror ecx,11
3622 pxor xmm7,xmm6
3623 and eax,ebx
3624 xor ecx,esi
3625 psrlq xmm6,2
3626 add edx,DWORD [68+esp]
3627 xor eax,edi
3628 ror ecx,2
3629 pxor xmm7,xmm6
3630 add eax,edx
3631 add edx,DWORD [8+esp]
3632 pshufd xmm7,xmm7,128
3633 add eax,ecx
3634 mov ecx,edx
3635 ror edx,14
3636 mov esi,DWORD [12+esp]
3637 xor edx,ecx
3638 mov edi,DWORD [16+esp]
3639 xor esi,edi
3640 ror edx,5
3641 and esi,ecx
3642 psrldq xmm7,8
3643 mov DWORD [8+esp],ecx
3644 xor edx,ecx
3645 xor edi,esi
3646 paddd xmm2,xmm7
3647 ror edx,6
3648 mov ecx,eax
3649 add edx,edi
3650 mov edi,DWORD [28+esp]
3651 mov esi,eax
3652 ror ecx,9
3653 mov DWORD [24+esp],eax
3654 pshufd xmm7,xmm2,80
3655 xor ecx,eax
3656 xor eax,edi
3657 add edx,DWORD [20+esp]
3658 movdqa xmm6,xmm7
3659 ror ecx,11
3660 psrld xmm7,10
3661 and ebx,eax
3662 psrlq xmm6,17
3663 xor ecx,esi
3664 add edx,DWORD [72+esp]
3665 xor ebx,edi
3666 ror ecx,2
3667 pxor xmm7,xmm6
3668 add ebx,edx
3669 add edx,DWORD [4+esp]
3670 psrlq xmm6,2
3671 add ebx,ecx
3672 mov ecx,edx
3673 ror edx,14
3674 pxor xmm7,xmm6
3675 mov esi,DWORD [8+esp]
3676 xor edx,ecx
3677 mov edi,DWORD [12+esp]
3678 pshufd xmm7,xmm7,8
3679 xor esi,edi
3680 ror edx,5
3681 movdqa xmm6,[32+ebp]
3682 and esi,ecx
3683 mov DWORD [4+esp],ecx
3684 pslldq xmm7,8
3685 xor edx,ecx
3686 xor edi,esi
3687 ror edx,6
3688 mov ecx,ebx
3689 add edx,edi
3690 mov edi,DWORD [24+esp]
3691 mov esi,ebx
3692 ror ecx,9
3693 paddd xmm2,xmm7
3694 mov DWORD [20+esp],ebx
3695 xor ecx,ebx
3696 xor ebx,edi
3697 add edx,DWORD [16+esp]
3698 paddd xmm6,xmm2
3699 ror ecx,11
3700 and eax,ebx
3701 xor ecx,esi
3702 add edx,DWORD [76+esp]
3703 xor eax,edi
3704 ror ecx,2
3705 add eax,edx
3706 add edx,DWORD [esp]
3707 add eax,ecx
3708 movdqa [64+esp],xmm6
3709 mov ecx,edx
3710 movdqa xmm4,xmm0
3711 ror edx,14
3712 mov esi,DWORD [4+esp]
3713 movdqa xmm7,xmm2
3714 xor edx,ecx
3715 mov edi,DWORD [8+esp]
3716 db 102,15,58,15,227,4
3717 xor esi,edi
3718 ror edx,5
3719 and esi,ecx
3720 db 102,15,58,15,249,4
3721 mov DWORD [esp],ecx
3722 xor edx,ecx
3723 xor edi,esi
3724 movdqa xmm5,xmm4
3725 ror edx,6
3726 mov ecx,eax
3727 movdqa xmm6,xmm4
3728 add edx,edi
3729 mov edi,DWORD [20+esp]
3730 psrld xmm4,3
3731 mov esi,eax
3732 ror ecx,9
3733 paddd xmm3,xmm7
3734 mov DWORD [16+esp],eax
3735 xor ecx,eax
3736 psrld xmm6,7
3737 xor eax,edi
3738 add edx,DWORD [12+esp]
3739 ror ecx,11
3740 and ebx,eax
3741 pshufd xmm7,xmm2,250
3742 xor ecx,esi
3743 add edx,DWORD [80+esp]
3744 pslld xmm5,14
3745 xor ebx,edi
3746 ror ecx,2
3747 pxor xmm4,xmm6
3748 add ebx,edx
3749 add edx,DWORD [28+esp]
3750 psrld xmm6,11
3751 add ebx,ecx
3752 mov ecx,edx
3753 ror edx,14
3754 pxor xmm4,xmm5
3755 mov esi,DWORD [esp]
3756 xor edx,ecx
3757 pslld xmm5,11
3758 mov edi,DWORD [4+esp]
3759 xor esi,edi
3760 ror edx,5
3761 pxor xmm4,xmm6
3762 and esi,ecx
3763 mov DWORD [28+esp],ecx
3764 movdqa xmm6,xmm7
3765 xor edx,ecx
3766 xor edi,esi
3767 ror edx,6
3768 pxor xmm4,xmm5
3769 mov ecx,ebx
3770 add edx,edi
3771 psrld xmm7,10
3772 mov edi,DWORD [16+esp]
3773 mov esi,ebx
3774 ror ecx,9
3775 paddd xmm3,xmm4
3776 mov DWORD [12+esp],ebx
3777 xor ecx,ebx
3778 psrlq xmm6,17
3779 xor ebx,edi
3780 add edx,DWORD [8+esp]
3781 ror ecx,11
3782 pxor xmm7,xmm6
3783 and eax,ebx
3784 xor ecx,esi
3785 psrlq xmm6,2
3786 add edx,DWORD [84+esp]
3787 xor eax,edi
3788 ror ecx,2
3789 pxor xmm7,xmm6
3790 add eax,edx
3791 add edx,DWORD [24+esp]
3792 pshufd xmm7,xmm7,128
3793 add eax,ecx
3794 mov ecx,edx
3795 ror edx,14
3796 mov esi,DWORD [28+esp]
3797 xor edx,ecx
3798 mov edi,DWORD [esp]
3799 xor esi,edi
3800 ror edx,5
3801 and esi,ecx
3802 psrldq xmm7,8
3803 mov DWORD [24+esp],ecx
3804 xor edx,ecx
3805 xor edi,esi
3806 paddd xmm3,xmm7
3807 ror edx,6
3808 mov ecx,eax
3809 add edx,edi
3810 mov edi,DWORD [12+esp]
3811 mov esi,eax
3812 ror ecx,9
3813 mov DWORD [8+esp],eax
3814 pshufd xmm7,xmm3,80
3815 xor ecx,eax
3816 xor eax,edi
3817 add edx,DWORD [4+esp]
3818 movdqa xmm6,xmm7
3819 ror ecx,11
3820 psrld xmm7,10
3821 and ebx,eax
3822 psrlq xmm6,17
3823 xor ecx,esi
3824 add edx,DWORD [88+esp]
3825 xor ebx,edi
3826 ror ecx,2
3827 pxor xmm7,xmm6
3828 add ebx,edx
3829 add edx,DWORD [20+esp]
3830 psrlq xmm6,2
3831 add ebx,ecx
3832 mov ecx,edx
3833 ror edx,14
3834 pxor xmm7,xmm6
3835 mov esi,DWORD [24+esp]
3836 xor edx,ecx
3837 mov edi,DWORD [28+esp]
3838 pshufd xmm7,xmm7,8
3839 xor esi,edi
3840 ror edx,5
3841 movdqa xmm6,[48+ebp]
3842 and esi,ecx
3843 mov DWORD [20+esp],ecx
3844 pslldq xmm7,8
3845 xor edx,ecx
3846 xor edi,esi
3847 ror edx,6
3848 mov ecx,ebx
3849 add edx,edi
3850 mov edi,DWORD [8+esp]
3851 mov esi,ebx
3852 ror ecx,9
3853 paddd xmm3,xmm7
3854 mov DWORD [4+esp],ebx
3855 xor ecx,ebx
3856 xor ebx,edi
3857 add edx,DWORD [esp]
3858 paddd xmm6,xmm3
3859 ror ecx,11
3860 and eax,ebx
3861 xor ecx,esi
3862 add edx,DWORD [92+esp]
3863 xor eax,edi
3864 ror ecx,2
3865 add eax,edx
3866 add edx,DWORD [16+esp]
3867 add eax,ecx
3868 movdqa [80+esp],xmm6
3869 cmp DWORD [64+ebp],66051
3870 jne NEAR L$011ssse3_00_47
3871 mov ecx,edx
3872 ror edx,14
3873 mov esi,DWORD [20+esp]
3874 xor edx,ecx
3875 mov edi,DWORD [24+esp]
3876 xor esi,edi
3877 ror edx,5
3878 and esi,ecx
3879 mov DWORD [16+esp],ecx
3880 xor edx,ecx
3881 xor edi,esi
3882 ror edx,6
3883 mov ecx,eax
3884 add edx,edi
3885 mov edi,DWORD [4+esp]
3886 mov esi,eax
3887 ror ecx,9
3888 mov DWORD [esp],eax
3889 xor ecx,eax
3890 xor eax,edi
3891 add edx,DWORD [28+esp]
3892 ror ecx,11
3893 and ebx,eax
3894 xor ecx,esi
3895 add edx,DWORD [32+esp]
3896 xor ebx,edi
3897 ror ecx,2
3898 add ebx,edx
3899 add edx,DWORD [12+esp]
3900 add ebx,ecx
3901 mov ecx,edx
3902 ror edx,14
3903 mov esi,DWORD [16+esp]
3904 xor edx,ecx
3905 mov edi,DWORD [20+esp]
3906 xor esi,edi
3907 ror edx,5
3908 and esi,ecx
3909 mov DWORD [12+esp],ecx
3910 xor edx,ecx
3911 xor edi,esi
3912 ror edx,6
3913 mov ecx,ebx
3914 add edx,edi
3915 mov edi,DWORD [esp]
3916 mov esi,ebx
3917 ror ecx,9
3918 mov DWORD [28+esp],ebx
3919 xor ecx,ebx
3920 xor ebx,edi
3921 add edx,DWORD [24+esp]
3922 ror ecx,11
3923 and eax,ebx
3924 xor ecx,esi
3925 add edx,DWORD [36+esp]
3926 xor eax,edi
3927 ror ecx,2
3928 add eax,edx
3929 add edx,DWORD [8+esp]
3930 add eax,ecx
3931 mov ecx,edx
3932 ror edx,14
3933 mov esi,DWORD [12+esp]
3934 xor edx,ecx
3935 mov edi,DWORD [16+esp]
3936 xor esi,edi
3937 ror edx,5
3938 and esi,ecx
3939 mov DWORD [8+esp],ecx
3940 xor edx,ecx
3941 xor edi,esi
3942 ror edx,6
3943 mov ecx,eax
3944 add edx,edi
3945 mov edi,DWORD [28+esp]
3946 mov esi,eax
3947 ror ecx,9
3948 mov DWORD [24+esp],eax
3949 xor ecx,eax
3950 xor eax,edi
3951 add edx,DWORD [20+esp]
3952 ror ecx,11
3953 and ebx,eax
3954 xor ecx,esi
3955 add edx,DWORD [40+esp]
3956 xor ebx,edi
3957 ror ecx,2
3958 add ebx,edx
3959 add edx,DWORD [4+esp]
3960 add ebx,ecx
3961 mov ecx,edx
3962 ror edx,14
3963 mov esi,DWORD [8+esp]
3964 xor edx,ecx
3965 mov edi,DWORD [12+esp]
3966 xor esi,edi
3967 ror edx,5
3968 and esi,ecx
3969 mov DWORD [4+esp],ecx
3970 xor edx,ecx
3971 xor edi,esi
3972 ror edx,6
3973 mov ecx,ebx
3974 add edx,edi
3975 mov edi,DWORD [24+esp]
3976 mov esi,ebx
3977 ror ecx,9
3978 mov DWORD [20+esp],ebx
3979 xor ecx,ebx
3980 xor ebx,edi
3981 add edx,DWORD [16+esp]
3982 ror ecx,11
3983 and eax,ebx
3984 xor ecx,esi
3985 add edx,DWORD [44+esp]
3986 xor eax,edi
3987 ror ecx,2
3988 add eax,edx
3989 add edx,DWORD [esp]
3990 add eax,ecx
3991 mov ecx,edx
3992 ror edx,14
3993 mov esi,DWORD [4+esp]
3994 xor edx,ecx
3995 mov edi,DWORD [8+esp]
3996 xor esi,edi
3997 ror edx,5
3998 and esi,ecx
3999 mov DWORD [esp],ecx
4000 xor edx,ecx
4001 xor edi,esi
4002 ror edx,6
4003 mov ecx,eax
4004 add edx,edi
4005 mov edi,DWORD [20+esp]
4006 mov esi,eax
4007 ror ecx,9
4008 mov DWORD [16+esp],eax
4009 xor ecx,eax
4010 xor eax,edi
4011 add edx,DWORD [12+esp]
4012 ror ecx,11
4013 and ebx,eax
4014 xor ecx,esi
4015 add edx,DWORD [48+esp]
4016 xor ebx,edi
4017 ror ecx,2
4018 add ebx,edx
4019 add edx,DWORD [28+esp]
4020 add ebx,ecx
4021 mov ecx,edx
4022 ror edx,14
4023 mov esi,DWORD [esp]
4024 xor edx,ecx
4025 mov edi,DWORD [4+esp]
4026 xor esi,edi
4027 ror edx,5
4028 and esi,ecx
4029 mov DWORD [28+esp],ecx
4030 xor edx,ecx
4031 xor edi,esi
4032 ror edx,6
4033 mov ecx,ebx
4034 add edx,edi
4035 mov edi,DWORD [16+esp]
4036 mov esi,ebx
4037 ror ecx,9
4038 mov DWORD [12+esp],ebx
4039 xor ecx,ebx
4040 xor ebx,edi
4041 add edx,DWORD [8+esp]
4042 ror ecx,11
4043 and eax,ebx
4044 xor ecx,esi
4045 add edx,DWORD [52+esp]
4046 xor eax,edi
4047 ror ecx,2
4048 add eax,edx
4049 add edx,DWORD [24+esp]
4050 add eax,ecx
4051 mov ecx,edx
4052 ror edx,14
4053 mov esi,DWORD [28+esp]
4054 xor edx,ecx
4055 mov edi,DWORD [esp]
4056 xor esi,edi
4057 ror edx,5
4058 and esi,ecx
4059 mov DWORD [24+esp],ecx
4060 xor edx,ecx
4061 xor edi,esi
4062 ror edx,6
4063 mov ecx,eax
4064 add edx,edi
4065 mov edi,DWORD [12+esp]
4066 mov esi,eax
4067 ror ecx,9
4068 mov DWORD [8+esp],eax
4069 xor ecx,eax
4070 xor eax,edi
4071 add edx,DWORD [4+esp]
4072 ror ecx,11
4073 and ebx,eax
4074 xor ecx,esi
4075 add edx,DWORD [56+esp]
4076 xor ebx,edi
4077 ror ecx,2
4078 add ebx,edx
4079 add edx,DWORD [20+esp]
4080 add ebx,ecx
4081 mov ecx,edx
4082 ror edx,14
4083 mov esi,DWORD [24+esp]
4084 xor edx,ecx
4085 mov edi,DWORD [28+esp]
4086 xor esi,edi
4087 ror edx,5
4088 and esi,ecx
4089 mov DWORD [20+esp],ecx
4090 xor edx,ecx
4091 xor edi,esi
4092 ror edx,6
4093 mov ecx,ebx
4094 add edx,edi
4095 mov edi,DWORD [8+esp]
4096 mov esi,ebx
4097 ror ecx,9
4098 mov DWORD [4+esp],ebx
4099 xor ecx,ebx
4100 xor ebx,edi
4101 add edx,DWORD [esp]
4102 ror ecx,11
4103 and eax,ebx
4104 xor ecx,esi
4105 add edx,DWORD [60+esp]
4106 xor eax,edi
4107 ror ecx,2
4108 add eax,edx
4109 add edx,DWORD [16+esp]
4110 add eax,ecx
4111 mov ecx,edx
4112 ror edx,14
4113 mov esi,DWORD [20+esp]
4114 xor edx,ecx
4115 mov edi,DWORD [24+esp]
4116 xor esi,edi
4117 ror edx,5
4118 and esi,ecx
4119 mov DWORD [16+esp],ecx
4120 xor edx,ecx
4121 xor edi,esi
4122 ror edx,6
4123 mov ecx,eax
4124 add edx,edi
4125 mov edi,DWORD [4+esp]
4126 mov esi,eax
4127 ror ecx,9
4128 mov DWORD [esp],eax
4129 xor ecx,eax
4130 xor eax,edi
4131 add edx,DWORD [28+esp]
4132 ror ecx,11
4133 and ebx,eax
4134 xor ecx,esi
4135 add edx,DWORD [64+esp]
4136 xor ebx,edi
4137 ror ecx,2
4138 add ebx,edx
4139 add edx,DWORD [12+esp]
4140 add ebx,ecx
4141 mov ecx,edx
4142 ror edx,14
4143 mov esi,DWORD [16+esp]
4144 xor edx,ecx
4145 mov edi,DWORD [20+esp]
4146 xor esi,edi
4147 ror edx,5
4148 and esi,ecx
4149 mov DWORD [12+esp],ecx
4150 xor edx,ecx
4151 xor edi,esi
4152 ror edx,6
4153 mov ecx,ebx
4154 add edx,edi
4155 mov edi,DWORD [esp]
4156 mov esi,ebx
4157 ror ecx,9
4158 mov DWORD [28+esp],ebx
4159 xor ecx,ebx
4160 xor ebx,edi
4161 add edx,DWORD [24+esp]
4162 ror ecx,11
4163 and eax,ebx
4164 xor ecx,esi
4165 add edx,DWORD [68+esp]
4166 xor eax,edi
4167 ror ecx,2
4168 add eax,edx
4169 add edx,DWORD [8+esp]
4170 add eax,ecx
4171 mov ecx,edx
4172 ror edx,14
4173 mov esi,DWORD [12+esp]
4174 xor edx,ecx
4175 mov edi,DWORD [16+esp]
4176 xor esi,edi
4177 ror edx,5
4178 and esi,ecx
4179 mov DWORD [8+esp],ecx
4180 xor edx,ecx
4181 xor edi,esi
4182 ror edx,6
4183 mov ecx,eax
4184 add edx,edi
4185 mov edi,DWORD [28+esp]
4186 mov esi,eax
4187 ror ecx,9
4188 mov DWORD [24+esp],eax
4189 xor ecx,eax
4190 xor eax,edi
4191 add edx,DWORD [20+esp]
4192 ror ecx,11
4193 and ebx,eax
4194 xor ecx,esi
4195 add edx,DWORD [72+esp]
4196 xor ebx,edi
4197 ror ecx,2
4198 add ebx,edx
4199 add edx,DWORD [4+esp]
4200 add ebx,ecx
4201 mov ecx,edx
4202 ror edx,14
4203 mov esi,DWORD [8+esp]
4204 xor edx,ecx
4205 mov edi,DWORD [12+esp]
4206 xor esi,edi
4207 ror edx,5
4208 and esi,ecx
4209 mov DWORD [4+esp],ecx
4210 xor edx,ecx
4211 xor edi,esi
4212 ror edx,6
4213 mov ecx,ebx
4214 add edx,edi
4215 mov edi,DWORD [24+esp]
4216 mov esi,ebx
4217 ror ecx,9
4218 mov DWORD [20+esp],ebx
4219 xor ecx,ebx
4220 xor ebx,edi
4221 add edx,DWORD [16+esp]
4222 ror ecx,11
4223 and eax,ebx
4224 xor ecx,esi
4225 add edx,DWORD [76+esp]
4226 xor eax,edi
4227 ror ecx,2
4228 add eax,edx
4229 add edx,DWORD [esp]
4230 add eax,ecx
4231 mov ecx,edx
4232 ror edx,14
4233 mov esi,DWORD [4+esp]
4234 xor edx,ecx
4235 mov edi,DWORD [8+esp]
4236 xor esi,edi
4237 ror edx,5
4238 and esi,ecx
4239 mov DWORD [esp],ecx
4240 xor edx,ecx
4241 xor edi,esi
4242 ror edx,6
4243 mov ecx,eax
4244 add edx,edi
4245 mov edi,DWORD [20+esp]
4246 mov esi,eax
4247 ror ecx,9
4248 mov DWORD [16+esp],eax
4249 xor ecx,eax
4250 xor eax,edi
4251 add edx,DWORD [12+esp]
4252 ror ecx,11
4253 and ebx,eax
4254 xor ecx,esi
4255 add edx,DWORD [80+esp]
4256 xor ebx,edi
4257 ror ecx,2
4258 add ebx,edx
4259 add edx,DWORD [28+esp]
4260 add ebx,ecx
4261 mov ecx,edx
4262 ror edx,14
4263 mov esi,DWORD [esp]
4264 xor edx,ecx
4265 mov edi,DWORD [4+esp]
4266 xor esi,edi
4267 ror edx,5
4268 and esi,ecx
4269 mov DWORD [28+esp],ecx
4270 xor edx,ecx
4271 xor edi,esi
4272 ror edx,6
4273 mov ecx,ebx
4274 add edx,edi
4275 mov edi,DWORD [16+esp]
4276 mov esi,ebx
4277 ror ecx,9
4278 mov DWORD [12+esp],ebx
4279 xor ecx,ebx
4280 xor ebx,edi
4281 add edx,DWORD [8+esp]
4282 ror ecx,11
4283 and eax,ebx
4284 xor ecx,esi
4285 add edx,DWORD [84+esp]
4286 xor eax,edi
4287 ror ecx,2
4288 add eax,edx
4289 add edx,DWORD [24+esp]
4290 add eax,ecx
4291 mov ecx,edx
4292 ror edx,14
4293 mov esi,DWORD [28+esp]
4294 xor edx,ecx
4295 mov edi,DWORD [esp]
4296 xor esi,edi
4297 ror edx,5
4298 and esi,ecx
4299 mov DWORD [24+esp],ecx
4300 xor edx,ecx
4301 xor edi,esi
4302 ror edx,6
4303 mov ecx,eax
4304 add edx,edi
4305 mov edi,DWORD [12+esp]
4306 mov esi,eax
4307 ror ecx,9
4308 mov DWORD [8+esp],eax
4309 xor ecx,eax
4310 xor eax,edi
4311 add edx,DWORD [4+esp]
4312 ror ecx,11
4313 and ebx,eax
4314 xor ecx,esi
4315 add edx,DWORD [88+esp]
4316 xor ebx,edi
4317 ror ecx,2
4318 add ebx,edx
4319 add edx,DWORD [20+esp]
4320 add ebx,ecx
4321 mov ecx,edx
4322 ror edx,14
4323 mov esi,DWORD [24+esp]
4324 xor edx,ecx
4325 mov edi,DWORD [28+esp]
4326 xor esi,edi
4327 ror edx,5
4328 and esi,ecx
4329 mov DWORD [20+esp],ecx
4330 xor edx,ecx
4331 xor edi,esi
4332 ror edx,6
4333 mov ecx,ebx
4334 add edx,edi
4335 mov edi,DWORD [8+esp]
4336 mov esi,ebx
4337 ror ecx,9
4338 mov DWORD [4+esp],ebx
4339 xor ecx,ebx
4340 xor ebx,edi
4341 add edx,DWORD [esp]
4342 ror ecx,11
4343 and eax,ebx
4344 xor ecx,esi
4345 add edx,DWORD [92+esp]
4346 xor eax,edi
4347 ror ecx,2
4348 add eax,edx
4349 add edx,DWORD [16+esp]
4350 add eax,ecx
4351 mov esi,DWORD [96+esp]
4352 xor ebx,edi
4353 mov ecx,DWORD [12+esp]
4354 add eax,DWORD [esi]
4355 add ebx,DWORD [4+esi]
4356 add edi,DWORD [8+esi]
4357 add ecx,DWORD [12+esi]
4358 mov DWORD [esi],eax
4359 mov DWORD [4+esi],ebx
4360 mov DWORD [8+esi],edi
4361 mov DWORD [12+esi],ecx
4362 mov DWORD [4+esp],ebx
4363 xor ebx,edi
4364 mov DWORD [8+esp],edi
4365 mov DWORD [12+esp],ecx
4366 mov edi,DWORD [20+esp]
4367 mov ecx,DWORD [24+esp]
4368 add edx,DWORD [16+esi]
4369 add edi,DWORD [20+esi]
4370 add ecx,DWORD [24+esi]
4371 mov DWORD [16+esi],edx
4372 mov DWORD [20+esi],edi
4373 mov DWORD [20+esp],edi
4374 mov edi,DWORD [28+esp]
4375 mov DWORD [24+esi],ecx
4376 add edi,DWORD [28+esi]
4377 mov DWORD [24+esp],ecx
4378 mov DWORD [28+esi],edi
4379 mov DWORD [28+esp],edi
4380 mov edi,DWORD [100+esp]
4381 movdqa xmm7,[64+ebp]
4382 sub ebp,192
4383 cmp edi,DWORD [104+esp]
4384 jb NEAR L$010grand_ssse3
4385 mov esp,DWORD [108+esp]
4386 pop edi
4387 pop esi
4388 pop ebx
4389 pop ebp
4390 ret
4391 align 32
4392 L$004AVX:
4393 lea esp,[esp-96]
4394 vzeroall
4395 mov eax,DWORD [esi]
4396 mov ebx,DWORD [4+esi]
4397 mov ecx,DWORD [8+esi]
4398 mov edi,DWORD [12+esi]
4399 mov DWORD [4+esp],ebx
4400 xor ebx,ecx
4401 mov DWORD [8+esp],ecx
4402 mov DWORD [12+esp],edi
4403 mov edx,DWORD [16+esi]
4404 mov edi,DWORD [20+esi]
4405 mov ecx,DWORD [24+esi]
4406 mov esi,DWORD [28+esi]
4407 mov DWORD [20+esp],edi
4408 mov edi,DWORD [100+esp]
4409 mov DWORD [24+esp],ecx
4410 mov DWORD [28+esp],esi
4411 vmovdqa xmm7,[256+ebp]
4412 jmp NEAR L$012grand_avx
4413 align 32
4414 L$012grand_avx:
4415 vmovdqu xmm0,[edi]
4416 vmovdqu xmm1,[16+edi]
4417 vmovdqu xmm2,[32+edi]
4418 vmovdqu xmm3,[48+edi]
4419 add edi,64
4420 vpshufb xmm0,xmm0,xmm7
4421 mov DWORD [100+esp],edi
4422 vpshufb xmm1,xmm1,xmm7
4423 vpshufb xmm2,xmm2,xmm7
4424 vpaddd xmm4,xmm0,[ebp]
4425 vpshufb xmm3,xmm3,xmm7
4426 vpaddd xmm5,xmm1,[16+ebp]
4427 vpaddd xmm6,xmm2,[32+ebp]
4428 vpaddd xmm7,xmm3,[48+ebp]
4429 vmovdqa [32+esp],xmm4
4430 vmovdqa [48+esp],xmm5
4431 vmovdqa [64+esp],xmm6
4432 vmovdqa [80+esp],xmm7
4433 jmp NEAR L$013avx_00_47
4434 align 16
4435 L$013avx_00_47:
4436 add ebp,64
4437 vpalignr xmm4,xmm1,xmm0,4
4438 mov ecx,edx
4439 shrd edx,edx,14
4440 mov esi,DWORD [20+esp]
4441 vpalignr xmm7,xmm3,xmm2,4
4442 xor edx,ecx
4443 mov edi,DWORD [24+esp]
4444 xor esi,edi
4445 vpsrld xmm6,xmm4,7
4446 shrd edx,edx,5
4447 and esi,ecx
4448 mov DWORD [16+esp],ecx
4449 vpaddd xmm0,xmm0,xmm7
4450 xor edx,ecx
4451 xor edi,esi
4452 shrd edx,edx,6
4453 vpsrld xmm7,xmm4,3
4454 mov ecx,eax
4455 add edx,edi
4456 mov edi,DWORD [4+esp]
4457 vpslld xmm5,xmm4,14
4458 mov esi,eax
4459 shrd ecx,ecx,9
4460 mov DWORD [esp],eax
4461 vpxor xmm4,xmm7,xmm6
4462 xor ecx,eax
4463 xor eax,edi
4464 add edx,DWORD [28+esp]
4465 vpshufd xmm7,xmm3,250
4466 shrd ecx,ecx,11
4467 and ebx,eax
4468 xor ecx,esi
4469 vpsrld xmm6,xmm6,11
4470 add edx,DWORD [32+esp]
4471 xor ebx,edi
4472 shrd ecx,ecx,2
4473 vpxor xmm4,xmm4,xmm5
4474 add ebx,edx
4475 add edx,DWORD [12+esp]
4476 add ebx,ecx
4477 vpslld xmm5,xmm5,11
4478 mov ecx,edx
4479 shrd edx,edx,14
4480 mov esi,DWORD [16+esp]
4481 vpxor xmm4,xmm4,xmm6
4482 xor edx,ecx
4483 mov edi,DWORD [20+esp]
4484 xor esi,edi
4485 vpsrld xmm6,xmm7,10
4486 shrd edx,edx,5
4487 and esi,ecx
4488 mov DWORD [12+esp],ecx
4489 vpxor xmm4,xmm4,xmm5
4490 xor edx,ecx
4491 xor edi,esi
4492 shrd edx,edx,6
4493 vpsrlq xmm5,xmm7,17
4494 mov ecx,ebx
4495 add edx,edi
4496 mov edi,DWORD [esp]
4497 vpaddd xmm0,xmm0,xmm4
4498 mov esi,ebx
4499 shrd ecx,ecx,9
4500 mov DWORD [28+esp],ebx
4501 vpxor xmm6,xmm6,xmm5
4502 xor ecx,ebx
4503 xor ebx,edi
4504 add edx,DWORD [24+esp]
4505 vpsrlq xmm7,xmm7,19
4506 shrd ecx,ecx,11
4507 and eax,ebx
4508 xor ecx,esi
4509 vpxor xmm6,xmm6,xmm7
4510 add edx,DWORD [36+esp]
4511 xor eax,edi
4512 shrd ecx,ecx,2
4513 vpshufd xmm7,xmm6,132
4514 add eax,edx
4515 add edx,DWORD [8+esp]
4516 add eax,ecx
4517 vpsrldq xmm7,xmm7,8
4518 mov ecx,edx
4519 shrd edx,edx,14
4520 mov esi,DWORD [12+esp]
4521 vpaddd xmm0,xmm0,xmm7
4522 xor edx,ecx
4523 mov edi,DWORD [16+esp]
4524 xor esi,edi
4525 vpshufd xmm7,xmm0,80
4526 shrd edx,edx,5
4527 and esi,ecx
4528 mov DWORD [8+esp],ecx
4529 vpsrld xmm6,xmm7,10
4530 xor edx,ecx
4531 xor edi,esi
4532 shrd edx,edx,6
4533 vpsrlq xmm5,xmm7,17
4534 mov ecx,eax
4535 add edx,edi
4536 mov edi,DWORD [28+esp]
4537 vpxor xmm6,xmm6,xmm5
4538 mov esi,eax
4539 shrd ecx,ecx,9
4540 mov DWORD [24+esp],eax
4541 vpsrlq xmm7,xmm7,19
4542 xor ecx,eax
4543 xor eax,edi
4544 add edx,DWORD [20+esp]
4545 vpxor xmm6,xmm6,xmm7
4546 shrd ecx,ecx,11
4547 and ebx,eax
4548 xor ecx,esi
4549 vpshufd xmm7,xmm6,232
4550 add edx,DWORD [40+esp]
4551 xor ebx,edi
4552 shrd ecx,ecx,2
4553 vpslldq xmm7,xmm7,8
4554 add ebx,edx
4555 add edx,DWORD [4+esp]
4556 add ebx,ecx
4557 vpaddd xmm0,xmm0,xmm7
4558 mov ecx,edx
4559 shrd edx,edx,14
4560 mov esi,DWORD [8+esp]
4561 vpaddd xmm6,xmm0,[ebp]
4562 xor edx,ecx
4563 mov edi,DWORD [12+esp]
4564 xor esi,edi
4565 shrd edx,edx,5
4566 and esi,ecx
4567 mov DWORD [4+esp],ecx
4568 xor edx,ecx
4569 xor edi,esi
4570 shrd edx,edx,6
4571 mov ecx,ebx
4572 add edx,edi
4573 mov edi,DWORD [24+esp]
4574 mov esi,ebx
4575 shrd ecx,ecx,9
4576 mov DWORD [20+esp],ebx
4577 xor ecx,ebx
4578 xor ebx,edi
4579 add edx,DWORD [16+esp]
4580 shrd ecx,ecx,11
4581 and eax,ebx
4582 xor ecx,esi
4583 add edx,DWORD [44+esp]
4584 xor eax,edi
4585 shrd ecx,ecx,2
4586 add eax,edx
4587 add edx,DWORD [esp]
4588 add eax,ecx
4589 vmovdqa [32+esp],xmm6
4590 vpalignr xmm4,xmm2,xmm1,4
4591 mov ecx,edx
4592 shrd edx,edx,14
4593 mov esi,DWORD [4+esp]
4594 vpalignr xmm7,xmm0,xmm3,4
4595 xor edx,ecx
4596 mov edi,DWORD [8+esp]
4597 xor esi,edi
4598 vpsrld xmm6,xmm4,7
4599 shrd edx,edx,5
4600 and esi,ecx
4601 mov DWORD [esp],ecx
4602 vpaddd xmm1,xmm1,xmm7
4603 xor edx,ecx
4604 xor edi,esi
4605 shrd edx,edx,6
4606 vpsrld xmm7,xmm4,3
4607 mov ecx,eax
4608 add edx,edi
4609 mov edi,DWORD [20+esp]
4610 vpslld xmm5,xmm4,14
4611 mov esi,eax
4612 shrd ecx,ecx,9
4613 mov DWORD [16+esp],eax
4614 vpxor xmm4,xmm7,xmm6
4615 xor ecx,eax
4616 xor eax,edi
4617 add edx,DWORD [12+esp]
4618 vpshufd xmm7,xmm0,250
4619 shrd ecx,ecx,11
4620 and ebx,eax
4621 xor ecx,esi
4622 vpsrld xmm6,xmm6,11
4623 add edx,DWORD [48+esp]
4624 xor ebx,edi
4625 shrd ecx,ecx,2
4626 vpxor xmm4,xmm4,xmm5
4627 add ebx,edx
4628 add edx,DWORD [28+esp]
4629 add ebx,ecx
4630 vpslld xmm5,xmm5,11
4631 mov ecx,edx
4632 shrd edx,edx,14
4633 mov esi,DWORD [esp]
4634 vpxor xmm4,xmm4,xmm6
4635 xor edx,ecx
4636 mov edi,DWORD [4+esp]
4637 xor esi,edi
4638 vpsrld xmm6,xmm7,10
4639 shrd edx,edx,5
4640 and esi,ecx
4641 mov DWORD [28+esp],ecx
4642 vpxor xmm4,xmm4,xmm5
4643 xor edx,ecx
4644 xor edi,esi
4645 shrd edx,edx,6
4646 vpsrlq xmm5,xmm7,17
4647 mov ecx,ebx
4648 add edx,edi
4649 mov edi,DWORD [16+esp]
4650 vpaddd xmm1,xmm1,xmm4
4651 mov esi,ebx
4652 shrd ecx,ecx,9
4653 mov DWORD [12+esp],ebx
4654 vpxor xmm6,xmm6,xmm5
4655 xor ecx,ebx
4656 xor ebx,edi
4657 add edx,DWORD [8+esp]
4658 vpsrlq xmm7,xmm7,19
4659 shrd ecx,ecx,11
4660 and eax,ebx
4661 xor ecx,esi
4662 vpxor xmm6,xmm6,xmm7
4663 add edx,DWORD [52+esp]
4664 xor eax,edi
4665 shrd ecx,ecx,2
4666 vpshufd xmm7,xmm6,132
4667 add eax,edx
4668 add edx,DWORD [24+esp]
4669 add eax,ecx
4670 vpsrldq xmm7,xmm7,8
4671 mov ecx,edx
4672 shrd edx,edx,14
4673 mov esi,DWORD [28+esp]
4674 vpaddd xmm1,xmm1,xmm7
4675 xor edx,ecx
4676 mov edi,DWORD [esp]
4677 xor esi,edi
4678 vpshufd xmm7,xmm1,80
4679 shrd edx,edx,5
4680 and esi,ecx
4681 mov DWORD [24+esp],ecx
4682 vpsrld xmm6,xmm7,10
4683 xor edx,ecx
4684 xor edi,esi
4685 shrd edx,edx,6
4686 vpsrlq xmm5,xmm7,17
4687 mov ecx,eax
4688 add edx,edi
4689 mov edi,DWORD [12+esp]
4690 vpxor xmm6,xmm6,xmm5
4691 mov esi,eax
4692 shrd ecx,ecx,9
4693 mov DWORD [8+esp],eax
4694 vpsrlq xmm7,xmm7,19
4695 xor ecx,eax
4696 xor eax,edi
4697 add edx,DWORD [4+esp]
4698 vpxor xmm6,xmm6,xmm7
4699 shrd ecx,ecx,11
4700 and ebx,eax
4701 xor ecx,esi
4702 vpshufd xmm7,xmm6,232
4703 add edx,DWORD [56+esp]
4704 xor ebx,edi
4705 shrd ecx,ecx,2
4706 vpslldq xmm7,xmm7,8
4707 add ebx,edx
4708 add edx,DWORD [20+esp]
4709 add ebx,ecx
4710 vpaddd xmm1,xmm1,xmm7
4711 mov ecx,edx
4712 shrd edx,edx,14
4713 mov esi,DWORD [24+esp]
4714 vpaddd xmm6,xmm1,[16+ebp]
4715 xor edx,ecx
4716 mov edi,DWORD [28+esp]
4717 xor esi,edi
4718 shrd edx,edx,5
4719 and esi,ecx
4720 mov DWORD [20+esp],ecx
4721 xor edx,ecx
4722 xor edi,esi
4723 shrd edx,edx,6
4724 mov ecx,ebx
4725 add edx,edi
4726 mov edi,DWORD [8+esp]
4727 mov esi,ebx
4728 shrd ecx,ecx,9
4729 mov DWORD [4+esp],ebx
4730 xor ecx,ebx
4731 xor ebx,edi
4732 add edx,DWORD [esp]
4733 shrd ecx,ecx,11
4734 and eax,ebx
4735 xor ecx,esi
4736 add edx,DWORD [60+esp]
4737 xor eax,edi
4738 shrd ecx,ecx,2
4739 add eax,edx
4740 add edx,DWORD [16+esp]
4741 add eax,ecx
4742 vmovdqa [48+esp],xmm6
4743 vpalignr xmm4,xmm3,xmm2,4
4744 mov ecx,edx
4745 shrd edx,edx,14
4746 mov esi,DWORD [20+esp]
4747 vpalignr xmm7,xmm1,xmm0,4
4748 xor edx,ecx
4749 mov edi,DWORD [24+esp]
4750 xor esi,edi
4751 vpsrld xmm6,xmm4,7
4752 shrd edx,edx,5
4753 and esi,ecx
4754 mov DWORD [16+esp],ecx
4755 vpaddd xmm2,xmm2,xmm7
4756 xor edx,ecx
4757 xor edi,esi
4758 shrd edx,edx,6
4759 vpsrld xmm7,xmm4,3
4760 mov ecx,eax
4761 add edx,edi
4762 mov edi,DWORD [4+esp]
4763 vpslld xmm5,xmm4,14
4764 mov esi,eax
4765 shrd ecx,ecx,9
4766 mov DWORD [esp],eax
4767 vpxor xmm4,xmm7,xmm6
4768 xor ecx,eax
4769 xor eax,edi
4770 add edx,DWORD [28+esp]
4771 vpshufd xmm7,xmm1,250
4772 shrd ecx,ecx,11
4773 and ebx,eax
4774 xor ecx,esi
4775 vpsrld xmm6,xmm6,11
4776 add edx,DWORD [64+esp]
4777 xor ebx,edi
4778 shrd ecx,ecx,2
4779 vpxor xmm4,xmm4,xmm5
4780 add ebx,edx
4781 add edx,DWORD [12+esp]
4782 add ebx,ecx
4783 vpslld xmm5,xmm5,11
4784 mov ecx,edx
4785 shrd edx,edx,14
4786 mov esi,DWORD [16+esp]
4787 vpxor xmm4,xmm4,xmm6
4788 xor edx,ecx
4789 mov edi,DWORD [20+esp]
4790 xor esi,edi
4791 vpsrld xmm6,xmm7,10
4792 shrd edx,edx,5
4793 and esi,ecx
4794 mov DWORD [12+esp],ecx
4795 vpxor xmm4,xmm4,xmm5
4796 xor edx,ecx
4797 xor edi,esi
4798 shrd edx,edx,6
4799 vpsrlq xmm5,xmm7,17
4800 mov ecx,ebx
4801 add edx,edi
4802 mov edi,DWORD [esp]
4803 vpaddd xmm2,xmm2,xmm4
4804 mov esi,ebx
4805 shrd ecx,ecx,9
4806 mov DWORD [28+esp],ebx
4807 vpxor xmm6,xmm6,xmm5
4808 xor ecx,ebx
4809 xor ebx,edi
4810 add edx,DWORD [24+esp]
4811 vpsrlq xmm7,xmm7,19
4812 shrd ecx,ecx,11
4813 and eax,ebx
4814 xor ecx,esi
4815 vpxor xmm6,xmm6,xmm7
4816 add edx,DWORD [68+esp]
4817 xor eax,edi
4818 shrd ecx,ecx,2
4819 vpshufd xmm7,xmm6,132
4820 add eax,edx
4821 add edx,DWORD [8+esp]
4822 add eax,ecx
4823 vpsrldq xmm7,xmm7,8
4824 mov ecx,edx
4825 shrd edx,edx,14
4826 mov esi,DWORD [12+esp]
4827 vpaddd xmm2,xmm2,xmm7
4828 xor edx,ecx
4829 mov edi,DWORD [16+esp]
4830 xor esi,edi
4831 vpshufd xmm7,xmm2,80
4832 shrd edx,edx,5
4833 and esi,ecx
4834 mov DWORD [8+esp],ecx
4835 vpsrld xmm6,xmm7,10
4836 xor edx,ecx
4837 xor edi,esi
4838 shrd edx,edx,6
4839 vpsrlq xmm5,xmm7,17
4840 mov ecx,eax
4841 add edx,edi
4842 mov edi,DWORD [28+esp]
4843 vpxor xmm6,xmm6,xmm5
4844 mov esi,eax
4845 shrd ecx,ecx,9
4846 mov DWORD [24+esp],eax
4847 vpsrlq xmm7,xmm7,19
4848 xor ecx,eax
4849 xor eax,edi
4850 add edx,DWORD [20+esp]
4851 vpxor xmm6,xmm6,xmm7
4852 shrd ecx,ecx,11
4853 and ebx,eax
4854 xor ecx,esi
4855 vpshufd xmm7,xmm6,232
4856 add edx,DWORD [72+esp]
4857 xor ebx,edi
4858 shrd ecx,ecx,2
4859 vpslldq xmm7,xmm7,8
4860 add ebx,edx
4861 add edx,DWORD [4+esp]
4862 add ebx,ecx
4863 vpaddd xmm2,xmm2,xmm7
4864 mov ecx,edx
4865 shrd edx,edx,14
4866 mov esi,DWORD [8+esp]
4867 vpaddd xmm6,xmm2,[32+ebp]
4868 xor edx,ecx
4869 mov edi,DWORD [12+esp]
4870 xor esi,edi
4871 shrd edx,edx,5
4872 and esi,ecx
4873 mov DWORD [4+esp],ecx
4874 xor edx,ecx
4875 xor edi,esi
4876 shrd edx,edx,6
4877 mov ecx,ebx
4878 add edx,edi
4879 mov edi,DWORD [24+esp]
4880 mov esi,ebx
4881 shrd ecx,ecx,9
4882 mov DWORD [20+esp],ebx
4883 xor ecx,ebx
4884 xor ebx,edi
4885 add edx,DWORD [16+esp]
4886 shrd ecx,ecx,11
4887 and eax,ebx
4888 xor ecx,esi
4889 add edx,DWORD [76+esp]
4890 xor eax,edi
4891 shrd ecx,ecx,2
4892 add eax,edx
4893 add edx,DWORD [esp]
4894 add eax,ecx
4895 vmovdqa [64+esp],xmm6
4896 vpalignr xmm4,xmm0,xmm3,4
4897 mov ecx,edx
4898 shrd edx,edx,14
4899 mov esi,DWORD [4+esp]
4900 vpalignr xmm7,xmm2,xmm1,4
4901 xor edx,ecx
4902 mov edi,DWORD [8+esp]
4903 xor esi,edi
4904 vpsrld xmm6,xmm4,7
4905 shrd edx,edx,5
4906 and esi,ecx
4907 mov DWORD [esp],ecx
4908 vpaddd xmm3,xmm3,xmm7
4909 xor edx,ecx
4910 xor edi,esi
4911 shrd edx,edx,6
4912 vpsrld xmm7,xmm4,3
4913 mov ecx,eax
4914 add edx,edi
4915 mov edi,DWORD [20+esp]
4916 vpslld xmm5,xmm4,14
4917 mov esi,eax
4918 shrd ecx,ecx,9
4919 mov DWORD [16+esp],eax
4920 vpxor xmm4,xmm7,xmm6
4921 xor ecx,eax
4922 xor eax,edi
4923 add edx,DWORD [12+esp]
4924 vpshufd xmm7,xmm2,250
4925 shrd ecx,ecx,11
4926 and ebx,eax
4927 xor ecx,esi
4928 vpsrld xmm6,xmm6,11
4929 add edx,DWORD [80+esp]
4930 xor ebx,edi
4931 shrd ecx,ecx,2
4932 vpxor xmm4,xmm4,xmm5
4933 add ebx,edx
4934 add edx,DWORD [28+esp]
4935 add ebx,ecx
4936 vpslld xmm5,xmm5,11
4937 mov ecx,edx
4938 shrd edx,edx,14
4939 mov esi,DWORD [esp]
4940 vpxor xmm4,xmm4,xmm6
4941 xor edx,ecx
4942 mov edi,DWORD [4+esp]
4943 xor esi,edi
4944 vpsrld xmm6,xmm7,10
4945 shrd edx,edx,5
4946 and esi,ecx
4947 mov DWORD [28+esp],ecx
4948 vpxor xmm4,xmm4,xmm5
4949 xor edx,ecx
4950 xor edi,esi
4951 shrd edx,edx,6
4952 vpsrlq xmm5,xmm7,17
4953 mov ecx,ebx
4954 add edx,edi
4955 mov edi,DWORD [16+esp]
4956 vpaddd xmm3,xmm3,xmm4
4957 mov esi,ebx
4958 shrd ecx,ecx,9
4959 mov DWORD [12+esp],ebx
4960 vpxor xmm6,xmm6,xmm5
4961 xor ecx,ebx
4962 xor ebx,edi
4963 add edx,DWORD [8+esp]
4964 vpsrlq xmm7,xmm7,19
4965 shrd ecx,ecx,11
4966 and eax,ebx
4967 xor ecx,esi
4968 vpxor xmm6,xmm6,xmm7
4969 add edx,DWORD [84+esp]
4970 xor eax,edi
4971 shrd ecx,ecx,2
4972 vpshufd xmm7,xmm6,132
4973 add eax,edx
4974 add edx,DWORD [24+esp]
4975 add eax,ecx
4976 vpsrldq xmm7,xmm7,8
4977 mov ecx,edx
4978 shrd edx,edx,14
4979 mov esi,DWORD [28+esp]
4980 vpaddd xmm3,xmm3,xmm7
4981 xor edx,ecx
4982 mov edi,DWORD [esp]
4983 xor esi,edi
4984 vpshufd xmm7,xmm3,80
4985 shrd edx,edx,5
4986 and esi,ecx
4987 mov DWORD [24+esp],ecx
4988 vpsrld xmm6,xmm7,10
4989 xor edx,ecx
4990 xor edi,esi
4991 shrd edx,edx,6
4992 vpsrlq xmm5,xmm7,17
4993 mov ecx,eax
4994 add edx,edi
4995 mov edi,DWORD [12+esp]
4996 vpxor xmm6,xmm6,xmm5
4997 mov esi,eax
4998 shrd ecx,ecx,9
4999 mov DWORD [8+esp],eax
5000 vpsrlq xmm7,xmm7,19
5001 xor ecx,eax
5002 xor eax,edi
5003 add edx,DWORD [4+esp]
5004 vpxor xmm6,xmm6,xmm7
5005 shrd ecx,ecx,11
5006 and ebx,eax
5007 xor ecx,esi
5008 vpshufd xmm7,xmm6,232
5009 add edx,DWORD [88+esp]
5010 xor ebx,edi
5011 shrd ecx,ecx,2
5012 vpslldq xmm7,xmm7,8
5013 add ebx,edx
5014 add edx,DWORD [20+esp]
5015 add ebx,ecx
5016 vpaddd xmm3,xmm3,xmm7
5017 mov ecx,edx
5018 shrd edx,edx,14
5019 mov esi,DWORD [24+esp]
5020 vpaddd xmm6,xmm3,[48+ebp]
5021 xor edx,ecx
5022 mov edi,DWORD [28+esp]
5023 xor esi,edi
5024 shrd edx,edx,5
5025 and esi,ecx
5026 mov DWORD [20+esp],ecx
5027 xor edx,ecx
5028 xor edi,esi
5029 shrd edx,edx,6
5030 mov ecx,ebx
5031 add edx,edi
5032 mov edi,DWORD [8+esp]
5033 mov esi,ebx
5034 shrd ecx,ecx,9
5035 mov DWORD [4+esp],ebx
5036 xor ecx,ebx
5037 xor ebx,edi
5038 add edx,DWORD [esp]
5039 shrd ecx,ecx,11
5040 and eax,ebx
5041 xor ecx,esi
5042 add edx,DWORD [92+esp]
5043 xor eax,edi
5044 shrd ecx,ecx,2
5045 add eax,edx
5046 add edx,DWORD [16+esp]
5047 add eax,ecx
5048 vmovdqa [80+esp],xmm6
5049 cmp DWORD [64+ebp],66051
5050 jne NEAR L$013avx_00_47
5051 mov ecx,edx
5052 shrd edx,edx,14
5053 mov esi,DWORD [20+esp]
5054 xor edx,ecx
5055 mov edi,DWORD [24+esp]
5056 xor esi,edi
5057 shrd edx,edx,5
5058 and esi,ecx
5059 mov DWORD [16+esp],ecx
5060 xor edx,ecx
5061 xor edi,esi
5062 shrd edx,edx,6
5063 mov ecx,eax
5064 add edx,edi
5065 mov edi,DWORD [4+esp]
5066 mov esi,eax
5067 shrd ecx,ecx,9
5068 mov DWORD [esp],eax
5069 xor ecx,eax
5070 xor eax,edi
5071 add edx,DWORD [28+esp]
5072 shrd ecx,ecx,11
5073 and ebx,eax
5074 xor ecx,esi
5075 add edx,DWORD [32+esp]
5076 xor ebx,edi
5077 shrd ecx,ecx,2
5078 add ebx,edx
5079 add edx,DWORD [12+esp]
5080 add ebx,ecx
5081 mov ecx,edx
5082 shrd edx,edx,14
5083 mov esi,DWORD [16+esp]
5084 xor edx,ecx
5085 mov edi,DWORD [20+esp]
5086 xor esi,edi
5087 shrd edx,edx,5
5088 and esi,ecx
5089 mov DWORD [12+esp],ecx
5090 xor edx,ecx
5091 xor edi,esi
5092 shrd edx,edx,6
5093 mov ecx,ebx
5094 add edx,edi
5095 mov edi,DWORD [esp]
5096 mov esi,ebx
5097 shrd ecx,ecx,9
5098 mov DWORD [28+esp],ebx
5099 xor ecx,ebx
5100 xor ebx,edi
5101 add edx,DWORD [24+esp]
5102 shrd ecx,ecx,11
5103 and eax,ebx
5104 xor ecx,esi
5105 add edx,DWORD [36+esp]
5106 xor eax,edi
5107 shrd ecx,ecx,2
5108 add eax,edx
5109 add edx,DWORD [8+esp]
5110 add eax,ecx
5111 mov ecx,edx
5112 shrd edx,edx,14
5113 mov esi,DWORD [12+esp]
5114 xor edx,ecx
5115 mov edi,DWORD [16+esp]
5116 xor esi,edi
5117 shrd edx,edx,5
5118 and esi,ecx
5119 mov DWORD [8+esp],ecx
5120 xor edx,ecx
5121 xor edi,esi
5122 shrd edx,edx,6
5123 mov ecx,eax
5124 add edx,edi
5125 mov edi,DWORD [28+esp]
5126 mov esi,eax
5127 shrd ecx,ecx,9
5128 mov DWORD [24+esp],eax
5129 xor ecx,eax
5130 xor eax,edi
5131 add edx,DWORD [20+esp]
5132 shrd ecx,ecx,11
5133 and ebx,eax
5134 xor ecx,esi
5135 add edx,DWORD [40+esp]
5136 xor ebx,edi
5137 shrd ecx,ecx,2
5138 add ebx,edx
5139 add edx,DWORD [4+esp]
5140 add ebx,ecx
5141 mov ecx,edx
5142 shrd edx,edx,14
5143 mov esi,DWORD [8+esp]
5144 xor edx,ecx
5145 mov edi,DWORD [12+esp]
5146 xor esi,edi
5147 shrd edx,edx,5
5148 and esi,ecx
5149 mov DWORD [4+esp],ecx
5150 xor edx,ecx
5151 xor edi,esi
5152 shrd edx,edx,6
5153 mov ecx,ebx
5154 add edx,edi
5155 mov edi,DWORD [24+esp]
5156 mov esi,ebx
5157 shrd ecx,ecx,9
5158 mov DWORD [20+esp],ebx
5159 xor ecx,ebx
5160 xor ebx,edi
5161 add edx,DWORD [16+esp]
5162 shrd ecx,ecx,11
5163 and eax,ebx
5164 xor ecx,esi
5165 add edx,DWORD [44+esp]
5166 xor eax,edi
5167 shrd ecx,ecx,2
5168 add eax,edx
5169 add edx,DWORD [esp]
5170 add eax,ecx
5171 mov ecx,edx
5172 shrd edx,edx,14
5173 mov esi,DWORD [4+esp]
5174 xor edx,ecx
5175 mov edi,DWORD [8+esp]
5176 xor esi,edi
5177 shrd edx,edx,5
5178 and esi,ecx
5179 mov DWORD [esp],ecx
5180 xor edx,ecx
5181 xor edi,esi
5182 shrd edx,edx,6
5183 mov ecx,eax
5184 add edx,edi
5185 mov edi,DWORD [20+esp]
5186 mov esi,eax
5187 shrd ecx,ecx,9
5188 mov DWORD [16+esp],eax
5189 xor ecx,eax
5190 xor eax,edi
5191 add edx,DWORD [12+esp]
5192 shrd ecx,ecx,11
5193 and ebx,eax
5194 xor ecx,esi
5195 add edx,DWORD [48+esp]
5196 xor ebx,edi
5197 shrd ecx,ecx,2
5198 add ebx,edx
5199 add edx,DWORD [28+esp]
5200 add ebx,ecx
5201 mov ecx,edx
5202 shrd edx,edx,14
5203 mov esi,DWORD [esp]
5204 xor edx,ecx
5205 mov edi,DWORD [4+esp]
5206 xor esi,edi
5207 shrd edx,edx,5
5208 and esi,ecx
5209 mov DWORD [28+esp],ecx
5210 xor edx,ecx
5211 xor edi,esi
5212 shrd edx,edx,6
5213 mov ecx,ebx
5214 add edx,edi
5215 mov edi,DWORD [16+esp]
5216 mov esi,ebx
5217 shrd ecx,ecx,9
5218 mov DWORD [12+esp],ebx
5219 xor ecx,ebx
5220 xor ebx,edi
5221 add edx,DWORD [8+esp]
5222 shrd ecx,ecx,11
5223 and eax,ebx
5224 xor ecx,esi
5225 add edx,DWORD [52+esp]
5226 xor eax,edi
5227 shrd ecx,ecx,2
5228 add eax,edx
5229 add edx,DWORD [24+esp]
5230 add eax,ecx
5231 mov ecx,edx
5232 shrd edx,edx,14
5233 mov esi,DWORD [28+esp]
5234 xor edx,ecx
5235 mov edi,DWORD [esp]
5236 xor esi,edi
5237 shrd edx,edx,5
5238 and esi,ecx
5239 mov DWORD [24+esp],ecx
5240 xor edx,ecx
5241 xor edi,esi
5242 shrd edx,edx,6
5243 mov ecx,eax
5244 add edx,edi
5245 mov edi,DWORD [12+esp]
5246 mov esi,eax
5247 shrd ecx,ecx,9
5248 mov DWORD [8+esp],eax
5249 xor ecx,eax
5250 xor eax,edi
5251 add edx,DWORD [4+esp]
5252 shrd ecx,ecx,11
5253 and ebx,eax
5254 xor ecx,esi
5255 add edx,DWORD [56+esp]
5256 xor ebx,edi
5257 shrd ecx,ecx,2
5258 add ebx,edx
5259 add edx,DWORD [20+esp]
5260 add ebx,ecx
5261 mov ecx,edx
5262 shrd edx,edx,14
5263 mov esi,DWORD [24+esp]
5264 xor edx,ecx
5265 mov edi,DWORD [28+esp]
5266 xor esi,edi
5267 shrd edx,edx,5
5268 and esi,ecx
5269 mov DWORD [20+esp],ecx
5270 xor edx,ecx
5271 xor edi,esi
5272 shrd edx,edx,6
5273 mov ecx,ebx
5274 add edx,edi
5275 mov edi,DWORD [8+esp]
5276 mov esi,ebx
5277 shrd ecx,ecx,9
5278 mov DWORD [4+esp],ebx
5279 xor ecx,ebx
5280 xor ebx,edi
5281 add edx,DWORD [esp]
5282 shrd ecx,ecx,11
5283 and eax,ebx
5284 xor ecx,esi
5285 add edx,DWORD [60+esp]
5286 xor eax,edi
5287 shrd ecx,ecx,2
5288 add eax,edx
5289 add edx,DWORD [16+esp]
5290 add eax,ecx
5291 mov ecx,edx
5292 shrd edx,edx,14
5293 mov esi,DWORD [20+esp]
5294 xor edx,ecx
5295 mov edi,DWORD [24+esp]
5296 xor esi,edi
5297 shrd edx,edx,5
5298 and esi,ecx
5299 mov DWORD [16+esp],ecx
5300 xor edx,ecx
5301 xor edi,esi
5302 shrd edx,edx,6
5303 mov ecx,eax
5304 add edx,edi
5305 mov edi,DWORD [4+esp]
5306 mov esi,eax
5307 shrd ecx,ecx,9
5308 mov DWORD [esp],eax
5309 xor ecx,eax
5310 xor eax,edi
5311 add edx,DWORD [28+esp]
5312 shrd ecx,ecx,11
5313 and ebx,eax
5314 xor ecx,esi
5315 add edx,DWORD [64+esp]
5316 xor ebx,edi
5317 shrd ecx,ecx,2
5318 add ebx,edx
5319 add edx,DWORD [12+esp]
5320 add ebx,ecx
5321 mov ecx,edx
5322 shrd edx,edx,14
5323 mov esi,DWORD [16+esp]
5324 xor edx,ecx
5325 mov edi,DWORD [20+esp]
5326 xor esi,edi
5327 shrd edx,edx,5
5328 and esi,ecx
5329 mov DWORD [12+esp],ecx
5330 xor edx,ecx
5331 xor edi,esi
5332 shrd edx,edx,6
5333 mov ecx,ebx
5334 add edx,edi
5335 mov edi,DWORD [esp]
5336 mov esi,ebx
5337 shrd ecx,ecx,9
5338 mov DWORD [28+esp],ebx
5339 xor ecx,ebx
5340 xor ebx,edi
5341 add edx,DWORD [24+esp]
5342 shrd ecx,ecx,11
5343 and eax,ebx
5344 xor ecx,esi
5345 add edx,DWORD [68+esp]
5346 xor eax,edi
5347 shrd ecx,ecx,2
5348 add eax,edx
5349 add edx,DWORD [8+esp]
5350 add eax,ecx
5351 mov ecx,edx
5352 shrd edx,edx,14
5353 mov esi,DWORD [12+esp]
5354 xor edx,ecx
5355 mov edi,DWORD [16+esp]
5356 xor esi,edi
5357 shrd edx,edx,5
5358 and esi,ecx
5359 mov DWORD [8+esp],ecx
5360 xor edx,ecx
5361 xor edi,esi
5362 shrd edx,edx,6
5363 mov ecx,eax
5364 add edx,edi
5365 mov edi,DWORD [28+esp]
5366 mov esi,eax
5367 shrd ecx,ecx,9
5368 mov DWORD [24+esp],eax
5369 xor ecx,eax
5370 xor eax,edi
5371 add edx,DWORD [20+esp]
5372 shrd ecx,ecx,11
5373 and ebx,eax
5374 xor ecx,esi
5375 add edx,DWORD [72+esp]
5376 xor ebx,edi
5377 shrd ecx,ecx,2
5378 add ebx,edx
5379 add edx,DWORD [4+esp]
5380 add ebx,ecx
5381 mov ecx,edx
5382 shrd edx,edx,14
5383 mov esi,DWORD [8+esp]
5384 xor edx,ecx
5385 mov edi,DWORD [12+esp]
5386 xor esi,edi
5387 shrd edx,edx,5
5388 and esi,ecx
5389 mov DWORD [4+esp],ecx
5390 xor edx,ecx
5391 xor edi,esi
5392 shrd edx,edx,6
5393 mov ecx,ebx
5394 add edx,edi
5395 mov edi,DWORD [24+esp]
5396 mov esi,ebx
5397 shrd ecx,ecx,9
5398 mov DWORD [20+esp],ebx
5399 xor ecx,ebx
5400 xor ebx,edi
5401 add edx,DWORD [16+esp]
5402 shrd ecx,ecx,11
5403 and eax,ebx
5404 xor ecx,esi
5405 add edx,DWORD [76+esp]
5406 xor eax,edi
5407 shrd ecx,ecx,2
5408 add eax,edx
5409 add edx,DWORD [esp]
5410 add eax,ecx
5411 mov ecx,edx
5412 shrd edx,edx,14
5413 mov esi,DWORD [4+esp]
5414 xor edx,ecx
5415 mov edi,DWORD [8+esp]
5416 xor esi,edi
5417 shrd edx,edx,5
5418 and esi,ecx
5419 mov DWORD [esp],ecx
5420 xor edx,ecx
5421 xor edi,esi
5422 shrd edx,edx,6
5423 mov ecx,eax
5424 add edx,edi
5425 mov edi,DWORD [20+esp]
5426 mov esi,eax
5427 shrd ecx,ecx,9
5428 mov DWORD [16+esp],eax
5429 xor ecx,eax
5430 xor eax,edi
5431 add edx,DWORD [12+esp]
5432 shrd ecx,ecx,11
5433 and ebx,eax
5434 xor ecx,esi
5435 add edx,DWORD [80+esp]
5436 xor ebx,edi
5437 shrd ecx,ecx,2
5438 add ebx,edx
5439 add edx,DWORD [28+esp]
5440 add ebx,ecx
5441 mov ecx,edx
5442 shrd edx,edx,14
5443 mov esi,DWORD [esp]
5444 xor edx,ecx
5445 mov edi,DWORD [4+esp]
5446 xor esi,edi
5447 shrd edx,edx,5
5448 and esi,ecx
5449 mov DWORD [28+esp],ecx
5450 xor edx,ecx
5451 xor edi,esi
5452 shrd edx,edx,6
5453 mov ecx,ebx
5454 add edx,edi
5455 mov edi,DWORD [16+esp]
5456 mov esi,ebx
5457 shrd ecx,ecx,9
5458 mov DWORD [12+esp],ebx
5459 xor ecx,ebx
5460 xor ebx,edi
5461 add edx,DWORD [8+esp]
5462 shrd ecx,ecx,11
5463 and eax,ebx
5464 xor ecx,esi
5465 add edx,DWORD [84+esp]
5466 xor eax,edi
5467 shrd ecx,ecx,2
5468 add eax,edx
5469 add edx,DWORD [24+esp]
5470 add eax,ecx
5471 mov ecx,edx
5472 shrd edx,edx,14
5473 mov esi,DWORD [28+esp]
5474 xor edx,ecx
5475 mov edi,DWORD [esp]
5476 xor esi,edi
5477 shrd edx,edx,5
5478 and esi,ecx
5479 mov DWORD [24+esp],ecx
5480 xor edx,ecx
5481 xor edi,esi
5482 shrd edx,edx,6
5483 mov ecx,eax
5484 add edx,edi
5485 mov edi,DWORD [12+esp]
5486 mov esi,eax
5487 shrd ecx,ecx,9
5488 mov DWORD [8+esp],eax
5489 xor ecx,eax
5490 xor eax,edi
5491 add edx,DWORD [4+esp]
5492 shrd ecx,ecx,11
5493 and ebx,eax
5494 xor ecx,esi
5495 add edx,DWORD [88+esp]
5496 xor ebx,edi
5497 shrd ecx,ecx,2
5498 add ebx,edx
5499 add edx,DWORD [20+esp]
5500 add ebx,ecx
5501 mov ecx,edx
5502 shrd edx,edx,14
5503 mov esi,DWORD [24+esp]
5504 xor edx,ecx
5505 mov edi,DWORD [28+esp]
5506 xor esi,edi
5507 shrd edx,edx,5
5508 and esi,ecx
5509 mov DWORD [20+esp],ecx
5510 xor edx,ecx
5511 xor edi,esi
5512 shrd edx,edx,6
5513 mov ecx,ebx
5514 add edx,edi
5515 mov edi,DWORD [8+esp]
5516 mov esi,ebx
5517 shrd ecx,ecx,9
5518 mov DWORD [4+esp],ebx
5519 xor ecx,ebx
5520 xor ebx,edi
5521 add edx,DWORD [esp]
5522 shrd ecx,ecx,11
5523 and eax,ebx
5524 xor ecx,esi
5525 add edx,DWORD [92+esp]
5526 xor eax,edi
5527 shrd ecx,ecx,2
5528 add eax,edx
5529 add edx,DWORD [16+esp]
5530 add eax,ecx
5531 mov esi,DWORD [96+esp]
5532 xor ebx,edi
5533 mov ecx,DWORD [12+esp]
5534 add eax,DWORD [esi]
5535 add ebx,DWORD [4+esi]
5536 add edi,DWORD [8+esi]
5537 add ecx,DWORD [12+esi]
5538 mov DWORD [esi],eax
5539 mov DWORD [4+esi],ebx
5540 mov DWORD [8+esi],edi
5541 mov DWORD [12+esi],ecx
5542 mov DWORD [4+esp],ebx
5543 xor ebx,edi
5544 mov DWORD [8+esp],edi
5545 mov DWORD [12+esp],ecx
5546 mov edi,DWORD [20+esp]
5547 mov ecx,DWORD [24+esp]
5548 add edx,DWORD [16+esi]
5549 add edi,DWORD [20+esi]
5550 add ecx,DWORD [24+esi]
5551 mov DWORD [16+esi],edx
5552 mov DWORD [20+esi],edi
5553 mov DWORD [20+esp],edi
5554 mov edi,DWORD [28+esp]
5555 mov DWORD [24+esi],ecx
5556 add edi,DWORD [28+esi]
5557 mov DWORD [24+esp],ecx
5558 mov DWORD [28+esi],edi
5559 mov DWORD [28+esp],edi
5560 mov edi,DWORD [100+esp]
5561 vmovdqa xmm7,[64+ebp]
5562 sub ebp,192
5563 cmp edi,DWORD [104+esp]
5564 jb NEAR L$012grand_avx
5565 mov esp,DWORD [108+esp]
5566 vzeroall
5567 pop edi
5568 pop esi
5569 pop ebx
5570 pop ebp
5571 ret
5572 segment .bss
5573 common _OPENSSL_ia32cap_P 16
OLDNEW
« no previous file with comments | « third_party/boringssl/win-x86/crypto/sha/sha1-586.asm ('k') | third_party/boringssl/win-x86/crypto/sha/sha512-586.asm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698