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