1; 1 "crypto/rc4/rc4-md5-masm-x86_64.S.tmp"
2; 1 "<built-in>" 1
3; 1 "<built-in>" 3
4; 340 "<built-in>" 3
5; 1 "<command line>" 1
6; 1 "<built-in>" 2
7; 1 "crypto/rc4/rc4-md5-masm-x86_64.S.tmp" 2
8OPTION	DOTNAME
9
10; 1 "./crypto/x86_arch.h" 1
11
12
13; 16 "./crypto/x86_arch.h"
14
15
16
17
18
19
20
21
22
23; 40 "./crypto/x86_arch.h"
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69; 3 "crypto/rc4/rc4-md5-masm-x86_64.S.tmp" 2
70.text$	SEGMENT ALIGN(64) 'CODE'
71ALIGN	16
72
73PUBLIC	rc4_md5_enc
74
75rc4_md5_enc	PROC PUBLIC
76	mov	QWORD PTR[8+rsp],rdi	;WIN64 prologue
77	mov	QWORD PTR[16+rsp],rsi
78	mov	rax,rsp
79$L$SEH_begin_rc4_md5_enc::
80	mov	rdi,rcx
81	mov	rsi,rdx
82	mov	rdx,r8
83	mov	rcx,r9
84	mov	r8,QWORD PTR[40+rsp]
85	mov	r9,QWORD PTR[48+rsp]
86
87
88	cmp	r9,0
89	je	$L$abort
90	push	rbx
91	push	rbp
92	push	r12
93	push	r13
94	push	r14
95	push	r15
96	sub	rsp,40
97$L$body::
98	mov	r11,rcx
99	mov	r12,r9
100	mov	r13,rsi
101	mov	r14,rdx
102	mov	r15,r8
103	xor	rbp,rbp
104	xor	rcx,rcx
105
106	lea	rdi,QWORD PTR[8+rdi]
107	mov	bpl,BYTE PTR[((-8))+rdi]
108	mov	cl,BYTE PTR[((-4))+rdi]
109
110	inc	bpl
111	sub	r14,r13
112	mov	eax,DWORD PTR[rbp*4+rdi]
113	add	cl,al
114	lea	rsi,QWORD PTR[rbp*4+rdi]
115	shl	r12,6
116	add	r12,r15
117	mov	QWORD PTR[16+rsp],r12
118
119	mov	QWORD PTR[24+rsp],r11
120	mov	r8d,DWORD PTR[r11]
121	mov	r9d,DWORD PTR[4+r11]
122	mov	r10d,DWORD PTR[8+r11]
123	mov	r11d,DWORD PTR[12+r11]
124	jmp	$L$oop
125
126ALIGN	16
127$L$oop::
128	mov	DWORD PTR[rsp],r8d
129	mov	DWORD PTR[4+rsp],r9d
130	mov	DWORD PTR[8+rsp],r10d
131	mov	r12d,r11d
132	mov	DWORD PTR[12+rsp],r11d
133	pxor	xmm0,xmm0
134	mov	edx,DWORD PTR[rcx*4+rdi]
135	xor	r12d,r10d
136	mov	DWORD PTR[rcx*4+rdi],eax
137	and	r12d,r9d
138	add	r8d,DWORD PTR[r15]
139	add	al,dl
140	mov	ebx,DWORD PTR[4+rsi]
141	add	r8d,3614090360
142	xor	r12d,r11d
143	movzx	eax,al
144	mov	DWORD PTR[rsi],edx
145	add	r8d,r12d
146	add	cl,bl
147	rol	r8d,7
148	mov	r12d,r10d
149	movd	xmm0,DWORD PTR[rax*4+rdi]
150
151	add	r8d,r9d
152	pxor	xmm1,xmm1
153	mov	edx,DWORD PTR[rcx*4+rdi]
154	xor	r12d,r9d
155	mov	DWORD PTR[rcx*4+rdi],ebx
156	and	r12d,r8d
157	add	r11d,DWORD PTR[4+r15]
158	add	bl,dl
159	mov	eax,DWORD PTR[8+rsi]
160	add	r11d,3905402710
161	xor	r12d,r10d
162	movzx	ebx,bl
163	mov	DWORD PTR[4+rsi],edx
164	add	r11d,r12d
165	add	cl,al
166	rol	r11d,12
167	mov	r12d,r9d
168	movd	xmm1,DWORD PTR[rbx*4+rdi]
169
170	add	r11d,r8d
171	mov	edx,DWORD PTR[rcx*4+rdi]
172	xor	r12d,r8d
173	mov	DWORD PTR[rcx*4+rdi],eax
174	and	r12d,r11d
175	add	r10d,DWORD PTR[8+r15]
176	add	al,dl
177	mov	ebx,DWORD PTR[12+rsi]
178	add	r10d,606105819
179	xor	r12d,r9d
180	movzx	eax,al
181	mov	DWORD PTR[8+rsi],edx
182	add	r10d,r12d
183	add	cl,bl
184	rol	r10d,17
185	mov	r12d,r8d
186	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
187
188	add	r10d,r11d
189	mov	edx,DWORD PTR[rcx*4+rdi]
190	xor	r12d,r11d
191	mov	DWORD PTR[rcx*4+rdi],ebx
192	and	r12d,r10d
193	add	r9d,DWORD PTR[12+r15]
194	add	bl,dl
195	mov	eax,DWORD PTR[16+rsi]
196	add	r9d,3250441966
197	xor	r12d,r8d
198	movzx	ebx,bl
199	mov	DWORD PTR[12+rsi],edx
200	add	r9d,r12d
201	add	cl,al
202	rol	r9d,22
203	mov	r12d,r11d
204	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
205
206	add	r9d,r10d
207	mov	edx,DWORD PTR[rcx*4+rdi]
208	xor	r12d,r10d
209	mov	DWORD PTR[rcx*4+rdi],eax
210	and	r12d,r9d
211	add	r8d,DWORD PTR[16+r15]
212	add	al,dl
213	mov	ebx,DWORD PTR[20+rsi]
214	add	r8d,4118548399
215	xor	r12d,r11d
216	movzx	eax,al
217	mov	DWORD PTR[16+rsi],edx
218	add	r8d,r12d
219	add	cl,bl
220	rol	r8d,7
221	mov	r12d,r10d
222	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
223
224	add	r8d,r9d
225	mov	edx,DWORD PTR[rcx*4+rdi]
226	xor	r12d,r9d
227	mov	DWORD PTR[rcx*4+rdi],ebx
228	and	r12d,r8d
229	add	r11d,DWORD PTR[20+r15]
230	add	bl,dl
231	mov	eax,DWORD PTR[24+rsi]
232	add	r11d,1200080426
233	xor	r12d,r10d
234	movzx	ebx,bl
235	mov	DWORD PTR[20+rsi],edx
236	add	r11d,r12d
237	add	cl,al
238	rol	r11d,12
239	mov	r12d,r9d
240	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
241
242	add	r11d,r8d
243	mov	edx,DWORD PTR[rcx*4+rdi]
244	xor	r12d,r8d
245	mov	DWORD PTR[rcx*4+rdi],eax
246	and	r12d,r11d
247	add	r10d,DWORD PTR[24+r15]
248	add	al,dl
249	mov	ebx,DWORD PTR[28+rsi]
250	add	r10d,2821735955
251	xor	r12d,r9d
252	movzx	eax,al
253	mov	DWORD PTR[24+rsi],edx
254	add	r10d,r12d
255	add	cl,bl
256	rol	r10d,17
257	mov	r12d,r8d
258	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
259
260	add	r10d,r11d
261	mov	edx,DWORD PTR[rcx*4+rdi]
262	xor	r12d,r11d
263	mov	DWORD PTR[rcx*4+rdi],ebx
264	and	r12d,r10d
265	add	r9d,DWORD PTR[28+r15]
266	add	bl,dl
267	mov	eax,DWORD PTR[32+rsi]
268	add	r9d,4249261313
269	xor	r12d,r8d
270	movzx	ebx,bl
271	mov	DWORD PTR[28+rsi],edx
272	add	r9d,r12d
273	add	cl,al
274	rol	r9d,22
275	mov	r12d,r11d
276	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
277
278	add	r9d,r10d
279	mov	edx,DWORD PTR[rcx*4+rdi]
280	xor	r12d,r10d
281	mov	DWORD PTR[rcx*4+rdi],eax
282	and	r12d,r9d
283	add	r8d,DWORD PTR[32+r15]
284	add	al,dl
285	mov	ebx,DWORD PTR[36+rsi]
286	add	r8d,1770035416
287	xor	r12d,r11d
288	movzx	eax,al
289	mov	DWORD PTR[32+rsi],edx
290	add	r8d,r12d
291	add	cl,bl
292	rol	r8d,7
293	mov	r12d,r10d
294	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
295
296	add	r8d,r9d
297	mov	edx,DWORD PTR[rcx*4+rdi]
298	xor	r12d,r9d
299	mov	DWORD PTR[rcx*4+rdi],ebx
300	and	r12d,r8d
301	add	r11d,DWORD PTR[36+r15]
302	add	bl,dl
303	mov	eax,DWORD PTR[40+rsi]
304	add	r11d,2336552879
305	xor	r12d,r10d
306	movzx	ebx,bl
307	mov	DWORD PTR[36+rsi],edx
308	add	r11d,r12d
309	add	cl,al
310	rol	r11d,12
311	mov	r12d,r9d
312	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
313
314	add	r11d,r8d
315	mov	edx,DWORD PTR[rcx*4+rdi]
316	xor	r12d,r8d
317	mov	DWORD PTR[rcx*4+rdi],eax
318	and	r12d,r11d
319	add	r10d,DWORD PTR[40+r15]
320	add	al,dl
321	mov	ebx,DWORD PTR[44+rsi]
322	add	r10d,4294925233
323	xor	r12d,r9d
324	movzx	eax,al
325	mov	DWORD PTR[40+rsi],edx
326	add	r10d,r12d
327	add	cl,bl
328	rol	r10d,17
329	mov	r12d,r8d
330	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
331
332	add	r10d,r11d
333	mov	edx,DWORD PTR[rcx*4+rdi]
334	xor	r12d,r11d
335	mov	DWORD PTR[rcx*4+rdi],ebx
336	and	r12d,r10d
337	add	r9d,DWORD PTR[44+r15]
338	add	bl,dl
339	mov	eax,DWORD PTR[48+rsi]
340	add	r9d,2304563134
341	xor	r12d,r8d
342	movzx	ebx,bl
343	mov	DWORD PTR[44+rsi],edx
344	add	r9d,r12d
345	add	cl,al
346	rol	r9d,22
347	mov	r12d,r11d
348	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
349
350	add	r9d,r10d
351	mov	edx,DWORD PTR[rcx*4+rdi]
352	xor	r12d,r10d
353	mov	DWORD PTR[rcx*4+rdi],eax
354	and	r12d,r9d
355	add	r8d,DWORD PTR[48+r15]
356	add	al,dl
357	mov	ebx,DWORD PTR[52+rsi]
358	add	r8d,1804603682
359	xor	r12d,r11d
360	movzx	eax,al
361	mov	DWORD PTR[48+rsi],edx
362	add	r8d,r12d
363	add	cl,bl
364	rol	r8d,7
365	mov	r12d,r10d
366	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
367
368	add	r8d,r9d
369	mov	edx,DWORD PTR[rcx*4+rdi]
370	xor	r12d,r9d
371	mov	DWORD PTR[rcx*4+rdi],ebx
372	and	r12d,r8d
373	add	r11d,DWORD PTR[52+r15]
374	add	bl,dl
375	mov	eax,DWORD PTR[56+rsi]
376	add	r11d,4254626195
377	xor	r12d,r10d
378	movzx	ebx,bl
379	mov	DWORD PTR[52+rsi],edx
380	add	r11d,r12d
381	add	cl,al
382	rol	r11d,12
383	mov	r12d,r9d
384	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
385
386	add	r11d,r8d
387	mov	edx,DWORD PTR[rcx*4+rdi]
388	xor	r12d,r8d
389	mov	DWORD PTR[rcx*4+rdi],eax
390	and	r12d,r11d
391	add	r10d,DWORD PTR[56+r15]
392	add	al,dl
393	mov	ebx,DWORD PTR[60+rsi]
394	add	r10d,2792965006
395	xor	r12d,r9d
396	movzx	eax,al
397	mov	DWORD PTR[56+rsi],edx
398	add	r10d,r12d
399	add	cl,bl
400	rol	r10d,17
401	mov	r12d,r8d
402	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
403
404	add	r10d,r11d
405	movdqu	xmm2,XMMWORD PTR[r13]
406	mov	edx,DWORD PTR[rcx*4+rdi]
407	xor	r12d,r11d
408	mov	DWORD PTR[rcx*4+rdi],ebx
409	and	r12d,r10d
410	add	r9d,DWORD PTR[60+r15]
411	add	bl,dl
412	mov	eax,DWORD PTR[64+rsi]
413	add	r9d,1236535329
414	xor	r12d,r8d
415	movzx	ebx,bl
416	mov	DWORD PTR[60+rsi],edx
417	add	r9d,r12d
418	add	cl,al
419	rol	r9d,22
420	mov	r12d,r10d
421	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
422
423	add	r9d,r10d
424	psllq	xmm1,8
425	pxor	xmm2,xmm0
426	pxor	xmm2,xmm1
427	pxor	xmm0,xmm0
428	mov	edx,DWORD PTR[rcx*4+rdi]
429	xor	r12d,r9d
430	mov	DWORD PTR[rcx*4+rdi],eax
431	and	r12d,r11d
432	add	r8d,DWORD PTR[4+r15]
433	add	al,dl
434	mov	ebx,DWORD PTR[68+rsi]
435	add	r8d,4129170786
436	xor	r12d,r10d
437	movzx	eax,al
438	mov	DWORD PTR[64+rsi],edx
439	add	r8d,r12d
440	add	cl,bl
441	rol	r8d,5
442	mov	r12d,r9d
443	movd	xmm0,DWORD PTR[rax*4+rdi]
444
445	add	r8d,r9d
446	pxor	xmm1,xmm1
447	mov	edx,DWORD PTR[rcx*4+rdi]
448	xor	r12d,r8d
449	mov	DWORD PTR[rcx*4+rdi],ebx
450	and	r12d,r10d
451	add	r11d,DWORD PTR[24+r15]
452	add	bl,dl
453	mov	eax,DWORD PTR[72+rsi]
454	add	r11d,3225465664
455	xor	r12d,r9d
456	movzx	ebx,bl
457	mov	DWORD PTR[68+rsi],edx
458	add	r11d,r12d
459	add	cl,al
460	rol	r11d,9
461	mov	r12d,r8d
462	movd	xmm1,DWORD PTR[rbx*4+rdi]
463
464	add	r11d,r8d
465	mov	edx,DWORD PTR[rcx*4+rdi]
466	xor	r12d,r11d
467	mov	DWORD PTR[rcx*4+rdi],eax
468	and	r12d,r9d
469	add	r10d,DWORD PTR[44+r15]
470	add	al,dl
471	mov	ebx,DWORD PTR[76+rsi]
472	add	r10d,643717713
473	xor	r12d,r8d
474	movzx	eax,al
475	mov	DWORD PTR[72+rsi],edx
476	add	r10d,r12d
477	add	cl,bl
478	rol	r10d,14
479	mov	r12d,r11d
480	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
481
482	add	r10d,r11d
483	mov	edx,DWORD PTR[rcx*4+rdi]
484	xor	r12d,r10d
485	mov	DWORD PTR[rcx*4+rdi],ebx
486	and	r12d,r8d
487	add	r9d,DWORD PTR[r15]
488	add	bl,dl
489	mov	eax,DWORD PTR[80+rsi]
490	add	r9d,3921069994
491	xor	r12d,r11d
492	movzx	ebx,bl
493	mov	DWORD PTR[76+rsi],edx
494	add	r9d,r12d
495	add	cl,al
496	rol	r9d,20
497	mov	r12d,r10d
498	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
499
500	add	r9d,r10d
501	mov	edx,DWORD PTR[rcx*4+rdi]
502	xor	r12d,r9d
503	mov	DWORD PTR[rcx*4+rdi],eax
504	and	r12d,r11d
505	add	r8d,DWORD PTR[20+r15]
506	add	al,dl
507	mov	ebx,DWORD PTR[84+rsi]
508	add	r8d,3593408605
509	xor	r12d,r10d
510	movzx	eax,al
511	mov	DWORD PTR[80+rsi],edx
512	add	r8d,r12d
513	add	cl,bl
514	rol	r8d,5
515	mov	r12d,r9d
516	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
517
518	add	r8d,r9d
519	mov	edx,DWORD PTR[rcx*4+rdi]
520	xor	r12d,r8d
521	mov	DWORD PTR[rcx*4+rdi],ebx
522	and	r12d,r10d
523	add	r11d,DWORD PTR[40+r15]
524	add	bl,dl
525	mov	eax,DWORD PTR[88+rsi]
526	add	r11d,38016083
527	xor	r12d,r9d
528	movzx	ebx,bl
529	mov	DWORD PTR[84+rsi],edx
530	add	r11d,r12d
531	add	cl,al
532	rol	r11d,9
533	mov	r12d,r8d
534	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
535
536	add	r11d,r8d
537	mov	edx,DWORD PTR[rcx*4+rdi]
538	xor	r12d,r11d
539	mov	DWORD PTR[rcx*4+rdi],eax
540	and	r12d,r9d
541	add	r10d,DWORD PTR[60+r15]
542	add	al,dl
543	mov	ebx,DWORD PTR[92+rsi]
544	add	r10d,3634488961
545	xor	r12d,r8d
546	movzx	eax,al
547	mov	DWORD PTR[88+rsi],edx
548	add	r10d,r12d
549	add	cl,bl
550	rol	r10d,14
551	mov	r12d,r11d
552	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
553
554	add	r10d,r11d
555	mov	edx,DWORD PTR[rcx*4+rdi]
556	xor	r12d,r10d
557	mov	DWORD PTR[rcx*4+rdi],ebx
558	and	r12d,r8d
559	add	r9d,DWORD PTR[16+r15]
560	add	bl,dl
561	mov	eax,DWORD PTR[96+rsi]
562	add	r9d,3889429448
563	xor	r12d,r11d
564	movzx	ebx,bl
565	mov	DWORD PTR[92+rsi],edx
566	add	r9d,r12d
567	add	cl,al
568	rol	r9d,20
569	mov	r12d,r10d
570	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
571
572	add	r9d,r10d
573	mov	edx,DWORD PTR[rcx*4+rdi]
574	xor	r12d,r9d
575	mov	DWORD PTR[rcx*4+rdi],eax
576	and	r12d,r11d
577	add	r8d,DWORD PTR[36+r15]
578	add	al,dl
579	mov	ebx,DWORD PTR[100+rsi]
580	add	r8d,568446438
581	xor	r12d,r10d
582	movzx	eax,al
583	mov	DWORD PTR[96+rsi],edx
584	add	r8d,r12d
585	add	cl,bl
586	rol	r8d,5
587	mov	r12d,r9d
588	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
589
590	add	r8d,r9d
591	mov	edx,DWORD PTR[rcx*4+rdi]
592	xor	r12d,r8d
593	mov	DWORD PTR[rcx*4+rdi],ebx
594	and	r12d,r10d
595	add	r11d,DWORD PTR[56+r15]
596	add	bl,dl
597	mov	eax,DWORD PTR[104+rsi]
598	add	r11d,3275163606
599	xor	r12d,r9d
600	movzx	ebx,bl
601	mov	DWORD PTR[100+rsi],edx
602	add	r11d,r12d
603	add	cl,al
604	rol	r11d,9
605	mov	r12d,r8d
606	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
607
608	add	r11d,r8d
609	mov	edx,DWORD PTR[rcx*4+rdi]
610	xor	r12d,r11d
611	mov	DWORD PTR[rcx*4+rdi],eax
612	and	r12d,r9d
613	add	r10d,DWORD PTR[12+r15]
614	add	al,dl
615	mov	ebx,DWORD PTR[108+rsi]
616	add	r10d,4107603335
617	xor	r12d,r8d
618	movzx	eax,al
619	mov	DWORD PTR[104+rsi],edx
620	add	r10d,r12d
621	add	cl,bl
622	rol	r10d,14
623	mov	r12d,r11d
624	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
625
626	add	r10d,r11d
627	mov	edx,DWORD PTR[rcx*4+rdi]
628	xor	r12d,r10d
629	mov	DWORD PTR[rcx*4+rdi],ebx
630	and	r12d,r8d
631	add	r9d,DWORD PTR[32+r15]
632	add	bl,dl
633	mov	eax,DWORD PTR[112+rsi]
634	add	r9d,1163531501
635	xor	r12d,r11d
636	movzx	ebx,bl
637	mov	DWORD PTR[108+rsi],edx
638	add	r9d,r12d
639	add	cl,al
640	rol	r9d,20
641	mov	r12d,r10d
642	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
643
644	add	r9d,r10d
645	mov	edx,DWORD PTR[rcx*4+rdi]
646	xor	r12d,r9d
647	mov	DWORD PTR[rcx*4+rdi],eax
648	and	r12d,r11d
649	add	r8d,DWORD PTR[52+r15]
650	add	al,dl
651	mov	ebx,DWORD PTR[116+rsi]
652	add	r8d,2850285829
653	xor	r12d,r10d
654	movzx	eax,al
655	mov	DWORD PTR[112+rsi],edx
656	add	r8d,r12d
657	add	cl,bl
658	rol	r8d,5
659	mov	r12d,r9d
660	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
661
662	add	r8d,r9d
663	mov	edx,DWORD PTR[rcx*4+rdi]
664	xor	r12d,r8d
665	mov	DWORD PTR[rcx*4+rdi],ebx
666	and	r12d,r10d
667	add	r11d,DWORD PTR[8+r15]
668	add	bl,dl
669	mov	eax,DWORD PTR[120+rsi]
670	add	r11d,4243563512
671	xor	r12d,r9d
672	movzx	ebx,bl
673	mov	DWORD PTR[116+rsi],edx
674	add	r11d,r12d
675	add	cl,al
676	rol	r11d,9
677	mov	r12d,r8d
678	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
679
680	add	r11d,r8d
681	mov	edx,DWORD PTR[rcx*4+rdi]
682	xor	r12d,r11d
683	mov	DWORD PTR[rcx*4+rdi],eax
684	and	r12d,r9d
685	add	r10d,DWORD PTR[28+r15]
686	add	al,dl
687	mov	ebx,DWORD PTR[124+rsi]
688	add	r10d,1735328473
689	xor	r12d,r8d
690	movzx	eax,al
691	mov	DWORD PTR[120+rsi],edx
692	add	r10d,r12d
693	add	cl,bl
694	rol	r10d,14
695	mov	r12d,r11d
696	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
697
698	add	r10d,r11d
699	movdqu	xmm3,XMMWORD PTR[16+r13]
700	add	bpl,32
701	mov	edx,DWORD PTR[rcx*4+rdi]
702	xor	r12d,r10d
703	mov	DWORD PTR[rcx*4+rdi],ebx
704	and	r12d,r8d
705	add	r9d,DWORD PTR[48+r15]
706	add	bl,dl
707	mov	eax,DWORD PTR[rbp*4+rdi]
708	add	r9d,2368359562
709	xor	r12d,r11d
710	movzx	ebx,bl
711	mov	DWORD PTR[124+rsi],edx
712	add	r9d,r12d
713	add	cl,al
714	rol	r9d,20
715	mov	r12d,r11d
716	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
717
718	add	r9d,r10d
719	mov	rsi,rcx
720	xor	rcx,rcx
721	mov	cl,sil
722	lea	rsi,QWORD PTR[rbp*4+rdi]
723	psllq	xmm1,8
724	pxor	xmm3,xmm0
725	pxor	xmm3,xmm1
726	pxor	xmm0,xmm0
727	mov	edx,DWORD PTR[rcx*4+rdi]
728	xor	r12d,r10d
729	mov	DWORD PTR[rcx*4+rdi],eax
730	xor	r12d,r9d
731	add	r8d,DWORD PTR[20+r15]
732	add	al,dl
733	mov	ebx,DWORD PTR[4+rsi]
734	add	r8d,4294588738
735	movzx	eax,al
736	add	r8d,r12d
737	mov	DWORD PTR[rsi],edx
738	add	cl,bl
739	rol	r8d,4
740	mov	r12d,r10d
741	movd	xmm0,DWORD PTR[rax*4+rdi]
742
743	add	r8d,r9d
744	pxor	xmm1,xmm1
745	mov	edx,DWORD PTR[rcx*4+rdi]
746	xor	r12d,r9d
747	mov	DWORD PTR[rcx*4+rdi],ebx
748	xor	r12d,r8d
749	add	r11d,DWORD PTR[32+r15]
750	add	bl,dl
751	mov	eax,DWORD PTR[8+rsi]
752	add	r11d,2272392833
753	movzx	ebx,bl
754	add	r11d,r12d
755	mov	DWORD PTR[4+rsi],edx
756	add	cl,al
757	rol	r11d,11
758	mov	r12d,r9d
759	movd	xmm1,DWORD PTR[rbx*4+rdi]
760
761	add	r11d,r8d
762	mov	edx,DWORD PTR[rcx*4+rdi]
763	xor	r12d,r8d
764	mov	DWORD PTR[rcx*4+rdi],eax
765	xor	r12d,r11d
766	add	r10d,DWORD PTR[44+r15]
767	add	al,dl
768	mov	ebx,DWORD PTR[12+rsi]
769	add	r10d,1839030562
770	movzx	eax,al
771	add	r10d,r12d
772	mov	DWORD PTR[8+rsi],edx
773	add	cl,bl
774	rol	r10d,16
775	mov	r12d,r8d
776	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
777
778	add	r10d,r11d
779	mov	edx,DWORD PTR[rcx*4+rdi]
780	xor	r12d,r11d
781	mov	DWORD PTR[rcx*4+rdi],ebx
782	xor	r12d,r10d
783	add	r9d,DWORD PTR[56+r15]
784	add	bl,dl
785	mov	eax,DWORD PTR[16+rsi]
786	add	r9d,4259657740
787	movzx	ebx,bl
788	add	r9d,r12d
789	mov	DWORD PTR[12+rsi],edx
790	add	cl,al
791	rol	r9d,23
792	mov	r12d,r11d
793	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
794
795	add	r9d,r10d
796	mov	edx,DWORD PTR[rcx*4+rdi]
797	xor	r12d,r10d
798	mov	DWORD PTR[rcx*4+rdi],eax
799	xor	r12d,r9d
800	add	r8d,DWORD PTR[4+r15]
801	add	al,dl
802	mov	ebx,DWORD PTR[20+rsi]
803	add	r8d,2763975236
804	movzx	eax,al
805	add	r8d,r12d
806	mov	DWORD PTR[16+rsi],edx
807	add	cl,bl
808	rol	r8d,4
809	mov	r12d,r10d
810	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
811
812	add	r8d,r9d
813	mov	edx,DWORD PTR[rcx*4+rdi]
814	xor	r12d,r9d
815	mov	DWORD PTR[rcx*4+rdi],ebx
816	xor	r12d,r8d
817	add	r11d,DWORD PTR[16+r15]
818	add	bl,dl
819	mov	eax,DWORD PTR[24+rsi]
820	add	r11d,1272893353
821	movzx	ebx,bl
822	add	r11d,r12d
823	mov	DWORD PTR[20+rsi],edx
824	add	cl,al
825	rol	r11d,11
826	mov	r12d,r9d
827	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
828
829	add	r11d,r8d
830	mov	edx,DWORD PTR[rcx*4+rdi]
831	xor	r12d,r8d
832	mov	DWORD PTR[rcx*4+rdi],eax
833	xor	r12d,r11d
834	add	r10d,DWORD PTR[28+r15]
835	add	al,dl
836	mov	ebx,DWORD PTR[28+rsi]
837	add	r10d,4139469664
838	movzx	eax,al
839	add	r10d,r12d
840	mov	DWORD PTR[24+rsi],edx
841	add	cl,bl
842	rol	r10d,16
843	mov	r12d,r8d
844	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
845
846	add	r10d,r11d
847	mov	edx,DWORD PTR[rcx*4+rdi]
848	xor	r12d,r11d
849	mov	DWORD PTR[rcx*4+rdi],ebx
850	xor	r12d,r10d
851	add	r9d,DWORD PTR[40+r15]
852	add	bl,dl
853	mov	eax,DWORD PTR[32+rsi]
854	add	r9d,3200236656
855	movzx	ebx,bl
856	add	r9d,r12d
857	mov	DWORD PTR[28+rsi],edx
858	add	cl,al
859	rol	r9d,23
860	mov	r12d,r11d
861	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
862
863	add	r9d,r10d
864	mov	edx,DWORD PTR[rcx*4+rdi]
865	xor	r12d,r10d
866	mov	DWORD PTR[rcx*4+rdi],eax
867	xor	r12d,r9d
868	add	r8d,DWORD PTR[52+r15]
869	add	al,dl
870	mov	ebx,DWORD PTR[36+rsi]
871	add	r8d,681279174
872	movzx	eax,al
873	add	r8d,r12d
874	mov	DWORD PTR[32+rsi],edx
875	add	cl,bl
876	rol	r8d,4
877	mov	r12d,r10d
878	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
879
880	add	r8d,r9d
881	mov	edx,DWORD PTR[rcx*4+rdi]
882	xor	r12d,r9d
883	mov	DWORD PTR[rcx*4+rdi],ebx
884	xor	r12d,r8d
885	add	r11d,DWORD PTR[r15]
886	add	bl,dl
887	mov	eax,DWORD PTR[40+rsi]
888	add	r11d,3936430074
889	movzx	ebx,bl
890	add	r11d,r12d
891	mov	DWORD PTR[36+rsi],edx
892	add	cl,al
893	rol	r11d,11
894	mov	r12d,r9d
895	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
896
897	add	r11d,r8d
898	mov	edx,DWORD PTR[rcx*4+rdi]
899	xor	r12d,r8d
900	mov	DWORD PTR[rcx*4+rdi],eax
901	xor	r12d,r11d
902	add	r10d,DWORD PTR[12+r15]
903	add	al,dl
904	mov	ebx,DWORD PTR[44+rsi]
905	add	r10d,3572445317
906	movzx	eax,al
907	add	r10d,r12d
908	mov	DWORD PTR[40+rsi],edx
909	add	cl,bl
910	rol	r10d,16
911	mov	r12d,r8d
912	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
913
914	add	r10d,r11d
915	mov	edx,DWORD PTR[rcx*4+rdi]
916	xor	r12d,r11d
917	mov	DWORD PTR[rcx*4+rdi],ebx
918	xor	r12d,r10d
919	add	r9d,DWORD PTR[24+r15]
920	add	bl,dl
921	mov	eax,DWORD PTR[48+rsi]
922	add	r9d,76029189
923	movzx	ebx,bl
924	add	r9d,r12d
925	mov	DWORD PTR[44+rsi],edx
926	add	cl,al
927	rol	r9d,23
928	mov	r12d,r11d
929	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
930
931	add	r9d,r10d
932	mov	edx,DWORD PTR[rcx*4+rdi]
933	xor	r12d,r10d
934	mov	DWORD PTR[rcx*4+rdi],eax
935	xor	r12d,r9d
936	add	r8d,DWORD PTR[36+r15]
937	add	al,dl
938	mov	ebx,DWORD PTR[52+rsi]
939	add	r8d,3654602809
940	movzx	eax,al
941	add	r8d,r12d
942	mov	DWORD PTR[48+rsi],edx
943	add	cl,bl
944	rol	r8d,4
945	mov	r12d,r10d
946	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
947
948	add	r8d,r9d
949	mov	edx,DWORD PTR[rcx*4+rdi]
950	xor	r12d,r9d
951	mov	DWORD PTR[rcx*4+rdi],ebx
952	xor	r12d,r8d
953	add	r11d,DWORD PTR[48+r15]
954	add	bl,dl
955	mov	eax,DWORD PTR[56+rsi]
956	add	r11d,3873151461
957	movzx	ebx,bl
958	add	r11d,r12d
959	mov	DWORD PTR[52+rsi],edx
960	add	cl,al
961	rol	r11d,11
962	mov	r12d,r9d
963	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
964
965	add	r11d,r8d
966	mov	edx,DWORD PTR[rcx*4+rdi]
967	xor	r12d,r8d
968	mov	DWORD PTR[rcx*4+rdi],eax
969	xor	r12d,r11d
970	add	r10d,DWORD PTR[60+r15]
971	add	al,dl
972	mov	ebx,DWORD PTR[60+rsi]
973	add	r10d,530742520
974	movzx	eax,al
975	add	r10d,r12d
976	mov	DWORD PTR[56+rsi],edx
977	add	cl,bl
978	rol	r10d,16
979	mov	r12d,r8d
980	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
981
982	add	r10d,r11d
983	movdqu	xmm4,XMMWORD PTR[32+r13]
984	mov	edx,DWORD PTR[rcx*4+rdi]
985	xor	r12d,r11d
986	mov	DWORD PTR[rcx*4+rdi],ebx
987	xor	r12d,r10d
988	add	r9d,DWORD PTR[8+r15]
989	add	bl,dl
990	mov	eax,DWORD PTR[64+rsi]
991	add	r9d,3299628645
992	movzx	ebx,bl
993	add	r9d,r12d
994	mov	DWORD PTR[60+rsi],edx
995	add	cl,al
996	rol	r9d,23
997	mov	r12d,-1
998	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
999
1000	add	r9d,r10d
1001	psllq	xmm1,8
1002	pxor	xmm4,xmm0
1003	pxor	xmm4,xmm1
1004	pxor	xmm0,xmm0
1005	mov	edx,DWORD PTR[rcx*4+rdi]
1006	xor	r12d,r11d
1007	mov	DWORD PTR[rcx*4+rdi],eax
1008	or	r12d,r9d
1009	add	r8d,DWORD PTR[r15]
1010	add	al,dl
1011	mov	ebx,DWORD PTR[68+rsi]
1012	add	r8d,4096336452
1013	movzx	eax,al
1014	xor	r12d,r10d
1015	mov	DWORD PTR[64+rsi],edx
1016	add	r8d,r12d
1017	add	cl,bl
1018	rol	r8d,6
1019	mov	r12d,-1
1020	movd	xmm0,DWORD PTR[rax*4+rdi]
1021
1022	add	r8d,r9d
1023	pxor	xmm1,xmm1
1024	mov	edx,DWORD PTR[rcx*4+rdi]
1025	xor	r12d,r10d
1026	mov	DWORD PTR[rcx*4+rdi],ebx
1027	or	r12d,r8d
1028	add	r11d,DWORD PTR[28+r15]
1029	add	bl,dl
1030	mov	eax,DWORD PTR[72+rsi]
1031	add	r11d,1126891415
1032	movzx	ebx,bl
1033	xor	r12d,r9d
1034	mov	DWORD PTR[68+rsi],edx
1035	add	r11d,r12d
1036	add	cl,al
1037	rol	r11d,10
1038	mov	r12d,-1
1039	movd	xmm1,DWORD PTR[rbx*4+rdi]
1040
1041	add	r11d,r8d
1042	mov	edx,DWORD PTR[rcx*4+rdi]
1043	xor	r12d,r9d
1044	mov	DWORD PTR[rcx*4+rdi],eax
1045	or	r12d,r11d
1046	add	r10d,DWORD PTR[56+r15]
1047	add	al,dl
1048	mov	ebx,DWORD PTR[76+rsi]
1049	add	r10d,2878612391
1050	movzx	eax,al
1051	xor	r12d,r8d
1052	mov	DWORD PTR[72+rsi],edx
1053	add	r10d,r12d
1054	add	cl,bl
1055	rol	r10d,15
1056	mov	r12d,-1
1057	pinsrw	xmm0,WORD PTR[rax*4+rdi],1
1058
1059	add	r10d,r11d
1060	mov	edx,DWORD PTR[rcx*4+rdi]
1061	xor	r12d,r8d
1062	mov	DWORD PTR[rcx*4+rdi],ebx
1063	or	r12d,r10d
1064	add	r9d,DWORD PTR[20+r15]
1065	add	bl,dl
1066	mov	eax,DWORD PTR[80+rsi]
1067	add	r9d,4237533241
1068	movzx	ebx,bl
1069	xor	r12d,r11d
1070	mov	DWORD PTR[76+rsi],edx
1071	add	r9d,r12d
1072	add	cl,al
1073	rol	r9d,21
1074	mov	r12d,-1
1075	pinsrw	xmm1,WORD PTR[rbx*4+rdi],1
1076
1077	add	r9d,r10d
1078	mov	edx,DWORD PTR[rcx*4+rdi]
1079	xor	r12d,r11d
1080	mov	DWORD PTR[rcx*4+rdi],eax
1081	or	r12d,r9d
1082	add	r8d,DWORD PTR[48+r15]
1083	add	al,dl
1084	mov	ebx,DWORD PTR[84+rsi]
1085	add	r8d,1700485571
1086	movzx	eax,al
1087	xor	r12d,r10d
1088	mov	DWORD PTR[80+rsi],edx
1089	add	r8d,r12d
1090	add	cl,bl
1091	rol	r8d,6
1092	mov	r12d,-1
1093	pinsrw	xmm0,WORD PTR[rax*4+rdi],2
1094
1095	add	r8d,r9d
1096	mov	edx,DWORD PTR[rcx*4+rdi]
1097	xor	r12d,r10d
1098	mov	DWORD PTR[rcx*4+rdi],ebx
1099	or	r12d,r8d
1100	add	r11d,DWORD PTR[12+r15]
1101	add	bl,dl
1102	mov	eax,DWORD PTR[88+rsi]
1103	add	r11d,2399980690
1104	movzx	ebx,bl
1105	xor	r12d,r9d
1106	mov	DWORD PTR[84+rsi],edx
1107	add	r11d,r12d
1108	add	cl,al
1109	rol	r11d,10
1110	mov	r12d,-1
1111	pinsrw	xmm1,WORD PTR[rbx*4+rdi],2
1112
1113	add	r11d,r8d
1114	mov	edx,DWORD PTR[rcx*4+rdi]
1115	xor	r12d,r9d
1116	mov	DWORD PTR[rcx*4+rdi],eax
1117	or	r12d,r11d
1118	add	r10d,DWORD PTR[40+r15]
1119	add	al,dl
1120	mov	ebx,DWORD PTR[92+rsi]
1121	add	r10d,4293915773
1122	movzx	eax,al
1123	xor	r12d,r8d
1124	mov	DWORD PTR[88+rsi],edx
1125	add	r10d,r12d
1126	add	cl,bl
1127	rol	r10d,15
1128	mov	r12d,-1
1129	pinsrw	xmm0,WORD PTR[rax*4+rdi],3
1130
1131	add	r10d,r11d
1132	mov	edx,DWORD PTR[rcx*4+rdi]
1133	xor	r12d,r8d
1134	mov	DWORD PTR[rcx*4+rdi],ebx
1135	or	r12d,r10d
1136	add	r9d,DWORD PTR[4+r15]
1137	add	bl,dl
1138	mov	eax,DWORD PTR[96+rsi]
1139	add	r9d,2240044497
1140	movzx	ebx,bl
1141	xor	r12d,r11d
1142	mov	DWORD PTR[92+rsi],edx
1143	add	r9d,r12d
1144	add	cl,al
1145	rol	r9d,21
1146	mov	r12d,-1
1147	pinsrw	xmm1,WORD PTR[rbx*4+rdi],3
1148
1149	add	r9d,r10d
1150	mov	edx,DWORD PTR[rcx*4+rdi]
1151	xor	r12d,r11d
1152	mov	DWORD PTR[rcx*4+rdi],eax
1153	or	r12d,r9d
1154	add	r8d,DWORD PTR[32+r15]
1155	add	al,dl
1156	mov	ebx,DWORD PTR[100+rsi]
1157	add	r8d,1873313359
1158	movzx	eax,al
1159	xor	r12d,r10d
1160	mov	DWORD PTR[96+rsi],edx
1161	add	r8d,r12d
1162	add	cl,bl
1163	rol	r8d,6
1164	mov	r12d,-1
1165	pinsrw	xmm0,WORD PTR[rax*4+rdi],4
1166
1167	add	r8d,r9d
1168	mov	edx,DWORD PTR[rcx*4+rdi]
1169	xor	r12d,r10d
1170	mov	DWORD PTR[rcx*4+rdi],ebx
1171	or	r12d,r8d
1172	add	r11d,DWORD PTR[60+r15]
1173	add	bl,dl
1174	mov	eax,DWORD PTR[104+rsi]
1175	add	r11d,4264355552
1176	movzx	ebx,bl
1177	xor	r12d,r9d
1178	mov	DWORD PTR[100+rsi],edx
1179	add	r11d,r12d
1180	add	cl,al
1181	rol	r11d,10
1182	mov	r12d,-1
1183	pinsrw	xmm1,WORD PTR[rbx*4+rdi],4
1184
1185	add	r11d,r8d
1186	mov	edx,DWORD PTR[rcx*4+rdi]
1187	xor	r12d,r9d
1188	mov	DWORD PTR[rcx*4+rdi],eax
1189	or	r12d,r11d
1190	add	r10d,DWORD PTR[24+r15]
1191	add	al,dl
1192	mov	ebx,DWORD PTR[108+rsi]
1193	add	r10d,2734768916
1194	movzx	eax,al
1195	xor	r12d,r8d
1196	mov	DWORD PTR[104+rsi],edx
1197	add	r10d,r12d
1198	add	cl,bl
1199	rol	r10d,15
1200	mov	r12d,-1
1201	pinsrw	xmm0,WORD PTR[rax*4+rdi],5
1202
1203	add	r10d,r11d
1204	mov	edx,DWORD PTR[rcx*4+rdi]
1205	xor	r12d,r8d
1206	mov	DWORD PTR[rcx*4+rdi],ebx
1207	or	r12d,r10d
1208	add	r9d,DWORD PTR[52+r15]
1209	add	bl,dl
1210	mov	eax,DWORD PTR[112+rsi]
1211	add	r9d,1309151649
1212	movzx	ebx,bl
1213	xor	r12d,r11d
1214	mov	DWORD PTR[108+rsi],edx
1215	add	r9d,r12d
1216	add	cl,al
1217	rol	r9d,21
1218	mov	r12d,-1
1219	pinsrw	xmm1,WORD PTR[rbx*4+rdi],5
1220
1221	add	r9d,r10d
1222	mov	edx,DWORD PTR[rcx*4+rdi]
1223	xor	r12d,r11d
1224	mov	DWORD PTR[rcx*4+rdi],eax
1225	or	r12d,r9d
1226	add	r8d,DWORD PTR[16+r15]
1227	add	al,dl
1228	mov	ebx,DWORD PTR[116+rsi]
1229	add	r8d,4149444226
1230	movzx	eax,al
1231	xor	r12d,r10d
1232	mov	DWORD PTR[112+rsi],edx
1233	add	r8d,r12d
1234	add	cl,bl
1235	rol	r8d,6
1236	mov	r12d,-1
1237	pinsrw	xmm0,WORD PTR[rax*4+rdi],6
1238
1239	add	r8d,r9d
1240	mov	edx,DWORD PTR[rcx*4+rdi]
1241	xor	r12d,r10d
1242	mov	DWORD PTR[rcx*4+rdi],ebx
1243	or	r12d,r8d
1244	add	r11d,DWORD PTR[44+r15]
1245	add	bl,dl
1246	mov	eax,DWORD PTR[120+rsi]
1247	add	r11d,3174756917
1248	movzx	ebx,bl
1249	xor	r12d,r9d
1250	mov	DWORD PTR[116+rsi],edx
1251	add	r11d,r12d
1252	add	cl,al
1253	rol	r11d,10
1254	mov	r12d,-1
1255	pinsrw	xmm1,WORD PTR[rbx*4+rdi],6
1256
1257	add	r11d,r8d
1258	mov	edx,DWORD PTR[rcx*4+rdi]
1259	xor	r12d,r9d
1260	mov	DWORD PTR[rcx*4+rdi],eax
1261	or	r12d,r11d
1262	add	r10d,DWORD PTR[8+r15]
1263	add	al,dl
1264	mov	ebx,DWORD PTR[124+rsi]
1265	add	r10d,718787259
1266	movzx	eax,al
1267	xor	r12d,r8d
1268	mov	DWORD PTR[120+rsi],edx
1269	add	r10d,r12d
1270	add	cl,bl
1271	rol	r10d,15
1272	mov	r12d,-1
1273	pinsrw	xmm0,WORD PTR[rax*4+rdi],7
1274
1275	add	r10d,r11d
1276	movdqu	xmm5,XMMWORD PTR[48+r13]
1277	add	bpl,32
1278	mov	edx,DWORD PTR[rcx*4+rdi]
1279	xor	r12d,r8d
1280	mov	DWORD PTR[rcx*4+rdi],ebx
1281	or	r12d,r10d
1282	add	r9d,DWORD PTR[36+r15]
1283	add	bl,dl
1284	mov	eax,DWORD PTR[rbp*4+rdi]
1285	add	r9d,3951481745
1286	movzx	ebx,bl
1287	xor	r12d,r11d
1288	mov	DWORD PTR[124+rsi],edx
1289	add	r9d,r12d
1290	add	cl,al
1291	rol	r9d,21
1292	mov	r12d,-1
1293	pinsrw	xmm1,WORD PTR[rbx*4+rdi],7
1294
1295	add	r9d,r10d
1296	mov	rsi,rbp
1297	xor	rbp,rbp
1298	mov	bpl,sil
1299	mov	rsi,rcx
1300	xor	rcx,rcx
1301	mov	cl,sil
1302	lea	rsi,QWORD PTR[rbp*4+rdi]
1303	psllq	xmm1,8
1304	pxor	xmm5,xmm0
1305	pxor	xmm5,xmm1
1306	add	r8d,DWORD PTR[rsp]
1307	add	r9d,DWORD PTR[4+rsp]
1308	add	r10d,DWORD PTR[8+rsp]
1309	add	r11d,DWORD PTR[12+rsp]
1310
1311	movdqu	XMMWORD PTR[r13*1+r14],xmm2
1312	movdqu	XMMWORD PTR[16+r13*1+r14],xmm3
1313	movdqu	XMMWORD PTR[32+r13*1+r14],xmm4
1314	movdqu	XMMWORD PTR[48+r13*1+r14],xmm5
1315	lea	r15,QWORD PTR[64+r15]
1316	lea	r13,QWORD PTR[64+r13]
1317	cmp	r15,QWORD PTR[16+rsp]
1318	jb	$L$oop
1319
1320	mov	r12,QWORD PTR[24+rsp]
1321	sub	cl,al
1322	mov	DWORD PTR[r12],r8d
1323	mov	DWORD PTR[4+r12],r9d
1324	mov	DWORD PTR[8+r12],r10d
1325	mov	DWORD PTR[12+r12],r11d
1326	sub	bpl,1
1327	mov	DWORD PTR[((-8))+rdi],ebp
1328	mov	DWORD PTR[((-4))+rdi],ecx
1329
1330	mov	r15,QWORD PTR[40+rsp]
1331	mov	r14,QWORD PTR[48+rsp]
1332	mov	r13,QWORD PTR[56+rsp]
1333	mov	r12,QWORD PTR[64+rsp]
1334	mov	rbp,QWORD PTR[72+rsp]
1335	mov	rbx,QWORD PTR[80+rsp]
1336	lea	rsp,QWORD PTR[88+rsp]
1337$L$epilogue::
1338$L$abort::
1339	mov	rdi,QWORD PTR[8+rsp]	;WIN64 epilogue
1340	mov	rsi,QWORD PTR[16+rsp]
1341	DB	0F3h,0C3h		;repret
1342$L$SEH_end_rc4_md5_enc::
1343rc4_md5_enc	ENDP
1344
1345.text$	ENDS
1346END
1347
1348