VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1f/crypto/genasm-nasm/md5-586.S@ 83531

Last change on this file since 83531 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

File size: 10.3 KB
Line 
1%ifidn __OUTPUT_FORMAT__,obj
2section code use32 class=code align=64
3%elifidn __OUTPUT_FORMAT__,win32
4section .text code align=64
5%else
6section .text code
7%endif
8global _md5_block_asm_data_order
9align 16
10_md5_block_asm_data_order:
11L$_md5_block_asm_data_order_begin:
12 push esi
13 push edi
14 mov edi,DWORD [12+esp]
15 mov esi,DWORD [16+esp]
16 mov ecx,DWORD [20+esp]
17 push ebp
18 shl ecx,6
19 push ebx
20 add ecx,esi
21 sub ecx,64
22 mov eax,DWORD [edi]
23 push ecx
24 mov ebx,DWORD [4+edi]
25 mov ecx,DWORD [8+edi]
26 mov edx,DWORD [12+edi]
27L$000start:
28 ;
29 ; R0 section
30 mov edi,ecx
31 mov ebp,DWORD [esi]
32 ; R0 0
33 xor edi,edx
34 and edi,ebx
35 lea eax,[3614090360+ebp*1+eax]
36 xor edi,edx
37 mov ebp,DWORD [4+esi]
38 add eax,edi
39 rol eax,7
40 mov edi,ebx
41 add eax,ebx
42 ; R0 1
43 xor edi,ecx
44 and edi,eax
45 lea edx,[3905402710+ebp*1+edx]
46 xor edi,ecx
47 mov ebp,DWORD [8+esi]
48 add edx,edi
49 rol edx,12
50 mov edi,eax
51 add edx,eax
52 ; R0 2
53 xor edi,ebx
54 and edi,edx
55 lea ecx,[606105819+ebp*1+ecx]
56 xor edi,ebx
57 mov ebp,DWORD [12+esi]
58 add ecx,edi
59 rol ecx,17
60 mov edi,edx
61 add ecx,edx
62 ; R0 3
63 xor edi,eax
64 and edi,ecx
65 lea ebx,[3250441966+ebp*1+ebx]
66 xor edi,eax
67 mov ebp,DWORD [16+esi]
68 add ebx,edi
69 rol ebx,22
70 mov edi,ecx
71 add ebx,ecx
72 ; R0 4
73 xor edi,edx
74 and edi,ebx
75 lea eax,[4118548399+ebp*1+eax]
76 xor edi,edx
77 mov ebp,DWORD [20+esi]
78 add eax,edi
79 rol eax,7
80 mov edi,ebx
81 add eax,ebx
82 ; R0 5
83 xor edi,ecx
84 and edi,eax
85 lea edx,[1200080426+ebp*1+edx]
86 xor edi,ecx
87 mov ebp,DWORD [24+esi]
88 add edx,edi
89 rol edx,12
90 mov edi,eax
91 add edx,eax
92 ; R0 6
93 xor edi,ebx
94 and edi,edx
95 lea ecx,[2821735955+ebp*1+ecx]
96 xor edi,ebx
97 mov ebp,DWORD [28+esi]
98 add ecx,edi
99 rol ecx,17
100 mov edi,edx
101 add ecx,edx
102 ; R0 7
103 xor edi,eax
104 and edi,ecx
105 lea ebx,[4249261313+ebp*1+ebx]
106 xor edi,eax
107 mov ebp,DWORD [32+esi]
108 add ebx,edi
109 rol ebx,22
110 mov edi,ecx
111 add ebx,ecx
112 ; R0 8
113 xor edi,edx
114 and edi,ebx
115 lea eax,[1770035416+ebp*1+eax]
116 xor edi,edx
117 mov ebp,DWORD [36+esi]
118 add eax,edi
119 rol eax,7
120 mov edi,ebx
121 add eax,ebx
122 ; R0 9
123 xor edi,ecx
124 and edi,eax
125 lea edx,[2336552879+ebp*1+edx]
126 xor edi,ecx
127 mov ebp,DWORD [40+esi]
128 add edx,edi
129 rol edx,12
130 mov edi,eax
131 add edx,eax
132 ; R0 10
133 xor edi,ebx
134 and edi,edx
135 lea ecx,[4294925233+ebp*1+ecx]
136 xor edi,ebx
137 mov ebp,DWORD [44+esi]
138 add ecx,edi
139 rol ecx,17
140 mov edi,edx
141 add ecx,edx
142 ; R0 11
143 xor edi,eax
144 and edi,ecx
145 lea ebx,[2304563134+ebp*1+ebx]
146 xor edi,eax
147 mov ebp,DWORD [48+esi]
148 add ebx,edi
149 rol ebx,22
150 mov edi,ecx
151 add ebx,ecx
152 ; R0 12
153 xor edi,edx
154 and edi,ebx
155 lea eax,[1804603682+ebp*1+eax]
156 xor edi,edx
157 mov ebp,DWORD [52+esi]
158 add eax,edi
159 rol eax,7
160 mov edi,ebx
161 add eax,ebx
162 ; R0 13
163 xor edi,ecx
164 and edi,eax
165 lea edx,[4254626195+ebp*1+edx]
166 xor edi,ecx
167 mov ebp,DWORD [56+esi]
168 add edx,edi
169 rol edx,12
170 mov edi,eax
171 add edx,eax
172 ; R0 14
173 xor edi,ebx
174 and edi,edx
175 lea ecx,[2792965006+ebp*1+ecx]
176 xor edi,ebx
177 mov ebp,DWORD [60+esi]
178 add ecx,edi
179 rol ecx,17
180 mov edi,edx
181 add ecx,edx
182 ; R0 15
183 xor edi,eax
184 and edi,ecx
185 lea ebx,[1236535329+ebp*1+ebx]
186 xor edi,eax
187 mov ebp,DWORD [4+esi]
188 add ebx,edi
189 rol ebx,22
190 mov edi,ecx
191 add ebx,ecx
192 ;
193 ; R1 section
194 ; R1 16
195 xor edi,ebx
196 and edi,edx
197 lea eax,[4129170786+ebp*1+eax]
198 xor edi,ecx
199 mov ebp,DWORD [24+esi]
200 add eax,edi
201 mov edi,ebx
202 rol eax,5
203 add eax,ebx
204 ; R1 17
205 xor edi,eax
206 and edi,ecx
207 lea edx,[3225465664+ebp*1+edx]
208 xor edi,ebx
209 mov ebp,DWORD [44+esi]
210 add edx,edi
211 mov edi,eax
212 rol edx,9
213 add edx,eax
214 ; R1 18
215 xor edi,edx
216 and edi,ebx
217 lea ecx,[643717713+ebp*1+ecx]
218 xor edi,eax
219 mov ebp,DWORD [esi]
220 add ecx,edi
221 mov edi,edx
222 rol ecx,14
223 add ecx,edx
224 ; R1 19
225 xor edi,ecx
226 and edi,eax
227 lea ebx,[3921069994+ebp*1+ebx]
228 xor edi,edx
229 mov ebp,DWORD [20+esi]
230 add ebx,edi
231 mov edi,ecx
232 rol ebx,20
233 add ebx,ecx
234 ; R1 20
235 xor edi,ebx
236 and edi,edx
237 lea eax,[3593408605+ebp*1+eax]
238 xor edi,ecx
239 mov ebp,DWORD [40+esi]
240 add eax,edi
241 mov edi,ebx
242 rol eax,5
243 add eax,ebx
244 ; R1 21
245 xor edi,eax
246 and edi,ecx
247 lea edx,[38016083+ebp*1+edx]
248 xor edi,ebx
249 mov ebp,DWORD [60+esi]
250 add edx,edi
251 mov edi,eax
252 rol edx,9
253 add edx,eax
254 ; R1 22
255 xor edi,edx
256 and edi,ebx
257 lea ecx,[3634488961+ebp*1+ecx]
258 xor edi,eax
259 mov ebp,DWORD [16+esi]
260 add ecx,edi
261 mov edi,edx
262 rol ecx,14
263 add ecx,edx
264 ; R1 23
265 xor edi,ecx
266 and edi,eax
267 lea ebx,[3889429448+ebp*1+ebx]
268 xor edi,edx
269 mov ebp,DWORD [36+esi]
270 add ebx,edi
271 mov edi,ecx
272 rol ebx,20
273 add ebx,ecx
274 ; R1 24
275 xor edi,ebx
276 and edi,edx
277 lea eax,[568446438+ebp*1+eax]
278 xor edi,ecx
279 mov ebp,DWORD [56+esi]
280 add eax,edi
281 mov edi,ebx
282 rol eax,5
283 add eax,ebx
284 ; R1 25
285 xor edi,eax
286 and edi,ecx
287 lea edx,[3275163606+ebp*1+edx]
288 xor edi,ebx
289 mov ebp,DWORD [12+esi]
290 add edx,edi
291 mov edi,eax
292 rol edx,9
293 add edx,eax
294 ; R1 26
295 xor edi,edx
296 and edi,ebx
297 lea ecx,[4107603335+ebp*1+ecx]
298 xor edi,eax
299 mov ebp,DWORD [32+esi]
300 add ecx,edi
301 mov edi,edx
302 rol ecx,14
303 add ecx,edx
304 ; R1 27
305 xor edi,ecx
306 and edi,eax
307 lea ebx,[1163531501+ebp*1+ebx]
308 xor edi,edx
309 mov ebp,DWORD [52+esi]
310 add ebx,edi
311 mov edi,ecx
312 rol ebx,20
313 add ebx,ecx
314 ; R1 28
315 xor edi,ebx
316 and edi,edx
317 lea eax,[2850285829+ebp*1+eax]
318 xor edi,ecx
319 mov ebp,DWORD [8+esi]
320 add eax,edi
321 mov edi,ebx
322 rol eax,5
323 add eax,ebx
324 ; R1 29
325 xor edi,eax
326 and edi,ecx
327 lea edx,[4243563512+ebp*1+edx]
328 xor edi,ebx
329 mov ebp,DWORD [28+esi]
330 add edx,edi
331 mov edi,eax
332 rol edx,9
333 add edx,eax
334 ; R1 30
335 xor edi,edx
336 and edi,ebx
337 lea ecx,[1735328473+ebp*1+ecx]
338 xor edi,eax
339 mov ebp,DWORD [48+esi]
340 add ecx,edi
341 mov edi,edx
342 rol ecx,14
343 add ecx,edx
344 ; R1 31
345 xor edi,ecx
346 and edi,eax
347 lea ebx,[2368359562+ebp*1+ebx]
348 xor edi,edx
349 mov ebp,DWORD [20+esi]
350 add ebx,edi
351 mov edi,ecx
352 rol ebx,20
353 add ebx,ecx
354 ;
355 ; R2 section
356 ; R2 32
357 xor edi,edx
358 xor edi,ebx
359 lea eax,[4294588738+ebp*1+eax]
360 add eax,edi
361 mov ebp,DWORD [32+esi]
362 rol eax,4
363 mov edi,ebx
364 ; R2 33
365 add eax,ebx
366 xor edi,ecx
367 lea edx,[2272392833+ebp*1+edx]
368 xor edi,eax
369 mov ebp,DWORD [44+esi]
370 add edx,edi
371 mov edi,eax
372 rol edx,11
373 add edx,eax
374 ; R2 34
375 xor edi,ebx
376 xor edi,edx
377 lea ecx,[1839030562+ebp*1+ecx]
378 add ecx,edi
379 mov ebp,DWORD [56+esi]
380 rol ecx,16
381 mov edi,edx
382 ; R2 35
383 add ecx,edx
384 xor edi,eax
385 lea ebx,[4259657740+ebp*1+ebx]
386 xor edi,ecx
387 mov ebp,DWORD [4+esi]
388 add ebx,edi
389 mov edi,ecx
390 rol ebx,23
391 add ebx,ecx
392 ; R2 36
393 xor edi,edx
394 xor edi,ebx
395 lea eax,[2763975236+ebp*1+eax]
396 add eax,edi
397 mov ebp,DWORD [16+esi]
398 rol eax,4
399 mov edi,ebx
400 ; R2 37
401 add eax,ebx
402 xor edi,ecx
403 lea edx,[1272893353+ebp*1+edx]
404 xor edi,eax
405 mov ebp,DWORD [28+esi]
406 add edx,edi
407 mov edi,eax
408 rol edx,11
409 add edx,eax
410 ; R2 38
411 xor edi,ebx
412 xor edi,edx
413 lea ecx,[4139469664+ebp*1+ecx]
414 add ecx,edi
415 mov ebp,DWORD [40+esi]
416 rol ecx,16
417 mov edi,edx
418 ; R2 39
419 add ecx,edx
420 xor edi,eax
421 lea ebx,[3200236656+ebp*1+ebx]
422 xor edi,ecx
423 mov ebp,DWORD [52+esi]
424 add ebx,edi
425 mov edi,ecx
426 rol ebx,23
427 add ebx,ecx
428 ; R2 40
429 xor edi,edx
430 xor edi,ebx
431 lea eax,[681279174+ebp*1+eax]
432 add eax,edi
433 mov ebp,DWORD [esi]
434 rol eax,4
435 mov edi,ebx
436 ; R2 41
437 add eax,ebx
438 xor edi,ecx
439 lea edx,[3936430074+ebp*1+edx]
440 xor edi,eax
441 mov ebp,DWORD [12+esi]
442 add edx,edi
443 mov edi,eax
444 rol edx,11
445 add edx,eax
446 ; R2 42
447 xor edi,ebx
448 xor edi,edx
449 lea ecx,[3572445317+ebp*1+ecx]
450 add ecx,edi
451 mov ebp,DWORD [24+esi]
452 rol ecx,16
453 mov edi,edx
454 ; R2 43
455 add ecx,edx
456 xor edi,eax
457 lea ebx,[76029189+ebp*1+ebx]
458 xor edi,ecx
459 mov ebp,DWORD [36+esi]
460 add ebx,edi
461 mov edi,ecx
462 rol ebx,23
463 add ebx,ecx
464 ; R2 44
465 xor edi,edx
466 xor edi,ebx
467 lea eax,[3654602809+ebp*1+eax]
468 add eax,edi
469 mov ebp,DWORD [48+esi]
470 rol eax,4
471 mov edi,ebx
472 ; R2 45
473 add eax,ebx
474 xor edi,ecx
475 lea edx,[3873151461+ebp*1+edx]
476 xor edi,eax
477 mov ebp,DWORD [60+esi]
478 add edx,edi
479 mov edi,eax
480 rol edx,11
481 add edx,eax
482 ; R2 46
483 xor edi,ebx
484 xor edi,edx
485 lea ecx,[530742520+ebp*1+ecx]
486 add ecx,edi
487 mov ebp,DWORD [8+esi]
488 rol ecx,16
489 mov edi,edx
490 ; R2 47
491 add ecx,edx
492 xor edi,eax
493 lea ebx,[3299628645+ebp*1+ebx]
494 xor edi,ecx
495 mov ebp,DWORD [esi]
496 add ebx,edi
497 mov edi,-1
498 rol ebx,23
499 add ebx,ecx
500 ;
501 ; R3 section
502 ; R3 48
503 xor edi,edx
504 or edi,ebx
505 lea eax,[4096336452+ebp*1+eax]
506 xor edi,ecx
507 mov ebp,DWORD [28+esi]
508 add eax,edi
509 mov edi,-1
510 rol eax,6
511 xor edi,ecx
512 add eax,ebx
513 ; R3 49
514 or edi,eax
515 lea edx,[1126891415+ebp*1+edx]
516 xor edi,ebx
517 mov ebp,DWORD [56+esi]
518 add edx,edi
519 mov edi,-1
520 rol edx,10
521 xor edi,ebx
522 add edx,eax
523 ; R3 50
524 or edi,edx
525 lea ecx,[2878612391+ebp*1+ecx]
526 xor edi,eax
527 mov ebp,DWORD [20+esi]
528 add ecx,edi
529 mov edi,-1
530 rol ecx,15
531 xor edi,eax
532 add ecx,edx
533 ; R3 51
534 or edi,ecx
535 lea ebx,[4237533241+ebp*1+ebx]
536 xor edi,edx
537 mov ebp,DWORD [48+esi]
538 add ebx,edi
539 mov edi,-1
540 rol ebx,21
541 xor edi,edx
542 add ebx,ecx
543 ; R3 52
544 or edi,ebx
545 lea eax,[1700485571+ebp*1+eax]
546 xor edi,ecx
547 mov ebp,DWORD [12+esi]
548 add eax,edi
549 mov edi,-1
550 rol eax,6
551 xor edi,ecx
552 add eax,ebx
553 ; R3 53
554 or edi,eax
555 lea edx,[2399980690+ebp*1+edx]
556 xor edi,ebx
557 mov ebp,DWORD [40+esi]
558 add edx,edi
559 mov edi,-1
560 rol edx,10
561 xor edi,ebx
562 add edx,eax
563 ; R3 54
564 or edi,edx
565 lea ecx,[4293915773+ebp*1+ecx]
566 xor edi,eax
567 mov ebp,DWORD [4+esi]
568 add ecx,edi
569 mov edi,-1
570 rol ecx,15
571 xor edi,eax
572 add ecx,edx
573 ; R3 55
574 or edi,ecx
575 lea ebx,[2240044497+ebp*1+ebx]
576 xor edi,edx
577 mov ebp,DWORD [32+esi]
578 add ebx,edi
579 mov edi,-1
580 rol ebx,21
581 xor edi,edx
582 add ebx,ecx
583 ; R3 56
584 or edi,ebx
585 lea eax,[1873313359+ebp*1+eax]
586 xor edi,ecx
587 mov ebp,DWORD [60+esi]
588 add eax,edi
589 mov edi,-1
590 rol eax,6
591 xor edi,ecx
592 add eax,ebx
593 ; R3 57
594 or edi,eax
595 lea edx,[4264355552+ebp*1+edx]
596 xor edi,ebx
597 mov ebp,DWORD [24+esi]
598 add edx,edi
599 mov edi,-1
600 rol edx,10
601 xor edi,ebx
602 add edx,eax
603 ; R3 58
604 or edi,edx
605 lea ecx,[2734768916+ebp*1+ecx]
606 xor edi,eax
607 mov ebp,DWORD [52+esi]
608 add ecx,edi
609 mov edi,-1
610 rol ecx,15
611 xor edi,eax
612 add ecx,edx
613 ; R3 59
614 or edi,ecx
615 lea ebx,[1309151649+ebp*1+ebx]
616 xor edi,edx
617 mov ebp,DWORD [16+esi]
618 add ebx,edi
619 mov edi,-1
620 rol ebx,21
621 xor edi,edx
622 add ebx,ecx
623 ; R3 60
624 or edi,ebx
625 lea eax,[4149444226+ebp*1+eax]
626 xor edi,ecx
627 mov ebp,DWORD [44+esi]
628 add eax,edi
629 mov edi,-1
630 rol eax,6
631 xor edi,ecx
632 add eax,ebx
633 ; R3 61
634 or edi,eax
635 lea edx,[3174756917+ebp*1+edx]
636 xor edi,ebx
637 mov ebp,DWORD [8+esi]
638 add edx,edi
639 mov edi,-1
640 rol edx,10
641 xor edi,ebx
642 add edx,eax
643 ; R3 62
644 or edi,edx
645 lea ecx,[718787259+ebp*1+ecx]
646 xor edi,eax
647 mov ebp,DWORD [36+esi]
648 add ecx,edi
649 mov edi,-1
650 rol ecx,15
651 xor edi,eax
652 add ecx,edx
653 ; R3 63
654 or edi,ecx
655 lea ebx,[3951481745+ebp*1+ebx]
656 xor edi,edx
657 mov ebp,DWORD [24+esp]
658 add ebx,edi
659 add esi,64
660 rol ebx,21
661 mov edi,DWORD [ebp]
662 add ebx,ecx
663 add eax,edi
664 mov edi,DWORD [4+ebp]
665 add ebx,edi
666 mov edi,DWORD [8+ebp]
667 add ecx,edi
668 mov edi,DWORD [12+ebp]
669 add edx,edi
670 mov DWORD [ebp],eax
671 mov DWORD [4+ebp],ebx
672 mov edi,DWORD [esp]
673 mov DWORD [8+ebp],ecx
674 mov DWORD [12+ebp],edx
675 cmp edi,esi
676 jae NEAR L$000start
677 pop eax
678 pop ebx
679 pop ebp
680 pop edi
681 pop esi
682 ret
Note: See TracBrowser for help on using the repository browser.

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