Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1074)

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/rc4/rc4-md5-x86_64.asm

Issue 2219933002: Land BoringSSL roll on master (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698