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