1; This file is generated from a similarly-named Perl script in the BoringSSL 2; source tree. Do not edit by hand. 3 4%ifidn __OUTPUT_FORMAT__, win64 5default rel 6%define XMMWORD 7%define YMMWORD 8%define ZMMWORD 9%define _CET_ENDBR 10 11%include "ring_core_generated/prefix_symbols_nasm.inc" 12section .text code align=64 13 14 15 16ALIGN 32 17_aesni_ctr32_ghash_6x: 18 19 vmovdqu xmm2,XMMWORD[32+r11] 20 sub r8,6 21 vpxor xmm4,xmm4,xmm4 22 vmovdqu xmm15,XMMWORD[((0-128))+r9] 23 vpaddb xmm10,xmm1,xmm2 24 vpaddb xmm11,xmm10,xmm2 25 vpaddb xmm12,xmm11,xmm2 26 vpaddb xmm13,xmm12,xmm2 27 vpaddb xmm14,xmm13,xmm2 28 vpxor xmm9,xmm1,xmm15 29 vmovdqu XMMWORD[(16+8)+rsp],xmm4 30 jmp NEAR $L$oop6x 31 32ALIGN 32 33$L$oop6x: 34 add ebx,100663296 35 jc NEAR $L$handle_ctr32 36 vmovdqu xmm3,XMMWORD[((0-32))+rsi] 37 vpaddb xmm1,xmm14,xmm2 38 vpxor xmm10,xmm10,xmm15 39 vpxor xmm11,xmm11,xmm15 40 41$L$resume_ctr32: 42 vmovdqu XMMWORD[rdi],xmm1 43 vpclmulqdq xmm5,xmm7,xmm3,0x10 44 vpxor xmm12,xmm12,xmm15 45 vmovups xmm2,XMMWORD[((16-128))+r9] 46 vpclmulqdq xmm6,xmm7,xmm3,0x01 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 xor r12,r12 65 cmp r15,r14 66 67 vaesenc xmm9,xmm9,xmm2 68 vmovdqu xmm0,XMMWORD[((48+8))+rsp] 69 vpxor xmm13,xmm13,xmm15 70 vpclmulqdq xmm1,xmm7,xmm3,0x00 71 vaesenc xmm10,xmm10,xmm2 72 vpxor xmm14,xmm14,xmm15 73 setnc r12b 74 vpclmulqdq xmm7,xmm7,xmm3,0x11 75 vaesenc xmm11,xmm11,xmm2 76 vmovdqu xmm3,XMMWORD[((16-32))+rsi] 77 neg r12 78 vaesenc xmm12,xmm12,xmm2 79 vpxor xmm6,xmm6,xmm5 80 vpclmulqdq xmm5,xmm0,xmm3,0x00 81 vpxor xmm8,xmm8,xmm4 82 vaesenc xmm13,xmm13,xmm2 83 vpxor xmm4,xmm1,xmm5 84 and r12,0x60 85 vmovups xmm15,XMMWORD[((32-128))+r9] 86 vpclmulqdq xmm1,xmm0,xmm3,0x10 87 vaesenc xmm14,xmm14,xmm2 88 89 vpclmulqdq xmm2,xmm0,xmm3,0x01 90 lea r14,[r12*1+r14] 91 vaesenc xmm9,xmm9,xmm15 92 vpxor xmm8,xmm8,XMMWORD[((16+8))+rsp] 93 vpclmulqdq xmm3,xmm0,xmm3,0x11 94 vmovdqu xmm0,XMMWORD[((64+8))+rsp] 95 vaesenc xmm10,xmm10,xmm15 96 movbe r13,QWORD[88+r14] 97 vaesenc xmm11,xmm11,xmm15 98 movbe r12,QWORD[80+r14] 99 vaesenc xmm12,xmm12,xmm15 100 mov QWORD[((32+8))+rsp],r13 101 vaesenc xmm13,xmm13,xmm15 102 mov QWORD[((40+8))+rsp],r12 103 vmovdqu xmm5,XMMWORD[((48-32))+rsi] 104 vaesenc xmm14,xmm14,xmm15 105 106 vmovups xmm15,XMMWORD[((48-128))+r9] 107 vpxor xmm6,xmm6,xmm1 108 vpclmulqdq xmm1,xmm0,xmm5,0x00 109 vaesenc xmm9,xmm9,xmm15 110 vpxor xmm6,xmm6,xmm2 111 vpclmulqdq xmm2,xmm0,xmm5,0x10 112 vaesenc xmm10,xmm10,xmm15 113 vpxor xmm7,xmm7,xmm3 114 vpclmulqdq xmm3,xmm0,xmm5,0x01 115 vaesenc xmm11,xmm11,xmm15 116 vpclmulqdq xmm5,xmm0,xmm5,0x11 117 vmovdqu xmm0,XMMWORD[((80+8))+rsp] 118 vaesenc xmm12,xmm12,xmm15 119 vaesenc xmm13,xmm13,xmm15 120 vpxor xmm4,xmm4,xmm1 121 vmovdqu xmm1,XMMWORD[((64-32))+rsi] 122 vaesenc xmm14,xmm14,xmm15 123 124 vmovups xmm15,XMMWORD[((64-128))+r9] 125 vpxor xmm6,xmm6,xmm2 126 vpclmulqdq xmm2,xmm0,xmm1,0x00 127 vaesenc xmm9,xmm9,xmm15 128 vpxor xmm6,xmm6,xmm3 129 vpclmulqdq xmm3,xmm0,xmm1,0x10 130 vaesenc xmm10,xmm10,xmm15 131 movbe r13,QWORD[72+r14] 132 vpxor xmm7,xmm7,xmm5 133 vpclmulqdq xmm5,xmm0,xmm1,0x01 134 vaesenc xmm11,xmm11,xmm15 135 movbe r12,QWORD[64+r14] 136 vpclmulqdq xmm1,xmm0,xmm1,0x11 137 vmovdqu xmm0,XMMWORD[((96+8))+rsp] 138 vaesenc xmm12,xmm12,xmm15 139 mov QWORD[((48+8))+rsp],r13 140 vaesenc xmm13,xmm13,xmm15 141 mov QWORD[((56+8))+rsp],r12 142 vpxor xmm4,xmm4,xmm2 143 vmovdqu xmm2,XMMWORD[((96-32))+rsi] 144 vaesenc xmm14,xmm14,xmm15 145 146 vmovups xmm15,XMMWORD[((80-128))+r9] 147 vpxor xmm6,xmm6,xmm3 148 vpclmulqdq xmm3,xmm0,xmm2,0x00 149 vaesenc xmm9,xmm9,xmm15 150 vpxor xmm6,xmm6,xmm5 151 vpclmulqdq xmm5,xmm0,xmm2,0x10 152 vaesenc xmm10,xmm10,xmm15 153 movbe r13,QWORD[56+r14] 154 vpxor xmm7,xmm7,xmm1 155 vpclmulqdq xmm1,xmm0,xmm2,0x01 156 vpxor xmm8,xmm8,XMMWORD[((112+8))+rsp] 157 vaesenc xmm11,xmm11,xmm15 158 movbe r12,QWORD[48+r14] 159 vpclmulqdq xmm2,xmm0,xmm2,0x11 160 vaesenc xmm12,xmm12,xmm15 161 mov QWORD[((64+8))+rsp],r13 162 vaesenc xmm13,xmm13,xmm15 163 mov QWORD[((72+8))+rsp],r12 164 vpxor xmm4,xmm4,xmm3 165 vmovdqu xmm3,XMMWORD[((112-32))+rsi] 166 vaesenc xmm14,xmm14,xmm15 167 168 vmovups xmm15,XMMWORD[((96-128))+r9] 169 vpxor xmm6,xmm6,xmm5 170 vpclmulqdq xmm5,xmm8,xmm3,0x10 171 vaesenc xmm9,xmm9,xmm15 172 vpxor xmm6,xmm6,xmm1 173 vpclmulqdq xmm1,xmm8,xmm3,0x01 174 vaesenc xmm10,xmm10,xmm15 175 movbe r13,QWORD[40+r14] 176 vpxor xmm7,xmm7,xmm2 177 vpclmulqdq xmm2,xmm8,xmm3,0x00 178 vaesenc xmm11,xmm11,xmm15 179 movbe r12,QWORD[32+r14] 180 vpclmulqdq xmm8,xmm8,xmm3,0x11 181 vaesenc xmm12,xmm12,xmm15 182 mov QWORD[((80+8))+rsp],r13 183 vaesenc xmm13,xmm13,xmm15 184 mov QWORD[((88+8))+rsp],r12 185 vpxor xmm6,xmm6,xmm5 186 vaesenc xmm14,xmm14,xmm15 187 vpxor xmm6,xmm6,xmm1 188 189 vmovups xmm15,XMMWORD[((112-128))+r9] 190 vpslldq xmm5,xmm6,8 191 vpxor xmm4,xmm4,xmm2 192 vmovdqu xmm3,XMMWORD[16+r11] 193 194 vaesenc xmm9,xmm9,xmm15 195 vpxor xmm7,xmm7,xmm8 196 vaesenc xmm10,xmm10,xmm15 197 vpxor xmm4,xmm4,xmm5 198 movbe r13,QWORD[24+r14] 199 vaesenc xmm11,xmm11,xmm15 200 movbe r12,QWORD[16+r14] 201 vpalignr xmm0,xmm4,xmm4,8 202 vpclmulqdq xmm4,xmm4,xmm3,0x10 203 mov QWORD[((96+8))+rsp],r13 204 vaesenc xmm12,xmm12,xmm15 205 mov QWORD[((104+8))+rsp],r12 206 vaesenc xmm13,xmm13,xmm15 207 vmovups xmm1,XMMWORD[((128-128))+r9] 208 vaesenc xmm14,xmm14,xmm15 209 210 vaesenc xmm9,xmm9,xmm1 211 vmovups xmm15,XMMWORD[((144-128))+r9] 212 vaesenc xmm10,xmm10,xmm1 213 vpsrldq xmm6,xmm6,8 214 vaesenc xmm11,xmm11,xmm1 215 vpxor xmm7,xmm7,xmm6 216 vaesenc xmm12,xmm12,xmm1 217 vpxor xmm4,xmm4,xmm0 218 movbe r13,QWORD[8+r14] 219 vaesenc xmm13,xmm13,xmm1 220 movbe r12,QWORD[r14] 221 vaesenc xmm14,xmm14,xmm1 222 vmovups xmm1,XMMWORD[((160-128))+r9] 223 cmp r10d,11 224 jb NEAR $L$enc_tail 225 226 vaesenc xmm9,xmm9,xmm15 227 vaesenc xmm10,xmm10,xmm15 228 vaesenc xmm11,xmm11,xmm15 229 vaesenc xmm12,xmm12,xmm15 230 vaesenc xmm13,xmm13,xmm15 231 vaesenc xmm14,xmm14,xmm15 232 233 vaesenc xmm9,xmm9,xmm1 234 vaesenc xmm10,xmm10,xmm1 235 vaesenc xmm11,xmm11,xmm1 236 vaesenc xmm12,xmm12,xmm1 237 vaesenc xmm13,xmm13,xmm1 238 vmovups xmm15,XMMWORD[((176-128))+r9] 239 vaesenc xmm14,xmm14,xmm1 240 vmovups xmm1,XMMWORD[((192-128))+r9] 241 242 243 vaesenc xmm9,xmm9,xmm15 244 vaesenc xmm10,xmm10,xmm15 245 vaesenc xmm11,xmm11,xmm15 246 vaesenc xmm12,xmm12,xmm15 247 vaesenc xmm13,xmm13,xmm15 248 vaesenc xmm14,xmm14,xmm15 249 250 vaesenc xmm9,xmm9,xmm1 251 vaesenc xmm10,xmm10,xmm1 252 vaesenc xmm11,xmm11,xmm1 253 vaesenc xmm12,xmm12,xmm1 254 vaesenc xmm13,xmm13,xmm1 255 vmovups xmm15,XMMWORD[((208-128))+r9] 256 vaesenc xmm14,xmm14,xmm1 257 vmovups xmm1,XMMWORD[((224-128))+r9] 258 jmp NEAR $L$enc_tail 259 260ALIGN 32 261$L$handle_ctr32: 262 vmovdqu xmm0,XMMWORD[r11] 263 vpshufb xmm6,xmm1,xmm0 264 vmovdqu xmm5,XMMWORD[48+r11] 265 vpaddd xmm10,xmm6,XMMWORD[64+r11] 266 vpaddd xmm11,xmm6,xmm5 267 vmovdqu xmm3,XMMWORD[((0-32))+rsi] 268 vpaddd xmm12,xmm10,xmm5 269 vpshufb xmm10,xmm10,xmm0 270 vpaddd xmm13,xmm11,xmm5 271 vpshufb xmm11,xmm11,xmm0 272 vpxor xmm10,xmm10,xmm15 273 vpaddd xmm14,xmm12,xmm5 274 vpshufb xmm12,xmm12,xmm0 275 vpxor xmm11,xmm11,xmm15 276 vpaddd xmm1,xmm13,xmm5 277 vpshufb xmm13,xmm13,xmm0 278 vpshufb xmm14,xmm14,xmm0 279 vpshufb xmm1,xmm1,xmm0 280 jmp NEAR $L$resume_ctr32 281 282ALIGN 32 283$L$enc_tail: 284 vaesenc xmm9,xmm9,xmm15 285 vmovdqu XMMWORD[(16+8)+rsp],xmm7 286 vpalignr xmm8,xmm4,xmm4,8 287 vaesenc xmm10,xmm10,xmm15 288 vpclmulqdq xmm4,xmm4,xmm3,0x10 289 vpxor xmm2,xmm1,XMMWORD[rcx] 290 vaesenc xmm11,xmm11,xmm15 291 vpxor xmm0,xmm1,XMMWORD[16+rcx] 292 vaesenc xmm12,xmm12,xmm15 293 vpxor xmm5,xmm1,XMMWORD[32+rcx] 294 vaesenc xmm13,xmm13,xmm15 295 vpxor xmm6,xmm1,XMMWORD[48+rcx] 296 vaesenc xmm14,xmm14,xmm15 297 vpxor xmm7,xmm1,XMMWORD[64+rcx] 298 vpxor xmm3,xmm1,XMMWORD[80+rcx] 299 vmovdqu xmm1,XMMWORD[rdi] 300 301 vaesenclast xmm9,xmm9,xmm2 302 vmovdqu xmm2,XMMWORD[32+r11] 303 vaesenclast xmm10,xmm10,xmm0 304 vpaddb xmm0,xmm1,xmm2 305 mov QWORD[((112+8))+rsp],r13 306 lea rcx,[96+rcx] 307 308 prefetcht0 [512+rcx] 309 prefetcht0 [576+rcx] 310 vaesenclast xmm11,xmm11,xmm5 311 vpaddb xmm5,xmm0,xmm2 312 mov QWORD[((120+8))+rsp],r12 313 lea rdx,[96+rdx] 314 vmovdqu xmm15,XMMWORD[((0-128))+r9] 315 vaesenclast xmm12,xmm12,xmm6 316 vpaddb xmm6,xmm5,xmm2 317 vaesenclast xmm13,xmm13,xmm7 318 vpaddb xmm7,xmm6,xmm2 319 vaesenclast xmm14,xmm14,xmm3 320 vpaddb xmm3,xmm7,xmm2 321 322 add rax,0x60 323 sub r8,0x6 324 jc NEAR $L$6x_done 325 326 vmovups XMMWORD[(-96)+rdx],xmm9 327 vpxor xmm9,xmm1,xmm15 328 vmovups XMMWORD[(-80)+rdx],xmm10 329 vmovdqa xmm10,xmm0 330 vmovups XMMWORD[(-64)+rdx],xmm11 331 vmovdqa xmm11,xmm5 332 vmovups XMMWORD[(-48)+rdx],xmm12 333 vmovdqa xmm12,xmm6 334 vmovups XMMWORD[(-32)+rdx],xmm13 335 vmovdqa xmm13,xmm7 336 vmovups XMMWORD[(-16)+rdx],xmm14 337 vmovdqa xmm14,xmm3 338 vmovdqu xmm7,XMMWORD[((32+8))+rsp] 339 jmp NEAR $L$oop6x 340 341$L$6x_done: 342 vpxor xmm8,xmm8,XMMWORD[((16+8))+rsp] 343 vpxor xmm8,xmm8,xmm4 344 345 ret 346 347 348global aesni_gcm_decrypt 349 350ALIGN 32 351aesni_gcm_decrypt: 352 353$L$SEH_begin_aesni_gcm_decrypt_1: 354_CET_ENDBR 355 xor rax,rax 356 357 358 359 cmp r8,0x60 360 jb NEAR $L$gcm_dec_abort 361 362 push rbp 363 364$L$SEH_prolog_aesni_gcm_decrypt_2: 365 mov rbp,rsp 366 367 push rbx 368 369$L$SEH_prolog_aesni_gcm_decrypt_3: 370 push r12 371 372$L$SEH_prolog_aesni_gcm_decrypt_4: 373 push r13 374 375$L$SEH_prolog_aesni_gcm_decrypt_5: 376 push r14 377 378$L$SEH_prolog_aesni_gcm_decrypt_6: 379 push r15 380 381$L$SEH_prolog_aesni_gcm_decrypt_7: 382 lea rsp,[((-168))+rsp] 383$L$SEH_prolog_aesni_gcm_decrypt_8: 384$L$SEH_prolog_aesni_gcm_decrypt_9: 385 386 387 388 mov QWORD[16+rbp],rdi 389$L$SEH_prolog_aesni_gcm_decrypt_10: 390 mov QWORD[24+rbp],rsi 391$L$SEH_prolog_aesni_gcm_decrypt_11: 392 mov rdi,QWORD[48+rbp] 393 mov rsi,QWORD[56+rbp] 394 395 movaps XMMWORD[(-208)+rbp],xmm6 396$L$SEH_prolog_aesni_gcm_decrypt_12: 397 movaps XMMWORD[(-192)+rbp],xmm7 398$L$SEH_prolog_aesni_gcm_decrypt_13: 399 movaps XMMWORD[(-176)+rbp],xmm8 400$L$SEH_prolog_aesni_gcm_decrypt_14: 401 movaps XMMWORD[(-160)+rbp],xmm9 402$L$SEH_prolog_aesni_gcm_decrypt_15: 403 movaps XMMWORD[(-144)+rbp],xmm10 404$L$SEH_prolog_aesni_gcm_decrypt_16: 405 movaps XMMWORD[(-128)+rbp],xmm11 406$L$SEH_prolog_aesni_gcm_decrypt_17: 407 movaps XMMWORD[(-112)+rbp],xmm12 408$L$SEH_prolog_aesni_gcm_decrypt_18: 409 movaps XMMWORD[(-96)+rbp],xmm13 410$L$SEH_prolog_aesni_gcm_decrypt_19: 411 movaps XMMWORD[(-80)+rbp],xmm14 412$L$SEH_prolog_aesni_gcm_decrypt_20: 413 movaps XMMWORD[(-64)+rbp],xmm15 414$L$SEH_prolog_aesni_gcm_decrypt_21: 415 vzeroupper 416 417 mov r12,QWORD[64+rbp] 418 vmovdqu xmm1,XMMWORD[rdi] 419 add rsp,-128 420 mov ebx,DWORD[12+rdi] 421 lea r11,[$L$bswap_mask] 422 lea r14,[((-128))+r9] 423 mov r15,0xf80 424 vmovdqu xmm8,XMMWORD[r12] 425 and rsp,-128 426 vmovdqu xmm0,XMMWORD[r11] 427 lea r9,[128+r9] 428 lea rsi,[32+rsi] 429 mov r10d,DWORD[((240-128))+r9] 430 vpshufb xmm8,xmm8,xmm0 431 432 and r14,r15 433 and r15,rsp 434 sub r15,r14 435 jc NEAR $L$dec_no_key_aliasing 436 cmp r15,768 437 jnc NEAR $L$dec_no_key_aliasing 438 sub rsp,r15 439$L$dec_no_key_aliasing: 440 441 vmovdqu xmm7,XMMWORD[80+rcx] 442 mov r14,rcx 443 vmovdqu xmm4,XMMWORD[64+rcx] 444 445 446 447 448 449 450 451 lea r15,[((-192))+r8*1+rcx] 452 453 vmovdqu xmm5,XMMWORD[48+rcx] 454 shr r8,4 455 xor rax,rax 456 vmovdqu xmm6,XMMWORD[32+rcx] 457 vpshufb xmm7,xmm7,xmm0 458 vmovdqu xmm2,XMMWORD[16+rcx] 459 vpshufb xmm4,xmm4,xmm0 460 vmovdqu xmm3,XMMWORD[rcx] 461 vpshufb xmm5,xmm5,xmm0 462 vmovdqu XMMWORD[48+rsp],xmm4 463 vpshufb xmm6,xmm6,xmm0 464 vmovdqu XMMWORD[64+rsp],xmm5 465 vpshufb xmm2,xmm2,xmm0 466 vmovdqu XMMWORD[80+rsp],xmm6 467 vpshufb xmm3,xmm3,xmm0 468 vmovdqu XMMWORD[96+rsp],xmm2 469 vmovdqu XMMWORD[112+rsp],xmm3 470 471 call _aesni_ctr32_ghash_6x 472 473 mov r12,QWORD[64+rbp] 474 vmovups XMMWORD[(-96)+rdx],xmm9 475 vmovups XMMWORD[(-80)+rdx],xmm10 476 vmovups XMMWORD[(-64)+rdx],xmm11 477 vmovups XMMWORD[(-48)+rdx],xmm12 478 vmovups XMMWORD[(-32)+rdx],xmm13 479 vmovups XMMWORD[(-16)+rdx],xmm14 480 481 vpshufb xmm8,xmm8,XMMWORD[r11] 482 vmovdqu XMMWORD[r12],xmm8 483 484 vzeroupper 485 movaps xmm6,XMMWORD[((-208))+rbp] 486 movaps xmm7,XMMWORD[((-192))+rbp] 487 movaps xmm8,XMMWORD[((-176))+rbp] 488 movaps xmm9,XMMWORD[((-160))+rbp] 489 movaps xmm10,XMMWORD[((-144))+rbp] 490 movaps xmm11,XMMWORD[((-128))+rbp] 491 movaps xmm12,XMMWORD[((-112))+rbp] 492 movaps xmm13,XMMWORD[((-96))+rbp] 493 movaps xmm14,XMMWORD[((-80))+rbp] 494 movaps xmm15,XMMWORD[((-64))+rbp] 495 mov rdi,QWORD[16+rbp] 496 mov rsi,QWORD[24+rbp] 497 lea rsp,[((-40))+rbp] 498 499 pop r15 500 501 pop r14 502 503 pop r13 504 505 pop r12 506 507 pop rbx 508 509 pop rbp 510 511$L$gcm_dec_abort: 512 ret 513$L$SEH_end_aesni_gcm_decrypt_22: 514 515 516 517ALIGN 32 518_aesni_ctr32_6x: 519 520 vmovdqu xmm4,XMMWORD[((0-128))+r9] 521 vmovdqu xmm2,XMMWORD[32+r11] 522 lea r13,[((-1))+r10] 523 vmovups xmm15,XMMWORD[((16-128))+r9] 524 lea r12,[((32-128))+r9] 525 vpxor xmm9,xmm1,xmm4 526 add ebx,100663296 527 jc NEAR $L$handle_ctr32_2 528 vpaddb xmm10,xmm1,xmm2 529 vpaddb xmm11,xmm10,xmm2 530 vpxor xmm10,xmm10,xmm4 531 vpaddb xmm12,xmm11,xmm2 532 vpxor xmm11,xmm11,xmm4 533 vpaddb xmm13,xmm12,xmm2 534 vpxor xmm12,xmm12,xmm4 535 vpaddb xmm14,xmm13,xmm2 536 vpxor xmm13,xmm13,xmm4 537 vpaddb xmm1,xmm14,xmm2 538 vpxor xmm14,xmm14,xmm4 539 jmp NEAR $L$oop_ctr32 540 541ALIGN 16 542$L$oop_ctr32: 543 vaesenc xmm9,xmm9,xmm15 544 vaesenc xmm10,xmm10,xmm15 545 vaesenc xmm11,xmm11,xmm15 546 vaesenc xmm12,xmm12,xmm15 547 vaesenc xmm13,xmm13,xmm15 548 vaesenc xmm14,xmm14,xmm15 549 vmovups xmm15,XMMWORD[r12] 550 lea r12,[16+r12] 551 dec r13d 552 jnz NEAR $L$oop_ctr32 553 554 vmovdqu xmm3,XMMWORD[r12] 555 vaesenc xmm9,xmm9,xmm15 556 vpxor xmm4,xmm3,XMMWORD[rcx] 557 vaesenc xmm10,xmm10,xmm15 558 vpxor xmm5,xmm3,XMMWORD[16+rcx] 559 vaesenc xmm11,xmm11,xmm15 560 vpxor xmm6,xmm3,XMMWORD[32+rcx] 561 vaesenc xmm12,xmm12,xmm15 562 vpxor xmm8,xmm3,XMMWORD[48+rcx] 563 vaesenc xmm13,xmm13,xmm15 564 vpxor xmm2,xmm3,XMMWORD[64+rcx] 565 vaesenc xmm14,xmm14,xmm15 566 vpxor xmm3,xmm3,XMMWORD[80+rcx] 567 lea rcx,[96+rcx] 568 569 vaesenclast xmm9,xmm9,xmm4 570 vaesenclast xmm10,xmm10,xmm5 571 vaesenclast xmm11,xmm11,xmm6 572 vaesenclast xmm12,xmm12,xmm8 573 vaesenclast xmm13,xmm13,xmm2 574 vaesenclast xmm14,xmm14,xmm3 575 vmovups XMMWORD[rdx],xmm9 576 vmovups XMMWORD[16+rdx],xmm10 577 vmovups XMMWORD[32+rdx],xmm11 578 vmovups XMMWORD[48+rdx],xmm12 579 vmovups XMMWORD[64+rdx],xmm13 580 vmovups XMMWORD[80+rdx],xmm14 581 lea rdx,[96+rdx] 582 583 ret 584ALIGN 32 585$L$handle_ctr32_2: 586 vpshufb xmm6,xmm1,xmm0 587 vmovdqu xmm5,XMMWORD[48+r11] 588 vpaddd xmm10,xmm6,XMMWORD[64+r11] 589 vpaddd xmm11,xmm6,xmm5 590 vpaddd xmm12,xmm10,xmm5 591 vpshufb xmm10,xmm10,xmm0 592 vpaddd xmm13,xmm11,xmm5 593 vpshufb xmm11,xmm11,xmm0 594 vpxor xmm10,xmm10,xmm4 595 vpaddd xmm14,xmm12,xmm5 596 vpshufb xmm12,xmm12,xmm0 597 vpxor xmm11,xmm11,xmm4 598 vpaddd xmm1,xmm13,xmm5 599 vpshufb xmm13,xmm13,xmm0 600 vpxor xmm12,xmm12,xmm4 601 vpshufb xmm14,xmm14,xmm0 602 vpxor xmm13,xmm13,xmm4 603 vpshufb xmm1,xmm1,xmm0 604 vpxor xmm14,xmm14,xmm4 605 jmp NEAR $L$oop_ctr32 606 607 608 609global aesni_gcm_encrypt 610 611ALIGN 32 612aesni_gcm_encrypt: 613 614$L$SEH_begin_aesni_gcm_encrypt_1: 615_CET_ENDBR 616%ifdef BORINGSSL_DISPATCH_TEST 617EXTERN BORINGSSL_function_hit 618 mov BYTE[((BORINGSSL_function_hit+2))],1 619%endif 620 xor rax,rax 621 622 623 624 625 cmp r8,0x60*3 626 jb NEAR $L$gcm_enc_abort 627 628 push rbp 629 630$L$SEH_prolog_aesni_gcm_encrypt_2: 631 mov rbp,rsp 632 633 push rbx 634 635$L$SEH_prolog_aesni_gcm_encrypt_3: 636 push r12 637 638$L$SEH_prolog_aesni_gcm_encrypt_4: 639 push r13 640 641$L$SEH_prolog_aesni_gcm_encrypt_5: 642 push r14 643 644$L$SEH_prolog_aesni_gcm_encrypt_6: 645 push r15 646 647$L$SEH_prolog_aesni_gcm_encrypt_7: 648 lea rsp,[((-168))+rsp] 649$L$SEH_prolog_aesni_gcm_encrypt_8: 650$L$SEH_prolog_aesni_gcm_encrypt_9: 651 652 653 654 mov QWORD[16+rbp],rdi 655$L$SEH_prolog_aesni_gcm_encrypt_10: 656 mov QWORD[24+rbp],rsi 657$L$SEH_prolog_aesni_gcm_encrypt_11: 658 mov rdi,QWORD[48+rbp] 659 mov rsi,QWORD[56+rbp] 660 661 movaps XMMWORD[(-208)+rbp],xmm6 662$L$SEH_prolog_aesni_gcm_encrypt_12: 663 movaps XMMWORD[(-192)+rbp],xmm7 664$L$SEH_prolog_aesni_gcm_encrypt_13: 665 movaps XMMWORD[(-176)+rbp],xmm8 666$L$SEH_prolog_aesni_gcm_encrypt_14: 667 movaps XMMWORD[(-160)+rbp],xmm9 668$L$SEH_prolog_aesni_gcm_encrypt_15: 669 movaps XMMWORD[(-144)+rbp],xmm10 670$L$SEH_prolog_aesni_gcm_encrypt_16: 671 movaps XMMWORD[(-128)+rbp],xmm11 672$L$SEH_prolog_aesni_gcm_encrypt_17: 673 movaps XMMWORD[(-112)+rbp],xmm12 674$L$SEH_prolog_aesni_gcm_encrypt_18: 675 movaps XMMWORD[(-96)+rbp],xmm13 676$L$SEH_prolog_aesni_gcm_encrypt_19: 677 movaps XMMWORD[(-80)+rbp],xmm14 678$L$SEH_prolog_aesni_gcm_encrypt_20: 679 movaps XMMWORD[(-64)+rbp],xmm15 680$L$SEH_prolog_aesni_gcm_encrypt_21: 681 vzeroupper 682 683 vmovdqu xmm1,XMMWORD[rdi] 684 add rsp,-128 685 mov ebx,DWORD[12+rdi] 686 lea r11,[$L$bswap_mask] 687 lea r14,[((-128))+r9] 688 mov r15,0xf80 689 lea r9,[128+r9] 690 vmovdqu xmm0,XMMWORD[r11] 691 and rsp,-128 692 mov r10d,DWORD[((240-128))+r9] 693 694 and r14,r15 695 and r15,rsp 696 sub r15,r14 697 jc NEAR $L$enc_no_key_aliasing 698 cmp r15,768 699 jnc NEAR $L$enc_no_key_aliasing 700 sub rsp,r15 701$L$enc_no_key_aliasing: 702 703 mov r14,rdx 704 705 706 707 708 709 710 711 712 lea r15,[((-192))+r8*1+rdx] 713 714 shr r8,4 715 716 call _aesni_ctr32_6x 717 vpshufb xmm8,xmm9,xmm0 718 vpshufb xmm2,xmm10,xmm0 719 vmovdqu XMMWORD[112+rsp],xmm8 720 vpshufb xmm4,xmm11,xmm0 721 vmovdqu XMMWORD[96+rsp],xmm2 722 vpshufb xmm5,xmm12,xmm0 723 vmovdqu XMMWORD[80+rsp],xmm4 724 vpshufb xmm6,xmm13,xmm0 725 vmovdqu XMMWORD[64+rsp],xmm5 726 vpshufb xmm7,xmm14,xmm0 727 vmovdqu XMMWORD[48+rsp],xmm6 728 729 call _aesni_ctr32_6x 730 731 mov r12,QWORD[64+rbp] 732 lea rsi,[32+rsi] 733 vmovdqu xmm8,XMMWORD[r12] 734 sub r8,12 735 mov rax,0x60*2 736 vpshufb xmm8,xmm8,xmm0 737 738 call _aesni_ctr32_ghash_6x 739 vmovdqu xmm7,XMMWORD[32+rsp] 740 vmovdqu xmm0,XMMWORD[r11] 741 vmovdqu xmm3,XMMWORD[((0-32))+rsi] 742 vpunpckhqdq xmm1,xmm7,xmm7 743 vmovdqu xmm15,XMMWORD[((32-32))+rsi] 744 vmovups XMMWORD[(-96)+rdx],xmm9 745 vpshufb xmm9,xmm9,xmm0 746 vpxor xmm1,xmm1,xmm7 747 vmovups XMMWORD[(-80)+rdx],xmm10 748 vpshufb xmm10,xmm10,xmm0 749 vmovups XMMWORD[(-64)+rdx],xmm11 750 vpshufb xmm11,xmm11,xmm0 751 vmovups XMMWORD[(-48)+rdx],xmm12 752 vpshufb xmm12,xmm12,xmm0 753 vmovups XMMWORD[(-32)+rdx],xmm13 754 vpshufb xmm13,xmm13,xmm0 755 vmovups XMMWORD[(-16)+rdx],xmm14 756 vpshufb xmm14,xmm14,xmm0 757 vmovdqu XMMWORD[16+rsp],xmm9 758 vmovdqu xmm6,XMMWORD[48+rsp] 759 vmovdqu xmm0,XMMWORD[((16-32))+rsi] 760 vpunpckhqdq xmm2,xmm6,xmm6 761 vpclmulqdq xmm5,xmm7,xmm3,0x00 762 vpxor xmm2,xmm2,xmm6 763 vpclmulqdq xmm7,xmm7,xmm3,0x11 764 vpclmulqdq xmm1,xmm1,xmm15,0x00 765 766 vmovdqu xmm9,XMMWORD[64+rsp] 767 vpclmulqdq xmm4,xmm6,xmm0,0x00 768 vmovdqu xmm3,XMMWORD[((48-32))+rsi] 769 vpxor xmm4,xmm4,xmm5 770 vpunpckhqdq xmm5,xmm9,xmm9 771 vpclmulqdq xmm6,xmm6,xmm0,0x11 772 vpxor xmm5,xmm5,xmm9 773 vpxor xmm6,xmm6,xmm7 774 vpclmulqdq xmm2,xmm2,xmm15,0x10 775 vmovdqu xmm15,XMMWORD[((80-32))+rsi] 776 vpxor xmm2,xmm2,xmm1 777 778 vmovdqu xmm1,XMMWORD[80+rsp] 779 vpclmulqdq xmm7,xmm9,xmm3,0x00 780 vmovdqu xmm0,XMMWORD[((64-32))+rsi] 781 vpxor xmm7,xmm7,xmm4 782 vpunpckhqdq xmm4,xmm1,xmm1 783 vpclmulqdq xmm9,xmm9,xmm3,0x11 784 vpxor xmm4,xmm4,xmm1 785 vpxor xmm9,xmm9,xmm6 786 vpclmulqdq xmm5,xmm5,xmm15,0x00 787 vpxor xmm5,xmm5,xmm2 788 789 vmovdqu xmm2,XMMWORD[96+rsp] 790 vpclmulqdq xmm6,xmm1,xmm0,0x00 791 vmovdqu xmm3,XMMWORD[((96-32))+rsi] 792 vpxor xmm6,xmm6,xmm7 793 vpunpckhqdq xmm7,xmm2,xmm2 794 vpclmulqdq xmm1,xmm1,xmm0,0x11 795 vpxor xmm7,xmm7,xmm2 796 vpxor xmm1,xmm1,xmm9 797 vpclmulqdq xmm4,xmm4,xmm15,0x10 798 vmovdqu xmm15,XMMWORD[((128-32))+rsi] 799 vpxor xmm4,xmm4,xmm5 800 801 vpxor xmm8,xmm8,XMMWORD[112+rsp] 802 vpclmulqdq xmm5,xmm2,xmm3,0x00 803 vmovdqu xmm0,XMMWORD[((112-32))+rsi] 804 vpunpckhqdq xmm9,xmm8,xmm8 805 vpxor xmm5,xmm5,xmm6 806 vpclmulqdq xmm2,xmm2,xmm3,0x11 807 vpxor xmm9,xmm9,xmm8 808 vpxor xmm2,xmm2,xmm1 809 vpclmulqdq xmm7,xmm7,xmm15,0x00 810 vpxor xmm4,xmm7,xmm4 811 812 vpclmulqdq xmm6,xmm8,xmm0,0x00 813 vmovdqu xmm3,XMMWORD[((0-32))+rsi] 814 vpunpckhqdq xmm1,xmm14,xmm14 815 vpclmulqdq xmm8,xmm8,xmm0,0x11 816 vpxor xmm1,xmm1,xmm14 817 vpxor xmm5,xmm6,xmm5 818 vpclmulqdq xmm9,xmm9,xmm15,0x10 819 vmovdqu xmm15,XMMWORD[((32-32))+rsi] 820 vpxor xmm7,xmm8,xmm2 821 vpxor xmm6,xmm9,xmm4 822 823 vmovdqu xmm0,XMMWORD[((16-32))+rsi] 824 vpxor xmm9,xmm7,xmm5 825 vpclmulqdq xmm4,xmm14,xmm3,0x00 826 vpxor xmm6,xmm6,xmm9 827 vpunpckhqdq xmm2,xmm13,xmm13 828 vpclmulqdq xmm14,xmm14,xmm3,0x11 829 vpxor xmm2,xmm2,xmm13 830 vpslldq xmm9,xmm6,8 831 vpclmulqdq xmm1,xmm1,xmm15,0x00 832 vpxor xmm8,xmm5,xmm9 833 vpsrldq xmm6,xmm6,8 834 vpxor xmm7,xmm7,xmm6 835 836 vpclmulqdq xmm5,xmm13,xmm0,0x00 837 vmovdqu xmm3,XMMWORD[((48-32))+rsi] 838 vpxor xmm5,xmm5,xmm4 839 vpunpckhqdq xmm9,xmm12,xmm12 840 vpclmulqdq xmm13,xmm13,xmm0,0x11 841 vpxor xmm9,xmm9,xmm12 842 vpxor xmm13,xmm13,xmm14 843 vpalignr xmm14,xmm8,xmm8,8 844 vpclmulqdq xmm2,xmm2,xmm15,0x10 845 vmovdqu xmm15,XMMWORD[((80-32))+rsi] 846 vpxor xmm2,xmm2,xmm1 847 848 vpclmulqdq xmm4,xmm12,xmm3,0x00 849 vmovdqu xmm0,XMMWORD[((64-32))+rsi] 850 vpxor xmm4,xmm4,xmm5 851 vpunpckhqdq xmm1,xmm11,xmm11 852 vpclmulqdq xmm12,xmm12,xmm3,0x11 853 vpxor xmm1,xmm1,xmm11 854 vpxor xmm12,xmm12,xmm13 855 vxorps xmm7,xmm7,XMMWORD[16+rsp] 856 vpclmulqdq xmm9,xmm9,xmm15,0x00 857 vpxor xmm9,xmm9,xmm2 858 859 vpclmulqdq xmm8,xmm8,XMMWORD[16+r11],0x10 860 vxorps xmm8,xmm8,xmm14 861 862 vpclmulqdq xmm5,xmm11,xmm0,0x00 863 vmovdqu xmm3,XMMWORD[((96-32))+rsi] 864 vpxor xmm5,xmm5,xmm4 865 vpunpckhqdq xmm2,xmm10,xmm10 866 vpclmulqdq xmm11,xmm11,xmm0,0x11 867 vpxor xmm2,xmm2,xmm10 868 vpalignr xmm14,xmm8,xmm8,8 869 vpxor xmm11,xmm11,xmm12 870 vpclmulqdq xmm1,xmm1,xmm15,0x10 871 vmovdqu xmm15,XMMWORD[((128-32))+rsi] 872 vpxor xmm1,xmm1,xmm9 873 874 vxorps xmm14,xmm14,xmm7 875 vpclmulqdq xmm8,xmm8,XMMWORD[16+r11],0x10 876 vxorps xmm8,xmm8,xmm14 877 878 vpclmulqdq xmm4,xmm10,xmm3,0x00 879 vmovdqu xmm0,XMMWORD[((112-32))+rsi] 880 vpxor xmm4,xmm4,xmm5 881 vpunpckhqdq xmm9,xmm8,xmm8 882 vpclmulqdq xmm10,xmm10,xmm3,0x11 883 vpxor xmm9,xmm9,xmm8 884 vpxor xmm10,xmm10,xmm11 885 vpclmulqdq xmm2,xmm2,xmm15,0x00 886 vpxor xmm2,xmm2,xmm1 887 888 vpclmulqdq xmm5,xmm8,xmm0,0x00 889 vpclmulqdq xmm7,xmm8,xmm0,0x11 890 vpxor xmm5,xmm5,xmm4 891 vpclmulqdq xmm6,xmm9,xmm15,0x10 892 vpxor xmm7,xmm7,xmm10 893 vpxor xmm6,xmm6,xmm2 894 895 vpxor xmm4,xmm7,xmm5 896 vpxor xmm6,xmm6,xmm4 897 vpslldq xmm1,xmm6,8 898 vmovdqu xmm3,XMMWORD[16+r11] 899 vpsrldq xmm6,xmm6,8 900 vpxor xmm8,xmm5,xmm1 901 vpxor xmm7,xmm7,xmm6 902 903 vpalignr xmm2,xmm8,xmm8,8 904 vpclmulqdq xmm8,xmm8,xmm3,0x10 905 vpxor xmm8,xmm8,xmm2 906 907 vpalignr xmm2,xmm8,xmm8,8 908 vpclmulqdq xmm8,xmm8,xmm3,0x10 909 vpxor xmm2,xmm2,xmm7 910 vpxor xmm8,xmm8,xmm2 911 mov r12,QWORD[64+rbp] 912 vpshufb xmm8,xmm8,XMMWORD[r11] 913 vmovdqu XMMWORD[r12],xmm8 914 915 vzeroupper 916 movaps xmm6,XMMWORD[((-208))+rbp] 917 movaps xmm7,XMMWORD[((-192))+rbp] 918 movaps xmm8,XMMWORD[((-176))+rbp] 919 movaps xmm9,XMMWORD[((-160))+rbp] 920 movaps xmm10,XMMWORD[((-144))+rbp] 921 movaps xmm11,XMMWORD[((-128))+rbp] 922 movaps xmm12,XMMWORD[((-112))+rbp] 923 movaps xmm13,XMMWORD[((-96))+rbp] 924 movaps xmm14,XMMWORD[((-80))+rbp] 925 movaps xmm15,XMMWORD[((-64))+rbp] 926 mov rdi,QWORD[16+rbp] 927 mov rsi,QWORD[24+rbp] 928 lea rsp,[((-40))+rbp] 929 930 pop r15 931 932 pop r14 933 934 pop r13 935 936 pop r12 937 938 pop rbx 939 940 pop rbp 941 942$L$gcm_enc_abort: 943 ret 944$L$SEH_end_aesni_gcm_encrypt_22: 945 946 947section .rdata rdata align=8 948ALIGN 64 949$L$bswap_mask: 950 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 951$L$poly: 952 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 953$L$one_msb: 954 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 955$L$two_lsb: 956 DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 957$L$one_lsb: 958 DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 959 DB 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108 960 DB 101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 961 DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 962 DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 963ALIGN 64 964section .text 965 966section .pdata rdata align=4 967ALIGN 4 968 DD $L$SEH_begin_aesni_gcm_decrypt_1 wrt ..imagebase 969 DD $L$SEH_end_aesni_gcm_decrypt_22 wrt ..imagebase 970 DD $L$SEH_info_aesni_gcm_decrypt_0 wrt ..imagebase 971 972 DD $L$SEH_begin_aesni_gcm_encrypt_1 wrt ..imagebase 973 DD $L$SEH_end_aesni_gcm_encrypt_22 wrt ..imagebase 974 DD $L$SEH_info_aesni_gcm_encrypt_0 wrt ..imagebase 975 976 977section .xdata rdata align=8 978ALIGN 4 979$L$SEH_info_aesni_gcm_decrypt_0: 980 DB 1 981 DB $L$SEH_prolog_aesni_gcm_decrypt_21-$L$SEH_begin_aesni_gcm_decrypt_1 982 DB 33 983 DB 213 984 DB $L$SEH_prolog_aesni_gcm_decrypt_21-$L$SEH_begin_aesni_gcm_decrypt_1 985 DB 248 986 DW 9 987 DB $L$SEH_prolog_aesni_gcm_decrypt_20-$L$SEH_begin_aesni_gcm_decrypt_1 988 DB 232 989 DW 8 990 DB $L$SEH_prolog_aesni_gcm_decrypt_19-$L$SEH_begin_aesni_gcm_decrypt_1 991 DB 216 992 DW 7 993 DB $L$SEH_prolog_aesni_gcm_decrypt_18-$L$SEH_begin_aesni_gcm_decrypt_1 994 DB 200 995 DW 6 996 DB $L$SEH_prolog_aesni_gcm_decrypt_17-$L$SEH_begin_aesni_gcm_decrypt_1 997 DB 184 998 DW 5 999 DB $L$SEH_prolog_aesni_gcm_decrypt_16-$L$SEH_begin_aesni_gcm_decrypt_1 1000 DB 168 1001 DW 4 1002 DB $L$SEH_prolog_aesni_gcm_decrypt_15-$L$SEH_begin_aesni_gcm_decrypt_1 1003 DB 152 1004 DW 3 1005 DB $L$SEH_prolog_aesni_gcm_decrypt_14-$L$SEH_begin_aesni_gcm_decrypt_1 1006 DB 136 1007 DW 2 1008 DB $L$SEH_prolog_aesni_gcm_decrypt_13-$L$SEH_begin_aesni_gcm_decrypt_1 1009 DB 120 1010 DW 1 1011 DB $L$SEH_prolog_aesni_gcm_decrypt_12-$L$SEH_begin_aesni_gcm_decrypt_1 1012 DB 104 1013 DW 0 1014 DB $L$SEH_prolog_aesni_gcm_decrypt_11-$L$SEH_begin_aesni_gcm_decrypt_1 1015 DB 100 1016 DW 29 1017 DB $L$SEH_prolog_aesni_gcm_decrypt_10-$L$SEH_begin_aesni_gcm_decrypt_1 1018 DB 116 1019 DW 28 1020 DB $L$SEH_prolog_aesni_gcm_decrypt_9-$L$SEH_begin_aesni_gcm_decrypt_1 1021 DB 3 1022 DB $L$SEH_prolog_aesni_gcm_decrypt_8-$L$SEH_begin_aesni_gcm_decrypt_1 1023 DB 1 1024 DW 21 1025 DB $L$SEH_prolog_aesni_gcm_decrypt_7-$L$SEH_begin_aesni_gcm_decrypt_1 1026 DB 240 1027 DB $L$SEH_prolog_aesni_gcm_decrypt_6-$L$SEH_begin_aesni_gcm_decrypt_1 1028 DB 224 1029 DB $L$SEH_prolog_aesni_gcm_decrypt_5-$L$SEH_begin_aesni_gcm_decrypt_1 1030 DB 208 1031 DB $L$SEH_prolog_aesni_gcm_decrypt_4-$L$SEH_begin_aesni_gcm_decrypt_1 1032 DB 192 1033 DB $L$SEH_prolog_aesni_gcm_decrypt_3-$L$SEH_begin_aesni_gcm_decrypt_1 1034 DB 48 1035 DB $L$SEH_prolog_aesni_gcm_decrypt_2-$L$SEH_begin_aesni_gcm_decrypt_1 1036 DB 80 1037 1038$L$SEH_info_aesni_gcm_encrypt_0: 1039 DB 1 1040 DB $L$SEH_prolog_aesni_gcm_encrypt_21-$L$SEH_begin_aesni_gcm_encrypt_1 1041 DB 33 1042 DB 213 1043 DB $L$SEH_prolog_aesni_gcm_encrypt_21-$L$SEH_begin_aesni_gcm_encrypt_1 1044 DB 248 1045 DW 9 1046 DB $L$SEH_prolog_aesni_gcm_encrypt_20-$L$SEH_begin_aesni_gcm_encrypt_1 1047 DB 232 1048 DW 8 1049 DB $L$SEH_prolog_aesni_gcm_encrypt_19-$L$SEH_begin_aesni_gcm_encrypt_1 1050 DB 216 1051 DW 7 1052 DB $L$SEH_prolog_aesni_gcm_encrypt_18-$L$SEH_begin_aesni_gcm_encrypt_1 1053 DB 200 1054 DW 6 1055 DB $L$SEH_prolog_aesni_gcm_encrypt_17-$L$SEH_begin_aesni_gcm_encrypt_1 1056 DB 184 1057 DW 5 1058 DB $L$SEH_prolog_aesni_gcm_encrypt_16-$L$SEH_begin_aesni_gcm_encrypt_1 1059 DB 168 1060 DW 4 1061 DB $L$SEH_prolog_aesni_gcm_encrypt_15-$L$SEH_begin_aesni_gcm_encrypt_1 1062 DB 152 1063 DW 3 1064 DB $L$SEH_prolog_aesni_gcm_encrypt_14-$L$SEH_begin_aesni_gcm_encrypt_1 1065 DB 136 1066 DW 2 1067 DB $L$SEH_prolog_aesni_gcm_encrypt_13-$L$SEH_begin_aesni_gcm_encrypt_1 1068 DB 120 1069 DW 1 1070 DB $L$SEH_prolog_aesni_gcm_encrypt_12-$L$SEH_begin_aesni_gcm_encrypt_1 1071 DB 104 1072 DW 0 1073 DB $L$SEH_prolog_aesni_gcm_encrypt_11-$L$SEH_begin_aesni_gcm_encrypt_1 1074 DB 100 1075 DW 29 1076 DB $L$SEH_prolog_aesni_gcm_encrypt_10-$L$SEH_begin_aesni_gcm_encrypt_1 1077 DB 116 1078 DW 28 1079 DB $L$SEH_prolog_aesni_gcm_encrypt_9-$L$SEH_begin_aesni_gcm_encrypt_1 1080 DB 3 1081 DB $L$SEH_prolog_aesni_gcm_encrypt_8-$L$SEH_begin_aesni_gcm_encrypt_1 1082 DB 1 1083 DW 21 1084 DB $L$SEH_prolog_aesni_gcm_encrypt_7-$L$SEH_begin_aesni_gcm_encrypt_1 1085 DB 240 1086 DB $L$SEH_prolog_aesni_gcm_encrypt_6-$L$SEH_begin_aesni_gcm_encrypt_1 1087 DB 224 1088 DB $L$SEH_prolog_aesni_gcm_encrypt_5-$L$SEH_begin_aesni_gcm_encrypt_1 1089 DB 208 1090 DB $L$SEH_prolog_aesni_gcm_encrypt_4-$L$SEH_begin_aesni_gcm_encrypt_1 1091 DB 192 1092 DB $L$SEH_prolog_aesni_gcm_encrypt_3-$L$SEH_begin_aesni_gcm_encrypt_1 1093 DB 48 1094 DB $L$SEH_prolog_aesni_gcm_encrypt_2-$L$SEH_begin_aesni_gcm_encrypt_1 1095 DB 80 1096%else 1097; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 1098ret 1099%endif 1100