Home | History | Annotate | Line # | Download | only in i386
      1 /* $NetBSD: des_enc.S,v 1.5 2007/12/11 23:31:08 lukem Exp $ */
      2 
      3 /* Copyright (C) 1995-1997 Eric Young (eay (at) cryptsoft.com)
      4  * All rights reserved.
      5  *
      6  * This package is an SSL implementation written
      7  * by Eric Young (eay (at) cryptsoft.com).
      8  * The implementation was written so as to conform with Netscapes SSL.
      9  *
     10  * This library is free for commercial and non-commercial use as long as
     11  * the following conditions are aheared to.  The following conditions
     12  * apply to all code found in this distribution, be it the RC4, RSA,
     13  * lhash, DES, etc., code; not just the SSL code.  The SSL documentation
     14  * included with this distribution is covered by the same copyright terms
     15  * except that the holder is Tim Hudson (tjh (at) cryptsoft.com).
     16  *
     17  * Copyright remains Eric Young's, and as such any Copyright notices in
     18  * the code are not to be removed.
     19  * If this package is used in a product, Eric Young should be given attribution
     20  * as the author of the parts of the library used.
     21  * This can be in the form of a textual message at program startup or
     22  * in documentation (online or textual) provided with the package.
     23  *
     24  * Redistribution and use in source and binary forms, with or without
     25  * modification, are permitted provided that the following conditions
     26  * are met:
     27  * 1. Redistributions of source code must retain the copyright
     28  *    notice, this list of conditions and the following disclaimer.
     29  * 2. Redistributions in binary form must reproduce the above copyright
     30  *    notice, this list of conditions and the following disclaimer in the
     31  *    documentation and/or other materials provided with the distribution.
     32  * 3. All advertising materials mentioning features or use of this software
     33  *    must display the following acknowledgement:
     34  *    "This product includes cryptographic software written by
     35  *     Eric Young (eay (at) cryptsoft.com)"
     36  *    The word 'cryptographic' can be left out if the rouines from the library
     37  *    being used are not cryptographic related :-).
     38  * 4. If you include any Windows specific code (or a derivative thereof) from
     39  *    the apps directory (application code) you must include an acknowledgement:
     40  *    "This product includes software written by Tim Hudson (tjh (at) cryptsoft.com)"
     41  *
     42  * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
     43  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     44  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     45  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
     46  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     47  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     48  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     49  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     50  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     51  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     52  * SUCH DAMAGE.
     53  *
     54  * The licence and distribution terms for any publically available version or
     55  * derivative of this code cannot be changed.  i.e. this code cannot simply be
     56  * copied and put under another distribution licence
     57  * [including the GNU Public Licence.]
     58  */
     59 
     60 /*
     61  * Modified from the output of `perl des686.pl elf' by
     62  * Thor Lancelot Simon <tls (at) NetBSD.org>
     63  */
     64 
     65 #include <i386/include/asm.h>
     66 __KERNEL_RCSID(0, "$NetBSD: des_enc.S,v 1.5 2007/12/11 23:31:08 lukem Exp $");
     67 
     68 ENTRY(des_encrypt1)
     69 	pushl	%esi
     70 	pushl	%edi
     71 
     72 	# Load the 2 words
     73 	movl	12(%esp),	%esi
     74 	xorl	%ecx,		%ecx
     75 	pushl	%ebx
     76 	pushl	%ebp
     77 	movl	(%esi),		%eax
     78 	movl	28(%esp),	%ebx
     79 	movl	4(%esi),	%edi
     80 
     81 	# IP
     82 	roll	$4,		%eax
     83 	movl	%eax,		%esi
     84 	xorl	%edi,		%eax
     85 	andl	$0xf0f0f0f0,	%eax
     86 	xorl	%eax,		%esi
     87 	xorl	%eax,		%edi
     88 
     89 	roll	$20,		%edi
     90 	movl	%edi,		%eax
     91 	xorl	%esi,		%edi
     92 	andl	$0xfff0000f,	%edi
     93 	xorl	%edi,		%eax
     94 	xorl	%edi,		%esi
     95 
     96 	roll	$14,		%eax
     97 	movl	%eax,		%edi
     98 	xorl	%esi,		%eax
     99 	andl	$0x33333333,	%eax
    100 	xorl	%eax,		%edi
    101 	xorl	%eax,		%esi
    102 
    103 	roll	$22,		%esi
    104 	movl	%esi,		%eax
    105 	xorl	%edi,		%esi
    106 	andl	$0x03fc03fc,	%esi
    107 	xorl	%esi,		%eax
    108 	xorl	%esi,		%edi
    109 
    110 	roll	$9,		%eax
    111 	movl	%eax,		%esi
    112 	xorl	%edi,		%eax
    113 	andl	$0xaaaaaaaa,	%eax
    114 	xorl	%eax,		%esi
    115 	xorl	%eax,		%edi
    116 
    117 .byte 209
    118 .byte 199		# roll $1 %edi
    119 	movl	24(%esp),	%ebp
    120 	cmpl	$0,		%ebx
    121 	je	.L000start_decrypt
    122 
    123 	# Round 0
    124 	movl	(%ebp),		%eax
    125 	xorl	%ebx,		%ebx
    126 	movl	4(%ebp),	%edx
    127 	xorl	%esi,		%eax
    128 	xorl	%esi,		%edx
    129 	andl	$0xfcfcfcfc,	%eax
    130 	andl	$0xcfcfcfcf,	%edx
    131 	movb	%al,		%bl
    132 	movb	%ah,		%cl
    133 	rorl	$4,		%edx
    134 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    135 	movb	%dl,		%bl
    136 	xorl	%ebp,		%edi
    137 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    138 	xorl	%ebp,		%edi
    139 	movb	%dh,		%cl
    140 	shrl	$16,		%eax
    141 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    142 	xorl	%ebp,		%edi
    143 	movb	%ah,		%bl
    144 	shrl	$16,		%edx
    145 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    146 	xorl	%ebp,		%edi
    147 	movl	24(%esp),	%ebp
    148 	movb	%dh,		%cl
    149 	andl	$0xff,		%eax
    150 	andl	$0xff,		%edx
    151 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    152 	xorl	%ebx,		%edi
    153 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    154 	xorl	%ebx,		%edi
    155 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    156 	xorl	%ebx,		%edi
    157 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    158 	xorl	%ebx,		%edi
    159 
    160 	# Round 1
    161 	movl	8(%ebp),	%eax
    162 	xorl	%ebx,		%ebx
    163 	movl	12(%ebp),	%edx
    164 	xorl	%edi,		%eax
    165 	xorl	%edi,		%edx
    166 	andl	$0xfcfcfcfc,	%eax
    167 	andl	$0xcfcfcfcf,	%edx
    168 	movb	%al,		%bl
    169 	movb	%ah,		%cl
    170 	rorl	$4,		%edx
    171 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    172 	movb	%dl,		%bl
    173 	xorl	%ebp,		%esi
    174 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    175 	xorl	%ebp,		%esi
    176 	movb	%dh,		%cl
    177 	shrl	$16,		%eax
    178 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    179 	xorl	%ebp,		%esi
    180 	movb	%ah,		%bl
    181 	shrl	$16,		%edx
    182 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    183 	xorl	%ebp,		%esi
    184 	movl	24(%esp),	%ebp
    185 	movb	%dh,		%cl
    186 	andl	$0xff,		%eax
    187 	andl	$0xff,		%edx
    188 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    189 	xorl	%ebx,		%esi
    190 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    191 	xorl	%ebx,		%esi
    192 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    193 	xorl	%ebx,		%esi
    194 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    195 	xorl	%ebx,		%esi
    196 
    197 	# Round 2
    198 	movl	16(%ebp),	%eax
    199 	xorl	%ebx,		%ebx
    200 	movl	20(%ebp),	%edx
    201 	xorl	%esi,		%eax
    202 	xorl	%esi,		%edx
    203 	andl	$0xfcfcfcfc,	%eax
    204 	andl	$0xcfcfcfcf,	%edx
    205 	movb	%al,		%bl
    206 	movb	%ah,		%cl
    207 	rorl	$4,		%edx
    208 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    209 	movb	%dl,		%bl
    210 	xorl	%ebp,		%edi
    211 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    212 	xorl	%ebp,		%edi
    213 	movb	%dh,		%cl
    214 	shrl	$16,		%eax
    215 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    216 	xorl	%ebp,		%edi
    217 	movb	%ah,		%bl
    218 	shrl	$16,		%edx
    219 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    220 	xorl	%ebp,		%edi
    221 	movl	24(%esp),	%ebp
    222 	movb	%dh,		%cl
    223 	andl	$0xff,		%eax
    224 	andl	$0xff,		%edx
    225 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    226 	xorl	%ebx,		%edi
    227 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    228 	xorl	%ebx,		%edi
    229 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    230 	xorl	%ebx,		%edi
    231 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    232 	xorl	%ebx,		%edi
    233 
    234 	# Round 3
    235 	movl	24(%ebp),	%eax
    236 	xorl	%ebx,		%ebx
    237 	movl	28(%ebp),	%edx
    238 	xorl	%edi,		%eax
    239 	xorl	%edi,		%edx
    240 	andl	$0xfcfcfcfc,	%eax
    241 	andl	$0xcfcfcfcf,	%edx
    242 	movb	%al,		%bl
    243 	movb	%ah,		%cl
    244 	rorl	$4,		%edx
    245 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    246 	movb	%dl,		%bl
    247 	xorl	%ebp,		%esi
    248 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    249 	xorl	%ebp,		%esi
    250 	movb	%dh,		%cl
    251 	shrl	$16,		%eax
    252 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    253 	xorl	%ebp,		%esi
    254 	movb	%ah,		%bl
    255 	shrl	$16,		%edx
    256 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    257 	xorl	%ebp,		%esi
    258 	movl	24(%esp),	%ebp
    259 	movb	%dh,		%cl
    260 	andl	$0xff,		%eax
    261 	andl	$0xff,		%edx
    262 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    263 	xorl	%ebx,		%esi
    264 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    265 	xorl	%ebx,		%esi
    266 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    267 	xorl	%ebx,		%esi
    268 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    269 	xorl	%ebx,		%esi
    270 
    271 	# Round 4
    272 	movl	32(%ebp),	%eax
    273 	xorl	%ebx,		%ebx
    274 	movl	36(%ebp),	%edx
    275 	xorl	%esi,		%eax
    276 	xorl	%esi,		%edx
    277 	andl	$0xfcfcfcfc,	%eax
    278 	andl	$0xcfcfcfcf,	%edx
    279 	movb	%al,		%bl
    280 	movb	%ah,		%cl
    281 	rorl	$4,		%edx
    282 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    283 	movb	%dl,		%bl
    284 	xorl	%ebp,		%edi
    285 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    286 	xorl	%ebp,		%edi
    287 	movb	%dh,		%cl
    288 	shrl	$16,		%eax
    289 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    290 	xorl	%ebp,		%edi
    291 	movb	%ah,		%bl
    292 	shrl	$16,		%edx
    293 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    294 	xorl	%ebp,		%edi
    295 	movl	24(%esp),	%ebp
    296 	movb	%dh,		%cl
    297 	andl	$0xff,		%eax
    298 	andl	$0xff,		%edx
    299 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    300 	xorl	%ebx,		%edi
    301 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    302 	xorl	%ebx,		%edi
    303 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    304 	xorl	%ebx,		%edi
    305 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    306 	xorl	%ebx,		%edi
    307 
    308 	# Round 5
    309 	movl	40(%ebp),	%eax
    310 	xorl	%ebx,		%ebx
    311 	movl	44(%ebp),	%edx
    312 	xorl	%edi,		%eax
    313 	xorl	%edi,		%edx
    314 	andl	$0xfcfcfcfc,	%eax
    315 	andl	$0xcfcfcfcf,	%edx
    316 	movb	%al,		%bl
    317 	movb	%ah,		%cl
    318 	rorl	$4,		%edx
    319 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    320 	movb	%dl,		%bl
    321 	xorl	%ebp,		%esi
    322 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    323 	xorl	%ebp,		%esi
    324 	movb	%dh,		%cl
    325 	shrl	$16,		%eax
    326 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    327 	xorl	%ebp,		%esi
    328 	movb	%ah,		%bl
    329 	shrl	$16,		%edx
    330 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    331 	xorl	%ebp,		%esi
    332 	movl	24(%esp),	%ebp
    333 	movb	%dh,		%cl
    334 	andl	$0xff,		%eax
    335 	andl	$0xff,		%edx
    336 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    337 	xorl	%ebx,		%esi
    338 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    339 	xorl	%ebx,		%esi
    340 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    341 	xorl	%ebx,		%esi
    342 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    343 	xorl	%ebx,		%esi
    344 
    345 	# Round 6
    346 	movl	48(%ebp),	%eax
    347 	xorl	%ebx,		%ebx
    348 	movl	52(%ebp),	%edx
    349 	xorl	%esi,		%eax
    350 	xorl	%esi,		%edx
    351 	andl	$0xfcfcfcfc,	%eax
    352 	andl	$0xcfcfcfcf,	%edx
    353 	movb	%al,		%bl
    354 	movb	%ah,		%cl
    355 	rorl	$4,		%edx
    356 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    357 	movb	%dl,		%bl
    358 	xorl	%ebp,		%edi
    359 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    360 	xorl	%ebp,		%edi
    361 	movb	%dh,		%cl
    362 	shrl	$16,		%eax
    363 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    364 	xorl	%ebp,		%edi
    365 	movb	%ah,		%bl
    366 	shrl	$16,		%edx
    367 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    368 	xorl	%ebp,		%edi
    369 	movl	24(%esp),	%ebp
    370 	movb	%dh,		%cl
    371 	andl	$0xff,		%eax
    372 	andl	$0xff,		%edx
    373 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    374 	xorl	%ebx,		%edi
    375 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    376 	xorl	%ebx,		%edi
    377 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    378 	xorl	%ebx,		%edi
    379 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    380 	xorl	%ebx,		%edi
    381 
    382 	# Round 7
    383 	movl	56(%ebp),	%eax
    384 	xorl	%ebx,		%ebx
    385 	movl	60(%ebp),	%edx
    386 	xorl	%edi,		%eax
    387 	xorl	%edi,		%edx
    388 	andl	$0xfcfcfcfc,	%eax
    389 	andl	$0xcfcfcfcf,	%edx
    390 	movb	%al,		%bl
    391 	movb	%ah,		%cl
    392 	rorl	$4,		%edx
    393 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    394 	movb	%dl,		%bl
    395 	xorl	%ebp,		%esi
    396 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    397 	xorl	%ebp,		%esi
    398 	movb	%dh,		%cl
    399 	shrl	$16,		%eax
    400 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    401 	xorl	%ebp,		%esi
    402 	movb	%ah,		%bl
    403 	shrl	$16,		%edx
    404 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    405 	xorl	%ebp,		%esi
    406 	movl	24(%esp),	%ebp
    407 	movb	%dh,		%cl
    408 	andl	$0xff,		%eax
    409 	andl	$0xff,		%edx
    410 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    411 	xorl	%ebx,		%esi
    412 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    413 	xorl	%ebx,		%esi
    414 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    415 	xorl	%ebx,		%esi
    416 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    417 	xorl	%ebx,		%esi
    418 
    419 	# Round 8
    420 	movl	64(%ebp),	%eax
    421 	xorl	%ebx,		%ebx
    422 	movl	68(%ebp),	%edx
    423 	xorl	%esi,		%eax
    424 	xorl	%esi,		%edx
    425 	andl	$0xfcfcfcfc,	%eax
    426 	andl	$0xcfcfcfcf,	%edx
    427 	movb	%al,		%bl
    428 	movb	%ah,		%cl
    429 	rorl	$4,		%edx
    430 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    431 	movb	%dl,		%bl
    432 	xorl	%ebp,		%edi
    433 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    434 	xorl	%ebp,		%edi
    435 	movb	%dh,		%cl
    436 	shrl	$16,		%eax
    437 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    438 	xorl	%ebp,		%edi
    439 	movb	%ah,		%bl
    440 	shrl	$16,		%edx
    441 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    442 	xorl	%ebp,		%edi
    443 	movl	24(%esp),	%ebp
    444 	movb	%dh,		%cl
    445 	andl	$0xff,		%eax
    446 	andl	$0xff,		%edx
    447 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    448 	xorl	%ebx,		%edi
    449 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    450 	xorl	%ebx,		%edi
    451 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    452 	xorl	%ebx,		%edi
    453 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    454 	xorl	%ebx,		%edi
    455 
    456 	# Round 9
    457 	movl	72(%ebp),	%eax
    458 	xorl	%ebx,		%ebx
    459 	movl	76(%ebp),	%edx
    460 	xorl	%edi,		%eax
    461 	xorl	%edi,		%edx
    462 	andl	$0xfcfcfcfc,	%eax
    463 	andl	$0xcfcfcfcf,	%edx
    464 	movb	%al,		%bl
    465 	movb	%ah,		%cl
    466 	rorl	$4,		%edx
    467 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    468 	movb	%dl,		%bl
    469 	xorl	%ebp,		%esi
    470 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    471 	xorl	%ebp,		%esi
    472 	movb	%dh,		%cl
    473 	shrl	$16,		%eax
    474 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    475 	xorl	%ebp,		%esi
    476 	movb	%ah,		%bl
    477 	shrl	$16,		%edx
    478 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    479 	xorl	%ebp,		%esi
    480 	movl	24(%esp),	%ebp
    481 	movb	%dh,		%cl
    482 	andl	$0xff,		%eax
    483 	andl	$0xff,		%edx
    484 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    485 	xorl	%ebx,		%esi
    486 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    487 	xorl	%ebx,		%esi
    488 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    489 	xorl	%ebx,		%esi
    490 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    491 	xorl	%ebx,		%esi
    492 
    493 	# Round 10
    494 	movl	80(%ebp),	%eax
    495 	xorl	%ebx,		%ebx
    496 	movl	84(%ebp),	%edx
    497 	xorl	%esi,		%eax
    498 	xorl	%esi,		%edx
    499 	andl	$0xfcfcfcfc,	%eax
    500 	andl	$0xcfcfcfcf,	%edx
    501 	movb	%al,		%bl
    502 	movb	%ah,		%cl
    503 	rorl	$4,		%edx
    504 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    505 	movb	%dl,		%bl
    506 	xorl	%ebp,		%edi
    507 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    508 	xorl	%ebp,		%edi
    509 	movb	%dh,		%cl
    510 	shrl	$16,		%eax
    511 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    512 	xorl	%ebp,		%edi
    513 	movb	%ah,		%bl
    514 	shrl	$16,		%edx
    515 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    516 	xorl	%ebp,		%edi
    517 	movl	24(%esp),	%ebp
    518 	movb	%dh,		%cl
    519 	andl	$0xff,		%eax
    520 	andl	$0xff,		%edx
    521 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    522 	xorl	%ebx,		%edi
    523 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    524 	xorl	%ebx,		%edi
    525 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    526 	xorl	%ebx,		%edi
    527 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    528 	xorl	%ebx,		%edi
    529 
    530 	# Round 11
    531 	movl	88(%ebp),	%eax
    532 	xorl	%ebx,		%ebx
    533 	movl	92(%ebp),	%edx
    534 	xorl	%edi,		%eax
    535 	xorl	%edi,		%edx
    536 	andl	$0xfcfcfcfc,	%eax
    537 	andl	$0xcfcfcfcf,	%edx
    538 	movb	%al,		%bl
    539 	movb	%ah,		%cl
    540 	rorl	$4,		%edx
    541 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    542 	movb	%dl,		%bl
    543 	xorl	%ebp,		%esi
    544 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    545 	xorl	%ebp,		%esi
    546 	movb	%dh,		%cl
    547 	shrl	$16,		%eax
    548 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    549 	xorl	%ebp,		%esi
    550 	movb	%ah,		%bl
    551 	shrl	$16,		%edx
    552 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    553 	xorl	%ebp,		%esi
    554 	movl	24(%esp),	%ebp
    555 	movb	%dh,		%cl
    556 	andl	$0xff,		%eax
    557 	andl	$0xff,		%edx
    558 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    559 	xorl	%ebx,		%esi
    560 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    561 	xorl	%ebx,		%esi
    562 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    563 	xorl	%ebx,		%esi
    564 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    565 	xorl	%ebx,		%esi
    566 
    567 	# Round 12
    568 	movl	96(%ebp),	%eax
    569 	xorl	%ebx,		%ebx
    570 	movl	100(%ebp),	%edx
    571 	xorl	%esi,		%eax
    572 	xorl	%esi,		%edx
    573 	andl	$0xfcfcfcfc,	%eax
    574 	andl	$0xcfcfcfcf,	%edx
    575 	movb	%al,		%bl
    576 	movb	%ah,		%cl
    577 	rorl	$4,		%edx
    578 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    579 	movb	%dl,		%bl
    580 	xorl	%ebp,		%edi
    581 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    582 	xorl	%ebp,		%edi
    583 	movb	%dh,		%cl
    584 	shrl	$16,		%eax
    585 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    586 	xorl	%ebp,		%edi
    587 	movb	%ah,		%bl
    588 	shrl	$16,		%edx
    589 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    590 	xorl	%ebp,		%edi
    591 	movl	24(%esp),	%ebp
    592 	movb	%dh,		%cl
    593 	andl	$0xff,		%eax
    594 	andl	$0xff,		%edx
    595 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    596 	xorl	%ebx,		%edi
    597 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    598 	xorl	%ebx,		%edi
    599 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    600 	xorl	%ebx,		%edi
    601 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    602 	xorl	%ebx,		%edi
    603 
    604 	# Round 13
    605 	movl	104(%ebp),	%eax
    606 	xorl	%ebx,		%ebx
    607 	movl	108(%ebp),	%edx
    608 	xorl	%edi,		%eax
    609 	xorl	%edi,		%edx
    610 	andl	$0xfcfcfcfc,	%eax
    611 	andl	$0xcfcfcfcf,	%edx
    612 	movb	%al,		%bl
    613 	movb	%ah,		%cl
    614 	rorl	$4,		%edx
    615 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    616 	movb	%dl,		%bl
    617 	xorl	%ebp,		%esi
    618 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    619 	xorl	%ebp,		%esi
    620 	movb	%dh,		%cl
    621 	shrl	$16,		%eax
    622 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    623 	xorl	%ebp,		%esi
    624 	movb	%ah,		%bl
    625 	shrl	$16,		%edx
    626 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    627 	xorl	%ebp,		%esi
    628 	movl	24(%esp),	%ebp
    629 	movb	%dh,		%cl
    630 	andl	$0xff,		%eax
    631 	andl	$0xff,		%edx
    632 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    633 	xorl	%ebx,		%esi
    634 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    635 	xorl	%ebx,		%esi
    636 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    637 	xorl	%ebx,		%esi
    638 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    639 	xorl	%ebx,		%esi
    640 
    641 	# Round 14
    642 	movl	112(%ebp),	%eax
    643 	xorl	%ebx,		%ebx
    644 	movl	116(%ebp),	%edx
    645 	xorl	%esi,		%eax
    646 	xorl	%esi,		%edx
    647 	andl	$0xfcfcfcfc,	%eax
    648 	andl	$0xcfcfcfcf,	%edx
    649 	movb	%al,		%bl
    650 	movb	%ah,		%cl
    651 	rorl	$4,		%edx
    652 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    653 	movb	%dl,		%bl
    654 	xorl	%ebp,		%edi
    655 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    656 	xorl	%ebp,		%edi
    657 	movb	%dh,		%cl
    658 	shrl	$16,		%eax
    659 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    660 	xorl	%ebp,		%edi
    661 	movb	%ah,		%bl
    662 	shrl	$16,		%edx
    663 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    664 	xorl	%ebp,		%edi
    665 	movl	24(%esp),	%ebp
    666 	movb	%dh,		%cl
    667 	andl	$0xff,		%eax
    668 	andl	$0xff,		%edx
    669 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    670 	xorl	%ebx,		%edi
    671 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    672 	xorl	%ebx,		%edi
    673 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    674 	xorl	%ebx,		%edi
    675 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    676 	xorl	%ebx,		%edi
    677 
    678 	# Round 15
    679 	movl	120(%ebp),	%eax
    680 	xorl	%ebx,		%ebx
    681 	movl	124(%ebp),	%edx
    682 	xorl	%edi,		%eax
    683 	xorl	%edi,		%edx
    684 	andl	$0xfcfcfcfc,	%eax
    685 	andl	$0xcfcfcfcf,	%edx
    686 	movb	%al,		%bl
    687 	movb	%ah,		%cl
    688 	rorl	$4,		%edx
    689 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    690 	movb	%dl,		%bl
    691 	xorl	%ebp,		%esi
    692 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    693 	xorl	%ebp,		%esi
    694 	movb	%dh,		%cl
    695 	shrl	$16,		%eax
    696 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    697 	xorl	%ebp,		%esi
    698 	movb	%ah,		%bl
    699 	shrl	$16,		%edx
    700 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    701 	xorl	%ebp,		%esi
    702 	movl	24(%esp),	%ebp
    703 	movb	%dh,		%cl
    704 	andl	$0xff,		%eax
    705 	andl	$0xff,		%edx
    706 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    707 	xorl	%ebx,		%esi
    708 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    709 	xorl	%ebx,		%esi
    710 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    711 	xorl	%ebx,		%esi
    712 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    713 	xorl	%ebx,		%esi
    714 	jmp	.L001end
    715 .L000start_decrypt:
    716 
    717 	# Round 15
    718 	movl	120(%ebp),	%eax
    719 	xorl	%ebx,		%ebx
    720 	movl	124(%ebp),	%edx
    721 	xorl	%esi,		%eax
    722 	xorl	%esi,		%edx
    723 	andl	$0xfcfcfcfc,	%eax
    724 	andl	$0xcfcfcfcf,	%edx
    725 	movb	%al,		%bl
    726 	movb	%ah,		%cl
    727 	rorl	$4,		%edx
    728 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    729 	movb	%dl,		%bl
    730 	xorl	%ebp,		%edi
    731 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    732 	xorl	%ebp,		%edi
    733 	movb	%dh,		%cl
    734 	shrl	$16,		%eax
    735 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    736 	xorl	%ebp,		%edi
    737 	movb	%ah,		%bl
    738 	shrl	$16,		%edx
    739 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    740 	xorl	%ebp,		%edi
    741 	movl	24(%esp),	%ebp
    742 	movb	%dh,		%cl
    743 	andl	$0xff,		%eax
    744 	andl	$0xff,		%edx
    745 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    746 	xorl	%ebx,		%edi
    747 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    748 	xorl	%ebx,		%edi
    749 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    750 	xorl	%ebx,		%edi
    751 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    752 	xorl	%ebx,		%edi
    753 
    754 	# Round 14
    755 	movl	112(%ebp),	%eax
    756 	xorl	%ebx,		%ebx
    757 	movl	116(%ebp),	%edx
    758 	xorl	%edi,		%eax
    759 	xorl	%edi,		%edx
    760 	andl	$0xfcfcfcfc,	%eax
    761 	andl	$0xcfcfcfcf,	%edx
    762 	movb	%al,		%bl
    763 	movb	%ah,		%cl
    764 	rorl	$4,		%edx
    765 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    766 	movb	%dl,		%bl
    767 	xorl	%ebp,		%esi
    768 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    769 	xorl	%ebp,		%esi
    770 	movb	%dh,		%cl
    771 	shrl	$16,		%eax
    772 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    773 	xorl	%ebp,		%esi
    774 	movb	%ah,		%bl
    775 	shrl	$16,		%edx
    776 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    777 	xorl	%ebp,		%esi
    778 	movl	24(%esp),	%ebp
    779 	movb	%dh,		%cl
    780 	andl	$0xff,		%eax
    781 	andl	$0xff,		%edx
    782 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    783 	xorl	%ebx,		%esi
    784 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    785 	xorl	%ebx,		%esi
    786 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    787 	xorl	%ebx,		%esi
    788 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    789 	xorl	%ebx,		%esi
    790 
    791 	# Round 13
    792 	movl	104(%ebp),	%eax
    793 	xorl	%ebx,		%ebx
    794 	movl	108(%ebp),	%edx
    795 	xorl	%esi,		%eax
    796 	xorl	%esi,		%edx
    797 	andl	$0xfcfcfcfc,	%eax
    798 	andl	$0xcfcfcfcf,	%edx
    799 	movb	%al,		%bl
    800 	movb	%ah,		%cl
    801 	rorl	$4,		%edx
    802 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    803 	movb	%dl,		%bl
    804 	xorl	%ebp,		%edi
    805 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    806 	xorl	%ebp,		%edi
    807 	movb	%dh,		%cl
    808 	shrl	$16,		%eax
    809 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    810 	xorl	%ebp,		%edi
    811 	movb	%ah,		%bl
    812 	shrl	$16,		%edx
    813 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    814 	xorl	%ebp,		%edi
    815 	movl	24(%esp),	%ebp
    816 	movb	%dh,		%cl
    817 	andl	$0xff,		%eax
    818 	andl	$0xff,		%edx
    819 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    820 	xorl	%ebx,		%edi
    821 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    822 	xorl	%ebx,		%edi
    823 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    824 	xorl	%ebx,		%edi
    825 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    826 	xorl	%ebx,		%edi
    827 
    828 	# Round 12
    829 	movl	96(%ebp),	%eax
    830 	xorl	%ebx,		%ebx
    831 	movl	100(%ebp),	%edx
    832 	xorl	%edi,		%eax
    833 	xorl	%edi,		%edx
    834 	andl	$0xfcfcfcfc,	%eax
    835 	andl	$0xcfcfcfcf,	%edx
    836 	movb	%al,		%bl
    837 	movb	%ah,		%cl
    838 	rorl	$4,		%edx
    839 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    840 	movb	%dl,		%bl
    841 	xorl	%ebp,		%esi
    842 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    843 	xorl	%ebp,		%esi
    844 	movb	%dh,		%cl
    845 	shrl	$16,		%eax
    846 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    847 	xorl	%ebp,		%esi
    848 	movb	%ah,		%bl
    849 	shrl	$16,		%edx
    850 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    851 	xorl	%ebp,		%esi
    852 	movl	24(%esp),	%ebp
    853 	movb	%dh,		%cl
    854 	andl	$0xff,		%eax
    855 	andl	$0xff,		%edx
    856 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    857 	xorl	%ebx,		%esi
    858 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    859 	xorl	%ebx,		%esi
    860 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    861 	xorl	%ebx,		%esi
    862 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    863 	xorl	%ebx,		%esi
    864 
    865 	# Round 11
    866 	movl	88(%ebp),	%eax
    867 	xorl	%ebx,		%ebx
    868 	movl	92(%ebp),	%edx
    869 	xorl	%esi,		%eax
    870 	xorl	%esi,		%edx
    871 	andl	$0xfcfcfcfc,	%eax
    872 	andl	$0xcfcfcfcf,	%edx
    873 	movb	%al,		%bl
    874 	movb	%ah,		%cl
    875 	rorl	$4,		%edx
    876 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    877 	movb	%dl,		%bl
    878 	xorl	%ebp,		%edi
    879 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    880 	xorl	%ebp,		%edi
    881 	movb	%dh,		%cl
    882 	shrl	$16,		%eax
    883 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    884 	xorl	%ebp,		%edi
    885 	movb	%ah,		%bl
    886 	shrl	$16,		%edx
    887 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    888 	xorl	%ebp,		%edi
    889 	movl	24(%esp),	%ebp
    890 	movb	%dh,		%cl
    891 	andl	$0xff,		%eax
    892 	andl	$0xff,		%edx
    893 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    894 	xorl	%ebx,		%edi
    895 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    896 	xorl	%ebx,		%edi
    897 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    898 	xorl	%ebx,		%edi
    899 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    900 	xorl	%ebx,		%edi
    901 
    902 	# Round 10
    903 	movl	80(%ebp),	%eax
    904 	xorl	%ebx,		%ebx
    905 	movl	84(%ebp),	%edx
    906 	xorl	%edi,		%eax
    907 	xorl	%edi,		%edx
    908 	andl	$0xfcfcfcfc,	%eax
    909 	andl	$0xcfcfcfcf,	%edx
    910 	movb	%al,		%bl
    911 	movb	%ah,		%cl
    912 	rorl	$4,		%edx
    913 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    914 	movb	%dl,		%bl
    915 	xorl	%ebp,		%esi
    916 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    917 	xorl	%ebp,		%esi
    918 	movb	%dh,		%cl
    919 	shrl	$16,		%eax
    920 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    921 	xorl	%ebp,		%esi
    922 	movb	%ah,		%bl
    923 	shrl	$16,		%edx
    924 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    925 	xorl	%ebp,		%esi
    926 	movl	24(%esp),	%ebp
    927 	movb	%dh,		%cl
    928 	andl	$0xff,		%eax
    929 	andl	$0xff,		%edx
    930 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    931 	xorl	%ebx,		%esi
    932 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    933 	xorl	%ebx,		%esi
    934 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    935 	xorl	%ebx,		%esi
    936 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    937 	xorl	%ebx,		%esi
    938 
    939 	# Round 9
    940 	movl	72(%ebp),	%eax
    941 	xorl	%ebx,		%ebx
    942 	movl	76(%ebp),	%edx
    943 	xorl	%esi,		%eax
    944 	xorl	%esi,		%edx
    945 	andl	$0xfcfcfcfc,	%eax
    946 	andl	$0xcfcfcfcf,	%edx
    947 	movb	%al,		%bl
    948 	movb	%ah,		%cl
    949 	rorl	$4,		%edx
    950 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    951 	movb	%dl,		%bl
    952 	xorl	%ebp,		%edi
    953 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    954 	xorl	%ebp,		%edi
    955 	movb	%dh,		%cl
    956 	shrl	$16,		%eax
    957 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    958 	xorl	%ebp,		%edi
    959 	movb	%ah,		%bl
    960 	shrl	$16,		%edx
    961 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    962 	xorl	%ebp,		%edi
    963 	movl	24(%esp),	%ebp
    964 	movb	%dh,		%cl
    965 	andl	$0xff,		%eax
    966 	andl	$0xff,		%edx
    967 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
    968 	xorl	%ebx,		%edi
    969 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
    970 	xorl	%ebx,		%edi
    971 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
    972 	xorl	%ebx,		%edi
    973 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
    974 	xorl	%ebx,		%edi
    975 
    976 	# Round 8
    977 	movl	64(%ebp),	%eax
    978 	xorl	%ebx,		%ebx
    979 	movl	68(%ebp),	%edx
    980 	xorl	%edi,		%eax
    981 	xorl	%edi,		%edx
    982 	andl	$0xfcfcfcfc,	%eax
    983 	andl	$0xcfcfcfcf,	%edx
    984 	movb	%al,		%bl
    985 	movb	%ah,		%cl
    986 	rorl	$4,		%edx
    987 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
    988 	movb	%dl,		%bl
    989 	xorl	%ebp,		%esi
    990 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
    991 	xorl	%ebp,		%esi
    992 	movb	%dh,		%cl
    993 	shrl	$16,		%eax
    994 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
    995 	xorl	%ebp,		%esi
    996 	movb	%ah,		%bl
    997 	shrl	$16,		%edx
    998 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
    999 	xorl	%ebp,		%esi
   1000 	movl	24(%esp),	%ebp
   1001 	movb	%dh,		%cl
   1002 	andl	$0xff,		%eax
   1003 	andl	$0xff,		%edx
   1004 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1005 	xorl	%ebx,		%esi
   1006 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1007 	xorl	%ebx,		%esi
   1008 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1009 	xorl	%ebx,		%esi
   1010 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1011 	xorl	%ebx,		%esi
   1012 
   1013 	# Round 7
   1014 	movl	56(%ebp),	%eax
   1015 	xorl	%ebx,		%ebx
   1016 	movl	60(%ebp),	%edx
   1017 	xorl	%esi,		%eax
   1018 	xorl	%esi,		%edx
   1019 	andl	$0xfcfcfcfc,	%eax
   1020 	andl	$0xcfcfcfcf,	%edx
   1021 	movb	%al,		%bl
   1022 	movb	%ah,		%cl
   1023 	rorl	$4,		%edx
   1024 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1025 	movb	%dl,		%bl
   1026 	xorl	%ebp,		%edi
   1027 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1028 	xorl	%ebp,		%edi
   1029 	movb	%dh,		%cl
   1030 	shrl	$16,		%eax
   1031 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1032 	xorl	%ebp,		%edi
   1033 	movb	%ah,		%bl
   1034 	shrl	$16,		%edx
   1035 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1036 	xorl	%ebp,		%edi
   1037 	movl	24(%esp),	%ebp
   1038 	movb	%dh,		%cl
   1039 	andl	$0xff,		%eax
   1040 	andl	$0xff,		%edx
   1041 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1042 	xorl	%ebx,		%edi
   1043 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1044 	xorl	%ebx,		%edi
   1045 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1046 	xorl	%ebx,		%edi
   1047 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1048 	xorl	%ebx,		%edi
   1049 
   1050 	# Round 6
   1051 	movl	48(%ebp),	%eax
   1052 	xorl	%ebx,		%ebx
   1053 	movl	52(%ebp),	%edx
   1054 	xorl	%edi,		%eax
   1055 	xorl	%edi,		%edx
   1056 	andl	$0xfcfcfcfc,	%eax
   1057 	andl	$0xcfcfcfcf,	%edx
   1058 	movb	%al,		%bl
   1059 	movb	%ah,		%cl
   1060 	rorl	$4,		%edx
   1061 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1062 	movb	%dl,		%bl
   1063 	xorl	%ebp,		%esi
   1064 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1065 	xorl	%ebp,		%esi
   1066 	movb	%dh,		%cl
   1067 	shrl	$16,		%eax
   1068 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1069 	xorl	%ebp,		%esi
   1070 	movb	%ah,		%bl
   1071 	shrl	$16,		%edx
   1072 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1073 	xorl	%ebp,		%esi
   1074 	movl	24(%esp),	%ebp
   1075 	movb	%dh,		%cl
   1076 	andl	$0xff,		%eax
   1077 	andl	$0xff,		%edx
   1078 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1079 	xorl	%ebx,		%esi
   1080 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1081 	xorl	%ebx,		%esi
   1082 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1083 	xorl	%ebx,		%esi
   1084 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1085 	xorl	%ebx,		%esi
   1086 
   1087 	# Round 5
   1088 	movl	40(%ebp),	%eax
   1089 	xorl	%ebx,		%ebx
   1090 	movl	44(%ebp),	%edx
   1091 	xorl	%esi,		%eax
   1092 	xorl	%esi,		%edx
   1093 	andl	$0xfcfcfcfc,	%eax
   1094 	andl	$0xcfcfcfcf,	%edx
   1095 	movb	%al,		%bl
   1096 	movb	%ah,		%cl
   1097 	rorl	$4,		%edx
   1098 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1099 	movb	%dl,		%bl
   1100 	xorl	%ebp,		%edi
   1101 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1102 	xorl	%ebp,		%edi
   1103 	movb	%dh,		%cl
   1104 	shrl	$16,		%eax
   1105 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1106 	xorl	%ebp,		%edi
   1107 	movb	%ah,		%bl
   1108 	shrl	$16,		%edx
   1109 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1110 	xorl	%ebp,		%edi
   1111 	movl	24(%esp),	%ebp
   1112 	movb	%dh,		%cl
   1113 	andl	$0xff,		%eax
   1114 	andl	$0xff,		%edx
   1115 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1116 	xorl	%ebx,		%edi
   1117 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1118 	xorl	%ebx,		%edi
   1119 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1120 	xorl	%ebx,		%edi
   1121 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1122 	xorl	%ebx,		%edi
   1123 
   1124 	# Round 4
   1125 	movl	32(%ebp),	%eax
   1126 	xorl	%ebx,		%ebx
   1127 	movl	36(%ebp),	%edx
   1128 	xorl	%edi,		%eax
   1129 	xorl	%edi,		%edx
   1130 	andl	$0xfcfcfcfc,	%eax
   1131 	andl	$0xcfcfcfcf,	%edx
   1132 	movb	%al,		%bl
   1133 	movb	%ah,		%cl
   1134 	rorl	$4,		%edx
   1135 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1136 	movb	%dl,		%bl
   1137 	xorl	%ebp,		%esi
   1138 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1139 	xorl	%ebp,		%esi
   1140 	movb	%dh,		%cl
   1141 	shrl	$16,		%eax
   1142 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1143 	xorl	%ebp,		%esi
   1144 	movb	%ah,		%bl
   1145 	shrl	$16,		%edx
   1146 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1147 	xorl	%ebp,		%esi
   1148 	movl	24(%esp),	%ebp
   1149 	movb	%dh,		%cl
   1150 	andl	$0xff,		%eax
   1151 	andl	$0xff,		%edx
   1152 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1153 	xorl	%ebx,		%esi
   1154 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1155 	xorl	%ebx,		%esi
   1156 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1157 	xorl	%ebx,		%esi
   1158 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1159 	xorl	%ebx,		%esi
   1160 
   1161 	# Round 3
   1162 	movl	24(%ebp),	%eax
   1163 	xorl	%ebx,		%ebx
   1164 	movl	28(%ebp),	%edx
   1165 	xorl	%esi,		%eax
   1166 	xorl	%esi,		%edx
   1167 	andl	$0xfcfcfcfc,	%eax
   1168 	andl	$0xcfcfcfcf,	%edx
   1169 	movb	%al,		%bl
   1170 	movb	%ah,		%cl
   1171 	rorl	$4,		%edx
   1172 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1173 	movb	%dl,		%bl
   1174 	xorl	%ebp,		%edi
   1175 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1176 	xorl	%ebp,		%edi
   1177 	movb	%dh,		%cl
   1178 	shrl	$16,		%eax
   1179 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1180 	xorl	%ebp,		%edi
   1181 	movb	%ah,		%bl
   1182 	shrl	$16,		%edx
   1183 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1184 	xorl	%ebp,		%edi
   1185 	movl	24(%esp),	%ebp
   1186 	movb	%dh,		%cl
   1187 	andl	$0xff,		%eax
   1188 	andl	$0xff,		%edx
   1189 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1190 	xorl	%ebx,		%edi
   1191 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1192 	xorl	%ebx,		%edi
   1193 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1194 	xorl	%ebx,		%edi
   1195 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1196 	xorl	%ebx,		%edi
   1197 
   1198 	# Round 2
   1199 	movl	16(%ebp),	%eax
   1200 	xorl	%ebx,		%ebx
   1201 	movl	20(%ebp),	%edx
   1202 	xorl	%edi,		%eax
   1203 	xorl	%edi,		%edx
   1204 	andl	$0xfcfcfcfc,	%eax
   1205 	andl	$0xcfcfcfcf,	%edx
   1206 	movb	%al,		%bl
   1207 	movb	%ah,		%cl
   1208 	rorl	$4,		%edx
   1209 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1210 	movb	%dl,		%bl
   1211 	xorl	%ebp,		%esi
   1212 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1213 	xorl	%ebp,		%esi
   1214 	movb	%dh,		%cl
   1215 	shrl	$16,		%eax
   1216 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1217 	xorl	%ebp,		%esi
   1218 	movb	%ah,		%bl
   1219 	shrl	$16,		%edx
   1220 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1221 	xorl	%ebp,		%esi
   1222 	movl	24(%esp),	%ebp
   1223 	movb	%dh,		%cl
   1224 	andl	$0xff,		%eax
   1225 	andl	$0xff,		%edx
   1226 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1227 	xorl	%ebx,		%esi
   1228 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1229 	xorl	%ebx,		%esi
   1230 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1231 	xorl	%ebx,		%esi
   1232 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1233 	xorl	%ebx,		%esi
   1234 
   1235 	# Round 1
   1236 	movl	8(%ebp),	%eax
   1237 	xorl	%ebx,		%ebx
   1238 	movl	12(%ebp),	%edx
   1239 	xorl	%esi,		%eax
   1240 	xorl	%esi,		%edx
   1241 	andl	$0xfcfcfcfc,	%eax
   1242 	andl	$0xcfcfcfcf,	%edx
   1243 	movb	%al,		%bl
   1244 	movb	%ah,		%cl
   1245 	rorl	$4,		%edx
   1246 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1247 	movb	%dl,		%bl
   1248 	xorl	%ebp,		%edi
   1249 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1250 	xorl	%ebp,		%edi
   1251 	movb	%dh,		%cl
   1252 	shrl	$16,		%eax
   1253 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1254 	xorl	%ebp,		%edi
   1255 	movb	%ah,		%bl
   1256 	shrl	$16,		%edx
   1257 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1258 	xorl	%ebp,		%edi
   1259 	movl	24(%esp),	%ebp
   1260 	movb	%dh,		%cl
   1261 	andl	$0xff,		%eax
   1262 	andl	$0xff,		%edx
   1263 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1264 	xorl	%ebx,		%edi
   1265 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1266 	xorl	%ebx,		%edi
   1267 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1268 	xorl	%ebx,		%edi
   1269 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1270 	xorl	%ebx,		%edi
   1271 
   1272 	# Round 0
   1273 	movl	(%ebp),		%eax
   1274 	xorl	%ebx,		%ebx
   1275 	movl	4(%ebp),	%edx
   1276 	xorl	%edi,		%eax
   1277 	xorl	%edi,		%edx
   1278 	andl	$0xfcfcfcfc,	%eax
   1279 	andl	$0xcfcfcfcf,	%edx
   1280 	movb	%al,		%bl
   1281 	movb	%ah,		%cl
   1282 	rorl	$4,		%edx
   1283 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1284 	movb	%dl,		%bl
   1285 	xorl	%ebp,		%esi
   1286 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1287 	xorl	%ebp,		%esi
   1288 	movb	%dh,		%cl
   1289 	shrl	$16,		%eax
   1290 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1291 	xorl	%ebp,		%esi
   1292 	movb	%ah,		%bl
   1293 	shrl	$16,		%edx
   1294 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1295 	xorl	%ebp,		%esi
   1296 	movl	24(%esp),	%ebp
   1297 	movb	%dh,		%cl
   1298 	andl	$0xff,		%eax
   1299 	andl	$0xff,		%edx
   1300 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1301 	xorl	%ebx,		%esi
   1302 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1303 	xorl	%ebx,		%esi
   1304 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1305 	xorl	%ebx,		%esi
   1306 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1307 	xorl	%ebx,		%esi
   1308 .L001end:
   1309 
   1310 	# FP
   1311 	movl	20(%esp),	%edx
   1312 .byte 209
   1313 .byte 206		# rorl $1 %esi
   1314 	movl	%edi,		%eax
   1315 	xorl	%esi,		%edi
   1316 	andl	$0xaaaaaaaa,	%edi
   1317 	xorl	%edi,		%eax
   1318 	xorl	%edi,		%esi
   1319 
   1320 	roll	$23,		%eax
   1321 	movl	%eax,		%edi
   1322 	xorl	%esi,		%eax
   1323 	andl	$0x03fc03fc,	%eax
   1324 	xorl	%eax,		%edi
   1325 	xorl	%eax,		%esi
   1326 
   1327 	roll	$10,		%edi
   1328 	movl	%edi,		%eax
   1329 	xorl	%esi,		%edi
   1330 	andl	$0x33333333,	%edi
   1331 	xorl	%edi,		%eax
   1332 	xorl	%edi,		%esi
   1333 
   1334 	roll	$18,		%esi
   1335 	movl	%esi,		%edi
   1336 	xorl	%eax,		%esi
   1337 	andl	$0xfff0000f,	%esi
   1338 	xorl	%esi,		%edi
   1339 	xorl	%esi,		%eax
   1340 
   1341 	roll	$12,		%edi
   1342 	movl	%edi,		%esi
   1343 	xorl	%eax,		%edi
   1344 	andl	$0xf0f0f0f0,	%edi
   1345 	xorl	%edi,		%esi
   1346 	xorl	%edi,		%eax
   1347 
   1348 	rorl	$4,		%eax
   1349 	movl	%eax,		(%edx)
   1350 	movl	%esi,		4(%edx)
   1351 	popl	%ebp
   1352 	popl	%ebx
   1353 	popl	%edi
   1354 	popl	%esi
   1355 	ret
   1356 .L_des_encrypt1_end:
   1357 	.size	_C_LABEL(des_encrypt1),.L_des_encrypt1_end-_C_LABEL(des_encrypt1)
   1358 
   1359 ENTRY(des_encrypt2)
   1360 	pushl	%esi
   1361 	pushl	%edi
   1362 
   1363 	# Load the 2 words
   1364 	movl	12(%esp),	%eax
   1365 	xorl	%ecx,		%ecx
   1366 	pushl	%ebx
   1367 	pushl	%ebp
   1368 	movl	(%eax),		%esi
   1369 	movl	28(%esp),	%ebx
   1370 	roll	$3,		%esi
   1371 	movl	4(%eax),	%edi
   1372 	roll	$3,		%edi
   1373 	movl	24(%esp),	%ebp
   1374 	cmpl	$0,		%ebx
   1375 	je	.L002start_decrypt
   1376 
   1377 	# Round 0
   1378 	movl	(%ebp),		%eax
   1379 	xorl	%ebx,		%ebx
   1380 	movl	4(%ebp),	%edx
   1381 	xorl	%esi,		%eax
   1382 	xorl	%esi,		%edx
   1383 	andl	$0xfcfcfcfc,	%eax
   1384 	andl	$0xcfcfcfcf,	%edx
   1385 	movb	%al,		%bl
   1386 	movb	%ah,		%cl
   1387 	rorl	$4,		%edx
   1388 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1389 	movb	%dl,		%bl
   1390 	xorl	%ebp,		%edi
   1391 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1392 	xorl	%ebp,		%edi
   1393 	movb	%dh,		%cl
   1394 	shrl	$16,		%eax
   1395 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1396 	xorl	%ebp,		%edi
   1397 	movb	%ah,		%bl
   1398 	shrl	$16,		%edx
   1399 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1400 	xorl	%ebp,		%edi
   1401 	movl	24(%esp),	%ebp
   1402 	movb	%dh,		%cl
   1403 	andl	$0xff,		%eax
   1404 	andl	$0xff,		%edx
   1405 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1406 	xorl	%ebx,		%edi
   1407 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1408 	xorl	%ebx,		%edi
   1409 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1410 	xorl	%ebx,		%edi
   1411 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1412 	xorl	%ebx,		%edi
   1413 
   1414 	# Round 1
   1415 	movl	8(%ebp),	%eax
   1416 	xorl	%ebx,		%ebx
   1417 	movl	12(%ebp),	%edx
   1418 	xorl	%edi,		%eax
   1419 	xorl	%edi,		%edx
   1420 	andl	$0xfcfcfcfc,	%eax
   1421 	andl	$0xcfcfcfcf,	%edx
   1422 	movb	%al,		%bl
   1423 	movb	%ah,		%cl
   1424 	rorl	$4,		%edx
   1425 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1426 	movb	%dl,		%bl
   1427 	xorl	%ebp,		%esi
   1428 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1429 	xorl	%ebp,		%esi
   1430 	movb	%dh,		%cl
   1431 	shrl	$16,		%eax
   1432 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1433 	xorl	%ebp,		%esi
   1434 	movb	%ah,		%bl
   1435 	shrl	$16,		%edx
   1436 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1437 	xorl	%ebp,		%esi
   1438 	movl	24(%esp),	%ebp
   1439 	movb	%dh,		%cl
   1440 	andl	$0xff,		%eax
   1441 	andl	$0xff,		%edx
   1442 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1443 	xorl	%ebx,		%esi
   1444 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1445 	xorl	%ebx,		%esi
   1446 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1447 	xorl	%ebx,		%esi
   1448 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1449 	xorl	%ebx,		%esi
   1450 
   1451 	# Round 2
   1452 	movl	16(%ebp),	%eax
   1453 	xorl	%ebx,		%ebx
   1454 	movl	20(%ebp),	%edx
   1455 	xorl	%esi,		%eax
   1456 	xorl	%esi,		%edx
   1457 	andl	$0xfcfcfcfc,	%eax
   1458 	andl	$0xcfcfcfcf,	%edx
   1459 	movb	%al,		%bl
   1460 	movb	%ah,		%cl
   1461 	rorl	$4,		%edx
   1462 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1463 	movb	%dl,		%bl
   1464 	xorl	%ebp,		%edi
   1465 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1466 	xorl	%ebp,		%edi
   1467 	movb	%dh,		%cl
   1468 	shrl	$16,		%eax
   1469 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1470 	xorl	%ebp,		%edi
   1471 	movb	%ah,		%bl
   1472 	shrl	$16,		%edx
   1473 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1474 	xorl	%ebp,		%edi
   1475 	movl	24(%esp),	%ebp
   1476 	movb	%dh,		%cl
   1477 	andl	$0xff,		%eax
   1478 	andl	$0xff,		%edx
   1479 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1480 	xorl	%ebx,		%edi
   1481 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1482 	xorl	%ebx,		%edi
   1483 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1484 	xorl	%ebx,		%edi
   1485 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1486 	xorl	%ebx,		%edi
   1487 
   1488 	# Round 3
   1489 	movl	24(%ebp),	%eax
   1490 	xorl	%ebx,		%ebx
   1491 	movl	28(%ebp),	%edx
   1492 	xorl	%edi,		%eax
   1493 	xorl	%edi,		%edx
   1494 	andl	$0xfcfcfcfc,	%eax
   1495 	andl	$0xcfcfcfcf,	%edx
   1496 	movb	%al,		%bl
   1497 	movb	%ah,		%cl
   1498 	rorl	$4,		%edx
   1499 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1500 	movb	%dl,		%bl
   1501 	xorl	%ebp,		%esi
   1502 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1503 	xorl	%ebp,		%esi
   1504 	movb	%dh,		%cl
   1505 	shrl	$16,		%eax
   1506 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1507 	xorl	%ebp,		%esi
   1508 	movb	%ah,		%bl
   1509 	shrl	$16,		%edx
   1510 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1511 	xorl	%ebp,		%esi
   1512 	movl	24(%esp),	%ebp
   1513 	movb	%dh,		%cl
   1514 	andl	$0xff,		%eax
   1515 	andl	$0xff,		%edx
   1516 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1517 	xorl	%ebx,		%esi
   1518 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1519 	xorl	%ebx,		%esi
   1520 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1521 	xorl	%ebx,		%esi
   1522 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1523 	xorl	%ebx,		%esi
   1524 
   1525 	# Round 4
   1526 	movl	32(%ebp),	%eax
   1527 	xorl	%ebx,		%ebx
   1528 	movl	36(%ebp),	%edx
   1529 	xorl	%esi,		%eax
   1530 	xorl	%esi,		%edx
   1531 	andl	$0xfcfcfcfc,	%eax
   1532 	andl	$0xcfcfcfcf,	%edx
   1533 	movb	%al,		%bl
   1534 	movb	%ah,		%cl
   1535 	rorl	$4,		%edx
   1536 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1537 	movb	%dl,		%bl
   1538 	xorl	%ebp,		%edi
   1539 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1540 	xorl	%ebp,		%edi
   1541 	movb	%dh,		%cl
   1542 	shrl	$16,		%eax
   1543 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1544 	xorl	%ebp,		%edi
   1545 	movb	%ah,		%bl
   1546 	shrl	$16,		%edx
   1547 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1548 	xorl	%ebp,		%edi
   1549 	movl	24(%esp),	%ebp
   1550 	movb	%dh,		%cl
   1551 	andl	$0xff,		%eax
   1552 	andl	$0xff,		%edx
   1553 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1554 	xorl	%ebx,		%edi
   1555 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1556 	xorl	%ebx,		%edi
   1557 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1558 	xorl	%ebx,		%edi
   1559 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1560 	xorl	%ebx,		%edi
   1561 
   1562 	# Round 5
   1563 	movl	40(%ebp),	%eax
   1564 	xorl	%ebx,		%ebx
   1565 	movl	44(%ebp),	%edx
   1566 	xorl	%edi,		%eax
   1567 	xorl	%edi,		%edx
   1568 	andl	$0xfcfcfcfc,	%eax
   1569 	andl	$0xcfcfcfcf,	%edx
   1570 	movb	%al,		%bl
   1571 	movb	%ah,		%cl
   1572 	rorl	$4,		%edx
   1573 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1574 	movb	%dl,		%bl
   1575 	xorl	%ebp,		%esi
   1576 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1577 	xorl	%ebp,		%esi
   1578 	movb	%dh,		%cl
   1579 	shrl	$16,		%eax
   1580 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1581 	xorl	%ebp,		%esi
   1582 	movb	%ah,		%bl
   1583 	shrl	$16,		%edx
   1584 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1585 	xorl	%ebp,		%esi
   1586 	movl	24(%esp),	%ebp
   1587 	movb	%dh,		%cl
   1588 	andl	$0xff,		%eax
   1589 	andl	$0xff,		%edx
   1590 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1591 	xorl	%ebx,		%esi
   1592 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1593 	xorl	%ebx,		%esi
   1594 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1595 	xorl	%ebx,		%esi
   1596 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1597 	xorl	%ebx,		%esi
   1598 
   1599 	# Round 6
   1600 	movl	48(%ebp),	%eax
   1601 	xorl	%ebx,		%ebx
   1602 	movl	52(%ebp),	%edx
   1603 	xorl	%esi,		%eax
   1604 	xorl	%esi,		%edx
   1605 	andl	$0xfcfcfcfc,	%eax
   1606 	andl	$0xcfcfcfcf,	%edx
   1607 	movb	%al,		%bl
   1608 	movb	%ah,		%cl
   1609 	rorl	$4,		%edx
   1610 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1611 	movb	%dl,		%bl
   1612 	xorl	%ebp,		%edi
   1613 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1614 	xorl	%ebp,		%edi
   1615 	movb	%dh,		%cl
   1616 	shrl	$16,		%eax
   1617 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1618 	xorl	%ebp,		%edi
   1619 	movb	%ah,		%bl
   1620 	shrl	$16,		%edx
   1621 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1622 	xorl	%ebp,		%edi
   1623 	movl	24(%esp),	%ebp
   1624 	movb	%dh,		%cl
   1625 	andl	$0xff,		%eax
   1626 	andl	$0xff,		%edx
   1627 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1628 	xorl	%ebx,		%edi
   1629 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1630 	xorl	%ebx,		%edi
   1631 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1632 	xorl	%ebx,		%edi
   1633 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1634 	xorl	%ebx,		%edi
   1635 
   1636 	# Round 7
   1637 	movl	56(%ebp),	%eax
   1638 	xorl	%ebx,		%ebx
   1639 	movl	60(%ebp),	%edx
   1640 	xorl	%edi,		%eax
   1641 	xorl	%edi,		%edx
   1642 	andl	$0xfcfcfcfc,	%eax
   1643 	andl	$0xcfcfcfcf,	%edx
   1644 	movb	%al,		%bl
   1645 	movb	%ah,		%cl
   1646 	rorl	$4,		%edx
   1647 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1648 	movb	%dl,		%bl
   1649 	xorl	%ebp,		%esi
   1650 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1651 	xorl	%ebp,		%esi
   1652 	movb	%dh,		%cl
   1653 	shrl	$16,		%eax
   1654 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1655 	xorl	%ebp,		%esi
   1656 	movb	%ah,		%bl
   1657 	shrl	$16,		%edx
   1658 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1659 	xorl	%ebp,		%esi
   1660 	movl	24(%esp),	%ebp
   1661 	movb	%dh,		%cl
   1662 	andl	$0xff,		%eax
   1663 	andl	$0xff,		%edx
   1664 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1665 	xorl	%ebx,		%esi
   1666 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1667 	xorl	%ebx,		%esi
   1668 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1669 	xorl	%ebx,		%esi
   1670 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1671 	xorl	%ebx,		%esi
   1672 
   1673 	# Round 8
   1674 	movl	64(%ebp),	%eax
   1675 	xorl	%ebx,		%ebx
   1676 	movl	68(%ebp),	%edx
   1677 	xorl	%esi,		%eax
   1678 	xorl	%esi,		%edx
   1679 	andl	$0xfcfcfcfc,	%eax
   1680 	andl	$0xcfcfcfcf,	%edx
   1681 	movb	%al,		%bl
   1682 	movb	%ah,		%cl
   1683 	rorl	$4,		%edx
   1684 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1685 	movb	%dl,		%bl
   1686 	xorl	%ebp,		%edi
   1687 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1688 	xorl	%ebp,		%edi
   1689 	movb	%dh,		%cl
   1690 	shrl	$16,		%eax
   1691 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1692 	xorl	%ebp,		%edi
   1693 	movb	%ah,		%bl
   1694 	shrl	$16,		%edx
   1695 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1696 	xorl	%ebp,		%edi
   1697 	movl	24(%esp),	%ebp
   1698 	movb	%dh,		%cl
   1699 	andl	$0xff,		%eax
   1700 	andl	$0xff,		%edx
   1701 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1702 	xorl	%ebx,		%edi
   1703 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1704 	xorl	%ebx,		%edi
   1705 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1706 	xorl	%ebx,		%edi
   1707 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1708 	xorl	%ebx,		%edi
   1709 
   1710 	# Round 9
   1711 	movl	72(%ebp),	%eax
   1712 	xorl	%ebx,		%ebx
   1713 	movl	76(%ebp),	%edx
   1714 	xorl	%edi,		%eax
   1715 	xorl	%edi,		%edx
   1716 	andl	$0xfcfcfcfc,	%eax
   1717 	andl	$0xcfcfcfcf,	%edx
   1718 	movb	%al,		%bl
   1719 	movb	%ah,		%cl
   1720 	rorl	$4,		%edx
   1721 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1722 	movb	%dl,		%bl
   1723 	xorl	%ebp,		%esi
   1724 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1725 	xorl	%ebp,		%esi
   1726 	movb	%dh,		%cl
   1727 	shrl	$16,		%eax
   1728 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1729 	xorl	%ebp,		%esi
   1730 	movb	%ah,		%bl
   1731 	shrl	$16,		%edx
   1732 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1733 	xorl	%ebp,		%esi
   1734 	movl	24(%esp),	%ebp
   1735 	movb	%dh,		%cl
   1736 	andl	$0xff,		%eax
   1737 	andl	$0xff,		%edx
   1738 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1739 	xorl	%ebx,		%esi
   1740 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1741 	xorl	%ebx,		%esi
   1742 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1743 	xorl	%ebx,		%esi
   1744 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1745 	xorl	%ebx,		%esi
   1746 
   1747 	# Round 10
   1748 	movl	80(%ebp),	%eax
   1749 	xorl	%ebx,		%ebx
   1750 	movl	84(%ebp),	%edx
   1751 	xorl	%esi,		%eax
   1752 	xorl	%esi,		%edx
   1753 	andl	$0xfcfcfcfc,	%eax
   1754 	andl	$0xcfcfcfcf,	%edx
   1755 	movb	%al,		%bl
   1756 	movb	%ah,		%cl
   1757 	rorl	$4,		%edx
   1758 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1759 	movb	%dl,		%bl
   1760 	xorl	%ebp,		%edi
   1761 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1762 	xorl	%ebp,		%edi
   1763 	movb	%dh,		%cl
   1764 	shrl	$16,		%eax
   1765 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1766 	xorl	%ebp,		%edi
   1767 	movb	%ah,		%bl
   1768 	shrl	$16,		%edx
   1769 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1770 	xorl	%ebp,		%edi
   1771 	movl	24(%esp),	%ebp
   1772 	movb	%dh,		%cl
   1773 	andl	$0xff,		%eax
   1774 	andl	$0xff,		%edx
   1775 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1776 	xorl	%ebx,		%edi
   1777 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1778 	xorl	%ebx,		%edi
   1779 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1780 	xorl	%ebx,		%edi
   1781 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1782 	xorl	%ebx,		%edi
   1783 
   1784 	# Round 11
   1785 	movl	88(%ebp),	%eax
   1786 	xorl	%ebx,		%ebx
   1787 	movl	92(%ebp),	%edx
   1788 	xorl	%edi,		%eax
   1789 	xorl	%edi,		%edx
   1790 	andl	$0xfcfcfcfc,	%eax
   1791 	andl	$0xcfcfcfcf,	%edx
   1792 	movb	%al,		%bl
   1793 	movb	%ah,		%cl
   1794 	rorl	$4,		%edx
   1795 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1796 	movb	%dl,		%bl
   1797 	xorl	%ebp,		%esi
   1798 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1799 	xorl	%ebp,		%esi
   1800 	movb	%dh,		%cl
   1801 	shrl	$16,		%eax
   1802 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1803 	xorl	%ebp,		%esi
   1804 	movb	%ah,		%bl
   1805 	shrl	$16,		%edx
   1806 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1807 	xorl	%ebp,		%esi
   1808 	movl	24(%esp),	%ebp
   1809 	movb	%dh,		%cl
   1810 	andl	$0xff,		%eax
   1811 	andl	$0xff,		%edx
   1812 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1813 	xorl	%ebx,		%esi
   1814 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1815 	xorl	%ebx,		%esi
   1816 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1817 	xorl	%ebx,		%esi
   1818 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1819 	xorl	%ebx,		%esi
   1820 
   1821 	# Round 12
   1822 	movl	96(%ebp),	%eax
   1823 	xorl	%ebx,		%ebx
   1824 	movl	100(%ebp),	%edx
   1825 	xorl	%esi,		%eax
   1826 	xorl	%esi,		%edx
   1827 	andl	$0xfcfcfcfc,	%eax
   1828 	andl	$0xcfcfcfcf,	%edx
   1829 	movb	%al,		%bl
   1830 	movb	%ah,		%cl
   1831 	rorl	$4,		%edx
   1832 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1833 	movb	%dl,		%bl
   1834 	xorl	%ebp,		%edi
   1835 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1836 	xorl	%ebp,		%edi
   1837 	movb	%dh,		%cl
   1838 	shrl	$16,		%eax
   1839 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1840 	xorl	%ebp,		%edi
   1841 	movb	%ah,		%bl
   1842 	shrl	$16,		%edx
   1843 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1844 	xorl	%ebp,		%edi
   1845 	movl	24(%esp),	%ebp
   1846 	movb	%dh,		%cl
   1847 	andl	$0xff,		%eax
   1848 	andl	$0xff,		%edx
   1849 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1850 	xorl	%ebx,		%edi
   1851 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1852 	xorl	%ebx,		%edi
   1853 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1854 	xorl	%ebx,		%edi
   1855 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1856 	xorl	%ebx,		%edi
   1857 
   1858 	# Round 13
   1859 	movl	104(%ebp),	%eax
   1860 	xorl	%ebx,		%ebx
   1861 	movl	108(%ebp),	%edx
   1862 	xorl	%edi,		%eax
   1863 	xorl	%edi,		%edx
   1864 	andl	$0xfcfcfcfc,	%eax
   1865 	andl	$0xcfcfcfcf,	%edx
   1866 	movb	%al,		%bl
   1867 	movb	%ah,		%cl
   1868 	rorl	$4,		%edx
   1869 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1870 	movb	%dl,		%bl
   1871 	xorl	%ebp,		%esi
   1872 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1873 	xorl	%ebp,		%esi
   1874 	movb	%dh,		%cl
   1875 	shrl	$16,		%eax
   1876 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1877 	xorl	%ebp,		%esi
   1878 	movb	%ah,		%bl
   1879 	shrl	$16,		%edx
   1880 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1881 	xorl	%ebp,		%esi
   1882 	movl	24(%esp),	%ebp
   1883 	movb	%dh,		%cl
   1884 	andl	$0xff,		%eax
   1885 	andl	$0xff,		%edx
   1886 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1887 	xorl	%ebx,		%esi
   1888 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1889 	xorl	%ebx,		%esi
   1890 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1891 	xorl	%ebx,		%esi
   1892 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1893 	xorl	%ebx,		%esi
   1894 
   1895 	# Round 14
   1896 	movl	112(%ebp),	%eax
   1897 	xorl	%ebx,		%ebx
   1898 	movl	116(%ebp),	%edx
   1899 	xorl	%esi,		%eax
   1900 	xorl	%esi,		%edx
   1901 	andl	$0xfcfcfcfc,	%eax
   1902 	andl	$0xcfcfcfcf,	%edx
   1903 	movb	%al,		%bl
   1904 	movb	%ah,		%cl
   1905 	rorl	$4,		%edx
   1906 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1907 	movb	%dl,		%bl
   1908 	xorl	%ebp,		%edi
   1909 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1910 	xorl	%ebp,		%edi
   1911 	movb	%dh,		%cl
   1912 	shrl	$16,		%eax
   1913 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1914 	xorl	%ebp,		%edi
   1915 	movb	%ah,		%bl
   1916 	shrl	$16,		%edx
   1917 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1918 	xorl	%ebp,		%edi
   1919 	movl	24(%esp),	%ebp
   1920 	movb	%dh,		%cl
   1921 	andl	$0xff,		%eax
   1922 	andl	$0xff,		%edx
   1923 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1924 	xorl	%ebx,		%edi
   1925 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1926 	xorl	%ebx,		%edi
   1927 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1928 	xorl	%ebx,		%edi
   1929 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1930 	xorl	%ebx,		%edi
   1931 
   1932 	# Round 15
   1933 	movl	120(%ebp),	%eax
   1934 	xorl	%ebx,		%ebx
   1935 	movl	124(%ebp),	%edx
   1936 	xorl	%edi,		%eax
   1937 	xorl	%edi,		%edx
   1938 	andl	$0xfcfcfcfc,	%eax
   1939 	andl	$0xcfcfcfcf,	%edx
   1940 	movb	%al,		%bl
   1941 	movb	%ah,		%cl
   1942 	rorl	$4,		%edx
   1943 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1944 	movb	%dl,		%bl
   1945 	xorl	%ebp,		%esi
   1946 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1947 	xorl	%ebp,		%esi
   1948 	movb	%dh,		%cl
   1949 	shrl	$16,		%eax
   1950 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1951 	xorl	%ebp,		%esi
   1952 	movb	%ah,		%bl
   1953 	shrl	$16,		%edx
   1954 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1955 	xorl	%ebp,		%esi
   1956 	movl	24(%esp),	%ebp
   1957 	movb	%dh,		%cl
   1958 	andl	$0xff,		%eax
   1959 	andl	$0xff,		%edx
   1960 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   1961 	xorl	%ebx,		%esi
   1962 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   1963 	xorl	%ebx,		%esi
   1964 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   1965 	xorl	%ebx,		%esi
   1966 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   1967 	xorl	%ebx,		%esi
   1968 	jmp	.L003end
   1969 .L002start_decrypt:
   1970 
   1971 	# Round 15
   1972 	movl	120(%ebp),	%eax
   1973 	xorl	%ebx,		%ebx
   1974 	movl	124(%ebp),	%edx
   1975 	xorl	%esi,		%eax
   1976 	xorl	%esi,		%edx
   1977 	andl	$0xfcfcfcfc,	%eax
   1978 	andl	$0xcfcfcfcf,	%edx
   1979 	movb	%al,		%bl
   1980 	movb	%ah,		%cl
   1981 	rorl	$4,		%edx
   1982 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   1983 	movb	%dl,		%bl
   1984 	xorl	%ebp,		%edi
   1985 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1986 	xorl	%ebp,		%edi
   1987 	movb	%dh,		%cl
   1988 	shrl	$16,		%eax
   1989 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   1990 	xorl	%ebp,		%edi
   1991 	movb	%ah,		%bl
   1992 	shrl	$16,		%edx
   1993 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   1994 	xorl	%ebp,		%edi
   1995 	movl	24(%esp),	%ebp
   1996 	movb	%dh,		%cl
   1997 	andl	$0xff,		%eax
   1998 	andl	$0xff,		%edx
   1999 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2000 	xorl	%ebx,		%edi
   2001 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2002 	xorl	%ebx,		%edi
   2003 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2004 	xorl	%ebx,		%edi
   2005 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2006 	xorl	%ebx,		%edi
   2007 
   2008 	# Round 14
   2009 	movl	112(%ebp),	%eax
   2010 	xorl	%ebx,		%ebx
   2011 	movl	116(%ebp),	%edx
   2012 	xorl	%edi,		%eax
   2013 	xorl	%edi,		%edx
   2014 	andl	$0xfcfcfcfc,	%eax
   2015 	andl	$0xcfcfcfcf,	%edx
   2016 	movb	%al,		%bl
   2017 	movb	%ah,		%cl
   2018 	rorl	$4,		%edx
   2019 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2020 	movb	%dl,		%bl
   2021 	xorl	%ebp,		%esi
   2022 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2023 	xorl	%ebp,		%esi
   2024 	movb	%dh,		%cl
   2025 	shrl	$16,		%eax
   2026 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2027 	xorl	%ebp,		%esi
   2028 	movb	%ah,		%bl
   2029 	shrl	$16,		%edx
   2030 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2031 	xorl	%ebp,		%esi
   2032 	movl	24(%esp),	%ebp
   2033 	movb	%dh,		%cl
   2034 	andl	$0xff,		%eax
   2035 	andl	$0xff,		%edx
   2036 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2037 	xorl	%ebx,		%esi
   2038 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2039 	xorl	%ebx,		%esi
   2040 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2041 	xorl	%ebx,		%esi
   2042 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2043 	xorl	%ebx,		%esi
   2044 
   2045 	# Round 13
   2046 	movl	104(%ebp),	%eax
   2047 	xorl	%ebx,		%ebx
   2048 	movl	108(%ebp),	%edx
   2049 	xorl	%esi,		%eax
   2050 	xorl	%esi,		%edx
   2051 	andl	$0xfcfcfcfc,	%eax
   2052 	andl	$0xcfcfcfcf,	%edx
   2053 	movb	%al,		%bl
   2054 	movb	%ah,		%cl
   2055 	rorl	$4,		%edx
   2056 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2057 	movb	%dl,		%bl
   2058 	xorl	%ebp,		%edi
   2059 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2060 	xorl	%ebp,		%edi
   2061 	movb	%dh,		%cl
   2062 	shrl	$16,		%eax
   2063 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2064 	xorl	%ebp,		%edi
   2065 	movb	%ah,		%bl
   2066 	shrl	$16,		%edx
   2067 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2068 	xorl	%ebp,		%edi
   2069 	movl	24(%esp),	%ebp
   2070 	movb	%dh,		%cl
   2071 	andl	$0xff,		%eax
   2072 	andl	$0xff,		%edx
   2073 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2074 	xorl	%ebx,		%edi
   2075 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2076 	xorl	%ebx,		%edi
   2077 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2078 	xorl	%ebx,		%edi
   2079 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2080 	xorl	%ebx,		%edi
   2081 
   2082 	# Round 12
   2083 	movl	96(%ebp),	%eax
   2084 	xorl	%ebx,		%ebx
   2085 	movl	100(%ebp),	%edx
   2086 	xorl	%edi,		%eax
   2087 	xorl	%edi,		%edx
   2088 	andl	$0xfcfcfcfc,	%eax
   2089 	andl	$0xcfcfcfcf,	%edx
   2090 	movb	%al,		%bl
   2091 	movb	%ah,		%cl
   2092 	rorl	$4,		%edx
   2093 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2094 	movb	%dl,		%bl
   2095 	xorl	%ebp,		%esi
   2096 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2097 	xorl	%ebp,		%esi
   2098 	movb	%dh,		%cl
   2099 	shrl	$16,		%eax
   2100 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2101 	xorl	%ebp,		%esi
   2102 	movb	%ah,		%bl
   2103 	shrl	$16,		%edx
   2104 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2105 	xorl	%ebp,		%esi
   2106 	movl	24(%esp),	%ebp
   2107 	movb	%dh,		%cl
   2108 	andl	$0xff,		%eax
   2109 	andl	$0xff,		%edx
   2110 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2111 	xorl	%ebx,		%esi
   2112 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2113 	xorl	%ebx,		%esi
   2114 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2115 	xorl	%ebx,		%esi
   2116 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2117 	xorl	%ebx,		%esi
   2118 
   2119 	# Round 11
   2120 	movl	88(%ebp),	%eax
   2121 	xorl	%ebx,		%ebx
   2122 	movl	92(%ebp),	%edx
   2123 	xorl	%esi,		%eax
   2124 	xorl	%esi,		%edx
   2125 	andl	$0xfcfcfcfc,	%eax
   2126 	andl	$0xcfcfcfcf,	%edx
   2127 	movb	%al,		%bl
   2128 	movb	%ah,		%cl
   2129 	rorl	$4,		%edx
   2130 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2131 	movb	%dl,		%bl
   2132 	xorl	%ebp,		%edi
   2133 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2134 	xorl	%ebp,		%edi
   2135 	movb	%dh,		%cl
   2136 	shrl	$16,		%eax
   2137 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2138 	xorl	%ebp,		%edi
   2139 	movb	%ah,		%bl
   2140 	shrl	$16,		%edx
   2141 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2142 	xorl	%ebp,		%edi
   2143 	movl	24(%esp),	%ebp
   2144 	movb	%dh,		%cl
   2145 	andl	$0xff,		%eax
   2146 	andl	$0xff,		%edx
   2147 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2148 	xorl	%ebx,		%edi
   2149 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2150 	xorl	%ebx,		%edi
   2151 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2152 	xorl	%ebx,		%edi
   2153 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2154 	xorl	%ebx,		%edi
   2155 
   2156 	# Round 10
   2157 	movl	80(%ebp),	%eax
   2158 	xorl	%ebx,		%ebx
   2159 	movl	84(%ebp),	%edx
   2160 	xorl	%edi,		%eax
   2161 	xorl	%edi,		%edx
   2162 	andl	$0xfcfcfcfc,	%eax
   2163 	andl	$0xcfcfcfcf,	%edx
   2164 	movb	%al,		%bl
   2165 	movb	%ah,		%cl
   2166 	rorl	$4,		%edx
   2167 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2168 	movb	%dl,		%bl
   2169 	xorl	%ebp,		%esi
   2170 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2171 	xorl	%ebp,		%esi
   2172 	movb	%dh,		%cl
   2173 	shrl	$16,		%eax
   2174 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2175 	xorl	%ebp,		%esi
   2176 	movb	%ah,		%bl
   2177 	shrl	$16,		%edx
   2178 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2179 	xorl	%ebp,		%esi
   2180 	movl	24(%esp),	%ebp
   2181 	movb	%dh,		%cl
   2182 	andl	$0xff,		%eax
   2183 	andl	$0xff,		%edx
   2184 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2185 	xorl	%ebx,		%esi
   2186 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2187 	xorl	%ebx,		%esi
   2188 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2189 	xorl	%ebx,		%esi
   2190 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2191 	xorl	%ebx,		%esi
   2192 
   2193 	# Round 9
   2194 	movl	72(%ebp),	%eax
   2195 	xorl	%ebx,		%ebx
   2196 	movl	76(%ebp),	%edx
   2197 	xorl	%esi,		%eax
   2198 	xorl	%esi,		%edx
   2199 	andl	$0xfcfcfcfc,	%eax
   2200 	andl	$0xcfcfcfcf,	%edx
   2201 	movb	%al,		%bl
   2202 	movb	%ah,		%cl
   2203 	rorl	$4,		%edx
   2204 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2205 	movb	%dl,		%bl
   2206 	xorl	%ebp,		%edi
   2207 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2208 	xorl	%ebp,		%edi
   2209 	movb	%dh,		%cl
   2210 	shrl	$16,		%eax
   2211 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2212 	xorl	%ebp,		%edi
   2213 	movb	%ah,		%bl
   2214 	shrl	$16,		%edx
   2215 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2216 	xorl	%ebp,		%edi
   2217 	movl	24(%esp),	%ebp
   2218 	movb	%dh,		%cl
   2219 	andl	$0xff,		%eax
   2220 	andl	$0xff,		%edx
   2221 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2222 	xorl	%ebx,		%edi
   2223 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2224 	xorl	%ebx,		%edi
   2225 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2226 	xorl	%ebx,		%edi
   2227 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2228 	xorl	%ebx,		%edi
   2229 
   2230 	# Round 8
   2231 	movl	64(%ebp),	%eax
   2232 	xorl	%ebx,		%ebx
   2233 	movl	68(%ebp),	%edx
   2234 	xorl	%edi,		%eax
   2235 	xorl	%edi,		%edx
   2236 	andl	$0xfcfcfcfc,	%eax
   2237 	andl	$0xcfcfcfcf,	%edx
   2238 	movb	%al,		%bl
   2239 	movb	%ah,		%cl
   2240 	rorl	$4,		%edx
   2241 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2242 	movb	%dl,		%bl
   2243 	xorl	%ebp,		%esi
   2244 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2245 	xorl	%ebp,		%esi
   2246 	movb	%dh,		%cl
   2247 	shrl	$16,		%eax
   2248 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2249 	xorl	%ebp,		%esi
   2250 	movb	%ah,		%bl
   2251 	shrl	$16,		%edx
   2252 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2253 	xorl	%ebp,		%esi
   2254 	movl	24(%esp),	%ebp
   2255 	movb	%dh,		%cl
   2256 	andl	$0xff,		%eax
   2257 	andl	$0xff,		%edx
   2258 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2259 	xorl	%ebx,		%esi
   2260 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2261 	xorl	%ebx,		%esi
   2262 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2263 	xorl	%ebx,		%esi
   2264 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2265 	xorl	%ebx,		%esi
   2266 
   2267 	# Round 7
   2268 	movl	56(%ebp),	%eax
   2269 	xorl	%ebx,		%ebx
   2270 	movl	60(%ebp),	%edx
   2271 	xorl	%esi,		%eax
   2272 	xorl	%esi,		%edx
   2273 	andl	$0xfcfcfcfc,	%eax
   2274 	andl	$0xcfcfcfcf,	%edx
   2275 	movb	%al,		%bl
   2276 	movb	%ah,		%cl
   2277 	rorl	$4,		%edx
   2278 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2279 	movb	%dl,		%bl
   2280 	xorl	%ebp,		%edi
   2281 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2282 	xorl	%ebp,		%edi
   2283 	movb	%dh,		%cl
   2284 	shrl	$16,		%eax
   2285 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2286 	xorl	%ebp,		%edi
   2287 	movb	%ah,		%bl
   2288 	shrl	$16,		%edx
   2289 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2290 	xorl	%ebp,		%edi
   2291 	movl	24(%esp),	%ebp
   2292 	movb	%dh,		%cl
   2293 	andl	$0xff,		%eax
   2294 	andl	$0xff,		%edx
   2295 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2296 	xorl	%ebx,		%edi
   2297 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2298 	xorl	%ebx,		%edi
   2299 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2300 	xorl	%ebx,		%edi
   2301 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2302 	xorl	%ebx,		%edi
   2303 
   2304 	# Round 6
   2305 	movl	48(%ebp),	%eax
   2306 	xorl	%ebx,		%ebx
   2307 	movl	52(%ebp),	%edx
   2308 	xorl	%edi,		%eax
   2309 	xorl	%edi,		%edx
   2310 	andl	$0xfcfcfcfc,	%eax
   2311 	andl	$0xcfcfcfcf,	%edx
   2312 	movb	%al,		%bl
   2313 	movb	%ah,		%cl
   2314 	rorl	$4,		%edx
   2315 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2316 	movb	%dl,		%bl
   2317 	xorl	%ebp,		%esi
   2318 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2319 	xorl	%ebp,		%esi
   2320 	movb	%dh,		%cl
   2321 	shrl	$16,		%eax
   2322 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2323 	xorl	%ebp,		%esi
   2324 	movb	%ah,		%bl
   2325 	shrl	$16,		%edx
   2326 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2327 	xorl	%ebp,		%esi
   2328 	movl	24(%esp),	%ebp
   2329 	movb	%dh,		%cl
   2330 	andl	$0xff,		%eax
   2331 	andl	$0xff,		%edx
   2332 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2333 	xorl	%ebx,		%esi
   2334 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2335 	xorl	%ebx,		%esi
   2336 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2337 	xorl	%ebx,		%esi
   2338 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2339 	xorl	%ebx,		%esi
   2340 
   2341 	# Round 5
   2342 	movl	40(%ebp),	%eax
   2343 	xorl	%ebx,		%ebx
   2344 	movl	44(%ebp),	%edx
   2345 	xorl	%esi,		%eax
   2346 	xorl	%esi,		%edx
   2347 	andl	$0xfcfcfcfc,	%eax
   2348 	andl	$0xcfcfcfcf,	%edx
   2349 	movb	%al,		%bl
   2350 	movb	%ah,		%cl
   2351 	rorl	$4,		%edx
   2352 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2353 	movb	%dl,		%bl
   2354 	xorl	%ebp,		%edi
   2355 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2356 	xorl	%ebp,		%edi
   2357 	movb	%dh,		%cl
   2358 	shrl	$16,		%eax
   2359 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2360 	xorl	%ebp,		%edi
   2361 	movb	%ah,		%bl
   2362 	shrl	$16,		%edx
   2363 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2364 	xorl	%ebp,		%edi
   2365 	movl	24(%esp),	%ebp
   2366 	movb	%dh,		%cl
   2367 	andl	$0xff,		%eax
   2368 	andl	$0xff,		%edx
   2369 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2370 	xorl	%ebx,		%edi
   2371 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2372 	xorl	%ebx,		%edi
   2373 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2374 	xorl	%ebx,		%edi
   2375 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2376 	xorl	%ebx,		%edi
   2377 
   2378 	# Round 4
   2379 	movl	32(%ebp),	%eax
   2380 	xorl	%ebx,		%ebx
   2381 	movl	36(%ebp),	%edx
   2382 	xorl	%edi,		%eax
   2383 	xorl	%edi,		%edx
   2384 	andl	$0xfcfcfcfc,	%eax
   2385 	andl	$0xcfcfcfcf,	%edx
   2386 	movb	%al,		%bl
   2387 	movb	%ah,		%cl
   2388 	rorl	$4,		%edx
   2389 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2390 	movb	%dl,		%bl
   2391 	xorl	%ebp,		%esi
   2392 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2393 	xorl	%ebp,		%esi
   2394 	movb	%dh,		%cl
   2395 	shrl	$16,		%eax
   2396 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2397 	xorl	%ebp,		%esi
   2398 	movb	%ah,		%bl
   2399 	shrl	$16,		%edx
   2400 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2401 	xorl	%ebp,		%esi
   2402 	movl	24(%esp),	%ebp
   2403 	movb	%dh,		%cl
   2404 	andl	$0xff,		%eax
   2405 	andl	$0xff,		%edx
   2406 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2407 	xorl	%ebx,		%esi
   2408 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2409 	xorl	%ebx,		%esi
   2410 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2411 	xorl	%ebx,		%esi
   2412 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2413 	xorl	%ebx,		%esi
   2414 
   2415 	# Round 3
   2416 	movl	24(%ebp),	%eax
   2417 	xorl	%ebx,		%ebx
   2418 	movl	28(%ebp),	%edx
   2419 	xorl	%esi,		%eax
   2420 	xorl	%esi,		%edx
   2421 	andl	$0xfcfcfcfc,	%eax
   2422 	andl	$0xcfcfcfcf,	%edx
   2423 	movb	%al,		%bl
   2424 	movb	%ah,		%cl
   2425 	rorl	$4,		%edx
   2426 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2427 	movb	%dl,		%bl
   2428 	xorl	%ebp,		%edi
   2429 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2430 	xorl	%ebp,		%edi
   2431 	movb	%dh,		%cl
   2432 	shrl	$16,		%eax
   2433 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2434 	xorl	%ebp,		%edi
   2435 	movb	%ah,		%bl
   2436 	shrl	$16,		%edx
   2437 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2438 	xorl	%ebp,		%edi
   2439 	movl	24(%esp),	%ebp
   2440 	movb	%dh,		%cl
   2441 	andl	$0xff,		%eax
   2442 	andl	$0xff,		%edx
   2443 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2444 	xorl	%ebx,		%edi
   2445 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2446 	xorl	%ebx,		%edi
   2447 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2448 	xorl	%ebx,		%edi
   2449 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2450 	xorl	%ebx,		%edi
   2451 
   2452 	# Round 2
   2453 	movl	16(%ebp),	%eax
   2454 	xorl	%ebx,		%ebx
   2455 	movl	20(%ebp),	%edx
   2456 	xorl	%edi,		%eax
   2457 	xorl	%edi,		%edx
   2458 	andl	$0xfcfcfcfc,	%eax
   2459 	andl	$0xcfcfcfcf,	%edx
   2460 	movb	%al,		%bl
   2461 	movb	%ah,		%cl
   2462 	rorl	$4,		%edx
   2463 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2464 	movb	%dl,		%bl
   2465 	xorl	%ebp,		%esi
   2466 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2467 	xorl	%ebp,		%esi
   2468 	movb	%dh,		%cl
   2469 	shrl	$16,		%eax
   2470 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2471 	xorl	%ebp,		%esi
   2472 	movb	%ah,		%bl
   2473 	shrl	$16,		%edx
   2474 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2475 	xorl	%ebp,		%esi
   2476 	movl	24(%esp),	%ebp
   2477 	movb	%dh,		%cl
   2478 	andl	$0xff,		%eax
   2479 	andl	$0xff,		%edx
   2480 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2481 	xorl	%ebx,		%esi
   2482 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2483 	xorl	%ebx,		%esi
   2484 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2485 	xorl	%ebx,		%esi
   2486 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2487 	xorl	%ebx,		%esi
   2488 
   2489 	# Round 1
   2490 	movl	8(%ebp),	%eax
   2491 	xorl	%ebx,		%ebx
   2492 	movl	12(%ebp),	%edx
   2493 	xorl	%esi,		%eax
   2494 	xorl	%esi,		%edx
   2495 	andl	$0xfcfcfcfc,	%eax
   2496 	andl	$0xcfcfcfcf,	%edx
   2497 	movb	%al,		%bl
   2498 	movb	%ah,		%cl
   2499 	rorl	$4,		%edx
   2500 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2501 	movb	%dl,		%bl
   2502 	xorl	%ebp,		%edi
   2503 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2504 	xorl	%ebp,		%edi
   2505 	movb	%dh,		%cl
   2506 	shrl	$16,		%eax
   2507 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2508 	xorl	%ebp,		%edi
   2509 	movb	%ah,		%bl
   2510 	shrl	$16,		%edx
   2511 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2512 	xorl	%ebp,		%edi
   2513 	movl	24(%esp),	%ebp
   2514 	movb	%dh,		%cl
   2515 	andl	$0xff,		%eax
   2516 	andl	$0xff,		%edx
   2517 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2518 	xorl	%ebx,		%edi
   2519 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2520 	xorl	%ebx,		%edi
   2521 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2522 	xorl	%ebx,		%edi
   2523 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2524 	xorl	%ebx,		%edi
   2525 
   2526 	# Round 0
   2527 	movl	(%ebp),		%eax
   2528 	xorl	%ebx,		%ebx
   2529 	movl	4(%ebp),	%edx
   2530 	xorl	%edi,		%eax
   2531 	xorl	%edi,		%edx
   2532 	andl	$0xfcfcfcfc,	%eax
   2533 	andl	$0xcfcfcfcf,	%edx
   2534 	movb	%al,		%bl
   2535 	movb	%ah,		%cl
   2536 	rorl	$4,		%edx
   2537 	movl	      _C_LABEL(des_SPtrans)(%ebx),%ebp
   2538 	movb	%dl,		%bl
   2539 	xorl	%ebp,		%esi
   2540 	movl	0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2541 	xorl	%ebp,		%esi
   2542 	movb	%dh,		%cl
   2543 	shrl	$16,		%eax
   2544 	movl	0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp
   2545 	xorl	%ebp,		%esi
   2546 	movb	%ah,		%bl
   2547 	shrl	$16,		%edx
   2548 	movl	0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp
   2549 	xorl	%ebp,		%esi
   2550 	movl	24(%esp),	%ebp
   2551 	movb	%dh,		%cl
   2552 	andl	$0xff,		%eax
   2553 	andl	$0xff,		%edx
   2554 	movl	0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx
   2555 	xorl	%ebx,		%esi
   2556 	movl	0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx
   2557 	xorl	%ebx,		%esi
   2558 	movl	0x400+_C_LABEL(des_SPtrans)(%eax),%ebx
   2559 	xorl	%ebx,		%esi
   2560 	movl	0x500+_C_LABEL(des_SPtrans)(%edx),%ebx
   2561 	xorl	%ebx,		%esi
   2562 .L003end:
   2563 
   2564 	# Fixup
   2565 	rorl	$3,		%edi
   2566 	movl	20(%esp),	%eax
   2567 	rorl	$3,		%esi
   2568 	movl	%edi,		(%eax)
   2569 	movl	%esi,		4(%eax)
   2570 	popl	%ebp
   2571 	popl	%ebx
   2572 	popl	%edi
   2573 	popl	%esi
   2574 	ret
   2575 .L_des_encrypt2_end:
   2576 	.size	_C_LABEL(des_encrypt2),.L_des_encrypt2_end-_C_LABEL(des_encrypt2)
   2577 
   2578 ENTRY(des_encrypt3)
   2579 	pushl   %ebx
   2580 	movl    8(%esp),        %ebx
   2581 	pushl   %ebp
   2582 	pushl   %esi
   2583 	pushl   %edi
   2584 
   2585 	# Load the data words
   2586 	movl    (%ebx),         %edi
   2587 	movl    4(%ebx),        %esi
   2588 	subl    $12,            %esp
   2589 
   2590 	# IP
   2591 	roll    $4,             %edi
   2592 	movl    %edi,           %edx
   2593 	xorl    %esi,           %edi
   2594 	andl    $0xf0f0f0f0,    %edi
   2595 	xorl    %edi,           %edx
   2596 	xorl    %edi,           %esi
   2597 
   2598 	roll    $20,            %esi
   2599 	movl    %esi,           %edi
   2600 	xorl    %edx,           %esi
   2601 	andl    $0xfff0000f,    %esi
   2602 	xorl    %esi,           %edi
   2603 	xorl    %esi,           %edx
   2604 
   2605 	roll    $14,            %edi
   2606 	movl    %edi,           %esi
   2607 	xorl    %edx,           %edi
   2608 	andl    $0x33333333,    %edi
   2609 	xorl    %edi,           %esi
   2610 	xorl    %edi,           %edx
   2611 
   2612 	roll    $22,            %edx
   2613 	movl    %edx,           %edi
   2614 	xorl    %esi,           %edx
   2615 	andl    $0x03fc03fc,    %edx
   2616 	xorl    %edx,           %edi
   2617 	xorl    %edx,           %esi
   2618 
   2619 	roll    $9,             %edi
   2620 	movl    %edi,           %edx
   2621 	xorl    %esi,           %edi
   2622 	andl    $0xaaaaaaaa,    %edi
   2623 	xorl    %edi,           %edx
   2624 	xorl    %edi,           %esi
   2625 
   2626 	rorl    $3,             %edx
   2627 	rorl    $2,             %esi
   2628 	movl    %esi,           4(%ebx)
   2629 	movl    36(%esp),       %eax
   2630 	movl    %edx,           (%ebx)
   2631 	movl    40(%esp),       %edi
   2632 	movl    44(%esp),       %esi
   2633 	movl    $1,             8(%esp)
   2634 	movl    %eax,           4(%esp)
   2635 	movl    %ebx,           (%esp)
   2636 	call    _C_LABEL(des_encrypt2)
   2637 	movl    $0,             8(%esp)
   2638 	movl    %edi,           4(%esp)
   2639 	movl    %ebx,           (%esp)
   2640 	call    _C_LABEL(des_encrypt2)
   2641 	movl    $1,             8(%esp)
   2642 	movl    %esi,           4(%esp)
   2643 	movl    %ebx,           (%esp)
   2644 	call    _C_LABEL(des_encrypt2)
   2645 	addl    $12,            %esp
   2646 	movl    (%ebx),         %edi
   2647 	movl    4(%ebx),        %esi
   2648 
   2649 	# FP
   2650 	roll    $2,             %esi
   2651 	roll    $3,             %edi
   2652 	movl    %edi,           %eax
   2653 	xorl    %esi,           %edi
   2654 	andl    $0xaaaaaaaa,    %edi
   2655 	xorl    %edi,           %eax
   2656 	xorl    %edi,           %esi
   2657 
   2658 	roll    $23,            %eax
   2659 	movl    %eax,           %edi
   2660 	xorl    %esi,           %eax
   2661 	andl    $0x03fc03fc,    %eax
   2662 	xorl    %eax,           %edi
   2663 	xorl    %eax,           %esi
   2664 
   2665 	roll    $10,            %edi
   2666 	movl    %edi,           %eax
   2667 	xorl    %esi,           %edi
   2668 	andl    $0x33333333,    %edi
   2669 	xorl    %edi,           %eax
   2670 	xorl    %edi,           %esi
   2671 
   2672 	roll    $18,            %esi
   2673 	movl    %esi,           %edi
   2674 	xorl    %eax,           %esi
   2675 	andl    $0xfff0000f,    %esi
   2676 	xorl    %esi,           %edi
   2677 	xorl    %esi,           %eax
   2678 
   2679 	roll    $12,            %edi
   2680 	movl    %edi,           %esi
   2681 	xorl    %eax,           %edi
   2682 	andl    $0xf0f0f0f0,    %edi
   2683 	xorl    %edi,           %esi
   2684 	xorl    %edi,           %eax
   2685 
   2686 	rorl    $4,             %eax
   2687 	movl    %eax,           (%ebx)
   2688 	movl    %esi,           4(%ebx)
   2689 	popl    %edi
   2690 	popl    %esi
   2691 	popl    %ebp
   2692 	popl    %ebx
   2693 	ret
   2694 .L_des_encrypt3_end:
   2695         .size   _C_LABEL(des_encrypt3),.L_des_encrypt3_end-_C_LABEL(des_encrypt3)
   2696 
   2697 ENTRY(des_decrypt3)
   2698 	pushl   %ebx
   2699 	movl    8(%esp),        %ebx
   2700 	pushl   %ebp
   2701 	pushl   %esi
   2702 	pushl   %edi
   2703 
   2704 	# Load the data words
   2705 	movl    (%ebx),         %edi
   2706 	movl    4(%ebx),        %esi
   2707 	subl    $12,            %esp
   2708 
   2709 	# IP
   2710 	roll    $4,             %edi
   2711 	movl    %edi,           %edx
   2712 	xorl    %esi,           %edi
   2713 	andl    $0xf0f0f0f0,    %edi
   2714 	xorl    %edi,           %edx
   2715 	xorl    %edi,           %esi
   2716 
   2717 	roll    $20,            %esi
   2718 	movl    %esi,           %edi
   2719 	xorl    %edx,           %esi
   2720 	andl    $0xfff0000f,    %esi
   2721 	xorl    %esi,           %edi
   2722 	xorl    %esi,           %edx
   2723 
   2724 	roll    $14,            %edi
   2725 	movl    %edi,           %esi
   2726 	xorl    %edx,           %edi
   2727 	andl    $0x33333333,    %edi
   2728 	xorl    %edi,           %esi
   2729 	xorl    %edi,           %edx
   2730 
   2731 	roll    $22,            %edx
   2732 	movl    %edx,           %edi
   2733 	xorl    %esi,           %edx
   2734 	andl    $0x03fc03fc,    %edx
   2735 	xorl    %edx,           %edi
   2736 	xorl    %edx,           %esi
   2737 
   2738 	roll    $9,             %edi
   2739 	movl    %edi,           %edx
   2740 	xorl    %esi,           %edi
   2741 	andl    $0xaaaaaaaa,    %edi
   2742 	xorl    %edi,           %edx
   2743 	xorl    %edi,           %esi
   2744 
   2745 	rorl    $3,             %edx
   2746 	rorl    $2,             %esi
   2747 	movl    %esi,           4(%ebx)
   2748 	movl    36(%esp),       %esi
   2749 	movl    %edx,           (%ebx)
   2750 	movl    40(%esp),       %edi
   2751 	movl    44(%esp),       %eax
   2752 	movl    $0,             8(%esp)
   2753 	movl    %eax,           4(%esp)
   2754 	movl    %ebx,           (%esp)
   2755 	call    _C_LABEL(des_encrypt2)
   2756 	movl    $1,             8(%esp)
   2757 	movl    %edi,           4(%esp)
   2758 	movl    %ebx,           (%esp)
   2759 	call    _C_LABEL(des_encrypt2)
   2760 	movl    $0,             8(%esp)
   2761 	movl    %esi,           4(%esp)
   2762 	movl    %ebx,           (%esp)
   2763 	call    _C_LABEL(des_encrypt2)
   2764 	addl    $12,            %esp
   2765 	movl    (%ebx),         %edi
   2766 	movl    4(%ebx),        %esi
   2767 
   2768 	# FP
   2769 	roll    $2,             %esi
   2770 	roll    $3,             %edi
   2771 	movl    %edi,           %eax
   2772 	xorl    %esi,           %edi
   2773 	andl    $0xaaaaaaaa,    %edi
   2774 	xorl    %edi,           %eax
   2775 	xorl    %edi,           %esi
   2776 
   2777 	roll    $23,            %eax
   2778 	movl    %eax,           %edi
   2779 	xorl    %esi,           %eax
   2780 	andl    $0x03fc03fc,    %eax
   2781 	xorl    %eax,           %edi
   2782 	xorl    %eax,           %esi
   2783 
   2784 	roll    $10,            %edi
   2785 	movl    %edi,           %eax
   2786 	xorl    %esi,           %edi
   2787 	andl    $0x33333333,    %edi
   2788 	xorl    %edi,           %eax
   2789 	xorl    %edi,           %esi
   2790 
   2791 	roll    $18,            %esi
   2792 	movl    %esi,           %edi
   2793 	xorl    %eax,           %esi
   2794 	andl    $0xfff0000f,    %esi
   2795 	xorl    %esi,           %edi
   2796 	xorl    %esi,           %eax
   2797 
   2798 	roll    $12,            %edi
   2799 	movl    %edi,           %esi
   2800 	xorl    %eax,           %edi
   2801 	andl    $0xf0f0f0f0,    %edi
   2802 	xorl    %edi,           %esi
   2803 	xorl    %edi,           %eax
   2804 
   2805         rorl    $4,             %eax
   2806 	movl    %eax,           (%ebx)
   2807 	movl    %esi,           4(%ebx)
   2808 	popl    %edi
   2809 	popl    %esi
   2810 	popl    %ebp
   2811 	popl    %ebx
   2812 	ret
   2813 .L_des_decrypt3_end:
   2814 	.size   _C_LABEL(des_decrypt3),.L_des_decrypt3_end-_C_LABEL(des_decrypt3)
   2815