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