]> git.proxmox.com Git - mirror_edk2.git/blobdiff - CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S
CryptoPkg/OpensslLib: Commit the auto-generated assembly files for IA32
[mirror_edk2.git] / CryptoPkg / Library / OpensslLib / IA32Gcc / crypto / aes / vpaes-x86.S
diff --git a/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S b/CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S
new file mode 100644 (file)
index 0000000..6f62534
--- /dev/null
@@ -0,0 +1,670 @@
+# 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