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