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