1 .file "sha512-586.s" 2 .text 3 .globl sha256_block_data_order 4 .type sha256_block_data_order,@function 5 .align 16 6 sha256_block_data_order: 7 .L_sha256_block_data_order_begin: 8 pushl %ebp 9 pushl %ebx 10 pushl %esi 11 pushl %edi 12 movl 20(%esp),%esi 13 movl 24(%esp),%edi 14 movl 28(%esp),%eax 15 movl %esp,%ebx 16 call .L000pic_point 17 .L000pic_point: 18 popl %ebp 19 leal .L001K256-.L000pic_point(%ebp),%ebp 20 subl $16,%esp 21 andl $-64,%esp 22 shll $6,%eax 23 addl %edi,%eax 24 movl %esi,(%esp) 25 movl %edi,4(%esp) 26 movl %eax,8(%esp) 27 movl %ebx,12(%esp) 28 .align 16 29 .L002loop: 30 movl (%edi),%eax 31 movl 4(%edi),%ebx 32 movl 8(%edi),%ecx 33 movl 12(%edi),%edx 34 bswap %eax 35 bswap %ebx 36 bswap %ecx 37 bswap %edx 38 pushl %eax 39 pushl %ebx 40 pushl %ecx 41 pushl %edx 42 movl 16(%edi),%eax 43 movl 20(%edi),%ebx 44 movl 24(%edi),%ecx 45 movl 28(%edi),%edx 46 bswap %eax 47 bswap %ebx 48 bswap %ecx 49 bswap %edx 50 pushl %eax 51 pushl %ebx 52 pushl %ecx 53 pushl %edx 54 movl 32(%edi),%eax 55 movl 36(%edi),%ebx 56 movl 40(%edi),%ecx 57 movl 44(%edi),%edx 58 bswap %eax 59 bswap %ebx 60 bswap %ecx 61 bswap %edx 62 pushl %eax 63 pushl %ebx 64 pushl %ecx 65 pushl %edx 66 movl 48(%edi),%eax 67 movl 52(%edi),%ebx 68 movl 56(%edi),%ecx 69 movl 60(%edi),%edx 70 bswap %eax 71 bswap %ebx 72 bswap %ecx 73 bswap %edx 74 pushl %eax 75 pushl %ebx 76 pushl %ecx 77 pushl %edx 78 addl $64,%edi 79 subl $32,%esp 80 movl %edi,100(%esp) 81 movl (%esi),%eax 82 movl 4(%esi),%ebx 83 movl 8(%esi),%ecx 84 movl 12(%esi),%edi 85 movl %ebx,4(%esp) 86 movl %ecx,8(%esp) 87 movl %edi,12(%esp) 88 movl 16(%esi),%edx 89 movl 20(%esi),%ebx 90 movl 24(%esi),%ecx 91 movl 28(%esi),%edi 92 movl %ebx,20(%esp) 93 movl %ecx,24(%esp) 94 movl %edi,28(%esp) 95 .align 16 96 .L00300_15: 97 movl 92(%esp),%ebx 98 movl %edx,%ecx 99 rorl $14,%ecx 100 movl 20(%esp),%esi 101 xorl %edx,%ecx 102 rorl $5,%ecx 103 xorl %edx,%ecx 104 rorl $6,%ecx 105 movl 24(%esp),%edi 106 addl %ecx,%ebx 107 xorl %edi,%esi 108 movl %edx,16(%esp) 109 movl %eax,%ecx 110 andl %edx,%esi 111 movl 12(%esp),%edx 112 xorl %edi,%esi 113 movl %eax,%edi 114 addl %esi,%ebx 115 rorl $9,%ecx 116 addl 28(%esp),%ebx 117 xorl %eax,%ecx 118 rorl $11,%ecx 119 movl 4(%esp),%esi 120 xorl %eax,%ecx 121 rorl $2,%ecx 122 addl %ebx,%edx 123 movl 8(%esp),%edi 124 addl %ecx,%ebx 125 movl %eax,(%esp) 126 movl %eax,%ecx 127 subl $4,%esp 128 orl %esi,%eax 129 andl %esi,%ecx 130 andl %edi,%eax 131 movl (%ebp),%esi 132 orl %ecx,%eax 133 addl $4,%ebp 134 addl %ebx,%eax 135 addl %esi,%edx 136 addl %esi,%eax 137 cmpl $3248222580,%esi 138 jne .L00300_15 139 movl 152(%esp),%ebx 140 .align 16 141 .L00416_63: 142 movl %ebx,%esi 143 movl 100(%esp),%ecx 144 rorl $11,%esi 145 movl %ecx,%edi 146 xorl %ebx,%esi 147 rorl $7,%esi 148 shrl $3,%ebx 149 rorl $2,%edi 150 xorl %esi,%ebx 151 xorl %ecx,%edi 152 rorl $17,%edi 153 shrl $10,%ecx 154 addl 156(%esp),%ebx 155 xorl %ecx,%edi 156 addl 120(%esp),%ebx 157 movl %edx,%ecx 158 addl %edi,%ebx 159 rorl $14,%ecx 160 movl 20(%esp),%esi 161 xorl %edx,%ecx 162 rorl $5,%ecx 163 movl %ebx,92(%esp) 164 xorl %edx,%ecx 165 rorl $6,%ecx 166 movl 24(%esp),%edi 167 addl %ecx,%ebx 168 xorl %edi,%esi 169 movl %edx,16(%esp) 170 movl %eax,%ecx 171 andl %edx,%esi 172 movl 12(%esp),%edx 173 xorl %edi,%esi 174 movl %eax,%edi 175 addl %esi,%ebx 176 rorl $9,%ecx 177 addl 28(%esp),%ebx 178 xorl %eax,%ecx 179 rorl $11,%ecx 180 movl 4(%esp),%esi 181 xorl %eax,%ecx 182 rorl $2,%ecx 183 addl %ebx,%edx 184 movl 8(%esp),%edi 185 addl %ecx,%ebx 186 movl %eax,(%esp) 187 movl %eax,%ecx 188 subl $4,%esp 189 orl %esi,%eax 190 andl %esi,%ecx 191 andl %edi,%eax 192 movl (%ebp),%esi 193 orl %ecx,%eax 194 addl $4,%ebp 195 addl %ebx,%eax 196 movl 152(%esp),%ebx 197 addl %esi,%edx 198 addl %esi,%eax 199 cmpl $3329325298,%esi 200 jne .L00416_63 201 movl 352(%esp),%esi 202 movl 4(%esp),%ebx 203 movl 8(%esp),%ecx 204 movl 12(%esp),%edi 205 addl (%esi),%eax 206 addl 4(%esi),%ebx 207 addl 8(%esi),%ecx 208 addl 12(%esi),%edi 209 movl %eax,(%esi) 210 movl %ebx,4(%esi) 211 movl %ecx,8(%esi) 212 movl %edi,12(%esi) 213 movl 20(%esp),%eax 214 movl 24(%esp),%ebx 215 movl 28(%esp),%ecx 216 movl 356(%esp),%edi 217 addl 16(%esi),%edx 218 addl 20(%esi),%eax 219 addl 24(%esi),%ebx 220 addl 28(%esi),%ecx 221 movl %edx,16(%esi) 222 movl %eax,20(%esi) 223 movl %ebx,24(%esi) 224 movl %ecx,28(%esi) 225 addl $352,%esp 226 subl $256,%ebp 227 cmpl 8(%esp),%edi 228 jb .L002loop 229 movl 12(%esp),%esp 230 popl %edi 231 popl %esi 232 popl %ebx 233 popl %ebp 234 ret 235 .align 64 236 .L001K256: 237 .long 1116352408,1899447441,3049323471,3921009573 238 .long 961987163,1508970993,2453635748,2870763221 239 .long 3624381080,310598401,607225278,1426881987 240 .long 1925078388,2162078206,2614888103,3248222580 241 .long 3835390401,4022224774,264347078,604807628 242 .long 770255983,1249150122,1555081692,1996064986 243 .long 2554220882,2821834349,2952996808,3210313671 244 .long 3336571891,3584528711,113926993,338241895 245 .long 666307205,773529912,1294757372,1396182291 246 .long 1695183700,1986661051,2177026350,2456956037 247 .long 2730485921,2820302411,3259730800,3345764771 248 .long 3516065817,3600352804,4094571909,275423344 249 .long 430227734,506948616,659060556,883997877 250 .long 958139571,1322822218,1537002063,1747873779 251 .long 1955562222,2024104815,2227730452,2361852424 252 .long 2428436474,2756734187,3204031479,3329325298 253 .size sha256_block_data_order,.-.L_sha256_block_data_order_begin 254 .byte 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 255 .byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 256 .byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 257 .byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 258 .byte 62,0 259