📄 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, gaswin (for GNU as on Win32) or Solaris ; eric <eay@cryptsoft.com> ; segment .textglobal _sha1_block_asm_data_order_sha1_block_asm_data_order: mov ecx, [12+esp] push esi shl ecx, 6 mov esi, [12+esp] push ebp add ecx, esi push ebx mov ebp, [16+esp] push edi mov edx, [12+ebp] sub esp, 108 mov edi, [16+ebp] mov ebx, [8+ebp] mov [68+esp], ecx ; First we need to setup the X arrayL000start: ; First, load the words onto the stack in network byte order mov eax, [esi] mov ecx, [4+esi] bswap eax bswap ecx mov [esp], eax mov [4+esp], ecx mov eax, [8+esi] mov ecx, [12+esi] bswap eax bswap ecx mov [8+esp], eax mov [12+esp], ecx mov eax, [16+esi] mov ecx, [20+esi] bswap eax bswap ecx mov [16+esp], eax mov [20+esp], ecx mov eax, [24+esi] mov ecx, [28+esi] bswap eax bswap ecx mov [24+esp], eax mov [28+esp], ecx mov eax, [32+esi] mov ecx, [36+esi] bswap eax bswap ecx mov [32+esp], eax mov [36+esp], ecx mov eax, [40+esi] mov ecx, [44+esi] bswap eax bswap ecx mov [40+esp], eax mov [44+esp], ecx mov eax, [48+esi] mov ecx, [52+esi] bswap eax bswap ecx mov [48+esp], eax mov [52+esp], ecx mov eax, [56+esi] mov ecx, [60+esi] bswap eax bswap ecx mov [56+esp], eax mov [60+esp], ecx ; We now have the X array on the stack ; starting at sp-4 mov [132+esp], esiL001shortcut: ; ; Start processing mov eax, [ebp] mov ecx, [4+ebp] ; 00_15 0 mov esi, ebx mov ebp, eax xor esi, edx rol ebp, 5 and esi, ecx add ebp, edi ror ecx, 1 mov edi, [esp] ror ecx, 1 xor esi, edx lea ebp, [1518500249+edi*1+ebp] mov edi, ecx add esi, ebp xor edi, ebx mov ebp, esi and edi, eax rol ebp, 5 add ebp, edx mov edx, [4+esp] ror eax, 1 xor edi, ebx ror eax, 1 lea ebp, [1518500249+edx*1+ebp] add edi, ebp ; 00_15 2 mov edx, eax mov ebp, edi xor edx, ecx rol ebp, 5 and edx, esi add ebp, ebx ror esi, 1 mov ebx, [8+esp] ror esi, 1 xor edx, ecx lea ebp, [1518500249+ebx*1+ebp] mov ebx, esi add edx, ebp xor ebx, eax mov ebp, edx and ebx, edi rol ebp, 5 add ebp, ecx mov ecx, [12+esp] ror edi, 1 xor ebx, eax ror edi, 1 lea ebp, [1518500249+ecx*1+ebp] add ebx, ebp ; 00_15 4 mov ecx, edi mov ebp, ebx xor ecx, esi rol ebp, 5 and ecx, edx add ebp, eax ror edx, 1 mov eax, [16+esp] ror edx, 1 xor ecx, esi lea ebp, [1518500249+eax*1+ebp] mov eax, edx add ecx, ebp xor eax, edi mov ebp, ecx and eax, ebx rol ebp, 5 add ebp, esi mov esi, [20+esp] ror ebx, 1 xor eax, edi ror ebx, 1 lea ebp, [1518500249+esi*1+ebp] add eax, ebp ; 00_15 6 mov esi, ebx mov ebp, eax xor esi, edx rol ebp, 5 and esi, ecx add ebp, edi ror ecx, 1 mov edi, [24+esp] ror ecx, 1 xor esi, edx lea ebp, [1518500249+edi*1+ebp] mov edi, ecx add esi, ebp xor edi, ebx mov ebp, esi and edi, eax rol ebp, 5 add ebp, edx mov edx, [28+esp] ror eax, 1 xor edi, ebx ror eax, 1 lea ebp, [1518500249+edx*1+ebp] add edi, ebp ; 00_15 8 mov edx, eax mov ebp, edi xor edx, ecx rol ebp, 5 and edx, esi add ebp, ebx ror esi, 1 mov ebx, [32+esp] ror esi, 1 xor edx, ecx lea ebp, [1518500249+ebx*1+ebp] mov ebx, esi add edx, ebp xor ebx, eax mov ebp, edx and ebx, edi rol ebp, 5 add ebp, ecx mov ecx, [36+esp] ror edi, 1 xor ebx, eax ror edi, 1 lea ebp, [1518500249+ecx*1+ebp] add ebx, ebp ; 00_15 10 mov ecx, edi mov ebp, ebx xor ecx, esi rol ebp, 5 and ecx, edx add ebp, eax ror edx, 1 mov eax, [40+esp] ror edx, 1 xor ecx, esi lea ebp, [1518500249+eax*1+ebp] mov eax, edx add ecx, ebp xor eax, edi mov ebp, ecx and eax, ebx rol ebp, 5 add ebp, esi mov esi, [44+esp] ror ebx, 1 xor eax, edi ror ebx, 1 lea ebp, [1518500249+esi*1+ebp] add eax, ebp ; 00_15 12 mov esi, ebx mov ebp, eax xor esi, edx rol ebp, 5 and esi, ecx add ebp, edi ror ecx, 1 mov edi, [48+esp] ror ecx, 1 xor esi, edx lea ebp, [1518500249+edi*1+ebp] mov edi, ecx add esi, ebp xor edi, ebx mov ebp, esi and edi, eax rol ebp, 5 add ebp, edx mov edx, [52+esp] ror eax, 1 xor edi, ebx ror eax, 1 lea ebp, [1518500249+edx*1+ebp] add edi, ebp ; 00_15 14 mov edx, eax mov ebp, edi xor edx, ecx rol ebp, 5 and edx, esi add ebp, ebx ror esi, 1 mov ebx, [56+esp] ror esi, 1 xor edx, ecx lea ebp, [1518500249+ebx*1+ebp] mov ebx, esi add edx, ebp xor ebx, eax mov ebp, edx and ebx, edi rol ebp, 5 add ebp, ecx mov ecx, [60+esp] ror edi, 1 xor ebx, eax ror edi, 1 lea ebp, [1518500249+ecx*1+ebp] add ebx, ebp ; 16_19 16 nop mov ebp, [esp] mov ecx, [8+esp] xor ecx, ebp mov ebp, [32+esp] xor ecx, ebp mov ebp, [52+esp] xor ecx, ebp mov ebp, edi rol ecx, 1 xor ebp, esi mov [esp], ecx and ebp, edx lea ecx, [1518500249+eax*1+ecx] xor ebp, esi mov eax, ebx add ecx, ebp rol eax, 5 ror edx, 1 add ecx, eax mov eax, [4+esp] mov ebp, [12+esp] xor eax, ebp mov ebp, [36+esp] xor eax, ebp mov ebp, [56+esp] ror edx, 1 xor eax, ebp rol eax, 1 mov ebp, edx xor ebp, edi mov [4+esp], eax and ebp, ebx lea eax, [1518500249+esi*1+eax] xor ebp, edi mov esi, ecx rol esi, 5 ror ebx, 1 add eax, esi ror ebx, 1 add eax, ebp ; 16_19 18 mov ebp, [8+esp] mov esi, [16+esp] xor esi, ebp mov ebp, [40+esp] xor esi, ebp mov ebp, [60+esp] xor esi, ebp mov ebp, ebx rol esi, 1 xor ebp, edx mov [8+esp], esi and ebp, ecx lea esi, [1518500249+edi*1+esi] xor ebp, edx mov edi, eax add esi, ebp rol edi, 5 ror ecx, 1 add esi, edi mov edi, [12+esp] mov ebp, [20+esp] xor edi, ebp mov ebp, [44+esp] xor edi, ebp mov ebp, [esp] ror ecx, 1 xor edi, ebp rol edi, 1 mov ebp, ecx xor ebp, ebx mov [12+esp], edi and ebp, eax lea edi, [1518500249+edx*1+edi] xor ebp, ebx mov edx, esi rol edx, 5 ror eax, 1 add edi, edx ror eax, 1 add edi, ebp ; 20_39 20 mov edx, [16+esp] mov ebp, [24+esp] xor edx, ebp mov ebp, [48+esp] xor edx, ebp mov ebp, [4+esp] xor edx, ebp mov ebp, esi rol edx, 1 xor ebp, eax mov [16+esp], edx xor ebp, ecx lea edx, [1859775393+ebx*1+edx] mov ebx, edi rol ebx, 5 ror esi, 1 add ebx, ebp ror esi, 1 add edx, ebx ; 20_39 21 mov ebx, [20+esp] mov ebp, [28+esp] xor ebx, ebp mov ebp, [52+esp] xor ebx, ebp mov ebp, [8+esp] xor ebx, ebp mov ebp, edi rol ebx, 1 xor ebp, esi mov [20+esp], ebx xor ebp, eax lea ebx, [1859775393+ecx*1+ebx] mov ecx, edx rol ecx, 5 ror edi, 1 add ecx, ebp ror edi, 1 add ebx, ecx ; 20_39 22 mov ecx, [24+esp] mov ebp, [32+esp] xor ecx, ebp mov ebp, [56+esp] xor ecx, ebp mov ebp, [12+esp] xor ecx, ebp mov ebp, edx rol ecx, 1 xor ebp, edi mov [24+esp], ecx xor ebp, esi lea ecx, [1859775393+eax*1+ecx] mov eax, ebx rol eax, 5 ror edx, 1 add eax, ebp ror edx, 1 add ecx, eax ; 20_39 23 mov eax, [28+esp] mov ebp, [36+esp] xor eax, ebp mov ebp, [60+esp] xor eax, ebp mov ebp, [16+esp] xor eax, ebp mov ebp, ebx rol eax, 1 xor ebp, edx mov [28+esp], eax xor ebp, edi lea eax, [1859775393+esi*1+eax] mov esi, ecx rol esi, 5 ror ebx, 1 add esi, ebp ror ebx, 1 add eax, esi ; 20_39 24 mov esi, [32+esp] mov ebp, [40+esp] xor esi, ebp mov ebp, [esp] xor esi, ebp mov ebp, [20+esp] xor esi, ebp mov ebp, ecx rol esi, 1 xor ebp, ebx mov [32+esp], esi xor ebp, edx lea esi, [1859775393+edi*1+esi] mov edi, eax rol edi, 5 ror ecx, 1 add edi, ebp ror ecx, 1 add esi, edi ; 20_39 25 mov edi, [36+esp] mov ebp, [44+esp] xor edi, ebp mov ebp, [4+esp] xor edi, ebp mov ebp, [24+esp] xor edi, ebp mov ebp, eax rol edi, 1 xor ebp, ecx mov [36+esp], edi xor ebp, ebx lea edi, [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, [40+esp] mov ebp, [48+esp] xor edx, ebp mov ebp, [8+esp] xor edx, ebp mov ebp, [28+esp] xor edx, ebp mov ebp, esi rol edx, 1 xor ebp, eax mov [40+esp], edx xor ebp, ecx lea edx, [1859775393+ebx*1+edx] mov ebx, edi rol ebx, 5 ror esi, 1 add ebx, ebp ror esi, 1 add edx, ebx ; 20_39 27 mov ebx, [44+esp] mov ebp, [52+esp] xor ebx, ebp mov ebp, [12+esp] xor ebx, ebp mov ebp, [32+esp] xor ebx, ebp mov ebp, edi rol ebx, 1 xor ebp, esi mov [44+esp], ebx xor ebp, eax lea ebx, [1859775393+ecx*1+ebx] mov ecx, edx rol ecx, 5 ror edi, 1 add ecx, ebp ror edi, 1 add ebx, ecx ; 20_39 28 mov ecx, [48+esp] mov ebp, [56+esp] xor ecx, ebp mov ebp, [16+esp] xor ecx, ebp mov ebp, [36+esp] xor ecx, ebp mov ebp, edx rol ecx, 1 xor ebp, edi mov [48+esp], ecx xor ebp, esi lea ecx, [1859775393+eax*1+ecx] mov eax, ebx rol eax, 5 ror edx, 1 add eax, ebp ror edx, 1 add ecx, eax ; 20_39 29 mov eax, [52+esp] mov ebp, [60+esp] xor eax, ebp mov ebp, [20+esp] xor eax, ebp mov ebp, [40+esp] xor eax, ebp mov ebp, ebx rol eax, 1 xor ebp, edx mov [52+esp], eax xor ebp, edi lea eax, [1859775393+esi*1+eax] mov esi, ecx rol esi, 5 ror ebx, 1 add esi, ebp ror ebx, 1 add eax, esi ; 20_39 30 mov esi, [56+esp] mov ebp, [esp] xor esi, ebp mov ebp, [24+esp] xor esi, ebp mov ebp, [44+esp] xor esi, ebp mov ebp, ecx rol esi, 1 xor ebp, ebx mov [56+esp], esi xor ebp, edx lea esi, [1859775393+edi*1+esi] mov edi, eax rol edi, 5 ror ecx, 1 add edi, ebp ror ecx, 1 add esi, edi ; 20_39 31 mov edi, [60+esp] mov ebp, [4+esp] xor edi, ebp mov ebp, [28+esp] xor edi, ebp mov ebp, [48+esp] xor edi, ebp mov ebp, eax rol edi, 1 xor ebp, ecx mov [60+esp], edi xor ebp, ebx lea edi, [1859775393+edx*1+edi] mov edx, esi rol edx, 5 ror eax, 1 add edx, ebp ror eax, 1 add edi, edx ; 20_39 32 mov edx, [esp] mov ebp, [8+esp] xor edx, ebp mov ebp, [32+esp] xor edx, ebp mov ebp, [52+esp] xor edx, ebp mov ebp, esi rol edx, 1 xor ebp, eax mov [esp], edx xor ebp, ecx lea edx, [1859775393+ebx*1+edx] mov ebx, edi rol ebx, 5 ror esi, 1 add ebx, ebp ror esi, 1 add edx, ebx ; 20_39 33 mov ebx, [4+esp] mov ebp, [12+esp] xor ebx, ebp mov ebp, [36+esp] xor ebx, ebp mov ebp, [56+esp] xor ebx, ebp mov ebp, edi rol ebx, 1 xor ebp, esi mov [4+esp], ebx xor ebp, eax lea ebx, [1859775393+ecx*1+ebx] mov ecx, edx rol ecx, 5 ror edi, 1 add ecx, ebp ror edi, 1 add ebx, ecx ; 20_39 34 mov ecx, [8+esp] mov ebp, [16+esp] xor ecx, ebp mov ebp, [40+esp] xor ecx, ebp mov ebp, [60+esp] xor ecx, ebp mov ebp, edx rol ecx, 1 xor ebp, edi mov [8+esp], ecx xor ebp, esi lea ecx, [1859775393+eax*1+ecx] mov eax, ebx rol eax, 5 ror edx, 1 add eax, ebp ror edx, 1 add ecx, eax ; 20_39 35 mov eax, [12+esp] mov ebp, [20+esp] xor eax, ebp mov ebp, [44+esp] xor eax, ebp mov ebp, [esp] xor eax, ebp mov ebp, ebx rol eax, 1 xor ebp, edx mov [12+esp], eax xor ebp, edi lea eax, [1859775393+esi*1+eax] mov esi, ecx rol esi, 5 ror ebx, 1 add esi, ebp ror ebx, 1 add eax, esi ; 20_39 36 mov esi, [16+esp] mov ebp, [24+esp] xor esi, ebp mov ebp, [48+esp] xor esi, ebp mov ebp, [4+esp] xor esi, ebp mov ebp, ecx rol esi, 1 xor ebp, ebx mov [16+esp], esi xor ebp, edx lea esi, [1859775393+edi*1+esi] mov edi, eax rol edi, 5 ror ecx, 1 add edi, ebp ror ecx, 1 add esi, edi ; 20_39 37 mov edi, [20+esp] mov ebp, [28+esp] xor edi, ebp mov ebp, [52+esp] xor edi, ebp mov ebp, [8+esp] xor edi, ebp mov ebp, eax rol edi, 1 xor ebp, ecx mov [20+esp], edi xor ebp, ebx lea edi, [1859775393+edx*1+edi] mov edx, esi rol edx, 5 ror eax, 1 add edx, ebp ror eax, 1 add edi, edx ; 20_39 38 mov edx, [24+esp] mov ebp, [32+esp] xor edx, ebp mov ebp, [56+esp] xor edx, ebp mov ebp, [12+esp] xor edx, ebp mov ebp, esi rol edx, 1 xor ebp, eax mov [24+esp], edx xor ebp, ecx lea edx, [1859775393+ebx*1+edx] mov ebx, edi rol ebx, 5 ror esi, 1 add ebx, ebp ror esi, 1 add edx, ebx ; 20_39 39 mov ebx, [28+esp] mov ebp, [36+esp] xor ebx, ebp mov ebp, [60+esp] xor ebx, ebp mov ebp, [16+esp] xor ebx, ebp mov ebp, edi rol ebx, 1 xor ebp, esi mov [28+esp], ebx xor ebp, eax lea ebx, [1859775393+ecx*1+ebx] mov ecx, edx rol ecx, 5 ror edi, 1 add ecx, ebp ror edi, 1 add ebx, ecx ; 40_59 40 mov ecx, [32+esp] mov ebp, [40+esp] xor ecx, ebp mov ebp, [esp] xor ecx, ebp mov ebp, [20+esp] xor ecx, ebp mov ebp, edx rol ecx, 1 or ebp, edi mov [32+esp], ecx and ebp, esi lea ecx, [2400959708+eax*1+ecx] mov eax, edx ror edx, 1 and eax, edi or ebp, eax mov eax, ebx rol eax, 5 add ebp, eax mov eax, [36+esp] add ecx, ebp mov ebp, [44+esp] xor eax, ebp mov ebp, [4+esp] xor eax, ebp mov ebp, [24+esp] ror edx, 1 xor eax, ebp rol eax, 1 mov ebp, ebx mov [36+esp], eax or ebp, edx lea eax, [2400959708+esi*1+eax] mov esi, ebx and ebp, edi and esi, edx or ebp, esi mov esi, ecx rol esi, 5 ror ebx, 1 add ebp, esi ror ebx, 1 add eax, ebp ; 40_59 41 ; 40_59 42 mov esi, [40+esp] mov ebp, [48+esp] xor esi, ebp mov ebp, [8+esp] xor esi, ebp mov ebp, [28+esp] xor esi, ebp mov ebp, ecx rol esi, 1 or ebp, ebx mov [40+esp], esi and ebp, edx lea esi, [2400959708+edi*1+esi] mov edi, ecx ror ecx, 1 and edi, ebx or ebp, edi mov edi, eax rol edi, 5 add ebp, edi mov edi, [44+esp] add esi, ebp mov ebp, [52+esp] xor edi, ebp mov ebp, [12+esp] xor edi, ebp mov ebp, [32+esp] ror ecx, 1 xor edi, ebp rol edi, 1 mov ebp, eax mov [44+esp], edi or ebp, ecx lea edi, [2400959708+edx*1+edi] mov edx, eax and ebp, ebx and edx, ecx or ebp, edx mov edx, esi rol edx, 5 ror eax, 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -