120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.text 220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl RC4 520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type RC4,@function 620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerRC4: orq %rsi,%rsi 820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lentry 920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 1020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lentry: 1120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pushq %rbx 1220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pushq %r12 1320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pushq %r13 1420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lprologue: 1520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rsi,%r11 1620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rdx,%r12 1720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r13 1820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r10,%r10 1920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rcx,%rcx 2020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 2120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%rdi),%rdi 2220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb -8(%rdi),%r10b 2320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb -4(%rdi),%cl 2420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $-1,256(%rdi) 2520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .LRC4_CHAR 2620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl OPENSSL_ia32cap_P(%rip),%r8d 2720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rbx,%rbx 2820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incb %r10b 2920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %r10,%rbx 3020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %r12,%r13 3120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%r10,4),%eax 3220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-16,%r11 3320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lloop1 3420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $30,%r8d 3520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jc .Lintel 3620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $7,%rbx 3720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r10),%rsi 3820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Loop8 3920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %rbx,%r11 4020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop8_warmup: 4120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 4220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 4320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 4420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,(%rdi,%r10,4) 4520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 4620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incb %r10b 4720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rax,4),%edx 4820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%r10,4),%eax 4920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%r12),%dl 5020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%r13,%r12,1) 5120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r12),%r12 5220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decq %rbx 5320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop8_warmup 5420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 5520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r10),%rsi 5620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Loop8 5720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 5820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop8: 5920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 6020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 6120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 6220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 0(%rdi,%rsi,4),%ebx 6320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 6420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,0(%rdi,%r10,4) 6520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 6620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 6720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 6820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 6920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 7020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 4(%rdi,%rsi,4),%eax 7120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 7220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,4(%rdi,%r10,4) 7320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 7420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 7520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 7620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 7720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 7820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 8(%rdi,%rsi,4),%ebx 7920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 8020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,8(%rdi,%r10,4) 8120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 8220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 8320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 8420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 8520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 8620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 12(%rdi,%rsi,4),%eax 8720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 8820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,12(%rdi,%r10,4) 8920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 9020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 9120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 9220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 9320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 9420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 16(%rdi,%rsi,4),%ebx 9520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 9620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,16(%rdi,%r10,4) 9720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 9820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 9920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 10020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 10120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 10220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 20(%rdi,%rsi,4),%eax 10320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 10420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,20(%rdi,%r10,4) 10520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 10620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 10720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 10820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 10920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 11020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 24(%rdi,%rsi,4),%ebx 11120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 11220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,24(%rdi,%r10,4) 11320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 11420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 11520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $8,%sil 11620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 11720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 11820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 11920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl -4(%rdi,%rsi,4),%eax 12020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 12120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,28(%rdi,%r10,4) 12220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 12320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%rdx,4),%r8b 12420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $8,%r10b 12520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorq $8,%r8 12620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $8,%r11 12720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 12820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq (%r12),%r8 12920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r8,(%r13,%r12,1) 13020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%r12),%r12 13120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 13220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-8,%r11 13320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop8 13420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $0,%r11 13520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lloop1 13620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lexit 13720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 13820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 13920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lintel: 14020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-32,%r11 14120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lloop1 14220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $15,%rbx 14320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Loop16_is_hot 14420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %rbx,%r11 14520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop16_warmup: 14620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 14720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 14820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 14920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,(%rdi,%r10,4) 15020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 15120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incb %r10b 15220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rax,4),%edx 15320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%r10,4),%eax 15420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%r12),%dl 15520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%r13,%r12,1) 15620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r12),%r12 15720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decq %rbx 15820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop16_warmup 15920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 16020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%rbx 16120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rcx,%rcx 16220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %bl,%cl 16320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 16420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop16_is_hot: 16520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq (%rdi,%r10,4),%rsi 16620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 16720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 16820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm0 16920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 17020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 17120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 4(%rsi),%ebx 17220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 17320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,0(%rsi) 17420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 17520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $0,(%rdi,%rax,4),%xmm0 17620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Loop16_enter 17720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 17820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop16: 17920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 18020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 18120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm2 18220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner psllq $8,%xmm1 18320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm0 18420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 18520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 18620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 4(%rsi),%ebx 18720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 18820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,0(%rsi) 18920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm1,%xmm2 19020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 19120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $0,(%rdi,%rax,4),%xmm0 19220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm2,(%r13,%r12,1) 19320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%r12),%r12 19420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop16_enter: 19520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 19620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm1,%xmm1 19720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 19820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 19920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 8(%rsi),%eax 20020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 20120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,4(%rsi) 20220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 20320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $0,(%rdi,%rbx,4),%xmm1 20420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 20520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 20620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 20720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 12(%rsi),%ebx 20820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 20920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,8(%rsi) 21020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 21120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $1,(%rdi,%rax,4),%xmm0 21220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 21320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 21420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 21520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 16(%rsi),%eax 21620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 21720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,12(%rsi) 21820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 21920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $1,(%rdi,%rbx,4),%xmm1 22020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 22120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 22220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 22320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 20(%rsi),%ebx 22420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 22520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,16(%rsi) 22620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 22720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $2,(%rdi,%rax,4),%xmm0 22820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 22920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 23020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 23120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 24(%rsi),%eax 23220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 23320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,20(%rsi) 23420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 23520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $2,(%rdi,%rbx,4),%xmm1 23620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 23720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 23820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 23920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 28(%rsi),%ebx 24020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 24120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,24(%rsi) 24220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 24320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $3,(%rdi,%rax,4),%xmm0 24420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 24520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 24620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 24720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 32(%rsi),%eax 24820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 24920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,28(%rsi) 25020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 25120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $3,(%rdi,%rbx,4),%xmm1 25220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 25320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 25420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 25520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 36(%rsi),%ebx 25620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 25720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,32(%rsi) 25820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 25920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $4,(%rdi,%rax,4),%xmm0 26020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 26120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 26220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 26320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 40(%rsi),%eax 26420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 26520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,36(%rsi) 26620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 26720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $4,(%rdi,%rbx,4),%xmm1 26820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 26920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 27020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 27120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 44(%rsi),%ebx 27220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 27320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,40(%rsi) 27420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 27520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $5,(%rdi,%rax,4),%xmm0 27620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 27720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 27820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 27920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 48(%rsi),%eax 28020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 28120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,44(%rsi) 28220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 28320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $5,(%rdi,%rbx,4),%xmm1 28420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 28520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 28620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 28720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 52(%rsi),%ebx 28820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 28920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,48(%rsi) 29020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 29120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $6,(%rdi,%rax,4),%xmm0 29220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 29320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 29420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 29520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 56(%rsi),%eax 29620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 29720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,52(%rsi) 29820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 29920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $6,(%rdi,%rbx,4),%xmm1 30020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 30120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 30220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 30320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 60(%rsi),%ebx 30420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %al,%eax 30520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,56(%rsi) 30620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 30720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $7,(%rdi,%rax,4),%xmm0 30820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $16,%r10b 30920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%r12),%xmm2 31020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 31120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ebx,(%rdi,%rcx,4) 31220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%bl 31320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %bl,%ebx 31420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,60(%rsi) 31520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq (%rdi,%r10,4),%rsi 31620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pinsrw $7,(%rdi,%rbx,4),%xmm1 31720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rsi),%eax 31820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%rbx 31920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rcx,%rcx 32020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $16,%r11 32120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %bl,%cl 32220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-16,%r11 32320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop16 32420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 32520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner psllq $8,%xmm1 32620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm2 32720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm1,%xmm2 32820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm2,(%r13,%r12,1) 32920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%r12),%r12 33020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 33120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $0,%r11 33220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lloop1 33320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lexit 33420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 33520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 33620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lloop1: 33720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 33820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rcx,4),%edx 33920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rcx,4) 34020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %edx,(%rdi,%r10,4) 34120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %dl,%al 34220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incb %r10b 34320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%rax,4),%edx 34420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%r10,4),%eax 34520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%r12),%dl 34620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%r13,%r12,1) 34720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r12),%r12 34820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decq %r11 34920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lloop1 35020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lexit 35120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 35220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 35320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.LRC4_CHAR: 35420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $1,%r10b 35520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%r10,1),%eax 35620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-8,%r11 35720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lcloop1 35820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcloop8 35920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 36020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcloop8: 36120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%r12),%r8d 36220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 4(%r12),%r9d 36320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 36420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r10),%rsi 36520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 36620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %sil,%esi 36720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rsi,1),%ebx 36820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi,%rcx,1) 36920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %rsi,%rcx 37020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%r10,1) 37120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov0 37220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rax,%rbx 37320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov0: 37420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 37520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r8b 37620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r8d 37720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 37820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rsi),%r10 37920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 38020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %r10b,%r10d 38120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%r10,1),%eax 38220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %bl,(%rdi,%rcx,1) 38320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %r10,%rcx 38420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%rsi,1) 38520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov1 38620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rbx,%rax 38720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov1: 38820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 38920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r8b 39020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r8d 39120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 39220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r10),%rsi 39320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 39420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %sil,%esi 39520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rsi,1),%ebx 39620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi,%rcx,1) 39720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %rsi,%rcx 39820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%r10,1) 39920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov2 40020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rax,%rbx 40120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov2: 40220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 40320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r8b 40420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r8d 40520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 40620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rsi),%r10 40720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 40820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %r10b,%r10d 40920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%r10,1),%eax 41020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %bl,(%rdi,%rcx,1) 41120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %r10,%rcx 41220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%rsi,1) 41320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov3 41420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rbx,%rax 41520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov3: 41620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 41720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r8b 41820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r8d 41920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 42020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r10),%rsi 42120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 42220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %sil,%esi 42320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rsi,1),%ebx 42420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi,%rcx,1) 42520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %rsi,%rcx 42620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%r10,1) 42720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov4 42820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rax,%rbx 42920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov4: 43020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 43120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r9b 43220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r9d 43320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 43420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rsi),%r10 43520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 43620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %r10b,%r10d 43720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%r10,1),%eax 43820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %bl,(%rdi,%rcx,1) 43920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %r10,%rcx 44020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%rsi,1) 44120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov5 44220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rbx,%rax 44320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov5: 44420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 44520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r9b 44620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r9d 44720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 44820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r10),%rsi 44920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 45020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %sil,%esi 45120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rsi,1),%ebx 45220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi,%rcx,1) 45320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %rsi,%rcx 45420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%r10,1) 45520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov6 45620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rax,%rbx 45720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov6: 45820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 45920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r9b 46020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r9d 46120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%cl 46220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rsi),%r10 46320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 46420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %r10b,%r10d 46520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%r10,1),%eax 46620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %bl,(%rdi,%rcx,1) 46720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %r10,%rcx 46820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%rsi,1) 46920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcmov7 47020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rbx,%rax 47120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcmov7: 47220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %bl,%dl 47320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%rdi,%rdx,1),%r9b 47420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner rorl $8,%r9d 47520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -8(%r11),%r11 47620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r8d,(%r13) 47720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%r12),%r12 47820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r9d,4(%r13) 47920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%r13),%r13 48020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 48120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $-8,%r11 48220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lcloop8 48320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $0,%r11 48420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lcloop1 48520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lexit 48620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 48720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcloop1: 48820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%cl 48920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %cl,%ecx 49020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rcx,1),%edx 49120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi,%rcx,1) 49220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%rdi,%r10,1) 49320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %al,%dl 49420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $1,%r10b 49520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %dl,%edx 49620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl %r10b,%r10d 49720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%rdx,1),%edx 49820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi,%r10,1),%eax 49920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorb (%r12),%dl 50020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r12),%r12 50120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %dl,(%r13) 50220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%r13),%r13 50320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $1,%r11 50420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lcloop1 50520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lexit 50620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 50720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 50820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lexit: 50920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subb $1,%r10b 51020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,-8(%rdi) 51120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %ecx,-4(%rdi) 51220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 51320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq (%rsp),%r13 51420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq 8(%rsp),%r12 51520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq 16(%rsp),%rbx 51620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $24,%rsp 51720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lepilogue: 51820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 51920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size RC4,.-RC4 52020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl private_RC4_set_key 52120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type private_RC4_set_key,@function 52220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 52320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turnerprivate_RC4_set_key: 52420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 8(%rdi),%rdi 52520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq (%rdx,%rsi,1),%rdx 52620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner negq %rsi 52720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rsi,%rcx 52820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 52920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r9,%r9 53020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r10,%r10 53120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r11,%r11 53220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 53320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl OPENSSL_ia32cap_P(%rip),%r8d 53420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $20,%r8d 53520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jc .Lc1stloop 53620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lw1stloop 53720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 53820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 53920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lw1stloop: 54020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,(%rdi,%rax,4) 54120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $1,%al 54220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lw1stloop 54320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 54420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r9,%r9 54520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r8,%r8 54620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 54720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lw2ndloop: 54820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%r9,4),%r10d 54920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb (%rdx,%rsi,1),%r8b 55020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %r10b,%r8b 55120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $1,%rsi 55220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl (%rdi,%r8,4),%r11d 55320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmovzq %rcx,%rsi 55420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,(%rdi,%r8,4) 55520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r11d,(%rdi,%r9,4) 55620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $1,%r9b 55720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lw2ndloop 55820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lexit_key 55920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 56020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 56120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lc1stloop: 56220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rdi,%rax,1) 56320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $1,%al 56420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lc1stloop 56520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 56620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r9,%r9 56720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %r8,%r8 56820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 56920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lc2ndloop: 57020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%r9,1),%r10b 57120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb (%rdx,%rsi,1),%r8b 57220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb %r10b,%r8b 57320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $1,%rsi 57420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb (%rdi,%r8,1),%r11b 57520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lcnowrap 57620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%rsi 57720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcnowrap: 57820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %r10b,(%rdi,%r8,1) 57920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %r11b,(%rdi,%r9,1) 58020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addb $1,%r9b 58120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lc2ndloop 58220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $-1,256(%rdi) 58320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 58420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 58520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lexit_key: 58620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 58720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,-8(%rdi) 58820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,-4(%rdi) 58920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 59020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size private_RC4_set_key,.-private_RC4_set_key 59120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 59220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl RC4_options 59320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type RC4_options,@function 59420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 59520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' TurnerRC4_options: 59620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq .Lopts(%rip),%rax 59720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl OPENSSL_ia32cap_P(%rip),%edx 59820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $20,%edx 59920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jc .L8xchar 60020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner btl $30,%edx 60120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Ldone 60220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $25,%rax 60320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 60420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L8xchar: 60520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $12,%rax 60620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldone: 60720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 60820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 64 60920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lopts: 61020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 114,99,52,40,56,120,44,105,110,116,41,0 61120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 114,99,52,40,56,120,44,99,104,97,114,41,0 61220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 114,99,52,40,49,54,120,44,105,110,116,41,0 61320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 82,67,52,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 61420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 64 61520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size RC4_options,.-RC4_options 616