Workaround for xkbcommon dead keys.
[chromium-blink-merge.git] / third_party / boringssl / win-x86 / crypto / sha / sha1-586.asm
blob6d33d34306b365cbd9e26a8f57371fc22033868f
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 global _sha1_block_data_order
18 align 16
19 _sha1_block_data_order:
20 L$_sha1_block_data_order_begin:
21 push ebp
22 push ebx
23 push esi
24 push edi
25 mov ebp,DWORD [20+esp]
26 mov esi,DWORD [24+esp]
27 mov eax,DWORD [28+esp]
28 sub esp,76
29 shl eax,6
30 add eax,esi
31 mov DWORD [104+esp],eax
32 mov edi,DWORD [16+ebp]
33 jmp NEAR L$000loop
34 align 16
35 L$000loop:
36 mov eax,DWORD [esi]
37 mov ebx,DWORD [4+esi]
38 mov ecx,DWORD [8+esi]
39 mov edx,DWORD [12+esi]
40 bswap eax
41 bswap ebx
42 bswap ecx
43 bswap edx
44 mov DWORD [esp],eax
45 mov DWORD [4+esp],ebx
46 mov DWORD [8+esp],ecx
47 mov DWORD [12+esp],edx
48 mov eax,DWORD [16+esi]
49 mov ebx,DWORD [20+esi]
50 mov ecx,DWORD [24+esi]
51 mov edx,DWORD [28+esi]
52 bswap eax
53 bswap ebx
54 bswap ecx
55 bswap edx
56 mov DWORD [16+esp],eax
57 mov DWORD [20+esp],ebx
58 mov DWORD [24+esp],ecx
59 mov DWORD [28+esp],edx
60 mov eax,DWORD [32+esi]
61 mov ebx,DWORD [36+esi]
62 mov ecx,DWORD [40+esi]
63 mov edx,DWORD [44+esi]
64 bswap eax
65 bswap ebx
66 bswap ecx
67 bswap edx
68 mov DWORD [32+esp],eax
69 mov DWORD [36+esp],ebx
70 mov DWORD [40+esp],ecx
71 mov DWORD [44+esp],edx
72 mov eax,DWORD [48+esi]
73 mov ebx,DWORD [52+esi]
74 mov ecx,DWORD [56+esi]
75 mov edx,DWORD [60+esi]
76 bswap eax
77 bswap ebx
78 bswap ecx
79 bswap edx
80 mov DWORD [48+esp],eax
81 mov DWORD [52+esp],ebx
82 mov DWORD [56+esp],ecx
83 mov DWORD [60+esp],edx
84 mov DWORD [100+esp],esi
85 mov eax,DWORD [ebp]
86 mov ebx,DWORD [4+ebp]
87 mov ecx,DWORD [8+ebp]
88 mov edx,DWORD [12+ebp]
89 ; 00_15 0
90 mov esi,ecx
91 mov ebp,eax
92 rol ebp,5
93 xor esi,edx
94 add ebp,edi
95 mov edi,DWORD [esp]
96 and esi,ebx
97 ror ebx,2
98 xor esi,edx
99 lea ebp,[1518500249+edi*1+ebp]
100 add ebp,esi
101 ; 00_15 1
102 mov edi,ebx
103 mov esi,ebp
104 rol ebp,5
105 xor edi,ecx
106 add ebp,edx
107 mov edx,DWORD [4+esp]
108 and edi,eax
109 ror eax,2
110 xor edi,ecx
111 lea ebp,[1518500249+edx*1+ebp]
112 add ebp,edi
113 ; 00_15 2
114 mov edx,eax
115 mov edi,ebp
116 rol ebp,5
117 xor edx,ebx
118 add ebp,ecx
119 mov ecx,DWORD [8+esp]
120 and edx,esi
121 ror esi,2
122 xor edx,ebx
123 lea ebp,[1518500249+ecx*1+ebp]
124 add ebp,edx
125 ; 00_15 3
126 mov ecx,esi
127 mov edx,ebp
128 rol ebp,5
129 xor ecx,eax
130 add ebp,ebx
131 mov ebx,DWORD [12+esp]
132 and ecx,edi
133 ror edi,2
134 xor ecx,eax
135 lea ebp,[1518500249+ebx*1+ebp]
136 add ebp,ecx
137 ; 00_15 4
138 mov ebx,edi
139 mov ecx,ebp
140 rol ebp,5
141 xor ebx,esi
142 add ebp,eax
143 mov eax,DWORD [16+esp]
144 and ebx,edx
145 ror edx,2
146 xor ebx,esi
147 lea ebp,[1518500249+eax*1+ebp]
148 add ebp,ebx
149 ; 00_15 5
150 mov eax,edx
151 mov ebx,ebp
152 rol ebp,5
153 xor eax,edi
154 add ebp,esi
155 mov esi,DWORD [20+esp]
156 and eax,ecx
157 ror ecx,2
158 xor eax,edi
159 lea ebp,[1518500249+esi*1+ebp]
160 add ebp,eax
161 ; 00_15 6
162 mov esi,ecx
163 mov eax,ebp
164 rol ebp,5
165 xor esi,edx
166 add ebp,edi
167 mov edi,DWORD [24+esp]
168 and esi,ebx
169 ror ebx,2
170 xor esi,edx
171 lea ebp,[1518500249+edi*1+ebp]
172 add ebp,esi
173 ; 00_15 7
174 mov edi,ebx
175 mov esi,ebp
176 rol ebp,5
177 xor edi,ecx
178 add ebp,edx
179 mov edx,DWORD [28+esp]
180 and edi,eax
181 ror eax,2
182 xor edi,ecx
183 lea ebp,[1518500249+edx*1+ebp]
184 add ebp,edi
185 ; 00_15 8
186 mov edx,eax
187 mov edi,ebp
188 rol ebp,5
189 xor edx,ebx
190 add ebp,ecx
191 mov ecx,DWORD [32+esp]
192 and edx,esi
193 ror esi,2
194 xor edx,ebx
195 lea ebp,[1518500249+ecx*1+ebp]
196 add ebp,edx
197 ; 00_15 9
198 mov ecx,esi
199 mov edx,ebp
200 rol ebp,5
201 xor ecx,eax
202 add ebp,ebx
203 mov ebx,DWORD [36+esp]
204 and ecx,edi
205 ror edi,2
206 xor ecx,eax
207 lea ebp,[1518500249+ebx*1+ebp]
208 add ebp,ecx
209 ; 00_15 10
210 mov ebx,edi
211 mov ecx,ebp
212 rol ebp,5
213 xor ebx,esi
214 add ebp,eax
215 mov eax,DWORD [40+esp]
216 and ebx,edx
217 ror edx,2
218 xor ebx,esi
219 lea ebp,[1518500249+eax*1+ebp]
220 add ebp,ebx
221 ; 00_15 11
222 mov eax,edx
223 mov ebx,ebp
224 rol ebp,5
225 xor eax,edi
226 add ebp,esi
227 mov esi,DWORD [44+esp]
228 and eax,ecx
229 ror ecx,2
230 xor eax,edi
231 lea ebp,[1518500249+esi*1+ebp]
232 add ebp,eax
233 ; 00_15 12
234 mov esi,ecx
235 mov eax,ebp
236 rol ebp,5
237 xor esi,edx
238 add ebp,edi
239 mov edi,DWORD [48+esp]
240 and esi,ebx
241 ror ebx,2
242 xor esi,edx
243 lea ebp,[1518500249+edi*1+ebp]
244 add ebp,esi
245 ; 00_15 13
246 mov edi,ebx
247 mov esi,ebp
248 rol ebp,5
249 xor edi,ecx
250 add ebp,edx
251 mov edx,DWORD [52+esp]
252 and edi,eax
253 ror eax,2
254 xor edi,ecx
255 lea ebp,[1518500249+edx*1+ebp]
256 add ebp,edi
257 ; 00_15 14
258 mov edx,eax
259 mov edi,ebp
260 rol ebp,5
261 xor edx,ebx
262 add ebp,ecx
263 mov ecx,DWORD [56+esp]
264 and edx,esi
265 ror esi,2
266 xor edx,ebx
267 lea ebp,[1518500249+ecx*1+ebp]
268 add ebp,edx
269 ; 00_15 15
270 mov ecx,esi
271 mov edx,ebp
272 rol ebp,5
273 xor ecx,eax
274 add ebp,ebx
275 mov ebx,DWORD [60+esp]
276 and ecx,edi
277 ror edi,2
278 xor ecx,eax
279 lea ebp,[1518500249+ebx*1+ebp]
280 mov ebx,DWORD [esp]
281 add ecx,ebp
282 ; 16_19 16
283 mov ebp,edi
284 xor ebx,DWORD [8+esp]
285 xor ebp,esi
286 xor ebx,DWORD [32+esp]
287 and ebp,edx
288 xor ebx,DWORD [52+esp]
289 rol ebx,1
290 xor ebp,esi
291 add eax,ebp
292 mov ebp,ecx
293 ror edx,2
294 mov DWORD [esp],ebx
295 rol ebp,5
296 lea ebx,[1518500249+eax*1+ebx]
297 mov eax,DWORD [4+esp]
298 add ebx,ebp
299 ; 16_19 17
300 mov ebp,edx
301 xor eax,DWORD [12+esp]
302 xor ebp,edi
303 xor eax,DWORD [36+esp]
304 and ebp,ecx
305 xor eax,DWORD [56+esp]
306 rol eax,1
307 xor ebp,edi
308 add esi,ebp
309 mov ebp,ebx
310 ror ecx,2
311 mov DWORD [4+esp],eax
312 rol ebp,5
313 lea eax,[1518500249+esi*1+eax]
314 mov esi,DWORD [8+esp]
315 add eax,ebp
316 ; 16_19 18
317 mov ebp,ecx
318 xor esi,DWORD [16+esp]
319 xor ebp,edx
320 xor esi,DWORD [40+esp]
321 and ebp,ebx
322 xor esi,DWORD [60+esp]
323 rol esi,1
324 xor ebp,edx
325 add edi,ebp
326 mov ebp,eax
327 ror ebx,2
328 mov DWORD [8+esp],esi
329 rol ebp,5
330 lea esi,[1518500249+edi*1+esi]
331 mov edi,DWORD [12+esp]
332 add esi,ebp
333 ; 16_19 19
334 mov ebp,ebx
335 xor edi,DWORD [20+esp]
336 xor ebp,ecx
337 xor edi,DWORD [44+esp]
338 and ebp,eax
339 xor edi,DWORD [esp]
340 rol edi,1
341 xor ebp,ecx
342 add edx,ebp
343 mov ebp,esi
344 ror eax,2
345 mov DWORD [12+esp],edi
346 rol ebp,5
347 lea edi,[1518500249+edx*1+edi]
348 mov edx,DWORD [16+esp]
349 add edi,ebp
350 ; 20_39 20
351 mov ebp,esi
352 xor edx,DWORD [24+esp]
353 xor ebp,eax
354 xor edx,DWORD [48+esp]
355 xor ebp,ebx
356 xor edx,DWORD [4+esp]
357 rol edx,1
358 add ecx,ebp
359 ror esi,2
360 mov ebp,edi
361 rol ebp,5
362 mov DWORD [16+esp],edx
363 lea edx,[1859775393+ecx*1+edx]
364 mov ecx,DWORD [20+esp]
365 add edx,ebp
366 ; 20_39 21
367 mov ebp,edi
368 xor ecx,DWORD [28+esp]
369 xor ebp,esi
370 xor ecx,DWORD [52+esp]
371 xor ebp,eax
372 xor ecx,DWORD [8+esp]
373 rol ecx,1
374 add ebx,ebp
375 ror edi,2
376 mov ebp,edx
377 rol ebp,5
378 mov DWORD [20+esp],ecx
379 lea ecx,[1859775393+ebx*1+ecx]
380 mov ebx,DWORD [24+esp]
381 add ecx,ebp
382 ; 20_39 22
383 mov ebp,edx
384 xor ebx,DWORD [32+esp]
385 xor ebp,edi
386 xor ebx,DWORD [56+esp]
387 xor ebp,esi
388 xor ebx,DWORD [12+esp]
389 rol ebx,1
390 add eax,ebp
391 ror edx,2
392 mov ebp,ecx
393 rol ebp,5
394 mov DWORD [24+esp],ebx
395 lea ebx,[1859775393+eax*1+ebx]
396 mov eax,DWORD [28+esp]
397 add ebx,ebp
398 ; 20_39 23
399 mov ebp,ecx
400 xor eax,DWORD [36+esp]
401 xor ebp,edx
402 xor eax,DWORD [60+esp]
403 xor ebp,edi
404 xor eax,DWORD [16+esp]
405 rol eax,1
406 add esi,ebp
407 ror ecx,2
408 mov ebp,ebx
409 rol ebp,5
410 mov DWORD [28+esp],eax
411 lea eax,[1859775393+esi*1+eax]
412 mov esi,DWORD [32+esp]
413 add eax,ebp
414 ; 20_39 24
415 mov ebp,ebx
416 xor esi,DWORD [40+esp]
417 xor ebp,ecx
418 xor esi,DWORD [esp]
419 xor ebp,edx
420 xor esi,DWORD [20+esp]
421 rol esi,1
422 add edi,ebp
423 ror ebx,2
424 mov ebp,eax
425 rol ebp,5
426 mov DWORD [32+esp],esi
427 lea esi,[1859775393+edi*1+esi]
428 mov edi,DWORD [36+esp]
429 add esi,ebp
430 ; 20_39 25
431 mov ebp,eax
432 xor edi,DWORD [44+esp]
433 xor ebp,ebx
434 xor edi,DWORD [4+esp]
435 xor ebp,ecx
436 xor edi,DWORD [24+esp]
437 rol edi,1
438 add edx,ebp
439 ror eax,2
440 mov ebp,esi
441 rol ebp,5
442 mov DWORD [36+esp],edi
443 lea edi,[1859775393+edx*1+edi]
444 mov edx,DWORD [40+esp]
445 add edi,ebp
446 ; 20_39 26
447 mov ebp,esi
448 xor edx,DWORD [48+esp]
449 xor ebp,eax
450 xor edx,DWORD [8+esp]
451 xor ebp,ebx
452 xor edx,DWORD [28+esp]
453 rol edx,1
454 add ecx,ebp
455 ror esi,2
456 mov ebp,edi
457 rol ebp,5
458 mov DWORD [40+esp],edx
459 lea edx,[1859775393+ecx*1+edx]
460 mov ecx,DWORD [44+esp]
461 add edx,ebp
462 ; 20_39 27
463 mov ebp,edi
464 xor ecx,DWORD [52+esp]
465 xor ebp,esi
466 xor ecx,DWORD [12+esp]
467 xor ebp,eax
468 xor ecx,DWORD [32+esp]
469 rol ecx,1
470 add ebx,ebp
471 ror edi,2
472 mov ebp,edx
473 rol ebp,5
474 mov DWORD [44+esp],ecx
475 lea ecx,[1859775393+ebx*1+ecx]
476 mov ebx,DWORD [48+esp]
477 add ecx,ebp
478 ; 20_39 28
479 mov ebp,edx
480 xor ebx,DWORD [56+esp]
481 xor ebp,edi
482 xor ebx,DWORD [16+esp]
483 xor ebp,esi
484 xor ebx,DWORD [36+esp]
485 rol ebx,1
486 add eax,ebp
487 ror edx,2
488 mov ebp,ecx
489 rol ebp,5
490 mov DWORD [48+esp],ebx
491 lea ebx,[1859775393+eax*1+ebx]
492 mov eax,DWORD [52+esp]
493 add ebx,ebp
494 ; 20_39 29
495 mov ebp,ecx
496 xor eax,DWORD [60+esp]
497 xor ebp,edx
498 xor eax,DWORD [20+esp]
499 xor ebp,edi
500 xor eax,DWORD [40+esp]
501 rol eax,1
502 add esi,ebp
503 ror ecx,2
504 mov ebp,ebx
505 rol ebp,5
506 mov DWORD [52+esp],eax
507 lea eax,[1859775393+esi*1+eax]
508 mov esi,DWORD [56+esp]
509 add eax,ebp
510 ; 20_39 30
511 mov ebp,ebx
512 xor esi,DWORD [esp]
513 xor ebp,ecx
514 xor esi,DWORD [24+esp]
515 xor ebp,edx
516 xor esi,DWORD [44+esp]
517 rol esi,1
518 add edi,ebp
519 ror ebx,2
520 mov ebp,eax
521 rol ebp,5
522 mov DWORD [56+esp],esi
523 lea esi,[1859775393+edi*1+esi]
524 mov edi,DWORD [60+esp]
525 add esi,ebp
526 ; 20_39 31
527 mov ebp,eax
528 xor edi,DWORD [4+esp]
529 xor ebp,ebx
530 xor edi,DWORD [28+esp]
531 xor ebp,ecx
532 xor edi,DWORD [48+esp]
533 rol edi,1
534 add edx,ebp
535 ror eax,2
536 mov ebp,esi
537 rol ebp,5
538 mov DWORD [60+esp],edi
539 lea edi,[1859775393+edx*1+edi]
540 mov edx,DWORD [esp]
541 add edi,ebp
542 ; 20_39 32
543 mov ebp,esi
544 xor edx,DWORD [8+esp]
545 xor ebp,eax
546 xor edx,DWORD [32+esp]
547 xor ebp,ebx
548 xor edx,DWORD [52+esp]
549 rol edx,1
550 add ecx,ebp
551 ror esi,2
552 mov ebp,edi
553 rol ebp,5
554 mov DWORD [esp],edx
555 lea edx,[1859775393+ecx*1+edx]
556 mov ecx,DWORD [4+esp]
557 add edx,ebp
558 ; 20_39 33
559 mov ebp,edi
560 xor ecx,DWORD [12+esp]
561 xor ebp,esi
562 xor ecx,DWORD [36+esp]
563 xor ebp,eax
564 xor ecx,DWORD [56+esp]
565 rol ecx,1
566 add ebx,ebp
567 ror edi,2
568 mov ebp,edx
569 rol ebp,5
570 mov DWORD [4+esp],ecx
571 lea ecx,[1859775393+ebx*1+ecx]
572 mov ebx,DWORD [8+esp]
573 add ecx,ebp
574 ; 20_39 34
575 mov ebp,edx
576 xor ebx,DWORD [16+esp]
577 xor ebp,edi
578 xor ebx,DWORD [40+esp]
579 xor ebp,esi
580 xor ebx,DWORD [60+esp]
581 rol ebx,1
582 add eax,ebp
583 ror edx,2
584 mov ebp,ecx
585 rol ebp,5
586 mov DWORD [8+esp],ebx
587 lea ebx,[1859775393+eax*1+ebx]
588 mov eax,DWORD [12+esp]
589 add ebx,ebp
590 ; 20_39 35
591 mov ebp,ecx
592 xor eax,DWORD [20+esp]
593 xor ebp,edx
594 xor eax,DWORD [44+esp]
595 xor ebp,edi
596 xor eax,DWORD [esp]
597 rol eax,1
598 add esi,ebp
599 ror ecx,2
600 mov ebp,ebx
601 rol ebp,5
602 mov DWORD [12+esp],eax
603 lea eax,[1859775393+esi*1+eax]
604 mov esi,DWORD [16+esp]
605 add eax,ebp
606 ; 20_39 36
607 mov ebp,ebx
608 xor esi,DWORD [24+esp]
609 xor ebp,ecx
610 xor esi,DWORD [48+esp]
611 xor ebp,edx
612 xor esi,DWORD [4+esp]
613 rol esi,1
614 add edi,ebp
615 ror ebx,2
616 mov ebp,eax
617 rol ebp,5
618 mov DWORD [16+esp],esi
619 lea esi,[1859775393+edi*1+esi]
620 mov edi,DWORD [20+esp]
621 add esi,ebp
622 ; 20_39 37
623 mov ebp,eax
624 xor edi,DWORD [28+esp]
625 xor ebp,ebx
626 xor edi,DWORD [52+esp]
627 xor ebp,ecx
628 xor edi,DWORD [8+esp]
629 rol edi,1
630 add edx,ebp
631 ror eax,2
632 mov ebp,esi
633 rol ebp,5
634 mov DWORD [20+esp],edi
635 lea edi,[1859775393+edx*1+edi]
636 mov edx,DWORD [24+esp]
637 add edi,ebp
638 ; 20_39 38
639 mov ebp,esi
640 xor edx,DWORD [32+esp]
641 xor ebp,eax
642 xor edx,DWORD [56+esp]
643 xor ebp,ebx
644 xor edx,DWORD [12+esp]
645 rol edx,1
646 add ecx,ebp
647 ror esi,2
648 mov ebp,edi
649 rol ebp,5
650 mov DWORD [24+esp],edx
651 lea edx,[1859775393+ecx*1+edx]
652 mov ecx,DWORD [28+esp]
653 add edx,ebp
654 ; 20_39 39
655 mov ebp,edi
656 xor ecx,DWORD [36+esp]
657 xor ebp,esi
658 xor ecx,DWORD [60+esp]
659 xor ebp,eax
660 xor ecx,DWORD [16+esp]
661 rol ecx,1
662 add ebx,ebp
663 ror edi,2
664 mov ebp,edx
665 rol ebp,5
666 mov DWORD [28+esp],ecx
667 lea ecx,[1859775393+ebx*1+ecx]
668 mov ebx,DWORD [32+esp]
669 add ecx,ebp
670 ; 40_59 40
671 mov ebp,edi
672 xor ebx,DWORD [40+esp]
673 xor ebp,esi
674 xor ebx,DWORD [esp]
675 and ebp,edx
676 xor ebx,DWORD [20+esp]
677 rol ebx,1
678 add ebp,eax
679 ror edx,2
680 mov eax,ecx
681 rol eax,5
682 mov DWORD [32+esp],ebx
683 lea ebx,[2400959708+ebp*1+ebx]
684 mov ebp,edi
685 add ebx,eax
686 and ebp,esi
687 mov eax,DWORD [36+esp]
688 add ebx,ebp
689 ; 40_59 41
690 mov ebp,edx
691 xor eax,DWORD [44+esp]
692 xor ebp,edi
693 xor eax,DWORD [4+esp]
694 and ebp,ecx
695 xor eax,DWORD [24+esp]
696 rol eax,1
697 add ebp,esi
698 ror ecx,2
699 mov esi,ebx
700 rol esi,5
701 mov DWORD [36+esp],eax
702 lea eax,[2400959708+ebp*1+eax]
703 mov ebp,edx
704 add eax,esi
705 and ebp,edi
706 mov esi,DWORD [40+esp]
707 add eax,ebp
708 ; 40_59 42
709 mov ebp,ecx
710 xor esi,DWORD [48+esp]
711 xor ebp,edx
712 xor esi,DWORD [8+esp]
713 and ebp,ebx
714 xor esi,DWORD [28+esp]
715 rol esi,1
716 add ebp,edi
717 ror ebx,2
718 mov edi,eax
719 rol edi,5
720 mov DWORD [40+esp],esi
721 lea esi,[2400959708+ebp*1+esi]
722 mov ebp,ecx
723 add esi,edi
724 and ebp,edx
725 mov edi,DWORD [44+esp]
726 add esi,ebp
727 ; 40_59 43
728 mov ebp,ebx
729 xor edi,DWORD [52+esp]
730 xor ebp,ecx
731 xor edi,DWORD [12+esp]
732 and ebp,eax
733 xor edi,DWORD [32+esp]
734 rol edi,1
735 add ebp,edx
736 ror eax,2
737 mov edx,esi
738 rol edx,5
739 mov DWORD [44+esp],edi
740 lea edi,[2400959708+ebp*1+edi]
741 mov ebp,ebx
742 add edi,edx
743 and ebp,ecx
744 mov edx,DWORD [48+esp]
745 add edi,ebp
746 ; 40_59 44
747 mov ebp,eax
748 xor edx,DWORD [56+esp]
749 xor ebp,ebx
750 xor edx,DWORD [16+esp]
751 and ebp,esi
752 xor edx,DWORD [36+esp]
753 rol edx,1
754 add ebp,ecx
755 ror esi,2
756 mov ecx,edi
757 rol ecx,5
758 mov DWORD [48+esp],edx
759 lea edx,[2400959708+ebp*1+edx]
760 mov ebp,eax
761 add edx,ecx
762 and ebp,ebx
763 mov ecx,DWORD [52+esp]
764 add edx,ebp
765 ; 40_59 45
766 mov ebp,esi
767 xor ecx,DWORD [60+esp]
768 xor ebp,eax
769 xor ecx,DWORD [20+esp]
770 and ebp,edi
771 xor ecx,DWORD [40+esp]
772 rol ecx,1
773 add ebp,ebx
774 ror edi,2
775 mov ebx,edx
776 rol ebx,5
777 mov DWORD [52+esp],ecx
778 lea ecx,[2400959708+ebp*1+ecx]
779 mov ebp,esi
780 add ecx,ebx
781 and ebp,eax
782 mov ebx,DWORD [56+esp]
783 add ecx,ebp
784 ; 40_59 46
785 mov ebp,edi
786 xor ebx,DWORD [esp]
787 xor ebp,esi
788 xor ebx,DWORD [24+esp]
789 and ebp,edx
790 xor ebx,DWORD [44+esp]
791 rol ebx,1
792 add ebp,eax
793 ror edx,2
794 mov eax,ecx
795 rol eax,5
796 mov DWORD [56+esp],ebx
797 lea ebx,[2400959708+ebp*1+ebx]
798 mov ebp,edi
799 add ebx,eax
800 and ebp,esi
801 mov eax,DWORD [60+esp]
802 add ebx,ebp
803 ; 40_59 47
804 mov ebp,edx
805 xor eax,DWORD [4+esp]
806 xor ebp,edi
807 xor eax,DWORD [28+esp]
808 and ebp,ecx
809 xor eax,DWORD [48+esp]
810 rol eax,1
811 add ebp,esi
812 ror ecx,2
813 mov esi,ebx
814 rol esi,5
815 mov DWORD [60+esp],eax
816 lea eax,[2400959708+ebp*1+eax]
817 mov ebp,edx
818 add eax,esi
819 and ebp,edi
820 mov esi,DWORD [esp]
821 add eax,ebp
822 ; 40_59 48
823 mov ebp,ecx
824 xor esi,DWORD [8+esp]
825 xor ebp,edx
826 xor esi,DWORD [32+esp]
827 and ebp,ebx
828 xor esi,DWORD [52+esp]
829 rol esi,1
830 add ebp,edi
831 ror ebx,2
832 mov edi,eax
833 rol edi,5
834 mov DWORD [esp],esi
835 lea esi,[2400959708+ebp*1+esi]
836 mov ebp,ecx
837 add esi,edi
838 and ebp,edx
839 mov edi,DWORD [4+esp]
840 add esi,ebp
841 ; 40_59 49
842 mov ebp,ebx
843 xor edi,DWORD [12+esp]
844 xor ebp,ecx
845 xor edi,DWORD [36+esp]
846 and ebp,eax
847 xor edi,DWORD [56+esp]
848 rol edi,1
849 add ebp,edx
850 ror eax,2
851 mov edx,esi
852 rol edx,5
853 mov DWORD [4+esp],edi
854 lea edi,[2400959708+ebp*1+edi]
855 mov ebp,ebx
856 add edi,edx
857 and ebp,ecx
858 mov edx,DWORD [8+esp]
859 add edi,ebp
860 ; 40_59 50
861 mov ebp,eax
862 xor edx,DWORD [16+esp]
863 xor ebp,ebx
864 xor edx,DWORD [40+esp]
865 and ebp,esi
866 xor edx,DWORD [60+esp]
867 rol edx,1
868 add ebp,ecx
869 ror esi,2
870 mov ecx,edi
871 rol ecx,5
872 mov DWORD [8+esp],edx
873 lea edx,[2400959708+ebp*1+edx]
874 mov ebp,eax
875 add edx,ecx
876 and ebp,ebx
877 mov ecx,DWORD [12+esp]
878 add edx,ebp
879 ; 40_59 51
880 mov ebp,esi
881 xor ecx,DWORD [20+esp]
882 xor ebp,eax
883 xor ecx,DWORD [44+esp]
884 and ebp,edi
885 xor ecx,DWORD [esp]
886 rol ecx,1
887 add ebp,ebx
888 ror edi,2
889 mov ebx,edx
890 rol ebx,5
891 mov DWORD [12+esp],ecx
892 lea ecx,[2400959708+ebp*1+ecx]
893 mov ebp,esi
894 add ecx,ebx
895 and ebp,eax
896 mov ebx,DWORD [16+esp]
897 add ecx,ebp
898 ; 40_59 52
899 mov ebp,edi
900 xor ebx,DWORD [24+esp]
901 xor ebp,esi
902 xor ebx,DWORD [48+esp]
903 and ebp,edx
904 xor ebx,DWORD [4+esp]
905 rol ebx,1
906 add ebp,eax
907 ror edx,2
908 mov eax,ecx
909 rol eax,5
910 mov DWORD [16+esp],ebx
911 lea ebx,[2400959708+ebp*1+ebx]
912 mov ebp,edi
913 add ebx,eax
914 and ebp,esi
915 mov eax,DWORD [20+esp]
916 add ebx,ebp
917 ; 40_59 53
918 mov ebp,edx
919 xor eax,DWORD [28+esp]
920 xor ebp,edi
921 xor eax,DWORD [52+esp]
922 and ebp,ecx
923 xor eax,DWORD [8+esp]
924 rol eax,1
925 add ebp,esi
926 ror ecx,2
927 mov esi,ebx
928 rol esi,5
929 mov DWORD [20+esp],eax
930 lea eax,[2400959708+ebp*1+eax]
931 mov ebp,edx
932 add eax,esi
933 and ebp,edi
934 mov esi,DWORD [24+esp]
935 add eax,ebp
936 ; 40_59 54
937 mov ebp,ecx
938 xor esi,DWORD [32+esp]
939 xor ebp,edx
940 xor esi,DWORD [56+esp]
941 and ebp,ebx
942 xor esi,DWORD [12+esp]
943 rol esi,1
944 add ebp,edi
945 ror ebx,2
946 mov edi,eax
947 rol edi,5
948 mov DWORD [24+esp],esi
949 lea esi,[2400959708+ebp*1+esi]
950 mov ebp,ecx
951 add esi,edi
952 and ebp,edx
953 mov edi,DWORD [28+esp]
954 add esi,ebp
955 ; 40_59 55
956 mov ebp,ebx
957 xor edi,DWORD [36+esp]
958 xor ebp,ecx
959 xor edi,DWORD [60+esp]
960 and ebp,eax
961 xor edi,DWORD [16+esp]
962 rol edi,1
963 add ebp,edx
964 ror eax,2
965 mov edx,esi
966 rol edx,5
967 mov DWORD [28+esp],edi
968 lea edi,[2400959708+ebp*1+edi]
969 mov ebp,ebx
970 add edi,edx
971 and ebp,ecx
972 mov edx,DWORD [32+esp]
973 add edi,ebp
974 ; 40_59 56
975 mov ebp,eax
976 xor edx,DWORD [40+esp]
977 xor ebp,ebx
978 xor edx,DWORD [esp]
979 and ebp,esi
980 xor edx,DWORD [20+esp]
981 rol edx,1
982 add ebp,ecx
983 ror esi,2
984 mov ecx,edi
985 rol ecx,5
986 mov DWORD [32+esp],edx
987 lea edx,[2400959708+ebp*1+edx]
988 mov ebp,eax
989 add edx,ecx
990 and ebp,ebx
991 mov ecx,DWORD [36+esp]
992 add edx,ebp
993 ; 40_59 57
994 mov ebp,esi
995 xor ecx,DWORD [44+esp]
996 xor ebp,eax
997 xor ecx,DWORD [4+esp]
998 and ebp,edi
999 xor ecx,DWORD [24+esp]
1000 rol ecx,1
1001 add ebp,ebx
1002 ror edi,2
1003 mov ebx,edx
1004 rol ebx,5
1005 mov DWORD [36+esp],ecx
1006 lea ecx,[2400959708+ebp*1+ecx]
1007 mov ebp,esi
1008 add ecx,ebx
1009 and ebp,eax
1010 mov ebx,DWORD [40+esp]
1011 add ecx,ebp
1012 ; 40_59 58
1013 mov ebp,edi
1014 xor ebx,DWORD [48+esp]
1015 xor ebp,esi
1016 xor ebx,DWORD [8+esp]
1017 and ebp,edx
1018 xor ebx,DWORD [28+esp]
1019 rol ebx,1
1020 add ebp,eax
1021 ror edx,2
1022 mov eax,ecx
1023 rol eax,5
1024 mov DWORD [40+esp],ebx
1025 lea ebx,[2400959708+ebp*1+ebx]
1026 mov ebp,edi
1027 add ebx,eax
1028 and ebp,esi
1029 mov eax,DWORD [44+esp]
1030 add ebx,ebp
1031 ; 40_59 59
1032 mov ebp,edx
1033 xor eax,DWORD [52+esp]
1034 xor ebp,edi
1035 xor eax,DWORD [12+esp]
1036 and ebp,ecx
1037 xor eax,DWORD [32+esp]
1038 rol eax,1
1039 add ebp,esi
1040 ror ecx,2
1041 mov esi,ebx
1042 rol esi,5
1043 mov DWORD [44+esp],eax
1044 lea eax,[2400959708+ebp*1+eax]
1045 mov ebp,edx
1046 add eax,esi
1047 and ebp,edi
1048 mov esi,DWORD [48+esp]
1049 add eax,ebp
1050 ; 20_39 60
1051 mov ebp,ebx
1052 xor esi,DWORD [56+esp]
1053 xor ebp,ecx
1054 xor esi,DWORD [16+esp]
1055 xor ebp,edx
1056 xor esi,DWORD [36+esp]
1057 rol esi,1
1058 add edi,ebp
1059 ror ebx,2
1060 mov ebp,eax
1061 rol ebp,5
1062 mov DWORD [48+esp],esi
1063 lea esi,[3395469782+edi*1+esi]
1064 mov edi,DWORD [52+esp]
1065 add esi,ebp
1066 ; 20_39 61
1067 mov ebp,eax
1068 xor edi,DWORD [60+esp]
1069 xor ebp,ebx
1070 xor edi,DWORD [20+esp]
1071 xor ebp,ecx
1072 xor edi,DWORD [40+esp]
1073 rol edi,1
1074 add edx,ebp
1075 ror eax,2
1076 mov ebp,esi
1077 rol ebp,5
1078 mov DWORD [52+esp],edi
1079 lea edi,[3395469782+edx*1+edi]
1080 mov edx,DWORD [56+esp]
1081 add edi,ebp
1082 ; 20_39 62
1083 mov ebp,esi
1084 xor edx,DWORD [esp]
1085 xor ebp,eax
1086 xor edx,DWORD [24+esp]
1087 xor ebp,ebx
1088 xor edx,DWORD [44+esp]
1089 rol edx,1
1090 add ecx,ebp
1091 ror esi,2
1092 mov ebp,edi
1093 rol ebp,5
1094 mov DWORD [56+esp],edx
1095 lea edx,[3395469782+ecx*1+edx]
1096 mov ecx,DWORD [60+esp]
1097 add edx,ebp
1098 ; 20_39 63
1099 mov ebp,edi
1100 xor ecx,DWORD [4+esp]
1101 xor ebp,esi
1102 xor ecx,DWORD [28+esp]
1103 xor ebp,eax
1104 xor ecx,DWORD [48+esp]
1105 rol ecx,1
1106 add ebx,ebp
1107 ror edi,2
1108 mov ebp,edx
1109 rol ebp,5
1110 mov DWORD [60+esp],ecx
1111 lea ecx,[3395469782+ebx*1+ecx]
1112 mov ebx,DWORD [esp]
1113 add ecx,ebp
1114 ; 20_39 64
1115 mov ebp,edx
1116 xor ebx,DWORD [8+esp]
1117 xor ebp,edi
1118 xor ebx,DWORD [32+esp]
1119 xor ebp,esi
1120 xor ebx,DWORD [52+esp]
1121 rol ebx,1
1122 add eax,ebp
1123 ror edx,2
1124 mov ebp,ecx
1125 rol ebp,5
1126 mov DWORD [esp],ebx
1127 lea ebx,[3395469782+eax*1+ebx]
1128 mov eax,DWORD [4+esp]
1129 add ebx,ebp
1130 ; 20_39 65
1131 mov ebp,ecx
1132 xor eax,DWORD [12+esp]
1133 xor ebp,edx
1134 xor eax,DWORD [36+esp]
1135 xor ebp,edi
1136 xor eax,DWORD [56+esp]
1137 rol eax,1
1138 add esi,ebp
1139 ror ecx,2
1140 mov ebp,ebx
1141 rol ebp,5
1142 mov DWORD [4+esp],eax
1143 lea eax,[3395469782+esi*1+eax]
1144 mov esi,DWORD [8+esp]
1145 add eax,ebp
1146 ; 20_39 66
1147 mov ebp,ebx
1148 xor esi,DWORD [16+esp]
1149 xor ebp,ecx
1150 xor esi,DWORD [40+esp]
1151 xor ebp,edx
1152 xor esi,DWORD [60+esp]
1153 rol esi,1
1154 add edi,ebp
1155 ror ebx,2
1156 mov ebp,eax
1157 rol ebp,5
1158 mov DWORD [8+esp],esi
1159 lea esi,[3395469782+edi*1+esi]
1160 mov edi,DWORD [12+esp]
1161 add esi,ebp
1162 ; 20_39 67
1163 mov ebp,eax
1164 xor edi,DWORD [20+esp]
1165 xor ebp,ebx
1166 xor edi,DWORD [44+esp]
1167 xor ebp,ecx
1168 xor edi,DWORD [esp]
1169 rol edi,1
1170 add edx,ebp
1171 ror eax,2
1172 mov ebp,esi
1173 rol ebp,5
1174 mov DWORD [12+esp],edi
1175 lea edi,[3395469782+edx*1+edi]
1176 mov edx,DWORD [16+esp]
1177 add edi,ebp
1178 ; 20_39 68
1179 mov ebp,esi
1180 xor edx,DWORD [24+esp]
1181 xor ebp,eax
1182 xor edx,DWORD [48+esp]
1183 xor ebp,ebx
1184 xor edx,DWORD [4+esp]
1185 rol edx,1
1186 add ecx,ebp
1187 ror esi,2
1188 mov ebp,edi
1189 rol ebp,5
1190 mov DWORD [16+esp],edx
1191 lea edx,[3395469782+ecx*1+edx]
1192 mov ecx,DWORD [20+esp]
1193 add edx,ebp
1194 ; 20_39 69
1195 mov ebp,edi
1196 xor ecx,DWORD [28+esp]
1197 xor ebp,esi
1198 xor ecx,DWORD [52+esp]
1199 xor ebp,eax
1200 xor ecx,DWORD [8+esp]
1201 rol ecx,1
1202 add ebx,ebp
1203 ror edi,2
1204 mov ebp,edx
1205 rol ebp,5
1206 mov DWORD [20+esp],ecx
1207 lea ecx,[3395469782+ebx*1+ecx]
1208 mov ebx,DWORD [24+esp]
1209 add ecx,ebp
1210 ; 20_39 70
1211 mov ebp,edx
1212 xor ebx,DWORD [32+esp]
1213 xor ebp,edi
1214 xor ebx,DWORD [56+esp]
1215 xor ebp,esi
1216 xor ebx,DWORD [12+esp]
1217 rol ebx,1
1218 add eax,ebp
1219 ror edx,2
1220 mov ebp,ecx
1221 rol ebp,5
1222 mov DWORD [24+esp],ebx
1223 lea ebx,[3395469782+eax*1+ebx]
1224 mov eax,DWORD [28+esp]
1225 add ebx,ebp
1226 ; 20_39 71
1227 mov ebp,ecx
1228 xor eax,DWORD [36+esp]
1229 xor ebp,edx
1230 xor eax,DWORD [60+esp]
1231 xor ebp,edi
1232 xor eax,DWORD [16+esp]
1233 rol eax,1
1234 add esi,ebp
1235 ror ecx,2
1236 mov ebp,ebx
1237 rol ebp,5
1238 mov DWORD [28+esp],eax
1239 lea eax,[3395469782+esi*1+eax]
1240 mov esi,DWORD [32+esp]
1241 add eax,ebp
1242 ; 20_39 72
1243 mov ebp,ebx
1244 xor esi,DWORD [40+esp]
1245 xor ebp,ecx
1246 xor esi,DWORD [esp]
1247 xor ebp,edx
1248 xor esi,DWORD [20+esp]
1249 rol esi,1
1250 add edi,ebp
1251 ror ebx,2
1252 mov ebp,eax
1253 rol ebp,5
1254 mov DWORD [32+esp],esi
1255 lea esi,[3395469782+edi*1+esi]
1256 mov edi,DWORD [36+esp]
1257 add esi,ebp
1258 ; 20_39 73
1259 mov ebp,eax
1260 xor edi,DWORD [44+esp]
1261 xor ebp,ebx
1262 xor edi,DWORD [4+esp]
1263 xor ebp,ecx
1264 xor edi,DWORD [24+esp]
1265 rol edi,1
1266 add edx,ebp
1267 ror eax,2
1268 mov ebp,esi
1269 rol ebp,5
1270 mov DWORD [36+esp],edi
1271 lea edi,[3395469782+edx*1+edi]
1272 mov edx,DWORD [40+esp]
1273 add edi,ebp
1274 ; 20_39 74
1275 mov ebp,esi
1276 xor edx,DWORD [48+esp]
1277 xor ebp,eax
1278 xor edx,DWORD [8+esp]
1279 xor ebp,ebx
1280 xor edx,DWORD [28+esp]
1281 rol edx,1
1282 add ecx,ebp
1283 ror esi,2
1284 mov ebp,edi
1285 rol ebp,5
1286 mov DWORD [40+esp],edx
1287 lea edx,[3395469782+ecx*1+edx]
1288 mov ecx,DWORD [44+esp]
1289 add edx,ebp
1290 ; 20_39 75
1291 mov ebp,edi
1292 xor ecx,DWORD [52+esp]
1293 xor ebp,esi
1294 xor ecx,DWORD [12+esp]
1295 xor ebp,eax
1296 xor ecx,DWORD [32+esp]
1297 rol ecx,1
1298 add ebx,ebp
1299 ror edi,2
1300 mov ebp,edx
1301 rol ebp,5
1302 mov DWORD [44+esp],ecx
1303 lea ecx,[3395469782+ebx*1+ecx]
1304 mov ebx,DWORD [48+esp]
1305 add ecx,ebp
1306 ; 20_39 76
1307 mov ebp,edx
1308 xor ebx,DWORD [56+esp]
1309 xor ebp,edi
1310 xor ebx,DWORD [16+esp]
1311 xor ebp,esi
1312 xor ebx,DWORD [36+esp]
1313 rol ebx,1
1314 add eax,ebp
1315 ror edx,2
1316 mov ebp,ecx
1317 rol ebp,5
1318 mov DWORD [48+esp],ebx
1319 lea ebx,[3395469782+eax*1+ebx]
1320 mov eax,DWORD [52+esp]
1321 add ebx,ebp
1322 ; 20_39 77
1323 mov ebp,ecx
1324 xor eax,DWORD [60+esp]
1325 xor ebp,edx
1326 xor eax,DWORD [20+esp]
1327 xor ebp,edi
1328 xor eax,DWORD [40+esp]
1329 rol eax,1
1330 add esi,ebp
1331 ror ecx,2
1332 mov ebp,ebx
1333 rol ebp,5
1334 lea eax,[3395469782+esi*1+eax]
1335 mov esi,DWORD [56+esp]
1336 add eax,ebp
1337 ; 20_39 78
1338 mov ebp,ebx
1339 xor esi,DWORD [esp]
1340 xor ebp,ecx
1341 xor esi,DWORD [24+esp]
1342 xor ebp,edx
1343 xor esi,DWORD [44+esp]
1344 rol esi,1
1345 add edi,ebp
1346 ror ebx,2
1347 mov ebp,eax
1348 rol ebp,5
1349 lea esi,[3395469782+edi*1+esi]
1350 mov edi,DWORD [60+esp]
1351 add esi,ebp
1352 ; 20_39 79
1353 mov ebp,eax
1354 xor edi,DWORD [4+esp]
1355 xor ebp,ebx
1356 xor edi,DWORD [28+esp]
1357 xor ebp,ecx
1358 xor edi,DWORD [48+esp]
1359 rol edi,1
1360 add edx,ebp
1361 ror eax,2
1362 mov ebp,esi
1363 rol ebp,5
1364 lea edi,[3395469782+edx*1+edi]
1365 add edi,ebp
1366 mov ebp,DWORD [96+esp]
1367 mov edx,DWORD [100+esp]
1368 add edi,DWORD [ebp]
1369 add esi,DWORD [4+ebp]
1370 add eax,DWORD [8+ebp]
1371 add ebx,DWORD [12+ebp]
1372 add ecx,DWORD [16+ebp]
1373 mov DWORD [ebp],edi
1374 add edx,64
1375 mov DWORD [4+ebp],esi
1376 cmp edx,DWORD [104+esp]
1377 mov DWORD [8+ebp],eax
1378 mov edi,ecx
1379 mov DWORD [12+ebp],ebx
1380 mov esi,edx
1381 mov DWORD [16+ebp],ecx
1382 jb NEAR L$000loop
1383 add esp,76
1384 pop edi
1385 pop esi
1386 pop ebx
1387 pop ebp
1389 db 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
1390 db 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82
1391 db 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112
1392 db 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0