.text
.globl	BF_encrypt
.type	BF_encrypt,@function
.align	16
BF_encrypt:
.L_BF_encrypt_begin:

	pushl	%ebp
	pushl	%ebx
	movl	12(%esp),%ebx
	movl	16(%esp),%ebp
	pushl	%esi
	pushl	%edi

	movl	(%ebx),%edi
	movl	4(%ebx),%esi
	xorl	%eax,%eax
	movl	(%ebp),%ebx
	xorl	%ecx,%ecx
	xorl	%ebx,%edi


	movl	4(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	8(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	12(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	16(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	20(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	24(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	28(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	32(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	36(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	40(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	44(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	48(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	52(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	56(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	60(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	64(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx

	movl	20(%esp),%eax
	xorl	%ebx,%edi
	movl	68(%ebp),%edx
	xorl	%edx,%esi
	movl	%edi,4(%eax)
	movl	%esi,(%eax)
	popl	%edi
	popl	%esi
	popl	%ebx
	popl	%ebp
	ret
.size	BF_encrypt,.-.L_BF_encrypt_begin
.globl	BF_decrypt
.type	BF_decrypt,@function
.align	16
BF_decrypt:
.L_BF_decrypt_begin:

	pushl	%ebp
	pushl	%ebx
	movl	12(%esp),%ebx
	movl	16(%esp),%ebp
	pushl	%esi
	pushl	%edi

	movl	(%ebx),%edi
	movl	4(%ebx),%esi
	xorl	%eax,%eax
	movl	68(%ebp),%ebx
	xorl	%ecx,%ecx
	xorl	%ebx,%edi


	movl	64(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	60(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	56(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	52(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	48(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	44(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	40(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	36(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	32(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	28(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	24(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	20(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	16(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	12(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%edi


	movl	8(%ebp),%edx
	movl	%edi,%ebx
	xorl	%edx,%esi
	shrl	$16,%ebx
	movl	%edi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx
	xorl	%eax,%eax
	xorl	%ebx,%esi


	movl	4(%ebp),%edx
	movl	%esi,%ebx
	xorl	%edx,%edi
	shrl	$16,%ebx
	movl	%esi,%edx
	movb	%bh,%al
	andl	$255,%ebx
	movb	%dh,%cl
	andl	$255,%edx
	movl	72(%ebp,%eax,4),%eax
	movl	1096(%ebp,%ebx,4),%ebx
	addl	%eax,%ebx
	movl	2120(%ebp,%ecx,4),%eax
	xorl	%eax,%ebx
	movl	3144(%ebp,%edx,4),%edx
	addl	%edx,%ebx

	movl	20(%esp),%eax
	xorl	%ebx,%edi
	movl	(%ebp),%edx
	xorl	%edx,%esi
	movl	%edi,4(%eax)
	movl	%esi,(%eax)
	popl	%edi
	popl	%esi
	popl	%ebx
	popl	%ebp
	ret
.size	BF_decrypt,.-.L_BF_decrypt_begin
.globl	BF_cbc_encrypt
.type	BF_cbc_encrypt,@function
.align	16
BF_cbc_encrypt:
.L_BF_cbc_encrypt_begin:

	pushl	%ebp
	pushl	%ebx
	pushl	%esi
	pushl	%edi
	movl	28(%esp),%ebp

	movl	36(%esp),%ebx
	movl	(%ebx),%esi
	movl	4(%ebx),%edi
	pushl	%edi
	pushl	%esi
	pushl	%edi
	pushl	%esi
	movl	%esp,%ebx
	movl	36(%esp),%esi
	movl	40(%esp),%edi

	movl	56(%esp),%ecx

	movl	48(%esp),%eax
	pushl	%eax
	pushl	%ebx
	cmpl	$0,%ecx
	jz	.L000decrypt
	andl	$4294967288,%ebp
	movl	8(%esp),%eax
	movl	12(%esp),%ebx
	jz	.L001encrypt_finish
.L002encrypt_loop:
	movl	(%esi),%ecx
	movl	4(%esi),%edx
	xorl	%ecx,%eax
	xorl	%edx,%ebx
	bswap	%eax
	bswap	%ebx
	movl	%eax,8(%esp)
	movl	%ebx,12(%esp)
	call	.L_BF_encrypt_begin
	movl	8(%esp),%eax
	movl	12(%esp),%ebx
	bswap	%eax
	bswap	%ebx
	movl	%eax,(%edi)
	movl	%ebx,4(%edi)
	addl	$8,%esi
	addl	$8,%edi
	subl	$8,%ebp
	jnz	.L002encrypt_loop
.L001encrypt_finish:
	movl	52(%esp),%ebp
	andl	$7,%ebp
	jz	.L003finish
	call	.L004PIC_point
.L004PIC_point:
	popl	%edx
	leal	.L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
	movl	(%ecx,%ebp,4),%ebp
	addl	%edx,%ebp
	xorl	%ecx,%ecx
	xorl	%edx,%edx
	jmp	*%ebp
.L006ej7:
	movb	6(%esi),%dh
	shll	$8,%edx
.L007ej6:
	movb	5(%esi),%dh
.L008ej5:
	movb	4(%esi),%dl
.L009ej4:
	movl	(%esi),%ecx
	jmp	.L010ejend
.L011ej3:
	movb	2(%esi),%ch
	shll	$8,%ecx
.L012ej2:
	movb	1(%esi),%ch
.L013ej1:
	movb	(%esi),%cl
.L010ejend:
	xorl	%ecx,%eax
	xorl	%edx,%ebx
	bswap	%eax
	bswap	%ebx
	movl	%eax,8(%esp)
	movl	%ebx,12(%esp)
	call	.L_BF_encrypt_begin
	movl	8(%esp),%eax
	movl	12(%esp),%ebx
	bswap	%eax
	bswap	%ebx
	movl	%eax,(%edi)
	movl	%ebx,4(%edi)
	jmp	.L003finish
.L000decrypt:
	andl	$4294967288,%ebp
	movl	16(%esp),%eax
	movl	20(%esp),%ebx
	jz	.L014decrypt_finish
.L015decrypt_loop:
	movl	(%esi),%eax
	movl	4(%esi),%ebx
	bswap	%eax
	bswap	%ebx
	movl	%eax,8(%esp)
	movl	%ebx,12(%esp)
	call	.L_BF_decrypt_begin
	movl	8(%esp),%eax
	movl	12(%esp),%ebx
	bswap	%eax
	bswap	%ebx
	movl	16(%esp),%ecx
	movl	20(%esp),%edx
	xorl	%eax,%ecx
	xorl	%ebx,%edx
	movl	(%esi),%eax
	movl	4(%esi),%ebx
	movl	%ecx,(%edi)
	movl	%edx,4(%edi)
	movl	%eax,16(%esp)
	movl	%ebx,20(%esp)
	addl	$8,%esi
	addl	$8,%edi
	subl	$8,%ebp
	jnz	.L015decrypt_loop
.L014decrypt_finish:
	movl	52(%esp),%ebp
	andl	$7,%ebp
	jz	.L003finish
	movl	(%esi),%eax
	movl	4(%esi),%ebx
	bswap	%eax
	bswap	%ebx
	movl	%eax,8(%esp)
	movl	%ebx,12(%esp)
	call	.L_BF_decrypt_begin
	movl	8(%esp),%eax
	movl	12(%esp),%ebx
	bswap	%eax
	bswap	%ebx
	movl	16(%esp),%ecx
	movl	20(%esp),%edx
	xorl	%eax,%ecx
	xorl	%ebx,%edx
	movl	(%esi),%eax
	movl	4(%esi),%ebx
.L016dj7:
	rorl	$16,%edx
	movb	%dl,6(%edi)
	shrl	$16,%edx
.L017dj6:
	movb	%dh,5(%edi)
.L018dj5:
	movb	%dl,4(%edi)
.L019dj4:
	movl	%ecx,(%edi)
	jmp	.L020djend
.L021dj3:
	rorl	$16,%ecx
	movb	%cl,2(%edi)
	shll	$16,%ecx
.L022dj2:
	movb	%ch,1(%esi)
.L023dj1:
	movb	%cl,(%esi)
.L020djend:
	jmp	.L003finish
.L003finish:
	movl	60(%esp),%ecx
	addl	$24,%esp
	movl	%eax,(%ecx)
	movl	%ebx,4(%ecx)
	popl	%edi
	popl	%esi
	popl	%ebx
	popl	%ebp
	ret
.align	64
.L005cbc_enc_jmp_table:
.long	0
.long	.L013ej1-.L004PIC_point
.long	.L012ej2-.L004PIC_point
.long	.L011ej3-.L004PIC_point
.long	.L009ej4-.L004PIC_point
.long	.L008ej5-.L004PIC_point
.long	.L007ej6-.L004PIC_point
.long	.L006ej7-.L004PIC_point
.align	64
.size	BF_cbc_encrypt,.-.L_BF_cbc_encrypt_begin
