1*ebfedea0SLionel Sambuc#include <machine/asm.h> 2*ebfedea0SLionel Sambuc.text 3*ebfedea0SLionel Sambuc.align 64 4*ebfedea0SLionel Sambuc.L_vpaes_consts: 5*ebfedea0SLionel Sambuc.long 218628480,235210255,168496130,67568393 6*ebfedea0SLionel Sambuc.long 252381056,17041926,33884169,51187212 7*ebfedea0SLionel Sambuc.long 252645135,252645135,252645135,252645135 8*ebfedea0SLionel Sambuc.long 1512730624,3266504856,1377990664,3401244816 9*ebfedea0SLionel Sambuc.long 830229760,1275146365,2969422977,3447763452 10*ebfedea0SLionel Sambuc.long 3411033600,2979783055,338359620,2782886510 11*ebfedea0SLionel Sambuc.long 4209124096,907596821,221174255,1006095553 12*ebfedea0SLionel Sambuc.long 191964160,3799684038,3164090317,1589111125 13*ebfedea0SLionel Sambuc.long 182528256,1777043520,2877432650,3265356744 14*ebfedea0SLionel Sambuc.long 1874708224,3503451415,3305285752,363511674 15*ebfedea0SLionel Sambuc.long 1606117888,3487855781,1093350906,2384367825 16*ebfedea0SLionel Sambuc.long 197121,67569157,134941193,202313229 17*ebfedea0SLionel Sambuc.long 67569157,134941193,202313229,197121 18*ebfedea0SLionel Sambuc.long 134941193,202313229,197121,67569157 19*ebfedea0SLionel Sambuc.long 202313229,197121,67569157,134941193 20*ebfedea0SLionel Sambuc.long 33619971,100992007,168364043,235736079 21*ebfedea0SLionel Sambuc.long 235736079,33619971,100992007,168364043 22*ebfedea0SLionel Sambuc.long 168364043,235736079,33619971,100992007 23*ebfedea0SLionel Sambuc.long 100992007,168364043,235736079,33619971 24*ebfedea0SLionel Sambuc.long 50462976,117835012,185207048,252579084 25*ebfedea0SLionel Sambuc.long 252314880,51251460,117574920,184942860 26*ebfedea0SLionel Sambuc.long 184682752,252054788,50987272,118359308 27*ebfedea0SLionel Sambuc.long 118099200,185467140,251790600,50727180 28*ebfedea0SLionel Sambuc.long 2946363062,528716217,1300004225,1881839624 29*ebfedea0SLionel Sambuc.long 1532713819,1532713819,1532713819,1532713819 30*ebfedea0SLionel Sambuc.long 3602276352,4288629033,3737020424,4153884961 31*ebfedea0SLionel Sambuc.long 1354558464,32357713,2958822624,3775749553 32*ebfedea0SLionel Sambuc.long 1201988352,132424512,1572796698,503232858 33*ebfedea0SLionel Sambuc.long 2213177600,1597421020,4103937655,675398315 34*ebfedea0SLionel Sambuc.long 2749646592,4273543773,1511898873,121693092 35*ebfedea0SLionel Sambuc.long 3040248576,1103263732,2871565598,1608280554 36*ebfedea0SLionel Sambuc.long 2236667136,2588920351,482954393,64377734 37*ebfedea0SLionel Sambuc.long 3069987328,291237287,2117370568,3650299247 38*ebfedea0SLionel Sambuc.long 533321216,3573750986,2572112006,1401264716 39*ebfedea0SLionel Sambuc.long 1339849704,2721158661,548607111,3445553514 40*ebfedea0SLionel Sambuc.long 2128193280,3054596040,2183486460,1257083700 41*ebfedea0SLionel Sambuc.long 655635200,1165381986,3923443150,2344132524 42*ebfedea0SLionel Sambuc.long 190078720,256924420,290342170,357187870 43*ebfedea0SLionel Sambuc.long 1610966272,2263057382,4103205268,309794674 44*ebfedea0SLionel Sambuc.long 2592527872,2233205587,1335446729,3402964816 45*ebfedea0SLionel Sambuc.long 3973531904,3225098121,3002836325,1918774430 46*ebfedea0SLionel Sambuc.long 3870401024,2102906079,2284471353,4117666579 47*ebfedea0SLionel Sambuc.long 617007872,1021508343,366931923,691083277 48*ebfedea0SLionel Sambuc.long 2528395776,3491914898,2968704004,1613121270 49*ebfedea0SLionel Sambuc.long 3445188352,3247741094,844474987,4093578302 50*ebfedea0SLionel Sambuc.long 651481088,1190302358,1689581232,574775300 51*ebfedea0SLionel Sambuc.long 4289380608,206939853,2555985458,2489840491 52*ebfedea0SLionel Sambuc.long 2130264064,327674451,3566485037,3349835193 53*ebfedea0SLionel Sambuc.long 2470714624,316102159,3636825756,3393945945 54*ebfedea0SLionel Sambuc.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105 55*ebfedea0SLionel Sambuc.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83 56*ebfedea0SLionel Sambuc.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117 57*ebfedea0SLionel Sambuc.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105 58*ebfedea0SLionel Sambuc.byte 118,101,114,115,105,116,121,41,0 59*ebfedea0SLionel Sambuc.align 64 60*ebfedea0SLionel Sambuc.type _vpaes_preheat,@function 61*ebfedea0SLionel Sambuc.align 16 62*ebfedea0SLionel Sambuc_vpaes_preheat: 63*ebfedea0SLionel Sambuc addl (%esp),%ebp 64*ebfedea0SLionel Sambuc movdqa -48(%ebp),%xmm7 65*ebfedea0SLionel Sambuc movdqa -16(%ebp),%xmm6 66*ebfedea0SLionel Sambuc ret 67*ebfedea0SLionel Sambuc.size _vpaes_preheat,.-_vpaes_preheat 68*ebfedea0SLionel Sambuc.type _vpaes_encrypt_core,@function 69*ebfedea0SLionel Sambuc.align 16 70*ebfedea0SLionel Sambuc_vpaes_encrypt_core: 71*ebfedea0SLionel Sambuc movl $16,%ecx 72*ebfedea0SLionel Sambuc movl 240(%edx),%eax 73*ebfedea0SLionel Sambuc movdqa %xmm6,%xmm1 74*ebfedea0SLionel Sambuc movdqa (%ebp),%xmm2 75*ebfedea0SLionel Sambuc pandn %xmm0,%xmm1 76*ebfedea0SLionel Sambuc movdqu (%edx),%xmm5 77*ebfedea0SLionel Sambuc psrld $4,%xmm1 78*ebfedea0SLionel Sambuc pand %xmm6,%xmm0 79*ebfedea0SLionel Sambuc.byte 102,15,56,0,208 80*ebfedea0SLionel Sambuc movdqa 16(%ebp),%xmm0 81*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 82*ebfedea0SLionel Sambuc pxor %xmm5,%xmm2 83*ebfedea0SLionel Sambuc pxor %xmm2,%xmm0 84*ebfedea0SLionel Sambuc addl $16,%edx 85*ebfedea0SLionel Sambuc leal 192(%ebp),%ebx 86*ebfedea0SLionel Sambuc jmp .L000enc_entry 87*ebfedea0SLionel Sambuc.align 16 88*ebfedea0SLionel Sambuc.L001enc_loop: 89*ebfedea0SLionel Sambuc movdqa 32(%ebp),%xmm4 90*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 91*ebfedea0SLionel Sambuc pxor %xmm5,%xmm4 92*ebfedea0SLionel Sambuc movdqa 48(%ebp),%xmm0 93*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 94*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 95*ebfedea0SLionel Sambuc movdqa 64(%ebp),%xmm5 96*ebfedea0SLionel Sambuc.byte 102,15,56,0,234 97*ebfedea0SLionel Sambuc movdqa -64(%ebx,%ecx,1),%xmm1 98*ebfedea0SLionel Sambuc movdqa 80(%ebp),%xmm2 99*ebfedea0SLionel Sambuc.byte 102,15,56,0,211 100*ebfedea0SLionel Sambuc pxor %xmm5,%xmm2 101*ebfedea0SLionel Sambuc movdqa (%ebx,%ecx,1),%xmm4 102*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm3 103*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 104*ebfedea0SLionel Sambuc addl $16,%edx 105*ebfedea0SLionel Sambuc pxor %xmm2,%xmm0 106*ebfedea0SLionel Sambuc.byte 102,15,56,0,220 107*ebfedea0SLionel Sambuc addl $16,%ecx 108*ebfedea0SLionel Sambuc pxor %xmm0,%xmm3 109*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 110*ebfedea0SLionel Sambuc andl $48,%ecx 111*ebfedea0SLionel Sambuc pxor %xmm3,%xmm0 112*ebfedea0SLionel Sambuc subl $1,%eax 113*ebfedea0SLionel Sambuc.L000enc_entry: 114*ebfedea0SLionel Sambuc movdqa %xmm6,%xmm1 115*ebfedea0SLionel Sambuc pandn %xmm0,%xmm1 116*ebfedea0SLionel Sambuc psrld $4,%xmm1 117*ebfedea0SLionel Sambuc pand %xmm6,%xmm0 118*ebfedea0SLionel Sambuc movdqa -32(%ebp),%xmm5 119*ebfedea0SLionel Sambuc.byte 102,15,56,0,232 120*ebfedea0SLionel Sambuc pxor %xmm1,%xmm0 121*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm3 122*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 123*ebfedea0SLionel Sambuc pxor %xmm5,%xmm3 124*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm4 125*ebfedea0SLionel Sambuc.byte 102,15,56,0,224 126*ebfedea0SLionel Sambuc pxor %xmm5,%xmm4 127*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm2 128*ebfedea0SLionel Sambuc.byte 102,15,56,0,211 129*ebfedea0SLionel Sambuc pxor %xmm0,%xmm2 130*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm3 131*ebfedea0SLionel Sambuc movdqu (%edx),%xmm5 132*ebfedea0SLionel Sambuc.byte 102,15,56,0,220 133*ebfedea0SLionel Sambuc pxor %xmm1,%xmm3 134*ebfedea0SLionel Sambuc jnz .L001enc_loop 135*ebfedea0SLionel Sambuc movdqa 96(%ebp),%xmm4 136*ebfedea0SLionel Sambuc movdqa 112(%ebp),%xmm0 137*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 138*ebfedea0SLionel Sambuc pxor %xmm5,%xmm4 139*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 140*ebfedea0SLionel Sambuc movdqa 64(%ebx,%ecx,1),%xmm1 141*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 142*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 143*ebfedea0SLionel Sambuc ret 144*ebfedea0SLionel Sambuc.size _vpaes_encrypt_core,.-_vpaes_encrypt_core 145*ebfedea0SLionel Sambuc.type _vpaes_decrypt_core,@function 146*ebfedea0SLionel Sambuc.align 16 147*ebfedea0SLionel Sambuc_vpaes_decrypt_core: 148*ebfedea0SLionel Sambuc movl 240(%edx),%eax 149*ebfedea0SLionel Sambuc leal 608(%ebp),%ebx 150*ebfedea0SLionel Sambuc movdqa %xmm6,%xmm1 151*ebfedea0SLionel Sambuc movdqa -64(%ebx),%xmm2 152*ebfedea0SLionel Sambuc pandn %xmm0,%xmm1 153*ebfedea0SLionel Sambuc movl %eax,%ecx 154*ebfedea0SLionel Sambuc psrld $4,%xmm1 155*ebfedea0SLionel Sambuc movdqu (%edx),%xmm5 156*ebfedea0SLionel Sambuc shll $4,%ecx 157*ebfedea0SLionel Sambuc pand %xmm6,%xmm0 158*ebfedea0SLionel Sambuc.byte 102,15,56,0,208 159*ebfedea0SLionel Sambuc movdqa -48(%ebx),%xmm0 160*ebfedea0SLionel Sambuc xorl $48,%ecx 161*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 162*ebfedea0SLionel Sambuc andl $48,%ecx 163*ebfedea0SLionel Sambuc pxor %xmm5,%xmm2 164*ebfedea0SLionel Sambuc movdqa 176(%ebp),%xmm5 165*ebfedea0SLionel Sambuc pxor %xmm2,%xmm0 166*ebfedea0SLionel Sambuc addl $16,%edx 167*ebfedea0SLionel Sambuc leal -352(%ebx,%ecx,1),%ecx 168*ebfedea0SLionel Sambuc jmp .L002dec_entry 169*ebfedea0SLionel Sambuc.align 16 170*ebfedea0SLionel Sambuc.L003dec_loop: 171*ebfedea0SLionel Sambuc movdqa -32(%ebx),%xmm4 172*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 173*ebfedea0SLionel Sambuc pxor %xmm0,%xmm4 174*ebfedea0SLionel Sambuc movdqa -16(%ebx),%xmm0 175*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 176*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 177*ebfedea0SLionel Sambuc addl $16,%edx 178*ebfedea0SLionel Sambuc.byte 102,15,56,0,197 179*ebfedea0SLionel Sambuc movdqa (%ebx),%xmm4 180*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 181*ebfedea0SLionel Sambuc pxor %xmm0,%xmm4 182*ebfedea0SLionel Sambuc movdqa 16(%ebx),%xmm0 183*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 184*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 185*ebfedea0SLionel Sambuc subl $1,%eax 186*ebfedea0SLionel Sambuc.byte 102,15,56,0,197 187*ebfedea0SLionel Sambuc movdqa 32(%ebx),%xmm4 188*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 189*ebfedea0SLionel Sambuc pxor %xmm0,%xmm4 190*ebfedea0SLionel Sambuc movdqa 48(%ebx),%xmm0 191*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 192*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 193*ebfedea0SLionel Sambuc.byte 102,15,56,0,197 194*ebfedea0SLionel Sambuc movdqa 64(%ebx),%xmm4 195*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 196*ebfedea0SLionel Sambuc pxor %xmm0,%xmm4 197*ebfedea0SLionel Sambuc movdqa 80(%ebx),%xmm0 198*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 199*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 200*ebfedea0SLionel Sambuc.byte 102,15,58,15,237,12 201*ebfedea0SLionel Sambuc.L002dec_entry: 202*ebfedea0SLionel Sambuc movdqa %xmm6,%xmm1 203*ebfedea0SLionel Sambuc pandn %xmm0,%xmm1 204*ebfedea0SLionel Sambuc psrld $4,%xmm1 205*ebfedea0SLionel Sambuc pand %xmm6,%xmm0 206*ebfedea0SLionel Sambuc movdqa -32(%ebp),%xmm2 207*ebfedea0SLionel Sambuc.byte 102,15,56,0,208 208*ebfedea0SLionel Sambuc pxor %xmm1,%xmm0 209*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm3 210*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 211*ebfedea0SLionel Sambuc pxor %xmm2,%xmm3 212*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm4 213*ebfedea0SLionel Sambuc.byte 102,15,56,0,224 214*ebfedea0SLionel Sambuc pxor %xmm2,%xmm4 215*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm2 216*ebfedea0SLionel Sambuc.byte 102,15,56,0,211 217*ebfedea0SLionel Sambuc pxor %xmm0,%xmm2 218*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm3 219*ebfedea0SLionel Sambuc.byte 102,15,56,0,220 220*ebfedea0SLionel Sambuc pxor %xmm1,%xmm3 221*ebfedea0SLionel Sambuc movdqu (%edx),%xmm0 222*ebfedea0SLionel Sambuc jnz .L003dec_loop 223*ebfedea0SLionel Sambuc movdqa 96(%ebx),%xmm4 224*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 225*ebfedea0SLionel Sambuc pxor %xmm0,%xmm4 226*ebfedea0SLionel Sambuc movdqa 112(%ebx),%xmm0 227*ebfedea0SLionel Sambuc movdqa (%ecx),%xmm2 228*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 229*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 230*ebfedea0SLionel Sambuc.byte 102,15,56,0,194 231*ebfedea0SLionel Sambuc ret 232*ebfedea0SLionel Sambuc.size _vpaes_decrypt_core,.-_vpaes_decrypt_core 233*ebfedea0SLionel Sambuc.type _vpaes_schedule_core,@function 234*ebfedea0SLionel Sambuc.align 16 235*ebfedea0SLionel Sambuc_vpaes_schedule_core: 236*ebfedea0SLionel Sambuc addl (%esp),%ebp 237*ebfedea0SLionel Sambuc movdqu (%esi),%xmm0 238*ebfedea0SLionel Sambuc movdqa 320(%ebp),%xmm2 239*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm3 240*ebfedea0SLionel Sambuc leal (%ebp),%ebx 241*ebfedea0SLionel Sambuc movdqa %xmm2,4(%esp) 242*ebfedea0SLionel Sambuc call _vpaes_schedule_transform 243*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm7 244*ebfedea0SLionel Sambuc testl %edi,%edi 245*ebfedea0SLionel Sambuc jnz .L004schedule_am_decrypting 246*ebfedea0SLionel Sambuc movdqu %xmm0,(%edx) 247*ebfedea0SLionel Sambuc jmp .L005schedule_go 248*ebfedea0SLionel Sambuc.L004schedule_am_decrypting: 249*ebfedea0SLionel Sambuc movdqa 256(%ebp,%ecx,1),%xmm1 250*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 251*ebfedea0SLionel Sambuc movdqu %xmm3,(%edx) 252*ebfedea0SLionel Sambuc xorl $48,%ecx 253*ebfedea0SLionel Sambuc.L005schedule_go: 254*ebfedea0SLionel Sambuc cmpl $192,%eax 255*ebfedea0SLionel Sambuc ja .L006schedule_256 256*ebfedea0SLionel Sambuc je .L007schedule_192 257*ebfedea0SLionel Sambuc.L008schedule_128: 258*ebfedea0SLionel Sambuc movl $10,%eax 259*ebfedea0SLionel Sambuc.L009loop_schedule_128: 260*ebfedea0SLionel Sambuc call _vpaes_schedule_round 261*ebfedea0SLionel Sambuc decl %eax 262*ebfedea0SLionel Sambuc jz .L010schedule_mangle_last 263*ebfedea0SLionel Sambuc call _vpaes_schedule_mangle 264*ebfedea0SLionel Sambuc jmp .L009loop_schedule_128 265*ebfedea0SLionel Sambuc.align 16 266*ebfedea0SLionel Sambuc.L007schedule_192: 267*ebfedea0SLionel Sambuc movdqu 8(%esi),%xmm0 268*ebfedea0SLionel Sambuc call _vpaes_schedule_transform 269*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm6 270*ebfedea0SLionel Sambuc pxor %xmm4,%xmm4 271*ebfedea0SLionel Sambuc movhlps %xmm4,%xmm6 272*ebfedea0SLionel Sambuc movl $4,%eax 273*ebfedea0SLionel Sambuc.L011loop_schedule_192: 274*ebfedea0SLionel Sambuc call _vpaes_schedule_round 275*ebfedea0SLionel Sambuc.byte 102,15,58,15,198,8 276*ebfedea0SLionel Sambuc call _vpaes_schedule_mangle 277*ebfedea0SLionel Sambuc call _vpaes_schedule_192_smear 278*ebfedea0SLionel Sambuc call _vpaes_schedule_mangle 279*ebfedea0SLionel Sambuc call _vpaes_schedule_round 280*ebfedea0SLionel Sambuc decl %eax 281*ebfedea0SLionel Sambuc jz .L010schedule_mangle_last 282*ebfedea0SLionel Sambuc call _vpaes_schedule_mangle 283*ebfedea0SLionel Sambuc call _vpaes_schedule_192_smear 284*ebfedea0SLionel Sambuc jmp .L011loop_schedule_192 285*ebfedea0SLionel Sambuc.align 16 286*ebfedea0SLionel Sambuc.L006schedule_256: 287*ebfedea0SLionel Sambuc movdqu 16(%esi),%xmm0 288*ebfedea0SLionel Sambuc call _vpaes_schedule_transform 289*ebfedea0SLionel Sambuc movl $7,%eax 290*ebfedea0SLionel Sambuc.L012loop_schedule_256: 291*ebfedea0SLionel Sambuc call _vpaes_schedule_mangle 292*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm6 293*ebfedea0SLionel Sambuc call _vpaes_schedule_round 294*ebfedea0SLionel Sambuc decl %eax 295*ebfedea0SLionel Sambuc jz .L010schedule_mangle_last 296*ebfedea0SLionel Sambuc call _vpaes_schedule_mangle 297*ebfedea0SLionel Sambuc pshufd $255,%xmm0,%xmm0 298*ebfedea0SLionel Sambuc movdqa %xmm7,20(%esp) 299*ebfedea0SLionel Sambuc movdqa %xmm6,%xmm7 300*ebfedea0SLionel Sambuc call .L_vpaes_schedule_low_round 301*ebfedea0SLionel Sambuc movdqa 20(%esp),%xmm7 302*ebfedea0SLionel Sambuc jmp .L012loop_schedule_256 303*ebfedea0SLionel Sambuc.align 16 304*ebfedea0SLionel Sambuc.L010schedule_mangle_last: 305*ebfedea0SLionel Sambuc leal 384(%ebp),%ebx 306*ebfedea0SLionel Sambuc testl %edi,%edi 307*ebfedea0SLionel Sambuc jnz .L013schedule_mangle_last_dec 308*ebfedea0SLionel Sambuc movdqa 256(%ebp,%ecx,1),%xmm1 309*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 310*ebfedea0SLionel Sambuc leal 352(%ebp),%ebx 311*ebfedea0SLionel Sambuc addl $32,%edx 312*ebfedea0SLionel Sambuc.L013schedule_mangle_last_dec: 313*ebfedea0SLionel Sambuc addl $-16,%edx 314*ebfedea0SLionel Sambuc pxor 336(%ebp),%xmm0 315*ebfedea0SLionel Sambuc call _vpaes_schedule_transform 316*ebfedea0SLionel Sambuc movdqu %xmm0,(%edx) 317*ebfedea0SLionel Sambuc pxor %xmm0,%xmm0 318*ebfedea0SLionel Sambuc pxor %xmm1,%xmm1 319*ebfedea0SLionel Sambuc pxor %xmm2,%xmm2 320*ebfedea0SLionel Sambuc pxor %xmm3,%xmm3 321*ebfedea0SLionel Sambuc pxor %xmm4,%xmm4 322*ebfedea0SLionel Sambuc pxor %xmm5,%xmm5 323*ebfedea0SLionel Sambuc pxor %xmm6,%xmm6 324*ebfedea0SLionel Sambuc pxor %xmm7,%xmm7 325*ebfedea0SLionel Sambuc ret 326*ebfedea0SLionel Sambuc.size _vpaes_schedule_core,.-_vpaes_schedule_core 327*ebfedea0SLionel Sambuc.type _vpaes_schedule_192_smear,@function 328*ebfedea0SLionel Sambuc.align 16 329*ebfedea0SLionel Sambuc_vpaes_schedule_192_smear: 330*ebfedea0SLionel Sambuc pshufd $128,%xmm6,%xmm0 331*ebfedea0SLionel Sambuc pxor %xmm0,%xmm6 332*ebfedea0SLionel Sambuc pshufd $254,%xmm7,%xmm0 333*ebfedea0SLionel Sambuc pxor %xmm0,%xmm6 334*ebfedea0SLionel Sambuc movdqa %xmm6,%xmm0 335*ebfedea0SLionel Sambuc pxor %xmm1,%xmm1 336*ebfedea0SLionel Sambuc movhlps %xmm1,%xmm6 337*ebfedea0SLionel Sambuc ret 338*ebfedea0SLionel Sambuc.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear 339*ebfedea0SLionel Sambuc.type _vpaes_schedule_round,@function 340*ebfedea0SLionel Sambuc.align 16 341*ebfedea0SLionel Sambuc_vpaes_schedule_round: 342*ebfedea0SLionel Sambuc movdqa 8(%esp),%xmm2 343*ebfedea0SLionel Sambuc pxor %xmm1,%xmm1 344*ebfedea0SLionel Sambuc.byte 102,15,58,15,202,15 345*ebfedea0SLionel Sambuc.byte 102,15,58,15,210,15 346*ebfedea0SLionel Sambuc pxor %xmm1,%xmm7 347*ebfedea0SLionel Sambuc pshufd $255,%xmm0,%xmm0 348*ebfedea0SLionel Sambuc.byte 102,15,58,15,192,1 349*ebfedea0SLionel Sambuc movdqa %xmm2,8(%esp) 350*ebfedea0SLionel Sambuc.L_vpaes_schedule_low_round: 351*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm1 352*ebfedea0SLionel Sambuc pslldq $4,%xmm7 353*ebfedea0SLionel Sambuc pxor %xmm1,%xmm7 354*ebfedea0SLionel Sambuc movdqa %xmm7,%xmm1 355*ebfedea0SLionel Sambuc pslldq $8,%xmm7 356*ebfedea0SLionel Sambuc pxor %xmm1,%xmm7 357*ebfedea0SLionel Sambuc pxor 336(%ebp),%xmm7 358*ebfedea0SLionel Sambuc movdqa -16(%ebp),%xmm4 359*ebfedea0SLionel Sambuc movdqa -48(%ebp),%xmm5 360*ebfedea0SLionel Sambuc movdqa %xmm4,%xmm1 361*ebfedea0SLionel Sambuc pandn %xmm0,%xmm1 362*ebfedea0SLionel Sambuc psrld $4,%xmm1 363*ebfedea0SLionel Sambuc pand %xmm4,%xmm0 364*ebfedea0SLionel Sambuc movdqa -32(%ebp),%xmm2 365*ebfedea0SLionel Sambuc.byte 102,15,56,0,208 366*ebfedea0SLionel Sambuc pxor %xmm1,%xmm0 367*ebfedea0SLionel Sambuc movdqa %xmm5,%xmm3 368*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 369*ebfedea0SLionel Sambuc pxor %xmm2,%xmm3 370*ebfedea0SLionel Sambuc movdqa %xmm5,%xmm4 371*ebfedea0SLionel Sambuc.byte 102,15,56,0,224 372*ebfedea0SLionel Sambuc pxor %xmm2,%xmm4 373*ebfedea0SLionel Sambuc movdqa %xmm5,%xmm2 374*ebfedea0SLionel Sambuc.byte 102,15,56,0,211 375*ebfedea0SLionel Sambuc pxor %xmm0,%xmm2 376*ebfedea0SLionel Sambuc movdqa %xmm5,%xmm3 377*ebfedea0SLionel Sambuc.byte 102,15,56,0,220 378*ebfedea0SLionel Sambuc pxor %xmm1,%xmm3 379*ebfedea0SLionel Sambuc movdqa 32(%ebp),%xmm4 380*ebfedea0SLionel Sambuc.byte 102,15,56,0,226 381*ebfedea0SLionel Sambuc movdqa 48(%ebp),%xmm0 382*ebfedea0SLionel Sambuc.byte 102,15,56,0,195 383*ebfedea0SLionel Sambuc pxor %xmm4,%xmm0 384*ebfedea0SLionel Sambuc pxor %xmm7,%xmm0 385*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm7 386*ebfedea0SLionel Sambuc ret 387*ebfedea0SLionel Sambuc.size _vpaes_schedule_round,.-_vpaes_schedule_round 388*ebfedea0SLionel Sambuc.type _vpaes_schedule_transform,@function 389*ebfedea0SLionel Sambuc.align 16 390*ebfedea0SLionel Sambuc_vpaes_schedule_transform: 391*ebfedea0SLionel Sambuc movdqa -16(%ebp),%xmm2 392*ebfedea0SLionel Sambuc movdqa %xmm2,%xmm1 393*ebfedea0SLionel Sambuc pandn %xmm0,%xmm1 394*ebfedea0SLionel Sambuc psrld $4,%xmm1 395*ebfedea0SLionel Sambuc pand %xmm2,%xmm0 396*ebfedea0SLionel Sambuc movdqa (%ebx),%xmm2 397*ebfedea0SLionel Sambuc.byte 102,15,56,0,208 398*ebfedea0SLionel Sambuc movdqa 16(%ebx),%xmm0 399*ebfedea0SLionel Sambuc.byte 102,15,56,0,193 400*ebfedea0SLionel Sambuc pxor %xmm2,%xmm0 401*ebfedea0SLionel Sambuc ret 402*ebfedea0SLionel Sambuc.size _vpaes_schedule_transform,.-_vpaes_schedule_transform 403*ebfedea0SLionel Sambuc.type _vpaes_schedule_mangle,@function 404*ebfedea0SLionel Sambuc.align 16 405*ebfedea0SLionel Sambuc_vpaes_schedule_mangle: 406*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm4 407*ebfedea0SLionel Sambuc movdqa 128(%ebp),%xmm5 408*ebfedea0SLionel Sambuc testl %edi,%edi 409*ebfedea0SLionel Sambuc jnz .L014schedule_mangle_dec 410*ebfedea0SLionel Sambuc addl $16,%edx 411*ebfedea0SLionel Sambuc pxor 336(%ebp),%xmm4 412*ebfedea0SLionel Sambuc.byte 102,15,56,0,229 413*ebfedea0SLionel Sambuc movdqa %xmm4,%xmm3 414*ebfedea0SLionel Sambuc.byte 102,15,56,0,229 415*ebfedea0SLionel Sambuc pxor %xmm4,%xmm3 416*ebfedea0SLionel Sambuc.byte 102,15,56,0,229 417*ebfedea0SLionel Sambuc pxor %xmm4,%xmm3 418*ebfedea0SLionel Sambuc jmp .L015schedule_mangle_both 419*ebfedea0SLionel Sambuc.align 16 420*ebfedea0SLionel Sambuc.L014schedule_mangle_dec: 421*ebfedea0SLionel Sambuc movdqa -16(%ebp),%xmm2 422*ebfedea0SLionel Sambuc leal 416(%ebp),%esi 423*ebfedea0SLionel Sambuc movdqa %xmm2,%xmm1 424*ebfedea0SLionel Sambuc pandn %xmm4,%xmm1 425*ebfedea0SLionel Sambuc psrld $4,%xmm1 426*ebfedea0SLionel Sambuc pand %xmm2,%xmm4 427*ebfedea0SLionel Sambuc movdqa (%esi),%xmm2 428*ebfedea0SLionel Sambuc.byte 102,15,56,0,212 429*ebfedea0SLionel Sambuc movdqa 16(%esi),%xmm3 430*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 431*ebfedea0SLionel Sambuc pxor %xmm2,%xmm3 432*ebfedea0SLionel Sambuc.byte 102,15,56,0,221 433*ebfedea0SLionel Sambuc movdqa 32(%esi),%xmm2 434*ebfedea0SLionel Sambuc.byte 102,15,56,0,212 435*ebfedea0SLionel Sambuc pxor %xmm3,%xmm2 436*ebfedea0SLionel Sambuc movdqa 48(%esi),%xmm3 437*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 438*ebfedea0SLionel Sambuc pxor %xmm2,%xmm3 439*ebfedea0SLionel Sambuc.byte 102,15,56,0,221 440*ebfedea0SLionel Sambuc movdqa 64(%esi),%xmm2 441*ebfedea0SLionel Sambuc.byte 102,15,56,0,212 442*ebfedea0SLionel Sambuc pxor %xmm3,%xmm2 443*ebfedea0SLionel Sambuc movdqa 80(%esi),%xmm3 444*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 445*ebfedea0SLionel Sambuc pxor %xmm2,%xmm3 446*ebfedea0SLionel Sambuc.byte 102,15,56,0,221 447*ebfedea0SLionel Sambuc movdqa 96(%esi),%xmm2 448*ebfedea0SLionel Sambuc.byte 102,15,56,0,212 449*ebfedea0SLionel Sambuc pxor %xmm3,%xmm2 450*ebfedea0SLionel Sambuc movdqa 112(%esi),%xmm3 451*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 452*ebfedea0SLionel Sambuc pxor %xmm2,%xmm3 453*ebfedea0SLionel Sambuc addl $-16,%edx 454*ebfedea0SLionel Sambuc.L015schedule_mangle_both: 455*ebfedea0SLionel Sambuc movdqa 256(%ebp,%ecx,1),%xmm1 456*ebfedea0SLionel Sambuc.byte 102,15,56,0,217 457*ebfedea0SLionel Sambuc addl $-16,%ecx 458*ebfedea0SLionel Sambuc andl $48,%ecx 459*ebfedea0SLionel Sambuc movdqu %xmm3,(%edx) 460*ebfedea0SLionel Sambuc ret 461*ebfedea0SLionel Sambuc.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle 462*ebfedea0SLionel Sambuc.globl vpaes_set_encrypt_key 463*ebfedea0SLionel Sambuc.type vpaes_set_encrypt_key,@function 464*ebfedea0SLionel Sambuc.align 16 465*ebfedea0SLionel Sambucvpaes_set_encrypt_key: 466*ebfedea0SLionel Sambuc.L_vpaes_set_encrypt_key_begin: 467*ebfedea0SLionel Sambuc pushl %ebp 468*ebfedea0SLionel Sambuc pushl %ebx 469*ebfedea0SLionel Sambuc pushl %esi 470*ebfedea0SLionel Sambuc pushl %edi 471*ebfedea0SLionel Sambuc movl 20(%esp),%esi 472*ebfedea0SLionel Sambuc leal -56(%esp),%ebx 473*ebfedea0SLionel Sambuc movl 24(%esp),%eax 474*ebfedea0SLionel Sambuc andl $-16,%ebx 475*ebfedea0SLionel Sambuc movl 28(%esp),%edx 476*ebfedea0SLionel Sambuc xchgl %esp,%ebx 477*ebfedea0SLionel Sambuc movl %ebx,48(%esp) 478*ebfedea0SLionel Sambuc movl %eax,%ebx 479*ebfedea0SLionel Sambuc shrl $5,%ebx 480*ebfedea0SLionel Sambuc addl $5,%ebx 481*ebfedea0SLionel Sambuc movl %ebx,240(%edx) 482*ebfedea0SLionel Sambuc movl $48,%ecx 483*ebfedea0SLionel Sambuc movl $0,%edi 484*ebfedea0SLionel Sambuc leal .L_vpaes_consts+0x30-.L016pic_point,%ebp 485*ebfedea0SLionel Sambuc call _vpaes_schedule_core 486*ebfedea0SLionel Sambuc.L016pic_point: 487*ebfedea0SLionel Sambuc movl 48(%esp),%esp 488*ebfedea0SLionel Sambuc xorl %eax,%eax 489*ebfedea0SLionel Sambuc popl %edi 490*ebfedea0SLionel Sambuc popl %esi 491*ebfedea0SLionel Sambuc popl %ebx 492*ebfedea0SLionel Sambuc popl %ebp 493*ebfedea0SLionel Sambuc ret 494*ebfedea0SLionel Sambuc.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin 495*ebfedea0SLionel Sambuc.globl vpaes_set_decrypt_key 496*ebfedea0SLionel Sambuc.type vpaes_set_decrypt_key,@function 497*ebfedea0SLionel Sambuc.align 16 498*ebfedea0SLionel Sambucvpaes_set_decrypt_key: 499*ebfedea0SLionel Sambuc.L_vpaes_set_decrypt_key_begin: 500*ebfedea0SLionel Sambuc pushl %ebp 501*ebfedea0SLionel Sambuc pushl %ebx 502*ebfedea0SLionel Sambuc pushl %esi 503*ebfedea0SLionel Sambuc pushl %edi 504*ebfedea0SLionel Sambuc movl 20(%esp),%esi 505*ebfedea0SLionel Sambuc leal -56(%esp),%ebx 506*ebfedea0SLionel Sambuc movl 24(%esp),%eax 507*ebfedea0SLionel Sambuc andl $-16,%ebx 508*ebfedea0SLionel Sambuc movl 28(%esp),%edx 509*ebfedea0SLionel Sambuc xchgl %esp,%ebx 510*ebfedea0SLionel Sambuc movl %ebx,48(%esp) 511*ebfedea0SLionel Sambuc movl %eax,%ebx 512*ebfedea0SLionel Sambuc shrl $5,%ebx 513*ebfedea0SLionel Sambuc addl $5,%ebx 514*ebfedea0SLionel Sambuc movl %ebx,240(%edx) 515*ebfedea0SLionel Sambuc shll $4,%ebx 516*ebfedea0SLionel Sambuc leal 16(%edx,%ebx,1),%edx 517*ebfedea0SLionel Sambuc movl $1,%edi 518*ebfedea0SLionel Sambuc movl %eax,%ecx 519*ebfedea0SLionel Sambuc shrl $1,%ecx 520*ebfedea0SLionel Sambuc andl $32,%ecx 521*ebfedea0SLionel Sambuc xorl $32,%ecx 522*ebfedea0SLionel Sambuc leal .L_vpaes_consts+0x30-.L017pic_point,%ebp 523*ebfedea0SLionel Sambuc call _vpaes_schedule_core 524*ebfedea0SLionel Sambuc.L017pic_point: 525*ebfedea0SLionel Sambuc movl 48(%esp),%esp 526*ebfedea0SLionel Sambuc xorl %eax,%eax 527*ebfedea0SLionel Sambuc popl %edi 528*ebfedea0SLionel Sambuc popl %esi 529*ebfedea0SLionel Sambuc popl %ebx 530*ebfedea0SLionel Sambuc popl %ebp 531*ebfedea0SLionel Sambuc ret 532*ebfedea0SLionel Sambuc.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin 533*ebfedea0SLionel Sambuc.globl vpaes_encrypt 534*ebfedea0SLionel Sambuc.type vpaes_encrypt,@function 535*ebfedea0SLionel Sambuc.align 16 536*ebfedea0SLionel Sambucvpaes_encrypt: 537*ebfedea0SLionel Sambuc.L_vpaes_encrypt_begin: 538*ebfedea0SLionel Sambuc pushl %ebp 539*ebfedea0SLionel Sambuc pushl %ebx 540*ebfedea0SLionel Sambuc pushl %esi 541*ebfedea0SLionel Sambuc pushl %edi 542*ebfedea0SLionel Sambuc leal .L_vpaes_consts+0x30-.L018pic_point,%ebp 543*ebfedea0SLionel Sambuc call _vpaes_preheat 544*ebfedea0SLionel Sambuc.L018pic_point: 545*ebfedea0SLionel Sambuc movl 20(%esp),%esi 546*ebfedea0SLionel Sambuc leal -56(%esp),%ebx 547*ebfedea0SLionel Sambuc movl 24(%esp),%edi 548*ebfedea0SLionel Sambuc andl $-16,%ebx 549*ebfedea0SLionel Sambuc movl 28(%esp),%edx 550*ebfedea0SLionel Sambuc xchgl %esp,%ebx 551*ebfedea0SLionel Sambuc movl %ebx,48(%esp) 552*ebfedea0SLionel Sambuc movdqu (%esi),%xmm0 553*ebfedea0SLionel Sambuc call _vpaes_encrypt_core 554*ebfedea0SLionel Sambuc movdqu %xmm0,(%edi) 555*ebfedea0SLionel Sambuc movl 48(%esp),%esp 556*ebfedea0SLionel Sambuc popl %edi 557*ebfedea0SLionel Sambuc popl %esi 558*ebfedea0SLionel Sambuc popl %ebx 559*ebfedea0SLionel Sambuc popl %ebp 560*ebfedea0SLionel Sambuc ret 561*ebfedea0SLionel Sambuc.size vpaes_encrypt,.-.L_vpaes_encrypt_begin 562*ebfedea0SLionel Sambuc.globl vpaes_decrypt 563*ebfedea0SLionel Sambuc.type vpaes_decrypt,@function 564*ebfedea0SLionel Sambuc.align 16 565*ebfedea0SLionel Sambucvpaes_decrypt: 566*ebfedea0SLionel Sambuc.L_vpaes_decrypt_begin: 567*ebfedea0SLionel Sambuc pushl %ebp 568*ebfedea0SLionel Sambuc pushl %ebx 569*ebfedea0SLionel Sambuc pushl %esi 570*ebfedea0SLionel Sambuc pushl %edi 571*ebfedea0SLionel Sambuc leal .L_vpaes_consts+0x30-.L019pic_point,%ebp 572*ebfedea0SLionel Sambuc call _vpaes_preheat 573*ebfedea0SLionel Sambuc.L019pic_point: 574*ebfedea0SLionel Sambuc movl 20(%esp),%esi 575*ebfedea0SLionel Sambuc leal -56(%esp),%ebx 576*ebfedea0SLionel Sambuc movl 24(%esp),%edi 577*ebfedea0SLionel Sambuc andl $-16,%ebx 578*ebfedea0SLionel Sambuc movl 28(%esp),%edx 579*ebfedea0SLionel Sambuc xchgl %esp,%ebx 580*ebfedea0SLionel Sambuc movl %ebx,48(%esp) 581*ebfedea0SLionel Sambuc movdqu (%esi),%xmm0 582*ebfedea0SLionel Sambuc call _vpaes_decrypt_core 583*ebfedea0SLionel Sambuc movdqu %xmm0,(%edi) 584*ebfedea0SLionel Sambuc movl 48(%esp),%esp 585*ebfedea0SLionel Sambuc popl %edi 586*ebfedea0SLionel Sambuc popl %esi 587*ebfedea0SLionel Sambuc popl %ebx 588*ebfedea0SLionel Sambuc popl %ebp 589*ebfedea0SLionel Sambuc ret 590*ebfedea0SLionel Sambuc.size vpaes_decrypt,.-.L_vpaes_decrypt_begin 591*ebfedea0SLionel Sambuc.globl vpaes_cbc_encrypt 592*ebfedea0SLionel Sambuc.type vpaes_cbc_encrypt,@function 593*ebfedea0SLionel Sambuc.align 16 594*ebfedea0SLionel Sambucvpaes_cbc_encrypt: 595*ebfedea0SLionel Sambuc.L_vpaes_cbc_encrypt_begin: 596*ebfedea0SLionel Sambuc pushl %ebp 597*ebfedea0SLionel Sambuc pushl %ebx 598*ebfedea0SLionel Sambuc pushl %esi 599*ebfedea0SLionel Sambuc pushl %edi 600*ebfedea0SLionel Sambuc movl 20(%esp),%esi 601*ebfedea0SLionel Sambuc movl 24(%esp),%edi 602*ebfedea0SLionel Sambuc movl 28(%esp),%eax 603*ebfedea0SLionel Sambuc movl 32(%esp),%edx 604*ebfedea0SLionel Sambuc subl $16,%eax 605*ebfedea0SLionel Sambuc jc .L020cbc_abort 606*ebfedea0SLionel Sambuc leal -56(%esp),%ebx 607*ebfedea0SLionel Sambuc movl 36(%esp),%ebp 608*ebfedea0SLionel Sambuc andl $-16,%ebx 609*ebfedea0SLionel Sambuc movl 40(%esp),%ecx 610*ebfedea0SLionel Sambuc xchgl %esp,%ebx 611*ebfedea0SLionel Sambuc movdqu (%ebp),%xmm1 612*ebfedea0SLionel Sambuc subl %esi,%edi 613*ebfedea0SLionel Sambuc movl %ebx,48(%esp) 614*ebfedea0SLionel Sambuc movl %edi,(%esp) 615*ebfedea0SLionel Sambuc movl %edx,4(%esp) 616*ebfedea0SLionel Sambuc movl %ebp,8(%esp) 617*ebfedea0SLionel Sambuc movl %eax,%edi 618*ebfedea0SLionel Sambuc leal .L_vpaes_consts+0x30-.L021pic_point,%ebp 619*ebfedea0SLionel Sambuc call _vpaes_preheat 620*ebfedea0SLionel Sambuc.L021pic_point: 621*ebfedea0SLionel Sambuc cmpl $0,%ecx 622*ebfedea0SLionel Sambuc je .L022cbc_dec_loop 623*ebfedea0SLionel Sambuc jmp .L023cbc_enc_loop 624*ebfedea0SLionel Sambuc.align 16 625*ebfedea0SLionel Sambuc.L023cbc_enc_loop: 626*ebfedea0SLionel Sambuc movdqu (%esi),%xmm0 627*ebfedea0SLionel Sambuc pxor %xmm1,%xmm0 628*ebfedea0SLionel Sambuc call _vpaes_encrypt_core 629*ebfedea0SLionel Sambuc movl (%esp),%ebx 630*ebfedea0SLionel Sambuc movl 4(%esp),%edx 631*ebfedea0SLionel Sambuc movdqa %xmm0,%xmm1 632*ebfedea0SLionel Sambuc movdqu %xmm0,(%ebx,%esi,1) 633*ebfedea0SLionel Sambuc leal 16(%esi),%esi 634*ebfedea0SLionel Sambuc subl $16,%edi 635*ebfedea0SLionel Sambuc jnc .L023cbc_enc_loop 636*ebfedea0SLionel Sambuc jmp .L024cbc_done 637*ebfedea0SLionel Sambuc.align 16 638*ebfedea0SLionel Sambuc.L022cbc_dec_loop: 639*ebfedea0SLionel Sambuc movdqu (%esi),%xmm0 640*ebfedea0SLionel Sambuc movdqa %xmm1,16(%esp) 641*ebfedea0SLionel Sambuc movdqa %xmm0,32(%esp) 642*ebfedea0SLionel Sambuc call _vpaes_decrypt_core 643*ebfedea0SLionel Sambuc movl (%esp),%ebx 644*ebfedea0SLionel Sambuc movl 4(%esp),%edx 645*ebfedea0SLionel Sambuc pxor 16(%esp),%xmm0 646*ebfedea0SLionel Sambuc movdqa 32(%esp),%xmm1 647*ebfedea0SLionel Sambuc movdqu %xmm0,(%ebx,%esi,1) 648*ebfedea0SLionel Sambuc leal 16(%esi),%esi 649*ebfedea0SLionel Sambuc subl $16,%edi 650*ebfedea0SLionel Sambuc jnc .L022cbc_dec_loop 651*ebfedea0SLionel Sambuc.L024cbc_done: 652*ebfedea0SLionel Sambuc movl 8(%esp),%ebx 653*ebfedea0SLionel Sambuc movl 48(%esp),%esp 654*ebfedea0SLionel Sambuc movdqu %xmm1,(%ebx) 655*ebfedea0SLionel Sambuc.L020cbc_abort: 656*ebfedea0SLionel Sambuc popl %edi 657*ebfedea0SLionel Sambuc popl %esi 658*ebfedea0SLionel Sambuc popl %ebx 659*ebfedea0SLionel Sambuc popl %ebp 660*ebfedea0SLionel Sambuc ret 661*ebfedea0SLionel Sambuc.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin 662