Path: blob/main/sys/crypto/openssl/amd64/aesni-x86_64.S
39482 views
/* Do not modify. This file is auto-generated from aesni-x86_64.pl. */1.text23.globl aesni_encrypt4.type aesni_encrypt,@function5.align 166aesni_encrypt:7.cfi_startproc8.byte 243,15,30,2509movups (%rdi),%xmm210movl 240(%rdx),%eax11movups (%rdx),%xmm012movups 16(%rdx),%xmm113leaq 32(%rdx),%rdx14xorps %xmm0,%xmm215.Loop_enc1_1:16.byte 102,15,56,220,20917decl %eax18movups (%rdx),%xmm119leaq 16(%rdx),%rdx20jnz .Loop_enc1_121.byte 102,15,56,221,20922pxor %xmm0,%xmm023pxor %xmm1,%xmm124movups %xmm2,(%rsi)25pxor %xmm2,%xmm226.byte 0xf3,0xc327.cfi_endproc28.size aesni_encrypt,.-aesni_encrypt2930.globl aesni_decrypt31.type aesni_decrypt,@function32.align 1633aesni_decrypt:34.cfi_startproc35.byte 243,15,30,25036movups (%rdi),%xmm237movl 240(%rdx),%eax38movups (%rdx),%xmm039movups 16(%rdx),%xmm140leaq 32(%rdx),%rdx41xorps %xmm0,%xmm242.Loop_dec1_2:43.byte 102,15,56,222,20944decl %eax45movups (%rdx),%xmm146leaq 16(%rdx),%rdx47jnz .Loop_dec1_248.byte 102,15,56,223,20949pxor %xmm0,%xmm050pxor %xmm1,%xmm151movups %xmm2,(%rsi)52pxor %xmm2,%xmm253.byte 0xf3,0xc354.cfi_endproc55.size aesni_decrypt, .-aesni_decrypt56.type _aesni_encrypt2,@function57.align 1658_aesni_encrypt2:59.cfi_startproc60movups (%rcx),%xmm061shll $4,%eax62movups 16(%rcx),%xmm163xorps %xmm0,%xmm264xorps %xmm0,%xmm365movups 32(%rcx),%xmm066leaq 32(%rcx,%rax,1),%rcx67negq %rax68addq $16,%rax6970.Lenc_loop2:71.byte 102,15,56,220,20972.byte 102,15,56,220,21773movups (%rcx,%rax,1),%xmm174addq $32,%rax75.byte 102,15,56,220,20876.byte 102,15,56,220,21677movups -16(%rcx,%rax,1),%xmm078jnz .Lenc_loop27980.byte 102,15,56,220,20981.byte 102,15,56,220,21782.byte 102,15,56,221,20883.byte 102,15,56,221,21684.byte 0xf3,0xc385.cfi_endproc86.size _aesni_encrypt2,.-_aesni_encrypt287.type _aesni_decrypt2,@function88.align 1689_aesni_decrypt2:90.cfi_startproc91movups (%rcx),%xmm092shll $4,%eax93movups 16(%rcx),%xmm194xorps %xmm0,%xmm295xorps %xmm0,%xmm396movups 32(%rcx),%xmm097leaq 32(%rcx,%rax,1),%rcx98negq %rax99addq $16,%rax100101.Ldec_loop2:102.byte 102,15,56,222,209103.byte 102,15,56,222,217104movups (%rcx,%rax,1),%xmm1105addq $32,%rax106.byte 102,15,56,222,208107.byte 102,15,56,222,216108movups -16(%rcx,%rax,1),%xmm0109jnz .Ldec_loop2110111.byte 102,15,56,222,209112.byte 102,15,56,222,217113.byte 102,15,56,223,208114.byte 102,15,56,223,216115.byte 0xf3,0xc3116.cfi_endproc117.size _aesni_decrypt2,.-_aesni_decrypt2118.type _aesni_encrypt3,@function119.align 16120_aesni_encrypt3:121.cfi_startproc122movups (%rcx),%xmm0123shll $4,%eax124movups 16(%rcx),%xmm1125xorps %xmm0,%xmm2126xorps %xmm0,%xmm3127xorps %xmm0,%xmm4128movups 32(%rcx),%xmm0129leaq 32(%rcx,%rax,1),%rcx130negq %rax131addq $16,%rax132133.Lenc_loop3:134.byte 102,15,56,220,209135.byte 102,15,56,220,217136.byte 102,15,56,220,225137movups (%rcx,%rax,1),%xmm1138addq $32,%rax139.byte 102,15,56,220,208140.byte 102,15,56,220,216141.byte 102,15,56,220,224142movups -16(%rcx,%rax,1),%xmm0143jnz .Lenc_loop3144145.byte 102,15,56,220,209146.byte 102,15,56,220,217147.byte 102,15,56,220,225148.byte 102,15,56,221,208149.byte 102,15,56,221,216150.byte 102,15,56,221,224151.byte 0xf3,0xc3152.cfi_endproc153.size _aesni_encrypt3,.-_aesni_encrypt3154.type _aesni_decrypt3,@function155.align 16156_aesni_decrypt3:157.cfi_startproc158movups (%rcx),%xmm0159shll $4,%eax160movups 16(%rcx),%xmm1161xorps %xmm0,%xmm2162xorps %xmm0,%xmm3163xorps %xmm0,%xmm4164movups 32(%rcx),%xmm0165leaq 32(%rcx,%rax,1),%rcx166negq %rax167addq $16,%rax168169.Ldec_loop3:170.byte 102,15,56,222,209171.byte 102,15,56,222,217172.byte 102,15,56,222,225173movups (%rcx,%rax,1),%xmm1174addq $32,%rax175.byte 102,15,56,222,208176.byte 102,15,56,222,216177.byte 102,15,56,222,224178movups -16(%rcx,%rax,1),%xmm0179jnz .Ldec_loop3180181.byte 102,15,56,222,209182.byte 102,15,56,222,217183.byte 102,15,56,222,225184.byte 102,15,56,223,208185.byte 102,15,56,223,216186.byte 102,15,56,223,224187.byte 0xf3,0xc3188.cfi_endproc189.size _aesni_decrypt3,.-_aesni_decrypt3190.type _aesni_encrypt4,@function191.align 16192_aesni_encrypt4:193.cfi_startproc194movups (%rcx),%xmm0195shll $4,%eax196movups 16(%rcx),%xmm1197xorps %xmm0,%xmm2198xorps %xmm0,%xmm3199xorps %xmm0,%xmm4200xorps %xmm0,%xmm5201movups 32(%rcx),%xmm0202leaq 32(%rcx,%rax,1),%rcx203negq %rax204.byte 0x0f,0x1f,0x00205addq $16,%rax206207.Lenc_loop4:208.byte 102,15,56,220,209209.byte 102,15,56,220,217210.byte 102,15,56,220,225211.byte 102,15,56,220,233212movups (%rcx,%rax,1),%xmm1213addq $32,%rax214.byte 102,15,56,220,208215.byte 102,15,56,220,216216.byte 102,15,56,220,224217.byte 102,15,56,220,232218movups -16(%rcx,%rax,1),%xmm0219jnz .Lenc_loop4220221.byte 102,15,56,220,209222.byte 102,15,56,220,217223.byte 102,15,56,220,225224.byte 102,15,56,220,233225.byte 102,15,56,221,208226.byte 102,15,56,221,216227.byte 102,15,56,221,224228.byte 102,15,56,221,232229.byte 0xf3,0xc3230.cfi_endproc231.size _aesni_encrypt4,.-_aesni_encrypt4232.type _aesni_decrypt4,@function233.align 16234_aesni_decrypt4:235.cfi_startproc236movups (%rcx),%xmm0237shll $4,%eax238movups 16(%rcx),%xmm1239xorps %xmm0,%xmm2240xorps %xmm0,%xmm3241xorps %xmm0,%xmm4242xorps %xmm0,%xmm5243movups 32(%rcx),%xmm0244leaq 32(%rcx,%rax,1),%rcx245negq %rax246.byte 0x0f,0x1f,0x00247addq $16,%rax248249.Ldec_loop4:250.byte 102,15,56,222,209251.byte 102,15,56,222,217252.byte 102,15,56,222,225253.byte 102,15,56,222,233254movups (%rcx,%rax,1),%xmm1255addq $32,%rax256.byte 102,15,56,222,208257.byte 102,15,56,222,216258.byte 102,15,56,222,224259.byte 102,15,56,222,232260movups -16(%rcx,%rax,1),%xmm0261jnz .Ldec_loop4262263.byte 102,15,56,222,209264.byte 102,15,56,222,217265.byte 102,15,56,222,225266.byte 102,15,56,222,233267.byte 102,15,56,223,208268.byte 102,15,56,223,216269.byte 102,15,56,223,224270.byte 102,15,56,223,232271.byte 0xf3,0xc3272.cfi_endproc273.size _aesni_decrypt4,.-_aesni_decrypt4274.type _aesni_encrypt6,@function275.align 16276_aesni_encrypt6:277.cfi_startproc278movups (%rcx),%xmm0279shll $4,%eax280movups 16(%rcx),%xmm1281xorps %xmm0,%xmm2282pxor %xmm0,%xmm3283pxor %xmm0,%xmm4284.byte 102,15,56,220,209285leaq 32(%rcx,%rax,1),%rcx286negq %rax287.byte 102,15,56,220,217288pxor %xmm0,%xmm5289pxor %xmm0,%xmm6290.byte 102,15,56,220,225291pxor %xmm0,%xmm7292movups (%rcx,%rax,1),%xmm0293addq $16,%rax294jmp .Lenc_loop6_enter295.align 16296.Lenc_loop6:297.byte 102,15,56,220,209298.byte 102,15,56,220,217299.byte 102,15,56,220,225300.Lenc_loop6_enter:301.byte 102,15,56,220,233302.byte 102,15,56,220,241303.byte 102,15,56,220,249304movups (%rcx,%rax,1),%xmm1305addq $32,%rax306.byte 102,15,56,220,208307.byte 102,15,56,220,216308.byte 102,15,56,220,224309.byte 102,15,56,220,232310.byte 102,15,56,220,240311.byte 102,15,56,220,248312movups -16(%rcx,%rax,1),%xmm0313jnz .Lenc_loop6314315.byte 102,15,56,220,209316.byte 102,15,56,220,217317.byte 102,15,56,220,225318.byte 102,15,56,220,233319.byte 102,15,56,220,241320.byte 102,15,56,220,249321.byte 102,15,56,221,208322.byte 102,15,56,221,216323.byte 102,15,56,221,224324.byte 102,15,56,221,232325.byte 102,15,56,221,240326.byte 102,15,56,221,248327.byte 0xf3,0xc3328.cfi_endproc329.size _aesni_encrypt6,.-_aesni_encrypt6330.type _aesni_decrypt6,@function331.align 16332_aesni_decrypt6:333.cfi_startproc334movups (%rcx),%xmm0335shll $4,%eax336movups 16(%rcx),%xmm1337xorps %xmm0,%xmm2338pxor %xmm0,%xmm3339pxor %xmm0,%xmm4340.byte 102,15,56,222,209341leaq 32(%rcx,%rax,1),%rcx342negq %rax343.byte 102,15,56,222,217344pxor %xmm0,%xmm5345pxor %xmm0,%xmm6346.byte 102,15,56,222,225347pxor %xmm0,%xmm7348movups (%rcx,%rax,1),%xmm0349addq $16,%rax350jmp .Ldec_loop6_enter351.align 16352.Ldec_loop6:353.byte 102,15,56,222,209354.byte 102,15,56,222,217355.byte 102,15,56,222,225356.Ldec_loop6_enter:357.byte 102,15,56,222,233358.byte 102,15,56,222,241359.byte 102,15,56,222,249360movups (%rcx,%rax,1),%xmm1361addq $32,%rax362.byte 102,15,56,222,208363.byte 102,15,56,222,216364.byte 102,15,56,222,224365.byte 102,15,56,222,232366.byte 102,15,56,222,240367.byte 102,15,56,222,248368movups -16(%rcx,%rax,1),%xmm0369jnz .Ldec_loop6370371.byte 102,15,56,222,209372.byte 102,15,56,222,217373.byte 102,15,56,222,225374.byte 102,15,56,222,233375.byte 102,15,56,222,241376.byte 102,15,56,222,249377.byte 102,15,56,223,208378.byte 102,15,56,223,216379.byte 102,15,56,223,224380.byte 102,15,56,223,232381.byte 102,15,56,223,240382.byte 102,15,56,223,248383.byte 0xf3,0xc3384.cfi_endproc385.size _aesni_decrypt6,.-_aesni_decrypt6386.type _aesni_encrypt8,@function387.align 16388_aesni_encrypt8:389.cfi_startproc390movups (%rcx),%xmm0391shll $4,%eax392movups 16(%rcx),%xmm1393xorps %xmm0,%xmm2394xorps %xmm0,%xmm3395pxor %xmm0,%xmm4396pxor %xmm0,%xmm5397pxor %xmm0,%xmm6398leaq 32(%rcx,%rax,1),%rcx399negq %rax400.byte 102,15,56,220,209401pxor %xmm0,%xmm7402pxor %xmm0,%xmm8403.byte 102,15,56,220,217404pxor %xmm0,%xmm9405movups (%rcx,%rax,1),%xmm0406addq $16,%rax407jmp .Lenc_loop8_inner408.align 16409.Lenc_loop8:410.byte 102,15,56,220,209411.byte 102,15,56,220,217412.Lenc_loop8_inner:413.byte 102,15,56,220,225414.byte 102,15,56,220,233415.byte 102,15,56,220,241416.byte 102,15,56,220,249417.byte 102,68,15,56,220,193418.byte 102,68,15,56,220,201419.Lenc_loop8_enter:420movups (%rcx,%rax,1),%xmm1421addq $32,%rax422.byte 102,15,56,220,208423.byte 102,15,56,220,216424.byte 102,15,56,220,224425.byte 102,15,56,220,232426.byte 102,15,56,220,240427.byte 102,15,56,220,248428.byte 102,68,15,56,220,192429.byte 102,68,15,56,220,200430movups -16(%rcx,%rax,1),%xmm0431jnz .Lenc_loop8432433.byte 102,15,56,220,209434.byte 102,15,56,220,217435.byte 102,15,56,220,225436.byte 102,15,56,220,233437.byte 102,15,56,220,241438.byte 102,15,56,220,249439.byte 102,68,15,56,220,193440.byte 102,68,15,56,220,201441.byte 102,15,56,221,208442.byte 102,15,56,221,216443.byte 102,15,56,221,224444.byte 102,15,56,221,232445.byte 102,15,56,221,240446.byte 102,15,56,221,248447.byte 102,68,15,56,221,192448.byte 102,68,15,56,221,200449.byte 0xf3,0xc3450.cfi_endproc451.size _aesni_encrypt8,.-_aesni_encrypt8452.type _aesni_decrypt8,@function453.align 16454_aesni_decrypt8:455.cfi_startproc456movups (%rcx),%xmm0457shll $4,%eax458movups 16(%rcx),%xmm1459xorps %xmm0,%xmm2460xorps %xmm0,%xmm3461pxor %xmm0,%xmm4462pxor %xmm0,%xmm5463pxor %xmm0,%xmm6464leaq 32(%rcx,%rax,1),%rcx465negq %rax466.byte 102,15,56,222,209467pxor %xmm0,%xmm7468pxor %xmm0,%xmm8469.byte 102,15,56,222,217470pxor %xmm0,%xmm9471movups (%rcx,%rax,1),%xmm0472addq $16,%rax473jmp .Ldec_loop8_inner474.align 16475.Ldec_loop8:476.byte 102,15,56,222,209477.byte 102,15,56,222,217478.Ldec_loop8_inner:479.byte 102,15,56,222,225480.byte 102,15,56,222,233481.byte 102,15,56,222,241482.byte 102,15,56,222,249483.byte 102,68,15,56,222,193484.byte 102,68,15,56,222,201485.Ldec_loop8_enter:486movups (%rcx,%rax,1),%xmm1487addq $32,%rax488.byte 102,15,56,222,208489.byte 102,15,56,222,216490.byte 102,15,56,222,224491.byte 102,15,56,222,232492.byte 102,15,56,222,240493.byte 102,15,56,222,248494.byte 102,68,15,56,222,192495.byte 102,68,15,56,222,200496movups -16(%rcx,%rax,1),%xmm0497jnz .Ldec_loop8498499.byte 102,15,56,222,209500.byte 102,15,56,222,217501.byte 102,15,56,222,225502.byte 102,15,56,222,233503.byte 102,15,56,222,241504.byte 102,15,56,222,249505.byte 102,68,15,56,222,193506.byte 102,68,15,56,222,201507.byte 102,15,56,223,208508.byte 102,15,56,223,216509.byte 102,15,56,223,224510.byte 102,15,56,223,232511.byte 102,15,56,223,240512.byte 102,15,56,223,248513.byte 102,68,15,56,223,192514.byte 102,68,15,56,223,200515.byte 0xf3,0xc3516.cfi_endproc517.size _aesni_decrypt8,.-_aesni_decrypt8518.globl aesni_ecb_encrypt519.type aesni_ecb_encrypt,@function520.align 16521aesni_ecb_encrypt:522.cfi_startproc523.byte 243,15,30,250524andq $-16,%rdx525jz .Lecb_ret526527movl 240(%rcx),%eax528movups (%rcx),%xmm0529movq %rcx,%r11530movl %eax,%r10d531testl %r8d,%r8d532jz .Lecb_decrypt533534cmpq $0x80,%rdx535jb .Lecb_enc_tail536537movdqu (%rdi),%xmm2538movdqu 16(%rdi),%xmm3539movdqu 32(%rdi),%xmm4540movdqu 48(%rdi),%xmm5541movdqu 64(%rdi),%xmm6542movdqu 80(%rdi),%xmm7543movdqu 96(%rdi),%xmm8544movdqu 112(%rdi),%xmm9545leaq 128(%rdi),%rdi546subq $0x80,%rdx547jmp .Lecb_enc_loop8_enter548.align 16549.Lecb_enc_loop8:550movups %xmm2,(%rsi)551movq %r11,%rcx552movdqu (%rdi),%xmm2553movl %r10d,%eax554movups %xmm3,16(%rsi)555movdqu 16(%rdi),%xmm3556movups %xmm4,32(%rsi)557movdqu 32(%rdi),%xmm4558movups %xmm5,48(%rsi)559movdqu 48(%rdi),%xmm5560movups %xmm6,64(%rsi)561movdqu 64(%rdi),%xmm6562movups %xmm7,80(%rsi)563movdqu 80(%rdi),%xmm7564movups %xmm8,96(%rsi)565movdqu 96(%rdi),%xmm8566movups %xmm9,112(%rsi)567leaq 128(%rsi),%rsi568movdqu 112(%rdi),%xmm9569leaq 128(%rdi),%rdi570.Lecb_enc_loop8_enter:571572call _aesni_encrypt8573574subq $0x80,%rdx575jnc .Lecb_enc_loop8576577movups %xmm2,(%rsi)578movq %r11,%rcx579movups %xmm3,16(%rsi)580movl %r10d,%eax581movups %xmm4,32(%rsi)582movups %xmm5,48(%rsi)583movups %xmm6,64(%rsi)584movups %xmm7,80(%rsi)585movups %xmm8,96(%rsi)586movups %xmm9,112(%rsi)587leaq 128(%rsi),%rsi588addq $0x80,%rdx589jz .Lecb_ret590591.Lecb_enc_tail:592movups (%rdi),%xmm2593cmpq $0x20,%rdx594jb .Lecb_enc_one595movups 16(%rdi),%xmm3596je .Lecb_enc_two597movups 32(%rdi),%xmm4598cmpq $0x40,%rdx599jb .Lecb_enc_three600movups 48(%rdi),%xmm5601je .Lecb_enc_four602movups 64(%rdi),%xmm6603cmpq $0x60,%rdx604jb .Lecb_enc_five605movups 80(%rdi),%xmm7606je .Lecb_enc_six607movdqu 96(%rdi),%xmm8608xorps %xmm9,%xmm9609call _aesni_encrypt8610movups %xmm2,(%rsi)611movups %xmm3,16(%rsi)612movups %xmm4,32(%rsi)613movups %xmm5,48(%rsi)614movups %xmm6,64(%rsi)615movups %xmm7,80(%rsi)616movups %xmm8,96(%rsi)617jmp .Lecb_ret618.align 16619.Lecb_enc_one:620movups (%rcx),%xmm0621movups 16(%rcx),%xmm1622leaq 32(%rcx),%rcx623xorps %xmm0,%xmm2624.Loop_enc1_3:625.byte 102,15,56,220,209626decl %eax627movups (%rcx),%xmm1628leaq 16(%rcx),%rcx629jnz .Loop_enc1_3630.byte 102,15,56,221,209631movups %xmm2,(%rsi)632jmp .Lecb_ret633.align 16634.Lecb_enc_two:635call _aesni_encrypt2636movups %xmm2,(%rsi)637movups %xmm3,16(%rsi)638jmp .Lecb_ret639.align 16640.Lecb_enc_three:641call _aesni_encrypt3642movups %xmm2,(%rsi)643movups %xmm3,16(%rsi)644movups %xmm4,32(%rsi)645jmp .Lecb_ret646.align 16647.Lecb_enc_four:648call _aesni_encrypt4649movups %xmm2,(%rsi)650movups %xmm3,16(%rsi)651movups %xmm4,32(%rsi)652movups %xmm5,48(%rsi)653jmp .Lecb_ret654.align 16655.Lecb_enc_five:656xorps %xmm7,%xmm7657call _aesni_encrypt6658movups %xmm2,(%rsi)659movups %xmm3,16(%rsi)660movups %xmm4,32(%rsi)661movups %xmm5,48(%rsi)662movups %xmm6,64(%rsi)663jmp .Lecb_ret664.align 16665.Lecb_enc_six:666call _aesni_encrypt6667movups %xmm2,(%rsi)668movups %xmm3,16(%rsi)669movups %xmm4,32(%rsi)670movups %xmm5,48(%rsi)671movups %xmm6,64(%rsi)672movups %xmm7,80(%rsi)673jmp .Lecb_ret674675.align 16676.Lecb_decrypt:677cmpq $0x80,%rdx678jb .Lecb_dec_tail679680movdqu (%rdi),%xmm2681movdqu 16(%rdi),%xmm3682movdqu 32(%rdi),%xmm4683movdqu 48(%rdi),%xmm5684movdqu 64(%rdi),%xmm6685movdqu 80(%rdi),%xmm7686movdqu 96(%rdi),%xmm8687movdqu 112(%rdi),%xmm9688leaq 128(%rdi),%rdi689subq $0x80,%rdx690jmp .Lecb_dec_loop8_enter691.align 16692.Lecb_dec_loop8:693movups %xmm2,(%rsi)694movq %r11,%rcx695movdqu (%rdi),%xmm2696movl %r10d,%eax697movups %xmm3,16(%rsi)698movdqu 16(%rdi),%xmm3699movups %xmm4,32(%rsi)700movdqu 32(%rdi),%xmm4701movups %xmm5,48(%rsi)702movdqu 48(%rdi),%xmm5703movups %xmm6,64(%rsi)704movdqu 64(%rdi),%xmm6705movups %xmm7,80(%rsi)706movdqu 80(%rdi),%xmm7707movups %xmm8,96(%rsi)708movdqu 96(%rdi),%xmm8709movups %xmm9,112(%rsi)710leaq 128(%rsi),%rsi711movdqu 112(%rdi),%xmm9712leaq 128(%rdi),%rdi713.Lecb_dec_loop8_enter:714715call _aesni_decrypt8716717movups (%r11),%xmm0718subq $0x80,%rdx719jnc .Lecb_dec_loop8720721movups %xmm2,(%rsi)722pxor %xmm2,%xmm2723movq %r11,%rcx724movups %xmm3,16(%rsi)725pxor %xmm3,%xmm3726movl %r10d,%eax727movups %xmm4,32(%rsi)728pxor %xmm4,%xmm4729movups %xmm5,48(%rsi)730pxor %xmm5,%xmm5731movups %xmm6,64(%rsi)732pxor %xmm6,%xmm6733movups %xmm7,80(%rsi)734pxor %xmm7,%xmm7735movups %xmm8,96(%rsi)736pxor %xmm8,%xmm8737movups %xmm9,112(%rsi)738pxor %xmm9,%xmm9739leaq 128(%rsi),%rsi740addq $0x80,%rdx741jz .Lecb_ret742743.Lecb_dec_tail:744movups (%rdi),%xmm2745cmpq $0x20,%rdx746jb .Lecb_dec_one747movups 16(%rdi),%xmm3748je .Lecb_dec_two749movups 32(%rdi),%xmm4750cmpq $0x40,%rdx751jb .Lecb_dec_three752movups 48(%rdi),%xmm5753je .Lecb_dec_four754movups 64(%rdi),%xmm6755cmpq $0x60,%rdx756jb .Lecb_dec_five757movups 80(%rdi),%xmm7758je .Lecb_dec_six759movups 96(%rdi),%xmm8760movups (%rcx),%xmm0761xorps %xmm9,%xmm9762call _aesni_decrypt8763movups %xmm2,(%rsi)764pxor %xmm2,%xmm2765movups %xmm3,16(%rsi)766pxor %xmm3,%xmm3767movups %xmm4,32(%rsi)768pxor %xmm4,%xmm4769movups %xmm5,48(%rsi)770pxor %xmm5,%xmm5771movups %xmm6,64(%rsi)772pxor %xmm6,%xmm6773movups %xmm7,80(%rsi)774pxor %xmm7,%xmm7775movups %xmm8,96(%rsi)776pxor %xmm8,%xmm8777pxor %xmm9,%xmm9778jmp .Lecb_ret779.align 16780.Lecb_dec_one:781movups (%rcx),%xmm0782movups 16(%rcx),%xmm1783leaq 32(%rcx),%rcx784xorps %xmm0,%xmm2785.Loop_dec1_4:786.byte 102,15,56,222,209787decl %eax788movups (%rcx),%xmm1789leaq 16(%rcx),%rcx790jnz .Loop_dec1_4791.byte 102,15,56,223,209792movups %xmm2,(%rsi)793pxor %xmm2,%xmm2794jmp .Lecb_ret795.align 16796.Lecb_dec_two:797call _aesni_decrypt2798movups %xmm2,(%rsi)799pxor %xmm2,%xmm2800movups %xmm3,16(%rsi)801pxor %xmm3,%xmm3802jmp .Lecb_ret803.align 16804.Lecb_dec_three:805call _aesni_decrypt3806movups %xmm2,(%rsi)807pxor %xmm2,%xmm2808movups %xmm3,16(%rsi)809pxor %xmm3,%xmm3810movups %xmm4,32(%rsi)811pxor %xmm4,%xmm4812jmp .Lecb_ret813.align 16814.Lecb_dec_four:815call _aesni_decrypt4816movups %xmm2,(%rsi)817pxor %xmm2,%xmm2818movups %xmm3,16(%rsi)819pxor %xmm3,%xmm3820movups %xmm4,32(%rsi)821pxor %xmm4,%xmm4822movups %xmm5,48(%rsi)823pxor %xmm5,%xmm5824jmp .Lecb_ret825.align 16826.Lecb_dec_five:827xorps %xmm7,%xmm7828call _aesni_decrypt6829movups %xmm2,(%rsi)830pxor %xmm2,%xmm2831movups %xmm3,16(%rsi)832pxor %xmm3,%xmm3833movups %xmm4,32(%rsi)834pxor %xmm4,%xmm4835movups %xmm5,48(%rsi)836pxor %xmm5,%xmm5837movups %xmm6,64(%rsi)838pxor %xmm6,%xmm6839pxor %xmm7,%xmm7840jmp .Lecb_ret841.align 16842.Lecb_dec_six:843call _aesni_decrypt6844movups %xmm2,(%rsi)845pxor %xmm2,%xmm2846movups %xmm3,16(%rsi)847pxor %xmm3,%xmm3848movups %xmm4,32(%rsi)849pxor %xmm4,%xmm4850movups %xmm5,48(%rsi)851pxor %xmm5,%xmm5852movups %xmm6,64(%rsi)853pxor %xmm6,%xmm6854movups %xmm7,80(%rsi)855pxor %xmm7,%xmm7856857.Lecb_ret:858xorps %xmm0,%xmm0859pxor %xmm1,%xmm1860.byte 0xf3,0xc3861.cfi_endproc862.size aesni_ecb_encrypt,.-aesni_ecb_encrypt863.globl aesni_ccm64_encrypt_blocks864.type aesni_ccm64_encrypt_blocks,@function865.align 16866aesni_ccm64_encrypt_blocks:867.cfi_startproc868.byte 243,15,30,250869movl 240(%rcx),%eax870movdqu (%r8),%xmm6871movdqa .Lincrement64(%rip),%xmm9872movdqa .Lbswap_mask(%rip),%xmm7873874shll $4,%eax875movl $16,%r10d876leaq 0(%rcx),%r11877movdqu (%r9),%xmm3878movdqa %xmm6,%xmm2879leaq 32(%rcx,%rax,1),%rcx880.byte 102,15,56,0,247881subq %rax,%r10882jmp .Lccm64_enc_outer883.align 16884.Lccm64_enc_outer:885movups (%r11),%xmm0886movq %r10,%rax887movups (%rdi),%xmm8888889xorps %xmm0,%xmm2890movups 16(%r11),%xmm1891xorps %xmm8,%xmm0892xorps %xmm0,%xmm3893movups 32(%r11),%xmm0894895.Lccm64_enc2_loop:896.byte 102,15,56,220,209897.byte 102,15,56,220,217898movups (%rcx,%rax,1),%xmm1899addq $32,%rax900.byte 102,15,56,220,208901.byte 102,15,56,220,216902movups -16(%rcx,%rax,1),%xmm0903jnz .Lccm64_enc2_loop904.byte 102,15,56,220,209905.byte 102,15,56,220,217906paddq %xmm9,%xmm6907decq %rdx908.byte 102,15,56,221,208909.byte 102,15,56,221,216910911leaq 16(%rdi),%rdi912xorps %xmm2,%xmm8913movdqa %xmm6,%xmm2914movups %xmm8,(%rsi)915.byte 102,15,56,0,215916leaq 16(%rsi),%rsi917jnz .Lccm64_enc_outer918919pxor %xmm0,%xmm0920pxor %xmm1,%xmm1921pxor %xmm2,%xmm2922movups %xmm3,(%r9)923pxor %xmm3,%xmm3924pxor %xmm8,%xmm8925pxor %xmm6,%xmm6926.byte 0xf3,0xc3927.cfi_endproc928.size aesni_ccm64_encrypt_blocks,.-aesni_ccm64_encrypt_blocks929.globl aesni_ccm64_decrypt_blocks930.type aesni_ccm64_decrypt_blocks,@function931.align 16932aesni_ccm64_decrypt_blocks:933.cfi_startproc934.byte 243,15,30,250935movl 240(%rcx),%eax936movups (%r8),%xmm6937movdqu (%r9),%xmm3938movdqa .Lincrement64(%rip),%xmm9939movdqa .Lbswap_mask(%rip),%xmm7940941movaps %xmm6,%xmm2942movl %eax,%r10d943movq %rcx,%r11944.byte 102,15,56,0,247945movups (%rcx),%xmm0946movups 16(%rcx),%xmm1947leaq 32(%rcx),%rcx948xorps %xmm0,%xmm2949.Loop_enc1_5:950.byte 102,15,56,220,209951decl %eax952movups (%rcx),%xmm1953leaq 16(%rcx),%rcx954jnz .Loop_enc1_5955.byte 102,15,56,221,209956shll $4,%r10d957movl $16,%eax958movups (%rdi),%xmm8959paddq %xmm9,%xmm6960leaq 16(%rdi),%rdi961subq %r10,%rax962leaq 32(%r11,%r10,1),%rcx963movq %rax,%r10964jmp .Lccm64_dec_outer965.align 16966.Lccm64_dec_outer:967xorps %xmm2,%xmm8968movdqa %xmm6,%xmm2969movups %xmm8,(%rsi)970leaq 16(%rsi),%rsi971.byte 102,15,56,0,215972973subq $1,%rdx974jz .Lccm64_dec_break975976movups (%r11),%xmm0977movq %r10,%rax978movups 16(%r11),%xmm1979xorps %xmm0,%xmm8980xorps %xmm0,%xmm2981xorps %xmm8,%xmm3982movups 32(%r11),%xmm0983jmp .Lccm64_dec2_loop984.align 16985.Lccm64_dec2_loop:986.byte 102,15,56,220,209987.byte 102,15,56,220,217988movups (%rcx,%rax,1),%xmm1989addq $32,%rax990.byte 102,15,56,220,208991.byte 102,15,56,220,216992movups -16(%rcx,%rax,1),%xmm0993jnz .Lccm64_dec2_loop994movups (%rdi),%xmm8995paddq %xmm9,%xmm6996.byte 102,15,56,220,209997.byte 102,15,56,220,217998.byte 102,15,56,221,208999.byte 102,15,56,221,2161000leaq 16(%rdi),%rdi1001jmp .Lccm64_dec_outer10021003.align 161004.Lccm64_dec_break:10051006movl 240(%r11),%eax1007movups (%r11),%xmm01008movups 16(%r11),%xmm11009xorps %xmm0,%xmm81010leaq 32(%r11),%r111011xorps %xmm8,%xmm31012.Loop_enc1_6:1013.byte 102,15,56,220,2171014decl %eax1015movups (%r11),%xmm11016leaq 16(%r11),%r111017jnz .Loop_enc1_61018.byte 102,15,56,221,2171019pxor %xmm0,%xmm01020pxor %xmm1,%xmm11021pxor %xmm2,%xmm21022movups %xmm3,(%r9)1023pxor %xmm3,%xmm31024pxor %xmm8,%xmm81025pxor %xmm6,%xmm61026.byte 0xf3,0xc31027.cfi_endproc1028.size aesni_ccm64_decrypt_blocks,.-aesni_ccm64_decrypt_blocks1029.globl aesni_ctr32_encrypt_blocks1030.type aesni_ctr32_encrypt_blocks,@function1031.align 161032aesni_ctr32_encrypt_blocks:1033.cfi_startproc1034.byte 243,15,30,2501035cmpq $1,%rdx1036jne .Lctr32_bulk1037103810391040movups (%r8),%xmm21041movups (%rdi),%xmm31042movl 240(%rcx),%edx1043movups (%rcx),%xmm01044movups 16(%rcx),%xmm11045leaq 32(%rcx),%rcx1046xorps %xmm0,%xmm21047.Loop_enc1_7:1048.byte 102,15,56,220,2091049decl %edx1050movups (%rcx),%xmm11051leaq 16(%rcx),%rcx1052jnz .Loop_enc1_71053.byte 102,15,56,221,2091054pxor %xmm0,%xmm01055pxor %xmm1,%xmm11056xorps %xmm3,%xmm21057pxor %xmm3,%xmm31058movups %xmm2,(%rsi)1059xorps %xmm2,%xmm21060jmp .Lctr32_epilogue10611062.align 161063.Lctr32_bulk:1064leaq (%rsp),%r111065.cfi_def_cfa_register %r111066pushq %rbp1067.cfi_offset %rbp,-161068subq $128,%rsp1069andq $-16,%rsp10701071107210731074movdqu (%r8),%xmm21075movdqu (%rcx),%xmm01076movl 12(%r8),%r8d1077pxor %xmm0,%xmm21078movl 12(%rcx),%ebp1079movdqa %xmm2,0(%rsp)1080bswapl %r8d1081movdqa %xmm2,%xmm31082movdqa %xmm2,%xmm41083movdqa %xmm2,%xmm51084movdqa %xmm2,64(%rsp)1085movdqa %xmm2,80(%rsp)1086movdqa %xmm2,96(%rsp)1087movq %rdx,%r101088movdqa %xmm2,112(%rsp)10891090leaq 1(%r8),%rax1091leaq 2(%r8),%rdx1092bswapl %eax1093bswapl %edx1094xorl %ebp,%eax1095xorl %ebp,%edx1096.byte 102,15,58,34,216,31097leaq 3(%r8),%rax1098movdqa %xmm3,16(%rsp)1099.byte 102,15,58,34,226,31100bswapl %eax1101movq %r10,%rdx1102leaq 4(%r8),%r101103movdqa %xmm4,32(%rsp)1104xorl %ebp,%eax1105bswapl %r10d1106.byte 102,15,58,34,232,31107xorl %ebp,%r10d1108movdqa %xmm5,48(%rsp)1109leaq 5(%r8),%r91110movl %r10d,64+12(%rsp)1111bswapl %r9d1112leaq 6(%r8),%r101113movl 240(%rcx),%eax1114xorl %ebp,%r9d1115bswapl %r10d1116movl %r9d,80+12(%rsp)1117xorl %ebp,%r10d1118leaq 7(%r8),%r91119movl %r10d,96+12(%rsp)1120bswapl %r9d1121movl OPENSSL_ia32cap_P+4(%rip),%r10d1122xorl %ebp,%r9d1123andl $71303168,%r10d1124movl %r9d,112+12(%rsp)11251126movups 16(%rcx),%xmm111271128movdqa 64(%rsp),%xmm61129movdqa 80(%rsp),%xmm711301131cmpq $8,%rdx1132jb .Lctr32_tail11331134subq $6,%rdx1135cmpl $4194304,%r10d1136je .Lctr32_6x11371138leaq 128(%rcx),%rcx1139subq $2,%rdx1140jmp .Lctr32_loop811411142.align 161143.Lctr32_6x:1144shll $4,%eax1145movl $48,%r10d1146bswapl %ebp1147leaq 32(%rcx,%rax,1),%rcx1148subq %rax,%r101149jmp .Lctr32_loop611501151.align 161152.Lctr32_loop6:1153addl $6,%r8d1154movups -48(%rcx,%r10,1),%xmm01155.byte 102,15,56,220,2091156movl %r8d,%eax1157xorl %ebp,%eax1158.byte 102,15,56,220,2171159.byte 0x0f,0x38,0xf1,0x44,0x24,121160leal 1(%r8),%eax1161.byte 102,15,56,220,2251162xorl %ebp,%eax1163.byte 0x0f,0x38,0xf1,0x44,0x24,281164.byte 102,15,56,220,2331165leal 2(%r8),%eax1166xorl %ebp,%eax1167.byte 102,15,56,220,2411168.byte 0x0f,0x38,0xf1,0x44,0x24,441169leal 3(%r8),%eax1170.byte 102,15,56,220,2491171movups -32(%rcx,%r10,1),%xmm11172xorl %ebp,%eax11731174.byte 102,15,56,220,2081175.byte 0x0f,0x38,0xf1,0x44,0x24,601176leal 4(%r8),%eax1177.byte 102,15,56,220,2161178xorl %ebp,%eax1179.byte 0x0f,0x38,0xf1,0x44,0x24,761180.byte 102,15,56,220,2241181leal 5(%r8),%eax1182xorl %ebp,%eax1183.byte 102,15,56,220,2321184.byte 0x0f,0x38,0xf1,0x44,0x24,921185movq %r10,%rax1186.byte 102,15,56,220,2401187.byte 102,15,56,220,2481188movups -16(%rcx,%r10,1),%xmm011891190call .Lenc_loop611911192movdqu (%rdi),%xmm81193movdqu 16(%rdi),%xmm91194movdqu 32(%rdi),%xmm101195movdqu 48(%rdi),%xmm111196movdqu 64(%rdi),%xmm121197movdqu 80(%rdi),%xmm131198leaq 96(%rdi),%rdi1199movups -64(%rcx,%r10,1),%xmm11200pxor %xmm2,%xmm81201movaps 0(%rsp),%xmm21202pxor %xmm3,%xmm91203movaps 16(%rsp),%xmm31204pxor %xmm4,%xmm101205movaps 32(%rsp),%xmm41206pxor %xmm5,%xmm111207movaps 48(%rsp),%xmm51208pxor %xmm6,%xmm121209movaps 64(%rsp),%xmm61210pxor %xmm7,%xmm131211movaps 80(%rsp),%xmm71212movdqu %xmm8,(%rsi)1213movdqu %xmm9,16(%rsi)1214movdqu %xmm10,32(%rsi)1215movdqu %xmm11,48(%rsi)1216movdqu %xmm12,64(%rsi)1217movdqu %xmm13,80(%rsi)1218leaq 96(%rsi),%rsi12191220subq $6,%rdx1221jnc .Lctr32_loop612221223addq $6,%rdx1224jz .Lctr32_done12251226leal -48(%r10),%eax1227leaq -80(%rcx,%r10,1),%rcx1228negl %eax1229shrl $4,%eax1230jmp .Lctr32_tail12311232.align 321233.Lctr32_loop8:1234addl $8,%r8d1235movdqa 96(%rsp),%xmm81236.byte 102,15,56,220,2091237movl %r8d,%r9d1238movdqa 112(%rsp),%xmm91239.byte 102,15,56,220,2171240bswapl %r9d1241movups 32-128(%rcx),%xmm01242.byte 102,15,56,220,2251243xorl %ebp,%r9d1244nop1245.byte 102,15,56,220,2331246movl %r9d,0+12(%rsp)1247leaq 1(%r8),%r91248.byte 102,15,56,220,2411249.byte 102,15,56,220,2491250.byte 102,68,15,56,220,1931251.byte 102,68,15,56,220,2011252movups 48-128(%rcx),%xmm11253bswapl %r9d1254.byte 102,15,56,220,2081255.byte 102,15,56,220,2161256xorl %ebp,%r9d1257.byte 0x66,0x901258.byte 102,15,56,220,2241259.byte 102,15,56,220,2321260movl %r9d,16+12(%rsp)1261leaq 2(%r8),%r91262.byte 102,15,56,220,2401263.byte 102,15,56,220,2481264.byte 102,68,15,56,220,1921265.byte 102,68,15,56,220,2001266movups 64-128(%rcx),%xmm01267bswapl %r9d1268.byte 102,15,56,220,2091269.byte 102,15,56,220,2171270xorl %ebp,%r9d1271.byte 0x66,0x901272.byte 102,15,56,220,2251273.byte 102,15,56,220,2331274movl %r9d,32+12(%rsp)1275leaq 3(%r8),%r91276.byte 102,15,56,220,2411277.byte 102,15,56,220,2491278.byte 102,68,15,56,220,1931279.byte 102,68,15,56,220,2011280movups 80-128(%rcx),%xmm11281bswapl %r9d1282.byte 102,15,56,220,2081283.byte 102,15,56,220,2161284xorl %ebp,%r9d1285.byte 0x66,0x901286.byte 102,15,56,220,2241287.byte 102,15,56,220,2321288movl %r9d,48+12(%rsp)1289leaq 4(%r8),%r91290.byte 102,15,56,220,2401291.byte 102,15,56,220,2481292.byte 102,68,15,56,220,1921293.byte 102,68,15,56,220,2001294movups 96-128(%rcx),%xmm01295bswapl %r9d1296.byte 102,15,56,220,2091297.byte 102,15,56,220,2171298xorl %ebp,%r9d1299.byte 0x66,0x901300.byte 102,15,56,220,2251301.byte 102,15,56,220,2331302movl %r9d,64+12(%rsp)1303leaq 5(%r8),%r91304.byte 102,15,56,220,2411305.byte 102,15,56,220,2491306.byte 102,68,15,56,220,1931307.byte 102,68,15,56,220,2011308movups 112-128(%rcx),%xmm11309bswapl %r9d1310.byte 102,15,56,220,2081311.byte 102,15,56,220,2161312xorl %ebp,%r9d1313.byte 0x66,0x901314.byte 102,15,56,220,2241315.byte 102,15,56,220,2321316movl %r9d,80+12(%rsp)1317leaq 6(%r8),%r91318.byte 102,15,56,220,2401319.byte 102,15,56,220,2481320.byte 102,68,15,56,220,1921321.byte 102,68,15,56,220,2001322movups 128-128(%rcx),%xmm01323bswapl %r9d1324.byte 102,15,56,220,2091325.byte 102,15,56,220,2171326xorl %ebp,%r9d1327.byte 0x66,0x901328.byte 102,15,56,220,2251329.byte 102,15,56,220,2331330movl %r9d,96+12(%rsp)1331leaq 7(%r8),%r91332.byte 102,15,56,220,2411333.byte 102,15,56,220,2491334.byte 102,68,15,56,220,1931335.byte 102,68,15,56,220,2011336movups 144-128(%rcx),%xmm11337bswapl %r9d1338.byte 102,15,56,220,2081339.byte 102,15,56,220,2161340.byte 102,15,56,220,2241341xorl %ebp,%r9d1342movdqu 0(%rdi),%xmm101343.byte 102,15,56,220,2321344movl %r9d,112+12(%rsp)1345cmpl $11,%eax1346.byte 102,15,56,220,2401347.byte 102,15,56,220,2481348.byte 102,68,15,56,220,1921349.byte 102,68,15,56,220,2001350movups 160-128(%rcx),%xmm013511352jb .Lctr32_enc_done13531354.byte 102,15,56,220,2091355.byte 102,15,56,220,2171356.byte 102,15,56,220,2251357.byte 102,15,56,220,2331358.byte 102,15,56,220,2411359.byte 102,15,56,220,2491360.byte 102,68,15,56,220,1931361.byte 102,68,15,56,220,2011362movups 176-128(%rcx),%xmm113631364.byte 102,15,56,220,2081365.byte 102,15,56,220,2161366.byte 102,15,56,220,2241367.byte 102,15,56,220,2321368.byte 102,15,56,220,2401369.byte 102,15,56,220,2481370.byte 102,68,15,56,220,1921371.byte 102,68,15,56,220,2001372movups 192-128(%rcx),%xmm01373je .Lctr32_enc_done13741375.byte 102,15,56,220,2091376.byte 102,15,56,220,2171377.byte 102,15,56,220,2251378.byte 102,15,56,220,2331379.byte 102,15,56,220,2411380.byte 102,15,56,220,2491381.byte 102,68,15,56,220,1931382.byte 102,68,15,56,220,2011383movups 208-128(%rcx),%xmm113841385.byte 102,15,56,220,2081386.byte 102,15,56,220,2161387.byte 102,15,56,220,2241388.byte 102,15,56,220,2321389.byte 102,15,56,220,2401390.byte 102,15,56,220,2481391.byte 102,68,15,56,220,1921392.byte 102,68,15,56,220,2001393movups 224-128(%rcx),%xmm01394jmp .Lctr32_enc_done13951396.align 161397.Lctr32_enc_done:1398movdqu 16(%rdi),%xmm111399pxor %xmm0,%xmm101400movdqu 32(%rdi),%xmm121401pxor %xmm0,%xmm111402movdqu 48(%rdi),%xmm131403pxor %xmm0,%xmm121404movdqu 64(%rdi),%xmm141405pxor %xmm0,%xmm131406movdqu 80(%rdi),%xmm151407pxor %xmm0,%xmm141408pxor %xmm0,%xmm151409.byte 102,15,56,220,2091410.byte 102,15,56,220,2171411.byte 102,15,56,220,2251412.byte 102,15,56,220,2331413.byte 102,15,56,220,2411414.byte 102,15,56,220,2491415.byte 102,68,15,56,220,1931416.byte 102,68,15,56,220,2011417movdqu 96(%rdi),%xmm11418leaq 128(%rdi),%rdi14191420.byte 102,65,15,56,221,2101421pxor %xmm0,%xmm11422movdqu 112-128(%rdi),%xmm101423.byte 102,65,15,56,221,2191424pxor %xmm0,%xmm101425movdqa 0(%rsp),%xmm111426.byte 102,65,15,56,221,2281427.byte 102,65,15,56,221,2371428movdqa 16(%rsp),%xmm121429movdqa 32(%rsp),%xmm131430.byte 102,65,15,56,221,2461431.byte 102,65,15,56,221,2551432movdqa 48(%rsp),%xmm141433movdqa 64(%rsp),%xmm151434.byte 102,68,15,56,221,1931435movdqa 80(%rsp),%xmm01436movups 16-128(%rcx),%xmm11437.byte 102,69,15,56,221,20214381439movups %xmm2,(%rsi)1440movdqa %xmm11,%xmm21441movups %xmm3,16(%rsi)1442movdqa %xmm12,%xmm31443movups %xmm4,32(%rsi)1444movdqa %xmm13,%xmm41445movups %xmm5,48(%rsi)1446movdqa %xmm14,%xmm51447movups %xmm6,64(%rsi)1448movdqa %xmm15,%xmm61449movups %xmm7,80(%rsi)1450movdqa %xmm0,%xmm71451movups %xmm8,96(%rsi)1452movups %xmm9,112(%rsi)1453leaq 128(%rsi),%rsi14541455subq $8,%rdx1456jnc .Lctr32_loop814571458addq $8,%rdx1459jz .Lctr32_done1460leaq -128(%rcx),%rcx14611462.Lctr32_tail:146314641465leaq 16(%rcx),%rcx1466cmpq $4,%rdx1467jb .Lctr32_loop31468je .Lctr32_loop4146914701471shll $4,%eax1472movdqa 96(%rsp),%xmm81473pxor %xmm9,%xmm914741475movups 16(%rcx),%xmm01476.byte 102,15,56,220,2091477.byte 102,15,56,220,2171478leaq 32-16(%rcx,%rax,1),%rcx1479negq %rax1480.byte 102,15,56,220,2251481addq $16,%rax1482movups (%rdi),%xmm101483.byte 102,15,56,220,2331484.byte 102,15,56,220,2411485movups 16(%rdi),%xmm111486movups 32(%rdi),%xmm121487.byte 102,15,56,220,2491488.byte 102,68,15,56,220,19314891490call .Lenc_loop8_enter14911492movdqu 48(%rdi),%xmm131493pxor %xmm10,%xmm21494movdqu 64(%rdi),%xmm101495pxor %xmm11,%xmm31496movdqu %xmm2,(%rsi)1497pxor %xmm12,%xmm41498movdqu %xmm3,16(%rsi)1499pxor %xmm13,%xmm51500movdqu %xmm4,32(%rsi)1501pxor %xmm10,%xmm61502movdqu %xmm5,48(%rsi)1503movdqu %xmm6,64(%rsi)1504cmpq $6,%rdx1505jb .Lctr32_done15061507movups 80(%rdi),%xmm111508xorps %xmm11,%xmm71509movups %xmm7,80(%rsi)1510je .Lctr32_done15111512movups 96(%rdi),%xmm121513xorps %xmm12,%xmm81514movups %xmm8,96(%rsi)1515jmp .Lctr32_done15161517.align 321518.Lctr32_loop4:1519.byte 102,15,56,220,2091520leaq 16(%rcx),%rcx1521decl %eax1522.byte 102,15,56,220,2171523.byte 102,15,56,220,2251524.byte 102,15,56,220,2331525movups (%rcx),%xmm11526jnz .Lctr32_loop41527.byte 102,15,56,221,2091528.byte 102,15,56,221,2171529movups (%rdi),%xmm101530movups 16(%rdi),%xmm111531.byte 102,15,56,221,2251532.byte 102,15,56,221,2331533movups 32(%rdi),%xmm121534movups 48(%rdi),%xmm1315351536xorps %xmm10,%xmm21537movups %xmm2,(%rsi)1538xorps %xmm11,%xmm31539movups %xmm3,16(%rsi)1540pxor %xmm12,%xmm41541movdqu %xmm4,32(%rsi)1542pxor %xmm13,%xmm51543movdqu %xmm5,48(%rsi)1544jmp .Lctr32_done15451546.align 321547.Lctr32_loop3:1548.byte 102,15,56,220,2091549leaq 16(%rcx),%rcx1550decl %eax1551.byte 102,15,56,220,2171552.byte 102,15,56,220,2251553movups (%rcx),%xmm11554jnz .Lctr32_loop31555.byte 102,15,56,221,2091556.byte 102,15,56,221,2171557.byte 102,15,56,221,22515581559movups (%rdi),%xmm101560xorps %xmm10,%xmm21561movups %xmm2,(%rsi)1562cmpq $2,%rdx1563jb .Lctr32_done15641565movups 16(%rdi),%xmm111566xorps %xmm11,%xmm31567movups %xmm3,16(%rsi)1568je .Lctr32_done15691570movups 32(%rdi),%xmm121571xorps %xmm12,%xmm41572movups %xmm4,32(%rsi)15731574.Lctr32_done:1575xorps %xmm0,%xmm01576xorl %ebp,%ebp1577pxor %xmm1,%xmm11578pxor %xmm2,%xmm21579pxor %xmm3,%xmm31580pxor %xmm4,%xmm41581pxor %xmm5,%xmm51582pxor %xmm6,%xmm61583pxor %xmm7,%xmm71584movaps %xmm0,0(%rsp)1585pxor %xmm8,%xmm81586movaps %xmm0,16(%rsp)1587pxor %xmm9,%xmm91588movaps %xmm0,32(%rsp)1589pxor %xmm10,%xmm101590movaps %xmm0,48(%rsp)1591pxor %xmm11,%xmm111592movaps %xmm0,64(%rsp)1593pxor %xmm12,%xmm121594movaps %xmm0,80(%rsp)1595pxor %xmm13,%xmm131596movaps %xmm0,96(%rsp)1597pxor %xmm14,%xmm141598movaps %xmm0,112(%rsp)1599pxor %xmm15,%xmm151600movq -8(%r11),%rbp1601.cfi_restore %rbp1602leaq (%r11),%rsp1603.cfi_def_cfa_register %rsp1604.Lctr32_epilogue:1605.byte 0xf3,0xc31606.cfi_endproc1607.size aesni_ctr32_encrypt_blocks,.-aesni_ctr32_encrypt_blocks1608.globl aesni_xts_encrypt1609.type aesni_xts_encrypt,@function1610.align 161611aesni_xts_encrypt:1612.cfi_startproc1613.byte 243,15,30,2501614leaq (%rsp),%r111615.cfi_def_cfa_register %r111616pushq %rbp1617.cfi_offset %rbp,-161618subq $112,%rsp1619andq $-16,%rsp1620movups (%r9),%xmm21621movl 240(%r8),%eax1622movl 240(%rcx),%r10d1623movups (%r8),%xmm01624movups 16(%r8),%xmm11625leaq 32(%r8),%r81626xorps %xmm0,%xmm21627.Loop_enc1_8:1628.byte 102,15,56,220,2091629decl %eax1630movups (%r8),%xmm11631leaq 16(%r8),%r81632jnz .Loop_enc1_81633.byte 102,15,56,221,2091634movups (%rcx),%xmm01635movq %rcx,%rbp1636movl %r10d,%eax1637shll $4,%r10d1638movq %rdx,%r91639andq $-16,%rdx16401641movups 16(%rcx,%r10,1),%xmm116421643movdqa .Lxts_magic(%rip),%xmm81644movdqa %xmm2,%xmm151645pshufd $0x5f,%xmm2,%xmm91646pxor %xmm0,%xmm11647movdqa %xmm9,%xmm141648paddd %xmm9,%xmm91649movdqa %xmm15,%xmm101650psrad $31,%xmm141651paddq %xmm15,%xmm151652pand %xmm8,%xmm141653pxor %xmm0,%xmm101654pxor %xmm14,%xmm151655movdqa %xmm9,%xmm141656paddd %xmm9,%xmm91657movdqa %xmm15,%xmm111658psrad $31,%xmm141659paddq %xmm15,%xmm151660pand %xmm8,%xmm141661pxor %xmm0,%xmm111662pxor %xmm14,%xmm151663movdqa %xmm9,%xmm141664paddd %xmm9,%xmm91665movdqa %xmm15,%xmm121666psrad $31,%xmm141667paddq %xmm15,%xmm151668pand %xmm8,%xmm141669pxor %xmm0,%xmm121670pxor %xmm14,%xmm151671movdqa %xmm9,%xmm141672paddd %xmm9,%xmm91673movdqa %xmm15,%xmm131674psrad $31,%xmm141675paddq %xmm15,%xmm151676pand %xmm8,%xmm141677pxor %xmm0,%xmm131678pxor %xmm14,%xmm151679movdqa %xmm15,%xmm141680psrad $31,%xmm91681paddq %xmm15,%xmm151682pand %xmm8,%xmm91683pxor %xmm0,%xmm141684pxor %xmm9,%xmm151685movaps %xmm1,96(%rsp)16861687subq $96,%rdx1688jc .Lxts_enc_short16891690movl $16+96,%eax1691leaq 32(%rbp,%r10,1),%rcx1692subq %r10,%rax1693movups 16(%rbp),%xmm11694movq %rax,%r101695leaq .Lxts_magic(%rip),%r81696jmp .Lxts_enc_grandloop16971698.align 321699.Lxts_enc_grandloop:1700movdqu 0(%rdi),%xmm21701movdqa %xmm0,%xmm81702movdqu 16(%rdi),%xmm31703pxor %xmm10,%xmm21704movdqu 32(%rdi),%xmm41705pxor %xmm11,%xmm31706.byte 102,15,56,220,2091707movdqu 48(%rdi),%xmm51708pxor %xmm12,%xmm41709.byte 102,15,56,220,2171710movdqu 64(%rdi),%xmm61711pxor %xmm13,%xmm51712.byte 102,15,56,220,2251713movdqu 80(%rdi),%xmm71714pxor %xmm15,%xmm81715movdqa 96(%rsp),%xmm91716pxor %xmm14,%xmm61717.byte 102,15,56,220,2331718movups 32(%rbp),%xmm01719leaq 96(%rdi),%rdi1720pxor %xmm8,%xmm717211722pxor %xmm9,%xmm101723.byte 102,15,56,220,2411724pxor %xmm9,%xmm111725movdqa %xmm10,0(%rsp)1726.byte 102,15,56,220,2491727movups 48(%rbp),%xmm11728pxor %xmm9,%xmm1217291730.byte 102,15,56,220,2081731pxor %xmm9,%xmm131732movdqa %xmm11,16(%rsp)1733.byte 102,15,56,220,2161734pxor %xmm9,%xmm141735movdqa %xmm12,32(%rsp)1736.byte 102,15,56,220,2241737.byte 102,15,56,220,2321738pxor %xmm9,%xmm81739movdqa %xmm14,64(%rsp)1740.byte 102,15,56,220,2401741.byte 102,15,56,220,2481742movups 64(%rbp),%xmm01743movdqa %xmm8,80(%rsp)1744pshufd $0x5f,%xmm15,%xmm91745jmp .Lxts_enc_loop61746.align 321747.Lxts_enc_loop6:1748.byte 102,15,56,220,2091749.byte 102,15,56,220,2171750.byte 102,15,56,220,2251751.byte 102,15,56,220,2331752.byte 102,15,56,220,2411753.byte 102,15,56,220,2491754movups -64(%rcx,%rax,1),%xmm11755addq $32,%rax17561757.byte 102,15,56,220,2081758.byte 102,15,56,220,2161759.byte 102,15,56,220,2241760.byte 102,15,56,220,2321761.byte 102,15,56,220,2401762.byte 102,15,56,220,2481763movups -80(%rcx,%rax,1),%xmm01764jnz .Lxts_enc_loop617651766movdqa (%r8),%xmm81767movdqa %xmm9,%xmm141768paddd %xmm9,%xmm91769.byte 102,15,56,220,2091770paddq %xmm15,%xmm151771psrad $31,%xmm141772.byte 102,15,56,220,2171773pand %xmm8,%xmm141774movups (%rbp),%xmm101775.byte 102,15,56,220,2251776.byte 102,15,56,220,2331777.byte 102,15,56,220,2411778pxor %xmm14,%xmm151779movaps %xmm10,%xmm111780.byte 102,15,56,220,2491781movups -64(%rcx),%xmm117821783movdqa %xmm9,%xmm141784.byte 102,15,56,220,2081785paddd %xmm9,%xmm91786pxor %xmm15,%xmm101787.byte 102,15,56,220,2161788psrad $31,%xmm141789paddq %xmm15,%xmm151790.byte 102,15,56,220,2241791.byte 102,15,56,220,2321792pand %xmm8,%xmm141793movaps %xmm11,%xmm121794.byte 102,15,56,220,2401795pxor %xmm14,%xmm151796movdqa %xmm9,%xmm141797.byte 102,15,56,220,2481798movups -48(%rcx),%xmm017991800paddd %xmm9,%xmm91801.byte 102,15,56,220,2091802pxor %xmm15,%xmm111803psrad $31,%xmm141804.byte 102,15,56,220,2171805paddq %xmm15,%xmm151806pand %xmm8,%xmm141807.byte 102,15,56,220,2251808.byte 102,15,56,220,2331809movdqa %xmm13,48(%rsp)1810pxor %xmm14,%xmm151811.byte 102,15,56,220,2411812movaps %xmm12,%xmm131813movdqa %xmm9,%xmm141814.byte 102,15,56,220,2491815movups -32(%rcx),%xmm118161817paddd %xmm9,%xmm91818.byte 102,15,56,220,2081819pxor %xmm15,%xmm121820psrad $31,%xmm141821.byte 102,15,56,220,2161822paddq %xmm15,%xmm151823pand %xmm8,%xmm141824.byte 102,15,56,220,2241825.byte 102,15,56,220,2321826.byte 102,15,56,220,2401827pxor %xmm14,%xmm151828movaps %xmm13,%xmm141829.byte 102,15,56,220,24818301831movdqa %xmm9,%xmm01832paddd %xmm9,%xmm91833.byte 102,15,56,220,2091834pxor %xmm15,%xmm131835psrad $31,%xmm01836.byte 102,15,56,220,2171837paddq %xmm15,%xmm151838pand %xmm8,%xmm01839.byte 102,15,56,220,2251840.byte 102,15,56,220,2331841pxor %xmm0,%xmm151842movups (%rbp),%xmm01843.byte 102,15,56,220,2411844.byte 102,15,56,220,2491845movups 16(%rbp),%xmm118461847pxor %xmm15,%xmm141848.byte 102,15,56,221,84,36,01849psrad $31,%xmm91850paddq %xmm15,%xmm151851.byte 102,15,56,221,92,36,161852.byte 102,15,56,221,100,36,321853pand %xmm8,%xmm91854movq %r10,%rax1855.byte 102,15,56,221,108,36,481856.byte 102,15,56,221,116,36,641857.byte 102,15,56,221,124,36,801858pxor %xmm9,%xmm1518591860leaq 96(%rsi),%rsi1861movups %xmm2,-96(%rsi)1862movups %xmm3,-80(%rsi)1863movups %xmm4,-64(%rsi)1864movups %xmm5,-48(%rsi)1865movups %xmm6,-32(%rsi)1866movups %xmm7,-16(%rsi)1867subq $96,%rdx1868jnc .Lxts_enc_grandloop18691870movl $16+96,%eax1871subl %r10d,%eax1872movq %rbp,%rcx1873shrl $4,%eax18741875.Lxts_enc_short:18761877movl %eax,%r10d1878pxor %xmm0,%xmm101879addq $96,%rdx1880jz .Lxts_enc_done18811882pxor %xmm0,%xmm111883cmpq $0x20,%rdx1884jb .Lxts_enc_one1885pxor %xmm0,%xmm121886je .Lxts_enc_two18871888pxor %xmm0,%xmm131889cmpq $0x40,%rdx1890jb .Lxts_enc_three1891pxor %xmm0,%xmm141892je .Lxts_enc_four18931894movdqu (%rdi),%xmm21895movdqu 16(%rdi),%xmm31896movdqu 32(%rdi),%xmm41897pxor %xmm10,%xmm21898movdqu 48(%rdi),%xmm51899pxor %xmm11,%xmm31900movdqu 64(%rdi),%xmm61901leaq 80(%rdi),%rdi1902pxor %xmm12,%xmm41903pxor %xmm13,%xmm51904pxor %xmm14,%xmm61905pxor %xmm7,%xmm719061907call _aesni_encrypt619081909xorps %xmm10,%xmm21910movdqa %xmm15,%xmm101911xorps %xmm11,%xmm31912xorps %xmm12,%xmm41913movdqu %xmm2,(%rsi)1914xorps %xmm13,%xmm51915movdqu %xmm3,16(%rsi)1916xorps %xmm14,%xmm61917movdqu %xmm4,32(%rsi)1918movdqu %xmm5,48(%rsi)1919movdqu %xmm6,64(%rsi)1920leaq 80(%rsi),%rsi1921jmp .Lxts_enc_done19221923.align 161924.Lxts_enc_one:1925movups (%rdi),%xmm21926leaq 16(%rdi),%rdi1927xorps %xmm10,%xmm21928movups (%rcx),%xmm01929movups 16(%rcx),%xmm11930leaq 32(%rcx),%rcx1931xorps %xmm0,%xmm21932.Loop_enc1_9:1933.byte 102,15,56,220,2091934decl %eax1935movups (%rcx),%xmm11936leaq 16(%rcx),%rcx1937jnz .Loop_enc1_91938.byte 102,15,56,221,2091939xorps %xmm10,%xmm21940movdqa %xmm11,%xmm101941movups %xmm2,(%rsi)1942leaq 16(%rsi),%rsi1943jmp .Lxts_enc_done19441945.align 161946.Lxts_enc_two:1947movups (%rdi),%xmm21948movups 16(%rdi),%xmm31949leaq 32(%rdi),%rdi1950xorps %xmm10,%xmm21951xorps %xmm11,%xmm319521953call _aesni_encrypt219541955xorps %xmm10,%xmm21956movdqa %xmm12,%xmm101957xorps %xmm11,%xmm31958movups %xmm2,(%rsi)1959movups %xmm3,16(%rsi)1960leaq 32(%rsi),%rsi1961jmp .Lxts_enc_done19621963.align 161964.Lxts_enc_three:1965movups (%rdi),%xmm21966movups 16(%rdi),%xmm31967movups 32(%rdi),%xmm41968leaq 48(%rdi),%rdi1969xorps %xmm10,%xmm21970xorps %xmm11,%xmm31971xorps %xmm12,%xmm419721973call _aesni_encrypt319741975xorps %xmm10,%xmm21976movdqa %xmm13,%xmm101977xorps %xmm11,%xmm31978xorps %xmm12,%xmm41979movups %xmm2,(%rsi)1980movups %xmm3,16(%rsi)1981movups %xmm4,32(%rsi)1982leaq 48(%rsi),%rsi1983jmp .Lxts_enc_done19841985.align 161986.Lxts_enc_four:1987movups (%rdi),%xmm21988movups 16(%rdi),%xmm31989movups 32(%rdi),%xmm41990xorps %xmm10,%xmm21991movups 48(%rdi),%xmm51992leaq 64(%rdi),%rdi1993xorps %xmm11,%xmm31994xorps %xmm12,%xmm41995xorps %xmm13,%xmm519961997call _aesni_encrypt419981999pxor %xmm10,%xmm22000movdqa %xmm14,%xmm102001pxor %xmm11,%xmm32002pxor %xmm12,%xmm42003movdqu %xmm2,(%rsi)2004pxor %xmm13,%xmm52005movdqu %xmm3,16(%rsi)2006movdqu %xmm4,32(%rsi)2007movdqu %xmm5,48(%rsi)2008leaq 64(%rsi),%rsi2009jmp .Lxts_enc_done20102011.align 162012.Lxts_enc_done:2013andq $15,%r92014jz .Lxts_enc_ret2015movq %r9,%rdx20162017.Lxts_enc_steal:2018movzbl (%rdi),%eax2019movzbl -16(%rsi),%ecx2020leaq 1(%rdi),%rdi2021movb %al,-16(%rsi)2022movb %cl,0(%rsi)2023leaq 1(%rsi),%rsi2024subq $1,%rdx2025jnz .Lxts_enc_steal20262027subq %r9,%rsi2028movq %rbp,%rcx2029movl %r10d,%eax20302031movups -16(%rsi),%xmm22032xorps %xmm10,%xmm22033movups (%rcx),%xmm02034movups 16(%rcx),%xmm12035leaq 32(%rcx),%rcx2036xorps %xmm0,%xmm22037.Loop_enc1_10:2038.byte 102,15,56,220,2092039decl %eax2040movups (%rcx),%xmm12041leaq 16(%rcx),%rcx2042jnz .Loop_enc1_102043.byte 102,15,56,221,2092044xorps %xmm10,%xmm22045movups %xmm2,-16(%rsi)20462047.Lxts_enc_ret:2048xorps %xmm0,%xmm02049pxor %xmm1,%xmm12050pxor %xmm2,%xmm22051pxor %xmm3,%xmm32052pxor %xmm4,%xmm42053pxor %xmm5,%xmm52054pxor %xmm6,%xmm62055pxor %xmm7,%xmm72056movaps %xmm0,0(%rsp)2057pxor %xmm8,%xmm82058movaps %xmm0,16(%rsp)2059pxor %xmm9,%xmm92060movaps %xmm0,32(%rsp)2061pxor %xmm10,%xmm102062movaps %xmm0,48(%rsp)2063pxor %xmm11,%xmm112064movaps %xmm0,64(%rsp)2065pxor %xmm12,%xmm122066movaps %xmm0,80(%rsp)2067pxor %xmm13,%xmm132068movaps %xmm0,96(%rsp)2069pxor %xmm14,%xmm142070pxor %xmm15,%xmm152071movq -8(%r11),%rbp2072.cfi_restore %rbp2073leaq (%r11),%rsp2074.cfi_def_cfa_register %rsp2075.Lxts_enc_epilogue:2076.byte 0xf3,0xc32077.cfi_endproc2078.size aesni_xts_encrypt,.-aesni_xts_encrypt2079.globl aesni_xts_decrypt2080.type aesni_xts_decrypt,@function2081.align 162082aesni_xts_decrypt:2083.cfi_startproc2084.byte 243,15,30,2502085leaq (%rsp),%r112086.cfi_def_cfa_register %r112087pushq %rbp2088.cfi_offset %rbp,-162089subq $112,%rsp2090andq $-16,%rsp2091movups (%r9),%xmm22092movl 240(%r8),%eax2093movl 240(%rcx),%r10d2094movups (%r8),%xmm02095movups 16(%r8),%xmm12096leaq 32(%r8),%r82097xorps %xmm0,%xmm22098.Loop_enc1_11:2099.byte 102,15,56,220,2092100decl %eax2101movups (%r8),%xmm12102leaq 16(%r8),%r82103jnz .Loop_enc1_112104.byte 102,15,56,221,2092105xorl %eax,%eax2106testq $15,%rdx2107setnz %al2108shlq $4,%rax2109subq %rax,%rdx21102111movups (%rcx),%xmm02112movq %rcx,%rbp2113movl %r10d,%eax2114shll $4,%r10d2115movq %rdx,%r92116andq $-16,%rdx21172118movups 16(%rcx,%r10,1),%xmm121192120movdqa .Lxts_magic(%rip),%xmm82121movdqa %xmm2,%xmm152122pshufd $0x5f,%xmm2,%xmm92123pxor %xmm0,%xmm12124movdqa %xmm9,%xmm142125paddd %xmm9,%xmm92126movdqa %xmm15,%xmm102127psrad $31,%xmm142128paddq %xmm15,%xmm152129pand %xmm8,%xmm142130pxor %xmm0,%xmm102131pxor %xmm14,%xmm152132movdqa %xmm9,%xmm142133paddd %xmm9,%xmm92134movdqa %xmm15,%xmm112135psrad $31,%xmm142136paddq %xmm15,%xmm152137pand %xmm8,%xmm142138pxor %xmm0,%xmm112139pxor %xmm14,%xmm152140movdqa %xmm9,%xmm142141paddd %xmm9,%xmm92142movdqa %xmm15,%xmm122143psrad $31,%xmm142144paddq %xmm15,%xmm152145pand %xmm8,%xmm142146pxor %xmm0,%xmm122147pxor %xmm14,%xmm152148movdqa %xmm9,%xmm142149paddd %xmm9,%xmm92150movdqa %xmm15,%xmm132151psrad $31,%xmm142152paddq %xmm15,%xmm152153pand %xmm8,%xmm142154pxor %xmm0,%xmm132155pxor %xmm14,%xmm152156movdqa %xmm15,%xmm142157psrad $31,%xmm92158paddq %xmm15,%xmm152159pand %xmm8,%xmm92160pxor %xmm0,%xmm142161pxor %xmm9,%xmm152162movaps %xmm1,96(%rsp)21632164subq $96,%rdx2165jc .Lxts_dec_short21662167movl $16+96,%eax2168leaq 32(%rbp,%r10,1),%rcx2169subq %r10,%rax2170movups 16(%rbp),%xmm12171movq %rax,%r102172leaq .Lxts_magic(%rip),%r82173jmp .Lxts_dec_grandloop21742175.align 322176.Lxts_dec_grandloop:2177movdqu 0(%rdi),%xmm22178movdqa %xmm0,%xmm82179movdqu 16(%rdi),%xmm32180pxor %xmm10,%xmm22181movdqu 32(%rdi),%xmm42182pxor %xmm11,%xmm32183.byte 102,15,56,222,2092184movdqu 48(%rdi),%xmm52185pxor %xmm12,%xmm42186.byte 102,15,56,222,2172187movdqu 64(%rdi),%xmm62188pxor %xmm13,%xmm52189.byte 102,15,56,222,2252190movdqu 80(%rdi),%xmm72191pxor %xmm15,%xmm82192movdqa 96(%rsp),%xmm92193pxor %xmm14,%xmm62194.byte 102,15,56,222,2332195movups 32(%rbp),%xmm02196leaq 96(%rdi),%rdi2197pxor %xmm8,%xmm721982199pxor %xmm9,%xmm102200.byte 102,15,56,222,2412201pxor %xmm9,%xmm112202movdqa %xmm10,0(%rsp)2203.byte 102,15,56,222,2492204movups 48(%rbp),%xmm12205pxor %xmm9,%xmm1222062207.byte 102,15,56,222,2082208pxor %xmm9,%xmm132209movdqa %xmm11,16(%rsp)2210.byte 102,15,56,222,2162211pxor %xmm9,%xmm142212movdqa %xmm12,32(%rsp)2213.byte 102,15,56,222,2242214.byte 102,15,56,222,2322215pxor %xmm9,%xmm82216movdqa %xmm14,64(%rsp)2217.byte 102,15,56,222,2402218.byte 102,15,56,222,2482219movups 64(%rbp),%xmm02220movdqa %xmm8,80(%rsp)2221pshufd $0x5f,%xmm15,%xmm92222jmp .Lxts_dec_loop62223.align 322224.Lxts_dec_loop6:2225.byte 102,15,56,222,2092226.byte 102,15,56,222,2172227.byte 102,15,56,222,2252228.byte 102,15,56,222,2332229.byte 102,15,56,222,2412230.byte 102,15,56,222,2492231movups -64(%rcx,%rax,1),%xmm12232addq $32,%rax22332234.byte 102,15,56,222,2082235.byte 102,15,56,222,2162236.byte 102,15,56,222,2242237.byte 102,15,56,222,2322238.byte 102,15,56,222,2402239.byte 102,15,56,222,2482240movups -80(%rcx,%rax,1),%xmm02241jnz .Lxts_dec_loop622422243movdqa (%r8),%xmm82244movdqa %xmm9,%xmm142245paddd %xmm9,%xmm92246.byte 102,15,56,222,2092247paddq %xmm15,%xmm152248psrad $31,%xmm142249.byte 102,15,56,222,2172250pand %xmm8,%xmm142251movups (%rbp),%xmm102252.byte 102,15,56,222,2252253.byte 102,15,56,222,2332254.byte 102,15,56,222,2412255pxor %xmm14,%xmm152256movaps %xmm10,%xmm112257.byte 102,15,56,222,2492258movups -64(%rcx),%xmm122592260movdqa %xmm9,%xmm142261.byte 102,15,56,222,2082262paddd %xmm9,%xmm92263pxor %xmm15,%xmm102264.byte 102,15,56,222,2162265psrad $31,%xmm142266paddq %xmm15,%xmm152267.byte 102,15,56,222,2242268.byte 102,15,56,222,2322269pand %xmm8,%xmm142270movaps %xmm11,%xmm122271.byte 102,15,56,222,2402272pxor %xmm14,%xmm152273movdqa %xmm9,%xmm142274.byte 102,15,56,222,2482275movups -48(%rcx),%xmm022762277paddd %xmm9,%xmm92278.byte 102,15,56,222,2092279pxor %xmm15,%xmm112280psrad $31,%xmm142281.byte 102,15,56,222,2172282paddq %xmm15,%xmm152283pand %xmm8,%xmm142284.byte 102,15,56,222,2252285.byte 102,15,56,222,2332286movdqa %xmm13,48(%rsp)2287pxor %xmm14,%xmm152288.byte 102,15,56,222,2412289movaps %xmm12,%xmm132290movdqa %xmm9,%xmm142291.byte 102,15,56,222,2492292movups -32(%rcx),%xmm122932294paddd %xmm9,%xmm92295.byte 102,15,56,222,2082296pxor %xmm15,%xmm122297psrad $31,%xmm142298.byte 102,15,56,222,2162299paddq %xmm15,%xmm152300pand %xmm8,%xmm142301.byte 102,15,56,222,2242302.byte 102,15,56,222,2322303.byte 102,15,56,222,2402304pxor %xmm14,%xmm152305movaps %xmm13,%xmm142306.byte 102,15,56,222,24823072308movdqa %xmm9,%xmm02309paddd %xmm9,%xmm92310.byte 102,15,56,222,2092311pxor %xmm15,%xmm132312psrad $31,%xmm02313.byte 102,15,56,222,2172314paddq %xmm15,%xmm152315pand %xmm8,%xmm02316.byte 102,15,56,222,2252317.byte 102,15,56,222,2332318pxor %xmm0,%xmm152319movups (%rbp),%xmm02320.byte 102,15,56,222,2412321.byte 102,15,56,222,2492322movups 16(%rbp),%xmm123232324pxor %xmm15,%xmm142325.byte 102,15,56,223,84,36,02326psrad $31,%xmm92327paddq %xmm15,%xmm152328.byte 102,15,56,223,92,36,162329.byte 102,15,56,223,100,36,322330pand %xmm8,%xmm92331movq %r10,%rax2332.byte 102,15,56,223,108,36,482333.byte 102,15,56,223,116,36,642334.byte 102,15,56,223,124,36,802335pxor %xmm9,%xmm1523362337leaq 96(%rsi),%rsi2338movups %xmm2,-96(%rsi)2339movups %xmm3,-80(%rsi)2340movups %xmm4,-64(%rsi)2341movups %xmm5,-48(%rsi)2342movups %xmm6,-32(%rsi)2343movups %xmm7,-16(%rsi)2344subq $96,%rdx2345jnc .Lxts_dec_grandloop23462347movl $16+96,%eax2348subl %r10d,%eax2349movq %rbp,%rcx2350shrl $4,%eax23512352.Lxts_dec_short:23532354movl %eax,%r10d2355pxor %xmm0,%xmm102356pxor %xmm0,%xmm112357addq $96,%rdx2358jz .Lxts_dec_done23592360pxor %xmm0,%xmm122361cmpq $0x20,%rdx2362jb .Lxts_dec_one2363pxor %xmm0,%xmm132364je .Lxts_dec_two23652366pxor %xmm0,%xmm142367cmpq $0x40,%rdx2368jb .Lxts_dec_three2369je .Lxts_dec_four23702371movdqu (%rdi),%xmm22372movdqu 16(%rdi),%xmm32373movdqu 32(%rdi),%xmm42374pxor %xmm10,%xmm22375movdqu 48(%rdi),%xmm52376pxor %xmm11,%xmm32377movdqu 64(%rdi),%xmm62378leaq 80(%rdi),%rdi2379pxor %xmm12,%xmm42380pxor %xmm13,%xmm52381pxor %xmm14,%xmm623822383call _aesni_decrypt623842385xorps %xmm10,%xmm22386xorps %xmm11,%xmm32387xorps %xmm12,%xmm42388movdqu %xmm2,(%rsi)2389xorps %xmm13,%xmm52390movdqu %xmm3,16(%rsi)2391xorps %xmm14,%xmm62392movdqu %xmm4,32(%rsi)2393pxor %xmm14,%xmm142394movdqu %xmm5,48(%rsi)2395pcmpgtd %xmm15,%xmm142396movdqu %xmm6,64(%rsi)2397leaq 80(%rsi),%rsi2398pshufd $0x13,%xmm14,%xmm112399andq $15,%r92400jz .Lxts_dec_ret24012402movdqa %xmm15,%xmm102403paddq %xmm15,%xmm152404pand %xmm8,%xmm112405pxor %xmm15,%xmm112406jmp .Lxts_dec_done224072408.align 162409.Lxts_dec_one:2410movups (%rdi),%xmm22411leaq 16(%rdi),%rdi2412xorps %xmm10,%xmm22413movups (%rcx),%xmm02414movups 16(%rcx),%xmm12415leaq 32(%rcx),%rcx2416xorps %xmm0,%xmm22417.Loop_dec1_12:2418.byte 102,15,56,222,2092419decl %eax2420movups (%rcx),%xmm12421leaq 16(%rcx),%rcx2422jnz .Loop_dec1_122423.byte 102,15,56,223,2092424xorps %xmm10,%xmm22425movdqa %xmm11,%xmm102426movups %xmm2,(%rsi)2427movdqa %xmm12,%xmm112428leaq 16(%rsi),%rsi2429jmp .Lxts_dec_done24302431.align 162432.Lxts_dec_two:2433movups (%rdi),%xmm22434movups 16(%rdi),%xmm32435leaq 32(%rdi),%rdi2436xorps %xmm10,%xmm22437xorps %xmm11,%xmm324382439call _aesni_decrypt224402441xorps %xmm10,%xmm22442movdqa %xmm12,%xmm102443xorps %xmm11,%xmm32444movdqa %xmm13,%xmm112445movups %xmm2,(%rsi)2446movups %xmm3,16(%rsi)2447leaq 32(%rsi),%rsi2448jmp .Lxts_dec_done24492450.align 162451.Lxts_dec_three:2452movups (%rdi),%xmm22453movups 16(%rdi),%xmm32454movups 32(%rdi),%xmm42455leaq 48(%rdi),%rdi2456xorps %xmm10,%xmm22457xorps %xmm11,%xmm32458xorps %xmm12,%xmm424592460call _aesni_decrypt324612462xorps %xmm10,%xmm22463movdqa %xmm13,%xmm102464xorps %xmm11,%xmm32465movdqa %xmm14,%xmm112466xorps %xmm12,%xmm42467movups %xmm2,(%rsi)2468movups %xmm3,16(%rsi)2469movups %xmm4,32(%rsi)2470leaq 48(%rsi),%rsi2471jmp .Lxts_dec_done24722473.align 162474.Lxts_dec_four:2475movups (%rdi),%xmm22476movups 16(%rdi),%xmm32477movups 32(%rdi),%xmm42478xorps %xmm10,%xmm22479movups 48(%rdi),%xmm52480leaq 64(%rdi),%rdi2481xorps %xmm11,%xmm32482xorps %xmm12,%xmm42483xorps %xmm13,%xmm524842485call _aesni_decrypt424862487pxor %xmm10,%xmm22488movdqa %xmm14,%xmm102489pxor %xmm11,%xmm32490movdqa %xmm15,%xmm112491pxor %xmm12,%xmm42492movdqu %xmm2,(%rsi)2493pxor %xmm13,%xmm52494movdqu %xmm3,16(%rsi)2495movdqu %xmm4,32(%rsi)2496movdqu %xmm5,48(%rsi)2497leaq 64(%rsi),%rsi2498jmp .Lxts_dec_done24992500.align 162501.Lxts_dec_done:2502andq $15,%r92503jz .Lxts_dec_ret2504.Lxts_dec_done2:2505movq %r9,%rdx2506movq %rbp,%rcx2507movl %r10d,%eax25082509movups (%rdi),%xmm22510xorps %xmm11,%xmm22511movups (%rcx),%xmm02512movups 16(%rcx),%xmm12513leaq 32(%rcx),%rcx2514xorps %xmm0,%xmm22515.Loop_dec1_13:2516.byte 102,15,56,222,2092517decl %eax2518movups (%rcx),%xmm12519leaq 16(%rcx),%rcx2520jnz .Loop_dec1_132521.byte 102,15,56,223,2092522xorps %xmm11,%xmm22523movups %xmm2,(%rsi)25242525.Lxts_dec_steal:2526movzbl 16(%rdi),%eax2527movzbl (%rsi),%ecx2528leaq 1(%rdi),%rdi2529movb %al,(%rsi)2530movb %cl,16(%rsi)2531leaq 1(%rsi),%rsi2532subq $1,%rdx2533jnz .Lxts_dec_steal25342535subq %r9,%rsi2536movq %rbp,%rcx2537movl %r10d,%eax25382539movups (%rsi),%xmm22540xorps %xmm10,%xmm22541movups (%rcx),%xmm02542movups 16(%rcx),%xmm12543leaq 32(%rcx),%rcx2544xorps %xmm0,%xmm22545.Loop_dec1_14:2546.byte 102,15,56,222,2092547decl %eax2548movups (%rcx),%xmm12549leaq 16(%rcx),%rcx2550jnz .Loop_dec1_142551.byte 102,15,56,223,2092552xorps %xmm10,%xmm22553movups %xmm2,(%rsi)25542555.Lxts_dec_ret:2556xorps %xmm0,%xmm02557pxor %xmm1,%xmm12558pxor %xmm2,%xmm22559pxor %xmm3,%xmm32560pxor %xmm4,%xmm42561pxor %xmm5,%xmm52562pxor %xmm6,%xmm62563pxor %xmm7,%xmm72564movaps %xmm0,0(%rsp)2565pxor %xmm8,%xmm82566movaps %xmm0,16(%rsp)2567pxor %xmm9,%xmm92568movaps %xmm0,32(%rsp)2569pxor %xmm10,%xmm102570movaps %xmm0,48(%rsp)2571pxor %xmm11,%xmm112572movaps %xmm0,64(%rsp)2573pxor %xmm12,%xmm122574movaps %xmm0,80(%rsp)2575pxor %xmm13,%xmm132576movaps %xmm0,96(%rsp)2577pxor %xmm14,%xmm142578pxor %xmm15,%xmm152579movq -8(%r11),%rbp2580.cfi_restore %rbp2581leaq (%r11),%rsp2582.cfi_def_cfa_register %rsp2583.Lxts_dec_epilogue:2584.byte 0xf3,0xc32585.cfi_endproc2586.size aesni_xts_decrypt,.-aesni_xts_decrypt2587.globl aesni_ocb_encrypt2588.type aesni_ocb_encrypt,@function2589.align 322590aesni_ocb_encrypt:2591.cfi_startproc2592.byte 243,15,30,2502593leaq (%rsp),%rax2594pushq %rbx2595.cfi_adjust_cfa_offset 82596.cfi_offset %rbx,-162597pushq %rbp2598.cfi_adjust_cfa_offset 82599.cfi_offset %rbp,-242600pushq %r122601.cfi_adjust_cfa_offset 82602.cfi_offset %r12,-322603pushq %r132604.cfi_adjust_cfa_offset 82605.cfi_offset %r13,-402606pushq %r142607.cfi_adjust_cfa_offset 82608.cfi_offset %r14,-482609movq 8(%rax),%rbx2610movq 8+8(%rax),%rbp26112612movl 240(%rcx),%r10d2613movq %rcx,%r112614shll $4,%r10d2615movups (%rcx),%xmm92616movups 16(%rcx,%r10,1),%xmm126172618movdqu (%r9),%xmm152619pxor %xmm1,%xmm92620pxor %xmm1,%xmm1526212622movl $16+32,%eax2623leaq 32(%r11,%r10,1),%rcx2624movups 16(%r11),%xmm12625subq %r10,%rax2626movq %rax,%r1026272628movdqu (%rbx),%xmm102629movdqu (%rbp),%xmm826302631testq $1,%r82632jnz .Locb_enc_odd26332634bsfq %r8,%r122635addq $1,%r82636shlq $4,%r122637movdqu (%rbx,%r12,1),%xmm72638movdqu (%rdi),%xmm22639leaq 16(%rdi),%rdi26402641call __ocb_encrypt126422643movdqa %xmm7,%xmm152644movups %xmm2,(%rsi)2645leaq 16(%rsi),%rsi2646subq $1,%rdx2647jz .Locb_enc_done26482649.Locb_enc_odd:2650leaq 1(%r8),%r122651leaq 3(%r8),%r132652leaq 5(%r8),%r142653leaq 6(%r8),%r82654bsfq %r12,%r122655bsfq %r13,%r132656bsfq %r14,%r142657shlq $4,%r122658shlq $4,%r132659shlq $4,%r1426602661subq $6,%rdx2662jc .Locb_enc_short2663jmp .Locb_enc_grandloop26642665.align 322666.Locb_enc_grandloop:2667movdqu 0(%rdi),%xmm22668movdqu 16(%rdi),%xmm32669movdqu 32(%rdi),%xmm42670movdqu 48(%rdi),%xmm52671movdqu 64(%rdi),%xmm62672movdqu 80(%rdi),%xmm72673leaq 96(%rdi),%rdi26742675call __ocb_encrypt626762677movups %xmm2,0(%rsi)2678movups %xmm3,16(%rsi)2679movups %xmm4,32(%rsi)2680movups %xmm5,48(%rsi)2681movups %xmm6,64(%rsi)2682movups %xmm7,80(%rsi)2683leaq 96(%rsi),%rsi2684subq $6,%rdx2685jnc .Locb_enc_grandloop26862687.Locb_enc_short:2688addq $6,%rdx2689jz .Locb_enc_done26902691movdqu 0(%rdi),%xmm22692cmpq $2,%rdx2693jb .Locb_enc_one2694movdqu 16(%rdi),%xmm32695je .Locb_enc_two26962697movdqu 32(%rdi),%xmm42698cmpq $4,%rdx2699jb .Locb_enc_three2700movdqu 48(%rdi),%xmm52701je .Locb_enc_four27022703movdqu 64(%rdi),%xmm62704pxor %xmm7,%xmm727052706call __ocb_encrypt627072708movdqa %xmm14,%xmm152709movups %xmm2,0(%rsi)2710movups %xmm3,16(%rsi)2711movups %xmm4,32(%rsi)2712movups %xmm5,48(%rsi)2713movups %xmm6,64(%rsi)27142715jmp .Locb_enc_done27162717.align 162718.Locb_enc_one:2719movdqa %xmm10,%xmm727202721call __ocb_encrypt127222723movdqa %xmm7,%xmm152724movups %xmm2,0(%rsi)2725jmp .Locb_enc_done27262727.align 162728.Locb_enc_two:2729pxor %xmm4,%xmm42730pxor %xmm5,%xmm527312732call __ocb_encrypt427332734movdqa %xmm11,%xmm152735movups %xmm2,0(%rsi)2736movups %xmm3,16(%rsi)27372738jmp .Locb_enc_done27392740.align 162741.Locb_enc_three:2742pxor %xmm5,%xmm527432744call __ocb_encrypt427452746movdqa %xmm12,%xmm152747movups %xmm2,0(%rsi)2748movups %xmm3,16(%rsi)2749movups %xmm4,32(%rsi)27502751jmp .Locb_enc_done27522753.align 162754.Locb_enc_four:2755call __ocb_encrypt427562757movdqa %xmm13,%xmm152758movups %xmm2,0(%rsi)2759movups %xmm3,16(%rsi)2760movups %xmm4,32(%rsi)2761movups %xmm5,48(%rsi)27622763.Locb_enc_done:2764pxor %xmm0,%xmm152765movdqu %xmm8,(%rbp)2766movdqu %xmm15,(%r9)27672768xorps %xmm0,%xmm02769pxor %xmm1,%xmm12770pxor %xmm2,%xmm22771pxor %xmm3,%xmm32772pxor %xmm4,%xmm42773pxor %xmm5,%xmm52774pxor %xmm6,%xmm62775pxor %xmm7,%xmm72776pxor %xmm8,%xmm82777pxor %xmm9,%xmm92778pxor %xmm10,%xmm102779pxor %xmm11,%xmm112780pxor %xmm12,%xmm122781pxor %xmm13,%xmm132782pxor %xmm14,%xmm142783pxor %xmm15,%xmm152784leaq 40(%rsp),%rax2785.cfi_def_cfa %rax,82786movq -40(%rax),%r142787.cfi_restore %r142788movq -32(%rax),%r132789.cfi_restore %r132790movq -24(%rax),%r122791.cfi_restore %r122792movq -16(%rax),%rbp2793.cfi_restore %rbp2794movq -8(%rax),%rbx2795.cfi_restore %rbx2796leaq (%rax),%rsp2797.cfi_def_cfa_register %rsp2798.Locb_enc_epilogue:2799.byte 0xf3,0xc32800.cfi_endproc2801.size aesni_ocb_encrypt,.-aesni_ocb_encrypt28022803.type __ocb_encrypt6,@function2804.align 322805__ocb_encrypt6:2806.cfi_startproc2807pxor %xmm9,%xmm152808movdqu (%rbx,%r12,1),%xmm112809movdqa %xmm10,%xmm122810movdqu (%rbx,%r13,1),%xmm132811movdqa %xmm10,%xmm142812pxor %xmm15,%xmm102813movdqu (%rbx,%r14,1),%xmm152814pxor %xmm10,%xmm112815pxor %xmm2,%xmm82816pxor %xmm10,%xmm22817pxor %xmm11,%xmm122818pxor %xmm3,%xmm82819pxor %xmm11,%xmm32820pxor %xmm12,%xmm132821pxor %xmm4,%xmm82822pxor %xmm12,%xmm42823pxor %xmm13,%xmm142824pxor %xmm5,%xmm82825pxor %xmm13,%xmm52826pxor %xmm14,%xmm152827pxor %xmm6,%xmm82828pxor %xmm14,%xmm62829pxor %xmm7,%xmm82830pxor %xmm15,%xmm72831movups 32(%r11),%xmm028322833leaq 1(%r8),%r122834leaq 3(%r8),%r132835leaq 5(%r8),%r142836addq $6,%r82837pxor %xmm9,%xmm102838bsfq %r12,%r122839bsfq %r13,%r132840bsfq %r14,%r1428412842.byte 102,15,56,220,2092843.byte 102,15,56,220,2172844.byte 102,15,56,220,2252845.byte 102,15,56,220,2332846pxor %xmm9,%xmm112847pxor %xmm9,%xmm122848.byte 102,15,56,220,2412849pxor %xmm9,%xmm132850pxor %xmm9,%xmm142851.byte 102,15,56,220,2492852movups 48(%r11),%xmm12853pxor %xmm9,%xmm1528542855.byte 102,15,56,220,2082856.byte 102,15,56,220,2162857.byte 102,15,56,220,2242858.byte 102,15,56,220,2322859.byte 102,15,56,220,2402860.byte 102,15,56,220,2482861movups 64(%r11),%xmm02862shlq $4,%r122863shlq $4,%r132864jmp .Locb_enc_loop628652866.align 322867.Locb_enc_loop6:2868.byte 102,15,56,220,2092869.byte 102,15,56,220,2172870.byte 102,15,56,220,2252871.byte 102,15,56,220,2332872.byte 102,15,56,220,2412873.byte 102,15,56,220,2492874movups (%rcx,%rax,1),%xmm12875addq $32,%rax28762877.byte 102,15,56,220,2082878.byte 102,15,56,220,2162879.byte 102,15,56,220,2242880.byte 102,15,56,220,2322881.byte 102,15,56,220,2402882.byte 102,15,56,220,2482883movups -16(%rcx,%rax,1),%xmm02884jnz .Locb_enc_loop628852886.byte 102,15,56,220,2092887.byte 102,15,56,220,2172888.byte 102,15,56,220,2252889.byte 102,15,56,220,2332890.byte 102,15,56,220,2412891.byte 102,15,56,220,2492892movups 16(%r11),%xmm12893shlq $4,%r1428942895.byte 102,65,15,56,221,2102896movdqu (%rbx),%xmm102897movq %r10,%rax2898.byte 102,65,15,56,221,2192899.byte 102,65,15,56,221,2282900.byte 102,65,15,56,221,2372901.byte 102,65,15,56,221,2462902.byte 102,65,15,56,221,2552903.byte 0xf3,0xc32904.cfi_endproc2905.size __ocb_encrypt6,.-__ocb_encrypt629062907.type __ocb_encrypt4,@function2908.align 322909__ocb_encrypt4:2910.cfi_startproc2911pxor %xmm9,%xmm152912movdqu (%rbx,%r12,1),%xmm112913movdqa %xmm10,%xmm122914movdqu (%rbx,%r13,1),%xmm132915pxor %xmm15,%xmm102916pxor %xmm10,%xmm112917pxor %xmm2,%xmm82918pxor %xmm10,%xmm22919pxor %xmm11,%xmm122920pxor %xmm3,%xmm82921pxor %xmm11,%xmm32922pxor %xmm12,%xmm132923pxor %xmm4,%xmm82924pxor %xmm12,%xmm42925pxor %xmm5,%xmm82926pxor %xmm13,%xmm52927movups 32(%r11),%xmm029282929pxor %xmm9,%xmm102930pxor %xmm9,%xmm112931pxor %xmm9,%xmm122932pxor %xmm9,%xmm1329332934.byte 102,15,56,220,2092935.byte 102,15,56,220,2172936.byte 102,15,56,220,2252937.byte 102,15,56,220,2332938movups 48(%r11),%xmm129392940.byte 102,15,56,220,2082941.byte 102,15,56,220,2162942.byte 102,15,56,220,2242943.byte 102,15,56,220,2322944movups 64(%r11),%xmm02945jmp .Locb_enc_loop429462947.align 322948.Locb_enc_loop4:2949.byte 102,15,56,220,2092950.byte 102,15,56,220,2172951.byte 102,15,56,220,2252952.byte 102,15,56,220,2332953movups (%rcx,%rax,1),%xmm12954addq $32,%rax29552956.byte 102,15,56,220,2082957.byte 102,15,56,220,2162958.byte 102,15,56,220,2242959.byte 102,15,56,220,2322960movups -16(%rcx,%rax,1),%xmm02961jnz .Locb_enc_loop429622963.byte 102,15,56,220,2092964.byte 102,15,56,220,2172965.byte 102,15,56,220,2252966.byte 102,15,56,220,2332967movups 16(%r11),%xmm12968movq %r10,%rax29692970.byte 102,65,15,56,221,2102971.byte 102,65,15,56,221,2192972.byte 102,65,15,56,221,2282973.byte 102,65,15,56,221,2372974.byte 0xf3,0xc32975.cfi_endproc2976.size __ocb_encrypt4,.-__ocb_encrypt429772978.type __ocb_encrypt1,@function2979.align 322980__ocb_encrypt1:2981.cfi_startproc2982pxor %xmm15,%xmm72983pxor %xmm9,%xmm72984pxor %xmm2,%xmm82985pxor %xmm7,%xmm22986movups 32(%r11),%xmm029872988.byte 102,15,56,220,2092989movups 48(%r11),%xmm12990pxor %xmm9,%xmm729912992.byte 102,15,56,220,2082993movups 64(%r11),%xmm02994jmp .Locb_enc_loop129952996.align 322997.Locb_enc_loop1:2998.byte 102,15,56,220,2092999movups (%rcx,%rax,1),%xmm13000addq $32,%rax30013002.byte 102,15,56,220,2083003movups -16(%rcx,%rax,1),%xmm03004jnz .Locb_enc_loop130053006.byte 102,15,56,220,2093007movups 16(%r11),%xmm13008movq %r10,%rax30093010.byte 102,15,56,221,2153011.byte 0xf3,0xc33012.cfi_endproc3013.size __ocb_encrypt1,.-__ocb_encrypt130143015.globl aesni_ocb_decrypt3016.type aesni_ocb_decrypt,@function3017.align 323018aesni_ocb_decrypt:3019.cfi_startproc3020.byte 243,15,30,2503021leaq (%rsp),%rax3022pushq %rbx3023.cfi_adjust_cfa_offset 83024.cfi_offset %rbx,-163025pushq %rbp3026.cfi_adjust_cfa_offset 83027.cfi_offset %rbp,-243028pushq %r123029.cfi_adjust_cfa_offset 83030.cfi_offset %r12,-323031pushq %r133032.cfi_adjust_cfa_offset 83033.cfi_offset %r13,-403034pushq %r143035.cfi_adjust_cfa_offset 83036.cfi_offset %r14,-483037movq 8(%rax),%rbx3038movq 8+8(%rax),%rbp30393040movl 240(%rcx),%r10d3041movq %rcx,%r113042shll $4,%r10d3043movups (%rcx),%xmm93044movups 16(%rcx,%r10,1),%xmm130453046movdqu (%r9),%xmm153047pxor %xmm1,%xmm93048pxor %xmm1,%xmm1530493050movl $16+32,%eax3051leaq 32(%r11,%r10,1),%rcx3052movups 16(%r11),%xmm13053subq %r10,%rax3054movq %rax,%r1030553056movdqu (%rbx),%xmm103057movdqu (%rbp),%xmm830583059testq $1,%r83060jnz .Locb_dec_odd30613062bsfq %r8,%r123063addq $1,%r83064shlq $4,%r123065movdqu (%rbx,%r12,1),%xmm73066movdqu (%rdi),%xmm23067leaq 16(%rdi),%rdi30683069call __ocb_decrypt130703071movdqa %xmm7,%xmm153072movups %xmm2,(%rsi)3073xorps %xmm2,%xmm83074leaq 16(%rsi),%rsi3075subq $1,%rdx3076jz .Locb_dec_done30773078.Locb_dec_odd:3079leaq 1(%r8),%r123080leaq 3(%r8),%r133081leaq 5(%r8),%r143082leaq 6(%r8),%r83083bsfq %r12,%r123084bsfq %r13,%r133085bsfq %r14,%r143086shlq $4,%r123087shlq $4,%r133088shlq $4,%r1430893090subq $6,%rdx3091jc .Locb_dec_short3092jmp .Locb_dec_grandloop30933094.align 323095.Locb_dec_grandloop:3096movdqu 0(%rdi),%xmm23097movdqu 16(%rdi),%xmm33098movdqu 32(%rdi),%xmm43099movdqu 48(%rdi),%xmm53100movdqu 64(%rdi),%xmm63101movdqu 80(%rdi),%xmm73102leaq 96(%rdi),%rdi31033104call __ocb_decrypt631053106movups %xmm2,0(%rsi)3107pxor %xmm2,%xmm83108movups %xmm3,16(%rsi)3109pxor %xmm3,%xmm83110movups %xmm4,32(%rsi)3111pxor %xmm4,%xmm83112movups %xmm5,48(%rsi)3113pxor %xmm5,%xmm83114movups %xmm6,64(%rsi)3115pxor %xmm6,%xmm83116movups %xmm7,80(%rsi)3117pxor %xmm7,%xmm83118leaq 96(%rsi),%rsi3119subq $6,%rdx3120jnc .Locb_dec_grandloop31213122.Locb_dec_short:3123addq $6,%rdx3124jz .Locb_dec_done31253126movdqu 0(%rdi),%xmm23127cmpq $2,%rdx3128jb .Locb_dec_one3129movdqu 16(%rdi),%xmm33130je .Locb_dec_two31313132movdqu 32(%rdi),%xmm43133cmpq $4,%rdx3134jb .Locb_dec_three3135movdqu 48(%rdi),%xmm53136je .Locb_dec_four31373138movdqu 64(%rdi),%xmm63139pxor %xmm7,%xmm731403141call __ocb_decrypt631423143movdqa %xmm14,%xmm153144movups %xmm2,0(%rsi)3145pxor %xmm2,%xmm83146movups %xmm3,16(%rsi)3147pxor %xmm3,%xmm83148movups %xmm4,32(%rsi)3149pxor %xmm4,%xmm83150movups %xmm5,48(%rsi)3151pxor %xmm5,%xmm83152movups %xmm6,64(%rsi)3153pxor %xmm6,%xmm831543155jmp .Locb_dec_done31563157.align 163158.Locb_dec_one:3159movdqa %xmm10,%xmm731603161call __ocb_decrypt131623163movdqa %xmm7,%xmm153164movups %xmm2,0(%rsi)3165xorps %xmm2,%xmm83166jmp .Locb_dec_done31673168.align 163169.Locb_dec_two:3170pxor %xmm4,%xmm43171pxor %xmm5,%xmm531723173call __ocb_decrypt431743175movdqa %xmm11,%xmm153176movups %xmm2,0(%rsi)3177xorps %xmm2,%xmm83178movups %xmm3,16(%rsi)3179xorps %xmm3,%xmm831803181jmp .Locb_dec_done31823183.align 163184.Locb_dec_three:3185pxor %xmm5,%xmm531863187call __ocb_decrypt431883189movdqa %xmm12,%xmm153190movups %xmm2,0(%rsi)3191xorps %xmm2,%xmm83192movups %xmm3,16(%rsi)3193xorps %xmm3,%xmm83194movups %xmm4,32(%rsi)3195xorps %xmm4,%xmm831963197jmp .Locb_dec_done31983199.align 163200.Locb_dec_four:3201call __ocb_decrypt432023203movdqa %xmm13,%xmm153204movups %xmm2,0(%rsi)3205pxor %xmm2,%xmm83206movups %xmm3,16(%rsi)3207pxor %xmm3,%xmm83208movups %xmm4,32(%rsi)3209pxor %xmm4,%xmm83210movups %xmm5,48(%rsi)3211pxor %xmm5,%xmm832123213.Locb_dec_done:3214pxor %xmm0,%xmm153215movdqu %xmm8,(%rbp)3216movdqu %xmm15,(%r9)32173218xorps %xmm0,%xmm03219pxor %xmm1,%xmm13220pxor %xmm2,%xmm23221pxor %xmm3,%xmm33222pxor %xmm4,%xmm43223pxor %xmm5,%xmm53224pxor %xmm6,%xmm63225pxor %xmm7,%xmm73226pxor %xmm8,%xmm83227pxor %xmm9,%xmm93228pxor %xmm10,%xmm103229pxor %xmm11,%xmm113230pxor %xmm12,%xmm123231pxor %xmm13,%xmm133232pxor %xmm14,%xmm143233pxor %xmm15,%xmm153234leaq 40(%rsp),%rax3235.cfi_def_cfa %rax,83236movq -40(%rax),%r143237.cfi_restore %r143238movq -32(%rax),%r133239.cfi_restore %r133240movq -24(%rax),%r123241.cfi_restore %r123242movq -16(%rax),%rbp3243.cfi_restore %rbp3244movq -8(%rax),%rbx3245.cfi_restore %rbx3246leaq (%rax),%rsp3247.cfi_def_cfa_register %rsp3248.Locb_dec_epilogue:3249.byte 0xf3,0xc33250.cfi_endproc3251.size aesni_ocb_decrypt,.-aesni_ocb_decrypt32523253.type __ocb_decrypt6,@function3254.align 323255__ocb_decrypt6:3256.cfi_startproc3257pxor %xmm9,%xmm153258movdqu (%rbx,%r12,1),%xmm113259movdqa %xmm10,%xmm123260movdqu (%rbx,%r13,1),%xmm133261movdqa %xmm10,%xmm143262pxor %xmm15,%xmm103263movdqu (%rbx,%r14,1),%xmm153264pxor %xmm10,%xmm113265pxor %xmm10,%xmm23266pxor %xmm11,%xmm123267pxor %xmm11,%xmm33268pxor %xmm12,%xmm133269pxor %xmm12,%xmm43270pxor %xmm13,%xmm143271pxor %xmm13,%xmm53272pxor %xmm14,%xmm153273pxor %xmm14,%xmm63274pxor %xmm15,%xmm73275movups 32(%r11),%xmm032763277leaq 1(%r8),%r123278leaq 3(%r8),%r133279leaq 5(%r8),%r143280addq $6,%r83281pxor %xmm9,%xmm103282bsfq %r12,%r123283bsfq %r13,%r133284bsfq %r14,%r1432853286.byte 102,15,56,222,2093287.byte 102,15,56,222,2173288.byte 102,15,56,222,2253289.byte 102,15,56,222,2333290pxor %xmm9,%xmm113291pxor %xmm9,%xmm123292.byte 102,15,56,222,2413293pxor %xmm9,%xmm133294pxor %xmm9,%xmm143295.byte 102,15,56,222,2493296movups 48(%r11),%xmm13297pxor %xmm9,%xmm1532983299.byte 102,15,56,222,2083300.byte 102,15,56,222,2163301.byte 102,15,56,222,2243302.byte 102,15,56,222,2323303.byte 102,15,56,222,2403304.byte 102,15,56,222,2483305movups 64(%r11),%xmm03306shlq $4,%r123307shlq $4,%r133308jmp .Locb_dec_loop633093310.align 323311.Locb_dec_loop6:3312.byte 102,15,56,222,2093313.byte 102,15,56,222,2173314.byte 102,15,56,222,2253315.byte 102,15,56,222,2333316.byte 102,15,56,222,2413317.byte 102,15,56,222,2493318movups (%rcx,%rax,1),%xmm13319addq $32,%rax33203321.byte 102,15,56,222,2083322.byte 102,15,56,222,2163323.byte 102,15,56,222,2243324.byte 102,15,56,222,2323325.byte 102,15,56,222,2403326.byte 102,15,56,222,2483327movups -16(%rcx,%rax,1),%xmm03328jnz .Locb_dec_loop633293330.byte 102,15,56,222,2093331.byte 102,15,56,222,2173332.byte 102,15,56,222,2253333.byte 102,15,56,222,2333334.byte 102,15,56,222,2413335.byte 102,15,56,222,2493336movups 16(%r11),%xmm13337shlq $4,%r1433383339.byte 102,65,15,56,223,2103340movdqu (%rbx),%xmm103341movq %r10,%rax3342.byte 102,65,15,56,223,2193343.byte 102,65,15,56,223,2283344.byte 102,65,15,56,223,2373345.byte 102,65,15,56,223,2463346.byte 102,65,15,56,223,2553347.byte 0xf3,0xc33348.cfi_endproc3349.size __ocb_decrypt6,.-__ocb_decrypt633503351.type __ocb_decrypt4,@function3352.align 323353__ocb_decrypt4:3354.cfi_startproc3355pxor %xmm9,%xmm153356movdqu (%rbx,%r12,1),%xmm113357movdqa %xmm10,%xmm123358movdqu (%rbx,%r13,1),%xmm133359pxor %xmm15,%xmm103360pxor %xmm10,%xmm113361pxor %xmm10,%xmm23362pxor %xmm11,%xmm123363pxor %xmm11,%xmm33364pxor %xmm12,%xmm133365pxor %xmm12,%xmm43366pxor %xmm13,%xmm53367movups 32(%r11),%xmm033683369pxor %xmm9,%xmm103370pxor %xmm9,%xmm113371pxor %xmm9,%xmm123372pxor %xmm9,%xmm1333733374.byte 102,15,56,222,2093375.byte 102,15,56,222,2173376.byte 102,15,56,222,2253377.byte 102,15,56,222,2333378movups 48(%r11),%xmm133793380.byte 102,15,56,222,2083381.byte 102,15,56,222,2163382.byte 102,15,56,222,2243383.byte 102,15,56,222,2323384movups 64(%r11),%xmm03385jmp .Locb_dec_loop433863387.align 323388.Locb_dec_loop4:3389.byte 102,15,56,222,2093390.byte 102,15,56,222,2173391.byte 102,15,56,222,2253392.byte 102,15,56,222,2333393movups (%rcx,%rax,1),%xmm13394addq $32,%rax33953396.byte 102,15,56,222,2083397.byte 102,15,56,222,2163398.byte 102,15,56,222,2243399.byte 102,15,56,222,2323400movups -16(%rcx,%rax,1),%xmm03401jnz .Locb_dec_loop434023403.byte 102,15,56,222,2093404.byte 102,15,56,222,2173405.byte 102,15,56,222,2253406.byte 102,15,56,222,2333407movups 16(%r11),%xmm13408movq %r10,%rax34093410.byte 102,65,15,56,223,2103411.byte 102,65,15,56,223,2193412.byte 102,65,15,56,223,2283413.byte 102,65,15,56,223,2373414.byte 0xf3,0xc33415.cfi_endproc3416.size __ocb_decrypt4,.-__ocb_decrypt434173418.type __ocb_decrypt1,@function3419.align 323420__ocb_decrypt1:3421.cfi_startproc3422pxor %xmm15,%xmm73423pxor %xmm9,%xmm73424pxor %xmm7,%xmm23425movups 32(%r11),%xmm034263427.byte 102,15,56,222,2093428movups 48(%r11),%xmm13429pxor %xmm9,%xmm734303431.byte 102,15,56,222,2083432movups 64(%r11),%xmm03433jmp .Locb_dec_loop134343435.align 323436.Locb_dec_loop1:3437.byte 102,15,56,222,2093438movups (%rcx,%rax,1),%xmm13439addq $32,%rax34403441.byte 102,15,56,222,2083442movups -16(%rcx,%rax,1),%xmm03443jnz .Locb_dec_loop134443445.byte 102,15,56,222,2093446movups 16(%r11),%xmm13447movq %r10,%rax34483449.byte 102,15,56,223,2153450.byte 0xf3,0xc33451.cfi_endproc3452.size __ocb_decrypt1,.-__ocb_decrypt13453.globl aesni_cbc_encrypt3454.type aesni_cbc_encrypt,@function3455.align 163456aesni_cbc_encrypt:3457.cfi_startproc3458.byte 243,15,30,2503459testq %rdx,%rdx3460jz .Lcbc_ret34613462movl 240(%rcx),%r10d3463movq %rcx,%r113464testl %r9d,%r9d3465jz .Lcbc_decrypt34663467movups (%r8),%xmm23468movl %r10d,%eax3469cmpq $16,%rdx3470jb .Lcbc_enc_tail3471subq $16,%rdx3472jmp .Lcbc_enc_loop3473.align 163474.Lcbc_enc_loop:3475movups (%rdi),%xmm33476leaq 16(%rdi),%rdi34773478movups (%rcx),%xmm03479movups 16(%rcx),%xmm13480xorps %xmm0,%xmm33481leaq 32(%rcx),%rcx3482xorps %xmm3,%xmm23483.Loop_enc1_15:3484.byte 102,15,56,220,2093485decl %eax3486movups (%rcx),%xmm13487leaq 16(%rcx),%rcx3488jnz .Loop_enc1_153489.byte 102,15,56,221,2093490movl %r10d,%eax3491movq %r11,%rcx3492movups %xmm2,0(%rsi)3493leaq 16(%rsi),%rsi3494subq $16,%rdx3495jnc .Lcbc_enc_loop3496addq $16,%rdx3497jnz .Lcbc_enc_tail3498pxor %xmm0,%xmm03499pxor %xmm1,%xmm13500movups %xmm2,(%r8)3501pxor %xmm2,%xmm23502pxor %xmm3,%xmm33503jmp .Lcbc_ret35043505.Lcbc_enc_tail:3506movq %rdx,%rcx3507xchgq %rdi,%rsi3508.long 0x9066A4F33509movl $16,%ecx3510subq %rdx,%rcx3511xorl %eax,%eax3512.long 0x9066AAF33513leaq -16(%rdi),%rdi3514movl %r10d,%eax3515movq %rdi,%rsi3516movq %r11,%rcx3517xorq %rdx,%rdx3518jmp .Lcbc_enc_loop35193520.align 163521.Lcbc_decrypt:3522cmpq $16,%rdx3523jne .Lcbc_decrypt_bulk3524352535263527movdqu (%rdi),%xmm23528movdqu (%r8),%xmm33529movdqa %xmm2,%xmm43530movups (%rcx),%xmm03531movups 16(%rcx),%xmm13532leaq 32(%rcx),%rcx3533xorps %xmm0,%xmm23534.Loop_dec1_16:3535.byte 102,15,56,222,2093536decl %r10d3537movups (%rcx),%xmm13538leaq 16(%rcx),%rcx3539jnz .Loop_dec1_163540.byte 102,15,56,223,2093541pxor %xmm0,%xmm03542pxor %xmm1,%xmm13543movdqu %xmm4,(%r8)3544xorps %xmm3,%xmm23545pxor %xmm3,%xmm33546movups %xmm2,(%rsi)3547pxor %xmm2,%xmm23548jmp .Lcbc_ret3549.align 163550.Lcbc_decrypt_bulk:3551leaq (%rsp),%r113552.cfi_def_cfa_register %r113553pushq %rbp3554.cfi_offset %rbp,-163555subq $16,%rsp3556andq $-16,%rsp3557movq %rcx,%rbp3558movups (%r8),%xmm103559movl %r10d,%eax3560cmpq $0x50,%rdx3561jbe .Lcbc_dec_tail35623563movups (%rcx),%xmm03564movdqu 0(%rdi),%xmm23565movdqu 16(%rdi),%xmm33566movdqa %xmm2,%xmm113567movdqu 32(%rdi),%xmm43568movdqa %xmm3,%xmm123569movdqu 48(%rdi),%xmm53570movdqa %xmm4,%xmm133571movdqu 64(%rdi),%xmm63572movdqa %xmm5,%xmm143573movdqu 80(%rdi),%xmm73574movdqa %xmm6,%xmm153575movl OPENSSL_ia32cap_P+4(%rip),%r9d3576cmpq $0x70,%rdx3577jbe .Lcbc_dec_six_or_seven35783579andl $71303168,%r9d3580subq $0x50,%rdx3581cmpl $4194304,%r9d3582je .Lcbc_dec_loop6_enter3583subq $0x20,%rdx3584leaq 112(%rcx),%rcx3585jmp .Lcbc_dec_loop8_enter3586.align 163587.Lcbc_dec_loop8:3588movups %xmm9,(%rsi)3589leaq 16(%rsi),%rsi3590.Lcbc_dec_loop8_enter:3591movdqu 96(%rdi),%xmm83592pxor %xmm0,%xmm23593movdqu 112(%rdi),%xmm93594pxor %xmm0,%xmm33595movups 16-112(%rcx),%xmm13596pxor %xmm0,%xmm43597movq $-1,%rbp3598cmpq $0x70,%rdx3599pxor %xmm0,%xmm53600pxor %xmm0,%xmm63601pxor %xmm0,%xmm73602pxor %xmm0,%xmm836033604.byte 102,15,56,222,2093605pxor %xmm0,%xmm93606movups 32-112(%rcx),%xmm03607.byte 102,15,56,222,2173608.byte 102,15,56,222,2253609.byte 102,15,56,222,2333610.byte 102,15,56,222,2413611.byte 102,15,56,222,2493612.byte 102,68,15,56,222,1933613adcq $0,%rbp3614andq $128,%rbp3615.byte 102,68,15,56,222,2013616addq %rdi,%rbp3617movups 48-112(%rcx),%xmm13618.byte 102,15,56,222,2083619.byte 102,15,56,222,2163620.byte 102,15,56,222,2243621.byte 102,15,56,222,2323622.byte 102,15,56,222,2403623.byte 102,15,56,222,2483624.byte 102,68,15,56,222,1923625.byte 102,68,15,56,222,2003626movups 64-112(%rcx),%xmm03627nop3628.byte 102,15,56,222,2093629.byte 102,15,56,222,2173630.byte 102,15,56,222,2253631.byte 102,15,56,222,2333632.byte 102,15,56,222,2413633.byte 102,15,56,222,2493634.byte 102,68,15,56,222,1933635.byte 102,68,15,56,222,2013636movups 80-112(%rcx),%xmm13637nop3638.byte 102,15,56,222,2083639.byte 102,15,56,222,2163640.byte 102,15,56,222,2243641.byte 102,15,56,222,2323642.byte 102,15,56,222,2403643.byte 102,15,56,222,2483644.byte 102,68,15,56,222,1923645.byte 102,68,15,56,222,2003646movups 96-112(%rcx),%xmm03647nop3648.byte 102,15,56,222,2093649.byte 102,15,56,222,2173650.byte 102,15,56,222,2253651.byte 102,15,56,222,2333652.byte 102,15,56,222,2413653.byte 102,15,56,222,2493654.byte 102,68,15,56,222,1933655.byte 102,68,15,56,222,2013656movups 112-112(%rcx),%xmm13657nop3658.byte 102,15,56,222,2083659.byte 102,15,56,222,2163660.byte 102,15,56,222,2243661.byte 102,15,56,222,2323662.byte 102,15,56,222,2403663.byte 102,15,56,222,2483664.byte 102,68,15,56,222,1923665.byte 102,68,15,56,222,2003666movups 128-112(%rcx),%xmm03667nop3668.byte 102,15,56,222,2093669.byte 102,15,56,222,2173670.byte 102,15,56,222,2253671.byte 102,15,56,222,2333672.byte 102,15,56,222,2413673.byte 102,15,56,222,2493674.byte 102,68,15,56,222,1933675.byte 102,68,15,56,222,2013676movups 144-112(%rcx),%xmm13677cmpl $11,%eax3678.byte 102,15,56,222,2083679.byte 102,15,56,222,2163680.byte 102,15,56,222,2243681.byte 102,15,56,222,2323682.byte 102,15,56,222,2403683.byte 102,15,56,222,2483684.byte 102,68,15,56,222,1923685.byte 102,68,15,56,222,2003686movups 160-112(%rcx),%xmm03687jb .Lcbc_dec_done3688.byte 102,15,56,222,2093689.byte 102,15,56,222,2173690.byte 102,15,56,222,2253691.byte 102,15,56,222,2333692.byte 102,15,56,222,2413693.byte 102,15,56,222,2493694.byte 102,68,15,56,222,1933695.byte 102,68,15,56,222,2013696movups 176-112(%rcx),%xmm13697nop3698.byte 102,15,56,222,2083699.byte 102,15,56,222,2163700.byte 102,15,56,222,2243701.byte 102,15,56,222,2323702.byte 102,15,56,222,2403703.byte 102,15,56,222,2483704.byte 102,68,15,56,222,1923705.byte 102,68,15,56,222,2003706movups 192-112(%rcx),%xmm03707je .Lcbc_dec_done3708.byte 102,15,56,222,2093709.byte 102,15,56,222,2173710.byte 102,15,56,222,2253711.byte 102,15,56,222,2333712.byte 102,15,56,222,2413713.byte 102,15,56,222,2493714.byte 102,68,15,56,222,1933715.byte 102,68,15,56,222,2013716movups 208-112(%rcx),%xmm13717nop3718.byte 102,15,56,222,2083719.byte 102,15,56,222,2163720.byte 102,15,56,222,2243721.byte 102,15,56,222,2323722.byte 102,15,56,222,2403723.byte 102,15,56,222,2483724.byte 102,68,15,56,222,1923725.byte 102,68,15,56,222,2003726movups 224-112(%rcx),%xmm03727jmp .Lcbc_dec_done3728.align 163729.Lcbc_dec_done:3730.byte 102,15,56,222,2093731.byte 102,15,56,222,2173732pxor %xmm0,%xmm103733pxor %xmm0,%xmm113734.byte 102,15,56,222,2253735.byte 102,15,56,222,2333736pxor %xmm0,%xmm123737pxor %xmm0,%xmm133738.byte 102,15,56,222,2413739.byte 102,15,56,222,2493740pxor %xmm0,%xmm143741pxor %xmm0,%xmm153742.byte 102,68,15,56,222,1933743.byte 102,68,15,56,222,2013744movdqu 80(%rdi),%xmm137453746.byte 102,65,15,56,223,2103747movdqu 96(%rdi),%xmm103748pxor %xmm0,%xmm13749.byte 102,65,15,56,223,2193750pxor %xmm0,%xmm103751movdqu 112(%rdi),%xmm03752.byte 102,65,15,56,223,2283753leaq 128(%rdi),%rdi3754movdqu 0(%rbp),%xmm113755.byte 102,65,15,56,223,2373756.byte 102,65,15,56,223,2463757movdqu 16(%rbp),%xmm123758movdqu 32(%rbp),%xmm133759.byte 102,65,15,56,223,2553760.byte 102,68,15,56,223,1933761movdqu 48(%rbp),%xmm143762movdqu 64(%rbp),%xmm153763.byte 102,69,15,56,223,2023764movdqa %xmm0,%xmm103765movdqu 80(%rbp),%xmm13766movups -112(%rcx),%xmm037673768movups %xmm2,(%rsi)3769movdqa %xmm11,%xmm23770movups %xmm3,16(%rsi)3771movdqa %xmm12,%xmm33772movups %xmm4,32(%rsi)3773movdqa %xmm13,%xmm43774movups %xmm5,48(%rsi)3775movdqa %xmm14,%xmm53776movups %xmm6,64(%rsi)3777movdqa %xmm15,%xmm63778movups %xmm7,80(%rsi)3779movdqa %xmm1,%xmm73780movups %xmm8,96(%rsi)3781leaq 112(%rsi),%rsi37823783subq $0x80,%rdx3784ja .Lcbc_dec_loop837853786movaps %xmm9,%xmm23787leaq -112(%rcx),%rcx3788addq $0x70,%rdx3789jle .Lcbc_dec_clear_tail_collected3790movups %xmm9,(%rsi)3791leaq 16(%rsi),%rsi3792cmpq $0x50,%rdx3793jbe .Lcbc_dec_tail37943795movaps %xmm11,%xmm23796.Lcbc_dec_six_or_seven:3797cmpq $0x60,%rdx3798ja .Lcbc_dec_seven37993800movaps %xmm7,%xmm83801call _aesni_decrypt63802pxor %xmm10,%xmm23803movaps %xmm8,%xmm103804pxor %xmm11,%xmm33805movdqu %xmm2,(%rsi)3806pxor %xmm12,%xmm43807movdqu %xmm3,16(%rsi)3808pxor %xmm3,%xmm33809pxor %xmm13,%xmm53810movdqu %xmm4,32(%rsi)3811pxor %xmm4,%xmm43812pxor %xmm14,%xmm63813movdqu %xmm5,48(%rsi)3814pxor %xmm5,%xmm53815pxor %xmm15,%xmm73816movdqu %xmm6,64(%rsi)3817pxor %xmm6,%xmm63818leaq 80(%rsi),%rsi3819movdqa %xmm7,%xmm23820pxor %xmm7,%xmm73821jmp .Lcbc_dec_tail_collected38223823.align 163824.Lcbc_dec_seven:3825movups 96(%rdi),%xmm83826xorps %xmm9,%xmm93827call _aesni_decrypt83828movups 80(%rdi),%xmm93829pxor %xmm10,%xmm23830movups 96(%rdi),%xmm103831pxor %xmm11,%xmm33832movdqu %xmm2,(%rsi)3833pxor %xmm12,%xmm43834movdqu %xmm3,16(%rsi)3835pxor %xmm3,%xmm33836pxor %xmm13,%xmm53837movdqu %xmm4,32(%rsi)3838pxor %xmm4,%xmm43839pxor %xmm14,%xmm63840movdqu %xmm5,48(%rsi)3841pxor %xmm5,%xmm53842pxor %xmm15,%xmm73843movdqu %xmm6,64(%rsi)3844pxor %xmm6,%xmm63845pxor %xmm9,%xmm83846movdqu %xmm7,80(%rsi)3847pxor %xmm7,%xmm73848leaq 96(%rsi),%rsi3849movdqa %xmm8,%xmm23850pxor %xmm8,%xmm83851pxor %xmm9,%xmm93852jmp .Lcbc_dec_tail_collected38533854.align 163855.Lcbc_dec_loop6:3856movups %xmm7,(%rsi)3857leaq 16(%rsi),%rsi3858movdqu 0(%rdi),%xmm23859movdqu 16(%rdi),%xmm33860movdqa %xmm2,%xmm113861movdqu 32(%rdi),%xmm43862movdqa %xmm3,%xmm123863movdqu 48(%rdi),%xmm53864movdqa %xmm4,%xmm133865movdqu 64(%rdi),%xmm63866movdqa %xmm5,%xmm143867movdqu 80(%rdi),%xmm73868movdqa %xmm6,%xmm153869.Lcbc_dec_loop6_enter:3870leaq 96(%rdi),%rdi3871movdqa %xmm7,%xmm838723873call _aesni_decrypt638743875pxor %xmm10,%xmm23876movdqa %xmm8,%xmm103877pxor %xmm11,%xmm33878movdqu %xmm2,(%rsi)3879pxor %xmm12,%xmm43880movdqu %xmm3,16(%rsi)3881pxor %xmm13,%xmm53882movdqu %xmm4,32(%rsi)3883pxor %xmm14,%xmm63884movq %rbp,%rcx3885movdqu %xmm5,48(%rsi)3886pxor %xmm15,%xmm73887movl %r10d,%eax3888movdqu %xmm6,64(%rsi)3889leaq 80(%rsi),%rsi3890subq $0x60,%rdx3891ja .Lcbc_dec_loop638923893movdqa %xmm7,%xmm23894addq $0x50,%rdx3895jle .Lcbc_dec_clear_tail_collected3896movups %xmm7,(%rsi)3897leaq 16(%rsi),%rsi38983899.Lcbc_dec_tail:3900movups (%rdi),%xmm23901subq $0x10,%rdx3902jbe .Lcbc_dec_one39033904movups 16(%rdi),%xmm33905movaps %xmm2,%xmm113906subq $0x10,%rdx3907jbe .Lcbc_dec_two39083909movups 32(%rdi),%xmm43910movaps %xmm3,%xmm123911subq $0x10,%rdx3912jbe .Lcbc_dec_three39133914movups 48(%rdi),%xmm53915movaps %xmm4,%xmm133916subq $0x10,%rdx3917jbe .Lcbc_dec_four39183919movups 64(%rdi),%xmm63920movaps %xmm5,%xmm143921movaps %xmm6,%xmm153922xorps %xmm7,%xmm73923call _aesni_decrypt63924pxor %xmm10,%xmm23925movaps %xmm15,%xmm103926pxor %xmm11,%xmm33927movdqu %xmm2,(%rsi)3928pxor %xmm12,%xmm43929movdqu %xmm3,16(%rsi)3930pxor %xmm3,%xmm33931pxor %xmm13,%xmm53932movdqu %xmm4,32(%rsi)3933pxor %xmm4,%xmm43934pxor %xmm14,%xmm63935movdqu %xmm5,48(%rsi)3936pxor %xmm5,%xmm53937leaq 64(%rsi),%rsi3938movdqa %xmm6,%xmm23939pxor %xmm6,%xmm63940pxor %xmm7,%xmm73941subq $0x10,%rdx3942jmp .Lcbc_dec_tail_collected39433944.align 163945.Lcbc_dec_one:3946movaps %xmm2,%xmm113947movups (%rcx),%xmm03948movups 16(%rcx),%xmm13949leaq 32(%rcx),%rcx3950xorps %xmm0,%xmm23951.Loop_dec1_17:3952.byte 102,15,56,222,2093953decl %eax3954movups (%rcx),%xmm13955leaq 16(%rcx),%rcx3956jnz .Loop_dec1_173957.byte 102,15,56,223,2093958xorps %xmm10,%xmm23959movaps %xmm11,%xmm103960jmp .Lcbc_dec_tail_collected3961.align 163962.Lcbc_dec_two:3963movaps %xmm3,%xmm123964call _aesni_decrypt23965pxor %xmm10,%xmm23966movaps %xmm12,%xmm103967pxor %xmm11,%xmm33968movdqu %xmm2,(%rsi)3969movdqa %xmm3,%xmm23970pxor %xmm3,%xmm33971leaq 16(%rsi),%rsi3972jmp .Lcbc_dec_tail_collected3973.align 163974.Lcbc_dec_three:3975movaps %xmm4,%xmm133976call _aesni_decrypt33977pxor %xmm10,%xmm23978movaps %xmm13,%xmm103979pxor %xmm11,%xmm33980movdqu %xmm2,(%rsi)3981pxor %xmm12,%xmm43982movdqu %xmm3,16(%rsi)3983pxor %xmm3,%xmm33984movdqa %xmm4,%xmm23985pxor %xmm4,%xmm43986leaq 32(%rsi),%rsi3987jmp .Lcbc_dec_tail_collected3988.align 163989.Lcbc_dec_four:3990movaps %xmm5,%xmm143991call _aesni_decrypt43992pxor %xmm10,%xmm23993movaps %xmm14,%xmm103994pxor %xmm11,%xmm33995movdqu %xmm2,(%rsi)3996pxor %xmm12,%xmm43997movdqu %xmm3,16(%rsi)3998pxor %xmm3,%xmm33999pxor %xmm13,%xmm54000movdqu %xmm4,32(%rsi)4001pxor %xmm4,%xmm44002movdqa %xmm5,%xmm24003pxor %xmm5,%xmm54004leaq 48(%rsi),%rsi4005jmp .Lcbc_dec_tail_collected40064007.align 164008.Lcbc_dec_clear_tail_collected:4009pxor %xmm3,%xmm34010pxor %xmm4,%xmm44011pxor %xmm5,%xmm54012pxor %xmm6,%xmm64013pxor %xmm7,%xmm74014pxor %xmm8,%xmm84015pxor %xmm9,%xmm94016.Lcbc_dec_tail_collected:4017movups %xmm10,(%r8)4018andq $15,%rdx4019jnz .Lcbc_dec_tail_partial4020movups %xmm2,(%rsi)4021pxor %xmm2,%xmm24022jmp .Lcbc_dec_ret4023.align 164024.Lcbc_dec_tail_partial:4025movaps %xmm2,(%rsp)4026pxor %xmm2,%xmm24027movq $16,%rcx4028movq %rsi,%rdi4029subq %rdx,%rcx4030leaq (%rsp),%rsi4031.long 0x9066A4F34032movdqa %xmm2,(%rsp)40334034.Lcbc_dec_ret:4035xorps %xmm0,%xmm04036pxor %xmm1,%xmm14037movq -8(%r11),%rbp4038.cfi_restore %rbp4039leaq (%r11),%rsp4040.cfi_def_cfa_register %rsp4041.Lcbc_ret:4042.byte 0xf3,0xc34043.cfi_endproc4044.size aesni_cbc_encrypt,.-aesni_cbc_encrypt4045.globl aesni_set_decrypt_key4046.type aesni_set_decrypt_key,@function4047.align 164048aesni_set_decrypt_key:4049.cfi_startproc4050.byte 0x48,0x83,0xEC,0x084051.cfi_adjust_cfa_offset 84052call __aesni_set_encrypt_key4053shll $4,%esi4054testl %eax,%eax4055jnz .Ldec_key_ret4056leaq 16(%rdx,%rsi,1),%rdi40574058movups (%rdx),%xmm04059movups (%rdi),%xmm14060movups %xmm0,(%rdi)4061movups %xmm1,(%rdx)4062leaq 16(%rdx),%rdx4063leaq -16(%rdi),%rdi40644065.Ldec_key_inverse:4066movups (%rdx),%xmm04067movups (%rdi),%xmm14068.byte 102,15,56,219,1924069.byte 102,15,56,219,2014070leaq 16(%rdx),%rdx4071leaq -16(%rdi),%rdi4072movups %xmm0,16(%rdi)4073movups %xmm1,-16(%rdx)4074cmpq %rdx,%rdi4075ja .Ldec_key_inverse40764077movups (%rdx),%xmm04078.byte 102,15,56,219,1924079pxor %xmm1,%xmm14080movups %xmm0,(%rdi)4081pxor %xmm0,%xmm04082.Ldec_key_ret:4083addq $8,%rsp4084.cfi_adjust_cfa_offset -84085.byte 0xf3,0xc34086.cfi_endproc4087.LSEH_end_set_decrypt_key:4088.size aesni_set_decrypt_key,.-aesni_set_decrypt_key4089.globl aesni_set_encrypt_key4090.type aesni_set_encrypt_key,@function4091.align 164092aesni_set_encrypt_key:4093__aesni_set_encrypt_key:4094.cfi_startproc4095.byte 0x48,0x83,0xEC,0x084096.cfi_adjust_cfa_offset 84097movq $-1,%rax4098testq %rdi,%rdi4099jz .Lenc_key_ret4100testq %rdx,%rdx4101jz .Lenc_key_ret41024103movl $268437504,%r10d4104movups (%rdi),%xmm04105xorps %xmm4,%xmm44106andl OPENSSL_ia32cap_P+4(%rip),%r10d4107leaq 16(%rdx),%rax4108cmpl $256,%esi4109je .L14rounds4110cmpl $192,%esi4111je .L12rounds4112cmpl $128,%esi4113jne .Lbad_keybits41144115.L10rounds:4116movl $9,%esi4117cmpl $268435456,%r10d4118je .L10rounds_alt41194120movups %xmm0,(%rdx)4121.byte 102,15,58,223,200,14122call .Lkey_expansion_128_cold4123.byte 102,15,58,223,200,24124call .Lkey_expansion_1284125.byte 102,15,58,223,200,44126call .Lkey_expansion_1284127.byte 102,15,58,223,200,84128call .Lkey_expansion_1284129.byte 102,15,58,223,200,164130call .Lkey_expansion_1284131.byte 102,15,58,223,200,324132call .Lkey_expansion_1284133.byte 102,15,58,223,200,644134call .Lkey_expansion_1284135.byte 102,15,58,223,200,1284136call .Lkey_expansion_1284137.byte 102,15,58,223,200,274138call .Lkey_expansion_1284139.byte 102,15,58,223,200,544140call .Lkey_expansion_1284141movups %xmm0,(%rax)4142movl %esi,80(%rax)4143xorl %eax,%eax4144jmp .Lenc_key_ret41454146.align 164147.L10rounds_alt:4148movdqa .Lkey_rotate(%rip),%xmm54149movl $8,%r10d4150movdqa .Lkey_rcon1(%rip),%xmm44151movdqa %xmm0,%xmm24152movdqu %xmm0,(%rdx)4153jmp .Loop_key12841544155.align 164156.Loop_key128:4157.byte 102,15,56,0,1974158.byte 102,15,56,221,1964159pslld $1,%xmm44160leaq 16(%rax),%rax41614162movdqa %xmm2,%xmm34163pslldq $4,%xmm24164pxor %xmm2,%xmm34165pslldq $4,%xmm24166pxor %xmm2,%xmm34167pslldq $4,%xmm24168pxor %xmm3,%xmm241694170pxor %xmm2,%xmm04171movdqu %xmm0,-16(%rax)4172movdqa %xmm0,%xmm241734174decl %r10d4175jnz .Loop_key12841764177movdqa .Lkey_rcon1b(%rip),%xmm441784179.byte 102,15,56,0,1974180.byte 102,15,56,221,1964181pslld $1,%xmm441824183movdqa %xmm2,%xmm34184pslldq $4,%xmm24185pxor %xmm2,%xmm34186pslldq $4,%xmm24187pxor %xmm2,%xmm34188pslldq $4,%xmm24189pxor %xmm3,%xmm241904191pxor %xmm2,%xmm04192movdqu %xmm0,(%rax)41934194movdqa %xmm0,%xmm24195.byte 102,15,56,0,1974196.byte 102,15,56,221,19641974198movdqa %xmm2,%xmm34199pslldq $4,%xmm24200pxor %xmm2,%xmm34201pslldq $4,%xmm24202pxor %xmm2,%xmm34203pslldq $4,%xmm24204pxor %xmm3,%xmm242054206pxor %xmm2,%xmm04207movdqu %xmm0,16(%rax)42084209movl %esi,96(%rax)4210xorl %eax,%eax4211jmp .Lenc_key_ret42124213.align 164214.L12rounds:4215movq 16(%rdi),%xmm24216movl $11,%esi4217cmpl $268435456,%r10d4218je .L12rounds_alt42194220movups %xmm0,(%rdx)4221.byte 102,15,58,223,202,14222call .Lkey_expansion_192a_cold4223.byte 102,15,58,223,202,24224call .Lkey_expansion_192b4225.byte 102,15,58,223,202,44226call .Lkey_expansion_192a4227.byte 102,15,58,223,202,84228call .Lkey_expansion_192b4229.byte 102,15,58,223,202,164230call .Lkey_expansion_192a4231.byte 102,15,58,223,202,324232call .Lkey_expansion_192b4233.byte 102,15,58,223,202,644234call .Lkey_expansion_192a4235.byte 102,15,58,223,202,1284236call .Lkey_expansion_192b4237movups %xmm0,(%rax)4238movl %esi,48(%rax)4239xorq %rax,%rax4240jmp .Lenc_key_ret42414242.align 164243.L12rounds_alt:4244movdqa .Lkey_rotate192(%rip),%xmm54245movdqa .Lkey_rcon1(%rip),%xmm44246movl $8,%r10d4247movdqu %xmm0,(%rdx)4248jmp .Loop_key19242494250.align 164251.Loop_key192:4252movq %xmm2,0(%rax)4253movdqa %xmm2,%xmm14254.byte 102,15,56,0,2134255.byte 102,15,56,221,2124256pslld $1,%xmm44257leaq 24(%rax),%rax42584259movdqa %xmm0,%xmm34260pslldq $4,%xmm04261pxor %xmm0,%xmm34262pslldq $4,%xmm04263pxor %xmm0,%xmm34264pslldq $4,%xmm04265pxor %xmm3,%xmm042664267pshufd $0xff,%xmm0,%xmm34268pxor %xmm1,%xmm34269pslldq $4,%xmm14270pxor %xmm1,%xmm342714272pxor %xmm2,%xmm04273pxor %xmm3,%xmm24274movdqu %xmm0,-16(%rax)42754276decl %r10d4277jnz .Loop_key19242784279movl %esi,32(%rax)4280xorl %eax,%eax4281jmp .Lenc_key_ret42824283.align 164284.L14rounds:4285movups 16(%rdi),%xmm24286movl $13,%esi4287leaq 16(%rax),%rax4288cmpl $268435456,%r10d4289je .L14rounds_alt42904291movups %xmm0,(%rdx)4292movups %xmm2,16(%rdx)4293.byte 102,15,58,223,202,14294call .Lkey_expansion_256a_cold4295.byte 102,15,58,223,200,14296call .Lkey_expansion_256b4297.byte 102,15,58,223,202,24298call .Lkey_expansion_256a4299.byte 102,15,58,223,200,24300call .Lkey_expansion_256b4301.byte 102,15,58,223,202,44302call .Lkey_expansion_256a4303.byte 102,15,58,223,200,44304call .Lkey_expansion_256b4305.byte 102,15,58,223,202,84306call .Lkey_expansion_256a4307.byte 102,15,58,223,200,84308call .Lkey_expansion_256b4309.byte 102,15,58,223,202,164310call .Lkey_expansion_256a4311.byte 102,15,58,223,200,164312call .Lkey_expansion_256b4313.byte 102,15,58,223,202,324314call .Lkey_expansion_256a4315.byte 102,15,58,223,200,324316call .Lkey_expansion_256b4317.byte 102,15,58,223,202,644318call .Lkey_expansion_256a4319movups %xmm0,(%rax)4320movl %esi,16(%rax)4321xorq %rax,%rax4322jmp .Lenc_key_ret43234324.align 164325.L14rounds_alt:4326movdqa .Lkey_rotate(%rip),%xmm54327movdqa .Lkey_rcon1(%rip),%xmm44328movl $7,%r10d4329movdqu %xmm0,0(%rdx)4330movdqa %xmm2,%xmm14331movdqu %xmm2,16(%rdx)4332jmp .Loop_key25643334334.align 164335.Loop_key256:4336.byte 102,15,56,0,2134337.byte 102,15,56,221,21243384339movdqa %xmm0,%xmm34340pslldq $4,%xmm04341pxor %xmm0,%xmm34342pslldq $4,%xmm04343pxor %xmm0,%xmm34344pslldq $4,%xmm04345pxor %xmm3,%xmm04346pslld $1,%xmm443474348pxor %xmm2,%xmm04349movdqu %xmm0,(%rax)43504351decl %r10d4352jz .Ldone_key25643534354pshufd $0xff,%xmm0,%xmm24355pxor %xmm3,%xmm34356.byte 102,15,56,221,21143574358movdqa %xmm1,%xmm34359pslldq $4,%xmm14360pxor %xmm1,%xmm34361pslldq $4,%xmm14362pxor %xmm1,%xmm34363pslldq $4,%xmm14364pxor %xmm3,%xmm143654366pxor %xmm1,%xmm24367movdqu %xmm2,16(%rax)4368leaq 32(%rax),%rax4369movdqa %xmm2,%xmm143704371jmp .Loop_key25643724373.Ldone_key256:4374movl %esi,16(%rax)4375xorl %eax,%eax4376jmp .Lenc_key_ret43774378.align 164379.Lbad_keybits:4380movq $-2,%rax4381.Lenc_key_ret:4382pxor %xmm0,%xmm04383pxor %xmm1,%xmm14384pxor %xmm2,%xmm24385pxor %xmm3,%xmm34386pxor %xmm4,%xmm44387pxor %xmm5,%xmm54388addq $8,%rsp4389.cfi_adjust_cfa_offset -84390.byte 0xf3,0xc34391.LSEH_end_set_encrypt_key:43924393.align 164394.Lkey_expansion_128:4395movups %xmm0,(%rax)4396leaq 16(%rax),%rax4397.Lkey_expansion_128_cold:4398shufps $16,%xmm0,%xmm44399xorps %xmm4,%xmm04400shufps $140,%xmm0,%xmm44401xorps %xmm4,%xmm04402shufps $255,%xmm1,%xmm14403xorps %xmm1,%xmm04404.byte 0xf3,0xc344054406.align 164407.Lkey_expansion_192a:4408movups %xmm0,(%rax)4409leaq 16(%rax),%rax4410.Lkey_expansion_192a_cold:4411movaps %xmm2,%xmm54412.Lkey_expansion_192b_warm:4413shufps $16,%xmm0,%xmm44414movdqa %xmm2,%xmm34415xorps %xmm4,%xmm04416shufps $140,%xmm0,%xmm44417pslldq $4,%xmm34418xorps %xmm4,%xmm04419pshufd $85,%xmm1,%xmm14420pxor %xmm3,%xmm24421pxor %xmm1,%xmm04422pshufd $255,%xmm0,%xmm34423pxor %xmm3,%xmm24424.byte 0xf3,0xc344254426.align 164427.Lkey_expansion_192b:4428movaps %xmm0,%xmm34429shufps $68,%xmm0,%xmm54430movups %xmm5,(%rax)4431shufps $78,%xmm2,%xmm34432movups %xmm3,16(%rax)4433leaq 32(%rax),%rax4434jmp .Lkey_expansion_192b_warm44354436.align 164437.Lkey_expansion_256a:4438movups %xmm2,(%rax)4439leaq 16(%rax),%rax4440.Lkey_expansion_256a_cold:4441shufps $16,%xmm0,%xmm44442xorps %xmm4,%xmm04443shufps $140,%xmm0,%xmm44444xorps %xmm4,%xmm04445shufps $255,%xmm1,%xmm14446xorps %xmm1,%xmm04447.byte 0xf3,0xc344484449.align 164450.Lkey_expansion_256b:4451movups %xmm0,(%rax)4452leaq 16(%rax),%rax44534454shufps $16,%xmm2,%xmm44455xorps %xmm4,%xmm24456shufps $140,%xmm2,%xmm44457xorps %xmm4,%xmm24458shufps $170,%xmm1,%xmm14459xorps %xmm1,%xmm24460.byte 0xf3,0xc34461.cfi_endproc4462.size aesni_set_encrypt_key,.-aesni_set_encrypt_key4463.size __aesni_set_encrypt_key,.-__aesni_set_encrypt_key4464.section .rodata4465.align 644466.Lbswap_mask:4467.byte 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,04468.Lincrement32:4469.long 6,6,6,04470.Lincrement64:4471.long 1,0,0,04472.Lxts_magic:4473.long 0x87,0,1,04474.Lincrement1:4475.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14476.Lkey_rotate:4477.long 0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d,0x0c0f0e0d4478.Lkey_rotate192:4479.long 0x04070605,0x04070605,0x04070605,0x040706054480.Lkey_rcon1:4481.long 1,1,1,14482.Lkey_rcon1b:4483.long 0x1b,0x1b,0x1b,0x1b44844485.byte 65,69,83,32,102,111,114,32,73,110,116,101,108,32,65,69,83,45,78,73,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,04486.align 644487.previous4488.section ".note.gnu.property", "a"4489.p2align 34490.long 1f - 0f4491.long 4f - 1f4492.long 544930:4494# "GNU" encoded with .byte, since .asciz isn't supported4495# on Solaris.4496.byte 0x474497.byte 0x4e4498.byte 0x554499.byte 045001:4501.p2align 34502.long 0xc00000024503.long 3f - 2f45042:4505.long 345063:4507.p2align 345084:450945104511