|
Packit Service |
ff7022 |
# Copyright (c) 2011-2016, Andy Polyakov <appro@openssl.org>
|
|
Packit Service |
4684c1 |
# All rights reserved.
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# Redistribution and use in source and binary forms, with or without
|
|
Packit Service |
4684c1 |
# modification, are permitted provided that the following conditions
|
|
Packit Service |
4684c1 |
# are met:
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# * Redistributions of source code must retain copyright notices,
|
|
Packit Service |
4684c1 |
# this list of conditions and the following disclaimer.
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# * Redistributions in binary form must reproduce the above
|
|
Packit Service |
4684c1 |
# copyright notice, this list of conditions and the following
|
|
Packit Service |
4684c1 |
# disclaimer in the documentation and/or other materials
|
|
Packit Service |
4684c1 |
# provided with the distribution.
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# * Neither the name of the Andy Polyakov nor the names of its
|
|
Packit Service |
4684c1 |
# copyright holder and contributors may be used to endorse or
|
|
Packit Service |
4684c1 |
# promote products derived from this software without specific
|
|
Packit Service |
4684c1 |
# prior written permission.
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# ALTERNATIVELY, provided that this notice is retained in full, this
|
|
Packit Service |
4684c1 |
# product may be distributed under the terms of the GNU General Public
|
|
Packit Service |
4684c1 |
# License (GPL), in which case the provisions of the GPL apply INSTEAD OF
|
|
Packit Service |
4684c1 |
# those given above.
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS
|
|
Packit Service |
4684c1 |
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
Packit Service |
4684c1 |
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
Packit Service |
4684c1 |
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
Packit Service |
4684c1 |
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
Packit Service |
4684c1 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
Packit Service |
4684c1 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
Packit Service |
4684c1 |
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
Packit Service |
4684c1 |
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
Packit Service |
4684c1 |
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
Packit Service |
4684c1 |
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
# *** This file is auto-generated ***
|
|
Packit Service |
4684c1 |
#
|
|
Packit Service |
4684c1 |
.text
|
|
Packit Service |
4684c1 |
.globl padlock_capability
|
|
Packit Service |
4684c1 |
.type padlock_capability,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_capability:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rbx,%r8
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cpuid
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
ff7022 |
cmpl $0x746e6543,%ebx
|
|
Packit Service |
ff7022 |
jne .Lzhaoxin
|
|
Packit Service |
ff7022 |
cmpl $0x48727561,%edx
|
|
Packit Service |
4684c1 |
jne .Lnoluck
|
|
Packit Service |
ff7022 |
cmpl $0x736c7561,%ecx
|
|
Packit Service |
4684c1 |
jne .Lnoluck
|
|
Packit Service |
ff7022 |
jmp .LzhaoxinEnd
|
|
Packit Service |
ff7022 |
.Lzhaoxin:
|
|
Packit Service |
ff7022 |
cmpl $0x68532020,%ebx
|
|
Packit Service |
4684c1 |
jne .Lnoluck
|
|
Packit Service |
ff7022 |
cmpl $0x68676e61,%edx
|
|
Packit Service |
ff7022 |
jne .Lnoluck
|
|
Packit Service |
ff7022 |
cmpl $0x20206961,%ecx
|
|
Packit Service |
ff7022 |
jne .Lnoluck
|
|
Packit Service |
ff7022 |
.LzhaoxinEnd:
|
|
Packit Service |
ff7022 |
movl $0xC0000000,%eax
|
|
Packit Service |
4684c1 |
cpuid
|
|
Packit Service |
4684c1 |
movl %eax,%edx
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
ff7022 |
cmpl $0xC0000001,%edx
|
|
Packit Service |
4684c1 |
jb .Lnoluck
|
|
Packit Service |
ff7022 |
movl $0xC0000001,%eax
|
|
Packit Service |
4684c1 |
cpuid
|
|
Packit Service |
4684c1 |
movl %edx,%eax
|
|
Packit Service |
ff7022 |
andl $0xffffffef,%eax
|
|
Packit Service |
ff7022 |
orl $0x10,%eax
|
|
Packit Service |
4684c1 |
.Lnoluck:
|
|
Packit Service |
4684c1 |
movq %r8,%rbx
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_capability,.-padlock_capability
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_key_bswap
|
|
Packit Service |
4684c1 |
.type padlock_key_bswap,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_key_bswap:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movl 240(%rdi),%edx
|
|
Packit Service |
4684c1 |
.Lbswap_loop:
|
|
Packit Service |
4684c1 |
movl (%rdi),%eax
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
4684c1 |
movl %eax,(%rdi)
|
|
Packit Service |
4684c1 |
leaq 4(%rdi),%rdi
|
|
Packit Service |
4684c1 |
subl $1,%edx
|
|
Packit Service |
4684c1 |
jnz .Lbswap_loop
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_key_bswap,.-padlock_key_bswap
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_verify_context
|
|
Packit Service |
4684c1 |
.type padlock_verify_context,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_verify_context:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rdi,%rdx
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
leaq .Lpadlock_saved_context(%rip),%rax
|
|
Packit Service |
4684c1 |
call _padlock_verify_ctx
|
|
Packit Service |
4684c1 |
leaq 8(%rsp),%rsp
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_verify_context,.-padlock_verify_context
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.type _padlock_verify_ctx,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
_padlock_verify_ctx:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq 8(%rsp),%r8
|
|
Packit Service |
4684c1 |
btq $30,%r8
|
|
Packit Service |
4684c1 |
jnc .Lverified
|
|
Packit Service |
4684c1 |
cmpq (%rax),%rdx
|
|
Packit Service |
4684c1 |
je .Lverified
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
popf
|
|
Packit Service |
4684c1 |
.Lverified:
|
|
Packit Service |
4684c1 |
movq %rdx,(%rax)
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size _padlock_verify_ctx,.-_padlock_verify_ctx
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_reload_key
|
|
Packit Service |
4684c1 |
.type padlock_reload_key,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_reload_key:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
popf
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_reload_key,.-padlock_reload_key
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_aes_block
|
|
Packit Service |
4684c1 |
.type padlock_aes_block,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_aes_block:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rbx,%r8
|
|
Packit Service |
4684c1 |
movq $1,%rcx
|
|
Packit Service |
4684c1 |
leaq 32(%rdx),%rbx
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rdx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,0xc8
|
|
Packit Service |
4684c1 |
movq %r8,%rbx
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_aes_block,.-padlock_aes_block
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_xstore
|
|
Packit Service |
4684c1 |
.type padlock_xstore,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_xstore:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movl %esi,%edx
|
|
Packit Service |
ff7022 |
.byte 0x0f,0xa7,0xc0
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_xstore,.-padlock_xstore
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_sha1_oneshot
|
|
Packit Service |
4684c1 |
.type padlock_sha1_oneshot,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_sha1_oneshot:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rdx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rdx
|
|
Packit Service |
4684c1 |
movups (%rdi),%xmm0
|
|
Packit Service |
4684c1 |
subq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movl 16(%rdi),%eax
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rsp)
|
|
Packit Service |
4684c1 |
movq %rsp,%rdi
|
|
Packit Service |
4684c1 |
movl %eax,16(%rsp)
|
|
Packit Service |
4684c1 |
xorq %rax,%rax
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa6,0xc8
|
|
Packit Service |
4684c1 |
movaps (%rsp),%xmm0
|
|
Packit Service |
4684c1 |
movl 16(%rsp),%eax
|
|
Packit Service |
4684c1 |
addq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups %xmm0,(%rdx)
|
|
Packit Service |
4684c1 |
movl %eax,16(%rdx)
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_sha1_oneshot,.-padlock_sha1_oneshot
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_sha1_blocks
|
|
Packit Service |
4684c1 |
.type padlock_sha1_blocks,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_sha1_blocks:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rdx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rdx
|
|
Packit Service |
4684c1 |
movups (%rdi),%xmm0
|
|
Packit Service |
4684c1 |
subq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movl 16(%rdi),%eax
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rsp)
|
|
Packit Service |
4684c1 |
movq %rsp,%rdi
|
|
Packit Service |
4684c1 |
movl %eax,16(%rsp)
|
|
Packit Service |
4684c1 |
movq $-1,%rax
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa6,0xc8
|
|
Packit Service |
4684c1 |
movaps (%rsp),%xmm0
|
|
Packit Service |
4684c1 |
movl 16(%rsp),%eax
|
|
Packit Service |
4684c1 |
addq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups %xmm0,(%rdx)
|
|
Packit Service |
4684c1 |
movl %eax,16(%rdx)
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_sha1_blocks,.-padlock_sha1_blocks
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_sha256_oneshot
|
|
Packit Service |
4684c1 |
.type padlock_sha256_oneshot,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_sha256_oneshot:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rdx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rdx
|
|
Packit Service |
4684c1 |
movups (%rdi),%xmm0
|
|
Packit Service |
4684c1 |
subq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups 16(%rdi),%xmm1
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rsp)
|
|
Packit Service |
4684c1 |
movq %rsp,%rdi
|
|
Packit Service |
4684c1 |
movaps %xmm1,16(%rsp)
|
|
Packit Service |
4684c1 |
xorq %rax,%rax
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa6,0xd0
|
|
Packit Service |
4684c1 |
movaps (%rsp),%xmm0
|
|
Packit Service |
4684c1 |
movaps 16(%rsp),%xmm1
|
|
Packit Service |
4684c1 |
addq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups %xmm0,(%rdx)
|
|
Packit Service |
4684c1 |
movups %xmm1,16(%rdx)
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_sha256_oneshot,.-padlock_sha256_oneshot
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_sha256_blocks
|
|
Packit Service |
4684c1 |
.type padlock_sha256_blocks,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_sha256_blocks:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rdx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rdx
|
|
Packit Service |
4684c1 |
movups (%rdi),%xmm0
|
|
Packit Service |
4684c1 |
subq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups 16(%rdi),%xmm1
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rsp)
|
|
Packit Service |
4684c1 |
movq %rsp,%rdi
|
|
Packit Service |
4684c1 |
movaps %xmm1,16(%rsp)
|
|
Packit Service |
4684c1 |
movq $-1,%rax
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa6,0xd0
|
|
Packit Service |
4684c1 |
movaps (%rsp),%xmm0
|
|
Packit Service |
4684c1 |
movaps 16(%rsp),%xmm1
|
|
Packit Service |
4684c1 |
addq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups %xmm0,(%rdx)
|
|
Packit Service |
4684c1 |
movups %xmm1,16(%rdx)
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_sha256_blocks,.-padlock_sha256_blocks
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.globl padlock_sha512_blocks
|
|
Packit Service |
4684c1 |
.type padlock_sha512_blocks,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_sha512_blocks:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
movq %rdx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rdx
|
|
Packit Service |
4684c1 |
movups (%rdi),%xmm0
|
|
Packit Service |
4684c1 |
subq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups 16(%rdi),%xmm1
|
|
Packit Service |
4684c1 |
movups 32(%rdi),%xmm2
|
|
Packit Service |
4684c1 |
movups 48(%rdi),%xmm3
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rsp)
|
|
Packit Service |
4684c1 |
movq %rsp,%rdi
|
|
Packit Service |
4684c1 |
movaps %xmm1,16(%rsp)
|
|
Packit Service |
4684c1 |
movaps %xmm2,32(%rsp)
|
|
Packit Service |
4684c1 |
movaps %xmm3,48(%rsp)
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa6,0xe0
|
|
Packit Service |
4684c1 |
movaps (%rsp),%xmm0
|
|
Packit Service |
4684c1 |
movaps 16(%rsp),%xmm1
|
|
Packit Service |
4684c1 |
movaps 32(%rsp),%xmm2
|
|
Packit Service |
4684c1 |
movaps 48(%rsp),%xmm3
|
|
Packit Service |
4684c1 |
addq $128+8,%rsp
|
|
Packit Service |
4684c1 |
movups %xmm0,(%rdx)
|
|
Packit Service |
4684c1 |
movups %xmm1,16(%rdx)
|
|
Packit Service |
4684c1 |
movups %xmm2,32(%rdx)
|
|
Packit Service |
4684c1 |
movups %xmm3,48(%rdx)
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_sha512_blocks,.-padlock_sha512_blocks
|
|
Packit Service |
4684c1 |
.globl padlock_ecb_encrypt
|
|
Packit Service |
4684c1 |
.type padlock_ecb_encrypt,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_ecb_encrypt:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
pushq %rbp
|
|
Packit Service |
4684c1 |
pushq %rbx
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
testq $15,%rdx
|
|
Packit Service |
4684c1 |
jnz .Lecb_abort
|
|
Packit Service |
4684c1 |
testq $15,%rcx
|
|
Packit Service |
4684c1 |
jnz .Lecb_abort
|
|
Packit Service |
4684c1 |
leaq .Lpadlock_saved_context(%rip),%rax
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
cld
|
|
Packit Service |
4684c1 |
call _padlock_verify_ctx
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rdx
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
xorl %ebx,%ebx
|
|
Packit Service |
4684c1 |
testl $32,(%rdx)
|
|
Packit Service |
4684c1 |
jnz .Lecb_aligned
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
setz %al
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
setz %bl
|
|
Packit Service |
4684c1 |
testl %ebx,%eax
|
|
Packit Service |
4684c1 |
jnz .Lecb_aligned
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
notq %rax
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
cmovcq %rcx,%rbx
|
|
Packit Service |
4684c1 |
andq %rbx,%rax
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
andq $512-1,%rbx
|
|
Packit Service |
4684c1 |
leaq (%rax,%rbp,1),%rsp
|
|
Packit Service |
4684c1 |
movq $512,%rax
|
|
Packit Service |
4684c1 |
cmovzq %rax,%rbx
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
ja .Lecb_loop
|
|
Packit Service |
4684c1 |
movq %rsi,%rax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rdi,%rax
|
|
Packit Service |
4684c1 |
addq %rcx,%rax
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
ff7022 |
andq $0xfff,%rax
|
|
Packit Service |
4684c1 |
cmpq $128,%rax
|
|
Packit Service |
4684c1 |
movq $-128,%rax
|
|
Packit Service |
4684c1 |
cmovaeq %rbx,%rax
|
|
Packit Service |
4684c1 |
andq %rax,%rbx
|
|
Packit Service |
4684c1 |
jz .Lecb_unaligned_tail
|
|
Packit Service |
4684c1 |
jmp .Lecb_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lecb_loop:
|
|
Packit Service |
4684c1 |
cmpq %rcx,%rbx
|
|
Packit Service |
4684c1 |
cmovaq %rcx,%rbx
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rsi,%r9
|
|
Packit Service |
4684c1 |
movq %rcx,%r10
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rbx,%r11
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
cmovnzq %rsp,%rdi
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
jz .Lecb_inp_aligned
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rsi
|
|
Packit Service |
4684c1 |
.Lecb_inp_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,200
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %r11,%rbx
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
jz .Lecb_out_aligned
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
.Lecb_out_aligned:
|
|
Packit Service |
4684c1 |
movq %r9,%rsi
|
|
Packit Service |
4684c1 |
movq %r10,%rcx
|
|
Packit Service |
4684c1 |
addq %rbx,%rdi
|
|
Packit Service |
4684c1 |
addq %rbx,%rsi
|
|
Packit Service |
4684c1 |
subq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
jz .Lecb_break
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jae .Lecb_loop
|
|
Packit Service |
4684c1 |
.Lecb_unaligned_tail:
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rcx,%rax
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
subq %rax,%rsp
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rdi
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
movq %rsp,%rsi
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jmp .Lecb_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lecb_break:
|
|
Packit Service |
4684c1 |
cmpq %rbp,%rsp
|
|
Packit Service |
4684c1 |
je .Lecb_done
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
pxor %xmm0,%xmm0
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rax
|
|
Packit Service |
4684c1 |
.Lecb_bzero:
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rax)
|
|
Packit Service |
4684c1 |
leaq 16(%rax),%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rbp
|
|
Packit Service |
4684c1 |
ja .Lecb_bzero
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lecb_done:
|
|
Packit Service |
4684c1 |
leaq (%rbp),%rsp
|
|
Packit Service |
4684c1 |
jmp .Lecb_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lecb_aligned:
|
|
Packit Service |
4684c1 |
leaq (%rsi,%rcx,1),%rbp
|
|
Packit Service |
4684c1 |
negq %rbp
|
|
Packit Service |
ff7022 |
andq $0xfff,%rbp
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cmpq $128,%rbp
|
|
Packit Service |
4684c1 |
movq $128-1,%rbp
|
|
Packit Service |
4684c1 |
cmovaeq %rax,%rbp
|
|
Packit Service |
4684c1 |
andq %rcx,%rbp
|
|
Packit Service |
4684c1 |
subq %rbp,%rcx
|
|
Packit Service |
4684c1 |
jz .Lecb_aligned_tail
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,200
|
|
Packit Service |
4684c1 |
testq %rbp,%rbp
|
|
Packit Service |
4684c1 |
jz .Lecb_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lecb_aligned_tail:
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rbp,%rbx
|
|
Packit Service |
4684c1 |
movq %rbp,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
subq %rcx,%rsp
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rdi
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
leaq (%r8),%rdi
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jmp .Lecb_loop
|
|
Packit Service |
4684c1 |
.Lecb_exit:
|
|
Packit Service |
4684c1 |
movl $1,%eax
|
|
Packit Service |
4684c1 |
leaq 8(%rsp),%rsp
|
|
Packit Service |
4684c1 |
.Lecb_abort:
|
|
Packit Service |
4684c1 |
popq %rbx
|
|
Packit Service |
4684c1 |
popq %rbp
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_ecb_encrypt,.-padlock_ecb_encrypt
|
|
Packit Service |
4684c1 |
.globl padlock_cbc_encrypt
|
|
Packit Service |
4684c1 |
.type padlock_cbc_encrypt,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_cbc_encrypt:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
pushq %rbp
|
|
Packit Service |
4684c1 |
pushq %rbx
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
testq $15,%rdx
|
|
Packit Service |
4684c1 |
jnz .Lcbc_abort
|
|
Packit Service |
4684c1 |
testq $15,%rcx
|
|
Packit Service |
4684c1 |
jnz .Lcbc_abort
|
|
Packit Service |
4684c1 |
leaq .Lpadlock_saved_context(%rip),%rax
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
cld
|
|
Packit Service |
4684c1 |
call _padlock_verify_ctx
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rdx
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
xorl %ebx,%ebx
|
|
Packit Service |
4684c1 |
testl $32,(%rdx)
|
|
Packit Service |
4684c1 |
jnz .Lcbc_aligned
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
setz %al
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
setz %bl
|
|
Packit Service |
4684c1 |
testl %ebx,%eax
|
|
Packit Service |
4684c1 |
jnz .Lcbc_aligned
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
notq %rax
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
cmovcq %rcx,%rbx
|
|
Packit Service |
4684c1 |
andq %rbx,%rax
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
andq $512-1,%rbx
|
|
Packit Service |
4684c1 |
leaq (%rax,%rbp,1),%rsp
|
|
Packit Service |
4684c1 |
movq $512,%rax
|
|
Packit Service |
4684c1 |
cmovzq %rax,%rbx
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
ja .Lcbc_loop
|
|
Packit Service |
4684c1 |
movq %rsi,%rax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rdi,%rax
|
|
Packit Service |
4684c1 |
addq %rcx,%rax
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
ff7022 |
andq $0xfff,%rax
|
|
Packit Service |
4684c1 |
cmpq $64,%rax
|
|
Packit Service |
4684c1 |
movq $-64,%rax
|
|
Packit Service |
4684c1 |
cmovaeq %rbx,%rax
|
|
Packit Service |
4684c1 |
andq %rax,%rbx
|
|
Packit Service |
4684c1 |
jz .Lcbc_unaligned_tail
|
|
Packit Service |
4684c1 |
jmp .Lcbc_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lcbc_loop:
|
|
Packit Service |
4684c1 |
cmpq %rcx,%rbx
|
|
Packit Service |
4684c1 |
cmovaq %rcx,%rbx
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rsi,%r9
|
|
Packit Service |
4684c1 |
movq %rcx,%r10
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rbx,%r11
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
cmovnzq %rsp,%rdi
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
jz .Lcbc_inp_aligned
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rsi
|
|
Packit Service |
4684c1 |
.Lcbc_inp_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,208
|
|
Packit Service |
4684c1 |
movdqa (%rax),%xmm0
|
|
Packit Service |
4684c1 |
movdqa %xmm0,-16(%rdx)
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %r11,%rbx
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
jz .Lcbc_out_aligned
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
.Lcbc_out_aligned:
|
|
Packit Service |
4684c1 |
movq %r9,%rsi
|
|
Packit Service |
4684c1 |
movq %r10,%rcx
|
|
Packit Service |
4684c1 |
addq %rbx,%rdi
|
|
Packit Service |
4684c1 |
addq %rbx,%rsi
|
|
Packit Service |
4684c1 |
subq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
jz .Lcbc_break
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jae .Lcbc_loop
|
|
Packit Service |
4684c1 |
.Lcbc_unaligned_tail:
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rcx,%rax
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
subq %rax,%rsp
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rdi
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
movq %rsp,%rsi
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jmp .Lcbc_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lcbc_break:
|
|
Packit Service |
4684c1 |
cmpq %rbp,%rsp
|
|
Packit Service |
4684c1 |
je .Lcbc_done
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
pxor %xmm0,%xmm0
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rax
|
|
Packit Service |
4684c1 |
.Lcbc_bzero:
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rax)
|
|
Packit Service |
4684c1 |
leaq 16(%rax),%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rbp
|
|
Packit Service |
4684c1 |
ja .Lcbc_bzero
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lcbc_done:
|
|
Packit Service |
4684c1 |
leaq (%rbp),%rsp
|
|
Packit Service |
4684c1 |
jmp .Lcbc_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lcbc_aligned:
|
|
Packit Service |
4684c1 |
leaq (%rsi,%rcx,1),%rbp
|
|
Packit Service |
4684c1 |
negq %rbp
|
|
Packit Service |
ff7022 |
andq $0xfff,%rbp
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cmpq $64,%rbp
|
|
Packit Service |
4684c1 |
movq $64-1,%rbp
|
|
Packit Service |
4684c1 |
cmovaeq %rax,%rbp
|
|
Packit Service |
4684c1 |
andq %rcx,%rbp
|
|
Packit Service |
4684c1 |
subq %rbp,%rcx
|
|
Packit Service |
4684c1 |
jz .Lcbc_aligned_tail
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,208
|
|
Packit Service |
4684c1 |
movdqa (%rax),%xmm0
|
|
Packit Service |
4684c1 |
movdqa %xmm0,-16(%rdx)
|
|
Packit Service |
4684c1 |
testq %rbp,%rbp
|
|
Packit Service |
4684c1 |
jz .Lcbc_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lcbc_aligned_tail:
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rbp,%rbx
|
|
Packit Service |
4684c1 |
movq %rbp,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
subq %rcx,%rsp
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rdi
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
leaq (%r8),%rdi
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jmp .Lcbc_loop
|
|
Packit Service |
4684c1 |
.Lcbc_exit:
|
|
Packit Service |
4684c1 |
movl $1,%eax
|
|
Packit Service |
4684c1 |
leaq 8(%rsp),%rsp
|
|
Packit Service |
4684c1 |
.Lcbc_abort:
|
|
Packit Service |
4684c1 |
popq %rbx
|
|
Packit Service |
4684c1 |
popq %rbp
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_cbc_encrypt,.-padlock_cbc_encrypt
|
|
Packit Service |
4684c1 |
.globl padlock_cfb_encrypt
|
|
Packit Service |
4684c1 |
.type padlock_cfb_encrypt,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_cfb_encrypt:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
pushq %rbp
|
|
Packit Service |
4684c1 |
pushq %rbx
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
testq $15,%rdx
|
|
Packit Service |
4684c1 |
jnz .Lcfb_abort
|
|
Packit Service |
4684c1 |
testq $15,%rcx
|
|
Packit Service |
4684c1 |
jnz .Lcfb_abort
|
|
Packit Service |
4684c1 |
leaq .Lpadlock_saved_context(%rip),%rax
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
cld
|
|
Packit Service |
4684c1 |
call _padlock_verify_ctx
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rdx
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
xorl %ebx,%ebx
|
|
Packit Service |
4684c1 |
testl $32,(%rdx)
|
|
Packit Service |
4684c1 |
jnz .Lcfb_aligned
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
setz %al
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
setz %bl
|
|
Packit Service |
4684c1 |
testl %ebx,%eax
|
|
Packit Service |
4684c1 |
jnz .Lcfb_aligned
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
notq %rax
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
cmovcq %rcx,%rbx
|
|
Packit Service |
4684c1 |
andq %rbx,%rax
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
andq $512-1,%rbx
|
|
Packit Service |
4684c1 |
leaq (%rax,%rbp,1),%rsp
|
|
Packit Service |
4684c1 |
movq $512,%rax
|
|
Packit Service |
4684c1 |
cmovzq %rax,%rbx
|
|
Packit Service |
4684c1 |
jmp .Lcfb_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lcfb_loop:
|
|
Packit Service |
4684c1 |
cmpq %rcx,%rbx
|
|
Packit Service |
4684c1 |
cmovaq %rcx,%rbx
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rsi,%r9
|
|
Packit Service |
4684c1 |
movq %rcx,%r10
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rbx,%r11
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
cmovnzq %rsp,%rdi
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
jz .Lcfb_inp_aligned
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rsi
|
|
Packit Service |
4684c1 |
.Lcfb_inp_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,224
|
|
Packit Service |
4684c1 |
movdqa (%rax),%xmm0
|
|
Packit Service |
4684c1 |
movdqa %xmm0,-16(%rdx)
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %r11,%rbx
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
jz .Lcfb_out_aligned
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
.Lcfb_out_aligned:
|
|
Packit Service |
4684c1 |
movq %r9,%rsi
|
|
Packit Service |
4684c1 |
movq %r10,%rcx
|
|
Packit Service |
4684c1 |
addq %rbx,%rdi
|
|
Packit Service |
4684c1 |
addq %rbx,%rsi
|
|
Packit Service |
4684c1 |
subq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
jnz .Lcfb_loop
|
|
Packit Service |
4684c1 |
cmpq %rbp,%rsp
|
|
Packit Service |
4684c1 |
je .Lcfb_done
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
pxor %xmm0,%xmm0
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rax
|
|
Packit Service |
4684c1 |
.Lcfb_bzero:
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rax)
|
|
Packit Service |
4684c1 |
leaq 16(%rax),%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rbp
|
|
Packit Service |
4684c1 |
ja .Lcfb_bzero
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lcfb_done:
|
|
Packit Service |
4684c1 |
leaq (%rbp),%rsp
|
|
Packit Service |
4684c1 |
jmp .Lcfb_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lcfb_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,224
|
|
Packit Service |
4684c1 |
movdqa (%rax),%xmm0
|
|
Packit Service |
4684c1 |
movdqa %xmm0,-16(%rdx)
|
|
Packit Service |
4684c1 |
.Lcfb_exit:
|
|
Packit Service |
4684c1 |
movl $1,%eax
|
|
Packit Service |
4684c1 |
leaq 8(%rsp),%rsp
|
|
Packit Service |
4684c1 |
.Lcfb_abort:
|
|
Packit Service |
4684c1 |
popq %rbx
|
|
Packit Service |
4684c1 |
popq %rbp
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_cfb_encrypt,.-padlock_cfb_encrypt
|
|
Packit Service |
4684c1 |
.globl padlock_ofb_encrypt
|
|
Packit Service |
4684c1 |
.type padlock_ofb_encrypt,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_ofb_encrypt:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
pushq %rbp
|
|
Packit Service |
4684c1 |
pushq %rbx
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
testq $15,%rdx
|
|
Packit Service |
4684c1 |
jnz .Lofb_abort
|
|
Packit Service |
4684c1 |
testq $15,%rcx
|
|
Packit Service |
4684c1 |
jnz .Lofb_abort
|
|
Packit Service |
4684c1 |
leaq .Lpadlock_saved_context(%rip),%rax
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
cld
|
|
Packit Service |
4684c1 |
call _padlock_verify_ctx
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rdx
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
xorl %ebx,%ebx
|
|
Packit Service |
4684c1 |
testl $32,(%rdx)
|
|
Packit Service |
4684c1 |
jnz .Lofb_aligned
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
setz %al
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
setz %bl
|
|
Packit Service |
4684c1 |
testl %ebx,%eax
|
|
Packit Service |
4684c1 |
jnz .Lofb_aligned
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
notq %rax
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
cmovcq %rcx,%rbx
|
|
Packit Service |
4684c1 |
andq %rbx,%rax
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
andq $512-1,%rbx
|
|
Packit Service |
4684c1 |
leaq (%rax,%rbp,1),%rsp
|
|
Packit Service |
4684c1 |
movq $512,%rax
|
|
Packit Service |
4684c1 |
cmovzq %rax,%rbx
|
|
Packit Service |
4684c1 |
jmp .Lofb_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lofb_loop:
|
|
Packit Service |
4684c1 |
cmpq %rcx,%rbx
|
|
Packit Service |
4684c1 |
cmovaq %rcx,%rbx
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rsi,%r9
|
|
Packit Service |
4684c1 |
movq %rcx,%r10
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rbx,%r11
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
cmovnzq %rsp,%rdi
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
jz .Lofb_inp_aligned
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rsi
|
|
Packit Service |
4684c1 |
.Lofb_inp_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,232
|
|
Packit Service |
4684c1 |
movdqa (%rax),%xmm0
|
|
Packit Service |
4684c1 |
movdqa %xmm0,-16(%rdx)
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %r11,%rbx
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
jz .Lofb_out_aligned
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
.Lofb_out_aligned:
|
|
Packit Service |
4684c1 |
movq %r9,%rsi
|
|
Packit Service |
4684c1 |
movq %r10,%rcx
|
|
Packit Service |
4684c1 |
addq %rbx,%rdi
|
|
Packit Service |
4684c1 |
addq %rbx,%rsi
|
|
Packit Service |
4684c1 |
subq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
jnz .Lofb_loop
|
|
Packit Service |
4684c1 |
cmpq %rbp,%rsp
|
|
Packit Service |
4684c1 |
je .Lofb_done
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
pxor %xmm0,%xmm0
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rax
|
|
Packit Service |
4684c1 |
.Lofb_bzero:
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rax)
|
|
Packit Service |
4684c1 |
leaq 16(%rax),%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rbp
|
|
Packit Service |
4684c1 |
ja .Lofb_bzero
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lofb_done:
|
|
Packit Service |
4684c1 |
leaq (%rbp),%rsp
|
|
Packit Service |
4684c1 |
jmp .Lofb_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lofb_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,232
|
|
Packit Service |
4684c1 |
movdqa (%rax),%xmm0
|
|
Packit Service |
4684c1 |
movdqa %xmm0,-16(%rdx)
|
|
Packit Service |
4684c1 |
.Lofb_exit:
|
|
Packit Service |
4684c1 |
movl $1,%eax
|
|
Packit Service |
4684c1 |
leaq 8(%rsp),%rsp
|
|
Packit Service |
4684c1 |
.Lofb_abort:
|
|
Packit Service |
4684c1 |
popq %rbx
|
|
Packit Service |
4684c1 |
popq %rbp
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_ofb_encrypt,.-padlock_ofb_encrypt
|
|
Packit Service |
4684c1 |
.globl padlock_ctr32_encrypt
|
|
Packit Service |
4684c1 |
.type padlock_ctr32_encrypt,@function
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
padlock_ctr32_encrypt:
|
|
Packit Service |
ff7022 |
.cfi_startproc
|
|
Packit Service |
ff7022 |
.byte 243,15,30,250
|
|
Packit Service |
4684c1 |
pushq %rbp
|
|
Packit Service |
4684c1 |
pushq %rbx
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
testq $15,%rdx
|
|
Packit Service |
4684c1 |
jnz .Lctr32_abort
|
|
Packit Service |
4684c1 |
testq $15,%rcx
|
|
Packit Service |
4684c1 |
jnz .Lctr32_abort
|
|
Packit Service |
4684c1 |
leaq .Lpadlock_saved_context(%rip),%rax
|
|
Packit Service |
4684c1 |
pushf
|
|
Packit Service |
4684c1 |
cld
|
|
Packit Service |
4684c1 |
call _padlock_verify_ctx
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rdx
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
xorl %ebx,%ebx
|
|
Packit Service |
4684c1 |
testl $32,(%rdx)
|
|
Packit Service |
4684c1 |
jnz .Lctr32_aligned
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
setz %al
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
setz %bl
|
|
Packit Service |
4684c1 |
testl %ebx,%eax
|
|
Packit Service |
4684c1 |
jnz .Lctr32_aligned
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
notq %rax
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
cmovcq %rcx,%rbx
|
|
Packit Service |
4684c1 |
andq %rbx,%rax
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
4684c1 |
andq $512-1,%rbx
|
|
Packit Service |
4684c1 |
leaq (%rax,%rbp,1),%rsp
|
|
Packit Service |
4684c1 |
movq $512,%rax
|
|
Packit Service |
4684c1 |
cmovzq %rax,%rbx
|
|
Packit Service |
4684c1 |
.Lctr32_reenter:
|
|
Packit Service |
4684c1 |
movl -4(%rdx),%eax
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
4684c1 |
negl %eax
|
|
Packit Service |
4684c1 |
andl $31,%eax
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
shll $4,%eax
|
|
Packit Service |
4684c1 |
cmovzq %rbx,%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rcx
|
|
Packit Service |
4684c1 |
cmovaq %rax,%rbx
|
|
Packit Service |
4684c1 |
cmovbeq %rcx,%rbx
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
ja .Lctr32_loop
|
|
Packit Service |
4684c1 |
movq %rsi,%rax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rdi,%rax
|
|
Packit Service |
4684c1 |
addq %rcx,%rax
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
ff7022 |
andq $0xfff,%rax
|
|
Packit Service |
4684c1 |
cmpq $32,%rax
|
|
Packit Service |
4684c1 |
movq $-32,%rax
|
|
Packit Service |
4684c1 |
cmovaeq %rbx,%rax
|
|
Packit Service |
4684c1 |
andq %rax,%rbx
|
|
Packit Service |
4684c1 |
jz .Lctr32_unaligned_tail
|
|
Packit Service |
4684c1 |
jmp .Lctr32_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lctr32_loop:
|
|
Packit Service |
4684c1 |
cmpq %rcx,%rbx
|
|
Packit Service |
4684c1 |
cmovaq %rcx,%rbx
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rsi,%r9
|
|
Packit Service |
4684c1 |
movq %rcx,%r10
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rbx,%r11
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
cmovnzq %rsp,%rdi
|
|
Packit Service |
ff7022 |
testq $0x0f,%rsi
|
|
Packit Service |
4684c1 |
jz .Lctr32_inp_aligned
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rdi,%rsi
|
|
Packit Service |
4684c1 |
.Lctr32_inp_aligned:
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,216
|
|
Packit Service |
4684c1 |
movl -4(%rdx),%eax
|
|
Packit Service |
ff7022 |
testl $0xffff0000,%eax
|
|
Packit Service |
4684c1 |
jnz .Lctr32_no_carry
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
ff7022 |
addl $0x10000,%eax
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
4684c1 |
movl %eax,-4(%rdx)
|
|
Packit Service |
4684c1 |
.Lctr32_no_carry:
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %r11,%rbx
|
|
Packit Service |
ff7022 |
testq $0x0f,%rdi
|
|
Packit Service |
4684c1 |
jz .Lctr32_out_aligned
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
subq %rbx,%rdi
|
|
Packit Service |
4684c1 |
.Lctr32_out_aligned:
|
|
Packit Service |
4684c1 |
movq %r9,%rsi
|
|
Packit Service |
4684c1 |
movq %r10,%rcx
|
|
Packit Service |
4684c1 |
addq %rbx,%rdi
|
|
Packit Service |
4684c1 |
addq %rbx,%rsi
|
|
Packit Service |
4684c1 |
subq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq $512,%rbx
|
|
Packit Service |
4684c1 |
jz .Lctr32_break
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jae .Lctr32_loop
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
movq %rsi,%rax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rdi,%rax
|
|
Packit Service |
4684c1 |
addq %rcx,%rax
|
|
Packit Service |
4684c1 |
negq %rax
|
|
Packit Service |
ff7022 |
andq $0xfff,%rax
|
|
Packit Service |
4684c1 |
cmpq $32,%rax
|
|
Packit Service |
4684c1 |
movq $-32,%rax
|
|
Packit Service |
4684c1 |
cmovaeq %rbx,%rax
|
|
Packit Service |
4684c1 |
andq %rax,%rbx
|
|
Packit Service |
4684c1 |
jnz .Lctr32_loop
|
|
Packit Service |
4684c1 |
.Lctr32_unaligned_tail:
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cmpq %rsp,%rbp
|
|
Packit Service |
4684c1 |
cmoveq %rcx,%rax
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rcx,%rbx
|
|
Packit Service |
4684c1 |
subq %rax,%rsp
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rdi
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
movq %rsp,%rsi
|
|
Packit Service |
4684c1 |
movq %r8,%rdi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jmp .Lctr32_loop
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lctr32_break:
|
|
Packit Service |
4684c1 |
cmpq %rbp,%rsp
|
|
Packit Service |
4684c1 |
je .Lctr32_done
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
pxor %xmm0,%xmm0
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rax
|
|
Packit Service |
4684c1 |
.Lctr32_bzero:
|
|
Packit Service |
4684c1 |
movaps %xmm0,(%rax)
|
|
Packit Service |
4684c1 |
leaq 16(%rax),%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rbp
|
|
Packit Service |
4684c1 |
ja .Lctr32_bzero
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lctr32_done:
|
|
Packit Service |
4684c1 |
leaq (%rbp),%rsp
|
|
Packit Service |
4684c1 |
jmp .Lctr32_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.Lctr32_aligned:
|
|
Packit Service |
4684c1 |
movl -4(%rdx),%eax
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
4684c1 |
negl %eax
|
|
Packit Service |
ff7022 |
andl $0xffff,%eax
|
|
Packit Service |
4684c1 |
movq $1048576,%rbx
|
|
Packit Service |
4684c1 |
shll $4,%eax
|
|
Packit Service |
4684c1 |
cmovzq %rbx,%rax
|
|
Packit Service |
4684c1 |
cmpq %rax,%rcx
|
|
Packit Service |
4684c1 |
cmovaq %rax,%rbx
|
|
Packit Service |
4684c1 |
cmovbeq %rcx,%rbx
|
|
Packit Service |
4684c1 |
jbe .Lctr32_aligned_skip
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lctr32_aligned_loop:
|
|
Packit Service |
4684c1 |
movq %rcx,%r10
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
movq %rbx,%r11
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,216
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
movl -4(%rdx),%eax
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
ff7022 |
addl $0x10000,%eax
|
|
Packit Service |
4684c1 |
bswapl %eax
|
|
Packit Service |
4684c1 |
movl %eax,-4(%rdx)
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
movq %r10,%rcx
|
|
Packit Service |
4684c1 |
subq %r11,%rcx
|
|
Packit Service |
4684c1 |
movq $1048576,%rbx
|
|
Packit Service |
4684c1 |
jz .Lctr32_exit
|
|
Packit Service |
4684c1 |
cmpq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jae .Lctr32_aligned_loop
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lctr32_aligned_skip:
|
|
Packit Service |
4684c1 |
leaq (%rsi,%rcx,1),%rbp
|
|
Packit Service |
4684c1 |
negq %rbp
|
|
Packit Service |
ff7022 |
andq $0xfff,%rbp
|
|
Packit Service |
4684c1 |
xorl %eax,%eax
|
|
Packit Service |
4684c1 |
cmpq $32,%rbp
|
|
Packit Service |
4684c1 |
movq $32-1,%rbp
|
|
Packit Service |
4684c1 |
cmovaeq %rax,%rbp
|
|
Packit Service |
4684c1 |
andq %rcx,%rbp
|
|
Packit Service |
4684c1 |
subq %rbp,%rcx
|
|
Packit Service |
4684c1 |
jz .Lctr32_aligned_tail
|
|
Packit Service |
4684c1 |
leaq -16(%rdx),%rax
|
|
Packit Service |
4684c1 |
leaq 16(%rdx),%rbx
|
|
Packit Service |
4684c1 |
shrq $4,%rcx
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x0f,0xa7,216
|
|
Packit Service |
4684c1 |
testq %rbp,%rbp
|
|
Packit Service |
4684c1 |
jz .Lctr32_exit
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.Lctr32_aligned_tail:
|
|
Packit Service |
4684c1 |
movq %rdi,%r8
|
|
Packit Service |
4684c1 |
movq %rbp,%rbx
|
|
Packit Service |
4684c1 |
movq %rbp,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rbp
|
|
Packit Service |
4684c1 |
subq %rcx,%rsp
|
|
Packit Service |
4684c1 |
shrq $3,%rcx
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rdi
|
|
Packit Service |
ff7022 |
.byte 0xf3,0x48,0xa5
|
|
Packit Service |
4684c1 |
leaq (%r8),%rdi
|
|
Packit Service |
4684c1 |
leaq (%rsp),%rsi
|
|
Packit Service |
4684c1 |
movq %rbx,%rcx
|
|
Packit Service |
4684c1 |
jmp .Lctr32_loop
|
|
Packit Service |
4684c1 |
.Lctr32_exit:
|
|
Packit Service |
4684c1 |
movl $1,%eax
|
|
Packit Service |
4684c1 |
leaq 8(%rsp),%rsp
|
|
Packit Service |
4684c1 |
.Lctr32_abort:
|
|
Packit Service |
4684c1 |
popq %rbx
|
|
Packit Service |
4684c1 |
popq %rbp
|
|
Packit Service |
4684c1 |
.byte 0xf3,0xc3
|
|
Packit Service |
ff7022 |
.cfi_endproc
|
|
Packit Service |
4684c1 |
.size padlock_ctr32_encrypt,.-padlock_ctr32_encrypt
|
|
Packit Service |
4684c1 |
.byte 86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,95,54,52,32,109,111,100,117,108,101,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
|
|
Packit Service |
4684c1 |
.align 16
|
|
Packit Service |
4684c1 |
.data
|
|
Packit Service |
4684c1 |
.align 8
|
|
Packit Service |
4684c1 |
.Lpadlock_saved_context:
|
|
Packit Service |
4684c1 |
.quad 0
|
|
Packit Service |
ff7022 |
.section ".note.gnu.property", "a"
|
|
Packit Service |
ff7022 |
.p2align 3
|
|
Packit Service |
ff7022 |
.long 1f - 0f
|
|
Packit Service |
ff7022 |
.long 4f - 1f
|
|
Packit Service |
ff7022 |
.long 5
|
|
Packit Service |
ff7022 |
0:
|
|
Packit Service |
ff7022 |
# "GNU" encoded with .byte, since .asciz isn't supported
|
|
Packit Service |
ff7022 |
# on Solaris.
|
|
Packit Service |
ff7022 |
.byte 0x47
|
|
Packit Service |
ff7022 |
.byte 0x4e
|
|
Packit Service |
ff7022 |
.byte 0x55
|
|
Packit Service |
ff7022 |
.byte 0
|
|
Packit Service |
ff7022 |
1:
|
|
Packit Service |
ff7022 |
.p2align 3
|
|
Packit Service |
ff7022 |
.long 0xc0000002
|
|
Packit Service |
ff7022 |
.long 3f - 2f
|
|
Packit Service |
ff7022 |
2:
|
|
Packit Service |
ff7022 |
.long 3
|
|
Packit Service |
ff7022 |
3:
|
|
Packit Service |
ff7022 |
.p2align 3
|
|
Packit Service |
ff7022 |
4:
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
.section .note.GNU-stack,"",%progbits
|