1.file "sha512-586.s" 2.text 3.globl sha512_block_data_order 4.type sha512_block_data_order,@function 5.align 16 6sha512_block_data_order: 7.L_sha512_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 .L001K512-.L000pic_point(%ebp),%ebp 20 subl $16,%esp 21 andl $-64,%esp 22 shll $7,%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_x86: 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 movl 64(%edi),%eax 79 movl 68(%edi),%ebx 80 movl 72(%edi),%ecx 81 movl 76(%edi),%edx 82 bswap %eax 83 bswap %ebx 84 bswap %ecx 85 bswap %edx 86 pushl %eax 87 pushl %ebx 88 pushl %ecx 89 pushl %edx 90 movl 80(%edi),%eax 91 movl 84(%edi),%ebx 92 movl 88(%edi),%ecx 93 movl 92(%edi),%edx 94 bswap %eax 95 bswap %ebx 96 bswap %ecx 97 bswap %edx 98 pushl %eax 99 pushl %ebx 100 pushl %ecx 101 pushl %edx 102 movl 96(%edi),%eax 103 movl 100(%edi),%ebx 104 movl 104(%edi),%ecx 105 movl 108(%edi),%edx 106 bswap %eax 107 bswap %ebx 108 bswap %ecx 109 bswap %edx 110 pushl %eax 111 pushl %ebx 112 pushl %ecx 113 pushl %edx 114 movl 112(%edi),%eax 115 movl 116(%edi),%ebx 116 movl 120(%edi),%ecx 117 movl 124(%edi),%edx 118 bswap %eax 119 bswap %ebx 120 bswap %ecx 121 bswap %edx 122 pushl %eax 123 pushl %ebx 124 pushl %ecx 125 pushl %edx 126 addl $128,%edi 127 subl $72,%esp 128 movl %edi,204(%esp) 129 leal 8(%esp),%edi 130 movl $16,%ecx 131.long 2784229001 132.align 16 133.L00300_15_x86: 134 movl 40(%esp),%ecx 135 movl 44(%esp),%edx 136 movl %ecx,%esi 137 shrl $9,%ecx 138 movl %edx,%edi 139 shrl $9,%edx 140 movl %ecx,%ebx 141 shll $14,%esi 142 movl %edx,%eax 143 shll $14,%edi 144 xorl %esi,%ebx 145 shrl $5,%ecx 146 xorl %edi,%eax 147 shrl $5,%edx 148 xorl %ecx,%eax 149 shll $4,%esi 150 xorl %edx,%ebx 151 shll $4,%edi 152 xorl %esi,%ebx 153 shrl $4,%ecx 154 xorl %edi,%eax 155 shrl $4,%edx 156 xorl %ecx,%eax 157 shll $5,%esi 158 xorl %edx,%ebx 159 shll $5,%edi 160 xorl %esi,%eax 161 xorl %edi,%ebx 162 movl 48(%esp),%ecx 163 movl 52(%esp),%edx 164 movl 56(%esp),%esi 165 movl 60(%esp),%edi 166 addl 64(%esp),%eax 167 adcl 68(%esp),%ebx 168 xorl %esi,%ecx 169 xorl %edi,%edx 170 andl 40(%esp),%ecx 171 andl 44(%esp),%edx 172 addl 192(%esp),%eax 173 adcl 196(%esp),%ebx 174 xorl %esi,%ecx 175 xorl %edi,%edx 176 movl (%ebp),%esi 177 movl 4(%ebp),%edi 178 addl %ecx,%eax 179 adcl %edx,%ebx 180 movl 32(%esp),%ecx 181 movl 36(%esp),%edx 182 addl %esi,%eax 183 adcl %edi,%ebx 184 movl %eax,(%esp) 185 movl %ebx,4(%esp) 186 addl %ecx,%eax 187 adcl %edx,%ebx 188 movl 8(%esp),%ecx 189 movl 12(%esp),%edx 190 movl %eax,32(%esp) 191 movl %ebx,36(%esp) 192 movl %ecx,%esi 193 shrl $2,%ecx 194 movl %edx,%edi 195 shrl $2,%edx 196 movl %ecx,%ebx 197 shll $4,%esi 198 movl %edx,%eax 199 shll $4,%edi 200 xorl %esi,%ebx 201 shrl $5,%ecx 202 xorl %edi,%eax 203 shrl $5,%edx 204 xorl %ecx,%ebx 205 shll $21,%esi 206 xorl %edx,%eax 207 shll $21,%edi 208 xorl %esi,%eax 209 shrl $21,%ecx 210 xorl %edi,%ebx 211 shrl $21,%edx 212 xorl %ecx,%eax 213 shll $5,%esi 214 xorl %edx,%ebx 215 shll $5,%edi 216 xorl %esi,%eax 217 xorl %edi,%ebx 218 movl 8(%esp),%ecx 219 movl 12(%esp),%edx 220 movl 16(%esp),%esi 221 movl 20(%esp),%edi 222 addl (%esp),%eax 223 adcl 4(%esp),%ebx 224 orl %esi,%ecx 225 orl %edi,%edx 226 andl 24(%esp),%ecx 227 andl 28(%esp),%edx 228 andl 8(%esp),%esi 229 andl 12(%esp),%edi 230 orl %esi,%ecx 231 orl %edi,%edx 232 addl %ecx,%eax 233 adcl %edx,%ebx 234 movl %eax,(%esp) 235 movl %ebx,4(%esp) 236 movb (%ebp),%dl 237 subl $8,%esp 238 leal 8(%ebp),%ebp 239 cmpb $148,%dl 240 jne .L00300_15_x86 241.align 16 242.L00416_79_x86: 243 movl 312(%esp),%ecx 244 movl 316(%esp),%edx 245 movl %ecx,%esi 246 shrl $1,%ecx 247 movl %edx,%edi 248 shrl $1,%edx 249 movl %ecx,%eax 250 shll $24,%esi 251 movl %edx,%ebx 252 shll $24,%edi 253 xorl %esi,%ebx 254 shrl $6,%ecx 255 xorl %edi,%eax 256 shrl $6,%edx 257 xorl %ecx,%eax 258 shll $7,%esi 259 xorl %edx,%ebx 260 shll $1,%edi 261 xorl %esi,%ebx 262 shrl $1,%ecx 263 xorl %edi,%eax 264 shrl $1,%edx 265 xorl %ecx,%eax 266 shll $6,%edi 267 xorl %edx,%ebx 268 xorl %edi,%eax 269 movl %eax,(%esp) 270 movl %ebx,4(%esp) 271 movl 208(%esp),%ecx 272 movl 212(%esp),%edx 273 movl %ecx,%esi 274 shrl $6,%ecx 275 movl %edx,%edi 276 shrl $6,%edx 277 movl %ecx,%eax 278 shll $3,%esi 279 movl %edx,%ebx 280 shll $3,%edi 281 xorl %esi,%eax 282 shrl $13,%ecx 283 xorl %edi,%ebx 284 shrl $13,%edx 285 xorl %ecx,%eax 286 shll $10,%esi 287 xorl %edx,%ebx 288 shll $10,%edi 289 xorl %esi,%ebx 290 shrl $10,%ecx 291 xorl %edi,%eax 292 shrl $10,%edx 293 xorl %ecx,%ebx 294 shll $13,%edi 295 xorl %edx,%eax 296 xorl %edi,%eax 297 movl 320(%esp),%ecx 298 movl 324(%esp),%edx 299 addl (%esp),%eax 300 adcl 4(%esp),%ebx 301 movl 248(%esp),%esi 302 movl 252(%esp),%edi 303 addl %ecx,%eax 304 adcl %edx,%ebx 305 addl %esi,%eax 306 adcl %edi,%ebx 307 movl %eax,192(%esp) 308 movl %ebx,196(%esp) 309 movl 40(%esp),%ecx 310 movl 44(%esp),%edx 311 movl %ecx,%esi 312 shrl $9,%ecx 313 movl %edx,%edi 314 shrl $9,%edx 315 movl %ecx,%ebx 316 shll $14,%esi 317 movl %edx,%eax 318 shll $14,%edi 319 xorl %esi,%ebx 320 shrl $5,%ecx 321 xorl %edi,%eax 322 shrl $5,%edx 323 xorl %ecx,%eax 324 shll $4,%esi 325 xorl %edx,%ebx 326 shll $4,%edi 327 xorl %esi,%ebx 328 shrl $4,%ecx 329 xorl %edi,%eax 330 shrl $4,%edx 331 xorl %ecx,%eax 332 shll $5,%esi 333 xorl %edx,%ebx 334 shll $5,%edi 335 xorl %esi,%eax 336 xorl %edi,%ebx 337 movl 48(%esp),%ecx 338 movl 52(%esp),%edx 339 movl 56(%esp),%esi 340 movl 60(%esp),%edi 341 addl 64(%esp),%eax 342 adcl 68(%esp),%ebx 343 xorl %esi,%ecx 344 xorl %edi,%edx 345 andl 40(%esp),%ecx 346 andl 44(%esp),%edx 347 addl 192(%esp),%eax 348 adcl 196(%esp),%ebx 349 xorl %esi,%ecx 350 xorl %edi,%edx 351 movl (%ebp),%esi 352 movl 4(%ebp),%edi 353 addl %ecx,%eax 354 adcl %edx,%ebx 355 movl 32(%esp),%ecx 356 movl 36(%esp),%edx 357 addl %esi,%eax 358 adcl %edi,%ebx 359 movl %eax,(%esp) 360 movl %ebx,4(%esp) 361 addl %ecx,%eax 362 adcl %edx,%ebx 363 movl 8(%esp),%ecx 364 movl 12(%esp),%edx 365 movl %eax,32(%esp) 366 movl %ebx,36(%esp) 367 movl %ecx,%esi 368 shrl $2,%ecx 369 movl %edx,%edi 370 shrl $2,%edx 371 movl %ecx,%ebx 372 shll $4,%esi 373 movl %edx,%eax 374 shll $4,%edi 375 xorl %esi,%ebx 376 shrl $5,%ecx 377 xorl %edi,%eax 378 shrl $5,%edx 379 xorl %ecx,%ebx 380 shll $21,%esi 381 xorl %edx,%eax 382 shll $21,%edi 383 xorl %esi,%eax 384 shrl $21,%ecx 385 xorl %edi,%ebx 386 shrl $21,%edx 387 xorl %ecx,%eax 388 shll $5,%esi 389 xorl %edx,%ebx 390 shll $5,%edi 391 xorl %esi,%eax 392 xorl %edi,%ebx 393 movl 8(%esp),%ecx 394 movl 12(%esp),%edx 395 movl 16(%esp),%esi 396 movl 20(%esp),%edi 397 addl (%esp),%eax 398 adcl 4(%esp),%ebx 399 orl %esi,%ecx 400 orl %edi,%edx 401 andl 24(%esp),%ecx 402 andl 28(%esp),%edx 403 andl 8(%esp),%esi 404 andl 12(%esp),%edi 405 orl %esi,%ecx 406 orl %edi,%edx 407 addl %ecx,%eax 408 adcl %edx,%ebx 409 movl %eax,(%esp) 410 movl %ebx,4(%esp) 411 movb (%ebp),%dl 412 subl $8,%esp 413 leal 8(%ebp),%ebp 414 cmpb $23,%dl 415 jne .L00416_79_x86 416 movl 840(%esp),%esi 417 movl 844(%esp),%edi 418 movl (%esi),%eax 419 movl 4(%esi),%ebx 420 movl 8(%esi),%ecx 421 movl 12(%esi),%edx 422 addl 8(%esp),%eax 423 adcl 12(%esp),%ebx 424 movl %eax,(%esi) 425 movl %ebx,4(%esi) 426 addl 16(%esp),%ecx 427 adcl 20(%esp),%edx 428 movl %ecx,8(%esi) 429 movl %edx,12(%esi) 430 movl 16(%esi),%eax 431 movl 20(%esi),%ebx 432 movl 24(%esi),%ecx 433 movl 28(%esi),%edx 434 addl 24(%esp),%eax 435 adcl 28(%esp),%ebx 436 movl %eax,16(%esi) 437 movl %ebx,20(%esi) 438 addl 32(%esp),%ecx 439 adcl 36(%esp),%edx 440 movl %ecx,24(%esi) 441 movl %edx,28(%esi) 442 movl 32(%esi),%eax 443 movl 36(%esi),%ebx 444 movl 40(%esi),%ecx 445 movl 44(%esi),%edx 446 addl 40(%esp),%eax 447 adcl 44(%esp),%ebx 448 movl %eax,32(%esi) 449 movl %ebx,36(%esi) 450 addl 48(%esp),%ecx 451 adcl 52(%esp),%edx 452 movl %ecx,40(%esi) 453 movl %edx,44(%esi) 454 movl 48(%esi),%eax 455 movl 52(%esi),%ebx 456 movl 56(%esi),%ecx 457 movl 60(%esi),%edx 458 addl 56(%esp),%eax 459 adcl 60(%esp),%ebx 460 movl %eax,48(%esi) 461 movl %ebx,52(%esi) 462 addl 64(%esp),%ecx 463 adcl 68(%esp),%edx 464 movl %ecx,56(%esi) 465 movl %edx,60(%esi) 466 addl $840,%esp 467 subl $640,%ebp 468 cmpl 8(%esp),%edi 469 jb .L002loop_x86 470 movl 12(%esp),%esp 471 popl %edi 472 popl %esi 473 popl %ebx 474 popl %ebp 475 ret 476.align 64 477.L001K512: 478.long 3609767458,1116352408 479.long 602891725,1899447441 480.long 3964484399,3049323471 481.long 2173295548,3921009573 482.long 4081628472,961987163 483.long 3053834265,1508970993 484.long 2937671579,2453635748 485.long 3664609560,2870763221 486.long 2734883394,3624381080 487.long 1164996542,310598401 488.long 1323610764,607225278 489.long 3590304994,1426881987 490.long 4068182383,1925078388 491.long 991336113,2162078206 492.long 633803317,2614888103 493.long 3479774868,3248222580 494.long 2666613458,3835390401 495.long 944711139,4022224774 496.long 2341262773,264347078 497.long 2007800933,604807628 498.long 1495990901,770255983 499.long 1856431235,1249150122 500.long 3175218132,1555081692 501.long 2198950837,1996064986 502.long 3999719339,2554220882 503.long 766784016,2821834349 504.long 2566594879,2952996808 505.long 3203337956,3210313671 506.long 1034457026,3336571891 507.long 2466948901,3584528711 508.long 3758326383,113926993 509.long 168717936,338241895 510.long 1188179964,666307205 511.long 1546045734,773529912 512.long 1522805485,1294757372 513.long 2643833823,1396182291 514.long 2343527390,1695183700 515.long 1014477480,1986661051 516.long 1206759142,2177026350 517.long 344077627,2456956037 518.long 1290863460,2730485921 519.long 3158454273,2820302411 520.long 3505952657,3259730800 521.long 106217008,3345764771 522.long 3606008344,3516065817 523.long 1432725776,3600352804 524.long 1467031594,4094571909 525.long 851169720,275423344 526.long 3100823752,430227734 527.long 1363258195,506948616 528.long 3750685593,659060556 529.long 3785050280,883997877 530.long 3318307427,958139571 531.long 3812723403,1322822218 532.long 2003034995,1537002063 533.long 3602036899,1747873779 534.long 1575990012,1955562222 535.long 1125592928,2024104815 536.long 2716904306,2227730452 537.long 442776044,2361852424 538.long 593698344,2428436474 539.long 3733110249,2756734187 540.long 2999351573,3204031479 541.long 3815920427,3329325298 542.long 3928383900,3391569614 543.long 566280711,3515267271 544.long 3454069534,3940187606 545.long 4000239992,4118630271 546.long 1914138554,116418474 547.long 2731055270,174292421 548.long 3203993006,289380356 549.long 320620315,460393269 550.long 587496836,685471733 551.long 1086792851,852142971 552.long 365543100,1017036298 553.long 2618297676,1126000580 554.long 3409855158,1288033470 555.long 4234509866,1501505948 556.long 987167468,1607167915 557.long 1246189591,1816402316 558.size sha512_block_data_order,.-.L_sha512_block_data_order_begin 559.byte 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97 560.byte 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 561.byte 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 562.byte 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 563.byte 62,0 564