📄 sx86unix.cpp
字号:
/* Run the C pre-processor over this file with one of the following defined * ELF - elf object files, * OUT - a.out object files, * BSDI - BSDI style a.out object files * SOL - Solaris style elf */#define TYPE(a,b) .type a,b#define SIZE(a,b) .size a,b#if defined(OUT) || defined(BSDI)#define sha1_block_x86 _sha1_block_x86#endif#ifdef OUT#define OK 1#define ALIGN 4#endif#ifdef BSDI#define OK 1#define ALIGN 4#undef SIZE#undef TYPE#define SIZE(a,b)#define TYPE(a,b)#endif#if defined(ELF) || defined(SOL)#define OK 1#define ALIGN 16#endif#ifndef OKYou need to define one ofELF - elf systems - linux-elf, NetBSD and DG-UXOUT - a.out systems - linux-a.out and FreeBSDSOL - solaris systems, which are elf with strange comment linesBSDI - a.out with a very primative version of as.#endif/* Let the Assembler begin :-) */ /* 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> */ .file "sha1-586.s" .version "01.01"gcc2_compiled.:.text .align ALIGN.globl sha1_block_x86 TYPE(sha1_block_x86,@function)sha1_block_x86: pushl %esi pushl %ebp movl 20(%esp), %eax movl 16(%esp), %esi addl %esi, %eax movl 12(%esp), %ebp pushl %ebx subl $64, %eax pushl %edi movl 4(%ebp), %ebx subl $72, %esp movl 12(%ebp), %edx movl 16(%ebp), %edi movl 8(%ebp), %ecx movl %eax, 68(%esp) /* First we need to setup the X array */ movl (%esi), %eax.L000start: /* First, load the words onto the stack in network byte order */.byte 15.byte 200 /* bswapl %eax */ movl %eax, (%esp) movl 4(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 4(%esp) movl 8(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 8(%esp) movl 12(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 12(%esp) movl 16(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 16(%esp) movl 20(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 20(%esp) movl 24(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 24(%esp) movl 28(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 28(%esp) movl 32(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 32(%esp) movl 36(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 36(%esp) movl 40(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 40(%esp) movl 44(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 44(%esp) movl 48(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 48(%esp) movl 52(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 52(%esp) movl 56(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 56(%esp) movl 60(%esi), %eax.byte 15.byte 200 /* bswapl %eax */ movl %eax, 60(%esp) /* We now have the X array on the stack */ /* starting at sp-4 */ movl %esi, 64(%esp) /* Start processing */ movl (%ebp), %eax /* 00_15 0 */ movl %ecx, %esi movl %eax, %ebp xorl %edx, %esi roll $5, %ebp andl %ebx, %esi addl %edi, %ebp.byte 209.byte 203 /* rorl $1 %ebx */ movl (%esp), %edi.byte 209.byte 203 /* rorl $1 %ebx */ xorl %edx, %esi leal 1518500249(%ebp,%edi,1),%ebp movl %ebx, %edi addl %ebp, %esi xorl %ecx, %edi movl %esi, %ebp andl %eax, %edi roll $5, %ebp addl %edx, %ebp movl 4(%esp), %edx.byte 209.byte 200 /* rorl $1 %eax */ xorl %ecx, %edi.byte 209.byte 200 /* rorl $1 %eax */ leal 1518500249(%ebp,%edx,1),%ebp addl %ebp, %edi /* 00_15 2 */ movl %eax, %edx movl %edi, %ebp xorl %ebx, %edx roll $5, %ebp andl %esi, %edx addl %ecx, %ebp.byte 209.byte 206 /* rorl $1 %esi */ movl 8(%esp), %ecx.byte 209.byte 206 /* rorl $1 %esi */ xorl %ebx, %edx leal 1518500249(%ebp,%ecx,1),%ebp movl %esi, %ecx addl %ebp, %edx xorl %eax, %ecx movl %edx, %ebp andl %edi, %ecx roll $5, %ebp addl %ebx, %ebp movl 12(%esp), %ebx.byte 209.byte 207 /* rorl $1 %edi */ xorl %eax, %ecx.byte 209.byte 207 /* rorl $1 %edi */ leal 1518500249(%ebp,%ebx,1),%ebp addl %ebp, %ecx /* 00_15 4 */ movl %edi, %ebx movl %ecx, %ebp xorl %esi, %ebx roll $5, %ebp andl %edx, %ebx addl %eax, %ebp.byte 209.byte 202 /* rorl $1 %edx */ movl 16(%esp), %eax.byte 209.byte 202 /* rorl $1 %edx */ xorl %esi, %ebx leal 1518500249(%ebp,%eax,1),%ebp movl %edx, %eax addl %ebp, %ebx xorl %edi, %eax movl %ebx, %ebp andl %ecx, %eax roll $5, %ebp addl %esi, %ebp movl 20(%esp), %esi.byte 209.byte 201 /* rorl $1 %ecx */ xorl %edi, %eax.byte 209.byte 201 /* rorl $1 %ecx */ leal 1518500249(%ebp,%esi,1),%ebp addl %ebp, %eax /* 00_15 6 */ movl %ecx, %esi movl %eax, %ebp xorl %edx, %esi roll $5, %ebp andl %ebx, %esi addl %edi, %ebp.byte 209.byte 203 /* rorl $1 %ebx */ movl 24(%esp), %edi.byte 209.byte 203 /* rorl $1 %ebx */ xorl %edx, %esi leal 1518500249(%ebp,%edi,1),%ebp movl %ebx, %edi addl %ebp, %esi xorl %ecx, %edi movl %esi, %ebp andl %eax, %edi roll $5, %ebp addl %edx, %ebp movl 28(%esp), %edx.byte 209.byte 200 /* rorl $1 %eax */ xorl %ecx, %edi.byte 209.byte 200 /* rorl $1 %eax */ leal 1518500249(%ebp,%edx,1),%ebp addl %ebp, %edi /* 00_15 8 */ movl %eax, %edx movl %edi, %ebp xorl %ebx, %edx roll $5, %ebp andl %esi, %edx addl %ecx, %ebp.byte 209.byte 206 /* rorl $1 %esi */ movl 32(%esp), %ecx.byte 209.byte 206 /* rorl $1 %esi */ xorl %ebx, %edx leal 1518500249(%ebp,%ecx,1),%ebp movl %esi, %ecx addl %ebp, %edx xorl %eax, %ecx movl %edx, %ebp andl %edi, %ecx roll $5, %ebp addl %ebx, %ebp movl 36(%esp), %ebx.byte 209.byte 207 /* rorl $1 %edi */ xorl %eax, %ecx.byte 209.byte 207 /* rorl $1 %edi */ leal 1518500249(%ebp,%ebx,1),%ebp addl %ebp, %ecx /* 00_15 10 */ movl %edi, %ebx movl %ecx, %ebp xorl %esi, %ebx roll $5, %ebp andl %edx, %ebx addl %eax, %ebp.byte 209.byte 202 /* rorl $1 %edx */ movl 40(%esp), %eax.byte 209.byte 202 /* rorl $1 %edx */ xorl %esi, %ebx leal 1518500249(%ebp,%eax,1),%ebp movl %edx, %eax addl %ebp, %ebx xorl %edi, %eax movl %ebx, %ebp andl %ecx, %eax roll $5, %ebp addl %esi, %ebp movl 44(%esp), %esi.byte 209.byte 201 /* rorl $1 %ecx */ xorl %edi, %eax.byte 209.byte 201 /* rorl $1 %ecx */ leal 1518500249(%ebp,%esi,1),%ebp addl %ebp, %eax /* 00_15 12 */ movl %ecx, %esi movl %eax, %ebp xorl %edx, %esi roll $5, %ebp andl %ebx, %esi addl %edi, %ebp.byte 209.byte 203 /* rorl $1 %ebx */ movl 48(%esp), %edi.byte 209.byte 203 /* rorl $1 %ebx */ xorl %edx, %esi leal 1518500249(%ebp,%edi,1),%ebp movl %ebx, %edi addl %ebp, %esi xorl %ecx, %edi movl %esi, %ebp andl %eax, %edi roll $5, %ebp addl %edx, %ebp movl 52(%esp), %edx.byte 209.byte 200 /* rorl $1 %eax */ xorl %ecx, %edi.byte 209.byte 200 /* rorl $1 %eax */ leal 1518500249(%ebp,%edx,1),%ebp addl %ebp, %edi /* 00_15 14 */ movl %eax, %edx movl %edi, %ebp xorl %ebx, %edx roll $5, %ebp andl %esi, %edx addl %ecx, %ebp.byte 209.byte 206 /* rorl $1 %esi */ movl 56(%esp), %ecx.byte 209.byte 206 /* rorl $1 %esi */ xorl %ebx, %edx leal 1518500249(%ebp,%ecx,1),%ebp movl %esi, %ecx addl %ebp, %edx xorl %eax, %ecx movl %edx, %ebp andl %edi, %ecx roll $5, %ebp addl %ebx, %ebp movl 60(%esp), %ebx.byte 209.byte 207 /* rorl $1 %edi */ xorl %eax, %ecx.byte 209.byte 207 /* rorl $1 %edi */ leal 1518500249(%ebp,%ebx,1),%ebp addl %ebp, %ecx /* 16_19 16 */ nop movl (%esp), %ebp movl 8(%esp), %ebx xorl %ebp, %ebx movl 32(%esp), %ebp xorl %ebp, %ebx movl 52(%esp), %ebp xorl %ebp, %ebx movl %edi, %ebp.byte 209.byte 195 /* roll $1 %ebx */ xorl %esi, %ebp movl %ebx, (%esp) andl %edx, %ebp leal 1518500249(%ebx,%eax,1),%ebx xorl %esi, %ebp movl %ecx, %eax addl %ebp, %ebx roll $5, %eax.byte 209.byte 202 /* rorl $1 %edx */ addl %eax, %ebx movl 4(%esp), %eax movl 12(%esp), %ebp xorl %ebp, %eax movl 36(%esp), %ebp xorl %ebp, %eax movl 56(%esp), %ebp.byte 209.byte 202 /* rorl $1 %edx */ xorl %ebp, %eax.byte 209.byte 192 /* roll $1 %eax */ movl %edx, %ebp xorl %edi, %ebp movl %eax, 4(%esp) andl %ecx, %ebp leal 1518500249(%eax,%esi,1),%eax xorl %edi, %ebp movl %ebx, %esi roll $5, %esi.byte 209.byte 201 /* rorl $1 %ecx */ addl %esi, %eax.byte 209.byte 201 /* rorl $1 %ecx */ addl %ebp, %eax /* 16_19 18 */ movl 8(%esp), %ebp movl 16(%esp), %esi xorl %ebp, %esi movl 40(%esp), %ebp xorl %ebp, %esi movl 60(%esp), %ebp xorl %ebp, %esi movl %ecx, %ebp.byte 209.byte 198 /* roll $1 %esi */ xorl %edx, %ebp movl %esi, 8(%esp) andl %ebx, %ebp leal 1518500249(%esi,%edi,1),%esi xorl %edx, %ebp movl %eax, %edi addl %ebp, %esi roll $5, %edi.byte 209.byte 203 /* rorl $1 %ebx */ addl %edi, %esi movl 12(%esp), %edi movl 20(%esp), %ebp xorl %ebp, %edi movl 44(%esp), %ebp xorl %ebp, %edi movl (%esp), %ebp.byte 209.byte 203 /* rorl $1 %ebx */ xorl %ebp, %edi.byte 209.byte 199 /* roll $1 %edi */ movl %ebx, %ebp xorl %ecx, %ebp movl %edi, 12(%esp) andl %eax, %ebp leal 1518500249(%edi,%edx,1),%edi xorl %ecx, %ebp movl %esi, %edx roll $5, %edx.byte 209.byte 200 /* rorl $1 %eax */ addl %edx, %edi.byte 209.byte 200 /* rorl $1 %eax */ addl %ebp, %edi /* 20_39 20 */ movl 16(%esp), %edx movl 24(%esp), %ebp xorl %ebp, %edx movl 48(%esp), %ebp xorl %ebp, %edx movl 4(%esp), %ebp xorl %ebp, %edx movl %esi, %ebp.byte 209.byte 194 /* roll $1 %edx */ xorl %eax, %ebp movl %edx, 16(%esp) xorl %ebx, %ebp leal 1859775393(%edx,%ecx,1),%edx movl %edi, %ecx roll $5, %ecx.byte 209.byte 206 /* rorl $1 %esi */ addl %ebp, %ecx.byte 209.byte 206 /* rorl $1 %esi */ addl %ecx, %edx /* 20_39 21 */ movl 20(%esp), %ecx movl 28(%esp), %ebp xorl %ebp, %ecx movl 52(%esp), %ebp xorl %ebp, %ecx movl 8(%esp), %ebp xorl %ebp, %ecx movl %edi, %ebp.byte 209.byte 193 /* roll $1 %ecx */ xorl %esi, %ebp movl %ecx, 20(%esp) xorl %eax, %ebp leal 1859775393(%ecx,%ebx,1),%ecx movl %edx, %ebx roll $5, %ebx.byte 209.byte 207 /* rorl $1 %edi */ addl %ebp, %ebx.byte 209.byte 207 /* rorl $1 %edi */ addl %ebx, %ecx /* 20_39 22 */ movl 24(%esp), %ebx movl 32(%esp), %ebp xorl %ebp, %ebx movl 56(%esp), %ebp xorl %ebp, %ebx movl 12(%esp), %ebp xorl %ebp, %ebx movl %edx, %ebp.byte 209.byte 195 /* roll $1 %ebx */ xorl %edi, %ebp movl %ebx, 24(%esp) xorl %esi, %ebp leal 1859775393(%ebx,%eax,1),%ebx movl %ecx, %eax roll $5, %eax.byte 209.byte 202 /* rorl $1 %edx */ addl %ebp, %eax.byte 209.byte 202 /* rorl $1 %edx */ addl %eax, %ebx /* 20_39 23 */ movl 28(%esp), %eax movl 36(%esp), %ebp xorl %ebp, %eax movl 60(%esp), %ebp xorl %ebp, %eax movl 16(%esp), %ebp xorl %ebp, %eax movl %ecx, %ebp.byte 209.byte 192 /* roll $1 %eax */ xorl %edx, %ebp movl %eax, 28(%esp) xorl %edi, %ebp leal 1859775393(%eax,%esi,1),%eax movl %ebx, %esi roll $5, %esi.byte 209.byte 201 /* rorl $1 %ecx */ addl %ebp, %esi.byte 209.byte 201 /* rorl $1 %ecx */ addl %esi, %eax /* 20_39 24 */ movl 32(%esp), %esi movl 40(%esp), %ebp xorl %ebp, %esi movl (%esp), %ebp xorl %ebp, %esi movl 20(%esp), %ebp xorl %ebp, %esi movl %ebx, %ebp.byte 209.byte 198 /* roll $1 %esi */ xorl %ecx, %ebp movl %esi, 32(%esp) xorl %edx, %ebp leal 1859775393(%esi,%edi,1),%esi movl %eax, %edi roll $5, %edi.byte 209.byte 203 /* rorl $1 %ebx */ addl %ebp, %edi.byte 209.byte 203 /* rorl $1 %ebx */ addl %edi, %esi /* 20_39 25 */ movl 36(%esp), %edi movl 44(%esp), %ebp xorl %ebp, %edi movl 4(%esp), %ebp xorl %ebp, %edi movl 24(%esp), %ebp xorl %ebp, %edi movl %eax, %ebp.byte 209.byte 199 /* roll $1 %edi */ xorl %ebx, %ebp movl %edi, 36(%esp) xorl %ecx, %ebp leal 1859775393(%edi,%edx,1),%edi movl %esi, %edx roll $5, %edx.byte 209.byte 200 /* rorl $1 %eax */ addl %ebp, %edx.byte 209.byte 200 /* rorl $1 %eax */ addl %edx, %edi /* 20_39 26 */ movl 40(%esp), %edx movl 48(%esp), %ebp xorl %ebp, %edx movl 8(%esp), %ebp xorl %ebp, %edx movl 28(%esp), %ebp xorl %ebp, %edx movl %esi, %ebp.byte 209.byte 194 /* roll $1 %edx */ xorl %eax, %ebp movl %edx, 40(%esp) xorl %ebx, %ebp leal 1859775393(%edx,%ecx,1),%edx movl %edi, %ecx roll $5, %ecx.byte 209.byte 206 /* rorl $1 %esi */ addl %ebp, %ecx.byte 209.byte 206 /* rorl $1 %esi */ addl %ecx, %edx /* 20_39 27 */ movl 44(%esp), %ecx movl 52(%esp), %ebp xorl %ebp, %ecx movl 12(%esp), %ebp xorl %ebp, %ecx movl 32(%esp), %ebp xorl %ebp, %ecx movl %edi, %ebp.byte 209.byte 193 /* roll $1 %ecx */ xorl %esi, %ebp movl %ecx, 44(%esp) xorl %eax, %ebp leal 1859775393(%ecx,%ebx,1),%ecx movl %edx, %ebx roll $5, %ebx
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -