| ; Don't even think of reading this code |
| ; It was automatically generated by md5-586.pl |
| ; Which is a perl program used to generate the x86 assember for |
| ; any of elf, a.out, BSDI,Win32, or Solaris |
| ; eric <eay@cryptsoft.com> |
| ; |
| TITLE md5-586.asm |
| .386 |
| .model FLAT |
| _TEXT SEGMENT |
| PUBLIC _md5_block_x86 |
| |
| _md5_block_x86 PROC NEAR |
| push esi |
| push edi |
| mov edi, DWORD PTR 12[esp] |
| mov esi, DWORD PTR 16[esp] |
| mov ecx, DWORD PTR 20[esp] |
| push ebp |
| push ebx |
| add ecx, esi |
| sub ecx, 64 |
| mov eax, DWORD PTR [edi] |
| push ecx |
| mov ebx, DWORD PTR 4[edi] |
| mov ecx, DWORD PTR 8[edi] |
| mov edx, DWORD PTR 12[edi] |
| L000start: |
| ; |
| ; R0 section |
| mov edi, ecx |
| mov ebp, DWORD PTR [esi] |
| ; R0 0 |
| xor edi, edx |
| and edi, ebx |
| lea eax, DWORD PTR 3614090360[ebp*1+eax] |
| mov ebp, DWORD PTR 4[esi] |
| xor edi, edx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 7 |
| add eax, ebx |
| ; R0 1 |
| xor edi, ecx |
| and edi, eax |
| lea edx, DWORD PTR 3905402710[ebp*1+edx] |
| mov ebp, DWORD PTR 8[esi] |
| xor edi, ecx |
| add edx, edi |
| mov edi, eax |
| rol edx, 12 |
| add edx, eax |
| ; R0 2 |
| xor edi, ebx |
| and edi, edx |
| lea ecx, DWORD PTR 606105819[ebp*1+ecx] |
| mov ebp, DWORD PTR 12[esi] |
| xor edi, ebx |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 17 |
| add ecx, edx |
| ; R0 3 |
| xor edi, eax |
| and edi, ecx |
| lea ebx, DWORD PTR 3250441966[ebp*1+ebx] |
| mov ebp, DWORD PTR 16[esi] |
| xor edi, eax |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 22 |
| add ebx, ecx |
| ; R0 4 |
| xor edi, edx |
| and edi, ebx |
| lea eax, DWORD PTR 4118548399[ebp*1+eax] |
| mov ebp, DWORD PTR 20[esi] |
| xor edi, edx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 7 |
| add eax, ebx |
| ; R0 5 |
| xor edi, ecx |
| and edi, eax |
| lea edx, DWORD PTR 1200080426[ebp*1+edx] |
| mov ebp, DWORD PTR 24[esi] |
| xor edi, ecx |
| add edx, edi |
| mov edi, eax |
| rol edx, 12 |
| add edx, eax |
| ; R0 6 |
| xor edi, ebx |
| and edi, edx |
| lea ecx, DWORD PTR 2821735955[ebp*1+ecx] |
| mov ebp, DWORD PTR 28[esi] |
| xor edi, ebx |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 17 |
| add ecx, edx |
| ; R0 7 |
| xor edi, eax |
| and edi, ecx |
| lea ebx, DWORD PTR 4249261313[ebp*1+ebx] |
| mov ebp, DWORD PTR 32[esi] |
| xor edi, eax |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 22 |
| add ebx, ecx |
| ; R0 8 |
| xor edi, edx |
| and edi, ebx |
| lea eax, DWORD PTR 1770035416[ebp*1+eax] |
| mov ebp, DWORD PTR 36[esi] |
| xor edi, edx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 7 |
| add eax, ebx |
| ; R0 9 |
| xor edi, ecx |
| and edi, eax |
| lea edx, DWORD PTR 2336552879[ebp*1+edx] |
| mov ebp, DWORD PTR 40[esi] |
| xor edi, ecx |
| add edx, edi |
| mov edi, eax |
| rol edx, 12 |
| add edx, eax |
| ; R0 10 |
| xor edi, ebx |
| and edi, edx |
| lea ecx, DWORD PTR 4294925233[ebp*1+ecx] |
| mov ebp, DWORD PTR 44[esi] |
| xor edi, ebx |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 17 |
| add ecx, edx |
| ; R0 11 |
| xor edi, eax |
| and edi, ecx |
| lea ebx, DWORD PTR 2304563134[ebp*1+ebx] |
| mov ebp, DWORD PTR 48[esi] |
| xor edi, eax |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 22 |
| add ebx, ecx |
| ; R0 12 |
| xor edi, edx |
| and edi, ebx |
| lea eax, DWORD PTR 1804603682[ebp*1+eax] |
| mov ebp, DWORD PTR 52[esi] |
| xor edi, edx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 7 |
| add eax, ebx |
| ; R0 13 |
| xor edi, ecx |
| and edi, eax |
| lea edx, DWORD PTR 4254626195[ebp*1+edx] |
| mov ebp, DWORD PTR 56[esi] |
| xor edi, ecx |
| add edx, edi |
| mov edi, eax |
| rol edx, 12 |
| add edx, eax |
| ; R0 14 |
| xor edi, ebx |
| and edi, edx |
| lea ecx, DWORD PTR 2792965006[ebp*1+ecx] |
| mov ebp, DWORD PTR 60[esi] |
| xor edi, ebx |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 17 |
| add ecx, edx |
| ; R0 15 |
| xor edi, eax |
| and edi, ecx |
| lea ebx, DWORD PTR 1236535329[ebp*1+ebx] |
| mov ebp, DWORD PTR 4[esi] |
| xor edi, eax |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 22 |
| add ebx, ecx |
| ; |
| ; R1 section |
| ; R1 16 |
| lea eax, DWORD PTR 4129170786[ebp*1+eax] |
| xor edi, ebx |
| and edi, edx |
| mov ebp, DWORD PTR 24[esi] |
| xor edi, ecx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 5 |
| add eax, ebx |
| ; R1 17 |
| lea edx, DWORD PTR 3225465664[ebp*1+edx] |
| xor edi, eax |
| and edi, ecx |
| mov ebp, DWORD PTR 44[esi] |
| xor edi, ebx |
| add edx, edi |
| mov edi, eax |
| rol edx, 9 |
| add edx, eax |
| ; R1 18 |
| lea ecx, DWORD PTR 643717713[ebp*1+ecx] |
| xor edi, edx |
| and edi, ebx |
| mov ebp, DWORD PTR [esi] |
| xor edi, eax |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 14 |
| add ecx, edx |
| ; R1 19 |
| lea ebx, DWORD PTR 3921069994[ebp*1+ebx] |
| xor edi, ecx |
| and edi, eax |
| mov ebp, DWORD PTR 20[esi] |
| xor edi, edx |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 20 |
| add ebx, ecx |
| ; R1 20 |
| lea eax, DWORD PTR 3593408605[ebp*1+eax] |
| xor edi, ebx |
| and edi, edx |
| mov ebp, DWORD PTR 40[esi] |
| xor edi, ecx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 5 |
| add eax, ebx |
| ; R1 21 |
| lea edx, DWORD PTR 38016083[ebp*1+edx] |
| xor edi, eax |
| and edi, ecx |
| mov ebp, DWORD PTR 60[esi] |
| xor edi, ebx |
| add edx, edi |
| mov edi, eax |
| rol edx, 9 |
| add edx, eax |
| ; R1 22 |
| lea ecx, DWORD PTR 3634488961[ebp*1+ecx] |
| xor edi, edx |
| and edi, ebx |
| mov ebp, DWORD PTR 16[esi] |
| xor edi, eax |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 14 |
| add ecx, edx |
| ; R1 23 |
| lea ebx, DWORD PTR 3889429448[ebp*1+ebx] |
| xor edi, ecx |
| and edi, eax |
| mov ebp, DWORD PTR 36[esi] |
| xor edi, edx |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 20 |
| add ebx, ecx |
| ; R1 24 |
| lea eax, DWORD PTR 568446438[ebp*1+eax] |
| xor edi, ebx |
| and edi, edx |
| mov ebp, DWORD PTR 56[esi] |
| xor edi, ecx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 5 |
| add eax, ebx |
| ; R1 25 |
| lea edx, DWORD PTR 3275163606[ebp*1+edx] |
| xor edi, eax |
| and edi, ecx |
| mov ebp, DWORD PTR 12[esi] |
| xor edi, ebx |
| add edx, edi |
| mov edi, eax |
| rol edx, 9 |
| add edx, eax |
| ; R1 26 |
| lea ecx, DWORD PTR 4107603335[ebp*1+ecx] |
| xor edi, edx |
| and edi, ebx |
| mov ebp, DWORD PTR 32[esi] |
| xor edi, eax |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 14 |
| add ecx, edx |
| ; R1 27 |
| lea ebx, DWORD PTR 1163531501[ebp*1+ebx] |
| xor edi, ecx |
| and edi, eax |
| mov ebp, DWORD PTR 52[esi] |
| xor edi, edx |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 20 |
| add ebx, ecx |
| ; R1 28 |
| lea eax, DWORD PTR 2850285829[ebp*1+eax] |
| xor edi, ebx |
| and edi, edx |
| mov ebp, DWORD PTR 8[esi] |
| xor edi, ecx |
| add eax, edi |
| mov edi, ebx |
| rol eax, 5 |
| add eax, ebx |
| ; R1 29 |
| lea edx, DWORD PTR 4243563512[ebp*1+edx] |
| xor edi, eax |
| and edi, ecx |
| mov ebp, DWORD PTR 28[esi] |
| xor edi, ebx |
| add edx, edi |
| mov edi, eax |
| rol edx, 9 |
| add edx, eax |
| ; R1 30 |
| lea ecx, DWORD PTR 1735328473[ebp*1+ecx] |
| xor edi, edx |
| and edi, ebx |
| mov ebp, DWORD PTR 48[esi] |
| xor edi, eax |
| add ecx, edi |
| mov edi, edx |
| rol ecx, 14 |
| add ecx, edx |
| ; R1 31 |
| lea ebx, DWORD PTR 2368359562[ebp*1+ebx] |
| xor edi, ecx |
| and edi, eax |
| mov ebp, DWORD PTR 20[esi] |
| xor edi, edx |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 20 |
| add ebx, ecx |
| ; |
| ; R2 section |
| ; R2 32 |
| xor edi, edx |
| xor edi, ebx |
| lea eax, DWORD PTR 4294588738[ebp*1+eax] |
| add eax, edi |
| mov ebp, DWORD PTR 32[esi] |
| rol eax, 4 |
| mov edi, ebx |
| ; R2 33 |
| lea edx, DWORD PTR 2272392833[ebp*1+edx] |
| add eax, ebx |
| xor edi, ecx |
| xor edi, eax |
| mov ebp, DWORD PTR 44[esi] |
| add edx, edi |
| mov edi, eax |
| rol edx, 11 |
| add edx, eax |
| ; R2 34 |
| xor edi, ebx |
| xor edi, edx |
| lea ecx, DWORD PTR 1839030562[ebp*1+ecx] |
| add ecx, edi |
| mov ebp, DWORD PTR 56[esi] |
| rol ecx, 16 |
| mov edi, edx |
| ; R2 35 |
| lea ebx, DWORD PTR 4259657740[ebp*1+ebx] |
| add ecx, edx |
| xor edi, eax |
| xor edi, ecx |
| mov ebp, DWORD PTR 4[esi] |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 23 |
| add ebx, ecx |
| ; R2 36 |
| xor edi, edx |
| xor edi, ebx |
| lea eax, DWORD PTR 2763975236[ebp*1+eax] |
| add eax, edi |
| mov ebp, DWORD PTR 16[esi] |
| rol eax, 4 |
| mov edi, ebx |
| ; R2 37 |
| lea edx, DWORD PTR 1272893353[ebp*1+edx] |
| add eax, ebx |
| xor edi, ecx |
| xor edi, eax |
| mov ebp, DWORD PTR 28[esi] |
| add edx, edi |
| mov edi, eax |
| rol edx, 11 |
| add edx, eax |
| ; R2 38 |
| xor edi, ebx |
| xor edi, edx |
| lea ecx, DWORD PTR 4139469664[ebp*1+ecx] |
| add ecx, edi |
| mov ebp, DWORD PTR 40[esi] |
| rol ecx, 16 |
| mov edi, edx |
| ; R2 39 |
| lea ebx, DWORD PTR 3200236656[ebp*1+ebx] |
| add ecx, edx |
| xor edi, eax |
| xor edi, ecx |
| mov ebp, DWORD PTR 52[esi] |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 23 |
| add ebx, ecx |
| ; R2 40 |
| xor edi, edx |
| xor edi, ebx |
| lea eax, DWORD PTR 681279174[ebp*1+eax] |
| add eax, edi |
| mov ebp, DWORD PTR [esi] |
| rol eax, 4 |
| mov edi, ebx |
| ; R2 41 |
| lea edx, DWORD PTR 3936430074[ebp*1+edx] |
| add eax, ebx |
| xor edi, ecx |
| xor edi, eax |
| mov ebp, DWORD PTR 12[esi] |
| add edx, edi |
| mov edi, eax |
| rol edx, 11 |
| add edx, eax |
| ; R2 42 |
| xor edi, ebx |
| xor edi, edx |
| lea ecx, DWORD PTR 3572445317[ebp*1+ecx] |
| add ecx, edi |
| mov ebp, DWORD PTR 24[esi] |
| rol ecx, 16 |
| mov edi, edx |
| ; R2 43 |
| lea ebx, DWORD PTR 76029189[ebp*1+ebx] |
| add ecx, edx |
| xor edi, eax |
| xor edi, ecx |
| mov ebp, DWORD PTR 36[esi] |
| add ebx, edi |
| mov edi, ecx |
| rol ebx, 23 |
| add ebx, ecx |
| ; R2 44 |
| xor edi, edx |
| xor edi, ebx |
| lea eax, DWORD PTR 3654602809[ebp*1+eax] |
| add eax, edi |
| mov ebp, DWORD PTR 48[esi] |
| rol eax, 4 |
| mov edi, ebx |
| ; R2 45 |
| lea edx, DWORD PTR 3873151461[ebp*1+edx] |
| add eax, ebx |
| xor edi, ecx |
| xor edi, eax |
| mov ebp, DWORD PTR 60[esi] |
| add edx, edi |
| mov edi, eax |
| rol edx, 11 |
| add edx, eax |
| ; R2 46 |
| xor edi, ebx |
| xor edi, edx |
| lea ecx, DWORD PTR 530742520[ebp*1+ecx] |
| add ecx, edi |
| mov ebp, DWORD PTR 8[esi] |
| rol ecx, 16 |
| mov edi, edx |
| ; R2 47 |
| lea ebx, DWORD PTR 3299628645[ebp*1+ebx] |
| add ecx, edx |
| xor edi, eax |
| xor edi, ecx |
| mov ebp, DWORD PTR [esi] |
| add ebx, edi |
| mov edi, -1 |
| rol ebx, 23 |
| add ebx, ecx |
| ; |
| ; R3 section |
| ; R3 48 |
| xor edi, edx |
| or edi, ebx |
| lea eax, DWORD PTR 4096336452[ebp*1+eax] |
| xor edi, ecx |
| mov ebp, DWORD PTR 28[esi] |
| add eax, edi |
| mov edi, -1 |
| rol eax, 6 |
| xor edi, ecx |
| add eax, ebx |
| ; R3 49 |
| or edi, eax |
| lea edx, DWORD PTR 1126891415[ebp*1+edx] |
| xor edi, ebx |
| mov ebp, DWORD PTR 56[esi] |
| add edx, edi |
| mov edi, -1 |
| rol edx, 10 |
| xor edi, ebx |
| add edx, eax |
| ; R3 50 |
| or edi, edx |
| lea ecx, DWORD PTR 2878612391[ebp*1+ecx] |
| xor edi, eax |
| mov ebp, DWORD PTR 20[esi] |
| add ecx, edi |
| mov edi, -1 |
| rol ecx, 15 |
| xor edi, eax |
| add ecx, edx |
| ; R3 51 |
| or edi, ecx |
| lea ebx, DWORD PTR 4237533241[ebp*1+ebx] |
| xor edi, edx |
| mov ebp, DWORD PTR 48[esi] |
| add ebx, edi |
| mov edi, -1 |
| rol ebx, 21 |
| xor edi, edx |
| add ebx, ecx |
| ; R3 52 |
| or edi, ebx |
| lea eax, DWORD PTR 1700485571[ebp*1+eax] |
| xor edi, ecx |
| mov ebp, DWORD PTR 12[esi] |
| add eax, edi |
| mov edi, -1 |
| rol eax, 6 |
| xor edi, ecx |
| add eax, ebx |
| ; R3 53 |
| or edi, eax |
| lea edx, DWORD PTR 2399980690[ebp*1+edx] |
| xor edi, ebx |
| mov ebp, DWORD PTR 40[esi] |
| add edx, edi |
| mov edi, -1 |
| rol edx, 10 |
| xor edi, ebx |
| add edx, eax |
| ; R3 54 |
| or edi, edx |
| lea ecx, DWORD PTR 4293915773[ebp*1+ecx] |
| xor edi, eax |
| mov ebp, DWORD PTR 4[esi] |
| add ecx, edi |
| mov edi, -1 |
| rol ecx, 15 |
| xor edi, eax |
| add ecx, edx |
| ; R3 55 |
| or edi, ecx |
| lea ebx, DWORD PTR 2240044497[ebp*1+ebx] |
| xor edi, edx |
| mov ebp, DWORD PTR 32[esi] |
| add ebx, edi |
| mov edi, -1 |
| rol ebx, 21 |
| xor edi, edx |
| add ebx, ecx |
| ; R3 56 |
| or edi, ebx |
| lea eax, DWORD PTR 1873313359[ebp*1+eax] |
| xor edi, ecx |
| mov ebp, DWORD PTR 60[esi] |
| add eax, edi |
| mov edi, -1 |
| rol eax, 6 |
| xor edi, ecx |
| add eax, ebx |
| ; R3 57 |
| or edi, eax |
| lea edx, DWORD PTR 4264355552[ebp*1+edx] |
| xor edi, ebx |
| mov ebp, DWORD PTR 24[esi] |
| add edx, edi |
| mov edi, -1 |
| rol edx, 10 |
| xor edi, ebx |
| add edx, eax |
| ; R3 58 |
| or edi, edx |
| lea ecx, DWORD PTR 2734768916[ebp*1+ecx] |
| xor edi, eax |
| mov ebp, DWORD PTR 52[esi] |
| add ecx, edi |
| mov edi, -1 |
| rol ecx, 15 |
| xor edi, eax |
| add ecx, edx |
| ; R3 59 |
| or edi, ecx |
| lea ebx, DWORD PTR 1309151649[ebp*1+ebx] |
| xor edi, edx |
| mov ebp, DWORD PTR 16[esi] |
| add ebx, edi |
| mov edi, -1 |
| rol ebx, 21 |
| xor edi, edx |
| add ebx, ecx |
| ; R3 60 |
| or edi, ebx |
| lea eax, DWORD PTR 4149444226[ebp*1+eax] |
| xor edi, ecx |
| mov ebp, DWORD PTR 44[esi] |
| add eax, edi |
| mov edi, -1 |
| rol eax, 6 |
| xor edi, ecx |
| add eax, ebx |
| ; R3 61 |
| or edi, eax |
| lea edx, DWORD PTR 3174756917[ebp*1+edx] |
| xor edi, ebx |
| mov ebp, DWORD PTR 8[esi] |
| add edx, edi |
| mov edi, -1 |
| rol edx, 10 |
| xor edi, ebx |
| add edx, eax |
| ; R3 62 |
| or edi, edx |
| lea ecx, DWORD PTR 718787259[ebp*1+ecx] |
| xor edi, eax |
| mov ebp, DWORD PTR 36[esi] |
| add ecx, edi |
| mov edi, -1 |
| rol ecx, 15 |
| xor edi, eax |
| add ecx, edx |
| ; R3 63 |
| or edi, ecx |
| lea ebx, DWORD PTR 3951481745[ebp*1+ebx] |
| xor edi, edx |
| mov ebp, DWORD PTR 24[esp] |
| add ebx, edi |
| add esi, 64 |
| rol ebx, 21 |
| mov edi, DWORD PTR [ebp] |
| add ebx, ecx |
| add eax, edi |
| mov edi, DWORD PTR 4[ebp] |
| add ebx, edi |
| mov edi, DWORD PTR 8[ebp] |
| add ecx, edi |
| mov edi, DWORD PTR 12[ebp] |
| add edx, edi |
| mov DWORD PTR [ebp],eax |
| mov DWORD PTR 4[ebp],ebx |
| mov edi, DWORD PTR [esp] |
| mov DWORD PTR 8[ebp],ecx |
| mov DWORD PTR 12[ebp],edx |
| cmp edi, esi |
| jge L000start |
| pop eax |
| pop ebx |
| pop ebp |
| pop edi |
| pop esi |
| ret |
| _md5_block_x86 ENDP |
| _TEXT ENDS |
| END |