1%ifidn __OUTPUT_FORMAT__,obj
2section	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
13section	.text	code align=64
14%else
15section	.text	code
16%endif
17;extern	_OPENSSL_ia32cap_P
18global	_sha256_block_data_order
19align	16
20_sha256_block_data_order:
21L$_sha256_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
31L$000pic_point:
32	pop	ebp
33	lea	ebp,[(L$001K256-L$000pic_point)+ebp]
34	sub	esp,16
35	and	esp,-64
36	shl	eax,6
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	mov	ebx,DWORD [4+edx]
45	test	ecx,1048576
46	jnz	NEAR L$002loop
47	mov	edx,DWORD [8+edx]
48	test	ecx,16777216
49	jz	NEAR L$003no_xmm
50	and	ecx,1073741824
51	and	ebx,268435968
52	or	ecx,ebx
53	and	ecx,1342177280
54	cmp	ecx,1342177280
55	je	NEAR L$004AVX
56	test	ebx,512
57	jnz	NEAR L$005SSSE3
58L$003no_xmm:
59	sub	eax,edi
60	cmp	eax,256
61	jae	NEAR L$006unrolled
62	jmp	NEAR L$002loop
63align	16
64L$002loop:
65	mov	eax,DWORD [edi]
66	mov	ebx,DWORD [4+edi]
67	mov	ecx,DWORD [8+edi]
68	bswap	eax
69	mov	edx,DWORD [12+edi]
70	bswap	ebx
71	push	eax
72	bswap	ecx
73	push	ebx
74	bswap	edx
75	push	ecx
76	push	edx
77	mov	eax,DWORD [16+edi]
78	mov	ebx,DWORD [20+edi]
79	mov	ecx,DWORD [24+edi]
80	bswap	eax
81	mov	edx,DWORD [28+edi]
82	bswap	ebx
83	push	eax
84	bswap	ecx
85	push	ebx
86	bswap	edx
87	push	ecx
88	push	edx
89	mov	eax,DWORD [32+edi]
90	mov	ebx,DWORD [36+edi]
91	mov	ecx,DWORD [40+edi]
92	bswap	eax
93	mov	edx,DWORD [44+edi]
94	bswap	ebx
95	push	eax
96	bswap	ecx
97	push	ebx
98	bswap	edx
99	push	ecx
100	push	edx
101	mov	eax,DWORD [48+edi]
102	mov	ebx,DWORD [52+edi]
103	mov	ecx,DWORD [56+edi]
104	bswap	eax
105	mov	edx,DWORD [60+edi]
106	bswap	ebx
107	push	eax
108	bswap	ecx
109	push	ebx
110	bswap	edx
111	push	ecx
112	push	edx
113	add	edi,64
114	lea	esp,[esp-36]
115	mov	DWORD [104+esp],edi
116	mov	eax,DWORD [esi]
117	mov	ebx,DWORD [4+esi]
118	mov	ecx,DWORD [8+esi]
119	mov	edi,DWORD [12+esi]
120	mov	DWORD [8+esp],ebx
121	xor	ebx,ecx
122	mov	DWORD [12+esp],ecx
123	mov	DWORD [16+esp],edi
124	mov	DWORD [esp],ebx
125	mov	edx,DWORD [16+esi]
126	mov	ebx,DWORD [20+esi]
127	mov	ecx,DWORD [24+esi]
128	mov	edi,DWORD [28+esi]
129	mov	DWORD [24+esp],ebx
130	mov	DWORD [28+esp],ecx
131	mov	DWORD [32+esp],edi
132align	16
133L$00700_15:
134	mov	ecx,edx
135	mov	esi,DWORD [24+esp]
136	ror	ecx,14
137	mov	edi,DWORD [28+esp]
138	xor	ecx,edx
139	xor	esi,edi
140	mov	ebx,DWORD [96+esp]
141	ror	ecx,5
142	and	esi,edx
143	mov	DWORD [20+esp],edx
144	xor	edx,ecx
145	add	ebx,DWORD [32+esp]
146	xor	esi,edi
147	ror	edx,6
148	mov	ecx,eax
149	add	ebx,esi
150	ror	ecx,9
151	add	ebx,edx
152	mov	edi,DWORD [8+esp]
153	xor	ecx,eax
154	mov	DWORD [4+esp],eax
155	lea	esp,[esp-4]
156	ror	ecx,11
157	mov	esi,DWORD [ebp]
158	xor	ecx,eax
159	mov	edx,DWORD [20+esp]
160	xor	eax,edi
161	ror	ecx,2
162	add	ebx,esi
163	mov	DWORD [esp],eax
164	add	edx,ebx
165	and	eax,DWORD [4+esp]
166	add	ebx,ecx
167	xor	eax,edi
168	add	ebp,4
169	add	eax,ebx
170	cmp	esi,3248222580
171	jne	NEAR L$00700_15
172	mov	ecx,DWORD [156+esp]
173	jmp	NEAR L$00816_63
174align	16
175L$00816_63:
176	mov	ebx,ecx
177	mov	esi,DWORD [104+esp]
178	ror	ecx,11
179	mov	edi,esi
180	ror	esi,2
181	xor	ecx,ebx
182	shr	ebx,3
183	ror	ecx,7
184	xor	esi,edi
185	xor	ebx,ecx
186	ror	esi,17
187	add	ebx,DWORD [160+esp]
188	shr	edi,10
189	add	ebx,DWORD [124+esp]
190	mov	ecx,edx
191	xor	edi,esi
192	mov	esi,DWORD [24+esp]
193	ror	ecx,14
194	add	ebx,edi
195	mov	edi,DWORD [28+esp]
196	xor	ecx,edx
197	xor	esi,edi
198	mov	DWORD [96+esp],ebx
199	ror	ecx,5
200	and	esi,edx
201	mov	DWORD [20+esp],edx
202	xor	edx,ecx
203	add	ebx,DWORD [32+esp]
204	xor	esi,edi
205	ror	edx,6
206	mov	ecx,eax
207	add	ebx,esi
208	ror	ecx,9
209	add	ebx,edx
210	mov	edi,DWORD [8+esp]
211	xor	ecx,eax
212	mov	DWORD [4+esp],eax
213	lea	esp,[esp-4]
214	ror	ecx,11
215	mov	esi,DWORD [ebp]
216	xor	ecx,eax
217	mov	edx,DWORD [20+esp]
218	xor	eax,edi
219	ror	ecx,2
220	add	ebx,esi
221	mov	DWORD [esp],eax
222	add	edx,ebx
223	and	eax,DWORD [4+esp]
224	add	ebx,ecx
225	xor	eax,edi
226	mov	ecx,DWORD [156+esp]
227	add	ebp,4
228	add	eax,ebx
229	cmp	esi,3329325298
230	jne	NEAR L$00816_63
231	mov	esi,DWORD [356+esp]
232	mov	ebx,DWORD [8+esp]
233	mov	ecx,DWORD [16+esp]
234	add	eax,DWORD [esi]
235	add	ebx,DWORD [4+esi]
236	add	edi,DWORD [8+esi]
237	add	ecx,DWORD [12+esi]
238	mov	DWORD [esi],eax
239	mov	DWORD [4+esi],ebx
240	mov	DWORD [8+esi],edi
241	mov	DWORD [12+esi],ecx
242	mov	eax,DWORD [24+esp]
243	mov	ebx,DWORD [28+esp]
244	mov	ecx,DWORD [32+esp]
245	mov	edi,DWORD [360+esp]
246	add	edx,DWORD [16+esi]
247	add	eax,DWORD [20+esi]
248	add	ebx,DWORD [24+esi]
249	add	ecx,DWORD [28+esi]
250	mov	DWORD [16+esi],edx
251	mov	DWORD [20+esi],eax
252	mov	DWORD [24+esi],ebx
253	mov	DWORD [28+esi],ecx
254	lea	esp,[356+esp]
255	sub	ebp,256
256	cmp	edi,DWORD [8+esp]
257	jb	NEAR L$002loop
258	mov	esp,DWORD [12+esp]
259	pop	edi
260	pop	esi
261	pop	ebx
262	pop	ebp
263	ret
264align	64
265L$001K256:
266dd	1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298
267dd	66051,67438087,134810123,202182159
268db	83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97
269db	110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32
270db	67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
271db	112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
272db	62,0
273align	16
274L$006unrolled:
275	lea	esp,[esp-96]
276	mov	eax,DWORD [esi]
277	mov	ebp,DWORD [4+esi]
278	mov	ecx,DWORD [8+esi]
279	mov	ebx,DWORD [12+esi]
280	mov	DWORD [4+esp],ebp
281	xor	ebp,ecx
282	mov	DWORD [8+esp],ecx
283	mov	DWORD [12+esp],ebx
284	mov	edx,DWORD [16+esi]
285	mov	ebx,DWORD [20+esi]
286	mov	ecx,DWORD [24+esi]
287	mov	esi,DWORD [28+esi]
288	mov	DWORD [20+esp],ebx
289	mov	DWORD [24+esp],ecx
290	mov	DWORD [28+esp],esi
291	jmp	NEAR L$009grand_loop
292align	16
293L$009grand_loop:
294	mov	ebx,DWORD [edi]
295	mov	ecx,DWORD [4+edi]
296	bswap	ebx
297	mov	esi,DWORD [8+edi]
298	bswap	ecx
299	mov	DWORD [32+esp],ebx
300	bswap	esi
301	mov	DWORD [36+esp],ecx
302	mov	DWORD [40+esp],esi
303	mov	ebx,DWORD [12+edi]
304	mov	ecx,DWORD [16+edi]
305	bswap	ebx
306	mov	esi,DWORD [20+edi]
307	bswap	ecx
308	mov	DWORD [44+esp],ebx
309	bswap	esi
310	mov	DWORD [48+esp],ecx
311	mov	DWORD [52+esp],esi
312	mov	ebx,DWORD [24+edi]
313	mov	ecx,DWORD [28+edi]
314	bswap	ebx
315	mov	esi,DWORD [32+edi]
316	bswap	ecx
317	mov	DWORD [56+esp],ebx
318	bswap	esi
319	mov	DWORD [60+esp],ecx
320	mov	DWORD [64+esp],esi
321	mov	ebx,DWORD [36+edi]
322	mov	ecx,DWORD [40+edi]
323	bswap	ebx
324	mov	esi,DWORD [44+edi]
325	bswap	ecx
326	mov	DWORD [68+esp],ebx
327	bswap	esi
328	mov	DWORD [72+esp],ecx
329	mov	DWORD [76+esp],esi
330	mov	ebx,DWORD [48+edi]
331	mov	ecx,DWORD [52+edi]
332	bswap	ebx
333	mov	esi,DWORD [56+edi]
334	bswap	ecx
335	mov	DWORD [80+esp],ebx
336	bswap	esi
337	mov	DWORD [84+esp],ecx
338	mov	DWORD [88+esp],esi
339	mov	ebx,DWORD [60+edi]
340	add	edi,64
341	bswap	ebx
342	mov	DWORD [100+esp],edi
343	mov	DWORD [92+esp],ebx
344	mov	ecx,edx
345	mov	esi,DWORD [20+esp]
346	ror	edx,14
347	mov	edi,DWORD [24+esp]
348	xor	edx,ecx
349	mov	ebx,DWORD [32+esp]
350	xor	esi,edi
351	ror	edx,5
352	and	esi,ecx
353	mov	DWORD [16+esp],ecx
354	xor	edx,ecx
355	add	ebx,DWORD [28+esp]
356	xor	edi,esi
357	ror	edx,6
358	mov	ecx,eax
359	add	ebx,edi
360	ror	ecx,9
361	mov	esi,eax
362	mov	edi,DWORD [4+esp]
363	xor	ecx,eax
364	mov	DWORD [esp],eax
365	xor	eax,edi
366	ror	ecx,11
367	and	ebp,eax
368	lea	edx,[1116352408+edx*1+ebx]
369	xor	ecx,esi
370	xor	ebp,edi
371	ror	ecx,2
372	add	ebp,edx
373	add	edx,DWORD [12+esp]
374	add	ebp,ecx
375	mov	esi,edx
376	mov	ecx,DWORD [16+esp]
377	ror	edx,14
378	mov	edi,DWORD [20+esp]
379	xor	edx,esi
380	mov	ebx,DWORD [36+esp]
381	xor	ecx,edi
382	ror	edx,5
383	and	ecx,esi
384	mov	DWORD [12+esp],esi
385	xor	edx,esi
386	add	ebx,DWORD [24+esp]
387	xor	edi,ecx
388	ror	edx,6
389	mov	esi,ebp
390	add	ebx,edi
391	ror	esi,9
392	mov	ecx,ebp
393	mov	edi,DWORD [esp]
394	xor	esi,ebp
395	mov	DWORD [28+esp],ebp
396	xor	ebp,edi
397	ror	esi,11
398	and	eax,ebp
399	lea	edx,[1899447441+edx*1+ebx]
400	xor	esi,ecx
401	xor	eax,edi
402	ror	esi,2
403	add	eax,edx
404	add	edx,DWORD [8+esp]
405	add	eax,esi
406	mov	ecx,edx
407	mov	esi,DWORD [12+esp]
408	ror	edx,14
409	mov	edi,DWORD [16+esp]
410	xor	edx,ecx
411	mov	ebx,DWORD [40+esp]
412	xor	esi,edi
413	ror	edx,5
414	and	esi,ecx
415	mov	DWORD [8+esp],ecx
416	xor	edx,ecx
417	add	ebx,DWORD [20+esp]
418	xor	edi,esi
419	ror	edx,6
420	mov	ecx,eax
421	add	ebx,edi
422	ror	ecx,9
423	mov	esi,eax
424	mov	edi,DWORD [28+esp]
425	xor	ecx,eax
426	mov	DWORD [24+esp],eax
427	xor	eax,edi
428	ror	ecx,11
429	and	ebp,eax
430	lea	edx,[3049323471+edx*1+ebx]
431	xor	ecx,esi
432	xor	ebp,edi
433	ror	ecx,2
434	add	ebp,edx
435	add	edx,DWORD [4+esp]
436	add	ebp,ecx
437	mov	esi,edx
438	mov	ecx,DWORD [8+esp]
439	ror	edx,14
440	mov	edi,DWORD [12+esp]
441	xor	edx,esi
442	mov	ebx,DWORD [44+esp]
443	xor	ecx,edi
444	ror	edx,5
445	and	ecx,esi
446	mov	DWORD [4+esp],esi
447	xor	edx,esi
448	add	ebx,DWORD [16+esp]
449	xor	edi,ecx
450	ror	edx,6
451	mov	esi,ebp
452	add	ebx,edi
453	ror	esi,9
454	mov	ecx,ebp
455	mov	edi,DWORD [24+esp]
456	xor	esi,ebp
457	mov	DWORD [20+esp],ebp
458	xor	ebp,edi
459	ror	esi,11
460	and	eax,ebp
461	lea	edx,[3921009573+edx*1+ebx]
462	xor	esi,ecx
463	xor	eax,edi
464	ror	esi,2
465	add	eax,edx
466	add	edx,DWORD [esp]
467	add	eax,esi
468	mov	ecx,edx
469	mov	esi,DWORD [4+esp]
470	ror	edx,14
471	mov	edi,DWORD [8+esp]
472	xor	edx,ecx
473	mov	ebx,DWORD [48+esp]
474	xor	esi,edi
475	ror	edx,5
476	and	esi,ecx
477	mov	DWORD [esp],ecx
478	xor	edx,ecx
479	add	ebx,DWORD [12+esp]
480	xor	edi,esi
481	ror	edx,6
482	mov	ecx,eax
483	add	ebx,edi
484	ror	ecx,9
485	mov	esi,eax
486	mov	edi,DWORD [20+esp]
487	xor	ecx,eax
488	mov	DWORD [16+esp],eax
489	xor	eax,edi
490	ror	ecx,11
491	and	ebp,eax
492	lea	edx,[961987163+edx*1+ebx]
493	xor	ecx,esi
494	xor	ebp,edi
495	ror	ecx,2
496	add	ebp,edx
497	add	edx,DWORD [28+esp]
498	add	ebp,ecx
499	mov	esi,edx
500	mov	ecx,DWORD [esp]
501	ror	edx,14
502	mov	edi,DWORD [4+esp]
503	xor	edx,esi
504	mov	ebx,DWORD [52+esp]
505	xor	ecx,edi
506	ror	edx,5
507	and	ecx,esi
508	mov	DWORD [28+esp],esi
509	xor	edx,esi
510	add	ebx,DWORD [8+esp]
511	xor	edi,ecx
512	ror	edx,6
513	mov	esi,ebp
514	add	ebx,edi
515	ror	esi,9
516	mov	ecx,ebp
517	mov	edi,DWORD [16+esp]
518	xor	esi,ebp
519	mov	DWORD [12+esp],ebp
520	xor	ebp,edi
521	ror	esi,11
522	and	eax,ebp
523	lea	edx,[1508970993+edx*1+ebx]
524	xor	esi,ecx
525	xor	eax,edi
526	ror	esi,2
527	add	eax,edx
528	add	edx,DWORD [24+esp]
529	add	eax,esi
530	mov	ecx,edx
531	mov	esi,DWORD [28+esp]
532	ror	edx,14
533	mov	edi,DWORD [esp]
534	xor	edx,ecx
535	mov	ebx,DWORD [56+esp]
536	xor	esi,edi
537	ror	edx,5
538	and	esi,ecx
539	mov	DWORD [24+esp],ecx
540	xor	edx,ecx
541	add	ebx,DWORD [4+esp]
542	xor	edi,esi
543	ror	edx,6
544	mov	ecx,eax
545	add	ebx,edi
546	ror	ecx,9
547	mov	esi,eax
548	mov	edi,DWORD [12+esp]
549	xor	ecx,eax
550	mov	DWORD [8+esp],eax
551	xor	eax,edi
552	ror	ecx,11
553	and	ebp,eax
554	lea	edx,[2453635748+edx*1+ebx]
555	xor	ecx,esi
556	xor	ebp,edi
557	ror	ecx,2
558	add	ebp,edx
559	add	edx,DWORD [20+esp]
560	add	ebp,ecx
561	mov	esi,edx
562	mov	ecx,DWORD [24+esp]
563	ror	edx,14
564	mov	edi,DWORD [28+esp]
565	xor	edx,esi
566	mov	ebx,DWORD [60+esp]
567	xor	ecx,edi
568	ror	edx,5
569	and	ecx,esi
570	mov	DWORD [20+esp],esi
571	xor	edx,esi
572	add	ebx,DWORD [esp]
573	xor	edi,ecx
574	ror	edx,6
575	mov	esi,ebp
576	add	ebx,edi
577	ror	esi,9
578	mov	ecx,ebp
579	mov	edi,DWORD [8+esp]
580	xor	esi,ebp
581	mov	DWORD [4+esp],ebp
582	xor	ebp,edi
583	ror	esi,11
584	and	eax,ebp
585	lea	edx,[2870763221+edx*1+ebx]
586	xor	esi,ecx
587	xor	eax,edi
588	ror	esi,2
589	add	eax,edx
590	add	edx,DWORD [16+esp]
591	add	eax,esi
592	mov	ecx,edx
593	mov	esi,DWORD [20+esp]
594	ror	edx,14
595	mov	edi,DWORD [24+esp]
596	xor	edx,ecx
597	mov	ebx,DWORD [64+esp]
598	xor	esi,edi
599	ror	edx,5
600	and	esi,ecx
601	mov	DWORD [16+esp],ecx
602	xor	edx,ecx
603	add	ebx,DWORD [28+esp]
604	xor	edi,esi
605	ror	edx,6
606	mov	ecx,eax
607	add	ebx,edi
608	ror	ecx,9
609	mov	esi,eax
610	mov	edi,DWORD [4+esp]
611	xor	ecx,eax
612	mov	DWORD [esp],eax
613	xor	eax,edi
614	ror	ecx,11
615	and	ebp,eax
616	lea	edx,[3624381080+edx*1+ebx]
617	xor	ecx,esi
618	xor	ebp,edi
619	ror	ecx,2
620	add	ebp,edx
621	add	edx,DWORD [12+esp]
622	add	ebp,ecx
623	mov	esi,edx
624	mov	ecx,DWORD [16+esp]
625	ror	edx,14
626	mov	edi,DWORD [20+esp]
627	xor	edx,esi
628	mov	ebx,DWORD [68+esp]
629	xor	ecx,edi
630	ror	edx,5
631	and	ecx,esi
632	mov	DWORD [12+esp],esi
633	xor	edx,esi
634	add	ebx,DWORD [24+esp]
635	xor	edi,ecx
636	ror	edx,6
637	mov	esi,ebp
638	add	ebx,edi
639	ror	esi,9
640	mov	ecx,ebp
641	mov	edi,DWORD [esp]
642	xor	esi,ebp
643	mov	DWORD [28+esp],ebp
644	xor	ebp,edi
645	ror	esi,11
646	and	eax,ebp
647	lea	edx,[310598401+edx*1+ebx]
648	xor	esi,ecx
649	xor	eax,edi
650	ror	esi,2
651	add	eax,edx
652	add	edx,DWORD [8+esp]
653	add	eax,esi
654	mov	ecx,edx
655	mov	esi,DWORD [12+esp]
656	ror	edx,14
657	mov	edi,DWORD [16+esp]
658	xor	edx,ecx
659	mov	ebx,DWORD [72+esp]
660	xor	esi,edi
661	ror	edx,5
662	and	esi,ecx
663	mov	DWORD [8+esp],ecx
664	xor	edx,ecx
665	add	ebx,DWORD [20+esp]
666	xor	edi,esi
667	ror	edx,6
668	mov	ecx,eax
669	add	ebx,edi
670	ror	ecx,9
671	mov	esi,eax
672	mov	edi,DWORD [28+esp]
673	xor	ecx,eax
674	mov	DWORD [24+esp],eax
675	xor	eax,edi
676	ror	ecx,11
677	and	ebp,eax
678	lea	edx,[607225278+edx*1+ebx]
679	xor	ecx,esi
680	xor	ebp,edi
681	ror	ecx,2
682	add	ebp,edx
683	add	edx,DWORD [4+esp]
684	add	ebp,ecx
685	mov	esi,edx
686	mov	ecx,DWORD [8+esp]
687	ror	edx,14
688	mov	edi,DWORD [12+esp]
689	xor	edx,esi
690	mov	ebx,DWORD [76+esp]
691	xor	ecx,edi
692	ror	edx,5
693	and	ecx,esi
694	mov	DWORD [4+esp],esi
695	xor	edx,esi
696	add	ebx,DWORD [16+esp]
697	xor	edi,ecx
698	ror	edx,6
699	mov	esi,ebp
700	add	ebx,edi
701	ror	esi,9
702	mov	ecx,ebp
703	mov	edi,DWORD [24+esp]
704	xor	esi,ebp
705	mov	DWORD [20+esp],ebp
706	xor	ebp,edi
707	ror	esi,11
708	and	eax,ebp
709	lea	edx,[1426881987+edx*1+ebx]
710	xor	esi,ecx
711	xor	eax,edi
712	ror	esi,2
713	add	eax,edx
714	add	edx,DWORD [esp]
715	add	eax,esi
716	mov	ecx,edx
717	mov	esi,DWORD [4+esp]
718	ror	edx,14
719	mov	edi,DWORD [8+esp]
720	xor	edx,ecx
721	mov	ebx,DWORD [80+esp]
722	xor	esi,edi
723	ror	edx,5
724	and	esi,ecx
725	mov	DWORD [esp],ecx
726	xor	edx,ecx
727	add	ebx,DWORD [12+esp]
728	xor	edi,esi
729	ror	edx,6
730	mov	ecx,eax
731	add	ebx,edi
732	ror	ecx,9
733	mov	esi,eax
734	mov	edi,DWORD [20+esp]
735	xor	ecx,eax
736	mov	DWORD [16+esp],eax
737	xor	eax,edi
738	ror	ecx,11
739	and	ebp,eax
740	lea	edx,[1925078388+edx*1+ebx]
741	xor	ecx,esi
742	xor	ebp,edi
743	ror	ecx,2
744	add	ebp,edx
745	add	edx,DWORD [28+esp]
746	add	ebp,ecx
747	mov	esi,edx
748	mov	ecx,DWORD [esp]
749	ror	edx,14
750	mov	edi,DWORD [4+esp]
751	xor	edx,esi
752	mov	ebx,DWORD [84+esp]
753	xor	ecx,edi
754	ror	edx,5
755	and	ecx,esi
756	mov	DWORD [28+esp],esi
757	xor	edx,esi
758	add	ebx,DWORD [8+esp]
759	xor	edi,ecx
760	ror	edx,6
761	mov	esi,ebp
762	add	ebx,edi
763	ror	esi,9
764	mov	ecx,ebp
765	mov	edi,DWORD [16+esp]
766	xor	esi,ebp
767	mov	DWORD [12+esp],ebp
768	xor	ebp,edi
769	ror	esi,11
770	and	eax,ebp
771	lea	edx,[2162078206+edx*1+ebx]
772	xor	esi,ecx
773	xor	eax,edi
774	ror	esi,2
775	add	eax,edx
776	add	edx,DWORD [24+esp]
777	add	eax,esi
778	mov	ecx,edx
779	mov	esi,DWORD [28+esp]
780	ror	edx,14
781	mov	edi,DWORD [esp]
782	xor	edx,ecx
783	mov	ebx,DWORD [88+esp]
784	xor	esi,edi
785	ror	edx,5
786	and	esi,ecx
787	mov	DWORD [24+esp],ecx
788	xor	edx,ecx
789	add	ebx,DWORD [4+esp]
790	xor	edi,esi
791	ror	edx,6
792	mov	ecx,eax
793	add	ebx,edi
794	ror	ecx,9
795	mov	esi,eax
796	mov	edi,DWORD [12+esp]
797	xor	ecx,eax
798	mov	DWORD [8+esp],eax
799	xor	eax,edi
800	ror	ecx,11
801	and	ebp,eax
802	lea	edx,[2614888103+edx*1+ebx]
803	xor	ecx,esi
804	xor	ebp,edi
805	ror	ecx,2
806	add	ebp,edx
807	add	edx,DWORD [20+esp]
808	add	ebp,ecx
809	mov	esi,edx
810	mov	ecx,DWORD [24+esp]
811	ror	edx,14
812	mov	edi,DWORD [28+esp]
813	xor	edx,esi
814	mov	ebx,DWORD [92+esp]
815	xor	ecx,edi
816	ror	edx,5
817	and	ecx,esi
818	mov	DWORD [20+esp],esi
819	xor	edx,esi
820	add	ebx,DWORD [esp]
821	xor	edi,ecx
822	ror	edx,6
823	mov	esi,ebp
824	add	ebx,edi
825	ror	esi,9
826	mov	ecx,ebp
827	mov	edi,DWORD [8+esp]
828	xor	esi,ebp
829	mov	DWORD [4+esp],ebp
830	xor	ebp,edi
831	ror	esi,11
832	and	eax,ebp
833	lea	edx,[3248222580+edx*1+ebx]
834	xor	esi,ecx
835	xor	eax,edi
836	mov	ecx,DWORD [36+esp]
837	ror	esi,2
838	add	eax,edx
839	add	edx,DWORD [16+esp]
840	add	eax,esi
841	mov	esi,DWORD [88+esp]
842	mov	ebx,ecx
843	ror	ecx,11
844	mov	edi,esi
845	ror	esi,2
846	xor	ecx,ebx
847	shr	ebx,3
848	ror	ecx,7
849	xor	esi,edi
850	xor	ebx,ecx
851	ror	esi,17
852	add	ebx,DWORD [32+esp]
853	shr	edi,10
854	add	ebx,DWORD [68+esp]
855	mov	ecx,edx
856	xor	edi,esi
857	mov	esi,DWORD [20+esp]
858	ror	edx,14
859	add	ebx,edi
860	mov	edi,DWORD [24+esp]
861	xor	edx,ecx
862	mov	DWORD [32+esp],ebx
863	xor	esi,edi
864	ror	edx,5
865	and	esi,ecx
866	mov	DWORD [16+esp],ecx
867	xor	edx,ecx
868	add	ebx,DWORD [28+esp]
869	xor	edi,esi
870	ror	edx,6
871	mov	ecx,eax
872	add	ebx,edi
873	ror	ecx,9
874	mov	esi,eax
875	mov	edi,DWORD [4+esp]
876	xor	ecx,eax
877	mov	DWORD [esp],eax
878	xor	eax,edi
879	ror	ecx,11
880	and	ebp,eax
881	lea	edx,[3835390401+edx*1+ebx]
882	xor	ecx,esi
883	xor	ebp,edi
884	mov	esi,DWORD [40+esp]
885	ror	ecx,2
886	add	ebp,edx
887	add	edx,DWORD [12+esp]
888	add	ebp,ecx
889	mov	ecx,DWORD [92+esp]
890	mov	ebx,esi
891	ror	esi,11
892	mov	edi,ecx
893	ror	ecx,2
894	xor	esi,ebx
895	shr	ebx,3
896	ror	esi,7
897	xor	ecx,edi
898	xor	ebx,esi
899	ror	ecx,17
900	add	ebx,DWORD [36+esp]
901	shr	edi,10
902	add	ebx,DWORD [72+esp]
903	mov	esi,edx
904	xor	edi,ecx
905	mov	ecx,DWORD [16+esp]
906	ror	edx,14
907	add	ebx,edi
908	mov	edi,DWORD [20+esp]
909	xor	edx,esi
910	mov	DWORD [36+esp],ebx
911	xor	ecx,edi
912	ror	edx,5
913	and	ecx,esi
914	mov	DWORD [12+esp],esi
915	xor	edx,esi
916	add	ebx,DWORD [24+esp]
917	xor	edi,ecx
918	ror	edx,6
919	mov	esi,ebp
920	add	ebx,edi
921	ror	esi,9
922	mov	ecx,ebp
923	mov	edi,DWORD [esp]
924	xor	esi,ebp
925	mov	DWORD [28+esp],ebp
926	xor	ebp,edi
927	ror	esi,11
928	and	eax,ebp
929	lea	edx,[4022224774+edx*1+ebx]
930	xor	esi,ecx
931	xor	eax,edi
932	mov	ecx,DWORD [44+esp]
933	ror	esi,2
934	add	eax,edx
935	add	edx,DWORD [8+esp]
936	add	eax,esi
937	mov	esi,DWORD [32+esp]
938	mov	ebx,ecx
939	ror	ecx,11
940	mov	edi,esi
941	ror	esi,2
942	xor	ecx,ebx
943	shr	ebx,3
944	ror	ecx,7
945	xor	esi,edi
946	xor	ebx,ecx
947	ror	esi,17
948	add	ebx,DWORD [40+esp]
949	shr	edi,10
950	add	ebx,DWORD [76+esp]
951	mov	ecx,edx
952	xor	edi,esi
953	mov	esi,DWORD [12+esp]
954	ror	edx,14
955	add	ebx,edi
956	mov	edi,DWORD [16+esp]
957	xor	edx,ecx
958	mov	DWORD [40+esp],ebx
959	xor	esi,edi
960	ror	edx,5
961	and	esi,ecx
962	mov	DWORD [8+esp],ecx
963	xor	edx,ecx
964	add	ebx,DWORD [20+esp]
965	xor	edi,esi
966	ror	edx,6
967	mov	ecx,eax
968	add	ebx,edi
969	ror	ecx,9
970	mov	esi,eax
971	mov	edi,DWORD [28+esp]
972	xor	ecx,eax
973	mov	DWORD [24+esp],eax
974	xor	eax,edi
975	ror	ecx,11
976	and	ebp,eax
977	lea	edx,[264347078+edx*1+ebx]
978	xor	ecx,esi
979	xor	ebp,edi
980	mov	esi,DWORD [48+esp]
981	ror	ecx,2
982	add	ebp,edx
983	add	edx,DWORD [4+esp]
984	add	ebp,ecx
985	mov	ecx,DWORD [36+esp]
986	mov	ebx,esi
987	ror	esi,11
988	mov	edi,ecx
989	ror	ecx,2
990	xor	esi,ebx
991	shr	ebx,3
992	ror	esi,7
993	xor	ecx,edi
994	xor	ebx,esi
995	ror	ecx,17
996	add	ebx,DWORD [44+esp]
997	shr	edi,10
998	add	ebx,DWORD [80+esp]
999	mov	esi,edx
1000	xor	edi,ecx
1001	mov	ecx,DWORD [8+esp]
1002	ror	edx,14
1003	add	ebx,edi
1004	mov	edi,DWORD [12+esp]
1005	xor	edx,esi
1006	mov	DWORD [44+esp],ebx
1007	xor	ecx,edi
1008	ror	edx,5
1009	and	ecx,esi
1010	mov	DWORD [4+esp],esi
1011	xor	edx,esi
1012	add	ebx,DWORD [16+esp]
1013	xor	edi,ecx
1014	ror	edx,6
1015	mov	esi,ebp
1016	add	ebx,edi
1017	ror	esi,9
1018	mov	ecx,ebp
1019	mov	edi,DWORD [24+esp]
1020	xor	esi,ebp
1021	mov	DWORD [20+esp],ebp
1022	xor	ebp,edi
1023	ror	esi,11
1024	and	eax,ebp
1025	lea	edx,[604807628+edx*1+ebx]
1026	xor	esi,ecx
1027	xor	eax,edi
1028	mov	ecx,DWORD [52+esp]
1029	ror	esi,2
1030	add	eax,edx
1031	add	edx,DWORD [esp]
1032	add	eax,esi
1033	mov	esi,DWORD [40+esp]
1034	mov	ebx,ecx
1035	ror	ecx,11
1036	mov	edi,esi
1037	ror	esi,2
1038	xor	ecx,ebx
1039	shr	ebx,3
1040	ror	ecx,7
1041	xor	esi,edi
1042	xor	ebx,ecx
1043	ror	esi,17
1044	add	ebx,DWORD [48+esp]
1045	shr	edi,10
1046	add	ebx,DWORD [84+esp]
1047	mov	ecx,edx
1048	xor	edi,esi
1049	mov	esi,DWORD [4+esp]
1050	ror	edx,14
1051	add	ebx,edi
1052	mov	edi,DWORD [8+esp]
1053	xor	edx,ecx
1054	mov	DWORD [48+esp],ebx
1055	xor	esi,edi
1056	ror	edx,5
1057	and	esi,ecx
1058	mov	DWORD [esp],ecx
1059	xor	edx,ecx
1060	add	ebx,DWORD [12+esp]
1061	xor	edi,esi
1062	ror	edx,6
1063	mov	ecx,eax
1064	add	ebx,edi
1065	ror	ecx,9
1066	mov	esi,eax
1067	mov	edi,DWORD [20+esp]
1068	xor	ecx,eax
1069	mov	DWORD [16+esp],eax
1070	xor	eax,edi
1071	ror	ecx,11
1072	and	ebp,eax
1073	lea	edx,[770255983+edx*1+ebx]
1074	xor	ecx,esi
1075	xor	ebp,edi
1076	mov	esi,DWORD [56+esp]
1077	ror	ecx,2
1078	add	ebp,edx
1079	add	edx,DWORD [28+esp]
1080	add	ebp,ecx
1081	mov	ecx,DWORD [44+esp]
1082	mov	ebx,esi
1083	ror	esi,11
1084	mov	edi,ecx
1085	ror	ecx,2
1086	xor	esi,ebx
1087	shr	ebx,3
1088	ror	esi,7
1089	xor	ecx,edi
1090	xor	ebx,esi
1091	ror	ecx,17
1092	add	ebx,DWORD [52+esp]
1093	shr	edi,10
1094	add	ebx,DWORD [88+esp]
1095	mov	esi,edx
1096	xor	edi,ecx
1097	mov	ecx,DWORD [esp]
1098	ror	edx,14
1099	add	ebx,edi
1100	mov	edi,DWORD [4+esp]
1101	xor	edx,esi
1102	mov	DWORD [52+esp],ebx
1103	xor	ecx,edi
1104	ror	edx,5
1105	and	ecx,esi
1106	mov	DWORD [28+esp],esi
1107	xor	edx,esi
1108	add	ebx,DWORD [8+esp]
1109	xor	edi,ecx
1110	ror	edx,6
1111	mov	esi,ebp
1112	add	ebx,edi
1113	ror	esi,9
1114	mov	ecx,ebp
1115	mov	edi,DWORD [16+esp]
1116	xor	esi,ebp
1117	mov	DWORD [12+esp],ebp
1118	xor	ebp,edi
1119	ror	esi,11
1120	and	eax,ebp
1121	lea	edx,[1249150122+edx*1+ebx]
1122	xor	esi,ecx
1123	xor	eax,edi
1124	mov	ecx,DWORD [60+esp]
1125	ror	esi,2
1126	add	eax,edx
1127	add	edx,DWORD [24+esp]
1128	add	eax,esi
1129	mov	esi,DWORD [48+esp]
1130	mov	ebx,ecx
1131	ror	ecx,11
1132	mov	edi,esi
1133	ror	esi,2
1134	xor	ecx,ebx
1135	shr	ebx,3
1136	ror	ecx,7
1137	xor	esi,edi
1138	xor	ebx,ecx
1139	ror	esi,17
1140	add	ebx,DWORD [56+esp]
1141	shr	edi,10
1142	add	ebx,DWORD [92+esp]
1143	mov	ecx,edx
1144	xor	edi,esi
1145	mov	esi,DWORD [28+esp]
1146	ror	edx,14
1147	add	ebx,edi
1148	mov	edi,DWORD [esp]
1149	xor	edx,ecx
1150	mov	DWORD [56+esp],ebx
1151	xor	esi,edi
1152	ror	edx,5
1153	and	esi,ecx
1154	mov	DWORD [24+esp],ecx
1155	xor	edx,ecx
1156	add	ebx,DWORD [4+esp]
1157	xor	edi,esi
1158	ror	edx,6
1159	mov	ecx,eax
1160	add	ebx,edi
1161	ror	ecx,9
1162	mov	esi,eax
1163	mov	edi,DWORD [12+esp]
1164	xor	ecx,eax
1165	mov	DWORD [8+esp],eax
1166	xor	eax,edi
1167	ror	ecx,11
1168	and	ebp,eax
1169	lea	edx,[1555081692+edx*1+ebx]
1170	xor	ecx,esi
1171	xor	ebp,edi
1172	mov	esi,DWORD [64+esp]
1173	ror	ecx,2
1174	add	ebp,edx
1175	add	edx,DWORD [20+esp]
1176	add	ebp,ecx
1177	mov	ecx,DWORD [52+esp]
1178	mov	ebx,esi
1179	ror	esi,11
1180	mov	edi,ecx
1181	ror	ecx,2
1182	xor	esi,ebx
1183	shr	ebx,3
1184	ror	esi,7
1185	xor	ecx,edi
1186	xor	ebx,esi
1187	ror	ecx,17
1188	add	ebx,DWORD [60+esp]
1189	shr	edi,10
1190	add	ebx,DWORD [32+esp]
1191	mov	esi,edx
1192	xor	edi,ecx
1193	mov	ecx,DWORD [24+esp]
1194	ror	edx,14
1195	add	ebx,edi
1196	mov	edi,DWORD [28+esp]
1197	xor	edx,esi
1198	mov	DWORD [60+esp],ebx
1199	xor	ecx,edi
1200	ror	edx,5
1201	and	ecx,esi
1202	mov	DWORD [20+esp],esi
1203	xor	edx,esi
1204	add	ebx,DWORD [esp]
1205	xor	edi,ecx
1206	ror	edx,6
1207	mov	esi,ebp
1208	add	ebx,edi
1209	ror	esi,9
1210	mov	ecx,ebp
1211	mov	edi,DWORD [8+esp]
1212	xor	esi,ebp
1213	mov	DWORD [4+esp],ebp
1214	xor	ebp,edi
1215	ror	esi,11
1216	and	eax,ebp
1217	lea	edx,[1996064986+edx*1+ebx]
1218	xor	esi,ecx
1219	xor	eax,edi
1220	mov	ecx,DWORD [68+esp]
1221	ror	esi,2
1222	add	eax,edx
1223	add	edx,DWORD [16+esp]
1224	add	eax,esi
1225	mov	esi,DWORD [56+esp]
1226	mov	ebx,ecx
1227	ror	ecx,11
1228	mov	edi,esi
1229	ror	esi,2
1230	xor	ecx,ebx
1231	shr	ebx,3
1232	ror	ecx,7
1233	xor	esi,edi
1234	xor	ebx,ecx
1235	ror	esi,17
1236	add	ebx,DWORD [64+esp]
1237	shr	edi,10
1238	add	ebx,DWORD [36+esp]
1239	mov	ecx,edx
1240	xor	edi,esi
1241	mov	esi,DWORD [20+esp]
1242	ror	edx,14
1243	add	ebx,edi
1244	mov	edi,DWORD [24+esp]
1245	xor	edx,ecx
1246	mov	DWORD [64+esp],ebx
1247	xor	esi,edi
1248	ror	edx,5
1249	and	esi,ecx
1250	mov	DWORD [16+esp],ecx
1251	xor	edx,ecx
1252	add	ebx,DWORD [28+esp]
1253	xor	edi,esi
1254	ror	edx,6
1255	mov	ecx,eax
1256	add	ebx,edi
1257	ror	ecx,9
1258	mov	esi,eax
1259	mov	edi,DWORD [4+esp]
1260	xor	ecx,eax
1261	mov	DWORD [esp],eax
1262	xor	eax,edi
1263	ror	ecx,11
1264	and	ebp,eax
1265	lea	edx,[2554220882+edx*1+ebx]
1266	xor	ecx,esi
1267	xor	ebp,edi
1268	mov	esi,DWORD [72+esp]
1269	ror	ecx,2
1270	add	ebp,edx
1271	add	edx,DWORD [12+esp]
1272	add	ebp,ecx
1273	mov	ecx,DWORD [60+esp]
1274	mov	ebx,esi
1275	ror	esi,11
1276	mov	edi,ecx
1277	ror	ecx,2
1278	xor	esi,ebx
1279	shr	ebx,3
1280	ror	esi,7
1281	xor	ecx,edi
1282	xor	ebx,esi
1283	ror	ecx,17
1284	add	ebx,DWORD [68+esp]
1285	shr	edi,10
1286	add	ebx,DWORD [40+esp]
1287	mov	esi,edx
1288	xor	edi,ecx
1289	mov	ecx,DWORD [16+esp]
1290	ror	edx,14
1291	add	ebx,edi
1292	mov	edi,DWORD [20+esp]
1293	xor	edx,esi
1294	mov	DWORD [68+esp],ebx
1295	xor	ecx,edi
1296	ror	edx,5
1297	and	ecx,esi
1298	mov	DWORD [12+esp],esi
1299	xor	edx,esi
1300	add	ebx,DWORD [24+esp]
1301	xor	edi,ecx
1302	ror	edx,6
1303	mov	esi,ebp
1304	add	ebx,edi
1305	ror	esi,9
1306	mov	ecx,ebp
1307	mov	edi,DWORD [esp]
1308	xor	esi,ebp
1309	mov	DWORD [28+esp],ebp
1310	xor	ebp,edi
1311	ror	esi,11
1312	and	eax,ebp
1313	lea	edx,[2821834349+edx*1+ebx]
1314	xor	esi,ecx
1315	xor	eax,edi
1316	mov	ecx,DWORD [76+esp]
1317	ror	esi,2
1318	add	eax,edx
1319	add	edx,DWORD [8+esp]
1320	add	eax,esi
1321	mov	esi,DWORD [64+esp]
1322	mov	ebx,ecx
1323	ror	ecx,11
1324	mov	edi,esi
1325	ror	esi,2
1326	xor	ecx,ebx
1327	shr	ebx,3
1328	ror	ecx,7
1329	xor	esi,edi
1330	xor	ebx,ecx
1331	ror	esi,17
1332	add	ebx,DWORD [72+esp]
1333	shr	edi,10
1334	add	ebx,DWORD [44+esp]
1335	mov	ecx,edx
1336	xor	edi,esi
1337	mov	esi,DWORD [12+esp]
1338	ror	edx,14
1339	add	ebx,edi
1340	mov	edi,DWORD [16+esp]
1341	xor	edx,ecx
1342	mov	DWORD [72+esp],ebx
1343	xor	esi,edi
1344	ror	edx,5
1345	and	esi,ecx
1346	mov	DWORD [8+esp],ecx
1347	xor	edx,ecx
1348	add	ebx,DWORD [20+esp]
1349	xor	edi,esi
1350	ror	edx,6
1351	mov	ecx,eax
1352	add	ebx,edi
1353	ror	ecx,9
1354	mov	esi,eax
1355	mov	edi,DWORD [28+esp]
1356	xor	ecx,eax
1357	mov	DWORD [24+esp],eax
1358	xor	eax,edi
1359	ror	ecx,11
1360	and	ebp,eax
1361	lea	edx,[2952996808+edx*1+ebx]
1362	xor	ecx,esi
1363	xor	ebp,edi
1364	mov	esi,DWORD [80+esp]
1365	ror	ecx,2
1366	add	ebp,edx
1367	add	edx,DWORD [4+esp]
1368	add	ebp,ecx
1369	mov	ecx,DWORD [68+esp]
1370	mov	ebx,esi
1371	ror	esi,11
1372	mov	edi,ecx
1373	ror	ecx,2
1374	xor	esi,ebx
1375	shr	ebx,3
1376	ror	esi,7
1377	xor	ecx,edi
1378	xor	ebx,esi
1379	ror	ecx,17
1380	add	ebx,DWORD [76+esp]
1381	shr	edi,10
1382	add	ebx,DWORD [48+esp]
1383	mov	esi,edx
1384	xor	edi,ecx
1385	mov	ecx,DWORD [8+esp]
1386	ror	edx,14
1387	add	ebx,edi
1388	mov	edi,DWORD [12+esp]
1389	xor	edx,esi
1390	mov	DWORD [76+esp],ebx
1391	xor	ecx,edi
1392	ror	edx,5
1393	and	ecx,esi
1394	mov	DWORD [4+esp],esi
1395	xor	edx,esi
1396	add	ebx,DWORD [16+esp]
1397	xor	edi,ecx
1398	ror	edx,6
1399	mov	esi,ebp
1400	add	ebx,edi
1401	ror	esi,9
1402	mov	ecx,ebp
1403	mov	edi,DWORD [24+esp]
1404	xor	esi,ebp
1405	mov	DWORD [20+esp],ebp
1406	xor	ebp,edi
1407	ror	esi,11
1408	and	eax,ebp
1409	lea	edx,[3210313671+edx*1+ebx]
1410	xor	esi,ecx
1411	xor	eax,edi
1412	mov	ecx,DWORD [84+esp]
1413	ror	esi,2
1414	add	eax,edx
1415	add	edx,DWORD [esp]
1416	add	eax,esi
1417	mov	esi,DWORD [72+esp]
1418	mov	ebx,ecx
1419	ror	ecx,11
1420	mov	edi,esi
1421	ror	esi,2
1422	xor	ecx,ebx
1423	shr	ebx,3
1424	ror	ecx,7
1425	xor	esi,edi
1426	xor	ebx,ecx
1427	ror	esi,17
1428	add	ebx,DWORD [80+esp]
1429	shr	edi,10
1430	add	ebx,DWORD [52+esp]
1431	mov	ecx,edx
1432	xor	edi,esi
1433	mov	esi,DWORD [4+esp]
1434	ror	edx,14
1435	add	ebx,edi
1436	mov	edi,DWORD [8+esp]
1437	xor	edx,ecx
1438	mov	DWORD [80+esp],ebx
1439	xor	esi,edi
1440	ror	edx,5
1441	and	esi,ecx
1442	mov	DWORD [esp],ecx
1443	xor	edx,ecx
1444	add	ebx,DWORD [12+esp]
1445	xor	edi,esi
1446	ror	edx,6
1447	mov	ecx,eax
1448	add	ebx,edi
1449	ror	ecx,9
1450	mov	esi,eax
1451	mov	edi,DWORD [20+esp]
1452	xor	ecx,eax
1453	mov	DWORD [16+esp],eax
1454	xor	eax,edi
1455	ror	ecx,11
1456	and	ebp,eax
1457	lea	edx,[3336571891+edx*1+ebx]
1458	xor	ecx,esi
1459	xor	ebp,edi
1460	mov	esi,DWORD [88+esp]
1461	ror	ecx,2
1462	add	ebp,edx
1463	add	edx,DWORD [28+esp]
1464	add	ebp,ecx
1465	mov	ecx,DWORD [76+esp]
1466	mov	ebx,esi
1467	ror	esi,11
1468	mov	edi,ecx
1469	ror	ecx,2
1470	xor	esi,ebx
1471	shr	ebx,3
1472	ror	esi,7
1473	xor	ecx,edi
1474	xor	ebx,esi
1475	ror	ecx,17
1476	add	ebx,DWORD [84+esp]
1477	shr	edi,10
1478	add	ebx,DWORD [56+esp]
1479	mov	esi,edx
1480	xor	edi,ecx
1481	mov	ecx,DWORD [esp]
1482	ror	edx,14
1483	add	ebx,edi
1484	mov	edi,DWORD [4+esp]
1485	xor	edx,esi
1486	mov	DWORD [84+esp],ebx
1487	xor	ecx,edi
1488	ror	edx,5
1489	and	ecx,esi
1490	mov	DWORD [28+esp],esi
1491	xor	edx,esi
1492	add	ebx,DWORD [8+esp]
1493	xor	edi,ecx
1494	ror	edx,6
1495	mov	esi,ebp
1496	add	ebx,edi
1497	ror	esi,9
1498	mov	ecx,ebp
1499	mov	edi,DWORD [16+esp]
1500	xor	esi,ebp
1501	mov	DWORD [12+esp],ebp
1502	xor	ebp,edi
1503	ror	esi,11
1504	and	eax,ebp
1505	lea	edx,[3584528711+edx*1+ebx]
1506	xor	esi,ecx
1507	xor	eax,edi
1508	mov	ecx,DWORD [92+esp]
1509	ror	esi,2
1510	add	eax,edx
1511	add	edx,DWORD [24+esp]
1512	add	eax,esi
1513	mov	esi,DWORD [80+esp]
1514	mov	ebx,ecx
1515	ror	ecx,11
1516	mov	edi,esi
1517	ror	esi,2
1518	xor	ecx,ebx
1519	shr	ebx,3
1520	ror	ecx,7
1521	xor	esi,edi
1522	xor	ebx,ecx
1523	ror	esi,17
1524	add	ebx,DWORD [88+esp]
1525	shr	edi,10
1526	add	ebx,DWORD [60+esp]
1527	mov	ecx,edx
1528	xor	edi,esi
1529	mov	esi,DWORD [28+esp]
1530	ror	edx,14
1531	add	ebx,edi
1532	mov	edi,DWORD [esp]
1533	xor	edx,ecx
1534	mov	DWORD [88+esp],ebx
1535	xor	esi,edi
1536	ror	edx,5
1537	and	esi,ecx
1538	mov	DWORD [24+esp],ecx
1539	xor	edx,ecx
1540	add	ebx,DWORD [4+esp]
1541	xor	edi,esi
1542	ror	edx,6
1543	mov	ecx,eax
1544	add	ebx,edi
1545	ror	ecx,9
1546	mov	esi,eax
1547	mov	edi,DWORD [12+esp]
1548	xor	ecx,eax
1549	mov	DWORD [8+esp],eax
1550	xor	eax,edi
1551	ror	ecx,11
1552	and	ebp,eax
1553	lea	edx,[113926993+edx*1+ebx]
1554	xor	ecx,esi
1555	xor	ebp,edi
1556	mov	esi,DWORD [32+esp]
1557	ror	ecx,2
1558	add	ebp,edx
1559	add	edx,DWORD [20+esp]
1560	add	ebp,ecx
1561	mov	ecx,DWORD [84+esp]
1562	mov	ebx,esi
1563	ror	esi,11
1564	mov	edi,ecx
1565	ror	ecx,2
1566	xor	esi,ebx
1567	shr	ebx,3
1568	ror	esi,7
1569	xor	ecx,edi
1570	xor	ebx,esi
1571	ror	ecx,17
1572	add	ebx,DWORD [92+esp]
1573	shr	edi,10
1574	add	ebx,DWORD [64+esp]
1575	mov	esi,edx
1576	xor	edi,ecx
1577	mov	ecx,DWORD [24+esp]
1578	ror	edx,14
1579	add	ebx,edi
1580	mov	edi,DWORD [28+esp]
1581	xor	edx,esi
1582	mov	DWORD [92+esp],ebx
1583	xor	ecx,edi
1584	ror	edx,5
1585	and	ecx,esi
1586	mov	DWORD [20+esp],esi
1587	xor	edx,esi
1588	add	ebx,DWORD [esp]
1589	xor	edi,ecx
1590	ror	edx,6
1591	mov	esi,ebp
1592	add	ebx,edi
1593	ror	esi,9
1594	mov	ecx,ebp
1595	mov	edi,DWORD [8+esp]
1596	xor	esi,ebp
1597	mov	DWORD [4+esp],ebp
1598	xor	ebp,edi
1599	ror	esi,11
1600	and	eax,ebp
1601	lea	edx,[338241895+edx*1+ebx]
1602	xor	esi,ecx
1603	xor	eax,edi
1604	mov	ecx,DWORD [36+esp]
1605	ror	esi,2
1606	add	eax,edx
1607	add	edx,DWORD [16+esp]
1608	add	eax,esi
1609	mov	esi,DWORD [88+esp]
1610	mov	ebx,ecx
1611	ror	ecx,11
1612	mov	edi,esi
1613	ror	esi,2
1614	xor	ecx,ebx
1615	shr	ebx,3
1616	ror	ecx,7
1617	xor	esi,edi
1618	xor	ebx,ecx
1619	ror	esi,17
1620	add	ebx,DWORD [32+esp]
1621	shr	edi,10
1622	add	ebx,DWORD [68+esp]
1623	mov	ecx,edx
1624	xor	edi,esi
1625	mov	esi,DWORD [20+esp]
1626	ror	edx,14
1627	add	ebx,edi
1628	mov	edi,DWORD [24+esp]
1629	xor	edx,ecx
1630	mov	DWORD [32+esp],ebx
1631	xor	esi,edi
1632	ror	edx,5
1633	and	esi,ecx
1634	mov	DWORD [16+esp],ecx
1635	xor	edx,ecx
1636	add	ebx,DWORD [28+esp]
1637	xor	edi,esi
1638	ror	edx,6
1639	mov	ecx,eax
1640	add	ebx,edi
1641	ror	ecx,9
1642	mov	esi,eax
1643	mov	edi,DWORD [4+esp]
1644	xor	ecx,eax
1645	mov	DWORD [esp],eax
1646	xor	eax,edi
1647	ror	ecx,11
1648	and	ebp,eax
1649	lea	edx,[666307205+edx*1+ebx]
1650	xor	ecx,esi
1651	xor	ebp,edi
1652	mov	esi,DWORD [40+esp]
1653	ror	ecx,2
1654	add	ebp,edx
1655	add	edx,DWORD [12+esp]
1656	add	ebp,ecx
1657	mov	ecx,DWORD [92+esp]
1658	mov	ebx,esi
1659	ror	esi,11
1660	mov	edi,ecx
1661	ror	ecx,2
1662	xor	esi,ebx
1663	shr	ebx,3
1664	ror	esi,7
1665	xor	ecx,edi
1666	xor	ebx,esi
1667	ror	ecx,17
1668	add	ebx,DWORD [36+esp]
1669	shr	edi,10
1670	add	ebx,DWORD [72+esp]
1671	mov	esi,edx
1672	xor	edi,ecx
1673	mov	ecx,DWORD [16+esp]
1674	ror	edx,14
1675	add	ebx,edi
1676	mov	edi,DWORD [20+esp]
1677	xor	edx,esi
1678	mov	DWORD [36+esp],ebx
1679	xor	ecx,edi
1680	ror	edx,5
1681	and	ecx,esi
1682	mov	DWORD [12+esp],esi
1683	xor	edx,esi
1684	add	ebx,DWORD [24+esp]
1685	xor	edi,ecx
1686	ror	edx,6
1687	mov	esi,ebp
1688	add	ebx,edi
1689	ror	esi,9
1690	mov	ecx,ebp
1691	mov	edi,DWORD [esp]
1692	xor	esi,ebp
1693	mov	DWORD [28+esp],ebp
1694	xor	ebp,edi
1695	ror	esi,11
1696	and	eax,ebp
1697	lea	edx,[773529912+edx*1+ebx]
1698	xor	esi,ecx
1699	xor	eax,edi
1700	mov	ecx,DWORD [44+esp]
1701	ror	esi,2
1702	add	eax,edx
1703	add	edx,DWORD [8+esp]
1704	add	eax,esi
1705	mov	esi,DWORD [32+esp]
1706	mov	ebx,ecx
1707	ror	ecx,11
1708	mov	edi,esi
1709	ror	esi,2
1710	xor	ecx,ebx
1711	shr	ebx,3
1712	ror	ecx,7
1713	xor	esi,edi
1714	xor	ebx,ecx
1715	ror	esi,17
1716	add	ebx,DWORD [40+esp]
1717	shr	edi,10
1718	add	ebx,DWORD [76+esp]
1719	mov	ecx,edx
1720	xor	edi,esi
1721	mov	esi,DWORD [12+esp]
1722	ror	edx,14
1723	add	ebx,edi
1724	mov	edi,DWORD [16+esp]
1725	xor	edx,ecx
1726	mov	DWORD [40+esp],ebx
1727	xor	esi,edi
1728	ror	edx,5
1729	and	esi,ecx
1730	mov	DWORD [8+esp],ecx
1731	xor	edx,ecx
1732	add	ebx,DWORD [20+esp]
1733	xor	edi,esi
1734	ror	edx,6
1735	mov	ecx,eax
1736	add	ebx,edi
1737	ror	ecx,9
1738	mov	esi,eax
1739	mov	edi,DWORD [28+esp]
1740	xor	ecx,eax
1741	mov	DWORD [24+esp],eax
1742	xor	eax,edi
1743	ror	ecx,11
1744	and	ebp,eax
1745	lea	edx,[1294757372+edx*1+ebx]
1746	xor	ecx,esi
1747	xor	ebp,edi
1748	mov	esi,DWORD [48+esp]
1749	ror	ecx,2
1750	add	ebp,edx
1751	add	edx,DWORD [4+esp]
1752	add	ebp,ecx
1753	mov	ecx,DWORD [36+esp]
1754	mov	ebx,esi
1755	ror	esi,11
1756	mov	edi,ecx
1757	ror	ecx,2
1758	xor	esi,ebx
1759	shr	ebx,3
1760	ror	esi,7
1761	xor	ecx,edi
1762	xor	ebx,esi
1763	ror	ecx,17
1764	add	ebx,DWORD [44+esp]
1765	shr	edi,10
1766	add	ebx,DWORD [80+esp]
1767	mov	esi,edx
1768	xor	edi,ecx
1769	mov	ecx,DWORD [8+esp]
1770	ror	edx,14
1771	add	ebx,edi
1772	mov	edi,DWORD [12+esp]
1773	xor	edx,esi
1774	mov	DWORD [44+esp],ebx
1775	xor	ecx,edi
1776	ror	edx,5
1777	and	ecx,esi
1778	mov	DWORD [4+esp],esi
1779	xor	edx,esi
1780	add	ebx,DWORD [16+esp]
1781	xor	edi,ecx
1782	ror	edx,6
1783	mov	esi,ebp
1784	add	ebx,edi
1785	ror	esi,9
1786	mov	ecx,ebp
1787	mov	edi,DWORD [24+esp]
1788	xor	esi,ebp
1789	mov	DWORD [20+esp],ebp
1790	xor	ebp,edi
1791	ror	esi,11
1792	and	eax,ebp
1793	lea	edx,[1396182291+edx*1+ebx]
1794	xor	esi,ecx
1795	xor	eax,edi
1796	mov	ecx,DWORD [52+esp]
1797	ror	esi,2
1798	add	eax,edx
1799	add	edx,DWORD [esp]
1800	add	eax,esi
1801	mov	esi,DWORD [40+esp]
1802	mov	ebx,ecx
1803	ror	ecx,11
1804	mov	edi,esi
1805	ror	esi,2
1806	xor	ecx,ebx
1807	shr	ebx,3
1808	ror	ecx,7
1809	xor	esi,edi
1810	xor	ebx,ecx
1811	ror	esi,17
1812	add	ebx,DWORD [48+esp]
1813	shr	edi,10
1814	add	ebx,DWORD [84+esp]
1815	mov	ecx,edx
1816	xor	edi,esi
1817	mov	esi,DWORD [4+esp]
1818	ror	edx,14
1819	add	ebx,edi
1820	mov	edi,DWORD [8+esp]
1821	xor	edx,ecx
1822	mov	DWORD [48+esp],ebx
1823	xor	esi,edi
1824	ror	edx,5
1825	and	esi,ecx
1826	mov	DWORD [esp],ecx
1827	xor	edx,ecx
1828	add	ebx,DWORD [12+esp]
1829	xor	edi,esi
1830	ror	edx,6
1831	mov	ecx,eax
1832	add	ebx,edi
1833	ror	ecx,9
1834	mov	esi,eax
1835	mov	edi,DWORD [20+esp]
1836	xor	ecx,eax
1837	mov	DWORD [16+esp],eax
1838	xor	eax,edi
1839	ror	ecx,11
1840	and	ebp,eax
1841	lea	edx,[1695183700+edx*1+ebx]
1842	xor	ecx,esi
1843	xor	ebp,edi
1844	mov	esi,DWORD [56+esp]
1845	ror	ecx,2
1846	add	ebp,edx
1847	add	edx,DWORD [28+esp]
1848	add	ebp,ecx
1849	mov	ecx,DWORD [44+esp]
1850	mov	ebx,esi
1851	ror	esi,11
1852	mov	edi,ecx
1853	ror	ecx,2
1854	xor	esi,ebx
1855	shr	ebx,3
1856	ror	esi,7
1857	xor	ecx,edi
1858	xor	ebx,esi
1859	ror	ecx,17
1860	add	ebx,DWORD [52+esp]
1861	shr	edi,10
1862	add	ebx,DWORD [88+esp]
1863	mov	esi,edx
1864	xor	edi,ecx
1865	mov	ecx,DWORD [esp]
1866	ror	edx,14
1867	add	ebx,edi
1868	mov	edi,DWORD [4+esp]
1869	xor	edx,esi
1870	mov	DWORD [52+esp],ebx
1871	xor	ecx,edi
1872	ror	edx,5
1873	and	ecx,esi
1874	mov	DWORD [28+esp],esi
1875	xor	edx,esi
1876	add	ebx,DWORD [8+esp]
1877	xor	edi,ecx
1878	ror	edx,6
1879	mov	esi,ebp
1880	add	ebx,edi
1881	ror	esi,9
1882	mov	ecx,ebp
1883	mov	edi,DWORD [16+esp]
1884	xor	esi,ebp
1885	mov	DWORD [12+esp],ebp
1886	xor	ebp,edi
1887	ror	esi,11
1888	and	eax,ebp
1889	lea	edx,[1986661051+edx*1+ebx]
1890	xor	esi,ecx
1891	xor	eax,edi
1892	mov	ecx,DWORD [60+esp]
1893	ror	esi,2
1894	add	eax,edx
1895	add	edx,DWORD [24+esp]
1896	add	eax,esi
1897	mov	esi,DWORD [48+esp]
1898	mov	ebx,ecx
1899	ror	ecx,11
1900	mov	edi,esi
1901	ror	esi,2
1902	xor	ecx,ebx
1903	shr	ebx,3
1904	ror	ecx,7
1905	xor	esi,edi
1906	xor	ebx,ecx
1907	ror	esi,17
1908	add	ebx,DWORD [56+esp]
1909	shr	edi,10
1910	add	ebx,DWORD [92+esp]
1911	mov	ecx,edx
1912	xor	edi,esi
1913	mov	esi,DWORD [28+esp]
1914	ror	edx,14
1915	add	ebx,edi
1916	mov	edi,DWORD [esp]
1917	xor	edx,ecx
1918	mov	DWORD [56+esp],ebx
1919	xor	esi,edi
1920	ror	edx,5
1921	and	esi,ecx
1922	mov	DWORD [24+esp],ecx
1923	xor	edx,ecx
1924	add	ebx,DWORD [4+esp]
1925	xor	edi,esi
1926	ror	edx,6
1927	mov	ecx,eax
1928	add	ebx,edi
1929	ror	ecx,9
1930	mov	esi,eax
1931	mov	edi,DWORD [12+esp]
1932	xor	ecx,eax
1933	mov	DWORD [8+esp],eax
1934	xor	eax,edi
1935	ror	ecx,11
1936	and	ebp,eax
1937	lea	edx,[2177026350+edx*1+ebx]
1938	xor	ecx,esi
1939	xor	ebp,edi
1940	mov	esi,DWORD [64+esp]
1941	ror	ecx,2
1942	add	ebp,edx
1943	add	edx,DWORD [20+esp]
1944	add	ebp,ecx
1945	mov	ecx,DWORD [52+esp]
1946	mov	ebx,esi
1947	ror	esi,11
1948	mov	edi,ecx
1949	ror	ecx,2
1950	xor	esi,ebx
1951	shr	ebx,3
1952	ror	esi,7
1953	xor	ecx,edi
1954	xor	ebx,esi
1955	ror	ecx,17
1956	add	ebx,DWORD [60+esp]
1957	shr	edi,10
1958	add	ebx,DWORD [32+esp]
1959	mov	esi,edx
1960	xor	edi,ecx
1961	mov	ecx,DWORD [24+esp]
1962	ror	edx,14
1963	add	ebx,edi
1964	mov	edi,DWORD [28+esp]
1965	xor	edx,esi
1966	mov	DWORD [60+esp],ebx
1967	xor	ecx,edi
1968	ror	edx,5
1969	and	ecx,esi
1970	mov	DWORD [20+esp],esi
1971	xor	edx,esi
1972	add	ebx,DWORD [esp]
1973	xor	edi,ecx
1974	ror	edx,6
1975	mov	esi,ebp
1976	add	ebx,edi
1977	ror	esi,9
1978	mov	ecx,ebp
1979	mov	edi,DWORD [8+esp]
1980	xor	esi,ebp
1981	mov	DWORD [4+esp],ebp
1982	xor	ebp,edi
1983	ror	esi,11
1984	and	eax,ebp
1985	lea	edx,[2456956037+edx*1+ebx]
1986	xor	esi,ecx
1987	xor	eax,edi
1988	mov	ecx,DWORD [68+esp]
1989	ror	esi,2
1990	add	eax,edx
1991	add	edx,DWORD [16+esp]
1992	add	eax,esi
1993	mov	esi,DWORD [56+esp]
1994	mov	ebx,ecx
1995	ror	ecx,11
1996	mov	edi,esi
1997	ror	esi,2
1998	xor	ecx,ebx
1999	shr	ebx,3
2000	ror	ecx,7
2001	xor	esi,edi
2002	xor	ebx,ecx
2003	ror	esi,17
2004	add	ebx,DWORD [64+esp]
2005	shr	edi,10
2006	add	ebx,DWORD [36+esp]
2007	mov	ecx,edx
2008	xor	edi,esi
2009	mov	esi,DWORD [20+esp]
2010	ror	edx,14
2011	add	ebx,edi
2012	mov	edi,DWORD [24+esp]
2013	xor	edx,ecx
2014	mov	DWORD [64+esp],ebx
2015	xor	esi,edi
2016	ror	edx,5
2017	and	esi,ecx
2018	mov	DWORD [16+esp],ecx
2019	xor	edx,ecx
2020	add	ebx,DWORD [28+esp]
2021	xor	edi,esi
2022	ror	edx,6
2023	mov	ecx,eax
2024	add	ebx,edi
2025	ror	ecx,9
2026	mov	esi,eax
2027	mov	edi,DWORD [4+esp]
2028	xor	ecx,eax
2029	mov	DWORD [esp],eax
2030	xor	eax,edi
2031	ror	ecx,11
2032	and	ebp,eax
2033	lea	edx,[2730485921+edx*1+ebx]
2034	xor	ecx,esi
2035	xor	ebp,edi
2036	mov	esi,DWORD [72+esp]
2037	ror	ecx,2
2038	add	ebp,edx
2039	add	edx,DWORD [12+esp]
2040	add	ebp,ecx
2041	mov	ecx,DWORD [60+esp]
2042	mov	ebx,esi
2043	ror	esi,11
2044	mov	edi,ecx
2045	ror	ecx,2
2046	xor	esi,ebx
2047	shr	ebx,3
2048	ror	esi,7
2049	xor	ecx,edi
2050	xor	ebx,esi
2051	ror	ecx,17
2052	add	ebx,DWORD [68+esp]
2053	shr	edi,10
2054	add	ebx,DWORD [40+esp]
2055	mov	esi,edx
2056	xor	edi,ecx
2057	mov	ecx,DWORD [16+esp]
2058	ror	edx,14
2059	add	ebx,edi
2060	mov	edi,DWORD [20+esp]
2061	xor	edx,esi
2062	mov	DWORD [68+esp],ebx
2063	xor	ecx,edi
2064	ror	edx,5
2065	and	ecx,esi
2066	mov	DWORD [12+esp],esi
2067	xor	edx,esi
2068	add	ebx,DWORD [24+esp]
2069	xor	edi,ecx
2070	ror	edx,6
2071	mov	esi,ebp
2072	add	ebx,edi
2073	ror	esi,9
2074	mov	ecx,ebp
2075	mov	edi,DWORD [esp]
2076	xor	esi,ebp
2077	mov	DWORD [28+esp],ebp
2078	xor	ebp,edi
2079	ror	esi,11
2080	and	eax,ebp
2081	lea	edx,[2820302411+edx*1+ebx]
2082	xor	esi,ecx
2083	xor	eax,edi
2084	mov	ecx,DWORD [76+esp]
2085	ror	esi,2
2086	add	eax,edx
2087	add	edx,DWORD [8+esp]
2088	add	eax,esi
2089	mov	esi,DWORD [64+esp]
2090	mov	ebx,ecx
2091	ror	ecx,11
2092	mov	edi,esi
2093	ror	esi,2
2094	xor	ecx,ebx
2095	shr	ebx,3
2096	ror	ecx,7
2097	xor	esi,edi
2098	xor	ebx,ecx
2099	ror	esi,17
2100	add	ebx,DWORD [72+esp]
2101	shr	edi,10
2102	add	ebx,DWORD [44+esp]
2103	mov	ecx,edx
2104	xor	edi,esi
2105	mov	esi,DWORD [12+esp]
2106	ror	edx,14
2107	add	ebx,edi
2108	mov	edi,DWORD [16+esp]
2109	xor	edx,ecx
2110	mov	DWORD [72+esp],ebx
2111	xor	esi,edi
2112	ror	edx,5
2113	and	esi,ecx
2114	mov	DWORD [8+esp],ecx
2115	xor	edx,ecx
2116	add	ebx,DWORD [20+esp]
2117	xor	edi,esi
2118	ror	edx,6
2119	mov	ecx,eax
2120	add	ebx,edi
2121	ror	ecx,9
2122	mov	esi,eax
2123	mov	edi,DWORD [28+esp]
2124	xor	ecx,eax
2125	mov	DWORD [24+esp],eax
2126	xor	eax,edi
2127	ror	ecx,11
2128	and	ebp,eax
2129	lea	edx,[3259730800+edx*1+ebx]
2130	xor	ecx,esi
2131	xor	ebp,edi
2132	mov	esi,DWORD [80+esp]
2133	ror	ecx,2
2134	add	ebp,edx
2135	add	edx,DWORD [4+esp]
2136	add	ebp,ecx
2137	mov	ecx,DWORD [68+esp]
2138	mov	ebx,esi
2139	ror	esi,11
2140	mov	edi,ecx
2141	ror	ecx,2
2142	xor	esi,ebx
2143	shr	ebx,3
2144	ror	esi,7
2145	xor	ecx,edi
2146	xor	ebx,esi
2147	ror	ecx,17
2148	add	ebx,DWORD [76+esp]
2149	shr	edi,10
2150	add	ebx,DWORD [48+esp]
2151	mov	esi,edx
2152	xor	edi,ecx
2153	mov	ecx,DWORD [8+esp]
2154	ror	edx,14
2155	add	ebx,edi
2156	mov	edi,DWORD [12+esp]
2157	xor	edx,esi
2158	mov	DWORD [76+esp],ebx
2159	xor	ecx,edi
2160	ror	edx,5
2161	and	ecx,esi
2162	mov	DWORD [4+esp],esi
2163	xor	edx,esi
2164	add	ebx,DWORD [16+esp]
2165	xor	edi,ecx
2166	ror	edx,6
2167	mov	esi,ebp
2168	add	ebx,edi
2169	ror	esi,9
2170	mov	ecx,ebp
2171	mov	edi,DWORD [24+esp]
2172	xor	esi,ebp
2173	mov	DWORD [20+esp],ebp
2174	xor	ebp,edi
2175	ror	esi,11
2176	and	eax,ebp
2177	lea	edx,[3345764771+edx*1+ebx]
2178	xor	esi,ecx
2179	xor	eax,edi
2180	mov	ecx,DWORD [84+esp]
2181	ror	esi,2
2182	add	eax,edx
2183	add	edx,DWORD [esp]
2184	add	eax,esi
2185	mov	esi,DWORD [72+esp]
2186	mov	ebx,ecx
2187	ror	ecx,11
2188	mov	edi,esi
2189	ror	esi,2
2190	xor	ecx,ebx
2191	shr	ebx,3
2192	ror	ecx,7
2193	xor	esi,edi
2194	xor	ebx,ecx
2195	ror	esi,17
2196	add	ebx,DWORD [80+esp]
2197	shr	edi,10
2198	add	ebx,DWORD [52+esp]
2199	mov	ecx,edx
2200	xor	edi,esi
2201	mov	esi,DWORD [4+esp]
2202	ror	edx,14
2203	add	ebx,edi
2204	mov	edi,DWORD [8+esp]
2205	xor	edx,ecx
2206	mov	DWORD [80+esp],ebx
2207	xor	esi,edi
2208	ror	edx,5
2209	and	esi,ecx
2210	mov	DWORD [esp],ecx
2211	xor	edx,ecx
2212	add	ebx,DWORD [12+esp]
2213	xor	edi,esi
2214	ror	edx,6
2215	mov	ecx,eax
2216	add	ebx,edi
2217	ror	ecx,9
2218	mov	esi,eax
2219	mov	edi,DWORD [20+esp]
2220	xor	ecx,eax
2221	mov	DWORD [16+esp],eax
2222	xor	eax,edi
2223	ror	ecx,11
2224	and	ebp,eax
2225	lea	edx,[3516065817+edx*1+ebx]
2226	xor	ecx,esi
2227	xor	ebp,edi
2228	mov	esi,DWORD [88+esp]
2229	ror	ecx,2
2230	add	ebp,edx
2231	add	edx,DWORD [28+esp]
2232	add	ebp,ecx
2233	mov	ecx,DWORD [76+esp]
2234	mov	ebx,esi
2235	ror	esi,11
2236	mov	edi,ecx
2237	ror	ecx,2
2238	xor	esi,ebx
2239	shr	ebx,3
2240	ror	esi,7
2241	xor	ecx,edi
2242	xor	ebx,esi
2243	ror	ecx,17
2244	add	ebx,DWORD [84+esp]
2245	shr	edi,10
2246	add	ebx,DWORD [56+esp]
2247	mov	esi,edx
2248	xor	edi,ecx
2249	mov	ecx,DWORD [esp]
2250	ror	edx,14
2251	add	ebx,edi
2252	mov	edi,DWORD [4+esp]
2253	xor	edx,esi
2254	mov	DWORD [84+esp],ebx
2255	xor	ecx,edi
2256	ror	edx,5
2257	and	ecx,esi
2258	mov	DWORD [28+esp],esi
2259	xor	edx,esi
2260	add	ebx,DWORD [8+esp]
2261	xor	edi,ecx
2262	ror	edx,6
2263	mov	esi,ebp
2264	add	ebx,edi
2265	ror	esi,9
2266	mov	ecx,ebp
2267	mov	edi,DWORD [16+esp]
2268	xor	esi,ebp
2269	mov	DWORD [12+esp],ebp
2270	xor	ebp,edi
2271	ror	esi,11
2272	and	eax,ebp
2273	lea	edx,[3600352804+edx*1+ebx]
2274	xor	esi,ecx
2275	xor	eax,edi
2276	mov	ecx,DWORD [92+esp]
2277	ror	esi,2
2278	add	eax,edx
2279	add	edx,DWORD [24+esp]
2280	add	eax,esi
2281	mov	esi,DWORD [80+esp]
2282	mov	ebx,ecx
2283	ror	ecx,11
2284	mov	edi,esi
2285	ror	esi,2
2286	xor	ecx,ebx
2287	shr	ebx,3
2288	ror	ecx,7
2289	xor	esi,edi
2290	xor	ebx,ecx
2291	ror	esi,17
2292	add	ebx,DWORD [88+esp]
2293	shr	edi,10
2294	add	ebx,DWORD [60+esp]
2295	mov	ecx,edx
2296	xor	edi,esi
2297	mov	esi,DWORD [28+esp]
2298	ror	edx,14
2299	add	ebx,edi
2300	mov	edi,DWORD [esp]
2301	xor	edx,ecx
2302	mov	DWORD [88+esp],ebx
2303	xor	esi,edi
2304	ror	edx,5
2305	and	esi,ecx
2306	mov	DWORD [24+esp],ecx
2307	xor	edx,ecx
2308	add	ebx,DWORD [4+esp]
2309	xor	edi,esi
2310	ror	edx,6
2311	mov	ecx,eax
2312	add	ebx,edi
2313	ror	ecx,9
2314	mov	esi,eax
2315	mov	edi,DWORD [12+esp]
2316	xor	ecx,eax
2317	mov	DWORD [8+esp],eax
2318	xor	eax,edi
2319	ror	ecx,11
2320	and	ebp,eax
2321	lea	edx,[4094571909+edx*1+ebx]
2322	xor	ecx,esi
2323	xor	ebp,edi
2324	mov	esi,DWORD [32+esp]
2325	ror	ecx,2
2326	add	ebp,edx
2327	add	edx,DWORD [20+esp]
2328	add	ebp,ecx
2329	mov	ecx,DWORD [84+esp]
2330	mov	ebx,esi
2331	ror	esi,11
2332	mov	edi,ecx
2333	ror	ecx,2
2334	xor	esi,ebx
2335	shr	ebx,3
2336	ror	esi,7
2337	xor	ecx,edi
2338	xor	ebx,esi
2339	ror	ecx,17
2340	add	ebx,DWORD [92+esp]
2341	shr	edi,10
2342	add	ebx,DWORD [64+esp]
2343	mov	esi,edx
2344	xor	edi,ecx
2345	mov	ecx,DWORD [24+esp]
2346	ror	edx,14
2347	add	ebx,edi
2348	mov	edi,DWORD [28+esp]
2349	xor	edx,esi
2350	mov	DWORD [92+esp],ebx
2351	xor	ecx,edi
2352	ror	edx,5
2353	and	ecx,esi
2354	mov	DWORD [20+esp],esi
2355	xor	edx,esi
2356	add	ebx,DWORD [esp]
2357	xor	edi,ecx
2358	ror	edx,6
2359	mov	esi,ebp
2360	add	ebx,edi
2361	ror	esi,9
2362	mov	ecx,ebp
2363	mov	edi,DWORD [8+esp]
2364	xor	esi,ebp
2365	mov	DWORD [4+esp],ebp
2366	xor	ebp,edi
2367	ror	esi,11
2368	and	eax,ebp
2369	lea	edx,[275423344+edx*1+ebx]
2370	xor	esi,ecx
2371	xor	eax,edi
2372	mov	ecx,DWORD [36+esp]
2373	ror	esi,2
2374	add	eax,edx
2375	add	edx,DWORD [16+esp]
2376	add	eax,esi
2377	mov	esi,DWORD [88+esp]
2378	mov	ebx,ecx
2379	ror	ecx,11
2380	mov	edi,esi
2381	ror	esi,2
2382	xor	ecx,ebx
2383	shr	ebx,3
2384	ror	ecx,7
2385	xor	esi,edi
2386	xor	ebx,ecx
2387	ror	esi,17
2388	add	ebx,DWORD [32+esp]
2389	shr	edi,10
2390	add	ebx,DWORD [68+esp]
2391	mov	ecx,edx
2392	xor	edi,esi
2393	mov	esi,DWORD [20+esp]
2394	ror	edx,14
2395	add	ebx,edi
2396	mov	edi,DWORD [24+esp]
2397	xor	edx,ecx
2398	mov	DWORD [32+esp],ebx
2399	xor	esi,edi
2400	ror	edx,5
2401	and	esi,ecx
2402	mov	DWORD [16+esp],ecx
2403	xor	edx,ecx
2404	add	ebx,DWORD [28+esp]
2405	xor	edi,esi
2406	ror	edx,6
2407	mov	ecx,eax
2408	add	ebx,edi
2409	ror	ecx,9
2410	mov	esi,eax
2411	mov	edi,DWORD [4+esp]
2412	xor	ecx,eax
2413	mov	DWORD [esp],eax
2414	xor	eax,edi
2415	ror	ecx,11
2416	and	ebp,eax
2417	lea	edx,[430227734+edx*1+ebx]
2418	xor	ecx,esi
2419	xor	ebp,edi
2420	mov	esi,DWORD [40+esp]
2421	ror	ecx,2
2422	add	ebp,edx
2423	add	edx,DWORD [12+esp]
2424	add	ebp,ecx
2425	mov	ecx,DWORD [92+esp]
2426	mov	ebx,esi
2427	ror	esi,11
2428	mov	edi,ecx
2429	ror	ecx,2
2430	xor	esi,ebx
2431	shr	ebx,3
2432	ror	esi,7
2433	xor	ecx,edi
2434	xor	ebx,esi
2435	ror	ecx,17
2436	add	ebx,DWORD [36+esp]
2437	shr	edi,10
2438	add	ebx,DWORD [72+esp]
2439	mov	esi,edx
2440	xor	edi,ecx
2441	mov	ecx,DWORD [16+esp]
2442	ror	edx,14
2443	add	ebx,edi
2444	mov	edi,DWORD [20+esp]
2445	xor	edx,esi
2446	mov	DWORD [36+esp],ebx
2447	xor	ecx,edi
2448	ror	edx,5
2449	and	ecx,esi
2450	mov	DWORD [12+esp],esi
2451	xor	edx,esi
2452	add	ebx,DWORD [24+esp]
2453	xor	edi,ecx
2454	ror	edx,6
2455	mov	esi,ebp
2456	add	ebx,edi
2457	ror	esi,9
2458	mov	ecx,ebp
2459	mov	edi,DWORD [esp]
2460	xor	esi,ebp
2461	mov	DWORD [28+esp],ebp
2462	xor	ebp,edi
2463	ror	esi,11
2464	and	eax,ebp
2465	lea	edx,[506948616+edx*1+ebx]
2466	xor	esi,ecx
2467	xor	eax,edi
2468	mov	ecx,DWORD [44+esp]
2469	ror	esi,2
2470	add	eax,edx
2471	add	edx,DWORD [8+esp]
2472	add	eax,esi
2473	mov	esi,DWORD [32+esp]
2474	mov	ebx,ecx
2475	ror	ecx,11
2476	mov	edi,esi
2477	ror	esi,2
2478	xor	ecx,ebx
2479	shr	ebx,3
2480	ror	ecx,7
2481	xor	esi,edi
2482	xor	ebx,ecx
2483	ror	esi,17
2484	add	ebx,DWORD [40+esp]
2485	shr	edi,10
2486	add	ebx,DWORD [76+esp]
2487	mov	ecx,edx
2488	xor	edi,esi
2489	mov	esi,DWORD [12+esp]
2490	ror	edx,14
2491	add	ebx,edi
2492	mov	edi,DWORD [16+esp]
2493	xor	edx,ecx
2494	mov	DWORD [40+esp],ebx
2495	xor	esi,edi
2496	ror	edx,5
2497	and	esi,ecx
2498	mov	DWORD [8+esp],ecx
2499	xor	edx,ecx
2500	add	ebx,DWORD [20+esp]
2501	xor	edi,esi
2502	ror	edx,6
2503	mov	ecx,eax
2504	add	ebx,edi
2505	ror	ecx,9
2506	mov	esi,eax
2507	mov	edi,DWORD [28+esp]
2508	xor	ecx,eax
2509	mov	DWORD [24+esp],eax
2510	xor	eax,edi
2511	ror	ecx,11
2512	and	ebp,eax
2513	lea	edx,[659060556+edx*1+ebx]
2514	xor	ecx,esi
2515	xor	ebp,edi
2516	mov	esi,DWORD [48+esp]
2517	ror	ecx,2
2518	add	ebp,edx
2519	add	edx,DWORD [4+esp]
2520	add	ebp,ecx
2521	mov	ecx,DWORD [36+esp]
2522	mov	ebx,esi
2523	ror	esi,11
2524	mov	edi,ecx
2525	ror	ecx,2
2526	xor	esi,ebx
2527	shr	ebx,3
2528	ror	esi,7
2529	xor	ecx,edi
2530	xor	ebx,esi
2531	ror	ecx,17
2532	add	ebx,DWORD [44+esp]
2533	shr	edi,10
2534	add	ebx,DWORD [80+esp]
2535	mov	esi,edx
2536	xor	edi,ecx
2537	mov	ecx,DWORD [8+esp]
2538	ror	edx,14
2539	add	ebx,edi
2540	mov	edi,DWORD [12+esp]
2541	xor	edx,esi
2542	mov	DWORD [44+esp],ebx
2543	xor	ecx,edi
2544	ror	edx,5
2545	and	ecx,esi
2546	mov	DWORD [4+esp],esi
2547	xor	edx,esi
2548	add	ebx,DWORD [16+esp]
2549	xor	edi,ecx
2550	ror	edx,6
2551	mov	esi,ebp
2552	add	ebx,edi
2553	ror	esi,9
2554	mov	ecx,ebp
2555	mov	edi,DWORD [24+esp]
2556	xor	esi,ebp
2557	mov	DWORD [20+esp],ebp
2558	xor	ebp,edi
2559	ror	esi,11
2560	and	eax,ebp
2561	lea	edx,[883997877+edx*1+ebx]
2562	xor	esi,ecx
2563	xor	eax,edi
2564	mov	ecx,DWORD [52+esp]
2565	ror	esi,2
2566	add	eax,edx
2567	add	edx,DWORD [esp]
2568	add	eax,esi
2569	mov	esi,DWORD [40+esp]
2570	mov	ebx,ecx
2571	ror	ecx,11
2572	mov	edi,esi
2573	ror	esi,2
2574	xor	ecx,ebx
2575	shr	ebx,3
2576	ror	ecx,7
2577	xor	esi,edi
2578	xor	ebx,ecx
2579	ror	esi,17
2580	add	ebx,DWORD [48+esp]
2581	shr	edi,10
2582	add	ebx,DWORD [84+esp]
2583	mov	ecx,edx
2584	xor	edi,esi
2585	mov	esi,DWORD [4+esp]
2586	ror	edx,14
2587	add	ebx,edi
2588	mov	edi,DWORD [8+esp]
2589	xor	edx,ecx
2590	mov	DWORD [48+esp],ebx
2591	xor	esi,edi
2592	ror	edx,5
2593	and	esi,ecx
2594	mov	DWORD [esp],ecx
2595	xor	edx,ecx
2596	add	ebx,DWORD [12+esp]
2597	xor	edi,esi
2598	ror	edx,6
2599	mov	ecx,eax
2600	add	ebx,edi
2601	ror	ecx,9
2602	mov	esi,eax
2603	mov	edi,DWORD [20+esp]
2604	xor	ecx,eax
2605	mov	DWORD [16+esp],eax
2606	xor	eax,edi
2607	ror	ecx,11
2608	and	ebp,eax
2609	lea	edx,[958139571+edx*1+ebx]
2610	xor	ecx,esi
2611	xor	ebp,edi
2612	mov	esi,DWORD [56+esp]
2613	ror	ecx,2
2614	add	ebp,edx
2615	add	edx,DWORD [28+esp]
2616	add	ebp,ecx
2617	mov	ecx,DWORD [44+esp]
2618	mov	ebx,esi
2619	ror	esi,11
2620	mov	edi,ecx
2621	ror	ecx,2
2622	xor	esi,ebx
2623	shr	ebx,3
2624	ror	esi,7
2625	xor	ecx,edi
2626	xor	ebx,esi
2627	ror	ecx,17
2628	add	ebx,DWORD [52+esp]
2629	shr	edi,10
2630	add	ebx,DWORD [88+esp]
2631	mov	esi,edx
2632	xor	edi,ecx
2633	mov	ecx,DWORD [esp]
2634	ror	edx,14
2635	add	ebx,edi
2636	mov	edi,DWORD [4+esp]
2637	xor	edx,esi
2638	mov	DWORD [52+esp],ebx
2639	xor	ecx,edi
2640	ror	edx,5
2641	and	ecx,esi
2642	mov	DWORD [28+esp],esi
2643	xor	edx,esi
2644	add	ebx,DWORD [8+esp]
2645	xor	edi,ecx
2646	ror	edx,6
2647	mov	esi,ebp
2648	add	ebx,edi
2649	ror	esi,9
2650	mov	ecx,ebp
2651	mov	edi,DWORD [16+esp]
2652	xor	esi,ebp
2653	mov	DWORD [12+esp],ebp
2654	xor	ebp,edi
2655	ror	esi,11
2656	and	eax,ebp
2657	lea	edx,[1322822218+edx*1+ebx]
2658	xor	esi,ecx
2659	xor	eax,edi
2660	mov	ecx,DWORD [60+esp]
2661	ror	esi,2
2662	add	eax,edx
2663	add	edx,DWORD [24+esp]
2664	add	eax,esi
2665	mov	esi,DWORD [48+esp]
2666	mov	ebx,ecx
2667	ror	ecx,11
2668	mov	edi,esi
2669	ror	esi,2
2670	xor	ecx,ebx
2671	shr	ebx,3
2672	ror	ecx,7
2673	xor	esi,edi
2674	xor	ebx,ecx
2675	ror	esi,17
2676	add	ebx,DWORD [56+esp]
2677	shr	edi,10
2678	add	ebx,DWORD [92+esp]
2679	mov	ecx,edx
2680	xor	edi,esi
2681	mov	esi,DWORD [28+esp]
2682	ror	edx,14
2683	add	ebx,edi
2684	mov	edi,DWORD [esp]
2685	xor	edx,ecx
2686	mov	DWORD [56+esp],ebx
2687	xor	esi,edi
2688	ror	edx,5
2689	and	esi,ecx
2690	mov	DWORD [24+esp],ecx
2691	xor	edx,ecx
2692	add	ebx,DWORD [4+esp]
2693	xor	edi,esi
2694	ror	edx,6
2695	mov	ecx,eax
2696	add	ebx,edi
2697	ror	ecx,9
2698	mov	esi,eax
2699	mov	edi,DWORD [12+esp]
2700	xor	ecx,eax
2701	mov	DWORD [8+esp],eax
2702	xor	eax,edi
2703	ror	ecx,11
2704	and	ebp,eax
2705	lea	edx,[1537002063+edx*1+ebx]
2706	xor	ecx,esi
2707	xor	ebp,edi
2708	mov	esi,DWORD [64+esp]
2709	ror	ecx,2
2710	add	ebp,edx
2711	add	edx,DWORD [20+esp]
2712	add	ebp,ecx
2713	mov	ecx,DWORD [52+esp]
2714	mov	ebx,esi
2715	ror	esi,11
2716	mov	edi,ecx
2717	ror	ecx,2
2718	xor	esi,ebx
2719	shr	ebx,3
2720	ror	esi,7
2721	xor	ecx,edi
2722	xor	ebx,esi
2723	ror	ecx,17
2724	add	ebx,DWORD [60+esp]
2725	shr	edi,10
2726	add	ebx,DWORD [32+esp]
2727	mov	esi,edx
2728	xor	edi,ecx
2729	mov	ecx,DWORD [24+esp]
2730	ror	edx,14
2731	add	ebx,edi
2732	mov	edi,DWORD [28+esp]
2733	xor	edx,esi
2734	mov	DWORD [60+esp],ebx
2735	xor	ecx,edi
2736	ror	edx,5
2737	and	ecx,esi
2738	mov	DWORD [20+esp],esi
2739	xor	edx,esi
2740	add	ebx,DWORD [esp]
2741	xor	edi,ecx
2742	ror	edx,6
2743	mov	esi,ebp
2744	add	ebx,edi
2745	ror	esi,9
2746	mov	ecx,ebp
2747	mov	edi,DWORD [8+esp]
2748	xor	esi,ebp
2749	mov	DWORD [4+esp],ebp
2750	xor	ebp,edi
2751	ror	esi,11
2752	and	eax,ebp
2753	lea	edx,[1747873779+edx*1+ebx]
2754	xor	esi,ecx
2755	xor	eax,edi
2756	mov	ecx,DWORD [68+esp]
2757	ror	esi,2
2758	add	eax,edx
2759	add	edx,DWORD [16+esp]
2760	add	eax,esi
2761	mov	esi,DWORD [56+esp]
2762	mov	ebx,ecx
2763	ror	ecx,11
2764	mov	edi,esi
2765	ror	esi,2
2766	xor	ecx,ebx
2767	shr	ebx,3
2768	ror	ecx,7
2769	xor	esi,edi
2770	xor	ebx,ecx
2771	ror	esi,17
2772	add	ebx,DWORD [64+esp]
2773	shr	edi,10
2774	add	ebx,DWORD [36+esp]
2775	mov	ecx,edx
2776	xor	edi,esi
2777	mov	esi,DWORD [20+esp]
2778	ror	edx,14
2779	add	ebx,edi
2780	mov	edi,DWORD [24+esp]
2781	xor	edx,ecx
2782	mov	DWORD [64+esp],ebx
2783	xor	esi,edi
2784	ror	edx,5
2785	and	esi,ecx
2786	mov	DWORD [16+esp],ecx
2787	xor	edx,ecx
2788	add	ebx,DWORD [28+esp]
2789	xor	edi,esi
2790	ror	edx,6
2791	mov	ecx,eax
2792	add	ebx,edi
2793	ror	ecx,9
2794	mov	esi,eax
2795	mov	edi,DWORD [4+esp]
2796	xor	ecx,eax
2797	mov	DWORD [esp],eax
2798	xor	eax,edi
2799	ror	ecx,11
2800	and	ebp,eax
2801	lea	edx,[1955562222+edx*1+ebx]
2802	xor	ecx,esi
2803	xor	ebp,edi
2804	mov	esi,DWORD [72+esp]
2805	ror	ecx,2
2806	add	ebp,edx
2807	add	edx,DWORD [12+esp]
2808	add	ebp,ecx
2809	mov	ecx,DWORD [60+esp]
2810	mov	ebx,esi
2811	ror	esi,11
2812	mov	edi,ecx
2813	ror	ecx,2
2814	xor	esi,ebx
2815	shr	ebx,3
2816	ror	esi,7
2817	xor	ecx,edi
2818	xor	ebx,esi
2819	ror	ecx,17
2820	add	ebx,DWORD [68+esp]
2821	shr	edi,10
2822	add	ebx,DWORD [40+esp]
2823	mov	esi,edx
2824	xor	edi,ecx
2825	mov	ecx,DWORD [16+esp]
2826	ror	edx,14
2827	add	ebx,edi
2828	mov	edi,DWORD [20+esp]
2829	xor	edx,esi
2830	mov	DWORD [68+esp],ebx
2831	xor	ecx,edi
2832	ror	edx,5
2833	and	ecx,esi
2834	mov	DWORD [12+esp],esi
2835	xor	edx,esi
2836	add	ebx,DWORD [24+esp]
2837	xor	edi,ecx
2838	ror	edx,6
2839	mov	esi,ebp
2840	add	ebx,edi
2841	ror	esi,9
2842	mov	ecx,ebp
2843	mov	edi,DWORD [esp]
2844	xor	esi,ebp
2845	mov	DWORD [28+esp],ebp
2846	xor	ebp,edi
2847	ror	esi,11
2848	and	eax,ebp
2849	lea	edx,[2024104815+edx*1+ebx]
2850	xor	esi,ecx
2851	xor	eax,edi
2852	mov	ecx,DWORD [76+esp]
2853	ror	esi,2
2854	add	eax,edx
2855	add	edx,DWORD [8+esp]
2856	add	eax,esi
2857	mov	esi,DWORD [64+esp]
2858	mov	ebx,ecx
2859	ror	ecx,11
2860	mov	edi,esi
2861	ror	esi,2
2862	xor	ecx,ebx
2863	shr	ebx,3
2864	ror	ecx,7
2865	xor	esi,edi
2866	xor	ebx,ecx
2867	ror	esi,17
2868	add	ebx,DWORD [72+esp]
2869	shr	edi,10
2870	add	ebx,DWORD [44+esp]
2871	mov	ecx,edx
2872	xor	edi,esi
2873	mov	esi,DWORD [12+esp]
2874	ror	edx,14
2875	add	ebx,edi
2876	mov	edi,DWORD [16+esp]
2877	xor	edx,ecx
2878	mov	DWORD [72+esp],ebx
2879	xor	esi,edi
2880	ror	edx,5
2881	and	esi,ecx
2882	mov	DWORD [8+esp],ecx
2883	xor	edx,ecx
2884	add	ebx,DWORD [20+esp]
2885	xor	edi,esi
2886	ror	edx,6
2887	mov	ecx,eax
2888	add	ebx,edi
2889	ror	ecx,9
2890	mov	esi,eax
2891	mov	edi,DWORD [28+esp]
2892	xor	ecx,eax
2893	mov	DWORD [24+esp],eax
2894	xor	eax,edi
2895	ror	ecx,11
2896	and	ebp,eax
2897	lea	edx,[2227730452+edx*1+ebx]
2898	xor	ecx,esi
2899	xor	ebp,edi
2900	mov	esi,DWORD [80+esp]
2901	ror	ecx,2
2902	add	ebp,edx
2903	add	edx,DWORD [4+esp]
2904	add	ebp,ecx
2905	mov	ecx,DWORD [68+esp]
2906	mov	ebx,esi
2907	ror	esi,11
2908	mov	edi,ecx
2909	ror	ecx,2
2910	xor	esi,ebx
2911	shr	ebx,3
2912	ror	esi,7
2913	xor	ecx,edi
2914	xor	ebx,esi
2915	ror	ecx,17
2916	add	ebx,DWORD [76+esp]
2917	shr	edi,10
2918	add	ebx,DWORD [48+esp]
2919	mov	esi,edx
2920	xor	edi,ecx
2921	mov	ecx,DWORD [8+esp]
2922	ror	edx,14
2923	add	ebx,edi
2924	mov	edi,DWORD [12+esp]
2925	xor	edx,esi
2926	mov	DWORD [76+esp],ebx
2927	xor	ecx,edi
2928	ror	edx,5
2929	and	ecx,esi
2930	mov	DWORD [4+esp],esi
2931	xor	edx,esi
2932	add	ebx,DWORD [16+esp]
2933	xor	edi,ecx
2934	ror	edx,6
2935	mov	esi,ebp
2936	add	ebx,edi
2937	ror	esi,9
2938	mov	ecx,ebp
2939	mov	edi,DWORD [24+esp]
2940	xor	esi,ebp
2941	mov	DWORD [20+esp],ebp
2942	xor	ebp,edi
2943	ror	esi,11
2944	and	eax,ebp
2945	lea	edx,[2361852424+edx*1+ebx]
2946	xor	esi,ecx
2947	xor	eax,edi
2948	mov	ecx,DWORD [84+esp]
2949	ror	esi,2
2950	add	eax,edx
2951	add	edx,DWORD [esp]
2952	add	eax,esi
2953	mov	esi,DWORD [72+esp]
2954	mov	ebx,ecx
2955	ror	ecx,11
2956	mov	edi,esi
2957	ror	esi,2
2958	xor	ecx,ebx
2959	shr	ebx,3
2960	ror	ecx,7
2961	xor	esi,edi
2962	xor	ebx,ecx
2963	ror	esi,17
2964	add	ebx,DWORD [80+esp]
2965	shr	edi,10
2966	add	ebx,DWORD [52+esp]
2967	mov	ecx,edx
2968	xor	edi,esi
2969	mov	esi,DWORD [4+esp]
2970	ror	edx,14
2971	add	ebx,edi
2972	mov	edi,DWORD [8+esp]
2973	xor	edx,ecx
2974	mov	DWORD [80+esp],ebx
2975	xor	esi,edi
2976	ror	edx,5
2977	and	esi,ecx
2978	mov	DWORD [esp],ecx
2979	xor	edx,ecx
2980	add	ebx,DWORD [12+esp]
2981	xor	edi,esi
2982	ror	edx,6
2983	mov	ecx,eax
2984	add	ebx,edi
2985	ror	ecx,9
2986	mov	esi,eax
2987	mov	edi,DWORD [20+esp]
2988	xor	ecx,eax
2989	mov	DWORD [16+esp],eax
2990	xor	eax,edi
2991	ror	ecx,11
2992	and	ebp,eax
2993	lea	edx,[2428436474+edx*1+ebx]
2994	xor	ecx,esi
2995	xor	ebp,edi
2996	mov	esi,DWORD [88+esp]
2997	ror	ecx,2
2998	add	ebp,edx
2999	add	edx,DWORD [28+esp]
3000	add	ebp,ecx
3001	mov	ecx,DWORD [76+esp]
3002	mov	ebx,esi
3003	ror	esi,11
3004	mov	edi,ecx
3005	ror	ecx,2
3006	xor	esi,ebx
3007	shr	ebx,3
3008	ror	esi,7
3009	xor	ecx,edi
3010	xor	ebx,esi
3011	ror	ecx,17
3012	add	ebx,DWORD [84+esp]
3013	shr	edi,10
3014	add	ebx,DWORD [56+esp]
3015	mov	esi,edx
3016	xor	edi,ecx
3017	mov	ecx,DWORD [esp]
3018	ror	edx,14
3019	add	ebx,edi
3020	mov	edi,DWORD [4+esp]
3021	xor	edx,esi
3022	mov	DWORD [84+esp],ebx
3023	xor	ecx,edi
3024	ror	edx,5
3025	and	ecx,esi
3026	mov	DWORD [28+esp],esi
3027	xor	edx,esi
3028	add	ebx,DWORD [8+esp]
3029	xor	edi,ecx
3030	ror	edx,6
3031	mov	esi,ebp
3032	add	ebx,edi
3033	ror	esi,9
3034	mov	ecx,ebp
3035	mov	edi,DWORD [16+esp]
3036	xor	esi,ebp
3037	mov	DWORD [12+esp],ebp
3038	xor	ebp,edi
3039	ror	esi,11
3040	and	eax,ebp
3041	lea	edx,[2756734187+edx*1+ebx]
3042	xor	esi,ecx
3043	xor	eax,edi
3044	mov	ecx,DWORD [92+esp]
3045	ror	esi,2
3046	add	eax,edx
3047	add	edx,DWORD [24+esp]
3048	add	eax,esi
3049	mov	esi,DWORD [80+esp]
3050	mov	ebx,ecx
3051	ror	ecx,11
3052	mov	edi,esi
3053	ror	esi,2
3054	xor	ecx,ebx
3055	shr	ebx,3
3056	ror	ecx,7
3057	xor	esi,edi
3058	xor	ebx,ecx
3059	ror	esi,17
3060	add	ebx,DWORD [88+esp]
3061	shr	edi,10
3062	add	ebx,DWORD [60+esp]
3063	mov	ecx,edx
3064	xor	edi,esi
3065	mov	esi,DWORD [28+esp]
3066	ror	edx,14
3067	add	ebx,edi
3068	mov	edi,DWORD [esp]
3069	xor	edx,ecx
3070	xor	esi,edi
3071	ror	edx,5
3072	and	esi,ecx
3073	mov	DWORD [24+esp],ecx
3074	xor	edx,ecx
3075	add	ebx,DWORD [4+esp]
3076	xor	edi,esi
3077	ror	edx,6
3078	mov	ecx,eax
3079	add	ebx,edi
3080	ror	ecx,9
3081	mov	esi,eax
3082	mov	edi,DWORD [12+esp]
3083	xor	ecx,eax
3084	mov	DWORD [8+esp],eax
3085	xor	eax,edi
3086	ror	ecx,11
3087	and	ebp,eax
3088	lea	edx,[3204031479+edx*1+ebx]
3089	xor	ecx,esi
3090	xor	ebp,edi
3091	mov	esi,DWORD [32+esp]
3092	ror	ecx,2
3093	add	ebp,edx
3094	add	edx,DWORD [20+esp]
3095	add	ebp,ecx
3096	mov	ecx,DWORD [84+esp]
3097	mov	ebx,esi
3098	ror	esi,11
3099	mov	edi,ecx
3100	ror	ecx,2
3101	xor	esi,ebx
3102	shr	ebx,3
3103	ror	esi,7
3104	xor	ecx,edi
3105	xor	ebx,esi
3106	ror	ecx,17
3107	add	ebx,DWORD [92+esp]
3108	shr	edi,10
3109	add	ebx,DWORD [64+esp]
3110	mov	esi,edx
3111	xor	edi,ecx
3112	mov	ecx,DWORD [24+esp]
3113	ror	edx,14
3114	add	ebx,edi
3115	mov	edi,DWORD [28+esp]
3116	xor	edx,esi
3117	xor	ecx,edi
3118	ror	edx,5
3119	and	ecx,esi
3120	mov	DWORD [20+esp],esi
3121	xor	edx,esi
3122	add	ebx,DWORD [esp]
3123	xor	edi,ecx
3124	ror	edx,6
3125	mov	esi,ebp
3126	add	ebx,edi
3127	ror	esi,9
3128	mov	ecx,ebp
3129	mov	edi,DWORD [8+esp]
3130	xor	esi,ebp
3131	mov	DWORD [4+esp],ebp
3132	xor	ebp,edi
3133	ror	esi,11
3134	and	eax,ebp
3135	lea	edx,[3329325298+edx*1+ebx]
3136	xor	esi,ecx
3137	xor	eax,edi
3138	ror	esi,2
3139	add	eax,edx
3140	add	edx,DWORD [16+esp]
3141	add	eax,esi
3142	mov	esi,DWORD [96+esp]
3143	xor	ebp,edi
3144	mov	ecx,DWORD [12+esp]
3145	add	eax,DWORD [esi]
3146	add	ebp,DWORD [4+esi]
3147	add	edi,DWORD [8+esi]
3148	add	ecx,DWORD [12+esi]
3149	mov	DWORD [esi],eax
3150	mov	DWORD [4+esi],ebp
3151	mov	DWORD [8+esi],edi
3152	mov	DWORD [12+esi],ecx
3153	mov	DWORD [4+esp],ebp
3154	xor	ebp,edi
3155	mov	DWORD [8+esp],edi
3156	mov	DWORD [12+esp],ecx
3157	mov	edi,DWORD [20+esp]
3158	mov	ebx,DWORD [24+esp]
3159	mov	ecx,DWORD [28+esp]
3160	add	edx,DWORD [16+esi]
3161	add	edi,DWORD [20+esi]
3162	add	ebx,DWORD [24+esi]
3163	add	ecx,DWORD [28+esi]
3164	mov	DWORD [16+esi],edx
3165	mov	DWORD [20+esi],edi
3166	mov	DWORD [24+esi],ebx
3167	mov	DWORD [28+esi],ecx
3168	mov	DWORD [20+esp],edi
3169	mov	edi,DWORD [100+esp]
3170	mov	DWORD [24+esp],ebx
3171	mov	DWORD [28+esp],ecx
3172	cmp	edi,DWORD [104+esp]
3173	jb	NEAR L$009grand_loop
3174	mov	esp,DWORD [108+esp]
3175	pop	edi
3176	pop	esi
3177	pop	ebx
3178	pop	ebp
3179	ret
3180align	32
3181L$005SSSE3:
3182	lea	esp,[esp-96]
3183	mov	eax,DWORD [esi]
3184	mov	ebx,DWORD [4+esi]
3185	mov	ecx,DWORD [8+esi]
3186	mov	edi,DWORD [12+esi]
3187	mov	DWORD [4+esp],ebx
3188	xor	ebx,ecx
3189	mov	DWORD [8+esp],ecx
3190	mov	DWORD [12+esp],edi
3191	mov	edx,DWORD [16+esi]
3192	mov	edi,DWORD [20+esi]
3193	mov	ecx,DWORD [24+esi]
3194	mov	esi,DWORD [28+esi]
3195	mov	DWORD [20+esp],edi
3196	mov	edi,DWORD [100+esp]
3197	mov	DWORD [24+esp],ecx
3198	mov	DWORD [28+esp],esi
3199	movdqa	xmm7,[256+ebp]
3200	jmp	NEAR L$010grand_ssse3
3201align	16
3202L$010grand_ssse3:
3203	movdqu	xmm0,[edi]
3204	movdqu	xmm1,[16+edi]
3205	movdqu	xmm2,[32+edi]
3206	movdqu	xmm3,[48+edi]
3207	add	edi,64
3208db	102,15,56,0,199
3209	mov	DWORD [100+esp],edi
3210db	102,15,56,0,207
3211	movdqa	xmm4,[ebp]
3212db	102,15,56,0,215
3213	movdqa	xmm5,[16+ebp]
3214	paddd	xmm4,xmm0
3215db	102,15,56,0,223
3216	movdqa	xmm6,[32+ebp]
3217	paddd	xmm5,xmm1
3218	movdqa	xmm7,[48+ebp]
3219	movdqa	[32+esp],xmm4
3220	paddd	xmm6,xmm2
3221	movdqa	[48+esp],xmm5
3222	paddd	xmm7,xmm3
3223	movdqa	[64+esp],xmm6
3224	movdqa	[80+esp],xmm7
3225	jmp	NEAR L$011ssse3_00_47
3226align	16
3227L$011ssse3_00_47:
3228	add	ebp,64
3229	mov	ecx,edx
3230	movdqa	xmm4,xmm1
3231	ror	edx,14
3232	mov	esi,DWORD [20+esp]
3233	movdqa	xmm7,xmm3
3234	xor	edx,ecx
3235	mov	edi,DWORD [24+esp]
3236db	102,15,58,15,224,4
3237	xor	esi,edi
3238	ror	edx,5
3239	and	esi,ecx
3240db	102,15,58,15,250,4
3241	mov	DWORD [16+esp],ecx
3242	xor	edx,ecx
3243	xor	edi,esi
3244	movdqa	xmm5,xmm4
3245	ror	edx,6
3246	mov	ecx,eax
3247	movdqa	xmm6,xmm4
3248	add	edx,edi
3249	mov	edi,DWORD [4+esp]
3250	psrld	xmm4,3
3251	mov	esi,eax
3252	ror	ecx,9
3253	paddd	xmm0,xmm7
3254	mov	DWORD [esp],eax
3255	xor	ecx,eax
3256	psrld	xmm6,7
3257	xor	eax,edi
3258	add	edx,DWORD [28+esp]
3259	ror	ecx,11
3260	and	ebx,eax
3261	pshufd	xmm7,xmm3,250
3262	xor	ecx,esi
3263	add	edx,DWORD [32+esp]
3264	pslld	xmm5,14
3265	xor	ebx,edi
3266	ror	ecx,2
3267	pxor	xmm4,xmm6
3268	add	ebx,edx
3269	add	edx,DWORD [12+esp]
3270	psrld	xmm6,11
3271	add	ebx,ecx
3272	mov	ecx,edx
3273	ror	edx,14
3274	pxor	xmm4,xmm5
3275	mov	esi,DWORD [16+esp]
3276	xor	edx,ecx
3277	pslld	xmm5,11
3278	mov	edi,DWORD [20+esp]
3279	xor	esi,edi
3280	ror	edx,5
3281	pxor	xmm4,xmm6
3282	and	esi,ecx
3283	mov	DWORD [12+esp],ecx
3284	movdqa	xmm6,xmm7
3285	xor	edx,ecx
3286	xor	edi,esi
3287	ror	edx,6
3288	pxor	xmm4,xmm5
3289	mov	ecx,ebx
3290	add	edx,edi
3291	psrld	xmm7,10
3292	mov	edi,DWORD [esp]
3293	mov	esi,ebx
3294	ror	ecx,9
3295	paddd	xmm0,xmm4
3296	mov	DWORD [28+esp],ebx
3297	xor	ecx,ebx
3298	psrlq	xmm6,17
3299	xor	ebx,edi
3300	add	edx,DWORD [24+esp]
3301	ror	ecx,11
3302	pxor	xmm7,xmm6
3303	and	eax,ebx
3304	xor	ecx,esi
3305	psrlq	xmm6,2
3306	add	edx,DWORD [36+esp]
3307	xor	eax,edi
3308	ror	ecx,2
3309	pxor	xmm7,xmm6
3310	add	eax,edx
3311	add	edx,DWORD [8+esp]
3312	pshufd	xmm7,xmm7,128
3313	add	eax,ecx
3314	mov	ecx,edx
3315	ror	edx,14
3316	mov	esi,DWORD [12+esp]
3317	xor	edx,ecx
3318	mov	edi,DWORD [16+esp]
3319	xor	esi,edi
3320	ror	edx,5
3321	and	esi,ecx
3322	psrldq	xmm7,8
3323	mov	DWORD [8+esp],ecx
3324	xor	edx,ecx
3325	xor	edi,esi
3326	paddd	xmm0,xmm7
3327	ror	edx,6
3328	mov	ecx,eax
3329	add	edx,edi
3330	mov	edi,DWORD [28+esp]
3331	mov	esi,eax
3332	ror	ecx,9
3333	mov	DWORD [24+esp],eax
3334	pshufd	xmm7,xmm0,80
3335	xor	ecx,eax
3336	xor	eax,edi
3337	add	edx,DWORD [20+esp]
3338	movdqa	xmm6,xmm7
3339	ror	ecx,11
3340	psrld	xmm7,10
3341	and	ebx,eax
3342	psrlq	xmm6,17
3343	xor	ecx,esi
3344	add	edx,DWORD [40+esp]
3345	xor	ebx,edi
3346	ror	ecx,2
3347	pxor	xmm7,xmm6
3348	add	ebx,edx
3349	add	edx,DWORD [4+esp]
3350	psrlq	xmm6,2
3351	add	ebx,ecx
3352	mov	ecx,edx
3353	ror	edx,14
3354	pxor	xmm7,xmm6
3355	mov	esi,DWORD [8+esp]
3356	xor	edx,ecx
3357	mov	edi,DWORD [12+esp]
3358	pshufd	xmm7,xmm7,8
3359	xor	esi,edi
3360	ror	edx,5
3361	movdqa	xmm6,[ebp]
3362	and	esi,ecx
3363	mov	DWORD [4+esp],ecx
3364	pslldq	xmm7,8
3365	xor	edx,ecx
3366	xor	edi,esi
3367	ror	edx,6
3368	mov	ecx,ebx
3369	add	edx,edi
3370	mov	edi,DWORD [24+esp]
3371	mov	esi,ebx
3372	ror	ecx,9
3373	paddd	xmm0,xmm7
3374	mov	DWORD [20+esp],ebx
3375	xor	ecx,ebx
3376	xor	ebx,edi
3377	add	edx,DWORD [16+esp]
3378	paddd	xmm6,xmm0
3379	ror	ecx,11
3380	and	eax,ebx
3381	xor	ecx,esi
3382	add	edx,DWORD [44+esp]
3383	xor	eax,edi
3384	ror	ecx,2
3385	add	eax,edx
3386	add	edx,DWORD [esp]
3387	add	eax,ecx
3388	movdqa	[32+esp],xmm6
3389	mov	ecx,edx
3390	movdqa	xmm4,xmm2
3391	ror	edx,14
3392	mov	esi,DWORD [4+esp]
3393	movdqa	xmm7,xmm0
3394	xor	edx,ecx
3395	mov	edi,DWORD [8+esp]
3396db	102,15,58,15,225,4
3397	xor	esi,edi
3398	ror	edx,5
3399	and	esi,ecx
3400db	102,15,58,15,251,4
3401	mov	DWORD [esp],ecx
3402	xor	edx,ecx
3403	xor	edi,esi
3404	movdqa	xmm5,xmm4
3405	ror	edx,6
3406	mov	ecx,eax
3407	movdqa	xmm6,xmm4
3408	add	edx,edi
3409	mov	edi,DWORD [20+esp]
3410	psrld	xmm4,3
3411	mov	esi,eax
3412	ror	ecx,9
3413	paddd	xmm1,xmm7
3414	mov	DWORD [16+esp],eax
3415	xor	ecx,eax
3416	psrld	xmm6,7
3417	xor	eax,edi
3418	add	edx,DWORD [12+esp]
3419	ror	ecx,11
3420	and	ebx,eax
3421	pshufd	xmm7,xmm0,250
3422	xor	ecx,esi
3423	add	edx,DWORD [48+esp]
3424	pslld	xmm5,14
3425	xor	ebx,edi
3426	ror	ecx,2
3427	pxor	xmm4,xmm6
3428	add	ebx,edx
3429	add	edx,DWORD [28+esp]
3430	psrld	xmm6,11
3431	add	ebx,ecx
3432	mov	ecx,edx
3433	ror	edx,14
3434	pxor	xmm4,xmm5
3435	mov	esi,DWORD [esp]
3436	xor	edx,ecx
3437	pslld	xmm5,11
3438	mov	edi,DWORD [4+esp]
3439	xor	esi,edi
3440	ror	edx,5
3441	pxor	xmm4,xmm6
3442	and	esi,ecx
3443	mov	DWORD [28+esp],ecx
3444	movdqa	xmm6,xmm7
3445	xor	edx,ecx
3446	xor	edi,esi
3447	ror	edx,6
3448	pxor	xmm4,xmm5
3449	mov	ecx,ebx
3450	add	edx,edi
3451	psrld	xmm7,10
3452	mov	edi,DWORD [16+esp]
3453	mov	esi,ebx
3454	ror	ecx,9
3455	paddd	xmm1,xmm4
3456	mov	DWORD [12+esp],ebx
3457	xor	ecx,ebx
3458	psrlq	xmm6,17
3459	xor	ebx,edi
3460	add	edx,DWORD [8+esp]
3461	ror	ecx,11
3462	pxor	xmm7,xmm6
3463	and	eax,ebx
3464	xor	ecx,esi
3465	psrlq	xmm6,2
3466	add	edx,DWORD [52+esp]
3467	xor	eax,edi
3468	ror	ecx,2
3469	pxor	xmm7,xmm6
3470	add	eax,edx
3471	add	edx,DWORD [24+esp]
3472	pshufd	xmm7,xmm7,128
3473	add	eax,ecx
3474	mov	ecx,edx
3475	ror	edx,14
3476	mov	esi,DWORD [28+esp]
3477	xor	edx,ecx
3478	mov	edi,DWORD [esp]
3479	xor	esi,edi
3480	ror	edx,5
3481	and	esi,ecx
3482	psrldq	xmm7,8
3483	mov	DWORD [24+esp],ecx
3484	xor	edx,ecx
3485	xor	edi,esi
3486	paddd	xmm1,xmm7
3487	ror	edx,6
3488	mov	ecx,eax
3489	add	edx,edi
3490	mov	edi,DWORD [12+esp]
3491	mov	esi,eax
3492	ror	ecx,9
3493	mov	DWORD [8+esp],eax
3494	pshufd	xmm7,xmm1,80
3495	xor	ecx,eax
3496	xor	eax,edi
3497	add	edx,DWORD [4+esp]
3498	movdqa	xmm6,xmm7
3499	ror	ecx,11
3500	psrld	xmm7,10
3501	and	ebx,eax
3502	psrlq	xmm6,17
3503	xor	ecx,esi
3504	add	edx,DWORD [56+esp]
3505	xor	ebx,edi
3506	ror	ecx,2
3507	pxor	xmm7,xmm6
3508	add	ebx,edx
3509	add	edx,DWORD [20+esp]
3510	psrlq	xmm6,2
3511	add	ebx,ecx
3512	mov	ecx,edx
3513	ror	edx,14
3514	pxor	xmm7,xmm6
3515	mov	esi,DWORD [24+esp]
3516	xor	edx,ecx
3517	mov	edi,DWORD [28+esp]
3518	pshufd	xmm7,xmm7,8
3519	xor	esi,edi
3520	ror	edx,5
3521	movdqa	xmm6,[16+ebp]
3522	and	esi,ecx
3523	mov	DWORD [20+esp],ecx
3524	pslldq	xmm7,8
3525	xor	edx,ecx
3526	xor	edi,esi
3527	ror	edx,6
3528	mov	ecx,ebx
3529	add	edx,edi
3530	mov	edi,DWORD [8+esp]
3531	mov	esi,ebx
3532	ror	ecx,9
3533	paddd	xmm1,xmm7
3534	mov	DWORD [4+esp],ebx
3535	xor	ecx,ebx
3536	xor	ebx,edi
3537	add	edx,DWORD [esp]
3538	paddd	xmm6,xmm1
3539	ror	ecx,11
3540	and	eax,ebx
3541	xor	ecx,esi
3542	add	edx,DWORD [60+esp]
3543	xor	eax,edi
3544	ror	ecx,2
3545	add	eax,edx
3546	add	edx,DWORD [16+esp]
3547	add	eax,ecx
3548	movdqa	[48+esp],xmm6
3549	mov	ecx,edx
3550	movdqa	xmm4,xmm3
3551	ror	edx,14
3552	mov	esi,DWORD [20+esp]
3553	movdqa	xmm7,xmm1
3554	xor	edx,ecx
3555	mov	edi,DWORD [24+esp]
3556db	102,15,58,15,226,4
3557	xor	esi,edi
3558	ror	edx,5
3559	and	esi,ecx
3560db	102,15,58,15,248,4
3561	mov	DWORD [16+esp],ecx
3562	xor	edx,ecx
3563	xor	edi,esi
3564	movdqa	xmm5,xmm4
3565	ror	edx,6
3566	mov	ecx,eax
3567	movdqa	xmm6,xmm4
3568	add	edx,edi
3569	mov	edi,DWORD [4+esp]
3570	psrld	xmm4,3
3571	mov	esi,eax
3572	ror	ecx,9
3573	paddd	xmm2,xmm7
3574	mov	DWORD [esp],eax
3575	xor	ecx,eax
3576	psrld	xmm6,7
3577	xor	eax,edi
3578	add	edx,DWORD [28+esp]
3579	ror	ecx,11
3580	and	ebx,eax
3581	pshufd	xmm7,xmm1,250
3582	xor	ecx,esi
3583	add	edx,DWORD [64+esp]
3584	pslld	xmm5,14
3585	xor	ebx,edi
3586	ror	ecx,2
3587	pxor	xmm4,xmm6
3588	add	ebx,edx
3589	add	edx,DWORD [12+esp]
3590	psrld	xmm6,11
3591	add	ebx,ecx
3592	mov	ecx,edx
3593	ror	edx,14
3594	pxor	xmm4,xmm5
3595	mov	esi,DWORD [16+esp]
3596	xor	edx,ecx
3597	pslld	xmm5,11
3598	mov	edi,DWORD [20+esp]
3599	xor	esi,edi
3600	ror	edx,5
3601	pxor	xmm4,xmm6
3602	and	esi,ecx
3603	mov	DWORD [12+esp],ecx
3604	movdqa	xmm6,xmm7
3605	xor	edx,ecx
3606	xor	edi,esi
3607	ror	edx,6
3608	pxor	xmm4,xmm5
3609	mov	ecx,ebx
3610	add	edx,edi
3611	psrld	xmm7,10
3612	mov	edi,DWORD [esp]
3613	mov	esi,ebx
3614	ror	ecx,9
3615	paddd	xmm2,xmm4
3616	mov	DWORD [28+esp],ebx
3617	xor	ecx,ebx
3618	psrlq	xmm6,17
3619	xor	ebx,edi
3620	add	edx,DWORD [24+esp]
3621	ror	ecx,11
3622	pxor	xmm7,xmm6
3623	and	eax,ebx
3624	xor	ecx,esi
3625	psrlq	xmm6,2
3626	add	edx,DWORD [68+esp]
3627	xor	eax,edi
3628	ror	ecx,2
3629	pxor	xmm7,xmm6
3630	add	eax,edx
3631	add	edx,DWORD [8+esp]
3632	pshufd	xmm7,xmm7,128
3633	add	eax,ecx
3634	mov	ecx,edx
3635	ror	edx,14
3636	mov	esi,DWORD [12+esp]
3637	xor	edx,ecx
3638	mov	edi,DWORD [16+esp]
3639	xor	esi,edi
3640	ror	edx,5
3641	and	esi,ecx
3642	psrldq	xmm7,8
3643	mov	DWORD [8+esp],ecx
3644	xor	edx,ecx
3645	xor	edi,esi
3646	paddd	xmm2,xmm7
3647	ror	edx,6
3648	mov	ecx,eax
3649	add	edx,edi
3650	mov	edi,DWORD [28+esp]
3651	mov	esi,eax
3652	ror	ecx,9
3653	mov	DWORD [24+esp],eax
3654	pshufd	xmm7,xmm2,80
3655	xor	ecx,eax
3656	xor	eax,edi
3657	add	edx,DWORD [20+esp]
3658	movdqa	xmm6,xmm7
3659	ror	ecx,11
3660	psrld	xmm7,10
3661	and	ebx,eax
3662	psrlq	xmm6,17
3663	xor	ecx,esi
3664	add	edx,DWORD [72+esp]
3665	xor	ebx,edi
3666	ror	ecx,2
3667	pxor	xmm7,xmm6
3668	add	ebx,edx
3669	add	edx,DWORD [4+esp]
3670	psrlq	xmm6,2
3671	add	ebx,ecx
3672	mov	ecx,edx
3673	ror	edx,14
3674	pxor	xmm7,xmm6
3675	mov	esi,DWORD [8+esp]
3676	xor	edx,ecx
3677	mov	edi,DWORD [12+esp]
3678	pshufd	xmm7,xmm7,8
3679	xor	esi,edi
3680	ror	edx,5
3681	movdqa	xmm6,[32+ebp]
3682	and	esi,ecx
3683	mov	DWORD [4+esp],ecx
3684	pslldq	xmm7,8
3685	xor	edx,ecx
3686	xor	edi,esi
3687	ror	edx,6
3688	mov	ecx,ebx
3689	add	edx,edi
3690	mov	edi,DWORD [24+esp]
3691	mov	esi,ebx
3692	ror	ecx,9
3693	paddd	xmm2,xmm7
3694	mov	DWORD [20+esp],ebx
3695	xor	ecx,ebx
3696	xor	ebx,edi
3697	add	edx,DWORD [16+esp]
3698	paddd	xmm6,xmm2
3699	ror	ecx,11
3700	and	eax,ebx
3701	xor	ecx,esi
3702	add	edx,DWORD [76+esp]
3703	xor	eax,edi
3704	ror	ecx,2
3705	add	eax,edx
3706	add	edx,DWORD [esp]
3707	add	eax,ecx
3708	movdqa	[64+esp],xmm6
3709	mov	ecx,edx
3710	movdqa	xmm4,xmm0
3711	ror	edx,14
3712	mov	esi,DWORD [4+esp]
3713	movdqa	xmm7,xmm2
3714	xor	edx,ecx
3715	mov	edi,DWORD [8+esp]
3716db	102,15,58,15,227,4
3717	xor	esi,edi
3718	ror	edx,5
3719	and	esi,ecx
3720db	102,15,58,15,249,4
3721	mov	DWORD [esp],ecx
3722	xor	edx,ecx
3723	xor	edi,esi
3724	movdqa	xmm5,xmm4
3725	ror	edx,6
3726	mov	ecx,eax
3727	movdqa	xmm6,xmm4
3728	add	edx,edi
3729	mov	edi,DWORD [20+esp]
3730	psrld	xmm4,3
3731	mov	esi,eax
3732	ror	ecx,9
3733	paddd	xmm3,xmm7
3734	mov	DWORD [16+esp],eax
3735	xor	ecx,eax
3736	psrld	xmm6,7
3737	xor	eax,edi
3738	add	edx,DWORD [12+esp]
3739	ror	ecx,11
3740	and	ebx,eax
3741	pshufd	xmm7,xmm2,250
3742	xor	ecx,esi
3743	add	edx,DWORD [80+esp]
3744	pslld	xmm5,14
3745	xor	ebx,edi
3746	ror	ecx,2
3747	pxor	xmm4,xmm6
3748	add	ebx,edx
3749	add	edx,DWORD [28+esp]
3750	psrld	xmm6,11
3751	add	ebx,ecx
3752	mov	ecx,edx
3753	ror	edx,14
3754	pxor	xmm4,xmm5
3755	mov	esi,DWORD [esp]
3756	xor	edx,ecx
3757	pslld	xmm5,11
3758	mov	edi,DWORD [4+esp]
3759	xor	esi,edi
3760	ror	edx,5
3761	pxor	xmm4,xmm6
3762	and	esi,ecx
3763	mov	DWORD [28+esp],ecx
3764	movdqa	xmm6,xmm7
3765	xor	edx,ecx
3766	xor	edi,esi
3767	ror	edx,6
3768	pxor	xmm4,xmm5
3769	mov	ecx,ebx
3770	add	edx,edi
3771	psrld	xmm7,10
3772	mov	edi,DWORD [16+esp]
3773	mov	esi,ebx
3774	ror	ecx,9
3775	paddd	xmm3,xmm4
3776	mov	DWORD [12+esp],ebx
3777	xor	ecx,ebx
3778	psrlq	xmm6,17
3779	xor	ebx,edi
3780	add	edx,DWORD [8+esp]
3781	ror	ecx,11
3782	pxor	xmm7,xmm6
3783	and	eax,ebx
3784	xor	ecx,esi
3785	psrlq	xmm6,2
3786	add	edx,DWORD [84+esp]
3787	xor	eax,edi
3788	ror	ecx,2
3789	pxor	xmm7,xmm6
3790	add	eax,edx
3791	add	edx,DWORD [24+esp]
3792	pshufd	xmm7,xmm7,128
3793	add	eax,ecx
3794	mov	ecx,edx
3795	ror	edx,14
3796	mov	esi,DWORD [28+esp]
3797	xor	edx,ecx
3798	mov	edi,DWORD [esp]
3799	xor	esi,edi
3800	ror	edx,5
3801	and	esi,ecx
3802	psrldq	xmm7,8
3803	mov	DWORD [24+esp],ecx
3804	xor	edx,ecx
3805	xor	edi,esi
3806	paddd	xmm3,xmm7
3807	ror	edx,6
3808	mov	ecx,eax
3809	add	edx,edi
3810	mov	edi,DWORD [12+esp]
3811	mov	esi,eax
3812	ror	ecx,9
3813	mov	DWORD [8+esp],eax
3814	pshufd	xmm7,xmm3,80
3815	xor	ecx,eax
3816	xor	eax,edi
3817	add	edx,DWORD [4+esp]
3818	movdqa	xmm6,xmm7
3819	ror	ecx,11
3820	psrld	xmm7,10
3821	and	ebx,eax
3822	psrlq	xmm6,17
3823	xor	ecx,esi
3824	add	edx,DWORD [88+esp]
3825	xor	ebx,edi
3826	ror	ecx,2
3827	pxor	xmm7,xmm6
3828	add	ebx,edx
3829	add	edx,DWORD [20+esp]
3830	psrlq	xmm6,2
3831	add	ebx,ecx
3832	mov	ecx,edx
3833	ror	edx,14
3834	pxor	xmm7,xmm6
3835	mov	esi,DWORD [24+esp]
3836	xor	edx,ecx
3837	mov	edi,DWORD [28+esp]
3838	pshufd	xmm7,xmm7,8
3839	xor	esi,edi
3840	ror	edx,5
3841	movdqa	xmm6,[48+ebp]
3842	and	esi,ecx
3843	mov	DWORD [20+esp],ecx
3844	pslldq	xmm7,8
3845	xor	edx,ecx
3846	xor	edi,esi
3847	ror	edx,6
3848	mov	ecx,ebx
3849	add	edx,edi
3850	mov	edi,DWORD [8+esp]
3851	mov	esi,ebx
3852	ror	ecx,9
3853	paddd	xmm3,xmm7
3854	mov	DWORD [4+esp],ebx
3855	xor	ecx,ebx
3856	xor	ebx,edi
3857	add	edx,DWORD [esp]
3858	paddd	xmm6,xmm3
3859	ror	ecx,11
3860	and	eax,ebx
3861	xor	ecx,esi
3862	add	edx,DWORD [92+esp]
3863	xor	eax,edi
3864	ror	ecx,2
3865	add	eax,edx
3866	add	edx,DWORD [16+esp]
3867	add	eax,ecx
3868	movdqa	[80+esp],xmm6
3869	cmp	DWORD [64+ebp],66051
3870	jne	NEAR L$011ssse3_00_47
3871	mov	ecx,edx
3872	ror	edx,14
3873	mov	esi,DWORD [20+esp]
3874	xor	edx,ecx
3875	mov	edi,DWORD [24+esp]
3876	xor	esi,edi
3877	ror	edx,5
3878	and	esi,ecx
3879	mov	DWORD [16+esp],ecx
3880	xor	edx,ecx
3881	xor	edi,esi
3882	ror	edx,6
3883	mov	ecx,eax
3884	add	edx,edi
3885	mov	edi,DWORD [4+esp]
3886	mov	esi,eax
3887	ror	ecx,9
3888	mov	DWORD [esp],eax
3889	xor	ecx,eax
3890	xor	eax,edi
3891	add	edx,DWORD [28+esp]
3892	ror	ecx,11
3893	and	ebx,eax
3894	xor	ecx,esi
3895	add	edx,DWORD [32+esp]
3896	xor	ebx,edi
3897	ror	ecx,2
3898	add	ebx,edx
3899	add	edx,DWORD [12+esp]
3900	add	ebx,ecx
3901	mov	ecx,edx
3902	ror	edx,14
3903	mov	esi,DWORD [16+esp]
3904	xor	edx,ecx
3905	mov	edi,DWORD [20+esp]
3906	xor	esi,edi
3907	ror	edx,5
3908	and	esi,ecx
3909	mov	DWORD [12+esp],ecx
3910	xor	edx,ecx
3911	xor	edi,esi
3912	ror	edx,6
3913	mov	ecx,ebx
3914	add	edx,edi
3915	mov	edi,DWORD [esp]
3916	mov	esi,ebx
3917	ror	ecx,9
3918	mov	DWORD [28+esp],ebx
3919	xor	ecx,ebx
3920	xor	ebx,edi
3921	add	edx,DWORD [24+esp]
3922	ror	ecx,11
3923	and	eax,ebx
3924	xor	ecx,esi
3925	add	edx,DWORD [36+esp]
3926	xor	eax,edi
3927	ror	ecx,2
3928	add	eax,edx
3929	add	edx,DWORD [8+esp]
3930	add	eax,ecx
3931	mov	ecx,edx
3932	ror	edx,14
3933	mov	esi,DWORD [12+esp]
3934	xor	edx,ecx
3935	mov	edi,DWORD [16+esp]
3936	xor	esi,edi
3937	ror	edx,5
3938	and	esi,ecx
3939	mov	DWORD [8+esp],ecx
3940	xor	edx,ecx
3941	xor	edi,esi
3942	ror	edx,6
3943	mov	ecx,eax
3944	add	edx,edi
3945	mov	edi,DWORD [28+esp]
3946	mov	esi,eax
3947	ror	ecx,9
3948	mov	DWORD [24+esp],eax
3949	xor	ecx,eax
3950	xor	eax,edi
3951	add	edx,DWORD [20+esp]
3952	ror	ecx,11
3953	and	ebx,eax
3954	xor	ecx,esi
3955	add	edx,DWORD [40+esp]
3956	xor	ebx,edi
3957	ror	ecx,2
3958	add	ebx,edx
3959	add	edx,DWORD [4+esp]
3960	add	ebx,ecx
3961	mov	ecx,edx
3962	ror	edx,14
3963	mov	esi,DWORD [8+esp]
3964	xor	edx,ecx
3965	mov	edi,DWORD [12+esp]
3966	xor	esi,edi
3967	ror	edx,5
3968	and	esi,ecx
3969	mov	DWORD [4+esp],ecx
3970	xor	edx,ecx
3971	xor	edi,esi
3972	ror	edx,6
3973	mov	ecx,ebx
3974	add	edx,edi
3975	mov	edi,DWORD [24+esp]
3976	mov	esi,ebx
3977	ror	ecx,9
3978	mov	DWORD [20+esp],ebx
3979	xor	ecx,ebx
3980	xor	ebx,edi
3981	add	edx,DWORD [16+esp]
3982	ror	ecx,11
3983	and	eax,ebx
3984	xor	ecx,esi
3985	add	edx,DWORD [44+esp]
3986	xor	eax,edi
3987	ror	ecx,2
3988	add	eax,edx
3989	add	edx,DWORD [esp]
3990	add	eax,ecx
3991	mov	ecx,edx
3992	ror	edx,14
3993	mov	esi,DWORD [4+esp]
3994	xor	edx,ecx
3995	mov	edi,DWORD [8+esp]
3996	xor	esi,edi
3997	ror	edx,5
3998	and	esi,ecx
3999	mov	DWORD [esp],ecx
4000	xor	edx,ecx
4001	xor	edi,esi
4002	ror	edx,6
4003	mov	ecx,eax
4004	add	edx,edi
4005	mov	edi,DWORD [20+esp]
4006	mov	esi,eax
4007	ror	ecx,9
4008	mov	DWORD [16+esp],eax
4009	xor	ecx,eax
4010	xor	eax,edi
4011	add	edx,DWORD [12+esp]
4012	ror	ecx,11
4013	and	ebx,eax
4014	xor	ecx,esi
4015	add	edx,DWORD [48+esp]
4016	xor	ebx,edi
4017	ror	ecx,2
4018	add	ebx,edx
4019	add	edx,DWORD [28+esp]
4020	add	ebx,ecx
4021	mov	ecx,edx
4022	ror	edx,14
4023	mov	esi,DWORD [esp]
4024	xor	edx,ecx
4025	mov	edi,DWORD [4+esp]
4026	xor	esi,edi
4027	ror	edx,5
4028	and	esi,ecx
4029	mov	DWORD [28+esp],ecx
4030	xor	edx,ecx
4031	xor	edi,esi
4032	ror	edx,6
4033	mov	ecx,ebx
4034	add	edx,edi
4035	mov	edi,DWORD [16+esp]
4036	mov	esi,ebx
4037	ror	ecx,9
4038	mov	DWORD [12+esp],ebx
4039	xor	ecx,ebx
4040	xor	ebx,edi
4041	add	edx,DWORD [8+esp]
4042	ror	ecx,11
4043	and	eax,ebx
4044	xor	ecx,esi
4045	add	edx,DWORD [52+esp]
4046	xor	eax,edi
4047	ror	ecx,2
4048	add	eax,edx
4049	add	edx,DWORD [24+esp]
4050	add	eax,ecx
4051	mov	ecx,edx
4052	ror	edx,14
4053	mov	esi,DWORD [28+esp]
4054	xor	edx,ecx
4055	mov	edi,DWORD [esp]
4056	xor	esi,edi
4057	ror	edx,5
4058	and	esi,ecx
4059	mov	DWORD [24+esp],ecx
4060	xor	edx,ecx
4061	xor	edi,esi
4062	ror	edx,6
4063	mov	ecx,eax
4064	add	edx,edi
4065	mov	edi,DWORD [12+esp]
4066	mov	esi,eax
4067	ror	ecx,9
4068	mov	DWORD [8+esp],eax
4069	xor	ecx,eax
4070	xor	eax,edi
4071	add	edx,DWORD [4+esp]
4072	ror	ecx,11
4073	and	ebx,eax
4074	xor	ecx,esi
4075	add	edx,DWORD [56+esp]
4076	xor	ebx,edi
4077	ror	ecx,2
4078	add	ebx,edx
4079	add	edx,DWORD [20+esp]
4080	add	ebx,ecx
4081	mov	ecx,edx
4082	ror	edx,14
4083	mov	esi,DWORD [24+esp]
4084	xor	edx,ecx
4085	mov	edi,DWORD [28+esp]
4086	xor	esi,edi
4087	ror	edx,5
4088	and	esi,ecx
4089	mov	DWORD [20+esp],ecx
4090	xor	edx,ecx
4091	xor	edi,esi
4092	ror	edx,6
4093	mov	ecx,ebx
4094	add	edx,edi
4095	mov	edi,DWORD [8+esp]
4096	mov	esi,ebx
4097	ror	ecx,9
4098	mov	DWORD [4+esp],ebx
4099	xor	ecx,ebx
4100	xor	ebx,edi
4101	add	edx,DWORD [esp]
4102	ror	ecx,11
4103	and	eax,ebx
4104	xor	ecx,esi
4105	add	edx,DWORD [60+esp]
4106	xor	eax,edi
4107	ror	ecx,2
4108	add	eax,edx
4109	add	edx,DWORD [16+esp]
4110	add	eax,ecx
4111	mov	ecx,edx
4112	ror	edx,14
4113	mov	esi,DWORD [20+esp]
4114	xor	edx,ecx
4115	mov	edi,DWORD [24+esp]
4116	xor	esi,edi
4117	ror	edx,5
4118	and	esi,ecx
4119	mov	DWORD [16+esp],ecx
4120	xor	edx,ecx
4121	xor	edi,esi
4122	ror	edx,6
4123	mov	ecx,eax
4124	add	edx,edi
4125	mov	edi,DWORD [4+esp]
4126	mov	esi,eax
4127	ror	ecx,9
4128	mov	DWORD [esp],eax
4129	xor	ecx,eax
4130	xor	eax,edi
4131	add	edx,DWORD [28+esp]
4132	ror	ecx,11
4133	and	ebx,eax
4134	xor	ecx,esi
4135	add	edx,DWORD [64+esp]
4136	xor	ebx,edi
4137	ror	ecx,2
4138	add	ebx,edx
4139	add	edx,DWORD [12+esp]
4140	add	ebx,ecx
4141	mov	ecx,edx
4142	ror	edx,14
4143	mov	esi,DWORD [16+esp]
4144	xor	edx,ecx
4145	mov	edi,DWORD [20+esp]
4146	xor	esi,edi
4147	ror	edx,5
4148	and	esi,ecx
4149	mov	DWORD [12+esp],ecx
4150	xor	edx,ecx
4151	xor	edi,esi
4152	ror	edx,6
4153	mov	ecx,ebx
4154	add	edx,edi
4155	mov	edi,DWORD [esp]
4156	mov	esi,ebx
4157	ror	ecx,9
4158	mov	DWORD [28+esp],ebx
4159	xor	ecx,ebx
4160	xor	ebx,edi
4161	add	edx,DWORD [24+esp]
4162	ror	ecx,11
4163	and	eax,ebx
4164	xor	ecx,esi
4165	add	edx,DWORD [68+esp]
4166	xor	eax,edi
4167	ror	ecx,2
4168	add	eax,edx
4169	add	edx,DWORD [8+esp]
4170	add	eax,ecx
4171	mov	ecx,edx
4172	ror	edx,14
4173	mov	esi,DWORD [12+esp]
4174	xor	edx,ecx
4175	mov	edi,DWORD [16+esp]
4176	xor	esi,edi
4177	ror	edx,5
4178	and	esi,ecx
4179	mov	DWORD [8+esp],ecx
4180	xor	edx,ecx
4181	xor	edi,esi
4182	ror	edx,6
4183	mov	ecx,eax
4184	add	edx,edi
4185	mov	edi,DWORD [28+esp]
4186	mov	esi,eax
4187	ror	ecx,9
4188	mov	DWORD [24+esp],eax
4189	xor	ecx,eax
4190	xor	eax,edi
4191	add	edx,DWORD [20+esp]
4192	ror	ecx,11
4193	and	ebx,eax
4194	xor	ecx,esi
4195	add	edx,DWORD [72+esp]
4196	xor	ebx,edi
4197	ror	ecx,2
4198	add	ebx,edx
4199	add	edx,DWORD [4+esp]
4200	add	ebx,ecx
4201	mov	ecx,edx
4202	ror	edx,14
4203	mov	esi,DWORD [8+esp]
4204	xor	edx,ecx
4205	mov	edi,DWORD [12+esp]
4206	xor	esi,edi
4207	ror	edx,5
4208	and	esi,ecx
4209	mov	DWORD [4+esp],ecx
4210	xor	edx,ecx
4211	xor	edi,esi
4212	ror	edx,6
4213	mov	ecx,ebx
4214	add	edx,edi
4215	mov	edi,DWORD [24+esp]
4216	mov	esi,ebx
4217	ror	ecx,9
4218	mov	DWORD [20+esp],ebx
4219	xor	ecx,ebx
4220	xor	ebx,edi
4221	add	edx,DWORD [16+esp]
4222	ror	ecx,11
4223	and	eax,ebx
4224	xor	ecx,esi
4225	add	edx,DWORD [76+esp]
4226	xor	eax,edi
4227	ror	ecx,2
4228	add	eax,edx
4229	add	edx,DWORD [esp]
4230	add	eax,ecx
4231	mov	ecx,edx
4232	ror	edx,14
4233	mov	esi,DWORD [4+esp]
4234	xor	edx,ecx
4235	mov	edi,DWORD [8+esp]
4236	xor	esi,edi
4237	ror	edx,5
4238	and	esi,ecx
4239	mov	DWORD [esp],ecx
4240	xor	edx,ecx
4241	xor	edi,esi
4242	ror	edx,6
4243	mov	ecx,eax
4244	add	edx,edi
4245	mov	edi,DWORD [20+esp]
4246	mov	esi,eax
4247	ror	ecx,9
4248	mov	DWORD [16+esp],eax
4249	xor	ecx,eax
4250	xor	eax,edi
4251	add	edx,DWORD [12+esp]
4252	ror	ecx,11
4253	and	ebx,eax
4254	xor	ecx,esi
4255	add	edx,DWORD [80+esp]
4256	xor	ebx,edi
4257	ror	ecx,2
4258	add	ebx,edx
4259	add	edx,DWORD [28+esp]
4260	add	ebx,ecx
4261	mov	ecx,edx
4262	ror	edx,14
4263	mov	esi,DWORD [esp]
4264	xor	edx,ecx
4265	mov	edi,DWORD [4+esp]
4266	xor	esi,edi
4267	ror	edx,5
4268	and	esi,ecx
4269	mov	DWORD [28+esp],ecx
4270	xor	edx,ecx
4271	xor	edi,esi
4272	ror	edx,6
4273	mov	ecx,ebx
4274	add	edx,edi
4275	mov	edi,DWORD [16+esp]
4276	mov	esi,ebx
4277	ror	ecx,9
4278	mov	DWORD [12+esp],ebx
4279	xor	ecx,ebx
4280	xor	ebx,edi
4281	add	edx,DWORD [8+esp]
4282	ror	ecx,11
4283	and	eax,ebx
4284	xor	ecx,esi
4285	add	edx,DWORD [84+esp]
4286	xor	eax,edi
4287	ror	ecx,2
4288	add	eax,edx
4289	add	edx,DWORD [24+esp]
4290	add	eax,ecx
4291	mov	ecx,edx
4292	ror	edx,14
4293	mov	esi,DWORD [28+esp]
4294	xor	edx,ecx
4295	mov	edi,DWORD [esp]
4296	xor	esi,edi
4297	ror	edx,5
4298	and	esi,ecx
4299	mov	DWORD [24+esp],ecx
4300	xor	edx,ecx
4301	xor	edi,esi
4302	ror	edx,6
4303	mov	ecx,eax
4304	add	edx,edi
4305	mov	edi,DWORD [12+esp]
4306	mov	esi,eax
4307	ror	ecx,9
4308	mov	DWORD [8+esp],eax
4309	xor	ecx,eax
4310	xor	eax,edi
4311	add	edx,DWORD [4+esp]
4312	ror	ecx,11
4313	and	ebx,eax
4314	xor	ecx,esi
4315	add	edx,DWORD [88+esp]
4316	xor	ebx,edi
4317	ror	ecx,2
4318	add	ebx,edx
4319	add	edx,DWORD [20+esp]
4320	add	ebx,ecx
4321	mov	ecx,edx
4322	ror	edx,14
4323	mov	esi,DWORD [24+esp]
4324	xor	edx,ecx
4325	mov	edi,DWORD [28+esp]
4326	xor	esi,edi
4327	ror	edx,5
4328	and	esi,ecx
4329	mov	DWORD [20+esp],ecx
4330	xor	edx,ecx
4331	xor	edi,esi
4332	ror	edx,6
4333	mov	ecx,ebx
4334	add	edx,edi
4335	mov	edi,DWORD [8+esp]
4336	mov	esi,ebx
4337	ror	ecx,9
4338	mov	DWORD [4+esp],ebx
4339	xor	ecx,ebx
4340	xor	ebx,edi
4341	add	edx,DWORD [esp]
4342	ror	ecx,11
4343	and	eax,ebx
4344	xor	ecx,esi
4345	add	edx,DWORD [92+esp]
4346	xor	eax,edi
4347	ror	ecx,2
4348	add	eax,edx
4349	add	edx,DWORD [16+esp]
4350	add	eax,ecx
4351	mov	esi,DWORD [96+esp]
4352	xor	ebx,edi
4353	mov	ecx,DWORD [12+esp]
4354	add	eax,DWORD [esi]
4355	add	ebx,DWORD [4+esi]
4356	add	edi,DWORD [8+esi]
4357	add	ecx,DWORD [12+esi]
4358	mov	DWORD [esi],eax
4359	mov	DWORD [4+esi],ebx
4360	mov	DWORD [8+esi],edi
4361	mov	DWORD [12+esi],ecx
4362	mov	DWORD [4+esp],ebx
4363	xor	ebx,edi
4364	mov	DWORD [8+esp],edi
4365	mov	DWORD [12+esp],ecx
4366	mov	edi,DWORD [20+esp]
4367	mov	ecx,DWORD [24+esp]
4368	add	edx,DWORD [16+esi]
4369	add	edi,DWORD [20+esi]
4370	add	ecx,DWORD [24+esi]
4371	mov	DWORD [16+esi],edx
4372	mov	DWORD [20+esi],edi
4373	mov	DWORD [20+esp],edi
4374	mov	edi,DWORD [28+esp]
4375	mov	DWORD [24+esi],ecx
4376	add	edi,DWORD [28+esi]
4377	mov	DWORD [24+esp],ecx
4378	mov	DWORD [28+esi],edi
4379	mov	DWORD [28+esp],edi
4380	mov	edi,DWORD [100+esp]
4381	movdqa	xmm7,[64+ebp]
4382	sub	ebp,192
4383	cmp	edi,DWORD [104+esp]
4384	jb	NEAR L$010grand_ssse3
4385	mov	esp,DWORD [108+esp]
4386	pop	edi
4387	pop	esi
4388	pop	ebx
4389	pop	ebp
4390	ret
4391align	32
4392L$004AVX:
4393	lea	esp,[esp-96]
4394	vzeroall
4395	mov	eax,DWORD [esi]
4396	mov	ebx,DWORD [4+esi]
4397	mov	ecx,DWORD [8+esi]
4398	mov	edi,DWORD [12+esi]
4399	mov	DWORD [4+esp],ebx
4400	xor	ebx,ecx
4401	mov	DWORD [8+esp],ecx
4402	mov	DWORD [12+esp],edi
4403	mov	edx,DWORD [16+esi]
4404	mov	edi,DWORD [20+esi]
4405	mov	ecx,DWORD [24+esi]
4406	mov	esi,DWORD [28+esi]
4407	mov	DWORD [20+esp],edi
4408	mov	edi,DWORD [100+esp]
4409	mov	DWORD [24+esp],ecx
4410	mov	DWORD [28+esp],esi
4411	vmovdqa	xmm7,[256+ebp]
4412	jmp	NEAR L$012grand_avx
4413align	32
4414L$012grand_avx:
4415	vmovdqu	xmm0,[edi]
4416	vmovdqu	xmm1,[16+edi]
4417	vmovdqu	xmm2,[32+edi]
4418	vmovdqu	xmm3,[48+edi]
4419	add	edi,64
4420	vpshufb	xmm0,xmm0,xmm7
4421	mov	DWORD [100+esp],edi
4422	vpshufb	xmm1,xmm1,xmm7
4423	vpshufb	xmm2,xmm2,xmm7
4424	vpaddd	xmm4,xmm0,[ebp]
4425	vpshufb	xmm3,xmm3,xmm7
4426	vpaddd	xmm5,xmm1,[16+ebp]
4427	vpaddd	xmm6,xmm2,[32+ebp]
4428	vpaddd	xmm7,xmm3,[48+ebp]
4429	vmovdqa	[32+esp],xmm4
4430	vmovdqa	[48+esp],xmm5
4431	vmovdqa	[64+esp],xmm6
4432	vmovdqa	[80+esp],xmm7
4433	jmp	NEAR L$013avx_00_47
4434align	16
4435L$013avx_00_47:
4436	add	ebp,64
4437	vpalignr	xmm4,xmm1,xmm0,4
4438	mov	ecx,edx
4439	shrd	edx,edx,14
4440	mov	esi,DWORD [20+esp]
4441	vpalignr	xmm7,xmm3,xmm2,4
4442	xor	edx,ecx
4443	mov	edi,DWORD [24+esp]
4444	xor	esi,edi
4445	vpsrld	xmm6,xmm4,7
4446	shrd	edx,edx,5
4447	and	esi,ecx
4448	mov	DWORD [16+esp],ecx
4449	vpaddd	xmm0,xmm0,xmm7
4450	xor	edx,ecx
4451	xor	edi,esi
4452	shrd	edx,edx,6
4453	vpsrld	xmm7,xmm4,3
4454	mov	ecx,eax
4455	add	edx,edi
4456	mov	edi,DWORD [4+esp]
4457	vpslld	xmm5,xmm4,14
4458	mov	esi,eax
4459	shrd	ecx,ecx,9
4460	mov	DWORD [esp],eax
4461	vpxor	xmm4,xmm7,xmm6
4462	xor	ecx,eax
4463	xor	eax,edi
4464	add	edx,DWORD [28+esp]
4465	vpshufd	xmm7,xmm3,250
4466	shrd	ecx,ecx,11
4467	and	ebx,eax
4468	xor	ecx,esi
4469	vpsrld	xmm6,xmm6,11
4470	add	edx,DWORD [32+esp]
4471	xor	ebx,edi
4472	shrd	ecx,ecx,2
4473	vpxor	xmm4,xmm4,xmm5
4474	add	ebx,edx
4475	add	edx,DWORD [12+esp]
4476	add	ebx,ecx
4477	vpslld	xmm5,xmm5,11
4478	mov	ecx,edx
4479	shrd	edx,edx,14
4480	mov	esi,DWORD [16+esp]
4481	vpxor	xmm4,xmm4,xmm6
4482	xor	edx,ecx
4483	mov	edi,DWORD [20+esp]
4484	xor	esi,edi
4485	vpsrld	xmm6,xmm7,10
4486	shrd	edx,edx,5
4487	and	esi,ecx
4488	mov	DWORD [12+esp],ecx
4489	vpxor	xmm4,xmm4,xmm5
4490	xor	edx,ecx
4491	xor	edi,esi
4492	shrd	edx,edx,6
4493	vpsrlq	xmm5,xmm7,17
4494	mov	ecx,ebx
4495	add	edx,edi
4496	mov	edi,DWORD [esp]
4497	vpaddd	xmm0,xmm0,xmm4
4498	mov	esi,ebx
4499	shrd	ecx,ecx,9
4500	mov	DWORD [28+esp],ebx
4501	vpxor	xmm6,xmm6,xmm5
4502	xor	ecx,ebx
4503	xor	ebx,edi
4504	add	edx,DWORD [24+esp]
4505	vpsrlq	xmm7,xmm7,19
4506	shrd	ecx,ecx,11
4507	and	eax,ebx
4508	xor	ecx,esi
4509	vpxor	xmm6,xmm6,xmm7
4510	add	edx,DWORD [36+esp]
4511	xor	eax,edi
4512	shrd	ecx,ecx,2
4513	vpshufd	xmm7,xmm6,132
4514	add	eax,edx
4515	add	edx,DWORD [8+esp]
4516	add	eax,ecx
4517	vpsrldq	xmm7,xmm7,8
4518	mov	ecx,edx
4519	shrd	edx,edx,14
4520	mov	esi,DWORD [12+esp]
4521	vpaddd	xmm0,xmm0,xmm7
4522	xor	edx,ecx
4523	mov	edi,DWORD [16+esp]
4524	xor	esi,edi
4525	vpshufd	xmm7,xmm0,80
4526	shrd	edx,edx,5
4527	and	esi,ecx
4528	mov	DWORD [8+esp],ecx
4529	vpsrld	xmm6,xmm7,10
4530	xor	edx,ecx
4531	xor	edi,esi
4532	shrd	edx,edx,6
4533	vpsrlq	xmm5,xmm7,17
4534	mov	ecx,eax
4535	add	edx,edi
4536	mov	edi,DWORD [28+esp]
4537	vpxor	xmm6,xmm6,xmm5
4538	mov	esi,eax
4539	shrd	ecx,ecx,9
4540	mov	DWORD [24+esp],eax
4541	vpsrlq	xmm7,xmm7,19
4542	xor	ecx,eax
4543	xor	eax,edi
4544	add	edx,DWORD [20+esp]
4545	vpxor	xmm6,xmm6,xmm7
4546	shrd	ecx,ecx,11
4547	and	ebx,eax
4548	xor	ecx,esi
4549	vpshufd	xmm7,xmm6,232
4550	add	edx,DWORD [40+esp]
4551	xor	ebx,edi
4552	shrd	ecx,ecx,2
4553	vpslldq	xmm7,xmm7,8
4554	add	ebx,edx
4555	add	edx,DWORD [4+esp]
4556	add	ebx,ecx
4557	vpaddd	xmm0,xmm0,xmm7
4558	mov	ecx,edx
4559	shrd	edx,edx,14
4560	mov	esi,DWORD [8+esp]
4561	vpaddd	xmm6,xmm0,[ebp]
4562	xor	edx,ecx
4563	mov	edi,DWORD [12+esp]
4564	xor	esi,edi
4565	shrd	edx,edx,5
4566	and	esi,ecx
4567	mov	DWORD [4+esp],ecx
4568	xor	edx,ecx
4569	xor	edi,esi
4570	shrd	edx,edx,6
4571	mov	ecx,ebx
4572	add	edx,edi
4573	mov	edi,DWORD [24+esp]
4574	mov	esi,ebx
4575	shrd	ecx,ecx,9
4576	mov	DWORD [20+esp],ebx
4577	xor	ecx,ebx
4578	xor	ebx,edi
4579	add	edx,DWORD [16+esp]
4580	shrd	ecx,ecx,11
4581	and	eax,ebx
4582	xor	ecx,esi
4583	add	edx,DWORD [44+esp]
4584	xor	eax,edi
4585	shrd	ecx,ecx,2
4586	add	eax,edx
4587	add	edx,DWORD [esp]
4588	add	eax,ecx
4589	vmovdqa	[32+esp],xmm6
4590	vpalignr	xmm4,xmm2,xmm1,4
4591	mov	ecx,edx
4592	shrd	edx,edx,14
4593	mov	esi,DWORD [4+esp]
4594	vpalignr	xmm7,xmm0,xmm3,4
4595	xor	edx,ecx
4596	mov	edi,DWORD [8+esp]
4597	xor	esi,edi
4598	vpsrld	xmm6,xmm4,7
4599	shrd	edx,edx,5
4600	and	esi,ecx
4601	mov	DWORD [esp],ecx
4602	vpaddd	xmm1,xmm1,xmm7
4603	xor	edx,ecx
4604	xor	edi,esi
4605	shrd	edx,edx,6
4606	vpsrld	xmm7,xmm4,3
4607	mov	ecx,eax
4608	add	edx,edi
4609	mov	edi,DWORD [20+esp]
4610	vpslld	xmm5,xmm4,14
4611	mov	esi,eax
4612	shrd	ecx,ecx,9
4613	mov	DWORD [16+esp],eax
4614	vpxor	xmm4,xmm7,xmm6
4615	xor	ecx,eax
4616	xor	eax,edi
4617	add	edx,DWORD [12+esp]
4618	vpshufd	xmm7,xmm0,250
4619	shrd	ecx,ecx,11
4620	and	ebx,eax
4621	xor	ecx,esi
4622	vpsrld	xmm6,xmm6,11
4623	add	edx,DWORD [48+esp]
4624	xor	ebx,edi
4625	shrd	ecx,ecx,2
4626	vpxor	xmm4,xmm4,xmm5
4627	add	ebx,edx
4628	add	edx,DWORD [28+esp]
4629	add	ebx,ecx
4630	vpslld	xmm5,xmm5,11
4631	mov	ecx,edx
4632	shrd	edx,edx,14
4633	mov	esi,DWORD [esp]
4634	vpxor	xmm4,xmm4,xmm6
4635	xor	edx,ecx
4636	mov	edi,DWORD [4+esp]
4637	xor	esi,edi
4638	vpsrld	xmm6,xmm7,10
4639	shrd	edx,edx,5
4640	and	esi,ecx
4641	mov	DWORD [28+esp],ecx
4642	vpxor	xmm4,xmm4,xmm5
4643	xor	edx,ecx
4644	xor	edi,esi
4645	shrd	edx,edx,6
4646	vpsrlq	xmm5,xmm7,17
4647	mov	ecx,ebx
4648	add	edx,edi
4649	mov	edi,DWORD [16+esp]
4650	vpaddd	xmm1,xmm1,xmm4
4651	mov	esi,ebx
4652	shrd	ecx,ecx,9
4653	mov	DWORD [12+esp],ebx
4654	vpxor	xmm6,xmm6,xmm5
4655	xor	ecx,ebx
4656	xor	ebx,edi
4657	add	edx,DWORD [8+esp]
4658	vpsrlq	xmm7,xmm7,19
4659	shrd	ecx,ecx,11
4660	and	eax,ebx
4661	xor	ecx,esi
4662	vpxor	xmm6,xmm6,xmm7
4663	add	edx,DWORD [52+esp]
4664	xor	eax,edi
4665	shrd	ecx,ecx,2
4666	vpshufd	xmm7,xmm6,132
4667	add	eax,edx
4668	add	edx,DWORD [24+esp]
4669	add	eax,ecx
4670	vpsrldq	xmm7,xmm7,8
4671	mov	ecx,edx
4672	shrd	edx,edx,14
4673	mov	esi,DWORD [28+esp]
4674	vpaddd	xmm1,xmm1,xmm7
4675	xor	edx,ecx
4676	mov	edi,DWORD [esp]
4677	xor	esi,edi
4678	vpshufd	xmm7,xmm1,80
4679	shrd	edx,edx,5
4680	and	esi,ecx
4681	mov	DWORD [24+esp],ecx
4682	vpsrld	xmm6,xmm7,10
4683	xor	edx,ecx
4684	xor	edi,esi
4685	shrd	edx,edx,6
4686	vpsrlq	xmm5,xmm7,17
4687	mov	ecx,eax
4688	add	edx,edi
4689	mov	edi,DWORD [12+esp]
4690	vpxor	xmm6,xmm6,xmm5
4691	mov	esi,eax
4692	shrd	ecx,ecx,9
4693	mov	DWORD [8+esp],eax
4694	vpsrlq	xmm7,xmm7,19
4695	xor	ecx,eax
4696	xor	eax,edi
4697	add	edx,DWORD [4+esp]
4698	vpxor	xmm6,xmm6,xmm7
4699	shrd	ecx,ecx,11
4700	and	ebx,eax
4701	xor	ecx,esi
4702	vpshufd	xmm7,xmm6,232
4703	add	edx,DWORD [56+esp]
4704	xor	ebx,edi
4705	shrd	ecx,ecx,2
4706	vpslldq	xmm7,xmm7,8
4707	add	ebx,edx
4708	add	edx,DWORD [20+esp]
4709	add	ebx,ecx
4710	vpaddd	xmm1,xmm1,xmm7
4711	mov	ecx,edx
4712	shrd	edx,edx,14
4713	mov	esi,DWORD [24+esp]
4714	vpaddd	xmm6,xmm1,[16+ebp]
4715	xor	edx,ecx
4716	mov	edi,DWORD [28+esp]
4717	xor	esi,edi
4718	shrd	edx,edx,5
4719	and	esi,ecx
4720	mov	DWORD [20+esp],ecx
4721	xor	edx,ecx
4722	xor	edi,esi
4723	shrd	edx,edx,6
4724	mov	ecx,ebx
4725	add	edx,edi
4726	mov	edi,DWORD [8+esp]
4727	mov	esi,ebx
4728	shrd	ecx,ecx,9
4729	mov	DWORD [4+esp],ebx
4730	xor	ecx,ebx
4731	xor	ebx,edi
4732	add	edx,DWORD [esp]
4733	shrd	ecx,ecx,11
4734	and	eax,ebx
4735	xor	ecx,esi
4736	add	edx,DWORD [60+esp]
4737	xor	eax,edi
4738	shrd	ecx,ecx,2
4739	add	eax,edx
4740	add	edx,DWORD [16+esp]
4741	add	eax,ecx
4742	vmovdqa	[48+esp],xmm6
4743	vpalignr	xmm4,xmm3,xmm2,4
4744	mov	ecx,edx
4745	shrd	edx,edx,14
4746	mov	esi,DWORD [20+esp]
4747	vpalignr	xmm7,xmm1,xmm0,4
4748	xor	edx,ecx
4749	mov	edi,DWORD [24+esp]
4750	xor	esi,edi
4751	vpsrld	xmm6,xmm4,7
4752	shrd	edx,edx,5
4753	and	esi,ecx
4754	mov	DWORD [16+esp],ecx
4755	vpaddd	xmm2,xmm2,xmm7
4756	xor	edx,ecx
4757	xor	edi,esi
4758	shrd	edx,edx,6
4759	vpsrld	xmm7,xmm4,3
4760	mov	ecx,eax
4761	add	edx,edi
4762	mov	edi,DWORD [4+esp]
4763	vpslld	xmm5,xmm4,14
4764	mov	esi,eax
4765	shrd	ecx,ecx,9
4766	mov	DWORD [esp],eax
4767	vpxor	xmm4,xmm7,xmm6
4768	xor	ecx,eax
4769	xor	eax,edi
4770	add	edx,DWORD [28+esp]
4771	vpshufd	xmm7,xmm1,250
4772	shrd	ecx,ecx,11
4773	and	ebx,eax
4774	xor	ecx,esi
4775	vpsrld	xmm6,xmm6,11
4776	add	edx,DWORD [64+esp]
4777	xor	ebx,edi
4778	shrd	ecx,ecx,2
4779	vpxor	xmm4,xmm4,xmm5
4780	add	ebx,edx
4781	add	edx,DWORD [12+esp]
4782	add	ebx,ecx
4783	vpslld	xmm5,xmm5,11
4784	mov	ecx,edx
4785	shrd	edx,edx,14
4786	mov	esi,DWORD [16+esp]
4787	vpxor	xmm4,xmm4,xmm6
4788	xor	edx,ecx
4789	mov	edi,DWORD [20+esp]
4790	xor	esi,edi
4791	vpsrld	xmm6,xmm7,10
4792	shrd	edx,edx,5
4793	and	esi,ecx
4794	mov	DWORD [12+esp],ecx
4795	vpxor	xmm4,xmm4,xmm5
4796	xor	edx,ecx
4797	xor	edi,esi
4798	shrd	edx,edx,6
4799	vpsrlq	xmm5,xmm7,17
4800	mov	ecx,ebx
4801	add	edx,edi
4802	mov	edi,DWORD [esp]
4803	vpaddd	xmm2,xmm2,xmm4
4804	mov	esi,ebx
4805	shrd	ecx,ecx,9
4806	mov	DWORD [28+esp],ebx
4807	vpxor	xmm6,xmm6,xmm5
4808	xor	ecx,ebx
4809	xor	ebx,edi
4810	add	edx,DWORD [24+esp]
4811	vpsrlq	xmm7,xmm7,19
4812	shrd	ecx,ecx,11
4813	and	eax,ebx
4814	xor	ecx,esi
4815	vpxor	xmm6,xmm6,xmm7
4816	add	edx,DWORD [68+esp]
4817	xor	eax,edi
4818	shrd	ecx,ecx,2
4819	vpshufd	xmm7,xmm6,132
4820	add	eax,edx
4821	add	edx,DWORD [8+esp]
4822	add	eax,ecx
4823	vpsrldq	xmm7,xmm7,8
4824	mov	ecx,edx
4825	shrd	edx,edx,14
4826	mov	esi,DWORD [12+esp]
4827	vpaddd	xmm2,xmm2,xmm7
4828	xor	edx,ecx
4829	mov	edi,DWORD [16+esp]
4830	xor	esi,edi
4831	vpshufd	xmm7,xmm2,80
4832	shrd	edx,edx,5
4833	and	esi,ecx
4834	mov	DWORD [8+esp],ecx
4835	vpsrld	xmm6,xmm7,10
4836	xor	edx,ecx
4837	xor	edi,esi
4838	shrd	edx,edx,6
4839	vpsrlq	xmm5,xmm7,17
4840	mov	ecx,eax
4841	add	edx,edi
4842	mov	edi,DWORD [28+esp]
4843	vpxor	xmm6,xmm6,xmm5
4844	mov	esi,eax
4845	shrd	ecx,ecx,9
4846	mov	DWORD [24+esp],eax
4847	vpsrlq	xmm7,xmm7,19
4848	xor	ecx,eax
4849	xor	eax,edi
4850	add	edx,DWORD [20+esp]
4851	vpxor	xmm6,xmm6,xmm7
4852	shrd	ecx,ecx,11
4853	and	ebx,eax
4854	xor	ecx,esi
4855	vpshufd	xmm7,xmm6,232
4856	add	edx,DWORD [72+esp]
4857	xor	ebx,edi
4858	shrd	ecx,ecx,2
4859	vpslldq	xmm7,xmm7,8
4860	add	ebx,edx
4861	add	edx,DWORD [4+esp]
4862	add	ebx,ecx
4863	vpaddd	xmm2,xmm2,xmm7
4864	mov	ecx,edx
4865	shrd	edx,edx,14
4866	mov	esi,DWORD [8+esp]
4867	vpaddd	xmm6,xmm2,[32+ebp]
4868	xor	edx,ecx
4869	mov	edi,DWORD [12+esp]
4870	xor	esi,edi
4871	shrd	edx,edx,5
4872	and	esi,ecx
4873	mov	DWORD [4+esp],ecx
4874	xor	edx,ecx
4875	xor	edi,esi
4876	shrd	edx,edx,6
4877	mov	ecx,ebx
4878	add	edx,edi
4879	mov	edi,DWORD [24+esp]
4880	mov	esi,ebx
4881	shrd	ecx,ecx,9
4882	mov	DWORD [20+esp],ebx
4883	xor	ecx,ebx
4884	xor	ebx,edi
4885	add	edx,DWORD [16+esp]
4886	shrd	ecx,ecx,11
4887	and	eax,ebx
4888	xor	ecx,esi
4889	add	edx,DWORD [76+esp]
4890	xor	eax,edi
4891	shrd	ecx,ecx,2
4892	add	eax,edx
4893	add	edx,DWORD [esp]
4894	add	eax,ecx
4895	vmovdqa	[64+esp],xmm6
4896	vpalignr	xmm4,xmm0,xmm3,4
4897	mov	ecx,edx
4898	shrd	edx,edx,14
4899	mov	esi,DWORD [4+esp]
4900	vpalignr	xmm7,xmm2,xmm1,4
4901	xor	edx,ecx
4902	mov	edi,DWORD [8+esp]
4903	xor	esi,edi
4904	vpsrld	xmm6,xmm4,7
4905	shrd	edx,edx,5
4906	and	esi,ecx
4907	mov	DWORD [esp],ecx
4908	vpaddd	xmm3,xmm3,xmm7
4909	xor	edx,ecx
4910	xor	edi,esi
4911	shrd	edx,edx,6
4912	vpsrld	xmm7,xmm4,3
4913	mov	ecx,eax
4914	add	edx,edi
4915	mov	edi,DWORD [20+esp]
4916	vpslld	xmm5,xmm4,14
4917	mov	esi,eax
4918	shrd	ecx,ecx,9
4919	mov	DWORD [16+esp],eax
4920	vpxor	xmm4,xmm7,xmm6
4921	xor	ecx,eax
4922	xor	eax,edi
4923	add	edx,DWORD [12+esp]
4924	vpshufd	xmm7,xmm2,250
4925	shrd	ecx,ecx,11
4926	and	ebx,eax
4927	xor	ecx,esi
4928	vpsrld	xmm6,xmm6,11
4929	add	edx,DWORD [80+esp]
4930	xor	ebx,edi
4931	shrd	ecx,ecx,2
4932	vpxor	xmm4,xmm4,xmm5
4933	add	ebx,edx
4934	add	edx,DWORD [28+esp]
4935	add	ebx,ecx
4936	vpslld	xmm5,xmm5,11
4937	mov	ecx,edx
4938	shrd	edx,edx,14
4939	mov	esi,DWORD [esp]
4940	vpxor	xmm4,xmm4,xmm6
4941	xor	edx,ecx
4942	mov	edi,DWORD [4+esp]
4943	xor	esi,edi
4944	vpsrld	xmm6,xmm7,10
4945	shrd	edx,edx,5
4946	and	esi,ecx
4947	mov	DWORD [28+esp],ecx
4948	vpxor	xmm4,xmm4,xmm5
4949	xor	edx,ecx
4950	xor	edi,esi
4951	shrd	edx,edx,6
4952	vpsrlq	xmm5,xmm7,17
4953	mov	ecx,ebx
4954	add	edx,edi
4955	mov	edi,DWORD [16+esp]
4956	vpaddd	xmm3,xmm3,xmm4
4957	mov	esi,ebx
4958	shrd	ecx,ecx,9
4959	mov	DWORD [12+esp],ebx
4960	vpxor	xmm6,xmm6,xmm5
4961	xor	ecx,ebx
4962	xor	ebx,edi
4963	add	edx,DWORD [8+esp]
4964	vpsrlq	xmm7,xmm7,19
4965	shrd	ecx,ecx,11
4966	and	eax,ebx
4967	xor	ecx,esi
4968	vpxor	xmm6,xmm6,xmm7
4969	add	edx,DWORD [84+esp]
4970	xor	eax,edi
4971	shrd	ecx,ecx,2
4972	vpshufd	xmm7,xmm6,132
4973	add	eax,edx
4974	add	edx,DWORD [24+esp]
4975	add	eax,ecx
4976	vpsrldq	xmm7,xmm7,8
4977	mov	ecx,edx
4978	shrd	edx,edx,14
4979	mov	esi,DWORD [28+esp]
4980	vpaddd	xmm3,xmm3,xmm7
4981	xor	edx,ecx
4982	mov	edi,DWORD [esp]
4983	xor	esi,edi
4984	vpshufd	xmm7,xmm3,80
4985	shrd	edx,edx,5
4986	and	esi,ecx
4987	mov	DWORD [24+esp],ecx
4988	vpsrld	xmm6,xmm7,10
4989	xor	edx,ecx
4990	xor	edi,esi
4991	shrd	edx,edx,6
4992	vpsrlq	xmm5,xmm7,17
4993	mov	ecx,eax
4994	add	edx,edi
4995	mov	edi,DWORD [12+esp]
4996	vpxor	xmm6,xmm6,xmm5
4997	mov	esi,eax
4998	shrd	ecx,ecx,9
4999	mov	DWORD [8+esp],eax
5000	vpsrlq	xmm7,xmm7,19
5001	xor	ecx,eax
5002	xor	eax,edi
5003	add	edx,DWORD [4+esp]
5004	vpxor	xmm6,xmm6,xmm7
5005	shrd	ecx,ecx,11
5006	and	ebx,eax
5007	xor	ecx,esi
5008	vpshufd	xmm7,xmm6,232
5009	add	edx,DWORD [88+esp]
5010	xor	ebx,edi
5011	shrd	ecx,ecx,2
5012	vpslldq	xmm7,xmm7,8
5013	add	ebx,edx
5014	add	edx,DWORD [20+esp]
5015	add	ebx,ecx
5016	vpaddd	xmm3,xmm3,xmm7
5017	mov	ecx,edx
5018	shrd	edx,edx,14
5019	mov	esi,DWORD [24+esp]
5020	vpaddd	xmm6,xmm3,[48+ebp]
5021	xor	edx,ecx
5022	mov	edi,DWORD [28+esp]
5023	xor	esi,edi
5024	shrd	edx,edx,5
5025	and	esi,ecx
5026	mov	DWORD [20+esp],ecx
5027	xor	edx,ecx
5028	xor	edi,esi
5029	shrd	edx,edx,6
5030	mov	ecx,ebx
5031	add	edx,edi
5032	mov	edi,DWORD [8+esp]
5033	mov	esi,ebx
5034	shrd	ecx,ecx,9
5035	mov	DWORD [4+esp],ebx
5036	xor	ecx,ebx
5037	xor	ebx,edi
5038	add	edx,DWORD [esp]
5039	shrd	ecx,ecx,11
5040	and	eax,ebx
5041	xor	ecx,esi
5042	add	edx,DWORD [92+esp]
5043	xor	eax,edi
5044	shrd	ecx,ecx,2
5045	add	eax,edx
5046	add	edx,DWORD [16+esp]
5047	add	eax,ecx
5048	vmovdqa	[80+esp],xmm6
5049	cmp	DWORD [64+ebp],66051
5050	jne	NEAR L$013avx_00_47
5051	mov	ecx,edx
5052	shrd	edx,edx,14
5053	mov	esi,DWORD [20+esp]
5054	xor	edx,ecx
5055	mov	edi,DWORD [24+esp]
5056	xor	esi,edi
5057	shrd	edx,edx,5
5058	and	esi,ecx
5059	mov	DWORD [16+esp],ecx
5060	xor	edx,ecx
5061	xor	edi,esi
5062	shrd	edx,edx,6
5063	mov	ecx,eax
5064	add	edx,edi
5065	mov	edi,DWORD [4+esp]
5066	mov	esi,eax
5067	shrd	ecx,ecx,9
5068	mov	DWORD [esp],eax
5069	xor	ecx,eax
5070	xor	eax,edi
5071	add	edx,DWORD [28+esp]
5072	shrd	ecx,ecx,11
5073	and	ebx,eax
5074	xor	ecx,esi
5075	add	edx,DWORD [32+esp]
5076	xor	ebx,edi
5077	shrd	ecx,ecx,2
5078	add	ebx,edx
5079	add	edx,DWORD [12+esp]
5080	add	ebx,ecx
5081	mov	ecx,edx
5082	shrd	edx,edx,14
5083	mov	esi,DWORD [16+esp]
5084	xor	edx,ecx
5085	mov	edi,DWORD [20+esp]
5086	xor	esi,edi
5087	shrd	edx,edx,5
5088	and	esi,ecx
5089	mov	DWORD [12+esp],ecx
5090	xor	edx,ecx
5091	xor	edi,esi
5092	shrd	edx,edx,6
5093	mov	ecx,ebx
5094	add	edx,edi
5095	mov	edi,DWORD [esp]
5096	mov	esi,ebx
5097	shrd	ecx,ecx,9
5098	mov	DWORD [28+esp],ebx
5099	xor	ecx,ebx
5100	xor	ebx,edi
5101	add	edx,DWORD [24+esp]
5102	shrd	ecx,ecx,11
5103	and	eax,ebx
5104	xor	ecx,esi
5105	add	edx,DWORD [36+esp]
5106	xor	eax,edi
5107	shrd	ecx,ecx,2
5108	add	eax,edx
5109	add	edx,DWORD [8+esp]
5110	add	eax,ecx
5111	mov	ecx,edx
5112	shrd	edx,edx,14
5113	mov	esi,DWORD [12+esp]
5114	xor	edx,ecx
5115	mov	edi,DWORD [16+esp]
5116	xor	esi,edi
5117	shrd	edx,edx,5
5118	and	esi,ecx
5119	mov	DWORD [8+esp],ecx
5120	xor	edx,ecx
5121	xor	edi,esi
5122	shrd	edx,edx,6
5123	mov	ecx,eax
5124	add	edx,edi
5125	mov	edi,DWORD [28+esp]
5126	mov	esi,eax
5127	shrd	ecx,ecx,9
5128	mov	DWORD [24+esp],eax
5129	xor	ecx,eax
5130	xor	eax,edi
5131	add	edx,DWORD [20+esp]
5132	shrd	ecx,ecx,11
5133	and	ebx,eax
5134	xor	ecx,esi
5135	add	edx,DWORD [40+esp]
5136	xor	ebx,edi
5137	shrd	ecx,ecx,2
5138	add	ebx,edx
5139	add	edx,DWORD [4+esp]
5140	add	ebx,ecx
5141	mov	ecx,edx
5142	shrd	edx,edx,14
5143	mov	esi,DWORD [8+esp]
5144	xor	edx,ecx
5145	mov	edi,DWORD [12+esp]
5146	xor	esi,edi
5147	shrd	edx,edx,5
5148	and	esi,ecx
5149	mov	DWORD [4+esp],ecx
5150	xor	edx,ecx
5151	xor	edi,esi
5152	shrd	edx,edx,6
5153	mov	ecx,ebx
5154	add	edx,edi
5155	mov	edi,DWORD [24+esp]
5156	mov	esi,ebx
5157	shrd	ecx,ecx,9
5158	mov	DWORD [20+esp],ebx
5159	xor	ecx,ebx
5160	xor	ebx,edi
5161	add	edx,DWORD [16+esp]
5162	shrd	ecx,ecx,11
5163	and	eax,ebx
5164	xor	ecx,esi
5165	add	edx,DWORD [44+esp]
5166	xor	eax,edi
5167	shrd	ecx,ecx,2
5168	add	eax,edx
5169	add	edx,DWORD [esp]
5170	add	eax,ecx
5171	mov	ecx,edx
5172	shrd	edx,edx,14
5173	mov	esi,DWORD [4+esp]
5174	xor	edx,ecx
5175	mov	edi,DWORD [8+esp]
5176	xor	esi,edi
5177	shrd	edx,edx,5
5178	and	esi,ecx
5179	mov	DWORD [esp],ecx
5180	xor	edx,ecx
5181	xor	edi,esi
5182	shrd	edx,edx,6
5183	mov	ecx,eax
5184	add	edx,edi
5185	mov	edi,DWORD [20+esp]
5186	mov	esi,eax
5187	shrd	ecx,ecx,9
5188	mov	DWORD [16+esp],eax
5189	xor	ecx,eax
5190	xor	eax,edi
5191	add	edx,DWORD [12+esp]
5192	shrd	ecx,ecx,11
5193	and	ebx,eax
5194	xor	ecx,esi
5195	add	edx,DWORD [48+esp]
5196	xor	ebx,edi
5197	shrd	ecx,ecx,2
5198	add	ebx,edx
5199	add	edx,DWORD [28+esp]
5200	add	ebx,ecx
5201	mov	ecx,edx
5202	shrd	edx,edx,14
5203	mov	esi,DWORD [esp]
5204	xor	edx,ecx
5205	mov	edi,DWORD [4+esp]
5206	xor	esi,edi
5207	shrd	edx,edx,5
5208	and	esi,ecx
5209	mov	DWORD [28+esp],ecx
5210	xor	edx,ecx
5211	xor	edi,esi
5212	shrd	edx,edx,6
5213	mov	ecx,ebx
5214	add	edx,edi
5215	mov	edi,DWORD [16+esp]
5216	mov	esi,ebx
5217	shrd	ecx,ecx,9
5218	mov	DWORD [12+esp],ebx
5219	xor	ecx,ebx
5220	xor	ebx,edi
5221	add	edx,DWORD [8+esp]
5222	shrd	ecx,ecx,11
5223	and	eax,ebx
5224	xor	ecx,esi
5225	add	edx,DWORD [52+esp]
5226	xor	eax,edi
5227	shrd	ecx,ecx,2
5228	add	eax,edx
5229	add	edx,DWORD [24+esp]
5230	add	eax,ecx
5231	mov	ecx,edx
5232	shrd	edx,edx,14
5233	mov	esi,DWORD [28+esp]
5234	xor	edx,ecx
5235	mov	edi,DWORD [esp]
5236	xor	esi,edi
5237	shrd	edx,edx,5
5238	and	esi,ecx
5239	mov	DWORD [24+esp],ecx
5240	xor	edx,ecx
5241	xor	edi,esi
5242	shrd	edx,edx,6
5243	mov	ecx,eax
5244	add	edx,edi
5245	mov	edi,DWORD [12+esp]
5246	mov	esi,eax
5247	shrd	ecx,ecx,9
5248	mov	DWORD [8+esp],eax
5249	xor	ecx,eax
5250	xor	eax,edi
5251	add	edx,DWORD [4+esp]
5252	shrd	ecx,ecx,11
5253	and	ebx,eax
5254	xor	ecx,esi
5255	add	edx,DWORD [56+esp]
5256	xor	ebx,edi
5257	shrd	ecx,ecx,2
5258	add	ebx,edx
5259	add	edx,DWORD [20+esp]
5260	add	ebx,ecx
5261	mov	ecx,edx
5262	shrd	edx,edx,14
5263	mov	esi,DWORD [24+esp]
5264	xor	edx,ecx
5265	mov	edi,DWORD [28+esp]
5266	xor	esi,edi
5267	shrd	edx,edx,5
5268	and	esi,ecx
5269	mov	DWORD [20+esp],ecx
5270	xor	edx,ecx
5271	xor	edi,esi
5272	shrd	edx,edx,6
5273	mov	ecx,ebx
5274	add	edx,edi
5275	mov	edi,DWORD [8+esp]
5276	mov	esi,ebx
5277	shrd	ecx,ecx,9
5278	mov	DWORD [4+esp],ebx
5279	xor	ecx,ebx
5280	xor	ebx,edi
5281	add	edx,DWORD [esp]
5282	shrd	ecx,ecx,11
5283	and	eax,ebx
5284	xor	ecx,esi
5285	add	edx,DWORD [60+esp]
5286	xor	eax,edi
5287	shrd	ecx,ecx,2
5288	add	eax,edx
5289	add	edx,DWORD [16+esp]
5290	add	eax,ecx
5291	mov	ecx,edx
5292	shrd	edx,edx,14
5293	mov	esi,DWORD [20+esp]
5294	xor	edx,ecx
5295	mov	edi,DWORD [24+esp]
5296	xor	esi,edi
5297	shrd	edx,edx,5
5298	and	esi,ecx
5299	mov	DWORD [16+esp],ecx
5300	xor	edx,ecx
5301	xor	edi,esi
5302	shrd	edx,edx,6
5303	mov	ecx,eax
5304	add	edx,edi
5305	mov	edi,DWORD [4+esp]
5306	mov	esi,eax
5307	shrd	ecx,ecx,9
5308	mov	DWORD [esp],eax
5309	xor	ecx,eax
5310	xor	eax,edi
5311	add	edx,DWORD [28+esp]
5312	shrd	ecx,ecx,11
5313	and	ebx,eax
5314	xor	ecx,esi
5315	add	edx,DWORD [64+esp]
5316	xor	ebx,edi
5317	shrd	ecx,ecx,2
5318	add	ebx,edx
5319	add	edx,DWORD [12+esp]
5320	add	ebx,ecx
5321	mov	ecx,edx
5322	shrd	edx,edx,14
5323	mov	esi,DWORD [16+esp]
5324	xor	edx,ecx
5325	mov	edi,DWORD [20+esp]
5326	xor	esi,edi
5327	shrd	edx,edx,5
5328	and	esi,ecx
5329	mov	DWORD [12+esp],ecx
5330	xor	edx,ecx
5331	xor	edi,esi
5332	shrd	edx,edx,6
5333	mov	ecx,ebx
5334	add	edx,edi
5335	mov	edi,DWORD [esp]
5336	mov	esi,ebx
5337	shrd	ecx,ecx,9
5338	mov	DWORD [28+esp],ebx
5339	xor	ecx,ebx
5340	xor	ebx,edi
5341	add	edx,DWORD [24+esp]
5342	shrd	ecx,ecx,11
5343	and	eax,ebx
5344	xor	ecx,esi
5345	add	edx,DWORD [68+esp]
5346	xor	eax,edi
5347	shrd	ecx,ecx,2
5348	add	eax,edx
5349	add	edx,DWORD [8+esp]
5350	add	eax,ecx
5351	mov	ecx,edx
5352	shrd	edx,edx,14
5353	mov	esi,DWORD [12+esp]
5354	xor	edx,ecx
5355	mov	edi,DWORD [16+esp]
5356	xor	esi,edi
5357	shrd	edx,edx,5
5358	and	esi,ecx
5359	mov	DWORD [8+esp],ecx
5360	xor	edx,ecx
5361	xor	edi,esi
5362	shrd	edx,edx,6
5363	mov	ecx,eax
5364	add	edx,edi
5365	mov	edi,DWORD [28+esp]
5366	mov	esi,eax
5367	shrd	ecx,ecx,9
5368	mov	DWORD [24+esp],eax
5369	xor	ecx,eax
5370	xor	eax,edi
5371	add	edx,DWORD [20+esp]
5372	shrd	ecx,ecx,11
5373	and	ebx,eax
5374	xor	ecx,esi
5375	add	edx,DWORD [72+esp]
5376	xor	ebx,edi
5377	shrd	ecx,ecx,2
5378	add	ebx,edx
5379	add	edx,DWORD [4+esp]
5380	add	ebx,ecx
5381	mov	ecx,edx
5382	shrd	edx,edx,14
5383	mov	esi,DWORD [8+esp]
5384	xor	edx,ecx
5385	mov	edi,DWORD [12+esp]
5386	xor	esi,edi
5387	shrd	edx,edx,5
5388	and	esi,ecx
5389	mov	DWORD [4+esp],ecx
5390	xor	edx,ecx
5391	xor	edi,esi
5392	shrd	edx,edx,6
5393	mov	ecx,ebx
5394	add	edx,edi
5395	mov	edi,DWORD [24+esp]
5396	mov	esi,ebx
5397	shrd	ecx,ecx,9
5398	mov	DWORD [20+esp],ebx
5399	xor	ecx,ebx
5400	xor	ebx,edi
5401	add	edx,DWORD [16+esp]
5402	shrd	ecx,ecx,11
5403	and	eax,ebx
5404	xor	ecx,esi
5405	add	edx,DWORD [76+esp]
5406	xor	eax,edi
5407	shrd	ecx,ecx,2
5408	add	eax,edx
5409	add	edx,DWORD [esp]
5410	add	eax,ecx
5411	mov	ecx,edx
5412	shrd	edx,edx,14
5413	mov	esi,DWORD [4+esp]
5414	xor	edx,ecx
5415	mov	edi,DWORD [8+esp]
5416	xor	esi,edi
5417	shrd	edx,edx,5
5418	and	esi,ecx
5419	mov	DWORD [esp],ecx
5420	xor	edx,ecx
5421	xor	edi,esi
5422	shrd	edx,edx,6
5423	mov	ecx,eax
5424	add	edx,edi
5425	mov	edi,DWORD [20+esp]
5426	mov	esi,eax
5427	shrd	ecx,ecx,9
5428	mov	DWORD [16+esp],eax
5429	xor	ecx,eax
5430	xor	eax,edi
5431	add	edx,DWORD [12+esp]
5432	shrd	ecx,ecx,11
5433	and	ebx,eax
5434	xor	ecx,esi
5435	add	edx,DWORD [80+esp]
5436	xor	ebx,edi
5437	shrd	ecx,ecx,2
5438	add	ebx,edx
5439	add	edx,DWORD [28+esp]
5440	add	ebx,ecx
5441	mov	ecx,edx
5442	shrd	edx,edx,14
5443	mov	esi,DWORD [esp]
5444	xor	edx,ecx
5445	mov	edi,DWORD [4+esp]
5446	xor	esi,edi
5447	shrd	edx,edx,5
5448	and	esi,ecx
5449	mov	DWORD [28+esp],ecx
5450	xor	edx,ecx
5451	xor	edi,esi
5452	shrd	edx,edx,6
5453	mov	ecx,ebx
5454	add	edx,edi
5455	mov	edi,DWORD [16+esp]
5456	mov	esi,ebx
5457	shrd	ecx,ecx,9
5458	mov	DWORD [12+esp],ebx
5459	xor	ecx,ebx
5460	xor	ebx,edi
5461	add	edx,DWORD [8+esp]
5462	shrd	ecx,ecx,11
5463	and	eax,ebx
5464	xor	ecx,esi
5465	add	edx,DWORD [84+esp]
5466	xor	eax,edi
5467	shrd	ecx,ecx,2
5468	add	eax,edx
5469	add	edx,DWORD [24+esp]
5470	add	eax,ecx
5471	mov	ecx,edx
5472	shrd	edx,edx,14
5473	mov	esi,DWORD [28+esp]
5474	xor	edx,ecx
5475	mov	edi,DWORD [esp]
5476	xor	esi,edi
5477	shrd	edx,edx,5
5478	and	esi,ecx
5479	mov	DWORD [24+esp],ecx
5480	xor	edx,ecx
5481	xor	edi,esi
5482	shrd	edx,edx,6
5483	mov	ecx,eax
5484	add	edx,edi
5485	mov	edi,DWORD [12+esp]
5486	mov	esi,eax
5487	shrd	ecx,ecx,9
5488	mov	DWORD [8+esp],eax
5489	xor	ecx,eax
5490	xor	eax,edi
5491	add	edx,DWORD [4+esp]
5492	shrd	ecx,ecx,11
5493	and	ebx,eax
5494	xor	ecx,esi
5495	add	edx,DWORD [88+esp]
5496	xor	ebx,edi
5497	shrd	ecx,ecx,2
5498	add	ebx,edx
5499	add	edx,DWORD [20+esp]
5500	add	ebx,ecx
5501	mov	ecx,edx
5502	shrd	edx,edx,14
5503	mov	esi,DWORD [24+esp]
5504	xor	edx,ecx
5505	mov	edi,DWORD [28+esp]
5506	xor	esi,edi
5507	shrd	edx,edx,5
5508	and	esi,ecx
5509	mov	DWORD [20+esp],ecx
5510	xor	edx,ecx
5511	xor	edi,esi
5512	shrd	edx,edx,6
5513	mov	ecx,ebx
5514	add	edx,edi
5515	mov	edi,DWORD [8+esp]
5516	mov	esi,ebx
5517	shrd	ecx,ecx,9
5518	mov	DWORD [4+esp],ebx
5519	xor	ecx,ebx
5520	xor	ebx,edi
5521	add	edx,DWORD [esp]
5522	shrd	ecx,ecx,11
5523	and	eax,ebx
5524	xor	ecx,esi
5525	add	edx,DWORD [92+esp]
5526	xor	eax,edi
5527	shrd	ecx,ecx,2
5528	add	eax,edx
5529	add	edx,DWORD [16+esp]
5530	add	eax,ecx
5531	mov	esi,DWORD [96+esp]
5532	xor	ebx,edi
5533	mov	ecx,DWORD [12+esp]
5534	add	eax,DWORD [esi]
5535	add	ebx,DWORD [4+esi]
5536	add	edi,DWORD [8+esi]
5537	add	ecx,DWORD [12+esi]
5538	mov	DWORD [esi],eax
5539	mov	DWORD [4+esi],ebx
5540	mov	DWORD [8+esi],edi
5541	mov	DWORD [12+esi],ecx
5542	mov	DWORD [4+esp],ebx
5543	xor	ebx,edi
5544	mov	DWORD [8+esp],edi
5545	mov	DWORD [12+esp],ecx
5546	mov	edi,DWORD [20+esp]
5547	mov	ecx,DWORD [24+esp]
5548	add	edx,DWORD [16+esi]
5549	add	edi,DWORD [20+esi]
5550	add	ecx,DWORD [24+esi]
5551	mov	DWORD [16+esi],edx
5552	mov	DWORD [20+esi],edi
5553	mov	DWORD [20+esp],edi
5554	mov	edi,DWORD [28+esp]
5555	mov	DWORD [24+esi],ecx
5556	add	edi,DWORD [28+esi]
5557	mov	DWORD [24+esp],ecx
5558	mov	DWORD [28+esi],edi
5559	mov	DWORD [28+esp],edi
5560	mov	edi,DWORD [100+esp]
5561	vmovdqa	xmm7,[64+ebp]
5562	sub	ebp,192
5563	cmp	edi,DWORD [104+esp]
5564	jb	NEAR L$012grand_avx
5565	mov	esp,DWORD [108+esp]
5566	vzeroall
5567	pop	edi
5568	pop	esi
5569	pop	ebx
5570	pop	ebp
5571	ret
5572segment	.bss
5573common	_OPENSSL_ia32cap_P 16
5574