1*ebfedea0SLionel Sambuc#include <machine/asm.h> 2*ebfedea0SLionel Sambuc.text 3*ebfedea0SLionel Sambuc.globl RC5_32_encrypt 4*ebfedea0SLionel Sambuc.type RC5_32_encrypt,@function 5*ebfedea0SLionel Sambuc.align 16 6*ebfedea0SLionel SambucRC5_32_encrypt: 7*ebfedea0SLionel Sambuc.L_RC5_32_encrypt_begin: 8*ebfedea0SLionel Sambuc 9*ebfedea0SLionel Sambuc pushl %ebp 10*ebfedea0SLionel Sambuc pushl %esi 11*ebfedea0SLionel Sambuc pushl %edi 12*ebfedea0SLionel Sambuc movl 16(%esp),%edx 13*ebfedea0SLionel Sambuc movl 20(%esp),%ebp 14*ebfedea0SLionel Sambuc 15*ebfedea0SLionel Sambuc movl (%edx),%edi 16*ebfedea0SLionel Sambuc movl 4(%edx),%esi 17*ebfedea0SLionel Sambuc pushl %ebx 18*ebfedea0SLionel Sambuc movl (%ebp),%ebx 19*ebfedea0SLionel Sambuc addl 4(%ebp),%edi 20*ebfedea0SLionel Sambuc addl 8(%ebp),%esi 21*ebfedea0SLionel Sambuc xorl %esi,%edi 22*ebfedea0SLionel Sambuc movl 12(%ebp),%eax 23*ebfedea0SLionel Sambuc movl %esi,%ecx 24*ebfedea0SLionel Sambuc roll %cl,%edi 25*ebfedea0SLionel Sambuc addl %eax,%edi 26*ebfedea0SLionel Sambuc xorl %edi,%esi 27*ebfedea0SLionel Sambuc movl 16(%ebp),%eax 28*ebfedea0SLionel Sambuc movl %edi,%ecx 29*ebfedea0SLionel Sambuc roll %cl,%esi 30*ebfedea0SLionel Sambuc addl %eax,%esi 31*ebfedea0SLionel Sambuc xorl %esi,%edi 32*ebfedea0SLionel Sambuc movl 20(%ebp),%eax 33*ebfedea0SLionel Sambuc movl %esi,%ecx 34*ebfedea0SLionel Sambuc roll %cl,%edi 35*ebfedea0SLionel Sambuc addl %eax,%edi 36*ebfedea0SLionel Sambuc xorl %edi,%esi 37*ebfedea0SLionel Sambuc movl 24(%ebp),%eax 38*ebfedea0SLionel Sambuc movl %edi,%ecx 39*ebfedea0SLionel Sambuc roll %cl,%esi 40*ebfedea0SLionel Sambuc addl %eax,%esi 41*ebfedea0SLionel Sambuc xorl %esi,%edi 42*ebfedea0SLionel Sambuc movl 28(%ebp),%eax 43*ebfedea0SLionel Sambuc movl %esi,%ecx 44*ebfedea0SLionel Sambuc roll %cl,%edi 45*ebfedea0SLionel Sambuc addl %eax,%edi 46*ebfedea0SLionel Sambuc xorl %edi,%esi 47*ebfedea0SLionel Sambuc movl 32(%ebp),%eax 48*ebfedea0SLionel Sambuc movl %edi,%ecx 49*ebfedea0SLionel Sambuc roll %cl,%esi 50*ebfedea0SLionel Sambuc addl %eax,%esi 51*ebfedea0SLionel Sambuc xorl %esi,%edi 52*ebfedea0SLionel Sambuc movl 36(%ebp),%eax 53*ebfedea0SLionel Sambuc movl %esi,%ecx 54*ebfedea0SLionel Sambuc roll %cl,%edi 55*ebfedea0SLionel Sambuc addl %eax,%edi 56*ebfedea0SLionel Sambuc xorl %edi,%esi 57*ebfedea0SLionel Sambuc movl 40(%ebp),%eax 58*ebfedea0SLionel Sambuc movl %edi,%ecx 59*ebfedea0SLionel Sambuc roll %cl,%esi 60*ebfedea0SLionel Sambuc addl %eax,%esi 61*ebfedea0SLionel Sambuc xorl %esi,%edi 62*ebfedea0SLionel Sambuc movl 44(%ebp),%eax 63*ebfedea0SLionel Sambuc movl %esi,%ecx 64*ebfedea0SLionel Sambuc roll %cl,%edi 65*ebfedea0SLionel Sambuc addl %eax,%edi 66*ebfedea0SLionel Sambuc xorl %edi,%esi 67*ebfedea0SLionel Sambuc movl 48(%ebp),%eax 68*ebfedea0SLionel Sambuc movl %edi,%ecx 69*ebfedea0SLionel Sambuc roll %cl,%esi 70*ebfedea0SLionel Sambuc addl %eax,%esi 71*ebfedea0SLionel Sambuc xorl %esi,%edi 72*ebfedea0SLionel Sambuc movl 52(%ebp),%eax 73*ebfedea0SLionel Sambuc movl %esi,%ecx 74*ebfedea0SLionel Sambuc roll %cl,%edi 75*ebfedea0SLionel Sambuc addl %eax,%edi 76*ebfedea0SLionel Sambuc xorl %edi,%esi 77*ebfedea0SLionel Sambuc movl 56(%ebp),%eax 78*ebfedea0SLionel Sambuc movl %edi,%ecx 79*ebfedea0SLionel Sambuc roll %cl,%esi 80*ebfedea0SLionel Sambuc addl %eax,%esi 81*ebfedea0SLionel Sambuc xorl %esi,%edi 82*ebfedea0SLionel Sambuc movl 60(%ebp),%eax 83*ebfedea0SLionel Sambuc movl %esi,%ecx 84*ebfedea0SLionel Sambuc roll %cl,%edi 85*ebfedea0SLionel Sambuc addl %eax,%edi 86*ebfedea0SLionel Sambuc xorl %edi,%esi 87*ebfedea0SLionel Sambuc movl 64(%ebp),%eax 88*ebfedea0SLionel Sambuc movl %edi,%ecx 89*ebfedea0SLionel Sambuc roll %cl,%esi 90*ebfedea0SLionel Sambuc addl %eax,%esi 91*ebfedea0SLionel Sambuc xorl %esi,%edi 92*ebfedea0SLionel Sambuc movl 68(%ebp),%eax 93*ebfedea0SLionel Sambuc movl %esi,%ecx 94*ebfedea0SLionel Sambuc roll %cl,%edi 95*ebfedea0SLionel Sambuc addl %eax,%edi 96*ebfedea0SLionel Sambuc xorl %edi,%esi 97*ebfedea0SLionel Sambuc movl 72(%ebp),%eax 98*ebfedea0SLionel Sambuc movl %edi,%ecx 99*ebfedea0SLionel Sambuc roll %cl,%esi 100*ebfedea0SLionel Sambuc addl %eax,%esi 101*ebfedea0SLionel Sambuc cmpl $8,%ebx 102*ebfedea0SLionel Sambuc je .L000rc5_exit 103*ebfedea0SLionel Sambuc xorl %esi,%edi 104*ebfedea0SLionel Sambuc movl 76(%ebp),%eax 105*ebfedea0SLionel Sambuc movl %esi,%ecx 106*ebfedea0SLionel Sambuc roll %cl,%edi 107*ebfedea0SLionel Sambuc addl %eax,%edi 108*ebfedea0SLionel Sambuc xorl %edi,%esi 109*ebfedea0SLionel Sambuc movl 80(%ebp),%eax 110*ebfedea0SLionel Sambuc movl %edi,%ecx 111*ebfedea0SLionel Sambuc roll %cl,%esi 112*ebfedea0SLionel Sambuc addl %eax,%esi 113*ebfedea0SLionel Sambuc xorl %esi,%edi 114*ebfedea0SLionel Sambuc movl 84(%ebp),%eax 115*ebfedea0SLionel Sambuc movl %esi,%ecx 116*ebfedea0SLionel Sambuc roll %cl,%edi 117*ebfedea0SLionel Sambuc addl %eax,%edi 118*ebfedea0SLionel Sambuc xorl %edi,%esi 119*ebfedea0SLionel Sambuc movl 88(%ebp),%eax 120*ebfedea0SLionel Sambuc movl %edi,%ecx 121*ebfedea0SLionel Sambuc roll %cl,%esi 122*ebfedea0SLionel Sambuc addl %eax,%esi 123*ebfedea0SLionel Sambuc xorl %esi,%edi 124*ebfedea0SLionel Sambuc movl 92(%ebp),%eax 125*ebfedea0SLionel Sambuc movl %esi,%ecx 126*ebfedea0SLionel Sambuc roll %cl,%edi 127*ebfedea0SLionel Sambuc addl %eax,%edi 128*ebfedea0SLionel Sambuc xorl %edi,%esi 129*ebfedea0SLionel Sambuc movl 96(%ebp),%eax 130*ebfedea0SLionel Sambuc movl %edi,%ecx 131*ebfedea0SLionel Sambuc roll %cl,%esi 132*ebfedea0SLionel Sambuc addl %eax,%esi 133*ebfedea0SLionel Sambuc xorl %esi,%edi 134*ebfedea0SLionel Sambuc movl 100(%ebp),%eax 135*ebfedea0SLionel Sambuc movl %esi,%ecx 136*ebfedea0SLionel Sambuc roll %cl,%edi 137*ebfedea0SLionel Sambuc addl %eax,%edi 138*ebfedea0SLionel Sambuc xorl %edi,%esi 139*ebfedea0SLionel Sambuc movl 104(%ebp),%eax 140*ebfedea0SLionel Sambuc movl %edi,%ecx 141*ebfedea0SLionel Sambuc roll %cl,%esi 142*ebfedea0SLionel Sambuc addl %eax,%esi 143*ebfedea0SLionel Sambuc cmpl $12,%ebx 144*ebfedea0SLionel Sambuc je .L000rc5_exit 145*ebfedea0SLionel Sambuc xorl %esi,%edi 146*ebfedea0SLionel Sambuc movl 108(%ebp),%eax 147*ebfedea0SLionel Sambuc movl %esi,%ecx 148*ebfedea0SLionel Sambuc roll %cl,%edi 149*ebfedea0SLionel Sambuc addl %eax,%edi 150*ebfedea0SLionel Sambuc xorl %edi,%esi 151*ebfedea0SLionel Sambuc movl 112(%ebp),%eax 152*ebfedea0SLionel Sambuc movl %edi,%ecx 153*ebfedea0SLionel Sambuc roll %cl,%esi 154*ebfedea0SLionel Sambuc addl %eax,%esi 155*ebfedea0SLionel Sambuc xorl %esi,%edi 156*ebfedea0SLionel Sambuc movl 116(%ebp),%eax 157*ebfedea0SLionel Sambuc movl %esi,%ecx 158*ebfedea0SLionel Sambuc roll %cl,%edi 159*ebfedea0SLionel Sambuc addl %eax,%edi 160*ebfedea0SLionel Sambuc xorl %edi,%esi 161*ebfedea0SLionel Sambuc movl 120(%ebp),%eax 162*ebfedea0SLionel Sambuc movl %edi,%ecx 163*ebfedea0SLionel Sambuc roll %cl,%esi 164*ebfedea0SLionel Sambuc addl %eax,%esi 165*ebfedea0SLionel Sambuc xorl %esi,%edi 166*ebfedea0SLionel Sambuc movl 124(%ebp),%eax 167*ebfedea0SLionel Sambuc movl %esi,%ecx 168*ebfedea0SLionel Sambuc roll %cl,%edi 169*ebfedea0SLionel Sambuc addl %eax,%edi 170*ebfedea0SLionel Sambuc xorl %edi,%esi 171*ebfedea0SLionel Sambuc movl 128(%ebp),%eax 172*ebfedea0SLionel Sambuc movl %edi,%ecx 173*ebfedea0SLionel Sambuc roll %cl,%esi 174*ebfedea0SLionel Sambuc addl %eax,%esi 175*ebfedea0SLionel Sambuc xorl %esi,%edi 176*ebfedea0SLionel Sambuc movl 132(%ebp),%eax 177*ebfedea0SLionel Sambuc movl %esi,%ecx 178*ebfedea0SLionel Sambuc roll %cl,%edi 179*ebfedea0SLionel Sambuc addl %eax,%edi 180*ebfedea0SLionel Sambuc xorl %edi,%esi 181*ebfedea0SLionel Sambuc movl 136(%ebp),%eax 182*ebfedea0SLionel Sambuc movl %edi,%ecx 183*ebfedea0SLionel Sambuc roll %cl,%esi 184*ebfedea0SLionel Sambuc addl %eax,%esi 185*ebfedea0SLionel Sambuc.L000rc5_exit: 186*ebfedea0SLionel Sambuc movl %edi,(%edx) 187*ebfedea0SLionel Sambuc movl %esi,4(%edx) 188*ebfedea0SLionel Sambuc popl %ebx 189*ebfedea0SLionel Sambuc popl %edi 190*ebfedea0SLionel Sambuc popl %esi 191*ebfedea0SLionel Sambuc popl %ebp 192*ebfedea0SLionel Sambuc ret 193*ebfedea0SLionel Sambuc.size RC5_32_encrypt,.-.L_RC5_32_encrypt_begin 194*ebfedea0SLionel Sambuc.globl RC5_32_decrypt 195*ebfedea0SLionel Sambuc.type RC5_32_decrypt,@function 196*ebfedea0SLionel Sambuc.align 16 197*ebfedea0SLionel SambucRC5_32_decrypt: 198*ebfedea0SLionel Sambuc.L_RC5_32_decrypt_begin: 199*ebfedea0SLionel Sambuc 200*ebfedea0SLionel Sambuc pushl %ebp 201*ebfedea0SLionel Sambuc pushl %esi 202*ebfedea0SLionel Sambuc pushl %edi 203*ebfedea0SLionel Sambuc movl 16(%esp),%edx 204*ebfedea0SLionel Sambuc movl 20(%esp),%ebp 205*ebfedea0SLionel Sambuc 206*ebfedea0SLionel Sambuc movl (%edx),%edi 207*ebfedea0SLionel Sambuc movl 4(%edx),%esi 208*ebfedea0SLionel Sambuc pushl %ebx 209*ebfedea0SLionel Sambuc movl (%ebp),%ebx 210*ebfedea0SLionel Sambuc cmpl $12,%ebx 211*ebfedea0SLionel Sambuc je .L001rc5_dec_12 212*ebfedea0SLionel Sambuc cmpl $8,%ebx 213*ebfedea0SLionel Sambuc je .L002rc5_dec_8 214*ebfedea0SLionel Sambuc movl 136(%ebp),%eax 215*ebfedea0SLionel Sambuc subl %eax,%esi 216*ebfedea0SLionel Sambuc movl %edi,%ecx 217*ebfedea0SLionel Sambuc rorl %cl,%esi 218*ebfedea0SLionel Sambuc xorl %edi,%esi 219*ebfedea0SLionel Sambuc movl 132(%ebp),%eax 220*ebfedea0SLionel Sambuc subl %eax,%edi 221*ebfedea0SLionel Sambuc movl %esi,%ecx 222*ebfedea0SLionel Sambuc rorl %cl,%edi 223*ebfedea0SLionel Sambuc xorl %esi,%edi 224*ebfedea0SLionel Sambuc movl 128(%ebp),%eax 225*ebfedea0SLionel Sambuc subl %eax,%esi 226*ebfedea0SLionel Sambuc movl %edi,%ecx 227*ebfedea0SLionel Sambuc rorl %cl,%esi 228*ebfedea0SLionel Sambuc xorl %edi,%esi 229*ebfedea0SLionel Sambuc movl 124(%ebp),%eax 230*ebfedea0SLionel Sambuc subl %eax,%edi 231*ebfedea0SLionel Sambuc movl %esi,%ecx 232*ebfedea0SLionel Sambuc rorl %cl,%edi 233*ebfedea0SLionel Sambuc xorl %esi,%edi 234*ebfedea0SLionel Sambuc movl 120(%ebp),%eax 235*ebfedea0SLionel Sambuc subl %eax,%esi 236*ebfedea0SLionel Sambuc movl %edi,%ecx 237*ebfedea0SLionel Sambuc rorl %cl,%esi 238*ebfedea0SLionel Sambuc xorl %edi,%esi 239*ebfedea0SLionel Sambuc movl 116(%ebp),%eax 240*ebfedea0SLionel Sambuc subl %eax,%edi 241*ebfedea0SLionel Sambuc movl %esi,%ecx 242*ebfedea0SLionel Sambuc rorl %cl,%edi 243*ebfedea0SLionel Sambuc xorl %esi,%edi 244*ebfedea0SLionel Sambuc movl 112(%ebp),%eax 245*ebfedea0SLionel Sambuc subl %eax,%esi 246*ebfedea0SLionel Sambuc movl %edi,%ecx 247*ebfedea0SLionel Sambuc rorl %cl,%esi 248*ebfedea0SLionel Sambuc xorl %edi,%esi 249*ebfedea0SLionel Sambuc movl 108(%ebp),%eax 250*ebfedea0SLionel Sambuc subl %eax,%edi 251*ebfedea0SLionel Sambuc movl %esi,%ecx 252*ebfedea0SLionel Sambuc rorl %cl,%edi 253*ebfedea0SLionel Sambuc xorl %esi,%edi 254*ebfedea0SLionel Sambuc.L001rc5_dec_12: 255*ebfedea0SLionel Sambuc movl 104(%ebp),%eax 256*ebfedea0SLionel Sambuc subl %eax,%esi 257*ebfedea0SLionel Sambuc movl %edi,%ecx 258*ebfedea0SLionel Sambuc rorl %cl,%esi 259*ebfedea0SLionel Sambuc xorl %edi,%esi 260*ebfedea0SLionel Sambuc movl 100(%ebp),%eax 261*ebfedea0SLionel Sambuc subl %eax,%edi 262*ebfedea0SLionel Sambuc movl %esi,%ecx 263*ebfedea0SLionel Sambuc rorl %cl,%edi 264*ebfedea0SLionel Sambuc xorl %esi,%edi 265*ebfedea0SLionel Sambuc movl 96(%ebp),%eax 266*ebfedea0SLionel Sambuc subl %eax,%esi 267*ebfedea0SLionel Sambuc movl %edi,%ecx 268*ebfedea0SLionel Sambuc rorl %cl,%esi 269*ebfedea0SLionel Sambuc xorl %edi,%esi 270*ebfedea0SLionel Sambuc movl 92(%ebp),%eax 271*ebfedea0SLionel Sambuc subl %eax,%edi 272*ebfedea0SLionel Sambuc movl %esi,%ecx 273*ebfedea0SLionel Sambuc rorl %cl,%edi 274*ebfedea0SLionel Sambuc xorl %esi,%edi 275*ebfedea0SLionel Sambuc movl 88(%ebp),%eax 276*ebfedea0SLionel Sambuc subl %eax,%esi 277*ebfedea0SLionel Sambuc movl %edi,%ecx 278*ebfedea0SLionel Sambuc rorl %cl,%esi 279*ebfedea0SLionel Sambuc xorl %edi,%esi 280*ebfedea0SLionel Sambuc movl 84(%ebp),%eax 281*ebfedea0SLionel Sambuc subl %eax,%edi 282*ebfedea0SLionel Sambuc movl %esi,%ecx 283*ebfedea0SLionel Sambuc rorl %cl,%edi 284*ebfedea0SLionel Sambuc xorl %esi,%edi 285*ebfedea0SLionel Sambuc movl 80(%ebp),%eax 286*ebfedea0SLionel Sambuc subl %eax,%esi 287*ebfedea0SLionel Sambuc movl %edi,%ecx 288*ebfedea0SLionel Sambuc rorl %cl,%esi 289*ebfedea0SLionel Sambuc xorl %edi,%esi 290*ebfedea0SLionel Sambuc movl 76(%ebp),%eax 291*ebfedea0SLionel Sambuc subl %eax,%edi 292*ebfedea0SLionel Sambuc movl %esi,%ecx 293*ebfedea0SLionel Sambuc rorl %cl,%edi 294*ebfedea0SLionel Sambuc xorl %esi,%edi 295*ebfedea0SLionel Sambuc.L002rc5_dec_8: 296*ebfedea0SLionel Sambuc movl 72(%ebp),%eax 297*ebfedea0SLionel Sambuc subl %eax,%esi 298*ebfedea0SLionel Sambuc movl %edi,%ecx 299*ebfedea0SLionel Sambuc rorl %cl,%esi 300*ebfedea0SLionel Sambuc xorl %edi,%esi 301*ebfedea0SLionel Sambuc movl 68(%ebp),%eax 302*ebfedea0SLionel Sambuc subl %eax,%edi 303*ebfedea0SLionel Sambuc movl %esi,%ecx 304*ebfedea0SLionel Sambuc rorl %cl,%edi 305*ebfedea0SLionel Sambuc xorl %esi,%edi 306*ebfedea0SLionel Sambuc movl 64(%ebp),%eax 307*ebfedea0SLionel Sambuc subl %eax,%esi 308*ebfedea0SLionel Sambuc movl %edi,%ecx 309*ebfedea0SLionel Sambuc rorl %cl,%esi 310*ebfedea0SLionel Sambuc xorl %edi,%esi 311*ebfedea0SLionel Sambuc movl 60(%ebp),%eax 312*ebfedea0SLionel Sambuc subl %eax,%edi 313*ebfedea0SLionel Sambuc movl %esi,%ecx 314*ebfedea0SLionel Sambuc rorl %cl,%edi 315*ebfedea0SLionel Sambuc xorl %esi,%edi 316*ebfedea0SLionel Sambuc movl 56(%ebp),%eax 317*ebfedea0SLionel Sambuc subl %eax,%esi 318*ebfedea0SLionel Sambuc movl %edi,%ecx 319*ebfedea0SLionel Sambuc rorl %cl,%esi 320*ebfedea0SLionel Sambuc xorl %edi,%esi 321*ebfedea0SLionel Sambuc movl 52(%ebp),%eax 322*ebfedea0SLionel Sambuc subl %eax,%edi 323*ebfedea0SLionel Sambuc movl %esi,%ecx 324*ebfedea0SLionel Sambuc rorl %cl,%edi 325*ebfedea0SLionel Sambuc xorl %esi,%edi 326*ebfedea0SLionel Sambuc movl 48(%ebp),%eax 327*ebfedea0SLionel Sambuc subl %eax,%esi 328*ebfedea0SLionel Sambuc movl %edi,%ecx 329*ebfedea0SLionel Sambuc rorl %cl,%esi 330*ebfedea0SLionel Sambuc xorl %edi,%esi 331*ebfedea0SLionel Sambuc movl 44(%ebp),%eax 332*ebfedea0SLionel Sambuc subl %eax,%edi 333*ebfedea0SLionel Sambuc movl %esi,%ecx 334*ebfedea0SLionel Sambuc rorl %cl,%edi 335*ebfedea0SLionel Sambuc xorl %esi,%edi 336*ebfedea0SLionel Sambuc movl 40(%ebp),%eax 337*ebfedea0SLionel Sambuc subl %eax,%esi 338*ebfedea0SLionel Sambuc movl %edi,%ecx 339*ebfedea0SLionel Sambuc rorl %cl,%esi 340*ebfedea0SLionel Sambuc xorl %edi,%esi 341*ebfedea0SLionel Sambuc movl 36(%ebp),%eax 342*ebfedea0SLionel Sambuc subl %eax,%edi 343*ebfedea0SLionel Sambuc movl %esi,%ecx 344*ebfedea0SLionel Sambuc rorl %cl,%edi 345*ebfedea0SLionel Sambuc xorl %esi,%edi 346*ebfedea0SLionel Sambuc movl 32(%ebp),%eax 347*ebfedea0SLionel Sambuc subl %eax,%esi 348*ebfedea0SLionel Sambuc movl %edi,%ecx 349*ebfedea0SLionel Sambuc rorl %cl,%esi 350*ebfedea0SLionel Sambuc xorl %edi,%esi 351*ebfedea0SLionel Sambuc movl 28(%ebp),%eax 352*ebfedea0SLionel Sambuc subl %eax,%edi 353*ebfedea0SLionel Sambuc movl %esi,%ecx 354*ebfedea0SLionel Sambuc rorl %cl,%edi 355*ebfedea0SLionel Sambuc xorl %esi,%edi 356*ebfedea0SLionel Sambuc movl 24(%ebp),%eax 357*ebfedea0SLionel Sambuc subl %eax,%esi 358*ebfedea0SLionel Sambuc movl %edi,%ecx 359*ebfedea0SLionel Sambuc rorl %cl,%esi 360*ebfedea0SLionel Sambuc xorl %edi,%esi 361*ebfedea0SLionel Sambuc movl 20(%ebp),%eax 362*ebfedea0SLionel Sambuc subl %eax,%edi 363*ebfedea0SLionel Sambuc movl %esi,%ecx 364*ebfedea0SLionel Sambuc rorl %cl,%edi 365*ebfedea0SLionel Sambuc xorl %esi,%edi 366*ebfedea0SLionel Sambuc movl 16(%ebp),%eax 367*ebfedea0SLionel Sambuc subl %eax,%esi 368*ebfedea0SLionel Sambuc movl %edi,%ecx 369*ebfedea0SLionel Sambuc rorl %cl,%esi 370*ebfedea0SLionel Sambuc xorl %edi,%esi 371*ebfedea0SLionel Sambuc movl 12(%ebp),%eax 372*ebfedea0SLionel Sambuc subl %eax,%edi 373*ebfedea0SLionel Sambuc movl %esi,%ecx 374*ebfedea0SLionel Sambuc rorl %cl,%edi 375*ebfedea0SLionel Sambuc xorl %esi,%edi 376*ebfedea0SLionel Sambuc subl 8(%ebp),%esi 377*ebfedea0SLionel Sambuc subl 4(%ebp),%edi 378*ebfedea0SLionel Sambuc.L003rc5_exit: 379*ebfedea0SLionel Sambuc movl %edi,(%edx) 380*ebfedea0SLionel Sambuc movl %esi,4(%edx) 381*ebfedea0SLionel Sambuc popl %ebx 382*ebfedea0SLionel Sambuc popl %edi 383*ebfedea0SLionel Sambuc popl %esi 384*ebfedea0SLionel Sambuc popl %ebp 385*ebfedea0SLionel Sambuc ret 386*ebfedea0SLionel Sambuc.size RC5_32_decrypt,.-.L_RC5_32_decrypt_begin 387*ebfedea0SLionel Sambuc.globl RC5_32_cbc_encrypt 388*ebfedea0SLionel Sambuc.type RC5_32_cbc_encrypt,@function 389*ebfedea0SLionel Sambuc.align 16 390*ebfedea0SLionel SambucRC5_32_cbc_encrypt: 391*ebfedea0SLionel Sambuc.L_RC5_32_cbc_encrypt_begin: 392*ebfedea0SLionel Sambuc 393*ebfedea0SLionel Sambuc pushl %ebp 394*ebfedea0SLionel Sambuc pushl %ebx 395*ebfedea0SLionel Sambuc pushl %esi 396*ebfedea0SLionel Sambuc pushl %edi 397*ebfedea0SLionel Sambuc movl 28(%esp),%ebp 398*ebfedea0SLionel Sambuc 399*ebfedea0SLionel Sambuc movl 36(%esp),%ebx 400*ebfedea0SLionel Sambuc movl (%ebx),%esi 401*ebfedea0SLionel Sambuc movl 4(%ebx),%edi 402*ebfedea0SLionel Sambuc pushl %edi 403*ebfedea0SLionel Sambuc pushl %esi 404*ebfedea0SLionel Sambuc pushl %edi 405*ebfedea0SLionel Sambuc pushl %esi 406*ebfedea0SLionel Sambuc movl %esp,%ebx 407*ebfedea0SLionel Sambuc movl 36(%esp),%esi 408*ebfedea0SLionel Sambuc movl 40(%esp),%edi 409*ebfedea0SLionel Sambuc 410*ebfedea0SLionel Sambuc movl 56(%esp),%ecx 411*ebfedea0SLionel Sambuc 412*ebfedea0SLionel Sambuc movl 48(%esp),%eax 413*ebfedea0SLionel Sambuc pushl %eax 414*ebfedea0SLionel Sambuc pushl %ebx 415*ebfedea0SLionel Sambuc cmpl $0,%ecx 416*ebfedea0SLionel Sambuc jz .L004decrypt 417*ebfedea0SLionel Sambuc andl $4294967288,%ebp 418*ebfedea0SLionel Sambuc movl 8(%esp),%eax 419*ebfedea0SLionel Sambuc movl 12(%esp),%ebx 420*ebfedea0SLionel Sambuc jz .L005encrypt_finish 421*ebfedea0SLionel Sambuc.L006encrypt_loop: 422*ebfedea0SLionel Sambuc movl (%esi),%ecx 423*ebfedea0SLionel Sambuc movl 4(%esi),%edx 424*ebfedea0SLionel Sambuc xorl %ecx,%eax 425*ebfedea0SLionel Sambuc xorl %edx,%ebx 426*ebfedea0SLionel Sambuc movl %eax,8(%esp) 427*ebfedea0SLionel Sambuc movl %ebx,12(%esp) 428*ebfedea0SLionel Sambuc call .L_RC5_32_encrypt_begin 429*ebfedea0SLionel Sambuc movl 8(%esp),%eax 430*ebfedea0SLionel Sambuc movl 12(%esp),%ebx 431*ebfedea0SLionel Sambuc movl %eax,(%edi) 432*ebfedea0SLionel Sambuc movl %ebx,4(%edi) 433*ebfedea0SLionel Sambuc addl $8,%esi 434*ebfedea0SLionel Sambuc addl $8,%edi 435*ebfedea0SLionel Sambuc subl $8,%ebp 436*ebfedea0SLionel Sambuc jnz .L006encrypt_loop 437*ebfedea0SLionel Sambuc.L005encrypt_finish: 438*ebfedea0SLionel Sambuc movl 52(%esp),%ebp 439*ebfedea0SLionel Sambuc andl $7,%ebp 440*ebfedea0SLionel Sambuc jz .L007finish 441*ebfedea0SLionel Sambuc call .L008PIC_point 442*ebfedea0SLionel Sambuc.L008PIC_point: 443*ebfedea0SLionel Sambuc popl %edx 444*ebfedea0SLionel Sambuc leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx 445*ebfedea0SLionel Sambuc movl (%ecx,%ebp,4),%ebp 446*ebfedea0SLionel Sambuc addl %edx,%ebp 447*ebfedea0SLionel Sambuc xorl %ecx,%ecx 448*ebfedea0SLionel Sambuc xorl %edx,%edx 449*ebfedea0SLionel Sambuc jmp *%ebp 450*ebfedea0SLionel Sambuc.L010ej7: 451*ebfedea0SLionel Sambuc movb 6(%esi),%dh 452*ebfedea0SLionel Sambuc shll $8,%edx 453*ebfedea0SLionel Sambuc.L011ej6: 454*ebfedea0SLionel Sambuc movb 5(%esi),%dh 455*ebfedea0SLionel Sambuc.L012ej5: 456*ebfedea0SLionel Sambuc movb 4(%esi),%dl 457*ebfedea0SLionel Sambuc.L013ej4: 458*ebfedea0SLionel Sambuc movl (%esi),%ecx 459*ebfedea0SLionel Sambuc jmp .L014ejend 460*ebfedea0SLionel Sambuc.L015ej3: 461*ebfedea0SLionel Sambuc movb 2(%esi),%ch 462*ebfedea0SLionel Sambuc shll $8,%ecx 463*ebfedea0SLionel Sambuc.L016ej2: 464*ebfedea0SLionel Sambuc movb 1(%esi),%ch 465*ebfedea0SLionel Sambuc.L017ej1: 466*ebfedea0SLionel Sambuc movb (%esi),%cl 467*ebfedea0SLionel Sambuc.L014ejend: 468*ebfedea0SLionel Sambuc xorl %ecx,%eax 469*ebfedea0SLionel Sambuc xorl %edx,%ebx 470*ebfedea0SLionel Sambuc movl %eax,8(%esp) 471*ebfedea0SLionel Sambuc movl %ebx,12(%esp) 472*ebfedea0SLionel Sambuc call .L_RC5_32_encrypt_begin 473*ebfedea0SLionel Sambuc movl 8(%esp),%eax 474*ebfedea0SLionel Sambuc movl 12(%esp),%ebx 475*ebfedea0SLionel Sambuc movl %eax,(%edi) 476*ebfedea0SLionel Sambuc movl %ebx,4(%edi) 477*ebfedea0SLionel Sambuc jmp .L007finish 478*ebfedea0SLionel Sambuc.L004decrypt: 479*ebfedea0SLionel Sambuc andl $4294967288,%ebp 480*ebfedea0SLionel Sambuc movl 16(%esp),%eax 481*ebfedea0SLionel Sambuc movl 20(%esp),%ebx 482*ebfedea0SLionel Sambuc jz .L018decrypt_finish 483*ebfedea0SLionel Sambuc.L019decrypt_loop: 484*ebfedea0SLionel Sambuc movl (%esi),%eax 485*ebfedea0SLionel Sambuc movl 4(%esi),%ebx 486*ebfedea0SLionel Sambuc movl %eax,8(%esp) 487*ebfedea0SLionel Sambuc movl %ebx,12(%esp) 488*ebfedea0SLionel Sambuc call .L_RC5_32_decrypt_begin 489*ebfedea0SLionel Sambuc movl 8(%esp),%eax 490*ebfedea0SLionel Sambuc movl 12(%esp),%ebx 491*ebfedea0SLionel Sambuc movl 16(%esp),%ecx 492*ebfedea0SLionel Sambuc movl 20(%esp),%edx 493*ebfedea0SLionel Sambuc xorl %eax,%ecx 494*ebfedea0SLionel Sambuc xorl %ebx,%edx 495*ebfedea0SLionel Sambuc movl (%esi),%eax 496*ebfedea0SLionel Sambuc movl 4(%esi),%ebx 497*ebfedea0SLionel Sambuc movl %ecx,(%edi) 498*ebfedea0SLionel Sambuc movl %edx,4(%edi) 499*ebfedea0SLionel Sambuc movl %eax,16(%esp) 500*ebfedea0SLionel Sambuc movl %ebx,20(%esp) 501*ebfedea0SLionel Sambuc addl $8,%esi 502*ebfedea0SLionel Sambuc addl $8,%edi 503*ebfedea0SLionel Sambuc subl $8,%ebp 504*ebfedea0SLionel Sambuc jnz .L019decrypt_loop 505*ebfedea0SLionel Sambuc.L018decrypt_finish: 506*ebfedea0SLionel Sambuc movl 52(%esp),%ebp 507*ebfedea0SLionel Sambuc andl $7,%ebp 508*ebfedea0SLionel Sambuc jz .L007finish 509*ebfedea0SLionel Sambuc movl (%esi),%eax 510*ebfedea0SLionel Sambuc movl 4(%esi),%ebx 511*ebfedea0SLionel Sambuc movl %eax,8(%esp) 512*ebfedea0SLionel Sambuc movl %ebx,12(%esp) 513*ebfedea0SLionel Sambuc call .L_RC5_32_decrypt_begin 514*ebfedea0SLionel Sambuc movl 8(%esp),%eax 515*ebfedea0SLionel Sambuc movl 12(%esp),%ebx 516*ebfedea0SLionel Sambuc movl 16(%esp),%ecx 517*ebfedea0SLionel Sambuc movl 20(%esp),%edx 518*ebfedea0SLionel Sambuc xorl %eax,%ecx 519*ebfedea0SLionel Sambuc xorl %ebx,%edx 520*ebfedea0SLionel Sambuc movl (%esi),%eax 521*ebfedea0SLionel Sambuc movl 4(%esi),%ebx 522*ebfedea0SLionel Sambuc.L020dj7: 523*ebfedea0SLionel Sambuc rorl $16,%edx 524*ebfedea0SLionel Sambuc movb %dl,6(%edi) 525*ebfedea0SLionel Sambuc shrl $16,%edx 526*ebfedea0SLionel Sambuc.L021dj6: 527*ebfedea0SLionel Sambuc movb %dh,5(%edi) 528*ebfedea0SLionel Sambuc.L022dj5: 529*ebfedea0SLionel Sambuc movb %dl,4(%edi) 530*ebfedea0SLionel Sambuc.L023dj4: 531*ebfedea0SLionel Sambuc movl %ecx,(%edi) 532*ebfedea0SLionel Sambuc jmp .L024djend 533*ebfedea0SLionel Sambuc.L025dj3: 534*ebfedea0SLionel Sambuc rorl $16,%ecx 535*ebfedea0SLionel Sambuc movb %cl,2(%edi) 536*ebfedea0SLionel Sambuc shll $16,%ecx 537*ebfedea0SLionel Sambuc.L026dj2: 538*ebfedea0SLionel Sambuc movb %ch,1(%esi) 539*ebfedea0SLionel Sambuc.L027dj1: 540*ebfedea0SLionel Sambuc movb %cl,(%esi) 541*ebfedea0SLionel Sambuc.L024djend: 542*ebfedea0SLionel Sambuc jmp .L007finish 543*ebfedea0SLionel Sambuc.L007finish: 544*ebfedea0SLionel Sambuc movl 60(%esp),%ecx 545*ebfedea0SLionel Sambuc addl $24,%esp 546*ebfedea0SLionel Sambuc movl %eax,(%ecx) 547*ebfedea0SLionel Sambuc movl %ebx,4(%ecx) 548*ebfedea0SLionel Sambuc popl %edi 549*ebfedea0SLionel Sambuc popl %esi 550*ebfedea0SLionel Sambuc popl %ebx 551*ebfedea0SLionel Sambuc popl %ebp 552*ebfedea0SLionel Sambuc ret 553*ebfedea0SLionel Sambuc.align 64 554*ebfedea0SLionel Sambuc.L009cbc_enc_jmp_table: 555*ebfedea0SLionel Sambuc.long 0 556*ebfedea0SLionel Sambuc.long .L017ej1-.L008PIC_point 557*ebfedea0SLionel Sambuc.long .L016ej2-.L008PIC_point 558*ebfedea0SLionel Sambuc.long .L015ej3-.L008PIC_point 559*ebfedea0SLionel Sambuc.long .L013ej4-.L008PIC_point 560*ebfedea0SLionel Sambuc.long .L012ej5-.L008PIC_point 561*ebfedea0SLionel Sambuc.long .L011ej6-.L008PIC_point 562*ebfedea0SLionel Sambuc.long .L010ej7-.L008PIC_point 563*ebfedea0SLionel Sambuc.align 64 564*ebfedea0SLionel Sambuc.size RC5_32_cbc_encrypt,.-.L_RC5_32_cbc_encrypt_begin 565