1/* Do not modify. This file is auto-generated from aesni-xts-avx512.pl. */ 2.text 3 4.globl aesni_xts_avx512_eligible 5.type aesni_xts_avx512_eligible,@function 6.align 32 7aesni_xts_avx512_eligible: 8 movl OPENSSL_ia32cap_P+8(%rip),%ecx 9 xorl %eax,%eax 10 11 andl $0xc0030000,%ecx 12 cmpl $0xc0030000,%ecx 13 jne .L_done 14 movl OPENSSL_ia32cap_P+12(%rip),%ecx 15 16 andl $0x640,%ecx 17 cmpl $0x640,%ecx 18 cmovel %ecx,%eax 19.L_done: 20 .byte 0xf3,0xc3 21.size aesni_xts_avx512_eligible, .-aesni_xts_avx512_eligible 22.globl aesni_xts_128_encrypt_avx512 23.hidden aesni_xts_128_encrypt_avx512 24.type aesni_xts_128_encrypt_avx512,@function 25.align 32 26aesni_xts_128_encrypt_avx512: 27.cfi_startproc 28.byte 243,15,30,250 29 pushq %rbp 30 movq %rsp,%rbp 31 subq $136,%rsp 32 andq $0xffffffffffffffc0,%rsp 33 movq %rbx,128(%rsp) 34 movq $0x87,%r10 35 vmovdqu (%r9),%xmm1 36 vpxor (%r8),%xmm1,%xmm1 37 vaesenc 16(%r8),%xmm1,%xmm1 38 vaesenc 32(%r8),%xmm1,%xmm1 39 vaesenc 48(%r8),%xmm1,%xmm1 40 vaesenc 64(%r8),%xmm1,%xmm1 41 vaesenc 80(%r8),%xmm1,%xmm1 42 vaesenc 96(%r8),%xmm1,%xmm1 43 vaesenc 112(%r8),%xmm1,%xmm1 44 vaesenc 128(%r8),%xmm1,%xmm1 45 vaesenc 144(%r8),%xmm1,%xmm1 46 vaesenclast 160(%r8),%xmm1,%xmm1 47 vmovdqa %xmm1,(%rsp) 48 49 cmpq $0x80,%rdx 50 jl .L_less_than_128_bytes_hEgxyDlCngwrfFe 51 vpbroadcastq %r10,%zmm25 52 cmpq $0x100,%rdx 53 jge .L_start_by16_hEgxyDlCngwrfFe 54 cmpq $0x80,%rdx 55 jge .L_start_by8_hEgxyDlCngwrfFe 56 57.L_do_n_blocks_hEgxyDlCngwrfFe: 58 cmpq $0x0,%rdx 59 je .L_ret_hEgxyDlCngwrfFe 60 cmpq $0x70,%rdx 61 jge .L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe 62 cmpq $0x60,%rdx 63 jge .L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe 64 cmpq $0x50,%rdx 65 jge .L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe 66 cmpq $0x40,%rdx 67 jge .L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe 68 cmpq $0x30,%rdx 69 jge .L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe 70 cmpq $0x20,%rdx 71 jge .L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe 72 cmpq $0x10,%rdx 73 jge .L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe 74 vmovdqa %xmm0,%xmm8 75 vmovdqa %xmm9,%xmm0 76 jmp .L_steal_cipher_hEgxyDlCngwrfFe 77 78.L_remaining_num_blocks_is_7_hEgxyDlCngwrfFe: 79 movq $0x0000ffffffffffff,%r8 80 kmovq %r8,%k1 81 vmovdqu8 (%rdi),%zmm1 82 vmovdqu8 64(%rdi),%zmm2{%k1} 83 addq $0x70,%rdi 84 vbroadcasti32x4 (%rcx),%zmm0 85 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 86 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 87 vbroadcasti32x4 16(%rcx),%zmm0 88 vaesenc %zmm0,%zmm1,%zmm1 89 vaesenc %zmm0,%zmm2,%zmm2 90 91 92 vbroadcasti32x4 32(%rcx),%zmm0 93 vaesenc %zmm0,%zmm1,%zmm1 94 vaesenc %zmm0,%zmm2,%zmm2 95 96 97 vbroadcasti32x4 48(%rcx),%zmm0 98 vaesenc %zmm0,%zmm1,%zmm1 99 vaesenc %zmm0,%zmm2,%zmm2 100 101 vbroadcasti32x4 64(%rcx),%zmm0 102 vaesenc %zmm0,%zmm1,%zmm1 103 vaesenc %zmm0,%zmm2,%zmm2 104 105 106 vbroadcasti32x4 80(%rcx),%zmm0 107 vaesenc %zmm0,%zmm1,%zmm1 108 vaesenc %zmm0,%zmm2,%zmm2 109 110 111 vbroadcasti32x4 96(%rcx),%zmm0 112 vaesenc %zmm0,%zmm1,%zmm1 113 vaesenc %zmm0,%zmm2,%zmm2 114 115 116 vbroadcasti32x4 112(%rcx),%zmm0 117 vaesenc %zmm0,%zmm1,%zmm1 118 vaesenc %zmm0,%zmm2,%zmm2 119 120 121 vbroadcasti32x4 128(%rcx),%zmm0 122 vaesenc %zmm0,%zmm1,%zmm1 123 vaesenc %zmm0,%zmm2,%zmm2 124 125 126 vbroadcasti32x4 144(%rcx),%zmm0 127 vaesenc %zmm0,%zmm1,%zmm1 128 vaesenc %zmm0,%zmm2,%zmm2 129 130 vbroadcasti32x4 160(%rcx),%zmm0 131 vaesenclast %zmm0,%zmm1,%zmm1 132 vaesenclast %zmm0,%zmm2,%zmm2 133 vpxorq %zmm9,%zmm1,%zmm1 134 vpxorq %zmm10,%zmm2,%zmm2 135 vmovdqu8 %zmm1,(%rsi) 136 vmovdqu8 %zmm2,64(%rsi){%k1} 137 addq $0x70,%rsi 138 vextracti32x4 $0x2,%zmm2,%xmm8 139 vextracti32x4 $0x3,%zmm10,%xmm0 140 andq $0xf,%rdx 141 je .L_ret_hEgxyDlCngwrfFe 142 jmp .L_steal_cipher_hEgxyDlCngwrfFe 143 144.L_remaining_num_blocks_is_6_hEgxyDlCngwrfFe: 145 vmovdqu8 (%rdi),%zmm1 146 vmovdqu8 64(%rdi),%ymm2 147 addq $0x60,%rdi 148 vbroadcasti32x4 (%rcx),%zmm0 149 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 150 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 151 vbroadcasti32x4 16(%rcx),%zmm0 152 vaesenc %zmm0,%zmm1,%zmm1 153 vaesenc %zmm0,%zmm2,%zmm2 154 155 156 vbroadcasti32x4 32(%rcx),%zmm0 157 vaesenc %zmm0,%zmm1,%zmm1 158 vaesenc %zmm0,%zmm2,%zmm2 159 160 161 vbroadcasti32x4 48(%rcx),%zmm0 162 vaesenc %zmm0,%zmm1,%zmm1 163 vaesenc %zmm0,%zmm2,%zmm2 164 165 vbroadcasti32x4 64(%rcx),%zmm0 166 vaesenc %zmm0,%zmm1,%zmm1 167 vaesenc %zmm0,%zmm2,%zmm2 168 169 170 vbroadcasti32x4 80(%rcx),%zmm0 171 vaesenc %zmm0,%zmm1,%zmm1 172 vaesenc %zmm0,%zmm2,%zmm2 173 174 175 vbroadcasti32x4 96(%rcx),%zmm0 176 vaesenc %zmm0,%zmm1,%zmm1 177 vaesenc %zmm0,%zmm2,%zmm2 178 179 180 vbroadcasti32x4 112(%rcx),%zmm0 181 vaesenc %zmm0,%zmm1,%zmm1 182 vaesenc %zmm0,%zmm2,%zmm2 183 184 185 vbroadcasti32x4 128(%rcx),%zmm0 186 vaesenc %zmm0,%zmm1,%zmm1 187 vaesenc %zmm0,%zmm2,%zmm2 188 189 190 vbroadcasti32x4 144(%rcx),%zmm0 191 vaesenc %zmm0,%zmm1,%zmm1 192 vaesenc %zmm0,%zmm2,%zmm2 193 194 vbroadcasti32x4 160(%rcx),%zmm0 195 vaesenclast %zmm0,%zmm1,%zmm1 196 vaesenclast %zmm0,%zmm2,%zmm2 197 vpxorq %zmm9,%zmm1,%zmm1 198 vpxorq %zmm10,%zmm2,%zmm2 199 vmovdqu8 %zmm1,(%rsi) 200 vmovdqu8 %ymm2,64(%rsi) 201 addq $0x60,%rsi 202 vextracti32x4 $0x1,%zmm2,%xmm8 203 vextracti32x4 $0x2,%zmm10,%xmm0 204 andq $0xf,%rdx 205 je .L_ret_hEgxyDlCngwrfFe 206 jmp .L_steal_cipher_hEgxyDlCngwrfFe 207 208.L_remaining_num_blocks_is_5_hEgxyDlCngwrfFe: 209 vmovdqu8 (%rdi),%zmm1 210 vmovdqu 64(%rdi),%xmm2 211 addq $0x50,%rdi 212 vbroadcasti32x4 (%rcx),%zmm0 213 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 214 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 215 vbroadcasti32x4 16(%rcx),%zmm0 216 vaesenc %zmm0,%zmm1,%zmm1 217 vaesenc %zmm0,%zmm2,%zmm2 218 219 220 vbroadcasti32x4 32(%rcx),%zmm0 221 vaesenc %zmm0,%zmm1,%zmm1 222 vaesenc %zmm0,%zmm2,%zmm2 223 224 225 vbroadcasti32x4 48(%rcx),%zmm0 226 vaesenc %zmm0,%zmm1,%zmm1 227 vaesenc %zmm0,%zmm2,%zmm2 228 229 vbroadcasti32x4 64(%rcx),%zmm0 230 vaesenc %zmm0,%zmm1,%zmm1 231 vaesenc %zmm0,%zmm2,%zmm2 232 233 234 vbroadcasti32x4 80(%rcx),%zmm0 235 vaesenc %zmm0,%zmm1,%zmm1 236 vaesenc %zmm0,%zmm2,%zmm2 237 238 239 vbroadcasti32x4 96(%rcx),%zmm0 240 vaesenc %zmm0,%zmm1,%zmm1 241 vaesenc %zmm0,%zmm2,%zmm2 242 243 244 vbroadcasti32x4 112(%rcx),%zmm0 245 vaesenc %zmm0,%zmm1,%zmm1 246 vaesenc %zmm0,%zmm2,%zmm2 247 248 249 vbroadcasti32x4 128(%rcx),%zmm0 250 vaesenc %zmm0,%zmm1,%zmm1 251 vaesenc %zmm0,%zmm2,%zmm2 252 253 254 vbroadcasti32x4 144(%rcx),%zmm0 255 vaesenc %zmm0,%zmm1,%zmm1 256 vaesenc %zmm0,%zmm2,%zmm2 257 258 vbroadcasti32x4 160(%rcx),%zmm0 259 vaesenclast %zmm0,%zmm1,%zmm1 260 vaesenclast %zmm0,%zmm2,%zmm2 261 vpxorq %zmm9,%zmm1,%zmm1 262 vpxorq %zmm10,%zmm2,%zmm2 263 vmovdqu8 %zmm1,(%rsi) 264 vmovdqu %xmm2,64(%rsi) 265 addq $0x50,%rsi 266 vmovdqa %xmm2,%xmm8 267 vextracti32x4 $0x1,%zmm10,%xmm0 268 andq $0xf,%rdx 269 je .L_ret_hEgxyDlCngwrfFe 270 jmp .L_steal_cipher_hEgxyDlCngwrfFe 271 272.L_remaining_num_blocks_is_4_hEgxyDlCngwrfFe: 273 vmovdqu8 (%rdi),%zmm1 274 addq $0x40,%rdi 275 vbroadcasti32x4 (%rcx),%zmm0 276 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 277 vbroadcasti32x4 16(%rcx),%zmm0 278 vaesenc %zmm0,%zmm1,%zmm1 279 vbroadcasti32x4 32(%rcx),%zmm0 280 vaesenc %zmm0,%zmm1,%zmm1 281 vbroadcasti32x4 48(%rcx),%zmm0 282 vaesenc %zmm0,%zmm1,%zmm1 283 vbroadcasti32x4 64(%rcx),%zmm0 284 vaesenc %zmm0,%zmm1,%zmm1 285 vbroadcasti32x4 80(%rcx),%zmm0 286 vaesenc %zmm0,%zmm1,%zmm1 287 vbroadcasti32x4 96(%rcx),%zmm0 288 vaesenc %zmm0,%zmm1,%zmm1 289 vbroadcasti32x4 112(%rcx),%zmm0 290 vaesenc %zmm0,%zmm1,%zmm1 291 vbroadcasti32x4 128(%rcx),%zmm0 292 vaesenc %zmm0,%zmm1,%zmm1 293 vbroadcasti32x4 144(%rcx),%zmm0 294 vaesenc %zmm0,%zmm1,%zmm1 295 vbroadcasti32x4 160(%rcx),%zmm0 296 vaesenclast %zmm0,%zmm1,%zmm1 297 vpxorq %zmm9,%zmm1,%zmm1 298 vmovdqu8 %zmm1,(%rsi) 299 addq $0x40,%rsi 300 vextracti32x4 $0x3,%zmm1,%xmm8 301 vmovdqa64 %xmm10,%xmm0 302 andq $0xf,%rdx 303 je .L_ret_hEgxyDlCngwrfFe 304 jmp .L_steal_cipher_hEgxyDlCngwrfFe 305.L_remaining_num_blocks_is_3_hEgxyDlCngwrfFe: 306 movq $-1,%r8 307 shrq $0x10,%r8 308 kmovq %r8,%k1 309 vmovdqu8 (%rdi),%zmm1{%k1} 310 addq $0x30,%rdi 311 vbroadcasti32x4 (%rcx),%zmm0 312 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 313 vbroadcasti32x4 16(%rcx),%zmm0 314 vaesenc %zmm0,%zmm1,%zmm1 315 vbroadcasti32x4 32(%rcx),%zmm0 316 vaesenc %zmm0,%zmm1,%zmm1 317 vbroadcasti32x4 48(%rcx),%zmm0 318 vaesenc %zmm0,%zmm1,%zmm1 319 vbroadcasti32x4 64(%rcx),%zmm0 320 vaesenc %zmm0,%zmm1,%zmm1 321 vbroadcasti32x4 80(%rcx),%zmm0 322 vaesenc %zmm0,%zmm1,%zmm1 323 vbroadcasti32x4 96(%rcx),%zmm0 324 vaesenc %zmm0,%zmm1,%zmm1 325 vbroadcasti32x4 112(%rcx),%zmm0 326 vaesenc %zmm0,%zmm1,%zmm1 327 vbroadcasti32x4 128(%rcx),%zmm0 328 vaesenc %zmm0,%zmm1,%zmm1 329 vbroadcasti32x4 144(%rcx),%zmm0 330 vaesenc %zmm0,%zmm1,%zmm1 331 vbroadcasti32x4 160(%rcx),%zmm0 332 vaesenclast %zmm0,%zmm1,%zmm1 333 vpxorq %zmm9,%zmm1,%zmm1 334 vmovdqu8 %zmm1,(%rsi){%k1} 335 addq $0x30,%rsi 336 vextracti32x4 $0x2,%zmm1,%xmm8 337 vextracti32x4 $0x3,%zmm9,%xmm0 338 andq $0xf,%rdx 339 je .L_ret_hEgxyDlCngwrfFe 340 jmp .L_steal_cipher_hEgxyDlCngwrfFe 341.L_remaining_num_blocks_is_2_hEgxyDlCngwrfFe: 342 vmovdqu8 (%rdi),%ymm1 343 addq $0x20,%rdi 344 vbroadcasti32x4 (%rcx),%ymm0 345 vpternlogq $0x96,%ymm0,%ymm9,%ymm1 346 vbroadcasti32x4 16(%rcx),%ymm0 347 vaesenc %ymm0,%ymm1,%ymm1 348 vbroadcasti32x4 32(%rcx),%ymm0 349 vaesenc %ymm0,%ymm1,%ymm1 350 vbroadcasti32x4 48(%rcx),%ymm0 351 vaesenc %ymm0,%ymm1,%ymm1 352 vbroadcasti32x4 64(%rcx),%ymm0 353 vaesenc %ymm0,%ymm1,%ymm1 354 vbroadcasti32x4 80(%rcx),%ymm0 355 vaesenc %ymm0,%ymm1,%ymm1 356 vbroadcasti32x4 96(%rcx),%ymm0 357 vaesenc %ymm0,%ymm1,%ymm1 358 vbroadcasti32x4 112(%rcx),%ymm0 359 vaesenc %ymm0,%ymm1,%ymm1 360 vbroadcasti32x4 128(%rcx),%ymm0 361 vaesenc %ymm0,%ymm1,%ymm1 362 vbroadcasti32x4 144(%rcx),%ymm0 363 vaesenc %ymm0,%ymm1,%ymm1 364 vbroadcasti32x4 160(%rcx),%ymm0 365 vaesenclast %ymm0,%ymm1,%ymm1 366 vpxorq %ymm9,%ymm1,%ymm1 367 vmovdqu %ymm1,(%rsi) 368 addq $0x20,%rsi 369 vextracti32x4 $0x1,%zmm1,%xmm8 370 vextracti32x4 $0x2,%zmm9,%xmm0 371 andq $0xf,%rdx 372 je .L_ret_hEgxyDlCngwrfFe 373 jmp .L_steal_cipher_hEgxyDlCngwrfFe 374.L_remaining_num_blocks_is_1_hEgxyDlCngwrfFe: 375 vmovdqu (%rdi),%xmm1 376 addq $0x10,%rdi 377 vpxor %xmm9,%xmm1,%xmm1 378 vpxor (%rcx),%xmm1,%xmm1 379 vaesenc 16(%rcx),%xmm1,%xmm1 380 vaesenc 32(%rcx),%xmm1,%xmm1 381 vaesenc 48(%rcx),%xmm1,%xmm1 382 vaesenc 64(%rcx),%xmm1,%xmm1 383 vaesenc 80(%rcx),%xmm1,%xmm1 384 vaesenc 96(%rcx),%xmm1,%xmm1 385 vaesenc 112(%rcx),%xmm1,%xmm1 386 vaesenc 128(%rcx),%xmm1,%xmm1 387 vaesenc 144(%rcx),%xmm1,%xmm1 388 vaesenclast 160(%rcx),%xmm1,%xmm1 389 vpxor %xmm9,%xmm1,%xmm1 390 vmovdqu %xmm1,(%rsi) 391 addq $0x10,%rsi 392 vmovdqa %xmm1,%xmm8 393 vextracti32x4 $0x1,%zmm9,%xmm0 394 andq $0xf,%rdx 395 je .L_ret_hEgxyDlCngwrfFe 396 jmp .L_steal_cipher_hEgxyDlCngwrfFe 397 398 399.L_start_by16_hEgxyDlCngwrfFe: 400 vbroadcasti32x4 (%rsp),%zmm0 401 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 402 movq $0xaa,%r8 403 kmovq %r8,%k2 404 vpshufb %zmm8,%zmm0,%zmm1 405 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 406 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 407 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 408 vpxorq %zmm2,%zmm4,%zmm4{%k2} 409 vpxord %zmm4,%zmm3,%zmm9 410 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 411 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 412 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 413 vpxorq %zmm6,%zmm5,%zmm5{%k2} 414 vpxord %zmm5,%zmm7,%zmm10 415 vpsrldq $0xf,%zmm9,%zmm13 416 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 417 vpslldq $0x1,%zmm9,%zmm11 418 vpxord %zmm14,%zmm11,%zmm11 419 vpsrldq $0xf,%zmm10,%zmm15 420 vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 421 vpslldq $0x1,%zmm10,%zmm12 422 vpxord %zmm16,%zmm12,%zmm12 423 424.L_main_loop_run_16_hEgxyDlCngwrfFe: 425 vmovdqu8 (%rdi),%zmm1 426 vmovdqu8 64(%rdi),%zmm2 427 vmovdqu8 128(%rdi),%zmm3 428 vmovdqu8 192(%rdi),%zmm4 429 addq $0x100,%rdi 430 vpxorq %zmm9,%zmm1,%zmm1 431 vpxorq %zmm10,%zmm2,%zmm2 432 vpxorq %zmm11,%zmm3,%zmm3 433 vpxorq %zmm12,%zmm4,%zmm4 434 vbroadcasti32x4 (%rcx),%zmm0 435 vpxorq %zmm0,%zmm1,%zmm1 436 vpxorq %zmm0,%zmm2,%zmm2 437 vpxorq %zmm0,%zmm3,%zmm3 438 vpxorq %zmm0,%zmm4,%zmm4 439 vpsrldq $0xf,%zmm11,%zmm13 440 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 441 vpslldq $0x1,%zmm11,%zmm15 442 vpxord %zmm14,%zmm15,%zmm15 443 vbroadcasti32x4 16(%rcx),%zmm0 444 vaesenc %zmm0,%zmm1,%zmm1 445 vaesenc %zmm0,%zmm2,%zmm2 446 vaesenc %zmm0,%zmm3,%zmm3 447 vaesenc %zmm0,%zmm4,%zmm4 448 vbroadcasti32x4 32(%rcx),%zmm0 449 vaesenc %zmm0,%zmm1,%zmm1 450 vaesenc %zmm0,%zmm2,%zmm2 451 vaesenc %zmm0,%zmm3,%zmm3 452 vaesenc %zmm0,%zmm4,%zmm4 453 vbroadcasti32x4 48(%rcx),%zmm0 454 vaesenc %zmm0,%zmm1,%zmm1 455 vaesenc %zmm0,%zmm2,%zmm2 456 vaesenc %zmm0,%zmm3,%zmm3 457 vaesenc %zmm0,%zmm4,%zmm4 458 vpsrldq $0xf,%zmm12,%zmm13 459 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 460 vpslldq $0x1,%zmm12,%zmm16 461 vpxord %zmm14,%zmm16,%zmm16 462 vbroadcasti32x4 64(%rcx),%zmm0 463 vaesenc %zmm0,%zmm1,%zmm1 464 vaesenc %zmm0,%zmm2,%zmm2 465 vaesenc %zmm0,%zmm3,%zmm3 466 vaesenc %zmm0,%zmm4,%zmm4 467 vbroadcasti32x4 80(%rcx),%zmm0 468 vaesenc %zmm0,%zmm1,%zmm1 469 vaesenc %zmm0,%zmm2,%zmm2 470 vaesenc %zmm0,%zmm3,%zmm3 471 vaesenc %zmm0,%zmm4,%zmm4 472 vbroadcasti32x4 96(%rcx),%zmm0 473 vaesenc %zmm0,%zmm1,%zmm1 474 vaesenc %zmm0,%zmm2,%zmm2 475 vaesenc %zmm0,%zmm3,%zmm3 476 vaesenc %zmm0,%zmm4,%zmm4 477 vpsrldq $0xf,%zmm15,%zmm13 478 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 479 vpslldq $0x1,%zmm15,%zmm17 480 vpxord %zmm14,%zmm17,%zmm17 481 vbroadcasti32x4 112(%rcx),%zmm0 482 vaesenc %zmm0,%zmm1,%zmm1 483 vaesenc %zmm0,%zmm2,%zmm2 484 vaesenc %zmm0,%zmm3,%zmm3 485 vaesenc %zmm0,%zmm4,%zmm4 486 vbroadcasti32x4 128(%rcx),%zmm0 487 vaesenc %zmm0,%zmm1,%zmm1 488 vaesenc %zmm0,%zmm2,%zmm2 489 vaesenc %zmm0,%zmm3,%zmm3 490 vaesenc %zmm0,%zmm4,%zmm4 491 vbroadcasti32x4 144(%rcx),%zmm0 492 vaesenc %zmm0,%zmm1,%zmm1 493 vaesenc %zmm0,%zmm2,%zmm2 494 vaesenc %zmm0,%zmm3,%zmm3 495 vaesenc %zmm0,%zmm4,%zmm4 496 vpsrldq $0xf,%zmm16,%zmm13 497 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 498 vpslldq $0x1,%zmm16,%zmm18 499 vpxord %zmm14,%zmm18,%zmm18 500 vbroadcasti32x4 160(%rcx),%zmm0 501 vaesenclast %zmm0,%zmm1,%zmm1 502 vaesenclast %zmm0,%zmm2,%zmm2 503 vaesenclast %zmm0,%zmm3,%zmm3 504 vaesenclast %zmm0,%zmm4,%zmm4 505 vpxorq %zmm9,%zmm1,%zmm1 506 vpxorq %zmm10,%zmm2,%zmm2 507 vpxorq %zmm11,%zmm3,%zmm3 508 vpxorq %zmm12,%zmm4,%zmm4 509 510 vmovdqa32 %zmm15,%zmm9 511 vmovdqa32 %zmm16,%zmm10 512 vmovdqa32 %zmm17,%zmm11 513 vmovdqa32 %zmm18,%zmm12 514 vmovdqu8 %zmm1,(%rsi) 515 vmovdqu8 %zmm2,64(%rsi) 516 vmovdqu8 %zmm3,128(%rsi) 517 vmovdqu8 %zmm4,192(%rsi) 518 addq $0x100,%rsi 519 subq $0x100,%rdx 520 cmpq $0x100,%rdx 521 jae .L_main_loop_run_16_hEgxyDlCngwrfFe 522 cmpq $0x80,%rdx 523 jae .L_main_loop_run_8_hEgxyDlCngwrfFe 524 vextracti32x4 $0x3,%zmm4,%xmm0 525 jmp .L_do_n_blocks_hEgxyDlCngwrfFe 526 527.L_start_by8_hEgxyDlCngwrfFe: 528 vbroadcasti32x4 (%rsp),%zmm0 529 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 530 movq $0xaa,%r8 531 kmovq %r8,%k2 532 vpshufb %zmm8,%zmm0,%zmm1 533 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 534 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 535 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 536 vpxorq %zmm2,%zmm4,%zmm4{%k2} 537 vpxord %zmm4,%zmm3,%zmm9 538 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 539 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 540 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 541 vpxorq %zmm6,%zmm5,%zmm5{%k2} 542 vpxord %zmm5,%zmm7,%zmm10 543 544.L_main_loop_run_8_hEgxyDlCngwrfFe: 545 vmovdqu8 (%rdi),%zmm1 546 vmovdqu8 64(%rdi),%zmm2 547 addq $0x80,%rdi 548 vbroadcasti32x4 (%rcx),%zmm0 549 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 550 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 551 vpsrldq $0xf,%zmm9,%zmm13 552 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 553 vpslldq $0x1,%zmm9,%zmm15 554 vpxord %zmm14,%zmm15,%zmm15 555 vbroadcasti32x4 16(%rcx),%zmm0 556 vaesenc %zmm0,%zmm1,%zmm1 557 vaesenc %zmm0,%zmm2,%zmm2 558 559 560 vbroadcasti32x4 32(%rcx),%zmm0 561 vaesenc %zmm0,%zmm1,%zmm1 562 vaesenc %zmm0,%zmm2,%zmm2 563 564 565 vbroadcasti32x4 48(%rcx),%zmm0 566 vaesenc %zmm0,%zmm1,%zmm1 567 vaesenc %zmm0,%zmm2,%zmm2 568 vpsrldq $0xf,%zmm10,%zmm13 569 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 570 vpslldq $0x1,%zmm10,%zmm16 571 vpxord %zmm14,%zmm16,%zmm16 572 573 vbroadcasti32x4 64(%rcx),%zmm0 574 vaesenc %zmm0,%zmm1,%zmm1 575 vaesenc %zmm0,%zmm2,%zmm2 576 577 578 vbroadcasti32x4 80(%rcx),%zmm0 579 vaesenc %zmm0,%zmm1,%zmm1 580 vaesenc %zmm0,%zmm2,%zmm2 581 582 583 vbroadcasti32x4 96(%rcx),%zmm0 584 vaesenc %zmm0,%zmm1,%zmm1 585 vaesenc %zmm0,%zmm2,%zmm2 586 587 588 vbroadcasti32x4 112(%rcx),%zmm0 589 vaesenc %zmm0,%zmm1,%zmm1 590 vaesenc %zmm0,%zmm2,%zmm2 591 592 593 vbroadcasti32x4 128(%rcx),%zmm0 594 vaesenc %zmm0,%zmm1,%zmm1 595 vaesenc %zmm0,%zmm2,%zmm2 596 597 598 vbroadcasti32x4 144(%rcx),%zmm0 599 vaesenc %zmm0,%zmm1,%zmm1 600 vaesenc %zmm0,%zmm2,%zmm2 601 602 vbroadcasti32x4 160(%rcx),%zmm0 603 vaesenclast %zmm0,%zmm1,%zmm1 604 vaesenclast %zmm0,%zmm2,%zmm2 605 vpxorq %zmm9,%zmm1,%zmm1 606 vpxorq %zmm10,%zmm2,%zmm2 607 vmovdqa32 %zmm15,%zmm9 608 vmovdqa32 %zmm16,%zmm10 609 vmovdqu8 %zmm1,(%rsi) 610 vmovdqu8 %zmm2,64(%rsi) 611 addq $0x80,%rsi 612 subq $0x80,%rdx 613 cmpq $0x80,%rdx 614 jae .L_main_loop_run_8_hEgxyDlCngwrfFe 615 vextracti32x4 $0x3,%zmm2,%xmm0 616 jmp .L_do_n_blocks_hEgxyDlCngwrfFe 617 618.L_steal_cipher_hEgxyDlCngwrfFe: 619 vmovdqa %xmm8,%xmm2 620 leaq vpshufb_shf_table(%rip),%rax 621 vmovdqu (%rax,%rdx,1),%xmm10 622 vpshufb %xmm10,%xmm8,%xmm8 623 vmovdqu -16(%rdi,%rdx,1),%xmm3 624 vmovdqu %xmm8,-16(%rsi,%rdx,1) 625 leaq vpshufb_shf_table(%rip),%rax 626 addq $16,%rax 627 subq %rdx,%rax 628 vmovdqu (%rax),%xmm10 629 vpxor mask1(%rip),%xmm10,%xmm10 630 vpshufb %xmm10,%xmm3,%xmm3 631 vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 632 vpxor %xmm0,%xmm3,%xmm8 633 vpxor (%rcx),%xmm8,%xmm8 634 vaesenc 16(%rcx),%xmm8,%xmm8 635 vaesenc 32(%rcx),%xmm8,%xmm8 636 vaesenc 48(%rcx),%xmm8,%xmm8 637 vaesenc 64(%rcx),%xmm8,%xmm8 638 vaesenc 80(%rcx),%xmm8,%xmm8 639 vaesenc 96(%rcx),%xmm8,%xmm8 640 vaesenc 112(%rcx),%xmm8,%xmm8 641 vaesenc 128(%rcx),%xmm8,%xmm8 642 vaesenc 144(%rcx),%xmm8,%xmm8 643 vaesenclast 160(%rcx),%xmm8,%xmm8 644 vpxor %xmm0,%xmm8,%xmm8 645 vmovdqu %xmm8,-16(%rsi) 646.L_ret_hEgxyDlCngwrfFe: 647 movq 128(%rsp),%rbx 648 xorq %r8,%r8 649 movq %r8,128(%rsp) 650 651 vpxorq %zmm0,%zmm0,%zmm0 652 movq %rbp,%rsp 653 popq %rbp 654 vzeroupper 655 .byte 0xf3,0xc3 656 657.L_less_than_128_bytes_hEgxyDlCngwrfFe: 658 vpbroadcastq %r10,%zmm25 659 cmpq $0x10,%rdx 660 jb .L_ret_hEgxyDlCngwrfFe 661 vbroadcasti32x4 (%rsp),%zmm0 662 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 663 movl $0xaa,%r8d 664 kmovq %r8,%k2 665 movq %rdx,%r8 666 andq $0x70,%r8 667 cmpq $0x60,%r8 668 je .L_num_blocks_is_6_hEgxyDlCngwrfFe 669 cmpq $0x50,%r8 670 je .L_num_blocks_is_5_hEgxyDlCngwrfFe 671 cmpq $0x40,%r8 672 je .L_num_blocks_is_4_hEgxyDlCngwrfFe 673 cmpq $0x30,%r8 674 je .L_num_blocks_is_3_hEgxyDlCngwrfFe 675 cmpq $0x20,%r8 676 je .L_num_blocks_is_2_hEgxyDlCngwrfFe 677 cmpq $0x10,%r8 678 je .L_num_blocks_is_1_hEgxyDlCngwrfFe 679 680.L_num_blocks_is_7_hEgxyDlCngwrfFe: 681 vpshufb %zmm8,%zmm0,%zmm1 682 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 683 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 684 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 685 vpxorq %zmm2,%zmm4,%zmm4{%k2} 686 vpxord %zmm4,%zmm3,%zmm9 687 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 688 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 689 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 690 vpxorq %zmm6,%zmm5,%zmm5{%k2} 691 vpxord %zmm5,%zmm7,%zmm10 692 movq $0x0000ffffffffffff,%r8 693 kmovq %r8,%k1 694 vmovdqu8 0(%rdi),%zmm1 695 vmovdqu8 64(%rdi),%zmm2{%k1} 696 697 addq $0x70,%rdi 698 vbroadcasti32x4 (%rcx),%zmm0 699 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 700 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 701 vbroadcasti32x4 16(%rcx),%zmm0 702 vaesenc %zmm0,%zmm1,%zmm1 703 vaesenc %zmm0,%zmm2,%zmm2 704 705 706 vbroadcasti32x4 32(%rcx),%zmm0 707 vaesenc %zmm0,%zmm1,%zmm1 708 vaesenc %zmm0,%zmm2,%zmm2 709 710 711 vbroadcasti32x4 48(%rcx),%zmm0 712 vaesenc %zmm0,%zmm1,%zmm1 713 vaesenc %zmm0,%zmm2,%zmm2 714 715 vbroadcasti32x4 64(%rcx),%zmm0 716 vaesenc %zmm0,%zmm1,%zmm1 717 vaesenc %zmm0,%zmm2,%zmm2 718 719 720 vbroadcasti32x4 80(%rcx),%zmm0 721 vaesenc %zmm0,%zmm1,%zmm1 722 vaesenc %zmm0,%zmm2,%zmm2 723 724 725 vbroadcasti32x4 96(%rcx),%zmm0 726 vaesenc %zmm0,%zmm1,%zmm1 727 vaesenc %zmm0,%zmm2,%zmm2 728 729 730 vbroadcasti32x4 112(%rcx),%zmm0 731 vaesenc %zmm0,%zmm1,%zmm1 732 vaesenc %zmm0,%zmm2,%zmm2 733 734 735 vbroadcasti32x4 128(%rcx),%zmm0 736 vaesenc %zmm0,%zmm1,%zmm1 737 vaesenc %zmm0,%zmm2,%zmm2 738 739 740 vbroadcasti32x4 144(%rcx),%zmm0 741 vaesenc %zmm0,%zmm1,%zmm1 742 vaesenc %zmm0,%zmm2,%zmm2 743 744 vbroadcasti32x4 160(%rcx),%zmm0 745 vaesenclast %zmm0,%zmm1,%zmm1 746 vaesenclast %zmm0,%zmm2,%zmm2 747 vpxorq %zmm9,%zmm1,%zmm1 748 vpxorq %zmm10,%zmm2,%zmm2 749 vmovdqu8 %zmm1,0(%rsi) 750 vmovdqu8 %zmm2,64(%rsi){%k1} 751 addq $0x70,%rsi 752 vextracti32x4 $0x2,%zmm2,%xmm8 753 vextracti32x4 $0x3,%zmm10,%xmm0 754 andq $0xf,%rdx 755 je .L_ret_hEgxyDlCngwrfFe 756 jmp .L_steal_cipher_hEgxyDlCngwrfFe 757.L_num_blocks_is_6_hEgxyDlCngwrfFe: 758 vpshufb %zmm8,%zmm0,%zmm1 759 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 760 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 761 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 762 vpxorq %zmm2,%zmm4,%zmm4{%k2} 763 vpxord %zmm4,%zmm3,%zmm9 764 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 765 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 766 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 767 vpxorq %zmm6,%zmm5,%zmm5{%k2} 768 vpxord %zmm5,%zmm7,%zmm10 769 vmovdqu8 0(%rdi),%zmm1 770 vmovdqu8 64(%rdi),%ymm2 771 addq $96,%rdi 772 vbroadcasti32x4 (%rcx),%zmm0 773 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 774 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 775 vbroadcasti32x4 16(%rcx),%zmm0 776 vaesenc %zmm0,%zmm1,%zmm1 777 vaesenc %zmm0,%zmm2,%zmm2 778 779 780 vbroadcasti32x4 32(%rcx),%zmm0 781 vaesenc %zmm0,%zmm1,%zmm1 782 vaesenc %zmm0,%zmm2,%zmm2 783 784 785 vbroadcasti32x4 48(%rcx),%zmm0 786 vaesenc %zmm0,%zmm1,%zmm1 787 vaesenc %zmm0,%zmm2,%zmm2 788 789 vbroadcasti32x4 64(%rcx),%zmm0 790 vaesenc %zmm0,%zmm1,%zmm1 791 vaesenc %zmm0,%zmm2,%zmm2 792 793 794 vbroadcasti32x4 80(%rcx),%zmm0 795 vaesenc %zmm0,%zmm1,%zmm1 796 vaesenc %zmm0,%zmm2,%zmm2 797 798 799 vbroadcasti32x4 96(%rcx),%zmm0 800 vaesenc %zmm0,%zmm1,%zmm1 801 vaesenc %zmm0,%zmm2,%zmm2 802 803 804 vbroadcasti32x4 112(%rcx),%zmm0 805 vaesenc %zmm0,%zmm1,%zmm1 806 vaesenc %zmm0,%zmm2,%zmm2 807 808 809 vbroadcasti32x4 128(%rcx),%zmm0 810 vaesenc %zmm0,%zmm1,%zmm1 811 vaesenc %zmm0,%zmm2,%zmm2 812 813 814 vbroadcasti32x4 144(%rcx),%zmm0 815 vaesenc %zmm0,%zmm1,%zmm1 816 vaesenc %zmm0,%zmm2,%zmm2 817 818 vbroadcasti32x4 160(%rcx),%zmm0 819 vaesenclast %zmm0,%zmm1,%zmm1 820 vaesenclast %zmm0,%zmm2,%zmm2 821 vpxorq %zmm9,%zmm1,%zmm1 822 vpxorq %zmm10,%zmm2,%zmm2 823 vmovdqu8 %zmm1,0(%rsi) 824 vmovdqu8 %ymm2,64(%rsi) 825 addq $96,%rsi 826 827 vextracti32x4 $0x1,%ymm2,%xmm8 828 vextracti32x4 $0x2,%zmm10,%xmm0 829 andq $0xf,%rdx 830 je .L_ret_hEgxyDlCngwrfFe 831 jmp .L_steal_cipher_hEgxyDlCngwrfFe 832.L_num_blocks_is_5_hEgxyDlCngwrfFe: 833 vpshufb %zmm8,%zmm0,%zmm1 834 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 835 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 836 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 837 vpxorq %zmm2,%zmm4,%zmm4{%k2} 838 vpxord %zmm4,%zmm3,%zmm9 839 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 840 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 841 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 842 vpxorq %zmm6,%zmm5,%zmm5{%k2} 843 vpxord %zmm5,%zmm7,%zmm10 844 vmovdqu8 0(%rdi),%zmm1 845 vmovdqu8 64(%rdi),%xmm2 846 addq $80,%rdi 847 vbroadcasti32x4 (%rcx),%zmm0 848 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 849 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 850 vbroadcasti32x4 16(%rcx),%zmm0 851 vaesenc %zmm0,%zmm1,%zmm1 852 vaesenc %zmm0,%zmm2,%zmm2 853 854 855 vbroadcasti32x4 32(%rcx),%zmm0 856 vaesenc %zmm0,%zmm1,%zmm1 857 vaesenc %zmm0,%zmm2,%zmm2 858 859 860 vbroadcasti32x4 48(%rcx),%zmm0 861 vaesenc %zmm0,%zmm1,%zmm1 862 vaesenc %zmm0,%zmm2,%zmm2 863 864 vbroadcasti32x4 64(%rcx),%zmm0 865 vaesenc %zmm0,%zmm1,%zmm1 866 vaesenc %zmm0,%zmm2,%zmm2 867 868 869 vbroadcasti32x4 80(%rcx),%zmm0 870 vaesenc %zmm0,%zmm1,%zmm1 871 vaesenc %zmm0,%zmm2,%zmm2 872 873 874 vbroadcasti32x4 96(%rcx),%zmm0 875 vaesenc %zmm0,%zmm1,%zmm1 876 vaesenc %zmm0,%zmm2,%zmm2 877 878 879 vbroadcasti32x4 112(%rcx),%zmm0 880 vaesenc %zmm0,%zmm1,%zmm1 881 vaesenc %zmm0,%zmm2,%zmm2 882 883 884 vbroadcasti32x4 128(%rcx),%zmm0 885 vaesenc %zmm0,%zmm1,%zmm1 886 vaesenc %zmm0,%zmm2,%zmm2 887 888 889 vbroadcasti32x4 144(%rcx),%zmm0 890 vaesenc %zmm0,%zmm1,%zmm1 891 vaesenc %zmm0,%zmm2,%zmm2 892 893 vbroadcasti32x4 160(%rcx),%zmm0 894 vaesenclast %zmm0,%zmm1,%zmm1 895 vaesenclast %zmm0,%zmm2,%zmm2 896 vpxorq %zmm9,%zmm1,%zmm1 897 vpxorq %zmm10,%zmm2,%zmm2 898 vmovdqu8 %zmm1,0(%rsi) 899 vmovdqu8 %xmm2,64(%rsi) 900 addq $80,%rsi 901 902 vmovdqa %xmm2,%xmm8 903 vextracti32x4 $0x1,%zmm10,%xmm0 904 andq $0xf,%rdx 905 je .L_ret_hEgxyDlCngwrfFe 906 jmp .L_steal_cipher_hEgxyDlCngwrfFe 907.L_num_blocks_is_4_hEgxyDlCngwrfFe: 908 vpshufb %zmm8,%zmm0,%zmm1 909 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 910 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 911 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 912 vpxorq %zmm2,%zmm4,%zmm4{%k2} 913 vpxord %zmm4,%zmm3,%zmm9 914 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 915 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 916 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 917 vpxorq %zmm6,%zmm5,%zmm5{%k2} 918 vpxord %zmm5,%zmm7,%zmm10 919 vmovdqu8 0(%rdi),%zmm1 920 addq $64,%rdi 921 vbroadcasti32x4 (%rcx),%zmm0 922 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 923 vbroadcasti32x4 16(%rcx),%zmm0 924 vaesenc %zmm0,%zmm1,%zmm1 925 vbroadcasti32x4 32(%rcx),%zmm0 926 vaesenc %zmm0,%zmm1,%zmm1 927 vbroadcasti32x4 48(%rcx),%zmm0 928 vaesenc %zmm0,%zmm1,%zmm1 929 vbroadcasti32x4 64(%rcx),%zmm0 930 vaesenc %zmm0,%zmm1,%zmm1 931 vbroadcasti32x4 80(%rcx),%zmm0 932 vaesenc %zmm0,%zmm1,%zmm1 933 vbroadcasti32x4 96(%rcx),%zmm0 934 vaesenc %zmm0,%zmm1,%zmm1 935 vbroadcasti32x4 112(%rcx),%zmm0 936 vaesenc %zmm0,%zmm1,%zmm1 937 vbroadcasti32x4 128(%rcx),%zmm0 938 vaesenc %zmm0,%zmm1,%zmm1 939 vbroadcasti32x4 144(%rcx),%zmm0 940 vaesenc %zmm0,%zmm1,%zmm1 941 vbroadcasti32x4 160(%rcx),%zmm0 942 vaesenclast %zmm0,%zmm1,%zmm1 943 vpxorq %zmm9,%zmm1,%zmm1 944 vmovdqu8 %zmm1,0(%rsi) 945 addq $64,%rsi 946 vextracti32x4 $0x3,%zmm1,%xmm8 947 vmovdqa %xmm10,%xmm0 948 andq $0xf,%rdx 949 je .L_ret_hEgxyDlCngwrfFe 950 jmp .L_steal_cipher_hEgxyDlCngwrfFe 951.L_num_blocks_is_3_hEgxyDlCngwrfFe: 952 vpshufb %zmm8,%zmm0,%zmm1 953 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 954 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 955 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 956 vpxorq %zmm2,%zmm4,%zmm4{%k2} 957 vpxord %zmm4,%zmm3,%zmm9 958 movq $0x0000ffffffffffff,%r8 959 kmovq %r8,%k1 960 vmovdqu8 0(%rdi),%zmm1{%k1} 961 addq $48,%rdi 962 vbroadcasti32x4 (%rcx),%zmm0 963 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 964 vbroadcasti32x4 16(%rcx),%zmm0 965 vaesenc %zmm0,%zmm1,%zmm1 966 vbroadcasti32x4 32(%rcx),%zmm0 967 vaesenc %zmm0,%zmm1,%zmm1 968 vbroadcasti32x4 48(%rcx),%zmm0 969 vaesenc %zmm0,%zmm1,%zmm1 970 vbroadcasti32x4 64(%rcx),%zmm0 971 vaesenc %zmm0,%zmm1,%zmm1 972 vbroadcasti32x4 80(%rcx),%zmm0 973 vaesenc %zmm0,%zmm1,%zmm1 974 vbroadcasti32x4 96(%rcx),%zmm0 975 vaesenc %zmm0,%zmm1,%zmm1 976 vbroadcasti32x4 112(%rcx),%zmm0 977 vaesenc %zmm0,%zmm1,%zmm1 978 vbroadcasti32x4 128(%rcx),%zmm0 979 vaesenc %zmm0,%zmm1,%zmm1 980 vbroadcasti32x4 144(%rcx),%zmm0 981 vaesenc %zmm0,%zmm1,%zmm1 982 vbroadcasti32x4 160(%rcx),%zmm0 983 vaesenclast %zmm0,%zmm1,%zmm1 984 vpxorq %zmm9,%zmm1,%zmm1 985 vmovdqu8 %zmm1,0(%rsi){%k1} 986 addq $48,%rsi 987 vextracti32x4 $2,%zmm1,%xmm8 988 vextracti32x4 $3,%zmm9,%xmm0 989 andq $0xf,%rdx 990 je .L_ret_hEgxyDlCngwrfFe 991 jmp .L_steal_cipher_hEgxyDlCngwrfFe 992.L_num_blocks_is_2_hEgxyDlCngwrfFe: 993 vpshufb %zmm8,%zmm0,%zmm1 994 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 995 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 996 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 997 vpxorq %zmm2,%zmm4,%zmm4{%k2} 998 vpxord %zmm4,%zmm3,%zmm9 999 1000 vmovdqu8 0(%rdi),%ymm1 1001 addq $32,%rdi 1002 vbroadcasti32x4 (%rcx),%ymm0 1003 vpternlogq $0x96,%ymm0,%ymm9,%ymm1 1004 vbroadcasti32x4 16(%rcx),%ymm0 1005 vaesenc %ymm0,%ymm1,%ymm1 1006 vbroadcasti32x4 32(%rcx),%ymm0 1007 vaesenc %ymm0,%ymm1,%ymm1 1008 vbroadcasti32x4 48(%rcx),%ymm0 1009 vaesenc %ymm0,%ymm1,%ymm1 1010 vbroadcasti32x4 64(%rcx),%ymm0 1011 vaesenc %ymm0,%ymm1,%ymm1 1012 vbroadcasti32x4 80(%rcx),%ymm0 1013 vaesenc %ymm0,%ymm1,%ymm1 1014 vbroadcasti32x4 96(%rcx),%ymm0 1015 vaesenc %ymm0,%ymm1,%ymm1 1016 vbroadcasti32x4 112(%rcx),%ymm0 1017 vaesenc %ymm0,%ymm1,%ymm1 1018 vbroadcasti32x4 128(%rcx),%ymm0 1019 vaesenc %ymm0,%ymm1,%ymm1 1020 vbroadcasti32x4 144(%rcx),%ymm0 1021 vaesenc %ymm0,%ymm1,%ymm1 1022 vbroadcasti32x4 160(%rcx),%ymm0 1023 vaesenclast %ymm0,%ymm1,%ymm1 1024 vpxorq %ymm9,%ymm1,%ymm1 1025 vmovdqu8 %ymm1,0(%rsi) 1026 addq $32,%rsi 1027 1028 vextracti32x4 $1,%ymm1,%xmm8 1029 vextracti32x4 $2,%zmm9,%xmm0 1030 andq $0xf,%rdx 1031 je .L_ret_hEgxyDlCngwrfFe 1032 jmp .L_steal_cipher_hEgxyDlCngwrfFe 1033.L_num_blocks_is_1_hEgxyDlCngwrfFe: 1034 vpshufb %zmm8,%zmm0,%zmm1 1035 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 1036 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 1037 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 1038 vpxorq %zmm2,%zmm4,%zmm4{%k2} 1039 vpxord %zmm4,%zmm3,%zmm9 1040 1041 vmovdqu8 0(%rdi),%xmm1 1042 addq $16,%rdi 1043 vbroadcasti32x4 (%rcx),%ymm0 1044 vpternlogq $0x96,%ymm0,%ymm9,%ymm1 1045 vbroadcasti32x4 16(%rcx),%ymm0 1046 vaesenc %ymm0,%ymm1,%ymm1 1047 vbroadcasti32x4 32(%rcx),%ymm0 1048 vaesenc %ymm0,%ymm1,%ymm1 1049 vbroadcasti32x4 48(%rcx),%ymm0 1050 vaesenc %ymm0,%ymm1,%ymm1 1051 vbroadcasti32x4 64(%rcx),%ymm0 1052 vaesenc %ymm0,%ymm1,%ymm1 1053 vbroadcasti32x4 80(%rcx),%ymm0 1054 vaesenc %ymm0,%ymm1,%ymm1 1055 vbroadcasti32x4 96(%rcx),%ymm0 1056 vaesenc %ymm0,%ymm1,%ymm1 1057 vbroadcasti32x4 112(%rcx),%ymm0 1058 vaesenc %ymm0,%ymm1,%ymm1 1059 vbroadcasti32x4 128(%rcx),%ymm0 1060 vaesenc %ymm0,%ymm1,%ymm1 1061 vbroadcasti32x4 144(%rcx),%ymm0 1062 vaesenc %ymm0,%ymm1,%ymm1 1063 vbroadcasti32x4 160(%rcx),%ymm0 1064 vaesenclast %ymm0,%ymm1,%ymm1 1065 vpxorq %ymm9,%ymm1,%ymm1 1066 vmovdqu8 %xmm1,0(%rsi) 1067 addq $16,%rsi 1068 1069 vmovdqa %xmm1,%xmm8 1070 vextracti32x4 $1,%zmm9,%xmm0 1071 andq $0xf,%rdx 1072 je .L_ret_hEgxyDlCngwrfFe 1073 jmp .L_steal_cipher_hEgxyDlCngwrfFe 1074.cfi_endproc 1075.globl aesni_xts_128_decrypt_avx512 1076.hidden aesni_xts_128_decrypt_avx512 1077.type aesni_xts_128_decrypt_avx512,@function 1078.align 32 1079aesni_xts_128_decrypt_avx512: 1080.cfi_startproc 1081.byte 243,15,30,250 1082 pushq %rbp 1083 movq %rsp,%rbp 1084 subq $136,%rsp 1085 andq $0xffffffffffffffc0,%rsp 1086 movq %rbx,128(%rsp) 1087 movq $0x87,%r10 1088 vmovdqu (%r9),%xmm1 1089 vpxor (%r8),%xmm1,%xmm1 1090 vaesenc 16(%r8),%xmm1,%xmm1 1091 vaesenc 32(%r8),%xmm1,%xmm1 1092 vaesenc 48(%r8),%xmm1,%xmm1 1093 vaesenc 64(%r8),%xmm1,%xmm1 1094 vaesenc 80(%r8),%xmm1,%xmm1 1095 vaesenc 96(%r8),%xmm1,%xmm1 1096 vaesenc 112(%r8),%xmm1,%xmm1 1097 vaesenc 128(%r8),%xmm1,%xmm1 1098 vaesenc 144(%r8),%xmm1,%xmm1 1099 vaesenclast 160(%r8),%xmm1,%xmm1 1100 vmovdqa %xmm1,(%rsp) 1101 1102 cmpq $0x80,%rdx 1103 jb .L_less_than_128_bytes_amivrujEyduiFoi 1104 vpbroadcastq %r10,%zmm25 1105 cmpq $0x100,%rdx 1106 jge .L_start_by16_amivrujEyduiFoi 1107 jmp .L_start_by8_amivrujEyduiFoi 1108 1109.L_do_n_blocks_amivrujEyduiFoi: 1110 cmpq $0x0,%rdx 1111 je .L_ret_amivrujEyduiFoi 1112 cmpq $0x70,%rdx 1113 jge .L_remaining_num_blocks_is_7_amivrujEyduiFoi 1114 cmpq $0x60,%rdx 1115 jge .L_remaining_num_blocks_is_6_amivrujEyduiFoi 1116 cmpq $0x50,%rdx 1117 jge .L_remaining_num_blocks_is_5_amivrujEyduiFoi 1118 cmpq $0x40,%rdx 1119 jge .L_remaining_num_blocks_is_4_amivrujEyduiFoi 1120 cmpq $0x30,%rdx 1121 jge .L_remaining_num_blocks_is_3_amivrujEyduiFoi 1122 cmpq $0x20,%rdx 1123 jge .L_remaining_num_blocks_is_2_amivrujEyduiFoi 1124 cmpq $0x10,%rdx 1125 jge .L_remaining_num_blocks_is_1_amivrujEyduiFoi 1126 1127 1128 vmovdqu %xmm5,%xmm1 1129 1130 vpxor %xmm9,%xmm1,%xmm1 1131 vmovdqu (%rcx),%xmm0 1132 vpxor %xmm0,%xmm1,%xmm1 1133 vmovdqu 16(%rcx),%xmm0 1134 vaesdec %xmm0,%xmm1,%xmm1 1135 vmovdqu 32(%rcx),%xmm0 1136 vaesdec %xmm0,%xmm1,%xmm1 1137 vmovdqu 48(%rcx),%xmm0 1138 vaesdec %xmm0,%xmm1,%xmm1 1139 vmovdqu 64(%rcx),%xmm0 1140 vaesdec %xmm0,%xmm1,%xmm1 1141 vmovdqu 80(%rcx),%xmm0 1142 vaesdec %xmm0,%xmm1,%xmm1 1143 vmovdqu 96(%rcx),%xmm0 1144 vaesdec %xmm0,%xmm1,%xmm1 1145 vmovdqu 112(%rcx),%xmm0 1146 vaesdec %xmm0,%xmm1,%xmm1 1147 vmovdqu 128(%rcx),%xmm0 1148 vaesdec %xmm0,%xmm1,%xmm1 1149 vmovdqu 144(%rcx),%xmm0 1150 vaesdec %xmm0,%xmm1,%xmm1 1151 vmovdqu 160(%rcx),%xmm0 1152 vaesdeclast %xmm0,%xmm1,%xmm1 1153 vpxor %xmm9,%xmm1,%xmm1 1154 vmovdqu %xmm1,-16(%rsi) 1155 vmovdqa %xmm1,%xmm8 1156 1157 1158 movq $0x1,%r8 1159 kmovq %r8,%k1 1160 vpsllq $0x3f,%xmm9,%xmm13 1161 vpsraq $0x3f,%xmm13,%xmm14 1162 vpandq %xmm25,%xmm14,%xmm5 1163 vpxorq %xmm5,%xmm9,%xmm9{%k1} 1164 vpsrldq $0x8,%xmm9,%xmm10 1165.byte 98, 211, 181, 8, 115, 194, 1 1166 vpslldq $0x8,%xmm13,%xmm13 1167 vpxorq %xmm13,%xmm0,%xmm0 1168 jmp .L_steal_cipher_amivrujEyduiFoi 1169 1170.L_remaining_num_blocks_is_7_amivrujEyduiFoi: 1171 movq $0xffffffffffffffff,%r8 1172 shrq $0x10,%r8 1173 kmovq %r8,%k1 1174 vmovdqu8 (%rdi),%zmm1 1175 vmovdqu8 64(%rdi),%zmm2{%k1} 1176 addq $0x70,%rdi 1177 andq $0xf,%rdx 1178 je .L_done_7_remain_amivrujEyduiFoi 1179 vextracti32x4 $0x2,%zmm10,%xmm12 1180 vextracti32x4 $0x3,%zmm10,%xmm13 1181 vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 1182 1183 vpxorq %zmm9,%zmm1,%zmm1 1184 vpxorq %zmm10,%zmm2,%zmm2 1185 1186 1187 vbroadcasti32x4 (%rcx),%zmm0 1188 vpxorq %zmm0,%zmm1,%zmm1 1189 vpxorq %zmm0,%zmm2,%zmm2 1190 vbroadcasti32x4 16(%rcx),%zmm0 1191 vaesdec %zmm0,%zmm1,%zmm1 1192 vaesdec %zmm0,%zmm2,%zmm2 1193 1194 1195 vbroadcasti32x4 32(%rcx),%zmm0 1196 vaesdec %zmm0,%zmm1,%zmm1 1197 vaesdec %zmm0,%zmm2,%zmm2 1198 1199 1200 vbroadcasti32x4 48(%rcx),%zmm0 1201 vaesdec %zmm0,%zmm1,%zmm1 1202 vaesdec %zmm0,%zmm2,%zmm2 1203 1204 vbroadcasti32x4 64(%rcx),%zmm0 1205 vaesdec %zmm0,%zmm1,%zmm1 1206 vaesdec %zmm0,%zmm2,%zmm2 1207 1208 1209 vbroadcasti32x4 80(%rcx),%zmm0 1210 vaesdec %zmm0,%zmm1,%zmm1 1211 vaesdec %zmm0,%zmm2,%zmm2 1212 1213 1214 vbroadcasti32x4 96(%rcx),%zmm0 1215 vaesdec %zmm0,%zmm1,%zmm1 1216 vaesdec %zmm0,%zmm2,%zmm2 1217 1218 1219 vbroadcasti32x4 112(%rcx),%zmm0 1220 vaesdec %zmm0,%zmm1,%zmm1 1221 vaesdec %zmm0,%zmm2,%zmm2 1222 1223 1224 vbroadcasti32x4 128(%rcx),%zmm0 1225 vaesdec %zmm0,%zmm1,%zmm1 1226 vaesdec %zmm0,%zmm2,%zmm2 1227 1228 1229 vbroadcasti32x4 144(%rcx),%zmm0 1230 vaesdec %zmm0,%zmm1,%zmm1 1231 vaesdec %zmm0,%zmm2,%zmm2 1232 1233 1234 vbroadcasti32x4 160(%rcx),%zmm0 1235 vaesdeclast %zmm0,%zmm1,%zmm1 1236 vaesdeclast %zmm0,%zmm2,%zmm2 1237 1238 vpxorq %zmm9,%zmm1,%zmm1 1239 vpxorq %zmm10,%zmm2,%zmm2 1240 1241 1242 vmovdqa32 %zmm15,%zmm9 1243 vmovdqa32 %zmm16,%zmm10 1244 vmovdqu8 %zmm1,(%rsi) 1245 vmovdqu8 %zmm2,64(%rsi){%k1} 1246 addq $0x70,%rsi 1247 vextracti32x4 $0x2,%zmm2,%xmm8 1248 vmovdqa %xmm12,%xmm0 1249 jmp .L_steal_cipher_amivrujEyduiFoi 1250 1251.L_done_7_remain_amivrujEyduiFoi: 1252 1253 vpxorq %zmm9,%zmm1,%zmm1 1254 vpxorq %zmm10,%zmm2,%zmm2 1255 1256 1257 vbroadcasti32x4 (%rcx),%zmm0 1258 vpxorq %zmm0,%zmm1,%zmm1 1259 vpxorq %zmm0,%zmm2,%zmm2 1260 vbroadcasti32x4 16(%rcx),%zmm0 1261 vaesdec %zmm0,%zmm1,%zmm1 1262 vaesdec %zmm0,%zmm2,%zmm2 1263 1264 1265 vbroadcasti32x4 32(%rcx),%zmm0 1266 vaesdec %zmm0,%zmm1,%zmm1 1267 vaesdec %zmm0,%zmm2,%zmm2 1268 1269 1270 vbroadcasti32x4 48(%rcx),%zmm0 1271 vaesdec %zmm0,%zmm1,%zmm1 1272 vaesdec %zmm0,%zmm2,%zmm2 1273 1274 vbroadcasti32x4 64(%rcx),%zmm0 1275 vaesdec %zmm0,%zmm1,%zmm1 1276 vaesdec %zmm0,%zmm2,%zmm2 1277 1278 1279 vbroadcasti32x4 80(%rcx),%zmm0 1280 vaesdec %zmm0,%zmm1,%zmm1 1281 vaesdec %zmm0,%zmm2,%zmm2 1282 1283 1284 vbroadcasti32x4 96(%rcx),%zmm0 1285 vaesdec %zmm0,%zmm1,%zmm1 1286 vaesdec %zmm0,%zmm2,%zmm2 1287 1288 1289 vbroadcasti32x4 112(%rcx),%zmm0 1290 vaesdec %zmm0,%zmm1,%zmm1 1291 vaesdec %zmm0,%zmm2,%zmm2 1292 1293 1294 vbroadcasti32x4 128(%rcx),%zmm0 1295 vaesdec %zmm0,%zmm1,%zmm1 1296 vaesdec %zmm0,%zmm2,%zmm2 1297 1298 1299 vbroadcasti32x4 144(%rcx),%zmm0 1300 vaesdec %zmm0,%zmm1,%zmm1 1301 vaesdec %zmm0,%zmm2,%zmm2 1302 1303 1304 vbroadcasti32x4 160(%rcx),%zmm0 1305 vaesdeclast %zmm0,%zmm1,%zmm1 1306 vaesdeclast %zmm0,%zmm2,%zmm2 1307 1308 vpxorq %zmm9,%zmm1,%zmm1 1309 vpxorq %zmm10,%zmm2,%zmm2 1310 1311 1312 vmovdqa32 %zmm15,%zmm9 1313 vmovdqa32 %zmm16,%zmm10 1314 vmovdqu8 %zmm1,(%rsi) 1315 vmovdqu8 %zmm2,64(%rsi){%k1} 1316 jmp .L_ret_amivrujEyduiFoi 1317 1318.L_remaining_num_blocks_is_6_amivrujEyduiFoi: 1319 vmovdqu8 (%rdi),%zmm1 1320 vmovdqu8 64(%rdi),%ymm2 1321 addq $0x60,%rdi 1322 andq $0xf,%rdx 1323 je .L_done_6_remain_amivrujEyduiFoi 1324 vextracti32x4 $0x1,%zmm10,%xmm12 1325 vextracti32x4 $0x2,%zmm10,%xmm13 1326 vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 1327 1328 vpxorq %zmm9,%zmm1,%zmm1 1329 vpxorq %zmm10,%zmm2,%zmm2 1330 1331 1332 vbroadcasti32x4 (%rcx),%zmm0 1333 vpxorq %zmm0,%zmm1,%zmm1 1334 vpxorq %zmm0,%zmm2,%zmm2 1335 vbroadcasti32x4 16(%rcx),%zmm0 1336 vaesdec %zmm0,%zmm1,%zmm1 1337 vaesdec %zmm0,%zmm2,%zmm2 1338 1339 1340 vbroadcasti32x4 32(%rcx),%zmm0 1341 vaesdec %zmm0,%zmm1,%zmm1 1342 vaesdec %zmm0,%zmm2,%zmm2 1343 1344 1345 vbroadcasti32x4 48(%rcx),%zmm0 1346 vaesdec %zmm0,%zmm1,%zmm1 1347 vaesdec %zmm0,%zmm2,%zmm2 1348 1349 vbroadcasti32x4 64(%rcx),%zmm0 1350 vaesdec %zmm0,%zmm1,%zmm1 1351 vaesdec %zmm0,%zmm2,%zmm2 1352 1353 1354 vbroadcasti32x4 80(%rcx),%zmm0 1355 vaesdec %zmm0,%zmm1,%zmm1 1356 vaesdec %zmm0,%zmm2,%zmm2 1357 1358 1359 vbroadcasti32x4 96(%rcx),%zmm0 1360 vaesdec %zmm0,%zmm1,%zmm1 1361 vaesdec %zmm0,%zmm2,%zmm2 1362 1363 1364 vbroadcasti32x4 112(%rcx),%zmm0 1365 vaesdec %zmm0,%zmm1,%zmm1 1366 vaesdec %zmm0,%zmm2,%zmm2 1367 1368 1369 vbroadcasti32x4 128(%rcx),%zmm0 1370 vaesdec %zmm0,%zmm1,%zmm1 1371 vaesdec %zmm0,%zmm2,%zmm2 1372 1373 1374 vbroadcasti32x4 144(%rcx),%zmm0 1375 vaesdec %zmm0,%zmm1,%zmm1 1376 vaesdec %zmm0,%zmm2,%zmm2 1377 1378 1379 vbroadcasti32x4 160(%rcx),%zmm0 1380 vaesdeclast %zmm0,%zmm1,%zmm1 1381 vaesdeclast %zmm0,%zmm2,%zmm2 1382 1383 vpxorq %zmm9,%zmm1,%zmm1 1384 vpxorq %zmm10,%zmm2,%zmm2 1385 1386 1387 vmovdqa32 %zmm15,%zmm9 1388 vmovdqa32 %zmm16,%zmm10 1389 vmovdqu8 %zmm1,(%rsi) 1390 vmovdqu8 %ymm2,64(%rsi) 1391 addq $0x60,%rsi 1392 vextracti32x4 $0x1,%zmm2,%xmm8 1393 vmovdqa %xmm12,%xmm0 1394 jmp .L_steal_cipher_amivrujEyduiFoi 1395 1396.L_done_6_remain_amivrujEyduiFoi: 1397 1398 vpxorq %zmm9,%zmm1,%zmm1 1399 vpxorq %zmm10,%zmm2,%zmm2 1400 1401 1402 vbroadcasti32x4 (%rcx),%zmm0 1403 vpxorq %zmm0,%zmm1,%zmm1 1404 vpxorq %zmm0,%zmm2,%zmm2 1405 vbroadcasti32x4 16(%rcx),%zmm0 1406 vaesdec %zmm0,%zmm1,%zmm1 1407 vaesdec %zmm0,%zmm2,%zmm2 1408 1409 1410 vbroadcasti32x4 32(%rcx),%zmm0 1411 vaesdec %zmm0,%zmm1,%zmm1 1412 vaesdec %zmm0,%zmm2,%zmm2 1413 1414 1415 vbroadcasti32x4 48(%rcx),%zmm0 1416 vaesdec %zmm0,%zmm1,%zmm1 1417 vaesdec %zmm0,%zmm2,%zmm2 1418 1419 vbroadcasti32x4 64(%rcx),%zmm0 1420 vaesdec %zmm0,%zmm1,%zmm1 1421 vaesdec %zmm0,%zmm2,%zmm2 1422 1423 1424 vbroadcasti32x4 80(%rcx),%zmm0 1425 vaesdec %zmm0,%zmm1,%zmm1 1426 vaesdec %zmm0,%zmm2,%zmm2 1427 1428 1429 vbroadcasti32x4 96(%rcx),%zmm0 1430 vaesdec %zmm0,%zmm1,%zmm1 1431 vaesdec %zmm0,%zmm2,%zmm2 1432 1433 1434 vbroadcasti32x4 112(%rcx),%zmm0 1435 vaesdec %zmm0,%zmm1,%zmm1 1436 vaesdec %zmm0,%zmm2,%zmm2 1437 1438 1439 vbroadcasti32x4 128(%rcx),%zmm0 1440 vaesdec %zmm0,%zmm1,%zmm1 1441 vaesdec %zmm0,%zmm2,%zmm2 1442 1443 1444 vbroadcasti32x4 144(%rcx),%zmm0 1445 vaesdec %zmm0,%zmm1,%zmm1 1446 vaesdec %zmm0,%zmm2,%zmm2 1447 1448 1449 vbroadcasti32x4 160(%rcx),%zmm0 1450 vaesdeclast %zmm0,%zmm1,%zmm1 1451 vaesdeclast %zmm0,%zmm2,%zmm2 1452 1453 vpxorq %zmm9,%zmm1,%zmm1 1454 vpxorq %zmm10,%zmm2,%zmm2 1455 1456 1457 vmovdqa32 %zmm15,%zmm9 1458 vmovdqa32 %zmm16,%zmm10 1459 vmovdqu8 %zmm1,(%rsi) 1460 vmovdqu8 %ymm2,64(%rsi) 1461 jmp .L_ret_amivrujEyduiFoi 1462 1463.L_remaining_num_blocks_is_5_amivrujEyduiFoi: 1464 vmovdqu8 (%rdi),%zmm1 1465 vmovdqu 64(%rdi),%xmm2 1466 addq $0x50,%rdi 1467 andq $0xf,%rdx 1468 je .L_done_5_remain_amivrujEyduiFoi 1469 vmovdqa %xmm10,%xmm12 1470 vextracti32x4 $0x1,%zmm10,%xmm10 1471 1472 vpxorq %zmm9,%zmm1,%zmm1 1473 vpxorq %zmm10,%zmm2,%zmm2 1474 1475 1476 vbroadcasti32x4 (%rcx),%zmm0 1477 vpxorq %zmm0,%zmm1,%zmm1 1478 vpxorq %zmm0,%zmm2,%zmm2 1479 vbroadcasti32x4 16(%rcx),%zmm0 1480 vaesdec %zmm0,%zmm1,%zmm1 1481 vaesdec %zmm0,%zmm2,%zmm2 1482 1483 1484 vbroadcasti32x4 32(%rcx),%zmm0 1485 vaesdec %zmm0,%zmm1,%zmm1 1486 vaesdec %zmm0,%zmm2,%zmm2 1487 1488 1489 vbroadcasti32x4 48(%rcx),%zmm0 1490 vaesdec %zmm0,%zmm1,%zmm1 1491 vaesdec %zmm0,%zmm2,%zmm2 1492 1493 vbroadcasti32x4 64(%rcx),%zmm0 1494 vaesdec %zmm0,%zmm1,%zmm1 1495 vaesdec %zmm0,%zmm2,%zmm2 1496 1497 1498 vbroadcasti32x4 80(%rcx),%zmm0 1499 vaesdec %zmm0,%zmm1,%zmm1 1500 vaesdec %zmm0,%zmm2,%zmm2 1501 1502 1503 vbroadcasti32x4 96(%rcx),%zmm0 1504 vaesdec %zmm0,%zmm1,%zmm1 1505 vaesdec %zmm0,%zmm2,%zmm2 1506 1507 1508 vbroadcasti32x4 112(%rcx),%zmm0 1509 vaesdec %zmm0,%zmm1,%zmm1 1510 vaesdec %zmm0,%zmm2,%zmm2 1511 1512 1513 vbroadcasti32x4 128(%rcx),%zmm0 1514 vaesdec %zmm0,%zmm1,%zmm1 1515 vaesdec %zmm0,%zmm2,%zmm2 1516 1517 1518 vbroadcasti32x4 144(%rcx),%zmm0 1519 vaesdec %zmm0,%zmm1,%zmm1 1520 vaesdec %zmm0,%zmm2,%zmm2 1521 1522 1523 vbroadcasti32x4 160(%rcx),%zmm0 1524 vaesdeclast %zmm0,%zmm1,%zmm1 1525 vaesdeclast %zmm0,%zmm2,%zmm2 1526 1527 vpxorq %zmm9,%zmm1,%zmm1 1528 vpxorq %zmm10,%zmm2,%zmm2 1529 1530 1531 vmovdqa32 %zmm15,%zmm9 1532 vmovdqa32 %zmm16,%zmm10 1533 vmovdqu8 %zmm1,(%rsi) 1534 vmovdqu %xmm2,64(%rsi) 1535 addq $0x50,%rsi 1536 vmovdqa %xmm2,%xmm8 1537 vmovdqa %xmm12,%xmm0 1538 jmp .L_steal_cipher_amivrujEyduiFoi 1539 1540.L_done_5_remain_amivrujEyduiFoi: 1541 1542 vpxorq %zmm9,%zmm1,%zmm1 1543 vpxorq %zmm10,%zmm2,%zmm2 1544 1545 1546 vbroadcasti32x4 (%rcx),%zmm0 1547 vpxorq %zmm0,%zmm1,%zmm1 1548 vpxorq %zmm0,%zmm2,%zmm2 1549 vbroadcasti32x4 16(%rcx),%zmm0 1550 vaesdec %zmm0,%zmm1,%zmm1 1551 vaesdec %zmm0,%zmm2,%zmm2 1552 1553 1554 vbroadcasti32x4 32(%rcx),%zmm0 1555 vaesdec %zmm0,%zmm1,%zmm1 1556 vaesdec %zmm0,%zmm2,%zmm2 1557 1558 1559 vbroadcasti32x4 48(%rcx),%zmm0 1560 vaesdec %zmm0,%zmm1,%zmm1 1561 vaesdec %zmm0,%zmm2,%zmm2 1562 1563 vbroadcasti32x4 64(%rcx),%zmm0 1564 vaesdec %zmm0,%zmm1,%zmm1 1565 vaesdec %zmm0,%zmm2,%zmm2 1566 1567 1568 vbroadcasti32x4 80(%rcx),%zmm0 1569 vaesdec %zmm0,%zmm1,%zmm1 1570 vaesdec %zmm0,%zmm2,%zmm2 1571 1572 1573 vbroadcasti32x4 96(%rcx),%zmm0 1574 vaesdec %zmm0,%zmm1,%zmm1 1575 vaesdec %zmm0,%zmm2,%zmm2 1576 1577 1578 vbroadcasti32x4 112(%rcx),%zmm0 1579 vaesdec %zmm0,%zmm1,%zmm1 1580 vaesdec %zmm0,%zmm2,%zmm2 1581 1582 1583 vbroadcasti32x4 128(%rcx),%zmm0 1584 vaesdec %zmm0,%zmm1,%zmm1 1585 vaesdec %zmm0,%zmm2,%zmm2 1586 1587 1588 vbroadcasti32x4 144(%rcx),%zmm0 1589 vaesdec %zmm0,%zmm1,%zmm1 1590 vaesdec %zmm0,%zmm2,%zmm2 1591 1592 1593 vbroadcasti32x4 160(%rcx),%zmm0 1594 vaesdeclast %zmm0,%zmm1,%zmm1 1595 vaesdeclast %zmm0,%zmm2,%zmm2 1596 1597 vpxorq %zmm9,%zmm1,%zmm1 1598 vpxorq %zmm10,%zmm2,%zmm2 1599 1600 1601 vmovdqa32 %zmm15,%zmm9 1602 vmovdqa32 %zmm16,%zmm10 1603 vmovdqu8 %zmm1,(%rsi) 1604 vmovdqu8 %xmm2,64(%rsi) 1605 jmp .L_ret_amivrujEyduiFoi 1606 1607.L_remaining_num_blocks_is_4_amivrujEyduiFoi: 1608 vmovdqu8 (%rdi),%zmm1 1609 addq $0x40,%rdi 1610 andq $0xf,%rdx 1611 je .L_done_4_remain_amivrujEyduiFoi 1612 vextracti32x4 $0x3,%zmm9,%xmm12 1613 vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 1614 1615 vpxorq %zmm9,%zmm1,%zmm1 1616 vpxorq %zmm10,%zmm2,%zmm2 1617 1618 1619 vbroadcasti32x4 (%rcx),%zmm0 1620 vpxorq %zmm0,%zmm1,%zmm1 1621 vpxorq %zmm0,%zmm2,%zmm2 1622 vbroadcasti32x4 16(%rcx),%zmm0 1623 vaesdec %zmm0,%zmm1,%zmm1 1624 vaesdec %zmm0,%zmm2,%zmm2 1625 1626 1627 vbroadcasti32x4 32(%rcx),%zmm0 1628 vaesdec %zmm0,%zmm1,%zmm1 1629 vaesdec %zmm0,%zmm2,%zmm2 1630 1631 1632 vbroadcasti32x4 48(%rcx),%zmm0 1633 vaesdec %zmm0,%zmm1,%zmm1 1634 vaesdec %zmm0,%zmm2,%zmm2 1635 1636 vbroadcasti32x4 64(%rcx),%zmm0 1637 vaesdec %zmm0,%zmm1,%zmm1 1638 vaesdec %zmm0,%zmm2,%zmm2 1639 1640 1641 vbroadcasti32x4 80(%rcx),%zmm0 1642 vaesdec %zmm0,%zmm1,%zmm1 1643 vaesdec %zmm0,%zmm2,%zmm2 1644 1645 1646 vbroadcasti32x4 96(%rcx),%zmm0 1647 vaesdec %zmm0,%zmm1,%zmm1 1648 vaesdec %zmm0,%zmm2,%zmm2 1649 1650 1651 vbroadcasti32x4 112(%rcx),%zmm0 1652 vaesdec %zmm0,%zmm1,%zmm1 1653 vaesdec %zmm0,%zmm2,%zmm2 1654 1655 1656 vbroadcasti32x4 128(%rcx),%zmm0 1657 vaesdec %zmm0,%zmm1,%zmm1 1658 vaesdec %zmm0,%zmm2,%zmm2 1659 1660 1661 vbroadcasti32x4 144(%rcx),%zmm0 1662 vaesdec %zmm0,%zmm1,%zmm1 1663 vaesdec %zmm0,%zmm2,%zmm2 1664 1665 1666 vbroadcasti32x4 160(%rcx),%zmm0 1667 vaesdeclast %zmm0,%zmm1,%zmm1 1668 vaesdeclast %zmm0,%zmm2,%zmm2 1669 1670 vpxorq %zmm9,%zmm1,%zmm1 1671 vpxorq %zmm10,%zmm2,%zmm2 1672 1673 1674 vmovdqa32 %zmm15,%zmm9 1675 vmovdqa32 %zmm16,%zmm10 1676 vmovdqu8 %zmm1,(%rsi) 1677 addq $0x40,%rsi 1678 vextracti32x4 $0x3,%zmm1,%xmm8 1679 vmovdqa %xmm12,%xmm0 1680 jmp .L_steal_cipher_amivrujEyduiFoi 1681 1682.L_done_4_remain_amivrujEyduiFoi: 1683 1684 vpxorq %zmm9,%zmm1,%zmm1 1685 vpxorq %zmm10,%zmm2,%zmm2 1686 1687 1688 vbroadcasti32x4 (%rcx),%zmm0 1689 vpxorq %zmm0,%zmm1,%zmm1 1690 vpxorq %zmm0,%zmm2,%zmm2 1691 vbroadcasti32x4 16(%rcx),%zmm0 1692 vaesdec %zmm0,%zmm1,%zmm1 1693 vaesdec %zmm0,%zmm2,%zmm2 1694 1695 1696 vbroadcasti32x4 32(%rcx),%zmm0 1697 vaesdec %zmm0,%zmm1,%zmm1 1698 vaesdec %zmm0,%zmm2,%zmm2 1699 1700 1701 vbroadcasti32x4 48(%rcx),%zmm0 1702 vaesdec %zmm0,%zmm1,%zmm1 1703 vaesdec %zmm0,%zmm2,%zmm2 1704 1705 vbroadcasti32x4 64(%rcx),%zmm0 1706 vaesdec %zmm0,%zmm1,%zmm1 1707 vaesdec %zmm0,%zmm2,%zmm2 1708 1709 1710 vbroadcasti32x4 80(%rcx),%zmm0 1711 vaesdec %zmm0,%zmm1,%zmm1 1712 vaesdec %zmm0,%zmm2,%zmm2 1713 1714 1715 vbroadcasti32x4 96(%rcx),%zmm0 1716 vaesdec %zmm0,%zmm1,%zmm1 1717 vaesdec %zmm0,%zmm2,%zmm2 1718 1719 1720 vbroadcasti32x4 112(%rcx),%zmm0 1721 vaesdec %zmm0,%zmm1,%zmm1 1722 vaesdec %zmm0,%zmm2,%zmm2 1723 1724 1725 vbroadcasti32x4 128(%rcx),%zmm0 1726 vaesdec %zmm0,%zmm1,%zmm1 1727 vaesdec %zmm0,%zmm2,%zmm2 1728 1729 1730 vbroadcasti32x4 144(%rcx),%zmm0 1731 vaesdec %zmm0,%zmm1,%zmm1 1732 vaesdec %zmm0,%zmm2,%zmm2 1733 1734 1735 vbroadcasti32x4 160(%rcx),%zmm0 1736 vaesdeclast %zmm0,%zmm1,%zmm1 1737 vaesdeclast %zmm0,%zmm2,%zmm2 1738 1739 vpxorq %zmm9,%zmm1,%zmm1 1740 vpxorq %zmm10,%zmm2,%zmm2 1741 1742 1743 vmovdqa32 %zmm15,%zmm9 1744 vmovdqa32 %zmm16,%zmm10 1745 vmovdqu8 %zmm1,(%rsi) 1746 jmp .L_ret_amivrujEyduiFoi 1747 1748.L_remaining_num_blocks_is_3_amivrujEyduiFoi: 1749 vmovdqu (%rdi),%xmm1 1750 vmovdqu 16(%rdi),%xmm2 1751 vmovdqu 32(%rdi),%xmm3 1752 addq $0x30,%rdi 1753 andq $0xf,%rdx 1754 je .L_done_3_remain_amivrujEyduiFoi 1755 vextracti32x4 $0x2,%zmm9,%xmm13 1756 vextracti32x4 $0x1,%zmm9,%xmm10 1757 vextracti32x4 $0x3,%zmm9,%xmm11 1758 vpxor %xmm9,%xmm1,%xmm1 1759 vpxor %xmm10,%xmm2,%xmm2 1760 vpxor %xmm11,%xmm3,%xmm3 1761 vmovdqu (%rcx),%xmm0 1762 vpxor %xmm0,%xmm1,%xmm1 1763 vpxor %xmm0,%xmm2,%xmm2 1764 vpxor %xmm0,%xmm3,%xmm3 1765 vmovdqu 16(%rcx),%xmm0 1766 vaesdec %xmm0,%xmm1,%xmm1 1767 vaesdec %xmm0,%xmm2,%xmm2 1768 vaesdec %xmm0,%xmm3,%xmm3 1769 vmovdqu 32(%rcx),%xmm0 1770 vaesdec %xmm0,%xmm1,%xmm1 1771 vaesdec %xmm0,%xmm2,%xmm2 1772 vaesdec %xmm0,%xmm3,%xmm3 1773 vmovdqu 48(%rcx),%xmm0 1774 vaesdec %xmm0,%xmm1,%xmm1 1775 vaesdec %xmm0,%xmm2,%xmm2 1776 vaesdec %xmm0,%xmm3,%xmm3 1777 vmovdqu 64(%rcx),%xmm0 1778 vaesdec %xmm0,%xmm1,%xmm1 1779 vaesdec %xmm0,%xmm2,%xmm2 1780 vaesdec %xmm0,%xmm3,%xmm3 1781 vmovdqu 80(%rcx),%xmm0 1782 vaesdec %xmm0,%xmm1,%xmm1 1783 vaesdec %xmm0,%xmm2,%xmm2 1784 vaesdec %xmm0,%xmm3,%xmm3 1785 vmovdqu 96(%rcx),%xmm0 1786 vaesdec %xmm0,%xmm1,%xmm1 1787 vaesdec %xmm0,%xmm2,%xmm2 1788 vaesdec %xmm0,%xmm3,%xmm3 1789 vmovdqu 112(%rcx),%xmm0 1790 vaesdec %xmm0,%xmm1,%xmm1 1791 vaesdec %xmm0,%xmm2,%xmm2 1792 vaesdec %xmm0,%xmm3,%xmm3 1793 vmovdqu 128(%rcx),%xmm0 1794 vaesdec %xmm0,%xmm1,%xmm1 1795 vaesdec %xmm0,%xmm2,%xmm2 1796 vaesdec %xmm0,%xmm3,%xmm3 1797 vmovdqu 144(%rcx),%xmm0 1798 vaesdec %xmm0,%xmm1,%xmm1 1799 vaesdec %xmm0,%xmm2,%xmm2 1800 vaesdec %xmm0,%xmm3,%xmm3 1801 vmovdqu 160(%rcx),%xmm0 1802 vaesdeclast %xmm0,%xmm1,%xmm1 1803 vaesdeclast %xmm0,%xmm2,%xmm2 1804 vaesdeclast %xmm0,%xmm3,%xmm3 1805 vpxor %xmm9,%xmm1,%xmm1 1806 vpxor %xmm10,%xmm2,%xmm2 1807 vpxor %xmm11,%xmm3,%xmm3 1808 vmovdqu %xmm1,(%rsi) 1809 vmovdqu %xmm2,16(%rsi) 1810 vmovdqu %xmm3,32(%rsi) 1811 addq $0x30,%rsi 1812 vmovdqa %xmm3,%xmm8 1813 vmovdqa %xmm13,%xmm0 1814 jmp .L_steal_cipher_amivrujEyduiFoi 1815 1816.L_done_3_remain_amivrujEyduiFoi: 1817 vextracti32x4 $0x1,%zmm9,%xmm10 1818 vextracti32x4 $0x2,%zmm9,%xmm11 1819 vpxor %xmm9,%xmm1,%xmm1 1820 vpxor %xmm10,%xmm2,%xmm2 1821 vpxor %xmm11,%xmm3,%xmm3 1822 vmovdqu (%rcx),%xmm0 1823 vpxor %xmm0,%xmm1,%xmm1 1824 vpxor %xmm0,%xmm2,%xmm2 1825 vpxor %xmm0,%xmm3,%xmm3 1826 vmovdqu 16(%rcx),%xmm0 1827 vaesdec %xmm0,%xmm1,%xmm1 1828 vaesdec %xmm0,%xmm2,%xmm2 1829 vaesdec %xmm0,%xmm3,%xmm3 1830 vmovdqu 32(%rcx),%xmm0 1831 vaesdec %xmm0,%xmm1,%xmm1 1832 vaesdec %xmm0,%xmm2,%xmm2 1833 vaesdec %xmm0,%xmm3,%xmm3 1834 vmovdqu 48(%rcx),%xmm0 1835 vaesdec %xmm0,%xmm1,%xmm1 1836 vaesdec %xmm0,%xmm2,%xmm2 1837 vaesdec %xmm0,%xmm3,%xmm3 1838 vmovdqu 64(%rcx),%xmm0 1839 vaesdec %xmm0,%xmm1,%xmm1 1840 vaesdec %xmm0,%xmm2,%xmm2 1841 vaesdec %xmm0,%xmm3,%xmm3 1842 vmovdqu 80(%rcx),%xmm0 1843 vaesdec %xmm0,%xmm1,%xmm1 1844 vaesdec %xmm0,%xmm2,%xmm2 1845 vaesdec %xmm0,%xmm3,%xmm3 1846 vmovdqu 96(%rcx),%xmm0 1847 vaesdec %xmm0,%xmm1,%xmm1 1848 vaesdec %xmm0,%xmm2,%xmm2 1849 vaesdec %xmm0,%xmm3,%xmm3 1850 vmovdqu 112(%rcx),%xmm0 1851 vaesdec %xmm0,%xmm1,%xmm1 1852 vaesdec %xmm0,%xmm2,%xmm2 1853 vaesdec %xmm0,%xmm3,%xmm3 1854 vmovdqu 128(%rcx),%xmm0 1855 vaesdec %xmm0,%xmm1,%xmm1 1856 vaesdec %xmm0,%xmm2,%xmm2 1857 vaesdec %xmm0,%xmm3,%xmm3 1858 vmovdqu 144(%rcx),%xmm0 1859 vaesdec %xmm0,%xmm1,%xmm1 1860 vaesdec %xmm0,%xmm2,%xmm2 1861 vaesdec %xmm0,%xmm3,%xmm3 1862 vmovdqu 160(%rcx),%xmm0 1863 vaesdeclast %xmm0,%xmm1,%xmm1 1864 vaesdeclast %xmm0,%xmm2,%xmm2 1865 vaesdeclast %xmm0,%xmm3,%xmm3 1866 vpxor %xmm9,%xmm1,%xmm1 1867 vpxor %xmm10,%xmm2,%xmm2 1868 vpxor %xmm11,%xmm3,%xmm3 1869 vmovdqu %xmm1,(%rsi) 1870 vmovdqu %xmm2,16(%rsi) 1871 vmovdqu %xmm3,32(%rsi) 1872 jmp .L_ret_amivrujEyduiFoi 1873 1874.L_remaining_num_blocks_is_2_amivrujEyduiFoi: 1875 vmovdqu (%rdi),%xmm1 1876 vmovdqu 16(%rdi),%xmm2 1877 addq $0x20,%rdi 1878 andq $0xf,%rdx 1879 je .L_done_2_remain_amivrujEyduiFoi 1880 vextracti32x4 $0x2,%zmm9,%xmm10 1881 vextracti32x4 $0x1,%zmm9,%xmm12 1882 vpxor %xmm9,%xmm1,%xmm1 1883 vpxor %xmm10,%xmm2,%xmm2 1884 vmovdqu (%rcx),%xmm0 1885 vpxor %xmm0,%xmm1,%xmm1 1886 vpxor %xmm0,%xmm2,%xmm2 1887 vmovdqu 16(%rcx),%xmm0 1888 vaesdec %xmm0,%xmm1,%xmm1 1889 vaesdec %xmm0,%xmm2,%xmm2 1890 vmovdqu 32(%rcx),%xmm0 1891 vaesdec %xmm0,%xmm1,%xmm1 1892 vaesdec %xmm0,%xmm2,%xmm2 1893 vmovdqu 48(%rcx),%xmm0 1894 vaesdec %xmm0,%xmm1,%xmm1 1895 vaesdec %xmm0,%xmm2,%xmm2 1896 vmovdqu 64(%rcx),%xmm0 1897 vaesdec %xmm0,%xmm1,%xmm1 1898 vaesdec %xmm0,%xmm2,%xmm2 1899 vmovdqu 80(%rcx),%xmm0 1900 vaesdec %xmm0,%xmm1,%xmm1 1901 vaesdec %xmm0,%xmm2,%xmm2 1902 vmovdqu 96(%rcx),%xmm0 1903 vaesdec %xmm0,%xmm1,%xmm1 1904 vaesdec %xmm0,%xmm2,%xmm2 1905 vmovdqu 112(%rcx),%xmm0 1906 vaesdec %xmm0,%xmm1,%xmm1 1907 vaesdec %xmm0,%xmm2,%xmm2 1908 vmovdqu 128(%rcx),%xmm0 1909 vaesdec %xmm0,%xmm1,%xmm1 1910 vaesdec %xmm0,%xmm2,%xmm2 1911 vmovdqu 144(%rcx),%xmm0 1912 vaesdec %xmm0,%xmm1,%xmm1 1913 vaesdec %xmm0,%xmm2,%xmm2 1914 vmovdqu 160(%rcx),%xmm0 1915 vaesdeclast %xmm0,%xmm1,%xmm1 1916 vaesdeclast %xmm0,%xmm2,%xmm2 1917 vpxor %xmm9,%xmm1,%xmm1 1918 vpxor %xmm10,%xmm2,%xmm2 1919 vmovdqu %xmm1,(%rsi) 1920 vmovdqu %xmm2,16(%rsi) 1921 addq $0x20,%rsi 1922 vmovdqa %xmm2,%xmm8 1923 vmovdqa %xmm12,%xmm0 1924 jmp .L_steal_cipher_amivrujEyduiFoi 1925 1926.L_done_2_remain_amivrujEyduiFoi: 1927 vextracti32x4 $0x1,%zmm9,%xmm10 1928 vpxor %xmm9,%xmm1,%xmm1 1929 vpxor %xmm10,%xmm2,%xmm2 1930 vmovdqu (%rcx),%xmm0 1931 vpxor %xmm0,%xmm1,%xmm1 1932 vpxor %xmm0,%xmm2,%xmm2 1933 vmovdqu 16(%rcx),%xmm0 1934 vaesdec %xmm0,%xmm1,%xmm1 1935 vaesdec %xmm0,%xmm2,%xmm2 1936 vmovdqu 32(%rcx),%xmm0 1937 vaesdec %xmm0,%xmm1,%xmm1 1938 vaesdec %xmm0,%xmm2,%xmm2 1939 vmovdqu 48(%rcx),%xmm0 1940 vaesdec %xmm0,%xmm1,%xmm1 1941 vaesdec %xmm0,%xmm2,%xmm2 1942 vmovdqu 64(%rcx),%xmm0 1943 vaesdec %xmm0,%xmm1,%xmm1 1944 vaesdec %xmm0,%xmm2,%xmm2 1945 vmovdqu 80(%rcx),%xmm0 1946 vaesdec %xmm0,%xmm1,%xmm1 1947 vaesdec %xmm0,%xmm2,%xmm2 1948 vmovdqu 96(%rcx),%xmm0 1949 vaesdec %xmm0,%xmm1,%xmm1 1950 vaesdec %xmm0,%xmm2,%xmm2 1951 vmovdqu 112(%rcx),%xmm0 1952 vaesdec %xmm0,%xmm1,%xmm1 1953 vaesdec %xmm0,%xmm2,%xmm2 1954 vmovdqu 128(%rcx),%xmm0 1955 vaesdec %xmm0,%xmm1,%xmm1 1956 vaesdec %xmm0,%xmm2,%xmm2 1957 vmovdqu 144(%rcx),%xmm0 1958 vaesdec %xmm0,%xmm1,%xmm1 1959 vaesdec %xmm0,%xmm2,%xmm2 1960 vmovdqu 160(%rcx),%xmm0 1961 vaesdeclast %xmm0,%xmm1,%xmm1 1962 vaesdeclast %xmm0,%xmm2,%xmm2 1963 vpxor %xmm9,%xmm1,%xmm1 1964 vpxor %xmm10,%xmm2,%xmm2 1965 vmovdqu %xmm1,(%rsi) 1966 vmovdqu %xmm2,16(%rsi) 1967 jmp .L_ret_amivrujEyduiFoi 1968 1969.L_remaining_num_blocks_is_1_amivrujEyduiFoi: 1970 vmovdqu (%rdi),%xmm1 1971 addq $0x10,%rdi 1972 andq $0xf,%rdx 1973 je .L_done_1_remain_amivrujEyduiFoi 1974 vextracti32x4 $0x1,%zmm9,%xmm11 1975 vpxor %xmm11,%xmm1,%xmm1 1976 vmovdqu (%rcx),%xmm0 1977 vpxor %xmm0,%xmm1,%xmm1 1978 vmovdqu 16(%rcx),%xmm0 1979 vaesdec %xmm0,%xmm1,%xmm1 1980 vmovdqu 32(%rcx),%xmm0 1981 vaesdec %xmm0,%xmm1,%xmm1 1982 vmovdqu 48(%rcx),%xmm0 1983 vaesdec %xmm0,%xmm1,%xmm1 1984 vmovdqu 64(%rcx),%xmm0 1985 vaesdec %xmm0,%xmm1,%xmm1 1986 vmovdqu 80(%rcx),%xmm0 1987 vaesdec %xmm0,%xmm1,%xmm1 1988 vmovdqu 96(%rcx),%xmm0 1989 vaesdec %xmm0,%xmm1,%xmm1 1990 vmovdqu 112(%rcx),%xmm0 1991 vaesdec %xmm0,%xmm1,%xmm1 1992 vmovdqu 128(%rcx),%xmm0 1993 vaesdec %xmm0,%xmm1,%xmm1 1994 vmovdqu 144(%rcx),%xmm0 1995 vaesdec %xmm0,%xmm1,%xmm1 1996 vmovdqu 160(%rcx),%xmm0 1997 vaesdeclast %xmm0,%xmm1,%xmm1 1998 vpxor %xmm11,%xmm1,%xmm1 1999 vmovdqu %xmm1,(%rsi) 2000 addq $0x10,%rsi 2001 vmovdqa %xmm1,%xmm8 2002 vmovdqa %xmm9,%xmm0 2003 jmp .L_steal_cipher_amivrujEyduiFoi 2004 2005.L_done_1_remain_amivrujEyduiFoi: 2006 vpxor %xmm9,%xmm1,%xmm1 2007 vmovdqu (%rcx),%xmm0 2008 vpxor %xmm0,%xmm1,%xmm1 2009 vmovdqu 16(%rcx),%xmm0 2010 vaesdec %xmm0,%xmm1,%xmm1 2011 vmovdqu 32(%rcx),%xmm0 2012 vaesdec %xmm0,%xmm1,%xmm1 2013 vmovdqu 48(%rcx),%xmm0 2014 vaesdec %xmm0,%xmm1,%xmm1 2015 vmovdqu 64(%rcx),%xmm0 2016 vaesdec %xmm0,%xmm1,%xmm1 2017 vmovdqu 80(%rcx),%xmm0 2018 vaesdec %xmm0,%xmm1,%xmm1 2019 vmovdqu 96(%rcx),%xmm0 2020 vaesdec %xmm0,%xmm1,%xmm1 2021 vmovdqu 112(%rcx),%xmm0 2022 vaesdec %xmm0,%xmm1,%xmm1 2023 vmovdqu 128(%rcx),%xmm0 2024 vaesdec %xmm0,%xmm1,%xmm1 2025 vmovdqu 144(%rcx),%xmm0 2026 vaesdec %xmm0,%xmm1,%xmm1 2027 vmovdqu 160(%rcx),%xmm0 2028 vaesdeclast %xmm0,%xmm1,%xmm1 2029 vpxor %xmm9,%xmm1,%xmm1 2030 vmovdqu %xmm1,(%rsi) 2031 jmp .L_ret_amivrujEyduiFoi 2032 2033.L_start_by16_amivrujEyduiFoi: 2034 vbroadcasti32x4 (%rsp),%zmm0 2035 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 2036 movq $0xaa,%r8 2037 kmovq %r8,%k2 2038 2039 2040 vpshufb %zmm8,%zmm0,%zmm1 2041 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 2042 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 2043 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 2044 vpxorq %zmm2,%zmm4,%zmm4{%k2} 2045 vpxord %zmm4,%zmm3,%zmm9 2046 2047 2048 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 2049 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 2050 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 2051 vpxorq %zmm6,%zmm5,%zmm5{%k2} 2052 vpxord %zmm5,%zmm7,%zmm10 2053 2054 2055 vpsrldq $0xf,%zmm9,%zmm13 2056 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2057 vpslldq $0x1,%zmm9,%zmm11 2058 vpxord %zmm14,%zmm11,%zmm11 2059 2060 vpsrldq $0xf,%zmm10,%zmm15 2061 vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 2062 vpslldq $0x1,%zmm10,%zmm12 2063 vpxord %zmm16,%zmm12,%zmm12 2064 2065.L_main_loop_run_16_amivrujEyduiFoi: 2066 vmovdqu8 (%rdi),%zmm1 2067 vmovdqu8 64(%rdi),%zmm2 2068 vmovdqu8 128(%rdi),%zmm3 2069 vmovdqu8 192(%rdi),%zmm4 2070 vmovdqu8 240(%rdi),%xmm5 2071 addq $0x100,%rdi 2072 vpxorq %zmm9,%zmm1,%zmm1 2073 vpxorq %zmm10,%zmm2,%zmm2 2074 vpxorq %zmm11,%zmm3,%zmm3 2075 vpxorq %zmm12,%zmm4,%zmm4 2076 vbroadcasti32x4 (%rcx),%zmm0 2077 vpxorq %zmm0,%zmm1,%zmm1 2078 vpxorq %zmm0,%zmm2,%zmm2 2079 vpxorq %zmm0,%zmm3,%zmm3 2080 vpxorq %zmm0,%zmm4,%zmm4 2081 vpsrldq $0xf,%zmm11,%zmm13 2082 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2083 vpslldq $0x1,%zmm11,%zmm15 2084 vpxord %zmm14,%zmm15,%zmm15 2085 vbroadcasti32x4 16(%rcx),%zmm0 2086 vaesdec %zmm0,%zmm1,%zmm1 2087 vaesdec %zmm0,%zmm2,%zmm2 2088 vaesdec %zmm0,%zmm3,%zmm3 2089 vaesdec %zmm0,%zmm4,%zmm4 2090 vbroadcasti32x4 32(%rcx),%zmm0 2091 vaesdec %zmm0,%zmm1,%zmm1 2092 vaesdec %zmm0,%zmm2,%zmm2 2093 vaesdec %zmm0,%zmm3,%zmm3 2094 vaesdec %zmm0,%zmm4,%zmm4 2095 vbroadcasti32x4 48(%rcx),%zmm0 2096 vaesdec %zmm0,%zmm1,%zmm1 2097 vaesdec %zmm0,%zmm2,%zmm2 2098 vaesdec %zmm0,%zmm3,%zmm3 2099 vaesdec %zmm0,%zmm4,%zmm4 2100 vpsrldq $0xf,%zmm12,%zmm13 2101 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2102 vpslldq $0x1,%zmm12,%zmm16 2103 vpxord %zmm14,%zmm16,%zmm16 2104 vbroadcasti32x4 64(%rcx),%zmm0 2105 vaesdec %zmm0,%zmm1,%zmm1 2106 vaesdec %zmm0,%zmm2,%zmm2 2107 vaesdec %zmm0,%zmm3,%zmm3 2108 vaesdec %zmm0,%zmm4,%zmm4 2109 vbroadcasti32x4 80(%rcx),%zmm0 2110 vaesdec %zmm0,%zmm1,%zmm1 2111 vaesdec %zmm0,%zmm2,%zmm2 2112 vaesdec %zmm0,%zmm3,%zmm3 2113 vaesdec %zmm0,%zmm4,%zmm4 2114 vbroadcasti32x4 96(%rcx),%zmm0 2115 vaesdec %zmm0,%zmm1,%zmm1 2116 vaesdec %zmm0,%zmm2,%zmm2 2117 vaesdec %zmm0,%zmm3,%zmm3 2118 vaesdec %zmm0,%zmm4,%zmm4 2119 vpsrldq $0xf,%zmm15,%zmm13 2120 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2121 vpslldq $0x1,%zmm15,%zmm17 2122 vpxord %zmm14,%zmm17,%zmm17 2123 vbroadcasti32x4 112(%rcx),%zmm0 2124 vaesdec %zmm0,%zmm1,%zmm1 2125 vaesdec %zmm0,%zmm2,%zmm2 2126 vaesdec %zmm0,%zmm3,%zmm3 2127 vaesdec %zmm0,%zmm4,%zmm4 2128 vbroadcasti32x4 128(%rcx),%zmm0 2129 vaesdec %zmm0,%zmm1,%zmm1 2130 vaesdec %zmm0,%zmm2,%zmm2 2131 vaesdec %zmm0,%zmm3,%zmm3 2132 vaesdec %zmm0,%zmm4,%zmm4 2133 vbroadcasti32x4 144(%rcx),%zmm0 2134 vaesdec %zmm0,%zmm1,%zmm1 2135 vaesdec %zmm0,%zmm2,%zmm2 2136 vaesdec %zmm0,%zmm3,%zmm3 2137 vaesdec %zmm0,%zmm4,%zmm4 2138 vpsrldq $0xf,%zmm16,%zmm13 2139 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2140 vpslldq $0x1,%zmm16,%zmm18 2141 vpxord %zmm14,%zmm18,%zmm18 2142 vbroadcasti32x4 160(%rcx),%zmm0 2143 vaesdeclast %zmm0,%zmm1,%zmm1 2144 vaesdeclast %zmm0,%zmm2,%zmm2 2145 vaesdeclast %zmm0,%zmm3,%zmm3 2146 vaesdeclast %zmm0,%zmm4,%zmm4 2147 vpxorq %zmm9,%zmm1,%zmm1 2148 vpxorq %zmm10,%zmm2,%zmm2 2149 vpxorq %zmm11,%zmm3,%zmm3 2150 vpxorq %zmm12,%zmm4,%zmm4 2151 2152 vmovdqa32 %zmm15,%zmm9 2153 vmovdqa32 %zmm16,%zmm10 2154 vmovdqa32 %zmm17,%zmm11 2155 vmovdqa32 %zmm18,%zmm12 2156 vmovdqu8 %zmm1,(%rsi) 2157 vmovdqu8 %zmm2,64(%rsi) 2158 vmovdqu8 %zmm3,128(%rsi) 2159 vmovdqu8 %zmm4,192(%rsi) 2160 addq $0x100,%rsi 2161 subq $0x100,%rdx 2162 cmpq $0x100,%rdx 2163 jge .L_main_loop_run_16_amivrujEyduiFoi 2164 2165 cmpq $0x80,%rdx 2166 jge .L_main_loop_run_8_amivrujEyduiFoi 2167 jmp .L_do_n_blocks_amivrujEyduiFoi 2168 2169.L_start_by8_amivrujEyduiFoi: 2170 2171 vbroadcasti32x4 (%rsp),%zmm0 2172 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 2173 movq $0xaa,%r8 2174 kmovq %r8,%k2 2175 2176 2177 vpshufb %zmm8,%zmm0,%zmm1 2178 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 2179 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 2180 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 2181 vpxorq %zmm2,%zmm4,%zmm4{%k2} 2182 vpxord %zmm4,%zmm3,%zmm9 2183 2184 2185 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 2186 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 2187 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 2188 vpxorq %zmm6,%zmm5,%zmm5{%k2} 2189 vpxord %zmm5,%zmm7,%zmm10 2190 2191.L_main_loop_run_8_amivrujEyduiFoi: 2192 vmovdqu8 (%rdi),%zmm1 2193 vmovdqu8 64(%rdi),%zmm2 2194 vmovdqu8 112(%rdi),%xmm5 2195 addq $0x80,%rdi 2196 2197 vpxorq %zmm9,%zmm1,%zmm1 2198 vpxorq %zmm10,%zmm2,%zmm2 2199 2200 2201 vbroadcasti32x4 (%rcx),%zmm0 2202 vpxorq %zmm0,%zmm1,%zmm1 2203 vpxorq %zmm0,%zmm2,%zmm2 2204 vpsrldq $0xf,%zmm9,%zmm13 2205 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2206 vpslldq $0x1,%zmm9,%zmm15 2207 vpxord %zmm14,%zmm15,%zmm15 2208 vbroadcasti32x4 16(%rcx),%zmm0 2209 vaesdec %zmm0,%zmm1,%zmm1 2210 vaesdec %zmm0,%zmm2,%zmm2 2211 2212 2213 vbroadcasti32x4 32(%rcx),%zmm0 2214 vaesdec %zmm0,%zmm1,%zmm1 2215 vaesdec %zmm0,%zmm2,%zmm2 2216 2217 2218 vbroadcasti32x4 48(%rcx),%zmm0 2219 vaesdec %zmm0,%zmm1,%zmm1 2220 vaesdec %zmm0,%zmm2,%zmm2 2221 vpsrldq $0xf,%zmm10,%zmm13 2222 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 2223 vpslldq $0x1,%zmm10,%zmm16 2224 vpxord %zmm14,%zmm16,%zmm16 2225 2226 vbroadcasti32x4 64(%rcx),%zmm0 2227 vaesdec %zmm0,%zmm1,%zmm1 2228 vaesdec %zmm0,%zmm2,%zmm2 2229 2230 2231 vbroadcasti32x4 80(%rcx),%zmm0 2232 vaesdec %zmm0,%zmm1,%zmm1 2233 vaesdec %zmm0,%zmm2,%zmm2 2234 2235 2236 vbroadcasti32x4 96(%rcx),%zmm0 2237 vaesdec %zmm0,%zmm1,%zmm1 2238 vaesdec %zmm0,%zmm2,%zmm2 2239 2240 2241 vbroadcasti32x4 112(%rcx),%zmm0 2242 vaesdec %zmm0,%zmm1,%zmm1 2243 vaesdec %zmm0,%zmm2,%zmm2 2244 2245 2246 vbroadcasti32x4 128(%rcx),%zmm0 2247 vaesdec %zmm0,%zmm1,%zmm1 2248 vaesdec %zmm0,%zmm2,%zmm2 2249 2250 2251 vbroadcasti32x4 144(%rcx),%zmm0 2252 vaesdec %zmm0,%zmm1,%zmm1 2253 vaesdec %zmm0,%zmm2,%zmm2 2254 2255 2256 vbroadcasti32x4 160(%rcx),%zmm0 2257 vaesdeclast %zmm0,%zmm1,%zmm1 2258 vaesdeclast %zmm0,%zmm2,%zmm2 2259 2260 vpxorq %zmm9,%zmm1,%zmm1 2261 vpxorq %zmm10,%zmm2,%zmm2 2262 2263 2264 vmovdqa32 %zmm15,%zmm9 2265 vmovdqa32 %zmm16,%zmm10 2266 vmovdqu8 %zmm1,(%rsi) 2267 vmovdqu8 %zmm2,64(%rsi) 2268 addq $0x80,%rsi 2269 subq $0x80,%rdx 2270 cmpq $0x80,%rdx 2271 jge .L_main_loop_run_8_amivrujEyduiFoi 2272 jmp .L_do_n_blocks_amivrujEyduiFoi 2273 2274.L_steal_cipher_amivrujEyduiFoi: 2275 2276 vmovdqa %xmm8,%xmm2 2277 2278 2279 leaq vpshufb_shf_table(%rip),%rax 2280 vmovdqu (%rax,%rdx,1),%xmm10 2281 vpshufb %xmm10,%xmm8,%xmm8 2282 2283 2284 vmovdqu -16(%rdi,%rdx,1),%xmm3 2285 vmovdqu %xmm8,-16(%rsi,%rdx,1) 2286 2287 2288 leaq vpshufb_shf_table(%rip),%rax 2289 addq $16,%rax 2290 subq %rdx,%rax 2291 vmovdqu (%rax),%xmm10 2292 vpxor mask1(%rip),%xmm10,%xmm10 2293 vpshufb %xmm10,%xmm3,%xmm3 2294 2295 vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 2296 2297 2298 vpxor %xmm0,%xmm3,%xmm8 2299 2300 2301 vpxor (%rcx),%xmm8,%xmm8 2302 vaesdec 16(%rcx),%xmm8,%xmm8 2303 vaesdec 32(%rcx),%xmm8,%xmm8 2304 vaesdec 48(%rcx),%xmm8,%xmm8 2305 vaesdec 64(%rcx),%xmm8,%xmm8 2306 vaesdec 80(%rcx),%xmm8,%xmm8 2307 vaesdec 96(%rcx),%xmm8,%xmm8 2308 vaesdec 112(%rcx),%xmm8,%xmm8 2309 vaesdec 128(%rcx),%xmm8,%xmm8 2310 vaesdec 144(%rcx),%xmm8,%xmm8 2311 vaesdeclast 160(%rcx),%xmm8,%xmm8 2312 2313 vpxor %xmm0,%xmm8,%xmm8 2314 2315.L_done_amivrujEyduiFoi: 2316 2317 vmovdqu %xmm8,-16(%rsi) 2318.L_ret_amivrujEyduiFoi: 2319 movq 128(%rsp),%rbx 2320 xorq %r8,%r8 2321 movq %r8,128(%rsp) 2322 2323 vpxorq %zmm0,%zmm0,%zmm0 2324 movq %rbp,%rsp 2325 popq %rbp 2326 vzeroupper 2327 .byte 0xf3,0xc3 2328 2329.L_less_than_128_bytes_amivrujEyduiFoi: 2330 cmpq $0x10,%rdx 2331 jb .L_ret_amivrujEyduiFoi 2332 2333 movq %rdx,%r8 2334 andq $0x70,%r8 2335 cmpq $0x60,%r8 2336 je .L_num_blocks_is_6_amivrujEyduiFoi 2337 cmpq $0x50,%r8 2338 je .L_num_blocks_is_5_amivrujEyduiFoi 2339 cmpq $0x40,%r8 2340 je .L_num_blocks_is_4_amivrujEyduiFoi 2341 cmpq $0x30,%r8 2342 je .L_num_blocks_is_3_amivrujEyduiFoi 2343 cmpq $0x20,%r8 2344 je .L_num_blocks_is_2_amivrujEyduiFoi 2345 cmpq $0x10,%r8 2346 je .L_num_blocks_is_1_amivrujEyduiFoi 2347 2348.L_num_blocks_is_7_amivrujEyduiFoi: 2349 vmovdqa 0(%rsp),%xmm9 2350 movq 0(%rsp),%rax 2351 movq 8(%rsp),%rbx 2352 vmovdqu 0(%rdi),%xmm1 2353 xorq %r11,%r11 2354 shlq $1,%rax 2355 adcq %rbx,%rbx 2356 cmovcq %r10,%r11 2357 xorq %r11,%rax 2358 movq %rax,16(%rsp) 2359 movq %rbx,16 + 8(%rsp) 2360 vmovdqa 16(%rsp),%xmm10 2361 vmovdqu 16(%rdi),%xmm2 2362 xorq %r11,%r11 2363 shlq $1,%rax 2364 adcq %rbx,%rbx 2365 cmovcq %r10,%r11 2366 xorq %r11,%rax 2367 movq %rax,32(%rsp) 2368 movq %rbx,32 + 8(%rsp) 2369 vmovdqa 32(%rsp),%xmm11 2370 vmovdqu 32(%rdi),%xmm3 2371 xorq %r11,%r11 2372 shlq $1,%rax 2373 adcq %rbx,%rbx 2374 cmovcq %r10,%r11 2375 xorq %r11,%rax 2376 movq %rax,48(%rsp) 2377 movq %rbx,48 + 8(%rsp) 2378 vmovdqa 48(%rsp),%xmm12 2379 vmovdqu 48(%rdi),%xmm4 2380 xorq %r11,%r11 2381 shlq $1,%rax 2382 adcq %rbx,%rbx 2383 cmovcq %r10,%r11 2384 xorq %r11,%rax 2385 movq %rax,64(%rsp) 2386 movq %rbx,64 + 8(%rsp) 2387 vmovdqa 64(%rsp),%xmm13 2388 vmovdqu 64(%rdi),%xmm5 2389 xorq %r11,%r11 2390 shlq $1,%rax 2391 adcq %rbx,%rbx 2392 cmovcq %r10,%r11 2393 xorq %r11,%rax 2394 movq %rax,80(%rsp) 2395 movq %rbx,80 + 8(%rsp) 2396 vmovdqa 80(%rsp),%xmm14 2397 vmovdqu 80(%rdi),%xmm6 2398 xorq %r11,%r11 2399 shlq $1,%rax 2400 adcq %rbx,%rbx 2401 cmovcq %r10,%r11 2402 xorq %r11,%rax 2403 movq %rax,96(%rsp) 2404 movq %rbx,96 + 8(%rsp) 2405 vmovdqa 96(%rsp),%xmm15 2406 vmovdqu 96(%rdi),%xmm7 2407 addq $0x70,%rdi 2408 andq $0xf,%rdx 2409 je .L_done_7_amivrujEyduiFoi 2410 2411.L_steal_cipher_7_amivrujEyduiFoi: 2412 xorq %r11,%r11 2413 shlq $1,%rax 2414 adcq %rbx,%rbx 2415 cmovcq %r10,%r11 2416 xorq %r11,%rax 2417 movq %rax,16(%rsp) 2418 movq %rbx,24(%rsp) 2419 vmovdqa64 %xmm15,%xmm16 2420 vmovdqa 16(%rsp),%xmm15 2421 vpxor %xmm9,%xmm1,%xmm1 2422 vpxor %xmm10,%xmm2,%xmm2 2423 vpxor %xmm11,%xmm3,%xmm3 2424 vpxor %xmm12,%xmm4,%xmm4 2425 vpxor %xmm13,%xmm5,%xmm5 2426 vpxor %xmm14,%xmm6,%xmm6 2427 vpxor %xmm15,%xmm7,%xmm7 2428 vmovdqu (%rcx),%xmm0 2429 vpxor %xmm0,%xmm1,%xmm1 2430 vpxor %xmm0,%xmm2,%xmm2 2431 vpxor %xmm0,%xmm3,%xmm3 2432 vpxor %xmm0,%xmm4,%xmm4 2433 vpxor %xmm0,%xmm5,%xmm5 2434 vpxor %xmm0,%xmm6,%xmm6 2435 vpxor %xmm0,%xmm7,%xmm7 2436 vmovdqu 16(%rcx),%xmm0 2437 vaesdec %xmm0,%xmm1,%xmm1 2438 vaesdec %xmm0,%xmm2,%xmm2 2439 vaesdec %xmm0,%xmm3,%xmm3 2440 vaesdec %xmm0,%xmm4,%xmm4 2441 vaesdec %xmm0,%xmm5,%xmm5 2442 vaesdec %xmm0,%xmm6,%xmm6 2443 vaesdec %xmm0,%xmm7,%xmm7 2444 vmovdqu 32(%rcx),%xmm0 2445 vaesdec %xmm0,%xmm1,%xmm1 2446 vaesdec %xmm0,%xmm2,%xmm2 2447 vaesdec %xmm0,%xmm3,%xmm3 2448 vaesdec %xmm0,%xmm4,%xmm4 2449 vaesdec %xmm0,%xmm5,%xmm5 2450 vaesdec %xmm0,%xmm6,%xmm6 2451 vaesdec %xmm0,%xmm7,%xmm7 2452 vmovdqu 48(%rcx),%xmm0 2453 vaesdec %xmm0,%xmm1,%xmm1 2454 vaesdec %xmm0,%xmm2,%xmm2 2455 vaesdec %xmm0,%xmm3,%xmm3 2456 vaesdec %xmm0,%xmm4,%xmm4 2457 vaesdec %xmm0,%xmm5,%xmm5 2458 vaesdec %xmm0,%xmm6,%xmm6 2459 vaesdec %xmm0,%xmm7,%xmm7 2460 vmovdqu 64(%rcx),%xmm0 2461 vaesdec %xmm0,%xmm1,%xmm1 2462 vaesdec %xmm0,%xmm2,%xmm2 2463 vaesdec %xmm0,%xmm3,%xmm3 2464 vaesdec %xmm0,%xmm4,%xmm4 2465 vaesdec %xmm0,%xmm5,%xmm5 2466 vaesdec %xmm0,%xmm6,%xmm6 2467 vaesdec %xmm0,%xmm7,%xmm7 2468 vmovdqu 80(%rcx),%xmm0 2469 vaesdec %xmm0,%xmm1,%xmm1 2470 vaesdec %xmm0,%xmm2,%xmm2 2471 vaesdec %xmm0,%xmm3,%xmm3 2472 vaesdec %xmm0,%xmm4,%xmm4 2473 vaesdec %xmm0,%xmm5,%xmm5 2474 vaesdec %xmm0,%xmm6,%xmm6 2475 vaesdec %xmm0,%xmm7,%xmm7 2476 vmovdqu 96(%rcx),%xmm0 2477 vaesdec %xmm0,%xmm1,%xmm1 2478 vaesdec %xmm0,%xmm2,%xmm2 2479 vaesdec %xmm0,%xmm3,%xmm3 2480 vaesdec %xmm0,%xmm4,%xmm4 2481 vaesdec %xmm0,%xmm5,%xmm5 2482 vaesdec %xmm0,%xmm6,%xmm6 2483 vaesdec %xmm0,%xmm7,%xmm7 2484 vmovdqu 112(%rcx),%xmm0 2485 vaesdec %xmm0,%xmm1,%xmm1 2486 vaesdec %xmm0,%xmm2,%xmm2 2487 vaesdec %xmm0,%xmm3,%xmm3 2488 vaesdec %xmm0,%xmm4,%xmm4 2489 vaesdec %xmm0,%xmm5,%xmm5 2490 vaesdec %xmm0,%xmm6,%xmm6 2491 vaesdec %xmm0,%xmm7,%xmm7 2492 vmovdqu 128(%rcx),%xmm0 2493 vaesdec %xmm0,%xmm1,%xmm1 2494 vaesdec %xmm0,%xmm2,%xmm2 2495 vaesdec %xmm0,%xmm3,%xmm3 2496 vaesdec %xmm0,%xmm4,%xmm4 2497 vaesdec %xmm0,%xmm5,%xmm5 2498 vaesdec %xmm0,%xmm6,%xmm6 2499 vaesdec %xmm0,%xmm7,%xmm7 2500 vmovdqu 144(%rcx),%xmm0 2501 vaesdec %xmm0,%xmm1,%xmm1 2502 vaesdec %xmm0,%xmm2,%xmm2 2503 vaesdec %xmm0,%xmm3,%xmm3 2504 vaesdec %xmm0,%xmm4,%xmm4 2505 vaesdec %xmm0,%xmm5,%xmm5 2506 vaesdec %xmm0,%xmm6,%xmm6 2507 vaesdec %xmm0,%xmm7,%xmm7 2508 vmovdqu 160(%rcx),%xmm0 2509 vaesdeclast %xmm0,%xmm1,%xmm1 2510 vaesdeclast %xmm0,%xmm2,%xmm2 2511 vaesdeclast %xmm0,%xmm3,%xmm3 2512 vaesdeclast %xmm0,%xmm4,%xmm4 2513 vaesdeclast %xmm0,%xmm5,%xmm5 2514 vaesdeclast %xmm0,%xmm6,%xmm6 2515 vaesdeclast %xmm0,%xmm7,%xmm7 2516 vpxor %xmm9,%xmm1,%xmm1 2517 vpxor %xmm10,%xmm2,%xmm2 2518 vpxor %xmm11,%xmm3,%xmm3 2519 vpxor %xmm12,%xmm4,%xmm4 2520 vpxor %xmm13,%xmm5,%xmm5 2521 vpxor %xmm14,%xmm6,%xmm6 2522 vpxor %xmm15,%xmm7,%xmm7 2523 vmovdqu %xmm1,(%rsi) 2524 vmovdqu %xmm2,16(%rsi) 2525 vmovdqu %xmm3,32(%rsi) 2526 vmovdqu %xmm4,48(%rsi) 2527 vmovdqu %xmm5,64(%rsi) 2528 vmovdqu %xmm6,80(%rsi) 2529 addq $0x70,%rsi 2530 vmovdqa64 %xmm16,%xmm0 2531 vmovdqa %xmm7,%xmm8 2532 jmp .L_steal_cipher_amivrujEyduiFoi 2533 2534.L_done_7_amivrujEyduiFoi: 2535 vpxor %xmm9,%xmm1,%xmm1 2536 vpxor %xmm10,%xmm2,%xmm2 2537 vpxor %xmm11,%xmm3,%xmm3 2538 vpxor %xmm12,%xmm4,%xmm4 2539 vpxor %xmm13,%xmm5,%xmm5 2540 vpxor %xmm14,%xmm6,%xmm6 2541 vpxor %xmm15,%xmm7,%xmm7 2542 vmovdqu (%rcx),%xmm0 2543 vpxor %xmm0,%xmm1,%xmm1 2544 vpxor %xmm0,%xmm2,%xmm2 2545 vpxor %xmm0,%xmm3,%xmm3 2546 vpxor %xmm0,%xmm4,%xmm4 2547 vpxor %xmm0,%xmm5,%xmm5 2548 vpxor %xmm0,%xmm6,%xmm6 2549 vpxor %xmm0,%xmm7,%xmm7 2550 vmovdqu 16(%rcx),%xmm0 2551 vaesdec %xmm0,%xmm1,%xmm1 2552 vaesdec %xmm0,%xmm2,%xmm2 2553 vaesdec %xmm0,%xmm3,%xmm3 2554 vaesdec %xmm0,%xmm4,%xmm4 2555 vaesdec %xmm0,%xmm5,%xmm5 2556 vaesdec %xmm0,%xmm6,%xmm6 2557 vaesdec %xmm0,%xmm7,%xmm7 2558 vmovdqu 32(%rcx),%xmm0 2559 vaesdec %xmm0,%xmm1,%xmm1 2560 vaesdec %xmm0,%xmm2,%xmm2 2561 vaesdec %xmm0,%xmm3,%xmm3 2562 vaesdec %xmm0,%xmm4,%xmm4 2563 vaesdec %xmm0,%xmm5,%xmm5 2564 vaesdec %xmm0,%xmm6,%xmm6 2565 vaesdec %xmm0,%xmm7,%xmm7 2566 vmovdqu 48(%rcx),%xmm0 2567 vaesdec %xmm0,%xmm1,%xmm1 2568 vaesdec %xmm0,%xmm2,%xmm2 2569 vaesdec %xmm0,%xmm3,%xmm3 2570 vaesdec %xmm0,%xmm4,%xmm4 2571 vaesdec %xmm0,%xmm5,%xmm5 2572 vaesdec %xmm0,%xmm6,%xmm6 2573 vaesdec %xmm0,%xmm7,%xmm7 2574 vmovdqu 64(%rcx),%xmm0 2575 vaesdec %xmm0,%xmm1,%xmm1 2576 vaesdec %xmm0,%xmm2,%xmm2 2577 vaesdec %xmm0,%xmm3,%xmm3 2578 vaesdec %xmm0,%xmm4,%xmm4 2579 vaesdec %xmm0,%xmm5,%xmm5 2580 vaesdec %xmm0,%xmm6,%xmm6 2581 vaesdec %xmm0,%xmm7,%xmm7 2582 vmovdqu 80(%rcx),%xmm0 2583 vaesdec %xmm0,%xmm1,%xmm1 2584 vaesdec %xmm0,%xmm2,%xmm2 2585 vaesdec %xmm0,%xmm3,%xmm3 2586 vaesdec %xmm0,%xmm4,%xmm4 2587 vaesdec %xmm0,%xmm5,%xmm5 2588 vaesdec %xmm0,%xmm6,%xmm6 2589 vaesdec %xmm0,%xmm7,%xmm7 2590 vmovdqu 96(%rcx),%xmm0 2591 vaesdec %xmm0,%xmm1,%xmm1 2592 vaesdec %xmm0,%xmm2,%xmm2 2593 vaesdec %xmm0,%xmm3,%xmm3 2594 vaesdec %xmm0,%xmm4,%xmm4 2595 vaesdec %xmm0,%xmm5,%xmm5 2596 vaesdec %xmm0,%xmm6,%xmm6 2597 vaesdec %xmm0,%xmm7,%xmm7 2598 vmovdqu 112(%rcx),%xmm0 2599 vaesdec %xmm0,%xmm1,%xmm1 2600 vaesdec %xmm0,%xmm2,%xmm2 2601 vaesdec %xmm0,%xmm3,%xmm3 2602 vaesdec %xmm0,%xmm4,%xmm4 2603 vaesdec %xmm0,%xmm5,%xmm5 2604 vaesdec %xmm0,%xmm6,%xmm6 2605 vaesdec %xmm0,%xmm7,%xmm7 2606 vmovdqu 128(%rcx),%xmm0 2607 vaesdec %xmm0,%xmm1,%xmm1 2608 vaesdec %xmm0,%xmm2,%xmm2 2609 vaesdec %xmm0,%xmm3,%xmm3 2610 vaesdec %xmm0,%xmm4,%xmm4 2611 vaesdec %xmm0,%xmm5,%xmm5 2612 vaesdec %xmm0,%xmm6,%xmm6 2613 vaesdec %xmm0,%xmm7,%xmm7 2614 vmovdqu 144(%rcx),%xmm0 2615 vaesdec %xmm0,%xmm1,%xmm1 2616 vaesdec %xmm0,%xmm2,%xmm2 2617 vaesdec %xmm0,%xmm3,%xmm3 2618 vaesdec %xmm0,%xmm4,%xmm4 2619 vaesdec %xmm0,%xmm5,%xmm5 2620 vaesdec %xmm0,%xmm6,%xmm6 2621 vaesdec %xmm0,%xmm7,%xmm7 2622 vmovdqu 160(%rcx),%xmm0 2623 vaesdeclast %xmm0,%xmm1,%xmm1 2624 vaesdeclast %xmm0,%xmm2,%xmm2 2625 vaesdeclast %xmm0,%xmm3,%xmm3 2626 vaesdeclast %xmm0,%xmm4,%xmm4 2627 vaesdeclast %xmm0,%xmm5,%xmm5 2628 vaesdeclast %xmm0,%xmm6,%xmm6 2629 vaesdeclast %xmm0,%xmm7,%xmm7 2630 vpxor %xmm9,%xmm1,%xmm1 2631 vpxor %xmm10,%xmm2,%xmm2 2632 vpxor %xmm11,%xmm3,%xmm3 2633 vpxor %xmm12,%xmm4,%xmm4 2634 vpxor %xmm13,%xmm5,%xmm5 2635 vpxor %xmm14,%xmm6,%xmm6 2636 vpxor %xmm15,%xmm7,%xmm7 2637 vmovdqu %xmm1,(%rsi) 2638 vmovdqu %xmm2,16(%rsi) 2639 vmovdqu %xmm3,32(%rsi) 2640 vmovdqu %xmm4,48(%rsi) 2641 vmovdqu %xmm5,64(%rsi) 2642 vmovdqu %xmm6,80(%rsi) 2643 addq $0x70,%rsi 2644 vmovdqa %xmm7,%xmm8 2645 jmp .L_done_amivrujEyduiFoi 2646 2647.L_num_blocks_is_6_amivrujEyduiFoi: 2648 vmovdqa 0(%rsp),%xmm9 2649 movq 0(%rsp),%rax 2650 movq 8(%rsp),%rbx 2651 vmovdqu 0(%rdi),%xmm1 2652 xorq %r11,%r11 2653 shlq $1,%rax 2654 adcq %rbx,%rbx 2655 cmovcq %r10,%r11 2656 xorq %r11,%rax 2657 movq %rax,16(%rsp) 2658 movq %rbx,16 + 8(%rsp) 2659 vmovdqa 16(%rsp),%xmm10 2660 vmovdqu 16(%rdi),%xmm2 2661 xorq %r11,%r11 2662 shlq $1,%rax 2663 adcq %rbx,%rbx 2664 cmovcq %r10,%r11 2665 xorq %r11,%rax 2666 movq %rax,32(%rsp) 2667 movq %rbx,32 + 8(%rsp) 2668 vmovdqa 32(%rsp),%xmm11 2669 vmovdqu 32(%rdi),%xmm3 2670 xorq %r11,%r11 2671 shlq $1,%rax 2672 adcq %rbx,%rbx 2673 cmovcq %r10,%r11 2674 xorq %r11,%rax 2675 movq %rax,48(%rsp) 2676 movq %rbx,48 + 8(%rsp) 2677 vmovdqa 48(%rsp),%xmm12 2678 vmovdqu 48(%rdi),%xmm4 2679 xorq %r11,%r11 2680 shlq $1,%rax 2681 adcq %rbx,%rbx 2682 cmovcq %r10,%r11 2683 xorq %r11,%rax 2684 movq %rax,64(%rsp) 2685 movq %rbx,64 + 8(%rsp) 2686 vmovdqa 64(%rsp),%xmm13 2687 vmovdqu 64(%rdi),%xmm5 2688 xorq %r11,%r11 2689 shlq $1,%rax 2690 adcq %rbx,%rbx 2691 cmovcq %r10,%r11 2692 xorq %r11,%rax 2693 movq %rax,80(%rsp) 2694 movq %rbx,80 + 8(%rsp) 2695 vmovdqa 80(%rsp),%xmm14 2696 vmovdqu 80(%rdi),%xmm6 2697 addq $0x60,%rdi 2698 andq $0xf,%rdx 2699 je .L_done_6_amivrujEyduiFoi 2700 2701.L_steal_cipher_6_amivrujEyduiFoi: 2702 xorq %r11,%r11 2703 shlq $1,%rax 2704 adcq %rbx,%rbx 2705 cmovcq %r10,%r11 2706 xorq %r11,%rax 2707 movq %rax,16(%rsp) 2708 movq %rbx,24(%rsp) 2709 vmovdqa64 %xmm14,%xmm15 2710 vmovdqa 16(%rsp),%xmm14 2711 vpxor %xmm9,%xmm1,%xmm1 2712 vpxor %xmm10,%xmm2,%xmm2 2713 vpxor %xmm11,%xmm3,%xmm3 2714 vpxor %xmm12,%xmm4,%xmm4 2715 vpxor %xmm13,%xmm5,%xmm5 2716 vpxor %xmm14,%xmm6,%xmm6 2717 vmovdqu (%rcx),%xmm0 2718 vpxor %xmm0,%xmm1,%xmm1 2719 vpxor %xmm0,%xmm2,%xmm2 2720 vpxor %xmm0,%xmm3,%xmm3 2721 vpxor %xmm0,%xmm4,%xmm4 2722 vpxor %xmm0,%xmm5,%xmm5 2723 vpxor %xmm0,%xmm6,%xmm6 2724 vmovdqu 16(%rcx),%xmm0 2725 vaesdec %xmm0,%xmm1,%xmm1 2726 vaesdec %xmm0,%xmm2,%xmm2 2727 vaesdec %xmm0,%xmm3,%xmm3 2728 vaesdec %xmm0,%xmm4,%xmm4 2729 vaesdec %xmm0,%xmm5,%xmm5 2730 vaesdec %xmm0,%xmm6,%xmm6 2731 vmovdqu 32(%rcx),%xmm0 2732 vaesdec %xmm0,%xmm1,%xmm1 2733 vaesdec %xmm0,%xmm2,%xmm2 2734 vaesdec %xmm0,%xmm3,%xmm3 2735 vaesdec %xmm0,%xmm4,%xmm4 2736 vaesdec %xmm0,%xmm5,%xmm5 2737 vaesdec %xmm0,%xmm6,%xmm6 2738 vmovdqu 48(%rcx),%xmm0 2739 vaesdec %xmm0,%xmm1,%xmm1 2740 vaesdec %xmm0,%xmm2,%xmm2 2741 vaesdec %xmm0,%xmm3,%xmm3 2742 vaesdec %xmm0,%xmm4,%xmm4 2743 vaesdec %xmm0,%xmm5,%xmm5 2744 vaesdec %xmm0,%xmm6,%xmm6 2745 vmovdqu 64(%rcx),%xmm0 2746 vaesdec %xmm0,%xmm1,%xmm1 2747 vaesdec %xmm0,%xmm2,%xmm2 2748 vaesdec %xmm0,%xmm3,%xmm3 2749 vaesdec %xmm0,%xmm4,%xmm4 2750 vaesdec %xmm0,%xmm5,%xmm5 2751 vaesdec %xmm0,%xmm6,%xmm6 2752 vmovdqu 80(%rcx),%xmm0 2753 vaesdec %xmm0,%xmm1,%xmm1 2754 vaesdec %xmm0,%xmm2,%xmm2 2755 vaesdec %xmm0,%xmm3,%xmm3 2756 vaesdec %xmm0,%xmm4,%xmm4 2757 vaesdec %xmm0,%xmm5,%xmm5 2758 vaesdec %xmm0,%xmm6,%xmm6 2759 vmovdqu 96(%rcx),%xmm0 2760 vaesdec %xmm0,%xmm1,%xmm1 2761 vaesdec %xmm0,%xmm2,%xmm2 2762 vaesdec %xmm0,%xmm3,%xmm3 2763 vaesdec %xmm0,%xmm4,%xmm4 2764 vaesdec %xmm0,%xmm5,%xmm5 2765 vaesdec %xmm0,%xmm6,%xmm6 2766 vmovdqu 112(%rcx),%xmm0 2767 vaesdec %xmm0,%xmm1,%xmm1 2768 vaesdec %xmm0,%xmm2,%xmm2 2769 vaesdec %xmm0,%xmm3,%xmm3 2770 vaesdec %xmm0,%xmm4,%xmm4 2771 vaesdec %xmm0,%xmm5,%xmm5 2772 vaesdec %xmm0,%xmm6,%xmm6 2773 vmovdqu 128(%rcx),%xmm0 2774 vaesdec %xmm0,%xmm1,%xmm1 2775 vaesdec %xmm0,%xmm2,%xmm2 2776 vaesdec %xmm0,%xmm3,%xmm3 2777 vaesdec %xmm0,%xmm4,%xmm4 2778 vaesdec %xmm0,%xmm5,%xmm5 2779 vaesdec %xmm0,%xmm6,%xmm6 2780 vmovdqu 144(%rcx),%xmm0 2781 vaesdec %xmm0,%xmm1,%xmm1 2782 vaesdec %xmm0,%xmm2,%xmm2 2783 vaesdec %xmm0,%xmm3,%xmm3 2784 vaesdec %xmm0,%xmm4,%xmm4 2785 vaesdec %xmm0,%xmm5,%xmm5 2786 vaesdec %xmm0,%xmm6,%xmm6 2787 vmovdqu 160(%rcx),%xmm0 2788 vaesdeclast %xmm0,%xmm1,%xmm1 2789 vaesdeclast %xmm0,%xmm2,%xmm2 2790 vaesdeclast %xmm0,%xmm3,%xmm3 2791 vaesdeclast %xmm0,%xmm4,%xmm4 2792 vaesdeclast %xmm0,%xmm5,%xmm5 2793 vaesdeclast %xmm0,%xmm6,%xmm6 2794 vpxor %xmm9,%xmm1,%xmm1 2795 vpxor %xmm10,%xmm2,%xmm2 2796 vpxor %xmm11,%xmm3,%xmm3 2797 vpxor %xmm12,%xmm4,%xmm4 2798 vpxor %xmm13,%xmm5,%xmm5 2799 vpxor %xmm14,%xmm6,%xmm6 2800 vmovdqu %xmm1,(%rsi) 2801 vmovdqu %xmm2,16(%rsi) 2802 vmovdqu %xmm3,32(%rsi) 2803 vmovdqu %xmm4,48(%rsi) 2804 vmovdqu %xmm5,64(%rsi) 2805 addq $0x60,%rsi 2806 vmovdqa %xmm15,%xmm0 2807 vmovdqa %xmm6,%xmm8 2808 jmp .L_steal_cipher_amivrujEyduiFoi 2809 2810.L_done_6_amivrujEyduiFoi: 2811 vpxor %xmm9,%xmm1,%xmm1 2812 vpxor %xmm10,%xmm2,%xmm2 2813 vpxor %xmm11,%xmm3,%xmm3 2814 vpxor %xmm12,%xmm4,%xmm4 2815 vpxor %xmm13,%xmm5,%xmm5 2816 vpxor %xmm14,%xmm6,%xmm6 2817 vmovdqu (%rcx),%xmm0 2818 vpxor %xmm0,%xmm1,%xmm1 2819 vpxor %xmm0,%xmm2,%xmm2 2820 vpxor %xmm0,%xmm3,%xmm3 2821 vpxor %xmm0,%xmm4,%xmm4 2822 vpxor %xmm0,%xmm5,%xmm5 2823 vpxor %xmm0,%xmm6,%xmm6 2824 vmovdqu 16(%rcx),%xmm0 2825 vaesdec %xmm0,%xmm1,%xmm1 2826 vaesdec %xmm0,%xmm2,%xmm2 2827 vaesdec %xmm0,%xmm3,%xmm3 2828 vaesdec %xmm0,%xmm4,%xmm4 2829 vaesdec %xmm0,%xmm5,%xmm5 2830 vaesdec %xmm0,%xmm6,%xmm6 2831 vmovdqu 32(%rcx),%xmm0 2832 vaesdec %xmm0,%xmm1,%xmm1 2833 vaesdec %xmm0,%xmm2,%xmm2 2834 vaesdec %xmm0,%xmm3,%xmm3 2835 vaesdec %xmm0,%xmm4,%xmm4 2836 vaesdec %xmm0,%xmm5,%xmm5 2837 vaesdec %xmm0,%xmm6,%xmm6 2838 vmovdqu 48(%rcx),%xmm0 2839 vaesdec %xmm0,%xmm1,%xmm1 2840 vaesdec %xmm0,%xmm2,%xmm2 2841 vaesdec %xmm0,%xmm3,%xmm3 2842 vaesdec %xmm0,%xmm4,%xmm4 2843 vaesdec %xmm0,%xmm5,%xmm5 2844 vaesdec %xmm0,%xmm6,%xmm6 2845 vmovdqu 64(%rcx),%xmm0 2846 vaesdec %xmm0,%xmm1,%xmm1 2847 vaesdec %xmm0,%xmm2,%xmm2 2848 vaesdec %xmm0,%xmm3,%xmm3 2849 vaesdec %xmm0,%xmm4,%xmm4 2850 vaesdec %xmm0,%xmm5,%xmm5 2851 vaesdec %xmm0,%xmm6,%xmm6 2852 vmovdqu 80(%rcx),%xmm0 2853 vaesdec %xmm0,%xmm1,%xmm1 2854 vaesdec %xmm0,%xmm2,%xmm2 2855 vaesdec %xmm0,%xmm3,%xmm3 2856 vaesdec %xmm0,%xmm4,%xmm4 2857 vaesdec %xmm0,%xmm5,%xmm5 2858 vaesdec %xmm0,%xmm6,%xmm6 2859 vmovdqu 96(%rcx),%xmm0 2860 vaesdec %xmm0,%xmm1,%xmm1 2861 vaesdec %xmm0,%xmm2,%xmm2 2862 vaesdec %xmm0,%xmm3,%xmm3 2863 vaesdec %xmm0,%xmm4,%xmm4 2864 vaesdec %xmm0,%xmm5,%xmm5 2865 vaesdec %xmm0,%xmm6,%xmm6 2866 vmovdqu 112(%rcx),%xmm0 2867 vaesdec %xmm0,%xmm1,%xmm1 2868 vaesdec %xmm0,%xmm2,%xmm2 2869 vaesdec %xmm0,%xmm3,%xmm3 2870 vaesdec %xmm0,%xmm4,%xmm4 2871 vaesdec %xmm0,%xmm5,%xmm5 2872 vaesdec %xmm0,%xmm6,%xmm6 2873 vmovdqu 128(%rcx),%xmm0 2874 vaesdec %xmm0,%xmm1,%xmm1 2875 vaesdec %xmm0,%xmm2,%xmm2 2876 vaesdec %xmm0,%xmm3,%xmm3 2877 vaesdec %xmm0,%xmm4,%xmm4 2878 vaesdec %xmm0,%xmm5,%xmm5 2879 vaesdec %xmm0,%xmm6,%xmm6 2880 vmovdqu 144(%rcx),%xmm0 2881 vaesdec %xmm0,%xmm1,%xmm1 2882 vaesdec %xmm0,%xmm2,%xmm2 2883 vaesdec %xmm0,%xmm3,%xmm3 2884 vaesdec %xmm0,%xmm4,%xmm4 2885 vaesdec %xmm0,%xmm5,%xmm5 2886 vaesdec %xmm0,%xmm6,%xmm6 2887 vmovdqu 160(%rcx),%xmm0 2888 vaesdeclast %xmm0,%xmm1,%xmm1 2889 vaesdeclast %xmm0,%xmm2,%xmm2 2890 vaesdeclast %xmm0,%xmm3,%xmm3 2891 vaesdeclast %xmm0,%xmm4,%xmm4 2892 vaesdeclast %xmm0,%xmm5,%xmm5 2893 vaesdeclast %xmm0,%xmm6,%xmm6 2894 vpxor %xmm9,%xmm1,%xmm1 2895 vpxor %xmm10,%xmm2,%xmm2 2896 vpxor %xmm11,%xmm3,%xmm3 2897 vpxor %xmm12,%xmm4,%xmm4 2898 vpxor %xmm13,%xmm5,%xmm5 2899 vpxor %xmm14,%xmm6,%xmm6 2900 vmovdqu %xmm1,(%rsi) 2901 vmovdqu %xmm2,16(%rsi) 2902 vmovdqu %xmm3,32(%rsi) 2903 vmovdqu %xmm4,48(%rsi) 2904 vmovdqu %xmm5,64(%rsi) 2905 addq $0x60,%rsi 2906 vmovdqa %xmm6,%xmm8 2907 jmp .L_done_amivrujEyduiFoi 2908 2909.L_num_blocks_is_5_amivrujEyduiFoi: 2910 vmovdqa 0(%rsp),%xmm9 2911 movq 0(%rsp),%rax 2912 movq 8(%rsp),%rbx 2913 vmovdqu 0(%rdi),%xmm1 2914 xorq %r11,%r11 2915 shlq $1,%rax 2916 adcq %rbx,%rbx 2917 cmovcq %r10,%r11 2918 xorq %r11,%rax 2919 movq %rax,16(%rsp) 2920 movq %rbx,16 + 8(%rsp) 2921 vmovdqa 16(%rsp),%xmm10 2922 vmovdqu 16(%rdi),%xmm2 2923 xorq %r11,%r11 2924 shlq $1,%rax 2925 adcq %rbx,%rbx 2926 cmovcq %r10,%r11 2927 xorq %r11,%rax 2928 movq %rax,32(%rsp) 2929 movq %rbx,32 + 8(%rsp) 2930 vmovdqa 32(%rsp),%xmm11 2931 vmovdqu 32(%rdi),%xmm3 2932 xorq %r11,%r11 2933 shlq $1,%rax 2934 adcq %rbx,%rbx 2935 cmovcq %r10,%r11 2936 xorq %r11,%rax 2937 movq %rax,48(%rsp) 2938 movq %rbx,48 + 8(%rsp) 2939 vmovdqa 48(%rsp),%xmm12 2940 vmovdqu 48(%rdi),%xmm4 2941 xorq %r11,%r11 2942 shlq $1,%rax 2943 adcq %rbx,%rbx 2944 cmovcq %r10,%r11 2945 xorq %r11,%rax 2946 movq %rax,64(%rsp) 2947 movq %rbx,64 + 8(%rsp) 2948 vmovdqa 64(%rsp),%xmm13 2949 vmovdqu 64(%rdi),%xmm5 2950 addq $0x50,%rdi 2951 andq $0xf,%rdx 2952 je .L_done_5_amivrujEyduiFoi 2953 2954.L_steal_cipher_5_amivrujEyduiFoi: 2955 xorq %r11,%r11 2956 shlq $1,%rax 2957 adcq %rbx,%rbx 2958 cmovcq %r10,%r11 2959 xorq %r11,%rax 2960 movq %rax,16(%rsp) 2961 movq %rbx,24(%rsp) 2962 vmovdqa64 %xmm13,%xmm14 2963 vmovdqa 16(%rsp),%xmm13 2964 vpxor %xmm9,%xmm1,%xmm1 2965 vpxor %xmm10,%xmm2,%xmm2 2966 vpxor %xmm11,%xmm3,%xmm3 2967 vpxor %xmm12,%xmm4,%xmm4 2968 vpxor %xmm13,%xmm5,%xmm5 2969 vmovdqu (%rcx),%xmm0 2970 vpxor %xmm0,%xmm1,%xmm1 2971 vpxor %xmm0,%xmm2,%xmm2 2972 vpxor %xmm0,%xmm3,%xmm3 2973 vpxor %xmm0,%xmm4,%xmm4 2974 vpxor %xmm0,%xmm5,%xmm5 2975 vmovdqu 16(%rcx),%xmm0 2976 vaesdec %xmm0,%xmm1,%xmm1 2977 vaesdec %xmm0,%xmm2,%xmm2 2978 vaesdec %xmm0,%xmm3,%xmm3 2979 vaesdec %xmm0,%xmm4,%xmm4 2980 vaesdec %xmm0,%xmm5,%xmm5 2981 vmovdqu 32(%rcx),%xmm0 2982 vaesdec %xmm0,%xmm1,%xmm1 2983 vaesdec %xmm0,%xmm2,%xmm2 2984 vaesdec %xmm0,%xmm3,%xmm3 2985 vaesdec %xmm0,%xmm4,%xmm4 2986 vaesdec %xmm0,%xmm5,%xmm5 2987 vmovdqu 48(%rcx),%xmm0 2988 vaesdec %xmm0,%xmm1,%xmm1 2989 vaesdec %xmm0,%xmm2,%xmm2 2990 vaesdec %xmm0,%xmm3,%xmm3 2991 vaesdec %xmm0,%xmm4,%xmm4 2992 vaesdec %xmm0,%xmm5,%xmm5 2993 vmovdqu 64(%rcx),%xmm0 2994 vaesdec %xmm0,%xmm1,%xmm1 2995 vaesdec %xmm0,%xmm2,%xmm2 2996 vaesdec %xmm0,%xmm3,%xmm3 2997 vaesdec %xmm0,%xmm4,%xmm4 2998 vaesdec %xmm0,%xmm5,%xmm5 2999 vmovdqu 80(%rcx),%xmm0 3000 vaesdec %xmm0,%xmm1,%xmm1 3001 vaesdec %xmm0,%xmm2,%xmm2 3002 vaesdec %xmm0,%xmm3,%xmm3 3003 vaesdec %xmm0,%xmm4,%xmm4 3004 vaesdec %xmm0,%xmm5,%xmm5 3005 vmovdqu 96(%rcx),%xmm0 3006 vaesdec %xmm0,%xmm1,%xmm1 3007 vaesdec %xmm0,%xmm2,%xmm2 3008 vaesdec %xmm0,%xmm3,%xmm3 3009 vaesdec %xmm0,%xmm4,%xmm4 3010 vaesdec %xmm0,%xmm5,%xmm5 3011 vmovdqu 112(%rcx),%xmm0 3012 vaesdec %xmm0,%xmm1,%xmm1 3013 vaesdec %xmm0,%xmm2,%xmm2 3014 vaesdec %xmm0,%xmm3,%xmm3 3015 vaesdec %xmm0,%xmm4,%xmm4 3016 vaesdec %xmm0,%xmm5,%xmm5 3017 vmovdqu 128(%rcx),%xmm0 3018 vaesdec %xmm0,%xmm1,%xmm1 3019 vaesdec %xmm0,%xmm2,%xmm2 3020 vaesdec %xmm0,%xmm3,%xmm3 3021 vaesdec %xmm0,%xmm4,%xmm4 3022 vaesdec %xmm0,%xmm5,%xmm5 3023 vmovdqu 144(%rcx),%xmm0 3024 vaesdec %xmm0,%xmm1,%xmm1 3025 vaesdec %xmm0,%xmm2,%xmm2 3026 vaesdec %xmm0,%xmm3,%xmm3 3027 vaesdec %xmm0,%xmm4,%xmm4 3028 vaesdec %xmm0,%xmm5,%xmm5 3029 vmovdqu 160(%rcx),%xmm0 3030 vaesdeclast %xmm0,%xmm1,%xmm1 3031 vaesdeclast %xmm0,%xmm2,%xmm2 3032 vaesdeclast %xmm0,%xmm3,%xmm3 3033 vaesdeclast %xmm0,%xmm4,%xmm4 3034 vaesdeclast %xmm0,%xmm5,%xmm5 3035 vpxor %xmm9,%xmm1,%xmm1 3036 vpxor %xmm10,%xmm2,%xmm2 3037 vpxor %xmm11,%xmm3,%xmm3 3038 vpxor %xmm12,%xmm4,%xmm4 3039 vpxor %xmm13,%xmm5,%xmm5 3040 vmovdqu %xmm1,(%rsi) 3041 vmovdqu %xmm2,16(%rsi) 3042 vmovdqu %xmm3,32(%rsi) 3043 vmovdqu %xmm4,48(%rsi) 3044 addq $0x50,%rsi 3045 vmovdqa %xmm14,%xmm0 3046 vmovdqa %xmm5,%xmm8 3047 jmp .L_steal_cipher_amivrujEyduiFoi 3048 3049.L_done_5_amivrujEyduiFoi: 3050 vpxor %xmm9,%xmm1,%xmm1 3051 vpxor %xmm10,%xmm2,%xmm2 3052 vpxor %xmm11,%xmm3,%xmm3 3053 vpxor %xmm12,%xmm4,%xmm4 3054 vpxor %xmm13,%xmm5,%xmm5 3055 vmovdqu (%rcx),%xmm0 3056 vpxor %xmm0,%xmm1,%xmm1 3057 vpxor %xmm0,%xmm2,%xmm2 3058 vpxor %xmm0,%xmm3,%xmm3 3059 vpxor %xmm0,%xmm4,%xmm4 3060 vpxor %xmm0,%xmm5,%xmm5 3061 vmovdqu 16(%rcx),%xmm0 3062 vaesdec %xmm0,%xmm1,%xmm1 3063 vaesdec %xmm0,%xmm2,%xmm2 3064 vaesdec %xmm0,%xmm3,%xmm3 3065 vaesdec %xmm0,%xmm4,%xmm4 3066 vaesdec %xmm0,%xmm5,%xmm5 3067 vmovdqu 32(%rcx),%xmm0 3068 vaesdec %xmm0,%xmm1,%xmm1 3069 vaesdec %xmm0,%xmm2,%xmm2 3070 vaesdec %xmm0,%xmm3,%xmm3 3071 vaesdec %xmm0,%xmm4,%xmm4 3072 vaesdec %xmm0,%xmm5,%xmm5 3073 vmovdqu 48(%rcx),%xmm0 3074 vaesdec %xmm0,%xmm1,%xmm1 3075 vaesdec %xmm0,%xmm2,%xmm2 3076 vaesdec %xmm0,%xmm3,%xmm3 3077 vaesdec %xmm0,%xmm4,%xmm4 3078 vaesdec %xmm0,%xmm5,%xmm5 3079 vmovdqu 64(%rcx),%xmm0 3080 vaesdec %xmm0,%xmm1,%xmm1 3081 vaesdec %xmm0,%xmm2,%xmm2 3082 vaesdec %xmm0,%xmm3,%xmm3 3083 vaesdec %xmm0,%xmm4,%xmm4 3084 vaesdec %xmm0,%xmm5,%xmm5 3085 vmovdqu 80(%rcx),%xmm0 3086 vaesdec %xmm0,%xmm1,%xmm1 3087 vaesdec %xmm0,%xmm2,%xmm2 3088 vaesdec %xmm0,%xmm3,%xmm3 3089 vaesdec %xmm0,%xmm4,%xmm4 3090 vaesdec %xmm0,%xmm5,%xmm5 3091 vmovdqu 96(%rcx),%xmm0 3092 vaesdec %xmm0,%xmm1,%xmm1 3093 vaesdec %xmm0,%xmm2,%xmm2 3094 vaesdec %xmm0,%xmm3,%xmm3 3095 vaesdec %xmm0,%xmm4,%xmm4 3096 vaesdec %xmm0,%xmm5,%xmm5 3097 vmovdqu 112(%rcx),%xmm0 3098 vaesdec %xmm0,%xmm1,%xmm1 3099 vaesdec %xmm0,%xmm2,%xmm2 3100 vaesdec %xmm0,%xmm3,%xmm3 3101 vaesdec %xmm0,%xmm4,%xmm4 3102 vaesdec %xmm0,%xmm5,%xmm5 3103 vmovdqu 128(%rcx),%xmm0 3104 vaesdec %xmm0,%xmm1,%xmm1 3105 vaesdec %xmm0,%xmm2,%xmm2 3106 vaesdec %xmm0,%xmm3,%xmm3 3107 vaesdec %xmm0,%xmm4,%xmm4 3108 vaesdec %xmm0,%xmm5,%xmm5 3109 vmovdqu 144(%rcx),%xmm0 3110 vaesdec %xmm0,%xmm1,%xmm1 3111 vaesdec %xmm0,%xmm2,%xmm2 3112 vaesdec %xmm0,%xmm3,%xmm3 3113 vaesdec %xmm0,%xmm4,%xmm4 3114 vaesdec %xmm0,%xmm5,%xmm5 3115 vmovdqu 160(%rcx),%xmm0 3116 vaesdeclast %xmm0,%xmm1,%xmm1 3117 vaesdeclast %xmm0,%xmm2,%xmm2 3118 vaesdeclast %xmm0,%xmm3,%xmm3 3119 vaesdeclast %xmm0,%xmm4,%xmm4 3120 vaesdeclast %xmm0,%xmm5,%xmm5 3121 vpxor %xmm9,%xmm1,%xmm1 3122 vpxor %xmm10,%xmm2,%xmm2 3123 vpxor %xmm11,%xmm3,%xmm3 3124 vpxor %xmm12,%xmm4,%xmm4 3125 vpxor %xmm13,%xmm5,%xmm5 3126 vmovdqu %xmm1,(%rsi) 3127 vmovdqu %xmm2,16(%rsi) 3128 vmovdqu %xmm3,32(%rsi) 3129 vmovdqu %xmm4,48(%rsi) 3130 addq $0x50,%rsi 3131 vmovdqa %xmm5,%xmm8 3132 jmp .L_done_amivrujEyduiFoi 3133 3134.L_num_blocks_is_4_amivrujEyduiFoi: 3135 vmovdqa 0(%rsp),%xmm9 3136 movq 0(%rsp),%rax 3137 movq 8(%rsp),%rbx 3138 vmovdqu 0(%rdi),%xmm1 3139 xorq %r11,%r11 3140 shlq $1,%rax 3141 adcq %rbx,%rbx 3142 cmovcq %r10,%r11 3143 xorq %r11,%rax 3144 movq %rax,16(%rsp) 3145 movq %rbx,16 + 8(%rsp) 3146 vmovdqa 16(%rsp),%xmm10 3147 vmovdqu 16(%rdi),%xmm2 3148 xorq %r11,%r11 3149 shlq $1,%rax 3150 adcq %rbx,%rbx 3151 cmovcq %r10,%r11 3152 xorq %r11,%rax 3153 movq %rax,32(%rsp) 3154 movq %rbx,32 + 8(%rsp) 3155 vmovdqa 32(%rsp),%xmm11 3156 vmovdqu 32(%rdi),%xmm3 3157 xorq %r11,%r11 3158 shlq $1,%rax 3159 adcq %rbx,%rbx 3160 cmovcq %r10,%r11 3161 xorq %r11,%rax 3162 movq %rax,48(%rsp) 3163 movq %rbx,48 + 8(%rsp) 3164 vmovdqa 48(%rsp),%xmm12 3165 vmovdqu 48(%rdi),%xmm4 3166 addq $0x40,%rdi 3167 andq $0xf,%rdx 3168 je .L_done_4_amivrujEyduiFoi 3169 3170.L_steal_cipher_4_amivrujEyduiFoi: 3171 xorq %r11,%r11 3172 shlq $1,%rax 3173 adcq %rbx,%rbx 3174 cmovcq %r10,%r11 3175 xorq %r11,%rax 3176 movq %rax,16(%rsp) 3177 movq %rbx,24(%rsp) 3178 vmovdqa64 %xmm12,%xmm13 3179 vmovdqa 16(%rsp),%xmm12 3180 vpxor %xmm9,%xmm1,%xmm1 3181 vpxor %xmm10,%xmm2,%xmm2 3182 vpxor %xmm11,%xmm3,%xmm3 3183 vpxor %xmm12,%xmm4,%xmm4 3184 vmovdqu (%rcx),%xmm0 3185 vpxor %xmm0,%xmm1,%xmm1 3186 vpxor %xmm0,%xmm2,%xmm2 3187 vpxor %xmm0,%xmm3,%xmm3 3188 vpxor %xmm0,%xmm4,%xmm4 3189 vmovdqu 16(%rcx),%xmm0 3190 vaesdec %xmm0,%xmm1,%xmm1 3191 vaesdec %xmm0,%xmm2,%xmm2 3192 vaesdec %xmm0,%xmm3,%xmm3 3193 vaesdec %xmm0,%xmm4,%xmm4 3194 vmovdqu 32(%rcx),%xmm0 3195 vaesdec %xmm0,%xmm1,%xmm1 3196 vaesdec %xmm0,%xmm2,%xmm2 3197 vaesdec %xmm0,%xmm3,%xmm3 3198 vaesdec %xmm0,%xmm4,%xmm4 3199 vmovdqu 48(%rcx),%xmm0 3200 vaesdec %xmm0,%xmm1,%xmm1 3201 vaesdec %xmm0,%xmm2,%xmm2 3202 vaesdec %xmm0,%xmm3,%xmm3 3203 vaesdec %xmm0,%xmm4,%xmm4 3204 vmovdqu 64(%rcx),%xmm0 3205 vaesdec %xmm0,%xmm1,%xmm1 3206 vaesdec %xmm0,%xmm2,%xmm2 3207 vaesdec %xmm0,%xmm3,%xmm3 3208 vaesdec %xmm0,%xmm4,%xmm4 3209 vmovdqu 80(%rcx),%xmm0 3210 vaesdec %xmm0,%xmm1,%xmm1 3211 vaesdec %xmm0,%xmm2,%xmm2 3212 vaesdec %xmm0,%xmm3,%xmm3 3213 vaesdec %xmm0,%xmm4,%xmm4 3214 vmovdqu 96(%rcx),%xmm0 3215 vaesdec %xmm0,%xmm1,%xmm1 3216 vaesdec %xmm0,%xmm2,%xmm2 3217 vaesdec %xmm0,%xmm3,%xmm3 3218 vaesdec %xmm0,%xmm4,%xmm4 3219 vmovdqu 112(%rcx),%xmm0 3220 vaesdec %xmm0,%xmm1,%xmm1 3221 vaesdec %xmm0,%xmm2,%xmm2 3222 vaesdec %xmm0,%xmm3,%xmm3 3223 vaesdec %xmm0,%xmm4,%xmm4 3224 vmovdqu 128(%rcx),%xmm0 3225 vaesdec %xmm0,%xmm1,%xmm1 3226 vaesdec %xmm0,%xmm2,%xmm2 3227 vaesdec %xmm0,%xmm3,%xmm3 3228 vaesdec %xmm0,%xmm4,%xmm4 3229 vmovdqu 144(%rcx),%xmm0 3230 vaesdec %xmm0,%xmm1,%xmm1 3231 vaesdec %xmm0,%xmm2,%xmm2 3232 vaesdec %xmm0,%xmm3,%xmm3 3233 vaesdec %xmm0,%xmm4,%xmm4 3234 vmovdqu 160(%rcx),%xmm0 3235 vaesdeclast %xmm0,%xmm1,%xmm1 3236 vaesdeclast %xmm0,%xmm2,%xmm2 3237 vaesdeclast %xmm0,%xmm3,%xmm3 3238 vaesdeclast %xmm0,%xmm4,%xmm4 3239 vpxor %xmm9,%xmm1,%xmm1 3240 vpxor %xmm10,%xmm2,%xmm2 3241 vpxor %xmm11,%xmm3,%xmm3 3242 vpxor %xmm12,%xmm4,%xmm4 3243 vmovdqu %xmm1,(%rsi) 3244 vmovdqu %xmm2,16(%rsi) 3245 vmovdqu %xmm3,32(%rsi) 3246 addq $0x40,%rsi 3247 vmovdqa %xmm13,%xmm0 3248 vmovdqa %xmm4,%xmm8 3249 jmp .L_steal_cipher_amivrujEyduiFoi 3250 3251.L_done_4_amivrujEyduiFoi: 3252 vpxor %xmm9,%xmm1,%xmm1 3253 vpxor %xmm10,%xmm2,%xmm2 3254 vpxor %xmm11,%xmm3,%xmm3 3255 vpxor %xmm12,%xmm4,%xmm4 3256 vmovdqu (%rcx),%xmm0 3257 vpxor %xmm0,%xmm1,%xmm1 3258 vpxor %xmm0,%xmm2,%xmm2 3259 vpxor %xmm0,%xmm3,%xmm3 3260 vpxor %xmm0,%xmm4,%xmm4 3261 vmovdqu 16(%rcx),%xmm0 3262 vaesdec %xmm0,%xmm1,%xmm1 3263 vaesdec %xmm0,%xmm2,%xmm2 3264 vaesdec %xmm0,%xmm3,%xmm3 3265 vaesdec %xmm0,%xmm4,%xmm4 3266 vmovdqu 32(%rcx),%xmm0 3267 vaesdec %xmm0,%xmm1,%xmm1 3268 vaesdec %xmm0,%xmm2,%xmm2 3269 vaesdec %xmm0,%xmm3,%xmm3 3270 vaesdec %xmm0,%xmm4,%xmm4 3271 vmovdqu 48(%rcx),%xmm0 3272 vaesdec %xmm0,%xmm1,%xmm1 3273 vaesdec %xmm0,%xmm2,%xmm2 3274 vaesdec %xmm0,%xmm3,%xmm3 3275 vaesdec %xmm0,%xmm4,%xmm4 3276 vmovdqu 64(%rcx),%xmm0 3277 vaesdec %xmm0,%xmm1,%xmm1 3278 vaesdec %xmm0,%xmm2,%xmm2 3279 vaesdec %xmm0,%xmm3,%xmm3 3280 vaesdec %xmm0,%xmm4,%xmm4 3281 vmovdqu 80(%rcx),%xmm0 3282 vaesdec %xmm0,%xmm1,%xmm1 3283 vaesdec %xmm0,%xmm2,%xmm2 3284 vaesdec %xmm0,%xmm3,%xmm3 3285 vaesdec %xmm0,%xmm4,%xmm4 3286 vmovdqu 96(%rcx),%xmm0 3287 vaesdec %xmm0,%xmm1,%xmm1 3288 vaesdec %xmm0,%xmm2,%xmm2 3289 vaesdec %xmm0,%xmm3,%xmm3 3290 vaesdec %xmm0,%xmm4,%xmm4 3291 vmovdqu 112(%rcx),%xmm0 3292 vaesdec %xmm0,%xmm1,%xmm1 3293 vaesdec %xmm0,%xmm2,%xmm2 3294 vaesdec %xmm0,%xmm3,%xmm3 3295 vaesdec %xmm0,%xmm4,%xmm4 3296 vmovdqu 128(%rcx),%xmm0 3297 vaesdec %xmm0,%xmm1,%xmm1 3298 vaesdec %xmm0,%xmm2,%xmm2 3299 vaesdec %xmm0,%xmm3,%xmm3 3300 vaesdec %xmm0,%xmm4,%xmm4 3301 vmovdqu 144(%rcx),%xmm0 3302 vaesdec %xmm0,%xmm1,%xmm1 3303 vaesdec %xmm0,%xmm2,%xmm2 3304 vaesdec %xmm0,%xmm3,%xmm3 3305 vaesdec %xmm0,%xmm4,%xmm4 3306 vmovdqu 160(%rcx),%xmm0 3307 vaesdeclast %xmm0,%xmm1,%xmm1 3308 vaesdeclast %xmm0,%xmm2,%xmm2 3309 vaesdeclast %xmm0,%xmm3,%xmm3 3310 vaesdeclast %xmm0,%xmm4,%xmm4 3311 vpxor %xmm9,%xmm1,%xmm1 3312 vpxor %xmm10,%xmm2,%xmm2 3313 vpxor %xmm11,%xmm3,%xmm3 3314 vpxor %xmm12,%xmm4,%xmm4 3315 vmovdqu %xmm1,(%rsi) 3316 vmovdqu %xmm2,16(%rsi) 3317 vmovdqu %xmm3,32(%rsi) 3318 addq $0x40,%rsi 3319 vmovdqa %xmm4,%xmm8 3320 jmp .L_done_amivrujEyduiFoi 3321 3322.L_num_blocks_is_3_amivrujEyduiFoi: 3323 vmovdqa 0(%rsp),%xmm9 3324 movq 0(%rsp),%rax 3325 movq 8(%rsp),%rbx 3326 vmovdqu 0(%rdi),%xmm1 3327 xorq %r11,%r11 3328 shlq $1,%rax 3329 adcq %rbx,%rbx 3330 cmovcq %r10,%r11 3331 xorq %r11,%rax 3332 movq %rax,16(%rsp) 3333 movq %rbx,16 + 8(%rsp) 3334 vmovdqa 16(%rsp),%xmm10 3335 vmovdqu 16(%rdi),%xmm2 3336 xorq %r11,%r11 3337 shlq $1,%rax 3338 adcq %rbx,%rbx 3339 cmovcq %r10,%r11 3340 xorq %r11,%rax 3341 movq %rax,32(%rsp) 3342 movq %rbx,32 + 8(%rsp) 3343 vmovdqa 32(%rsp),%xmm11 3344 vmovdqu 32(%rdi),%xmm3 3345 addq $0x30,%rdi 3346 andq $0xf,%rdx 3347 je .L_done_3_amivrujEyduiFoi 3348 3349.L_steal_cipher_3_amivrujEyduiFoi: 3350 xorq %r11,%r11 3351 shlq $1,%rax 3352 adcq %rbx,%rbx 3353 cmovcq %r10,%r11 3354 xorq %r11,%rax 3355 movq %rax,16(%rsp) 3356 movq %rbx,24(%rsp) 3357 vmovdqa64 %xmm11,%xmm12 3358 vmovdqa 16(%rsp),%xmm11 3359 vpxor %xmm9,%xmm1,%xmm1 3360 vpxor %xmm10,%xmm2,%xmm2 3361 vpxor %xmm11,%xmm3,%xmm3 3362 vmovdqu (%rcx),%xmm0 3363 vpxor %xmm0,%xmm1,%xmm1 3364 vpxor %xmm0,%xmm2,%xmm2 3365 vpxor %xmm0,%xmm3,%xmm3 3366 vmovdqu 16(%rcx),%xmm0 3367 vaesdec %xmm0,%xmm1,%xmm1 3368 vaesdec %xmm0,%xmm2,%xmm2 3369 vaesdec %xmm0,%xmm3,%xmm3 3370 vmovdqu 32(%rcx),%xmm0 3371 vaesdec %xmm0,%xmm1,%xmm1 3372 vaesdec %xmm0,%xmm2,%xmm2 3373 vaesdec %xmm0,%xmm3,%xmm3 3374 vmovdqu 48(%rcx),%xmm0 3375 vaesdec %xmm0,%xmm1,%xmm1 3376 vaesdec %xmm0,%xmm2,%xmm2 3377 vaesdec %xmm0,%xmm3,%xmm3 3378 vmovdqu 64(%rcx),%xmm0 3379 vaesdec %xmm0,%xmm1,%xmm1 3380 vaesdec %xmm0,%xmm2,%xmm2 3381 vaesdec %xmm0,%xmm3,%xmm3 3382 vmovdqu 80(%rcx),%xmm0 3383 vaesdec %xmm0,%xmm1,%xmm1 3384 vaesdec %xmm0,%xmm2,%xmm2 3385 vaesdec %xmm0,%xmm3,%xmm3 3386 vmovdqu 96(%rcx),%xmm0 3387 vaesdec %xmm0,%xmm1,%xmm1 3388 vaesdec %xmm0,%xmm2,%xmm2 3389 vaesdec %xmm0,%xmm3,%xmm3 3390 vmovdqu 112(%rcx),%xmm0 3391 vaesdec %xmm0,%xmm1,%xmm1 3392 vaesdec %xmm0,%xmm2,%xmm2 3393 vaesdec %xmm0,%xmm3,%xmm3 3394 vmovdqu 128(%rcx),%xmm0 3395 vaesdec %xmm0,%xmm1,%xmm1 3396 vaesdec %xmm0,%xmm2,%xmm2 3397 vaesdec %xmm0,%xmm3,%xmm3 3398 vmovdqu 144(%rcx),%xmm0 3399 vaesdec %xmm0,%xmm1,%xmm1 3400 vaesdec %xmm0,%xmm2,%xmm2 3401 vaesdec %xmm0,%xmm3,%xmm3 3402 vmovdqu 160(%rcx),%xmm0 3403 vaesdeclast %xmm0,%xmm1,%xmm1 3404 vaesdeclast %xmm0,%xmm2,%xmm2 3405 vaesdeclast %xmm0,%xmm3,%xmm3 3406 vpxor %xmm9,%xmm1,%xmm1 3407 vpxor %xmm10,%xmm2,%xmm2 3408 vpxor %xmm11,%xmm3,%xmm3 3409 vmovdqu %xmm1,(%rsi) 3410 vmovdqu %xmm2,16(%rsi) 3411 addq $0x30,%rsi 3412 vmovdqa %xmm12,%xmm0 3413 vmovdqa %xmm3,%xmm8 3414 jmp .L_steal_cipher_amivrujEyduiFoi 3415 3416.L_done_3_amivrujEyduiFoi: 3417 vpxor %xmm9,%xmm1,%xmm1 3418 vpxor %xmm10,%xmm2,%xmm2 3419 vpxor %xmm11,%xmm3,%xmm3 3420 vmovdqu (%rcx),%xmm0 3421 vpxor %xmm0,%xmm1,%xmm1 3422 vpxor %xmm0,%xmm2,%xmm2 3423 vpxor %xmm0,%xmm3,%xmm3 3424 vmovdqu 16(%rcx),%xmm0 3425 vaesdec %xmm0,%xmm1,%xmm1 3426 vaesdec %xmm0,%xmm2,%xmm2 3427 vaesdec %xmm0,%xmm3,%xmm3 3428 vmovdqu 32(%rcx),%xmm0 3429 vaesdec %xmm0,%xmm1,%xmm1 3430 vaesdec %xmm0,%xmm2,%xmm2 3431 vaesdec %xmm0,%xmm3,%xmm3 3432 vmovdqu 48(%rcx),%xmm0 3433 vaesdec %xmm0,%xmm1,%xmm1 3434 vaesdec %xmm0,%xmm2,%xmm2 3435 vaesdec %xmm0,%xmm3,%xmm3 3436 vmovdqu 64(%rcx),%xmm0 3437 vaesdec %xmm0,%xmm1,%xmm1 3438 vaesdec %xmm0,%xmm2,%xmm2 3439 vaesdec %xmm0,%xmm3,%xmm3 3440 vmovdqu 80(%rcx),%xmm0 3441 vaesdec %xmm0,%xmm1,%xmm1 3442 vaesdec %xmm0,%xmm2,%xmm2 3443 vaesdec %xmm0,%xmm3,%xmm3 3444 vmovdqu 96(%rcx),%xmm0 3445 vaesdec %xmm0,%xmm1,%xmm1 3446 vaesdec %xmm0,%xmm2,%xmm2 3447 vaesdec %xmm0,%xmm3,%xmm3 3448 vmovdqu 112(%rcx),%xmm0 3449 vaesdec %xmm0,%xmm1,%xmm1 3450 vaesdec %xmm0,%xmm2,%xmm2 3451 vaesdec %xmm0,%xmm3,%xmm3 3452 vmovdqu 128(%rcx),%xmm0 3453 vaesdec %xmm0,%xmm1,%xmm1 3454 vaesdec %xmm0,%xmm2,%xmm2 3455 vaesdec %xmm0,%xmm3,%xmm3 3456 vmovdqu 144(%rcx),%xmm0 3457 vaesdec %xmm0,%xmm1,%xmm1 3458 vaesdec %xmm0,%xmm2,%xmm2 3459 vaesdec %xmm0,%xmm3,%xmm3 3460 vmovdqu 160(%rcx),%xmm0 3461 vaesdeclast %xmm0,%xmm1,%xmm1 3462 vaesdeclast %xmm0,%xmm2,%xmm2 3463 vaesdeclast %xmm0,%xmm3,%xmm3 3464 vpxor %xmm9,%xmm1,%xmm1 3465 vpxor %xmm10,%xmm2,%xmm2 3466 vpxor %xmm11,%xmm3,%xmm3 3467 vmovdqu %xmm1,(%rsi) 3468 vmovdqu %xmm2,16(%rsi) 3469 addq $0x30,%rsi 3470 vmovdqa %xmm3,%xmm8 3471 jmp .L_done_amivrujEyduiFoi 3472 3473.L_num_blocks_is_2_amivrujEyduiFoi: 3474 vmovdqa 0(%rsp),%xmm9 3475 movq 0(%rsp),%rax 3476 movq 8(%rsp),%rbx 3477 vmovdqu 0(%rdi),%xmm1 3478 xorq %r11,%r11 3479 shlq $1,%rax 3480 adcq %rbx,%rbx 3481 cmovcq %r10,%r11 3482 xorq %r11,%rax 3483 movq %rax,16(%rsp) 3484 movq %rbx,16 + 8(%rsp) 3485 vmovdqa 16(%rsp),%xmm10 3486 vmovdqu 16(%rdi),%xmm2 3487 addq $0x20,%rdi 3488 andq $0xf,%rdx 3489 je .L_done_2_amivrujEyduiFoi 3490 3491.L_steal_cipher_2_amivrujEyduiFoi: 3492 xorq %r11,%r11 3493 shlq $1,%rax 3494 adcq %rbx,%rbx 3495 cmovcq %r10,%r11 3496 xorq %r11,%rax 3497 movq %rax,16(%rsp) 3498 movq %rbx,24(%rsp) 3499 vmovdqa64 %xmm10,%xmm11 3500 vmovdqa 16(%rsp),%xmm10 3501 vpxor %xmm9,%xmm1,%xmm1 3502 vpxor %xmm10,%xmm2,%xmm2 3503 vmovdqu (%rcx),%xmm0 3504 vpxor %xmm0,%xmm1,%xmm1 3505 vpxor %xmm0,%xmm2,%xmm2 3506 vmovdqu 16(%rcx),%xmm0 3507 vaesdec %xmm0,%xmm1,%xmm1 3508 vaesdec %xmm0,%xmm2,%xmm2 3509 vmovdqu 32(%rcx),%xmm0 3510 vaesdec %xmm0,%xmm1,%xmm1 3511 vaesdec %xmm0,%xmm2,%xmm2 3512 vmovdqu 48(%rcx),%xmm0 3513 vaesdec %xmm0,%xmm1,%xmm1 3514 vaesdec %xmm0,%xmm2,%xmm2 3515 vmovdqu 64(%rcx),%xmm0 3516 vaesdec %xmm0,%xmm1,%xmm1 3517 vaesdec %xmm0,%xmm2,%xmm2 3518 vmovdqu 80(%rcx),%xmm0 3519 vaesdec %xmm0,%xmm1,%xmm1 3520 vaesdec %xmm0,%xmm2,%xmm2 3521 vmovdqu 96(%rcx),%xmm0 3522 vaesdec %xmm0,%xmm1,%xmm1 3523 vaesdec %xmm0,%xmm2,%xmm2 3524 vmovdqu 112(%rcx),%xmm0 3525 vaesdec %xmm0,%xmm1,%xmm1 3526 vaesdec %xmm0,%xmm2,%xmm2 3527 vmovdqu 128(%rcx),%xmm0 3528 vaesdec %xmm0,%xmm1,%xmm1 3529 vaesdec %xmm0,%xmm2,%xmm2 3530 vmovdqu 144(%rcx),%xmm0 3531 vaesdec %xmm0,%xmm1,%xmm1 3532 vaesdec %xmm0,%xmm2,%xmm2 3533 vmovdqu 160(%rcx),%xmm0 3534 vaesdeclast %xmm0,%xmm1,%xmm1 3535 vaesdeclast %xmm0,%xmm2,%xmm2 3536 vpxor %xmm9,%xmm1,%xmm1 3537 vpxor %xmm10,%xmm2,%xmm2 3538 vmovdqu %xmm1,(%rsi) 3539 addq $0x20,%rsi 3540 vmovdqa %xmm11,%xmm0 3541 vmovdqa %xmm2,%xmm8 3542 jmp .L_steal_cipher_amivrujEyduiFoi 3543 3544.L_done_2_amivrujEyduiFoi: 3545 vpxor %xmm9,%xmm1,%xmm1 3546 vpxor %xmm10,%xmm2,%xmm2 3547 vmovdqu (%rcx),%xmm0 3548 vpxor %xmm0,%xmm1,%xmm1 3549 vpxor %xmm0,%xmm2,%xmm2 3550 vmovdqu 16(%rcx),%xmm0 3551 vaesdec %xmm0,%xmm1,%xmm1 3552 vaesdec %xmm0,%xmm2,%xmm2 3553 vmovdqu 32(%rcx),%xmm0 3554 vaesdec %xmm0,%xmm1,%xmm1 3555 vaesdec %xmm0,%xmm2,%xmm2 3556 vmovdqu 48(%rcx),%xmm0 3557 vaesdec %xmm0,%xmm1,%xmm1 3558 vaesdec %xmm0,%xmm2,%xmm2 3559 vmovdqu 64(%rcx),%xmm0 3560 vaesdec %xmm0,%xmm1,%xmm1 3561 vaesdec %xmm0,%xmm2,%xmm2 3562 vmovdqu 80(%rcx),%xmm0 3563 vaesdec %xmm0,%xmm1,%xmm1 3564 vaesdec %xmm0,%xmm2,%xmm2 3565 vmovdqu 96(%rcx),%xmm0 3566 vaesdec %xmm0,%xmm1,%xmm1 3567 vaesdec %xmm0,%xmm2,%xmm2 3568 vmovdqu 112(%rcx),%xmm0 3569 vaesdec %xmm0,%xmm1,%xmm1 3570 vaesdec %xmm0,%xmm2,%xmm2 3571 vmovdqu 128(%rcx),%xmm0 3572 vaesdec %xmm0,%xmm1,%xmm1 3573 vaesdec %xmm0,%xmm2,%xmm2 3574 vmovdqu 144(%rcx),%xmm0 3575 vaesdec %xmm0,%xmm1,%xmm1 3576 vaesdec %xmm0,%xmm2,%xmm2 3577 vmovdqu 160(%rcx),%xmm0 3578 vaesdeclast %xmm0,%xmm1,%xmm1 3579 vaesdeclast %xmm0,%xmm2,%xmm2 3580 vpxor %xmm9,%xmm1,%xmm1 3581 vpxor %xmm10,%xmm2,%xmm2 3582 vmovdqu %xmm1,(%rsi) 3583 addq $0x20,%rsi 3584 vmovdqa %xmm2,%xmm8 3585 jmp .L_done_amivrujEyduiFoi 3586 3587.L_num_blocks_is_1_amivrujEyduiFoi: 3588 vmovdqa 0(%rsp),%xmm9 3589 movq 0(%rsp),%rax 3590 movq 8(%rsp),%rbx 3591 vmovdqu 0(%rdi),%xmm1 3592 addq $0x10,%rdi 3593 andq $0xf,%rdx 3594 je .L_done_1_amivrujEyduiFoi 3595 3596.L_steal_cipher_1_amivrujEyduiFoi: 3597 xorq %r11,%r11 3598 shlq $1,%rax 3599 adcq %rbx,%rbx 3600 cmovcq %r10,%r11 3601 xorq %r11,%rax 3602 movq %rax,16(%rsp) 3603 movq %rbx,24(%rsp) 3604 vmovdqa64 %xmm9,%xmm10 3605 vmovdqa 16(%rsp),%xmm9 3606 vpxor %xmm9,%xmm1,%xmm1 3607 vmovdqu (%rcx),%xmm0 3608 vpxor %xmm0,%xmm1,%xmm1 3609 vmovdqu 16(%rcx),%xmm0 3610 vaesdec %xmm0,%xmm1,%xmm1 3611 vmovdqu 32(%rcx),%xmm0 3612 vaesdec %xmm0,%xmm1,%xmm1 3613 vmovdqu 48(%rcx),%xmm0 3614 vaesdec %xmm0,%xmm1,%xmm1 3615 vmovdqu 64(%rcx),%xmm0 3616 vaesdec %xmm0,%xmm1,%xmm1 3617 vmovdqu 80(%rcx),%xmm0 3618 vaesdec %xmm0,%xmm1,%xmm1 3619 vmovdqu 96(%rcx),%xmm0 3620 vaesdec %xmm0,%xmm1,%xmm1 3621 vmovdqu 112(%rcx),%xmm0 3622 vaesdec %xmm0,%xmm1,%xmm1 3623 vmovdqu 128(%rcx),%xmm0 3624 vaesdec %xmm0,%xmm1,%xmm1 3625 vmovdqu 144(%rcx),%xmm0 3626 vaesdec %xmm0,%xmm1,%xmm1 3627 vmovdqu 160(%rcx),%xmm0 3628 vaesdeclast %xmm0,%xmm1,%xmm1 3629 vpxor %xmm9,%xmm1,%xmm1 3630 addq $0x10,%rsi 3631 vmovdqa %xmm10,%xmm0 3632 vmovdqa %xmm1,%xmm8 3633 jmp .L_steal_cipher_amivrujEyduiFoi 3634 3635.L_done_1_amivrujEyduiFoi: 3636 vpxor %xmm9,%xmm1,%xmm1 3637 vmovdqu (%rcx),%xmm0 3638 vpxor %xmm0,%xmm1,%xmm1 3639 vmovdqu 16(%rcx),%xmm0 3640 vaesdec %xmm0,%xmm1,%xmm1 3641 vmovdqu 32(%rcx),%xmm0 3642 vaesdec %xmm0,%xmm1,%xmm1 3643 vmovdqu 48(%rcx),%xmm0 3644 vaesdec %xmm0,%xmm1,%xmm1 3645 vmovdqu 64(%rcx),%xmm0 3646 vaesdec %xmm0,%xmm1,%xmm1 3647 vmovdqu 80(%rcx),%xmm0 3648 vaesdec %xmm0,%xmm1,%xmm1 3649 vmovdqu 96(%rcx),%xmm0 3650 vaesdec %xmm0,%xmm1,%xmm1 3651 vmovdqu 112(%rcx),%xmm0 3652 vaesdec %xmm0,%xmm1,%xmm1 3653 vmovdqu 128(%rcx),%xmm0 3654 vaesdec %xmm0,%xmm1,%xmm1 3655 vmovdqu 144(%rcx),%xmm0 3656 vaesdec %xmm0,%xmm1,%xmm1 3657 vmovdqu 160(%rcx),%xmm0 3658 vaesdeclast %xmm0,%xmm1,%xmm1 3659 vpxor %xmm9,%xmm1,%xmm1 3660 addq $0x10,%rsi 3661 vmovdqa %xmm1,%xmm8 3662 jmp .L_done_amivrujEyduiFoi 3663.cfi_endproc 3664.globl aesni_xts_256_encrypt_avx512 3665.hidden aesni_xts_256_encrypt_avx512 3666.type aesni_xts_256_encrypt_avx512,@function 3667.align 32 3668aesni_xts_256_encrypt_avx512: 3669.cfi_startproc 3670.byte 243,15,30,250 3671 pushq %rbp 3672 movq %rsp,%rbp 3673 subq $136,%rsp 3674 andq $0xffffffffffffffc0,%rsp 3675 movq %rbx,128(%rsp) 3676 movq $0x87,%r10 3677 vmovdqu (%r9),%xmm1 3678 vpxor (%r8),%xmm1,%xmm1 3679 vaesenc 16(%r8),%xmm1,%xmm1 3680 vaesenc 32(%r8),%xmm1,%xmm1 3681 vaesenc 48(%r8),%xmm1,%xmm1 3682 vaesenc 64(%r8),%xmm1,%xmm1 3683 vaesenc 80(%r8),%xmm1,%xmm1 3684 vaesenc 96(%r8),%xmm1,%xmm1 3685 vaesenc 112(%r8),%xmm1,%xmm1 3686 vaesenc 128(%r8),%xmm1,%xmm1 3687 vaesenc 144(%r8),%xmm1,%xmm1 3688 vaesenc 160(%r8),%xmm1,%xmm1 3689 vaesenc 176(%r8),%xmm1,%xmm1 3690 vaesenc 192(%r8),%xmm1,%xmm1 3691 vaesenc 208(%r8),%xmm1,%xmm1 3692 vaesenclast 224(%r8),%xmm1,%xmm1 3693 vmovdqa %xmm1,(%rsp) 3694 3695 cmpq $0x80,%rdx 3696 jl .L_less_than_128_bytes_wcpqaDvsGlbjGoe 3697 vpbroadcastq %r10,%zmm25 3698 cmpq $0x100,%rdx 3699 jge .L_start_by16_wcpqaDvsGlbjGoe 3700 cmpq $0x80,%rdx 3701 jge .L_start_by8_wcpqaDvsGlbjGoe 3702 3703.L_do_n_blocks_wcpqaDvsGlbjGoe: 3704 cmpq $0x0,%rdx 3705 je .L_ret_wcpqaDvsGlbjGoe 3706 cmpq $0x70,%rdx 3707 jge .L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe 3708 cmpq $0x60,%rdx 3709 jge .L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe 3710 cmpq $0x50,%rdx 3711 jge .L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe 3712 cmpq $0x40,%rdx 3713 jge .L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe 3714 cmpq $0x30,%rdx 3715 jge .L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe 3716 cmpq $0x20,%rdx 3717 jge .L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe 3718 cmpq $0x10,%rdx 3719 jge .L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe 3720 vmovdqa %xmm0,%xmm8 3721 vmovdqa %xmm9,%xmm0 3722 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3723 3724.L_remaining_num_blocks_is_7_wcpqaDvsGlbjGoe: 3725 movq $0x0000ffffffffffff,%r8 3726 kmovq %r8,%k1 3727 vmovdqu8 (%rdi),%zmm1 3728 vmovdqu8 64(%rdi),%zmm2{%k1} 3729 addq $0x70,%rdi 3730 vbroadcasti32x4 (%rcx),%zmm0 3731 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3732 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 3733 vbroadcasti32x4 16(%rcx),%zmm0 3734 vaesenc %zmm0,%zmm1,%zmm1 3735 vaesenc %zmm0,%zmm2,%zmm2 3736 3737 3738 vbroadcasti32x4 32(%rcx),%zmm0 3739 vaesenc %zmm0,%zmm1,%zmm1 3740 vaesenc %zmm0,%zmm2,%zmm2 3741 3742 3743 vbroadcasti32x4 48(%rcx),%zmm0 3744 vaesenc %zmm0,%zmm1,%zmm1 3745 vaesenc %zmm0,%zmm2,%zmm2 3746 3747 vbroadcasti32x4 64(%rcx),%zmm0 3748 vaesenc %zmm0,%zmm1,%zmm1 3749 vaesenc %zmm0,%zmm2,%zmm2 3750 3751 3752 vbroadcasti32x4 80(%rcx),%zmm0 3753 vaesenc %zmm0,%zmm1,%zmm1 3754 vaesenc %zmm0,%zmm2,%zmm2 3755 3756 3757 vbroadcasti32x4 96(%rcx),%zmm0 3758 vaesenc %zmm0,%zmm1,%zmm1 3759 vaesenc %zmm0,%zmm2,%zmm2 3760 3761 3762 vbroadcasti32x4 112(%rcx),%zmm0 3763 vaesenc %zmm0,%zmm1,%zmm1 3764 vaesenc %zmm0,%zmm2,%zmm2 3765 3766 3767 vbroadcasti32x4 128(%rcx),%zmm0 3768 vaesenc %zmm0,%zmm1,%zmm1 3769 vaesenc %zmm0,%zmm2,%zmm2 3770 3771 3772 vbroadcasti32x4 144(%rcx),%zmm0 3773 vaesenc %zmm0,%zmm1,%zmm1 3774 vaesenc %zmm0,%zmm2,%zmm2 3775 3776 vbroadcasti32x4 160(%rcx),%zmm0 3777 vaesenc %zmm0,%zmm1,%zmm1 3778 vaesenc %zmm0,%zmm2,%zmm2 3779 3780 3781 vbroadcasti32x4 176(%rcx),%zmm0 3782 vaesenc %zmm0,%zmm1,%zmm1 3783 vaesenc %zmm0,%zmm2,%zmm2 3784 3785 3786 vbroadcasti32x4 192(%rcx),%zmm0 3787 vaesenc %zmm0,%zmm1,%zmm1 3788 vaesenc %zmm0,%zmm2,%zmm2 3789 3790 3791 vbroadcasti32x4 208(%rcx),%zmm0 3792 vaesenc %zmm0,%zmm1,%zmm1 3793 vaesenc %zmm0,%zmm2,%zmm2 3794 3795 3796 vbroadcasti32x4 224(%rcx),%zmm0 3797 vaesenclast %zmm0,%zmm1,%zmm1 3798 vaesenclast %zmm0,%zmm2,%zmm2 3799 vpxorq %zmm9,%zmm1,%zmm1 3800 vpxorq %zmm10,%zmm2,%zmm2 3801 vmovdqu8 %zmm1,(%rsi) 3802 vmovdqu8 %zmm2,64(%rsi){%k1} 3803 addq $0x70,%rsi 3804 vextracti32x4 $0x2,%zmm2,%xmm8 3805 vextracti32x4 $0x3,%zmm10,%xmm0 3806 andq $0xf,%rdx 3807 je .L_ret_wcpqaDvsGlbjGoe 3808 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3809 3810.L_remaining_num_blocks_is_6_wcpqaDvsGlbjGoe: 3811 vmovdqu8 (%rdi),%zmm1 3812 vmovdqu8 64(%rdi),%ymm2 3813 addq $0x60,%rdi 3814 vbroadcasti32x4 (%rcx),%zmm0 3815 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3816 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 3817 vbroadcasti32x4 16(%rcx),%zmm0 3818 vaesenc %zmm0,%zmm1,%zmm1 3819 vaesenc %zmm0,%zmm2,%zmm2 3820 3821 3822 vbroadcasti32x4 32(%rcx),%zmm0 3823 vaesenc %zmm0,%zmm1,%zmm1 3824 vaesenc %zmm0,%zmm2,%zmm2 3825 3826 3827 vbroadcasti32x4 48(%rcx),%zmm0 3828 vaesenc %zmm0,%zmm1,%zmm1 3829 vaesenc %zmm0,%zmm2,%zmm2 3830 3831 vbroadcasti32x4 64(%rcx),%zmm0 3832 vaesenc %zmm0,%zmm1,%zmm1 3833 vaesenc %zmm0,%zmm2,%zmm2 3834 3835 3836 vbroadcasti32x4 80(%rcx),%zmm0 3837 vaesenc %zmm0,%zmm1,%zmm1 3838 vaesenc %zmm0,%zmm2,%zmm2 3839 3840 3841 vbroadcasti32x4 96(%rcx),%zmm0 3842 vaesenc %zmm0,%zmm1,%zmm1 3843 vaesenc %zmm0,%zmm2,%zmm2 3844 3845 3846 vbroadcasti32x4 112(%rcx),%zmm0 3847 vaesenc %zmm0,%zmm1,%zmm1 3848 vaesenc %zmm0,%zmm2,%zmm2 3849 3850 3851 vbroadcasti32x4 128(%rcx),%zmm0 3852 vaesenc %zmm0,%zmm1,%zmm1 3853 vaesenc %zmm0,%zmm2,%zmm2 3854 3855 3856 vbroadcasti32x4 144(%rcx),%zmm0 3857 vaesenc %zmm0,%zmm1,%zmm1 3858 vaesenc %zmm0,%zmm2,%zmm2 3859 3860 vbroadcasti32x4 160(%rcx),%zmm0 3861 vaesenc %zmm0,%zmm1,%zmm1 3862 vaesenc %zmm0,%zmm2,%zmm2 3863 3864 3865 vbroadcasti32x4 176(%rcx),%zmm0 3866 vaesenc %zmm0,%zmm1,%zmm1 3867 vaesenc %zmm0,%zmm2,%zmm2 3868 3869 3870 vbroadcasti32x4 192(%rcx),%zmm0 3871 vaesenc %zmm0,%zmm1,%zmm1 3872 vaesenc %zmm0,%zmm2,%zmm2 3873 3874 3875 vbroadcasti32x4 208(%rcx),%zmm0 3876 vaesenc %zmm0,%zmm1,%zmm1 3877 vaesenc %zmm0,%zmm2,%zmm2 3878 3879 3880 vbroadcasti32x4 224(%rcx),%zmm0 3881 vaesenclast %zmm0,%zmm1,%zmm1 3882 vaesenclast %zmm0,%zmm2,%zmm2 3883 vpxorq %zmm9,%zmm1,%zmm1 3884 vpxorq %zmm10,%zmm2,%zmm2 3885 vmovdqu8 %zmm1,(%rsi) 3886 vmovdqu8 %ymm2,64(%rsi) 3887 addq $0x60,%rsi 3888 vextracti32x4 $0x1,%zmm2,%xmm8 3889 vextracti32x4 $0x2,%zmm10,%xmm0 3890 andq $0xf,%rdx 3891 je .L_ret_wcpqaDvsGlbjGoe 3892 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3893 3894.L_remaining_num_blocks_is_5_wcpqaDvsGlbjGoe: 3895 vmovdqu8 (%rdi),%zmm1 3896 vmovdqu 64(%rdi),%xmm2 3897 addq $0x50,%rdi 3898 vbroadcasti32x4 (%rcx),%zmm0 3899 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3900 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 3901 vbroadcasti32x4 16(%rcx),%zmm0 3902 vaesenc %zmm0,%zmm1,%zmm1 3903 vaesenc %zmm0,%zmm2,%zmm2 3904 3905 3906 vbroadcasti32x4 32(%rcx),%zmm0 3907 vaesenc %zmm0,%zmm1,%zmm1 3908 vaesenc %zmm0,%zmm2,%zmm2 3909 3910 3911 vbroadcasti32x4 48(%rcx),%zmm0 3912 vaesenc %zmm0,%zmm1,%zmm1 3913 vaesenc %zmm0,%zmm2,%zmm2 3914 3915 vbroadcasti32x4 64(%rcx),%zmm0 3916 vaesenc %zmm0,%zmm1,%zmm1 3917 vaesenc %zmm0,%zmm2,%zmm2 3918 3919 3920 vbroadcasti32x4 80(%rcx),%zmm0 3921 vaesenc %zmm0,%zmm1,%zmm1 3922 vaesenc %zmm0,%zmm2,%zmm2 3923 3924 3925 vbroadcasti32x4 96(%rcx),%zmm0 3926 vaesenc %zmm0,%zmm1,%zmm1 3927 vaesenc %zmm0,%zmm2,%zmm2 3928 3929 3930 vbroadcasti32x4 112(%rcx),%zmm0 3931 vaesenc %zmm0,%zmm1,%zmm1 3932 vaesenc %zmm0,%zmm2,%zmm2 3933 3934 3935 vbroadcasti32x4 128(%rcx),%zmm0 3936 vaesenc %zmm0,%zmm1,%zmm1 3937 vaesenc %zmm0,%zmm2,%zmm2 3938 3939 3940 vbroadcasti32x4 144(%rcx),%zmm0 3941 vaesenc %zmm0,%zmm1,%zmm1 3942 vaesenc %zmm0,%zmm2,%zmm2 3943 3944 vbroadcasti32x4 160(%rcx),%zmm0 3945 vaesenc %zmm0,%zmm1,%zmm1 3946 vaesenc %zmm0,%zmm2,%zmm2 3947 3948 3949 vbroadcasti32x4 176(%rcx),%zmm0 3950 vaesenc %zmm0,%zmm1,%zmm1 3951 vaesenc %zmm0,%zmm2,%zmm2 3952 3953 3954 vbroadcasti32x4 192(%rcx),%zmm0 3955 vaesenc %zmm0,%zmm1,%zmm1 3956 vaesenc %zmm0,%zmm2,%zmm2 3957 3958 3959 vbroadcasti32x4 208(%rcx),%zmm0 3960 vaesenc %zmm0,%zmm1,%zmm1 3961 vaesenc %zmm0,%zmm2,%zmm2 3962 3963 3964 vbroadcasti32x4 224(%rcx),%zmm0 3965 vaesenclast %zmm0,%zmm1,%zmm1 3966 vaesenclast %zmm0,%zmm2,%zmm2 3967 vpxorq %zmm9,%zmm1,%zmm1 3968 vpxorq %zmm10,%zmm2,%zmm2 3969 vmovdqu8 %zmm1,(%rsi) 3970 vmovdqu %xmm2,64(%rsi) 3971 addq $0x50,%rsi 3972 vmovdqa %xmm2,%xmm8 3973 vextracti32x4 $0x1,%zmm10,%xmm0 3974 andq $0xf,%rdx 3975 je .L_ret_wcpqaDvsGlbjGoe 3976 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 3977 3978.L_remaining_num_blocks_is_4_wcpqaDvsGlbjGoe: 3979 vmovdqu8 (%rdi),%zmm1 3980 addq $0x40,%rdi 3981 vbroadcasti32x4 (%rcx),%zmm0 3982 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 3983 vbroadcasti32x4 16(%rcx),%zmm0 3984 vaesenc %zmm0,%zmm1,%zmm1 3985 vbroadcasti32x4 32(%rcx),%zmm0 3986 vaesenc %zmm0,%zmm1,%zmm1 3987 vbroadcasti32x4 48(%rcx),%zmm0 3988 vaesenc %zmm0,%zmm1,%zmm1 3989 vbroadcasti32x4 64(%rcx),%zmm0 3990 vaesenc %zmm0,%zmm1,%zmm1 3991 vbroadcasti32x4 80(%rcx),%zmm0 3992 vaesenc %zmm0,%zmm1,%zmm1 3993 vbroadcasti32x4 96(%rcx),%zmm0 3994 vaesenc %zmm0,%zmm1,%zmm1 3995 vbroadcasti32x4 112(%rcx),%zmm0 3996 vaesenc %zmm0,%zmm1,%zmm1 3997 vbroadcasti32x4 128(%rcx),%zmm0 3998 vaesenc %zmm0,%zmm1,%zmm1 3999 vbroadcasti32x4 144(%rcx),%zmm0 4000 vaesenc %zmm0,%zmm1,%zmm1 4001 vbroadcasti32x4 160(%rcx),%zmm0 4002 vaesenc %zmm0,%zmm1,%zmm1 4003 vbroadcasti32x4 176(%rcx),%zmm0 4004 vaesenc %zmm0,%zmm1,%zmm1 4005 vbroadcasti32x4 192(%rcx),%zmm0 4006 vaesenc %zmm0,%zmm1,%zmm1 4007 vbroadcasti32x4 208(%rcx),%zmm0 4008 vaesenc %zmm0,%zmm1,%zmm1 4009 vbroadcasti32x4 224(%rcx),%zmm0 4010 vaesenclast %zmm0,%zmm1,%zmm1 4011 vpxorq %zmm9,%zmm1,%zmm1 4012 vmovdqu8 %zmm1,(%rsi) 4013 addq $0x40,%rsi 4014 vextracti32x4 $0x3,%zmm1,%xmm8 4015 vmovdqa64 %xmm10,%xmm0 4016 andq $0xf,%rdx 4017 je .L_ret_wcpqaDvsGlbjGoe 4018 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4019.L_remaining_num_blocks_is_3_wcpqaDvsGlbjGoe: 4020 movq $-1,%r8 4021 shrq $0x10,%r8 4022 kmovq %r8,%k1 4023 vmovdqu8 (%rdi),%zmm1{%k1} 4024 addq $0x30,%rdi 4025 vbroadcasti32x4 (%rcx),%zmm0 4026 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4027 vbroadcasti32x4 16(%rcx),%zmm0 4028 vaesenc %zmm0,%zmm1,%zmm1 4029 vbroadcasti32x4 32(%rcx),%zmm0 4030 vaesenc %zmm0,%zmm1,%zmm1 4031 vbroadcasti32x4 48(%rcx),%zmm0 4032 vaesenc %zmm0,%zmm1,%zmm1 4033 vbroadcasti32x4 64(%rcx),%zmm0 4034 vaesenc %zmm0,%zmm1,%zmm1 4035 vbroadcasti32x4 80(%rcx),%zmm0 4036 vaesenc %zmm0,%zmm1,%zmm1 4037 vbroadcasti32x4 96(%rcx),%zmm0 4038 vaesenc %zmm0,%zmm1,%zmm1 4039 vbroadcasti32x4 112(%rcx),%zmm0 4040 vaesenc %zmm0,%zmm1,%zmm1 4041 vbroadcasti32x4 128(%rcx),%zmm0 4042 vaesenc %zmm0,%zmm1,%zmm1 4043 vbroadcasti32x4 144(%rcx),%zmm0 4044 vaesenc %zmm0,%zmm1,%zmm1 4045 vbroadcasti32x4 160(%rcx),%zmm0 4046 vaesenc %zmm0,%zmm1,%zmm1 4047 vbroadcasti32x4 176(%rcx),%zmm0 4048 vaesenc %zmm0,%zmm1,%zmm1 4049 vbroadcasti32x4 192(%rcx),%zmm0 4050 vaesenc %zmm0,%zmm1,%zmm1 4051 vbroadcasti32x4 208(%rcx),%zmm0 4052 vaesenc %zmm0,%zmm1,%zmm1 4053 vbroadcasti32x4 224(%rcx),%zmm0 4054 vaesenclast %zmm0,%zmm1,%zmm1 4055 vpxorq %zmm9,%zmm1,%zmm1 4056 vmovdqu8 %zmm1,(%rsi){%k1} 4057 addq $0x30,%rsi 4058 vextracti32x4 $0x2,%zmm1,%xmm8 4059 vextracti32x4 $0x3,%zmm9,%xmm0 4060 andq $0xf,%rdx 4061 je .L_ret_wcpqaDvsGlbjGoe 4062 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4063.L_remaining_num_blocks_is_2_wcpqaDvsGlbjGoe: 4064 vmovdqu8 (%rdi),%ymm1 4065 addq $0x20,%rdi 4066 vbroadcasti32x4 (%rcx),%ymm0 4067 vpternlogq $0x96,%ymm0,%ymm9,%ymm1 4068 vbroadcasti32x4 16(%rcx),%ymm0 4069 vaesenc %ymm0,%ymm1,%ymm1 4070 vbroadcasti32x4 32(%rcx),%ymm0 4071 vaesenc %ymm0,%ymm1,%ymm1 4072 vbroadcasti32x4 48(%rcx),%ymm0 4073 vaesenc %ymm0,%ymm1,%ymm1 4074 vbroadcasti32x4 64(%rcx),%ymm0 4075 vaesenc %ymm0,%ymm1,%ymm1 4076 vbroadcasti32x4 80(%rcx),%ymm0 4077 vaesenc %ymm0,%ymm1,%ymm1 4078 vbroadcasti32x4 96(%rcx),%ymm0 4079 vaesenc %ymm0,%ymm1,%ymm1 4080 vbroadcasti32x4 112(%rcx),%ymm0 4081 vaesenc %ymm0,%ymm1,%ymm1 4082 vbroadcasti32x4 128(%rcx),%ymm0 4083 vaesenc %ymm0,%ymm1,%ymm1 4084 vbroadcasti32x4 144(%rcx),%ymm0 4085 vaesenc %ymm0,%ymm1,%ymm1 4086 vbroadcasti32x4 160(%rcx),%ymm0 4087 vaesenc %ymm0,%ymm1,%ymm1 4088 vbroadcasti32x4 176(%rcx),%ymm0 4089 vaesenc %ymm0,%ymm1,%ymm1 4090 vbroadcasti32x4 192(%rcx),%ymm0 4091 vaesenc %ymm0,%ymm1,%ymm1 4092 vbroadcasti32x4 208(%rcx),%ymm0 4093 vaesenc %ymm0,%ymm1,%ymm1 4094 vbroadcasti32x4 224(%rcx),%ymm0 4095 vaesenclast %ymm0,%ymm1,%ymm1 4096 vpxorq %ymm9,%ymm1,%ymm1 4097 vmovdqu %ymm1,(%rsi) 4098 addq $0x20,%rsi 4099 vextracti32x4 $0x1,%zmm1,%xmm8 4100 vextracti32x4 $0x2,%zmm9,%xmm0 4101 andq $0xf,%rdx 4102 je .L_ret_wcpqaDvsGlbjGoe 4103 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4104.L_remaining_num_blocks_is_1_wcpqaDvsGlbjGoe: 4105 vmovdqu (%rdi),%xmm1 4106 addq $0x10,%rdi 4107 vpxor %xmm9,%xmm1,%xmm1 4108 vpxor (%rcx),%xmm1,%xmm1 4109 vaesenc 16(%rcx),%xmm1,%xmm1 4110 vaesenc 32(%rcx),%xmm1,%xmm1 4111 vaesenc 48(%rcx),%xmm1,%xmm1 4112 vaesenc 64(%rcx),%xmm1,%xmm1 4113 vaesenc 80(%rcx),%xmm1,%xmm1 4114 vaesenc 96(%rcx),%xmm1,%xmm1 4115 vaesenc 112(%rcx),%xmm1,%xmm1 4116 vaesenc 128(%rcx),%xmm1,%xmm1 4117 vaesenc 144(%rcx),%xmm1,%xmm1 4118 vaesenc 160(%rcx),%xmm1,%xmm1 4119 vaesenc 176(%rcx),%xmm1,%xmm1 4120 vaesenc 192(%rcx),%xmm1,%xmm1 4121 vaesenc 208(%rcx),%xmm1,%xmm1 4122 vaesenclast 224(%rcx),%xmm1,%xmm1 4123 vpxor %xmm9,%xmm1,%xmm1 4124 vmovdqu %xmm1,(%rsi) 4125 addq $0x10,%rsi 4126 vmovdqa %xmm1,%xmm8 4127 vextracti32x4 $0x1,%zmm9,%xmm0 4128 andq $0xf,%rdx 4129 je .L_ret_wcpqaDvsGlbjGoe 4130 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4131 4132 4133.L_start_by16_wcpqaDvsGlbjGoe: 4134 vbroadcasti32x4 (%rsp),%zmm0 4135 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 4136 movq $0xaa,%r8 4137 kmovq %r8,%k2 4138 vpshufb %zmm8,%zmm0,%zmm1 4139 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4140 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4141 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 4142 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4143 vpxord %zmm4,%zmm3,%zmm9 4144 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4145 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4146 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 4147 vpxorq %zmm6,%zmm5,%zmm5{%k2} 4148 vpxord %zmm5,%zmm7,%zmm10 4149 vpsrldq $0xf,%zmm9,%zmm13 4150 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4151 vpslldq $0x1,%zmm9,%zmm11 4152 vpxord %zmm14,%zmm11,%zmm11 4153 vpsrldq $0xf,%zmm10,%zmm15 4154 vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 4155 vpslldq $0x1,%zmm10,%zmm12 4156 vpxord %zmm16,%zmm12,%zmm12 4157 4158.L_main_loop_run_16_wcpqaDvsGlbjGoe: 4159 vmovdqu8 (%rdi),%zmm1 4160 vmovdqu8 64(%rdi),%zmm2 4161 vmovdqu8 128(%rdi),%zmm3 4162 vmovdqu8 192(%rdi),%zmm4 4163 addq $0x100,%rdi 4164 vpxorq %zmm9,%zmm1,%zmm1 4165 vpxorq %zmm10,%zmm2,%zmm2 4166 vpxorq %zmm11,%zmm3,%zmm3 4167 vpxorq %zmm12,%zmm4,%zmm4 4168 vbroadcasti32x4 (%rcx),%zmm0 4169 vpxorq %zmm0,%zmm1,%zmm1 4170 vpxorq %zmm0,%zmm2,%zmm2 4171 vpxorq %zmm0,%zmm3,%zmm3 4172 vpxorq %zmm0,%zmm4,%zmm4 4173 vpsrldq $0xf,%zmm11,%zmm13 4174 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4175 vpslldq $0x1,%zmm11,%zmm15 4176 vpxord %zmm14,%zmm15,%zmm15 4177 vbroadcasti32x4 16(%rcx),%zmm0 4178 vaesenc %zmm0,%zmm1,%zmm1 4179 vaesenc %zmm0,%zmm2,%zmm2 4180 vaesenc %zmm0,%zmm3,%zmm3 4181 vaesenc %zmm0,%zmm4,%zmm4 4182 vbroadcasti32x4 32(%rcx),%zmm0 4183 vaesenc %zmm0,%zmm1,%zmm1 4184 vaesenc %zmm0,%zmm2,%zmm2 4185 vaesenc %zmm0,%zmm3,%zmm3 4186 vaesenc %zmm0,%zmm4,%zmm4 4187 vbroadcasti32x4 48(%rcx),%zmm0 4188 vaesenc %zmm0,%zmm1,%zmm1 4189 vaesenc %zmm0,%zmm2,%zmm2 4190 vaesenc %zmm0,%zmm3,%zmm3 4191 vaesenc %zmm0,%zmm4,%zmm4 4192 vpsrldq $0xf,%zmm12,%zmm13 4193 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4194 vpslldq $0x1,%zmm12,%zmm16 4195 vpxord %zmm14,%zmm16,%zmm16 4196 vbroadcasti32x4 64(%rcx),%zmm0 4197 vaesenc %zmm0,%zmm1,%zmm1 4198 vaesenc %zmm0,%zmm2,%zmm2 4199 vaesenc %zmm0,%zmm3,%zmm3 4200 vaesenc %zmm0,%zmm4,%zmm4 4201 vbroadcasti32x4 80(%rcx),%zmm0 4202 vaesenc %zmm0,%zmm1,%zmm1 4203 vaesenc %zmm0,%zmm2,%zmm2 4204 vaesenc %zmm0,%zmm3,%zmm3 4205 vaesenc %zmm0,%zmm4,%zmm4 4206 vbroadcasti32x4 96(%rcx),%zmm0 4207 vaesenc %zmm0,%zmm1,%zmm1 4208 vaesenc %zmm0,%zmm2,%zmm2 4209 vaesenc %zmm0,%zmm3,%zmm3 4210 vaesenc %zmm0,%zmm4,%zmm4 4211 vpsrldq $0xf,%zmm15,%zmm13 4212 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4213 vpslldq $0x1,%zmm15,%zmm17 4214 vpxord %zmm14,%zmm17,%zmm17 4215 vbroadcasti32x4 112(%rcx),%zmm0 4216 vaesenc %zmm0,%zmm1,%zmm1 4217 vaesenc %zmm0,%zmm2,%zmm2 4218 vaesenc %zmm0,%zmm3,%zmm3 4219 vaesenc %zmm0,%zmm4,%zmm4 4220 vbroadcasti32x4 128(%rcx),%zmm0 4221 vaesenc %zmm0,%zmm1,%zmm1 4222 vaesenc %zmm0,%zmm2,%zmm2 4223 vaesenc %zmm0,%zmm3,%zmm3 4224 vaesenc %zmm0,%zmm4,%zmm4 4225 vbroadcasti32x4 144(%rcx),%zmm0 4226 vaesenc %zmm0,%zmm1,%zmm1 4227 vaesenc %zmm0,%zmm2,%zmm2 4228 vaesenc %zmm0,%zmm3,%zmm3 4229 vaesenc %zmm0,%zmm4,%zmm4 4230 vpsrldq $0xf,%zmm16,%zmm13 4231 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4232 vpslldq $0x1,%zmm16,%zmm18 4233 vpxord %zmm14,%zmm18,%zmm18 4234 vbroadcasti32x4 160(%rcx),%zmm0 4235 vaesenc %zmm0,%zmm1,%zmm1 4236 vaesenc %zmm0,%zmm2,%zmm2 4237 vaesenc %zmm0,%zmm3,%zmm3 4238 vaesenc %zmm0,%zmm4,%zmm4 4239 vbroadcasti32x4 176(%rcx),%zmm0 4240 vaesenc %zmm0,%zmm1,%zmm1 4241 vaesenc %zmm0,%zmm2,%zmm2 4242 vaesenc %zmm0,%zmm3,%zmm3 4243 vaesenc %zmm0,%zmm4,%zmm4 4244 vbroadcasti32x4 192(%rcx),%zmm0 4245 vaesenc %zmm0,%zmm1,%zmm1 4246 vaesenc %zmm0,%zmm2,%zmm2 4247 vaesenc %zmm0,%zmm3,%zmm3 4248 vaesenc %zmm0,%zmm4,%zmm4 4249 vbroadcasti32x4 208(%rcx),%zmm0 4250 vaesenc %zmm0,%zmm1,%zmm1 4251 vaesenc %zmm0,%zmm2,%zmm2 4252 vaesenc %zmm0,%zmm3,%zmm3 4253 vaesenc %zmm0,%zmm4,%zmm4 4254 vbroadcasti32x4 224(%rcx),%zmm0 4255 vaesenclast %zmm0,%zmm1,%zmm1 4256 vaesenclast %zmm0,%zmm2,%zmm2 4257 vaesenclast %zmm0,%zmm3,%zmm3 4258 vaesenclast %zmm0,%zmm4,%zmm4 4259 vpxorq %zmm9,%zmm1,%zmm1 4260 vpxorq %zmm10,%zmm2,%zmm2 4261 vpxorq %zmm11,%zmm3,%zmm3 4262 vpxorq %zmm12,%zmm4,%zmm4 4263 4264 vmovdqa32 %zmm15,%zmm9 4265 vmovdqa32 %zmm16,%zmm10 4266 vmovdqa32 %zmm17,%zmm11 4267 vmovdqa32 %zmm18,%zmm12 4268 vmovdqu8 %zmm1,(%rsi) 4269 vmovdqu8 %zmm2,64(%rsi) 4270 vmovdqu8 %zmm3,128(%rsi) 4271 vmovdqu8 %zmm4,192(%rsi) 4272 addq $0x100,%rsi 4273 subq $0x100,%rdx 4274 cmpq $0x100,%rdx 4275 jae .L_main_loop_run_16_wcpqaDvsGlbjGoe 4276 cmpq $0x80,%rdx 4277 jae .L_main_loop_run_8_wcpqaDvsGlbjGoe 4278 vextracti32x4 $0x3,%zmm4,%xmm0 4279 jmp .L_do_n_blocks_wcpqaDvsGlbjGoe 4280 4281.L_start_by8_wcpqaDvsGlbjGoe: 4282 vbroadcasti32x4 (%rsp),%zmm0 4283 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 4284 movq $0xaa,%r8 4285 kmovq %r8,%k2 4286 vpshufb %zmm8,%zmm0,%zmm1 4287 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4288 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4289 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 4290 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4291 vpxord %zmm4,%zmm3,%zmm9 4292 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4293 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4294 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 4295 vpxorq %zmm6,%zmm5,%zmm5{%k2} 4296 vpxord %zmm5,%zmm7,%zmm10 4297 4298.L_main_loop_run_8_wcpqaDvsGlbjGoe: 4299 vmovdqu8 (%rdi),%zmm1 4300 vmovdqu8 64(%rdi),%zmm2 4301 addq $0x80,%rdi 4302 vbroadcasti32x4 (%rcx),%zmm0 4303 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4304 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4305 vpsrldq $0xf,%zmm9,%zmm13 4306 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4307 vpslldq $0x1,%zmm9,%zmm15 4308 vpxord %zmm14,%zmm15,%zmm15 4309 vbroadcasti32x4 16(%rcx),%zmm0 4310 vaesenc %zmm0,%zmm1,%zmm1 4311 vaesenc %zmm0,%zmm2,%zmm2 4312 4313 4314 vbroadcasti32x4 32(%rcx),%zmm0 4315 vaesenc %zmm0,%zmm1,%zmm1 4316 vaesenc %zmm0,%zmm2,%zmm2 4317 4318 4319 vbroadcasti32x4 48(%rcx),%zmm0 4320 vaesenc %zmm0,%zmm1,%zmm1 4321 vaesenc %zmm0,%zmm2,%zmm2 4322 vpsrldq $0xf,%zmm10,%zmm13 4323 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 4324 vpslldq $0x1,%zmm10,%zmm16 4325 vpxord %zmm14,%zmm16,%zmm16 4326 4327 vbroadcasti32x4 64(%rcx),%zmm0 4328 vaesenc %zmm0,%zmm1,%zmm1 4329 vaesenc %zmm0,%zmm2,%zmm2 4330 4331 4332 vbroadcasti32x4 80(%rcx),%zmm0 4333 vaesenc %zmm0,%zmm1,%zmm1 4334 vaesenc %zmm0,%zmm2,%zmm2 4335 4336 4337 vbroadcasti32x4 96(%rcx),%zmm0 4338 vaesenc %zmm0,%zmm1,%zmm1 4339 vaesenc %zmm0,%zmm2,%zmm2 4340 4341 4342 vbroadcasti32x4 112(%rcx),%zmm0 4343 vaesenc %zmm0,%zmm1,%zmm1 4344 vaesenc %zmm0,%zmm2,%zmm2 4345 4346 4347 vbroadcasti32x4 128(%rcx),%zmm0 4348 vaesenc %zmm0,%zmm1,%zmm1 4349 vaesenc %zmm0,%zmm2,%zmm2 4350 4351 4352 vbroadcasti32x4 144(%rcx),%zmm0 4353 vaesenc %zmm0,%zmm1,%zmm1 4354 vaesenc %zmm0,%zmm2,%zmm2 4355 4356 vbroadcasti32x4 160(%rcx),%zmm0 4357 vaesenc %zmm0,%zmm1,%zmm1 4358 vaesenc %zmm0,%zmm2,%zmm2 4359 4360 4361 vbroadcasti32x4 176(%rcx),%zmm0 4362 vaesenc %zmm0,%zmm1,%zmm1 4363 vaesenc %zmm0,%zmm2,%zmm2 4364 4365 4366 vbroadcasti32x4 192(%rcx),%zmm0 4367 vaesenc %zmm0,%zmm1,%zmm1 4368 vaesenc %zmm0,%zmm2,%zmm2 4369 4370 4371 vbroadcasti32x4 208(%rcx),%zmm0 4372 vaesenc %zmm0,%zmm1,%zmm1 4373 vaesenc %zmm0,%zmm2,%zmm2 4374 4375 4376 vbroadcasti32x4 224(%rcx),%zmm0 4377 vaesenclast %zmm0,%zmm1,%zmm1 4378 vaesenclast %zmm0,%zmm2,%zmm2 4379 vpxorq %zmm9,%zmm1,%zmm1 4380 vpxorq %zmm10,%zmm2,%zmm2 4381 vmovdqa32 %zmm15,%zmm9 4382 vmovdqa32 %zmm16,%zmm10 4383 vmovdqu8 %zmm1,(%rsi) 4384 vmovdqu8 %zmm2,64(%rsi) 4385 addq $0x80,%rsi 4386 subq $0x80,%rdx 4387 cmpq $0x80,%rdx 4388 jae .L_main_loop_run_8_wcpqaDvsGlbjGoe 4389 vextracti32x4 $0x3,%zmm2,%xmm0 4390 jmp .L_do_n_blocks_wcpqaDvsGlbjGoe 4391 4392.L_steal_cipher_wcpqaDvsGlbjGoe: 4393 vmovdqa %xmm8,%xmm2 4394 leaq vpshufb_shf_table(%rip),%rax 4395 vmovdqu (%rax,%rdx,1),%xmm10 4396 vpshufb %xmm10,%xmm8,%xmm8 4397 vmovdqu -16(%rdi,%rdx,1),%xmm3 4398 vmovdqu %xmm8,-16(%rsi,%rdx,1) 4399 leaq vpshufb_shf_table(%rip),%rax 4400 addq $16,%rax 4401 subq %rdx,%rax 4402 vmovdqu (%rax),%xmm10 4403 vpxor mask1(%rip),%xmm10,%xmm10 4404 vpshufb %xmm10,%xmm3,%xmm3 4405 vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 4406 vpxor %xmm0,%xmm3,%xmm8 4407 vpxor (%rcx),%xmm8,%xmm8 4408 vaesenc 16(%rcx),%xmm8,%xmm8 4409 vaesenc 32(%rcx),%xmm8,%xmm8 4410 vaesenc 48(%rcx),%xmm8,%xmm8 4411 vaesenc 64(%rcx),%xmm8,%xmm8 4412 vaesenc 80(%rcx),%xmm8,%xmm8 4413 vaesenc 96(%rcx),%xmm8,%xmm8 4414 vaesenc 112(%rcx),%xmm8,%xmm8 4415 vaesenc 128(%rcx),%xmm8,%xmm8 4416 vaesenc 144(%rcx),%xmm8,%xmm8 4417 vaesenc 160(%rcx),%xmm8,%xmm8 4418 vaesenc 176(%rcx),%xmm8,%xmm8 4419 vaesenc 192(%rcx),%xmm8,%xmm8 4420 vaesenc 208(%rcx),%xmm8,%xmm8 4421 vaesenclast 224(%rcx),%xmm8,%xmm8 4422 vpxor %xmm0,%xmm8,%xmm8 4423 vmovdqu %xmm8,-16(%rsi) 4424.L_ret_wcpqaDvsGlbjGoe: 4425 movq 128(%rsp),%rbx 4426 xorq %r8,%r8 4427 movq %r8,128(%rsp) 4428 4429 vpxorq %zmm0,%zmm0,%zmm0 4430 movq %rbp,%rsp 4431 popq %rbp 4432 vzeroupper 4433 .byte 0xf3,0xc3 4434 4435.L_less_than_128_bytes_wcpqaDvsGlbjGoe: 4436 vpbroadcastq %r10,%zmm25 4437 cmpq $0x10,%rdx 4438 jb .L_ret_wcpqaDvsGlbjGoe 4439 vbroadcasti32x4 (%rsp),%zmm0 4440 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 4441 movl $0xaa,%r8d 4442 kmovq %r8,%k2 4443 movq %rdx,%r8 4444 andq $0x70,%r8 4445 cmpq $0x60,%r8 4446 je .L_num_blocks_is_6_wcpqaDvsGlbjGoe 4447 cmpq $0x50,%r8 4448 je .L_num_blocks_is_5_wcpqaDvsGlbjGoe 4449 cmpq $0x40,%r8 4450 je .L_num_blocks_is_4_wcpqaDvsGlbjGoe 4451 cmpq $0x30,%r8 4452 je .L_num_blocks_is_3_wcpqaDvsGlbjGoe 4453 cmpq $0x20,%r8 4454 je .L_num_blocks_is_2_wcpqaDvsGlbjGoe 4455 cmpq $0x10,%r8 4456 je .L_num_blocks_is_1_wcpqaDvsGlbjGoe 4457 4458.L_num_blocks_is_7_wcpqaDvsGlbjGoe: 4459 vpshufb %zmm8,%zmm0,%zmm1 4460 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4461 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4462 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4463 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4464 vpxord %zmm4,%zmm3,%zmm9 4465 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4466 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4467 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4468 vpxorq %zmm6,%zmm5,%zmm5{%k2} 4469 vpxord %zmm5,%zmm7,%zmm10 4470 movq $0x0000ffffffffffff,%r8 4471 kmovq %r8,%k1 4472 vmovdqu8 0(%rdi),%zmm1 4473 vmovdqu8 64(%rdi),%zmm2{%k1} 4474 4475 addq $0x70,%rdi 4476 vbroadcasti32x4 (%rcx),%zmm0 4477 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4478 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4479 vbroadcasti32x4 16(%rcx),%zmm0 4480 vaesenc %zmm0,%zmm1,%zmm1 4481 vaesenc %zmm0,%zmm2,%zmm2 4482 4483 4484 vbroadcasti32x4 32(%rcx),%zmm0 4485 vaesenc %zmm0,%zmm1,%zmm1 4486 vaesenc %zmm0,%zmm2,%zmm2 4487 4488 4489 vbroadcasti32x4 48(%rcx),%zmm0 4490 vaesenc %zmm0,%zmm1,%zmm1 4491 vaesenc %zmm0,%zmm2,%zmm2 4492 4493 vbroadcasti32x4 64(%rcx),%zmm0 4494 vaesenc %zmm0,%zmm1,%zmm1 4495 vaesenc %zmm0,%zmm2,%zmm2 4496 4497 4498 vbroadcasti32x4 80(%rcx),%zmm0 4499 vaesenc %zmm0,%zmm1,%zmm1 4500 vaesenc %zmm0,%zmm2,%zmm2 4501 4502 4503 vbroadcasti32x4 96(%rcx),%zmm0 4504 vaesenc %zmm0,%zmm1,%zmm1 4505 vaesenc %zmm0,%zmm2,%zmm2 4506 4507 4508 vbroadcasti32x4 112(%rcx),%zmm0 4509 vaesenc %zmm0,%zmm1,%zmm1 4510 vaesenc %zmm0,%zmm2,%zmm2 4511 4512 4513 vbroadcasti32x4 128(%rcx),%zmm0 4514 vaesenc %zmm0,%zmm1,%zmm1 4515 vaesenc %zmm0,%zmm2,%zmm2 4516 4517 4518 vbroadcasti32x4 144(%rcx),%zmm0 4519 vaesenc %zmm0,%zmm1,%zmm1 4520 vaesenc %zmm0,%zmm2,%zmm2 4521 4522 vbroadcasti32x4 160(%rcx),%zmm0 4523 vaesenc %zmm0,%zmm1,%zmm1 4524 vaesenc %zmm0,%zmm2,%zmm2 4525 4526 4527 vbroadcasti32x4 176(%rcx),%zmm0 4528 vaesenc %zmm0,%zmm1,%zmm1 4529 vaesenc %zmm0,%zmm2,%zmm2 4530 4531 4532 vbroadcasti32x4 192(%rcx),%zmm0 4533 vaesenc %zmm0,%zmm1,%zmm1 4534 vaesenc %zmm0,%zmm2,%zmm2 4535 4536 4537 vbroadcasti32x4 208(%rcx),%zmm0 4538 vaesenc %zmm0,%zmm1,%zmm1 4539 vaesenc %zmm0,%zmm2,%zmm2 4540 4541 4542 vbroadcasti32x4 224(%rcx),%zmm0 4543 vaesenclast %zmm0,%zmm1,%zmm1 4544 vaesenclast %zmm0,%zmm2,%zmm2 4545 vpxorq %zmm9,%zmm1,%zmm1 4546 vpxorq %zmm10,%zmm2,%zmm2 4547 vmovdqu8 %zmm1,0(%rsi) 4548 vmovdqu8 %zmm2,64(%rsi){%k1} 4549 addq $0x70,%rsi 4550 vextracti32x4 $0x2,%zmm2,%xmm8 4551 vextracti32x4 $0x3,%zmm10,%xmm0 4552 andq $0xf,%rdx 4553 je .L_ret_wcpqaDvsGlbjGoe 4554 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4555.L_num_blocks_is_6_wcpqaDvsGlbjGoe: 4556 vpshufb %zmm8,%zmm0,%zmm1 4557 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4558 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4559 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4560 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4561 vpxord %zmm4,%zmm3,%zmm9 4562 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4563 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4564 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4565 vpxorq %zmm6,%zmm5,%zmm5{%k2} 4566 vpxord %zmm5,%zmm7,%zmm10 4567 vmovdqu8 0(%rdi),%zmm1 4568 vmovdqu8 64(%rdi),%ymm2 4569 addq $96,%rdi 4570 vbroadcasti32x4 (%rcx),%zmm0 4571 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4572 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4573 vbroadcasti32x4 16(%rcx),%zmm0 4574 vaesenc %zmm0,%zmm1,%zmm1 4575 vaesenc %zmm0,%zmm2,%zmm2 4576 4577 4578 vbroadcasti32x4 32(%rcx),%zmm0 4579 vaesenc %zmm0,%zmm1,%zmm1 4580 vaesenc %zmm0,%zmm2,%zmm2 4581 4582 4583 vbroadcasti32x4 48(%rcx),%zmm0 4584 vaesenc %zmm0,%zmm1,%zmm1 4585 vaesenc %zmm0,%zmm2,%zmm2 4586 4587 vbroadcasti32x4 64(%rcx),%zmm0 4588 vaesenc %zmm0,%zmm1,%zmm1 4589 vaesenc %zmm0,%zmm2,%zmm2 4590 4591 4592 vbroadcasti32x4 80(%rcx),%zmm0 4593 vaesenc %zmm0,%zmm1,%zmm1 4594 vaesenc %zmm0,%zmm2,%zmm2 4595 4596 4597 vbroadcasti32x4 96(%rcx),%zmm0 4598 vaesenc %zmm0,%zmm1,%zmm1 4599 vaesenc %zmm0,%zmm2,%zmm2 4600 4601 4602 vbroadcasti32x4 112(%rcx),%zmm0 4603 vaesenc %zmm0,%zmm1,%zmm1 4604 vaesenc %zmm0,%zmm2,%zmm2 4605 4606 4607 vbroadcasti32x4 128(%rcx),%zmm0 4608 vaesenc %zmm0,%zmm1,%zmm1 4609 vaesenc %zmm0,%zmm2,%zmm2 4610 4611 4612 vbroadcasti32x4 144(%rcx),%zmm0 4613 vaesenc %zmm0,%zmm1,%zmm1 4614 vaesenc %zmm0,%zmm2,%zmm2 4615 4616 vbroadcasti32x4 160(%rcx),%zmm0 4617 vaesenc %zmm0,%zmm1,%zmm1 4618 vaesenc %zmm0,%zmm2,%zmm2 4619 4620 4621 vbroadcasti32x4 176(%rcx),%zmm0 4622 vaesenc %zmm0,%zmm1,%zmm1 4623 vaesenc %zmm0,%zmm2,%zmm2 4624 4625 4626 vbroadcasti32x4 192(%rcx),%zmm0 4627 vaesenc %zmm0,%zmm1,%zmm1 4628 vaesenc %zmm0,%zmm2,%zmm2 4629 4630 4631 vbroadcasti32x4 208(%rcx),%zmm0 4632 vaesenc %zmm0,%zmm1,%zmm1 4633 vaesenc %zmm0,%zmm2,%zmm2 4634 4635 4636 vbroadcasti32x4 224(%rcx),%zmm0 4637 vaesenclast %zmm0,%zmm1,%zmm1 4638 vaesenclast %zmm0,%zmm2,%zmm2 4639 vpxorq %zmm9,%zmm1,%zmm1 4640 vpxorq %zmm10,%zmm2,%zmm2 4641 vmovdqu8 %zmm1,0(%rsi) 4642 vmovdqu8 %ymm2,64(%rsi) 4643 addq $96,%rsi 4644 4645 vextracti32x4 $0x1,%ymm2,%xmm8 4646 vextracti32x4 $0x2,%zmm10,%xmm0 4647 andq $0xf,%rdx 4648 je .L_ret_wcpqaDvsGlbjGoe 4649 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4650.L_num_blocks_is_5_wcpqaDvsGlbjGoe: 4651 vpshufb %zmm8,%zmm0,%zmm1 4652 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4653 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4654 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4655 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4656 vpxord %zmm4,%zmm3,%zmm9 4657 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4658 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4659 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4660 vpxorq %zmm6,%zmm5,%zmm5{%k2} 4661 vpxord %zmm5,%zmm7,%zmm10 4662 vmovdqu8 0(%rdi),%zmm1 4663 vmovdqu8 64(%rdi),%xmm2 4664 addq $80,%rdi 4665 vbroadcasti32x4 (%rcx),%zmm0 4666 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4667 vpternlogq $0x96,%zmm0,%zmm10,%zmm2 4668 vbroadcasti32x4 16(%rcx),%zmm0 4669 vaesenc %zmm0,%zmm1,%zmm1 4670 vaesenc %zmm0,%zmm2,%zmm2 4671 4672 4673 vbroadcasti32x4 32(%rcx),%zmm0 4674 vaesenc %zmm0,%zmm1,%zmm1 4675 vaesenc %zmm0,%zmm2,%zmm2 4676 4677 4678 vbroadcasti32x4 48(%rcx),%zmm0 4679 vaesenc %zmm0,%zmm1,%zmm1 4680 vaesenc %zmm0,%zmm2,%zmm2 4681 4682 vbroadcasti32x4 64(%rcx),%zmm0 4683 vaesenc %zmm0,%zmm1,%zmm1 4684 vaesenc %zmm0,%zmm2,%zmm2 4685 4686 4687 vbroadcasti32x4 80(%rcx),%zmm0 4688 vaesenc %zmm0,%zmm1,%zmm1 4689 vaesenc %zmm0,%zmm2,%zmm2 4690 4691 4692 vbroadcasti32x4 96(%rcx),%zmm0 4693 vaesenc %zmm0,%zmm1,%zmm1 4694 vaesenc %zmm0,%zmm2,%zmm2 4695 4696 4697 vbroadcasti32x4 112(%rcx),%zmm0 4698 vaesenc %zmm0,%zmm1,%zmm1 4699 vaesenc %zmm0,%zmm2,%zmm2 4700 4701 4702 vbroadcasti32x4 128(%rcx),%zmm0 4703 vaesenc %zmm0,%zmm1,%zmm1 4704 vaesenc %zmm0,%zmm2,%zmm2 4705 4706 4707 vbroadcasti32x4 144(%rcx),%zmm0 4708 vaesenc %zmm0,%zmm1,%zmm1 4709 vaesenc %zmm0,%zmm2,%zmm2 4710 4711 vbroadcasti32x4 160(%rcx),%zmm0 4712 vaesenc %zmm0,%zmm1,%zmm1 4713 vaesenc %zmm0,%zmm2,%zmm2 4714 4715 4716 vbroadcasti32x4 176(%rcx),%zmm0 4717 vaesenc %zmm0,%zmm1,%zmm1 4718 vaesenc %zmm0,%zmm2,%zmm2 4719 4720 4721 vbroadcasti32x4 192(%rcx),%zmm0 4722 vaesenc %zmm0,%zmm1,%zmm1 4723 vaesenc %zmm0,%zmm2,%zmm2 4724 4725 4726 vbroadcasti32x4 208(%rcx),%zmm0 4727 vaesenc %zmm0,%zmm1,%zmm1 4728 vaesenc %zmm0,%zmm2,%zmm2 4729 4730 4731 vbroadcasti32x4 224(%rcx),%zmm0 4732 vaesenclast %zmm0,%zmm1,%zmm1 4733 vaesenclast %zmm0,%zmm2,%zmm2 4734 vpxorq %zmm9,%zmm1,%zmm1 4735 vpxorq %zmm10,%zmm2,%zmm2 4736 vmovdqu8 %zmm1,0(%rsi) 4737 vmovdqu8 %xmm2,64(%rsi) 4738 addq $80,%rsi 4739 4740 vmovdqa %xmm2,%xmm8 4741 vextracti32x4 $0x1,%zmm10,%xmm0 4742 andq $0xf,%rdx 4743 je .L_ret_wcpqaDvsGlbjGoe 4744 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4745.L_num_blocks_is_4_wcpqaDvsGlbjGoe: 4746 vpshufb %zmm8,%zmm0,%zmm1 4747 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4748 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4749 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4750 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4751 vpxord %zmm4,%zmm3,%zmm9 4752 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 4753 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 4754 vpclmulqdq $0x00,%zmm25,%zmm6,%zmm7 4755 vpxorq %zmm6,%zmm5,%zmm5{%k2} 4756 vpxord %zmm5,%zmm7,%zmm10 4757 vmovdqu8 0(%rdi),%zmm1 4758 addq $64,%rdi 4759 vbroadcasti32x4 (%rcx),%zmm0 4760 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4761 vbroadcasti32x4 16(%rcx),%zmm0 4762 vaesenc %zmm0,%zmm1,%zmm1 4763 vbroadcasti32x4 32(%rcx),%zmm0 4764 vaesenc %zmm0,%zmm1,%zmm1 4765 vbroadcasti32x4 48(%rcx),%zmm0 4766 vaesenc %zmm0,%zmm1,%zmm1 4767 vbroadcasti32x4 64(%rcx),%zmm0 4768 vaesenc %zmm0,%zmm1,%zmm1 4769 vbroadcasti32x4 80(%rcx),%zmm0 4770 vaesenc %zmm0,%zmm1,%zmm1 4771 vbroadcasti32x4 96(%rcx),%zmm0 4772 vaesenc %zmm0,%zmm1,%zmm1 4773 vbroadcasti32x4 112(%rcx),%zmm0 4774 vaesenc %zmm0,%zmm1,%zmm1 4775 vbroadcasti32x4 128(%rcx),%zmm0 4776 vaesenc %zmm0,%zmm1,%zmm1 4777 vbroadcasti32x4 144(%rcx),%zmm0 4778 vaesenc %zmm0,%zmm1,%zmm1 4779 vbroadcasti32x4 160(%rcx),%zmm0 4780 vaesenc %zmm0,%zmm1,%zmm1 4781 vbroadcasti32x4 176(%rcx),%zmm0 4782 vaesenc %zmm0,%zmm1,%zmm1 4783 vbroadcasti32x4 192(%rcx),%zmm0 4784 vaesenc %zmm0,%zmm1,%zmm1 4785 vbroadcasti32x4 208(%rcx),%zmm0 4786 vaesenc %zmm0,%zmm1,%zmm1 4787 vbroadcasti32x4 224(%rcx),%zmm0 4788 vaesenclast %zmm0,%zmm1,%zmm1 4789 vpxorq %zmm9,%zmm1,%zmm1 4790 vmovdqu8 %zmm1,0(%rsi) 4791 addq $64,%rsi 4792 vextracti32x4 $0x3,%zmm1,%xmm8 4793 vmovdqa %xmm10,%xmm0 4794 andq $0xf,%rdx 4795 je .L_ret_wcpqaDvsGlbjGoe 4796 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4797.L_num_blocks_is_3_wcpqaDvsGlbjGoe: 4798 vpshufb %zmm8,%zmm0,%zmm1 4799 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4800 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4801 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4802 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4803 vpxord %zmm4,%zmm3,%zmm9 4804 movq $0x0000ffffffffffff,%r8 4805 kmovq %r8,%k1 4806 vmovdqu8 0(%rdi),%zmm1{%k1} 4807 addq $48,%rdi 4808 vbroadcasti32x4 (%rcx),%zmm0 4809 vpternlogq $0x96,%zmm0,%zmm9,%zmm1 4810 vbroadcasti32x4 16(%rcx),%zmm0 4811 vaesenc %zmm0,%zmm1,%zmm1 4812 vbroadcasti32x4 32(%rcx),%zmm0 4813 vaesenc %zmm0,%zmm1,%zmm1 4814 vbroadcasti32x4 48(%rcx),%zmm0 4815 vaesenc %zmm0,%zmm1,%zmm1 4816 vbroadcasti32x4 64(%rcx),%zmm0 4817 vaesenc %zmm0,%zmm1,%zmm1 4818 vbroadcasti32x4 80(%rcx),%zmm0 4819 vaesenc %zmm0,%zmm1,%zmm1 4820 vbroadcasti32x4 96(%rcx),%zmm0 4821 vaesenc %zmm0,%zmm1,%zmm1 4822 vbroadcasti32x4 112(%rcx),%zmm0 4823 vaesenc %zmm0,%zmm1,%zmm1 4824 vbroadcasti32x4 128(%rcx),%zmm0 4825 vaesenc %zmm0,%zmm1,%zmm1 4826 vbroadcasti32x4 144(%rcx),%zmm0 4827 vaesenc %zmm0,%zmm1,%zmm1 4828 vbroadcasti32x4 160(%rcx),%zmm0 4829 vaesenc %zmm0,%zmm1,%zmm1 4830 vbroadcasti32x4 176(%rcx),%zmm0 4831 vaesenc %zmm0,%zmm1,%zmm1 4832 vbroadcasti32x4 192(%rcx),%zmm0 4833 vaesenc %zmm0,%zmm1,%zmm1 4834 vbroadcasti32x4 208(%rcx),%zmm0 4835 vaesenc %zmm0,%zmm1,%zmm1 4836 vbroadcasti32x4 224(%rcx),%zmm0 4837 vaesenclast %zmm0,%zmm1,%zmm1 4838 vpxorq %zmm9,%zmm1,%zmm1 4839 vmovdqu8 %zmm1,0(%rsi){%k1} 4840 addq $48,%rsi 4841 vextracti32x4 $2,%zmm1,%xmm8 4842 vextracti32x4 $3,%zmm9,%xmm0 4843 andq $0xf,%rdx 4844 je .L_ret_wcpqaDvsGlbjGoe 4845 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4846.L_num_blocks_is_2_wcpqaDvsGlbjGoe: 4847 vpshufb %zmm8,%zmm0,%zmm1 4848 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4849 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4850 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4851 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4852 vpxord %zmm4,%zmm3,%zmm9 4853 4854 vmovdqu8 0(%rdi),%ymm1 4855 addq $32,%rdi 4856 vbroadcasti32x4 (%rcx),%ymm0 4857 vpternlogq $0x96,%ymm0,%ymm9,%ymm1 4858 vbroadcasti32x4 16(%rcx),%ymm0 4859 vaesenc %ymm0,%ymm1,%ymm1 4860 vbroadcasti32x4 32(%rcx),%ymm0 4861 vaesenc %ymm0,%ymm1,%ymm1 4862 vbroadcasti32x4 48(%rcx),%ymm0 4863 vaesenc %ymm0,%ymm1,%ymm1 4864 vbroadcasti32x4 64(%rcx),%ymm0 4865 vaesenc %ymm0,%ymm1,%ymm1 4866 vbroadcasti32x4 80(%rcx),%ymm0 4867 vaesenc %ymm0,%ymm1,%ymm1 4868 vbroadcasti32x4 96(%rcx),%ymm0 4869 vaesenc %ymm0,%ymm1,%ymm1 4870 vbroadcasti32x4 112(%rcx),%ymm0 4871 vaesenc %ymm0,%ymm1,%ymm1 4872 vbroadcasti32x4 128(%rcx),%ymm0 4873 vaesenc %ymm0,%ymm1,%ymm1 4874 vbroadcasti32x4 144(%rcx),%ymm0 4875 vaesenc %ymm0,%ymm1,%ymm1 4876 vbroadcasti32x4 160(%rcx),%ymm0 4877 vaesenc %ymm0,%ymm1,%ymm1 4878 vbroadcasti32x4 176(%rcx),%ymm0 4879 vaesenc %ymm0,%ymm1,%ymm1 4880 vbroadcasti32x4 192(%rcx),%ymm0 4881 vaesenc %ymm0,%ymm1,%ymm1 4882 vbroadcasti32x4 208(%rcx),%ymm0 4883 vaesenc %ymm0,%ymm1,%ymm1 4884 vbroadcasti32x4 224(%rcx),%ymm0 4885 vaesenclast %ymm0,%ymm1,%ymm1 4886 vpxorq %ymm9,%ymm1,%ymm1 4887 vmovdqu8 %ymm1,0(%rsi) 4888 addq $32,%rsi 4889 4890 vextracti32x4 $1,%ymm1,%xmm8 4891 vextracti32x4 $2,%zmm9,%xmm0 4892 andq $0xf,%rdx 4893 je .L_ret_wcpqaDvsGlbjGoe 4894 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4895.L_num_blocks_is_1_wcpqaDvsGlbjGoe: 4896 vpshufb %zmm8,%zmm0,%zmm1 4897 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 4898 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 4899 vpclmulqdq $0x00,%zmm25,%zmm2,%zmm3 4900 vpxorq %zmm2,%zmm4,%zmm4{%k2} 4901 vpxord %zmm4,%zmm3,%zmm9 4902 4903 vmovdqu8 0(%rdi),%xmm1 4904 addq $16,%rdi 4905 vbroadcasti32x4 (%rcx),%ymm0 4906 vpternlogq $0x96,%ymm0,%ymm9,%ymm1 4907 vbroadcasti32x4 16(%rcx),%ymm0 4908 vaesenc %ymm0,%ymm1,%ymm1 4909 vbroadcasti32x4 32(%rcx),%ymm0 4910 vaesenc %ymm0,%ymm1,%ymm1 4911 vbroadcasti32x4 48(%rcx),%ymm0 4912 vaesenc %ymm0,%ymm1,%ymm1 4913 vbroadcasti32x4 64(%rcx),%ymm0 4914 vaesenc %ymm0,%ymm1,%ymm1 4915 vbroadcasti32x4 80(%rcx),%ymm0 4916 vaesenc %ymm0,%ymm1,%ymm1 4917 vbroadcasti32x4 96(%rcx),%ymm0 4918 vaesenc %ymm0,%ymm1,%ymm1 4919 vbroadcasti32x4 112(%rcx),%ymm0 4920 vaesenc %ymm0,%ymm1,%ymm1 4921 vbroadcasti32x4 128(%rcx),%ymm0 4922 vaesenc %ymm0,%ymm1,%ymm1 4923 vbroadcasti32x4 144(%rcx),%ymm0 4924 vaesenc %ymm0,%ymm1,%ymm1 4925 vbroadcasti32x4 160(%rcx),%ymm0 4926 vaesenc %ymm0,%ymm1,%ymm1 4927 vbroadcasti32x4 176(%rcx),%ymm0 4928 vaesenc %ymm0,%ymm1,%ymm1 4929 vbroadcasti32x4 192(%rcx),%ymm0 4930 vaesenc %ymm0,%ymm1,%ymm1 4931 vbroadcasti32x4 208(%rcx),%ymm0 4932 vaesenc %ymm0,%ymm1,%ymm1 4933 vbroadcasti32x4 224(%rcx),%ymm0 4934 vaesenclast %ymm0,%ymm1,%ymm1 4935 vpxorq %ymm9,%ymm1,%ymm1 4936 vmovdqu8 %xmm1,0(%rsi) 4937 addq $16,%rsi 4938 4939 vmovdqa %xmm1,%xmm8 4940 vextracti32x4 $1,%zmm9,%xmm0 4941 andq $0xf,%rdx 4942 je .L_ret_wcpqaDvsGlbjGoe 4943 jmp .L_steal_cipher_wcpqaDvsGlbjGoe 4944.cfi_endproc 4945.globl aesni_xts_256_decrypt_avx512 4946.hidden aesni_xts_256_decrypt_avx512 4947.type aesni_xts_256_decrypt_avx512,@function 4948.align 32 4949aesni_xts_256_decrypt_avx512: 4950.cfi_startproc 4951.byte 243,15,30,250 4952 pushq %rbp 4953 movq %rsp,%rbp 4954 subq $136,%rsp 4955 andq $0xffffffffffffffc0,%rsp 4956 movq %rbx,128(%rsp) 4957 movq $0x87,%r10 4958 vmovdqu (%r9),%xmm1 4959 vpxor (%r8),%xmm1,%xmm1 4960 vaesenc 16(%r8),%xmm1,%xmm1 4961 vaesenc 32(%r8),%xmm1,%xmm1 4962 vaesenc 48(%r8),%xmm1,%xmm1 4963 vaesenc 64(%r8),%xmm1,%xmm1 4964 vaesenc 80(%r8),%xmm1,%xmm1 4965 vaesenc 96(%r8),%xmm1,%xmm1 4966 vaesenc 112(%r8),%xmm1,%xmm1 4967 vaesenc 128(%r8),%xmm1,%xmm1 4968 vaesenc 144(%r8),%xmm1,%xmm1 4969 vaesenc 160(%r8),%xmm1,%xmm1 4970 vaesenc 176(%r8),%xmm1,%xmm1 4971 vaesenc 192(%r8),%xmm1,%xmm1 4972 vaesenc 208(%r8),%xmm1,%xmm1 4973 vaesenclast 224(%r8),%xmm1,%xmm1 4974 vmovdqa %xmm1,(%rsp) 4975 4976 cmpq $0x80,%rdx 4977 jb .L_less_than_128_bytes_EmbgEptodyewbFa 4978 vpbroadcastq %r10,%zmm25 4979 cmpq $0x100,%rdx 4980 jge .L_start_by16_EmbgEptodyewbFa 4981 jmp .L_start_by8_EmbgEptodyewbFa 4982 4983.L_do_n_blocks_EmbgEptodyewbFa: 4984 cmpq $0x0,%rdx 4985 je .L_ret_EmbgEptodyewbFa 4986 cmpq $0x70,%rdx 4987 jge .L_remaining_num_blocks_is_7_EmbgEptodyewbFa 4988 cmpq $0x60,%rdx 4989 jge .L_remaining_num_blocks_is_6_EmbgEptodyewbFa 4990 cmpq $0x50,%rdx 4991 jge .L_remaining_num_blocks_is_5_EmbgEptodyewbFa 4992 cmpq $0x40,%rdx 4993 jge .L_remaining_num_blocks_is_4_EmbgEptodyewbFa 4994 cmpq $0x30,%rdx 4995 jge .L_remaining_num_blocks_is_3_EmbgEptodyewbFa 4996 cmpq $0x20,%rdx 4997 jge .L_remaining_num_blocks_is_2_EmbgEptodyewbFa 4998 cmpq $0x10,%rdx 4999 jge .L_remaining_num_blocks_is_1_EmbgEptodyewbFa 5000 5001 5002 vmovdqu %xmm5,%xmm1 5003 5004 vpxor %xmm9,%xmm1,%xmm1 5005 vmovdqu (%rcx),%xmm0 5006 vpxor %xmm0,%xmm1,%xmm1 5007 vmovdqu 16(%rcx),%xmm0 5008 vaesdec %xmm0,%xmm1,%xmm1 5009 vmovdqu 32(%rcx),%xmm0 5010 vaesdec %xmm0,%xmm1,%xmm1 5011 vmovdqu 48(%rcx),%xmm0 5012 vaesdec %xmm0,%xmm1,%xmm1 5013 vmovdqu 64(%rcx),%xmm0 5014 vaesdec %xmm0,%xmm1,%xmm1 5015 vmovdqu 80(%rcx),%xmm0 5016 vaesdec %xmm0,%xmm1,%xmm1 5017 vmovdqu 96(%rcx),%xmm0 5018 vaesdec %xmm0,%xmm1,%xmm1 5019 vmovdqu 112(%rcx),%xmm0 5020 vaesdec %xmm0,%xmm1,%xmm1 5021 vmovdqu 128(%rcx),%xmm0 5022 vaesdec %xmm0,%xmm1,%xmm1 5023 vmovdqu 144(%rcx),%xmm0 5024 vaesdec %xmm0,%xmm1,%xmm1 5025 vmovdqu 160(%rcx),%xmm0 5026 vaesdec %xmm0,%xmm1,%xmm1 5027 vmovdqu 176(%rcx),%xmm0 5028 vaesdec %xmm0,%xmm1,%xmm1 5029 vmovdqu 192(%rcx),%xmm0 5030 vaesdec %xmm0,%xmm1,%xmm1 5031 vmovdqu 208(%rcx),%xmm0 5032 vaesdec %xmm0,%xmm1,%xmm1 5033 vmovdqu 224(%rcx),%xmm0 5034 vaesdeclast %xmm0,%xmm1,%xmm1 5035 vpxor %xmm9,%xmm1,%xmm1 5036 vmovdqu %xmm1,-16(%rsi) 5037 vmovdqa %xmm1,%xmm8 5038 5039 5040 movq $0x1,%r8 5041 kmovq %r8,%k1 5042 vpsllq $0x3f,%xmm9,%xmm13 5043 vpsraq $0x3f,%xmm13,%xmm14 5044 vpandq %xmm25,%xmm14,%xmm5 5045 vpxorq %xmm5,%xmm9,%xmm9{%k1} 5046 vpsrldq $0x8,%xmm9,%xmm10 5047.byte 98, 211, 181, 8, 115, 194, 1 5048 vpslldq $0x8,%xmm13,%xmm13 5049 vpxorq %xmm13,%xmm0,%xmm0 5050 jmp .L_steal_cipher_EmbgEptodyewbFa 5051 5052.L_remaining_num_blocks_is_7_EmbgEptodyewbFa: 5053 movq $0xffffffffffffffff,%r8 5054 shrq $0x10,%r8 5055 kmovq %r8,%k1 5056 vmovdqu8 (%rdi),%zmm1 5057 vmovdqu8 64(%rdi),%zmm2{%k1} 5058 addq $0x70,%rdi 5059 andq $0xf,%rdx 5060 je .L_done_7_remain_EmbgEptodyewbFa 5061 vextracti32x4 $0x2,%zmm10,%xmm12 5062 vextracti32x4 $0x3,%zmm10,%xmm13 5063 vinserti32x4 $0x2,%xmm13,%zmm10,%zmm10 5064 5065 vpxorq %zmm9,%zmm1,%zmm1 5066 vpxorq %zmm10,%zmm2,%zmm2 5067 5068 5069 vbroadcasti32x4 (%rcx),%zmm0 5070 vpxorq %zmm0,%zmm1,%zmm1 5071 vpxorq %zmm0,%zmm2,%zmm2 5072 vbroadcasti32x4 16(%rcx),%zmm0 5073 vaesdec %zmm0,%zmm1,%zmm1 5074 vaesdec %zmm0,%zmm2,%zmm2 5075 5076 5077 vbroadcasti32x4 32(%rcx),%zmm0 5078 vaesdec %zmm0,%zmm1,%zmm1 5079 vaesdec %zmm0,%zmm2,%zmm2 5080 5081 5082 vbroadcasti32x4 48(%rcx),%zmm0 5083 vaesdec %zmm0,%zmm1,%zmm1 5084 vaesdec %zmm0,%zmm2,%zmm2 5085 5086 vbroadcasti32x4 64(%rcx),%zmm0 5087 vaesdec %zmm0,%zmm1,%zmm1 5088 vaesdec %zmm0,%zmm2,%zmm2 5089 5090 5091 vbroadcasti32x4 80(%rcx),%zmm0 5092 vaesdec %zmm0,%zmm1,%zmm1 5093 vaesdec %zmm0,%zmm2,%zmm2 5094 5095 5096 vbroadcasti32x4 96(%rcx),%zmm0 5097 vaesdec %zmm0,%zmm1,%zmm1 5098 vaesdec %zmm0,%zmm2,%zmm2 5099 5100 5101 vbroadcasti32x4 112(%rcx),%zmm0 5102 vaesdec %zmm0,%zmm1,%zmm1 5103 vaesdec %zmm0,%zmm2,%zmm2 5104 5105 5106 vbroadcasti32x4 128(%rcx),%zmm0 5107 vaesdec %zmm0,%zmm1,%zmm1 5108 vaesdec %zmm0,%zmm2,%zmm2 5109 5110 5111 vbroadcasti32x4 144(%rcx),%zmm0 5112 vaesdec %zmm0,%zmm1,%zmm1 5113 vaesdec %zmm0,%zmm2,%zmm2 5114 5115 5116 vbroadcasti32x4 160(%rcx),%zmm0 5117 vaesdec %zmm0,%zmm1,%zmm1 5118 vaesdec %zmm0,%zmm2,%zmm2 5119 5120 5121 vbroadcasti32x4 176(%rcx),%zmm0 5122 vaesdec %zmm0,%zmm1,%zmm1 5123 vaesdec %zmm0,%zmm2,%zmm2 5124 5125 5126 vbroadcasti32x4 192(%rcx),%zmm0 5127 vaesdec %zmm0,%zmm1,%zmm1 5128 vaesdec %zmm0,%zmm2,%zmm2 5129 5130 5131 vbroadcasti32x4 208(%rcx),%zmm0 5132 vaesdec %zmm0,%zmm1,%zmm1 5133 vaesdec %zmm0,%zmm2,%zmm2 5134 5135 5136 vbroadcasti32x4 224(%rcx),%zmm0 5137 vaesdeclast %zmm0,%zmm1,%zmm1 5138 vaesdeclast %zmm0,%zmm2,%zmm2 5139 5140 vpxorq %zmm9,%zmm1,%zmm1 5141 vpxorq %zmm10,%zmm2,%zmm2 5142 5143 5144 vmovdqa32 %zmm15,%zmm9 5145 vmovdqa32 %zmm16,%zmm10 5146 vmovdqu8 %zmm1,(%rsi) 5147 vmovdqu8 %zmm2,64(%rsi){%k1} 5148 addq $0x70,%rsi 5149 vextracti32x4 $0x2,%zmm2,%xmm8 5150 vmovdqa %xmm12,%xmm0 5151 jmp .L_steal_cipher_EmbgEptodyewbFa 5152 5153.L_done_7_remain_EmbgEptodyewbFa: 5154 5155 vpxorq %zmm9,%zmm1,%zmm1 5156 vpxorq %zmm10,%zmm2,%zmm2 5157 5158 5159 vbroadcasti32x4 (%rcx),%zmm0 5160 vpxorq %zmm0,%zmm1,%zmm1 5161 vpxorq %zmm0,%zmm2,%zmm2 5162 vbroadcasti32x4 16(%rcx),%zmm0 5163 vaesdec %zmm0,%zmm1,%zmm1 5164 vaesdec %zmm0,%zmm2,%zmm2 5165 5166 5167 vbroadcasti32x4 32(%rcx),%zmm0 5168 vaesdec %zmm0,%zmm1,%zmm1 5169 vaesdec %zmm0,%zmm2,%zmm2 5170 5171 5172 vbroadcasti32x4 48(%rcx),%zmm0 5173 vaesdec %zmm0,%zmm1,%zmm1 5174 vaesdec %zmm0,%zmm2,%zmm2 5175 5176 vbroadcasti32x4 64(%rcx),%zmm0 5177 vaesdec %zmm0,%zmm1,%zmm1 5178 vaesdec %zmm0,%zmm2,%zmm2 5179 5180 5181 vbroadcasti32x4 80(%rcx),%zmm0 5182 vaesdec %zmm0,%zmm1,%zmm1 5183 vaesdec %zmm0,%zmm2,%zmm2 5184 5185 5186 vbroadcasti32x4 96(%rcx),%zmm0 5187 vaesdec %zmm0,%zmm1,%zmm1 5188 vaesdec %zmm0,%zmm2,%zmm2 5189 5190 5191 vbroadcasti32x4 112(%rcx),%zmm0 5192 vaesdec %zmm0,%zmm1,%zmm1 5193 vaesdec %zmm0,%zmm2,%zmm2 5194 5195 5196 vbroadcasti32x4 128(%rcx),%zmm0 5197 vaesdec %zmm0,%zmm1,%zmm1 5198 vaesdec %zmm0,%zmm2,%zmm2 5199 5200 5201 vbroadcasti32x4 144(%rcx),%zmm0 5202 vaesdec %zmm0,%zmm1,%zmm1 5203 vaesdec %zmm0,%zmm2,%zmm2 5204 5205 5206 vbroadcasti32x4 160(%rcx),%zmm0 5207 vaesdec %zmm0,%zmm1,%zmm1 5208 vaesdec %zmm0,%zmm2,%zmm2 5209 5210 5211 vbroadcasti32x4 176(%rcx),%zmm0 5212 vaesdec %zmm0,%zmm1,%zmm1 5213 vaesdec %zmm0,%zmm2,%zmm2 5214 5215 5216 vbroadcasti32x4 192(%rcx),%zmm0 5217 vaesdec %zmm0,%zmm1,%zmm1 5218 vaesdec %zmm0,%zmm2,%zmm2 5219 5220 5221 vbroadcasti32x4 208(%rcx),%zmm0 5222 vaesdec %zmm0,%zmm1,%zmm1 5223 vaesdec %zmm0,%zmm2,%zmm2 5224 5225 5226 vbroadcasti32x4 224(%rcx),%zmm0 5227 vaesdeclast %zmm0,%zmm1,%zmm1 5228 vaesdeclast %zmm0,%zmm2,%zmm2 5229 5230 vpxorq %zmm9,%zmm1,%zmm1 5231 vpxorq %zmm10,%zmm2,%zmm2 5232 5233 5234 vmovdqa32 %zmm15,%zmm9 5235 vmovdqa32 %zmm16,%zmm10 5236 vmovdqu8 %zmm1,(%rsi) 5237 vmovdqu8 %zmm2,64(%rsi){%k1} 5238 jmp .L_ret_EmbgEptodyewbFa 5239 5240.L_remaining_num_blocks_is_6_EmbgEptodyewbFa: 5241 vmovdqu8 (%rdi),%zmm1 5242 vmovdqu8 64(%rdi),%ymm2 5243 addq $0x60,%rdi 5244 andq $0xf,%rdx 5245 je .L_done_6_remain_EmbgEptodyewbFa 5246 vextracti32x4 $0x1,%zmm10,%xmm12 5247 vextracti32x4 $0x2,%zmm10,%xmm13 5248 vinserti32x4 $0x1,%xmm13,%zmm10,%zmm10 5249 5250 vpxorq %zmm9,%zmm1,%zmm1 5251 vpxorq %zmm10,%zmm2,%zmm2 5252 5253 5254 vbroadcasti32x4 (%rcx),%zmm0 5255 vpxorq %zmm0,%zmm1,%zmm1 5256 vpxorq %zmm0,%zmm2,%zmm2 5257 vbroadcasti32x4 16(%rcx),%zmm0 5258 vaesdec %zmm0,%zmm1,%zmm1 5259 vaesdec %zmm0,%zmm2,%zmm2 5260 5261 5262 vbroadcasti32x4 32(%rcx),%zmm0 5263 vaesdec %zmm0,%zmm1,%zmm1 5264 vaesdec %zmm0,%zmm2,%zmm2 5265 5266 5267 vbroadcasti32x4 48(%rcx),%zmm0 5268 vaesdec %zmm0,%zmm1,%zmm1 5269 vaesdec %zmm0,%zmm2,%zmm2 5270 5271 vbroadcasti32x4 64(%rcx),%zmm0 5272 vaesdec %zmm0,%zmm1,%zmm1 5273 vaesdec %zmm0,%zmm2,%zmm2 5274 5275 5276 vbroadcasti32x4 80(%rcx),%zmm0 5277 vaesdec %zmm0,%zmm1,%zmm1 5278 vaesdec %zmm0,%zmm2,%zmm2 5279 5280 5281 vbroadcasti32x4 96(%rcx),%zmm0 5282 vaesdec %zmm0,%zmm1,%zmm1 5283 vaesdec %zmm0,%zmm2,%zmm2 5284 5285 5286 vbroadcasti32x4 112(%rcx),%zmm0 5287 vaesdec %zmm0,%zmm1,%zmm1 5288 vaesdec %zmm0,%zmm2,%zmm2 5289 5290 5291 vbroadcasti32x4 128(%rcx),%zmm0 5292 vaesdec %zmm0,%zmm1,%zmm1 5293 vaesdec %zmm0,%zmm2,%zmm2 5294 5295 5296 vbroadcasti32x4 144(%rcx),%zmm0 5297 vaesdec %zmm0,%zmm1,%zmm1 5298 vaesdec %zmm0,%zmm2,%zmm2 5299 5300 5301 vbroadcasti32x4 160(%rcx),%zmm0 5302 vaesdec %zmm0,%zmm1,%zmm1 5303 vaesdec %zmm0,%zmm2,%zmm2 5304 5305 5306 vbroadcasti32x4 176(%rcx),%zmm0 5307 vaesdec %zmm0,%zmm1,%zmm1 5308 vaesdec %zmm0,%zmm2,%zmm2 5309 5310 5311 vbroadcasti32x4 192(%rcx),%zmm0 5312 vaesdec %zmm0,%zmm1,%zmm1 5313 vaesdec %zmm0,%zmm2,%zmm2 5314 5315 5316 vbroadcasti32x4 208(%rcx),%zmm0 5317 vaesdec %zmm0,%zmm1,%zmm1 5318 vaesdec %zmm0,%zmm2,%zmm2 5319 5320 5321 vbroadcasti32x4 224(%rcx),%zmm0 5322 vaesdeclast %zmm0,%zmm1,%zmm1 5323 vaesdeclast %zmm0,%zmm2,%zmm2 5324 5325 vpxorq %zmm9,%zmm1,%zmm1 5326 vpxorq %zmm10,%zmm2,%zmm2 5327 5328 5329 vmovdqa32 %zmm15,%zmm9 5330 vmovdqa32 %zmm16,%zmm10 5331 vmovdqu8 %zmm1,(%rsi) 5332 vmovdqu8 %ymm2,64(%rsi) 5333 addq $0x60,%rsi 5334 vextracti32x4 $0x1,%zmm2,%xmm8 5335 vmovdqa %xmm12,%xmm0 5336 jmp .L_steal_cipher_EmbgEptodyewbFa 5337 5338.L_done_6_remain_EmbgEptodyewbFa: 5339 5340 vpxorq %zmm9,%zmm1,%zmm1 5341 vpxorq %zmm10,%zmm2,%zmm2 5342 5343 5344 vbroadcasti32x4 (%rcx),%zmm0 5345 vpxorq %zmm0,%zmm1,%zmm1 5346 vpxorq %zmm0,%zmm2,%zmm2 5347 vbroadcasti32x4 16(%rcx),%zmm0 5348 vaesdec %zmm0,%zmm1,%zmm1 5349 vaesdec %zmm0,%zmm2,%zmm2 5350 5351 5352 vbroadcasti32x4 32(%rcx),%zmm0 5353 vaesdec %zmm0,%zmm1,%zmm1 5354 vaesdec %zmm0,%zmm2,%zmm2 5355 5356 5357 vbroadcasti32x4 48(%rcx),%zmm0 5358 vaesdec %zmm0,%zmm1,%zmm1 5359 vaesdec %zmm0,%zmm2,%zmm2 5360 5361 vbroadcasti32x4 64(%rcx),%zmm0 5362 vaesdec %zmm0,%zmm1,%zmm1 5363 vaesdec %zmm0,%zmm2,%zmm2 5364 5365 5366 vbroadcasti32x4 80(%rcx),%zmm0 5367 vaesdec %zmm0,%zmm1,%zmm1 5368 vaesdec %zmm0,%zmm2,%zmm2 5369 5370 5371 vbroadcasti32x4 96(%rcx),%zmm0 5372 vaesdec %zmm0,%zmm1,%zmm1 5373 vaesdec %zmm0,%zmm2,%zmm2 5374 5375 5376 vbroadcasti32x4 112(%rcx),%zmm0 5377 vaesdec %zmm0,%zmm1,%zmm1 5378 vaesdec %zmm0,%zmm2,%zmm2 5379 5380 5381 vbroadcasti32x4 128(%rcx),%zmm0 5382 vaesdec %zmm0,%zmm1,%zmm1 5383 vaesdec %zmm0,%zmm2,%zmm2 5384 5385 5386 vbroadcasti32x4 144(%rcx),%zmm0 5387 vaesdec %zmm0,%zmm1,%zmm1 5388 vaesdec %zmm0,%zmm2,%zmm2 5389 5390 5391 vbroadcasti32x4 160(%rcx),%zmm0 5392 vaesdec %zmm0,%zmm1,%zmm1 5393 vaesdec %zmm0,%zmm2,%zmm2 5394 5395 5396 vbroadcasti32x4 176(%rcx),%zmm0 5397 vaesdec %zmm0,%zmm1,%zmm1 5398 vaesdec %zmm0,%zmm2,%zmm2 5399 5400 5401 vbroadcasti32x4 192(%rcx),%zmm0 5402 vaesdec %zmm0,%zmm1,%zmm1 5403 vaesdec %zmm0,%zmm2,%zmm2 5404 5405 5406 vbroadcasti32x4 208(%rcx),%zmm0 5407 vaesdec %zmm0,%zmm1,%zmm1 5408 vaesdec %zmm0,%zmm2,%zmm2 5409 5410 5411 vbroadcasti32x4 224(%rcx),%zmm0 5412 vaesdeclast %zmm0,%zmm1,%zmm1 5413 vaesdeclast %zmm0,%zmm2,%zmm2 5414 5415 vpxorq %zmm9,%zmm1,%zmm1 5416 vpxorq %zmm10,%zmm2,%zmm2 5417 5418 5419 vmovdqa32 %zmm15,%zmm9 5420 vmovdqa32 %zmm16,%zmm10 5421 vmovdqu8 %zmm1,(%rsi) 5422 vmovdqu8 %ymm2,64(%rsi) 5423 jmp .L_ret_EmbgEptodyewbFa 5424 5425.L_remaining_num_blocks_is_5_EmbgEptodyewbFa: 5426 vmovdqu8 (%rdi),%zmm1 5427 vmovdqu 64(%rdi),%xmm2 5428 addq $0x50,%rdi 5429 andq $0xf,%rdx 5430 je .L_done_5_remain_EmbgEptodyewbFa 5431 vmovdqa %xmm10,%xmm12 5432 vextracti32x4 $0x1,%zmm10,%xmm10 5433 5434 vpxorq %zmm9,%zmm1,%zmm1 5435 vpxorq %zmm10,%zmm2,%zmm2 5436 5437 5438 vbroadcasti32x4 (%rcx),%zmm0 5439 vpxorq %zmm0,%zmm1,%zmm1 5440 vpxorq %zmm0,%zmm2,%zmm2 5441 vbroadcasti32x4 16(%rcx),%zmm0 5442 vaesdec %zmm0,%zmm1,%zmm1 5443 vaesdec %zmm0,%zmm2,%zmm2 5444 5445 5446 vbroadcasti32x4 32(%rcx),%zmm0 5447 vaesdec %zmm0,%zmm1,%zmm1 5448 vaesdec %zmm0,%zmm2,%zmm2 5449 5450 5451 vbroadcasti32x4 48(%rcx),%zmm0 5452 vaesdec %zmm0,%zmm1,%zmm1 5453 vaesdec %zmm0,%zmm2,%zmm2 5454 5455 vbroadcasti32x4 64(%rcx),%zmm0 5456 vaesdec %zmm0,%zmm1,%zmm1 5457 vaesdec %zmm0,%zmm2,%zmm2 5458 5459 5460 vbroadcasti32x4 80(%rcx),%zmm0 5461 vaesdec %zmm0,%zmm1,%zmm1 5462 vaesdec %zmm0,%zmm2,%zmm2 5463 5464 5465 vbroadcasti32x4 96(%rcx),%zmm0 5466 vaesdec %zmm0,%zmm1,%zmm1 5467 vaesdec %zmm0,%zmm2,%zmm2 5468 5469 5470 vbroadcasti32x4 112(%rcx),%zmm0 5471 vaesdec %zmm0,%zmm1,%zmm1 5472 vaesdec %zmm0,%zmm2,%zmm2 5473 5474 5475 vbroadcasti32x4 128(%rcx),%zmm0 5476 vaesdec %zmm0,%zmm1,%zmm1 5477 vaesdec %zmm0,%zmm2,%zmm2 5478 5479 5480 vbroadcasti32x4 144(%rcx),%zmm0 5481 vaesdec %zmm0,%zmm1,%zmm1 5482 vaesdec %zmm0,%zmm2,%zmm2 5483 5484 5485 vbroadcasti32x4 160(%rcx),%zmm0 5486 vaesdec %zmm0,%zmm1,%zmm1 5487 vaesdec %zmm0,%zmm2,%zmm2 5488 5489 5490 vbroadcasti32x4 176(%rcx),%zmm0 5491 vaesdec %zmm0,%zmm1,%zmm1 5492 vaesdec %zmm0,%zmm2,%zmm2 5493 5494 5495 vbroadcasti32x4 192(%rcx),%zmm0 5496 vaesdec %zmm0,%zmm1,%zmm1 5497 vaesdec %zmm0,%zmm2,%zmm2 5498 5499 5500 vbroadcasti32x4 208(%rcx),%zmm0 5501 vaesdec %zmm0,%zmm1,%zmm1 5502 vaesdec %zmm0,%zmm2,%zmm2 5503 5504 5505 vbroadcasti32x4 224(%rcx),%zmm0 5506 vaesdeclast %zmm0,%zmm1,%zmm1 5507 vaesdeclast %zmm0,%zmm2,%zmm2 5508 5509 vpxorq %zmm9,%zmm1,%zmm1 5510 vpxorq %zmm10,%zmm2,%zmm2 5511 5512 5513 vmovdqa32 %zmm15,%zmm9 5514 vmovdqa32 %zmm16,%zmm10 5515 vmovdqu8 %zmm1,(%rsi) 5516 vmovdqu %xmm2,64(%rsi) 5517 addq $0x50,%rsi 5518 vmovdqa %xmm2,%xmm8 5519 vmovdqa %xmm12,%xmm0 5520 jmp .L_steal_cipher_EmbgEptodyewbFa 5521 5522.L_done_5_remain_EmbgEptodyewbFa: 5523 5524 vpxorq %zmm9,%zmm1,%zmm1 5525 vpxorq %zmm10,%zmm2,%zmm2 5526 5527 5528 vbroadcasti32x4 (%rcx),%zmm0 5529 vpxorq %zmm0,%zmm1,%zmm1 5530 vpxorq %zmm0,%zmm2,%zmm2 5531 vbroadcasti32x4 16(%rcx),%zmm0 5532 vaesdec %zmm0,%zmm1,%zmm1 5533 vaesdec %zmm0,%zmm2,%zmm2 5534 5535 5536 vbroadcasti32x4 32(%rcx),%zmm0 5537 vaesdec %zmm0,%zmm1,%zmm1 5538 vaesdec %zmm0,%zmm2,%zmm2 5539 5540 5541 vbroadcasti32x4 48(%rcx),%zmm0 5542 vaesdec %zmm0,%zmm1,%zmm1 5543 vaesdec %zmm0,%zmm2,%zmm2 5544 5545 vbroadcasti32x4 64(%rcx),%zmm0 5546 vaesdec %zmm0,%zmm1,%zmm1 5547 vaesdec %zmm0,%zmm2,%zmm2 5548 5549 5550 vbroadcasti32x4 80(%rcx),%zmm0 5551 vaesdec %zmm0,%zmm1,%zmm1 5552 vaesdec %zmm0,%zmm2,%zmm2 5553 5554 5555 vbroadcasti32x4 96(%rcx),%zmm0 5556 vaesdec %zmm0,%zmm1,%zmm1 5557 vaesdec %zmm0,%zmm2,%zmm2 5558 5559 5560 vbroadcasti32x4 112(%rcx),%zmm0 5561 vaesdec %zmm0,%zmm1,%zmm1 5562 vaesdec %zmm0,%zmm2,%zmm2 5563 5564 5565 vbroadcasti32x4 128(%rcx),%zmm0 5566 vaesdec %zmm0,%zmm1,%zmm1 5567 vaesdec %zmm0,%zmm2,%zmm2 5568 5569 5570 vbroadcasti32x4 144(%rcx),%zmm0 5571 vaesdec %zmm0,%zmm1,%zmm1 5572 vaesdec %zmm0,%zmm2,%zmm2 5573 5574 5575 vbroadcasti32x4 160(%rcx),%zmm0 5576 vaesdec %zmm0,%zmm1,%zmm1 5577 vaesdec %zmm0,%zmm2,%zmm2 5578 5579 5580 vbroadcasti32x4 176(%rcx),%zmm0 5581 vaesdec %zmm0,%zmm1,%zmm1 5582 vaesdec %zmm0,%zmm2,%zmm2 5583 5584 5585 vbroadcasti32x4 192(%rcx),%zmm0 5586 vaesdec %zmm0,%zmm1,%zmm1 5587 vaesdec %zmm0,%zmm2,%zmm2 5588 5589 5590 vbroadcasti32x4 208(%rcx),%zmm0 5591 vaesdec %zmm0,%zmm1,%zmm1 5592 vaesdec %zmm0,%zmm2,%zmm2 5593 5594 5595 vbroadcasti32x4 224(%rcx),%zmm0 5596 vaesdeclast %zmm0,%zmm1,%zmm1 5597 vaesdeclast %zmm0,%zmm2,%zmm2 5598 5599 vpxorq %zmm9,%zmm1,%zmm1 5600 vpxorq %zmm10,%zmm2,%zmm2 5601 5602 5603 vmovdqa32 %zmm15,%zmm9 5604 vmovdqa32 %zmm16,%zmm10 5605 vmovdqu8 %zmm1,(%rsi) 5606 vmovdqu8 %xmm2,64(%rsi) 5607 jmp .L_ret_EmbgEptodyewbFa 5608 5609.L_remaining_num_blocks_is_4_EmbgEptodyewbFa: 5610 vmovdqu8 (%rdi),%zmm1 5611 addq $0x40,%rdi 5612 andq $0xf,%rdx 5613 je .L_done_4_remain_EmbgEptodyewbFa 5614 vextracti32x4 $0x3,%zmm9,%xmm12 5615 vinserti32x4 $0x3,%xmm10,%zmm9,%zmm9 5616 5617 vpxorq %zmm9,%zmm1,%zmm1 5618 vpxorq %zmm10,%zmm2,%zmm2 5619 5620 5621 vbroadcasti32x4 (%rcx),%zmm0 5622 vpxorq %zmm0,%zmm1,%zmm1 5623 vpxorq %zmm0,%zmm2,%zmm2 5624 vbroadcasti32x4 16(%rcx),%zmm0 5625 vaesdec %zmm0,%zmm1,%zmm1 5626 vaesdec %zmm0,%zmm2,%zmm2 5627 5628 5629 vbroadcasti32x4 32(%rcx),%zmm0 5630 vaesdec %zmm0,%zmm1,%zmm1 5631 vaesdec %zmm0,%zmm2,%zmm2 5632 5633 5634 vbroadcasti32x4 48(%rcx),%zmm0 5635 vaesdec %zmm0,%zmm1,%zmm1 5636 vaesdec %zmm0,%zmm2,%zmm2 5637 5638 vbroadcasti32x4 64(%rcx),%zmm0 5639 vaesdec %zmm0,%zmm1,%zmm1 5640 vaesdec %zmm0,%zmm2,%zmm2 5641 5642 5643 vbroadcasti32x4 80(%rcx),%zmm0 5644 vaesdec %zmm0,%zmm1,%zmm1 5645 vaesdec %zmm0,%zmm2,%zmm2 5646 5647 5648 vbroadcasti32x4 96(%rcx),%zmm0 5649 vaesdec %zmm0,%zmm1,%zmm1 5650 vaesdec %zmm0,%zmm2,%zmm2 5651 5652 5653 vbroadcasti32x4 112(%rcx),%zmm0 5654 vaesdec %zmm0,%zmm1,%zmm1 5655 vaesdec %zmm0,%zmm2,%zmm2 5656 5657 5658 vbroadcasti32x4 128(%rcx),%zmm0 5659 vaesdec %zmm0,%zmm1,%zmm1 5660 vaesdec %zmm0,%zmm2,%zmm2 5661 5662 5663 vbroadcasti32x4 144(%rcx),%zmm0 5664 vaesdec %zmm0,%zmm1,%zmm1 5665 vaesdec %zmm0,%zmm2,%zmm2 5666 5667 5668 vbroadcasti32x4 160(%rcx),%zmm0 5669 vaesdec %zmm0,%zmm1,%zmm1 5670 vaesdec %zmm0,%zmm2,%zmm2 5671 5672 5673 vbroadcasti32x4 176(%rcx),%zmm0 5674 vaesdec %zmm0,%zmm1,%zmm1 5675 vaesdec %zmm0,%zmm2,%zmm2 5676 5677 5678 vbroadcasti32x4 192(%rcx),%zmm0 5679 vaesdec %zmm0,%zmm1,%zmm1 5680 vaesdec %zmm0,%zmm2,%zmm2 5681 5682 5683 vbroadcasti32x4 208(%rcx),%zmm0 5684 vaesdec %zmm0,%zmm1,%zmm1 5685 vaesdec %zmm0,%zmm2,%zmm2 5686 5687 5688 vbroadcasti32x4 224(%rcx),%zmm0 5689 vaesdeclast %zmm0,%zmm1,%zmm1 5690 vaesdeclast %zmm0,%zmm2,%zmm2 5691 5692 vpxorq %zmm9,%zmm1,%zmm1 5693 vpxorq %zmm10,%zmm2,%zmm2 5694 5695 5696 vmovdqa32 %zmm15,%zmm9 5697 vmovdqa32 %zmm16,%zmm10 5698 vmovdqu8 %zmm1,(%rsi) 5699 addq $0x40,%rsi 5700 vextracti32x4 $0x3,%zmm1,%xmm8 5701 vmovdqa %xmm12,%xmm0 5702 jmp .L_steal_cipher_EmbgEptodyewbFa 5703 5704.L_done_4_remain_EmbgEptodyewbFa: 5705 5706 vpxorq %zmm9,%zmm1,%zmm1 5707 vpxorq %zmm10,%zmm2,%zmm2 5708 5709 5710 vbroadcasti32x4 (%rcx),%zmm0 5711 vpxorq %zmm0,%zmm1,%zmm1 5712 vpxorq %zmm0,%zmm2,%zmm2 5713 vbroadcasti32x4 16(%rcx),%zmm0 5714 vaesdec %zmm0,%zmm1,%zmm1 5715 vaesdec %zmm0,%zmm2,%zmm2 5716 5717 5718 vbroadcasti32x4 32(%rcx),%zmm0 5719 vaesdec %zmm0,%zmm1,%zmm1 5720 vaesdec %zmm0,%zmm2,%zmm2 5721 5722 5723 vbroadcasti32x4 48(%rcx),%zmm0 5724 vaesdec %zmm0,%zmm1,%zmm1 5725 vaesdec %zmm0,%zmm2,%zmm2 5726 5727 vbroadcasti32x4 64(%rcx),%zmm0 5728 vaesdec %zmm0,%zmm1,%zmm1 5729 vaesdec %zmm0,%zmm2,%zmm2 5730 5731 5732 vbroadcasti32x4 80(%rcx),%zmm0 5733 vaesdec %zmm0,%zmm1,%zmm1 5734 vaesdec %zmm0,%zmm2,%zmm2 5735 5736 5737 vbroadcasti32x4 96(%rcx),%zmm0 5738 vaesdec %zmm0,%zmm1,%zmm1 5739 vaesdec %zmm0,%zmm2,%zmm2 5740 5741 5742 vbroadcasti32x4 112(%rcx),%zmm0 5743 vaesdec %zmm0,%zmm1,%zmm1 5744 vaesdec %zmm0,%zmm2,%zmm2 5745 5746 5747 vbroadcasti32x4 128(%rcx),%zmm0 5748 vaesdec %zmm0,%zmm1,%zmm1 5749 vaesdec %zmm0,%zmm2,%zmm2 5750 5751 5752 vbroadcasti32x4 144(%rcx),%zmm0 5753 vaesdec %zmm0,%zmm1,%zmm1 5754 vaesdec %zmm0,%zmm2,%zmm2 5755 5756 5757 vbroadcasti32x4 160(%rcx),%zmm0 5758 vaesdec %zmm0,%zmm1,%zmm1 5759 vaesdec %zmm0,%zmm2,%zmm2 5760 5761 5762 vbroadcasti32x4 176(%rcx),%zmm0 5763 vaesdec %zmm0,%zmm1,%zmm1 5764 vaesdec %zmm0,%zmm2,%zmm2 5765 5766 5767 vbroadcasti32x4 192(%rcx),%zmm0 5768 vaesdec %zmm0,%zmm1,%zmm1 5769 vaesdec %zmm0,%zmm2,%zmm2 5770 5771 5772 vbroadcasti32x4 208(%rcx),%zmm0 5773 vaesdec %zmm0,%zmm1,%zmm1 5774 vaesdec %zmm0,%zmm2,%zmm2 5775 5776 5777 vbroadcasti32x4 224(%rcx),%zmm0 5778 vaesdeclast %zmm0,%zmm1,%zmm1 5779 vaesdeclast %zmm0,%zmm2,%zmm2 5780 5781 vpxorq %zmm9,%zmm1,%zmm1 5782 vpxorq %zmm10,%zmm2,%zmm2 5783 5784 5785 vmovdqa32 %zmm15,%zmm9 5786 vmovdqa32 %zmm16,%zmm10 5787 vmovdqu8 %zmm1,(%rsi) 5788 jmp .L_ret_EmbgEptodyewbFa 5789 5790.L_remaining_num_blocks_is_3_EmbgEptodyewbFa: 5791 vmovdqu (%rdi),%xmm1 5792 vmovdqu 16(%rdi),%xmm2 5793 vmovdqu 32(%rdi),%xmm3 5794 addq $0x30,%rdi 5795 andq $0xf,%rdx 5796 je .L_done_3_remain_EmbgEptodyewbFa 5797 vextracti32x4 $0x2,%zmm9,%xmm13 5798 vextracti32x4 $0x1,%zmm9,%xmm10 5799 vextracti32x4 $0x3,%zmm9,%xmm11 5800 vpxor %xmm9,%xmm1,%xmm1 5801 vpxor %xmm10,%xmm2,%xmm2 5802 vpxor %xmm11,%xmm3,%xmm3 5803 vmovdqu (%rcx),%xmm0 5804 vpxor %xmm0,%xmm1,%xmm1 5805 vpxor %xmm0,%xmm2,%xmm2 5806 vpxor %xmm0,%xmm3,%xmm3 5807 vmovdqu 16(%rcx),%xmm0 5808 vaesdec %xmm0,%xmm1,%xmm1 5809 vaesdec %xmm0,%xmm2,%xmm2 5810 vaesdec %xmm0,%xmm3,%xmm3 5811 vmovdqu 32(%rcx),%xmm0 5812 vaesdec %xmm0,%xmm1,%xmm1 5813 vaesdec %xmm0,%xmm2,%xmm2 5814 vaesdec %xmm0,%xmm3,%xmm3 5815 vmovdqu 48(%rcx),%xmm0 5816 vaesdec %xmm0,%xmm1,%xmm1 5817 vaesdec %xmm0,%xmm2,%xmm2 5818 vaesdec %xmm0,%xmm3,%xmm3 5819 vmovdqu 64(%rcx),%xmm0 5820 vaesdec %xmm0,%xmm1,%xmm1 5821 vaesdec %xmm0,%xmm2,%xmm2 5822 vaesdec %xmm0,%xmm3,%xmm3 5823 vmovdqu 80(%rcx),%xmm0 5824 vaesdec %xmm0,%xmm1,%xmm1 5825 vaesdec %xmm0,%xmm2,%xmm2 5826 vaesdec %xmm0,%xmm3,%xmm3 5827 vmovdqu 96(%rcx),%xmm0 5828 vaesdec %xmm0,%xmm1,%xmm1 5829 vaesdec %xmm0,%xmm2,%xmm2 5830 vaesdec %xmm0,%xmm3,%xmm3 5831 vmovdqu 112(%rcx),%xmm0 5832 vaesdec %xmm0,%xmm1,%xmm1 5833 vaesdec %xmm0,%xmm2,%xmm2 5834 vaesdec %xmm0,%xmm3,%xmm3 5835 vmovdqu 128(%rcx),%xmm0 5836 vaesdec %xmm0,%xmm1,%xmm1 5837 vaesdec %xmm0,%xmm2,%xmm2 5838 vaesdec %xmm0,%xmm3,%xmm3 5839 vmovdqu 144(%rcx),%xmm0 5840 vaesdec %xmm0,%xmm1,%xmm1 5841 vaesdec %xmm0,%xmm2,%xmm2 5842 vaesdec %xmm0,%xmm3,%xmm3 5843 vmovdqu 160(%rcx),%xmm0 5844 vaesdec %xmm0,%xmm1,%xmm1 5845 vaesdec %xmm0,%xmm2,%xmm2 5846 vaesdec %xmm0,%xmm3,%xmm3 5847 vmovdqu 176(%rcx),%xmm0 5848 vaesdec %xmm0,%xmm1,%xmm1 5849 vaesdec %xmm0,%xmm2,%xmm2 5850 vaesdec %xmm0,%xmm3,%xmm3 5851 vmovdqu 192(%rcx),%xmm0 5852 vaesdec %xmm0,%xmm1,%xmm1 5853 vaesdec %xmm0,%xmm2,%xmm2 5854 vaesdec %xmm0,%xmm3,%xmm3 5855 vmovdqu 208(%rcx),%xmm0 5856 vaesdec %xmm0,%xmm1,%xmm1 5857 vaesdec %xmm0,%xmm2,%xmm2 5858 vaesdec %xmm0,%xmm3,%xmm3 5859 vmovdqu 224(%rcx),%xmm0 5860 vaesdeclast %xmm0,%xmm1,%xmm1 5861 vaesdeclast %xmm0,%xmm2,%xmm2 5862 vaesdeclast %xmm0,%xmm3,%xmm3 5863 vpxor %xmm9,%xmm1,%xmm1 5864 vpxor %xmm10,%xmm2,%xmm2 5865 vpxor %xmm11,%xmm3,%xmm3 5866 vmovdqu %xmm1,(%rsi) 5867 vmovdqu %xmm2,16(%rsi) 5868 vmovdqu %xmm3,32(%rsi) 5869 addq $0x30,%rsi 5870 vmovdqa %xmm3,%xmm8 5871 vmovdqa %xmm13,%xmm0 5872 jmp .L_steal_cipher_EmbgEptodyewbFa 5873 5874.L_done_3_remain_EmbgEptodyewbFa: 5875 vextracti32x4 $0x1,%zmm9,%xmm10 5876 vextracti32x4 $0x2,%zmm9,%xmm11 5877 vpxor %xmm9,%xmm1,%xmm1 5878 vpxor %xmm10,%xmm2,%xmm2 5879 vpxor %xmm11,%xmm3,%xmm3 5880 vmovdqu (%rcx),%xmm0 5881 vpxor %xmm0,%xmm1,%xmm1 5882 vpxor %xmm0,%xmm2,%xmm2 5883 vpxor %xmm0,%xmm3,%xmm3 5884 vmovdqu 16(%rcx),%xmm0 5885 vaesdec %xmm0,%xmm1,%xmm1 5886 vaesdec %xmm0,%xmm2,%xmm2 5887 vaesdec %xmm0,%xmm3,%xmm3 5888 vmovdqu 32(%rcx),%xmm0 5889 vaesdec %xmm0,%xmm1,%xmm1 5890 vaesdec %xmm0,%xmm2,%xmm2 5891 vaesdec %xmm0,%xmm3,%xmm3 5892 vmovdqu 48(%rcx),%xmm0 5893 vaesdec %xmm0,%xmm1,%xmm1 5894 vaesdec %xmm0,%xmm2,%xmm2 5895 vaesdec %xmm0,%xmm3,%xmm3 5896 vmovdqu 64(%rcx),%xmm0 5897 vaesdec %xmm0,%xmm1,%xmm1 5898 vaesdec %xmm0,%xmm2,%xmm2 5899 vaesdec %xmm0,%xmm3,%xmm3 5900 vmovdqu 80(%rcx),%xmm0 5901 vaesdec %xmm0,%xmm1,%xmm1 5902 vaesdec %xmm0,%xmm2,%xmm2 5903 vaesdec %xmm0,%xmm3,%xmm3 5904 vmovdqu 96(%rcx),%xmm0 5905 vaesdec %xmm0,%xmm1,%xmm1 5906 vaesdec %xmm0,%xmm2,%xmm2 5907 vaesdec %xmm0,%xmm3,%xmm3 5908 vmovdqu 112(%rcx),%xmm0 5909 vaesdec %xmm0,%xmm1,%xmm1 5910 vaesdec %xmm0,%xmm2,%xmm2 5911 vaesdec %xmm0,%xmm3,%xmm3 5912 vmovdqu 128(%rcx),%xmm0 5913 vaesdec %xmm0,%xmm1,%xmm1 5914 vaesdec %xmm0,%xmm2,%xmm2 5915 vaesdec %xmm0,%xmm3,%xmm3 5916 vmovdqu 144(%rcx),%xmm0 5917 vaesdec %xmm0,%xmm1,%xmm1 5918 vaesdec %xmm0,%xmm2,%xmm2 5919 vaesdec %xmm0,%xmm3,%xmm3 5920 vmovdqu 160(%rcx),%xmm0 5921 vaesdec %xmm0,%xmm1,%xmm1 5922 vaesdec %xmm0,%xmm2,%xmm2 5923 vaesdec %xmm0,%xmm3,%xmm3 5924 vmovdqu 176(%rcx),%xmm0 5925 vaesdec %xmm0,%xmm1,%xmm1 5926 vaesdec %xmm0,%xmm2,%xmm2 5927 vaesdec %xmm0,%xmm3,%xmm3 5928 vmovdqu 192(%rcx),%xmm0 5929 vaesdec %xmm0,%xmm1,%xmm1 5930 vaesdec %xmm0,%xmm2,%xmm2 5931 vaesdec %xmm0,%xmm3,%xmm3 5932 vmovdqu 208(%rcx),%xmm0 5933 vaesdec %xmm0,%xmm1,%xmm1 5934 vaesdec %xmm0,%xmm2,%xmm2 5935 vaesdec %xmm0,%xmm3,%xmm3 5936 vmovdqu 224(%rcx),%xmm0 5937 vaesdeclast %xmm0,%xmm1,%xmm1 5938 vaesdeclast %xmm0,%xmm2,%xmm2 5939 vaesdeclast %xmm0,%xmm3,%xmm3 5940 vpxor %xmm9,%xmm1,%xmm1 5941 vpxor %xmm10,%xmm2,%xmm2 5942 vpxor %xmm11,%xmm3,%xmm3 5943 vmovdqu %xmm1,(%rsi) 5944 vmovdqu %xmm2,16(%rsi) 5945 vmovdqu %xmm3,32(%rsi) 5946 jmp .L_ret_EmbgEptodyewbFa 5947 5948.L_remaining_num_blocks_is_2_EmbgEptodyewbFa: 5949 vmovdqu (%rdi),%xmm1 5950 vmovdqu 16(%rdi),%xmm2 5951 addq $0x20,%rdi 5952 andq $0xf,%rdx 5953 je .L_done_2_remain_EmbgEptodyewbFa 5954 vextracti32x4 $0x2,%zmm9,%xmm10 5955 vextracti32x4 $0x1,%zmm9,%xmm12 5956 vpxor %xmm9,%xmm1,%xmm1 5957 vpxor %xmm10,%xmm2,%xmm2 5958 vmovdqu (%rcx),%xmm0 5959 vpxor %xmm0,%xmm1,%xmm1 5960 vpxor %xmm0,%xmm2,%xmm2 5961 vmovdqu 16(%rcx),%xmm0 5962 vaesdec %xmm0,%xmm1,%xmm1 5963 vaesdec %xmm0,%xmm2,%xmm2 5964 vmovdqu 32(%rcx),%xmm0 5965 vaesdec %xmm0,%xmm1,%xmm1 5966 vaesdec %xmm0,%xmm2,%xmm2 5967 vmovdqu 48(%rcx),%xmm0 5968 vaesdec %xmm0,%xmm1,%xmm1 5969 vaesdec %xmm0,%xmm2,%xmm2 5970 vmovdqu 64(%rcx),%xmm0 5971 vaesdec %xmm0,%xmm1,%xmm1 5972 vaesdec %xmm0,%xmm2,%xmm2 5973 vmovdqu 80(%rcx),%xmm0 5974 vaesdec %xmm0,%xmm1,%xmm1 5975 vaesdec %xmm0,%xmm2,%xmm2 5976 vmovdqu 96(%rcx),%xmm0 5977 vaesdec %xmm0,%xmm1,%xmm1 5978 vaesdec %xmm0,%xmm2,%xmm2 5979 vmovdqu 112(%rcx),%xmm0 5980 vaesdec %xmm0,%xmm1,%xmm1 5981 vaesdec %xmm0,%xmm2,%xmm2 5982 vmovdqu 128(%rcx),%xmm0 5983 vaesdec %xmm0,%xmm1,%xmm1 5984 vaesdec %xmm0,%xmm2,%xmm2 5985 vmovdqu 144(%rcx),%xmm0 5986 vaesdec %xmm0,%xmm1,%xmm1 5987 vaesdec %xmm0,%xmm2,%xmm2 5988 vmovdqu 160(%rcx),%xmm0 5989 vaesdec %xmm0,%xmm1,%xmm1 5990 vaesdec %xmm0,%xmm2,%xmm2 5991 vmovdqu 176(%rcx),%xmm0 5992 vaesdec %xmm0,%xmm1,%xmm1 5993 vaesdec %xmm0,%xmm2,%xmm2 5994 vmovdqu 192(%rcx),%xmm0 5995 vaesdec %xmm0,%xmm1,%xmm1 5996 vaesdec %xmm0,%xmm2,%xmm2 5997 vmovdqu 208(%rcx),%xmm0 5998 vaesdec %xmm0,%xmm1,%xmm1 5999 vaesdec %xmm0,%xmm2,%xmm2 6000 vmovdqu 224(%rcx),%xmm0 6001 vaesdeclast %xmm0,%xmm1,%xmm1 6002 vaesdeclast %xmm0,%xmm2,%xmm2 6003 vpxor %xmm9,%xmm1,%xmm1 6004 vpxor %xmm10,%xmm2,%xmm2 6005 vmovdqu %xmm1,(%rsi) 6006 vmovdqu %xmm2,16(%rsi) 6007 addq $0x20,%rsi 6008 vmovdqa %xmm2,%xmm8 6009 vmovdqa %xmm12,%xmm0 6010 jmp .L_steal_cipher_EmbgEptodyewbFa 6011 6012.L_done_2_remain_EmbgEptodyewbFa: 6013 vextracti32x4 $0x1,%zmm9,%xmm10 6014 vpxor %xmm9,%xmm1,%xmm1 6015 vpxor %xmm10,%xmm2,%xmm2 6016 vmovdqu (%rcx),%xmm0 6017 vpxor %xmm0,%xmm1,%xmm1 6018 vpxor %xmm0,%xmm2,%xmm2 6019 vmovdqu 16(%rcx),%xmm0 6020 vaesdec %xmm0,%xmm1,%xmm1 6021 vaesdec %xmm0,%xmm2,%xmm2 6022 vmovdqu 32(%rcx),%xmm0 6023 vaesdec %xmm0,%xmm1,%xmm1 6024 vaesdec %xmm0,%xmm2,%xmm2 6025 vmovdqu 48(%rcx),%xmm0 6026 vaesdec %xmm0,%xmm1,%xmm1 6027 vaesdec %xmm0,%xmm2,%xmm2 6028 vmovdqu 64(%rcx),%xmm0 6029 vaesdec %xmm0,%xmm1,%xmm1 6030 vaesdec %xmm0,%xmm2,%xmm2 6031 vmovdqu 80(%rcx),%xmm0 6032 vaesdec %xmm0,%xmm1,%xmm1 6033 vaesdec %xmm0,%xmm2,%xmm2 6034 vmovdqu 96(%rcx),%xmm0 6035 vaesdec %xmm0,%xmm1,%xmm1 6036 vaesdec %xmm0,%xmm2,%xmm2 6037 vmovdqu 112(%rcx),%xmm0 6038 vaesdec %xmm0,%xmm1,%xmm1 6039 vaesdec %xmm0,%xmm2,%xmm2 6040 vmovdqu 128(%rcx),%xmm0 6041 vaesdec %xmm0,%xmm1,%xmm1 6042 vaesdec %xmm0,%xmm2,%xmm2 6043 vmovdqu 144(%rcx),%xmm0 6044 vaesdec %xmm0,%xmm1,%xmm1 6045 vaesdec %xmm0,%xmm2,%xmm2 6046 vmovdqu 160(%rcx),%xmm0 6047 vaesdec %xmm0,%xmm1,%xmm1 6048 vaesdec %xmm0,%xmm2,%xmm2 6049 vmovdqu 176(%rcx),%xmm0 6050 vaesdec %xmm0,%xmm1,%xmm1 6051 vaesdec %xmm0,%xmm2,%xmm2 6052 vmovdqu 192(%rcx),%xmm0 6053 vaesdec %xmm0,%xmm1,%xmm1 6054 vaesdec %xmm0,%xmm2,%xmm2 6055 vmovdqu 208(%rcx),%xmm0 6056 vaesdec %xmm0,%xmm1,%xmm1 6057 vaesdec %xmm0,%xmm2,%xmm2 6058 vmovdqu 224(%rcx),%xmm0 6059 vaesdeclast %xmm0,%xmm1,%xmm1 6060 vaesdeclast %xmm0,%xmm2,%xmm2 6061 vpxor %xmm9,%xmm1,%xmm1 6062 vpxor %xmm10,%xmm2,%xmm2 6063 vmovdqu %xmm1,(%rsi) 6064 vmovdqu %xmm2,16(%rsi) 6065 jmp .L_ret_EmbgEptodyewbFa 6066 6067.L_remaining_num_blocks_is_1_EmbgEptodyewbFa: 6068 vmovdqu (%rdi),%xmm1 6069 addq $0x10,%rdi 6070 andq $0xf,%rdx 6071 je .L_done_1_remain_EmbgEptodyewbFa 6072 vextracti32x4 $0x1,%zmm9,%xmm11 6073 vpxor %xmm11,%xmm1,%xmm1 6074 vmovdqu (%rcx),%xmm0 6075 vpxor %xmm0,%xmm1,%xmm1 6076 vmovdqu 16(%rcx),%xmm0 6077 vaesdec %xmm0,%xmm1,%xmm1 6078 vmovdqu 32(%rcx),%xmm0 6079 vaesdec %xmm0,%xmm1,%xmm1 6080 vmovdqu 48(%rcx),%xmm0 6081 vaesdec %xmm0,%xmm1,%xmm1 6082 vmovdqu 64(%rcx),%xmm0 6083 vaesdec %xmm0,%xmm1,%xmm1 6084 vmovdqu 80(%rcx),%xmm0 6085 vaesdec %xmm0,%xmm1,%xmm1 6086 vmovdqu 96(%rcx),%xmm0 6087 vaesdec %xmm0,%xmm1,%xmm1 6088 vmovdqu 112(%rcx),%xmm0 6089 vaesdec %xmm0,%xmm1,%xmm1 6090 vmovdqu 128(%rcx),%xmm0 6091 vaesdec %xmm0,%xmm1,%xmm1 6092 vmovdqu 144(%rcx),%xmm0 6093 vaesdec %xmm0,%xmm1,%xmm1 6094 vmovdqu 160(%rcx),%xmm0 6095 vaesdec %xmm0,%xmm1,%xmm1 6096 vmovdqu 176(%rcx),%xmm0 6097 vaesdec %xmm0,%xmm1,%xmm1 6098 vmovdqu 192(%rcx),%xmm0 6099 vaesdec %xmm0,%xmm1,%xmm1 6100 vmovdqu 208(%rcx),%xmm0 6101 vaesdec %xmm0,%xmm1,%xmm1 6102 vmovdqu 224(%rcx),%xmm0 6103 vaesdeclast %xmm0,%xmm1,%xmm1 6104 vpxor %xmm11,%xmm1,%xmm1 6105 vmovdqu %xmm1,(%rsi) 6106 addq $0x10,%rsi 6107 vmovdqa %xmm1,%xmm8 6108 vmovdqa %xmm9,%xmm0 6109 jmp .L_steal_cipher_EmbgEptodyewbFa 6110 6111.L_done_1_remain_EmbgEptodyewbFa: 6112 vpxor %xmm9,%xmm1,%xmm1 6113 vmovdqu (%rcx),%xmm0 6114 vpxor %xmm0,%xmm1,%xmm1 6115 vmovdqu 16(%rcx),%xmm0 6116 vaesdec %xmm0,%xmm1,%xmm1 6117 vmovdqu 32(%rcx),%xmm0 6118 vaesdec %xmm0,%xmm1,%xmm1 6119 vmovdqu 48(%rcx),%xmm0 6120 vaesdec %xmm0,%xmm1,%xmm1 6121 vmovdqu 64(%rcx),%xmm0 6122 vaesdec %xmm0,%xmm1,%xmm1 6123 vmovdqu 80(%rcx),%xmm0 6124 vaesdec %xmm0,%xmm1,%xmm1 6125 vmovdqu 96(%rcx),%xmm0 6126 vaesdec %xmm0,%xmm1,%xmm1 6127 vmovdqu 112(%rcx),%xmm0 6128 vaesdec %xmm0,%xmm1,%xmm1 6129 vmovdqu 128(%rcx),%xmm0 6130 vaesdec %xmm0,%xmm1,%xmm1 6131 vmovdqu 144(%rcx),%xmm0 6132 vaesdec %xmm0,%xmm1,%xmm1 6133 vmovdqu 160(%rcx),%xmm0 6134 vaesdec %xmm0,%xmm1,%xmm1 6135 vmovdqu 176(%rcx),%xmm0 6136 vaesdec %xmm0,%xmm1,%xmm1 6137 vmovdqu 192(%rcx),%xmm0 6138 vaesdec %xmm0,%xmm1,%xmm1 6139 vmovdqu 208(%rcx),%xmm0 6140 vaesdec %xmm0,%xmm1,%xmm1 6141 vmovdqu 224(%rcx),%xmm0 6142 vaesdeclast %xmm0,%xmm1,%xmm1 6143 vpxor %xmm9,%xmm1,%xmm1 6144 vmovdqu %xmm1,(%rsi) 6145 jmp .L_ret_EmbgEptodyewbFa 6146 6147.L_start_by16_EmbgEptodyewbFa: 6148 vbroadcasti32x4 (%rsp),%zmm0 6149 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 6150 movq $0xaa,%r8 6151 kmovq %r8,%k2 6152 6153 6154 vpshufb %zmm8,%zmm0,%zmm1 6155 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 6156 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 6157 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 6158 vpxorq %zmm2,%zmm4,%zmm4{%k2} 6159 vpxord %zmm4,%zmm3,%zmm9 6160 6161 6162 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 6163 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 6164 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 6165 vpxorq %zmm6,%zmm5,%zmm5{%k2} 6166 vpxord %zmm5,%zmm7,%zmm10 6167 6168 6169 vpsrldq $0xf,%zmm9,%zmm13 6170 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6171 vpslldq $0x1,%zmm9,%zmm11 6172 vpxord %zmm14,%zmm11,%zmm11 6173 6174 vpsrldq $0xf,%zmm10,%zmm15 6175 vpclmulqdq $0x0,%zmm25,%zmm15,%zmm16 6176 vpslldq $0x1,%zmm10,%zmm12 6177 vpxord %zmm16,%zmm12,%zmm12 6178 6179.L_main_loop_run_16_EmbgEptodyewbFa: 6180 vmovdqu8 (%rdi),%zmm1 6181 vmovdqu8 64(%rdi),%zmm2 6182 vmovdqu8 128(%rdi),%zmm3 6183 vmovdqu8 192(%rdi),%zmm4 6184 vmovdqu8 240(%rdi),%xmm5 6185 addq $0x100,%rdi 6186 vpxorq %zmm9,%zmm1,%zmm1 6187 vpxorq %zmm10,%zmm2,%zmm2 6188 vpxorq %zmm11,%zmm3,%zmm3 6189 vpxorq %zmm12,%zmm4,%zmm4 6190 vbroadcasti32x4 (%rcx),%zmm0 6191 vpxorq %zmm0,%zmm1,%zmm1 6192 vpxorq %zmm0,%zmm2,%zmm2 6193 vpxorq %zmm0,%zmm3,%zmm3 6194 vpxorq %zmm0,%zmm4,%zmm4 6195 vpsrldq $0xf,%zmm11,%zmm13 6196 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6197 vpslldq $0x1,%zmm11,%zmm15 6198 vpxord %zmm14,%zmm15,%zmm15 6199 vbroadcasti32x4 16(%rcx),%zmm0 6200 vaesdec %zmm0,%zmm1,%zmm1 6201 vaesdec %zmm0,%zmm2,%zmm2 6202 vaesdec %zmm0,%zmm3,%zmm3 6203 vaesdec %zmm0,%zmm4,%zmm4 6204 vbroadcasti32x4 32(%rcx),%zmm0 6205 vaesdec %zmm0,%zmm1,%zmm1 6206 vaesdec %zmm0,%zmm2,%zmm2 6207 vaesdec %zmm0,%zmm3,%zmm3 6208 vaesdec %zmm0,%zmm4,%zmm4 6209 vbroadcasti32x4 48(%rcx),%zmm0 6210 vaesdec %zmm0,%zmm1,%zmm1 6211 vaesdec %zmm0,%zmm2,%zmm2 6212 vaesdec %zmm0,%zmm3,%zmm3 6213 vaesdec %zmm0,%zmm4,%zmm4 6214 vpsrldq $0xf,%zmm12,%zmm13 6215 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6216 vpslldq $0x1,%zmm12,%zmm16 6217 vpxord %zmm14,%zmm16,%zmm16 6218 vbroadcasti32x4 64(%rcx),%zmm0 6219 vaesdec %zmm0,%zmm1,%zmm1 6220 vaesdec %zmm0,%zmm2,%zmm2 6221 vaesdec %zmm0,%zmm3,%zmm3 6222 vaesdec %zmm0,%zmm4,%zmm4 6223 vbroadcasti32x4 80(%rcx),%zmm0 6224 vaesdec %zmm0,%zmm1,%zmm1 6225 vaesdec %zmm0,%zmm2,%zmm2 6226 vaesdec %zmm0,%zmm3,%zmm3 6227 vaesdec %zmm0,%zmm4,%zmm4 6228 vbroadcasti32x4 96(%rcx),%zmm0 6229 vaesdec %zmm0,%zmm1,%zmm1 6230 vaesdec %zmm0,%zmm2,%zmm2 6231 vaesdec %zmm0,%zmm3,%zmm3 6232 vaesdec %zmm0,%zmm4,%zmm4 6233 vpsrldq $0xf,%zmm15,%zmm13 6234 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6235 vpslldq $0x1,%zmm15,%zmm17 6236 vpxord %zmm14,%zmm17,%zmm17 6237 vbroadcasti32x4 112(%rcx),%zmm0 6238 vaesdec %zmm0,%zmm1,%zmm1 6239 vaesdec %zmm0,%zmm2,%zmm2 6240 vaesdec %zmm0,%zmm3,%zmm3 6241 vaesdec %zmm0,%zmm4,%zmm4 6242 vbroadcasti32x4 128(%rcx),%zmm0 6243 vaesdec %zmm0,%zmm1,%zmm1 6244 vaesdec %zmm0,%zmm2,%zmm2 6245 vaesdec %zmm0,%zmm3,%zmm3 6246 vaesdec %zmm0,%zmm4,%zmm4 6247 vbroadcasti32x4 144(%rcx),%zmm0 6248 vaesdec %zmm0,%zmm1,%zmm1 6249 vaesdec %zmm0,%zmm2,%zmm2 6250 vaesdec %zmm0,%zmm3,%zmm3 6251 vaesdec %zmm0,%zmm4,%zmm4 6252 vpsrldq $0xf,%zmm16,%zmm13 6253 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6254 vpslldq $0x1,%zmm16,%zmm18 6255 vpxord %zmm14,%zmm18,%zmm18 6256 vbroadcasti32x4 160(%rcx),%zmm0 6257 vaesdec %zmm0,%zmm1,%zmm1 6258 vaesdec %zmm0,%zmm2,%zmm2 6259 vaesdec %zmm0,%zmm3,%zmm3 6260 vaesdec %zmm0,%zmm4,%zmm4 6261 vbroadcasti32x4 176(%rcx),%zmm0 6262 vaesdec %zmm0,%zmm1,%zmm1 6263 vaesdec %zmm0,%zmm2,%zmm2 6264 vaesdec %zmm0,%zmm3,%zmm3 6265 vaesdec %zmm0,%zmm4,%zmm4 6266 vbroadcasti32x4 192(%rcx),%zmm0 6267 vaesdec %zmm0,%zmm1,%zmm1 6268 vaesdec %zmm0,%zmm2,%zmm2 6269 vaesdec %zmm0,%zmm3,%zmm3 6270 vaesdec %zmm0,%zmm4,%zmm4 6271 vbroadcasti32x4 208(%rcx),%zmm0 6272 vaesdec %zmm0,%zmm1,%zmm1 6273 vaesdec %zmm0,%zmm2,%zmm2 6274 vaesdec %zmm0,%zmm3,%zmm3 6275 vaesdec %zmm0,%zmm4,%zmm4 6276 vbroadcasti32x4 224(%rcx),%zmm0 6277 vaesdeclast %zmm0,%zmm1,%zmm1 6278 vaesdeclast %zmm0,%zmm2,%zmm2 6279 vaesdeclast %zmm0,%zmm3,%zmm3 6280 vaesdeclast %zmm0,%zmm4,%zmm4 6281 vpxorq %zmm9,%zmm1,%zmm1 6282 vpxorq %zmm10,%zmm2,%zmm2 6283 vpxorq %zmm11,%zmm3,%zmm3 6284 vpxorq %zmm12,%zmm4,%zmm4 6285 6286 vmovdqa32 %zmm15,%zmm9 6287 vmovdqa32 %zmm16,%zmm10 6288 vmovdqa32 %zmm17,%zmm11 6289 vmovdqa32 %zmm18,%zmm12 6290 vmovdqu8 %zmm1,(%rsi) 6291 vmovdqu8 %zmm2,64(%rsi) 6292 vmovdqu8 %zmm3,128(%rsi) 6293 vmovdqu8 %zmm4,192(%rsi) 6294 addq $0x100,%rsi 6295 subq $0x100,%rdx 6296 cmpq $0x100,%rdx 6297 jge .L_main_loop_run_16_EmbgEptodyewbFa 6298 6299 cmpq $0x80,%rdx 6300 jge .L_main_loop_run_8_EmbgEptodyewbFa 6301 jmp .L_do_n_blocks_EmbgEptodyewbFa 6302 6303.L_start_by8_EmbgEptodyewbFa: 6304 6305 vbroadcasti32x4 (%rsp),%zmm0 6306 vbroadcasti32x4 shufb_15_7(%rip),%zmm8 6307 movq $0xaa,%r8 6308 kmovq %r8,%k2 6309 6310 6311 vpshufb %zmm8,%zmm0,%zmm1 6312 vpsllvq const_dq3210(%rip),%zmm0,%zmm4 6313 vpsrlvq const_dq5678(%rip),%zmm1,%zmm2 6314 vpclmulqdq $0x0,%zmm25,%zmm2,%zmm3 6315 vpxorq %zmm2,%zmm4,%zmm4{%k2} 6316 vpxord %zmm4,%zmm3,%zmm9 6317 6318 6319 vpsllvq const_dq7654(%rip),%zmm0,%zmm5 6320 vpsrlvq const_dq1234(%rip),%zmm1,%zmm6 6321 vpclmulqdq $0x0,%zmm25,%zmm6,%zmm7 6322 vpxorq %zmm6,%zmm5,%zmm5{%k2} 6323 vpxord %zmm5,%zmm7,%zmm10 6324 6325.L_main_loop_run_8_EmbgEptodyewbFa: 6326 vmovdqu8 (%rdi),%zmm1 6327 vmovdqu8 64(%rdi),%zmm2 6328 vmovdqu8 112(%rdi),%xmm5 6329 addq $0x80,%rdi 6330 6331 vpxorq %zmm9,%zmm1,%zmm1 6332 vpxorq %zmm10,%zmm2,%zmm2 6333 6334 6335 vbroadcasti32x4 (%rcx),%zmm0 6336 vpxorq %zmm0,%zmm1,%zmm1 6337 vpxorq %zmm0,%zmm2,%zmm2 6338 vpsrldq $0xf,%zmm9,%zmm13 6339 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6340 vpslldq $0x1,%zmm9,%zmm15 6341 vpxord %zmm14,%zmm15,%zmm15 6342 vbroadcasti32x4 16(%rcx),%zmm0 6343 vaesdec %zmm0,%zmm1,%zmm1 6344 vaesdec %zmm0,%zmm2,%zmm2 6345 6346 6347 vbroadcasti32x4 32(%rcx),%zmm0 6348 vaesdec %zmm0,%zmm1,%zmm1 6349 vaesdec %zmm0,%zmm2,%zmm2 6350 6351 6352 vbroadcasti32x4 48(%rcx),%zmm0 6353 vaesdec %zmm0,%zmm1,%zmm1 6354 vaesdec %zmm0,%zmm2,%zmm2 6355 vpsrldq $0xf,%zmm10,%zmm13 6356 vpclmulqdq $0x0,%zmm25,%zmm13,%zmm14 6357 vpslldq $0x1,%zmm10,%zmm16 6358 vpxord %zmm14,%zmm16,%zmm16 6359 6360 vbroadcasti32x4 64(%rcx),%zmm0 6361 vaesdec %zmm0,%zmm1,%zmm1 6362 vaesdec %zmm0,%zmm2,%zmm2 6363 6364 6365 vbroadcasti32x4 80(%rcx),%zmm0 6366 vaesdec %zmm0,%zmm1,%zmm1 6367 vaesdec %zmm0,%zmm2,%zmm2 6368 6369 6370 vbroadcasti32x4 96(%rcx),%zmm0 6371 vaesdec %zmm0,%zmm1,%zmm1 6372 vaesdec %zmm0,%zmm2,%zmm2 6373 6374 6375 vbroadcasti32x4 112(%rcx),%zmm0 6376 vaesdec %zmm0,%zmm1,%zmm1 6377 vaesdec %zmm0,%zmm2,%zmm2 6378 6379 6380 vbroadcasti32x4 128(%rcx),%zmm0 6381 vaesdec %zmm0,%zmm1,%zmm1 6382 vaesdec %zmm0,%zmm2,%zmm2 6383 6384 6385 vbroadcasti32x4 144(%rcx),%zmm0 6386 vaesdec %zmm0,%zmm1,%zmm1 6387 vaesdec %zmm0,%zmm2,%zmm2 6388 6389 6390 vbroadcasti32x4 160(%rcx),%zmm0 6391 vaesdec %zmm0,%zmm1,%zmm1 6392 vaesdec %zmm0,%zmm2,%zmm2 6393 6394 6395 vbroadcasti32x4 176(%rcx),%zmm0 6396 vaesdec %zmm0,%zmm1,%zmm1 6397 vaesdec %zmm0,%zmm2,%zmm2 6398 6399 6400 vbroadcasti32x4 192(%rcx),%zmm0 6401 vaesdec %zmm0,%zmm1,%zmm1 6402 vaesdec %zmm0,%zmm2,%zmm2 6403 6404 6405 vbroadcasti32x4 208(%rcx),%zmm0 6406 vaesdec %zmm0,%zmm1,%zmm1 6407 vaesdec %zmm0,%zmm2,%zmm2 6408 6409 6410 vbroadcasti32x4 224(%rcx),%zmm0 6411 vaesdeclast %zmm0,%zmm1,%zmm1 6412 vaesdeclast %zmm0,%zmm2,%zmm2 6413 6414 vpxorq %zmm9,%zmm1,%zmm1 6415 vpxorq %zmm10,%zmm2,%zmm2 6416 6417 6418 vmovdqa32 %zmm15,%zmm9 6419 vmovdqa32 %zmm16,%zmm10 6420 vmovdqu8 %zmm1,(%rsi) 6421 vmovdqu8 %zmm2,64(%rsi) 6422 addq $0x80,%rsi 6423 subq $0x80,%rdx 6424 cmpq $0x80,%rdx 6425 jge .L_main_loop_run_8_EmbgEptodyewbFa 6426 jmp .L_do_n_blocks_EmbgEptodyewbFa 6427 6428.L_steal_cipher_EmbgEptodyewbFa: 6429 6430 vmovdqa %xmm8,%xmm2 6431 6432 6433 leaq vpshufb_shf_table(%rip),%rax 6434 vmovdqu (%rax,%rdx,1),%xmm10 6435 vpshufb %xmm10,%xmm8,%xmm8 6436 6437 6438 vmovdqu -16(%rdi,%rdx,1),%xmm3 6439 vmovdqu %xmm8,-16(%rsi,%rdx,1) 6440 6441 6442 leaq vpshufb_shf_table(%rip),%rax 6443 addq $16,%rax 6444 subq %rdx,%rax 6445 vmovdqu (%rax),%xmm10 6446 vpxor mask1(%rip),%xmm10,%xmm10 6447 vpshufb %xmm10,%xmm3,%xmm3 6448 6449 vpblendvb %xmm10,%xmm2,%xmm3,%xmm3 6450 6451 6452 vpxor %xmm0,%xmm3,%xmm8 6453 6454 6455 vpxor (%rcx),%xmm8,%xmm8 6456 vaesdec 16(%rcx),%xmm8,%xmm8 6457 vaesdec 32(%rcx),%xmm8,%xmm8 6458 vaesdec 48(%rcx),%xmm8,%xmm8 6459 vaesdec 64(%rcx),%xmm8,%xmm8 6460 vaesdec 80(%rcx),%xmm8,%xmm8 6461 vaesdec 96(%rcx),%xmm8,%xmm8 6462 vaesdec 112(%rcx),%xmm8,%xmm8 6463 vaesdec 128(%rcx),%xmm8,%xmm8 6464 vaesdec 144(%rcx),%xmm8,%xmm8 6465 vaesdec 160(%rcx),%xmm8,%xmm8 6466 vaesdec 176(%rcx),%xmm8,%xmm8 6467 vaesdec 192(%rcx),%xmm8,%xmm8 6468 vaesdec 208(%rcx),%xmm8,%xmm8 6469 vaesdeclast 224(%rcx),%xmm8,%xmm8 6470 6471 vpxor %xmm0,%xmm8,%xmm8 6472 6473.L_done_EmbgEptodyewbFa: 6474 6475 vmovdqu %xmm8,-16(%rsi) 6476.L_ret_EmbgEptodyewbFa: 6477 movq 128(%rsp),%rbx 6478 xorq %r8,%r8 6479 movq %r8,128(%rsp) 6480 6481 vpxorq %zmm0,%zmm0,%zmm0 6482 movq %rbp,%rsp 6483 popq %rbp 6484 vzeroupper 6485 .byte 0xf3,0xc3 6486 6487.L_less_than_128_bytes_EmbgEptodyewbFa: 6488 cmpq $0x10,%rdx 6489 jb .L_ret_EmbgEptodyewbFa 6490 6491 movq %rdx,%r8 6492 andq $0x70,%r8 6493 cmpq $0x60,%r8 6494 je .L_num_blocks_is_6_EmbgEptodyewbFa 6495 cmpq $0x50,%r8 6496 je .L_num_blocks_is_5_EmbgEptodyewbFa 6497 cmpq $0x40,%r8 6498 je .L_num_blocks_is_4_EmbgEptodyewbFa 6499 cmpq $0x30,%r8 6500 je .L_num_blocks_is_3_EmbgEptodyewbFa 6501 cmpq $0x20,%r8 6502 je .L_num_blocks_is_2_EmbgEptodyewbFa 6503 cmpq $0x10,%r8 6504 je .L_num_blocks_is_1_EmbgEptodyewbFa 6505 6506.L_num_blocks_is_7_EmbgEptodyewbFa: 6507 vmovdqa 0(%rsp),%xmm9 6508 movq 0(%rsp),%rax 6509 movq 8(%rsp),%rbx 6510 vmovdqu 0(%rdi),%xmm1 6511 xorq %r11,%r11 6512 shlq $1,%rax 6513 adcq %rbx,%rbx 6514 cmovcq %r10,%r11 6515 xorq %r11,%rax 6516 movq %rax,16(%rsp) 6517 movq %rbx,16 + 8(%rsp) 6518 vmovdqa 16(%rsp),%xmm10 6519 vmovdqu 16(%rdi),%xmm2 6520 xorq %r11,%r11 6521 shlq $1,%rax 6522 adcq %rbx,%rbx 6523 cmovcq %r10,%r11 6524 xorq %r11,%rax 6525 movq %rax,32(%rsp) 6526 movq %rbx,32 + 8(%rsp) 6527 vmovdqa 32(%rsp),%xmm11 6528 vmovdqu 32(%rdi),%xmm3 6529 xorq %r11,%r11 6530 shlq $1,%rax 6531 adcq %rbx,%rbx 6532 cmovcq %r10,%r11 6533 xorq %r11,%rax 6534 movq %rax,48(%rsp) 6535 movq %rbx,48 + 8(%rsp) 6536 vmovdqa 48(%rsp),%xmm12 6537 vmovdqu 48(%rdi),%xmm4 6538 xorq %r11,%r11 6539 shlq $1,%rax 6540 adcq %rbx,%rbx 6541 cmovcq %r10,%r11 6542 xorq %r11,%rax 6543 movq %rax,64(%rsp) 6544 movq %rbx,64 + 8(%rsp) 6545 vmovdqa 64(%rsp),%xmm13 6546 vmovdqu 64(%rdi),%xmm5 6547 xorq %r11,%r11 6548 shlq $1,%rax 6549 adcq %rbx,%rbx 6550 cmovcq %r10,%r11 6551 xorq %r11,%rax 6552 movq %rax,80(%rsp) 6553 movq %rbx,80 + 8(%rsp) 6554 vmovdqa 80(%rsp),%xmm14 6555 vmovdqu 80(%rdi),%xmm6 6556 xorq %r11,%r11 6557 shlq $1,%rax 6558 adcq %rbx,%rbx 6559 cmovcq %r10,%r11 6560 xorq %r11,%rax 6561 movq %rax,96(%rsp) 6562 movq %rbx,96 + 8(%rsp) 6563 vmovdqa 96(%rsp),%xmm15 6564 vmovdqu 96(%rdi),%xmm7 6565 addq $0x70,%rdi 6566 andq $0xf,%rdx 6567 je .L_done_7_EmbgEptodyewbFa 6568 6569.L_steal_cipher_7_EmbgEptodyewbFa: 6570 xorq %r11,%r11 6571 shlq $1,%rax 6572 adcq %rbx,%rbx 6573 cmovcq %r10,%r11 6574 xorq %r11,%rax 6575 movq %rax,16(%rsp) 6576 movq %rbx,24(%rsp) 6577 vmovdqa64 %xmm15,%xmm16 6578 vmovdqa 16(%rsp),%xmm15 6579 vpxor %xmm9,%xmm1,%xmm1 6580 vpxor %xmm10,%xmm2,%xmm2 6581 vpxor %xmm11,%xmm3,%xmm3 6582 vpxor %xmm12,%xmm4,%xmm4 6583 vpxor %xmm13,%xmm5,%xmm5 6584 vpxor %xmm14,%xmm6,%xmm6 6585 vpxor %xmm15,%xmm7,%xmm7 6586 vmovdqu (%rcx),%xmm0 6587 vpxor %xmm0,%xmm1,%xmm1 6588 vpxor %xmm0,%xmm2,%xmm2 6589 vpxor %xmm0,%xmm3,%xmm3 6590 vpxor %xmm0,%xmm4,%xmm4 6591 vpxor %xmm0,%xmm5,%xmm5 6592 vpxor %xmm0,%xmm6,%xmm6 6593 vpxor %xmm0,%xmm7,%xmm7 6594 vmovdqu 16(%rcx),%xmm0 6595 vaesdec %xmm0,%xmm1,%xmm1 6596 vaesdec %xmm0,%xmm2,%xmm2 6597 vaesdec %xmm0,%xmm3,%xmm3 6598 vaesdec %xmm0,%xmm4,%xmm4 6599 vaesdec %xmm0,%xmm5,%xmm5 6600 vaesdec %xmm0,%xmm6,%xmm6 6601 vaesdec %xmm0,%xmm7,%xmm7 6602 vmovdqu 32(%rcx),%xmm0 6603 vaesdec %xmm0,%xmm1,%xmm1 6604 vaesdec %xmm0,%xmm2,%xmm2 6605 vaesdec %xmm0,%xmm3,%xmm3 6606 vaesdec %xmm0,%xmm4,%xmm4 6607 vaesdec %xmm0,%xmm5,%xmm5 6608 vaesdec %xmm0,%xmm6,%xmm6 6609 vaesdec %xmm0,%xmm7,%xmm7 6610 vmovdqu 48(%rcx),%xmm0 6611 vaesdec %xmm0,%xmm1,%xmm1 6612 vaesdec %xmm0,%xmm2,%xmm2 6613 vaesdec %xmm0,%xmm3,%xmm3 6614 vaesdec %xmm0,%xmm4,%xmm4 6615 vaesdec %xmm0,%xmm5,%xmm5 6616 vaesdec %xmm0,%xmm6,%xmm6 6617 vaesdec %xmm0,%xmm7,%xmm7 6618 vmovdqu 64(%rcx),%xmm0 6619 vaesdec %xmm0,%xmm1,%xmm1 6620 vaesdec %xmm0,%xmm2,%xmm2 6621 vaesdec %xmm0,%xmm3,%xmm3 6622 vaesdec %xmm0,%xmm4,%xmm4 6623 vaesdec %xmm0,%xmm5,%xmm5 6624 vaesdec %xmm0,%xmm6,%xmm6 6625 vaesdec %xmm0,%xmm7,%xmm7 6626 vmovdqu 80(%rcx),%xmm0 6627 vaesdec %xmm0,%xmm1,%xmm1 6628 vaesdec %xmm0,%xmm2,%xmm2 6629 vaesdec %xmm0,%xmm3,%xmm3 6630 vaesdec %xmm0,%xmm4,%xmm4 6631 vaesdec %xmm0,%xmm5,%xmm5 6632 vaesdec %xmm0,%xmm6,%xmm6 6633 vaesdec %xmm0,%xmm7,%xmm7 6634 vmovdqu 96(%rcx),%xmm0 6635 vaesdec %xmm0,%xmm1,%xmm1 6636 vaesdec %xmm0,%xmm2,%xmm2 6637 vaesdec %xmm0,%xmm3,%xmm3 6638 vaesdec %xmm0,%xmm4,%xmm4 6639 vaesdec %xmm0,%xmm5,%xmm5 6640 vaesdec %xmm0,%xmm6,%xmm6 6641 vaesdec %xmm0,%xmm7,%xmm7 6642 vmovdqu 112(%rcx),%xmm0 6643 vaesdec %xmm0,%xmm1,%xmm1 6644 vaesdec %xmm0,%xmm2,%xmm2 6645 vaesdec %xmm0,%xmm3,%xmm3 6646 vaesdec %xmm0,%xmm4,%xmm4 6647 vaesdec %xmm0,%xmm5,%xmm5 6648 vaesdec %xmm0,%xmm6,%xmm6 6649 vaesdec %xmm0,%xmm7,%xmm7 6650 vmovdqu 128(%rcx),%xmm0 6651 vaesdec %xmm0,%xmm1,%xmm1 6652 vaesdec %xmm0,%xmm2,%xmm2 6653 vaesdec %xmm0,%xmm3,%xmm3 6654 vaesdec %xmm0,%xmm4,%xmm4 6655 vaesdec %xmm0,%xmm5,%xmm5 6656 vaesdec %xmm0,%xmm6,%xmm6 6657 vaesdec %xmm0,%xmm7,%xmm7 6658 vmovdqu 144(%rcx),%xmm0 6659 vaesdec %xmm0,%xmm1,%xmm1 6660 vaesdec %xmm0,%xmm2,%xmm2 6661 vaesdec %xmm0,%xmm3,%xmm3 6662 vaesdec %xmm0,%xmm4,%xmm4 6663 vaesdec %xmm0,%xmm5,%xmm5 6664 vaesdec %xmm0,%xmm6,%xmm6 6665 vaesdec %xmm0,%xmm7,%xmm7 6666 vmovdqu 160(%rcx),%xmm0 6667 vaesdec %xmm0,%xmm1,%xmm1 6668 vaesdec %xmm0,%xmm2,%xmm2 6669 vaesdec %xmm0,%xmm3,%xmm3 6670 vaesdec %xmm0,%xmm4,%xmm4 6671 vaesdec %xmm0,%xmm5,%xmm5 6672 vaesdec %xmm0,%xmm6,%xmm6 6673 vaesdec %xmm0,%xmm7,%xmm7 6674 vmovdqu 176(%rcx),%xmm0 6675 vaesdec %xmm0,%xmm1,%xmm1 6676 vaesdec %xmm0,%xmm2,%xmm2 6677 vaesdec %xmm0,%xmm3,%xmm3 6678 vaesdec %xmm0,%xmm4,%xmm4 6679 vaesdec %xmm0,%xmm5,%xmm5 6680 vaesdec %xmm0,%xmm6,%xmm6 6681 vaesdec %xmm0,%xmm7,%xmm7 6682 vmovdqu 192(%rcx),%xmm0 6683 vaesdec %xmm0,%xmm1,%xmm1 6684 vaesdec %xmm0,%xmm2,%xmm2 6685 vaesdec %xmm0,%xmm3,%xmm3 6686 vaesdec %xmm0,%xmm4,%xmm4 6687 vaesdec %xmm0,%xmm5,%xmm5 6688 vaesdec %xmm0,%xmm6,%xmm6 6689 vaesdec %xmm0,%xmm7,%xmm7 6690 vmovdqu 208(%rcx),%xmm0 6691 vaesdec %xmm0,%xmm1,%xmm1 6692 vaesdec %xmm0,%xmm2,%xmm2 6693 vaesdec %xmm0,%xmm3,%xmm3 6694 vaesdec %xmm0,%xmm4,%xmm4 6695 vaesdec %xmm0,%xmm5,%xmm5 6696 vaesdec %xmm0,%xmm6,%xmm6 6697 vaesdec %xmm0,%xmm7,%xmm7 6698 vmovdqu 224(%rcx),%xmm0 6699 vaesdeclast %xmm0,%xmm1,%xmm1 6700 vaesdeclast %xmm0,%xmm2,%xmm2 6701 vaesdeclast %xmm0,%xmm3,%xmm3 6702 vaesdeclast %xmm0,%xmm4,%xmm4 6703 vaesdeclast %xmm0,%xmm5,%xmm5 6704 vaesdeclast %xmm0,%xmm6,%xmm6 6705 vaesdeclast %xmm0,%xmm7,%xmm7 6706 vpxor %xmm9,%xmm1,%xmm1 6707 vpxor %xmm10,%xmm2,%xmm2 6708 vpxor %xmm11,%xmm3,%xmm3 6709 vpxor %xmm12,%xmm4,%xmm4 6710 vpxor %xmm13,%xmm5,%xmm5 6711 vpxor %xmm14,%xmm6,%xmm6 6712 vpxor %xmm15,%xmm7,%xmm7 6713 vmovdqu %xmm1,(%rsi) 6714 vmovdqu %xmm2,16(%rsi) 6715 vmovdqu %xmm3,32(%rsi) 6716 vmovdqu %xmm4,48(%rsi) 6717 vmovdqu %xmm5,64(%rsi) 6718 vmovdqu %xmm6,80(%rsi) 6719 addq $0x70,%rsi 6720 vmovdqa64 %xmm16,%xmm0 6721 vmovdqa %xmm7,%xmm8 6722 jmp .L_steal_cipher_EmbgEptodyewbFa 6723 6724.L_done_7_EmbgEptodyewbFa: 6725 vpxor %xmm9,%xmm1,%xmm1 6726 vpxor %xmm10,%xmm2,%xmm2 6727 vpxor %xmm11,%xmm3,%xmm3 6728 vpxor %xmm12,%xmm4,%xmm4 6729 vpxor %xmm13,%xmm5,%xmm5 6730 vpxor %xmm14,%xmm6,%xmm6 6731 vpxor %xmm15,%xmm7,%xmm7 6732 vmovdqu (%rcx),%xmm0 6733 vpxor %xmm0,%xmm1,%xmm1 6734 vpxor %xmm0,%xmm2,%xmm2 6735 vpxor %xmm0,%xmm3,%xmm3 6736 vpxor %xmm0,%xmm4,%xmm4 6737 vpxor %xmm0,%xmm5,%xmm5 6738 vpxor %xmm0,%xmm6,%xmm6 6739 vpxor %xmm0,%xmm7,%xmm7 6740 vmovdqu 16(%rcx),%xmm0 6741 vaesdec %xmm0,%xmm1,%xmm1 6742 vaesdec %xmm0,%xmm2,%xmm2 6743 vaesdec %xmm0,%xmm3,%xmm3 6744 vaesdec %xmm0,%xmm4,%xmm4 6745 vaesdec %xmm0,%xmm5,%xmm5 6746 vaesdec %xmm0,%xmm6,%xmm6 6747 vaesdec %xmm0,%xmm7,%xmm7 6748 vmovdqu 32(%rcx),%xmm0 6749 vaesdec %xmm0,%xmm1,%xmm1 6750 vaesdec %xmm0,%xmm2,%xmm2 6751 vaesdec %xmm0,%xmm3,%xmm3 6752 vaesdec %xmm0,%xmm4,%xmm4 6753 vaesdec %xmm0,%xmm5,%xmm5 6754 vaesdec %xmm0,%xmm6,%xmm6 6755 vaesdec %xmm0,%xmm7,%xmm7 6756 vmovdqu 48(%rcx),%xmm0 6757 vaesdec %xmm0,%xmm1,%xmm1 6758 vaesdec %xmm0,%xmm2,%xmm2 6759 vaesdec %xmm0,%xmm3,%xmm3 6760 vaesdec %xmm0,%xmm4,%xmm4 6761 vaesdec %xmm0,%xmm5,%xmm5 6762 vaesdec %xmm0,%xmm6,%xmm6 6763 vaesdec %xmm0,%xmm7,%xmm7 6764 vmovdqu 64(%rcx),%xmm0 6765 vaesdec %xmm0,%xmm1,%xmm1 6766 vaesdec %xmm0,%xmm2,%xmm2 6767 vaesdec %xmm0,%xmm3,%xmm3 6768 vaesdec %xmm0,%xmm4,%xmm4 6769 vaesdec %xmm0,%xmm5,%xmm5 6770 vaesdec %xmm0,%xmm6,%xmm6 6771 vaesdec %xmm0,%xmm7,%xmm7 6772 vmovdqu 80(%rcx),%xmm0 6773 vaesdec %xmm0,%xmm1,%xmm1 6774 vaesdec %xmm0,%xmm2,%xmm2 6775 vaesdec %xmm0,%xmm3,%xmm3 6776 vaesdec %xmm0,%xmm4,%xmm4 6777 vaesdec %xmm0,%xmm5,%xmm5 6778 vaesdec %xmm0,%xmm6,%xmm6 6779 vaesdec %xmm0,%xmm7,%xmm7 6780 vmovdqu 96(%rcx),%xmm0 6781 vaesdec %xmm0,%xmm1,%xmm1 6782 vaesdec %xmm0,%xmm2,%xmm2 6783 vaesdec %xmm0,%xmm3,%xmm3 6784 vaesdec %xmm0,%xmm4,%xmm4 6785 vaesdec %xmm0,%xmm5,%xmm5 6786 vaesdec %xmm0,%xmm6,%xmm6 6787 vaesdec %xmm0,%xmm7,%xmm7 6788 vmovdqu 112(%rcx),%xmm0 6789 vaesdec %xmm0,%xmm1,%xmm1 6790 vaesdec %xmm0,%xmm2,%xmm2 6791 vaesdec %xmm0,%xmm3,%xmm3 6792 vaesdec %xmm0,%xmm4,%xmm4 6793 vaesdec %xmm0,%xmm5,%xmm5 6794 vaesdec %xmm0,%xmm6,%xmm6 6795 vaesdec %xmm0,%xmm7,%xmm7 6796 vmovdqu 128(%rcx),%xmm0 6797 vaesdec %xmm0,%xmm1,%xmm1 6798 vaesdec %xmm0,%xmm2,%xmm2 6799 vaesdec %xmm0,%xmm3,%xmm3 6800 vaesdec %xmm0,%xmm4,%xmm4 6801 vaesdec %xmm0,%xmm5,%xmm5 6802 vaesdec %xmm0,%xmm6,%xmm6 6803 vaesdec %xmm0,%xmm7,%xmm7 6804 vmovdqu 144(%rcx),%xmm0 6805 vaesdec %xmm0,%xmm1,%xmm1 6806 vaesdec %xmm0,%xmm2,%xmm2 6807 vaesdec %xmm0,%xmm3,%xmm3 6808 vaesdec %xmm0,%xmm4,%xmm4 6809 vaesdec %xmm0,%xmm5,%xmm5 6810 vaesdec %xmm0,%xmm6,%xmm6 6811 vaesdec %xmm0,%xmm7,%xmm7 6812 vmovdqu 160(%rcx),%xmm0 6813 vaesdec %xmm0,%xmm1,%xmm1 6814 vaesdec %xmm0,%xmm2,%xmm2 6815 vaesdec %xmm0,%xmm3,%xmm3 6816 vaesdec %xmm0,%xmm4,%xmm4 6817 vaesdec %xmm0,%xmm5,%xmm5 6818 vaesdec %xmm0,%xmm6,%xmm6 6819 vaesdec %xmm0,%xmm7,%xmm7 6820 vmovdqu 176(%rcx),%xmm0 6821 vaesdec %xmm0,%xmm1,%xmm1 6822 vaesdec %xmm0,%xmm2,%xmm2 6823 vaesdec %xmm0,%xmm3,%xmm3 6824 vaesdec %xmm0,%xmm4,%xmm4 6825 vaesdec %xmm0,%xmm5,%xmm5 6826 vaesdec %xmm0,%xmm6,%xmm6 6827 vaesdec %xmm0,%xmm7,%xmm7 6828 vmovdqu 192(%rcx),%xmm0 6829 vaesdec %xmm0,%xmm1,%xmm1 6830 vaesdec %xmm0,%xmm2,%xmm2 6831 vaesdec %xmm0,%xmm3,%xmm3 6832 vaesdec %xmm0,%xmm4,%xmm4 6833 vaesdec %xmm0,%xmm5,%xmm5 6834 vaesdec %xmm0,%xmm6,%xmm6 6835 vaesdec %xmm0,%xmm7,%xmm7 6836 vmovdqu 208(%rcx),%xmm0 6837 vaesdec %xmm0,%xmm1,%xmm1 6838 vaesdec %xmm0,%xmm2,%xmm2 6839 vaesdec %xmm0,%xmm3,%xmm3 6840 vaesdec %xmm0,%xmm4,%xmm4 6841 vaesdec %xmm0,%xmm5,%xmm5 6842 vaesdec %xmm0,%xmm6,%xmm6 6843 vaesdec %xmm0,%xmm7,%xmm7 6844 vmovdqu 224(%rcx),%xmm0 6845 vaesdeclast %xmm0,%xmm1,%xmm1 6846 vaesdeclast %xmm0,%xmm2,%xmm2 6847 vaesdeclast %xmm0,%xmm3,%xmm3 6848 vaesdeclast %xmm0,%xmm4,%xmm4 6849 vaesdeclast %xmm0,%xmm5,%xmm5 6850 vaesdeclast %xmm0,%xmm6,%xmm6 6851 vaesdeclast %xmm0,%xmm7,%xmm7 6852 vpxor %xmm9,%xmm1,%xmm1 6853 vpxor %xmm10,%xmm2,%xmm2 6854 vpxor %xmm11,%xmm3,%xmm3 6855 vpxor %xmm12,%xmm4,%xmm4 6856 vpxor %xmm13,%xmm5,%xmm5 6857 vpxor %xmm14,%xmm6,%xmm6 6858 vpxor %xmm15,%xmm7,%xmm7 6859 vmovdqu %xmm1,(%rsi) 6860 vmovdqu %xmm2,16(%rsi) 6861 vmovdqu %xmm3,32(%rsi) 6862 vmovdqu %xmm4,48(%rsi) 6863 vmovdqu %xmm5,64(%rsi) 6864 vmovdqu %xmm6,80(%rsi) 6865 addq $0x70,%rsi 6866 vmovdqa %xmm7,%xmm8 6867 jmp .L_done_EmbgEptodyewbFa 6868 6869.L_num_blocks_is_6_EmbgEptodyewbFa: 6870 vmovdqa 0(%rsp),%xmm9 6871 movq 0(%rsp),%rax 6872 movq 8(%rsp),%rbx 6873 vmovdqu 0(%rdi),%xmm1 6874 xorq %r11,%r11 6875 shlq $1,%rax 6876 adcq %rbx,%rbx 6877 cmovcq %r10,%r11 6878 xorq %r11,%rax 6879 movq %rax,16(%rsp) 6880 movq %rbx,16 + 8(%rsp) 6881 vmovdqa 16(%rsp),%xmm10 6882 vmovdqu 16(%rdi),%xmm2 6883 xorq %r11,%r11 6884 shlq $1,%rax 6885 adcq %rbx,%rbx 6886 cmovcq %r10,%r11 6887 xorq %r11,%rax 6888 movq %rax,32(%rsp) 6889 movq %rbx,32 + 8(%rsp) 6890 vmovdqa 32(%rsp),%xmm11 6891 vmovdqu 32(%rdi),%xmm3 6892 xorq %r11,%r11 6893 shlq $1,%rax 6894 adcq %rbx,%rbx 6895 cmovcq %r10,%r11 6896 xorq %r11,%rax 6897 movq %rax,48(%rsp) 6898 movq %rbx,48 + 8(%rsp) 6899 vmovdqa 48(%rsp),%xmm12 6900 vmovdqu 48(%rdi),%xmm4 6901 xorq %r11,%r11 6902 shlq $1,%rax 6903 adcq %rbx,%rbx 6904 cmovcq %r10,%r11 6905 xorq %r11,%rax 6906 movq %rax,64(%rsp) 6907 movq %rbx,64 + 8(%rsp) 6908 vmovdqa 64(%rsp),%xmm13 6909 vmovdqu 64(%rdi),%xmm5 6910 xorq %r11,%r11 6911 shlq $1,%rax 6912 adcq %rbx,%rbx 6913 cmovcq %r10,%r11 6914 xorq %r11,%rax 6915 movq %rax,80(%rsp) 6916 movq %rbx,80 + 8(%rsp) 6917 vmovdqa 80(%rsp),%xmm14 6918 vmovdqu 80(%rdi),%xmm6 6919 addq $0x60,%rdi 6920 andq $0xf,%rdx 6921 je .L_done_6_EmbgEptodyewbFa 6922 6923.L_steal_cipher_6_EmbgEptodyewbFa: 6924 xorq %r11,%r11 6925 shlq $1,%rax 6926 adcq %rbx,%rbx 6927 cmovcq %r10,%r11 6928 xorq %r11,%rax 6929 movq %rax,16(%rsp) 6930 movq %rbx,24(%rsp) 6931 vmovdqa64 %xmm14,%xmm15 6932 vmovdqa 16(%rsp),%xmm14 6933 vpxor %xmm9,%xmm1,%xmm1 6934 vpxor %xmm10,%xmm2,%xmm2 6935 vpxor %xmm11,%xmm3,%xmm3 6936 vpxor %xmm12,%xmm4,%xmm4 6937 vpxor %xmm13,%xmm5,%xmm5 6938 vpxor %xmm14,%xmm6,%xmm6 6939 vmovdqu (%rcx),%xmm0 6940 vpxor %xmm0,%xmm1,%xmm1 6941 vpxor %xmm0,%xmm2,%xmm2 6942 vpxor %xmm0,%xmm3,%xmm3 6943 vpxor %xmm0,%xmm4,%xmm4 6944 vpxor %xmm0,%xmm5,%xmm5 6945 vpxor %xmm0,%xmm6,%xmm6 6946 vmovdqu 16(%rcx),%xmm0 6947 vaesdec %xmm0,%xmm1,%xmm1 6948 vaesdec %xmm0,%xmm2,%xmm2 6949 vaesdec %xmm0,%xmm3,%xmm3 6950 vaesdec %xmm0,%xmm4,%xmm4 6951 vaesdec %xmm0,%xmm5,%xmm5 6952 vaesdec %xmm0,%xmm6,%xmm6 6953 vmovdqu 32(%rcx),%xmm0 6954 vaesdec %xmm0,%xmm1,%xmm1 6955 vaesdec %xmm0,%xmm2,%xmm2 6956 vaesdec %xmm0,%xmm3,%xmm3 6957 vaesdec %xmm0,%xmm4,%xmm4 6958 vaesdec %xmm0,%xmm5,%xmm5 6959 vaesdec %xmm0,%xmm6,%xmm6 6960 vmovdqu 48(%rcx),%xmm0 6961 vaesdec %xmm0,%xmm1,%xmm1 6962 vaesdec %xmm0,%xmm2,%xmm2 6963 vaesdec %xmm0,%xmm3,%xmm3 6964 vaesdec %xmm0,%xmm4,%xmm4 6965 vaesdec %xmm0,%xmm5,%xmm5 6966 vaesdec %xmm0,%xmm6,%xmm6 6967 vmovdqu 64(%rcx),%xmm0 6968 vaesdec %xmm0,%xmm1,%xmm1 6969 vaesdec %xmm0,%xmm2,%xmm2 6970 vaesdec %xmm0,%xmm3,%xmm3 6971 vaesdec %xmm0,%xmm4,%xmm4 6972 vaesdec %xmm0,%xmm5,%xmm5 6973 vaesdec %xmm0,%xmm6,%xmm6 6974 vmovdqu 80(%rcx),%xmm0 6975 vaesdec %xmm0,%xmm1,%xmm1 6976 vaesdec %xmm0,%xmm2,%xmm2 6977 vaesdec %xmm0,%xmm3,%xmm3 6978 vaesdec %xmm0,%xmm4,%xmm4 6979 vaesdec %xmm0,%xmm5,%xmm5 6980 vaesdec %xmm0,%xmm6,%xmm6 6981 vmovdqu 96(%rcx),%xmm0 6982 vaesdec %xmm0,%xmm1,%xmm1 6983 vaesdec %xmm0,%xmm2,%xmm2 6984 vaesdec %xmm0,%xmm3,%xmm3 6985 vaesdec %xmm0,%xmm4,%xmm4 6986 vaesdec %xmm0,%xmm5,%xmm5 6987 vaesdec %xmm0,%xmm6,%xmm6 6988 vmovdqu 112(%rcx),%xmm0 6989 vaesdec %xmm0,%xmm1,%xmm1 6990 vaesdec %xmm0,%xmm2,%xmm2 6991 vaesdec %xmm0,%xmm3,%xmm3 6992 vaesdec %xmm0,%xmm4,%xmm4 6993 vaesdec %xmm0,%xmm5,%xmm5 6994 vaesdec %xmm0,%xmm6,%xmm6 6995 vmovdqu 128(%rcx),%xmm0 6996 vaesdec %xmm0,%xmm1,%xmm1 6997 vaesdec %xmm0,%xmm2,%xmm2 6998 vaesdec %xmm0,%xmm3,%xmm3 6999 vaesdec %xmm0,%xmm4,%xmm4 7000 vaesdec %xmm0,%xmm5,%xmm5 7001 vaesdec %xmm0,%xmm6,%xmm6 7002 vmovdqu 144(%rcx),%xmm0 7003 vaesdec %xmm0,%xmm1,%xmm1 7004 vaesdec %xmm0,%xmm2,%xmm2 7005 vaesdec %xmm0,%xmm3,%xmm3 7006 vaesdec %xmm0,%xmm4,%xmm4 7007 vaesdec %xmm0,%xmm5,%xmm5 7008 vaesdec %xmm0,%xmm6,%xmm6 7009 vmovdqu 160(%rcx),%xmm0 7010 vaesdec %xmm0,%xmm1,%xmm1 7011 vaesdec %xmm0,%xmm2,%xmm2 7012 vaesdec %xmm0,%xmm3,%xmm3 7013 vaesdec %xmm0,%xmm4,%xmm4 7014 vaesdec %xmm0,%xmm5,%xmm5 7015 vaesdec %xmm0,%xmm6,%xmm6 7016 vmovdqu 176(%rcx),%xmm0 7017 vaesdec %xmm0,%xmm1,%xmm1 7018 vaesdec %xmm0,%xmm2,%xmm2 7019 vaesdec %xmm0,%xmm3,%xmm3 7020 vaesdec %xmm0,%xmm4,%xmm4 7021 vaesdec %xmm0,%xmm5,%xmm5 7022 vaesdec %xmm0,%xmm6,%xmm6 7023 vmovdqu 192(%rcx),%xmm0 7024 vaesdec %xmm0,%xmm1,%xmm1 7025 vaesdec %xmm0,%xmm2,%xmm2 7026 vaesdec %xmm0,%xmm3,%xmm3 7027 vaesdec %xmm0,%xmm4,%xmm4 7028 vaesdec %xmm0,%xmm5,%xmm5 7029 vaesdec %xmm0,%xmm6,%xmm6 7030 vmovdqu 208(%rcx),%xmm0 7031 vaesdec %xmm0,%xmm1,%xmm1 7032 vaesdec %xmm0,%xmm2,%xmm2 7033 vaesdec %xmm0,%xmm3,%xmm3 7034 vaesdec %xmm0,%xmm4,%xmm4 7035 vaesdec %xmm0,%xmm5,%xmm5 7036 vaesdec %xmm0,%xmm6,%xmm6 7037 vmovdqu 224(%rcx),%xmm0 7038 vaesdeclast %xmm0,%xmm1,%xmm1 7039 vaesdeclast %xmm0,%xmm2,%xmm2 7040 vaesdeclast %xmm0,%xmm3,%xmm3 7041 vaesdeclast %xmm0,%xmm4,%xmm4 7042 vaesdeclast %xmm0,%xmm5,%xmm5 7043 vaesdeclast %xmm0,%xmm6,%xmm6 7044 vpxor %xmm9,%xmm1,%xmm1 7045 vpxor %xmm10,%xmm2,%xmm2 7046 vpxor %xmm11,%xmm3,%xmm3 7047 vpxor %xmm12,%xmm4,%xmm4 7048 vpxor %xmm13,%xmm5,%xmm5 7049 vpxor %xmm14,%xmm6,%xmm6 7050 vmovdqu %xmm1,(%rsi) 7051 vmovdqu %xmm2,16(%rsi) 7052 vmovdqu %xmm3,32(%rsi) 7053 vmovdqu %xmm4,48(%rsi) 7054 vmovdqu %xmm5,64(%rsi) 7055 addq $0x60,%rsi 7056 vmovdqa %xmm15,%xmm0 7057 vmovdqa %xmm6,%xmm8 7058 jmp .L_steal_cipher_EmbgEptodyewbFa 7059 7060.L_done_6_EmbgEptodyewbFa: 7061 vpxor %xmm9,%xmm1,%xmm1 7062 vpxor %xmm10,%xmm2,%xmm2 7063 vpxor %xmm11,%xmm3,%xmm3 7064 vpxor %xmm12,%xmm4,%xmm4 7065 vpxor %xmm13,%xmm5,%xmm5 7066 vpxor %xmm14,%xmm6,%xmm6 7067 vmovdqu (%rcx),%xmm0 7068 vpxor %xmm0,%xmm1,%xmm1 7069 vpxor %xmm0,%xmm2,%xmm2 7070 vpxor %xmm0,%xmm3,%xmm3 7071 vpxor %xmm0,%xmm4,%xmm4 7072 vpxor %xmm0,%xmm5,%xmm5 7073 vpxor %xmm0,%xmm6,%xmm6 7074 vmovdqu 16(%rcx),%xmm0 7075 vaesdec %xmm0,%xmm1,%xmm1 7076 vaesdec %xmm0,%xmm2,%xmm2 7077 vaesdec %xmm0,%xmm3,%xmm3 7078 vaesdec %xmm0,%xmm4,%xmm4 7079 vaesdec %xmm0,%xmm5,%xmm5 7080 vaesdec %xmm0,%xmm6,%xmm6 7081 vmovdqu 32(%rcx),%xmm0 7082 vaesdec %xmm0,%xmm1,%xmm1 7083 vaesdec %xmm0,%xmm2,%xmm2 7084 vaesdec %xmm0,%xmm3,%xmm3 7085 vaesdec %xmm0,%xmm4,%xmm4 7086 vaesdec %xmm0,%xmm5,%xmm5 7087 vaesdec %xmm0,%xmm6,%xmm6 7088 vmovdqu 48(%rcx),%xmm0 7089 vaesdec %xmm0,%xmm1,%xmm1 7090 vaesdec %xmm0,%xmm2,%xmm2 7091 vaesdec %xmm0,%xmm3,%xmm3 7092 vaesdec %xmm0,%xmm4,%xmm4 7093 vaesdec %xmm0,%xmm5,%xmm5 7094 vaesdec %xmm0,%xmm6,%xmm6 7095 vmovdqu 64(%rcx),%xmm0 7096 vaesdec %xmm0,%xmm1,%xmm1 7097 vaesdec %xmm0,%xmm2,%xmm2 7098 vaesdec %xmm0,%xmm3,%xmm3 7099 vaesdec %xmm0,%xmm4,%xmm4 7100 vaesdec %xmm0,%xmm5,%xmm5 7101 vaesdec %xmm0,%xmm6,%xmm6 7102 vmovdqu 80(%rcx),%xmm0 7103 vaesdec %xmm0,%xmm1,%xmm1 7104 vaesdec %xmm0,%xmm2,%xmm2 7105 vaesdec %xmm0,%xmm3,%xmm3 7106 vaesdec %xmm0,%xmm4,%xmm4 7107 vaesdec %xmm0,%xmm5,%xmm5 7108 vaesdec %xmm0,%xmm6,%xmm6 7109 vmovdqu 96(%rcx),%xmm0 7110 vaesdec %xmm0,%xmm1,%xmm1 7111 vaesdec %xmm0,%xmm2,%xmm2 7112 vaesdec %xmm0,%xmm3,%xmm3 7113 vaesdec %xmm0,%xmm4,%xmm4 7114 vaesdec %xmm0,%xmm5,%xmm5 7115 vaesdec %xmm0,%xmm6,%xmm6 7116 vmovdqu 112(%rcx),%xmm0 7117 vaesdec %xmm0,%xmm1,%xmm1 7118 vaesdec %xmm0,%xmm2,%xmm2 7119 vaesdec %xmm0,%xmm3,%xmm3 7120 vaesdec %xmm0,%xmm4,%xmm4 7121 vaesdec %xmm0,%xmm5,%xmm5 7122 vaesdec %xmm0,%xmm6,%xmm6 7123 vmovdqu 128(%rcx),%xmm0 7124 vaesdec %xmm0,%xmm1,%xmm1 7125 vaesdec %xmm0,%xmm2,%xmm2 7126 vaesdec %xmm0,%xmm3,%xmm3 7127 vaesdec %xmm0,%xmm4,%xmm4 7128 vaesdec %xmm0,%xmm5,%xmm5 7129 vaesdec %xmm0,%xmm6,%xmm6 7130 vmovdqu 144(%rcx),%xmm0 7131 vaesdec %xmm0,%xmm1,%xmm1 7132 vaesdec %xmm0,%xmm2,%xmm2 7133 vaesdec %xmm0,%xmm3,%xmm3 7134 vaesdec %xmm0,%xmm4,%xmm4 7135 vaesdec %xmm0,%xmm5,%xmm5 7136 vaesdec %xmm0,%xmm6,%xmm6 7137 vmovdqu 160(%rcx),%xmm0 7138 vaesdec %xmm0,%xmm1,%xmm1 7139 vaesdec %xmm0,%xmm2,%xmm2 7140 vaesdec %xmm0,%xmm3,%xmm3 7141 vaesdec %xmm0,%xmm4,%xmm4 7142 vaesdec %xmm0,%xmm5,%xmm5 7143 vaesdec %xmm0,%xmm6,%xmm6 7144 vmovdqu 176(%rcx),%xmm0 7145 vaesdec %xmm0,%xmm1,%xmm1 7146 vaesdec %xmm0,%xmm2,%xmm2 7147 vaesdec %xmm0,%xmm3,%xmm3 7148 vaesdec %xmm0,%xmm4,%xmm4 7149 vaesdec %xmm0,%xmm5,%xmm5 7150 vaesdec %xmm0,%xmm6,%xmm6 7151 vmovdqu 192(%rcx),%xmm0 7152 vaesdec %xmm0,%xmm1,%xmm1 7153 vaesdec %xmm0,%xmm2,%xmm2 7154 vaesdec %xmm0,%xmm3,%xmm3 7155 vaesdec %xmm0,%xmm4,%xmm4 7156 vaesdec %xmm0,%xmm5,%xmm5 7157 vaesdec %xmm0,%xmm6,%xmm6 7158 vmovdqu 208(%rcx),%xmm0 7159 vaesdec %xmm0,%xmm1,%xmm1 7160 vaesdec %xmm0,%xmm2,%xmm2 7161 vaesdec %xmm0,%xmm3,%xmm3 7162 vaesdec %xmm0,%xmm4,%xmm4 7163 vaesdec %xmm0,%xmm5,%xmm5 7164 vaesdec %xmm0,%xmm6,%xmm6 7165 vmovdqu 224(%rcx),%xmm0 7166 vaesdeclast %xmm0,%xmm1,%xmm1 7167 vaesdeclast %xmm0,%xmm2,%xmm2 7168 vaesdeclast %xmm0,%xmm3,%xmm3 7169 vaesdeclast %xmm0,%xmm4,%xmm4 7170 vaesdeclast %xmm0,%xmm5,%xmm5 7171 vaesdeclast %xmm0,%xmm6,%xmm6 7172 vpxor %xmm9,%xmm1,%xmm1 7173 vpxor %xmm10,%xmm2,%xmm2 7174 vpxor %xmm11,%xmm3,%xmm3 7175 vpxor %xmm12,%xmm4,%xmm4 7176 vpxor %xmm13,%xmm5,%xmm5 7177 vpxor %xmm14,%xmm6,%xmm6 7178 vmovdqu %xmm1,(%rsi) 7179 vmovdqu %xmm2,16(%rsi) 7180 vmovdqu %xmm3,32(%rsi) 7181 vmovdqu %xmm4,48(%rsi) 7182 vmovdqu %xmm5,64(%rsi) 7183 addq $0x60,%rsi 7184 vmovdqa %xmm6,%xmm8 7185 jmp .L_done_EmbgEptodyewbFa 7186 7187.L_num_blocks_is_5_EmbgEptodyewbFa: 7188 vmovdqa 0(%rsp),%xmm9 7189 movq 0(%rsp),%rax 7190 movq 8(%rsp),%rbx 7191 vmovdqu 0(%rdi),%xmm1 7192 xorq %r11,%r11 7193 shlq $1,%rax 7194 adcq %rbx,%rbx 7195 cmovcq %r10,%r11 7196 xorq %r11,%rax 7197 movq %rax,16(%rsp) 7198 movq %rbx,16 + 8(%rsp) 7199 vmovdqa 16(%rsp),%xmm10 7200 vmovdqu 16(%rdi),%xmm2 7201 xorq %r11,%r11 7202 shlq $1,%rax 7203 adcq %rbx,%rbx 7204 cmovcq %r10,%r11 7205 xorq %r11,%rax 7206 movq %rax,32(%rsp) 7207 movq %rbx,32 + 8(%rsp) 7208 vmovdqa 32(%rsp),%xmm11 7209 vmovdqu 32(%rdi),%xmm3 7210 xorq %r11,%r11 7211 shlq $1,%rax 7212 adcq %rbx,%rbx 7213 cmovcq %r10,%r11 7214 xorq %r11,%rax 7215 movq %rax,48(%rsp) 7216 movq %rbx,48 + 8(%rsp) 7217 vmovdqa 48(%rsp),%xmm12 7218 vmovdqu 48(%rdi),%xmm4 7219 xorq %r11,%r11 7220 shlq $1,%rax 7221 adcq %rbx,%rbx 7222 cmovcq %r10,%r11 7223 xorq %r11,%rax 7224 movq %rax,64(%rsp) 7225 movq %rbx,64 + 8(%rsp) 7226 vmovdqa 64(%rsp),%xmm13 7227 vmovdqu 64(%rdi),%xmm5 7228 addq $0x50,%rdi 7229 andq $0xf,%rdx 7230 je .L_done_5_EmbgEptodyewbFa 7231 7232.L_steal_cipher_5_EmbgEptodyewbFa: 7233 xorq %r11,%r11 7234 shlq $1,%rax 7235 adcq %rbx,%rbx 7236 cmovcq %r10,%r11 7237 xorq %r11,%rax 7238 movq %rax,16(%rsp) 7239 movq %rbx,24(%rsp) 7240 vmovdqa64 %xmm13,%xmm14 7241 vmovdqa 16(%rsp),%xmm13 7242 vpxor %xmm9,%xmm1,%xmm1 7243 vpxor %xmm10,%xmm2,%xmm2 7244 vpxor %xmm11,%xmm3,%xmm3 7245 vpxor %xmm12,%xmm4,%xmm4 7246 vpxor %xmm13,%xmm5,%xmm5 7247 vmovdqu (%rcx),%xmm0 7248 vpxor %xmm0,%xmm1,%xmm1 7249 vpxor %xmm0,%xmm2,%xmm2 7250 vpxor %xmm0,%xmm3,%xmm3 7251 vpxor %xmm0,%xmm4,%xmm4 7252 vpxor %xmm0,%xmm5,%xmm5 7253 vmovdqu 16(%rcx),%xmm0 7254 vaesdec %xmm0,%xmm1,%xmm1 7255 vaesdec %xmm0,%xmm2,%xmm2 7256 vaesdec %xmm0,%xmm3,%xmm3 7257 vaesdec %xmm0,%xmm4,%xmm4 7258 vaesdec %xmm0,%xmm5,%xmm5 7259 vmovdqu 32(%rcx),%xmm0 7260 vaesdec %xmm0,%xmm1,%xmm1 7261 vaesdec %xmm0,%xmm2,%xmm2 7262 vaesdec %xmm0,%xmm3,%xmm3 7263 vaesdec %xmm0,%xmm4,%xmm4 7264 vaesdec %xmm0,%xmm5,%xmm5 7265 vmovdqu 48(%rcx),%xmm0 7266 vaesdec %xmm0,%xmm1,%xmm1 7267 vaesdec %xmm0,%xmm2,%xmm2 7268 vaesdec %xmm0,%xmm3,%xmm3 7269 vaesdec %xmm0,%xmm4,%xmm4 7270 vaesdec %xmm0,%xmm5,%xmm5 7271 vmovdqu 64(%rcx),%xmm0 7272 vaesdec %xmm0,%xmm1,%xmm1 7273 vaesdec %xmm0,%xmm2,%xmm2 7274 vaesdec %xmm0,%xmm3,%xmm3 7275 vaesdec %xmm0,%xmm4,%xmm4 7276 vaesdec %xmm0,%xmm5,%xmm5 7277 vmovdqu 80(%rcx),%xmm0 7278 vaesdec %xmm0,%xmm1,%xmm1 7279 vaesdec %xmm0,%xmm2,%xmm2 7280 vaesdec %xmm0,%xmm3,%xmm3 7281 vaesdec %xmm0,%xmm4,%xmm4 7282 vaesdec %xmm0,%xmm5,%xmm5 7283 vmovdqu 96(%rcx),%xmm0 7284 vaesdec %xmm0,%xmm1,%xmm1 7285 vaesdec %xmm0,%xmm2,%xmm2 7286 vaesdec %xmm0,%xmm3,%xmm3 7287 vaesdec %xmm0,%xmm4,%xmm4 7288 vaesdec %xmm0,%xmm5,%xmm5 7289 vmovdqu 112(%rcx),%xmm0 7290 vaesdec %xmm0,%xmm1,%xmm1 7291 vaesdec %xmm0,%xmm2,%xmm2 7292 vaesdec %xmm0,%xmm3,%xmm3 7293 vaesdec %xmm0,%xmm4,%xmm4 7294 vaesdec %xmm0,%xmm5,%xmm5 7295 vmovdqu 128(%rcx),%xmm0 7296 vaesdec %xmm0,%xmm1,%xmm1 7297 vaesdec %xmm0,%xmm2,%xmm2 7298 vaesdec %xmm0,%xmm3,%xmm3 7299 vaesdec %xmm0,%xmm4,%xmm4 7300 vaesdec %xmm0,%xmm5,%xmm5 7301 vmovdqu 144(%rcx),%xmm0 7302 vaesdec %xmm0,%xmm1,%xmm1 7303 vaesdec %xmm0,%xmm2,%xmm2 7304 vaesdec %xmm0,%xmm3,%xmm3 7305 vaesdec %xmm0,%xmm4,%xmm4 7306 vaesdec %xmm0,%xmm5,%xmm5 7307 vmovdqu 160(%rcx),%xmm0 7308 vaesdec %xmm0,%xmm1,%xmm1 7309 vaesdec %xmm0,%xmm2,%xmm2 7310 vaesdec %xmm0,%xmm3,%xmm3 7311 vaesdec %xmm0,%xmm4,%xmm4 7312 vaesdec %xmm0,%xmm5,%xmm5 7313 vmovdqu 176(%rcx),%xmm0 7314 vaesdec %xmm0,%xmm1,%xmm1 7315 vaesdec %xmm0,%xmm2,%xmm2 7316 vaesdec %xmm0,%xmm3,%xmm3 7317 vaesdec %xmm0,%xmm4,%xmm4 7318 vaesdec %xmm0,%xmm5,%xmm5 7319 vmovdqu 192(%rcx),%xmm0 7320 vaesdec %xmm0,%xmm1,%xmm1 7321 vaesdec %xmm0,%xmm2,%xmm2 7322 vaesdec %xmm0,%xmm3,%xmm3 7323 vaesdec %xmm0,%xmm4,%xmm4 7324 vaesdec %xmm0,%xmm5,%xmm5 7325 vmovdqu 208(%rcx),%xmm0 7326 vaesdec %xmm0,%xmm1,%xmm1 7327 vaesdec %xmm0,%xmm2,%xmm2 7328 vaesdec %xmm0,%xmm3,%xmm3 7329 vaesdec %xmm0,%xmm4,%xmm4 7330 vaesdec %xmm0,%xmm5,%xmm5 7331 vmovdqu 224(%rcx),%xmm0 7332 vaesdeclast %xmm0,%xmm1,%xmm1 7333 vaesdeclast %xmm0,%xmm2,%xmm2 7334 vaesdeclast %xmm0,%xmm3,%xmm3 7335 vaesdeclast %xmm0,%xmm4,%xmm4 7336 vaesdeclast %xmm0,%xmm5,%xmm5 7337 vpxor %xmm9,%xmm1,%xmm1 7338 vpxor %xmm10,%xmm2,%xmm2 7339 vpxor %xmm11,%xmm3,%xmm3 7340 vpxor %xmm12,%xmm4,%xmm4 7341 vpxor %xmm13,%xmm5,%xmm5 7342 vmovdqu %xmm1,(%rsi) 7343 vmovdqu %xmm2,16(%rsi) 7344 vmovdqu %xmm3,32(%rsi) 7345 vmovdqu %xmm4,48(%rsi) 7346 addq $0x50,%rsi 7347 vmovdqa %xmm14,%xmm0 7348 vmovdqa %xmm5,%xmm8 7349 jmp .L_steal_cipher_EmbgEptodyewbFa 7350 7351.L_done_5_EmbgEptodyewbFa: 7352 vpxor %xmm9,%xmm1,%xmm1 7353 vpxor %xmm10,%xmm2,%xmm2 7354 vpxor %xmm11,%xmm3,%xmm3 7355 vpxor %xmm12,%xmm4,%xmm4 7356 vpxor %xmm13,%xmm5,%xmm5 7357 vmovdqu (%rcx),%xmm0 7358 vpxor %xmm0,%xmm1,%xmm1 7359 vpxor %xmm0,%xmm2,%xmm2 7360 vpxor %xmm0,%xmm3,%xmm3 7361 vpxor %xmm0,%xmm4,%xmm4 7362 vpxor %xmm0,%xmm5,%xmm5 7363 vmovdqu 16(%rcx),%xmm0 7364 vaesdec %xmm0,%xmm1,%xmm1 7365 vaesdec %xmm0,%xmm2,%xmm2 7366 vaesdec %xmm0,%xmm3,%xmm3 7367 vaesdec %xmm0,%xmm4,%xmm4 7368 vaesdec %xmm0,%xmm5,%xmm5 7369 vmovdqu 32(%rcx),%xmm0 7370 vaesdec %xmm0,%xmm1,%xmm1 7371 vaesdec %xmm0,%xmm2,%xmm2 7372 vaesdec %xmm0,%xmm3,%xmm3 7373 vaesdec %xmm0,%xmm4,%xmm4 7374 vaesdec %xmm0,%xmm5,%xmm5 7375 vmovdqu 48(%rcx),%xmm0 7376 vaesdec %xmm0,%xmm1,%xmm1 7377 vaesdec %xmm0,%xmm2,%xmm2 7378 vaesdec %xmm0,%xmm3,%xmm3 7379 vaesdec %xmm0,%xmm4,%xmm4 7380 vaesdec %xmm0,%xmm5,%xmm5 7381 vmovdqu 64(%rcx),%xmm0 7382 vaesdec %xmm0,%xmm1,%xmm1 7383 vaesdec %xmm0,%xmm2,%xmm2 7384 vaesdec %xmm0,%xmm3,%xmm3 7385 vaesdec %xmm0,%xmm4,%xmm4 7386 vaesdec %xmm0,%xmm5,%xmm5 7387 vmovdqu 80(%rcx),%xmm0 7388 vaesdec %xmm0,%xmm1,%xmm1 7389 vaesdec %xmm0,%xmm2,%xmm2 7390 vaesdec %xmm0,%xmm3,%xmm3 7391 vaesdec %xmm0,%xmm4,%xmm4 7392 vaesdec %xmm0,%xmm5,%xmm5 7393 vmovdqu 96(%rcx),%xmm0 7394 vaesdec %xmm0,%xmm1,%xmm1 7395 vaesdec %xmm0,%xmm2,%xmm2 7396 vaesdec %xmm0,%xmm3,%xmm3 7397 vaesdec %xmm0,%xmm4,%xmm4 7398 vaesdec %xmm0,%xmm5,%xmm5 7399 vmovdqu 112(%rcx),%xmm0 7400 vaesdec %xmm0,%xmm1,%xmm1 7401 vaesdec %xmm0,%xmm2,%xmm2 7402 vaesdec %xmm0,%xmm3,%xmm3 7403 vaesdec %xmm0,%xmm4,%xmm4 7404 vaesdec %xmm0,%xmm5,%xmm5 7405 vmovdqu 128(%rcx),%xmm0 7406 vaesdec %xmm0,%xmm1,%xmm1 7407 vaesdec %xmm0,%xmm2,%xmm2 7408 vaesdec %xmm0,%xmm3,%xmm3 7409 vaesdec %xmm0,%xmm4,%xmm4 7410 vaesdec %xmm0,%xmm5,%xmm5 7411 vmovdqu 144(%rcx),%xmm0 7412 vaesdec %xmm0,%xmm1,%xmm1 7413 vaesdec %xmm0,%xmm2,%xmm2 7414 vaesdec %xmm0,%xmm3,%xmm3 7415 vaesdec %xmm0,%xmm4,%xmm4 7416 vaesdec %xmm0,%xmm5,%xmm5 7417 vmovdqu 160(%rcx),%xmm0 7418 vaesdec %xmm0,%xmm1,%xmm1 7419 vaesdec %xmm0,%xmm2,%xmm2 7420 vaesdec %xmm0,%xmm3,%xmm3 7421 vaesdec %xmm0,%xmm4,%xmm4 7422 vaesdec %xmm0,%xmm5,%xmm5 7423 vmovdqu 176(%rcx),%xmm0 7424 vaesdec %xmm0,%xmm1,%xmm1 7425 vaesdec %xmm0,%xmm2,%xmm2 7426 vaesdec %xmm0,%xmm3,%xmm3 7427 vaesdec %xmm0,%xmm4,%xmm4 7428 vaesdec %xmm0,%xmm5,%xmm5 7429 vmovdqu 192(%rcx),%xmm0 7430 vaesdec %xmm0,%xmm1,%xmm1 7431 vaesdec %xmm0,%xmm2,%xmm2 7432 vaesdec %xmm0,%xmm3,%xmm3 7433 vaesdec %xmm0,%xmm4,%xmm4 7434 vaesdec %xmm0,%xmm5,%xmm5 7435 vmovdqu 208(%rcx),%xmm0 7436 vaesdec %xmm0,%xmm1,%xmm1 7437 vaesdec %xmm0,%xmm2,%xmm2 7438 vaesdec %xmm0,%xmm3,%xmm3 7439 vaesdec %xmm0,%xmm4,%xmm4 7440 vaesdec %xmm0,%xmm5,%xmm5 7441 vmovdqu 224(%rcx),%xmm0 7442 vaesdeclast %xmm0,%xmm1,%xmm1 7443 vaesdeclast %xmm0,%xmm2,%xmm2 7444 vaesdeclast %xmm0,%xmm3,%xmm3 7445 vaesdeclast %xmm0,%xmm4,%xmm4 7446 vaesdeclast %xmm0,%xmm5,%xmm5 7447 vpxor %xmm9,%xmm1,%xmm1 7448 vpxor %xmm10,%xmm2,%xmm2 7449 vpxor %xmm11,%xmm3,%xmm3 7450 vpxor %xmm12,%xmm4,%xmm4 7451 vpxor %xmm13,%xmm5,%xmm5 7452 vmovdqu %xmm1,(%rsi) 7453 vmovdqu %xmm2,16(%rsi) 7454 vmovdqu %xmm3,32(%rsi) 7455 vmovdqu %xmm4,48(%rsi) 7456 addq $0x50,%rsi 7457 vmovdqa %xmm5,%xmm8 7458 jmp .L_done_EmbgEptodyewbFa 7459 7460.L_num_blocks_is_4_EmbgEptodyewbFa: 7461 vmovdqa 0(%rsp),%xmm9 7462 movq 0(%rsp),%rax 7463 movq 8(%rsp),%rbx 7464 vmovdqu 0(%rdi),%xmm1 7465 xorq %r11,%r11 7466 shlq $1,%rax 7467 adcq %rbx,%rbx 7468 cmovcq %r10,%r11 7469 xorq %r11,%rax 7470 movq %rax,16(%rsp) 7471 movq %rbx,16 + 8(%rsp) 7472 vmovdqa 16(%rsp),%xmm10 7473 vmovdqu 16(%rdi),%xmm2 7474 xorq %r11,%r11 7475 shlq $1,%rax 7476 adcq %rbx,%rbx 7477 cmovcq %r10,%r11 7478 xorq %r11,%rax 7479 movq %rax,32(%rsp) 7480 movq %rbx,32 + 8(%rsp) 7481 vmovdqa 32(%rsp),%xmm11 7482 vmovdqu 32(%rdi),%xmm3 7483 xorq %r11,%r11 7484 shlq $1,%rax 7485 adcq %rbx,%rbx 7486 cmovcq %r10,%r11 7487 xorq %r11,%rax 7488 movq %rax,48(%rsp) 7489 movq %rbx,48 + 8(%rsp) 7490 vmovdqa 48(%rsp),%xmm12 7491 vmovdqu 48(%rdi),%xmm4 7492 addq $0x40,%rdi 7493 andq $0xf,%rdx 7494 je .L_done_4_EmbgEptodyewbFa 7495 7496.L_steal_cipher_4_EmbgEptodyewbFa: 7497 xorq %r11,%r11 7498 shlq $1,%rax 7499 adcq %rbx,%rbx 7500 cmovcq %r10,%r11 7501 xorq %r11,%rax 7502 movq %rax,16(%rsp) 7503 movq %rbx,24(%rsp) 7504 vmovdqa64 %xmm12,%xmm13 7505 vmovdqa 16(%rsp),%xmm12 7506 vpxor %xmm9,%xmm1,%xmm1 7507 vpxor %xmm10,%xmm2,%xmm2 7508 vpxor %xmm11,%xmm3,%xmm3 7509 vpxor %xmm12,%xmm4,%xmm4 7510 vmovdqu (%rcx),%xmm0 7511 vpxor %xmm0,%xmm1,%xmm1 7512 vpxor %xmm0,%xmm2,%xmm2 7513 vpxor %xmm0,%xmm3,%xmm3 7514 vpxor %xmm0,%xmm4,%xmm4 7515 vmovdqu 16(%rcx),%xmm0 7516 vaesdec %xmm0,%xmm1,%xmm1 7517 vaesdec %xmm0,%xmm2,%xmm2 7518 vaesdec %xmm0,%xmm3,%xmm3 7519 vaesdec %xmm0,%xmm4,%xmm4 7520 vmovdqu 32(%rcx),%xmm0 7521 vaesdec %xmm0,%xmm1,%xmm1 7522 vaesdec %xmm0,%xmm2,%xmm2 7523 vaesdec %xmm0,%xmm3,%xmm3 7524 vaesdec %xmm0,%xmm4,%xmm4 7525 vmovdqu 48(%rcx),%xmm0 7526 vaesdec %xmm0,%xmm1,%xmm1 7527 vaesdec %xmm0,%xmm2,%xmm2 7528 vaesdec %xmm0,%xmm3,%xmm3 7529 vaesdec %xmm0,%xmm4,%xmm4 7530 vmovdqu 64(%rcx),%xmm0 7531 vaesdec %xmm0,%xmm1,%xmm1 7532 vaesdec %xmm0,%xmm2,%xmm2 7533 vaesdec %xmm0,%xmm3,%xmm3 7534 vaesdec %xmm0,%xmm4,%xmm4 7535 vmovdqu 80(%rcx),%xmm0 7536 vaesdec %xmm0,%xmm1,%xmm1 7537 vaesdec %xmm0,%xmm2,%xmm2 7538 vaesdec %xmm0,%xmm3,%xmm3 7539 vaesdec %xmm0,%xmm4,%xmm4 7540 vmovdqu 96(%rcx),%xmm0 7541 vaesdec %xmm0,%xmm1,%xmm1 7542 vaesdec %xmm0,%xmm2,%xmm2 7543 vaesdec %xmm0,%xmm3,%xmm3 7544 vaesdec %xmm0,%xmm4,%xmm4 7545 vmovdqu 112(%rcx),%xmm0 7546 vaesdec %xmm0,%xmm1,%xmm1 7547 vaesdec %xmm0,%xmm2,%xmm2 7548 vaesdec %xmm0,%xmm3,%xmm3 7549 vaesdec %xmm0,%xmm4,%xmm4 7550 vmovdqu 128(%rcx),%xmm0 7551 vaesdec %xmm0,%xmm1,%xmm1 7552 vaesdec %xmm0,%xmm2,%xmm2 7553 vaesdec %xmm0,%xmm3,%xmm3 7554 vaesdec %xmm0,%xmm4,%xmm4 7555 vmovdqu 144(%rcx),%xmm0 7556 vaesdec %xmm0,%xmm1,%xmm1 7557 vaesdec %xmm0,%xmm2,%xmm2 7558 vaesdec %xmm0,%xmm3,%xmm3 7559 vaesdec %xmm0,%xmm4,%xmm4 7560 vmovdqu 160(%rcx),%xmm0 7561 vaesdec %xmm0,%xmm1,%xmm1 7562 vaesdec %xmm0,%xmm2,%xmm2 7563 vaesdec %xmm0,%xmm3,%xmm3 7564 vaesdec %xmm0,%xmm4,%xmm4 7565 vmovdqu 176(%rcx),%xmm0 7566 vaesdec %xmm0,%xmm1,%xmm1 7567 vaesdec %xmm0,%xmm2,%xmm2 7568 vaesdec %xmm0,%xmm3,%xmm3 7569 vaesdec %xmm0,%xmm4,%xmm4 7570 vmovdqu 192(%rcx),%xmm0 7571 vaesdec %xmm0,%xmm1,%xmm1 7572 vaesdec %xmm0,%xmm2,%xmm2 7573 vaesdec %xmm0,%xmm3,%xmm3 7574 vaesdec %xmm0,%xmm4,%xmm4 7575 vmovdqu 208(%rcx),%xmm0 7576 vaesdec %xmm0,%xmm1,%xmm1 7577 vaesdec %xmm0,%xmm2,%xmm2 7578 vaesdec %xmm0,%xmm3,%xmm3 7579 vaesdec %xmm0,%xmm4,%xmm4 7580 vmovdqu 224(%rcx),%xmm0 7581 vaesdeclast %xmm0,%xmm1,%xmm1 7582 vaesdeclast %xmm0,%xmm2,%xmm2 7583 vaesdeclast %xmm0,%xmm3,%xmm3 7584 vaesdeclast %xmm0,%xmm4,%xmm4 7585 vpxor %xmm9,%xmm1,%xmm1 7586 vpxor %xmm10,%xmm2,%xmm2 7587 vpxor %xmm11,%xmm3,%xmm3 7588 vpxor %xmm12,%xmm4,%xmm4 7589 vmovdqu %xmm1,(%rsi) 7590 vmovdqu %xmm2,16(%rsi) 7591 vmovdqu %xmm3,32(%rsi) 7592 addq $0x40,%rsi 7593 vmovdqa %xmm13,%xmm0 7594 vmovdqa %xmm4,%xmm8 7595 jmp .L_steal_cipher_EmbgEptodyewbFa 7596 7597.L_done_4_EmbgEptodyewbFa: 7598 vpxor %xmm9,%xmm1,%xmm1 7599 vpxor %xmm10,%xmm2,%xmm2 7600 vpxor %xmm11,%xmm3,%xmm3 7601 vpxor %xmm12,%xmm4,%xmm4 7602 vmovdqu (%rcx),%xmm0 7603 vpxor %xmm0,%xmm1,%xmm1 7604 vpxor %xmm0,%xmm2,%xmm2 7605 vpxor %xmm0,%xmm3,%xmm3 7606 vpxor %xmm0,%xmm4,%xmm4 7607 vmovdqu 16(%rcx),%xmm0 7608 vaesdec %xmm0,%xmm1,%xmm1 7609 vaesdec %xmm0,%xmm2,%xmm2 7610 vaesdec %xmm0,%xmm3,%xmm3 7611 vaesdec %xmm0,%xmm4,%xmm4 7612 vmovdqu 32(%rcx),%xmm0 7613 vaesdec %xmm0,%xmm1,%xmm1 7614 vaesdec %xmm0,%xmm2,%xmm2 7615 vaesdec %xmm0,%xmm3,%xmm3 7616 vaesdec %xmm0,%xmm4,%xmm4 7617 vmovdqu 48(%rcx),%xmm0 7618 vaesdec %xmm0,%xmm1,%xmm1 7619 vaesdec %xmm0,%xmm2,%xmm2 7620 vaesdec %xmm0,%xmm3,%xmm3 7621 vaesdec %xmm0,%xmm4,%xmm4 7622 vmovdqu 64(%rcx),%xmm0 7623 vaesdec %xmm0,%xmm1,%xmm1 7624 vaesdec %xmm0,%xmm2,%xmm2 7625 vaesdec %xmm0,%xmm3,%xmm3 7626 vaesdec %xmm0,%xmm4,%xmm4 7627 vmovdqu 80(%rcx),%xmm0 7628 vaesdec %xmm0,%xmm1,%xmm1 7629 vaesdec %xmm0,%xmm2,%xmm2 7630 vaesdec %xmm0,%xmm3,%xmm3 7631 vaesdec %xmm0,%xmm4,%xmm4 7632 vmovdqu 96(%rcx),%xmm0 7633 vaesdec %xmm0,%xmm1,%xmm1 7634 vaesdec %xmm0,%xmm2,%xmm2 7635 vaesdec %xmm0,%xmm3,%xmm3 7636 vaesdec %xmm0,%xmm4,%xmm4 7637 vmovdqu 112(%rcx),%xmm0 7638 vaesdec %xmm0,%xmm1,%xmm1 7639 vaesdec %xmm0,%xmm2,%xmm2 7640 vaesdec %xmm0,%xmm3,%xmm3 7641 vaesdec %xmm0,%xmm4,%xmm4 7642 vmovdqu 128(%rcx),%xmm0 7643 vaesdec %xmm0,%xmm1,%xmm1 7644 vaesdec %xmm0,%xmm2,%xmm2 7645 vaesdec %xmm0,%xmm3,%xmm3 7646 vaesdec %xmm0,%xmm4,%xmm4 7647 vmovdqu 144(%rcx),%xmm0 7648 vaesdec %xmm0,%xmm1,%xmm1 7649 vaesdec %xmm0,%xmm2,%xmm2 7650 vaesdec %xmm0,%xmm3,%xmm3 7651 vaesdec %xmm0,%xmm4,%xmm4 7652 vmovdqu 160(%rcx),%xmm0 7653 vaesdec %xmm0,%xmm1,%xmm1 7654 vaesdec %xmm0,%xmm2,%xmm2 7655 vaesdec %xmm0,%xmm3,%xmm3 7656 vaesdec %xmm0,%xmm4,%xmm4 7657 vmovdqu 176(%rcx),%xmm0 7658 vaesdec %xmm0,%xmm1,%xmm1 7659 vaesdec %xmm0,%xmm2,%xmm2 7660 vaesdec %xmm0,%xmm3,%xmm3 7661 vaesdec %xmm0,%xmm4,%xmm4 7662 vmovdqu 192(%rcx),%xmm0 7663 vaesdec %xmm0,%xmm1,%xmm1 7664 vaesdec %xmm0,%xmm2,%xmm2 7665 vaesdec %xmm0,%xmm3,%xmm3 7666 vaesdec %xmm0,%xmm4,%xmm4 7667 vmovdqu 208(%rcx),%xmm0 7668 vaesdec %xmm0,%xmm1,%xmm1 7669 vaesdec %xmm0,%xmm2,%xmm2 7670 vaesdec %xmm0,%xmm3,%xmm3 7671 vaesdec %xmm0,%xmm4,%xmm4 7672 vmovdqu 224(%rcx),%xmm0 7673 vaesdeclast %xmm0,%xmm1,%xmm1 7674 vaesdeclast %xmm0,%xmm2,%xmm2 7675 vaesdeclast %xmm0,%xmm3,%xmm3 7676 vaesdeclast %xmm0,%xmm4,%xmm4 7677 vpxor %xmm9,%xmm1,%xmm1 7678 vpxor %xmm10,%xmm2,%xmm2 7679 vpxor %xmm11,%xmm3,%xmm3 7680 vpxor %xmm12,%xmm4,%xmm4 7681 vmovdqu %xmm1,(%rsi) 7682 vmovdqu %xmm2,16(%rsi) 7683 vmovdqu %xmm3,32(%rsi) 7684 addq $0x40,%rsi 7685 vmovdqa %xmm4,%xmm8 7686 jmp .L_done_EmbgEptodyewbFa 7687 7688.L_num_blocks_is_3_EmbgEptodyewbFa: 7689 vmovdqa 0(%rsp),%xmm9 7690 movq 0(%rsp),%rax 7691 movq 8(%rsp),%rbx 7692 vmovdqu 0(%rdi),%xmm1 7693 xorq %r11,%r11 7694 shlq $1,%rax 7695 adcq %rbx,%rbx 7696 cmovcq %r10,%r11 7697 xorq %r11,%rax 7698 movq %rax,16(%rsp) 7699 movq %rbx,16 + 8(%rsp) 7700 vmovdqa 16(%rsp),%xmm10 7701 vmovdqu 16(%rdi),%xmm2 7702 xorq %r11,%r11 7703 shlq $1,%rax 7704 adcq %rbx,%rbx 7705 cmovcq %r10,%r11 7706 xorq %r11,%rax 7707 movq %rax,32(%rsp) 7708 movq %rbx,32 + 8(%rsp) 7709 vmovdqa 32(%rsp),%xmm11 7710 vmovdqu 32(%rdi),%xmm3 7711 addq $0x30,%rdi 7712 andq $0xf,%rdx 7713 je .L_done_3_EmbgEptodyewbFa 7714 7715.L_steal_cipher_3_EmbgEptodyewbFa: 7716 xorq %r11,%r11 7717 shlq $1,%rax 7718 adcq %rbx,%rbx 7719 cmovcq %r10,%r11 7720 xorq %r11,%rax 7721 movq %rax,16(%rsp) 7722 movq %rbx,24(%rsp) 7723 vmovdqa64 %xmm11,%xmm12 7724 vmovdqa 16(%rsp),%xmm11 7725 vpxor %xmm9,%xmm1,%xmm1 7726 vpxor %xmm10,%xmm2,%xmm2 7727 vpxor %xmm11,%xmm3,%xmm3 7728 vmovdqu (%rcx),%xmm0 7729 vpxor %xmm0,%xmm1,%xmm1 7730 vpxor %xmm0,%xmm2,%xmm2 7731 vpxor %xmm0,%xmm3,%xmm3 7732 vmovdqu 16(%rcx),%xmm0 7733 vaesdec %xmm0,%xmm1,%xmm1 7734 vaesdec %xmm0,%xmm2,%xmm2 7735 vaesdec %xmm0,%xmm3,%xmm3 7736 vmovdqu 32(%rcx),%xmm0 7737 vaesdec %xmm0,%xmm1,%xmm1 7738 vaesdec %xmm0,%xmm2,%xmm2 7739 vaesdec %xmm0,%xmm3,%xmm3 7740 vmovdqu 48(%rcx),%xmm0 7741 vaesdec %xmm0,%xmm1,%xmm1 7742 vaesdec %xmm0,%xmm2,%xmm2 7743 vaesdec %xmm0,%xmm3,%xmm3 7744 vmovdqu 64(%rcx),%xmm0 7745 vaesdec %xmm0,%xmm1,%xmm1 7746 vaesdec %xmm0,%xmm2,%xmm2 7747 vaesdec %xmm0,%xmm3,%xmm3 7748 vmovdqu 80(%rcx),%xmm0 7749 vaesdec %xmm0,%xmm1,%xmm1 7750 vaesdec %xmm0,%xmm2,%xmm2 7751 vaesdec %xmm0,%xmm3,%xmm3 7752 vmovdqu 96(%rcx),%xmm0 7753 vaesdec %xmm0,%xmm1,%xmm1 7754 vaesdec %xmm0,%xmm2,%xmm2 7755 vaesdec %xmm0,%xmm3,%xmm3 7756 vmovdqu 112(%rcx),%xmm0 7757 vaesdec %xmm0,%xmm1,%xmm1 7758 vaesdec %xmm0,%xmm2,%xmm2 7759 vaesdec %xmm0,%xmm3,%xmm3 7760 vmovdqu 128(%rcx),%xmm0 7761 vaesdec %xmm0,%xmm1,%xmm1 7762 vaesdec %xmm0,%xmm2,%xmm2 7763 vaesdec %xmm0,%xmm3,%xmm3 7764 vmovdqu 144(%rcx),%xmm0 7765 vaesdec %xmm0,%xmm1,%xmm1 7766 vaesdec %xmm0,%xmm2,%xmm2 7767 vaesdec %xmm0,%xmm3,%xmm3 7768 vmovdqu 160(%rcx),%xmm0 7769 vaesdec %xmm0,%xmm1,%xmm1 7770 vaesdec %xmm0,%xmm2,%xmm2 7771 vaesdec %xmm0,%xmm3,%xmm3 7772 vmovdqu 176(%rcx),%xmm0 7773 vaesdec %xmm0,%xmm1,%xmm1 7774 vaesdec %xmm0,%xmm2,%xmm2 7775 vaesdec %xmm0,%xmm3,%xmm3 7776 vmovdqu 192(%rcx),%xmm0 7777 vaesdec %xmm0,%xmm1,%xmm1 7778 vaesdec %xmm0,%xmm2,%xmm2 7779 vaesdec %xmm0,%xmm3,%xmm3 7780 vmovdqu 208(%rcx),%xmm0 7781 vaesdec %xmm0,%xmm1,%xmm1 7782 vaesdec %xmm0,%xmm2,%xmm2 7783 vaesdec %xmm0,%xmm3,%xmm3 7784 vmovdqu 224(%rcx),%xmm0 7785 vaesdeclast %xmm0,%xmm1,%xmm1 7786 vaesdeclast %xmm0,%xmm2,%xmm2 7787 vaesdeclast %xmm0,%xmm3,%xmm3 7788 vpxor %xmm9,%xmm1,%xmm1 7789 vpxor %xmm10,%xmm2,%xmm2 7790 vpxor %xmm11,%xmm3,%xmm3 7791 vmovdqu %xmm1,(%rsi) 7792 vmovdqu %xmm2,16(%rsi) 7793 addq $0x30,%rsi 7794 vmovdqa %xmm12,%xmm0 7795 vmovdqa %xmm3,%xmm8 7796 jmp .L_steal_cipher_EmbgEptodyewbFa 7797 7798.L_done_3_EmbgEptodyewbFa: 7799 vpxor %xmm9,%xmm1,%xmm1 7800 vpxor %xmm10,%xmm2,%xmm2 7801 vpxor %xmm11,%xmm3,%xmm3 7802 vmovdqu (%rcx),%xmm0 7803 vpxor %xmm0,%xmm1,%xmm1 7804 vpxor %xmm0,%xmm2,%xmm2 7805 vpxor %xmm0,%xmm3,%xmm3 7806 vmovdqu 16(%rcx),%xmm0 7807 vaesdec %xmm0,%xmm1,%xmm1 7808 vaesdec %xmm0,%xmm2,%xmm2 7809 vaesdec %xmm0,%xmm3,%xmm3 7810 vmovdqu 32(%rcx),%xmm0 7811 vaesdec %xmm0,%xmm1,%xmm1 7812 vaesdec %xmm0,%xmm2,%xmm2 7813 vaesdec %xmm0,%xmm3,%xmm3 7814 vmovdqu 48(%rcx),%xmm0 7815 vaesdec %xmm0,%xmm1,%xmm1 7816 vaesdec %xmm0,%xmm2,%xmm2 7817 vaesdec %xmm0,%xmm3,%xmm3 7818 vmovdqu 64(%rcx),%xmm0 7819 vaesdec %xmm0,%xmm1,%xmm1 7820 vaesdec %xmm0,%xmm2,%xmm2 7821 vaesdec %xmm0,%xmm3,%xmm3 7822 vmovdqu 80(%rcx),%xmm0 7823 vaesdec %xmm0,%xmm1,%xmm1 7824 vaesdec %xmm0,%xmm2,%xmm2 7825 vaesdec %xmm0,%xmm3,%xmm3 7826 vmovdqu 96(%rcx),%xmm0 7827 vaesdec %xmm0,%xmm1,%xmm1 7828 vaesdec %xmm0,%xmm2,%xmm2 7829 vaesdec %xmm0,%xmm3,%xmm3 7830 vmovdqu 112(%rcx),%xmm0 7831 vaesdec %xmm0,%xmm1,%xmm1 7832 vaesdec %xmm0,%xmm2,%xmm2 7833 vaesdec %xmm0,%xmm3,%xmm3 7834 vmovdqu 128(%rcx),%xmm0 7835 vaesdec %xmm0,%xmm1,%xmm1 7836 vaesdec %xmm0,%xmm2,%xmm2 7837 vaesdec %xmm0,%xmm3,%xmm3 7838 vmovdqu 144(%rcx),%xmm0 7839 vaesdec %xmm0,%xmm1,%xmm1 7840 vaesdec %xmm0,%xmm2,%xmm2 7841 vaesdec %xmm0,%xmm3,%xmm3 7842 vmovdqu 160(%rcx),%xmm0 7843 vaesdec %xmm0,%xmm1,%xmm1 7844 vaesdec %xmm0,%xmm2,%xmm2 7845 vaesdec %xmm0,%xmm3,%xmm3 7846 vmovdqu 176(%rcx),%xmm0 7847 vaesdec %xmm0,%xmm1,%xmm1 7848 vaesdec %xmm0,%xmm2,%xmm2 7849 vaesdec %xmm0,%xmm3,%xmm3 7850 vmovdqu 192(%rcx),%xmm0 7851 vaesdec %xmm0,%xmm1,%xmm1 7852 vaesdec %xmm0,%xmm2,%xmm2 7853 vaesdec %xmm0,%xmm3,%xmm3 7854 vmovdqu 208(%rcx),%xmm0 7855 vaesdec %xmm0,%xmm1,%xmm1 7856 vaesdec %xmm0,%xmm2,%xmm2 7857 vaesdec %xmm0,%xmm3,%xmm3 7858 vmovdqu 224(%rcx),%xmm0 7859 vaesdeclast %xmm0,%xmm1,%xmm1 7860 vaesdeclast %xmm0,%xmm2,%xmm2 7861 vaesdeclast %xmm0,%xmm3,%xmm3 7862 vpxor %xmm9,%xmm1,%xmm1 7863 vpxor %xmm10,%xmm2,%xmm2 7864 vpxor %xmm11,%xmm3,%xmm3 7865 vmovdqu %xmm1,(%rsi) 7866 vmovdqu %xmm2,16(%rsi) 7867 addq $0x30,%rsi 7868 vmovdqa %xmm3,%xmm8 7869 jmp .L_done_EmbgEptodyewbFa 7870 7871.L_num_blocks_is_2_EmbgEptodyewbFa: 7872 vmovdqa 0(%rsp),%xmm9 7873 movq 0(%rsp),%rax 7874 movq 8(%rsp),%rbx 7875 vmovdqu 0(%rdi),%xmm1 7876 xorq %r11,%r11 7877 shlq $1,%rax 7878 adcq %rbx,%rbx 7879 cmovcq %r10,%r11 7880 xorq %r11,%rax 7881 movq %rax,16(%rsp) 7882 movq %rbx,16 + 8(%rsp) 7883 vmovdqa 16(%rsp),%xmm10 7884 vmovdqu 16(%rdi),%xmm2 7885 addq $0x20,%rdi 7886 andq $0xf,%rdx 7887 je .L_done_2_EmbgEptodyewbFa 7888 7889.L_steal_cipher_2_EmbgEptodyewbFa: 7890 xorq %r11,%r11 7891 shlq $1,%rax 7892 adcq %rbx,%rbx 7893 cmovcq %r10,%r11 7894 xorq %r11,%rax 7895 movq %rax,16(%rsp) 7896 movq %rbx,24(%rsp) 7897 vmovdqa64 %xmm10,%xmm11 7898 vmovdqa 16(%rsp),%xmm10 7899 vpxor %xmm9,%xmm1,%xmm1 7900 vpxor %xmm10,%xmm2,%xmm2 7901 vmovdqu (%rcx),%xmm0 7902 vpxor %xmm0,%xmm1,%xmm1 7903 vpxor %xmm0,%xmm2,%xmm2 7904 vmovdqu 16(%rcx),%xmm0 7905 vaesdec %xmm0,%xmm1,%xmm1 7906 vaesdec %xmm0,%xmm2,%xmm2 7907 vmovdqu 32(%rcx),%xmm0 7908 vaesdec %xmm0,%xmm1,%xmm1 7909 vaesdec %xmm0,%xmm2,%xmm2 7910 vmovdqu 48(%rcx),%xmm0 7911 vaesdec %xmm0,%xmm1,%xmm1 7912 vaesdec %xmm0,%xmm2,%xmm2 7913 vmovdqu 64(%rcx),%xmm0 7914 vaesdec %xmm0,%xmm1,%xmm1 7915 vaesdec %xmm0,%xmm2,%xmm2 7916 vmovdqu 80(%rcx),%xmm0 7917 vaesdec %xmm0,%xmm1,%xmm1 7918 vaesdec %xmm0,%xmm2,%xmm2 7919 vmovdqu 96(%rcx),%xmm0 7920 vaesdec %xmm0,%xmm1,%xmm1 7921 vaesdec %xmm0,%xmm2,%xmm2 7922 vmovdqu 112(%rcx),%xmm0 7923 vaesdec %xmm0,%xmm1,%xmm1 7924 vaesdec %xmm0,%xmm2,%xmm2 7925 vmovdqu 128(%rcx),%xmm0 7926 vaesdec %xmm0,%xmm1,%xmm1 7927 vaesdec %xmm0,%xmm2,%xmm2 7928 vmovdqu 144(%rcx),%xmm0 7929 vaesdec %xmm0,%xmm1,%xmm1 7930 vaesdec %xmm0,%xmm2,%xmm2 7931 vmovdqu 160(%rcx),%xmm0 7932 vaesdec %xmm0,%xmm1,%xmm1 7933 vaesdec %xmm0,%xmm2,%xmm2 7934 vmovdqu 176(%rcx),%xmm0 7935 vaesdec %xmm0,%xmm1,%xmm1 7936 vaesdec %xmm0,%xmm2,%xmm2 7937 vmovdqu 192(%rcx),%xmm0 7938 vaesdec %xmm0,%xmm1,%xmm1 7939 vaesdec %xmm0,%xmm2,%xmm2 7940 vmovdqu 208(%rcx),%xmm0 7941 vaesdec %xmm0,%xmm1,%xmm1 7942 vaesdec %xmm0,%xmm2,%xmm2 7943 vmovdqu 224(%rcx),%xmm0 7944 vaesdeclast %xmm0,%xmm1,%xmm1 7945 vaesdeclast %xmm0,%xmm2,%xmm2 7946 vpxor %xmm9,%xmm1,%xmm1 7947 vpxor %xmm10,%xmm2,%xmm2 7948 vmovdqu %xmm1,(%rsi) 7949 addq $0x20,%rsi 7950 vmovdqa %xmm11,%xmm0 7951 vmovdqa %xmm2,%xmm8 7952 jmp .L_steal_cipher_EmbgEptodyewbFa 7953 7954.L_done_2_EmbgEptodyewbFa: 7955 vpxor %xmm9,%xmm1,%xmm1 7956 vpxor %xmm10,%xmm2,%xmm2 7957 vmovdqu (%rcx),%xmm0 7958 vpxor %xmm0,%xmm1,%xmm1 7959 vpxor %xmm0,%xmm2,%xmm2 7960 vmovdqu 16(%rcx),%xmm0 7961 vaesdec %xmm0,%xmm1,%xmm1 7962 vaesdec %xmm0,%xmm2,%xmm2 7963 vmovdqu 32(%rcx),%xmm0 7964 vaesdec %xmm0,%xmm1,%xmm1 7965 vaesdec %xmm0,%xmm2,%xmm2 7966 vmovdqu 48(%rcx),%xmm0 7967 vaesdec %xmm0,%xmm1,%xmm1 7968 vaesdec %xmm0,%xmm2,%xmm2 7969 vmovdqu 64(%rcx),%xmm0 7970 vaesdec %xmm0,%xmm1,%xmm1 7971 vaesdec %xmm0,%xmm2,%xmm2 7972 vmovdqu 80(%rcx),%xmm0 7973 vaesdec %xmm0,%xmm1,%xmm1 7974 vaesdec %xmm0,%xmm2,%xmm2 7975 vmovdqu 96(%rcx),%xmm0 7976 vaesdec %xmm0,%xmm1,%xmm1 7977 vaesdec %xmm0,%xmm2,%xmm2 7978 vmovdqu 112(%rcx),%xmm0 7979 vaesdec %xmm0,%xmm1,%xmm1 7980 vaesdec %xmm0,%xmm2,%xmm2 7981 vmovdqu 128(%rcx),%xmm0 7982 vaesdec %xmm0,%xmm1,%xmm1 7983 vaesdec %xmm0,%xmm2,%xmm2 7984 vmovdqu 144(%rcx),%xmm0 7985 vaesdec %xmm0,%xmm1,%xmm1 7986 vaesdec %xmm0,%xmm2,%xmm2 7987 vmovdqu 160(%rcx),%xmm0 7988 vaesdec %xmm0,%xmm1,%xmm1 7989 vaesdec %xmm0,%xmm2,%xmm2 7990 vmovdqu 176(%rcx),%xmm0 7991 vaesdec %xmm0,%xmm1,%xmm1 7992 vaesdec %xmm0,%xmm2,%xmm2 7993 vmovdqu 192(%rcx),%xmm0 7994 vaesdec %xmm0,%xmm1,%xmm1 7995 vaesdec %xmm0,%xmm2,%xmm2 7996 vmovdqu 208(%rcx),%xmm0 7997 vaesdec %xmm0,%xmm1,%xmm1 7998 vaesdec %xmm0,%xmm2,%xmm2 7999 vmovdqu 224(%rcx),%xmm0 8000 vaesdeclast %xmm0,%xmm1,%xmm1 8001 vaesdeclast %xmm0,%xmm2,%xmm2 8002 vpxor %xmm9,%xmm1,%xmm1 8003 vpxor %xmm10,%xmm2,%xmm2 8004 vmovdqu %xmm1,(%rsi) 8005 addq $0x20,%rsi 8006 vmovdqa %xmm2,%xmm8 8007 jmp .L_done_EmbgEptodyewbFa 8008 8009.L_num_blocks_is_1_EmbgEptodyewbFa: 8010 vmovdqa 0(%rsp),%xmm9 8011 movq 0(%rsp),%rax 8012 movq 8(%rsp),%rbx 8013 vmovdqu 0(%rdi),%xmm1 8014 addq $0x10,%rdi 8015 andq $0xf,%rdx 8016 je .L_done_1_EmbgEptodyewbFa 8017 8018.L_steal_cipher_1_EmbgEptodyewbFa: 8019 xorq %r11,%r11 8020 shlq $1,%rax 8021 adcq %rbx,%rbx 8022 cmovcq %r10,%r11 8023 xorq %r11,%rax 8024 movq %rax,16(%rsp) 8025 movq %rbx,24(%rsp) 8026 vmovdqa64 %xmm9,%xmm10 8027 vmovdqa 16(%rsp),%xmm9 8028 vpxor %xmm9,%xmm1,%xmm1 8029 vmovdqu (%rcx),%xmm0 8030 vpxor %xmm0,%xmm1,%xmm1 8031 vmovdqu 16(%rcx),%xmm0 8032 vaesdec %xmm0,%xmm1,%xmm1 8033 vmovdqu 32(%rcx),%xmm0 8034 vaesdec %xmm0,%xmm1,%xmm1 8035 vmovdqu 48(%rcx),%xmm0 8036 vaesdec %xmm0,%xmm1,%xmm1 8037 vmovdqu 64(%rcx),%xmm0 8038 vaesdec %xmm0,%xmm1,%xmm1 8039 vmovdqu 80(%rcx),%xmm0 8040 vaesdec %xmm0,%xmm1,%xmm1 8041 vmovdqu 96(%rcx),%xmm0 8042 vaesdec %xmm0,%xmm1,%xmm1 8043 vmovdqu 112(%rcx),%xmm0 8044 vaesdec %xmm0,%xmm1,%xmm1 8045 vmovdqu 128(%rcx),%xmm0 8046 vaesdec %xmm0,%xmm1,%xmm1 8047 vmovdqu 144(%rcx),%xmm0 8048 vaesdec %xmm0,%xmm1,%xmm1 8049 vmovdqu 160(%rcx),%xmm0 8050 vaesdec %xmm0,%xmm1,%xmm1 8051 vmovdqu 176(%rcx),%xmm0 8052 vaesdec %xmm0,%xmm1,%xmm1 8053 vmovdqu 192(%rcx),%xmm0 8054 vaesdec %xmm0,%xmm1,%xmm1 8055 vmovdqu 208(%rcx),%xmm0 8056 vaesdec %xmm0,%xmm1,%xmm1 8057 vmovdqu 224(%rcx),%xmm0 8058 vaesdeclast %xmm0,%xmm1,%xmm1 8059 vpxor %xmm9,%xmm1,%xmm1 8060 addq $0x10,%rsi 8061 vmovdqa %xmm10,%xmm0 8062 vmovdqa %xmm1,%xmm8 8063 jmp .L_steal_cipher_EmbgEptodyewbFa 8064 8065.L_done_1_EmbgEptodyewbFa: 8066 vpxor %xmm9,%xmm1,%xmm1 8067 vmovdqu (%rcx),%xmm0 8068 vpxor %xmm0,%xmm1,%xmm1 8069 vmovdqu 16(%rcx),%xmm0 8070 vaesdec %xmm0,%xmm1,%xmm1 8071 vmovdqu 32(%rcx),%xmm0 8072 vaesdec %xmm0,%xmm1,%xmm1 8073 vmovdqu 48(%rcx),%xmm0 8074 vaesdec %xmm0,%xmm1,%xmm1 8075 vmovdqu 64(%rcx),%xmm0 8076 vaesdec %xmm0,%xmm1,%xmm1 8077 vmovdqu 80(%rcx),%xmm0 8078 vaesdec %xmm0,%xmm1,%xmm1 8079 vmovdqu 96(%rcx),%xmm0 8080 vaesdec %xmm0,%xmm1,%xmm1 8081 vmovdqu 112(%rcx),%xmm0 8082 vaesdec %xmm0,%xmm1,%xmm1 8083 vmovdqu 128(%rcx),%xmm0 8084 vaesdec %xmm0,%xmm1,%xmm1 8085 vmovdqu 144(%rcx),%xmm0 8086 vaesdec %xmm0,%xmm1,%xmm1 8087 vmovdqu 160(%rcx),%xmm0 8088 vaesdec %xmm0,%xmm1,%xmm1 8089 vmovdqu 176(%rcx),%xmm0 8090 vaesdec %xmm0,%xmm1,%xmm1 8091 vmovdqu 192(%rcx),%xmm0 8092 vaesdec %xmm0,%xmm1,%xmm1 8093 vmovdqu 208(%rcx),%xmm0 8094 vaesdec %xmm0,%xmm1,%xmm1 8095 vmovdqu 224(%rcx),%xmm0 8096 vaesdeclast %xmm0,%xmm1,%xmm1 8097 vpxor %xmm9,%xmm1,%xmm1 8098 addq $0x10,%rsi 8099 vmovdqa %xmm1,%xmm8 8100 jmp .L_done_EmbgEptodyewbFa 8101.cfi_endproc 8102.section .rodata 8103.align 16 8104 8105vpshufb_shf_table: 8106.quad 0x8786858483828100, 0x8f8e8d8c8b8a8988 8107.quad 0x0706050403020100, 0x000e0d0c0b0a0908 8108 8109mask1: 8110.quad 0x8080808080808080, 0x8080808080808080 8111 8112const_dq3210: 8113.quad 0, 0, 1, 1, 2, 2, 3, 3 8114const_dq5678: 8115.quad 8, 8, 7, 7, 6, 6, 5, 5 8116const_dq7654: 8117.quad 4, 4, 5, 5, 6, 6, 7, 7 8118const_dq1234: 8119.quad 4, 4, 3, 3, 2, 2, 1, 1 8120 8121shufb_15_7: 8122.byte 15, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 7, 0xff, 0xff 8123.byte 0xff, 0xff, 0xff, 0xff, 0xff 8124 8125.text 8126 .section ".note.gnu.property", "a" 8127 .p2align 3 8128 .long 1f - 0f 8129 .long 4f - 1f 8130 .long 5 81310: 8132 # "GNU" encoded with .byte, since .asciz isn't supported 8133 # on Solaris. 8134 .byte 0x47 8135 .byte 0x4e 8136 .byte 0x55 8137 .byte 0 81381: 8139 .p2align 3 8140 .long 0xc0000002 8141 .long 3f - 2f 81422: 8143 .long 3 81443: 8145 .p2align 3 81464: 8147