Path: blob/main/sys/crypto/openssl/amd64/aesni-xts-avx512.S
39482 views
/* Do not modify. This file is auto-generated from aesni-xts-avx512.pl. */1.text23.globl aesni_xts_avx512_eligible4.type aesni_xts_avx512_eligible,@function5.align 326aesni_xts_avx512_eligible:7movl OPENSSL_ia32cap_P+8(%rip),%ecx8xorl %eax,%eax910andl $0xc0030000,%ecx11cmpl $0xc0030000,%ecx12jne .L_done13movl OPENSSL_ia32cap_P+12(%rip),%ecx1415andl $0x640,%ecx16cmpl $0x640,%ecx17cmovel %ecx,%eax18.L_done:19.byte 0xf3,0xc320.size aesni_xts_avx512_eligible, .-aesni_xts_avx512_eligible21.globl aesni_xts_128_encrypt_avx51222.hidden aesni_xts_128_encrypt_avx51223.type aesni_xts_128_encrypt_avx512,@function24.align 3225aesni_xts_128_encrypt_avx512:26.cfi_startproc27.byte 243,15,30,25028pushq %rbp29movq %rsp,%rbp30subq $136,%rsp31andq $0xffffffffffffffc0,%rsp32movq %rbx,128(%rsp)33movq $0x87,%r1034vmovdqu (%r9),%xmm135vpxor (%r8),%xmm1,%xmm136vaesenc 16(%r8),%xmm1,%xmm137vaesenc 32(%r8),%xmm1,%xmm138vaesenc 48(%r8),%xmm1,%xmm139vaesenc 64(%r8),%xmm1,%xmm140vaesenc 80(%r8),%xmm1,%xmm141vaesenc 96(%r8),%xmm1,%xmm142vaesenc 112(%r8),%xmm1,%xmm143vaesenc 128(%r8),%xmm1,%xmm144vaesenc 144(%r8),%xmm1,%xmm145vaesenclast 160(%r8),%xmm1,%xmm146vmovdqa %xmm1,(%rsp)4748cmpq $0x80,%rdx49jl .L_less_than_128_bytes_hEgxyDlCngwrfFe50vpbroadcastq %r10,%zmm2551cmpq $0x100,%rdx52jge .L_start_by16_hEgxyDlCngwrfFe53cmpq $0x80,%rdx54jge .L_start_by8_hEgxyDlCngwrfFe5556.L_do_n_blocks_hEgxyDlCngwrfFe:57cmpq $0x0,%rdx58je .L_ret_hEgxyDlCngwrfFe59cmpq $0x70,%rdx60jge .L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe61cmpq $0x60,%rdx62jge .L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe63cmpq $0x50,%rdx64jge .L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe65cmpq $0x40,%rdx66jge .L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe67cmpq $0x30,%rdx68jge .L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe69cmpq $0x20,%rdx70jge .L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe71cmpq $0x10,%rdx72jge .L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe73vmovdqa %xmm0,%xmm874vmovdqa %xmm9,%xmm075jmp .L_steal_cipher_hEgxyDlCngwrfFe7677.L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe:78movq $0x0000ffffffffffff,%r879kmovq %r8,%k180vmovdqu8 (%rdi),%zmm181vmovdqu8 64(%rdi),%zmm2{%k1}82addq $0x70,%rdi83vbroadcasti32x4 (%rcx),%zmm084vpternlogq $0x96,%zmm0,%zmm9,%zmm185vpternlogq $0x96,%zmm0,%zmm10,%zmm286vbroadcasti32x4 16(%rcx),%zmm087vaesenc %zmm0,%zmm1,%zmm188vaesenc %zmm0,%zmm2,%zmm2899091vbroadcasti32x4 32(%rcx),%zmm092vaesenc %zmm0,%zmm1,%zmm193vaesenc %zmm0,%zmm2,%zmm2949596vbroadcasti32x4 48(%rcx),%zmm097vaesenc %zmm0,%zmm1,%zmm198vaesenc %zmm0,%zmm2,%zmm299100vbroadcasti32x4 64(%rcx),%zmm0101vaesenc %zmm0,%zmm1,%zmm1102vaesenc %zmm0,%zmm2,%zmm2103104105vbroadcasti32x4 80(%rcx),%zmm0106vaesenc %zmm0,%zmm1,%zmm1107vaesenc %zmm0,%zmm2,%zmm2108109110vbroadcasti32x4 96(%rcx),%zmm0111vaesenc %zmm0,%zmm1,%zmm1112vaesenc %zmm0,%zmm2,%zmm2113114115vbroadcasti32x4 112(%rcx),%zmm0116vaesenc %zmm0,%zmm1,%zmm1117vaesenc %zmm0,%zmm2,%zmm2118119120vbroadcasti32x4 128(%rcx),%zmm0121vaesenc %zmm0,%zmm1,%zmm1122vaesenc %zmm0,%zmm2,%zmm2123124125vbroadcasti32x4 144(%rcx),%zmm0126vaesenc %zmm0,%zmm1,%zmm1127vaesenc %zmm0,%zmm2,%zmm2128129vbroadcasti32x4 160(%rcx),%zmm0130vaesenclast %zmm0,%zmm1,%zmm1131vaesenclast %zmm0,%zmm2,%zmm2132vpxorq %zmm9,%zmm1,%zmm1133vpxorq %zmm10,%zmm2,%zmm2134vmovdqu8 %zmm1,(%rsi)135vmovdqu8 %zmm2,64(%rsi){%k1}136addq $0x70,%rsi137vextracti32x4 $0x2,%zmm2,%xmm8138vextracti32x4 $0x3,%zmm10,%xmm0139andq $0xf,%rdx140je .L_ret_hEgxyDlCngwrfFe141jmp .L_steal_cipher_hEgxyDlCngwrfFe142143.L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe:144vmovdqu8 (%rdi),%zmm1145vmovdqu8 64(%rdi),%ymm2146addq $0x60,%rdi147vbroadcasti32x4 (%rcx),%zmm0148vpternlogq $0x96,%zmm0,%zmm9,%zmm1149vpternlogq $0x96,%zmm0,%zmm10,%zmm2150vbroadcasti32x4 16(%rcx),%zmm0151vaesenc %zmm0,%zmm1,%zmm1152vaesenc %zmm0,%zmm2,%zmm2153154155vbroadcasti32x4 32(%rcx),%zmm0156vaesenc %zmm0,%zmm1,%zmm1157vaesenc %zmm0,%zmm2,%zmm2158159160vbroadcasti32x4 48(%rcx),%zmm0161vaesenc %zmm0,%zmm1,%zmm1162vaesenc %zmm0,%zmm2,%zmm2163164vbroadcasti32x4 64(%rcx),%zmm0165vaesenc %zmm0,%zmm1,%zmm1166vaesenc %zmm0,%zmm2,%zmm2167168169vbroadcasti32x4 80(%rcx),%zmm0170vaesenc %zmm0,%zmm1,%zmm1171vaesenc %zmm0,%zmm2,%zmm2172173174vbroadcasti32x4 96(%rcx),%zmm0175vaesenc %zmm0,%zmm1,%zmm1176vaesenc %zmm0,%zmm2,%zmm2177178179vbroadcasti32x4 112(%rcx),%zmm0180vaesenc %zmm0,%zmm1,%zmm1181vaesenc %zmm0,%zmm2,%zmm2182183184vbroadcasti32x4 128(%rcx),%zmm0185vaesenc %zmm0,%zmm1,%zmm1186vaesenc %zmm0,%zmm2,%zmm2187188189vbroadcasti32x4 144(%rcx),%zmm0190vaesenc %zmm0,%zmm1,%zmm1191vaesenc %zmm0,%zmm2,%zmm2192193vbroadcasti32x4 160(%rcx),%zmm0194vaesenclast %zmm0,%zmm1,%zmm1195vaesenclast %zmm0,%zmm2,%zmm2196vpxorq %zmm9,%zmm1,%zmm1197vpxorq %zmm10,%zmm2,%zmm2198vmovdqu8 %zmm1,(%rsi)199vmovdqu8 %ymm2,64(%rsi)200addq $0x60,%rsi201vextracti32x4 $0x1,%zmm2,%xmm8202vextracti32x4 $0x2,%zmm10,%xmm0203andq $0xf,%rdx204je .L_ret_hEgxyDlCngwrfFe205jmp .L_steal_cipher_hEgxyDlCngwrfFe206207.L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe:208vmovdqu8 (%rdi),%zmm1209vmovdqu 64(%rdi),%xmm2210addq $0x50,%rdi211vbroadcasti32x4 (%rcx),%zmm0212vpternlogq $0x96,%zmm0,%zmm9,%zmm1213vpternlogq $0x96,%zmm0,%zmm10,%zmm2214vbroadcasti32x4 16(%rcx),%zmm0215vaesenc %zmm0,%zmm1,%zmm1216vaesenc %zmm0,%zmm2,%zmm2217218219vbroadcasti32x4 32(%rcx),%zmm0220vaesenc %zmm0,%zmm1,%zmm1221vaesenc %zmm0,%zmm2,%zmm2222223224vbroadcasti32x4 48(%rcx),%zmm0225vaesenc %zmm0,%zmm1,%zmm1226vaesenc %zmm0,%zmm2,%zmm2227228vbroadcasti32x4 64(%rcx),%zmm0229vaesenc %zmm0,%zmm1,%zmm1230vaesenc %zmm0,%zmm2,%zmm2231232233vbroadcasti32x4 80(%rcx),%zmm0234vaesenc %zmm0,%zmm1,%zmm1235vaesenc %zmm0,%zmm2,%zmm2236237238vbroadcasti32x4 96(%rcx),%zmm0239vaesenc %zmm0,%zmm1,%zmm1240vaesenc %zmm0,%zmm2,%zmm2241242243vbroadcasti32x4 112(%rcx),%zmm0244vaesenc %zmm0,%zmm1,%zmm1245vaesenc %zmm0,%zmm2,%zmm2246247248vbroadcasti32x4 128(%rcx),%zmm0249vaesenc %zmm0,%zmm1,%zmm1250vaesenc %zmm0,%zmm2,%zmm2251252253vbroadcasti32x4 144(%rcx),%zmm0254vaesenc %zmm0,%zmm1,%zmm1255vaesenc %zmm0,%zmm2,%zmm2256257vbroadcasti32x4 160(%rcx),%zmm0258vaesenclast %zmm0,%zmm1,%zmm1259vaesenclast %zmm0,%zmm2,%zmm2260vpxorq %zmm9,%zmm1,%zmm1261vpxorq %zmm10,%zmm2,%zmm2262vmovdqu8 %zmm1,(%rsi)263vmovdqu %xmm2,64(%rsi)264addq $0x50,%rsi265vmovdqa %xmm2,%xmm8266vextracti32x4 $0x1,%zmm10,%xmm0267andq $0xf,%rdx268je .L_ret_hEgxyDlCngwrfFe269jmp .L_steal_cipher_hEgxyDlCngwrfFe270271.L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe:272vmovdqu8 (%rdi),%zmm1273addq $0x40,%rdi274vbroadcasti32x4 (%rcx),%zmm0275vpternlogq $0x96,%zmm0,%zmm9,%zmm1276vbroadcasti32x4 16(%rcx),%zmm0277vaesenc %zmm0,%zmm1,%zmm1278vbroadcasti32x4 32(%rcx),%zmm0279vaesenc %zmm0,%zmm1,%zmm1280vbroadcasti32x4 48(%rcx),%zmm0281vaesenc %zmm0,%zmm1,%zmm1282vbroadcasti32x4 64(%rcx),%zmm0283vaesenc %zmm0,%zmm1,%zmm1284vbroadcasti32x4 80(%rcx),%zmm0285vaesenc %zmm0,%zmm1,%zmm1286vbroadcasti32x4 96(%rcx),%zmm0287vaesenc %zmm0,%zmm1,%zmm1288vbroadcasti32x4 112(%rcx),%zmm0289vaesenc %zmm0,%zmm1,%zmm1290vbroadcasti32x4 128(%rcx),%zmm0291vaesenc %zmm0,%zmm1,%zmm1292vbroadcasti32x4 144(%rcx),%zmm0293vaesenc %zmm0,%zmm1,%zmm1294vbroadcasti32x4 160(%rcx),%zmm0295vaesenclast %zmm0,%zmm1,%zmm1296vpxorq %zmm9,%zmm1,%zmm1297vmovdqu8 %zmm1,(%rsi)298addq $0x40,%rsi299vextracti32x4 $0x3,%zmm1,%xmm8300vmovdqa64 %xmm10,%xmm0301andq $0xf,%rdx302je .L_ret_hEgxyDlCngwrfFe303jmp .L_steal_cipher_hEgxyDlCngwrfFe304.L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe:305movq $-1,%r8306shrq $0x10,%r8307kmovq %r8,%k1308vmovdqu8 (%rdi),%zmm1{%k1}309addq $0x30,%rdi310vbroadcasti32x4 (%rcx),%zmm0311vpternlogq $0x96,%zmm0,%zmm9,%zmm1312vbroadcasti32x4 16(%rcx),%zmm0313vaesenc %zmm0,%zmm1,%zmm1314vbroadcasti32x4 32(%rcx),%zmm0315vaesenc %zmm0,%zmm1,%zmm1316vbroadcasti32x4 48(%rcx),%zmm0317vaesenc %zmm0,%zmm1,%zmm1318vbroadcasti32x4 64(%rcx),%zmm0319vaesenc %zmm0,%zmm1,%zmm1320vbroadcasti32x4 80(%rcx),%zmm0321vaesenc %zmm0,%zmm1,%zmm1322vbroadcasti32x4 96(%rcx),%zmm0323vaesenc %zmm0,%zmm1,%zmm1324vbroadcasti32x4 112(%rcx),%zmm0325vaesenc %zmm0,%zmm1,%zmm1326vbroadcasti32x4 128(%rcx),%zmm0327vaesenc %zmm0,%zmm1,%zmm1328vbroadcasti32x4 144(%rcx),%zmm0329vaesenc %zmm0,%zmm1,%zmm1330vbroadcasti32x4 160(%rcx),%zmm0331vaesenclast %zmm0,%zmm1,%zmm1332vpxorq %zmm9,%zmm1,%zmm1333vmovdqu8 %zmm1,(%rsi){%k1}334addq $0x30,%rsi335vextracti32x4 $0x2,%zmm1,%xmm8336vextracti32x4 $0x3,%zmm9,%xmm0337andq $0xf,%rdx338je .L_ret_hEgxyDlCngwrfFe339jmp .L_steal_cipher_hEgxyDlCngwrfFe340.L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe:341vmovdqu8 (%rdi),%ymm1342addq $0x20,%rdi343vbroadcasti32x4 (%rcx),%ymm0344vpternlogq $0x96,%ymm0,%ymm9,%ymm1345vbroadcasti32x4 16(%rcx),%ymm0346vaesenc %ymm0,%ymm1,%ymm1347vbroadcasti32x4 32(%rcx),%ymm0348vaesenc %ymm0,%ymm1,%ymm1349vbroadcasti32x4 48(%rcx),%ymm0350vaesenc %ymm0,%ymm1,%ymm1351vbroadcasti32x4 64(%rcx),%ymm0352vaesenc %ymm0,%ymm1,%ymm1353vbroadcasti32x4 80(%rcx),%ymm0354vaesenc %ymm0,%ymm1,%ymm1355vbroadcasti32x4 96(%rcx),%ymm0356vaesenc %ymm0,%ymm1,%ymm1357vbroadcasti32x4 112(%rcx),%ymm0358vaesenc %ymm0,%ymm1,%ymm1359vbroadcasti32x4 128(%rcx),%ymm0360vaesenc %ymm0,%ymm1,%ymm1361vbroadcasti32x4 144(%rcx),%ymm0362vaesenc %ymm0,%ymm1,%ymm1363vbroadcasti32x4 160(%rcx),%ymm0364vaesenclast %ymm0,%ymm1,%ymm1365vpxorq %ymm9,%ymm1,%ymm1366vmovdqu %ymm1,(%rsi)367addq $0x20,%rsi368vextracti32x4 $0x1,%zmm1,%xmm8369vextracti32x4 $0x2,%zmm9,%xmm0370andq $0xf,%rdx371je .L_ret_hEgxyDlCngwrfFe372jmp .L_steal_cipher_hEgxyDlCngwrfFe373.L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe:374vmovdqu (%rdi),%xmm1375addq $0x10,%rdi376vpxor %xmm9,%xmm1,%xmm1377vpxor (%rcx),%xmm1,%xmm1378vaesenc 16(%rcx),%xmm1,%xmm1379vaesenc 32(%rcx),%xmm1,%xmm1380vaesenc 48(%rcx),%xmm1,%xmm1381vaesenc 64(%rcx),%xmm1,%xmm1382vaesenc 80(%rcx),%xmm1,%xmm1383vaesenc 96(%rcx),%xmm1,%xmm1384vaesenc 112(%rcx),%xmm1,%xmm1385vaesenc 128(%rcx),%xmm1,%xmm1386vaesenc 144(%rcx),%xmm1,%xmm1387vaesenclast 160(%rcx),%xmm1,%xmm1388vpxor %xmm9,%xmm1,%xmm1389vmovdqu %xmm1,(%rsi)390addq $0x10,%rsi391vmovdqa %xmm1,%xmm8392vextracti32x4 $0x1,%zmm9,%xmm0393andq $0xf,%rdx394je .L_ret_hEgxyDlCngwrfFe395jmp .L_steal_cipher_hEgxyDlCngwrfFe396397398.L_start_by16_hEgxyDlCngwrfFe:399vbroadcasti32x4 (%rsp),%zmm0400vbroadcasti32x4 shufb_15_7(%rip),%zmm8401movq $0xaa,%r8402kmovq %r8,%k2403vpshufb %zmm8,%zmm0,%zmm1404vpsllvq const_dq3210(%rip),%zmm0,%zmm4405vpsrlvq const_dq5678(%rip),%zmm1,%zmm2406vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3407vpxorq %zmm2,%zmm4,%zmm4{%k2}408vpxord %zmm4,%zmm3,%zmm9409vpsllvq const_dq7654(%rip),%zmm0,%zmm5410vpsrlvq const_dq1234(%rip),%zmm1,%zmm6411vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7412vpxorq %zmm6,%zmm5,%zmm5{%k2}413vpxord %zmm5,%zmm7,%zmm10414vpsrldq $0xf,%zmm9,%zmm13415vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14416vpslldq $0x1,%zmm9,%zmm11417vpxord %zmm14,%zmm11,%zmm11418vpsrldq $0xf,%zmm10,%zmm15419vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16420vpslldq $0x1,%zmm10,%zmm12421vpxord %zmm16,%zmm12,%zmm12422423.L_main_loop_run_16_hEgxyDlCngwrfFe:424vmovdqu8 (%rdi),%zmm1425vmovdqu8 64(%rdi),%zmm2426vmovdqu8 128(%rdi),%zmm3427vmovdqu8 192(%rdi),%zmm4428addq $0x100,%rdi429vpxorq %zmm9,%zmm1,%zmm1430vpxorq %zmm10,%zmm2,%zmm2431vpxorq %zmm11,%zmm3,%zmm3432vpxorq %zmm12,%zmm4,%zmm4433vbroadcasti32x4 (%rcx),%zmm0434vpxorq %zmm0,%zmm1,%zmm1435vpxorq %zmm0,%zmm2,%zmm2436vpxorq %zmm0,%zmm3,%zmm3437vpxorq %zmm0,%zmm4,%zmm4438vpsrldq $0xf,%zmm11,%zmm13439vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14440vpslldq $0x1,%zmm11,%zmm15441vpxord %zmm14,%zmm15,%zmm15442vbroadcasti32x4 16(%rcx),%zmm0443vaesenc %zmm0,%zmm1,%zmm1444vaesenc %zmm0,%zmm2,%zmm2445vaesenc %zmm0,%zmm3,%zmm3446vaesenc %zmm0,%zmm4,%zmm4447vbroadcasti32x4 32(%rcx),%zmm0448vaesenc %zmm0,%zmm1,%zmm1449vaesenc %zmm0,%zmm2,%zmm2450vaesenc %zmm0,%zmm3,%zmm3451vaesenc %zmm0,%zmm4,%zmm4452vbroadcasti32x4 48(%rcx),%zmm0453vaesenc %zmm0,%zmm1,%zmm1454vaesenc %zmm0,%zmm2,%zmm2455vaesenc %zmm0,%zmm3,%zmm3456vaesenc %zmm0,%zmm4,%zmm4457vpsrldq $0xf,%zmm12,%zmm13458vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14459vpslldq $0x1,%zmm12,%zmm16460vpxord %zmm14,%zmm16,%zmm16461vbroadcasti32x4 64(%rcx),%zmm0462vaesenc %zmm0,%zmm1,%zmm1463vaesenc %zmm0,%zmm2,%zmm2464vaesenc %zmm0,%zmm3,%zmm3465vaesenc %zmm0,%zmm4,%zmm4466vbroadcasti32x4 80(%rcx),%zmm0467vaesenc %zmm0,%zmm1,%zmm1468vaesenc %zmm0,%zmm2,%zmm2469vaesenc %zmm0,%zmm3,%zmm3470vaesenc %zmm0,%zmm4,%zmm4471vbroadcasti32x4 96(%rcx),%zmm0472vaesenc %zmm0,%zmm1,%zmm1473vaesenc %zmm0,%zmm2,%zmm2474vaesenc %zmm0,%zmm3,%zmm3475vaesenc %zmm0,%zmm4,%zmm4476vpsrldq $0xf,%zmm15,%zmm13477vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14478vpslldq $0x1,%zmm15,%zmm17479vpxord %zmm14,%zmm17,%zmm17480vbroadcasti32x4 112(%rcx),%zmm0481vaesenc %zmm0,%zmm1,%zmm1482vaesenc %zmm0,%zmm2,%zmm2483vaesenc %zmm0,%zmm3,%zmm3484vaesenc %zmm0,%zmm4,%zmm4485vbroadcasti32x4 128(%rcx),%zmm0486vaesenc %zmm0,%zmm1,%zmm1487vaesenc %zmm0,%zmm2,%zmm2488vaesenc %zmm0,%zmm3,%zmm3489vaesenc %zmm0,%zmm4,%zmm4490vbroadcasti32x4 144(%rcx),%zmm0491vaesenc %zmm0,%zmm1,%zmm1492vaesenc %zmm0,%zmm2,%zmm2493vaesenc %zmm0,%zmm3,%zmm3494vaesenc %zmm0,%zmm4,%zmm4495vpsrldq $0xf,%zmm16,%zmm13496vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14497vpslldq $0x1,%zmm16,%zmm18498vpxord %zmm14,%zmm18,%zmm18499vbroadcasti32x4 160(%rcx),%zmm0500vaesenclast %zmm0,%zmm1,%zmm1501vaesenclast %zmm0,%zmm2,%zmm2502vaesenclast %zmm0,%zmm3,%zmm3503vaesenclast %zmm0,%zmm4,%zmm4504vpxorq %zmm9,%zmm1,%zmm1505vpxorq %zmm10,%zmm2,%zmm2506vpxorq %zmm11,%zmm3,%zmm3507vpxorq %zmm12,%zmm4,%zmm4508509vmovdqa32 %zmm15,%zmm9510vmovdqa32 %zmm16,%zmm10511vmovdqa32 %zmm17,%zmm11512vmovdqa32 %zmm18,%zmm12513vmovdqu8 %zmm1,(%rsi)514vmovdqu8 %zmm2,64(%rsi)515vmovdqu8 %zmm3,128(%rsi)516vmovdqu8 %zmm4,192(%rsi)517addq $0x100,%rsi518subq $0x100,%rdx519cmpq $0x100,%rdx520jae .L_main_loop_run_16_hEgxyDlCngwrfFe521cmpq $0x80,%rdx522jae .L_main_loop_run_8_hEgxyDlCngwrfFe523vextracti32x4 $0x3,%zmm4,%xmm0524jmp .L_do_n_blocks_hEgxyDlCngwrfFe525526.L_start_by8_hEgxyDlCngwrfFe:527vbroadcasti32x4 (%rsp),%zmm0528vbroadcasti32x4 shufb_15_7(%rip),%zmm8529movq $0xaa,%r8530kmovq %r8,%k2531vpshufb %zmm8,%zmm0,%zmm1532vpsllvq const_dq3210(%rip),%zmm0,%zmm4533vpsrlvq const_dq5678(%rip),%zmm1,%zmm2534vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3535vpxorq %zmm2,%zmm4,%zmm4{%k2}536vpxord %zmm4,%zmm3,%zmm9537vpsllvq const_dq7654(%rip),%zmm0,%zmm5538vpsrlvq const_dq1234(%rip),%zmm1,%zmm6539vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7540vpxorq %zmm6,%zmm5,%zmm5{%k2}541vpxord %zmm5,%zmm7,%zmm10542543.L_main_loop_run_8_hEgxyDlCngwrfFe:544vmovdqu8 (%rdi),%zmm1545vmovdqu8 64(%rdi),%zmm2546addq $0x80,%rdi547vbroadcasti32x4 (%rcx),%zmm0548vpternlogq $0x96,%zmm0,%zmm9,%zmm1549vpternlogq $0x96,%zmm0,%zmm10,%zmm2550vpsrldq $0xf,%zmm9,%zmm13551vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14552vpslldq $0x1,%zmm9,%zmm15553vpxord %zmm14,%zmm15,%zmm15554vbroadcasti32x4 16(%rcx),%zmm0555vaesenc %zmm0,%zmm1,%zmm1556vaesenc %zmm0,%zmm2,%zmm2557558559vbroadcasti32x4 32(%rcx),%zmm0560vaesenc %zmm0,%zmm1,%zmm1561vaesenc %zmm0,%zmm2,%zmm2562563564vbroadcasti32x4 48(%rcx),%zmm0565vaesenc %zmm0,%zmm1,%zmm1566vaesenc %zmm0,%zmm2,%zmm2567vpsrldq $0xf,%zmm10,%zmm13568vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14569vpslldq $0x1,%zmm10,%zmm16570vpxord %zmm14,%zmm16,%zmm16571572vbroadcasti32x4 64(%rcx),%zmm0573vaesenc %zmm0,%zmm1,%zmm1574vaesenc %zmm0,%zmm2,%zmm2575576577vbroadcasti32x4 80(%rcx),%zmm0578vaesenc %zmm0,%zmm1,%zmm1579vaesenc %zmm0,%zmm2,%zmm2580581582vbroadcasti32x4 96(%rcx),%zmm0583vaesenc %zmm0,%zmm1,%zmm1584vaesenc %zmm0,%zmm2,%zmm2585586587vbroadcasti32x4 112(%rcx),%zmm0588vaesenc %zmm0,%zmm1,%zmm1589vaesenc %zmm0,%zmm2,%zmm2590591592vbroadcasti32x4 128(%rcx),%zmm0593vaesenc %zmm0,%zmm1,%zmm1594vaesenc %zmm0,%zmm2,%zmm2595596597vbroadcasti32x4 144(%rcx),%zmm0598vaesenc %zmm0,%zmm1,%zmm1599vaesenc %zmm0,%zmm2,%zmm2600601vbroadcasti32x4 160(%rcx),%zmm0602vaesenclast %zmm0,%zmm1,%zmm1603vaesenclast %zmm0,%zmm2,%zmm2604vpxorq %zmm9,%zmm1,%zmm1605vpxorq %zmm10,%zmm2,%zmm2606vmovdqa32 %zmm15,%zmm9607vmovdqa32 %zmm16,%zmm10608vmovdqu8 %zmm1,(%rsi)609vmovdqu8 %zmm2,64(%rsi)610addq $0x80,%rsi611subq $0x80,%rdx612cmpq $0x80,%rdx613jae .L_main_loop_run_8_hEgxyDlCngwrfFe614vextracti32x4 $0x3,%zmm2,%xmm0615jmp .L_do_n_blocks_hEgxyDlCngwrfFe616617.L_steal_cipher_hEgxyDlCngwrfFe:618vmovdqa %xmm8,%xmm2619leaq vpshufb_shf_table(%rip),%rax620vmovdqu (%rax,%rdx,1),%xmm10621vpshufb %xmm10,%xmm8,%xmm8622vmovdqu -16(%rdi,%rdx,1),%xmm3623vmovdqu %xmm8,-16(%rsi,%rdx,1)624leaq vpshufb_shf_table(%rip),%rax625addq $16,%rax626subq %rdx,%rax627vmovdqu (%rax),%xmm10628vpxor mask1(%rip),%xmm10,%xmm10629vpshufb %xmm10,%xmm3,%xmm3630vpblendvb %xmm10,%xmm2,%xmm3,%xmm3631vpxor %xmm0,%xmm3,%xmm8632vpxor (%rcx),%xmm8,%xmm8633vaesenc 16(%rcx),%xmm8,%xmm8634vaesenc 32(%rcx),%xmm8,%xmm8635vaesenc 48(%rcx),%xmm8,%xmm8636vaesenc 64(%rcx),%xmm8,%xmm8637vaesenc 80(%rcx),%xmm8,%xmm8638vaesenc 96(%rcx),%xmm8,%xmm8639vaesenc 112(%rcx),%xmm8,%xmm8640vaesenc 128(%rcx),%xmm8,%xmm8641vaesenc 144(%rcx),%xmm8,%xmm8642vaesenclast 160(%rcx),%xmm8,%xmm8643vpxor %xmm0,%xmm8,%xmm8644vmovdqu %xmm8,-16(%rsi)645.L_ret_hEgxyDlCngwrfFe:646movq 128(%rsp),%rbx647xorq %r8,%r8648movq %r8,128(%rsp)649650vpxorq %zmm0,%zmm0,%zmm0651movq %rbp,%rsp652popq %rbp653vzeroupper654.byte 0xf3,0xc3655656.L_less_than_128_bytes_hEgxyDlCngwrfFe:657vpbroadcastq %r10,%zmm25658cmpq $0x10,%rdx659jb .L_ret_hEgxyDlCngwrfFe660vbroadcasti32x4 (%rsp),%zmm0661vbroadcasti32x4 shufb_15_7(%rip),%zmm8662movl $0xaa,%r8d663kmovq %r8,%k2664movq %rdx,%r8665andq $0x70,%r8666cmpq $0x60,%r8667je .L_num_blocks_is_6_hEgxyDlCngwrfFe668cmpq $0x50,%r8669je .L_num_blocks_is_5_hEgxyDlCngwrfFe670cmpq $0x40,%r8671je .L_num_blocks_is_4_hEgxyDlCngwrfFe672cmpq $0x30,%r8673je .L_num_blocks_is_3_hEgxyDlCngwrfFe674cmpq $0x20,%r8675je .L_num_blocks_is_2_hEgxyDlCngwrfFe676cmpq $0x10,%r8677je .L_num_blocks_is_1_hEgxyDlCngwrfFe678679.L_num_blocks_is_7_hEgxyDlCngwrfFe:680vpshufb %zmm8,%zmm0,%zmm1681vpsllvq const_dq3210(%rip),%zmm0,%zmm4682vpsrlvq const_dq5678(%rip),%zmm1,%zmm2683vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3684vpxorq %zmm2,%zmm4,%zmm4{%k2}685vpxord %zmm4,%zmm3,%zmm9686vpsllvq const_dq7654(%rip),%zmm0,%zmm5687vpsrlvq const_dq1234(%rip),%zmm1,%zmm6688vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7689vpxorq %zmm6,%zmm5,%zmm5{%k2}690vpxord %zmm5,%zmm7,%zmm10691movq $0x0000ffffffffffff,%r8692kmovq %r8,%k1693vmovdqu8 0(%rdi),%zmm1694vmovdqu8 64(%rdi),%zmm2{%k1}695696addq $0x70,%rdi697vbroadcasti32x4 (%rcx),%zmm0698vpternlogq $0x96,%zmm0,%zmm9,%zmm1699vpternlogq $0x96,%zmm0,%zmm10,%zmm2700vbroadcasti32x4 16(%rcx),%zmm0701vaesenc %zmm0,%zmm1,%zmm1702vaesenc %zmm0,%zmm2,%zmm2703704705vbroadcasti32x4 32(%rcx),%zmm0706vaesenc %zmm0,%zmm1,%zmm1707vaesenc %zmm0,%zmm2,%zmm2708709710vbroadcasti32x4 48(%rcx),%zmm0711vaesenc %zmm0,%zmm1,%zmm1712vaesenc %zmm0,%zmm2,%zmm2713714vbroadcasti32x4 64(%rcx),%zmm0715vaesenc %zmm0,%zmm1,%zmm1716vaesenc %zmm0,%zmm2,%zmm2717718719vbroadcasti32x4 80(%rcx),%zmm0720vaesenc %zmm0,%zmm1,%zmm1721vaesenc %zmm0,%zmm2,%zmm2722723724vbroadcasti32x4 96(%rcx),%zmm0725vaesenc %zmm0,%zmm1,%zmm1726vaesenc %zmm0,%zmm2,%zmm2727728729vbroadcasti32x4 112(%rcx),%zmm0730vaesenc %zmm0,%zmm1,%zmm1731vaesenc %zmm0,%zmm2,%zmm2732733734vbroadcasti32x4 128(%rcx),%zmm0735vaesenc %zmm0,%zmm1,%zmm1736vaesenc %zmm0,%zmm2,%zmm2737738739vbroadcasti32x4 144(%rcx),%zmm0740vaesenc %zmm0,%zmm1,%zmm1741vaesenc %zmm0,%zmm2,%zmm2742743vbroadcasti32x4 160(%rcx),%zmm0744vaesenclast %zmm0,%zmm1,%zmm1745vaesenclast %zmm0,%zmm2,%zmm2746vpxorq %zmm9,%zmm1,%zmm1747vpxorq %zmm10,%zmm2,%zmm2748vmovdqu8 %zmm1,0(%rsi)749vmovdqu8 %zmm2,64(%rsi){%k1}750addq $0x70,%rsi751vextracti32x4 $0x2,%zmm2,%xmm8752vextracti32x4 $0x3,%zmm10,%xmm0753andq $0xf,%rdx754je .L_ret_hEgxyDlCngwrfFe755jmp .L_steal_cipher_hEgxyDlCngwrfFe756.L_num_blocks_is_6_hEgxyDlCngwrfFe:757vpshufb %zmm8,%zmm0,%zmm1758vpsllvq const_dq3210(%rip),%zmm0,%zmm4759vpsrlvq const_dq5678(%rip),%zmm1,%zmm2760vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3761vpxorq %zmm2,%zmm4,%zmm4{%k2}762vpxord %zmm4,%zmm3,%zmm9763vpsllvq const_dq7654(%rip),%zmm0,%zmm5764vpsrlvq const_dq1234(%rip),%zmm1,%zmm6765vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7766vpxorq %zmm6,%zmm5,%zmm5{%k2}767vpxord %zmm5,%zmm7,%zmm10768vmovdqu8 0(%rdi),%zmm1769vmovdqu8 64(%rdi),%ymm2770addq $96,%rdi771vbroadcasti32x4 (%rcx),%zmm0772vpternlogq $0x96,%zmm0,%zmm9,%zmm1773vpternlogq $0x96,%zmm0,%zmm10,%zmm2774vbroadcasti32x4 16(%rcx),%zmm0775vaesenc %zmm0,%zmm1,%zmm1776vaesenc %zmm0,%zmm2,%zmm2777778779vbroadcasti32x4 32(%rcx),%zmm0780vaesenc %zmm0,%zmm1,%zmm1781vaesenc %zmm0,%zmm2,%zmm2782783784vbroadcasti32x4 48(%rcx),%zmm0785vaesenc %zmm0,%zmm1,%zmm1786vaesenc %zmm0,%zmm2,%zmm2787788vbroadcasti32x4 64(%rcx),%zmm0789vaesenc %zmm0,%zmm1,%zmm1790vaesenc %zmm0,%zmm2,%zmm2791792793vbroadcasti32x4 80(%rcx),%zmm0794vaesenc %zmm0,%zmm1,%zmm1795vaesenc %zmm0,%zmm2,%zmm2796797798vbroadcasti32x4 96(%rcx),%zmm0799vaesenc %zmm0,%zmm1,%zmm1800vaesenc %zmm0,%zmm2,%zmm2801802803vbroadcasti32x4 112(%rcx),%zmm0804vaesenc %zmm0,%zmm1,%zmm1805vaesenc %zmm0,%zmm2,%zmm2806807808vbroadcasti32x4 128(%rcx),%zmm0809vaesenc %zmm0,%zmm1,%zmm1810vaesenc %zmm0,%zmm2,%zmm2811812813vbroadcasti32x4 144(%rcx),%zmm0814vaesenc %zmm0,%zmm1,%zmm1815vaesenc %zmm0,%zmm2,%zmm2816817vbroadcasti32x4 160(%rcx),%zmm0818vaesenclast %zmm0,%zmm1,%zmm1819vaesenclast %zmm0,%zmm2,%zmm2820vpxorq %zmm9,%zmm1,%zmm1821vpxorq %zmm10,%zmm2,%zmm2822vmovdqu8 %zmm1,0(%rsi)823vmovdqu8 %ymm2,64(%rsi)824addq $96,%rsi825826vextracti32x4 $0x1,%ymm2,%xmm8827vextracti32x4 $0x2,%zmm10,%xmm0828andq $0xf,%rdx829je .L_ret_hEgxyDlCngwrfFe830jmp .L_steal_cipher_hEgxyDlCngwrfFe831.L_num_blocks_is_5_hEgxyDlCngwrfFe:832vpshufb %zmm8,%zmm0,%zmm1833vpsllvq const_dq3210(%rip),%zmm0,%zmm4834vpsrlvq const_dq5678(%rip),%zmm1,%zmm2835vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3836vpxorq %zmm2,%zmm4,%zmm4{%k2}837vpxord %zmm4,%zmm3,%zmm9838vpsllvq const_dq7654(%rip),%zmm0,%zmm5839vpsrlvq const_dq1234(%rip),%zmm1,%zmm6840vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7841vpxorq %zmm6,%zmm5,%zmm5{%k2}842vpxord %zmm5,%zmm7,%zmm10843vmovdqu8 0(%rdi),%zmm1844vmovdqu8 64(%rdi),%xmm2845addq $80,%rdi846vbroadcasti32x4 (%rcx),%zmm0847vpternlogq $0x96,%zmm0,%zmm9,%zmm1848vpternlogq $0x96,%zmm0,%zmm10,%zmm2849vbroadcasti32x4 16(%rcx),%zmm0850vaesenc %zmm0,%zmm1,%zmm1851vaesenc %zmm0,%zmm2,%zmm2852853854vbroadcasti32x4 32(%rcx),%zmm0855vaesenc %zmm0,%zmm1,%zmm1856vaesenc %zmm0,%zmm2,%zmm2857858859vbroadcasti32x4 48(%rcx),%zmm0860vaesenc %zmm0,%zmm1,%zmm1861vaesenc %zmm0,%zmm2,%zmm2862863vbroadcasti32x4 64(%rcx),%zmm0864vaesenc %zmm0,%zmm1,%zmm1865vaesenc %zmm0,%zmm2,%zmm2866867868vbroadcasti32x4 80(%rcx),%zmm0869vaesenc %zmm0,%zmm1,%zmm1870vaesenc %zmm0,%zmm2,%zmm2871872873vbroadcasti32x4 96(%rcx),%zmm0874vaesenc %zmm0,%zmm1,%zmm1875vaesenc %zmm0,%zmm2,%zmm2876877878vbroadcasti32x4 112(%rcx),%zmm0879vaesenc %zmm0,%zmm1,%zmm1880vaesenc %zmm0,%zmm2,%zmm2881882883vbroadcasti32x4 128(%rcx),%zmm0884vaesenc %zmm0,%zmm1,%zmm1885vaesenc %zmm0,%zmm2,%zmm2886887888vbroadcasti32x4 144(%rcx),%zmm0889vaesenc %zmm0,%zmm1,%zmm1890vaesenc %zmm0,%zmm2,%zmm2891892vbroadcasti32x4 160(%rcx),%zmm0893vaesenclast %zmm0,%zmm1,%zmm1894vaesenclast %zmm0,%zmm2,%zmm2895vpxorq %zmm9,%zmm1,%zmm1896vpxorq %zmm10,%zmm2,%zmm2897vmovdqu8 %zmm1,0(%rsi)898vmovdqu8 %xmm2,64(%rsi)899addq $80,%rsi900901vmovdqa %xmm2,%xmm8902vextracti32x4 $0x1,%zmm10,%xmm0903andq $0xf,%rdx904je .L_ret_hEgxyDlCngwrfFe905jmp .L_steal_cipher_hEgxyDlCngwrfFe906.L_num_blocks_is_4_hEgxyDlCngwrfFe:907vpshufb %zmm8,%zmm0,%zmm1908vpsllvq const_dq3210(%rip),%zmm0,%zmm4909vpsrlvq const_dq5678(%rip),%zmm1,%zmm2910vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3911vpxorq %zmm2,%zmm4,%zmm4{%k2}912vpxord %zmm4,%zmm3,%zmm9913vpsllvq const_dq7654(%rip),%zmm0,%zmm5914vpsrlvq const_dq1234(%rip),%zmm1,%zmm6915vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7916vpxorq %zmm6,%zmm5,%zmm5{%k2}917vpxord %zmm5,%zmm7,%zmm10918vmovdqu8 0(%rdi),%zmm1919addq $64,%rdi920vbroadcasti32x4 (%rcx),%zmm0921vpternlogq $0x96,%zmm0,%zmm9,%zmm1922vbroadcasti32x4 16(%rcx),%zmm0923vaesenc %zmm0,%zmm1,%zmm1924vbroadcasti32x4 32(%rcx),%zmm0925vaesenc %zmm0,%zmm1,%zmm1926vbroadcasti32x4 48(%rcx),%zmm0927vaesenc %zmm0,%zmm1,%zmm1928vbroadcasti32x4 64(%rcx),%zmm0929vaesenc %zmm0,%zmm1,%zmm1930vbroadcasti32x4 80(%rcx),%zmm0931vaesenc %zmm0,%zmm1,%zmm1932vbroadcasti32x4 96(%rcx),%zmm0933vaesenc %zmm0,%zmm1,%zmm1934vbroadcasti32x4 112(%rcx),%zmm0935vaesenc %zmm0,%zmm1,%zmm1936vbroadcasti32x4 128(%rcx),%zmm0937vaesenc %zmm0,%zmm1,%zmm1938vbroadcasti32x4 144(%rcx),%zmm0939vaesenc %zmm0,%zmm1,%zmm1940vbroadcasti32x4 160(%rcx),%zmm0941vaesenclast %zmm0,%zmm1,%zmm1942vpxorq %zmm9,%zmm1,%zmm1943vmovdqu8 %zmm1,0(%rsi)944addq $64,%rsi945vextracti32x4 $0x3,%zmm1,%xmm8946vmovdqa %xmm10,%xmm0947andq $0xf,%rdx948je .L_ret_hEgxyDlCngwrfFe949jmp .L_steal_cipher_hEgxyDlCngwrfFe950.L_num_blocks_is_3_hEgxyDlCngwrfFe:951vpshufb %zmm8,%zmm0,%zmm1952vpsllvq const_dq3210(%rip),%zmm0,%zmm4953vpsrlvq const_dq5678(%rip),%zmm1,%zmm2954vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3955vpxorq %zmm2,%zmm4,%zmm4{%k2}956vpxord %zmm4,%zmm3,%zmm9957movq $0x0000ffffffffffff,%r8958kmovq %r8,%k1959vmovdqu8 0(%rdi),%zmm1{%k1}960addq $48,%rdi961vbroadcasti32x4 (%rcx),%zmm0962vpternlogq $0x96,%zmm0,%zmm9,%zmm1963vbroadcasti32x4 16(%rcx),%zmm0964vaesenc %zmm0,%zmm1,%zmm1965vbroadcasti32x4 32(%rcx),%zmm0966vaesenc %zmm0,%zmm1,%zmm1967vbroadcasti32x4 48(%rcx),%zmm0968vaesenc %zmm0,%zmm1,%zmm1969vbroadcasti32x4 64(%rcx),%zmm0970vaesenc %zmm0,%zmm1,%zmm1971vbroadcasti32x4 80(%rcx),%zmm0972vaesenc %zmm0,%zmm1,%zmm1973vbroadcasti32x4 96(%rcx),%zmm0974vaesenc %zmm0,%zmm1,%zmm1975vbroadcasti32x4 112(%rcx),%zmm0976vaesenc %zmm0,%zmm1,%zmm1977vbroadcasti32x4 128(%rcx),%zmm0978vaesenc %zmm0,%zmm1,%zmm1979vbroadcasti32x4 144(%rcx),%zmm0980vaesenc %zmm0,%zmm1,%zmm1981vbroadcasti32x4 160(%rcx),%zmm0982vaesenclast %zmm0,%zmm1,%zmm1983vpxorq %zmm9,%zmm1,%zmm1984vmovdqu8 %zmm1,0(%rsi){%k1}985addq $48,%rsi986vextracti32x4 $2,%zmm1,%xmm8987vextracti32x4 $3,%zmm9,%xmm0988andq $0xf,%rdx989je .L_ret_hEgxyDlCngwrfFe990jmp .L_steal_cipher_hEgxyDlCngwrfFe991.L_num_blocks_is_2_hEgxyDlCngwrfFe:992vpshufb %zmm8,%zmm0,%zmm1993vpsllvq const_dq3210(%rip),%zmm0,%zmm4994vpsrlvq const_dq5678(%rip),%zmm1,%zmm2995vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3996vpxorq %zmm2,%zmm4,%zmm4{%k2}997vpxord %zmm4,%zmm3,%zmm9998999vmovdqu8 0(%rdi),%ymm11000addq $32,%rdi1001vbroadcasti32x4 (%rcx),%ymm01002vpternlogq $0x96,%ymm0,%ymm9,%ymm11003vbroadcasti32x4 16(%rcx),%ymm01004vaesenc %ymm0,%ymm1,%ymm11005vbroadcasti32x4 32(%rcx),%ymm01006vaesenc %ymm0,%ymm1,%ymm11007vbroadcasti32x4 48(%rcx),%ymm01008vaesenc %ymm0,%ymm1,%ymm11009vbroadcasti32x4 64(%rcx),%ymm01010vaesenc %ymm0,%ymm1,%ymm11011vbroadcasti32x4 80(%rcx),%ymm01012vaesenc %ymm0,%ymm1,%ymm11013vbroadcasti32x4 96(%rcx),%ymm01014vaesenc %ymm0,%ymm1,%ymm11015vbroadcasti32x4 112(%rcx),%ymm01016vaesenc %ymm0,%ymm1,%ymm11017vbroadcasti32x4 128(%rcx),%ymm01018vaesenc %ymm0,%ymm1,%ymm11019vbroadcasti32x4 144(%rcx),%ymm01020vaesenc %ymm0,%ymm1,%ymm11021vbroadcasti32x4 160(%rcx),%ymm01022vaesenclast %ymm0,%ymm1,%ymm11023vpxorq %ymm9,%ymm1,%ymm11024vmovdqu8 %ymm1,0(%rsi)1025addq $32,%rsi10261027vextracti32x4 $1,%ymm1,%xmm81028vextracti32x4 $2,%zmm9,%xmm01029andq $0xf,%rdx1030je .L_ret_hEgxyDlCngwrfFe1031jmp .L_steal_cipher_hEgxyDlCngwrfFe1032.L_num_blocks_is_1_hEgxyDlCngwrfFe:1033vpshufb %zmm8,%zmm0,%zmm11034vpsllvq const_dq3210(%rip),%zmm0,%zmm41035vpsrlvq const_dq5678(%rip),%zmm1,%zmm21036vpclmulqdq $0x00,%zmm25,%zmm2,%zmm31037vpxorq %zmm2,%zmm4,%zmm4{%k2}1038vpxord %zmm4,%zmm3,%zmm910391040vmovdqu8 0(%rdi),%xmm11041addq $16,%rdi1042vbroadcasti32x4 (%rcx),%ymm01043vpternlogq $0x96,%ymm0,%ymm9,%ymm11044vbroadcasti32x4 16(%rcx),%ymm01045vaesenc %ymm0,%ymm1,%ymm11046vbroadcasti32x4 32(%rcx),%ymm01047vaesenc %ymm0,%ymm1,%ymm11048vbroadcasti32x4 48(%rcx),%ymm01049vaesenc %ymm0,%ymm1,%ymm11050vbroadcasti32x4 64(%rcx),%ymm01051vaesenc %ymm0,%ymm1,%ymm11052vbroadcasti32x4 80(%rcx),%ymm01053vaesenc %ymm0,%ymm1,%ymm11054vbroadcasti32x4 96(%rcx),%ymm01055vaesenc %ymm0,%ymm1,%ymm11056vbroadcasti32x4 112(%rcx),%ymm01057vaesenc %ymm0,%ymm1,%ymm11058vbroadcasti32x4 128(%rcx),%ymm01059vaesenc %ymm0,%ymm1,%ymm11060vbroadcasti32x4 144(%rcx),%ymm01061vaesenc %ymm0,%ymm1,%ymm11062vbroadcasti32x4 160(%rcx),%ymm01063vaesenclast %ymm0,%ymm1,%ymm11064vpxorq %ymm9,%ymm1,%ymm11065vmovdqu8 %xmm1,0(%rsi)1066addq $16,%rsi10671068vmovdqa %xmm1,%xmm81069vextracti32x4 $1,%zmm9,%xmm01070andq $0xf,%rdx1071je .L_ret_hEgxyDlCngwrfFe1072jmp .L_steal_cipher_hEgxyDlCngwrfFe1073.cfi_endproc1074.globl aesni_xts_128_decrypt_avx5121075.hidden aesni_xts_128_decrypt_avx5121076.type aesni_xts_128_decrypt_avx512,@function1077.align 321078aesni_xts_128_decrypt_avx512:1079.cfi_startproc1080.byte 243,15,30,2501081pushq %rbp1082movq %rsp,%rbp1083subq $136,%rsp1084andq $0xffffffffffffffc0,%rsp1085movq %rbx,128(%rsp)1086movq $0x87,%r101087vmovdqu (%r9),%xmm11088vpxor (%r8),%xmm1,%xmm11089vaesenc 16(%r8),%xmm1,%xmm11090vaesenc 32(%r8),%xmm1,%xmm11091vaesenc 48(%r8),%xmm1,%xmm11092vaesenc 64(%r8),%xmm1,%xmm11093vaesenc 80(%r8),%xmm1,%xmm11094vaesenc 96(%r8),%xmm1,%xmm11095vaesenc 112(%r8),%xmm1,%xmm11096vaesenc 128(%r8),%xmm1,%xmm11097vaesenc 144(%r8),%xmm1,%xmm11098vaesenclast 160(%r8),%xmm1,%xmm11099vmovdqa %xmm1,(%rsp)11001101cmpq $0x80,%rdx1102jb .L_less_than_128_bytes_amivrujEyduiFoi1103vpbroadcastq %r10,%zmm251104cmpq $0x100,%rdx1105jge .L_start_by16_amivrujEyduiFoi1106jmp .L_start_by8_amivrujEyduiFoi11071108.L_do_n_blocks_amivrujEyduiFoi:1109cmpq $0x0,%rdx1110je .L_ret_amivrujEyduiFoi1111cmpq $0x70,%rdx1112jge .L_remaining_num_blocks_is_7_amivrujEyduiFoi1113cmpq $0x60,%rdx1114jge .L_remaining_num_blocks_is_6_amivrujEyduiFoi1115cmpq $0x50,%rdx1116jge .L_remaining_num_blocks_is_5_amivrujEyduiFoi1117cmpq $0x40,%rdx1118jge .L_remaining_num_blocks_is_4_amivrujEyduiFoi1119cmpq $0x30,%rdx1120jge .L_remaining_num_blocks_is_3_amivrujEyduiFoi1121cmpq $0x20,%rdx1122jge .L_remaining_num_blocks_is_2_amivrujEyduiFoi1123cmpq $0x10,%rdx1124jge .L_remaining_num_blocks_is_1_amivrujEyduiFoi112511261127vmovdqu %xmm5,%xmm111281129vpxor %xmm9,%xmm1,%xmm11130vmovdqu (%rcx),%xmm01131vpxor %xmm0,%xmm1,%xmm11132vmovdqu 16(%rcx),%xmm01133vaesdec %xmm0,%xmm1,%xmm11134vmovdqu 32(%rcx),%xmm01135vaesdec %xmm0,%xmm1,%xmm11136vmovdqu 48(%rcx),%xmm01137vaesdec %xmm0,%xmm1,%xmm11138vmovdqu 64(%rcx),%xmm01139vaesdec %xmm0,%xmm1,%xmm11140vmovdqu 80(%rcx),%xmm01141vaesdec %xmm0,%xmm1,%xmm11142vmovdqu 96(%rcx),%xmm01143vaesdec %xmm0,%xmm1,%xmm11144vmovdqu 112(%rcx),%xmm01145vaesdec %xmm0,%xmm1,%xmm11146vmovdqu 128(%rcx),%xmm01147vaesdec %xmm0,%xmm1,%xmm11148vmovdqu 144(%rcx),%xmm01149vaesdec %xmm0,%xmm1,%xmm11150vmovdqu 160(%rcx),%xmm01151vaesdeclast %xmm0,%xmm1,%xmm11152vpxor %xmm9,%xmm1,%xmm11153vmovdqu %xmm1,-16(%rsi)1154vmovdqa %xmm1,%xmm8115511561157movq $0x1,%r81158kmovq %r8,%k11159vpsllq $0x3f,%xmm9,%xmm131160vpsraq $0x3f,%xmm13,%xmm141161vpandq %xmm25,%xmm14,%xmm51162vpxorq %xmm5,%xmm9,%xmm9{%k1}1163vpsrldq $0x8,%xmm9,%xmm101164.byte 98, 211, 181, 8, 115, 194, 11165vpslldq $0x8,%xmm13,%xmm131166vpxorq %xmm13,%xmm0,%xmm01167jmp .L_steal_cipher_amivrujEyduiFoi11681169.L_remaining_num_blocks_is_7_amivrujEyduiFoi:1170movq $0xffffffffffffffff,%r81171shrq $0x10,%r81172kmovq %r8,%k11173vmovdqu8 (%rdi),%zmm11174vmovdqu8 64(%rdi),%zmm2{%k1}1175addq $0x70,%rdi1176andq $0xf,%rdx1177je .L_done_7_remain_amivrujEyduiFoi1178vextracti32x4 $0x2,%zmm10,%xmm121179vextracti32x4 $0x3,%zmm10,%xmm131180vinserti32x4 $0x2,%xmm13,%zmm10,%zmm1011811182vpxorq %zmm9,%zmm1,%zmm11183vpxorq %zmm10,%zmm2,%zmm2118411851186vbroadcasti32x4 (%rcx),%zmm01187vpxorq %zmm0,%zmm1,%zmm11188vpxorq %zmm0,%zmm2,%zmm21189vbroadcasti32x4 16(%rcx),%zmm01190vaesdec %zmm0,%zmm1,%zmm11191vaesdec %zmm0,%zmm2,%zmm2119211931194vbroadcasti32x4 32(%rcx),%zmm01195vaesdec %zmm0,%zmm1,%zmm11196vaesdec %zmm0,%zmm2,%zmm2119711981199vbroadcasti32x4 48(%rcx),%zmm01200vaesdec %zmm0,%zmm1,%zmm11201vaesdec %zmm0,%zmm2,%zmm212021203vbroadcasti32x4 64(%rcx),%zmm01204vaesdec %zmm0,%zmm1,%zmm11205vaesdec %zmm0,%zmm2,%zmm2120612071208vbroadcasti32x4 80(%rcx),%zmm01209vaesdec %zmm0,%zmm1,%zmm11210vaesdec %zmm0,%zmm2,%zmm2121112121213vbroadcasti32x4 96(%rcx),%zmm01214vaesdec %zmm0,%zmm1,%zmm11215vaesdec %zmm0,%zmm2,%zmm2121612171218vbroadcasti32x4 112(%rcx),%zmm01219vaesdec %zmm0,%zmm1,%zmm11220vaesdec %zmm0,%zmm2,%zmm2122112221223vbroadcasti32x4 128(%rcx),%zmm01224vaesdec %zmm0,%zmm1,%zmm11225vaesdec %zmm0,%zmm2,%zmm2122612271228vbroadcasti32x4 144(%rcx),%zmm01229vaesdec %zmm0,%zmm1,%zmm11230vaesdec %zmm0,%zmm2,%zmm2123112321233vbroadcasti32x4 160(%rcx),%zmm01234vaesdeclast %zmm0,%zmm1,%zmm11235vaesdeclast %zmm0,%zmm2,%zmm212361237vpxorq %zmm9,%zmm1,%zmm11238vpxorq %zmm10,%zmm2,%zmm2123912401241vmovdqa32 %zmm15,%zmm91242vmovdqa32 %zmm16,%zmm101243vmovdqu8 %zmm1,(%rsi)1244vmovdqu8 %zmm2,64(%rsi){%k1}1245addq $0x70,%rsi1246vextracti32x4 $0x2,%zmm2,%xmm81247vmovdqa %xmm12,%xmm01248jmp .L_steal_cipher_amivrujEyduiFoi12491250.L_done_7_remain_amivrujEyduiFoi:12511252vpxorq %zmm9,%zmm1,%zmm11253vpxorq %zmm10,%zmm2,%zmm2125412551256vbroadcasti32x4 (%rcx),%zmm01257vpxorq %zmm0,%zmm1,%zmm11258vpxorq %zmm0,%zmm2,%zmm21259vbroadcasti32x4 16(%rcx),%zmm01260vaesdec %zmm0,%zmm1,%zmm11261vaesdec %zmm0,%zmm2,%zmm2126212631264vbroadcasti32x4 32(%rcx),%zmm01265vaesdec %zmm0,%zmm1,%zmm11266vaesdec %zmm0,%zmm2,%zmm2126712681269vbroadcasti32x4 48(%rcx),%zmm01270vaesdec %zmm0,%zmm1,%zmm11271vaesdec %zmm0,%zmm2,%zmm212721273vbroadcasti32x4 64(%rcx),%zmm01274vaesdec %zmm0,%zmm1,%zmm11275vaesdec %zmm0,%zmm2,%zmm2127612771278vbroadcasti32x4 80(%rcx),%zmm01279vaesdec %zmm0,%zmm1,%zmm11280vaesdec %zmm0,%zmm2,%zmm2128112821283vbroadcasti32x4 96(%rcx),%zmm01284vaesdec %zmm0,%zmm1,%zmm11285vaesdec %zmm0,%zmm2,%zmm2128612871288vbroadcasti32x4 112(%rcx),%zmm01289vaesdec %zmm0,%zmm1,%zmm11290vaesdec %zmm0,%zmm2,%zmm2129112921293vbroadcasti32x4 128(%rcx),%zmm01294vaesdec %zmm0,%zmm1,%zmm11295vaesdec %zmm0,%zmm2,%zmm2129612971298vbroadcasti32x4 144(%rcx),%zmm01299vaesdec %zmm0,%zmm1,%zmm11300vaesdec %zmm0,%zmm2,%zmm2130113021303vbroadcasti32x4 160(%rcx),%zmm01304vaesdeclast %zmm0,%zmm1,%zmm11305vaesdeclast %zmm0,%zmm2,%zmm213061307vpxorq %zmm9,%zmm1,%zmm11308vpxorq %zmm10,%zmm2,%zmm2130913101311vmovdqa32 %zmm15,%zmm91312vmovdqa32 %zmm16,%zmm101313vmovdqu8 %zmm1,(%rsi)1314vmovdqu8 %zmm2,64(%rsi){%k1}1315jmp .L_ret_amivrujEyduiFoi13161317.L_remaining_num_blocks_is_6_amivrujEyduiFoi:1318vmovdqu8 (%rdi),%zmm11319vmovdqu8 64(%rdi),%ymm21320addq $0x60,%rdi1321andq $0xf,%rdx1322je .L_done_6_remain_amivrujEyduiFoi1323vextracti32x4 $0x1,%zmm10,%xmm121324vextracti32x4 $0x2,%zmm10,%xmm131325vinserti32x4 $0x1,%xmm13,%zmm10,%zmm1013261327vpxorq %zmm9,%zmm1,%zmm11328vpxorq %zmm10,%zmm2,%zmm2132913301331vbroadcasti32x4 (%rcx),%zmm01332vpxorq %zmm0,%zmm1,%zmm11333vpxorq %zmm0,%zmm2,%zmm21334vbroadcasti32x4 16(%rcx),%zmm01335vaesdec %zmm0,%zmm1,%zmm11336vaesdec %zmm0,%zmm2,%zmm2133713381339vbroadcasti32x4 32(%rcx),%zmm01340vaesdec %zmm0,%zmm1,%zmm11341vaesdec %zmm0,%zmm2,%zmm2134213431344vbroadcasti32x4 48(%rcx),%zmm01345vaesdec %zmm0,%zmm1,%zmm11346vaesdec %zmm0,%zmm2,%zmm213471348vbroadcasti32x4 64(%rcx),%zmm01349vaesdec %zmm0,%zmm1,%zmm11350vaesdec %zmm0,%zmm2,%zmm2135113521353vbroadcasti32x4 80(%rcx),%zmm01354vaesdec %zmm0,%zmm1,%zmm11355vaesdec %zmm0,%zmm2,%zmm2135613571358vbroadcasti32x4 96(%rcx),%zmm01359vaesdec %zmm0,%zmm1,%zmm11360vaesdec %zmm0,%zmm2,%zmm2136113621363vbroadcasti32x4 112(%rcx),%zmm01364vaesdec %zmm0,%zmm1,%zmm11365vaesdec %zmm0,%zmm2,%zmm2136613671368vbroadcasti32x4 128(%rcx),%zmm01369vaesdec %zmm0,%zmm1,%zmm11370vaesdec %zmm0,%zmm2,%zmm2137113721373vbroadcasti32x4 144(%rcx),%zmm01374vaesdec %zmm0,%zmm1,%zmm11375vaesdec %zmm0,%zmm2,%zmm2137613771378vbroadcasti32x4 160(%rcx),%zmm01379vaesdeclast %zmm0,%zmm1,%zmm11380vaesdeclast %zmm0,%zmm2,%zmm213811382vpxorq %zmm9,%zmm1,%zmm11383vpxorq %zmm10,%zmm2,%zmm2138413851386vmovdqa32 %zmm15,%zmm91387vmovdqa32 %zmm16,%zmm101388vmovdqu8 %zmm1,(%rsi)1389vmovdqu8 %ymm2,64(%rsi)1390addq $0x60,%rsi1391vextracti32x4 $0x1,%zmm2,%xmm81392vmovdqa %xmm12,%xmm01393jmp .L_steal_cipher_amivrujEyduiFoi13941395.L_done_6_remain_amivrujEyduiFoi:13961397vpxorq %zmm9,%zmm1,%zmm11398vpxorq %zmm10,%zmm2,%zmm2139914001401vbroadcasti32x4 (%rcx),%zmm01402vpxorq %zmm0,%zmm1,%zmm11403vpxorq %zmm0,%zmm2,%zmm21404vbroadcasti32x4 16(%rcx),%zmm01405vaesdec %zmm0,%zmm1,%zmm11406vaesdec %zmm0,%zmm2,%zmm2140714081409vbroadcasti32x4 32(%rcx),%zmm01410vaesdec %zmm0,%zmm1,%zmm11411vaesdec %zmm0,%zmm2,%zmm2141214131414vbroadcasti32x4 48(%rcx),%zmm01415vaesdec %zmm0,%zmm1,%zmm11416vaesdec %zmm0,%zmm2,%zmm214171418vbroadcasti32x4 64(%rcx),%zmm01419vaesdec %zmm0,%zmm1,%zmm11420vaesdec %zmm0,%zmm2,%zmm2142114221423vbroadcasti32x4 80(%rcx),%zmm01424vaesdec %zmm0,%zmm1,%zmm11425vaesdec %zmm0,%zmm2,%zmm2142614271428vbroadcasti32x4 96(%rcx),%zmm01429vaesdec %zmm0,%zmm1,%zmm11430vaesdec %zmm0,%zmm2,%zmm2143114321433vbroadcasti32x4 112(%rcx),%zmm01434vaesdec %zmm0,%zmm1,%zmm11435vaesdec %zmm0,%zmm2,%zmm2143614371438vbroadcasti32x4 128(%rcx),%zmm01439vaesdec %zmm0,%zmm1,%zmm11440vaesdec %zmm0,%zmm2,%zmm2144114421443vbroadcasti32x4 144(%rcx),%zmm01444vaesdec %zmm0,%zmm1,%zmm11445vaesdec %zmm0,%zmm2,%zmm2144614471448vbroadcasti32x4 160(%rcx),%zmm01449vaesdeclast %zmm0,%zmm1,%zmm11450vaesdeclast %zmm0,%zmm2,%zmm214511452vpxorq %zmm9,%zmm1,%zmm11453vpxorq %zmm10,%zmm2,%zmm2145414551456vmovdqa32 %zmm15,%zmm91457vmovdqa32 %zmm16,%zmm101458vmovdqu8 %zmm1,(%rsi)1459vmovdqu8 %ymm2,64(%rsi)1460jmp .L_ret_amivrujEyduiFoi14611462.L_remaining_num_blocks_is_5_amivrujEyduiFoi:1463vmovdqu8 (%rdi),%zmm11464vmovdqu 64(%rdi),%xmm21465addq $0x50,%rdi1466andq $0xf,%rdx1467je .L_done_5_remain_amivrujEyduiFoi1468vmovdqa %xmm10,%xmm121469vextracti32x4 $0x1,%zmm10,%xmm1014701471vpxorq %zmm9,%zmm1,%zmm11472vpxorq %zmm10,%zmm2,%zmm2147314741475vbroadcasti32x4 (%rcx),%zmm01476vpxorq %zmm0,%zmm1,%zmm11477vpxorq %zmm0,%zmm2,%zmm21478vbroadcasti32x4 16(%rcx),%zmm01479vaesdec %zmm0,%zmm1,%zmm11480vaesdec %zmm0,%zmm2,%zmm2148114821483vbroadcasti32x4 32(%rcx),%zmm01484vaesdec %zmm0,%zmm1,%zmm11485vaesdec %zmm0,%zmm2,%zmm2148614871488vbroadcasti32x4 48(%rcx),%zmm01489vaesdec %zmm0,%zmm1,%zmm11490vaesdec %zmm0,%zmm2,%zmm214911492vbroadcasti32x4 64(%rcx),%zmm01493vaesdec %zmm0,%zmm1,%zmm11494vaesdec %zmm0,%zmm2,%zmm2149514961497vbroadcasti32x4 80(%rcx),%zmm01498vaesdec %zmm0,%zmm1,%zmm11499vaesdec %zmm0,%zmm2,%zmm2150015011502vbroadcasti32x4 96(%rcx),%zmm01503vaesdec %zmm0,%zmm1,%zmm11504vaesdec %zmm0,%zmm2,%zmm2150515061507vbroadcasti32x4 112(%rcx),%zmm01508vaesdec %zmm0,%zmm1,%zmm11509vaesdec %zmm0,%zmm2,%zmm2151015111512vbroadcasti32x4 128(%rcx),%zmm01513vaesdec %zmm0,%zmm1,%zmm11514vaesdec %zmm0,%zmm2,%zmm2151515161517vbroadcasti32x4 144(%rcx),%zmm01518vaesdec %zmm0,%zmm1,%zmm11519vaesdec %zmm0,%zmm2,%zmm2152015211522vbroadcasti32x4 160(%rcx),%zmm01523vaesdeclast %zmm0,%zmm1,%zmm11524vaesdeclast %zmm0,%zmm2,%zmm215251526vpxorq %zmm9,%zmm1,%zmm11527vpxorq %zmm10,%zmm2,%zmm2152815291530vmovdqa32 %zmm15,%zmm91531vmovdqa32 %zmm16,%zmm101532vmovdqu8 %zmm1,(%rsi)1533vmovdqu %xmm2,64(%rsi)1534addq $0x50,%rsi1535vmovdqa %xmm2,%xmm81536vmovdqa %xmm12,%xmm01537jmp .L_steal_cipher_amivrujEyduiFoi15381539.L_done_5_remain_amivrujEyduiFoi:15401541vpxorq %zmm9,%zmm1,%zmm11542vpxorq %zmm10,%zmm2,%zmm2154315441545vbroadcasti32x4 (%rcx),%zmm01546vpxorq %zmm0,%zmm1,%zmm11547vpxorq %zmm0,%zmm2,%zmm21548vbroadcasti32x4 16(%rcx),%zmm01549vaesdec %zmm0,%zmm1,%zmm11550vaesdec %zmm0,%zmm2,%zmm2155115521553vbroadcasti32x4 32(%rcx),%zmm01554vaesdec %zmm0,%zmm1,%zmm11555vaesdec %zmm0,%zmm2,%zmm2155615571558vbroadcasti32x4 48(%rcx),%zmm01559vaesdec %zmm0,%zmm1,%zmm11560vaesdec %zmm0,%zmm2,%zmm215611562vbroadcasti32x4 64(%rcx),%zmm01563vaesdec %zmm0,%zmm1,%zmm11564vaesdec %zmm0,%zmm2,%zmm2156515661567vbroadcasti32x4 80(%rcx),%zmm01568vaesdec %zmm0,%zmm1,%zmm11569vaesdec %zmm0,%zmm2,%zmm2157015711572vbroadcasti32x4 96(%rcx),%zmm01573vaesdec %zmm0,%zmm1,%zmm11574vaesdec %zmm0,%zmm2,%zmm2157515761577vbroadcasti32x4 112(%rcx),%zmm01578vaesdec %zmm0,%zmm1,%zmm11579vaesdec %zmm0,%zmm2,%zmm2158015811582vbroadcasti32x4 128(%rcx),%zmm01583vaesdec %zmm0,%zmm1,%zmm11584vaesdec %zmm0,%zmm2,%zmm2158515861587vbroadcasti32x4 144(%rcx),%zmm01588vaesdec %zmm0,%zmm1,%zmm11589vaesdec %zmm0,%zmm2,%zmm2159015911592vbroadcasti32x4 160(%rcx),%zmm01593vaesdeclast %zmm0,%zmm1,%zmm11594vaesdeclast %zmm0,%zmm2,%zmm215951596vpxorq %zmm9,%zmm1,%zmm11597vpxorq %zmm10,%zmm2,%zmm2159815991600vmovdqa32 %zmm15,%zmm91601vmovdqa32 %zmm16,%zmm101602vmovdqu8 %zmm1,(%rsi)1603vmovdqu8 %xmm2,64(%rsi)1604jmp .L_ret_amivrujEyduiFoi16051606.L_remaining_num_blocks_is_4_amivrujEyduiFoi:1607vmovdqu8 (%rdi),%zmm11608addq $0x40,%rdi1609andq $0xf,%rdx1610je .L_done_4_remain_amivrujEyduiFoi1611vextracti32x4 $0x3,%zmm9,%xmm121612vinserti32x4 $0x3,%xmm10,%zmm9,%zmm916131614vpxorq %zmm9,%zmm1,%zmm11615vpxorq %zmm10,%zmm2,%zmm2161616171618vbroadcasti32x4 (%rcx),%zmm01619vpxorq %zmm0,%zmm1,%zmm11620vpxorq %zmm0,%zmm2,%zmm21621vbroadcasti32x4 16(%rcx),%zmm01622vaesdec %zmm0,%zmm1,%zmm11623vaesdec %zmm0,%zmm2,%zmm2162416251626vbroadcasti32x4 32(%rcx),%zmm01627vaesdec %zmm0,%zmm1,%zmm11628vaesdec %zmm0,%zmm2,%zmm2162916301631vbroadcasti32x4 48(%rcx),%zmm01632vaesdec %zmm0,%zmm1,%zmm11633vaesdec %zmm0,%zmm2,%zmm216341635vbroadcasti32x4 64(%rcx),%zmm01636vaesdec %zmm0,%zmm1,%zmm11637vaesdec %zmm0,%zmm2,%zmm2163816391640vbroadcasti32x4 80(%rcx),%zmm01641vaesdec %zmm0,%zmm1,%zmm11642vaesdec %zmm0,%zmm2,%zmm2164316441645vbroadcasti32x4 96(%rcx),%zmm01646vaesdec %zmm0,%zmm1,%zmm11647vaesdec %zmm0,%zmm2,%zmm2164816491650vbroadcasti32x4 112(%rcx),%zmm01651vaesdec %zmm0,%zmm1,%zmm11652vaesdec %zmm0,%zmm2,%zmm2165316541655vbroadcasti32x4 128(%rcx),%zmm01656vaesdec %zmm0,%zmm1,%zmm11657vaesdec %zmm0,%zmm2,%zmm2165816591660vbroadcasti32x4 144(%rcx),%zmm01661vaesdec %zmm0,%zmm1,%zmm11662vaesdec %zmm0,%zmm2,%zmm2166316641665vbroadcasti32x4 160(%rcx),%zmm01666vaesdeclast %zmm0,%zmm1,%zmm11667vaesdeclast %zmm0,%zmm2,%zmm216681669vpxorq %zmm9,%zmm1,%zmm11670vpxorq %zmm10,%zmm2,%zmm2167116721673vmovdqa32 %zmm15,%zmm91674vmovdqa32 %zmm16,%zmm101675vmovdqu8 %zmm1,(%rsi)1676addq $0x40,%rsi1677vextracti32x4 $0x3,%zmm1,%xmm81678vmovdqa %xmm12,%xmm01679jmp .L_steal_cipher_amivrujEyduiFoi16801681.L_done_4_remain_amivrujEyduiFoi:16821683vpxorq %zmm9,%zmm1,%zmm11684vpxorq %zmm10,%zmm2,%zmm2168516861687vbroadcasti32x4 (%rcx),%zmm01688vpxorq %zmm0,%zmm1,%zmm11689vpxorq %zmm0,%zmm2,%zmm21690vbroadcasti32x4 16(%rcx),%zmm01691vaesdec %zmm0,%zmm1,%zmm11692vaesdec %zmm0,%zmm2,%zmm2169316941695vbroadcasti32x4 32(%rcx),%zmm01696vaesdec %zmm0,%zmm1,%zmm11697vaesdec %zmm0,%zmm2,%zmm2169816991700vbroadcasti32x4 48(%rcx),%zmm01701vaesdec %zmm0,%zmm1,%zmm11702vaesdec %zmm0,%zmm2,%zmm217031704vbroadcasti32x4 64(%rcx),%zmm01705vaesdec %zmm0,%zmm1,%zmm11706vaesdec %zmm0,%zmm2,%zmm2170717081709vbroadcasti32x4 80(%rcx),%zmm01710vaesdec %zmm0,%zmm1,%zmm11711vaesdec %zmm0,%zmm2,%zmm2171217131714vbroadcasti32x4 96(%rcx),%zmm01715vaesdec %zmm0,%zmm1,%zmm11716vaesdec %zmm0,%zmm2,%zmm2171717181719vbroadcasti32x4 112(%rcx),%zmm01720vaesdec %zmm0,%zmm1,%zmm11721vaesdec %zmm0,%zmm2,%zmm2172217231724vbroadcasti32x4 128(%rcx),%zmm01725vaesdec %zmm0,%zmm1,%zmm11726vaesdec %zmm0,%zmm2,%zmm2172717281729vbroadcasti32x4 144(%rcx),%zmm01730vaesdec %zmm0,%zmm1,%zmm11731vaesdec %zmm0,%zmm2,%zmm2173217331734vbroadcasti32x4 160(%rcx),%zmm01735vaesdeclast %zmm0,%zmm1,%zmm11736vaesdeclast %zmm0,%zmm2,%zmm217371738vpxorq %zmm9,%zmm1,%zmm11739vpxorq %zmm10,%zmm2,%zmm2174017411742vmovdqa32 %zmm15,%zmm91743vmovdqa32 %zmm16,%zmm101744vmovdqu8 %zmm1,(%rsi)1745jmp .L_ret_amivrujEyduiFoi17461747.L_remaining_num_blocks_is_3_amivrujEyduiFoi:1748vmovdqu (%rdi),%xmm11749vmovdqu 16(%rdi),%xmm21750vmovdqu 32(%rdi),%xmm31751addq $0x30,%rdi1752andq $0xf,%rdx1753je .L_done_3_remain_amivrujEyduiFoi1754vextracti32x4 $0x2,%zmm9,%xmm131755vextracti32x4 $0x1,%zmm9,%xmm101756vextracti32x4 $0x3,%zmm9,%xmm111757vpxor %xmm9,%xmm1,%xmm11758vpxor %xmm10,%xmm2,%xmm21759vpxor %xmm11,%xmm3,%xmm31760vmovdqu (%rcx),%xmm01761vpxor %xmm0,%xmm1,%xmm11762vpxor %xmm0,%xmm2,%xmm21763vpxor %xmm0,%xmm3,%xmm31764vmovdqu 16(%rcx),%xmm01765vaesdec %xmm0,%xmm1,%xmm11766vaesdec %xmm0,%xmm2,%xmm21767vaesdec %xmm0,%xmm3,%xmm31768vmovdqu 32(%rcx),%xmm01769vaesdec %xmm0,%xmm1,%xmm11770vaesdec %xmm0,%xmm2,%xmm21771vaesdec %xmm0,%xmm3,%xmm31772vmovdqu 48(%rcx),%xmm01773vaesdec %xmm0,%xmm1,%xmm11774vaesdec %xmm0,%xmm2,%xmm21775vaesdec %xmm0,%xmm3,%xmm31776vmovdqu 64(%rcx),%xmm01777vaesdec %xmm0,%xmm1,%xmm11778vaesdec %xmm0,%xmm2,%xmm21779vaesdec %xmm0,%xmm3,%xmm31780vmovdqu 80(%rcx),%xmm01781vaesdec %xmm0,%xmm1,%xmm11782vaesdec %xmm0,%xmm2,%xmm21783vaesdec %xmm0,%xmm3,%xmm31784vmovdqu 96(%rcx),%xmm01785vaesdec %xmm0,%xmm1,%xmm11786vaesdec %xmm0,%xmm2,%xmm21787vaesdec %xmm0,%xmm3,%xmm31788vmovdqu 112(%rcx),%xmm01789vaesdec %xmm0,%xmm1,%xmm11790vaesdec %xmm0,%xmm2,%xmm21791vaesdec %xmm0,%xmm3,%xmm31792vmovdqu 128(%rcx),%xmm01793vaesdec %xmm0,%xmm1,%xmm11794vaesdec %xmm0,%xmm2,%xmm21795vaesdec %xmm0,%xmm3,%xmm31796vmovdqu 144(%rcx),%xmm01797vaesdec %xmm0,%xmm1,%xmm11798vaesdec %xmm0,%xmm2,%xmm21799vaesdec %xmm0,%xmm3,%xmm31800vmovdqu 160(%rcx),%xmm01801vaesdeclast %xmm0,%xmm1,%xmm11802vaesdeclast %xmm0,%xmm2,%xmm21803vaesdeclast %xmm0,%xmm3,%xmm31804vpxor %xmm9,%xmm1,%xmm11805vpxor %xmm10,%xmm2,%xmm21806vpxor %xmm11,%xmm3,%xmm31807vmovdqu %xmm1,(%rsi)1808vmovdqu %xmm2,16(%rsi)1809vmovdqu %xmm3,32(%rsi)1810addq $0x30,%rsi1811vmovdqa %xmm3,%xmm81812vmovdqa %xmm13,%xmm01813jmp .L_steal_cipher_amivrujEyduiFoi18141815.L_done_3_remain_amivrujEyduiFoi:1816vextracti32x4 $0x1,%zmm9,%xmm101817vextracti32x4 $0x2,%zmm9,%xmm111818vpxor %xmm9,%xmm1,%xmm11819vpxor %xmm10,%xmm2,%xmm21820vpxor %xmm11,%xmm3,%xmm31821vmovdqu (%rcx),%xmm01822vpxor %xmm0,%xmm1,%xmm11823vpxor %xmm0,%xmm2,%xmm21824vpxor %xmm0,%xmm3,%xmm31825vmovdqu 16(%rcx),%xmm01826vaesdec %xmm0,%xmm1,%xmm11827vaesdec %xmm0,%xmm2,%xmm21828vaesdec %xmm0,%xmm3,%xmm31829vmovdqu 32(%rcx),%xmm01830vaesdec %xmm0,%xmm1,%xmm11831vaesdec %xmm0,%xmm2,%xmm21832vaesdec %xmm0,%xmm3,%xmm31833vmovdqu 48(%rcx),%xmm01834vaesdec %xmm0,%xmm1,%xmm11835vaesdec %xmm0,%xmm2,%xmm21836vaesdec %xmm0,%xmm3,%xmm31837vmovdqu 64(%rcx),%xmm01838vaesdec %xmm0,%xmm1,%xmm11839vaesdec %xmm0,%xmm2,%xmm21840vaesdec %xmm0,%xmm3,%xmm31841vmovdqu 80(%rcx),%xmm01842vaesdec %xmm0,%xmm1,%xmm11843vaesdec %xmm0,%xmm2,%xmm21844vaesdec %xmm0,%xmm3,%xmm31845vmovdqu 96(%rcx),%xmm01846vaesdec %xmm0,%xmm1,%xmm11847vaesdec %xmm0,%xmm2,%xmm21848vaesdec %xmm0,%xmm3,%xmm31849vmovdqu 112(%rcx),%xmm01850vaesdec %xmm0,%xmm1,%xmm11851vaesdec %xmm0,%xmm2,%xmm21852vaesdec %xmm0,%xmm3,%xmm31853vmovdqu 128(%rcx),%xmm01854vaesdec %xmm0,%xmm1,%xmm11855vaesdec %xmm0,%xmm2,%xmm21856vaesdec %xmm0,%xmm3,%xmm31857vmovdqu 144(%rcx),%xmm01858vaesdec %xmm0,%xmm1,%xmm11859vaesdec %xmm0,%xmm2,%xmm21860vaesdec %xmm0,%xmm3,%xmm31861vmovdqu 160(%rcx),%xmm01862vaesdeclast %xmm0,%xmm1,%xmm11863vaesdeclast %xmm0,%xmm2,%xmm21864vaesdeclast %xmm0,%xmm3,%xmm31865vpxor %xmm9,%xmm1,%xmm11866vpxor %xmm10,%xmm2,%xmm21867vpxor %xmm11,%xmm3,%xmm31868vmovdqu %xmm1,(%rsi)1869vmovdqu %xmm2,16(%rsi)1870vmovdqu %xmm3,32(%rsi)1871jmp .L_ret_amivrujEyduiFoi18721873.L_remaining_num_blocks_is_2_amivrujEyduiFoi:1874vmovdqu (%rdi),%xmm11875vmovdqu 16(%rdi),%xmm21876addq $0x20,%rdi1877andq $0xf,%rdx1878je .L_done_2_remain_amivrujEyduiFoi1879vextracti32x4 $0x2,%zmm9,%xmm101880vextracti32x4 $0x1,%zmm9,%xmm121881vpxor %xmm9,%xmm1,%xmm11882vpxor %xmm10,%xmm2,%xmm21883vmovdqu (%rcx),%xmm01884vpxor %xmm0,%xmm1,%xmm11885vpxor %xmm0,%xmm2,%xmm21886vmovdqu 16(%rcx),%xmm01887vaesdec %xmm0,%xmm1,%xmm11888vaesdec %xmm0,%xmm2,%xmm21889vmovdqu 32(%rcx),%xmm01890vaesdec %xmm0,%xmm1,%xmm11891vaesdec %xmm0,%xmm2,%xmm21892vmovdqu 48(%rcx),%xmm01893vaesdec %xmm0,%xmm1,%xmm11894vaesdec %xmm0,%xmm2,%xmm21895vmovdqu 64(%rcx),%xmm01896vaesdec %xmm0,%xmm1,%xmm11897vaesdec %xmm0,%xmm2,%xmm21898vmovdqu 80(%rcx),%xmm01899vaesdec %xmm0,%xmm1,%xmm11900vaesdec %xmm0,%xmm2,%xmm21901vmovdqu 96(%rcx),%xmm01902vaesdec %xmm0,%xmm1,%xmm11903vaesdec %xmm0,%xmm2,%xmm21904vmovdqu 112(%rcx),%xmm01905vaesdec %xmm0,%xmm1,%xmm11906vaesdec %xmm0,%xmm2,%xmm21907vmovdqu 128(%rcx),%xmm01908vaesdec %xmm0,%xmm1,%xmm11909vaesdec %xmm0,%xmm2,%xmm21910vmovdqu 144(%rcx),%xmm01911vaesdec %xmm0,%xmm1,%xmm11912vaesdec %xmm0,%xmm2,%xmm21913vmovdqu 160(%rcx),%xmm01914vaesdeclast %xmm0,%xmm1,%xmm11915vaesdeclast %xmm0,%xmm2,%xmm21916vpxor %xmm9,%xmm1,%xmm11917vpxor %xmm10,%xmm2,%xmm21918vmovdqu %xmm1,(%rsi)1919vmovdqu %xmm2,16(%rsi)1920addq $0x20,%rsi1921vmovdqa %xmm2,%xmm81922vmovdqa %xmm12,%xmm01923jmp .L_steal_cipher_amivrujEyduiFoi19241925.L_done_2_remain_amivrujEyduiFoi:1926vextracti32x4 $0x1,%zmm9,%xmm101927vpxor %xmm9,%xmm1,%xmm11928vpxor %xmm10,%xmm2,%xmm21929vmovdqu (%rcx),%xmm01930vpxor %xmm0,%xmm1,%xmm11931vpxor %xmm0,%xmm2,%xmm21932vmovdqu 16(%rcx),%xmm01933vaesdec %xmm0,%xmm1,%xmm11934vaesdec %xmm0,%xmm2,%xmm21935vmovdqu 32(%rcx),%xmm01936vaesdec %xmm0,%xmm1,%xmm11937vaesdec %xmm0,%xmm2,%xmm21938vmovdqu 48(%rcx),%xmm01939vaesdec %xmm0,%xmm1,%xmm11940vaesdec %xmm0,%xmm2,%xmm21941vmovdqu 64(%rcx),%xmm01942vaesdec %xmm0,%xmm1,%xmm11943vaesdec %xmm0,%xmm2,%xmm21944vmovdqu 80(%rcx),%xmm01945vaesdec %xmm0,%xmm1,%xmm11946vaesdec %xmm0,%xmm2,%xmm21947vmovdqu 96(%rcx),%xmm01948vaesdec %xmm0,%xmm1,%xmm11949vaesdec %xmm0,%xmm2,%xmm21950vmovdqu 112(%rcx),%xmm01951vaesdec %xmm0,%xmm1,%xmm11952vaesdec %xmm0,%xmm2,%xmm21953vmovdqu 128(%rcx),%xmm01954vaesdec %xmm0,%xmm1,%xmm11955vaesdec %xmm0,%xmm2,%xmm21956vmovdqu 144(%rcx),%xmm01957vaesdec %xmm0,%xmm1,%xmm11958vaesdec %xmm0,%xmm2,%xmm21959vmovdqu 160(%rcx),%xmm01960vaesdeclast %xmm0,%xmm1,%xmm11961vaesdeclast %xmm0,%xmm2,%xmm21962vpxor %xmm9,%xmm1,%xmm11963vpxor %xmm10,%xmm2,%xmm21964vmovdqu %xmm1,(%rsi)1965vmovdqu %xmm2,16(%rsi)1966jmp .L_ret_amivrujEyduiFoi19671968.L_remaining_num_blocks_is_1_amivrujEyduiFoi:1969vmovdqu (%rdi),%xmm11970addq $0x10,%rdi1971andq $0xf,%rdx1972je .L_done_1_remain_amivrujEyduiFoi1973vextracti32x4 $0x1,%zmm9,%xmm111974vpxor %xmm11,%xmm1,%xmm11975vmovdqu (%rcx),%xmm01976vpxor %xmm0,%xmm1,%xmm11977vmovdqu 16(%rcx),%xmm01978vaesdec %xmm0,%xmm1,%xmm11979vmovdqu 32(%rcx),%xmm01980vaesdec %xmm0,%xmm1,%xmm11981vmovdqu 48(%rcx),%xmm01982vaesdec %xmm0,%xmm1,%xmm11983vmovdqu 64(%rcx),%xmm01984vaesdec %xmm0,%xmm1,%xmm11985vmovdqu 80(%rcx),%xmm01986vaesdec %xmm0,%xmm1,%xmm11987vmovdqu 96(%rcx),%xmm01988vaesdec %xmm0,%xmm1,%xmm11989vmovdqu 112(%rcx),%xmm01990vaesdec %xmm0,%xmm1,%xmm11991vmovdqu 128(%rcx),%xmm01992vaesdec %xmm0,%xmm1,%xmm11993vmovdqu 144(%rcx),%xmm01994vaesdec %xmm0,%xmm1,%xmm11995vmovdqu 160(%rcx),%xmm01996vaesdeclast %xmm0,%xmm1,%xmm11997vpxor %xmm11,%xmm1,%xmm11998vmovdqu %xmm1,(%rsi)1999addq $0x10,%rsi2000vmovdqa %xmm1,%xmm82001vmovdqa %xmm9,%xmm02002jmp .L_steal_cipher_amivrujEyduiFoi20032004.L_done_1_remain_amivrujEyduiFoi:2005vpxor %xmm9,%xmm1,%xmm12006vmovdqu (%rcx),%xmm02007vpxor %xmm0,%xmm1,%xmm12008vmovdqu 16(%rcx),%xmm02009vaesdec %xmm0,%xmm1,%xmm12010vmovdqu 32(%rcx),%xmm02011vaesdec %xmm0,%xmm1,%xmm12012vmovdqu 48(%rcx),%xmm02013vaesdec %xmm0,%xmm1,%xmm12014vmovdqu 64(%rcx),%xmm02015vaesdec %xmm0,%xmm1,%xmm12016vmovdqu 80(%rcx),%xmm02017vaesdec %xmm0,%xmm1,%xmm12018vmovdqu 96(%rcx),%xmm02019vaesdec %xmm0,%xmm1,%xmm12020vmovdqu 112(%rcx),%xmm02021vaesdec %xmm0,%xmm1,%xmm12022vmovdqu 128(%rcx),%xmm02023vaesdec %xmm0,%xmm1,%xmm12024vmovdqu 144(%rcx),%xmm02025vaesdec %xmm0,%xmm1,%xmm12026vmovdqu 160(%rcx),%xmm02027vaesdeclast %xmm0,%xmm1,%xmm12028vpxor %xmm9,%xmm1,%xmm12029vmovdqu %xmm1,(%rsi)2030jmp .L_ret_amivrujEyduiFoi20312032.L_start_by16_amivrujEyduiFoi:2033vbroadcasti32x4 (%rsp),%zmm02034vbroadcasti32x4 shufb_15_7(%rip),%zmm82035movq $0xaa,%r82036kmovq %r8,%k2203720382039vpshufb %zmm8,%zmm0,%zmm12040vpsllvq const_dq3210(%rip),%zmm0,%zmm42041vpsrlvq const_dq5678(%rip),%zmm1,%zmm22042vpclmulqdq $0x0,%zmm25,%zmm2,%zmm32043vpxorq %zmm2,%zmm4,%zmm4{%k2}2044vpxord %zmm4,%zmm3,%zmm9204520462047vpsllvq const_dq7654(%rip),%zmm0,%zmm52048vpsrlvq const_dq1234(%rip),%zmm1,%zmm62049vpclmulqdq $0x0,%zmm25,%zmm6,%zmm72050vpxorq %zmm6,%zmm5,%zmm5{%k2}2051vpxord %zmm5,%zmm7,%zmm10205220532054vpsrldq $0xf,%zmm9,%zmm132055vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142056vpslldq $0x1,%zmm9,%zmm112057vpxord %zmm14,%zmm11,%zmm1120582059vpsrldq $0xf,%zmm10,%zmm152060vpclmulqdq $0x0,%zmm25,%zmm15,%zmm162061vpslldq $0x1,%zmm10,%zmm122062vpxord %zmm16,%zmm12,%zmm1220632064.L_main_loop_run_16_amivrujEyduiFoi:2065vmovdqu8 (%rdi),%zmm12066vmovdqu8 64(%rdi),%zmm22067vmovdqu8 128(%rdi),%zmm32068vmovdqu8 192(%rdi),%zmm42069vmovdqu8 240(%rdi),%xmm52070addq $0x100,%rdi2071vpxorq %zmm9,%zmm1,%zmm12072vpxorq %zmm10,%zmm2,%zmm22073vpxorq %zmm11,%zmm3,%zmm32074vpxorq %zmm12,%zmm4,%zmm42075vbroadcasti32x4 (%rcx),%zmm02076vpxorq %zmm0,%zmm1,%zmm12077vpxorq %zmm0,%zmm2,%zmm22078vpxorq %zmm0,%zmm3,%zmm32079vpxorq %zmm0,%zmm4,%zmm42080vpsrldq $0xf,%zmm11,%zmm132081vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142082vpslldq $0x1,%zmm11,%zmm152083vpxord %zmm14,%zmm15,%zmm152084vbroadcasti32x4 16(%rcx),%zmm02085vaesdec %zmm0,%zmm1,%zmm12086vaesdec %zmm0,%zmm2,%zmm22087vaesdec %zmm0,%zmm3,%zmm32088vaesdec %zmm0,%zmm4,%zmm42089vbroadcasti32x4 32(%rcx),%zmm02090vaesdec %zmm0,%zmm1,%zmm12091vaesdec %zmm0,%zmm2,%zmm22092vaesdec %zmm0,%zmm3,%zmm32093vaesdec %zmm0,%zmm4,%zmm42094vbroadcasti32x4 48(%rcx),%zmm02095vaesdec %zmm0,%zmm1,%zmm12096vaesdec %zmm0,%zmm2,%zmm22097vaesdec %zmm0,%zmm3,%zmm32098vaesdec %zmm0,%zmm4,%zmm42099vpsrldq $0xf,%zmm12,%zmm132100vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142101vpslldq $0x1,%zmm12,%zmm162102vpxord %zmm14,%zmm16,%zmm162103vbroadcasti32x4 64(%rcx),%zmm02104vaesdec %zmm0,%zmm1,%zmm12105vaesdec %zmm0,%zmm2,%zmm22106vaesdec %zmm0,%zmm3,%zmm32107vaesdec %zmm0,%zmm4,%zmm42108vbroadcasti32x4 80(%rcx),%zmm02109vaesdec %zmm0,%zmm1,%zmm12110vaesdec %zmm0,%zmm2,%zmm22111vaesdec %zmm0,%zmm3,%zmm32112vaesdec %zmm0,%zmm4,%zmm42113vbroadcasti32x4 96(%rcx),%zmm02114vaesdec %zmm0,%zmm1,%zmm12115vaesdec %zmm0,%zmm2,%zmm22116vaesdec %zmm0,%zmm3,%zmm32117vaesdec %zmm0,%zmm4,%zmm42118vpsrldq $0xf,%zmm15,%zmm132119vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142120vpslldq $0x1,%zmm15,%zmm172121vpxord %zmm14,%zmm17,%zmm172122vbroadcasti32x4 112(%rcx),%zmm02123vaesdec %zmm0,%zmm1,%zmm12124vaesdec %zmm0,%zmm2,%zmm22125vaesdec %zmm0,%zmm3,%zmm32126vaesdec %zmm0,%zmm4,%zmm42127vbroadcasti32x4 128(%rcx),%zmm02128vaesdec %zmm0,%zmm1,%zmm12129vaesdec %zmm0,%zmm2,%zmm22130vaesdec %zmm0,%zmm3,%zmm32131vaesdec %zmm0,%zmm4,%zmm42132vbroadcasti32x4 144(%rcx),%zmm02133vaesdec %zmm0,%zmm1,%zmm12134vaesdec %zmm0,%zmm2,%zmm22135vaesdec %zmm0,%zmm3,%zmm32136vaesdec %zmm0,%zmm4,%zmm42137vpsrldq $0xf,%zmm16,%zmm132138vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142139vpslldq $0x1,%zmm16,%zmm182140vpxord %zmm14,%zmm18,%zmm182141vbroadcasti32x4 160(%rcx),%zmm02142vaesdeclast %zmm0,%zmm1,%zmm12143vaesdeclast %zmm0,%zmm2,%zmm22144vaesdeclast %zmm0,%zmm3,%zmm32145vaesdeclast %zmm0,%zmm4,%zmm42146vpxorq %zmm9,%zmm1,%zmm12147vpxorq %zmm10,%zmm2,%zmm22148vpxorq %zmm11,%zmm3,%zmm32149vpxorq %zmm12,%zmm4,%zmm421502151vmovdqa32 %zmm15,%zmm92152vmovdqa32 %zmm16,%zmm102153vmovdqa32 %zmm17,%zmm112154vmovdqa32 %zmm18,%zmm122155vmovdqu8 %zmm1,(%rsi)2156vmovdqu8 %zmm2,64(%rsi)2157vmovdqu8 %zmm3,128(%rsi)2158vmovdqu8 %zmm4,192(%rsi)2159addq $0x100,%rsi2160subq $0x100,%rdx2161cmpq $0x100,%rdx2162jge .L_main_loop_run_16_amivrujEyduiFoi21632164cmpq $0x80,%rdx2165jge .L_main_loop_run_8_amivrujEyduiFoi2166jmp .L_do_n_blocks_amivrujEyduiFoi21672168.L_start_by8_amivrujEyduiFoi:21692170vbroadcasti32x4 (%rsp),%zmm02171vbroadcasti32x4 shufb_15_7(%rip),%zmm82172movq $0xaa,%r82173kmovq %r8,%k2217421752176vpshufb %zmm8,%zmm0,%zmm12177vpsllvq const_dq3210(%rip),%zmm0,%zmm42178vpsrlvq const_dq5678(%rip),%zmm1,%zmm22179vpclmulqdq $0x0,%zmm25,%zmm2,%zmm32180vpxorq %zmm2,%zmm4,%zmm4{%k2}2181vpxord %zmm4,%zmm3,%zmm9218221832184vpsllvq const_dq7654(%rip),%zmm0,%zmm52185vpsrlvq const_dq1234(%rip),%zmm1,%zmm62186vpclmulqdq $0x0,%zmm25,%zmm6,%zmm72187vpxorq %zmm6,%zmm5,%zmm5{%k2}2188vpxord %zmm5,%zmm7,%zmm1021892190.L_main_loop_run_8_amivrujEyduiFoi:2191vmovdqu8 (%rdi),%zmm12192vmovdqu8 64(%rdi),%zmm22193vmovdqu8 112(%rdi),%xmm52194addq $0x80,%rdi21952196vpxorq %zmm9,%zmm1,%zmm12197vpxorq %zmm10,%zmm2,%zmm2219821992200vbroadcasti32x4 (%rcx),%zmm02201vpxorq %zmm0,%zmm1,%zmm12202vpxorq %zmm0,%zmm2,%zmm22203vpsrldq $0xf,%zmm9,%zmm132204vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142205vpslldq $0x1,%zmm9,%zmm152206vpxord %zmm14,%zmm15,%zmm152207vbroadcasti32x4 16(%rcx),%zmm02208vaesdec %zmm0,%zmm1,%zmm12209vaesdec %zmm0,%zmm2,%zmm2221022112212vbroadcasti32x4 32(%rcx),%zmm02213vaesdec %zmm0,%zmm1,%zmm12214vaesdec %zmm0,%zmm2,%zmm2221522162217vbroadcasti32x4 48(%rcx),%zmm02218vaesdec %zmm0,%zmm1,%zmm12219vaesdec %zmm0,%zmm2,%zmm22220vpsrldq $0xf,%zmm10,%zmm132221vpclmulqdq $0x0,%zmm25,%zmm13,%zmm142222vpslldq $0x1,%zmm10,%zmm162223vpxord %zmm14,%zmm16,%zmm1622242225vbroadcasti32x4 64(%rcx),%zmm02226vaesdec %zmm0,%zmm1,%zmm12227vaesdec %zmm0,%zmm2,%zmm2222822292230vbroadcasti32x4 80(%rcx),%zmm02231vaesdec %zmm0,%zmm1,%zmm12232vaesdec %zmm0,%zmm2,%zmm2223322342235vbroadcasti32x4 96(%rcx),%zmm02236vaesdec %zmm0,%zmm1,%zmm12237vaesdec %zmm0,%zmm2,%zmm2223822392240vbroadcasti32x4 112(%rcx),%zmm02241vaesdec %zmm0,%zmm1,%zmm12242vaesdec %zmm0,%zmm2,%zmm2224322442245vbroadcasti32x4 128(%rcx),%zmm02246vaesdec %zmm0,%zmm1,%zmm12247vaesdec %zmm0,%zmm2,%zmm2224822492250vbroadcasti32x4 144(%rcx),%zmm02251vaesdec %zmm0,%zmm1,%zmm12252vaesdec %zmm0,%zmm2,%zmm2225322542255vbroadcasti32x4 160(%rcx),%zmm02256vaesdeclast %zmm0,%zmm1,%zmm12257vaesdeclast %zmm0,%zmm2,%zmm222582259vpxorq %zmm9,%zmm1,%zmm12260vpxorq %zmm10,%zmm2,%zmm2226122622263vmovdqa32 %zmm15,%zmm92264vmovdqa32 %zmm16,%zmm102265vmovdqu8 %zmm1,(%rsi)2266vmovdqu8 %zmm2,64(%rsi)2267addq $0x80,%rsi2268subq $0x80,%rdx2269cmpq $0x80,%rdx2270jge .L_main_loop_run_8_amivrujEyduiFoi2271jmp .L_do_n_blocks_amivrujEyduiFoi22722273.L_steal_cipher_amivrujEyduiFoi:22742275vmovdqa %xmm8,%xmm2227622772278leaq vpshufb_shf_table(%rip),%rax2279vmovdqu (%rax,%rdx,1),%xmm102280vpshufb %xmm10,%xmm8,%xmm8228122822283vmovdqu -16(%rdi,%rdx,1),%xmm32284vmovdqu %xmm8,-16(%rsi,%rdx,1)228522862287leaq vpshufb_shf_table(%rip),%rax2288addq $16,%rax2289subq %rdx,%rax2290vmovdqu (%rax),%xmm102291vpxor mask1(%rip),%xmm10,%xmm102292vpshufb %xmm10,%xmm3,%xmm322932294vpblendvb %xmm10,%xmm2,%xmm3,%xmm3229522962297vpxor %xmm0,%xmm3,%xmm8229822992300vpxor (%rcx),%xmm8,%xmm82301vaesdec 16(%rcx),%xmm8,%xmm82302vaesdec 32(%rcx),%xmm8,%xmm82303vaesdec 48(%rcx),%xmm8,%xmm82304vaesdec 64(%rcx),%xmm8,%xmm82305vaesdec 80(%rcx),%xmm8,%xmm82306vaesdec 96(%rcx),%xmm8,%xmm82307vaesdec 112(%rcx),%xmm8,%xmm82308vaesdec 128(%rcx),%xmm8,%xmm82309vaesdec 144(%rcx),%xmm8,%xmm82310vaesdeclast 160(%rcx),%xmm8,%xmm823112312vpxor %xmm0,%xmm8,%xmm823132314.L_done_amivrujEyduiFoi:23152316vmovdqu %xmm8,-16(%rsi)2317.L_ret_amivrujEyduiFoi:2318movq 128(%rsp),%rbx2319xorq %r8,%r82320movq %r8,128(%rsp)23212322vpxorq %zmm0,%zmm0,%zmm02323movq %rbp,%rsp2324popq %rbp2325vzeroupper2326.byte 0xf3,0xc323272328.L_less_than_128_bytes_amivrujEyduiFoi:2329cmpq $0x10,%rdx2330jb .L_ret_amivrujEyduiFoi23312332movq %rdx,%r82333andq $0x70,%r82334cmpq $0x60,%r82335je .L_num_blocks_is_6_amivrujEyduiFoi2336cmpq $0x50,%r82337je .L_num_blocks_is_5_amivrujEyduiFoi2338cmpq $0x40,%r82339je .L_num_blocks_is_4_amivrujEyduiFoi2340cmpq $0x30,%r82341je .L_num_blocks_is_3_amivrujEyduiFoi2342cmpq $0x20,%r82343je .L_num_blocks_is_2_amivrujEyduiFoi2344cmpq $0x10,%r82345je .L_num_blocks_is_1_amivrujEyduiFoi23462347.L_num_blocks_is_7_amivrujEyduiFoi:2348vmovdqa 0(%rsp),%xmm92349movq 0(%rsp),%rax2350movq 8(%rsp),%rbx2351vmovdqu 0(%rdi),%xmm12352xorq %r11,%r112353shlq $1,%rax2354adcq %rbx,%rbx2355cmovcq %r10,%r112356xorq %r11,%rax2357movq %rax,16(%rsp)2358movq %rbx,16 + 8(%rsp)2359vmovdqa 16(%rsp),%xmm102360vmovdqu 16(%rdi),%xmm22361xorq %r11,%r112362shlq $1,%rax2363adcq %rbx,%rbx2364cmovcq %r10,%r112365xorq %r11,%rax2366movq %rax,32(%rsp)2367movq %rbx,32 + 8(%rsp)2368vmovdqa 32(%rsp),%xmm112369vmovdqu 32(%rdi),%xmm32370xorq %r11,%r112371shlq $1,%rax2372adcq %rbx,%rbx2373cmovcq %r10,%r112374xorq %r11,%rax2375movq %rax,48(%rsp)2376movq %rbx,48 + 8(%rsp)2377vmovdqa 48(%rsp),%xmm122378vmovdqu 48(%rdi),%xmm42379xorq %r11,%r112380shlq $1,%rax2381adcq %rbx,%rbx2382cmovcq %r10,%r112383xorq %r11,%rax2384movq %rax,64(%rsp)2385movq %rbx,64 + 8(%rsp)2386vmovdqa 64(%rsp),%xmm132387vmovdqu 64(%rdi),%xmm52388xorq %r11,%r112389shlq $1,%rax2390adcq %rbx,%rbx2391cmovcq %r10,%r112392xorq %r11,%rax2393movq %rax,80(%rsp)2394movq %rbx,80 + 8(%rsp)2395vmovdqa 80(%rsp),%xmm142396vmovdqu 80(%rdi),%xmm62397xorq %r11,%r112398shlq $1,%rax2399adcq %rbx,%rbx2400cmovcq %r10,%r112401xorq %r11,%rax2402movq %rax,96(%rsp)2403movq %rbx,96 + 8(%rsp)2404vmovdqa 96(%rsp),%xmm152405vmovdqu 96(%rdi),%xmm72406addq $0x70,%rdi2407andq $0xf,%rdx2408je .L_done_7_amivrujEyduiFoi24092410.L_steal_cipher_7_amivrujEyduiFoi:2411xorq %r11,%r112412shlq $1,%rax2413adcq %rbx,%rbx2414cmovcq %r10,%r112415xorq %r11,%rax2416movq %rax,16(%rsp)2417movq %rbx,24(%rsp)2418vmovdqa64 %xmm15,%xmm162419vmovdqa 16(%rsp),%xmm152420vpxor %xmm9,%xmm1,%xmm12421vpxor %xmm10,%xmm2,%xmm22422vpxor %xmm11,%xmm3,%xmm32423vpxor %xmm12,%xmm4,%xmm42424vpxor %xmm13,%xmm5,%xmm52425vpxor %xmm14,%xmm6,%xmm62426vpxor %xmm15,%xmm7,%xmm72427vmovdqu (%rcx),%xmm02428vpxor %xmm0,%xmm1,%xmm12429vpxor %xmm0,%xmm2,%xmm22430vpxor %xmm0,%xmm3,%xmm32431vpxor %xmm0,%xmm4,%xmm42432vpxor %xmm0,%xmm5,%xmm52433vpxor %xmm0,%xmm6,%xmm62434vpxor %xmm0,%xmm7,%xmm72435vmovdqu 16(%rcx),%xmm02436vaesdec %xmm0,%xmm1,%xmm12437vaesdec %xmm0,%xmm2,%xmm22438vaesdec %xmm0,%xmm3,%xmm32439vaesdec %xmm0,%xmm4,%xmm42440vaesdec %xmm0,%xmm5,%xmm52441vaesdec %xmm0,%xmm6,%xmm62442vaesdec %xmm0,%xmm7,%xmm72443vmovdqu 32(%rcx),%xmm02444vaesdec %xmm0,%xmm1,%xmm12445vaesdec %xmm0,%xmm2,%xmm22446vaesdec %xmm0,%xmm3,%xmm32447vaesdec %xmm0,%xmm4,%xmm42448vaesdec %xmm0,%xmm5,%xmm52449vaesdec %xmm0,%xmm6,%xmm62450vaesdec %xmm0,%xmm7,%xmm72451vmovdqu 48(%rcx),%xmm02452vaesdec %xmm0,%xmm1,%xmm12453vaesdec %xmm0,%xmm2,%xmm22454vaesdec %xmm0,%xmm3,%xmm32455vaesdec %xmm0,%xmm4,%xmm42456vaesdec %xmm0,%xmm5,%xmm52457vaesdec %xmm0,%xmm6,%xmm62458vaesdec %xmm0,%xmm7,%xmm72459vmovdqu 64(%rcx),%xmm02460vaesdec %xmm0,%xmm1,%xmm12461vaesdec %xmm0,%xmm2,%xmm22462vaesdec %xmm0,%xmm3,%xmm32463vaesdec %xmm0,%xmm4,%xmm42464vaesdec %xmm0,%xmm5,%xmm52465vaesdec %xmm0,%xmm6,%xmm62466vaesdec %xmm0,%xmm7,%xmm72467vmovdqu 80(%rcx),%xmm02468vaesdec %xmm0,%xmm1,%xmm12469vaesdec %xmm0,%xmm2,%xmm22470vaesdec %xmm0,%xmm3,%xmm32471vaesdec %xmm0,%xmm4,%xmm42472vaesdec %xmm0,%xmm5,%xmm52473vaesdec %xmm0,%xmm6,%xmm62474vaesdec %xmm0,%xmm7,%xmm72475vmovdqu 96(%rcx),%xmm02476vaesdec %xmm0,%xmm1,%xmm12477vaesdec %xmm0,%xmm2,%xmm22478vaesdec %xmm0,%xmm3,%xmm32479vaesdec %xmm0,%xmm4,%xmm42480vaesdec %xmm0,%xmm5,%xmm52481vaesdec %xmm0,%xmm6,%xmm62482vaesdec %xmm0,%xmm7,%xmm72483vmovdqu 112(%rcx),%xmm02484vaesdec %xmm0,%xmm1,%xmm12485vaesdec %xmm0,%xmm2,%xmm22486vaesdec %xmm0,%xmm3,%xmm32487vaesdec %xmm0,%xmm4,%xmm42488vaesdec %xmm0,%xmm5,%xmm52489vaesdec %xmm0,%xmm6,%xmm62490vaesdec %xmm0,%xmm7,%xmm72491vmovdqu 128(%rcx),%xmm02492vaesdec %xmm0,%xmm1,%xmm12493vaesdec %xmm0,%xmm2,%xmm22494vaesdec %xmm0,%xmm3,%xmm32495vaesdec %xmm0,%xmm4,%xmm42496vaesdec %xmm0,%xmm5,%xmm52497vaesdec %xmm0,%xmm6,%xmm62498vaesdec %xmm0,%xmm7,%xmm72499vmovdqu 144(%rcx),%xmm02500vaesdec %xmm0,%xmm1,%xmm12501vaesdec %xmm0,%xmm2,%xmm22502vaesdec %xmm0,%xmm3,%xmm32503vaesdec %xmm0,%xmm4,%xmm42504vaesdec %xmm0,%xmm5,%xmm52505vaesdec %xmm0,%xmm6,%xmm62506vaesdec %xmm0,%xmm7,%xmm72507vmovdqu 160(%rcx),%xmm02508vaesdeclast %xmm0,%xmm1,%xmm12509vaesdeclast %xmm0,%xmm2,%xmm22510vaesdeclast %xmm0,%xmm3,%xmm32511vaesdeclast %xmm0,%xmm4,%xmm42512vaesdeclast %xmm0,%xmm5,%xmm52513vaesdeclast %xmm0,%xmm6,%xmm62514vaesdeclast %xmm0,%xmm7,%xmm72515vpxor %xmm9,%xmm1,%xmm12516vpxor %xmm10,%xmm2,%xmm22517vpxor %xmm11,%xmm3,%xmm32518vpxor %xmm12,%xmm4,%xmm42519vpxor %xmm13,%xmm5,%xmm52520vpxor %xmm14,%xmm6,%xmm62521vpxor %xmm15,%xmm7,%xmm72522vmovdqu %xmm1,(%rsi)2523vmovdqu %xmm2,16(%rsi)2524vmovdqu %xmm3,32(%rsi)2525vmovdqu %xmm4,48(%rsi)2526vmovdqu %xmm5,64(%rsi)2527vmovdqu %xmm6,80(%rsi)2528addq $0x70,%rsi2529vmovdqa64 %xmm16,%xmm02530vmovdqa %xmm7,%xmm82531jmp .L_steal_cipher_amivrujEyduiFoi25322533.L_done_7_amivrujEyduiFoi:2534vpxor %xmm9,%xmm1,%xmm12535vpxor %xmm10,%xmm2,%xmm22536vpxor %xmm11,%xmm3,%xmm32537vpxor %xmm12,%xmm4,%xmm42538vpxor %xmm13,%xmm5,%xmm52539vpxor %xmm14,%xmm6,%xmm62540vpxor %xmm15,%xmm7,%xmm72541vmovdqu (%rcx),%xmm02542vpxor %xmm0,%xmm1,%xmm12543vpxor %xmm0,%xmm2,%xmm22544vpxor %xmm0,%xmm3,%xmm32545vpxor %xmm0,%xmm4,%xmm42546vpxor %xmm0,%xmm5,%xmm52547vpxor %xmm0,%xmm6,%xmm62548vpxor %xmm0,%xmm7,%xmm72549vmovdqu 16(%rcx),%xmm02550vaesdec %xmm0,%xmm1,%xmm12551vaesdec %xmm0,%xmm2,%xmm22552vaesdec %xmm0,%xmm3,%xmm32553vaesdec %xmm0,%xmm4,%xmm42554vaesdec %xmm0,%xmm5,%xmm52555vaesdec %xmm0,%xmm6,%xmm62556vaesdec %xmm0,%xmm7,%xmm72557vmovdqu 32(%rcx),%xmm02558vaesdec %xmm0,%xmm1,%xmm12559vaesdec %xmm0,%xmm2,%xmm22560vaesdec %xmm0,%xmm3,%xmm32561vaesdec %xmm0,%xmm4,%xmm42562vaesdec %xmm0,%xmm5,%xmm52563vaesdec %xmm0,%xmm6,%xmm62564vaesdec %xmm0,%xmm7,%xmm72565vmovdqu 48(%rcx),%xmm02566vaesdec %xmm0,%xmm1,%xmm12567vaesdec %xmm0,%xmm2,%xmm22568vaesdec %xmm0,%xmm3,%xmm32569vaesdec %xmm0,%xmm4,%xmm42570vaesdec %xmm0,%xmm5,%xmm52571vaesdec %xmm0,%xmm6,%xmm62572vaesdec %xmm0,%xmm7,%xmm72573vmovdqu 64(%rcx),%xmm02574vaesdec %xmm0,%xmm1,%xmm12575vaesdec %xmm0,%xmm2,%xmm22576vaesdec %xmm0,%xmm3,%xmm32577vaesdec %xmm0,%xmm4,%xmm42578vaesdec %xmm0,%xmm5,%xmm52579vaesdec %xmm0,%xmm6,%xmm62580vaesdec %xmm0,%xmm7,%xmm72581vmovdqu 80(%rcx),%xmm02582vaesdec %xmm0,%xmm1,%xmm12583vaesdec %xmm0,%xmm2,%xmm22584vaesdec %xmm0,%xmm3,%xmm32585vaesdec %xmm0,%xmm4,%xmm42586vaesdec %xmm0,%xmm5,%xmm52587vaesdec %xmm0,%xmm6,%xmm62588vaesdec %xmm0,%xmm7,%xmm72589vmovdqu 96(%rcx),%xmm02590vaesdec %xmm0,%xmm1,%xmm12591vaesdec %xmm0,%xmm2,%xmm22592vaesdec %xmm0,%xmm3,%xmm32593vaesdec %xmm0,%xmm4,%xmm42594vaesdec %xmm0,%xmm5,%xmm52595vaesdec %xmm0,%xmm6,%xmm62596vaesdec %xmm0,%xmm7,%xmm72597vmovdqu 112(%rcx),%xmm02598vaesdec %xmm0,%xmm1,%xmm12599vaesdec %xmm0,%xmm2,%xmm22600vaesdec %xmm0,%xmm3,%xmm32601vaesdec %xmm0,%xmm4,%xmm42602vaesdec %xmm0,%xmm5,%xmm52603vaesdec %xmm0,%xmm6,%xmm62604vaesdec %xmm0,%xmm7,%xmm72605vmovdqu 128(%rcx),%xmm02606vaesdec %xmm0,%xmm1,%xmm12607vaesdec %xmm0,%xmm2,%xmm22608vaesdec %xmm0,%xmm3,%xmm32609vaesdec %xmm0,%xmm4,%xmm42610vaesdec %xmm0,%xmm5,%xmm52611vaesdec %xmm0,%xmm6,%xmm62612vaesdec %xmm0,%xmm7,%xmm72613vmovdqu 144(%rcx),%xmm02614vaesdec %xmm0,%xmm1,%xmm12615vaesdec %xmm0,%xmm2,%xmm22616vaesdec %xmm0,%xmm3,%xmm32617vaesdec %xmm0,%xmm4,%xmm42618vaesdec %xmm0,%xmm5,%xmm52619vaesdec %xmm0,%xmm6,%xmm62620vaesdec %xmm0,%xmm7,%xmm72621vmovdqu 160(%rcx),%xmm02622vaesdeclast %xmm0,%xmm1,%xmm12623vaesdeclast %xmm0,%xmm2,%xmm22624vaesdeclast %xmm0,%xmm3,%xmm32625vaesdeclast %xmm0,%xmm4,%xmm42626vaesdeclast %xmm0,%xmm5,%xmm52627vaesdeclast %xmm0,%xmm6,%xmm62628vaesdeclast %xmm0,%xmm7,%xmm72629vpxor %xmm9,%xmm1,%xmm12630vpxor %xmm10,%xmm2,%xmm22631vpxor %xmm11,%xmm3,%xmm32632vpxor %xmm12,%xmm4,%xmm42633vpxor %xmm13,%xmm5,%xmm52634vpxor %xmm14,%xmm6,%xmm62635vpxor %xmm15,%xmm7,%xmm72636vmovdqu %xmm1,(%rsi)2637vmovdqu %xmm2,16(%rsi)2638vmovdqu %xmm3,32(%rsi)2639vmovdqu %xmm4,48(%rsi)2640vmovdqu %xmm5,64(%rsi)2641vmovdqu %xmm6,80(%rsi)2642addq $0x70,%rsi2643vmovdqa %xmm7,%xmm82644jmp .L_done_amivrujEyduiFoi26452646.L_num_blocks_is_6_amivrujEyduiFoi:2647vmovdqa 0(%rsp),%xmm92648movq 0(%rsp),%rax2649movq 8(%rsp),%rbx2650vmovdqu 0(%rdi),%xmm12651xorq %r11,%r112652shlq $1,%rax2653adcq %rbx,%rbx2654cmovcq %r10,%r112655xorq %r11,%rax2656movq %rax,16(%rsp)2657movq %rbx,16 + 8(%rsp)2658vmovdqa 16(%rsp),%xmm102659vmovdqu 16(%rdi),%xmm22660xorq %r11,%r112661shlq $1,%rax2662adcq %rbx,%rbx2663cmovcq %r10,%r112664xorq %r11,%rax2665movq %rax,32(%rsp)2666movq %rbx,32 + 8(%rsp)2667vmovdqa 32(%rsp),%xmm112668vmovdqu 32(%rdi),%xmm32669xorq %r11,%r112670shlq $1,%rax2671adcq %rbx,%rbx2672cmovcq %r10,%r112673xorq %r11,%rax2674movq %rax,48(%rsp)2675movq %rbx,48 + 8(%rsp)2676vmovdqa 48(%rsp),%xmm122677vmovdqu 48(%rdi),%xmm42678xorq %r11,%r112679shlq $1,%rax2680adcq %rbx,%rbx2681cmovcq %r10,%r112682xorq %r11,%rax2683movq %rax,64(%rsp)2684movq %rbx,64 + 8(%rsp)2685vmovdqa 64(%rsp),%xmm132686vmovdqu 64(%rdi),%xmm52687xorq %r11,%r112688shlq $1,%rax2689adcq %rbx,%rbx2690cmovcq %r10,%r112691xorq %r11,%rax2692movq %rax,80(%rsp)2693movq %rbx,80 + 8(%rsp)2694vmovdqa 80(%rsp),%xmm142695vmovdqu 80(%rdi),%xmm62696addq $0x60,%rdi2697andq $0xf,%rdx2698je .L_done_6_amivrujEyduiFoi26992700.L_steal_cipher_6_amivrujEyduiFoi:2701xorq %r11,%r112702shlq $1,%rax2703adcq %rbx,%rbx2704cmovcq %r10,%r112705xorq %r11,%rax2706movq %rax,16(%rsp)2707movq %rbx,24(%rsp)2708vmovdqa64 %xmm14,%xmm152709vmovdqa 16(%rsp),%xmm142710vpxor %xmm9,%xmm1,%xmm12711vpxor %xmm10,%xmm2,%xmm22712vpxor %xmm11,%xmm3,%xmm32713vpxor %xmm12,%xmm4,%xmm42714vpxor %xmm13,%xmm5,%xmm52715vpxor %xmm14,%xmm6,%xmm62716vmovdqu (%rcx),%xmm02717vpxor %xmm0,%xmm1,%xmm12718vpxor %xmm0,%xmm2,%xmm22719vpxor %xmm0,%xmm3,%xmm32720vpxor %xmm0,%xmm4,%xmm42721vpxor %xmm0,%xmm5,%xmm52722vpxor %xmm0,%xmm6,%xmm62723vmovdqu 16(%rcx),%xmm02724vaesdec %xmm0,%xmm1,%xmm12725vaesdec %xmm0,%xmm2,%xmm22726vaesdec %xmm0,%xmm3,%xmm32727vaesdec %xmm0,%xmm4,%xmm42728vaesdec %xmm0,%xmm5,%xmm52729vaesdec %xmm0,%xmm6,%xmm62730vmovdqu 32(%rcx),%xmm02731vaesdec %xmm0,%xmm1,%xmm12732vaesdec %xmm0,%xmm2,%xmm22733vaesdec %xmm0,%xmm3,%xmm32734vaesdec %xmm0,%xmm4,%xmm42735vaesdec %xmm0,%xmm5,%xmm52736vaesdec %xmm0,%xmm6,%xmm62737vmovdqu 48(%rcx),%xmm02738vaesdec %xmm0,%xmm1,%xmm12739vaesdec %xmm0,%xmm2,%xmm22740vaesdec %xmm0,%xmm3,%xmm32741vaesdec %xmm0,%xmm4,%xmm42742vaesdec %xmm0,%xmm5,%xmm52743vaesdec %xmm0,%xmm6,%xmm62744vmovdqu 64(%rcx),%xmm02745vaesdec %xmm0,%xmm1,%xmm12746vaesdec %xmm0,%xmm2,%xmm22747vaesdec %xmm0,%xmm3,%xmm32748vaesdec %xmm0,%xmm4,%xmm42749vaesdec %xmm0,%xmm5,%xmm52750vaesdec %xmm0,%xmm6,%xmm62751vmovdqu 80(%rcx),%xmm02752vaesdec %xmm0,%xmm1,%xmm12753vaesdec %xmm0,%xmm2,%xmm22754vaesdec %xmm0,%xmm3,%xmm32755vaesdec %xmm0,%xmm4,%xmm42756vaesdec %xmm0,%xmm5,%xmm52757vaesdec %xmm0,%xmm6,%xmm62758vmovdqu 96(%rcx),%xmm02759vaesdec %xmm0,%xmm1,%xmm12760vaesdec %xmm0,%xmm2,%xmm22761vaesdec %xmm0,%xmm3,%xmm32762vaesdec %xmm0,%xmm4,%xmm42763vaesdec %xmm0,%xmm5,%xmm52764vaesdec %xmm0,%xmm6,%xmm62765vmovdqu 112(%rcx),%xmm02766vaesdec %xmm0,%xmm1,%xmm12767vaesdec %xmm0,%xmm2,%xmm22768vaesdec %xmm0,%xmm3,%xmm32769vaesdec %xmm0,%xmm4,%xmm42770vaesdec %xmm0,%xmm5,%xmm52771vaesdec %xmm0,%xmm6,%xmm62772vmovdqu 128(%rcx),%xmm02773vaesdec %xmm0,%xmm1,%xmm12774vaesdec %xmm0,%xmm2,%xmm22775vaesdec %xmm0,%xmm3,%xmm32776vaesdec %xmm0,%xmm4,%xmm42777vaesdec %xmm0,%xmm5,%xmm52778vaesdec %xmm0,%xmm6,%xmm62779vmovdqu 144(%rcx),%xmm02780vaesdec %xmm0,%xmm1,%xmm12781vaesdec %xmm0,%xmm2,%xmm22782vaesdec %xmm0,%xmm3,%xmm32783vaesdec %xmm0,%xmm4,%xmm42784vaesdec %xmm0,%xmm5,%xmm52785vaesdec %xmm0,%xmm6,%xmm62786vmovdqu 160(%rcx),%xmm02787vaesdeclast %xmm0,%xmm1,%xmm12788vaesdeclast %xmm0,%xmm2,%xmm22789vaesdeclast %xmm0,%xmm3,%xmm32790vaesdeclast %xmm0,%xmm4,%xmm42791vaesdeclast %xmm0,%xmm5,%xmm52792vaesdeclast %xmm0,%xmm6,%xmm62793vpxor %xmm9,%xmm1,%xmm12794vpxor %xmm10,%xmm2,%xmm22795vpxor %xmm11,%xmm3,%xmm32796vpxor %xmm12,%xmm4,%xmm42797vpxor %xmm13,%xmm5,%xmm52798vpxor %xmm14,%xmm6,%xmm62799vmovdqu %xmm1,(%rsi)2800vmovdqu %xmm2,16(%rsi)2801vmovdqu %xmm3,32(%rsi)2802vmovdqu %xmm4,48(%rsi)2803vmovdqu %xmm5,64(%rsi)2804addq $0x60,%rsi2805vmovdqa %xmm15,%xmm02806vmovdqa %xmm6,%xmm82807jmp .L_steal_cipher_amivrujEyduiFoi28082809.L_done_6_amivrujEyduiFoi:2810vpxor %xmm9,%xmm1,%xmm12811vpxor %xmm10,%xmm2,%xmm22812vpxor %xmm11,%xmm3,%xmm32813vpxor %xmm12,%xmm4,%xmm42814vpxor %xmm13,%xmm5,%xmm52815vpxor %xmm14,%xmm6,%xmm62816vmovdqu (%rcx),%xmm02817vpxor %xmm0,%xmm1,%xmm12818vpxor %xmm0,%xmm2,%xmm22819vpxor %xmm0,%xmm3,%xmm32820vpxor %xmm0,%xmm4,%xmm42821vpxor %xmm0,%xmm5,%xmm52822vpxor %xmm0,%xmm6,%xmm62823vmovdqu 16(%rcx),%xmm02824vaesdec %xmm0,%xmm1,%xmm12825vaesdec %xmm0,%xmm2,%xmm22826vaesdec %xmm0,%xmm3,%xmm32827vaesdec %xmm0,%xmm4,%xmm42828vaesdec %xmm0,%xmm5,%xmm52829vaesdec %xmm0,%xmm6,%xmm62830vmovdqu 32(%rcx),%xmm02831vaesdec %xmm0,%xmm1,%xmm12832vaesdec %xmm0,%xmm2,%xmm22833vaesdec %xmm0,%xmm3,%xmm32834vaesdec %xmm0,%xmm4,%xmm42835vaesdec %xmm0,%xmm5,%xmm52836vaesdec %xmm0,%xmm6,%xmm62837vmovdqu 48(%rcx),%xmm02838vaesdec %xmm0,%xmm1,%xmm12839vaesdec %xmm0,%xmm2,%xmm22840vaesdec %xmm0,%xmm3,%xmm32841vaesdec %xmm0,%xmm4,%xmm42842vaesdec %xmm0,%xmm5,%xmm52843vaesdec %xmm0,%xmm6,%xmm62844vmovdqu 64(%rcx),%xmm02845vaesdec %xmm0,%xmm1,%xmm12846vaesdec %xmm0,%xmm2,%xmm22847vaesdec %xmm0,%xmm3,%xmm32848vaesdec %xmm0,%xmm4,%xmm42849vaesdec %xmm0,%xmm5,%xmm52850vaesdec %xmm0,%xmm6,%xmm62851vmovdqu 80(%rcx),%xmm02852vaesdec %xmm0,%xmm1,%xmm12853vaesdec %xmm0,%xmm2,%xmm22854vaesdec %xmm0,%xmm3,%xmm32855vaesdec %xmm0,%xmm4,%xmm42856vaesdec %xmm0,%xmm5,%xmm52857vaesdec %xmm0,%xmm6,%xmm62858vmovdqu 96(%rcx),%xmm02859vaesdec %xmm0,%xmm1,%xmm12860vaesdec %xmm0,%xmm2,%xmm22861vaesdec %xmm0,%xmm3,%xmm32862vaesdec %xmm0,%xmm4,%xmm42863vaesdec %xmm0,%xmm5,%xmm52864vaesdec %xmm0,%xmm6,%xmm62865vmovdqu 112(%rcx),%xmm02866vaesdec %xmm0,%xmm1,%xmm12867vaesdec %xmm0,%xmm2,%xmm22868vaesdec %xmm0,%xmm3,%xmm32869vaesdec %xmm0,%xmm4,%xmm42870vaesdec %xmm0,%xmm5,%xmm52871vaesdec %xmm0,%xmm6,%xmm62872vmovdqu 128(%rcx),%xmm02873vaesdec %xmm0,%xmm1,%xmm12874vaesdec %xmm0,%xmm2,%xmm22875vaesdec %xmm0,%xmm3,%xmm32876vaesdec %xmm0,%xmm4,%xmm42877vaesdec %xmm0,%xmm5,%xmm52878vaesdec %xmm0,%xmm6,%xmm62879vmovdqu 144(%rcx),%xmm02880vaesdec %xmm0,%xmm1,%xmm12881vaesdec %xmm0,%xmm2,%xmm22882vaesdec %xmm0,%xmm3,%xmm32883vaesdec %xmm0,%xmm4,%xmm42884vaesdec %xmm0,%xmm5,%xmm52885vaesdec %xmm0,%xmm6,%xmm62886vmovdqu 160(%rcx),%xmm02887vaesdeclast %xmm0,%xmm1,%xmm12888vaesdeclast %xmm0,%xmm2,%xmm22889vaesdeclast %xmm0,%xmm3,%xmm32890vaesdeclast %xmm0,%xmm4,%xmm42891vaesdeclast %xmm0,%xmm5,%xmm52892vaesdeclast %xmm0,%xmm6,%xmm62893vpxor %xmm9,%xmm1,%xmm12894vpxor %xmm10,%xmm2,%xmm22895vpxor %xmm11,%xmm3,%xmm32896vpxor %xmm12,%xmm4,%xmm42897vpxor %xmm13,%xmm5,%xmm52898vpxor %xmm14,%xmm6,%xmm62899vmovdqu %xmm1,(%rsi)2900vmovdqu %xmm2,16(%rsi)2901vmovdqu %xmm3,32(%rsi)2902vmovdqu %xmm4,48(%rsi)2903vmovdqu %xmm5,64(%rsi)2904addq $0x60,%rsi2905vmovdqa %xmm6,%xmm82906jmp .L_done_amivrujEyduiFoi29072908.L_num_blocks_is_5_amivrujEyduiFoi:2909vmovdqa 0(%rsp),%xmm92910movq 0(%rsp),%rax2911movq 8(%rsp),%rbx2912vmovdqu 0(%rdi),%xmm12913xorq %r11,%r112914shlq $1,%rax2915adcq %rbx,%rbx2916cmovcq %r10,%r112917xorq %r11,%rax2918movq %rax,16(%rsp)2919movq %rbx,16 + 8(%rsp)2920vmovdqa 16(%rsp),%xmm102921vmovdqu 16(%rdi),%xmm22922xorq %r11,%r112923shlq $1,%rax2924adcq %rbx,%rbx2925cmovcq %r10,%r112926xorq %r11,%rax2927movq %rax,32(%rsp)2928movq %rbx,32 + 8(%rsp)2929vmovdqa 32(%rsp),%xmm112930vmovdqu 32(%rdi),%xmm32931xorq %r11,%r112932shlq $1,%rax2933adcq %rbx,%rbx2934cmovcq %r10,%r112935xorq %r11,%rax2936movq %rax,48(%rsp)2937movq %rbx,48 + 8(%rsp)2938vmovdqa 48(%rsp),%xmm122939vmovdqu 48(%rdi),%xmm42940xorq %r11,%r112941shlq $1,%rax2942adcq %rbx,%rbx2943cmovcq %r10,%r112944xorq %r11,%rax2945movq %rax,64(%rsp)2946movq %rbx,64 + 8(%rsp)2947vmovdqa 64(%rsp),%xmm132948vmovdqu 64(%rdi),%xmm52949addq $0x50,%rdi2950andq $0xf,%rdx2951je .L_done_5_amivrujEyduiFoi29522953.L_steal_cipher_5_amivrujEyduiFoi:2954xorq %r11,%r112955shlq $1,%rax2956adcq %rbx,%rbx2957cmovcq %r10,%r112958xorq %r11,%rax2959movq %rax,16(%rsp)2960movq %rbx,24(%rsp)2961vmovdqa64 %xmm13,%xmm142962vmovdqa 16(%rsp),%xmm132963vpxor %xmm9,%xmm1,%xmm12964vpxor %xmm10,%xmm2,%xmm22965vpxor %xmm11,%xmm3,%xmm32966vpxor %xmm12,%xmm4,%xmm42967vpxor %xmm13,%xmm5,%xmm52968vmovdqu (%rcx),%xmm02969vpxor %xmm0,%xmm1,%xmm12970vpxor %xmm0,%xmm2,%xmm22971vpxor %xmm0,%xmm3,%xmm32972vpxor %xmm0,%xmm4,%xmm42973vpxor %xmm0,%xmm5,%xmm52974vmovdqu 16(%rcx),%xmm02975vaesdec %xmm0,%xmm1,%xmm12976vaesdec %xmm0,%xmm2,%xmm22977vaesdec %xmm0,%xmm3,%xmm32978vaesdec %xmm0,%xmm4,%xmm42979vaesdec %xmm0,%xmm5,%xmm52980vmovdqu 32(%rcx),%xmm02981vaesdec %xmm0,%xmm1,%xmm12982vaesdec %xmm0,%xmm2,%xmm22983vaesdec %xmm0,%xmm3,%xmm32984vaesdec %xmm0,%xmm4,%xmm42985vaesdec %xmm0,%xmm5,%xmm52986vmovdqu 48(%rcx),%xmm02987vaesdec %xmm0,%xmm1,%xmm12988vaesdec %xmm0,%xmm2,%xmm22989vaesdec %xmm0,%xmm3,%xmm32990vaesdec %xmm0,%xmm4,%xmm42991vaesdec %xmm0,%xmm5,%xmm52992vmovdqu 64(%rcx),%xmm02993vaesdec %xmm0,%xmm1,%xmm12994vaesdec %xmm0,%xmm2,%xmm22995vaesdec %xmm0,%xmm3,%xmm32996vaesdec %xmm0,%xmm4,%xmm42997vaesdec %xmm0,%xmm5,%xmm52998vmovdqu 80(%rcx),%xmm02999vaesdec %xmm0,%xmm1,%xmm13000vaesdec %xmm0,%xmm2,%xmm23001vaesdec %xmm0,%xmm3,%xmm33002vaesdec %xmm0,%xmm4,%xmm43003vaesdec %xmm0,%xmm5,%xmm53004vmovdqu 96(%rcx),%xmm03005vaesdec %xmm0,%xmm1,%xmm13006vaesdec %xmm0,%xmm2,%xmm23007vaesdec %xmm0,%xmm3,%xmm33008vaesdec %xmm0,%xmm4,%xmm43009vaesdec %xmm0,%xmm5,%xmm53010vmovdqu 112(%rcx),%xmm03011vaesdec %xmm0,%xmm1,%xmm13012vaesdec %xmm0,%xmm2,%xmm23013vaesdec %xmm0,%xmm3,%xmm33014vaesdec %xmm0,%xmm4,%xmm43015vaesdec %xmm0,%xmm5,%xmm53016vmovdqu 128(%rcx),%xmm03017vaesdec %xmm0,%xmm1,%xmm13018vaesdec %xmm0,%xmm2,%xmm23019vaesdec %xmm0,%xmm3,%xmm33020vaesdec %xmm0,%xmm4,%xmm43021vaesdec %xmm0,%xmm5,%xmm53022vmovdqu 144(%rcx),%xmm03023vaesdec %xmm0,%xmm1,%xmm13024vaesdec %xmm0,%xmm2,%xmm23025vaesdec %xmm0,%xmm3,%xmm33026vaesdec %xmm0,%xmm4,%xmm43027vaesdec %xmm0,%xmm5,%xmm53028vmovdqu 160(%rcx),%xmm03029vaesdeclast %xmm0,%xmm1,%xmm13030vaesdeclast %xmm0,%xmm2,%xmm23031vaesdeclast %xmm0,%xmm3,%xmm33032vaesdeclast %xmm0,%xmm4,%xmm43033vaesdeclast %xmm0,%xmm5,%xmm53034vpxor %xmm9,%xmm1,%xmm13035vpxor %xmm10,%xmm2,%xmm23036vpxor %xmm11,%xmm3,%xmm33037vpxor %xmm12,%xmm4,%xmm43038vpxor %xmm13,%xmm5,%xmm53039vmovdqu %xmm1,(%rsi)3040vmovdqu %xmm2,16(%rsi)3041vmovdqu %xmm3,32(%rsi)3042vmovdqu %xmm4,48(%rsi)3043addq $0x50,%rsi3044vmovdqa %xmm14,%xmm03045vmovdqa %xmm5,%xmm83046jmp .L_steal_cipher_amivrujEyduiFoi30473048.L_done_5_amivrujEyduiFoi:3049vpxor %xmm9,%xmm1,%xmm13050vpxor %xmm10,%xmm2,%xmm23051vpxor %xmm11,%xmm3,%xmm33052vpxor %xmm12,%xmm4,%xmm43053vpxor %xmm13,%xmm5,%xmm53054vmovdqu (%rcx),%xmm03055vpxor %xmm0,%xmm1,%xmm13056vpxor %xmm0,%xmm2,%xmm23057vpxor %xmm0,%xmm3,%xmm33058vpxor %xmm0,%xmm4,%xmm43059vpxor %xmm0,%xmm5,%xmm53060vmovdqu 16(%rcx),%xmm03061vaesdec %xmm0,%xmm1,%xmm13062vaesdec %xmm0,%xmm2,%xmm23063vaesdec %xmm0,%xmm3,%xmm33064vaesdec %xmm0,%xmm4,%xmm43065vaesdec %xmm0,%xmm5,%xmm53066vmovdqu 32(%rcx),%xmm03067vaesdec %xmm0,%xmm1,%xmm13068vaesdec %xmm0,%xmm2,%xmm23069vaesdec %xmm0,%xmm3,%xmm33070vaesdec %xmm0,%xmm4,%xmm43071vaesdec %xmm0,%xmm5,%xmm53072vmovdqu 48(%rcx),%xmm03073vaesdec %xmm0,%xmm1,%xmm13074vaesdec %xmm0,%xmm2,%xmm23075vaesdec %xmm0,%xmm3,%xmm33076vaesdec %xmm0,%xmm4,%xmm43077vaesdec %xmm0,%xmm5,%xmm53078vmovdqu 64(%rcx),%xmm03079vaesdec %xmm0,%xmm1,%xmm13080vaesdec %xmm0,%xmm2,%xmm23081vaesdec %xmm0,%xmm3,%xmm33082vaesdec %xmm0,%xmm4,%xmm43083vaesdec %xmm0,%xmm5,%xmm53084vmovdqu 80(%rcx),%xmm03085vaesdec %xmm0,%xmm1,%xmm13086vaesdec %xmm0,%xmm2,%xmm23087vaesdec %xmm0,%xmm3,%xmm33088vaesdec %xmm0,%xmm4,%xmm43089vaesdec %xmm0,%xmm5,%xmm53090vmovdqu 96(%rcx),%xmm03091vaesdec %xmm0,%xmm1,%xmm13092vaesdec %xmm0,%xmm2,%xmm23093vaesdec %xmm0,%xmm3,%xmm33094vaesdec %xmm0,%xmm4,%xmm43095vaesdec %xmm0,%xmm5,%xmm53096vmovdqu 112(%rcx),%xmm03097vaesdec %xmm0,%xmm1,%xmm13098vaesdec %xmm0,%xmm2,%xmm23099vaesdec %xmm0,%xmm3,%xmm33100vaesdec %xmm0,%xmm4,%xmm43101vaesdec %xmm0,%xmm5,%xmm53102vmovdqu 128(%rcx),%xmm03103vaesdec %xmm0,%xmm1,%xmm13104vaesdec %xmm0,%xmm2,%xmm23105vaesdec %xmm0,%xmm3,%xmm33106vaesdec %xmm0,%xmm4,%xmm43107vaesdec %xmm0,%xmm5,%xmm53108vmovdqu 144(%rcx),%xmm03109vaesdec %xmm0,%xmm1,%xmm13110vaesdec %xmm0,%xmm2,%xmm23111vaesdec %xmm0,%xmm3,%xmm33112vaesdec %xmm0,%xmm4,%xmm43113vaesdec %xmm0,%xmm5,%xmm53114vmovdqu 160(%rcx),%xmm03115vaesdeclast %xmm0,%xmm1,%xmm13116vaesdeclast %xmm0,%xmm2,%xmm23117vaesdeclast %xmm0,%xmm3,%xmm33118vaesdeclast %xmm0,%xmm4,%xmm43119vaesdeclast %xmm0,%xmm5,%xmm53120vpxor %xmm9,%xmm1,%xmm13121vpxor %xmm10,%xmm2,%xmm23122vpxor %xmm11,%xmm3,%xmm33123vpxor %xmm12,%xmm4,%xmm43124vpxor %xmm13,%xmm5,%xmm53125vmovdqu %xmm1,(%rsi)3126vmovdqu %xmm2,16(%rsi)3127vmovdqu %xmm3,32(%rsi)3128vmovdqu %xmm4,48(%rsi)3129addq $0x50,%rsi3130vmovdqa %xmm5,%xmm83131jmp .L_done_amivrujEyduiFoi31323133.L_num_blocks_is_4_amivrujEyduiFoi:3134vmovdqa 0(%rsp),%xmm93135movq 0(%rsp),%rax3136movq 8(%rsp),%rbx3137vmovdqu 0(%rdi),%xmm13138xorq %r11,%r113139shlq $1,%rax3140adcq %rbx,%rbx3141cmovcq %r10,%r113142xorq %r11,%rax3143movq %rax,16(%rsp)3144movq %rbx,16 + 8(%rsp)3145vmovdqa 16(%rsp),%xmm103146vmovdqu 16(%rdi),%xmm23147xorq %r11,%r113148shlq $1,%rax3149adcq %rbx,%rbx3150cmovcq %r10,%r113151xorq %r11,%rax3152movq %rax,32(%rsp)3153movq %rbx,32 + 8(%rsp)3154vmovdqa 32(%rsp),%xmm113155vmovdqu 32(%rdi),%xmm33156xorq %r11,%r113157shlq $1,%rax3158adcq %rbx,%rbx3159cmovcq %r10,%r113160xorq %r11,%rax3161movq %rax,48(%rsp)3162movq %rbx,48 + 8(%rsp)3163vmovdqa 48(%rsp),%xmm123164vmovdqu 48(%rdi),%xmm43165addq $0x40,%rdi3166andq $0xf,%rdx3167je .L_done_4_amivrujEyduiFoi31683169.L_steal_cipher_4_amivrujEyduiFoi:3170xorq %r11,%r113171shlq $1,%rax3172adcq %rbx,%rbx3173cmovcq %r10,%r113174xorq %r11,%rax3175movq %rax,16(%rsp)3176movq %rbx,24(%rsp)3177vmovdqa64 %xmm12,%xmm133178vmovdqa 16(%rsp),%xmm123179vpxor %xmm9,%xmm1,%xmm13180vpxor %xmm10,%xmm2,%xmm23181vpxor %xmm11,%xmm3,%xmm33182vpxor %xmm12,%xmm4,%xmm43183vmovdqu (%rcx),%xmm03184vpxor %xmm0,%xmm1,%xmm13185vpxor %xmm0,%xmm2,%xmm23186vpxor %xmm0,%xmm3,%xmm33187vpxor %xmm0,%xmm4,%xmm43188vmovdqu 16(%rcx),%xmm03189vaesdec %xmm0,%xmm1,%xmm13190vaesdec %xmm0,%xmm2,%xmm23191vaesdec %xmm0,%xmm3,%xmm33192vaesdec %xmm0,%xmm4,%xmm43193vmovdqu 32(%rcx),%xmm03194vaesdec %xmm0,%xmm1,%xmm13195vaesdec %xmm0,%xmm2,%xmm23196vaesdec %xmm0,%xmm3,%xmm33197vaesdec %xmm0,%xmm4,%xmm43198vmovdqu 48(%rcx),%xmm03199vaesdec %xmm0,%xmm1,%xmm13200vaesdec %xmm0,%xmm2,%xmm23201vaesdec %xmm0,%xmm3,%xmm33202vaesdec %xmm0,%xmm4,%xmm43203vmovdqu 64(%rcx),%xmm03204vaesdec %xmm0,%xmm1,%xmm13205vaesdec %xmm0,%xmm2,%xmm23206vaesdec %xmm0,%xmm3,%xmm33207vaesdec %xmm0,%xmm4,%xmm43208vmovdqu 80(%rcx),%xmm03209vaesdec %xmm0,%xmm1,%xmm13210vaesdec %xmm0,%xmm2,%xmm23211vaesdec %xmm0,%xmm3,%xmm33212vaesdec %xmm0,%xmm4,%xmm43213vmovdqu 96(%rcx),%xmm03214vaesdec %xmm0,%xmm1,%xmm13215vaesdec %xmm0,%xmm2,%xmm23216vaesdec %xmm0,%xmm3,%xmm33217vaesdec %xmm0,%xmm4,%xmm43218vmovdqu 112(%rcx),%xmm03219vaesdec %xmm0,%xmm1,%xmm13220vaesdec %xmm0,%xmm2,%xmm23221vaesdec %xmm0,%xmm3,%xmm33222vaesdec %xmm0,%xmm4,%xmm43223vmovdqu 128(%rcx),%xmm03224vaesdec %xmm0,%xmm1,%xmm13225vaesdec %xmm0,%xmm2,%xmm23226vaesdec %xmm0,%xmm3,%xmm33227vaesdec %xmm0,%xmm4,%xmm43228vmovdqu 144(%rcx),%xmm03229vaesdec %xmm0,%xmm1,%xmm13230vaesdec %xmm0,%xmm2,%xmm23231vaesdec %xmm0,%xmm3,%xmm33232vaesdec %xmm0,%xmm4,%xmm43233vmovdqu 160(%rcx),%xmm03234vaesdeclast %xmm0,%xmm1,%xmm13235vaesdeclast %xmm0,%xmm2,%xmm23236vaesdeclast %xmm0,%xmm3,%xmm33237vaesdeclast %xmm0,%xmm4,%xmm43238vpxor %xmm9,%xmm1,%xmm13239vpxor %xmm10,%xmm2,%xmm23240vpxor %xmm11,%xmm3,%xmm33241vpxor %xmm12,%xmm4,%xmm43242vmovdqu %xmm1,(%rsi)3243vmovdqu %xmm2,16(%rsi)3244vmovdqu %xmm3,32(%rsi)3245addq $0x40,%rsi3246vmovdqa %xmm13,%xmm03247vmovdqa %xmm4,%xmm83248jmp .L_steal_cipher_amivrujEyduiFoi32493250.L_done_4_amivrujEyduiFoi:3251vpxor %xmm9,%xmm1,%xmm13252vpxor %xmm10,%xmm2,%xmm23253vpxor %xmm11,%xmm3,%xmm33254vpxor %xmm12,%xmm4,%xmm43255vmovdqu (%rcx),%xmm03256vpxor %xmm0,%xmm1,%xmm13257vpxor %xmm0,%xmm2,%xmm23258vpxor %xmm0,%xmm3,%xmm33259vpxor %xmm0,%xmm4,%xmm43260vmovdqu 16(%rcx),%xmm03261vaesdec %xmm0,%xmm1,%xmm13262vaesdec %xmm0,%xmm2,%xmm23263vaesdec %xmm0,%xmm3,%xmm33264vaesdec %xmm0,%xmm4,%xmm43265vmovdqu 32(%rcx),%xmm03266vaesdec %xmm0,%xmm1,%xmm13267vaesdec %xmm0,%xmm2,%xmm23268vaesdec %xmm0,%xmm3,%xmm33269vaesdec %xmm0,%xmm4,%xmm43270vmovdqu 48(%rcx),%xmm03271vaesdec %xmm0,%xmm1,%xmm13272vaesdec %xmm0,%xmm2,%xmm23273vaesdec %xmm0,%xmm3,%xmm33274vaesdec %xmm0,%xmm4,%xmm43275vmovdqu 64(%rcx),%xmm03276vaesdec %xmm0,%xmm1,%xmm13277vaesdec %xmm0,%xmm2,%xmm23278vaesdec %xmm0,%xmm3,%xmm33279vaesdec %xmm0,%xmm4,%xmm43280vmovdqu 80(%rcx),%xmm03281vaesdec %xmm0,%xmm1,%xmm13282vaesdec %xmm0,%xmm2,%xmm23283vaesdec %xmm0,%xmm3,%xmm33284vaesdec %xmm0,%xmm4,%xmm43285vmovdqu 96(%rcx),%xmm03286vaesdec %xmm0,%xmm1,%xmm13287vaesdec %xmm0,%xmm2,%xmm23288vaesdec %xmm0,%xmm3,%xmm33289vaesdec %xmm0,%xmm4,%xmm43290vmovdqu 112(%rcx),%xmm03291vaesdec %xmm0,%xmm1,%xmm13292vaesdec %xmm0,%xmm2,%xmm23293vaesdec %xmm0,%xmm3,%xmm33294vaesdec %xmm0,%xmm4,%xmm43295vmovdqu 128(%rcx),%xmm03296vaesdec %xmm0,%xmm1,%xmm13297vaesdec %xmm0,%xmm2,%xmm23298vaesdec %xmm0,%xmm3,%xmm33299vaesdec %xmm0,%xmm4,%xmm43300vmovdqu 144(%rcx),%xmm03301vaesdec %xmm0,%xmm1,%xmm13302vaesdec %xmm0,%xmm2,%xmm23303vaesdec %xmm0,%xmm3,%xmm33304vaesdec %xmm0,%xmm4,%xmm43305vmovdqu 160(%rcx),%xmm03306vaesdeclast %xmm0,%xmm1,%xmm13307vaesdeclast %xmm0,%xmm2,%xmm23308vaesdeclast %xmm0,%xmm3,%xmm33309vaesdeclast %xmm0,%xmm4,%xmm43310vpxor %xmm9,%xmm1,%xmm13311vpxor %xmm10,%xmm2,%xmm23312vpxor %xmm11,%xmm3,%xmm33313vpxor %xmm12,%xmm4,%xmm43314vmovdqu %xmm1,(%rsi)3315vmovdqu %xmm2,16(%rsi)3316vmovdqu %xmm3,32(%rsi)3317addq $0x40,%rsi3318vmovdqa %xmm4,%xmm83319jmp .L_done_amivrujEyduiFoi33203321.L_num_blocks_is_3_amivrujEyduiFoi:3322vmovdqa 0(%rsp),%xmm93323movq 0(%rsp),%rax3324movq 8(%rsp),%rbx3325vmovdqu 0(%rdi),%xmm13326xorq %r11,%r113327shlq $1,%rax3328adcq %rbx,%rbx3329cmovcq %r10,%r113330xorq %r11,%rax3331movq %rax,16(%rsp)3332movq %rbx,16 + 8(%rsp)3333vmovdqa 16(%rsp),%xmm103334vmovdqu 16(%rdi),%xmm23335xorq %r11,%r113336shlq $1,%rax3337adcq %rbx,%rbx3338cmovcq %r10,%r113339xorq %r11,%rax3340movq %rax,32(%rsp)3341movq %rbx,32 + 8(%rsp)3342vmovdqa 32(%rsp),%xmm113343vmovdqu 32(%rdi),%xmm33344addq $0x30,%rdi3345andq $0xf,%rdx3346je .L_done_3_amivrujEyduiFoi33473348.L_steal_cipher_3_amivrujEyduiFoi:3349xorq %r11,%r113350shlq $1,%rax3351adcq %rbx,%rbx3352cmovcq %r10,%r113353xorq %r11,%rax3354movq %rax,16(%rsp)3355movq %rbx,24(%rsp)3356vmovdqa64 %xmm11,%xmm123357vmovdqa 16(%rsp),%xmm113358vpxor %xmm9,%xmm1,%xmm13359vpxor %xmm10,%xmm2,%xmm23360vpxor %xmm11,%xmm3,%xmm33361vmovdqu (%rcx),%xmm03362vpxor %xmm0,%xmm1,%xmm13363vpxor %xmm0,%xmm2,%xmm23364vpxor %xmm0,%xmm3,%xmm33365vmovdqu 16(%rcx),%xmm03366vaesdec %xmm0,%xmm1,%xmm13367vaesdec %xmm0,%xmm2,%xmm23368vaesdec %xmm0,%xmm3,%xmm33369vmovdqu 32(%rcx),%xmm03370vaesdec %xmm0,%xmm1,%xmm13371vaesdec %xmm0,%xmm2,%xmm23372vaesdec %xmm0,%xmm3,%xmm33373vmovdqu 48(%rcx),%xmm03374vaesdec %xmm0,%xmm1,%xmm13375vaesdec %xmm0,%xmm2,%xmm23376vaesdec %xmm0,%xmm3,%xmm33377vmovdqu 64(%rcx),%xmm03378vaesdec %xmm0,%xmm1,%xmm13379vaesdec %xmm0,%xmm2,%xmm23380vaesdec %xmm0,%xmm3,%xmm33381vmovdqu 80(%rcx),%xmm03382vaesdec %xmm0,%xmm1,%xmm13383vaesdec %xmm0,%xmm2,%xmm23384vaesdec %xmm0,%xmm3,%xmm33385vmovdqu 96(%rcx),%xmm03386vaesdec %xmm0,%xmm1,%xmm13387vaesdec %xmm0,%xmm2,%xmm23388vaesdec %xmm0,%xmm3,%xmm33389vmovdqu 112(%rcx),%xmm03390vaesdec %xmm0,%xmm1,%xmm13391vaesdec %xmm0,%xmm2,%xmm23392vaesdec %xmm0,%xmm3,%xmm33393vmovdqu 128(%rcx),%xmm03394vaesdec %xmm0,%xmm1,%xmm13395vaesdec %xmm0,%xmm2,%xmm23396vaesdec %xmm0,%xmm3,%xmm33397vmovdqu 144(%rcx),%xmm03398vaesdec %xmm0,%xmm1,%xmm13399vaesdec %xmm0,%xmm2,%xmm23400vaesdec %xmm0,%xmm3,%xmm33401vmovdqu 160(%rcx),%xmm03402vaesdeclast %xmm0,%xmm1,%xmm13403vaesdeclast %xmm0,%xmm2,%xmm23404vaesdeclast %xmm0,%xmm3,%xmm33405vpxor %xmm9,%xmm1,%xmm13406vpxor %xmm10,%xmm2,%xmm23407vpxor %xmm11,%xmm3,%xmm33408vmovdqu %xmm1,(%rsi)3409vmovdqu %xmm2,16(%rsi)3410addq $0x30,%rsi3411vmovdqa %xmm12,%xmm03412vmovdqa %xmm3,%xmm83413jmp .L_steal_cipher_amivrujEyduiFoi34143415.L_done_3_amivrujEyduiFoi:3416vpxor %xmm9,%xmm1,%xmm13417vpxor %xmm10,%xmm2,%xmm23418vpxor %xmm11,%xmm3,%xmm33419vmovdqu (%rcx),%xmm03420vpxor %xmm0,%xmm1,%xmm13421vpxor %xmm0,%xmm2,%xmm23422vpxor %xmm0,%xmm3,%xmm33423vmovdqu 16(%rcx),%xmm03424vaesdec %xmm0,%xmm1,%xmm13425vaesdec %xmm0,%xmm2,%xmm23426vaesdec %xmm0,%xmm3,%xmm33427vmovdqu 32(%rcx),%xmm03428vaesdec %xmm0,%xmm1,%xmm13429vaesdec %xmm0,%xmm2,%xmm23430vaesdec %xmm0,%xmm3,%xmm33431vmovdqu 48(%rcx),%xmm03432vaesdec %xmm0,%xmm1,%xmm13433vaesdec %xmm0,%xmm2,%xmm23434vaesdec %xmm0,%xmm3,%xmm33435vmovdqu 64(%rcx),%xmm03436vaesdec %xmm0,%xmm1,%xmm13437vaesdec %xmm0,%xmm2,%xmm23438vaesdec %xmm0,%xmm3,%xmm33439vmovdqu 80(%rcx),%xmm03440vaesdec %xmm0,%xmm1,%xmm13441vaesdec %xmm0,%xmm2,%xmm23442vaesdec %xmm0,%xmm3,%xmm33443vmovdqu 96(%rcx),%xmm03444vaesdec %xmm0,%xmm1,%xmm13445vaesdec %xmm0,%xmm2,%xmm23446vaesdec %xmm0,%xmm3,%xmm33447vmovdqu 112(%rcx),%xmm03448vaesdec %xmm0,%xmm1,%xmm13449vaesdec %xmm0,%xmm2,%xmm23450vaesdec %xmm0,%xmm3,%xmm33451vmovdqu 128(%rcx),%xmm03452vaesdec %xmm0,%xmm1,%xmm13453vaesdec %xmm0,%xmm2,%xmm23454vaesdec %xmm0,%xmm3,%xmm33455vmovdqu 144(%rcx),%xmm03456vaesdec %xmm0,%xmm1,%xmm13457vaesdec %xmm0,%xmm2,%xmm23458vaesdec %xmm0,%xmm3,%xmm33459vmovdqu 160(%rcx),%xmm03460vaesdeclast %xmm0,%xmm1,%xmm13461vaesdeclast %xmm0,%xmm2,%xmm23462vaesdeclast %xmm0,%xmm3,%xmm33463vpxor %xmm9,%xmm1,%xmm13464vpxor %xmm10,%xmm2,%xmm23465vpxor %xmm11,%xmm3,%xmm33466vmovdqu %xmm1,(%rsi)3467vmovdqu %xmm2,16(%rsi)3468addq $0x30,%rsi3469vmovdqa %xmm3,%xmm83470jmp .L_done_amivrujEyduiFoi34713472.L_num_blocks_is_2_amivrujEyduiFoi:3473vmovdqa 0(%rsp),%xmm93474movq 0(%rsp),%rax3475movq 8(%rsp),%rbx3476vmovdqu 0(%rdi),%xmm13477xorq %r11,%r113478shlq $1,%rax3479adcq %rbx,%rbx3480cmovcq %r10,%r113481xorq %r11,%rax3482movq %rax,16(%rsp)3483movq %rbx,16 + 8(%rsp)3484vmovdqa 16(%rsp),%xmm103485vmovdqu 16(%rdi),%xmm23486addq $0x20,%rdi3487andq $0xf,%rdx3488je .L_done_2_amivrujEyduiFoi34893490.L_steal_cipher_2_amivrujEyduiFoi:3491xorq %r11,%r113492shlq $1,%rax3493adcq %rbx,%rbx3494cmovcq %r10,%r113495xorq %r11,%rax3496movq %rax,16(%rsp)3497movq %rbx,24(%rsp)3498vmovdqa64 %xmm10,%xmm113499vmovdqa 16(%rsp),%xmm103500vpxor %xmm9,%xmm1,%xmm13501vpxor %xmm10,%xmm2,%xmm23502vmovdqu (%rcx),%xmm03503vpxor %xmm0,%xmm1,%xmm13504vpxor %xmm0,%xmm2,%xmm23505vmovdqu 16(%rcx),%xmm03506vaesdec %xmm0,%xmm1,%xmm13507vaesdec %xmm0,%xmm2,%xmm23508vmovdqu 32(%rcx),%xmm03509vaesdec %xmm0,%xmm1,%xmm13510vaesdec %xmm0,%xmm2,%xmm23511vmovdqu 48(%rcx),%xmm03512vaesdec %xmm0,%xmm1,%xmm13513vaesdec %xmm0,%xmm2,%xmm23514vmovdqu 64(%rcx),%xmm03515vaesdec %xmm0,%xmm1,%xmm13516vaesdec %xmm0,%xmm2,%xmm23517vmovdqu 80(%rcx),%xmm03518vaesdec %xmm0,%xmm1,%xmm13519vaesdec %xmm0,%xmm2,%xmm23520vmovdqu 96(%rcx),%xmm03521vaesdec %xmm0,%xmm1,%xmm13522vaesdec %xmm0,%xmm2,%xmm23523vmovdqu 112(%rcx),%xmm03524vaesdec %xmm0,%xmm1,%xmm13525vaesdec %xmm0,%xmm2,%xmm23526vmovdqu 128(%rcx),%xmm03527vaesdec %xmm0,%xmm1,%xmm13528vaesdec %xmm0,%xmm2,%xmm23529vmovdqu 144(%rcx),%xmm03530vaesdec %xmm0,%xmm1,%xmm13531vaesdec %xmm0,%xmm2,%xmm23532vmovdqu 160(%rcx),%xmm03533vaesdeclast %xmm0,%xmm1,%xmm13534vaesdeclast %xmm0,%xmm2,%xmm23535vpxor %xmm9,%xmm1,%xmm13536vpxor %xmm10,%xmm2,%xmm23537vmovdqu %xmm1,(%rsi)3538addq $0x20,%rsi3539vmovdqa %xmm11,%xmm03540vmovdqa %xmm2,%xmm83541jmp .L_steal_cipher_amivrujEyduiFoi35423543.L_done_2_amivrujEyduiFoi:3544vpxor %xmm9,%xmm1,%xmm13545vpxor %xmm10,%xmm2,%xmm23546vmovdqu (%rcx),%xmm03547vpxor %xmm0,%xmm1,%xmm13548vpxor %xmm0,%xmm2,%xmm23549vmovdqu 16(%rcx),%xmm03550vaesdec %xmm0,%xmm1,%xmm13551vaesdec %xmm0,%xmm2,%xmm23552vmovdqu 32(%rcx),%xmm03553vaesdec %xmm0,%xmm1,%xmm13554vaesdec %xmm0,%xmm2,%xmm23555vmovdqu 48(%rcx),%xmm03556vaesdec %xmm0,%xmm1,%xmm13557vaesdec %xmm0,%xmm2,%xmm23558vmovdqu 64(%rcx),%xmm03559vaesdec %xmm0,%xmm1,%xmm13560vaesdec %xmm0,%xmm2,%xmm23561vmovdqu 80(%rcx),%xmm03562vaesdec %xmm0,%xmm1,%xmm13563vaesdec %xmm0,%xmm2,%xmm23564vmovdqu 96(%rcx),%xmm03565vaesdec %xmm0,%xmm1,%xmm13566vaesdec %xmm0,%xmm2,%xmm23567vmovdqu 112(%rcx),%xmm03568vaesdec %xmm0,%xmm1,%xmm13569vaesdec %xmm0,%xmm2,%xmm23570vmovdqu 128(%rcx),%xmm03571vaesdec %xmm0,%xmm1,%xmm13572vaesdec %xmm0,%xmm2,%xmm23573vmovdqu 144(%rcx),%xmm03574vaesdec %xmm0,%xmm1,%xmm13575vaesdec %xmm0,%xmm2,%xmm23576vmovdqu 160(%rcx),%xmm03577vaesdeclast %xmm0,%xmm1,%xmm13578vaesdeclast %xmm0,%xmm2,%xmm23579vpxor %xmm9,%xmm1,%xmm13580vpxor %xmm10,%xmm2,%xmm23581vmovdqu %xmm1,(%rsi)3582addq $0x20,%rsi3583vmovdqa %xmm2,%xmm83584jmp .L_done_amivrujEyduiFoi35853586.L_num_blocks_is_1_amivrujEyduiFoi:3587vmovdqa 0(%rsp),%xmm93588movq 0(%rsp),%rax3589movq 8(%rsp),%rbx3590vmovdqu 0(%rdi),%xmm13591addq $0x10,%rdi3592andq $0xf,%rdx3593je .L_done_1_amivrujEyduiFoi35943595.L_steal_cipher_1_amivrujEyduiFoi:3596xorq %r11,%r113597shlq $1,%rax3598adcq %rbx,%rbx3599cmovcq %r10,%r113600xorq %r11,%rax3601movq %rax,16(%rsp)3602movq %rbx,24(%rsp)3603vmovdqa64 %xmm9,%xmm103604vmovdqa 16(%rsp),%xmm93605vpxor %xmm9,%xmm1,%xmm13606vmovdqu (%rcx),%xmm03607vpxor %xmm0,%xmm1,%xmm13608vmovdqu 16(%rcx),%xmm03609vaesdec %xmm0,%xmm1,%xmm13610vmovdqu 32(%rcx),%xmm03611vaesdec %xmm0,%xmm1,%xmm13612vmovdqu 48(%rcx),%xmm03613vaesdec %xmm0,%xmm1,%xmm13614vmovdqu 64(%rcx),%xmm03615vaesdec %xmm0,%xmm1,%xmm13616vmovdqu 80(%rcx),%xmm03617vaesdec %xmm0,%xmm1,%xmm13618vmovdqu 96(%rcx),%xmm03619vaesdec %xmm0,%xmm1,%xmm13620vmovdqu 112(%rcx),%xmm03621vaesdec %xmm0,%xmm1,%xmm13622vmovdqu 128(%rcx),%xmm03623vaesdec %xmm0,%xmm1,%xmm13624vmovdqu 144(%rcx),%xmm03625vaesdec %xmm0,%xmm1,%xmm13626vmovdqu 160(%rcx),%xmm03627vaesdeclast %xmm0,%xmm1,%xmm13628vpxor %xmm9,%xmm1,%xmm13629addq $0x10,%rsi3630vmovdqa %xmm10,%xmm03631vmovdqa %xmm1,%xmm83632jmp .L_steal_cipher_amivrujEyduiFoi36333634.L_done_1_amivrujEyduiFoi:3635vpxor %xmm9,%xmm1,%xmm13636vmovdqu (%rcx),%xmm03637vpxor %xmm0,%xmm1,%xmm13638vmovdqu 16(%rcx),%xmm03639vaesdec %xmm0,%xmm1,%xmm13640vmovdqu 32(%rcx),%xmm03641vaesdec %xmm0,%xmm1,%xmm13642vmovdqu 48(%rcx),%xmm03643vaesdec %xmm0,%xmm1,%xmm13644vmovdqu 64(%rcx),%xmm03645vaesdec %xmm0,%xmm1,%xmm13646vmovdqu 80(%rcx),%xmm03647vaesdec %xmm0,%xmm1,%xmm13648vmovdqu 96(%rcx),%xmm03649vaesdec %xmm0,%xmm1,%xmm13650vmovdqu 112(%rcx),%xmm03651vaesdec %xmm0,%xmm1,%xmm13652vmovdqu 128(%rcx),%xmm03653vaesdec %xmm0,%xmm1,%xmm13654vmovdqu 144(%rcx),%xmm03655vaesdec %xmm0,%xmm1,%xmm13656vmovdqu 160(%rcx),%xmm03657vaesdeclast %xmm0,%xmm1,%xmm13658vpxor %xmm9,%xmm1,%xmm13659addq $0x10,%rsi3660vmovdqa %xmm1,%xmm83661jmp .L_done_amivrujEyduiFoi3662.cfi_endproc3663.globl aesni_xts_256_encrypt_avx5123664.hidden aesni_xts_256_encrypt_avx5123665.type aesni_xts_256_encrypt_avx512,@function3666.align 323667aesni_xts_256_encrypt_avx512:3668.cfi_startproc3669.byte 243,15,30,2503670pushq %rbp3671movq %rsp,%rbp3672subq $136,%rsp3673andq $0xffffffffffffffc0,%rsp3674movq %rbx,128(%rsp)3675movq $0x87,%r103676vmovdqu (%r9),%xmm13677vpxor (%r8),%xmm1,%xmm13678vaesenc 16(%r8),%xmm1,%xmm13679vaesenc 32(%r8),%xmm1,%xmm13680vaesenc 48(%r8),%xmm1,%xmm13681vaesenc 64(%r8),%xmm1,%xmm13682vaesenc 80(%r8),%xmm1,%xmm13683vaesenc 96(%r8),%xmm1,%xmm13684vaesenc 112(%r8),%xmm1,%xmm13685vaesenc 128(%r8),%xmm1,%xmm13686vaesenc 144(%r8),%xmm1,%xmm13687vaesenc 160(%r8),%xmm1,%xmm13688vaesenc 176(%r8),%xmm1,%xmm13689vaesenc 192(%r8),%xmm1,%xmm13690vaesenc 208(%r8),%xmm1,%xmm13691vaesenclast 224(%r8),%xmm1,%xmm13692vmovdqa %xmm1,(%rsp)36933694cmpq $0x80,%rdx3695jl .L_less_than_128_bytes_wcpqaDvsGlbjGoe3696vpbroadcastq %r10,%zmm253697cmpq $0x100,%rdx3698jge .L_start_by16_wcpqaDvsGlbjGoe3699cmpq $0x80,%rdx3700jge .L_start_by8_wcpqaDvsGlbjGoe37013702.L_do_n_blocks_wcpqaDvsGlbjGoe:3703cmpq $0x0,%rdx3704je .L_ret_wcpqaDvsGlbjGoe3705cmpq $0x70,%rdx3706jge .L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe3707cmpq $0x60,%rdx3708jge .L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe3709cmpq $0x50,%rdx3710jge .L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe3711cmpq $0x40,%rdx3712jge .L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe3713cmpq $0x30,%rdx3714jge .L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe3715cmpq $0x20,%rdx3716jge .L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe3717cmpq $0x10,%rdx3718jge .L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe3719vmovdqa %xmm0,%xmm83720vmovdqa %xmm9,%xmm03721jmp .L_steal_cipher_wcpqaDvsGlbjGoe37223723.L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe:3724movq $0x0000ffffffffffff,%r83725kmovq %r8,%k13726vmovdqu8 (%rdi),%zmm13727vmovdqu8 64(%rdi),%zmm2{%k1}3728addq $0x70,%rdi3729vbroadcasti32x4 (%rcx),%zmm03730vpternlogq $0x96,%zmm0,%zmm9,%zmm13731vpternlogq $0x96,%zmm0,%zmm10,%zmm23732vbroadcasti32x4 16(%rcx),%zmm03733vaesenc %zmm0,%zmm1,%zmm13734vaesenc %zmm0,%zmm2,%zmm2373537363737vbroadcasti32x4 32(%rcx),%zmm03738vaesenc %zmm0,%zmm1,%zmm13739vaesenc %zmm0,%zmm2,%zmm2374037413742vbroadcasti32x4 48(%rcx),%zmm03743vaesenc %zmm0,%zmm1,%zmm13744vaesenc %zmm0,%zmm2,%zmm237453746vbroadcasti32x4 64(%rcx),%zmm03747vaesenc %zmm0,%zmm1,%zmm13748vaesenc %zmm0,%zmm2,%zmm2374937503751vbroadcasti32x4 80(%rcx),%zmm03752vaesenc %zmm0,%zmm1,%zmm13753vaesenc %zmm0,%zmm2,%zmm2375437553756vbroadcasti32x4 96(%rcx),%zmm03757vaesenc %zmm0,%zmm1,%zmm13758vaesenc %zmm0,%zmm2,%zmm2375937603761vbroadcasti32x4 112(%rcx),%zmm03762vaesenc %zmm0,%zmm1,%zmm13763vaesenc %zmm0,%zmm2,%zmm2376437653766vbroadcasti32x4 128(%rcx),%zmm03767vaesenc %zmm0,%zmm1,%zmm13768vaesenc %zmm0,%zmm2,%zmm2376937703771vbroadcasti32x4 144(%rcx),%zmm03772vaesenc %zmm0,%zmm1,%zmm13773vaesenc %zmm0,%zmm2,%zmm237743775vbroadcasti32x4 160(%rcx),%zmm03776vaesenc %zmm0,%zmm1,%zmm13777vaesenc %zmm0,%zmm2,%zmm2377837793780vbroadcasti32x4 176(%rcx),%zmm03781vaesenc %zmm0,%zmm1,%zmm13782vaesenc %zmm0,%zmm2,%zmm2378337843785vbroadcasti32x4 192(%rcx),%zmm03786vaesenc %zmm0,%zmm1,%zmm13787vaesenc %zmm0,%zmm2,%zmm2378837893790vbroadcasti32x4 208(%rcx),%zmm03791vaesenc %zmm0,%zmm1,%zmm13792vaesenc %zmm0,%zmm2,%zmm2379337943795vbroadcasti32x4 224(%rcx),%zmm03796vaesenclast %zmm0,%zmm1,%zmm13797vaesenclast %zmm0,%zmm2,%zmm23798vpxorq %zmm9,%zmm1,%zmm13799vpxorq %zmm10,%zmm2,%zmm23800vmovdqu8 %zmm1,(%rsi)3801vmovdqu8 %zmm2,64(%rsi){%k1}3802addq $0x70,%rsi3803vextracti32x4 $0x2,%zmm2,%xmm83804vextracti32x4 $0x3,%zmm10,%xmm03805andq $0xf,%rdx3806je .L_ret_wcpqaDvsGlbjGoe3807jmp .L_steal_cipher_wcpqaDvsGlbjGoe38083809.L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe:3810vmovdqu8 (%rdi),%zmm13811vmovdqu8 64(%rdi),%ymm23812addq $0x60,%rdi3813vbroadcasti32x4 (%rcx),%zmm03814vpternlogq $0x96,%zmm0,%zmm9,%zmm13815vpternlogq $0x96,%zmm0,%zmm10,%zmm23816vbroadcasti32x4 16(%rcx),%zmm03817vaesenc %zmm0,%zmm1,%zmm13818vaesenc %zmm0,%zmm2,%zmm2381938203821vbroadcasti32x4 32(%rcx),%zmm03822vaesenc %zmm0,%zmm1,%zmm13823vaesenc %zmm0,%zmm2,%zmm2382438253826vbroadcasti32x4 48(%rcx),%zmm03827vaesenc %zmm0,%zmm1,%zmm13828vaesenc %zmm0,%zmm2,%zmm238293830vbroadcasti32x4 64(%rcx),%zmm03831vaesenc %zmm0,%zmm1,%zmm13832vaesenc %zmm0,%zmm2,%zmm2383338343835vbroadcasti32x4 80(%rcx),%zmm03836vaesenc %zmm0,%zmm1,%zmm13837vaesenc %zmm0,%zmm2,%zmm2383838393840vbroadcasti32x4 96(%rcx),%zmm03841vaesenc %zmm0,%zmm1,%zmm13842vaesenc %zmm0,%zmm2,%zmm2384338443845vbroadcasti32x4 112(%rcx),%zmm03846vaesenc %zmm0,%zmm1,%zmm13847vaesenc %zmm0,%zmm2,%zmm2384838493850vbroadcasti32x4 128(%rcx),%zmm03851vaesenc %zmm0,%zmm1,%zmm13852vaesenc %zmm0,%zmm2,%zmm2385338543855vbroadcasti32x4 144(%rcx),%zmm03856vaesenc %zmm0,%zmm1,%zmm13857vaesenc %zmm0,%zmm2,%zmm238583859vbroadcasti32x4 160(%rcx),%zmm03860vaesenc %zmm0,%zmm1,%zmm13861vaesenc %zmm0,%zmm2,%zmm2386238633864vbroadcasti32x4 176(%rcx),%zmm03865vaesenc %zmm0,%zmm1,%zmm13866vaesenc %zmm0,%zmm2,%zmm2386738683869vbroadcasti32x4 192(%rcx),%zmm03870vaesenc %zmm0,%zmm1,%zmm13871vaesenc %zmm0,%zmm2,%zmm2387238733874vbroadcasti32x4 208(%rcx),%zmm03875vaesenc %zmm0,%zmm1,%zmm13876vaesenc %zmm0,%zmm2,%zmm2387738783879vbroadcasti32x4 224(%rcx),%zmm03880vaesenclast %zmm0,%zmm1,%zmm13881vaesenclast %zmm0,%zmm2,%zmm23882vpxorq %zmm9,%zmm1,%zmm13883vpxorq %zmm10,%zmm2,%zmm23884vmovdqu8 %zmm1,(%rsi)3885vmovdqu8 %ymm2,64(%rsi)3886addq $0x60,%rsi3887vextracti32x4 $0x1,%zmm2,%xmm83888vextracti32x4 $0x2,%zmm10,%xmm03889andq $0xf,%rdx3890je .L_ret_wcpqaDvsGlbjGoe3891jmp .L_steal_cipher_wcpqaDvsGlbjGoe38923893.L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe:3894vmovdqu8 (%rdi),%zmm13895vmovdqu 64(%rdi),%xmm23896addq $0x50,%rdi3897vbroadcasti32x4 (%rcx),%zmm03898vpternlogq $0x96,%zmm0,%zmm9,%zmm13899vpternlogq $0x96,%zmm0,%zmm10,%zmm23900vbroadcasti32x4 16(%rcx),%zmm03901vaesenc %zmm0,%zmm1,%zmm13902vaesenc %zmm0,%zmm2,%zmm2390339043905vbroadcasti32x4 32(%rcx),%zmm03906vaesenc %zmm0,%zmm1,%zmm13907vaesenc %zmm0,%zmm2,%zmm2390839093910vbroadcasti32x4 48(%rcx),%zmm03911vaesenc %zmm0,%zmm1,%zmm13912vaesenc %zmm0,%zmm2,%zmm239133914vbroadcasti32x4 64(%rcx),%zmm03915vaesenc %zmm0,%zmm1,%zmm13916vaesenc %zmm0,%zmm2,%zmm2391739183919vbroadcasti32x4 80(%rcx),%zmm03920vaesenc %zmm0,%zmm1,%zmm13921vaesenc %zmm0,%zmm2,%zmm2392239233924vbroadcasti32x4 96(%rcx),%zmm03925vaesenc %zmm0,%zmm1,%zmm13926vaesenc %zmm0,%zmm2,%zmm2392739283929vbroadcasti32x4 112(%rcx),%zmm03930vaesenc %zmm0,%zmm1,%zmm13931vaesenc %zmm0,%zmm2,%zmm2393239333934vbroadcasti32x4 128(%rcx),%zmm03935vaesenc %zmm0,%zmm1,%zmm13936vaesenc %zmm0,%zmm2,%zmm2393739383939vbroadcasti32x4 144(%rcx),%zmm03940vaesenc %zmm0,%zmm1,%zmm13941vaesenc %zmm0,%zmm2,%zmm239423943vbroadcasti32x4 160(%rcx),%zmm03944vaesenc %zmm0,%zmm1,%zmm13945vaesenc %zmm0,%zmm2,%zmm2394639473948vbroadcasti32x4 176(%rcx),%zmm03949vaesenc %zmm0,%zmm1,%zmm13950vaesenc %zmm0,%zmm2,%zmm2395139523953vbroadcasti32x4 192(%rcx),%zmm03954vaesenc %zmm0,%zmm1,%zmm13955vaesenc %zmm0,%zmm2,%zmm2395639573958vbroadcasti32x4 208(%rcx),%zmm03959vaesenc %zmm0,%zmm1,%zmm13960vaesenc %zmm0,%zmm2,%zmm2396139623963vbroadcasti32x4 224(%rcx),%zmm03964vaesenclast %zmm0,%zmm1,%zmm13965vaesenclast %zmm0,%zmm2,%zmm23966vpxorq %zmm9,%zmm1,%zmm13967vpxorq %zmm10,%zmm2,%zmm23968vmovdqu8 %zmm1,(%rsi)3969vmovdqu %xmm2,64(%rsi)3970addq $0x50,%rsi3971vmovdqa %xmm2,%xmm83972vextracti32x4 $0x1,%zmm10,%xmm03973andq $0xf,%rdx3974je .L_ret_wcpqaDvsGlbjGoe3975jmp .L_steal_cipher_wcpqaDvsGlbjGoe39763977.L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe:3978vmovdqu8 (%rdi),%zmm13979addq $0x40,%rdi3980vbroadcasti32x4 (%rcx),%zmm03981vpternlogq $0x96,%zmm0,%zmm9,%zmm13982vbroadcasti32x4 16(%rcx),%zmm03983vaesenc %zmm0,%zmm1,%zmm13984vbroadcasti32x4 32(%rcx),%zmm03985vaesenc %zmm0,%zmm1,%zmm13986vbroadcasti32x4 48(%rcx),%zmm03987vaesenc %zmm0,%zmm1,%zmm13988vbroadcasti32x4 64(%rcx),%zmm03989vaesenc %zmm0,%zmm1,%zmm13990vbroadcasti32x4 80(%rcx),%zmm03991vaesenc %zmm0,%zmm1,%zmm13992vbroadcasti32x4 96(%rcx),%zmm03993vaesenc %zmm0,%zmm1,%zmm13994vbroadcasti32x4 112(%rcx),%zmm03995vaesenc %zmm0,%zmm1,%zmm13996vbroadcasti32x4 128(%rcx),%zmm03997vaesenc %zmm0,%zmm1,%zmm13998vbroadcasti32x4 144(%rcx),%zmm03999vaesenc %zmm0,%zmm1,%zmm14000vbroadcasti32x4 160(%rcx),%zmm04001vaesenc %zmm0,%zmm1,%zmm14002vbroadcasti32x4 176(%rcx),%zmm04003vaesenc %zmm0,%zmm1,%zmm14004vbroadcasti32x4 192(%rcx),%zmm04005vaesenc %zmm0,%zmm1,%zmm14006vbroadcasti32x4 208(%rcx),%zmm04007vaesenc %zmm0,%zmm1,%zmm14008vbroadcasti32x4 224(%rcx),%zmm04009vaesenclast %zmm0,%zmm1,%zmm14010vpxorq %zmm9,%zmm1,%zmm14011vmovdqu8 %zmm1,(%rsi)4012addq $0x40,%rsi4013vextracti32x4 $0x3,%zmm1,%xmm84014vmovdqa64 %xmm10,%xmm04015andq $0xf,%rdx4016je .L_ret_wcpqaDvsGlbjGoe4017jmp .L_steal_cipher_wcpqaDvsGlbjGoe4018.L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe:4019movq $-1,%r84020shrq $0x10,%r84021kmovq %r8,%k14022vmovdqu8 (%rdi),%zmm1{%k1}4023addq $0x30,%rdi4024vbroadcasti32x4 (%rcx),%zmm04025vpternlogq $0x96,%zmm0,%zmm9,%zmm14026vbroadcasti32x4 16(%rcx),%zmm04027vaesenc %zmm0,%zmm1,%zmm14028vbroadcasti32x4 32(%rcx),%zmm04029vaesenc %zmm0,%zmm1,%zmm14030vbroadcasti32x4 48(%rcx),%zmm04031vaesenc %zmm0,%zmm1,%zmm14032vbroadcasti32x4 64(%rcx),%zmm04033vaesenc %zmm0,%zmm1,%zmm14034vbroadcasti32x4 80(%rcx),%zmm04035vaesenc %zmm0,%zmm1,%zmm14036vbroadcasti32x4 96(%rcx),%zmm04037vaesenc %zmm0,%zmm1,%zmm14038vbroadcasti32x4 112(%rcx),%zmm04039vaesenc %zmm0,%zmm1,%zmm14040vbroadcasti32x4 128(%rcx),%zmm04041vaesenc %zmm0,%zmm1,%zmm14042vbroadcasti32x4 144(%rcx),%zmm04043vaesenc %zmm0,%zmm1,%zmm14044vbroadcasti32x4 160(%rcx),%zmm04045vaesenc %zmm0,%zmm1,%zmm14046vbroadcasti32x4 176(%rcx),%zmm04047vaesenc %zmm0,%zmm1,%zmm14048vbroadcasti32x4 192(%rcx),%zmm04049vaesenc %zmm0,%zmm1,%zmm14050vbroadcasti32x4 208(%rcx),%zmm04051vaesenc %zmm0,%zmm1,%zmm14052vbroadcasti32x4 224(%rcx),%zmm04053vaesenclast %zmm0,%zmm1,%zmm14054vpxorq %zmm9,%zmm1,%zmm14055vmovdqu8 %zmm1,(%rsi){%k1}4056addq $0x30,%rsi4057vextracti32x4 $0x2,%zmm1,%xmm84058vextracti32x4 $0x3,%zmm9,%xmm04059andq $0xf,%rdx4060je .L_ret_wcpqaDvsGlbjGoe4061jmp .L_steal_cipher_wcpqaDvsGlbjGoe4062.L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe:4063vmovdqu8 (%rdi),%ymm14064addq $0x20,%rdi4065vbroadcasti32x4 (%rcx),%ymm04066vpternlogq $0x96,%ymm0,%ymm9,%ymm14067vbroadcasti32x4 16(%rcx),%ymm04068vaesenc %ymm0,%ymm1,%ymm14069vbroadcasti32x4 32(%rcx),%ymm04070vaesenc %ymm0,%ymm1,%ymm14071vbroadcasti32x4 48(%rcx),%ymm04072vaesenc %ymm0,%ymm1,%ymm14073vbroadcasti32x4 64(%rcx),%ymm04074vaesenc %ymm0,%ymm1,%ymm14075vbroadcasti32x4 80(%rcx),%ymm04076vaesenc %ymm0,%ymm1,%ymm14077vbroadcasti32x4 96(%rcx),%ymm04078vaesenc %ymm0,%ymm1,%ymm14079vbroadcasti32x4 112(%rcx),%ymm04080vaesenc %ymm0,%ymm1,%ymm14081vbroadcasti32x4 128(%rcx),%ymm04082vaesenc %ymm0,%ymm1,%ymm14083vbroadcasti32x4 144(%rcx),%ymm04084vaesenc %ymm0,%ymm1,%ymm14085vbroadcasti32x4 160(%rcx),%ymm04086vaesenc %ymm0,%ymm1,%ymm14087vbroadcasti32x4 176(%rcx),%ymm04088vaesenc %ymm0,%ymm1,%ymm14089vbroadcasti32x4 192(%rcx),%ymm04090vaesenc %ymm0,%ymm1,%ymm14091vbroadcasti32x4 208(%rcx),%ymm04092vaesenc %ymm0,%ymm1,%ymm14093vbroadcasti32x4 224(%rcx),%ymm04094vaesenclast %ymm0,%ymm1,%ymm14095vpxorq %ymm9,%ymm1,%ymm14096vmovdqu %ymm1,(%rsi)4097addq $0x20,%rsi4098vextracti32x4 $0x1,%zmm1,%xmm84099vextracti32x4 $0x2,%zmm9,%xmm04100andq $0xf,%rdx4101je .L_ret_wcpqaDvsGlbjGoe4102jmp .L_steal_cipher_wcpqaDvsGlbjGoe4103.L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe:4104vmovdqu (%rdi),%xmm14105addq $0x10,%rdi4106vpxor %xmm9,%xmm1,%xmm14107vpxor (%rcx),%xmm1,%xmm14108vaesenc 16(%rcx),%xmm1,%xmm14109vaesenc 32(%rcx),%xmm1,%xmm14110vaesenc 48(%rcx),%xmm1,%xmm14111vaesenc 64(%rcx),%xmm1,%xmm14112vaesenc 80(%rcx),%xmm1,%xmm14113vaesenc 96(%rcx),%xmm1,%xmm14114vaesenc 112(%rcx),%xmm1,%xmm14115vaesenc 128(%rcx),%xmm1,%xmm14116vaesenc 144(%rcx),%xmm1,%xmm14117vaesenc 160(%rcx),%xmm1,%xmm14118vaesenc 176(%rcx),%xmm1,%xmm14119vaesenc 192(%rcx),%xmm1,%xmm14120vaesenc 208(%rcx),%xmm1,%xmm14121vaesenclast 224(%rcx),%xmm1,%xmm14122vpxor %xmm9,%xmm1,%xmm14123vmovdqu %xmm1,(%rsi)4124addq $0x10,%rsi4125vmovdqa %xmm1,%xmm84126vextracti32x4 $0x1,%zmm9,%xmm04127andq $0xf,%rdx4128je .L_ret_wcpqaDvsGlbjGoe4129jmp .L_steal_cipher_wcpqaDvsGlbjGoe413041314132.L_start_by16_wcpqaDvsGlbjGoe:4133vbroadcasti32x4 (%rsp),%zmm04134vbroadcasti32x4 shufb_15_7(%rip),%zmm84135movq $0xaa,%r84136kmovq %r8,%k24137vpshufb %zmm8,%zmm0,%zmm14138vpsllvq const_dq3210(%rip),%zmm0,%zmm44139vpsrlvq const_dq5678(%rip),%zmm1,%zmm24140vpclmulqdq $0x0,%zmm25,%zmm2,%zmm34141vpxorq %zmm2,%zmm4,%zmm4{%k2}4142vpxord %zmm4,%zmm3,%zmm94143vpsllvq const_dq7654(%rip),%zmm0,%zmm54144vpsrlvq const_dq1234(%rip),%zmm1,%zmm64145vpclmulqdq $0x0,%zmm25,%zmm6,%zmm74146vpxorq %zmm6,%zmm5,%zmm5{%k2}4147vpxord %zmm5,%zmm7,%zmm104148vpsrldq $0xf,%zmm9,%zmm134149vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144150vpslldq $0x1,%zmm9,%zmm114151vpxord %zmm14,%zmm11,%zmm114152vpsrldq $0xf,%zmm10,%zmm154153vpclmulqdq $0x0,%zmm25,%zmm15,%zmm164154vpslldq $0x1,%zmm10,%zmm124155vpxord %zmm16,%zmm12,%zmm1241564157.L_main_loop_run_16_wcpqaDvsGlbjGoe:4158vmovdqu8 (%rdi),%zmm14159vmovdqu8 64(%rdi),%zmm24160vmovdqu8 128(%rdi),%zmm34161vmovdqu8 192(%rdi),%zmm44162addq $0x100,%rdi4163vpxorq %zmm9,%zmm1,%zmm14164vpxorq %zmm10,%zmm2,%zmm24165vpxorq %zmm11,%zmm3,%zmm34166vpxorq %zmm12,%zmm4,%zmm44167vbroadcasti32x4 (%rcx),%zmm04168vpxorq %zmm0,%zmm1,%zmm14169vpxorq %zmm0,%zmm2,%zmm24170vpxorq %zmm0,%zmm3,%zmm34171vpxorq %zmm0,%zmm4,%zmm44172vpsrldq $0xf,%zmm11,%zmm134173vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144174vpslldq $0x1,%zmm11,%zmm154175vpxord %zmm14,%zmm15,%zmm154176vbroadcasti32x4 16(%rcx),%zmm04177vaesenc %zmm0,%zmm1,%zmm14178vaesenc %zmm0,%zmm2,%zmm24179vaesenc %zmm0,%zmm3,%zmm34180vaesenc %zmm0,%zmm4,%zmm44181vbroadcasti32x4 32(%rcx),%zmm04182vaesenc %zmm0,%zmm1,%zmm14183vaesenc %zmm0,%zmm2,%zmm24184vaesenc %zmm0,%zmm3,%zmm34185vaesenc %zmm0,%zmm4,%zmm44186vbroadcasti32x4 48(%rcx),%zmm04187vaesenc %zmm0,%zmm1,%zmm14188vaesenc %zmm0,%zmm2,%zmm24189vaesenc %zmm0,%zmm3,%zmm34190vaesenc %zmm0,%zmm4,%zmm44191vpsrldq $0xf,%zmm12,%zmm134192vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144193vpslldq $0x1,%zmm12,%zmm164194vpxord %zmm14,%zmm16,%zmm164195vbroadcasti32x4 64(%rcx),%zmm04196vaesenc %zmm0,%zmm1,%zmm14197vaesenc %zmm0,%zmm2,%zmm24198vaesenc %zmm0,%zmm3,%zmm34199vaesenc %zmm0,%zmm4,%zmm44200vbroadcasti32x4 80(%rcx),%zmm04201vaesenc %zmm0,%zmm1,%zmm14202vaesenc %zmm0,%zmm2,%zmm24203vaesenc %zmm0,%zmm3,%zmm34204vaesenc %zmm0,%zmm4,%zmm44205vbroadcasti32x4 96(%rcx),%zmm04206vaesenc %zmm0,%zmm1,%zmm14207vaesenc %zmm0,%zmm2,%zmm24208vaesenc %zmm0,%zmm3,%zmm34209vaesenc %zmm0,%zmm4,%zmm44210vpsrldq $0xf,%zmm15,%zmm134211vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144212vpslldq $0x1,%zmm15,%zmm174213vpxord %zmm14,%zmm17,%zmm174214vbroadcasti32x4 112(%rcx),%zmm04215vaesenc %zmm0,%zmm1,%zmm14216vaesenc %zmm0,%zmm2,%zmm24217vaesenc %zmm0,%zmm3,%zmm34218vaesenc %zmm0,%zmm4,%zmm44219vbroadcasti32x4 128(%rcx),%zmm04220vaesenc %zmm0,%zmm1,%zmm14221vaesenc %zmm0,%zmm2,%zmm24222vaesenc %zmm0,%zmm3,%zmm34223vaesenc %zmm0,%zmm4,%zmm44224vbroadcasti32x4 144(%rcx),%zmm04225vaesenc %zmm0,%zmm1,%zmm14226vaesenc %zmm0,%zmm2,%zmm24227vaesenc %zmm0,%zmm3,%zmm34228vaesenc %zmm0,%zmm4,%zmm44229vpsrldq $0xf,%zmm16,%zmm134230vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144231vpslldq $0x1,%zmm16,%zmm184232vpxord %zmm14,%zmm18,%zmm184233vbroadcasti32x4 160(%rcx),%zmm04234vaesenc %zmm0,%zmm1,%zmm14235vaesenc %zmm0,%zmm2,%zmm24236vaesenc %zmm0,%zmm3,%zmm34237vaesenc %zmm0,%zmm4,%zmm44238vbroadcasti32x4 176(%rcx),%zmm04239vaesenc %zmm0,%zmm1,%zmm14240vaesenc %zmm0,%zmm2,%zmm24241vaesenc %zmm0,%zmm3,%zmm34242vaesenc %zmm0,%zmm4,%zmm44243vbroadcasti32x4 192(%rcx),%zmm04244vaesenc %zmm0,%zmm1,%zmm14245vaesenc %zmm0,%zmm2,%zmm24246vaesenc %zmm0,%zmm3,%zmm34247vaesenc %zmm0,%zmm4,%zmm44248vbroadcasti32x4 208(%rcx),%zmm04249vaesenc %zmm0,%zmm1,%zmm14250vaesenc %zmm0,%zmm2,%zmm24251vaesenc %zmm0,%zmm3,%zmm34252vaesenc %zmm0,%zmm4,%zmm44253vbroadcasti32x4 224(%rcx),%zmm04254vaesenclast %zmm0,%zmm1,%zmm14255vaesenclast %zmm0,%zmm2,%zmm24256vaesenclast %zmm0,%zmm3,%zmm34257vaesenclast %zmm0,%zmm4,%zmm44258vpxorq %zmm9,%zmm1,%zmm14259vpxorq %zmm10,%zmm2,%zmm24260vpxorq %zmm11,%zmm3,%zmm34261vpxorq %zmm12,%zmm4,%zmm442624263vmovdqa32 %zmm15,%zmm94264vmovdqa32 %zmm16,%zmm104265vmovdqa32 %zmm17,%zmm114266vmovdqa32 %zmm18,%zmm124267vmovdqu8 %zmm1,(%rsi)4268vmovdqu8 %zmm2,64(%rsi)4269vmovdqu8 %zmm3,128(%rsi)4270vmovdqu8 %zmm4,192(%rsi)4271addq $0x100,%rsi4272subq $0x100,%rdx4273cmpq $0x100,%rdx4274jae .L_main_loop_run_16_wcpqaDvsGlbjGoe4275cmpq $0x80,%rdx4276jae .L_main_loop_run_8_wcpqaDvsGlbjGoe4277vextracti32x4 $0x3,%zmm4,%xmm04278jmp .L_do_n_blocks_wcpqaDvsGlbjGoe42794280.L_start_by8_wcpqaDvsGlbjGoe:4281vbroadcasti32x4 (%rsp),%zmm04282vbroadcasti32x4 shufb_15_7(%rip),%zmm84283movq $0xaa,%r84284kmovq %r8,%k24285vpshufb %zmm8,%zmm0,%zmm14286vpsllvq const_dq3210(%rip),%zmm0,%zmm44287vpsrlvq const_dq5678(%rip),%zmm1,%zmm24288vpclmulqdq $0x0,%zmm25,%zmm2,%zmm34289vpxorq %zmm2,%zmm4,%zmm4{%k2}4290vpxord %zmm4,%zmm3,%zmm94291vpsllvq const_dq7654(%rip),%zmm0,%zmm54292vpsrlvq const_dq1234(%rip),%zmm1,%zmm64293vpclmulqdq $0x0,%zmm25,%zmm6,%zmm74294vpxorq %zmm6,%zmm5,%zmm5{%k2}4295vpxord %zmm5,%zmm7,%zmm1042964297.L_main_loop_run_8_wcpqaDvsGlbjGoe:4298vmovdqu8 (%rdi),%zmm14299vmovdqu8 64(%rdi),%zmm24300addq $0x80,%rdi4301vbroadcasti32x4 (%rcx),%zmm04302vpternlogq $0x96,%zmm0,%zmm9,%zmm14303vpternlogq $0x96,%zmm0,%zmm10,%zmm24304vpsrldq $0xf,%zmm9,%zmm134305vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144306vpslldq $0x1,%zmm9,%zmm154307vpxord %zmm14,%zmm15,%zmm154308vbroadcasti32x4 16(%rcx),%zmm04309vaesenc %zmm0,%zmm1,%zmm14310vaesenc %zmm0,%zmm2,%zmm2431143124313vbroadcasti32x4 32(%rcx),%zmm04314vaesenc %zmm0,%zmm1,%zmm14315vaesenc %zmm0,%zmm2,%zmm2431643174318vbroadcasti32x4 48(%rcx),%zmm04319vaesenc %zmm0,%zmm1,%zmm14320vaesenc %zmm0,%zmm2,%zmm24321vpsrldq $0xf,%zmm10,%zmm134322vpclmulqdq $0x0,%zmm25,%zmm13,%zmm144323vpslldq $0x1,%zmm10,%zmm164324vpxord %zmm14,%zmm16,%zmm1643254326vbroadcasti32x4 64(%rcx),%zmm04327vaesenc %zmm0,%zmm1,%zmm14328vaesenc %zmm0,%zmm2,%zmm2432943304331vbroadcasti32x4 80(%rcx),%zmm04332vaesenc %zmm0,%zmm1,%zmm14333vaesenc %zmm0,%zmm2,%zmm2433443354336vbroadcasti32x4 96(%rcx),%zmm04337vaesenc %zmm0,%zmm1,%zmm14338vaesenc %zmm0,%zmm2,%zmm2433943404341vbroadcasti32x4 112(%rcx),%zmm04342vaesenc %zmm0,%zmm1,%zmm14343vaesenc %zmm0,%zmm2,%zmm2434443454346vbroadcasti32x4 128(%rcx),%zmm04347vaesenc %zmm0,%zmm1,%zmm14348vaesenc %zmm0,%zmm2,%zmm2434943504351vbroadcasti32x4 144(%rcx),%zmm04352vaesenc %zmm0,%zmm1,%zmm14353vaesenc %zmm0,%zmm2,%zmm243544355vbroadcasti32x4 160(%rcx),%zmm04356vaesenc %zmm0,%zmm1,%zmm14357vaesenc %zmm0,%zmm2,%zmm2435843594360vbroadcasti32x4 176(%rcx),%zmm04361vaesenc %zmm0,%zmm1,%zmm14362vaesenc %zmm0,%zmm2,%zmm2436343644365vbroadcasti32x4 192(%rcx),%zmm04366vaesenc %zmm0,%zmm1,%zmm14367vaesenc %zmm0,%zmm2,%zmm2436843694370vbroadcasti32x4 208(%rcx),%zmm04371vaesenc %zmm0,%zmm1,%zmm14372vaesenc %zmm0,%zmm2,%zmm2437343744375vbroadcasti32x4 224(%rcx),%zmm04376vaesenclast %zmm0,%zmm1,%zmm14377vaesenclast %zmm0,%zmm2,%zmm24378vpxorq %zmm9,%zmm1,%zmm14379vpxorq %zmm10,%zmm2,%zmm24380vmovdqa32 %zmm15,%zmm94381vmovdqa32 %zmm16,%zmm104382vmovdqu8 %zmm1,(%rsi)4383vmovdqu8 %zmm2,64(%rsi)4384addq $0x80,%rsi4385subq $0x80,%rdx4386cmpq $0x80,%rdx4387jae .L_main_loop_run_8_wcpqaDvsGlbjGoe4388vextracti32x4 $0x3,%zmm2,%xmm04389jmp .L_do_n_blocks_wcpqaDvsGlbjGoe43904391.L_steal_cipher_wcpqaDvsGlbjGoe:4392vmovdqa %xmm8,%xmm24393leaq vpshufb_shf_table(%rip),%rax4394vmovdqu (%rax,%rdx,1),%xmm104395vpshufb %xmm10,%xmm8,%xmm84396vmovdqu -16(%rdi,%rdx,1),%xmm34397vmovdqu %xmm8,-16(%rsi,%rdx,1)4398leaq vpshufb_shf_table(%rip),%rax4399addq $16,%rax4400subq %rdx,%rax4401vmovdqu (%rax),%xmm104402vpxor mask1(%rip),%xmm10,%xmm104403vpshufb %xmm10,%xmm3,%xmm34404vpblendvb %xmm10,%xmm2,%xmm3,%xmm34405vpxor %xmm0,%xmm3,%xmm84406vpxor (%rcx),%xmm8,%xmm84407vaesenc 16(%rcx),%xmm8,%xmm84408vaesenc 32(%rcx),%xmm8,%xmm84409vaesenc 48(%rcx),%xmm8,%xmm84410vaesenc 64(%rcx),%xmm8,%xmm84411vaesenc 80(%rcx),%xmm8,%xmm84412vaesenc 96(%rcx),%xmm8,%xmm84413vaesenc 112(%rcx),%xmm8,%xmm84414vaesenc 128(%rcx),%xmm8,%xmm84415vaesenc 144(%rcx),%xmm8,%xmm84416vaesenc 160(%rcx),%xmm8,%xmm84417vaesenc 176(%rcx),%xmm8,%xmm84418vaesenc 192(%rcx),%xmm8,%xmm84419vaesenc 208(%rcx),%xmm8,%xmm84420vaesenclast 224(%rcx),%xmm8,%xmm84421vpxor %xmm0,%xmm8,%xmm84422vmovdqu %xmm8,-16(%rsi)4423.L_ret_wcpqaDvsGlbjGoe:4424movq 128(%rsp),%rbx4425xorq %r8,%r84426movq %r8,128(%rsp)44274428vpxorq %zmm0,%zmm0,%zmm04429movq %rbp,%rsp4430popq %rbp4431vzeroupper4432.byte 0xf3,0xc344334434.L_less_than_128_bytes_wcpqaDvsGlbjGoe:4435vpbroadcastq %r10,%zmm254436cmpq $0x10,%rdx4437jb .L_ret_wcpqaDvsGlbjGoe4438vbroadcasti32x4 (%rsp),%zmm04439vbroadcasti32x4 shufb_15_7(%rip),%zmm84440movl $0xaa,%r8d4441kmovq %r8,%k24442movq %rdx,%r84443andq $0x70,%r84444cmpq $0x60,%r84445je .L_num_blocks_is_6_wcpqaDvsGlbjGoe4446cmpq $0x50,%r84447je .L_num_blocks_is_5_wcpqaDvsGlbjGoe4448cmpq $0x40,%r84449je .L_num_blocks_is_4_wcpqaDvsGlbjGoe4450cmpq $0x30,%r84451je .L_num_blocks_is_3_wcpqaDvsGlbjGoe4452cmpq $0x20,%r84453je .L_num_blocks_is_2_wcpqaDvsGlbjGoe4454cmpq $0x10,%r84455je .L_num_blocks_is_1_wcpqaDvsGlbjGoe44564457.L_num_blocks_is_7_wcpqaDvsGlbjGoe:4458vpshufb %zmm8,%zmm0,%zmm14459vpsllvq const_dq3210(%rip),%zmm0,%zmm44460vpsrlvq const_dq5678(%rip),%zmm1,%zmm24461vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34462vpxorq %zmm2,%zmm4,%zmm4{%k2}4463vpxord %zmm4,%zmm3,%zmm94464vpsllvq const_dq7654(%rip),%zmm0,%zmm54465vpsrlvq const_dq1234(%rip),%zmm1,%zmm64466vpclmulqdq $0x00,%zmm25,%zmm6,%zmm74467vpxorq %zmm6,%zmm5,%zmm5{%k2}4468vpxord %zmm5,%zmm7,%zmm104469movq $0x0000ffffffffffff,%r84470kmovq %r8,%k14471vmovdqu8 0(%rdi),%zmm14472vmovdqu8 64(%rdi),%zmm2{%k1}44734474addq $0x70,%rdi4475vbroadcasti32x4 (%rcx),%zmm04476vpternlogq $0x96,%zmm0,%zmm9,%zmm14477vpternlogq $0x96,%zmm0,%zmm10,%zmm24478vbroadcasti32x4 16(%rcx),%zmm04479vaesenc %zmm0,%zmm1,%zmm14480vaesenc %zmm0,%zmm2,%zmm2448144824483vbroadcasti32x4 32(%rcx),%zmm04484vaesenc %zmm0,%zmm1,%zmm14485vaesenc %zmm0,%zmm2,%zmm2448644874488vbroadcasti32x4 48(%rcx),%zmm04489vaesenc %zmm0,%zmm1,%zmm14490vaesenc %zmm0,%zmm2,%zmm244914492vbroadcasti32x4 64(%rcx),%zmm04493vaesenc %zmm0,%zmm1,%zmm14494vaesenc %zmm0,%zmm2,%zmm2449544964497vbroadcasti32x4 80(%rcx),%zmm04498vaesenc %zmm0,%zmm1,%zmm14499vaesenc %zmm0,%zmm2,%zmm2450045014502vbroadcasti32x4 96(%rcx),%zmm04503vaesenc %zmm0,%zmm1,%zmm14504vaesenc %zmm0,%zmm2,%zmm2450545064507vbroadcasti32x4 112(%rcx),%zmm04508vaesenc %zmm0,%zmm1,%zmm14509vaesenc %zmm0,%zmm2,%zmm2451045114512vbroadcasti32x4 128(%rcx),%zmm04513vaesenc %zmm0,%zmm1,%zmm14514vaesenc %zmm0,%zmm2,%zmm2451545164517vbroadcasti32x4 144(%rcx),%zmm04518vaesenc %zmm0,%zmm1,%zmm14519vaesenc %zmm0,%zmm2,%zmm245204521vbroadcasti32x4 160(%rcx),%zmm04522vaesenc %zmm0,%zmm1,%zmm14523vaesenc %zmm0,%zmm2,%zmm2452445254526vbroadcasti32x4 176(%rcx),%zmm04527vaesenc %zmm0,%zmm1,%zmm14528vaesenc %zmm0,%zmm2,%zmm2452945304531vbroadcasti32x4 192(%rcx),%zmm04532vaesenc %zmm0,%zmm1,%zmm14533vaesenc %zmm0,%zmm2,%zmm2453445354536vbroadcasti32x4 208(%rcx),%zmm04537vaesenc %zmm0,%zmm1,%zmm14538vaesenc %zmm0,%zmm2,%zmm2453945404541vbroadcasti32x4 224(%rcx),%zmm04542vaesenclast %zmm0,%zmm1,%zmm14543vaesenclast %zmm0,%zmm2,%zmm24544vpxorq %zmm9,%zmm1,%zmm14545vpxorq %zmm10,%zmm2,%zmm24546vmovdqu8 %zmm1,0(%rsi)4547vmovdqu8 %zmm2,64(%rsi){%k1}4548addq $0x70,%rsi4549vextracti32x4 $0x2,%zmm2,%xmm84550vextracti32x4 $0x3,%zmm10,%xmm04551andq $0xf,%rdx4552je .L_ret_wcpqaDvsGlbjGoe4553jmp .L_steal_cipher_wcpqaDvsGlbjGoe4554.L_num_blocks_is_6_wcpqaDvsGlbjGoe:4555vpshufb %zmm8,%zmm0,%zmm14556vpsllvq const_dq3210(%rip),%zmm0,%zmm44557vpsrlvq const_dq5678(%rip),%zmm1,%zmm24558vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34559vpxorq %zmm2,%zmm4,%zmm4{%k2}4560vpxord %zmm4,%zmm3,%zmm94561vpsllvq const_dq7654(%rip),%zmm0,%zmm54562vpsrlvq const_dq1234(%rip),%zmm1,%zmm64563vpclmulqdq $0x00,%zmm25,%zmm6,%zmm74564vpxorq %zmm6,%zmm5,%zmm5{%k2}4565vpxord %zmm5,%zmm7,%zmm104566vmovdqu8 0(%rdi),%zmm14567vmovdqu8 64(%rdi),%ymm24568addq $96,%rdi4569vbroadcasti32x4 (%rcx),%zmm04570vpternlogq $0x96,%zmm0,%zmm9,%zmm14571vpternlogq $0x96,%zmm0,%zmm10,%zmm24572vbroadcasti32x4 16(%rcx),%zmm04573vaesenc %zmm0,%zmm1,%zmm14574vaesenc %zmm0,%zmm2,%zmm2457545764577vbroadcasti32x4 32(%rcx),%zmm04578vaesenc %zmm0,%zmm1,%zmm14579vaesenc %zmm0,%zmm2,%zmm2458045814582vbroadcasti32x4 48(%rcx),%zmm04583vaesenc %zmm0,%zmm1,%zmm14584vaesenc %zmm0,%zmm2,%zmm245854586vbroadcasti32x4 64(%rcx),%zmm04587vaesenc %zmm0,%zmm1,%zmm14588vaesenc %zmm0,%zmm2,%zmm2458945904591vbroadcasti32x4 80(%rcx),%zmm04592vaesenc %zmm0,%zmm1,%zmm14593vaesenc %zmm0,%zmm2,%zmm2459445954596vbroadcasti32x4 96(%rcx),%zmm04597vaesenc %zmm0,%zmm1,%zmm14598vaesenc %zmm0,%zmm2,%zmm2459946004601vbroadcasti32x4 112(%rcx),%zmm04602vaesenc %zmm0,%zmm1,%zmm14603vaesenc %zmm0,%zmm2,%zmm2460446054606vbroadcasti32x4 128(%rcx),%zmm04607vaesenc %zmm0,%zmm1,%zmm14608vaesenc %zmm0,%zmm2,%zmm2460946104611vbroadcasti32x4 144(%rcx),%zmm04612vaesenc %zmm0,%zmm1,%zmm14613vaesenc %zmm0,%zmm2,%zmm246144615vbroadcasti32x4 160(%rcx),%zmm04616vaesenc %zmm0,%zmm1,%zmm14617vaesenc %zmm0,%zmm2,%zmm2461846194620vbroadcasti32x4 176(%rcx),%zmm04621vaesenc %zmm0,%zmm1,%zmm14622vaesenc %zmm0,%zmm2,%zmm2462346244625vbroadcasti32x4 192(%rcx),%zmm04626vaesenc %zmm0,%zmm1,%zmm14627vaesenc %zmm0,%zmm2,%zmm2462846294630vbroadcasti32x4 208(%rcx),%zmm04631vaesenc %zmm0,%zmm1,%zmm14632vaesenc %zmm0,%zmm2,%zmm2463346344635vbroadcasti32x4 224(%rcx),%zmm04636vaesenclast %zmm0,%zmm1,%zmm14637vaesenclast %zmm0,%zmm2,%zmm24638vpxorq %zmm9,%zmm1,%zmm14639vpxorq %zmm10,%zmm2,%zmm24640vmovdqu8 %zmm1,0(%rsi)4641vmovdqu8 %ymm2,64(%rsi)4642addq $96,%rsi46434644vextracti32x4 $0x1,%ymm2,%xmm84645vextracti32x4 $0x2,%zmm10,%xmm04646andq $0xf,%rdx4647je .L_ret_wcpqaDvsGlbjGoe4648jmp .L_steal_cipher_wcpqaDvsGlbjGoe4649.L_num_blocks_is_5_wcpqaDvsGlbjGoe:4650vpshufb %zmm8,%zmm0,%zmm14651vpsllvq const_dq3210(%rip),%zmm0,%zmm44652vpsrlvq const_dq5678(%rip),%zmm1,%zmm24653vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34654vpxorq %zmm2,%zmm4,%zmm4{%k2}4655vpxord %zmm4,%zmm3,%zmm94656vpsllvq const_dq7654(%rip),%zmm0,%zmm54657vpsrlvq const_dq1234(%rip),%zmm1,%zmm64658vpclmulqdq $0x00,%zmm25,%zmm6,%zmm74659vpxorq %zmm6,%zmm5,%zmm5{%k2}4660vpxord %zmm5,%zmm7,%zmm104661vmovdqu8 0(%rdi),%zmm14662vmovdqu8 64(%rdi),%xmm24663addq $80,%rdi4664vbroadcasti32x4 (%rcx),%zmm04665vpternlogq $0x96,%zmm0,%zmm9,%zmm14666vpternlogq $0x96,%zmm0,%zmm10,%zmm24667vbroadcasti32x4 16(%rcx),%zmm04668vaesenc %zmm0,%zmm1,%zmm14669vaesenc %zmm0,%zmm2,%zmm2467046714672vbroadcasti32x4 32(%rcx),%zmm04673vaesenc %zmm0,%zmm1,%zmm14674vaesenc %zmm0,%zmm2,%zmm2467546764677vbroadcasti32x4 48(%rcx),%zmm04678vaesenc %zmm0,%zmm1,%zmm14679vaesenc %zmm0,%zmm2,%zmm246804681vbroadcasti32x4 64(%rcx),%zmm04682vaesenc %zmm0,%zmm1,%zmm14683vaesenc %zmm0,%zmm2,%zmm2468446854686vbroadcasti32x4 80(%rcx),%zmm04687vaesenc %zmm0,%zmm1,%zmm14688vaesenc %zmm0,%zmm2,%zmm2468946904691vbroadcasti32x4 96(%rcx),%zmm04692vaesenc %zmm0,%zmm1,%zmm14693vaesenc %zmm0,%zmm2,%zmm2469446954696vbroadcasti32x4 112(%rcx),%zmm04697vaesenc %zmm0,%zmm1,%zmm14698vaesenc %zmm0,%zmm2,%zmm2469947004701vbroadcasti32x4 128(%rcx),%zmm04702vaesenc %zmm0,%zmm1,%zmm14703vaesenc %zmm0,%zmm2,%zmm2470447054706vbroadcasti32x4 144(%rcx),%zmm04707vaesenc %zmm0,%zmm1,%zmm14708vaesenc %zmm0,%zmm2,%zmm247094710vbroadcasti32x4 160(%rcx),%zmm04711vaesenc %zmm0,%zmm1,%zmm14712vaesenc %zmm0,%zmm2,%zmm2471347144715vbroadcasti32x4 176(%rcx),%zmm04716vaesenc %zmm0,%zmm1,%zmm14717vaesenc %zmm0,%zmm2,%zmm2471847194720vbroadcasti32x4 192(%rcx),%zmm04721vaesenc %zmm0,%zmm1,%zmm14722vaesenc %zmm0,%zmm2,%zmm2472347244725vbroadcasti32x4 208(%rcx),%zmm04726vaesenc %zmm0,%zmm1,%zmm14727vaesenc %zmm0,%zmm2,%zmm2472847294730vbroadcasti32x4 224(%rcx),%zmm04731vaesenclast %zmm0,%zmm1,%zmm14732vaesenclast %zmm0,%zmm2,%zmm24733vpxorq %zmm9,%zmm1,%zmm14734vpxorq %zmm10,%zmm2,%zmm24735vmovdqu8 %zmm1,0(%rsi)4736vmovdqu8 %xmm2,64(%rsi)4737addq $80,%rsi47384739vmovdqa %xmm2,%xmm84740vextracti32x4 $0x1,%zmm10,%xmm04741andq $0xf,%rdx4742je .L_ret_wcpqaDvsGlbjGoe4743jmp .L_steal_cipher_wcpqaDvsGlbjGoe4744.L_num_blocks_is_4_wcpqaDvsGlbjGoe:4745vpshufb %zmm8,%zmm0,%zmm14746vpsllvq const_dq3210(%rip),%zmm0,%zmm44747vpsrlvq const_dq5678(%rip),%zmm1,%zmm24748vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34749vpxorq %zmm2,%zmm4,%zmm4{%k2}4750vpxord %zmm4,%zmm3,%zmm94751vpsllvq const_dq7654(%rip),%zmm0,%zmm54752vpsrlvq const_dq1234(%rip),%zmm1,%zmm64753vpclmulqdq $0x00,%zmm25,%zmm6,%zmm74754vpxorq %zmm6,%zmm5,%zmm5{%k2}4755vpxord %zmm5,%zmm7,%zmm104756vmovdqu8 0(%rdi),%zmm14757addq $64,%rdi4758vbroadcasti32x4 (%rcx),%zmm04759vpternlogq $0x96,%zmm0,%zmm9,%zmm14760vbroadcasti32x4 16(%rcx),%zmm04761vaesenc %zmm0,%zmm1,%zmm14762vbroadcasti32x4 32(%rcx),%zmm04763vaesenc %zmm0,%zmm1,%zmm14764vbroadcasti32x4 48(%rcx),%zmm04765vaesenc %zmm0,%zmm1,%zmm14766vbroadcasti32x4 64(%rcx),%zmm04767vaesenc %zmm0,%zmm1,%zmm14768vbroadcasti32x4 80(%rcx),%zmm04769vaesenc %zmm0,%zmm1,%zmm14770vbroadcasti32x4 96(%rcx),%zmm04771vaesenc %zmm0,%zmm1,%zmm14772vbroadcasti32x4 112(%rcx),%zmm04773vaesenc %zmm0,%zmm1,%zmm14774vbroadcasti32x4 128(%rcx),%zmm04775vaesenc %zmm0,%zmm1,%zmm14776vbroadcasti32x4 144(%rcx),%zmm04777vaesenc %zmm0,%zmm1,%zmm14778vbroadcasti32x4 160(%rcx),%zmm04779vaesenc %zmm0,%zmm1,%zmm14780vbroadcasti32x4 176(%rcx),%zmm04781vaesenc %zmm0,%zmm1,%zmm14782vbroadcasti32x4 192(%rcx),%zmm04783vaesenc %zmm0,%zmm1,%zmm14784vbroadcasti32x4 208(%rcx),%zmm04785vaesenc %zmm0,%zmm1,%zmm14786vbroadcasti32x4 224(%rcx),%zmm04787vaesenclast %zmm0,%zmm1,%zmm14788vpxorq %zmm9,%zmm1,%zmm14789vmovdqu8 %zmm1,0(%rsi)4790addq $64,%rsi4791vextracti32x4 $0x3,%zmm1,%xmm84792vmovdqa %xmm10,%xmm04793andq $0xf,%rdx4794je .L_ret_wcpqaDvsGlbjGoe4795jmp .L_steal_cipher_wcpqaDvsGlbjGoe4796.L_num_blocks_is_3_wcpqaDvsGlbjGoe:4797vpshufb %zmm8,%zmm0,%zmm14798vpsllvq const_dq3210(%rip),%zmm0,%zmm44799vpsrlvq const_dq5678(%rip),%zmm1,%zmm24800vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34801vpxorq %zmm2,%zmm4,%zmm4{%k2}4802vpxord %zmm4,%zmm3,%zmm94803movq $0x0000ffffffffffff,%r84804kmovq %r8,%k14805vmovdqu8 0(%rdi),%zmm1{%k1}4806addq $48,%rdi4807vbroadcasti32x4 (%rcx),%zmm04808vpternlogq $0x96,%zmm0,%zmm9,%zmm14809vbroadcasti32x4 16(%rcx),%zmm04810vaesenc %zmm0,%zmm1,%zmm14811vbroadcasti32x4 32(%rcx),%zmm04812vaesenc %zmm0,%zmm1,%zmm14813vbroadcasti32x4 48(%rcx),%zmm04814vaesenc %zmm0,%zmm1,%zmm14815vbroadcasti32x4 64(%rcx),%zmm04816vaesenc %zmm0,%zmm1,%zmm14817vbroadcasti32x4 80(%rcx),%zmm04818vaesenc %zmm0,%zmm1,%zmm14819vbroadcasti32x4 96(%rcx),%zmm04820vaesenc %zmm0,%zmm1,%zmm14821vbroadcasti32x4 112(%rcx),%zmm04822vaesenc %zmm0,%zmm1,%zmm14823vbroadcasti32x4 128(%rcx),%zmm04824vaesenc %zmm0,%zmm1,%zmm14825vbroadcasti32x4 144(%rcx),%zmm04826vaesenc %zmm0,%zmm1,%zmm14827vbroadcasti32x4 160(%rcx),%zmm04828vaesenc %zmm0,%zmm1,%zmm14829vbroadcasti32x4 176(%rcx),%zmm04830vaesenc %zmm0,%zmm1,%zmm14831vbroadcasti32x4 192(%rcx),%zmm04832vaesenc %zmm0,%zmm1,%zmm14833vbroadcasti32x4 208(%rcx),%zmm04834vaesenc %zmm0,%zmm1,%zmm14835vbroadcasti32x4 224(%rcx),%zmm04836vaesenclast %zmm0,%zmm1,%zmm14837vpxorq %zmm9,%zmm1,%zmm14838vmovdqu8 %zmm1,0(%rsi){%k1}4839addq $48,%rsi4840vextracti32x4 $2,%zmm1,%xmm84841vextracti32x4 $3,%zmm9,%xmm04842andq $0xf,%rdx4843je .L_ret_wcpqaDvsGlbjGoe4844jmp .L_steal_cipher_wcpqaDvsGlbjGoe4845.L_num_blocks_is_2_wcpqaDvsGlbjGoe:4846vpshufb %zmm8,%zmm0,%zmm14847vpsllvq const_dq3210(%rip),%zmm0,%zmm44848vpsrlvq const_dq5678(%rip),%zmm1,%zmm24849vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34850vpxorq %zmm2,%zmm4,%zmm4{%k2}4851vpxord %zmm4,%zmm3,%zmm948524853vmovdqu8 0(%rdi),%ymm14854addq $32,%rdi4855vbroadcasti32x4 (%rcx),%ymm04856vpternlogq $0x96,%ymm0,%ymm9,%ymm14857vbroadcasti32x4 16(%rcx),%ymm04858vaesenc %ymm0,%ymm1,%ymm14859vbroadcasti32x4 32(%rcx),%ymm04860vaesenc %ymm0,%ymm1,%ymm14861vbroadcasti32x4 48(%rcx),%ymm04862vaesenc %ymm0,%ymm1,%ymm14863vbroadcasti32x4 64(%rcx),%ymm04864vaesenc %ymm0,%ymm1,%ymm14865vbroadcasti32x4 80(%rcx),%ymm04866vaesenc %ymm0,%ymm1,%ymm14867vbroadcasti32x4 96(%rcx),%ymm04868vaesenc %ymm0,%ymm1,%ymm14869vbroadcasti32x4 112(%rcx),%ymm04870vaesenc %ymm0,%ymm1,%ymm14871vbroadcasti32x4 128(%rcx),%ymm04872vaesenc %ymm0,%ymm1,%ymm14873vbroadcasti32x4 144(%rcx),%ymm04874vaesenc %ymm0,%ymm1,%ymm14875vbroadcasti32x4 160(%rcx),%ymm04876vaesenc %ymm0,%ymm1,%ymm14877vbroadcasti32x4 176(%rcx),%ymm04878vaesenc %ymm0,%ymm1,%ymm14879vbroadcasti32x4 192(%rcx),%ymm04880vaesenc %ymm0,%ymm1,%ymm14881vbroadcasti32x4 208(%rcx),%ymm04882vaesenc %ymm0,%ymm1,%ymm14883vbroadcasti32x4 224(%rcx),%ymm04884vaesenclast %ymm0,%ymm1,%ymm14885vpxorq %ymm9,%ymm1,%ymm14886vmovdqu8 %ymm1,0(%rsi)4887addq $32,%rsi48884889vextracti32x4 $1,%ymm1,%xmm84890vextracti32x4 $2,%zmm9,%xmm04891andq $0xf,%rdx4892je .L_ret_wcpqaDvsGlbjGoe4893jmp .L_steal_cipher_wcpqaDvsGlbjGoe4894.L_num_blocks_is_1_wcpqaDvsGlbjGoe:4895vpshufb %zmm8,%zmm0,%zmm14896vpsllvq const_dq3210(%rip),%zmm0,%zmm44897vpsrlvq const_dq5678(%rip),%zmm1,%zmm24898vpclmulqdq $0x00,%zmm25,%zmm2,%zmm34899vpxorq %zmm2,%zmm4,%zmm4{%k2}4900vpxord %zmm4,%zmm3,%zmm949014902vmovdqu8 0(%rdi),%xmm14903addq $16,%rdi4904vbroadcasti32x4 (%rcx),%ymm04905vpternlogq $0x96,%ymm0,%ymm9,%ymm14906vbroadcasti32x4 16(%rcx),%ymm04907vaesenc %ymm0,%ymm1,%ymm14908vbroadcasti32x4 32(%rcx),%ymm04909vaesenc %ymm0,%ymm1,%ymm14910vbroadcasti32x4 48(%rcx),%ymm04911vaesenc %ymm0,%ymm1,%ymm14912vbroadcasti32x4 64(%rcx),%ymm04913vaesenc %ymm0,%ymm1,%ymm14914vbroadcasti32x4 80(%rcx),%ymm04915vaesenc %ymm0,%ymm1,%ymm14916vbroadcasti32x4 96(%rcx),%ymm04917vaesenc %ymm0,%ymm1,%ymm14918vbroadcasti32x4 112(%rcx),%ymm04919vaesenc %ymm0,%ymm1,%ymm14920vbroadcasti32x4 128(%rcx),%ymm04921vaesenc %ymm0,%ymm1,%ymm14922vbroadcasti32x4 144(%rcx),%ymm04923vaesenc %ymm0,%ymm1,%ymm14924vbroadcasti32x4 160(%rcx),%ymm04925vaesenc %ymm0,%ymm1,%ymm14926vbroadcasti32x4 176(%rcx),%ymm04927vaesenc %ymm0,%ymm1,%ymm14928vbroadcasti32x4 192(%rcx),%ymm04929vaesenc %ymm0,%ymm1,%ymm14930vbroadcasti32x4 208(%rcx),%ymm04931vaesenc %ymm0,%ymm1,%ymm14932vbroadcasti32x4 224(%rcx),%ymm04933vaesenclast %ymm0,%ymm1,%ymm14934vpxorq %ymm9,%ymm1,%ymm14935vmovdqu8 %xmm1,0(%rsi)4936addq $16,%rsi49374938vmovdqa %xmm1,%xmm84939vextracti32x4 $1,%zmm9,%xmm04940andq $0xf,%rdx4941je .L_ret_wcpqaDvsGlbjGoe4942jmp .L_steal_cipher_wcpqaDvsGlbjGoe4943.cfi_endproc4944.globl aesni_xts_256_decrypt_avx5124945.hidden aesni_xts_256_decrypt_avx5124946.type aesni_xts_256_decrypt_avx512,@function4947.align 324948aesni_xts_256_decrypt_avx512:4949.cfi_startproc4950.byte 243,15,30,2504951pushq %rbp4952movq %rsp,%rbp4953subq $136,%rsp4954andq $0xffffffffffffffc0,%rsp4955movq %rbx,128(%rsp)4956movq $0x87,%r104957vmovdqu (%r9),%xmm14958vpxor (%r8),%xmm1,%xmm14959vaesenc 16(%r8),%xmm1,%xmm14960vaesenc 32(%r8),%xmm1,%xmm14961vaesenc 48(%r8),%xmm1,%xmm14962vaesenc 64(%r8),%xmm1,%xmm14963vaesenc 80(%r8),%xmm1,%xmm14964vaesenc 96(%r8),%xmm1,%xmm14965vaesenc 112(%r8),%xmm1,%xmm14966vaesenc 128(%r8),%xmm1,%xmm14967vaesenc 144(%r8),%xmm1,%xmm14968vaesenc 160(%r8),%xmm1,%xmm14969vaesenc 176(%r8),%xmm1,%xmm14970vaesenc 192(%r8),%xmm1,%xmm14971vaesenc 208(%r8),%xmm1,%xmm14972vaesenclast 224(%r8),%xmm1,%xmm14973vmovdqa %xmm1,(%rsp)49744975cmpq $0x80,%rdx4976jb .L_less_than_128_bytes_EmbgEptodyewbFa4977vpbroadcastq %r10,%zmm254978cmpq $0x100,%rdx4979jge .L_start_by16_EmbgEptodyewbFa4980jmp .L_start_by8_EmbgEptodyewbFa49814982.L_do_n_blocks_EmbgEptodyewbFa:4983cmpq $0x0,%rdx4984je .L_ret_EmbgEptodyewbFa4985cmpq $0x70,%rdx4986jge .L_remaining_num_blocks_is_7_EmbgEptodyewbFa4987cmpq $0x60,%rdx4988jge .L_remaining_num_blocks_is_6_EmbgEptodyewbFa4989cmpq $0x50,%rdx4990jge .L_remaining_num_blocks_is_5_EmbgEptodyewbFa4991cmpq $0x40,%rdx4992jge .L_remaining_num_blocks_is_4_EmbgEptodyewbFa4993cmpq $0x30,%rdx4994jge .L_remaining_num_blocks_is_3_EmbgEptodyewbFa4995cmpq $0x20,%rdx4996jge .L_remaining_num_blocks_is_2_EmbgEptodyewbFa4997cmpq $0x10,%rdx4998jge .L_remaining_num_blocks_is_1_EmbgEptodyewbFa499950005001vmovdqu %xmm5,%xmm150025003vpxor %xmm9,%xmm1,%xmm15004vmovdqu (%rcx),%xmm05005vpxor %xmm0,%xmm1,%xmm15006vmovdqu 16(%rcx),%xmm05007vaesdec %xmm0,%xmm1,%xmm15008vmovdqu 32(%rcx),%xmm05009vaesdec %xmm0,%xmm1,%xmm15010vmovdqu 48(%rcx),%xmm05011vaesdec %xmm0,%xmm1,%xmm15012vmovdqu 64(%rcx),%xmm05013vaesdec %xmm0,%xmm1,%xmm15014vmovdqu 80(%rcx),%xmm05015vaesdec %xmm0,%xmm1,%xmm15016vmovdqu 96(%rcx),%xmm05017vaesdec %xmm0,%xmm1,%xmm15018vmovdqu 112(%rcx),%xmm05019vaesdec %xmm0,%xmm1,%xmm15020vmovdqu 128(%rcx),%xmm05021vaesdec %xmm0,%xmm1,%xmm15022vmovdqu 144(%rcx),%xmm05023vaesdec %xmm0,%xmm1,%xmm15024vmovdqu 160(%rcx),%xmm05025vaesdec %xmm0,%xmm1,%xmm15026vmovdqu 176(%rcx),%xmm05027vaesdec %xmm0,%xmm1,%xmm15028vmovdqu 192(%rcx),%xmm05029vaesdec %xmm0,%xmm1,%xmm15030vmovdqu 208(%rcx),%xmm05031vaesdec %xmm0,%xmm1,%xmm15032vmovdqu 224(%rcx),%xmm05033vaesdeclast %xmm0,%xmm1,%xmm15034vpxor %xmm9,%xmm1,%xmm15035vmovdqu %xmm1,-16(%rsi)5036vmovdqa %xmm1,%xmm8503750385039movq $0x1,%r85040kmovq %r8,%k15041vpsllq $0x3f,%xmm9,%xmm135042vpsraq $0x3f,%xmm13,%xmm145043vpandq %xmm25,%xmm14,%xmm55044vpxorq %xmm5,%xmm9,%xmm9{%k1}5045vpsrldq $0x8,%xmm9,%xmm105046.byte 98, 211, 181, 8, 115, 194, 15047vpslldq $0x8,%xmm13,%xmm135048vpxorq %xmm13,%xmm0,%xmm05049jmp .L_steal_cipher_EmbgEptodyewbFa50505051.L_remaining_num_blocks_is_7_EmbgEptodyewbFa:5052movq $0xffffffffffffffff,%r85053shrq $0x10,%r85054kmovq %r8,%k15055vmovdqu8 (%rdi),%zmm15056vmovdqu8 64(%rdi),%zmm2{%k1}5057addq $0x70,%rdi5058andq $0xf,%rdx5059je .L_done_7_remain_EmbgEptodyewbFa5060vextracti32x4 $0x2,%zmm10,%xmm125061vextracti32x4 $0x3,%zmm10,%xmm135062vinserti32x4 $0x2,%xmm13,%zmm10,%zmm1050635064vpxorq %zmm9,%zmm1,%zmm15065vpxorq %zmm10,%zmm2,%zmm2506650675068vbroadcasti32x4 (%rcx),%zmm05069vpxorq %zmm0,%zmm1,%zmm15070vpxorq %zmm0,%zmm2,%zmm25071vbroadcasti32x4 16(%rcx),%zmm05072vaesdec %zmm0,%zmm1,%zmm15073vaesdec %zmm0,%zmm2,%zmm2507450755076vbroadcasti32x4 32(%rcx),%zmm05077vaesdec %zmm0,%zmm1,%zmm15078vaesdec %zmm0,%zmm2,%zmm2507950805081vbroadcasti32x4 48(%rcx),%zmm05082vaesdec %zmm0,%zmm1,%zmm15083vaesdec %zmm0,%zmm2,%zmm250845085vbroadcasti32x4 64(%rcx),%zmm05086vaesdec %zmm0,%zmm1,%zmm15087vaesdec %zmm0,%zmm2,%zmm2508850895090vbroadcasti32x4 80(%rcx),%zmm05091vaesdec %zmm0,%zmm1,%zmm15092vaesdec %zmm0,%zmm2,%zmm2509350945095vbroadcasti32x4 96(%rcx),%zmm05096vaesdec %zmm0,%zmm1,%zmm15097vaesdec %zmm0,%zmm2,%zmm2509850995100vbroadcasti32x4 112(%rcx),%zmm05101vaesdec %zmm0,%zmm1,%zmm15102vaesdec %zmm0,%zmm2,%zmm2510351045105vbroadcasti32x4 128(%rcx),%zmm05106vaesdec %zmm0,%zmm1,%zmm15107vaesdec %zmm0,%zmm2,%zmm2510851095110vbroadcasti32x4 144(%rcx),%zmm05111vaesdec %zmm0,%zmm1,%zmm15112vaesdec %zmm0,%zmm2,%zmm2511351145115vbroadcasti32x4 160(%rcx),%zmm05116vaesdec %zmm0,%zmm1,%zmm15117vaesdec %zmm0,%zmm2,%zmm2511851195120vbroadcasti32x4 176(%rcx),%zmm05121vaesdec %zmm0,%zmm1,%zmm15122vaesdec %zmm0,%zmm2,%zmm2512351245125vbroadcasti32x4 192(%rcx),%zmm05126vaesdec %zmm0,%zmm1,%zmm15127vaesdec %zmm0,%zmm2,%zmm2512851295130vbroadcasti32x4 208(%rcx),%zmm05131vaesdec %zmm0,%zmm1,%zmm15132vaesdec %zmm0,%zmm2,%zmm2513351345135vbroadcasti32x4 224(%rcx),%zmm05136vaesdeclast %zmm0,%zmm1,%zmm15137vaesdeclast %zmm0,%zmm2,%zmm251385139vpxorq %zmm9,%zmm1,%zmm15140vpxorq %zmm10,%zmm2,%zmm2514151425143vmovdqa32 %zmm15,%zmm95144vmovdqa32 %zmm16,%zmm105145vmovdqu8 %zmm1,(%rsi)5146vmovdqu8 %zmm2,64(%rsi){%k1}5147addq $0x70,%rsi5148vextracti32x4 $0x2,%zmm2,%xmm85149vmovdqa %xmm12,%xmm05150jmp .L_steal_cipher_EmbgEptodyewbFa51515152.L_done_7_remain_EmbgEptodyewbFa:51535154vpxorq %zmm9,%zmm1,%zmm15155vpxorq %zmm10,%zmm2,%zmm2515651575158vbroadcasti32x4 (%rcx),%zmm05159vpxorq %zmm0,%zmm1,%zmm15160vpxorq %zmm0,%zmm2,%zmm25161vbroadcasti32x4 16(%rcx),%zmm05162vaesdec %zmm0,%zmm1,%zmm15163vaesdec %zmm0,%zmm2,%zmm2516451655166vbroadcasti32x4 32(%rcx),%zmm05167vaesdec %zmm0,%zmm1,%zmm15168vaesdec %zmm0,%zmm2,%zmm2516951705171vbroadcasti32x4 48(%rcx),%zmm05172vaesdec %zmm0,%zmm1,%zmm15173vaesdec %zmm0,%zmm2,%zmm251745175vbroadcasti32x4 64(%rcx),%zmm05176vaesdec %zmm0,%zmm1,%zmm15177vaesdec %zmm0,%zmm2,%zmm2517851795180vbroadcasti32x4 80(%rcx),%zmm05181vaesdec %zmm0,%zmm1,%zmm15182vaesdec %zmm0,%zmm2,%zmm2518351845185vbroadcasti32x4 96(%rcx),%zmm05186vaesdec %zmm0,%zmm1,%zmm15187vaesdec %zmm0,%zmm2,%zmm2518851895190vbroadcasti32x4 112(%rcx),%zmm05191vaesdec %zmm0,%zmm1,%zmm15192vaesdec %zmm0,%zmm2,%zmm2519351945195vbroadcasti32x4 128(%rcx),%zmm05196vaesdec %zmm0,%zmm1,%zmm15197vaesdec %zmm0,%zmm2,%zmm2519851995200vbroadcasti32x4 144(%rcx),%zmm05201vaesdec %zmm0,%zmm1,%zmm15202vaesdec %zmm0,%zmm2,%zmm2520352045205vbroadcasti32x4 160(%rcx),%zmm05206vaesdec %zmm0,%zmm1,%zmm15207vaesdec %zmm0,%zmm2,%zmm2520852095210vbroadcasti32x4 176(%rcx),%zmm05211vaesdec %zmm0,%zmm1,%zmm15212vaesdec %zmm0,%zmm2,%zmm2521352145215vbroadcasti32x4 192(%rcx),%zmm05216vaesdec %zmm0,%zmm1,%zmm15217vaesdec %zmm0,%zmm2,%zmm2521852195220vbroadcasti32x4 208(%rcx),%zmm05221vaesdec %zmm0,%zmm1,%zmm15222vaesdec %zmm0,%zmm2,%zmm2522352245225vbroadcasti32x4 224(%rcx),%zmm05226vaesdeclast %zmm0,%zmm1,%zmm15227vaesdeclast %zmm0,%zmm2,%zmm252285229vpxorq %zmm9,%zmm1,%zmm15230vpxorq %zmm10,%zmm2,%zmm2523152325233vmovdqa32 %zmm15,%zmm95234vmovdqa32 %zmm16,%zmm105235vmovdqu8 %zmm1,(%rsi)5236vmovdqu8 %zmm2,64(%rsi){%k1}5237jmp .L_ret_EmbgEptodyewbFa52385239.L_remaining_num_blocks_is_6_EmbgEptodyewbFa:5240vmovdqu8 (%rdi),%zmm15241vmovdqu8 64(%rdi),%ymm25242addq $0x60,%rdi5243andq $0xf,%rdx5244je .L_done_6_remain_EmbgEptodyewbFa5245vextracti32x4 $0x1,%zmm10,%xmm125246vextracti32x4 $0x2,%zmm10,%xmm135247vinserti32x4 $0x1,%xmm13,%zmm10,%zmm1052485249vpxorq %zmm9,%zmm1,%zmm15250vpxorq %zmm10,%zmm2,%zmm2525152525253vbroadcasti32x4 (%rcx),%zmm05254vpxorq %zmm0,%zmm1,%zmm15255vpxorq %zmm0,%zmm2,%zmm25256vbroadcasti32x4 16(%rcx),%zmm05257vaesdec %zmm0,%zmm1,%zmm15258vaesdec %zmm0,%zmm2,%zmm2525952605261vbroadcasti32x4 32(%rcx),%zmm05262vaesdec %zmm0,%zmm1,%zmm15263vaesdec %zmm0,%zmm2,%zmm2526452655266vbroadcasti32x4 48(%rcx),%zmm05267vaesdec %zmm0,%zmm1,%zmm15268vaesdec %zmm0,%zmm2,%zmm252695270vbroadcasti32x4 64(%rcx),%zmm05271vaesdec %zmm0,%zmm1,%zmm15272vaesdec %zmm0,%zmm2,%zmm2527352745275vbroadcasti32x4 80(%rcx),%zmm05276vaesdec %zmm0,%zmm1,%zmm15277vaesdec %zmm0,%zmm2,%zmm2527852795280vbroadcasti32x4 96(%rcx),%zmm05281vaesdec %zmm0,%zmm1,%zmm15282vaesdec %zmm0,%zmm2,%zmm2528352845285vbroadcasti32x4 112(%rcx),%zmm05286vaesdec %zmm0,%zmm1,%zmm15287vaesdec %zmm0,%zmm2,%zmm2528852895290vbroadcasti32x4 128(%rcx),%zmm05291vaesdec %zmm0,%zmm1,%zmm15292vaesdec %zmm0,%zmm2,%zmm2529352945295vbroadcasti32x4 144(%rcx),%zmm05296vaesdec %zmm0,%zmm1,%zmm15297vaesdec %zmm0,%zmm2,%zmm2529852995300vbroadcasti32x4 160(%rcx),%zmm05301vaesdec %zmm0,%zmm1,%zmm15302vaesdec %zmm0,%zmm2,%zmm2530353045305vbroadcasti32x4 176(%rcx),%zmm05306vaesdec %zmm0,%zmm1,%zmm15307vaesdec %zmm0,%zmm2,%zmm2530853095310vbroadcasti32x4 192(%rcx),%zmm05311vaesdec %zmm0,%zmm1,%zmm15312vaesdec %zmm0,%zmm2,%zmm2531353145315vbroadcasti32x4 208(%rcx),%zmm05316vaesdec %zmm0,%zmm1,%zmm15317vaesdec %zmm0,%zmm2,%zmm2531853195320vbroadcasti32x4 224(%rcx),%zmm05321vaesdeclast %zmm0,%zmm1,%zmm15322vaesdeclast %zmm0,%zmm2,%zmm253235324vpxorq %zmm9,%zmm1,%zmm15325vpxorq %zmm10,%zmm2,%zmm2532653275328vmovdqa32 %zmm15,%zmm95329vmovdqa32 %zmm16,%zmm105330vmovdqu8 %zmm1,(%rsi)5331vmovdqu8 %ymm2,64(%rsi)5332addq $0x60,%rsi5333vextracti32x4 $0x1,%zmm2,%xmm85334vmovdqa %xmm12,%xmm05335jmp .L_steal_cipher_EmbgEptodyewbFa53365337.L_done_6_remain_EmbgEptodyewbFa:53385339vpxorq %zmm9,%zmm1,%zmm15340vpxorq %zmm10,%zmm2,%zmm2534153425343vbroadcasti32x4 (%rcx),%zmm05344vpxorq %zmm0,%zmm1,%zmm15345vpxorq %zmm0,%zmm2,%zmm25346vbroadcasti32x4 16(%rcx),%zmm05347vaesdec %zmm0,%zmm1,%zmm15348vaesdec %zmm0,%zmm2,%zmm2534953505351vbroadcasti32x4 32(%rcx),%zmm05352vaesdec %zmm0,%zmm1,%zmm15353vaesdec %zmm0,%zmm2,%zmm2535453555356vbroadcasti32x4 48(%rcx),%zmm05357vaesdec %zmm0,%zmm1,%zmm15358vaesdec %zmm0,%zmm2,%zmm253595360vbroadcasti32x4 64(%rcx),%zmm05361vaesdec %zmm0,%zmm1,%zmm15362vaesdec %zmm0,%zmm2,%zmm2536353645365vbroadcasti32x4 80(%rcx),%zmm05366vaesdec %zmm0,%zmm1,%zmm15367vaesdec %zmm0,%zmm2,%zmm2536853695370vbroadcasti32x4 96(%rcx),%zmm05371vaesdec %zmm0,%zmm1,%zmm15372vaesdec %zmm0,%zmm2,%zmm2537353745375vbroadcasti32x4 112(%rcx),%zmm05376vaesdec %zmm0,%zmm1,%zmm15377vaesdec %zmm0,%zmm2,%zmm2537853795380vbroadcasti32x4 128(%rcx),%zmm05381vaesdec %zmm0,%zmm1,%zmm15382vaesdec %zmm0,%zmm2,%zmm2538353845385vbroadcasti32x4 144(%rcx),%zmm05386vaesdec %zmm0,%zmm1,%zmm15387vaesdec %zmm0,%zmm2,%zmm2538853895390vbroadcasti32x4 160(%rcx),%zmm05391vaesdec %zmm0,%zmm1,%zmm15392vaesdec %zmm0,%zmm2,%zmm2539353945395vbroadcasti32x4 176(%rcx),%zmm05396vaesdec %zmm0,%zmm1,%zmm15397vaesdec %zmm0,%zmm2,%zmm2539853995400vbroadcasti32x4 192(%rcx),%zmm05401vaesdec %zmm0,%zmm1,%zmm15402vaesdec %zmm0,%zmm2,%zmm2540354045405vbroadcasti32x4 208(%rcx),%zmm05406vaesdec %zmm0,%zmm1,%zmm15407vaesdec %zmm0,%zmm2,%zmm2540854095410vbroadcasti32x4 224(%rcx),%zmm05411vaesdeclast %zmm0,%zmm1,%zmm15412vaesdeclast %zmm0,%zmm2,%zmm254135414vpxorq %zmm9,%zmm1,%zmm15415vpxorq %zmm10,%zmm2,%zmm2541654175418vmovdqa32 %zmm15,%zmm95419vmovdqa32 %zmm16,%zmm105420vmovdqu8 %zmm1,(%rsi)5421vmovdqu8 %ymm2,64(%rsi)5422jmp .L_ret_EmbgEptodyewbFa54235424.L_remaining_num_blocks_is_5_EmbgEptodyewbFa:5425vmovdqu8 (%rdi),%zmm15426vmovdqu 64(%rdi),%xmm25427addq $0x50,%rdi5428andq $0xf,%rdx5429je .L_done_5_remain_EmbgEptodyewbFa5430vmovdqa %xmm10,%xmm125431vextracti32x4 $0x1,%zmm10,%xmm1054325433vpxorq %zmm9,%zmm1,%zmm15434vpxorq %zmm10,%zmm2,%zmm2543554365437vbroadcasti32x4 (%rcx),%zmm05438vpxorq %zmm0,%zmm1,%zmm15439vpxorq %zmm0,%zmm2,%zmm25440vbroadcasti32x4 16(%rcx),%zmm05441vaesdec %zmm0,%zmm1,%zmm15442vaesdec %zmm0,%zmm2,%zmm2544354445445vbroadcasti32x4 32(%rcx),%zmm05446vaesdec %zmm0,%zmm1,%zmm15447vaesdec %zmm0,%zmm2,%zmm2544854495450vbroadcasti32x4 48(%rcx),%zmm05451vaesdec %zmm0,%zmm1,%zmm15452vaesdec %zmm0,%zmm2,%zmm254535454vbroadcasti32x4 64(%rcx),%zmm05455vaesdec %zmm0,%zmm1,%zmm15456vaesdec %zmm0,%zmm2,%zmm2545754585459vbroadcasti32x4 80(%rcx),%zmm05460vaesdec %zmm0,%zmm1,%zmm15461vaesdec %zmm0,%zmm2,%zmm2546254635464vbroadcasti32x4 96(%rcx),%zmm05465vaesdec %zmm0,%zmm1,%zmm15466vaesdec %zmm0,%zmm2,%zmm2546754685469vbroadcasti32x4 112(%rcx),%zmm05470vaesdec %zmm0,%zmm1,%zmm15471vaesdec %zmm0,%zmm2,%zmm2547254735474vbroadcasti32x4 128(%rcx),%zmm05475vaesdec %zmm0,%zmm1,%zmm15476vaesdec %zmm0,%zmm2,%zmm2547754785479vbroadcasti32x4 144(%rcx),%zmm05480vaesdec %zmm0,%zmm1,%zmm15481vaesdec %zmm0,%zmm2,%zmm2548254835484vbroadcasti32x4 160(%rcx),%zmm05485vaesdec %zmm0,%zmm1,%zmm15486vaesdec %zmm0,%zmm2,%zmm2548754885489vbroadcasti32x4 176(%rcx),%zmm05490vaesdec %zmm0,%zmm1,%zmm15491vaesdec %zmm0,%zmm2,%zmm2549254935494vbroadcasti32x4 192(%rcx),%zmm05495vaesdec %zmm0,%zmm1,%zmm15496vaesdec %zmm0,%zmm2,%zmm2549754985499vbroadcasti32x4 208(%rcx),%zmm05500vaesdec %zmm0,%zmm1,%zmm15501vaesdec %zmm0,%zmm2,%zmm2550255035504vbroadcasti32x4 224(%rcx),%zmm05505vaesdeclast %zmm0,%zmm1,%zmm15506vaesdeclast %zmm0,%zmm2,%zmm255075508vpxorq %zmm9,%zmm1,%zmm15509vpxorq %zmm10,%zmm2,%zmm2551055115512vmovdqa32 %zmm15,%zmm95513vmovdqa32 %zmm16,%zmm105514vmovdqu8 %zmm1,(%rsi)5515vmovdqu %xmm2,64(%rsi)5516addq $0x50,%rsi5517vmovdqa %xmm2,%xmm85518vmovdqa %xmm12,%xmm05519jmp .L_steal_cipher_EmbgEptodyewbFa55205521.L_done_5_remain_EmbgEptodyewbFa:55225523vpxorq %zmm9,%zmm1,%zmm15524vpxorq %zmm10,%zmm2,%zmm2552555265527vbroadcasti32x4 (%rcx),%zmm05528vpxorq %zmm0,%zmm1,%zmm15529vpxorq %zmm0,%zmm2,%zmm25530vbroadcasti32x4 16(%rcx),%zmm05531vaesdec %zmm0,%zmm1,%zmm15532vaesdec %zmm0,%zmm2,%zmm2553355345535vbroadcasti32x4 32(%rcx),%zmm05536vaesdec %zmm0,%zmm1,%zmm15537vaesdec %zmm0,%zmm2,%zmm2553855395540vbroadcasti32x4 48(%rcx),%zmm05541vaesdec %zmm0,%zmm1,%zmm15542vaesdec %zmm0,%zmm2,%zmm255435544vbroadcasti32x4 64(%rcx),%zmm05545vaesdec %zmm0,%zmm1,%zmm15546vaesdec %zmm0,%zmm2,%zmm2554755485549vbroadcasti32x4 80(%rcx),%zmm05550vaesdec %zmm0,%zmm1,%zmm15551vaesdec %zmm0,%zmm2,%zmm2555255535554vbroadcasti32x4 96(%rcx),%zmm05555vaesdec %zmm0,%zmm1,%zmm15556vaesdec %zmm0,%zmm2,%zmm2555755585559vbroadcasti32x4 112(%rcx),%zmm05560vaesdec %zmm0,%zmm1,%zmm15561vaesdec %zmm0,%zmm2,%zmm2556255635564vbroadcasti32x4 128(%rcx),%zmm05565vaesdec %zmm0,%zmm1,%zmm15566vaesdec %zmm0,%zmm2,%zmm2556755685569vbroadcasti32x4 144(%rcx),%zmm05570vaesdec %zmm0,%zmm1,%zmm15571vaesdec %zmm0,%zmm2,%zmm2557255735574vbroadcasti32x4 160(%rcx),%zmm05575vaesdec %zmm0,%zmm1,%zmm15576vaesdec %zmm0,%zmm2,%zmm2557755785579vbroadcasti32x4 176(%rcx),%zmm05580vaesdec %zmm0,%zmm1,%zmm15581vaesdec %zmm0,%zmm2,%zmm2558255835584vbroadcasti32x4 192(%rcx),%zmm05585vaesdec %zmm0,%zmm1,%zmm15586vaesdec %zmm0,%zmm2,%zmm2558755885589vbroadcasti32x4 208(%rcx),%zmm05590vaesdec %zmm0,%zmm1,%zmm15591vaesdec %zmm0,%zmm2,%zmm2559255935594vbroadcasti32x4 224(%rcx),%zmm05595vaesdeclast %zmm0,%zmm1,%zmm15596vaesdeclast %zmm0,%zmm2,%zmm255975598vpxorq %zmm9,%zmm1,%zmm15599vpxorq %zmm10,%zmm2,%zmm2560056015602vmovdqa32 %zmm15,%zmm95603vmovdqa32 %zmm16,%zmm105604vmovdqu8 %zmm1,(%rsi)5605vmovdqu8 %xmm2,64(%rsi)5606jmp .L_ret_EmbgEptodyewbFa56075608.L_remaining_num_blocks_is_4_EmbgEptodyewbFa:5609vmovdqu8 (%rdi),%zmm15610addq $0x40,%rdi5611andq $0xf,%rdx5612je .L_done_4_remain_EmbgEptodyewbFa5613vextracti32x4 $0x3,%zmm9,%xmm125614vinserti32x4 $0x3,%xmm10,%zmm9,%zmm956155616vpxorq %zmm9,%zmm1,%zmm15617vpxorq %zmm10,%zmm2,%zmm2561856195620vbroadcasti32x4 (%rcx),%zmm05621vpxorq %zmm0,%zmm1,%zmm15622vpxorq %zmm0,%zmm2,%zmm25623vbroadcasti32x4 16(%rcx),%zmm05624vaesdec %zmm0,%zmm1,%zmm15625vaesdec %zmm0,%zmm2,%zmm2562656275628vbroadcasti32x4 32(%rcx),%zmm05629vaesdec %zmm0,%zmm1,%zmm15630vaesdec %zmm0,%zmm2,%zmm2563156325633vbroadcasti32x4 48(%rcx),%zmm05634vaesdec %zmm0,%zmm1,%zmm15635vaesdec %zmm0,%zmm2,%zmm256365637vbroadcasti32x4 64(%rcx),%zmm05638vaesdec %zmm0,%zmm1,%zmm15639vaesdec %zmm0,%zmm2,%zmm2564056415642vbroadcasti32x4 80(%rcx),%zmm05643vaesdec %zmm0,%zmm1,%zmm15644vaesdec %zmm0,%zmm2,%zmm2564556465647vbroadcasti32x4 96(%rcx),%zmm05648vaesdec %zmm0,%zmm1,%zmm15649vaesdec %zmm0,%zmm2,%zmm2565056515652vbroadcasti32x4 112(%rcx),%zmm05653vaesdec %zmm0,%zmm1,%zmm15654vaesdec %zmm0,%zmm2,%zmm2565556565657vbroadcasti32x4 128(%rcx),%zmm05658vaesdec %zmm0,%zmm1,%zmm15659vaesdec %zmm0,%zmm2,%zmm2566056615662vbroadcasti32x4 144(%rcx),%zmm05663vaesdec %zmm0,%zmm1,%zmm15664vaesdec %zmm0,%zmm2,%zmm2566556665667vbroadcasti32x4 160(%rcx),%zmm05668vaesdec %zmm0,%zmm1,%zmm15669vaesdec %zmm0,%zmm2,%zmm2567056715672vbroadcasti32x4 176(%rcx),%zmm05673vaesdec %zmm0,%zmm1,%zmm15674vaesdec %zmm0,%zmm2,%zmm2567556765677vbroadcasti32x4 192(%rcx),%zmm05678vaesdec %zmm0,%zmm1,%zmm15679vaesdec %zmm0,%zmm2,%zmm2568056815682vbroadcasti32x4 208(%rcx),%zmm05683vaesdec %zmm0,%zmm1,%zmm15684vaesdec %zmm0,%zmm2,%zmm2568556865687vbroadcasti32x4 224(%rcx),%zmm05688vaesdeclast %zmm0,%zmm1,%zmm15689vaesdeclast %zmm0,%zmm2,%zmm256905691vpxorq %zmm9,%zmm1,%zmm15692vpxorq %zmm10,%zmm2,%zmm2569356945695vmovdqa32 %zmm15,%zmm95696vmovdqa32 %zmm16,%zmm105697vmovdqu8 %zmm1,(%rsi)5698addq $0x40,%rsi5699vextracti32x4 $0x3,%zmm1,%xmm85700vmovdqa %xmm12,%xmm05701jmp .L_steal_cipher_EmbgEptodyewbFa57025703.L_done_4_remain_EmbgEptodyewbFa:57045705vpxorq %zmm9,%zmm1,%zmm15706vpxorq %zmm10,%zmm2,%zmm2570757085709vbroadcasti32x4 (%rcx),%zmm05710vpxorq %zmm0,%zmm1,%zmm15711vpxorq %zmm0,%zmm2,%zmm25712vbroadcasti32x4 16(%rcx),%zmm05713vaesdec %zmm0,%zmm1,%zmm15714vaesdec %zmm0,%zmm2,%zmm2571557165717vbroadcasti32x4 32(%rcx),%zmm05718vaesdec %zmm0,%zmm1,%zmm15719vaesdec %zmm0,%zmm2,%zmm2572057215722vbroadcasti32x4 48(%rcx),%zmm05723vaesdec %zmm0,%zmm1,%zmm15724vaesdec %zmm0,%zmm2,%zmm257255726vbroadcasti32x4 64(%rcx),%zmm05727vaesdec %zmm0,%zmm1,%zmm15728vaesdec %zmm0,%zmm2,%zmm2572957305731vbroadcasti32x4 80(%rcx),%zmm05732vaesdec %zmm0,%zmm1,%zmm15733vaesdec %zmm0,%zmm2,%zmm2573457355736vbroadcasti32x4 96(%rcx),%zmm05737vaesdec %zmm0,%zmm1,%zmm15738vaesdec %zmm0,%zmm2,%zmm2573957405741vbroadcasti32x4 112(%rcx),%zmm05742vaesdec %zmm0,%zmm1,%zmm15743vaesdec %zmm0,%zmm2,%zmm2574457455746vbroadcasti32x4 128(%rcx),%zmm05747vaesdec %zmm0,%zmm1,%zmm15748vaesdec %zmm0,%zmm2,%zmm2574957505751vbroadcasti32x4 144(%rcx),%zmm05752vaesdec %zmm0,%zmm1,%zmm15753vaesdec %zmm0,%zmm2,%zmm2575457555756vbroadcasti32x4 160(%rcx),%zmm05757vaesdec %zmm0,%zmm1,%zmm15758vaesdec %zmm0,%zmm2,%zmm2575957605761vbroadcasti32x4 176(%rcx),%zmm05762vaesdec %zmm0,%zmm1,%zmm15763vaesdec %zmm0,%zmm2,%zmm2576457655766vbroadcasti32x4 192(%rcx),%zmm05767vaesdec %zmm0,%zmm1,%zmm15768vaesdec %zmm0,%zmm2,%zmm2576957705771vbroadcasti32x4 208(%rcx),%zmm05772vaesdec %zmm0,%zmm1,%zmm15773vaesdec %zmm0,%zmm2,%zmm2577457755776vbroadcasti32x4 224(%rcx),%zmm05777vaesdeclast %zmm0,%zmm1,%zmm15778vaesdeclast %zmm0,%zmm2,%zmm257795780vpxorq %zmm9,%zmm1,%zmm15781vpxorq %zmm10,%zmm2,%zmm2578257835784vmovdqa32 %zmm15,%zmm95785vmovdqa32 %zmm16,%zmm105786vmovdqu8 %zmm1,(%rsi)5787jmp .L_ret_EmbgEptodyewbFa57885789.L_remaining_num_blocks_is_3_EmbgEptodyewbFa:5790vmovdqu (%rdi),%xmm15791vmovdqu 16(%rdi),%xmm25792vmovdqu 32(%rdi),%xmm35793addq $0x30,%rdi5794andq $0xf,%rdx5795je .L_done_3_remain_EmbgEptodyewbFa5796vextracti32x4 $0x2,%zmm9,%xmm135797vextracti32x4 $0x1,%zmm9,%xmm105798vextracti32x4 $0x3,%zmm9,%xmm115799vpxor %xmm9,%xmm1,%xmm15800vpxor %xmm10,%xmm2,%xmm25801vpxor %xmm11,%xmm3,%xmm35802vmovdqu (%rcx),%xmm05803vpxor %xmm0,%xmm1,%xmm15804vpxor %xmm0,%xmm2,%xmm25805vpxor %xmm0,%xmm3,%xmm35806vmovdqu 16(%rcx),%xmm05807vaesdec %xmm0,%xmm1,%xmm15808vaesdec %xmm0,%xmm2,%xmm25809vaesdec %xmm0,%xmm3,%xmm35810vmovdqu 32(%rcx),%xmm05811vaesdec %xmm0,%xmm1,%xmm15812vaesdec %xmm0,%xmm2,%xmm25813vaesdec %xmm0,%xmm3,%xmm35814vmovdqu 48(%rcx),%xmm05815vaesdec %xmm0,%xmm1,%xmm15816vaesdec %xmm0,%xmm2,%xmm25817vaesdec %xmm0,%xmm3,%xmm35818vmovdqu 64(%rcx),%xmm05819vaesdec %xmm0,%xmm1,%xmm15820vaesdec %xmm0,%xmm2,%xmm25821vaesdec %xmm0,%xmm3,%xmm35822vmovdqu 80(%rcx),%xmm05823vaesdec %xmm0,%xmm1,%xmm15824vaesdec %xmm0,%xmm2,%xmm25825vaesdec %xmm0,%xmm3,%xmm35826vmovdqu 96(%rcx),%xmm05827vaesdec %xmm0,%xmm1,%xmm15828vaesdec %xmm0,%xmm2,%xmm25829vaesdec %xmm0,%xmm3,%xmm35830vmovdqu 112(%rcx),%xmm05831vaesdec %xmm0,%xmm1,%xmm15832vaesdec %xmm0,%xmm2,%xmm25833vaesdec %xmm0,%xmm3,%xmm35834vmovdqu 128(%rcx),%xmm05835vaesdec %xmm0,%xmm1,%xmm15836vaesdec %xmm0,%xmm2,%xmm25837vaesdec %xmm0,%xmm3,%xmm35838vmovdqu 144(%rcx),%xmm05839vaesdec %xmm0,%xmm1,%xmm15840vaesdec %xmm0,%xmm2,%xmm25841vaesdec %xmm0,%xmm3,%xmm35842vmovdqu 160(%rcx),%xmm05843vaesdec %xmm0,%xmm1,%xmm15844vaesdec %xmm0,%xmm2,%xmm25845vaesdec %xmm0,%xmm3,%xmm35846vmovdqu 176(%rcx),%xmm05847vaesdec %xmm0,%xmm1,%xmm15848vaesdec %xmm0,%xmm2,%xmm25849vaesdec %xmm0,%xmm3,%xmm35850vmovdqu 192(%rcx),%xmm05851vaesdec %xmm0,%xmm1,%xmm15852vaesdec %xmm0,%xmm2,%xmm25853vaesdec %xmm0,%xmm3,%xmm35854vmovdqu 208(%rcx),%xmm05855vaesdec %xmm0,%xmm1,%xmm15856vaesdec %xmm0,%xmm2,%xmm25857vaesdec %xmm0,%xmm3,%xmm35858vmovdqu 224(%rcx),%xmm05859vaesdeclast %xmm0,%xmm1,%xmm15860vaesdeclast %xmm0,%xmm2,%xmm25861vaesdeclast %xmm0,%xmm3,%xmm35862vpxor %xmm9,%xmm1,%xmm15863vpxor %xmm10,%xmm2,%xmm25864vpxor %xmm11,%xmm3,%xmm35865vmovdqu %xmm1,(%rsi)5866vmovdqu %xmm2,16(%rsi)5867vmovdqu %xmm3,32(%rsi)5868addq $0x30,%rsi5869vmovdqa %xmm3,%xmm85870vmovdqa %xmm13,%xmm05871jmp .L_steal_cipher_EmbgEptodyewbFa58725873.L_done_3_remain_EmbgEptodyewbFa:5874vextracti32x4 $0x1,%zmm9,%xmm105875vextracti32x4 $0x2,%zmm9,%xmm115876vpxor %xmm9,%xmm1,%xmm15877vpxor %xmm10,%xmm2,%xmm25878vpxor %xmm11,%xmm3,%xmm35879vmovdqu (%rcx),%xmm05880vpxor %xmm0,%xmm1,%xmm15881vpxor %xmm0,%xmm2,%xmm25882vpxor %xmm0,%xmm3,%xmm35883vmovdqu 16(%rcx),%xmm05884vaesdec %xmm0,%xmm1,%xmm15885vaesdec %xmm0,%xmm2,%xmm25886vaesdec %xmm0,%xmm3,%xmm35887vmovdqu 32(%rcx),%xmm05888vaesdec %xmm0,%xmm1,%xmm15889vaesdec %xmm0,%xmm2,%xmm25890vaesdec %xmm0,%xmm3,%xmm35891vmovdqu 48(%rcx),%xmm05892vaesdec %xmm0,%xmm1,%xmm15893vaesdec %xmm0,%xmm2,%xmm25894vaesdec %xmm0,%xmm3,%xmm35895vmovdqu 64(%rcx),%xmm05896vaesdec %xmm0,%xmm1,%xmm15897vaesdec %xmm0,%xmm2,%xmm25898vaesdec %xmm0,%xmm3,%xmm35899vmovdqu 80(%rcx),%xmm05900vaesdec %xmm0,%xmm1,%xmm15901vaesdec %xmm0,%xmm2,%xmm25902vaesdec %xmm0,%xmm3,%xmm35903vmovdqu 96(%rcx),%xmm05904vaesdec %xmm0,%xmm1,%xmm15905vaesdec %xmm0,%xmm2,%xmm25906vaesdec %xmm0,%xmm3,%xmm35907vmovdqu 112(%rcx),%xmm05908vaesdec %xmm0,%xmm1,%xmm15909vaesdec %xmm0,%xmm2,%xmm25910vaesdec %xmm0,%xmm3,%xmm35911vmovdqu 128(%rcx),%xmm05912vaesdec %xmm0,%xmm1,%xmm15913vaesdec %xmm0,%xmm2,%xmm25914vaesdec %xmm0,%xmm3,%xmm35915vmovdqu 144(%rcx),%xmm05916vaesdec %xmm0,%xmm1,%xmm15917vaesdec %xmm0,%xmm2,%xmm25918vaesdec %xmm0,%xmm3,%xmm35919vmovdqu 160(%rcx),%xmm05920vaesdec %xmm0,%xmm1,%xmm15921vaesdec %xmm0,%xmm2,%xmm25922vaesdec %xmm0,%xmm3,%xmm35923vmovdqu 176(%rcx),%xmm05924vaesdec %xmm0,%xmm1,%xmm15925vaesdec %xmm0,%xmm2,%xmm25926vaesdec %xmm0,%xmm3,%xmm35927vmovdqu 192(%rcx),%xmm05928vaesdec %xmm0,%xmm1,%xmm15929vaesdec %xmm0,%xmm2,%xmm25930vaesdec %xmm0,%xmm3,%xmm35931vmovdqu 208(%rcx),%xmm05932vaesdec %xmm0,%xmm1,%xmm15933vaesdec %xmm0,%xmm2,%xmm25934vaesdec %xmm0,%xmm3,%xmm35935vmovdqu 224(%rcx),%xmm05936vaesdeclast %xmm0,%xmm1,%xmm15937vaesdeclast %xmm0,%xmm2,%xmm25938vaesdeclast %xmm0,%xmm3,%xmm35939vpxor %xmm9,%xmm1,%xmm15940vpxor %xmm10,%xmm2,%xmm25941vpxor %xmm11,%xmm3,%xmm35942vmovdqu %xmm1,(%rsi)5943vmovdqu %xmm2,16(%rsi)5944vmovdqu %xmm3,32(%rsi)5945jmp .L_ret_EmbgEptodyewbFa59465947.L_remaining_num_blocks_is_2_EmbgEptodyewbFa:5948vmovdqu (%rdi),%xmm15949vmovdqu 16(%rdi),%xmm25950addq $0x20,%rdi5951andq $0xf,%rdx5952je .L_done_2_remain_EmbgEptodyewbFa5953vextracti32x4 $0x2,%zmm9,%xmm105954vextracti32x4 $0x1,%zmm9,%xmm125955vpxor %xmm9,%xmm1,%xmm15956vpxor %xmm10,%xmm2,%xmm25957vmovdqu (%rcx),%xmm05958vpxor %xmm0,%xmm1,%xmm15959vpxor %xmm0,%xmm2,%xmm25960vmovdqu 16(%rcx),%xmm05961vaesdec %xmm0,%xmm1,%xmm15962vaesdec %xmm0,%xmm2,%xmm25963vmovdqu 32(%rcx),%xmm05964vaesdec %xmm0,%xmm1,%xmm15965vaesdec %xmm0,%xmm2,%xmm25966vmovdqu 48(%rcx),%xmm05967vaesdec %xmm0,%xmm1,%xmm15968vaesdec %xmm0,%xmm2,%xmm25969vmovdqu 64(%rcx),%xmm05970vaesdec %xmm0,%xmm1,%xmm15971vaesdec %xmm0,%xmm2,%xmm25972vmovdqu 80(%rcx),%xmm05973vaesdec %xmm0,%xmm1,%xmm15974vaesdec %xmm0,%xmm2,%xmm25975vmovdqu 96(%rcx),%xmm05976vaesdec %xmm0,%xmm1,%xmm15977vaesdec %xmm0,%xmm2,%xmm25978vmovdqu 112(%rcx),%xmm05979vaesdec %xmm0,%xmm1,%xmm15980vaesdec %xmm0,%xmm2,%xmm25981vmovdqu 128(%rcx),%xmm05982vaesdec %xmm0,%xmm1,%xmm15983vaesdec %xmm0,%xmm2,%xmm25984vmovdqu 144(%rcx),%xmm05985vaesdec %xmm0,%xmm1,%xmm15986vaesdec %xmm0,%xmm2,%xmm25987vmovdqu 160(%rcx),%xmm05988vaesdec %xmm0,%xmm1,%xmm15989vaesdec %xmm0,%xmm2,%xmm25990vmovdqu 176(%rcx),%xmm05991vaesdec %xmm0,%xmm1,%xmm15992vaesdec %xmm0,%xmm2,%xmm25993vmovdqu 192(%rcx),%xmm05994vaesdec %xmm0,%xmm1,%xmm15995vaesdec %xmm0,%xmm2,%xmm25996vmovdqu 208(%rcx),%xmm05997vaesdec %xmm0,%xmm1,%xmm15998vaesdec %xmm0,%xmm2,%xmm25999vmovdqu 224(%rcx),%xmm06000vaesdeclast %xmm0,%xmm1,%xmm16001vaesdeclast %xmm0,%xmm2,%xmm26002vpxor %xmm9,%xmm1,%xmm16003vpxor %xmm10,%xmm2,%xmm26004vmovdqu %xmm1,(%rsi)6005vmovdqu %xmm2,16(%rsi)6006addq $0x20,%rsi6007vmovdqa %xmm2,%xmm86008vmovdqa %xmm12,%xmm06009jmp .L_steal_cipher_EmbgEptodyewbFa60106011.L_done_2_remain_EmbgEptodyewbFa:6012vextracti32x4 $0x1,%zmm9,%xmm106013vpxor %xmm9,%xmm1,%xmm16014vpxor %xmm10,%xmm2,%xmm26015vmovdqu (%rcx),%xmm06016vpxor %xmm0,%xmm1,%xmm16017vpxor %xmm0,%xmm2,%xmm26018vmovdqu 16(%rcx),%xmm06019vaesdec %xmm0,%xmm1,%xmm16020vaesdec %xmm0,%xmm2,%xmm26021vmovdqu 32(%rcx),%xmm06022vaesdec %xmm0,%xmm1,%xmm16023vaesdec %xmm0,%xmm2,%xmm26024vmovdqu 48(%rcx),%xmm06025vaesdec %xmm0,%xmm1,%xmm16026vaesdec %xmm0,%xmm2,%xmm26027vmovdqu 64(%rcx),%xmm06028vaesdec %xmm0,%xmm1,%xmm16029vaesdec %xmm0,%xmm2,%xmm26030vmovdqu 80(%rcx),%xmm06031vaesdec %xmm0,%xmm1,%xmm16032vaesdec %xmm0,%xmm2,%xmm26033vmovdqu 96(%rcx),%xmm06034vaesdec %xmm0,%xmm1,%xmm16035vaesdec %xmm0,%xmm2,%xmm26036vmovdqu 112(%rcx),%xmm06037vaesdec %xmm0,%xmm1,%xmm16038vaesdec %xmm0,%xmm2,%xmm26039vmovdqu 128(%rcx),%xmm06040vaesdec %xmm0,%xmm1,%xmm16041vaesdec %xmm0,%xmm2,%xmm26042vmovdqu 144(%rcx),%xmm06043vaesdec %xmm0,%xmm1,%xmm16044vaesdec %xmm0,%xmm2,%xmm26045vmovdqu 160(%rcx),%xmm06046vaesdec %xmm0,%xmm1,%xmm16047vaesdec %xmm0,%xmm2,%xmm26048vmovdqu 176(%rcx),%xmm06049vaesdec %xmm0,%xmm1,%xmm16050vaesdec %xmm0,%xmm2,%xmm26051vmovdqu 192(%rcx),%xmm06052vaesdec %xmm0,%xmm1,%xmm16053vaesdec %xmm0,%xmm2,%xmm26054vmovdqu 208(%rcx),%xmm06055vaesdec %xmm0,%xmm1,%xmm16056vaesdec %xmm0,%xmm2,%xmm26057vmovdqu 224(%rcx),%xmm06058vaesdeclast %xmm0,%xmm1,%xmm16059vaesdeclast %xmm0,%xmm2,%xmm26060vpxor %xmm9,%xmm1,%xmm16061vpxor %xmm10,%xmm2,%xmm26062vmovdqu %xmm1,(%rsi)6063vmovdqu %xmm2,16(%rsi)6064jmp .L_ret_EmbgEptodyewbFa60656066.L_remaining_num_blocks_is_1_EmbgEptodyewbFa:6067vmovdqu (%rdi),%xmm16068addq $0x10,%rdi6069andq $0xf,%rdx6070je .L_done_1_remain_EmbgEptodyewbFa6071vextracti32x4 $0x1,%zmm9,%xmm116072vpxor %xmm11,%xmm1,%xmm16073vmovdqu (%rcx),%xmm06074vpxor %xmm0,%xmm1,%xmm16075vmovdqu 16(%rcx),%xmm06076vaesdec %xmm0,%xmm1,%xmm16077vmovdqu 32(%rcx),%xmm06078vaesdec %xmm0,%xmm1,%xmm16079vmovdqu 48(%rcx),%xmm06080vaesdec %xmm0,%xmm1,%xmm16081vmovdqu 64(%rcx),%xmm06082vaesdec %xmm0,%xmm1,%xmm16083vmovdqu 80(%rcx),%xmm06084vaesdec %xmm0,%xmm1,%xmm16085vmovdqu 96(%rcx),%xmm06086vaesdec %xmm0,%xmm1,%xmm16087vmovdqu 112(%rcx),%xmm06088vaesdec %xmm0,%xmm1,%xmm16089vmovdqu 128(%rcx),%xmm06090vaesdec %xmm0,%xmm1,%xmm16091vmovdqu 144(%rcx),%xmm06092vaesdec %xmm0,%xmm1,%xmm16093vmovdqu 160(%rcx),%xmm06094vaesdec %xmm0,%xmm1,%xmm16095vmovdqu 176(%rcx),%xmm06096vaesdec %xmm0,%xmm1,%xmm16097vmovdqu 192(%rcx),%xmm06098vaesdec %xmm0,%xmm1,%xmm16099vmovdqu 208(%rcx),%xmm06100vaesdec %xmm0,%xmm1,%xmm16101vmovdqu 224(%rcx),%xmm06102vaesdeclast %xmm0,%xmm1,%xmm16103vpxor %xmm11,%xmm1,%xmm16104vmovdqu %xmm1,(%rsi)6105addq $0x10,%rsi6106vmovdqa %xmm1,%xmm86107vmovdqa %xmm9,%xmm06108jmp .L_steal_cipher_EmbgEptodyewbFa61096110.L_done_1_remain_EmbgEptodyewbFa:6111vpxor %xmm9,%xmm1,%xmm16112vmovdqu (%rcx),%xmm06113vpxor %xmm0,%xmm1,%xmm16114vmovdqu 16(%rcx),%xmm06115vaesdec %xmm0,%xmm1,%xmm16116vmovdqu 32(%rcx),%xmm06117vaesdec %xmm0,%xmm1,%xmm16118vmovdqu 48(%rcx),%xmm06119vaesdec %xmm0,%xmm1,%xmm16120vmovdqu 64(%rcx),%xmm06121vaesdec %xmm0,%xmm1,%xmm16122vmovdqu 80(%rcx),%xmm06123vaesdec %xmm0,%xmm1,%xmm16124vmovdqu 96(%rcx),%xmm06125vaesdec %xmm0,%xmm1,%xmm16126vmovdqu 112(%rcx),%xmm06127vaesdec %xmm0,%xmm1,%xmm16128vmovdqu 128(%rcx),%xmm06129vaesdec %xmm0,%xmm1,%xmm16130vmovdqu 144(%rcx),%xmm06131vaesdec %xmm0,%xmm1,%xmm16132vmovdqu 160(%rcx),%xmm06133vaesdec %xmm0,%xmm1,%xmm16134vmovdqu 176(%rcx),%xmm06135vaesdec %xmm0,%xmm1,%xmm16136vmovdqu 192(%rcx),%xmm06137vaesdec %xmm0,%xmm1,%xmm16138vmovdqu 208(%rcx),%xmm06139vaesdec %xmm0,%xmm1,%xmm16140vmovdqu 224(%rcx),%xmm06141vaesdeclast %xmm0,%xmm1,%xmm16142vpxor %xmm9,%xmm1,%xmm16143vmovdqu %xmm1,(%rsi)6144jmp .L_ret_EmbgEptodyewbFa61456146.L_start_by16_EmbgEptodyewbFa:6147vbroadcasti32x4 (%rsp),%zmm06148vbroadcasti32x4 shufb_15_7(%rip),%zmm86149movq $0xaa,%r86150kmovq %r8,%k2615161526153vpshufb %zmm8,%zmm0,%zmm16154vpsllvq const_dq3210(%rip),%zmm0,%zmm46155vpsrlvq const_dq5678(%rip),%zmm1,%zmm26156vpclmulqdq $0x0,%zmm25,%zmm2,%zmm36157vpxorq %zmm2,%zmm4,%zmm4{%k2}6158vpxord %zmm4,%zmm3,%zmm9615961606161vpsllvq const_dq7654(%rip),%zmm0,%zmm56162vpsrlvq const_dq1234(%rip),%zmm1,%zmm66163vpclmulqdq $0x0,%zmm25,%zmm6,%zmm76164vpxorq %zmm6,%zmm5,%zmm5{%k2}6165vpxord %zmm5,%zmm7,%zmm10616661676168vpsrldq $0xf,%zmm9,%zmm136169vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146170vpslldq $0x1,%zmm9,%zmm116171vpxord %zmm14,%zmm11,%zmm1161726173vpsrldq $0xf,%zmm10,%zmm156174vpclmulqdq $0x0,%zmm25,%zmm15,%zmm166175vpslldq $0x1,%zmm10,%zmm126176vpxord %zmm16,%zmm12,%zmm1261776178.L_main_loop_run_16_EmbgEptodyewbFa:6179vmovdqu8 (%rdi),%zmm16180vmovdqu8 64(%rdi),%zmm26181vmovdqu8 128(%rdi),%zmm36182vmovdqu8 192(%rdi),%zmm46183vmovdqu8 240(%rdi),%xmm56184addq $0x100,%rdi6185vpxorq %zmm9,%zmm1,%zmm16186vpxorq %zmm10,%zmm2,%zmm26187vpxorq %zmm11,%zmm3,%zmm36188vpxorq %zmm12,%zmm4,%zmm46189vbroadcasti32x4 (%rcx),%zmm06190vpxorq %zmm0,%zmm1,%zmm16191vpxorq %zmm0,%zmm2,%zmm26192vpxorq %zmm0,%zmm3,%zmm36193vpxorq %zmm0,%zmm4,%zmm46194vpsrldq $0xf,%zmm11,%zmm136195vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146196vpslldq $0x1,%zmm11,%zmm156197vpxord %zmm14,%zmm15,%zmm156198vbroadcasti32x4 16(%rcx),%zmm06199vaesdec %zmm0,%zmm1,%zmm16200vaesdec %zmm0,%zmm2,%zmm26201vaesdec %zmm0,%zmm3,%zmm36202vaesdec %zmm0,%zmm4,%zmm46203vbroadcasti32x4 32(%rcx),%zmm06204vaesdec %zmm0,%zmm1,%zmm16205vaesdec %zmm0,%zmm2,%zmm26206vaesdec %zmm0,%zmm3,%zmm36207vaesdec %zmm0,%zmm4,%zmm46208vbroadcasti32x4 48(%rcx),%zmm06209vaesdec %zmm0,%zmm1,%zmm16210vaesdec %zmm0,%zmm2,%zmm26211vaesdec %zmm0,%zmm3,%zmm36212vaesdec %zmm0,%zmm4,%zmm46213vpsrldq $0xf,%zmm12,%zmm136214vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146215vpslldq $0x1,%zmm12,%zmm166216vpxord %zmm14,%zmm16,%zmm166217vbroadcasti32x4 64(%rcx),%zmm06218vaesdec %zmm0,%zmm1,%zmm16219vaesdec %zmm0,%zmm2,%zmm26220vaesdec %zmm0,%zmm3,%zmm36221vaesdec %zmm0,%zmm4,%zmm46222vbroadcasti32x4 80(%rcx),%zmm06223vaesdec %zmm0,%zmm1,%zmm16224vaesdec %zmm0,%zmm2,%zmm26225vaesdec %zmm0,%zmm3,%zmm36226vaesdec %zmm0,%zmm4,%zmm46227vbroadcasti32x4 96(%rcx),%zmm06228vaesdec %zmm0,%zmm1,%zmm16229vaesdec %zmm0,%zmm2,%zmm26230vaesdec %zmm0,%zmm3,%zmm36231vaesdec %zmm0,%zmm4,%zmm46232vpsrldq $0xf,%zmm15,%zmm136233vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146234vpslldq $0x1,%zmm15,%zmm176235vpxord %zmm14,%zmm17,%zmm176236vbroadcasti32x4 112(%rcx),%zmm06237vaesdec %zmm0,%zmm1,%zmm16238vaesdec %zmm0,%zmm2,%zmm26239vaesdec %zmm0,%zmm3,%zmm36240vaesdec %zmm0,%zmm4,%zmm46241vbroadcasti32x4 128(%rcx),%zmm06242vaesdec %zmm0,%zmm1,%zmm16243vaesdec %zmm0,%zmm2,%zmm26244vaesdec %zmm0,%zmm3,%zmm36245vaesdec %zmm0,%zmm4,%zmm46246vbroadcasti32x4 144(%rcx),%zmm06247vaesdec %zmm0,%zmm1,%zmm16248vaesdec %zmm0,%zmm2,%zmm26249vaesdec %zmm0,%zmm3,%zmm36250vaesdec %zmm0,%zmm4,%zmm46251vpsrldq $0xf,%zmm16,%zmm136252vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146253vpslldq $0x1,%zmm16,%zmm186254vpxord %zmm14,%zmm18,%zmm186255vbroadcasti32x4 160(%rcx),%zmm06256vaesdec %zmm0,%zmm1,%zmm16257vaesdec %zmm0,%zmm2,%zmm26258vaesdec %zmm0,%zmm3,%zmm36259vaesdec %zmm0,%zmm4,%zmm46260vbroadcasti32x4 176(%rcx),%zmm06261vaesdec %zmm0,%zmm1,%zmm16262vaesdec %zmm0,%zmm2,%zmm26263vaesdec %zmm0,%zmm3,%zmm36264vaesdec %zmm0,%zmm4,%zmm46265vbroadcasti32x4 192(%rcx),%zmm06266vaesdec %zmm0,%zmm1,%zmm16267vaesdec %zmm0,%zmm2,%zmm26268vaesdec %zmm0,%zmm3,%zmm36269vaesdec %zmm0,%zmm4,%zmm46270vbroadcasti32x4 208(%rcx),%zmm06271vaesdec %zmm0,%zmm1,%zmm16272vaesdec %zmm0,%zmm2,%zmm26273vaesdec %zmm0,%zmm3,%zmm36274vaesdec %zmm0,%zmm4,%zmm46275vbroadcasti32x4 224(%rcx),%zmm06276vaesdeclast %zmm0,%zmm1,%zmm16277vaesdeclast %zmm0,%zmm2,%zmm26278vaesdeclast %zmm0,%zmm3,%zmm36279vaesdeclast %zmm0,%zmm4,%zmm46280vpxorq %zmm9,%zmm1,%zmm16281vpxorq %zmm10,%zmm2,%zmm26282vpxorq %zmm11,%zmm3,%zmm36283vpxorq %zmm12,%zmm4,%zmm462846285vmovdqa32 %zmm15,%zmm96286vmovdqa32 %zmm16,%zmm106287vmovdqa32 %zmm17,%zmm116288vmovdqa32 %zmm18,%zmm126289vmovdqu8 %zmm1,(%rsi)6290vmovdqu8 %zmm2,64(%rsi)6291vmovdqu8 %zmm3,128(%rsi)6292vmovdqu8 %zmm4,192(%rsi)6293addq $0x100,%rsi6294subq $0x100,%rdx6295cmpq $0x100,%rdx6296jge .L_main_loop_run_16_EmbgEptodyewbFa62976298cmpq $0x80,%rdx6299jge .L_main_loop_run_8_EmbgEptodyewbFa6300jmp .L_do_n_blocks_EmbgEptodyewbFa63016302.L_start_by8_EmbgEptodyewbFa:63036304vbroadcasti32x4 (%rsp),%zmm06305vbroadcasti32x4 shufb_15_7(%rip),%zmm86306movq $0xaa,%r86307kmovq %r8,%k2630863096310vpshufb %zmm8,%zmm0,%zmm16311vpsllvq const_dq3210(%rip),%zmm0,%zmm46312vpsrlvq const_dq5678(%rip),%zmm1,%zmm26313vpclmulqdq $0x0,%zmm25,%zmm2,%zmm36314vpxorq %zmm2,%zmm4,%zmm4{%k2}6315vpxord %zmm4,%zmm3,%zmm9631663176318vpsllvq const_dq7654(%rip),%zmm0,%zmm56319vpsrlvq const_dq1234(%rip),%zmm1,%zmm66320vpclmulqdq $0x0,%zmm25,%zmm6,%zmm76321vpxorq %zmm6,%zmm5,%zmm5{%k2}6322vpxord %zmm5,%zmm7,%zmm1063236324.L_main_loop_run_8_EmbgEptodyewbFa:6325vmovdqu8 (%rdi),%zmm16326vmovdqu8 64(%rdi),%zmm26327vmovdqu8 112(%rdi),%xmm56328addq $0x80,%rdi63296330vpxorq %zmm9,%zmm1,%zmm16331vpxorq %zmm10,%zmm2,%zmm2633263336334vbroadcasti32x4 (%rcx),%zmm06335vpxorq %zmm0,%zmm1,%zmm16336vpxorq %zmm0,%zmm2,%zmm26337vpsrldq $0xf,%zmm9,%zmm136338vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146339vpslldq $0x1,%zmm9,%zmm156340vpxord %zmm14,%zmm15,%zmm156341vbroadcasti32x4 16(%rcx),%zmm06342vaesdec %zmm0,%zmm1,%zmm16343vaesdec %zmm0,%zmm2,%zmm2634463456346vbroadcasti32x4 32(%rcx),%zmm06347vaesdec %zmm0,%zmm1,%zmm16348vaesdec %zmm0,%zmm2,%zmm2634963506351vbroadcasti32x4 48(%rcx),%zmm06352vaesdec %zmm0,%zmm1,%zmm16353vaesdec %zmm0,%zmm2,%zmm26354vpsrldq $0xf,%zmm10,%zmm136355vpclmulqdq $0x0,%zmm25,%zmm13,%zmm146356vpslldq $0x1,%zmm10,%zmm166357vpxord %zmm14,%zmm16,%zmm1663586359vbroadcasti32x4 64(%rcx),%zmm06360vaesdec %zmm0,%zmm1,%zmm16361vaesdec %zmm0,%zmm2,%zmm2636263636364vbroadcasti32x4 80(%rcx),%zmm06365vaesdec %zmm0,%zmm1,%zmm16366vaesdec %zmm0,%zmm2,%zmm2636763686369vbroadcasti32x4 96(%rcx),%zmm06370vaesdec %zmm0,%zmm1,%zmm16371vaesdec %zmm0,%zmm2,%zmm2637263736374vbroadcasti32x4 112(%rcx),%zmm06375vaesdec %zmm0,%zmm1,%zmm16376vaesdec %zmm0,%zmm2,%zmm2637763786379vbroadcasti32x4 128(%rcx),%zmm06380vaesdec %zmm0,%zmm1,%zmm16381vaesdec %zmm0,%zmm2,%zmm2638263836384vbroadcasti32x4 144(%rcx),%zmm06385vaesdec %zmm0,%zmm1,%zmm16386vaesdec %zmm0,%zmm2,%zmm2638763886389vbroadcasti32x4 160(%rcx),%zmm06390vaesdec %zmm0,%zmm1,%zmm16391vaesdec %zmm0,%zmm2,%zmm2639263936394vbroadcasti32x4 176(%rcx),%zmm06395vaesdec %zmm0,%zmm1,%zmm16396vaesdec %zmm0,%zmm2,%zmm2639763986399vbroadcasti32x4 192(%rcx),%zmm06400vaesdec %zmm0,%zmm1,%zmm16401vaesdec %zmm0,%zmm2,%zmm2640264036404vbroadcasti32x4 208(%rcx),%zmm06405vaesdec %zmm0,%zmm1,%zmm16406vaesdec %zmm0,%zmm2,%zmm2640764086409vbroadcasti32x4 224(%rcx),%zmm06410vaesdeclast %zmm0,%zmm1,%zmm16411vaesdeclast %zmm0,%zmm2,%zmm264126413vpxorq %zmm9,%zmm1,%zmm16414vpxorq %zmm10,%zmm2,%zmm2641564166417vmovdqa32 %zmm15,%zmm96418vmovdqa32 %zmm16,%zmm106419vmovdqu8 %zmm1,(%rsi)6420vmovdqu8 %zmm2,64(%rsi)6421addq $0x80,%rsi6422subq $0x80,%rdx6423cmpq $0x80,%rdx6424jge .L_main_loop_run_8_EmbgEptodyewbFa6425jmp .L_do_n_blocks_EmbgEptodyewbFa64266427.L_steal_cipher_EmbgEptodyewbFa:64286429vmovdqa %xmm8,%xmm2643064316432leaq vpshufb_shf_table(%rip),%rax6433vmovdqu (%rax,%rdx,1),%xmm106434vpshufb %xmm10,%xmm8,%xmm8643564366437vmovdqu -16(%rdi,%rdx,1),%xmm36438vmovdqu %xmm8,-16(%rsi,%rdx,1)643964406441leaq vpshufb_shf_table(%rip),%rax6442addq $16,%rax6443subq %rdx,%rax6444vmovdqu (%rax),%xmm106445vpxor mask1(%rip),%xmm10,%xmm106446vpshufb %xmm10,%xmm3,%xmm364476448vpblendvb %xmm10,%xmm2,%xmm3,%xmm3644964506451vpxor %xmm0,%xmm3,%xmm8645264536454vpxor (%rcx),%xmm8,%xmm86455vaesdec 16(%rcx),%xmm8,%xmm86456vaesdec 32(%rcx),%xmm8,%xmm86457vaesdec 48(%rcx),%xmm8,%xmm86458vaesdec 64(%rcx),%xmm8,%xmm86459vaesdec 80(%rcx),%xmm8,%xmm86460vaesdec 96(%rcx),%xmm8,%xmm86461vaesdec 112(%rcx),%xmm8,%xmm86462vaesdec 128(%rcx),%xmm8,%xmm86463vaesdec 144(%rcx),%xmm8,%xmm86464vaesdec 160(%rcx),%xmm8,%xmm86465vaesdec 176(%rcx),%xmm8,%xmm86466vaesdec 192(%rcx),%xmm8,%xmm86467vaesdec 208(%rcx),%xmm8,%xmm86468vaesdeclast 224(%rcx),%xmm8,%xmm864696470vpxor %xmm0,%xmm8,%xmm864716472.L_done_EmbgEptodyewbFa:64736474vmovdqu %xmm8,-16(%rsi)6475.L_ret_EmbgEptodyewbFa:6476movq 128(%rsp),%rbx6477xorq %r8,%r86478movq %r8,128(%rsp)64796480vpxorq %zmm0,%zmm0,%zmm06481movq %rbp,%rsp6482popq %rbp6483vzeroupper6484.byte 0xf3,0xc364856486.L_less_than_128_bytes_EmbgEptodyewbFa:6487cmpq $0x10,%rdx6488jb .L_ret_EmbgEptodyewbFa64896490movq %rdx,%r86491andq $0x70,%r86492cmpq $0x60,%r86493je .L_num_blocks_is_6_EmbgEptodyewbFa6494cmpq $0x50,%r86495je .L_num_blocks_is_5_EmbgEptodyewbFa6496cmpq $0x40,%r86497je .L_num_blocks_is_4_EmbgEptodyewbFa6498cmpq $0x30,%r86499je .L_num_blocks_is_3_EmbgEptodyewbFa6500cmpq $0x20,%r86501je .L_num_blocks_is_2_EmbgEptodyewbFa6502cmpq $0x10,%r86503je .L_num_blocks_is_1_EmbgEptodyewbFa65046505.L_num_blocks_is_7_EmbgEptodyewbFa:6506vmovdqa 0(%rsp),%xmm96507movq 0(%rsp),%rax6508movq 8(%rsp),%rbx6509vmovdqu 0(%rdi),%xmm16510xorq %r11,%r116511shlq $1,%rax6512adcq %rbx,%rbx6513cmovcq %r10,%r116514xorq %r11,%rax6515movq %rax,16(%rsp)6516movq %rbx,16 + 8(%rsp)6517vmovdqa 16(%rsp),%xmm106518vmovdqu 16(%rdi),%xmm26519xorq %r11,%r116520shlq $1,%rax6521adcq %rbx,%rbx6522cmovcq %r10,%r116523xorq %r11,%rax6524movq %rax,32(%rsp)6525movq %rbx,32 + 8(%rsp)6526vmovdqa 32(%rsp),%xmm116527vmovdqu 32(%rdi),%xmm36528xorq %r11,%r116529shlq $1,%rax6530adcq %rbx,%rbx6531cmovcq %r10,%r116532xorq %r11,%rax6533movq %rax,48(%rsp)6534movq %rbx,48 + 8(%rsp)6535vmovdqa 48(%rsp),%xmm126536vmovdqu 48(%rdi),%xmm46537xorq %r11,%r116538shlq $1,%rax6539adcq %rbx,%rbx6540cmovcq %r10,%r116541xorq %r11,%rax6542movq %rax,64(%rsp)6543movq %rbx,64 + 8(%rsp)6544vmovdqa 64(%rsp),%xmm136545vmovdqu 64(%rdi),%xmm56546xorq %r11,%r116547shlq $1,%rax6548adcq %rbx,%rbx6549cmovcq %r10,%r116550xorq %r11,%rax6551movq %rax,80(%rsp)6552movq %rbx,80 + 8(%rsp)6553vmovdqa 80(%rsp),%xmm146554vmovdqu 80(%rdi),%xmm66555xorq %r11,%r116556shlq $1,%rax6557adcq %rbx,%rbx6558cmovcq %r10,%r116559xorq %r11,%rax6560movq %rax,96(%rsp)6561movq %rbx,96 + 8(%rsp)6562vmovdqa 96(%rsp),%xmm156563vmovdqu 96(%rdi),%xmm76564addq $0x70,%rdi6565andq $0xf,%rdx6566je .L_done_7_EmbgEptodyewbFa65676568.L_steal_cipher_7_EmbgEptodyewbFa:6569xorq %r11,%r116570shlq $1,%rax6571adcq %rbx,%rbx6572cmovcq %r10,%r116573xorq %r11,%rax6574movq %rax,16(%rsp)6575movq %rbx,24(%rsp)6576vmovdqa64 %xmm15,%xmm166577vmovdqa 16(%rsp),%xmm156578vpxor %xmm9,%xmm1,%xmm16579vpxor %xmm10,%xmm2,%xmm26580vpxor %xmm11,%xmm3,%xmm36581vpxor %xmm12,%xmm4,%xmm46582vpxor %xmm13,%xmm5,%xmm56583vpxor %xmm14,%xmm6,%xmm66584vpxor %xmm15,%xmm7,%xmm76585vmovdqu (%rcx),%xmm06586vpxor %xmm0,%xmm1,%xmm16587vpxor %xmm0,%xmm2,%xmm26588vpxor %xmm0,%xmm3,%xmm36589vpxor %xmm0,%xmm4,%xmm46590vpxor %xmm0,%xmm5,%xmm56591vpxor %xmm0,%xmm6,%xmm66592vpxor %xmm0,%xmm7,%xmm76593vmovdqu 16(%rcx),%xmm06594vaesdec %xmm0,%xmm1,%xmm16595vaesdec %xmm0,%xmm2,%xmm26596vaesdec %xmm0,%xmm3,%xmm36597vaesdec %xmm0,%xmm4,%xmm46598vaesdec %xmm0,%xmm5,%xmm56599vaesdec %xmm0,%xmm6,%xmm66600vaesdec %xmm0,%xmm7,%xmm76601vmovdqu 32(%rcx),%xmm06602vaesdec %xmm0,%xmm1,%xmm16603vaesdec %xmm0,%xmm2,%xmm26604vaesdec %xmm0,%xmm3,%xmm36605vaesdec %xmm0,%xmm4,%xmm46606vaesdec %xmm0,%xmm5,%xmm56607vaesdec %xmm0,%xmm6,%xmm66608vaesdec %xmm0,%xmm7,%xmm76609vmovdqu 48(%rcx),%xmm06610vaesdec %xmm0,%xmm1,%xmm16611vaesdec %xmm0,%xmm2,%xmm26612vaesdec %xmm0,%xmm3,%xmm36613vaesdec %xmm0,%xmm4,%xmm46614vaesdec %xmm0,%xmm5,%xmm56615vaesdec %xmm0,%xmm6,%xmm66616vaesdec %xmm0,%xmm7,%xmm76617vmovdqu 64(%rcx),%xmm06618vaesdec %xmm0,%xmm1,%xmm16619vaesdec %xmm0,%xmm2,%xmm26620vaesdec %xmm0,%xmm3,%xmm36621vaesdec %xmm0,%xmm4,%xmm46622vaesdec %xmm0,%xmm5,%xmm56623vaesdec %xmm0,%xmm6,%xmm66624vaesdec %xmm0,%xmm7,%xmm76625vmovdqu 80(%rcx),%xmm06626vaesdec %xmm0,%xmm1,%xmm16627vaesdec %xmm0,%xmm2,%xmm26628vaesdec %xmm0,%xmm3,%xmm36629vaesdec %xmm0,%xmm4,%xmm46630vaesdec %xmm0,%xmm5,%xmm56631vaesdec %xmm0,%xmm6,%xmm66632vaesdec %xmm0,%xmm7,%xmm76633vmovdqu 96(%rcx),%xmm06634vaesdec %xmm0,%xmm1,%xmm16635vaesdec %xmm0,%xmm2,%xmm26636vaesdec %xmm0,%xmm3,%xmm36637vaesdec %xmm0,%xmm4,%xmm46638vaesdec %xmm0,%xmm5,%xmm56639vaesdec %xmm0,%xmm6,%xmm66640vaesdec %xmm0,%xmm7,%xmm76641vmovdqu 112(%rcx),%xmm06642vaesdec %xmm0,%xmm1,%xmm16643vaesdec %xmm0,%xmm2,%xmm26644vaesdec %xmm0,%xmm3,%xmm36645vaesdec %xmm0,%xmm4,%xmm46646vaesdec %xmm0,%xmm5,%xmm56647vaesdec %xmm0,%xmm6,%xmm66648vaesdec %xmm0,%xmm7,%xmm76649vmovdqu 128(%rcx),%xmm06650vaesdec %xmm0,%xmm1,%xmm16651vaesdec %xmm0,%xmm2,%xmm26652vaesdec %xmm0,%xmm3,%xmm36653vaesdec %xmm0,%xmm4,%xmm46654vaesdec %xmm0,%xmm5,%xmm56655vaesdec %xmm0,%xmm6,%xmm66656vaesdec %xmm0,%xmm7,%xmm76657vmovdqu 144(%rcx),%xmm06658vaesdec %xmm0,%xmm1,%xmm16659vaesdec %xmm0,%xmm2,%xmm26660vaesdec %xmm0,%xmm3,%xmm36661vaesdec %xmm0,%xmm4,%xmm46662vaesdec %xmm0,%xmm5,%xmm56663vaesdec %xmm0,%xmm6,%xmm66664vaesdec %xmm0,%xmm7,%xmm76665vmovdqu 160(%rcx),%xmm06666vaesdec %xmm0,%xmm1,%xmm16667vaesdec %xmm0,%xmm2,%xmm26668vaesdec %xmm0,%xmm3,%xmm36669vaesdec %xmm0,%xmm4,%xmm46670vaesdec %xmm0,%xmm5,%xmm56671vaesdec %xmm0,%xmm6,%xmm66672vaesdec %xmm0,%xmm7,%xmm76673vmovdqu 176(%rcx),%xmm06674vaesdec %xmm0,%xmm1,%xmm16675vaesdec %xmm0,%xmm2,%xmm26676vaesdec %xmm0,%xmm3,%xmm36677vaesdec %xmm0,%xmm4,%xmm46678vaesdec %xmm0,%xmm5,%xmm56679vaesdec %xmm0,%xmm6,%xmm66680vaesdec %xmm0,%xmm7,%xmm76681vmovdqu 192(%rcx),%xmm06682vaesdec %xmm0,%xmm1,%xmm16683vaesdec %xmm0,%xmm2,%xmm26684vaesdec %xmm0,%xmm3,%xmm36685vaesdec %xmm0,%xmm4,%xmm46686vaesdec %xmm0,%xmm5,%xmm56687vaesdec %xmm0,%xmm6,%xmm66688vaesdec %xmm0,%xmm7,%xmm76689vmovdqu 208(%rcx),%xmm06690vaesdec %xmm0,%xmm1,%xmm16691vaesdec %xmm0,%xmm2,%xmm26692vaesdec %xmm0,%xmm3,%xmm36693vaesdec %xmm0,%xmm4,%xmm46694vaesdec %xmm0,%xmm5,%xmm56695vaesdec %xmm0,%xmm6,%xmm66696vaesdec %xmm0,%xmm7,%xmm76697vmovdqu 224(%rcx),%xmm06698vaesdeclast %xmm0,%xmm1,%xmm16699vaesdeclast %xmm0,%xmm2,%xmm26700vaesdeclast %xmm0,%xmm3,%xmm36701vaesdeclast %xmm0,%xmm4,%xmm46702vaesdeclast %xmm0,%xmm5,%xmm56703vaesdeclast %xmm0,%xmm6,%xmm66704vaesdeclast %xmm0,%xmm7,%xmm76705vpxor %xmm9,%xmm1,%xmm16706vpxor %xmm10,%xmm2,%xmm26707vpxor %xmm11,%xmm3,%xmm36708vpxor %xmm12,%xmm4,%xmm46709vpxor %xmm13,%xmm5,%xmm56710vpxor %xmm14,%xmm6,%xmm66711vpxor %xmm15,%xmm7,%xmm76712vmovdqu %xmm1,(%rsi)6713vmovdqu %xmm2,16(%rsi)6714vmovdqu %xmm3,32(%rsi)6715vmovdqu %xmm4,48(%rsi)6716vmovdqu %xmm5,64(%rsi)6717vmovdqu %xmm6,80(%rsi)6718addq $0x70,%rsi6719vmovdqa64 %xmm16,%xmm06720vmovdqa %xmm7,%xmm86721jmp .L_steal_cipher_EmbgEptodyewbFa67226723.L_done_7_EmbgEptodyewbFa:6724vpxor %xmm9,%xmm1,%xmm16725vpxor %xmm10,%xmm2,%xmm26726vpxor %xmm11,%xmm3,%xmm36727vpxor %xmm12,%xmm4,%xmm46728vpxor %xmm13,%xmm5,%xmm56729vpxor %xmm14,%xmm6,%xmm66730vpxor %xmm15,%xmm7,%xmm76731vmovdqu (%rcx),%xmm06732vpxor %xmm0,%xmm1,%xmm16733vpxor %xmm0,%xmm2,%xmm26734vpxor %xmm0,%xmm3,%xmm36735vpxor %xmm0,%xmm4,%xmm46736vpxor %xmm0,%xmm5,%xmm56737vpxor %xmm0,%xmm6,%xmm66738vpxor %xmm0,%xmm7,%xmm76739vmovdqu 16(%rcx),%xmm06740vaesdec %xmm0,%xmm1,%xmm16741vaesdec %xmm0,%xmm2,%xmm26742vaesdec %xmm0,%xmm3,%xmm36743vaesdec %xmm0,%xmm4,%xmm46744vaesdec %xmm0,%xmm5,%xmm56745vaesdec %xmm0,%xmm6,%xmm66746vaesdec %xmm0,%xmm7,%xmm76747vmovdqu 32(%rcx),%xmm06748vaesdec %xmm0,%xmm1,%xmm16749vaesdec %xmm0,%xmm2,%xmm26750vaesdec %xmm0,%xmm3,%xmm36751vaesdec %xmm0,%xmm4,%xmm46752vaesdec %xmm0,%xmm5,%xmm56753vaesdec %xmm0,%xmm6,%xmm66754vaesdec %xmm0,%xmm7,%xmm76755vmovdqu 48(%rcx),%xmm06756vaesdec %xmm0,%xmm1,%xmm16757vaesdec %xmm0,%xmm2,%xmm26758vaesdec %xmm0,%xmm3,%xmm36759vaesdec %xmm0,%xmm4,%xmm46760vaesdec %xmm0,%xmm5,%xmm56761vaesdec %xmm0,%xmm6,%xmm66762vaesdec %xmm0,%xmm7,%xmm76763vmovdqu 64(%rcx),%xmm06764vaesdec %xmm0,%xmm1,%xmm16765vaesdec %xmm0,%xmm2,%xmm26766vaesdec %xmm0,%xmm3,%xmm36767vaesdec %xmm0,%xmm4,%xmm46768vaesdec %xmm0,%xmm5,%xmm56769vaesdec %xmm0,%xmm6,%xmm66770vaesdec %xmm0,%xmm7,%xmm76771vmovdqu 80(%rcx),%xmm06772vaesdec %xmm0,%xmm1,%xmm16773vaesdec %xmm0,%xmm2,%xmm26774vaesdec %xmm0,%xmm3,%xmm36775vaesdec %xmm0,%xmm4,%xmm46776vaesdec %xmm0,%xmm5,%xmm56777vaesdec %xmm0,%xmm6,%xmm66778vaesdec %xmm0,%xmm7,%xmm76779vmovdqu 96(%rcx),%xmm06780vaesdec %xmm0,%xmm1,%xmm16781vaesdec %xmm0,%xmm2,%xmm26782vaesdec %xmm0,%xmm3,%xmm36783vaesdec %xmm0,%xmm4,%xmm46784vaesdec %xmm0,%xmm5,%xmm56785vaesdec %xmm0,%xmm6,%xmm66786vaesdec %xmm0,%xmm7,%xmm76787vmovdqu 112(%rcx),%xmm06788vaesdec %xmm0,%xmm1,%xmm16789vaesdec %xmm0,%xmm2,%xmm26790vaesdec %xmm0,%xmm3,%xmm36791vaesdec %xmm0,%xmm4,%xmm46792vaesdec %xmm0,%xmm5,%xmm56793vaesdec %xmm0,%xmm6,%xmm66794vaesdec %xmm0,%xmm7,%xmm76795vmovdqu 128(%rcx),%xmm06796vaesdec %xmm0,%xmm1,%xmm16797vaesdec %xmm0,%xmm2,%xmm26798vaesdec %xmm0,%xmm3,%xmm36799vaesdec %xmm0,%xmm4,%xmm46800vaesdec %xmm0,%xmm5,%xmm56801vaesdec %xmm0,%xmm6,%xmm66802vaesdec %xmm0,%xmm7,%xmm76803vmovdqu 144(%rcx),%xmm06804vaesdec %xmm0,%xmm1,%xmm16805vaesdec %xmm0,%xmm2,%xmm26806vaesdec %xmm0,%xmm3,%xmm36807vaesdec %xmm0,%xmm4,%xmm46808vaesdec %xmm0,%xmm5,%xmm56809vaesdec %xmm0,%xmm6,%xmm66810vaesdec %xmm0,%xmm7,%xmm76811vmovdqu 160(%rcx),%xmm06812vaesdec %xmm0,%xmm1,%xmm16813vaesdec %xmm0,%xmm2,%xmm26814vaesdec %xmm0,%xmm3,%xmm36815vaesdec %xmm0,%xmm4,%xmm46816vaesdec %xmm0,%xmm5,%xmm56817vaesdec %xmm0,%xmm6,%xmm66818vaesdec %xmm0,%xmm7,%xmm76819vmovdqu 176(%rcx),%xmm06820vaesdec %xmm0,%xmm1,%xmm16821vaesdec %xmm0,%xmm2,%xmm26822vaesdec %xmm0,%xmm3,%xmm36823vaesdec %xmm0,%xmm4,%xmm46824vaesdec %xmm0,%xmm5,%xmm56825vaesdec %xmm0,%xmm6,%xmm66826vaesdec %xmm0,%xmm7,%xmm76827vmovdqu 192(%rcx),%xmm06828vaesdec %xmm0,%xmm1,%xmm16829vaesdec %xmm0,%xmm2,%xmm26830vaesdec %xmm0,%xmm3,%xmm36831vaesdec %xmm0,%xmm4,%xmm46832vaesdec %xmm0,%xmm5,%xmm56833vaesdec %xmm0,%xmm6,%xmm66834vaesdec %xmm0,%xmm7,%xmm76835vmovdqu 208(%rcx),%xmm06836vaesdec %xmm0,%xmm1,%xmm16837vaesdec %xmm0,%xmm2,%xmm26838vaesdec %xmm0,%xmm3,%xmm36839vaesdec %xmm0,%xmm4,%xmm46840vaesdec %xmm0,%xmm5,%xmm56841vaesdec %xmm0,%xmm6,%xmm66842vaesdec %xmm0,%xmm7,%xmm76843vmovdqu 224(%rcx),%xmm06844vaesdeclast %xmm0,%xmm1,%xmm16845vaesdeclast %xmm0,%xmm2,%xmm26846vaesdeclast %xmm0,%xmm3,%xmm36847vaesdeclast %xmm0,%xmm4,%xmm46848vaesdeclast %xmm0,%xmm5,%xmm56849vaesdeclast %xmm0,%xmm6,%xmm66850vaesdeclast %xmm0,%xmm7,%xmm76851vpxor %xmm9,%xmm1,%xmm16852vpxor %xmm10,%xmm2,%xmm26853vpxor %xmm11,%xmm3,%xmm36854vpxor %xmm12,%xmm4,%xmm46855vpxor %xmm13,%xmm5,%xmm56856vpxor %xmm14,%xmm6,%xmm66857vpxor %xmm15,%xmm7,%xmm76858vmovdqu %xmm1,(%rsi)6859vmovdqu %xmm2,16(%rsi)6860vmovdqu %xmm3,32(%rsi)6861vmovdqu %xmm4,48(%rsi)6862vmovdqu %xmm5,64(%rsi)6863vmovdqu %xmm6,80(%rsi)6864addq $0x70,%rsi6865vmovdqa %xmm7,%xmm86866jmp .L_done_EmbgEptodyewbFa68676868.L_num_blocks_is_6_EmbgEptodyewbFa:6869vmovdqa 0(%rsp),%xmm96870movq 0(%rsp),%rax6871movq 8(%rsp),%rbx6872vmovdqu 0(%rdi),%xmm16873xorq %r11,%r116874shlq $1,%rax6875adcq %rbx,%rbx6876cmovcq %r10,%r116877xorq %r11,%rax6878movq %rax,16(%rsp)6879movq %rbx,16 + 8(%rsp)6880vmovdqa 16(%rsp),%xmm106881vmovdqu 16(%rdi),%xmm26882xorq %r11,%r116883shlq $1,%rax6884adcq %rbx,%rbx6885cmovcq %r10,%r116886xorq %r11,%rax6887movq %rax,32(%rsp)6888movq %rbx,32 + 8(%rsp)6889vmovdqa 32(%rsp),%xmm116890vmovdqu 32(%rdi),%xmm36891xorq %r11,%r116892shlq $1,%rax6893adcq %rbx,%rbx6894cmovcq %r10,%r116895xorq %r11,%rax6896movq %rax,48(%rsp)6897movq %rbx,48 + 8(%rsp)6898vmovdqa 48(%rsp),%xmm126899vmovdqu 48(%rdi),%xmm46900xorq %r11,%r116901shlq $1,%rax6902adcq %rbx,%rbx6903cmovcq %r10,%r116904xorq %r11,%rax6905movq %rax,64(%rsp)6906movq %rbx,64 + 8(%rsp)6907vmovdqa 64(%rsp),%xmm136908vmovdqu 64(%rdi),%xmm56909xorq %r11,%r116910shlq $1,%rax6911adcq %rbx,%rbx6912cmovcq %r10,%r116913xorq %r11,%rax6914movq %rax,80(%rsp)6915movq %rbx,80 + 8(%rsp)6916vmovdqa 80(%rsp),%xmm146917vmovdqu 80(%rdi),%xmm66918addq $0x60,%rdi6919andq $0xf,%rdx6920je .L_done_6_EmbgEptodyewbFa69216922.L_steal_cipher_6_EmbgEptodyewbFa:6923xorq %r11,%r116924shlq $1,%rax6925adcq %rbx,%rbx6926cmovcq %r10,%r116927xorq %r11,%rax6928movq %rax,16(%rsp)6929movq %rbx,24(%rsp)6930vmovdqa64 %xmm14,%xmm156931vmovdqa 16(%rsp),%xmm146932vpxor %xmm9,%xmm1,%xmm16933vpxor %xmm10,%xmm2,%xmm26934vpxor %xmm11,%xmm3,%xmm36935vpxor %xmm12,%xmm4,%xmm46936vpxor %xmm13,%xmm5,%xmm56937vpxor %xmm14,%xmm6,%xmm66938vmovdqu (%rcx),%xmm06939vpxor %xmm0,%xmm1,%xmm16940vpxor %xmm0,%xmm2,%xmm26941vpxor %xmm0,%xmm3,%xmm36942vpxor %xmm0,%xmm4,%xmm46943vpxor %xmm0,%xmm5,%xmm56944vpxor %xmm0,%xmm6,%xmm66945vmovdqu 16(%rcx),%xmm06946vaesdec %xmm0,%xmm1,%xmm16947vaesdec %xmm0,%xmm2,%xmm26948vaesdec %xmm0,%xmm3,%xmm36949vaesdec %xmm0,%xmm4,%xmm46950vaesdec %xmm0,%xmm5,%xmm56951vaesdec %xmm0,%xmm6,%xmm66952vmovdqu 32(%rcx),%xmm06953vaesdec %xmm0,%xmm1,%xmm16954vaesdec %xmm0,%xmm2,%xmm26955vaesdec %xmm0,%xmm3,%xmm36956vaesdec %xmm0,%xmm4,%xmm46957vaesdec %xmm0,%xmm5,%xmm56958vaesdec %xmm0,%xmm6,%xmm66959vmovdqu 48(%rcx),%xmm06960vaesdec %xmm0,%xmm1,%xmm16961vaesdec %xmm0,%xmm2,%xmm26962vaesdec %xmm0,%xmm3,%xmm36963vaesdec %xmm0,%xmm4,%xmm46964vaesdec %xmm0,%xmm5,%xmm56965vaesdec %xmm0,%xmm6,%xmm66966vmovdqu 64(%rcx),%xmm06967vaesdec %xmm0,%xmm1,%xmm16968vaesdec %xmm0,%xmm2,%xmm26969vaesdec %xmm0,%xmm3,%xmm36970vaesdec %xmm0,%xmm4,%xmm46971vaesdec %xmm0,%xmm5,%xmm56972vaesdec %xmm0,%xmm6,%xmm66973vmovdqu 80(%rcx),%xmm06974vaesdec %xmm0,%xmm1,%xmm16975vaesdec %xmm0,%xmm2,%xmm26976vaesdec %xmm0,%xmm3,%xmm36977vaesdec %xmm0,%xmm4,%xmm46978vaesdec %xmm0,%xmm5,%xmm56979vaesdec %xmm0,%xmm6,%xmm66980vmovdqu 96(%rcx),%xmm06981vaesdec %xmm0,%xmm1,%xmm16982vaesdec %xmm0,%xmm2,%xmm26983vaesdec %xmm0,%xmm3,%xmm36984vaesdec %xmm0,%xmm4,%xmm46985vaesdec %xmm0,%xmm5,%xmm56986vaesdec %xmm0,%xmm6,%xmm66987vmovdqu 112(%rcx),%xmm06988vaesdec %xmm0,%xmm1,%xmm16989vaesdec %xmm0,%xmm2,%xmm26990vaesdec %xmm0,%xmm3,%xmm36991vaesdec %xmm0,%xmm4,%xmm46992vaesdec %xmm0,%xmm5,%xmm56993vaesdec %xmm0,%xmm6,%xmm66994vmovdqu 128(%rcx),%xmm06995vaesdec %xmm0,%xmm1,%xmm16996vaesdec %xmm0,%xmm2,%xmm26997vaesdec %xmm0,%xmm3,%xmm36998vaesdec %xmm0,%xmm4,%xmm46999vaesdec %xmm0,%xmm5,%xmm57000vaesdec %xmm0,%xmm6,%xmm67001vmovdqu 144(%rcx),%xmm07002vaesdec %xmm0,%xmm1,%xmm17003vaesdec %xmm0,%xmm2,%xmm27004vaesdec %xmm0,%xmm3,%xmm37005vaesdec %xmm0,%xmm4,%xmm47006vaesdec %xmm0,%xmm5,%xmm57007vaesdec %xmm0,%xmm6,%xmm67008vmovdqu 160(%rcx),%xmm07009vaesdec %xmm0,%xmm1,%xmm17010vaesdec %xmm0,%xmm2,%xmm27011vaesdec %xmm0,%xmm3,%xmm37012vaesdec %xmm0,%xmm4,%xmm47013vaesdec %xmm0,%xmm5,%xmm57014vaesdec %xmm0,%xmm6,%xmm67015vmovdqu 176(%rcx),%xmm07016vaesdec %xmm0,%xmm1,%xmm17017vaesdec %xmm0,%xmm2,%xmm27018vaesdec %xmm0,%xmm3,%xmm37019vaesdec %xmm0,%xmm4,%xmm47020vaesdec %xmm0,%xmm5,%xmm57021vaesdec %xmm0,%xmm6,%xmm67022vmovdqu 192(%rcx),%xmm07023vaesdec %xmm0,%xmm1,%xmm17024vaesdec %xmm0,%xmm2,%xmm27025vaesdec %xmm0,%xmm3,%xmm37026vaesdec %xmm0,%xmm4,%xmm47027vaesdec %xmm0,%xmm5,%xmm57028vaesdec %xmm0,%xmm6,%xmm67029vmovdqu 208(%rcx),%xmm07030vaesdec %xmm0,%xmm1,%xmm17031vaesdec %xmm0,%xmm2,%xmm27032vaesdec %xmm0,%xmm3,%xmm37033vaesdec %xmm0,%xmm4,%xmm47034vaesdec %xmm0,%xmm5,%xmm57035vaesdec %xmm0,%xmm6,%xmm67036vmovdqu 224(%rcx),%xmm07037vaesdeclast %xmm0,%xmm1,%xmm17038vaesdeclast %xmm0,%xmm2,%xmm27039vaesdeclast %xmm0,%xmm3,%xmm37040vaesdeclast %xmm0,%xmm4,%xmm47041vaesdeclast %xmm0,%xmm5,%xmm57042vaesdeclast %xmm0,%xmm6,%xmm67043vpxor %xmm9,%xmm1,%xmm17044vpxor %xmm10,%xmm2,%xmm27045vpxor %xmm11,%xmm3,%xmm37046vpxor %xmm12,%xmm4,%xmm47047vpxor %xmm13,%xmm5,%xmm57048vpxor %xmm14,%xmm6,%xmm67049vmovdqu %xmm1,(%rsi)7050vmovdqu %xmm2,16(%rsi)7051vmovdqu %xmm3,32(%rsi)7052vmovdqu %xmm4,48(%rsi)7053vmovdqu %xmm5,64(%rsi)7054addq $0x60,%rsi7055vmovdqa %xmm15,%xmm07056vmovdqa %xmm6,%xmm87057jmp .L_steal_cipher_EmbgEptodyewbFa70587059.L_done_6_EmbgEptodyewbFa:7060vpxor %xmm9,%xmm1,%xmm17061vpxor %xmm10,%xmm2,%xmm27062vpxor %xmm11,%xmm3,%xmm37063vpxor %xmm12,%xmm4,%xmm47064vpxor %xmm13,%xmm5,%xmm57065vpxor %xmm14,%xmm6,%xmm67066vmovdqu (%rcx),%xmm07067vpxor %xmm0,%xmm1,%xmm17068vpxor %xmm0,%xmm2,%xmm27069vpxor %xmm0,%xmm3,%xmm37070vpxor %xmm0,%xmm4,%xmm47071vpxor %xmm0,%xmm5,%xmm57072vpxor %xmm0,%xmm6,%xmm67073vmovdqu 16(%rcx),%xmm07074vaesdec %xmm0,%xmm1,%xmm17075vaesdec %xmm0,%xmm2,%xmm27076vaesdec %xmm0,%xmm3,%xmm37077vaesdec %xmm0,%xmm4,%xmm47078vaesdec %xmm0,%xmm5,%xmm57079vaesdec %xmm0,%xmm6,%xmm67080vmovdqu 32(%rcx),%xmm07081vaesdec %xmm0,%xmm1,%xmm17082vaesdec %xmm0,%xmm2,%xmm27083vaesdec %xmm0,%xmm3,%xmm37084vaesdec %xmm0,%xmm4,%xmm47085vaesdec %xmm0,%xmm5,%xmm57086vaesdec %xmm0,%xmm6,%xmm67087vmovdqu 48(%rcx),%xmm07088vaesdec %xmm0,%xmm1,%xmm17089vaesdec %xmm0,%xmm2,%xmm27090vaesdec %xmm0,%xmm3,%xmm37091vaesdec %xmm0,%xmm4,%xmm47092vaesdec %xmm0,%xmm5,%xmm57093vaesdec %xmm0,%xmm6,%xmm67094vmovdqu 64(%rcx),%xmm07095vaesdec %xmm0,%xmm1,%xmm17096vaesdec %xmm0,%xmm2,%xmm27097vaesdec %xmm0,%xmm3,%xmm37098vaesdec %xmm0,%xmm4,%xmm47099vaesdec %xmm0,%xmm5,%xmm57100vaesdec %xmm0,%xmm6,%xmm67101vmovdqu 80(%rcx),%xmm07102vaesdec %xmm0,%xmm1,%xmm17103vaesdec %xmm0,%xmm2,%xmm27104vaesdec %xmm0,%xmm3,%xmm37105vaesdec %xmm0,%xmm4,%xmm47106vaesdec %xmm0,%xmm5,%xmm57107vaesdec %xmm0,%xmm6,%xmm67108vmovdqu 96(%rcx),%xmm07109vaesdec %xmm0,%xmm1,%xmm17110vaesdec %xmm0,%xmm2,%xmm27111vaesdec %xmm0,%xmm3,%xmm37112vaesdec %xmm0,%xmm4,%xmm47113vaesdec %xmm0,%xmm5,%xmm57114vaesdec %xmm0,%xmm6,%xmm67115vmovdqu 112(%rcx),%xmm07116vaesdec %xmm0,%xmm1,%xmm17117vaesdec %xmm0,%xmm2,%xmm27118vaesdec %xmm0,%xmm3,%xmm37119vaesdec %xmm0,%xmm4,%xmm47120vaesdec %xmm0,%xmm5,%xmm57121vaesdec %xmm0,%xmm6,%xmm67122vmovdqu 128(%rcx),%xmm07123vaesdec %xmm0,%xmm1,%xmm17124vaesdec %xmm0,%xmm2,%xmm27125vaesdec %xmm0,%xmm3,%xmm37126vaesdec %xmm0,%xmm4,%xmm47127vaesdec %xmm0,%xmm5,%xmm57128vaesdec %xmm0,%xmm6,%xmm67129vmovdqu 144(%rcx),%xmm07130vaesdec %xmm0,%xmm1,%xmm17131vaesdec %xmm0,%xmm2,%xmm27132vaesdec %xmm0,%xmm3,%xmm37133vaesdec %xmm0,%xmm4,%xmm47134vaesdec %xmm0,%xmm5,%xmm57135vaesdec %xmm0,%xmm6,%xmm67136vmovdqu 160(%rcx),%xmm07137vaesdec %xmm0,%xmm1,%xmm17138vaesdec %xmm0,%xmm2,%xmm27139vaesdec %xmm0,%xmm3,%xmm37140vaesdec %xmm0,%xmm4,%xmm47141vaesdec %xmm0,%xmm5,%xmm57142vaesdec %xmm0,%xmm6,%xmm67143vmovdqu 176(%rcx),%xmm07144vaesdec %xmm0,%xmm1,%xmm17145vaesdec %xmm0,%xmm2,%xmm27146vaesdec %xmm0,%xmm3,%xmm37147vaesdec %xmm0,%xmm4,%xmm47148vaesdec %xmm0,%xmm5,%xmm57149vaesdec %xmm0,%xmm6,%xmm67150vmovdqu 192(%rcx),%xmm07151vaesdec %xmm0,%xmm1,%xmm17152vaesdec %xmm0,%xmm2,%xmm27153vaesdec %xmm0,%xmm3,%xmm37154vaesdec %xmm0,%xmm4,%xmm47155vaesdec %xmm0,%xmm5,%xmm57156vaesdec %xmm0,%xmm6,%xmm67157vmovdqu 208(%rcx),%xmm07158vaesdec %xmm0,%xmm1,%xmm17159vaesdec %xmm0,%xmm2,%xmm27160vaesdec %xmm0,%xmm3,%xmm37161vaesdec %xmm0,%xmm4,%xmm47162vaesdec %xmm0,%xmm5,%xmm57163vaesdec %xmm0,%xmm6,%xmm67164vmovdqu 224(%rcx),%xmm07165vaesdeclast %xmm0,%xmm1,%xmm17166vaesdeclast %xmm0,%xmm2,%xmm27167vaesdeclast %xmm0,%xmm3,%xmm37168vaesdeclast %xmm0,%xmm4,%xmm47169vaesdeclast %xmm0,%xmm5,%xmm57170vaesdeclast %xmm0,%xmm6,%xmm67171vpxor %xmm9,%xmm1,%xmm17172vpxor %xmm10,%xmm2,%xmm27173vpxor %xmm11,%xmm3,%xmm37174vpxor %xmm12,%xmm4,%xmm47175vpxor %xmm13,%xmm5,%xmm57176vpxor %xmm14,%xmm6,%xmm67177vmovdqu %xmm1,(%rsi)7178vmovdqu %xmm2,16(%rsi)7179vmovdqu %xmm3,32(%rsi)7180vmovdqu %xmm4,48(%rsi)7181vmovdqu %xmm5,64(%rsi)7182addq $0x60,%rsi7183vmovdqa %xmm6,%xmm87184jmp .L_done_EmbgEptodyewbFa71857186.L_num_blocks_is_5_EmbgEptodyewbFa:7187vmovdqa 0(%rsp),%xmm97188movq 0(%rsp),%rax7189movq 8(%rsp),%rbx7190vmovdqu 0(%rdi),%xmm17191xorq %r11,%r117192shlq $1,%rax7193adcq %rbx,%rbx7194cmovcq %r10,%r117195xorq %r11,%rax7196movq %rax,16(%rsp)7197movq %rbx,16 + 8(%rsp)7198vmovdqa 16(%rsp),%xmm107199vmovdqu 16(%rdi),%xmm27200xorq %r11,%r117201shlq $1,%rax7202adcq %rbx,%rbx7203cmovcq %r10,%r117204xorq %r11,%rax7205movq %rax,32(%rsp)7206movq %rbx,32 + 8(%rsp)7207vmovdqa 32(%rsp),%xmm117208vmovdqu 32(%rdi),%xmm37209xorq %r11,%r117210shlq $1,%rax7211adcq %rbx,%rbx7212cmovcq %r10,%r117213xorq %r11,%rax7214movq %rax,48(%rsp)7215movq %rbx,48 + 8(%rsp)7216vmovdqa 48(%rsp),%xmm127217vmovdqu 48(%rdi),%xmm47218xorq %r11,%r117219shlq $1,%rax7220adcq %rbx,%rbx7221cmovcq %r10,%r117222xorq %r11,%rax7223movq %rax,64(%rsp)7224movq %rbx,64 + 8(%rsp)7225vmovdqa 64(%rsp),%xmm137226vmovdqu 64(%rdi),%xmm57227addq $0x50,%rdi7228andq $0xf,%rdx7229je .L_done_5_EmbgEptodyewbFa72307231.L_steal_cipher_5_EmbgEptodyewbFa:7232xorq %r11,%r117233shlq $1,%rax7234adcq %rbx,%rbx7235cmovcq %r10,%r117236xorq %r11,%rax7237movq %rax,16(%rsp)7238movq %rbx,24(%rsp)7239vmovdqa64 %xmm13,%xmm147240vmovdqa 16(%rsp),%xmm137241vpxor %xmm9,%xmm1,%xmm17242vpxor %xmm10,%xmm2,%xmm27243vpxor %xmm11,%xmm3,%xmm37244vpxor %xmm12,%xmm4,%xmm47245vpxor %xmm13,%xmm5,%xmm57246vmovdqu (%rcx),%xmm07247vpxor %xmm0,%xmm1,%xmm17248vpxor %xmm0,%xmm2,%xmm27249vpxor %xmm0,%xmm3,%xmm37250vpxor %xmm0,%xmm4,%xmm47251vpxor %xmm0,%xmm5,%xmm57252vmovdqu 16(%rcx),%xmm07253vaesdec %xmm0,%xmm1,%xmm17254vaesdec %xmm0,%xmm2,%xmm27255vaesdec %xmm0,%xmm3,%xmm37256vaesdec %xmm0,%xmm4,%xmm47257vaesdec %xmm0,%xmm5,%xmm57258vmovdqu 32(%rcx),%xmm07259vaesdec %xmm0,%xmm1,%xmm17260vaesdec %xmm0,%xmm2,%xmm27261vaesdec %xmm0,%xmm3,%xmm37262vaesdec %xmm0,%xmm4,%xmm47263vaesdec %xmm0,%xmm5,%xmm57264vmovdqu 48(%rcx),%xmm07265vaesdec %xmm0,%xmm1,%xmm17266vaesdec %xmm0,%xmm2,%xmm27267vaesdec %xmm0,%xmm3,%xmm37268vaesdec %xmm0,%xmm4,%xmm47269vaesdec %xmm0,%xmm5,%xmm57270vmovdqu 64(%rcx),%xmm07271vaesdec %xmm0,%xmm1,%xmm17272vaesdec %xmm0,%xmm2,%xmm27273vaesdec %xmm0,%xmm3,%xmm37274vaesdec %xmm0,%xmm4,%xmm47275vaesdec %xmm0,%xmm5,%xmm57276vmovdqu 80(%rcx),%xmm07277vaesdec %xmm0,%xmm1,%xmm17278vaesdec %xmm0,%xmm2,%xmm27279vaesdec %xmm0,%xmm3,%xmm37280vaesdec %xmm0,%xmm4,%xmm47281vaesdec %xmm0,%xmm5,%xmm57282vmovdqu 96(%rcx),%xmm07283vaesdec %xmm0,%xmm1,%xmm17284vaesdec %xmm0,%xmm2,%xmm27285vaesdec %xmm0,%xmm3,%xmm37286vaesdec %xmm0,%xmm4,%xmm47287vaesdec %xmm0,%xmm5,%xmm57288vmovdqu 112(%rcx),%xmm07289vaesdec %xmm0,%xmm1,%xmm17290vaesdec %xmm0,%xmm2,%xmm27291vaesdec %xmm0,%xmm3,%xmm37292vaesdec %xmm0,%xmm4,%xmm47293vaesdec %xmm0,%xmm5,%xmm57294vmovdqu 128(%rcx),%xmm07295vaesdec %xmm0,%xmm1,%xmm17296vaesdec %xmm0,%xmm2,%xmm27297vaesdec %xmm0,%xmm3,%xmm37298vaesdec %xmm0,%xmm4,%xmm47299vaesdec %xmm0,%xmm5,%xmm57300vmovdqu 144(%rcx),%xmm07301vaesdec %xmm0,%xmm1,%xmm17302vaesdec %xmm0,%xmm2,%xmm27303vaesdec %xmm0,%xmm3,%xmm37304vaesdec %xmm0,%xmm4,%xmm47305vaesdec %xmm0,%xmm5,%xmm57306vmovdqu 160(%rcx),%xmm07307vaesdec %xmm0,%xmm1,%xmm17308vaesdec %xmm0,%xmm2,%xmm27309vaesdec %xmm0,%xmm3,%xmm37310vaesdec %xmm0,%xmm4,%xmm47311vaesdec %xmm0,%xmm5,%xmm57312vmovdqu 176(%rcx),%xmm07313vaesdec %xmm0,%xmm1,%xmm17314vaesdec %xmm0,%xmm2,%xmm27315vaesdec %xmm0,%xmm3,%xmm37316vaesdec %xmm0,%xmm4,%xmm47317vaesdec %xmm0,%xmm5,%xmm57318vmovdqu 192(%rcx),%xmm07319vaesdec %xmm0,%xmm1,%xmm17320vaesdec %xmm0,%xmm2,%xmm27321vaesdec %xmm0,%xmm3,%xmm37322vaesdec %xmm0,%xmm4,%xmm47323vaesdec %xmm0,%xmm5,%xmm57324vmovdqu 208(%rcx),%xmm07325vaesdec %xmm0,%xmm1,%xmm17326vaesdec %xmm0,%xmm2,%xmm27327vaesdec %xmm0,%xmm3,%xmm37328vaesdec %xmm0,%xmm4,%xmm47329vaesdec %xmm0,%xmm5,%xmm57330vmovdqu 224(%rcx),%xmm07331vaesdeclast %xmm0,%xmm1,%xmm17332vaesdeclast %xmm0,%xmm2,%xmm27333vaesdeclast %xmm0,%xmm3,%xmm37334vaesdeclast %xmm0,%xmm4,%xmm47335vaesdeclast %xmm0,%xmm5,%xmm57336vpxor %xmm9,%xmm1,%xmm17337vpxor %xmm10,%xmm2,%xmm27338vpxor %xmm11,%xmm3,%xmm37339vpxor %xmm12,%xmm4,%xmm47340vpxor %xmm13,%xmm5,%xmm57341vmovdqu %xmm1,(%rsi)7342vmovdqu %xmm2,16(%rsi)7343vmovdqu %xmm3,32(%rsi)7344vmovdqu %xmm4,48(%rsi)7345addq $0x50,%rsi7346vmovdqa %xmm14,%xmm07347vmovdqa %xmm5,%xmm87348jmp .L_steal_cipher_EmbgEptodyewbFa73497350.L_done_5_EmbgEptodyewbFa:7351vpxor %xmm9,%xmm1,%xmm17352vpxor %xmm10,%xmm2,%xmm27353vpxor %xmm11,%xmm3,%xmm37354vpxor %xmm12,%xmm4,%xmm47355vpxor %xmm13,%xmm5,%xmm57356vmovdqu (%rcx),%xmm07357vpxor %xmm0,%xmm1,%xmm17358vpxor %xmm0,%xmm2,%xmm27359vpxor %xmm0,%xmm3,%xmm37360vpxor %xmm0,%xmm4,%xmm47361vpxor %xmm0,%xmm5,%xmm57362vmovdqu 16(%rcx),%xmm07363vaesdec %xmm0,%xmm1,%xmm17364vaesdec %xmm0,%xmm2,%xmm27365vaesdec %xmm0,%xmm3,%xmm37366vaesdec %xmm0,%xmm4,%xmm47367vaesdec %xmm0,%xmm5,%xmm57368vmovdqu 32(%rcx),%xmm07369vaesdec %xmm0,%xmm1,%xmm17370vaesdec %xmm0,%xmm2,%xmm27371vaesdec %xmm0,%xmm3,%xmm37372vaesdec %xmm0,%xmm4,%xmm47373vaesdec %xmm0,%xmm5,%xmm57374vmovdqu 48(%rcx),%xmm07375vaesdec %xmm0,%xmm1,%xmm17376vaesdec %xmm0,%xmm2,%xmm27377vaesdec %xmm0,%xmm3,%xmm37378vaesdec %xmm0,%xmm4,%xmm47379vaesdec %xmm0,%xmm5,%xmm57380vmovdqu 64(%rcx),%xmm07381vaesdec %xmm0,%xmm1,%xmm17382vaesdec %xmm0,%xmm2,%xmm27383vaesdec %xmm0,%xmm3,%xmm37384vaesdec %xmm0,%xmm4,%xmm47385vaesdec %xmm0,%xmm5,%xmm57386vmovdqu 80(%rcx),%xmm07387vaesdec %xmm0,%xmm1,%xmm17388vaesdec %xmm0,%xmm2,%xmm27389vaesdec %xmm0,%xmm3,%xmm37390vaesdec %xmm0,%xmm4,%xmm47391vaesdec %xmm0,%xmm5,%xmm57392vmovdqu 96(%rcx),%xmm07393vaesdec %xmm0,%xmm1,%xmm17394vaesdec %xmm0,%xmm2,%xmm27395vaesdec %xmm0,%xmm3,%xmm37396vaesdec %xmm0,%xmm4,%xmm47397vaesdec %xmm0,%xmm5,%xmm57398vmovdqu 112(%rcx),%xmm07399vaesdec %xmm0,%xmm1,%xmm17400vaesdec %xmm0,%xmm2,%xmm27401vaesdec %xmm0,%xmm3,%xmm37402vaesdec %xmm0,%xmm4,%xmm47403vaesdec %xmm0,%xmm5,%xmm57404vmovdqu 128(%rcx),%xmm07405vaesdec %xmm0,%xmm1,%xmm17406vaesdec %xmm0,%xmm2,%xmm27407vaesdec %xmm0,%xmm3,%xmm37408vaesdec %xmm0,%xmm4,%xmm47409vaesdec %xmm0,%xmm5,%xmm57410vmovdqu 144(%rcx),%xmm07411vaesdec %xmm0,%xmm1,%xmm17412vaesdec %xmm0,%xmm2,%xmm27413vaesdec %xmm0,%xmm3,%xmm37414vaesdec %xmm0,%xmm4,%xmm47415vaesdec %xmm0,%xmm5,%xmm57416vmovdqu 160(%rcx),%xmm07417vaesdec %xmm0,%xmm1,%xmm17418vaesdec %xmm0,%xmm2,%xmm27419vaesdec %xmm0,%xmm3,%xmm37420vaesdec %xmm0,%xmm4,%xmm47421vaesdec %xmm0,%xmm5,%xmm57422vmovdqu 176(%rcx),%xmm07423vaesdec %xmm0,%xmm1,%xmm17424vaesdec %xmm0,%xmm2,%xmm27425vaesdec %xmm0,%xmm3,%xmm37426vaesdec %xmm0,%xmm4,%xmm47427vaesdec %xmm0,%xmm5,%xmm57428vmovdqu 192(%rcx),%xmm07429vaesdec %xmm0,%xmm1,%xmm17430vaesdec %xmm0,%xmm2,%xmm27431vaesdec %xmm0,%xmm3,%xmm37432vaesdec %xmm0,%xmm4,%xmm47433vaesdec %xmm0,%xmm5,%xmm57434vmovdqu 208(%rcx),%xmm07435vaesdec %xmm0,%xmm1,%xmm17436vaesdec %xmm0,%xmm2,%xmm27437vaesdec %xmm0,%xmm3,%xmm37438vaesdec %xmm0,%xmm4,%xmm47439vaesdec %xmm0,%xmm5,%xmm57440vmovdqu 224(%rcx),%xmm07441vaesdeclast %xmm0,%xmm1,%xmm17442vaesdeclast %xmm0,%xmm2,%xmm27443vaesdeclast %xmm0,%xmm3,%xmm37444vaesdeclast %xmm0,%xmm4,%xmm47445vaesdeclast %xmm0,%xmm5,%xmm57446vpxor %xmm9,%xmm1,%xmm17447vpxor %xmm10,%xmm2,%xmm27448vpxor %xmm11,%xmm3,%xmm37449vpxor %xmm12,%xmm4,%xmm47450vpxor %xmm13,%xmm5,%xmm57451vmovdqu %xmm1,(%rsi)7452vmovdqu %xmm2,16(%rsi)7453vmovdqu %xmm3,32(%rsi)7454vmovdqu %xmm4,48(%rsi)7455addq $0x50,%rsi7456vmovdqa %xmm5,%xmm87457jmp .L_done_EmbgEptodyewbFa74587459.L_num_blocks_is_4_EmbgEptodyewbFa:7460vmovdqa 0(%rsp),%xmm97461movq 0(%rsp),%rax7462movq 8(%rsp),%rbx7463vmovdqu 0(%rdi),%xmm17464xorq %r11,%r117465shlq $1,%rax7466adcq %rbx,%rbx7467cmovcq %r10,%r117468xorq %r11,%rax7469movq %rax,16(%rsp)7470movq %rbx,16 + 8(%rsp)7471vmovdqa 16(%rsp),%xmm107472vmovdqu 16(%rdi),%xmm27473xorq %r11,%r117474shlq $1,%rax7475adcq %rbx,%rbx7476cmovcq %r10,%r117477xorq %r11,%rax7478movq %rax,32(%rsp)7479movq %rbx,32 + 8(%rsp)7480vmovdqa 32(%rsp),%xmm117481vmovdqu 32(%rdi),%xmm37482xorq %r11,%r117483shlq $1,%rax7484adcq %rbx,%rbx7485cmovcq %r10,%r117486xorq %r11,%rax7487movq %rax,48(%rsp)7488movq %rbx,48 + 8(%rsp)7489vmovdqa 48(%rsp),%xmm127490vmovdqu 48(%rdi),%xmm47491addq $0x40,%rdi7492andq $0xf,%rdx7493je .L_done_4_EmbgEptodyewbFa74947495.L_steal_cipher_4_EmbgEptodyewbFa:7496xorq %r11,%r117497shlq $1,%rax7498adcq %rbx,%rbx7499cmovcq %r10,%r117500xorq %r11,%rax7501movq %rax,16(%rsp)7502movq %rbx,24(%rsp)7503vmovdqa64 %xmm12,%xmm137504vmovdqa 16(%rsp),%xmm127505vpxor %xmm9,%xmm1,%xmm17506vpxor %xmm10,%xmm2,%xmm27507vpxor %xmm11,%xmm3,%xmm37508vpxor %xmm12,%xmm4,%xmm47509vmovdqu (%rcx),%xmm07510vpxor %xmm0,%xmm1,%xmm17511vpxor %xmm0,%xmm2,%xmm27512vpxor %xmm0,%xmm3,%xmm37513vpxor %xmm0,%xmm4,%xmm47514vmovdqu 16(%rcx),%xmm07515vaesdec %xmm0,%xmm1,%xmm17516vaesdec %xmm0,%xmm2,%xmm27517vaesdec %xmm0,%xmm3,%xmm37518vaesdec %xmm0,%xmm4,%xmm47519vmovdqu 32(%rcx),%xmm07520vaesdec %xmm0,%xmm1,%xmm17521vaesdec %xmm0,%xmm2,%xmm27522vaesdec %xmm0,%xmm3,%xmm37523vaesdec %xmm0,%xmm4,%xmm47524vmovdqu 48(%rcx),%xmm07525vaesdec %xmm0,%xmm1,%xmm17526vaesdec %xmm0,%xmm2,%xmm27527vaesdec %xmm0,%xmm3,%xmm37528vaesdec %xmm0,%xmm4,%xmm47529vmovdqu 64(%rcx),%xmm07530vaesdec %xmm0,%xmm1,%xmm17531vaesdec %xmm0,%xmm2,%xmm27532vaesdec %xmm0,%xmm3,%xmm37533vaesdec %xmm0,%xmm4,%xmm47534vmovdqu 80(%rcx),%xmm07535vaesdec %xmm0,%xmm1,%xmm17536vaesdec %xmm0,%xmm2,%xmm27537vaesdec %xmm0,%xmm3,%xmm37538vaesdec %xmm0,%xmm4,%xmm47539vmovdqu 96(%rcx),%xmm07540vaesdec %xmm0,%xmm1,%xmm17541vaesdec %xmm0,%xmm2,%xmm27542vaesdec %xmm0,%xmm3,%xmm37543vaesdec %xmm0,%xmm4,%xmm47544vmovdqu 112(%rcx),%xmm07545vaesdec %xmm0,%xmm1,%xmm17546vaesdec %xmm0,%xmm2,%xmm27547vaesdec %xmm0,%xmm3,%xmm37548vaesdec %xmm0,%xmm4,%xmm47549vmovdqu 128(%rcx),%xmm07550vaesdec %xmm0,%xmm1,%xmm17551vaesdec %xmm0,%xmm2,%xmm27552vaesdec %xmm0,%xmm3,%xmm37553vaesdec %xmm0,%xmm4,%xmm47554vmovdqu 144(%rcx),%xmm07555vaesdec %xmm0,%xmm1,%xmm17556vaesdec %xmm0,%xmm2,%xmm27557vaesdec %xmm0,%xmm3,%xmm37558vaesdec %xmm0,%xmm4,%xmm47559vmovdqu 160(%rcx),%xmm07560vaesdec %xmm0,%xmm1,%xmm17561vaesdec %xmm0,%xmm2,%xmm27562vaesdec %xmm0,%xmm3,%xmm37563vaesdec %xmm0,%xmm4,%xmm47564vmovdqu 176(%rcx),%xmm07565vaesdec %xmm0,%xmm1,%xmm17566vaesdec %xmm0,%xmm2,%xmm27567vaesdec %xmm0,%xmm3,%xmm37568vaesdec %xmm0,%xmm4,%xmm47569vmovdqu 192(%rcx),%xmm07570vaesdec %xmm0,%xmm1,%xmm17571vaesdec %xmm0,%xmm2,%xmm27572vaesdec %xmm0,%xmm3,%xmm37573vaesdec %xmm0,%xmm4,%xmm47574vmovdqu 208(%rcx),%xmm07575vaesdec %xmm0,%xmm1,%xmm17576vaesdec %xmm0,%xmm2,%xmm27577vaesdec %xmm0,%xmm3,%xmm37578vaesdec %xmm0,%xmm4,%xmm47579vmovdqu 224(%rcx),%xmm07580vaesdeclast %xmm0,%xmm1,%xmm17581vaesdeclast %xmm0,%xmm2,%xmm27582vaesdeclast %xmm0,%xmm3,%xmm37583vaesdeclast %xmm0,%xmm4,%xmm47584vpxor %xmm9,%xmm1,%xmm17585vpxor %xmm10,%xmm2,%xmm27586vpxor %xmm11,%xmm3,%xmm37587vpxor %xmm12,%xmm4,%xmm47588vmovdqu %xmm1,(%rsi)7589vmovdqu %xmm2,16(%rsi)7590vmovdqu %xmm3,32(%rsi)7591addq $0x40,%rsi7592vmovdqa %xmm13,%xmm07593vmovdqa %xmm4,%xmm87594jmp .L_steal_cipher_EmbgEptodyewbFa75957596.L_done_4_EmbgEptodyewbFa:7597vpxor %xmm9,%xmm1,%xmm17598vpxor %xmm10,%xmm2,%xmm27599vpxor %xmm11,%xmm3,%xmm37600vpxor %xmm12,%xmm4,%xmm47601vmovdqu (%rcx),%xmm07602vpxor %xmm0,%xmm1,%xmm17603vpxor %xmm0,%xmm2,%xmm27604vpxor %xmm0,%xmm3,%xmm37605vpxor %xmm0,%xmm4,%xmm47606vmovdqu 16(%rcx),%xmm07607vaesdec %xmm0,%xmm1,%xmm17608vaesdec %xmm0,%xmm2,%xmm27609vaesdec %xmm0,%xmm3,%xmm37610vaesdec %xmm0,%xmm4,%xmm47611vmovdqu 32(%rcx),%xmm07612vaesdec %xmm0,%xmm1,%xmm17613vaesdec %xmm0,%xmm2,%xmm27614vaesdec %xmm0,%xmm3,%xmm37615vaesdec %xmm0,%xmm4,%xmm47616vmovdqu 48(%rcx),%xmm07617vaesdec %xmm0,%xmm1,%xmm17618vaesdec %xmm0,%xmm2,%xmm27619vaesdec %xmm0,%xmm3,%xmm37620vaesdec %xmm0,%xmm4,%xmm47621vmovdqu 64(%rcx),%xmm07622vaesdec %xmm0,%xmm1,%xmm17623vaesdec %xmm0,%xmm2,%xmm27624vaesdec %xmm0,%xmm3,%xmm37625vaesdec %xmm0,%xmm4,%xmm47626vmovdqu 80(%rcx),%xmm07627vaesdec %xmm0,%xmm1,%xmm17628vaesdec %xmm0,%xmm2,%xmm27629vaesdec %xmm0,%xmm3,%xmm37630vaesdec %xmm0,%xmm4,%xmm47631vmovdqu 96(%rcx),%xmm07632vaesdec %xmm0,%xmm1,%xmm17633vaesdec %xmm0,%xmm2,%xmm27634vaesdec %xmm0,%xmm3,%xmm37635vaesdec %xmm0,%xmm4,%xmm47636vmovdqu 112(%rcx),%xmm07637vaesdec %xmm0,%xmm1,%xmm17638vaesdec %xmm0,%xmm2,%xmm27639vaesdec %xmm0,%xmm3,%xmm37640vaesdec %xmm0,%xmm4,%xmm47641vmovdqu 128(%rcx),%xmm07642vaesdec %xmm0,%xmm1,%xmm17643vaesdec %xmm0,%xmm2,%xmm27644vaesdec %xmm0,%xmm3,%xmm37645vaesdec %xmm0,%xmm4,%xmm47646vmovdqu 144(%rcx),%xmm07647vaesdec %xmm0,%xmm1,%xmm17648vaesdec %xmm0,%xmm2,%xmm27649vaesdec %xmm0,%xmm3,%xmm37650vaesdec %xmm0,%xmm4,%xmm47651vmovdqu 160(%rcx),%xmm07652vaesdec %xmm0,%xmm1,%xmm17653vaesdec %xmm0,%xmm2,%xmm27654vaesdec %xmm0,%xmm3,%xmm37655vaesdec %xmm0,%xmm4,%xmm47656vmovdqu 176(%rcx),%xmm07657vaesdec %xmm0,%xmm1,%xmm17658vaesdec %xmm0,%xmm2,%xmm27659vaesdec %xmm0,%xmm3,%xmm37660vaesdec %xmm0,%xmm4,%xmm47661vmovdqu 192(%rcx),%xmm07662vaesdec %xmm0,%xmm1,%xmm17663vaesdec %xmm0,%xmm2,%xmm27664vaesdec %xmm0,%xmm3,%xmm37665vaesdec %xmm0,%xmm4,%xmm47666vmovdqu 208(%rcx),%xmm07667vaesdec %xmm0,%xmm1,%xmm17668vaesdec %xmm0,%xmm2,%xmm27669vaesdec %xmm0,%xmm3,%xmm37670vaesdec %xmm0,%xmm4,%xmm47671vmovdqu 224(%rcx),%xmm07672vaesdeclast %xmm0,%xmm1,%xmm17673vaesdeclast %xmm0,%xmm2,%xmm27674vaesdeclast %xmm0,%xmm3,%xmm37675vaesdeclast %xmm0,%xmm4,%xmm47676vpxor %xmm9,%xmm1,%xmm17677vpxor %xmm10,%xmm2,%xmm27678vpxor %xmm11,%xmm3,%xmm37679vpxor %xmm12,%xmm4,%xmm47680vmovdqu %xmm1,(%rsi)7681vmovdqu %xmm2,16(%rsi)7682vmovdqu %xmm3,32(%rsi)7683addq $0x40,%rsi7684vmovdqa %xmm4,%xmm87685jmp .L_done_EmbgEptodyewbFa76867687.L_num_blocks_is_3_EmbgEptodyewbFa:7688vmovdqa 0(%rsp),%xmm97689movq 0(%rsp),%rax7690movq 8(%rsp),%rbx7691vmovdqu 0(%rdi),%xmm17692xorq %r11,%r117693shlq $1,%rax7694adcq %rbx,%rbx7695cmovcq %r10,%r117696xorq %r11,%rax7697movq %rax,16(%rsp)7698movq %rbx,16 + 8(%rsp)7699vmovdqa 16(%rsp),%xmm107700vmovdqu 16(%rdi),%xmm27701xorq %r11,%r117702shlq $1,%rax7703adcq %rbx,%rbx7704cmovcq %r10,%r117705xorq %r11,%rax7706movq %rax,32(%rsp)7707movq %rbx,32 + 8(%rsp)7708vmovdqa 32(%rsp),%xmm117709vmovdqu 32(%rdi),%xmm37710addq $0x30,%rdi7711andq $0xf,%rdx7712je .L_done_3_EmbgEptodyewbFa77137714.L_steal_cipher_3_EmbgEptodyewbFa:7715xorq %r11,%r117716shlq $1,%rax7717adcq %rbx,%rbx7718cmovcq %r10,%r117719xorq %r11,%rax7720movq %rax,16(%rsp)7721movq %rbx,24(%rsp)7722vmovdqa64 %xmm11,%xmm127723vmovdqa 16(%rsp),%xmm117724vpxor %xmm9,%xmm1,%xmm17725vpxor %xmm10,%xmm2,%xmm27726vpxor %xmm11,%xmm3,%xmm37727vmovdqu (%rcx),%xmm07728vpxor %xmm0,%xmm1,%xmm17729vpxor %xmm0,%xmm2,%xmm27730vpxor %xmm0,%xmm3,%xmm37731vmovdqu 16(%rcx),%xmm07732vaesdec %xmm0,%xmm1,%xmm17733vaesdec %xmm0,%xmm2,%xmm27734vaesdec %xmm0,%xmm3,%xmm37735vmovdqu 32(%rcx),%xmm07736vaesdec %xmm0,%xmm1,%xmm17737vaesdec %xmm0,%xmm2,%xmm27738vaesdec %xmm0,%xmm3,%xmm37739vmovdqu 48(%rcx),%xmm07740vaesdec %xmm0,%xmm1,%xmm17741vaesdec %xmm0,%xmm2,%xmm27742vaesdec %xmm0,%xmm3,%xmm37743vmovdqu 64(%rcx),%xmm07744vaesdec %xmm0,%xmm1,%xmm17745vaesdec %xmm0,%xmm2,%xmm27746vaesdec %xmm0,%xmm3,%xmm37747vmovdqu 80(%rcx),%xmm07748vaesdec %xmm0,%xmm1,%xmm17749vaesdec %xmm0,%xmm2,%xmm27750vaesdec %xmm0,%xmm3,%xmm37751vmovdqu 96(%rcx),%xmm07752vaesdec %xmm0,%xmm1,%xmm17753vaesdec %xmm0,%xmm2,%xmm27754vaesdec %xmm0,%xmm3,%xmm37755vmovdqu 112(%rcx),%xmm07756vaesdec %xmm0,%xmm1,%xmm17757vaesdec %xmm0,%xmm2,%xmm27758vaesdec %xmm0,%xmm3,%xmm37759vmovdqu 128(%rcx),%xmm07760vaesdec %xmm0,%xmm1,%xmm17761vaesdec %xmm0,%xmm2,%xmm27762vaesdec %xmm0,%xmm3,%xmm37763vmovdqu 144(%rcx),%xmm07764vaesdec %xmm0,%xmm1,%xmm17765vaesdec %xmm0,%xmm2,%xmm27766vaesdec %xmm0,%xmm3,%xmm37767vmovdqu 160(%rcx),%xmm07768vaesdec %xmm0,%xmm1,%xmm17769vaesdec %xmm0,%xmm2,%xmm27770vaesdec %xmm0,%xmm3,%xmm37771vmovdqu 176(%rcx),%xmm07772vaesdec %xmm0,%xmm1,%xmm17773vaesdec %xmm0,%xmm2,%xmm27774vaesdec %xmm0,%xmm3,%xmm37775vmovdqu 192(%rcx),%xmm07776vaesdec %xmm0,%xmm1,%xmm17777vaesdec %xmm0,%xmm2,%xmm27778vaesdec %xmm0,%xmm3,%xmm37779vmovdqu 208(%rcx),%xmm07780vaesdec %xmm0,%xmm1,%xmm17781vaesdec %xmm0,%xmm2,%xmm27782vaesdec %xmm0,%xmm3,%xmm37783vmovdqu 224(%rcx),%xmm07784vaesdeclast %xmm0,%xmm1,%xmm17785vaesdeclast %xmm0,%xmm2,%xmm27786vaesdeclast %xmm0,%xmm3,%xmm37787vpxor %xmm9,%xmm1,%xmm17788vpxor %xmm10,%xmm2,%xmm27789vpxor %xmm11,%xmm3,%xmm37790vmovdqu %xmm1,(%rsi)7791vmovdqu %xmm2,16(%rsi)7792addq $0x30,%rsi7793vmovdqa %xmm12,%xmm07794vmovdqa %xmm3,%xmm87795jmp .L_steal_cipher_EmbgEptodyewbFa77967797.L_done_3_EmbgEptodyewbFa:7798vpxor %xmm9,%xmm1,%xmm17799vpxor %xmm10,%xmm2,%xmm27800vpxor %xmm11,%xmm3,%xmm37801vmovdqu (%rcx),%xmm07802vpxor %xmm0,%xmm1,%xmm17803vpxor %xmm0,%xmm2,%xmm27804vpxor %xmm0,%xmm3,%xmm37805vmovdqu 16(%rcx),%xmm07806vaesdec %xmm0,%xmm1,%xmm17807vaesdec %xmm0,%xmm2,%xmm27808vaesdec %xmm0,%xmm3,%xmm37809vmovdqu 32(%rcx),%xmm07810vaesdec %xmm0,%xmm1,%xmm17811vaesdec %xmm0,%xmm2,%xmm27812vaesdec %xmm0,%xmm3,%xmm37813vmovdqu 48(%rcx),%xmm07814vaesdec %xmm0,%xmm1,%xmm17815vaesdec %xmm0,%xmm2,%xmm27816vaesdec %xmm0,%xmm3,%xmm37817vmovdqu 64(%rcx),%xmm07818vaesdec %xmm0,%xmm1,%xmm17819vaesdec %xmm0,%xmm2,%xmm27820vaesdec %xmm0,%xmm3,%xmm37821vmovdqu 80(%rcx),%xmm07822vaesdec %xmm0,%xmm1,%xmm17823vaesdec %xmm0,%xmm2,%xmm27824vaesdec %xmm0,%xmm3,%xmm37825vmovdqu 96(%rcx),%xmm07826vaesdec %xmm0,%xmm1,%xmm17827vaesdec %xmm0,%xmm2,%xmm27828vaesdec %xmm0,%xmm3,%xmm37829vmovdqu 112(%rcx),%xmm07830vaesdec %xmm0,%xmm1,%xmm17831vaesdec %xmm0,%xmm2,%xmm27832vaesdec %xmm0,%xmm3,%xmm37833vmovdqu 128(%rcx),%xmm07834vaesdec %xmm0,%xmm1,%xmm17835vaesdec %xmm0,%xmm2,%xmm27836vaesdec %xmm0,%xmm3,%xmm37837vmovdqu 144(%rcx),%xmm07838vaesdec %xmm0,%xmm1,%xmm17839vaesdec %xmm0,%xmm2,%xmm27840vaesdec %xmm0,%xmm3,%xmm37841vmovdqu 160(%rcx),%xmm07842vaesdec %xmm0,%xmm1,%xmm17843vaesdec %xmm0,%xmm2,%xmm27844vaesdec %xmm0,%xmm3,%xmm37845vmovdqu 176(%rcx),%xmm07846vaesdec %xmm0,%xmm1,%xmm17847vaesdec %xmm0,%xmm2,%xmm27848vaesdec %xmm0,%xmm3,%xmm37849vmovdqu 192(%rcx),%xmm07850vaesdec %xmm0,%xmm1,%xmm17851vaesdec %xmm0,%xmm2,%xmm27852vaesdec %xmm0,%xmm3,%xmm37853vmovdqu 208(%rcx),%xmm07854vaesdec %xmm0,%xmm1,%xmm17855vaesdec %xmm0,%xmm2,%xmm27856vaesdec %xmm0,%xmm3,%xmm37857vmovdqu 224(%rcx),%xmm07858vaesdeclast %xmm0,%xmm1,%xmm17859vaesdeclast %xmm0,%xmm2,%xmm27860vaesdeclast %xmm0,%xmm3,%xmm37861vpxor %xmm9,%xmm1,%xmm17862vpxor %xmm10,%xmm2,%xmm27863vpxor %xmm11,%xmm3,%xmm37864vmovdqu %xmm1,(%rsi)7865vmovdqu %xmm2,16(%rsi)7866addq $0x30,%rsi7867vmovdqa %xmm3,%xmm87868jmp .L_done_EmbgEptodyewbFa78697870.L_num_blocks_is_2_EmbgEptodyewbFa:7871vmovdqa 0(%rsp),%xmm97872movq 0(%rsp),%rax7873movq 8(%rsp),%rbx7874vmovdqu 0(%rdi),%xmm17875xorq %r11,%r117876shlq $1,%rax7877adcq %rbx,%rbx7878cmovcq %r10,%r117879xorq %r11,%rax7880movq %rax,16(%rsp)7881movq %rbx,16 + 8(%rsp)7882vmovdqa 16(%rsp),%xmm107883vmovdqu 16(%rdi),%xmm27884addq $0x20,%rdi7885andq $0xf,%rdx7886je .L_done_2_EmbgEptodyewbFa78877888.L_steal_cipher_2_EmbgEptodyewbFa:7889xorq %r11,%r117890shlq $1,%rax7891adcq %rbx,%rbx7892cmovcq %r10,%r117893xorq %r11,%rax7894movq %rax,16(%rsp)7895movq %rbx,24(%rsp)7896vmovdqa64 %xmm10,%xmm117897vmovdqa 16(%rsp),%xmm107898vpxor %xmm9,%xmm1,%xmm17899vpxor %xmm10,%xmm2,%xmm27900vmovdqu (%rcx),%xmm07901vpxor %xmm0,%xmm1,%xmm17902vpxor %xmm0,%xmm2,%xmm27903vmovdqu 16(%rcx),%xmm07904vaesdec %xmm0,%xmm1,%xmm17905vaesdec %xmm0,%xmm2,%xmm27906vmovdqu 32(%rcx),%xmm07907vaesdec %xmm0,%xmm1,%xmm17908vaesdec %xmm0,%xmm2,%xmm27909vmovdqu 48(%rcx),%xmm07910vaesdec %xmm0,%xmm1,%xmm17911vaesdec %xmm0,%xmm2,%xmm27912vmovdqu 64(%rcx),%xmm07913vaesdec %xmm0,%xmm1,%xmm17914vaesdec %xmm0,%xmm2,%xmm27915vmovdqu 80(%rcx),%xmm07916vaesdec %xmm0,%xmm1,%xmm17917vaesdec %xmm0,%xmm2,%xmm27918vmovdqu 96(%rcx),%xmm07919vaesdec %xmm0,%xmm1,%xmm17920vaesdec %xmm0,%xmm2,%xmm27921vmovdqu 112(%rcx),%xmm07922vaesdec %xmm0,%xmm1,%xmm17923vaesdec %xmm0,%xmm2,%xmm27924vmovdqu 128(%rcx),%xmm07925vaesdec %xmm0,%xmm1,%xmm17926vaesdec %xmm0,%xmm2,%xmm27927vmovdqu 144(%rcx),%xmm07928vaesdec %xmm0,%xmm1,%xmm17929vaesdec %xmm0,%xmm2,%xmm27930vmovdqu 160(%rcx),%xmm07931vaesdec %xmm0,%xmm1,%xmm17932vaesdec %xmm0,%xmm2,%xmm27933vmovdqu 176(%rcx),%xmm07934vaesdec %xmm0,%xmm1,%xmm17935vaesdec %xmm0,%xmm2,%xmm27936vmovdqu 192(%rcx),%xmm07937vaesdec %xmm0,%xmm1,%xmm17938vaesdec %xmm0,%xmm2,%xmm27939vmovdqu 208(%rcx),%xmm07940vaesdec %xmm0,%xmm1,%xmm17941vaesdec %xmm0,%xmm2,%xmm27942vmovdqu 224(%rcx),%xmm07943vaesdeclast %xmm0,%xmm1,%xmm17944vaesdeclast %xmm0,%xmm2,%xmm27945vpxor %xmm9,%xmm1,%xmm17946vpxor %xmm10,%xmm2,%xmm27947vmovdqu %xmm1,(%rsi)7948addq $0x20,%rsi7949vmovdqa %xmm11,%xmm07950vmovdqa %xmm2,%xmm87951jmp .L_steal_cipher_EmbgEptodyewbFa79527953.L_done_2_EmbgEptodyewbFa:7954vpxor %xmm9,%xmm1,%xmm17955vpxor %xmm10,%xmm2,%xmm27956vmovdqu (%rcx),%xmm07957vpxor %xmm0,%xmm1,%xmm17958vpxor %xmm0,%xmm2,%xmm27959vmovdqu 16(%rcx),%xmm07960vaesdec %xmm0,%xmm1,%xmm17961vaesdec %xmm0,%xmm2,%xmm27962vmovdqu 32(%rcx),%xmm07963vaesdec %xmm0,%xmm1,%xmm17964vaesdec %xmm0,%xmm2,%xmm27965vmovdqu 48(%rcx),%xmm07966vaesdec %xmm0,%xmm1,%xmm17967vaesdec %xmm0,%xmm2,%xmm27968vmovdqu 64(%rcx),%xmm07969vaesdec %xmm0,%xmm1,%xmm17970vaesdec %xmm0,%xmm2,%xmm27971vmovdqu 80(%rcx),%xmm07972vaesdec %xmm0,%xmm1,%xmm17973vaesdec %xmm0,%xmm2,%xmm27974vmovdqu 96(%rcx),%xmm07975vaesdec %xmm0,%xmm1,%xmm17976vaesdec %xmm0,%xmm2,%xmm27977vmovdqu 112(%rcx),%xmm07978vaesdec %xmm0,%xmm1,%xmm17979vaesdec %xmm0,%xmm2,%xmm27980vmovdqu 128(%rcx),%xmm07981vaesdec %xmm0,%xmm1,%xmm17982vaesdec %xmm0,%xmm2,%xmm27983vmovdqu 144(%rcx),%xmm07984vaesdec %xmm0,%xmm1,%xmm17985vaesdec %xmm0,%xmm2,%xmm27986vmovdqu 160(%rcx),%xmm07987vaesdec %xmm0,%xmm1,%xmm17988vaesdec %xmm0,%xmm2,%xmm27989vmovdqu 176(%rcx),%xmm07990vaesdec %xmm0,%xmm1,%xmm17991vaesdec %xmm0,%xmm2,%xmm27992vmovdqu 192(%rcx),%xmm07993vaesdec %xmm0,%xmm1,%xmm17994vaesdec %xmm0,%xmm2,%xmm27995vmovdqu 208(%rcx),%xmm07996vaesdec %xmm0,%xmm1,%xmm17997vaesdec %xmm0,%xmm2,%xmm27998vmovdqu 224(%rcx),%xmm07999vaesdeclast %xmm0,%xmm1,%xmm18000vaesdeclast %xmm0,%xmm2,%xmm28001vpxor %xmm9,%xmm1,%xmm18002vpxor %xmm10,%xmm2,%xmm28003vmovdqu %xmm1,(%rsi)8004addq $0x20,%rsi8005vmovdqa %xmm2,%xmm88006jmp .L_done_EmbgEptodyewbFa80078008.L_num_blocks_is_1_EmbgEptodyewbFa:8009vmovdqa 0(%rsp),%xmm98010movq 0(%rsp),%rax8011movq 8(%rsp),%rbx8012vmovdqu 0(%rdi),%xmm18013addq $0x10,%rdi8014andq $0xf,%rdx8015je .L_done_1_EmbgEptodyewbFa80168017.L_steal_cipher_1_EmbgEptodyewbFa:8018xorq %r11,%r118019shlq $1,%rax8020adcq %rbx,%rbx8021cmovcq %r10,%r118022xorq %r11,%rax8023movq %rax,16(%rsp)8024movq %rbx,24(%rsp)8025vmovdqa64 %xmm9,%xmm108026vmovdqa 16(%rsp),%xmm98027vpxor %xmm9,%xmm1,%xmm18028vmovdqu (%rcx),%xmm08029vpxor %xmm0,%xmm1,%xmm18030vmovdqu 16(%rcx),%xmm08031vaesdec %xmm0,%xmm1,%xmm18032vmovdqu 32(%rcx),%xmm08033vaesdec %xmm0,%xmm1,%xmm18034vmovdqu 48(%rcx),%xmm08035vaesdec %xmm0,%xmm1,%xmm18036vmovdqu 64(%rcx),%xmm08037vaesdec %xmm0,%xmm1,%xmm18038vmovdqu 80(%rcx),%xmm08039vaesdec %xmm0,%xmm1,%xmm18040vmovdqu 96(%rcx),%xmm08041vaesdec %xmm0,%xmm1,%xmm18042vmovdqu 112(%rcx),%xmm08043vaesdec %xmm0,%xmm1,%xmm18044vmovdqu 128(%rcx),%xmm08045vaesdec %xmm0,%xmm1,%xmm18046vmovdqu 144(%rcx),%xmm08047vaesdec %xmm0,%xmm1,%xmm18048vmovdqu 160(%rcx),%xmm08049vaesdec %xmm0,%xmm1,%xmm18050vmovdqu 176(%rcx),%xmm08051vaesdec %xmm0,%xmm1,%xmm18052vmovdqu 192(%rcx),%xmm08053vaesdec %xmm0,%xmm1,%xmm18054vmovdqu 208(%rcx),%xmm08055vaesdec %xmm0,%xmm1,%xmm18056vmovdqu 224(%rcx),%xmm08057vaesdeclast %xmm0,%xmm1,%xmm18058vpxor %xmm9,%xmm1,%xmm18059addq $0x10,%rsi8060vmovdqa %xmm10,%xmm08061vmovdqa %xmm1,%xmm88062jmp .L_steal_cipher_EmbgEptodyewbFa80638064.L_done_1_EmbgEptodyewbFa:8065vpxor %xmm9,%xmm1,%xmm18066vmovdqu (%rcx),%xmm08067vpxor %xmm0,%xmm1,%xmm18068vmovdqu 16(%rcx),%xmm08069vaesdec %xmm0,%xmm1,%xmm18070vmovdqu 32(%rcx),%xmm08071vaesdec %xmm0,%xmm1,%xmm18072vmovdqu 48(%rcx),%xmm08073vaesdec %xmm0,%xmm1,%xmm18074vmovdqu 64(%rcx),%xmm08075vaesdec %xmm0,%xmm1,%xmm18076vmovdqu 80(%rcx),%xmm08077vaesdec %xmm0,%xmm1,%xmm18078vmovdqu 96(%rcx),%xmm08079vaesdec %xmm0,%xmm1,%xmm18080vmovdqu 112(%rcx),%xmm08081vaesdec %xmm0,%xmm1,%xmm18082vmovdqu 128(%rcx),%xmm08083vaesdec %xmm0,%xmm1,%xmm18084vmovdqu 144(%rcx),%xmm08085vaesdec %xmm0,%xmm1,%xmm18086vmovdqu 160(%rcx),%xmm08087vaesdec %xmm0,%xmm1,%xmm18088vmovdqu 176(%rcx),%xmm08089vaesdec %xmm0,%xmm1,%xmm18090vmovdqu 192(%rcx),%xmm08091vaesdec %xmm0,%xmm1,%xmm18092vmovdqu 208(%rcx),%xmm08093vaesdec %xmm0,%xmm1,%xmm18094vmovdqu 224(%rcx),%xmm08095vaesdeclast %xmm0,%xmm1,%xmm18096vpxor %xmm9,%xmm1,%xmm18097addq $0x10,%rsi8098vmovdqa %xmm1,%xmm88099jmp .L_done_EmbgEptodyewbFa8100.cfi_endproc8101.section .rodata8102.align 1681038104vpshufb_shf_table:8105.quad 0x8786858483828100, 0x8f8e8d8c8b8a89888106.quad 0x0706050403020100, 0x000e0d0c0b0a090881078108mask1:8109.quad 0x8080808080808080, 0x808080808080808081108111const_dq3210:8112.quad 0, 0, 1, 1, 2, 2, 3, 38113const_dq5678:8114.quad 8, 8, 7, 7, 6, 6, 5, 58115const_dq7654:8116.quad 4, 4, 5, 5, 6, 6, 7, 78117const_dq1234:8118.quad 4, 4, 3, 3, 2, 2, 1, 181198120shufb_15_7:8121.byte 15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7, 0xff, 0xff8122.byte 0xff, 0xff, 0xff, 0xff, 0xff81238124.text8125.section ".note.gnu.property", "a"8126.p2align 38127.long 1f - 0f8128.long 4f - 1f8129.long 581300:8131# "GNU" encoded with .byte, since .asciz isn't supported8132# on Solaris.8133.byte 0x478134.byte 0x4e8135.byte 0x558136.byte 081371:8138.p2align 38139.long 0xc00000028140.long 3f - 2f81412:8142.long 381433:8144.p2align 381454:814681478148