1/* $NetBSD: des_enc.S,v 1.1 2001/09/09 11:01:02 tls Exp $ */ 2/* $FreeBSD$ */ 3 4/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 5 * All rights reserved. 6 * 7 * This package is an SSL implementation written 8 * by Eric Young (eay@cryptsoft.com). 9 * The implementation was written so as to conform with Netscapes SSL. 10 * 11 * This library is free for commercial and non-commercial use as long as 12 * the following conditions are aheared to. The following conditions 13 * apply to all code found in this distribution, be it the RC4, RSA, 14 * lhash, DES, etc., code; not just the SSL code. The SSL documentation 15 * included with this distribution is covered by the same copyright terms 16 * except that the holder is Tim Hudson (tjh@cryptsoft.com). 17 * 18 * Copyright remains Eric Young's, and as such any Copyright notices in 19 * the code are not to be removed. 20 * If this package is used in a product, Eric Young should be given attribution 21 * as the author of the parts of the library used. 22 * This can be in the form of a textual message at program startup or 23 * in documentation (online or textual) provided with the package. 24 * 25 * Redistribution and use in source and binary forms, with or without 26 * modification, are permitted provided that the following conditions 27 * are met: 28 * 1. Redistributions of source code must retain the copyright 29 * notice, this list of conditions and the following disclaimer. 30 * 2. Redistributions in binary form must reproduce the above copyright 31 * notice, this list of conditions and the following disclaimer in the 32 * documentation and/or other materials provided with the distribution. 33 * 3. All advertising materials mentioning features or use of this software 34 * must display the following acknowledgement: 35 * "This product includes cryptographic software written by 36 * Eric Young (eay@cryptsoft.com)" 37 * The word 'cryptographic' can be left out if the rouines from the library 38 * being used are not cryptographic related :-). 39 * 4. If you include any Windows specific code (or a derivative thereof) from 40 * the apps directory (application code) you must include an acknowledgement: 41 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" 42 * 43 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND 44 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 45 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 46 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 47 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 48 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 49 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 50 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 51 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 52 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 53 * SUCH DAMAGE. 54 * 55 * The licence and distribution terms for any publically available version or 56 * derivative of this code cannot be changed. i.e. this code cannot simply be 57 * copied and put under another distribution licence 58 * [including the GNU Public Licence.] 59 */ 60 61/* 62 * Modified from the output of `perl des686.pl elf' by 63 * Thor Lancelot Simon <tls@netbsd.org> 64 */ 65 66#include <i386/include/asm.h> 67#define _C_LABEL CNAME 68 69ENTRY(des_encrypt1) 70 pushl %esi 71 pushl %edi 72 73 /* Load the 2 words */ 74 movl 12(%esp), %esi 75 xorl %ecx, %ecx 76 pushl %ebx 77 pushl %ebp 78 movl (%esi), %eax 79 movl 28(%esp), %ebx 80 movl 4(%esi), %edi 81 82 /* IP */ 83 roll $4, %eax 84 movl %eax, %esi 85 xorl %edi, %eax 86 andl $0xf0f0f0f0, %eax 87 xorl %eax, %esi 88 xorl %eax, %edi 89 90 roll $20, %edi 91 movl %edi, %eax 92 xorl %esi, %edi 93 andl $0xfff0000f, %edi 94 xorl %edi, %eax 95 xorl %edi, %esi 96 97 roll $14, %eax 98 movl %eax, %edi 99 xorl %esi, %eax 100 andl $0x33333333, %eax 101 xorl %eax, %edi 102 xorl %eax, %esi 103 104 roll $22, %esi 105 movl %esi, %eax 106 xorl %edi, %esi 107 andl $0x03fc03fc, %esi 108 xorl %esi, %eax 109 xorl %esi, %edi 110 111 roll $9, %eax 112 movl %eax, %esi 113 xorl %edi, %eax 114 andl $0xaaaaaaaa, %eax 115 xorl %eax, %esi 116 xorl %eax, %edi 117 118.byte 209 119.byte 199 # roll $1 %edi 120 movl 24(%esp), %ebp 121 cmpl $0, %ebx 122 je .L000start_decrypt 123 124 /* Round 0 */ 125 movl (%ebp), %eax 126 xorl %ebx, %ebx 127 movl 4(%ebp), %edx 128 xorl %esi, %eax 129 xorl %esi, %edx 130 andl $0xfcfcfcfc, %eax 131 andl $0xcfcfcfcf, %edx 132 movb %al, %bl 133 movb %ah, %cl 134 rorl $4, %edx 135 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 136 movb %dl, %bl 137 xorl %ebp, %edi 138 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 139 xorl %ebp, %edi 140 movb %dh, %cl 141 shrl $16, %eax 142 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 143 xorl %ebp, %edi 144 movb %ah, %bl 145 shrl $16, %edx 146 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 147 xorl %ebp, %edi 148 movl 24(%esp), %ebp 149 movb %dh, %cl 150 andl $0xff, %eax 151 andl $0xff, %edx 152 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 153 xorl %ebx, %edi 154 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 155 xorl %ebx, %edi 156 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 157 xorl %ebx, %edi 158 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 159 xorl %ebx, %edi 160 161 /* Round 1 */ 162 movl 8(%ebp), %eax 163 xorl %ebx, %ebx 164 movl 12(%ebp), %edx 165 xorl %edi, %eax 166 xorl %edi, %edx 167 andl $0xfcfcfcfc, %eax 168 andl $0xcfcfcfcf, %edx 169 movb %al, %bl 170 movb %ah, %cl 171 rorl $4, %edx 172 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 173 movb %dl, %bl 174 xorl %ebp, %esi 175 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 176 xorl %ebp, %esi 177 movb %dh, %cl 178 shrl $16, %eax 179 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 180 xorl %ebp, %esi 181 movb %ah, %bl 182 shrl $16, %edx 183 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 184 xorl %ebp, %esi 185 movl 24(%esp), %ebp 186 movb %dh, %cl 187 andl $0xff, %eax 188 andl $0xff, %edx 189 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 190 xorl %ebx, %esi 191 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 192 xorl %ebx, %esi 193 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 194 xorl %ebx, %esi 195 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 196 xorl %ebx, %esi 197 198 /* Round 2 */ 199 movl 16(%ebp), %eax 200 xorl %ebx, %ebx 201 movl 20(%ebp), %edx 202 xorl %esi, %eax 203 xorl %esi, %edx 204 andl $0xfcfcfcfc, %eax 205 andl $0xcfcfcfcf, %edx 206 movb %al, %bl 207 movb %ah, %cl 208 rorl $4, %edx 209 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 210 movb %dl, %bl 211 xorl %ebp, %edi 212 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 213 xorl %ebp, %edi 214 movb %dh, %cl 215 shrl $16, %eax 216 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 217 xorl %ebp, %edi 218 movb %ah, %bl 219 shrl $16, %edx 220 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 221 xorl %ebp, %edi 222 movl 24(%esp), %ebp 223 movb %dh, %cl 224 andl $0xff, %eax 225 andl $0xff, %edx 226 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 227 xorl %ebx, %edi 228 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 229 xorl %ebx, %edi 230 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 231 xorl %ebx, %edi 232 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 233 xorl %ebx, %edi 234 235 /* Round 3 */ 236 movl 24(%ebp), %eax 237 xorl %ebx, %ebx 238 movl 28(%ebp), %edx 239 xorl %edi, %eax 240 xorl %edi, %edx 241 andl $0xfcfcfcfc, %eax 242 andl $0xcfcfcfcf, %edx 243 movb %al, %bl 244 movb %ah, %cl 245 rorl $4, %edx 246 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 247 movb %dl, %bl 248 xorl %ebp, %esi 249 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 250 xorl %ebp, %esi 251 movb %dh, %cl 252 shrl $16, %eax 253 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 254 xorl %ebp, %esi 255 movb %ah, %bl 256 shrl $16, %edx 257 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 258 xorl %ebp, %esi 259 movl 24(%esp), %ebp 260 movb %dh, %cl 261 andl $0xff, %eax 262 andl $0xff, %edx 263 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 264 xorl %ebx, %esi 265 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 266 xorl %ebx, %esi 267 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 268 xorl %ebx, %esi 269 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 270 xorl %ebx, %esi 271 272 /* Round 4 */ 273 movl 32(%ebp), %eax 274 xorl %ebx, %ebx 275 movl 36(%ebp), %edx 276 xorl %esi, %eax 277 xorl %esi, %edx 278 andl $0xfcfcfcfc, %eax 279 andl $0xcfcfcfcf, %edx 280 movb %al, %bl 281 movb %ah, %cl 282 rorl $4, %edx 283 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 284 movb %dl, %bl 285 xorl %ebp, %edi 286 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 287 xorl %ebp, %edi 288 movb %dh, %cl 289 shrl $16, %eax 290 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 291 xorl %ebp, %edi 292 movb %ah, %bl 293 shrl $16, %edx 294 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 295 xorl %ebp, %edi 296 movl 24(%esp), %ebp 297 movb %dh, %cl 298 andl $0xff, %eax 299 andl $0xff, %edx 300 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 301 xorl %ebx, %edi 302 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 303 xorl %ebx, %edi 304 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 305 xorl %ebx, %edi 306 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 307 xorl %ebx, %edi 308 309 /* Round 5 */ 310 movl 40(%ebp), %eax 311 xorl %ebx, %ebx 312 movl 44(%ebp), %edx 313 xorl %edi, %eax 314 xorl %edi, %edx 315 andl $0xfcfcfcfc, %eax 316 andl $0xcfcfcfcf, %edx 317 movb %al, %bl 318 movb %ah, %cl 319 rorl $4, %edx 320 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 321 movb %dl, %bl 322 xorl %ebp, %esi 323 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 324 xorl %ebp, %esi 325 movb %dh, %cl 326 shrl $16, %eax 327 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 328 xorl %ebp, %esi 329 movb %ah, %bl 330 shrl $16, %edx 331 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 332 xorl %ebp, %esi 333 movl 24(%esp), %ebp 334 movb %dh, %cl 335 andl $0xff, %eax 336 andl $0xff, %edx 337 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 338 xorl %ebx, %esi 339 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 340 xorl %ebx, %esi 341 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 342 xorl %ebx, %esi 343 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 344 xorl %ebx, %esi 345 346 /* Round 6 */ 347 movl 48(%ebp), %eax 348 xorl %ebx, %ebx 349 movl 52(%ebp), %edx 350 xorl %esi, %eax 351 xorl %esi, %edx 352 andl $0xfcfcfcfc, %eax 353 andl $0xcfcfcfcf, %edx 354 movb %al, %bl 355 movb %ah, %cl 356 rorl $4, %edx 357 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 358 movb %dl, %bl 359 xorl %ebp, %edi 360 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 361 xorl %ebp, %edi 362 movb %dh, %cl 363 shrl $16, %eax 364 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 365 xorl %ebp, %edi 366 movb %ah, %bl 367 shrl $16, %edx 368 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 369 xorl %ebp, %edi 370 movl 24(%esp), %ebp 371 movb %dh, %cl 372 andl $0xff, %eax 373 andl $0xff, %edx 374 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 375 xorl %ebx, %edi 376 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 377 xorl %ebx, %edi 378 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 379 xorl %ebx, %edi 380 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 381 xorl %ebx, %edi 382 383 /* Round 7 */ 384 movl 56(%ebp), %eax 385 xorl %ebx, %ebx 386 movl 60(%ebp), %edx 387 xorl %edi, %eax 388 xorl %edi, %edx 389 andl $0xfcfcfcfc, %eax 390 andl $0xcfcfcfcf, %edx 391 movb %al, %bl 392 movb %ah, %cl 393 rorl $4, %edx 394 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 395 movb %dl, %bl 396 xorl %ebp, %esi 397 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 398 xorl %ebp, %esi 399 movb %dh, %cl 400 shrl $16, %eax 401 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 402 xorl %ebp, %esi 403 movb %ah, %bl 404 shrl $16, %edx 405 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 406 xorl %ebp, %esi 407 movl 24(%esp), %ebp 408 movb %dh, %cl 409 andl $0xff, %eax 410 andl $0xff, %edx 411 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 412 xorl %ebx, %esi 413 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 414 xorl %ebx, %esi 415 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 416 xorl %ebx, %esi 417 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 418 xorl %ebx, %esi 419 420 /* Round 8 */ 421 movl 64(%ebp), %eax 422 xorl %ebx, %ebx 423 movl 68(%ebp), %edx 424 xorl %esi, %eax 425 xorl %esi, %edx 426 andl $0xfcfcfcfc, %eax 427 andl $0xcfcfcfcf, %edx 428 movb %al, %bl 429 movb %ah, %cl 430 rorl $4, %edx 431 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 432 movb %dl, %bl 433 xorl %ebp, %edi 434 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 435 xorl %ebp, %edi 436 movb %dh, %cl 437 shrl $16, %eax 438 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 439 xorl %ebp, %edi 440 movb %ah, %bl 441 shrl $16, %edx 442 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 443 xorl %ebp, %edi 444 movl 24(%esp), %ebp 445 movb %dh, %cl 446 andl $0xff, %eax 447 andl $0xff, %edx 448 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 449 xorl %ebx, %edi 450 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 451 xorl %ebx, %edi 452 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 453 xorl %ebx, %edi 454 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 455 xorl %ebx, %edi 456 457 /* Round 9 */ 458 movl 72(%ebp), %eax 459 xorl %ebx, %ebx 460 movl 76(%ebp), %edx 461 xorl %edi, %eax 462 xorl %edi, %edx 463 andl $0xfcfcfcfc, %eax 464 andl $0xcfcfcfcf, %edx 465 movb %al, %bl 466 movb %ah, %cl 467 rorl $4, %edx 468 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 469 movb %dl, %bl 470 xorl %ebp, %esi 471 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 472 xorl %ebp, %esi 473 movb %dh, %cl 474 shrl $16, %eax 475 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 476 xorl %ebp, %esi 477 movb %ah, %bl 478 shrl $16, %edx 479 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 480 xorl %ebp, %esi 481 movl 24(%esp), %ebp 482 movb %dh, %cl 483 andl $0xff, %eax 484 andl $0xff, %edx 485 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 486 xorl %ebx, %esi 487 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 488 xorl %ebx, %esi 489 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 490 xorl %ebx, %esi 491 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 492 xorl %ebx, %esi 493 494 /* Round 10 */ 495 movl 80(%ebp), %eax 496 xorl %ebx, %ebx 497 movl 84(%ebp), %edx 498 xorl %esi, %eax 499 xorl %esi, %edx 500 andl $0xfcfcfcfc, %eax 501 andl $0xcfcfcfcf, %edx 502 movb %al, %bl 503 movb %ah, %cl 504 rorl $4, %edx 505 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 506 movb %dl, %bl 507 xorl %ebp, %edi 508 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 509 xorl %ebp, %edi 510 movb %dh, %cl 511 shrl $16, %eax 512 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 513 xorl %ebp, %edi 514 movb %ah, %bl 515 shrl $16, %edx 516 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 517 xorl %ebp, %edi 518 movl 24(%esp), %ebp 519 movb %dh, %cl 520 andl $0xff, %eax 521 andl $0xff, %edx 522 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 523 xorl %ebx, %edi 524 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 525 xorl %ebx, %edi 526 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 527 xorl %ebx, %edi 528 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 529 xorl %ebx, %edi 530 531 /* Round 11 */ 532 movl 88(%ebp), %eax 533 xorl %ebx, %ebx 534 movl 92(%ebp), %edx 535 xorl %edi, %eax 536 xorl %edi, %edx 537 andl $0xfcfcfcfc, %eax 538 andl $0xcfcfcfcf, %edx 539 movb %al, %bl 540 movb %ah, %cl 541 rorl $4, %edx 542 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 543 movb %dl, %bl 544 xorl %ebp, %esi 545 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 546 xorl %ebp, %esi 547 movb %dh, %cl 548 shrl $16, %eax 549 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 550 xorl %ebp, %esi 551 movb %ah, %bl 552 shrl $16, %edx 553 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 554 xorl %ebp, %esi 555 movl 24(%esp), %ebp 556 movb %dh, %cl 557 andl $0xff, %eax 558 andl $0xff, %edx 559 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 560 xorl %ebx, %esi 561 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 562 xorl %ebx, %esi 563 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 564 xorl %ebx, %esi 565 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 566 xorl %ebx, %esi 567 568 /* Round 12 */ 569 movl 96(%ebp), %eax 570 xorl %ebx, %ebx 571 movl 100(%ebp), %edx 572 xorl %esi, %eax 573 xorl %esi, %edx 574 andl $0xfcfcfcfc, %eax 575 andl $0xcfcfcfcf, %edx 576 movb %al, %bl 577 movb %ah, %cl 578 rorl $4, %edx 579 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 580 movb %dl, %bl 581 xorl %ebp, %edi 582 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 583 xorl %ebp, %edi 584 movb %dh, %cl 585 shrl $16, %eax 586 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 587 xorl %ebp, %edi 588 movb %ah, %bl 589 shrl $16, %edx 590 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 591 xorl %ebp, %edi 592 movl 24(%esp), %ebp 593 movb %dh, %cl 594 andl $0xff, %eax 595 andl $0xff, %edx 596 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 597 xorl %ebx, %edi 598 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 599 xorl %ebx, %edi 600 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 601 xorl %ebx, %edi 602 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 603 xorl %ebx, %edi 604 605 /* Round 13 */ 606 movl 104(%ebp), %eax 607 xorl %ebx, %ebx 608 movl 108(%ebp), %edx 609 xorl %edi, %eax 610 xorl %edi, %edx 611 andl $0xfcfcfcfc, %eax 612 andl $0xcfcfcfcf, %edx 613 movb %al, %bl 614 movb %ah, %cl 615 rorl $4, %edx 616 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 617 movb %dl, %bl 618 xorl %ebp, %esi 619 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 620 xorl %ebp, %esi 621 movb %dh, %cl 622 shrl $16, %eax 623 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 624 xorl %ebp, %esi 625 movb %ah, %bl 626 shrl $16, %edx 627 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 628 xorl %ebp, %esi 629 movl 24(%esp), %ebp 630 movb %dh, %cl 631 andl $0xff, %eax 632 andl $0xff, %edx 633 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 634 xorl %ebx, %esi 635 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 636 xorl %ebx, %esi 637 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 638 xorl %ebx, %esi 639 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 640 xorl %ebx, %esi 641 642 /* Round 14 */ 643 movl 112(%ebp), %eax 644 xorl %ebx, %ebx 645 movl 116(%ebp), %edx 646 xorl %esi, %eax 647 xorl %esi, %edx 648 andl $0xfcfcfcfc, %eax 649 andl $0xcfcfcfcf, %edx 650 movb %al, %bl 651 movb %ah, %cl 652 rorl $4, %edx 653 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 654 movb %dl, %bl 655 xorl %ebp, %edi 656 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 657 xorl %ebp, %edi 658 movb %dh, %cl 659 shrl $16, %eax 660 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 661 xorl %ebp, %edi 662 movb %ah, %bl 663 shrl $16, %edx 664 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 665 xorl %ebp, %edi 666 movl 24(%esp), %ebp 667 movb %dh, %cl 668 andl $0xff, %eax 669 andl $0xff, %edx 670 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 671 xorl %ebx, %edi 672 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 673 xorl %ebx, %edi 674 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 675 xorl %ebx, %edi 676 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 677 xorl %ebx, %edi 678 679 /* Round 15 */ 680 movl 120(%ebp), %eax 681 xorl %ebx, %ebx 682 movl 124(%ebp), %edx 683 xorl %edi, %eax 684 xorl %edi, %edx 685 andl $0xfcfcfcfc, %eax 686 andl $0xcfcfcfcf, %edx 687 movb %al, %bl 688 movb %ah, %cl 689 rorl $4, %edx 690 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 691 movb %dl, %bl 692 xorl %ebp, %esi 693 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 694 xorl %ebp, %esi 695 movb %dh, %cl 696 shrl $16, %eax 697 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 698 xorl %ebp, %esi 699 movb %ah, %bl 700 shrl $16, %edx 701 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 702 xorl %ebp, %esi 703 movl 24(%esp), %ebp 704 movb %dh, %cl 705 andl $0xff, %eax 706 andl $0xff, %edx 707 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 708 xorl %ebx, %esi 709 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 710 xorl %ebx, %esi 711 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 712 xorl %ebx, %esi 713 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 714 xorl %ebx, %esi 715 jmp .L001end 716.L000start_decrypt: 717 718 /* Round 15 */ 719 movl 120(%ebp), %eax 720 xorl %ebx, %ebx 721 movl 124(%ebp), %edx 722 xorl %esi, %eax 723 xorl %esi, %edx 724 andl $0xfcfcfcfc, %eax 725 andl $0xcfcfcfcf, %edx 726 movb %al, %bl 727 movb %ah, %cl 728 rorl $4, %edx 729 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 730 movb %dl, %bl 731 xorl %ebp, %edi 732 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 733 xorl %ebp, %edi 734 movb %dh, %cl 735 shrl $16, %eax 736 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 737 xorl %ebp, %edi 738 movb %ah, %bl 739 shrl $16, %edx 740 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 741 xorl %ebp, %edi 742 movl 24(%esp), %ebp 743 movb %dh, %cl 744 andl $0xff, %eax 745 andl $0xff, %edx 746 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 747 xorl %ebx, %edi 748 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 749 xorl %ebx, %edi 750 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 751 xorl %ebx, %edi 752 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 753 xorl %ebx, %edi 754 755 /* Round 14 */ 756 movl 112(%ebp), %eax 757 xorl %ebx, %ebx 758 movl 116(%ebp), %edx 759 xorl %edi, %eax 760 xorl %edi, %edx 761 andl $0xfcfcfcfc, %eax 762 andl $0xcfcfcfcf, %edx 763 movb %al, %bl 764 movb %ah, %cl 765 rorl $4, %edx 766 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 767 movb %dl, %bl 768 xorl %ebp, %esi 769 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 770 xorl %ebp, %esi 771 movb %dh, %cl 772 shrl $16, %eax 773 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 774 xorl %ebp, %esi 775 movb %ah, %bl 776 shrl $16, %edx 777 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 778 xorl %ebp, %esi 779 movl 24(%esp), %ebp 780 movb %dh, %cl 781 andl $0xff, %eax 782 andl $0xff, %edx 783 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 784 xorl %ebx, %esi 785 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 786 xorl %ebx, %esi 787 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 788 xorl %ebx, %esi 789 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 790 xorl %ebx, %esi 791 792 /* Round 13 */ 793 movl 104(%ebp), %eax 794 xorl %ebx, %ebx 795 movl 108(%ebp), %edx 796 xorl %esi, %eax 797 xorl %esi, %edx 798 andl $0xfcfcfcfc, %eax 799 andl $0xcfcfcfcf, %edx 800 movb %al, %bl 801 movb %ah, %cl 802 rorl $4, %edx 803 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 804 movb %dl, %bl 805 xorl %ebp, %edi 806 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 807 xorl %ebp, %edi 808 movb %dh, %cl 809 shrl $16, %eax 810 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 811 xorl %ebp, %edi 812 movb %ah, %bl 813 shrl $16, %edx 814 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 815 xorl %ebp, %edi 816 movl 24(%esp), %ebp 817 movb %dh, %cl 818 andl $0xff, %eax 819 andl $0xff, %edx 820 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 821 xorl %ebx, %edi 822 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 823 xorl %ebx, %edi 824 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 825 xorl %ebx, %edi 826 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 827 xorl %ebx, %edi 828 829 /* Round 12 */ 830 movl 96(%ebp), %eax 831 xorl %ebx, %ebx 832 movl 100(%ebp), %edx 833 xorl %edi, %eax 834 xorl %edi, %edx 835 andl $0xfcfcfcfc, %eax 836 andl $0xcfcfcfcf, %edx 837 movb %al, %bl 838 movb %ah, %cl 839 rorl $4, %edx 840 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 841 movb %dl, %bl 842 xorl %ebp, %esi 843 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 844 xorl %ebp, %esi 845 movb %dh, %cl 846 shrl $16, %eax 847 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 848 xorl %ebp, %esi 849 movb %ah, %bl 850 shrl $16, %edx 851 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 852 xorl %ebp, %esi 853 movl 24(%esp), %ebp 854 movb %dh, %cl 855 andl $0xff, %eax 856 andl $0xff, %edx 857 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 858 xorl %ebx, %esi 859 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 860 xorl %ebx, %esi 861 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 862 xorl %ebx, %esi 863 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 864 xorl %ebx, %esi 865 866 /* Round 11 */ 867 movl 88(%ebp), %eax 868 xorl %ebx, %ebx 869 movl 92(%ebp), %edx 870 xorl %esi, %eax 871 xorl %esi, %edx 872 andl $0xfcfcfcfc, %eax 873 andl $0xcfcfcfcf, %edx 874 movb %al, %bl 875 movb %ah, %cl 876 rorl $4, %edx 877 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 878 movb %dl, %bl 879 xorl %ebp, %edi 880 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 881 xorl %ebp, %edi 882 movb %dh, %cl 883 shrl $16, %eax 884 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 885 xorl %ebp, %edi 886 movb %ah, %bl 887 shrl $16, %edx 888 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 889 xorl %ebp, %edi 890 movl 24(%esp), %ebp 891 movb %dh, %cl 892 andl $0xff, %eax 893 andl $0xff, %edx 894 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 895 xorl %ebx, %edi 896 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 897 xorl %ebx, %edi 898 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 899 xorl %ebx, %edi 900 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 901 xorl %ebx, %edi 902 903 /* Round 10 */ 904 movl 80(%ebp), %eax 905 xorl %ebx, %ebx 906 movl 84(%ebp), %edx 907 xorl %edi, %eax 908 xorl %edi, %edx 909 andl $0xfcfcfcfc, %eax 910 andl $0xcfcfcfcf, %edx 911 movb %al, %bl 912 movb %ah, %cl 913 rorl $4, %edx 914 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 915 movb %dl, %bl 916 xorl %ebp, %esi 917 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 918 xorl %ebp, %esi 919 movb %dh, %cl 920 shrl $16, %eax 921 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 922 xorl %ebp, %esi 923 movb %ah, %bl 924 shrl $16, %edx 925 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 926 xorl %ebp, %esi 927 movl 24(%esp), %ebp 928 movb %dh, %cl 929 andl $0xff, %eax 930 andl $0xff, %edx 931 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 932 xorl %ebx, %esi 933 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 934 xorl %ebx, %esi 935 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 936 xorl %ebx, %esi 937 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 938 xorl %ebx, %esi 939 940 /* Round 9 */ 941 movl 72(%ebp), %eax 942 xorl %ebx, %ebx 943 movl 76(%ebp), %edx 944 xorl %esi, %eax 945 xorl %esi, %edx 946 andl $0xfcfcfcfc, %eax 947 andl $0xcfcfcfcf, %edx 948 movb %al, %bl 949 movb %ah, %cl 950 rorl $4, %edx 951 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 952 movb %dl, %bl 953 xorl %ebp, %edi 954 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 955 xorl %ebp, %edi 956 movb %dh, %cl 957 shrl $16, %eax 958 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 959 xorl %ebp, %edi 960 movb %ah, %bl 961 shrl $16, %edx 962 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 963 xorl %ebp, %edi 964 movl 24(%esp), %ebp 965 movb %dh, %cl 966 andl $0xff, %eax 967 andl $0xff, %edx 968 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 969 xorl %ebx, %edi 970 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 971 xorl %ebx, %edi 972 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 973 xorl %ebx, %edi 974 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 975 xorl %ebx, %edi 976 977 /* Round 8 */ 978 movl 64(%ebp), %eax 979 xorl %ebx, %ebx 980 movl 68(%ebp), %edx 981 xorl %edi, %eax 982 xorl %edi, %edx 983 andl $0xfcfcfcfc, %eax 984 andl $0xcfcfcfcf, %edx 985 movb %al, %bl 986 movb %ah, %cl 987 rorl $4, %edx 988 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 989 movb %dl, %bl 990 xorl %ebp, %esi 991 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 992 xorl %ebp, %esi 993 movb %dh, %cl 994 shrl $16, %eax 995 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 996 xorl %ebp, %esi 997 movb %ah, %bl 998 shrl $16, %edx 999 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1000 xorl %ebp, %esi 1001 movl 24(%esp), %ebp 1002 movb %dh, %cl 1003 andl $0xff, %eax 1004 andl $0xff, %edx 1005 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1006 xorl %ebx, %esi 1007 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1008 xorl %ebx, %esi 1009 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1010 xorl %ebx, %esi 1011 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1012 xorl %ebx, %esi 1013 1014 /* Round 7 */ 1015 movl 56(%ebp), %eax 1016 xorl %ebx, %ebx 1017 movl 60(%ebp), %edx 1018 xorl %esi, %eax 1019 xorl %esi, %edx 1020 andl $0xfcfcfcfc, %eax 1021 andl $0xcfcfcfcf, %edx 1022 movb %al, %bl 1023 movb %ah, %cl 1024 rorl $4, %edx 1025 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1026 movb %dl, %bl 1027 xorl %ebp, %edi 1028 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1029 xorl %ebp, %edi 1030 movb %dh, %cl 1031 shrl $16, %eax 1032 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1033 xorl %ebp, %edi 1034 movb %ah, %bl 1035 shrl $16, %edx 1036 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1037 xorl %ebp, %edi 1038 movl 24(%esp), %ebp 1039 movb %dh, %cl 1040 andl $0xff, %eax 1041 andl $0xff, %edx 1042 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1043 xorl %ebx, %edi 1044 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1045 xorl %ebx, %edi 1046 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1047 xorl %ebx, %edi 1048 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1049 xorl %ebx, %edi 1050 1051 /* Round 6 */ 1052 movl 48(%ebp), %eax 1053 xorl %ebx, %ebx 1054 movl 52(%ebp), %edx 1055 xorl %edi, %eax 1056 xorl %edi, %edx 1057 andl $0xfcfcfcfc, %eax 1058 andl $0xcfcfcfcf, %edx 1059 movb %al, %bl 1060 movb %ah, %cl 1061 rorl $4, %edx 1062 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1063 movb %dl, %bl 1064 xorl %ebp, %esi 1065 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1066 xorl %ebp, %esi 1067 movb %dh, %cl 1068 shrl $16, %eax 1069 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1070 xorl %ebp, %esi 1071 movb %ah, %bl 1072 shrl $16, %edx 1073 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1074 xorl %ebp, %esi 1075 movl 24(%esp), %ebp 1076 movb %dh, %cl 1077 andl $0xff, %eax 1078 andl $0xff, %edx 1079 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1080 xorl %ebx, %esi 1081 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1082 xorl %ebx, %esi 1083 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1084 xorl %ebx, %esi 1085 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1086 xorl %ebx, %esi 1087 1088 /* Round 5 */ 1089 movl 40(%ebp), %eax 1090 xorl %ebx, %ebx 1091 movl 44(%ebp), %edx 1092 xorl %esi, %eax 1093 xorl %esi, %edx 1094 andl $0xfcfcfcfc, %eax 1095 andl $0xcfcfcfcf, %edx 1096 movb %al, %bl 1097 movb %ah, %cl 1098 rorl $4, %edx 1099 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1100 movb %dl, %bl 1101 xorl %ebp, %edi 1102 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1103 xorl %ebp, %edi 1104 movb %dh, %cl 1105 shrl $16, %eax 1106 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1107 xorl %ebp, %edi 1108 movb %ah, %bl 1109 shrl $16, %edx 1110 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1111 xorl %ebp, %edi 1112 movl 24(%esp), %ebp 1113 movb %dh, %cl 1114 andl $0xff, %eax 1115 andl $0xff, %edx 1116 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1117 xorl %ebx, %edi 1118 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1119 xorl %ebx, %edi 1120 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1121 xorl %ebx, %edi 1122 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1123 xorl %ebx, %edi 1124 1125 /* Round 4 */ 1126 movl 32(%ebp), %eax 1127 xorl %ebx, %ebx 1128 movl 36(%ebp), %edx 1129 xorl %edi, %eax 1130 xorl %edi, %edx 1131 andl $0xfcfcfcfc, %eax 1132 andl $0xcfcfcfcf, %edx 1133 movb %al, %bl 1134 movb %ah, %cl 1135 rorl $4, %edx 1136 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1137 movb %dl, %bl 1138 xorl %ebp, %esi 1139 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1140 xorl %ebp, %esi 1141 movb %dh, %cl 1142 shrl $16, %eax 1143 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1144 xorl %ebp, %esi 1145 movb %ah, %bl 1146 shrl $16, %edx 1147 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1148 xorl %ebp, %esi 1149 movl 24(%esp), %ebp 1150 movb %dh, %cl 1151 andl $0xff, %eax 1152 andl $0xff, %edx 1153 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1154 xorl %ebx, %esi 1155 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1156 xorl %ebx, %esi 1157 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1158 xorl %ebx, %esi 1159 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1160 xorl %ebx, %esi 1161 1162 /* Round 3 */ 1163 movl 24(%ebp), %eax 1164 xorl %ebx, %ebx 1165 movl 28(%ebp), %edx 1166 xorl %esi, %eax 1167 xorl %esi, %edx 1168 andl $0xfcfcfcfc, %eax 1169 andl $0xcfcfcfcf, %edx 1170 movb %al, %bl 1171 movb %ah, %cl 1172 rorl $4, %edx 1173 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1174 movb %dl, %bl 1175 xorl %ebp, %edi 1176 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1177 xorl %ebp, %edi 1178 movb %dh, %cl 1179 shrl $16, %eax 1180 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1181 xorl %ebp, %edi 1182 movb %ah, %bl 1183 shrl $16, %edx 1184 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1185 xorl %ebp, %edi 1186 movl 24(%esp), %ebp 1187 movb %dh, %cl 1188 andl $0xff, %eax 1189 andl $0xff, %edx 1190 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1191 xorl %ebx, %edi 1192 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1193 xorl %ebx, %edi 1194 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1195 xorl %ebx, %edi 1196 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1197 xorl %ebx, %edi 1198 1199 /* Round 2 */ 1200 movl 16(%ebp), %eax 1201 xorl %ebx, %ebx 1202 movl 20(%ebp), %edx 1203 xorl %edi, %eax 1204 xorl %edi, %edx 1205 andl $0xfcfcfcfc, %eax 1206 andl $0xcfcfcfcf, %edx 1207 movb %al, %bl 1208 movb %ah, %cl 1209 rorl $4, %edx 1210 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1211 movb %dl, %bl 1212 xorl %ebp, %esi 1213 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1214 xorl %ebp, %esi 1215 movb %dh, %cl 1216 shrl $16, %eax 1217 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1218 xorl %ebp, %esi 1219 movb %ah, %bl 1220 shrl $16, %edx 1221 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1222 xorl %ebp, %esi 1223 movl 24(%esp), %ebp 1224 movb %dh, %cl 1225 andl $0xff, %eax 1226 andl $0xff, %edx 1227 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1228 xorl %ebx, %esi 1229 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1230 xorl %ebx, %esi 1231 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1232 xorl %ebx, %esi 1233 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1234 xorl %ebx, %esi 1235 1236 /* Round 1 */ 1237 movl 8(%ebp), %eax 1238 xorl %ebx, %ebx 1239 movl 12(%ebp), %edx 1240 xorl %esi, %eax 1241 xorl %esi, %edx 1242 andl $0xfcfcfcfc, %eax 1243 andl $0xcfcfcfcf, %edx 1244 movb %al, %bl 1245 movb %ah, %cl 1246 rorl $4, %edx 1247 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1248 movb %dl, %bl 1249 xorl %ebp, %edi 1250 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1251 xorl %ebp, %edi 1252 movb %dh, %cl 1253 shrl $16, %eax 1254 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1255 xorl %ebp, %edi 1256 movb %ah, %bl 1257 shrl $16, %edx 1258 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1259 xorl %ebp, %edi 1260 movl 24(%esp), %ebp 1261 movb %dh, %cl 1262 andl $0xff, %eax 1263 andl $0xff, %edx 1264 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1265 xorl %ebx, %edi 1266 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1267 xorl %ebx, %edi 1268 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1269 xorl %ebx, %edi 1270 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1271 xorl %ebx, %edi 1272 1273 /* Round 0 */ 1274 movl (%ebp), %eax 1275 xorl %ebx, %ebx 1276 movl 4(%ebp), %edx 1277 xorl %edi, %eax 1278 xorl %edi, %edx 1279 andl $0xfcfcfcfc, %eax 1280 andl $0xcfcfcfcf, %edx 1281 movb %al, %bl 1282 movb %ah, %cl 1283 rorl $4, %edx 1284 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1285 movb %dl, %bl 1286 xorl %ebp, %esi 1287 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1288 xorl %ebp, %esi 1289 movb %dh, %cl 1290 shrl $16, %eax 1291 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1292 xorl %ebp, %esi 1293 movb %ah, %bl 1294 shrl $16, %edx 1295 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1296 xorl %ebp, %esi 1297 movl 24(%esp), %ebp 1298 movb %dh, %cl 1299 andl $0xff, %eax 1300 andl $0xff, %edx 1301 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1302 xorl %ebx, %esi 1303 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1304 xorl %ebx, %esi 1305 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1306 xorl %ebx, %esi 1307 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1308 xorl %ebx, %esi 1309.L001end: 1310 1311 /* FP */ 1312 movl 20(%esp), %edx 1313.byte 209 1314.byte 206 # rorl $1 %esi 1315 movl %edi, %eax 1316 xorl %esi, %edi 1317 andl $0xaaaaaaaa, %edi 1318 xorl %edi, %eax 1319 xorl %edi, %esi 1320 1321 roll $23, %eax 1322 movl %eax, %edi 1323 xorl %esi, %eax 1324 andl $0x03fc03fc, %eax 1325 xorl %eax, %edi 1326 xorl %eax, %esi 1327 1328 roll $10, %edi 1329 movl %edi, %eax 1330 xorl %esi, %edi 1331 andl $0x33333333, %edi 1332 xorl %edi, %eax 1333 xorl %edi, %esi 1334 1335 roll $18, %esi 1336 movl %esi, %edi 1337 xorl %eax, %esi 1338 andl $0xfff0000f, %esi 1339 xorl %esi, %edi 1340 xorl %esi, %eax 1341 1342 roll $12, %edi 1343 movl %edi, %esi 1344 xorl %eax, %edi 1345 andl $0xf0f0f0f0, %edi 1346 xorl %edi, %esi 1347 xorl %edi, %eax 1348 1349 rorl $4, %eax 1350 movl %eax, (%edx) 1351 movl %esi, 4(%edx) 1352 popl %ebp 1353 popl %ebx 1354 popl %edi 1355 popl %esi 1356 ret 1357END(des_encrypt1) 1358 1359ENTRY(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 2575END(des_encrypt2) 2576 2577ENTRY(des_encrypt3) 2578 pushl %ebx 2579 movl 8(%esp), %ebx 2580 pushl %ebp 2581 pushl %esi 2582 pushl %edi 2583 2584 /* Load the data words */ 2585 movl (%ebx), %edi 2586 movl 4(%ebx), %esi 2587 subl $12, %esp 2588 2589 /* IP */ 2590 roll $4, %edi 2591 movl %edi, %edx 2592 xorl %esi, %edi 2593 andl $0xf0f0f0f0, %edi 2594 xorl %edi, %edx 2595 xorl %edi, %esi 2596 2597 roll $20, %esi 2598 movl %esi, %edi 2599 xorl %edx, %esi 2600 andl $0xfff0000f, %esi 2601 xorl %esi, %edi 2602 xorl %esi, %edx 2603 2604 roll $14, %edi 2605 movl %edi, %esi 2606 xorl %edx, %edi 2607 andl $0x33333333, %edi 2608 xorl %edi, %esi 2609 xorl %edi, %edx 2610 2611 roll $22, %edx 2612 movl %edx, %edi 2613 xorl %esi, %edx 2614 andl $0x03fc03fc, %edx 2615 xorl %edx, %edi 2616 xorl %edx, %esi 2617 2618 roll $9, %edi 2619 movl %edi, %edx 2620 xorl %esi, %edi 2621 andl $0xaaaaaaaa, %edi 2622 xorl %edi, %edx 2623 xorl %edi, %esi 2624 2625 rorl $3, %edx 2626 rorl $2, %esi 2627 movl %esi, 4(%ebx) 2628 movl 36(%esp), %eax 2629 movl %edx, (%ebx) 2630 movl 40(%esp), %edi 2631 movl 44(%esp), %esi 2632 movl $1, 8(%esp) 2633 movl %eax, 4(%esp) 2634 movl %ebx, (%esp) 2635 call _C_LABEL(des_encrypt2) 2636 movl $0, 8(%esp) 2637 movl %edi, 4(%esp) 2638 movl %ebx, (%esp) 2639 call _C_LABEL(des_encrypt2) 2640 movl $1, 8(%esp) 2641 movl %esi, 4(%esp) 2642 movl %ebx, (%esp) 2643 call _C_LABEL(des_encrypt2) 2644 addl $12, %esp 2645 movl (%ebx), %edi 2646 movl 4(%ebx), %esi 2647 2648 /* FP */ 2649 roll $2, %esi 2650 roll $3, %edi 2651 movl %edi, %eax 2652 xorl %esi, %edi 2653 andl $0xaaaaaaaa, %edi 2654 xorl %edi, %eax 2655 xorl %edi, %esi 2656 2657 roll $23, %eax 2658 movl %eax, %edi 2659 xorl %esi, %eax 2660 andl $0x03fc03fc, %eax 2661 xorl %eax, %edi 2662 xorl %eax, %esi 2663 2664 roll $10, %edi 2665 movl %edi, %eax 2666 xorl %esi, %edi 2667 andl $0x33333333, %edi 2668 xorl %edi, %eax 2669 xorl %edi, %esi 2670 2671 roll $18, %esi 2672 movl %esi, %edi 2673 xorl %eax, %esi 2674 andl $0xfff0000f, %esi 2675 xorl %esi, %edi 2676 xorl %esi, %eax 2677 2678 roll $12, %edi 2679 movl %edi, %esi 2680 xorl %eax, %edi 2681 andl $0xf0f0f0f0, %edi 2682 xorl %edi, %esi 2683 xorl %edi, %eax 2684 2685 rorl $4, %eax 2686 movl %eax, (%ebx) 2687 movl %esi, 4(%ebx) 2688 popl %edi 2689 popl %esi 2690 popl %ebp 2691 popl %ebx 2692 ret 2693END(des_encrypt3) 2694 2695ENTRY(des_decrypt3) 2696 pushl %ebx 2697 movl 8(%esp), %ebx 2698 pushl %ebp 2699 pushl %esi 2700 pushl %edi 2701 2702 /* Load the data words */ 2703 movl (%ebx), %edi 2704 movl 4(%ebx), %esi 2705 subl $12, %esp 2706 2707 /* IP */ 2708 roll $4, %edi 2709 movl %edi, %edx 2710 xorl %esi, %edi 2711 andl $0xf0f0f0f0, %edi 2712 xorl %edi, %edx 2713 xorl %edi, %esi 2714 2715 roll $20, %esi 2716 movl %esi, %edi 2717 xorl %edx, %esi 2718 andl $0xfff0000f, %esi 2719 xorl %esi, %edi 2720 xorl %esi, %edx 2721 2722 roll $14, %edi 2723 movl %edi, %esi 2724 xorl %edx, %edi 2725 andl $0x33333333, %edi 2726 xorl %edi, %esi 2727 xorl %edi, %edx 2728 2729 roll $22, %edx 2730 movl %edx, %edi 2731 xorl %esi, %edx 2732 andl $0x03fc03fc, %edx 2733 xorl %edx, %edi 2734 xorl %edx, %esi 2735 2736 roll $9, %edi 2737 movl %edi, %edx 2738 xorl %esi, %edi 2739 andl $0xaaaaaaaa, %edi 2740 xorl %edi, %edx 2741 xorl %edi, %esi 2742 2743 rorl $3, %edx 2744 rorl $2, %esi 2745 movl %esi, 4(%ebx) 2746 movl 36(%esp), %esi 2747 movl %edx, (%ebx) 2748 movl 40(%esp), %edi 2749 movl 44(%esp), %eax 2750 movl $0, 8(%esp) 2751 movl %eax, 4(%esp) 2752 movl %ebx, (%esp) 2753 call _C_LABEL(des_encrypt2) 2754 movl $1, 8(%esp) 2755 movl %edi, 4(%esp) 2756 movl %ebx, (%esp) 2757 call _C_LABEL(des_encrypt2) 2758 movl $0, 8(%esp) 2759 movl %esi, 4(%esp) 2760 movl %ebx, (%esp) 2761 call _C_LABEL(des_encrypt2) 2762 addl $12, %esp 2763 movl (%ebx), %edi 2764 movl 4(%ebx), %esi 2765 2766 /* FP */ 2767 roll $2, %esi 2768 roll $3, %edi 2769 movl %edi, %eax 2770 xorl %esi, %edi 2771 andl $0xaaaaaaaa, %edi 2772 xorl %edi, %eax 2773 xorl %edi, %esi 2774 2775 roll $23, %eax 2776 movl %eax, %edi 2777 xorl %esi, %eax 2778 andl $0x03fc03fc, %eax 2779 xorl %eax, %edi 2780 xorl %eax, %esi 2781 2782 roll $10, %edi 2783 movl %edi, %eax 2784 xorl %esi, %edi 2785 andl $0x33333333, %edi 2786 xorl %edi, %eax 2787 xorl %edi, %esi 2788 2789 roll $18, %esi 2790 movl %esi, %edi 2791 xorl %eax, %esi 2792 andl $0xfff0000f, %esi 2793 xorl %esi, %edi 2794 xorl %esi, %eax 2795 2796 roll $12, %edi 2797 movl %edi, %esi 2798 xorl %eax, %edi 2799 andl $0xf0f0f0f0, %edi 2800 xorl %edi, %esi 2801 xorl %edi, %eax 2802 2803 rorl $4, %eax 2804 movl %eax, (%ebx) 2805 movl %esi, 4(%ebx) 2806 popl %edi 2807 popl %esi 2808 popl %ebp 2809 popl %ebx 2810 ret 2811END(des_decrypt3) 2812