OLD | NEW |
---|---|
1 OPTION DOTNAME | 1 OPTION DOTNAME |
2 .text$ SEGMENT ALIGN(256) 'CODE' | 2 .text$ SEGMENT ALIGN(256) 'CODE' |
3 EXTERN OPENSSL_ia32cap_P:NEAR | 3 EXTERN OPENSSL_ia32cap_P:NEAR |
4 | 4 |
5 PUBLIC asm_RC4 | 5 PUBLIC asm_RC4 |
6 | 6 |
7 ALIGN 16 | 7 ALIGN 16 |
8 asm_RC4 PROC PUBLIC | 8 asm_RC4 PROC PUBLIC |
9 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue | 9 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue |
10 mov QWORD PTR[16+rsp],rsi | 10 mov QWORD PTR[16+rsp],rsi |
(...skipping 19 matching lines...) Expand all Loading... | |
30 mov r12,rdx | 30 mov r12,rdx |
31 mov r13,rcx | 31 mov r13,rcx |
32 xor r10,r10 | 32 xor r10,r10 |
33 xor rcx,rcx | 33 xor rcx,rcx |
34 | 34 |
35 lea rdi,QWORD PTR[8+rdi] | 35 lea rdi,QWORD PTR[8+rdi] |
36 mov r10b,BYTE PTR[((-8))+rdi] | 36 mov r10b,BYTE PTR[((-8))+rdi] |
37 mov cl,BYTE PTR[((-4))+rdi] | 37 mov cl,BYTE PTR[((-4))+rdi] |
38 cmp DWORD PTR[256+rdi],-1 | 38 cmp DWORD PTR[256+rdi],-1 |
39 je $L$RC4_CHAR | 39 je $L$RC4_CHAR |
40 » lea» r8,QWORD PTR[OPENSSL_ia32cap_P] | 40 » mov» r8d,DWORD PTR[OPENSSL_ia32cap_P] |
agl
2014/10/01 19:35:10
This is obviously not a no-op change on Windows. I
davidben
2014/10/01 19:43:50
Hrm. I'm guessing this is a result the GOTPCREL ch
agl
2014/10/01 20:17:37
Yes, this is a result of the GOT change.
Actually
| |
41 » mov» r8d,DWORD PTR[r8] | |
42 xor rbx,rbx | 41 xor rbx,rbx |
43 inc r10b | 42 inc r10b |
44 sub rbx,r10 | 43 sub rbx,r10 |
45 sub r13,r12 | 44 sub r13,r12 |
46 mov eax,DWORD PTR[r10*4+rdi] | 45 mov eax,DWORD PTR[r10*4+rdi] |
47 test r11,-16 | 46 test r11,-16 |
48 jz $L$loop1 | 47 jz $L$loop1 |
49 bt r8d,30 | 48 bt r8d,30 |
50 jc $L$intel | 49 jc $L$intel |
51 and rbx,7 | 50 and rbx,7 |
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
550 | 549 |
551 lea rdi,QWORD PTR[8+rdi] | 550 lea rdi,QWORD PTR[8+rdi] |
552 lea rdx,QWORD PTR[rsi*1+rdx] | 551 lea rdx,QWORD PTR[rsi*1+rdx] |
553 neg rsi | 552 neg rsi |
554 mov rcx,rsi | 553 mov rcx,rsi |
555 xor eax,eax | 554 xor eax,eax |
556 xor r9,r9 | 555 xor r9,r9 |
557 xor r10,r10 | 556 xor r10,r10 |
558 xor r11,r11 | 557 xor r11,r11 |
559 | 558 |
560 » lea» r8,QWORD PTR[OPENSSL_ia32cap_P] | 559 » mov» r8d,DWORD PTR[OPENSSL_ia32cap_P] |
561 » mov» r8d,DWORD PTR[r8] | |
562 bt r8d,20 | 560 bt r8d,20 |
563 jc $L$c1stloop | 561 jc $L$c1stloop |
564 jmp $L$w1stloop | 562 jmp $L$w1stloop |
565 | 563 |
566 ALIGN 16 | 564 ALIGN 16 |
567 $L$w1stloop:: | 565 $L$w1stloop:: |
568 mov DWORD PTR[rax*4+rdi],eax | 566 mov DWORD PTR[rax*4+rdi],eax |
569 add al,1 | 567 add al,1 |
570 jnc $L$w1stloop | 568 jnc $L$w1stloop |
571 | 569 |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
766 ALIGN 8 | 764 ALIGN 8 |
767 $L$SEH_info_asm_RC4:: | 765 $L$SEH_info_asm_RC4:: |
768 DB 9,0,0,0 | 766 DB 9,0,0,0 |
769 DD imagerel stream_se_handler | 767 DD imagerel stream_se_handler |
770 $L$SEH_info_asm_RC4_set_key:: | 768 $L$SEH_info_asm_RC4_set_key:: |
771 DB 9,0,0,0 | 769 DB 9,0,0,0 |
772 DD imagerel key_se_handler | 770 DD imagerel key_se_handler |
773 | 771 |
774 .xdata ENDS | 772 .xdata ENDS |
775 END | 773 END |
OLD | NEW |