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