mirror of
https://github.com/oxen-io/session-android.git
synced 2024-12-21 07:27:30 +00:00
1260 lines
22 KiB
ArmAsm
1260 lines
22 KiB
ArmAsm
|
.text
|
||
|
.align 16
|
||
|
|
||
|
.globl rc4_md5_enc
|
||
|
.type rc4_md5_enc,@function
|
||
|
rc4_md5_enc:
|
||
|
cmpq $0,%r9
|
||
|
je .Labort
|
||
|
pushq %rbx
|
||
|
pushq %rbp
|
||
|
pushq %r12
|
||
|
pushq %r13
|
||
|
pushq %r14
|
||
|
pushq %r15
|
||
|
subq $40,%rsp
|
||
|
.Lbody:
|
||
|
movq %rcx,%r11
|
||
|
movq %r9,%r12
|
||
|
movq %rsi,%r13
|
||
|
movq %rdx,%r14
|
||
|
movq %r8,%r15
|
||
|
xorq %rbp,%rbp
|
||
|
xorq %rcx,%rcx
|
||
|
|
||
|
leaq 8(%rdi),%rdi
|
||
|
movb -8(%rdi),%bpl
|
||
|
movb -4(%rdi),%cl
|
||
|
|
||
|
incb %bpl
|
||
|
subq %r13,%r14
|
||
|
movl (%rdi,%rbp,4),%eax
|
||
|
addb %al,%cl
|
||
|
leaq (%rdi,%rbp,4),%rsi
|
||
|
shlq $6,%r12
|
||
|
addq %r15,%r12
|
||
|
movq %r12,16(%rsp)
|
||
|
|
||
|
movq %r11,24(%rsp)
|
||
|
movl 0(%r11),%r8d
|
||
|
movl 4(%r11),%r9d
|
||
|
movl 8(%r11),%r10d
|
||
|
movl 12(%r11),%r11d
|
||
|
jmp .Loop
|
||
|
|
||
|
.align 16
|
||
|
.Loop:
|
||
|
movl %r8d,0(%rsp)
|
||
|
movl %r9d,4(%rsp)
|
||
|
movl %r10d,8(%rsp)
|
||
|
movl %r11d,%r12d
|
||
|
movl %r11d,12(%rsp)
|
||
|
pxor %xmm0,%xmm0
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 0(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 4(%rsi),%ebx
|
||
|
addl $3614090360,%r8d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,0(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $7,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
movd (%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
pxor %xmm1,%xmm1
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 4(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 8(%rsi),%eax
|
||
|
addl $3905402710,%r11d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,4(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $12,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
movd (%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 8(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 12(%rsi),%ebx
|
||
|
addl $606105819,%r10d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,8(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $17,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $1,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 12(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 16(%rsi),%eax
|
||
|
addl $3250441966,%r9d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,12(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $22,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $1,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 16(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 20(%rsi),%ebx
|
||
|
addl $4118548399,%r8d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,16(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $7,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $2,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 20(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 24(%rsi),%eax
|
||
|
addl $1200080426,%r11d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,20(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $12,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $2,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 24(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 28(%rsi),%ebx
|
||
|
addl $2821735955,%r10d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,24(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $17,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $3,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 28(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 32(%rsi),%eax
|
||
|
addl $4249261313,%r9d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,28(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $22,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $3,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 32(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 36(%rsi),%ebx
|
||
|
addl $1770035416,%r8d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,32(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $7,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $4,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 36(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 40(%rsi),%eax
|
||
|
addl $2336552879,%r11d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,36(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $12,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $4,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 40(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 44(%rsi),%ebx
|
||
|
addl $4294925233,%r10d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,40(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $17,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $5,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 44(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 48(%rsi),%eax
|
||
|
addl $2304563134,%r9d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,44(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $22,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $5,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 48(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 52(%rsi),%ebx
|
||
|
addl $1804603682,%r8d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,48(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $7,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $6,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 52(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 56(%rsi),%eax
|
||
|
addl $4254626195,%r11d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,52(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $12,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $6,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 56(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 60(%rsi),%ebx
|
||
|
addl $2792965006,%r10d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,56(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $17,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $7,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movdqu (%r13),%xmm2
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 60(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 64(%rsi),%eax
|
||
|
addl $1236535329,%r9d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,60(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $22,%r9d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $7,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
psllq $8,%xmm1
|
||
|
pxor %xmm0,%xmm2
|
||
|
pxor %xmm1,%xmm2
|
||
|
pxor %xmm0,%xmm0
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 4(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 68(%rsi),%ebx
|
||
|
addl $4129170786,%r8d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,64(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $5,%r8d
|
||
|
movl %r9d,%r12d
|
||
|
movd (%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
pxor %xmm1,%xmm1
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 24(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 72(%rsi),%eax
|
||
|
addl $3225465664,%r11d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,68(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $9,%r11d
|
||
|
movl %r8d,%r12d
|
||
|
movd (%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 44(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 76(%rsi),%ebx
|
||
|
addl $643717713,%r10d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,72(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $14,%r10d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $1,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 0(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 80(%rsi),%eax
|
||
|
addl $3921069994,%r9d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,76(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $20,%r9d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $1,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 20(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 84(%rsi),%ebx
|
||
|
addl $3593408605,%r8d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,80(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $5,%r8d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $2,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 40(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 88(%rsi),%eax
|
||
|
addl $38016083,%r11d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,84(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $9,%r11d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $2,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 60(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 92(%rsi),%ebx
|
||
|
addl $3634488961,%r10d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,88(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $14,%r10d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $3,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 16(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 96(%rsi),%eax
|
||
|
addl $3889429448,%r9d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,92(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $20,%r9d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $3,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 36(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 100(%rsi),%ebx
|
||
|
addl $568446438,%r8d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,96(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $5,%r8d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $4,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 56(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 104(%rsi),%eax
|
||
|
addl $3275163606,%r11d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,100(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $9,%r11d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $4,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 12(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 108(%rsi),%ebx
|
||
|
addl $4107603335,%r10d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,104(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $14,%r10d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $5,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 32(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 112(%rsi),%eax
|
||
|
addl $1163531501,%r9d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,108(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $20,%r9d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $5,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r11d,%r12d
|
||
|
addl 52(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 116(%rsi),%ebx
|
||
|
addl $2850285829,%r8d
|
||
|
xorl %r10d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,112(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $5,%r8d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $6,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r10d,%r12d
|
||
|
addl 8(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 120(%rsi),%eax
|
||
|
addl $4243563512,%r11d
|
||
|
xorl %r9d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,116(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $9,%r11d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $6,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
andl %r9d,%r12d
|
||
|
addl 28(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 124(%rsi),%ebx
|
||
|
addl $1735328473,%r10d
|
||
|
xorl %r8d,%r12d
|
||
|
movzbl %al,%eax
|
||
|
movl %edx,120(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $14,%r10d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $7,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movdqu 16(%r13),%xmm3
|
||
|
addb $32,%bpl
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
andl %r8d,%r12d
|
||
|
addl 48(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 0(%rdi,%rbp,4),%eax
|
||
|
addl $2368359562,%r9d
|
||
|
xorl %r11d,%r12d
|
||
|
movzbl %bl,%ebx
|
||
|
movl %edx,124(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $20,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $7,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movq %rcx,%rsi
|
||
|
xorq %rcx,%rcx
|
||
|
movb %sil,%cl
|
||
|
leaq (%rdi,%rbp,4),%rsi
|
||
|
psllq $8,%xmm1
|
||
|
pxor %xmm0,%xmm3
|
||
|
pxor %xmm1,%xmm3
|
||
|
pxor %xmm0,%xmm0
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r9d,%r12d
|
||
|
addl 20(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 4(%rsi),%ebx
|
||
|
addl $4294588738,%r8d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r8d
|
||
|
movl %edx,0(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $4,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
movd (%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
pxor %xmm1,%xmm1
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r8d,%r12d
|
||
|
addl 32(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 8(%rsi),%eax
|
||
|
addl $2272392833,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r11d
|
||
|
movl %edx,4(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $11,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
movd (%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r11d,%r12d
|
||
|
addl 44(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 12(%rsi),%ebx
|
||
|
addl $1839030562,%r10d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r10d
|
||
|
movl %edx,8(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $16,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $1,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r10d,%r12d
|
||
|
addl 56(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 16(%rsi),%eax
|
||
|
addl $4259657740,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r9d
|
||
|
movl %edx,12(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $23,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $1,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r9d,%r12d
|
||
|
addl 4(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 20(%rsi),%ebx
|
||
|
addl $2763975236,%r8d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r8d
|
||
|
movl %edx,16(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $4,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $2,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r8d,%r12d
|
||
|
addl 16(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 24(%rsi),%eax
|
||
|
addl $1272893353,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r11d
|
||
|
movl %edx,20(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $11,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $2,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r11d,%r12d
|
||
|
addl 28(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 28(%rsi),%ebx
|
||
|
addl $4139469664,%r10d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r10d
|
||
|
movl %edx,24(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $16,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $3,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r10d,%r12d
|
||
|
addl 40(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 32(%rsi),%eax
|
||
|
addl $3200236656,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r9d
|
||
|
movl %edx,28(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $23,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $3,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r9d,%r12d
|
||
|
addl 52(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 36(%rsi),%ebx
|
||
|
addl $681279174,%r8d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r8d
|
||
|
movl %edx,32(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $4,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $4,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r8d,%r12d
|
||
|
addl 0(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 40(%rsi),%eax
|
||
|
addl $3936430074,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r11d
|
||
|
movl %edx,36(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $11,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $4,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r11d,%r12d
|
||
|
addl 12(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 44(%rsi),%ebx
|
||
|
addl $3572445317,%r10d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r10d
|
||
|
movl %edx,40(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $16,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $5,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r10d,%r12d
|
||
|
addl 24(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 48(%rsi),%eax
|
||
|
addl $76029189,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r9d
|
||
|
movl %edx,44(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $23,%r9d
|
||
|
movl %r11d,%r12d
|
||
|
pinsrw $5,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r9d,%r12d
|
||
|
addl 36(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 52(%rsi),%ebx
|
||
|
addl $3654602809,%r8d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r8d
|
||
|
movl %edx,48(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $4,%r8d
|
||
|
movl %r10d,%r12d
|
||
|
pinsrw $6,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r8d,%r12d
|
||
|
addl 48(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 56(%rsi),%eax
|
||
|
addl $3873151461,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r11d
|
||
|
movl %edx,52(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $11,%r11d
|
||
|
movl %r9d,%r12d
|
||
|
pinsrw $6,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
xorl %r11d,%r12d
|
||
|
addl 60(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 60(%rsi),%ebx
|
||
|
addl $530742520,%r10d
|
||
|
movzbl %al,%eax
|
||
|
addl %r12d,%r10d
|
||
|
movl %edx,56(%rsi)
|
||
|
addb %bl,%cl
|
||
|
roll $16,%r10d
|
||
|
movl %r8d,%r12d
|
||
|
pinsrw $7,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movdqu 32(%r13),%xmm4
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
xorl %r10d,%r12d
|
||
|
addl 8(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 64(%rsi),%eax
|
||
|
addl $3299628645,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
addl %r12d,%r9d
|
||
|
movl %edx,60(%rsi)
|
||
|
addb %al,%cl
|
||
|
roll $23,%r9d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $7,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
psllq $8,%xmm1
|
||
|
pxor %xmm0,%xmm4
|
||
|
pxor %xmm1,%xmm4
|
||
|
pxor %xmm0,%xmm0
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r9d,%r12d
|
||
|
addl 0(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 68(%rsi),%ebx
|
||
|
addl $4096336452,%r8d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r10d,%r12d
|
||
|
movl %edx,64(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $6,%r8d
|
||
|
movl $-1,%r12d
|
||
|
movd (%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
pxor %xmm1,%xmm1
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r8d,%r12d
|
||
|
addl 28(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 72(%rsi),%eax
|
||
|
addl $1126891415,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %edx,68(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $10,%r11d
|
||
|
movl $-1,%r12d
|
||
|
movd (%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r11d,%r12d
|
||
|
addl 56(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 76(%rsi),%ebx
|
||
|
addl $2878612391,%r10d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r8d,%r12d
|
||
|
movl %edx,72(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $15,%r10d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $1,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r10d,%r12d
|
||
|
addl 20(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 80(%rsi),%eax
|
||
|
addl $4237533241,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %edx,76(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $21,%r9d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $1,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r9d,%r12d
|
||
|
addl 48(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 84(%rsi),%ebx
|
||
|
addl $1700485571,%r8d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r10d,%r12d
|
||
|
movl %edx,80(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $6,%r8d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $2,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r8d,%r12d
|
||
|
addl 12(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 88(%rsi),%eax
|
||
|
addl $2399980690,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %edx,84(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $10,%r11d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $2,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r11d,%r12d
|
||
|
addl 40(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 92(%rsi),%ebx
|
||
|
addl $4293915773,%r10d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r8d,%r12d
|
||
|
movl %edx,88(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $15,%r10d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $3,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r10d,%r12d
|
||
|
addl 4(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 96(%rsi),%eax
|
||
|
addl $2240044497,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %edx,92(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $21,%r9d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $3,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r9d,%r12d
|
||
|
addl 32(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 100(%rsi),%ebx
|
||
|
addl $1873313359,%r8d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r10d,%r12d
|
||
|
movl %edx,96(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $6,%r8d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $4,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r8d,%r12d
|
||
|
addl 60(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 104(%rsi),%eax
|
||
|
addl $4264355552,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %edx,100(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $10,%r11d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $4,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r11d,%r12d
|
||
|
addl 24(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 108(%rsi),%ebx
|
||
|
addl $2734768916,%r10d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r8d,%r12d
|
||
|
movl %edx,104(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $15,%r10d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $5,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r10d,%r12d
|
||
|
addl 52(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 112(%rsi),%eax
|
||
|
addl $1309151649,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %edx,108(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $21,%r9d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $5,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r9d,%r12d
|
||
|
addl 16(%r15),%r8d
|
||
|
addb %dl,%al
|
||
|
movl 116(%rsi),%ebx
|
||
|
addl $4149444226,%r8d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r10d,%r12d
|
||
|
movl %edx,112(%rsi)
|
||
|
addl %r12d,%r8d
|
||
|
addb %bl,%cl
|
||
|
roll $6,%r8d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $6,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r9d,%r8d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r10d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r8d,%r12d
|
||
|
addl 44(%r15),%r11d
|
||
|
addb %dl,%bl
|
||
|
movl 120(%rsi),%eax
|
||
|
addl $3174756917,%r11d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %edx,116(%rsi)
|
||
|
addl %r12d,%r11d
|
||
|
addb %al,%cl
|
||
|
roll $10,%r11d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $6,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r8d,%r11d
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r9d,%r12d
|
||
|
movl %eax,(%rdi,%rcx,4)
|
||
|
orl %r11d,%r12d
|
||
|
addl 8(%r15),%r10d
|
||
|
addb %dl,%al
|
||
|
movl 124(%rsi),%ebx
|
||
|
addl $718787259,%r10d
|
||
|
movzbl %al,%eax
|
||
|
xorl %r8d,%r12d
|
||
|
movl %edx,120(%rsi)
|
||
|
addl %r12d,%r10d
|
||
|
addb %bl,%cl
|
||
|
roll $15,%r10d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $7,(%rdi,%rax,4),%xmm0
|
||
|
|
||
|
addl %r11d,%r10d
|
||
|
movdqu 48(%r13),%xmm5
|
||
|
addb $32,%bpl
|
||
|
movl (%rdi,%rcx,4),%edx
|
||
|
xorl %r8d,%r12d
|
||
|
movl %ebx,(%rdi,%rcx,4)
|
||
|
orl %r10d,%r12d
|
||
|
addl 36(%r15),%r9d
|
||
|
addb %dl,%bl
|
||
|
movl 0(%rdi,%rbp,4),%eax
|
||
|
addl $3951481745,%r9d
|
||
|
movzbl %bl,%ebx
|
||
|
xorl %r11d,%r12d
|
||
|
movl %edx,124(%rsi)
|
||
|
addl %r12d,%r9d
|
||
|
addb %al,%cl
|
||
|
roll $21,%r9d
|
||
|
movl $-1,%r12d
|
||
|
pinsrw $7,(%rdi,%rbx,4),%xmm1
|
||
|
|
||
|
addl %r10d,%r9d
|
||
|
movq %rbp,%rsi
|
||
|
xorq %rbp,%rbp
|
||
|
movb %sil,%bpl
|
||
|
movq %rcx,%rsi
|
||
|
xorq %rcx,%rcx
|
||
|
movb %sil,%cl
|
||
|
leaq (%rdi,%rbp,4),%rsi
|
||
|
psllq $8,%xmm1
|
||
|
pxor %xmm0,%xmm5
|
||
|
pxor %xmm1,%xmm5
|
||
|
addl 0(%rsp),%r8d
|
||
|
addl 4(%rsp),%r9d
|
||
|
addl 8(%rsp),%r10d
|
||
|
addl 12(%rsp),%r11d
|
||
|
|
||
|
movdqu %xmm2,(%r14,%r13,1)
|
||
|
movdqu %xmm3,16(%r14,%r13,1)
|
||
|
movdqu %xmm4,32(%r14,%r13,1)
|
||
|
movdqu %xmm5,48(%r14,%r13,1)
|
||
|
leaq 64(%r15),%r15
|
||
|
leaq 64(%r13),%r13
|
||
|
cmpq 16(%rsp),%r15
|
||
|
jb .Loop
|
||
|
|
||
|
movq 24(%rsp),%r12
|
||
|
subb %al,%cl
|
||
|
movl %r8d,0(%r12)
|
||
|
movl %r9d,4(%r12)
|
||
|
movl %r10d,8(%r12)
|
||
|
movl %r11d,12(%r12)
|
||
|
subb $1,%bpl
|
||
|
movl %ebp,-8(%rdi)
|
||
|
movl %ecx,-4(%rdi)
|
||
|
|
||
|
movq 40(%rsp),%r15
|
||
|
movq 48(%rsp),%r14
|
||
|
movq 56(%rsp),%r13
|
||
|
movq 64(%rsp),%r12
|
||
|
movq 72(%rsp),%rbp
|
||
|
movq 80(%rsp),%rbx
|
||
|
leaq 88(%rsp),%rsp
|
||
|
.Lepilogue:
|
||
|
.Labort:
|
||
|
.byte 0xf3,0xc3
|
||
|
.size rc4_md5_enc,.-rc4_md5_enc
|