1*c9496f6bSchristos#include <machine/asm.h> 2*c9496f6bSchristos.text 3*c9496f6bSchristos.globl DES_SPtrans 4*c9496f6bSchristos.type _x86_DES_encrypt,@function 5*c9496f6bSchristos.align 16 6*c9496f6bSchristos_x86_DES_encrypt: 7*c9496f6bSchristos pushl %ecx 8*c9496f6bSchristos 9*c9496f6bSchristos movl (%ecx),%eax 10*c9496f6bSchristos xorl %ebx,%ebx 11*c9496f6bSchristos movl 4(%ecx),%edx 12*c9496f6bSchristos xorl %esi,%eax 13*c9496f6bSchristos xorl %ecx,%ecx 14*c9496f6bSchristos xorl %esi,%edx 15*c9496f6bSchristos andl $0xfcfcfcfc,%eax 16*c9496f6bSchristos andl $0xcfcfcfcf,%edx 17*c9496f6bSchristos movb %al,%bl 18*c9496f6bSchristos movb %ah,%cl 19*c9496f6bSchristos rorl $4,%edx 20*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 21*c9496f6bSchristos movb %dl,%bl 22*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 23*c9496f6bSchristos movb %dh,%cl 24*c9496f6bSchristos shrl $16,%eax 25*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 26*c9496f6bSchristos movb %ah,%bl 27*c9496f6bSchristos shrl $16,%edx 28*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 29*c9496f6bSchristos movb %dh,%cl 30*c9496f6bSchristos andl $0xff,%eax 31*c9496f6bSchristos andl $0xff,%edx 32*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 33*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 34*c9496f6bSchristos movl (%esp),%ecx 35*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 36*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 37*c9496f6bSchristos 38*c9496f6bSchristos movl 8(%ecx),%eax 39*c9496f6bSchristos xorl %ebx,%ebx 40*c9496f6bSchristos movl 12(%ecx),%edx 41*c9496f6bSchristos xorl %edi,%eax 42*c9496f6bSchristos xorl %ecx,%ecx 43*c9496f6bSchristos xorl %edi,%edx 44*c9496f6bSchristos andl $0xfcfcfcfc,%eax 45*c9496f6bSchristos andl $0xcfcfcfcf,%edx 46*c9496f6bSchristos movb %al,%bl 47*c9496f6bSchristos movb %ah,%cl 48*c9496f6bSchristos rorl $4,%edx 49*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 50*c9496f6bSchristos movb %dl,%bl 51*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 52*c9496f6bSchristos movb %dh,%cl 53*c9496f6bSchristos shrl $16,%eax 54*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 55*c9496f6bSchristos movb %ah,%bl 56*c9496f6bSchristos shrl $16,%edx 57*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 58*c9496f6bSchristos movb %dh,%cl 59*c9496f6bSchristos andl $0xff,%eax 60*c9496f6bSchristos andl $0xff,%edx 61*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 62*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 63*c9496f6bSchristos movl (%esp),%ecx 64*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 65*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 66*c9496f6bSchristos 67*c9496f6bSchristos movl 16(%ecx),%eax 68*c9496f6bSchristos xorl %ebx,%ebx 69*c9496f6bSchristos movl 20(%ecx),%edx 70*c9496f6bSchristos xorl %esi,%eax 71*c9496f6bSchristos xorl %ecx,%ecx 72*c9496f6bSchristos xorl %esi,%edx 73*c9496f6bSchristos andl $0xfcfcfcfc,%eax 74*c9496f6bSchristos andl $0xcfcfcfcf,%edx 75*c9496f6bSchristos movb %al,%bl 76*c9496f6bSchristos movb %ah,%cl 77*c9496f6bSchristos rorl $4,%edx 78*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 79*c9496f6bSchristos movb %dl,%bl 80*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 81*c9496f6bSchristos movb %dh,%cl 82*c9496f6bSchristos shrl $16,%eax 83*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 84*c9496f6bSchristos movb %ah,%bl 85*c9496f6bSchristos shrl $16,%edx 86*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 87*c9496f6bSchristos movb %dh,%cl 88*c9496f6bSchristos andl $0xff,%eax 89*c9496f6bSchristos andl $0xff,%edx 90*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 91*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 92*c9496f6bSchristos movl (%esp),%ecx 93*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 94*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 95*c9496f6bSchristos 96*c9496f6bSchristos movl 24(%ecx),%eax 97*c9496f6bSchristos xorl %ebx,%ebx 98*c9496f6bSchristos movl 28(%ecx),%edx 99*c9496f6bSchristos xorl %edi,%eax 100*c9496f6bSchristos xorl %ecx,%ecx 101*c9496f6bSchristos xorl %edi,%edx 102*c9496f6bSchristos andl $0xfcfcfcfc,%eax 103*c9496f6bSchristos andl $0xcfcfcfcf,%edx 104*c9496f6bSchristos movb %al,%bl 105*c9496f6bSchristos movb %ah,%cl 106*c9496f6bSchristos rorl $4,%edx 107*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 108*c9496f6bSchristos movb %dl,%bl 109*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 110*c9496f6bSchristos movb %dh,%cl 111*c9496f6bSchristos shrl $16,%eax 112*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 113*c9496f6bSchristos movb %ah,%bl 114*c9496f6bSchristos shrl $16,%edx 115*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 116*c9496f6bSchristos movb %dh,%cl 117*c9496f6bSchristos andl $0xff,%eax 118*c9496f6bSchristos andl $0xff,%edx 119*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 120*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 121*c9496f6bSchristos movl (%esp),%ecx 122*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 123*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 124*c9496f6bSchristos 125*c9496f6bSchristos movl 32(%ecx),%eax 126*c9496f6bSchristos xorl %ebx,%ebx 127*c9496f6bSchristos movl 36(%ecx),%edx 128*c9496f6bSchristos xorl %esi,%eax 129*c9496f6bSchristos xorl %ecx,%ecx 130*c9496f6bSchristos xorl %esi,%edx 131*c9496f6bSchristos andl $0xfcfcfcfc,%eax 132*c9496f6bSchristos andl $0xcfcfcfcf,%edx 133*c9496f6bSchristos movb %al,%bl 134*c9496f6bSchristos movb %ah,%cl 135*c9496f6bSchristos rorl $4,%edx 136*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 137*c9496f6bSchristos movb %dl,%bl 138*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 139*c9496f6bSchristos movb %dh,%cl 140*c9496f6bSchristos shrl $16,%eax 141*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 142*c9496f6bSchristos movb %ah,%bl 143*c9496f6bSchristos shrl $16,%edx 144*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 145*c9496f6bSchristos movb %dh,%cl 146*c9496f6bSchristos andl $0xff,%eax 147*c9496f6bSchristos andl $0xff,%edx 148*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 149*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 150*c9496f6bSchristos movl (%esp),%ecx 151*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 152*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 153*c9496f6bSchristos 154*c9496f6bSchristos movl 40(%ecx),%eax 155*c9496f6bSchristos xorl %ebx,%ebx 156*c9496f6bSchristos movl 44(%ecx),%edx 157*c9496f6bSchristos xorl %edi,%eax 158*c9496f6bSchristos xorl %ecx,%ecx 159*c9496f6bSchristos xorl %edi,%edx 160*c9496f6bSchristos andl $0xfcfcfcfc,%eax 161*c9496f6bSchristos andl $0xcfcfcfcf,%edx 162*c9496f6bSchristos movb %al,%bl 163*c9496f6bSchristos movb %ah,%cl 164*c9496f6bSchristos rorl $4,%edx 165*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 166*c9496f6bSchristos movb %dl,%bl 167*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 168*c9496f6bSchristos movb %dh,%cl 169*c9496f6bSchristos shrl $16,%eax 170*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 171*c9496f6bSchristos movb %ah,%bl 172*c9496f6bSchristos shrl $16,%edx 173*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 174*c9496f6bSchristos movb %dh,%cl 175*c9496f6bSchristos andl $0xff,%eax 176*c9496f6bSchristos andl $0xff,%edx 177*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 178*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 179*c9496f6bSchristos movl (%esp),%ecx 180*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 181*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 182*c9496f6bSchristos 183*c9496f6bSchristos movl 48(%ecx),%eax 184*c9496f6bSchristos xorl %ebx,%ebx 185*c9496f6bSchristos movl 52(%ecx),%edx 186*c9496f6bSchristos xorl %esi,%eax 187*c9496f6bSchristos xorl %ecx,%ecx 188*c9496f6bSchristos xorl %esi,%edx 189*c9496f6bSchristos andl $0xfcfcfcfc,%eax 190*c9496f6bSchristos andl $0xcfcfcfcf,%edx 191*c9496f6bSchristos movb %al,%bl 192*c9496f6bSchristos movb %ah,%cl 193*c9496f6bSchristos rorl $4,%edx 194*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 195*c9496f6bSchristos movb %dl,%bl 196*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 197*c9496f6bSchristos movb %dh,%cl 198*c9496f6bSchristos shrl $16,%eax 199*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 200*c9496f6bSchristos movb %ah,%bl 201*c9496f6bSchristos shrl $16,%edx 202*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 203*c9496f6bSchristos movb %dh,%cl 204*c9496f6bSchristos andl $0xff,%eax 205*c9496f6bSchristos andl $0xff,%edx 206*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 207*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 208*c9496f6bSchristos movl (%esp),%ecx 209*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 210*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 211*c9496f6bSchristos 212*c9496f6bSchristos movl 56(%ecx),%eax 213*c9496f6bSchristos xorl %ebx,%ebx 214*c9496f6bSchristos movl 60(%ecx),%edx 215*c9496f6bSchristos xorl %edi,%eax 216*c9496f6bSchristos xorl %ecx,%ecx 217*c9496f6bSchristos xorl %edi,%edx 218*c9496f6bSchristos andl $0xfcfcfcfc,%eax 219*c9496f6bSchristos andl $0xcfcfcfcf,%edx 220*c9496f6bSchristos movb %al,%bl 221*c9496f6bSchristos movb %ah,%cl 222*c9496f6bSchristos rorl $4,%edx 223*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 224*c9496f6bSchristos movb %dl,%bl 225*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 226*c9496f6bSchristos movb %dh,%cl 227*c9496f6bSchristos shrl $16,%eax 228*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 229*c9496f6bSchristos movb %ah,%bl 230*c9496f6bSchristos shrl $16,%edx 231*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 232*c9496f6bSchristos movb %dh,%cl 233*c9496f6bSchristos andl $0xff,%eax 234*c9496f6bSchristos andl $0xff,%edx 235*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 236*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 237*c9496f6bSchristos movl (%esp),%ecx 238*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 239*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 240*c9496f6bSchristos 241*c9496f6bSchristos movl 64(%ecx),%eax 242*c9496f6bSchristos xorl %ebx,%ebx 243*c9496f6bSchristos movl 68(%ecx),%edx 244*c9496f6bSchristos xorl %esi,%eax 245*c9496f6bSchristos xorl %ecx,%ecx 246*c9496f6bSchristos xorl %esi,%edx 247*c9496f6bSchristos andl $0xfcfcfcfc,%eax 248*c9496f6bSchristos andl $0xcfcfcfcf,%edx 249*c9496f6bSchristos movb %al,%bl 250*c9496f6bSchristos movb %ah,%cl 251*c9496f6bSchristos rorl $4,%edx 252*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 253*c9496f6bSchristos movb %dl,%bl 254*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 255*c9496f6bSchristos movb %dh,%cl 256*c9496f6bSchristos shrl $16,%eax 257*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 258*c9496f6bSchristos movb %ah,%bl 259*c9496f6bSchristos shrl $16,%edx 260*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 261*c9496f6bSchristos movb %dh,%cl 262*c9496f6bSchristos andl $0xff,%eax 263*c9496f6bSchristos andl $0xff,%edx 264*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 265*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 266*c9496f6bSchristos movl (%esp),%ecx 267*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 268*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 269*c9496f6bSchristos 270*c9496f6bSchristos movl 72(%ecx),%eax 271*c9496f6bSchristos xorl %ebx,%ebx 272*c9496f6bSchristos movl 76(%ecx),%edx 273*c9496f6bSchristos xorl %edi,%eax 274*c9496f6bSchristos xorl %ecx,%ecx 275*c9496f6bSchristos xorl %edi,%edx 276*c9496f6bSchristos andl $0xfcfcfcfc,%eax 277*c9496f6bSchristos andl $0xcfcfcfcf,%edx 278*c9496f6bSchristos movb %al,%bl 279*c9496f6bSchristos movb %ah,%cl 280*c9496f6bSchristos rorl $4,%edx 281*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 282*c9496f6bSchristos movb %dl,%bl 283*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 284*c9496f6bSchristos movb %dh,%cl 285*c9496f6bSchristos shrl $16,%eax 286*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 287*c9496f6bSchristos movb %ah,%bl 288*c9496f6bSchristos shrl $16,%edx 289*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 290*c9496f6bSchristos movb %dh,%cl 291*c9496f6bSchristos andl $0xff,%eax 292*c9496f6bSchristos andl $0xff,%edx 293*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 294*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 295*c9496f6bSchristos movl (%esp),%ecx 296*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 297*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 298*c9496f6bSchristos 299*c9496f6bSchristos movl 80(%ecx),%eax 300*c9496f6bSchristos xorl %ebx,%ebx 301*c9496f6bSchristos movl 84(%ecx),%edx 302*c9496f6bSchristos xorl %esi,%eax 303*c9496f6bSchristos xorl %ecx,%ecx 304*c9496f6bSchristos xorl %esi,%edx 305*c9496f6bSchristos andl $0xfcfcfcfc,%eax 306*c9496f6bSchristos andl $0xcfcfcfcf,%edx 307*c9496f6bSchristos movb %al,%bl 308*c9496f6bSchristos movb %ah,%cl 309*c9496f6bSchristos rorl $4,%edx 310*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 311*c9496f6bSchristos movb %dl,%bl 312*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 313*c9496f6bSchristos movb %dh,%cl 314*c9496f6bSchristos shrl $16,%eax 315*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 316*c9496f6bSchristos movb %ah,%bl 317*c9496f6bSchristos shrl $16,%edx 318*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 319*c9496f6bSchristos movb %dh,%cl 320*c9496f6bSchristos andl $0xff,%eax 321*c9496f6bSchristos andl $0xff,%edx 322*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 323*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 324*c9496f6bSchristos movl (%esp),%ecx 325*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 326*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 327*c9496f6bSchristos 328*c9496f6bSchristos movl 88(%ecx),%eax 329*c9496f6bSchristos xorl %ebx,%ebx 330*c9496f6bSchristos movl 92(%ecx),%edx 331*c9496f6bSchristos xorl %edi,%eax 332*c9496f6bSchristos xorl %ecx,%ecx 333*c9496f6bSchristos xorl %edi,%edx 334*c9496f6bSchristos andl $0xfcfcfcfc,%eax 335*c9496f6bSchristos andl $0xcfcfcfcf,%edx 336*c9496f6bSchristos movb %al,%bl 337*c9496f6bSchristos movb %ah,%cl 338*c9496f6bSchristos rorl $4,%edx 339*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 340*c9496f6bSchristos movb %dl,%bl 341*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 342*c9496f6bSchristos movb %dh,%cl 343*c9496f6bSchristos shrl $16,%eax 344*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 345*c9496f6bSchristos movb %ah,%bl 346*c9496f6bSchristos shrl $16,%edx 347*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 348*c9496f6bSchristos movb %dh,%cl 349*c9496f6bSchristos andl $0xff,%eax 350*c9496f6bSchristos andl $0xff,%edx 351*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 352*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 353*c9496f6bSchristos movl (%esp),%ecx 354*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 355*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 356*c9496f6bSchristos 357*c9496f6bSchristos movl 96(%ecx),%eax 358*c9496f6bSchristos xorl %ebx,%ebx 359*c9496f6bSchristos movl 100(%ecx),%edx 360*c9496f6bSchristos xorl %esi,%eax 361*c9496f6bSchristos xorl %ecx,%ecx 362*c9496f6bSchristos xorl %esi,%edx 363*c9496f6bSchristos andl $0xfcfcfcfc,%eax 364*c9496f6bSchristos andl $0xcfcfcfcf,%edx 365*c9496f6bSchristos movb %al,%bl 366*c9496f6bSchristos movb %ah,%cl 367*c9496f6bSchristos rorl $4,%edx 368*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 369*c9496f6bSchristos movb %dl,%bl 370*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 371*c9496f6bSchristos movb %dh,%cl 372*c9496f6bSchristos shrl $16,%eax 373*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 374*c9496f6bSchristos movb %ah,%bl 375*c9496f6bSchristos shrl $16,%edx 376*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 377*c9496f6bSchristos movb %dh,%cl 378*c9496f6bSchristos andl $0xff,%eax 379*c9496f6bSchristos andl $0xff,%edx 380*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 381*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 382*c9496f6bSchristos movl (%esp),%ecx 383*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 384*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 385*c9496f6bSchristos 386*c9496f6bSchristos movl 104(%ecx),%eax 387*c9496f6bSchristos xorl %ebx,%ebx 388*c9496f6bSchristos movl 108(%ecx),%edx 389*c9496f6bSchristos xorl %edi,%eax 390*c9496f6bSchristos xorl %ecx,%ecx 391*c9496f6bSchristos xorl %edi,%edx 392*c9496f6bSchristos andl $0xfcfcfcfc,%eax 393*c9496f6bSchristos andl $0xcfcfcfcf,%edx 394*c9496f6bSchristos movb %al,%bl 395*c9496f6bSchristos movb %ah,%cl 396*c9496f6bSchristos rorl $4,%edx 397*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 398*c9496f6bSchristos movb %dl,%bl 399*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 400*c9496f6bSchristos movb %dh,%cl 401*c9496f6bSchristos shrl $16,%eax 402*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 403*c9496f6bSchristos movb %ah,%bl 404*c9496f6bSchristos shrl $16,%edx 405*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 406*c9496f6bSchristos movb %dh,%cl 407*c9496f6bSchristos andl $0xff,%eax 408*c9496f6bSchristos andl $0xff,%edx 409*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 410*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 411*c9496f6bSchristos movl (%esp),%ecx 412*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 413*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 414*c9496f6bSchristos 415*c9496f6bSchristos movl 112(%ecx),%eax 416*c9496f6bSchristos xorl %ebx,%ebx 417*c9496f6bSchristos movl 116(%ecx),%edx 418*c9496f6bSchristos xorl %esi,%eax 419*c9496f6bSchristos xorl %ecx,%ecx 420*c9496f6bSchristos xorl %esi,%edx 421*c9496f6bSchristos andl $0xfcfcfcfc,%eax 422*c9496f6bSchristos andl $0xcfcfcfcf,%edx 423*c9496f6bSchristos movb %al,%bl 424*c9496f6bSchristos movb %ah,%cl 425*c9496f6bSchristos rorl $4,%edx 426*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 427*c9496f6bSchristos movb %dl,%bl 428*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 429*c9496f6bSchristos movb %dh,%cl 430*c9496f6bSchristos shrl $16,%eax 431*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 432*c9496f6bSchristos movb %ah,%bl 433*c9496f6bSchristos shrl $16,%edx 434*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 435*c9496f6bSchristos movb %dh,%cl 436*c9496f6bSchristos andl $0xff,%eax 437*c9496f6bSchristos andl $0xff,%edx 438*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 439*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 440*c9496f6bSchristos movl (%esp),%ecx 441*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 442*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 443*c9496f6bSchristos 444*c9496f6bSchristos movl 120(%ecx),%eax 445*c9496f6bSchristos xorl %ebx,%ebx 446*c9496f6bSchristos movl 124(%ecx),%edx 447*c9496f6bSchristos xorl %edi,%eax 448*c9496f6bSchristos xorl %ecx,%ecx 449*c9496f6bSchristos xorl %edi,%edx 450*c9496f6bSchristos andl $0xfcfcfcfc,%eax 451*c9496f6bSchristos andl $0xcfcfcfcf,%edx 452*c9496f6bSchristos movb %al,%bl 453*c9496f6bSchristos movb %ah,%cl 454*c9496f6bSchristos rorl $4,%edx 455*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 456*c9496f6bSchristos movb %dl,%bl 457*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 458*c9496f6bSchristos movb %dh,%cl 459*c9496f6bSchristos shrl $16,%eax 460*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 461*c9496f6bSchristos movb %ah,%bl 462*c9496f6bSchristos shrl $16,%edx 463*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 464*c9496f6bSchristos movb %dh,%cl 465*c9496f6bSchristos andl $0xff,%eax 466*c9496f6bSchristos andl $0xff,%edx 467*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 468*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 469*c9496f6bSchristos movl (%esp),%ecx 470*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 471*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 472*c9496f6bSchristos addl $4,%esp 473*c9496f6bSchristos ret 474*c9496f6bSchristos.size _x86_DES_encrypt,.-_x86_DES_encrypt 475*c9496f6bSchristos.type _x86_DES_decrypt,@function 476*c9496f6bSchristos.align 16 477*c9496f6bSchristos_x86_DES_decrypt: 478*c9496f6bSchristos pushl %ecx 479*c9496f6bSchristos 480*c9496f6bSchristos movl 120(%ecx),%eax 481*c9496f6bSchristos xorl %ebx,%ebx 482*c9496f6bSchristos movl 124(%ecx),%edx 483*c9496f6bSchristos xorl %esi,%eax 484*c9496f6bSchristos xorl %ecx,%ecx 485*c9496f6bSchristos xorl %esi,%edx 486*c9496f6bSchristos andl $0xfcfcfcfc,%eax 487*c9496f6bSchristos andl $0xcfcfcfcf,%edx 488*c9496f6bSchristos movb %al,%bl 489*c9496f6bSchristos movb %ah,%cl 490*c9496f6bSchristos rorl $4,%edx 491*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 492*c9496f6bSchristos movb %dl,%bl 493*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 494*c9496f6bSchristos movb %dh,%cl 495*c9496f6bSchristos shrl $16,%eax 496*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 497*c9496f6bSchristos movb %ah,%bl 498*c9496f6bSchristos shrl $16,%edx 499*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 500*c9496f6bSchristos movb %dh,%cl 501*c9496f6bSchristos andl $0xff,%eax 502*c9496f6bSchristos andl $0xff,%edx 503*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 504*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 505*c9496f6bSchristos movl (%esp),%ecx 506*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 507*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 508*c9496f6bSchristos 509*c9496f6bSchristos movl 112(%ecx),%eax 510*c9496f6bSchristos xorl %ebx,%ebx 511*c9496f6bSchristos movl 116(%ecx),%edx 512*c9496f6bSchristos xorl %edi,%eax 513*c9496f6bSchristos xorl %ecx,%ecx 514*c9496f6bSchristos xorl %edi,%edx 515*c9496f6bSchristos andl $0xfcfcfcfc,%eax 516*c9496f6bSchristos andl $0xcfcfcfcf,%edx 517*c9496f6bSchristos movb %al,%bl 518*c9496f6bSchristos movb %ah,%cl 519*c9496f6bSchristos rorl $4,%edx 520*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 521*c9496f6bSchristos movb %dl,%bl 522*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 523*c9496f6bSchristos movb %dh,%cl 524*c9496f6bSchristos shrl $16,%eax 525*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 526*c9496f6bSchristos movb %ah,%bl 527*c9496f6bSchristos shrl $16,%edx 528*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 529*c9496f6bSchristos movb %dh,%cl 530*c9496f6bSchristos andl $0xff,%eax 531*c9496f6bSchristos andl $0xff,%edx 532*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 533*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 534*c9496f6bSchristos movl (%esp),%ecx 535*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 536*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 537*c9496f6bSchristos 538*c9496f6bSchristos movl 104(%ecx),%eax 539*c9496f6bSchristos xorl %ebx,%ebx 540*c9496f6bSchristos movl 108(%ecx),%edx 541*c9496f6bSchristos xorl %esi,%eax 542*c9496f6bSchristos xorl %ecx,%ecx 543*c9496f6bSchristos xorl %esi,%edx 544*c9496f6bSchristos andl $0xfcfcfcfc,%eax 545*c9496f6bSchristos andl $0xcfcfcfcf,%edx 546*c9496f6bSchristos movb %al,%bl 547*c9496f6bSchristos movb %ah,%cl 548*c9496f6bSchristos rorl $4,%edx 549*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 550*c9496f6bSchristos movb %dl,%bl 551*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 552*c9496f6bSchristos movb %dh,%cl 553*c9496f6bSchristos shrl $16,%eax 554*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 555*c9496f6bSchristos movb %ah,%bl 556*c9496f6bSchristos shrl $16,%edx 557*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 558*c9496f6bSchristos movb %dh,%cl 559*c9496f6bSchristos andl $0xff,%eax 560*c9496f6bSchristos andl $0xff,%edx 561*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 562*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 563*c9496f6bSchristos movl (%esp),%ecx 564*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 565*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 566*c9496f6bSchristos 567*c9496f6bSchristos movl 96(%ecx),%eax 568*c9496f6bSchristos xorl %ebx,%ebx 569*c9496f6bSchristos movl 100(%ecx),%edx 570*c9496f6bSchristos xorl %edi,%eax 571*c9496f6bSchristos xorl %ecx,%ecx 572*c9496f6bSchristos xorl %edi,%edx 573*c9496f6bSchristos andl $0xfcfcfcfc,%eax 574*c9496f6bSchristos andl $0xcfcfcfcf,%edx 575*c9496f6bSchristos movb %al,%bl 576*c9496f6bSchristos movb %ah,%cl 577*c9496f6bSchristos rorl $4,%edx 578*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 579*c9496f6bSchristos movb %dl,%bl 580*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 581*c9496f6bSchristos movb %dh,%cl 582*c9496f6bSchristos shrl $16,%eax 583*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 584*c9496f6bSchristos movb %ah,%bl 585*c9496f6bSchristos shrl $16,%edx 586*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 587*c9496f6bSchristos movb %dh,%cl 588*c9496f6bSchristos andl $0xff,%eax 589*c9496f6bSchristos andl $0xff,%edx 590*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 591*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 592*c9496f6bSchristos movl (%esp),%ecx 593*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 594*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 595*c9496f6bSchristos 596*c9496f6bSchristos movl 88(%ecx),%eax 597*c9496f6bSchristos xorl %ebx,%ebx 598*c9496f6bSchristos movl 92(%ecx),%edx 599*c9496f6bSchristos xorl %esi,%eax 600*c9496f6bSchristos xorl %ecx,%ecx 601*c9496f6bSchristos xorl %esi,%edx 602*c9496f6bSchristos andl $0xfcfcfcfc,%eax 603*c9496f6bSchristos andl $0xcfcfcfcf,%edx 604*c9496f6bSchristos movb %al,%bl 605*c9496f6bSchristos movb %ah,%cl 606*c9496f6bSchristos rorl $4,%edx 607*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 608*c9496f6bSchristos movb %dl,%bl 609*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 610*c9496f6bSchristos movb %dh,%cl 611*c9496f6bSchristos shrl $16,%eax 612*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 613*c9496f6bSchristos movb %ah,%bl 614*c9496f6bSchristos shrl $16,%edx 615*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 616*c9496f6bSchristos movb %dh,%cl 617*c9496f6bSchristos andl $0xff,%eax 618*c9496f6bSchristos andl $0xff,%edx 619*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 620*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 621*c9496f6bSchristos movl (%esp),%ecx 622*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 623*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 624*c9496f6bSchristos 625*c9496f6bSchristos movl 80(%ecx),%eax 626*c9496f6bSchristos xorl %ebx,%ebx 627*c9496f6bSchristos movl 84(%ecx),%edx 628*c9496f6bSchristos xorl %edi,%eax 629*c9496f6bSchristos xorl %ecx,%ecx 630*c9496f6bSchristos xorl %edi,%edx 631*c9496f6bSchristos andl $0xfcfcfcfc,%eax 632*c9496f6bSchristos andl $0xcfcfcfcf,%edx 633*c9496f6bSchristos movb %al,%bl 634*c9496f6bSchristos movb %ah,%cl 635*c9496f6bSchristos rorl $4,%edx 636*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 637*c9496f6bSchristos movb %dl,%bl 638*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 639*c9496f6bSchristos movb %dh,%cl 640*c9496f6bSchristos shrl $16,%eax 641*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 642*c9496f6bSchristos movb %ah,%bl 643*c9496f6bSchristos shrl $16,%edx 644*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 645*c9496f6bSchristos movb %dh,%cl 646*c9496f6bSchristos andl $0xff,%eax 647*c9496f6bSchristos andl $0xff,%edx 648*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 649*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 650*c9496f6bSchristos movl (%esp),%ecx 651*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 652*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 653*c9496f6bSchristos 654*c9496f6bSchristos movl 72(%ecx),%eax 655*c9496f6bSchristos xorl %ebx,%ebx 656*c9496f6bSchristos movl 76(%ecx),%edx 657*c9496f6bSchristos xorl %esi,%eax 658*c9496f6bSchristos xorl %ecx,%ecx 659*c9496f6bSchristos xorl %esi,%edx 660*c9496f6bSchristos andl $0xfcfcfcfc,%eax 661*c9496f6bSchristos andl $0xcfcfcfcf,%edx 662*c9496f6bSchristos movb %al,%bl 663*c9496f6bSchristos movb %ah,%cl 664*c9496f6bSchristos rorl $4,%edx 665*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 666*c9496f6bSchristos movb %dl,%bl 667*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 668*c9496f6bSchristos movb %dh,%cl 669*c9496f6bSchristos shrl $16,%eax 670*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 671*c9496f6bSchristos movb %ah,%bl 672*c9496f6bSchristos shrl $16,%edx 673*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 674*c9496f6bSchristos movb %dh,%cl 675*c9496f6bSchristos andl $0xff,%eax 676*c9496f6bSchristos andl $0xff,%edx 677*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 678*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 679*c9496f6bSchristos movl (%esp),%ecx 680*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 681*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 682*c9496f6bSchristos 683*c9496f6bSchristos movl 64(%ecx),%eax 684*c9496f6bSchristos xorl %ebx,%ebx 685*c9496f6bSchristos movl 68(%ecx),%edx 686*c9496f6bSchristos xorl %edi,%eax 687*c9496f6bSchristos xorl %ecx,%ecx 688*c9496f6bSchristos xorl %edi,%edx 689*c9496f6bSchristos andl $0xfcfcfcfc,%eax 690*c9496f6bSchristos andl $0xcfcfcfcf,%edx 691*c9496f6bSchristos movb %al,%bl 692*c9496f6bSchristos movb %ah,%cl 693*c9496f6bSchristos rorl $4,%edx 694*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 695*c9496f6bSchristos movb %dl,%bl 696*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 697*c9496f6bSchristos movb %dh,%cl 698*c9496f6bSchristos shrl $16,%eax 699*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 700*c9496f6bSchristos movb %ah,%bl 701*c9496f6bSchristos shrl $16,%edx 702*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 703*c9496f6bSchristos movb %dh,%cl 704*c9496f6bSchristos andl $0xff,%eax 705*c9496f6bSchristos andl $0xff,%edx 706*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 707*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 708*c9496f6bSchristos movl (%esp),%ecx 709*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 710*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 711*c9496f6bSchristos 712*c9496f6bSchristos movl 56(%ecx),%eax 713*c9496f6bSchristos xorl %ebx,%ebx 714*c9496f6bSchristos movl 60(%ecx),%edx 715*c9496f6bSchristos xorl %esi,%eax 716*c9496f6bSchristos xorl %ecx,%ecx 717*c9496f6bSchristos xorl %esi,%edx 718*c9496f6bSchristos andl $0xfcfcfcfc,%eax 719*c9496f6bSchristos andl $0xcfcfcfcf,%edx 720*c9496f6bSchristos movb %al,%bl 721*c9496f6bSchristos movb %ah,%cl 722*c9496f6bSchristos rorl $4,%edx 723*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 724*c9496f6bSchristos movb %dl,%bl 725*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 726*c9496f6bSchristos movb %dh,%cl 727*c9496f6bSchristos shrl $16,%eax 728*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 729*c9496f6bSchristos movb %ah,%bl 730*c9496f6bSchristos shrl $16,%edx 731*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 732*c9496f6bSchristos movb %dh,%cl 733*c9496f6bSchristos andl $0xff,%eax 734*c9496f6bSchristos andl $0xff,%edx 735*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 736*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 737*c9496f6bSchristos movl (%esp),%ecx 738*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 739*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 740*c9496f6bSchristos 741*c9496f6bSchristos movl 48(%ecx),%eax 742*c9496f6bSchristos xorl %ebx,%ebx 743*c9496f6bSchristos movl 52(%ecx),%edx 744*c9496f6bSchristos xorl %edi,%eax 745*c9496f6bSchristos xorl %ecx,%ecx 746*c9496f6bSchristos xorl %edi,%edx 747*c9496f6bSchristos andl $0xfcfcfcfc,%eax 748*c9496f6bSchristos andl $0xcfcfcfcf,%edx 749*c9496f6bSchristos movb %al,%bl 750*c9496f6bSchristos movb %ah,%cl 751*c9496f6bSchristos rorl $4,%edx 752*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 753*c9496f6bSchristos movb %dl,%bl 754*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 755*c9496f6bSchristos movb %dh,%cl 756*c9496f6bSchristos shrl $16,%eax 757*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 758*c9496f6bSchristos movb %ah,%bl 759*c9496f6bSchristos shrl $16,%edx 760*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 761*c9496f6bSchristos movb %dh,%cl 762*c9496f6bSchristos andl $0xff,%eax 763*c9496f6bSchristos andl $0xff,%edx 764*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 765*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 766*c9496f6bSchristos movl (%esp),%ecx 767*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 768*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 769*c9496f6bSchristos 770*c9496f6bSchristos movl 40(%ecx),%eax 771*c9496f6bSchristos xorl %ebx,%ebx 772*c9496f6bSchristos movl 44(%ecx),%edx 773*c9496f6bSchristos xorl %esi,%eax 774*c9496f6bSchristos xorl %ecx,%ecx 775*c9496f6bSchristos xorl %esi,%edx 776*c9496f6bSchristos andl $0xfcfcfcfc,%eax 777*c9496f6bSchristos andl $0xcfcfcfcf,%edx 778*c9496f6bSchristos movb %al,%bl 779*c9496f6bSchristos movb %ah,%cl 780*c9496f6bSchristos rorl $4,%edx 781*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 782*c9496f6bSchristos movb %dl,%bl 783*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 784*c9496f6bSchristos movb %dh,%cl 785*c9496f6bSchristos shrl $16,%eax 786*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 787*c9496f6bSchristos movb %ah,%bl 788*c9496f6bSchristos shrl $16,%edx 789*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 790*c9496f6bSchristos movb %dh,%cl 791*c9496f6bSchristos andl $0xff,%eax 792*c9496f6bSchristos andl $0xff,%edx 793*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 794*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 795*c9496f6bSchristos movl (%esp),%ecx 796*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 797*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 798*c9496f6bSchristos 799*c9496f6bSchristos movl 32(%ecx),%eax 800*c9496f6bSchristos xorl %ebx,%ebx 801*c9496f6bSchristos movl 36(%ecx),%edx 802*c9496f6bSchristos xorl %edi,%eax 803*c9496f6bSchristos xorl %ecx,%ecx 804*c9496f6bSchristos xorl %edi,%edx 805*c9496f6bSchristos andl $0xfcfcfcfc,%eax 806*c9496f6bSchristos andl $0xcfcfcfcf,%edx 807*c9496f6bSchristos movb %al,%bl 808*c9496f6bSchristos movb %ah,%cl 809*c9496f6bSchristos rorl $4,%edx 810*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 811*c9496f6bSchristos movb %dl,%bl 812*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 813*c9496f6bSchristos movb %dh,%cl 814*c9496f6bSchristos shrl $16,%eax 815*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 816*c9496f6bSchristos movb %ah,%bl 817*c9496f6bSchristos shrl $16,%edx 818*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 819*c9496f6bSchristos movb %dh,%cl 820*c9496f6bSchristos andl $0xff,%eax 821*c9496f6bSchristos andl $0xff,%edx 822*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 823*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 824*c9496f6bSchristos movl (%esp),%ecx 825*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 826*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 827*c9496f6bSchristos 828*c9496f6bSchristos movl 24(%ecx),%eax 829*c9496f6bSchristos xorl %ebx,%ebx 830*c9496f6bSchristos movl 28(%ecx),%edx 831*c9496f6bSchristos xorl %esi,%eax 832*c9496f6bSchristos xorl %ecx,%ecx 833*c9496f6bSchristos xorl %esi,%edx 834*c9496f6bSchristos andl $0xfcfcfcfc,%eax 835*c9496f6bSchristos andl $0xcfcfcfcf,%edx 836*c9496f6bSchristos movb %al,%bl 837*c9496f6bSchristos movb %ah,%cl 838*c9496f6bSchristos rorl $4,%edx 839*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 840*c9496f6bSchristos movb %dl,%bl 841*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 842*c9496f6bSchristos movb %dh,%cl 843*c9496f6bSchristos shrl $16,%eax 844*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 845*c9496f6bSchristos movb %ah,%bl 846*c9496f6bSchristos shrl $16,%edx 847*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 848*c9496f6bSchristos movb %dh,%cl 849*c9496f6bSchristos andl $0xff,%eax 850*c9496f6bSchristos andl $0xff,%edx 851*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 852*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 853*c9496f6bSchristos movl (%esp),%ecx 854*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 855*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 856*c9496f6bSchristos 857*c9496f6bSchristos movl 16(%ecx),%eax 858*c9496f6bSchristos xorl %ebx,%ebx 859*c9496f6bSchristos movl 20(%ecx),%edx 860*c9496f6bSchristos xorl %edi,%eax 861*c9496f6bSchristos xorl %ecx,%ecx 862*c9496f6bSchristos xorl %edi,%edx 863*c9496f6bSchristos andl $0xfcfcfcfc,%eax 864*c9496f6bSchristos andl $0xcfcfcfcf,%edx 865*c9496f6bSchristos movb %al,%bl 866*c9496f6bSchristos movb %ah,%cl 867*c9496f6bSchristos rorl $4,%edx 868*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 869*c9496f6bSchristos movb %dl,%bl 870*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 871*c9496f6bSchristos movb %dh,%cl 872*c9496f6bSchristos shrl $16,%eax 873*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 874*c9496f6bSchristos movb %ah,%bl 875*c9496f6bSchristos shrl $16,%edx 876*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 877*c9496f6bSchristos movb %dh,%cl 878*c9496f6bSchristos andl $0xff,%eax 879*c9496f6bSchristos andl $0xff,%edx 880*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 881*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 882*c9496f6bSchristos movl (%esp),%ecx 883*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 884*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 885*c9496f6bSchristos 886*c9496f6bSchristos movl 8(%ecx),%eax 887*c9496f6bSchristos xorl %ebx,%ebx 888*c9496f6bSchristos movl 12(%ecx),%edx 889*c9496f6bSchristos xorl %esi,%eax 890*c9496f6bSchristos xorl %ecx,%ecx 891*c9496f6bSchristos xorl %esi,%edx 892*c9496f6bSchristos andl $0xfcfcfcfc,%eax 893*c9496f6bSchristos andl $0xcfcfcfcf,%edx 894*c9496f6bSchristos movb %al,%bl 895*c9496f6bSchristos movb %ah,%cl 896*c9496f6bSchristos rorl $4,%edx 897*c9496f6bSchristos xorl (%ebp,%ebx,1),%edi 898*c9496f6bSchristos movb %dl,%bl 899*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%edi 900*c9496f6bSchristos movb %dh,%cl 901*c9496f6bSchristos shrl $16,%eax 902*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%edi 903*c9496f6bSchristos movb %ah,%bl 904*c9496f6bSchristos shrl $16,%edx 905*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%edi 906*c9496f6bSchristos movb %dh,%cl 907*c9496f6bSchristos andl $0xff,%eax 908*c9496f6bSchristos andl $0xff,%edx 909*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%edi 910*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%edi 911*c9496f6bSchristos movl (%esp),%ecx 912*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%edi 913*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%edi 914*c9496f6bSchristos 915*c9496f6bSchristos movl (%ecx),%eax 916*c9496f6bSchristos xorl %ebx,%ebx 917*c9496f6bSchristos movl 4(%ecx),%edx 918*c9496f6bSchristos xorl %edi,%eax 919*c9496f6bSchristos xorl %ecx,%ecx 920*c9496f6bSchristos xorl %edi,%edx 921*c9496f6bSchristos andl $0xfcfcfcfc,%eax 922*c9496f6bSchristos andl $0xcfcfcfcf,%edx 923*c9496f6bSchristos movb %al,%bl 924*c9496f6bSchristos movb %ah,%cl 925*c9496f6bSchristos rorl $4,%edx 926*c9496f6bSchristos xorl (%ebp,%ebx,1),%esi 927*c9496f6bSchristos movb %dl,%bl 928*c9496f6bSchristos xorl 0x200(%ebp,%ecx,1),%esi 929*c9496f6bSchristos movb %dh,%cl 930*c9496f6bSchristos shrl $16,%eax 931*c9496f6bSchristos xorl 0x100(%ebp,%ebx,1),%esi 932*c9496f6bSchristos movb %ah,%bl 933*c9496f6bSchristos shrl $16,%edx 934*c9496f6bSchristos xorl 0x300(%ebp,%ecx,1),%esi 935*c9496f6bSchristos movb %dh,%cl 936*c9496f6bSchristos andl $0xff,%eax 937*c9496f6bSchristos andl $0xff,%edx 938*c9496f6bSchristos xorl 0x600(%ebp,%ebx,1),%esi 939*c9496f6bSchristos xorl 0x700(%ebp,%ecx,1),%esi 940*c9496f6bSchristos movl (%esp),%ecx 941*c9496f6bSchristos xorl 0x400(%ebp,%eax,1),%esi 942*c9496f6bSchristos xorl 0x500(%ebp,%edx,1),%esi 943*c9496f6bSchristos addl $4,%esp 944*c9496f6bSchristos ret 945*c9496f6bSchristos.size _x86_DES_decrypt,.-_x86_DES_decrypt 946*c9496f6bSchristos.globl DES_encrypt1 947*c9496f6bSchristos.type DES_encrypt1,@function 948*c9496f6bSchristos.align 16 949*c9496f6bSchristosDES_encrypt1: 950*c9496f6bSchristos.L_DES_encrypt1_begin: 951*c9496f6bSchristos pushl %esi 952*c9496f6bSchristos pushl %edi 953*c9496f6bSchristos 954*c9496f6bSchristos 955*c9496f6bSchristos movl 12(%esp),%esi 956*c9496f6bSchristos xorl %ecx,%ecx 957*c9496f6bSchristos pushl %ebx 958*c9496f6bSchristos pushl %ebp 959*c9496f6bSchristos movl (%esi),%eax 960*c9496f6bSchristos movl 28(%esp),%ebx 961*c9496f6bSchristos movl 4(%esi),%edi 962*c9496f6bSchristos 963*c9496f6bSchristos 964*c9496f6bSchristos roll $4,%eax 965*c9496f6bSchristos movl %eax,%esi 966*c9496f6bSchristos xorl %edi,%eax 967*c9496f6bSchristos andl $0xf0f0f0f0,%eax 968*c9496f6bSchristos xorl %eax,%esi 969*c9496f6bSchristos xorl %eax,%edi 970*c9496f6bSchristos 971*c9496f6bSchristos roll $20,%edi 972*c9496f6bSchristos movl %edi,%eax 973*c9496f6bSchristos xorl %esi,%edi 974*c9496f6bSchristos andl $0xfff0000f,%edi 975*c9496f6bSchristos xorl %edi,%eax 976*c9496f6bSchristos xorl %edi,%esi 977*c9496f6bSchristos 978*c9496f6bSchristos roll $14,%eax 979*c9496f6bSchristos movl %eax,%edi 980*c9496f6bSchristos xorl %esi,%eax 981*c9496f6bSchristos andl $0x33333333,%eax 982*c9496f6bSchristos xorl %eax,%edi 983*c9496f6bSchristos xorl %eax,%esi 984*c9496f6bSchristos 985*c9496f6bSchristos roll $22,%esi 986*c9496f6bSchristos movl %esi,%eax 987*c9496f6bSchristos xorl %edi,%esi 988*c9496f6bSchristos andl $0x03fc03fc,%esi 989*c9496f6bSchristos xorl %esi,%eax 990*c9496f6bSchristos xorl %esi,%edi 991*c9496f6bSchristos 992*c9496f6bSchristos roll $9,%eax 993*c9496f6bSchristos movl %eax,%esi 994*c9496f6bSchristos xorl %edi,%eax 995*c9496f6bSchristos andl $0xaaaaaaaa,%eax 996*c9496f6bSchristos xorl %eax,%esi 997*c9496f6bSchristos xorl %eax,%edi 998*c9496f6bSchristos 999*c9496f6bSchristos roll $1,%edi 1000*c9496f6bSchristos call .L000pic_point 1001*c9496f6bSchristos.L000pic_point: 1002*c9496f6bSchristos popl %ebp 1003*c9496f6bSchristos leal .Ldes_sptrans-.L000pic_point(%ebp),%ebp 1004*c9496f6bSchristos movl 24(%esp),%ecx 1005*c9496f6bSchristos cmpl $0,%ebx 1006*c9496f6bSchristos je .L001decrypt 1007*c9496f6bSchristos call _x86_DES_encrypt 1008*c9496f6bSchristos jmp .L002done 1009*c9496f6bSchristos.L001decrypt: 1010*c9496f6bSchristos call _x86_DES_decrypt 1011*c9496f6bSchristos.L002done: 1012*c9496f6bSchristos 1013*c9496f6bSchristos 1014*c9496f6bSchristos movl 20(%esp),%edx 1015*c9496f6bSchristos rorl $1,%esi 1016*c9496f6bSchristos movl %edi,%eax 1017*c9496f6bSchristos xorl %esi,%edi 1018*c9496f6bSchristos andl $0xaaaaaaaa,%edi 1019*c9496f6bSchristos xorl %edi,%eax 1020*c9496f6bSchristos xorl %edi,%esi 1021*c9496f6bSchristos 1022*c9496f6bSchristos roll $23,%eax 1023*c9496f6bSchristos movl %eax,%edi 1024*c9496f6bSchristos xorl %esi,%eax 1025*c9496f6bSchristos andl $0x03fc03fc,%eax 1026*c9496f6bSchristos xorl %eax,%edi 1027*c9496f6bSchristos xorl %eax,%esi 1028*c9496f6bSchristos 1029*c9496f6bSchristos roll $10,%edi 1030*c9496f6bSchristos movl %edi,%eax 1031*c9496f6bSchristos xorl %esi,%edi 1032*c9496f6bSchristos andl $0x33333333,%edi 1033*c9496f6bSchristos xorl %edi,%eax 1034*c9496f6bSchristos xorl %edi,%esi 1035*c9496f6bSchristos 1036*c9496f6bSchristos roll $18,%esi 1037*c9496f6bSchristos movl %esi,%edi 1038*c9496f6bSchristos xorl %eax,%esi 1039*c9496f6bSchristos andl $0xfff0000f,%esi 1040*c9496f6bSchristos xorl %esi,%edi 1041*c9496f6bSchristos xorl %esi,%eax 1042*c9496f6bSchristos 1043*c9496f6bSchristos roll $12,%edi 1044*c9496f6bSchristos movl %edi,%esi 1045*c9496f6bSchristos xorl %eax,%edi 1046*c9496f6bSchristos andl $0xf0f0f0f0,%edi 1047*c9496f6bSchristos xorl %edi,%esi 1048*c9496f6bSchristos xorl %edi,%eax 1049*c9496f6bSchristos 1050*c9496f6bSchristos rorl $4,%eax 1051*c9496f6bSchristos movl %eax,(%edx) 1052*c9496f6bSchristos movl %esi,4(%edx) 1053*c9496f6bSchristos popl %ebp 1054*c9496f6bSchristos popl %ebx 1055*c9496f6bSchristos popl %edi 1056*c9496f6bSchristos popl %esi 1057*c9496f6bSchristos ret 1058*c9496f6bSchristos.size DES_encrypt1,.-.L_DES_encrypt1_begin 1059*c9496f6bSchristos.globl DES_encrypt2 1060*c9496f6bSchristos.type DES_encrypt2,@function 1061*c9496f6bSchristos.align 16 1062*c9496f6bSchristosDES_encrypt2: 1063*c9496f6bSchristos.L_DES_encrypt2_begin: 1064*c9496f6bSchristos pushl %esi 1065*c9496f6bSchristos pushl %edi 1066*c9496f6bSchristos 1067*c9496f6bSchristos 1068*c9496f6bSchristos movl 12(%esp),%eax 1069*c9496f6bSchristos xorl %ecx,%ecx 1070*c9496f6bSchristos pushl %ebx 1071*c9496f6bSchristos pushl %ebp 1072*c9496f6bSchristos movl (%eax),%esi 1073*c9496f6bSchristos movl 28(%esp),%ebx 1074*c9496f6bSchristos roll $3,%esi 1075*c9496f6bSchristos movl 4(%eax),%edi 1076*c9496f6bSchristos roll $3,%edi 1077*c9496f6bSchristos call .L003pic_point 1078*c9496f6bSchristos.L003pic_point: 1079*c9496f6bSchristos popl %ebp 1080*c9496f6bSchristos leal .Ldes_sptrans-.L003pic_point(%ebp),%ebp 1081*c9496f6bSchristos movl 24(%esp),%ecx 1082*c9496f6bSchristos cmpl $0,%ebx 1083*c9496f6bSchristos je .L004decrypt 1084*c9496f6bSchristos call _x86_DES_encrypt 1085*c9496f6bSchristos jmp .L005done 1086*c9496f6bSchristos.L004decrypt: 1087*c9496f6bSchristos call _x86_DES_decrypt 1088*c9496f6bSchristos.L005done: 1089*c9496f6bSchristos 1090*c9496f6bSchristos 1091*c9496f6bSchristos rorl $3,%edi 1092*c9496f6bSchristos movl 20(%esp),%eax 1093*c9496f6bSchristos rorl $3,%esi 1094*c9496f6bSchristos movl %edi,(%eax) 1095*c9496f6bSchristos movl %esi,4(%eax) 1096*c9496f6bSchristos popl %ebp 1097*c9496f6bSchristos popl %ebx 1098*c9496f6bSchristos popl %edi 1099*c9496f6bSchristos popl %esi 1100*c9496f6bSchristos ret 1101*c9496f6bSchristos.size DES_encrypt2,.-.L_DES_encrypt2_begin 1102*c9496f6bSchristos.globl DES_encrypt3 1103*c9496f6bSchristos.type DES_encrypt3,@function 1104*c9496f6bSchristos.align 16 1105*c9496f6bSchristosDES_encrypt3: 1106*c9496f6bSchristos.L_DES_encrypt3_begin: 1107*c9496f6bSchristos pushl %ebx 1108*c9496f6bSchristos movl 8(%esp),%ebx 1109*c9496f6bSchristos pushl %ebp 1110*c9496f6bSchristos pushl %esi 1111*c9496f6bSchristos pushl %edi 1112*c9496f6bSchristos 1113*c9496f6bSchristos 1114*c9496f6bSchristos movl (%ebx),%edi 1115*c9496f6bSchristos movl 4(%ebx),%esi 1116*c9496f6bSchristos subl $12,%esp 1117*c9496f6bSchristos 1118*c9496f6bSchristos 1119*c9496f6bSchristos roll $4,%edi 1120*c9496f6bSchristos movl %edi,%edx 1121*c9496f6bSchristos xorl %esi,%edi 1122*c9496f6bSchristos andl $0xf0f0f0f0,%edi 1123*c9496f6bSchristos xorl %edi,%edx 1124*c9496f6bSchristos xorl %edi,%esi 1125*c9496f6bSchristos 1126*c9496f6bSchristos roll $20,%esi 1127*c9496f6bSchristos movl %esi,%edi 1128*c9496f6bSchristos xorl %edx,%esi 1129*c9496f6bSchristos andl $0xfff0000f,%esi 1130*c9496f6bSchristos xorl %esi,%edi 1131*c9496f6bSchristos xorl %esi,%edx 1132*c9496f6bSchristos 1133*c9496f6bSchristos roll $14,%edi 1134*c9496f6bSchristos movl %edi,%esi 1135*c9496f6bSchristos xorl %edx,%edi 1136*c9496f6bSchristos andl $0x33333333,%edi 1137*c9496f6bSchristos xorl %edi,%esi 1138*c9496f6bSchristos xorl %edi,%edx 1139*c9496f6bSchristos 1140*c9496f6bSchristos roll $22,%edx 1141*c9496f6bSchristos movl %edx,%edi 1142*c9496f6bSchristos xorl %esi,%edx 1143*c9496f6bSchristos andl $0x03fc03fc,%edx 1144*c9496f6bSchristos xorl %edx,%edi 1145*c9496f6bSchristos xorl %edx,%esi 1146*c9496f6bSchristos 1147*c9496f6bSchristos roll $9,%edi 1148*c9496f6bSchristos movl %edi,%edx 1149*c9496f6bSchristos xorl %esi,%edi 1150*c9496f6bSchristos andl $0xaaaaaaaa,%edi 1151*c9496f6bSchristos xorl %edi,%edx 1152*c9496f6bSchristos xorl %edi,%esi 1153*c9496f6bSchristos 1154*c9496f6bSchristos rorl $3,%edx 1155*c9496f6bSchristos rorl $2,%esi 1156*c9496f6bSchristos movl %esi,4(%ebx) 1157*c9496f6bSchristos movl 36(%esp),%eax 1158*c9496f6bSchristos movl %edx,(%ebx) 1159*c9496f6bSchristos movl 40(%esp),%edi 1160*c9496f6bSchristos movl 44(%esp),%esi 1161*c9496f6bSchristos movl $1,8(%esp) 1162*c9496f6bSchristos movl %eax,4(%esp) 1163*c9496f6bSchristos movl %ebx,(%esp) 1164*c9496f6bSchristos call .L_DES_encrypt2_begin 1165*c9496f6bSchristos movl $0,8(%esp) 1166*c9496f6bSchristos movl %edi,4(%esp) 1167*c9496f6bSchristos movl %ebx,(%esp) 1168*c9496f6bSchristos call .L_DES_encrypt2_begin 1169*c9496f6bSchristos movl $1,8(%esp) 1170*c9496f6bSchristos movl %esi,4(%esp) 1171*c9496f6bSchristos movl %ebx,(%esp) 1172*c9496f6bSchristos call .L_DES_encrypt2_begin 1173*c9496f6bSchristos addl $12,%esp 1174*c9496f6bSchristos movl (%ebx),%edi 1175*c9496f6bSchristos movl 4(%ebx),%esi 1176*c9496f6bSchristos 1177*c9496f6bSchristos 1178*c9496f6bSchristos roll $2,%esi 1179*c9496f6bSchristos roll $3,%edi 1180*c9496f6bSchristos movl %edi,%eax 1181*c9496f6bSchristos xorl %esi,%edi 1182*c9496f6bSchristos andl $0xaaaaaaaa,%edi 1183*c9496f6bSchristos xorl %edi,%eax 1184*c9496f6bSchristos xorl %edi,%esi 1185*c9496f6bSchristos 1186*c9496f6bSchristos roll $23,%eax 1187*c9496f6bSchristos movl %eax,%edi 1188*c9496f6bSchristos xorl %esi,%eax 1189*c9496f6bSchristos andl $0x03fc03fc,%eax 1190*c9496f6bSchristos xorl %eax,%edi 1191*c9496f6bSchristos xorl %eax,%esi 1192*c9496f6bSchristos 1193*c9496f6bSchristos roll $10,%edi 1194*c9496f6bSchristos movl %edi,%eax 1195*c9496f6bSchristos xorl %esi,%edi 1196*c9496f6bSchristos andl $0x33333333,%edi 1197*c9496f6bSchristos xorl %edi,%eax 1198*c9496f6bSchristos xorl %edi,%esi 1199*c9496f6bSchristos 1200*c9496f6bSchristos roll $18,%esi 1201*c9496f6bSchristos movl %esi,%edi 1202*c9496f6bSchristos xorl %eax,%esi 1203*c9496f6bSchristos andl $0xfff0000f,%esi 1204*c9496f6bSchristos xorl %esi,%edi 1205*c9496f6bSchristos xorl %esi,%eax 1206*c9496f6bSchristos 1207*c9496f6bSchristos roll $12,%edi 1208*c9496f6bSchristos movl %edi,%esi 1209*c9496f6bSchristos xorl %eax,%edi 1210*c9496f6bSchristos andl $0xf0f0f0f0,%edi 1211*c9496f6bSchristos xorl %edi,%esi 1212*c9496f6bSchristos xorl %edi,%eax 1213*c9496f6bSchristos 1214*c9496f6bSchristos rorl $4,%eax 1215*c9496f6bSchristos movl %eax,(%ebx) 1216*c9496f6bSchristos movl %esi,4(%ebx) 1217*c9496f6bSchristos popl %edi 1218*c9496f6bSchristos popl %esi 1219*c9496f6bSchristos popl %ebp 1220*c9496f6bSchristos popl %ebx 1221*c9496f6bSchristos ret 1222*c9496f6bSchristos.size DES_encrypt3,.-.L_DES_encrypt3_begin 1223*c9496f6bSchristos.globl DES_decrypt3 1224*c9496f6bSchristos.type DES_decrypt3,@function 1225*c9496f6bSchristos.align 16 1226*c9496f6bSchristosDES_decrypt3: 1227*c9496f6bSchristos.L_DES_decrypt3_begin: 1228*c9496f6bSchristos pushl %ebx 1229*c9496f6bSchristos movl 8(%esp),%ebx 1230*c9496f6bSchristos pushl %ebp 1231*c9496f6bSchristos pushl %esi 1232*c9496f6bSchristos pushl %edi 1233*c9496f6bSchristos 1234*c9496f6bSchristos 1235*c9496f6bSchristos movl (%ebx),%edi 1236*c9496f6bSchristos movl 4(%ebx),%esi 1237*c9496f6bSchristos subl $12,%esp 1238*c9496f6bSchristos 1239*c9496f6bSchristos 1240*c9496f6bSchristos roll $4,%edi 1241*c9496f6bSchristos movl %edi,%edx 1242*c9496f6bSchristos xorl %esi,%edi 1243*c9496f6bSchristos andl $0xf0f0f0f0,%edi 1244*c9496f6bSchristos xorl %edi,%edx 1245*c9496f6bSchristos xorl %edi,%esi 1246*c9496f6bSchristos 1247*c9496f6bSchristos roll $20,%esi 1248*c9496f6bSchristos movl %esi,%edi 1249*c9496f6bSchristos xorl %edx,%esi 1250*c9496f6bSchristos andl $0xfff0000f,%esi 1251*c9496f6bSchristos xorl %esi,%edi 1252*c9496f6bSchristos xorl %esi,%edx 1253*c9496f6bSchristos 1254*c9496f6bSchristos roll $14,%edi 1255*c9496f6bSchristos movl %edi,%esi 1256*c9496f6bSchristos xorl %edx,%edi 1257*c9496f6bSchristos andl $0x33333333,%edi 1258*c9496f6bSchristos xorl %edi,%esi 1259*c9496f6bSchristos xorl %edi,%edx 1260*c9496f6bSchristos 1261*c9496f6bSchristos roll $22,%edx 1262*c9496f6bSchristos movl %edx,%edi 1263*c9496f6bSchristos xorl %esi,%edx 1264*c9496f6bSchristos andl $0x03fc03fc,%edx 1265*c9496f6bSchristos xorl %edx,%edi 1266*c9496f6bSchristos xorl %edx,%esi 1267*c9496f6bSchristos 1268*c9496f6bSchristos roll $9,%edi 1269*c9496f6bSchristos movl %edi,%edx 1270*c9496f6bSchristos xorl %esi,%edi 1271*c9496f6bSchristos andl $0xaaaaaaaa,%edi 1272*c9496f6bSchristos xorl %edi,%edx 1273*c9496f6bSchristos xorl %edi,%esi 1274*c9496f6bSchristos 1275*c9496f6bSchristos rorl $3,%edx 1276*c9496f6bSchristos rorl $2,%esi 1277*c9496f6bSchristos movl %esi,4(%ebx) 1278*c9496f6bSchristos movl 36(%esp),%esi 1279*c9496f6bSchristos movl %edx,(%ebx) 1280*c9496f6bSchristos movl 40(%esp),%edi 1281*c9496f6bSchristos movl 44(%esp),%eax 1282*c9496f6bSchristos movl $0,8(%esp) 1283*c9496f6bSchristos movl %eax,4(%esp) 1284*c9496f6bSchristos movl %ebx,(%esp) 1285*c9496f6bSchristos call .L_DES_encrypt2_begin 1286*c9496f6bSchristos movl $1,8(%esp) 1287*c9496f6bSchristos movl %edi,4(%esp) 1288*c9496f6bSchristos movl %ebx,(%esp) 1289*c9496f6bSchristos call .L_DES_encrypt2_begin 1290*c9496f6bSchristos movl $0,8(%esp) 1291*c9496f6bSchristos movl %esi,4(%esp) 1292*c9496f6bSchristos movl %ebx,(%esp) 1293*c9496f6bSchristos call .L_DES_encrypt2_begin 1294*c9496f6bSchristos addl $12,%esp 1295*c9496f6bSchristos movl (%ebx),%edi 1296*c9496f6bSchristos movl 4(%ebx),%esi 1297*c9496f6bSchristos 1298*c9496f6bSchristos 1299*c9496f6bSchristos roll $2,%esi 1300*c9496f6bSchristos roll $3,%edi 1301*c9496f6bSchristos movl %edi,%eax 1302*c9496f6bSchristos xorl %esi,%edi 1303*c9496f6bSchristos andl $0xaaaaaaaa,%edi 1304*c9496f6bSchristos xorl %edi,%eax 1305*c9496f6bSchristos xorl %edi,%esi 1306*c9496f6bSchristos 1307*c9496f6bSchristos roll $23,%eax 1308*c9496f6bSchristos movl %eax,%edi 1309*c9496f6bSchristos xorl %esi,%eax 1310*c9496f6bSchristos andl $0x03fc03fc,%eax 1311*c9496f6bSchristos xorl %eax,%edi 1312*c9496f6bSchristos xorl %eax,%esi 1313*c9496f6bSchristos 1314*c9496f6bSchristos roll $10,%edi 1315*c9496f6bSchristos movl %edi,%eax 1316*c9496f6bSchristos xorl %esi,%edi 1317*c9496f6bSchristos andl $0x33333333,%edi 1318*c9496f6bSchristos xorl %edi,%eax 1319*c9496f6bSchristos xorl %edi,%esi 1320*c9496f6bSchristos 1321*c9496f6bSchristos roll $18,%esi 1322*c9496f6bSchristos movl %esi,%edi 1323*c9496f6bSchristos xorl %eax,%esi 1324*c9496f6bSchristos andl $0xfff0000f,%esi 1325*c9496f6bSchristos xorl %esi,%edi 1326*c9496f6bSchristos xorl %esi,%eax 1327*c9496f6bSchristos 1328*c9496f6bSchristos roll $12,%edi 1329*c9496f6bSchristos movl %edi,%esi 1330*c9496f6bSchristos xorl %eax,%edi 1331*c9496f6bSchristos andl $0xf0f0f0f0,%edi 1332*c9496f6bSchristos xorl %edi,%esi 1333*c9496f6bSchristos xorl %edi,%eax 1334*c9496f6bSchristos 1335*c9496f6bSchristos rorl $4,%eax 1336*c9496f6bSchristos movl %eax,(%ebx) 1337*c9496f6bSchristos movl %esi,4(%ebx) 1338*c9496f6bSchristos popl %edi 1339*c9496f6bSchristos popl %esi 1340*c9496f6bSchristos popl %ebp 1341*c9496f6bSchristos popl %ebx 1342*c9496f6bSchristos ret 1343*c9496f6bSchristos.size DES_decrypt3,.-.L_DES_decrypt3_begin 1344*c9496f6bSchristos.globl DES_ncbc_encrypt 1345*c9496f6bSchristos.type DES_ncbc_encrypt,@function 1346*c9496f6bSchristos.align 16 1347*c9496f6bSchristosDES_ncbc_encrypt: 1348*c9496f6bSchristos.L_DES_ncbc_encrypt_begin: 1349*c9496f6bSchristos 1350*c9496f6bSchristos pushl %ebp 1351*c9496f6bSchristos pushl %ebx 1352*c9496f6bSchristos pushl %esi 1353*c9496f6bSchristos pushl %edi 1354*c9496f6bSchristos movl 28(%esp),%ebp 1355*c9496f6bSchristos 1356*c9496f6bSchristos movl 36(%esp),%ebx 1357*c9496f6bSchristos movl (%ebx),%esi 1358*c9496f6bSchristos movl 4(%ebx),%edi 1359*c9496f6bSchristos pushl %edi 1360*c9496f6bSchristos pushl %esi 1361*c9496f6bSchristos pushl %edi 1362*c9496f6bSchristos pushl %esi 1363*c9496f6bSchristos movl %esp,%ebx 1364*c9496f6bSchristos movl 36(%esp),%esi 1365*c9496f6bSchristos movl 40(%esp),%edi 1366*c9496f6bSchristos 1367*c9496f6bSchristos movl 56(%esp),%ecx 1368*c9496f6bSchristos 1369*c9496f6bSchristos pushl %ecx 1370*c9496f6bSchristos 1371*c9496f6bSchristos movl 52(%esp),%eax 1372*c9496f6bSchristos pushl %eax 1373*c9496f6bSchristos pushl %ebx 1374*c9496f6bSchristos cmpl $0,%ecx 1375*c9496f6bSchristos jz .L006decrypt 1376*c9496f6bSchristos andl $4294967288,%ebp 1377*c9496f6bSchristos movl 12(%esp),%eax 1378*c9496f6bSchristos movl 16(%esp),%ebx 1379*c9496f6bSchristos jz .L007encrypt_finish 1380*c9496f6bSchristos.L008encrypt_loop: 1381*c9496f6bSchristos movl (%esi),%ecx 1382*c9496f6bSchristos movl 4(%esi),%edx 1383*c9496f6bSchristos xorl %ecx,%eax 1384*c9496f6bSchristos xorl %edx,%ebx 1385*c9496f6bSchristos movl %eax,12(%esp) 1386*c9496f6bSchristos movl %ebx,16(%esp) 1387*c9496f6bSchristos call .L_DES_encrypt1_begin 1388*c9496f6bSchristos movl 12(%esp),%eax 1389*c9496f6bSchristos movl 16(%esp),%ebx 1390*c9496f6bSchristos movl %eax,(%edi) 1391*c9496f6bSchristos movl %ebx,4(%edi) 1392*c9496f6bSchristos addl $8,%esi 1393*c9496f6bSchristos addl $8,%edi 1394*c9496f6bSchristos subl $8,%ebp 1395*c9496f6bSchristos jnz .L008encrypt_loop 1396*c9496f6bSchristos.L007encrypt_finish: 1397*c9496f6bSchristos movl 56(%esp),%ebp 1398*c9496f6bSchristos andl $7,%ebp 1399*c9496f6bSchristos jz .L009finish 1400*c9496f6bSchristos call .L010PIC_point 1401*c9496f6bSchristos.L010PIC_point: 1402*c9496f6bSchristos popl %edx 1403*c9496f6bSchristos leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx 1404*c9496f6bSchristos movl (%ecx,%ebp,4),%ebp 1405*c9496f6bSchristos addl %edx,%ebp 1406*c9496f6bSchristos xorl %ecx,%ecx 1407*c9496f6bSchristos xorl %edx,%edx 1408*c9496f6bSchristos jmp *%ebp 1409*c9496f6bSchristos.L012ej7: 1410*c9496f6bSchristos movb 6(%esi),%dh 1411*c9496f6bSchristos shll $8,%edx 1412*c9496f6bSchristos.L013ej6: 1413*c9496f6bSchristos movb 5(%esi),%dh 1414*c9496f6bSchristos.L014ej5: 1415*c9496f6bSchristos movb 4(%esi),%dl 1416*c9496f6bSchristos.L015ej4: 1417*c9496f6bSchristos movl (%esi),%ecx 1418*c9496f6bSchristos jmp .L016ejend 1419*c9496f6bSchristos.L017ej3: 1420*c9496f6bSchristos movb 2(%esi),%ch 1421*c9496f6bSchristos shll $8,%ecx 1422*c9496f6bSchristos.L018ej2: 1423*c9496f6bSchristos movb 1(%esi),%ch 1424*c9496f6bSchristos.L019ej1: 1425*c9496f6bSchristos movb (%esi),%cl 1426*c9496f6bSchristos.L016ejend: 1427*c9496f6bSchristos xorl %ecx,%eax 1428*c9496f6bSchristos xorl %edx,%ebx 1429*c9496f6bSchristos movl %eax,12(%esp) 1430*c9496f6bSchristos movl %ebx,16(%esp) 1431*c9496f6bSchristos call .L_DES_encrypt1_begin 1432*c9496f6bSchristos movl 12(%esp),%eax 1433*c9496f6bSchristos movl 16(%esp),%ebx 1434*c9496f6bSchristos movl %eax,(%edi) 1435*c9496f6bSchristos movl %ebx,4(%edi) 1436*c9496f6bSchristos jmp .L009finish 1437*c9496f6bSchristos.L006decrypt: 1438*c9496f6bSchristos andl $4294967288,%ebp 1439*c9496f6bSchristos movl 20(%esp),%eax 1440*c9496f6bSchristos movl 24(%esp),%ebx 1441*c9496f6bSchristos jz .L020decrypt_finish 1442*c9496f6bSchristos.L021decrypt_loop: 1443*c9496f6bSchristos movl (%esi),%eax 1444*c9496f6bSchristos movl 4(%esi),%ebx 1445*c9496f6bSchristos movl %eax,12(%esp) 1446*c9496f6bSchristos movl %ebx,16(%esp) 1447*c9496f6bSchristos call .L_DES_encrypt1_begin 1448*c9496f6bSchristos movl 12(%esp),%eax 1449*c9496f6bSchristos movl 16(%esp),%ebx 1450*c9496f6bSchristos movl 20(%esp),%ecx 1451*c9496f6bSchristos movl 24(%esp),%edx 1452*c9496f6bSchristos xorl %eax,%ecx 1453*c9496f6bSchristos xorl %ebx,%edx 1454*c9496f6bSchristos movl (%esi),%eax 1455*c9496f6bSchristos movl 4(%esi),%ebx 1456*c9496f6bSchristos movl %ecx,(%edi) 1457*c9496f6bSchristos movl %edx,4(%edi) 1458*c9496f6bSchristos movl %eax,20(%esp) 1459*c9496f6bSchristos movl %ebx,24(%esp) 1460*c9496f6bSchristos addl $8,%esi 1461*c9496f6bSchristos addl $8,%edi 1462*c9496f6bSchristos subl $8,%ebp 1463*c9496f6bSchristos jnz .L021decrypt_loop 1464*c9496f6bSchristos.L020decrypt_finish: 1465*c9496f6bSchristos movl 56(%esp),%ebp 1466*c9496f6bSchristos andl $7,%ebp 1467*c9496f6bSchristos jz .L009finish 1468*c9496f6bSchristos movl (%esi),%eax 1469*c9496f6bSchristos movl 4(%esi),%ebx 1470*c9496f6bSchristos movl %eax,12(%esp) 1471*c9496f6bSchristos movl %ebx,16(%esp) 1472*c9496f6bSchristos call .L_DES_encrypt1_begin 1473*c9496f6bSchristos movl 12(%esp),%eax 1474*c9496f6bSchristos movl 16(%esp),%ebx 1475*c9496f6bSchristos movl 20(%esp),%ecx 1476*c9496f6bSchristos movl 24(%esp),%edx 1477*c9496f6bSchristos xorl %eax,%ecx 1478*c9496f6bSchristos xorl %ebx,%edx 1479*c9496f6bSchristos movl (%esi),%eax 1480*c9496f6bSchristos movl 4(%esi),%ebx 1481*c9496f6bSchristos.L022dj7: 1482*c9496f6bSchristos rorl $16,%edx 1483*c9496f6bSchristos movb %dl,6(%edi) 1484*c9496f6bSchristos shrl $16,%edx 1485*c9496f6bSchristos.L023dj6: 1486*c9496f6bSchristos movb %dh,5(%edi) 1487*c9496f6bSchristos.L024dj5: 1488*c9496f6bSchristos movb %dl,4(%edi) 1489*c9496f6bSchristos.L025dj4: 1490*c9496f6bSchristos movl %ecx,(%edi) 1491*c9496f6bSchristos jmp .L026djend 1492*c9496f6bSchristos.L027dj3: 1493*c9496f6bSchristos rorl $16,%ecx 1494*c9496f6bSchristos movb %cl,2(%edi) 1495*c9496f6bSchristos shll $16,%ecx 1496*c9496f6bSchristos.L028dj2: 1497*c9496f6bSchristos movb %ch,1(%esi) 1498*c9496f6bSchristos.L029dj1: 1499*c9496f6bSchristos movb %cl,(%esi) 1500*c9496f6bSchristos.L026djend: 1501*c9496f6bSchristos jmp .L009finish 1502*c9496f6bSchristos.L009finish: 1503*c9496f6bSchristos movl 64(%esp),%ecx 1504*c9496f6bSchristos addl $28,%esp 1505*c9496f6bSchristos movl %eax,(%ecx) 1506*c9496f6bSchristos movl %ebx,4(%ecx) 1507*c9496f6bSchristos popl %edi 1508*c9496f6bSchristos popl %esi 1509*c9496f6bSchristos popl %ebx 1510*c9496f6bSchristos popl %ebp 1511*c9496f6bSchristos ret 1512*c9496f6bSchristos.align 64 1513*c9496f6bSchristos.L011cbc_enc_jmp_table: 1514*c9496f6bSchristos.long 0 1515*c9496f6bSchristos.long .L019ej1-.L010PIC_point 1516*c9496f6bSchristos.long .L018ej2-.L010PIC_point 1517*c9496f6bSchristos.long .L017ej3-.L010PIC_point 1518*c9496f6bSchristos.long .L015ej4-.L010PIC_point 1519*c9496f6bSchristos.long .L014ej5-.L010PIC_point 1520*c9496f6bSchristos.long .L013ej6-.L010PIC_point 1521*c9496f6bSchristos.long .L012ej7-.L010PIC_point 1522*c9496f6bSchristos.align 64 1523*c9496f6bSchristos.size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin 1524*c9496f6bSchristos.globl DES_ede3_cbc_encrypt 1525*c9496f6bSchristos.type DES_ede3_cbc_encrypt,@function 1526*c9496f6bSchristos.align 16 1527*c9496f6bSchristosDES_ede3_cbc_encrypt: 1528*c9496f6bSchristos.L_DES_ede3_cbc_encrypt_begin: 1529*c9496f6bSchristos 1530*c9496f6bSchristos pushl %ebp 1531*c9496f6bSchristos pushl %ebx 1532*c9496f6bSchristos pushl %esi 1533*c9496f6bSchristos pushl %edi 1534*c9496f6bSchristos movl 28(%esp),%ebp 1535*c9496f6bSchristos 1536*c9496f6bSchristos movl 44(%esp),%ebx 1537*c9496f6bSchristos movl (%ebx),%esi 1538*c9496f6bSchristos movl 4(%ebx),%edi 1539*c9496f6bSchristos pushl %edi 1540*c9496f6bSchristos pushl %esi 1541*c9496f6bSchristos pushl %edi 1542*c9496f6bSchristos pushl %esi 1543*c9496f6bSchristos movl %esp,%ebx 1544*c9496f6bSchristos movl 36(%esp),%esi 1545*c9496f6bSchristos movl 40(%esp),%edi 1546*c9496f6bSchristos 1547*c9496f6bSchristos movl 64(%esp),%ecx 1548*c9496f6bSchristos 1549*c9496f6bSchristos movl 56(%esp),%eax 1550*c9496f6bSchristos pushl %eax 1551*c9496f6bSchristos 1552*c9496f6bSchristos movl 56(%esp),%eax 1553*c9496f6bSchristos pushl %eax 1554*c9496f6bSchristos 1555*c9496f6bSchristos movl 56(%esp),%eax 1556*c9496f6bSchristos pushl %eax 1557*c9496f6bSchristos pushl %ebx 1558*c9496f6bSchristos cmpl $0,%ecx 1559*c9496f6bSchristos jz .L030decrypt 1560*c9496f6bSchristos andl $4294967288,%ebp 1561*c9496f6bSchristos movl 16(%esp),%eax 1562*c9496f6bSchristos movl 20(%esp),%ebx 1563*c9496f6bSchristos jz .L031encrypt_finish 1564*c9496f6bSchristos.L032encrypt_loop: 1565*c9496f6bSchristos movl (%esi),%ecx 1566*c9496f6bSchristos movl 4(%esi),%edx 1567*c9496f6bSchristos xorl %ecx,%eax 1568*c9496f6bSchristos xorl %edx,%ebx 1569*c9496f6bSchristos movl %eax,16(%esp) 1570*c9496f6bSchristos movl %ebx,20(%esp) 1571*c9496f6bSchristos call .L_DES_encrypt3_begin 1572*c9496f6bSchristos movl 16(%esp),%eax 1573*c9496f6bSchristos movl 20(%esp),%ebx 1574*c9496f6bSchristos movl %eax,(%edi) 1575*c9496f6bSchristos movl %ebx,4(%edi) 1576*c9496f6bSchristos addl $8,%esi 1577*c9496f6bSchristos addl $8,%edi 1578*c9496f6bSchristos subl $8,%ebp 1579*c9496f6bSchristos jnz .L032encrypt_loop 1580*c9496f6bSchristos.L031encrypt_finish: 1581*c9496f6bSchristos movl 60(%esp),%ebp 1582*c9496f6bSchristos andl $7,%ebp 1583*c9496f6bSchristos jz .L033finish 1584*c9496f6bSchristos call .L034PIC_point 1585*c9496f6bSchristos.L034PIC_point: 1586*c9496f6bSchristos popl %edx 1587*c9496f6bSchristos leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx 1588*c9496f6bSchristos movl (%ecx,%ebp,4),%ebp 1589*c9496f6bSchristos addl %edx,%ebp 1590*c9496f6bSchristos xorl %ecx,%ecx 1591*c9496f6bSchristos xorl %edx,%edx 1592*c9496f6bSchristos jmp *%ebp 1593*c9496f6bSchristos.L036ej7: 1594*c9496f6bSchristos movb 6(%esi),%dh 1595*c9496f6bSchristos shll $8,%edx 1596*c9496f6bSchristos.L037ej6: 1597*c9496f6bSchristos movb 5(%esi),%dh 1598*c9496f6bSchristos.L038ej5: 1599*c9496f6bSchristos movb 4(%esi),%dl 1600*c9496f6bSchristos.L039ej4: 1601*c9496f6bSchristos movl (%esi),%ecx 1602*c9496f6bSchristos jmp .L040ejend 1603*c9496f6bSchristos.L041ej3: 1604*c9496f6bSchristos movb 2(%esi),%ch 1605*c9496f6bSchristos shll $8,%ecx 1606*c9496f6bSchristos.L042ej2: 1607*c9496f6bSchristos movb 1(%esi),%ch 1608*c9496f6bSchristos.L043ej1: 1609*c9496f6bSchristos movb (%esi),%cl 1610*c9496f6bSchristos.L040ejend: 1611*c9496f6bSchristos xorl %ecx,%eax 1612*c9496f6bSchristos xorl %edx,%ebx 1613*c9496f6bSchristos movl %eax,16(%esp) 1614*c9496f6bSchristos movl %ebx,20(%esp) 1615*c9496f6bSchristos call .L_DES_encrypt3_begin 1616*c9496f6bSchristos movl 16(%esp),%eax 1617*c9496f6bSchristos movl 20(%esp),%ebx 1618*c9496f6bSchristos movl %eax,(%edi) 1619*c9496f6bSchristos movl %ebx,4(%edi) 1620*c9496f6bSchristos jmp .L033finish 1621*c9496f6bSchristos.L030decrypt: 1622*c9496f6bSchristos andl $4294967288,%ebp 1623*c9496f6bSchristos movl 24(%esp),%eax 1624*c9496f6bSchristos movl 28(%esp),%ebx 1625*c9496f6bSchristos jz .L044decrypt_finish 1626*c9496f6bSchristos.L045decrypt_loop: 1627*c9496f6bSchristos movl (%esi),%eax 1628*c9496f6bSchristos movl 4(%esi),%ebx 1629*c9496f6bSchristos movl %eax,16(%esp) 1630*c9496f6bSchristos movl %ebx,20(%esp) 1631*c9496f6bSchristos call .L_DES_decrypt3_begin 1632*c9496f6bSchristos movl 16(%esp),%eax 1633*c9496f6bSchristos movl 20(%esp),%ebx 1634*c9496f6bSchristos movl 24(%esp),%ecx 1635*c9496f6bSchristos movl 28(%esp),%edx 1636*c9496f6bSchristos xorl %eax,%ecx 1637*c9496f6bSchristos xorl %ebx,%edx 1638*c9496f6bSchristos movl (%esi),%eax 1639*c9496f6bSchristos movl 4(%esi),%ebx 1640*c9496f6bSchristos movl %ecx,(%edi) 1641*c9496f6bSchristos movl %edx,4(%edi) 1642*c9496f6bSchristos movl %eax,24(%esp) 1643*c9496f6bSchristos movl %ebx,28(%esp) 1644*c9496f6bSchristos addl $8,%esi 1645*c9496f6bSchristos addl $8,%edi 1646*c9496f6bSchristos subl $8,%ebp 1647*c9496f6bSchristos jnz .L045decrypt_loop 1648*c9496f6bSchristos.L044decrypt_finish: 1649*c9496f6bSchristos movl 60(%esp),%ebp 1650*c9496f6bSchristos andl $7,%ebp 1651*c9496f6bSchristos jz .L033finish 1652*c9496f6bSchristos movl (%esi),%eax 1653*c9496f6bSchristos movl 4(%esi),%ebx 1654*c9496f6bSchristos movl %eax,16(%esp) 1655*c9496f6bSchristos movl %ebx,20(%esp) 1656*c9496f6bSchristos call .L_DES_decrypt3_begin 1657*c9496f6bSchristos movl 16(%esp),%eax 1658*c9496f6bSchristos movl 20(%esp),%ebx 1659*c9496f6bSchristos movl 24(%esp),%ecx 1660*c9496f6bSchristos movl 28(%esp),%edx 1661*c9496f6bSchristos xorl %eax,%ecx 1662*c9496f6bSchristos xorl %ebx,%edx 1663*c9496f6bSchristos movl (%esi),%eax 1664*c9496f6bSchristos movl 4(%esi),%ebx 1665*c9496f6bSchristos.L046dj7: 1666*c9496f6bSchristos rorl $16,%edx 1667*c9496f6bSchristos movb %dl,6(%edi) 1668*c9496f6bSchristos shrl $16,%edx 1669*c9496f6bSchristos.L047dj6: 1670*c9496f6bSchristos movb %dh,5(%edi) 1671*c9496f6bSchristos.L048dj5: 1672*c9496f6bSchristos movb %dl,4(%edi) 1673*c9496f6bSchristos.L049dj4: 1674*c9496f6bSchristos movl %ecx,(%edi) 1675*c9496f6bSchristos jmp .L050djend 1676*c9496f6bSchristos.L051dj3: 1677*c9496f6bSchristos rorl $16,%ecx 1678*c9496f6bSchristos movb %cl,2(%edi) 1679*c9496f6bSchristos shll $16,%ecx 1680*c9496f6bSchristos.L052dj2: 1681*c9496f6bSchristos movb %ch,1(%esi) 1682*c9496f6bSchristos.L053dj1: 1683*c9496f6bSchristos movb %cl,(%esi) 1684*c9496f6bSchristos.L050djend: 1685*c9496f6bSchristos jmp .L033finish 1686*c9496f6bSchristos.L033finish: 1687*c9496f6bSchristos movl 76(%esp),%ecx 1688*c9496f6bSchristos addl $32,%esp 1689*c9496f6bSchristos movl %eax,(%ecx) 1690*c9496f6bSchristos movl %ebx,4(%ecx) 1691*c9496f6bSchristos popl %edi 1692*c9496f6bSchristos popl %esi 1693*c9496f6bSchristos popl %ebx 1694*c9496f6bSchristos popl %ebp 1695*c9496f6bSchristos ret 1696*c9496f6bSchristos.align 64 1697*c9496f6bSchristos.L035cbc_enc_jmp_table: 1698*c9496f6bSchristos.long 0 1699*c9496f6bSchristos.long .L043ej1-.L034PIC_point 1700*c9496f6bSchristos.long .L042ej2-.L034PIC_point 1701*c9496f6bSchristos.long .L041ej3-.L034PIC_point 1702*c9496f6bSchristos.long .L039ej4-.L034PIC_point 1703*c9496f6bSchristos.long .L038ej5-.L034PIC_point 1704*c9496f6bSchristos.long .L037ej6-.L034PIC_point 1705*c9496f6bSchristos.long .L036ej7-.L034PIC_point 1706*c9496f6bSchristos.align 64 1707*c9496f6bSchristos.size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin 1708*c9496f6bSchristos.align 64 1709*c9496f6bSchristosDES_SPtrans: 1710*c9496f6bSchristos.Ldes_sptrans: 1711*c9496f6bSchristos.long 34080768,524288,33554434,34080770 1712*c9496f6bSchristos.long 33554432,526338,524290,33554434 1713*c9496f6bSchristos.long 526338,34080768,34078720,2050 1714*c9496f6bSchristos.long 33556482,33554432,0,524290 1715*c9496f6bSchristos.long 524288,2,33556480,526336 1716*c9496f6bSchristos.long 34080770,34078720,2050,33556480 1717*c9496f6bSchristos.long 2,2048,526336,34078722 1718*c9496f6bSchristos.long 2048,33556482,34078722,0 1719*c9496f6bSchristos.long 0,34080770,33556480,524290 1720*c9496f6bSchristos.long 34080768,524288,2050,33556480 1721*c9496f6bSchristos.long 34078722,2048,526336,33554434 1722*c9496f6bSchristos.long 526338,2,33554434,34078720 1723*c9496f6bSchristos.long 34080770,526336,34078720,33556482 1724*c9496f6bSchristos.long 33554432,2050,524290,0 1725*c9496f6bSchristos.long 524288,33554432,33556482,34080768 1726*c9496f6bSchristos.long 2,34078722,2048,526338 1727*c9496f6bSchristos.long 1074823184,0,1081344,1074790400 1728*c9496f6bSchristos.long 1073741840,32784,1073774592,1081344 1729*c9496f6bSchristos.long 32768,1074790416,16,1073774592 1730*c9496f6bSchristos.long 1048592,1074823168,1074790400,16 1731*c9496f6bSchristos.long 1048576,1073774608,1074790416,32768 1732*c9496f6bSchristos.long 1081360,1073741824,0,1048592 1733*c9496f6bSchristos.long 1073774608,1081360,1074823168,1073741840 1734*c9496f6bSchristos.long 1073741824,1048576,32784,1074823184 1735*c9496f6bSchristos.long 1048592,1074823168,1073774592,1081360 1736*c9496f6bSchristos.long 1074823184,1048592,1073741840,0 1737*c9496f6bSchristos.long 1073741824,32784,1048576,1074790416 1738*c9496f6bSchristos.long 32768,1073741824,1081360,1073774608 1739*c9496f6bSchristos.long 1074823168,32768,0,1073741840 1740*c9496f6bSchristos.long 16,1074823184,1081344,1074790400 1741*c9496f6bSchristos.long 1074790416,1048576,32784,1073774592 1742*c9496f6bSchristos.long 1073774608,16,1074790400,1081344 1743*c9496f6bSchristos.long 67108865,67371264,256,67109121 1744*c9496f6bSchristos.long 262145,67108864,67109121,262400 1745*c9496f6bSchristos.long 67109120,262144,67371008,1 1746*c9496f6bSchristos.long 67371265,257,1,67371009 1747*c9496f6bSchristos.long 0,262145,67371264,256 1748*c9496f6bSchristos.long 257,67371265,262144,67108865 1749*c9496f6bSchristos.long 67371009,67109120,262401,67371008 1750*c9496f6bSchristos.long 262400,0,67108864,262401 1751*c9496f6bSchristos.long 67371264,256,1,262144 1752*c9496f6bSchristos.long 257,262145,67371008,67109121 1753*c9496f6bSchristos.long 0,67371264,262400,67371009 1754*c9496f6bSchristos.long 262145,67108864,67371265,1 1755*c9496f6bSchristos.long 262401,67108865,67108864,67371265 1756*c9496f6bSchristos.long 262144,67109120,67109121,262400 1757*c9496f6bSchristos.long 67109120,0,67371009,257 1758*c9496f6bSchristos.long 67108865,262401,256,67371008 1759*c9496f6bSchristos.long 4198408,268439552,8,272633864 1760*c9496f6bSchristos.long 0,272629760,268439560,4194312 1761*c9496f6bSchristos.long 272633856,268435464,268435456,4104 1762*c9496f6bSchristos.long 268435464,4198408,4194304,268435456 1763*c9496f6bSchristos.long 272629768,4198400,4096,8 1764*c9496f6bSchristos.long 4198400,268439560,272629760,4096 1765*c9496f6bSchristos.long 4104,0,4194312,272633856 1766*c9496f6bSchristos.long 268439552,272629768,272633864,4194304 1767*c9496f6bSchristos.long 272629768,4104,4194304,268435464 1768*c9496f6bSchristos.long 4198400,268439552,8,272629760 1769*c9496f6bSchristos.long 268439560,0,4096,4194312 1770*c9496f6bSchristos.long 0,272629768,272633856,4096 1771*c9496f6bSchristos.long 268435456,272633864,4198408,4194304 1772*c9496f6bSchristos.long 272633864,8,268439552,4198408 1773*c9496f6bSchristos.long 4194312,4198400,272629760,268439560 1774*c9496f6bSchristos.long 4104,268435456,268435464,272633856 1775*c9496f6bSchristos.long 134217728,65536,1024,134284320 1776*c9496f6bSchristos.long 134283296,134218752,66592,134283264 1777*c9496f6bSchristos.long 65536,32,134217760,66560 1778*c9496f6bSchristos.long 134218784,134283296,134284288,0 1779*c9496f6bSchristos.long 66560,134217728,65568,1056 1780*c9496f6bSchristos.long 134218752,66592,0,134217760 1781*c9496f6bSchristos.long 32,134218784,134284320,65568 1782*c9496f6bSchristos.long 134283264,1024,1056,134284288 1783*c9496f6bSchristos.long 134284288,134218784,65568,134283264 1784*c9496f6bSchristos.long 65536,32,134217760,134218752 1785*c9496f6bSchristos.long 134217728,66560,134284320,0 1786*c9496f6bSchristos.long 66592,134217728,1024,65568 1787*c9496f6bSchristos.long 134218784,1024,0,134284320 1788*c9496f6bSchristos.long 134283296,134284288,1056,65536 1789*c9496f6bSchristos.long 66560,134283296,134218752,1056 1790*c9496f6bSchristos.long 32,66592,134283264,134217760 1791*c9496f6bSchristos.long 2147483712,2097216,0,2149588992 1792*c9496f6bSchristos.long 2097216,8192,2147491904,2097152 1793*c9496f6bSchristos.long 8256,2149589056,2105344,2147483648 1794*c9496f6bSchristos.long 2147491840,2147483712,2149580800,2105408 1795*c9496f6bSchristos.long 2097152,2147491904,2149580864,0 1796*c9496f6bSchristos.long 8192,64,2149588992,2149580864 1797*c9496f6bSchristos.long 2149589056,2149580800,2147483648,8256 1798*c9496f6bSchristos.long 64,2105344,2105408,2147491840 1799*c9496f6bSchristos.long 8256,2147483648,2147491840,2105408 1800*c9496f6bSchristos.long 2149588992,2097216,0,2147491840 1801*c9496f6bSchristos.long 2147483648,8192,2149580864,2097152 1802*c9496f6bSchristos.long 2097216,2149589056,2105344,64 1803*c9496f6bSchristos.long 2149589056,2105344,2097152,2147491904 1804*c9496f6bSchristos.long 2147483712,2149580800,2105408,0 1805*c9496f6bSchristos.long 8192,2147483712,2147491904,2149588992 1806*c9496f6bSchristos.long 2149580800,8256,64,2149580864 1807*c9496f6bSchristos.long 16384,512,16777728,16777220 1808*c9496f6bSchristos.long 16794116,16388,16896,0 1809*c9496f6bSchristos.long 16777216,16777732,516,16793600 1810*c9496f6bSchristos.long 4,16794112,16793600,516 1811*c9496f6bSchristos.long 16777732,16384,16388,16794116 1812*c9496f6bSchristos.long 0,16777728,16777220,16896 1813*c9496f6bSchristos.long 16793604,16900,16794112,4 1814*c9496f6bSchristos.long 16900,16793604,512,16777216 1815*c9496f6bSchristos.long 16900,16793600,16793604,516 1816*c9496f6bSchristos.long 16384,512,16777216,16793604 1817*c9496f6bSchristos.long 16777732,16900,16896,0 1818*c9496f6bSchristos.long 512,16777220,4,16777728 1819*c9496f6bSchristos.long 0,16777732,16777728,16896 1820*c9496f6bSchristos.long 516,16384,16794116,16777216 1821*c9496f6bSchristos.long 16794112,4,16388,16794116 1822*c9496f6bSchristos.long 16777220,16794112,16793600,16388 1823*c9496f6bSchristos.long 545259648,545390592,131200,0 1824*c9496f6bSchristos.long 537001984,8388736,545259520,545390720 1825*c9496f6bSchristos.long 128,536870912,8519680,131200 1826*c9496f6bSchristos.long 8519808,537002112,536871040,545259520 1827*c9496f6bSchristos.long 131072,8519808,8388736,537001984 1828*c9496f6bSchristos.long 545390720,536871040,0,8519680 1829*c9496f6bSchristos.long 536870912,8388608,537002112,545259648 1830*c9496f6bSchristos.long 8388608,131072,545390592,128 1831*c9496f6bSchristos.long 8388608,131072,536871040,545390720 1832*c9496f6bSchristos.long 131200,536870912,0,8519680 1833*c9496f6bSchristos.long 545259648,537002112,537001984,8388736 1834*c9496f6bSchristos.long 545390592,128,8388736,537001984 1835*c9496f6bSchristos.long 545390720,8388608,545259520,536871040 1836*c9496f6bSchristos.long 8519680,131200,537002112,545259520 1837*c9496f6bSchristos.long 128,545390592,8519808,0 1838*c9496f6bSchristos.long 536870912,545259648,131072,8519808 1839