Blame lib/accelerated/x86/macosx/e_padlock-x86.s

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
.align	4
Packit Service 4684c1
_padlock_capability:
Packit Service 4684c1
L_padlock_capability_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	popl	%eax
Packit Service 4684c1
	movl	%eax,%ecx
Packit Service 4684c1
	xorl	$2097152,%eax
Packit Service 4684c1
	pushl	%eax
Packit Service 4684c1
	popfl
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	popl	%eax
Packit Service 4684c1
	xorl	%eax,%ecx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	btl	$21,%ecx
Packit Service 4684c1
	jnc	L000noluck
Packit Service 4684c1
	.byte	0x0f,0xa2
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	cmpl	$0x746e6543,%ebx
Packit Service ff7022
	jne	L001zhaoxin
Packit Service 4684c1
	cmpl	$0x48727561,%edx
Packit Service 4684c1
	jne	L000noluck
Packit Service 4684c1
	cmpl	$0x736c7561,%ecx
Packit Service 4684c1
	jne	L000noluck
Packit Service ff7022
	jmp	L002zhaoxinEnd
Packit Service ff7022
L001zhaoxin:
Packit Service ff7022
	cmpl	$0x68532020,%ebx
Packit Service ff7022
	jne	L000noluck
Packit Service ff7022
	cmpl	$0x68676e61,%edx
Packit Service ff7022
	jne	L000noluck
Packit Service ff7022
	cmpl	$0x20206961,%ecx
Packit Service ff7022
	jne	L000noluck
Packit Service ff7022
L002zhaoxinEnd:
Packit Service 4684c1
	movl	$3221225472,%eax
Packit Service 4684c1
	.byte	0x0f,0xa2
Packit Service 4684c1
	movl	%eax,%edx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	cmpl	$3221225473,%edx
Packit Service 4684c1
	jb	L000noluck
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	.byte	0x0f,0xa2
Packit Service 4684c1
	orl	$15,%eax
Packit Service 4684c1
	xorl	%ebx,%ebx
Packit Service 4684c1
	andl	$4095,%eax
Packit Service 4684c1
	cmpl	$1791,%eax
Packit Service 4684c1
	sete	%bl
Packit Service 4684c1
	movl	$3221225473,%eax
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	.byte	0x0f,0xa2
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	movl	%edx,%eax
Packit Service 4684c1
	shll	$4,%ebx
Packit Service 4684c1
	andl	$4294967279,%eax
Packit Service 4684c1
	orl	%ebx,%eax
Packit Service 4684c1
L000noluck:
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_key_bswap
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_key_bswap:
Packit Service 4684c1
L_padlock_key_bswap_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	movl	4(%esp),%edx
Packit Service 4684c1
	movl	240(%edx),%ecx
Packit Service ff7022
L003bswap_loop:
Packit Service 4684c1
	movl	(%edx),%eax
Packit Service 4684c1
	bswap	%eax
Packit Service 4684c1
	movl	%eax,(%edx)
Packit Service 4684c1
	leal	4(%edx),%edx
Packit Service 4684c1
	subl	$1,%ecx
Packit Service ff7022
	jnz	L003bswap_loop
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_verify_context
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_verify_context:
Packit Service 4684c1
L_padlock_verify_context_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	movl	4(%esp),%edx
Packit Service ff7022
	leal	Lpadlock_saved_context-L004verify_pic_point,%eax
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	call	__padlock_verify_ctx
Packit Service ff7022
L004verify_pic_point:
Packit Service 4684c1
	leal	4(%esp),%esp
Packit Service 4684c1
	ret
Packit Service 4684c1
.align	4
Packit Service 4684c1
__padlock_verify_ctx:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	addl	(%esp),%eax
Packit Service 4684c1
	btl	$30,4(%esp)
Packit Service ff7022
	jnc	L005verified
Packit Service 4684c1
	cmpl	(%eax),%edx
Packit Service ff7022
	je	L005verified
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	popfl
Packit Service ff7022
L005verified:
Packit Service 4684c1
	movl	%edx,(%eax)
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_reload_key
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_reload_key:
Packit Service 4684c1
L_padlock_reload_key_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	popfl
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_aes_block
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_aes_block:
Packit Service 4684c1
L_padlock_aes_block_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	movl	16(%esp),%edi
Packit Service 4684c1
	movl	20(%esp),%esi
Packit Service 4684c1
	movl	24(%esp),%edx
Packit Service 4684c1
	movl	$1,%ecx
Packit Service 4684c1
	leal	32(%edx),%ebx
Packit Service 4684c1
	leal	16(%edx),%edx
Packit Service 4684c1
.byte	243,15,167,200
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_ecb_encrypt
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_ecb_encrypt:
Packit Service 4684c1
L_padlock_ecb_encrypt_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%edi
Packit Service 4684c1
	movl	24(%esp),%esi
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	movl	32(%esp),%ecx
Packit Service 4684c1
	testl	$15,%edx
Packit Service ff7022
	jnz	L006ecb_abort
Packit Service 4684c1
	testl	$15,%ecx
Packit Service ff7022
	jnz	L006ecb_abort
Packit Service ff7022
	leal	Lpadlock_saved_context-L007ecb_pic_point,%eax
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	cld
Packit Service 4684c1
	call	__padlock_verify_ctx
Packit Service ff7022
L007ecb_pic_point:
Packit Service 4684c1
	leal	16(%edx),%edx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	xorl	%ebx,%ebx
Packit Service 4684c1
	testl	$32,(%edx)
Packit Service ff7022
	jnz	L008ecb_aligned
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	setz	%al
Packit Service 4684c1
	testl	$15,%esi
Packit Service 4684c1
	setz	%bl
Packit Service 4684c1
	testl	%ebx,%eax
Packit Service ff7022
	jnz	L008ecb_aligned
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	movl	$512,%ebx
Packit Service 4684c1
	notl	%eax
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service 4684c1
	cmovcl	%ecx,%ebx
Packit Service 4684c1
	andl	%ebx,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$511,%ebx
Packit Service 4684c1
	leal	(%eax,%ebp,1),%esp
Packit Service 4684c1
	movl	$512,%eax
Packit Service 4684c1
	cmovzl	%eax,%ebx
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service ff7022
	ja	L009ecb_loop
Packit Service 4684c1
	movl	%esi,%eax
Packit Service 4684c1
	cmpl	%esp,%ebp
Packit Service 4684c1
	cmovel	%edi,%eax
Packit Service 4684c1
	addl	%ecx,%eax
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$4095,%eax
Packit Service 4684c1
	cmpl	$128,%eax
Packit Service 4684c1
	movl	$-128,%eax
Packit Service 4684c1
	cmovael	%ebx,%eax
Packit Service 4684c1
	andl	%eax,%ebx
Packit Service ff7022
	jz	L010ecb_unaligned_tail
Packit Service ff7022
	jmp	L009ecb_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L009ecb_loop:
Packit Service 4684c1
	movl	%edi,(%ebp)
Packit Service 4684c1
	movl	%esi,4(%ebp)
Packit Service 4684c1
	movl	%ecx,8(%ebp)
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%ebx,12(%ebp)
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	cmovnzl	%esp,%edi
Packit Service 4684c1
	testl	$15,%esi
Packit Service ff7022
	jz	L011ecb_inp_aligned
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%edi,%esi
Packit Service ff7022
L011ecb_inp_aligned:
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,200
Packit Service 4684c1
	movl	(%ebp),%edi
Packit Service 4684c1
	movl	12(%ebp),%ebx
Packit Service 4684c1
	testl	$15,%edi
Packit Service ff7022
	jz	L012ecb_out_aligned
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	leal	(%esp),%esi
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service ff7022
L012ecb_out_aligned:
Packit Service 4684c1
	movl	4(%ebp),%esi
Packit Service 4684c1
	movl	8(%ebp),%ecx
Packit Service 4684c1
	addl	%ebx,%edi
Packit Service 4684c1
	addl	%ebx,%esi
Packit Service 4684c1
	subl	%ebx,%ecx
Packit Service 4684c1
	movl	$512,%ebx
Packit Service ff7022
	jz	L013ecb_break
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service ff7022
	jae	L009ecb_loop
Packit Service ff7022
L010ecb_unaligned_tail:
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	cmpl	%ebp,%esp
Packit Service 4684c1
	cmovel	%ecx,%eax
Packit Service 4684c1
	subl	%eax,%esp
Packit Service 4684c1
	movl	%edi,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
	leal	(%esp),%edi
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	movl	%esp,%esi
Packit Service 4684c1
	movl	%eax,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service ff7022
	jmp	L009ecb_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L013ecb_break:
Packit Service 4684c1
	cmpl	%ebp,%esp
Packit Service ff7022
	je	L014ecb_done
Packit Service 4684c1
	pxor	%xmm0,%xmm0
Packit Service 4684c1
	leal	(%esp),%eax
Packit Service ff7022
L015ecb_bzero:
Packit Service 4684c1
	movaps	%xmm0,(%eax)
Packit Service 4684c1
	leal	16(%eax),%eax
Packit Service 4684c1
	cmpl	%eax,%ebp
Packit Service ff7022
	ja	L015ecb_bzero
Packit Service ff7022
L014ecb_done:
Packit Service 4684c1
	movl	16(%ebp),%ebp
Packit Service 4684c1
	leal	24(%ebp),%esp
Packit Service ff7022
	jmp	L016ecb_exit
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L008ecb_aligned:
Packit Service 4684c1
	leal	(%esi,%ecx,1),%ebp
Packit Service 4684c1
	negl	%ebp
Packit Service 4684c1
	andl	$4095,%ebp
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	cmpl	$128,%ebp
Packit Service 4684c1
	movl	$127,%ebp
Packit Service 4684c1
	cmovael	%eax,%ebp
Packit Service 4684c1
	andl	%ecx,%ebp
Packit Service 4684c1
	subl	%ebp,%ecx
Packit Service ff7022
	jz	L017ecb_aligned_tail
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,200
Packit Service 4684c1
	testl	%ebp,%ebp
Packit Service ff7022
	jz	L016ecb_exit
Packit Service ff7022
L017ecb_aligned_tail:
Packit Service 4684c1
	movl	%ebp,%ecx
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	movl	%ebp,%esp
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	subl	%ecx,%esp
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service 4684c1
	movl	%edi,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
	leal	(%esp),%edi
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	movl	%esp,%esi
Packit Service 4684c1
	movl	%eax,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service ff7022
	jmp	L009ecb_loop
Packit Service ff7022
L016ecb_exit:
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	leal	4(%esp),%esp
Packit Service ff7022
L006ecb_abort:
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_cbc_encrypt
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_cbc_encrypt:
Packit Service 4684c1
L_padlock_cbc_encrypt_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%edi
Packit Service 4684c1
	movl	24(%esp),%esi
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	movl	32(%esp),%ecx
Packit Service 4684c1
	testl	$15,%edx
Packit Service ff7022
	jnz	L018cbc_abort
Packit Service 4684c1
	testl	$15,%ecx
Packit Service ff7022
	jnz	L018cbc_abort
Packit Service ff7022
	leal	Lpadlock_saved_context-L019cbc_pic_point,%eax
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	cld
Packit Service 4684c1
	call	__padlock_verify_ctx
Packit Service ff7022
L019cbc_pic_point:
Packit Service 4684c1
	leal	16(%edx),%edx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	xorl	%ebx,%ebx
Packit Service 4684c1
	testl	$32,(%edx)
Packit Service ff7022
	jnz	L020cbc_aligned
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	setz	%al
Packit Service 4684c1
	testl	$15,%esi
Packit Service 4684c1
	setz	%bl
Packit Service 4684c1
	testl	%ebx,%eax
Packit Service ff7022
	jnz	L020cbc_aligned
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	movl	$512,%ebx
Packit Service 4684c1
	notl	%eax
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service 4684c1
	cmovcl	%ecx,%ebx
Packit Service 4684c1
	andl	%ebx,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$511,%ebx
Packit Service 4684c1
	leal	(%eax,%ebp,1),%esp
Packit Service 4684c1
	movl	$512,%eax
Packit Service 4684c1
	cmovzl	%eax,%ebx
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service ff7022
	ja	L021cbc_loop
Packit Service 4684c1
	movl	%esi,%eax
Packit Service 4684c1
	cmpl	%esp,%ebp
Packit Service 4684c1
	cmovel	%edi,%eax
Packit Service 4684c1
	addl	%ecx,%eax
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$4095,%eax
Packit Service 4684c1
	cmpl	$64,%eax
Packit Service 4684c1
	movl	$-64,%eax
Packit Service 4684c1
	cmovael	%ebx,%eax
Packit Service 4684c1
	andl	%eax,%ebx
Packit Service ff7022
	jz	L022cbc_unaligned_tail
Packit Service ff7022
	jmp	L021cbc_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L021cbc_loop:
Packit Service 4684c1
	movl	%edi,(%ebp)
Packit Service 4684c1
	movl	%esi,4(%ebp)
Packit Service 4684c1
	movl	%ecx,8(%ebp)
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%ebx,12(%ebp)
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	cmovnzl	%esp,%edi
Packit Service 4684c1
	testl	$15,%esi
Packit Service ff7022
	jz	L023cbc_inp_aligned
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%edi,%esi
Packit Service ff7022
L023cbc_inp_aligned:
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,208
Packit Service 4684c1
	movaps	(%eax),%xmm0
Packit Service 4684c1
	movaps	%xmm0,-16(%edx)
Packit Service 4684c1
	movl	(%ebp),%edi
Packit Service 4684c1
	movl	12(%ebp),%ebx
Packit Service 4684c1
	testl	$15,%edi
Packit Service ff7022
	jz	L024cbc_out_aligned
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	leal	(%esp),%esi
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service ff7022
L024cbc_out_aligned:
Packit Service 4684c1
	movl	4(%ebp),%esi
Packit Service 4684c1
	movl	8(%ebp),%ecx
Packit Service 4684c1
	addl	%ebx,%edi
Packit Service 4684c1
	addl	%ebx,%esi
Packit Service 4684c1
	subl	%ebx,%ecx
Packit Service 4684c1
	movl	$512,%ebx
Packit Service ff7022
	jz	L025cbc_break
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service ff7022
	jae	L021cbc_loop
Packit Service ff7022
L022cbc_unaligned_tail:
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	cmpl	%ebp,%esp
Packit Service 4684c1
	cmovel	%ecx,%eax
Packit Service 4684c1
	subl	%eax,%esp
Packit Service 4684c1
	movl	%edi,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
	leal	(%esp),%edi
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	movl	%esp,%esi
Packit Service 4684c1
	movl	%eax,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service ff7022
	jmp	L021cbc_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L025cbc_break:
Packit Service 4684c1
	cmpl	%ebp,%esp
Packit Service ff7022
	je	L026cbc_done
Packit Service 4684c1
	pxor	%xmm0,%xmm0
Packit Service 4684c1
	leal	(%esp),%eax
Packit Service ff7022
L027cbc_bzero:
Packit Service 4684c1
	movaps	%xmm0,(%eax)
Packit Service 4684c1
	leal	16(%eax),%eax
Packit Service 4684c1
	cmpl	%eax,%ebp
Packit Service ff7022
	ja	L027cbc_bzero
Packit Service ff7022
L026cbc_done:
Packit Service 4684c1
	movl	16(%ebp),%ebp
Packit Service 4684c1
	leal	24(%ebp),%esp
Packit Service ff7022
	jmp	L028cbc_exit
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L020cbc_aligned:
Packit Service 4684c1
	leal	(%esi,%ecx,1),%ebp
Packit Service 4684c1
	negl	%ebp
Packit Service 4684c1
	andl	$4095,%ebp
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	cmpl	$64,%ebp
Packit Service 4684c1
	movl	$63,%ebp
Packit Service 4684c1
	cmovael	%eax,%ebp
Packit Service 4684c1
	andl	%ecx,%ebp
Packit Service 4684c1
	subl	%ebp,%ecx
Packit Service ff7022
	jz	L029cbc_aligned_tail
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,208
Packit Service 4684c1
	movaps	(%eax),%xmm0
Packit Service 4684c1
	movaps	%xmm0,-16(%edx)
Packit Service 4684c1
	testl	%ebp,%ebp
Packit Service ff7022
	jz	L028cbc_exit
Packit Service ff7022
L029cbc_aligned_tail:
Packit Service 4684c1
	movl	%ebp,%ecx
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	movl	%ebp,%esp
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	subl	%ecx,%esp
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service 4684c1
	movl	%edi,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
	leal	(%esp),%edi
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	movl	%esp,%esi
Packit Service 4684c1
	movl	%eax,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service ff7022
	jmp	L021cbc_loop
Packit Service ff7022
L028cbc_exit:
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	leal	4(%esp),%esp
Packit Service ff7022
L018cbc_abort:
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_cfb_encrypt
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_cfb_encrypt:
Packit Service 4684c1
L_padlock_cfb_encrypt_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%edi
Packit Service 4684c1
	movl	24(%esp),%esi
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	movl	32(%esp),%ecx
Packit Service 4684c1
	testl	$15,%edx
Packit Service ff7022
	jnz	L030cfb_abort
Packit Service 4684c1
	testl	$15,%ecx
Packit Service ff7022
	jnz	L030cfb_abort
Packit Service ff7022
	leal	Lpadlock_saved_context-L031cfb_pic_point,%eax
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	cld
Packit Service 4684c1
	call	__padlock_verify_ctx
Packit Service ff7022
L031cfb_pic_point:
Packit Service 4684c1
	leal	16(%edx),%edx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	xorl	%ebx,%ebx
Packit Service 4684c1
	testl	$32,(%edx)
Packit Service ff7022
	jnz	L032cfb_aligned
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	setz	%al
Packit Service 4684c1
	testl	$15,%esi
Packit Service 4684c1
	setz	%bl
Packit Service 4684c1
	testl	%ebx,%eax
Packit Service ff7022
	jnz	L032cfb_aligned
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	movl	$512,%ebx
Packit Service 4684c1
	notl	%eax
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service 4684c1
	cmovcl	%ecx,%ebx
Packit Service 4684c1
	andl	%ebx,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$511,%ebx
Packit Service 4684c1
	leal	(%eax,%ebp,1),%esp
Packit Service 4684c1
	movl	$512,%eax
Packit Service 4684c1
	cmovzl	%eax,%ebx
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service ff7022
	jmp	L033cfb_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L033cfb_loop:
Packit Service 4684c1
	movl	%edi,(%ebp)
Packit Service 4684c1
	movl	%esi,4(%ebp)
Packit Service 4684c1
	movl	%ecx,8(%ebp)
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%ebx,12(%ebp)
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	cmovnzl	%esp,%edi
Packit Service 4684c1
	testl	$15,%esi
Packit Service ff7022
	jz	L034cfb_inp_aligned
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%edi,%esi
Packit Service ff7022
L034cfb_inp_aligned:
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,224
Packit Service 4684c1
	movaps	(%eax),%xmm0
Packit Service 4684c1
	movaps	%xmm0,-16(%edx)
Packit Service 4684c1
	movl	(%ebp),%edi
Packit Service 4684c1
	movl	12(%ebp),%ebx
Packit Service 4684c1
	testl	$15,%edi
Packit Service ff7022
	jz	L035cfb_out_aligned
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	leal	(%esp),%esi
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service ff7022
L035cfb_out_aligned:
Packit Service 4684c1
	movl	4(%ebp),%esi
Packit Service 4684c1
	movl	8(%ebp),%ecx
Packit Service 4684c1
	addl	%ebx,%edi
Packit Service 4684c1
	addl	%ebx,%esi
Packit Service 4684c1
	subl	%ebx,%ecx
Packit Service 4684c1
	movl	$512,%ebx
Packit Service ff7022
	jnz	L033cfb_loop
Packit Service 4684c1
	cmpl	%ebp,%esp
Packit Service ff7022
	je	L036cfb_done
Packit Service 4684c1
	pxor	%xmm0,%xmm0
Packit Service 4684c1
	leal	(%esp),%eax
Packit Service ff7022
L037cfb_bzero:
Packit Service 4684c1
	movaps	%xmm0,(%eax)
Packit Service 4684c1
	leal	16(%eax),%eax
Packit Service 4684c1
	cmpl	%eax,%ebp
Packit Service ff7022
	ja	L037cfb_bzero
Packit Service ff7022
L036cfb_done:
Packit Service 4684c1
	movl	16(%ebp),%ebp
Packit Service 4684c1
	leal	24(%ebp),%esp
Packit Service ff7022
	jmp	L038cfb_exit
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L032cfb_aligned:
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,224
Packit Service 4684c1
	movaps	(%eax),%xmm0
Packit Service 4684c1
	movaps	%xmm0,-16(%edx)
Packit Service ff7022
L038cfb_exit:
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	leal	4(%esp),%esp
Packit Service ff7022
L030cfb_abort:
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_ofb_encrypt
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_ofb_encrypt:
Packit Service 4684c1
L_padlock_ofb_encrypt_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%edi
Packit Service 4684c1
	movl	24(%esp),%esi
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	movl	32(%esp),%ecx
Packit Service 4684c1
	testl	$15,%edx
Packit Service ff7022
	jnz	L039ofb_abort
Packit Service 4684c1
	testl	$15,%ecx
Packit Service ff7022
	jnz	L039ofb_abort
Packit Service ff7022
	leal	Lpadlock_saved_context-L040ofb_pic_point,%eax
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	cld
Packit Service 4684c1
	call	__padlock_verify_ctx
Packit Service ff7022
L040ofb_pic_point:
Packit Service 4684c1
	leal	16(%edx),%edx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	xorl	%ebx,%ebx
Packit Service 4684c1
	testl	$32,(%edx)
Packit Service ff7022
	jnz	L041ofb_aligned
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	setz	%al
Packit Service 4684c1
	testl	$15,%esi
Packit Service 4684c1
	setz	%bl
Packit Service 4684c1
	testl	%ebx,%eax
Packit Service ff7022
	jnz	L041ofb_aligned
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	movl	$512,%ebx
Packit Service 4684c1
	notl	%eax
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service 4684c1
	cmovcl	%ecx,%ebx
Packit Service 4684c1
	andl	%ebx,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$511,%ebx
Packit Service 4684c1
	leal	(%eax,%ebp,1),%esp
Packit Service 4684c1
	movl	$512,%eax
Packit Service 4684c1
	cmovzl	%eax,%ebx
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service ff7022
	jmp	L042ofb_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L042ofb_loop:
Packit Service 4684c1
	movl	%edi,(%ebp)
Packit Service 4684c1
	movl	%esi,4(%ebp)
Packit Service 4684c1
	movl	%ecx,8(%ebp)
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%ebx,12(%ebp)
Packit Service 4684c1
	testl	$15,%edi
Packit Service 4684c1
	cmovnzl	%esp,%edi
Packit Service 4684c1
	testl	$15,%esi
Packit Service ff7022
	jz	L043ofb_inp_aligned
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%edi,%esi
Packit Service ff7022
L043ofb_inp_aligned:
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,232
Packit Service 4684c1
	movaps	(%eax),%xmm0
Packit Service 4684c1
	movaps	%xmm0,-16(%edx)
Packit Service 4684c1
	movl	(%ebp),%edi
Packit Service 4684c1
	movl	12(%ebp),%ebx
Packit Service 4684c1
	testl	$15,%edi
Packit Service ff7022
	jz	L044ofb_out_aligned
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	leal	(%esp),%esi
Packit Service 4684c1
	shrl	$2,%ecx
Packit Service 4684c1
.byte	243,165
Packit Service 4684c1
	subl	%ebx,%edi
Packit Service ff7022
L044ofb_out_aligned:
Packit Service 4684c1
	movl	4(%ebp),%esi
Packit Service 4684c1
	movl	8(%ebp),%ecx
Packit Service 4684c1
	addl	%ebx,%edi
Packit Service 4684c1
	addl	%ebx,%esi
Packit Service 4684c1
	subl	%ebx,%ecx
Packit Service 4684c1
	movl	$512,%ebx
Packit Service ff7022
	jnz	L042ofb_loop
Packit Service 4684c1
	cmpl	%ebp,%esp
Packit Service ff7022
	je	L045ofb_done
Packit Service 4684c1
	pxor	%xmm0,%xmm0
Packit Service 4684c1
	leal	(%esp),%eax
Packit Service ff7022
L046ofb_bzero:
Packit Service 4684c1
	movaps	%xmm0,(%eax)
Packit Service 4684c1
	leal	16(%eax),%eax
Packit Service 4684c1
	cmpl	%eax,%ebp
Packit Service ff7022
	ja	L046ofb_bzero
Packit Service ff7022
L045ofb_done:
Packit Service 4684c1
	movl	16(%ebp),%ebp
Packit Service 4684c1
	leal	24(%ebp),%esp
Packit Service ff7022
	jmp	L047ofb_exit
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L041ofb_aligned:
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,232
Packit Service 4684c1
	movaps	(%eax),%xmm0
Packit Service 4684c1
	movaps	%xmm0,-16(%edx)
Packit Service ff7022
L047ofb_exit:
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	leal	4(%esp),%esp
Packit Service ff7022
L039ofb_abort:
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_ctr32_encrypt
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_ctr32_encrypt:
Packit Service 4684c1
L_padlock_ctr32_encrypt_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%ebp
Packit Service 4684c1
	pushl	%ebx
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	20(%esp),%edi
Packit Service 4684c1
	movl	24(%esp),%esi
Packit Service 4684c1
	movl	28(%esp),%edx
Packit Service 4684c1
	movl	32(%esp),%ecx
Packit Service 4684c1
	testl	$15,%edx
Packit Service ff7022
	jnz	L048ctr32_abort
Packit Service 4684c1
	testl	$15,%ecx
Packit Service ff7022
	jnz	L048ctr32_abort
Packit Service ff7022
	leal	Lpadlock_saved_context-L049ctr32_pic_point,%eax
Packit Service 4684c1
	pushfl
Packit Service 4684c1
	cld
Packit Service 4684c1
	call	__padlock_verify_ctx
Packit Service ff7022
L049ctr32_pic_point:
Packit Service 4684c1
	leal	16(%edx),%edx
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	movq	-16(%edx),%mm0
Packit Service 4684c1
	movl	$512,%ebx
Packit Service 4684c1
	notl	%eax
Packit Service 4684c1
	leal	-24(%esp),%ebp
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service 4684c1
	cmovcl	%ecx,%ebx
Packit Service 4684c1
	andl	%ebx,%eax
Packit Service 4684c1
	movl	%ecx,%ebx
Packit Service 4684c1
	negl	%eax
Packit Service 4684c1
	andl	$511,%ebx
Packit Service 4684c1
	leal	(%eax,%ebp,1),%esp
Packit Service 4684c1
	movl	$512,%eax
Packit Service 4684c1
	cmovzl	%eax,%ebx
Packit Service 4684c1
	movl	%ebp,%eax
Packit Service 4684c1
	andl	$-16,%ebp
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	%eax,16(%ebp)
Packit Service ff7022
	jmp	L050ctr32_loop
Packit Service 4684c1
.align	4,0x90
Packit Service ff7022
L050ctr32_loop:
Packit Service 4684c1
	movl	%edi,(%ebp)
Packit Service 4684c1
	movl	%esi,4(%ebp)
Packit Service 4684c1
	movl	%ecx,8(%ebp)
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	movl	%ebx,12(%ebp)
Packit Service 4684c1
	movl	-4(%edx),%ecx
Packit Service 4684c1
	xorl	%edi,%edi
Packit Service 4684c1
	movl	-8(%edx),%eax
Packit Service ff7022
L051ctr32_prepare:
Packit Service 4684c1
	movl	%ecx,12(%esp,%edi,1)
Packit Service 4684c1
	bswap	%ecx
Packit Service 4684c1
	movq	%mm0,(%esp,%edi,1)
Packit Service 4684c1
	incl	%ecx
Packit Service 4684c1
	movl	%eax,8(%esp,%edi,1)
Packit Service 4684c1
	bswap	%ecx
Packit Service 4684c1
	leal	16(%edi),%edi
Packit Service 4684c1
	cmpl	%ebx,%edi
Packit Service ff7022
	jb	L051ctr32_prepare
Packit Service 4684c1
	movl	%ecx,-4(%edx)
Packit Service 4684c1
	leal	(%esp),%esi
Packit Service 4684c1
	leal	(%esp),%edi
Packit Service 4684c1
	movl	%ebx,%ecx
Packit Service 4684c1
	leal	-16(%edx),%eax
Packit Service 4684c1
	leal	16(%edx),%ebx
Packit Service 4684c1
	shrl	$4,%ecx
Packit Service 4684c1
.byte	243,15,167,200
Packit Service 4684c1
	movl	(%ebp),%edi
Packit Service 4684c1
	movl	12(%ebp),%ebx
Packit Service 4684c1
	movl	4(%ebp),%esi
Packit Service 4684c1
	xorl	%ecx,%ecx
Packit Service ff7022
L052ctr32_xor:
Packit Service 4684c1
	movups	(%esi,%ecx,1),%xmm1
Packit Service 4684c1
	leal	16(%ecx),%ecx
Packit Service 4684c1
	pxor	-16(%esp,%ecx,1),%xmm1
Packit Service 4684c1
	movups	%xmm1,-16(%edi,%ecx,1)
Packit Service 4684c1
	cmpl	%ebx,%ecx
Packit Service ff7022
	jb	L052ctr32_xor
Packit Service 4684c1
	movl	8(%ebp),%ecx
Packit Service 4684c1
	addl	%ebx,%edi
Packit Service 4684c1
	addl	%ebx,%esi
Packit Service 4684c1
	subl	%ebx,%ecx
Packit Service 4684c1
	movl	$512,%ebx
Packit Service ff7022
	jnz	L050ctr32_loop
Packit Service 4684c1
	pxor	%xmm0,%xmm0
Packit Service 4684c1
	leal	(%esp),%eax
Packit Service ff7022
L053ctr32_bzero:
Packit Service 4684c1
	movaps	%xmm0,(%eax)
Packit Service 4684c1
	leal	16(%eax),%eax
Packit Service 4684c1
	cmpl	%eax,%ebp
Packit Service ff7022
	ja	L053ctr32_bzero
Packit Service ff7022
L054ctr32_done:
Packit Service 4684c1
	movl	16(%ebp),%ebp
Packit Service 4684c1
	leal	24(%ebp),%esp
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	leal	4(%esp),%esp
Packit Service 4684c1
	emms
Packit Service ff7022
L048ctr32_abort:
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%ebx
Packit Service 4684c1
	popl	%ebp
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_xstore
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_xstore:
Packit Service 4684c1
L_padlock_xstore_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	movl	8(%esp),%edi
Packit Service 4684c1
	movl	12(%esp),%edx
Packit Service 4684c1
.byte	15,167,192
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.align	4
Packit Service 4684c1
__win32_segv_handler:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	movl	$1,%eax
Packit Service 4684c1
	movl	4(%esp),%edx
Packit Service 4684c1
	movl	12(%esp),%ecx
Packit Service 4684c1
	cmpl	$3221225477,(%edx)
Packit Service ff7022
	jne	L055ret
Packit Service 4684c1
	addl	$4,184(%ecx)
Packit Service 4684c1
	movl	$0,%eax
Packit Service ff7022
L055ret:
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_sha1_oneshot
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_sha1_oneshot:
Packit Service 4684c1
L_padlock_sha1_oneshot_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movl	16(%esp),%esi
Packit Service 4684c1
	movl	20(%esp),%ecx
Packit Service 4684c1
	movl	%esp,%edx
Packit Service 4684c1
	addl	$-128,%esp
Packit Service 4684c1
	movups	(%edi),%xmm0
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	16(%edi),%eax
Packit Service 4684c1
	movaps	%xmm0,(%esp)
Packit Service 4684c1
	movl	%esp,%edi
Packit Service 4684c1
	movl	%eax,16(%esp)
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
.byte	243,15,166,200
Packit Service 4684c1
	movaps	(%esp),%xmm0
Packit Service 4684c1
	movl	16(%esp),%eax
Packit Service 4684c1
	movl	%edx,%esp
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movups	%xmm0,(%edi)
Packit Service 4684c1
	movl	%eax,16(%edi)
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_sha1_blocks
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_sha1_blocks:
Packit Service 4684c1
L_padlock_sha1_blocks_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movl	16(%esp),%esi
Packit Service 4684c1
	movl	%esp,%edx
Packit Service 4684c1
	movl	20(%esp),%ecx
Packit Service 4684c1
	addl	$-128,%esp
Packit Service 4684c1
	movups	(%edi),%xmm0
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movl	16(%edi),%eax
Packit Service 4684c1
	movaps	%xmm0,(%esp)
Packit Service 4684c1
	movl	%esp,%edi
Packit Service 4684c1
	movl	%eax,16(%esp)
Packit Service 4684c1
	movl	$-1,%eax
Packit Service 4684c1
.byte	243,15,166,200
Packit Service 4684c1
	movaps	(%esp),%xmm0
Packit Service 4684c1
	movl	16(%esp),%eax
Packit Service 4684c1
	movl	%edx,%esp
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movups	%xmm0,(%edi)
Packit Service 4684c1
	movl	%eax,16(%edi)
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_sha256_oneshot
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_sha256_oneshot:
Packit Service 4684c1
L_padlock_sha256_oneshot_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movl	16(%esp),%esi
Packit Service 4684c1
	movl	20(%esp),%ecx
Packit Service 4684c1
	movl	%esp,%edx
Packit Service 4684c1
	addl	$-128,%esp
Packit Service 4684c1
	movups	(%edi),%xmm0
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movups	16(%edi),%xmm1
Packit Service 4684c1
	movaps	%xmm0,(%esp)
Packit Service 4684c1
	movl	%esp,%edi
Packit Service 4684c1
	movaps	%xmm1,16(%esp)
Packit Service 4684c1
	xorl	%eax,%eax
Packit Service 4684c1
.byte	243,15,166,208
Packit Service 4684c1
	movaps	(%esp),%xmm0
Packit Service 4684c1
	movaps	16(%esp),%xmm1
Packit Service 4684c1
	movl	%edx,%esp
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movups	%xmm0,(%edi)
Packit Service 4684c1
	movups	%xmm1,16(%edi)
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_sha256_blocks
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_sha256_blocks:
Packit Service 4684c1
L_padlock_sha256_blocks_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movl	16(%esp),%esi
Packit Service 4684c1
	movl	20(%esp),%ecx
Packit Service 4684c1
	movl	%esp,%edx
Packit Service 4684c1
	addl	$-128,%esp
Packit Service 4684c1
	movups	(%edi),%xmm0
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movups	16(%edi),%xmm1
Packit Service 4684c1
	movaps	%xmm0,(%esp)
Packit Service 4684c1
	movl	%esp,%edi
Packit Service 4684c1
	movaps	%xmm1,16(%esp)
Packit Service 4684c1
	movl	$-1,%eax
Packit Service 4684c1
.byte	243,15,166,208
Packit Service 4684c1
	movaps	(%esp),%xmm0
Packit Service 4684c1
	movaps	16(%esp),%xmm1
Packit Service 4684c1
	movl	%edx,%esp
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movups	%xmm0,(%edi)
Packit Service 4684c1
	movups	%xmm1,16(%edi)
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.globl	_padlock_sha512_blocks
Packit Service 4684c1
.align	4
Packit Service 4684c1
_padlock_sha512_blocks:
Packit Service 4684c1
L_padlock_sha512_blocks_begin:
Packit Service ff7022
.byte	243,15,30,251
Packit Service 4684c1
	pushl	%edi
Packit Service 4684c1
	pushl	%esi
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movl	16(%esp),%esi
Packit Service 4684c1
	movl	20(%esp),%ecx
Packit Service 4684c1
	movl	%esp,%edx
Packit Service 4684c1
	addl	$-128,%esp
Packit Service 4684c1
	movups	(%edi),%xmm0
Packit Service 4684c1
	andl	$-16,%esp
Packit Service 4684c1
	movups	16(%edi),%xmm1
Packit Service 4684c1
	movups	32(%edi),%xmm2
Packit Service 4684c1
	movups	48(%edi),%xmm3
Packit Service 4684c1
	movaps	%xmm0,(%esp)
Packit Service 4684c1
	movl	%esp,%edi
Packit Service 4684c1
	movaps	%xmm1,16(%esp)
Packit Service 4684c1
	movaps	%xmm2,32(%esp)
Packit Service 4684c1
	movaps	%xmm3,48(%esp)
Packit Service 4684c1
.byte	243,15,166,224
Packit Service 4684c1
	movaps	(%esp),%xmm0
Packit Service 4684c1
	movaps	16(%esp),%xmm1
Packit Service 4684c1
	movaps	32(%esp),%xmm2
Packit Service 4684c1
	movaps	48(%esp),%xmm3
Packit Service 4684c1
	movl	%edx,%esp
Packit Service 4684c1
	movl	12(%esp),%edi
Packit Service 4684c1
	movups	%xmm0,(%edi)
Packit Service 4684c1
	movups	%xmm1,16(%edi)
Packit Service 4684c1
	movups	%xmm2,32(%edi)
Packit Service 4684c1
	movups	%xmm3,48(%edi)
Packit Service 4684c1
	popl	%esi
Packit Service 4684c1
	popl	%edi
Packit Service 4684c1
	ret
Packit Service 4684c1
.byte	86,73,65,32,80,97,100,108,111,99,107,32,120,56,54,32
Packit Service 4684c1
.byte	109,111,100,117,108,101,44,32,67,82,89,80,84,79,71,65
Packit Service 4684c1
.byte	77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101
Packit Service 4684c1
.byte	110,115,115,108,46,111,114,103,62,0
Packit Service 4684c1
.align	4,0x90
Packit Service 4684c1
.data
Packit Service 4684c1
.align	2,0x90
Packit Service 4684c1
Lpadlock_saved_context:
Packit Service 4684c1
.long	0
Packit Service 4684c1