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