blob: 0509d451635a1f4f4aa3341a890cba7a99146db8 [file] [log] [blame]
#if defined(__x86_64__)
.text
.globl _sha1_block_data_order
.private_extern _sha1_block_data_order
.p2align 4
_sha1_block_data_order:
movl _OPENSSL_ia32cap_P+0(%rip),%r9d
movl _OPENSSL_ia32cap_P+4(%rip),%r8d
movl _OPENSSL_ia32cap_P+8(%rip),%r10d
testl $512,%r8d
jz L$ialu
andl $268435456,%r8d
andl $1073741824,%r9d
orl %r9d,%r8d
cmpl $1342177280,%r8d
je _avx_shortcut
jmp _ssse3_shortcut
.p2align 4
L$ialu:
movq %rsp,%rax
pushq %rbx
pushq %rbp
pushq %r12
pushq %r13
pushq %r14
movq %rdi,%r8
subq $72,%rsp
movq %rsi,%r9
andq $-64,%rsp
movq %rdx,%r10
movq %rax,64(%rsp)
L$prologue:
movl 0(%r8),%esi
movl 4(%r8),%edi
movl 8(%r8),%r11d
movl 12(%r8),%r12d
movl 16(%r8),%r13d
jmp L$loop
.p2align 4
L$loop:
movl 0(%r9),%edx
bswapl %edx
movl 4(%r9),%ebp
movl %r12d,%eax
movl %edx,0(%rsp)
movl %esi,%ecx
bswapl %ebp
xorl %r11d,%eax
roll $5,%ecx
andl %edi,%eax
leal 1518500249(%rdx,%r13,1),%r13d
addl %ecx,%r13d
xorl %r12d,%eax
roll $30,%edi
addl %eax,%r13d
movl 8(%r9),%r14d
movl %r11d,%eax
movl %ebp,4(%rsp)
movl %r13d,%ecx
bswapl %r14d
xorl %edi,%eax
roll $5,%ecx
andl %esi,%eax
leal 1518500249(%rbp,%r12,1),%r12d
addl %ecx,%r12d
xorl %r11d,%eax
roll $30,%esi
addl %eax,%r12d
movl 12(%r9),%edx
movl %edi,%eax
movl %r14d,8(%rsp)
movl %r12d,%ecx
bswapl %edx
xorl %esi,%eax
roll $5,%ecx
andl %r13d,%eax
leal 1518500249(%r14,%r11,1),%r11d
addl %ecx,%r11d
xorl %edi,%eax
roll $30,%r13d
addl %eax,%r11d
movl 16(%r9),%ebp
movl %esi,%eax
movl %edx,12(%rsp)
movl %r11d,%ecx
bswapl %ebp
xorl %r13d,%eax
roll $5,%ecx
andl %r12d,%eax
leal 1518500249(%rdx,%rdi,1),%edi
addl %ecx,%edi
xorl %esi,%eax
roll $30,%r12d
addl %eax,%edi
movl 20(%r9),%r14d
movl %r13d,%eax
movl %ebp,16(%rsp)
movl %edi,%ecx
bswapl %r14d
xorl %r12d,%eax
roll $5,%ecx
andl %r11d,%eax
leal 1518500249(%rbp,%rsi,1),%esi
addl %ecx,%esi
xorl %r13d,%eax
roll $30,%r11d
addl %eax,%esi
movl 24(%r9),%edx
movl %r12d,%eax
movl %r14d,20(%rsp)
movl %esi,%ecx
bswapl %edx
xorl %r11d,%eax
roll $5,%ecx
andl %edi,%eax
leal 1518500249(%r14,%r13,1),%r13d
addl %ecx,%r13d
xorl %r12d,%eax
roll $30,%edi
addl %eax,%r13d
movl 28(%r9),%ebp
movl %r11d,%eax
movl %edx,24(%rsp)
movl %r13d,%ecx
bswapl %ebp
xorl %edi,%eax
roll $5,%ecx
andl %esi,%eax
leal 1518500249(%rdx,%r12,1),%r12d
addl %ecx,%r12d
xorl %r11d,%eax
roll $30,%esi
addl %eax,%r12d
movl 32(%r9),%r14d
movl %edi,%eax
movl %ebp,28(%rsp)
movl %r12d,%ecx
bswapl %r14d
xorl %esi,%eax
roll $5,%ecx
andl %r13d,%eax
leal 1518500249(%rbp,%r11,1),%r11d
addl %ecx,%r11d
xorl %edi,%eax
roll $30,%r13d
addl %eax,%r11d
movl 36(%r9),%edx
movl %esi,%eax
movl %r14d,32(%rsp)
movl %r11d,%ecx
bswapl %edx
xorl %r13d,%eax
roll $5,%ecx
andl %r12d,%eax
leal 1518500249(%r14,%rdi,1),%edi
addl %ecx,%edi
xorl %esi,%eax
roll $30,%r12d
addl %eax,%edi
movl 40(%r9),%ebp
movl %r13d,%eax
movl %edx,36(%rsp)
movl %edi,%ecx
bswapl %ebp
xorl %r12d,%eax
roll $5,%ecx
andl %r11d,%eax
leal 1518500249(%rdx,%rsi,1),%esi
addl %ecx,%esi
xorl %r13d,%eax
roll $30,%r11d
addl %eax,%esi
movl 44(%r9),%r14d
movl %r12d,%eax
movl %ebp,40(%rsp)
movl %esi,%ecx
bswapl %r14d
xorl %r11d,%eax
roll $5,%ecx
andl %edi,%eax
leal 1518500249(%rbp,%r13,1),%r13d
addl %ecx,%r13d
xorl %r12d,%eax
roll $30,%edi
addl %eax,%r13d
movl 48(%r9),%edx
movl %r11d,%eax
movl %r14d,44(%rsp)
movl %r13d,%ecx
bswapl %edx
xorl %edi,%eax
roll $5,%ecx
andl %esi,%eax
leal 1518500249(%r14,%r12,1),%r12d
addl %ecx,%r12d
xorl %r11d,%eax
roll $30,%esi
addl %eax,%r12d
movl 52(%r9),%ebp
movl %edi,%eax
movl %edx,48(%rsp)
movl %r12d,%ecx
bswapl %ebp
xorl %esi,%eax
roll $5,%ecx
andl %r13d,%eax
leal 1518500249(%rdx,%r11,1),%r11d
addl %ecx,%r11d
xorl %edi,%eax
roll $30,%r13d
addl %eax,%r11d
movl 56(%r9),%r14d
movl %esi,%eax
movl %ebp,52(%rsp)
movl %r11d,%ecx
bswapl %r14d
xorl %r13d,%eax
roll $5,%ecx
andl %r12d,%eax
leal 1518500249(%rbp,%rdi,1),%edi
addl %ecx,%edi
xorl %esi,%eax
roll $30,%r12d
addl %eax,%edi
movl 60(%r9),%edx
movl %r13d,%eax
movl %r14d,56(%rsp)
movl %edi,%ecx
bswapl %edx
xorl %r12d,%eax
roll $5,%ecx
andl %r11d,%eax
leal 1518500249(%r14,%rsi,1),%esi
addl %ecx,%esi
xorl %r13d,%eax
roll $30,%r11d
addl %eax,%esi
xorl 0(%rsp),%ebp
movl %r12d,%eax
movl %edx,60(%rsp)
movl %esi,%ecx
xorl 8(%rsp),%ebp
xorl %r11d,%eax
roll $5,%ecx
xorl 32(%rsp),%ebp
andl %edi,%eax
leal 1518500249(%rdx,%r13,1),%r13d
roll $30,%edi
xorl %r12d,%eax
addl %ecx,%r13d
roll $1,%ebp
addl %eax,%r13d
xorl 4(%rsp),%r14d
movl %r11d,%eax
movl %ebp,0(%rsp)
movl %r13d,%ecx
xorl 12(%rsp),%r14d
xorl %edi,%eax
roll $5,%ecx
xorl 36(%rsp),%r14d
andl %esi,%eax
leal 1518500249(%rbp,%r12,1),%r12d
roll $30,%esi
xorl %r11d,%eax
addl %ecx,%r12d
roll $1,%r14d
addl %eax,%r12d
xorl 8(%rsp),%edx
movl %edi,%eax
movl %r14d,4(%rsp)
movl %r12d,%ecx
xorl 16(%rsp),%edx
xorl %esi,%eax
roll $5,%ecx
xorl 40(%rsp),%edx
andl %r13d,%eax
leal 1518500249(%r14,%r11,1),%r11d
roll $30,%r13d
xorl %edi,%eax
addl %ecx,%r11d
roll $1,%edx
addl %eax,%r11d
xorl 12(%rsp),%ebp
movl %esi,%eax
movl %edx,8(%rsp)
movl %r11d,%ecx
xorl 20(%rsp),%ebp
xorl %r13d,%eax
roll $5,%ecx
xorl 44(%rsp),%ebp
andl %r12d,%eax
leal 1518500249(%rdx,%rdi,1),%edi
roll $30,%r12d
xorl %esi,%eax
addl %ecx,%edi
roll $1,%ebp
addl %eax,%edi
xorl 16(%rsp),%r14d
movl %r13d,%eax
movl %ebp,12(%rsp)
movl %edi,%ecx
xorl 24(%rsp),%r14d
xorl %r12d,%eax
roll $5,%ecx
xorl 48(%rsp),%r14d
andl %r11d,%eax
leal 1518500249(%rbp,%rsi,1),%esi
roll $30,%r11d
xorl %r13d,%eax
addl %ecx,%esi
roll $1,%r14d
addl %eax,%esi
xorl 20(%rsp),%edx
movl %edi,%eax
movl %r14d,16(%rsp)
movl %esi,%ecx
xorl 28(%rsp),%edx
xorl %r12d,%eax
roll $5,%ecx
xorl 52(%rsp),%edx
leal 1859775393(%r14,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%edx
xorl 24(%rsp),%ebp
movl %esi,%eax
movl %edx,20(%rsp)
movl %r13d,%ecx
xorl 32(%rsp),%ebp
xorl %r11d,%eax
roll $5,%ecx
xorl 56(%rsp),%ebp
leal 1859775393(%rdx,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%ebp
xorl 28(%rsp),%r14d
movl %r13d,%eax
movl %ebp,24(%rsp)
movl %r12d,%ecx
xorl 36(%rsp),%r14d
xorl %edi,%eax
roll $5,%ecx
xorl 60(%rsp),%r14d
leal 1859775393(%rbp,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%r14d
xorl 32(%rsp),%edx
movl %r12d,%eax
movl %r14d,28(%rsp)
movl %r11d,%ecx
xorl 40(%rsp),%edx
xorl %esi,%eax
roll $5,%ecx
xorl 0(%rsp),%edx
leal 1859775393(%r14,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%edx
xorl 36(%rsp),%ebp
movl %r11d,%eax
movl %edx,32(%rsp)
movl %edi,%ecx
xorl 44(%rsp),%ebp
xorl %r13d,%eax
roll $5,%ecx
xorl 4(%rsp),%ebp
leal 1859775393(%rdx,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%ebp
xorl 40(%rsp),%r14d
movl %edi,%eax
movl %ebp,36(%rsp)
movl %esi,%ecx
xorl 48(%rsp),%r14d
xorl %r12d,%eax
roll $5,%ecx
xorl 8(%rsp),%r14d
leal 1859775393(%rbp,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%r14d
xorl 44(%rsp),%edx
movl %esi,%eax
movl %r14d,40(%rsp)
movl %r13d,%ecx
xorl 52(%rsp),%edx
xorl %r11d,%eax
roll $5,%ecx
xorl 12(%rsp),%edx
leal 1859775393(%r14,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%edx
xorl 48(%rsp),%ebp
movl %r13d,%eax
movl %edx,44(%rsp)
movl %r12d,%ecx
xorl 56(%rsp),%ebp
xorl %edi,%eax
roll $5,%ecx
xorl 16(%rsp),%ebp
leal 1859775393(%rdx,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%ebp
xorl 52(%rsp),%r14d
movl %r12d,%eax
movl %ebp,48(%rsp)
movl %r11d,%ecx
xorl 60(%rsp),%r14d
xorl %esi,%eax
roll $5,%ecx
xorl 20(%rsp),%r14d
leal 1859775393(%rbp,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%r14d
xorl 56(%rsp),%edx
movl %r11d,%eax
movl %r14d,52(%rsp)
movl %edi,%ecx
xorl 0(%rsp),%edx
xorl %r13d,%eax
roll $5,%ecx
xorl 24(%rsp),%edx
leal 1859775393(%r14,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%edx
xorl 60(%rsp),%ebp
movl %edi,%eax
movl %edx,56(%rsp)
movl %esi,%ecx
xorl 4(%rsp),%ebp
xorl %r12d,%eax
roll $5,%ecx
xorl 28(%rsp),%ebp
leal 1859775393(%rdx,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%ebp
xorl 0(%rsp),%r14d
movl %esi,%eax
movl %ebp,60(%rsp)
movl %r13d,%ecx
xorl 8(%rsp),%r14d
xorl %r11d,%eax
roll $5,%ecx
xorl 32(%rsp),%r14d
leal 1859775393(%rbp,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%r14d
xorl 4(%rsp),%edx
movl %r13d,%eax
movl %r14d,0(%rsp)
movl %r12d,%ecx
xorl 12(%rsp),%edx
xorl %edi,%eax
roll $5,%ecx
xorl 36(%rsp),%edx
leal 1859775393(%r14,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%edx
xorl 8(%rsp),%ebp
movl %r12d,%eax
movl %edx,4(%rsp)
movl %r11d,%ecx
xorl 16(%rsp),%ebp
xorl %esi,%eax
roll $5,%ecx
xorl 40(%rsp),%ebp
leal 1859775393(%rdx,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%ebp
xorl 12(%rsp),%r14d
movl %r11d,%eax
movl %ebp,8(%rsp)
movl %edi,%ecx
xorl 20(%rsp),%r14d
xorl %r13d,%eax
roll $5,%ecx
xorl 44(%rsp),%r14d
leal 1859775393(%rbp,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%r14d
xorl 16(%rsp),%edx
movl %edi,%eax
movl %r14d,12(%rsp)
movl %esi,%ecx
xorl 24(%rsp),%edx
xorl %r12d,%eax
roll $5,%ecx
xorl 48(%rsp),%edx
leal 1859775393(%r14,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%edx
xorl 20(%rsp),%ebp
movl %esi,%eax
movl %edx,16(%rsp)
movl %r13d,%ecx
xorl 28(%rsp),%ebp
xorl %r11d,%eax
roll $5,%ecx
xorl 52(%rsp),%ebp
leal 1859775393(%rdx,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%ebp
xorl 24(%rsp),%r14d
movl %r13d,%eax
movl %ebp,20(%rsp)
movl %r12d,%ecx
xorl 32(%rsp),%r14d
xorl %edi,%eax
roll $5,%ecx
xorl 56(%rsp),%r14d
leal 1859775393(%rbp,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%r14d
xorl 28(%rsp),%edx
movl %r12d,%eax
movl %r14d,24(%rsp)
movl %r11d,%ecx
xorl 36(%rsp),%edx
xorl %esi,%eax
roll $5,%ecx
xorl 60(%rsp),%edx
leal 1859775393(%r14,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%edx
xorl 32(%rsp),%ebp
movl %r11d,%eax
movl %edx,28(%rsp)
movl %edi,%ecx
xorl 40(%rsp),%ebp
xorl %r13d,%eax
roll $5,%ecx
xorl 0(%rsp),%ebp
leal 1859775393(%rdx,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%ebp
xorl 36(%rsp),%r14d
movl %r12d,%eax
movl %ebp,32(%rsp)
movl %r12d,%ebx
xorl 44(%rsp),%r14d
andl %r11d,%eax
movl %esi,%ecx
xorl 4(%rsp),%r14d
leal -1894007588(%rbp,%r13,1),%r13d
xorl %r11d,%ebx
roll $5,%ecx
addl %eax,%r13d
roll $1,%r14d
andl %edi,%ebx
addl %ecx,%r13d
roll $30,%edi
addl %ebx,%r13d
xorl 40(%rsp),%edx
movl %r11d,%eax
movl %r14d,36(%rsp)
movl %r11d,%ebx
xorl 48(%rsp),%edx
andl %edi,%eax
movl %r13d,%ecx
xorl 8(%rsp),%edx
leal -1894007588(%r14,%r12,1),%r12d
xorl %edi,%ebx
roll $5,%ecx
addl %eax,%r12d
roll $1,%edx
andl %esi,%ebx
addl %ecx,%r12d
roll $30,%esi
addl %ebx,%r12d
xorl 44(%rsp),%ebp
movl %edi,%eax
movl %edx,40(%rsp)
movl %edi,%ebx
xorl 52(%rsp),%ebp
andl %esi,%eax
movl %r12d,%ecx
xorl 12(%rsp),%ebp
leal -1894007588(%rdx,%r11,1),%r11d
xorl %esi,%ebx
roll $5,%ecx
addl %eax,%r11d
roll $1,%ebp
andl %r13d,%ebx
addl %ecx,%r11d
roll $30,%r13d
addl %ebx,%r11d
xorl 48(%rsp),%r14d
movl %esi,%eax
movl %ebp,44(%rsp)
movl %esi,%ebx
xorl 56(%rsp),%r14d
andl %r13d,%eax
movl %r11d,%ecx
xorl 16(%rsp),%r14d
leal -1894007588(%rbp,%rdi,1),%edi
xorl %r13d,%ebx
roll $5,%ecx
addl %eax,%edi
roll $1,%r14d
andl %r12d,%ebx
addl %ecx,%edi
roll $30,%r12d
addl %ebx,%edi
xorl 52(%rsp),%edx
movl %r13d,%eax
movl %r14d,48(%rsp)
movl %r13d,%ebx
xorl 60(%rsp),%edx
andl %r12d,%eax
movl %edi,%ecx
xorl 20(%rsp),%edx
leal -1894007588(%r14,%rsi,1),%esi
xorl %r12d,%ebx
roll $5,%ecx
addl %eax,%esi
roll $1,%edx
andl %r11d,%ebx
addl %ecx,%esi
roll $30,%r11d
addl %ebx,%esi
xorl 56(%rsp),%ebp
movl %r12d,%eax
movl %edx,52(%rsp)
movl %r12d,%ebx
xorl 0(%rsp),%ebp
andl %r11d,%eax
movl %esi,%ecx
xorl 24(%rsp),%ebp
leal -1894007588(%rdx,%r13,1),%r13d
xorl %r11d,%ebx
roll $5,%ecx
addl %eax,%r13d
roll $1,%ebp
andl %edi,%ebx
addl %ecx,%r13d
roll $30,%edi
addl %ebx,%r13d
xorl 60(%rsp),%r14d
movl %r11d,%eax
movl %ebp,56(%rsp)
movl %r11d,%ebx
xorl 4(%rsp),%r14d
andl %edi,%eax
movl %r13d,%ecx
xorl 28(%rsp),%r14d
leal -1894007588(%rbp,%r12,1),%r12d
xorl %edi,%ebx
roll $5,%ecx
addl %eax,%r12d
roll $1,%r14d
andl %esi,%ebx
addl %ecx,%r12d
roll $30,%esi
addl %ebx,%r12d
xorl 0(%rsp),%edx
movl %edi,%eax
movl %r14d,60(%rsp)
movl %edi,%ebx
xorl 8(%rsp),%edx
andl %esi,%eax
movl %r12d,%ecx
xorl 32(%rsp),%edx
leal -1894007588(%r14,%r11,1),%r11d
xorl %esi,%ebx
roll $5,%ecx
addl %eax,%r11d
roll $1,%edx
andl %r13d,%ebx
addl %ecx,%r11d
roll $30,%r13d
addl %ebx,%r11d
xorl 4(%rsp),%ebp
movl %esi,%eax
movl %edx,0(%rsp)
movl %esi,%ebx
xorl 12(%rsp),%ebp
andl %r13d,%eax
movl %r11d,%ecx
xorl 36(%rsp),%ebp
leal -1894007588(%rdx,%rdi,1),%edi
xorl %r13d,%ebx
roll $5,%ecx
addl %eax,%edi
roll $1,%ebp
andl %r12d,%ebx
addl %ecx,%edi
roll $30,%r12d
addl %ebx,%edi
xorl 8(%rsp),%r14d
movl %r13d,%eax
movl %ebp,4(%rsp)
movl %r13d,%ebx
xorl 16(%rsp),%r14d
andl %r12d,%eax
movl %edi,%ecx
xorl 40(%rsp),%r14d
leal -1894007588(%rbp,%rsi,1),%esi
xorl %r12d,%ebx
roll $5,%ecx
addl %eax,%esi
roll $1,%r14d
andl %r11d,%ebx
addl %ecx,%esi
roll $30,%r11d
addl %ebx,%esi
xorl 12(%rsp),%edx
movl %r12d,%eax
movl %r14d,8(%rsp)
movl %r12d,%ebx
xorl 20(%rsp),%edx
andl %r11d,%eax
movl %esi,%ecx
xorl 44(%rsp),%edx
leal -1894007588(%r14,%r13,1),%r13d
xorl %r11d,%ebx
roll $5,%ecx
addl %eax,%r13d
roll $1,%edx
andl %edi,%ebx
addl %ecx,%r13d
roll $30,%edi
addl %ebx,%r13d
xorl 16(%rsp),%ebp
movl %r11d,%eax
movl %edx,12(%rsp)
movl %r11d,%ebx
xorl 24(%rsp),%ebp
andl %edi,%eax
movl %r13d,%ecx
xorl 48(%rsp),%ebp
leal -1894007588(%rdx,%r12,1),%r12d
xorl %edi,%ebx
roll $5,%ecx
addl %eax,%r12d
roll $1,%ebp
andl %esi,%ebx
addl %ecx,%r12d
roll $30,%esi
addl %ebx,%r12d
xorl 20(%rsp),%r14d
movl %edi,%eax
movl %ebp,16(%rsp)
movl %edi,%ebx
xorl 28(%rsp),%r14d
andl %esi,%eax
movl %r12d,%ecx
xorl 52(%rsp),%r14d
leal -1894007588(%rbp,%r11,1),%r11d
xorl %esi,%ebx
roll $5,%ecx
addl %eax,%r11d
roll $1,%r14d
andl %r13d,%ebx
addl %ecx,%r11d
roll $30,%r13d
addl %ebx,%r11d
xorl 24(%rsp),%edx
movl %esi,%eax
movl %r14d,20(%rsp)
movl %esi,%ebx
xorl 32(%rsp),%edx
andl %r13d,%eax
movl %r11d,%ecx
xorl 56(%rsp),%edx
leal -1894007588(%r14,%rdi,1),%edi
xorl %r13d,%ebx
roll $5,%ecx
addl %eax,%edi
roll $1,%edx
andl %r12d,%ebx
addl %ecx,%edi
roll $30,%r12d
addl %ebx,%edi
xorl 28(%rsp),%ebp
movl %r13d,%eax
movl %edx,24(%rsp)
movl %r13d,%ebx
xorl 36(%rsp),%ebp
andl %r12d,%eax
movl %edi,%ecx
xorl 60(%rsp),%ebp
leal -1894007588(%rdx,%rsi,1),%esi
xorl %r12d,%ebx
roll $5,%ecx
addl %eax,%esi
roll $1,%ebp
andl %r11d,%ebx
addl %ecx,%esi
roll $30,%r11d
addl %ebx,%esi
xorl 32(%rsp),%r14d
movl %r12d,%eax
movl %ebp,28(%rsp)
movl %r12d,%ebx
xorl 40(%rsp),%r14d
andl %r11d,%eax
movl %esi,%ecx
xorl 0(%rsp),%r14d
leal -1894007588(%rbp,%r13,1),%r13d
xorl %r11d,%ebx
roll $5,%ecx
addl %eax,%r13d
roll $1,%r14d
andl %edi,%ebx
addl %ecx,%r13d
roll $30,%edi
addl %ebx,%r13d
xorl 36(%rsp),%edx
movl %r11d,%eax
movl %r14d,32(%rsp)
movl %r11d,%ebx
xorl 44(%rsp),%edx
andl %edi,%eax
movl %r13d,%ecx
xorl 4(%rsp),%edx
leal -1894007588(%r14,%r12,1),%r12d
xorl %edi,%ebx
roll $5,%ecx
addl %eax,%r12d
roll $1,%edx
andl %esi,%ebx
addl %ecx,%r12d
roll $30,%esi
addl %ebx,%r12d
xorl 40(%rsp),%ebp
movl %edi,%eax
movl %edx,36(%rsp)
movl %edi,%ebx
xorl 48(%rsp),%ebp
andl %esi,%eax
movl %r12d,%ecx
xorl 8(%rsp),%ebp
leal -1894007588(%rdx,%r11,1),%r11d
xorl %esi,%ebx
roll $5,%ecx
addl %eax,%r11d
roll $1,%ebp
andl %r13d,%ebx
addl %ecx,%r11d
roll $30,%r13d
addl %ebx,%r11d
xorl 44(%rsp),%r14d
movl %esi,%eax
movl %ebp,40(%rsp)
movl %esi,%ebx
xorl 52(%rsp),%r14d
andl %r13d,%eax
movl %r11d,%ecx
xorl 12(%rsp),%r14d
leal -1894007588(%rbp,%rdi,1),%edi
xorl %r13d,%ebx
roll $5,%ecx
addl %eax,%edi
roll $1,%r14d
andl %r12d,%ebx
addl %ecx,%edi
roll $30,%r12d
addl %ebx,%edi
xorl 48(%rsp),%edx
movl %r13d,%eax
movl %r14d,44(%rsp)
movl %r13d,%ebx
xorl 56(%rsp),%edx
andl %r12d,%eax
movl %edi,%ecx
xorl 16(%rsp),%edx
leal -1894007588(%r14,%rsi,1),%esi
xorl %r12d,%ebx
roll $5,%ecx
addl %eax,%esi
roll $1,%edx
andl %r11d,%ebx
addl %ecx,%esi
roll $30,%r11d
addl %ebx,%esi
xorl 52(%rsp),%ebp
movl %edi,%eax
movl %edx,48(%rsp)
movl %esi,%ecx
xorl 60(%rsp),%ebp
xorl %r12d,%eax
roll $5,%ecx
xorl 20(%rsp),%ebp
leal -899497514(%rdx,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%ebp
xorl 56(%rsp),%r14d
movl %esi,%eax
movl %ebp,52(%rsp)
movl %r13d,%ecx
xorl 0(%rsp),%r14d
xorl %r11d,%eax
roll $5,%ecx
xorl 24(%rsp),%r14d
leal -899497514(%rbp,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%r14d
xorl 60(%rsp),%edx
movl %r13d,%eax
movl %r14d,56(%rsp)
movl %r12d,%ecx
xorl 4(%rsp),%edx
xorl %edi,%eax
roll $5,%ecx
xorl 28(%rsp),%edx
leal -899497514(%r14,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%edx
xorl 0(%rsp),%ebp
movl %r12d,%eax
movl %edx,60(%rsp)
movl %r11d,%ecx
xorl 8(%rsp),%ebp
xorl %esi,%eax
roll $5,%ecx
xorl 32(%rsp),%ebp
leal -899497514(%rdx,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%ebp
xorl 4(%rsp),%r14d
movl %r11d,%eax
movl %ebp,0(%rsp)
movl %edi,%ecx
xorl 12(%rsp),%r14d
xorl %r13d,%eax
roll $5,%ecx
xorl 36(%rsp),%r14d
leal -899497514(%rbp,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%r14d
xorl 8(%rsp),%edx
movl %edi,%eax
movl %r14d,4(%rsp)
movl %esi,%ecx
xorl 16(%rsp),%edx
xorl %r12d,%eax
roll $5,%ecx
xorl 40(%rsp),%edx
leal -899497514(%r14,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%edx
xorl 12(%rsp),%ebp
movl %esi,%eax
movl %edx,8(%rsp)
movl %r13d,%ecx
xorl 20(%rsp),%ebp
xorl %r11d,%eax
roll $5,%ecx
xorl 44(%rsp),%ebp
leal -899497514(%rdx,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%ebp
xorl 16(%rsp),%r14d
movl %r13d,%eax
movl %ebp,12(%rsp)
movl %r12d,%ecx
xorl 24(%rsp),%r14d
xorl %edi,%eax
roll $5,%ecx
xorl 48(%rsp),%r14d
leal -899497514(%rbp,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%r14d
xorl 20(%rsp),%edx
movl %r12d,%eax
movl %r14d,16(%rsp)
movl %r11d,%ecx
xorl 28(%rsp),%edx
xorl %esi,%eax
roll $5,%ecx
xorl 52(%rsp),%edx
leal -899497514(%r14,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%edx
xorl 24(%rsp),%ebp
movl %r11d,%eax
movl %edx,20(%rsp)
movl %edi,%ecx
xorl 32(%rsp),%ebp
xorl %r13d,%eax
roll $5,%ecx
xorl 56(%rsp),%ebp
leal -899497514(%rdx,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%ebp
xorl 28(%rsp),%r14d
movl %edi,%eax
movl %ebp,24(%rsp)
movl %esi,%ecx
xorl 36(%rsp),%r14d
xorl %r12d,%eax
roll $5,%ecx
xorl 60(%rsp),%r14d
leal -899497514(%rbp,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%r14d
xorl 32(%rsp),%edx
movl %esi,%eax
movl %r14d,28(%rsp)
movl %r13d,%ecx
xorl 40(%rsp),%edx
xorl %r11d,%eax
roll $5,%ecx
xorl 0(%rsp),%edx
leal -899497514(%r14,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%edx
xorl 36(%rsp),%ebp
movl %r13d,%eax
movl %r12d,%ecx
xorl 44(%rsp),%ebp
xorl %edi,%eax
roll $5,%ecx
xorl 4(%rsp),%ebp
leal -899497514(%rdx,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%ebp
xorl 40(%rsp),%r14d
movl %r12d,%eax
movl %r11d,%ecx
xorl 48(%rsp),%r14d
xorl %esi,%eax
roll $5,%ecx
xorl 8(%rsp),%r14d
leal -899497514(%rbp,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%r14d
xorl 44(%rsp),%edx
movl %r11d,%eax
movl %edi,%ecx
xorl 52(%rsp),%edx
xorl %r13d,%eax
roll $5,%ecx
xorl 12(%rsp),%edx
leal -899497514(%r14,%rsi,1),%esi
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
roll $1,%edx
xorl 48(%rsp),%ebp
movl %edi,%eax
movl %esi,%ecx
xorl 56(%rsp),%ebp
xorl %r12d,%eax
roll $5,%ecx
xorl 16(%rsp),%ebp
leal -899497514(%rdx,%r13,1),%r13d
xorl %r11d,%eax
addl %ecx,%r13d
roll $30,%edi
addl %eax,%r13d
roll $1,%ebp
xorl 52(%rsp),%r14d
movl %esi,%eax
movl %r13d,%ecx
xorl 60(%rsp),%r14d
xorl %r11d,%eax
roll $5,%ecx
xorl 20(%rsp),%r14d
leal -899497514(%rbp,%r12,1),%r12d
xorl %edi,%eax
addl %ecx,%r12d
roll $30,%esi
addl %eax,%r12d
roll $1,%r14d
xorl 56(%rsp),%edx
movl %r13d,%eax
movl %r12d,%ecx
xorl 0(%rsp),%edx
xorl %edi,%eax
roll $5,%ecx
xorl 24(%rsp),%edx
leal -899497514(%r14,%r11,1),%r11d
xorl %esi,%eax
addl %ecx,%r11d
roll $30,%r13d
addl %eax,%r11d
roll $1,%edx
xorl 60(%rsp),%ebp
movl %r12d,%eax
movl %r11d,%ecx
xorl 4(%rsp),%ebp
xorl %esi,%eax
roll $5,%ecx
xorl 28(%rsp),%ebp
leal -899497514(%rdx,%rdi,1),%edi
xorl %r13d,%eax
addl %ecx,%edi
roll $30,%r12d
addl %eax,%edi
roll $1,%ebp
movl %r11d,%eax
movl %edi,%ecx
xorl %r13d,%eax
leal -899497514(%rbp,%rsi,1),%esi
roll $5,%ecx
xorl %r12d,%eax
addl %ecx,%esi
roll $30,%r11d
addl %eax,%esi
addl 0(%r8),%esi
addl 4(%r8),%edi
addl 8(%r8),%r11d
addl 12(%r8),%r12d
addl 16(%r8),%r13d
movl %esi,0(%r8)
movl %edi,4(%r8)
movl %r11d,8(%r8)
movl %r12d,12(%r8)
movl %r13d,16(%r8)
subq $1,%r10
leaq 64(%r9),%r9
jnz L$loop
movq 64(%rsp),%rsi
movq -40(%rsi),%r14
movq -32(%rsi),%r13
movq -24(%rsi),%r12
movq -16(%rsi),%rbp
movq -8(%rsi),%rbx
leaq (%rsi),%rsp
L$epilogue:
.byte 0xf3,0xc3
.p2align 4
sha1_block_data_order_ssse3:
_ssse3_shortcut:
movq %rsp,%rax
pushq %rbx
pushq %rbp
pushq %r12
pushq %r13
pushq %r14
leaq -64(%rsp),%rsp
movq %rax,%r14
andq $-64,%rsp
movq %rdi,%r8
movq %rsi,%r9
movq %rdx,%r10
shlq $6,%r10
addq %r9,%r10
leaq K_XX_XX+64(%rip),%r11
movl 0(%r8),%eax
movl 4(%r8),%ebx
movl 8(%r8),%ecx
movl 12(%r8),%edx
movl %ebx,%esi
movl 16(%r8),%ebp
movl %ecx,%edi
xorl %edx,%edi
andl %edi,%esi
movdqa 64(%r11),%xmm6
movdqa -64(%r11),%xmm9
movdqu 0(%r9),%xmm0
movdqu 16(%r9),%xmm1
movdqu 32(%r9),%xmm2
movdqu 48(%r9),%xmm3
.byte 102,15,56,0,198
.byte 102,15,56,0,206
.byte 102,15,56,0,214
addq $64,%r9
paddd %xmm9,%xmm0
.byte 102,15,56,0,222
paddd %xmm9,%xmm1
paddd %xmm9,%xmm2
movdqa %xmm0,0(%rsp)
psubd %xmm9,%xmm0
movdqa %xmm1,16(%rsp)
psubd %xmm9,%xmm1
movdqa %xmm2,32(%rsp)
psubd %xmm9,%xmm2
jmp L$oop_ssse3
.p2align 4
L$oop_ssse3:
rorl $2,%ebx
pshufd $238,%xmm0,%xmm4
xorl %edx,%esi
movdqa %xmm3,%xmm8
paddd %xmm3,%xmm9
movl %eax,%edi
addl 0(%rsp),%ebp
punpcklqdq %xmm1,%xmm4
xorl %ecx,%ebx
roll $5,%eax
addl %esi,%ebp
psrldq $4,%xmm8
andl %ebx,%edi
xorl %ecx,%ebx
pxor %xmm0,%xmm4
addl %eax,%ebp
rorl $7,%eax
pxor %xmm2,%xmm8
xorl %ecx,%edi
movl %ebp,%esi
addl 4(%rsp),%edx
pxor %xmm8,%xmm4
xorl %ebx,%eax
roll $5,%ebp
movdqa %xmm9,48(%rsp)
addl %edi,%edx
andl %eax,%esi
movdqa %xmm4,%xmm10
xorl %ebx,%eax
addl %ebp,%edx
rorl $7,%ebp
movdqa %xmm4,%xmm8
xorl %ebx,%esi
pslldq $12,%xmm10
paddd %xmm4,%xmm4
movl %edx,%edi
addl 8(%rsp),%ecx
psrld $31,%xmm8
xorl %eax,%ebp
roll $5,%edx
addl %esi,%ecx
movdqa %xmm10,%xmm9
andl %ebp,%edi
xorl %eax,%ebp
psrld $30,%xmm10
addl %edx,%ecx
rorl $7,%edx
por %xmm8,%xmm4
xorl %eax,%edi
movl %ecx,%esi
addl 12(%rsp),%ebx
pslld $2,%xmm9
pxor %xmm10,%xmm4
xorl %ebp,%edx
movdqa -64(%r11),%xmm10
roll $5,%ecx
addl %edi,%ebx
andl %edx,%esi
pxor %xmm9,%xmm4
xorl %ebp,%edx
addl %ecx,%ebx
rorl $7,%ecx
pshufd $238,%xmm1,%xmm5
xorl %ebp,%esi
movdqa %xmm4,%xmm9
paddd %xmm4,%xmm10
movl %ebx,%edi
addl 16(%rsp),%eax
punpcklqdq %xmm2,%xmm5
xorl %edx,%ecx
roll $5,%ebx
addl %esi,%eax
psrldq $4,%xmm9
andl %ecx,%edi
xorl %edx,%ecx
pxor %xmm1,%xmm5
addl %ebx,%eax
rorl $7,%ebx
pxor %xmm3,%xmm9
xorl %edx,%edi
movl %eax,%esi
addl 20(%rsp),%ebp
pxor %xmm9,%xmm5
xorl %ecx,%ebx
roll $5,%eax
movdqa %xmm10,0(%rsp)
addl %edi,%ebp
andl %ebx,%esi
movdqa %xmm5,%xmm8
xorl %ecx,%ebx
addl %eax,%ebp
rorl $7,%eax
movdqa %xmm5,%xmm9
xorl %ecx,%esi
pslldq $12,%xmm8
paddd %xmm5,%xmm5
movl %ebp,%edi
addl 24(%rsp),%edx
psrld $31,%xmm9
xorl %ebx,%eax
roll $5,%ebp
addl %esi,%edx
movdqa %xmm8,%xmm10
andl %eax,%edi
xorl %ebx,%eax
psrld $30,%xmm8
addl %ebp,%edx
rorl $7,%ebp
por %xmm9,%xmm5
xorl %ebx,%edi
movl %edx,%esi
addl 28(%rsp),%ecx
pslld $2,%xmm10
pxor %xmm8,%xmm5
xorl %eax,%ebp
movdqa -32(%r11),%xmm8
roll $5,%edx
addl %edi,%ecx
andl %ebp,%esi
pxor %xmm10,%xmm5
xorl %eax,%ebp
addl %edx,%ecx
rorl $7,%edx
pshufd $238,%xmm2,%xmm6
xorl %eax,%esi
movdqa %xmm5,%xmm10
paddd %xmm5,%xmm8
movl %ecx,%edi
addl 32(%rsp),%ebx
punpcklqdq %xmm3,%xmm6
xorl %ebp,%edx
roll $5,%ecx
addl %esi,%ebx
psrldq $4,%xmm10
andl %edx,%edi
xorl %ebp,%edx
pxor %xmm2,%xmm6
addl %ecx,%ebx
rorl $7,%ecx
pxor %xmm4,%xmm10
xorl %ebp,%edi
movl %ebx,%esi
addl 36(%rsp),%eax
pxor %xmm10,%xmm6
xorl %edx,%ecx
roll $5,%ebx
movdqa %xmm8,16(%rsp)
addl %edi,%eax
andl %ecx,%esi
movdqa %xmm6,%xmm9
xorl %edx,%ecx
addl %ebx,%eax
rorl $7,%ebx
movdqa %xmm6,%xmm10
xorl %edx,%esi
pslldq $12,%xmm9
paddd %xmm6,%xmm6
movl %eax,%edi
addl 40(%rsp),%ebp
psrld $31,%xmm10
xorl %ecx,%ebx
roll $5,%eax
addl %esi,%ebp
movdqa %xmm9,%xmm8
andl %ebx,%edi
xorl %ecx,%ebx
psrld $30,%xmm9
addl %eax,%ebp
rorl $7,%eax
por %xmm10,%xmm6
xorl %ecx,%edi
movl %ebp,%esi
addl 44(%rsp),%edx
pslld $2,%xmm8
pxor %xmm9,%xmm6
xorl %ebx,%eax
movdqa -32(%r11),%xmm9
roll $5,%ebp
addl %edi,%edx
andl %eax,%esi
pxor %xmm8,%xmm6
xorl %ebx,%eax
addl %ebp,%edx
rorl $7,%ebp
pshufd $238,%xmm3,%xmm7
xorl %ebx,%esi
movdqa %xmm6,%xmm8
paddd %xmm6,%xmm9
movl %edx,%edi
addl 48(%rsp),%ecx
punpcklqdq %xmm4,%xmm7
xorl %eax,%ebp
roll $5,%edx
addl %esi,%ecx
psrldq $4,%xmm8
andl %ebp,%edi
xorl %eax,%ebp
pxor %xmm3,%xmm7
addl %edx,%ecx
rorl $7,%edx
pxor %xmm5,%xmm8
xorl %eax,%edi
movl %ecx,%esi
addl 52(%rsp),%ebx
pxor %xmm8,%xmm7
xorl %ebp,%edx
roll $5,%ecx
movdqa %xmm9,32(%rsp)
addl %edi,%ebx
andl %edx,%esi
movdqa %xmm7,%xmm10
xorl %ebp,%edx
addl %ecx,%ebx
rorl $7,%ecx
movdqa %xmm7,%xmm8
xorl %ebp,%esi
pslldq $12,%xmm10
paddd %xmm7,%xmm7
movl %ebx,%edi
addl 56(%rsp),%eax
psrld $31,%xmm8
xorl %edx,%ecx
roll $5,%ebx
addl %esi,%eax
movdqa %xmm10,%xmm9
andl %ecx,%edi
xorl %edx,%ecx
psrld $30,%xmm10
addl %ebx,%eax
rorl $7,%ebx
por %xmm8,%xmm7
xorl %edx,%edi
movl %eax,%esi
addl 60(%rsp),%ebp
pslld $2,%xmm9
pxor %xmm10,%xmm7
xorl %ecx,%ebx
movdqa -32(%r11),%xmm10
roll $5,%eax
addl %edi,%ebp
andl %ebx,%esi
pxor %xmm9,%xmm7
pshufd $238,%xmm6,%xmm9
xorl %ecx,%ebx
addl %eax,%ebp
rorl $7,%eax
pxor %xmm4,%xmm0
xorl %ecx,%esi
movl %ebp,%edi
addl 0(%rsp),%edx
punpcklqdq %xmm7,%xmm9
xorl %ebx,%eax
roll $5,%ebp
pxor %xmm1,%xmm0
addl %esi,%edx
andl %eax,%edi
movdqa %xmm10,%xmm8
xorl %ebx,%eax
paddd %xmm7,%xmm10
addl %ebp,%edx
pxor %xmm9,%xmm0
rorl $7,%ebp
xorl %ebx,%edi
movl %edx,%esi
addl 4(%rsp),%ecx
movdqa %xmm0,%xmm9
xorl %eax,%ebp
roll $5,%edx
movdqa %xmm10,48(%rsp)
addl %edi,%ecx
andl %ebp,%esi
xorl %eax,%ebp
pslld $2,%xmm0
addl %edx,%ecx
rorl $7,%edx
psrld $30,%xmm9
xorl %eax,%esi
movl %ecx,%edi
addl 8(%rsp),%ebx
por %xmm9,%xmm0
xorl %ebp,%edx
roll $5,%ecx
pshufd $238,%xmm7,%xmm10
addl %esi,%ebx
andl %edx,%edi
xorl %ebp,%edx
addl %ecx,%ebx
addl 12(%rsp),%eax
xorl %ebp,%edi
movl %ebx,%esi
roll $5,%ebx
addl %edi,%eax
xorl %edx,%esi
rorl $7,%ecx
addl %ebx,%eax
pxor %xmm5,%xmm1
addl 16(%rsp),%ebp
xorl %ecx,%esi
punpcklqdq %xmm0,%xmm10
movl %eax,%edi
roll $5,%eax
pxor %xmm2,%xmm1
addl %esi,%ebp
xorl %ecx,%edi
movdqa %xmm8,%xmm9
rorl $7,%ebx
paddd %xmm0,%xmm8
addl %eax,%ebp
pxor %xmm10,%xmm1
addl 20(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
roll $5,%ebp
movdqa %xmm1,%xmm10
addl %edi,%edx
xorl %ebx,%esi
movdqa %xmm8,0(%rsp)
rorl $7,%eax
addl %ebp,%edx
addl 24(%rsp),%ecx
pslld $2,%xmm1
xorl %eax,%esi
movl %edx,%edi
psrld $30,%xmm10
roll $5,%edx
addl %esi,%ecx
xorl %eax,%edi
rorl $7,%ebp
por %xmm10,%xmm1
addl %edx,%ecx
addl 28(%rsp),%ebx
pshufd $238,%xmm0,%xmm8
xorl %ebp,%edi
movl %ecx,%esi
roll $5,%ecx
addl %edi,%ebx
xorl %ebp,%esi
rorl $7,%edx
addl %ecx,%ebx
pxor %xmm6,%xmm2
addl 32(%rsp),%eax
xorl %edx,%esi
punpcklqdq %xmm1,%xmm8
movl %ebx,%edi
roll $5,%ebx
pxor %xmm3,%xmm2
addl %esi,%eax
xorl %edx,%edi
movdqa 0(%r11),%xmm10
rorl $7,%ecx
paddd %xmm1,%xmm9
addl %ebx,%eax
pxor %xmm8,%xmm2
addl 36(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
roll $5,%eax
movdqa %xmm2,%xmm8
addl %edi,%ebp
xorl %ecx,%esi
movdqa %xmm9,16(%rsp)
rorl $7,%ebx
addl %eax,%ebp
addl 40(%rsp),%edx
pslld $2,%xmm2
xorl %ebx,%esi
movl %ebp,%edi
psrld $30,%xmm8
roll $5,%ebp
addl %esi,%edx
xorl %ebx,%edi
rorl $7,%eax
por %xmm8,%xmm2
addl %ebp,%edx
addl 44(%rsp),%ecx
pshufd $238,%xmm1,%xmm9
xorl %eax,%edi
movl %edx,%esi
roll $5,%edx
addl %edi,%ecx
xorl %eax,%esi
rorl $7,%ebp
addl %edx,%ecx
pxor %xmm7,%xmm3
addl 48(%rsp),%ebx
xorl %ebp,%esi
punpcklqdq %xmm2,%xmm9
movl %ecx,%edi
roll $5,%ecx
pxor %xmm4,%xmm3
addl %esi,%ebx
xorl %ebp,%edi
movdqa %xmm10,%xmm8
rorl $7,%edx
paddd %xmm2,%xmm10
addl %ecx,%ebx
pxor %xmm9,%xmm3
addl 52(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
roll $5,%ebx
movdqa %xmm3,%xmm9
addl %edi,%eax
xorl %edx,%esi
movdqa %xmm10,32(%rsp)
rorl $7,%ecx
addl %ebx,%eax
addl 56(%rsp),%ebp
pslld $2,%xmm3
xorl %ecx,%esi
movl %eax,%edi
psrld $30,%xmm9
roll $5,%eax
addl %esi,%ebp
xorl %ecx,%edi
rorl $7,%ebx
por %xmm9,%xmm3
addl %eax,%ebp
addl 60(%rsp),%edx
pshufd $238,%xmm2,%xmm10
xorl %ebx,%edi
movl %ebp,%esi
roll $5,%ebp
addl %edi,%edx
xorl %ebx,%esi
rorl $7,%eax
addl %ebp,%edx
pxor %xmm0,%xmm4
addl 0(%rsp),%ecx
xorl %eax,%esi
punpcklqdq %xmm3,%xmm10
movl %edx,%edi
roll $5,%edx
pxor %xmm5,%xmm4
addl %esi,%ecx
xorl %eax,%edi
movdqa %xmm8,%xmm9
rorl $7,%ebp
paddd %xmm3,%xmm8
addl %edx,%ecx
pxor %xmm10,%xmm4
addl 4(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
roll $5,%ecx
movdqa %xmm4,%xmm10
addl %edi,%ebx
xorl %ebp,%esi
movdqa %xmm8,48(%rsp)
rorl $7,%edx
addl %ecx,%ebx
addl 8(%rsp),%eax
pslld $2,%xmm4
xorl %edx,%esi
movl %ebx,%edi
psrld $30,%xmm10
roll $5,%ebx
addl %esi,%eax
xorl %edx,%edi
rorl $7,%ecx
por %xmm10,%xmm4
addl %ebx,%eax
addl 12(%rsp),%ebp
pshufd $238,%xmm3,%xmm8
xorl %ecx,%edi
movl %eax,%esi
roll $5,%eax
addl %edi,%ebp
xorl %ecx,%esi
rorl $7,%ebx
addl %eax,%ebp
pxor %xmm1,%xmm5
addl 16(%rsp),%edx
xorl %ebx,%esi
punpcklqdq %xmm4,%xmm8
movl %ebp,%edi
roll $5,%ebp
pxor %xmm6,%xmm5
addl %esi,%edx
xorl %ebx,%edi
movdqa %xmm9,%xmm10
rorl $7,%eax
paddd %xmm4,%xmm9
addl %ebp,%edx
pxor %xmm8,%xmm5
addl 20(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
roll $5,%edx
movdqa %xmm5,%xmm8
addl %edi,%ecx
xorl %eax,%esi
movdqa %xmm9,0(%rsp)
rorl $7,%ebp
addl %edx,%ecx
addl 24(%rsp),%ebx
pslld $2,%xmm5
xorl %ebp,%esi
movl %ecx,%edi
psrld $30,%xmm8
roll $5,%ecx
addl %esi,%ebx
xorl %ebp,%edi
rorl $7,%edx
por %xmm8,%xmm5
addl %ecx,%ebx
addl 28(%rsp),%eax
pshufd $238,%xmm4,%xmm9
rorl $7,%ecx
movl %ebx,%esi
xorl %edx,%edi
roll $5,%ebx
addl %edi,%eax
xorl %ecx,%esi
xorl %edx,%ecx
addl %ebx,%eax
pxor %xmm2,%xmm6
addl 32(%rsp),%ebp
andl %ecx,%esi
xorl %edx,%ecx
rorl $7,%ebx
punpcklqdq %xmm5,%xmm9
movl %eax,%edi
xorl %ecx,%esi
pxor %xmm7,%xmm6
roll $5,%eax
addl %esi,%ebp
movdqa %xmm10,%xmm8
xorl %ebx,%edi
paddd %xmm5,%xmm10
xorl %ecx,%ebx
pxor %xmm9,%xmm6
addl %eax,%ebp
addl 36(%rsp),%edx
andl %ebx,%edi
xorl %ecx,%ebx
rorl $7,%eax
movdqa %xmm6,%xmm9
movl %ebp,%esi
xorl %ebx,%edi
movdqa %xmm10,16(%rsp)
roll $5,%ebp
addl %edi,%edx
xorl %eax,%esi
pslld $2,%xmm6
xorl %ebx,%eax
addl %ebp,%edx
psrld $30,%xmm9
addl 40(%rsp),%ecx
andl %eax,%esi
xorl %ebx,%eax
por %xmm9,%xmm6
rorl $7,%ebp
movl %edx,%edi
xorl %eax,%esi
roll $5,%edx
pshufd $238,%xmm5,%xmm10
addl %esi,%ecx
xorl %ebp,%edi
xorl %eax,%ebp
addl %edx,%ecx
addl 44(%rsp),%ebx
andl %ebp,%edi
xorl %eax,%ebp
rorl $7,%edx
movl %ecx,%esi
xorl %ebp,%edi
roll $5,%ecx
addl %edi,%ebx
xorl %edx,%esi
xorl %ebp,%edx
addl %ecx,%ebx
pxor %xmm3,%xmm7
addl 48(%rsp),%eax
andl %edx,%esi
xorl %ebp,%edx
rorl $7,%ecx
punpcklqdq %xmm6,%xmm10
movl %ebx,%edi
xorl %edx,%esi
pxor %xmm0,%xmm7
roll $5,%ebx
addl %esi,%eax
movdqa 32(%r11),%xmm9
xorl %ecx,%edi
paddd %xmm6,%xmm8
xorl %edx,%ecx
pxor %xmm10,%xmm7
addl %ebx,%eax
addl 52(%rsp),%ebp
andl %ecx,%edi
xorl %edx,%ecx
rorl $7,%ebx
movdqa %xmm7,%xmm10
movl %eax,%esi
xorl %ecx,%edi
movdqa %xmm8,32(%rsp)
roll $5,%eax
addl %edi,%ebp
xorl %ebx,%esi
pslld $2,%xmm7
xorl %ecx,%ebx
addl %eax,%ebp
psrld $30,%xmm10
addl 56(%rsp),%edx
andl %ebx,%esi
xorl %ecx,%ebx
por %xmm10,%xmm7
rorl $7,%eax
movl %ebp,%edi
xorl %ebx,%esi
roll $5,%ebp
pshufd $238,%xmm6,%xmm8
addl %esi,%edx
xorl %eax,%edi
xorl %ebx,%eax
addl %ebp,%edx
addl 60(%rsp),%ecx
andl %eax,%edi
xorl %ebx,%eax
rorl $7,%ebp
movl %edx,%esi
xorl %eax,%edi
roll $5,%edx
addl %edi,%ecx
xorl %ebp,%esi
xorl %eax,%ebp
addl %edx,%ecx
pxor %xmm4,%xmm0
addl 0(%rsp),%ebx
andl %ebp,%esi
xorl %eax,%ebp
rorl $7,%edx
punpcklqdq %xmm7,%xmm8
movl %ecx,%edi
xorl %ebp,%esi
pxor %xmm1,%xmm0
roll $5,%ecx
addl %esi,%ebx
movdqa %xmm9,%xmm10
xorl %edx,%edi
paddd %xmm7,%xmm9
xorl %ebp,%edx
pxor %xmm8,%xmm0
addl %ecx,%ebx
addl 4(%rsp),%eax
andl %edx,%edi
xorl %ebp,%edx
rorl $7,%ecx
movdqa %xmm0,%xmm8
movl %ebx,%esi
xorl %edx,%edi
movdqa %xmm9,48(%rsp)
roll $5,%ebx
addl %edi,%eax
xorl %ecx,%esi
pslld $2,%xmm0
xorl %edx,%ecx
addl %ebx,%eax
psrld $30,%xmm8
addl 8(%rsp),%ebp
andl %ecx,%esi
xorl %edx,%ecx
por %xmm8,%xmm0
rorl $7,%ebx
movl %eax,%edi
xorl %ecx,%esi
roll $5,%eax
pshufd $238,%xmm7,%xmm9
addl %esi,%ebp
xorl %ebx,%edi
xorl %ecx,%ebx
addl %eax,%ebp
addl 12(%rsp),%edx
andl %ebx,%edi
xorl %ecx,%ebx
rorl $7,%eax
movl %ebp,%esi
xorl %ebx,%edi
roll $5,%ebp
addl %edi,%edx
xorl %eax,%esi
xorl %ebx,%eax
addl %ebp,%edx
pxor %xmm5,%xmm1
addl 16(%rsp),%ecx
andl %eax,%esi
xorl %ebx,%eax
rorl $7,%ebp
punpcklqdq %xmm0,%xmm9
movl %edx,%edi
xorl %eax,%esi
pxor %xmm2,%xmm1
roll $5,%edx
addl %esi,%ecx
movdqa %xmm10,%xmm8
xorl %ebp,%edi
paddd %xmm0,%xmm10
xorl %eax,%ebp
pxor %xmm9,%xmm1
addl %edx,%ecx
addl 20(%rsp),%ebx
andl %ebp,%edi
xorl %eax,%ebp
rorl $7,%edx
movdqa %xmm1,%xmm9
movl %ecx,%esi
xorl %ebp,%edi
movdqa %xmm10,0(%rsp)
roll $5,%ecx
addl %edi,%ebx
xorl %edx,%esi
pslld $2,%xmm1
xorl %ebp,%edx
addl %ecx,%ebx
psrld $30,%xmm9
addl 24(%rsp),%eax
andl %edx,%esi
xorl %ebp,%edx
por %xmm9,%xmm1
rorl $7,%ecx
movl %ebx,%edi
xorl %edx,%esi
roll $5,%ebx
pshufd $238,%xmm0,%xmm10
addl %esi,%eax
xorl %ecx,%edi
xorl %edx,%ecx
addl %ebx,%eax
addl 28(%rsp),%ebp
andl %ecx,%edi
xorl %edx,%ecx
rorl $7,%ebx
movl %eax,%esi
xorl %ecx,%edi
roll $5,%eax
addl %edi,%ebp
xorl %ebx,%esi
xorl %ecx,%ebx
addl %eax,%ebp
pxor %xmm6,%xmm2
addl 32(%rsp),%edx
andl %ebx,%esi
xorl %ecx,%ebx
rorl $7,%eax
punpcklqdq %xmm1,%xmm10
movl %ebp,%edi
xorl %ebx,%esi
pxor %xmm3,%xmm2
roll $5,%ebp
addl %esi,%edx
movdqa %xmm8,%xmm9
xorl %eax,%edi
paddd %xmm1,%xmm8
xorl %ebx,%eax
pxor %xmm10,%xmm2
addl %ebp,%edx
addl 36(%rsp),%ecx
andl %eax,%edi
xorl %ebx,%eax
rorl $7,%ebp
movdqa %xmm2,%xmm10
movl %edx,%esi
xorl %eax,%edi
movdqa %xmm8,16(%rsp)
roll $5,%edx
addl %edi,%ecx
xorl %ebp,%esi
pslld $2,%xmm2
xorl %eax,%ebp
addl %edx,%ecx
psrld $30,%xmm10
addl 40(%rsp),%ebx
andl %ebp,%esi
xorl %eax,%ebp
por %xmm10,%xmm2
rorl $7,%edx
movl %ecx,%edi
xorl %ebp,%esi
roll $5,%ecx
pshufd $238,%xmm1,%xmm8
addl %esi,%ebx
xorl %edx,%edi
xorl %ebp,%edx
addl %ecx,%ebx
addl 44(%rsp),%eax
andl %edx,%edi
xorl %ebp,%edx
rorl $7,%ecx
movl %ebx,%esi
xorl %edx,%edi
roll $5,%ebx
addl %edi,%eax
xorl %edx,%esi
addl %ebx,%eax
pxor %xmm7,%xmm3
addl 48(%rsp),%ebp
xorl %ecx,%esi
punpcklqdq %xmm2,%xmm8
movl %eax,%edi
roll $5,%eax
pxor %xmm4,%xmm3
addl %esi,%ebp
xorl %ecx,%edi
movdqa %xmm9,%xmm10
rorl $7,%ebx
paddd %xmm2,%xmm9
addl %eax,%ebp
pxor %xmm8,%xmm3
addl 52(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
roll $5,%ebp
movdqa %xmm3,%xmm8
addl %edi,%edx
xorl %ebx,%esi
movdqa %xmm9,32(%rsp)
rorl $7,%eax
addl %ebp,%edx
addl 56(%rsp),%ecx
pslld $2,%xmm3
xorl %eax,%esi
movl %edx,%edi
psrld $30,%xmm8
roll $5,%edx
addl %esi,%ecx
xorl %eax,%edi
rorl $7,%ebp
por %xmm8,%xmm3
addl %edx,%ecx
addl 60(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
roll $5,%ecx
addl %edi,%ebx
xorl %ebp,%esi
rorl $7,%edx
addl %ecx,%ebx
addl 0(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
roll $5,%ebx
paddd %xmm3,%xmm10
addl %esi,%eax
xorl %edx,%edi
movdqa %xmm10,48(%rsp)
rorl $7,%ecx
addl %ebx,%eax
addl 4(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
roll $5,%eax
addl %edi,%ebp
xorl %ecx,%esi
rorl $7,%ebx
addl %eax,%ebp
addl 8(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
roll $5,%ebp
addl %esi,%edx
xorl %ebx,%edi
rorl $7,%eax
addl %ebp,%edx
addl 12(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
roll $5,%edx
addl %edi,%ecx
xorl %eax,%esi
rorl $7,%ebp
addl %edx,%ecx
cmpq %r10,%r9
je L$done_ssse3
movdqa 64(%r11),%xmm6
movdqa -64(%r11),%xmm9
movdqu 0(%r9),%xmm0
movdqu 16(%r9),%xmm1
movdqu 32(%r9),%xmm2
movdqu 48(%r9),%xmm3
.byte 102,15,56,0,198
addq $64,%r9
addl 16(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
.byte 102,15,56,0,206
roll $5,%ecx
addl %esi,%ebx
xorl %ebp,%edi
rorl $7,%edx
paddd %xmm9,%xmm0
addl %ecx,%ebx
addl 20(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
movdqa %xmm0,0(%rsp)
roll $5,%ebx
addl %edi,%eax
xorl %edx,%esi
rorl $7,%ecx
psubd %xmm9,%xmm0
addl %ebx,%eax
addl 24(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
roll $5,%eax
addl %esi,%ebp
xorl %ecx,%edi
rorl $7,%ebx
addl %eax,%ebp
addl 28(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
roll $5,%ebp
addl %edi,%edx
xorl %ebx,%esi
rorl $7,%eax
addl %ebp,%edx
addl 32(%rsp),%ecx
xorl %eax,%esi
movl %edx,%edi
.byte 102,15,56,0,214
roll $5,%edx
addl %esi,%ecx
xorl %eax,%edi
rorl $7,%ebp
paddd %xmm9,%xmm1
addl %edx,%ecx
addl 36(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
movdqa %xmm1,16(%rsp)
roll $5,%ecx
addl %edi,%ebx
xorl %ebp,%esi
rorl $7,%edx
psubd %xmm9,%xmm1
addl %ecx,%ebx
addl 40(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
roll $5,%ebx
addl %esi,%eax
xorl %edx,%edi
rorl $7,%ecx
addl %ebx,%eax
addl 44(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
roll $5,%eax
addl %edi,%ebp
xorl %ecx,%esi
rorl $7,%ebx
addl %eax,%ebp
addl 48(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
.byte 102,15,56,0,222
roll $5,%ebp
addl %esi,%edx
xorl %ebx,%edi
rorl $7,%eax
paddd %xmm9,%xmm2
addl %ebp,%edx
addl 52(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
movdqa %xmm2,32(%rsp)
roll $5,%edx
addl %edi,%ecx
xorl %eax,%esi
rorl $7,%ebp
psubd %xmm9,%xmm2
addl %edx,%ecx
addl 56(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
roll $5,%ecx
addl %esi,%ebx
xorl %ebp,%edi
rorl $7,%edx
addl %ecx,%ebx
addl 60(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
roll $5,%ebx
addl %edi,%eax
rorl $7,%ecx
addl %ebx,%eax
addl 0(%r8),%eax
addl 4(%r8),%esi
addl 8(%r8),%ecx
addl 12(%r8),%edx
movl %eax,0(%r8)
addl 16(%r8),%ebp
movl %esi,4(%r8)
movl %esi,%ebx
movl %ecx,8(%r8)
movl %ecx,%edi
movl %edx,12(%r8)
xorl %edx,%edi
movl %ebp,16(%r8)
andl %edi,%esi
jmp L$oop_ssse3
.p2align 4
L$done_ssse3:
addl 16(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
roll $5,%ecx
addl %esi,%ebx
xorl %ebp,%edi
rorl $7,%edx
addl %ecx,%ebx
addl 20(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
roll $5,%ebx
addl %edi,%eax
xorl %edx,%esi
rorl $7,%ecx
addl %ebx,%eax
addl 24(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
roll $5,%eax
addl %esi,%ebp
xorl %ecx,%edi
rorl $7,%ebx
addl %eax,%ebp
addl 28(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
roll $5,%ebp
addl %edi,%edx
xorl %ebx,%esi
rorl $7,%eax
addl %ebp,%edx
addl 32(%rsp),%ecx
xorl %eax,%esi
movl %edx,%edi
roll $5,%edx
addl %esi,%ecx
xorl %eax,%edi
rorl $7,%ebp
addl %edx,%ecx
addl 36(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
roll $5,%ecx
addl %edi,%ebx
xorl %ebp,%esi
rorl $7,%edx
addl %ecx,%ebx
addl 40(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
roll $5,%ebx
addl %esi,%eax
xorl %edx,%edi
rorl $7,%ecx
addl %ebx,%eax
addl 44(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
roll $5,%eax
addl %edi,%ebp
xorl %ecx,%esi
rorl $7,%ebx
addl %eax,%ebp
addl 48(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
roll $5,%ebp
addl %esi,%edx
xorl %ebx,%edi
rorl $7,%eax
addl %ebp,%edx
addl 52(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
roll $5,%edx
addl %edi,%ecx
xorl %eax,%esi
rorl $7,%ebp
addl %edx,%ecx
addl 56(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
roll $5,%ecx
addl %esi,%ebx
xorl %ebp,%edi
rorl $7,%edx
addl %ecx,%ebx
addl 60(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
roll $5,%ebx
addl %edi,%eax
rorl $7,%ecx
addl %ebx,%eax
addl 0(%r8),%eax
addl 4(%r8),%esi
addl 8(%r8),%ecx
movl %eax,0(%r8)
addl 12(%r8),%edx
movl %esi,4(%r8)
addl 16(%r8),%ebp
movl %ecx,8(%r8)
movl %edx,12(%r8)
movl %ebp,16(%r8)
leaq (%r14),%rsi
movq -40(%rsi),%r14
movq -32(%rsi),%r13
movq -24(%rsi),%r12
movq -16(%rsi),%rbp
movq -8(%rsi),%rbx
leaq (%rsi),%rsp
L$epilogue_ssse3:
.byte 0xf3,0xc3
.p2align 4
sha1_block_data_order_avx:
_avx_shortcut:
movq %rsp,%rax
pushq %rbx
pushq %rbp
pushq %r12
pushq %r13
pushq %r14
leaq -64(%rsp),%rsp
vzeroupper
movq %rax,%r14
andq $-64,%rsp
movq %rdi,%r8
movq %rsi,%r9
movq %rdx,%r10
shlq $6,%r10
addq %r9,%r10
leaq K_XX_XX+64(%rip),%r11
movl 0(%r8),%eax
movl 4(%r8),%ebx
movl 8(%r8),%ecx
movl 12(%r8),%edx
movl %ebx,%esi
movl 16(%r8),%ebp
movl %ecx,%edi
xorl %edx,%edi
andl %edi,%esi
vmovdqa 64(%r11),%xmm6
vmovdqa -64(%r11),%xmm11
vmovdqu 0(%r9),%xmm0
vmovdqu 16(%r9),%xmm1
vmovdqu 32(%r9),%xmm2
vmovdqu 48(%r9),%xmm3
vpshufb %xmm6,%xmm0,%xmm0
addq $64,%r9
vpshufb %xmm6,%xmm1,%xmm1
vpshufb %xmm6,%xmm2,%xmm2
vpshufb %xmm6,%xmm3,%xmm3
vpaddd %xmm11,%xmm0,%xmm4
vpaddd %xmm11,%xmm1,%xmm5
vpaddd %xmm11,%xmm2,%xmm6
vmovdqa %xmm4,0(%rsp)
vmovdqa %xmm5,16(%rsp)
vmovdqa %xmm6,32(%rsp)
jmp L$oop_avx
.p2align 4
L$oop_avx:
shrdl $2,%ebx,%ebx
xorl %edx,%esi
vpalignr $8,%xmm0,%xmm1,%xmm4
movl %eax,%edi
addl 0(%rsp),%ebp
vpaddd %xmm3,%xmm11,%xmm9
xorl %ecx,%ebx
shldl $5,%eax,%eax
vpsrldq $4,%xmm3,%xmm8
addl %esi,%ebp
andl %ebx,%edi
vpxor %xmm0,%xmm4,%xmm4
xorl %ecx,%ebx
addl %eax,%ebp
vpxor %xmm2,%xmm8,%xmm8
shrdl $7,%eax,%eax
xorl %ecx,%edi
movl %ebp,%esi
addl 4(%rsp),%edx
vpxor %xmm8,%xmm4,%xmm4
xorl %ebx,%eax
shldl $5,%ebp,%ebp
vmovdqa %xmm9,48(%rsp)
addl %edi,%edx
andl %eax,%esi
vpsrld $31,%xmm4,%xmm8
xorl %ebx,%eax
addl %ebp,%edx
shrdl $7,%ebp,%ebp
xorl %ebx,%esi
vpslldq $12,%xmm4,%xmm10
vpaddd %xmm4,%xmm4,%xmm4
movl %edx,%edi
addl 8(%rsp),%ecx
xorl %eax,%ebp
shldl $5,%edx,%edx
vpsrld $30,%xmm10,%xmm9
vpor %xmm8,%xmm4,%xmm4
addl %esi,%ecx
andl %ebp,%edi
xorl %eax,%ebp
addl %edx,%ecx
vpslld $2,%xmm10,%xmm10
vpxor %xmm9,%xmm4,%xmm4
shrdl $7,%edx,%edx
xorl %eax,%edi
movl %ecx,%esi
addl 12(%rsp),%ebx
vpxor %xmm10,%xmm4,%xmm4
xorl %ebp,%edx
shldl $5,%ecx,%ecx
addl %edi,%ebx
andl %edx,%esi
xorl %ebp,%edx
addl %ecx,%ebx
shrdl $7,%ecx,%ecx
xorl %ebp,%esi
vpalignr $8,%xmm1,%xmm2,%xmm5
movl %ebx,%edi
addl 16(%rsp),%eax
vpaddd %xmm4,%xmm11,%xmm9
xorl %edx,%ecx
shldl $5,%ebx,%ebx
vpsrldq $4,%xmm4,%xmm8
addl %esi,%eax
andl %ecx,%edi
vpxor %xmm1,%xmm5,%xmm5
xorl %edx,%ecx
addl %ebx,%eax
vpxor %xmm3,%xmm8,%xmm8
shrdl $7,%ebx,%ebx
xorl %edx,%edi
movl %eax,%esi
addl 20(%rsp),%ebp
vpxor %xmm8,%xmm5,%xmm5
xorl %ecx,%ebx
shldl $5,%eax,%eax
vmovdqa %xmm9,0(%rsp)
addl %edi,%ebp
andl %ebx,%esi
vpsrld $31,%xmm5,%xmm8
xorl %ecx,%ebx
addl %eax,%ebp
shrdl $7,%eax,%eax
xorl %ecx,%esi
vpslldq $12,%xmm5,%xmm10
vpaddd %xmm5,%xmm5,%xmm5
movl %ebp,%edi
addl 24(%rsp),%edx
xorl %ebx,%eax
shldl $5,%ebp,%ebp
vpsrld $30,%xmm10,%xmm9
vpor %xmm8,%xmm5,%xmm5
addl %esi,%edx
andl %eax,%edi
xorl %ebx,%eax
addl %ebp,%edx
vpslld $2,%xmm10,%xmm10
vpxor %xmm9,%xmm5,%xmm5
shrdl $7,%ebp,%ebp
xorl %ebx,%edi
movl %edx,%esi
addl 28(%rsp),%ecx
vpxor %xmm10,%xmm5,%xmm5
xorl %eax,%ebp
shldl $5,%edx,%edx
vmovdqa -32(%r11),%xmm11
addl %edi,%ecx
andl %ebp,%esi
xorl %eax,%ebp
addl %edx,%ecx
shrdl $7,%edx,%edx
xorl %eax,%esi
vpalignr $8,%xmm2,%xmm3,%xmm6
movl %ecx,%edi
addl 32(%rsp),%ebx
vpaddd %xmm5,%xmm11,%xmm9
xorl %ebp,%edx
shldl $5,%ecx,%ecx
vpsrldq $4,%xmm5,%xmm8
addl %esi,%ebx
andl %edx,%edi
vpxor %xmm2,%xmm6,%xmm6
xorl %ebp,%edx
addl %ecx,%ebx
vpxor %xmm4,%xmm8,%xmm8
shrdl $7,%ecx,%ecx
xorl %ebp,%edi
movl %ebx,%esi
addl 36(%rsp),%eax
vpxor %xmm8,%xmm6,%xmm6
xorl %edx,%ecx
shldl $5,%ebx,%ebx
vmovdqa %xmm9,16(%rsp)
addl %edi,%eax
andl %ecx,%esi
vpsrld $31,%xmm6,%xmm8
xorl %edx,%ecx
addl %ebx,%eax
shrdl $7,%ebx,%ebx
xorl %edx,%esi
vpslldq $12,%xmm6,%xmm10
vpaddd %xmm6,%xmm6,%xmm6
movl %eax,%edi
addl 40(%rsp),%ebp
xorl %ecx,%ebx
shldl $5,%eax,%eax
vpsrld $30,%xmm10,%xmm9
vpor %xmm8,%xmm6,%xmm6
addl %esi,%ebp
andl %ebx,%edi
xorl %ecx,%ebx
addl %eax,%ebp
vpslld $2,%xmm10,%xmm10
vpxor %xmm9,%xmm6,%xmm6
shrdl $7,%eax,%eax
xorl %ecx,%edi
movl %ebp,%esi
addl 44(%rsp),%edx
vpxor %xmm10,%xmm6,%xmm6
xorl %ebx,%eax
shldl $5,%ebp,%ebp
addl %edi,%edx
andl %eax,%esi
xorl %ebx,%eax
addl %ebp,%edx
shrdl $7,%ebp,%ebp
xorl %ebx,%esi
vpalignr $8,%xmm3,%xmm4,%xmm7
movl %edx,%edi
addl 48(%rsp),%ecx
vpaddd %xmm6,%xmm11,%xmm9
xorl %eax,%ebp
shldl $5,%edx,%edx
vpsrldq $4,%xmm6,%xmm8
addl %esi,%ecx
andl %ebp,%edi
vpxor %xmm3,%xmm7,%xmm7
xorl %eax,%ebp
addl %edx,%ecx
vpxor %xmm5,%xmm8,%xmm8
shrdl $7,%edx,%edx
xorl %eax,%edi
movl %ecx,%esi
addl 52(%rsp),%ebx
vpxor %xmm8,%xmm7,%xmm7
xorl %ebp,%edx
shldl $5,%ecx,%ecx
vmovdqa %xmm9,32(%rsp)
addl %edi,%ebx
andl %edx,%esi
vpsrld $31,%xmm7,%xmm8
xorl %ebp,%edx
addl %ecx,%ebx
shrdl $7,%ecx,%ecx
xorl %ebp,%esi
vpslldq $12,%xmm7,%xmm10
vpaddd %xmm7,%xmm7,%xmm7
movl %ebx,%edi
addl 56(%rsp),%eax
xorl %edx,%ecx
shldl $5,%ebx,%ebx
vpsrld $30,%xmm10,%xmm9
vpor %xmm8,%xmm7,%xmm7
addl %esi,%eax
andl %ecx,%edi
xorl %edx,%ecx
addl %ebx,%eax
vpslld $2,%xmm10,%xmm10
vpxor %xmm9,%xmm7,%xmm7
shrdl $7,%ebx,%ebx
xorl %edx,%edi
movl %eax,%esi
addl 60(%rsp),%ebp
vpxor %xmm10,%xmm7,%xmm7
xorl %ecx,%ebx
shldl $5,%eax,%eax
addl %edi,%ebp
andl %ebx,%esi
xorl %ecx,%ebx
addl %eax,%ebp
vpalignr $8,%xmm6,%xmm7,%xmm8
vpxor %xmm4,%xmm0,%xmm0
shrdl $7,%eax,%eax
xorl %ecx,%esi
movl %ebp,%edi
addl 0(%rsp),%edx
vpxor %xmm1,%xmm0,%xmm0
xorl %ebx,%eax
shldl $5,%ebp,%ebp
vpaddd %xmm7,%xmm11,%xmm9
addl %esi,%edx
andl %eax,%edi
vpxor %xmm8,%xmm0,%xmm0
xorl %ebx,%eax
addl %ebp,%edx
shrdl $7,%ebp,%ebp
xorl %ebx,%edi
vpsrld $30,%xmm0,%xmm8
vmovdqa %xmm9,48(%rsp)
movl %edx,%esi
addl 4(%rsp),%ecx
xorl %eax,%ebp
shldl $5,%edx,%edx
vpslld $2,%xmm0,%xmm0
addl %edi,%ecx
andl %ebp,%esi
xorl %eax,%ebp
addl %edx,%ecx
shrdl $7,%edx,%edx
xorl %eax,%esi
movl %ecx,%edi
addl 8(%rsp),%ebx
vpor %xmm8,%xmm0,%xmm0
xorl %ebp,%edx
shldl $5,%ecx,%ecx
addl %esi,%ebx
andl %edx,%edi
xorl %ebp,%edx
addl %ecx,%ebx
addl 12(%rsp),%eax
xorl %ebp,%edi
movl %ebx,%esi
shldl $5,%ebx,%ebx
addl %edi,%eax
xorl %edx,%esi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
vpalignr $8,%xmm7,%xmm0,%xmm8
vpxor %xmm5,%xmm1,%xmm1
addl 16(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
shldl $5,%eax,%eax
vpxor %xmm2,%xmm1,%xmm1
addl %esi,%ebp
xorl %ecx,%edi
vpaddd %xmm0,%xmm11,%xmm9
shrdl $7,%ebx,%ebx
addl %eax,%ebp
vpxor %xmm8,%xmm1,%xmm1
addl 20(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
shldl $5,%ebp,%ebp
vpsrld $30,%xmm1,%xmm8
vmovdqa %xmm9,0(%rsp)
addl %edi,%edx
xorl %ebx,%esi
shrdl $7,%eax,%eax
addl %ebp,%edx
vpslld $2,%xmm1,%xmm1
addl 24(%rsp),%ecx
xorl %eax,%esi
movl %edx,%edi
shldl $5,%edx,%edx
addl %esi,%ecx
xorl %eax,%edi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
vpor %xmm8,%xmm1,%xmm1
addl 28(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
shldl $5,%ecx,%ecx
addl %edi,%ebx
xorl %ebp,%esi
shrdl $7,%edx,%edx
addl %ecx,%ebx
vpalignr $8,%xmm0,%xmm1,%xmm8
vpxor %xmm6,%xmm2,%xmm2
addl 32(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
shldl $5,%ebx,%ebx
vpxor %xmm3,%xmm2,%xmm2
addl %esi,%eax
xorl %edx,%edi
vpaddd %xmm1,%xmm11,%xmm9
vmovdqa 0(%r11),%xmm11
shrdl $7,%ecx,%ecx
addl %ebx,%eax
vpxor %xmm8,%xmm2,%xmm2
addl 36(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
shldl $5,%eax,%eax
vpsrld $30,%xmm2,%xmm8
vmovdqa %xmm9,16(%rsp)
addl %edi,%ebp
xorl %ecx,%esi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
vpslld $2,%xmm2,%xmm2
addl 40(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
shldl $5,%ebp,%ebp
addl %esi,%edx
xorl %ebx,%edi
shrdl $7,%eax,%eax
addl %ebp,%edx
vpor %xmm8,%xmm2,%xmm2
addl 44(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
shldl $5,%edx,%edx
addl %edi,%ecx
xorl %eax,%esi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
vpalignr $8,%xmm1,%xmm2,%xmm8
vpxor %xmm7,%xmm3,%xmm3
addl 48(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
shldl $5,%ecx,%ecx
vpxor %xmm4,%xmm3,%xmm3
addl %esi,%ebx
xorl %ebp,%edi
vpaddd %xmm2,%xmm11,%xmm9
shrdl $7,%edx,%edx
addl %ecx,%ebx
vpxor %xmm8,%xmm3,%xmm3
addl 52(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
shldl $5,%ebx,%ebx
vpsrld $30,%xmm3,%xmm8
vmovdqa %xmm9,32(%rsp)
addl %edi,%eax
xorl %edx,%esi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
vpslld $2,%xmm3,%xmm3
addl 56(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
shldl $5,%eax,%eax
addl %esi,%ebp
xorl %ecx,%edi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
vpor %xmm8,%xmm3,%xmm3
addl 60(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
shldl $5,%ebp,%ebp
addl %edi,%edx
xorl %ebx,%esi
shrdl $7,%eax,%eax
addl %ebp,%edx
vpalignr $8,%xmm2,%xmm3,%xmm8
vpxor %xmm0,%xmm4,%xmm4
addl 0(%rsp),%ecx
xorl %eax,%esi
movl %edx,%edi
shldl $5,%edx,%edx
vpxor %xmm5,%xmm4,%xmm4
addl %esi,%ecx
xorl %eax,%edi
vpaddd %xmm3,%xmm11,%xmm9
shrdl $7,%ebp,%ebp
addl %edx,%ecx
vpxor %xmm8,%xmm4,%xmm4
addl 4(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
shldl $5,%ecx,%ecx
vpsrld $30,%xmm4,%xmm8
vmovdqa %xmm9,48(%rsp)
addl %edi,%ebx
xorl %ebp,%esi
shrdl $7,%edx,%edx
addl %ecx,%ebx
vpslld $2,%xmm4,%xmm4
addl 8(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
shldl $5,%ebx,%ebx
addl %esi,%eax
xorl %edx,%edi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
vpor %xmm8,%xmm4,%xmm4
addl 12(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
shldl $5,%eax,%eax
addl %edi,%ebp
xorl %ecx,%esi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
vpalignr $8,%xmm3,%xmm4,%xmm8
vpxor %xmm1,%xmm5,%xmm5
addl 16(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
shldl $5,%ebp,%ebp
vpxor %xmm6,%xmm5,%xmm5
addl %esi,%edx
xorl %ebx,%edi
vpaddd %xmm4,%xmm11,%xmm9
shrdl $7,%eax,%eax
addl %ebp,%edx
vpxor %xmm8,%xmm5,%xmm5
addl 20(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
shldl $5,%edx,%edx
vpsrld $30,%xmm5,%xmm8
vmovdqa %xmm9,0(%rsp)
addl %edi,%ecx
xorl %eax,%esi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
vpslld $2,%xmm5,%xmm5
addl 24(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
shldl $5,%ecx,%ecx
addl %esi,%ebx
xorl %ebp,%edi
shrdl $7,%edx,%edx
addl %ecx,%ebx
vpor %xmm8,%xmm5,%xmm5
addl 28(%rsp),%eax
shrdl $7,%ecx,%ecx
movl %ebx,%esi
xorl %edx,%edi
shldl $5,%ebx,%ebx
addl %edi,%eax
xorl %ecx,%esi
xorl %edx,%ecx
addl %ebx,%eax
vpalignr $8,%xmm4,%xmm5,%xmm8
vpxor %xmm2,%xmm6,%xmm6
addl 32(%rsp),%ebp
andl %ecx,%esi
xorl %edx,%ecx
shrdl $7,%ebx,%ebx
vpxor %xmm7,%xmm6,%xmm6
movl %eax,%edi
xorl %ecx,%esi
vpaddd %xmm5,%xmm11,%xmm9
shldl $5,%eax,%eax
addl %esi,%ebp
vpxor %xmm8,%xmm6,%xmm6
xorl %ebx,%edi
xorl %ecx,%ebx
addl %eax,%ebp
addl 36(%rsp),%edx
vpsrld $30,%xmm6,%xmm8
vmovdqa %xmm9,16(%rsp)
andl %ebx,%edi
xorl %ecx,%ebx
shrdl $7,%eax,%eax
movl %ebp,%esi
vpslld $2,%xmm6,%xmm6
xorl %ebx,%edi
shldl $5,%ebp,%ebp
addl %edi,%edx
xorl %eax,%esi
xorl %ebx,%eax
addl %ebp,%edx
addl 40(%rsp),%ecx
andl %eax,%esi
vpor %xmm8,%xmm6,%xmm6
xorl %ebx,%eax
shrdl $7,%ebp,%ebp
movl %edx,%edi
xorl %eax,%esi
shldl $5,%edx,%edx
addl %esi,%ecx
xorl %ebp,%edi
xorl %eax,%ebp
addl %edx,%ecx
addl 44(%rsp),%ebx
andl %ebp,%edi
xorl %eax,%ebp
shrdl $7,%edx,%edx
movl %ecx,%esi
xorl %ebp,%edi
shldl $5,%ecx,%ecx
addl %edi,%ebx
xorl %edx,%esi
xorl %ebp,%edx
addl %ecx,%ebx
vpalignr $8,%xmm5,%xmm6,%xmm8
vpxor %xmm3,%xmm7,%xmm7
addl 48(%rsp),%eax
andl %edx,%esi
xorl %ebp,%edx
shrdl $7,%ecx,%ecx
vpxor %xmm0,%xmm7,%xmm7
movl %ebx,%edi
xorl %edx,%esi
vpaddd %xmm6,%xmm11,%xmm9
vmovdqa 32(%r11),%xmm11
shldl $5,%ebx,%ebx
addl %esi,%eax
vpxor %xmm8,%xmm7,%xmm7
xorl %ecx,%edi
xorl %edx,%ecx
addl %ebx,%eax
addl 52(%rsp),%ebp
vpsrld $30,%xmm7,%xmm8
vmovdqa %xmm9,32(%rsp)
andl %ecx,%edi
xorl %edx,%ecx
shrdl $7,%ebx,%ebx
movl %eax,%esi
vpslld $2,%xmm7,%xmm7
xorl %ecx,%edi
shldl $5,%eax,%eax
addl %edi,%ebp
xorl %ebx,%esi
xorl %ecx,%ebx
addl %eax,%ebp
addl 56(%rsp),%edx
andl %ebx,%esi
vpor %xmm8,%xmm7,%xmm7
xorl %ecx,%ebx
shrdl $7,%eax,%eax
movl %ebp,%edi
xorl %ebx,%esi
shldl $5,%ebp,%ebp
addl %esi,%edx
xorl %eax,%edi
xorl %ebx,%eax
addl %ebp,%edx
addl 60(%rsp),%ecx
andl %eax,%edi
xorl %ebx,%eax
shrdl $7,%ebp,%ebp
movl %edx,%esi
xorl %eax,%edi
shldl $5,%edx,%edx
addl %edi,%ecx
xorl %ebp,%esi
xorl %eax,%ebp
addl %edx,%ecx
vpalignr $8,%xmm6,%xmm7,%xmm8
vpxor %xmm4,%xmm0,%xmm0
addl 0(%rsp),%ebx
andl %ebp,%esi
xorl %eax,%ebp
shrdl $7,%edx,%edx
vpxor %xmm1,%xmm0,%xmm0
movl %ecx,%edi
xorl %ebp,%esi
vpaddd %xmm7,%xmm11,%xmm9
shldl $5,%ecx,%ecx
addl %esi,%ebx
vpxor %xmm8,%xmm0,%xmm0
xorl %edx,%edi
xorl %ebp,%edx
addl %ecx,%ebx
addl 4(%rsp),%eax
vpsrld $30,%xmm0,%xmm8
vmovdqa %xmm9,48(%rsp)
andl %edx,%edi
xorl %ebp,%edx
shrdl $7,%ecx,%ecx
movl %ebx,%esi
vpslld $2,%xmm0,%xmm0
xorl %edx,%edi
shldl $5,%ebx,%ebx
addl %edi,%eax
xorl %ecx,%esi
xorl %edx,%ecx
addl %ebx,%eax
addl 8(%rsp),%ebp
andl %ecx,%esi
vpor %xmm8,%xmm0,%xmm0
xorl %edx,%ecx
shrdl $7,%ebx,%ebx
movl %eax,%edi
xorl %ecx,%esi
shldl $5,%eax,%eax
addl %esi,%ebp
xorl %ebx,%edi
xorl %ecx,%ebx
addl %eax,%ebp
addl 12(%rsp),%edx
andl %ebx,%edi
xorl %ecx,%ebx
shrdl $7,%eax,%eax
movl %ebp,%esi
xorl %ebx,%edi
shldl $5,%ebp,%ebp
addl %edi,%edx
xorl %eax,%esi
xorl %ebx,%eax
addl %ebp,%edx
vpalignr $8,%xmm7,%xmm0,%xmm8
vpxor %xmm5,%xmm1,%xmm1
addl 16(%rsp),%ecx
andl %eax,%esi
xorl %ebx,%eax
shrdl $7,%ebp,%ebp
vpxor %xmm2,%xmm1,%xmm1
movl %edx,%edi
xorl %eax,%esi
vpaddd %xmm0,%xmm11,%xmm9
shldl $5,%edx,%edx
addl %esi,%ecx
vpxor %xmm8,%xmm1,%xmm1
xorl %ebp,%edi
xorl %eax,%ebp
addl %edx,%ecx
addl 20(%rsp),%ebx
vpsrld $30,%xmm1,%xmm8
vmovdqa %xmm9,0(%rsp)
andl %ebp,%edi
xorl %eax,%ebp
shrdl $7,%edx,%edx
movl %ecx,%esi
vpslld $2,%xmm1,%xmm1
xorl %ebp,%edi
shldl $5,%ecx,%ecx
addl %edi,%ebx
xorl %edx,%esi
xorl %ebp,%edx
addl %ecx,%ebx
addl 24(%rsp),%eax
andl %edx,%esi
vpor %xmm8,%xmm1,%xmm1
xorl %ebp,%edx
shrdl $7,%ecx,%ecx
movl %ebx,%edi
xorl %edx,%esi
shldl $5,%ebx,%ebx
addl %esi,%eax
xorl %ecx,%edi
xorl %edx,%ecx
addl %ebx,%eax
addl 28(%rsp),%ebp
andl %ecx,%edi
xorl %edx,%ecx
shrdl $7,%ebx,%ebx
movl %eax,%esi
xorl %ecx,%edi
shldl $5,%eax,%eax
addl %edi,%ebp
xorl %ebx,%esi
xorl %ecx,%ebx
addl %eax,%ebp
vpalignr $8,%xmm0,%xmm1,%xmm8
vpxor %xmm6,%xmm2,%xmm2
addl 32(%rsp),%edx
andl %ebx,%esi
xorl %ecx,%ebx
shrdl $7,%eax,%eax
vpxor %xmm3,%xmm2,%xmm2
movl %ebp,%edi
xorl %ebx,%esi
vpaddd %xmm1,%xmm11,%xmm9
shldl $5,%ebp,%ebp
addl %esi,%edx
vpxor %xmm8,%xmm2,%xmm2
xorl %eax,%edi
xorl %ebx,%eax
addl %ebp,%edx
addl 36(%rsp),%ecx
vpsrld $30,%xmm2,%xmm8
vmovdqa %xmm9,16(%rsp)
andl %eax,%edi
xorl %ebx,%eax
shrdl $7,%ebp,%ebp
movl %edx,%esi
vpslld $2,%xmm2,%xmm2
xorl %eax,%edi
shldl $5,%edx,%edx
addl %edi,%ecx
xorl %ebp,%esi
xorl %eax,%ebp
addl %edx,%ecx
addl 40(%rsp),%ebx
andl %ebp,%esi
vpor %xmm8,%xmm2,%xmm2
xorl %eax,%ebp
shrdl $7,%edx,%edx
movl %ecx,%edi
xorl %ebp,%esi
shldl $5,%ecx,%ecx
addl %esi,%ebx
xorl %edx,%edi
xorl %ebp,%edx
addl %ecx,%ebx
addl 44(%rsp),%eax
andl %edx,%edi
xorl %ebp,%edx
shrdl $7,%ecx,%ecx
movl %ebx,%esi
xorl %edx,%edi
shldl $5,%ebx,%ebx
addl %edi,%eax
xorl %edx,%esi
addl %ebx,%eax
vpalignr $8,%xmm1,%xmm2,%xmm8
vpxor %xmm7,%xmm3,%xmm3
addl 48(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
shldl $5,%eax,%eax
vpxor %xmm4,%xmm3,%xmm3
addl %esi,%ebp
xorl %ecx,%edi
vpaddd %xmm2,%xmm11,%xmm9
shrdl $7,%ebx,%ebx
addl %eax,%ebp
vpxor %xmm8,%xmm3,%xmm3
addl 52(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
shldl $5,%ebp,%ebp
vpsrld $30,%xmm3,%xmm8
vmovdqa %xmm9,32(%rsp)
addl %edi,%edx
xorl %ebx,%esi
shrdl $7,%eax,%eax
addl %ebp,%edx
vpslld $2,%xmm3,%xmm3
addl 56(%rsp),%ecx
xorl %eax,%esi
movl %edx,%edi
shldl $5,%edx,%edx
addl %esi,%ecx
xorl %eax,%edi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
vpor %xmm8,%xmm3,%xmm3
addl 60(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
shldl $5,%ecx,%ecx
addl %edi,%ebx
xorl %ebp,%esi
shrdl $7,%edx,%edx
addl %ecx,%ebx
addl 0(%rsp),%eax
vpaddd %xmm3,%xmm11,%xmm9
xorl %edx,%esi
movl %ebx,%edi
shldl $5,%ebx,%ebx
addl %esi,%eax
vmovdqa %xmm9,48(%rsp)
xorl %edx,%edi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
addl 4(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
shldl $5,%eax,%eax
addl %edi,%ebp
xorl %ecx,%esi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
addl 8(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
shldl $5,%ebp,%ebp
addl %esi,%edx
xorl %ebx,%edi
shrdl $7,%eax,%eax
addl %ebp,%edx
addl 12(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
shldl $5,%edx,%edx
addl %edi,%ecx
xorl %eax,%esi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
cmpq %r10,%r9
je L$done_avx
vmovdqa 64(%r11),%xmm6
vmovdqa -64(%r11),%xmm11
vmovdqu 0(%r9),%xmm0
vmovdqu 16(%r9),%xmm1
vmovdqu 32(%r9),%xmm2
vmovdqu 48(%r9),%xmm3
vpshufb %xmm6,%xmm0,%xmm0
addq $64,%r9
addl 16(%rsp),%ebx
xorl %ebp,%esi
vpshufb %xmm6,%xmm1,%xmm1
movl %ecx,%edi
shldl $5,%ecx,%ecx
vpaddd %xmm11,%xmm0,%xmm4
addl %esi,%ebx
xorl %ebp,%edi
shrdl $7,%edx,%edx
addl %ecx,%ebx
vmovdqa %xmm4,0(%rsp)
addl 20(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
shldl $5,%ebx,%ebx
addl %edi,%eax
xorl %edx,%esi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
addl 24(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
shldl $5,%eax,%eax
addl %esi,%ebp
xorl %ecx,%edi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
addl 28(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
shldl $5,%ebp,%ebp
addl %edi,%edx
xorl %ebx,%esi
shrdl $7,%eax,%eax
addl %ebp,%edx
addl 32(%rsp),%ecx
xorl %eax,%esi
vpshufb %xmm6,%xmm2,%xmm2
movl %edx,%edi
shldl $5,%edx,%edx
vpaddd %xmm11,%xmm1,%xmm5
addl %esi,%ecx
xorl %eax,%edi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
vmovdqa %xmm5,16(%rsp)
addl 36(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
shldl $5,%ecx,%ecx
addl %edi,%ebx
xorl %ebp,%esi
shrdl $7,%edx,%edx
addl %ecx,%ebx
addl 40(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
shldl $5,%ebx,%ebx
addl %esi,%eax
xorl %edx,%edi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
addl 44(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
shldl $5,%eax,%eax
addl %edi,%ebp
xorl %ecx,%esi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
addl 48(%rsp),%edx
xorl %ebx,%esi
vpshufb %xmm6,%xmm3,%xmm3
movl %ebp,%edi
shldl $5,%ebp,%ebp
vpaddd %xmm11,%xmm2,%xmm6
addl %esi,%edx
xorl %ebx,%edi
shrdl $7,%eax,%eax
addl %ebp,%edx
vmovdqa %xmm6,32(%rsp)
addl 52(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
shldl $5,%edx,%edx
addl %edi,%ecx
xorl %eax,%esi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
addl 56(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
shldl $5,%ecx,%ecx
addl %esi,%ebx
xorl %ebp,%edi
shrdl $7,%edx,%edx
addl %ecx,%ebx
addl 60(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
shldl $5,%ebx,%ebx
addl %edi,%eax
shrdl $7,%ecx,%ecx
addl %ebx,%eax
addl 0(%r8),%eax
addl 4(%r8),%esi
addl 8(%r8),%ecx
addl 12(%r8),%edx
movl %eax,0(%r8)
addl 16(%r8),%ebp
movl %esi,4(%r8)
movl %esi,%ebx
movl %ecx,8(%r8)
movl %ecx,%edi
movl %edx,12(%r8)
xorl %edx,%edi
movl %ebp,16(%r8)
andl %edi,%esi
jmp L$oop_avx
.p2align 4
L$done_avx:
addl 16(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
shldl $5,%ecx,%ecx
addl %esi,%ebx
xorl %ebp,%edi
shrdl $7,%edx,%edx
addl %ecx,%ebx
addl 20(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
shldl $5,%ebx,%ebx
addl %edi,%eax
xorl %edx,%esi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
addl 24(%rsp),%ebp
xorl %ecx,%esi
movl %eax,%edi
shldl $5,%eax,%eax
addl %esi,%ebp
xorl %ecx,%edi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
addl 28(%rsp),%edx
xorl %ebx,%edi
movl %ebp,%esi
shldl $5,%ebp,%ebp
addl %edi,%edx
xorl %ebx,%esi
shrdl $7,%eax,%eax
addl %ebp,%edx
addl 32(%rsp),%ecx
xorl %eax,%esi
movl %edx,%edi
shldl $5,%edx,%edx
addl %esi,%ecx
xorl %eax,%edi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
addl 36(%rsp),%ebx
xorl %ebp,%edi
movl %ecx,%esi
shldl $5,%ecx,%ecx
addl %edi,%ebx
xorl %ebp,%esi
shrdl $7,%edx,%edx
addl %ecx,%ebx
addl 40(%rsp),%eax
xorl %edx,%esi
movl %ebx,%edi
shldl $5,%ebx,%ebx
addl %esi,%eax
xorl %edx,%edi
shrdl $7,%ecx,%ecx
addl %ebx,%eax
addl 44(%rsp),%ebp
xorl %ecx,%edi
movl %eax,%esi
shldl $5,%eax,%eax
addl %edi,%ebp
xorl %ecx,%esi
shrdl $7,%ebx,%ebx
addl %eax,%ebp
addl 48(%rsp),%edx
xorl %ebx,%esi
movl %ebp,%edi
shldl $5,%ebp,%ebp
addl %esi,%edx
xorl %ebx,%edi
shrdl $7,%eax,%eax
addl %ebp,%edx
addl 52(%rsp),%ecx
xorl %eax,%edi
movl %edx,%esi
shldl $5,%edx,%edx
addl %edi,%ecx
xorl %eax,%esi
shrdl $7,%ebp,%ebp
addl %edx,%ecx
addl 56(%rsp),%ebx
xorl %ebp,%esi
movl %ecx,%edi
shldl $5,%ecx,%ecx
addl %esi,%ebx
xorl %ebp,%edi
shrdl $7,%edx,%edx
addl %ecx,%ebx
addl 60(%rsp),%eax
xorl %edx,%edi
movl %ebx,%esi
shldl $5,%ebx,%ebx
addl %edi,%eax
shrdl $7,%ecx,%ecx
addl %ebx,%eax
vzeroupper
addl 0(%r8),%eax
addl 4(%r8),%esi
addl 8(%r8),%ecx
movl %eax,0(%r8)
addl 12(%r8),%edx
movl %esi,4(%r8)
addl 16(%r8),%ebp
movl %ecx,8(%r8)
movl %edx,12(%r8)
movl %ebp,16(%r8)
leaq (%r14),%rsi
movq -40(%rsi),%r14
movq -32(%rsi),%r13
movq -24(%rsi),%r12
movq -16(%rsi),%rbp
movq -8(%rsi),%rbx
leaq (%rsi),%rsp
L$epilogue_avx:
.byte 0xf3,0xc3
.p2align 6
K_XX_XX:
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
.long 0x5a827999,0x5a827999,0x5a827999,0x5a827999
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
.long 0x6ed9eba1,0x6ed9eba1,0x6ed9eba1,0x6ed9eba1
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc,0x8f1bbcdc
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0xca62c1d6,0xca62c1d6,0xca62c1d6,0xca62c1d6
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
.byte 0xf,0xe,0xd,0xc,0xb,0xa,0x9,0x8,0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0
.byte 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115,102,111,114,109,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
.p2align 6
#endif