Path: blob/main/sys/crypto/openssl/i386/aesni-x86.S
39482 views
/* Do not modify. This file is auto-generated from aesni-x86.pl. */1#ifdef PIC2.text3.globl aesni_encrypt4.type aesni_encrypt,@function5.align 166aesni_encrypt:7.L_aesni_encrypt_begin:8#ifdef __CET__910.byte 243,15,30,25111#endif1213movl 4(%esp),%eax14movl 12(%esp),%edx15movups (%eax),%xmm216movl 240(%edx),%ecx17movl 8(%esp),%eax18movups (%edx),%xmm019movups 16(%edx),%xmm120leal 32(%edx),%edx21xorps %xmm0,%xmm222.L000enc1_loop_1:23.byte 102,15,56,220,20924decl %ecx25movups (%edx),%xmm126leal 16(%edx),%edx27jnz .L000enc1_loop_128.byte 102,15,56,221,20929pxor %xmm0,%xmm030pxor %xmm1,%xmm131movups %xmm2,(%eax)32pxor %xmm2,%xmm233ret34.size aesni_encrypt,.-.L_aesni_encrypt_begin35.globl aesni_decrypt36.type aesni_decrypt,@function37.align 1638aesni_decrypt:39.L_aesni_decrypt_begin:40#ifdef __CET__4142.byte 243,15,30,25143#endif4445movl 4(%esp),%eax46movl 12(%esp),%edx47movups (%eax),%xmm248movl 240(%edx),%ecx49movl 8(%esp),%eax50movups (%edx),%xmm051movups 16(%edx),%xmm152leal 32(%edx),%edx53xorps %xmm0,%xmm254.L001dec1_loop_2:55.byte 102,15,56,222,20956decl %ecx57movups (%edx),%xmm158leal 16(%edx),%edx59jnz .L001dec1_loop_260.byte 102,15,56,223,20961pxor %xmm0,%xmm062pxor %xmm1,%xmm163movups %xmm2,(%eax)64pxor %xmm2,%xmm265ret66.size aesni_decrypt,.-.L_aesni_decrypt_begin67.type _aesni_encrypt2,@function68.align 1669_aesni_encrypt2:70#ifdef __CET__7172.byte 243,15,30,25173#endif7475movups (%edx),%xmm076shll $4,%ecx77movups 16(%edx),%xmm178xorps %xmm0,%xmm279pxor %xmm0,%xmm380movups 32(%edx),%xmm081leal 32(%edx,%ecx,1),%edx82negl %ecx83addl $16,%ecx84.L002enc2_loop:85.byte 102,15,56,220,20986.byte 102,15,56,220,21787movups (%edx,%ecx,1),%xmm188addl $32,%ecx89.byte 102,15,56,220,20890.byte 102,15,56,220,21691movups -16(%edx,%ecx,1),%xmm092jnz .L002enc2_loop93.byte 102,15,56,220,20994.byte 102,15,56,220,21795.byte 102,15,56,221,20896.byte 102,15,56,221,21697ret98.size _aesni_encrypt2,.-_aesni_encrypt299.type _aesni_decrypt2,@function100.align 16101_aesni_decrypt2:102#ifdef __CET__103104.byte 243,15,30,251105#endif106107movups (%edx),%xmm0108shll $4,%ecx109movups 16(%edx),%xmm1110xorps %xmm0,%xmm2111pxor %xmm0,%xmm3112movups 32(%edx),%xmm0113leal 32(%edx,%ecx,1),%edx114negl %ecx115addl $16,%ecx116.L003dec2_loop:117.byte 102,15,56,222,209118.byte 102,15,56,222,217119movups (%edx,%ecx,1),%xmm1120addl $32,%ecx121.byte 102,15,56,222,208122.byte 102,15,56,222,216123movups -16(%edx,%ecx,1),%xmm0124jnz .L003dec2_loop125.byte 102,15,56,222,209126.byte 102,15,56,222,217127.byte 102,15,56,223,208128.byte 102,15,56,223,216129ret130.size _aesni_decrypt2,.-_aesni_decrypt2131.type _aesni_encrypt3,@function132.align 16133_aesni_encrypt3:134#ifdef __CET__135136.byte 243,15,30,251137#endif138139movups (%edx),%xmm0140shll $4,%ecx141movups 16(%edx),%xmm1142xorps %xmm0,%xmm2143pxor %xmm0,%xmm3144pxor %xmm0,%xmm4145movups 32(%edx),%xmm0146leal 32(%edx,%ecx,1),%edx147negl %ecx148addl $16,%ecx149.L004enc3_loop:150.byte 102,15,56,220,209151.byte 102,15,56,220,217152.byte 102,15,56,220,225153movups (%edx,%ecx,1),%xmm1154addl $32,%ecx155.byte 102,15,56,220,208156.byte 102,15,56,220,216157.byte 102,15,56,220,224158movups -16(%edx,%ecx,1),%xmm0159jnz .L004enc3_loop160.byte 102,15,56,220,209161.byte 102,15,56,220,217162.byte 102,15,56,220,225163.byte 102,15,56,221,208164.byte 102,15,56,221,216165.byte 102,15,56,221,224166ret167.size _aesni_encrypt3,.-_aesni_encrypt3168.type _aesni_decrypt3,@function169.align 16170_aesni_decrypt3:171#ifdef __CET__172173.byte 243,15,30,251174#endif175176movups (%edx),%xmm0177shll $4,%ecx178movups 16(%edx),%xmm1179xorps %xmm0,%xmm2180pxor %xmm0,%xmm3181pxor %xmm0,%xmm4182movups 32(%edx),%xmm0183leal 32(%edx,%ecx,1),%edx184negl %ecx185addl $16,%ecx186.L005dec3_loop:187.byte 102,15,56,222,209188.byte 102,15,56,222,217189.byte 102,15,56,222,225190movups (%edx,%ecx,1),%xmm1191addl $32,%ecx192.byte 102,15,56,222,208193.byte 102,15,56,222,216194.byte 102,15,56,222,224195movups -16(%edx,%ecx,1),%xmm0196jnz .L005dec3_loop197.byte 102,15,56,222,209198.byte 102,15,56,222,217199.byte 102,15,56,222,225200.byte 102,15,56,223,208201.byte 102,15,56,223,216202.byte 102,15,56,223,224203ret204.size _aesni_decrypt3,.-_aesni_decrypt3205.type _aesni_encrypt4,@function206.align 16207_aesni_encrypt4:208#ifdef __CET__209210.byte 243,15,30,251211#endif212213movups (%edx),%xmm0214movups 16(%edx),%xmm1215shll $4,%ecx216xorps %xmm0,%xmm2217pxor %xmm0,%xmm3218pxor %xmm0,%xmm4219pxor %xmm0,%xmm5220movups 32(%edx),%xmm0221leal 32(%edx,%ecx,1),%edx222negl %ecx223.byte 15,31,64,0224addl $16,%ecx225.L006enc4_loop:226.byte 102,15,56,220,209227.byte 102,15,56,220,217228.byte 102,15,56,220,225229.byte 102,15,56,220,233230movups (%edx,%ecx,1),%xmm1231addl $32,%ecx232.byte 102,15,56,220,208233.byte 102,15,56,220,216234.byte 102,15,56,220,224235.byte 102,15,56,220,232236movups -16(%edx,%ecx,1),%xmm0237jnz .L006enc4_loop238.byte 102,15,56,220,209239.byte 102,15,56,220,217240.byte 102,15,56,220,225241.byte 102,15,56,220,233242.byte 102,15,56,221,208243.byte 102,15,56,221,216244.byte 102,15,56,221,224245.byte 102,15,56,221,232246ret247.size _aesni_encrypt4,.-_aesni_encrypt4248.type _aesni_decrypt4,@function249.align 16250_aesni_decrypt4:251#ifdef __CET__252253.byte 243,15,30,251254#endif255256movups (%edx),%xmm0257movups 16(%edx),%xmm1258shll $4,%ecx259xorps %xmm0,%xmm2260pxor %xmm0,%xmm3261pxor %xmm0,%xmm4262pxor %xmm0,%xmm5263movups 32(%edx),%xmm0264leal 32(%edx,%ecx,1),%edx265negl %ecx266.byte 15,31,64,0267addl $16,%ecx268.L007dec4_loop:269.byte 102,15,56,222,209270.byte 102,15,56,222,217271.byte 102,15,56,222,225272.byte 102,15,56,222,233273movups (%edx,%ecx,1),%xmm1274addl $32,%ecx275.byte 102,15,56,222,208276.byte 102,15,56,222,216277.byte 102,15,56,222,224278.byte 102,15,56,222,232279movups -16(%edx,%ecx,1),%xmm0280jnz .L007dec4_loop281.byte 102,15,56,222,209282.byte 102,15,56,222,217283.byte 102,15,56,222,225284.byte 102,15,56,222,233285.byte 102,15,56,223,208286.byte 102,15,56,223,216287.byte 102,15,56,223,224288.byte 102,15,56,223,232289ret290.size _aesni_decrypt4,.-_aesni_decrypt4291.type _aesni_encrypt6,@function292.align 16293_aesni_encrypt6:294#ifdef __CET__295296.byte 243,15,30,251297#endif298299movups (%edx),%xmm0300shll $4,%ecx301movups 16(%edx),%xmm1302xorps %xmm0,%xmm2303pxor %xmm0,%xmm3304pxor %xmm0,%xmm4305.byte 102,15,56,220,209306pxor %xmm0,%xmm5307pxor %xmm0,%xmm6308.byte 102,15,56,220,217309leal 32(%edx,%ecx,1),%edx310negl %ecx311.byte 102,15,56,220,225312pxor %xmm0,%xmm7313movups (%edx,%ecx,1),%xmm0314addl $16,%ecx315jmp .L008_aesni_encrypt6_inner316.align 16317.L009enc6_loop:318.byte 102,15,56,220,209319.byte 102,15,56,220,217320.byte 102,15,56,220,225321.L008_aesni_encrypt6_inner:322.byte 102,15,56,220,233323.byte 102,15,56,220,241324.byte 102,15,56,220,249325.L_aesni_encrypt6_enter:326movups (%edx,%ecx,1),%xmm1327addl $32,%ecx328.byte 102,15,56,220,208329.byte 102,15,56,220,216330.byte 102,15,56,220,224331.byte 102,15,56,220,232332.byte 102,15,56,220,240333.byte 102,15,56,220,248334movups -16(%edx,%ecx,1),%xmm0335jnz .L009enc6_loop336.byte 102,15,56,220,209337.byte 102,15,56,220,217338.byte 102,15,56,220,225339.byte 102,15,56,220,233340.byte 102,15,56,220,241341.byte 102,15,56,220,249342.byte 102,15,56,221,208343.byte 102,15,56,221,216344.byte 102,15,56,221,224345.byte 102,15,56,221,232346.byte 102,15,56,221,240347.byte 102,15,56,221,248348ret349.size _aesni_encrypt6,.-_aesni_encrypt6350.type _aesni_decrypt6,@function351.align 16352_aesni_decrypt6:353#ifdef __CET__354355.byte 243,15,30,251356#endif357358movups (%edx),%xmm0359shll $4,%ecx360movups 16(%edx),%xmm1361xorps %xmm0,%xmm2362pxor %xmm0,%xmm3363pxor %xmm0,%xmm4364.byte 102,15,56,222,209365pxor %xmm0,%xmm5366pxor %xmm0,%xmm6367.byte 102,15,56,222,217368leal 32(%edx,%ecx,1),%edx369negl %ecx370.byte 102,15,56,222,225371pxor %xmm0,%xmm7372movups (%edx,%ecx,1),%xmm0373addl $16,%ecx374jmp .L010_aesni_decrypt6_inner375.align 16376.L011dec6_loop:377.byte 102,15,56,222,209378.byte 102,15,56,222,217379.byte 102,15,56,222,225380.L010_aesni_decrypt6_inner:381.byte 102,15,56,222,233382.byte 102,15,56,222,241383.byte 102,15,56,222,249384.L_aesni_decrypt6_enter:385movups (%edx,%ecx,1),%xmm1386addl $32,%ecx387.byte 102,15,56,222,208388.byte 102,15,56,222,216389.byte 102,15,56,222,224390.byte 102,15,56,222,232391.byte 102,15,56,222,240392.byte 102,15,56,222,248393movups -16(%edx,%ecx,1),%xmm0394jnz .L011dec6_loop395.byte 102,15,56,222,209396.byte 102,15,56,222,217397.byte 102,15,56,222,225398.byte 102,15,56,222,233399.byte 102,15,56,222,241400.byte 102,15,56,222,249401.byte 102,15,56,223,208402.byte 102,15,56,223,216403.byte 102,15,56,223,224404.byte 102,15,56,223,232405.byte 102,15,56,223,240406.byte 102,15,56,223,248407ret408.size _aesni_decrypt6,.-_aesni_decrypt6409.globl aesni_ecb_encrypt410.type aesni_ecb_encrypt,@function411.align 16412aesni_ecb_encrypt:413.L_aesni_ecb_encrypt_begin:414#ifdef __CET__415416.byte 243,15,30,251417#endif418419pushl %ebp420pushl %ebx421pushl %esi422pushl %edi423movl 20(%esp),%esi424movl 24(%esp),%edi425movl 28(%esp),%eax426movl 32(%esp),%edx427movl 36(%esp),%ebx428andl $-16,%eax429jz .L012ecb_ret430movl 240(%edx),%ecx431testl %ebx,%ebx432jz .L013ecb_decrypt433movl %edx,%ebp434movl %ecx,%ebx435cmpl $96,%eax436jb .L014ecb_enc_tail437movdqu (%esi),%xmm2438movdqu 16(%esi),%xmm3439movdqu 32(%esi),%xmm4440movdqu 48(%esi),%xmm5441movdqu 64(%esi),%xmm6442movdqu 80(%esi),%xmm7443leal 96(%esi),%esi444subl $96,%eax445jmp .L015ecb_enc_loop6_enter446.align 16447.L016ecb_enc_loop6:448movups %xmm2,(%edi)449movdqu (%esi),%xmm2450movups %xmm3,16(%edi)451movdqu 16(%esi),%xmm3452movups %xmm4,32(%edi)453movdqu 32(%esi),%xmm4454movups %xmm5,48(%edi)455movdqu 48(%esi),%xmm5456movups %xmm6,64(%edi)457movdqu 64(%esi),%xmm6458movups %xmm7,80(%edi)459leal 96(%edi),%edi460movdqu 80(%esi),%xmm7461leal 96(%esi),%esi462.L015ecb_enc_loop6_enter:463call _aesni_encrypt6464movl %ebp,%edx465movl %ebx,%ecx466subl $96,%eax467jnc .L016ecb_enc_loop6468movups %xmm2,(%edi)469movups %xmm3,16(%edi)470movups %xmm4,32(%edi)471movups %xmm5,48(%edi)472movups %xmm6,64(%edi)473movups %xmm7,80(%edi)474leal 96(%edi),%edi475addl $96,%eax476jz .L012ecb_ret477.L014ecb_enc_tail:478movups (%esi),%xmm2479cmpl $32,%eax480jb .L017ecb_enc_one481movups 16(%esi),%xmm3482je .L018ecb_enc_two483movups 32(%esi),%xmm4484cmpl $64,%eax485jb .L019ecb_enc_three486movups 48(%esi),%xmm5487je .L020ecb_enc_four488movups 64(%esi),%xmm6489xorps %xmm7,%xmm7490call _aesni_encrypt6491movups %xmm2,(%edi)492movups %xmm3,16(%edi)493movups %xmm4,32(%edi)494movups %xmm5,48(%edi)495movups %xmm6,64(%edi)496jmp .L012ecb_ret497.align 16498.L017ecb_enc_one:499movups (%edx),%xmm0500movups 16(%edx),%xmm1501leal 32(%edx),%edx502xorps %xmm0,%xmm2503.L021enc1_loop_3:504.byte 102,15,56,220,209505decl %ecx506movups (%edx),%xmm1507leal 16(%edx),%edx508jnz .L021enc1_loop_3509.byte 102,15,56,221,209510movups %xmm2,(%edi)511jmp .L012ecb_ret512.align 16513.L018ecb_enc_two:514call _aesni_encrypt2515movups %xmm2,(%edi)516movups %xmm3,16(%edi)517jmp .L012ecb_ret518.align 16519.L019ecb_enc_three:520call _aesni_encrypt3521movups %xmm2,(%edi)522movups %xmm3,16(%edi)523movups %xmm4,32(%edi)524jmp .L012ecb_ret525.align 16526.L020ecb_enc_four:527call _aesni_encrypt4528movups %xmm2,(%edi)529movups %xmm3,16(%edi)530movups %xmm4,32(%edi)531movups %xmm5,48(%edi)532jmp .L012ecb_ret533.align 16534.L013ecb_decrypt:535movl %edx,%ebp536movl %ecx,%ebx537cmpl $96,%eax538jb .L022ecb_dec_tail539movdqu (%esi),%xmm2540movdqu 16(%esi),%xmm3541movdqu 32(%esi),%xmm4542movdqu 48(%esi),%xmm5543movdqu 64(%esi),%xmm6544movdqu 80(%esi),%xmm7545leal 96(%esi),%esi546subl $96,%eax547jmp .L023ecb_dec_loop6_enter548.align 16549.L024ecb_dec_loop6:550movups %xmm2,(%edi)551movdqu (%esi),%xmm2552movups %xmm3,16(%edi)553movdqu 16(%esi),%xmm3554movups %xmm4,32(%edi)555movdqu 32(%esi),%xmm4556movups %xmm5,48(%edi)557movdqu 48(%esi),%xmm5558movups %xmm6,64(%edi)559movdqu 64(%esi),%xmm6560movups %xmm7,80(%edi)561leal 96(%edi),%edi562movdqu 80(%esi),%xmm7563leal 96(%esi),%esi564.L023ecb_dec_loop6_enter:565call _aesni_decrypt6566movl %ebp,%edx567movl %ebx,%ecx568subl $96,%eax569jnc .L024ecb_dec_loop6570movups %xmm2,(%edi)571movups %xmm3,16(%edi)572movups %xmm4,32(%edi)573movups %xmm5,48(%edi)574movups %xmm6,64(%edi)575movups %xmm7,80(%edi)576leal 96(%edi),%edi577addl $96,%eax578jz .L012ecb_ret579.L022ecb_dec_tail:580movups (%esi),%xmm2581cmpl $32,%eax582jb .L025ecb_dec_one583movups 16(%esi),%xmm3584je .L026ecb_dec_two585movups 32(%esi),%xmm4586cmpl $64,%eax587jb .L027ecb_dec_three588movups 48(%esi),%xmm5589je .L028ecb_dec_four590movups 64(%esi),%xmm6591xorps %xmm7,%xmm7592call _aesni_decrypt6593movups %xmm2,(%edi)594movups %xmm3,16(%edi)595movups %xmm4,32(%edi)596movups %xmm5,48(%edi)597movups %xmm6,64(%edi)598jmp .L012ecb_ret599.align 16600.L025ecb_dec_one:601movups (%edx),%xmm0602movups 16(%edx),%xmm1603leal 32(%edx),%edx604xorps %xmm0,%xmm2605.L029dec1_loop_4:606.byte 102,15,56,222,209607decl %ecx608movups (%edx),%xmm1609leal 16(%edx),%edx610jnz .L029dec1_loop_4611.byte 102,15,56,223,209612movups %xmm2,(%edi)613jmp .L012ecb_ret614.align 16615.L026ecb_dec_two:616call _aesni_decrypt2617movups %xmm2,(%edi)618movups %xmm3,16(%edi)619jmp .L012ecb_ret620.align 16621.L027ecb_dec_three:622call _aesni_decrypt3623movups %xmm2,(%edi)624movups %xmm3,16(%edi)625movups %xmm4,32(%edi)626jmp .L012ecb_ret627.align 16628.L028ecb_dec_four:629call _aesni_decrypt4630movups %xmm2,(%edi)631movups %xmm3,16(%edi)632movups %xmm4,32(%edi)633movups %xmm5,48(%edi)634.L012ecb_ret:635pxor %xmm0,%xmm0636pxor %xmm1,%xmm1637pxor %xmm2,%xmm2638pxor %xmm3,%xmm3639pxor %xmm4,%xmm4640pxor %xmm5,%xmm5641pxor %xmm6,%xmm6642pxor %xmm7,%xmm7643popl %edi644popl %esi645popl %ebx646popl %ebp647ret648.size aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin649.globl aesni_ccm64_encrypt_blocks650.type aesni_ccm64_encrypt_blocks,@function651.align 16652aesni_ccm64_encrypt_blocks:653.L_aesni_ccm64_encrypt_blocks_begin:654#ifdef __CET__655656.byte 243,15,30,251657#endif658659pushl %ebp660pushl %ebx661pushl %esi662pushl %edi663movl 20(%esp),%esi664movl 24(%esp),%edi665movl 28(%esp),%eax666movl 32(%esp),%edx667movl 36(%esp),%ebx668movl 40(%esp),%ecx669movl %esp,%ebp670subl $60,%esp671andl $-16,%esp672movl %ebp,48(%esp)673movdqu (%ebx),%xmm7674movdqu (%ecx),%xmm3675movl 240(%edx),%ecx676movl $202182159,(%esp)677movl $134810123,4(%esp)678movl $67438087,8(%esp)679movl $66051,12(%esp)680movl $1,%ebx681xorl %ebp,%ebp682movl %ebx,16(%esp)683movl %ebp,20(%esp)684movl %ebp,24(%esp)685movl %ebp,28(%esp)686shll $4,%ecx687movl $16,%ebx688leal (%edx),%ebp689movdqa (%esp),%xmm5690movdqa %xmm7,%xmm2691leal 32(%edx,%ecx,1),%edx692subl %ecx,%ebx693.byte 102,15,56,0,253694.L030ccm64_enc_outer:695movups (%ebp),%xmm0696movl %ebx,%ecx697movups (%esi),%xmm6698xorps %xmm0,%xmm2699movups 16(%ebp),%xmm1700xorps %xmm6,%xmm0701xorps %xmm0,%xmm3702movups 32(%ebp),%xmm0703.L031ccm64_enc2_loop:704.byte 102,15,56,220,209705.byte 102,15,56,220,217706movups (%edx,%ecx,1),%xmm1707addl $32,%ecx708.byte 102,15,56,220,208709.byte 102,15,56,220,216710movups -16(%edx,%ecx,1),%xmm0711jnz .L031ccm64_enc2_loop712.byte 102,15,56,220,209713.byte 102,15,56,220,217714paddq 16(%esp),%xmm7715decl %eax716.byte 102,15,56,221,208717.byte 102,15,56,221,216718leal 16(%esi),%esi719xorps %xmm2,%xmm6720movdqa %xmm7,%xmm2721movups %xmm6,(%edi)722.byte 102,15,56,0,213723leal 16(%edi),%edi724jnz .L030ccm64_enc_outer725movl 48(%esp),%esp726movl 40(%esp),%edi727movups %xmm3,(%edi)728pxor %xmm0,%xmm0729pxor %xmm1,%xmm1730pxor %xmm2,%xmm2731pxor %xmm3,%xmm3732pxor %xmm4,%xmm4733pxor %xmm5,%xmm5734pxor %xmm6,%xmm6735pxor %xmm7,%xmm7736popl %edi737popl %esi738popl %ebx739popl %ebp740ret741.size aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin742.globl aesni_ccm64_decrypt_blocks743.type aesni_ccm64_decrypt_blocks,@function744.align 16745aesni_ccm64_decrypt_blocks:746.L_aesni_ccm64_decrypt_blocks_begin:747#ifdef __CET__748749.byte 243,15,30,251750#endif751752pushl %ebp753pushl %ebx754pushl %esi755pushl %edi756movl 20(%esp),%esi757movl 24(%esp),%edi758movl 28(%esp),%eax759movl 32(%esp),%edx760movl 36(%esp),%ebx761movl 40(%esp),%ecx762movl %esp,%ebp763subl $60,%esp764andl $-16,%esp765movl %ebp,48(%esp)766movdqu (%ebx),%xmm7767movdqu (%ecx),%xmm3768movl 240(%edx),%ecx769movl $202182159,(%esp)770movl $134810123,4(%esp)771movl $67438087,8(%esp)772movl $66051,12(%esp)773movl $1,%ebx774xorl %ebp,%ebp775movl %ebx,16(%esp)776movl %ebp,20(%esp)777movl %ebp,24(%esp)778movl %ebp,28(%esp)779movdqa (%esp),%xmm5780movdqa %xmm7,%xmm2781movl %edx,%ebp782movl %ecx,%ebx783.byte 102,15,56,0,253784movups (%edx),%xmm0785movups 16(%edx),%xmm1786leal 32(%edx),%edx787xorps %xmm0,%xmm2788.L032enc1_loop_5:789.byte 102,15,56,220,209790decl %ecx791movups (%edx),%xmm1792leal 16(%edx),%edx793jnz .L032enc1_loop_5794.byte 102,15,56,221,209795shll $4,%ebx796movl $16,%ecx797movups (%esi),%xmm6798paddq 16(%esp),%xmm7799leal 16(%esi),%esi800subl %ebx,%ecx801leal 32(%ebp,%ebx,1),%edx802movl %ecx,%ebx803jmp .L033ccm64_dec_outer804.align 16805.L033ccm64_dec_outer:806xorps %xmm2,%xmm6807movdqa %xmm7,%xmm2808movups %xmm6,(%edi)809leal 16(%edi),%edi810.byte 102,15,56,0,213811subl $1,%eax812jz .L034ccm64_dec_break813movups (%ebp),%xmm0814movl %ebx,%ecx815movups 16(%ebp),%xmm1816xorps %xmm0,%xmm6817xorps %xmm0,%xmm2818xorps %xmm6,%xmm3819movups 32(%ebp),%xmm0820.L035ccm64_dec2_loop:821.byte 102,15,56,220,209822.byte 102,15,56,220,217823movups (%edx,%ecx,1),%xmm1824addl $32,%ecx825.byte 102,15,56,220,208826.byte 102,15,56,220,216827movups -16(%edx,%ecx,1),%xmm0828jnz .L035ccm64_dec2_loop829movups (%esi),%xmm6830paddq 16(%esp),%xmm7831.byte 102,15,56,220,209832.byte 102,15,56,220,217833.byte 102,15,56,221,208834.byte 102,15,56,221,216835leal 16(%esi),%esi836jmp .L033ccm64_dec_outer837.align 16838.L034ccm64_dec_break:839movl 240(%ebp),%ecx840movl %ebp,%edx841movups (%edx),%xmm0842movups 16(%edx),%xmm1843xorps %xmm0,%xmm6844leal 32(%edx),%edx845xorps %xmm6,%xmm3846.L036enc1_loop_6:847.byte 102,15,56,220,217848decl %ecx849movups (%edx),%xmm1850leal 16(%edx),%edx851jnz .L036enc1_loop_6852.byte 102,15,56,221,217853movl 48(%esp),%esp854movl 40(%esp),%edi855movups %xmm3,(%edi)856pxor %xmm0,%xmm0857pxor %xmm1,%xmm1858pxor %xmm2,%xmm2859pxor %xmm3,%xmm3860pxor %xmm4,%xmm4861pxor %xmm5,%xmm5862pxor %xmm6,%xmm6863pxor %xmm7,%xmm7864popl %edi865popl %esi866popl %ebx867popl %ebp868ret869.size aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin870.globl aesni_ctr32_encrypt_blocks871.type aesni_ctr32_encrypt_blocks,@function872.align 16873aesni_ctr32_encrypt_blocks:874.L_aesni_ctr32_encrypt_blocks_begin:875#ifdef __CET__876877.byte 243,15,30,251878#endif879880pushl %ebp881pushl %ebx882pushl %esi883pushl %edi884movl 20(%esp),%esi885movl 24(%esp),%edi886movl 28(%esp),%eax887movl 32(%esp),%edx888movl 36(%esp),%ebx889movl %esp,%ebp890subl $88,%esp891andl $-16,%esp892movl %ebp,80(%esp)893cmpl $1,%eax894je .L037ctr32_one_shortcut895movdqu (%ebx),%xmm7896movl $202182159,(%esp)897movl $134810123,4(%esp)898movl $67438087,8(%esp)899movl $66051,12(%esp)900movl $6,%ecx901xorl %ebp,%ebp902movl %ecx,16(%esp)903movl %ecx,20(%esp)904movl %ecx,24(%esp)905movl %ebp,28(%esp)906.byte 102,15,58,22,251,3907.byte 102,15,58,34,253,3908movl 240(%edx),%ecx909bswap %ebx910pxor %xmm0,%xmm0911pxor %xmm1,%xmm1912movdqa (%esp),%xmm2913.byte 102,15,58,34,195,0914leal 3(%ebx),%ebp915.byte 102,15,58,34,205,0916incl %ebx917.byte 102,15,58,34,195,1918incl %ebp919.byte 102,15,58,34,205,1920incl %ebx921.byte 102,15,58,34,195,2922incl %ebp923.byte 102,15,58,34,205,2924movdqa %xmm0,48(%esp)925.byte 102,15,56,0,194926movdqu (%edx),%xmm6927movdqa %xmm1,64(%esp)928.byte 102,15,56,0,202929pshufd $192,%xmm0,%xmm2930pshufd $128,%xmm0,%xmm3931cmpl $6,%eax932jb .L038ctr32_tail933pxor %xmm6,%xmm7934shll $4,%ecx935movl $16,%ebx936movdqa %xmm7,32(%esp)937movl %edx,%ebp938subl %ecx,%ebx939leal 32(%edx,%ecx,1),%edx940subl $6,%eax941jmp .L039ctr32_loop6942.align 16943.L039ctr32_loop6:944pshufd $64,%xmm0,%xmm4945movdqa 32(%esp),%xmm0946pshufd $192,%xmm1,%xmm5947pxor %xmm0,%xmm2948pshufd $128,%xmm1,%xmm6949pxor %xmm0,%xmm3950pshufd $64,%xmm1,%xmm7951movups 16(%ebp),%xmm1952pxor %xmm0,%xmm4953pxor %xmm0,%xmm5954.byte 102,15,56,220,209955pxor %xmm0,%xmm6956pxor %xmm0,%xmm7957.byte 102,15,56,220,217958movups 32(%ebp),%xmm0959movl %ebx,%ecx960.byte 102,15,56,220,225961.byte 102,15,56,220,233962.byte 102,15,56,220,241963.byte 102,15,56,220,249964call .L_aesni_encrypt6_enter965movups (%esi),%xmm1966movups 16(%esi),%xmm0967xorps %xmm1,%xmm2968movups 32(%esi),%xmm1969xorps %xmm0,%xmm3970movups %xmm2,(%edi)971movdqa 16(%esp),%xmm0972xorps %xmm1,%xmm4973movdqa 64(%esp),%xmm1974movups %xmm3,16(%edi)975movups %xmm4,32(%edi)976paddd %xmm0,%xmm1977paddd 48(%esp),%xmm0978movdqa (%esp),%xmm2979movups 48(%esi),%xmm3980movups 64(%esi),%xmm4981xorps %xmm3,%xmm5982movups 80(%esi),%xmm3983leal 96(%esi),%esi984movdqa %xmm0,48(%esp)985.byte 102,15,56,0,194986xorps %xmm4,%xmm6987movups %xmm5,48(%edi)988xorps %xmm3,%xmm7989movdqa %xmm1,64(%esp)990.byte 102,15,56,0,202991movups %xmm6,64(%edi)992pshufd $192,%xmm0,%xmm2993movups %xmm7,80(%edi)994leal 96(%edi),%edi995pshufd $128,%xmm0,%xmm3996subl $6,%eax997jnc .L039ctr32_loop6998addl $6,%eax999jz .L040ctr32_ret1000movdqu (%ebp),%xmm71001movl %ebp,%edx1002pxor 32(%esp),%xmm71003movl 240(%ebp),%ecx1004.L038ctr32_tail:1005por %xmm7,%xmm21006cmpl $2,%eax1007jb .L041ctr32_one1008pshufd $64,%xmm0,%xmm41009por %xmm7,%xmm31010je .L042ctr32_two1011pshufd $192,%xmm1,%xmm51012por %xmm7,%xmm41013cmpl $4,%eax1014jb .L043ctr32_three1015pshufd $128,%xmm1,%xmm61016por %xmm7,%xmm51017je .L044ctr32_four1018por %xmm7,%xmm61019call _aesni_encrypt61020movups (%esi),%xmm11021movups 16(%esi),%xmm01022xorps %xmm1,%xmm21023movups 32(%esi),%xmm11024xorps %xmm0,%xmm31025movups 48(%esi),%xmm01026xorps %xmm1,%xmm41027movups 64(%esi),%xmm11028xorps %xmm0,%xmm51029movups %xmm2,(%edi)1030xorps %xmm1,%xmm61031movups %xmm3,16(%edi)1032movups %xmm4,32(%edi)1033movups %xmm5,48(%edi)1034movups %xmm6,64(%edi)1035jmp .L040ctr32_ret1036.align 161037.L037ctr32_one_shortcut:1038movups (%ebx),%xmm21039movl 240(%edx),%ecx1040.L041ctr32_one:1041movups (%edx),%xmm01042movups 16(%edx),%xmm11043leal 32(%edx),%edx1044xorps %xmm0,%xmm21045.L045enc1_loop_7:1046.byte 102,15,56,220,2091047decl %ecx1048movups (%edx),%xmm11049leal 16(%edx),%edx1050jnz .L045enc1_loop_71051.byte 102,15,56,221,2091052movups (%esi),%xmm61053xorps %xmm2,%xmm61054movups %xmm6,(%edi)1055jmp .L040ctr32_ret1056.align 161057.L042ctr32_two:1058call _aesni_encrypt21059movups (%esi),%xmm51060movups 16(%esi),%xmm61061xorps %xmm5,%xmm21062xorps %xmm6,%xmm31063movups %xmm2,(%edi)1064movups %xmm3,16(%edi)1065jmp .L040ctr32_ret1066.align 161067.L043ctr32_three:1068call _aesni_encrypt31069movups (%esi),%xmm51070movups 16(%esi),%xmm61071xorps %xmm5,%xmm21072movups 32(%esi),%xmm71073xorps %xmm6,%xmm31074movups %xmm2,(%edi)1075xorps %xmm7,%xmm41076movups %xmm3,16(%edi)1077movups %xmm4,32(%edi)1078jmp .L040ctr32_ret1079.align 161080.L044ctr32_four:1081call _aesni_encrypt41082movups (%esi),%xmm61083movups 16(%esi),%xmm71084movups 32(%esi),%xmm11085xorps %xmm6,%xmm21086movups 48(%esi),%xmm01087xorps %xmm7,%xmm31088movups %xmm2,(%edi)1089xorps %xmm1,%xmm41090movups %xmm3,16(%edi)1091xorps %xmm0,%xmm51092movups %xmm4,32(%edi)1093movups %xmm5,48(%edi)1094.L040ctr32_ret:1095pxor %xmm0,%xmm01096pxor %xmm1,%xmm11097pxor %xmm2,%xmm21098pxor %xmm3,%xmm31099pxor %xmm4,%xmm41100movdqa %xmm0,32(%esp)1101pxor %xmm5,%xmm51102movdqa %xmm0,48(%esp)1103pxor %xmm6,%xmm61104movdqa %xmm0,64(%esp)1105pxor %xmm7,%xmm71106movl 80(%esp),%esp1107popl %edi1108popl %esi1109popl %ebx1110popl %ebp1111ret1112.size aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin1113.globl aesni_xts_encrypt1114.type aesni_xts_encrypt,@function1115.align 161116aesni_xts_encrypt:1117.L_aesni_xts_encrypt_begin:1118#ifdef __CET__11191120.byte 243,15,30,2511121#endif11221123pushl %ebp1124pushl %ebx1125pushl %esi1126pushl %edi1127movl 36(%esp),%edx1128movl 40(%esp),%esi1129movl 240(%edx),%ecx1130movups (%esi),%xmm21131movups (%edx),%xmm01132movups 16(%edx),%xmm11133leal 32(%edx),%edx1134xorps %xmm0,%xmm21135.L046enc1_loop_8:1136.byte 102,15,56,220,2091137decl %ecx1138movups (%edx),%xmm11139leal 16(%edx),%edx1140jnz .L046enc1_loop_81141.byte 102,15,56,221,2091142movl 20(%esp),%esi1143movl 24(%esp),%edi1144movl 28(%esp),%eax1145movl 32(%esp),%edx1146movl %esp,%ebp1147subl $120,%esp1148movl 240(%edx),%ecx1149andl $-16,%esp1150movl $135,96(%esp)1151movl $0,100(%esp)1152movl $1,104(%esp)1153movl $0,108(%esp)1154movl %eax,112(%esp)1155movl %ebp,116(%esp)1156movdqa %xmm2,%xmm11157pxor %xmm0,%xmm01158movdqa 96(%esp),%xmm31159pcmpgtd %xmm1,%xmm01160andl $-16,%eax1161movl %edx,%ebp1162movl %ecx,%ebx1163subl $96,%eax1164jc .L047xts_enc_short1165shll $4,%ecx1166movl $16,%ebx1167subl %ecx,%ebx1168leal 32(%edx,%ecx,1),%edx1169jmp .L048xts_enc_loop61170.align 161171.L048xts_enc_loop6:1172pshufd $19,%xmm0,%xmm21173pxor %xmm0,%xmm01174movdqa %xmm1,(%esp)1175paddq %xmm1,%xmm11176pand %xmm3,%xmm21177pcmpgtd %xmm1,%xmm01178pxor %xmm2,%xmm11179pshufd $19,%xmm0,%xmm21180pxor %xmm0,%xmm01181movdqa %xmm1,16(%esp)1182paddq %xmm1,%xmm11183pand %xmm3,%xmm21184pcmpgtd %xmm1,%xmm01185pxor %xmm2,%xmm11186pshufd $19,%xmm0,%xmm21187pxor %xmm0,%xmm01188movdqa %xmm1,32(%esp)1189paddq %xmm1,%xmm11190pand %xmm3,%xmm21191pcmpgtd %xmm1,%xmm01192pxor %xmm2,%xmm11193pshufd $19,%xmm0,%xmm21194pxor %xmm0,%xmm01195movdqa %xmm1,48(%esp)1196paddq %xmm1,%xmm11197pand %xmm3,%xmm21198pcmpgtd %xmm1,%xmm01199pxor %xmm2,%xmm11200pshufd $19,%xmm0,%xmm71201movdqa %xmm1,64(%esp)1202paddq %xmm1,%xmm11203movups (%ebp),%xmm01204pand %xmm3,%xmm71205movups (%esi),%xmm21206pxor %xmm1,%xmm71207movl %ebx,%ecx1208movdqu 16(%esi),%xmm31209xorps %xmm0,%xmm21210movdqu 32(%esi),%xmm41211pxor %xmm0,%xmm31212movdqu 48(%esi),%xmm51213pxor %xmm0,%xmm41214movdqu 64(%esi),%xmm61215pxor %xmm0,%xmm51216movdqu 80(%esi),%xmm11217pxor %xmm0,%xmm61218leal 96(%esi),%esi1219pxor (%esp),%xmm21220movdqa %xmm7,80(%esp)1221pxor %xmm1,%xmm71222movups 16(%ebp),%xmm11223pxor 16(%esp),%xmm31224pxor 32(%esp),%xmm41225.byte 102,15,56,220,2091226pxor 48(%esp),%xmm51227pxor 64(%esp),%xmm61228.byte 102,15,56,220,2171229pxor %xmm0,%xmm71230movups 32(%ebp),%xmm01231.byte 102,15,56,220,2251232.byte 102,15,56,220,2331233.byte 102,15,56,220,2411234.byte 102,15,56,220,2491235call .L_aesni_encrypt6_enter1236movdqa 80(%esp),%xmm11237pxor %xmm0,%xmm01238xorps (%esp),%xmm21239pcmpgtd %xmm1,%xmm01240xorps 16(%esp),%xmm31241movups %xmm2,(%edi)1242xorps 32(%esp),%xmm41243movups %xmm3,16(%edi)1244xorps 48(%esp),%xmm51245movups %xmm4,32(%edi)1246xorps 64(%esp),%xmm61247movups %xmm5,48(%edi)1248xorps %xmm1,%xmm71249movups %xmm6,64(%edi)1250pshufd $19,%xmm0,%xmm21251movups %xmm7,80(%edi)1252leal 96(%edi),%edi1253movdqa 96(%esp),%xmm31254pxor %xmm0,%xmm01255paddq %xmm1,%xmm11256pand %xmm3,%xmm21257pcmpgtd %xmm1,%xmm01258pxor %xmm2,%xmm11259subl $96,%eax1260jnc .L048xts_enc_loop61261movl 240(%ebp),%ecx1262movl %ebp,%edx1263movl %ecx,%ebx1264.L047xts_enc_short:1265addl $96,%eax1266jz .L049xts_enc_done6x1267movdqa %xmm1,%xmm51268cmpl $32,%eax1269jb .L050xts_enc_one1270pshufd $19,%xmm0,%xmm21271pxor %xmm0,%xmm01272paddq %xmm1,%xmm11273pand %xmm3,%xmm21274pcmpgtd %xmm1,%xmm01275pxor %xmm2,%xmm11276je .L051xts_enc_two1277pshufd $19,%xmm0,%xmm21278pxor %xmm0,%xmm01279movdqa %xmm1,%xmm61280paddq %xmm1,%xmm11281pand %xmm3,%xmm21282pcmpgtd %xmm1,%xmm01283pxor %xmm2,%xmm11284cmpl $64,%eax1285jb .L052xts_enc_three1286pshufd $19,%xmm0,%xmm21287pxor %xmm0,%xmm01288movdqa %xmm1,%xmm71289paddq %xmm1,%xmm11290pand %xmm3,%xmm21291pcmpgtd %xmm1,%xmm01292pxor %xmm2,%xmm11293movdqa %xmm5,(%esp)1294movdqa %xmm6,16(%esp)1295je .L053xts_enc_four1296movdqa %xmm7,32(%esp)1297pshufd $19,%xmm0,%xmm71298movdqa %xmm1,48(%esp)1299paddq %xmm1,%xmm11300pand %xmm3,%xmm71301pxor %xmm1,%xmm71302movdqu (%esi),%xmm21303movdqu 16(%esi),%xmm31304movdqu 32(%esi),%xmm41305pxor (%esp),%xmm21306movdqu 48(%esi),%xmm51307pxor 16(%esp),%xmm31308movdqu 64(%esi),%xmm61309pxor 32(%esp),%xmm41310leal 80(%esi),%esi1311pxor 48(%esp),%xmm51312movdqa %xmm7,64(%esp)1313pxor %xmm7,%xmm61314call _aesni_encrypt61315movaps 64(%esp),%xmm11316xorps (%esp),%xmm21317xorps 16(%esp),%xmm31318xorps 32(%esp),%xmm41319movups %xmm2,(%edi)1320xorps 48(%esp),%xmm51321movups %xmm3,16(%edi)1322xorps %xmm1,%xmm61323movups %xmm4,32(%edi)1324movups %xmm5,48(%edi)1325movups %xmm6,64(%edi)1326leal 80(%edi),%edi1327jmp .L054xts_enc_done1328.align 161329.L050xts_enc_one:1330movups (%esi),%xmm21331leal 16(%esi),%esi1332xorps %xmm5,%xmm21333movups (%edx),%xmm01334movups 16(%edx),%xmm11335leal 32(%edx),%edx1336xorps %xmm0,%xmm21337.L055enc1_loop_9:1338.byte 102,15,56,220,2091339decl %ecx1340movups (%edx),%xmm11341leal 16(%edx),%edx1342jnz .L055enc1_loop_91343.byte 102,15,56,221,2091344xorps %xmm5,%xmm21345movups %xmm2,(%edi)1346leal 16(%edi),%edi1347movdqa %xmm5,%xmm11348jmp .L054xts_enc_done1349.align 161350.L051xts_enc_two:1351movaps %xmm1,%xmm61352movups (%esi),%xmm21353movups 16(%esi),%xmm31354leal 32(%esi),%esi1355xorps %xmm5,%xmm21356xorps %xmm6,%xmm31357call _aesni_encrypt21358xorps %xmm5,%xmm21359xorps %xmm6,%xmm31360movups %xmm2,(%edi)1361movups %xmm3,16(%edi)1362leal 32(%edi),%edi1363movdqa %xmm6,%xmm11364jmp .L054xts_enc_done1365.align 161366.L052xts_enc_three:1367movaps %xmm1,%xmm71368movups (%esi),%xmm21369movups 16(%esi),%xmm31370movups 32(%esi),%xmm41371leal 48(%esi),%esi1372xorps %xmm5,%xmm21373xorps %xmm6,%xmm31374xorps %xmm7,%xmm41375call _aesni_encrypt31376xorps %xmm5,%xmm21377xorps %xmm6,%xmm31378xorps %xmm7,%xmm41379movups %xmm2,(%edi)1380movups %xmm3,16(%edi)1381movups %xmm4,32(%edi)1382leal 48(%edi),%edi1383movdqa %xmm7,%xmm11384jmp .L054xts_enc_done1385.align 161386.L053xts_enc_four:1387movaps %xmm1,%xmm61388movups (%esi),%xmm21389movups 16(%esi),%xmm31390movups 32(%esi),%xmm41391xorps (%esp),%xmm21392movups 48(%esi),%xmm51393leal 64(%esi),%esi1394xorps 16(%esp),%xmm31395xorps %xmm7,%xmm41396xorps %xmm6,%xmm51397call _aesni_encrypt41398xorps (%esp),%xmm21399xorps 16(%esp),%xmm31400xorps %xmm7,%xmm41401movups %xmm2,(%edi)1402xorps %xmm6,%xmm51403movups %xmm3,16(%edi)1404movups %xmm4,32(%edi)1405movups %xmm5,48(%edi)1406leal 64(%edi),%edi1407movdqa %xmm6,%xmm11408jmp .L054xts_enc_done1409.align 161410.L049xts_enc_done6x:1411movl 112(%esp),%eax1412andl $15,%eax1413jz .L056xts_enc_ret1414movdqa %xmm1,%xmm51415movl %eax,112(%esp)1416jmp .L057xts_enc_steal1417.align 161418.L054xts_enc_done:1419movl 112(%esp),%eax1420pxor %xmm0,%xmm01421andl $15,%eax1422jz .L056xts_enc_ret1423pcmpgtd %xmm1,%xmm01424movl %eax,112(%esp)1425pshufd $19,%xmm0,%xmm51426paddq %xmm1,%xmm11427pand 96(%esp),%xmm51428pxor %xmm1,%xmm51429.L057xts_enc_steal:1430movzbl (%esi),%ecx1431movzbl -16(%edi),%edx1432leal 1(%esi),%esi1433movb %cl,-16(%edi)1434movb %dl,(%edi)1435leal 1(%edi),%edi1436subl $1,%eax1437jnz .L057xts_enc_steal1438subl 112(%esp),%edi1439movl %ebp,%edx1440movl %ebx,%ecx1441movups -16(%edi),%xmm21442xorps %xmm5,%xmm21443movups (%edx),%xmm01444movups 16(%edx),%xmm11445leal 32(%edx),%edx1446xorps %xmm0,%xmm21447.L058enc1_loop_10:1448.byte 102,15,56,220,2091449decl %ecx1450movups (%edx),%xmm11451leal 16(%edx),%edx1452jnz .L058enc1_loop_101453.byte 102,15,56,221,2091454xorps %xmm5,%xmm21455movups %xmm2,-16(%edi)1456.L056xts_enc_ret:1457pxor %xmm0,%xmm01458pxor %xmm1,%xmm11459pxor %xmm2,%xmm21460movdqa %xmm0,(%esp)1461pxor %xmm3,%xmm31462movdqa %xmm0,16(%esp)1463pxor %xmm4,%xmm41464movdqa %xmm0,32(%esp)1465pxor %xmm5,%xmm51466movdqa %xmm0,48(%esp)1467pxor %xmm6,%xmm61468movdqa %xmm0,64(%esp)1469pxor %xmm7,%xmm71470movdqa %xmm0,80(%esp)1471movl 116(%esp),%esp1472popl %edi1473popl %esi1474popl %ebx1475popl %ebp1476ret1477.size aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin1478.globl aesni_xts_decrypt1479.type aesni_xts_decrypt,@function1480.align 161481aesni_xts_decrypt:1482.L_aesni_xts_decrypt_begin:1483#ifdef __CET__14841485.byte 243,15,30,2511486#endif14871488pushl %ebp1489pushl %ebx1490pushl %esi1491pushl %edi1492movl 36(%esp),%edx1493movl 40(%esp),%esi1494movl 240(%edx),%ecx1495movups (%esi),%xmm21496movups (%edx),%xmm01497movups 16(%edx),%xmm11498leal 32(%edx),%edx1499xorps %xmm0,%xmm21500.L059enc1_loop_11:1501.byte 102,15,56,220,2091502decl %ecx1503movups (%edx),%xmm11504leal 16(%edx),%edx1505jnz .L059enc1_loop_111506.byte 102,15,56,221,2091507movl 20(%esp),%esi1508movl 24(%esp),%edi1509movl 28(%esp),%eax1510movl 32(%esp),%edx1511movl %esp,%ebp1512subl $120,%esp1513andl $-16,%esp1514xorl %ebx,%ebx1515testl $15,%eax1516setnz %bl1517shll $4,%ebx1518subl %ebx,%eax1519movl $135,96(%esp)1520movl $0,100(%esp)1521movl $1,104(%esp)1522movl $0,108(%esp)1523movl %eax,112(%esp)1524movl %ebp,116(%esp)1525movl 240(%edx),%ecx1526movl %edx,%ebp1527movl %ecx,%ebx1528movdqa %xmm2,%xmm11529pxor %xmm0,%xmm01530movdqa 96(%esp),%xmm31531pcmpgtd %xmm1,%xmm01532andl $-16,%eax1533subl $96,%eax1534jc .L060xts_dec_short1535shll $4,%ecx1536movl $16,%ebx1537subl %ecx,%ebx1538leal 32(%edx,%ecx,1),%edx1539jmp .L061xts_dec_loop61540.align 161541.L061xts_dec_loop6:1542pshufd $19,%xmm0,%xmm21543pxor %xmm0,%xmm01544movdqa %xmm1,(%esp)1545paddq %xmm1,%xmm11546pand %xmm3,%xmm21547pcmpgtd %xmm1,%xmm01548pxor %xmm2,%xmm11549pshufd $19,%xmm0,%xmm21550pxor %xmm0,%xmm01551movdqa %xmm1,16(%esp)1552paddq %xmm1,%xmm11553pand %xmm3,%xmm21554pcmpgtd %xmm1,%xmm01555pxor %xmm2,%xmm11556pshufd $19,%xmm0,%xmm21557pxor %xmm0,%xmm01558movdqa %xmm1,32(%esp)1559paddq %xmm1,%xmm11560pand %xmm3,%xmm21561pcmpgtd %xmm1,%xmm01562pxor %xmm2,%xmm11563pshufd $19,%xmm0,%xmm21564pxor %xmm0,%xmm01565movdqa %xmm1,48(%esp)1566paddq %xmm1,%xmm11567pand %xmm3,%xmm21568pcmpgtd %xmm1,%xmm01569pxor %xmm2,%xmm11570pshufd $19,%xmm0,%xmm71571movdqa %xmm1,64(%esp)1572paddq %xmm1,%xmm11573movups (%ebp),%xmm01574pand %xmm3,%xmm71575movups (%esi),%xmm21576pxor %xmm1,%xmm71577movl %ebx,%ecx1578movdqu 16(%esi),%xmm31579xorps %xmm0,%xmm21580movdqu 32(%esi),%xmm41581pxor %xmm0,%xmm31582movdqu 48(%esi),%xmm51583pxor %xmm0,%xmm41584movdqu 64(%esi),%xmm61585pxor %xmm0,%xmm51586movdqu 80(%esi),%xmm11587pxor %xmm0,%xmm61588leal 96(%esi),%esi1589pxor (%esp),%xmm21590movdqa %xmm7,80(%esp)1591pxor %xmm1,%xmm71592movups 16(%ebp),%xmm11593pxor 16(%esp),%xmm31594pxor 32(%esp),%xmm41595.byte 102,15,56,222,2091596pxor 48(%esp),%xmm51597pxor 64(%esp),%xmm61598.byte 102,15,56,222,2171599pxor %xmm0,%xmm71600movups 32(%ebp),%xmm01601.byte 102,15,56,222,2251602.byte 102,15,56,222,2331603.byte 102,15,56,222,2411604.byte 102,15,56,222,2491605call .L_aesni_decrypt6_enter1606movdqa 80(%esp),%xmm11607pxor %xmm0,%xmm01608xorps (%esp),%xmm21609pcmpgtd %xmm1,%xmm01610xorps 16(%esp),%xmm31611movups %xmm2,(%edi)1612xorps 32(%esp),%xmm41613movups %xmm3,16(%edi)1614xorps 48(%esp),%xmm51615movups %xmm4,32(%edi)1616xorps 64(%esp),%xmm61617movups %xmm5,48(%edi)1618xorps %xmm1,%xmm71619movups %xmm6,64(%edi)1620pshufd $19,%xmm0,%xmm21621movups %xmm7,80(%edi)1622leal 96(%edi),%edi1623movdqa 96(%esp),%xmm31624pxor %xmm0,%xmm01625paddq %xmm1,%xmm11626pand %xmm3,%xmm21627pcmpgtd %xmm1,%xmm01628pxor %xmm2,%xmm11629subl $96,%eax1630jnc .L061xts_dec_loop61631movl 240(%ebp),%ecx1632movl %ebp,%edx1633movl %ecx,%ebx1634.L060xts_dec_short:1635addl $96,%eax1636jz .L062xts_dec_done6x1637movdqa %xmm1,%xmm51638cmpl $32,%eax1639jb .L063xts_dec_one1640pshufd $19,%xmm0,%xmm21641pxor %xmm0,%xmm01642paddq %xmm1,%xmm11643pand %xmm3,%xmm21644pcmpgtd %xmm1,%xmm01645pxor %xmm2,%xmm11646je .L064xts_dec_two1647pshufd $19,%xmm0,%xmm21648pxor %xmm0,%xmm01649movdqa %xmm1,%xmm61650paddq %xmm1,%xmm11651pand %xmm3,%xmm21652pcmpgtd %xmm1,%xmm01653pxor %xmm2,%xmm11654cmpl $64,%eax1655jb .L065xts_dec_three1656pshufd $19,%xmm0,%xmm21657pxor %xmm0,%xmm01658movdqa %xmm1,%xmm71659paddq %xmm1,%xmm11660pand %xmm3,%xmm21661pcmpgtd %xmm1,%xmm01662pxor %xmm2,%xmm11663movdqa %xmm5,(%esp)1664movdqa %xmm6,16(%esp)1665je .L066xts_dec_four1666movdqa %xmm7,32(%esp)1667pshufd $19,%xmm0,%xmm71668movdqa %xmm1,48(%esp)1669paddq %xmm1,%xmm11670pand %xmm3,%xmm71671pxor %xmm1,%xmm71672movdqu (%esi),%xmm21673movdqu 16(%esi),%xmm31674movdqu 32(%esi),%xmm41675pxor (%esp),%xmm21676movdqu 48(%esi),%xmm51677pxor 16(%esp),%xmm31678movdqu 64(%esi),%xmm61679pxor 32(%esp),%xmm41680leal 80(%esi),%esi1681pxor 48(%esp),%xmm51682movdqa %xmm7,64(%esp)1683pxor %xmm7,%xmm61684call _aesni_decrypt61685movaps 64(%esp),%xmm11686xorps (%esp),%xmm21687xorps 16(%esp),%xmm31688xorps 32(%esp),%xmm41689movups %xmm2,(%edi)1690xorps 48(%esp),%xmm51691movups %xmm3,16(%edi)1692xorps %xmm1,%xmm61693movups %xmm4,32(%edi)1694movups %xmm5,48(%edi)1695movups %xmm6,64(%edi)1696leal 80(%edi),%edi1697jmp .L067xts_dec_done1698.align 161699.L063xts_dec_one:1700movups (%esi),%xmm21701leal 16(%esi),%esi1702xorps %xmm5,%xmm21703movups (%edx),%xmm01704movups 16(%edx),%xmm11705leal 32(%edx),%edx1706xorps %xmm0,%xmm21707.L068dec1_loop_12:1708.byte 102,15,56,222,2091709decl %ecx1710movups (%edx),%xmm11711leal 16(%edx),%edx1712jnz .L068dec1_loop_121713.byte 102,15,56,223,2091714xorps %xmm5,%xmm21715movups %xmm2,(%edi)1716leal 16(%edi),%edi1717movdqa %xmm5,%xmm11718jmp .L067xts_dec_done1719.align 161720.L064xts_dec_two:1721movaps %xmm1,%xmm61722movups (%esi),%xmm21723movups 16(%esi),%xmm31724leal 32(%esi),%esi1725xorps %xmm5,%xmm21726xorps %xmm6,%xmm31727call _aesni_decrypt21728xorps %xmm5,%xmm21729xorps %xmm6,%xmm31730movups %xmm2,(%edi)1731movups %xmm3,16(%edi)1732leal 32(%edi),%edi1733movdqa %xmm6,%xmm11734jmp .L067xts_dec_done1735.align 161736.L065xts_dec_three:1737movaps %xmm1,%xmm71738movups (%esi),%xmm21739movups 16(%esi),%xmm31740movups 32(%esi),%xmm41741leal 48(%esi),%esi1742xorps %xmm5,%xmm21743xorps %xmm6,%xmm31744xorps %xmm7,%xmm41745call _aesni_decrypt31746xorps %xmm5,%xmm21747xorps %xmm6,%xmm31748xorps %xmm7,%xmm41749movups %xmm2,(%edi)1750movups %xmm3,16(%edi)1751movups %xmm4,32(%edi)1752leal 48(%edi),%edi1753movdqa %xmm7,%xmm11754jmp .L067xts_dec_done1755.align 161756.L066xts_dec_four:1757movaps %xmm1,%xmm61758movups (%esi),%xmm21759movups 16(%esi),%xmm31760movups 32(%esi),%xmm41761xorps (%esp),%xmm21762movups 48(%esi),%xmm51763leal 64(%esi),%esi1764xorps 16(%esp),%xmm31765xorps %xmm7,%xmm41766xorps %xmm6,%xmm51767call _aesni_decrypt41768xorps (%esp),%xmm21769xorps 16(%esp),%xmm31770xorps %xmm7,%xmm41771movups %xmm2,(%edi)1772xorps %xmm6,%xmm51773movups %xmm3,16(%edi)1774movups %xmm4,32(%edi)1775movups %xmm5,48(%edi)1776leal 64(%edi),%edi1777movdqa %xmm6,%xmm11778jmp .L067xts_dec_done1779.align 161780.L062xts_dec_done6x:1781movl 112(%esp),%eax1782andl $15,%eax1783jz .L069xts_dec_ret1784movl %eax,112(%esp)1785jmp .L070xts_dec_only_one_more1786.align 161787.L067xts_dec_done:1788movl 112(%esp),%eax1789pxor %xmm0,%xmm01790andl $15,%eax1791jz .L069xts_dec_ret1792pcmpgtd %xmm1,%xmm01793movl %eax,112(%esp)1794pshufd $19,%xmm0,%xmm21795pxor %xmm0,%xmm01796movdqa 96(%esp),%xmm31797paddq %xmm1,%xmm11798pand %xmm3,%xmm21799pcmpgtd %xmm1,%xmm01800pxor %xmm2,%xmm11801.L070xts_dec_only_one_more:1802pshufd $19,%xmm0,%xmm51803movdqa %xmm1,%xmm61804paddq %xmm1,%xmm11805pand %xmm3,%xmm51806pxor %xmm1,%xmm51807movl %ebp,%edx1808movl %ebx,%ecx1809movups (%esi),%xmm21810xorps %xmm5,%xmm21811movups (%edx),%xmm01812movups 16(%edx),%xmm11813leal 32(%edx),%edx1814xorps %xmm0,%xmm21815.L071dec1_loop_13:1816.byte 102,15,56,222,2091817decl %ecx1818movups (%edx),%xmm11819leal 16(%edx),%edx1820jnz .L071dec1_loop_131821.byte 102,15,56,223,2091822xorps %xmm5,%xmm21823movups %xmm2,(%edi)1824.L072xts_dec_steal:1825movzbl 16(%esi),%ecx1826movzbl (%edi),%edx1827leal 1(%esi),%esi1828movb %cl,(%edi)1829movb %dl,16(%edi)1830leal 1(%edi),%edi1831subl $1,%eax1832jnz .L072xts_dec_steal1833subl 112(%esp),%edi1834movl %ebp,%edx1835movl %ebx,%ecx1836movups (%edi),%xmm21837xorps %xmm6,%xmm21838movups (%edx),%xmm01839movups 16(%edx),%xmm11840leal 32(%edx),%edx1841xorps %xmm0,%xmm21842.L073dec1_loop_14:1843.byte 102,15,56,222,2091844decl %ecx1845movups (%edx),%xmm11846leal 16(%edx),%edx1847jnz .L073dec1_loop_141848.byte 102,15,56,223,2091849xorps %xmm6,%xmm21850movups %xmm2,(%edi)1851.L069xts_dec_ret:1852pxor %xmm0,%xmm01853pxor %xmm1,%xmm11854pxor %xmm2,%xmm21855movdqa %xmm0,(%esp)1856pxor %xmm3,%xmm31857movdqa %xmm0,16(%esp)1858pxor %xmm4,%xmm41859movdqa %xmm0,32(%esp)1860pxor %xmm5,%xmm51861movdqa %xmm0,48(%esp)1862pxor %xmm6,%xmm61863movdqa %xmm0,64(%esp)1864pxor %xmm7,%xmm71865movdqa %xmm0,80(%esp)1866movl 116(%esp),%esp1867popl %edi1868popl %esi1869popl %ebx1870popl %ebp1871ret1872.size aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin1873.globl aesni_ocb_encrypt1874.type aesni_ocb_encrypt,@function1875.align 161876aesni_ocb_encrypt:1877.L_aesni_ocb_encrypt_begin:1878#ifdef __CET__18791880.byte 243,15,30,2511881#endif18821883pushl %ebp1884pushl %ebx1885pushl %esi1886pushl %edi1887movl 40(%esp),%ecx1888movl 48(%esp),%ebx1889movl 20(%esp),%esi1890movl 24(%esp),%edi1891movl 28(%esp),%eax1892movl 32(%esp),%edx1893movdqu (%ecx),%xmm01894movl 36(%esp),%ebp1895movdqu (%ebx),%xmm11896movl 44(%esp),%ebx1897movl %esp,%ecx1898subl $132,%esp1899andl $-16,%esp1900subl %esi,%edi1901shll $4,%eax1902leal -96(%esi,%eax,1),%eax1903movl %edi,120(%esp)1904movl %eax,124(%esp)1905movl %ecx,128(%esp)1906movl 240(%edx),%ecx1907testl $1,%ebp1908jnz .L074odd1909bsfl %ebp,%eax1910addl $1,%ebp1911shll $4,%eax1912movdqu (%ebx,%eax,1),%xmm71913movl %edx,%eax1914movdqu (%esi),%xmm21915leal 16(%esi),%esi1916pxor %xmm0,%xmm71917pxor %xmm2,%xmm11918pxor %xmm7,%xmm21919movdqa %xmm1,%xmm61920movups (%edx),%xmm01921movups 16(%edx),%xmm11922leal 32(%edx),%edx1923xorps %xmm0,%xmm21924.L075enc1_loop_15:1925.byte 102,15,56,220,2091926decl %ecx1927movups (%edx),%xmm11928leal 16(%edx),%edx1929jnz .L075enc1_loop_151930.byte 102,15,56,221,2091931xorps %xmm7,%xmm21932movdqa %xmm7,%xmm01933movdqa %xmm6,%xmm11934movups %xmm2,-16(%edi,%esi,1)1935movl 240(%eax),%ecx1936movl %eax,%edx1937movl 124(%esp),%eax1938.L074odd:1939shll $4,%ecx1940movl $16,%edi1941subl %ecx,%edi1942movl %edx,112(%esp)1943leal 32(%edx,%ecx,1),%edx1944movl %edi,116(%esp)1945cmpl %eax,%esi1946ja .L076short1947jmp .L077grandloop1948.align 321949.L077grandloop:1950leal 1(%ebp),%ecx1951leal 3(%ebp),%eax1952leal 5(%ebp),%edi1953addl $6,%ebp1954bsfl %ecx,%ecx1955bsfl %eax,%eax1956bsfl %edi,%edi1957shll $4,%ecx1958shll $4,%eax1959shll $4,%edi1960movdqu (%ebx),%xmm21961movdqu (%ebx,%ecx,1),%xmm31962movl 116(%esp),%ecx1963movdqa %xmm2,%xmm41964movdqu (%ebx,%eax,1),%xmm51965movdqa %xmm2,%xmm61966movdqu (%ebx,%edi,1),%xmm71967pxor %xmm0,%xmm21968pxor %xmm2,%xmm31969movdqa %xmm2,(%esp)1970pxor %xmm3,%xmm41971movdqa %xmm3,16(%esp)1972pxor %xmm4,%xmm51973movdqa %xmm4,32(%esp)1974pxor %xmm5,%xmm61975movdqa %xmm5,48(%esp)1976pxor %xmm6,%xmm71977movdqa %xmm6,64(%esp)1978movdqa %xmm7,80(%esp)1979movups -48(%edx,%ecx,1),%xmm01980movdqu (%esi),%xmm21981movdqu 16(%esi),%xmm31982movdqu 32(%esi),%xmm41983movdqu 48(%esi),%xmm51984movdqu 64(%esi),%xmm61985movdqu 80(%esi),%xmm71986leal 96(%esi),%esi1987pxor %xmm2,%xmm11988pxor %xmm0,%xmm21989pxor %xmm3,%xmm11990pxor %xmm0,%xmm31991pxor %xmm4,%xmm11992pxor %xmm0,%xmm41993pxor %xmm5,%xmm11994pxor %xmm0,%xmm51995pxor %xmm6,%xmm11996pxor %xmm0,%xmm61997pxor %xmm7,%xmm11998pxor %xmm0,%xmm71999movdqa %xmm1,96(%esp)2000movups -32(%edx,%ecx,1),%xmm12001pxor (%esp),%xmm22002pxor 16(%esp),%xmm32003pxor 32(%esp),%xmm42004pxor 48(%esp),%xmm52005pxor 64(%esp),%xmm62006pxor 80(%esp),%xmm72007movups -16(%edx,%ecx,1),%xmm02008.byte 102,15,56,220,2092009.byte 102,15,56,220,2172010.byte 102,15,56,220,2252011.byte 102,15,56,220,2332012.byte 102,15,56,220,2412013.byte 102,15,56,220,2492014movl 120(%esp),%edi2015movl 124(%esp),%eax2016call .L_aesni_encrypt6_enter2017movdqa 80(%esp),%xmm02018pxor (%esp),%xmm22019pxor 16(%esp),%xmm32020pxor 32(%esp),%xmm42021pxor 48(%esp),%xmm52022pxor 64(%esp),%xmm62023pxor %xmm0,%xmm72024movdqa 96(%esp),%xmm12025movdqu %xmm2,-96(%edi,%esi,1)2026movdqu %xmm3,-80(%edi,%esi,1)2027movdqu %xmm4,-64(%edi,%esi,1)2028movdqu %xmm5,-48(%edi,%esi,1)2029movdqu %xmm6,-32(%edi,%esi,1)2030movdqu %xmm7,-16(%edi,%esi,1)2031cmpl %eax,%esi2032jbe .L077grandloop2033.L076short:2034addl $96,%eax2035subl %esi,%eax2036jz .L078done2037cmpl $32,%eax2038jb .L079one2039je .L080two2040cmpl $64,%eax2041jb .L081three2042je .L082four2043leal 1(%ebp),%ecx2044leal 3(%ebp),%eax2045bsfl %ecx,%ecx2046bsfl %eax,%eax2047shll $4,%ecx2048shll $4,%eax2049movdqu (%ebx),%xmm22050movdqu (%ebx,%ecx,1),%xmm32051movl 116(%esp),%ecx2052movdqa %xmm2,%xmm42053movdqu (%ebx,%eax,1),%xmm52054movdqa %xmm2,%xmm62055pxor %xmm0,%xmm22056pxor %xmm2,%xmm32057movdqa %xmm2,(%esp)2058pxor %xmm3,%xmm42059movdqa %xmm3,16(%esp)2060pxor %xmm4,%xmm52061movdqa %xmm4,32(%esp)2062pxor %xmm5,%xmm62063movdqa %xmm5,48(%esp)2064pxor %xmm6,%xmm72065movdqa %xmm6,64(%esp)2066movups -48(%edx,%ecx,1),%xmm02067movdqu (%esi),%xmm22068movdqu 16(%esi),%xmm32069movdqu 32(%esi),%xmm42070movdqu 48(%esi),%xmm52071movdqu 64(%esi),%xmm62072pxor %xmm7,%xmm72073pxor %xmm2,%xmm12074pxor %xmm0,%xmm22075pxor %xmm3,%xmm12076pxor %xmm0,%xmm32077pxor %xmm4,%xmm12078pxor %xmm0,%xmm42079pxor %xmm5,%xmm12080pxor %xmm0,%xmm52081pxor %xmm6,%xmm12082pxor %xmm0,%xmm62083movdqa %xmm1,96(%esp)2084movups -32(%edx,%ecx,1),%xmm12085pxor (%esp),%xmm22086pxor 16(%esp),%xmm32087pxor 32(%esp),%xmm42088pxor 48(%esp),%xmm52089pxor 64(%esp),%xmm62090movups -16(%edx,%ecx,1),%xmm02091.byte 102,15,56,220,2092092.byte 102,15,56,220,2172093.byte 102,15,56,220,2252094.byte 102,15,56,220,2332095.byte 102,15,56,220,2412096.byte 102,15,56,220,2492097movl 120(%esp),%edi2098call .L_aesni_encrypt6_enter2099movdqa 64(%esp),%xmm02100pxor (%esp),%xmm22101pxor 16(%esp),%xmm32102pxor 32(%esp),%xmm42103pxor 48(%esp),%xmm52104pxor %xmm0,%xmm62105movdqa 96(%esp),%xmm12106movdqu %xmm2,(%edi,%esi,1)2107movdqu %xmm3,16(%edi,%esi,1)2108movdqu %xmm4,32(%edi,%esi,1)2109movdqu %xmm5,48(%edi,%esi,1)2110movdqu %xmm6,64(%edi,%esi,1)2111jmp .L078done2112.align 162113.L079one:2114movdqu (%ebx),%xmm72115movl 112(%esp),%edx2116movdqu (%esi),%xmm22117movl 240(%edx),%ecx2118pxor %xmm0,%xmm72119pxor %xmm2,%xmm12120pxor %xmm7,%xmm22121movdqa %xmm1,%xmm62122movl 120(%esp),%edi2123movups (%edx),%xmm02124movups 16(%edx),%xmm12125leal 32(%edx),%edx2126xorps %xmm0,%xmm22127.L083enc1_loop_16:2128.byte 102,15,56,220,2092129decl %ecx2130movups (%edx),%xmm12131leal 16(%edx),%edx2132jnz .L083enc1_loop_162133.byte 102,15,56,221,2092134xorps %xmm7,%xmm22135movdqa %xmm7,%xmm02136movdqa %xmm6,%xmm12137movups %xmm2,(%edi,%esi,1)2138jmp .L078done2139.align 162140.L080two:2141leal 1(%ebp),%ecx2142movl 112(%esp),%edx2143bsfl %ecx,%ecx2144shll $4,%ecx2145movdqu (%ebx),%xmm62146movdqu (%ebx,%ecx,1),%xmm72147movdqu (%esi),%xmm22148movdqu 16(%esi),%xmm32149movl 240(%edx),%ecx2150pxor %xmm0,%xmm62151pxor %xmm6,%xmm72152pxor %xmm2,%xmm12153pxor %xmm6,%xmm22154pxor %xmm3,%xmm12155pxor %xmm7,%xmm32156movdqa %xmm1,%xmm52157movl 120(%esp),%edi2158call _aesni_encrypt22159xorps %xmm6,%xmm22160xorps %xmm7,%xmm32161movdqa %xmm7,%xmm02162movdqa %xmm5,%xmm12163movups %xmm2,(%edi,%esi,1)2164movups %xmm3,16(%edi,%esi,1)2165jmp .L078done2166.align 162167.L081three:2168leal 1(%ebp),%ecx2169movl 112(%esp),%edx2170bsfl %ecx,%ecx2171shll $4,%ecx2172movdqu (%ebx),%xmm52173movdqu (%ebx,%ecx,1),%xmm62174movdqa %xmm5,%xmm72175movdqu (%esi),%xmm22176movdqu 16(%esi),%xmm32177movdqu 32(%esi),%xmm42178movl 240(%edx),%ecx2179pxor %xmm0,%xmm52180pxor %xmm5,%xmm62181pxor %xmm6,%xmm72182pxor %xmm2,%xmm12183pxor %xmm5,%xmm22184pxor %xmm3,%xmm12185pxor %xmm6,%xmm32186pxor %xmm4,%xmm12187pxor %xmm7,%xmm42188movdqa %xmm1,96(%esp)2189movl 120(%esp),%edi2190call _aesni_encrypt32191xorps %xmm5,%xmm22192xorps %xmm6,%xmm32193xorps %xmm7,%xmm42194movdqa %xmm7,%xmm02195movdqa 96(%esp),%xmm12196movups %xmm2,(%edi,%esi,1)2197movups %xmm3,16(%edi,%esi,1)2198movups %xmm4,32(%edi,%esi,1)2199jmp .L078done2200.align 162201.L082four:2202leal 1(%ebp),%ecx2203leal 3(%ebp),%eax2204bsfl %ecx,%ecx2205bsfl %eax,%eax2206movl 112(%esp),%edx2207shll $4,%ecx2208shll $4,%eax2209movdqu (%ebx),%xmm42210movdqu (%ebx,%ecx,1),%xmm52211movdqa %xmm4,%xmm62212movdqu (%ebx,%eax,1),%xmm72213pxor %xmm0,%xmm42214movdqu (%esi),%xmm22215pxor %xmm4,%xmm52216movdqu 16(%esi),%xmm32217pxor %xmm5,%xmm62218movdqa %xmm4,(%esp)2219pxor %xmm6,%xmm72220movdqa %xmm5,16(%esp)2221movdqu 32(%esi),%xmm42222movdqu 48(%esi),%xmm52223movl 240(%edx),%ecx2224pxor %xmm2,%xmm12225pxor (%esp),%xmm22226pxor %xmm3,%xmm12227pxor 16(%esp),%xmm32228pxor %xmm4,%xmm12229pxor %xmm6,%xmm42230pxor %xmm5,%xmm12231pxor %xmm7,%xmm52232movdqa %xmm1,96(%esp)2233movl 120(%esp),%edi2234call _aesni_encrypt42235xorps (%esp),%xmm22236xorps 16(%esp),%xmm32237xorps %xmm6,%xmm42238movups %xmm2,(%edi,%esi,1)2239xorps %xmm7,%xmm52240movups %xmm3,16(%edi,%esi,1)2241movdqa %xmm7,%xmm02242movups %xmm4,32(%edi,%esi,1)2243movdqa 96(%esp),%xmm12244movups %xmm5,48(%edi,%esi,1)2245.L078done:2246movl 128(%esp),%edx2247pxor %xmm2,%xmm22248pxor %xmm3,%xmm32249movdqa %xmm2,(%esp)2250pxor %xmm4,%xmm42251movdqa %xmm2,16(%esp)2252pxor %xmm5,%xmm52253movdqa %xmm2,32(%esp)2254pxor %xmm6,%xmm62255movdqa %xmm2,48(%esp)2256pxor %xmm7,%xmm72257movdqa %xmm2,64(%esp)2258movdqa %xmm2,80(%esp)2259movdqa %xmm2,96(%esp)2260leal (%edx),%esp2261movl 40(%esp),%ecx2262movl 48(%esp),%ebx2263movdqu %xmm0,(%ecx)2264pxor %xmm0,%xmm02265movdqu %xmm1,(%ebx)2266pxor %xmm1,%xmm12267popl %edi2268popl %esi2269popl %ebx2270popl %ebp2271ret2272.size aesni_ocb_encrypt,.-.L_aesni_ocb_encrypt_begin2273.globl aesni_ocb_decrypt2274.type aesni_ocb_decrypt,@function2275.align 162276aesni_ocb_decrypt:2277.L_aesni_ocb_decrypt_begin:2278#ifdef __CET__22792280.byte 243,15,30,2512281#endif22822283pushl %ebp2284pushl %ebx2285pushl %esi2286pushl %edi2287movl 40(%esp),%ecx2288movl 48(%esp),%ebx2289movl 20(%esp),%esi2290movl 24(%esp),%edi2291movl 28(%esp),%eax2292movl 32(%esp),%edx2293movdqu (%ecx),%xmm02294movl 36(%esp),%ebp2295movdqu (%ebx),%xmm12296movl 44(%esp),%ebx2297movl %esp,%ecx2298subl $132,%esp2299andl $-16,%esp2300subl %esi,%edi2301shll $4,%eax2302leal -96(%esi,%eax,1),%eax2303movl %edi,120(%esp)2304movl %eax,124(%esp)2305movl %ecx,128(%esp)2306movl 240(%edx),%ecx2307testl $1,%ebp2308jnz .L084odd2309bsfl %ebp,%eax2310addl $1,%ebp2311shll $4,%eax2312movdqu (%ebx,%eax,1),%xmm72313movl %edx,%eax2314movdqu (%esi),%xmm22315leal 16(%esi),%esi2316pxor %xmm0,%xmm72317pxor %xmm7,%xmm22318movdqa %xmm1,%xmm62319movups (%edx),%xmm02320movups 16(%edx),%xmm12321leal 32(%edx),%edx2322xorps %xmm0,%xmm22323.L085dec1_loop_17:2324.byte 102,15,56,222,2092325decl %ecx2326movups (%edx),%xmm12327leal 16(%edx),%edx2328jnz .L085dec1_loop_172329.byte 102,15,56,223,2092330xorps %xmm7,%xmm22331movaps %xmm6,%xmm12332movdqa %xmm7,%xmm02333xorps %xmm2,%xmm12334movups %xmm2,-16(%edi,%esi,1)2335movl 240(%eax),%ecx2336movl %eax,%edx2337movl 124(%esp),%eax2338.L084odd:2339shll $4,%ecx2340movl $16,%edi2341subl %ecx,%edi2342movl %edx,112(%esp)2343leal 32(%edx,%ecx,1),%edx2344movl %edi,116(%esp)2345cmpl %eax,%esi2346ja .L086short2347jmp .L087grandloop2348.align 322349.L087grandloop:2350leal 1(%ebp),%ecx2351leal 3(%ebp),%eax2352leal 5(%ebp),%edi2353addl $6,%ebp2354bsfl %ecx,%ecx2355bsfl %eax,%eax2356bsfl %edi,%edi2357shll $4,%ecx2358shll $4,%eax2359shll $4,%edi2360movdqu (%ebx),%xmm22361movdqu (%ebx,%ecx,1),%xmm32362movl 116(%esp),%ecx2363movdqa %xmm2,%xmm42364movdqu (%ebx,%eax,1),%xmm52365movdqa %xmm2,%xmm62366movdqu (%ebx,%edi,1),%xmm72367pxor %xmm0,%xmm22368pxor %xmm2,%xmm32369movdqa %xmm2,(%esp)2370pxor %xmm3,%xmm42371movdqa %xmm3,16(%esp)2372pxor %xmm4,%xmm52373movdqa %xmm4,32(%esp)2374pxor %xmm5,%xmm62375movdqa %xmm5,48(%esp)2376pxor %xmm6,%xmm72377movdqa %xmm6,64(%esp)2378movdqa %xmm7,80(%esp)2379movups -48(%edx,%ecx,1),%xmm02380movdqu (%esi),%xmm22381movdqu 16(%esi),%xmm32382movdqu 32(%esi),%xmm42383movdqu 48(%esi),%xmm52384movdqu 64(%esi),%xmm62385movdqu 80(%esi),%xmm72386leal 96(%esi),%esi2387movdqa %xmm1,96(%esp)2388pxor %xmm0,%xmm22389pxor %xmm0,%xmm32390pxor %xmm0,%xmm42391pxor %xmm0,%xmm52392pxor %xmm0,%xmm62393pxor %xmm0,%xmm72394movups -32(%edx,%ecx,1),%xmm12395pxor (%esp),%xmm22396pxor 16(%esp),%xmm32397pxor 32(%esp),%xmm42398pxor 48(%esp),%xmm52399pxor 64(%esp),%xmm62400pxor 80(%esp),%xmm72401movups -16(%edx,%ecx,1),%xmm02402.byte 102,15,56,222,2092403.byte 102,15,56,222,2172404.byte 102,15,56,222,2252405.byte 102,15,56,222,2332406.byte 102,15,56,222,2412407.byte 102,15,56,222,2492408movl 120(%esp),%edi2409movl 124(%esp),%eax2410call .L_aesni_decrypt6_enter2411movdqa 80(%esp),%xmm02412pxor (%esp),%xmm22413movdqa 96(%esp),%xmm12414pxor 16(%esp),%xmm32415pxor 32(%esp),%xmm42416pxor 48(%esp),%xmm52417pxor 64(%esp),%xmm62418pxor %xmm0,%xmm72419pxor %xmm2,%xmm12420movdqu %xmm2,-96(%edi,%esi,1)2421pxor %xmm3,%xmm12422movdqu %xmm3,-80(%edi,%esi,1)2423pxor %xmm4,%xmm12424movdqu %xmm4,-64(%edi,%esi,1)2425pxor %xmm5,%xmm12426movdqu %xmm5,-48(%edi,%esi,1)2427pxor %xmm6,%xmm12428movdqu %xmm6,-32(%edi,%esi,1)2429pxor %xmm7,%xmm12430movdqu %xmm7,-16(%edi,%esi,1)2431cmpl %eax,%esi2432jbe .L087grandloop2433.L086short:2434addl $96,%eax2435subl %esi,%eax2436jz .L088done2437cmpl $32,%eax2438jb .L089one2439je .L090two2440cmpl $64,%eax2441jb .L091three2442je .L092four2443leal 1(%ebp),%ecx2444leal 3(%ebp),%eax2445bsfl %ecx,%ecx2446bsfl %eax,%eax2447shll $4,%ecx2448shll $4,%eax2449movdqu (%ebx),%xmm22450movdqu (%ebx,%ecx,1),%xmm32451movl 116(%esp),%ecx2452movdqa %xmm2,%xmm42453movdqu (%ebx,%eax,1),%xmm52454movdqa %xmm2,%xmm62455pxor %xmm0,%xmm22456pxor %xmm2,%xmm32457movdqa %xmm2,(%esp)2458pxor %xmm3,%xmm42459movdqa %xmm3,16(%esp)2460pxor %xmm4,%xmm52461movdqa %xmm4,32(%esp)2462pxor %xmm5,%xmm62463movdqa %xmm5,48(%esp)2464pxor %xmm6,%xmm72465movdqa %xmm6,64(%esp)2466movups -48(%edx,%ecx,1),%xmm02467movdqu (%esi),%xmm22468movdqu 16(%esi),%xmm32469movdqu 32(%esi),%xmm42470movdqu 48(%esi),%xmm52471movdqu 64(%esi),%xmm62472pxor %xmm7,%xmm72473movdqa %xmm1,96(%esp)2474pxor %xmm0,%xmm22475pxor %xmm0,%xmm32476pxor %xmm0,%xmm42477pxor %xmm0,%xmm52478pxor %xmm0,%xmm62479movups -32(%edx,%ecx,1),%xmm12480pxor (%esp),%xmm22481pxor 16(%esp),%xmm32482pxor 32(%esp),%xmm42483pxor 48(%esp),%xmm52484pxor 64(%esp),%xmm62485movups -16(%edx,%ecx,1),%xmm02486.byte 102,15,56,222,2092487.byte 102,15,56,222,2172488.byte 102,15,56,222,2252489.byte 102,15,56,222,2332490.byte 102,15,56,222,2412491.byte 102,15,56,222,2492492movl 120(%esp),%edi2493call .L_aesni_decrypt6_enter2494movdqa 64(%esp),%xmm02495pxor (%esp),%xmm22496movdqa 96(%esp),%xmm12497pxor 16(%esp),%xmm32498pxor 32(%esp),%xmm42499pxor 48(%esp),%xmm52500pxor %xmm0,%xmm62501pxor %xmm2,%xmm12502movdqu %xmm2,(%edi,%esi,1)2503pxor %xmm3,%xmm12504movdqu %xmm3,16(%edi,%esi,1)2505pxor %xmm4,%xmm12506movdqu %xmm4,32(%edi,%esi,1)2507pxor %xmm5,%xmm12508movdqu %xmm5,48(%edi,%esi,1)2509pxor %xmm6,%xmm12510movdqu %xmm6,64(%edi,%esi,1)2511jmp .L088done2512.align 162513.L089one:2514movdqu (%ebx),%xmm72515movl 112(%esp),%edx2516movdqu (%esi),%xmm22517movl 240(%edx),%ecx2518pxor %xmm0,%xmm72519pxor %xmm7,%xmm22520movdqa %xmm1,%xmm62521movl 120(%esp),%edi2522movups (%edx),%xmm02523movups 16(%edx),%xmm12524leal 32(%edx),%edx2525xorps %xmm0,%xmm22526.L093dec1_loop_18:2527.byte 102,15,56,222,2092528decl %ecx2529movups (%edx),%xmm12530leal 16(%edx),%edx2531jnz .L093dec1_loop_182532.byte 102,15,56,223,2092533xorps %xmm7,%xmm22534movaps %xmm6,%xmm12535movdqa %xmm7,%xmm02536xorps %xmm2,%xmm12537movups %xmm2,(%edi,%esi,1)2538jmp .L088done2539.align 162540.L090two:2541leal 1(%ebp),%ecx2542movl 112(%esp),%edx2543bsfl %ecx,%ecx2544shll $4,%ecx2545movdqu (%ebx),%xmm62546movdqu (%ebx,%ecx,1),%xmm72547movdqu (%esi),%xmm22548movdqu 16(%esi),%xmm32549movl 240(%edx),%ecx2550movdqa %xmm1,%xmm52551pxor %xmm0,%xmm62552pxor %xmm6,%xmm72553pxor %xmm6,%xmm22554pxor %xmm7,%xmm32555movl 120(%esp),%edi2556call _aesni_decrypt22557xorps %xmm6,%xmm22558xorps %xmm7,%xmm32559movdqa %xmm7,%xmm02560xorps %xmm2,%xmm52561movups %xmm2,(%edi,%esi,1)2562xorps %xmm3,%xmm52563movups %xmm3,16(%edi,%esi,1)2564movaps %xmm5,%xmm12565jmp .L088done2566.align 162567.L091three:2568leal 1(%ebp),%ecx2569movl 112(%esp),%edx2570bsfl %ecx,%ecx2571shll $4,%ecx2572movdqu (%ebx),%xmm52573movdqu (%ebx,%ecx,1),%xmm62574movdqa %xmm5,%xmm72575movdqu (%esi),%xmm22576movdqu 16(%esi),%xmm32577movdqu 32(%esi),%xmm42578movl 240(%edx),%ecx2579movdqa %xmm1,96(%esp)2580pxor %xmm0,%xmm52581pxor %xmm5,%xmm62582pxor %xmm6,%xmm72583pxor %xmm5,%xmm22584pxor %xmm6,%xmm32585pxor %xmm7,%xmm42586movl 120(%esp),%edi2587call _aesni_decrypt32588movdqa 96(%esp),%xmm12589xorps %xmm5,%xmm22590xorps %xmm6,%xmm32591xorps %xmm7,%xmm42592movups %xmm2,(%edi,%esi,1)2593pxor %xmm2,%xmm12594movdqa %xmm7,%xmm02595movups %xmm3,16(%edi,%esi,1)2596pxor %xmm3,%xmm12597movups %xmm4,32(%edi,%esi,1)2598pxor %xmm4,%xmm12599jmp .L088done2600.align 162601.L092four:2602leal 1(%ebp),%ecx2603leal 3(%ebp),%eax2604bsfl %ecx,%ecx2605bsfl %eax,%eax2606movl 112(%esp),%edx2607shll $4,%ecx2608shll $4,%eax2609movdqu (%ebx),%xmm42610movdqu (%ebx,%ecx,1),%xmm52611movdqa %xmm4,%xmm62612movdqu (%ebx,%eax,1),%xmm72613pxor %xmm0,%xmm42614movdqu (%esi),%xmm22615pxor %xmm4,%xmm52616movdqu 16(%esi),%xmm32617pxor %xmm5,%xmm62618movdqa %xmm4,(%esp)2619pxor %xmm6,%xmm72620movdqa %xmm5,16(%esp)2621movdqu 32(%esi),%xmm42622movdqu 48(%esi),%xmm52623movl 240(%edx),%ecx2624movdqa %xmm1,96(%esp)2625pxor (%esp),%xmm22626pxor 16(%esp),%xmm32627pxor %xmm6,%xmm42628pxor %xmm7,%xmm52629movl 120(%esp),%edi2630call _aesni_decrypt42631movdqa 96(%esp),%xmm12632xorps (%esp),%xmm22633xorps 16(%esp),%xmm32634xorps %xmm6,%xmm42635movups %xmm2,(%edi,%esi,1)2636pxor %xmm2,%xmm12637xorps %xmm7,%xmm52638movups %xmm3,16(%edi,%esi,1)2639pxor %xmm3,%xmm12640movdqa %xmm7,%xmm02641movups %xmm4,32(%edi,%esi,1)2642pxor %xmm4,%xmm12643movups %xmm5,48(%edi,%esi,1)2644pxor %xmm5,%xmm12645.L088done:2646movl 128(%esp),%edx2647pxor %xmm2,%xmm22648pxor %xmm3,%xmm32649movdqa %xmm2,(%esp)2650pxor %xmm4,%xmm42651movdqa %xmm2,16(%esp)2652pxor %xmm5,%xmm52653movdqa %xmm2,32(%esp)2654pxor %xmm6,%xmm62655movdqa %xmm2,48(%esp)2656pxor %xmm7,%xmm72657movdqa %xmm2,64(%esp)2658movdqa %xmm2,80(%esp)2659movdqa %xmm2,96(%esp)2660leal (%edx),%esp2661movl 40(%esp),%ecx2662movl 48(%esp),%ebx2663movdqu %xmm0,(%ecx)2664pxor %xmm0,%xmm02665movdqu %xmm1,(%ebx)2666pxor %xmm1,%xmm12667popl %edi2668popl %esi2669popl %ebx2670popl %ebp2671ret2672.size aesni_ocb_decrypt,.-.L_aesni_ocb_decrypt_begin2673.globl aesni_cbc_encrypt2674.type aesni_cbc_encrypt,@function2675.align 162676aesni_cbc_encrypt:2677.L_aesni_cbc_encrypt_begin:2678#ifdef __CET__26792680.byte 243,15,30,2512681#endif26822683pushl %ebp2684pushl %ebx2685pushl %esi2686pushl %edi2687movl 20(%esp),%esi2688movl %esp,%ebx2689movl 24(%esp),%edi2690subl $24,%ebx2691movl 28(%esp),%eax2692andl $-16,%ebx2693movl 32(%esp),%edx2694movl 36(%esp),%ebp2695testl %eax,%eax2696jz .L094cbc_abort2697cmpl $0,40(%esp)2698xchgl %esp,%ebx2699movups (%ebp),%xmm72700movl 240(%edx),%ecx2701movl %edx,%ebp2702movl %ebx,16(%esp)2703movl %ecx,%ebx2704je .L095cbc_decrypt2705movaps %xmm7,%xmm22706cmpl $16,%eax2707jb .L096cbc_enc_tail2708subl $16,%eax2709jmp .L097cbc_enc_loop2710.align 162711.L097cbc_enc_loop:2712movups (%esi),%xmm72713leal 16(%esi),%esi2714movups (%edx),%xmm02715movups 16(%edx),%xmm12716xorps %xmm0,%xmm72717leal 32(%edx),%edx2718xorps %xmm7,%xmm22719.L098enc1_loop_19:2720.byte 102,15,56,220,2092721decl %ecx2722movups (%edx),%xmm12723leal 16(%edx),%edx2724jnz .L098enc1_loop_192725.byte 102,15,56,221,2092726movl %ebx,%ecx2727movl %ebp,%edx2728movups %xmm2,(%edi)2729leal 16(%edi),%edi2730subl $16,%eax2731jnc .L097cbc_enc_loop2732addl $16,%eax2733jnz .L096cbc_enc_tail2734movaps %xmm2,%xmm72735pxor %xmm2,%xmm22736jmp .L099cbc_ret2737.L096cbc_enc_tail:2738movl %eax,%ecx2739.long 27674517852740movl $16,%ecx2741subl %eax,%ecx2742xorl %eax,%eax2743.long 28681150812744leal -16(%edi),%edi2745movl %ebx,%ecx2746movl %edi,%esi2747movl %ebp,%edx2748jmp .L097cbc_enc_loop2749.align 162750.L095cbc_decrypt:2751cmpl $80,%eax2752jbe .L100cbc_dec_tail2753movaps %xmm7,(%esp)2754subl $80,%eax2755jmp .L101cbc_dec_loop6_enter2756.align 162757.L102cbc_dec_loop6:2758movaps %xmm0,(%esp)2759movups %xmm7,(%edi)2760leal 16(%edi),%edi2761.L101cbc_dec_loop6_enter:2762movdqu (%esi),%xmm22763movdqu 16(%esi),%xmm32764movdqu 32(%esi),%xmm42765movdqu 48(%esi),%xmm52766movdqu 64(%esi),%xmm62767movdqu 80(%esi),%xmm72768call _aesni_decrypt62769movups (%esi),%xmm12770movups 16(%esi),%xmm02771xorps (%esp),%xmm22772xorps %xmm1,%xmm32773movups 32(%esi),%xmm12774xorps %xmm0,%xmm42775movups 48(%esi),%xmm02776xorps %xmm1,%xmm52777movups 64(%esi),%xmm12778xorps %xmm0,%xmm62779movups 80(%esi),%xmm02780xorps %xmm1,%xmm72781movups %xmm2,(%edi)2782movups %xmm3,16(%edi)2783leal 96(%esi),%esi2784movups %xmm4,32(%edi)2785movl %ebx,%ecx2786movups %xmm5,48(%edi)2787movl %ebp,%edx2788movups %xmm6,64(%edi)2789leal 80(%edi),%edi2790subl $96,%eax2791ja .L102cbc_dec_loop62792movaps %xmm7,%xmm22793movaps %xmm0,%xmm72794addl $80,%eax2795jle .L103cbc_dec_clear_tail_collected2796movups %xmm2,(%edi)2797leal 16(%edi),%edi2798.L100cbc_dec_tail:2799movups (%esi),%xmm22800movaps %xmm2,%xmm62801cmpl $16,%eax2802jbe .L104cbc_dec_one2803movups 16(%esi),%xmm32804movaps %xmm3,%xmm52805cmpl $32,%eax2806jbe .L105cbc_dec_two2807movups 32(%esi),%xmm42808cmpl $48,%eax2809jbe .L106cbc_dec_three2810movups 48(%esi),%xmm52811cmpl $64,%eax2812jbe .L107cbc_dec_four2813movups 64(%esi),%xmm62814movaps %xmm7,(%esp)2815movups (%esi),%xmm22816xorps %xmm7,%xmm72817call _aesni_decrypt62818movups (%esi),%xmm12819movups 16(%esi),%xmm02820xorps (%esp),%xmm22821xorps %xmm1,%xmm32822movups 32(%esi),%xmm12823xorps %xmm0,%xmm42824movups 48(%esi),%xmm02825xorps %xmm1,%xmm52826movups 64(%esi),%xmm72827xorps %xmm0,%xmm62828movups %xmm2,(%edi)2829movups %xmm3,16(%edi)2830pxor %xmm3,%xmm32831movups %xmm4,32(%edi)2832pxor %xmm4,%xmm42833movups %xmm5,48(%edi)2834pxor %xmm5,%xmm52835leal 64(%edi),%edi2836movaps %xmm6,%xmm22837pxor %xmm6,%xmm62838subl $80,%eax2839jmp .L108cbc_dec_tail_collected2840.align 162841.L104cbc_dec_one:2842movups (%edx),%xmm02843movups 16(%edx),%xmm12844leal 32(%edx),%edx2845xorps %xmm0,%xmm22846.L109dec1_loop_20:2847.byte 102,15,56,222,2092848decl %ecx2849movups (%edx),%xmm12850leal 16(%edx),%edx2851jnz .L109dec1_loop_202852.byte 102,15,56,223,2092853xorps %xmm7,%xmm22854movaps %xmm6,%xmm72855subl $16,%eax2856jmp .L108cbc_dec_tail_collected2857.align 162858.L105cbc_dec_two:2859call _aesni_decrypt22860xorps %xmm7,%xmm22861xorps %xmm6,%xmm32862movups %xmm2,(%edi)2863movaps %xmm3,%xmm22864pxor %xmm3,%xmm32865leal 16(%edi),%edi2866movaps %xmm5,%xmm72867subl $32,%eax2868jmp .L108cbc_dec_tail_collected2869.align 162870.L106cbc_dec_three:2871call _aesni_decrypt32872xorps %xmm7,%xmm22873xorps %xmm6,%xmm32874xorps %xmm5,%xmm42875movups %xmm2,(%edi)2876movaps %xmm4,%xmm22877pxor %xmm4,%xmm42878movups %xmm3,16(%edi)2879pxor %xmm3,%xmm32880leal 32(%edi),%edi2881movups 32(%esi),%xmm72882subl $48,%eax2883jmp .L108cbc_dec_tail_collected2884.align 162885.L107cbc_dec_four:2886call _aesni_decrypt42887movups 16(%esi),%xmm12888movups 32(%esi),%xmm02889xorps %xmm7,%xmm22890movups 48(%esi),%xmm72891xorps %xmm6,%xmm32892movups %xmm2,(%edi)2893xorps %xmm1,%xmm42894movups %xmm3,16(%edi)2895pxor %xmm3,%xmm32896xorps %xmm0,%xmm52897movups %xmm4,32(%edi)2898pxor %xmm4,%xmm42899leal 48(%edi),%edi2900movaps %xmm5,%xmm22901pxor %xmm5,%xmm52902subl $64,%eax2903jmp .L108cbc_dec_tail_collected2904.align 162905.L103cbc_dec_clear_tail_collected:2906pxor %xmm3,%xmm32907pxor %xmm4,%xmm42908pxor %xmm5,%xmm52909pxor %xmm6,%xmm62910.L108cbc_dec_tail_collected:2911andl $15,%eax2912jnz .L110cbc_dec_tail_partial2913movups %xmm2,(%edi)2914pxor %xmm0,%xmm02915jmp .L099cbc_ret2916.align 162917.L110cbc_dec_tail_partial:2918movaps %xmm2,(%esp)2919pxor %xmm0,%xmm02920movl $16,%ecx2921movl %esp,%esi2922subl %eax,%ecx2923.long 27674517852924movdqa %xmm2,(%esp)2925.L099cbc_ret:2926movl 16(%esp),%esp2927movl 36(%esp),%ebp2928pxor %xmm2,%xmm22929pxor %xmm1,%xmm12930movups %xmm7,(%ebp)2931pxor %xmm7,%xmm72932.L094cbc_abort:2933popl %edi2934popl %esi2935popl %ebx2936popl %ebp2937ret2938.size aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin2939.type _aesni_set_encrypt_key,@function2940.align 162941_aesni_set_encrypt_key:2942#ifdef __CET__29432944.byte 243,15,30,2512945#endif29462947pushl %ebp2948pushl %ebx2949testl %eax,%eax2950jz .L111bad_pointer2951testl %edx,%edx2952jz .L111bad_pointer2953call .L112pic2954.L112pic:2955popl %ebx2956leal .Lkey_const-.L112pic(%ebx),%ebx2957leal OPENSSL_ia32cap_P-.Lkey_const(%ebx),%ebp2958movups (%eax),%xmm02959xorps %xmm4,%xmm42960movl 4(%ebp),%ebp2961leal 16(%edx),%edx2962andl $268437504,%ebp2963cmpl $256,%ecx2964je .L11314rounds2965cmpl $192,%ecx2966je .L11412rounds2967cmpl $128,%ecx2968jne .L115bad_keybits2969.align 162970.L11610rounds:2971cmpl $268435456,%ebp2972je .L11710rounds_alt2973movl $9,%ecx2974movups %xmm0,-16(%edx)2975.byte 102,15,58,223,200,12976call .L118key_128_cold2977.byte 102,15,58,223,200,22978call .L119key_1282979.byte 102,15,58,223,200,42980call .L119key_1282981.byte 102,15,58,223,200,82982call .L119key_1282983.byte 102,15,58,223,200,162984call .L119key_1282985.byte 102,15,58,223,200,322986call .L119key_1282987.byte 102,15,58,223,200,642988call .L119key_1282989.byte 102,15,58,223,200,1282990call .L119key_1282991.byte 102,15,58,223,200,272992call .L119key_1282993.byte 102,15,58,223,200,542994call .L119key_1282995movups %xmm0,(%edx)2996movl %ecx,80(%edx)2997jmp .L120good_key2998.align 162999.L119key_128:3000movups %xmm0,(%edx)3001leal 16(%edx),%edx3002.L118key_128_cold:3003shufps $16,%xmm0,%xmm43004xorps %xmm4,%xmm03005shufps $140,%xmm0,%xmm43006xorps %xmm4,%xmm03007shufps $255,%xmm1,%xmm13008xorps %xmm1,%xmm03009ret3010.align 163011.L11710rounds_alt:3012movdqa (%ebx),%xmm53013movl $8,%ecx3014movdqa 32(%ebx),%xmm43015movdqa %xmm0,%xmm23016movdqu %xmm0,-16(%edx)3017.L121loop_key128:3018.byte 102,15,56,0,1973019.byte 102,15,56,221,1963020pslld $1,%xmm43021leal 16(%edx),%edx3022movdqa %xmm2,%xmm33023pslldq $4,%xmm23024pxor %xmm2,%xmm33025pslldq $4,%xmm23026pxor %xmm2,%xmm33027pslldq $4,%xmm23028pxor %xmm3,%xmm23029pxor %xmm2,%xmm03030movdqu %xmm0,-16(%edx)3031movdqa %xmm0,%xmm23032decl %ecx3033jnz .L121loop_key1283034movdqa 48(%ebx),%xmm43035.byte 102,15,56,0,1973036.byte 102,15,56,221,1963037pslld $1,%xmm43038movdqa %xmm2,%xmm33039pslldq $4,%xmm23040pxor %xmm2,%xmm33041pslldq $4,%xmm23042pxor %xmm2,%xmm33043pslldq $4,%xmm23044pxor %xmm3,%xmm23045pxor %xmm2,%xmm03046movdqu %xmm0,(%edx)3047movdqa %xmm0,%xmm23048.byte 102,15,56,0,1973049.byte 102,15,56,221,1963050movdqa %xmm2,%xmm33051pslldq $4,%xmm23052pxor %xmm2,%xmm33053pslldq $4,%xmm23054pxor %xmm2,%xmm33055pslldq $4,%xmm23056pxor %xmm3,%xmm23057pxor %xmm2,%xmm03058movdqu %xmm0,16(%edx)3059movl $9,%ecx3060movl %ecx,96(%edx)3061jmp .L120good_key3062.align 163063.L11412rounds:3064movq 16(%eax),%xmm23065cmpl $268435456,%ebp3066je .L12212rounds_alt3067movl $11,%ecx3068movups %xmm0,-16(%edx)3069.byte 102,15,58,223,202,13070call .L123key_192a_cold3071.byte 102,15,58,223,202,23072call .L124key_192b3073.byte 102,15,58,223,202,43074call .L125key_192a3075.byte 102,15,58,223,202,83076call .L124key_192b3077.byte 102,15,58,223,202,163078call .L125key_192a3079.byte 102,15,58,223,202,323080call .L124key_192b3081.byte 102,15,58,223,202,643082call .L125key_192a3083.byte 102,15,58,223,202,1283084call .L124key_192b3085movups %xmm0,(%edx)3086movl %ecx,48(%edx)3087jmp .L120good_key3088.align 163089.L125key_192a:3090movups %xmm0,(%edx)3091leal 16(%edx),%edx3092.align 163093.L123key_192a_cold:3094movaps %xmm2,%xmm53095.L126key_192b_warm:3096shufps $16,%xmm0,%xmm43097movdqa %xmm2,%xmm33098xorps %xmm4,%xmm03099shufps $140,%xmm0,%xmm43100pslldq $4,%xmm33101xorps %xmm4,%xmm03102pshufd $85,%xmm1,%xmm13103pxor %xmm3,%xmm23104pxor %xmm1,%xmm03105pshufd $255,%xmm0,%xmm33106pxor %xmm3,%xmm23107ret3108.align 163109.L124key_192b:3110movaps %xmm0,%xmm33111shufps $68,%xmm0,%xmm53112movups %xmm5,(%edx)3113shufps $78,%xmm2,%xmm33114movups %xmm3,16(%edx)3115leal 32(%edx),%edx3116jmp .L126key_192b_warm3117.align 163118.L12212rounds_alt:3119movdqa 16(%ebx),%xmm53120movdqa 32(%ebx),%xmm43121movl $8,%ecx3122movdqu %xmm0,-16(%edx)3123.L127loop_key192:3124movq %xmm2,(%edx)3125movdqa %xmm2,%xmm13126.byte 102,15,56,0,2133127.byte 102,15,56,221,2123128pslld $1,%xmm43129leal 24(%edx),%edx3130movdqa %xmm0,%xmm33131pslldq $4,%xmm03132pxor %xmm0,%xmm33133pslldq $4,%xmm03134pxor %xmm0,%xmm33135pslldq $4,%xmm03136pxor %xmm3,%xmm03137pshufd $255,%xmm0,%xmm33138pxor %xmm1,%xmm33139pslldq $4,%xmm13140pxor %xmm1,%xmm33141pxor %xmm2,%xmm03142pxor %xmm3,%xmm23143movdqu %xmm0,-16(%edx)3144decl %ecx3145jnz .L127loop_key1923146movl $11,%ecx3147movl %ecx,32(%edx)3148jmp .L120good_key3149.align 163150.L11314rounds:3151movups 16(%eax),%xmm23152leal 16(%edx),%edx3153cmpl $268435456,%ebp3154je .L12814rounds_alt3155movl $13,%ecx3156movups %xmm0,-32(%edx)3157movups %xmm2,-16(%edx)3158.byte 102,15,58,223,202,13159call .L129key_256a_cold3160.byte 102,15,58,223,200,13161call .L130key_256b3162.byte 102,15,58,223,202,23163call .L131key_256a3164.byte 102,15,58,223,200,23165call .L130key_256b3166.byte 102,15,58,223,202,43167call .L131key_256a3168.byte 102,15,58,223,200,43169call .L130key_256b3170.byte 102,15,58,223,202,83171call .L131key_256a3172.byte 102,15,58,223,200,83173call .L130key_256b3174.byte 102,15,58,223,202,163175call .L131key_256a3176.byte 102,15,58,223,200,163177call .L130key_256b3178.byte 102,15,58,223,202,323179call .L131key_256a3180.byte 102,15,58,223,200,323181call .L130key_256b3182.byte 102,15,58,223,202,643183call .L131key_256a3184movups %xmm0,(%edx)3185movl %ecx,16(%edx)3186xorl %eax,%eax3187jmp .L120good_key3188.align 163189.L131key_256a:3190movups %xmm2,(%edx)3191leal 16(%edx),%edx3192.L129key_256a_cold:3193shufps $16,%xmm0,%xmm43194xorps %xmm4,%xmm03195shufps $140,%xmm0,%xmm43196xorps %xmm4,%xmm03197shufps $255,%xmm1,%xmm13198xorps %xmm1,%xmm03199ret3200.align 163201.L130key_256b:3202movups %xmm0,(%edx)3203leal 16(%edx),%edx3204shufps $16,%xmm2,%xmm43205xorps %xmm4,%xmm23206shufps $140,%xmm2,%xmm43207xorps %xmm4,%xmm23208shufps $170,%xmm1,%xmm13209xorps %xmm1,%xmm23210ret3211.align 163212.L12814rounds_alt:3213movdqa (%ebx),%xmm53214movdqa 32(%ebx),%xmm43215movl $7,%ecx3216movdqu %xmm0,-32(%edx)3217movdqa %xmm2,%xmm13218movdqu %xmm2,-16(%edx)3219.L132loop_key256:3220.byte 102,15,56,0,2133221.byte 102,15,56,221,2123222movdqa %xmm0,%xmm33223pslldq $4,%xmm03224pxor %xmm0,%xmm33225pslldq $4,%xmm03226pxor %xmm0,%xmm33227pslldq $4,%xmm03228pxor %xmm3,%xmm03229pslld $1,%xmm43230pxor %xmm2,%xmm03231movdqu %xmm0,(%edx)3232decl %ecx3233jz .L133done_key2563234pshufd $255,%xmm0,%xmm23235pxor %xmm3,%xmm33236.byte 102,15,56,221,2113237movdqa %xmm1,%xmm33238pslldq $4,%xmm13239pxor %xmm1,%xmm33240pslldq $4,%xmm13241pxor %xmm1,%xmm33242pslldq $4,%xmm13243pxor %xmm3,%xmm13244pxor %xmm1,%xmm23245movdqu %xmm2,16(%edx)3246leal 32(%edx),%edx3247movdqa %xmm2,%xmm13248jmp .L132loop_key2563249.L133done_key256:3250movl $13,%ecx3251movl %ecx,16(%edx)3252.L120good_key:3253pxor %xmm0,%xmm03254pxor %xmm1,%xmm13255pxor %xmm2,%xmm23256pxor %xmm3,%xmm33257pxor %xmm4,%xmm43258pxor %xmm5,%xmm53259xorl %eax,%eax3260popl %ebx3261popl %ebp3262ret3263.align 43264.L111bad_pointer:3265movl $-1,%eax3266popl %ebx3267popl %ebp3268ret3269.align 43270.L115bad_keybits:3271pxor %xmm0,%xmm03272movl $-2,%eax3273popl %ebx3274popl %ebp3275ret3276.size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key3277.globl aesni_set_encrypt_key3278.type aesni_set_encrypt_key,@function3279.align 163280aesni_set_encrypt_key:3281.L_aesni_set_encrypt_key_begin:3282#ifdef __CET__32833284.byte 243,15,30,2513285#endif32863287movl 4(%esp),%eax3288movl 8(%esp),%ecx3289movl 12(%esp),%edx3290call _aesni_set_encrypt_key3291ret3292.size aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin3293.globl aesni_set_decrypt_key3294.type aesni_set_decrypt_key,@function3295.align 163296aesni_set_decrypt_key:3297.L_aesni_set_decrypt_key_begin:3298#ifdef __CET__32993300.byte 243,15,30,2513301#endif33023303movl 4(%esp),%eax3304movl 8(%esp),%ecx3305movl 12(%esp),%edx3306call _aesni_set_encrypt_key3307movl 12(%esp),%edx3308shll $4,%ecx3309testl %eax,%eax3310jnz .L134dec_key_ret3311leal 16(%edx,%ecx,1),%eax3312movups (%edx),%xmm03313movups (%eax),%xmm13314movups %xmm0,(%eax)3315movups %xmm1,(%edx)3316leal 16(%edx),%edx3317leal -16(%eax),%eax3318.L135dec_key_inverse:3319movups (%edx),%xmm03320movups (%eax),%xmm13321.byte 102,15,56,219,1923322.byte 102,15,56,219,2013323leal 16(%edx),%edx3324leal -16(%eax),%eax3325movups %xmm0,16(%eax)3326movups %xmm1,-16(%edx)3327cmpl %edx,%eax3328ja .L135dec_key_inverse3329movups (%edx),%xmm03330.byte 102,15,56,219,1923331movups %xmm0,(%edx)3332pxor %xmm0,%xmm03333pxor %xmm1,%xmm13334xorl %eax,%eax3335.L134dec_key_ret:3336ret3337.size aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin3338.align 643339.Lkey_const:3340.long 202313229,202313229,202313229,2023132293341.long 67569157,67569157,67569157,675691573342.long 1,1,1,13343.long 27,27,27,273344.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,693345.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,833346.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,1153347.byte 115,108,46,111,114,103,62,03348.comm OPENSSL_ia32cap_P,40,433493350.section ".note.gnu.property", "a"3351.p2align 23352.long 1f - 0f3353.long 4f - 1f3354.long 533550:3356.asciz "GNU"33571:3358.p2align 23359.long 0xc00000023360.long 3f - 2f33612:3362.long 333633:3364.p2align 233654:3366#else3367.text3368.globl aesni_encrypt3369.type aesni_encrypt,@function3370.align 163371aesni_encrypt:3372.L_aesni_encrypt_begin:3373#ifdef __CET__33743375.byte 243,15,30,2513376#endif33773378movl 4(%esp),%eax3379movl 12(%esp),%edx3380movups (%eax),%xmm23381movl 240(%edx),%ecx3382movl 8(%esp),%eax3383movups (%edx),%xmm03384movups 16(%edx),%xmm13385leal 32(%edx),%edx3386xorps %xmm0,%xmm23387.L000enc1_loop_1:3388.byte 102,15,56,220,2093389decl %ecx3390movups (%edx),%xmm13391leal 16(%edx),%edx3392jnz .L000enc1_loop_13393.byte 102,15,56,221,2093394pxor %xmm0,%xmm03395pxor %xmm1,%xmm13396movups %xmm2,(%eax)3397pxor %xmm2,%xmm23398ret3399.size aesni_encrypt,.-.L_aesni_encrypt_begin3400.globl aesni_decrypt3401.type aesni_decrypt,@function3402.align 163403aesni_decrypt:3404.L_aesni_decrypt_begin:3405#ifdef __CET__34063407.byte 243,15,30,2513408#endif34093410movl 4(%esp),%eax3411movl 12(%esp),%edx3412movups (%eax),%xmm23413movl 240(%edx),%ecx3414movl 8(%esp),%eax3415movups (%edx),%xmm03416movups 16(%edx),%xmm13417leal 32(%edx),%edx3418xorps %xmm0,%xmm23419.L001dec1_loop_2:3420.byte 102,15,56,222,2093421decl %ecx3422movups (%edx),%xmm13423leal 16(%edx),%edx3424jnz .L001dec1_loop_23425.byte 102,15,56,223,2093426pxor %xmm0,%xmm03427pxor %xmm1,%xmm13428movups %xmm2,(%eax)3429pxor %xmm2,%xmm23430ret3431.size aesni_decrypt,.-.L_aesni_decrypt_begin3432.type _aesni_encrypt2,@function3433.align 163434_aesni_encrypt2:3435#ifdef __CET__34363437.byte 243,15,30,2513438#endif34393440movups (%edx),%xmm03441shll $4,%ecx3442movups 16(%edx),%xmm13443xorps %xmm0,%xmm23444pxor %xmm0,%xmm33445movups 32(%edx),%xmm03446leal 32(%edx,%ecx,1),%edx3447negl %ecx3448addl $16,%ecx3449.L002enc2_loop:3450.byte 102,15,56,220,2093451.byte 102,15,56,220,2173452movups (%edx,%ecx,1),%xmm13453addl $32,%ecx3454.byte 102,15,56,220,2083455.byte 102,15,56,220,2163456movups -16(%edx,%ecx,1),%xmm03457jnz .L002enc2_loop3458.byte 102,15,56,220,2093459.byte 102,15,56,220,2173460.byte 102,15,56,221,2083461.byte 102,15,56,221,2163462ret3463.size _aesni_encrypt2,.-_aesni_encrypt23464.type _aesni_decrypt2,@function3465.align 163466_aesni_decrypt2:3467#ifdef __CET__34683469.byte 243,15,30,2513470#endif34713472movups (%edx),%xmm03473shll $4,%ecx3474movups 16(%edx),%xmm13475xorps %xmm0,%xmm23476pxor %xmm0,%xmm33477movups 32(%edx),%xmm03478leal 32(%edx,%ecx,1),%edx3479negl %ecx3480addl $16,%ecx3481.L003dec2_loop:3482.byte 102,15,56,222,2093483.byte 102,15,56,222,2173484movups (%edx,%ecx,1),%xmm13485addl $32,%ecx3486.byte 102,15,56,222,2083487.byte 102,15,56,222,2163488movups -16(%edx,%ecx,1),%xmm03489jnz .L003dec2_loop3490.byte 102,15,56,222,2093491.byte 102,15,56,222,2173492.byte 102,15,56,223,2083493.byte 102,15,56,223,2163494ret3495.size _aesni_decrypt2,.-_aesni_decrypt23496.type _aesni_encrypt3,@function3497.align 163498_aesni_encrypt3:3499#ifdef __CET__35003501.byte 243,15,30,2513502#endif35033504movups (%edx),%xmm03505shll $4,%ecx3506movups 16(%edx),%xmm13507xorps %xmm0,%xmm23508pxor %xmm0,%xmm33509pxor %xmm0,%xmm43510movups 32(%edx),%xmm03511leal 32(%edx,%ecx,1),%edx3512negl %ecx3513addl $16,%ecx3514.L004enc3_loop:3515.byte 102,15,56,220,2093516.byte 102,15,56,220,2173517.byte 102,15,56,220,2253518movups (%edx,%ecx,1),%xmm13519addl $32,%ecx3520.byte 102,15,56,220,2083521.byte 102,15,56,220,2163522.byte 102,15,56,220,2243523movups -16(%edx,%ecx,1),%xmm03524jnz .L004enc3_loop3525.byte 102,15,56,220,2093526.byte 102,15,56,220,2173527.byte 102,15,56,220,2253528.byte 102,15,56,221,2083529.byte 102,15,56,221,2163530.byte 102,15,56,221,2243531ret3532.size _aesni_encrypt3,.-_aesni_encrypt33533.type _aesni_decrypt3,@function3534.align 163535_aesni_decrypt3:3536#ifdef __CET__35373538.byte 243,15,30,2513539#endif35403541movups (%edx),%xmm03542shll $4,%ecx3543movups 16(%edx),%xmm13544xorps %xmm0,%xmm23545pxor %xmm0,%xmm33546pxor %xmm0,%xmm43547movups 32(%edx),%xmm03548leal 32(%edx,%ecx,1),%edx3549negl %ecx3550addl $16,%ecx3551.L005dec3_loop:3552.byte 102,15,56,222,2093553.byte 102,15,56,222,2173554.byte 102,15,56,222,2253555movups (%edx,%ecx,1),%xmm13556addl $32,%ecx3557.byte 102,15,56,222,2083558.byte 102,15,56,222,2163559.byte 102,15,56,222,2243560movups -16(%edx,%ecx,1),%xmm03561jnz .L005dec3_loop3562.byte 102,15,56,222,2093563.byte 102,15,56,222,2173564.byte 102,15,56,222,2253565.byte 102,15,56,223,2083566.byte 102,15,56,223,2163567.byte 102,15,56,223,2243568ret3569.size _aesni_decrypt3,.-_aesni_decrypt33570.type _aesni_encrypt4,@function3571.align 163572_aesni_encrypt4:3573#ifdef __CET__35743575.byte 243,15,30,2513576#endif35773578movups (%edx),%xmm03579movups 16(%edx),%xmm13580shll $4,%ecx3581xorps %xmm0,%xmm23582pxor %xmm0,%xmm33583pxor %xmm0,%xmm43584pxor %xmm0,%xmm53585movups 32(%edx),%xmm03586leal 32(%edx,%ecx,1),%edx3587negl %ecx3588.byte 15,31,64,03589addl $16,%ecx3590.L006enc4_loop:3591.byte 102,15,56,220,2093592.byte 102,15,56,220,2173593.byte 102,15,56,220,2253594.byte 102,15,56,220,2333595movups (%edx,%ecx,1),%xmm13596addl $32,%ecx3597.byte 102,15,56,220,2083598.byte 102,15,56,220,2163599.byte 102,15,56,220,2243600.byte 102,15,56,220,2323601movups -16(%edx,%ecx,1),%xmm03602jnz .L006enc4_loop3603.byte 102,15,56,220,2093604.byte 102,15,56,220,2173605.byte 102,15,56,220,2253606.byte 102,15,56,220,2333607.byte 102,15,56,221,2083608.byte 102,15,56,221,2163609.byte 102,15,56,221,2243610.byte 102,15,56,221,2323611ret3612.size _aesni_encrypt4,.-_aesni_encrypt43613.type _aesni_decrypt4,@function3614.align 163615_aesni_decrypt4:3616#ifdef __CET__36173618.byte 243,15,30,2513619#endif36203621movups (%edx),%xmm03622movups 16(%edx),%xmm13623shll $4,%ecx3624xorps %xmm0,%xmm23625pxor %xmm0,%xmm33626pxor %xmm0,%xmm43627pxor %xmm0,%xmm53628movups 32(%edx),%xmm03629leal 32(%edx,%ecx,1),%edx3630negl %ecx3631.byte 15,31,64,03632addl $16,%ecx3633.L007dec4_loop:3634.byte 102,15,56,222,2093635.byte 102,15,56,222,2173636.byte 102,15,56,222,2253637.byte 102,15,56,222,2333638movups (%edx,%ecx,1),%xmm13639addl $32,%ecx3640.byte 102,15,56,222,2083641.byte 102,15,56,222,2163642.byte 102,15,56,222,2243643.byte 102,15,56,222,2323644movups -16(%edx,%ecx,1),%xmm03645jnz .L007dec4_loop3646.byte 102,15,56,222,2093647.byte 102,15,56,222,2173648.byte 102,15,56,222,2253649.byte 102,15,56,222,2333650.byte 102,15,56,223,2083651.byte 102,15,56,223,2163652.byte 102,15,56,223,2243653.byte 102,15,56,223,2323654ret3655.size _aesni_decrypt4,.-_aesni_decrypt43656.type _aesni_encrypt6,@function3657.align 163658_aesni_encrypt6:3659#ifdef __CET__36603661.byte 243,15,30,2513662#endif36633664movups (%edx),%xmm03665shll $4,%ecx3666movups 16(%edx),%xmm13667xorps %xmm0,%xmm23668pxor %xmm0,%xmm33669pxor %xmm0,%xmm43670.byte 102,15,56,220,2093671pxor %xmm0,%xmm53672pxor %xmm0,%xmm63673.byte 102,15,56,220,2173674leal 32(%edx,%ecx,1),%edx3675negl %ecx3676.byte 102,15,56,220,2253677pxor %xmm0,%xmm73678movups (%edx,%ecx,1),%xmm03679addl $16,%ecx3680jmp .L008_aesni_encrypt6_inner3681.align 163682.L009enc6_loop:3683.byte 102,15,56,220,2093684.byte 102,15,56,220,2173685.byte 102,15,56,220,2253686.L008_aesni_encrypt6_inner:3687.byte 102,15,56,220,2333688.byte 102,15,56,220,2413689.byte 102,15,56,220,2493690.L_aesni_encrypt6_enter:3691movups (%edx,%ecx,1),%xmm13692addl $32,%ecx3693.byte 102,15,56,220,2083694.byte 102,15,56,220,2163695.byte 102,15,56,220,2243696.byte 102,15,56,220,2323697.byte 102,15,56,220,2403698.byte 102,15,56,220,2483699movups -16(%edx,%ecx,1),%xmm03700jnz .L009enc6_loop3701.byte 102,15,56,220,2093702.byte 102,15,56,220,2173703.byte 102,15,56,220,2253704.byte 102,15,56,220,2333705.byte 102,15,56,220,2413706.byte 102,15,56,220,2493707.byte 102,15,56,221,2083708.byte 102,15,56,221,2163709.byte 102,15,56,221,2243710.byte 102,15,56,221,2323711.byte 102,15,56,221,2403712.byte 102,15,56,221,2483713ret3714.size _aesni_encrypt6,.-_aesni_encrypt63715.type _aesni_decrypt6,@function3716.align 163717_aesni_decrypt6:3718#ifdef __CET__37193720.byte 243,15,30,2513721#endif37223723movups (%edx),%xmm03724shll $4,%ecx3725movups 16(%edx),%xmm13726xorps %xmm0,%xmm23727pxor %xmm0,%xmm33728pxor %xmm0,%xmm43729.byte 102,15,56,222,2093730pxor %xmm0,%xmm53731pxor %xmm0,%xmm63732.byte 102,15,56,222,2173733leal 32(%edx,%ecx,1),%edx3734negl %ecx3735.byte 102,15,56,222,2253736pxor %xmm0,%xmm73737movups (%edx,%ecx,1),%xmm03738addl $16,%ecx3739jmp .L010_aesni_decrypt6_inner3740.align 163741.L011dec6_loop:3742.byte 102,15,56,222,2093743.byte 102,15,56,222,2173744.byte 102,15,56,222,2253745.L010_aesni_decrypt6_inner:3746.byte 102,15,56,222,2333747.byte 102,15,56,222,2413748.byte 102,15,56,222,2493749.L_aesni_decrypt6_enter:3750movups (%edx,%ecx,1),%xmm13751addl $32,%ecx3752.byte 102,15,56,222,2083753.byte 102,15,56,222,2163754.byte 102,15,56,222,2243755.byte 102,15,56,222,2323756.byte 102,15,56,222,2403757.byte 102,15,56,222,2483758movups -16(%edx,%ecx,1),%xmm03759jnz .L011dec6_loop3760.byte 102,15,56,222,2093761.byte 102,15,56,222,2173762.byte 102,15,56,222,2253763.byte 102,15,56,222,2333764.byte 102,15,56,222,2413765.byte 102,15,56,222,2493766.byte 102,15,56,223,2083767.byte 102,15,56,223,2163768.byte 102,15,56,223,2243769.byte 102,15,56,223,2323770.byte 102,15,56,223,2403771.byte 102,15,56,223,2483772ret3773.size _aesni_decrypt6,.-_aesni_decrypt63774.globl aesni_ecb_encrypt3775.type aesni_ecb_encrypt,@function3776.align 163777aesni_ecb_encrypt:3778.L_aesni_ecb_encrypt_begin:3779#ifdef __CET__37803781.byte 243,15,30,2513782#endif37833784pushl %ebp3785pushl %ebx3786pushl %esi3787pushl %edi3788movl 20(%esp),%esi3789movl 24(%esp),%edi3790movl 28(%esp),%eax3791movl 32(%esp),%edx3792movl 36(%esp),%ebx3793andl $-16,%eax3794jz .L012ecb_ret3795movl 240(%edx),%ecx3796testl %ebx,%ebx3797jz .L013ecb_decrypt3798movl %edx,%ebp3799movl %ecx,%ebx3800cmpl $96,%eax3801jb .L014ecb_enc_tail3802movdqu (%esi),%xmm23803movdqu 16(%esi),%xmm33804movdqu 32(%esi),%xmm43805movdqu 48(%esi),%xmm53806movdqu 64(%esi),%xmm63807movdqu 80(%esi),%xmm73808leal 96(%esi),%esi3809subl $96,%eax3810jmp .L015ecb_enc_loop6_enter3811.align 163812.L016ecb_enc_loop6:3813movups %xmm2,(%edi)3814movdqu (%esi),%xmm23815movups %xmm3,16(%edi)3816movdqu 16(%esi),%xmm33817movups %xmm4,32(%edi)3818movdqu 32(%esi),%xmm43819movups %xmm5,48(%edi)3820movdqu 48(%esi),%xmm53821movups %xmm6,64(%edi)3822movdqu 64(%esi),%xmm63823movups %xmm7,80(%edi)3824leal 96(%edi),%edi3825movdqu 80(%esi),%xmm73826leal 96(%esi),%esi3827.L015ecb_enc_loop6_enter:3828call _aesni_encrypt63829movl %ebp,%edx3830movl %ebx,%ecx3831subl $96,%eax3832jnc .L016ecb_enc_loop63833movups %xmm2,(%edi)3834movups %xmm3,16(%edi)3835movups %xmm4,32(%edi)3836movups %xmm5,48(%edi)3837movups %xmm6,64(%edi)3838movups %xmm7,80(%edi)3839leal 96(%edi),%edi3840addl $96,%eax3841jz .L012ecb_ret3842.L014ecb_enc_tail:3843movups (%esi),%xmm23844cmpl $32,%eax3845jb .L017ecb_enc_one3846movups 16(%esi),%xmm33847je .L018ecb_enc_two3848movups 32(%esi),%xmm43849cmpl $64,%eax3850jb .L019ecb_enc_three3851movups 48(%esi),%xmm53852je .L020ecb_enc_four3853movups 64(%esi),%xmm63854xorps %xmm7,%xmm73855call _aesni_encrypt63856movups %xmm2,(%edi)3857movups %xmm3,16(%edi)3858movups %xmm4,32(%edi)3859movups %xmm5,48(%edi)3860movups %xmm6,64(%edi)3861jmp .L012ecb_ret3862.align 163863.L017ecb_enc_one:3864movups (%edx),%xmm03865movups 16(%edx),%xmm13866leal 32(%edx),%edx3867xorps %xmm0,%xmm23868.L021enc1_loop_3:3869.byte 102,15,56,220,2093870decl %ecx3871movups (%edx),%xmm13872leal 16(%edx),%edx3873jnz .L021enc1_loop_33874.byte 102,15,56,221,2093875movups %xmm2,(%edi)3876jmp .L012ecb_ret3877.align 163878.L018ecb_enc_two:3879call _aesni_encrypt23880movups %xmm2,(%edi)3881movups %xmm3,16(%edi)3882jmp .L012ecb_ret3883.align 163884.L019ecb_enc_three:3885call _aesni_encrypt33886movups %xmm2,(%edi)3887movups %xmm3,16(%edi)3888movups %xmm4,32(%edi)3889jmp .L012ecb_ret3890.align 163891.L020ecb_enc_four:3892call _aesni_encrypt43893movups %xmm2,(%edi)3894movups %xmm3,16(%edi)3895movups %xmm4,32(%edi)3896movups %xmm5,48(%edi)3897jmp .L012ecb_ret3898.align 163899.L013ecb_decrypt:3900movl %edx,%ebp3901movl %ecx,%ebx3902cmpl $96,%eax3903jb .L022ecb_dec_tail3904movdqu (%esi),%xmm23905movdqu 16(%esi),%xmm33906movdqu 32(%esi),%xmm43907movdqu 48(%esi),%xmm53908movdqu 64(%esi),%xmm63909movdqu 80(%esi),%xmm73910leal 96(%esi),%esi3911subl $96,%eax3912jmp .L023ecb_dec_loop6_enter3913.align 163914.L024ecb_dec_loop6:3915movups %xmm2,(%edi)3916movdqu (%esi),%xmm23917movups %xmm3,16(%edi)3918movdqu 16(%esi),%xmm33919movups %xmm4,32(%edi)3920movdqu 32(%esi),%xmm43921movups %xmm5,48(%edi)3922movdqu 48(%esi),%xmm53923movups %xmm6,64(%edi)3924movdqu 64(%esi),%xmm63925movups %xmm7,80(%edi)3926leal 96(%edi),%edi3927movdqu 80(%esi),%xmm73928leal 96(%esi),%esi3929.L023ecb_dec_loop6_enter:3930call _aesni_decrypt63931movl %ebp,%edx3932movl %ebx,%ecx3933subl $96,%eax3934jnc .L024ecb_dec_loop63935movups %xmm2,(%edi)3936movups %xmm3,16(%edi)3937movups %xmm4,32(%edi)3938movups %xmm5,48(%edi)3939movups %xmm6,64(%edi)3940movups %xmm7,80(%edi)3941leal 96(%edi),%edi3942addl $96,%eax3943jz .L012ecb_ret3944.L022ecb_dec_tail:3945movups (%esi),%xmm23946cmpl $32,%eax3947jb .L025ecb_dec_one3948movups 16(%esi),%xmm33949je .L026ecb_dec_two3950movups 32(%esi),%xmm43951cmpl $64,%eax3952jb .L027ecb_dec_three3953movups 48(%esi),%xmm53954je .L028ecb_dec_four3955movups 64(%esi),%xmm63956xorps %xmm7,%xmm73957call _aesni_decrypt63958movups %xmm2,(%edi)3959movups %xmm3,16(%edi)3960movups %xmm4,32(%edi)3961movups %xmm5,48(%edi)3962movups %xmm6,64(%edi)3963jmp .L012ecb_ret3964.align 163965.L025ecb_dec_one:3966movups (%edx),%xmm03967movups 16(%edx),%xmm13968leal 32(%edx),%edx3969xorps %xmm0,%xmm23970.L029dec1_loop_4:3971.byte 102,15,56,222,2093972decl %ecx3973movups (%edx),%xmm13974leal 16(%edx),%edx3975jnz .L029dec1_loop_43976.byte 102,15,56,223,2093977movups %xmm2,(%edi)3978jmp .L012ecb_ret3979.align 163980.L026ecb_dec_two:3981call _aesni_decrypt23982movups %xmm2,(%edi)3983movups %xmm3,16(%edi)3984jmp .L012ecb_ret3985.align 163986.L027ecb_dec_three:3987call _aesni_decrypt33988movups %xmm2,(%edi)3989movups %xmm3,16(%edi)3990movups %xmm4,32(%edi)3991jmp .L012ecb_ret3992.align 163993.L028ecb_dec_four:3994call _aesni_decrypt43995movups %xmm2,(%edi)3996movups %xmm3,16(%edi)3997movups %xmm4,32(%edi)3998movups %xmm5,48(%edi)3999.L012ecb_ret:4000pxor %xmm0,%xmm04001pxor %xmm1,%xmm14002pxor %xmm2,%xmm24003pxor %xmm3,%xmm34004pxor %xmm4,%xmm44005pxor %xmm5,%xmm54006pxor %xmm6,%xmm64007pxor %xmm7,%xmm74008popl %edi4009popl %esi4010popl %ebx4011popl %ebp4012ret4013.size aesni_ecb_encrypt,.-.L_aesni_ecb_encrypt_begin4014.globl aesni_ccm64_encrypt_blocks4015.type aesni_ccm64_encrypt_blocks,@function4016.align 164017aesni_ccm64_encrypt_blocks:4018.L_aesni_ccm64_encrypt_blocks_begin:4019#ifdef __CET__40204021.byte 243,15,30,2514022#endif40234024pushl %ebp4025pushl %ebx4026pushl %esi4027pushl %edi4028movl 20(%esp),%esi4029movl 24(%esp),%edi4030movl 28(%esp),%eax4031movl 32(%esp),%edx4032movl 36(%esp),%ebx4033movl 40(%esp),%ecx4034movl %esp,%ebp4035subl $60,%esp4036andl $-16,%esp4037movl %ebp,48(%esp)4038movdqu (%ebx),%xmm74039movdqu (%ecx),%xmm34040movl 240(%edx),%ecx4041movl $202182159,(%esp)4042movl $134810123,4(%esp)4043movl $67438087,8(%esp)4044movl $66051,12(%esp)4045movl $1,%ebx4046xorl %ebp,%ebp4047movl %ebx,16(%esp)4048movl %ebp,20(%esp)4049movl %ebp,24(%esp)4050movl %ebp,28(%esp)4051shll $4,%ecx4052movl $16,%ebx4053leal (%edx),%ebp4054movdqa (%esp),%xmm54055movdqa %xmm7,%xmm24056leal 32(%edx,%ecx,1),%edx4057subl %ecx,%ebx4058.byte 102,15,56,0,2534059.L030ccm64_enc_outer:4060movups (%ebp),%xmm04061movl %ebx,%ecx4062movups (%esi),%xmm64063xorps %xmm0,%xmm24064movups 16(%ebp),%xmm14065xorps %xmm6,%xmm04066xorps %xmm0,%xmm34067movups 32(%ebp),%xmm04068.L031ccm64_enc2_loop:4069.byte 102,15,56,220,2094070.byte 102,15,56,220,2174071movups (%edx,%ecx,1),%xmm14072addl $32,%ecx4073.byte 102,15,56,220,2084074.byte 102,15,56,220,2164075movups -16(%edx,%ecx,1),%xmm04076jnz .L031ccm64_enc2_loop4077.byte 102,15,56,220,2094078.byte 102,15,56,220,2174079paddq 16(%esp),%xmm74080decl %eax4081.byte 102,15,56,221,2084082.byte 102,15,56,221,2164083leal 16(%esi),%esi4084xorps %xmm2,%xmm64085movdqa %xmm7,%xmm24086movups %xmm6,(%edi)4087.byte 102,15,56,0,2134088leal 16(%edi),%edi4089jnz .L030ccm64_enc_outer4090movl 48(%esp),%esp4091movl 40(%esp),%edi4092movups %xmm3,(%edi)4093pxor %xmm0,%xmm04094pxor %xmm1,%xmm14095pxor %xmm2,%xmm24096pxor %xmm3,%xmm34097pxor %xmm4,%xmm44098pxor %xmm5,%xmm54099pxor %xmm6,%xmm64100pxor %xmm7,%xmm74101popl %edi4102popl %esi4103popl %ebx4104popl %ebp4105ret4106.size aesni_ccm64_encrypt_blocks,.-.L_aesni_ccm64_encrypt_blocks_begin4107.globl aesni_ccm64_decrypt_blocks4108.type aesni_ccm64_decrypt_blocks,@function4109.align 164110aesni_ccm64_decrypt_blocks:4111.L_aesni_ccm64_decrypt_blocks_begin:4112#ifdef __CET__41134114.byte 243,15,30,2514115#endif41164117pushl %ebp4118pushl %ebx4119pushl %esi4120pushl %edi4121movl 20(%esp),%esi4122movl 24(%esp),%edi4123movl 28(%esp),%eax4124movl 32(%esp),%edx4125movl 36(%esp),%ebx4126movl 40(%esp),%ecx4127movl %esp,%ebp4128subl $60,%esp4129andl $-16,%esp4130movl %ebp,48(%esp)4131movdqu (%ebx),%xmm74132movdqu (%ecx),%xmm34133movl 240(%edx),%ecx4134movl $202182159,(%esp)4135movl $134810123,4(%esp)4136movl $67438087,8(%esp)4137movl $66051,12(%esp)4138movl $1,%ebx4139xorl %ebp,%ebp4140movl %ebx,16(%esp)4141movl %ebp,20(%esp)4142movl %ebp,24(%esp)4143movl %ebp,28(%esp)4144movdqa (%esp),%xmm54145movdqa %xmm7,%xmm24146movl %edx,%ebp4147movl %ecx,%ebx4148.byte 102,15,56,0,2534149movups (%edx),%xmm04150movups 16(%edx),%xmm14151leal 32(%edx),%edx4152xorps %xmm0,%xmm24153.L032enc1_loop_5:4154.byte 102,15,56,220,2094155decl %ecx4156movups (%edx),%xmm14157leal 16(%edx),%edx4158jnz .L032enc1_loop_54159.byte 102,15,56,221,2094160shll $4,%ebx4161movl $16,%ecx4162movups (%esi),%xmm64163paddq 16(%esp),%xmm74164leal 16(%esi),%esi4165subl %ebx,%ecx4166leal 32(%ebp,%ebx,1),%edx4167movl %ecx,%ebx4168jmp .L033ccm64_dec_outer4169.align 164170.L033ccm64_dec_outer:4171xorps %xmm2,%xmm64172movdqa %xmm7,%xmm24173movups %xmm6,(%edi)4174leal 16(%edi),%edi4175.byte 102,15,56,0,2134176subl $1,%eax4177jz .L034ccm64_dec_break4178movups (%ebp),%xmm04179movl %ebx,%ecx4180movups 16(%ebp),%xmm14181xorps %xmm0,%xmm64182xorps %xmm0,%xmm24183xorps %xmm6,%xmm34184movups 32(%ebp),%xmm04185.L035ccm64_dec2_loop:4186.byte 102,15,56,220,2094187.byte 102,15,56,220,2174188movups (%edx,%ecx,1),%xmm14189addl $32,%ecx4190.byte 102,15,56,220,2084191.byte 102,15,56,220,2164192movups -16(%edx,%ecx,1),%xmm04193jnz .L035ccm64_dec2_loop4194movups (%esi),%xmm64195paddq 16(%esp),%xmm74196.byte 102,15,56,220,2094197.byte 102,15,56,220,2174198.byte 102,15,56,221,2084199.byte 102,15,56,221,2164200leal 16(%esi),%esi4201jmp .L033ccm64_dec_outer4202.align 164203.L034ccm64_dec_break:4204movl 240(%ebp),%ecx4205movl %ebp,%edx4206movups (%edx),%xmm04207movups 16(%edx),%xmm14208xorps %xmm0,%xmm64209leal 32(%edx),%edx4210xorps %xmm6,%xmm34211.L036enc1_loop_6:4212.byte 102,15,56,220,2174213decl %ecx4214movups (%edx),%xmm14215leal 16(%edx),%edx4216jnz .L036enc1_loop_64217.byte 102,15,56,221,2174218movl 48(%esp),%esp4219movl 40(%esp),%edi4220movups %xmm3,(%edi)4221pxor %xmm0,%xmm04222pxor %xmm1,%xmm14223pxor %xmm2,%xmm24224pxor %xmm3,%xmm34225pxor %xmm4,%xmm44226pxor %xmm5,%xmm54227pxor %xmm6,%xmm64228pxor %xmm7,%xmm74229popl %edi4230popl %esi4231popl %ebx4232popl %ebp4233ret4234.size aesni_ccm64_decrypt_blocks,.-.L_aesni_ccm64_decrypt_blocks_begin4235.globl aesni_ctr32_encrypt_blocks4236.type aesni_ctr32_encrypt_blocks,@function4237.align 164238aesni_ctr32_encrypt_blocks:4239.L_aesni_ctr32_encrypt_blocks_begin:4240#ifdef __CET__42414242.byte 243,15,30,2514243#endif42444245pushl %ebp4246pushl %ebx4247pushl %esi4248pushl %edi4249movl 20(%esp),%esi4250movl 24(%esp),%edi4251movl 28(%esp),%eax4252movl 32(%esp),%edx4253movl 36(%esp),%ebx4254movl %esp,%ebp4255subl $88,%esp4256andl $-16,%esp4257movl %ebp,80(%esp)4258cmpl $1,%eax4259je .L037ctr32_one_shortcut4260movdqu (%ebx),%xmm74261movl $202182159,(%esp)4262movl $134810123,4(%esp)4263movl $67438087,8(%esp)4264movl $66051,12(%esp)4265movl $6,%ecx4266xorl %ebp,%ebp4267movl %ecx,16(%esp)4268movl %ecx,20(%esp)4269movl %ecx,24(%esp)4270movl %ebp,28(%esp)4271.byte 102,15,58,22,251,34272.byte 102,15,58,34,253,34273movl 240(%edx),%ecx4274bswap %ebx4275pxor %xmm0,%xmm04276pxor %xmm1,%xmm14277movdqa (%esp),%xmm24278.byte 102,15,58,34,195,04279leal 3(%ebx),%ebp4280.byte 102,15,58,34,205,04281incl %ebx4282.byte 102,15,58,34,195,14283incl %ebp4284.byte 102,15,58,34,205,14285incl %ebx4286.byte 102,15,58,34,195,24287incl %ebp4288.byte 102,15,58,34,205,24289movdqa %xmm0,48(%esp)4290.byte 102,15,56,0,1944291movdqu (%edx),%xmm64292movdqa %xmm1,64(%esp)4293.byte 102,15,56,0,2024294pshufd $192,%xmm0,%xmm24295pshufd $128,%xmm0,%xmm34296cmpl $6,%eax4297jb .L038ctr32_tail4298pxor %xmm6,%xmm74299shll $4,%ecx4300movl $16,%ebx4301movdqa %xmm7,32(%esp)4302movl %edx,%ebp4303subl %ecx,%ebx4304leal 32(%edx,%ecx,1),%edx4305subl $6,%eax4306jmp .L039ctr32_loop64307.align 164308.L039ctr32_loop6:4309pshufd $64,%xmm0,%xmm44310movdqa 32(%esp),%xmm04311pshufd $192,%xmm1,%xmm54312pxor %xmm0,%xmm24313pshufd $128,%xmm1,%xmm64314pxor %xmm0,%xmm34315pshufd $64,%xmm1,%xmm74316movups 16(%ebp),%xmm14317pxor %xmm0,%xmm44318pxor %xmm0,%xmm54319.byte 102,15,56,220,2094320pxor %xmm0,%xmm64321pxor %xmm0,%xmm74322.byte 102,15,56,220,2174323movups 32(%ebp),%xmm04324movl %ebx,%ecx4325.byte 102,15,56,220,2254326.byte 102,15,56,220,2334327.byte 102,15,56,220,2414328.byte 102,15,56,220,2494329call .L_aesni_encrypt6_enter4330movups (%esi),%xmm14331movups 16(%esi),%xmm04332xorps %xmm1,%xmm24333movups 32(%esi),%xmm14334xorps %xmm0,%xmm34335movups %xmm2,(%edi)4336movdqa 16(%esp),%xmm04337xorps %xmm1,%xmm44338movdqa 64(%esp),%xmm14339movups %xmm3,16(%edi)4340movups %xmm4,32(%edi)4341paddd %xmm0,%xmm14342paddd 48(%esp),%xmm04343movdqa (%esp),%xmm24344movups 48(%esi),%xmm34345movups 64(%esi),%xmm44346xorps %xmm3,%xmm54347movups 80(%esi),%xmm34348leal 96(%esi),%esi4349movdqa %xmm0,48(%esp)4350.byte 102,15,56,0,1944351xorps %xmm4,%xmm64352movups %xmm5,48(%edi)4353xorps %xmm3,%xmm74354movdqa %xmm1,64(%esp)4355.byte 102,15,56,0,2024356movups %xmm6,64(%edi)4357pshufd $192,%xmm0,%xmm24358movups %xmm7,80(%edi)4359leal 96(%edi),%edi4360pshufd $128,%xmm0,%xmm34361subl $6,%eax4362jnc .L039ctr32_loop64363addl $6,%eax4364jz .L040ctr32_ret4365movdqu (%ebp),%xmm74366movl %ebp,%edx4367pxor 32(%esp),%xmm74368movl 240(%ebp),%ecx4369.L038ctr32_tail:4370por %xmm7,%xmm24371cmpl $2,%eax4372jb .L041ctr32_one4373pshufd $64,%xmm0,%xmm44374por %xmm7,%xmm34375je .L042ctr32_two4376pshufd $192,%xmm1,%xmm54377por %xmm7,%xmm44378cmpl $4,%eax4379jb .L043ctr32_three4380pshufd $128,%xmm1,%xmm64381por %xmm7,%xmm54382je .L044ctr32_four4383por %xmm7,%xmm64384call _aesni_encrypt64385movups (%esi),%xmm14386movups 16(%esi),%xmm04387xorps %xmm1,%xmm24388movups 32(%esi),%xmm14389xorps %xmm0,%xmm34390movups 48(%esi),%xmm04391xorps %xmm1,%xmm44392movups 64(%esi),%xmm14393xorps %xmm0,%xmm54394movups %xmm2,(%edi)4395xorps %xmm1,%xmm64396movups %xmm3,16(%edi)4397movups %xmm4,32(%edi)4398movups %xmm5,48(%edi)4399movups %xmm6,64(%edi)4400jmp .L040ctr32_ret4401.align 164402.L037ctr32_one_shortcut:4403movups (%ebx),%xmm24404movl 240(%edx),%ecx4405.L041ctr32_one:4406movups (%edx),%xmm04407movups 16(%edx),%xmm14408leal 32(%edx),%edx4409xorps %xmm0,%xmm24410.L045enc1_loop_7:4411.byte 102,15,56,220,2094412decl %ecx4413movups (%edx),%xmm14414leal 16(%edx),%edx4415jnz .L045enc1_loop_74416.byte 102,15,56,221,2094417movups (%esi),%xmm64418xorps %xmm2,%xmm64419movups %xmm6,(%edi)4420jmp .L040ctr32_ret4421.align 164422.L042ctr32_two:4423call _aesni_encrypt24424movups (%esi),%xmm54425movups 16(%esi),%xmm64426xorps %xmm5,%xmm24427xorps %xmm6,%xmm34428movups %xmm2,(%edi)4429movups %xmm3,16(%edi)4430jmp .L040ctr32_ret4431.align 164432.L043ctr32_three:4433call _aesni_encrypt34434movups (%esi),%xmm54435movups 16(%esi),%xmm64436xorps %xmm5,%xmm24437movups 32(%esi),%xmm74438xorps %xmm6,%xmm34439movups %xmm2,(%edi)4440xorps %xmm7,%xmm44441movups %xmm3,16(%edi)4442movups %xmm4,32(%edi)4443jmp .L040ctr32_ret4444.align 164445.L044ctr32_four:4446call _aesni_encrypt44447movups (%esi),%xmm64448movups 16(%esi),%xmm74449movups 32(%esi),%xmm14450xorps %xmm6,%xmm24451movups 48(%esi),%xmm04452xorps %xmm7,%xmm34453movups %xmm2,(%edi)4454xorps %xmm1,%xmm44455movups %xmm3,16(%edi)4456xorps %xmm0,%xmm54457movups %xmm4,32(%edi)4458movups %xmm5,48(%edi)4459.L040ctr32_ret:4460pxor %xmm0,%xmm04461pxor %xmm1,%xmm14462pxor %xmm2,%xmm24463pxor %xmm3,%xmm34464pxor %xmm4,%xmm44465movdqa %xmm0,32(%esp)4466pxor %xmm5,%xmm54467movdqa %xmm0,48(%esp)4468pxor %xmm6,%xmm64469movdqa %xmm0,64(%esp)4470pxor %xmm7,%xmm74471movl 80(%esp),%esp4472popl %edi4473popl %esi4474popl %ebx4475popl %ebp4476ret4477.size aesni_ctr32_encrypt_blocks,.-.L_aesni_ctr32_encrypt_blocks_begin4478.globl aesni_xts_encrypt4479.type aesni_xts_encrypt,@function4480.align 164481aesni_xts_encrypt:4482.L_aesni_xts_encrypt_begin:4483#ifdef __CET__44844485.byte 243,15,30,2514486#endif44874488pushl %ebp4489pushl %ebx4490pushl %esi4491pushl %edi4492movl 36(%esp),%edx4493movl 40(%esp),%esi4494movl 240(%edx),%ecx4495movups (%esi),%xmm24496movups (%edx),%xmm04497movups 16(%edx),%xmm14498leal 32(%edx),%edx4499xorps %xmm0,%xmm24500.L046enc1_loop_8:4501.byte 102,15,56,220,2094502decl %ecx4503movups (%edx),%xmm14504leal 16(%edx),%edx4505jnz .L046enc1_loop_84506.byte 102,15,56,221,2094507movl 20(%esp),%esi4508movl 24(%esp),%edi4509movl 28(%esp),%eax4510movl 32(%esp),%edx4511movl %esp,%ebp4512subl $120,%esp4513movl 240(%edx),%ecx4514andl $-16,%esp4515movl $135,96(%esp)4516movl $0,100(%esp)4517movl $1,104(%esp)4518movl $0,108(%esp)4519movl %eax,112(%esp)4520movl %ebp,116(%esp)4521movdqa %xmm2,%xmm14522pxor %xmm0,%xmm04523movdqa 96(%esp),%xmm34524pcmpgtd %xmm1,%xmm04525andl $-16,%eax4526movl %edx,%ebp4527movl %ecx,%ebx4528subl $96,%eax4529jc .L047xts_enc_short4530shll $4,%ecx4531movl $16,%ebx4532subl %ecx,%ebx4533leal 32(%edx,%ecx,1),%edx4534jmp .L048xts_enc_loop64535.align 164536.L048xts_enc_loop6:4537pshufd $19,%xmm0,%xmm24538pxor %xmm0,%xmm04539movdqa %xmm1,(%esp)4540paddq %xmm1,%xmm14541pand %xmm3,%xmm24542pcmpgtd %xmm1,%xmm04543pxor %xmm2,%xmm14544pshufd $19,%xmm0,%xmm24545pxor %xmm0,%xmm04546movdqa %xmm1,16(%esp)4547paddq %xmm1,%xmm14548pand %xmm3,%xmm24549pcmpgtd %xmm1,%xmm04550pxor %xmm2,%xmm14551pshufd $19,%xmm0,%xmm24552pxor %xmm0,%xmm04553movdqa %xmm1,32(%esp)4554paddq %xmm1,%xmm14555pand %xmm3,%xmm24556pcmpgtd %xmm1,%xmm04557pxor %xmm2,%xmm14558pshufd $19,%xmm0,%xmm24559pxor %xmm0,%xmm04560movdqa %xmm1,48(%esp)4561paddq %xmm1,%xmm14562pand %xmm3,%xmm24563pcmpgtd %xmm1,%xmm04564pxor %xmm2,%xmm14565pshufd $19,%xmm0,%xmm74566movdqa %xmm1,64(%esp)4567paddq %xmm1,%xmm14568movups (%ebp),%xmm04569pand %xmm3,%xmm74570movups (%esi),%xmm24571pxor %xmm1,%xmm74572movl %ebx,%ecx4573movdqu 16(%esi),%xmm34574xorps %xmm0,%xmm24575movdqu 32(%esi),%xmm44576pxor %xmm0,%xmm34577movdqu 48(%esi),%xmm54578pxor %xmm0,%xmm44579movdqu 64(%esi),%xmm64580pxor %xmm0,%xmm54581movdqu 80(%esi),%xmm14582pxor %xmm0,%xmm64583leal 96(%esi),%esi4584pxor (%esp),%xmm24585movdqa %xmm7,80(%esp)4586pxor %xmm1,%xmm74587movups 16(%ebp),%xmm14588pxor 16(%esp),%xmm34589pxor 32(%esp),%xmm44590.byte 102,15,56,220,2094591pxor 48(%esp),%xmm54592pxor 64(%esp),%xmm64593.byte 102,15,56,220,2174594pxor %xmm0,%xmm74595movups 32(%ebp),%xmm04596.byte 102,15,56,220,2254597.byte 102,15,56,220,2334598.byte 102,15,56,220,2414599.byte 102,15,56,220,2494600call .L_aesni_encrypt6_enter4601movdqa 80(%esp),%xmm14602pxor %xmm0,%xmm04603xorps (%esp),%xmm24604pcmpgtd %xmm1,%xmm04605xorps 16(%esp),%xmm34606movups %xmm2,(%edi)4607xorps 32(%esp),%xmm44608movups %xmm3,16(%edi)4609xorps 48(%esp),%xmm54610movups %xmm4,32(%edi)4611xorps 64(%esp),%xmm64612movups %xmm5,48(%edi)4613xorps %xmm1,%xmm74614movups %xmm6,64(%edi)4615pshufd $19,%xmm0,%xmm24616movups %xmm7,80(%edi)4617leal 96(%edi),%edi4618movdqa 96(%esp),%xmm34619pxor %xmm0,%xmm04620paddq %xmm1,%xmm14621pand %xmm3,%xmm24622pcmpgtd %xmm1,%xmm04623pxor %xmm2,%xmm14624subl $96,%eax4625jnc .L048xts_enc_loop64626movl 240(%ebp),%ecx4627movl %ebp,%edx4628movl %ecx,%ebx4629.L047xts_enc_short:4630addl $96,%eax4631jz .L049xts_enc_done6x4632movdqa %xmm1,%xmm54633cmpl $32,%eax4634jb .L050xts_enc_one4635pshufd $19,%xmm0,%xmm24636pxor %xmm0,%xmm04637paddq %xmm1,%xmm14638pand %xmm3,%xmm24639pcmpgtd %xmm1,%xmm04640pxor %xmm2,%xmm14641je .L051xts_enc_two4642pshufd $19,%xmm0,%xmm24643pxor %xmm0,%xmm04644movdqa %xmm1,%xmm64645paddq %xmm1,%xmm14646pand %xmm3,%xmm24647pcmpgtd %xmm1,%xmm04648pxor %xmm2,%xmm14649cmpl $64,%eax4650jb .L052xts_enc_three4651pshufd $19,%xmm0,%xmm24652pxor %xmm0,%xmm04653movdqa %xmm1,%xmm74654paddq %xmm1,%xmm14655pand %xmm3,%xmm24656pcmpgtd %xmm1,%xmm04657pxor %xmm2,%xmm14658movdqa %xmm5,(%esp)4659movdqa %xmm6,16(%esp)4660je .L053xts_enc_four4661movdqa %xmm7,32(%esp)4662pshufd $19,%xmm0,%xmm74663movdqa %xmm1,48(%esp)4664paddq %xmm1,%xmm14665pand %xmm3,%xmm74666pxor %xmm1,%xmm74667movdqu (%esi),%xmm24668movdqu 16(%esi),%xmm34669movdqu 32(%esi),%xmm44670pxor (%esp),%xmm24671movdqu 48(%esi),%xmm54672pxor 16(%esp),%xmm34673movdqu 64(%esi),%xmm64674pxor 32(%esp),%xmm44675leal 80(%esi),%esi4676pxor 48(%esp),%xmm54677movdqa %xmm7,64(%esp)4678pxor %xmm7,%xmm64679call _aesni_encrypt64680movaps 64(%esp),%xmm14681xorps (%esp),%xmm24682xorps 16(%esp),%xmm34683xorps 32(%esp),%xmm44684movups %xmm2,(%edi)4685xorps 48(%esp),%xmm54686movups %xmm3,16(%edi)4687xorps %xmm1,%xmm64688movups %xmm4,32(%edi)4689movups %xmm5,48(%edi)4690movups %xmm6,64(%edi)4691leal 80(%edi),%edi4692jmp .L054xts_enc_done4693.align 164694.L050xts_enc_one:4695movups (%esi),%xmm24696leal 16(%esi),%esi4697xorps %xmm5,%xmm24698movups (%edx),%xmm04699movups 16(%edx),%xmm14700leal 32(%edx),%edx4701xorps %xmm0,%xmm24702.L055enc1_loop_9:4703.byte 102,15,56,220,2094704decl %ecx4705movups (%edx),%xmm14706leal 16(%edx),%edx4707jnz .L055enc1_loop_94708.byte 102,15,56,221,2094709xorps %xmm5,%xmm24710movups %xmm2,(%edi)4711leal 16(%edi),%edi4712movdqa %xmm5,%xmm14713jmp .L054xts_enc_done4714.align 164715.L051xts_enc_two:4716movaps %xmm1,%xmm64717movups (%esi),%xmm24718movups 16(%esi),%xmm34719leal 32(%esi),%esi4720xorps %xmm5,%xmm24721xorps %xmm6,%xmm34722call _aesni_encrypt24723xorps %xmm5,%xmm24724xorps %xmm6,%xmm34725movups %xmm2,(%edi)4726movups %xmm3,16(%edi)4727leal 32(%edi),%edi4728movdqa %xmm6,%xmm14729jmp .L054xts_enc_done4730.align 164731.L052xts_enc_three:4732movaps %xmm1,%xmm74733movups (%esi),%xmm24734movups 16(%esi),%xmm34735movups 32(%esi),%xmm44736leal 48(%esi),%esi4737xorps %xmm5,%xmm24738xorps %xmm6,%xmm34739xorps %xmm7,%xmm44740call _aesni_encrypt34741xorps %xmm5,%xmm24742xorps %xmm6,%xmm34743xorps %xmm7,%xmm44744movups %xmm2,(%edi)4745movups %xmm3,16(%edi)4746movups %xmm4,32(%edi)4747leal 48(%edi),%edi4748movdqa %xmm7,%xmm14749jmp .L054xts_enc_done4750.align 164751.L053xts_enc_four:4752movaps %xmm1,%xmm64753movups (%esi),%xmm24754movups 16(%esi),%xmm34755movups 32(%esi),%xmm44756xorps (%esp),%xmm24757movups 48(%esi),%xmm54758leal 64(%esi),%esi4759xorps 16(%esp),%xmm34760xorps %xmm7,%xmm44761xorps %xmm6,%xmm54762call _aesni_encrypt44763xorps (%esp),%xmm24764xorps 16(%esp),%xmm34765xorps %xmm7,%xmm44766movups %xmm2,(%edi)4767xorps %xmm6,%xmm54768movups %xmm3,16(%edi)4769movups %xmm4,32(%edi)4770movups %xmm5,48(%edi)4771leal 64(%edi),%edi4772movdqa %xmm6,%xmm14773jmp .L054xts_enc_done4774.align 164775.L049xts_enc_done6x:4776movl 112(%esp),%eax4777andl $15,%eax4778jz .L056xts_enc_ret4779movdqa %xmm1,%xmm54780movl %eax,112(%esp)4781jmp .L057xts_enc_steal4782.align 164783.L054xts_enc_done:4784movl 112(%esp),%eax4785pxor %xmm0,%xmm04786andl $15,%eax4787jz .L056xts_enc_ret4788pcmpgtd %xmm1,%xmm04789movl %eax,112(%esp)4790pshufd $19,%xmm0,%xmm54791paddq %xmm1,%xmm14792pand 96(%esp),%xmm54793pxor %xmm1,%xmm54794.L057xts_enc_steal:4795movzbl (%esi),%ecx4796movzbl -16(%edi),%edx4797leal 1(%esi),%esi4798movb %cl,-16(%edi)4799movb %dl,(%edi)4800leal 1(%edi),%edi4801subl $1,%eax4802jnz .L057xts_enc_steal4803subl 112(%esp),%edi4804movl %ebp,%edx4805movl %ebx,%ecx4806movups -16(%edi),%xmm24807xorps %xmm5,%xmm24808movups (%edx),%xmm04809movups 16(%edx),%xmm14810leal 32(%edx),%edx4811xorps %xmm0,%xmm24812.L058enc1_loop_10:4813.byte 102,15,56,220,2094814decl %ecx4815movups (%edx),%xmm14816leal 16(%edx),%edx4817jnz .L058enc1_loop_104818.byte 102,15,56,221,2094819xorps %xmm5,%xmm24820movups %xmm2,-16(%edi)4821.L056xts_enc_ret:4822pxor %xmm0,%xmm04823pxor %xmm1,%xmm14824pxor %xmm2,%xmm24825movdqa %xmm0,(%esp)4826pxor %xmm3,%xmm34827movdqa %xmm0,16(%esp)4828pxor %xmm4,%xmm44829movdqa %xmm0,32(%esp)4830pxor %xmm5,%xmm54831movdqa %xmm0,48(%esp)4832pxor %xmm6,%xmm64833movdqa %xmm0,64(%esp)4834pxor %xmm7,%xmm74835movdqa %xmm0,80(%esp)4836movl 116(%esp),%esp4837popl %edi4838popl %esi4839popl %ebx4840popl %ebp4841ret4842.size aesni_xts_encrypt,.-.L_aesni_xts_encrypt_begin4843.globl aesni_xts_decrypt4844.type aesni_xts_decrypt,@function4845.align 164846aesni_xts_decrypt:4847.L_aesni_xts_decrypt_begin:4848#ifdef __CET__48494850.byte 243,15,30,2514851#endif48524853pushl %ebp4854pushl %ebx4855pushl %esi4856pushl %edi4857movl 36(%esp),%edx4858movl 40(%esp),%esi4859movl 240(%edx),%ecx4860movups (%esi),%xmm24861movups (%edx),%xmm04862movups 16(%edx),%xmm14863leal 32(%edx),%edx4864xorps %xmm0,%xmm24865.L059enc1_loop_11:4866.byte 102,15,56,220,2094867decl %ecx4868movups (%edx),%xmm14869leal 16(%edx),%edx4870jnz .L059enc1_loop_114871.byte 102,15,56,221,2094872movl 20(%esp),%esi4873movl 24(%esp),%edi4874movl 28(%esp),%eax4875movl 32(%esp),%edx4876movl %esp,%ebp4877subl $120,%esp4878andl $-16,%esp4879xorl %ebx,%ebx4880testl $15,%eax4881setnz %bl4882shll $4,%ebx4883subl %ebx,%eax4884movl $135,96(%esp)4885movl $0,100(%esp)4886movl $1,104(%esp)4887movl $0,108(%esp)4888movl %eax,112(%esp)4889movl %ebp,116(%esp)4890movl 240(%edx),%ecx4891movl %edx,%ebp4892movl %ecx,%ebx4893movdqa %xmm2,%xmm14894pxor %xmm0,%xmm04895movdqa 96(%esp),%xmm34896pcmpgtd %xmm1,%xmm04897andl $-16,%eax4898subl $96,%eax4899jc .L060xts_dec_short4900shll $4,%ecx4901movl $16,%ebx4902subl %ecx,%ebx4903leal 32(%edx,%ecx,1),%edx4904jmp .L061xts_dec_loop64905.align 164906.L061xts_dec_loop6:4907pshufd $19,%xmm0,%xmm24908pxor %xmm0,%xmm04909movdqa %xmm1,(%esp)4910paddq %xmm1,%xmm14911pand %xmm3,%xmm24912pcmpgtd %xmm1,%xmm04913pxor %xmm2,%xmm14914pshufd $19,%xmm0,%xmm24915pxor %xmm0,%xmm04916movdqa %xmm1,16(%esp)4917paddq %xmm1,%xmm14918pand %xmm3,%xmm24919pcmpgtd %xmm1,%xmm04920pxor %xmm2,%xmm14921pshufd $19,%xmm0,%xmm24922pxor %xmm0,%xmm04923movdqa %xmm1,32(%esp)4924paddq %xmm1,%xmm14925pand %xmm3,%xmm24926pcmpgtd %xmm1,%xmm04927pxor %xmm2,%xmm14928pshufd $19,%xmm0,%xmm24929pxor %xmm0,%xmm04930movdqa %xmm1,48(%esp)4931paddq %xmm1,%xmm14932pand %xmm3,%xmm24933pcmpgtd %xmm1,%xmm04934pxor %xmm2,%xmm14935pshufd $19,%xmm0,%xmm74936movdqa %xmm1,64(%esp)4937paddq %xmm1,%xmm14938movups (%ebp),%xmm04939pand %xmm3,%xmm74940movups (%esi),%xmm24941pxor %xmm1,%xmm74942movl %ebx,%ecx4943movdqu 16(%esi),%xmm34944xorps %xmm0,%xmm24945movdqu 32(%esi),%xmm44946pxor %xmm0,%xmm34947movdqu 48(%esi),%xmm54948pxor %xmm0,%xmm44949movdqu 64(%esi),%xmm64950pxor %xmm0,%xmm54951movdqu 80(%esi),%xmm14952pxor %xmm0,%xmm64953leal 96(%esi),%esi4954pxor (%esp),%xmm24955movdqa %xmm7,80(%esp)4956pxor %xmm1,%xmm74957movups 16(%ebp),%xmm14958pxor 16(%esp),%xmm34959pxor 32(%esp),%xmm44960.byte 102,15,56,222,2094961pxor 48(%esp),%xmm54962pxor 64(%esp),%xmm64963.byte 102,15,56,222,2174964pxor %xmm0,%xmm74965movups 32(%ebp),%xmm04966.byte 102,15,56,222,2254967.byte 102,15,56,222,2334968.byte 102,15,56,222,2414969.byte 102,15,56,222,2494970call .L_aesni_decrypt6_enter4971movdqa 80(%esp),%xmm14972pxor %xmm0,%xmm04973xorps (%esp),%xmm24974pcmpgtd %xmm1,%xmm04975xorps 16(%esp),%xmm34976movups %xmm2,(%edi)4977xorps 32(%esp),%xmm44978movups %xmm3,16(%edi)4979xorps 48(%esp),%xmm54980movups %xmm4,32(%edi)4981xorps 64(%esp),%xmm64982movups %xmm5,48(%edi)4983xorps %xmm1,%xmm74984movups %xmm6,64(%edi)4985pshufd $19,%xmm0,%xmm24986movups %xmm7,80(%edi)4987leal 96(%edi),%edi4988movdqa 96(%esp),%xmm34989pxor %xmm0,%xmm04990paddq %xmm1,%xmm14991pand %xmm3,%xmm24992pcmpgtd %xmm1,%xmm04993pxor %xmm2,%xmm14994subl $96,%eax4995jnc .L061xts_dec_loop64996movl 240(%ebp),%ecx4997movl %ebp,%edx4998movl %ecx,%ebx4999.L060xts_dec_short:5000addl $96,%eax5001jz .L062xts_dec_done6x5002movdqa %xmm1,%xmm55003cmpl $32,%eax5004jb .L063xts_dec_one5005pshufd $19,%xmm0,%xmm25006pxor %xmm0,%xmm05007paddq %xmm1,%xmm15008pand %xmm3,%xmm25009pcmpgtd %xmm1,%xmm05010pxor %xmm2,%xmm15011je .L064xts_dec_two5012pshufd $19,%xmm0,%xmm25013pxor %xmm0,%xmm05014movdqa %xmm1,%xmm65015paddq %xmm1,%xmm15016pand %xmm3,%xmm25017pcmpgtd %xmm1,%xmm05018pxor %xmm2,%xmm15019cmpl $64,%eax5020jb .L065xts_dec_three5021pshufd $19,%xmm0,%xmm25022pxor %xmm0,%xmm05023movdqa %xmm1,%xmm75024paddq %xmm1,%xmm15025pand %xmm3,%xmm25026pcmpgtd %xmm1,%xmm05027pxor %xmm2,%xmm15028movdqa %xmm5,(%esp)5029movdqa %xmm6,16(%esp)5030je .L066xts_dec_four5031movdqa %xmm7,32(%esp)5032pshufd $19,%xmm0,%xmm75033movdqa %xmm1,48(%esp)5034paddq %xmm1,%xmm15035pand %xmm3,%xmm75036pxor %xmm1,%xmm75037movdqu (%esi),%xmm25038movdqu 16(%esi),%xmm35039movdqu 32(%esi),%xmm45040pxor (%esp),%xmm25041movdqu 48(%esi),%xmm55042pxor 16(%esp),%xmm35043movdqu 64(%esi),%xmm65044pxor 32(%esp),%xmm45045leal 80(%esi),%esi5046pxor 48(%esp),%xmm55047movdqa %xmm7,64(%esp)5048pxor %xmm7,%xmm65049call _aesni_decrypt65050movaps 64(%esp),%xmm15051xorps (%esp),%xmm25052xorps 16(%esp),%xmm35053xorps 32(%esp),%xmm45054movups %xmm2,(%edi)5055xorps 48(%esp),%xmm55056movups %xmm3,16(%edi)5057xorps %xmm1,%xmm65058movups %xmm4,32(%edi)5059movups %xmm5,48(%edi)5060movups %xmm6,64(%edi)5061leal 80(%edi),%edi5062jmp .L067xts_dec_done5063.align 165064.L063xts_dec_one:5065movups (%esi),%xmm25066leal 16(%esi),%esi5067xorps %xmm5,%xmm25068movups (%edx),%xmm05069movups 16(%edx),%xmm15070leal 32(%edx),%edx5071xorps %xmm0,%xmm25072.L068dec1_loop_12:5073.byte 102,15,56,222,2095074decl %ecx5075movups (%edx),%xmm15076leal 16(%edx),%edx5077jnz .L068dec1_loop_125078.byte 102,15,56,223,2095079xorps %xmm5,%xmm25080movups %xmm2,(%edi)5081leal 16(%edi),%edi5082movdqa %xmm5,%xmm15083jmp .L067xts_dec_done5084.align 165085.L064xts_dec_two:5086movaps %xmm1,%xmm65087movups (%esi),%xmm25088movups 16(%esi),%xmm35089leal 32(%esi),%esi5090xorps %xmm5,%xmm25091xorps %xmm6,%xmm35092call _aesni_decrypt25093xorps %xmm5,%xmm25094xorps %xmm6,%xmm35095movups %xmm2,(%edi)5096movups %xmm3,16(%edi)5097leal 32(%edi),%edi5098movdqa %xmm6,%xmm15099jmp .L067xts_dec_done5100.align 165101.L065xts_dec_three:5102movaps %xmm1,%xmm75103movups (%esi),%xmm25104movups 16(%esi),%xmm35105movups 32(%esi),%xmm45106leal 48(%esi),%esi5107xorps %xmm5,%xmm25108xorps %xmm6,%xmm35109xorps %xmm7,%xmm45110call _aesni_decrypt35111xorps %xmm5,%xmm25112xorps %xmm6,%xmm35113xorps %xmm7,%xmm45114movups %xmm2,(%edi)5115movups %xmm3,16(%edi)5116movups %xmm4,32(%edi)5117leal 48(%edi),%edi5118movdqa %xmm7,%xmm15119jmp .L067xts_dec_done5120.align 165121.L066xts_dec_four:5122movaps %xmm1,%xmm65123movups (%esi),%xmm25124movups 16(%esi),%xmm35125movups 32(%esi),%xmm45126xorps (%esp),%xmm25127movups 48(%esi),%xmm55128leal 64(%esi),%esi5129xorps 16(%esp),%xmm35130xorps %xmm7,%xmm45131xorps %xmm6,%xmm55132call _aesni_decrypt45133xorps (%esp),%xmm25134xorps 16(%esp),%xmm35135xorps %xmm7,%xmm45136movups %xmm2,(%edi)5137xorps %xmm6,%xmm55138movups %xmm3,16(%edi)5139movups %xmm4,32(%edi)5140movups %xmm5,48(%edi)5141leal 64(%edi),%edi5142movdqa %xmm6,%xmm15143jmp .L067xts_dec_done5144.align 165145.L062xts_dec_done6x:5146movl 112(%esp),%eax5147andl $15,%eax5148jz .L069xts_dec_ret5149movl %eax,112(%esp)5150jmp .L070xts_dec_only_one_more5151.align 165152.L067xts_dec_done:5153movl 112(%esp),%eax5154pxor %xmm0,%xmm05155andl $15,%eax5156jz .L069xts_dec_ret5157pcmpgtd %xmm1,%xmm05158movl %eax,112(%esp)5159pshufd $19,%xmm0,%xmm25160pxor %xmm0,%xmm05161movdqa 96(%esp),%xmm35162paddq %xmm1,%xmm15163pand %xmm3,%xmm25164pcmpgtd %xmm1,%xmm05165pxor %xmm2,%xmm15166.L070xts_dec_only_one_more:5167pshufd $19,%xmm0,%xmm55168movdqa %xmm1,%xmm65169paddq %xmm1,%xmm15170pand %xmm3,%xmm55171pxor %xmm1,%xmm55172movl %ebp,%edx5173movl %ebx,%ecx5174movups (%esi),%xmm25175xorps %xmm5,%xmm25176movups (%edx),%xmm05177movups 16(%edx),%xmm15178leal 32(%edx),%edx5179xorps %xmm0,%xmm25180.L071dec1_loop_13:5181.byte 102,15,56,222,2095182decl %ecx5183movups (%edx),%xmm15184leal 16(%edx),%edx5185jnz .L071dec1_loop_135186.byte 102,15,56,223,2095187xorps %xmm5,%xmm25188movups %xmm2,(%edi)5189.L072xts_dec_steal:5190movzbl 16(%esi),%ecx5191movzbl (%edi),%edx5192leal 1(%esi),%esi5193movb %cl,(%edi)5194movb %dl,16(%edi)5195leal 1(%edi),%edi5196subl $1,%eax5197jnz .L072xts_dec_steal5198subl 112(%esp),%edi5199movl %ebp,%edx5200movl %ebx,%ecx5201movups (%edi),%xmm25202xorps %xmm6,%xmm25203movups (%edx),%xmm05204movups 16(%edx),%xmm15205leal 32(%edx),%edx5206xorps %xmm0,%xmm25207.L073dec1_loop_14:5208.byte 102,15,56,222,2095209decl %ecx5210movups (%edx),%xmm15211leal 16(%edx),%edx5212jnz .L073dec1_loop_145213.byte 102,15,56,223,2095214xorps %xmm6,%xmm25215movups %xmm2,(%edi)5216.L069xts_dec_ret:5217pxor %xmm0,%xmm05218pxor %xmm1,%xmm15219pxor %xmm2,%xmm25220movdqa %xmm0,(%esp)5221pxor %xmm3,%xmm35222movdqa %xmm0,16(%esp)5223pxor %xmm4,%xmm45224movdqa %xmm0,32(%esp)5225pxor %xmm5,%xmm55226movdqa %xmm0,48(%esp)5227pxor %xmm6,%xmm65228movdqa %xmm0,64(%esp)5229pxor %xmm7,%xmm75230movdqa %xmm0,80(%esp)5231movl 116(%esp),%esp5232popl %edi5233popl %esi5234popl %ebx5235popl %ebp5236ret5237.size aesni_xts_decrypt,.-.L_aesni_xts_decrypt_begin5238.globl aesni_ocb_encrypt5239.type aesni_ocb_encrypt,@function5240.align 165241aesni_ocb_encrypt:5242.L_aesni_ocb_encrypt_begin:5243#ifdef __CET__52445245.byte 243,15,30,2515246#endif52475248pushl %ebp5249pushl %ebx5250pushl %esi5251pushl %edi5252movl 40(%esp),%ecx5253movl 48(%esp),%ebx5254movl 20(%esp),%esi5255movl 24(%esp),%edi5256movl 28(%esp),%eax5257movl 32(%esp),%edx5258movdqu (%ecx),%xmm05259movl 36(%esp),%ebp5260movdqu (%ebx),%xmm15261movl 44(%esp),%ebx5262movl %esp,%ecx5263subl $132,%esp5264andl $-16,%esp5265subl %esi,%edi5266shll $4,%eax5267leal -96(%esi,%eax,1),%eax5268movl %edi,120(%esp)5269movl %eax,124(%esp)5270movl %ecx,128(%esp)5271movl 240(%edx),%ecx5272testl $1,%ebp5273jnz .L074odd5274bsfl %ebp,%eax5275addl $1,%ebp5276shll $4,%eax5277movdqu (%ebx,%eax,1),%xmm75278movl %edx,%eax5279movdqu (%esi),%xmm25280leal 16(%esi),%esi5281pxor %xmm0,%xmm75282pxor %xmm2,%xmm15283pxor %xmm7,%xmm25284movdqa %xmm1,%xmm65285movups (%edx),%xmm05286movups 16(%edx),%xmm15287leal 32(%edx),%edx5288xorps %xmm0,%xmm25289.L075enc1_loop_15:5290.byte 102,15,56,220,2095291decl %ecx5292movups (%edx),%xmm15293leal 16(%edx),%edx5294jnz .L075enc1_loop_155295.byte 102,15,56,221,2095296xorps %xmm7,%xmm25297movdqa %xmm7,%xmm05298movdqa %xmm6,%xmm15299movups %xmm2,-16(%edi,%esi,1)5300movl 240(%eax),%ecx5301movl %eax,%edx5302movl 124(%esp),%eax5303.L074odd:5304shll $4,%ecx5305movl $16,%edi5306subl %ecx,%edi5307movl %edx,112(%esp)5308leal 32(%edx,%ecx,1),%edx5309movl %edi,116(%esp)5310cmpl %eax,%esi5311ja .L076short5312jmp .L077grandloop5313.align 325314.L077grandloop:5315leal 1(%ebp),%ecx5316leal 3(%ebp),%eax5317leal 5(%ebp),%edi5318addl $6,%ebp5319bsfl %ecx,%ecx5320bsfl %eax,%eax5321bsfl %edi,%edi5322shll $4,%ecx5323shll $4,%eax5324shll $4,%edi5325movdqu (%ebx),%xmm25326movdqu (%ebx,%ecx,1),%xmm35327movl 116(%esp),%ecx5328movdqa %xmm2,%xmm45329movdqu (%ebx,%eax,1),%xmm55330movdqa %xmm2,%xmm65331movdqu (%ebx,%edi,1),%xmm75332pxor %xmm0,%xmm25333pxor %xmm2,%xmm35334movdqa %xmm2,(%esp)5335pxor %xmm3,%xmm45336movdqa %xmm3,16(%esp)5337pxor %xmm4,%xmm55338movdqa %xmm4,32(%esp)5339pxor %xmm5,%xmm65340movdqa %xmm5,48(%esp)5341pxor %xmm6,%xmm75342movdqa %xmm6,64(%esp)5343movdqa %xmm7,80(%esp)5344movups -48(%edx,%ecx,1),%xmm05345movdqu (%esi),%xmm25346movdqu 16(%esi),%xmm35347movdqu 32(%esi),%xmm45348movdqu 48(%esi),%xmm55349movdqu 64(%esi),%xmm65350movdqu 80(%esi),%xmm75351leal 96(%esi),%esi5352pxor %xmm2,%xmm15353pxor %xmm0,%xmm25354pxor %xmm3,%xmm15355pxor %xmm0,%xmm35356pxor %xmm4,%xmm15357pxor %xmm0,%xmm45358pxor %xmm5,%xmm15359pxor %xmm0,%xmm55360pxor %xmm6,%xmm15361pxor %xmm0,%xmm65362pxor %xmm7,%xmm15363pxor %xmm0,%xmm75364movdqa %xmm1,96(%esp)5365movups -32(%edx,%ecx,1),%xmm15366pxor (%esp),%xmm25367pxor 16(%esp),%xmm35368pxor 32(%esp),%xmm45369pxor 48(%esp),%xmm55370pxor 64(%esp),%xmm65371pxor 80(%esp),%xmm75372movups -16(%edx,%ecx,1),%xmm05373.byte 102,15,56,220,2095374.byte 102,15,56,220,2175375.byte 102,15,56,220,2255376.byte 102,15,56,220,2335377.byte 102,15,56,220,2415378.byte 102,15,56,220,2495379movl 120(%esp),%edi5380movl 124(%esp),%eax5381call .L_aesni_encrypt6_enter5382movdqa 80(%esp),%xmm05383pxor (%esp),%xmm25384pxor 16(%esp),%xmm35385pxor 32(%esp),%xmm45386pxor 48(%esp),%xmm55387pxor 64(%esp),%xmm65388pxor %xmm0,%xmm75389movdqa 96(%esp),%xmm15390movdqu %xmm2,-96(%edi,%esi,1)5391movdqu %xmm3,-80(%edi,%esi,1)5392movdqu %xmm4,-64(%edi,%esi,1)5393movdqu %xmm5,-48(%edi,%esi,1)5394movdqu %xmm6,-32(%edi,%esi,1)5395movdqu %xmm7,-16(%edi,%esi,1)5396cmpl %eax,%esi5397jbe .L077grandloop5398.L076short:5399addl $96,%eax5400subl %esi,%eax5401jz .L078done5402cmpl $32,%eax5403jb .L079one5404je .L080two5405cmpl $64,%eax5406jb .L081three5407je .L082four5408leal 1(%ebp),%ecx5409leal 3(%ebp),%eax5410bsfl %ecx,%ecx5411bsfl %eax,%eax5412shll $4,%ecx5413shll $4,%eax5414movdqu (%ebx),%xmm25415movdqu (%ebx,%ecx,1),%xmm35416movl 116(%esp),%ecx5417movdqa %xmm2,%xmm45418movdqu (%ebx,%eax,1),%xmm55419movdqa %xmm2,%xmm65420pxor %xmm0,%xmm25421pxor %xmm2,%xmm35422movdqa %xmm2,(%esp)5423pxor %xmm3,%xmm45424movdqa %xmm3,16(%esp)5425pxor %xmm4,%xmm55426movdqa %xmm4,32(%esp)5427pxor %xmm5,%xmm65428movdqa %xmm5,48(%esp)5429pxor %xmm6,%xmm75430movdqa %xmm6,64(%esp)5431movups -48(%edx,%ecx,1),%xmm05432movdqu (%esi),%xmm25433movdqu 16(%esi),%xmm35434movdqu 32(%esi),%xmm45435movdqu 48(%esi),%xmm55436movdqu 64(%esi),%xmm65437pxor %xmm7,%xmm75438pxor %xmm2,%xmm15439pxor %xmm0,%xmm25440pxor %xmm3,%xmm15441pxor %xmm0,%xmm35442pxor %xmm4,%xmm15443pxor %xmm0,%xmm45444pxor %xmm5,%xmm15445pxor %xmm0,%xmm55446pxor %xmm6,%xmm15447pxor %xmm0,%xmm65448movdqa %xmm1,96(%esp)5449movups -32(%edx,%ecx,1),%xmm15450pxor (%esp),%xmm25451pxor 16(%esp),%xmm35452pxor 32(%esp),%xmm45453pxor 48(%esp),%xmm55454pxor 64(%esp),%xmm65455movups -16(%edx,%ecx,1),%xmm05456.byte 102,15,56,220,2095457.byte 102,15,56,220,2175458.byte 102,15,56,220,2255459.byte 102,15,56,220,2335460.byte 102,15,56,220,2415461.byte 102,15,56,220,2495462movl 120(%esp),%edi5463call .L_aesni_encrypt6_enter5464movdqa 64(%esp),%xmm05465pxor (%esp),%xmm25466pxor 16(%esp),%xmm35467pxor 32(%esp),%xmm45468pxor 48(%esp),%xmm55469pxor %xmm0,%xmm65470movdqa 96(%esp),%xmm15471movdqu %xmm2,(%edi,%esi,1)5472movdqu %xmm3,16(%edi,%esi,1)5473movdqu %xmm4,32(%edi,%esi,1)5474movdqu %xmm5,48(%edi,%esi,1)5475movdqu %xmm6,64(%edi,%esi,1)5476jmp .L078done5477.align 165478.L079one:5479movdqu (%ebx),%xmm75480movl 112(%esp),%edx5481movdqu (%esi),%xmm25482movl 240(%edx),%ecx5483pxor %xmm0,%xmm75484pxor %xmm2,%xmm15485pxor %xmm7,%xmm25486movdqa %xmm1,%xmm65487movl 120(%esp),%edi5488movups (%edx),%xmm05489movups 16(%edx),%xmm15490leal 32(%edx),%edx5491xorps %xmm0,%xmm25492.L083enc1_loop_16:5493.byte 102,15,56,220,2095494decl %ecx5495movups (%edx),%xmm15496leal 16(%edx),%edx5497jnz .L083enc1_loop_165498.byte 102,15,56,221,2095499xorps %xmm7,%xmm25500movdqa %xmm7,%xmm05501movdqa %xmm6,%xmm15502movups %xmm2,(%edi,%esi,1)5503jmp .L078done5504.align 165505.L080two:5506leal 1(%ebp),%ecx5507movl 112(%esp),%edx5508bsfl %ecx,%ecx5509shll $4,%ecx5510movdqu (%ebx),%xmm65511movdqu (%ebx,%ecx,1),%xmm75512movdqu (%esi),%xmm25513movdqu 16(%esi),%xmm35514movl 240(%edx),%ecx5515pxor %xmm0,%xmm65516pxor %xmm6,%xmm75517pxor %xmm2,%xmm15518pxor %xmm6,%xmm25519pxor %xmm3,%xmm15520pxor %xmm7,%xmm35521movdqa %xmm1,%xmm55522movl 120(%esp),%edi5523call _aesni_encrypt25524xorps %xmm6,%xmm25525xorps %xmm7,%xmm35526movdqa %xmm7,%xmm05527movdqa %xmm5,%xmm15528movups %xmm2,(%edi,%esi,1)5529movups %xmm3,16(%edi,%esi,1)5530jmp .L078done5531.align 165532.L081three:5533leal 1(%ebp),%ecx5534movl 112(%esp),%edx5535bsfl %ecx,%ecx5536shll $4,%ecx5537movdqu (%ebx),%xmm55538movdqu (%ebx,%ecx,1),%xmm65539movdqa %xmm5,%xmm75540movdqu (%esi),%xmm25541movdqu 16(%esi),%xmm35542movdqu 32(%esi),%xmm45543movl 240(%edx),%ecx5544pxor %xmm0,%xmm55545pxor %xmm5,%xmm65546pxor %xmm6,%xmm75547pxor %xmm2,%xmm15548pxor %xmm5,%xmm25549pxor %xmm3,%xmm15550pxor %xmm6,%xmm35551pxor %xmm4,%xmm15552pxor %xmm7,%xmm45553movdqa %xmm1,96(%esp)5554movl 120(%esp),%edi5555call _aesni_encrypt35556xorps %xmm5,%xmm25557xorps %xmm6,%xmm35558xorps %xmm7,%xmm45559movdqa %xmm7,%xmm05560movdqa 96(%esp),%xmm15561movups %xmm2,(%edi,%esi,1)5562movups %xmm3,16(%edi,%esi,1)5563movups %xmm4,32(%edi,%esi,1)5564jmp .L078done5565.align 165566.L082four:5567leal 1(%ebp),%ecx5568leal 3(%ebp),%eax5569bsfl %ecx,%ecx5570bsfl %eax,%eax5571movl 112(%esp),%edx5572shll $4,%ecx5573shll $4,%eax5574movdqu (%ebx),%xmm45575movdqu (%ebx,%ecx,1),%xmm55576movdqa %xmm4,%xmm65577movdqu (%ebx,%eax,1),%xmm75578pxor %xmm0,%xmm45579movdqu (%esi),%xmm25580pxor %xmm4,%xmm55581movdqu 16(%esi),%xmm35582pxor %xmm5,%xmm65583movdqa %xmm4,(%esp)5584pxor %xmm6,%xmm75585movdqa %xmm5,16(%esp)5586movdqu 32(%esi),%xmm45587movdqu 48(%esi),%xmm55588movl 240(%edx),%ecx5589pxor %xmm2,%xmm15590pxor (%esp),%xmm25591pxor %xmm3,%xmm15592pxor 16(%esp),%xmm35593pxor %xmm4,%xmm15594pxor %xmm6,%xmm45595pxor %xmm5,%xmm15596pxor %xmm7,%xmm55597movdqa %xmm1,96(%esp)5598movl 120(%esp),%edi5599call _aesni_encrypt45600xorps (%esp),%xmm25601xorps 16(%esp),%xmm35602xorps %xmm6,%xmm45603movups %xmm2,(%edi,%esi,1)5604xorps %xmm7,%xmm55605movups %xmm3,16(%edi,%esi,1)5606movdqa %xmm7,%xmm05607movups %xmm4,32(%edi,%esi,1)5608movdqa 96(%esp),%xmm15609movups %xmm5,48(%edi,%esi,1)5610.L078done:5611movl 128(%esp),%edx5612pxor %xmm2,%xmm25613pxor %xmm3,%xmm35614movdqa %xmm2,(%esp)5615pxor %xmm4,%xmm45616movdqa %xmm2,16(%esp)5617pxor %xmm5,%xmm55618movdqa %xmm2,32(%esp)5619pxor %xmm6,%xmm65620movdqa %xmm2,48(%esp)5621pxor %xmm7,%xmm75622movdqa %xmm2,64(%esp)5623movdqa %xmm2,80(%esp)5624movdqa %xmm2,96(%esp)5625leal (%edx),%esp5626movl 40(%esp),%ecx5627movl 48(%esp),%ebx5628movdqu %xmm0,(%ecx)5629pxor %xmm0,%xmm05630movdqu %xmm1,(%ebx)5631pxor %xmm1,%xmm15632popl %edi5633popl %esi5634popl %ebx5635popl %ebp5636ret5637.size aesni_ocb_encrypt,.-.L_aesni_ocb_encrypt_begin5638.globl aesni_ocb_decrypt5639.type aesni_ocb_decrypt,@function5640.align 165641aesni_ocb_decrypt:5642.L_aesni_ocb_decrypt_begin:5643#ifdef __CET__56445645.byte 243,15,30,2515646#endif56475648pushl %ebp5649pushl %ebx5650pushl %esi5651pushl %edi5652movl 40(%esp),%ecx5653movl 48(%esp),%ebx5654movl 20(%esp),%esi5655movl 24(%esp),%edi5656movl 28(%esp),%eax5657movl 32(%esp),%edx5658movdqu (%ecx),%xmm05659movl 36(%esp),%ebp5660movdqu (%ebx),%xmm15661movl 44(%esp),%ebx5662movl %esp,%ecx5663subl $132,%esp5664andl $-16,%esp5665subl %esi,%edi5666shll $4,%eax5667leal -96(%esi,%eax,1),%eax5668movl %edi,120(%esp)5669movl %eax,124(%esp)5670movl %ecx,128(%esp)5671movl 240(%edx),%ecx5672testl $1,%ebp5673jnz .L084odd5674bsfl %ebp,%eax5675addl $1,%ebp5676shll $4,%eax5677movdqu (%ebx,%eax,1),%xmm75678movl %edx,%eax5679movdqu (%esi),%xmm25680leal 16(%esi),%esi5681pxor %xmm0,%xmm75682pxor %xmm7,%xmm25683movdqa %xmm1,%xmm65684movups (%edx),%xmm05685movups 16(%edx),%xmm15686leal 32(%edx),%edx5687xorps %xmm0,%xmm25688.L085dec1_loop_17:5689.byte 102,15,56,222,2095690decl %ecx5691movups (%edx),%xmm15692leal 16(%edx),%edx5693jnz .L085dec1_loop_175694.byte 102,15,56,223,2095695xorps %xmm7,%xmm25696movaps %xmm6,%xmm15697movdqa %xmm7,%xmm05698xorps %xmm2,%xmm15699movups %xmm2,-16(%edi,%esi,1)5700movl 240(%eax),%ecx5701movl %eax,%edx5702movl 124(%esp),%eax5703.L084odd:5704shll $4,%ecx5705movl $16,%edi5706subl %ecx,%edi5707movl %edx,112(%esp)5708leal 32(%edx,%ecx,1),%edx5709movl %edi,116(%esp)5710cmpl %eax,%esi5711ja .L086short5712jmp .L087grandloop5713.align 325714.L087grandloop:5715leal 1(%ebp),%ecx5716leal 3(%ebp),%eax5717leal 5(%ebp),%edi5718addl $6,%ebp5719bsfl %ecx,%ecx5720bsfl %eax,%eax5721bsfl %edi,%edi5722shll $4,%ecx5723shll $4,%eax5724shll $4,%edi5725movdqu (%ebx),%xmm25726movdqu (%ebx,%ecx,1),%xmm35727movl 116(%esp),%ecx5728movdqa %xmm2,%xmm45729movdqu (%ebx,%eax,1),%xmm55730movdqa %xmm2,%xmm65731movdqu (%ebx,%edi,1),%xmm75732pxor %xmm0,%xmm25733pxor %xmm2,%xmm35734movdqa %xmm2,(%esp)5735pxor %xmm3,%xmm45736movdqa %xmm3,16(%esp)5737pxor %xmm4,%xmm55738movdqa %xmm4,32(%esp)5739pxor %xmm5,%xmm65740movdqa %xmm5,48(%esp)5741pxor %xmm6,%xmm75742movdqa %xmm6,64(%esp)5743movdqa %xmm7,80(%esp)5744movups -48(%edx,%ecx,1),%xmm05745movdqu (%esi),%xmm25746movdqu 16(%esi),%xmm35747movdqu 32(%esi),%xmm45748movdqu 48(%esi),%xmm55749movdqu 64(%esi),%xmm65750movdqu 80(%esi),%xmm75751leal 96(%esi),%esi5752movdqa %xmm1,96(%esp)5753pxor %xmm0,%xmm25754pxor %xmm0,%xmm35755pxor %xmm0,%xmm45756pxor %xmm0,%xmm55757pxor %xmm0,%xmm65758pxor %xmm0,%xmm75759movups -32(%edx,%ecx,1),%xmm15760pxor (%esp),%xmm25761pxor 16(%esp),%xmm35762pxor 32(%esp),%xmm45763pxor 48(%esp),%xmm55764pxor 64(%esp),%xmm65765pxor 80(%esp),%xmm75766movups -16(%edx,%ecx,1),%xmm05767.byte 102,15,56,222,2095768.byte 102,15,56,222,2175769.byte 102,15,56,222,2255770.byte 102,15,56,222,2335771.byte 102,15,56,222,2415772.byte 102,15,56,222,2495773movl 120(%esp),%edi5774movl 124(%esp),%eax5775call .L_aesni_decrypt6_enter5776movdqa 80(%esp),%xmm05777pxor (%esp),%xmm25778movdqa 96(%esp),%xmm15779pxor 16(%esp),%xmm35780pxor 32(%esp),%xmm45781pxor 48(%esp),%xmm55782pxor 64(%esp),%xmm65783pxor %xmm0,%xmm75784pxor %xmm2,%xmm15785movdqu %xmm2,-96(%edi,%esi,1)5786pxor %xmm3,%xmm15787movdqu %xmm3,-80(%edi,%esi,1)5788pxor %xmm4,%xmm15789movdqu %xmm4,-64(%edi,%esi,1)5790pxor %xmm5,%xmm15791movdqu %xmm5,-48(%edi,%esi,1)5792pxor %xmm6,%xmm15793movdqu %xmm6,-32(%edi,%esi,1)5794pxor %xmm7,%xmm15795movdqu %xmm7,-16(%edi,%esi,1)5796cmpl %eax,%esi5797jbe .L087grandloop5798.L086short:5799addl $96,%eax5800subl %esi,%eax5801jz .L088done5802cmpl $32,%eax5803jb .L089one5804je .L090two5805cmpl $64,%eax5806jb .L091three5807je .L092four5808leal 1(%ebp),%ecx5809leal 3(%ebp),%eax5810bsfl %ecx,%ecx5811bsfl %eax,%eax5812shll $4,%ecx5813shll $4,%eax5814movdqu (%ebx),%xmm25815movdqu (%ebx,%ecx,1),%xmm35816movl 116(%esp),%ecx5817movdqa %xmm2,%xmm45818movdqu (%ebx,%eax,1),%xmm55819movdqa %xmm2,%xmm65820pxor %xmm0,%xmm25821pxor %xmm2,%xmm35822movdqa %xmm2,(%esp)5823pxor %xmm3,%xmm45824movdqa %xmm3,16(%esp)5825pxor %xmm4,%xmm55826movdqa %xmm4,32(%esp)5827pxor %xmm5,%xmm65828movdqa %xmm5,48(%esp)5829pxor %xmm6,%xmm75830movdqa %xmm6,64(%esp)5831movups -48(%edx,%ecx,1),%xmm05832movdqu (%esi),%xmm25833movdqu 16(%esi),%xmm35834movdqu 32(%esi),%xmm45835movdqu 48(%esi),%xmm55836movdqu 64(%esi),%xmm65837pxor %xmm7,%xmm75838movdqa %xmm1,96(%esp)5839pxor %xmm0,%xmm25840pxor %xmm0,%xmm35841pxor %xmm0,%xmm45842pxor %xmm0,%xmm55843pxor %xmm0,%xmm65844movups -32(%edx,%ecx,1),%xmm15845pxor (%esp),%xmm25846pxor 16(%esp),%xmm35847pxor 32(%esp),%xmm45848pxor 48(%esp),%xmm55849pxor 64(%esp),%xmm65850movups -16(%edx,%ecx,1),%xmm05851.byte 102,15,56,222,2095852.byte 102,15,56,222,2175853.byte 102,15,56,222,2255854.byte 102,15,56,222,2335855.byte 102,15,56,222,2415856.byte 102,15,56,222,2495857movl 120(%esp),%edi5858call .L_aesni_decrypt6_enter5859movdqa 64(%esp),%xmm05860pxor (%esp),%xmm25861movdqa 96(%esp),%xmm15862pxor 16(%esp),%xmm35863pxor 32(%esp),%xmm45864pxor 48(%esp),%xmm55865pxor %xmm0,%xmm65866pxor %xmm2,%xmm15867movdqu %xmm2,(%edi,%esi,1)5868pxor %xmm3,%xmm15869movdqu %xmm3,16(%edi,%esi,1)5870pxor %xmm4,%xmm15871movdqu %xmm4,32(%edi,%esi,1)5872pxor %xmm5,%xmm15873movdqu %xmm5,48(%edi,%esi,1)5874pxor %xmm6,%xmm15875movdqu %xmm6,64(%edi,%esi,1)5876jmp .L088done5877.align 165878.L089one:5879movdqu (%ebx),%xmm75880movl 112(%esp),%edx5881movdqu (%esi),%xmm25882movl 240(%edx),%ecx5883pxor %xmm0,%xmm75884pxor %xmm7,%xmm25885movdqa %xmm1,%xmm65886movl 120(%esp),%edi5887movups (%edx),%xmm05888movups 16(%edx),%xmm15889leal 32(%edx),%edx5890xorps %xmm0,%xmm25891.L093dec1_loop_18:5892.byte 102,15,56,222,2095893decl %ecx5894movups (%edx),%xmm15895leal 16(%edx),%edx5896jnz .L093dec1_loop_185897.byte 102,15,56,223,2095898xorps %xmm7,%xmm25899movaps %xmm6,%xmm15900movdqa %xmm7,%xmm05901xorps %xmm2,%xmm15902movups %xmm2,(%edi,%esi,1)5903jmp .L088done5904.align 165905.L090two:5906leal 1(%ebp),%ecx5907movl 112(%esp),%edx5908bsfl %ecx,%ecx5909shll $4,%ecx5910movdqu (%ebx),%xmm65911movdqu (%ebx,%ecx,1),%xmm75912movdqu (%esi),%xmm25913movdqu 16(%esi),%xmm35914movl 240(%edx),%ecx5915movdqa %xmm1,%xmm55916pxor %xmm0,%xmm65917pxor %xmm6,%xmm75918pxor %xmm6,%xmm25919pxor %xmm7,%xmm35920movl 120(%esp),%edi5921call _aesni_decrypt25922xorps %xmm6,%xmm25923xorps %xmm7,%xmm35924movdqa %xmm7,%xmm05925xorps %xmm2,%xmm55926movups %xmm2,(%edi,%esi,1)5927xorps %xmm3,%xmm55928movups %xmm3,16(%edi,%esi,1)5929movaps %xmm5,%xmm15930jmp .L088done5931.align 165932.L091three:5933leal 1(%ebp),%ecx5934movl 112(%esp),%edx5935bsfl %ecx,%ecx5936shll $4,%ecx5937movdqu (%ebx),%xmm55938movdqu (%ebx,%ecx,1),%xmm65939movdqa %xmm5,%xmm75940movdqu (%esi),%xmm25941movdqu 16(%esi),%xmm35942movdqu 32(%esi),%xmm45943movl 240(%edx),%ecx5944movdqa %xmm1,96(%esp)5945pxor %xmm0,%xmm55946pxor %xmm5,%xmm65947pxor %xmm6,%xmm75948pxor %xmm5,%xmm25949pxor %xmm6,%xmm35950pxor %xmm7,%xmm45951movl 120(%esp),%edi5952call _aesni_decrypt35953movdqa 96(%esp),%xmm15954xorps %xmm5,%xmm25955xorps %xmm6,%xmm35956xorps %xmm7,%xmm45957movups %xmm2,(%edi,%esi,1)5958pxor %xmm2,%xmm15959movdqa %xmm7,%xmm05960movups %xmm3,16(%edi,%esi,1)5961pxor %xmm3,%xmm15962movups %xmm4,32(%edi,%esi,1)5963pxor %xmm4,%xmm15964jmp .L088done5965.align 165966.L092four:5967leal 1(%ebp),%ecx5968leal 3(%ebp),%eax5969bsfl %ecx,%ecx5970bsfl %eax,%eax5971movl 112(%esp),%edx5972shll $4,%ecx5973shll $4,%eax5974movdqu (%ebx),%xmm45975movdqu (%ebx,%ecx,1),%xmm55976movdqa %xmm4,%xmm65977movdqu (%ebx,%eax,1),%xmm75978pxor %xmm0,%xmm45979movdqu (%esi),%xmm25980pxor %xmm4,%xmm55981movdqu 16(%esi),%xmm35982pxor %xmm5,%xmm65983movdqa %xmm4,(%esp)5984pxor %xmm6,%xmm75985movdqa %xmm5,16(%esp)5986movdqu 32(%esi),%xmm45987movdqu 48(%esi),%xmm55988movl 240(%edx),%ecx5989movdqa %xmm1,96(%esp)5990pxor (%esp),%xmm25991pxor 16(%esp),%xmm35992pxor %xmm6,%xmm45993pxor %xmm7,%xmm55994movl 120(%esp),%edi5995call _aesni_decrypt45996movdqa 96(%esp),%xmm15997xorps (%esp),%xmm25998xorps 16(%esp),%xmm35999xorps %xmm6,%xmm46000movups %xmm2,(%edi,%esi,1)6001pxor %xmm2,%xmm16002xorps %xmm7,%xmm56003movups %xmm3,16(%edi,%esi,1)6004pxor %xmm3,%xmm16005movdqa %xmm7,%xmm06006movups %xmm4,32(%edi,%esi,1)6007pxor %xmm4,%xmm16008movups %xmm5,48(%edi,%esi,1)6009pxor %xmm5,%xmm16010.L088done:6011movl 128(%esp),%edx6012pxor %xmm2,%xmm26013pxor %xmm3,%xmm36014movdqa %xmm2,(%esp)6015pxor %xmm4,%xmm46016movdqa %xmm2,16(%esp)6017pxor %xmm5,%xmm56018movdqa %xmm2,32(%esp)6019pxor %xmm6,%xmm66020movdqa %xmm2,48(%esp)6021pxor %xmm7,%xmm76022movdqa %xmm2,64(%esp)6023movdqa %xmm2,80(%esp)6024movdqa %xmm2,96(%esp)6025leal (%edx),%esp6026movl 40(%esp),%ecx6027movl 48(%esp),%ebx6028movdqu %xmm0,(%ecx)6029pxor %xmm0,%xmm06030movdqu %xmm1,(%ebx)6031pxor %xmm1,%xmm16032popl %edi6033popl %esi6034popl %ebx6035popl %ebp6036ret6037.size aesni_ocb_decrypt,.-.L_aesni_ocb_decrypt_begin6038.globl aesni_cbc_encrypt6039.type aesni_cbc_encrypt,@function6040.align 166041aesni_cbc_encrypt:6042.L_aesni_cbc_encrypt_begin:6043#ifdef __CET__60446045.byte 243,15,30,2516046#endif60476048pushl %ebp6049pushl %ebx6050pushl %esi6051pushl %edi6052movl 20(%esp),%esi6053movl %esp,%ebx6054movl 24(%esp),%edi6055subl $24,%ebx6056movl 28(%esp),%eax6057andl $-16,%ebx6058movl 32(%esp),%edx6059movl 36(%esp),%ebp6060testl %eax,%eax6061jz .L094cbc_abort6062cmpl $0,40(%esp)6063xchgl %esp,%ebx6064movups (%ebp),%xmm76065movl 240(%edx),%ecx6066movl %edx,%ebp6067movl %ebx,16(%esp)6068movl %ecx,%ebx6069je .L095cbc_decrypt6070movaps %xmm7,%xmm26071cmpl $16,%eax6072jb .L096cbc_enc_tail6073subl $16,%eax6074jmp .L097cbc_enc_loop6075.align 166076.L097cbc_enc_loop:6077movups (%esi),%xmm76078leal 16(%esi),%esi6079movups (%edx),%xmm06080movups 16(%edx),%xmm16081xorps %xmm0,%xmm76082leal 32(%edx),%edx6083xorps %xmm7,%xmm26084.L098enc1_loop_19:6085.byte 102,15,56,220,2096086decl %ecx6087movups (%edx),%xmm16088leal 16(%edx),%edx6089jnz .L098enc1_loop_196090.byte 102,15,56,221,2096091movl %ebx,%ecx6092movl %ebp,%edx6093movups %xmm2,(%edi)6094leal 16(%edi),%edi6095subl $16,%eax6096jnc .L097cbc_enc_loop6097addl $16,%eax6098jnz .L096cbc_enc_tail6099movaps %xmm2,%xmm76100pxor %xmm2,%xmm26101jmp .L099cbc_ret6102.L096cbc_enc_tail:6103movl %eax,%ecx6104.long 27674517856105movl $16,%ecx6106subl %eax,%ecx6107xorl %eax,%eax6108.long 28681150816109leal -16(%edi),%edi6110movl %ebx,%ecx6111movl %edi,%esi6112movl %ebp,%edx6113jmp .L097cbc_enc_loop6114.align 166115.L095cbc_decrypt:6116cmpl $80,%eax6117jbe .L100cbc_dec_tail6118movaps %xmm7,(%esp)6119subl $80,%eax6120jmp .L101cbc_dec_loop6_enter6121.align 166122.L102cbc_dec_loop6:6123movaps %xmm0,(%esp)6124movups %xmm7,(%edi)6125leal 16(%edi),%edi6126.L101cbc_dec_loop6_enter:6127movdqu (%esi),%xmm26128movdqu 16(%esi),%xmm36129movdqu 32(%esi),%xmm46130movdqu 48(%esi),%xmm56131movdqu 64(%esi),%xmm66132movdqu 80(%esi),%xmm76133call _aesni_decrypt66134movups (%esi),%xmm16135movups 16(%esi),%xmm06136xorps (%esp),%xmm26137xorps %xmm1,%xmm36138movups 32(%esi),%xmm16139xorps %xmm0,%xmm46140movups 48(%esi),%xmm06141xorps %xmm1,%xmm56142movups 64(%esi),%xmm16143xorps %xmm0,%xmm66144movups 80(%esi),%xmm06145xorps %xmm1,%xmm76146movups %xmm2,(%edi)6147movups %xmm3,16(%edi)6148leal 96(%esi),%esi6149movups %xmm4,32(%edi)6150movl %ebx,%ecx6151movups %xmm5,48(%edi)6152movl %ebp,%edx6153movups %xmm6,64(%edi)6154leal 80(%edi),%edi6155subl $96,%eax6156ja .L102cbc_dec_loop66157movaps %xmm7,%xmm26158movaps %xmm0,%xmm76159addl $80,%eax6160jle .L103cbc_dec_clear_tail_collected6161movups %xmm2,(%edi)6162leal 16(%edi),%edi6163.L100cbc_dec_tail:6164movups (%esi),%xmm26165movaps %xmm2,%xmm66166cmpl $16,%eax6167jbe .L104cbc_dec_one6168movups 16(%esi),%xmm36169movaps %xmm3,%xmm56170cmpl $32,%eax6171jbe .L105cbc_dec_two6172movups 32(%esi),%xmm46173cmpl $48,%eax6174jbe .L106cbc_dec_three6175movups 48(%esi),%xmm56176cmpl $64,%eax6177jbe .L107cbc_dec_four6178movups 64(%esi),%xmm66179movaps %xmm7,(%esp)6180movups (%esi),%xmm26181xorps %xmm7,%xmm76182call _aesni_decrypt66183movups (%esi),%xmm16184movups 16(%esi),%xmm06185xorps (%esp),%xmm26186xorps %xmm1,%xmm36187movups 32(%esi),%xmm16188xorps %xmm0,%xmm46189movups 48(%esi),%xmm06190xorps %xmm1,%xmm56191movups 64(%esi),%xmm76192xorps %xmm0,%xmm66193movups %xmm2,(%edi)6194movups %xmm3,16(%edi)6195pxor %xmm3,%xmm36196movups %xmm4,32(%edi)6197pxor %xmm4,%xmm46198movups %xmm5,48(%edi)6199pxor %xmm5,%xmm56200leal 64(%edi),%edi6201movaps %xmm6,%xmm26202pxor %xmm6,%xmm66203subl $80,%eax6204jmp .L108cbc_dec_tail_collected6205.align 166206.L104cbc_dec_one:6207movups (%edx),%xmm06208movups 16(%edx),%xmm16209leal 32(%edx),%edx6210xorps %xmm0,%xmm26211.L109dec1_loop_20:6212.byte 102,15,56,222,2096213decl %ecx6214movups (%edx),%xmm16215leal 16(%edx),%edx6216jnz .L109dec1_loop_206217.byte 102,15,56,223,2096218xorps %xmm7,%xmm26219movaps %xmm6,%xmm76220subl $16,%eax6221jmp .L108cbc_dec_tail_collected6222.align 166223.L105cbc_dec_two:6224call _aesni_decrypt26225xorps %xmm7,%xmm26226xorps %xmm6,%xmm36227movups %xmm2,(%edi)6228movaps %xmm3,%xmm26229pxor %xmm3,%xmm36230leal 16(%edi),%edi6231movaps %xmm5,%xmm76232subl $32,%eax6233jmp .L108cbc_dec_tail_collected6234.align 166235.L106cbc_dec_three:6236call _aesni_decrypt36237xorps %xmm7,%xmm26238xorps %xmm6,%xmm36239xorps %xmm5,%xmm46240movups %xmm2,(%edi)6241movaps %xmm4,%xmm26242pxor %xmm4,%xmm46243movups %xmm3,16(%edi)6244pxor %xmm3,%xmm36245leal 32(%edi),%edi6246movups 32(%esi),%xmm76247subl $48,%eax6248jmp .L108cbc_dec_tail_collected6249.align 166250.L107cbc_dec_four:6251call _aesni_decrypt46252movups 16(%esi),%xmm16253movups 32(%esi),%xmm06254xorps %xmm7,%xmm26255movups 48(%esi),%xmm76256xorps %xmm6,%xmm36257movups %xmm2,(%edi)6258xorps %xmm1,%xmm46259movups %xmm3,16(%edi)6260pxor %xmm3,%xmm36261xorps %xmm0,%xmm56262movups %xmm4,32(%edi)6263pxor %xmm4,%xmm46264leal 48(%edi),%edi6265movaps %xmm5,%xmm26266pxor %xmm5,%xmm56267subl $64,%eax6268jmp .L108cbc_dec_tail_collected6269.align 166270.L103cbc_dec_clear_tail_collected:6271pxor %xmm3,%xmm36272pxor %xmm4,%xmm46273pxor %xmm5,%xmm56274pxor %xmm6,%xmm66275.L108cbc_dec_tail_collected:6276andl $15,%eax6277jnz .L110cbc_dec_tail_partial6278movups %xmm2,(%edi)6279pxor %xmm0,%xmm06280jmp .L099cbc_ret6281.align 166282.L110cbc_dec_tail_partial:6283movaps %xmm2,(%esp)6284pxor %xmm0,%xmm06285movl $16,%ecx6286movl %esp,%esi6287subl %eax,%ecx6288.long 27674517856289movdqa %xmm2,(%esp)6290.L099cbc_ret:6291movl 16(%esp),%esp6292movl 36(%esp),%ebp6293pxor %xmm2,%xmm26294pxor %xmm1,%xmm16295movups %xmm7,(%ebp)6296pxor %xmm7,%xmm76297.L094cbc_abort:6298popl %edi6299popl %esi6300popl %ebx6301popl %ebp6302ret6303.size aesni_cbc_encrypt,.-.L_aesni_cbc_encrypt_begin6304.type _aesni_set_encrypt_key,@function6305.align 166306_aesni_set_encrypt_key:6307#ifdef __CET__63086309.byte 243,15,30,2516310#endif63116312pushl %ebp6313pushl %ebx6314testl %eax,%eax6315jz .L111bad_pointer6316testl %edx,%edx6317jz .L111bad_pointer6318call .L112pic6319.L112pic:6320popl %ebx6321leal .Lkey_const-.L112pic(%ebx),%ebx6322leal OPENSSL_ia32cap_P,%ebp6323movups (%eax),%xmm06324xorps %xmm4,%xmm46325movl 4(%ebp),%ebp6326leal 16(%edx),%edx6327andl $268437504,%ebp6328cmpl $256,%ecx6329je .L11314rounds6330cmpl $192,%ecx6331je .L11412rounds6332cmpl $128,%ecx6333jne .L115bad_keybits6334.align 166335.L11610rounds:6336cmpl $268435456,%ebp6337je .L11710rounds_alt6338movl $9,%ecx6339movups %xmm0,-16(%edx)6340.byte 102,15,58,223,200,16341call .L118key_128_cold6342.byte 102,15,58,223,200,26343call .L119key_1286344.byte 102,15,58,223,200,46345call .L119key_1286346.byte 102,15,58,223,200,86347call .L119key_1286348.byte 102,15,58,223,200,166349call .L119key_1286350.byte 102,15,58,223,200,326351call .L119key_1286352.byte 102,15,58,223,200,646353call .L119key_1286354.byte 102,15,58,223,200,1286355call .L119key_1286356.byte 102,15,58,223,200,276357call .L119key_1286358.byte 102,15,58,223,200,546359call .L119key_1286360movups %xmm0,(%edx)6361movl %ecx,80(%edx)6362jmp .L120good_key6363.align 166364.L119key_128:6365movups %xmm0,(%edx)6366leal 16(%edx),%edx6367.L118key_128_cold:6368shufps $16,%xmm0,%xmm46369xorps %xmm4,%xmm06370shufps $140,%xmm0,%xmm46371xorps %xmm4,%xmm06372shufps $255,%xmm1,%xmm16373xorps %xmm1,%xmm06374ret6375.align 166376.L11710rounds_alt:6377movdqa (%ebx),%xmm56378movl $8,%ecx6379movdqa 32(%ebx),%xmm46380movdqa %xmm0,%xmm26381movdqu %xmm0,-16(%edx)6382.L121loop_key128:6383.byte 102,15,56,0,1976384.byte 102,15,56,221,1966385pslld $1,%xmm46386leal 16(%edx),%edx6387movdqa %xmm2,%xmm36388pslldq $4,%xmm26389pxor %xmm2,%xmm36390pslldq $4,%xmm26391pxor %xmm2,%xmm36392pslldq $4,%xmm26393pxor %xmm3,%xmm26394pxor %xmm2,%xmm06395movdqu %xmm0,-16(%edx)6396movdqa %xmm0,%xmm26397decl %ecx6398jnz .L121loop_key1286399movdqa 48(%ebx),%xmm46400.byte 102,15,56,0,1976401.byte 102,15,56,221,1966402pslld $1,%xmm46403movdqa %xmm2,%xmm36404pslldq $4,%xmm26405pxor %xmm2,%xmm36406pslldq $4,%xmm26407pxor %xmm2,%xmm36408pslldq $4,%xmm26409pxor %xmm3,%xmm26410pxor %xmm2,%xmm06411movdqu %xmm0,(%edx)6412movdqa %xmm0,%xmm26413.byte 102,15,56,0,1976414.byte 102,15,56,221,1966415movdqa %xmm2,%xmm36416pslldq $4,%xmm26417pxor %xmm2,%xmm36418pslldq $4,%xmm26419pxor %xmm2,%xmm36420pslldq $4,%xmm26421pxor %xmm3,%xmm26422pxor %xmm2,%xmm06423movdqu %xmm0,16(%edx)6424movl $9,%ecx6425movl %ecx,96(%edx)6426jmp .L120good_key6427.align 166428.L11412rounds:6429movq 16(%eax),%xmm26430cmpl $268435456,%ebp6431je .L12212rounds_alt6432movl $11,%ecx6433movups %xmm0,-16(%edx)6434.byte 102,15,58,223,202,16435call .L123key_192a_cold6436.byte 102,15,58,223,202,26437call .L124key_192b6438.byte 102,15,58,223,202,46439call .L125key_192a6440.byte 102,15,58,223,202,86441call .L124key_192b6442.byte 102,15,58,223,202,166443call .L125key_192a6444.byte 102,15,58,223,202,326445call .L124key_192b6446.byte 102,15,58,223,202,646447call .L125key_192a6448.byte 102,15,58,223,202,1286449call .L124key_192b6450movups %xmm0,(%edx)6451movl %ecx,48(%edx)6452jmp .L120good_key6453.align 166454.L125key_192a:6455movups %xmm0,(%edx)6456leal 16(%edx),%edx6457.align 166458.L123key_192a_cold:6459movaps %xmm2,%xmm56460.L126key_192b_warm:6461shufps $16,%xmm0,%xmm46462movdqa %xmm2,%xmm36463xorps %xmm4,%xmm06464shufps $140,%xmm0,%xmm46465pslldq $4,%xmm36466xorps %xmm4,%xmm06467pshufd $85,%xmm1,%xmm16468pxor %xmm3,%xmm26469pxor %xmm1,%xmm06470pshufd $255,%xmm0,%xmm36471pxor %xmm3,%xmm26472ret6473.align 166474.L124key_192b:6475movaps %xmm0,%xmm36476shufps $68,%xmm0,%xmm56477movups %xmm5,(%edx)6478shufps $78,%xmm2,%xmm36479movups %xmm3,16(%edx)6480leal 32(%edx),%edx6481jmp .L126key_192b_warm6482.align 166483.L12212rounds_alt:6484movdqa 16(%ebx),%xmm56485movdqa 32(%ebx),%xmm46486movl $8,%ecx6487movdqu %xmm0,-16(%edx)6488.L127loop_key192:6489movq %xmm2,(%edx)6490movdqa %xmm2,%xmm16491.byte 102,15,56,0,2136492.byte 102,15,56,221,2126493pslld $1,%xmm46494leal 24(%edx),%edx6495movdqa %xmm0,%xmm36496pslldq $4,%xmm06497pxor %xmm0,%xmm36498pslldq $4,%xmm06499pxor %xmm0,%xmm36500pslldq $4,%xmm06501pxor %xmm3,%xmm06502pshufd $255,%xmm0,%xmm36503pxor %xmm1,%xmm36504pslldq $4,%xmm16505pxor %xmm1,%xmm36506pxor %xmm2,%xmm06507pxor %xmm3,%xmm26508movdqu %xmm0,-16(%edx)6509decl %ecx6510jnz .L127loop_key1926511movl $11,%ecx6512movl %ecx,32(%edx)6513jmp .L120good_key6514.align 166515.L11314rounds:6516movups 16(%eax),%xmm26517leal 16(%edx),%edx6518cmpl $268435456,%ebp6519je .L12814rounds_alt6520movl $13,%ecx6521movups %xmm0,-32(%edx)6522movups %xmm2,-16(%edx)6523.byte 102,15,58,223,202,16524call .L129key_256a_cold6525.byte 102,15,58,223,200,16526call .L130key_256b6527.byte 102,15,58,223,202,26528call .L131key_256a6529.byte 102,15,58,223,200,26530call .L130key_256b6531.byte 102,15,58,223,202,46532call .L131key_256a6533.byte 102,15,58,223,200,46534call .L130key_256b6535.byte 102,15,58,223,202,86536call .L131key_256a6537.byte 102,15,58,223,200,86538call .L130key_256b6539.byte 102,15,58,223,202,166540call .L131key_256a6541.byte 102,15,58,223,200,166542call .L130key_256b6543.byte 102,15,58,223,202,326544call .L131key_256a6545.byte 102,15,58,223,200,326546call .L130key_256b6547.byte 102,15,58,223,202,646548call .L131key_256a6549movups %xmm0,(%edx)6550movl %ecx,16(%edx)6551xorl %eax,%eax6552jmp .L120good_key6553.align 166554.L131key_256a:6555movups %xmm2,(%edx)6556leal 16(%edx),%edx6557.L129key_256a_cold:6558shufps $16,%xmm0,%xmm46559xorps %xmm4,%xmm06560shufps $140,%xmm0,%xmm46561xorps %xmm4,%xmm06562shufps $255,%xmm1,%xmm16563xorps %xmm1,%xmm06564ret6565.align 166566.L130key_256b:6567movups %xmm0,(%edx)6568leal 16(%edx),%edx6569shufps $16,%xmm2,%xmm46570xorps %xmm4,%xmm26571shufps $140,%xmm2,%xmm46572xorps %xmm4,%xmm26573shufps $170,%xmm1,%xmm16574xorps %xmm1,%xmm26575ret6576.align 166577.L12814rounds_alt:6578movdqa (%ebx),%xmm56579movdqa 32(%ebx),%xmm46580movl $7,%ecx6581movdqu %xmm0,-32(%edx)6582movdqa %xmm2,%xmm16583movdqu %xmm2,-16(%edx)6584.L132loop_key256:6585.byte 102,15,56,0,2136586.byte 102,15,56,221,2126587movdqa %xmm0,%xmm36588pslldq $4,%xmm06589pxor %xmm0,%xmm36590pslldq $4,%xmm06591pxor %xmm0,%xmm36592pslldq $4,%xmm06593pxor %xmm3,%xmm06594pslld $1,%xmm46595pxor %xmm2,%xmm06596movdqu %xmm0,(%edx)6597decl %ecx6598jz .L133done_key2566599pshufd $255,%xmm0,%xmm26600pxor %xmm3,%xmm36601.byte 102,15,56,221,2116602movdqa %xmm1,%xmm36603pslldq $4,%xmm16604pxor %xmm1,%xmm36605pslldq $4,%xmm16606pxor %xmm1,%xmm36607pslldq $4,%xmm16608pxor %xmm3,%xmm16609pxor %xmm1,%xmm26610movdqu %xmm2,16(%edx)6611leal 32(%edx),%edx6612movdqa %xmm2,%xmm16613jmp .L132loop_key2566614.L133done_key256:6615movl $13,%ecx6616movl %ecx,16(%edx)6617.L120good_key:6618pxor %xmm0,%xmm06619pxor %xmm1,%xmm16620pxor %xmm2,%xmm26621pxor %xmm3,%xmm36622pxor %xmm4,%xmm46623pxor %xmm5,%xmm56624xorl %eax,%eax6625popl %ebx6626popl %ebp6627ret6628.align 46629.L111bad_pointer:6630movl $-1,%eax6631popl %ebx6632popl %ebp6633ret6634.align 46635.L115bad_keybits:6636pxor %xmm0,%xmm06637movl $-2,%eax6638popl %ebx6639popl %ebp6640ret6641.size _aesni_set_encrypt_key,.-_aesni_set_encrypt_key6642.globl aesni_set_encrypt_key6643.type aesni_set_encrypt_key,@function6644.align 166645aesni_set_encrypt_key:6646.L_aesni_set_encrypt_key_begin:6647#ifdef __CET__66486649.byte 243,15,30,2516650#endif66516652movl 4(%esp),%eax6653movl 8(%esp),%ecx6654movl 12(%esp),%edx6655call _aesni_set_encrypt_key6656ret6657.size aesni_set_encrypt_key,.-.L_aesni_set_encrypt_key_begin6658.globl aesni_set_decrypt_key6659.type aesni_set_decrypt_key,@function6660.align 166661aesni_set_decrypt_key:6662.L_aesni_set_decrypt_key_begin:6663#ifdef __CET__66646665.byte 243,15,30,2516666#endif66676668movl 4(%esp),%eax6669movl 8(%esp),%ecx6670movl 12(%esp),%edx6671call _aesni_set_encrypt_key6672movl 12(%esp),%edx6673shll $4,%ecx6674testl %eax,%eax6675jnz .L134dec_key_ret6676leal 16(%edx,%ecx,1),%eax6677movups (%edx),%xmm06678movups (%eax),%xmm16679movups %xmm0,(%eax)6680movups %xmm1,(%edx)6681leal 16(%edx),%edx6682leal -16(%eax),%eax6683.L135dec_key_inverse:6684movups (%edx),%xmm06685movups (%eax),%xmm16686.byte 102,15,56,219,1926687.byte 102,15,56,219,2016688leal 16(%edx),%edx6689leal -16(%eax),%eax6690movups %xmm0,16(%eax)6691movups %xmm1,-16(%edx)6692cmpl %edx,%eax6693ja .L135dec_key_inverse6694movups (%edx),%xmm06695.byte 102,15,56,219,1926696movups %xmm0,(%edx)6697pxor %xmm0,%xmm06698pxor %xmm1,%xmm16699xorl %eax,%eax6700.L134dec_key_ret:6701ret6702.size aesni_set_decrypt_key,.-.L_aesni_set_decrypt_key_begin6703.align 646704.Lkey_const:6705.long 202313229,202313229,202313229,2023132296706.long 67569157,67569157,67569157,675691576707.long 1,1,1,16708.long 27,27,27,276709.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,696710.byte 83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,836711.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,1156712.byte 115,108,46,111,114,103,62,06713.comm OPENSSL_ia32cap_P,40,467146715.section ".note.gnu.property", "a"6716.p2align 26717.long 1f - 0f6718.long 4f - 1f6719.long 567200:6721.asciz "GNU"67221:6723.p2align 26724.long 0xc00000026725.long 3f - 2f67262:6727.long 367283:6729.p2align 267304:6731#endif673267336734