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