191671Sume/* $NetBSD: des_enc.S,v 1.1 2001/09/09 11:01:02 tls Exp $ */
291671Sume/* $FreeBSD: releng/11.0/sys/crypto/des/arch/i386/des_enc.S 113800 2003-04-21 16:30:12Z obrien $ */
391671Sume
491671Sume/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
591671Sume * All rights reserved.
691671Sume *
791671Sume * This package is an SSL implementation written
891671Sume * by Eric Young (eay@cryptsoft.com).
991671Sume * The implementation was written so as to conform with Netscapes SSL.
1091671Sume *
1191671Sume * This library is free for commercial and non-commercial use as long as
1291671Sume * the following conditions are aheared to.  The following conditions
1391671Sume * apply to all code found in this distribution, be it the RC4, RSA,
1491671Sume * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
1591671Sume * included with this distribution is covered by the same copyright terms
1691671Sume * except that the holder is Tim Hudson (tjh@cryptsoft.com).
1791671Sume *
1891671Sume * Copyright remains Eric Young's, and as such any Copyright notices in
1991671Sume * the code are not to be removed.
2091671Sume * If this package is used in a product, Eric Young should be given attribution
2191671Sume * as the author of the parts of the library used.
2291671Sume * This can be in the form of a textual message at program startup or
2391671Sume * in documentation (online or textual) provided with the package.
2491671Sume *
2591671Sume * Redistribution and use in source and binary forms, with or without
2691671Sume * modification, are permitted provided that the following conditions
2791671Sume * are met:
2891671Sume * 1. Redistributions of source code must retain the copyright
2991671Sume *    notice, this list of conditions and the following disclaimer.
3091671Sume * 2. Redistributions in binary form must reproduce the above copyright
3191671Sume *    notice, this list of conditions and the following disclaimer in the
3291671Sume *    documentation and/or other materials provided with the distribution.
3391671Sume * 3. All advertising materials mentioning features or use of this software
3491671Sume *    must display the following acknowledgement:
3591671Sume *    "This product includes cryptographic software written by
3691671Sume *     Eric Young (eay@cryptsoft.com)"
3791671Sume *    The word 'cryptographic' can be left out if the rouines from the library
3891671Sume *    being used are not cryptographic related :-).
3991671Sume * 4. If you include any Windows specific code (or a derivative thereof) from
4091671Sume *    the apps directory (application code) you must include an acknowledgement:
4191671Sume *    "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
4291671Sume *
4391671Sume * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
4491671Sume * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
4591671Sume * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
4691671Sume * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
4791671Sume * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
4891671Sume * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
4991671Sume * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
5091671Sume * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
5191671Sume * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
5291671Sume * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
5391671Sume * SUCH DAMAGE.
5491671Sume *
5591671Sume * The licence and distribution terms for any publically available version or
5691671Sume * derivative of this code cannot be changed.  i.e. this code cannot simply be
5791671Sume * copied and put under another distribution licence
5891671Sume * [including the GNU Public Licence.]
5991671Sume */
6091671Sume
6191671Sume/*
6291671Sume * Modified from the output of `perl des686.pl elf' by
6391671Sume * Thor Lancelot Simon <tls@netbsd.org>
6491671Sume */
6591671Sume
6691671Sume#include <i386/include/asm.h>
6791671Sume#define	_C_LABEL	CNAME
6891671Sume
6991671SumeENTRY(des_encrypt1)
7091671Sume	pushl	%esi
7191671Sume	pushl	%edi
7291671Sume
73113800Sobrien	/* Load the 2 words */
7491671Sume	movl	12(%esp),	%esi
7591671Sume	xorl	%ecx,		%ecx
7691671Sume	pushl	%ebx
7791671Sume	pushl	%ebp
7891671Sume	movl	(%esi),		%eax
7991671Sume	movl	28(%esp),	%ebx
8091671Sume	movl	4(%esi),	%edi
8191671Sume
82113800Sobrien	/* IP */
8391671Sume	roll	$4,		%eax
8491671Sume	movl	%eax,		%esi
8591671Sume	xorl	%edi,		%eax
8691671Sume	andl	$0xf0f0f0f0,	%eax
8791671Sume	xorl	%eax,		%esi
8891671Sume	xorl	%eax,		%edi
8991671Sume
9091671Sume	roll	$20,		%edi
9191671Sume	movl	%edi,		%eax
9291671Sume	xorl	%esi,		%edi
9391671Sume	andl	$0xfff0000f,	%edi
9491671Sume	xorl	%edi,		%eax
9591671Sume	xorl	%edi,		%esi
9691671Sume
9791671Sume	roll	$14,		%eax
9891671Sume	movl	%eax,		%edi
9991671Sume	xorl	%esi,		%eax
10091671Sume	andl	$0x33333333,	%eax
10191671Sume	xorl	%eax,		%edi
10291671Sume	xorl	%eax,		%esi
10391671Sume
10491671Sume	roll	$22,		%esi
10591671Sume	movl	%esi,		%eax
10691671Sume	xorl	%edi,		%esi
10791671Sume	andl	$0x03fc03fc,	%esi
10891671Sume	xorl	%esi,		%eax
10991671Sume	xorl	%esi,		%edi
11091671Sume
11191671Sume	roll	$9,		%eax
11291671Sume	movl	%eax,		%esi
11391671Sume	xorl	%edi,		%eax
11491671Sume	andl	$0xaaaaaaaa,	%eax
11591671Sume	xorl	%eax,		%esi
11691671Sume	xorl	%eax,		%edi
11791671Sume
11891671Sume.byte 209
11991671Sume.byte 199		# roll $1 %edi
12091671Sume	movl	24(%esp),	%ebp
12191671Sume	cmpl	$0,		%ebx
12291671Sume	je	.L000start_decrypt
12391671Sume
124113800Sobrien	/* Round 0 */
12591671Sume	movl	(%ebp),		%eax
12691671Sume	xorl	%ebx,		%ebx
12791671Sume	movl	4(%ebp),	%edx
12891671Sume	xorl	%esi,		%eax
12991671Sume	xorl	%esi,		%edx
13091671Sume	andl	$0xfcfcfcfc,	%eax
13191671Sume	andl	$0xcfcfcfcf,	%edx
13291671Sume	movb	%al,		%bl
13391671Sume	movb	%ah,		%cl
13491671Sume	rorl	$4,		%edx
13591671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
13691671Sume	movb	%dl,		%bl
13791671Sume	xorl	%ebp,		%edi
13891671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
13991671Sume	xorl	%ebp,		%edi
14091671Sume	movb	%dh,		%cl
14191671Sume	shrl	$16,		%eax
14291671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
14391671Sume	xorl	%ebp,		%edi
14491671Sume	movb	%ah,		%bl
14591671Sume	shrl	$16,		%edx
14691671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
14791671Sume	xorl	%ebp,		%edi
14891671Sume	movl	24(%esp),	%ebp
14991671Sume	movb	%dh,		%cl
15091671Sume	andl	$0xff,		%eax
15191671Sume	andl	$0xff,		%edx
15291671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
15391671Sume	xorl	%ebx,		%edi
15491671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
15591671Sume	xorl	%ebx,		%edi
15691671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
15791671Sume	xorl	%ebx,		%edi
15891671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
15991671Sume	xorl	%ebx,		%edi
16091671Sume
161113800Sobrien	/* Round 1 */
16291671Sume	movl	8(%ebp),	%eax
16391671Sume	xorl	%ebx,		%ebx
16491671Sume	movl	12(%ebp),	%edx
16591671Sume	xorl	%edi,		%eax
16691671Sume	xorl	%edi,		%edx
16791671Sume	andl	$0xfcfcfcfc,	%eax
16891671Sume	andl	$0xcfcfcfcf,	%edx
16991671Sume	movb	%al,		%bl
17091671Sume	movb	%ah,		%cl
17191671Sume	rorl	$4,		%edx
17291671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
17391671Sume	movb	%dl,		%bl
17491671Sume	xorl	%ebp,		%esi
17591671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
17691671Sume	xorl	%ebp,		%esi
17791671Sume	movb	%dh,		%cl
17891671Sume	shrl	$16,		%eax
17991671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
18091671Sume	xorl	%ebp,		%esi
18191671Sume	movb	%ah,		%bl
18291671Sume	shrl	$16,		%edx
18391671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
18491671Sume	xorl	%ebp,		%esi
18591671Sume	movl	24(%esp),	%ebp
18691671Sume	movb	%dh,		%cl
18791671Sume	andl	$0xff,		%eax
18891671Sume	andl	$0xff,		%edx
18991671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
19091671Sume	xorl	%ebx,		%esi
19191671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
19291671Sume	xorl	%ebx,		%esi
19391671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
19491671Sume	xorl	%ebx,		%esi
19591671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
19691671Sume	xorl	%ebx,		%esi
19791671Sume
198113800Sobrien	/* Round 2 */
19991671Sume	movl	16(%ebp),	%eax
20091671Sume	xorl	%ebx,		%ebx
20191671Sume	movl	20(%ebp),	%edx
20291671Sume	xorl	%esi,		%eax
20391671Sume	xorl	%esi,		%edx
20491671Sume	andl	$0xfcfcfcfc,	%eax
20591671Sume	andl	$0xcfcfcfcf,	%edx
20691671Sume	movb	%al,		%bl
20791671Sume	movb	%ah,		%cl
20891671Sume	rorl	$4,		%edx
20991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
21091671Sume	movb	%dl,		%bl
21191671Sume	xorl	%ebp,		%edi
21291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
21391671Sume	xorl	%ebp,		%edi
21491671Sume	movb	%dh,		%cl
21591671Sume	shrl	$16,		%eax
21691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
21791671Sume	xorl	%ebp,		%edi
21891671Sume	movb	%ah,		%bl
21991671Sume	shrl	$16,		%edx
22091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
22191671Sume	xorl	%ebp,		%edi
22291671Sume	movl	24(%esp),	%ebp
22391671Sume	movb	%dh,		%cl
22491671Sume	andl	$0xff,		%eax
22591671Sume	andl	$0xff,		%edx
22691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
22791671Sume	xorl	%ebx,		%edi
22891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
22991671Sume	xorl	%ebx,		%edi
23091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
23191671Sume	xorl	%ebx,		%edi
23291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
23391671Sume	xorl	%ebx,		%edi
23491671Sume
235113800Sobrien	/* Round 3 */
23691671Sume	movl	24(%ebp),	%eax
23791671Sume	xorl	%ebx,		%ebx
23891671Sume	movl	28(%ebp),	%edx
23991671Sume	xorl	%edi,		%eax
24091671Sume	xorl	%edi,		%edx
24191671Sume	andl	$0xfcfcfcfc,	%eax
24291671Sume	andl	$0xcfcfcfcf,	%edx
24391671Sume	movb	%al,		%bl
24491671Sume	movb	%ah,		%cl
24591671Sume	rorl	$4,		%edx
24691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
24791671Sume	movb	%dl,		%bl
24891671Sume	xorl	%ebp,		%esi
24991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
25091671Sume	xorl	%ebp,		%esi
25191671Sume	movb	%dh,		%cl
25291671Sume	shrl	$16,		%eax
25391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
25491671Sume	xorl	%ebp,		%esi
25591671Sume	movb	%ah,		%bl
25691671Sume	shrl	$16,		%edx
25791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
25891671Sume	xorl	%ebp,		%esi
25991671Sume	movl	24(%esp),	%ebp
26091671Sume	movb	%dh,		%cl
26191671Sume	andl	$0xff,		%eax
26291671Sume	andl	$0xff,		%edx
26391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
26491671Sume	xorl	%ebx,		%esi
26591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
26691671Sume	xorl	%ebx,		%esi
26791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
26891671Sume	xorl	%ebx,		%esi
26991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
27091671Sume	xorl	%ebx,		%esi
27191671Sume
272113800Sobrien	/* Round 4 */
27391671Sume	movl	32(%ebp),	%eax
27491671Sume	xorl	%ebx,		%ebx
27591671Sume	movl	36(%ebp),	%edx
27691671Sume	xorl	%esi,		%eax
27791671Sume	xorl	%esi,		%edx
27891671Sume	andl	$0xfcfcfcfc,	%eax
27991671Sume	andl	$0xcfcfcfcf,	%edx
28091671Sume	movb	%al,		%bl
28191671Sume	movb	%ah,		%cl
28291671Sume	rorl	$4,		%edx
28391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
28491671Sume	movb	%dl,		%bl
28591671Sume	xorl	%ebp,		%edi
28691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
28791671Sume	xorl	%ebp,		%edi
28891671Sume	movb	%dh,		%cl
28991671Sume	shrl	$16,		%eax
29091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
29191671Sume	xorl	%ebp,		%edi
29291671Sume	movb	%ah,		%bl
29391671Sume	shrl	$16,		%edx
29491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
29591671Sume	xorl	%ebp,		%edi
29691671Sume	movl	24(%esp),	%ebp
29791671Sume	movb	%dh,		%cl
29891671Sume	andl	$0xff,		%eax
29991671Sume	andl	$0xff,		%edx
30091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
30191671Sume	xorl	%ebx,		%edi
30291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
30391671Sume	xorl	%ebx,		%edi
30491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
30591671Sume	xorl	%ebx,		%edi
30691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
30791671Sume	xorl	%ebx,		%edi
30891671Sume
309113800Sobrien	/* Round 5 */
31091671Sume	movl	40(%ebp),	%eax
31191671Sume	xorl	%ebx,		%ebx
31291671Sume	movl	44(%ebp),	%edx
31391671Sume	xorl	%edi,		%eax
31491671Sume	xorl	%edi,		%edx
31591671Sume	andl	$0xfcfcfcfc,	%eax
31691671Sume	andl	$0xcfcfcfcf,	%edx
31791671Sume	movb	%al,		%bl
31891671Sume	movb	%ah,		%cl
31991671Sume	rorl	$4,		%edx
32091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
32191671Sume	movb	%dl,		%bl
32291671Sume	xorl	%ebp,		%esi
32391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
32491671Sume	xorl	%ebp,		%esi
32591671Sume	movb	%dh,		%cl
32691671Sume	shrl	$16,		%eax
32791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
32891671Sume	xorl	%ebp,		%esi
32991671Sume	movb	%ah,		%bl
33091671Sume	shrl	$16,		%edx
33191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
33291671Sume	xorl	%ebp,		%esi
33391671Sume	movl	24(%esp),	%ebp
33491671Sume	movb	%dh,		%cl
33591671Sume	andl	$0xff,		%eax
33691671Sume	andl	$0xff,		%edx
33791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
33891671Sume	xorl	%ebx,		%esi
33991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
34091671Sume	xorl	%ebx,		%esi
34191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
34291671Sume	xorl	%ebx,		%esi
34391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
34491671Sume	xorl	%ebx,		%esi
34591671Sume
346113800Sobrien	/* Round 6 */
34791671Sume	movl	48(%ebp),	%eax
34891671Sume	xorl	%ebx,		%ebx
34991671Sume	movl	52(%ebp),	%edx
35091671Sume	xorl	%esi,		%eax
35191671Sume	xorl	%esi,		%edx
35291671Sume	andl	$0xfcfcfcfc,	%eax
35391671Sume	andl	$0xcfcfcfcf,	%edx
35491671Sume	movb	%al,		%bl
35591671Sume	movb	%ah,		%cl
35691671Sume	rorl	$4,		%edx
35791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
35891671Sume	movb	%dl,		%bl
35991671Sume	xorl	%ebp,		%edi
36091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
36191671Sume	xorl	%ebp,		%edi
36291671Sume	movb	%dh,		%cl
36391671Sume	shrl	$16,		%eax
36491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
36591671Sume	xorl	%ebp,		%edi
36691671Sume	movb	%ah,		%bl
36791671Sume	shrl	$16,		%edx
36891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
36991671Sume	xorl	%ebp,		%edi
37091671Sume	movl	24(%esp),	%ebp
37191671Sume	movb	%dh,		%cl
37291671Sume	andl	$0xff,		%eax
37391671Sume	andl	$0xff,		%edx
37491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
37591671Sume	xorl	%ebx,		%edi
37691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
37791671Sume	xorl	%ebx,		%edi
37891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
37991671Sume	xorl	%ebx,		%edi
38091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
38191671Sume	xorl	%ebx,		%edi
38291671Sume
383113800Sobrien	/* Round 7 */
38491671Sume	movl	56(%ebp),	%eax
38591671Sume	xorl	%ebx,		%ebx
38691671Sume	movl	60(%ebp),	%edx
38791671Sume	xorl	%edi,		%eax
38891671Sume	xorl	%edi,		%edx
38991671Sume	andl	$0xfcfcfcfc,	%eax
39091671Sume	andl	$0xcfcfcfcf,	%edx
39191671Sume	movb	%al,		%bl
39291671Sume	movb	%ah,		%cl
39391671Sume	rorl	$4,		%edx
39491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
39591671Sume	movb	%dl,		%bl
39691671Sume	xorl	%ebp,		%esi
39791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
39891671Sume	xorl	%ebp,		%esi
39991671Sume	movb	%dh,		%cl
40091671Sume	shrl	$16,		%eax
40191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
40291671Sume	xorl	%ebp,		%esi
40391671Sume	movb	%ah,		%bl
40491671Sume	shrl	$16,		%edx
40591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
40691671Sume	xorl	%ebp,		%esi
40791671Sume	movl	24(%esp),	%ebp
40891671Sume	movb	%dh,		%cl
40991671Sume	andl	$0xff,		%eax
41091671Sume	andl	$0xff,		%edx
41191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
41291671Sume	xorl	%ebx,		%esi
41391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
41491671Sume	xorl	%ebx,		%esi
41591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
41691671Sume	xorl	%ebx,		%esi
41791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
41891671Sume	xorl	%ebx,		%esi
41991671Sume
420113800Sobrien	/* Round 8 */
42191671Sume	movl	64(%ebp),	%eax
42291671Sume	xorl	%ebx,		%ebx
42391671Sume	movl	68(%ebp),	%edx
42491671Sume	xorl	%esi,		%eax
42591671Sume	xorl	%esi,		%edx
42691671Sume	andl	$0xfcfcfcfc,	%eax
42791671Sume	andl	$0xcfcfcfcf,	%edx
42891671Sume	movb	%al,		%bl
42991671Sume	movb	%ah,		%cl
43091671Sume	rorl	$4,		%edx
43191671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
43291671Sume	movb	%dl,		%bl
43391671Sume	xorl	%ebp,		%edi
43491671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
43591671Sume	xorl	%ebp,		%edi
43691671Sume	movb	%dh,		%cl
43791671Sume	shrl	$16,		%eax
43891671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
43991671Sume	xorl	%ebp,		%edi
44091671Sume	movb	%ah,		%bl
44191671Sume	shrl	$16,		%edx
44291671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
44391671Sume	xorl	%ebp,		%edi
44491671Sume	movl	24(%esp),	%ebp
44591671Sume	movb	%dh,		%cl
44691671Sume	andl	$0xff,		%eax
44791671Sume	andl	$0xff,		%edx
44891671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
44991671Sume	xorl	%ebx,		%edi
45091671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
45191671Sume	xorl	%ebx,		%edi
45291671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
45391671Sume	xorl	%ebx,		%edi
45491671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
45591671Sume	xorl	%ebx,		%edi
45691671Sume
457113800Sobrien	/* Round 9 */
45891671Sume	movl	72(%ebp),	%eax
45991671Sume	xorl	%ebx,		%ebx
46091671Sume	movl	76(%ebp),	%edx
46191671Sume	xorl	%edi,		%eax
46291671Sume	xorl	%edi,		%edx
46391671Sume	andl	$0xfcfcfcfc,	%eax
46491671Sume	andl	$0xcfcfcfcf,	%edx
46591671Sume	movb	%al,		%bl
46691671Sume	movb	%ah,		%cl
46791671Sume	rorl	$4,		%edx
46891671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
46991671Sume	movb	%dl,		%bl
47091671Sume	xorl	%ebp,		%esi
47191671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
47291671Sume	xorl	%ebp,		%esi
47391671Sume	movb	%dh,		%cl
47491671Sume	shrl	$16,		%eax
47591671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
47691671Sume	xorl	%ebp,		%esi
47791671Sume	movb	%ah,		%bl
47891671Sume	shrl	$16,		%edx
47991671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
48091671Sume	xorl	%ebp,		%esi
48191671Sume	movl	24(%esp),	%ebp
48291671Sume	movb	%dh,		%cl
48391671Sume	andl	$0xff,		%eax
48491671Sume	andl	$0xff,		%edx
48591671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
48691671Sume	xorl	%ebx,		%esi
48791671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
48891671Sume	xorl	%ebx,		%esi
48991671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
49091671Sume	xorl	%ebx,		%esi
49191671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
49291671Sume	xorl	%ebx,		%esi
49391671Sume
494113800Sobrien	/* Round 10 */
49591671Sume	movl	80(%ebp),	%eax
49691671Sume	xorl	%ebx,		%ebx
49791671Sume	movl	84(%ebp),	%edx
49891671Sume	xorl	%esi,		%eax
49991671Sume	xorl	%esi,		%edx
50091671Sume	andl	$0xfcfcfcfc,	%eax
50191671Sume	andl	$0xcfcfcfcf,	%edx
50291671Sume	movb	%al,		%bl
50391671Sume	movb	%ah,		%cl
50491671Sume	rorl	$4,		%edx
50591671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
50691671Sume	movb	%dl,		%bl
50791671Sume	xorl	%ebp,		%edi
50891671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
50991671Sume	xorl	%ebp,		%edi
51091671Sume	movb	%dh,		%cl
51191671Sume	shrl	$16,		%eax
51291671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
51391671Sume	xorl	%ebp,		%edi
51491671Sume	movb	%ah,		%bl
51591671Sume	shrl	$16,		%edx
51691671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
51791671Sume	xorl	%ebp,		%edi
51891671Sume	movl	24(%esp),	%ebp
51991671Sume	movb	%dh,		%cl
52091671Sume	andl	$0xff,		%eax
52191671Sume	andl	$0xff,		%edx
52291671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
52391671Sume	xorl	%ebx,		%edi
52491671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
52591671Sume	xorl	%ebx,		%edi
52691671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
52791671Sume	xorl	%ebx,		%edi
52891671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
52991671Sume	xorl	%ebx,		%edi
53091671Sume
531113800Sobrien	/* Round 11 */
53291671Sume	movl	88(%ebp),	%eax
53391671Sume	xorl	%ebx,		%ebx
53491671Sume	movl	92(%ebp),	%edx
53591671Sume	xorl	%edi,		%eax
53691671Sume	xorl	%edi,		%edx
53791671Sume	andl	$0xfcfcfcfc,	%eax
53891671Sume	andl	$0xcfcfcfcf,	%edx
53991671Sume	movb	%al,		%bl
54091671Sume	movb	%ah,		%cl
54191671Sume	rorl	$4,		%edx
54291671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
54391671Sume	movb	%dl,		%bl
54491671Sume	xorl	%ebp,		%esi
54591671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
54691671Sume	xorl	%ebp,		%esi
54791671Sume	movb	%dh,		%cl
54891671Sume	shrl	$16,		%eax
54991671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
55091671Sume	xorl	%ebp,		%esi
55191671Sume	movb	%ah,		%bl
55291671Sume	shrl	$16,		%edx
55391671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
55491671Sume	xorl	%ebp,		%esi
55591671Sume	movl	24(%esp),	%ebp
55691671Sume	movb	%dh,		%cl
55791671Sume	andl	$0xff,		%eax
55891671Sume	andl	$0xff,		%edx
55991671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
56091671Sume	xorl	%ebx,		%esi
56191671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
56291671Sume	xorl	%ebx,		%esi
56391671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
56491671Sume	xorl	%ebx,		%esi
56591671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
56691671Sume	xorl	%ebx,		%esi
56791671Sume
568113800Sobrien	/* Round 12 */
56991671Sume	movl	96(%ebp),	%eax
57091671Sume	xorl	%ebx,		%ebx
57191671Sume	movl	100(%ebp),	%edx
57291671Sume	xorl	%esi,		%eax
57391671Sume	xorl	%esi,		%edx
57491671Sume	andl	$0xfcfcfcfc,	%eax
57591671Sume	andl	$0xcfcfcfcf,	%edx
57691671Sume	movb	%al,		%bl
57791671Sume	movb	%ah,		%cl
57891671Sume	rorl	$4,		%edx
57991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
58091671Sume	movb	%dl,		%bl
58191671Sume	xorl	%ebp,		%edi
58291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
58391671Sume	xorl	%ebp,		%edi
58491671Sume	movb	%dh,		%cl
58591671Sume	shrl	$16,		%eax
58691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
58791671Sume	xorl	%ebp,		%edi
58891671Sume	movb	%ah,		%bl
58991671Sume	shrl	$16,		%edx
59091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
59191671Sume	xorl	%ebp,		%edi
59291671Sume	movl	24(%esp),	%ebp
59391671Sume	movb	%dh,		%cl
59491671Sume	andl	$0xff,		%eax
59591671Sume	andl	$0xff,		%edx
59691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
59791671Sume	xorl	%ebx,		%edi
59891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
59991671Sume	xorl	%ebx,		%edi
60091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
60191671Sume	xorl	%ebx,		%edi
60291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
60391671Sume	xorl	%ebx,		%edi
60491671Sume
605113800Sobrien	/* Round 13 */
60691671Sume	movl	104(%ebp),	%eax
60791671Sume	xorl	%ebx,		%ebx
60891671Sume	movl	108(%ebp),	%edx
60991671Sume	xorl	%edi,		%eax
61091671Sume	xorl	%edi,		%edx
61191671Sume	andl	$0xfcfcfcfc,	%eax
61291671Sume	andl	$0xcfcfcfcf,	%edx
61391671Sume	movb	%al,		%bl
61491671Sume	movb	%ah,		%cl
61591671Sume	rorl	$4,		%edx
61691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
61791671Sume	movb	%dl,		%bl
61891671Sume	xorl	%ebp,		%esi
61991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
62091671Sume	xorl	%ebp,		%esi
62191671Sume	movb	%dh,		%cl
62291671Sume	shrl	$16,		%eax
62391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
62491671Sume	xorl	%ebp,		%esi
62591671Sume	movb	%ah,		%bl
62691671Sume	shrl	$16,		%edx
62791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
62891671Sume	xorl	%ebp,		%esi
62991671Sume	movl	24(%esp),	%ebp
63091671Sume	movb	%dh,		%cl
63191671Sume	andl	$0xff,		%eax
63291671Sume	andl	$0xff,		%edx
63391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
63491671Sume	xorl	%ebx,		%esi
63591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
63691671Sume	xorl	%ebx,		%esi
63791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
63891671Sume	xorl	%ebx,		%esi
63991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
64091671Sume	xorl	%ebx,		%esi
64191671Sume
642113800Sobrien	/* Round 14 */
64391671Sume	movl	112(%ebp),	%eax
64491671Sume	xorl	%ebx,		%ebx
64591671Sume	movl	116(%ebp),	%edx
64691671Sume	xorl	%esi,		%eax
64791671Sume	xorl	%esi,		%edx
64891671Sume	andl	$0xfcfcfcfc,	%eax
64991671Sume	andl	$0xcfcfcfcf,	%edx
65091671Sume	movb	%al,		%bl
65191671Sume	movb	%ah,		%cl
65291671Sume	rorl	$4,		%edx
65391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
65491671Sume	movb	%dl,		%bl
65591671Sume	xorl	%ebp,		%edi
65691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
65791671Sume	xorl	%ebp,		%edi
65891671Sume	movb	%dh,		%cl
65991671Sume	shrl	$16,		%eax
66091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
66191671Sume	xorl	%ebp,		%edi
66291671Sume	movb	%ah,		%bl
66391671Sume	shrl	$16,		%edx
66491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
66591671Sume	xorl	%ebp,		%edi
66691671Sume	movl	24(%esp),	%ebp
66791671Sume	movb	%dh,		%cl
66891671Sume	andl	$0xff,		%eax
66991671Sume	andl	$0xff,		%edx
67091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
67191671Sume	xorl	%ebx,		%edi
67291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
67391671Sume	xorl	%ebx,		%edi
67491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
67591671Sume	xorl	%ebx,		%edi
67691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
67791671Sume	xorl	%ebx,		%edi
67891671Sume
679113800Sobrien	/* Round 15 */
68091671Sume	movl	120(%ebp),	%eax
68191671Sume	xorl	%ebx,		%ebx
68291671Sume	movl	124(%ebp),	%edx
68391671Sume	xorl	%edi,		%eax
68491671Sume	xorl	%edi,		%edx
68591671Sume	andl	$0xfcfcfcfc,	%eax
68691671Sume	andl	$0xcfcfcfcf,	%edx
68791671Sume	movb	%al,		%bl
68891671Sume	movb	%ah,		%cl
68991671Sume	rorl	$4,		%edx
69091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
69191671Sume	movb	%dl,		%bl
69291671Sume	xorl	%ebp,		%esi
69391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
69491671Sume	xorl	%ebp,		%esi
69591671Sume	movb	%dh,		%cl
69691671Sume	shrl	$16,		%eax
69791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
69891671Sume	xorl	%ebp,		%esi
69991671Sume	movb	%ah,		%bl
70091671Sume	shrl	$16,		%edx
70191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
70291671Sume	xorl	%ebp,		%esi
70391671Sume	movl	24(%esp),	%ebp
70491671Sume	movb	%dh,		%cl
70591671Sume	andl	$0xff,		%eax
70691671Sume	andl	$0xff,		%edx
70791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
70891671Sume	xorl	%ebx,		%esi
70991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
71091671Sume	xorl	%ebx,		%esi
71191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
71291671Sume	xorl	%ebx,		%esi
71391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
71491671Sume	xorl	%ebx,		%esi
71591671Sume	jmp	.L001end
71691671Sume.L000start_decrypt:
71791671Sume
718113800Sobrien	/* Round 15 */
71991671Sume	movl	120(%ebp),	%eax
72091671Sume	xorl	%ebx,		%ebx
72191671Sume	movl	124(%ebp),	%edx
72291671Sume	xorl	%esi,		%eax
72391671Sume	xorl	%esi,		%edx
72491671Sume	andl	$0xfcfcfcfc,	%eax
72591671Sume	andl	$0xcfcfcfcf,	%edx
72691671Sume	movb	%al,		%bl
72791671Sume	movb	%ah,		%cl
72891671Sume	rorl	$4,		%edx
72991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
73091671Sume	movb	%dl,		%bl
73191671Sume	xorl	%ebp,		%edi
73291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
73391671Sume	xorl	%ebp,		%edi
73491671Sume	movb	%dh,		%cl
73591671Sume	shrl	$16,		%eax
73691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
73791671Sume	xorl	%ebp,		%edi
73891671Sume	movb	%ah,		%bl
73991671Sume	shrl	$16,		%edx
74091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
74191671Sume	xorl	%ebp,		%edi
74291671Sume	movl	24(%esp),	%ebp
74391671Sume	movb	%dh,		%cl
74491671Sume	andl	$0xff,		%eax
74591671Sume	andl	$0xff,		%edx
74691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
74791671Sume	xorl	%ebx,		%edi
74891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
74991671Sume	xorl	%ebx,		%edi
75091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
75191671Sume	xorl	%ebx,		%edi
75291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
75391671Sume	xorl	%ebx,		%edi
75491671Sume
755113800Sobrien	/* Round 14 */
75691671Sume	movl	112(%ebp),	%eax
75791671Sume	xorl	%ebx,		%ebx
75891671Sume	movl	116(%ebp),	%edx
75991671Sume	xorl	%edi,		%eax
76091671Sume	xorl	%edi,		%edx
76191671Sume	andl	$0xfcfcfcfc,	%eax
76291671Sume	andl	$0xcfcfcfcf,	%edx
76391671Sume	movb	%al,		%bl
76491671Sume	movb	%ah,		%cl
76591671Sume	rorl	$4,		%edx
76691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
76791671Sume	movb	%dl,		%bl
76891671Sume	xorl	%ebp,		%esi
76991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
77091671Sume	xorl	%ebp,		%esi
77191671Sume	movb	%dh,		%cl
77291671Sume	shrl	$16,		%eax
77391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
77491671Sume	xorl	%ebp,		%esi
77591671Sume	movb	%ah,		%bl
77691671Sume	shrl	$16,		%edx
77791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
77891671Sume	xorl	%ebp,		%esi
77991671Sume	movl	24(%esp),	%ebp
78091671Sume	movb	%dh,		%cl
78191671Sume	andl	$0xff,		%eax
78291671Sume	andl	$0xff,		%edx
78391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
78491671Sume	xorl	%ebx,		%esi
78591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
78691671Sume	xorl	%ebx,		%esi
78791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
78891671Sume	xorl	%ebx,		%esi
78991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
79091671Sume	xorl	%ebx,		%esi
79191671Sume
792113800Sobrien	/* Round 13 */
79391671Sume	movl	104(%ebp),	%eax
79491671Sume	xorl	%ebx,		%ebx
79591671Sume	movl	108(%ebp),	%edx
79691671Sume	xorl	%esi,		%eax
79791671Sume	xorl	%esi,		%edx
79891671Sume	andl	$0xfcfcfcfc,	%eax
79991671Sume	andl	$0xcfcfcfcf,	%edx
80091671Sume	movb	%al,		%bl
80191671Sume	movb	%ah,		%cl
80291671Sume	rorl	$4,		%edx
80391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
80491671Sume	movb	%dl,		%bl
80591671Sume	xorl	%ebp,		%edi
80691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
80791671Sume	xorl	%ebp,		%edi
80891671Sume	movb	%dh,		%cl
80991671Sume	shrl	$16,		%eax
81091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
81191671Sume	xorl	%ebp,		%edi
81291671Sume	movb	%ah,		%bl
81391671Sume	shrl	$16,		%edx
81491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
81591671Sume	xorl	%ebp,		%edi
81691671Sume	movl	24(%esp),	%ebp
81791671Sume	movb	%dh,		%cl
81891671Sume	andl	$0xff,		%eax
81991671Sume	andl	$0xff,		%edx
82091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
82191671Sume	xorl	%ebx,		%edi
82291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
82391671Sume	xorl	%ebx,		%edi
82491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
82591671Sume	xorl	%ebx,		%edi
82691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
82791671Sume	xorl	%ebx,		%edi
82891671Sume
829113800Sobrien	/* Round 12 */
83091671Sume	movl	96(%ebp),	%eax
83191671Sume	xorl	%ebx,		%ebx
83291671Sume	movl	100(%ebp),	%edx
83391671Sume	xorl	%edi,		%eax
83491671Sume	xorl	%edi,		%edx
83591671Sume	andl	$0xfcfcfcfc,	%eax
83691671Sume	andl	$0xcfcfcfcf,	%edx
83791671Sume	movb	%al,		%bl
83891671Sume	movb	%ah,		%cl
83991671Sume	rorl	$4,		%edx
84091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
84191671Sume	movb	%dl,		%bl
84291671Sume	xorl	%ebp,		%esi
84391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
84491671Sume	xorl	%ebp,		%esi
84591671Sume	movb	%dh,		%cl
84691671Sume	shrl	$16,		%eax
84791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
84891671Sume	xorl	%ebp,		%esi
84991671Sume	movb	%ah,		%bl
85091671Sume	shrl	$16,		%edx
85191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
85291671Sume	xorl	%ebp,		%esi
85391671Sume	movl	24(%esp),	%ebp
85491671Sume	movb	%dh,		%cl
85591671Sume	andl	$0xff,		%eax
85691671Sume	andl	$0xff,		%edx
85791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
85891671Sume	xorl	%ebx,		%esi
85991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
86091671Sume	xorl	%ebx,		%esi
86191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
86291671Sume	xorl	%ebx,		%esi
86391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
86491671Sume	xorl	%ebx,		%esi
86591671Sume
866113800Sobrien	/* Round 11 */
86791671Sume	movl	88(%ebp),	%eax
86891671Sume	xorl	%ebx,		%ebx
86991671Sume	movl	92(%ebp),	%edx
87091671Sume	xorl	%esi,		%eax
87191671Sume	xorl	%esi,		%edx
87291671Sume	andl	$0xfcfcfcfc,	%eax
87391671Sume	andl	$0xcfcfcfcf,	%edx
87491671Sume	movb	%al,		%bl
87591671Sume	movb	%ah,		%cl
87691671Sume	rorl	$4,		%edx
87791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
87891671Sume	movb	%dl,		%bl
87991671Sume	xorl	%ebp,		%edi
88091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
88191671Sume	xorl	%ebp,		%edi
88291671Sume	movb	%dh,		%cl
88391671Sume	shrl	$16,		%eax
88491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
88591671Sume	xorl	%ebp,		%edi
88691671Sume	movb	%ah,		%bl
88791671Sume	shrl	$16,		%edx
88891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
88991671Sume	xorl	%ebp,		%edi
89091671Sume	movl	24(%esp),	%ebp
89191671Sume	movb	%dh,		%cl
89291671Sume	andl	$0xff,		%eax
89391671Sume	andl	$0xff,		%edx
89491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
89591671Sume	xorl	%ebx,		%edi
89691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
89791671Sume	xorl	%ebx,		%edi
89891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
89991671Sume	xorl	%ebx,		%edi
90091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
90191671Sume	xorl	%ebx,		%edi
90291671Sume
903113800Sobrien	/* Round 10 */
90491671Sume	movl	80(%ebp),	%eax
90591671Sume	xorl	%ebx,		%ebx
90691671Sume	movl	84(%ebp),	%edx
90791671Sume	xorl	%edi,		%eax
90891671Sume	xorl	%edi,		%edx
90991671Sume	andl	$0xfcfcfcfc,	%eax
91091671Sume	andl	$0xcfcfcfcf,	%edx
91191671Sume	movb	%al,		%bl
91291671Sume	movb	%ah,		%cl
91391671Sume	rorl	$4,		%edx
91491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
91591671Sume	movb	%dl,		%bl
91691671Sume	xorl	%ebp,		%esi
91791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
91891671Sume	xorl	%ebp,		%esi
91991671Sume	movb	%dh,		%cl
92091671Sume	shrl	$16,		%eax
92191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
92291671Sume	xorl	%ebp,		%esi
92391671Sume	movb	%ah,		%bl
92491671Sume	shrl	$16,		%edx
92591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
92691671Sume	xorl	%ebp,		%esi
92791671Sume	movl	24(%esp),	%ebp
92891671Sume	movb	%dh,		%cl
92991671Sume	andl	$0xff,		%eax
93091671Sume	andl	$0xff,		%edx
93191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
93291671Sume	xorl	%ebx,		%esi
93391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
93491671Sume	xorl	%ebx,		%esi
93591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
93691671Sume	xorl	%ebx,		%esi
93791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
93891671Sume	xorl	%ebx,		%esi
93991671Sume
940113800Sobrien	/* Round 9 */
94191671Sume	movl	72(%ebp),	%eax
94291671Sume	xorl	%ebx,		%ebx
94391671Sume	movl	76(%ebp),	%edx
94491671Sume	xorl	%esi,		%eax
94591671Sume	xorl	%esi,		%edx
94691671Sume	andl	$0xfcfcfcfc,	%eax
94791671Sume	andl	$0xcfcfcfcf,	%edx
94891671Sume	movb	%al,		%bl
94991671Sume	movb	%ah,		%cl
95091671Sume	rorl	$4,		%edx
95191671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
95291671Sume	movb	%dl,		%bl
95391671Sume	xorl	%ebp,		%edi
95491671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
95591671Sume	xorl	%ebp,		%edi
95691671Sume	movb	%dh,		%cl
95791671Sume	shrl	$16,		%eax
95891671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
95991671Sume	xorl	%ebp,		%edi
96091671Sume	movb	%ah,		%bl
96191671Sume	shrl	$16,		%edx
96291671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
96391671Sume	xorl	%ebp,		%edi
96491671Sume	movl	24(%esp),	%ebp
96591671Sume	movb	%dh,		%cl
96691671Sume	andl	$0xff,		%eax
96791671Sume	andl	$0xff,		%edx
96891671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
96991671Sume	xorl	%ebx,		%edi
97091671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
97191671Sume	xorl	%ebx,		%edi
97291671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
97391671Sume	xorl	%ebx,		%edi
97491671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
97591671Sume	xorl	%ebx,		%edi
97691671Sume
977113800Sobrien	/* Round 8 */
97891671Sume	movl	64(%ebp),	%eax
97991671Sume	xorl	%ebx,		%ebx
98091671Sume	movl	68(%ebp),	%edx
98191671Sume	xorl	%edi,		%eax
98291671Sume	xorl	%edi,		%edx
98391671Sume	andl	$0xfcfcfcfc,	%eax
98491671Sume	andl	$0xcfcfcfcf,	%edx
98591671Sume	movb	%al,		%bl
98691671Sume	movb	%ah,		%cl
98791671Sume	rorl	$4,		%edx
98891671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
98991671Sume	movb	%dl,		%bl
99091671Sume	xorl	%ebp,		%esi
99191671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
99291671Sume	xorl	%ebp,		%esi
99391671Sume	movb	%dh,		%cl
99491671Sume	shrl	$16,		%eax
99591671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
99691671Sume	xorl	%ebp,		%esi
99791671Sume	movb	%ah,		%bl
99891671Sume	shrl	$16,		%edx
99991671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
100091671Sume	xorl	%ebp,		%esi
100191671Sume	movl	24(%esp),	%ebp
100291671Sume	movb	%dh,		%cl
100391671Sume	andl	$0xff,		%eax
100491671Sume	andl	$0xff,		%edx
100591671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
100691671Sume	xorl	%ebx,		%esi
100791671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
100891671Sume	xorl	%ebx,		%esi
100991671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
101091671Sume	xorl	%ebx,		%esi
101191671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
101291671Sume	xorl	%ebx,		%esi
101391671Sume
1014113800Sobrien	/* Round 7 */
101591671Sume	movl	56(%ebp),	%eax
101691671Sume	xorl	%ebx,		%ebx
101791671Sume	movl	60(%ebp),	%edx
101891671Sume	xorl	%esi,		%eax
101991671Sume	xorl	%esi,		%edx
102091671Sume	andl	$0xfcfcfcfc,	%eax
102191671Sume	andl	$0xcfcfcfcf,	%edx
102291671Sume	movb	%al,		%bl
102391671Sume	movb	%ah,		%cl
102491671Sume	rorl	$4,		%edx
102591671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
102691671Sume	movb	%dl,		%bl
102791671Sume	xorl	%ebp,		%edi
102891671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
102991671Sume	xorl	%ebp,		%edi
103091671Sume	movb	%dh,		%cl
103191671Sume	shrl	$16,		%eax
103291671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
103391671Sume	xorl	%ebp,		%edi
103491671Sume	movb	%ah,		%bl
103591671Sume	shrl	$16,		%edx
103691671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
103791671Sume	xorl	%ebp,		%edi
103891671Sume	movl	24(%esp),	%ebp
103991671Sume	movb	%dh,		%cl
104091671Sume	andl	$0xff,		%eax
104191671Sume	andl	$0xff,		%edx
104291671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
104391671Sume	xorl	%ebx,		%edi
104491671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
104591671Sume	xorl	%ebx,		%edi
104691671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
104791671Sume	xorl	%ebx,		%edi
104891671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
104991671Sume	xorl	%ebx,		%edi
105091671Sume
1051113800Sobrien	/* Round 6 */
105291671Sume	movl	48(%ebp),	%eax
105391671Sume	xorl	%ebx,		%ebx
105491671Sume	movl	52(%ebp),	%edx
105591671Sume	xorl	%edi,		%eax
105691671Sume	xorl	%edi,		%edx
105791671Sume	andl	$0xfcfcfcfc,	%eax
105891671Sume	andl	$0xcfcfcfcf,	%edx
105991671Sume	movb	%al,		%bl
106091671Sume	movb	%ah,		%cl
106191671Sume	rorl	$4,		%edx
106291671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
106391671Sume	movb	%dl,		%bl
106491671Sume	xorl	%ebp,		%esi
106591671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
106691671Sume	xorl	%ebp,		%esi
106791671Sume	movb	%dh,		%cl
106891671Sume	shrl	$16,		%eax
106991671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
107091671Sume	xorl	%ebp,		%esi
107191671Sume	movb	%ah,		%bl
107291671Sume	shrl	$16,		%edx
107391671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
107491671Sume	xorl	%ebp,		%esi
107591671Sume	movl	24(%esp),	%ebp
107691671Sume	movb	%dh,		%cl
107791671Sume	andl	$0xff,		%eax
107891671Sume	andl	$0xff,		%edx
107991671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
108091671Sume	xorl	%ebx,		%esi
108191671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
108291671Sume	xorl	%ebx,		%esi
108391671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
108491671Sume	xorl	%ebx,		%esi
108591671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
108691671Sume	xorl	%ebx,		%esi
108791671Sume
1088113800Sobrien	/* Round 5 */
108991671Sume	movl	40(%ebp),	%eax
109091671Sume	xorl	%ebx,		%ebx
109191671Sume	movl	44(%ebp),	%edx
109291671Sume	xorl	%esi,		%eax
109391671Sume	xorl	%esi,		%edx
109491671Sume	andl	$0xfcfcfcfc,	%eax
109591671Sume	andl	$0xcfcfcfcf,	%edx
109691671Sume	movb	%al,		%bl
109791671Sume	movb	%ah,		%cl
109891671Sume	rorl	$4,		%edx
109991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
110091671Sume	movb	%dl,		%bl
110191671Sume	xorl	%ebp,		%edi
110291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
110391671Sume	xorl	%ebp,		%edi
110491671Sume	movb	%dh,		%cl
110591671Sume	shrl	$16,		%eax
110691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
110791671Sume	xorl	%ebp,		%edi
110891671Sume	movb	%ah,		%bl
110991671Sume	shrl	$16,		%edx
111091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
111191671Sume	xorl	%ebp,		%edi
111291671Sume	movl	24(%esp),	%ebp
111391671Sume	movb	%dh,		%cl
111491671Sume	andl	$0xff,		%eax
111591671Sume	andl	$0xff,		%edx
111691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
111791671Sume	xorl	%ebx,		%edi
111891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
111991671Sume	xorl	%ebx,		%edi
112091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
112191671Sume	xorl	%ebx,		%edi
112291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
112391671Sume	xorl	%ebx,		%edi
112491671Sume
1125113800Sobrien	/* Round 4 */
112691671Sume	movl	32(%ebp),	%eax
112791671Sume	xorl	%ebx,		%ebx
112891671Sume	movl	36(%ebp),	%edx
112991671Sume	xorl	%edi,		%eax
113091671Sume	xorl	%edi,		%edx
113191671Sume	andl	$0xfcfcfcfc,	%eax
113291671Sume	andl	$0xcfcfcfcf,	%edx
113391671Sume	movb	%al,		%bl
113491671Sume	movb	%ah,		%cl
113591671Sume	rorl	$4,		%edx
113691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
113791671Sume	movb	%dl,		%bl
113891671Sume	xorl	%ebp,		%esi
113991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
114091671Sume	xorl	%ebp,		%esi
114191671Sume	movb	%dh,		%cl
114291671Sume	shrl	$16,		%eax
114391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
114491671Sume	xorl	%ebp,		%esi
114591671Sume	movb	%ah,		%bl
114691671Sume	shrl	$16,		%edx
114791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
114891671Sume	xorl	%ebp,		%esi
114991671Sume	movl	24(%esp),	%ebp
115091671Sume	movb	%dh,		%cl
115191671Sume	andl	$0xff,		%eax
115291671Sume	andl	$0xff,		%edx
115391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
115491671Sume	xorl	%ebx,		%esi
115591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
115691671Sume	xorl	%ebx,		%esi
115791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
115891671Sume	xorl	%ebx,		%esi
115991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
116091671Sume	xorl	%ebx,		%esi
116191671Sume
1162113800Sobrien	/* Round 3 */
116391671Sume	movl	24(%ebp),	%eax
116491671Sume	xorl	%ebx,		%ebx
116591671Sume	movl	28(%ebp),	%edx
116691671Sume	xorl	%esi,		%eax
116791671Sume	xorl	%esi,		%edx
116891671Sume	andl	$0xfcfcfcfc,	%eax
116991671Sume	andl	$0xcfcfcfcf,	%edx
117091671Sume	movb	%al,		%bl
117191671Sume	movb	%ah,		%cl
117291671Sume	rorl	$4,		%edx
117391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
117491671Sume	movb	%dl,		%bl
117591671Sume	xorl	%ebp,		%edi
117691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
117791671Sume	xorl	%ebp,		%edi
117891671Sume	movb	%dh,		%cl
117991671Sume	shrl	$16,		%eax
118091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
118191671Sume	xorl	%ebp,		%edi
118291671Sume	movb	%ah,		%bl
118391671Sume	shrl	$16,		%edx
118491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
118591671Sume	xorl	%ebp,		%edi
118691671Sume	movl	24(%esp),	%ebp
118791671Sume	movb	%dh,		%cl
118891671Sume	andl	$0xff,		%eax
118991671Sume	andl	$0xff,		%edx
119091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
119191671Sume	xorl	%ebx,		%edi
119291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
119391671Sume	xorl	%ebx,		%edi
119491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
119591671Sume	xorl	%ebx,		%edi
119691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
119791671Sume	xorl	%ebx,		%edi
119891671Sume
1199113800Sobrien	/* Round 2 */
120091671Sume	movl	16(%ebp),	%eax
120191671Sume	xorl	%ebx,		%ebx
120291671Sume	movl	20(%ebp),	%edx
120391671Sume	xorl	%edi,		%eax
120491671Sume	xorl	%edi,		%edx
120591671Sume	andl	$0xfcfcfcfc,	%eax
120691671Sume	andl	$0xcfcfcfcf,	%edx
120791671Sume	movb	%al,		%bl
120891671Sume	movb	%ah,		%cl
120991671Sume	rorl	$4,		%edx
121091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
121191671Sume	movb	%dl,		%bl
121291671Sume	xorl	%ebp,		%esi
121391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
121491671Sume	xorl	%ebp,		%esi
121591671Sume	movb	%dh,		%cl
121691671Sume	shrl	$16,		%eax
121791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
121891671Sume	xorl	%ebp,		%esi
121991671Sume	movb	%ah,		%bl
122091671Sume	shrl	$16,		%edx
122191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
122291671Sume	xorl	%ebp,		%esi
122391671Sume	movl	24(%esp),	%ebp
122491671Sume	movb	%dh,		%cl
122591671Sume	andl	$0xff,		%eax
122691671Sume	andl	$0xff,		%edx
122791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
122891671Sume	xorl	%ebx,		%esi
122991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
123091671Sume	xorl	%ebx,		%esi
123191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
123291671Sume	xorl	%ebx,		%esi
123391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
123491671Sume	xorl	%ebx,		%esi
123591671Sume
1236113800Sobrien	/* Round 1 */
123791671Sume	movl	8(%ebp),	%eax
123891671Sume	xorl	%ebx,		%ebx
123991671Sume	movl	12(%ebp),	%edx
124091671Sume	xorl	%esi,		%eax
124191671Sume	xorl	%esi,		%edx
124291671Sume	andl	$0xfcfcfcfc,	%eax
124391671Sume	andl	$0xcfcfcfcf,	%edx
124491671Sume	movb	%al,		%bl
124591671Sume	movb	%ah,		%cl
124691671Sume	rorl	$4,		%edx
124791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
124891671Sume	movb	%dl,		%bl
124991671Sume	xorl	%ebp,		%edi
125091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
125191671Sume	xorl	%ebp,		%edi
125291671Sume	movb	%dh,		%cl
125391671Sume	shrl	$16,		%eax
125491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
125591671Sume	xorl	%ebp,		%edi
125691671Sume	movb	%ah,		%bl
125791671Sume	shrl	$16,		%edx
125891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
125991671Sume	xorl	%ebp,		%edi
126091671Sume	movl	24(%esp),	%ebp
126191671Sume	movb	%dh,		%cl
126291671Sume	andl	$0xff,		%eax
126391671Sume	andl	$0xff,		%edx
126491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
126591671Sume	xorl	%ebx,		%edi
126691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
126791671Sume	xorl	%ebx,		%edi
126891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
126991671Sume	xorl	%ebx,		%edi
127091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
127191671Sume	xorl	%ebx,		%edi
127291671Sume
1273113800Sobrien	/* Round 0 */
127491671Sume	movl	(%ebp),		%eax
127591671Sume	xorl	%ebx,		%ebx
127691671Sume	movl	4(%ebp),	%edx
127791671Sume	xorl	%edi,		%eax
127891671Sume	xorl	%edi,		%edx
127991671Sume	andl	$0xfcfcfcfc,	%eax
128091671Sume	andl	$0xcfcfcfcf,	%edx
128191671Sume	movb	%al,		%bl
128291671Sume	movb	%ah,		%cl
128391671Sume	rorl	$4,		%edx
128491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
128591671Sume	movb	%dl,		%bl
128691671Sume	xorl	%ebp,		%esi
128791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
128891671Sume	xorl	%ebp,		%esi
128991671Sume	movb	%dh,		%cl
129091671Sume	shrl	$16,		%eax
129191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
129291671Sume	xorl	%ebp,		%esi
129391671Sume	movb	%ah,		%bl
129491671Sume	shrl	$16,		%edx
129591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
129691671Sume	xorl	%ebp,		%esi
129791671Sume	movl	24(%esp),	%ebp
129891671Sume	movb	%dh,		%cl
129991671Sume	andl	$0xff,		%eax
130091671Sume	andl	$0xff,		%edx
130191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
130291671Sume	xorl	%ebx,		%esi
130391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
130491671Sume	xorl	%ebx,		%esi
130591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
130691671Sume	xorl	%ebx,		%esi
130791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
130891671Sume	xorl	%ebx,		%esi
130991671Sume.L001end:
131091671Sume
1311113800Sobrien	/* FP */
131291671Sume	movl	20(%esp),	%edx
131391671Sume.byte 209
131491671Sume.byte 206		# rorl $1 %esi
131591671Sume	movl	%edi,		%eax
131691671Sume	xorl	%esi,		%edi
131791671Sume	andl	$0xaaaaaaaa,	%edi
131891671Sume	xorl	%edi,		%eax
131991671Sume	xorl	%edi,		%esi
132091671Sume
132191671Sume	roll	$23,		%eax
132291671Sume	movl	%eax,		%edi
132391671Sume	xorl	%esi,		%eax
132491671Sume	andl	$0x03fc03fc,	%eax
132591671Sume	xorl	%eax,		%edi
132691671Sume	xorl	%eax,		%esi
132791671Sume
132891671Sume	roll	$10,		%edi
132991671Sume	movl	%edi,		%eax
133091671Sume	xorl	%esi,		%edi
133191671Sume	andl	$0x33333333,	%edi
133291671Sume	xorl	%edi,		%eax
133391671Sume	xorl	%edi,		%esi
133491671Sume
133591671Sume	roll	$18,		%esi
133691671Sume	movl	%esi,		%edi
133791671Sume	xorl	%eax,		%esi
133891671Sume	andl	$0xfff0000f,	%esi
133991671Sume	xorl	%esi,		%edi
134091671Sume	xorl	%esi,		%eax
134191671Sume
134291671Sume	roll	$12,		%edi
134391671Sume	movl	%edi,		%esi
134491671Sume	xorl	%eax,		%edi
134591671Sume	andl	$0xf0f0f0f0,	%edi
134691671Sume	xorl	%edi,		%esi
134791671Sume	xorl	%edi,		%eax
134891671Sume
134991671Sume	rorl	$4,		%eax
135091671Sume	movl	%eax,		(%edx)
135191671Sume	movl	%esi,		4(%edx)
135291671Sume	popl	%ebp
135391671Sume	popl	%ebx
135491671Sume	popl	%edi
135591671Sume	popl	%esi
135691671Sume	ret
135791671Sume.L_des_encrypt1_end:
135891671Sume	.size	_C_LABEL(des_encrypt1),.L_des_encrypt1_end-_C_LABEL(des_encrypt1)
135991671Sume
136091671SumeENTRY(des_encrypt2)
136191671Sume	pushl	%esi
136291671Sume	pushl	%edi
136391671Sume
1364113800Sobrien	/* Load the 2 words */
136591671Sume	movl	12(%esp),	%eax
136691671Sume	xorl	%ecx,		%ecx
136791671Sume	pushl	%ebx
136891671Sume	pushl	%ebp
136991671Sume	movl	(%eax),		%esi
137091671Sume	movl	28(%esp),	%ebx
137191671Sume	roll	$3,		%esi
137291671Sume	movl	4(%eax),	%edi
137391671Sume	roll	$3,		%edi
137491671Sume	movl	24(%esp),	%ebp
137591671Sume	cmpl	$0,		%ebx
137691671Sume	je	.L002start_decrypt
137791671Sume
1378113800Sobrien	/* Round 0 */
137991671Sume	movl	(%ebp),		%eax
138091671Sume	xorl	%ebx,		%ebx
138191671Sume	movl	4(%ebp),	%edx
138291671Sume	xorl	%esi,		%eax
138391671Sume	xorl	%esi,		%edx
138491671Sume	andl	$0xfcfcfcfc,	%eax
138591671Sume	andl	$0xcfcfcfcf,	%edx
138691671Sume	movb	%al,		%bl
138791671Sume	movb	%ah,		%cl
138891671Sume	rorl	$4,		%edx
138991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
139091671Sume	movb	%dl,		%bl
139191671Sume	xorl	%ebp,		%edi
139291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
139391671Sume	xorl	%ebp,		%edi
139491671Sume	movb	%dh,		%cl
139591671Sume	shrl	$16,		%eax
139691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
139791671Sume	xorl	%ebp,		%edi
139891671Sume	movb	%ah,		%bl
139991671Sume	shrl	$16,		%edx
140091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
140191671Sume	xorl	%ebp,		%edi
140291671Sume	movl	24(%esp),	%ebp
140391671Sume	movb	%dh,		%cl
140491671Sume	andl	$0xff,		%eax
140591671Sume	andl	$0xff,		%edx
140691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
140791671Sume	xorl	%ebx,		%edi
140891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
140991671Sume	xorl	%ebx,		%edi
141091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
141191671Sume	xorl	%ebx,		%edi
141291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
141391671Sume	xorl	%ebx,		%edi
141491671Sume
1415113800Sobrien	/* Round 1 */
141691671Sume	movl	8(%ebp),	%eax
141791671Sume	xorl	%ebx,		%ebx
141891671Sume	movl	12(%ebp),	%edx
141991671Sume	xorl	%edi,		%eax
142091671Sume	xorl	%edi,		%edx
142191671Sume	andl	$0xfcfcfcfc,	%eax
142291671Sume	andl	$0xcfcfcfcf,	%edx
142391671Sume	movb	%al,		%bl
142491671Sume	movb	%ah,		%cl
142591671Sume	rorl	$4,		%edx
142691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
142791671Sume	movb	%dl,		%bl
142891671Sume	xorl	%ebp,		%esi
142991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
143091671Sume	xorl	%ebp,		%esi
143191671Sume	movb	%dh,		%cl
143291671Sume	shrl	$16,		%eax
143391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
143491671Sume	xorl	%ebp,		%esi
143591671Sume	movb	%ah,		%bl
143691671Sume	shrl	$16,		%edx
143791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
143891671Sume	xorl	%ebp,		%esi
143991671Sume	movl	24(%esp),	%ebp
144091671Sume	movb	%dh,		%cl
144191671Sume	andl	$0xff,		%eax
144291671Sume	andl	$0xff,		%edx
144391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
144491671Sume	xorl	%ebx,		%esi
144591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
144691671Sume	xorl	%ebx,		%esi
144791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
144891671Sume	xorl	%ebx,		%esi
144991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
145091671Sume	xorl	%ebx,		%esi
145191671Sume
1452113800Sobrien	/* Round 2 */
145391671Sume	movl	16(%ebp),	%eax
145491671Sume	xorl	%ebx,		%ebx
145591671Sume	movl	20(%ebp),	%edx
145691671Sume	xorl	%esi,		%eax
145791671Sume	xorl	%esi,		%edx
145891671Sume	andl	$0xfcfcfcfc,	%eax
145991671Sume	andl	$0xcfcfcfcf,	%edx
146091671Sume	movb	%al,		%bl
146191671Sume	movb	%ah,		%cl
146291671Sume	rorl	$4,		%edx
146391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
146491671Sume	movb	%dl,		%bl
146591671Sume	xorl	%ebp,		%edi
146691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
146791671Sume	xorl	%ebp,		%edi
146891671Sume	movb	%dh,		%cl
146991671Sume	shrl	$16,		%eax
147091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
147191671Sume	xorl	%ebp,		%edi
147291671Sume	movb	%ah,		%bl
147391671Sume	shrl	$16,		%edx
147491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
147591671Sume	xorl	%ebp,		%edi
147691671Sume	movl	24(%esp),	%ebp
147791671Sume	movb	%dh,		%cl
147891671Sume	andl	$0xff,		%eax
147991671Sume	andl	$0xff,		%edx
148091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
148191671Sume	xorl	%ebx,		%edi
148291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
148391671Sume	xorl	%ebx,		%edi
148491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
148591671Sume	xorl	%ebx,		%edi
148691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
148791671Sume	xorl	%ebx,		%edi
148891671Sume
1489113800Sobrien	/* Round 3 */
149091671Sume	movl	24(%ebp),	%eax
149191671Sume	xorl	%ebx,		%ebx
149291671Sume	movl	28(%ebp),	%edx
149391671Sume	xorl	%edi,		%eax
149491671Sume	xorl	%edi,		%edx
149591671Sume	andl	$0xfcfcfcfc,	%eax
149691671Sume	andl	$0xcfcfcfcf,	%edx
149791671Sume	movb	%al,		%bl
149891671Sume	movb	%ah,		%cl
149991671Sume	rorl	$4,		%edx
150091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
150191671Sume	movb	%dl,		%bl
150291671Sume	xorl	%ebp,		%esi
150391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
150491671Sume	xorl	%ebp,		%esi
150591671Sume	movb	%dh,		%cl
150691671Sume	shrl	$16,		%eax
150791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
150891671Sume	xorl	%ebp,		%esi
150991671Sume	movb	%ah,		%bl
151091671Sume	shrl	$16,		%edx
151191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
151291671Sume	xorl	%ebp,		%esi
151391671Sume	movl	24(%esp),	%ebp
151491671Sume	movb	%dh,		%cl
151591671Sume	andl	$0xff,		%eax
151691671Sume	andl	$0xff,		%edx
151791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
151891671Sume	xorl	%ebx,		%esi
151991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
152091671Sume	xorl	%ebx,		%esi
152191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
152291671Sume	xorl	%ebx,		%esi
152391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
152491671Sume	xorl	%ebx,		%esi
152591671Sume
1526113800Sobrien	/* Round 4 */
152791671Sume	movl	32(%ebp),	%eax
152891671Sume	xorl	%ebx,		%ebx
152991671Sume	movl	36(%ebp),	%edx
153091671Sume	xorl	%esi,		%eax
153191671Sume	xorl	%esi,		%edx
153291671Sume	andl	$0xfcfcfcfc,	%eax
153391671Sume	andl	$0xcfcfcfcf,	%edx
153491671Sume	movb	%al,		%bl
153591671Sume	movb	%ah,		%cl
153691671Sume	rorl	$4,		%edx
153791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
153891671Sume	movb	%dl,		%bl
153991671Sume	xorl	%ebp,		%edi
154091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
154191671Sume	xorl	%ebp,		%edi
154291671Sume	movb	%dh,		%cl
154391671Sume	shrl	$16,		%eax
154491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
154591671Sume	xorl	%ebp,		%edi
154691671Sume	movb	%ah,		%bl
154791671Sume	shrl	$16,		%edx
154891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
154991671Sume	xorl	%ebp,		%edi
155091671Sume	movl	24(%esp),	%ebp
155191671Sume	movb	%dh,		%cl
155291671Sume	andl	$0xff,		%eax
155391671Sume	andl	$0xff,		%edx
155491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
155591671Sume	xorl	%ebx,		%edi
155691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
155791671Sume	xorl	%ebx,		%edi
155891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
155991671Sume	xorl	%ebx,		%edi
156091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
156191671Sume	xorl	%ebx,		%edi
156291671Sume
1563113800Sobrien	/* Round 5 */
156491671Sume	movl	40(%ebp),	%eax
156591671Sume	xorl	%ebx,		%ebx
156691671Sume	movl	44(%ebp),	%edx
156791671Sume	xorl	%edi,		%eax
156891671Sume	xorl	%edi,		%edx
156991671Sume	andl	$0xfcfcfcfc,	%eax
157091671Sume	andl	$0xcfcfcfcf,	%edx
157191671Sume	movb	%al,		%bl
157291671Sume	movb	%ah,		%cl
157391671Sume	rorl	$4,		%edx
157491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
157591671Sume	movb	%dl,		%bl
157691671Sume	xorl	%ebp,		%esi
157791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
157891671Sume	xorl	%ebp,		%esi
157991671Sume	movb	%dh,		%cl
158091671Sume	shrl	$16,		%eax
158191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
158291671Sume	xorl	%ebp,		%esi
158391671Sume	movb	%ah,		%bl
158491671Sume	shrl	$16,		%edx
158591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
158691671Sume	xorl	%ebp,		%esi
158791671Sume	movl	24(%esp),	%ebp
158891671Sume	movb	%dh,		%cl
158991671Sume	andl	$0xff,		%eax
159091671Sume	andl	$0xff,		%edx
159191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
159291671Sume	xorl	%ebx,		%esi
159391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
159491671Sume	xorl	%ebx,		%esi
159591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
159691671Sume	xorl	%ebx,		%esi
159791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
159891671Sume	xorl	%ebx,		%esi
159991671Sume
1600113800Sobrien	/* Round 6 */
160191671Sume	movl	48(%ebp),	%eax
160291671Sume	xorl	%ebx,		%ebx
160391671Sume	movl	52(%ebp),	%edx
160491671Sume	xorl	%esi,		%eax
160591671Sume	xorl	%esi,		%edx
160691671Sume	andl	$0xfcfcfcfc,	%eax
160791671Sume	andl	$0xcfcfcfcf,	%edx
160891671Sume	movb	%al,		%bl
160991671Sume	movb	%ah,		%cl
161091671Sume	rorl	$4,		%edx
161191671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
161291671Sume	movb	%dl,		%bl
161391671Sume	xorl	%ebp,		%edi
161491671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
161591671Sume	xorl	%ebp,		%edi
161691671Sume	movb	%dh,		%cl
161791671Sume	shrl	$16,		%eax
161891671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
161991671Sume	xorl	%ebp,		%edi
162091671Sume	movb	%ah,		%bl
162191671Sume	shrl	$16,		%edx
162291671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
162391671Sume	xorl	%ebp,		%edi
162491671Sume	movl	24(%esp),	%ebp
162591671Sume	movb	%dh,		%cl
162691671Sume	andl	$0xff,		%eax
162791671Sume	andl	$0xff,		%edx
162891671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
162991671Sume	xorl	%ebx,		%edi
163091671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
163191671Sume	xorl	%ebx,		%edi
163291671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
163391671Sume	xorl	%ebx,		%edi
163491671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
163591671Sume	xorl	%ebx,		%edi
163691671Sume
1637113800Sobrien	/* Round 7 */
163891671Sume	movl	56(%ebp),	%eax
163991671Sume	xorl	%ebx,		%ebx
164091671Sume	movl	60(%ebp),	%edx
164191671Sume	xorl	%edi,		%eax
164291671Sume	xorl	%edi,		%edx
164391671Sume	andl	$0xfcfcfcfc,	%eax
164491671Sume	andl	$0xcfcfcfcf,	%edx
164591671Sume	movb	%al,		%bl
164691671Sume	movb	%ah,		%cl
164791671Sume	rorl	$4,		%edx
164891671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
164991671Sume	movb	%dl,		%bl
165091671Sume	xorl	%ebp,		%esi
165191671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
165291671Sume	xorl	%ebp,		%esi
165391671Sume	movb	%dh,		%cl
165491671Sume	shrl	$16,		%eax
165591671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
165691671Sume	xorl	%ebp,		%esi
165791671Sume	movb	%ah,		%bl
165891671Sume	shrl	$16,		%edx
165991671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
166091671Sume	xorl	%ebp,		%esi
166191671Sume	movl	24(%esp),	%ebp
166291671Sume	movb	%dh,		%cl
166391671Sume	andl	$0xff,		%eax
166491671Sume	andl	$0xff,		%edx
166591671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
166691671Sume	xorl	%ebx,		%esi
166791671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
166891671Sume	xorl	%ebx,		%esi
166991671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
167091671Sume	xorl	%ebx,		%esi
167191671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
167291671Sume	xorl	%ebx,		%esi
167391671Sume
1674113800Sobrien	/* Round 8 */
167591671Sume	movl	64(%ebp),	%eax
167691671Sume	xorl	%ebx,		%ebx
167791671Sume	movl	68(%ebp),	%edx
167891671Sume	xorl	%esi,		%eax
167991671Sume	xorl	%esi,		%edx
168091671Sume	andl	$0xfcfcfcfc,	%eax
168191671Sume	andl	$0xcfcfcfcf,	%edx
168291671Sume	movb	%al,		%bl
168391671Sume	movb	%ah,		%cl
168491671Sume	rorl	$4,		%edx
168591671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
168691671Sume	movb	%dl,		%bl
168791671Sume	xorl	%ebp,		%edi
168891671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
168991671Sume	xorl	%ebp,		%edi
169091671Sume	movb	%dh,		%cl
169191671Sume	shrl	$16,		%eax
169291671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
169391671Sume	xorl	%ebp,		%edi
169491671Sume	movb	%ah,		%bl
169591671Sume	shrl	$16,		%edx
169691671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
169791671Sume	xorl	%ebp,		%edi
169891671Sume	movl	24(%esp),	%ebp
169991671Sume	movb	%dh,		%cl
170091671Sume	andl	$0xff,		%eax
170191671Sume	andl	$0xff,		%edx
170291671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
170391671Sume	xorl	%ebx,		%edi
170491671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
170591671Sume	xorl	%ebx,		%edi
170691671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
170791671Sume	xorl	%ebx,		%edi
170891671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
170991671Sume	xorl	%ebx,		%edi
171091671Sume
1711113800Sobrien	/* Round 9 */
171291671Sume	movl	72(%ebp),	%eax
171391671Sume	xorl	%ebx,		%ebx
171491671Sume	movl	76(%ebp),	%edx
171591671Sume	xorl	%edi,		%eax
171691671Sume	xorl	%edi,		%edx
171791671Sume	andl	$0xfcfcfcfc,	%eax
171891671Sume	andl	$0xcfcfcfcf,	%edx
171991671Sume	movb	%al,		%bl
172091671Sume	movb	%ah,		%cl
172191671Sume	rorl	$4,		%edx
172291671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
172391671Sume	movb	%dl,		%bl
172491671Sume	xorl	%ebp,		%esi
172591671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
172691671Sume	xorl	%ebp,		%esi
172791671Sume	movb	%dh,		%cl
172891671Sume	shrl	$16,		%eax
172991671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
173091671Sume	xorl	%ebp,		%esi
173191671Sume	movb	%ah,		%bl
173291671Sume	shrl	$16,		%edx
173391671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
173491671Sume	xorl	%ebp,		%esi
173591671Sume	movl	24(%esp),	%ebp
173691671Sume	movb	%dh,		%cl
173791671Sume	andl	$0xff,		%eax
173891671Sume	andl	$0xff,		%edx
173991671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
174091671Sume	xorl	%ebx,		%esi
174191671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
174291671Sume	xorl	%ebx,		%esi
174391671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
174491671Sume	xorl	%ebx,		%esi
174591671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
174691671Sume	xorl	%ebx,		%esi
174791671Sume
1748113800Sobrien	/* Round 10 */
174991671Sume	movl	80(%ebp),	%eax
175091671Sume	xorl	%ebx,		%ebx
175191671Sume	movl	84(%ebp),	%edx
175291671Sume	xorl	%esi,		%eax
175391671Sume	xorl	%esi,		%edx
175491671Sume	andl	$0xfcfcfcfc,	%eax
175591671Sume	andl	$0xcfcfcfcf,	%edx
175691671Sume	movb	%al,		%bl
175791671Sume	movb	%ah,		%cl
175891671Sume	rorl	$4,		%edx
175991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
176091671Sume	movb	%dl,		%bl
176191671Sume	xorl	%ebp,		%edi
176291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
176391671Sume	xorl	%ebp,		%edi
176491671Sume	movb	%dh,		%cl
176591671Sume	shrl	$16,		%eax
176691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
176791671Sume	xorl	%ebp,		%edi
176891671Sume	movb	%ah,		%bl
176991671Sume	shrl	$16,		%edx
177091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
177191671Sume	xorl	%ebp,		%edi
177291671Sume	movl	24(%esp),	%ebp
177391671Sume	movb	%dh,		%cl
177491671Sume	andl	$0xff,		%eax
177591671Sume	andl	$0xff,		%edx
177691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
177791671Sume	xorl	%ebx,		%edi
177891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
177991671Sume	xorl	%ebx,		%edi
178091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
178191671Sume	xorl	%ebx,		%edi
178291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
178391671Sume	xorl	%ebx,		%edi
178491671Sume
1785113800Sobrien	/* Round 11 */
178691671Sume	movl	88(%ebp),	%eax
178791671Sume	xorl	%ebx,		%ebx
178891671Sume	movl	92(%ebp),	%edx
178991671Sume	xorl	%edi,		%eax
179091671Sume	xorl	%edi,		%edx
179191671Sume	andl	$0xfcfcfcfc,	%eax
179291671Sume	andl	$0xcfcfcfcf,	%edx
179391671Sume	movb	%al,		%bl
179491671Sume	movb	%ah,		%cl
179591671Sume	rorl	$4,		%edx
179691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
179791671Sume	movb	%dl,		%bl
179891671Sume	xorl	%ebp,		%esi
179991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
180091671Sume	xorl	%ebp,		%esi
180191671Sume	movb	%dh,		%cl
180291671Sume	shrl	$16,		%eax
180391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
180491671Sume	xorl	%ebp,		%esi
180591671Sume	movb	%ah,		%bl
180691671Sume	shrl	$16,		%edx
180791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
180891671Sume	xorl	%ebp,		%esi
180991671Sume	movl	24(%esp),	%ebp
181091671Sume	movb	%dh,		%cl
181191671Sume	andl	$0xff,		%eax
181291671Sume	andl	$0xff,		%edx
181391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
181491671Sume	xorl	%ebx,		%esi
181591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
181691671Sume	xorl	%ebx,		%esi
181791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
181891671Sume	xorl	%ebx,		%esi
181991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
182091671Sume	xorl	%ebx,		%esi
182191671Sume
1822113800Sobrien	/* Round 12 */
182391671Sume	movl	96(%ebp),	%eax
182491671Sume	xorl	%ebx,		%ebx
182591671Sume	movl	100(%ebp),	%edx
182691671Sume	xorl	%esi,		%eax
182791671Sume	xorl	%esi,		%edx
182891671Sume	andl	$0xfcfcfcfc,	%eax
182991671Sume	andl	$0xcfcfcfcf,	%edx
183091671Sume	movb	%al,		%bl
183191671Sume	movb	%ah,		%cl
183291671Sume	rorl	$4,		%edx
183391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
183491671Sume	movb	%dl,		%bl
183591671Sume	xorl	%ebp,		%edi
183691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
183791671Sume	xorl	%ebp,		%edi
183891671Sume	movb	%dh,		%cl
183991671Sume	shrl	$16,		%eax
184091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
184191671Sume	xorl	%ebp,		%edi
184291671Sume	movb	%ah,		%bl
184391671Sume	shrl	$16,		%edx
184491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
184591671Sume	xorl	%ebp,		%edi
184691671Sume	movl	24(%esp),	%ebp
184791671Sume	movb	%dh,		%cl
184891671Sume	andl	$0xff,		%eax
184991671Sume	andl	$0xff,		%edx
185091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
185191671Sume	xorl	%ebx,		%edi
185291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
185391671Sume	xorl	%ebx,		%edi
185491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
185591671Sume	xorl	%ebx,		%edi
185691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
185791671Sume	xorl	%ebx,		%edi
185891671Sume
1859113800Sobrien	/* Round 13 */
186091671Sume	movl	104(%ebp),	%eax
186191671Sume	xorl	%ebx,		%ebx
186291671Sume	movl	108(%ebp),	%edx
186391671Sume	xorl	%edi,		%eax
186491671Sume	xorl	%edi,		%edx
186591671Sume	andl	$0xfcfcfcfc,	%eax
186691671Sume	andl	$0xcfcfcfcf,	%edx
186791671Sume	movb	%al,		%bl
186891671Sume	movb	%ah,		%cl
186991671Sume	rorl	$4,		%edx
187091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
187191671Sume	movb	%dl,		%bl
187291671Sume	xorl	%ebp,		%esi
187391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
187491671Sume	xorl	%ebp,		%esi
187591671Sume	movb	%dh,		%cl
187691671Sume	shrl	$16,		%eax
187791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
187891671Sume	xorl	%ebp,		%esi
187991671Sume	movb	%ah,		%bl
188091671Sume	shrl	$16,		%edx
188191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
188291671Sume	xorl	%ebp,		%esi
188391671Sume	movl	24(%esp),	%ebp
188491671Sume	movb	%dh,		%cl
188591671Sume	andl	$0xff,		%eax
188691671Sume	andl	$0xff,		%edx
188791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
188891671Sume	xorl	%ebx,		%esi
188991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
189091671Sume	xorl	%ebx,		%esi
189191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
189291671Sume	xorl	%ebx,		%esi
189391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
189491671Sume	xorl	%ebx,		%esi
189591671Sume
1896113800Sobrien	/* Round 14 */
189791671Sume	movl	112(%ebp),	%eax
189891671Sume	xorl	%ebx,		%ebx
189991671Sume	movl	116(%ebp),	%edx
190091671Sume	xorl	%esi,		%eax
190191671Sume	xorl	%esi,		%edx
190291671Sume	andl	$0xfcfcfcfc,	%eax
190391671Sume	andl	$0xcfcfcfcf,	%edx
190491671Sume	movb	%al,		%bl
190591671Sume	movb	%ah,		%cl
190691671Sume	rorl	$4,		%edx
190791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
190891671Sume	movb	%dl,		%bl
190991671Sume	xorl	%ebp,		%edi
191091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
191191671Sume	xorl	%ebp,		%edi
191291671Sume	movb	%dh,		%cl
191391671Sume	shrl	$16,		%eax
191491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
191591671Sume	xorl	%ebp,		%edi
191691671Sume	movb	%ah,		%bl
191791671Sume	shrl	$16,		%edx
191891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
191991671Sume	xorl	%ebp,		%edi
192091671Sume	movl	24(%esp),	%ebp
192191671Sume	movb	%dh,		%cl
192291671Sume	andl	$0xff,		%eax
192391671Sume	andl	$0xff,		%edx
192491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
192591671Sume	xorl	%ebx,		%edi
192691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
192791671Sume	xorl	%ebx,		%edi
192891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
192991671Sume	xorl	%ebx,		%edi
193091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
193191671Sume	xorl	%ebx,		%edi
193291671Sume
1933113800Sobrien	/* Round 15 */
193491671Sume	movl	120(%ebp),	%eax
193591671Sume	xorl	%ebx,		%ebx
193691671Sume	movl	124(%ebp),	%edx
193791671Sume	xorl	%edi,		%eax
193891671Sume	xorl	%edi,		%edx
193991671Sume	andl	$0xfcfcfcfc,	%eax
194091671Sume	andl	$0xcfcfcfcf,	%edx
194191671Sume	movb	%al,		%bl
194291671Sume	movb	%ah,		%cl
194391671Sume	rorl	$4,		%edx
194491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
194591671Sume	movb	%dl,		%bl
194691671Sume	xorl	%ebp,		%esi
194791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
194891671Sume	xorl	%ebp,		%esi
194991671Sume	movb	%dh,		%cl
195091671Sume	shrl	$16,		%eax
195191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
195291671Sume	xorl	%ebp,		%esi
195391671Sume	movb	%ah,		%bl
195491671Sume	shrl	$16,		%edx
195591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
195691671Sume	xorl	%ebp,		%esi
195791671Sume	movl	24(%esp),	%ebp
195891671Sume	movb	%dh,		%cl
195991671Sume	andl	$0xff,		%eax
196091671Sume	andl	$0xff,		%edx
196191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
196291671Sume	xorl	%ebx,		%esi
196391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
196491671Sume	xorl	%ebx,		%esi
196591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
196691671Sume	xorl	%ebx,		%esi
196791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
196891671Sume	xorl	%ebx,		%esi
196991671Sume	jmp	.L003end
197091671Sume.L002start_decrypt:
197191671Sume
1972113800Sobrien	/* Round 15 */
197391671Sume	movl	120(%ebp),	%eax
197491671Sume	xorl	%ebx,		%ebx
197591671Sume	movl	124(%ebp),	%edx
197691671Sume	xorl	%esi,		%eax
197791671Sume	xorl	%esi,		%edx
197891671Sume	andl	$0xfcfcfcfc,	%eax
197991671Sume	andl	$0xcfcfcfcf,	%edx
198091671Sume	movb	%al,		%bl
198191671Sume	movb	%ah,		%cl
198291671Sume	rorl	$4,		%edx
198391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
198491671Sume	movb	%dl,		%bl
198591671Sume	xorl	%ebp,		%edi
198691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
198791671Sume	xorl	%ebp,		%edi
198891671Sume	movb	%dh,		%cl
198991671Sume	shrl	$16,		%eax
199091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
199191671Sume	xorl	%ebp,		%edi
199291671Sume	movb	%ah,		%bl
199391671Sume	shrl	$16,		%edx
199491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
199591671Sume	xorl	%ebp,		%edi
199691671Sume	movl	24(%esp),	%ebp
199791671Sume	movb	%dh,		%cl
199891671Sume	andl	$0xff,		%eax
199991671Sume	andl	$0xff,		%edx
200091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
200191671Sume	xorl	%ebx,		%edi
200291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
200391671Sume	xorl	%ebx,		%edi
200491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
200591671Sume	xorl	%ebx,		%edi
200691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
200791671Sume	xorl	%ebx,		%edi
200891671Sume
2009113800Sobrien	/* Round 14 */
201091671Sume	movl	112(%ebp),	%eax
201191671Sume	xorl	%ebx,		%ebx
201291671Sume	movl	116(%ebp),	%edx
201391671Sume	xorl	%edi,		%eax
201491671Sume	xorl	%edi,		%edx
201591671Sume	andl	$0xfcfcfcfc,	%eax
201691671Sume	andl	$0xcfcfcfcf,	%edx
201791671Sume	movb	%al,		%bl
201891671Sume	movb	%ah,		%cl
201991671Sume	rorl	$4,		%edx
202091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
202191671Sume	movb	%dl,		%bl
202291671Sume	xorl	%ebp,		%esi
202391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
202491671Sume	xorl	%ebp,		%esi
202591671Sume	movb	%dh,		%cl
202691671Sume	shrl	$16,		%eax
202791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
202891671Sume	xorl	%ebp,		%esi
202991671Sume	movb	%ah,		%bl
203091671Sume	shrl	$16,		%edx
203191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
203291671Sume	xorl	%ebp,		%esi
203391671Sume	movl	24(%esp),	%ebp
203491671Sume	movb	%dh,		%cl
203591671Sume	andl	$0xff,		%eax
203691671Sume	andl	$0xff,		%edx
203791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
203891671Sume	xorl	%ebx,		%esi
203991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
204091671Sume	xorl	%ebx,		%esi
204191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
204291671Sume	xorl	%ebx,		%esi
204391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
204491671Sume	xorl	%ebx,		%esi
204591671Sume
2046113800Sobrien	/* Round 13 */
204791671Sume	movl	104(%ebp),	%eax
204891671Sume	xorl	%ebx,		%ebx
204991671Sume	movl	108(%ebp),	%edx
205091671Sume	xorl	%esi,		%eax
205191671Sume	xorl	%esi,		%edx
205291671Sume	andl	$0xfcfcfcfc,	%eax
205391671Sume	andl	$0xcfcfcfcf,	%edx
205491671Sume	movb	%al,		%bl
205591671Sume	movb	%ah,		%cl
205691671Sume	rorl	$4,		%edx
205791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
205891671Sume	movb	%dl,		%bl
205991671Sume	xorl	%ebp,		%edi
206091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
206191671Sume	xorl	%ebp,		%edi
206291671Sume	movb	%dh,		%cl
206391671Sume	shrl	$16,		%eax
206491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
206591671Sume	xorl	%ebp,		%edi
206691671Sume	movb	%ah,		%bl
206791671Sume	shrl	$16,		%edx
206891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
206991671Sume	xorl	%ebp,		%edi
207091671Sume	movl	24(%esp),	%ebp
207191671Sume	movb	%dh,		%cl
207291671Sume	andl	$0xff,		%eax
207391671Sume	andl	$0xff,		%edx
207491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
207591671Sume	xorl	%ebx,		%edi
207691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
207791671Sume	xorl	%ebx,		%edi
207891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
207991671Sume	xorl	%ebx,		%edi
208091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
208191671Sume	xorl	%ebx,		%edi
208291671Sume
2083113800Sobrien	/* Round 12 */
208491671Sume	movl	96(%ebp),	%eax
208591671Sume	xorl	%ebx,		%ebx
208691671Sume	movl	100(%ebp),	%edx
208791671Sume	xorl	%edi,		%eax
208891671Sume	xorl	%edi,		%edx
208991671Sume	andl	$0xfcfcfcfc,	%eax
209091671Sume	andl	$0xcfcfcfcf,	%edx
209191671Sume	movb	%al,		%bl
209291671Sume	movb	%ah,		%cl
209391671Sume	rorl	$4,		%edx
209491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
209591671Sume	movb	%dl,		%bl
209691671Sume	xorl	%ebp,		%esi
209791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
209891671Sume	xorl	%ebp,		%esi
209991671Sume	movb	%dh,		%cl
210091671Sume	shrl	$16,		%eax
210191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
210291671Sume	xorl	%ebp,		%esi
210391671Sume	movb	%ah,		%bl
210491671Sume	shrl	$16,		%edx
210591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
210691671Sume	xorl	%ebp,		%esi
210791671Sume	movl	24(%esp),	%ebp
210891671Sume	movb	%dh,		%cl
210991671Sume	andl	$0xff,		%eax
211091671Sume	andl	$0xff,		%edx
211191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
211291671Sume	xorl	%ebx,		%esi
211391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
211491671Sume	xorl	%ebx,		%esi
211591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
211691671Sume	xorl	%ebx,		%esi
211791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
211891671Sume	xorl	%ebx,		%esi
211991671Sume
2120113800Sobrien	/* Round 11 */
212191671Sume	movl	88(%ebp),	%eax
212291671Sume	xorl	%ebx,		%ebx
212391671Sume	movl	92(%ebp),	%edx
212491671Sume	xorl	%esi,		%eax
212591671Sume	xorl	%esi,		%edx
212691671Sume	andl	$0xfcfcfcfc,	%eax
212791671Sume	andl	$0xcfcfcfcf,	%edx
212891671Sume	movb	%al,		%bl
212991671Sume	movb	%ah,		%cl
213091671Sume	rorl	$4,		%edx
213191671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
213291671Sume	movb	%dl,		%bl
213391671Sume	xorl	%ebp,		%edi
213491671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
213591671Sume	xorl	%ebp,		%edi
213691671Sume	movb	%dh,		%cl
213791671Sume	shrl	$16,		%eax
213891671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
213991671Sume	xorl	%ebp,		%edi
214091671Sume	movb	%ah,		%bl
214191671Sume	shrl	$16,		%edx
214291671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
214391671Sume	xorl	%ebp,		%edi
214491671Sume	movl	24(%esp),	%ebp
214591671Sume	movb	%dh,		%cl
214691671Sume	andl	$0xff,		%eax
214791671Sume	andl	$0xff,		%edx
214891671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
214991671Sume	xorl	%ebx,		%edi
215091671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
215191671Sume	xorl	%ebx,		%edi
215291671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
215391671Sume	xorl	%ebx,		%edi
215491671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
215591671Sume	xorl	%ebx,		%edi
215691671Sume
2157113800Sobrien	/* Round 10 */
215891671Sume	movl	80(%ebp),	%eax
215991671Sume	xorl	%ebx,		%ebx
216091671Sume	movl	84(%ebp),	%edx
216191671Sume	xorl	%edi,		%eax
216291671Sume	xorl	%edi,		%edx
216391671Sume	andl	$0xfcfcfcfc,	%eax
216491671Sume	andl	$0xcfcfcfcf,	%edx
216591671Sume	movb	%al,		%bl
216691671Sume	movb	%ah,		%cl
216791671Sume	rorl	$4,		%edx
216891671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
216991671Sume	movb	%dl,		%bl
217091671Sume	xorl	%ebp,		%esi
217191671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
217291671Sume	xorl	%ebp,		%esi
217391671Sume	movb	%dh,		%cl
217491671Sume	shrl	$16,		%eax
217591671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
217691671Sume	xorl	%ebp,		%esi
217791671Sume	movb	%ah,		%bl
217891671Sume	shrl	$16,		%edx
217991671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
218091671Sume	xorl	%ebp,		%esi
218191671Sume	movl	24(%esp),	%ebp
218291671Sume	movb	%dh,		%cl
218391671Sume	andl	$0xff,		%eax
218491671Sume	andl	$0xff,		%edx
218591671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
218691671Sume	xorl	%ebx,		%esi
218791671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
218891671Sume	xorl	%ebx,		%esi
218991671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
219091671Sume	xorl	%ebx,		%esi
219191671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
219291671Sume	xorl	%ebx,		%esi
219391671Sume
2194113800Sobrien	/* Round 9 */
219591671Sume	movl	72(%ebp),	%eax
219691671Sume	xorl	%ebx,		%ebx
219791671Sume	movl	76(%ebp),	%edx
219891671Sume	xorl	%esi,		%eax
219991671Sume	xorl	%esi,		%edx
220091671Sume	andl	$0xfcfcfcfc,	%eax
220191671Sume	andl	$0xcfcfcfcf,	%edx
220291671Sume	movb	%al,		%bl
220391671Sume	movb	%ah,		%cl
220491671Sume	rorl	$4,		%edx
220591671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
220691671Sume	movb	%dl,		%bl
220791671Sume	xorl	%ebp,		%edi
220891671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
220991671Sume	xorl	%ebp,		%edi
221091671Sume	movb	%dh,		%cl
221191671Sume	shrl	$16,		%eax
221291671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
221391671Sume	xorl	%ebp,		%edi
221491671Sume	movb	%ah,		%bl
221591671Sume	shrl	$16,		%edx
221691671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
221791671Sume	xorl	%ebp,		%edi
221891671Sume	movl	24(%esp),	%ebp
221991671Sume	movb	%dh,		%cl
222091671Sume	andl	$0xff,		%eax
222191671Sume	andl	$0xff,		%edx
222291671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
222391671Sume	xorl	%ebx,		%edi
222491671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
222591671Sume	xorl	%ebx,		%edi
222691671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
222791671Sume	xorl	%ebx,		%edi
222891671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
222991671Sume	xorl	%ebx,		%edi
223091671Sume
2231113800Sobrien	/* Round 8 */
223291671Sume	movl	64(%ebp),	%eax
223391671Sume	xorl	%ebx,		%ebx
223491671Sume	movl	68(%ebp),	%edx
223591671Sume	xorl	%edi,		%eax
223691671Sume	xorl	%edi,		%edx
223791671Sume	andl	$0xfcfcfcfc,	%eax
223891671Sume	andl	$0xcfcfcfcf,	%edx
223991671Sume	movb	%al,		%bl
224091671Sume	movb	%ah,		%cl
224191671Sume	rorl	$4,		%edx
224291671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
224391671Sume	movb	%dl,		%bl
224491671Sume	xorl	%ebp,		%esi
224591671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
224691671Sume	xorl	%ebp,		%esi
224791671Sume	movb	%dh,		%cl
224891671Sume	shrl	$16,		%eax
224991671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
225091671Sume	xorl	%ebp,		%esi
225191671Sume	movb	%ah,		%bl
225291671Sume	shrl	$16,		%edx
225391671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
225491671Sume	xorl	%ebp,		%esi
225591671Sume	movl	24(%esp),	%ebp
225691671Sume	movb	%dh,		%cl
225791671Sume	andl	$0xff,		%eax
225891671Sume	andl	$0xff,		%edx
225991671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
226091671Sume	xorl	%ebx,		%esi
226191671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
226291671Sume	xorl	%ebx,		%esi
226391671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
226491671Sume	xorl	%ebx,		%esi
226591671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
226691671Sume	xorl	%ebx,		%esi
226791671Sume
2268113800Sobrien	/* Round 7 */
226991671Sume	movl	56(%ebp),	%eax
227091671Sume	xorl	%ebx,		%ebx
227191671Sume	movl	60(%ebp),	%edx
227291671Sume	xorl	%esi,		%eax
227391671Sume	xorl	%esi,		%edx
227491671Sume	andl	$0xfcfcfcfc,	%eax
227591671Sume	andl	$0xcfcfcfcf,	%edx
227691671Sume	movb	%al,		%bl
227791671Sume	movb	%ah,		%cl
227891671Sume	rorl	$4,		%edx
227991671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
228091671Sume	movb	%dl,		%bl
228191671Sume	xorl	%ebp,		%edi
228291671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
228391671Sume	xorl	%ebp,		%edi
228491671Sume	movb	%dh,		%cl
228591671Sume	shrl	$16,		%eax
228691671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
228791671Sume	xorl	%ebp,		%edi
228891671Sume	movb	%ah,		%bl
228991671Sume	shrl	$16,		%edx
229091671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
229191671Sume	xorl	%ebp,		%edi
229291671Sume	movl	24(%esp),	%ebp
229391671Sume	movb	%dh,		%cl
229491671Sume	andl	$0xff,		%eax
229591671Sume	andl	$0xff,		%edx
229691671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
229791671Sume	xorl	%ebx,		%edi
229891671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
229991671Sume	xorl	%ebx,		%edi
230091671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
230191671Sume	xorl	%ebx,		%edi
230291671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
230391671Sume	xorl	%ebx,		%edi
230491671Sume
2305113800Sobrien	/* Round 6 */
230691671Sume	movl	48(%ebp),	%eax
230791671Sume	xorl	%ebx,		%ebx
230891671Sume	movl	52(%ebp),	%edx
230991671Sume	xorl	%edi,		%eax
231091671Sume	xorl	%edi,		%edx
231191671Sume	andl	$0xfcfcfcfc,	%eax
231291671Sume	andl	$0xcfcfcfcf,	%edx
231391671Sume	movb	%al,		%bl
231491671Sume	movb	%ah,		%cl
231591671Sume	rorl	$4,		%edx
231691671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
231791671Sume	movb	%dl,		%bl
231891671Sume	xorl	%ebp,		%esi
231991671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
232091671Sume	xorl	%ebp,		%esi
232191671Sume	movb	%dh,		%cl
232291671Sume	shrl	$16,		%eax
232391671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
232491671Sume	xorl	%ebp,		%esi
232591671Sume	movb	%ah,		%bl
232691671Sume	shrl	$16,		%edx
232791671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
232891671Sume	xorl	%ebp,		%esi
232991671Sume	movl	24(%esp),	%ebp
233091671Sume	movb	%dh,		%cl
233191671Sume	andl	$0xff,		%eax
233291671Sume	andl	$0xff,		%edx
233391671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
233491671Sume	xorl	%ebx,		%esi
233591671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
233691671Sume	xorl	%ebx,		%esi
233791671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
233891671Sume	xorl	%ebx,		%esi
233991671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
234091671Sume	xorl	%ebx,		%esi
234191671Sume
2342113800Sobrien	/* Round 5 */
234391671Sume	movl	40(%ebp),	%eax
234491671Sume	xorl	%ebx,		%ebx
234591671Sume	movl	44(%ebp),	%edx
234691671Sume	xorl	%esi,		%eax
234791671Sume	xorl	%esi,		%edx
234891671Sume	andl	$0xfcfcfcfc,	%eax
234991671Sume	andl	$0xcfcfcfcf,	%edx
235091671Sume	movb	%al,		%bl
235191671Sume	movb	%ah,		%cl
235291671Sume	rorl	$4,		%edx
235391671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
235491671Sume	movb	%dl,		%bl
235591671Sume	xorl	%ebp,		%edi
235691671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
235791671Sume	xorl	%ebp,		%edi
235891671Sume	movb	%dh,		%cl
235991671Sume	shrl	$16,		%eax
236091671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
236191671Sume	xorl	%ebp,		%edi
236291671Sume	movb	%ah,		%bl
236391671Sume	shrl	$16,		%edx
236491671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
236591671Sume	xorl	%ebp,		%edi
236691671Sume	movl	24(%esp),	%ebp
236791671Sume	movb	%dh,		%cl
236891671Sume	andl	$0xff,		%eax
236991671Sume	andl	$0xff,		%edx
237091671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
237191671Sume	xorl	%ebx,		%edi
237291671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
237391671Sume	xorl	%ebx,		%edi
237491671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
237591671Sume	xorl	%ebx,		%edi
237691671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
237791671Sume	xorl	%ebx,		%edi
237891671Sume
2379113800Sobrien	/* Round 4 */
238091671Sume	movl	32(%ebp),	%eax
238191671Sume	xorl	%ebx,		%ebx
238291671Sume	movl	36(%ebp),	%edx
238391671Sume	xorl	%edi,		%eax
238491671Sume	xorl	%edi,		%edx
238591671Sume	andl	$0xfcfcfcfc,	%eax
238691671Sume	andl	$0xcfcfcfcf,	%edx
238791671Sume	movb	%al,		%bl
238891671Sume	movb	%ah,		%cl
238991671Sume	rorl	$4,		%edx
239091671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
239191671Sume	movb	%dl,		%bl
239291671Sume	xorl	%ebp,		%esi
239391671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
239491671Sume	xorl	%ebp,		%esi
239591671Sume	movb	%dh,		%cl
239691671Sume	shrl	$16,		%eax
239791671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
239891671Sume	xorl	%ebp,		%esi
239991671Sume	movb	%ah,		%bl
240091671Sume	shrl	$16,		%edx
240191671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
240291671Sume	xorl	%ebp,		%esi
240391671Sume	movl	24(%esp),	%ebp
240491671Sume	movb	%dh,		%cl
240591671Sume	andl	$0xff,		%eax
240691671Sume	andl	$0xff,		%edx
240791671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
240891671Sume	xorl	%ebx,		%esi
240991671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
241091671Sume	xorl	%ebx,		%esi
241191671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
241291671Sume	xorl	%ebx,		%esi
241391671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
241491671Sume	xorl	%ebx,		%esi
241591671Sume
2416113800Sobrien	/* Round 3 */
241791671Sume	movl	24(%ebp),	%eax
241891671Sume	xorl	%ebx,		%ebx
241991671Sume	movl	28(%ebp),	%edx
242091671Sume	xorl	%esi,		%eax
242191671Sume	xorl	%esi,		%edx
242291671Sume	andl	$0xfcfcfcfc,	%eax
242391671Sume	andl	$0xcfcfcfcf,	%edx
242491671Sume	movb	%al,		%bl
242591671Sume	movb	%ah,		%cl
242691671Sume	rorl	$4,		%edx
242791671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
242891671Sume	movb	%dl,		%bl
242991671Sume	xorl	%ebp,		%edi
243091671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
243191671Sume	xorl	%ebp,		%edi
243291671Sume	movb	%dh,		%cl
243391671Sume	shrl	$16,		%eax
243491671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
243591671Sume	xorl	%ebp,		%edi
243691671Sume	movb	%ah,		%bl
243791671Sume	shrl	$16,		%edx
243891671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
243991671Sume	xorl	%ebp,		%edi
244091671Sume	movl	24(%esp),	%ebp
244191671Sume	movb	%dh,		%cl
244291671Sume	andl	$0xff,		%eax
244391671Sume	andl	$0xff,		%edx
244491671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
244591671Sume	xorl	%ebx,		%edi
244691671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
244791671Sume	xorl	%ebx,		%edi
244891671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
244991671Sume	xorl	%ebx,		%edi
245091671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
245191671Sume	xorl	%ebx,		%edi
245291671Sume
2453113800Sobrien	/* Round 2 */
245491671Sume	movl	16(%ebp),	%eax
245591671Sume	xorl	%ebx,		%ebx
245691671Sume	movl	20(%ebp),	%edx
245791671Sume	xorl	%edi,		%eax
245891671Sume	xorl	%edi,		%edx
245991671Sume	andl	$0xfcfcfcfc,	%eax
246091671Sume	andl	$0xcfcfcfcf,	%edx
246191671Sume	movb	%al,		%bl
246291671Sume	movb	%ah,		%cl
246391671Sume	rorl	$4,		%edx
246491671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
246591671Sume	movb	%dl,		%bl
246691671Sume	xorl	%ebp,		%esi
246791671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
246891671Sume	xorl	%ebp,		%esi
246991671Sume	movb	%dh,		%cl
247091671Sume	shrl	$16,		%eax
247191671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
247291671Sume	xorl	%ebp,		%esi
247391671Sume	movb	%ah,		%bl
247491671Sume	shrl	$16,		%edx
247591671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
247691671Sume	xorl	%ebp,		%esi
247791671Sume	movl	24(%esp),	%ebp
247891671Sume	movb	%dh,		%cl
247991671Sume	andl	$0xff,		%eax
248091671Sume	andl	$0xff,		%edx
248191671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
248291671Sume	xorl	%ebx,		%esi
248391671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
248491671Sume	xorl	%ebx,		%esi
248591671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
248691671Sume	xorl	%ebx,		%esi
248791671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
248891671Sume	xorl	%ebx,		%esi
248991671Sume
2490113800Sobrien	/* Round 1 */
249191671Sume	movl	8(%ebp),	%eax
249291671Sume	xorl	%ebx,		%ebx
249391671Sume	movl	12(%ebp),	%edx
249491671Sume	xorl	%esi,		%eax
249591671Sume	xorl	%esi,		%edx
249691671Sume	andl	$0xfcfcfcfc,	%eax
249791671Sume	andl	$0xcfcfcfcf,	%edx
249891671Sume	movb	%al,		%bl
249991671Sume	movb	%ah,		%cl
250091671Sume	rorl	$4,		%edx
250191671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
250291671Sume	movb	%dl,		%bl
250391671Sume	xorl	%ebp,		%edi
250491671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
250591671Sume	xorl	%ebp,		%edi
250691671Sume	movb	%dh,		%cl
250791671Sume	shrl	$16,		%eax
250891671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
250991671Sume	xorl	%ebp,		%edi
251091671Sume	movb	%ah,		%bl
251191671Sume	shrl	$16,		%edx
251291671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
251391671Sume	xorl	%ebp,		%edi
251491671Sume	movl	24(%esp),	%ebp
251591671Sume	movb	%dh,		%cl
251691671Sume	andl	$0xff,		%eax
251791671Sume	andl	$0xff,		%edx
251891671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
251991671Sume	xorl	%ebx,		%edi
252091671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
252191671Sume	xorl	%ebx,		%edi
252291671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
252391671Sume	xorl	%ebx,		%edi
252491671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
252591671Sume	xorl	%ebx,		%edi
252691671Sume
2527113800Sobrien	/* Round 0 */
252891671Sume	movl	(%ebp),		%eax
252991671Sume	xorl	%ebx,		%ebx
253091671Sume	movl	4(%ebp),	%edx
253191671Sume	xorl	%edi,		%eax
253291671Sume	xorl	%edi,		%edx
253391671Sume	andl	$0xfcfcfcfc,	%eax
253491671Sume	andl	$0xcfcfcfcf,	%edx
253591671Sume	movb	%al,		%bl
253691671Sume	movb	%ah,		%cl
253791671Sume	rorl	$4,		%edx
253891671Sume	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
253991671Sume	movb	%dl,		%bl
254091671Sume	xorl	%ebp,		%esi
254191671Sume	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
254291671Sume	xorl	%ebp,		%esi
254391671Sume	movb	%dh,		%cl
254491671Sume	shrl	$16,		%eax
254591671Sume	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
254691671Sume	xorl	%ebp,		%esi
254791671Sume	movb	%ah,		%bl
254891671Sume	shrl	$16,		%edx
254991671Sume	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
255091671Sume	xorl	%ebp,		%esi
255191671Sume	movl	24(%esp),	%ebp
255291671Sume	movb	%dh,		%cl
255391671Sume	andl	$0xff,		%eax
255491671Sume	andl	$0xff,		%edx
255591671Sume	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
255691671Sume	xorl	%ebx,		%esi
255791671Sume	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
255891671Sume	xorl	%ebx,		%esi
255991671Sume	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
256091671Sume	xorl	%ebx,		%esi
256191671Sume	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
256291671Sume	xorl	%ebx,		%esi
256391671Sume.L003end:
256491671Sume
2565113800Sobrien	/* Fixup */
256691671Sume	rorl	$3,		%edi
256791671Sume	movl	20(%esp),	%eax
256891671Sume	rorl	$3,		%esi
256991671Sume	movl	%edi,		(%eax)
257091671Sume	movl	%esi,		4(%eax)
257191671Sume	popl	%ebp
257291671Sume	popl	%ebx
257391671Sume	popl	%edi
257491671Sume	popl	%esi
257591671Sume	ret
257691671Sume.L_des_encrypt2_end:
257791671Sume	.size	_C_LABEL(des_encrypt2),.L_des_encrypt2_end-_C_LABEL(des_encrypt2)
257891671Sume
257991671SumeENTRY(des_encrypt3)
258091671Sume	pushl   %ebx
258191671Sume	movl    8(%esp),        %ebx
258291671Sume	pushl   %ebp
258391671Sume	pushl   %esi
258491671Sume	pushl   %edi
258591671Sume
2586113800Sobrien	/* Load the data words */
258791671Sume	movl    (%ebx),         %edi
258891671Sume	movl    4(%ebx),        %esi
258991671Sume	subl    $12,            %esp
259091671Sume
2591113800Sobrien	/* IP */
259291671Sume	roll    $4,             %edi
259391671Sume	movl    %edi,           %edx
259491671Sume	xorl    %esi,           %edi
259591671Sume	andl    $0xf0f0f0f0,    %edi
259691671Sume	xorl    %edi,           %edx
259791671Sume	xorl    %edi,           %esi
259891671Sume
259991671Sume	roll    $20,            %esi
260091671Sume	movl    %esi,           %edi
260191671Sume	xorl    %edx,           %esi
260291671Sume	andl    $0xfff0000f,    %esi
260391671Sume	xorl    %esi,           %edi
260491671Sume	xorl    %esi,           %edx
260591671Sume
260691671Sume	roll    $14,            %edi
260791671Sume	movl    %edi,           %esi
260891671Sume	xorl    %edx,           %edi
260991671Sume	andl    $0x33333333,    %edi
261091671Sume	xorl    %edi,           %esi
261191671Sume	xorl    %edi,           %edx
261291671Sume
261391671Sume	roll    $22,            %edx
261491671Sume	movl    %edx,           %edi
261591671Sume	xorl    %esi,           %edx
261691671Sume	andl    $0x03fc03fc,    %edx
261791671Sume	xorl    %edx,           %edi
261891671Sume	xorl    %edx,           %esi
261991671Sume
262091671Sume	roll    $9,             %edi
262191671Sume	movl    %edi,           %edx
262291671Sume	xorl    %esi,           %edi
262391671Sume	andl    $0xaaaaaaaa,    %edi
262491671Sume	xorl    %edi,           %edx
262591671Sume	xorl    %edi,           %esi
262691671Sume
262791671Sume	rorl    $3,             %edx
262891671Sume	rorl    $2,             %esi
262991671Sume	movl    %esi,           4(%ebx)
263091671Sume	movl    36(%esp),       %eax
263191671Sume	movl    %edx,           (%ebx)
263291671Sume	movl    40(%esp),       %edi
263391671Sume	movl    44(%esp),       %esi
263491671Sume	movl    $1,             8(%esp)
263591671Sume	movl    %eax,           4(%esp)
263691671Sume	movl    %ebx,           (%esp)
263791671Sume	call    _C_LABEL(des_encrypt2)
263891671Sume	movl    $0,             8(%esp)
263991671Sume	movl    %edi,           4(%esp)
264091671Sume	movl    %ebx,           (%esp)
264191671Sume	call    _C_LABEL(des_encrypt2)
264291671Sume	movl    $1,             8(%esp)
264391671Sume	movl    %esi,           4(%esp)
264491671Sume	movl    %ebx,           (%esp)
264591671Sume	call    _C_LABEL(des_encrypt2)
264691671Sume	addl    $12,            %esp
264791671Sume	movl    (%ebx),         %edi
264891671Sume	movl    4(%ebx),        %esi
264991671Sume
2650113800Sobrien	/* FP */
265191671Sume	roll    $2,             %esi
265291671Sume	roll    $3,             %edi
265391671Sume	movl    %edi,           %eax
265491671Sume	xorl    %esi,           %edi
265591671Sume	andl    $0xaaaaaaaa,    %edi
265691671Sume	xorl    %edi,           %eax
265791671Sume	xorl    %edi,           %esi
265891671Sume
265991671Sume	roll    $23,            %eax
266091671Sume	movl    %eax,           %edi
266191671Sume	xorl    %esi,           %eax
266291671Sume	andl    $0x03fc03fc,    %eax
266391671Sume	xorl    %eax,           %edi
266491671Sume	xorl    %eax,           %esi
266591671Sume
266691671Sume	roll    $10,            %edi
266791671Sume	movl    %edi,           %eax
266891671Sume	xorl    %esi,           %edi
266991671Sume	andl    $0x33333333,    %edi
267091671Sume	xorl    %edi,           %eax
267191671Sume	xorl    %edi,           %esi
267291671Sume
267391671Sume	roll    $18,            %esi
267491671Sume	movl    %esi,           %edi
267591671Sume	xorl    %eax,           %esi
267691671Sume	andl    $0xfff0000f,    %esi
267791671Sume	xorl    %esi,           %edi
267891671Sume	xorl    %esi,           %eax
267991671Sume
268091671Sume	roll    $12,            %edi
268191671Sume	movl    %edi,           %esi
268291671Sume	xorl    %eax,           %edi
268391671Sume	andl    $0xf0f0f0f0,    %edi
268491671Sume	xorl    %edi,           %esi
268591671Sume	xorl    %edi,           %eax
268691671Sume
268791671Sume	rorl    $4,             %eax
268891671Sume	movl    %eax,           (%ebx)
268991671Sume	movl    %esi,           4(%ebx)
269091671Sume	popl    %edi
269191671Sume	popl    %esi
269291671Sume	popl    %ebp
269391671Sume	popl    %ebx
269491671Sume	ret
269591671Sume.L_des_encrypt3_end:
269691671Sume        .size   _C_LABEL(des_encrypt3),.L_des_encrypt3_end-_C_LABEL(des_encrypt3)
269791671Sume
269891671SumeENTRY(des_decrypt3)
269991671Sume	pushl   %ebx
270091671Sume	movl    8(%esp),        %ebx
270191671Sume	pushl   %ebp
270291671Sume	pushl   %esi
270391671Sume	pushl   %edi
270491671Sume
2705113800Sobrien	/* Load the data words */
270691671Sume	movl    (%ebx),         %edi
270791671Sume	movl    4(%ebx),        %esi
270891671Sume	subl    $12,            %esp
270991671Sume
2710113800Sobrien	/* IP */
271191671Sume	roll    $4,             %edi
271291671Sume	movl    %edi,           %edx
271391671Sume	xorl    %esi,           %edi
271491671Sume	andl    $0xf0f0f0f0,    %edi
271591671Sume	xorl    %edi,           %edx
271691671Sume	xorl    %edi,           %esi
271791671Sume
271891671Sume	roll    $20,            %esi
271991671Sume	movl    %esi,           %edi
272091671Sume	xorl    %edx,           %esi
272191671Sume	andl    $0xfff0000f,    %esi
272291671Sume	xorl    %esi,           %edi
272391671Sume	xorl    %esi,           %edx
272491671Sume
272591671Sume	roll    $14,            %edi
272691671Sume	movl    %edi,           %esi
272791671Sume	xorl    %edx,           %edi
272891671Sume	andl    $0x33333333,    %edi
272991671Sume	xorl    %edi,           %esi
273091671Sume	xorl    %edi,           %edx
273191671Sume
273291671Sume	roll    $22,            %edx
273391671Sume	movl    %edx,           %edi
273491671Sume	xorl    %esi,           %edx
273591671Sume	andl    $0x03fc03fc,    %edx
273691671Sume	xorl    %edx,           %edi
273791671Sume	xorl    %edx,           %esi
273891671Sume
273991671Sume	roll    $9,             %edi
274091671Sume	movl    %edi,           %edx
274191671Sume	xorl    %esi,           %edi
274291671Sume	andl    $0xaaaaaaaa,    %edi
274391671Sume	xorl    %edi,           %edx
274491671Sume	xorl    %edi,           %esi
274591671Sume
274691671Sume	rorl    $3,             %edx
274791671Sume	rorl    $2,             %esi
274891671Sume	movl    %esi,           4(%ebx)
274991671Sume	movl    36(%esp),       %esi
275091671Sume	movl    %edx,           (%ebx)
275191671Sume	movl    40(%esp),       %edi
275291671Sume	movl    44(%esp),       %eax
275391671Sume	movl    $0,             8(%esp)
275491671Sume	movl    %eax,           4(%esp)
275591671Sume	movl    %ebx,           (%esp)
275691671Sume	call    _C_LABEL(des_encrypt2)
275791671Sume	movl    $1,             8(%esp)
275891671Sume	movl    %edi,           4(%esp)
275991671Sume	movl    %ebx,           (%esp)
276091671Sume	call    _C_LABEL(des_encrypt2)
276191671Sume	movl    $0,             8(%esp)
276291671Sume	movl    %esi,           4(%esp)
276391671Sume	movl    %ebx,           (%esp)
276491671Sume	call    _C_LABEL(des_encrypt2)
276591671Sume	addl    $12,            %esp
276691671Sume	movl    (%ebx),         %edi
276791671Sume	movl    4(%ebx),        %esi
276891671Sume
2769113800Sobrien	/* FP */
277091671Sume	roll    $2,             %esi
277191671Sume	roll    $3,             %edi
277291671Sume	movl    %edi,           %eax
277391671Sume	xorl    %esi,           %edi
277491671Sume	andl    $0xaaaaaaaa,    %edi
277591671Sume	xorl    %edi,           %eax
277691671Sume	xorl    %edi,           %esi
277791671Sume
277891671Sume	roll    $23,            %eax
277991671Sume	movl    %eax,           %edi
278091671Sume	xorl    %esi,           %eax
278191671Sume	andl    $0x03fc03fc,    %eax
278291671Sume	xorl    %eax,           %edi
278391671Sume	xorl    %eax,           %esi
278491671Sume
278591671Sume	roll    $10,            %edi
278691671Sume	movl    %edi,           %eax
278791671Sume	xorl    %esi,           %edi
278891671Sume	andl    $0x33333333,    %edi
278991671Sume	xorl    %edi,           %eax
279091671Sume	xorl    %edi,           %esi
279191671Sume
279291671Sume	roll    $18,            %esi
279391671Sume	movl    %esi,           %edi
279491671Sume	xorl    %eax,           %esi
279591671Sume	andl    $0xfff0000f,    %esi
279691671Sume	xorl    %esi,           %edi
279791671Sume	xorl    %esi,           %eax
279891671Sume
279991671Sume	roll    $12,            %edi
280091671Sume	movl    %edi,           %esi
280191671Sume	xorl    %eax,           %edi
280291671Sume	andl    $0xf0f0f0f0,    %edi
280391671Sume	xorl    %edi,           %esi
280491671Sume	xorl    %edi,           %eax
280591671Sume
280691671Sume        rorl    $4,             %eax
280791671Sume	movl    %eax,           (%ebx)
280891671Sume	movl    %esi,           4(%ebx)
280991671Sume	popl    %edi
281091671Sume	popl    %esi
281191671Sume	popl    %ebp
281291671Sume	popl    %ebx
281391671Sume	ret
281491671Sume.L_des_decrypt3_end:
281591671Sume	.size   _C_LABEL(des_decrypt3),.L_des_decrypt3_end-_C_LABEL(des_decrypt3)
2816