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