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