Home | History | Annotate | Download | only in sha
      1 default	rel
      2 %define XMMWORD
      3 %define YMMWORD
      4 %define ZMMWORD
      5 section	.text code align=64
      6 
      7 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 	mov	r9d,DWORD[((OPENSSL_ia32cap_P+0))]
     23 	mov	r8d,DWORD[((OPENSSL_ia32cap_P+4))]
     24 	mov	r10d,DWORD[((OPENSSL_ia32cap_P+8))]
     25 	test	r8d,512
     26 	jz	NEAR $L$ialu
     27 	jmp	NEAR _ssse3_shortcut
     28 
     29 ALIGN	16
     30 $L$ialu:
     31 	mov	rax,rsp
     32 	push	rbx
     33 	push	rbp
     34 	push	r12
     35 	push	r13
     36 	push	r14
     37 	mov	r8,rdi
     38 	sub	rsp,72
     39 	mov	r9,rsi
     40 	and	rsp,-64
     41 	mov	r10,rdx
     42 	mov	QWORD[64+rsp],rax
     43 $L$prologue:
     44 
     45 	mov	esi,DWORD[r8]
     46 	mov	edi,DWORD[4+r8]
     47 	mov	r11d,DWORD[8+r8]
     48 	mov	r12d,DWORD[12+r8]
     49 	mov	r13d,DWORD[16+r8]
     50 	jmp	NEAR $L$loop
     51 
     52 ALIGN	16
     53 $L$loop:
     54 	mov	edx,DWORD[r9]
     55 	bswap	edx
     56 	mov	ebp,DWORD[4+r9]
     57 	mov	eax,r12d
     58 	mov	DWORD[rsp],edx
     59 	mov	ecx,esi
     60 	bswap	ebp
     61 	xor	eax,r11d
     62 	rol	ecx,5
     63 	and	eax,edi
     64 	lea	r13d,[1518500249+r13*1+rdx]
     65 	add	r13d,ecx
     66 	xor	eax,r12d
     67 	rol	edi,30
     68 	add	r13d,eax
     69 	mov	r14d,DWORD[8+r9]
     70 	mov	eax,r11d
     71 	mov	DWORD[4+rsp],ebp
     72 	mov	ecx,r13d
     73 	bswap	r14d
     74 	xor	eax,edi
     75 	rol	ecx,5
     76 	and	eax,esi
     77 	lea	r12d,[1518500249+r12*1+rbp]
     78 	add	r12d,ecx
     79 	xor	eax,r11d
     80 	rol	esi,30
     81 	add	r12d,eax
     82 	mov	edx,DWORD[12+r9]
     83 	mov	eax,edi
     84 	mov	DWORD[8+rsp],r14d
     85 	mov	ecx,r12d
     86 	bswap	edx
     87 	xor	eax,esi
     88 	rol	ecx,5
     89 	and	eax,r13d
     90 	lea	r11d,[1518500249+r11*1+r14]
     91 	add	r11d,ecx
     92 	xor	eax,edi
     93 	rol	r13d,30
     94 	add	r11d,eax
     95 	mov	ebp,DWORD[16+r9]
     96 	mov	eax,esi
     97 	mov	DWORD[12+rsp],edx
     98 	mov	ecx,r11d
     99 	bswap	ebp
    100 	xor	eax,r13d
    101 	rol	ecx,5
    102 	and	eax,r12d
    103 	lea	edi,[1518500249+rdi*1+rdx]
    104 	add	edi,ecx
    105 	xor	eax,esi
    106 	rol	r12d,30
    107 	add	edi,eax
    108 	mov	r14d,DWORD[20+r9]
    109 	mov	eax,r13d
    110 	mov	DWORD[16+rsp],ebp
    111 	mov	ecx,edi
    112 	bswap	r14d
    113 	xor	eax,r12d
    114 	rol	ecx,5
    115 	and	eax,r11d
    116 	lea	esi,[1518500249+rsi*1+rbp]
    117 	add	esi,ecx
    118 	xor	eax,r13d
    119 	rol	r11d,30
    120 	add	esi,eax
    121 	mov	edx,DWORD[24+r9]
    122 	mov	eax,r12d
    123 	mov	DWORD[20+rsp],r14d
    124 	mov	ecx,esi
    125 	bswap	edx
    126 	xor	eax,r11d
    127 	rol	ecx,5
    128 	and	eax,edi
    129 	lea	r13d,[1518500249+r13*1+r14]
    130 	add	r13d,ecx
    131 	xor	eax,r12d
    132 	rol	edi,30
    133 	add	r13d,eax
    134 	mov	ebp,DWORD[28+r9]
    135 	mov	eax,r11d
    136 	mov	DWORD[24+rsp],edx
    137 	mov	ecx,r13d
    138 	bswap	ebp
    139 	xor	eax,edi
    140 	rol	ecx,5
    141 	and	eax,esi
    142 	lea	r12d,[1518500249+r12*1+rdx]
    143 	add	r12d,ecx
    144 	xor	eax,r11d
    145 	rol	esi,30
    146 	add	r12d,eax
    147 	mov	r14d,DWORD[32+r9]
    148 	mov	eax,edi
    149 	mov	DWORD[28+rsp],ebp
    150 	mov	ecx,r12d
    151 	bswap	r14d
    152 	xor	eax,esi
    153 	rol	ecx,5
    154 	and	eax,r13d
    155 	lea	r11d,[1518500249+r11*1+rbp]
    156 	add	r11d,ecx
    157 	xor	eax,edi
    158 	rol	r13d,30
    159 	add	r11d,eax
    160 	mov	edx,DWORD[36+r9]
    161 	mov	eax,esi
    162 	mov	DWORD[32+rsp],r14d
    163 	mov	ecx,r11d
    164 	bswap	edx
    165 	xor	eax,r13d
    166 	rol	ecx,5
    167 	and	eax,r12d
    168 	lea	edi,[1518500249+rdi*1+r14]
    169 	add	edi,ecx
    170 	xor	eax,esi
    171 	rol	r12d,30
    172 	add	edi,eax
    173 	mov	ebp,DWORD[40+r9]
    174 	mov	eax,r13d
    175 	mov	DWORD[36+rsp],edx
    176 	mov	ecx,edi
    177 	bswap	ebp
    178 	xor	eax,r12d
    179 	rol	ecx,5
    180 	and	eax,r11d
    181 	lea	esi,[1518500249+rsi*1+rdx]
    182 	add	esi,ecx
    183 	xor	eax,r13d
    184 	rol	r11d,30
    185 	add	esi,eax
    186 	mov	r14d,DWORD[44+r9]
    187 	mov	eax,r12d
    188 	mov	DWORD[40+rsp],ebp
    189 	mov	ecx,esi
    190 	bswap	r14d
    191 	xor	eax,r11d
    192 	rol	ecx,5
    193 	and	eax,edi
    194 	lea	r13d,[1518500249+r13*1+rbp]
    195 	add	r13d,ecx
    196 	xor	eax,r12d
    197 	rol	edi,30
    198 	add	r13d,eax
    199 	mov	edx,DWORD[48+r9]
    200 	mov	eax,r11d
    201 	mov	DWORD[44+rsp],r14d
    202 	mov	ecx,r13d
    203 	bswap	edx
    204 	xor	eax,edi
    205 	rol	ecx,5
    206 	and	eax,esi
    207 	lea	r12d,[1518500249+r12*1+r14]
    208 	add	r12d,ecx
    209 	xor	eax,r11d
    210 	rol	esi,30
    211 	add	r12d,eax
    212 	mov	ebp,DWORD[52+r9]
    213 	mov	eax,edi
    214 	mov	DWORD[48+rsp],edx
    215 	mov	ecx,r12d
    216 	bswap	ebp
    217 	xor	eax,esi
    218 	rol	ecx,5
    219 	and	eax,r13d
    220 	lea	r11d,[1518500249+r11*1+rdx]
    221 	add	r11d,ecx
    222 	xor	eax,edi
    223 	rol	r13d,30
    224 	add	r11d,eax
    225 	mov	r14d,DWORD[56+r9]
    226 	mov	eax,esi
    227 	mov	DWORD[52+rsp],ebp
    228 	mov	ecx,r11d
    229 	bswap	r14d
    230 	xor	eax,r13d
    231 	rol	ecx,5
    232 	and	eax,r12d
    233 	lea	edi,[1518500249+rdi*1+rbp]
    234 	add	edi,ecx
    235 	xor	eax,esi
    236 	rol	r12d,30
    237 	add	edi,eax
    238 	mov	edx,DWORD[60+r9]
    239 	mov	eax,r13d
    240 	mov	DWORD[56+rsp],r14d
    241 	mov	ecx,edi
    242 	bswap	edx
    243 	xor	eax,r12d
    244 	rol	ecx,5
    245 	and	eax,r11d
    246 	lea	esi,[1518500249+rsi*1+r14]
    247 	add	esi,ecx
    248 	xor	eax,r13d
    249 	rol	r11d,30
    250 	add	esi,eax
    251 	xor	ebp,DWORD[rsp]
    252 	mov	eax,r12d
    253 	mov	DWORD[60+rsp],edx
    254 	mov	ecx,esi
    255 	xor	ebp,DWORD[8+rsp]
    256 	xor	eax,r11d
    257 	rol	ecx,5
    258 	xor	ebp,DWORD[32+rsp]
    259 	and	eax,edi
    260 	lea	r13d,[1518500249+r13*1+rdx]
    261 	rol	edi,30
    262 	xor	eax,r12d
    263 	add	r13d,ecx
    264 	rol	ebp,1
    265 	add	r13d,eax
    266 	xor	r14d,DWORD[4+rsp]
    267 	mov	eax,r11d
    268 	mov	DWORD[rsp],ebp
    269 	mov	ecx,r13d
    270 	xor	r14d,DWORD[12+rsp]
    271 	xor	eax,edi
    272 	rol	ecx,5
    273 	xor	r14d,DWORD[36+rsp]
    274 	and	eax,esi
    275 	lea	r12d,[1518500249+r12*1+rbp]
    276 	rol	esi,30
    277 	xor	eax,r11d
    278 	add	r12d,ecx
    279 	rol	r14d,1
    280 	add	r12d,eax
    281 	xor	edx,DWORD[8+rsp]
    282 	mov	eax,edi
    283 	mov	DWORD[4+rsp],r14d
    284 	mov	ecx,r12d
    285 	xor	edx,DWORD[16+rsp]
    286 	xor	eax,esi
    287 	rol	ecx,5
    288 	xor	edx,DWORD[40+rsp]
    289 	and	eax,r13d
    290 	lea	r11d,[1518500249+r11*1+r14]
    291 	rol	r13d,30
    292 	xor	eax,edi
    293 	add	r11d,ecx
    294 	rol	edx,1
    295 	add	r11d,eax
    296 	xor	ebp,DWORD[12+rsp]
    297 	mov	eax,esi
    298 	mov	DWORD[8+rsp],edx
    299 	mov	ecx,r11d
    300 	xor	ebp,DWORD[20+rsp]
    301 	xor	eax,r13d
    302 	rol	ecx,5
    303 	xor	ebp,DWORD[44+rsp]
    304 	and	eax,r12d
    305 	lea	edi,[1518500249+rdi*1+rdx]
    306 	rol	r12d,30
    307 	xor	eax,esi
    308 	add	edi,ecx
    309 	rol	ebp,1
    310 	add	edi,eax
    311 	xor	r14d,DWORD[16+rsp]
    312 	mov	eax,r13d
    313 	mov	DWORD[12+rsp],ebp
    314 	mov	ecx,edi
    315 	xor	r14d,DWORD[24+rsp]
    316 	xor	eax,r12d
    317 	rol	ecx,5
    318 	xor	r14d,DWORD[48+rsp]
    319 	and	eax,r11d
    320 	lea	esi,[1518500249+rsi*1+rbp]
    321 	rol	r11d,30
    322 	xor	eax,r13d
    323 	add	esi,ecx
    324 	rol	r14d,1
    325 	add	esi,eax
    326 	xor	edx,DWORD[20+rsp]
    327 	mov	eax,edi
    328 	mov	DWORD[16+rsp],r14d
    329 	mov	ecx,esi
    330 	xor	edx,DWORD[28+rsp]
    331 	xor	eax,r12d
    332 	rol	ecx,5
    333 	xor	edx,DWORD[52+rsp]
    334 	lea	r13d,[1859775393+r13*1+r14]
    335 	xor	eax,r11d
    336 	add	r13d,ecx
    337 	rol	edi,30
    338 	add	r13d,eax
    339 	rol	edx,1
    340 	xor	ebp,DWORD[24+rsp]
    341 	mov	eax,esi
    342 	mov	DWORD[20+rsp],edx
    343 	mov	ecx,r13d
    344 	xor	ebp,DWORD[32+rsp]
    345 	xor	eax,r11d
    346 	rol	ecx,5
    347 	xor	ebp,DWORD[56+rsp]
    348 	lea	r12d,[1859775393+r12*1+rdx]
    349 	xor	eax,edi
    350 	add	r12d,ecx
    351 	rol	esi,30
    352 	add	r12d,eax
    353 	rol	ebp,1
    354 	xor	r14d,DWORD[28+rsp]
    355 	mov	eax,r13d
    356 	mov	DWORD[24+rsp],ebp
    357 	mov	ecx,r12d
    358 	xor	r14d,DWORD[36+rsp]
    359 	xor	eax,edi
    360 	rol	ecx,5
    361 	xor	r14d,DWORD[60+rsp]
    362 	lea	r11d,[1859775393+r11*1+rbp]
    363 	xor	eax,esi
    364 	add	r11d,ecx
    365 	rol	r13d,30
    366 	add	r11d,eax
    367 	rol	r14d,1
    368 	xor	edx,DWORD[32+rsp]
    369 	mov	eax,r12d
    370 	mov	DWORD[28+rsp],r14d
    371 	mov	ecx,r11d
    372 	xor	edx,DWORD[40+rsp]
    373 	xor	eax,esi
    374 	rol	ecx,5
    375 	xor	edx,DWORD[rsp]
    376 	lea	edi,[1859775393+rdi*1+r14]
    377 	xor	eax,r13d
    378 	add	edi,ecx
    379 	rol	r12d,30
    380 	add	edi,eax
    381 	rol	edx,1
    382 	xor	ebp,DWORD[36+rsp]
    383 	mov	eax,r11d
    384 	mov	DWORD[32+rsp],edx
    385 	mov	ecx,edi
    386 	xor	ebp,DWORD[44+rsp]
    387 	xor	eax,r13d
    388 	rol	ecx,5
    389 	xor	ebp,DWORD[4+rsp]
    390 	lea	esi,[1859775393+rsi*1+rdx]
    391 	xor	eax,r12d
    392 	add	esi,ecx
    393 	rol	r11d,30
    394 	add	esi,eax
    395 	rol	ebp,1
    396 	xor	r14d,DWORD[40+rsp]
    397 	mov	eax,edi
    398 	mov	DWORD[36+rsp],ebp
    399 	mov	ecx,esi
    400 	xor	r14d,DWORD[48+rsp]
    401 	xor	eax,r12d
    402 	rol	ecx,5
    403 	xor	r14d,DWORD[8+rsp]
    404 	lea	r13d,[1859775393+r13*1+rbp]
    405 	xor	eax,r11d
    406 	add	r13d,ecx
    407 	rol	edi,30
    408 	add	r13d,eax
    409 	rol	r14d,1
    410 	xor	edx,DWORD[44+rsp]
    411 	mov	eax,esi
    412 	mov	DWORD[40+rsp],r14d
    413 	mov	ecx,r13d
    414 	xor	edx,DWORD[52+rsp]
    415 	xor	eax,r11d
    416 	rol	ecx,5
    417 	xor	edx,DWORD[12+rsp]
    418 	lea	r12d,[1859775393+r12*1+r14]
    419 	xor	eax,edi
    420 	add	r12d,ecx
    421 	rol	esi,30
    422 	add	r12d,eax
    423 	rol	edx,1
    424 	xor	ebp,DWORD[48+rsp]
    425 	mov	eax,r13d
    426 	mov	DWORD[44+rsp],edx
    427 	mov	ecx,r12d
    428 	xor	ebp,DWORD[56+rsp]
    429 	xor	eax,edi
    430 	rol	ecx,5
    431 	xor	ebp,DWORD[16+rsp]
    432 	lea	r11d,[1859775393+r11*1+rdx]
    433 	xor	eax,esi
    434 	add	r11d,ecx
    435 	rol	r13d,30
    436 	add	r11d,eax
    437 	rol	ebp,1
    438 	xor	r14d,DWORD[52+rsp]
    439 	mov	eax,r12d
    440 	mov	DWORD[48+rsp],ebp
    441 	mov	ecx,r11d
    442 	xor	r14d,DWORD[60+rsp]
    443 	xor	eax,esi
    444 	rol	ecx,5
    445 	xor	r14d,DWORD[20+rsp]
    446 	lea	edi,[1859775393+rdi*1+rbp]
    447 	xor	eax,r13d
    448 	add	edi,ecx
    449 	rol	r12d,30
    450 	add	edi,eax
    451 	rol	r14d,1
    452 	xor	edx,DWORD[56+rsp]
    453 	mov	eax,r11d
    454 	mov	DWORD[52+rsp],r14d
    455 	mov	ecx,edi
    456 	xor	edx,DWORD[rsp]
    457 	xor	eax,r13d
    458 	rol	ecx,5
    459 	xor	edx,DWORD[24+rsp]
    460 	lea	esi,[1859775393+rsi*1+r14]
    461 	xor	eax,r12d
    462 	add	esi,ecx
    463 	rol	r11d,30
    464 	add	esi,eax
    465 	rol	edx,1
    466 	xor	ebp,DWORD[60+rsp]
    467 	mov	eax,edi
    468 	mov	DWORD[56+rsp],edx
    469 	mov	ecx,esi
    470 	xor	ebp,DWORD[4+rsp]
    471 	xor	eax,r12d
    472 	rol	ecx,5
    473 	xor	ebp,DWORD[28+rsp]
    474 	lea	r13d,[1859775393+r13*1+rdx]
    475 	xor	eax,r11d
    476 	add	r13d,ecx
    477 	rol	edi,30
    478 	add	r13d,eax
    479 	rol	ebp,1
    480 	xor	r14d,DWORD[rsp]
    481 	mov	eax,esi
    482 	mov	DWORD[60+rsp],ebp
    483 	mov	ecx,r13d
    484 	xor	r14d,DWORD[8+rsp]
    485 	xor	eax,r11d
    486 	rol	ecx,5
    487 	xor	r14d,DWORD[32+rsp]
    488 	lea	r12d,[1859775393+r12*1+rbp]
    489 	xor	eax,edi
    490 	add	r12d,ecx
    491 	rol	esi,30
    492 	add	r12d,eax
    493 	rol	r14d,1
    494 	xor	edx,DWORD[4+rsp]
    495 	mov	eax,r13d
    496 	mov	DWORD[rsp],r14d
    497 	mov	ecx,r12d
    498 	xor	edx,DWORD[12+rsp]
    499 	xor	eax,edi
    500 	rol	ecx,5
    501 	xor	edx,DWORD[36+rsp]
    502 	lea	r11d,[1859775393+r11*1+r14]
    503 	xor	eax,esi
    504 	add	r11d,ecx
    505 	rol	r13d,30
    506 	add	r11d,eax
    507 	rol	edx,1
    508 	xor	ebp,DWORD[8+rsp]
    509 	mov	eax,r12d
    510 	mov	DWORD[4+rsp],edx
    511 	mov	ecx,r11d
    512 	xor	ebp,DWORD[16+rsp]
    513 	xor	eax,esi
    514 	rol	ecx,5
    515 	xor	ebp,DWORD[40+rsp]
    516 	lea	edi,[1859775393+rdi*1+rdx]
    517 	xor	eax,r13d
    518 	add	edi,ecx
    519 	rol	r12d,30
    520 	add	edi,eax
    521 	rol	ebp,1
    522 	xor	r14d,DWORD[12+rsp]
    523 	mov	eax,r11d
    524 	mov	DWORD[8+rsp],ebp
    525 	mov	ecx,edi
    526 	xor	r14d,DWORD[20+rsp]
    527 	xor	eax,r13d
    528 	rol	ecx,5
    529 	xor	r14d,DWORD[44+rsp]
    530 	lea	esi,[1859775393+rsi*1+rbp]
    531 	xor	eax,r12d
    532 	add	esi,ecx
    533 	rol	r11d,30
    534 	add	esi,eax
    535 	rol	r14d,1
    536 	xor	edx,DWORD[16+rsp]
    537 	mov	eax,edi
    538 	mov	DWORD[12+rsp],r14d
    539 	mov	ecx,esi
    540 	xor	edx,DWORD[24+rsp]
    541 	xor	eax,r12d
    542 	rol	ecx,5
    543 	xor	edx,DWORD[48+rsp]
    544 	lea	r13d,[1859775393+r13*1+r14]
    545 	xor	eax,r11d
    546 	add	r13d,ecx
    547 	rol	edi,30
    548 	add	r13d,eax
    549 	rol	edx,1
    550 	xor	ebp,DWORD[20+rsp]
    551 	mov	eax,esi
    552 	mov	DWORD[16+rsp],edx
    553 	mov	ecx,r13d
    554 	xor	ebp,DWORD[28+rsp]
    555 	xor	eax,r11d
    556 	rol	ecx,5
    557 	xor	ebp,DWORD[52+rsp]
    558 	lea	r12d,[1859775393+r12*1+rdx]
    559 	xor	eax,edi
    560 	add	r12d,ecx
    561 	rol	esi,30
    562 	add	r12d,eax
    563 	rol	ebp,1
    564 	xor	r14d,DWORD[24+rsp]
    565 	mov	eax,r13d
    566 	mov	DWORD[20+rsp],ebp
    567 	mov	ecx,r12d
    568 	xor	r14d,DWORD[32+rsp]
    569 	xor	eax,edi
    570 	rol	ecx,5
    571 	xor	r14d,DWORD[56+rsp]
    572 	lea	r11d,[1859775393+r11*1+rbp]
    573 	xor	eax,esi
    574 	add	r11d,ecx
    575 	rol	r13d,30
    576 	add	r11d,eax
    577 	rol	r14d,1
    578 	xor	edx,DWORD[28+rsp]
    579 	mov	eax,r12d
    580 	mov	DWORD[24+rsp],r14d
    581 	mov	ecx,r11d
    582 	xor	edx,DWORD[36+rsp]
    583 	xor	eax,esi
    584 	rol	ecx,5
    585 	xor	edx,DWORD[60+rsp]
    586 	lea	edi,[1859775393+rdi*1+r14]
    587 	xor	eax,r13d
    588 	add	edi,ecx
    589 	rol	r12d,30
    590 	add	edi,eax
    591 	rol	edx,1
    592 	xor	ebp,DWORD[32+rsp]
    593 	mov	eax,r11d
    594 	mov	DWORD[28+rsp],edx
    595 	mov	ecx,edi
    596 	xor	ebp,DWORD[40+rsp]
    597 	xor	eax,r13d
    598 	rol	ecx,5
    599 	xor	ebp,DWORD[rsp]
    600 	lea	esi,[1859775393+rsi*1+rdx]
    601 	xor	eax,r12d
    602 	add	esi,ecx
    603 	rol	r11d,30
    604 	add	esi,eax
    605 	rol	ebp,1
    606 	xor	r14d,DWORD[36+rsp]
    607 	mov	eax,r12d
    608 	mov	DWORD[32+rsp],ebp
    609 	mov	ebx,r12d
    610 	xor	r14d,DWORD[44+rsp]
    611 	and	eax,r11d
    612 	mov	ecx,esi
    613 	xor	r14d,DWORD[4+rsp]
    614 	lea	r13d,[((-1894007588))+r13*1+rbp]
    615 	xor	ebx,r11d
    616 	rol	ecx,5
    617 	add	r13d,eax
    618 	rol	r14d,1
    619 	and	ebx,edi
    620 	add	r13d,ecx
    621 	rol	edi,30
    622 	add	r13d,ebx
    623 	xor	edx,DWORD[40+rsp]
    624 	mov	eax,r11d
    625 	mov	DWORD[36+rsp],r14d
    626 	mov	ebx,r11d
    627 	xor	edx,DWORD[48+rsp]
    628 	and	eax,edi
    629 	mov	ecx,r13d
    630 	xor	edx,DWORD[8+rsp]
    631 	lea	r12d,[((-1894007588))+r12*1+r14]
    632 	xor	ebx,edi
    633 	rol	ecx,5
    634 	add	r12d,eax
    635 	rol	edx,1
    636 	and	ebx,esi
    637 	add	r12d,ecx
    638 	rol	esi,30
    639 	add	r12d,ebx
    640 	xor	ebp,DWORD[44+rsp]
    641 	mov	eax,edi
    642 	mov	DWORD[40+rsp],edx
    643 	mov	ebx,edi
    644 	xor	ebp,DWORD[52+rsp]
    645 	and	eax,esi
    646 	mov	ecx,r12d
    647 	xor	ebp,DWORD[12+rsp]
    648 	lea	r11d,[((-1894007588))+r11*1+rdx]
    649 	xor	ebx,esi
    650 	rol	ecx,5
    651 	add	r11d,eax
    652 	rol	ebp,1
    653 	and	ebx,r13d
    654 	add	r11d,ecx
    655 	rol	r13d,30
    656 	add	r11d,ebx
    657 	xor	r14d,DWORD[48+rsp]
    658 	mov	eax,esi
    659 	mov	DWORD[44+rsp],ebp
    660 	mov	ebx,esi
    661 	xor	r14d,DWORD[56+rsp]
    662 	and	eax,r13d
    663 	mov	ecx,r11d
    664 	xor	r14d,DWORD[16+rsp]
    665 	lea	edi,[((-1894007588))+rdi*1+rbp]
    666 	xor	ebx,r13d
    667 	rol	ecx,5
    668 	add	edi,eax
    669 	rol	r14d,1
    670 	and	ebx,r12d
    671 	add	edi,ecx
    672 	rol	r12d,30
    673 	add	edi,ebx
    674 	xor	edx,DWORD[52+rsp]
    675 	mov	eax,r13d
    676 	mov	DWORD[48+rsp],r14d
    677 	mov	ebx,r13d
    678 	xor	edx,DWORD[60+rsp]
    679 	and	eax,r12d
    680 	mov	ecx,edi
    681 	xor	edx,DWORD[20+rsp]
    682 	lea	esi,[((-1894007588))+rsi*1+r14]
    683 	xor	ebx,r12d
    684 	rol	ecx,5
    685 	add	esi,eax
    686 	rol	edx,1
    687 	and	ebx,r11d
    688 	add	esi,ecx
    689 	rol	r11d,30
    690 	add	esi,ebx
    691 	xor	ebp,DWORD[56+rsp]
    692 	mov	eax,r12d
    693 	mov	DWORD[52+rsp],edx
    694 	mov	ebx,r12d
    695 	xor	ebp,DWORD[rsp]
    696 	and	eax,r11d
    697 	mov	ecx,esi
    698 	xor	ebp,DWORD[24+rsp]
    699 	lea	r13d,[((-1894007588))+r13*1+rdx]
    700 	xor	ebx,r11d
    701 	rol	ecx,5
    702 	add	r13d,eax
    703 	rol	ebp,1
    704 	and	ebx,edi
    705 	add	r13d,ecx
    706 	rol	edi,30
    707 	add	r13d,ebx
    708 	xor	r14d,DWORD[60+rsp]
    709 	mov	eax,r11d
    710 	mov	DWORD[56+rsp],ebp
    711 	mov	ebx,r11d
    712 	xor	r14d,DWORD[4+rsp]
    713 	and	eax,edi
    714 	mov	ecx,r13d
    715 	xor	r14d,DWORD[28+rsp]
    716 	lea	r12d,[((-1894007588))+r12*1+rbp]
    717 	xor	ebx,edi
    718 	rol	ecx,5
    719 	add	r12d,eax
    720 	rol	r14d,1
    721 	and	ebx,esi
    722 	add	r12d,ecx
    723 	rol	esi,30
    724 	add	r12d,ebx
    725 	xor	edx,DWORD[rsp]
    726 	mov	eax,edi
    727 	mov	DWORD[60+rsp],r14d
    728 	mov	ebx,edi
    729 	xor	edx,DWORD[8+rsp]
    730 	and	eax,esi
    731 	mov	ecx,r12d
    732 	xor	edx,DWORD[32+rsp]
    733 	lea	r11d,[((-1894007588))+r11*1+r14]
    734 	xor	ebx,esi
    735 	rol	ecx,5
    736 	add	r11d,eax
    737 	rol	edx,1
    738 	and	ebx,r13d
    739 	add	r11d,ecx
    740 	rol	r13d,30
    741 	add	r11d,ebx
    742 	xor	ebp,DWORD[4+rsp]
    743 	mov	eax,esi
    744 	mov	DWORD[rsp],edx
    745 	mov	ebx,esi
    746 	xor	ebp,DWORD[12+rsp]
    747 	and	eax,r13d
    748 	mov	ecx,r11d
    749 	xor	ebp,DWORD[36+rsp]
    750 	lea	edi,[((-1894007588))+rdi*1+rdx]
    751 	xor	ebx,r13d
    752 	rol	ecx,5
    753 	add	edi,eax
    754 	rol	ebp,1
    755 	and	ebx,r12d
    756 	add	edi,ecx
    757 	rol	r12d,30
    758 	add	edi,ebx
    759 	xor	r14d,DWORD[8+rsp]
    760 	mov	eax,r13d
    761 	mov	DWORD[4+rsp],ebp
    762 	mov	ebx,r13d
    763 	xor	r14d,DWORD[16+rsp]
    764 	and	eax,r12d
    765 	mov	ecx,edi
    766 	xor	r14d,DWORD[40+rsp]
    767 	lea	esi,[((-1894007588))+rsi*1+rbp]
    768 	xor	ebx,r12d
    769 	rol	ecx,5
    770 	add	esi,eax
    771 	rol	r14d,1
    772 	and	ebx,r11d
    773 	add	esi,ecx
    774 	rol	r11d,30
    775 	add	esi,ebx
    776 	xor	edx,DWORD[12+rsp]
    777 	mov	eax,r12d
    778 	mov	DWORD[8+rsp],r14d
    779 	mov	ebx,r12d
    780 	xor	edx,DWORD[20+rsp]
    781 	and	eax,r11d
    782 	mov	ecx,esi
    783 	xor	edx,DWORD[44+rsp]
    784 	lea	r13d,[((-1894007588))+r13*1+r14]
    785 	xor	ebx,r11d
    786 	rol	ecx,5
    787 	add	r13d,eax
    788 	rol	edx,1
    789 	and	ebx,edi
    790 	add	r13d,ecx
    791 	rol	edi,30
    792 	add	r13d,ebx
    793 	xor	ebp,DWORD[16+rsp]
    794 	mov	eax,r11d
    795 	mov	DWORD[12+rsp],edx
    796 	mov	ebx,r11d
    797 	xor	ebp,DWORD[24+rsp]
    798 	and	eax,edi
    799 	mov	ecx,r13d
    800 	xor	ebp,DWORD[48+rsp]
    801 	lea	r12d,[((-1894007588))+r12*1+rdx]
    802 	xor	ebx,edi
    803 	rol	ecx,5
    804 	add	r12d,eax
    805 	rol	ebp,1
    806 	and	ebx,esi
    807 	add	r12d,ecx
    808 	rol	esi,30
    809 	add	r12d,ebx
    810 	xor	r14d,DWORD[20+rsp]
    811 	mov	eax,edi
    812 	mov	DWORD[16+rsp],ebp
    813 	mov	ebx,edi
    814 	xor	r14d,DWORD[28+rsp]
    815 	and	eax,esi
    816 	mov	ecx,r12d
    817 	xor	r14d,DWORD[52+rsp]
    818 	lea	r11d,[((-1894007588))+r11*1+rbp]
    819 	xor	ebx,esi
    820 	rol	ecx,5
    821 	add	r11d,eax
    822 	rol	r14d,1
    823 	and	ebx,r13d
    824 	add	r11d,ecx
    825 	rol	r13d,30
    826 	add	r11d,ebx
    827 	xor	edx,DWORD[24+rsp]
    828 	mov	eax,esi
    829 	mov	DWORD[20+rsp],r14d
    830 	mov	ebx,esi
    831 	xor	edx,DWORD[32+rsp]
    832 	and	eax,r13d
    833 	mov	ecx,r11d
    834 	xor	edx,DWORD[56+rsp]
    835 	lea	edi,[((-1894007588))+rdi*1+r14]
    836 	xor	ebx,r13d
    837 	rol	ecx,5
    838 	add	edi,eax
    839 	rol	edx,1
    840 	and	ebx,r12d
    841 	add	edi,ecx
    842 	rol	r12d,30
    843 	add	edi,ebx
    844 	xor	ebp,DWORD[28+rsp]
    845 	mov	eax,r13d
    846 	mov	DWORD[24+rsp],edx
    847 	mov	ebx,r13d
    848 	xor	ebp,DWORD[36+rsp]
    849 	and	eax,r12d
    850 	mov	ecx,edi
    851 	xor	ebp,DWORD[60+rsp]
    852 	lea	esi,[((-1894007588))+rsi*1+rdx]
    853 	xor	ebx,r12d
    854 	rol	ecx,5
    855 	add	esi,eax
    856 	rol	ebp,1
    857 	and	ebx,r11d
    858 	add	esi,ecx
    859 	rol	r11d,30
    860 	add	esi,ebx
    861 	xor	r14d,DWORD[32+rsp]
    862 	mov	eax,r12d
    863 	mov	DWORD[28+rsp],ebp
    864 	mov	ebx,r12d
    865 	xor	r14d,DWORD[40+rsp]
    866 	and	eax,r11d
    867 	mov	ecx,esi
    868 	xor	r14d,DWORD[rsp]
    869 	lea	r13d,[((-1894007588))+r13*1+rbp]
    870 	xor	ebx,r11d
    871 	rol	ecx,5
    872 	add	r13d,eax
    873 	rol	r14d,1
    874 	and	ebx,edi
    875 	add	r13d,ecx
    876 	rol	edi,30
    877 	add	r13d,ebx
    878 	xor	edx,DWORD[36+rsp]
    879 	mov	eax,r11d
    880 	mov	DWORD[32+rsp],r14d
    881 	mov	ebx,r11d
    882 	xor	edx,DWORD[44+rsp]
    883 	and	eax,edi
    884 	mov	ecx,r13d
    885 	xor	edx,DWORD[4+rsp]
    886 	lea	r12d,[((-1894007588))+r12*1+r14]
    887 	xor	ebx,edi
    888 	rol	ecx,5
    889 	add	r12d,eax
    890 	rol	edx,1
    891 	and	ebx,esi
    892 	add	r12d,ecx
    893 	rol	esi,30
    894 	add	r12d,ebx
    895 	xor	ebp,DWORD[40+rsp]
    896 	mov	eax,edi
    897 	mov	DWORD[36+rsp],edx
    898 	mov	ebx,edi
    899 	xor	ebp,DWORD[48+rsp]
    900 	and	eax,esi
    901 	mov	ecx,r12d
    902 	xor	ebp,DWORD[8+rsp]
    903 	lea	r11d,[((-1894007588))+r11*1+rdx]
    904 	xor	ebx,esi
    905 	rol	ecx,5
    906 	add	r11d,eax
    907 	rol	ebp,1
    908 	and	ebx,r13d
    909 	add	r11d,ecx
    910 	rol	r13d,30
    911 	add	r11d,ebx
    912 	xor	r14d,DWORD[44+rsp]
    913 	mov	eax,esi
    914 	mov	DWORD[40+rsp],ebp
    915 	mov	ebx,esi
    916 	xor	r14d,DWORD[52+rsp]
    917 	and	eax,r13d
    918 	mov	ecx,r11d
    919 	xor	r14d,DWORD[12+rsp]
    920 	lea	edi,[((-1894007588))+rdi*1+rbp]
    921 	xor	ebx,r13d
    922 	rol	ecx,5
    923 	add	edi,eax
    924 	rol	r14d,1
    925 	and	ebx,r12d
    926 	add	edi,ecx
    927 	rol	r12d,30
    928 	add	edi,ebx
    929 	xor	edx,DWORD[48+rsp]
    930 	mov	eax,r13d
    931 	mov	DWORD[44+rsp],r14d
    932 	mov	ebx,r13d
    933 	xor	edx,DWORD[56+rsp]
    934 	and	eax,r12d
    935 	mov	ecx,edi
    936 	xor	edx,DWORD[16+rsp]
    937 	lea	esi,[((-1894007588))+rsi*1+r14]
    938 	xor	ebx,r12d
    939 	rol	ecx,5
    940 	add	esi,eax
    941 	rol	edx,1
    942 	and	ebx,r11d
    943 	add	esi,ecx
    944 	rol	r11d,30
    945 	add	esi,ebx
    946 	xor	ebp,DWORD[52+rsp]
    947 	mov	eax,edi
    948 	mov	DWORD[48+rsp],edx
    949 	mov	ecx,esi
    950 	xor	ebp,DWORD[60+rsp]
    951 	xor	eax,r12d
    952 	rol	ecx,5
    953 	xor	ebp,DWORD[20+rsp]
    954 	lea	r13d,[((-899497514))+r13*1+rdx]
    955 	xor	eax,r11d
    956 	add	r13d,ecx
    957 	rol	edi,30
    958 	add	r13d,eax
    959 	rol	ebp,1
    960 	xor	r14d,DWORD[56+rsp]
    961 	mov	eax,esi
    962 	mov	DWORD[52+rsp],ebp
    963 	mov	ecx,r13d
    964 	xor	r14d,DWORD[rsp]
    965 	xor	eax,r11d
    966 	rol	ecx,5
    967 	xor	r14d,DWORD[24+rsp]
    968 	lea	r12d,[((-899497514))+r12*1+rbp]
    969 	xor	eax,edi
    970 	add	r12d,ecx
    971 	rol	esi,30
    972 	add	r12d,eax
    973 	rol	r14d,1
    974 	xor	edx,DWORD[60+rsp]
    975 	mov	eax,r13d
    976 	mov	DWORD[56+rsp],r14d
    977 	mov	ecx,r12d
    978 	xor	edx,DWORD[4+rsp]
    979 	xor	eax,edi
    980 	rol	ecx,5
    981 	xor	edx,DWORD[28+rsp]
    982 	lea	r11d,[((-899497514))+r11*1+r14]
    983 	xor	eax,esi
    984 	add	r11d,ecx
    985 	rol	r13d,30
    986 	add	r11d,eax
    987 	rol	edx,1
    988 	xor	ebp,DWORD[rsp]
    989 	mov	eax,r12d
    990 	mov	DWORD[60+rsp],edx
    991 	mov	ecx,r11d
    992 	xor	ebp,DWORD[8+rsp]
    993 	xor	eax,esi
    994 	rol	ecx,5
    995 	xor	ebp,DWORD[32+rsp]
    996 	lea	edi,[((-899497514))+rdi*1+rdx]
    997 	xor	eax,r13d
    998 	add	edi,ecx
    999 	rol	r12d,30
   1000 	add	edi,eax
   1001 	rol	ebp,1
   1002 	xor	r14d,DWORD[4+rsp]
   1003 	mov	eax,r11d
   1004 	mov	DWORD[rsp],ebp
   1005 	mov	ecx,edi
   1006 	xor	r14d,DWORD[12+rsp]
   1007 	xor	eax,r13d
   1008 	rol	ecx,5
   1009 	xor	r14d,DWORD[36+rsp]
   1010 	lea	esi,[((-899497514))+rsi*1+rbp]
   1011 	xor	eax,r12d
   1012 	add	esi,ecx
   1013 	rol	r11d,30
   1014 	add	esi,eax
   1015 	rol	r14d,1
   1016 	xor	edx,DWORD[8+rsp]
   1017 	mov	eax,edi
   1018 	mov	DWORD[4+rsp],r14d
   1019 	mov	ecx,esi
   1020 	xor	edx,DWORD[16+rsp]
   1021 	xor	eax,r12d
   1022 	rol	ecx,5
   1023 	xor	edx,DWORD[40+rsp]
   1024 	lea	r13d,[((-899497514))+r13*1+r14]
   1025 	xor	eax,r11d
   1026 	add	r13d,ecx
   1027 	rol	edi,30
   1028 	add	r13d,eax
   1029 	rol	edx,1
   1030 	xor	ebp,DWORD[12+rsp]
   1031 	mov	eax,esi
   1032 	mov	DWORD[8+rsp],edx
   1033 	mov	ecx,r13d
   1034 	xor	ebp,DWORD[20+rsp]
   1035 	xor	eax,r11d
   1036 	rol	ecx,5
   1037 	xor	ebp,DWORD[44+rsp]
   1038 	lea	r12d,[((-899497514))+r12*1+rdx]
   1039 	xor	eax,edi
   1040 	add	r12d,ecx
   1041 	rol	esi,30
   1042 	add	r12d,eax
   1043 	rol	ebp,1
   1044 	xor	r14d,DWORD[16+rsp]
   1045 	mov	eax,r13d
   1046 	mov	DWORD[12+rsp],ebp
   1047 	mov	ecx,r12d
   1048 	xor	r14d,DWORD[24+rsp]
   1049 	xor	eax,edi
   1050 	rol	ecx,5
   1051 	xor	r14d,DWORD[48+rsp]
   1052 	lea	r11d,[((-899497514))+r11*1+rbp]
   1053 	xor	eax,esi
   1054 	add	r11d,ecx
   1055 	rol	r13d,30
   1056 	add	r11d,eax
   1057 	rol	r14d,1
   1058 	xor	edx,DWORD[20+rsp]
   1059 	mov	eax,r12d
   1060 	mov	DWORD[16+rsp],r14d
   1061 	mov	ecx,r11d
   1062 	xor	edx,DWORD[28+rsp]
   1063 	xor	eax,esi
   1064 	rol	ecx,5
   1065 	xor	edx,DWORD[52+rsp]
   1066 	lea	edi,[((-899497514))+rdi*1+r14]
   1067 	xor	eax,r13d
   1068 	add	edi,ecx
   1069 	rol	r12d,30
   1070 	add	edi,eax
   1071 	rol	edx,1
   1072 	xor	ebp,DWORD[24+rsp]
   1073 	mov	eax,r11d
   1074 	mov	DWORD[20+rsp],edx
   1075 	mov	ecx,edi
   1076 	xor	ebp,DWORD[32+rsp]
   1077 	xor	eax,r13d
   1078 	rol	ecx,5
   1079 	xor	ebp,DWORD[56+rsp]
   1080 	lea	esi,[((-899497514))+rsi*1+rdx]
   1081 	xor	eax,r12d
   1082 	add	esi,ecx
   1083 	rol	r11d,30
   1084 	add	esi,eax
   1085 	rol	ebp,1
   1086 	xor	r14d,DWORD[28+rsp]
   1087 	mov	eax,edi
   1088 	mov	DWORD[24+rsp],ebp
   1089 	mov	ecx,esi
   1090 	xor	r14d,DWORD[36+rsp]
   1091 	xor	eax,r12d
   1092 	rol	ecx,5
   1093 	xor	r14d,DWORD[60+rsp]
   1094 	lea	r13d,[((-899497514))+r13*1+rbp]
   1095 	xor	eax,r11d
   1096 	add	r13d,ecx
   1097 	rol	edi,30
   1098 	add	r13d,eax
   1099 	rol	r14d,1
   1100 	xor	edx,DWORD[32+rsp]
   1101 	mov	eax,esi
   1102 	mov	DWORD[28+rsp],r14d
   1103 	mov	ecx,r13d
   1104 	xor	edx,DWORD[40+rsp]
   1105 	xor	eax,r11d
   1106 	rol	ecx,5
   1107 	xor	edx,DWORD[rsp]
   1108 	lea	r12d,[((-899497514))+r12*1+r14]
   1109 	xor	eax,edi
   1110 	add	r12d,ecx
   1111 	rol	esi,30
   1112 	add	r12d,eax
   1113 	rol	edx,1
   1114 	xor	ebp,DWORD[36+rsp]
   1115 	mov	eax,r13d
   1116 
   1117 	mov	ecx,r12d
   1118 	xor	ebp,DWORD[44+rsp]
   1119 	xor	eax,edi
   1120 	rol	ecx,5
   1121 	xor	ebp,DWORD[4+rsp]
   1122 	lea	r11d,[((-899497514))+r11*1+rdx]
   1123 	xor	eax,esi
   1124 	add	r11d,ecx
   1125 	rol	r13d,30
   1126 	add	r11d,eax
   1127 	rol	ebp,1
   1128 	xor	r14d,DWORD[40+rsp]
   1129 	mov	eax,r12d
   1130 
   1131 	mov	ecx,r11d
   1132 	xor	r14d,DWORD[48+rsp]
   1133 	xor	eax,esi
   1134 	rol	ecx,5
   1135 	xor	r14d,DWORD[8+rsp]
   1136 	lea	edi,[((-899497514))+rdi*1+rbp]
   1137 	xor	eax,r13d
   1138 	add	edi,ecx
   1139 	rol	r12d,30
   1140 	add	edi,eax
   1141 	rol	r14d,1
   1142 	xor	edx,DWORD[44+rsp]
   1143 	mov	eax,r11d
   1144 
   1145 	mov	ecx,edi
   1146 	xor	edx,DWORD[52+rsp]
   1147 	xor	eax,r13d
   1148 	rol	ecx,5
   1149 	xor	edx,DWORD[12+rsp]
   1150 	lea	esi,[((-899497514))+rsi*1+r14]
   1151 	xor	eax,r12d
   1152 	add	esi,ecx
   1153 	rol	r11d,30
   1154 	add	esi,eax
   1155 	rol	edx,1
   1156 	xor	ebp,DWORD[48+rsp]
   1157 	mov	eax,edi
   1158 
   1159 	mov	ecx,esi
   1160 	xor	ebp,DWORD[56+rsp]
   1161 	xor	eax,r12d
   1162 	rol	ecx,5
   1163 	xor	ebp,DWORD[16+rsp]
   1164 	lea	r13d,[((-899497514))+r13*1+rdx]
   1165 	xor	eax,r11d
   1166 	add	r13d,ecx
   1167 	rol	edi,30
   1168 	add	r13d,eax
   1169 	rol	ebp,1
   1170 	xor	r14d,DWORD[52+rsp]
   1171 	mov	eax,esi
   1172 
   1173 	mov	ecx,r13d
   1174 	xor	r14d,DWORD[60+rsp]
   1175 	xor	eax,r11d
   1176 	rol	ecx,5
   1177 	xor	r14d,DWORD[20+rsp]
   1178 	lea	r12d,[((-899497514))+r12*1+rbp]
   1179 	xor	eax,edi
   1180 	add	r12d,ecx
   1181 	rol	esi,30
   1182 	add	r12d,eax
   1183 	rol	r14d,1
   1184 	xor	edx,DWORD[56+rsp]
   1185 	mov	eax,r13d
   1186 
   1187 	mov	ecx,r12d
   1188 	xor	edx,DWORD[rsp]
   1189 	xor	eax,edi
   1190 	rol	ecx,5
   1191 	xor	edx,DWORD[24+rsp]
   1192 	lea	r11d,[((-899497514))+r11*1+r14]
   1193 	xor	eax,esi
   1194 	add	r11d,ecx
   1195 	rol	r13d,30
   1196 	add	r11d,eax
   1197 	rol	edx,1
   1198 	xor	ebp,DWORD[60+rsp]
   1199 	mov	eax,r12d
   1200 
   1201 	mov	ecx,r11d
   1202 	xor	ebp,DWORD[4+rsp]
   1203 	xor	eax,esi
   1204 	rol	ecx,5
   1205 	xor	ebp,DWORD[28+rsp]
   1206 	lea	edi,[((-899497514))+rdi*1+rdx]
   1207 	xor	eax,r13d
   1208 	add	edi,ecx
   1209 	rol	r12d,30
   1210 	add	edi,eax
   1211 	rol	ebp,1
   1212 	mov	eax,r11d
   1213 	mov	ecx,edi
   1214 	xor	eax,r13d
   1215 	lea	esi,[((-899497514))+rsi*1+rbp]
   1216 	rol	ecx,5
   1217 	xor	eax,r12d
   1218 	add	esi,ecx
   1219 	rol	r11d,30
   1220 	add	esi,eax
   1221 	add	esi,DWORD[r8]
   1222 	add	edi,DWORD[4+r8]
   1223 	add	r11d,DWORD[8+r8]
   1224 	add	r12d,DWORD[12+r8]
   1225 	add	r13d,DWORD[16+r8]
   1226 	mov	DWORD[r8],esi
   1227 	mov	DWORD[4+r8],edi
   1228 	mov	DWORD[8+r8],r11d
   1229 	mov	DWORD[12+r8],r12d
   1230 	mov	DWORD[16+r8],r13d
   1231 
   1232 	sub	r10,1
   1233 	lea	r9,[64+r9]
   1234 	jnz	NEAR $L$loop
   1235 
   1236 	mov	rsi,QWORD[64+rsp]
   1237 	mov	r14,QWORD[((-40))+rsi]
   1238 	mov	r13,QWORD[((-32))+rsi]
   1239 	mov	r12,QWORD[((-24))+rsi]
   1240 	mov	rbp,QWORD[((-16))+rsi]
   1241 	mov	rbx,QWORD[((-8))+rsi]
   1242 	lea	rsp,[rsi]
   1243 $L$epilogue:
   1244 	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
   1245 	mov	rsi,QWORD[16+rsp]
   1246 	DB	0F3h,0C3h		;repret
   1247 $L$SEH_end_sha1_block_data_order:
   1248 
   1249 ALIGN	16
   1250 sha1_block_data_order_ssse3:
   1251 	mov	QWORD[8+rsp],rdi	;WIN64 prologue
   1252 	mov	QWORD[16+rsp],rsi
   1253 	mov	rax,rsp
   1254 $L$SEH_begin_sha1_block_data_order_ssse3:
   1255 	mov	rdi,rcx
   1256 	mov	rsi,rdx
   1257 	mov	rdx,r8
   1258 
   1259 
   1260 _ssse3_shortcut:
   1261 	mov	rax,rsp
   1262 	push	rbx
   1263 	push	rbp
   1264 	push	r12
   1265 	push	r13
   1266 	push	r14
   1267 	lea	rsp,[((-160))+rsp]
   1268 	movaps	XMMWORD[(-40-96)+rax],xmm6
   1269 	movaps	XMMWORD[(-40-80)+rax],xmm7
   1270 	movaps	XMMWORD[(-40-64)+rax],xmm8
   1271 	movaps	XMMWORD[(-40-48)+rax],xmm9
   1272 	movaps	XMMWORD[(-40-32)+rax],xmm10
   1273 	movaps	XMMWORD[(-40-16)+rax],xmm11
   1274 $L$prologue_ssse3:
   1275 	mov	r14,rax
   1276 	and	rsp,-64
   1277 	mov	r8,rdi
   1278 	mov	r9,rsi
   1279 	mov	r10,rdx
   1280 
   1281 	shl	r10,6
   1282 	add	r10,r9
   1283 	lea	r11,[((K_XX_XX+64))]
   1284 
   1285 	mov	eax,DWORD[r8]
   1286 	mov	ebx,DWORD[4+r8]
   1287 	mov	ecx,DWORD[8+r8]
   1288 	mov	edx,DWORD[12+r8]
   1289 	mov	esi,ebx
   1290 	mov	ebp,DWORD[16+r8]
   1291 	mov	edi,ecx
   1292 	xor	edi,edx
   1293 	and	esi,edi
   1294 
   1295 	movdqa	xmm6,XMMWORD[64+r11]
   1296 	movdqa	xmm9,XMMWORD[((-64))+r11]
   1297 	movdqu	xmm0,XMMWORD[r9]
   1298 	movdqu	xmm1,XMMWORD[16+r9]
   1299 	movdqu	xmm2,XMMWORD[32+r9]
   1300 	movdqu	xmm3,XMMWORD[48+r9]
   1301 DB	102,15,56,0,198
   1302 DB	102,15,56,0,206
   1303 DB	102,15,56,0,214
   1304 	add	r9,64
   1305 	paddd	xmm0,xmm9
   1306 DB	102,15,56,0,222
   1307 	paddd	xmm1,xmm9
   1308 	paddd	xmm2,xmm9
   1309 	movdqa	XMMWORD[rsp],xmm0
   1310 	psubd	xmm0,xmm9
   1311 	movdqa	XMMWORD[16+rsp],xmm1
   1312 	psubd	xmm1,xmm9
   1313 	movdqa	XMMWORD[32+rsp],xmm2
   1314 	psubd	xmm2,xmm9
   1315 	jmp	NEAR $L$oop_ssse3
   1316 ALIGN	16
   1317 $L$oop_ssse3:
   1318 	ror	ebx,2
   1319 	pshufd	xmm4,xmm0,238
   1320 	xor	esi,edx
   1321 	movdqa	xmm8,xmm3
   1322 	paddd	xmm9,xmm3
   1323 	mov	edi,eax
   1324 	add	ebp,DWORD[rsp]
   1325 	punpcklqdq	xmm4,xmm1
   1326 	xor	ebx,ecx
   1327 	rol	eax,5
   1328 	add	ebp,esi
   1329 	psrldq	xmm8,4
   1330 	and	edi,ebx
   1331 	xor	ebx,ecx
   1332 	pxor	xmm4,xmm0
   1333 	add	ebp,eax
   1334 	ror	eax,7
   1335 	pxor	xmm8,xmm2
   1336 	xor	edi,ecx
   1337 	mov	esi,ebp
   1338 	add	edx,DWORD[4+rsp]
   1339 	pxor	xmm4,xmm8
   1340 	xor	eax,ebx
   1341 	rol	ebp,5
   1342 	movdqa	XMMWORD[48+rsp],xmm9
   1343 	add	edx,edi
   1344 	and	esi,eax
   1345 	movdqa	xmm10,xmm4
   1346 	xor	eax,ebx
   1347 	add	edx,ebp
   1348 	ror	ebp,7
   1349 	movdqa	xmm8,xmm4
   1350 	xor	esi,ebx
   1351 	pslldq	xmm10,12
   1352 	paddd	xmm4,xmm4
   1353 	mov	edi,edx
   1354 	add	ecx,DWORD[8+rsp]
   1355 	psrld	xmm8,31
   1356 	xor	ebp,eax
   1357 	rol	edx,5
   1358 	add	ecx,esi
   1359 	movdqa	xmm9,xmm10
   1360 	and	edi,ebp
   1361 	xor	ebp,eax
   1362 	psrld	xmm10,30
   1363 	add	ecx,edx
   1364 	ror	edx,7
   1365 	por	xmm4,xmm8
   1366 	xor	edi,eax
   1367 	mov	esi,ecx
   1368 	add	ebx,DWORD[12+rsp]
   1369 	pslld	xmm9,2
   1370 	pxor	xmm4,xmm10
   1371 	xor	edx,ebp
   1372 	movdqa	xmm10,XMMWORD[((-64))+r11]
   1373 	rol	ecx,5
   1374 	add	ebx,edi
   1375 	and	esi,edx
   1376 	pxor	xmm4,xmm9
   1377 	xor	edx,ebp
   1378 	add	ebx,ecx
   1379 	ror	ecx,7
   1380 	pshufd	xmm5,xmm1,238
   1381 	xor	esi,ebp
   1382 	movdqa	xmm9,xmm4
   1383 	paddd	xmm10,xmm4
   1384 	mov	edi,ebx
   1385 	add	eax,DWORD[16+rsp]
   1386 	punpcklqdq	xmm5,xmm2
   1387 	xor	ecx,edx
   1388 	rol	ebx,5
   1389 	add	eax,esi
   1390 	psrldq	xmm9,4
   1391 	and	edi,ecx
   1392 	xor	ecx,edx
   1393 	pxor	xmm5,xmm1
   1394 	add	eax,ebx
   1395 	ror	ebx,7
   1396 	pxor	xmm9,xmm3
   1397 	xor	edi,edx
   1398 	mov	esi,eax
   1399 	add	ebp,DWORD[20+rsp]
   1400 	pxor	xmm5,xmm9
   1401 	xor	ebx,ecx
   1402 	rol	eax,5
   1403 	movdqa	XMMWORD[rsp],xmm10
   1404 	add	ebp,edi
   1405 	and	esi,ebx
   1406 	movdqa	xmm8,xmm5
   1407 	xor	ebx,ecx
   1408 	add	ebp,eax
   1409 	ror	eax,7
   1410 	movdqa	xmm9,xmm5
   1411 	xor	esi,ecx
   1412 	pslldq	xmm8,12
   1413 	paddd	xmm5,xmm5
   1414 	mov	edi,ebp
   1415 	add	edx,DWORD[24+rsp]
   1416 	psrld	xmm9,31
   1417 	xor	eax,ebx
   1418 	rol	ebp,5
   1419 	add	edx,esi
   1420 	movdqa	xmm10,xmm8
   1421 	and	edi,eax
   1422 	xor	eax,ebx
   1423 	psrld	xmm8,30
   1424 	add	edx,ebp
   1425 	ror	ebp,7
   1426 	por	xmm5,xmm9
   1427 	xor	edi,ebx
   1428 	mov	esi,edx
   1429 	add	ecx,DWORD[28+rsp]
   1430 	pslld	xmm10,2
   1431 	pxor	xmm5,xmm8
   1432 	xor	ebp,eax
   1433 	movdqa	xmm8,XMMWORD[((-32))+r11]
   1434 	rol	edx,5
   1435 	add	ecx,edi
   1436 	and	esi,ebp
   1437 	pxor	xmm5,xmm10
   1438 	xor	ebp,eax
   1439 	add	ecx,edx
   1440 	ror	edx,7
   1441 	pshufd	xmm6,xmm2,238
   1442 	xor	esi,eax
   1443 	movdqa	xmm10,xmm5
   1444 	paddd	xmm8,xmm5
   1445 	mov	edi,ecx
   1446 	add	ebx,DWORD[32+rsp]
   1447 	punpcklqdq	xmm6,xmm3
   1448 	xor	edx,ebp
   1449 	rol	ecx,5
   1450 	add	ebx,esi
   1451 	psrldq	xmm10,4
   1452 	and	edi,edx
   1453 	xor	edx,ebp
   1454 	pxor	xmm6,xmm2
   1455 	add	ebx,ecx
   1456 	ror	ecx,7
   1457 	pxor	xmm10,xmm4
   1458 	xor	edi,ebp
   1459 	mov	esi,ebx
   1460 	add	eax,DWORD[36+rsp]
   1461 	pxor	xmm6,xmm10
   1462 	xor	ecx,edx
   1463 	rol	ebx,5
   1464 	movdqa	XMMWORD[16+rsp],xmm8
   1465 	add	eax,edi
   1466 	and	esi,ecx
   1467 	movdqa	xmm9,xmm6
   1468 	xor	ecx,edx
   1469 	add	eax,ebx
   1470 	ror	ebx,7
   1471 	movdqa	xmm10,xmm6
   1472 	xor	esi,edx
   1473 	pslldq	xmm9,12
   1474 	paddd	xmm6,xmm6
   1475 	mov	edi,eax
   1476 	add	ebp,DWORD[40+rsp]
   1477 	psrld	xmm10,31
   1478 	xor	ebx,ecx
   1479 	rol	eax,5
   1480 	add	ebp,esi
   1481 	movdqa	xmm8,xmm9
   1482 	and	edi,ebx
   1483 	xor	ebx,ecx
   1484 	psrld	xmm9,30
   1485 	add	ebp,eax
   1486 	ror	eax,7
   1487 	por	xmm6,xmm10
   1488 	xor	edi,ecx
   1489 	mov	esi,ebp
   1490 	add	edx,DWORD[44+rsp]
   1491 	pslld	xmm8,2
   1492 	pxor	xmm6,xmm9
   1493 	xor	eax,ebx
   1494 	movdqa	xmm9,XMMWORD[((-32))+r11]
   1495 	rol	ebp,5
   1496 	add	edx,edi
   1497 	and	esi,eax
   1498 	pxor	xmm6,xmm8
   1499 	xor	eax,ebx
   1500 	add	edx,ebp
   1501 	ror	ebp,7
   1502 	pshufd	xmm7,xmm3,238
   1503 	xor	esi,ebx
   1504 	movdqa	xmm8,xmm6
   1505 	paddd	xmm9,xmm6
   1506 	mov	edi,edx
   1507 	add	ecx,DWORD[48+rsp]
   1508 	punpcklqdq	xmm7,xmm4
   1509 	xor	ebp,eax
   1510 	rol	edx,5
   1511 	add	ecx,esi
   1512 	psrldq	xmm8,4
   1513 	and	edi,ebp
   1514 	xor	ebp,eax
   1515 	pxor	xmm7,xmm3
   1516 	add	ecx,edx
   1517 	ror	edx,7
   1518 	pxor	xmm8,xmm5
   1519 	xor	edi,eax
   1520 	mov	esi,ecx
   1521 	add	ebx,DWORD[52+rsp]
   1522 	pxor	xmm7,xmm8
   1523 	xor	edx,ebp
   1524 	rol	ecx,5
   1525 	movdqa	XMMWORD[32+rsp],xmm9
   1526 	add	ebx,edi
   1527 	and	esi,edx
   1528 	movdqa	xmm10,xmm7
   1529 	xor	edx,ebp
   1530 	add	ebx,ecx
   1531 	ror	ecx,7
   1532 	movdqa	xmm8,xmm7
   1533 	xor	esi,ebp
   1534 	pslldq	xmm10,12
   1535 	paddd	xmm7,xmm7
   1536 	mov	edi,ebx
   1537 	add	eax,DWORD[56+rsp]
   1538 	psrld	xmm8,31
   1539 	xor	ecx,edx
   1540 	rol	ebx,5
   1541 	add	eax,esi
   1542 	movdqa	xmm9,xmm10
   1543 	and	edi,ecx
   1544 	xor	ecx,edx
   1545 	psrld	xmm10,30
   1546 	add	eax,ebx
   1547 	ror	ebx,7
   1548 	por	xmm7,xmm8
   1549 	xor	edi,edx
   1550 	mov	esi,eax
   1551 	add	ebp,DWORD[60+rsp]
   1552 	pslld	xmm9,2
   1553 	pxor	xmm7,xmm10
   1554 	xor	ebx,ecx
   1555 	movdqa	xmm10,XMMWORD[((-32))+r11]
   1556 	rol	eax,5
   1557 	add	ebp,edi
   1558 	and	esi,ebx
   1559 	pxor	xmm7,xmm9
   1560 	pshufd	xmm9,xmm6,238
   1561 	xor	ebx,ecx
   1562 	add	ebp,eax
   1563 	ror	eax,7
   1564 	pxor	xmm0,xmm4
   1565 	xor	esi,ecx
   1566 	mov	edi,ebp
   1567 	add	edx,DWORD[rsp]
   1568 	punpcklqdq	xmm9,xmm7
   1569 	xor	eax,ebx
   1570 	rol	ebp,5
   1571 	pxor	xmm0,xmm1
   1572 	add	edx,esi
   1573 	and	edi,eax
   1574 	movdqa	xmm8,xmm10
   1575 	xor	eax,ebx
   1576 	paddd	xmm10,xmm7
   1577 	add	edx,ebp
   1578 	pxor	xmm0,xmm9
   1579 	ror	ebp,7
   1580 	xor	edi,ebx
   1581 	mov	esi,edx
   1582 	add	ecx,DWORD[4+rsp]
   1583 	movdqa	xmm9,xmm0
   1584 	xor	ebp,eax
   1585 	rol	edx,5
   1586 	movdqa	XMMWORD[48+rsp],xmm10
   1587 	add	ecx,edi
   1588 	and	esi,ebp
   1589 	xor	ebp,eax
   1590 	pslld	xmm0,2
   1591 	add	ecx,edx
   1592 	ror	edx,7
   1593 	psrld	xmm9,30
   1594 	xor	esi,eax
   1595 	mov	edi,ecx
   1596 	add	ebx,DWORD[8+rsp]
   1597 	por	xmm0,xmm9
   1598 	xor	edx,ebp
   1599 	rol	ecx,5
   1600 	pshufd	xmm10,xmm7,238
   1601 	add	ebx,esi
   1602 	and	edi,edx
   1603 	xor	edx,ebp
   1604 	add	ebx,ecx
   1605 	add	eax,DWORD[12+rsp]
   1606 	xor	edi,ebp
   1607 	mov	esi,ebx
   1608 	rol	ebx,5
   1609 	add	eax,edi
   1610 	xor	esi,edx
   1611 	ror	ecx,7
   1612 	add	eax,ebx
   1613 	pxor	xmm1,xmm5
   1614 	add	ebp,DWORD[16+rsp]
   1615 	xor	esi,ecx
   1616 	punpcklqdq	xmm10,xmm0
   1617 	mov	edi,eax
   1618 	rol	eax,5
   1619 	pxor	xmm1,xmm2
   1620 	add	ebp,esi
   1621 	xor	edi,ecx
   1622 	movdqa	xmm9,xmm8
   1623 	ror	ebx,7
   1624 	paddd	xmm8,xmm0
   1625 	add	ebp,eax
   1626 	pxor	xmm1,xmm10
   1627 	add	edx,DWORD[20+rsp]
   1628 	xor	edi,ebx
   1629 	mov	esi,ebp
   1630 	rol	ebp,5
   1631 	movdqa	xmm10,xmm1
   1632 	add	edx,edi
   1633 	xor	esi,ebx
   1634 	movdqa	XMMWORD[rsp],xmm8
   1635 	ror	eax,7
   1636 	add	edx,ebp
   1637 	add	ecx,DWORD[24+rsp]
   1638 	pslld	xmm1,2
   1639 	xor	esi,eax
   1640 	mov	edi,edx
   1641 	psrld	xmm10,30
   1642 	rol	edx,5
   1643 	add	ecx,esi
   1644 	xor	edi,eax
   1645 	ror	ebp,7
   1646 	por	xmm1,xmm10
   1647 	add	ecx,edx
   1648 	add	ebx,DWORD[28+rsp]
   1649 	pshufd	xmm8,xmm0,238
   1650 	xor	edi,ebp
   1651 	mov	esi,ecx
   1652 	rol	ecx,5
   1653 	add	ebx,edi
   1654 	xor	esi,ebp
   1655 	ror	edx,7
   1656 	add	ebx,ecx
   1657 	pxor	xmm2,xmm6
   1658 	add	eax,DWORD[32+rsp]
   1659 	xor	esi,edx
   1660 	punpcklqdq	xmm8,xmm1
   1661 	mov	edi,ebx
   1662 	rol	ebx,5
   1663 	pxor	xmm2,xmm3
   1664 	add	eax,esi
   1665 	xor	edi,edx
   1666 	movdqa	xmm10,XMMWORD[r11]
   1667 	ror	ecx,7
   1668 	paddd	xmm9,xmm1
   1669 	add	eax,ebx
   1670 	pxor	xmm2,xmm8
   1671 	add	ebp,DWORD[36+rsp]
   1672 	xor	edi,ecx
   1673 	mov	esi,eax
   1674 	rol	eax,5
   1675 	movdqa	xmm8,xmm2
   1676 	add	ebp,edi
   1677 	xor	esi,ecx
   1678 	movdqa	XMMWORD[16+rsp],xmm9
   1679 	ror	ebx,7
   1680 	add	ebp,eax
   1681 	add	edx,DWORD[40+rsp]
   1682 	pslld	xmm2,2
   1683 	xor	esi,ebx
   1684 	mov	edi,ebp
   1685 	psrld	xmm8,30
   1686 	rol	ebp,5
   1687 	add	edx,esi
   1688 	xor	edi,ebx
   1689 	ror	eax,7
   1690 	por	xmm2,xmm8
   1691 	add	edx,ebp
   1692 	add	ecx,DWORD[44+rsp]
   1693 	pshufd	xmm9,xmm1,238
   1694 	xor	edi,eax
   1695 	mov	esi,edx
   1696 	rol	edx,5
   1697 	add	ecx,edi
   1698 	xor	esi,eax
   1699 	ror	ebp,7
   1700 	add	ecx,edx
   1701 	pxor	xmm3,xmm7
   1702 	add	ebx,DWORD[48+rsp]
   1703 	xor	esi,ebp
   1704 	punpcklqdq	xmm9,xmm2
   1705 	mov	edi,ecx
   1706 	rol	ecx,5
   1707 	pxor	xmm3,xmm4
   1708 	add	ebx,esi
   1709 	xor	edi,ebp
   1710 	movdqa	xmm8,xmm10
   1711 	ror	edx,7
   1712 	paddd	xmm10,xmm2
   1713 	add	ebx,ecx
   1714 	pxor	xmm3,xmm9
   1715 	add	eax,DWORD[52+rsp]
   1716 	xor	edi,edx
   1717 	mov	esi,ebx
   1718 	rol	ebx,5
   1719 	movdqa	xmm9,xmm3
   1720 	add	eax,edi
   1721 	xor	esi,edx
   1722 	movdqa	XMMWORD[32+rsp],xmm10
   1723 	ror	ecx,7
   1724 	add	eax,ebx
   1725 	add	ebp,DWORD[56+rsp]
   1726 	pslld	xmm3,2
   1727 	xor	esi,ecx
   1728 	mov	edi,eax
   1729 	psrld	xmm9,30
   1730 	rol	eax,5
   1731 	add	ebp,esi
   1732 	xor	edi,ecx
   1733 	ror	ebx,7
   1734 	por	xmm3,xmm9
   1735 	add	ebp,eax
   1736 	add	edx,DWORD[60+rsp]
   1737 	pshufd	xmm10,xmm2,238
   1738 	xor	edi,ebx
   1739 	mov	esi,ebp
   1740 	rol	ebp,5
   1741 	add	edx,edi
   1742 	xor	esi,ebx
   1743 	ror	eax,7
   1744 	add	edx,ebp
   1745 	pxor	xmm4,xmm0
   1746 	add	ecx,DWORD[rsp]
   1747 	xor	esi,eax
   1748 	punpcklqdq	xmm10,xmm3
   1749 	mov	edi,edx
   1750 	rol	edx,5
   1751 	pxor	xmm4,xmm5
   1752 	add	ecx,esi
   1753 	xor	edi,eax
   1754 	movdqa	xmm9,xmm8
   1755 	ror	ebp,7
   1756 	paddd	xmm8,xmm3
   1757 	add	ecx,edx
   1758 	pxor	xmm4,xmm10
   1759 	add	ebx,DWORD[4+rsp]
   1760 	xor	edi,ebp
   1761 	mov	esi,ecx
   1762 	rol	ecx,5
   1763 	movdqa	xmm10,xmm4
   1764 	add	ebx,edi
   1765 	xor	esi,ebp
   1766 	movdqa	XMMWORD[48+rsp],xmm8
   1767 	ror	edx,7
   1768 	add	ebx,ecx
   1769 	add	eax,DWORD[8+rsp]
   1770 	pslld	xmm4,2
   1771 	xor	esi,edx
   1772 	mov	edi,ebx
   1773 	psrld	xmm10,30
   1774 	rol	ebx,5
   1775 	add	eax,esi
   1776 	xor	edi,edx
   1777 	ror	ecx,7
   1778 	por	xmm4,xmm10
   1779 	add	eax,ebx
   1780 	add	ebp,DWORD[12+rsp]
   1781 	pshufd	xmm8,xmm3,238
   1782 	xor	edi,ecx
   1783 	mov	esi,eax
   1784 	rol	eax,5
   1785 	add	ebp,edi
   1786 	xor	esi,ecx
   1787 	ror	ebx,7
   1788 	add	ebp,eax
   1789 	pxor	xmm5,xmm1
   1790 	add	edx,DWORD[16+rsp]
   1791 	xor	esi,ebx
   1792 	punpcklqdq	xmm8,xmm4
   1793 	mov	edi,ebp
   1794 	rol	ebp,5
   1795 	pxor	xmm5,xmm6
   1796 	add	edx,esi
   1797 	xor	edi,ebx
   1798 	movdqa	xmm10,xmm9
   1799 	ror	eax,7
   1800 	paddd	xmm9,xmm4
   1801 	add	edx,ebp
   1802 	pxor	xmm5,xmm8
   1803 	add	ecx,DWORD[20+rsp]
   1804 	xor	edi,eax
   1805 	mov	esi,edx
   1806 	rol	edx,5
   1807 	movdqa	xmm8,xmm5
   1808 	add	ecx,edi
   1809 	xor	esi,eax
   1810 	movdqa	XMMWORD[rsp],xmm9
   1811 	ror	ebp,7
   1812 	add	ecx,edx
   1813 	add	ebx,DWORD[24+rsp]
   1814 	pslld	xmm5,2
   1815 	xor	esi,ebp
   1816 	mov	edi,ecx
   1817 	psrld	xmm8,30
   1818 	rol	ecx,5
   1819 	add	ebx,esi
   1820 	xor	edi,ebp
   1821 	ror	edx,7
   1822 	por	xmm5,xmm8
   1823 	add	ebx,ecx
   1824 	add	eax,DWORD[28+rsp]
   1825 	pshufd	xmm9,xmm4,238
   1826 	ror	ecx,7
   1827 	mov	esi,ebx
   1828 	xor	edi,edx
   1829 	rol	ebx,5
   1830 	add	eax,edi
   1831 	xor	esi,ecx
   1832 	xor	ecx,edx
   1833 	add	eax,ebx
   1834 	pxor	xmm6,xmm2
   1835 	add	ebp,DWORD[32+rsp]
   1836 	and	esi,ecx
   1837 	xor	ecx,edx
   1838 	ror	ebx,7
   1839 	punpcklqdq	xmm9,xmm5
   1840 	mov	edi,eax
   1841 	xor	esi,ecx
   1842 	pxor	xmm6,xmm7
   1843 	rol	eax,5
   1844 	add	ebp,esi
   1845 	movdqa	xmm8,xmm10
   1846 	xor	edi,ebx
   1847 	paddd	xmm10,xmm5
   1848 	xor	ebx,ecx
   1849 	pxor	xmm6,xmm9
   1850 	add	ebp,eax
   1851 	add	edx,DWORD[36+rsp]
   1852 	and	edi,ebx
   1853 	xor	ebx,ecx
   1854 	ror	eax,7
   1855 	movdqa	xmm9,xmm6
   1856 	mov	esi,ebp
   1857 	xor	edi,ebx
   1858 	movdqa	XMMWORD[16+rsp],xmm10
   1859 	rol	ebp,5
   1860 	add	edx,edi
   1861 	xor	esi,eax
   1862 	pslld	xmm6,2
   1863 	xor	eax,ebx
   1864 	add	edx,ebp
   1865 	psrld	xmm9,30
   1866 	add	ecx,DWORD[40+rsp]
   1867 	and	esi,eax
   1868 	xor	eax,ebx
   1869 	por	xmm6,xmm9
   1870 	ror	ebp,7
   1871 	mov	edi,edx
   1872 	xor	esi,eax
   1873 	rol	edx,5
   1874 	pshufd	xmm10,xmm5,238
   1875 	add	ecx,esi
   1876 	xor	edi,ebp
   1877 	xor	ebp,eax
   1878 	add	ecx,edx
   1879 	add	ebx,DWORD[44+rsp]
   1880 	and	edi,ebp
   1881 	xor	ebp,eax
   1882 	ror	edx,7
   1883 	mov	esi,ecx
   1884 	xor	edi,ebp
   1885 	rol	ecx,5
   1886 	add	ebx,edi
   1887 	xor	esi,edx
   1888 	xor	edx,ebp
   1889 	add	ebx,ecx
   1890 	pxor	xmm7,xmm3
   1891 	add	eax,DWORD[48+rsp]
   1892 	and	esi,edx
   1893 	xor	edx,ebp
   1894 	ror	ecx,7
   1895 	punpcklqdq	xmm10,xmm6
   1896 	mov	edi,ebx
   1897 	xor	esi,edx
   1898 	pxor	xmm7,xmm0
   1899 	rol	ebx,5
   1900 	add	eax,esi
   1901 	movdqa	xmm9,XMMWORD[32+r11]
   1902 	xor	edi,ecx
   1903 	paddd	xmm8,xmm6
   1904 	xor	ecx,edx
   1905 	pxor	xmm7,xmm10
   1906 	add	eax,ebx
   1907 	add	ebp,DWORD[52+rsp]
   1908 	and	edi,ecx
   1909 	xor	ecx,edx
   1910 	ror	ebx,7
   1911 	movdqa	xmm10,xmm7
   1912 	mov	esi,eax
   1913 	xor	edi,ecx
   1914 	movdqa	XMMWORD[32+rsp],xmm8
   1915 	rol	eax,5
   1916 	add	ebp,edi
   1917 	xor	esi,ebx
   1918 	pslld	xmm7,2
   1919 	xor	ebx,ecx
   1920 	add	ebp,eax
   1921 	psrld	xmm10,30
   1922 	add	edx,DWORD[56+rsp]
   1923 	and	esi,ebx
   1924 	xor	ebx,ecx
   1925 	por	xmm7,xmm10
   1926 	ror	eax,7
   1927 	mov	edi,ebp
   1928 	xor	esi,ebx
   1929 	rol	ebp,5
   1930 	pshufd	xmm8,xmm6,238
   1931 	add	edx,esi
   1932 	xor	edi,eax
   1933 	xor	eax,ebx
   1934 	add	edx,ebp
   1935 	add	ecx,DWORD[60+rsp]
   1936 	and	edi,eax
   1937 	xor	eax,ebx
   1938 	ror	ebp,7
   1939 	mov	esi,edx
   1940 	xor	edi,eax
   1941 	rol	edx,5
   1942 	add	ecx,edi
   1943 	xor	esi,ebp
   1944 	xor	ebp,eax
   1945 	add	ecx,edx
   1946 	pxor	xmm0,xmm4
   1947 	add	ebx,DWORD[rsp]
   1948 	and	esi,ebp
   1949 	xor	ebp,eax
   1950 	ror	edx,7
   1951 	punpcklqdq	xmm8,xmm7
   1952 	mov	edi,ecx
   1953 	xor	esi,ebp
   1954 	pxor	xmm0,xmm1
   1955 	rol	ecx,5
   1956 	add	ebx,esi
   1957 	movdqa	xmm10,xmm9
   1958 	xor	edi,edx
   1959 	paddd	xmm9,xmm7
   1960 	xor	edx,ebp
   1961 	pxor	xmm0,xmm8
   1962 	add	ebx,ecx
   1963 	add	eax,DWORD[4+rsp]
   1964 	and	edi,edx
   1965 	xor	edx,ebp
   1966 	ror	ecx,7
   1967 	movdqa	xmm8,xmm0
   1968 	mov	esi,ebx
   1969 	xor	edi,edx
   1970 	movdqa	XMMWORD[48+rsp],xmm9
   1971 	rol	ebx,5
   1972 	add	eax,edi
   1973 	xor	esi,ecx
   1974 	pslld	xmm0,2
   1975 	xor	ecx,edx
   1976 	add	eax,ebx
   1977 	psrld	xmm8,30
   1978 	add	ebp,DWORD[8+rsp]
   1979 	and	esi,ecx
   1980 	xor	ecx,edx
   1981 	por	xmm0,xmm8
   1982 	ror	ebx,7
   1983 	mov	edi,eax
   1984 	xor	esi,ecx
   1985 	rol	eax,5
   1986 	pshufd	xmm9,xmm7,238
   1987 	add	ebp,esi
   1988 	xor	edi,ebx
   1989 	xor	ebx,ecx
   1990 	add	ebp,eax
   1991 	add	edx,DWORD[12+rsp]
   1992 	and	edi,ebx
   1993 	xor	ebx,ecx
   1994 	ror	eax,7
   1995 	mov	esi,ebp
   1996 	xor	edi,ebx
   1997 	rol	ebp,5
   1998 	add	edx,edi
   1999 	xor	esi,eax
   2000 	xor	eax,ebx
   2001 	add	edx,ebp
   2002 	pxor	xmm1,xmm5
   2003 	add	ecx,DWORD[16+rsp]
   2004 	and	esi,eax
   2005 	xor	eax,ebx
   2006 	ror	ebp,7
   2007 	punpcklqdq	xmm9,xmm0
   2008 	mov	edi,edx
   2009 	xor	esi,eax
   2010 	pxor	xmm1,xmm2
   2011 	rol	edx,5
   2012 	add	ecx,esi
   2013 	movdqa	xmm8,xmm10
   2014 	xor	edi,ebp
   2015 	paddd	xmm10,xmm0
   2016 	xor	ebp,eax
   2017 	pxor	xmm1,xmm9
   2018 	add	ecx,edx
   2019 	add	ebx,DWORD[20+rsp]
   2020 	and	edi,ebp
   2021 	xor	ebp,eax
   2022 	ror	edx,7
   2023 	movdqa	xmm9,xmm1
   2024 	mov	esi,ecx
   2025 	xor	edi,ebp
   2026 	movdqa	XMMWORD[rsp],xmm10
   2027 	rol	ecx,5
   2028 	add	ebx,edi
   2029 	xor	esi,edx
   2030 	pslld	xmm1,2
   2031 	xor	edx,ebp
   2032 	add	ebx,ecx
   2033 	psrld	xmm9,30
   2034 	add	eax,DWORD[24+rsp]
   2035 	and	esi,edx
   2036 	xor	edx,ebp
   2037 	por	xmm1,xmm9
   2038 	ror	ecx,7
   2039 	mov	edi,ebx
   2040 	xor	esi,edx
   2041 	rol	ebx,5
   2042 	pshufd	xmm10,xmm0,238
   2043 	add	eax,esi
   2044 	xor	edi,ecx
   2045 	xor	ecx,edx
   2046 	add	eax,ebx
   2047 	add	ebp,DWORD[28+rsp]
   2048 	and	edi,ecx
   2049 	xor	ecx,edx
   2050 	ror	ebx,7
   2051 	mov	esi,eax
   2052 	xor	edi,ecx
   2053 	rol	eax,5
   2054 	add	ebp,edi
   2055 	xor	esi,ebx
   2056 	xor	ebx,ecx
   2057 	add	ebp,eax
   2058 	pxor	xmm2,xmm6
   2059 	add	edx,DWORD[32+rsp]
   2060 	and	esi,ebx
   2061 	xor	ebx,ecx
   2062 	ror	eax,7
   2063 	punpcklqdq	xmm10,xmm1
   2064 	mov	edi,ebp
   2065 	xor	esi,ebx
   2066 	pxor	xmm2,xmm3
   2067 	rol	ebp,5
   2068 	add	edx,esi
   2069 	movdqa	xmm9,xmm8
   2070 	xor	edi,eax
   2071 	paddd	xmm8,xmm1
   2072 	xor	eax,ebx
   2073 	pxor	xmm2,xmm10
   2074 	add	edx,ebp
   2075 	add	ecx,DWORD[36+rsp]
   2076 	and	edi,eax
   2077 	xor	eax,ebx
   2078 	ror	ebp,7
   2079 	movdqa	xmm10,xmm2
   2080 	mov	esi,edx
   2081 	xor	edi,eax
   2082 	movdqa	XMMWORD[16+rsp],xmm8
   2083 	rol	edx,5
   2084 	add	ecx,edi
   2085 	xor	esi,ebp
   2086 	pslld	xmm2,2
   2087 	xor	ebp,eax
   2088 	add	ecx,edx
   2089 	psrld	xmm10,30
   2090 	add	ebx,DWORD[40+rsp]
   2091 	and	esi,ebp
   2092 	xor	ebp,eax
   2093 	por	xmm2,xmm10
   2094 	ror	edx,7
   2095 	mov	edi,ecx
   2096 	xor	esi,ebp
   2097 	rol	ecx,5
   2098 	pshufd	xmm8,xmm1,238
   2099 	add	ebx,esi
   2100 	xor	edi,edx
   2101 	xor	edx,ebp
   2102 	add	ebx,ecx
   2103 	add	eax,DWORD[44+rsp]
   2104 	and	edi,edx
   2105 	xor	edx,ebp
   2106 	ror	ecx,7
   2107 	mov	esi,ebx
   2108 	xor	edi,edx
   2109 	rol	ebx,5
   2110 	add	eax,edi
   2111 	xor	esi,edx
   2112 	add	eax,ebx
   2113 	pxor	xmm3,xmm7
   2114 	add	ebp,DWORD[48+rsp]
   2115 	xor	esi,ecx
   2116 	punpcklqdq	xmm8,xmm2
   2117 	mov	edi,eax
   2118 	rol	eax,5
   2119 	pxor	xmm3,xmm4
   2120 	add	ebp,esi
   2121 	xor	edi,ecx
   2122 	movdqa	xmm10,xmm9
   2123 	ror	ebx,7
   2124 	paddd	xmm9,xmm2
   2125 	add	ebp,eax
   2126 	pxor	xmm3,xmm8
   2127 	add	edx,DWORD[52+rsp]
   2128 	xor	edi,ebx
   2129 	mov	esi,ebp
   2130 	rol	ebp,5
   2131 	movdqa	xmm8,xmm3
   2132 	add	edx,edi
   2133 	xor	esi,ebx
   2134 	movdqa	XMMWORD[32+rsp],xmm9
   2135 	ror	eax,7
   2136 	add	edx,ebp
   2137 	add	ecx,DWORD[56+rsp]
   2138 	pslld	xmm3,2
   2139 	xor	esi,eax
   2140 	mov	edi,edx
   2141 	psrld	xmm8,30
   2142 	rol	edx,5
   2143 	add	ecx,esi
   2144 	xor	edi,eax
   2145 	ror	ebp,7
   2146 	por	xmm3,xmm8
   2147 	add	ecx,edx
   2148 	add	ebx,DWORD[60+rsp]
   2149 	xor	edi,ebp
   2150 	mov	esi,ecx
   2151 	rol	ecx,5
   2152 	add	ebx,edi
   2153 	xor	esi,ebp
   2154 	ror	edx,7
   2155 	add	ebx,ecx
   2156 	add	eax,DWORD[rsp]
   2157 	xor	esi,edx
   2158 	mov	edi,ebx
   2159 	rol	ebx,5
   2160 	paddd	xmm10,xmm3
   2161 	add	eax,esi
   2162 	xor	edi,edx
   2163 	movdqa	XMMWORD[48+rsp],xmm10
   2164 	ror	ecx,7
   2165 	add	eax,ebx
   2166 	add	ebp,DWORD[4+rsp]
   2167 	xor	edi,ecx
   2168 	mov	esi,eax
   2169 	rol	eax,5
   2170 	add	ebp,edi
   2171 	xor	esi,ecx
   2172 	ror	ebx,7
   2173 	add	ebp,eax
   2174 	add	edx,DWORD[8+rsp]
   2175 	xor	esi,ebx
   2176 	mov	edi,ebp
   2177 	rol	ebp,5
   2178 	add	edx,esi
   2179 	xor	edi,ebx
   2180 	ror	eax,7
   2181 	add	edx,ebp
   2182 	add	ecx,DWORD[12+rsp]
   2183 	xor	edi,eax
   2184 	mov	esi,edx
   2185 	rol	edx,5
   2186 	add	ecx,edi
   2187 	xor	esi,eax
   2188 	ror	ebp,7
   2189 	add	ecx,edx
   2190 	cmp	r9,r10
   2191 	je	NEAR $L$done_ssse3
   2192 	movdqa	xmm6,XMMWORD[64+r11]
   2193 	movdqa	xmm9,XMMWORD[((-64))+r11]
   2194 	movdqu	xmm0,XMMWORD[r9]
   2195 	movdqu	xmm1,XMMWORD[16+r9]
   2196 	movdqu	xmm2,XMMWORD[32+r9]
   2197 	movdqu	xmm3,XMMWORD[48+r9]
   2198 DB	102,15,56,0,198
   2199 	add	r9,64
   2200 	add	ebx,DWORD[16+rsp]
   2201 	xor	esi,ebp
   2202 	mov	edi,ecx
   2203 DB	102,15,56,0,206
   2204 	rol	ecx,5
   2205 	add	ebx,esi
   2206 	xor	edi,ebp
   2207 	ror	edx,7
   2208 	paddd	xmm0,xmm9
   2209 	add	ebx,ecx
   2210 	add	eax,DWORD[20+rsp]
   2211 	xor	edi,edx
   2212 	mov	esi,ebx
   2213 	movdqa	XMMWORD[rsp],xmm0
   2214 	rol	ebx,5
   2215 	add	eax,edi
   2216 	xor	esi,edx
   2217 	ror	ecx,7
   2218 	psubd	xmm0,xmm9
   2219 	add	eax,ebx
   2220 	add	ebp,DWORD[24+rsp]
   2221 	xor	esi,ecx
   2222 	mov	edi,eax
   2223 	rol	eax,5
   2224 	add	ebp,esi
   2225 	xor	edi,ecx
   2226 	ror	ebx,7
   2227 	add	ebp,eax
   2228 	add	edx,DWORD[28+rsp]
   2229 	xor	edi,ebx
   2230 	mov	esi,ebp
   2231 	rol	ebp,5
   2232 	add	edx,edi
   2233 	xor	esi,ebx
   2234 	ror	eax,7
   2235 	add	edx,ebp
   2236 	add	ecx,DWORD[32+rsp]
   2237 	xor	esi,eax
   2238 	mov	edi,edx
   2239 DB	102,15,56,0,214
   2240 	rol	edx,5
   2241 	add	ecx,esi
   2242 	xor	edi,eax
   2243 	ror	ebp,7
   2244 	paddd	xmm1,xmm9
   2245 	add	ecx,edx
   2246 	add	ebx,DWORD[36+rsp]
   2247 	xor	edi,ebp
   2248 	mov	esi,ecx
   2249 	movdqa	XMMWORD[16+rsp],xmm1
   2250 	rol	ecx,5
   2251 	add	ebx,edi
   2252 	xor	esi,ebp
   2253 	ror	edx,7
   2254 	psubd	xmm1,xmm9
   2255 	add	ebx,ecx
   2256 	add	eax,DWORD[40+rsp]
   2257 	xor	esi,edx
   2258 	mov	edi,ebx
   2259 	rol	ebx,5
   2260 	add	eax,esi
   2261 	xor	edi,edx
   2262 	ror	ecx,7
   2263 	add	eax,ebx
   2264 	add	ebp,DWORD[44+rsp]
   2265 	xor	edi,ecx
   2266 	mov	esi,eax
   2267 	rol	eax,5
   2268 	add	ebp,edi
   2269 	xor	esi,ecx
   2270 	ror	ebx,7
   2271 	add	ebp,eax
   2272 	add	edx,DWORD[48+rsp]
   2273 	xor	esi,ebx
   2274 	mov	edi,ebp
   2275 DB	102,15,56,0,222
   2276 	rol	ebp,5
   2277 	add	edx,esi
   2278 	xor	edi,ebx
   2279 	ror	eax,7
   2280 	paddd	xmm2,xmm9
   2281 	add	edx,ebp
   2282 	add	ecx,DWORD[52+rsp]
   2283 	xor	edi,eax
   2284 	mov	esi,edx
   2285 	movdqa	XMMWORD[32+rsp],xmm2
   2286 	rol	edx,5
   2287 	add	ecx,edi
   2288 	xor	esi,eax
   2289 	ror	ebp,7
   2290 	psubd	xmm2,xmm9
   2291 	add	ecx,edx
   2292 	add	ebx,DWORD[56+rsp]
   2293 	xor	esi,ebp
   2294 	mov	edi,ecx
   2295 	rol	ecx,5
   2296 	add	ebx,esi
   2297 	xor	edi,ebp
   2298 	ror	edx,7
   2299 	add	ebx,ecx
   2300 	add	eax,DWORD[60+rsp]
   2301 	xor	edi,edx
   2302 	mov	esi,ebx
   2303 	rol	ebx,5
   2304 	add	eax,edi
   2305 	ror	ecx,7
   2306 	add	eax,ebx
   2307 	add	eax,DWORD[r8]
   2308 	add	esi,DWORD[4+r8]
   2309 	add	ecx,DWORD[8+r8]
   2310 	add	edx,DWORD[12+r8]
   2311 	mov	DWORD[r8],eax
   2312 	add	ebp,DWORD[16+r8]
   2313 	mov	DWORD[4+r8],esi
   2314 	mov	ebx,esi
   2315 	mov	DWORD[8+r8],ecx
   2316 	mov	edi,ecx
   2317 	mov	DWORD[12+r8],edx
   2318 	xor	edi,edx
   2319 	mov	DWORD[16+r8],ebp
   2320 	and	esi,edi
   2321 	jmp	NEAR $L$oop_ssse3
   2322 
   2323 ALIGN	16
   2324 $L$done_ssse3:
   2325 	add	ebx,DWORD[16+rsp]
   2326 	xor	esi,ebp
   2327 	mov	edi,ecx
   2328 	rol	ecx,5
   2329 	add	ebx,esi
   2330 	xor	edi,ebp
   2331 	ror	edx,7
   2332 	add	ebx,ecx
   2333 	add	eax,DWORD[20+rsp]
   2334 	xor	edi,edx
   2335 	mov	esi,ebx
   2336 	rol	ebx,5
   2337 	add	eax,edi
   2338 	xor	esi,edx
   2339 	ror	ecx,7
   2340 	add	eax,ebx
   2341 	add	ebp,DWORD[24+rsp]
   2342 	xor	esi,ecx
   2343 	mov	edi,eax
   2344 	rol	eax,5
   2345 	add	ebp,esi
   2346 	xor	edi,ecx
   2347 	ror	ebx,7
   2348 	add	ebp,eax
   2349 	add	edx,DWORD[28+rsp]
   2350 	xor	edi,ebx
   2351 	mov	esi,ebp
   2352 	rol	ebp,5
   2353 	add	edx,edi
   2354 	xor	esi,ebx
   2355 	ror	eax,7
   2356 	add	edx,ebp
   2357 	add	ecx,DWORD[32+rsp]
   2358 	xor	esi,eax
   2359 	mov	edi,edx
   2360 	rol	edx,5
   2361 	add	ecx,esi
   2362 	xor	edi,eax
   2363 	ror	ebp,7
   2364 	add	ecx,edx
   2365 	add	ebx,DWORD[36+rsp]
   2366 	xor	edi,ebp
   2367 	mov	esi,ecx
   2368 	rol	ecx,5
   2369 	add	ebx,edi
   2370 	xor	esi,ebp
   2371 	ror	edx,7
   2372 	add	ebx,ecx
   2373 	add	eax,DWORD[40+rsp]
   2374 	xor	esi,edx
   2375 	mov	edi,ebx
   2376 	rol	ebx,5
   2377 	add	eax,esi
   2378 	xor	edi,edx
   2379 	ror	ecx,7
   2380 	add	eax,ebx
   2381 	add	ebp,DWORD[44+rsp]
   2382 	xor	edi,ecx
   2383 	mov	esi,eax
   2384 	rol	eax,5
   2385 	add	ebp,edi
   2386 	xor	esi,ecx
   2387 	ror	ebx,7
   2388 	add	ebp,eax
   2389 	add	edx,DWORD[48+rsp]
   2390 	xor	esi,ebx
   2391 	mov	edi,ebp
   2392 	rol	ebp,5
   2393 	add	edx,esi
   2394 	xor	edi,ebx
   2395 	ror	eax,7
   2396 	add	edx,ebp
   2397 	add	ecx,DWORD[52+rsp]
   2398 	xor	edi,eax
   2399 	mov	esi,edx
   2400 	rol	edx,5
   2401 	add	ecx,edi
   2402 	xor	esi,eax
   2403 	ror	ebp,7
   2404 	add	ecx,edx
   2405 	add	ebx,DWORD[56+rsp]
   2406 	xor	esi,ebp
   2407 	mov	edi,ecx
   2408 	rol	ecx,5
   2409 	add	ebx,esi
   2410 	xor	edi,ebp
   2411 	ror	edx,7
   2412 	add	ebx,ecx
   2413 	add	eax,DWORD[60+rsp]
   2414 	xor	edi,edx
   2415 	mov	esi,ebx
   2416 	rol	ebx,5
   2417 	add	eax,edi
   2418 	ror	ecx,7
   2419 	add	eax,ebx
   2420 	add	eax,DWORD[r8]
   2421 	add	esi,DWORD[4+r8]
   2422 	add	ecx,DWORD[8+r8]
   2423 	mov	DWORD[r8],eax
   2424 	add	edx,DWORD[12+r8]
   2425 	mov	DWORD[4+r8],esi
   2426 	add	ebp,DWORD[16+r8]
   2427 	mov	DWORD[8+r8],ecx
   2428 	mov	DWORD[12+r8],edx
   2429 	mov	DWORD[16+r8],ebp
   2430 	movaps	xmm6,XMMWORD[((-40-96))+r14]
   2431 	movaps	xmm7,XMMWORD[((-40-80))+r14]
   2432 	movaps	xmm8,XMMWORD[((-40-64))+r14]
   2433 	movaps	xmm9,XMMWORD[((-40-48))+r14]
   2434 	movaps	xmm10,XMMWORD[((-40-32))+r14]
   2435 	movaps	xmm11,XMMWORD[((-40-16))+r14]
   2436 	lea	rsi,[r14]
   2437 	mov	r14,QWORD[((-40))+rsi]
   2438 	mov	r13,QWORD[((-32))+rsi]
   2439 	mov	r12,QWORD[((-24))+rsi]
   2440 	mov	rbp,QWORD[((-16))+rsi]
   2441 	mov	rbx,QWORD[((-8))+rsi]
   2442 	lea	rsp,[rsi]
   2443 $L$epilogue_ssse3:
   2444 	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
   2445 	mov	rsi,QWORD[16+rsp]
   2446 	DB	0F3h,0C3h		;repret
   2447 $L$SEH_end_sha1_block_data_order_ssse3:
   2448 ALIGN	64
   2449 K_XX_XX:
   2450 	DD	0x5a827999,0x5a827999,0x5a827999,0x5a827999
   2451 	DD	0x5a827999,0x5a827999,0x5a827999,0x5a827999
   2452 	DD	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
   2453 	DD	0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
   2454 	DD	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
   2455 	DD	0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
   2456 	DD	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
   2457 	DD	0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
   2458 	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
   2459 	DD	0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
   2460 DB	0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
   2461 DB	83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115
   2462 DB	102,111,114,109,32,102,111,114,32,120,56,54,95,54,52,44
   2463 DB	32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60
   2464 DB	97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114
   2465 DB	103,62,0
   2466 ALIGN	64
   2467 EXTERN	__imp_RtlVirtualUnwind
   2468 
   2469 ALIGN	16
   2470 se_handler:
   2471 	push	rsi
   2472 	push	rdi
   2473 	push	rbx
   2474 	push	rbp
   2475 	push	r12
   2476 	push	r13
   2477 	push	r14
   2478 	push	r15
   2479 	pushfq
   2480 	sub	rsp,64
   2481 
   2482 	mov	rax,QWORD[120+r8]
   2483 	mov	rbx,QWORD[248+r8]
   2484 
   2485 	lea	r10,[$L$prologue]
   2486 	cmp	rbx,r10
   2487 	jb	NEAR $L$common_seh_tail
   2488 
   2489 	mov	rax,QWORD[152+r8]
   2490 
   2491 	lea	r10,[$L$epilogue]
   2492 	cmp	rbx,r10
   2493 	jae	NEAR $L$common_seh_tail
   2494 
   2495 	mov	rax,QWORD[64+rax]
   2496 
   2497 	mov	rbx,QWORD[((-8))+rax]
   2498 	mov	rbp,QWORD[((-16))+rax]
   2499 	mov	r12,QWORD[((-24))+rax]
   2500 	mov	r13,QWORD[((-32))+rax]
   2501 	mov	r14,QWORD[((-40))+rax]
   2502 	mov	QWORD[144+r8],rbx
   2503 	mov	QWORD[160+r8],rbp
   2504 	mov	QWORD[216+r8],r12
   2505 	mov	QWORD[224+r8],r13
   2506 	mov	QWORD[232+r8],r14
   2507 
   2508 	jmp	NEAR $L$common_seh_tail
   2509 
   2510 
   2511 ALIGN	16
   2512 ssse3_handler:
   2513 	push	rsi
   2514 	push	rdi
   2515 	push	rbx
   2516 	push	rbp
   2517 	push	r12
   2518 	push	r13
   2519 	push	r14
   2520 	push	r15
   2521 	pushfq
   2522 	sub	rsp,64
   2523 
   2524 	mov	rax,QWORD[120+r8]
   2525 	mov	rbx,QWORD[248+r8]
   2526 
   2527 	mov	rsi,QWORD[8+r9]
   2528 	mov	r11,QWORD[56+r9]
   2529 
   2530 	mov	r10d,DWORD[r11]
   2531 	lea	r10,[r10*1+rsi]
   2532 	cmp	rbx,r10
   2533 	jb	NEAR $L$common_seh_tail
   2534 
   2535 	mov	rax,QWORD[152+r8]
   2536 
   2537 	mov	r10d,DWORD[4+r11]
   2538 	lea	r10,[r10*1+rsi]
   2539 	cmp	rbx,r10
   2540 	jae	NEAR $L$common_seh_tail
   2541 
   2542 	mov	rax,QWORD[232+r8]
   2543 
   2544 	lea	rsi,[((-40-96))+rax]
   2545 	lea	rdi,[512+r8]
   2546 	mov	ecx,12
   2547 	DD	0xa548f3fc
   2548 
   2549 	mov	rbx,QWORD[((-8))+rax]
   2550 	mov	rbp,QWORD[((-16))+rax]
   2551 	mov	r12,QWORD[((-24))+rax]
   2552 	mov	r13,QWORD[((-32))+rax]
   2553 	mov	r14,QWORD[((-40))+rax]
   2554 	mov	QWORD[144+r8],rbx
   2555 	mov	QWORD[160+r8],rbp
   2556 	mov	QWORD[216+r8],r12
   2557 	mov	QWORD[224+r8],r13
   2558 	mov	QWORD[232+r8],r14
   2559 
   2560 $L$common_seh_tail:
   2561 	mov	rdi,QWORD[8+rax]
   2562 	mov	rsi,QWORD[16+rax]
   2563 	mov	QWORD[152+r8],rax
   2564 	mov	QWORD[168+r8],rsi
   2565 	mov	QWORD[176+r8],rdi
   2566 
   2567 	mov	rdi,QWORD[40+r9]
   2568 	mov	rsi,r8
   2569 	mov	ecx,154
   2570 	DD	0xa548f3fc
   2571 
   2572 	mov	rsi,r9
   2573 	xor	rcx,rcx
   2574 	mov	rdx,QWORD[8+rsi]
   2575 	mov	r8,QWORD[rsi]
   2576 	mov	r9,QWORD[16+rsi]
   2577 	mov	r10,QWORD[40+rsi]
   2578 	lea	r11,[56+rsi]
   2579 	lea	r12,[24+rsi]
   2580 	mov	QWORD[32+rsp],r10
   2581 	mov	QWORD[40+rsp],r11
   2582 	mov	QWORD[48+rsp],r12
   2583 	mov	QWORD[56+rsp],rcx
   2584 	call	QWORD[__imp_RtlVirtualUnwind]
   2585 
   2586 	mov	eax,1
   2587 	add	rsp,64
   2588 	popfq
   2589 	pop	r15
   2590 	pop	r14
   2591 	pop	r13
   2592 	pop	r12
   2593 	pop	rbp
   2594 	pop	rbx
   2595 	pop	rdi
   2596 	pop	rsi
   2597 	DB	0F3h,0C3h		;repret
   2598 
   2599 
   2600 section	.pdata rdata align=4
   2601 ALIGN	4
   2602 	DD	$L$SEH_begin_sha1_block_data_order wrt ..imagebase
   2603 	DD	$L$SEH_end_sha1_block_data_order wrt ..imagebase
   2604 	DD	$L$SEH_info_sha1_block_data_order wrt ..imagebase
   2605 	DD	$L$SEH_begin_sha1_block_data_order_ssse3 wrt ..imagebase
   2606 	DD	$L$SEH_end_sha1_block_data_order_ssse3 wrt ..imagebase
   2607 	DD	$L$SEH_info_sha1_block_data_order_ssse3 wrt ..imagebase
   2608 section	.xdata rdata align=8
   2609 ALIGN	8
   2610 $L$SEH_info_sha1_block_data_order:
   2611 DB	9,0,0,0
   2612 	DD	se_handler wrt ..imagebase
   2613 $L$SEH_info_sha1_block_data_order_ssse3:
   2614 DB	9,0,0,0
   2615 	DD	ssse3_handler wrt ..imagebase
   2616 	DD	$L$prologue_ssse3 wrt ..imagebase,$L$epilogue_ssse3 wrt ..imagebase
   2617