OLD | NEW |
| (Empty) |
1 default rel | |
2 %define XMMWORD | |
3 %define YMMWORD | |
4 %define ZMMWORD | |
5 section .text code align=64 | |
6 | |
7 ALIGN 16 | |
8 | |
9 global md5_block_asm_data_order | |
10 | |
11 md5_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: | |
685 EXTERN __imp_RtlVirtualUnwind | |
686 | |
687 ALIGN 16 | |
688 se_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 | |
766 section .pdata rdata align=4 | |
767 ALIGN 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 | |
772 section .xdata rdata align=8 | |
773 ALIGN 8 | |
774 $L$SEH_info_md5_block_asm_data_order: | |
775 DB 9,0,0,0 | |
776 DD se_handler wrt ..imagebase | |
OLD | NEW |