--- /dev/null
+# WARNING: do not edit!\r
+# Generated from openssl/crypto/aes/asm/vpaes-x86.pl\r
+#\r
+# Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.\r
+#\r
+# Licensed under the OpenSSL license (the "License"). You may not use\r
+# this file except in compliance with the License. You can obtain a copy\r
+# in the file LICENSE in the source distribution or at\r
+# https://www.openssl.org/source/license.html\r
+\r
+.text\r
+.align 64\r
+.L_vpaes_consts:\r
+.long 218628480,235210255,168496130,67568393\r
+.long 252381056,17041926,33884169,51187212\r
+.long 252645135,252645135,252645135,252645135\r
+.long 1512730624,3266504856,1377990664,3401244816\r
+.long 830229760,1275146365,2969422977,3447763452\r
+.long 3411033600,2979783055,338359620,2782886510\r
+.long 4209124096,907596821,221174255,1006095553\r
+.long 191964160,3799684038,3164090317,1589111125\r
+.long 182528256,1777043520,2877432650,3265356744\r
+.long 1874708224,3503451415,3305285752,363511674\r
+.long 1606117888,3487855781,1093350906,2384367825\r
+.long 197121,67569157,134941193,202313229\r
+.long 67569157,134941193,202313229,197121\r
+.long 134941193,202313229,197121,67569157\r
+.long 202313229,197121,67569157,134941193\r
+.long 33619971,100992007,168364043,235736079\r
+.long 235736079,33619971,100992007,168364043\r
+.long 168364043,235736079,33619971,100992007\r
+.long 100992007,168364043,235736079,33619971\r
+.long 50462976,117835012,185207048,252579084\r
+.long 252314880,51251460,117574920,184942860\r
+.long 184682752,252054788,50987272,118359308\r
+.long 118099200,185467140,251790600,50727180\r
+.long 2946363062,528716217,1300004225,1881839624\r
+.long 1532713819,1532713819,1532713819,1532713819\r
+.long 3602276352,4288629033,3737020424,4153884961\r
+.long 1354558464,32357713,2958822624,3775749553\r
+.long 1201988352,132424512,1572796698,503232858\r
+.long 2213177600,1597421020,4103937655,675398315\r
+.long 2749646592,4273543773,1511898873,121693092\r
+.long 3040248576,1103263732,2871565598,1608280554\r
+.long 2236667136,2588920351,482954393,64377734\r
+.long 3069987328,291237287,2117370568,3650299247\r
+.long 533321216,3573750986,2572112006,1401264716\r
+.long 1339849704,2721158661,548607111,3445553514\r
+.long 2128193280,3054596040,2183486460,1257083700\r
+.long 655635200,1165381986,3923443150,2344132524\r
+.long 190078720,256924420,290342170,357187870\r
+.long 1610966272,2263057382,4103205268,309794674\r
+.long 2592527872,2233205587,1335446729,3402964816\r
+.long 3973531904,3225098121,3002836325,1918774430\r
+.long 3870401024,2102906079,2284471353,4117666579\r
+.long 617007872,1021508343,366931923,691083277\r
+.long 2528395776,3491914898,2968704004,1613121270\r
+.long 3445188352,3247741094,844474987,4093578302\r
+.long 651481088,1190302358,1689581232,574775300\r
+.long 4289380608,206939853,2555985458,2489840491\r
+.long 2130264064,327674451,3566485037,3349835193\r
+.long 2470714624,316102159,3636825756,3393945945\r
+.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105\r
+.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83\r
+.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117\r
+.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105\r
+.byte 118,101,114,115,105,116,121,41,0\r
+.align 64\r
+.type _vpaes_preheat,@function\r
+.align 16\r
+_vpaes_preheat:\r
+ addl (%esp),%ebp\r
+ movdqa -48(%ebp),%xmm7\r
+ movdqa -16(%ebp),%xmm6\r
+ ret\r
+.size _vpaes_preheat,.-_vpaes_preheat\r
+.type _vpaes_encrypt_core,@function\r
+.align 16\r
+_vpaes_encrypt_core:\r
+ movl $16,%ecx\r
+ movl 240(%edx),%eax\r
+ movdqa %xmm6,%xmm1\r
+ movdqa (%ebp),%xmm2\r
+ pandn %xmm0,%xmm1\r
+ pand %xmm6,%xmm0\r
+ movdqu (%edx),%xmm5\r
+.byte 102,15,56,0,208\r
+ movdqa 16(%ebp),%xmm0\r
+ pxor %xmm5,%xmm2\r
+ psrld $4,%xmm1\r
+ addl $16,%edx\r
+.byte 102,15,56,0,193\r
+ leal 192(%ebp),%ebx\r
+ pxor %xmm2,%xmm0\r
+ jmp .L000enc_entry\r
+.align 16\r
+.L001enc_loop:\r
+ movdqa 32(%ebp),%xmm4\r
+ movdqa 48(%ebp),%xmm0\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,195\r
+ pxor %xmm5,%xmm4\r
+ movdqa 64(%ebp),%xmm5\r
+ pxor %xmm4,%xmm0\r
+ movdqa -64(%ebx,%ecx,1),%xmm1\r
+.byte 102,15,56,0,234\r
+ movdqa 80(%ebp),%xmm2\r
+ movdqa (%ebx,%ecx,1),%xmm4\r
+.byte 102,15,56,0,211\r
+ movdqa %xmm0,%xmm3\r
+ pxor %xmm5,%xmm2\r
+.byte 102,15,56,0,193\r
+ addl $16,%edx\r
+ pxor %xmm2,%xmm0\r
+.byte 102,15,56,0,220\r
+ addl $16,%ecx\r
+ pxor %xmm0,%xmm3\r
+.byte 102,15,56,0,193\r
+ andl $48,%ecx\r
+ subl $1,%eax\r
+ pxor %xmm3,%xmm0\r
+.L000enc_entry:\r
+ movdqa %xmm6,%xmm1\r
+ movdqa -32(%ebp),%xmm5\r
+ pandn %xmm0,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm6,%xmm0\r
+.byte 102,15,56,0,232\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm1,%xmm0\r
+.byte 102,15,56,0,217\r
+ movdqa %xmm7,%xmm4\r
+ pxor %xmm5,%xmm3\r
+.byte 102,15,56,0,224\r
+ movdqa %xmm7,%xmm2\r
+ pxor %xmm5,%xmm4\r
+.byte 102,15,56,0,211\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm0,%xmm2\r
+.byte 102,15,56,0,220\r
+ movdqu (%edx),%xmm5\r
+ pxor %xmm1,%xmm3\r
+ jnz .L001enc_loop\r
+ movdqa 96(%ebp),%xmm4\r
+ movdqa 112(%ebp),%xmm0\r
+.byte 102,15,56,0,226\r
+ pxor %xmm5,%xmm4\r
+.byte 102,15,56,0,195\r
+ movdqa 64(%ebx,%ecx,1),%xmm1\r
+ pxor %xmm4,%xmm0\r
+.byte 102,15,56,0,193\r
+ ret\r
+.size _vpaes_encrypt_core,.-_vpaes_encrypt_core\r
+.type _vpaes_decrypt_core,@function\r
+.align 16\r
+_vpaes_decrypt_core:\r
+ leal 608(%ebp),%ebx\r
+ movl 240(%edx),%eax\r
+ movdqa %xmm6,%xmm1\r
+ movdqa -64(%ebx),%xmm2\r
+ pandn %xmm0,%xmm1\r
+ movl %eax,%ecx\r
+ psrld $4,%xmm1\r
+ movdqu (%edx),%xmm5\r
+ shll $4,%ecx\r
+ pand %xmm6,%xmm0\r
+.byte 102,15,56,0,208\r
+ movdqa -48(%ebx),%xmm0\r
+ xorl $48,%ecx\r
+.byte 102,15,56,0,193\r
+ andl $48,%ecx\r
+ pxor %xmm5,%xmm2\r
+ movdqa 176(%ebp),%xmm5\r
+ pxor %xmm2,%xmm0\r
+ addl $16,%edx\r
+ leal -352(%ebx,%ecx,1),%ecx\r
+ jmp .L002dec_entry\r
+.align 16\r
+.L003dec_loop:\r
+ movdqa -32(%ebx),%xmm4\r
+ movdqa -16(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ movdqa (%ebx),%xmm4\r
+ pxor %xmm1,%xmm0\r
+ movdqa 16(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ movdqa 32(%ebx),%xmm4\r
+ pxor %xmm1,%xmm0\r
+ movdqa 48(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ movdqa 64(%ebx),%xmm4\r
+ pxor %xmm1,%xmm0\r
+ movdqa 80(%ebx),%xmm1\r
+.byte 102,15,56,0,226\r
+.byte 102,15,56,0,197\r
+.byte 102,15,56,0,203\r
+ pxor %xmm4,%xmm0\r
+ addl $16,%edx\r
+.byte 102,15,58,15,237,12\r
+ pxor %xmm1,%xmm0\r
+ subl $1,%eax\r
+.L002dec_entry:\r
+ movdqa %xmm6,%xmm1\r
+ movdqa -32(%ebp),%xmm2\r
+ pandn %xmm0,%xmm1\r
+ pand %xmm6,%xmm0\r
+ psrld $4,%xmm1\r
+.byte 102,15,56,0,208\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm1,%xmm0\r
+.byte 102,15,56,0,217\r
+ movdqa %xmm7,%xmm4\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,224\r
+ pxor %xmm2,%xmm4\r
+ movdqa %xmm7,%xmm2\r
+.byte 102,15,56,0,211\r
+ movdqa %xmm7,%xmm3\r
+ pxor %xmm0,%xmm2\r
+.byte 102,15,56,0,220\r
+ movdqu (%edx),%xmm0\r
+ pxor %xmm1,%xmm3\r
+ jnz .L003dec_loop\r
+ movdqa 96(%ebx),%xmm4\r
+.byte 102,15,56,0,226\r
+ pxor %xmm0,%xmm4\r
+ movdqa 112(%ebx),%xmm0\r
+ movdqa (%ecx),%xmm2\r
+.byte 102,15,56,0,195\r
+ pxor %xmm4,%xmm0\r
+.byte 102,15,56,0,194\r
+ ret\r
+.size _vpaes_decrypt_core,.-_vpaes_decrypt_core\r
+.type _vpaes_schedule_core,@function\r
+.align 16\r
+_vpaes_schedule_core:\r
+ addl (%esp),%ebp\r
+ movdqu (%esi),%xmm0\r
+ movdqa 320(%ebp),%xmm2\r
+ movdqa %xmm0,%xmm3\r
+ leal (%ebp),%ebx\r
+ movdqa %xmm2,4(%esp)\r
+ call _vpaes_schedule_transform\r
+ movdqa %xmm0,%xmm7\r
+ testl %edi,%edi\r
+ jnz .L004schedule_am_decrypting\r
+ movdqu %xmm0,(%edx)\r
+ jmp .L005schedule_go\r
+.L004schedule_am_decrypting:\r
+ movdqa 256(%ebp,%ecx,1),%xmm1\r
+.byte 102,15,56,0,217\r
+ movdqu %xmm3,(%edx)\r
+ xorl $48,%ecx\r
+.L005schedule_go:\r
+ cmpl $192,%eax\r
+ ja .L006schedule_256\r
+ je .L007schedule_192\r
+.L008schedule_128:\r
+ movl $10,%eax\r
+.L009loop_schedule_128:\r
+ call _vpaes_schedule_round\r
+ decl %eax\r
+ jz .L010schedule_mangle_last\r
+ call _vpaes_schedule_mangle\r
+ jmp .L009loop_schedule_128\r
+.align 16\r
+.L007schedule_192:\r
+ movdqu 8(%esi),%xmm0\r
+ call _vpaes_schedule_transform\r
+ movdqa %xmm0,%xmm6\r
+ pxor %xmm4,%xmm4\r
+ movhlps %xmm4,%xmm6\r
+ movl $4,%eax\r
+.L011loop_schedule_192:\r
+ call _vpaes_schedule_round\r
+.byte 102,15,58,15,198,8\r
+ call _vpaes_schedule_mangle\r
+ call _vpaes_schedule_192_smear\r
+ call _vpaes_schedule_mangle\r
+ call _vpaes_schedule_round\r
+ decl %eax\r
+ jz .L010schedule_mangle_last\r
+ call _vpaes_schedule_mangle\r
+ call _vpaes_schedule_192_smear\r
+ jmp .L011loop_schedule_192\r
+.align 16\r
+.L006schedule_256:\r
+ movdqu 16(%esi),%xmm0\r
+ call _vpaes_schedule_transform\r
+ movl $7,%eax\r
+.L012loop_schedule_256:\r
+ call _vpaes_schedule_mangle\r
+ movdqa %xmm0,%xmm6\r
+ call _vpaes_schedule_round\r
+ decl %eax\r
+ jz .L010schedule_mangle_last\r
+ call _vpaes_schedule_mangle\r
+ pshufd $255,%xmm0,%xmm0\r
+ movdqa %xmm7,20(%esp)\r
+ movdqa %xmm6,%xmm7\r
+ call .L_vpaes_schedule_low_round\r
+ movdqa 20(%esp),%xmm7\r
+ jmp .L012loop_schedule_256\r
+.align 16\r
+.L010schedule_mangle_last:\r
+ leal 384(%ebp),%ebx\r
+ testl %edi,%edi\r
+ jnz .L013schedule_mangle_last_dec\r
+ movdqa 256(%ebp,%ecx,1),%xmm1\r
+.byte 102,15,56,0,193\r
+ leal 352(%ebp),%ebx\r
+ addl $32,%edx\r
+.L013schedule_mangle_last_dec:\r
+ addl $-16,%edx\r
+ pxor 336(%ebp),%xmm0\r
+ call _vpaes_schedule_transform\r
+ movdqu %xmm0,(%edx)\r
+ pxor %xmm0,%xmm0\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm2,%xmm2\r
+ pxor %xmm3,%xmm3\r
+ pxor %xmm4,%xmm4\r
+ pxor %xmm5,%xmm5\r
+ pxor %xmm6,%xmm6\r
+ pxor %xmm7,%xmm7\r
+ ret\r
+.size _vpaes_schedule_core,.-_vpaes_schedule_core\r
+.type _vpaes_schedule_192_smear,@function\r
+.align 16\r
+_vpaes_schedule_192_smear:\r
+ pshufd $128,%xmm6,%xmm1\r
+ pshufd $254,%xmm7,%xmm0\r
+ pxor %xmm1,%xmm6\r
+ pxor %xmm1,%xmm1\r
+ pxor %xmm0,%xmm6\r
+ movdqa %xmm6,%xmm0\r
+ movhlps %xmm1,%xmm6\r
+ ret\r
+.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear\r
+.type _vpaes_schedule_round,@function\r
+.align 16\r
+_vpaes_schedule_round:\r
+ movdqa 8(%esp),%xmm2\r
+ pxor %xmm1,%xmm1\r
+.byte 102,15,58,15,202,15\r
+.byte 102,15,58,15,210,15\r
+ pxor %xmm1,%xmm7\r
+ pshufd $255,%xmm0,%xmm0\r
+.byte 102,15,58,15,192,1\r
+ movdqa %xmm2,8(%esp)\r
+.L_vpaes_schedule_low_round:\r
+ movdqa %xmm7,%xmm1\r
+ pslldq $4,%xmm7\r
+ pxor %xmm1,%xmm7\r
+ movdqa %xmm7,%xmm1\r
+ pslldq $8,%xmm7\r
+ pxor %xmm1,%xmm7\r
+ pxor 336(%ebp),%xmm7\r
+ movdqa -16(%ebp),%xmm4\r
+ movdqa -48(%ebp),%xmm5\r
+ movdqa %xmm4,%xmm1\r
+ pandn %xmm0,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm4,%xmm0\r
+ movdqa -32(%ebp),%xmm2\r
+.byte 102,15,56,0,208\r
+ pxor %xmm1,%xmm0\r
+ movdqa %xmm5,%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+ movdqa %xmm5,%xmm4\r
+.byte 102,15,56,0,224\r
+ pxor %xmm2,%xmm4\r
+ movdqa %xmm5,%xmm2\r
+.byte 102,15,56,0,211\r
+ pxor %xmm0,%xmm2\r
+ movdqa %xmm5,%xmm3\r
+.byte 102,15,56,0,220\r
+ pxor %xmm1,%xmm3\r
+ movdqa 32(%ebp),%xmm4\r
+.byte 102,15,56,0,226\r
+ movdqa 48(%ebp),%xmm0\r
+.byte 102,15,56,0,195\r
+ pxor %xmm4,%xmm0\r
+ pxor %xmm7,%xmm0\r
+ movdqa %xmm0,%xmm7\r
+ ret\r
+.size _vpaes_schedule_round,.-_vpaes_schedule_round\r
+.type _vpaes_schedule_transform,@function\r
+.align 16\r
+_vpaes_schedule_transform:\r
+ movdqa -16(%ebp),%xmm2\r
+ movdqa %xmm2,%xmm1\r
+ pandn %xmm0,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm2,%xmm0\r
+ movdqa (%ebx),%xmm2\r
+.byte 102,15,56,0,208\r
+ movdqa 16(%ebx),%xmm0\r
+.byte 102,15,56,0,193\r
+ pxor %xmm2,%xmm0\r
+ ret\r
+.size _vpaes_schedule_transform,.-_vpaes_schedule_transform\r
+.type _vpaes_schedule_mangle,@function\r
+.align 16\r
+_vpaes_schedule_mangle:\r
+ movdqa %xmm0,%xmm4\r
+ movdqa 128(%ebp),%xmm5\r
+ testl %edi,%edi\r
+ jnz .L014schedule_mangle_dec\r
+ addl $16,%edx\r
+ pxor 336(%ebp),%xmm4\r
+.byte 102,15,56,0,229\r
+ movdqa %xmm4,%xmm3\r
+.byte 102,15,56,0,229\r
+ pxor %xmm4,%xmm3\r
+.byte 102,15,56,0,229\r
+ pxor %xmm4,%xmm3\r
+ jmp .L015schedule_mangle_both\r
+.align 16\r
+.L014schedule_mangle_dec:\r
+ movdqa -16(%ebp),%xmm2\r
+ leal 416(%ebp),%esi\r
+ movdqa %xmm2,%xmm1\r
+ pandn %xmm4,%xmm1\r
+ psrld $4,%xmm1\r
+ pand %xmm2,%xmm4\r
+ movdqa (%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ movdqa 16(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,221\r
+ movdqa 32(%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ pxor %xmm3,%xmm2\r
+ movdqa 48(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,221\r
+ movdqa 64(%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ pxor %xmm3,%xmm2\r
+ movdqa 80(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+.byte 102,15,56,0,221\r
+ movdqa 96(%esi),%xmm2\r
+.byte 102,15,56,0,212\r
+ pxor %xmm3,%xmm2\r
+ movdqa 112(%esi),%xmm3\r
+.byte 102,15,56,0,217\r
+ pxor %xmm2,%xmm3\r
+ addl $-16,%edx\r
+.L015schedule_mangle_both:\r
+ movdqa 256(%ebp,%ecx,1),%xmm1\r
+.byte 102,15,56,0,217\r
+ addl $-16,%ecx\r
+ andl $48,%ecx\r
+ movdqu %xmm3,(%edx)\r
+ ret\r
+.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle\r
+.globl vpaes_set_encrypt_key\r
+.type vpaes_set_encrypt_key,@function\r
+.align 16\r
+vpaes_set_encrypt_key:\r
+.L_vpaes_set_encrypt_key_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%eax\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movl %eax,%ebx\r
+ shrl $5,%ebx\r
+ addl $5,%ebx\r
+ movl %ebx,240(%edx)\r
+ movl $48,%ecx\r
+ movl $0,%edi\r
+ leal .L_vpaes_consts+0x30-.L016pic_point,%ebp\r
+ call _vpaes_schedule_core\r
+.L016pic_point:\r
+ movl 48(%esp),%esp\r
+ xorl %eax,%eax\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin\r
+.globl vpaes_set_decrypt_key\r
+.type vpaes_set_decrypt_key,@function\r
+.align 16\r
+vpaes_set_decrypt_key:\r
+.L_vpaes_set_decrypt_key_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%eax\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movl %eax,%ebx\r
+ shrl $5,%ebx\r
+ addl $5,%ebx\r
+ movl %ebx,240(%edx)\r
+ shll $4,%ebx\r
+ leal 16(%edx,%ebx,1),%edx\r
+ movl $1,%edi\r
+ movl %eax,%ecx\r
+ shrl $1,%ecx\r
+ andl $32,%ecx\r
+ xorl $32,%ecx\r
+ leal .L_vpaes_consts+0x30-.L017pic_point,%ebp\r
+ call _vpaes_schedule_core\r
+.L017pic_point:\r
+ movl 48(%esp),%esp\r
+ xorl %eax,%eax\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin\r
+.globl vpaes_encrypt\r
+.type vpaes_encrypt,@function\r
+.align 16\r
+vpaes_encrypt:\r
+.L_vpaes_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ leal .L_vpaes_consts+0x30-.L018pic_point,%ebp\r
+ call _vpaes_preheat\r
+.L018pic_point:\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%edi\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movdqu (%esi),%xmm0\r
+ call _vpaes_encrypt_core\r
+ movdqu %xmm0,(%edi)\r
+ movl 48(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_encrypt,.-.L_vpaes_encrypt_begin\r
+.globl vpaes_decrypt\r
+.type vpaes_decrypt,@function\r
+.align 16\r
+vpaes_decrypt:\r
+.L_vpaes_decrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ leal .L_vpaes_consts+0x30-.L019pic_point,%ebp\r
+ call _vpaes_preheat\r
+.L019pic_point:\r
+ movl 20(%esp),%esi\r
+ leal -56(%esp),%ebx\r
+ movl 24(%esp),%edi\r
+ andl $-16,%ebx\r
+ movl 28(%esp),%edx\r
+ xchgl %esp,%ebx\r
+ movl %ebx,48(%esp)\r
+ movdqu (%esi),%xmm0\r
+ call _vpaes_decrypt_core\r
+ movdqu %xmm0,(%edi)\r
+ movl 48(%esp),%esp\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_decrypt,.-.L_vpaes_decrypt_begin\r
+.globl vpaes_cbc_encrypt\r
+.type vpaes_cbc_encrypt,@function\r
+.align 16\r
+vpaes_cbc_encrypt:\r
+.L_vpaes_cbc_encrypt_begin:\r
+ pushl %ebp\r
+ pushl %ebx\r
+ pushl %esi\r
+ pushl %edi\r
+ movl 20(%esp),%esi\r
+ movl 24(%esp),%edi\r
+ movl 28(%esp),%eax\r
+ movl 32(%esp),%edx\r
+ subl $16,%eax\r
+ jc .L020cbc_abort\r
+ leal -56(%esp),%ebx\r
+ movl 36(%esp),%ebp\r
+ andl $-16,%ebx\r
+ movl 40(%esp),%ecx\r
+ xchgl %esp,%ebx\r
+ movdqu (%ebp),%xmm1\r
+ subl %esi,%edi\r
+ movl %ebx,48(%esp)\r
+ movl %edi,(%esp)\r
+ movl %edx,4(%esp)\r
+ movl %ebp,8(%esp)\r
+ movl %eax,%edi\r
+ leal .L_vpaes_consts+0x30-.L021pic_point,%ebp\r
+ call _vpaes_preheat\r
+.L021pic_point:\r
+ cmpl $0,%ecx\r
+ je .L022cbc_dec_loop\r
+ jmp .L023cbc_enc_loop\r
+.align 16\r
+.L023cbc_enc_loop:\r
+ movdqu (%esi),%xmm0\r
+ pxor %xmm1,%xmm0\r
+ call _vpaes_encrypt_core\r
+ movl (%esp),%ebx\r
+ movl 4(%esp),%edx\r
+ movdqa %xmm0,%xmm1\r
+ movdqu %xmm0,(%ebx,%esi,1)\r
+ leal 16(%esi),%esi\r
+ subl $16,%edi\r
+ jnc .L023cbc_enc_loop\r
+ jmp .L024cbc_done\r
+.align 16\r
+.L022cbc_dec_loop:\r
+ movdqu (%esi),%xmm0\r
+ movdqa %xmm1,16(%esp)\r
+ movdqa %xmm0,32(%esp)\r
+ call _vpaes_decrypt_core\r
+ movl (%esp),%ebx\r
+ movl 4(%esp),%edx\r
+ pxor 16(%esp),%xmm0\r
+ movdqa 32(%esp),%xmm1\r
+ movdqu %xmm0,(%ebx,%esi,1)\r
+ leal 16(%esi),%esi\r
+ subl $16,%edi\r
+ jnc .L022cbc_dec_loop\r
+.L024cbc_done:\r
+ movl 8(%esp),%ebx\r
+ movl 48(%esp),%esp\r
+ movdqu %xmm1,(%ebx)\r
+.L020cbc_abort:\r
+ popl %edi\r
+ popl %esi\r
+ popl %ebx\r
+ popl %ebp\r
+ ret\r
+.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin\r