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