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