1default	rel
2%define XMMWORD
3%define YMMWORD
4%define ZMMWORD
5section	.text code align=64
6
7ALIGN	16
8
9global	md5_block_asm_data_order
10
11md5_block_asm_data_order:
12	mov	QWORD[8+rsp],rdi	;WIN64 prologue
13	mov	QWORD[16+rsp],rsi
14	mov	rax,rsp
15$L$SEH_begin_md5_block_asm_data_order:
16	mov	rdi,rcx
17	mov	rsi,rdx
18	mov	rdx,r8
19
20
21	push	rbp
22	push	rbx
23	push	r12
24	push	r14
25	push	r15
26$L$prologue:
27
28
29
30
31	mov	rbp,rdi
32	shl	rdx,6
33	lea	rdi,[rdx*1+rsi]
34	mov	eax,DWORD[rbp]
35	mov	ebx,DWORD[4+rbp]
36	mov	ecx,DWORD[8+rbp]
37	mov	edx,DWORD[12+rbp]
38
39
40
41
42
43
44
45	cmp	rsi,rdi
46	je	NEAR $L$end
47
48
49$L$loop:
50	mov	r8d,eax
51	mov	r9d,ebx
52	mov	r14d,ecx
53	mov	r15d,edx
54	mov	r10d,DWORD[rsi]
55	mov	r11d,edx
56	xor	r11d,ecx
57	lea	eax,[((-680876936))+r10*1+rax]
58	and	r11d,ebx
59	xor	r11d,edx
60	mov	r10d,DWORD[4+rsi]
61	add	eax,r11d
62	rol	eax,7
63	mov	r11d,ecx
64	add	eax,ebx
65	xor	r11d,ebx
66	lea	edx,[((-389564586))+r10*1+rdx]
67	and	r11d,eax
68	xor	r11d,ecx
69	mov	r10d,DWORD[8+rsi]
70	add	edx,r11d
71	rol	edx,12
72	mov	r11d,ebx
73	add	edx,eax
74	xor	r11d,eax
75	lea	ecx,[606105819+r10*1+rcx]
76	and	r11d,edx
77	xor	r11d,ebx
78	mov	r10d,DWORD[12+rsi]
79	add	ecx,r11d
80	rol	ecx,17
81	mov	r11d,eax
82	add	ecx,edx
83	xor	r11d,edx
84	lea	ebx,[((-1044525330))+r10*1+rbx]
85	and	r11d,ecx
86	xor	r11d,eax
87	mov	r10d,DWORD[16+rsi]
88	add	ebx,r11d
89	rol	ebx,22
90	mov	r11d,edx
91	add	ebx,ecx
92	xor	r11d,ecx
93	lea	eax,[((-176418897))+r10*1+rax]
94	and	r11d,ebx
95	xor	r11d,edx
96	mov	r10d,DWORD[20+rsi]
97	add	eax,r11d
98	rol	eax,7
99	mov	r11d,ecx
100	add	eax,ebx
101	xor	r11d,ebx
102	lea	edx,[1200080426+r10*1+rdx]
103	and	r11d,eax
104	xor	r11d,ecx
105	mov	r10d,DWORD[24+rsi]
106	add	edx,r11d
107	rol	edx,12
108	mov	r11d,ebx
109	add	edx,eax
110	xor	r11d,eax
111	lea	ecx,[((-1473231341))+r10*1+rcx]
112	and	r11d,edx
113	xor	r11d,ebx
114	mov	r10d,DWORD[28+rsi]
115	add	ecx,r11d
116	rol	ecx,17
117	mov	r11d,eax
118	add	ecx,edx
119	xor	r11d,edx
120	lea	ebx,[((-45705983))+r10*1+rbx]
121	and	r11d,ecx
122	xor	r11d,eax
123	mov	r10d,DWORD[32+rsi]
124	add	ebx,r11d
125	rol	ebx,22
126	mov	r11d,edx
127	add	ebx,ecx
128	xor	r11d,ecx
129	lea	eax,[1770035416+r10*1+rax]
130	and	r11d,ebx
131	xor	r11d,edx
132	mov	r10d,DWORD[36+rsi]
133	add	eax,r11d
134	rol	eax,7
135	mov	r11d,ecx
136	add	eax,ebx
137	xor	r11d,ebx
138	lea	edx,[((-1958414417))+r10*1+rdx]
139	and	r11d,eax
140	xor	r11d,ecx
141	mov	r10d,DWORD[40+rsi]
142	add	edx,r11d
143	rol	edx,12
144	mov	r11d,ebx
145	add	edx,eax
146	xor	r11d,eax
147	lea	ecx,[((-42063))+r10*1+rcx]
148	and	r11d,edx
149	xor	r11d,ebx
150	mov	r10d,DWORD[44+rsi]
151	add	ecx,r11d
152	rol	ecx,17
153	mov	r11d,eax
154	add	ecx,edx
155	xor	r11d,edx
156	lea	ebx,[((-1990404162))+r10*1+rbx]
157	and	r11d,ecx
158	xor	r11d,eax
159	mov	r10d,DWORD[48+rsi]
160	add	ebx,r11d
161	rol	ebx,22
162	mov	r11d,edx
163	add	ebx,ecx
164	xor	r11d,ecx
165	lea	eax,[1804603682+r10*1+rax]
166	and	r11d,ebx
167	xor	r11d,edx
168	mov	r10d,DWORD[52+rsi]
169	add	eax,r11d
170	rol	eax,7
171	mov	r11d,ecx
172	add	eax,ebx
173	xor	r11d,ebx
174	lea	edx,[((-40341101))+r10*1+rdx]
175	and	r11d,eax
176	xor	r11d,ecx
177	mov	r10d,DWORD[56+rsi]
178	add	edx,r11d
179	rol	edx,12
180	mov	r11d,ebx
181	add	edx,eax
182	xor	r11d,eax
183	lea	ecx,[((-1502002290))+r10*1+rcx]
184	and	r11d,edx
185	xor	r11d,ebx
186	mov	r10d,DWORD[60+rsi]
187	add	ecx,r11d
188	rol	ecx,17
189	mov	r11d,eax
190	add	ecx,edx
191	xor	r11d,edx
192	lea	ebx,[1236535329+r10*1+rbx]
193	and	r11d,ecx
194	xor	r11d,eax
195	mov	r10d,DWORD[rsi]
196	add	ebx,r11d
197	rol	ebx,22
198	mov	r11d,edx
199	add	ebx,ecx
200	mov	r10d,DWORD[4+rsi]
201	mov	r11d,edx
202	mov	r12d,edx
203	not	r11d
204	lea	eax,[((-165796510))+r10*1+rax]
205	and	r12d,ebx
206	and	r11d,ecx
207	mov	r10d,DWORD[24+rsi]
208	or	r12d,r11d
209	mov	r11d,ecx
210	add	eax,r12d
211	mov	r12d,ecx
212	rol	eax,5
213	add	eax,ebx
214	not	r11d
215	lea	edx,[((-1069501632))+r10*1+rdx]
216	and	r12d,eax
217	and	r11d,ebx
218	mov	r10d,DWORD[44+rsi]
219	or	r12d,r11d
220	mov	r11d,ebx
221	add	edx,r12d
222	mov	r12d,ebx
223	rol	edx,9
224	add	edx,eax
225	not	r11d
226	lea	ecx,[643717713+r10*1+rcx]
227	and	r12d,edx
228	and	r11d,eax
229	mov	r10d,DWORD[rsi]
230	or	r12d,r11d
231	mov	r11d,eax
232	add	ecx,r12d
233	mov	r12d,eax
234	rol	ecx,14
235	add	ecx,edx
236	not	r11d
237	lea	ebx,[((-373897302))+r10*1+rbx]
238	and	r12d,ecx
239	and	r11d,edx
240	mov	r10d,DWORD[20+rsi]
241	or	r12d,r11d
242	mov	r11d,edx
243	add	ebx,r12d
244	mov	r12d,edx
245	rol	ebx,20
246	add	ebx,ecx
247	not	r11d
248	lea	eax,[((-701558691))+r10*1+rax]
249	and	r12d,ebx
250	and	r11d,ecx
251	mov	r10d,DWORD[40+rsi]
252	or	r12d,r11d
253	mov	r11d,ecx
254	add	eax,r12d
255	mov	r12d,ecx
256	rol	eax,5
257	add	eax,ebx
258	not	r11d
259	lea	edx,[38016083+r10*1+rdx]
260	and	r12d,eax
261	and	r11d,ebx
262	mov	r10d,DWORD[60+rsi]
263	or	r12d,r11d
264	mov	r11d,ebx
265	add	edx,r12d
266	mov	r12d,ebx
267	rol	edx,9
268	add	edx,eax
269	not	r11d
270	lea	ecx,[((-660478335))+r10*1+rcx]
271	and	r12d,edx
272	and	r11d,eax
273	mov	r10d,DWORD[16+rsi]
274	or	r12d,r11d
275	mov	r11d,eax
276	add	ecx,r12d
277	mov	r12d,eax
278	rol	ecx,14
279	add	ecx,edx
280	not	r11d
281	lea	ebx,[((-405537848))+r10*1+rbx]
282	and	r12d,ecx
283	and	r11d,edx
284	mov	r10d,DWORD[36+rsi]
285	or	r12d,r11d
286	mov	r11d,edx
287	add	ebx,r12d
288	mov	r12d,edx
289	rol	ebx,20
290	add	ebx,ecx
291	not	r11d
292	lea	eax,[568446438+r10*1+rax]
293	and	r12d,ebx
294	and	r11d,ecx
295	mov	r10d,DWORD[56+rsi]
296	or	r12d,r11d
297	mov	r11d,ecx
298	add	eax,r12d
299	mov	r12d,ecx
300	rol	eax,5
301	add	eax,ebx
302	not	r11d
303	lea	edx,[((-1019803690))+r10*1+rdx]
304	and	r12d,eax
305	and	r11d,ebx
306	mov	r10d,DWORD[12+rsi]
307	or	r12d,r11d
308	mov	r11d,ebx
309	add	edx,r12d
310	mov	r12d,ebx
311	rol	edx,9
312	add	edx,eax
313	not	r11d
314	lea	ecx,[((-187363961))+r10*1+rcx]
315	and	r12d,edx
316	and	r11d,eax
317	mov	r10d,DWORD[32+rsi]
318	or	r12d,r11d
319	mov	r11d,eax
320	add	ecx,r12d
321	mov	r12d,eax
322	rol	ecx,14
323	add	ecx,edx
324	not	r11d
325	lea	ebx,[1163531501+r10*1+rbx]
326	and	r12d,ecx
327	and	r11d,edx
328	mov	r10d,DWORD[52+rsi]
329	or	r12d,r11d
330	mov	r11d,edx
331	add	ebx,r12d
332	mov	r12d,edx
333	rol	ebx,20
334	add	ebx,ecx
335	not	r11d
336	lea	eax,[((-1444681467))+r10*1+rax]
337	and	r12d,ebx
338	and	r11d,ecx
339	mov	r10d,DWORD[8+rsi]
340	or	r12d,r11d
341	mov	r11d,ecx
342	add	eax,r12d
343	mov	r12d,ecx
344	rol	eax,5
345	add	eax,ebx
346	not	r11d
347	lea	edx,[((-51403784))+r10*1+rdx]
348	and	r12d,eax
349	and	r11d,ebx
350	mov	r10d,DWORD[28+rsi]
351	or	r12d,r11d
352	mov	r11d,ebx
353	add	edx,r12d
354	mov	r12d,ebx
355	rol	edx,9
356	add	edx,eax
357	not	r11d
358	lea	ecx,[1735328473+r10*1+rcx]
359	and	r12d,edx
360	and	r11d,eax
361	mov	r10d,DWORD[48+rsi]
362	or	r12d,r11d
363	mov	r11d,eax
364	add	ecx,r12d
365	mov	r12d,eax
366	rol	ecx,14
367	add	ecx,edx
368	not	r11d
369	lea	ebx,[((-1926607734))+r10*1+rbx]
370	and	r12d,ecx
371	and	r11d,edx
372	mov	r10d,DWORD[rsi]
373	or	r12d,r11d
374	mov	r11d,edx
375	add	ebx,r12d
376	mov	r12d,edx
377	rol	ebx,20
378	add	ebx,ecx
379	mov	r10d,DWORD[20+rsi]
380	mov	r11d,ecx
381	lea	eax,[((-378558))+r10*1+rax]
382	mov	r10d,DWORD[32+rsi]
383	xor	r11d,edx
384	xor	r11d,ebx
385	add	eax,r11d
386	rol	eax,4
387	mov	r11d,ebx
388	add	eax,ebx
389	lea	edx,[((-2022574463))+r10*1+rdx]
390	mov	r10d,DWORD[44+rsi]
391	xor	r11d,ecx
392	xor	r11d,eax
393	add	edx,r11d
394	rol	edx,11
395	mov	r11d,eax
396	add	edx,eax
397	lea	ecx,[1839030562+r10*1+rcx]
398	mov	r10d,DWORD[56+rsi]
399	xor	r11d,ebx
400	xor	r11d,edx
401	add	ecx,r11d
402	rol	ecx,16
403	mov	r11d,edx
404	add	ecx,edx
405	lea	ebx,[((-35309556))+r10*1+rbx]
406	mov	r10d,DWORD[4+rsi]
407	xor	r11d,eax
408	xor	r11d,ecx
409	add	ebx,r11d
410	rol	ebx,23
411	mov	r11d,ecx
412	add	ebx,ecx
413	lea	eax,[((-1530992060))+r10*1+rax]
414	mov	r10d,DWORD[16+rsi]
415	xor	r11d,edx
416	xor	r11d,ebx
417	add	eax,r11d
418	rol	eax,4
419	mov	r11d,ebx
420	add	eax,ebx
421	lea	edx,[1272893353+r10*1+rdx]
422	mov	r10d,DWORD[28+rsi]
423	xor	r11d,ecx
424	xor	r11d,eax
425	add	edx,r11d
426	rol	edx,11
427	mov	r11d,eax
428	add	edx,eax
429	lea	ecx,[((-155497632))+r10*1+rcx]
430	mov	r10d,DWORD[40+rsi]
431	xor	r11d,ebx
432	xor	r11d,edx
433	add	ecx,r11d
434	rol	ecx,16
435	mov	r11d,edx
436	add	ecx,edx
437	lea	ebx,[((-1094730640))+r10*1+rbx]
438	mov	r10d,DWORD[52+rsi]
439	xor	r11d,eax
440	xor	r11d,ecx
441	add	ebx,r11d
442	rol	ebx,23
443	mov	r11d,ecx
444	add	ebx,ecx
445	lea	eax,[681279174+r10*1+rax]
446	mov	r10d,DWORD[rsi]
447	xor	r11d,edx
448	xor	r11d,ebx
449	add	eax,r11d
450	rol	eax,4
451	mov	r11d,ebx
452	add	eax,ebx
453	lea	edx,[((-358537222))+r10*1+rdx]
454	mov	r10d,DWORD[12+rsi]
455	xor	r11d,ecx
456	xor	r11d,eax
457	add	edx,r11d
458	rol	edx,11
459	mov	r11d,eax
460	add	edx,eax
461	lea	ecx,[((-722521979))+r10*1+rcx]
462	mov	r10d,DWORD[24+rsi]
463	xor	r11d,ebx
464	xor	r11d,edx
465	add	ecx,r11d
466	rol	ecx,16
467	mov	r11d,edx
468	add	ecx,edx
469	lea	ebx,[76029189+r10*1+rbx]
470	mov	r10d,DWORD[36+rsi]
471	xor	r11d,eax
472	xor	r11d,ecx
473	add	ebx,r11d
474	rol	ebx,23
475	mov	r11d,ecx
476	add	ebx,ecx
477	lea	eax,[((-640364487))+r10*1+rax]
478	mov	r10d,DWORD[48+rsi]
479	xor	r11d,edx
480	xor	r11d,ebx
481	add	eax,r11d
482	rol	eax,4
483	mov	r11d,ebx
484	add	eax,ebx
485	lea	edx,[((-421815835))+r10*1+rdx]
486	mov	r10d,DWORD[60+rsi]
487	xor	r11d,ecx
488	xor	r11d,eax
489	add	edx,r11d
490	rol	edx,11
491	mov	r11d,eax
492	add	edx,eax
493	lea	ecx,[530742520+r10*1+rcx]
494	mov	r10d,DWORD[8+rsi]
495	xor	r11d,ebx
496	xor	r11d,edx
497	add	ecx,r11d
498	rol	ecx,16
499	mov	r11d,edx
500	add	ecx,edx
501	lea	ebx,[((-995338651))+r10*1+rbx]
502	mov	r10d,DWORD[rsi]
503	xor	r11d,eax
504	xor	r11d,ecx
505	add	ebx,r11d
506	rol	ebx,23
507	mov	r11d,ecx
508	add	ebx,ecx
509	mov	r10d,DWORD[rsi]
510	mov	r11d,0xffffffff
511	xor	r11d,edx
512	lea	eax,[((-198630844))+r10*1+rax]
513	or	r11d,ebx
514	xor	r11d,ecx
515	add	eax,r11d
516	mov	r10d,DWORD[28+rsi]
517	mov	r11d,0xffffffff
518	rol	eax,6
519	xor	r11d,ecx
520	add	eax,ebx
521	lea	edx,[1126891415+r10*1+rdx]
522	or	r11d,eax
523	xor	r11d,ebx
524	add	edx,r11d
525	mov	r10d,DWORD[56+rsi]
526	mov	r11d,0xffffffff
527	rol	edx,10
528	xor	r11d,ebx
529	add	edx,eax
530	lea	ecx,[((-1416354905))+r10*1+rcx]
531	or	r11d,edx
532	xor	r11d,eax
533	add	ecx,r11d
534	mov	r10d,DWORD[20+rsi]
535	mov	r11d,0xffffffff
536	rol	ecx,15
537	xor	r11d,eax
538	add	ecx,edx
539	lea	ebx,[((-57434055))+r10*1+rbx]
540	or	r11d,ecx
541	xor	r11d,edx
542	add	ebx,r11d
543	mov	r10d,DWORD[48+rsi]
544	mov	r11d,0xffffffff
545	rol	ebx,21
546	xor	r11d,edx
547	add	ebx,ecx
548	lea	eax,[1700485571+r10*1+rax]
549	or	r11d,ebx
550	xor	r11d,ecx
551	add	eax,r11d
552	mov	r10d,DWORD[12+rsi]
553	mov	r11d,0xffffffff
554	rol	eax,6
555	xor	r11d,ecx
556	add	eax,ebx
557	lea	edx,[((-1894986606))+r10*1+rdx]
558	or	r11d,eax
559	xor	r11d,ebx
560	add	edx,r11d
561	mov	r10d,DWORD[40+rsi]
562	mov	r11d,0xffffffff
563	rol	edx,10
564	xor	r11d,ebx
565	add	edx,eax
566	lea	ecx,[((-1051523))+r10*1+rcx]
567	or	r11d,edx
568	xor	r11d,eax
569	add	ecx,r11d
570	mov	r10d,DWORD[4+rsi]
571	mov	r11d,0xffffffff
572	rol	ecx,15
573	xor	r11d,eax
574	add	ecx,edx
575	lea	ebx,[((-2054922799))+r10*1+rbx]
576	or	r11d,ecx
577	xor	r11d,edx
578	add	ebx,r11d
579	mov	r10d,DWORD[32+rsi]
580	mov	r11d,0xffffffff
581	rol	ebx,21
582	xor	r11d,edx
583	add	ebx,ecx
584	lea	eax,[1873313359+r10*1+rax]
585	or	r11d,ebx
586	xor	r11d,ecx
587	add	eax,r11d
588	mov	r10d,DWORD[60+rsi]
589	mov	r11d,0xffffffff
590	rol	eax,6
591	xor	r11d,ecx
592	add	eax,ebx
593	lea	edx,[((-30611744))+r10*1+rdx]
594	or	r11d,eax
595	xor	r11d,ebx
596	add	edx,r11d
597	mov	r10d,DWORD[24+rsi]
598	mov	r11d,0xffffffff
599	rol	edx,10
600	xor	r11d,ebx
601	add	edx,eax
602	lea	ecx,[((-1560198380))+r10*1+rcx]
603	or	r11d,edx
604	xor	r11d,eax
605	add	ecx,r11d
606	mov	r10d,DWORD[52+rsi]
607	mov	r11d,0xffffffff
608	rol	ecx,15
609	xor	r11d,eax
610	add	ecx,edx
611	lea	ebx,[1309151649+r10*1+rbx]
612	or	r11d,ecx
613	xor	r11d,edx
614	add	ebx,r11d
615	mov	r10d,DWORD[16+rsi]
616	mov	r11d,0xffffffff
617	rol	ebx,21
618	xor	r11d,edx
619	add	ebx,ecx
620	lea	eax,[((-145523070))+r10*1+rax]
621	or	r11d,ebx
622	xor	r11d,ecx
623	add	eax,r11d
624	mov	r10d,DWORD[44+rsi]
625	mov	r11d,0xffffffff
626	rol	eax,6
627	xor	r11d,ecx
628	add	eax,ebx
629	lea	edx,[((-1120210379))+r10*1+rdx]
630	or	r11d,eax
631	xor	r11d,ebx
632	add	edx,r11d
633	mov	r10d,DWORD[8+rsi]
634	mov	r11d,0xffffffff
635	rol	edx,10
636	xor	r11d,ebx
637	add	edx,eax
638	lea	ecx,[718787259+r10*1+rcx]
639	or	r11d,edx
640	xor	r11d,eax
641	add	ecx,r11d
642	mov	r10d,DWORD[36+rsi]
643	mov	r11d,0xffffffff
644	rol	ecx,15
645	xor	r11d,eax
646	add	ecx,edx
647	lea	ebx,[((-343485551))+r10*1+rbx]
648	or	r11d,ecx
649	xor	r11d,edx
650	add	ebx,r11d
651	mov	r10d,DWORD[rsi]
652	mov	r11d,0xffffffff
653	rol	ebx,21
654	xor	r11d,edx
655	add	ebx,ecx
656
657	add	eax,r8d
658	add	ebx,r9d
659	add	ecx,r14d
660	add	edx,r15d
661
662
663	add	rsi,64
664	cmp	rsi,rdi
665	jb	NEAR $L$loop
666
667
668$L$end:
669	mov	DWORD[rbp],eax
670	mov	DWORD[4+rbp],ebx
671	mov	DWORD[8+rbp],ecx
672	mov	DWORD[12+rbp],edx
673
674	mov	r15,QWORD[rsp]
675	mov	r14,QWORD[8+rsp]
676	mov	r12,QWORD[16+rsp]
677	mov	rbx,QWORD[24+rsp]
678	mov	rbp,QWORD[32+rsp]
679	add	rsp,40
680$L$epilogue:
681	mov	rdi,QWORD[8+rsp]	;WIN64 epilogue
682	mov	rsi,QWORD[16+rsp]
683	DB	0F3h,0C3h		;repret
684$L$SEH_end_md5_block_asm_data_order:
685EXTERN	__imp_RtlVirtualUnwind
686
687ALIGN	16
688se_handler:
689	push	rsi
690	push	rdi
691	push	rbx
692	push	rbp
693	push	r12
694	push	r13
695	push	r14
696	push	r15
697	pushfq
698	sub	rsp,64
699
700	mov	rax,QWORD[120+r8]
701	mov	rbx,QWORD[248+r8]
702
703	lea	r10,[$L$prologue]
704	cmp	rbx,r10
705	jb	NEAR $L$in_prologue
706
707	mov	rax,QWORD[152+r8]
708
709	lea	r10,[$L$epilogue]
710	cmp	rbx,r10
711	jae	NEAR $L$in_prologue
712
713	lea	rax,[40+rax]
714
715	mov	rbp,QWORD[((-8))+rax]
716	mov	rbx,QWORD[((-16))+rax]
717	mov	r12,QWORD[((-24))+rax]
718	mov	r14,QWORD[((-32))+rax]
719	mov	r15,QWORD[((-40))+rax]
720	mov	QWORD[144+r8],rbx
721	mov	QWORD[160+r8],rbp
722	mov	QWORD[216+r8],r12
723	mov	QWORD[232+r8],r14
724	mov	QWORD[240+r8],r15
725
726$L$in_prologue:
727	mov	rdi,QWORD[8+rax]
728	mov	rsi,QWORD[16+rax]
729	mov	QWORD[152+r8],rax
730	mov	QWORD[168+r8],rsi
731	mov	QWORD[176+r8],rdi
732
733	mov	rdi,QWORD[40+r9]
734	mov	rsi,r8
735	mov	ecx,154
736	DD	0xa548f3fc
737
738	mov	rsi,r9
739	xor	rcx,rcx
740	mov	rdx,QWORD[8+rsi]
741	mov	r8,QWORD[rsi]
742	mov	r9,QWORD[16+rsi]
743	mov	r10,QWORD[40+rsi]
744	lea	r11,[56+rsi]
745	lea	r12,[24+rsi]
746	mov	QWORD[32+rsp],r10
747	mov	QWORD[40+rsp],r11
748	mov	QWORD[48+rsp],r12
749	mov	QWORD[56+rsp],rcx
750	call	QWORD[__imp_RtlVirtualUnwind]
751
752	mov	eax,1
753	add	rsp,64
754	popfq
755	pop	r15
756	pop	r14
757	pop	r13
758	pop	r12
759	pop	rbp
760	pop	rbx
761	pop	rdi
762	pop	rsi
763	DB	0F3h,0C3h		;repret
764
765
766section	.pdata rdata align=4
767ALIGN	4
768	DD	$L$SEH_begin_md5_block_asm_data_order wrt ..imagebase
769	DD	$L$SEH_end_md5_block_asm_data_order wrt ..imagebase
770	DD	$L$SEH_info_md5_block_asm_data_order wrt ..imagebase
771
772section	.xdata rdata align=8
773ALIGN	8
774$L$SEH_info_md5_block_asm_data_order:
775DB	9,0,0,0
776	DD	se_handler wrt ..imagebase
777