Path: blob/main/sys/crypto/openssl/i386/vpaes-x86.S
39482 views
/* Do not modify. This file is auto-generated from vpaes-x86.pl. */1#ifdef PIC2.text3.align 644.L_vpaes_consts:5.long 218628480,235210255,168496130,675683936.long 252381056,17041926,33884169,511872127.long 252645135,252645135,252645135,2526451358.long 1512730624,3266504856,1377990664,34012448169.long 830229760,1275146365,2969422977,344776345210.long 3411033600,2979783055,338359620,278288651011.long 4209124096,907596821,221174255,100609555312.long 191964160,3799684038,3164090317,158911112513.long 182528256,1777043520,2877432650,326535674414.long 1874708224,3503451415,3305285752,36351167415.long 1606117888,3487855781,1093350906,238436782516.long 197121,67569157,134941193,20231322917.long 67569157,134941193,202313229,19712118.long 134941193,202313229,197121,6756915719.long 202313229,197121,67569157,13494119320.long 33619971,100992007,168364043,23573607921.long 235736079,33619971,100992007,16836404322.long 168364043,235736079,33619971,10099200723.long 100992007,168364043,235736079,3361997124.long 50462976,117835012,185207048,25257908425.long 252314880,51251460,117574920,18494286026.long 184682752,252054788,50987272,11835930827.long 118099200,185467140,251790600,5072718028.long 2946363062,528716217,1300004225,188183962429.long 1532713819,1532713819,1532713819,153271381930.long 3602276352,4288629033,3737020424,415388496131.long 1354558464,32357713,2958822624,377574955332.long 1201988352,132424512,1572796698,50323285833.long 2213177600,1597421020,4103937655,67539831534.long 2749646592,4273543773,1511898873,12169309235.long 3040248576,1103263732,2871565598,160828055436.long 2236667136,2588920351,482954393,6437773437.long 3069987328,291237287,2117370568,365029924738.long 533321216,3573750986,2572112006,140126471639.long 1339849704,2721158661,548607111,344555351440.long 2128193280,3054596040,2183486460,125708370041.long 655635200,1165381986,3923443150,234413252442.long 190078720,256924420,290342170,35718787043.long 1610966272,2263057382,4103205268,30979467444.long 2592527872,2233205587,1335446729,340296481645.long 3973531904,3225098121,3002836325,191877443046.long 3870401024,2102906079,2284471353,411766657947.long 617007872,1021508343,366931923,69108327748.long 2528395776,3491914898,2968704004,161312127049.long 3445188352,3247741094,844474987,409357830250.long 651481088,1190302358,1689581232,57477530051.long 4289380608,206939853,2555985458,248984049152.long 2130264064,327674451,3566485037,334983519353.long 2470714624,316102159,3636825756,339394594554.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,10555.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,8356.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,11757.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,10558.byte 118,101,114,115,105,116,121,41,059.align 6460.type _vpaes_preheat,@function61.align 1662_vpaes_preheat:63#ifdef __CET__6465.byte 243,15,30,25166#endif6768addl (%esp),%ebp69movdqa -48(%ebp),%xmm770movdqa -16(%ebp),%xmm671ret72.size _vpaes_preheat,.-_vpaes_preheat73.type _vpaes_encrypt_core,@function74.align 1675_vpaes_encrypt_core:76#ifdef __CET__7778.byte 243,15,30,25179#endif8081movl $16,%ecx82movl 240(%edx),%eax83movdqa %xmm6,%xmm184movdqa (%ebp),%xmm285pandn %xmm0,%xmm186pand %xmm6,%xmm087movdqu (%edx),%xmm588.byte 102,15,56,0,20889movdqa 16(%ebp),%xmm090pxor %xmm5,%xmm291psrld $4,%xmm192addl $16,%edx93.byte 102,15,56,0,19394leal 192(%ebp),%ebx95pxor %xmm2,%xmm096jmp .L000enc_entry97.align 1698.L001enc_loop:99movdqa 32(%ebp),%xmm4100movdqa 48(%ebp),%xmm0101.byte 102,15,56,0,226102.byte 102,15,56,0,195103pxor %xmm5,%xmm4104movdqa 64(%ebp),%xmm5105pxor %xmm4,%xmm0106movdqa -64(%ebx,%ecx,1),%xmm1107.byte 102,15,56,0,234108movdqa 80(%ebp),%xmm2109movdqa (%ebx,%ecx,1),%xmm4110.byte 102,15,56,0,211111movdqa %xmm0,%xmm3112pxor %xmm5,%xmm2113.byte 102,15,56,0,193114addl $16,%edx115pxor %xmm2,%xmm0116.byte 102,15,56,0,220117addl $16,%ecx118pxor %xmm0,%xmm3119.byte 102,15,56,0,193120andl $48,%ecx121subl $1,%eax122pxor %xmm3,%xmm0123.L000enc_entry:124movdqa %xmm6,%xmm1125movdqa -32(%ebp),%xmm5126pandn %xmm0,%xmm1127psrld $4,%xmm1128pand %xmm6,%xmm0129.byte 102,15,56,0,232130movdqa %xmm7,%xmm3131pxor %xmm1,%xmm0132.byte 102,15,56,0,217133movdqa %xmm7,%xmm4134pxor %xmm5,%xmm3135.byte 102,15,56,0,224136movdqa %xmm7,%xmm2137pxor %xmm5,%xmm4138.byte 102,15,56,0,211139movdqa %xmm7,%xmm3140pxor %xmm0,%xmm2141.byte 102,15,56,0,220142movdqu (%edx),%xmm5143pxor %xmm1,%xmm3144jnz .L001enc_loop145movdqa 96(%ebp),%xmm4146movdqa 112(%ebp),%xmm0147.byte 102,15,56,0,226148pxor %xmm5,%xmm4149.byte 102,15,56,0,195150movdqa 64(%ebx,%ecx,1),%xmm1151pxor %xmm4,%xmm0152.byte 102,15,56,0,193153ret154.size _vpaes_encrypt_core,.-_vpaes_encrypt_core155.type _vpaes_decrypt_core,@function156.align 16157_vpaes_decrypt_core:158#ifdef __CET__159160.byte 243,15,30,251161#endif162163leal 608(%ebp),%ebx164movl 240(%edx),%eax165movdqa %xmm6,%xmm1166movdqa -64(%ebx),%xmm2167pandn %xmm0,%xmm1168movl %eax,%ecx169psrld $4,%xmm1170movdqu (%edx),%xmm5171shll $4,%ecx172pand %xmm6,%xmm0173.byte 102,15,56,0,208174movdqa -48(%ebx),%xmm0175xorl $48,%ecx176.byte 102,15,56,0,193177andl $48,%ecx178pxor %xmm5,%xmm2179movdqa 176(%ebp),%xmm5180pxor %xmm2,%xmm0181addl $16,%edx182leal -352(%ebx,%ecx,1),%ecx183jmp .L002dec_entry184.align 16185.L003dec_loop:186movdqa -32(%ebx),%xmm4187movdqa -16(%ebx),%xmm1188.byte 102,15,56,0,226189.byte 102,15,56,0,203190pxor %xmm4,%xmm0191movdqa (%ebx),%xmm4192pxor %xmm1,%xmm0193movdqa 16(%ebx),%xmm1194.byte 102,15,56,0,226195.byte 102,15,56,0,197196.byte 102,15,56,0,203197pxor %xmm4,%xmm0198movdqa 32(%ebx),%xmm4199pxor %xmm1,%xmm0200movdqa 48(%ebx),%xmm1201.byte 102,15,56,0,226202.byte 102,15,56,0,197203.byte 102,15,56,0,203204pxor %xmm4,%xmm0205movdqa 64(%ebx),%xmm4206pxor %xmm1,%xmm0207movdqa 80(%ebx),%xmm1208.byte 102,15,56,0,226209.byte 102,15,56,0,197210.byte 102,15,56,0,203211pxor %xmm4,%xmm0212addl $16,%edx213.byte 102,15,58,15,237,12214pxor %xmm1,%xmm0215subl $1,%eax216.L002dec_entry:217movdqa %xmm6,%xmm1218movdqa -32(%ebp),%xmm2219pandn %xmm0,%xmm1220pand %xmm6,%xmm0221psrld $4,%xmm1222.byte 102,15,56,0,208223movdqa %xmm7,%xmm3224pxor %xmm1,%xmm0225.byte 102,15,56,0,217226movdqa %xmm7,%xmm4227pxor %xmm2,%xmm3228.byte 102,15,56,0,224229pxor %xmm2,%xmm4230movdqa %xmm7,%xmm2231.byte 102,15,56,0,211232movdqa %xmm7,%xmm3233pxor %xmm0,%xmm2234.byte 102,15,56,0,220235movdqu (%edx),%xmm0236pxor %xmm1,%xmm3237jnz .L003dec_loop238movdqa 96(%ebx),%xmm4239.byte 102,15,56,0,226240pxor %xmm0,%xmm4241movdqa 112(%ebx),%xmm0242movdqa (%ecx),%xmm2243.byte 102,15,56,0,195244pxor %xmm4,%xmm0245.byte 102,15,56,0,194246ret247.size _vpaes_decrypt_core,.-_vpaes_decrypt_core248.type _vpaes_schedule_core,@function249.align 16250_vpaes_schedule_core:251#ifdef __CET__252253.byte 243,15,30,251254#endif255256addl (%esp),%ebp257movdqu (%esi),%xmm0258movdqa 320(%ebp),%xmm2259movdqa %xmm0,%xmm3260leal (%ebp),%ebx261movdqa %xmm2,4(%esp)262call _vpaes_schedule_transform263movdqa %xmm0,%xmm7264testl %edi,%edi265jnz .L004schedule_am_decrypting266movdqu %xmm0,(%edx)267jmp .L005schedule_go268.L004schedule_am_decrypting:269movdqa 256(%ebp,%ecx,1),%xmm1270.byte 102,15,56,0,217271movdqu %xmm3,(%edx)272xorl $48,%ecx273.L005schedule_go:274cmpl $192,%eax275ja .L006schedule_256276je .L007schedule_192277.L008schedule_128:278movl $10,%eax279.L009loop_schedule_128:280call _vpaes_schedule_round281decl %eax282jz .L010schedule_mangle_last283call _vpaes_schedule_mangle284jmp .L009loop_schedule_128285.align 16286.L007schedule_192:287movdqu 8(%esi),%xmm0288call _vpaes_schedule_transform289movdqa %xmm0,%xmm6290pxor %xmm4,%xmm4291movhlps %xmm4,%xmm6292movl $4,%eax293.L011loop_schedule_192:294call _vpaes_schedule_round295.byte 102,15,58,15,198,8296call _vpaes_schedule_mangle297call _vpaes_schedule_192_smear298call _vpaes_schedule_mangle299call _vpaes_schedule_round300decl %eax301jz .L010schedule_mangle_last302call _vpaes_schedule_mangle303call _vpaes_schedule_192_smear304jmp .L011loop_schedule_192305.align 16306.L006schedule_256:307movdqu 16(%esi),%xmm0308call _vpaes_schedule_transform309movl $7,%eax310.L012loop_schedule_256:311call _vpaes_schedule_mangle312movdqa %xmm0,%xmm6313call _vpaes_schedule_round314decl %eax315jz .L010schedule_mangle_last316call _vpaes_schedule_mangle317pshufd $255,%xmm0,%xmm0318movdqa %xmm7,20(%esp)319movdqa %xmm6,%xmm7320call .L_vpaes_schedule_low_round321movdqa 20(%esp),%xmm7322jmp .L012loop_schedule_256323.align 16324.L010schedule_mangle_last:325leal 384(%ebp),%ebx326testl %edi,%edi327jnz .L013schedule_mangle_last_dec328movdqa 256(%ebp,%ecx,1),%xmm1329.byte 102,15,56,0,193330leal 352(%ebp),%ebx331addl $32,%edx332.L013schedule_mangle_last_dec:333addl $-16,%edx334pxor 336(%ebp),%xmm0335call _vpaes_schedule_transform336movdqu %xmm0,(%edx)337pxor %xmm0,%xmm0338pxor %xmm1,%xmm1339pxor %xmm2,%xmm2340pxor %xmm3,%xmm3341pxor %xmm4,%xmm4342pxor %xmm5,%xmm5343pxor %xmm6,%xmm6344pxor %xmm7,%xmm7345ret346.size _vpaes_schedule_core,.-_vpaes_schedule_core347.type _vpaes_schedule_192_smear,@function348.align 16349_vpaes_schedule_192_smear:350#ifdef __CET__351352.byte 243,15,30,251353#endif354355pshufd $128,%xmm6,%xmm1356pshufd $254,%xmm7,%xmm0357pxor %xmm1,%xmm6358pxor %xmm1,%xmm1359pxor %xmm0,%xmm6360movdqa %xmm6,%xmm0361movhlps %xmm1,%xmm6362ret363.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear364.type _vpaes_schedule_round,@function365.align 16366_vpaes_schedule_round:367#ifdef __CET__368369.byte 243,15,30,251370#endif371372movdqa 8(%esp),%xmm2373pxor %xmm1,%xmm1374.byte 102,15,58,15,202,15375.byte 102,15,58,15,210,15376pxor %xmm1,%xmm7377pshufd $255,%xmm0,%xmm0378.byte 102,15,58,15,192,1379movdqa %xmm2,8(%esp)380.L_vpaes_schedule_low_round:381movdqa %xmm7,%xmm1382pslldq $4,%xmm7383pxor %xmm1,%xmm7384movdqa %xmm7,%xmm1385pslldq $8,%xmm7386pxor %xmm1,%xmm7387pxor 336(%ebp),%xmm7388movdqa -16(%ebp),%xmm4389movdqa -48(%ebp),%xmm5390movdqa %xmm4,%xmm1391pandn %xmm0,%xmm1392psrld $4,%xmm1393pand %xmm4,%xmm0394movdqa -32(%ebp),%xmm2395.byte 102,15,56,0,208396pxor %xmm1,%xmm0397movdqa %xmm5,%xmm3398.byte 102,15,56,0,217399pxor %xmm2,%xmm3400movdqa %xmm5,%xmm4401.byte 102,15,56,0,224402pxor %xmm2,%xmm4403movdqa %xmm5,%xmm2404.byte 102,15,56,0,211405pxor %xmm0,%xmm2406movdqa %xmm5,%xmm3407.byte 102,15,56,0,220408pxor %xmm1,%xmm3409movdqa 32(%ebp),%xmm4410.byte 102,15,56,0,226411movdqa 48(%ebp),%xmm0412.byte 102,15,56,0,195413pxor %xmm4,%xmm0414pxor %xmm7,%xmm0415movdqa %xmm0,%xmm7416ret417.size _vpaes_schedule_round,.-_vpaes_schedule_round418.type _vpaes_schedule_transform,@function419.align 16420_vpaes_schedule_transform:421#ifdef __CET__422423.byte 243,15,30,251424#endif425426movdqa -16(%ebp),%xmm2427movdqa %xmm2,%xmm1428pandn %xmm0,%xmm1429psrld $4,%xmm1430pand %xmm2,%xmm0431movdqa (%ebx),%xmm2432.byte 102,15,56,0,208433movdqa 16(%ebx),%xmm0434.byte 102,15,56,0,193435pxor %xmm2,%xmm0436ret437.size _vpaes_schedule_transform,.-_vpaes_schedule_transform438.type _vpaes_schedule_mangle,@function439.align 16440_vpaes_schedule_mangle:441#ifdef __CET__442443.byte 243,15,30,251444#endif445446movdqa %xmm0,%xmm4447movdqa 128(%ebp),%xmm5448testl %edi,%edi449jnz .L014schedule_mangle_dec450addl $16,%edx451pxor 336(%ebp),%xmm4452.byte 102,15,56,0,229453movdqa %xmm4,%xmm3454.byte 102,15,56,0,229455pxor %xmm4,%xmm3456.byte 102,15,56,0,229457pxor %xmm4,%xmm3458jmp .L015schedule_mangle_both459.align 16460.L014schedule_mangle_dec:461movdqa -16(%ebp),%xmm2462leal 416(%ebp),%esi463movdqa %xmm2,%xmm1464pandn %xmm4,%xmm1465psrld $4,%xmm1466pand %xmm2,%xmm4467movdqa (%esi),%xmm2468.byte 102,15,56,0,212469movdqa 16(%esi),%xmm3470.byte 102,15,56,0,217471pxor %xmm2,%xmm3472.byte 102,15,56,0,221473movdqa 32(%esi),%xmm2474.byte 102,15,56,0,212475pxor %xmm3,%xmm2476movdqa 48(%esi),%xmm3477.byte 102,15,56,0,217478pxor %xmm2,%xmm3479.byte 102,15,56,0,221480movdqa 64(%esi),%xmm2481.byte 102,15,56,0,212482pxor %xmm3,%xmm2483movdqa 80(%esi),%xmm3484.byte 102,15,56,0,217485pxor %xmm2,%xmm3486.byte 102,15,56,0,221487movdqa 96(%esi),%xmm2488.byte 102,15,56,0,212489pxor %xmm3,%xmm2490movdqa 112(%esi),%xmm3491.byte 102,15,56,0,217492pxor %xmm2,%xmm3493addl $-16,%edx494.L015schedule_mangle_both:495movdqa 256(%ebp,%ecx,1),%xmm1496.byte 102,15,56,0,217497addl $-16,%ecx498andl $48,%ecx499movdqu %xmm3,(%edx)500ret501.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle502.globl vpaes_set_encrypt_key503.type vpaes_set_encrypt_key,@function504.align 16505vpaes_set_encrypt_key:506.L_vpaes_set_encrypt_key_begin:507#ifdef __CET__508509.byte 243,15,30,251510#endif511512pushl %ebp513pushl %ebx514pushl %esi515pushl %edi516movl 20(%esp),%esi517leal -56(%esp),%ebx518movl 24(%esp),%eax519andl $-16,%ebx520movl 28(%esp),%edx521xchgl %esp,%ebx522movl %ebx,48(%esp)523movl %eax,%ebx524shrl $5,%ebx525addl $5,%ebx526movl %ebx,240(%edx)527movl $48,%ecx528movl $0,%edi529leal .L_vpaes_consts+0x30-.L016pic_point,%ebp530call _vpaes_schedule_core531.L016pic_point:532movl 48(%esp),%esp533xorl %eax,%eax534popl %edi535popl %esi536popl %ebx537popl %ebp538ret539.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin540.globl vpaes_set_decrypt_key541.type vpaes_set_decrypt_key,@function542.align 16543vpaes_set_decrypt_key:544.L_vpaes_set_decrypt_key_begin:545#ifdef __CET__546547.byte 243,15,30,251548#endif549550pushl %ebp551pushl %ebx552pushl %esi553pushl %edi554movl 20(%esp),%esi555leal -56(%esp),%ebx556movl 24(%esp),%eax557andl $-16,%ebx558movl 28(%esp),%edx559xchgl %esp,%ebx560movl %ebx,48(%esp)561movl %eax,%ebx562shrl $5,%ebx563addl $5,%ebx564movl %ebx,240(%edx)565shll $4,%ebx566leal 16(%edx,%ebx,1),%edx567movl $1,%edi568movl %eax,%ecx569shrl $1,%ecx570andl $32,%ecx571xorl $32,%ecx572leal .L_vpaes_consts+0x30-.L017pic_point,%ebp573call _vpaes_schedule_core574.L017pic_point:575movl 48(%esp),%esp576xorl %eax,%eax577popl %edi578popl %esi579popl %ebx580popl %ebp581ret582.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin583.globl vpaes_encrypt584.type vpaes_encrypt,@function585.align 16586vpaes_encrypt:587.L_vpaes_encrypt_begin:588#ifdef __CET__589590.byte 243,15,30,251591#endif592593pushl %ebp594pushl %ebx595pushl %esi596pushl %edi597leal .L_vpaes_consts+0x30-.L018pic_point,%ebp598call _vpaes_preheat599.L018pic_point:600movl 20(%esp),%esi601leal -56(%esp),%ebx602movl 24(%esp),%edi603andl $-16,%ebx604movl 28(%esp),%edx605xchgl %esp,%ebx606movl %ebx,48(%esp)607movdqu (%esi),%xmm0608call _vpaes_encrypt_core609movdqu %xmm0,(%edi)610movl 48(%esp),%esp611popl %edi612popl %esi613popl %ebx614popl %ebp615ret616.size vpaes_encrypt,.-.L_vpaes_encrypt_begin617.globl vpaes_decrypt618.type vpaes_decrypt,@function619.align 16620vpaes_decrypt:621.L_vpaes_decrypt_begin:622#ifdef __CET__623624.byte 243,15,30,251625#endif626627pushl %ebp628pushl %ebx629pushl %esi630pushl %edi631leal .L_vpaes_consts+0x30-.L019pic_point,%ebp632call _vpaes_preheat633.L019pic_point:634movl 20(%esp),%esi635leal -56(%esp),%ebx636movl 24(%esp),%edi637andl $-16,%ebx638movl 28(%esp),%edx639xchgl %esp,%ebx640movl %ebx,48(%esp)641movdqu (%esi),%xmm0642call _vpaes_decrypt_core643movdqu %xmm0,(%edi)644movl 48(%esp),%esp645popl %edi646popl %esi647popl %ebx648popl %ebp649ret650.size vpaes_decrypt,.-.L_vpaes_decrypt_begin651.globl vpaes_cbc_encrypt652.type vpaes_cbc_encrypt,@function653.align 16654vpaes_cbc_encrypt:655.L_vpaes_cbc_encrypt_begin:656#ifdef __CET__657658.byte 243,15,30,251659#endif660661pushl %ebp662pushl %ebx663pushl %esi664pushl %edi665movl 20(%esp),%esi666movl 24(%esp),%edi667movl 28(%esp),%eax668movl 32(%esp),%edx669subl $16,%eax670jc .L020cbc_abort671leal -56(%esp),%ebx672movl 36(%esp),%ebp673andl $-16,%ebx674movl 40(%esp),%ecx675xchgl %esp,%ebx676movdqu (%ebp),%xmm1677subl %esi,%edi678movl %ebx,48(%esp)679movl %edi,(%esp)680movl %edx,4(%esp)681movl %ebp,8(%esp)682movl %eax,%edi683leal .L_vpaes_consts+0x30-.L021pic_point,%ebp684call _vpaes_preheat685.L021pic_point:686cmpl $0,%ecx687je .L022cbc_dec_loop688jmp .L023cbc_enc_loop689.align 16690.L023cbc_enc_loop:691movdqu (%esi),%xmm0692pxor %xmm1,%xmm0693call _vpaes_encrypt_core694movl (%esp),%ebx695movl 4(%esp),%edx696movdqa %xmm0,%xmm1697movdqu %xmm0,(%ebx,%esi,1)698leal 16(%esi),%esi699subl $16,%edi700jnc .L023cbc_enc_loop701jmp .L024cbc_done702.align 16703.L022cbc_dec_loop:704movdqu (%esi),%xmm0705movdqa %xmm1,16(%esp)706movdqa %xmm0,32(%esp)707call _vpaes_decrypt_core708movl (%esp),%ebx709movl 4(%esp),%edx710pxor 16(%esp),%xmm0711movdqa 32(%esp),%xmm1712movdqu %xmm0,(%ebx,%esi,1)713leal 16(%esi),%esi714subl $16,%edi715jnc .L022cbc_dec_loop716.L024cbc_done:717movl 8(%esp),%ebx718movl 48(%esp),%esp719movdqu %xmm1,(%ebx)720.L020cbc_abort:721popl %edi722popl %esi723popl %ebx724popl %ebp725ret726.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin727728.section ".note.gnu.property", "a"729.p2align 2730.long 1f - 0f731.long 4f - 1f732.long 57330:734.asciz "GNU"7351:736.p2align 2737.long 0xc0000002738.long 3f - 2f7392:740.long 37413:742.p2align 27434:744#else745.text746.align 64747.L_vpaes_consts:748.long 218628480,235210255,168496130,67568393749.long 252381056,17041926,33884169,51187212750.long 252645135,252645135,252645135,252645135751.long 1512730624,3266504856,1377990664,3401244816752.long 830229760,1275146365,2969422977,3447763452753.long 3411033600,2979783055,338359620,2782886510754.long 4209124096,907596821,221174255,1006095553755.long 191964160,3799684038,3164090317,1589111125756.long 182528256,1777043520,2877432650,3265356744757.long 1874708224,3503451415,3305285752,363511674758.long 1606117888,3487855781,1093350906,2384367825759.long 197121,67569157,134941193,202313229760.long 67569157,134941193,202313229,197121761.long 134941193,202313229,197121,67569157762.long 202313229,197121,67569157,134941193763.long 33619971,100992007,168364043,235736079764.long 235736079,33619971,100992007,168364043765.long 168364043,235736079,33619971,100992007766.long 100992007,168364043,235736079,33619971767.long 50462976,117835012,185207048,252579084768.long 252314880,51251460,117574920,184942860769.long 184682752,252054788,50987272,118359308770.long 118099200,185467140,251790600,50727180771.long 2946363062,528716217,1300004225,1881839624772.long 1532713819,1532713819,1532713819,1532713819773.long 3602276352,4288629033,3737020424,4153884961774.long 1354558464,32357713,2958822624,3775749553775.long 1201988352,132424512,1572796698,503232858776.long 2213177600,1597421020,4103937655,675398315777.long 2749646592,4273543773,1511898873,121693092778.long 3040248576,1103263732,2871565598,1608280554779.long 2236667136,2588920351,482954393,64377734780.long 3069987328,291237287,2117370568,3650299247781.long 533321216,3573750986,2572112006,1401264716782.long 1339849704,2721158661,548607111,3445553514783.long 2128193280,3054596040,2183486460,1257083700784.long 655635200,1165381986,3923443150,2344132524785.long 190078720,256924420,290342170,357187870786.long 1610966272,2263057382,4103205268,309794674787.long 2592527872,2233205587,1335446729,3402964816788.long 3973531904,3225098121,3002836325,1918774430789.long 3870401024,2102906079,2284471353,4117666579790.long 617007872,1021508343,366931923,691083277791.long 2528395776,3491914898,2968704004,1613121270792.long 3445188352,3247741094,844474987,4093578302793.long 651481088,1190302358,1689581232,574775300794.long 4289380608,206939853,2555985458,2489840491795.long 2130264064,327674451,3566485037,3349835193796.long 2470714624,316102159,3636825756,3393945945797.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105798.byte 111,110,32,65,69,83,32,102,111,114,32,120,56,54,47,83799.byte 83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117800.byte 114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105801.byte 118,101,114,115,105,116,121,41,0802.align 64803.type _vpaes_preheat,@function804.align 16805_vpaes_preheat:806#ifdef __CET__807808.byte 243,15,30,251809#endif810811addl (%esp),%ebp812movdqa -48(%ebp),%xmm7813movdqa -16(%ebp),%xmm6814ret815.size _vpaes_preheat,.-_vpaes_preheat816.type _vpaes_encrypt_core,@function817.align 16818_vpaes_encrypt_core:819#ifdef __CET__820821.byte 243,15,30,251822#endif823824movl $16,%ecx825movl 240(%edx),%eax826movdqa %xmm6,%xmm1827movdqa (%ebp),%xmm2828pandn %xmm0,%xmm1829pand %xmm6,%xmm0830movdqu (%edx),%xmm5831.byte 102,15,56,0,208832movdqa 16(%ebp),%xmm0833pxor %xmm5,%xmm2834psrld $4,%xmm1835addl $16,%edx836.byte 102,15,56,0,193837leal 192(%ebp),%ebx838pxor %xmm2,%xmm0839jmp .L000enc_entry840.align 16841.L001enc_loop:842movdqa 32(%ebp),%xmm4843movdqa 48(%ebp),%xmm0844.byte 102,15,56,0,226845.byte 102,15,56,0,195846pxor %xmm5,%xmm4847movdqa 64(%ebp),%xmm5848pxor %xmm4,%xmm0849movdqa -64(%ebx,%ecx,1),%xmm1850.byte 102,15,56,0,234851movdqa 80(%ebp),%xmm2852movdqa (%ebx,%ecx,1),%xmm4853.byte 102,15,56,0,211854movdqa %xmm0,%xmm3855pxor %xmm5,%xmm2856.byte 102,15,56,0,193857addl $16,%edx858pxor %xmm2,%xmm0859.byte 102,15,56,0,220860addl $16,%ecx861pxor %xmm0,%xmm3862.byte 102,15,56,0,193863andl $48,%ecx864subl $1,%eax865pxor %xmm3,%xmm0866.L000enc_entry:867movdqa %xmm6,%xmm1868movdqa -32(%ebp),%xmm5869pandn %xmm0,%xmm1870psrld $4,%xmm1871pand %xmm6,%xmm0872.byte 102,15,56,0,232873movdqa %xmm7,%xmm3874pxor %xmm1,%xmm0875.byte 102,15,56,0,217876movdqa %xmm7,%xmm4877pxor %xmm5,%xmm3878.byte 102,15,56,0,224879movdqa %xmm7,%xmm2880pxor %xmm5,%xmm4881.byte 102,15,56,0,211882movdqa %xmm7,%xmm3883pxor %xmm0,%xmm2884.byte 102,15,56,0,220885movdqu (%edx),%xmm5886pxor %xmm1,%xmm3887jnz .L001enc_loop888movdqa 96(%ebp),%xmm4889movdqa 112(%ebp),%xmm0890.byte 102,15,56,0,226891pxor %xmm5,%xmm4892.byte 102,15,56,0,195893movdqa 64(%ebx,%ecx,1),%xmm1894pxor %xmm4,%xmm0895.byte 102,15,56,0,193896ret897.size _vpaes_encrypt_core,.-_vpaes_encrypt_core898.type _vpaes_decrypt_core,@function899.align 16900_vpaes_decrypt_core:901#ifdef __CET__902903.byte 243,15,30,251904#endif905906leal 608(%ebp),%ebx907movl 240(%edx),%eax908movdqa %xmm6,%xmm1909movdqa -64(%ebx),%xmm2910pandn %xmm0,%xmm1911movl %eax,%ecx912psrld $4,%xmm1913movdqu (%edx),%xmm5914shll $4,%ecx915pand %xmm6,%xmm0916.byte 102,15,56,0,208917movdqa -48(%ebx),%xmm0918xorl $48,%ecx919.byte 102,15,56,0,193920andl $48,%ecx921pxor %xmm5,%xmm2922movdqa 176(%ebp),%xmm5923pxor %xmm2,%xmm0924addl $16,%edx925leal -352(%ebx,%ecx,1),%ecx926jmp .L002dec_entry927.align 16928.L003dec_loop:929movdqa -32(%ebx),%xmm4930movdqa -16(%ebx),%xmm1931.byte 102,15,56,0,226932.byte 102,15,56,0,203933pxor %xmm4,%xmm0934movdqa (%ebx),%xmm4935pxor %xmm1,%xmm0936movdqa 16(%ebx),%xmm1937.byte 102,15,56,0,226938.byte 102,15,56,0,197939.byte 102,15,56,0,203940pxor %xmm4,%xmm0941movdqa 32(%ebx),%xmm4942pxor %xmm1,%xmm0943movdqa 48(%ebx),%xmm1944.byte 102,15,56,0,226945.byte 102,15,56,0,197946.byte 102,15,56,0,203947pxor %xmm4,%xmm0948movdqa 64(%ebx),%xmm4949pxor %xmm1,%xmm0950movdqa 80(%ebx),%xmm1951.byte 102,15,56,0,226952.byte 102,15,56,0,197953.byte 102,15,56,0,203954pxor %xmm4,%xmm0955addl $16,%edx956.byte 102,15,58,15,237,12957pxor %xmm1,%xmm0958subl $1,%eax959.L002dec_entry:960movdqa %xmm6,%xmm1961movdqa -32(%ebp),%xmm2962pandn %xmm0,%xmm1963pand %xmm6,%xmm0964psrld $4,%xmm1965.byte 102,15,56,0,208966movdqa %xmm7,%xmm3967pxor %xmm1,%xmm0968.byte 102,15,56,0,217969movdqa %xmm7,%xmm4970pxor %xmm2,%xmm3971.byte 102,15,56,0,224972pxor %xmm2,%xmm4973movdqa %xmm7,%xmm2974.byte 102,15,56,0,211975movdqa %xmm7,%xmm3976pxor %xmm0,%xmm2977.byte 102,15,56,0,220978movdqu (%edx),%xmm0979pxor %xmm1,%xmm3980jnz .L003dec_loop981movdqa 96(%ebx),%xmm4982.byte 102,15,56,0,226983pxor %xmm0,%xmm4984movdqa 112(%ebx),%xmm0985movdqa (%ecx),%xmm2986.byte 102,15,56,0,195987pxor %xmm4,%xmm0988.byte 102,15,56,0,194989ret990.size _vpaes_decrypt_core,.-_vpaes_decrypt_core991.type _vpaes_schedule_core,@function992.align 16993_vpaes_schedule_core:994#ifdef __CET__995996.byte 243,15,30,251997#endif998999addl (%esp),%ebp1000movdqu (%esi),%xmm01001movdqa 320(%ebp),%xmm21002movdqa %xmm0,%xmm31003leal (%ebp),%ebx1004movdqa %xmm2,4(%esp)1005call _vpaes_schedule_transform1006movdqa %xmm0,%xmm71007testl %edi,%edi1008jnz .L004schedule_am_decrypting1009movdqu %xmm0,(%edx)1010jmp .L005schedule_go1011.L004schedule_am_decrypting:1012movdqa 256(%ebp,%ecx,1),%xmm11013.byte 102,15,56,0,2171014movdqu %xmm3,(%edx)1015xorl $48,%ecx1016.L005schedule_go:1017cmpl $192,%eax1018ja .L006schedule_2561019je .L007schedule_1921020.L008schedule_128:1021movl $10,%eax1022.L009loop_schedule_128:1023call _vpaes_schedule_round1024decl %eax1025jz .L010schedule_mangle_last1026call _vpaes_schedule_mangle1027jmp .L009loop_schedule_1281028.align 161029.L007schedule_192:1030movdqu 8(%esi),%xmm01031call _vpaes_schedule_transform1032movdqa %xmm0,%xmm61033pxor %xmm4,%xmm41034movhlps %xmm4,%xmm61035movl $4,%eax1036.L011loop_schedule_192:1037call _vpaes_schedule_round1038.byte 102,15,58,15,198,81039call _vpaes_schedule_mangle1040call _vpaes_schedule_192_smear1041call _vpaes_schedule_mangle1042call _vpaes_schedule_round1043decl %eax1044jz .L010schedule_mangle_last1045call _vpaes_schedule_mangle1046call _vpaes_schedule_192_smear1047jmp .L011loop_schedule_1921048.align 161049.L006schedule_256:1050movdqu 16(%esi),%xmm01051call _vpaes_schedule_transform1052movl $7,%eax1053.L012loop_schedule_256:1054call _vpaes_schedule_mangle1055movdqa %xmm0,%xmm61056call _vpaes_schedule_round1057decl %eax1058jz .L010schedule_mangle_last1059call _vpaes_schedule_mangle1060pshufd $255,%xmm0,%xmm01061movdqa %xmm7,20(%esp)1062movdqa %xmm6,%xmm71063call .L_vpaes_schedule_low_round1064movdqa 20(%esp),%xmm71065jmp .L012loop_schedule_2561066.align 161067.L010schedule_mangle_last:1068leal 384(%ebp),%ebx1069testl %edi,%edi1070jnz .L013schedule_mangle_last_dec1071movdqa 256(%ebp,%ecx,1),%xmm11072.byte 102,15,56,0,1931073leal 352(%ebp),%ebx1074addl $32,%edx1075.L013schedule_mangle_last_dec:1076addl $-16,%edx1077pxor 336(%ebp),%xmm01078call _vpaes_schedule_transform1079movdqu %xmm0,(%edx)1080pxor %xmm0,%xmm01081pxor %xmm1,%xmm11082pxor %xmm2,%xmm21083pxor %xmm3,%xmm31084pxor %xmm4,%xmm41085pxor %xmm5,%xmm51086pxor %xmm6,%xmm61087pxor %xmm7,%xmm71088ret1089.size _vpaes_schedule_core,.-_vpaes_schedule_core1090.type _vpaes_schedule_192_smear,@function1091.align 161092_vpaes_schedule_192_smear:1093#ifdef __CET__10941095.byte 243,15,30,2511096#endif10971098pshufd $128,%xmm6,%xmm11099pshufd $254,%xmm7,%xmm01100pxor %xmm1,%xmm61101pxor %xmm1,%xmm11102pxor %xmm0,%xmm61103movdqa %xmm6,%xmm01104movhlps %xmm1,%xmm61105ret1106.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear1107.type _vpaes_schedule_round,@function1108.align 161109_vpaes_schedule_round:1110#ifdef __CET__11111112.byte 243,15,30,2511113#endif11141115movdqa 8(%esp),%xmm21116pxor %xmm1,%xmm11117.byte 102,15,58,15,202,151118.byte 102,15,58,15,210,151119pxor %xmm1,%xmm71120pshufd $255,%xmm0,%xmm01121.byte 102,15,58,15,192,11122movdqa %xmm2,8(%esp)1123.L_vpaes_schedule_low_round:1124movdqa %xmm7,%xmm11125pslldq $4,%xmm71126pxor %xmm1,%xmm71127movdqa %xmm7,%xmm11128pslldq $8,%xmm71129pxor %xmm1,%xmm71130pxor 336(%ebp),%xmm71131movdqa -16(%ebp),%xmm41132movdqa -48(%ebp),%xmm51133movdqa %xmm4,%xmm11134pandn %xmm0,%xmm11135psrld $4,%xmm11136pand %xmm4,%xmm01137movdqa -32(%ebp),%xmm21138.byte 102,15,56,0,2081139pxor %xmm1,%xmm01140movdqa %xmm5,%xmm31141.byte 102,15,56,0,2171142pxor %xmm2,%xmm31143movdqa %xmm5,%xmm41144.byte 102,15,56,0,2241145pxor %xmm2,%xmm41146movdqa %xmm5,%xmm21147.byte 102,15,56,0,2111148pxor %xmm0,%xmm21149movdqa %xmm5,%xmm31150.byte 102,15,56,0,2201151pxor %xmm1,%xmm31152movdqa 32(%ebp),%xmm41153.byte 102,15,56,0,2261154movdqa 48(%ebp),%xmm01155.byte 102,15,56,0,1951156pxor %xmm4,%xmm01157pxor %xmm7,%xmm01158movdqa %xmm0,%xmm71159ret1160.size _vpaes_schedule_round,.-_vpaes_schedule_round1161.type _vpaes_schedule_transform,@function1162.align 161163_vpaes_schedule_transform:1164#ifdef __CET__11651166.byte 243,15,30,2511167#endif11681169movdqa -16(%ebp),%xmm21170movdqa %xmm2,%xmm11171pandn %xmm0,%xmm11172psrld $4,%xmm11173pand %xmm2,%xmm01174movdqa (%ebx),%xmm21175.byte 102,15,56,0,2081176movdqa 16(%ebx),%xmm01177.byte 102,15,56,0,1931178pxor %xmm2,%xmm01179ret1180.size _vpaes_schedule_transform,.-_vpaes_schedule_transform1181.type _vpaes_schedule_mangle,@function1182.align 161183_vpaes_schedule_mangle:1184#ifdef __CET__11851186.byte 243,15,30,2511187#endif11881189movdqa %xmm0,%xmm41190movdqa 128(%ebp),%xmm51191testl %edi,%edi1192jnz .L014schedule_mangle_dec1193addl $16,%edx1194pxor 336(%ebp),%xmm41195.byte 102,15,56,0,2291196movdqa %xmm4,%xmm31197.byte 102,15,56,0,2291198pxor %xmm4,%xmm31199.byte 102,15,56,0,2291200pxor %xmm4,%xmm31201jmp .L015schedule_mangle_both1202.align 161203.L014schedule_mangle_dec:1204movdqa -16(%ebp),%xmm21205leal 416(%ebp),%esi1206movdqa %xmm2,%xmm11207pandn %xmm4,%xmm11208psrld $4,%xmm11209pand %xmm2,%xmm41210movdqa (%esi),%xmm21211.byte 102,15,56,0,2121212movdqa 16(%esi),%xmm31213.byte 102,15,56,0,2171214pxor %xmm2,%xmm31215.byte 102,15,56,0,2211216movdqa 32(%esi),%xmm21217.byte 102,15,56,0,2121218pxor %xmm3,%xmm21219movdqa 48(%esi),%xmm31220.byte 102,15,56,0,2171221pxor %xmm2,%xmm31222.byte 102,15,56,0,2211223movdqa 64(%esi),%xmm21224.byte 102,15,56,0,2121225pxor %xmm3,%xmm21226movdqa 80(%esi),%xmm31227.byte 102,15,56,0,2171228pxor %xmm2,%xmm31229.byte 102,15,56,0,2211230movdqa 96(%esi),%xmm21231.byte 102,15,56,0,2121232pxor %xmm3,%xmm21233movdqa 112(%esi),%xmm31234.byte 102,15,56,0,2171235pxor %xmm2,%xmm31236addl $-16,%edx1237.L015schedule_mangle_both:1238movdqa 256(%ebp,%ecx,1),%xmm11239.byte 102,15,56,0,2171240addl $-16,%ecx1241andl $48,%ecx1242movdqu %xmm3,(%edx)1243ret1244.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle1245.globl vpaes_set_encrypt_key1246.type vpaes_set_encrypt_key,@function1247.align 161248vpaes_set_encrypt_key:1249.L_vpaes_set_encrypt_key_begin:1250#ifdef __CET__12511252.byte 243,15,30,2511253#endif12541255pushl %ebp1256pushl %ebx1257pushl %esi1258pushl %edi1259movl 20(%esp),%esi1260leal -56(%esp),%ebx1261movl 24(%esp),%eax1262andl $-16,%ebx1263movl 28(%esp),%edx1264xchgl %esp,%ebx1265movl %ebx,48(%esp)1266movl %eax,%ebx1267shrl $5,%ebx1268addl $5,%ebx1269movl %ebx,240(%edx)1270movl $48,%ecx1271movl $0,%edi1272leal .L_vpaes_consts+0x30-.L016pic_point,%ebp1273call _vpaes_schedule_core1274.L016pic_point:1275movl 48(%esp),%esp1276xorl %eax,%eax1277popl %edi1278popl %esi1279popl %ebx1280popl %ebp1281ret1282.size vpaes_set_encrypt_key,.-.L_vpaes_set_encrypt_key_begin1283.globl vpaes_set_decrypt_key1284.type vpaes_set_decrypt_key,@function1285.align 161286vpaes_set_decrypt_key:1287.L_vpaes_set_decrypt_key_begin:1288#ifdef __CET__12891290.byte 243,15,30,2511291#endif12921293pushl %ebp1294pushl %ebx1295pushl %esi1296pushl %edi1297movl 20(%esp),%esi1298leal -56(%esp),%ebx1299movl 24(%esp),%eax1300andl $-16,%ebx1301movl 28(%esp),%edx1302xchgl %esp,%ebx1303movl %ebx,48(%esp)1304movl %eax,%ebx1305shrl $5,%ebx1306addl $5,%ebx1307movl %ebx,240(%edx)1308shll $4,%ebx1309leal 16(%edx,%ebx,1),%edx1310movl $1,%edi1311movl %eax,%ecx1312shrl $1,%ecx1313andl $32,%ecx1314xorl $32,%ecx1315leal .L_vpaes_consts+0x30-.L017pic_point,%ebp1316call _vpaes_schedule_core1317.L017pic_point:1318movl 48(%esp),%esp1319xorl %eax,%eax1320popl %edi1321popl %esi1322popl %ebx1323popl %ebp1324ret1325.size vpaes_set_decrypt_key,.-.L_vpaes_set_decrypt_key_begin1326.globl vpaes_encrypt1327.type vpaes_encrypt,@function1328.align 161329vpaes_encrypt:1330.L_vpaes_encrypt_begin:1331#ifdef __CET__13321333.byte 243,15,30,2511334#endif13351336pushl %ebp1337pushl %ebx1338pushl %esi1339pushl %edi1340leal .L_vpaes_consts+0x30-.L018pic_point,%ebp1341call _vpaes_preheat1342.L018pic_point:1343movl 20(%esp),%esi1344leal -56(%esp),%ebx1345movl 24(%esp),%edi1346andl $-16,%ebx1347movl 28(%esp),%edx1348xchgl %esp,%ebx1349movl %ebx,48(%esp)1350movdqu (%esi),%xmm01351call _vpaes_encrypt_core1352movdqu %xmm0,(%edi)1353movl 48(%esp),%esp1354popl %edi1355popl %esi1356popl %ebx1357popl %ebp1358ret1359.size vpaes_encrypt,.-.L_vpaes_encrypt_begin1360.globl vpaes_decrypt1361.type vpaes_decrypt,@function1362.align 161363vpaes_decrypt:1364.L_vpaes_decrypt_begin:1365#ifdef __CET__13661367.byte 243,15,30,2511368#endif13691370pushl %ebp1371pushl %ebx1372pushl %esi1373pushl %edi1374leal .L_vpaes_consts+0x30-.L019pic_point,%ebp1375call _vpaes_preheat1376.L019pic_point:1377movl 20(%esp),%esi1378leal -56(%esp),%ebx1379movl 24(%esp),%edi1380andl $-16,%ebx1381movl 28(%esp),%edx1382xchgl %esp,%ebx1383movl %ebx,48(%esp)1384movdqu (%esi),%xmm01385call _vpaes_decrypt_core1386movdqu %xmm0,(%edi)1387movl 48(%esp),%esp1388popl %edi1389popl %esi1390popl %ebx1391popl %ebp1392ret1393.size vpaes_decrypt,.-.L_vpaes_decrypt_begin1394.globl vpaes_cbc_encrypt1395.type vpaes_cbc_encrypt,@function1396.align 161397vpaes_cbc_encrypt:1398.L_vpaes_cbc_encrypt_begin:1399#ifdef __CET__14001401.byte 243,15,30,2511402#endif14031404pushl %ebp1405pushl %ebx1406pushl %esi1407pushl %edi1408movl 20(%esp),%esi1409movl 24(%esp),%edi1410movl 28(%esp),%eax1411movl 32(%esp),%edx1412subl $16,%eax1413jc .L020cbc_abort1414leal -56(%esp),%ebx1415movl 36(%esp),%ebp1416andl $-16,%ebx1417movl 40(%esp),%ecx1418xchgl %esp,%ebx1419movdqu (%ebp),%xmm11420subl %esi,%edi1421movl %ebx,48(%esp)1422movl %edi,(%esp)1423movl %edx,4(%esp)1424movl %ebp,8(%esp)1425movl %eax,%edi1426leal .L_vpaes_consts+0x30-.L021pic_point,%ebp1427call _vpaes_preheat1428.L021pic_point:1429cmpl $0,%ecx1430je .L022cbc_dec_loop1431jmp .L023cbc_enc_loop1432.align 161433.L023cbc_enc_loop:1434movdqu (%esi),%xmm01435pxor %xmm1,%xmm01436call _vpaes_encrypt_core1437movl (%esp),%ebx1438movl 4(%esp),%edx1439movdqa %xmm0,%xmm11440movdqu %xmm0,(%ebx,%esi,1)1441leal 16(%esi),%esi1442subl $16,%edi1443jnc .L023cbc_enc_loop1444jmp .L024cbc_done1445.align 161446.L022cbc_dec_loop:1447movdqu (%esi),%xmm01448movdqa %xmm1,16(%esp)1449movdqa %xmm0,32(%esp)1450call _vpaes_decrypt_core1451movl (%esp),%ebx1452movl 4(%esp),%edx1453pxor 16(%esp),%xmm01454movdqa 32(%esp),%xmm11455movdqu %xmm0,(%ebx,%esi,1)1456leal 16(%esi),%esi1457subl $16,%edi1458jnc .L022cbc_dec_loop1459.L024cbc_done:1460movl 8(%esp),%ebx1461movl 48(%esp),%esp1462movdqu %xmm1,(%ebx)1463.L020cbc_abort:1464popl %edi1465popl %esi1466popl %ebx1467popl %ebp1468ret1469.size vpaes_cbc_encrypt,.-.L_vpaes_cbc_encrypt_begin14701471.section ".note.gnu.property", "a"1472.p2align 21473.long 1f - 0f1474.long 4f - 1f1475.long 514760:1477.asciz "GNU"14781:1479.p2align 21480.long 0xc00000021481.long 3f - 2f14822:1483.long 314843:1485.p2align 214864:1487#endif148814891490