Home | History | Annotate | Download | only in sha
      1 default	rel
      2 %define XMMWORD
      3 %define YMMWORD
      4 %define ZMMWORD
      5 section	.text code align=64
      6 
      7 
      8 EXTERN	OPENSSL_ia32cap_P
      9 global	sha256_block_data_order
     10 
     11 ALIGN	16
     12 sha256_block_data_order:
     13 	mov	QWORD[8+rsp],rdi	;WIN64 prologue
     14 	mov	QWORD[16+rsp],rsi
     15 	mov	rax,rsp
     16 $L$SEH_begin_sha256_block_data_order:
     17 	mov	rdi,rcx
     18 	mov	rsi,rdx
     19 	mov	rdx,r8
     20 
     21 
     22 	lea	r11,[OPENSSL_ia32cap_P]
     23 	mov	r9d,DWORD[r11]
     24 	mov	r10d,DWORD[4+r11]
     25 	mov	r11d,DWORD[8+r11]
     26 	and	r9d,1073741824
     27 	and	r10d,268435968
     28 	or	r10d,r9d
     29 	cmp	r10d,1342177792
     30 	je	NEAR $L$avx_shortcut
     31 	test	r10d,512
     32 	jnz	NEAR $L$ssse3_shortcut
     33 	push	rbx
     34 	push	rbp
     35 	push	r12
     36 	push	r13
     37 	push	r14
     38 	push	r15
     39 	mov	r11,rsp
     40 	shl	rdx,4
     41 	sub	rsp,16*4+4*8
     42 	lea	rdx,[rdx*4+rsi]
     43 	and	rsp,-64
     44 	mov	QWORD[((64+0))+rsp],rdi
     45 	mov	QWORD[((64+8))+rsp],rsi
     46 	mov	QWORD[((64+16))+rsp],rdx
     47 	mov	QWORD[((64+24))+rsp],r11
     48 $L$prologue:
     49 
     50 	mov	eax,DWORD[rdi]
     51 	mov	ebx,DWORD[4+rdi]
     52 	mov	ecx,DWORD[8+rdi]
     53 	mov	edx,DWORD[12+rdi]
     54 	mov	r8d,DWORD[16+rdi]
     55 	mov	r9d,DWORD[20+rdi]
     56 	mov	r10d,DWORD[24+rdi]
     57 	mov	r11d,DWORD[28+rdi]
     58 	jmp	NEAR $L$loop
     59 
     60 ALIGN	16
     61 $L$loop:
     62 	mov	edi,ebx
     63 	lea	rbp,[K256]
     64 	xor	edi,ecx
     65 	mov	r12d,DWORD[rsi]
     66 	mov	r13d,r8d
     67 	mov	r14d,eax
     68 	bswap	r12d
     69 	ror	r13d,14
     70 	mov	r15d,r9d
     71 
     72 	xor	r13d,r8d
     73 	ror	r14d,9
     74 	xor	r15d,r10d
     75 
     76 	mov	DWORD[rsp],r12d
     77 	xor	r14d,eax
     78 	and	r15d,r8d
     79 
     80 	ror	r13d,5
     81 	add	r12d,r11d
     82 	xor	r15d,r10d
     83 
     84 	ror	r14d,11
     85 	xor	r13d,r8d
     86 	add	r12d,r15d
     87 
     88 	mov	r15d,eax
     89 	add	r12d,DWORD[rbp]
     90 	xor	r14d,eax
     91 
     92 	xor	r15d,ebx
     93 	ror	r13d,6
     94 	mov	r11d,ebx
     95 
     96 	and	edi,r15d
     97 	ror	r14d,2
     98 	add	r12d,r13d
     99 
    100 	xor	r11d,edi
    101 	add	edx,r12d
    102 	add	r11d,r12d
    103 
    104 	lea	rbp,[4+rbp]
    105 	add	r11d,r14d
    106 	mov	r12d,DWORD[4+rsi]
    107 	mov	r13d,edx
    108 	mov	r14d,r11d
    109 	bswap	r12d
    110 	ror	r13d,14
    111 	mov	edi,r8d
    112 
    113 	xor	r13d,edx
    114 	ror	r14d,9
    115 	xor	edi,r9d
    116 
    117 	mov	DWORD[4+rsp],r12d
    118 	xor	r14d,r11d
    119 	and	edi,edx
    120 
    121 	ror	r13d,5
    122 	add	r12d,r10d
    123 	xor	edi,r9d
    124 
    125 	ror	r14d,11
    126 	xor	r13d,edx
    127 	add	r12d,edi
    128 
    129 	mov	edi,r11d
    130 	add	r12d,DWORD[rbp]
    131 	xor	r14d,r11d
    132 
    133 	xor	edi,eax
    134 	ror	r13d,6
    135 	mov	r10d,eax
    136 
    137 	and	r15d,edi
    138 	ror	r14d,2
    139 	add	r12d,r13d
    140 
    141 	xor	r10d,r15d
    142 	add	ecx,r12d
    143 	add	r10d,r12d
    144 
    145 	lea	rbp,[4+rbp]
    146 	add	r10d,r14d
    147 	mov	r12d,DWORD[8+rsi]
    148 	mov	r13d,ecx
    149 	mov	r14d,r10d
    150 	bswap	r12d
    151 	ror	r13d,14
    152 	mov	r15d,edx
    153 
    154 	xor	r13d,ecx
    155 	ror	r14d,9
    156 	xor	r15d,r8d
    157 
    158 	mov	DWORD[8+rsp],r12d
    159 	xor	r14d,r10d
    160 	and	r15d,ecx
    161 
    162 	ror	r13d,5
    163 	add	r12d,r9d
    164 	xor	r15d,r8d
    165 
    166 	ror	r14d,11
    167 	xor	r13d,ecx
    168 	add	r12d,r15d
    169 
    170 	mov	r15d,r10d
    171 	add	r12d,DWORD[rbp]
    172 	xor	r14d,r10d
    173 
    174 	xor	r15d,r11d
    175 	ror	r13d,6
    176 	mov	r9d,r11d
    177 
    178 	and	edi,r15d
    179 	ror	r14d,2
    180 	add	r12d,r13d
    181 
    182 	xor	r9d,edi
    183 	add	ebx,r12d
    184 	add	r9d,r12d
    185 
    186 	lea	rbp,[4+rbp]
    187 	add	r9d,r14d
    188 	mov	r12d,DWORD[12+rsi]
    189 	mov	r13d,ebx
    190 	mov	r14d,r9d
    191 	bswap	r12d
    192 	ror	r13d,14
    193 	mov	edi,ecx
    194 
    195 	xor	r13d,ebx
    196 	ror	r14d,9
    197 	xor	edi,edx
    198 
    199 	mov	DWORD[12+rsp],r12d
    200 	xor	r14d,r9d
    201 	and	edi,ebx
    202 
    203 	ror	r13d,5
    204 	add	r12d,r8d
    205 	xor	edi,edx
    206 
    207 	ror	r14d,11
    208 	xor	r13d,ebx
    209 	add	r12d,edi
    210 
    211 	mov	edi,r9d
    212 	add	r12d,DWORD[rbp]
    213 	xor	r14d,r9d
    214 
    215 	xor	edi,r10d
    216 	ror	r13d,6
    217 	mov	r8d,r10d
    218 
    219 	and	r15d,edi
    220 	ror	r14d,2
    221 	add	r12d,r13d
    222 
    223 	xor	r8d,r15d
    224 	add	eax,r12d
    225 	add	r8d,r12d
    226 
    227 	lea	rbp,[20+rbp]
    228 	add	r8d,r14d
    229 	mov	r12d,DWORD[16+rsi]
    230 	mov	r13d,eax
    231 	mov	r14d,r8d
    232 	bswap	r12d
    233 	ror	r13d,14
    234 	mov	r15d,ebx
    235 
    236 	xor	r13d,eax
    237 	ror	r14d,9
    238 	xor	r15d,ecx
    239 
    240 	mov	DWORD[16+rsp],r12d
    241 	xor	r14d,r8d
    242 	and	r15d,eax
    243 
    244 	ror	r13d,5
    245 	add	r12d,edx
    246 	xor	r15d,ecx
    247 
    248 	ror	r14d,11
    249 	xor	r13d,eax
    250 	add	r12d,r15d
    251 
    252 	mov	r15d,r8d
    253 	add	r12d,DWORD[rbp]
    254 	xor	r14d,r8d
    255 
    256 	xor	r15d,r9d
    257 	ror	r13d,6
    258 	mov	edx,r9d
    259 
    260 	and	edi,r15d
    261 	ror	r14d,2
    262 	add	r12d,r13d
    263 
    264 	xor	edx,edi
    265 	add	r11d,r12d
    266 	add	edx,r12d
    267 
    268 	lea	rbp,[4+rbp]
    269 	add	edx,r14d
    270 	mov	r12d,DWORD[20+rsi]
    271 	mov	r13d,r11d
    272 	mov	r14d,edx
    273 	bswap	r12d
    274 	ror	r13d,14
    275 	mov	edi,eax
    276 
    277 	xor	r13d,r11d
    278 	ror	r14d,9
    279 	xor	edi,ebx
    280 
    281 	mov	DWORD[20+rsp],r12d
    282 	xor	r14d,edx
    283 	and	edi,r11d
    284 
    285 	ror	r13d,5
    286 	add	r12d,ecx
    287 	xor	edi,ebx
    288 
    289 	ror	r14d,11
    290 	xor	r13d,r11d
    291 	add	r12d,edi
    292 
    293 	mov	edi,edx
    294 	add	r12d,DWORD[rbp]
    295 	xor	r14d,edx
    296 
    297 	xor	edi,r8d
    298 	ror	r13d,6
    299 	mov	ecx,r8d
    300 
    301 	and	r15d,edi
    302 	ror	r14d,2
    303 	add	r12d,r13d
    304 
    305 	xor	ecx,r15d
    306 	add	r10d,r12d
    307 	add	ecx,r12d
    308 
    309 	lea	rbp,[4+rbp]
    310 	add	ecx,r14d
    311 	mov	r12d,DWORD[24+rsi]
    312 	mov	r13d,r10d
    313 	mov	r14d,ecx
    314 	bswap	r12d
    315 	ror	r13d,14
    316 	mov	r15d,r11d
    317 
    318 	xor	r13d,r10d
    319 	ror	r14d,9
    320 	xor	r15d,eax
    321 
    322 	mov	DWORD[24+rsp],r12d
    323 	xor	r14d,ecx
    324 	and	r15d,r10d
    325 
    326 	ror	r13d,5
    327 	add	r12d,ebx
    328 	xor	r15d,eax
    329 
    330 	ror	r14d,11
    331 	xor	r13d,r10d
    332 	add	r12d,r15d
    333 
    334 	mov	r15d,ecx
    335 	add	r12d,DWORD[rbp]
    336 	xor	r14d,ecx
    337 
    338 	xor	r15d,edx
    339 	ror	r13d,6
    340 	mov	ebx,edx
    341 
    342 	and	edi,r15d
    343 	ror	r14d,2
    344 	add	r12d,r13d
    345 
    346 	xor	ebx,edi
    347 	add	r9d,r12d
    348 	add	ebx,r12d
    349 
    350 	lea	rbp,[4+rbp]
    351 	add	ebx,r14d
    352 	mov	r12d,DWORD[28+rsi]
    353 	mov	r13d,r9d
    354 	mov	r14d,ebx
    355 	bswap	r12d
    356 	ror	r13d,14
    357 	mov	edi,r10d
    358 
    359 	xor	r13d,r9d
    360 	ror	r14d,9
    361 	xor	edi,r11d
    362 
    363 	mov	DWORD[28+rsp],r12d
    364 	xor	r14d,ebx
    365 	and	edi,r9d
    366 
    367 	ror	r13d,5
    368 	add	r12d,eax
    369 	xor	edi,r11d
    370 
    371 	ror	r14d,11
    372 	xor	r13d,r9d
    373 	add	r12d,edi
    374 
    375 	mov	edi,ebx
    376 	add	r12d,DWORD[rbp]
    377 	xor	r14d,ebx
    378 
    379 	xor	edi,ecx
    380 	ror	r13d,6
    381 	mov	eax,ecx
    382 
    383 	and	r15d,edi
    384 	ror	r14d,2
    385 	add	r12d,r13d
    386 
    387 	xor	eax,r15d
    388 	add	r8d,r12d
    389 	add	eax,r12d
    390 
    391 	lea	rbp,[20+rbp]
    392 	add	eax,r14d
    393 	mov	r12d,DWORD[32+rsi]
    394 	mov	r13d,r8d
    395 	mov	r14d,eax
    396 	bswap	r12d
    397 	ror	r13d,14
    398 	mov	r15d,r9d
    399 
    400 	xor	r13d,r8d
    401 	ror	r14d,9
    402 	xor	r15d,r10d
    403 
    404 	mov	DWORD[32+rsp],r12d
    405 	xor	r14d,eax
    406 	and	r15d,r8d
    407 
    408 	ror	r13d,5
    409 	add	r12d,r11d
    410 	xor	r15d,r10d
    411 
    412 	ror	r14d,11
    413 	xor	r13d,r8d
    414 	add	r12d,r15d
    415 
    416 	mov	r15d,eax
    417 	add	r12d,DWORD[rbp]
    418 	xor	r14d,eax
    419 
    420 	xor	r15d,ebx
    421 	ror	r13d,6
    422 	mov	r11d,ebx
    423 
    424 	and	edi,r15d
    425 	ror	r14d,2
    426 	add	r12d,r13d
    427 
    428 	xor	r11d,edi
    429 	add	edx,r12d
    430 	add	r11d,r12d
    431 
    432 	lea	rbp,[4+rbp]
    433 	add	r11d,r14d
    434 	mov	r12d,DWORD[36+rsi]
    435 	mov	r13d,edx
    436 	mov	r14d,r11d
    437 	bswap	r12d
    438 	ror	r13d,14
    439 	mov	edi,r8d
    440 
    441 	xor	r13d,edx
    442 	ror	r14d,9
    443 	xor	edi,r9d
    444 
    445 	mov	DWORD[36+rsp],r12d
    446 	xor	r14d,r11d
    447 	and	edi,edx
    448 
    449 	ror	r13d,5
    450 	add	r12d,r10d
    451 	xor	edi,r9d
    452 
    453 	ror	r14d,11
    454 	xor	r13d,edx
    455 	add	r12d,edi
    456 
    457 	mov	edi,r11d
    458 	add	r12d,DWORD[rbp]
    459 	xor	r14d,r11d
    460 
    461 	xor	edi,eax
    462 	ror	r13d,6
    463 	mov	r10d,eax
    464 
    465 	and	r15d,edi
    466 	ror	r14d,2
    467 	add	r12d,r13d
    468 
    469 	xor	r10d,r15d
    470 	add	ecx,r12d
    471 	add	r10d,r12d
    472 
    473 	lea	rbp,[4+rbp]
    474 	add	r10d,r14d
    475 	mov	r12d,DWORD[40+rsi]
    476 	mov	r13d,ecx
    477 	mov	r14d,r10d
    478 	bswap	r12d
    479 	ror	r13d,14
    480 	mov	r15d,edx
    481 
    482 	xor	r13d,ecx
    483 	ror	r14d,9
    484 	xor	r15d,r8d
    485 
    486 	mov	DWORD[40+rsp],r12d
    487 	xor	r14d,r10d
    488 	and	r15d,ecx
    489 
    490 	ror	r13d,5
    491 	add	r12d,r9d
    492 	xor	r15d,r8d
    493 
    494 	ror	r14d,11
    495 	xor	r13d,ecx
    496 	add	r12d,r15d
    497 
    498 	mov	r15d,r10d
    499 	add	r12d,DWORD[rbp]
    500 	xor	r14d,r10d
    501 
    502 	xor	r15d,r11d
    503 	ror	r13d,6
    504 	mov	r9d,r11d
    505 
    506 	and	edi,r15d
    507 	ror	r14d,2
    508 	add	r12d,r13d
    509 
    510 	xor	r9d,edi
    511 	add	ebx,r12d
    512 	add	r9d,r12d
    513 
    514 	lea	rbp,[4+rbp]
    515 	add	r9d,r14d
    516 	mov	r12d,DWORD[44+rsi]
    517 	mov	r13d,ebx
    518 	mov	r14d,r9d
    519 	bswap	r12d
    520 	ror	r13d,14
    521 	mov	edi,ecx
    522 
    523 	xor	r13d,ebx
    524 	ror	r14d,9
    525 	xor	edi,edx
    526 
    527 	mov	DWORD[44+rsp],r12d
    528 	xor	r14d,r9d
    529 	and	edi,ebx
    530 
    531 	ror	r13d,5
    532 	add	r12d,r8d
    533 	xor	edi,edx
    534 
    535 	ror	r14d,11
    536 	xor	r13d,ebx
    537 	add	r12d,edi
    538 
    539 	mov	edi,r9d
    540 	add	r12d,DWORD[rbp]
    541 	xor	r14d,r9d
    542 
    543 	xor	edi,r10d
    544 	ror	r13d,6
    545 	mov	r8d,r10d
    546 
    547 	and	r15d,edi
    548 	ror	r14d,2
    549 	add	r12d,r13d
    550 
    551 	xor	r8d,r15d
    552 	add	eax,r12d
    553 	add	r8d,r12d
    554 
    555 	lea	rbp,[20+rbp]
    556 	add	r8d,r14d
    557 	mov	r12d,DWORD[48+rsi]
    558 	mov	r13d,eax
    559 	mov	r14d,r8d
    560 	bswap	r12d
    561 	ror	r13d,14
    562 	mov	r15d,ebx
    563 
    564 	xor	r13d,eax
    565 	ror	r14d,9
    566 	xor	r15d,ecx
    567 
    568 	mov	DWORD[48+rsp],r12d
    569 	xor	r14d,r8d
    570 	and	r15d,eax
    571 
    572 	ror	r13d,5
    573 	add	r12d,edx
    574 	xor	r15d,ecx
    575 
    576 	ror	r14d,11
    577 	xor	r13d,eax
    578 	add	r12d,r15d
    579 
    580 	mov	r15d,r8d
    581 	add	r12d,DWORD[rbp]
    582 	xor	r14d,r8d
    583 
    584 	xor	r15d,r9d
    585 	ror	r13d,6
    586 	mov	edx,r9d
    587 
    588 	and	edi,r15d
    589 	ror	r14d,2
    590 	add	r12d,r13d
    591 
    592 	xor	edx,edi
    593 	add	r11d,r12d
    594 	add	edx,r12d
    595 
    596 	lea	rbp,[4+rbp]
    597 	add	edx,r14d
    598 	mov	r12d,DWORD[52+rsi]
    599 	mov	r13d,r11d
    600 	mov	r14d,edx
    601 	bswap	r12d
    602 	ror	r13d,14
    603 	mov	edi,eax
    604 
    605 	xor	r13d,r11d
    606 	ror	r14d,9
    607 	xor	edi,ebx
    608 
    609 	mov	DWORD[52+rsp],r12d
    610 	xor	r14d,edx
    611 	and	edi,r11d
    612 
    613 	ror	r13d,5
    614 	add	r12d,ecx
    615 	xor	edi,ebx
    616 
    617 	ror	r14d,11
    618 	xor	r13d,r11d
    619 	add	r12d,edi
    620 
    621 	mov	edi,edx
    622 	add	r12d,DWORD[rbp]
    623 	xor	r14d,edx
    624 
    625 	xor	edi,r8d
    626 	ror	r13d,6
    627 	mov	ecx,r8d
    628 
    629 	and	r15d,edi
    630 	ror	r14d,2
    631 	add	r12d,r13d
    632 
    633 	xor	ecx,r15d
    634 	add	r10d,r12d
    635 	add	ecx,r12d
    636 
    637 	lea	rbp,[4+rbp]
    638 	add	ecx,r14d
    639 	mov	r12d,DWORD[56+rsi]
    640 	mov	r13d,r10d
    641 	mov	r14d,ecx
    642 	bswap	r12d
    643 	ror	r13d,14
    644 	mov	r15d,r11d
    645 
    646 	xor	r13d,r10d
    647 	ror	r14d,9
    648 	xor	r15d,eax
    649 
    650 	mov	DWORD[56+rsp],r12d
    651 	xor	r14d,ecx
    652 	and	r15d,r10d
    653 
    654 	ror	r13d,5
    655 	add	r12d,ebx
    656 	xor	r15d,eax
    657 
    658 	ror	r14d,11
    659 	xor	r13d,r10d
    660 	add	r12d,r15d
    661 
    662 	mov	r15d,ecx
    663 	add	r12d,DWORD[rbp]
    664 	xor	r14d,ecx
    665 
    666 	xor	r15d,edx
    667 	ror	r13d,6
    668 	mov	ebx,edx
    669 
    670 	and	edi,r15d
    671 	ror	r14d,2
    672 	add	r12d,r13d
    673 
    674 	xor	ebx,edi
    675 	add	r9d,r12d
    676 	add	ebx,r12d
    677 
    678 	lea	rbp,[4+rbp]
    679 	add	ebx,r14d
    680 	mov	r12d,DWORD[60+rsi]
    681 	mov	r13d,r9d
    682 	mov	r14d,ebx
    683 	bswap	r12d
    684 	ror	r13d,14
    685 	mov	edi,r10d
    686 
    687 	xor	r13d,r9d
    688 	ror	r14d,9
    689 	xor	edi,r11d
    690 
    691 	mov	DWORD[60+rsp],r12d
    692 	xor	r14d,ebx
    693 	and	edi,r9d
    694 
    695 	ror	r13d,5
    696 	add	r12d,eax
    697 	xor	edi,r11d
    698 
    699 	ror	r14d,11
    700 	xor	r13d,r9d
    701 	add	r12d,edi
    702 
    703 	mov	edi,ebx
    704 	add	r12d,DWORD[rbp]
    705 	xor	r14d,ebx
    706 
    707 	xor	edi,ecx
    708 	ror	r13d,6
    709 	mov	eax,ecx
    710 
    711 	and	r15d,edi
    712 	ror	r14d,2
    713 	add	r12d,r13d
    714 
    715 	xor	eax,r15d
    716 	add	r8d,r12d
    717 	add	eax,r12d
    718 
    719 	lea	rbp,[20+rbp]
    720 	jmp	NEAR $L$rounds_16_xx
    721 ALIGN	16
    722 $L$rounds_16_xx:
    723 	mov	r13d,DWORD[4+rsp]
    724 	mov	r15d,DWORD[56+rsp]
    725 
    726 	mov	r12d,r13d
    727 	ror	r13d,11
    728 	add	eax,r14d
    729 	mov	r14d,r15d
    730 	ror	r15d,2
    731 
    732 	xor	r13d,r12d
    733 	shr	r12d,3
    734 	ror	r13d,7
    735 	xor	r15d,r14d
    736 	shr	r14d,10
    737 
    738 	ror	r15d,17
    739 	xor	r12d,r13d
    740 	xor	r15d,r14d
    741 	add	r12d,DWORD[36+rsp]
    742 
    743 	add	r12d,DWORD[rsp]
    744 	mov	r13d,r8d
    745 	add	r12d,r15d
    746 	mov	r14d,eax
    747 	ror	r13d,14
    748 	mov	r15d,r9d
    749 
    750 	xor	r13d,r8d
    751 	ror	r14d,9
    752 	xor	r15d,r10d
    753 
    754 	mov	DWORD[rsp],r12d
    755 	xor	r14d,eax
    756 	and	r15d,r8d
    757 
    758 	ror	r13d,5
    759 	add	r12d,r11d
    760 	xor	r15d,r10d
    761 
    762 	ror	r14d,11
    763 	xor	r13d,r8d
    764 	add	r12d,r15d
    765 
    766 	mov	r15d,eax
    767 	add	r12d,DWORD[rbp]
    768 	xor	r14d,eax
    769 
    770 	xor	r15d,ebx
    771 	ror	r13d,6
    772 	mov	r11d,ebx
    773 
    774 	and	edi,r15d
    775 	ror	r14d,2
    776 	add	r12d,r13d
    777 
    778 	xor	r11d,edi
    779 	add	edx,r12d
    780 	add	r11d,r12d
    781 
    782 	lea	rbp,[4+rbp]
    783 	mov	r13d,DWORD[8+rsp]
    784 	mov	edi,DWORD[60+rsp]
    785 
    786 	mov	r12d,r13d
    787 	ror	r13d,11
    788 	add	r11d,r14d
    789 	mov	r14d,edi
    790 	ror	edi,2
    791 
    792 	xor	r13d,r12d
    793 	shr	r12d,3
    794 	ror	r13d,7
    795 	xor	edi,r14d
    796 	shr	r14d,10
    797 
    798 	ror	edi,17
    799 	xor	r12d,r13d
    800 	xor	edi,r14d
    801 	add	r12d,DWORD[40+rsp]
    802 
    803 	add	r12d,DWORD[4+rsp]
    804 	mov	r13d,edx
    805 	add	r12d,edi
    806 	mov	r14d,r11d
    807 	ror	r13d,14
    808 	mov	edi,r8d
    809 
    810 	xor	r13d,edx
    811 	ror	r14d,9
    812 	xor	edi,r9d
    813 
    814 	mov	DWORD[4+rsp],r12d
    815 	xor	r14d,r11d
    816 	and	edi,edx
    817 
    818 	ror	r13d,5
    819 	add	r12d,r10d
    820 	xor	edi,r9d
    821 
    822 	ror	r14d,11
    823 	xor	r13d,edx
    824 	add	r12d,edi
    825 
    826 	mov	edi,r11d
    827 	add	r12d,DWORD[rbp]
    828 	xor	r14d,r11d
    829 
    830 	xor	edi,eax
    831 	ror	r13d,6
    832 	mov	r10d,eax
    833 
    834 	and	r15d,edi
    835 	ror	r14d,2
    836 	add	r12d,r13d
    837 
    838 	xor	r10d,r15d
    839 	add	ecx,r12d
    840 	add	r10d,r12d
    841 
    842 	lea	rbp,[4+rbp]
    843 	mov	r13d,DWORD[12+rsp]
    844 	mov	r15d,DWORD[rsp]
    845 
    846 	mov	r12d,r13d
    847 	ror	r13d,11
    848 	add	r10d,r14d
    849 	mov	r14d,r15d
    850 	ror	r15d,2
    851 
    852 	xor	r13d,r12d
    853 	shr	r12d,3
    854 	ror	r13d,7
    855 	xor	r15d,r14d
    856 	shr	r14d,10
    857 
    858 	ror	r15d,17
    859 	xor	r12d,r13d
    860 	xor	r15d,r14d
    861 	add	r12d,DWORD[44+rsp]
    862 
    863 	add	r12d,DWORD[8+rsp]
    864 	mov	r13d,ecx
    865 	add	r12d,r15d
    866 	mov	r14d,r10d
    867 	ror	r13d,14
    868 	mov	r15d,edx
    869 
    870 	xor	r13d,ecx
    871 	ror	r14d,9
    872 	xor	r15d,r8d
    873 
    874 	mov	DWORD[8+rsp],r12d
    875 	xor	r14d,r10d
    876 	and	r15d,ecx
    877 
    878 	ror	r13d,5
    879 	add	r12d,r9d
    880 	xor	r15d,r8d
    881 
    882 	ror	r14d,11
    883 	xor	r13d,ecx
    884 	add	r12d,r15d
    885 
    886 	mov	r15d,r10d
    887 	add	r12d,DWORD[rbp]
    888 	xor	r14d,r10d
    889 
    890 	xor	r15d,r11d
    891 	ror	r13d,6
    892 	mov	r9d,r11d
    893 
    894 	and	edi,r15d
    895 	ror	r14d,2
    896 	add	r12d,r13d
    897 
    898 	xor	r9d,edi
    899 	add	ebx,r12d
    900 	add	r9d,r12d
    901 
    902 	lea	rbp,[4+rbp]
    903 	mov	r13d,DWORD[16+rsp]
    904 	mov	edi,DWORD[4+rsp]
    905 
    906 	mov	r12d,r13d
    907 	ror	r13d,11
    908 	add	r9d,r14d
    909 	mov	r14d,edi
    910 	ror	edi,2
    911 
    912 	xor	r13d,r12d
    913 	shr	r12d,3
    914 	ror	r13d,7
    915 	xor	edi,r14d
    916 	shr	r14d,10
    917 
    918 	ror	edi,17
    919 	xor	r12d,r13d
    920 	xor	edi,r14d
    921 	add	r12d,DWORD[48+rsp]
    922 
    923 	add	r12d,DWORD[12+rsp]
    924 	mov	r13d,ebx
    925 	add	r12d,edi
    926 	mov	r14d,r9d
    927 	ror	r13d,14
    928 	mov	edi,ecx
    929 
    930 	xor	r13d,ebx
    931 	ror	r14d,9
    932 	xor	edi,edx
    933 
    934 	mov	DWORD[12+rsp],r12d
    935 	xor	r14d,r9d
    936 	and	edi,ebx
    937 
    938 	ror	r13d,5
    939 	add	r12d,r8d
    940 	xor	edi,edx
    941 
    942 	ror	r14d,11
    943 	xor	r13d,ebx
    944 	add	r12d,edi
    945 
    946 	mov	edi,r9d
    947 	add	r12d,DWORD[rbp]
    948 	xor	r14d,r9d
    949 
    950 	xor	edi,r10d
    951 	ror	r13d,6
    952 	mov	r8d,r10d
    953 
    954 	and	r15d,edi
    955 	ror	r14d,2
    956 	add	r12d,r13d
    957 
    958 	xor	r8d,r15d
    959 	add	eax,r12d
    960 	add	r8d,r12d
    961 
    962 	lea	rbp,[20+rbp]
    963 	mov	r13d,DWORD[20+rsp]
    964 	mov	r15d,DWORD[8+rsp]
    965 
    966 	mov	r12d,r13d
    967 	ror	r13d,11
    968 	add	r8d,r14d
    969 	mov	r14d,r15d
    970 	ror	r15d,2
    971 
    972 	xor	r13d,r12d
    973 	shr	r12d,3
    974 	ror	r13d,7
    975 	xor	r15d,r14d
    976 	shr	r14d,10
    977 
    978 	ror	r15d,17
    979 	xor	r12d,r13d
    980 	xor	r15d,r14d
    981 	add	r12d,DWORD[52+rsp]
    982 
    983 	add	r12d,DWORD[16+rsp]
    984 	mov	r13d,eax
    985 	add	r12d,r15d
    986 	mov	r14d,r8d
    987 	ror	r13d,14
    988 	mov	r15d,ebx
    989 
    990 	xor	r13d,eax
    991 	ror	r14d,9
    992 	xor	r15d,ecx
    993 
    994 	mov	DWORD[16+rsp],r12d
    995 	xor	r14d,r8d
    996 	and	r15d,eax
    997 
    998 	ror	r13d,5
    999 	add	r12d,edx
   1000 	xor	r15d,ecx
   1001 
   1002 	ror	r14d,11
   1003 	xor	r13d,eax
   1004 	add	r12d,r15d
   1005 
   1006 	mov	r15d,r8d
   1007 	add	r12d,DWORD[rbp]
   1008 	xor	r14d,r8d
   1009 
   1010 	xor	r15d,r9d
   1011 	ror	r13d,6
   1012 	mov	edx,r9d
   1013 
   1014 	and	edi,r15d
   1015 	ror	r14d,2
   1016 	add	r12d,r13d
   1017 
   1018 	xor	edx,edi
   1019 	add	r11d,r12d
   1020 	add	edx,r12d
   1021 
   1022 	lea	rbp,[4+rbp]
   1023 	mov	r13d,DWORD[24+rsp]
   1024 	mov	edi,DWORD[12+rsp]
   1025 
   1026 	mov	r12d,r13d
   1027 	ror	r13d,11
   1028 	add	edx,r14d
   1029 	mov	r14d,edi
   1030 	ror	edi,2
   1031 
   1032 	xor	r13d,r12d
   1033 	shr	r12d,3
   1034 	ror	r13d,7
   1035 	xor	edi,r14d
   1036 	shr	r14d,10
   1037 
   1038 	ror	edi,17
   1039 	xor	r12d,r13d
   1040 	xor	edi,r14d
   1041 	add	r12d,DWORD[56+rsp]
   1042 
   1043 	add	r12d,DWORD[20+rsp]
   1044 	mov	r13d,r11d
   1045 	add	r12d,edi
   1046 	mov	r14d,edx
   1047 	ror	r13d,14
   1048 	mov	edi,eax
   1049 
   1050 	xor	r13d,r11d
   1051 	ror	r14d,9
   1052 	xor	edi,ebx
   1053 
   1054 	mov	DWORD[20+rsp],r12d
   1055 	xor	r14d,edx
   1056 	and	edi,r11d
   1057 
   1058 	ror	r13d,5
   1059 	add	r12d,ecx
   1060 	xor	edi,ebx
   1061 
   1062 	ror	r14d,11
   1063 	xor	r13d,r11d
   1064 	add	r12d,edi
   1065 
   1066 	mov	edi,edx
   1067 	add	r12d,DWORD[rbp]
   1068 	xor	r14d,edx
   1069 
   1070 	xor	edi,r8d
   1071 	ror	r13d,6
   1072 	mov	ecx,r8d
   1073 
   1074 	and	r15d,edi
   1075 	ror	r14d,2
   1076 	add	r12d,r13d
   1077 
   1078 	xor	ecx,r15d
   1079 	add	r10d,r12d
   1080 	add	ecx,r12d
   1081 
   1082 	lea	rbp,[4+rbp]
   1083 	mov	r13d,DWORD[28+rsp]
   1084 	mov	r15d,DWORD[16+rsp]
   1085 
   1086 	mov	r12d,r13d
   1087 	ror	r13d,11
   1088 	add	ecx,r14d
   1089 	mov	r14d,r15d
   1090 	ror	r15d,2
   1091 
   1092 	xor	r13d,r12d
   1093 	shr	r12d,3
   1094 	ror	r13d,7
   1095 	xor	r15d,r14d
   1096 	shr	r14d,10
   1097 
   1098 	ror	r15d,17
   1099 	xor	r12d,r13d
   1100 	xor	r15d,r14d
   1101 	add	r12d,DWORD[60+rsp]
   1102 
   1103 	add	r12d,DWORD[24+rsp]
   1104 	mov	r13d,r10d
   1105 	add	r12d,r15d
   1106 	mov	r14d,ecx
   1107 	ror	r13d,14
   1108 	mov	r15d,r11d
   1109 
   1110 	xor	r13d,r10d
   1111 	ror	r14d,9
   1112 	xor	r15d,eax
   1113 
   1114 	mov	DWORD[24+rsp],r12d
   1115 	xor	r14d,ecx
   1116 	and	r15d,r10d
   1117 
   1118 	ror	r13d,5
   1119 	add	r12d,ebx
   1120 	xor	r15d,eax
   1121 
   1122 	ror	r14d,11
   1123 	xor	r13d,r10d
   1124 	add	r12d,r15d
   1125 
   1126 	mov	r15d,ecx
   1127 	add	r12d,DWORD[rbp]
   1128 	xor	r14d,ecx
   1129 
   1130 	xor	r15d,edx
   1131 	ror	r13d,6
   1132 	mov	ebx,edx
   1133 
   1134 	and	edi,r15d
   1135 	ror	r14d,2
   1136 	add	r12d,r13d
   1137 
   1138 	xor	ebx,edi
   1139 	add	r9d,r12d
   1140 	add	ebx,r12d
   1141 
   1142 	lea	rbp,[4+rbp]
   1143 	mov	r13d,DWORD[32+rsp]
   1144 	mov	edi,DWORD[20+rsp]
   1145 
   1146 	mov	r12d,r13d
   1147 	ror	r13d,11
   1148 	add	ebx,r14d
   1149 	mov	r14d,edi
   1150 	ror	edi,2
   1151 
   1152 	xor	r13d,r12d
   1153 	shr	r12d,3
   1154 	ror	r13d,7
   1155 	xor	edi,r14d
   1156 	shr	r14d,10
   1157 
   1158 	ror	edi,17
   1159 	xor	r12d,r13d
   1160 	xor	edi,r14d
   1161 	add	r12d,DWORD[rsp]
   1162 
   1163 	add	r12d,DWORD[28+rsp]
   1164 	mov	r13d,r9d
   1165 	add	r12d,edi
   1166 	mov	r14d,ebx
   1167 	ror	r13d,14
   1168 	mov	edi,r10d
   1169 
   1170 	xor	r13d,r9d
   1171 	ror	r14d,9
   1172 	xor	edi,r11d
   1173 
   1174 	mov	DWORD[28+rsp],r12d
   1175 	xor	r14d,ebx
   1176 	and	edi,r9d
   1177 
   1178 	ror	r13d,5
   1179 	add	r12d,eax
   1180 	xor	edi,r11d
   1181 
   1182 	ror	r14d,11
   1183 	xor	r13d,r9d
   1184 	add	r12d,edi
   1185 
   1186 	mov	edi,ebx
   1187 	add	r12d,DWORD[rbp]
   1188 	xor	r14d,ebx
   1189 
   1190 	xor	edi,ecx
   1191 	ror	r13d,6
   1192 	mov	eax,ecx
   1193 
   1194 	and	r15d,edi
   1195 	ror	r14d,2
   1196 	add	r12d,r13d
   1197 
   1198 	xor	eax,r15d
   1199 	add	r8d,r12d
   1200 	add	eax,r12d
   1201 
   1202 	lea	rbp,[20+rbp]
   1203 	mov	r13d,DWORD[36+rsp]
   1204 	mov	r15d,DWORD[24+rsp]
   1205 
   1206 	mov	r12d,r13d
   1207 	ror	r13d,11
   1208 	add	eax,r14d
   1209 	mov	r14d,r15d
   1210 	ror	r15d,2
   1211 
   1212 	xor	r13d,r12d
   1213 	shr	r12d,3
   1214 	ror	r13d,7
   1215 	xor	r15d,r14d
   1216 	shr	r14d,10
   1217 
   1218 	ror	r15d,17
   1219 	xor	r12d,r13d
   1220 	xor	r15d,r14d
   1221 	add	r12d,DWORD[4+rsp]
   1222 
   1223 	add	r12d,DWORD[32+rsp]
   1224 	mov	r13d,r8d
   1225 	add	r12d,r15d
   1226 	mov	r14d,eax
   1227 	ror	r13d,14
   1228 	mov	r15d,r9d
   1229 
   1230 	xor	r13d,r8d
   1231 	ror	r14d,9
   1232 	xor	r15d,r10d
   1233 
   1234 	mov	DWORD[32+rsp],r12d
   1235 	xor	r14d,eax
   1236 	and	r15d,r8d
   1237 
   1238 	ror	r13d,5
   1239 	add	r12d,r11d
   1240 	xor	r15d,r10d
   1241 
   1242 	ror	r14d,11
   1243 	xor	r13d,r8d
   1244 	add	r12d,r15d
   1245 
   1246 	mov	r15d,eax
   1247 	add	r12d,DWORD[rbp]
   1248 	xor	r14d,eax
   1249 
   1250 	xor	r15d,ebx
   1251 	ror	r13d,6
   1252 	mov	r11d,ebx
   1253 
   1254 	and	edi,r15d
   1255 	ror	r14d,2
   1256 	add	r12d,r13d
   1257 
   1258 	xor	r11d,edi
   1259 	add	edx,r12d
   1260 	add	r11d,r12d
   1261 
   1262 	lea	rbp,[4+rbp]
   1263 	mov	r13d,DWORD[40+rsp]
   1264 	mov	edi,DWORD[28+rsp]
   1265 
   1266 	mov	r12d,r13d
   1267 	ror	r13d,11
   1268 	add	r11d,r14d
   1269 	mov	r14d,edi
   1270 	ror	edi,2
   1271 
   1272 	xor	r13d,r12d
   1273 	shr	r12d,3
   1274 	ror	r13d,7
   1275 	xor	edi,r14d
   1276 	shr	r14d,10
   1277 
   1278 	ror	edi,17
   1279 	xor	r12d,r13d
   1280 	xor	edi,r14d
   1281 	add	r12d,DWORD[8+rsp]
   1282 
   1283 	add	r12d,DWORD[36+rsp]
   1284 	mov	r13d,edx
   1285 	add	r12d,edi
   1286 	mov	r14d,r11d
   1287 	ror	r13d,14
   1288 	mov	edi,r8d
   1289 
   1290 	xor	r13d,edx
   1291 	ror	r14d,9
   1292 	xor	edi,r9d
   1293 
   1294 	mov	DWORD[36+rsp],r12d
   1295 	xor	r14d,r11d
   1296 	and	edi,edx
   1297 
   1298 	ror	r13d,5
   1299 	add	r12d,r10d
   1300 	xor	edi,r9d
   1301 
   1302 	ror	r14d,11
   1303 	xor	r13d,edx
   1304 	add	r12d,edi
   1305 
   1306 	mov	edi,r11d
   1307 	add	r12d,DWORD[rbp]
   1308 	xor	r14d,r11d
   1309 
   1310 	xor	edi,eax
   1311 	ror	r13d,6
   1312 	mov	r10d,eax
   1313 
   1314 	and	r15d,edi
   1315 	ror	r14d,2
   1316 	add	r12d,r13d
   1317 
   1318 	xor	r10d,r15d
   1319 	add	ecx,r12d
   1320 	add	r10d,r12d
   1321 
   1322 	lea	rbp,[4+rbp]
   1323 	mov	r13d,DWORD[44+rsp]
   1324 	mov	r15d,DWORD[32+rsp]
   1325 
   1326 	mov	r12d,r13d
   1327 	ror	r13d,11
   1328 	add	r10d,r14d
   1329 	mov	r14d,r15d
   1330 	ror	r15d,2
   1331 
   1332 	xor	r13d,r12d
   1333 	shr	r12d,3
   1334 	ror	r13d,7
   1335 	xor	r15d,r14d
   1336 	shr	r14d,10
   1337 
   1338 	ror	r15d,17
   1339 	xor	r12d,r13d
   1340 	xor	r15d,r14d
   1341 	add	r12d,DWORD[12+rsp]
   1342 
   1343 	add	r12d,DWORD[40+rsp]
   1344 	mov	r13d,ecx
   1345 	add	r12d,r15d
   1346 	mov	r14d,r10d
   1347 	ror	r13d,14
   1348 	mov	r15d,edx
   1349 
   1350 	xor	r13d,ecx
   1351 	ror	r14d,9
   1352 	xor	r15d,r8d
   1353 
   1354 	mov	DWORD[40+rsp],r12d
   1355 	xor	r14d,r10d
   1356 	and	r15d,ecx
   1357 
   1358 	ror	r13d,5
   1359 	add	r12d,r9d
   1360 	xor	r15d,r8d
   1361 
   1362 	ror	r14d,11
   1363 	xor	r13d,ecx
   1364 	add	r12d,r15d
   1365 
   1366 	mov	r15d,r10d
   1367 	add	r12d,DWORD[rbp]
   1368 	xor	r14d,r10d
   1369 
   1370 	xor	r15d,r11d
   1371 	ror	r13d,6
   1372 	mov	r9d,r11d
   1373 
   1374 	and	edi,r15d
   1375 	ror	r14d,2
   1376 	add	r12d,r13d
   1377 
   1378 	xor	r9d,edi
   1379 	add	ebx,r12d
   1380 	add	r9d,r12d
   1381 
   1382 	lea	rbp,[4+rbp]
   1383 	mov	r13d,DWORD[48+rsp]
   1384 	mov	edi,DWORD[36+rsp]
   1385 
   1386 	mov	r12d,r13d
   1387 	ror	r13d,11
   1388 	add	r9d,r14d
   1389 	mov	r14d,edi
   1390 	ror	edi,2
   1391 
   1392 	xor	r13d,r12d
   1393 	shr	r12d,3
   1394 	ror	r13d,7
   1395 	xor	edi,r14d
   1396 	shr	r14d,10
   1397 
   1398 	ror	edi,17
   1399 	xor	r12d,r13d
   1400 	xor	edi,r14d
   1401 	add	r12d,DWORD[16+rsp]
   1402 
   1403 	add	r12d,DWORD[44+rsp]
   1404 	mov	r13d,ebx
   1405 	add	r12d,edi
   1406 	mov	r14d,r9d
   1407 	ror	r13d,14
   1408 	mov	edi,ecx
   1409 
   1410 	xor	r13d,ebx
   1411 	ror	r14d,9
   1412 	xor	edi,edx
   1413 
   1414 	mov	DWORD[44+rsp],r12d
   1415 	xor	r14d,r9d
   1416 	and	edi,ebx
   1417 
   1418 	ror	r13d,5
   1419 	add	r12d,r8d
   1420 	xor	edi,edx
   1421 
   1422 	ror	r14d,11
   1423 	xor	r13d,ebx
   1424 	add	r12d,edi
   1425 
   1426 	mov	edi,r9d
   1427 	add	r12d,DWORD[rbp]
   1428 	xor	r14d,r9d
   1429 
   1430 	xor	edi,r10d
   1431 	ror	r13d,6
   1432 	mov	r8d,r10d
   1433 
   1434 	and	r15d,edi
   1435 	ror	r14d,2
   1436 	add	r12d,r13d
   1437 
   1438 	xor	r8d,r15d
   1439 	add	eax,r12d
   1440 	add	r8d,r12d
   1441 
   1442 	lea	rbp,[20+rbp]
   1443 	mov	r13d,DWORD[52+rsp]
   1444 	mov	r15d,DWORD[40+rsp]
   1445 
   1446 	mov	r12d,r13d
   1447 	ror	r13d,11
   1448 	add	r8d,r14d
   1449 	mov	r14d,r15d
   1450 	ror	r15d,2
   1451 
   1452 	xor	r13d,r12d
   1453 	shr	r12d,3
   1454 	ror	r13d,7
   1455 	xor	r15d,r14d
   1456 	shr	r14d,10
   1457 
   1458 	ror	r15d,17
   1459 	xor	r12d,r13d
   1460 	xor	r15d,r14d
   1461 	add	r12d,DWORD[20+rsp]
   1462 
   1463 	add	r12d,DWORD[48+rsp]
   1464 	mov	r13d,eax
   1465 	add	r12d,r15d
   1466 	mov	r14d,r8d
   1467 	ror	r13d,14
   1468 	mov	r15d,ebx
   1469 
   1470 	xor	r13d,eax
   1471 	ror	r14d,9
   1472 	xor	r15d,ecx
   1473 
   1474 	mov	DWORD[48+rsp],r12d
   1475 	xor	r14d,r8d
   1476 	and	r15d,eax
   1477 
   1478 	ror	r13d,5
   1479 	add	r12d,edx
   1480 	xor	r15d,ecx
   1481 
   1482 	ror	r14d,11
   1483 	xor	r13d,eax
   1484 	add	r12d,r15d
   1485 
   1486 	mov	r15d,r8d
   1487 	add	r12d,DWORD[rbp]
   1488 	xor	r14d,r8d
   1489 
   1490 	xor	r15d,r9d
   1491 	ror	r13d,6
   1492 	mov	edx,r9d
   1493 
   1494 	and	edi,r15d
   1495 	ror	r14d,2
   1496 	add	r12d,r13d
   1497 
   1498 	xor	edx,edi
   1499 	add	r11d,r12d
   1500 	add	edx,r12d
   1501 
   1502 	lea	rbp,[4+rbp]
   1503 	mov	r13d,DWORD[56+rsp]
   1504 	mov	edi,DWORD[44+rsp]
   1505 
   1506 	mov	r12d,r13d
   1507 	ror	r13d,11
   1508 	add	edx,r14d
   1509 	mov	r14d,edi
   1510 	ror	edi,2
   1511 
   1512 	xor	r13d,r12d
   1513 	shr	r12d,3
   1514 	ror	r13d,7
   1515 	xor	edi,r14d
   1516 	shr	r14d,10
   1517 
   1518 	ror	edi,17
   1519 	xor	r12d,r13d
   1520 	xor	edi,r14d
   1521 	add	r12d,DWORD[24+rsp]
   1522 
   1523 	add	r12d,DWORD[52+rsp]
   1524 	mov	r13d,r11d
   1525 	add	r12d,edi
   1526 	mov	r14d,edx
   1527 	ror	r13d,14
   1528 	mov	edi,eax
   1529 
   1530 	xor	r13d,r11d
   1531 	ror	r14d,9
   1532 	xor	edi,ebx
   1533 
   1534 	mov	DWORD[52+rsp],r12d
   1535 	xor	r14d,edx
   1536 	and	edi,r11d
   1537 
   1538 	ror	r13d,5
   1539 	add	r12d,ecx
   1540 	xor	edi,ebx
   1541 
   1542 	ror	r14d,11
   1543 	xor	r13d,r11d
   1544 	add	r12d,edi
   1545 
   1546 	mov	edi,edx
   1547 	add	r12d,DWORD[rbp]
   1548 	xor	r14d,edx
   1549 
   1550 	xor	edi,r8d
   1551 	ror	r13d,6
   1552 	mov	ecx,r8d
   1553 
   1554 	and	r15d,edi
   1555 	ror	r14d,2
   1556 	add	r12d,r13d
   1557 
   1558 	xor	ecx,r15d
   1559 	add	r10d,r12d
   1560 	add	ecx,r12d
   1561 
   1562 	lea	rbp,[4+rbp]
   1563 	mov	r13d,DWORD[60+rsp]
   1564 	mov	r15d,DWORD[48+rsp]
   1565 
   1566 	mov	r12d,r13d
   1567 	ror	r13d,11
   1568 	add	ecx,r14d
   1569 	mov	r14d,r15d
   1570 	ror	r15d,2
   1571 
   1572 	xor	r13d,r12d
   1573 	shr	r12d,3
   1574 	ror	r13d,7
   1575 	xor	r15d,r14d
   1576 	shr	r14d,10
   1577 
   1578 	ror	r15d,17
   1579 	xor	r12d,r13d
   1580 	xor	r15d,r14d
   1581 	add	r12d,DWORD[28+rsp]
   1582 
   1583 	add	r12d,DWORD[56+rsp]
   1584 	mov	r13d,r10d
   1585 	add	r12d,r15d
   1586 	mov	r14d,ecx
   1587 	ror	r13d,14
   1588 	mov	r15d,r11d
   1589 
   1590 	xor	r13d,r10d
   1591 	ror	r14d,9
   1592 	xor	r15d,eax
   1593 
   1594 	mov	DWORD[56+rsp],r12d
   1595 	xor	r14d,ecx
   1596 	and	r15d,r10d
   1597 
   1598 	ror	r13d,5
   1599 	add	r12d,ebx
   1600 	xor	r15d,eax
   1601 
   1602 	ror	r14d,11
   1603 	xor	r13d,r10d
   1604 	add	r12d,r15d
   1605 
   1606 	mov	r15d,ecx
   1607 	add	r12d,DWORD[rbp]
   1608 	xor	r14d,ecx
   1609 
   1610 	xor	r15d,edx
   1611 	ror	r13d,6
   1612 	mov	ebx,edx
   1613 
   1614 	and	edi,r15d
   1615 	ror	r14d,2
   1616 	add	r12d,r13d
   1617 
   1618 	xor	ebx,edi
   1619 	add	r9d,r12d
   1620 	add	ebx,r12d
   1621 
   1622 	lea	rbp,[4+rbp]
   1623 	mov	r13d,DWORD[rsp]
   1624 	mov	edi,DWORD[52+rsp]
   1625 
   1626 	mov	r12d,r13d
   1627 	ror	r13d,11
   1628 	add	ebx,r14d
   1629 	mov	r14d,edi
   1630 	ror	edi,2
   1631 
   1632 	xor	r13d,r12d
   1633 	shr	r12d,3
   1634 	ror	r13d,7
   1635 	xor	edi,r14d
   1636 	shr	r14d,10
   1637 
   1638 	ror	edi,17
   1639 	xor	r12d,r13d
   1640 	xor	edi,r14d
   1641 	add	r12d,DWORD[32+rsp]
   1642 
   1643 	add	r12d,DWORD[60+rsp]
   1644 	mov	r13d,r9d
   1645 	add	r12d,edi
   1646 	mov	r14d,ebx
   1647 	ror	r13d,14
   1648 	mov	edi,r10d
   1649 
   1650 	xor	r13d,r9d
   1651 	ror	r14d,9
   1652 	xor	edi,r11d
   1653 
   1654 	mov	DWORD[60+rsp],r12d
   1655 	xor	r14d,ebx
   1656 	and	edi,r9d
   1657 
   1658 	ror	r13d,5
   1659 	add	r12d,eax
   1660 	xor	edi,r11d
   1661 
   1662 	ror	r14d,11
   1663 	xor	r13d,r9d
   1664 	add	r12d,edi
   1665 
   1666 	mov	edi,ebx
   1667 	add	r12d,DWORD[rbp]
   1668 	xor	r14d,ebx
   1669 
   1670 	xor	edi,ecx
   1671 	ror	r13d,6
   1672 	mov	eax,ecx
   1673 
   1674 	and	r15d,edi
   1675 	ror	r14d,2
   1676 	add	r12d,r13d
   1677 
   1678 	xor	eax,r15d
   1679 	add	r8d,r12d
   1680 	add	eax,r12d
   1681 
   1682 	lea	rbp,[20+rbp]
   1683 	cmp	BYTE[3+rbp],0
   1684 	jnz	NEAR $L$rounds_16_xx
   1685 
   1686 	mov	rdi,QWORD[((64+0))+rsp]
   1687 	add	eax,r14d
   1688 	lea	rsi,[64+rsi]
   1689 
   1690 	add	eax,DWORD[rdi]
   1691 	add	ebx,DWORD[4+rdi]
   1692 	add	ecx,DWORD[8+rdi]
   1693 	add	edx,DWORD[12+rdi]
   1694 	add	r8d,DWORD[16+rdi]
   1695 	add	r9d,DWORD[20+rdi]
   1696 	add	r10d,DWORD[24+rdi]
   1697 	add	r11d,DWORD[28+rdi]
   1698 
   1699 	cmp	rsi,QWORD[((64+16))+rsp]
   1700 
   1701 	mov	DWORD[rdi],eax
   1702 	mov	DWORD[4+rdi],ebx
   1703 	mov	DWORD[8+rdi],ecx
   1704 	mov	DWORD[12+rdi],edx
   1705 	mov	DWORD[16+rdi],r8d
   1706 	mov	DWORD[20+rdi],r9d
   1707 	mov	DWORD[24+rdi],r10d
   1708 	mov	DWORD[28+rdi],r11d
   1709 	jb	NEAR $L$loop
   1710 
   1711 	mov	rsi,QWORD[((64+24))+rsp]
   1712 	mov	r15,QWORD[rsi]
   1713 	mov	r14,QWORD[8+rsi]
   1714 	mov	r13,QWORD[16+rsi]
   1715 	mov	r12,QWORD[24+rsi]
   1716 	mov	rbp,QWORD[32+rsi]
   1717 	mov	rbx,QWORD[40+rsi]
   1718 	lea	rsp,[48+rsi]
   1719 $L$epilogue:
   1720 	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
   1721 	mov	rsi,QWORD[16+rsp]
   1722 	DB	0F3h,0C3h		;repret
   1723 $L$SEH_end_sha256_block_data_order:
   1724 ALIGN	64
   1725 
   1726 K256:
   1727 	DD	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
   1728 	DD	0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
   1729 	DD	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
   1730 	DD	0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
   1731 	DD	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
   1732 	DD	0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
   1733 	DD	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
   1734 	DD	0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
   1735 	DD	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
   1736 	DD	0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
   1737 	DD	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
   1738 	DD	0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
   1739 	DD	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
   1740 	DD	0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
   1741 	DD	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
   1742 	DD	0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
   1743 	DD	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
   1744 	DD	0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
   1745 	DD	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
   1746 	DD	0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
   1747 	DD	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
   1748 	DD	0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
   1749 	DD	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
   1750 	DD	0xd192e819,0xd6990624,0xf40e3585,0x106aa070
   1751 	DD	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
   1752 	DD	0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
   1753 	DD	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
   1754 	DD	0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
   1755 	DD	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
   1756 	DD	0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
   1757 	DD	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
   1758 	DD	0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
   1759 
   1760 	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
   1761 	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
   1762 	DD	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
   1763 	DD	0x03020100,0x0b0a0908,0xffffffff,0xffffffff
   1764 	DD	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
   1765 	DD	0xffffffff,0xffffffff,0x03020100,0x0b0a0908
   1766 DB	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
   1767 DB	110,115,102,111,114,109,32,102,111,114,32,120,56,54,95,54
   1768 DB	52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121
   1769 DB	32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46
   1770 DB	111,114,103,62,0
   1771 
   1772 ALIGN	64
   1773 sha256_block_data_order_ssse3:
   1774 	mov	QWORD[8+rsp],rdi	;WIN64 prologue
   1775 	mov	QWORD[16+rsp],rsi
   1776 	mov	rax,rsp
   1777 $L$SEH_begin_sha256_block_data_order_ssse3:
   1778 	mov	rdi,rcx
   1779 	mov	rsi,rdx
   1780 	mov	rdx,r8
   1781 
   1782 
   1783 $L$ssse3_shortcut:
   1784 	push	rbx
   1785 	push	rbp
   1786 	push	r12
   1787 	push	r13
   1788 	push	r14
   1789 	push	r15
   1790 	mov	r11,rsp
   1791 	shl	rdx,4
   1792 	sub	rsp,160
   1793 	lea	rdx,[rdx*4+rsi]
   1794 	and	rsp,-64
   1795 	mov	QWORD[((64+0))+rsp],rdi
   1796 	mov	QWORD[((64+8))+rsp],rsi
   1797 	mov	QWORD[((64+16))+rsp],rdx
   1798 	mov	QWORD[((64+24))+rsp],r11
   1799 	movaps	XMMWORD[(64+32)+rsp],xmm6
   1800 	movaps	XMMWORD[(64+48)+rsp],xmm7
   1801 	movaps	XMMWORD[(64+64)+rsp],xmm8
   1802 	movaps	XMMWORD[(64+80)+rsp],xmm9
   1803 $L$prologue_ssse3:
   1804 
   1805 	mov	eax,DWORD[rdi]
   1806 	mov	ebx,DWORD[4+rdi]
   1807 	mov	ecx,DWORD[8+rdi]
   1808 	mov	edx,DWORD[12+rdi]
   1809 	mov	r8d,DWORD[16+rdi]
   1810 	mov	r9d,DWORD[20+rdi]
   1811 	mov	r10d,DWORD[24+rdi]
   1812 	mov	r11d,DWORD[28+rdi]
   1813 
   1814 
   1815 	jmp	NEAR $L$loop_ssse3
   1816 ALIGN	16
   1817 $L$loop_ssse3:
   1818 	movdqa	xmm7,XMMWORD[((K256+512))]
   1819 	movdqu	xmm0,XMMWORD[rsi]
   1820 	movdqu	xmm1,XMMWORD[16+rsi]
   1821 	movdqu	xmm2,XMMWORD[32+rsi]
   1822 DB	102,15,56,0,199
   1823 	movdqu	xmm3,XMMWORD[48+rsi]
   1824 	lea	rbp,[K256]
   1825 DB	102,15,56,0,207
   1826 	movdqa	xmm4,XMMWORD[rbp]
   1827 	movdqa	xmm5,XMMWORD[32+rbp]
   1828 DB	102,15,56,0,215
   1829 	paddd	xmm4,xmm0
   1830 	movdqa	xmm6,XMMWORD[64+rbp]
   1831 DB	102,15,56,0,223
   1832 	movdqa	xmm7,XMMWORD[96+rbp]
   1833 	paddd	xmm5,xmm1
   1834 	paddd	xmm6,xmm2
   1835 	paddd	xmm7,xmm3
   1836 	movdqa	XMMWORD[rsp],xmm4
   1837 	mov	r14d,eax
   1838 	movdqa	XMMWORD[16+rsp],xmm5
   1839 	mov	edi,ebx
   1840 	movdqa	XMMWORD[32+rsp],xmm6
   1841 	xor	edi,ecx
   1842 	movdqa	XMMWORD[48+rsp],xmm7
   1843 	mov	r13d,r8d
   1844 	jmp	NEAR $L$ssse3_00_47
   1845 
   1846 ALIGN	16
   1847 $L$ssse3_00_47:
   1848 	sub	rbp,-128
   1849 	ror	r13d,14
   1850 	movdqa	xmm4,xmm1
   1851 	mov	eax,r14d
   1852 	mov	r12d,r9d
   1853 	movdqa	xmm7,xmm3
   1854 	ror	r14d,9
   1855 	xor	r13d,r8d
   1856 	xor	r12d,r10d
   1857 	ror	r13d,5
   1858 	xor	r14d,eax
   1859 DB	102,15,58,15,224,4
   1860 	and	r12d,r8d
   1861 	xor	r13d,r8d
   1862 DB	102,15,58,15,250,4
   1863 	add	r11d,DWORD[rsp]
   1864 	mov	r15d,eax
   1865 	xor	r12d,r10d
   1866 	ror	r14d,11
   1867 	movdqa	xmm5,xmm4
   1868 	xor	r15d,ebx
   1869 	add	r11d,r12d
   1870 	movdqa	xmm6,xmm4
   1871 	ror	r13d,6
   1872 	and	edi,r15d
   1873 	psrld	xmm4,3
   1874 	xor	r14d,eax
   1875 	add	r11d,r13d
   1876 	xor	edi,ebx
   1877 	paddd	xmm0,xmm7
   1878 	ror	r14d,2
   1879 	add	edx,r11d
   1880 	psrld	xmm6,7
   1881 	add	r11d,edi
   1882 	mov	r13d,edx
   1883 	pshufd	xmm7,xmm3,250
   1884 	add	r14d,r11d
   1885 	ror	r13d,14
   1886 	pslld	xmm5,14
   1887 	mov	r11d,r14d
   1888 	mov	r12d,r8d
   1889 	pxor	xmm4,xmm6
   1890 	ror	r14d,9
   1891 	xor	r13d,edx
   1892 	xor	r12d,r9d
   1893 	ror	r13d,5
   1894 	psrld	xmm6,11
   1895 	xor	r14d,r11d
   1896 	pxor	xmm4,xmm5
   1897 	and	r12d,edx
   1898 	xor	r13d,edx
   1899 	pslld	xmm5,11
   1900 	add	r10d,DWORD[4+rsp]
   1901 	mov	edi,r11d
   1902 	pxor	xmm4,xmm6
   1903 	xor	r12d,r9d
   1904 	ror	r14d,11
   1905 	movdqa	xmm6,xmm7
   1906 	xor	edi,eax
   1907 	add	r10d,r12d
   1908 	pxor	xmm4,xmm5
   1909 	ror	r13d,6
   1910 	and	r15d,edi
   1911 	xor	r14d,r11d
   1912 	psrld	xmm7,10
   1913 	add	r10d,r13d
   1914 	xor	r15d,eax
   1915 	paddd	xmm0,xmm4
   1916 	ror	r14d,2
   1917 	add	ecx,r10d
   1918 	psrlq	xmm6,17
   1919 	add	r10d,r15d
   1920 	mov	r13d,ecx
   1921 	add	r14d,r10d
   1922 	pxor	xmm7,xmm6
   1923 	ror	r13d,14
   1924 	mov	r10d,r14d
   1925 	mov	r12d,edx
   1926 	ror	r14d,9
   1927 	psrlq	xmm6,2
   1928 	xor	r13d,ecx
   1929 	xor	r12d,r8d
   1930 	pxor	xmm7,xmm6
   1931 	ror	r13d,5
   1932 	xor	r14d,r10d
   1933 	and	r12d,ecx
   1934 	pshufd	xmm7,xmm7,128
   1935 	xor	r13d,ecx
   1936 	add	r9d,DWORD[8+rsp]
   1937 	mov	r15d,r10d
   1938 	psrldq	xmm7,8
   1939 	xor	r12d,r8d
   1940 	ror	r14d,11
   1941 	xor	r15d,r11d
   1942 	add	r9d,r12d
   1943 	ror	r13d,6
   1944 	paddd	xmm0,xmm7
   1945 	and	edi,r15d
   1946 	xor	r14d,r10d
   1947 	add	r9d,r13d
   1948 	pshufd	xmm7,xmm0,80
   1949 	xor	edi,r11d
   1950 	ror	r14d,2
   1951 	add	ebx,r9d
   1952 	movdqa	xmm6,xmm7
   1953 	add	r9d,edi
   1954 	mov	r13d,ebx
   1955 	psrld	xmm7,10
   1956 	add	r14d,r9d
   1957 	ror	r13d,14
   1958 	psrlq	xmm6,17
   1959 	mov	r9d,r14d
   1960 	mov	r12d,ecx
   1961 	pxor	xmm7,xmm6
   1962 	ror	r14d,9
   1963 	xor	r13d,ebx
   1964 	xor	r12d,edx
   1965 	ror	r13d,5
   1966 	xor	r14d,r9d
   1967 	psrlq	xmm6,2
   1968 	and	r12d,ebx
   1969 	xor	r13d,ebx
   1970 	add	r8d,DWORD[12+rsp]
   1971 	pxor	xmm7,xmm6
   1972 	mov	edi,r9d
   1973 	xor	r12d,edx
   1974 	ror	r14d,11
   1975 	pshufd	xmm7,xmm7,8
   1976 	xor	edi,r10d
   1977 	add	r8d,r12d
   1978 	movdqa	xmm6,XMMWORD[rbp]
   1979 	ror	r13d,6
   1980 	and	r15d,edi
   1981 	pslldq	xmm7,8
   1982 	xor	r14d,r9d
   1983 	add	r8d,r13d
   1984 	xor	r15d,r10d
   1985 	paddd	xmm0,xmm7
   1986 	ror	r14d,2
   1987 	add	eax,r8d
   1988 	add	r8d,r15d
   1989 	paddd	xmm6,xmm0
   1990 	mov	r13d,eax
   1991 	add	r14d,r8d
   1992 	movdqa	XMMWORD[rsp],xmm6
   1993 	ror	r13d,14
   1994 	movdqa	xmm4,xmm2
   1995 	mov	r8d,r14d
   1996 	mov	r12d,ebx
   1997 	movdqa	xmm7,xmm0
   1998 	ror	r14d,9
   1999 	xor	r13d,eax
   2000 	xor	r12d,ecx
   2001 	ror	r13d,5
   2002 	xor	r14d,r8d
   2003 DB	102,15,58,15,225,4
   2004 	and	r12d,eax
   2005 	xor	r13d,eax
   2006 DB	102,15,58,15,251,4
   2007 	add	edx,DWORD[16+rsp]
   2008 	mov	r15d,r8d
   2009 	xor	r12d,ecx
   2010 	ror	r14d,11
   2011 	movdqa	xmm5,xmm4
   2012 	xor	r15d,r9d
   2013 	add	edx,r12d
   2014 	movdqa	xmm6,xmm4
   2015 	ror	r13d,6
   2016 	and	edi,r15d
   2017 	psrld	xmm4,3
   2018 	xor	r14d,r8d
   2019 	add	edx,r13d
   2020 	xor	edi,r9d
   2021 	paddd	xmm1,xmm7
   2022 	ror	r14d,2
   2023 	add	r11d,edx
   2024 	psrld	xmm6,7
   2025 	add	edx,edi
   2026 	mov	r13d,r11d
   2027 	pshufd	xmm7,xmm0,250
   2028 	add	r14d,edx
   2029 	ror	r13d,14
   2030 	pslld	xmm5,14
   2031 	mov	edx,r14d
   2032 	mov	r12d,eax
   2033 	pxor	xmm4,xmm6
   2034 	ror	r14d,9
   2035 	xor	r13d,r11d
   2036 	xor	r12d,ebx
   2037 	ror	r13d,5
   2038 	psrld	xmm6,11
   2039 	xor	r14d,edx
   2040 	pxor	xmm4,xmm5
   2041 	and	r12d,r11d
   2042 	xor	r13d,r11d
   2043 	pslld	xmm5,11
   2044 	add	ecx,DWORD[20+rsp]
   2045 	mov	edi,edx
   2046 	pxor	xmm4,xmm6
   2047 	xor	r12d,ebx
   2048 	ror	r14d,11
   2049 	movdqa	xmm6,xmm7
   2050 	xor	edi,r8d
   2051 	add	ecx,r12d
   2052 	pxor	xmm4,xmm5
   2053 	ror	r13d,6
   2054 	and	r15d,edi
   2055 	xor	r14d,edx
   2056 	psrld	xmm7,10
   2057 	add	ecx,r13d
   2058 	xor	r15d,r8d
   2059 	paddd	xmm1,xmm4
   2060 	ror	r14d,2
   2061 	add	r10d,ecx
   2062 	psrlq	xmm6,17
   2063 	add	ecx,r15d
   2064 	mov	r13d,r10d
   2065 	add	r14d,ecx
   2066 	pxor	xmm7,xmm6
   2067 	ror	r13d,14
   2068 	mov	ecx,r14d
   2069 	mov	r12d,r11d
   2070 	ror	r14d,9
   2071 	psrlq	xmm6,2
   2072 	xor	r13d,r10d
   2073 	xor	r12d,eax
   2074 	pxor	xmm7,xmm6
   2075 	ror	r13d,5
   2076 	xor	r14d,ecx
   2077 	and	r12d,r10d
   2078 	pshufd	xmm7,xmm7,128
   2079 	xor	r13d,r10d
   2080 	add	ebx,DWORD[24+rsp]
   2081 	mov	r15d,ecx
   2082 	psrldq	xmm7,8
   2083 	xor	r12d,eax
   2084 	ror	r14d,11
   2085 	xor	r15d,edx
   2086 	add	ebx,r12d
   2087 	ror	r13d,6
   2088 	paddd	xmm1,xmm7
   2089 	and	edi,r15d
   2090 	xor	r14d,ecx
   2091 	add	ebx,r13d
   2092 	pshufd	xmm7,xmm1,80
   2093 	xor	edi,edx
   2094 	ror	r14d,2
   2095 	add	r9d,ebx
   2096 	movdqa	xmm6,xmm7
   2097 	add	ebx,edi
   2098 	mov	r13d,r9d
   2099 	psrld	xmm7,10
   2100 	add	r14d,ebx
   2101 	ror	r13d,14
   2102 	psrlq	xmm6,17
   2103 	mov	ebx,r14d
   2104 	mov	r12d,r10d
   2105 	pxor	xmm7,xmm6
   2106 	ror	r14d,9
   2107 	xor	r13d,r9d
   2108 	xor	r12d,r11d
   2109 	ror	r13d,5
   2110 	xor	r14d,ebx
   2111 	psrlq	xmm6,2
   2112 	and	r12d,r9d
   2113 	xor	r13d,r9d
   2114 	add	eax,DWORD[28+rsp]
   2115 	pxor	xmm7,xmm6
   2116 	mov	edi,ebx
   2117 	xor	r12d,r11d
   2118 	ror	r14d,11
   2119 	pshufd	xmm7,xmm7,8
   2120 	xor	edi,ecx
   2121 	add	eax,r12d
   2122 	movdqa	xmm6,XMMWORD[32+rbp]
   2123 	ror	r13d,6
   2124 	and	r15d,edi
   2125 	pslldq	xmm7,8
   2126 	xor	r14d,ebx
   2127 	add	eax,r13d
   2128 	xor	r15d,ecx
   2129 	paddd	xmm1,xmm7
   2130 	ror	r14d,2
   2131 	add	r8d,eax
   2132 	add	eax,r15d
   2133 	paddd	xmm6,xmm1
   2134 	mov	r13d,r8d
   2135 	add	r14d,eax
   2136 	movdqa	XMMWORD[16+rsp],xmm6
   2137 	ror	r13d,14
   2138 	movdqa	xmm4,xmm3
   2139 	mov	eax,r14d
   2140 	mov	r12d,r9d
   2141 	movdqa	xmm7,xmm1
   2142 	ror	r14d,9
   2143 	xor	r13d,r8d
   2144 	xor	r12d,r10d
   2145 	ror	r13d,5
   2146 	xor	r14d,eax
   2147 DB	102,15,58,15,226,4
   2148 	and	r12d,r8d
   2149 	xor	r13d,r8d
   2150 DB	102,15,58,15,248,4
   2151 	add	r11d,DWORD[32+rsp]
   2152 	mov	r15d,eax
   2153 	xor	r12d,r10d
   2154 	ror	r14d,11
   2155 	movdqa	xmm5,xmm4
   2156 	xor	r15d,ebx
   2157 	add	r11d,r12d
   2158 	movdqa	xmm6,xmm4
   2159 	ror	r13d,6
   2160 	and	edi,r15d
   2161 	psrld	xmm4,3
   2162 	xor	r14d,eax
   2163 	add	r11d,r13d
   2164 	xor	edi,ebx
   2165 	paddd	xmm2,xmm7
   2166 	ror	r14d,2
   2167 	add	edx,r11d
   2168 	psrld	xmm6,7
   2169 	add	r11d,edi
   2170 	mov	r13d,edx
   2171 	pshufd	xmm7,xmm1,250
   2172 	add	r14d,r11d
   2173 	ror	r13d,14
   2174 	pslld	xmm5,14
   2175 	mov	r11d,r14d
   2176 	mov	r12d,r8d
   2177 	pxor	xmm4,xmm6
   2178 	ror	r14d,9
   2179 	xor	r13d,edx
   2180 	xor	r12d,r9d
   2181 	ror	r13d,5
   2182 	psrld	xmm6,11
   2183 	xor	r14d,r11d
   2184 	pxor	xmm4,xmm5
   2185 	and	r12d,edx
   2186 	xor	r13d,edx
   2187 	pslld	xmm5,11
   2188 	add	r10d,DWORD[36+rsp]
   2189 	mov	edi,r11d
   2190 	pxor	xmm4,xmm6
   2191 	xor	r12d,r9d
   2192 	ror	r14d,11
   2193 	movdqa	xmm6,xmm7
   2194 	xor	edi,eax
   2195 	add	r10d,r12d
   2196 	pxor	xmm4,xmm5
   2197 	ror	r13d,6
   2198 	and	r15d,edi
   2199 	xor	r14d,r11d
   2200 	psrld	xmm7,10
   2201 	add	r10d,r13d
   2202 	xor	r15d,eax
   2203 	paddd	xmm2,xmm4
   2204 	ror	r14d,2
   2205 	add	ecx,r10d
   2206 	psrlq	xmm6,17
   2207 	add	r10d,r15d
   2208 	mov	r13d,ecx
   2209 	add	r14d,r10d
   2210 	pxor	xmm7,xmm6
   2211 	ror	r13d,14
   2212 	mov	r10d,r14d
   2213 	mov	r12d,edx
   2214 	ror	r14d,9
   2215 	psrlq	xmm6,2
   2216 	xor	r13d,ecx
   2217 	xor	r12d,r8d
   2218 	pxor	xmm7,xmm6
   2219 	ror	r13d,5
   2220 	xor	r14d,r10d
   2221 	and	r12d,ecx
   2222 	pshufd	xmm7,xmm7,128
   2223 	xor	r13d,ecx
   2224 	add	r9d,DWORD[40+rsp]
   2225 	mov	r15d,r10d
   2226 	psrldq	xmm7,8
   2227 	xor	r12d,r8d
   2228 	ror	r14d,11
   2229 	xor	r15d,r11d
   2230 	add	r9d,r12d
   2231 	ror	r13d,6
   2232 	paddd	xmm2,xmm7
   2233 	and	edi,r15d
   2234 	xor	r14d,r10d
   2235 	add	r9d,r13d
   2236 	pshufd	xmm7,xmm2,80
   2237 	xor	edi,r11d
   2238 	ror	r14d,2
   2239 	add	ebx,r9d
   2240 	movdqa	xmm6,xmm7
   2241 	add	r9d,edi
   2242 	mov	r13d,ebx
   2243 	psrld	xmm7,10
   2244 	add	r14d,r9d
   2245 	ror	r13d,14
   2246 	psrlq	xmm6,17
   2247 	mov	r9d,r14d
   2248 	mov	r12d,ecx
   2249 	pxor	xmm7,xmm6
   2250 	ror	r14d,9
   2251 	xor	r13d,ebx
   2252 	xor	r12d,edx
   2253 	ror	r13d,5
   2254 	xor	r14d,r9d
   2255 	psrlq	xmm6,2
   2256 	and	r12d,ebx
   2257 	xor	r13d,ebx
   2258 	add	r8d,DWORD[44+rsp]
   2259 	pxor	xmm7,xmm6
   2260 	mov	edi,r9d
   2261 	xor	r12d,edx
   2262 	ror	r14d,11
   2263 	pshufd	xmm7,xmm7,8
   2264 	xor	edi,r10d
   2265 	add	r8d,r12d
   2266 	movdqa	xmm6,XMMWORD[64+rbp]
   2267 	ror	r13d,6
   2268 	and	r15d,edi
   2269 	pslldq	xmm7,8
   2270 	xor	r14d,r9d
   2271 	add	r8d,r13d
   2272 	xor	r15d,r10d
   2273 	paddd	xmm2,xmm7
   2274 	ror	r14d,2
   2275 	add	eax,r8d
   2276 	add	r8d,r15d
   2277 	paddd	xmm6,xmm2
   2278 	mov	r13d,eax
   2279 	add	r14d,r8d
   2280 	movdqa	XMMWORD[32+rsp],xmm6
   2281 	ror	r13d,14
   2282 	movdqa	xmm4,xmm0
   2283 	mov	r8d,r14d
   2284 	mov	r12d,ebx
   2285 	movdqa	xmm7,xmm2
   2286 	ror	r14d,9
   2287 	xor	r13d,eax
   2288 	xor	r12d,ecx
   2289 	ror	r13d,5
   2290 	xor	r14d,r8d
   2291 DB	102,15,58,15,227,4
   2292 	and	r12d,eax
   2293 	xor	r13d,eax
   2294 DB	102,15,58,15,249,4
   2295 	add	edx,DWORD[48+rsp]
   2296 	mov	r15d,r8d
   2297 	xor	r12d,ecx
   2298 	ror	r14d,11
   2299 	movdqa	xmm5,xmm4
   2300 	xor	r15d,r9d
   2301 	add	edx,r12d
   2302 	movdqa	xmm6,xmm4
   2303 	ror	r13d,6
   2304 	and	edi,r15d
   2305 	psrld	xmm4,3
   2306 	xor	r14d,r8d
   2307 	add	edx,r13d
   2308 	xor	edi,r9d
   2309 	paddd	xmm3,xmm7
   2310 	ror	r14d,2
   2311 	add	r11d,edx
   2312 	psrld	xmm6,7
   2313 	add	edx,edi
   2314 	mov	r13d,r11d
   2315 	pshufd	xmm7,xmm2,250
   2316 	add	r14d,edx
   2317 	ror	r13d,14
   2318 	pslld	xmm5,14
   2319 	mov	edx,r14d
   2320 	mov	r12d,eax
   2321 	pxor	xmm4,xmm6
   2322 	ror	r14d,9
   2323 	xor	r13d,r11d
   2324 	xor	r12d,ebx
   2325 	ror	r13d,5
   2326 	psrld	xmm6,11
   2327 	xor	r14d,edx
   2328 	pxor	xmm4,xmm5
   2329 	and	r12d,r11d
   2330 	xor	r13d,r11d
   2331 	pslld	xmm5,11
   2332 	add	ecx,DWORD[52+rsp]
   2333 	mov	edi,edx
   2334 	pxor	xmm4,xmm6
   2335 	xor	r12d,ebx
   2336 	ror	r14d,11
   2337 	movdqa	xmm6,xmm7
   2338 	xor	edi,r8d
   2339 	add	ecx,r12d
   2340 	pxor	xmm4,xmm5
   2341 	ror	r13d,6
   2342 	and	r15d,edi
   2343 	xor	r14d,edx
   2344 	psrld	xmm7,10
   2345 	add	ecx,r13d
   2346 	xor	r15d,r8d
   2347 	paddd	xmm3,xmm4
   2348 	ror	r14d,2
   2349 	add	r10d,ecx
   2350 	psrlq	xmm6,17
   2351 	add	ecx,r15d
   2352 	mov	r13d,r10d
   2353 	add	r14d,ecx
   2354 	pxor	xmm7,xmm6
   2355 	ror	r13d,14
   2356 	mov	ecx,r14d
   2357 	mov	r12d,r11d
   2358 	ror	r14d,9
   2359 	psrlq	xmm6,2
   2360 	xor	r13d,r10d
   2361 	xor	r12d,eax
   2362 	pxor	xmm7,xmm6
   2363 	ror	r13d,5
   2364 	xor	r14d,ecx
   2365 	and	r12d,r10d
   2366 	pshufd	xmm7,xmm7,128
   2367 	xor	r13d,r10d
   2368 	add	ebx,DWORD[56+rsp]
   2369 	mov	r15d,ecx
   2370 	psrldq	xmm7,8
   2371 	xor	r12d,eax
   2372 	ror	r14d,11
   2373 	xor	r15d,edx
   2374 	add	ebx,r12d
   2375 	ror	r13d,6
   2376 	paddd	xmm3,xmm7
   2377 	and	edi,r15d
   2378 	xor	r14d,ecx
   2379 	add	ebx,r13d
   2380 	pshufd	xmm7,xmm3,80
   2381 	xor	edi,edx
   2382 	ror	r14d,2
   2383 	add	r9d,ebx
   2384 	movdqa	xmm6,xmm7
   2385 	add	ebx,edi
   2386 	mov	r13d,r9d
   2387 	psrld	xmm7,10
   2388 	add	r14d,ebx
   2389 	ror	r13d,14
   2390 	psrlq	xmm6,17
   2391 	mov	ebx,r14d
   2392 	mov	r12d,r10d
   2393 	pxor	xmm7,xmm6
   2394 	ror	r14d,9
   2395 	xor	r13d,r9d
   2396 	xor	r12d,r11d
   2397 	ror	r13d,5
   2398 	xor	r14d,ebx
   2399 	psrlq	xmm6,2
   2400 	and	r12d,r9d
   2401 	xor	r13d,r9d
   2402 	add	eax,DWORD[60+rsp]
   2403 	pxor	xmm7,xmm6
   2404 	mov	edi,ebx
   2405 	xor	r12d,r11d
   2406 	ror	r14d,11
   2407 	pshufd	xmm7,xmm7,8
   2408 	xor	edi,ecx
   2409 	add	eax,r12d
   2410 	movdqa	xmm6,XMMWORD[96+rbp]
   2411 	ror	r13d,6
   2412 	and	r15d,edi
   2413 	pslldq	xmm7,8
   2414 	xor	r14d,ebx
   2415 	add	eax,r13d
   2416 	xor	r15d,ecx
   2417 	paddd	xmm3,xmm7
   2418 	ror	r14d,2
   2419 	add	r8d,eax
   2420 	add	eax,r15d
   2421 	paddd	xmm6,xmm3
   2422 	mov	r13d,r8d
   2423 	add	r14d,eax
   2424 	movdqa	XMMWORD[48+rsp],xmm6
   2425 	cmp	BYTE[131+rbp],0
   2426 	jne	NEAR $L$ssse3_00_47
   2427 	ror	r13d,14
   2428 	mov	eax,r14d
   2429 	mov	r12d,r9d
   2430 	ror	r14d,9
   2431 	xor	r13d,r8d
   2432 	xor	r12d,r10d
   2433 	ror	r13d,5
   2434 	xor	r14d,eax
   2435 	and	r12d,r8d
   2436 	xor	r13d,r8d
   2437 	add	r11d,DWORD[rsp]
   2438 	mov	r15d,eax
   2439 	xor	r12d,r10d
   2440 	ror	r14d,11
   2441 	xor	r15d,ebx
   2442 	add	r11d,r12d
   2443 	ror	r13d,6
   2444 	and	edi,r15d
   2445 	xor	r14d,eax
   2446 	add	r11d,r13d
   2447 	xor	edi,ebx
   2448 	ror	r14d,2
   2449 	add	edx,r11d
   2450 	add	r11d,edi
   2451 	mov	r13d,edx
   2452 	add	r14d,r11d
   2453 	ror	r13d,14
   2454 	mov	r11d,r14d
   2455 	mov	r12d,r8d
   2456 	ror	r14d,9
   2457 	xor	r13d,edx
   2458 	xor	r12d,r9d
   2459 	ror	r13d,5
   2460 	xor	r14d,r11d
   2461 	and	r12d,edx
   2462 	xor	r13d,edx
   2463 	add	r10d,DWORD[4+rsp]
   2464 	mov	edi,r11d
   2465 	xor	r12d,r9d
   2466 	ror	r14d,11
   2467 	xor	edi,eax
   2468 	add	r10d,r12d
   2469 	ror	r13d,6
   2470 	and	r15d,edi
   2471 	xor	r14d,r11d
   2472 	add	r10d,r13d
   2473 	xor	r15d,eax
   2474 	ror	r14d,2
   2475 	add	ecx,r10d
   2476 	add	r10d,r15d
   2477 	mov	r13d,ecx
   2478 	add	r14d,r10d
   2479 	ror	r13d,14
   2480 	mov	r10d,r14d
   2481 	mov	r12d,edx
   2482 	ror	r14d,9
   2483 	xor	r13d,ecx
   2484 	xor	r12d,r8d
   2485 	ror	r13d,5
   2486 	xor	r14d,r10d
   2487 	and	r12d,ecx
   2488 	xor	r13d,ecx
   2489 	add	r9d,DWORD[8+rsp]
   2490 	mov	r15d,r10d
   2491 	xor	r12d,r8d
   2492 	ror	r14d,11
   2493 	xor	r15d,r11d
   2494 	add	r9d,r12d
   2495 	ror	r13d,6
   2496 	and	edi,r15d
   2497 	xor	r14d,r10d
   2498 	add	r9d,r13d
   2499 	xor	edi,r11d
   2500 	ror	r14d,2
   2501 	add	ebx,r9d
   2502 	add	r9d,edi
   2503 	mov	r13d,ebx
   2504 	add	r14d,r9d
   2505 	ror	r13d,14
   2506 	mov	r9d,r14d
   2507 	mov	r12d,ecx
   2508 	ror	r14d,9
   2509 	xor	r13d,ebx
   2510 	xor	r12d,edx
   2511 	ror	r13d,5
   2512 	xor	r14d,r9d
   2513 	and	r12d,ebx
   2514 	xor	r13d,ebx
   2515 	add	r8d,DWORD[12+rsp]
   2516 	mov	edi,r9d
   2517 	xor	r12d,edx
   2518 	ror	r14d,11
   2519 	xor	edi,r10d
   2520 	add	r8d,r12d
   2521 	ror	r13d,6
   2522 	and	r15d,edi
   2523 	xor	r14d,r9d
   2524 	add	r8d,r13d
   2525 	xor	r15d,r10d
   2526 	ror	r14d,2
   2527 	add	eax,r8d
   2528 	add	r8d,r15d
   2529 	mov	r13d,eax
   2530 	add	r14d,r8d
   2531 	ror	r13d,14
   2532 	mov	r8d,r14d
   2533 	mov	r12d,ebx
   2534 	ror	r14d,9
   2535 	xor	r13d,eax
   2536 	xor	r12d,ecx
   2537 	ror	r13d,5
   2538 	xor	r14d,r8d
   2539 	and	r12d,eax
   2540 	xor	r13d,eax
   2541 	add	edx,DWORD[16+rsp]
   2542 	mov	r15d,r8d
   2543 	xor	r12d,ecx
   2544 	ror	r14d,11
   2545 	xor	r15d,r9d
   2546 	add	edx,r12d
   2547 	ror	r13d,6
   2548 	and	edi,r15d
   2549 	xor	r14d,r8d
   2550 	add	edx,r13d
   2551 	xor	edi,r9d
   2552 	ror	r14d,2
   2553 	add	r11d,edx
   2554 	add	edx,edi
   2555 	mov	r13d,r11d
   2556 	add	r14d,edx
   2557 	ror	r13d,14
   2558 	mov	edx,r14d
   2559 	mov	r12d,eax
   2560 	ror	r14d,9
   2561 	xor	r13d,r11d
   2562 	xor	r12d,ebx
   2563 	ror	r13d,5
   2564 	xor	r14d,edx
   2565 	and	r12d,r11d
   2566 	xor	r13d,r11d
   2567 	add	ecx,DWORD[20+rsp]
   2568 	mov	edi,edx
   2569 	xor	r12d,ebx
   2570 	ror	r14d,11
   2571 	xor	edi,r8d
   2572 	add	ecx,r12d
   2573 	ror	r13d,6
   2574 	and	r15d,edi
   2575 	xor	r14d,edx
   2576 	add	ecx,r13d
   2577 	xor	r15d,r8d
   2578 	ror	r14d,2
   2579 	add	r10d,ecx
   2580 	add	ecx,r15d
   2581 	mov	r13d,r10d
   2582 	add	r14d,ecx
   2583 	ror	r13d,14
   2584 	mov	ecx,r14d
   2585 	mov	r12d,r11d
   2586 	ror	r14d,9
   2587 	xor	r13d,r10d
   2588 	xor	r12d,eax
   2589 	ror	r13d,5
   2590 	xor	r14d,ecx
   2591 	and	r12d,r10d
   2592 	xor	r13d,r10d
   2593 	add	ebx,DWORD[24+rsp]
   2594 	mov	r15d,ecx
   2595 	xor	r12d,eax
   2596 	ror	r14d,11
   2597 	xor	r15d,edx
   2598 	add	ebx,r12d
   2599 	ror	r13d,6
   2600 	and	edi,r15d
   2601 	xor	r14d,ecx
   2602 	add	ebx,r13d
   2603 	xor	edi,edx
   2604 	ror	r14d,2
   2605 	add	r9d,ebx
   2606 	add	ebx,edi
   2607 	mov	r13d,r9d
   2608 	add	r14d,ebx
   2609 	ror	r13d,14
   2610 	mov	ebx,r14d
   2611 	mov	r12d,r10d
   2612 	ror	r14d,9
   2613 	xor	r13d,r9d
   2614 	xor	r12d,r11d
   2615 	ror	r13d,5
   2616 	xor	r14d,ebx
   2617 	and	r12d,r9d
   2618 	xor	r13d,r9d
   2619 	add	eax,DWORD[28+rsp]
   2620 	mov	edi,ebx
   2621 	xor	r12d,r11d
   2622 	ror	r14d,11
   2623 	xor	edi,ecx
   2624 	add	eax,r12d
   2625 	ror	r13d,6
   2626 	and	r15d,edi
   2627 	xor	r14d,ebx
   2628 	add	eax,r13d
   2629 	xor	r15d,ecx
   2630 	ror	r14d,2
   2631 	add	r8d,eax
   2632 	add	eax,r15d
   2633 	mov	r13d,r8d
   2634 	add	r14d,eax
   2635 	ror	r13d,14
   2636 	mov	eax,r14d
   2637 	mov	r12d,r9d
   2638 	ror	r14d,9
   2639 	xor	r13d,r8d
   2640 	xor	r12d,r10d
   2641 	ror	r13d,5
   2642 	xor	r14d,eax
   2643 	and	r12d,r8d
   2644 	xor	r13d,r8d
   2645 	add	r11d,DWORD[32+rsp]
   2646 	mov	r15d,eax
   2647 	xor	r12d,r10d
   2648 	ror	r14d,11
   2649 	xor	r15d,ebx
   2650 	add	r11d,r12d
   2651 	ror	r13d,6
   2652 	and	edi,r15d
   2653 	xor	r14d,eax
   2654 	add	r11d,r13d
   2655 	xor	edi,ebx
   2656 	ror	r14d,2
   2657 	add	edx,r11d
   2658 	add	r11d,edi
   2659 	mov	r13d,edx
   2660 	add	r14d,r11d
   2661 	ror	r13d,14
   2662 	mov	r11d,r14d
   2663 	mov	r12d,r8d
   2664 	ror	r14d,9
   2665 	xor	r13d,edx
   2666 	xor	r12d,r9d
   2667 	ror	r13d,5
   2668 	xor	r14d,r11d
   2669 	and	r12d,edx
   2670 	xor	r13d,edx
   2671 	add	r10d,DWORD[36+rsp]
   2672 	mov	edi,r11d
   2673 	xor	r12d,r9d
   2674 	ror	r14d,11
   2675 	xor	edi,eax
   2676 	add	r10d,r12d
   2677 	ror	r13d,6
   2678 	and	r15d,edi
   2679 	xor	r14d,r11d
   2680 	add	r10d,r13d
   2681 	xor	r15d,eax
   2682 	ror	r14d,2
   2683 	add	ecx,r10d
   2684 	add	r10d,r15d
   2685 	mov	r13d,ecx
   2686 	add	r14d,r10d
   2687 	ror	r13d,14
   2688 	mov	r10d,r14d
   2689 	mov	r12d,edx
   2690 	ror	r14d,9
   2691 	xor	r13d,ecx
   2692 	xor	r12d,r8d
   2693 	ror	r13d,5
   2694 	xor	r14d,r10d
   2695 	and	r12d,ecx
   2696 	xor	r13d,ecx
   2697 	add	r9d,DWORD[40+rsp]
   2698 	mov	r15d,r10d
   2699 	xor	r12d,r8d
   2700 	ror	r14d,11
   2701 	xor	r15d,r11d
   2702 	add	r9d,r12d
   2703 	ror	r13d,6
   2704 	and	edi,r15d
   2705 	xor	r14d,r10d
   2706 	add	r9d,r13d
   2707 	xor	edi,r11d
   2708 	ror	r14d,2
   2709 	add	ebx,r9d
   2710 	add	r9d,edi
   2711 	mov	r13d,ebx
   2712 	add	r14d,r9d
   2713 	ror	r13d,14
   2714 	mov	r9d,r14d
   2715 	mov	r12d,ecx
   2716 	ror	r14d,9
   2717 	xor	r13d,ebx
   2718 	xor	r12d,edx
   2719 	ror	r13d,5
   2720 	xor	r14d,r9d
   2721 	and	r12d,ebx
   2722 	xor	r13d,ebx
   2723 	add	r8d,DWORD[44+rsp]
   2724 	mov	edi,r9d
   2725 	xor	r12d,edx
   2726 	ror	r14d,11
   2727 	xor	edi,r10d
   2728 	add	r8d,r12d
   2729 	ror	r13d,6
   2730 	and	r15d,edi
   2731 	xor	r14d,r9d
   2732 	add	r8d,r13d
   2733 	xor	r15d,r10d
   2734 	ror	r14d,2
   2735 	add	eax,r8d
   2736 	add	r8d,r15d
   2737 	mov	r13d,eax
   2738 	add	r14d,r8d
   2739 	ror	r13d,14
   2740 	mov	r8d,r14d
   2741 	mov	r12d,ebx
   2742 	ror	r14d,9
   2743 	xor	r13d,eax
   2744 	xor	r12d,ecx
   2745 	ror	r13d,5
   2746 	xor	r14d,r8d
   2747 	and	r12d,eax
   2748 	xor	r13d,eax
   2749 	add	edx,DWORD[48+rsp]
   2750 	mov	r15d,r8d
   2751 	xor	r12d,ecx
   2752 	ror	r14d,11
   2753 	xor	r15d,r9d
   2754 	add	edx,r12d
   2755 	ror	r13d,6
   2756 	and	edi,r15d
   2757 	xor	r14d,r8d
   2758 	add	edx,r13d
   2759 	xor	edi,r9d
   2760 	ror	r14d,2
   2761 	add	r11d,edx
   2762 	add	edx,edi
   2763 	mov	r13d,r11d
   2764 	add	r14d,edx
   2765 	ror	r13d,14
   2766 	mov	edx,r14d
   2767 	mov	r12d,eax
   2768 	ror	r14d,9
   2769 	xor	r13d,r11d
   2770 	xor	r12d,ebx
   2771 	ror	r13d,5
   2772 	xor	r14d,edx
   2773 	and	r12d,r11d
   2774 	xor	r13d,r11d
   2775 	add	ecx,DWORD[52+rsp]
   2776 	mov	edi,edx
   2777 	xor	r12d,ebx
   2778 	ror	r14d,11
   2779 	xor	edi,r8d
   2780 	add	ecx,r12d
   2781 	ror	r13d,6
   2782 	and	r15d,edi
   2783 	xor	r14d,edx
   2784 	add	ecx,r13d
   2785 	xor	r15d,r8d
   2786 	ror	r14d,2
   2787 	add	r10d,ecx
   2788 	add	ecx,r15d
   2789 	mov	r13d,r10d
   2790 	add	r14d,ecx
   2791 	ror	r13d,14
   2792 	mov	ecx,r14d
   2793 	mov	r12d,r11d
   2794 	ror	r14d,9
   2795 	xor	r13d,r10d
   2796 	xor	r12d,eax
   2797 	ror	r13d,5
   2798 	xor	r14d,ecx
   2799 	and	r12d,r10d
   2800 	xor	r13d,r10d
   2801 	add	ebx,DWORD[56+rsp]
   2802 	mov	r15d,ecx
   2803 	xor	r12d,eax
   2804 	ror	r14d,11
   2805 	xor	r15d,edx
   2806 	add	ebx,r12d
   2807 	ror	r13d,6
   2808 	and	edi,r15d
   2809 	xor	r14d,ecx
   2810 	add	ebx,r13d
   2811 	xor	edi,edx
   2812 	ror	r14d,2
   2813 	add	r9d,ebx
   2814 	add	ebx,edi
   2815 	mov	r13d,r9d
   2816 	add	r14d,ebx
   2817 	ror	r13d,14
   2818 	mov	ebx,r14d
   2819 	mov	r12d,r10d
   2820 	ror	r14d,9
   2821 	xor	r13d,r9d
   2822 	xor	r12d,r11d
   2823 	ror	r13d,5
   2824 	xor	r14d,ebx
   2825 	and	r12d,r9d
   2826 	xor	r13d,r9d
   2827 	add	eax,DWORD[60+rsp]
   2828 	mov	edi,ebx
   2829 	xor	r12d,r11d
   2830 	ror	r14d,11
   2831 	xor	edi,ecx
   2832 	add	eax,r12d
   2833 	ror	r13d,6
   2834 	and	r15d,edi
   2835 	xor	r14d,ebx
   2836 	add	eax,r13d
   2837 	xor	r15d,ecx
   2838 	ror	r14d,2
   2839 	add	r8d,eax
   2840 	add	eax,r15d
   2841 	mov	r13d,r8d
   2842 	add	r14d,eax
   2843 	mov	rdi,QWORD[((64+0))+rsp]
   2844 	mov	eax,r14d
   2845 
   2846 	add	eax,DWORD[rdi]
   2847 	lea	rsi,[64+rsi]
   2848 	add	ebx,DWORD[4+rdi]
   2849 	add	ecx,DWORD[8+rdi]
   2850 	add	edx,DWORD[12+rdi]
   2851 	add	r8d,DWORD[16+rdi]
   2852 	add	r9d,DWORD[20+rdi]
   2853 	add	r10d,DWORD[24+rdi]
   2854 	add	r11d,DWORD[28+rdi]
   2855 
   2856 	cmp	rsi,QWORD[((64+16))+rsp]
   2857 
   2858 	mov	DWORD[rdi],eax
   2859 	mov	DWORD[4+rdi],ebx
   2860 	mov	DWORD[8+rdi],ecx
   2861 	mov	DWORD[12+rdi],edx
   2862 	mov	DWORD[16+rdi],r8d
   2863 	mov	DWORD[20+rdi],r9d
   2864 	mov	DWORD[24+rdi],r10d
   2865 	mov	DWORD[28+rdi],r11d
   2866 	jb	NEAR $L$loop_ssse3
   2867 
   2868 	mov	rsi,QWORD[((64+24))+rsp]
   2869 	movaps	xmm6,XMMWORD[((64+32))+rsp]
   2870 	movaps	xmm7,XMMWORD[((64+48))+rsp]
   2871 	movaps	xmm8,XMMWORD[((64+64))+rsp]
   2872 	movaps	xmm9,XMMWORD[((64+80))+rsp]
   2873 	mov	r15,QWORD[rsi]
   2874 	mov	r14,QWORD[8+rsi]
   2875 	mov	r13,QWORD[16+rsi]
   2876 	mov	r12,QWORD[24+rsi]
   2877 	mov	rbp,QWORD[32+rsi]
   2878 	mov	rbx,QWORD[40+rsi]
   2879 	lea	rsp,[48+rsi]
   2880 $L$epilogue_ssse3:
   2881 	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
   2882 	mov	rsi,QWORD[16+rsp]
   2883 	DB	0F3h,0C3h		;repret
   2884 $L$SEH_end_sha256_block_data_order_ssse3:
   2885 
   2886 ALIGN	64
   2887 sha256_block_data_order_avx:
   2888 	mov	QWORD[8+rsp],rdi	;WIN64 prologue
   2889 	mov	QWORD[16+rsp],rsi
   2890 	mov	rax,rsp
   2891 $L$SEH_begin_sha256_block_data_order_avx:
   2892 	mov	rdi,rcx
   2893 	mov	rsi,rdx
   2894 	mov	rdx,r8
   2895 
   2896 
   2897 $L$avx_shortcut:
   2898 	push	rbx
   2899 	push	rbp
   2900 	push	r12
   2901 	push	r13
   2902 	push	r14
   2903 	push	r15
   2904 	mov	r11,rsp
   2905 	shl	rdx,4
   2906 	sub	rsp,160
   2907 	lea	rdx,[rdx*4+rsi]
   2908 	and	rsp,-64
   2909 	mov	QWORD[((64+0))+rsp],rdi
   2910 	mov	QWORD[((64+8))+rsp],rsi
   2911 	mov	QWORD[((64+16))+rsp],rdx
   2912 	mov	QWORD[((64+24))+rsp],r11
   2913 	movaps	XMMWORD[(64+32)+rsp],xmm6
   2914 	movaps	XMMWORD[(64+48)+rsp],xmm7
   2915 	movaps	XMMWORD[(64+64)+rsp],xmm8
   2916 	movaps	XMMWORD[(64+80)+rsp],xmm9
   2917 $L$prologue_avx:
   2918 
   2919 	vzeroupper
   2920 	mov	eax,DWORD[rdi]
   2921 	mov	ebx,DWORD[4+rdi]
   2922 	mov	ecx,DWORD[8+rdi]
   2923 	mov	edx,DWORD[12+rdi]
   2924 	mov	r8d,DWORD[16+rdi]
   2925 	mov	r9d,DWORD[20+rdi]
   2926 	mov	r10d,DWORD[24+rdi]
   2927 	mov	r11d,DWORD[28+rdi]
   2928 	vmovdqa	xmm8,XMMWORD[((K256+512+32))]
   2929 	vmovdqa	xmm9,XMMWORD[((K256+512+64))]
   2930 	jmp	NEAR $L$loop_avx
   2931 ALIGN	16
   2932 $L$loop_avx:
   2933 	vmovdqa	xmm7,XMMWORD[((K256+512))]
   2934 	vmovdqu	xmm0,XMMWORD[rsi]
   2935 	vmovdqu	xmm1,XMMWORD[16+rsi]
   2936 	vmovdqu	xmm2,XMMWORD[32+rsi]
   2937 	vmovdqu	xmm3,XMMWORD[48+rsi]
   2938 	vpshufb	xmm0,xmm0,xmm7
   2939 	lea	rbp,[K256]
   2940 	vpshufb	xmm1,xmm1,xmm7
   2941 	vpshufb	xmm2,xmm2,xmm7
   2942 	vpaddd	xmm4,xmm0,XMMWORD[rbp]
   2943 	vpshufb	xmm3,xmm3,xmm7
   2944 	vpaddd	xmm5,xmm1,XMMWORD[32+rbp]
   2945 	vpaddd	xmm6,xmm2,XMMWORD[64+rbp]
   2946 	vpaddd	xmm7,xmm3,XMMWORD[96+rbp]
   2947 	vmovdqa	XMMWORD[rsp],xmm4
   2948 	mov	r14d,eax
   2949 	vmovdqa	XMMWORD[16+rsp],xmm5
   2950 	mov	edi,ebx
   2951 	vmovdqa	XMMWORD[32+rsp],xmm6
   2952 	xor	edi,ecx
   2953 	vmovdqa	XMMWORD[48+rsp],xmm7
   2954 	mov	r13d,r8d
   2955 	jmp	NEAR $L$avx_00_47
   2956 
   2957 ALIGN	16
   2958 $L$avx_00_47:
   2959 	sub	rbp,-128
   2960 	vpalignr	xmm4,xmm1,xmm0,4
   2961 	shrd	r13d,r13d,14
   2962 	mov	eax,r14d
   2963 	mov	r12d,r9d
   2964 	vpalignr	xmm7,xmm3,xmm2,4
   2965 	shrd	r14d,r14d,9
   2966 	xor	r13d,r8d
   2967 	xor	r12d,r10d
   2968 	vpsrld	xmm6,xmm4,7
   2969 	shrd	r13d,r13d,5
   2970 	xor	r14d,eax
   2971 	and	r12d,r8d
   2972 	vpaddd	xmm0,xmm0,xmm7
   2973 	xor	r13d,r8d
   2974 	add	r11d,DWORD[rsp]
   2975 	mov	r15d,eax
   2976 	vpsrld	xmm7,xmm4,3
   2977 	xor	r12d,r10d
   2978 	shrd	r14d,r14d,11
   2979 	xor	r15d,ebx
   2980 	vpslld	xmm5,xmm4,14
   2981 	add	r11d,r12d
   2982 	shrd	r13d,r13d,6
   2983 	and	edi,r15d
   2984 	vpxor	xmm4,xmm7,xmm6
   2985 	xor	r14d,eax
   2986 	add	r11d,r13d
   2987 	xor	edi,ebx
   2988 	vpshufd	xmm7,xmm3,250
   2989 	shrd	r14d,r14d,2
   2990 	add	edx,r11d
   2991 	add	r11d,edi
   2992 	vpsrld	xmm6,xmm6,11
   2993 	mov	r13d,edx
   2994 	add	r14d,r11d
   2995 	shrd	r13d,r13d,14
   2996 	vpxor	xmm4,xmm4,xmm5
   2997 	mov	r11d,r14d
   2998 	mov	r12d,r8d
   2999 	shrd	r14d,r14d,9
   3000 	vpslld	xmm5,xmm5,11
   3001 	xor	r13d,edx
   3002 	xor	r12d,r9d
   3003 	shrd	r13d,r13d,5
   3004 	vpxor	xmm4,xmm4,xmm6
   3005 	xor	r14d,r11d
   3006 	and	r12d,edx
   3007 	xor	r13d,edx
   3008 	vpsrld	xmm6,xmm7,10
   3009 	add	r10d,DWORD[4+rsp]
   3010 	mov	edi,r11d
   3011 	xor	r12d,r9d
   3012 	vpxor	xmm4,xmm4,xmm5
   3013 	shrd	r14d,r14d,11
   3014 	xor	edi,eax
   3015 	add	r10d,r12d
   3016 	vpsrlq	xmm7,xmm7,17
   3017 	shrd	r13d,r13d,6
   3018 	and	r15d,edi
   3019 	xor	r14d,r11d
   3020 	vpaddd	xmm0,xmm0,xmm4
   3021 	add	r10d,r13d
   3022 	xor	r15d,eax
   3023 	shrd	r14d,r14d,2
   3024 	vpxor	xmm6,xmm6,xmm7
   3025 	add	ecx,r10d
   3026 	add	r10d,r15d
   3027 	mov	r13d,ecx
   3028 	vpsrlq	xmm7,xmm7,2
   3029 	add	r14d,r10d
   3030 	shrd	r13d,r13d,14
   3031 	mov	r10d,r14d
   3032 	vpxor	xmm6,xmm6,xmm7
   3033 	mov	r12d,edx
   3034 	shrd	r14d,r14d,9
   3035 	xor	r13d,ecx
   3036 	vpshufb	xmm6,xmm6,xmm8
   3037 	xor	r12d,r8d
   3038 	shrd	r13d,r13d,5
   3039 	xor	r14d,r10d
   3040 	vpaddd	xmm0,xmm0,xmm6
   3041 	and	r12d,ecx
   3042 	xor	r13d,ecx
   3043 	add	r9d,DWORD[8+rsp]
   3044 	vpshufd	xmm7,xmm0,80
   3045 	mov	r15d,r10d
   3046 	xor	r12d,r8d
   3047 	shrd	r14d,r14d,11
   3048 	vpsrld	xmm6,xmm7,10
   3049 	xor	r15d,r11d
   3050 	add	r9d,r12d
   3051 	shrd	r13d,r13d,6
   3052 	vpsrlq	xmm7,xmm7,17
   3053 	and	edi,r15d
   3054 	xor	r14d,r10d
   3055 	add	r9d,r13d
   3056 	vpxor	xmm6,xmm6,xmm7
   3057 	xor	edi,r11d
   3058 	shrd	r14d,r14d,2
   3059 	add	ebx,r9d
   3060 	vpsrlq	xmm7,xmm7,2
   3061 	add	r9d,edi
   3062 	mov	r13d,ebx
   3063 	add	r14d,r9d
   3064 	vpxor	xmm6,xmm6,xmm7
   3065 	shrd	r13d,r13d,14
   3066 	mov	r9d,r14d
   3067 	mov	r12d,ecx
   3068 	vpshufb	xmm6,xmm6,xmm9
   3069 	shrd	r14d,r14d,9
   3070 	xor	r13d,ebx
   3071 	xor	r12d,edx
   3072 	vpaddd	xmm0,xmm0,xmm6
   3073 	shrd	r13d,r13d,5
   3074 	xor	r14d,r9d
   3075 	and	r12d,ebx
   3076 	vpaddd	xmm6,xmm0,XMMWORD[rbp]
   3077 	xor	r13d,ebx
   3078 	add	r8d,DWORD[12+rsp]
   3079 	mov	edi,r9d
   3080 	xor	r12d,edx
   3081 	shrd	r14d,r14d,11
   3082 	xor	edi,r10d
   3083 	add	r8d,r12d
   3084 	shrd	r13d,r13d,6
   3085 	and	r15d,edi
   3086 	xor	r14d,r9d
   3087 	add	r8d,r13d
   3088 	xor	r15d,r10d
   3089 	shrd	r14d,r14d,2
   3090 	add	eax,r8d
   3091 	add	r8d,r15d
   3092 	mov	r13d,eax
   3093 	add	r14d,r8d
   3094 	vmovdqa	XMMWORD[rsp],xmm6
   3095 	vpalignr	xmm4,xmm2,xmm1,4
   3096 	shrd	r13d,r13d,14
   3097 	mov	r8d,r14d
   3098 	mov	r12d,ebx
   3099 	vpalignr	xmm7,xmm0,xmm3,4
   3100 	shrd	r14d,r14d,9
   3101 	xor	r13d,eax
   3102 	xor	r12d,ecx
   3103 	vpsrld	xmm6,xmm4,7
   3104 	shrd	r13d,r13d,5
   3105 	xor	r14d,r8d
   3106 	and	r12d,eax
   3107 	vpaddd	xmm1,xmm1,xmm7
   3108 	xor	r13d,eax
   3109 	add	edx,DWORD[16+rsp]
   3110 	mov	r15d,r8d
   3111 	vpsrld	xmm7,xmm4,3
   3112 	xor	r12d,ecx
   3113 	shrd	r14d,r14d,11
   3114 	xor	r15d,r9d
   3115 	vpslld	xmm5,xmm4,14
   3116 	add	edx,r12d
   3117 	shrd	r13d,r13d,6
   3118 	and	edi,r15d
   3119 	vpxor	xmm4,xmm7,xmm6
   3120 	xor	r14d,r8d
   3121 	add	edx,r13d
   3122 	xor	edi,r9d
   3123 	vpshufd	xmm7,xmm0,250
   3124 	shrd	r14d,r14d,2
   3125 	add	r11d,edx
   3126 	add	edx,edi
   3127 	vpsrld	xmm6,xmm6,11
   3128 	mov	r13d,r11d
   3129 	add	r14d,edx
   3130 	shrd	r13d,r13d,14
   3131 	vpxor	xmm4,xmm4,xmm5
   3132 	mov	edx,r14d
   3133 	mov	r12d,eax
   3134 	shrd	r14d,r14d,9
   3135 	vpslld	xmm5,xmm5,11
   3136 	xor	r13d,r11d
   3137 	xor	r12d,ebx
   3138 	shrd	r13d,r13d,5
   3139 	vpxor	xmm4,xmm4,xmm6
   3140 	xor	r14d,edx
   3141 	and	r12d,r11d
   3142 	xor	r13d,r11d
   3143 	vpsrld	xmm6,xmm7,10
   3144 	add	ecx,DWORD[20+rsp]
   3145 	mov	edi,edx
   3146 	xor	r12d,ebx
   3147 	vpxor	xmm4,xmm4,xmm5
   3148 	shrd	r14d,r14d,11
   3149 	xor	edi,r8d
   3150 	add	ecx,r12d
   3151 	vpsrlq	xmm7,xmm7,17
   3152 	shrd	r13d,r13d,6
   3153 	and	r15d,edi
   3154 	xor	r14d,edx
   3155 	vpaddd	xmm1,xmm1,xmm4
   3156 	add	ecx,r13d
   3157 	xor	r15d,r8d
   3158 	shrd	r14d,r14d,2
   3159 	vpxor	xmm6,xmm6,xmm7
   3160 	add	r10d,ecx
   3161 	add	ecx,r15d
   3162 	mov	r13d,r10d
   3163 	vpsrlq	xmm7,xmm7,2
   3164 	add	r14d,ecx
   3165 	shrd	r13d,r13d,14
   3166 	mov	ecx,r14d
   3167 	vpxor	xmm6,xmm6,xmm7
   3168 	mov	r12d,r11d
   3169 	shrd	r14d,r14d,9
   3170 	xor	r13d,r10d
   3171 	vpshufb	xmm6,xmm6,xmm8
   3172 	xor	r12d,eax
   3173 	shrd	r13d,r13d,5
   3174 	xor	r14d,ecx
   3175 	vpaddd	xmm1,xmm1,xmm6
   3176 	and	r12d,r10d
   3177 	xor	r13d,r10d
   3178 	add	ebx,DWORD[24+rsp]
   3179 	vpshufd	xmm7,xmm1,80
   3180 	mov	r15d,ecx
   3181 	xor	r12d,eax
   3182 	shrd	r14d,r14d,11
   3183 	vpsrld	xmm6,xmm7,10
   3184 	xor	r15d,edx
   3185 	add	ebx,r12d
   3186 	shrd	r13d,r13d,6
   3187 	vpsrlq	xmm7,xmm7,17
   3188 	and	edi,r15d
   3189 	xor	r14d,ecx
   3190 	add	ebx,r13d
   3191 	vpxor	xmm6,xmm6,xmm7
   3192 	xor	edi,edx
   3193 	shrd	r14d,r14d,2
   3194 	add	r9d,ebx
   3195 	vpsrlq	xmm7,xmm7,2
   3196 	add	ebx,edi
   3197 	mov	r13d,r9d
   3198 	add	r14d,ebx
   3199 	vpxor	xmm6,xmm6,xmm7
   3200 	shrd	r13d,r13d,14
   3201 	mov	ebx,r14d
   3202 	mov	r12d,r10d
   3203 	vpshufb	xmm6,xmm6,xmm9
   3204 	shrd	r14d,r14d,9
   3205 	xor	r13d,r9d
   3206 	xor	r12d,r11d
   3207 	vpaddd	xmm1,xmm1,xmm6
   3208 	shrd	r13d,r13d,5
   3209 	xor	r14d,ebx
   3210 	and	r12d,r9d
   3211 	vpaddd	xmm6,xmm1,XMMWORD[32+rbp]
   3212 	xor	r13d,r9d
   3213 	add	eax,DWORD[28+rsp]
   3214 	mov	edi,ebx
   3215 	xor	r12d,r11d
   3216 	shrd	r14d,r14d,11
   3217 	xor	edi,ecx
   3218 	add	eax,r12d
   3219 	shrd	r13d,r13d,6
   3220 	and	r15d,edi
   3221 	xor	r14d,ebx
   3222 	add	eax,r13d
   3223 	xor	r15d,ecx
   3224 	shrd	r14d,r14d,2
   3225 	add	r8d,eax
   3226 	add	eax,r15d
   3227 	mov	r13d,r8d
   3228 	add	r14d,eax
   3229 	vmovdqa	XMMWORD[16+rsp],xmm6
   3230 	vpalignr	xmm4,xmm3,xmm2,4
   3231 	shrd	r13d,r13d,14
   3232 	mov	eax,r14d
   3233 	mov	r12d,r9d
   3234 	vpalignr	xmm7,xmm1,xmm0,4
   3235 	shrd	r14d,r14d,9
   3236 	xor	r13d,r8d
   3237 	xor	r12d,r10d
   3238 	vpsrld	xmm6,xmm4,7
   3239 	shrd	r13d,r13d,5
   3240 	xor	r14d,eax
   3241 	and	r12d,r8d
   3242 	vpaddd	xmm2,xmm2,xmm7
   3243 	xor	r13d,r8d
   3244 	add	r11d,DWORD[32+rsp]
   3245 	mov	r15d,eax
   3246 	vpsrld	xmm7,xmm4,3
   3247 	xor	r12d,r10d
   3248 	shrd	r14d,r14d,11
   3249 	xor	r15d,ebx
   3250 	vpslld	xmm5,xmm4,14
   3251 	add	r11d,r12d
   3252 	shrd	r13d,r13d,6
   3253 	and	edi,r15d
   3254 	vpxor	xmm4,xmm7,xmm6
   3255 	xor	r14d,eax
   3256 	add	r11d,r13d
   3257 	xor	edi,ebx
   3258 	vpshufd	xmm7,xmm1,250
   3259 	shrd	r14d,r14d,2
   3260 	add	edx,r11d
   3261 	add	r11d,edi
   3262 	vpsrld	xmm6,xmm6,11
   3263 	mov	r13d,edx
   3264 	add	r14d,r11d
   3265 	shrd	r13d,r13d,14
   3266 	vpxor	xmm4,xmm4,xmm5
   3267 	mov	r11d,r14d
   3268 	mov	r12d,r8d
   3269 	shrd	r14d,r14d,9
   3270 	vpslld	xmm5,xmm5,11
   3271 	xor	r13d,edx
   3272 	xor	r12d,r9d
   3273 	shrd	r13d,r13d,5
   3274 	vpxor	xmm4,xmm4,xmm6
   3275 	xor	r14d,r11d
   3276 	and	r12d,edx
   3277 	xor	r13d,edx
   3278 	vpsrld	xmm6,xmm7,10
   3279 	add	r10d,DWORD[36+rsp]
   3280 	mov	edi,r11d
   3281 	xor	r12d,r9d
   3282 	vpxor	xmm4,xmm4,xmm5
   3283 	shrd	r14d,r14d,11
   3284 	xor	edi,eax
   3285 	add	r10d,r12d
   3286 	vpsrlq	xmm7,xmm7,17
   3287 	shrd	r13d,r13d,6
   3288 	and	r15d,edi
   3289 	xor	r14d,r11d
   3290 	vpaddd	xmm2,xmm2,xmm4
   3291 	add	r10d,r13d
   3292 	xor	r15d,eax
   3293 	shrd	r14d,r14d,2
   3294 	vpxor	xmm6,xmm6,xmm7
   3295 	add	ecx,r10d
   3296 	add	r10d,r15d
   3297 	mov	r13d,ecx
   3298 	vpsrlq	xmm7,xmm7,2
   3299 	add	r14d,r10d
   3300 	shrd	r13d,r13d,14
   3301 	mov	r10d,r14d
   3302 	vpxor	xmm6,xmm6,xmm7
   3303 	mov	r12d,edx
   3304 	shrd	r14d,r14d,9
   3305 	xor	r13d,ecx
   3306 	vpshufb	xmm6,xmm6,xmm8
   3307 	xor	r12d,r8d
   3308 	shrd	r13d,r13d,5
   3309 	xor	r14d,r10d
   3310 	vpaddd	xmm2,xmm2,xmm6
   3311 	and	r12d,ecx
   3312 	xor	r13d,ecx
   3313 	add	r9d,DWORD[40+rsp]
   3314 	vpshufd	xmm7,xmm2,80
   3315 	mov	r15d,r10d
   3316 	xor	r12d,r8d
   3317 	shrd	r14d,r14d,11
   3318 	vpsrld	xmm6,xmm7,10
   3319 	xor	r15d,r11d
   3320 	add	r9d,r12d
   3321 	shrd	r13d,r13d,6
   3322 	vpsrlq	xmm7,xmm7,17
   3323 	and	edi,r15d
   3324 	xor	r14d,r10d
   3325 	add	r9d,r13d
   3326 	vpxor	xmm6,xmm6,xmm7
   3327 	xor	edi,r11d
   3328 	shrd	r14d,r14d,2
   3329 	add	ebx,r9d
   3330 	vpsrlq	xmm7,xmm7,2
   3331 	add	r9d,edi
   3332 	mov	r13d,ebx
   3333 	add	r14d,r9d
   3334 	vpxor	xmm6,xmm6,xmm7
   3335 	shrd	r13d,r13d,14
   3336 	mov	r9d,r14d
   3337 	mov	r12d,ecx
   3338 	vpshufb	xmm6,xmm6,xmm9
   3339 	shrd	r14d,r14d,9
   3340 	xor	r13d,ebx
   3341 	xor	r12d,edx
   3342 	vpaddd	xmm2,xmm2,xmm6
   3343 	shrd	r13d,r13d,5
   3344 	xor	r14d,r9d
   3345 	and	r12d,ebx
   3346 	vpaddd	xmm6,xmm2,XMMWORD[64+rbp]
   3347 	xor	r13d,ebx
   3348 	add	r8d,DWORD[44+rsp]
   3349 	mov	edi,r9d
   3350 	xor	r12d,edx
   3351 	shrd	r14d,r14d,11
   3352 	xor	edi,r10d
   3353 	add	r8d,r12d
   3354 	shrd	r13d,r13d,6
   3355 	and	r15d,edi
   3356 	xor	r14d,r9d
   3357 	add	r8d,r13d
   3358 	xor	r15d,r10d
   3359 	shrd	r14d,r14d,2
   3360 	add	eax,r8d
   3361 	add	r8d,r15d
   3362 	mov	r13d,eax
   3363 	add	r14d,r8d
   3364 	vmovdqa	XMMWORD[32+rsp],xmm6
   3365 	vpalignr	xmm4,xmm0,xmm3,4
   3366 	shrd	r13d,r13d,14
   3367 	mov	r8d,r14d
   3368 	mov	r12d,ebx
   3369 	vpalignr	xmm7,xmm2,xmm1,4
   3370 	shrd	r14d,r14d,9
   3371 	xor	r13d,eax
   3372 	xor	r12d,ecx
   3373 	vpsrld	xmm6,xmm4,7
   3374 	shrd	r13d,r13d,5
   3375 	xor	r14d,r8d
   3376 	and	r12d,eax
   3377 	vpaddd	xmm3,xmm3,xmm7
   3378 	xor	r13d,eax
   3379 	add	edx,DWORD[48+rsp]
   3380 	mov	r15d,r8d
   3381 	vpsrld	xmm7,xmm4,3
   3382 	xor	r12d,ecx
   3383 	shrd	r14d,r14d,11
   3384 	xor	r15d,r9d
   3385 	vpslld	xmm5,xmm4,14
   3386 	add	edx,r12d
   3387 	shrd	r13d,r13d,6
   3388 	and	edi,r15d
   3389 	vpxor	xmm4,xmm7,xmm6
   3390 	xor	r14d,r8d
   3391 	add	edx,r13d
   3392 	xor	edi,r9d
   3393 	vpshufd	xmm7,xmm2,250
   3394 	shrd	r14d,r14d,2
   3395 	add	r11d,edx
   3396 	add	edx,edi
   3397 	vpsrld	xmm6,xmm6,11
   3398 	mov	r13d,r11d
   3399 	add	r14d,edx
   3400 	shrd	r13d,r13d,14
   3401 	vpxor	xmm4,xmm4,xmm5
   3402 	mov	edx,r14d
   3403 	mov	r12d,eax
   3404 	shrd	r14d,r14d,9
   3405 	vpslld	xmm5,xmm5,11
   3406 	xor	r13d,r11d
   3407 	xor	r12d,ebx
   3408 	shrd	r13d,r13d,5
   3409 	vpxor	xmm4,xmm4,xmm6
   3410 	xor	r14d,edx
   3411 	and	r12d,r11d
   3412 	xor	r13d,r11d
   3413 	vpsrld	xmm6,xmm7,10
   3414 	add	ecx,DWORD[52+rsp]
   3415 	mov	edi,edx
   3416 	xor	r12d,ebx
   3417 	vpxor	xmm4,xmm4,xmm5
   3418 	shrd	r14d,r14d,11
   3419 	xor	edi,r8d
   3420 	add	ecx,r12d
   3421 	vpsrlq	xmm7,xmm7,17
   3422 	shrd	r13d,r13d,6
   3423 	and	r15d,edi
   3424 	xor	r14d,edx
   3425 	vpaddd	xmm3,xmm3,xmm4
   3426 	add	ecx,r13d
   3427 	xor	r15d,r8d
   3428 	shrd	r14d,r14d,2
   3429 	vpxor	xmm6,xmm6,xmm7
   3430 	add	r10d,ecx
   3431 	add	ecx,r15d
   3432 	mov	r13d,r10d
   3433 	vpsrlq	xmm7,xmm7,2
   3434 	add	r14d,ecx
   3435 	shrd	r13d,r13d,14
   3436 	mov	ecx,r14d
   3437 	vpxor	xmm6,xmm6,xmm7
   3438 	mov	r12d,r11d
   3439 	shrd	r14d,r14d,9
   3440 	xor	r13d,r10d
   3441 	vpshufb	xmm6,xmm6,xmm8
   3442 	xor	r12d,eax
   3443 	shrd	r13d,r13d,5
   3444 	xor	r14d,ecx
   3445 	vpaddd	xmm3,xmm3,xmm6
   3446 	and	r12d,r10d
   3447 	xor	r13d,r10d
   3448 	add	ebx,DWORD[56+rsp]
   3449 	vpshufd	xmm7,xmm3,80
   3450 	mov	r15d,ecx
   3451 	xor	r12d,eax
   3452 	shrd	r14d,r14d,11
   3453 	vpsrld	xmm6,xmm7,10
   3454 	xor	r15d,edx
   3455 	add	ebx,r12d
   3456 	shrd	r13d,r13d,6
   3457 	vpsrlq	xmm7,xmm7,17
   3458 	and	edi,r15d
   3459 	xor	r14d,ecx
   3460 	add	ebx,r13d
   3461 	vpxor	xmm6,xmm6,xmm7
   3462 	xor	edi,edx
   3463 	shrd	r14d,r14d,2
   3464 	add	r9d,ebx
   3465 	vpsrlq	xmm7,xmm7,2
   3466 	add	ebx,edi
   3467 	mov	r13d,r9d
   3468 	add	r14d,ebx
   3469 	vpxor	xmm6,xmm6,xmm7
   3470 	shrd	r13d,r13d,14
   3471 	mov	ebx,r14d
   3472 	mov	r12d,r10d
   3473 	vpshufb	xmm6,xmm6,xmm9
   3474 	shrd	r14d,r14d,9
   3475 	xor	r13d,r9d
   3476 	xor	r12d,r11d
   3477 	vpaddd	xmm3,xmm3,xmm6
   3478 	shrd	r13d,r13d,5
   3479 	xor	r14d,ebx
   3480 	and	r12d,r9d
   3481 	vpaddd	xmm6,xmm3,XMMWORD[96+rbp]
   3482 	xor	r13d,r9d
   3483 	add	eax,DWORD[60+rsp]
   3484 	mov	edi,ebx
   3485 	xor	r12d,r11d
   3486 	shrd	r14d,r14d,11
   3487 	xor	edi,ecx
   3488 	add	eax,r12d
   3489 	shrd	r13d,r13d,6
   3490 	and	r15d,edi
   3491 	xor	r14d,ebx
   3492 	add	eax,r13d
   3493 	xor	r15d,ecx
   3494 	shrd	r14d,r14d,2
   3495 	add	r8d,eax
   3496 	add	eax,r15d
   3497 	mov	r13d,r8d
   3498 	add	r14d,eax
   3499 	vmovdqa	XMMWORD[48+rsp],xmm6
   3500 	cmp	BYTE[131+rbp],0
   3501 	jne	NEAR $L$avx_00_47
   3502 	shrd	r13d,r13d,14
   3503 	mov	eax,r14d
   3504 	mov	r12d,r9d
   3505 	shrd	r14d,r14d,9
   3506 	xor	r13d,r8d
   3507 	xor	r12d,r10d
   3508 	shrd	r13d,r13d,5
   3509 	xor	r14d,eax
   3510 	and	r12d,r8d
   3511 	xor	r13d,r8d
   3512 	add	r11d,DWORD[rsp]
   3513 	mov	r15d,eax
   3514 	xor	r12d,r10d
   3515 	shrd	r14d,r14d,11
   3516 	xor	r15d,ebx
   3517 	add	r11d,r12d
   3518 	shrd	r13d,r13d,6
   3519 	and	edi,r15d
   3520 	xor	r14d,eax
   3521 	add	r11d,r13d
   3522 	xor	edi,ebx
   3523 	shrd	r14d,r14d,2
   3524 	add	edx,r11d
   3525 	add	r11d,edi
   3526 	mov	r13d,edx
   3527 	add	r14d,r11d
   3528 	shrd	r13d,r13d,14
   3529 	mov	r11d,r14d
   3530 	mov	r12d,r8d
   3531 	shrd	r14d,r14d,9
   3532 	xor	r13d,edx
   3533 	xor	r12d,r9d
   3534 	shrd	r13d,r13d,5
   3535 	xor	r14d,r11d
   3536 	and	r12d,edx
   3537 	xor	r13d,edx
   3538 	add	r10d,DWORD[4+rsp]
   3539 	mov	edi,r11d
   3540 	xor	r12d,r9d
   3541 	shrd	r14d,r14d,11
   3542 	xor	edi,eax
   3543 	add	r10d,r12d
   3544 	shrd	r13d,r13d,6
   3545 	and	r15d,edi
   3546 	xor	r14d,r11d
   3547 	add	r10d,r13d
   3548 	xor	r15d,eax
   3549 	shrd	r14d,r14d,2
   3550 	add	ecx,r10d
   3551 	add	r10d,r15d
   3552 	mov	r13d,ecx
   3553 	add	r14d,r10d
   3554 	shrd	r13d,r13d,14
   3555 	mov	r10d,r14d
   3556 	mov	r12d,edx
   3557 	shrd	r14d,r14d,9
   3558 	xor	r13d,ecx
   3559 	xor	r12d,r8d
   3560 	shrd	r13d,r13d,5
   3561 	xor	r14d,r10d
   3562 	and	r12d,ecx
   3563 	xor	r13d,ecx
   3564 	add	r9d,DWORD[8+rsp]
   3565 	mov	r15d,r10d
   3566 	xor	r12d,r8d
   3567 	shrd	r14d,r14d,11
   3568 	xor	r15d,r11d
   3569 	add	r9d,r12d
   3570 	shrd	r13d,r13d,6
   3571 	and	edi,r15d
   3572 	xor	r14d,r10d
   3573 	add	r9d,r13d
   3574 	xor	edi,r11d
   3575 	shrd	r14d,r14d,2
   3576 	add	ebx,r9d
   3577 	add	r9d,edi
   3578 	mov	r13d,ebx
   3579 	add	r14d,r9d
   3580 	shrd	r13d,r13d,14
   3581 	mov	r9d,r14d
   3582 	mov	r12d,ecx
   3583 	shrd	r14d,r14d,9
   3584 	xor	r13d,ebx
   3585 	xor	r12d,edx
   3586 	shrd	r13d,r13d,5
   3587 	xor	r14d,r9d
   3588 	and	r12d,ebx
   3589 	xor	r13d,ebx
   3590 	add	r8d,DWORD[12+rsp]
   3591 	mov	edi,r9d
   3592 	xor	r12d,edx
   3593 	shrd	r14d,r14d,11
   3594 	xor	edi,r10d
   3595 	add	r8d,r12d
   3596 	shrd	r13d,r13d,6
   3597 	and	r15d,edi
   3598 	xor	r14d,r9d
   3599 	add	r8d,r13d
   3600 	xor	r15d,r10d
   3601 	shrd	r14d,r14d,2
   3602 	add	eax,r8d
   3603 	add	r8d,r15d
   3604 	mov	r13d,eax
   3605 	add	r14d,r8d
   3606 	shrd	r13d,r13d,14
   3607 	mov	r8d,r14d
   3608 	mov	r12d,ebx
   3609 	shrd	r14d,r14d,9
   3610 	xor	r13d,eax
   3611 	xor	r12d,ecx
   3612 	shrd	r13d,r13d,5
   3613 	xor	r14d,r8d
   3614 	and	r12d,eax
   3615 	xor	r13d,eax
   3616 	add	edx,DWORD[16+rsp]
   3617 	mov	r15d,r8d
   3618 	xor	r12d,ecx
   3619 	shrd	r14d,r14d,11
   3620 	xor	r15d,r9d
   3621 	add	edx,r12d
   3622 	shrd	r13d,r13d,6
   3623 	and	edi,r15d
   3624 	xor	r14d,r8d
   3625 	add	edx,r13d
   3626 	xor	edi,r9d
   3627 	shrd	r14d,r14d,2
   3628 	add	r11d,edx
   3629 	add	edx,edi
   3630 	mov	r13d,r11d
   3631 	add	r14d,edx
   3632 	shrd	r13d,r13d,14
   3633 	mov	edx,r14d
   3634 	mov	r12d,eax
   3635 	shrd	r14d,r14d,9
   3636 	xor	r13d,r11d
   3637 	xor	r12d,ebx
   3638 	shrd	r13d,r13d,5
   3639 	xor	r14d,edx
   3640 	and	r12d,r11d
   3641 	xor	r13d,r11d
   3642 	add	ecx,DWORD[20+rsp]
   3643 	mov	edi,edx
   3644 	xor	r12d,ebx
   3645 	shrd	r14d,r14d,11
   3646 	xor	edi,r8d
   3647 	add	ecx,r12d
   3648 	shrd	r13d,r13d,6
   3649 	and	r15d,edi
   3650 	xor	r14d,edx
   3651 	add	ecx,r13d
   3652 	xor	r15d,r8d
   3653 	shrd	r14d,r14d,2
   3654 	add	r10d,ecx
   3655 	add	ecx,r15d
   3656 	mov	r13d,r10d
   3657 	add	r14d,ecx
   3658 	shrd	r13d,r13d,14
   3659 	mov	ecx,r14d
   3660 	mov	r12d,r11d
   3661 	shrd	r14d,r14d,9
   3662 	xor	r13d,r10d
   3663 	xor	r12d,eax
   3664 	shrd	r13d,r13d,5
   3665 	xor	r14d,ecx
   3666 	and	r12d,r10d
   3667 	xor	r13d,r10d
   3668 	add	ebx,DWORD[24+rsp]
   3669 	mov	r15d,ecx
   3670 	xor	r12d,eax
   3671 	shrd	r14d,r14d,11
   3672 	xor	r15d,edx
   3673 	add	ebx,r12d
   3674 	shrd	r13d,r13d,6
   3675 	and	edi,r15d
   3676 	xor	r14d,ecx
   3677 	add	ebx,r13d
   3678 	xor	edi,edx
   3679 	shrd	r14d,r14d,2
   3680 	add	r9d,ebx
   3681 	add	ebx,edi
   3682 	mov	r13d,r9d
   3683 	add	r14d,ebx
   3684 	shrd	r13d,r13d,14
   3685 	mov	ebx,r14d
   3686 	mov	r12d,r10d
   3687 	shrd	r14d,r14d,9
   3688 	xor	r13d,r9d
   3689 	xor	r12d,r11d
   3690 	shrd	r13d,r13d,5
   3691 	xor	r14d,ebx
   3692 	and	r12d,r9d
   3693 	xor	r13d,r9d
   3694 	add	eax,DWORD[28+rsp]
   3695 	mov	edi,ebx
   3696 	xor	r12d,r11d
   3697 	shrd	r14d,r14d,11
   3698 	xor	edi,ecx
   3699 	add	eax,r12d
   3700 	shrd	r13d,r13d,6
   3701 	and	r15d,edi
   3702 	xor	r14d,ebx
   3703 	add	eax,r13d
   3704 	xor	r15d,ecx
   3705 	shrd	r14d,r14d,2
   3706 	add	r8d,eax
   3707 	add	eax,r15d
   3708 	mov	r13d,r8d
   3709 	add	r14d,eax
   3710 	shrd	r13d,r13d,14
   3711 	mov	eax,r14d
   3712 	mov	r12d,r9d
   3713 	shrd	r14d,r14d,9
   3714 	xor	r13d,r8d
   3715 	xor	r12d,r10d
   3716 	shrd	r13d,r13d,5
   3717 	xor	r14d,eax
   3718 	and	r12d,r8d
   3719 	xor	r13d,r8d
   3720 	add	r11d,DWORD[32+rsp]
   3721 	mov	r15d,eax
   3722 	xor	r12d,r10d
   3723 	shrd	r14d,r14d,11
   3724 	xor	r15d,ebx
   3725 	add	r11d,r12d
   3726 	shrd	r13d,r13d,6
   3727 	and	edi,r15d
   3728 	xor	r14d,eax
   3729 	add	r11d,r13d
   3730 	xor	edi,ebx
   3731 	shrd	r14d,r14d,2
   3732 	add	edx,r11d
   3733 	add	r11d,edi
   3734 	mov	r13d,edx
   3735 	add	r14d,r11d
   3736 	shrd	r13d,r13d,14
   3737 	mov	r11d,r14d
   3738 	mov	r12d,r8d
   3739 	shrd	r14d,r14d,9
   3740 	xor	r13d,edx
   3741 	xor	r12d,r9d
   3742 	shrd	r13d,r13d,5
   3743 	xor	r14d,r11d
   3744 	and	r12d,edx
   3745 	xor	r13d,edx
   3746 	add	r10d,DWORD[36+rsp]
   3747 	mov	edi,r11d
   3748 	xor	r12d,r9d
   3749 	shrd	r14d,r14d,11
   3750 	xor	edi,eax
   3751 	add	r10d,r12d
   3752 	shrd	r13d,r13d,6
   3753 	and	r15d,edi
   3754 	xor	r14d,r11d
   3755 	add	r10d,r13d
   3756 	xor	r15d,eax
   3757 	shrd	r14d,r14d,2
   3758 	add	ecx,r10d
   3759 	add	r10d,r15d
   3760 	mov	r13d,ecx
   3761 	add	r14d,r10d
   3762 	shrd	r13d,r13d,14
   3763 	mov	r10d,r14d
   3764 	mov	r12d,edx
   3765 	shrd	r14d,r14d,9
   3766 	xor	r13d,ecx
   3767 	xor	r12d,r8d
   3768 	shrd	r13d,r13d,5
   3769 	xor	r14d,r10d
   3770 	and	r12d,ecx
   3771 	xor	r13d,ecx
   3772 	add	r9d,DWORD[40+rsp]
   3773 	mov	r15d,r10d
   3774 	xor	r12d,r8d
   3775 	shrd	r14d,r14d,11
   3776 	xor	r15d,r11d
   3777 	add	r9d,r12d
   3778 	shrd	r13d,r13d,6
   3779 	and	edi,r15d
   3780 	xor	r14d,r10d
   3781 	add	r9d,r13d
   3782 	xor	edi,r11d
   3783 	shrd	r14d,r14d,2
   3784 	add	ebx,r9d
   3785 	add	r9d,edi
   3786 	mov	r13d,ebx
   3787 	add	r14d,r9d
   3788 	shrd	r13d,r13d,14
   3789 	mov	r9d,r14d
   3790 	mov	r12d,ecx
   3791 	shrd	r14d,r14d,9
   3792 	xor	r13d,ebx
   3793 	xor	r12d,edx
   3794 	shrd	r13d,r13d,5
   3795 	xor	r14d,r9d
   3796 	and	r12d,ebx
   3797 	xor	r13d,ebx
   3798 	add	r8d,DWORD[44+rsp]
   3799 	mov	edi,r9d
   3800 	xor	r12d,edx
   3801 	shrd	r14d,r14d,11
   3802 	xor	edi,r10d
   3803 	add	r8d,r12d
   3804 	shrd	r13d,r13d,6
   3805 	and	r15d,edi
   3806 	xor	r14d,r9d
   3807 	add	r8d,r13d
   3808 	xor	r15d,r10d
   3809 	shrd	r14d,r14d,2
   3810 	add	eax,r8d
   3811 	add	r8d,r15d
   3812 	mov	r13d,eax
   3813 	add	r14d,r8d
   3814 	shrd	r13d,r13d,14
   3815 	mov	r8d,r14d
   3816 	mov	r12d,ebx
   3817 	shrd	r14d,r14d,9
   3818 	xor	r13d,eax
   3819 	xor	r12d,ecx
   3820 	shrd	r13d,r13d,5
   3821 	xor	r14d,r8d
   3822 	and	r12d,eax
   3823 	xor	r13d,eax
   3824 	add	edx,DWORD[48+rsp]
   3825 	mov	r15d,r8d
   3826 	xor	r12d,ecx
   3827 	shrd	r14d,r14d,11
   3828 	xor	r15d,r9d
   3829 	add	edx,r12d
   3830 	shrd	r13d,r13d,6
   3831 	and	edi,r15d
   3832 	xor	r14d,r8d
   3833 	add	edx,r13d
   3834 	xor	edi,r9d
   3835 	shrd	r14d,r14d,2
   3836 	add	r11d,edx
   3837 	add	edx,edi
   3838 	mov	r13d,r11d
   3839 	add	r14d,edx
   3840 	shrd	r13d,r13d,14
   3841 	mov	edx,r14d
   3842 	mov	r12d,eax
   3843 	shrd	r14d,r14d,9
   3844 	xor	r13d,r11d
   3845 	xor	r12d,ebx
   3846 	shrd	r13d,r13d,5
   3847 	xor	r14d,edx
   3848 	and	r12d,r11d
   3849 	xor	r13d,r11d
   3850 	add	ecx,DWORD[52+rsp]
   3851 	mov	edi,edx
   3852 	xor	r12d,ebx
   3853 	shrd	r14d,r14d,11
   3854 	xor	edi,r8d
   3855 	add	ecx,r12d
   3856 	shrd	r13d,r13d,6
   3857 	and	r15d,edi
   3858 	xor	r14d,edx
   3859 	add	ecx,r13d
   3860 	xor	r15d,r8d
   3861 	shrd	r14d,r14d,2
   3862 	add	r10d,ecx
   3863 	add	ecx,r15d
   3864 	mov	r13d,r10d
   3865 	add	r14d,ecx
   3866 	shrd	r13d,r13d,14
   3867 	mov	ecx,r14d
   3868 	mov	r12d,r11d
   3869 	shrd	r14d,r14d,9
   3870 	xor	r13d,r10d
   3871 	xor	r12d,eax
   3872 	shrd	r13d,r13d,5
   3873 	xor	r14d,ecx
   3874 	and	r12d,r10d
   3875 	xor	r13d,r10d
   3876 	add	ebx,DWORD[56+rsp]
   3877 	mov	r15d,ecx
   3878 	xor	r12d,eax
   3879 	shrd	r14d,r14d,11
   3880 	xor	r15d,edx
   3881 	add	ebx,r12d
   3882 	shrd	r13d,r13d,6
   3883 	and	edi,r15d
   3884 	xor	r14d,ecx
   3885 	add	ebx,r13d
   3886 	xor	edi,edx
   3887 	shrd	r14d,r14d,2
   3888 	add	r9d,ebx
   3889 	add	ebx,edi
   3890 	mov	r13d,r9d
   3891 	add	r14d,ebx
   3892 	shrd	r13d,r13d,14
   3893 	mov	ebx,r14d
   3894 	mov	r12d,r10d
   3895 	shrd	r14d,r14d,9
   3896 	xor	r13d,r9d
   3897 	xor	r12d,r11d
   3898 	shrd	r13d,r13d,5
   3899 	xor	r14d,ebx
   3900 	and	r12d,r9d
   3901 	xor	r13d,r9d
   3902 	add	eax,DWORD[60+rsp]
   3903 	mov	edi,ebx
   3904 	xor	r12d,r11d
   3905 	shrd	r14d,r14d,11
   3906 	xor	edi,ecx
   3907 	add	eax,r12d
   3908 	shrd	r13d,r13d,6
   3909 	and	r15d,edi
   3910 	xor	r14d,ebx
   3911 	add	eax,r13d
   3912 	xor	r15d,ecx
   3913 	shrd	r14d,r14d,2
   3914 	add	r8d,eax
   3915 	add	eax,r15d
   3916 	mov	r13d,r8d
   3917 	add	r14d,eax
   3918 	mov	rdi,QWORD[((64+0))+rsp]
   3919 	mov	eax,r14d
   3920 
   3921 	add	eax,DWORD[rdi]
   3922 	lea	rsi,[64+rsi]
   3923 	add	ebx,DWORD[4+rdi]
   3924 	add	ecx,DWORD[8+rdi]
   3925 	add	edx,DWORD[12+rdi]
   3926 	add	r8d,DWORD[16+rdi]
   3927 	add	r9d,DWORD[20+rdi]
   3928 	add	r10d,DWORD[24+rdi]
   3929 	add	r11d,DWORD[28+rdi]
   3930 
   3931 	cmp	rsi,QWORD[((64+16))+rsp]
   3932 
   3933 	mov	DWORD[rdi],eax
   3934 	mov	DWORD[4+rdi],ebx
   3935 	mov	DWORD[8+rdi],ecx
   3936 	mov	DWORD[12+rdi],edx
   3937 	mov	DWORD[16+rdi],r8d
   3938 	mov	DWORD[20+rdi],r9d
   3939 	mov	DWORD[24+rdi],r10d
   3940 	mov	DWORD[28+rdi],r11d
   3941 	jb	NEAR $L$loop_avx
   3942 
   3943 	mov	rsi,QWORD[((64+24))+rsp]
   3944 	vzeroupper
   3945 	movaps	xmm6,XMMWORD[((64+32))+rsp]
   3946 	movaps	xmm7,XMMWORD[((64+48))+rsp]
   3947 	movaps	xmm8,XMMWORD[((64+64))+rsp]
   3948 	movaps	xmm9,XMMWORD[((64+80))+rsp]
   3949 	mov	r15,QWORD[rsi]
   3950 	mov	r14,QWORD[8+rsi]
   3951 	mov	r13,QWORD[16+rsi]
   3952 	mov	r12,QWORD[24+rsi]
   3953 	mov	rbp,QWORD[32+rsi]
   3954 	mov	rbx,QWORD[40+rsi]
   3955 	lea	rsp,[48+rsi]
   3956 $L$epilogue_avx:
   3957 	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
   3958 	mov	rsi,QWORD[16+rsp]
   3959 	DB	0F3h,0C3h		;repret
   3960 $L$SEH_end_sha256_block_data_order_avx:
   3961 EXTERN	__imp_RtlVirtualUnwind
   3962 
   3963 ALIGN	16
   3964 se_handler:
   3965 	push	rsi
   3966 	push	rdi
   3967 	push	rbx
   3968 	push	rbp
   3969 	push	r12
   3970 	push	r13
   3971 	push	r14
   3972 	push	r15
   3973 	pushfq
   3974 	sub	rsp,64
   3975 
   3976 	mov	rax,QWORD[120+r8]
   3977 	mov	rbx,QWORD[248+r8]
   3978 
   3979 	mov	rsi,QWORD[8+r9]
   3980 	mov	r11,QWORD[56+r9]
   3981 
   3982 	mov	r10d,DWORD[r11]
   3983 	lea	r10,[r10*1+rsi]
   3984 	cmp	rbx,r10
   3985 	jb	NEAR $L$in_prologue
   3986 
   3987 	mov	rax,QWORD[152+r8]
   3988 
   3989 	mov	r10d,DWORD[4+r11]
   3990 	lea	r10,[r10*1+rsi]
   3991 	cmp	rbx,r10
   3992 	jae	NEAR $L$in_prologue
   3993 	mov	rsi,rax
   3994 	mov	rax,QWORD[((64+24))+rax]
   3995 	lea	rax,[48+rax]
   3996 
   3997 	mov	rbx,QWORD[((-8))+rax]
   3998 	mov	rbp,QWORD[((-16))+rax]
   3999 	mov	r12,QWORD[((-24))+rax]
   4000 	mov	r13,QWORD[((-32))+rax]
   4001 	mov	r14,QWORD[((-40))+rax]
   4002 	mov	r15,QWORD[((-48))+rax]
   4003 	mov	QWORD[144+r8],rbx
   4004 	mov	QWORD[160+r8],rbp
   4005 	mov	QWORD[216+r8],r12
   4006 	mov	QWORD[224+r8],r13
   4007 	mov	QWORD[232+r8],r14
   4008 	mov	QWORD[240+r8],r15
   4009 
   4010 	lea	r10,[$L$epilogue]
   4011 	cmp	rbx,r10
   4012 	jb	NEAR $L$in_prologue
   4013 
   4014 	lea	rsi,[((64+32))+rsi]
   4015 	lea	rdi,[512+r8]
   4016 	mov	ecx,8
   4017 	DD	0xa548f3fc
   4018 
   4019 $L$in_prologue:
   4020 	mov	rdi,QWORD[8+rax]
   4021 	mov	rsi,QWORD[16+rax]
   4022 	mov	QWORD[152+r8],rax
   4023 	mov	QWORD[168+r8],rsi
   4024 	mov	QWORD[176+r8],rdi
   4025 
   4026 	mov	rdi,QWORD[40+r9]
   4027 	mov	rsi,r8
   4028 	mov	ecx,154
   4029 	DD	0xa548f3fc
   4030 
   4031 	mov	rsi,r9
   4032 	xor	rcx,rcx
   4033 	mov	rdx,QWORD[8+rsi]
   4034 	mov	r8,QWORD[rsi]
   4035 	mov	r9,QWORD[16+rsi]
   4036 	mov	r10,QWORD[40+rsi]
   4037 	lea	r11,[56+rsi]
   4038 	lea	r12,[24+rsi]
   4039 	mov	QWORD[32+rsp],r10
   4040 	mov	QWORD[40+rsp],r11
   4041 	mov	QWORD[48+rsp],r12
   4042 	mov	QWORD[56+rsp],rcx
   4043 	call	QWORD[__imp_RtlVirtualUnwind]
   4044 
   4045 	mov	eax,1
   4046 	add	rsp,64
   4047 	popfq
   4048 	pop	r15
   4049 	pop	r14
   4050 	pop	r13
   4051 	pop	r12
   4052 	pop	rbp
   4053 	pop	rbx
   4054 	pop	rdi
   4055 	pop	rsi
   4056 	DB	0F3h,0C3h		;repret
   4057 
   4058 section	.pdata rdata align=4
   4059 ALIGN	4
   4060 	DD	$L$SEH_begin_sha256_block_data_order wrt ..imagebase
   4061 	DD	$L$SEH_end_sha256_block_data_order wrt ..imagebase
   4062 	DD	$L$SEH_info_sha256_block_data_order wrt ..imagebase
   4063 	DD	$L$SEH_begin_sha256_block_data_order_ssse3 wrt ..imagebase
   4064 	DD	$L$SEH_end_sha256_block_data_order_ssse3 wrt ..imagebase
   4065 	DD	$L$SEH_info_sha256_block_data_order_ssse3 wrt ..imagebase
   4066 	DD	$L$SEH_begin_sha256_block_data_order_avx wrt ..imagebase
   4067 	DD	$L$SEH_end_sha256_block_data_order_avx wrt ..imagebase
   4068 	DD	$L$SEH_info_sha256_block_data_order_avx wrt ..imagebase
   4069 section	.xdata rdata align=8
   4070 ALIGN	8
   4071 $L$SEH_info_sha256_block_data_order:
   4072 DB	9,0,0,0
   4073 	DD	se_handler wrt ..imagebase
   4074 	DD	$L$prologue wrt ..imagebase,$L$epilogue wrt ..imagebase
   4075 $L$SEH_info_sha256_block_data_order_ssse3:
   4076 DB	9,0,0,0
   4077 	DD	se_handler wrt ..imagebase
   4078 	DD	$L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
   4079 $L$SEH_info_sha256_block_data_order_avx:
   4080 DB	9,0,0,0
   4081 	DD	se_handler wrt ..imagebase
   4082 	DD	$L$prologue_avx wrt ..imagebase,$L$epilogue_avx wrt ..imagebase
   4083