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