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_prologue_aesni_gcm_decrypt_2: 367 mov rbp,rsp 368 369 push rbx 370 371$L$SEH_prologue_aesni_gcm_decrypt_3: 372 push r12 373 374$L$SEH_prologue_aesni_gcm_decrypt_4: 375 push r13 376 377$L$SEH_prologue_aesni_gcm_decrypt_5: 378 push r14 379 380$L$SEH_prologue_aesni_gcm_decrypt_6: 381 push r15 382 383$L$SEH_prologue_aesni_gcm_decrypt_7: 384 lea rsp,[((-168))+rsp] 385$L$SEH_prologue_aesni_gcm_decrypt_8: 386$L$SEH_prologue_aesni_gcm_decrypt_9: 387 388 389 390 mov QWORD[16+rbp],rdi 391$L$SEH_prologue_aesni_gcm_decrypt_10: 392 mov QWORD[24+rbp],rsi 393$L$SEH_prologue_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_prologue_aesni_gcm_decrypt_12: 399 movaps XMMWORD[(-192)+rbp],xmm7 400$L$SEH_prologue_aesni_gcm_decrypt_13: 401 movaps XMMWORD[(-176)+rbp],xmm8 402$L$SEH_prologue_aesni_gcm_decrypt_14: 403 movaps XMMWORD[(-160)+rbp],xmm9 404$L$SEH_prologue_aesni_gcm_decrypt_15: 405 movaps XMMWORD[(-144)+rbp],xmm10 406$L$SEH_prologue_aesni_gcm_decrypt_16: 407 movaps XMMWORD[(-128)+rbp],xmm11 408$L$SEH_prologue_aesni_gcm_decrypt_17: 409 movaps XMMWORD[(-112)+rbp],xmm12 410$L$SEH_prologue_aesni_gcm_decrypt_18: 411 movaps XMMWORD[(-96)+rbp],xmm13 412$L$SEH_prologue_aesni_gcm_decrypt_19: 413 movaps XMMWORD[(-80)+rbp],xmm14 414$L$SEH_prologue_aesni_gcm_decrypt_20: 415 movaps XMMWORD[(-64)+rbp],xmm15 416$L$SEH_prologue_aesni_gcm_decrypt_21: 417$L$SEH_endprologue_aesni_gcm_decrypt_22: 418 vzeroupper 419 420 mov r12,QWORD[64+rbp] 421 vmovdqu xmm1,XMMWORD[rdi] 422 add rsp,-128 423 mov ebx,DWORD[12+rdi] 424 lea r11,[$L$bswap_mask] 425 lea r14,[((-128))+r9] 426 mov r15,0xf80 427 vmovdqu xmm8,XMMWORD[r12] 428 and rsp,-128 429 vmovdqu xmm0,XMMWORD[r11] 430 lea r9,[128+r9] 431 lea rsi,[32+rsi] 432 mov r10d,DWORD[((240-128))+r9] 433 vpshufb xmm8,xmm8,xmm0 434 435 and r14,r15 436 and r15,rsp 437 sub r15,r14 438 jc NEAR $L$dec_no_key_aliasing 439 cmp r15,768 440 jnc NEAR $L$dec_no_key_aliasing 441 sub rsp,r15 442$L$dec_no_key_aliasing: 443 444 vmovdqu xmm7,XMMWORD[80+rcx] 445 mov r14,rcx 446 vmovdqu xmm4,XMMWORD[64+rcx] 447 448 449 450 451 452 453 454 lea r15,[((-192))+r8*1+rcx] 455 456 vmovdqu xmm5,XMMWORD[48+rcx] 457 shr r8,4 458 xor rax,rax 459 vmovdqu xmm6,XMMWORD[32+rcx] 460 vpshufb xmm7,xmm7,xmm0 461 vmovdqu xmm2,XMMWORD[16+rcx] 462 vpshufb xmm4,xmm4,xmm0 463 vmovdqu xmm3,XMMWORD[rcx] 464 vpshufb xmm5,xmm5,xmm0 465 vmovdqu XMMWORD[48+rsp],xmm4 466 vpshufb xmm6,xmm6,xmm0 467 vmovdqu XMMWORD[64+rsp],xmm5 468 vpshufb xmm2,xmm2,xmm0 469 vmovdqu XMMWORD[80+rsp],xmm6 470 vpshufb xmm3,xmm3,xmm0 471 vmovdqu XMMWORD[96+rsp],xmm2 472 vmovdqu XMMWORD[112+rsp],xmm3 473 474 call _aesni_ctr32_ghash_6x 475 476 mov r12,QWORD[64+rbp] 477 vmovups XMMWORD[(-96)+rdx],xmm9 478 vmovups XMMWORD[(-80)+rdx],xmm10 479 vmovups XMMWORD[(-64)+rdx],xmm11 480 vmovups XMMWORD[(-48)+rdx],xmm12 481 vmovups XMMWORD[(-32)+rdx],xmm13 482 vmovups XMMWORD[(-16)+rdx],xmm14 483 484 vpshufb xmm8,xmm8,XMMWORD[r11] 485 vmovdqu XMMWORD[r12],xmm8 486 487 vzeroupper 488 movaps xmm6,XMMWORD[((-208))+rbp] 489 movaps xmm7,XMMWORD[((-192))+rbp] 490 movaps xmm8,XMMWORD[((-176))+rbp] 491 movaps xmm9,XMMWORD[((-160))+rbp] 492 movaps xmm10,XMMWORD[((-144))+rbp] 493 movaps xmm11,XMMWORD[((-128))+rbp] 494 movaps xmm12,XMMWORD[((-112))+rbp] 495 movaps xmm13,XMMWORD[((-96))+rbp] 496 movaps xmm14,XMMWORD[((-80))+rbp] 497 movaps xmm15,XMMWORD[((-64))+rbp] 498 mov rdi,QWORD[16+rbp] 499 mov rsi,QWORD[24+rbp] 500 lea rsp,[((-40))+rbp] 501 502 pop r15 503 504 pop r14 505 506 pop r13 507 508 pop r12 509 510 pop rbx 511 512 pop rbp 513 514$L$gcm_dec_abort: 515 ret 516$L$SEH_end_aesni_gcm_decrypt_23: 517 518 519 520ALIGN 32 521_aesni_ctr32_6x: 522 523 vmovdqu xmm4,XMMWORD[((0-128))+r9] 524 vmovdqu xmm2,XMMWORD[32+r11] 525 lea r13,[((-1))+r10] 526 vmovups xmm15,XMMWORD[((16-128))+r9] 527 lea r12,[((32-128))+r9] 528 vpxor xmm9,xmm1,xmm4 529 add ebx,100663296 530 jc NEAR $L$handle_ctr32_2 531 vpaddb xmm10,xmm1,xmm2 532 vpaddb xmm11,xmm10,xmm2 533 vpxor xmm10,xmm10,xmm4 534 vpaddb xmm12,xmm11,xmm2 535 vpxor xmm11,xmm11,xmm4 536 vpaddb xmm13,xmm12,xmm2 537 vpxor xmm12,xmm12,xmm4 538 vpaddb xmm14,xmm13,xmm2 539 vpxor xmm13,xmm13,xmm4 540 vpaddb xmm1,xmm14,xmm2 541 vpxor xmm14,xmm14,xmm4 542 jmp NEAR $L$oop_ctr32 543 544ALIGN 16 545$L$oop_ctr32: 546 vaesenc xmm9,xmm9,xmm15 547 vaesenc xmm10,xmm10,xmm15 548 vaesenc xmm11,xmm11,xmm15 549 vaesenc xmm12,xmm12,xmm15 550 vaesenc xmm13,xmm13,xmm15 551 vaesenc xmm14,xmm14,xmm15 552 vmovups xmm15,XMMWORD[r12] 553 lea r12,[16+r12] 554 dec r13d 555 jnz NEAR $L$oop_ctr32 556 557 vmovdqu xmm3,XMMWORD[r12] 558 vaesenc xmm9,xmm9,xmm15 559 vpxor xmm4,xmm3,XMMWORD[rcx] 560 vaesenc xmm10,xmm10,xmm15 561 vpxor xmm5,xmm3,XMMWORD[16+rcx] 562 vaesenc xmm11,xmm11,xmm15 563 vpxor xmm6,xmm3,XMMWORD[32+rcx] 564 vaesenc xmm12,xmm12,xmm15 565 vpxor xmm8,xmm3,XMMWORD[48+rcx] 566 vaesenc xmm13,xmm13,xmm15 567 vpxor xmm2,xmm3,XMMWORD[64+rcx] 568 vaesenc xmm14,xmm14,xmm15 569 vpxor xmm3,xmm3,XMMWORD[80+rcx] 570 lea rcx,[96+rcx] 571 572 vaesenclast xmm9,xmm9,xmm4 573 vaesenclast xmm10,xmm10,xmm5 574 vaesenclast xmm11,xmm11,xmm6 575 vaesenclast xmm12,xmm12,xmm8 576 vaesenclast xmm13,xmm13,xmm2 577 vaesenclast xmm14,xmm14,xmm3 578 vmovups XMMWORD[rdx],xmm9 579 vmovups XMMWORD[16+rdx],xmm10 580 vmovups XMMWORD[32+rdx],xmm11 581 vmovups XMMWORD[48+rdx],xmm12 582 vmovups XMMWORD[64+rdx],xmm13 583 vmovups XMMWORD[80+rdx],xmm14 584 lea rdx,[96+rdx] 585 586 ret 587ALIGN 32 588$L$handle_ctr32_2: 589 vpshufb xmm6,xmm1,xmm0 590 vmovdqu xmm5,XMMWORD[48+r11] 591 vpaddd xmm10,xmm6,XMMWORD[64+r11] 592 vpaddd xmm11,xmm6,xmm5 593 vpaddd xmm12,xmm10,xmm5 594 vpshufb xmm10,xmm10,xmm0 595 vpaddd xmm13,xmm11,xmm5 596 vpshufb xmm11,xmm11,xmm0 597 vpxor xmm10,xmm10,xmm4 598 vpaddd xmm14,xmm12,xmm5 599 vpshufb xmm12,xmm12,xmm0 600 vpxor xmm11,xmm11,xmm4 601 vpaddd xmm1,xmm13,xmm5 602 vpshufb xmm13,xmm13,xmm0 603 vpxor xmm12,xmm12,xmm4 604 vpshufb xmm14,xmm14,xmm0 605 vpxor xmm13,xmm13,xmm4 606 vpshufb xmm1,xmm1,xmm0 607 vpxor xmm14,xmm14,xmm4 608 jmp NEAR $L$oop_ctr32 609 610 611 612global aesni_gcm_encrypt 613 614ALIGN 32 615aesni_gcm_encrypt: 616 617$L$SEH_begin_aesni_gcm_encrypt_1: 618_CET_ENDBR 619%ifdef BORINGSSL_DISPATCH_TEST 620EXTERN BORINGSSL_function_hit 621 mov BYTE[((BORINGSSL_function_hit+2))],1 622%endif 623 xor rax,rax 624 625 626 627 628 cmp r8,0x60*3 629 jb NEAR $L$gcm_enc_abort 630 631 push rbp 632 633$L$SEH_prologue_aesni_gcm_encrypt_2: 634 mov rbp,rsp 635 636 push rbx 637 638$L$SEH_prologue_aesni_gcm_encrypt_3: 639 push r12 640 641$L$SEH_prologue_aesni_gcm_encrypt_4: 642 push r13 643 644$L$SEH_prologue_aesni_gcm_encrypt_5: 645 push r14 646 647$L$SEH_prologue_aesni_gcm_encrypt_6: 648 push r15 649 650$L$SEH_prologue_aesni_gcm_encrypt_7: 651 lea rsp,[((-168))+rsp] 652$L$SEH_prologue_aesni_gcm_encrypt_8: 653$L$SEH_prologue_aesni_gcm_encrypt_9: 654 655 656 657 mov QWORD[16+rbp],rdi 658$L$SEH_prologue_aesni_gcm_encrypt_10: 659 mov QWORD[24+rbp],rsi 660$L$SEH_prologue_aesni_gcm_encrypt_11: 661 mov rdi,QWORD[48+rbp] 662 mov rsi,QWORD[56+rbp] 663 664 movaps XMMWORD[(-208)+rbp],xmm6 665$L$SEH_prologue_aesni_gcm_encrypt_12: 666 movaps XMMWORD[(-192)+rbp],xmm7 667$L$SEH_prologue_aesni_gcm_encrypt_13: 668 movaps XMMWORD[(-176)+rbp],xmm8 669$L$SEH_prologue_aesni_gcm_encrypt_14: 670 movaps XMMWORD[(-160)+rbp],xmm9 671$L$SEH_prologue_aesni_gcm_encrypt_15: 672 movaps XMMWORD[(-144)+rbp],xmm10 673$L$SEH_prologue_aesni_gcm_encrypt_16: 674 movaps XMMWORD[(-128)+rbp],xmm11 675$L$SEH_prologue_aesni_gcm_encrypt_17: 676 movaps XMMWORD[(-112)+rbp],xmm12 677$L$SEH_prologue_aesni_gcm_encrypt_18: 678 movaps XMMWORD[(-96)+rbp],xmm13 679$L$SEH_prologue_aesni_gcm_encrypt_19: 680 movaps XMMWORD[(-80)+rbp],xmm14 681$L$SEH_prologue_aesni_gcm_encrypt_20: 682 movaps XMMWORD[(-64)+rbp],xmm15 683$L$SEH_prologue_aesni_gcm_encrypt_21: 684$L$SEH_endprologue_aesni_gcm_encrypt_22: 685 vzeroupper 686 687 vmovdqu xmm1,XMMWORD[rdi] 688 add rsp,-128 689 mov ebx,DWORD[12+rdi] 690 lea r11,[$L$bswap_mask] 691 lea r14,[((-128))+r9] 692 mov r15,0xf80 693 lea r9,[128+r9] 694 vmovdqu xmm0,XMMWORD[r11] 695 and rsp,-128 696 mov r10d,DWORD[((240-128))+r9] 697 698 and r14,r15 699 and r15,rsp 700 sub r15,r14 701 jc NEAR $L$enc_no_key_aliasing 702 cmp r15,768 703 jnc NEAR $L$enc_no_key_aliasing 704 sub rsp,r15 705$L$enc_no_key_aliasing: 706 707 mov r14,rdx 708 709 710 711 712 713 714 715 716 lea r15,[((-192))+r8*1+rdx] 717 718 shr r8,4 719 720 call _aesni_ctr32_6x 721 vpshufb xmm8,xmm9,xmm0 722 vpshufb xmm2,xmm10,xmm0 723 vmovdqu XMMWORD[112+rsp],xmm8 724 vpshufb xmm4,xmm11,xmm0 725 vmovdqu XMMWORD[96+rsp],xmm2 726 vpshufb xmm5,xmm12,xmm0 727 vmovdqu XMMWORD[80+rsp],xmm4 728 vpshufb xmm6,xmm13,xmm0 729 vmovdqu XMMWORD[64+rsp],xmm5 730 vpshufb xmm7,xmm14,xmm0 731 vmovdqu XMMWORD[48+rsp],xmm6 732 733 call _aesni_ctr32_6x 734 735 mov r12,QWORD[64+rbp] 736 lea rsi,[32+rsi] 737 vmovdqu xmm8,XMMWORD[r12] 738 sub r8,12 739 mov rax,0x60*2 740 vpshufb xmm8,xmm8,xmm0 741 742 call _aesni_ctr32_ghash_6x 743 vmovdqu xmm7,XMMWORD[32+rsp] 744 vmovdqu xmm0,XMMWORD[r11] 745 vmovdqu xmm3,XMMWORD[((0-32))+rsi] 746 vpunpckhqdq xmm1,xmm7,xmm7 747 vmovdqu xmm15,XMMWORD[((32-32))+rsi] 748 vmovups XMMWORD[(-96)+rdx],xmm9 749 vpshufb xmm9,xmm9,xmm0 750 vpxor xmm1,xmm1,xmm7 751 vmovups XMMWORD[(-80)+rdx],xmm10 752 vpshufb xmm10,xmm10,xmm0 753 vmovups XMMWORD[(-64)+rdx],xmm11 754 vpshufb xmm11,xmm11,xmm0 755 vmovups XMMWORD[(-48)+rdx],xmm12 756 vpshufb xmm12,xmm12,xmm0 757 vmovups XMMWORD[(-32)+rdx],xmm13 758 vpshufb xmm13,xmm13,xmm0 759 vmovups XMMWORD[(-16)+rdx],xmm14 760 vpshufb xmm14,xmm14,xmm0 761 vmovdqu XMMWORD[16+rsp],xmm9 762 vmovdqu xmm6,XMMWORD[48+rsp] 763 vmovdqu xmm0,XMMWORD[((16-32))+rsi] 764 vpunpckhqdq xmm2,xmm6,xmm6 765 vpclmulqdq xmm5,xmm7,xmm3,0x00 766 vpxor xmm2,xmm2,xmm6 767 vpclmulqdq xmm7,xmm7,xmm3,0x11 768 vpclmulqdq xmm1,xmm1,xmm15,0x00 769 770 vmovdqu xmm9,XMMWORD[64+rsp] 771 vpclmulqdq xmm4,xmm6,xmm0,0x00 772 vmovdqu xmm3,XMMWORD[((48-32))+rsi] 773 vpxor xmm4,xmm4,xmm5 774 vpunpckhqdq xmm5,xmm9,xmm9 775 vpclmulqdq xmm6,xmm6,xmm0,0x11 776 vpxor xmm5,xmm5,xmm9 777 vpxor xmm6,xmm6,xmm7 778 vpclmulqdq xmm2,xmm2,xmm15,0x10 779 vmovdqu xmm15,XMMWORD[((80-32))+rsi] 780 vpxor xmm2,xmm2,xmm1 781 782 vmovdqu xmm1,XMMWORD[80+rsp] 783 vpclmulqdq xmm7,xmm9,xmm3,0x00 784 vmovdqu xmm0,XMMWORD[((64-32))+rsi] 785 vpxor xmm7,xmm7,xmm4 786 vpunpckhqdq xmm4,xmm1,xmm1 787 vpclmulqdq xmm9,xmm9,xmm3,0x11 788 vpxor xmm4,xmm4,xmm1 789 vpxor xmm9,xmm9,xmm6 790 vpclmulqdq xmm5,xmm5,xmm15,0x00 791 vpxor xmm5,xmm5,xmm2 792 793 vmovdqu xmm2,XMMWORD[96+rsp] 794 vpclmulqdq xmm6,xmm1,xmm0,0x00 795 vmovdqu xmm3,XMMWORD[((96-32))+rsi] 796 vpxor xmm6,xmm6,xmm7 797 vpunpckhqdq xmm7,xmm2,xmm2 798 vpclmulqdq xmm1,xmm1,xmm0,0x11 799 vpxor xmm7,xmm7,xmm2 800 vpxor xmm1,xmm1,xmm9 801 vpclmulqdq xmm4,xmm4,xmm15,0x10 802 vmovdqu xmm15,XMMWORD[((128-32))+rsi] 803 vpxor xmm4,xmm4,xmm5 804 805 vpxor xmm8,xmm8,XMMWORD[112+rsp] 806 vpclmulqdq xmm5,xmm2,xmm3,0x00 807 vmovdqu xmm0,XMMWORD[((112-32))+rsi] 808 vpunpckhqdq xmm9,xmm8,xmm8 809 vpxor xmm5,xmm5,xmm6 810 vpclmulqdq xmm2,xmm2,xmm3,0x11 811 vpxor xmm9,xmm9,xmm8 812 vpxor xmm2,xmm2,xmm1 813 vpclmulqdq xmm7,xmm7,xmm15,0x00 814 vpxor xmm4,xmm7,xmm4 815 816 vpclmulqdq xmm6,xmm8,xmm0,0x00 817 vmovdqu xmm3,XMMWORD[((0-32))+rsi] 818 vpunpckhqdq xmm1,xmm14,xmm14 819 vpclmulqdq xmm8,xmm8,xmm0,0x11 820 vpxor xmm1,xmm1,xmm14 821 vpxor xmm5,xmm6,xmm5 822 vpclmulqdq xmm9,xmm9,xmm15,0x10 823 vmovdqu xmm15,XMMWORD[((32-32))+rsi] 824 vpxor xmm7,xmm8,xmm2 825 vpxor xmm6,xmm9,xmm4 826 827 vmovdqu xmm0,XMMWORD[((16-32))+rsi] 828 vpxor xmm9,xmm7,xmm5 829 vpclmulqdq xmm4,xmm14,xmm3,0x00 830 vpxor xmm6,xmm6,xmm9 831 vpunpckhqdq xmm2,xmm13,xmm13 832 vpclmulqdq xmm14,xmm14,xmm3,0x11 833 vpxor xmm2,xmm2,xmm13 834 vpslldq xmm9,xmm6,8 835 vpclmulqdq xmm1,xmm1,xmm15,0x00 836 vpxor xmm8,xmm5,xmm9 837 vpsrldq xmm6,xmm6,8 838 vpxor xmm7,xmm7,xmm6 839 840 vpclmulqdq xmm5,xmm13,xmm0,0x00 841 vmovdqu xmm3,XMMWORD[((48-32))+rsi] 842 vpxor xmm5,xmm5,xmm4 843 vpunpckhqdq xmm9,xmm12,xmm12 844 vpclmulqdq xmm13,xmm13,xmm0,0x11 845 vpxor xmm9,xmm9,xmm12 846 vpxor xmm13,xmm13,xmm14 847 vpalignr xmm14,xmm8,xmm8,8 848 vpclmulqdq xmm2,xmm2,xmm15,0x10 849 vmovdqu xmm15,XMMWORD[((80-32))+rsi] 850 vpxor xmm2,xmm2,xmm1 851 852 vpclmulqdq xmm4,xmm12,xmm3,0x00 853 vmovdqu xmm0,XMMWORD[((64-32))+rsi] 854 vpxor xmm4,xmm4,xmm5 855 vpunpckhqdq xmm1,xmm11,xmm11 856 vpclmulqdq xmm12,xmm12,xmm3,0x11 857 vpxor xmm1,xmm1,xmm11 858 vpxor xmm12,xmm12,xmm13 859 vxorps xmm7,xmm7,XMMWORD[16+rsp] 860 vpclmulqdq xmm9,xmm9,xmm15,0x00 861 vpxor xmm9,xmm9,xmm2 862 863 vpclmulqdq xmm8,xmm8,XMMWORD[16+r11],0x10 864 vxorps xmm8,xmm8,xmm14 865 866 vpclmulqdq xmm5,xmm11,xmm0,0x00 867 vmovdqu xmm3,XMMWORD[((96-32))+rsi] 868 vpxor xmm5,xmm5,xmm4 869 vpunpckhqdq xmm2,xmm10,xmm10 870 vpclmulqdq xmm11,xmm11,xmm0,0x11 871 vpxor xmm2,xmm2,xmm10 872 vpalignr xmm14,xmm8,xmm8,8 873 vpxor xmm11,xmm11,xmm12 874 vpclmulqdq xmm1,xmm1,xmm15,0x10 875 vmovdqu xmm15,XMMWORD[((128-32))+rsi] 876 vpxor xmm1,xmm1,xmm9 877 878 vxorps xmm14,xmm14,xmm7 879 vpclmulqdq xmm8,xmm8,XMMWORD[16+r11],0x10 880 vxorps xmm8,xmm8,xmm14 881 882 vpclmulqdq xmm4,xmm10,xmm3,0x00 883 vmovdqu xmm0,XMMWORD[((112-32))+rsi] 884 vpxor xmm4,xmm4,xmm5 885 vpunpckhqdq xmm9,xmm8,xmm8 886 vpclmulqdq xmm10,xmm10,xmm3,0x11 887 vpxor xmm9,xmm9,xmm8 888 vpxor xmm10,xmm10,xmm11 889 vpclmulqdq xmm2,xmm2,xmm15,0x00 890 vpxor xmm2,xmm2,xmm1 891 892 vpclmulqdq xmm5,xmm8,xmm0,0x00 893 vpclmulqdq xmm7,xmm8,xmm0,0x11 894 vpxor xmm5,xmm5,xmm4 895 vpclmulqdq xmm6,xmm9,xmm15,0x10 896 vpxor xmm7,xmm7,xmm10 897 vpxor xmm6,xmm6,xmm2 898 899 vpxor xmm4,xmm7,xmm5 900 vpxor xmm6,xmm6,xmm4 901 vpslldq xmm1,xmm6,8 902 vmovdqu xmm3,XMMWORD[16+r11] 903 vpsrldq xmm6,xmm6,8 904 vpxor xmm8,xmm5,xmm1 905 vpxor xmm7,xmm7,xmm6 906 907 vpalignr xmm2,xmm8,xmm8,8 908 vpclmulqdq xmm8,xmm8,xmm3,0x10 909 vpxor xmm8,xmm8,xmm2 910 911 vpalignr xmm2,xmm8,xmm8,8 912 vpclmulqdq xmm8,xmm8,xmm3,0x10 913 vpxor xmm2,xmm2,xmm7 914 vpxor xmm8,xmm8,xmm2 915 mov r12,QWORD[64+rbp] 916 vpshufb xmm8,xmm8,XMMWORD[r11] 917 vmovdqu XMMWORD[r12],xmm8 918 919 vzeroupper 920 movaps xmm6,XMMWORD[((-208))+rbp] 921 movaps xmm7,XMMWORD[((-192))+rbp] 922 movaps xmm8,XMMWORD[((-176))+rbp] 923 movaps xmm9,XMMWORD[((-160))+rbp] 924 movaps xmm10,XMMWORD[((-144))+rbp] 925 movaps xmm11,XMMWORD[((-128))+rbp] 926 movaps xmm12,XMMWORD[((-112))+rbp] 927 movaps xmm13,XMMWORD[((-96))+rbp] 928 movaps xmm14,XMMWORD[((-80))+rbp] 929 movaps xmm15,XMMWORD[((-64))+rbp] 930 mov rdi,QWORD[16+rbp] 931 mov rsi,QWORD[24+rbp] 932 lea rsp,[((-40))+rbp] 933 934 pop r15 935 936 pop r14 937 938 pop r13 939 940 pop r12 941 942 pop rbx 943 944 pop rbp 945 946$L$gcm_enc_abort: 947 ret 948$L$SEH_end_aesni_gcm_encrypt_23: 949 950 951section .rdata rdata align=8 952ALIGN 64 953$L$bswap_mask: 954 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 955$L$poly: 956 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xc2 957$L$one_msb: 958 DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 959$L$two_lsb: 960 DB 2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 961$L$one_lsb: 962 DB 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 963 DB 65,69,83,45,78,73,32,71,67,77,32,109,111,100,117,108 964 DB 101,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82 965 DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 966 DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 967ALIGN 64 968section .text 969 970section .pdata rdata align=4 971ALIGN 4 972 DD $L$SEH_begin_aesni_gcm_decrypt_1 wrt ..imagebase 973 DD $L$SEH_end_aesni_gcm_decrypt_23 wrt ..imagebase 974 DD $L$SEH_info_aesni_gcm_decrypt_0 wrt ..imagebase 975 976 DD $L$SEH_begin_aesni_gcm_encrypt_1 wrt ..imagebase 977 DD $L$SEH_end_aesni_gcm_encrypt_23 wrt ..imagebase 978 DD $L$SEH_info_aesni_gcm_encrypt_0 wrt ..imagebase 979 980 981section .xdata rdata align=8 982ALIGN 4 983$L$SEH_info_aesni_gcm_decrypt_0: 984 DB 1 985 DB $L$SEH_endprologue_aesni_gcm_decrypt_22-$L$SEH_begin_aesni_gcm_decrypt_1 986 DB 33 987 DB 213 988 DB $L$SEH_prologue_aesni_gcm_decrypt_21-$L$SEH_begin_aesni_gcm_decrypt_1 989 DB 248 990 DW 9 991 DB $L$SEH_prologue_aesni_gcm_decrypt_20-$L$SEH_begin_aesni_gcm_decrypt_1 992 DB 232 993 DW 8 994 DB $L$SEH_prologue_aesni_gcm_decrypt_19-$L$SEH_begin_aesni_gcm_decrypt_1 995 DB 216 996 DW 7 997 DB $L$SEH_prologue_aesni_gcm_decrypt_18-$L$SEH_begin_aesni_gcm_decrypt_1 998 DB 200 999 DW 6 1000 DB $L$SEH_prologue_aesni_gcm_decrypt_17-$L$SEH_begin_aesni_gcm_decrypt_1 1001 DB 184 1002 DW 5 1003 DB $L$SEH_prologue_aesni_gcm_decrypt_16-$L$SEH_begin_aesni_gcm_decrypt_1 1004 DB 168 1005 DW 4 1006 DB $L$SEH_prologue_aesni_gcm_decrypt_15-$L$SEH_begin_aesni_gcm_decrypt_1 1007 DB 152 1008 DW 3 1009 DB $L$SEH_prologue_aesni_gcm_decrypt_14-$L$SEH_begin_aesni_gcm_decrypt_1 1010 DB 136 1011 DW 2 1012 DB $L$SEH_prologue_aesni_gcm_decrypt_13-$L$SEH_begin_aesni_gcm_decrypt_1 1013 DB 120 1014 DW 1 1015 DB $L$SEH_prologue_aesni_gcm_decrypt_12-$L$SEH_begin_aesni_gcm_decrypt_1 1016 DB 104 1017 DW 0 1018 DB $L$SEH_prologue_aesni_gcm_decrypt_11-$L$SEH_begin_aesni_gcm_decrypt_1 1019 DB 100 1020 DW 29 1021 DB $L$SEH_prologue_aesni_gcm_decrypt_10-$L$SEH_begin_aesni_gcm_decrypt_1 1022 DB 116 1023 DW 28 1024 DB $L$SEH_prologue_aesni_gcm_decrypt_9-$L$SEH_begin_aesni_gcm_decrypt_1 1025 DB 3 1026 DB $L$SEH_prologue_aesni_gcm_decrypt_8-$L$SEH_begin_aesni_gcm_decrypt_1 1027 DB 1 1028 DW 21 1029 DB $L$SEH_prologue_aesni_gcm_decrypt_7-$L$SEH_begin_aesni_gcm_decrypt_1 1030 DB 240 1031 DB $L$SEH_prologue_aesni_gcm_decrypt_6-$L$SEH_begin_aesni_gcm_decrypt_1 1032 DB 224 1033 DB $L$SEH_prologue_aesni_gcm_decrypt_5-$L$SEH_begin_aesni_gcm_decrypt_1 1034 DB 208 1035 DB $L$SEH_prologue_aesni_gcm_decrypt_4-$L$SEH_begin_aesni_gcm_decrypt_1 1036 DB 192 1037 DB $L$SEH_prologue_aesni_gcm_decrypt_3-$L$SEH_begin_aesni_gcm_decrypt_1 1038 DB 48 1039 DB $L$SEH_prologue_aesni_gcm_decrypt_2-$L$SEH_begin_aesni_gcm_decrypt_1 1040 DB 80 1041 1042 DW 0 1043$L$SEH_info_aesni_gcm_encrypt_0: 1044 DB 1 1045 DB $L$SEH_endprologue_aesni_gcm_encrypt_22-$L$SEH_begin_aesni_gcm_encrypt_1 1046 DB 33 1047 DB 213 1048 DB $L$SEH_prologue_aesni_gcm_encrypt_21-$L$SEH_begin_aesni_gcm_encrypt_1 1049 DB 248 1050 DW 9 1051 DB $L$SEH_prologue_aesni_gcm_encrypt_20-$L$SEH_begin_aesni_gcm_encrypt_1 1052 DB 232 1053 DW 8 1054 DB $L$SEH_prologue_aesni_gcm_encrypt_19-$L$SEH_begin_aesni_gcm_encrypt_1 1055 DB 216 1056 DW 7 1057 DB $L$SEH_prologue_aesni_gcm_encrypt_18-$L$SEH_begin_aesni_gcm_encrypt_1 1058 DB 200 1059 DW 6 1060 DB $L$SEH_prologue_aesni_gcm_encrypt_17-$L$SEH_begin_aesni_gcm_encrypt_1 1061 DB 184 1062 DW 5 1063 DB $L$SEH_prologue_aesni_gcm_encrypt_16-$L$SEH_begin_aesni_gcm_encrypt_1 1064 DB 168 1065 DW 4 1066 DB $L$SEH_prologue_aesni_gcm_encrypt_15-$L$SEH_begin_aesni_gcm_encrypt_1 1067 DB 152 1068 DW 3 1069 DB $L$SEH_prologue_aesni_gcm_encrypt_14-$L$SEH_begin_aesni_gcm_encrypt_1 1070 DB 136 1071 DW 2 1072 DB $L$SEH_prologue_aesni_gcm_encrypt_13-$L$SEH_begin_aesni_gcm_encrypt_1 1073 DB 120 1074 DW 1 1075 DB $L$SEH_prologue_aesni_gcm_encrypt_12-$L$SEH_begin_aesni_gcm_encrypt_1 1076 DB 104 1077 DW 0 1078 DB $L$SEH_prologue_aesni_gcm_encrypt_11-$L$SEH_begin_aesni_gcm_encrypt_1 1079 DB 100 1080 DW 29 1081 DB $L$SEH_prologue_aesni_gcm_encrypt_10-$L$SEH_begin_aesni_gcm_encrypt_1 1082 DB 116 1083 DW 28 1084 DB $L$SEH_prologue_aesni_gcm_encrypt_9-$L$SEH_begin_aesni_gcm_encrypt_1 1085 DB 3 1086 DB $L$SEH_prologue_aesni_gcm_encrypt_8-$L$SEH_begin_aesni_gcm_encrypt_1 1087 DB 1 1088 DW 21 1089 DB $L$SEH_prologue_aesni_gcm_encrypt_7-$L$SEH_begin_aesni_gcm_encrypt_1 1090 DB 240 1091 DB $L$SEH_prologue_aesni_gcm_encrypt_6-$L$SEH_begin_aesni_gcm_encrypt_1 1092 DB 224 1093 DB $L$SEH_prologue_aesni_gcm_encrypt_5-$L$SEH_begin_aesni_gcm_encrypt_1 1094 DB 208 1095 DB $L$SEH_prologue_aesni_gcm_encrypt_4-$L$SEH_begin_aesni_gcm_encrypt_1 1096 DB 192 1097 DB $L$SEH_prologue_aesni_gcm_encrypt_3-$L$SEH_begin_aesni_gcm_encrypt_1 1098 DB 48 1099 DB $L$SEH_prologue_aesni_gcm_encrypt_2-$L$SEH_begin_aesni_gcm_encrypt_1 1100 DB 80 1101 1102 DW 0 1103%else 1104; Work around https://bugzilla.nasm.us/show_bug.cgi?id=3392738 1105ret 1106%endif 1107