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