📄 s1-win32.asm
字号:
; Don't even think of reading this code ; It was automatically generated by sha1-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 sha1-586.asm .486.model FLAT_TEXT SEGMENTPUBLIC _sha1_block_x86_sha1_block_x86 PROC NEAR push esi push ebp mov eax, DWORD PTR 20[esp] mov esi, DWORD PTR 16[esp] add eax, esi mov ebp, DWORD PTR 12[esp] push ebx sub eax, 64 push edi mov ebx, DWORD PTR 4[ebp] sub esp, 72 mov edx, DWORD PTR 12[ebp] mov edi, DWORD PTR 16[ebp] mov ecx, DWORD PTR 8[ebp] mov DWORD PTR 68[esp],eax ; First we need to setup the X array mov eax, DWORD PTR [esi]L000start: ; First, load the words onto the stack in network byte order bswap eax mov DWORD PTR [esp],eax mov eax, DWORD PTR 4[esi] bswap eax mov DWORD PTR 4[esp],eax mov eax, DWORD PTR 8[esi] bswap eax mov DWORD PTR 8[esp],eax mov eax, DWORD PTR 12[esi] bswap eax mov DWORD PTR 12[esp],eax mov eax, DWORD PTR 16[esi] bswap eax mov DWORD PTR 16[esp],eax mov eax, DWORD PTR 20[esi] bswap eax mov DWORD PTR 20[esp],eax mov eax, DWORD PTR 24[esi] bswap eax mov DWORD PTR 24[esp],eax mov eax, DWORD PTR 28[esi] bswap eax mov DWORD PTR 28[esp],eax mov eax, DWORD PTR 32[esi] bswap eax mov DWORD PTR 32[esp],eax mov eax, DWORD PTR 36[esi] bswap eax mov DWORD PTR 36[esp],eax mov eax, DWORD PTR 40[esi] bswap eax mov DWORD PTR 40[esp],eax mov eax, DWORD PTR 44[esi] bswap eax mov DWORD PTR 44[esp],eax mov eax, DWORD PTR 48[esi] bswap eax mov DWORD PTR 48[esp],eax mov eax, DWORD PTR 52[esi] bswap eax mov DWORD PTR 52[esp],eax mov eax, DWORD PTR 56[esi] bswap eax mov DWORD PTR 56[esp],eax mov eax, DWORD PTR 60[esi] bswap eax mov DWORD PTR 60[esp],eax ; We now have the X array on the stack ; starting at sp-4 mov DWORD PTR 64[esp],esi ; ; Start processing mov eax, DWORD PTR [ebp] ; 00_15 0 mov esi, ecx mov ebp, eax xor esi, edx rol ebp, 5 and esi, ebx add ebp, edi ror ebx, 1 mov edi, DWORD PTR [esp] ror ebx, 1 xor esi, edx lea ebp, DWORD PTR 1518500249[edi*1+ebp] mov edi, ebx add esi, ebp xor edi, ecx mov ebp, esi and edi, eax rol ebp, 5 add ebp, edx mov edx, DWORD PTR 4[esp] ror eax, 1 xor edi, ecx ror eax, 1 lea ebp, DWORD PTR 1518500249[edx*1+ebp] add edi, ebp ; 00_15 2 mov edx, eax mov ebp, edi xor edx, ebx rol ebp, 5 and edx, esi add ebp, ecx ror esi, 1 mov ecx, DWORD PTR 8[esp] ror esi, 1 xor edx, ebx lea ebp, DWORD PTR 1518500249[ecx*1+ebp] mov ecx, esi add edx, ebp xor ecx, eax mov ebp, edx and ecx, edi rol ebp, 5 add ebp, ebx mov ebx, DWORD PTR 12[esp] ror edi, 1 xor ecx, eax ror edi, 1 lea ebp, DWORD PTR 1518500249[ebx*1+ebp] add ecx, ebp ; 00_15 4 mov ebx, edi mov ebp, ecx xor ebx, esi rol ebp, 5 and ebx, edx add ebp, eax ror edx, 1 mov eax, DWORD PTR 16[esp] ror edx, 1 xor ebx, esi lea ebp, DWORD PTR 1518500249[eax*1+ebp] mov eax, edx add ebx, ebp xor eax, edi mov ebp, ebx and eax, ecx rol ebp, 5 add ebp, esi mov esi, DWORD PTR 20[esp] ror ecx, 1 xor eax, edi ror ecx, 1 lea ebp, DWORD PTR 1518500249[esi*1+ebp] add eax, ebp ; 00_15 6 mov esi, ecx mov ebp, eax xor esi, edx rol ebp, 5 and esi, ebx add ebp, edi ror ebx, 1 mov edi, DWORD PTR 24[esp] ror ebx, 1 xor esi, edx lea ebp, DWORD PTR 1518500249[edi*1+ebp] mov edi, ebx add esi, ebp xor edi, ecx mov ebp, esi and edi, eax rol ebp, 5 add ebp, edx mov edx, DWORD PTR 28[esp] ror eax, 1 xor edi, ecx ror eax, 1 lea ebp, DWORD PTR 1518500249[edx*1+ebp] add edi, ebp ; 00_15 8 mov edx, eax mov ebp, edi xor edx, ebx rol ebp, 5 and edx, esi add ebp, ecx ror esi, 1 mov ecx, DWORD PTR 32[esp] ror esi, 1 xor edx, ebx lea ebp, DWORD PTR 1518500249[ecx*1+ebp] mov ecx, esi add edx, ebp xor ecx, eax mov ebp, edx and ecx, edi rol ebp, 5 add ebp, ebx mov ebx, DWORD PTR 36[esp] ror edi, 1 xor ecx, eax ror edi, 1 lea ebp, DWORD PTR 1518500249[ebx*1+ebp] add ecx, ebp ; 00_15 10 mov ebx, edi mov ebp, ecx xor ebx, esi rol ebp, 5 and ebx, edx add ebp, eax ror edx, 1 mov eax, DWORD PTR 40[esp] ror edx, 1 xor ebx, esi lea ebp, DWORD PTR 1518500249[eax*1+ebp] mov eax, edx add ebx, ebp xor eax, edi mov ebp, ebx and eax, ecx rol ebp, 5 add ebp, esi mov esi, DWORD PTR 44[esp] ror ecx, 1 xor eax, edi ror ecx, 1 lea ebp, DWORD PTR 1518500249[esi*1+ebp] add eax, ebp ; 00_15 12 mov esi, ecx mov ebp, eax xor esi, edx rol ebp, 5 and esi, ebx add ebp, edi ror ebx, 1 mov edi, DWORD PTR 48[esp] ror ebx, 1 xor esi, edx lea ebp, DWORD PTR 1518500249[edi*1+ebp] mov edi, ebx add esi, ebp xor edi, ecx mov ebp, esi and edi, eax rol ebp, 5 add ebp, edx mov edx, DWORD PTR 52[esp] ror eax, 1 xor edi, ecx ror eax, 1 lea ebp, DWORD PTR 1518500249[edx*1+ebp] add edi, ebp ; 00_15 14 mov edx, eax mov ebp, edi xor edx, ebx rol ebp, 5 and edx, esi add ebp, ecx ror esi, 1 mov ecx, DWORD PTR 56[esp] ror esi, 1 xor edx, ebx lea ebp, DWORD PTR 1518500249[ecx*1+ebp] mov ecx, esi add edx, ebp xor ecx, eax mov ebp, edx and ecx, edi rol ebp, 5 add ebp, ebx mov ebx, DWORD PTR 60[esp] ror edi, 1 xor ecx, eax ror edi, 1 lea ebp, DWORD PTR 1518500249[ebx*1+ebp] add ecx, ebp ; 16_19 16 nop mov ebp, DWORD PTR [esp] mov ebx, DWORD PTR 8[esp] xor ebx, ebp mov ebp, DWORD PTR 32[esp] xor ebx, ebp mov ebp, DWORD PTR 52[esp] xor ebx, ebp mov ebp, edi rol ebx, 1 xor ebp, esi mov DWORD PTR [esp],ebx and ebp, edx lea ebx, DWORD PTR 1518500249[eax*1+ebx] xor ebp, esi mov eax, ecx add ebx, ebp rol eax, 5 ror edx, 1 add ebx, eax mov eax, DWORD PTR 4[esp] mov ebp, DWORD PTR 12[esp] xor eax, ebp mov ebp, DWORD PTR 36[esp] xor eax, ebp mov ebp, DWORD PTR 56[esp] ror edx, 1 xor eax, ebp rol eax, 1 mov ebp, edx xor ebp, edi mov DWORD PTR 4[esp],eax and ebp, ecx lea eax, DWORD PTR 1518500249[esi*1+eax] xor ebp, edi mov esi, ebx rol esi, 5 ror ecx, 1 add eax, esi ror ecx, 1 add eax, ebp ; 16_19 18 mov ebp, DWORD PTR 8[esp] mov esi, DWORD PTR 16[esp] xor esi, ebp mov ebp, DWORD PTR 40[esp] xor esi, ebp mov ebp, DWORD PTR 60[esp] xor esi, ebp mov ebp, ecx rol esi, 1 xor ebp, edx mov DWORD PTR 8[esp],esi and ebp, ebx lea esi, DWORD PTR 1518500249[edi*1+esi] xor ebp, edx mov edi, eax add esi, ebp rol edi, 5 ror ebx, 1 add esi, edi mov edi, DWORD PTR 12[esp] mov ebp, DWORD PTR 20[esp] xor edi, ebp mov ebp, DWORD PTR 44[esp] xor edi, ebp mov ebp, DWORD PTR [esp] ror ebx, 1 xor edi, ebp rol edi, 1 mov ebp, ebx xor ebp, ecx mov DWORD PTR 12[esp],edi and ebp, eax lea edi, DWORD PTR 1518500249[edx*1+edi] xor ebp, ecx mov edx, esi rol edx, 5 ror eax, 1 add edi, edx ror eax, 1 add edi, ebp ; 20_39 20 mov edx, DWORD PTR 16[esp] mov ebp, DWORD PTR 24[esp] xor edx, ebp mov ebp, DWORD PTR 48[esp] xor edx, ebp mov ebp, DWORD PTR 4[esp] xor edx, ebp mov ebp, esi rol edx, 1 xor ebp, eax mov DWORD PTR 16[esp],edx xor ebp, ebx lea edx, DWORD PTR 1859775393[ecx*1+edx] mov ecx, edi rol ecx, 5 ror esi, 1 add ecx, ebp ror esi, 1 add edx, ecx ; 20_39 21 mov ecx, DWORD PTR 20[esp] mov ebp, DWORD PTR 28[esp] xor ecx, ebp mov ebp, DWORD PTR 52[esp] xor ecx, ebp mov ebp, DWORD PTR 8[esp] xor ecx, ebp mov ebp, edi rol ecx, 1 xor ebp, esi mov DWORD PTR 20[esp],ecx xor ebp, eax lea ecx, DWORD PTR 1859775393[ebx*1+ecx] mov ebx, edx rol ebx, 5 ror edi, 1 add ebx, ebp ror edi, 1 add ecx, ebx ; 20_39 22 mov ebx, DWORD PTR 24[esp] mov ebp, DWORD PTR 32[esp] xor ebx, ebp mov ebp, DWORD PTR 56[esp] xor ebx, ebp mov ebp, DWORD PTR 12[esp] xor ebx, ebp mov ebp, edx rol ebx, 1 xor ebp, edi mov DWORD PTR 24[esp],ebx xor ebp, esi lea ebx, DWORD PTR 1859775393[eax*1+ebx] mov eax, ecx rol eax, 5 ror edx, 1 add eax, ebp ror edx, 1 add ebx, eax ; 20_39 23 mov eax, DWORD PTR 28[esp] mov ebp, DWORD PTR 36[esp] xor eax, ebp mov ebp, DWORD PTR 60[esp] xor eax, ebp mov ebp, DWORD PTR 16[esp] xor eax, ebp mov ebp, ecx rol eax, 1 xor ebp, edx mov DWORD PTR 28[esp],eax xor ebp, edi lea eax, DWORD PTR 1859775393[esi*1+eax] mov esi, ebx rol esi, 5 ror ecx, 1 add esi, ebp ror ecx, 1 add eax, esi ; 20_39 24 mov esi, DWORD PTR 32[esp] mov ebp, DWORD PTR 40[esp] xor esi, ebp mov ebp, DWORD PTR [esp] xor esi, ebp mov ebp, DWORD PTR 20[esp] xor esi, ebp mov ebp, ebx rol esi, 1 xor ebp, ecx mov DWORD PTR 32[esp],esi xor ebp, edx lea esi, DWORD PTR 1859775393[edi*1+esi] mov edi, eax rol edi, 5 ror ebx, 1 add edi, ebp ror ebx, 1 add esi, edi ; 20_39 25 mov edi, DWORD PTR 36[esp] mov ebp, DWORD PTR 44[esp] xor edi, ebp mov ebp, DWORD PTR 4[esp] xor edi, ebp mov ebp, DWORD PTR 24[esp] xor edi, ebp mov ebp, eax rol edi, 1 xor ebp, ebx mov DWORD PTR 36[esp],edi xor ebp, ecx lea edi, DWORD PTR 1859775393[edx*1+edi] mov edx, esi rol edx, 5 ror eax, 1 add edx, ebp ror eax, 1 add edi, edx ; 20_39 26 mov edx, DWORD PTR 40[esp] mov ebp, DWORD PTR 48[esp] xor edx, ebp mov ebp, DWORD PTR 8[esp] xor edx, ebp mov ebp, DWORD PTR 28[esp] xor edx, ebp mov ebp, esi rol edx, 1 xor ebp, eax mov DWORD PTR 40[esp],edx xor ebp, ebx lea edx, DWORD PTR 1859775393[ecx*1+edx] mov ecx, edi rol ecx, 5 ror esi, 1 add ecx, ebp ror esi, 1 add edx, ecx ; 20_39 27 mov ecx, DWORD PTR 44[esp] mov ebp, DWORD PTR 52[esp] xor ecx, ebp mov ebp, DWORD PTR 12[esp] xor ecx, ebp mov ebp, DWORD PTR 32[esp] xor ecx, ebp mov ebp, edi rol ecx, 1 xor ebp, esi mov DWORD PTR 44[esp],ecx xor ebp, eax lea ecx, DWORD PTR 1859775393[ebx*1+ecx] mov ebx, edx rol ebx, 5 ror edi, 1 add ebx, ebp ror edi, 1 add ecx, ebx ; 20_39 28 mov ebx, DWORD PTR 48[esp] mov ebp, DWORD PTR 56[esp] xor ebx, ebp mov ebp, DWORD PTR 16[esp] xor ebx, ebp mov ebp, DWORD PTR 36[esp] xor ebx, ebp mov ebp, edx rol ebx, 1 xor ebp, edi mov DWORD PTR 48[esp],ebx xor ebp, esi lea ebx, DWORD PTR 1859775393[eax*1+ebx] mov eax, ecx rol eax, 5 ror edx, 1 add eax, ebp ror edx, 1 add ebx, eax ; 20_39 29 mov eax, DWORD PTR 52[esp] mov ebp, DWORD PTR 60[esp] xor eax, ebp mov ebp, DWORD PTR 20[esp] xor eax, ebp mov ebp, DWORD PTR 40[esp]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -