1 ; WARNING: do not edit!
2 ; Generated from openssl/crypto/sha/asm/sha512-586.pl
4 ; Copyright 2007-2020 The OpenSSL Project Authors. All Rights Reserved.
6 ; Licensed under the OpenSSL license (the "License"). You may not use
7 ; this file except in compliance with the License. You can obtain a copy
8 ; in the file LICENSE in the source distribution or at
9 ; https://www.openssl.org/source/license.html
11 %ifidn __OUTPUT_FORMAT__,obj
12 section code use32 class=code align=64
13 %elifidn __OUTPUT_FORMAT__,win32
15 section .text code align=64
19 global _sha512_block_data_order
21 _sha512_block_data_order:
22 L$_sha512_block_data_order_begin:
27 mov esi,DWORD [20+esp]
28 mov edi,DWORD [24+esp]
29 mov eax,DWORD [28+esp]
34 lea ebp,[(L$001K512-L$000pic_point)+ebp]
42 mov DWORD [12+esp],ebx
48 mov edx,DWORD [12+edi]
57 mov eax,DWORD [16+edi]
58 mov ebx,DWORD [20+edi]
59 mov ecx,DWORD [24+edi]
60 mov edx,DWORD [28+edi]
69 mov eax,DWORD [32+edi]
70 mov ebx,DWORD [36+edi]
71 mov ecx,DWORD [40+edi]
72 mov edx,DWORD [44+edi]
81 mov eax,DWORD [48+edi]
82 mov ebx,DWORD [52+edi]
83 mov ecx,DWORD [56+edi]
84 mov edx,DWORD [60+edi]
93 mov eax,DWORD [64+edi]
94 mov ebx,DWORD [68+edi]
95 mov ecx,DWORD [72+edi]
96 mov edx,DWORD [76+edi]
105 mov eax,DWORD [80+edi]
106 mov ebx,DWORD [84+edi]
107 mov ecx,DWORD [88+edi]
108 mov edx,DWORD [92+edi]
117 mov eax,DWORD [96+edi]
118 mov ebx,DWORD [100+edi]
119 mov ecx,DWORD [104+edi]
120 mov edx,DWORD [108+edi]
129 mov eax,DWORD [112+edi]
130 mov ebx,DWORD [116+edi]
131 mov ecx,DWORD [120+edi]
132 mov edx,DWORD [124+edi]
143 mov DWORD [204+esp],edi
149 mov ecx,DWORD [40+esp]
150 mov edx,DWORD [44+esp]
177 mov ecx,DWORD [48+esp]
178 mov edx,DWORD [52+esp]
179 mov esi,DWORD [56+esp]
180 mov edi,DWORD [60+esp]
181 add eax,DWORD [64+esp]
182 adc ebx,DWORD [68+esp]
185 and ecx,DWORD [40+esp]
186 and edx,DWORD [44+esp]
187 add eax,DWORD [192+esp]
188 adc ebx,DWORD [196+esp]
192 mov edi,DWORD [4+ebp]
195 mov ecx,DWORD [32+esp]
196 mov edx,DWORD [36+esp]
200 mov DWORD [4+esp],ebx
203 mov ecx,DWORD [8+esp]
204 mov edx,DWORD [12+esp]
205 mov DWORD [32+esp],eax
206 mov DWORD [36+esp],ebx
233 mov ecx,DWORD [8+esp]
234 mov edx,DWORD [12+esp]
235 mov esi,DWORD [16+esp]
236 mov edi,DWORD [20+esp]
238 adc ebx,DWORD [4+esp]
241 and ecx,DWORD [24+esp]
242 and edx,DWORD [28+esp]
243 and esi,DWORD [8+esp]
244 and edi,DWORD [12+esp]
250 mov DWORD [4+esp],ebx
255 jne NEAR L$00300_15_x86
258 mov ecx,DWORD [312+esp]
259 mov edx,DWORD [316+esp]
285 mov DWORD [4+esp],ebx
286 mov ecx,DWORD [208+esp]
287 mov edx,DWORD [212+esp]
312 mov ecx,DWORD [320+esp]
313 mov edx,DWORD [324+esp]
315 adc ebx,DWORD [4+esp]
316 mov esi,DWORD [248+esp]
317 mov edi,DWORD [252+esp]
322 mov DWORD [192+esp],eax
323 mov DWORD [196+esp],ebx
324 mov ecx,DWORD [40+esp]
325 mov edx,DWORD [44+esp]
352 mov ecx,DWORD [48+esp]
353 mov edx,DWORD [52+esp]
354 mov esi,DWORD [56+esp]
355 mov edi,DWORD [60+esp]
356 add eax,DWORD [64+esp]
357 adc ebx,DWORD [68+esp]
360 and ecx,DWORD [40+esp]
361 and edx,DWORD [44+esp]
362 add eax,DWORD [192+esp]
363 adc ebx,DWORD [196+esp]
367 mov edi,DWORD [4+ebp]
370 mov ecx,DWORD [32+esp]
371 mov edx,DWORD [36+esp]
375 mov DWORD [4+esp],ebx
378 mov ecx,DWORD [8+esp]
379 mov edx,DWORD [12+esp]
380 mov DWORD [32+esp],eax
381 mov DWORD [36+esp],ebx
408 mov ecx,DWORD [8+esp]
409 mov edx,DWORD [12+esp]
410 mov esi,DWORD [16+esp]
411 mov edi,DWORD [20+esp]
413 adc ebx,DWORD [4+esp]
416 and ecx,DWORD [24+esp]
417 and edx,DWORD [28+esp]
418 and esi,DWORD [8+esp]
419 and edi,DWORD [12+esp]
425 mov DWORD [4+esp],ebx
430 jne NEAR L$00416_79_x86
431 mov esi,DWORD [840+esp]
432 mov edi,DWORD [844+esp]
434 mov ebx,DWORD [4+esi]
435 mov ecx,DWORD [8+esi]
436 mov edx,DWORD [12+esi]
437 add eax,DWORD [8+esp]
438 adc ebx,DWORD [12+esp]
440 mov DWORD [4+esi],ebx
441 add ecx,DWORD [16+esp]
442 adc edx,DWORD [20+esp]
443 mov DWORD [8+esi],ecx
444 mov DWORD [12+esi],edx
445 mov eax,DWORD [16+esi]
446 mov ebx,DWORD [20+esi]
447 mov ecx,DWORD [24+esi]
448 mov edx,DWORD [28+esi]
449 add eax,DWORD [24+esp]
450 adc ebx,DWORD [28+esp]
451 mov DWORD [16+esi],eax
452 mov DWORD [20+esi],ebx
453 add ecx,DWORD [32+esp]
454 adc edx,DWORD [36+esp]
455 mov DWORD [24+esi],ecx
456 mov DWORD [28+esi],edx
457 mov eax,DWORD [32+esi]
458 mov ebx,DWORD [36+esi]
459 mov ecx,DWORD [40+esi]
460 mov edx,DWORD [44+esi]
461 add eax,DWORD [40+esp]
462 adc ebx,DWORD [44+esp]
463 mov DWORD [32+esi],eax
464 mov DWORD [36+esi],ebx
465 add ecx,DWORD [48+esp]
466 adc edx,DWORD [52+esp]
467 mov DWORD [40+esi],ecx
468 mov DWORD [44+esi],edx
469 mov eax,DWORD [48+esi]
470 mov ebx,DWORD [52+esi]
471 mov ecx,DWORD [56+esi]
472 mov edx,DWORD [60+esi]
473 add eax,DWORD [56+esp]
474 adc ebx,DWORD [60+esp]
475 mov DWORD [48+esi],eax
476 mov DWORD [52+esi],ebx
477 add ecx,DWORD [64+esp]
478 adc edx,DWORD [68+esp]
479 mov DWORD [56+esi],ecx
480 mov DWORD [60+esi],edx
483 cmp edi,DWORD [8+esp]
484 jb NEAR L$002loop_x86
485 mov esp,DWORD [12+esp]
493 dd 3609767458,1116352408
494 dd 602891725,1899447441
495 dd 3964484399,3049323471
496 dd 2173295548,3921009573
497 dd 4081628472,961987163
498 dd 3053834265,1508970993
499 dd 2937671579,2453635748
500 dd 3664609560,2870763221
501 dd 2734883394,3624381080
502 dd 1164996542,310598401
503 dd 1323610764,607225278
504 dd 3590304994,1426881987
505 dd 4068182383,1925078388
506 dd 991336113,2162078206
507 dd 633803317,2614888103
508 dd 3479774868,3248222580
509 dd 2666613458,3835390401
510 dd 944711139,4022224774
511 dd 2341262773,264347078
512 dd 2007800933,604807628
513 dd 1495990901,770255983
514 dd 1856431235,1249150122
515 dd 3175218132,1555081692
516 dd 2198950837,1996064986
517 dd 3999719339,2554220882
518 dd 766784016,2821834349
519 dd 2566594879,2952996808
520 dd 3203337956,3210313671
521 dd 1034457026,3336571891
522 dd 2466948901,3584528711
523 dd 3758326383,113926993
524 dd 168717936,338241895
525 dd 1188179964,666307205
526 dd 1546045734,773529912
527 dd 1522805485,1294757372
528 dd 2643833823,1396182291
529 dd 2343527390,1695183700
530 dd 1014477480,1986661051
531 dd 1206759142,2177026350
532 dd 344077627,2456956037
533 dd 1290863460,2730485921
534 dd 3158454273,2820302411
535 dd 3505952657,3259730800
536 dd 106217008,3345764771
537 dd 3606008344,3516065817
538 dd 1432725776,3600352804
539 dd 1467031594,4094571909
540 dd 851169720,275423344
541 dd 3100823752,430227734
542 dd 1363258195,506948616
543 dd 3750685593,659060556
544 dd 3785050280,883997877
545 dd 3318307427,958139571
546 dd 3812723403,1322822218
547 dd 2003034995,1537002063
548 dd 3602036899,1747873779
549 dd 1575990012,1955562222
550 dd 1125592928,2024104815
551 dd 2716904306,2227730452
552 dd 442776044,2361852424
553 dd 593698344,2428436474
554 dd 3733110249,2756734187
555 dd 2999351573,3204031479
556 dd 3815920427,3329325298
557 dd 3928383900,3391569614
558 dd 566280711,3515267271
559 dd 3454069534,3940187606
560 dd 4000239992,4118630271
561 dd 1914138554,116418474
562 dd 2731055270,174292421
563 dd 3203993006,289380356
564 dd 320620315,460393269
565 dd 587496836,685471733
566 dd 1086792851,852142971
567 dd 365543100,1017036298
568 dd 2618297676,1126000580
569 dd 3409855158,1288033470
570 dd 4234509866,1501505948
571 dd 987167468,1607167915
572 dd 1246189591,1816402316
574 dd 202182159,134810123
575 db 83,72,65,53,49,50,32,98,108,111,99,107,32,116,114,97
576 db 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
577 db 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
578 db 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103