1/* $NetBSD: des_enc.S,v 1.1 2001/09/09 11:01:02 tls Exp $ */ 2 3/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com) 4 * All rights reserved. 5 * 6 * This package is an SSL implementation written 7 * by Eric Young (eay@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@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@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@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@netbsd.org> 63 */ 64 65#include <i386/include/asm.h> 66#define _C_LABEL CNAME 67 68ENTRY(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 1356END(des_encrypt1) 1357 1358ENTRY(des_encrypt2) 1359 pushl %esi 1360 pushl %edi 1361 1362 /* Load the 2 words */ 1363 movl 12(%esp), %eax 1364 xorl %ecx, %ecx 1365 pushl %ebx 1366 pushl %ebp 1367 movl (%eax), %esi 1368 movl 28(%esp), %ebx 1369 roll $3, %esi 1370 movl 4(%eax), %edi 1371 roll $3, %edi 1372 movl 24(%esp), %ebp 1373 cmpl $0, %ebx 1374 je .L002start_decrypt 1375 1376 /* Round 0 */ 1377 movl (%ebp), %eax 1378 xorl %ebx, %ebx 1379 movl 4(%ebp), %edx 1380 xorl %esi, %eax 1381 xorl %esi, %edx 1382 andl $0xfcfcfcfc, %eax 1383 andl $0xcfcfcfcf, %edx 1384 movb %al, %bl 1385 movb %ah, %cl 1386 rorl $4, %edx 1387 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1388 movb %dl, %bl 1389 xorl %ebp, %edi 1390 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1391 xorl %ebp, %edi 1392 movb %dh, %cl 1393 shrl $16, %eax 1394 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1395 xorl %ebp, %edi 1396 movb %ah, %bl 1397 shrl $16, %edx 1398 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1399 xorl %ebp, %edi 1400 movl 24(%esp), %ebp 1401 movb %dh, %cl 1402 andl $0xff, %eax 1403 andl $0xff, %edx 1404 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1405 xorl %ebx, %edi 1406 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1407 xorl %ebx, %edi 1408 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1409 xorl %ebx, %edi 1410 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1411 xorl %ebx, %edi 1412 1413 /* Round 1 */ 1414 movl 8(%ebp), %eax 1415 xorl %ebx, %ebx 1416 movl 12(%ebp), %edx 1417 xorl %edi, %eax 1418 xorl %edi, %edx 1419 andl $0xfcfcfcfc, %eax 1420 andl $0xcfcfcfcf, %edx 1421 movb %al, %bl 1422 movb %ah, %cl 1423 rorl $4, %edx 1424 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1425 movb %dl, %bl 1426 xorl %ebp, %esi 1427 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1428 xorl %ebp, %esi 1429 movb %dh, %cl 1430 shrl $16, %eax 1431 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1432 xorl %ebp, %esi 1433 movb %ah, %bl 1434 shrl $16, %edx 1435 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1436 xorl %ebp, %esi 1437 movl 24(%esp), %ebp 1438 movb %dh, %cl 1439 andl $0xff, %eax 1440 andl $0xff, %edx 1441 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1442 xorl %ebx, %esi 1443 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1444 xorl %ebx, %esi 1445 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1446 xorl %ebx, %esi 1447 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1448 xorl %ebx, %esi 1449 1450 /* Round 2 */ 1451 movl 16(%ebp), %eax 1452 xorl %ebx, %ebx 1453 movl 20(%ebp), %edx 1454 xorl %esi, %eax 1455 xorl %esi, %edx 1456 andl $0xfcfcfcfc, %eax 1457 andl $0xcfcfcfcf, %edx 1458 movb %al, %bl 1459 movb %ah, %cl 1460 rorl $4, %edx 1461 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1462 movb %dl, %bl 1463 xorl %ebp, %edi 1464 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1465 xorl %ebp, %edi 1466 movb %dh, %cl 1467 shrl $16, %eax 1468 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1469 xorl %ebp, %edi 1470 movb %ah, %bl 1471 shrl $16, %edx 1472 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1473 xorl %ebp, %edi 1474 movl 24(%esp), %ebp 1475 movb %dh, %cl 1476 andl $0xff, %eax 1477 andl $0xff, %edx 1478 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1479 xorl %ebx, %edi 1480 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1481 xorl %ebx, %edi 1482 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1483 xorl %ebx, %edi 1484 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1485 xorl %ebx, %edi 1486 1487 /* Round 3 */ 1488 movl 24(%ebp), %eax 1489 xorl %ebx, %ebx 1490 movl 28(%ebp), %edx 1491 xorl %edi, %eax 1492 xorl %edi, %edx 1493 andl $0xfcfcfcfc, %eax 1494 andl $0xcfcfcfcf, %edx 1495 movb %al, %bl 1496 movb %ah, %cl 1497 rorl $4, %edx 1498 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1499 movb %dl, %bl 1500 xorl %ebp, %esi 1501 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1502 xorl %ebp, %esi 1503 movb %dh, %cl 1504 shrl $16, %eax 1505 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1506 xorl %ebp, %esi 1507 movb %ah, %bl 1508 shrl $16, %edx 1509 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1510 xorl %ebp, %esi 1511 movl 24(%esp), %ebp 1512 movb %dh, %cl 1513 andl $0xff, %eax 1514 andl $0xff, %edx 1515 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1516 xorl %ebx, %esi 1517 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1518 xorl %ebx, %esi 1519 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1520 xorl %ebx, %esi 1521 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1522 xorl %ebx, %esi 1523 1524 /* Round 4 */ 1525 movl 32(%ebp), %eax 1526 xorl %ebx, %ebx 1527 movl 36(%ebp), %edx 1528 xorl %esi, %eax 1529 xorl %esi, %edx 1530 andl $0xfcfcfcfc, %eax 1531 andl $0xcfcfcfcf, %edx 1532 movb %al, %bl 1533 movb %ah, %cl 1534 rorl $4, %edx 1535 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1536 movb %dl, %bl 1537 xorl %ebp, %edi 1538 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1539 xorl %ebp, %edi 1540 movb %dh, %cl 1541 shrl $16, %eax 1542 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1543 xorl %ebp, %edi 1544 movb %ah, %bl 1545 shrl $16, %edx 1546 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1547 xorl %ebp, %edi 1548 movl 24(%esp), %ebp 1549 movb %dh, %cl 1550 andl $0xff, %eax 1551 andl $0xff, %edx 1552 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1553 xorl %ebx, %edi 1554 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1555 xorl %ebx, %edi 1556 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1557 xorl %ebx, %edi 1558 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1559 xorl %ebx, %edi 1560 1561 /* Round 5 */ 1562 movl 40(%ebp), %eax 1563 xorl %ebx, %ebx 1564 movl 44(%ebp), %edx 1565 xorl %edi, %eax 1566 xorl %edi, %edx 1567 andl $0xfcfcfcfc, %eax 1568 andl $0xcfcfcfcf, %edx 1569 movb %al, %bl 1570 movb %ah, %cl 1571 rorl $4, %edx 1572 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1573 movb %dl, %bl 1574 xorl %ebp, %esi 1575 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1576 xorl %ebp, %esi 1577 movb %dh, %cl 1578 shrl $16, %eax 1579 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1580 xorl %ebp, %esi 1581 movb %ah, %bl 1582 shrl $16, %edx 1583 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1584 xorl %ebp, %esi 1585 movl 24(%esp), %ebp 1586 movb %dh, %cl 1587 andl $0xff, %eax 1588 andl $0xff, %edx 1589 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1590 xorl %ebx, %esi 1591 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1592 xorl %ebx, %esi 1593 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1594 xorl %ebx, %esi 1595 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1596 xorl %ebx, %esi 1597 1598 /* Round 6 */ 1599 movl 48(%ebp), %eax 1600 xorl %ebx, %ebx 1601 movl 52(%ebp), %edx 1602 xorl %esi, %eax 1603 xorl %esi, %edx 1604 andl $0xfcfcfcfc, %eax 1605 andl $0xcfcfcfcf, %edx 1606 movb %al, %bl 1607 movb %ah, %cl 1608 rorl $4, %edx 1609 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1610 movb %dl, %bl 1611 xorl %ebp, %edi 1612 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1613 xorl %ebp, %edi 1614 movb %dh, %cl 1615 shrl $16, %eax 1616 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1617 xorl %ebp, %edi 1618 movb %ah, %bl 1619 shrl $16, %edx 1620 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1621 xorl %ebp, %edi 1622 movl 24(%esp), %ebp 1623 movb %dh, %cl 1624 andl $0xff, %eax 1625 andl $0xff, %edx 1626 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1627 xorl %ebx, %edi 1628 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1629 xorl %ebx, %edi 1630 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1631 xorl %ebx, %edi 1632 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1633 xorl %ebx, %edi 1634 1635 /* Round 7 */ 1636 movl 56(%ebp), %eax 1637 xorl %ebx, %ebx 1638 movl 60(%ebp), %edx 1639 xorl %edi, %eax 1640 xorl %edi, %edx 1641 andl $0xfcfcfcfc, %eax 1642 andl $0xcfcfcfcf, %edx 1643 movb %al, %bl 1644 movb %ah, %cl 1645 rorl $4, %edx 1646 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1647 movb %dl, %bl 1648 xorl %ebp, %esi 1649 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1650 xorl %ebp, %esi 1651 movb %dh, %cl 1652 shrl $16, %eax 1653 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1654 xorl %ebp, %esi 1655 movb %ah, %bl 1656 shrl $16, %edx 1657 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1658 xorl %ebp, %esi 1659 movl 24(%esp), %ebp 1660 movb %dh, %cl 1661 andl $0xff, %eax 1662 andl $0xff, %edx 1663 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1664 xorl %ebx, %esi 1665 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1666 xorl %ebx, %esi 1667 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1668 xorl %ebx, %esi 1669 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1670 xorl %ebx, %esi 1671 1672 /* Round 8 */ 1673 movl 64(%ebp), %eax 1674 xorl %ebx, %ebx 1675 movl 68(%ebp), %edx 1676 xorl %esi, %eax 1677 xorl %esi, %edx 1678 andl $0xfcfcfcfc, %eax 1679 andl $0xcfcfcfcf, %edx 1680 movb %al, %bl 1681 movb %ah, %cl 1682 rorl $4, %edx 1683 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1684 movb %dl, %bl 1685 xorl %ebp, %edi 1686 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1687 xorl %ebp, %edi 1688 movb %dh, %cl 1689 shrl $16, %eax 1690 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1691 xorl %ebp, %edi 1692 movb %ah, %bl 1693 shrl $16, %edx 1694 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1695 xorl %ebp, %edi 1696 movl 24(%esp), %ebp 1697 movb %dh, %cl 1698 andl $0xff, %eax 1699 andl $0xff, %edx 1700 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1701 xorl %ebx, %edi 1702 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1703 xorl %ebx, %edi 1704 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1705 xorl %ebx, %edi 1706 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1707 xorl %ebx, %edi 1708 1709 /* Round 9 */ 1710 movl 72(%ebp), %eax 1711 xorl %ebx, %ebx 1712 movl 76(%ebp), %edx 1713 xorl %edi, %eax 1714 xorl %edi, %edx 1715 andl $0xfcfcfcfc, %eax 1716 andl $0xcfcfcfcf, %edx 1717 movb %al, %bl 1718 movb %ah, %cl 1719 rorl $4, %edx 1720 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1721 movb %dl, %bl 1722 xorl %ebp, %esi 1723 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1724 xorl %ebp, %esi 1725 movb %dh, %cl 1726 shrl $16, %eax 1727 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1728 xorl %ebp, %esi 1729 movb %ah, %bl 1730 shrl $16, %edx 1731 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1732 xorl %ebp, %esi 1733 movl 24(%esp), %ebp 1734 movb %dh, %cl 1735 andl $0xff, %eax 1736 andl $0xff, %edx 1737 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1738 xorl %ebx, %esi 1739 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1740 xorl %ebx, %esi 1741 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1742 xorl %ebx, %esi 1743 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1744 xorl %ebx, %esi 1745 1746 /* Round 10 */ 1747 movl 80(%ebp), %eax 1748 xorl %ebx, %ebx 1749 movl 84(%ebp), %edx 1750 xorl %esi, %eax 1751 xorl %esi, %edx 1752 andl $0xfcfcfcfc, %eax 1753 andl $0xcfcfcfcf, %edx 1754 movb %al, %bl 1755 movb %ah, %cl 1756 rorl $4, %edx 1757 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1758 movb %dl, %bl 1759 xorl %ebp, %edi 1760 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1761 xorl %ebp, %edi 1762 movb %dh, %cl 1763 shrl $16, %eax 1764 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1765 xorl %ebp, %edi 1766 movb %ah, %bl 1767 shrl $16, %edx 1768 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1769 xorl %ebp, %edi 1770 movl 24(%esp), %ebp 1771 movb %dh, %cl 1772 andl $0xff, %eax 1773 andl $0xff, %edx 1774 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1775 xorl %ebx, %edi 1776 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1777 xorl %ebx, %edi 1778 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1779 xorl %ebx, %edi 1780 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1781 xorl %ebx, %edi 1782 1783 /* Round 11 */ 1784 movl 88(%ebp), %eax 1785 xorl %ebx, %ebx 1786 movl 92(%ebp), %edx 1787 xorl %edi, %eax 1788 xorl %edi, %edx 1789 andl $0xfcfcfcfc, %eax 1790 andl $0xcfcfcfcf, %edx 1791 movb %al, %bl 1792 movb %ah, %cl 1793 rorl $4, %edx 1794 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1795 movb %dl, %bl 1796 xorl %ebp, %esi 1797 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1798 xorl %ebp, %esi 1799 movb %dh, %cl 1800 shrl $16, %eax 1801 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1802 xorl %ebp, %esi 1803 movb %ah, %bl 1804 shrl $16, %edx 1805 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1806 xorl %ebp, %esi 1807 movl 24(%esp), %ebp 1808 movb %dh, %cl 1809 andl $0xff, %eax 1810 andl $0xff, %edx 1811 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1812 xorl %ebx, %esi 1813 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1814 xorl %ebx, %esi 1815 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1816 xorl %ebx, %esi 1817 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1818 xorl %ebx, %esi 1819 1820 /* Round 12 */ 1821 movl 96(%ebp), %eax 1822 xorl %ebx, %ebx 1823 movl 100(%ebp), %edx 1824 xorl %esi, %eax 1825 xorl %esi, %edx 1826 andl $0xfcfcfcfc, %eax 1827 andl $0xcfcfcfcf, %edx 1828 movb %al, %bl 1829 movb %ah, %cl 1830 rorl $4, %edx 1831 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1832 movb %dl, %bl 1833 xorl %ebp, %edi 1834 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1835 xorl %ebp, %edi 1836 movb %dh, %cl 1837 shrl $16, %eax 1838 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1839 xorl %ebp, %edi 1840 movb %ah, %bl 1841 shrl $16, %edx 1842 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1843 xorl %ebp, %edi 1844 movl 24(%esp), %ebp 1845 movb %dh, %cl 1846 andl $0xff, %eax 1847 andl $0xff, %edx 1848 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1849 xorl %ebx, %edi 1850 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1851 xorl %ebx, %edi 1852 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1853 xorl %ebx, %edi 1854 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1855 xorl %ebx, %edi 1856 1857 /* Round 13 */ 1858 movl 104(%ebp), %eax 1859 xorl %ebx, %ebx 1860 movl 108(%ebp), %edx 1861 xorl %edi, %eax 1862 xorl %edi, %edx 1863 andl $0xfcfcfcfc, %eax 1864 andl $0xcfcfcfcf, %edx 1865 movb %al, %bl 1866 movb %ah, %cl 1867 rorl $4, %edx 1868 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1869 movb %dl, %bl 1870 xorl %ebp, %esi 1871 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1872 xorl %ebp, %esi 1873 movb %dh, %cl 1874 shrl $16, %eax 1875 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1876 xorl %ebp, %esi 1877 movb %ah, %bl 1878 shrl $16, %edx 1879 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1880 xorl %ebp, %esi 1881 movl 24(%esp), %ebp 1882 movb %dh, %cl 1883 andl $0xff, %eax 1884 andl $0xff, %edx 1885 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1886 xorl %ebx, %esi 1887 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1888 xorl %ebx, %esi 1889 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1890 xorl %ebx, %esi 1891 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1892 xorl %ebx, %esi 1893 1894 /* Round 14 */ 1895 movl 112(%ebp), %eax 1896 xorl %ebx, %ebx 1897 movl 116(%ebp), %edx 1898 xorl %esi, %eax 1899 xorl %esi, %edx 1900 andl $0xfcfcfcfc, %eax 1901 andl $0xcfcfcfcf, %edx 1902 movb %al, %bl 1903 movb %ah, %cl 1904 rorl $4, %edx 1905 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1906 movb %dl, %bl 1907 xorl %ebp, %edi 1908 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1909 xorl %ebp, %edi 1910 movb %dh, %cl 1911 shrl $16, %eax 1912 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1913 xorl %ebp, %edi 1914 movb %ah, %bl 1915 shrl $16, %edx 1916 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1917 xorl %ebp, %edi 1918 movl 24(%esp), %ebp 1919 movb %dh, %cl 1920 andl $0xff, %eax 1921 andl $0xff, %edx 1922 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1923 xorl %ebx, %edi 1924 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1925 xorl %ebx, %edi 1926 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1927 xorl %ebx, %edi 1928 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1929 xorl %ebx, %edi 1930 1931 /* Round 15 */ 1932 movl 120(%ebp), %eax 1933 xorl %ebx, %ebx 1934 movl 124(%ebp), %edx 1935 xorl %edi, %eax 1936 xorl %edi, %edx 1937 andl $0xfcfcfcfc, %eax 1938 andl $0xcfcfcfcf, %edx 1939 movb %al, %bl 1940 movb %ah, %cl 1941 rorl $4, %edx 1942 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1943 movb %dl, %bl 1944 xorl %ebp, %esi 1945 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1946 xorl %ebp, %esi 1947 movb %dh, %cl 1948 shrl $16, %eax 1949 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1950 xorl %ebp, %esi 1951 movb %ah, %bl 1952 shrl $16, %edx 1953 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1954 xorl %ebp, %esi 1955 movl 24(%esp), %ebp 1956 movb %dh, %cl 1957 andl $0xff, %eax 1958 andl $0xff, %edx 1959 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1960 xorl %ebx, %esi 1961 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 1962 xorl %ebx, %esi 1963 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 1964 xorl %ebx, %esi 1965 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 1966 xorl %ebx, %esi 1967 jmp .L003end 1968.L002start_decrypt: 1969 1970 /* Round 15 */ 1971 movl 120(%ebp), %eax 1972 xorl %ebx, %ebx 1973 movl 124(%ebp), %edx 1974 xorl %esi, %eax 1975 xorl %esi, %edx 1976 andl $0xfcfcfcfc, %eax 1977 andl $0xcfcfcfcf, %edx 1978 movb %al, %bl 1979 movb %ah, %cl 1980 rorl $4, %edx 1981 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 1982 movb %dl, %bl 1983 xorl %ebp, %edi 1984 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 1985 xorl %ebp, %edi 1986 movb %dh, %cl 1987 shrl $16, %eax 1988 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 1989 xorl %ebp, %edi 1990 movb %ah, %bl 1991 shrl $16, %edx 1992 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 1993 xorl %ebp, %edi 1994 movl 24(%esp), %ebp 1995 movb %dh, %cl 1996 andl $0xff, %eax 1997 andl $0xff, %edx 1998 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 1999 xorl %ebx, %edi 2000 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2001 xorl %ebx, %edi 2002 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2003 xorl %ebx, %edi 2004 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2005 xorl %ebx, %edi 2006 2007 /* Round 14 */ 2008 movl 112(%ebp), %eax 2009 xorl %ebx, %ebx 2010 movl 116(%ebp), %edx 2011 xorl %edi, %eax 2012 xorl %edi, %edx 2013 andl $0xfcfcfcfc, %eax 2014 andl $0xcfcfcfcf, %edx 2015 movb %al, %bl 2016 movb %ah, %cl 2017 rorl $4, %edx 2018 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2019 movb %dl, %bl 2020 xorl %ebp, %esi 2021 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2022 xorl %ebp, %esi 2023 movb %dh, %cl 2024 shrl $16, %eax 2025 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2026 xorl %ebp, %esi 2027 movb %ah, %bl 2028 shrl $16, %edx 2029 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2030 xorl %ebp, %esi 2031 movl 24(%esp), %ebp 2032 movb %dh, %cl 2033 andl $0xff, %eax 2034 andl $0xff, %edx 2035 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2036 xorl %ebx, %esi 2037 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2038 xorl %ebx, %esi 2039 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2040 xorl %ebx, %esi 2041 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2042 xorl %ebx, %esi 2043 2044 /* Round 13 */ 2045 movl 104(%ebp), %eax 2046 xorl %ebx, %ebx 2047 movl 108(%ebp), %edx 2048 xorl %esi, %eax 2049 xorl %esi, %edx 2050 andl $0xfcfcfcfc, %eax 2051 andl $0xcfcfcfcf, %edx 2052 movb %al, %bl 2053 movb %ah, %cl 2054 rorl $4, %edx 2055 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2056 movb %dl, %bl 2057 xorl %ebp, %edi 2058 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2059 xorl %ebp, %edi 2060 movb %dh, %cl 2061 shrl $16, %eax 2062 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2063 xorl %ebp, %edi 2064 movb %ah, %bl 2065 shrl $16, %edx 2066 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2067 xorl %ebp, %edi 2068 movl 24(%esp), %ebp 2069 movb %dh, %cl 2070 andl $0xff, %eax 2071 andl $0xff, %edx 2072 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2073 xorl %ebx, %edi 2074 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2075 xorl %ebx, %edi 2076 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2077 xorl %ebx, %edi 2078 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2079 xorl %ebx, %edi 2080 2081 /* Round 12 */ 2082 movl 96(%ebp), %eax 2083 xorl %ebx, %ebx 2084 movl 100(%ebp), %edx 2085 xorl %edi, %eax 2086 xorl %edi, %edx 2087 andl $0xfcfcfcfc, %eax 2088 andl $0xcfcfcfcf, %edx 2089 movb %al, %bl 2090 movb %ah, %cl 2091 rorl $4, %edx 2092 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2093 movb %dl, %bl 2094 xorl %ebp, %esi 2095 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2096 xorl %ebp, %esi 2097 movb %dh, %cl 2098 shrl $16, %eax 2099 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2100 xorl %ebp, %esi 2101 movb %ah, %bl 2102 shrl $16, %edx 2103 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2104 xorl %ebp, %esi 2105 movl 24(%esp), %ebp 2106 movb %dh, %cl 2107 andl $0xff, %eax 2108 andl $0xff, %edx 2109 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2110 xorl %ebx, %esi 2111 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2112 xorl %ebx, %esi 2113 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2114 xorl %ebx, %esi 2115 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2116 xorl %ebx, %esi 2117 2118 /* Round 11 */ 2119 movl 88(%ebp), %eax 2120 xorl %ebx, %ebx 2121 movl 92(%ebp), %edx 2122 xorl %esi, %eax 2123 xorl %esi, %edx 2124 andl $0xfcfcfcfc, %eax 2125 andl $0xcfcfcfcf, %edx 2126 movb %al, %bl 2127 movb %ah, %cl 2128 rorl $4, %edx 2129 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2130 movb %dl, %bl 2131 xorl %ebp, %edi 2132 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2133 xorl %ebp, %edi 2134 movb %dh, %cl 2135 shrl $16, %eax 2136 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2137 xorl %ebp, %edi 2138 movb %ah, %bl 2139 shrl $16, %edx 2140 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2141 xorl %ebp, %edi 2142 movl 24(%esp), %ebp 2143 movb %dh, %cl 2144 andl $0xff, %eax 2145 andl $0xff, %edx 2146 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2147 xorl %ebx, %edi 2148 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2149 xorl %ebx, %edi 2150 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2151 xorl %ebx, %edi 2152 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2153 xorl %ebx, %edi 2154 2155 /* Round 10 */ 2156 movl 80(%ebp), %eax 2157 xorl %ebx, %ebx 2158 movl 84(%ebp), %edx 2159 xorl %edi, %eax 2160 xorl %edi, %edx 2161 andl $0xfcfcfcfc, %eax 2162 andl $0xcfcfcfcf, %edx 2163 movb %al, %bl 2164 movb %ah, %cl 2165 rorl $4, %edx 2166 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2167 movb %dl, %bl 2168 xorl %ebp, %esi 2169 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2170 xorl %ebp, %esi 2171 movb %dh, %cl 2172 shrl $16, %eax 2173 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2174 xorl %ebp, %esi 2175 movb %ah, %bl 2176 shrl $16, %edx 2177 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2178 xorl %ebp, %esi 2179 movl 24(%esp), %ebp 2180 movb %dh, %cl 2181 andl $0xff, %eax 2182 andl $0xff, %edx 2183 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2184 xorl %ebx, %esi 2185 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2186 xorl %ebx, %esi 2187 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2188 xorl %ebx, %esi 2189 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2190 xorl %ebx, %esi 2191 2192 /* Round 9 */ 2193 movl 72(%ebp), %eax 2194 xorl %ebx, %ebx 2195 movl 76(%ebp), %edx 2196 xorl %esi, %eax 2197 xorl %esi, %edx 2198 andl $0xfcfcfcfc, %eax 2199 andl $0xcfcfcfcf, %edx 2200 movb %al, %bl 2201 movb %ah, %cl 2202 rorl $4, %edx 2203 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2204 movb %dl, %bl 2205 xorl %ebp, %edi 2206 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2207 xorl %ebp, %edi 2208 movb %dh, %cl 2209 shrl $16, %eax 2210 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2211 xorl %ebp, %edi 2212 movb %ah, %bl 2213 shrl $16, %edx 2214 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2215 xorl %ebp, %edi 2216 movl 24(%esp), %ebp 2217 movb %dh, %cl 2218 andl $0xff, %eax 2219 andl $0xff, %edx 2220 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2221 xorl %ebx, %edi 2222 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2223 xorl %ebx, %edi 2224 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2225 xorl %ebx, %edi 2226 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2227 xorl %ebx, %edi 2228 2229 /* Round 8 */ 2230 movl 64(%ebp), %eax 2231 xorl %ebx, %ebx 2232 movl 68(%ebp), %edx 2233 xorl %edi, %eax 2234 xorl %edi, %edx 2235 andl $0xfcfcfcfc, %eax 2236 andl $0xcfcfcfcf, %edx 2237 movb %al, %bl 2238 movb %ah, %cl 2239 rorl $4, %edx 2240 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2241 movb %dl, %bl 2242 xorl %ebp, %esi 2243 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2244 xorl %ebp, %esi 2245 movb %dh, %cl 2246 shrl $16, %eax 2247 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2248 xorl %ebp, %esi 2249 movb %ah, %bl 2250 shrl $16, %edx 2251 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2252 xorl %ebp, %esi 2253 movl 24(%esp), %ebp 2254 movb %dh, %cl 2255 andl $0xff, %eax 2256 andl $0xff, %edx 2257 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2258 xorl %ebx, %esi 2259 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2260 xorl %ebx, %esi 2261 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2262 xorl %ebx, %esi 2263 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2264 xorl %ebx, %esi 2265 2266 /* Round 7 */ 2267 movl 56(%ebp), %eax 2268 xorl %ebx, %ebx 2269 movl 60(%ebp), %edx 2270 xorl %esi, %eax 2271 xorl %esi, %edx 2272 andl $0xfcfcfcfc, %eax 2273 andl $0xcfcfcfcf, %edx 2274 movb %al, %bl 2275 movb %ah, %cl 2276 rorl $4, %edx 2277 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2278 movb %dl, %bl 2279 xorl %ebp, %edi 2280 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2281 xorl %ebp, %edi 2282 movb %dh, %cl 2283 shrl $16, %eax 2284 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2285 xorl %ebp, %edi 2286 movb %ah, %bl 2287 shrl $16, %edx 2288 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2289 xorl %ebp, %edi 2290 movl 24(%esp), %ebp 2291 movb %dh, %cl 2292 andl $0xff, %eax 2293 andl $0xff, %edx 2294 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2295 xorl %ebx, %edi 2296 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2297 xorl %ebx, %edi 2298 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2299 xorl %ebx, %edi 2300 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2301 xorl %ebx, %edi 2302 2303 /* Round 6 */ 2304 movl 48(%ebp), %eax 2305 xorl %ebx, %ebx 2306 movl 52(%ebp), %edx 2307 xorl %edi, %eax 2308 xorl %edi, %edx 2309 andl $0xfcfcfcfc, %eax 2310 andl $0xcfcfcfcf, %edx 2311 movb %al, %bl 2312 movb %ah, %cl 2313 rorl $4, %edx 2314 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2315 movb %dl, %bl 2316 xorl %ebp, %esi 2317 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2318 xorl %ebp, %esi 2319 movb %dh, %cl 2320 shrl $16, %eax 2321 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2322 xorl %ebp, %esi 2323 movb %ah, %bl 2324 shrl $16, %edx 2325 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2326 xorl %ebp, %esi 2327 movl 24(%esp), %ebp 2328 movb %dh, %cl 2329 andl $0xff, %eax 2330 andl $0xff, %edx 2331 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2332 xorl %ebx, %esi 2333 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2334 xorl %ebx, %esi 2335 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2336 xorl %ebx, %esi 2337 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2338 xorl %ebx, %esi 2339 2340 /* Round 5 */ 2341 movl 40(%ebp), %eax 2342 xorl %ebx, %ebx 2343 movl 44(%ebp), %edx 2344 xorl %esi, %eax 2345 xorl %esi, %edx 2346 andl $0xfcfcfcfc, %eax 2347 andl $0xcfcfcfcf, %edx 2348 movb %al, %bl 2349 movb %ah, %cl 2350 rorl $4, %edx 2351 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2352 movb %dl, %bl 2353 xorl %ebp, %edi 2354 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2355 xorl %ebp, %edi 2356 movb %dh, %cl 2357 shrl $16, %eax 2358 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2359 xorl %ebp, %edi 2360 movb %ah, %bl 2361 shrl $16, %edx 2362 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2363 xorl %ebp, %edi 2364 movl 24(%esp), %ebp 2365 movb %dh, %cl 2366 andl $0xff, %eax 2367 andl $0xff, %edx 2368 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2369 xorl %ebx, %edi 2370 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2371 xorl %ebx, %edi 2372 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2373 xorl %ebx, %edi 2374 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2375 xorl %ebx, %edi 2376 2377 /* Round 4 */ 2378 movl 32(%ebp), %eax 2379 xorl %ebx, %ebx 2380 movl 36(%ebp), %edx 2381 xorl %edi, %eax 2382 xorl %edi, %edx 2383 andl $0xfcfcfcfc, %eax 2384 andl $0xcfcfcfcf, %edx 2385 movb %al, %bl 2386 movb %ah, %cl 2387 rorl $4, %edx 2388 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2389 movb %dl, %bl 2390 xorl %ebp, %esi 2391 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2392 xorl %ebp, %esi 2393 movb %dh, %cl 2394 shrl $16, %eax 2395 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2396 xorl %ebp, %esi 2397 movb %ah, %bl 2398 shrl $16, %edx 2399 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2400 xorl %ebp, %esi 2401 movl 24(%esp), %ebp 2402 movb %dh, %cl 2403 andl $0xff, %eax 2404 andl $0xff, %edx 2405 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2406 xorl %ebx, %esi 2407 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2408 xorl %ebx, %esi 2409 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2410 xorl %ebx, %esi 2411 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2412 xorl %ebx, %esi 2413 2414 /* Round 3 */ 2415 movl 24(%ebp), %eax 2416 xorl %ebx, %ebx 2417 movl 28(%ebp), %edx 2418 xorl %esi, %eax 2419 xorl %esi, %edx 2420 andl $0xfcfcfcfc, %eax 2421 andl $0xcfcfcfcf, %edx 2422 movb %al, %bl 2423 movb %ah, %cl 2424 rorl $4, %edx 2425 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2426 movb %dl, %bl 2427 xorl %ebp, %edi 2428 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2429 xorl %ebp, %edi 2430 movb %dh, %cl 2431 shrl $16, %eax 2432 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2433 xorl %ebp, %edi 2434 movb %ah, %bl 2435 shrl $16, %edx 2436 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2437 xorl %ebp, %edi 2438 movl 24(%esp), %ebp 2439 movb %dh, %cl 2440 andl $0xff, %eax 2441 andl $0xff, %edx 2442 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2443 xorl %ebx, %edi 2444 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2445 xorl %ebx, %edi 2446 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2447 xorl %ebx, %edi 2448 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2449 xorl %ebx, %edi 2450 2451 /* Round 2 */ 2452 movl 16(%ebp), %eax 2453 xorl %ebx, %ebx 2454 movl 20(%ebp), %edx 2455 xorl %edi, %eax 2456 xorl %edi, %edx 2457 andl $0xfcfcfcfc, %eax 2458 andl $0xcfcfcfcf, %edx 2459 movb %al, %bl 2460 movb %ah, %cl 2461 rorl $4, %edx 2462 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2463 movb %dl, %bl 2464 xorl %ebp, %esi 2465 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2466 xorl %ebp, %esi 2467 movb %dh, %cl 2468 shrl $16, %eax 2469 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2470 xorl %ebp, %esi 2471 movb %ah, %bl 2472 shrl $16, %edx 2473 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2474 xorl %ebp, %esi 2475 movl 24(%esp), %ebp 2476 movb %dh, %cl 2477 andl $0xff, %eax 2478 andl $0xff, %edx 2479 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2480 xorl %ebx, %esi 2481 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2482 xorl %ebx, %esi 2483 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2484 xorl %ebx, %esi 2485 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2486 xorl %ebx, %esi 2487 2488 /* Round 1 */ 2489 movl 8(%ebp), %eax 2490 xorl %ebx, %ebx 2491 movl 12(%ebp), %edx 2492 xorl %esi, %eax 2493 xorl %esi, %edx 2494 andl $0xfcfcfcfc, %eax 2495 andl $0xcfcfcfcf, %edx 2496 movb %al, %bl 2497 movb %ah, %cl 2498 rorl $4, %edx 2499 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2500 movb %dl, %bl 2501 xorl %ebp, %edi 2502 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2503 xorl %ebp, %edi 2504 movb %dh, %cl 2505 shrl $16, %eax 2506 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2507 xorl %ebp, %edi 2508 movb %ah, %bl 2509 shrl $16, %edx 2510 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2511 xorl %ebp, %edi 2512 movl 24(%esp), %ebp 2513 movb %dh, %cl 2514 andl $0xff, %eax 2515 andl $0xff, %edx 2516 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2517 xorl %ebx, %edi 2518 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2519 xorl %ebx, %edi 2520 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2521 xorl %ebx, %edi 2522 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2523 xorl %ebx, %edi 2524 2525 /* Round 0 */ 2526 movl (%ebp), %eax 2527 xorl %ebx, %ebx 2528 movl 4(%ebp), %edx 2529 xorl %edi, %eax 2530 xorl %edi, %edx 2531 andl $0xfcfcfcfc, %eax 2532 andl $0xcfcfcfcf, %edx 2533 movb %al, %bl 2534 movb %ah, %cl 2535 rorl $4, %edx 2536 movl _C_LABEL(des_SPtrans)(%ebx),%ebp 2537 movb %dl, %bl 2538 xorl %ebp, %esi 2539 movl 0x200+_C_LABEL(des_SPtrans)(%ecx),%ebp 2540 xorl %ebp, %esi 2541 movb %dh, %cl 2542 shrl $16, %eax 2543 movl 0x100+_C_LABEL(des_SPtrans)(%ebx),%ebp 2544 xorl %ebp, %esi 2545 movb %ah, %bl 2546 shrl $16, %edx 2547 movl 0x300+_C_LABEL(des_SPtrans)(%ecx),%ebp 2548 xorl %ebp, %esi 2549 movl 24(%esp), %ebp 2550 movb %dh, %cl 2551 andl $0xff, %eax 2552 andl $0xff, %edx 2553 movl 0x600+_C_LABEL(des_SPtrans)(%ebx),%ebx 2554 xorl %ebx, %esi 2555 movl 0x700+_C_LABEL(des_SPtrans)(%ecx),%ebx 2556 xorl %ebx, %esi 2557 movl 0x400+_C_LABEL(des_SPtrans)(%eax),%ebx 2558 xorl %ebx, %esi 2559 movl 0x500+_C_LABEL(des_SPtrans)(%edx),%ebx 2560 xorl %ebx, %esi 2561.L003end: 2562 2563 /* Fixup */ 2564 rorl $3, %edi 2565 movl 20(%esp), %eax 2566 rorl $3, %esi 2567 movl %edi, (%eax) 2568 movl %esi, 4(%eax) 2569 popl %ebp 2570 popl %ebx 2571 popl %edi 2572 popl %esi 2573 ret 2574END(des_encrypt2) 2575 2576ENTRY(des_encrypt3) 2577 pushl %ebx 2578 movl 8(%esp), %ebx 2579 pushl %ebp 2580 pushl %esi 2581 pushl %edi 2582 2583 /* Load the data words */ 2584 movl (%ebx), %edi 2585 movl 4(%ebx), %esi 2586 subl $12, %esp 2587 2588 /* IP */ 2589 roll $4, %edi 2590 movl %edi, %edx 2591 xorl %esi, %edi 2592 andl $0xf0f0f0f0, %edi 2593 xorl %edi, %edx 2594 xorl %edi, %esi 2595 2596 roll $20, %esi 2597 movl %esi, %edi 2598 xorl %edx, %esi 2599 andl $0xfff0000f, %esi 2600 xorl %esi, %edi 2601 xorl %esi, %edx 2602 2603 roll $14, %edi 2604 movl %edi, %esi 2605 xorl %edx, %edi 2606 andl $0x33333333, %edi 2607 xorl %edi, %esi 2608 xorl %edi, %edx 2609 2610 roll $22, %edx 2611 movl %edx, %edi 2612 xorl %esi, %edx 2613 andl $0x03fc03fc, %edx 2614 xorl %edx, %edi 2615 xorl %edx, %esi 2616 2617 roll $9, %edi 2618 movl %edi, %edx 2619 xorl %esi, %edi 2620 andl $0xaaaaaaaa, %edi 2621 xorl %edi, %edx 2622 xorl %edi, %esi 2623 2624 rorl $3, %edx 2625 rorl $2, %esi 2626 movl %esi, 4(%ebx) 2627 movl 36(%esp), %eax 2628 movl %edx, (%ebx) 2629 movl 40(%esp), %edi 2630 movl 44(%esp), %esi 2631 movl $1, 8(%esp) 2632 movl %eax, 4(%esp) 2633 movl %ebx, (%esp) 2634 call _C_LABEL(des_encrypt2) 2635 movl $0, 8(%esp) 2636 movl %edi, 4(%esp) 2637 movl %ebx, (%esp) 2638 call _C_LABEL(des_encrypt2) 2639 movl $1, 8(%esp) 2640 movl %esi, 4(%esp) 2641 movl %ebx, (%esp) 2642 call _C_LABEL(des_encrypt2) 2643 addl $12, %esp 2644 movl (%ebx), %edi 2645 movl 4(%ebx), %esi 2646 2647 /* FP */ 2648 roll $2, %esi 2649 roll $3, %edi 2650 movl %edi, %eax 2651 xorl %esi, %edi 2652 andl $0xaaaaaaaa, %edi 2653 xorl %edi, %eax 2654 xorl %edi, %esi 2655 2656 roll $23, %eax 2657 movl %eax, %edi 2658 xorl %esi, %eax 2659 andl $0x03fc03fc, %eax 2660 xorl %eax, %edi 2661 xorl %eax, %esi 2662 2663 roll $10, %edi 2664 movl %edi, %eax 2665 xorl %esi, %edi 2666 andl $0x33333333, %edi 2667 xorl %edi, %eax 2668 xorl %edi, %esi 2669 2670 roll $18, %esi 2671 movl %esi, %edi 2672 xorl %eax, %esi 2673 andl $0xfff0000f, %esi 2674 xorl %esi, %edi 2675 xorl %esi, %eax 2676 2677 roll $12, %edi 2678 movl %edi, %esi 2679 xorl %eax, %edi 2680 andl $0xf0f0f0f0, %edi 2681 xorl %edi, %esi 2682 xorl %edi, %eax 2683 2684 rorl $4, %eax 2685 movl %eax, (%ebx) 2686 movl %esi, 4(%ebx) 2687 popl %edi 2688 popl %esi 2689 popl %ebp 2690 popl %ebx 2691 ret 2692END(des_encrypt3) 2693 2694ENTRY(des_decrypt3) 2695 pushl %ebx 2696 movl 8(%esp), %ebx 2697 pushl %ebp 2698 pushl %esi 2699 pushl %edi 2700 2701 /* Load the data words */ 2702 movl (%ebx), %edi 2703 movl 4(%ebx), %esi 2704 subl $12, %esp 2705 2706 /* IP */ 2707 roll $4, %edi 2708 movl %edi, %edx 2709 xorl %esi, %edi 2710 andl $0xf0f0f0f0, %edi 2711 xorl %edi, %edx 2712 xorl %edi, %esi 2713 2714 roll $20, %esi 2715 movl %esi, %edi 2716 xorl %edx, %esi 2717 andl $0xfff0000f, %esi 2718 xorl %esi, %edi 2719 xorl %esi, %edx 2720 2721 roll $14, %edi 2722 movl %edi, %esi 2723 xorl %edx, %edi 2724 andl $0x33333333, %edi 2725 xorl %edi, %esi 2726 xorl %edi, %edx 2727 2728 roll $22, %edx 2729 movl %edx, %edi 2730 xorl %esi, %edx 2731 andl $0x03fc03fc, %edx 2732 xorl %edx, %edi 2733 xorl %edx, %esi 2734 2735 roll $9, %edi 2736 movl %edi, %edx 2737 xorl %esi, %edi 2738 andl $0xaaaaaaaa, %edi 2739 xorl %edi, %edx 2740 xorl %edi, %esi 2741 2742 rorl $3, %edx 2743 rorl $2, %esi 2744 movl %esi, 4(%ebx) 2745 movl 36(%esp), %esi 2746 movl %edx, (%ebx) 2747 movl 40(%esp), %edi 2748 movl 44(%esp), %eax 2749 movl $0, 8(%esp) 2750 movl %eax, 4(%esp) 2751 movl %ebx, (%esp) 2752 call _C_LABEL(des_encrypt2) 2753 movl $1, 8(%esp) 2754 movl %edi, 4(%esp) 2755 movl %ebx, (%esp) 2756 call _C_LABEL(des_encrypt2) 2757 movl $0, 8(%esp) 2758 movl %esi, 4(%esp) 2759 movl %ebx, (%esp) 2760 call _C_LABEL(des_encrypt2) 2761 addl $12, %esp 2762 movl (%ebx), %edi 2763 movl 4(%ebx), %esi 2764 2765 /* FP */ 2766 roll $2, %esi 2767 roll $3, %edi 2768 movl %edi, %eax 2769 xorl %esi, %edi 2770 andl $0xaaaaaaaa, %edi 2771 xorl %edi, %eax 2772 xorl %edi, %esi 2773 2774 roll $23, %eax 2775 movl %eax, %edi 2776 xorl %esi, %eax 2777 andl $0x03fc03fc, %eax 2778 xorl %eax, %edi 2779 xorl %eax, %esi 2780 2781 roll $10, %edi 2782 movl %edi, %eax 2783 xorl %esi, %edi 2784 andl $0x33333333, %edi 2785 xorl %edi, %eax 2786 xorl %edi, %esi 2787 2788 roll $18, %esi 2789 movl %esi, %edi 2790 xorl %eax, %esi 2791 andl $0xfff0000f, %esi 2792 xorl %esi, %edi 2793 xorl %esi, %eax 2794 2795 roll $12, %edi 2796 movl %edi, %esi 2797 xorl %eax, %edi 2798 andl $0xf0f0f0f0, %edi 2799 xorl %edi, %esi 2800 xorl %edi, %eax 2801 2802 rorl $4, %eax 2803 movl %eax, (%ebx) 2804 movl %esi, 4(%ebx) 2805 popl %edi 2806 popl %esi 2807 popl %ebp 2808 popl %ebx 2809 ret 2810END(des_decrypt3) 2811