120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.text 220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_encrypt 320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_encrypt,@function 420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_encrypt: 620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rdx),%eax 820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm0 920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdx),%xmm1 1020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rdx),%rdx 1120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 1220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_1: 1320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 1420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 1520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm1 1620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdx),%rdx 1720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_1 1820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 1920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 2020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 2120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_encrypt,.-aesni_encrypt 2220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 2320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_decrypt 2420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_decrypt,@function 2520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 2620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_decrypt: 2720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 2820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rdx),%eax 2920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm0 3020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdx),%xmm1 3120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rdx),%rdx 3220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 3320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_2: 3420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 3520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 3620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm1 3720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdx),%rdx 3820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_dec1_2 3920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,209 4020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 4120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 4220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_decrypt, .-aesni_decrypt 4320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_encrypt3,@function 4420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 4520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt3: 4620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 4720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 4820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 4920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 5020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 5120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 5220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm4 5320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 5420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 5520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop3: 5620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 5720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 5820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 5920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 6020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 6120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 6220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 6320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 6420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 6520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 6620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lenc_loop3 6720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 6820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 6920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 7020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 7120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 7220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 7320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,224 7420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 7520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_encrypt3,.-_aesni_encrypt3 7620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_decrypt3,@function 7720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 7820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt3: 7920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 8020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 8120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 8220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 8320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 8420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 8520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm4 8620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 8720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 8820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop3: 8920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 9020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 9120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 9220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 9320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 9420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,208 9520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,216 9620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 9720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,224 9820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 9920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Ldec_loop3 10020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 10120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 10220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 10320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 10420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,208 10520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,216 10620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,224 10720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 10820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_decrypt3,.-_aesni_decrypt3 10920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_encrypt4,@function 11020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 11120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt4: 11220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 11320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 11420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 11520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 11620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 11720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 11820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm4 11920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm5 12020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 12120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 12220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop4: 12320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 12420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 12520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 12620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 12720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 12820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 12920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 13020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 13120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 13220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 13320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,232 13420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 13520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lenc_loop4 13620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 13720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 13820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 13920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 14020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 14120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 14220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 14320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,224 14420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,232 14520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 14620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_encrypt4,.-_aesni_encrypt4 14720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_decrypt4,@function 14820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 14920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt4: 15020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 15120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 15220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 15320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 15420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 15520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 15620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm4 15720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm5 15820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 15920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 16020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop4: 16120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 16220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 16320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 16420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 16520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 16620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 16720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,208 16820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,216 16920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 17020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,224 17120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,232 17220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 17320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Ldec_loop4 17420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 17520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 17620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 17720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 17820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 17920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,208 18020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,216 18120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,224 18220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,232 18320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 18420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_decrypt4,.-_aesni_decrypt4 18520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_encrypt6,@function 18620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 18720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt6: 18820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 18920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 19020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 19120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 19220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 19320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm3 19420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 19520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 19620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 19720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 19820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 19920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 20020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 20120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 20220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 20320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 20420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 20520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 20620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lenc_loop6_enter 20720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 20820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop6: 20920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 21020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 21120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 21220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 21320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 21420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 21520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 21620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop6_enter: 21720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 21820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 21920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 22020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 22120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 22220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,232 22320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,240 22420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,248 22520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 22620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lenc_loop6 22720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 22820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 22920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 23020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 23120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 23220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 23320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 23420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 23520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 23620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,224 23720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,232 23820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,240 23920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,248 24020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 24120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_encrypt6,.-_aesni_encrypt6 24220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_decrypt6,@function 24320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 24420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt6: 24520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 24620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 24720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 24820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 24920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 25020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm3 25120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 25220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 25320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 25420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 25520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 25620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 25720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 25820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 25920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 26020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 26120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 26220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 26320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Ldec_loop6_enter 26420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 26520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop6: 26620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 26720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 26820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 26920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 27020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 27120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 27220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 27320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop6_enter: 27420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 27520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,208 27620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,216 27720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 27820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,224 27920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,232 28020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,240 28120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,248 28220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 28320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Ldec_loop6 28420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 28520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 28620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 28720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 28820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 28920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 29020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 29120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,208 29220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,216 29320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,224 29420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,232 29520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,240 29620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,248 29720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 29820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_decrypt6,.-_aesni_decrypt6 29920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_encrypt8,@function 30020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 30120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_encrypt8: 30220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 30320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 30420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 30520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 30620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 30720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 30820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 30920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 31020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 31120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 31220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 31320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 31420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 31520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 31620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 31720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 31820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm8 31920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 32020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm9 32120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 32220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,193 32320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,201 32420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 32520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lenc_loop8_enter 32620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 32720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop8: 32820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 32920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 33020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 33120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 33220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 33320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 33420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 33520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,193 33620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,201 33720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 33820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_loop8_enter: 33920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 34020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 34120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 34220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 34320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,232 34420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,240 34520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,248 34620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,192 34720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,200 34820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 34920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lenc_loop8 35020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 35120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 35220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 35320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 35420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 35520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 35620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 35720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,193 35820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,201 35920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 36020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 36120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,224 36220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,232 36320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,240 36420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,248 36520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,221,192 36620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,221,200 36720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 36820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_encrypt8,.-_aesni_encrypt8 36920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type _aesni_decrypt8,@function 37020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 37120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner_aesni_decrypt8: 37220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 37320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 37420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 37520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 37620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 37720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 37820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 37920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 38020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 38120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 38220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 38320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 38420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 38520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 38620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 38720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 38820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm8 38920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 39020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm9 39120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 39220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,193 39320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,201 39420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 39520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Ldec_loop8_enter 39620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 39720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop8: 39820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 39920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 40020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 40120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 40220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 40320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 40420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 40520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,193 40620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,201 40720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 40820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_loop8_enter: 40920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,208 41020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,216 41120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 41220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,224 41320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,232 41420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,240 41520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,248 41620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,192 41720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,200 41820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 41920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Ldec_loop8 42020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 42120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 42220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 42320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 42420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 42520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 42620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 42720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,193 42820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,201 42920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,208 43020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,216 43120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,224 43220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,232 43320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,240 43420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,248 43520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,223,192 43620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,223,200 43720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 43820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size _aesni_decrypt8,.-_aesni_decrypt8 43920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_ecb_encrypt 44020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_ecb_encrypt,@function 44120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 44220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ecb_encrypt: 44320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $-16,%rdx 44420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lecb_ret 44520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 44620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%eax 44720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 44820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r11 44920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 45020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testl %r8d,%r8d 45120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lecb_decrypt 45220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 45320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $128,%rdx 45420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_enc_tail 45520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 45620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%rdi),%xmm2 45720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 45820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 45920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 46020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 46120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 46220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 96(%rdi),%xmm8 46320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 112(%rdi),%xmm9 46420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rdi),%rdi 46520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $128,%rdx 46620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_enc_loop8_enter 46720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 46820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_loop8: 46920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 47020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 47120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%rdi),%xmm2 47220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 47320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 47420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 47520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 47620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 47720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 47820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 47920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 48020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 48120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 48220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 48320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 48420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 96(%rdi),%xmm8 48520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,112(%rsi) 48620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rsi),%rsi 48720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 112(%rdi),%xmm9 48820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rdi),%rdi 48920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_loop8_enter: 49020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 49120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt8 49220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 49320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $128,%rdx 49420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lecb_enc_loop8 49520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 49620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 49720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 49820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 49920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 50020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 50120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 50220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 50320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 50420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 50520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,112(%rsi) 50620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rsi),%rsi 50720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $128,%rdx 50820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lecb_ret 50920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 51020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_tail: 51120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 51220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $32,%rdx 51320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_enc_one 51420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 51520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lecb_enc_two 51620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 51720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $64,%rdx 51820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_enc_three 51920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm5 52020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lecb_enc_four 52120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm6 52220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $96,%rdx 52320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_enc_five 52420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm7 52520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lecb_enc_six 52620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 96(%rdi),%xmm8 52720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt8 52820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 52920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 53020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 53120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 53220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 53320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 53420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 53520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 53620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 53720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_one: 53820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 53920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 54020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 54120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 54220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_3: 54320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 54420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 54520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 54620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 54720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_3 54820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 54920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 55020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 55120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 55220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_two: 55320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm4 55420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt3 55520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 55620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 55720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 55820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 55920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_three: 56020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt3 56120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 56220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 56320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 56420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 56520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 56620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_four: 56720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt4 56820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 56920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 57020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 57120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 57220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 57320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 57420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_five: 57520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm7 57620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt6 57720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 57820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 57920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 58020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 58120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 58220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 58320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 58420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_enc_six: 58520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt6 58620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 58720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 58820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 58920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 59020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 59120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 59220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 59320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 59420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 59520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_decrypt: 59620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $128,%rdx 59720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_dec_tail 59820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 59920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%rdi),%xmm2 60020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 60120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 60220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 60320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 60420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 60520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 96(%rdi),%xmm8 60620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 112(%rdi),%xmm9 60720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rdi),%rdi 60820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $128,%rdx 60920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_dec_loop8_enter 61020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 61120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_loop8: 61220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 61320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 61420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%rdi),%xmm2 61520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 61620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 61720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 61820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 61920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 62020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 62120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 62220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 62320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 62420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 62520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 62620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 62720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 96(%rdi),%xmm8 62820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,112(%rsi) 62920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rsi),%rsi 63020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 112(%rdi),%xmm9 63120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rdi),%rdi 63220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_loop8_enter: 63320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 63420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt8 63520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 63620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 63720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $128,%rdx 63820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lecb_dec_loop8 63920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 64020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 64120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 64220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 64320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 64420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 64520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 64620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 64720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 64820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 64920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,112(%rsi) 65020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rsi),%rsi 65120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $128,%rdx 65220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lecb_ret 65320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 65420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_tail: 65520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 65620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $32,%rdx 65720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_dec_one 65820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 65920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lecb_dec_two 66020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 66120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $64,%rdx 66220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_dec_three 66320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm5 66420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lecb_dec_four 66520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm6 66620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $96,%rdx 66720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lecb_dec_five 66820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm7 66920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lecb_dec_six 67020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 96(%rdi),%xmm8 67120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 67220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt8 67320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 67420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 67520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 67620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 67720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 67820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 67920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 68020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 68120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 68220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_one: 68320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 68420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 68520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 68620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 68720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_4: 68820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 68920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 69020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 69120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 69220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_dec1_4 69320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,209 69420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 69520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 69620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 69720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_two: 69820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm4 69920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt3 70020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 70120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 70220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 70320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 70420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_three: 70520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt3 70620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 70720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 70820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 70920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 71020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 71120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_four: 71220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt4 71320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 71420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 71520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 71620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 71720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 71820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 71920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_five: 72020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm7 72120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt6 72220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 72320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 72420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 72520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 72620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 72720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lecb_ret 72820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 72920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_dec_six: 73020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt6 73120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 73220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 73320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 73420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 73520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 73620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 73720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 73820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lecb_ret: 73920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 74020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_ecb_encrypt,.-aesni_ecb_encrypt 74120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_ccm64_encrypt_blocks 74220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_ccm64_encrypt_blocks,@function 74320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 74420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ccm64_encrypt_blocks: 74520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%eax 74620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%r8),%xmm9 74720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lincrement64(%rip),%xmm6 74820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lbswap_mask(%rip),%xmm7 74920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 75020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 75120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 0(%rcx),%r11 75220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%r9),%xmm3 75320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm9,%xmm2 75420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 75520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,0,207 75620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lccm64_enc_outer 75720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 75820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_enc_outer: 75920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 76020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 76120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm8 76220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 76320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 76420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r11),%xmm1 76520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm0 76620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r11),%rcx 76720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 76820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 76920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 77020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_enc2_loop: 77120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 77220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 77320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 77420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 77520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 77620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 77720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 77820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 0(%rcx),%xmm0 77920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lccm64_enc2_loop 78020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 78120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 78220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm6,%xmm9 78320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 78420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 78520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 78620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decq %rdx 78720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdi),%rdi 78820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 78920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm9,%xmm2 79020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 79120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 79220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,0,215 79320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lccm64_enc_outer 79420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 79520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,(%r9) 79620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 79720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks 79820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_ccm64_decrypt_blocks 79920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_ccm64_decrypt_blocks,@function 80020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 80120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ccm64_decrypt_blocks: 80220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%eax 80320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm9 80420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%r9),%xmm3 80520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lincrement64(%rip),%xmm6 80620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lbswap_mask(%rip),%xmm7 80720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 80820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm9,%xmm2 80920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 81020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r11 81120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,0,207 81220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 81320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 81420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 81520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 81620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_5: 81720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 81820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 81920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 82020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 82120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_5 82220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 82320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm8 82420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm6,%xmm9 82520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdi),%rdi 82620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lccm64_dec_outer 82720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 82820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_dec_outer: 82920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 83020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm9,%xmm2 83120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 83220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 83320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 83420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,0,215 83520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 83620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $1,%rdx 83720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lccm64_dec_break 83820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 83920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 84020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 84120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r11),%xmm1 84220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm8 84320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r11),%rcx 84420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 84520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 84620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 84720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 84820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_dec2_loop: 84920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 85020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 85120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 85220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 85320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 85420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 85520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 85620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 0(%rcx),%xmm0 85720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lccm64_dec2_loop 85820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm8 85920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm6,%xmm9 86020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 86120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 86220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdi),%rdi 86320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 86420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 86520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lccm64_dec_outer 86620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 86720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 86820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lccm64_dec_break: 86920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 87020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 87120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r11),%xmm1 87220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm8 87320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r11),%r11 87420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 87520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_6: 87620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 87720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 87820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm1 87920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%r11),%r11 88020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_6 88120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,217 88220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,(%r9) 88320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 88420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks 88520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_ctr32_encrypt_blocks 88620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_ctr32_encrypt_blocks,@function 88720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 88820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_ctr32_encrypt_blocks: 88920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $1,%rdx 89020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lctr32_one_shortcut 89120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 89220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%r8),%xmm14 89320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lbswap_mask(%rip),%xmm15 89420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 89520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,22,242,3 89620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,58,34,240,3 89720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 89820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%eax 89920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner bswapl %r10d 90020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm12,%xmm12 90120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm13,%xmm13 90220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,34,226,0 90320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 3(%r10),%r11 90420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,34,235,0 90520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incl %r10d 90620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,34,226,1 90720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incq %r11 90820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,34,235,1 90920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incl %r10d 91020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,34,226,2 91120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner incq %r11 91220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,58,34,235,2 91320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,-40(%rsp) 91420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,56,0,231 91520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,-24(%rsp) 91620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,56,0,239 91720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 91820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $192,%xmm12,%xmm2 91920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $128,%xmm12,%xmm3 92020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $64,%xmm12,%xmm4 92120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $6,%rdx 92220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lctr32_tail 92320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 92420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r11 92520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 92620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $6,%rdx 92720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lctr32_loop6 92820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 92920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 93020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_loop6: 93120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $192,%xmm13,%xmm5 93220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm2 93320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 93420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $128,%xmm13,%xmm6 93520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm3 93620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r11),%xmm1 93720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $64,%xmm13,%xmm7 93820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm4 93920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm5 94020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 94120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm6 94220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm7 94320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 94420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 94520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 94620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 94720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm3 94820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 94920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r11),%rcx 95020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 95120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 95220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lincrement32(%rip),%xmm13 95320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 95420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 95520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa -40(%rsp),%xmm12 95620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 95720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 95820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 95920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 96020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 96120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 96220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 96320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lctr32_enc_loop6_enter 96420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 96520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_enc_loop6: 96620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 96720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 96820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 96920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 97020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 97120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 97220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 97320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_enc_loop6_enter: 97420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 97520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 97620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 97720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 97820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 97920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,232 98020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,240 98120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,248 98220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 98320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lctr32_enc_loop6 98420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 98520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 98620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddd %xmm13,%xmm12 98720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 98820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddd -24(%rsp),%xmm13 98920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 99020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,-40(%rsp) 99120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 99220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,-24(%rsp) 99320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 99420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,56,0,231 99520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 99620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,69,15,56,0,239 99720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 99820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 99920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm8 100020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 100120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm9 100220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,224 100320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm10 100420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,232 100520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm11 100620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,240 100720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm1 100820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,248 100920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm0 101020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rdi),%rdi 101120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 101220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 101320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $192,%xmm12,%xmm2 101420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm3,%xmm9 101520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $128,%xmm12,%xmm3 101620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 101720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm10 101820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $64,%xmm12,%xmm4 101920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,16(%rsi) 102020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm5,%xmm11 102120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm10,32(%rsi) 102220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm6,%xmm1 102320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm11,48(%rsi) 102420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm0 102520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm1,64(%rsi) 102620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,80(%rsi) 102720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rsi),%rsi 102820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 102920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $6,%rdx 103020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lctr32_loop6 103120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 103220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $6,%rdx 103320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lctr32_done 103420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 103520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leal 1(%rax,%rax,1),%eax 103620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 103720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_tail: 103820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm2 103920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm8 104020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $2,%rdx 104120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lctr32_one 104220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 104320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm3 104420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm9 104520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lctr32_two 104620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 104720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $192,%xmm13,%xmm5 104820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm4 104920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm10 105020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $4,%rdx 105120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lctr32_three 105220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 105320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $128,%xmm13,%xmm6 105420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm5 105520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm11 105620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lctr32_four 105720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 105820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner por %xmm14,%xmm6 105920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm7 106020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 106120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt6 106220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 106320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm1 106420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 106520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm3,%xmm9 106620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 106720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm10 106820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,16(%rsi) 106920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm5,%xmm11 107020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm10,32(%rsi) 107120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm6,%xmm1 107220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm11,48(%rsi) 107320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm1,64(%rsi) 107420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lctr32_done 107520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 107620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 107720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_one_shortcut: 107820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm2 107920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm8 108020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%eax 108120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_one: 108220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 108320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 108420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 108520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 108620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_7: 108720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 108820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 108920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 109020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 109120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_7 109220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 109320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 109420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 109520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lctr32_done 109620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 109720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 109820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_two: 109920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm4 110020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt3 110120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 110220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm3,%xmm9 110320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 110420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,16(%rsi) 110520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lctr32_done 110620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 110720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 110820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_three: 110920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt3 111020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 111120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm3,%xmm9 111220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 111320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm10 111420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,16(%rsi) 111520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm10,32(%rsi) 111620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lctr32_done 111720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 111820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 111920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_four: 112020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt4 112120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm2,%xmm8 112220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm3,%xmm9 112320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,(%rsi) 112420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm10 112520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,16(%rsi) 112620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm5,%xmm11 112720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm10,32(%rsi) 112820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm11,48(%rsi) 112920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 113020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lctr32_done: 113120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 113220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks 113320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_xts_encrypt 113420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_xts_encrypt,@function 113520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 113620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_xts_encrypt: 113720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -104(%rsp),%rsp 113820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r9),%xmm15 113920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%r8),%eax 114020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%r10d 114120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm0 114220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r8),%xmm1 114320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r8),%r8 114420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm15 114520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_8: 114620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,249 114720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 114820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm1 114920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%r8),%r8 115020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_8 115120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,221,249 115220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r11 115320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 115420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rdx,%r9 115520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $-16,%rdx 115620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 115720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lxts_magic(%rip),%xmm8 115820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 115920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 116020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 116120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 116220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 116320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 116420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 116520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 116620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 116720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 116820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 116920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm11 117020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 117120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 117220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 117320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 117420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 117520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 117620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm12 117720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 117820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 117920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 118020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 118120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 118220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 118320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm13 118420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 118520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 118620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 118720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 118820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $96,%rdx 118920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jc .Lxts_enc_short 119020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 119120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 119220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subl $1,%eax 119320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 119420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_grandloop 119520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 119620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 119720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_grandloop: 119820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 119920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm14 120020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 120120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 0(%rdi),%xmm2 120220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 120320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 120420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 120520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 120620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 120720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm10,%xmm2 120820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 120920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm11,%xmm3 121020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 121120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm12,%xmm4 121220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 121320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rdi),%rdi 121420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm13,%xmm5 121520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 121620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm6 121720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm15,%xmm7 121820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 121920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 122020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 122120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r11),%xmm1 122220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm2 122320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm3 122420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm10,0(%rsp) 122520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 122620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r11),%rcx 122720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 122820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm11,16(%rsp) 122920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 123020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 123120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,32(%rsp) 123220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 123320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 123420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,48(%rsp) 123520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 123620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 123720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 123820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 123920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm14,64(%rsp) 124020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 124120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,80(%rsp) 124220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 124320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 124420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 124520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_loop6_enter 124620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 124720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 124820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_loop6: 124920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 125020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 125120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 125220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 125320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 125420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 125520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 125620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_loop6_enter: 125720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 125820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 125920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 126020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 126120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 126220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,232 126320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,240 126420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,248 126520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 126620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lxts_enc_loop6 126720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 126820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 126920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 127020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 127120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 127220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 127320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 127420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 127520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 127620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 127720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 127820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 127920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 128020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 128120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 128220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 128320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 128420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 128520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 128620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,208 128720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 128820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,216 128920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 129020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,224 129120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 129220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,232 129320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,240 129420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,248 129520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rcx),%xmm0 129620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 129720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 129820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 129920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm11 130020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 130120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 130220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 130320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,217 130420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 130520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,225 130620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 130720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,233 130820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,241 130920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,249 131020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 131120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 131220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 131320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm12 131420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 131520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,208 131620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 131720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,216 131820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 131920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,224 132020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 132120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,232 132220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,240 132320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,248 132420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 132520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 132620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 132720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm13 132820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 132920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 0(%rsp),%xmm2 133020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 133120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 16(%rsp),%xmm3 133220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 133320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 133420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 133520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 32(%rsp),%xmm4 133620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,0(%rsi) 133720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 48(%rsp),%xmm5 133820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 133920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 64(%rsp),%xmm6 134020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 134120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 80(%rsp),%xmm7 134220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 134320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 134420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 134520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 134620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rsi),%rsi 134720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $96,%rdx 134820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lxts_enc_grandloop 134920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 135020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leal 3(%rax,%rax,1),%eax 135120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 135220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 135320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 135420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_short: 135520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $96,%rdx 135620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lxts_enc_done 135720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 135820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $32,%rdx 135920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lxts_enc_one 136020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lxts_enc_two 136120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 136220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $64,%rdx 136320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lxts_enc_three 136420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lxts_enc_four 136520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 136620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 136720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm14 136820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 136920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%rdi),%xmm2 137020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 137120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 137220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 137320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 137420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 137520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm10,%xmm2 137620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 137720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm11,%xmm3 137820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 137920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 80(%rdi),%rdi 138020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm12,%xmm4 138120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm13,%xmm5 138220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm6 138320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 138420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt6 138520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 138620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 138720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 138820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 138920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 139020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm2,(%rsi) 139120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm13,%xmm5 139220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm3,16(%rsi) 139320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm14,%xmm6 139420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm4,32(%rsi) 139520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm5,48(%rsi) 139620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm6,64(%rsi) 139720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 80(%rsi),%rsi 139820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_done 139920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 140020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 140120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_one: 140220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 140320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdi),%rdi 140420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 140520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 140620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 140720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 140820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 140920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_9: 141020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 141120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 141220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 141320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 141420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_9 141520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 141620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 141720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm11,%xmm10 141820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 141920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 142020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_done 142120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 142220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 142320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_two: 142420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 142520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 142620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rdi),%rdi 142720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 142820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 142920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 143020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt3 143120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 143220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 143320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,%xmm10 143420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 143520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 143620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 143720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rsi),%rsi 143820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_done 143920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 144020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 144120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_three: 144220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 144320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 144420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 144520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 48(%rdi),%rdi 144620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 144720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 144820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 144920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 145020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt3 145120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 145220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 145320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,%xmm10 145420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 145520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 145620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 145720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 145820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 145920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 48(%rsi),%rsi 146020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_done 146120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 146220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 146320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_four: 146420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 146520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 146620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 146720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 146820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm5 146920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 64(%rdi),%rdi 147020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 147120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 147220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm13,%xmm5 147320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 147420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_encrypt4 147520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 147620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 147720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 147820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 147920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 148020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 148120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm13,%xmm5 148220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 148320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 148420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 148520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 64(%rsi),%rsi 148620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_enc_done 148720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 148820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 148920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_done: 149020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $15,%r9 149120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lxts_enc_ret 149220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r9,%rdx 149320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 149420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_steal: 149520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rdi),%eax 149620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl -16(%rsi),%ecx 149720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rdi),%rdi 149820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,-16(%rsi) 149920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %cl,0(%rsi) 150020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rsi),%rsi 150120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $1,%rdx 150220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lxts_enc_steal 150320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 150420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %r9,%rsi 150520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 150620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 150720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 150820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups -16(%rsi),%xmm2 150920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 151020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 151120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 151220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 151320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 151420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_10: 151520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 151620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 151720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 151820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 151920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_10 152020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 152120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 152220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,-16(%rsi) 152320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 152420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_ret: 152520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 104(%rsp),%rsp 152620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_enc_epilogue: 152720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 152820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_xts_encrypt,.-aesni_xts_encrypt 152920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_xts_decrypt 153020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_xts_decrypt,@function 153120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 153220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_xts_decrypt: 153320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -104(%rsp),%rsp 153420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r9),%xmm15 153520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%r8),%eax 153620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%r10d 153720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm0 153820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r8),%xmm1 153920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r8),%r8 154020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm15 154120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_11: 154220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,220,249 154320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 154420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm1 154520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%r8),%r8 154620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_11 154720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,221,249 154820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 154920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq $15,%rdx 155020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner setnz %al 155120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shlq $4,%rax 155220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %rax,%rdx 155320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 155420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r11 155520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 155620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rdx,%r9 155720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $-16,%rdx 155820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 155920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa .Lxts_magic(%rip),%xmm8 156020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 156120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 156220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 156320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 156420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 156520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 156620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 156720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 156820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 156920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 157020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 157120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm11 157220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 157320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 157420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 157520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 157620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 157720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 157820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm12 157920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 158020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 158120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 158220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 158320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 158420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 158520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm13 158620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 158720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 158820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 158920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 159020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $96,%rdx 159120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jc .Lxts_dec_short 159220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 159320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%eax 159420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subl $1,%eax 159520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 159620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_grandloop 159720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 159820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 159920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_grandloop: 160020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 160120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm14 160220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 160320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 0(%rdi),%xmm2 160420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 160520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 160620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 160720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 160820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 160920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm10,%xmm2 161020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 161120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm11,%xmm3 161220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 161320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm12,%xmm4 161420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 161520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rdi),%rdi 161620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm13,%xmm5 161720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r11),%xmm0 161820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm6 161920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm15,%xmm7 162020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 162120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 162220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 162320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%r11),%xmm1 162420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm2 162520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm3 162620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm10,0(%rsp) 162720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 162820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%r11),%rcx 162920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 163020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm11,16(%rsp) 163120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 163220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 163320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,32(%rsp) 163420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 163520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 163620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,48(%rsp) 163720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 163820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 163920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 164020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 164120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm14,64(%rsp) 164220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 164320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,80(%rsp) 164420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 164520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 164620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 164720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_loop6_enter 164820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 164920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 165020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_loop6: 165120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 165220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 165320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 165420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 165520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 165620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 165720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 165820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_loop6_enter: 165920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 166020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,208 166120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,216 166220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 166320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,224 166420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,232 166520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,240 166620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,248 166720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 166820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lxts_dec_loop6 166920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 167020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 167120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 167220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 167320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 167420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 167520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 167620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 167720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 167820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 167920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 168020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 168120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 168220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 168320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 168420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 168520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 168620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 168720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 168820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,208 168920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 169020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,216 169120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 169220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,224 169320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 169420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,232 169520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,240 169620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,248 169720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rcx),%xmm0 169820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 169920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 170020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 170120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm11 170220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 170320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 170420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 170520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 170620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 170720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 170820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 170920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 171020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 171120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 171220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 171320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 171420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 171520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm12 171620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 171720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,208 171820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 171920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,216 172020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 172120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,224 172220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 172320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,232 172420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,240 172520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,248 172620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 172720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 172820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 172920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm13 173020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 173120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 0(%rsp),%xmm2 173220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 173320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 16(%rsp),%xmm3 173420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 173520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 173620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 173720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 32(%rsp),%xmm4 173820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,0(%rsi) 173920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 48(%rsp),%xmm5 174020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 174120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 64(%rsp),%xmm6 174220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 174320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps 80(%rsp),%xmm7 174420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 174520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 174620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 174720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 174820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rsi),%rsi 174920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $96,%rdx 175020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lxts_dec_grandloop 175120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 175220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leal 3(%rax,%rax,1),%eax 175320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 175420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %eax,%r10d 175520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 175620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_short: 175720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $96,%rdx 175820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lxts_dec_done 175920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 176020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $32,%rdx 176120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lxts_dec_one 176220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lxts_dec_two 176320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 176420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $64,%rdx 176520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lxts_dec_three 176620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .Lxts_dec_four 176720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 176820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 176920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm14 177020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 177120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu (%rdi),%xmm2 177220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 177320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 16(%rdi),%xmm3 177420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 177520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 177620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 177720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm10,%xmm2 177820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 177920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm11,%xmm3 178020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 178120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 80(%rdi),%rdi 178220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm12,%xmm4 178320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm13,%xmm5 178420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm6 178520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 178620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt6 178720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 178820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 178920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 179020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 179120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm2,(%rsi) 179220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm13,%xmm5 179320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm3,16(%rsi) 179420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm14,%xmm6 179520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm4,32(%rsi) 179620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm14,%xmm14 179720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm5,48(%rsi) 179820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pcmpgtd %xmm15,%xmm14 179920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu %xmm6,64(%rsi) 180020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 80(%rsi),%rsi 180120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm11 180220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $15,%r9 180320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lxts_dec_ret 180420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 180520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm10 180620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 180720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm11 180820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm15,%xmm11 180920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_done2 181020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 181120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 181220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_one: 181320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 181420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdi),%rdi 181520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 181620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 181720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 181820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 181920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 182020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_12: 182120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 182220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 182320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 182420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 182520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_dec1_12 182620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,209 182720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 182820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm11,%xmm10 182920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 183020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,%xmm11 183120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 183220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_done 183320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 183420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 183520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_two: 183620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 183720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 183820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rdi),%rdi 183920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 184020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 184120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 184220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt3 184320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 184420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 184520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm12,%xmm10 184620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 184720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,%xmm11 184820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 184920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 185020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rsi),%rsi 185120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_done 185220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 185320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 185420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_three: 185520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 185620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 185720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 185820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 48(%rdi),%rdi 185920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 186020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 186120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 186220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 186320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt3 186420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 186520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 186620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm13,%xmm10 186720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 186820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm11 186920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 187020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 187120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 187220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 187320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 48(%rsi),%rsi 187420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_done 187520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 187620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 187720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_four: 187820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $19,%xmm14,%xmm9 187920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm14 188020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner paddq %xmm15,%xmm15 188120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 188220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pand %xmm8,%xmm9 188320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 188420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm9,%xmm15 188520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 188620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 188720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 188820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm5 188920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 64(%rdi),%rdi 189020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 189120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 189220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm13,%xmm5 189320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 189420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt4 189520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 189620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 189720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm14,%xmm10 189820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm3 189920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm15,%xmm11 190020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm12,%xmm4 190120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 190220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm13,%xmm5 190320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 190420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 190520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 190620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 64(%rsi),%rsi 190720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lxts_dec_done 190820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 190920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 191020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_done: 191120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $15,%r9 191220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lxts_dec_ret 191320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_done2: 191420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r9,%rdx 191520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 191620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 191720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 191820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 191920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm2 192020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 192120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 192220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 192320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 192420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_13: 192520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 192620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 192720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 192820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 192920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_dec1_13 193020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,209 193120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm11,%xmm2 193220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 193320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 193420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_steal: 193520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl 16(%rdi),%eax 193620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movzbl (%rsi),%ecx 193720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rdi),%rdi 193820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %al,(%rsi) 193920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movb %cl,16(%rsi) 194020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 1(%rsi),%rsi 194120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $1,%rdx 194220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lxts_dec_steal 194320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 194420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %r9,%rsi 194520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 194620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 194720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 194820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rsi),%xmm2 194920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 195020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 195120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 195220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 195320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 195420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_14: 195520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 195620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 195720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 195820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 195920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_dec1_14 196020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,209 196120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm10,%xmm2 196220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 196320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 196420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_ret: 196520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 104(%rsp),%rsp 196620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_dec_epilogue: 196720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 196820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_xts_decrypt,.-aesni_xts_decrypt 196920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_cbc_encrypt 197020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_cbc_encrypt,@function 197120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 197220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_cbc_encrypt: 197320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq %rdx,%rdx 197420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lcbc_ret 197520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 197620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl 240(%rcx),%r10d 197720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rcx,%r11 197820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testl %r9d,%r9d 197920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lcbc_decrypt 198020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 198120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm2 198220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 198320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $16,%rdx 198420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jb .Lcbc_enc_tail 198520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $16,%rdx 198620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_enc_loop 198720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 198820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_enc_loop: 198920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm3 199020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdi),%rdi 199120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 199220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 199320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 199420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 199520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 199620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm3,%xmm2 199720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_enc1_15: 199820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,220,209 199920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 200020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 200120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 200220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_enc1_15 200320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,221,209 200420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 200520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 200620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,0(%rsi) 200720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 200820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $16,%rdx 200920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnc .Lcbc_enc_loop 201020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $16,%rdx 201120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lcbc_enc_tail 201220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%r8) 201320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_ret 201420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 201520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_enc_tail: 201620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rdx,%rcx 201720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xchgq %rdi,%rsi 201820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long 0x9066A4F3 201920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $16,%ecx 202020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %rdx,%rcx 202120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 202220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long 0x9066AAF3 202320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -16(%rdi),%rdi 202420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 202520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rdi,%rsi 202620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 202720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rdx,%rdx 202820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_enc_loop 202920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 203020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 203120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_decrypt: 203220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%r8),%xmm9 203320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 203420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $112,%rdx 203520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_tail 203620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shrl $1,%r10d 203720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $112,%rdx 203820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 203920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm9,-24(%rsp) 204020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_loop8_enter 204120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 204220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_loop8: 204320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm0,-24(%rsp) 204420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,(%rsi) 204520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 204620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_loop8_enter: 204720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 204820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 204920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 205020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 205120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 205220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 205320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 32(%rdi),%xmm4 205420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 205520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 48(%rdi),%xmm5 205620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm3 205720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 64(%rdi),%xmm6 205820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 205920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm4 206020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 80(%rdi),%xmm7 206120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,217 206220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm5 206320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 96(%rdi),%xmm8 206420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,225 206520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm6 206620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqu 112(%rdi),%xmm9 206720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,233 206820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm7 206920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 207020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,241 207120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm8 207220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,249 207320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm0,%xmm9 207420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 207520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,193 207620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,68,15,56,222,201 207720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 207820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 207920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Ldec_loop8_enter 208020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 208120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm1 208220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm0 208320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps -24(%rsp),%xmm2 208420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm3 208520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm1 208620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm4 208720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm0 208820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm5 208920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm1 209020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm6 209120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm0 209220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm7 209320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 96(%rdi),%xmm1 209420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm8 209520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 112(%rdi),%xmm0 209620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm9 209720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 209820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 209920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 210020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 210120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %r10d,%eax 210220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 210320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %r11,%rcx 210420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 210520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 128(%rdi),%rdi 210620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm8,96(%rsi) 210720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 112(%rsi),%rsi 210820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $128,%rdx 210920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner ja .Lcbc_dec_loop8 211020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 211120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm9,%xmm2 211220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm0,%xmm9 211320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $112,%rdx 211420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jle .Lcbc_dec_tail_collected 211520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 211620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leal 1(%r10,%r10,1),%eax 211720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 211820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_tail: 211920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm2 212020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm2,%xmm8 212120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $16,%rdx 212220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_one 212320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 212420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm3 212520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm3,%xmm7 212620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $32,%rdx 212720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_two 212820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 212920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm4 213020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm4,%xmm6 213120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $48,%rdx 213220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_three 213320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 213420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm5 213520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $64,%rdx 213620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_four 213720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 213820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm6 213920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $80,%rdx 214020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_five 214120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 214220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm7 214320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq $96,%rdx 214420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jbe .Lcbc_dec_six 214520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 214620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 96(%rdi),%xmm8 214720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm9,-24(%rsp) 214820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt8 214920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm1 215020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm0 215120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps -24(%rsp),%xmm2 215220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm3 215320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm1 215420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm4 215520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm0 215620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm5 215720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm1 215820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm6 215920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm0 216020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm7 216120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 96(%rdi),%xmm9 216220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm8 216320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 216420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 216520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 216620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 216720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 216820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm7,80(%rsi) 216920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 96(%rsi),%rsi 217020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm8,%xmm2 217120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $112,%rdx 217220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 217320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 217420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_one: 217520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm0 217620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rcx),%xmm1 217720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rcx),%rcx 217820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm2 217920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Loop_dec1_16: 218020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,222,209 218120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner decl %eax 218220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rcx),%xmm1 218320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rcx),%rcx 218420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Loop_dec1_16 218520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,223,209 218620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm9,%xmm2 218720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm8,%xmm9 218820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $16,%rdx 218920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 219020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 219120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_two: 219220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm4 219320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt3 219420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm9,%xmm2 219520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 219620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 219720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm7,%xmm9 219820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm3,%xmm2 219920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rsi),%rsi 220020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $32,%rdx 220120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 220220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 220320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_three: 220420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt3 220520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm9,%xmm2 220620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 220720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 220820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm4 220920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 221020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm6,%xmm9 221120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm4,%xmm2 221220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rsi),%rsi 221320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $48,%rdx 221420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 221520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 221620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_four: 221720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt4 221820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm9,%xmm2 221920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm9 222020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 222120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 222220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm4 222320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 222420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm6,%xmm5 222520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 222620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm5,%xmm2 222720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 48(%rsi),%rsi 222820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $64,%rdx 222920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 223020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 223120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_five: 223220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm7,%xmm7 223320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt6 223420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm1 223520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm0 223620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm9,%xmm2 223720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 223820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm4 223920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm1 224020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm5 224120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm9 224220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm6 224320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 224420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 224520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 224620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 224720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 64(%rsi),%rsi 224820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm6,%xmm2 224920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $80,%rdx 225020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 225120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 225220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_six: 225320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call _aesni_decrypt6 225420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm1 225520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 32(%rdi),%xmm0 225620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm9,%xmm2 225720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm8,%xmm3 225820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm4 225920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 48(%rdi),%xmm1 226020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm5 226120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 64(%rdi),%xmm0 226220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm6 226320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 80(%rdi),%xmm9 226420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm0,%xmm7 226520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 226620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rsi) 226720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm4,32(%rsi) 226820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,48(%rsi) 226920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm6,64(%rsi) 227020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 80(%rsi),%rsi 227120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm7,%xmm2 227220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq $96,%rdx 227320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_tail_collected 227420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 227520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_tail_collected: 227620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner andq $15,%rdx 227720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm9,(%r8) 227820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Lcbc_dec_tail_partial 227920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rsi) 228020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lcbc_dec_ret 228120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 228220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_tail_partial: 228320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm2,-24(%rsp) 228420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq $16,%rcx 228520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq %rsi,%rdi 228620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner subq %rdx,%rcx 228720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -24(%rsp),%rsi 228820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long 0x9066A4F3 228920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 229020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_dec_ret: 229120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lcbc_ret: 229220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 229320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_cbc_encrypt,.-aesni_cbc_encrypt 229420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_set_decrypt_key 229520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_set_decrypt_key,@function 229620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 229720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_set_decrypt_key: 229820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 0x48,0x83,0xEC,0x08 229920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call __aesni_set_encrypt_key 230020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shll $4,%esi 230120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testl %eax,%eax 230220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jnz .Ldec_key_ret 230320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdx,%rsi,1),%rdi 230420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 230520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm0 230620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm1 230720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rdi) 230820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm1,(%rdx) 230920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdx),%rdx 231020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -16(%rdi),%rdi 231120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 231220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_key_inverse: 231320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm0 231420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm1 231520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,219,192 231620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,219,201 231720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdx),%rdx 231820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq -16(%rdi),%rdi 231920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,16(%rdi) 232020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm1,-16(%rdx) 232120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpq %rdx,%rdi 232220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner ja .Ldec_key_inverse 232320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 232420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdx),%xmm0 232520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,56,219,192 232620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rdi) 232720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Ldec_key_ret: 232820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $8,%rsp 232920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 233020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.LSEH_end_set_decrypt_key: 233120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_set_decrypt_key,.-aesni_set_decrypt_key 233220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.globl aesni_set_encrypt_key 233320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.type aesni_set_encrypt_key,@function 233420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 233520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turneraesni_set_encrypt_key: 233620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner__aesni_set_encrypt_key: 233720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 0x48,0x83,0xEC,0x08 233820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq $-1,%rax 233920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq %rdi,%rdi 234020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lenc_key_ret 234120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner testq %rdx,%rdx 234220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jz .Lenc_key_ret 234320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 234420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups (%rdi),%xmm0 234520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm4 234620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rdx),%rax 234720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $256,%esi 234820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .L14rounds 234920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $192,%esi 235020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner je .L12rounds 235120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner cmpl $128,%esi 235220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jne .Lbad_keybits 235320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 235420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L10rounds: 235520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $9,%esi 235620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rdx) 235720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,1 235820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128_cold 235920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,2 236020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 236120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,4 236220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 236320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,8 236420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 236520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,16 236620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 236720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,32 236820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 236920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,64 237020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 237120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,128 237220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 237320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,27 237420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 237520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,54 237620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_128 237720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rax) 237820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %esi,80(%rax) 237920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorl %eax,%eax 238020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lenc_key_ret 238120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 238220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 238320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L12rounds: 238420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq 16(%rdi),%xmm2 238520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $11,%esi 238620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rdx) 238720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,1 238820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192a_cold 238920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,2 239020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192b 239120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,4 239220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192a 239320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,8 239420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192b 239520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,16 239620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192a 239720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,32 239820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192b 239920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,64 240020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192a 240120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,128 240220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_192b 240320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rax) 240420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %esi,48(%rax) 240520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rax,%rax 240620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lenc_key_ret 240720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 240820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 240920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.L14rounds: 241020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups 16(%rdi),%xmm2 241120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl $13,%esi 241220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rax),%rax 241320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rdx) 241420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,16(%rdx) 241520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,1 241620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a_cold 241720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,1 241820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256b 241920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,2 242020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a 242120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,2 242220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256b 242320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,4 242420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a 242520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,4 242620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256b 242720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,8 242820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a 242920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,8 243020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256b 243120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,16 243220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a 243320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,16 243420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256b 243520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,32 243620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a 243720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,200,32 243820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256b 243920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 102,15,58,223,202,64 244020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner call .Lkey_expansion_256a 244120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rax) 244220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movl %esi,16(%rax) 244320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorq %rax,%rax 244420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lenc_key_ret 244520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 244620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 244720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lbad_keybits: 244820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movq $-2,%rax 244920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lenc_key_ret: 245020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner addq $8,%rsp 245120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 245220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.LSEH_end_set_encrypt_key: 245320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 245420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 245520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_128: 245620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rax) 245720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rax),%rax 245820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_128_cold: 245920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $16,%xmm0,%xmm4 246020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm0 246120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $140,%xmm0,%xmm4 246220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm0 246320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $255,%xmm1,%xmm1 246420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm0 246520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 246620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 246720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 246820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192a: 246920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rax) 247020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rax),%rax 247120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192a_cold: 247220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm2,%xmm5 247320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192b_warm: 247420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $16,%xmm0,%xmm4 247520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movdqa %xmm2,%xmm3 247620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm0 247720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $140,%xmm0,%xmm4 247820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pslldq $4,%xmm3 247920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm0 248020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $85,%xmm1,%xmm1 248120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm3,%xmm2 248220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm1,%xmm0 248320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pshufd $255,%xmm0,%xmm3 248420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner pxor %xmm3,%xmm2 248520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 248620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 248720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 248820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_192b: 248920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movaps %xmm0,%xmm3 249020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $68,%xmm0,%xmm5 249120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm5,(%rax) 249220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $78,%xmm2,%xmm3 249320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm3,16(%rax) 249420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 32(%rax),%rax 249520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner jmp .Lkey_expansion_192b_warm 249620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 249720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 249820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_256a: 249920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm2,(%rax) 250020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rax),%rax 250120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_256a_cold: 250220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $16,%xmm0,%xmm4 250320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm0 250420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $140,%xmm0,%xmm4 250520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm0 250620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $255,%xmm1,%xmm1 250720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm0 250820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 250920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 251020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 16 251120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lkey_expansion_256b: 251220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner movups %xmm0,(%rax) 251320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner leaq 16(%rax),%rax 251420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 251520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $16,%xmm2,%xmm4 251620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm2 251720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $140,%xmm2,%xmm4 251820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm4,%xmm2 251920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner shufps $170,%xmm1,%xmm1 252020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner xorps %xmm1,%xmm2 252120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner .byte 0xf3,0xc3 252220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size aesni_set_encrypt_key,.-aesni_set_encrypt_key 252320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key 252420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 64 252520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lbswap_mask: 252620777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 252720777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lincrement32: 252820777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long 6,6,6,0 252920777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lincrement64: 253020777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long 1,0,0,0 253120777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.Lxts_magic: 253220777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.long 0x87,0,1,0 253320777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner 253420777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 253520777798f5184ef65e59bb5eb91ac9e839d7afebDavid 'Digit' Turner.align 64 2536