OLD | NEW |
(Empty) | |
| 1 .file "bf-586.s" |
| 2 .text |
| 3 .globl _BF_encrypt |
| 4 .align 4 |
| 5 _BF_encrypt: |
| 6 L_BF_encrypt_begin: |
| 7 |
| 8 pushl %ebp |
| 9 pushl %ebx |
| 10 movl 12(%esp),%ebx |
| 11 movl 16(%esp),%ebp |
| 12 pushl %esi |
| 13 pushl %edi |
| 14 # Load the 2 words |
| 15 movl (%ebx),%edi |
| 16 movl 4(%ebx),%esi |
| 17 xorl %eax,%eax |
| 18 movl (%ebp),%ebx |
| 19 xorl %ecx,%ecx |
| 20 xorl %ebx,%edi |
| 21 |
| 22 # Round 0 |
| 23 movl 4(%ebp),%edx |
| 24 movl %edi,%ebx |
| 25 xorl %edx,%esi |
| 26 shrl $16,%ebx |
| 27 movl %edi,%edx |
| 28 movb %bh,%al |
| 29 andl $255,%ebx |
| 30 movb %dh,%cl |
| 31 andl $255,%edx |
| 32 movl 72(%ebp,%eax,4),%eax |
| 33 movl 1096(%ebp,%ebx,4),%ebx |
| 34 addl %eax,%ebx |
| 35 movl 2120(%ebp,%ecx,4),%eax |
| 36 xorl %eax,%ebx |
| 37 movl 3144(%ebp,%edx,4),%edx |
| 38 addl %edx,%ebx |
| 39 xorl %eax,%eax |
| 40 xorl %ebx,%esi |
| 41 |
| 42 # Round 1 |
| 43 movl 8(%ebp),%edx |
| 44 movl %esi,%ebx |
| 45 xorl %edx,%edi |
| 46 shrl $16,%ebx |
| 47 movl %esi,%edx |
| 48 movb %bh,%al |
| 49 andl $255,%ebx |
| 50 movb %dh,%cl |
| 51 andl $255,%edx |
| 52 movl 72(%ebp,%eax,4),%eax |
| 53 movl 1096(%ebp,%ebx,4),%ebx |
| 54 addl %eax,%ebx |
| 55 movl 2120(%ebp,%ecx,4),%eax |
| 56 xorl %eax,%ebx |
| 57 movl 3144(%ebp,%edx,4),%edx |
| 58 addl %edx,%ebx |
| 59 xorl %eax,%eax |
| 60 xorl %ebx,%edi |
| 61 |
| 62 # Round 2 |
| 63 movl 12(%ebp),%edx |
| 64 movl %edi,%ebx |
| 65 xorl %edx,%esi |
| 66 shrl $16,%ebx |
| 67 movl %edi,%edx |
| 68 movb %bh,%al |
| 69 andl $255,%ebx |
| 70 movb %dh,%cl |
| 71 andl $255,%edx |
| 72 movl 72(%ebp,%eax,4),%eax |
| 73 movl 1096(%ebp,%ebx,4),%ebx |
| 74 addl %eax,%ebx |
| 75 movl 2120(%ebp,%ecx,4),%eax |
| 76 xorl %eax,%ebx |
| 77 movl 3144(%ebp,%edx,4),%edx |
| 78 addl %edx,%ebx |
| 79 xorl %eax,%eax |
| 80 xorl %ebx,%esi |
| 81 |
| 82 # Round 3 |
| 83 movl 16(%ebp),%edx |
| 84 movl %esi,%ebx |
| 85 xorl %edx,%edi |
| 86 shrl $16,%ebx |
| 87 movl %esi,%edx |
| 88 movb %bh,%al |
| 89 andl $255,%ebx |
| 90 movb %dh,%cl |
| 91 andl $255,%edx |
| 92 movl 72(%ebp,%eax,4),%eax |
| 93 movl 1096(%ebp,%ebx,4),%ebx |
| 94 addl %eax,%ebx |
| 95 movl 2120(%ebp,%ecx,4),%eax |
| 96 xorl %eax,%ebx |
| 97 movl 3144(%ebp,%edx,4),%edx |
| 98 addl %edx,%ebx |
| 99 xorl %eax,%eax |
| 100 xorl %ebx,%edi |
| 101 |
| 102 # Round 4 |
| 103 movl 20(%ebp),%edx |
| 104 movl %edi,%ebx |
| 105 xorl %edx,%esi |
| 106 shrl $16,%ebx |
| 107 movl %edi,%edx |
| 108 movb %bh,%al |
| 109 andl $255,%ebx |
| 110 movb %dh,%cl |
| 111 andl $255,%edx |
| 112 movl 72(%ebp,%eax,4),%eax |
| 113 movl 1096(%ebp,%ebx,4),%ebx |
| 114 addl %eax,%ebx |
| 115 movl 2120(%ebp,%ecx,4),%eax |
| 116 xorl %eax,%ebx |
| 117 movl 3144(%ebp,%edx,4),%edx |
| 118 addl %edx,%ebx |
| 119 xorl %eax,%eax |
| 120 xorl %ebx,%esi |
| 121 |
| 122 # Round 5 |
| 123 movl 24(%ebp),%edx |
| 124 movl %esi,%ebx |
| 125 xorl %edx,%edi |
| 126 shrl $16,%ebx |
| 127 movl %esi,%edx |
| 128 movb %bh,%al |
| 129 andl $255,%ebx |
| 130 movb %dh,%cl |
| 131 andl $255,%edx |
| 132 movl 72(%ebp,%eax,4),%eax |
| 133 movl 1096(%ebp,%ebx,4),%ebx |
| 134 addl %eax,%ebx |
| 135 movl 2120(%ebp,%ecx,4),%eax |
| 136 xorl %eax,%ebx |
| 137 movl 3144(%ebp,%edx,4),%edx |
| 138 addl %edx,%ebx |
| 139 xorl %eax,%eax |
| 140 xorl %ebx,%edi |
| 141 |
| 142 # Round 6 |
| 143 movl 28(%ebp),%edx |
| 144 movl %edi,%ebx |
| 145 xorl %edx,%esi |
| 146 shrl $16,%ebx |
| 147 movl %edi,%edx |
| 148 movb %bh,%al |
| 149 andl $255,%ebx |
| 150 movb %dh,%cl |
| 151 andl $255,%edx |
| 152 movl 72(%ebp,%eax,4),%eax |
| 153 movl 1096(%ebp,%ebx,4),%ebx |
| 154 addl %eax,%ebx |
| 155 movl 2120(%ebp,%ecx,4),%eax |
| 156 xorl %eax,%ebx |
| 157 movl 3144(%ebp,%edx,4),%edx |
| 158 addl %edx,%ebx |
| 159 xorl %eax,%eax |
| 160 xorl %ebx,%esi |
| 161 |
| 162 # Round 7 |
| 163 movl 32(%ebp),%edx |
| 164 movl %esi,%ebx |
| 165 xorl %edx,%edi |
| 166 shrl $16,%ebx |
| 167 movl %esi,%edx |
| 168 movb %bh,%al |
| 169 andl $255,%ebx |
| 170 movb %dh,%cl |
| 171 andl $255,%edx |
| 172 movl 72(%ebp,%eax,4),%eax |
| 173 movl 1096(%ebp,%ebx,4),%ebx |
| 174 addl %eax,%ebx |
| 175 movl 2120(%ebp,%ecx,4),%eax |
| 176 xorl %eax,%ebx |
| 177 movl 3144(%ebp,%edx,4),%edx |
| 178 addl %edx,%ebx |
| 179 xorl %eax,%eax |
| 180 xorl %ebx,%edi |
| 181 |
| 182 # Round 8 |
| 183 movl 36(%ebp),%edx |
| 184 movl %edi,%ebx |
| 185 xorl %edx,%esi |
| 186 shrl $16,%ebx |
| 187 movl %edi,%edx |
| 188 movb %bh,%al |
| 189 andl $255,%ebx |
| 190 movb %dh,%cl |
| 191 andl $255,%edx |
| 192 movl 72(%ebp,%eax,4),%eax |
| 193 movl 1096(%ebp,%ebx,4),%ebx |
| 194 addl %eax,%ebx |
| 195 movl 2120(%ebp,%ecx,4),%eax |
| 196 xorl %eax,%ebx |
| 197 movl 3144(%ebp,%edx,4),%edx |
| 198 addl %edx,%ebx |
| 199 xorl %eax,%eax |
| 200 xorl %ebx,%esi |
| 201 |
| 202 # Round 9 |
| 203 movl 40(%ebp),%edx |
| 204 movl %esi,%ebx |
| 205 xorl %edx,%edi |
| 206 shrl $16,%ebx |
| 207 movl %esi,%edx |
| 208 movb %bh,%al |
| 209 andl $255,%ebx |
| 210 movb %dh,%cl |
| 211 andl $255,%edx |
| 212 movl 72(%ebp,%eax,4),%eax |
| 213 movl 1096(%ebp,%ebx,4),%ebx |
| 214 addl %eax,%ebx |
| 215 movl 2120(%ebp,%ecx,4),%eax |
| 216 xorl %eax,%ebx |
| 217 movl 3144(%ebp,%edx,4),%edx |
| 218 addl %edx,%ebx |
| 219 xorl %eax,%eax |
| 220 xorl %ebx,%edi |
| 221 |
| 222 # Round 10 |
| 223 movl 44(%ebp),%edx |
| 224 movl %edi,%ebx |
| 225 xorl %edx,%esi |
| 226 shrl $16,%ebx |
| 227 movl %edi,%edx |
| 228 movb %bh,%al |
| 229 andl $255,%ebx |
| 230 movb %dh,%cl |
| 231 andl $255,%edx |
| 232 movl 72(%ebp,%eax,4),%eax |
| 233 movl 1096(%ebp,%ebx,4),%ebx |
| 234 addl %eax,%ebx |
| 235 movl 2120(%ebp,%ecx,4),%eax |
| 236 xorl %eax,%ebx |
| 237 movl 3144(%ebp,%edx,4),%edx |
| 238 addl %edx,%ebx |
| 239 xorl %eax,%eax |
| 240 xorl %ebx,%esi |
| 241 |
| 242 # Round 11 |
| 243 movl 48(%ebp),%edx |
| 244 movl %esi,%ebx |
| 245 xorl %edx,%edi |
| 246 shrl $16,%ebx |
| 247 movl %esi,%edx |
| 248 movb %bh,%al |
| 249 andl $255,%ebx |
| 250 movb %dh,%cl |
| 251 andl $255,%edx |
| 252 movl 72(%ebp,%eax,4),%eax |
| 253 movl 1096(%ebp,%ebx,4),%ebx |
| 254 addl %eax,%ebx |
| 255 movl 2120(%ebp,%ecx,4),%eax |
| 256 xorl %eax,%ebx |
| 257 movl 3144(%ebp,%edx,4),%edx |
| 258 addl %edx,%ebx |
| 259 xorl %eax,%eax |
| 260 xorl %ebx,%edi |
| 261 |
| 262 # Round 12 |
| 263 movl 52(%ebp),%edx |
| 264 movl %edi,%ebx |
| 265 xorl %edx,%esi |
| 266 shrl $16,%ebx |
| 267 movl %edi,%edx |
| 268 movb %bh,%al |
| 269 andl $255,%ebx |
| 270 movb %dh,%cl |
| 271 andl $255,%edx |
| 272 movl 72(%ebp,%eax,4),%eax |
| 273 movl 1096(%ebp,%ebx,4),%ebx |
| 274 addl %eax,%ebx |
| 275 movl 2120(%ebp,%ecx,4),%eax |
| 276 xorl %eax,%ebx |
| 277 movl 3144(%ebp,%edx,4),%edx |
| 278 addl %edx,%ebx |
| 279 xorl %eax,%eax |
| 280 xorl %ebx,%esi |
| 281 |
| 282 # Round 13 |
| 283 movl 56(%ebp),%edx |
| 284 movl %esi,%ebx |
| 285 xorl %edx,%edi |
| 286 shrl $16,%ebx |
| 287 movl %esi,%edx |
| 288 movb %bh,%al |
| 289 andl $255,%ebx |
| 290 movb %dh,%cl |
| 291 andl $255,%edx |
| 292 movl 72(%ebp,%eax,4),%eax |
| 293 movl 1096(%ebp,%ebx,4),%ebx |
| 294 addl %eax,%ebx |
| 295 movl 2120(%ebp,%ecx,4),%eax |
| 296 xorl %eax,%ebx |
| 297 movl 3144(%ebp,%edx,4),%edx |
| 298 addl %edx,%ebx |
| 299 xorl %eax,%eax |
| 300 xorl %ebx,%edi |
| 301 |
| 302 # Round 14 |
| 303 movl 60(%ebp),%edx |
| 304 movl %edi,%ebx |
| 305 xorl %edx,%esi |
| 306 shrl $16,%ebx |
| 307 movl %edi,%edx |
| 308 movb %bh,%al |
| 309 andl $255,%ebx |
| 310 movb %dh,%cl |
| 311 andl $255,%edx |
| 312 movl 72(%ebp,%eax,4),%eax |
| 313 movl 1096(%ebp,%ebx,4),%ebx |
| 314 addl %eax,%ebx |
| 315 movl 2120(%ebp,%ecx,4),%eax |
| 316 xorl %eax,%ebx |
| 317 movl 3144(%ebp,%edx,4),%edx |
| 318 addl %edx,%ebx |
| 319 xorl %eax,%eax |
| 320 xorl %ebx,%esi |
| 321 |
| 322 # Round 15 |
| 323 movl 64(%ebp),%edx |
| 324 movl %esi,%ebx |
| 325 xorl %edx,%edi |
| 326 shrl $16,%ebx |
| 327 movl %esi,%edx |
| 328 movb %bh,%al |
| 329 andl $255,%ebx |
| 330 movb %dh,%cl |
| 331 andl $255,%edx |
| 332 movl 72(%ebp,%eax,4),%eax |
| 333 movl 1096(%ebp,%ebx,4),%ebx |
| 334 addl %eax,%ebx |
| 335 movl 2120(%ebp,%ecx,4),%eax |
| 336 xorl %eax,%ebx |
| 337 movl 3144(%ebp,%edx,4),%edx |
| 338 addl %edx,%ebx |
| 339 # Load parameter 0 (16) enc=1 |
| 340 movl 20(%esp),%eax |
| 341 xorl %ebx,%edi |
| 342 movl 68(%ebp),%edx |
| 343 xorl %edx,%esi |
| 344 movl %edi,4(%eax) |
| 345 movl %esi,(%eax) |
| 346 popl %edi |
| 347 popl %esi |
| 348 popl %ebx |
| 349 popl %ebp |
| 350 ret |
| 351 .globl _BF_decrypt |
| 352 .align 4 |
| 353 _BF_decrypt: |
| 354 L_BF_decrypt_begin: |
| 355 |
| 356 pushl %ebp |
| 357 pushl %ebx |
| 358 movl 12(%esp),%ebx |
| 359 movl 16(%esp),%ebp |
| 360 pushl %esi |
| 361 pushl %edi |
| 362 # Load the 2 words |
| 363 movl (%ebx),%edi |
| 364 movl 4(%ebx),%esi |
| 365 xorl %eax,%eax |
| 366 movl 68(%ebp),%ebx |
| 367 xorl %ecx,%ecx |
| 368 xorl %ebx,%edi |
| 369 |
| 370 # Round 16 |
| 371 movl 64(%ebp),%edx |
| 372 movl %edi,%ebx |
| 373 xorl %edx,%esi |
| 374 shrl $16,%ebx |
| 375 movl %edi,%edx |
| 376 movb %bh,%al |
| 377 andl $255,%ebx |
| 378 movb %dh,%cl |
| 379 andl $255,%edx |
| 380 movl 72(%ebp,%eax,4),%eax |
| 381 movl 1096(%ebp,%ebx,4),%ebx |
| 382 addl %eax,%ebx |
| 383 movl 2120(%ebp,%ecx,4),%eax |
| 384 xorl %eax,%ebx |
| 385 movl 3144(%ebp,%edx,4),%edx |
| 386 addl %edx,%ebx |
| 387 xorl %eax,%eax |
| 388 xorl %ebx,%esi |
| 389 |
| 390 # Round 15 |
| 391 movl 60(%ebp),%edx |
| 392 movl %esi,%ebx |
| 393 xorl %edx,%edi |
| 394 shrl $16,%ebx |
| 395 movl %esi,%edx |
| 396 movb %bh,%al |
| 397 andl $255,%ebx |
| 398 movb %dh,%cl |
| 399 andl $255,%edx |
| 400 movl 72(%ebp,%eax,4),%eax |
| 401 movl 1096(%ebp,%ebx,4),%ebx |
| 402 addl %eax,%ebx |
| 403 movl 2120(%ebp,%ecx,4),%eax |
| 404 xorl %eax,%ebx |
| 405 movl 3144(%ebp,%edx,4),%edx |
| 406 addl %edx,%ebx |
| 407 xorl %eax,%eax |
| 408 xorl %ebx,%edi |
| 409 |
| 410 # Round 14 |
| 411 movl 56(%ebp),%edx |
| 412 movl %edi,%ebx |
| 413 xorl %edx,%esi |
| 414 shrl $16,%ebx |
| 415 movl %edi,%edx |
| 416 movb %bh,%al |
| 417 andl $255,%ebx |
| 418 movb %dh,%cl |
| 419 andl $255,%edx |
| 420 movl 72(%ebp,%eax,4),%eax |
| 421 movl 1096(%ebp,%ebx,4),%ebx |
| 422 addl %eax,%ebx |
| 423 movl 2120(%ebp,%ecx,4),%eax |
| 424 xorl %eax,%ebx |
| 425 movl 3144(%ebp,%edx,4),%edx |
| 426 addl %edx,%ebx |
| 427 xorl %eax,%eax |
| 428 xorl %ebx,%esi |
| 429 |
| 430 # Round 13 |
| 431 movl 52(%ebp),%edx |
| 432 movl %esi,%ebx |
| 433 xorl %edx,%edi |
| 434 shrl $16,%ebx |
| 435 movl %esi,%edx |
| 436 movb %bh,%al |
| 437 andl $255,%ebx |
| 438 movb %dh,%cl |
| 439 andl $255,%edx |
| 440 movl 72(%ebp,%eax,4),%eax |
| 441 movl 1096(%ebp,%ebx,4),%ebx |
| 442 addl %eax,%ebx |
| 443 movl 2120(%ebp,%ecx,4),%eax |
| 444 xorl %eax,%ebx |
| 445 movl 3144(%ebp,%edx,4),%edx |
| 446 addl %edx,%ebx |
| 447 xorl %eax,%eax |
| 448 xorl %ebx,%edi |
| 449 |
| 450 # Round 12 |
| 451 movl 48(%ebp),%edx |
| 452 movl %edi,%ebx |
| 453 xorl %edx,%esi |
| 454 shrl $16,%ebx |
| 455 movl %edi,%edx |
| 456 movb %bh,%al |
| 457 andl $255,%ebx |
| 458 movb %dh,%cl |
| 459 andl $255,%edx |
| 460 movl 72(%ebp,%eax,4),%eax |
| 461 movl 1096(%ebp,%ebx,4),%ebx |
| 462 addl %eax,%ebx |
| 463 movl 2120(%ebp,%ecx,4),%eax |
| 464 xorl %eax,%ebx |
| 465 movl 3144(%ebp,%edx,4),%edx |
| 466 addl %edx,%ebx |
| 467 xorl %eax,%eax |
| 468 xorl %ebx,%esi |
| 469 |
| 470 # Round 11 |
| 471 movl 44(%ebp),%edx |
| 472 movl %esi,%ebx |
| 473 xorl %edx,%edi |
| 474 shrl $16,%ebx |
| 475 movl %esi,%edx |
| 476 movb %bh,%al |
| 477 andl $255,%ebx |
| 478 movb %dh,%cl |
| 479 andl $255,%edx |
| 480 movl 72(%ebp,%eax,4),%eax |
| 481 movl 1096(%ebp,%ebx,4),%ebx |
| 482 addl %eax,%ebx |
| 483 movl 2120(%ebp,%ecx,4),%eax |
| 484 xorl %eax,%ebx |
| 485 movl 3144(%ebp,%edx,4),%edx |
| 486 addl %edx,%ebx |
| 487 xorl %eax,%eax |
| 488 xorl %ebx,%edi |
| 489 |
| 490 # Round 10 |
| 491 movl 40(%ebp),%edx |
| 492 movl %edi,%ebx |
| 493 xorl %edx,%esi |
| 494 shrl $16,%ebx |
| 495 movl %edi,%edx |
| 496 movb %bh,%al |
| 497 andl $255,%ebx |
| 498 movb %dh,%cl |
| 499 andl $255,%edx |
| 500 movl 72(%ebp,%eax,4),%eax |
| 501 movl 1096(%ebp,%ebx,4),%ebx |
| 502 addl %eax,%ebx |
| 503 movl 2120(%ebp,%ecx,4),%eax |
| 504 xorl %eax,%ebx |
| 505 movl 3144(%ebp,%edx,4),%edx |
| 506 addl %edx,%ebx |
| 507 xorl %eax,%eax |
| 508 xorl %ebx,%esi |
| 509 |
| 510 # Round 9 |
| 511 movl 36(%ebp),%edx |
| 512 movl %esi,%ebx |
| 513 xorl %edx,%edi |
| 514 shrl $16,%ebx |
| 515 movl %esi,%edx |
| 516 movb %bh,%al |
| 517 andl $255,%ebx |
| 518 movb %dh,%cl |
| 519 andl $255,%edx |
| 520 movl 72(%ebp,%eax,4),%eax |
| 521 movl 1096(%ebp,%ebx,4),%ebx |
| 522 addl %eax,%ebx |
| 523 movl 2120(%ebp,%ecx,4),%eax |
| 524 xorl %eax,%ebx |
| 525 movl 3144(%ebp,%edx,4),%edx |
| 526 addl %edx,%ebx |
| 527 xorl %eax,%eax |
| 528 xorl %ebx,%edi |
| 529 |
| 530 # Round 8 |
| 531 movl 32(%ebp),%edx |
| 532 movl %edi,%ebx |
| 533 xorl %edx,%esi |
| 534 shrl $16,%ebx |
| 535 movl %edi,%edx |
| 536 movb %bh,%al |
| 537 andl $255,%ebx |
| 538 movb %dh,%cl |
| 539 andl $255,%edx |
| 540 movl 72(%ebp,%eax,4),%eax |
| 541 movl 1096(%ebp,%ebx,4),%ebx |
| 542 addl %eax,%ebx |
| 543 movl 2120(%ebp,%ecx,4),%eax |
| 544 xorl %eax,%ebx |
| 545 movl 3144(%ebp,%edx,4),%edx |
| 546 addl %edx,%ebx |
| 547 xorl %eax,%eax |
| 548 xorl %ebx,%esi |
| 549 |
| 550 # Round 7 |
| 551 movl 28(%ebp),%edx |
| 552 movl %esi,%ebx |
| 553 xorl %edx,%edi |
| 554 shrl $16,%ebx |
| 555 movl %esi,%edx |
| 556 movb %bh,%al |
| 557 andl $255,%ebx |
| 558 movb %dh,%cl |
| 559 andl $255,%edx |
| 560 movl 72(%ebp,%eax,4),%eax |
| 561 movl 1096(%ebp,%ebx,4),%ebx |
| 562 addl %eax,%ebx |
| 563 movl 2120(%ebp,%ecx,4),%eax |
| 564 xorl %eax,%ebx |
| 565 movl 3144(%ebp,%edx,4),%edx |
| 566 addl %edx,%ebx |
| 567 xorl %eax,%eax |
| 568 xorl %ebx,%edi |
| 569 |
| 570 # Round 6 |
| 571 movl 24(%ebp),%edx |
| 572 movl %edi,%ebx |
| 573 xorl %edx,%esi |
| 574 shrl $16,%ebx |
| 575 movl %edi,%edx |
| 576 movb %bh,%al |
| 577 andl $255,%ebx |
| 578 movb %dh,%cl |
| 579 andl $255,%edx |
| 580 movl 72(%ebp,%eax,4),%eax |
| 581 movl 1096(%ebp,%ebx,4),%ebx |
| 582 addl %eax,%ebx |
| 583 movl 2120(%ebp,%ecx,4),%eax |
| 584 xorl %eax,%ebx |
| 585 movl 3144(%ebp,%edx,4),%edx |
| 586 addl %edx,%ebx |
| 587 xorl %eax,%eax |
| 588 xorl %ebx,%esi |
| 589 |
| 590 # Round 5 |
| 591 movl 20(%ebp),%edx |
| 592 movl %esi,%ebx |
| 593 xorl %edx,%edi |
| 594 shrl $16,%ebx |
| 595 movl %esi,%edx |
| 596 movb %bh,%al |
| 597 andl $255,%ebx |
| 598 movb %dh,%cl |
| 599 andl $255,%edx |
| 600 movl 72(%ebp,%eax,4),%eax |
| 601 movl 1096(%ebp,%ebx,4),%ebx |
| 602 addl %eax,%ebx |
| 603 movl 2120(%ebp,%ecx,4),%eax |
| 604 xorl %eax,%ebx |
| 605 movl 3144(%ebp,%edx,4),%edx |
| 606 addl %edx,%ebx |
| 607 xorl %eax,%eax |
| 608 xorl %ebx,%edi |
| 609 |
| 610 # Round 4 |
| 611 movl 16(%ebp),%edx |
| 612 movl %edi,%ebx |
| 613 xorl %edx,%esi |
| 614 shrl $16,%ebx |
| 615 movl %edi,%edx |
| 616 movb %bh,%al |
| 617 andl $255,%ebx |
| 618 movb %dh,%cl |
| 619 andl $255,%edx |
| 620 movl 72(%ebp,%eax,4),%eax |
| 621 movl 1096(%ebp,%ebx,4),%ebx |
| 622 addl %eax,%ebx |
| 623 movl 2120(%ebp,%ecx,4),%eax |
| 624 xorl %eax,%ebx |
| 625 movl 3144(%ebp,%edx,4),%edx |
| 626 addl %edx,%ebx |
| 627 xorl %eax,%eax |
| 628 xorl %ebx,%esi |
| 629 |
| 630 # Round 3 |
| 631 movl 12(%ebp),%edx |
| 632 movl %esi,%ebx |
| 633 xorl %edx,%edi |
| 634 shrl $16,%ebx |
| 635 movl %esi,%edx |
| 636 movb %bh,%al |
| 637 andl $255,%ebx |
| 638 movb %dh,%cl |
| 639 andl $255,%edx |
| 640 movl 72(%ebp,%eax,4),%eax |
| 641 movl 1096(%ebp,%ebx,4),%ebx |
| 642 addl %eax,%ebx |
| 643 movl 2120(%ebp,%ecx,4),%eax |
| 644 xorl %eax,%ebx |
| 645 movl 3144(%ebp,%edx,4),%edx |
| 646 addl %edx,%ebx |
| 647 xorl %eax,%eax |
| 648 xorl %ebx,%edi |
| 649 |
| 650 # Round 2 |
| 651 movl 8(%ebp),%edx |
| 652 movl %edi,%ebx |
| 653 xorl %edx,%esi |
| 654 shrl $16,%ebx |
| 655 movl %edi,%edx |
| 656 movb %bh,%al |
| 657 andl $255,%ebx |
| 658 movb %dh,%cl |
| 659 andl $255,%edx |
| 660 movl 72(%ebp,%eax,4),%eax |
| 661 movl 1096(%ebp,%ebx,4),%ebx |
| 662 addl %eax,%ebx |
| 663 movl 2120(%ebp,%ecx,4),%eax |
| 664 xorl %eax,%ebx |
| 665 movl 3144(%ebp,%edx,4),%edx |
| 666 addl %edx,%ebx |
| 667 xorl %eax,%eax |
| 668 xorl %ebx,%esi |
| 669 |
| 670 # Round 1 |
| 671 movl 4(%ebp),%edx |
| 672 movl %esi,%ebx |
| 673 xorl %edx,%edi |
| 674 shrl $16,%ebx |
| 675 movl %esi,%edx |
| 676 movb %bh,%al |
| 677 andl $255,%ebx |
| 678 movb %dh,%cl |
| 679 andl $255,%edx |
| 680 movl 72(%ebp,%eax,4),%eax |
| 681 movl 1096(%ebp,%ebx,4),%ebx |
| 682 addl %eax,%ebx |
| 683 movl 2120(%ebp,%ecx,4),%eax |
| 684 xorl %eax,%ebx |
| 685 movl 3144(%ebp,%edx,4),%edx |
| 686 addl %edx,%ebx |
| 687 # Load parameter 0 (1) enc=0 |
| 688 movl 20(%esp),%eax |
| 689 xorl %ebx,%edi |
| 690 movl (%ebp),%edx |
| 691 xorl %edx,%esi |
| 692 movl %edi,4(%eax) |
| 693 movl %esi,(%eax) |
| 694 popl %edi |
| 695 popl %esi |
| 696 popl %ebx |
| 697 popl %ebp |
| 698 ret |
| 699 .globl _BF_cbc_encrypt |
| 700 .align 4 |
| 701 _BF_cbc_encrypt: |
| 702 L_BF_cbc_encrypt_begin: |
| 703 |
| 704 pushl %ebp |
| 705 pushl %ebx |
| 706 pushl %esi |
| 707 pushl %edi |
| 708 movl 28(%esp),%ebp |
| 709 # getting iv ptr from parameter 4 |
| 710 movl 36(%esp),%ebx |
| 711 movl (%ebx),%esi |
| 712 movl 4(%ebx),%edi |
| 713 pushl %edi |
| 714 pushl %esi |
| 715 pushl %edi |
| 716 pushl %esi |
| 717 movl %esp,%ebx |
| 718 movl 36(%esp),%esi |
| 719 movl 40(%esp),%edi |
| 720 # getting encrypt flag from parameter 5 |
| 721 movl 56(%esp),%ecx |
| 722 # get and push parameter 3 |
| 723 movl 48(%esp),%eax |
| 724 pushl %eax |
| 725 pushl %ebx |
| 726 cmpl $0,%ecx |
| 727 jz L000decrypt |
| 728 andl $4294967288,%ebp |
| 729 movl 8(%esp),%eax |
| 730 movl 12(%esp),%ebx |
| 731 jz L001encrypt_finish |
| 732 L002encrypt_loop: |
| 733 movl (%esi),%ecx |
| 734 movl 4(%esi),%edx |
| 735 xorl %ecx,%eax |
| 736 xorl %edx,%ebx |
| 737 bswap %eax |
| 738 bswap %ebx |
| 739 movl %eax,8(%esp) |
| 740 movl %ebx,12(%esp) |
| 741 call L_BF_encrypt_begin |
| 742 movl 8(%esp),%eax |
| 743 movl 12(%esp),%ebx |
| 744 bswap %eax |
| 745 bswap %ebx |
| 746 movl %eax,(%edi) |
| 747 movl %ebx,4(%edi) |
| 748 addl $8,%esi |
| 749 addl $8,%edi |
| 750 subl $8,%ebp |
| 751 jnz L002encrypt_loop |
| 752 L001encrypt_finish: |
| 753 movl 52(%esp),%ebp |
| 754 andl $7,%ebp |
| 755 jz L003finish |
| 756 call L004PIC_point |
| 757 L004PIC_point: |
| 758 popl %edx |
| 759 leal L005cbc_enc_jmp_table-L004PIC_point(%edx),%ecx |
| 760 movl (%ecx,%ebp,4),%ebp |
| 761 addl %edx,%ebp |
| 762 xorl %ecx,%ecx |
| 763 xorl %edx,%edx |
| 764 jmp *%ebp |
| 765 L006ej7: |
| 766 movb 6(%esi),%dh |
| 767 shll $8,%edx |
| 768 L007ej6: |
| 769 movb 5(%esi),%dh |
| 770 L008ej5: |
| 771 movb 4(%esi),%dl |
| 772 L009ej4: |
| 773 movl (%esi),%ecx |
| 774 jmp L010ejend |
| 775 L011ej3: |
| 776 movb 2(%esi),%ch |
| 777 shll $8,%ecx |
| 778 L012ej2: |
| 779 movb 1(%esi),%ch |
| 780 L013ej1: |
| 781 movb (%esi),%cl |
| 782 L010ejend: |
| 783 xorl %ecx,%eax |
| 784 xorl %edx,%ebx |
| 785 bswap %eax |
| 786 bswap %ebx |
| 787 movl %eax,8(%esp) |
| 788 movl %ebx,12(%esp) |
| 789 call L_BF_encrypt_begin |
| 790 movl 8(%esp),%eax |
| 791 movl 12(%esp),%ebx |
| 792 bswap %eax |
| 793 bswap %ebx |
| 794 movl %eax,(%edi) |
| 795 movl %ebx,4(%edi) |
| 796 jmp L003finish |
| 797 L000decrypt: |
| 798 andl $4294967288,%ebp |
| 799 movl 16(%esp),%eax |
| 800 movl 20(%esp),%ebx |
| 801 jz L014decrypt_finish |
| 802 L015decrypt_loop: |
| 803 movl (%esi),%eax |
| 804 movl 4(%esi),%ebx |
| 805 bswap %eax |
| 806 bswap %ebx |
| 807 movl %eax,8(%esp) |
| 808 movl %ebx,12(%esp) |
| 809 call L_BF_decrypt_begin |
| 810 movl 8(%esp),%eax |
| 811 movl 12(%esp),%ebx |
| 812 bswap %eax |
| 813 bswap %ebx |
| 814 movl 16(%esp),%ecx |
| 815 movl 20(%esp),%edx |
| 816 xorl %eax,%ecx |
| 817 xorl %ebx,%edx |
| 818 movl (%esi),%eax |
| 819 movl 4(%esi),%ebx |
| 820 movl %ecx,(%edi) |
| 821 movl %edx,4(%edi) |
| 822 movl %eax,16(%esp) |
| 823 movl %ebx,20(%esp) |
| 824 addl $8,%esi |
| 825 addl $8,%edi |
| 826 subl $8,%ebp |
| 827 jnz L015decrypt_loop |
| 828 L014decrypt_finish: |
| 829 movl 52(%esp),%ebp |
| 830 andl $7,%ebp |
| 831 jz L003finish |
| 832 movl (%esi),%eax |
| 833 movl 4(%esi),%ebx |
| 834 bswap %eax |
| 835 bswap %ebx |
| 836 movl %eax,8(%esp) |
| 837 movl %ebx,12(%esp) |
| 838 call L_BF_decrypt_begin |
| 839 movl 8(%esp),%eax |
| 840 movl 12(%esp),%ebx |
| 841 bswap %eax |
| 842 bswap %ebx |
| 843 movl 16(%esp),%ecx |
| 844 movl 20(%esp),%edx |
| 845 xorl %eax,%ecx |
| 846 xorl %ebx,%edx |
| 847 movl (%esi),%eax |
| 848 movl 4(%esi),%ebx |
| 849 L016dj7: |
| 850 rorl $16,%edx |
| 851 movb %dl,6(%edi) |
| 852 shrl $16,%edx |
| 853 L017dj6: |
| 854 movb %dh,5(%edi) |
| 855 L018dj5: |
| 856 movb %dl,4(%edi) |
| 857 L019dj4: |
| 858 movl %ecx,(%edi) |
| 859 jmp L020djend |
| 860 L021dj3: |
| 861 rorl $16,%ecx |
| 862 movb %cl,2(%edi) |
| 863 shll $16,%ecx |
| 864 L022dj2: |
| 865 movb %ch,1(%esi) |
| 866 L023dj1: |
| 867 movb %cl,(%esi) |
| 868 L020djend: |
| 869 jmp L003finish |
| 870 L003finish: |
| 871 movl 60(%esp),%ecx |
| 872 addl $24,%esp |
| 873 movl %eax,(%ecx) |
| 874 movl %ebx,4(%ecx) |
| 875 popl %edi |
| 876 popl %esi |
| 877 popl %ebx |
| 878 popl %ebp |
| 879 ret |
| 880 .align 6,0x90 |
| 881 L005cbc_enc_jmp_table: |
| 882 .long 0 |
| 883 .long L013ej1-L004PIC_point |
| 884 .long L012ej2-L004PIC_point |
| 885 .long L011ej3-L004PIC_point |
| 886 .long L009ej4-L004PIC_point |
| 887 .long L008ej5-L004PIC_point |
| 888 .long L007ej6-L004PIC_point |
| 889 .long L006ej7-L004PIC_point |
| 890 .align 6,0x90 |
OLD | NEW |