1#if defined(__i386__) 2.file "ghash-x86.S" 3.text 4.globl gcm_gmult_4bit_x86 5.hidden gcm_gmult_4bit_x86 6.type gcm_gmult_4bit_x86,@function 7.align 16 8gcm_gmult_4bit_x86: 9.L_gcm_gmult_4bit_x86_begin: 10 pushl %ebp 11 pushl %ebx 12 pushl %esi 13 pushl %edi 14 subl $84,%esp 15 movl 104(%esp),%edi 16 movl 108(%esp),%esi 17 movl (%edi),%ebp 18 movl 4(%edi),%edx 19 movl 8(%edi),%ecx 20 movl 12(%edi),%ebx 21 movl $0,16(%esp) 22 movl $471859200,20(%esp) 23 movl $943718400,24(%esp) 24 movl $610271232,28(%esp) 25 movl $1887436800,32(%esp) 26 movl $1822425088,36(%esp) 27 movl $1220542464,40(%esp) 28 movl $1423966208,44(%esp) 29 movl $3774873600,48(%esp) 30 movl $4246732800,52(%esp) 31 movl $3644850176,56(%esp) 32 movl $3311403008,60(%esp) 33 movl $2441084928,64(%esp) 34 movl $2376073216,68(%esp) 35 movl $2847932416,72(%esp) 36 movl $3051356160,76(%esp) 37 movl %ebp,(%esp) 38 movl %edx,4(%esp) 39 movl %ecx,8(%esp) 40 movl %ebx,12(%esp) 41 shrl $20,%ebx 42 andl $240,%ebx 43 movl 4(%esi,%ebx,1),%ebp 44 movl (%esi,%ebx,1),%edx 45 movl 12(%esi,%ebx,1),%ecx 46 movl 8(%esi,%ebx,1),%ebx 47 xorl %eax,%eax 48 movl $15,%edi 49 jmp .L000x86_loop 50.align 16 51.L000x86_loop: 52 movb %bl,%al 53 shrdl $4,%ecx,%ebx 54 andb $15,%al 55 shrdl $4,%edx,%ecx 56 shrdl $4,%ebp,%edx 57 shrl $4,%ebp 58 xorl 16(%esp,%eax,4),%ebp 59 movb (%esp,%edi,1),%al 60 andb $240,%al 61 xorl 8(%esi,%eax,1),%ebx 62 xorl 12(%esi,%eax,1),%ecx 63 xorl (%esi,%eax,1),%edx 64 xorl 4(%esi,%eax,1),%ebp 65 decl %edi 66 js .L001x86_break 67 movb %bl,%al 68 shrdl $4,%ecx,%ebx 69 andb $15,%al 70 shrdl $4,%edx,%ecx 71 shrdl $4,%ebp,%edx 72 shrl $4,%ebp 73 xorl 16(%esp,%eax,4),%ebp 74 movb (%esp,%edi,1),%al 75 shlb $4,%al 76 xorl 8(%esi,%eax,1),%ebx 77 xorl 12(%esi,%eax,1),%ecx 78 xorl (%esi,%eax,1),%edx 79 xorl 4(%esi,%eax,1),%ebp 80 jmp .L000x86_loop 81.align 16 82.L001x86_break: 83 bswap %ebx 84 bswap %ecx 85 bswap %edx 86 bswap %ebp 87 movl 104(%esp),%edi 88 movl %ebx,12(%edi) 89 movl %ecx,8(%edi) 90 movl %edx,4(%edi) 91 movl %ebp,(%edi) 92 addl $84,%esp 93 popl %edi 94 popl %esi 95 popl %ebx 96 popl %ebp 97 ret 98.size gcm_gmult_4bit_x86,.-.L_gcm_gmult_4bit_x86_begin 99.globl gcm_ghash_4bit_x86 100.hidden gcm_ghash_4bit_x86 101.type gcm_ghash_4bit_x86,@function 102.align 16 103gcm_ghash_4bit_x86: 104.L_gcm_ghash_4bit_x86_begin: 105 pushl %ebp 106 pushl %ebx 107 pushl %esi 108 pushl %edi 109 subl $84,%esp 110 movl 104(%esp),%ebx 111 movl 108(%esp),%esi 112 movl 112(%esp),%edi 113 movl 116(%esp),%ecx 114 addl %edi,%ecx 115 movl %ecx,116(%esp) 116 movl (%ebx),%ebp 117 movl 4(%ebx),%edx 118 movl 8(%ebx),%ecx 119 movl 12(%ebx),%ebx 120 movl $0,16(%esp) 121 movl $471859200,20(%esp) 122 movl $943718400,24(%esp) 123 movl $610271232,28(%esp) 124 movl $1887436800,32(%esp) 125 movl $1822425088,36(%esp) 126 movl $1220542464,40(%esp) 127 movl $1423966208,44(%esp) 128 movl $3774873600,48(%esp) 129 movl $4246732800,52(%esp) 130 movl $3644850176,56(%esp) 131 movl $3311403008,60(%esp) 132 movl $2441084928,64(%esp) 133 movl $2376073216,68(%esp) 134 movl $2847932416,72(%esp) 135 movl $3051356160,76(%esp) 136.align 16 137.L002x86_outer_loop: 138 xorl 12(%edi),%ebx 139 xorl 8(%edi),%ecx 140 xorl 4(%edi),%edx 141 xorl (%edi),%ebp 142 movl %ebx,12(%esp) 143 movl %ecx,8(%esp) 144 movl %edx,4(%esp) 145 movl %ebp,(%esp) 146 shrl $20,%ebx 147 andl $240,%ebx 148 movl 4(%esi,%ebx,1),%ebp 149 movl (%esi,%ebx,1),%edx 150 movl 12(%esi,%ebx,1),%ecx 151 movl 8(%esi,%ebx,1),%ebx 152 xorl %eax,%eax 153 movl $15,%edi 154 jmp .L003x86_loop 155.align 16 156.L003x86_loop: 157 movb %bl,%al 158 shrdl $4,%ecx,%ebx 159 andb $15,%al 160 shrdl $4,%edx,%ecx 161 shrdl $4,%ebp,%edx 162 shrl $4,%ebp 163 xorl 16(%esp,%eax,4),%ebp 164 movb (%esp,%edi,1),%al 165 andb $240,%al 166 xorl 8(%esi,%eax,1),%ebx 167 xorl 12(%esi,%eax,1),%ecx 168 xorl (%esi,%eax,1),%edx 169 xorl 4(%esi,%eax,1),%ebp 170 decl %edi 171 js .L004x86_break 172 movb %bl,%al 173 shrdl $4,%ecx,%ebx 174 andb $15,%al 175 shrdl $4,%edx,%ecx 176 shrdl $4,%ebp,%edx 177 shrl $4,%ebp 178 xorl 16(%esp,%eax,4),%ebp 179 movb (%esp,%edi,1),%al 180 shlb $4,%al 181 xorl 8(%esi,%eax,1),%ebx 182 xorl 12(%esi,%eax,1),%ecx 183 xorl (%esi,%eax,1),%edx 184 xorl 4(%esi,%eax,1),%ebp 185 jmp .L003x86_loop 186.align 16 187.L004x86_break: 188 bswap %ebx 189 bswap %ecx 190 bswap %edx 191 bswap %ebp 192 movl 112(%esp),%edi 193 leal 16(%edi),%edi 194 cmpl 116(%esp),%edi 195 movl %edi,112(%esp) 196 jb .L002x86_outer_loop 197 movl 104(%esp),%edi 198 movl %ebx,12(%edi) 199 movl %ecx,8(%edi) 200 movl %edx,4(%edi) 201 movl %ebp,(%edi) 202 addl $84,%esp 203 popl %edi 204 popl %esi 205 popl %ebx 206 popl %ebp 207 ret 208.size gcm_ghash_4bit_x86,.-.L_gcm_ghash_4bit_x86_begin 209.globl gcm_gmult_4bit_mmx 210.hidden gcm_gmult_4bit_mmx 211.type gcm_gmult_4bit_mmx,@function 212.align 16 213gcm_gmult_4bit_mmx: 214.L_gcm_gmult_4bit_mmx_begin: 215 pushl %ebp 216 pushl %ebx 217 pushl %esi 218 pushl %edi 219 movl 20(%esp),%edi 220 movl 24(%esp),%esi 221 call .L005pic_point 222.L005pic_point: 223 popl %eax 224 leal .Lrem_4bit-.L005pic_point(%eax),%eax 225 movzbl 15(%edi),%ebx 226 xorl %ecx,%ecx 227 movl %ebx,%edx 228 movb %dl,%cl 229 movl $14,%ebp 230 shlb $4,%cl 231 andl $240,%edx 232 movq 8(%esi,%ecx,1),%mm0 233 movq (%esi,%ecx,1),%mm1 234 movd %mm0,%ebx 235 jmp .L006mmx_loop 236.align 16 237.L006mmx_loop: 238 psrlq $4,%mm0 239 andl $15,%ebx 240 movq %mm1,%mm2 241 psrlq $4,%mm1 242 pxor 8(%esi,%edx,1),%mm0 243 movb (%edi,%ebp,1),%cl 244 psllq $60,%mm2 245 pxor (%eax,%ebx,8),%mm1 246 decl %ebp 247 movd %mm0,%ebx 248 pxor (%esi,%edx,1),%mm1 249 movl %ecx,%edx 250 pxor %mm2,%mm0 251 js .L007mmx_break 252 shlb $4,%cl 253 andl $15,%ebx 254 psrlq $4,%mm0 255 andl $240,%edx 256 movq %mm1,%mm2 257 psrlq $4,%mm1 258 pxor 8(%esi,%ecx,1),%mm0 259 psllq $60,%mm2 260 pxor (%eax,%ebx,8),%mm1 261 movd %mm0,%ebx 262 pxor (%esi,%ecx,1),%mm1 263 pxor %mm2,%mm0 264 jmp .L006mmx_loop 265.align 16 266.L007mmx_break: 267 shlb $4,%cl 268 andl $15,%ebx 269 psrlq $4,%mm0 270 andl $240,%edx 271 movq %mm1,%mm2 272 psrlq $4,%mm1 273 pxor 8(%esi,%ecx,1),%mm0 274 psllq $60,%mm2 275 pxor (%eax,%ebx,8),%mm1 276 movd %mm0,%ebx 277 pxor (%esi,%ecx,1),%mm1 278 pxor %mm2,%mm0 279 psrlq $4,%mm0 280 andl $15,%ebx 281 movq %mm1,%mm2 282 psrlq $4,%mm1 283 pxor 8(%esi,%edx,1),%mm0 284 psllq $60,%mm2 285 pxor (%eax,%ebx,8),%mm1 286 movd %mm0,%ebx 287 pxor (%esi,%edx,1),%mm1 288 pxor %mm2,%mm0 289 psrlq $32,%mm0 290 movd %mm1,%edx 291 psrlq $32,%mm1 292 movd %mm0,%ecx 293 movd %mm1,%ebp 294 bswap %ebx 295 bswap %edx 296 bswap %ecx 297 bswap %ebp 298 emms 299 movl %ebx,12(%edi) 300 movl %edx,4(%edi) 301 movl %ecx,8(%edi) 302 movl %ebp,(%edi) 303 popl %edi 304 popl %esi 305 popl %ebx 306 popl %ebp 307 ret 308.size gcm_gmult_4bit_mmx,.-.L_gcm_gmult_4bit_mmx_begin 309.globl gcm_ghash_4bit_mmx 310.hidden gcm_ghash_4bit_mmx 311.type gcm_ghash_4bit_mmx,@function 312.align 16 313gcm_ghash_4bit_mmx: 314.L_gcm_ghash_4bit_mmx_begin: 315 pushl %ebp 316 pushl %ebx 317 pushl %esi 318 pushl %edi 319 movl 20(%esp),%eax 320 movl 24(%esp),%ebx 321 movl 28(%esp),%ecx 322 movl 32(%esp),%edx 323 movl %esp,%ebp 324 call .L008pic_point 325.L008pic_point: 326 popl %esi 327 leal .Lrem_8bit-.L008pic_point(%esi),%esi 328 subl $544,%esp 329 andl $-64,%esp 330 subl $16,%esp 331 addl %ecx,%edx 332 movl %eax,544(%esp) 333 movl %edx,552(%esp) 334 movl %ebp,556(%esp) 335 addl $128,%ebx 336 leal 144(%esp),%edi 337 leal 400(%esp),%ebp 338 movl -120(%ebx),%edx 339 movq -120(%ebx),%mm0 340 movq -128(%ebx),%mm3 341 shll $4,%edx 342 movb %dl,(%esp) 343 movl -104(%ebx),%edx 344 movq -104(%ebx),%mm2 345 movq -112(%ebx),%mm5 346 movq %mm0,-128(%edi) 347 psrlq $4,%mm0 348 movq %mm3,(%edi) 349 movq %mm3,%mm7 350 psrlq $4,%mm3 351 shll $4,%edx 352 movb %dl,1(%esp) 353 movl -88(%ebx),%edx 354 movq -88(%ebx),%mm1 355 psllq $60,%mm7 356 movq -96(%ebx),%mm4 357 por %mm7,%mm0 358 movq %mm2,-120(%edi) 359 psrlq $4,%mm2 360 movq %mm5,8(%edi) 361 movq %mm5,%mm6 362 movq %mm0,-128(%ebp) 363 psrlq $4,%mm5 364 movq %mm3,(%ebp) 365 shll $4,%edx 366 movb %dl,2(%esp) 367 movl -72(%ebx),%edx 368 movq -72(%ebx),%mm0 369 psllq $60,%mm6 370 movq -80(%ebx),%mm3 371 por %mm6,%mm2 372 movq %mm1,-112(%edi) 373 psrlq $4,%mm1 374 movq %mm4,16(%edi) 375 movq %mm4,%mm7 376 movq %mm2,-120(%ebp) 377 psrlq $4,%mm4 378 movq %mm5,8(%ebp) 379 shll $4,%edx 380 movb %dl,3(%esp) 381 movl -56(%ebx),%edx 382 movq -56(%ebx),%mm2 383 psllq $60,%mm7 384 movq -64(%ebx),%mm5 385 por %mm7,%mm1 386 movq %mm0,-104(%edi) 387 psrlq $4,%mm0 388 movq %mm3,24(%edi) 389 movq %mm3,%mm6 390 movq %mm1,-112(%ebp) 391 psrlq $4,%mm3 392 movq %mm4,16(%ebp) 393 shll $4,%edx 394 movb %dl,4(%esp) 395 movl -40(%ebx),%edx 396 movq -40(%ebx),%mm1 397 psllq $60,%mm6 398 movq -48(%ebx),%mm4 399 por %mm6,%mm0 400 movq %mm2,-96(%edi) 401 psrlq $4,%mm2 402 movq %mm5,32(%edi) 403 movq %mm5,%mm7 404 movq %mm0,-104(%ebp) 405 psrlq $4,%mm5 406 movq %mm3,24(%ebp) 407 shll $4,%edx 408 movb %dl,5(%esp) 409 movl -24(%ebx),%edx 410 movq -24(%ebx),%mm0 411 psllq $60,%mm7 412 movq -32(%ebx),%mm3 413 por %mm7,%mm2 414 movq %mm1,-88(%edi) 415 psrlq $4,%mm1 416 movq %mm4,40(%edi) 417 movq %mm4,%mm6 418 movq %mm2,-96(%ebp) 419 psrlq $4,%mm4 420 movq %mm5,32(%ebp) 421 shll $4,%edx 422 movb %dl,6(%esp) 423 movl -8(%ebx),%edx 424 movq -8(%ebx),%mm2 425 psllq $60,%mm6 426 movq -16(%ebx),%mm5 427 por %mm6,%mm1 428 movq %mm0,-80(%edi) 429 psrlq $4,%mm0 430 movq %mm3,48(%edi) 431 movq %mm3,%mm7 432 movq %mm1,-88(%ebp) 433 psrlq $4,%mm3 434 movq %mm4,40(%ebp) 435 shll $4,%edx 436 movb %dl,7(%esp) 437 movl 8(%ebx),%edx 438 movq 8(%ebx),%mm1 439 psllq $60,%mm7 440 movq (%ebx),%mm4 441 por %mm7,%mm0 442 movq %mm2,-72(%edi) 443 psrlq $4,%mm2 444 movq %mm5,56(%edi) 445 movq %mm5,%mm6 446 movq %mm0,-80(%ebp) 447 psrlq $4,%mm5 448 movq %mm3,48(%ebp) 449 shll $4,%edx 450 movb %dl,8(%esp) 451 movl 24(%ebx),%edx 452 movq 24(%ebx),%mm0 453 psllq $60,%mm6 454 movq 16(%ebx),%mm3 455 por %mm6,%mm2 456 movq %mm1,-64(%edi) 457 psrlq $4,%mm1 458 movq %mm4,64(%edi) 459 movq %mm4,%mm7 460 movq %mm2,-72(%ebp) 461 psrlq $4,%mm4 462 movq %mm5,56(%ebp) 463 shll $4,%edx 464 movb %dl,9(%esp) 465 movl 40(%ebx),%edx 466 movq 40(%ebx),%mm2 467 psllq $60,%mm7 468 movq 32(%ebx),%mm5 469 por %mm7,%mm1 470 movq %mm0,-56(%edi) 471 psrlq $4,%mm0 472 movq %mm3,72(%edi) 473 movq %mm3,%mm6 474 movq %mm1,-64(%ebp) 475 psrlq $4,%mm3 476 movq %mm4,64(%ebp) 477 shll $4,%edx 478 movb %dl,10(%esp) 479 movl 56(%ebx),%edx 480 movq 56(%ebx),%mm1 481 psllq $60,%mm6 482 movq 48(%ebx),%mm4 483 por %mm6,%mm0 484 movq %mm2,-48(%edi) 485 psrlq $4,%mm2 486 movq %mm5,80(%edi) 487 movq %mm5,%mm7 488 movq %mm0,-56(%ebp) 489 psrlq $4,%mm5 490 movq %mm3,72(%ebp) 491 shll $4,%edx 492 movb %dl,11(%esp) 493 movl 72(%ebx),%edx 494 movq 72(%ebx),%mm0 495 psllq $60,%mm7 496 movq 64(%ebx),%mm3 497 por %mm7,%mm2 498 movq %mm1,-40(%edi) 499 psrlq $4,%mm1 500 movq %mm4,88(%edi) 501 movq %mm4,%mm6 502 movq %mm2,-48(%ebp) 503 psrlq $4,%mm4 504 movq %mm5,80(%ebp) 505 shll $4,%edx 506 movb %dl,12(%esp) 507 movl 88(%ebx),%edx 508 movq 88(%ebx),%mm2 509 psllq $60,%mm6 510 movq 80(%ebx),%mm5 511 por %mm6,%mm1 512 movq %mm0,-32(%edi) 513 psrlq $4,%mm0 514 movq %mm3,96(%edi) 515 movq %mm3,%mm7 516 movq %mm1,-40(%ebp) 517 psrlq $4,%mm3 518 movq %mm4,88(%ebp) 519 shll $4,%edx 520 movb %dl,13(%esp) 521 movl 104(%ebx),%edx 522 movq 104(%ebx),%mm1 523 psllq $60,%mm7 524 movq 96(%ebx),%mm4 525 por %mm7,%mm0 526 movq %mm2,-24(%edi) 527 psrlq $4,%mm2 528 movq %mm5,104(%edi) 529 movq %mm5,%mm6 530 movq %mm0,-32(%ebp) 531 psrlq $4,%mm5 532 movq %mm3,96(%ebp) 533 shll $4,%edx 534 movb %dl,14(%esp) 535 movl 120(%ebx),%edx 536 movq 120(%ebx),%mm0 537 psllq $60,%mm6 538 movq 112(%ebx),%mm3 539 por %mm6,%mm2 540 movq %mm1,-16(%edi) 541 psrlq $4,%mm1 542 movq %mm4,112(%edi) 543 movq %mm4,%mm7 544 movq %mm2,-24(%ebp) 545 psrlq $4,%mm4 546 movq %mm5,104(%ebp) 547 shll $4,%edx 548 movb %dl,15(%esp) 549 psllq $60,%mm7 550 por %mm7,%mm1 551 movq %mm0,-8(%edi) 552 psrlq $4,%mm0 553 movq %mm3,120(%edi) 554 movq %mm3,%mm6 555 movq %mm1,-16(%ebp) 556 psrlq $4,%mm3 557 movq %mm4,112(%ebp) 558 psllq $60,%mm6 559 por %mm6,%mm0 560 movq %mm0,-8(%ebp) 561 movq %mm3,120(%ebp) 562 movq (%eax),%mm6 563 movl 8(%eax),%ebx 564 movl 12(%eax),%edx 565.align 16 566.L009outer: 567 xorl 12(%ecx),%edx 568 xorl 8(%ecx),%ebx 569 pxor (%ecx),%mm6 570 leal 16(%ecx),%ecx 571 movl %ebx,536(%esp) 572 movq %mm6,528(%esp) 573 movl %ecx,548(%esp) 574 xorl %eax,%eax 575 roll $8,%edx 576 movb %dl,%al 577 movl %eax,%ebp 578 andb $15,%al 579 shrl $4,%ebp 580 pxor %mm0,%mm0 581 roll $8,%edx 582 pxor %mm1,%mm1 583 pxor %mm2,%mm2 584 movq 16(%esp,%eax,8),%mm7 585 movq 144(%esp,%eax,8),%mm6 586 movb %dl,%al 587 movd %mm7,%ebx 588 psrlq $8,%mm7 589 movq %mm6,%mm3 590 movl %eax,%edi 591 psrlq $8,%mm6 592 pxor 272(%esp,%ebp,8),%mm7 593 andb $15,%al 594 psllq $56,%mm3 595 shrl $4,%edi 596 pxor 16(%esp,%eax,8),%mm7 597 roll $8,%edx 598 pxor 144(%esp,%eax,8),%mm6 599 pxor %mm3,%mm7 600 pxor 400(%esp,%ebp,8),%mm6 601 xorb (%esp,%ebp,1),%bl 602 movb %dl,%al 603 movd %mm7,%ecx 604 movzbl %bl,%ebx 605 psrlq $8,%mm7 606 movq %mm6,%mm3 607 movl %eax,%ebp 608 psrlq $8,%mm6 609 pxor 272(%esp,%edi,8),%mm7 610 andb $15,%al 611 psllq $56,%mm3 612 shrl $4,%ebp 613 pinsrw $2,(%esi,%ebx,2),%mm2 614 pxor 16(%esp,%eax,8),%mm7 615 roll $8,%edx 616 pxor 144(%esp,%eax,8),%mm6 617 pxor %mm3,%mm7 618 pxor 400(%esp,%edi,8),%mm6 619 xorb (%esp,%edi,1),%cl 620 movb %dl,%al 621 movl 536(%esp),%edx 622 movd %mm7,%ebx 623 movzbl %cl,%ecx 624 psrlq $8,%mm7 625 movq %mm6,%mm3 626 movl %eax,%edi 627 psrlq $8,%mm6 628 pxor 272(%esp,%ebp,8),%mm7 629 andb $15,%al 630 psllq $56,%mm3 631 pxor %mm2,%mm6 632 shrl $4,%edi 633 pinsrw $2,(%esi,%ecx,2),%mm1 634 pxor 16(%esp,%eax,8),%mm7 635 roll $8,%edx 636 pxor 144(%esp,%eax,8),%mm6 637 pxor %mm3,%mm7 638 pxor 400(%esp,%ebp,8),%mm6 639 xorb (%esp,%ebp,1),%bl 640 movb %dl,%al 641 movd %mm7,%ecx 642 movzbl %bl,%ebx 643 psrlq $8,%mm7 644 movq %mm6,%mm3 645 movl %eax,%ebp 646 psrlq $8,%mm6 647 pxor 272(%esp,%edi,8),%mm7 648 andb $15,%al 649 psllq $56,%mm3 650 pxor %mm1,%mm6 651 shrl $4,%ebp 652 pinsrw $2,(%esi,%ebx,2),%mm0 653 pxor 16(%esp,%eax,8),%mm7 654 roll $8,%edx 655 pxor 144(%esp,%eax,8),%mm6 656 pxor %mm3,%mm7 657 pxor 400(%esp,%edi,8),%mm6 658 xorb (%esp,%edi,1),%cl 659 movb %dl,%al 660 movd %mm7,%ebx 661 movzbl %cl,%ecx 662 psrlq $8,%mm7 663 movq %mm6,%mm3 664 movl %eax,%edi 665 psrlq $8,%mm6 666 pxor 272(%esp,%ebp,8),%mm7 667 andb $15,%al 668 psllq $56,%mm3 669 pxor %mm0,%mm6 670 shrl $4,%edi 671 pinsrw $2,(%esi,%ecx,2),%mm2 672 pxor 16(%esp,%eax,8),%mm7 673 roll $8,%edx 674 pxor 144(%esp,%eax,8),%mm6 675 pxor %mm3,%mm7 676 pxor 400(%esp,%ebp,8),%mm6 677 xorb (%esp,%ebp,1),%bl 678 movb %dl,%al 679 movd %mm7,%ecx 680 movzbl %bl,%ebx 681 psrlq $8,%mm7 682 movq %mm6,%mm3 683 movl %eax,%ebp 684 psrlq $8,%mm6 685 pxor 272(%esp,%edi,8),%mm7 686 andb $15,%al 687 psllq $56,%mm3 688 pxor %mm2,%mm6 689 shrl $4,%ebp 690 pinsrw $2,(%esi,%ebx,2),%mm1 691 pxor 16(%esp,%eax,8),%mm7 692 roll $8,%edx 693 pxor 144(%esp,%eax,8),%mm6 694 pxor %mm3,%mm7 695 pxor 400(%esp,%edi,8),%mm6 696 xorb (%esp,%edi,1),%cl 697 movb %dl,%al 698 movl 532(%esp),%edx 699 movd %mm7,%ebx 700 movzbl %cl,%ecx 701 psrlq $8,%mm7 702 movq %mm6,%mm3 703 movl %eax,%edi 704 psrlq $8,%mm6 705 pxor 272(%esp,%ebp,8),%mm7 706 andb $15,%al 707 psllq $56,%mm3 708 pxor %mm1,%mm6 709 shrl $4,%edi 710 pinsrw $2,(%esi,%ecx,2),%mm0 711 pxor 16(%esp,%eax,8),%mm7 712 roll $8,%edx 713 pxor 144(%esp,%eax,8),%mm6 714 pxor %mm3,%mm7 715 pxor 400(%esp,%ebp,8),%mm6 716 xorb (%esp,%ebp,1),%bl 717 movb %dl,%al 718 movd %mm7,%ecx 719 movzbl %bl,%ebx 720 psrlq $8,%mm7 721 movq %mm6,%mm3 722 movl %eax,%ebp 723 psrlq $8,%mm6 724 pxor 272(%esp,%edi,8),%mm7 725 andb $15,%al 726 psllq $56,%mm3 727 pxor %mm0,%mm6 728 shrl $4,%ebp 729 pinsrw $2,(%esi,%ebx,2),%mm2 730 pxor 16(%esp,%eax,8),%mm7 731 roll $8,%edx 732 pxor 144(%esp,%eax,8),%mm6 733 pxor %mm3,%mm7 734 pxor 400(%esp,%edi,8),%mm6 735 xorb (%esp,%edi,1),%cl 736 movb %dl,%al 737 movd %mm7,%ebx 738 movzbl %cl,%ecx 739 psrlq $8,%mm7 740 movq %mm6,%mm3 741 movl %eax,%edi 742 psrlq $8,%mm6 743 pxor 272(%esp,%ebp,8),%mm7 744 andb $15,%al 745 psllq $56,%mm3 746 pxor %mm2,%mm6 747 shrl $4,%edi 748 pinsrw $2,(%esi,%ecx,2),%mm1 749 pxor 16(%esp,%eax,8),%mm7 750 roll $8,%edx 751 pxor 144(%esp,%eax,8),%mm6 752 pxor %mm3,%mm7 753 pxor 400(%esp,%ebp,8),%mm6 754 xorb (%esp,%ebp,1),%bl 755 movb %dl,%al 756 movd %mm7,%ecx 757 movzbl %bl,%ebx 758 psrlq $8,%mm7 759 movq %mm6,%mm3 760 movl %eax,%ebp 761 psrlq $8,%mm6 762 pxor 272(%esp,%edi,8),%mm7 763 andb $15,%al 764 psllq $56,%mm3 765 pxor %mm1,%mm6 766 shrl $4,%ebp 767 pinsrw $2,(%esi,%ebx,2),%mm0 768 pxor 16(%esp,%eax,8),%mm7 769 roll $8,%edx 770 pxor 144(%esp,%eax,8),%mm6 771 pxor %mm3,%mm7 772 pxor 400(%esp,%edi,8),%mm6 773 xorb (%esp,%edi,1),%cl 774 movb %dl,%al 775 movl 528(%esp),%edx 776 movd %mm7,%ebx 777 movzbl %cl,%ecx 778 psrlq $8,%mm7 779 movq %mm6,%mm3 780 movl %eax,%edi 781 psrlq $8,%mm6 782 pxor 272(%esp,%ebp,8),%mm7 783 andb $15,%al 784 psllq $56,%mm3 785 pxor %mm0,%mm6 786 shrl $4,%edi 787 pinsrw $2,(%esi,%ecx,2),%mm2 788 pxor 16(%esp,%eax,8),%mm7 789 roll $8,%edx 790 pxor 144(%esp,%eax,8),%mm6 791 pxor %mm3,%mm7 792 pxor 400(%esp,%ebp,8),%mm6 793 xorb (%esp,%ebp,1),%bl 794 movb %dl,%al 795 movd %mm7,%ecx 796 movzbl %bl,%ebx 797 psrlq $8,%mm7 798 movq %mm6,%mm3 799 movl %eax,%ebp 800 psrlq $8,%mm6 801 pxor 272(%esp,%edi,8),%mm7 802 andb $15,%al 803 psllq $56,%mm3 804 pxor %mm2,%mm6 805 shrl $4,%ebp 806 pinsrw $2,(%esi,%ebx,2),%mm1 807 pxor 16(%esp,%eax,8),%mm7 808 roll $8,%edx 809 pxor 144(%esp,%eax,8),%mm6 810 pxor %mm3,%mm7 811 pxor 400(%esp,%edi,8),%mm6 812 xorb (%esp,%edi,1),%cl 813 movb %dl,%al 814 movd %mm7,%ebx 815 movzbl %cl,%ecx 816 psrlq $8,%mm7 817 movq %mm6,%mm3 818 movl %eax,%edi 819 psrlq $8,%mm6 820 pxor 272(%esp,%ebp,8),%mm7 821 andb $15,%al 822 psllq $56,%mm3 823 pxor %mm1,%mm6 824 shrl $4,%edi 825 pinsrw $2,(%esi,%ecx,2),%mm0 826 pxor 16(%esp,%eax,8),%mm7 827 roll $8,%edx 828 pxor 144(%esp,%eax,8),%mm6 829 pxor %mm3,%mm7 830 pxor 400(%esp,%ebp,8),%mm6 831 xorb (%esp,%ebp,1),%bl 832 movb %dl,%al 833 movd %mm7,%ecx 834 movzbl %bl,%ebx 835 psrlq $8,%mm7 836 movq %mm6,%mm3 837 movl %eax,%ebp 838 psrlq $8,%mm6 839 pxor 272(%esp,%edi,8),%mm7 840 andb $15,%al 841 psllq $56,%mm3 842 pxor %mm0,%mm6 843 shrl $4,%ebp 844 pinsrw $2,(%esi,%ebx,2),%mm2 845 pxor 16(%esp,%eax,8),%mm7 846 roll $8,%edx 847 pxor 144(%esp,%eax,8),%mm6 848 pxor %mm3,%mm7 849 pxor 400(%esp,%edi,8),%mm6 850 xorb (%esp,%edi,1),%cl 851 movb %dl,%al 852 movl 524(%esp),%edx 853 movd %mm7,%ebx 854 movzbl %cl,%ecx 855 psrlq $8,%mm7 856 movq %mm6,%mm3 857 movl %eax,%edi 858 psrlq $8,%mm6 859 pxor 272(%esp,%ebp,8),%mm7 860 andb $15,%al 861 psllq $56,%mm3 862 pxor %mm2,%mm6 863 shrl $4,%edi 864 pinsrw $2,(%esi,%ecx,2),%mm1 865 pxor 16(%esp,%eax,8),%mm7 866 pxor 144(%esp,%eax,8),%mm6 867 xorb (%esp,%ebp,1),%bl 868 pxor %mm3,%mm7 869 pxor 400(%esp,%ebp,8),%mm6 870 movzbl %bl,%ebx 871 pxor %mm2,%mm2 872 psllq $4,%mm1 873 movd %mm7,%ecx 874 psrlq $4,%mm7 875 movq %mm6,%mm3 876 psrlq $4,%mm6 877 shll $4,%ecx 878 pxor 16(%esp,%edi,8),%mm7 879 psllq $60,%mm3 880 movzbl %cl,%ecx 881 pxor %mm3,%mm7 882 pxor 144(%esp,%edi,8),%mm6 883 pinsrw $2,(%esi,%ebx,2),%mm0 884 pxor %mm1,%mm6 885 movd %mm7,%edx 886 pinsrw $3,(%esi,%ecx,2),%mm2 887 psllq $12,%mm0 888 pxor %mm0,%mm6 889 psrlq $32,%mm7 890 pxor %mm2,%mm6 891 movl 548(%esp),%ecx 892 movd %mm7,%ebx 893 movq %mm6,%mm3 894 psllw $8,%mm6 895 psrlw $8,%mm3 896 por %mm3,%mm6 897 bswap %edx 898 pshufw $27,%mm6,%mm6 899 bswap %ebx 900 cmpl 552(%esp),%ecx 901 jne .L009outer 902 movl 544(%esp),%eax 903 movl %edx,12(%eax) 904 movl %ebx,8(%eax) 905 movq %mm6,(%eax) 906 movl 556(%esp),%esp 907 emms 908 popl %edi 909 popl %esi 910 popl %ebx 911 popl %ebp 912 ret 913.size gcm_ghash_4bit_mmx,.-.L_gcm_ghash_4bit_mmx_begin 914.globl gcm_init_clmul 915.hidden gcm_init_clmul 916.type gcm_init_clmul,@function 917.align 16 918gcm_init_clmul: 919.L_gcm_init_clmul_begin: 920 movl 4(%esp),%edx 921 movl 8(%esp),%eax 922 call .L010pic 923.L010pic: 924 popl %ecx 925 leal .Lbswap-.L010pic(%ecx),%ecx 926 movdqu (%eax),%xmm2 927 pshufd $78,%xmm2,%xmm2 928 pshufd $255,%xmm2,%xmm4 929 movdqa %xmm2,%xmm3 930 psllq $1,%xmm2 931 pxor %xmm5,%xmm5 932 psrlq $63,%xmm3 933 pcmpgtd %xmm4,%xmm5 934 pslldq $8,%xmm3 935 por %xmm3,%xmm2 936 pand 16(%ecx),%xmm5 937 pxor %xmm5,%xmm2 938 movdqa %xmm2,%xmm0 939 movdqa %xmm0,%xmm1 940 pshufd $78,%xmm0,%xmm3 941 pshufd $78,%xmm2,%xmm4 942 pxor %xmm0,%xmm3 943 pxor %xmm2,%xmm4 944.byte 102,15,58,68,194,0 945.byte 102,15,58,68,202,17 946.byte 102,15,58,68,220,0 947 xorps %xmm0,%xmm3 948 xorps %xmm1,%xmm3 949 movdqa %xmm3,%xmm4 950 psrldq $8,%xmm3 951 pslldq $8,%xmm4 952 pxor %xmm3,%xmm1 953 pxor %xmm4,%xmm0 954 movdqa %xmm0,%xmm4 955 movdqa %xmm0,%xmm3 956 psllq $5,%xmm0 957 pxor %xmm0,%xmm3 958 psllq $1,%xmm0 959 pxor %xmm3,%xmm0 960 psllq $57,%xmm0 961 movdqa %xmm0,%xmm3 962 pslldq $8,%xmm0 963 psrldq $8,%xmm3 964 pxor %xmm4,%xmm0 965 pxor %xmm3,%xmm1 966 movdqa %xmm0,%xmm4 967 psrlq $1,%xmm0 968 pxor %xmm4,%xmm1 969 pxor %xmm0,%xmm4 970 psrlq $5,%xmm0 971 pxor %xmm4,%xmm0 972 psrlq $1,%xmm0 973 pxor %xmm1,%xmm0 974 pshufd $78,%xmm2,%xmm3 975 pshufd $78,%xmm0,%xmm4 976 pxor %xmm2,%xmm3 977 movdqu %xmm2,(%edx) 978 pxor %xmm0,%xmm4 979 movdqu %xmm0,16(%edx) 980.byte 102,15,58,15,227,8 981 movdqu %xmm4,32(%edx) 982 ret 983.size gcm_init_clmul,.-.L_gcm_init_clmul_begin 984.globl gcm_gmult_clmul 985.hidden gcm_gmult_clmul 986.type gcm_gmult_clmul,@function 987.align 16 988gcm_gmult_clmul: 989.L_gcm_gmult_clmul_begin: 990 movl 4(%esp),%eax 991 movl 8(%esp),%edx 992 call .L011pic 993.L011pic: 994 popl %ecx 995 leal .Lbswap-.L011pic(%ecx),%ecx 996 movdqu (%eax),%xmm0 997 movdqa (%ecx),%xmm5 998 movups (%edx),%xmm2 999.byte 102,15,56,0,197 1000 movups 32(%edx),%xmm4 1001 movdqa %xmm0,%xmm1 1002 pshufd $78,%xmm0,%xmm3 1003 pxor %xmm0,%xmm3 1004.byte 102,15,58,68,194,0 1005.byte 102,15,58,68,202,17 1006.byte 102,15,58,68,220,0 1007 xorps %xmm0,%xmm3 1008 xorps %xmm1,%xmm3 1009 movdqa %xmm3,%xmm4 1010 psrldq $8,%xmm3 1011 pslldq $8,%xmm4 1012 pxor %xmm3,%xmm1 1013 pxor %xmm4,%xmm0 1014 movdqa %xmm0,%xmm4 1015 movdqa %xmm0,%xmm3 1016 psllq $5,%xmm0 1017 pxor %xmm0,%xmm3 1018 psllq $1,%xmm0 1019 pxor %xmm3,%xmm0 1020 psllq $57,%xmm0 1021 movdqa %xmm0,%xmm3 1022 pslldq $8,%xmm0 1023 psrldq $8,%xmm3 1024 pxor %xmm4,%xmm0 1025 pxor %xmm3,%xmm1 1026 movdqa %xmm0,%xmm4 1027 psrlq $1,%xmm0 1028 pxor %xmm4,%xmm1 1029 pxor %xmm0,%xmm4 1030 psrlq $5,%xmm0 1031 pxor %xmm4,%xmm0 1032 psrlq $1,%xmm0 1033 pxor %xmm1,%xmm0 1034.byte 102,15,56,0,197 1035 movdqu %xmm0,(%eax) 1036 ret 1037.size gcm_gmult_clmul,.-.L_gcm_gmult_clmul_begin 1038.globl gcm_ghash_clmul 1039.hidden gcm_ghash_clmul 1040.type gcm_ghash_clmul,@function 1041.align 16 1042gcm_ghash_clmul: 1043.L_gcm_ghash_clmul_begin: 1044 pushl %ebp 1045 pushl %ebx 1046 pushl %esi 1047 pushl %edi 1048 movl 20(%esp),%eax 1049 movl 24(%esp),%edx 1050 movl 28(%esp),%esi 1051 movl 32(%esp),%ebx 1052 call .L012pic 1053.L012pic: 1054 popl %ecx 1055 leal .Lbswap-.L012pic(%ecx),%ecx 1056 movdqu (%eax),%xmm0 1057 movdqa (%ecx),%xmm5 1058 movdqu (%edx),%xmm2 1059.byte 102,15,56,0,197 1060 subl $16,%ebx 1061 jz .L013odd_tail 1062 movdqu (%esi),%xmm3 1063 movdqu 16(%esi),%xmm6 1064.byte 102,15,56,0,221 1065.byte 102,15,56,0,245 1066 movdqu 32(%edx),%xmm5 1067 pxor %xmm3,%xmm0 1068 pshufd $78,%xmm6,%xmm3 1069 movdqa %xmm6,%xmm7 1070 pxor %xmm6,%xmm3 1071 leal 32(%esi),%esi 1072.byte 102,15,58,68,242,0 1073.byte 102,15,58,68,250,17 1074.byte 102,15,58,68,221,0 1075 movups 16(%edx),%xmm2 1076 nop 1077 subl $32,%ebx 1078 jbe .L014even_tail 1079 jmp .L015mod_loop 1080.align 32 1081.L015mod_loop: 1082 pshufd $78,%xmm0,%xmm4 1083 movdqa %xmm0,%xmm1 1084 pxor %xmm0,%xmm4 1085 nop 1086.byte 102,15,58,68,194,0 1087.byte 102,15,58,68,202,17 1088.byte 102,15,58,68,229,16 1089 movups (%edx),%xmm2 1090 xorps %xmm6,%xmm0 1091 movdqa (%ecx),%xmm5 1092 xorps %xmm7,%xmm1 1093 movdqu (%esi),%xmm7 1094 pxor %xmm0,%xmm3 1095 movdqu 16(%esi),%xmm6 1096 pxor %xmm1,%xmm3 1097.byte 102,15,56,0,253 1098 pxor %xmm3,%xmm4 1099 movdqa %xmm4,%xmm3 1100 psrldq $8,%xmm4 1101 pslldq $8,%xmm3 1102 pxor %xmm4,%xmm1 1103 pxor %xmm3,%xmm0 1104.byte 102,15,56,0,245 1105 pxor %xmm7,%xmm1 1106 movdqa %xmm6,%xmm7 1107 movdqa %xmm0,%xmm4 1108 movdqa %xmm0,%xmm3 1109 psllq $5,%xmm0 1110 pxor %xmm0,%xmm3 1111 psllq $1,%xmm0 1112 pxor %xmm3,%xmm0 1113.byte 102,15,58,68,242,0 1114 movups 32(%edx),%xmm5 1115 psllq $57,%xmm0 1116 movdqa %xmm0,%xmm3 1117 pslldq $8,%xmm0 1118 psrldq $8,%xmm3 1119 pxor %xmm4,%xmm0 1120 pxor %xmm3,%xmm1 1121 pshufd $78,%xmm7,%xmm3 1122 movdqa %xmm0,%xmm4 1123 psrlq $1,%xmm0 1124 pxor %xmm7,%xmm3 1125 pxor %xmm4,%xmm1 1126.byte 102,15,58,68,250,17 1127 movups 16(%edx),%xmm2 1128 pxor %xmm0,%xmm4 1129 psrlq $5,%xmm0 1130 pxor %xmm4,%xmm0 1131 psrlq $1,%xmm0 1132 pxor %xmm1,%xmm0 1133.byte 102,15,58,68,221,0 1134 leal 32(%esi),%esi 1135 subl $32,%ebx 1136 ja .L015mod_loop 1137.L014even_tail: 1138 pshufd $78,%xmm0,%xmm4 1139 movdqa %xmm0,%xmm1 1140 pxor %xmm0,%xmm4 1141.byte 102,15,58,68,194,0 1142.byte 102,15,58,68,202,17 1143.byte 102,15,58,68,229,16 1144 movdqa (%ecx),%xmm5 1145 xorps %xmm6,%xmm0 1146 xorps %xmm7,%xmm1 1147 pxor %xmm0,%xmm3 1148 pxor %xmm1,%xmm3 1149 pxor %xmm3,%xmm4 1150 movdqa %xmm4,%xmm3 1151 psrldq $8,%xmm4 1152 pslldq $8,%xmm3 1153 pxor %xmm4,%xmm1 1154 pxor %xmm3,%xmm0 1155 movdqa %xmm0,%xmm4 1156 movdqa %xmm0,%xmm3 1157 psllq $5,%xmm0 1158 pxor %xmm0,%xmm3 1159 psllq $1,%xmm0 1160 pxor %xmm3,%xmm0 1161 psllq $57,%xmm0 1162 movdqa %xmm0,%xmm3 1163 pslldq $8,%xmm0 1164 psrldq $8,%xmm3 1165 pxor %xmm4,%xmm0 1166 pxor %xmm3,%xmm1 1167 movdqa %xmm0,%xmm4 1168 psrlq $1,%xmm0 1169 pxor %xmm4,%xmm1 1170 pxor %xmm0,%xmm4 1171 psrlq $5,%xmm0 1172 pxor %xmm4,%xmm0 1173 psrlq $1,%xmm0 1174 pxor %xmm1,%xmm0 1175 testl %ebx,%ebx 1176 jnz .L016done 1177 movups (%edx),%xmm2 1178.L013odd_tail: 1179 movdqu (%esi),%xmm3 1180.byte 102,15,56,0,221 1181 pxor %xmm3,%xmm0 1182 movdqa %xmm0,%xmm1 1183 pshufd $78,%xmm0,%xmm3 1184 pshufd $78,%xmm2,%xmm4 1185 pxor %xmm0,%xmm3 1186 pxor %xmm2,%xmm4 1187.byte 102,15,58,68,194,0 1188.byte 102,15,58,68,202,17 1189.byte 102,15,58,68,220,0 1190 xorps %xmm0,%xmm3 1191 xorps %xmm1,%xmm3 1192 movdqa %xmm3,%xmm4 1193 psrldq $8,%xmm3 1194 pslldq $8,%xmm4 1195 pxor %xmm3,%xmm1 1196 pxor %xmm4,%xmm0 1197 movdqa %xmm0,%xmm4 1198 movdqa %xmm0,%xmm3 1199 psllq $5,%xmm0 1200 pxor %xmm0,%xmm3 1201 psllq $1,%xmm0 1202 pxor %xmm3,%xmm0 1203 psllq $57,%xmm0 1204 movdqa %xmm0,%xmm3 1205 pslldq $8,%xmm0 1206 psrldq $8,%xmm3 1207 pxor %xmm4,%xmm0 1208 pxor %xmm3,%xmm1 1209 movdqa %xmm0,%xmm4 1210 psrlq $1,%xmm0 1211 pxor %xmm4,%xmm1 1212 pxor %xmm0,%xmm4 1213 psrlq $5,%xmm0 1214 pxor %xmm4,%xmm0 1215 psrlq $1,%xmm0 1216 pxor %xmm1,%xmm0 1217.L016done: 1218.byte 102,15,56,0,197 1219 movdqu %xmm0,(%eax) 1220 popl %edi 1221 popl %esi 1222 popl %ebx 1223 popl %ebp 1224 ret 1225.size gcm_ghash_clmul,.-.L_gcm_ghash_clmul_begin 1226.align 64 1227.Lbswap: 1228.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 1229.byte 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194 1230.align 64 1231.Lrem_8bit: 1232.value 0,450,900,582,1800,1738,1164,1358 1233.value 3600,4050,3476,3158,2328,2266,2716,2910 1234.value 7200,7650,8100,7782,6952,6890,6316,6510 1235.value 4656,5106,4532,4214,5432,5370,5820,6014 1236.value 14400,14722,15300,14854,16200,16010,15564,15630 1237.value 13904,14226,13780,13334,12632,12442,13020,13086 1238.value 9312,9634,10212,9766,9064,8874,8428,8494 1239.value 10864,11186,10740,10294,11640,11450,12028,12094 1240.value 28800,28994,29444,29382,30600,30282,29708,30158 1241.value 32400,32594,32020,31958,31128,30810,31260,31710 1242.value 27808,28002,28452,28390,27560,27242,26668,27118 1243.value 25264,25458,24884,24822,26040,25722,26172,26622 1244.value 18624,18690,19268,19078,20424,19978,19532,19854 1245.value 18128,18194,17748,17558,16856,16410,16988,17310 1246.value 21728,21794,22372,22182,21480,21034,20588,20910 1247.value 23280,23346,22900,22710,24056,23610,24188,24510 1248.value 57600,57538,57988,58182,58888,59338,58764,58446 1249.value 61200,61138,60564,60758,59416,59866,60316,59998 1250.value 64800,64738,65188,65382,64040,64490,63916,63598 1251.value 62256,62194,61620,61814,62520,62970,63420,63102 1252.value 55616,55426,56004,56070,56904,57226,56780,56334 1253.value 55120,54930,54484,54550,53336,53658,54236,53790 1254.value 50528,50338,50916,50982,49768,50090,49644,49198 1255.value 52080,51890,51444,51510,52344,52666,53244,52798 1256.value 37248,36930,37380,37830,38536,38730,38156,38094 1257.value 40848,40530,39956,40406,39064,39258,39708,39646 1258.value 36256,35938,36388,36838,35496,35690,35116,35054 1259.value 33712,33394,32820,33270,33976,34170,34620,34558 1260.value 43456,43010,43588,43910,44744,44810,44364,44174 1261.value 42960,42514,42068,42390,41176,41242,41820,41630 1262.value 46560,46114,46692,47014,45800,45866,45420,45230 1263.value 48112,47666,47220,47542,48376,48442,49020,48830 1264.align 64 1265.Lrem_4bit: 1266.long 0,0,0,471859200,0,943718400,0,610271232 1267.long 0,1887436800,0,1822425088,0,1220542464,0,1423966208 1268.long 0,3774873600,0,4246732800,0,3644850176,0,3311403008 1269.long 0,2441084928,0,2376073216,0,2847932416,0,3051356160 1270.byte 71,72,65,83,72,32,102,111,114,32,120,56,54,44,32,67 1271.byte 82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112 1272.byte 112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62 1273.byte 0 1274#endif 1275