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