blake3_avx2_x86-64_windows_gnu.S (66736B)
1 .intel_syntax noprefix 2 .global _blake3_hash_many_avx2 3 .global blake3_hash_many_avx2 4 .section .text 5 .p2align 6 6 _blake3_hash_many_avx2: 7 blake3_hash_many_avx2: 8 push r15 9 push r14 10 push r13 11 push r12 12 push rsi 13 push rdi 14 push rbx 15 push rbp 16 mov rbp, rsp 17 sub rsp, 880 18 and rsp, 0xFFFFFFFFFFFFFFC0 19 vmovdqa xmmword ptr [rsp+0x2D0], xmm6 20 vmovdqa xmmword ptr [rsp+0x2E0], xmm7 21 vmovdqa xmmword ptr [rsp+0x2F0], xmm8 22 vmovdqa xmmword ptr [rsp+0x300], xmm9 23 vmovdqa xmmword ptr [rsp+0x310], xmm10 24 vmovdqa xmmword ptr [rsp+0x320], xmm11 25 vmovdqa xmmword ptr [rsp+0x330], xmm12 26 vmovdqa xmmword ptr [rsp+0x340], xmm13 27 vmovdqa xmmword ptr [rsp+0x350], xmm14 28 vmovdqa xmmword ptr [rsp+0x360], xmm15 29 mov rdi, rcx 30 mov rsi, rdx 31 mov rdx, r8 32 mov rcx, r9 33 mov r8, qword ptr [rbp+0x68] 34 movzx r9, byte ptr [rbp+0x70] 35 neg r9d 36 vmovd xmm0, r9d 37 vpbroadcastd ymm0, xmm0 38 vmovdqa ymmword ptr [rsp+0x260], ymm0 39 vpand ymm1, ymm0, ymmword ptr [ADD0+rip] 40 vpand ymm2, ymm0, ymmword ptr [ADD1+rip] 41 vmovdqa ymmword ptr [rsp+0x2A0], ymm2 42 vmovd xmm2, r8d 43 vpbroadcastd ymm2, xmm2 44 vpaddd ymm2, ymm2, ymm1 45 vmovdqa ymmword ptr [rsp+0x220], ymm2 46 vpxor ymm1, ymm1, ymmword ptr [CMP_MSB_MASK+rip] 47 vpxor ymm2, ymm2, ymmword ptr [CMP_MSB_MASK+rip] 48 vpcmpgtd ymm2, ymm1, ymm2 49 shr r8, 32 50 vmovd xmm3, r8d 51 vpbroadcastd ymm3, xmm3 52 vpsubd ymm3, ymm3, ymm2 53 vmovdqa ymmword ptr [rsp+0x240], ymm3 54 shl rdx, 6 55 mov qword ptr [rsp+0x2C0], rdx 56 cmp rsi, 8 57 jc 3f 58 2: 59 vpbroadcastd ymm0, dword ptr [rcx] 60 vpbroadcastd ymm1, dword ptr [rcx+0x4] 61 vpbroadcastd ymm2, dword ptr [rcx+0x8] 62 vpbroadcastd ymm3, dword ptr [rcx+0xC] 63 vpbroadcastd ymm4, dword ptr [rcx+0x10] 64 vpbroadcastd ymm5, dword ptr [rcx+0x14] 65 vpbroadcastd ymm6, dword ptr [rcx+0x18] 66 vpbroadcastd ymm7, dword ptr [rcx+0x1C] 67 mov r8, qword ptr [rdi] 68 mov r9, qword ptr [rdi+0x8] 69 mov r10, qword ptr [rdi+0x10] 70 mov r11, qword ptr [rdi+0x18] 71 mov r12, qword ptr [rdi+0x20] 72 mov r13, qword ptr [rdi+0x28] 73 mov r14, qword ptr [rdi+0x30] 74 mov r15, qword ptr [rdi+0x38] 75 movzx eax, byte ptr [rbp+0x78] 76 movzx ebx, byte ptr [rbp+0x80] 77 or eax, ebx 78 xor edx, edx 79 .p2align 5 80 9: 81 movzx ebx, byte ptr [rbp+0x88] 82 or ebx, eax 83 add rdx, 64 84 cmp rdx, qword ptr [rsp+0x2C0] 85 cmove eax, ebx 86 mov dword ptr [rsp+0x200], eax 87 vmovups xmm8, xmmword ptr [r8+rdx-0x40] 88 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x40], 0x01 89 vmovups xmm9, xmmword ptr [r9+rdx-0x40] 90 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x40], 0x01 91 vunpcklpd ymm12, ymm8, ymm9 92 vunpckhpd ymm13, ymm8, ymm9 93 vmovups xmm10, xmmword ptr [r10+rdx-0x40] 94 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x40], 0x01 95 vmovups xmm11, xmmword ptr [r11+rdx-0x40] 96 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x40], 0x01 97 vunpcklpd ymm14, ymm10, ymm11 98 vunpckhpd ymm15, ymm10, ymm11 99 vshufps ymm8, ymm12, ymm14, 136 100 vmovaps ymmword ptr [rsp], ymm8 101 vshufps ymm9, ymm12, ymm14, 221 102 vmovaps ymmword ptr [rsp+0x20], ymm9 103 vshufps ymm10, ymm13, ymm15, 136 104 vmovaps ymmword ptr [rsp+0x40], ymm10 105 vshufps ymm11, ymm13, ymm15, 221 106 vmovaps ymmword ptr [rsp+0x60], ymm11 107 vmovups xmm8, xmmword ptr [r8+rdx-0x30] 108 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x30], 0x01 109 vmovups xmm9, xmmword ptr [r9+rdx-0x30] 110 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x30], 0x01 111 vunpcklpd ymm12, ymm8, ymm9 112 vunpckhpd ymm13, ymm8, ymm9 113 vmovups xmm10, xmmword ptr [r10+rdx-0x30] 114 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x30], 0x01 115 vmovups xmm11, xmmword ptr [r11+rdx-0x30] 116 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x30], 0x01 117 vunpcklpd ymm14, ymm10, ymm11 118 vunpckhpd ymm15, ymm10, ymm11 119 vshufps ymm8, ymm12, ymm14, 136 120 vmovaps ymmword ptr [rsp+0x80], ymm8 121 vshufps ymm9, ymm12, ymm14, 221 122 vmovaps ymmword ptr [rsp+0xA0], ymm9 123 vshufps ymm10, ymm13, ymm15, 136 124 vmovaps ymmword ptr [rsp+0xC0], ymm10 125 vshufps ymm11, ymm13, ymm15, 221 126 vmovaps ymmword ptr [rsp+0xE0], ymm11 127 vmovups xmm8, xmmword ptr [r8+rdx-0x20] 128 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x20], 0x01 129 vmovups xmm9, xmmword ptr [r9+rdx-0x20] 130 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x20], 0x01 131 vunpcklpd ymm12, ymm8, ymm9 132 vunpckhpd ymm13, ymm8, ymm9 133 vmovups xmm10, xmmword ptr [r10+rdx-0x20] 134 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x20], 0x01 135 vmovups xmm11, xmmword ptr [r11+rdx-0x20] 136 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x20], 0x01 137 vunpcklpd ymm14, ymm10, ymm11 138 vunpckhpd ymm15, ymm10, ymm11 139 vshufps ymm8, ymm12, ymm14, 136 140 vmovaps ymmword ptr [rsp+0x100], ymm8 141 vshufps ymm9, ymm12, ymm14, 221 142 vmovaps ymmword ptr [rsp+0x120], ymm9 143 vshufps ymm10, ymm13, ymm15, 136 144 vmovaps ymmword ptr [rsp+0x140], ymm10 145 vshufps ymm11, ymm13, ymm15, 221 146 vmovaps ymmword ptr [rsp+0x160], ymm11 147 vmovups xmm8, xmmword ptr [r8+rdx-0x10] 148 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-0x10], 0x01 149 vmovups xmm9, xmmword ptr [r9+rdx-0x10] 150 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-0x10], 0x01 151 vunpcklpd ymm12, ymm8, ymm9 152 vunpckhpd ymm13, ymm8, ymm9 153 vmovups xmm10, xmmword ptr [r10+rdx-0x10] 154 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-0x10], 0x01 155 vmovups xmm11, xmmword ptr [r11+rdx-0x10] 156 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-0x10], 0x01 157 vunpcklpd ymm14, ymm10, ymm11 158 vunpckhpd ymm15, ymm10, ymm11 159 vshufps ymm8, ymm12, ymm14, 136 160 vmovaps ymmword ptr [rsp+0x180], ymm8 161 vshufps ymm9, ymm12, ymm14, 221 162 vmovaps ymmword ptr [rsp+0x1A0], ymm9 163 vshufps ymm10, ymm13, ymm15, 136 164 vmovaps ymmword ptr [rsp+0x1C0], ymm10 165 vshufps ymm11, ymm13, ymm15, 221 166 vmovaps ymmword ptr [rsp+0x1E0], ymm11 167 vpbroadcastd ymm15, dword ptr [rsp+0x200] 168 prefetcht0 [r8+rdx+0x80] 169 prefetcht0 [r12+rdx+0x80] 170 prefetcht0 [r9+rdx+0x80] 171 prefetcht0 [r13+rdx+0x80] 172 prefetcht0 [r10+rdx+0x80] 173 prefetcht0 [r14+rdx+0x80] 174 prefetcht0 [r11+rdx+0x80] 175 prefetcht0 [r15+rdx+0x80] 176 vpaddd ymm0, ymm0, ymmword ptr [rsp] 177 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40] 178 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x80] 179 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0] 180 vpaddd ymm0, ymm0, ymm4 181 vpaddd ymm1, ymm1, ymm5 182 vpaddd ymm2, ymm2, ymm6 183 vpaddd ymm3, ymm3, ymm7 184 vpxor ymm12, ymm0, ymmword ptr [rsp+0x220] 185 vpxor ymm13, ymm1, ymmword ptr [rsp+0x240] 186 vpxor ymm14, ymm2, ymmword ptr [BLAKE3_BLOCK_LEN+rip] 187 vpxor ymm15, ymm3, ymm15 188 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 189 vpshufb ymm12, ymm12, ymm8 190 vpshufb ymm13, ymm13, ymm8 191 vpshufb ymm14, ymm14, ymm8 192 vpshufb ymm15, ymm15, ymm8 193 vpaddd ymm8, ymm12, ymmword ptr [BLAKE3_IV_0+rip] 194 vpaddd ymm9, ymm13, ymmword ptr [BLAKE3_IV_1+rip] 195 vpaddd ymm10, ymm14, ymmword ptr [BLAKE3_IV_2+rip] 196 vpaddd ymm11, ymm15, ymmword ptr [BLAKE3_IV_3+rip] 197 vpxor ymm4, ymm4, ymm8 198 vpxor ymm5, ymm5, ymm9 199 vpxor ymm6, ymm6, ymm10 200 vpxor ymm7, ymm7, ymm11 201 vmovdqa ymmword ptr [rsp+0x200], ymm8 202 vpsrld ymm8, ymm4, 12 203 vpslld ymm4, ymm4, 20 204 vpor ymm4, ymm4, ymm8 205 vpsrld ymm8, ymm5, 12 206 vpslld ymm5, ymm5, 20 207 vpor ymm5, ymm5, ymm8 208 vpsrld ymm8, ymm6, 12 209 vpslld ymm6, ymm6, 20 210 vpor ymm6, ymm6, ymm8 211 vpsrld ymm8, ymm7, 12 212 vpslld ymm7, ymm7, 20 213 vpor ymm7, ymm7, ymm8 214 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x20] 215 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60] 216 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xA0] 217 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0] 218 vpaddd ymm0, ymm0, ymm4 219 vpaddd ymm1, ymm1, ymm5 220 vpaddd ymm2, ymm2, ymm6 221 vpaddd ymm3, ymm3, ymm7 222 vpxor ymm12, ymm12, ymm0 223 vpxor ymm13, ymm13, ymm1 224 vpxor ymm14, ymm14, ymm2 225 vpxor ymm15, ymm15, ymm3 226 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 227 vpshufb ymm12, ymm12, ymm8 228 vpshufb ymm13, ymm13, ymm8 229 vpshufb ymm14, ymm14, ymm8 230 vpshufb ymm15, ymm15, ymm8 231 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 232 vpaddd ymm9, ymm9, ymm13 233 vpaddd ymm10, ymm10, ymm14 234 vpaddd ymm11, ymm11, ymm15 235 vpxor ymm4, ymm4, ymm8 236 vpxor ymm5, ymm5, ymm9 237 vpxor ymm6, ymm6, ymm10 238 vpxor ymm7, ymm7, ymm11 239 vmovdqa ymmword ptr [rsp+0x200], ymm8 240 vpsrld ymm8, ymm4, 7 241 vpslld ymm4, ymm4, 25 242 vpor ymm4, ymm4, ymm8 243 vpsrld ymm8, ymm5, 7 244 vpslld ymm5, ymm5, 25 245 vpor ymm5, ymm5, ymm8 246 vpsrld ymm8, ymm6, 7 247 vpslld ymm6, ymm6, 25 248 vpor ymm6, ymm6, ymm8 249 vpsrld ymm8, ymm7, 7 250 vpslld ymm7, ymm7, 25 251 vpor ymm7, ymm7, ymm8 252 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x100] 253 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140] 254 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x180] 255 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0] 256 vpaddd ymm0, ymm0, ymm5 257 vpaddd ymm1, ymm1, ymm6 258 vpaddd ymm2, ymm2, ymm7 259 vpaddd ymm3, ymm3, ymm4 260 vpxor ymm15, ymm15, ymm0 261 vpxor ymm12, ymm12, ymm1 262 vpxor ymm13, ymm13, ymm2 263 vpxor ymm14, ymm14, ymm3 264 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 265 vpshufb ymm15, ymm15, ymm8 266 vpshufb ymm12, ymm12, ymm8 267 vpshufb ymm13, ymm13, ymm8 268 vpshufb ymm14, ymm14, ymm8 269 vpaddd ymm10, ymm10, ymm15 270 vpaddd ymm11, ymm11, ymm12 271 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 272 vpaddd ymm9, ymm9, ymm14 273 vpxor ymm5, ymm5, ymm10 274 vpxor ymm6, ymm6, ymm11 275 vpxor ymm7, ymm7, ymm8 276 vpxor ymm4, ymm4, ymm9 277 vmovdqa ymmword ptr [rsp+0x200], ymm8 278 vpsrld ymm8, ymm5, 12 279 vpslld ymm5, ymm5, 20 280 vpor ymm5, ymm5, ymm8 281 vpsrld ymm8, ymm6, 12 282 vpslld ymm6, ymm6, 20 283 vpor ymm6, ymm6, ymm8 284 vpsrld ymm8, ymm7, 12 285 vpslld ymm7, ymm7, 20 286 vpor ymm7, ymm7, ymm8 287 vpsrld ymm8, ymm4, 12 288 vpslld ymm4, ymm4, 20 289 vpor ymm4, ymm4, ymm8 290 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x120] 291 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160] 292 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1A0] 293 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0] 294 vpaddd ymm0, ymm0, ymm5 295 vpaddd ymm1, ymm1, ymm6 296 vpaddd ymm2, ymm2, ymm7 297 vpaddd ymm3, ymm3, ymm4 298 vpxor ymm15, ymm15, ymm0 299 vpxor ymm12, ymm12, ymm1 300 vpxor ymm13, ymm13, ymm2 301 vpxor ymm14, ymm14, ymm3 302 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 303 vpshufb ymm15, ymm15, ymm8 304 vpshufb ymm12, ymm12, ymm8 305 vpshufb ymm13, ymm13, ymm8 306 vpshufb ymm14, ymm14, ymm8 307 vpaddd ymm10, ymm10, ymm15 308 vpaddd ymm11, ymm11, ymm12 309 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 310 vpaddd ymm9, ymm9, ymm14 311 vpxor ymm5, ymm5, ymm10 312 vpxor ymm6, ymm6, ymm11 313 vpxor ymm7, ymm7, ymm8 314 vpxor ymm4, ymm4, ymm9 315 vmovdqa ymmword ptr [rsp+0x200], ymm8 316 vpsrld ymm8, ymm5, 7 317 vpslld ymm5, ymm5, 25 318 vpor ymm5, ymm5, ymm8 319 vpsrld ymm8, ymm6, 7 320 vpslld ymm6, ymm6, 25 321 vpor ymm6, ymm6, ymm8 322 vpsrld ymm8, ymm7, 7 323 vpslld ymm7, ymm7, 25 324 vpor ymm7, ymm7, ymm8 325 vpsrld ymm8, ymm4, 7 326 vpslld ymm4, ymm4, 25 327 vpor ymm4, ymm4, ymm8 328 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x40] 329 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60] 330 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xE0] 331 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80] 332 vpaddd ymm0, ymm0, ymm4 333 vpaddd ymm1, ymm1, ymm5 334 vpaddd ymm2, ymm2, ymm6 335 vpaddd ymm3, ymm3, ymm7 336 vpxor ymm12, ymm12, ymm0 337 vpxor ymm13, ymm13, ymm1 338 vpxor ymm14, ymm14, ymm2 339 vpxor ymm15, ymm15, ymm3 340 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 341 vpshufb ymm12, ymm12, ymm8 342 vpshufb ymm13, ymm13, ymm8 343 vpshufb ymm14, ymm14, ymm8 344 vpshufb ymm15, ymm15, ymm8 345 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 346 vpaddd ymm9, ymm9, ymm13 347 vpaddd ymm10, ymm10, ymm14 348 vpaddd ymm11, ymm11, ymm15 349 vpxor ymm4, ymm4, ymm8 350 vpxor ymm5, ymm5, ymm9 351 vpxor ymm6, ymm6, ymm10 352 vpxor ymm7, ymm7, ymm11 353 vmovdqa ymmword ptr [rsp+0x200], ymm8 354 vpsrld ymm8, ymm4, 12 355 vpslld ymm4, ymm4, 20 356 vpor ymm4, ymm4, ymm8 357 vpsrld ymm8, ymm5, 12 358 vpslld ymm5, ymm5, 20 359 vpor ymm5, ymm5, ymm8 360 vpsrld ymm8, ymm6, 12 361 vpslld ymm6, ymm6, 20 362 vpor ymm6, ymm6, ymm8 363 vpsrld ymm8, ymm7, 12 364 vpslld ymm7, ymm7, 20 365 vpor ymm7, ymm7, ymm8 366 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xC0] 367 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140] 368 vpaddd ymm2, ymm2, ymmword ptr [rsp] 369 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0] 370 vpaddd ymm0, ymm0, ymm4 371 vpaddd ymm1, ymm1, ymm5 372 vpaddd ymm2, ymm2, ymm6 373 vpaddd ymm3, ymm3, ymm7 374 vpxor ymm12, ymm12, ymm0 375 vpxor ymm13, ymm13, ymm1 376 vpxor ymm14, ymm14, ymm2 377 vpxor ymm15, ymm15, ymm3 378 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 379 vpshufb ymm12, ymm12, ymm8 380 vpshufb ymm13, ymm13, ymm8 381 vpshufb ymm14, ymm14, ymm8 382 vpshufb ymm15, ymm15, ymm8 383 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 384 vpaddd ymm9, ymm9, ymm13 385 vpaddd ymm10, ymm10, ymm14 386 vpaddd ymm11, ymm11, ymm15 387 vpxor ymm4, ymm4, ymm8 388 vpxor ymm5, ymm5, ymm9 389 vpxor ymm6, ymm6, ymm10 390 vpxor ymm7, ymm7, ymm11 391 vmovdqa ymmword ptr [rsp+0x200], ymm8 392 vpsrld ymm8, ymm4, 7 393 vpslld ymm4, ymm4, 25 394 vpor ymm4, ymm4, ymm8 395 vpsrld ymm8, ymm5, 7 396 vpslld ymm5, ymm5, 25 397 vpor ymm5, ymm5, ymm8 398 vpsrld ymm8, ymm6, 7 399 vpslld ymm6, ymm6, 25 400 vpor ymm6, ymm6, ymm8 401 vpsrld ymm8, ymm7, 7 402 vpslld ymm7, ymm7, 25 403 vpor ymm7, ymm7, ymm8 404 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x20] 405 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180] 406 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x120] 407 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0] 408 vpaddd ymm0, ymm0, ymm5 409 vpaddd ymm1, ymm1, ymm6 410 vpaddd ymm2, ymm2, ymm7 411 vpaddd ymm3, ymm3, ymm4 412 vpxor ymm15, ymm15, ymm0 413 vpxor ymm12, ymm12, ymm1 414 vpxor ymm13, ymm13, ymm2 415 vpxor ymm14, ymm14, ymm3 416 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 417 vpshufb ymm15, ymm15, ymm8 418 vpshufb ymm12, ymm12, ymm8 419 vpshufb ymm13, ymm13, ymm8 420 vpshufb ymm14, ymm14, ymm8 421 vpaddd ymm10, ymm10, ymm15 422 vpaddd ymm11, ymm11, ymm12 423 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 424 vpaddd ymm9, ymm9, ymm14 425 vpxor ymm5, ymm5, ymm10 426 vpxor ymm6, ymm6, ymm11 427 vpxor ymm7, ymm7, ymm8 428 vpxor ymm4, ymm4, ymm9 429 vmovdqa ymmword ptr [rsp+0x200], ymm8 430 vpsrld ymm8, ymm5, 12 431 vpslld ymm5, ymm5, 20 432 vpor ymm5, ymm5, ymm8 433 vpsrld ymm8, ymm6, 12 434 vpslld ymm6, ymm6, 20 435 vpor ymm6, ymm6, ymm8 436 vpsrld ymm8, ymm7, 12 437 vpslld ymm7, ymm7, 20 438 vpor ymm7, ymm7, ymm8 439 vpsrld ymm8, ymm4, 12 440 vpslld ymm4, ymm4, 20 441 vpor ymm4, ymm4, ymm8 442 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x160] 443 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0] 444 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1C0] 445 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100] 446 vpaddd ymm0, ymm0, ymm5 447 vpaddd ymm1, ymm1, ymm6 448 vpaddd ymm2, ymm2, ymm7 449 vpaddd ymm3, ymm3, ymm4 450 vpxor ymm15, ymm15, ymm0 451 vpxor ymm12, ymm12, ymm1 452 vpxor ymm13, ymm13, ymm2 453 vpxor ymm14, ymm14, ymm3 454 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 455 vpshufb ymm15, ymm15, ymm8 456 vpshufb ymm12, ymm12, ymm8 457 vpshufb ymm13, ymm13, ymm8 458 vpshufb ymm14, ymm14, ymm8 459 vpaddd ymm10, ymm10, ymm15 460 vpaddd ymm11, ymm11, ymm12 461 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 462 vpaddd ymm9, ymm9, ymm14 463 vpxor ymm5, ymm5, ymm10 464 vpxor ymm6, ymm6, ymm11 465 vpxor ymm7, ymm7, ymm8 466 vpxor ymm4, ymm4, ymm9 467 vmovdqa ymmword ptr [rsp+0x200], ymm8 468 vpsrld ymm8, ymm5, 7 469 vpslld ymm5, ymm5, 25 470 vpor ymm5, ymm5, ymm8 471 vpsrld ymm8, ymm6, 7 472 vpslld ymm6, ymm6, 25 473 vpor ymm6, ymm6, ymm8 474 vpsrld ymm8, ymm7, 7 475 vpslld ymm7, ymm7, 25 476 vpor ymm7, ymm7, ymm8 477 vpsrld ymm8, ymm4, 7 478 vpslld ymm4, ymm4, 25 479 vpor ymm4, ymm4, ymm8 480 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x60] 481 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140] 482 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1A0] 483 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0] 484 vpaddd ymm0, ymm0, ymm4 485 vpaddd ymm1, ymm1, ymm5 486 vpaddd ymm2, ymm2, ymm6 487 vpaddd ymm3, ymm3, ymm7 488 vpxor ymm12, ymm12, ymm0 489 vpxor ymm13, ymm13, ymm1 490 vpxor ymm14, ymm14, ymm2 491 vpxor ymm15, ymm15, ymm3 492 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 493 vpshufb ymm12, ymm12, ymm8 494 vpshufb ymm13, ymm13, ymm8 495 vpshufb ymm14, ymm14, ymm8 496 vpshufb ymm15, ymm15, ymm8 497 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 498 vpaddd ymm9, ymm9, ymm13 499 vpaddd ymm10, ymm10, ymm14 500 vpaddd ymm11, ymm11, ymm15 501 vpxor ymm4, ymm4, ymm8 502 vpxor ymm5, ymm5, ymm9 503 vpxor ymm6, ymm6, ymm10 504 vpxor ymm7, ymm7, ymm11 505 vmovdqa ymmword ptr [rsp+0x200], ymm8 506 vpsrld ymm8, ymm4, 12 507 vpslld ymm4, ymm4, 20 508 vpor ymm4, ymm4, ymm8 509 vpsrld ymm8, ymm5, 12 510 vpslld ymm5, ymm5, 20 511 vpor ymm5, ymm5, ymm8 512 vpsrld ymm8, ymm6, 12 513 vpslld ymm6, ymm6, 20 514 vpor ymm6, ymm6, ymm8 515 vpsrld ymm8, ymm7, 12 516 vpslld ymm7, ymm7, 20 517 vpor ymm7, ymm7, ymm8 518 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x80] 519 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180] 520 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x40] 521 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0] 522 vpaddd ymm0, ymm0, ymm4 523 vpaddd ymm1, ymm1, ymm5 524 vpaddd ymm2, ymm2, ymm6 525 vpaddd ymm3, ymm3, ymm7 526 vpxor ymm12, ymm12, ymm0 527 vpxor ymm13, ymm13, ymm1 528 vpxor ymm14, ymm14, ymm2 529 vpxor ymm15, ymm15, ymm3 530 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 531 vpshufb ymm12, ymm12, ymm8 532 vpshufb ymm13, ymm13, ymm8 533 vpshufb ymm14, ymm14, ymm8 534 vpshufb ymm15, ymm15, ymm8 535 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 536 vpaddd ymm9, ymm9, ymm13 537 vpaddd ymm10, ymm10, ymm14 538 vpaddd ymm11, ymm11, ymm15 539 vpxor ymm4, ymm4, ymm8 540 vpxor ymm5, ymm5, ymm9 541 vpxor ymm6, ymm6, ymm10 542 vpxor ymm7, ymm7, ymm11 543 vmovdqa ymmword ptr [rsp+0x200], ymm8 544 vpsrld ymm8, ymm4, 7 545 vpslld ymm4, ymm4, 25 546 vpor ymm4, ymm4, ymm8 547 vpsrld ymm8, ymm5, 7 548 vpslld ymm5, ymm5, 25 549 vpor ymm5, ymm5, ymm8 550 vpsrld ymm8, ymm6, 7 551 vpslld ymm6, ymm6, 25 552 vpor ymm6, ymm6, ymm8 553 vpsrld ymm8, ymm7, 7 554 vpslld ymm7, ymm7, 25 555 vpor ymm7, ymm7, ymm8 556 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xC0] 557 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120] 558 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x160] 559 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100] 560 vpaddd ymm0, ymm0, ymm5 561 vpaddd ymm1, ymm1, ymm6 562 vpaddd ymm2, ymm2, ymm7 563 vpaddd ymm3, ymm3, ymm4 564 vpxor ymm15, ymm15, ymm0 565 vpxor ymm12, ymm12, ymm1 566 vpxor ymm13, ymm13, ymm2 567 vpxor ymm14, ymm14, ymm3 568 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 569 vpshufb ymm15, ymm15, ymm8 570 vpshufb ymm12, ymm12, ymm8 571 vpshufb ymm13, ymm13, ymm8 572 vpshufb ymm14, ymm14, ymm8 573 vpaddd ymm10, ymm10, ymm15 574 vpaddd ymm11, ymm11, ymm12 575 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 576 vpaddd ymm9, ymm9, ymm14 577 vpxor ymm5, ymm5, ymm10 578 vpxor ymm6, ymm6, ymm11 579 vpxor ymm7, ymm7, ymm8 580 vpxor ymm4, ymm4, ymm9 581 vmovdqa ymmword ptr [rsp+0x200], ymm8 582 vpsrld ymm8, ymm5, 12 583 vpslld ymm5, ymm5, 20 584 vpor ymm5, ymm5, ymm8 585 vpsrld ymm8, ymm6, 12 586 vpslld ymm6, ymm6, 20 587 vpor ymm6, ymm6, ymm8 588 vpsrld ymm8, ymm7, 12 589 vpslld ymm7, ymm7, 20 590 vpor ymm7, ymm7, ymm8 591 vpsrld ymm8, ymm4, 12 592 vpslld ymm4, ymm4, 20 593 vpor ymm4, ymm4, ymm8 594 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xA0] 595 vpaddd ymm1, ymm1, ymmword ptr [rsp] 596 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1E0] 597 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20] 598 vpaddd ymm0, ymm0, ymm5 599 vpaddd ymm1, ymm1, ymm6 600 vpaddd ymm2, ymm2, ymm7 601 vpaddd ymm3, ymm3, ymm4 602 vpxor ymm15, ymm15, ymm0 603 vpxor ymm12, ymm12, ymm1 604 vpxor ymm13, ymm13, ymm2 605 vpxor ymm14, ymm14, ymm3 606 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 607 vpshufb ymm15, ymm15, ymm8 608 vpshufb ymm12, ymm12, ymm8 609 vpshufb ymm13, ymm13, ymm8 610 vpshufb ymm14, ymm14, ymm8 611 vpaddd ymm10, ymm10, ymm15 612 vpaddd ymm11, ymm11, ymm12 613 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 614 vpaddd ymm9, ymm9, ymm14 615 vpxor ymm5, ymm5, ymm10 616 vpxor ymm6, ymm6, ymm11 617 vpxor ymm7, ymm7, ymm8 618 vpxor ymm4, ymm4, ymm9 619 vmovdqa ymmword ptr [rsp+0x200], ymm8 620 vpsrld ymm8, ymm5, 7 621 vpslld ymm5, ymm5, 25 622 vpor ymm5, ymm5, ymm8 623 vpsrld ymm8, ymm6, 7 624 vpslld ymm6, ymm6, 25 625 vpor ymm6, ymm6, ymm8 626 vpsrld ymm8, ymm7, 7 627 vpslld ymm7, ymm7, 25 628 vpor ymm7, ymm7, ymm8 629 vpsrld ymm8, ymm4, 7 630 vpslld ymm4, ymm4, 25 631 vpor ymm4, ymm4, ymm8 632 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x140] 633 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180] 634 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1C0] 635 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0] 636 vpaddd ymm0, ymm0, ymm4 637 vpaddd ymm1, ymm1, ymm5 638 vpaddd ymm2, ymm2, ymm6 639 vpaddd ymm3, ymm3, ymm7 640 vpxor ymm12, ymm12, ymm0 641 vpxor ymm13, ymm13, ymm1 642 vpxor ymm14, ymm14, ymm2 643 vpxor ymm15, ymm15, ymm3 644 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 645 vpshufb ymm12, ymm12, ymm8 646 vpshufb ymm13, ymm13, ymm8 647 vpshufb ymm14, ymm14, ymm8 648 vpshufb ymm15, ymm15, ymm8 649 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 650 vpaddd ymm9, ymm9, ymm13 651 vpaddd ymm10, ymm10, ymm14 652 vpaddd ymm11, ymm11, ymm15 653 vpxor ymm4, ymm4, ymm8 654 vpxor ymm5, ymm5, ymm9 655 vpxor ymm6, ymm6, ymm10 656 vpxor ymm7, ymm7, ymm11 657 vmovdqa ymmword ptr [rsp+0x200], ymm8 658 vpsrld ymm8, ymm4, 12 659 vpslld ymm4, ymm4, 20 660 vpor ymm4, ymm4, ymm8 661 vpsrld ymm8, ymm5, 12 662 vpslld ymm5, ymm5, 20 663 vpor ymm5, ymm5, ymm8 664 vpsrld ymm8, ymm6, 12 665 vpslld ymm6, ymm6, 20 666 vpor ymm6, ymm6, ymm8 667 vpsrld ymm8, ymm7, 12 668 vpslld ymm7, ymm7, 20 669 vpor ymm7, ymm7, ymm8 670 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xE0] 671 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120] 672 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x60] 673 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0] 674 vpaddd ymm0, ymm0, ymm4 675 vpaddd ymm1, ymm1, ymm5 676 vpaddd ymm2, ymm2, ymm6 677 vpaddd ymm3, ymm3, ymm7 678 vpxor ymm12, ymm12, ymm0 679 vpxor ymm13, ymm13, ymm1 680 vpxor ymm14, ymm14, ymm2 681 vpxor ymm15, ymm15, ymm3 682 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 683 vpshufb ymm12, ymm12, ymm8 684 vpshufb ymm13, ymm13, ymm8 685 vpshufb ymm14, ymm14, ymm8 686 vpshufb ymm15, ymm15, ymm8 687 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 688 vpaddd ymm9, ymm9, ymm13 689 vpaddd ymm10, ymm10, ymm14 690 vpaddd ymm11, ymm11, ymm15 691 vpxor ymm4, ymm4, ymm8 692 vpxor ymm5, ymm5, ymm9 693 vpxor ymm6, ymm6, ymm10 694 vpxor ymm7, ymm7, ymm11 695 vmovdqa ymmword ptr [rsp+0x200], ymm8 696 vpsrld ymm8, ymm4, 7 697 vpslld ymm4, ymm4, 25 698 vpor ymm4, ymm4, ymm8 699 vpsrld ymm8, ymm5, 7 700 vpslld ymm5, ymm5, 25 701 vpor ymm5, ymm5, ymm8 702 vpsrld ymm8, ymm6, 7 703 vpslld ymm6, ymm6, 25 704 vpor ymm6, ymm6, ymm8 705 vpsrld ymm8, ymm7, 7 706 vpslld ymm7, ymm7, 25 707 vpor ymm7, ymm7, ymm8 708 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x80] 709 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160] 710 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xA0] 711 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20] 712 vpaddd ymm0, ymm0, ymm5 713 vpaddd ymm1, ymm1, ymm6 714 vpaddd ymm2, ymm2, ymm7 715 vpaddd ymm3, ymm3, ymm4 716 vpxor ymm15, ymm15, ymm0 717 vpxor ymm12, ymm12, ymm1 718 vpxor ymm13, ymm13, ymm2 719 vpxor ymm14, ymm14, ymm3 720 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 721 vpshufb ymm15, ymm15, ymm8 722 vpshufb ymm12, ymm12, ymm8 723 vpshufb ymm13, ymm13, ymm8 724 vpshufb ymm14, ymm14, ymm8 725 vpaddd ymm10, ymm10, ymm15 726 vpaddd ymm11, ymm11, ymm12 727 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 728 vpaddd ymm9, ymm9, ymm14 729 vpxor ymm5, ymm5, ymm10 730 vpxor ymm6, ymm6, ymm11 731 vpxor ymm7, ymm7, ymm8 732 vpxor ymm4, ymm4, ymm9 733 vmovdqa ymmword ptr [rsp+0x200], ymm8 734 vpsrld ymm8, ymm5, 12 735 vpslld ymm5, ymm5, 20 736 vpor ymm5, ymm5, ymm8 737 vpsrld ymm8, ymm6, 12 738 vpslld ymm6, ymm6, 20 739 vpor ymm6, ymm6, ymm8 740 vpsrld ymm8, ymm7, 12 741 vpslld ymm7, ymm7, 20 742 vpor ymm7, ymm7, ymm8 743 vpsrld ymm8, ymm4, 12 744 vpslld ymm4, ymm4, 20 745 vpor ymm4, ymm4, ymm8 746 vpaddd ymm0, ymm0, ymmword ptr [rsp] 747 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40] 748 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x100] 749 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0] 750 vpaddd ymm0, ymm0, ymm5 751 vpaddd ymm1, ymm1, ymm6 752 vpaddd ymm2, ymm2, ymm7 753 vpaddd ymm3, ymm3, ymm4 754 vpxor ymm15, ymm15, ymm0 755 vpxor ymm12, ymm12, ymm1 756 vpxor ymm13, ymm13, ymm2 757 vpxor ymm14, ymm14, ymm3 758 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 759 vpshufb ymm15, ymm15, ymm8 760 vpshufb ymm12, ymm12, ymm8 761 vpshufb ymm13, ymm13, ymm8 762 vpshufb ymm14, ymm14, ymm8 763 vpaddd ymm10, ymm10, ymm15 764 vpaddd ymm11, ymm11, ymm12 765 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 766 vpaddd ymm9, ymm9, ymm14 767 vpxor ymm5, ymm5, ymm10 768 vpxor ymm6, ymm6, ymm11 769 vpxor ymm7, ymm7, ymm8 770 vpxor ymm4, ymm4, ymm9 771 vmovdqa ymmword ptr [rsp+0x200], ymm8 772 vpsrld ymm8, ymm5, 7 773 vpslld ymm5, ymm5, 25 774 vpor ymm5, ymm5, ymm8 775 vpsrld ymm8, ymm6, 7 776 vpslld ymm6, ymm6, 25 777 vpor ymm6, ymm6, ymm8 778 vpsrld ymm8, ymm7, 7 779 vpslld ymm7, ymm7, 25 780 vpor ymm7, ymm7, ymm8 781 vpsrld ymm8, ymm4, 7 782 vpslld ymm4, ymm4, 25 783 vpor ymm4, ymm4, ymm8 784 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x180] 785 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x120] 786 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x1E0] 787 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1C0] 788 vpaddd ymm0, ymm0, ymm4 789 vpaddd ymm1, ymm1, ymm5 790 vpaddd ymm2, ymm2, ymm6 791 vpaddd ymm3, ymm3, ymm7 792 vpxor ymm12, ymm12, ymm0 793 vpxor ymm13, ymm13, ymm1 794 vpxor ymm14, ymm14, ymm2 795 vpxor ymm15, ymm15, ymm3 796 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 797 vpshufb ymm12, ymm12, ymm8 798 vpshufb ymm13, ymm13, ymm8 799 vpshufb ymm14, ymm14, ymm8 800 vpshufb ymm15, ymm15, ymm8 801 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 802 vpaddd ymm9, ymm9, ymm13 803 vpaddd ymm10, ymm10, ymm14 804 vpaddd ymm11, ymm11, ymm15 805 vpxor ymm4, ymm4, ymm8 806 vpxor ymm5, ymm5, ymm9 807 vpxor ymm6, ymm6, ymm10 808 vpxor ymm7, ymm7, ymm11 809 vmovdqa ymmword ptr [rsp+0x200], ymm8 810 vpsrld ymm8, ymm4, 12 811 vpslld ymm4, ymm4, 20 812 vpor ymm4, ymm4, ymm8 813 vpsrld ymm8, ymm5, 12 814 vpslld ymm5, ymm5, 20 815 vpor ymm5, ymm5, ymm8 816 vpsrld ymm8, ymm6, 12 817 vpslld ymm6, ymm6, 20 818 vpor ymm6, ymm6, ymm8 819 vpsrld ymm8, ymm7, 12 820 vpslld ymm7, ymm7, 20 821 vpor ymm7, ymm7, ymm8 822 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1A0] 823 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160] 824 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x140] 825 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100] 826 vpaddd ymm0, ymm0, ymm4 827 vpaddd ymm1, ymm1, ymm5 828 vpaddd ymm2, ymm2, ymm6 829 vpaddd ymm3, ymm3, ymm7 830 vpxor ymm12, ymm12, ymm0 831 vpxor ymm13, ymm13, ymm1 832 vpxor ymm14, ymm14, ymm2 833 vpxor ymm15, ymm15, ymm3 834 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 835 vpshufb ymm12, ymm12, ymm8 836 vpshufb ymm13, ymm13, ymm8 837 vpshufb ymm14, ymm14, ymm8 838 vpshufb ymm15, ymm15, ymm8 839 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 840 vpaddd ymm9, ymm9, ymm13 841 vpaddd ymm10, ymm10, ymm14 842 vpaddd ymm11, ymm11, ymm15 843 vpxor ymm4, ymm4, ymm8 844 vpxor ymm5, ymm5, ymm9 845 vpxor ymm6, ymm6, ymm10 846 vpxor ymm7, ymm7, ymm11 847 vmovdqa ymmword ptr [rsp+0x200], ymm8 848 vpsrld ymm8, ymm4, 7 849 vpslld ymm4, ymm4, 25 850 vpor ymm4, ymm4, ymm8 851 vpsrld ymm8, ymm5, 7 852 vpslld ymm5, ymm5, 25 853 vpor ymm5, ymm5, ymm8 854 vpsrld ymm8, ymm6, 7 855 vpslld ymm6, ymm6, 25 856 vpor ymm6, ymm6, ymm8 857 vpsrld ymm8, ymm7, 7 858 vpslld ymm7, ymm7, 25 859 vpor ymm7, ymm7, ymm8 860 vpaddd ymm0, ymm0, ymmword ptr [rsp+0xE0] 861 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0] 862 vpaddd ymm2, ymm2, ymmword ptr [rsp] 863 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0] 864 vpaddd ymm0, ymm0, ymm5 865 vpaddd ymm1, ymm1, ymm6 866 vpaddd ymm2, ymm2, ymm7 867 vpaddd ymm3, ymm3, ymm4 868 vpxor ymm15, ymm15, ymm0 869 vpxor ymm12, ymm12, ymm1 870 vpxor ymm13, ymm13, ymm2 871 vpxor ymm14, ymm14, ymm3 872 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 873 vpshufb ymm15, ymm15, ymm8 874 vpshufb ymm12, ymm12, ymm8 875 vpshufb ymm13, ymm13, ymm8 876 vpshufb ymm14, ymm14, ymm8 877 vpaddd ymm10, ymm10, ymm15 878 vpaddd ymm11, ymm11, ymm12 879 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 880 vpaddd ymm9, ymm9, ymm14 881 vpxor ymm5, ymm5, ymm10 882 vpxor ymm6, ymm6, ymm11 883 vpxor ymm7, ymm7, ymm8 884 vpxor ymm4, ymm4, ymm9 885 vmovdqa ymmword ptr [rsp+0x200], ymm8 886 vpsrld ymm8, ymm5, 12 887 vpslld ymm5, ymm5, 20 888 vpor ymm5, ymm5, ymm8 889 vpsrld ymm8, ymm6, 12 890 vpslld ymm6, ymm6, 20 891 vpor ymm6, ymm6, ymm8 892 vpsrld ymm8, ymm7, 12 893 vpslld ymm7, ymm7, 20 894 vpor ymm7, ymm7, ymm8 895 vpsrld ymm8, ymm4, 12 896 vpslld ymm4, ymm4, 20 897 vpor ymm4, ymm4, ymm8 898 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x40] 899 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x60] 900 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x20] 901 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80] 902 vpaddd ymm0, ymm0, ymm5 903 vpaddd ymm1, ymm1, ymm6 904 vpaddd ymm2, ymm2, ymm7 905 vpaddd ymm3, ymm3, ymm4 906 vpxor ymm15, ymm15, ymm0 907 vpxor ymm12, ymm12, ymm1 908 vpxor ymm13, ymm13, ymm2 909 vpxor ymm14, ymm14, ymm3 910 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 911 vpshufb ymm15, ymm15, ymm8 912 vpshufb ymm12, ymm12, ymm8 913 vpshufb ymm13, ymm13, ymm8 914 vpshufb ymm14, ymm14, ymm8 915 vpaddd ymm10, ymm10, ymm15 916 vpaddd ymm11, ymm11, ymm12 917 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 918 vpaddd ymm9, ymm9, ymm14 919 vpxor ymm5, ymm5, ymm10 920 vpxor ymm6, ymm6, ymm11 921 vpxor ymm7, ymm7, ymm8 922 vpxor ymm4, ymm4, ymm9 923 vmovdqa ymmword ptr [rsp+0x200], ymm8 924 vpsrld ymm8, ymm5, 7 925 vpslld ymm5, ymm5, 25 926 vpor ymm5, ymm5, ymm8 927 vpsrld ymm8, ymm6, 7 928 vpslld ymm6, ymm6, 25 929 vpor ymm6, ymm6, ymm8 930 vpsrld ymm8, ymm7, 7 931 vpslld ymm7, ymm7, 25 932 vpor ymm7, ymm7, ymm8 933 vpsrld ymm8, ymm4, 7 934 vpslld ymm4, ymm4, 25 935 vpor ymm4, ymm4, ymm8 936 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x120] 937 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x160] 938 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x100] 939 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1E0] 940 vpaddd ymm0, ymm0, ymm4 941 vpaddd ymm1, ymm1, ymm5 942 vpaddd ymm2, ymm2, ymm6 943 vpaddd ymm3, ymm3, ymm7 944 vpxor ymm12, ymm12, ymm0 945 vpxor ymm13, ymm13, ymm1 946 vpxor ymm14, ymm14, ymm2 947 vpxor ymm15, ymm15, ymm3 948 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 949 vpshufb ymm12, ymm12, ymm8 950 vpshufb ymm13, ymm13, ymm8 951 vpshufb ymm14, ymm14, ymm8 952 vpshufb ymm15, ymm15, ymm8 953 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 954 vpaddd ymm9, ymm9, ymm13 955 vpaddd ymm10, ymm10, ymm14 956 vpaddd ymm11, ymm11, ymm15 957 vpxor ymm4, ymm4, ymm8 958 vpxor ymm5, ymm5, ymm9 959 vpxor ymm6, ymm6, ymm10 960 vpxor ymm7, ymm7, ymm11 961 vmovdqa ymmword ptr [rsp+0x200], ymm8 962 vpsrld ymm8, ymm4, 12 963 vpslld ymm4, ymm4, 20 964 vpor ymm4, ymm4, ymm8 965 vpsrld ymm8, ymm5, 12 966 vpslld ymm5, ymm5, 20 967 vpor ymm5, ymm5, ymm8 968 vpsrld ymm8, ymm6, 12 969 vpslld ymm6, ymm6, 20 970 vpor ymm6, ymm6, ymm8 971 vpsrld ymm8, ymm7, 12 972 vpslld ymm7, ymm7, 20 973 vpor ymm7, ymm7, ymm8 974 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1C0] 975 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0] 976 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x180] 977 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x20] 978 vpaddd ymm0, ymm0, ymm4 979 vpaddd ymm1, ymm1, ymm5 980 vpaddd ymm2, ymm2, ymm6 981 vpaddd ymm3, ymm3, ymm7 982 vpxor ymm12, ymm12, ymm0 983 vpxor ymm13, ymm13, ymm1 984 vpxor ymm14, ymm14, ymm2 985 vpxor ymm15, ymm15, ymm3 986 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 987 vpshufb ymm12, ymm12, ymm8 988 vpshufb ymm13, ymm13, ymm8 989 vpshufb ymm14, ymm14, ymm8 990 vpshufb ymm15, ymm15, ymm8 991 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 992 vpaddd ymm9, ymm9, ymm13 993 vpaddd ymm10, ymm10, ymm14 994 vpaddd ymm11, ymm11, ymm15 995 vpxor ymm4, ymm4, ymm8 996 vpxor ymm5, ymm5, ymm9 997 vpxor ymm6, ymm6, ymm10 998 vpxor ymm7, ymm7, ymm11 999 vmovdqa ymmword ptr [rsp+0x200], ymm8 1000 vpsrld ymm8, ymm4, 7 1001 vpslld ymm4, ymm4, 25 1002 vpor ymm4, ymm4, ymm8 1003 vpsrld ymm8, ymm5, 7 1004 vpslld ymm5, ymm5, 25 1005 vpor ymm5, ymm5, ymm8 1006 vpsrld ymm8, ymm6, 7 1007 vpslld ymm6, ymm6, 25 1008 vpor ymm6, ymm6, ymm8 1009 vpsrld ymm8, ymm7, 7 1010 vpslld ymm7, ymm7, 25 1011 vpor ymm7, ymm7, ymm8 1012 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1A0] 1013 vpaddd ymm1, ymm1, ymmword ptr [rsp] 1014 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x40] 1015 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x80] 1016 vpaddd ymm0, ymm0, ymm5 1017 vpaddd ymm1, ymm1, ymm6 1018 vpaddd ymm2, ymm2, ymm7 1019 vpaddd ymm3, ymm3, ymm4 1020 vpxor ymm15, ymm15, ymm0 1021 vpxor ymm12, ymm12, ymm1 1022 vpxor ymm13, ymm13, ymm2 1023 vpxor ymm14, ymm14, ymm3 1024 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 1025 vpshufb ymm15, ymm15, ymm8 1026 vpshufb ymm12, ymm12, ymm8 1027 vpshufb ymm13, ymm13, ymm8 1028 vpshufb ymm14, ymm14, ymm8 1029 vpaddd ymm10, ymm10, ymm15 1030 vpaddd ymm11, ymm11, ymm12 1031 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 1032 vpaddd ymm9, ymm9, ymm14 1033 vpxor ymm5, ymm5, ymm10 1034 vpxor ymm6, ymm6, ymm11 1035 vpxor ymm7, ymm7, ymm8 1036 vpxor ymm4, ymm4, ymm9 1037 vmovdqa ymmword ptr [rsp+0x200], ymm8 1038 vpsrld ymm8, ymm5, 12 1039 vpslld ymm5, ymm5, 20 1040 vpor ymm5, ymm5, ymm8 1041 vpsrld ymm8, ymm6, 12 1042 vpslld ymm6, ymm6, 20 1043 vpor ymm6, ymm6, ymm8 1044 vpsrld ymm8, ymm7, 12 1045 vpslld ymm7, ymm7, 20 1046 vpor ymm7, ymm7, ymm8 1047 vpsrld ymm8, ymm4, 12 1048 vpslld ymm4, ymm4, 20 1049 vpor ymm4, ymm4, ymm8 1050 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x60] 1051 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x140] 1052 vpaddd ymm2, ymm2, ymmword ptr [rsp+0xC0] 1053 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0] 1054 vpaddd ymm0, ymm0, ymm5 1055 vpaddd ymm1, ymm1, ymm6 1056 vpaddd ymm2, ymm2, ymm7 1057 vpaddd ymm3, ymm3, ymm4 1058 vpxor ymm15, ymm15, ymm0 1059 vpxor ymm12, ymm12, ymm1 1060 vpxor ymm13, ymm13, ymm2 1061 vpxor ymm14, ymm14, ymm3 1062 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 1063 vpshufb ymm15, ymm15, ymm8 1064 vpshufb ymm12, ymm12, ymm8 1065 vpshufb ymm13, ymm13, ymm8 1066 vpshufb ymm14, ymm14, ymm8 1067 vpaddd ymm10, ymm10, ymm15 1068 vpaddd ymm11, ymm11, ymm12 1069 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 1070 vpaddd ymm9, ymm9, ymm14 1071 vpxor ymm5, ymm5, ymm10 1072 vpxor ymm6, ymm6, ymm11 1073 vpxor ymm7, ymm7, ymm8 1074 vpxor ymm4, ymm4, ymm9 1075 vmovdqa ymmword ptr [rsp+0x200], ymm8 1076 vpsrld ymm8, ymm5, 7 1077 vpslld ymm5, ymm5, 25 1078 vpor ymm5, ymm5, ymm8 1079 vpsrld ymm8, ymm6, 7 1080 vpslld ymm6, ymm6, 25 1081 vpor ymm6, ymm6, ymm8 1082 vpsrld ymm8, ymm7, 7 1083 vpslld ymm7, ymm7, 25 1084 vpor ymm7, ymm7, ymm8 1085 vpsrld ymm8, ymm4, 7 1086 vpslld ymm4, ymm4, 25 1087 vpor ymm4, ymm4, ymm8 1088 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x160] 1089 vpaddd ymm1, ymm1, ymmword ptr [rsp+0xA0] 1090 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x20] 1091 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x100] 1092 vpaddd ymm0, ymm0, ymm4 1093 vpaddd ymm1, ymm1, ymm5 1094 vpaddd ymm2, ymm2, ymm6 1095 vpaddd ymm3, ymm3, ymm7 1096 vpxor ymm12, ymm12, ymm0 1097 vpxor ymm13, ymm13, ymm1 1098 vpxor ymm14, ymm14, ymm2 1099 vpxor ymm15, ymm15, ymm3 1100 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 1101 vpshufb ymm12, ymm12, ymm8 1102 vpshufb ymm13, ymm13, ymm8 1103 vpshufb ymm14, ymm14, ymm8 1104 vpshufb ymm15, ymm15, ymm8 1105 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 1106 vpaddd ymm9, ymm9, ymm13 1107 vpaddd ymm10, ymm10, ymm14 1108 vpaddd ymm11, ymm11, ymm15 1109 vpxor ymm4, ymm4, ymm8 1110 vpxor ymm5, ymm5, ymm9 1111 vpxor ymm6, ymm6, ymm10 1112 vpxor ymm7, ymm7, ymm11 1113 vmovdqa ymmword ptr [rsp+0x200], ymm8 1114 vpsrld ymm8, ymm4, 12 1115 vpslld ymm4, ymm4, 20 1116 vpor ymm4, ymm4, ymm8 1117 vpsrld ymm8, ymm5, 12 1118 vpslld ymm5, ymm5, 20 1119 vpor ymm5, ymm5, ymm8 1120 vpsrld ymm8, ymm6, 12 1121 vpslld ymm6, ymm6, 20 1122 vpor ymm6, ymm6, ymm8 1123 vpsrld ymm8, ymm7, 12 1124 vpslld ymm7, ymm7, 20 1125 vpor ymm7, ymm7, ymm8 1126 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1E0] 1127 vpaddd ymm1, ymm1, ymmword ptr [rsp] 1128 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x120] 1129 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xC0] 1130 vpaddd ymm0, ymm0, ymm4 1131 vpaddd ymm1, ymm1, ymm5 1132 vpaddd ymm2, ymm2, ymm6 1133 vpaddd ymm3, ymm3, ymm7 1134 vpxor ymm12, ymm12, ymm0 1135 vpxor ymm13, ymm13, ymm1 1136 vpxor ymm14, ymm14, ymm2 1137 vpxor ymm15, ymm15, ymm3 1138 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 1139 vpshufb ymm12, ymm12, ymm8 1140 vpshufb ymm13, ymm13, ymm8 1141 vpshufb ymm14, ymm14, ymm8 1142 vpshufb ymm15, ymm15, ymm8 1143 vpaddd ymm8, ymm12, ymmword ptr [rsp+0x200] 1144 vpaddd ymm9, ymm9, ymm13 1145 vpaddd ymm10, ymm10, ymm14 1146 vpaddd ymm11, ymm11, ymm15 1147 vpxor ymm4, ymm4, ymm8 1148 vpxor ymm5, ymm5, ymm9 1149 vpxor ymm6, ymm6, ymm10 1150 vpxor ymm7, ymm7, ymm11 1151 vmovdqa ymmword ptr [rsp+0x200], ymm8 1152 vpsrld ymm8, ymm4, 7 1153 vpslld ymm4, ymm4, 25 1154 vpor ymm4, ymm4, ymm8 1155 vpsrld ymm8, ymm5, 7 1156 vpslld ymm5, ymm5, 25 1157 vpor ymm5, ymm5, ymm8 1158 vpsrld ymm8, ymm6, 7 1159 vpslld ymm6, ymm6, 25 1160 vpor ymm6, ymm6, ymm8 1161 vpsrld ymm8, ymm7, 7 1162 vpslld ymm7, ymm7, 25 1163 vpor ymm7, ymm7, ymm8 1164 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x1C0] 1165 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x40] 1166 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x60] 1167 vpaddd ymm3, ymm3, ymmword ptr [rsp+0xE0] 1168 vpaddd ymm0, ymm0, ymm5 1169 vpaddd ymm1, ymm1, ymm6 1170 vpaddd ymm2, ymm2, ymm7 1171 vpaddd ymm3, ymm3, ymm4 1172 vpxor ymm15, ymm15, ymm0 1173 vpxor ymm12, ymm12, ymm1 1174 vpxor ymm13, ymm13, ymm2 1175 vpxor ymm14, ymm14, ymm3 1176 vbroadcasti128 ymm8, xmmword ptr [ROT16+rip] 1177 vpshufb ymm15, ymm15, ymm8 1178 vpshufb ymm12, ymm12, ymm8 1179 vpshufb ymm13, ymm13, ymm8 1180 vpshufb ymm14, ymm14, ymm8 1181 vpaddd ymm10, ymm10, ymm15 1182 vpaddd ymm11, ymm11, ymm12 1183 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 1184 vpaddd ymm9, ymm9, ymm14 1185 vpxor ymm5, ymm5, ymm10 1186 vpxor ymm6, ymm6, ymm11 1187 vpxor ymm7, ymm7, ymm8 1188 vpxor ymm4, ymm4, ymm9 1189 vmovdqa ymmword ptr [rsp+0x200], ymm8 1190 vpsrld ymm8, ymm5, 12 1191 vpslld ymm5, ymm5, 20 1192 vpor ymm5, ymm5, ymm8 1193 vpsrld ymm8, ymm6, 12 1194 vpslld ymm6, ymm6, 20 1195 vpor ymm6, ymm6, ymm8 1196 vpsrld ymm8, ymm7, 12 1197 vpslld ymm7, ymm7, 20 1198 vpor ymm7, ymm7, ymm8 1199 vpsrld ymm8, ymm4, 12 1200 vpslld ymm4, ymm4, 20 1201 vpor ymm4, ymm4, ymm8 1202 vpaddd ymm0, ymm0, ymmword ptr [rsp+0x140] 1203 vpaddd ymm1, ymm1, ymmword ptr [rsp+0x180] 1204 vpaddd ymm2, ymm2, ymmword ptr [rsp+0x80] 1205 vpaddd ymm3, ymm3, ymmword ptr [rsp+0x1A0] 1206 vpaddd ymm0, ymm0, ymm5 1207 vpaddd ymm1, ymm1, ymm6 1208 vpaddd ymm2, ymm2, ymm7 1209 vpaddd ymm3, ymm3, ymm4 1210 vpxor ymm15, ymm15, ymm0 1211 vpxor ymm12, ymm12, ymm1 1212 vpxor ymm13, ymm13, ymm2 1213 vpxor ymm14, ymm14, ymm3 1214 vbroadcasti128 ymm8, xmmword ptr [ROT8+rip] 1215 vpshufb ymm15, ymm15, ymm8 1216 vpshufb ymm12, ymm12, ymm8 1217 vpshufb ymm13, ymm13, ymm8 1218 vpshufb ymm14, ymm14, ymm8 1219 vpaddd ymm10, ymm10, ymm15 1220 vpaddd ymm11, ymm11, ymm12 1221 vpaddd ymm8, ymm13, ymmword ptr [rsp+0x200] 1222 vpaddd ymm9, ymm9, ymm14 1223 vpxor ymm5, ymm5, ymm10 1224 vpxor ymm6, ymm6, ymm11 1225 vpxor ymm7, ymm7, ymm8 1226 vpxor ymm4, ymm4, ymm9 1227 vpxor ymm0, ymm0, ymm8 1228 vpxor ymm1, ymm1, ymm9 1229 vpxor ymm2, ymm2, ymm10 1230 vpxor ymm3, ymm3, ymm11 1231 vpsrld ymm8, ymm5, 7 1232 vpslld ymm5, ymm5, 25 1233 vpor ymm5, ymm5, ymm8 1234 vpsrld ymm8, ymm6, 7 1235 vpslld ymm6, ymm6, 25 1236 vpor ymm6, ymm6, ymm8 1237 vpsrld ymm8, ymm7, 7 1238 vpslld ymm7, ymm7, 25 1239 vpor ymm7, ymm7, ymm8 1240 vpsrld ymm8, ymm4, 7 1241 vpslld ymm4, ymm4, 25 1242 vpor ymm4, ymm4, ymm8 1243 vpxor ymm4, ymm4, ymm12 1244 vpxor ymm5, ymm5, ymm13 1245 vpxor ymm6, ymm6, ymm14 1246 vpxor ymm7, ymm7, ymm15 1247 movzx eax, byte ptr [rbp+0x78] 1248 jne 9b 1249 mov rbx, qword ptr [rbp+0x90] 1250 vunpcklps ymm8, ymm0, ymm1 1251 vunpcklps ymm9, ymm2, ymm3 1252 vunpckhps ymm10, ymm0, ymm1 1253 vunpcklps ymm11, ymm4, ymm5 1254 vunpcklps ymm0, ymm6, ymm7 1255 vshufps ymm12, ymm8, ymm9, 78 1256 vblendps ymm1, ymm8, ymm12, 0xCC 1257 vshufps ymm8, ymm11, ymm0, 78 1258 vunpckhps ymm13, ymm2, ymm3 1259 vblendps ymm2, ymm11, ymm8, 0xCC 1260 vblendps ymm3, ymm12, ymm9, 0xCC 1261 vperm2f128 ymm12, ymm1, ymm2, 0x20 1262 vmovups ymmword ptr [rbx], ymm12 1263 vunpckhps ymm14, ymm4, ymm5 1264 vblendps ymm4, ymm8, ymm0, 0xCC 1265 vunpckhps ymm15, ymm6, ymm7 1266 vperm2f128 ymm7, ymm3, ymm4, 0x20 1267 vmovups ymmword ptr [rbx+0x20], ymm7 1268 vshufps ymm5, ymm10, ymm13, 78 1269 vblendps ymm6, ymm5, ymm13, 0xCC 1270 vshufps ymm13, ymm14, ymm15, 78 1271 vblendps ymm10, ymm10, ymm5, 0xCC 1272 vblendps ymm14, ymm14, ymm13, 0xCC 1273 vperm2f128 ymm8, ymm10, ymm14, 0x20 1274 vmovups ymmword ptr [rbx+0x40], ymm8 1275 vblendps ymm15, ymm13, ymm15, 0xCC 1276 vperm2f128 ymm13, ymm6, ymm15, 0x20 1277 vmovups ymmword ptr [rbx+0x60], ymm13 1278 vperm2f128 ymm9, ymm1, ymm2, 0x31 1279 vperm2f128 ymm11, ymm3, ymm4, 0x31 1280 vmovups ymmword ptr [rbx+0x80], ymm9 1281 vperm2f128 ymm14, ymm10, ymm14, 0x31 1282 vperm2f128 ymm15, ymm6, ymm15, 0x31 1283 vmovups ymmword ptr [rbx+0xA0], ymm11 1284 vmovups ymmword ptr [rbx+0xC0], ymm14 1285 vmovups ymmword ptr [rbx+0xE0], ymm15 1286 vmovdqa ymm0, ymmword ptr [rsp+0x2A0] 1287 vpaddd ymm1, ymm0, ymmword ptr [rsp+0x220] 1288 vmovdqa ymmword ptr [rsp+0x220], ymm1 1289 vpxor ymm0, ymm0, ymmword ptr [CMP_MSB_MASK+rip] 1290 vpxor ymm2, ymm1, ymmword ptr [CMP_MSB_MASK+rip] 1291 vpcmpgtd ymm2, ymm0, ymm2 1292 vmovdqa ymm0, ymmword ptr [rsp+0x240] 1293 vpsubd ymm2, ymm0, ymm2 1294 vmovdqa ymmword ptr [rsp+0x240], ymm2 1295 add rdi, 64 1296 add rbx, 256 1297 mov qword ptr [rbp+0x90], rbx 1298 sub rsi, 8 1299 cmp rsi, 8 1300 jnc 2b 1301 test rsi, rsi 1302 jnz 3f 1303 4: 1304 vzeroupper 1305 vmovdqa xmm6, xmmword ptr [rsp+0x2D0] 1306 vmovdqa xmm7, xmmword ptr [rsp+0x2E0] 1307 vmovdqa xmm8, xmmword ptr [rsp+0x2F0] 1308 vmovdqa xmm9, xmmword ptr [rsp+0x300] 1309 vmovdqa xmm10, xmmword ptr [rsp+0x310] 1310 vmovdqa xmm11, xmmword ptr [rsp+0x320] 1311 vmovdqa xmm12, xmmword ptr [rsp+0x330] 1312 vmovdqa xmm13, xmmword ptr [rsp+0x340] 1313 vmovdqa xmm14, xmmword ptr [rsp+0x350] 1314 vmovdqa xmm15, xmmword ptr [rsp+0x360] 1315 mov rsp, rbp 1316 pop rbp 1317 pop rbx 1318 pop rdi 1319 pop rsi 1320 pop r12 1321 pop r13 1322 pop r14 1323 pop r15 1324 ret 1325 .p2align 5 1326 3: 1327 mov rbx, qword ptr [rbp+0x90] 1328 mov r15, qword ptr [rsp+0x2C0] 1329 movzx r13d, byte ptr [rbp+0x78] 1330 movzx r12d, byte ptr [rbp+0x88] 1331 test rsi, 0x4 1332 je 3f 1333 vbroadcasti128 ymm0, xmmword ptr [rcx] 1334 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10] 1335 vmovdqa ymm8, ymm0 1336 vmovdqa ymm9, ymm1 1337 vbroadcasti128 ymm12, xmmword ptr [rsp+0x220] 1338 vbroadcasti128 ymm13, xmmword ptr [rsp+0x240] 1339 vpunpckldq ymm14, ymm12, ymm13 1340 vpunpckhdq ymm15, ymm12, ymm13 1341 vpermq ymm14, ymm14, 0x50 1342 vpermq ymm15, ymm15, 0x50 1343 vbroadcasti128 ymm12, xmmword ptr [BLAKE3_BLOCK_LEN+rip] 1344 vpblendd ymm14, ymm14, ymm12, 0x44 1345 vpblendd ymm15, ymm15, ymm12, 0x44 1346 vmovdqa ymmword ptr [rsp], ymm14 1347 vmovdqa ymmword ptr [rsp+0x20], ymm15 1348 mov r8, qword ptr [rdi] 1349 mov r9, qword ptr [rdi+0x8] 1350 mov r10, qword ptr [rdi+0x10] 1351 mov r11, qword ptr [rdi+0x18] 1352 movzx eax, byte ptr [rbp+0x80] 1353 or eax, r13d 1354 xor edx, edx 1355 .p2align 5 1356 2: 1357 mov r14d, eax 1358 or eax, r12d 1359 add rdx, 64 1360 cmp rdx, r15 1361 cmovne eax, r14d 1362 mov dword ptr [rsp+0x200], eax 1363 vmovups ymm2, ymmword ptr [r8+rdx-0x40] 1364 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x40], 0x01 1365 vmovups ymm3, ymmword ptr [r8+rdx-0x30] 1366 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x30], 0x01 1367 vshufps ymm4, ymm2, ymm3, 136 1368 vshufps ymm5, ymm2, ymm3, 221 1369 vmovups ymm2, ymmword ptr [r8+rdx-0x20] 1370 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-0x20], 0x01 1371 vmovups ymm3, ymmword ptr [r8+rdx-0x10] 1372 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-0x10], 0x01 1373 vshufps ymm6, ymm2, ymm3, 136 1374 vshufps ymm7, ymm2, ymm3, 221 1375 vpshufd ymm6, ymm6, 0x93 1376 vpshufd ymm7, ymm7, 0x93 1377 vmovups ymm10, ymmword ptr [r10+rdx-0x40] 1378 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x40], 0x01 1379 vmovups ymm11, ymmword ptr [r10+rdx-0x30] 1380 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x30], 0x01 1381 vshufps ymm12, ymm10, ymm11, 136 1382 vshufps ymm13, ymm10, ymm11, 221 1383 vmovups ymm10, ymmword ptr [r10+rdx-0x20] 1384 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-0x20], 0x01 1385 vmovups ymm11, ymmword ptr [r10+rdx-0x10] 1386 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-0x10], 0x01 1387 vshufps ymm14, ymm10, ymm11, 136 1388 vshufps ymm15, ymm10, ymm11, 221 1389 vpshufd ymm14, ymm14, 0x93 1390 vpshufd ymm15, ymm15, 0x93 1391 vpbroadcastd ymm2, dword ptr [rsp+0x200] 1392 vmovdqa ymm3, ymmword ptr [rsp] 1393 vmovdqa ymm11, ymmword ptr [rsp+0x20] 1394 vpblendd ymm3, ymm3, ymm2, 0x88 1395 vpblendd ymm11, ymm11, ymm2, 0x88 1396 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip] 1397 vmovdqa ymm10, ymm2 1398 mov al, 7 1399 9: 1400 vpaddd ymm0, ymm0, ymm4 1401 vpaddd ymm8, ymm8, ymm12 1402 vmovdqa ymmword ptr [rsp+0x40], ymm4 1403 nop 1404 vmovdqa ymmword ptr [rsp+0x60], ymm12 1405 nop 1406 vpaddd ymm0, ymm0, ymm1 1407 vpaddd ymm8, ymm8, ymm9 1408 vpxor ymm3, ymm3, ymm0 1409 vpxor ymm11, ymm11, ymm8 1410 vbroadcasti128 ymm4, xmmword ptr [ROT16+rip] 1411 vpshufb ymm3, ymm3, ymm4 1412 vpshufb ymm11, ymm11, ymm4 1413 vpaddd ymm2, ymm2, ymm3 1414 vpaddd ymm10, ymm10, ymm11 1415 vpxor ymm1, ymm1, ymm2 1416 vpxor ymm9, ymm9, ymm10 1417 vpsrld ymm4, ymm1, 12 1418 vpslld ymm1, ymm1, 20 1419 vpor ymm1, ymm1, ymm4 1420 vpsrld ymm4, ymm9, 12 1421 vpslld ymm9, ymm9, 20 1422 vpor ymm9, ymm9, ymm4 1423 vpaddd ymm0, ymm0, ymm5 1424 vpaddd ymm8, ymm8, ymm13 1425 vpaddd ymm0, ymm0, ymm1 1426 vpaddd ymm8, ymm8, ymm9 1427 vmovdqa ymmword ptr [rsp+0x80], ymm5 1428 vmovdqa ymmword ptr [rsp+0xA0], ymm13 1429 vpxor ymm3, ymm3, ymm0 1430 vpxor ymm11, ymm11, ymm8 1431 vbroadcasti128 ymm4, xmmword ptr [ROT8+rip] 1432 vpshufb ymm3, ymm3, ymm4 1433 vpshufb ymm11, ymm11, ymm4 1434 vpaddd ymm2, ymm2, ymm3 1435 vpaddd ymm10, ymm10, ymm11 1436 vpxor ymm1, ymm1, ymm2 1437 vpxor ymm9, ymm9, ymm10 1438 vpsrld ymm4, ymm1, 7 1439 vpslld ymm1, ymm1, 25 1440 vpor ymm1, ymm1, ymm4 1441 vpsrld ymm4, ymm9, 7 1442 vpslld ymm9, ymm9, 25 1443 vpor ymm9, ymm9, ymm4 1444 vpshufd ymm0, ymm0, 0x93 1445 vpshufd ymm8, ymm8, 0x93 1446 vpshufd ymm3, ymm3, 0x4E 1447 vpshufd ymm11, ymm11, 0x4E 1448 vpshufd ymm2, ymm2, 0x39 1449 vpshufd ymm10, ymm10, 0x39 1450 vpaddd ymm0, ymm0, ymm6 1451 vpaddd ymm8, ymm8, ymm14 1452 vpaddd ymm0, ymm0, ymm1 1453 vpaddd ymm8, ymm8, ymm9 1454 vpxor ymm3, ymm3, ymm0 1455 vpxor ymm11, ymm11, ymm8 1456 vbroadcasti128 ymm4, xmmword ptr [ROT16+rip] 1457 vpshufb ymm3, ymm3, ymm4 1458 vpshufb ymm11, ymm11, ymm4 1459 vpaddd ymm2, ymm2, ymm3 1460 vpaddd ymm10, ymm10, ymm11 1461 vpxor ymm1, ymm1, ymm2 1462 vpxor ymm9, ymm9, ymm10 1463 vpsrld ymm4, ymm1, 12 1464 vpslld ymm1, ymm1, 20 1465 vpor ymm1, ymm1, ymm4 1466 vpsrld ymm4, ymm9, 12 1467 vpslld ymm9, ymm9, 20 1468 vpor ymm9, ymm9, ymm4 1469 vpaddd ymm0, ymm0, ymm7 1470 vpaddd ymm8, ymm8, ymm15 1471 vpaddd ymm0, ymm0, ymm1 1472 vpaddd ymm8, ymm8, ymm9 1473 vpxor ymm3, ymm3, ymm0 1474 vpxor ymm11, ymm11, ymm8 1475 vbroadcasti128 ymm4, xmmword ptr [ROT8+rip] 1476 vpshufb ymm3, ymm3, ymm4 1477 vpshufb ymm11, ymm11, ymm4 1478 vpaddd ymm2, ymm2, ymm3 1479 vpaddd ymm10, ymm10, ymm11 1480 vpxor ymm1, ymm1, ymm2 1481 vpxor ymm9, ymm9, ymm10 1482 vpsrld ymm4, ymm1, 7 1483 vpslld ymm1, ymm1, 25 1484 vpor ymm1, ymm1, ymm4 1485 vpsrld ymm4, ymm9, 7 1486 vpslld ymm9, ymm9, 25 1487 vpor ymm9, ymm9, ymm4 1488 vpshufd ymm0, ymm0, 0x39 1489 vpshufd ymm8, ymm8, 0x39 1490 vpshufd ymm3, ymm3, 0x4E 1491 vpshufd ymm11, ymm11, 0x4E 1492 vpshufd ymm2, ymm2, 0x93 1493 vpshufd ymm10, ymm10, 0x93 1494 dec al 1495 je 9f 1496 vmovdqa ymm4, ymmword ptr [rsp+0x40] 1497 vmovdqa ymm5, ymmword ptr [rsp+0x80] 1498 vshufps ymm12, ymm4, ymm5, 214 1499 vpshufd ymm13, ymm4, 0x0F 1500 vpshufd ymm4, ymm12, 0x39 1501 vshufps ymm12, ymm6, ymm7, 250 1502 vpblendd ymm13, ymm13, ymm12, 0xAA 1503 vpunpcklqdq ymm12, ymm7, ymm5 1504 vpblendd ymm12, ymm12, ymm6, 0x88 1505 vpshufd ymm12, ymm12, 0x78 1506 vpunpckhdq ymm5, ymm5, ymm7 1507 vpunpckldq ymm6, ymm6, ymm5 1508 vpshufd ymm7, ymm6, 0x1E 1509 vmovdqa ymmword ptr [rsp+0x40], ymm13 1510 vmovdqa ymmword ptr [rsp+0x80], ymm12 1511 vmovdqa ymm12, ymmword ptr [rsp+0x60] 1512 vmovdqa ymm13, ymmword ptr [rsp+0xA0] 1513 vshufps ymm5, ymm12, ymm13, 214 1514 vpshufd ymm6, ymm12, 0x0F 1515 vpshufd ymm12, ymm5, 0x39 1516 vshufps ymm5, ymm14, ymm15, 250 1517 vpblendd ymm6, ymm6, ymm5, 0xAA 1518 vpunpcklqdq ymm5, ymm15, ymm13 1519 vpblendd ymm5, ymm5, ymm14, 0x88 1520 vpshufd ymm5, ymm5, 0x78 1521 vpunpckhdq ymm13, ymm13, ymm15 1522 vpunpckldq ymm14, ymm14, ymm13 1523 vpshufd ymm15, ymm14, 0x1E 1524 vmovdqa ymm13, ymm6 1525 vmovdqa ymm14, ymm5 1526 vmovdqa ymm5, ymmword ptr [rsp+0x40] 1527 vmovdqa ymm6, ymmword ptr [rsp+0x80] 1528 jmp 9b 1529 9: 1530 vpxor ymm0, ymm0, ymm2 1531 vpxor ymm1, ymm1, ymm3 1532 vpxor ymm8, ymm8, ymm10 1533 vpxor ymm9, ymm9, ymm11 1534 mov eax, r13d 1535 cmp rdx, r15 1536 jne 2b 1537 vmovdqu xmmword ptr [rbx], xmm0 1538 vmovdqu xmmword ptr [rbx+0x10], xmm1 1539 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01 1540 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01 1541 vmovdqu xmmword ptr [rbx+0x40], xmm8 1542 vmovdqu xmmword ptr [rbx+0x50], xmm9 1543 vextracti128 xmmword ptr [rbx+0x60], ymm8, 0x01 1544 vextracti128 xmmword ptr [rbx+0x70], ymm9, 0x01 1545 vmovaps xmm8, xmmword ptr [rsp+0x260] 1546 vmovaps xmm0, xmmword ptr [rsp+0x220] 1547 vmovaps xmm1, xmmword ptr [rsp+0x230] 1548 vmovaps xmm2, xmmword ptr [rsp+0x240] 1549 vmovaps xmm3, xmmword ptr [rsp+0x250] 1550 vblendvps xmm0, xmm0, xmm1, xmm8 1551 vblendvps xmm2, xmm2, xmm3, xmm8 1552 vmovaps xmmword ptr [rsp+0x220], xmm0 1553 vmovaps xmmword ptr [rsp+0x240], xmm2 1554 add rbx, 128 1555 add rdi, 32 1556 sub rsi, 4 1557 3: 1558 test rsi, 0x2 1559 je 3f 1560 vbroadcasti128 ymm0, xmmword ptr [rcx] 1561 vbroadcasti128 ymm1, xmmword ptr [rcx+0x10] 1562 vmovd xmm13, dword ptr [rsp+0x220] 1563 vpinsrd xmm13, xmm13, dword ptr [rsp+0x240], 1 1564 vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 2 1565 vmovd xmm14, dword ptr [rsp+0x224] 1566 vpinsrd xmm14, xmm14, dword ptr [rsp+0x244], 1 1567 vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 2 1568 vinserti128 ymm13, ymm13, xmm14, 0x01 1569 vbroadcasti128 ymm14, xmmword ptr [ROT16+rip] 1570 vbroadcasti128 ymm15, xmmword ptr [ROT8+rip] 1571 mov r8, qword ptr [rdi] 1572 mov r9, qword ptr [rdi+0x8] 1573 movzx eax, byte ptr [rbp+0x80] 1574 or eax, r13d 1575 xor edx, edx 1576 .p2align 5 1577 2: 1578 mov r14d, eax 1579 or eax, r12d 1580 add rdx, 64 1581 cmp rdx, r15 1582 cmovne eax, r14d 1583 mov dword ptr [rsp+0x200], eax 1584 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV+rip] 1585 vpbroadcastd ymm8, dword ptr [rsp+0x200] 1586 vpblendd ymm3, ymm13, ymm8, 0x88 1587 vmovups ymm8, ymmword ptr [r8+rdx-0x40] 1588 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x40], 0x01 1589 vmovups ymm9, ymmword ptr [r8+rdx-0x30] 1590 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x30], 0x01 1591 vshufps ymm4, ymm8, ymm9, 136 1592 vshufps ymm5, ymm8, ymm9, 221 1593 vmovups ymm8, ymmword ptr [r8+rdx-0x20] 1594 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-0x20], 0x01 1595 vmovups ymm9, ymmword ptr [r8+rdx-0x10] 1596 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-0x10], 0x01 1597 vshufps ymm6, ymm8, ymm9, 136 1598 vshufps ymm7, ymm8, ymm9, 221 1599 vpshufd ymm6, ymm6, 0x93 1600 vpshufd ymm7, ymm7, 0x93 1601 mov al, 7 1602 9: 1603 vpaddd ymm0, ymm0, ymm4 1604 vpaddd ymm0, ymm0, ymm1 1605 vpxor ymm3, ymm3, ymm0 1606 vpshufb ymm3, ymm3, ymm14 1607 vpaddd ymm2, ymm2, ymm3 1608 vpxor ymm1, ymm1, ymm2 1609 vpsrld ymm8, ymm1, 12 1610 vpslld ymm1, ymm1, 20 1611 vpor ymm1, ymm1, ymm8 1612 vpaddd ymm0, ymm0, ymm5 1613 vpaddd ymm0, ymm0, ymm1 1614 vpxor ymm3, ymm3, ymm0 1615 vpshufb ymm3, ymm3, ymm15 1616 vpaddd ymm2, ymm2, ymm3 1617 vpxor ymm1, ymm1, ymm2 1618 vpsrld ymm8, ymm1, 7 1619 vpslld ymm1, ymm1, 25 1620 vpor ymm1, ymm1, ymm8 1621 vpshufd ymm0, ymm0, 0x93 1622 vpshufd ymm3, ymm3, 0x4E 1623 vpshufd ymm2, ymm2, 0x39 1624 vpaddd ymm0, ymm0, ymm6 1625 vpaddd ymm0, ymm0, ymm1 1626 vpxor ymm3, ymm3, ymm0 1627 vpshufb ymm3, ymm3, ymm14 1628 vpaddd ymm2, ymm2, ymm3 1629 vpxor ymm1, ymm1, ymm2 1630 vpsrld ymm8, ymm1, 12 1631 vpslld ymm1, ymm1, 20 1632 vpor ymm1, ymm1, ymm8 1633 vpaddd ymm0, ymm0, ymm7 1634 vpaddd ymm0, ymm0, ymm1 1635 vpxor ymm3, ymm3, ymm0 1636 vpshufb ymm3, ymm3, ymm15 1637 vpaddd ymm2, ymm2, ymm3 1638 vpxor ymm1, ymm1, ymm2 1639 vpsrld ymm8, ymm1, 7 1640 vpslld ymm1, ymm1, 25 1641 vpor ymm1, ymm1, ymm8 1642 vpshufd ymm0, ymm0, 0x39 1643 vpshufd ymm3, ymm3, 0x4E 1644 vpshufd ymm2, ymm2, 0x93 1645 dec al 1646 jz 9f 1647 vshufps ymm8, ymm4, ymm5, 214 1648 vpshufd ymm9, ymm4, 0x0F 1649 vpshufd ymm4, ymm8, 0x39 1650 vshufps ymm8, ymm6, ymm7, 250 1651 vpblendd ymm9, ymm9, ymm8, 0xAA 1652 vpunpcklqdq ymm8, ymm7, ymm5 1653 vpblendd ymm8, ymm8, ymm6, 0x88 1654 vpshufd ymm8, ymm8, 0x78 1655 vpunpckhdq ymm5, ymm5, ymm7 1656 vpunpckldq ymm6, ymm6, ymm5 1657 vpshufd ymm7, ymm6, 0x1E 1658 vmovdqa ymm5, ymm9 1659 vmovdqa ymm6, ymm8 1660 jmp 9b 1661 9: 1662 vpxor ymm0, ymm0, ymm2 1663 vpxor ymm1, ymm1, ymm3 1664 mov eax, r13d 1665 cmp rdx, r15 1666 jne 2b 1667 vmovdqu xmmword ptr [rbx], xmm0 1668 vmovdqu xmmword ptr [rbx+0x10], xmm1 1669 vextracti128 xmmword ptr [rbx+0x20], ymm0, 0x01 1670 vextracti128 xmmword ptr [rbx+0x30], ymm1, 0x01 1671 vmovaps ymm8, ymmword ptr [rsp+0x260] 1672 vmovaps ymm0, ymmword ptr [rsp+0x220] 1673 vmovups ymm1, ymmword ptr [rsp+0x228] 1674 vmovaps ymm2, ymmword ptr [rsp+0x240] 1675 vmovups ymm3, ymmword ptr [rsp+0x248] 1676 vblendvps ymm0, ymm0, ymm1, ymm8 1677 vblendvps ymm2, ymm2, ymm3, ymm8 1678 vmovaps ymmword ptr [rsp+0x220], ymm0 1679 vmovaps ymmword ptr [rsp+0x240], ymm2 1680 add rbx, 64 1681 add rdi, 16 1682 sub rsi, 2 1683 3: 1684 test rsi, 0x1 1685 je 4b 1686 vmovdqu xmm0, xmmword ptr [rcx] 1687 vmovdqu xmm1, xmmword ptr [rcx+0x10] 1688 vmovd xmm3, dword ptr [rsp+0x220] 1689 vpinsrd xmm3, xmm3, dword ptr [rsp+0x240], 1 1690 vpinsrd xmm13, xmm3, dword ptr [BLAKE3_BLOCK_LEN+rip], 2 1691 vmovdqa xmm14, xmmword ptr [ROT16+rip] 1692 vmovdqa xmm15, xmmword ptr [ROT8+rip] 1693 mov r8, qword ptr [rdi] 1694 movzx eax, byte ptr [rbp+0x80] 1695 or eax, r13d 1696 xor edx, edx 1697 .p2align 5 1698 2: 1699 mov r14d, eax 1700 or eax, r12d 1701 add rdx, 64 1702 cmp rdx, r15 1703 cmovne eax, r14d 1704 vmovdqa xmm2, xmmword ptr [BLAKE3_IV+rip] 1705 vmovdqa xmm3, xmm13 1706 vpinsrd xmm3, xmm3, eax, 3 1707 vmovups xmm8, xmmword ptr [r8+rdx-0x40] 1708 vmovups xmm9, xmmword ptr [r8+rdx-0x30] 1709 vshufps xmm4, xmm8, xmm9, 136 1710 vshufps xmm5, xmm8, xmm9, 221 1711 vmovups xmm8, xmmword ptr [r8+rdx-0x20] 1712 vmovups xmm9, xmmword ptr [r8+rdx-0x10] 1713 vshufps xmm6, xmm8, xmm9, 136 1714 vshufps xmm7, xmm8, xmm9, 221 1715 vpshufd xmm6, xmm6, 0x93 1716 vpshufd xmm7, xmm7, 0x93 1717 mov al, 7 1718 9: 1719 vpaddd xmm0, xmm0, xmm4 1720 vpaddd xmm0, xmm0, xmm1 1721 vpxor xmm3, xmm3, xmm0 1722 vpshufb xmm3, xmm3, xmm14 1723 vpaddd xmm2, xmm2, xmm3 1724 vpxor xmm1, xmm1, xmm2 1725 vpsrld xmm8, xmm1, 12 1726 vpslld xmm1, xmm1, 20 1727 vpor xmm1, xmm1, xmm8 1728 vpaddd xmm0, xmm0, xmm5 1729 vpaddd xmm0, xmm0, xmm1 1730 vpxor xmm3, xmm3, xmm0 1731 vpshufb xmm3, xmm3, xmm15 1732 vpaddd xmm2, xmm2, xmm3 1733 vpxor xmm1, xmm1, xmm2 1734 vpsrld xmm8, xmm1, 7 1735 vpslld xmm1, xmm1, 25 1736 vpor xmm1, xmm1, xmm8 1737 vpshufd xmm0, xmm0, 0x93 1738 vpshufd xmm3, xmm3, 0x4E 1739 vpshufd xmm2, xmm2, 0x39 1740 vpaddd xmm0, xmm0, xmm6 1741 vpaddd xmm0, xmm0, xmm1 1742 vpxor xmm3, xmm3, xmm0 1743 vpshufb xmm3, xmm3, xmm14 1744 vpaddd xmm2, xmm2, xmm3 1745 vpxor xmm1, xmm1, xmm2 1746 vpsrld xmm8, xmm1, 12 1747 vpslld xmm1, xmm1, 20 1748 vpor xmm1, xmm1, xmm8 1749 vpaddd xmm0, xmm0, xmm7 1750 vpaddd xmm0, xmm0, xmm1 1751 vpxor xmm3, xmm3, xmm0 1752 vpshufb xmm3, xmm3, xmm15 1753 vpaddd xmm2, xmm2, xmm3 1754 vpxor xmm1, xmm1, xmm2 1755 vpsrld xmm8, xmm1, 7 1756 vpslld xmm1, xmm1, 25 1757 vpor xmm1, xmm1, xmm8 1758 vpshufd xmm0, xmm0, 0x39 1759 vpshufd xmm3, xmm3, 0x4E 1760 vpshufd xmm2, xmm2, 0x93 1761 dec al 1762 jz 9f 1763 vshufps xmm8, xmm4, xmm5, 214 1764 vpshufd xmm9, xmm4, 0x0F 1765 vpshufd xmm4, xmm8, 0x39 1766 vshufps xmm8, xmm6, xmm7, 250 1767 vpblendd xmm9, xmm9, xmm8, 0xAA 1768 vpunpcklqdq xmm8, xmm7, xmm5 1769 vpblendd xmm8, xmm8, xmm6, 0x88 1770 vpshufd xmm8, xmm8, 0x78 1771 vpunpckhdq xmm5, xmm5, xmm7 1772 vpunpckldq xmm6, xmm6, xmm5 1773 vpshufd xmm7, xmm6, 0x1E 1774 vmovdqa xmm5, xmm9 1775 vmovdqa xmm6, xmm8 1776 jmp 9b 1777 9: 1778 vpxor xmm0, xmm0, xmm2 1779 vpxor xmm1, xmm1, xmm3 1780 mov eax, r13d 1781 cmp rdx, r15 1782 jne 2b 1783 vmovdqu xmmword ptr [rbx], xmm0 1784 vmovdqu xmmword ptr [rbx+0x10], xmm1 1785 jmp 4b 1786 1787 .section .rodata 1788 .p2align 6 1789 ADD0: 1790 .long 0, 1, 2, 3, 4, 5, 6, 7 1791 ADD1: 1792 .long 8, 8, 8, 8, 8, 8, 8, 8 1793 BLAKE3_IV_0: 1794 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E667 1795 .long 0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E667 1796 BLAKE3_IV_1: 1797 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE85 1798 .long 0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE85 1799 BLAKE3_IV_2: 1800 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF372 1801 .long 0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF372 1802 BLAKE3_IV_3: 1803 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A 1804 .long 0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A 1805 BLAKE3_BLOCK_LEN: 1806 .long 0x00000040, 0x00000040, 0x00000040, 0x00000040 1807 .long 0x00000040, 0x00000040, 0x00000040, 0x00000040 1808 ROT16: 1809 .byte 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 13 1810 ROT8: 1811 .byte 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 12 1812 CMP_MSB_MASK: 1813 .long 0x80000000, 0x80000000, 0x80000000, 0x80000000 1814 .long 0x80000000, 0x80000000, 0x80000000, 0x80000000 1815 BLAKE3_IV: 1816 .long 0x6A09E667, 0xBB67AE85, 0x3C6EF372, 0xA54FF53A 1817