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