1829 lines · plain
1public _llvm_blake3_hash_many_avx22public llvm_blake3_hash_many_avx23 4_TEXT SEGMENT ALIGN(16) 'CODE'5 6ALIGN 167llvm_blake3_hash_many_avx2 PROC8_llvm_blake3_hash_many_avx2 PROC9 push r1510 push r1411 push r1312 push r1213 push rsi14 push rdi15 push rbx16 push rbp17 mov rbp, rsp18 sub rsp, 88019 and rsp, 0FFFFFFFFFFFFFFC0H20 vmovdqa xmmword ptr [rsp+2D0H], xmm621 vmovdqa xmmword ptr [rsp+2E0H], xmm722 vmovdqa xmmword ptr [rsp+2F0H], xmm823 vmovdqa xmmword ptr [rsp+300H], xmm924 vmovdqa xmmword ptr [rsp+310H], xmm1025 vmovdqa xmmword ptr [rsp+320H], xmm1126 vmovdqa xmmword ptr [rsp+330H], xmm1227 vmovdqa xmmword ptr [rsp+340H], xmm1328 vmovdqa xmmword ptr [rsp+350H], xmm1429 vmovdqa xmmword ptr [rsp+360H], xmm1530 mov rdi, rcx31 mov rsi, rdx32 mov rdx, r833 mov rcx, r934 mov r8, qword ptr [rbp+68H]35 movzx r9, byte ptr [rbp+70H]36 neg r9d37 vmovd xmm0, r9d38 vpbroadcastd ymm0, xmm039 vmovdqa ymmword ptr [rsp+260H], ymm040 vpand ymm1, ymm0, ymmword ptr [ADD0]41 vpand ymm2, ymm0, ymmword ptr [ADD1]42 vmovdqa ymmword ptr [rsp+2A0H], ymm243 vmovd xmm2, r8d44 vpbroadcastd ymm2, xmm245 vpaddd ymm2, ymm2, ymm146 vmovdqa ymmword ptr [rsp+220H], ymm247 vpxor ymm1, ymm1, ymmword ptr [CMP_MSB_MASK]48 vpxor ymm2, ymm2, ymmword ptr [CMP_MSB_MASK]49 vpcmpgtd ymm2, ymm1, ymm250 shr r8, 3251 vmovd xmm3, r8d52 vpbroadcastd ymm3, xmm353 vpsubd ymm3, ymm3, ymm254 vmovdqa ymmword ptr [rsp+240H], ymm355 shl rdx, 656 mov qword ptr [rsp+2C0H], rdx57 cmp rsi, 858 jc final7blocks59outerloop8:60 vpbroadcastd ymm0, dword ptr [rcx]61 vpbroadcastd ymm1, dword ptr [rcx+4H]62 vpbroadcastd ymm2, dword ptr [rcx+8H]63 vpbroadcastd ymm3, dword ptr [rcx+0CH]64 vpbroadcastd ymm4, dword ptr [rcx+10H]65 vpbroadcastd ymm5, dword ptr [rcx+14H]66 vpbroadcastd ymm6, dword ptr [rcx+18H]67 vpbroadcastd ymm7, dword ptr [rcx+1CH]68 mov r8, qword ptr [rdi]69 mov r9, qword ptr [rdi+8H]70 mov r10, qword ptr [rdi+10H]71 mov r11, qword ptr [rdi+18H]72 mov r12, qword ptr [rdi+20H]73 mov r13, qword ptr [rdi+28H]74 mov r14, qword ptr [rdi+30H]75 mov r15, qword ptr [rdi+38H]76 movzx eax, byte ptr [rbp+78H]77 movzx ebx, byte ptr [rbp+80H]78 or eax, ebx79 xor edx, edx80ALIGN 1681innerloop8:82 movzx ebx, byte ptr [rbp+88H]83 or ebx, eax84 add rdx, 6485 cmp rdx, qword ptr [rsp+2C0H]86 cmove eax, ebx87 mov dword ptr [rsp+200H], eax88 vmovups xmm8, xmmword ptr [r8+rdx-40H]89 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-40H], 01H90 vmovups xmm9, xmmword ptr [r9+rdx-40H]91 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-40H], 01H92 vunpcklpd ymm12, ymm8, ymm993 vunpckhpd ymm13, ymm8, ymm994 vmovups xmm10, xmmword ptr [r10+rdx-40H]95 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-40H], 01H96 vmovups xmm11, xmmword ptr [r11+rdx-40H]97 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-40H], 01H98 vunpcklpd ymm14, ymm10, ymm1199 vunpckhpd ymm15, ymm10, ymm11100 vshufps ymm8, ymm12, ymm14, 136101 vmovaps ymmword ptr [rsp], ymm8102 vshufps ymm9, ymm12, ymm14, 221103 vmovaps ymmword ptr [rsp+20H], ymm9104 vshufps ymm10, ymm13, ymm15, 136105 vmovaps ymmword ptr [rsp+40H], ymm10106 vshufps ymm11, ymm13, ymm15, 221107 vmovaps ymmword ptr [rsp+60H], ymm11108 vmovups xmm8, xmmword ptr [r8+rdx-30H]109 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-30H], 01H110 vmovups xmm9, xmmword ptr [r9+rdx-30H]111 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-30H], 01H112 vunpcklpd ymm12, ymm8, ymm9113 vunpckhpd ymm13, ymm8, ymm9114 vmovups xmm10, xmmword ptr [r10+rdx-30H]115 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-30H], 01H116 vmovups xmm11, xmmword ptr [r11+rdx-30H]117 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-30H], 01H118 vunpcklpd ymm14, ymm10, ymm11119 vunpckhpd ymm15, ymm10, ymm11120 vshufps ymm8, ymm12, ymm14, 136121 vmovaps ymmword ptr [rsp+80H], ymm8122 vshufps ymm9, ymm12, ymm14, 221123 vmovaps ymmword ptr [rsp+0A0H], ymm9124 vshufps ymm10, ymm13, ymm15, 136125 vmovaps ymmword ptr [rsp+0C0H], ymm10126 vshufps ymm11, ymm13, ymm15, 221127 vmovaps ymmword ptr [rsp+0E0H], ymm11128 vmovups xmm8, xmmword ptr [r8+rdx-20H]129 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-20H], 01H130 vmovups xmm9, xmmword ptr [r9+rdx-20H]131 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-20H], 01H132 vunpcklpd ymm12, ymm8, ymm9133 vunpckhpd ymm13, ymm8, ymm9134 vmovups xmm10, xmmword ptr [r10+rdx-20H]135 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-20H], 01H136 vmovups xmm11, xmmword ptr [r11+rdx-20H]137 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-20H], 01H138 vunpcklpd ymm14, ymm10, ymm11139 vunpckhpd ymm15, ymm10, ymm11140 vshufps ymm8, ymm12, ymm14, 136141 vmovaps ymmword ptr [rsp+100H], ymm8142 vshufps ymm9, ymm12, ymm14, 221143 vmovaps ymmword ptr [rsp+120H], ymm9144 vshufps ymm10, ymm13, ymm15, 136145 vmovaps ymmword ptr [rsp+140H], ymm10146 vshufps ymm11, ymm13, ymm15, 221147 vmovaps ymmword ptr [rsp+160H], ymm11148 vmovups xmm8, xmmword ptr [r8+rdx-10H]149 vinsertf128 ymm8, ymm8, xmmword ptr [r12+rdx-10H], 01H150 vmovups xmm9, xmmword ptr [r9+rdx-10H]151 vinsertf128 ymm9, ymm9, xmmword ptr [r13+rdx-10H], 01H152 vunpcklpd ymm12, ymm8, ymm9153 vunpckhpd ymm13, ymm8, ymm9154 vmovups xmm10, xmmword ptr [r10+rdx-10H]155 vinsertf128 ymm10, ymm10, xmmword ptr [r14+rdx-10H], 01H156 vmovups xmm11, xmmword ptr [r11+rdx-10H]157 vinsertf128 ymm11, ymm11, xmmword ptr [r15+rdx-10H], 01H158 vunpcklpd ymm14, ymm10, ymm11159 vunpckhpd ymm15, ymm10, ymm11160 vshufps ymm8, ymm12, ymm14, 136161 vmovaps ymmword ptr [rsp+180H], ymm8162 vshufps ymm9, ymm12, ymm14, 221163 vmovaps ymmword ptr [rsp+1A0H], ymm9164 vshufps ymm10, ymm13, ymm15, 136165 vmovaps ymmword ptr [rsp+1C0H], ymm10166 vshufps ymm11, ymm13, ymm15, 221167 vmovaps ymmword ptr [rsp+1E0H], ymm11168 vpbroadcastd ymm15, dword ptr [rsp+200H]169 prefetcht0 byte ptr [r8+rdx+80H]170 prefetcht0 byte ptr [r12+rdx+80H]171 prefetcht0 byte ptr [r9+rdx+80H]172 prefetcht0 byte ptr [r13+rdx+80H]173 prefetcht0 byte ptr [r10+rdx+80H]174 prefetcht0 byte ptr [r14+rdx+80H]175 prefetcht0 byte ptr [r11+rdx+80H]176 prefetcht0 byte ptr [r15+rdx+80H]177 vpaddd ymm0, ymm0, ymmword ptr [rsp]178 vpaddd ymm1, ymm1, ymmword ptr [rsp+40H]179 vpaddd ymm2, ymm2, ymmword ptr [rsp+80H]180 vpaddd ymm3, ymm3, ymmword ptr [rsp+0C0H]181 vpaddd ymm0, ymm0, ymm4182 vpaddd ymm1, ymm1, ymm5183 vpaddd ymm2, ymm2, ymm6184 vpaddd ymm3, ymm3, ymm7185 vpxor ymm12, ymm0, ymmword ptr [rsp+220H]186 vpxor ymm13, ymm1, ymmword ptr [rsp+240H]187 vpxor ymm14, ymm2, ymmword ptr [BLAKE3_BLOCK_LEN]188 vpxor ymm15, ymm3, ymm15189 vbroadcasti128 ymm8, xmmword ptr [ROT16]190 vpshufb ymm12, ymm12, ymm8191 vpshufb ymm13, ymm13, ymm8192 vpshufb ymm14, ymm14, ymm8193 vpshufb ymm15, ymm15, ymm8194 vpaddd ymm8, ymm12, ymmword ptr [BLAKE3_IV_0]195 vpaddd ymm9, ymm13, ymmword ptr [BLAKE3_IV_1]196 vpaddd ymm10, ymm14, ymmword ptr [BLAKE3_IV_2]197 vpaddd ymm11, ymm15, ymmword ptr [BLAKE3_IV_3]198 vpxor ymm4, ymm4, ymm8199 vpxor ymm5, ymm5, ymm9200 vpxor ymm6, ymm6, ymm10201 vpxor ymm7, ymm7, ymm11202 vmovdqa ymmword ptr [rsp+200H], ymm8203 vpsrld ymm8, ymm4, 12204 vpslld ymm4, ymm4, 20205 vpor ymm4, ymm4, ymm8206 vpsrld ymm8, ymm5, 12207 vpslld ymm5, ymm5, 20208 vpor ymm5, ymm5, ymm8209 vpsrld ymm8, ymm6, 12210 vpslld ymm6, ymm6, 20211 vpor ymm6, ymm6, ymm8212 vpsrld ymm8, ymm7, 12213 vpslld ymm7, ymm7, 20214 vpor ymm7, ymm7, ymm8215 vpaddd ymm0, ymm0, ymmword ptr [rsp+20H]216 vpaddd ymm1, ymm1, ymmword ptr [rsp+60H]217 vpaddd ymm2, ymm2, ymmword ptr [rsp+0A0H]218 vpaddd ymm3, ymm3, ymmword ptr [rsp+0E0H]219 vpaddd ymm0, ymm0, ymm4220 vpaddd ymm1, ymm1, ymm5221 vpaddd ymm2, ymm2, ymm6222 vpaddd ymm3, ymm3, ymm7223 vpxor ymm12, ymm12, ymm0224 vpxor ymm13, ymm13, ymm1225 vpxor ymm14, ymm14, ymm2226 vpxor ymm15, ymm15, ymm3227 vbroadcasti128 ymm8, xmmword ptr [ROT8]228 vpshufb ymm12, ymm12, ymm8229 vpshufb ymm13, ymm13, ymm8230 vpshufb ymm14, ymm14, ymm8231 vpshufb ymm15, ymm15, ymm8232 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]233 vpaddd ymm9, ymm9, ymm13234 vpaddd ymm10, ymm10, ymm14235 vpaddd ymm11, ymm11, ymm15236 vpxor ymm4, ymm4, ymm8237 vpxor ymm5, ymm5, ymm9238 vpxor ymm6, ymm6, ymm10239 vpxor ymm7, ymm7, ymm11240 vmovdqa ymmword ptr [rsp+200H], ymm8241 vpsrld ymm8, ymm4, 7242 vpslld ymm4, ymm4, 25243 vpor ymm4, ymm4, ymm8244 vpsrld ymm8, ymm5, 7245 vpslld ymm5, ymm5, 25246 vpor ymm5, ymm5, ymm8247 vpsrld ymm8, ymm6, 7248 vpslld ymm6, ymm6, 25249 vpor ymm6, ymm6, ymm8250 vpsrld ymm8, ymm7, 7251 vpslld ymm7, ymm7, 25252 vpor ymm7, ymm7, ymm8253 vpaddd ymm0, ymm0, ymmword ptr [rsp+100H]254 vpaddd ymm1, ymm1, ymmword ptr [rsp+140H]255 vpaddd ymm2, ymm2, ymmword ptr [rsp+180H]256 vpaddd ymm3, ymm3, ymmword ptr [rsp+1C0H]257 vpaddd ymm0, ymm0, ymm5258 vpaddd ymm1, ymm1, ymm6259 vpaddd ymm2, ymm2, ymm7260 vpaddd ymm3, ymm3, ymm4261 vpxor ymm15, ymm15, ymm0262 vpxor ymm12, ymm12, ymm1263 vpxor ymm13, ymm13, ymm2264 vpxor ymm14, ymm14, ymm3265 vbroadcasti128 ymm8, xmmword ptr [ROT16]266 vpshufb ymm15, ymm15, ymm8267 vpshufb ymm12, ymm12, ymm8268 vpshufb ymm13, ymm13, ymm8269 vpshufb ymm14, ymm14, ymm8270 vpaddd ymm10, ymm10, ymm15271 vpaddd ymm11, ymm11, ymm12272 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]273 vpaddd ymm9, ymm9, ymm14274 vpxor ymm5, ymm5, ymm10275 vpxor ymm6, ymm6, ymm11276 vpxor ymm7, ymm7, ymm8277 vpxor ymm4, ymm4, ymm9278 vmovdqa ymmword ptr [rsp+200H], ymm8279 vpsrld ymm8, ymm5, 12280 vpslld ymm5, ymm5, 20281 vpor ymm5, ymm5, ymm8282 vpsrld ymm8, ymm6, 12283 vpslld ymm6, ymm6, 20284 vpor ymm6, ymm6, ymm8285 vpsrld ymm8, ymm7, 12286 vpslld ymm7, ymm7, 20287 vpor ymm7, ymm7, ymm8288 vpsrld ymm8, ymm4, 12289 vpslld ymm4, ymm4, 20290 vpor ymm4, ymm4, ymm8291 vpaddd ymm0, ymm0, ymmword ptr [rsp+120H]292 vpaddd ymm1, ymm1, ymmword ptr [rsp+160H]293 vpaddd ymm2, ymm2, ymmword ptr [rsp+1A0H]294 vpaddd ymm3, ymm3, ymmword ptr [rsp+1E0H]295 vpaddd ymm0, ymm0, ymm5296 vpaddd ymm1, ymm1, ymm6297 vpaddd ymm2, ymm2, ymm7298 vpaddd ymm3, ymm3, ymm4299 vpxor ymm15, ymm15, ymm0300 vpxor ymm12, ymm12, ymm1301 vpxor ymm13, ymm13, ymm2302 vpxor ymm14, ymm14, ymm3303 vbroadcasti128 ymm8, xmmword ptr [ROT8]304 vpshufb ymm15, ymm15, ymm8305 vpshufb ymm12, ymm12, ymm8306 vpshufb ymm13, ymm13, ymm8307 vpshufb ymm14, ymm14, ymm8308 vpaddd ymm10, ymm10, ymm15309 vpaddd ymm11, ymm11, ymm12310 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]311 vpaddd ymm9, ymm9, ymm14312 vpxor ymm5, ymm5, ymm10313 vpxor ymm6, ymm6, ymm11314 vpxor ymm7, ymm7, ymm8315 vpxor ymm4, ymm4, ymm9316 vmovdqa ymmword ptr [rsp+200H], ymm8317 vpsrld ymm8, ymm5, 7318 vpslld ymm5, ymm5, 25319 vpor ymm5, ymm5, ymm8320 vpsrld ymm8, ymm6, 7321 vpslld ymm6, ymm6, 25322 vpor ymm6, ymm6, ymm8323 vpsrld ymm8, ymm7, 7324 vpslld ymm7, ymm7, 25325 vpor ymm7, ymm7, ymm8326 vpsrld ymm8, ymm4, 7327 vpslld ymm4, ymm4, 25328 vpor ymm4, ymm4, ymm8329 vpaddd ymm0, ymm0, ymmword ptr [rsp+40H]330 vpaddd ymm1, ymm1, ymmword ptr [rsp+60H]331 vpaddd ymm2, ymm2, ymmword ptr [rsp+0E0H]332 vpaddd ymm3, ymm3, ymmword ptr [rsp+80H]333 vpaddd ymm0, ymm0, ymm4334 vpaddd ymm1, ymm1, ymm5335 vpaddd ymm2, ymm2, ymm6336 vpaddd ymm3, ymm3, ymm7337 vpxor ymm12, ymm12, ymm0338 vpxor ymm13, ymm13, ymm1339 vpxor ymm14, ymm14, ymm2340 vpxor ymm15, ymm15, ymm3341 vbroadcasti128 ymm8, xmmword ptr [ROT16]342 vpshufb ymm12, ymm12, ymm8343 vpshufb ymm13, ymm13, ymm8344 vpshufb ymm14, ymm14, ymm8345 vpshufb ymm15, ymm15, ymm8346 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]347 vpaddd ymm9, ymm9, ymm13348 vpaddd ymm10, ymm10, ymm14349 vpaddd ymm11, ymm11, ymm15350 vpxor ymm4, ymm4, ymm8351 vpxor ymm5, ymm5, ymm9352 vpxor ymm6, ymm6, ymm10353 vpxor ymm7, ymm7, ymm11354 vmovdqa ymmword ptr [rsp+200H], ymm8355 vpsrld ymm8, ymm4, 12356 vpslld ymm4, ymm4, 20357 vpor ymm4, ymm4, ymm8358 vpsrld ymm8, ymm5, 12359 vpslld ymm5, ymm5, 20360 vpor ymm5, ymm5, ymm8361 vpsrld ymm8, ymm6, 12362 vpslld ymm6, ymm6, 20363 vpor ymm6, ymm6, ymm8364 vpsrld ymm8, ymm7, 12365 vpslld ymm7, ymm7, 20366 vpor ymm7, ymm7, ymm8367 vpaddd ymm0, ymm0, ymmword ptr [rsp+0C0H]368 vpaddd ymm1, ymm1, ymmword ptr [rsp+140H]369 vpaddd ymm2, ymm2, ymmword ptr [rsp]370 vpaddd ymm3, ymm3, ymmword ptr [rsp+1A0H]371 vpaddd ymm0, ymm0, ymm4372 vpaddd ymm1, ymm1, ymm5373 vpaddd ymm2, ymm2, ymm6374 vpaddd ymm3, ymm3, ymm7375 vpxor ymm12, ymm12, ymm0376 vpxor ymm13, ymm13, ymm1377 vpxor ymm14, ymm14, ymm2378 vpxor ymm15, ymm15, ymm3379 vbroadcasti128 ymm8, xmmword ptr [ROT8]380 vpshufb ymm12, ymm12, ymm8381 vpshufb ymm13, ymm13, ymm8382 vpshufb ymm14, ymm14, ymm8383 vpshufb ymm15, ymm15, ymm8384 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]385 vpaddd ymm9, ymm9, ymm13386 vpaddd ymm10, ymm10, ymm14387 vpaddd ymm11, ymm11, ymm15388 vpxor ymm4, ymm4, ymm8389 vpxor ymm5, ymm5, ymm9390 vpxor ymm6, ymm6, ymm10391 vpxor ymm7, ymm7, ymm11392 vmovdqa ymmword ptr [rsp+200H], ymm8393 vpsrld ymm8, ymm4, 7394 vpslld ymm4, ymm4, 25395 vpor ymm4, ymm4, ymm8396 vpsrld ymm8, ymm5, 7397 vpslld ymm5, ymm5, 25398 vpor ymm5, ymm5, ymm8399 vpsrld ymm8, ymm6, 7400 vpslld ymm6, ymm6, 25401 vpor ymm6, ymm6, ymm8402 vpsrld ymm8, ymm7, 7403 vpslld ymm7, ymm7, 25404 vpor ymm7, ymm7, ymm8405 vpaddd ymm0, ymm0, ymmword ptr [rsp+20H]406 vpaddd ymm1, ymm1, ymmword ptr [rsp+180H]407 vpaddd ymm2, ymm2, ymmword ptr [rsp+120H]408 vpaddd ymm3, ymm3, ymmword ptr [rsp+1E0H]409 vpaddd ymm0, ymm0, ymm5410 vpaddd ymm1, ymm1, ymm6411 vpaddd ymm2, ymm2, ymm7412 vpaddd ymm3, ymm3, ymm4413 vpxor ymm15, ymm15, ymm0414 vpxor ymm12, ymm12, ymm1415 vpxor ymm13, ymm13, ymm2416 vpxor ymm14, ymm14, ymm3417 vbroadcasti128 ymm8, xmmword ptr [ROT16]418 vpshufb ymm15, ymm15, ymm8419 vpshufb ymm12, ymm12, ymm8420 vpshufb ymm13, ymm13, ymm8421 vpshufb ymm14, ymm14, ymm8422 vpaddd ymm10, ymm10, ymm15423 vpaddd ymm11, ymm11, ymm12424 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]425 vpaddd ymm9, ymm9, ymm14426 vpxor ymm5, ymm5, ymm10427 vpxor ymm6, ymm6, ymm11428 vpxor ymm7, ymm7, ymm8429 vpxor ymm4, ymm4, ymm9430 vmovdqa ymmword ptr [rsp+200H], ymm8431 vpsrld ymm8, ymm5, 12432 vpslld ymm5, ymm5, 20433 vpor ymm5, ymm5, ymm8434 vpsrld ymm8, ymm6, 12435 vpslld ymm6, ymm6, 20436 vpor ymm6, ymm6, ymm8437 vpsrld ymm8, ymm7, 12438 vpslld ymm7, ymm7, 20439 vpor ymm7, ymm7, ymm8440 vpsrld ymm8, ymm4, 12441 vpslld ymm4, ymm4, 20442 vpor ymm4, ymm4, ymm8443 vpaddd ymm0, ymm0, ymmword ptr [rsp+160H]444 vpaddd ymm1, ymm1, ymmword ptr [rsp+0A0H]445 vpaddd ymm2, ymm2, ymmword ptr [rsp+1C0H]446 vpaddd ymm3, ymm3, ymmword ptr [rsp+100H]447 vpaddd ymm0, ymm0, ymm5448 vpaddd ymm1, ymm1, ymm6449 vpaddd ymm2, ymm2, ymm7450 vpaddd ymm3, ymm3, ymm4451 vpxor ymm15, ymm15, ymm0452 vpxor ymm12, ymm12, ymm1453 vpxor ymm13, ymm13, ymm2454 vpxor ymm14, ymm14, ymm3455 vbroadcasti128 ymm8, xmmword ptr [ROT8]456 vpshufb ymm15, ymm15, ymm8457 vpshufb ymm12, ymm12, ymm8458 vpshufb ymm13, ymm13, ymm8459 vpshufb ymm14, ymm14, ymm8460 vpaddd ymm10, ymm10, ymm15461 vpaddd ymm11, ymm11, ymm12462 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]463 vpaddd ymm9, ymm9, ymm14464 vpxor ymm5, ymm5, ymm10465 vpxor ymm6, ymm6, ymm11466 vpxor ymm7, ymm7, ymm8467 vpxor ymm4, ymm4, ymm9468 vmovdqa ymmword ptr [rsp+200H], ymm8469 vpsrld ymm8, ymm5, 7470 vpslld ymm5, ymm5, 25471 vpor ymm5, ymm5, ymm8472 vpsrld ymm8, ymm6, 7473 vpslld ymm6, ymm6, 25474 vpor ymm6, ymm6, ymm8475 vpsrld ymm8, ymm7, 7476 vpslld ymm7, ymm7, 25477 vpor ymm7, ymm7, ymm8478 vpsrld ymm8, ymm4, 7479 vpslld ymm4, ymm4, 25480 vpor ymm4, ymm4, ymm8481 vpaddd ymm0, ymm0, ymmword ptr [rsp+60H]482 vpaddd ymm1, ymm1, ymmword ptr [rsp+140H]483 vpaddd ymm2, ymm2, ymmword ptr [rsp+1A0H]484 vpaddd ymm3, ymm3, ymmword ptr [rsp+0E0H]485 vpaddd ymm0, ymm0, ymm4486 vpaddd ymm1, ymm1, ymm5487 vpaddd ymm2, ymm2, ymm6488 vpaddd ymm3, ymm3, ymm7489 vpxor ymm12, ymm12, ymm0490 vpxor ymm13, ymm13, ymm1491 vpxor ymm14, ymm14, ymm2492 vpxor ymm15, ymm15, ymm3493 vbroadcasti128 ymm8, xmmword ptr [ROT16]494 vpshufb ymm12, ymm12, ymm8495 vpshufb ymm13, ymm13, ymm8496 vpshufb ymm14, ymm14, ymm8497 vpshufb ymm15, ymm15, ymm8498 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]499 vpaddd ymm9, ymm9, ymm13500 vpaddd ymm10, ymm10, ymm14501 vpaddd ymm11, ymm11, ymm15502 vpxor ymm4, ymm4, ymm8503 vpxor ymm5, ymm5, ymm9504 vpxor ymm6, ymm6, ymm10505 vpxor ymm7, ymm7, ymm11506 vmovdqa ymmword ptr [rsp+200H], ymm8507 vpsrld ymm8, ymm4, 12508 vpslld ymm4, ymm4, 20509 vpor ymm4, ymm4, ymm8510 vpsrld ymm8, ymm5, 12511 vpslld ymm5, ymm5, 20512 vpor ymm5, ymm5, ymm8513 vpsrld ymm8, ymm6, 12514 vpslld ymm6, ymm6, 20515 vpor ymm6, ymm6, ymm8516 vpsrld ymm8, ymm7, 12517 vpslld ymm7, ymm7, 20518 vpor ymm7, ymm7, ymm8519 vpaddd ymm0, ymm0, ymmword ptr [rsp+80H]520 vpaddd ymm1, ymm1, ymmword ptr [rsp+180H]521 vpaddd ymm2, ymm2, ymmword ptr [rsp+40H]522 vpaddd ymm3, ymm3, ymmword ptr [rsp+1C0H]523 vpaddd ymm0, ymm0, ymm4524 vpaddd ymm1, ymm1, ymm5525 vpaddd ymm2, ymm2, ymm6526 vpaddd ymm3, ymm3, ymm7527 vpxor ymm12, ymm12, ymm0528 vpxor ymm13, ymm13, ymm1529 vpxor ymm14, ymm14, ymm2530 vpxor ymm15, ymm15, ymm3531 vbroadcasti128 ymm8, xmmword ptr [ROT8]532 vpshufb ymm12, ymm12, ymm8533 vpshufb ymm13, ymm13, ymm8534 vpshufb ymm14, ymm14, ymm8535 vpshufb ymm15, ymm15, ymm8536 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]537 vpaddd ymm9, ymm9, ymm13538 vpaddd ymm10, ymm10, ymm14539 vpaddd ymm11, ymm11, ymm15540 vpxor ymm4, ymm4, ymm8541 vpxor ymm5, ymm5, ymm9542 vpxor ymm6, ymm6, ymm10543 vpxor ymm7, ymm7, ymm11544 vmovdqa ymmword ptr [rsp+200H], ymm8545 vpsrld ymm8, ymm4, 7546 vpslld ymm4, ymm4, 25547 vpor ymm4, ymm4, ymm8548 vpsrld ymm8, ymm5, 7549 vpslld ymm5, ymm5, 25550 vpor ymm5, ymm5, ymm8551 vpsrld ymm8, ymm6, 7552 vpslld ymm6, ymm6, 25553 vpor ymm6, ymm6, ymm8554 vpsrld ymm8, ymm7, 7555 vpslld ymm7, ymm7, 25556 vpor ymm7, ymm7, ymm8557 vpaddd ymm0, ymm0, ymmword ptr [rsp+0C0H]558 vpaddd ymm1, ymm1, ymmword ptr [rsp+120H]559 vpaddd ymm2, ymm2, ymmword ptr [rsp+160H]560 vpaddd ymm3, ymm3, ymmword ptr [rsp+100H]561 vpaddd ymm0, ymm0, ymm5562 vpaddd ymm1, ymm1, ymm6563 vpaddd ymm2, ymm2, ymm7564 vpaddd ymm3, ymm3, ymm4565 vpxor ymm15, ymm15, ymm0566 vpxor ymm12, ymm12, ymm1567 vpxor ymm13, ymm13, ymm2568 vpxor ymm14, ymm14, ymm3569 vbroadcasti128 ymm8, xmmword ptr [ROT16]570 vpshufb ymm15, ymm15, ymm8571 vpshufb ymm12, ymm12, ymm8572 vpshufb ymm13, ymm13, ymm8573 vpshufb ymm14, ymm14, ymm8574 vpaddd ymm10, ymm10, ymm15575 vpaddd ymm11, ymm11, ymm12576 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]577 vpaddd ymm9, ymm9, ymm14578 vpxor ymm5, ymm5, ymm10579 vpxor ymm6, ymm6, ymm11580 vpxor ymm7, ymm7, ymm8581 vpxor ymm4, ymm4, ymm9582 vmovdqa ymmword ptr [rsp+200H], ymm8583 vpsrld ymm8, ymm5, 12584 vpslld ymm5, ymm5, 20585 vpor ymm5, ymm5, ymm8586 vpsrld ymm8, ymm6, 12587 vpslld ymm6, ymm6, 20588 vpor ymm6, ymm6, ymm8589 vpsrld ymm8, ymm7, 12590 vpslld ymm7, ymm7, 20591 vpor ymm7, ymm7, ymm8592 vpsrld ymm8, ymm4, 12593 vpslld ymm4, ymm4, 20594 vpor ymm4, ymm4, ymm8595 vpaddd ymm0, ymm0, ymmword ptr [rsp+0A0H]596 vpaddd ymm1, ymm1, ymmword ptr [rsp]597 vpaddd ymm2, ymm2, ymmword ptr [rsp+1E0H]598 vpaddd ymm3, ymm3, ymmword ptr [rsp+20H]599 vpaddd ymm0, ymm0, ymm5600 vpaddd ymm1, ymm1, ymm6601 vpaddd ymm2, ymm2, ymm7602 vpaddd ymm3, ymm3, ymm4603 vpxor ymm15, ymm15, ymm0604 vpxor ymm12, ymm12, ymm1605 vpxor ymm13, ymm13, ymm2606 vpxor ymm14, ymm14, ymm3607 vbroadcasti128 ymm8, xmmword ptr [ROT8]608 vpshufb ymm15, ymm15, ymm8609 vpshufb ymm12, ymm12, ymm8610 vpshufb ymm13, ymm13, ymm8611 vpshufb ymm14, ymm14, ymm8612 vpaddd ymm10, ymm10, ymm15613 vpaddd ymm11, ymm11, ymm12614 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]615 vpaddd ymm9, ymm9, ymm14616 vpxor ymm5, ymm5, ymm10617 vpxor ymm6, ymm6, ymm11618 vpxor ymm7, ymm7, ymm8619 vpxor ymm4, ymm4, ymm9620 vmovdqa ymmword ptr [rsp+200H], ymm8621 vpsrld ymm8, ymm5, 7622 vpslld ymm5, ymm5, 25623 vpor ymm5, ymm5, ymm8624 vpsrld ymm8, ymm6, 7625 vpslld ymm6, ymm6, 25626 vpor ymm6, ymm6, ymm8627 vpsrld ymm8, ymm7, 7628 vpslld ymm7, ymm7, 25629 vpor ymm7, ymm7, ymm8630 vpsrld ymm8, ymm4, 7631 vpslld ymm4, ymm4, 25632 vpor ymm4, ymm4, ymm8633 vpaddd ymm0, ymm0, ymmword ptr [rsp+140H]634 vpaddd ymm1, ymm1, ymmword ptr [rsp+180H]635 vpaddd ymm2, ymm2, ymmword ptr [rsp+1C0H]636 vpaddd ymm3, ymm3, ymmword ptr [rsp+1A0H]637 vpaddd ymm0, ymm0, ymm4638 vpaddd ymm1, ymm1, ymm5639 vpaddd ymm2, ymm2, ymm6640 vpaddd ymm3, ymm3, ymm7641 vpxor ymm12, ymm12, ymm0642 vpxor ymm13, ymm13, ymm1643 vpxor ymm14, ymm14, ymm2644 vpxor ymm15, ymm15, ymm3645 vbroadcasti128 ymm8, xmmword ptr [ROT16]646 vpshufb ymm12, ymm12, ymm8647 vpshufb ymm13, ymm13, ymm8648 vpshufb ymm14, ymm14, ymm8649 vpshufb ymm15, ymm15, ymm8650 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]651 vpaddd ymm9, ymm9, ymm13652 vpaddd ymm10, ymm10, ymm14653 vpaddd ymm11, ymm11, ymm15654 vpxor ymm4, ymm4, ymm8655 vpxor ymm5, ymm5, ymm9656 vpxor ymm6, ymm6, ymm10657 vpxor ymm7, ymm7, ymm11658 vmovdqa ymmword ptr [rsp+200H], ymm8659 vpsrld ymm8, ymm4, 12660 vpslld ymm4, ymm4, 20661 vpor ymm4, ymm4, ymm8662 vpsrld ymm8, ymm5, 12663 vpslld ymm5, ymm5, 20664 vpor ymm5, ymm5, ymm8665 vpsrld ymm8, ymm6, 12666 vpslld ymm6, ymm6, 20667 vpor ymm6, ymm6, ymm8668 vpsrld ymm8, ymm7, 12669 vpslld ymm7, ymm7, 20670 vpor ymm7, ymm7, ymm8671 vpaddd ymm0, ymm0, ymmword ptr [rsp+0E0H]672 vpaddd ymm1, ymm1, ymmword ptr [rsp+120H]673 vpaddd ymm2, ymm2, ymmword ptr [rsp+60H]674 vpaddd ymm3, ymm3, ymmword ptr [rsp+1E0H]675 vpaddd ymm0, ymm0, ymm4676 vpaddd ymm1, ymm1, ymm5677 vpaddd ymm2, ymm2, ymm6678 vpaddd ymm3, ymm3, ymm7679 vpxor ymm12, ymm12, ymm0680 vpxor ymm13, ymm13, ymm1681 vpxor ymm14, ymm14, ymm2682 vpxor ymm15, ymm15, ymm3683 vbroadcasti128 ymm8, xmmword ptr [ROT8]684 vpshufb ymm12, ymm12, ymm8685 vpshufb ymm13, ymm13, ymm8686 vpshufb ymm14, ymm14, ymm8687 vpshufb ymm15, ymm15, ymm8688 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]689 vpaddd ymm9, ymm9, ymm13690 vpaddd ymm10, ymm10, ymm14691 vpaddd ymm11, ymm11, ymm15692 vpxor ymm4, ymm4, ymm8693 vpxor ymm5, ymm5, ymm9694 vpxor ymm6, ymm6, ymm10695 vpxor ymm7, ymm7, ymm11696 vmovdqa ymmword ptr [rsp+200H], ymm8697 vpsrld ymm8, ymm4, 7698 vpslld ymm4, ymm4, 25699 vpor ymm4, ymm4, ymm8700 vpsrld ymm8, ymm5, 7701 vpslld ymm5, ymm5, 25702 vpor ymm5, ymm5, ymm8703 vpsrld ymm8, ymm6, 7704 vpslld ymm6, ymm6, 25705 vpor ymm6, ymm6, ymm8706 vpsrld ymm8, ymm7, 7707 vpslld ymm7, ymm7, 25708 vpor ymm7, ymm7, ymm8709 vpaddd ymm0, ymm0, ymmword ptr [rsp+80H]710 vpaddd ymm1, ymm1, ymmword ptr [rsp+160H]711 vpaddd ymm2, ymm2, ymmword ptr [rsp+0A0H]712 vpaddd ymm3, ymm3, ymmword ptr [rsp+20H]713 vpaddd ymm0, ymm0, ymm5714 vpaddd ymm1, ymm1, ymm6715 vpaddd ymm2, ymm2, ymm7716 vpaddd ymm3, ymm3, ymm4717 vpxor ymm15, ymm15, ymm0718 vpxor ymm12, ymm12, ymm1719 vpxor ymm13, ymm13, ymm2720 vpxor ymm14, ymm14, ymm3721 vbroadcasti128 ymm8, xmmword ptr [ROT16]722 vpshufb ymm15, ymm15, ymm8723 vpshufb ymm12, ymm12, ymm8724 vpshufb ymm13, ymm13, ymm8725 vpshufb ymm14, ymm14, ymm8726 vpaddd ymm10, ymm10, ymm15727 vpaddd ymm11, ymm11, ymm12728 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]729 vpaddd ymm9, ymm9, ymm14730 vpxor ymm5, ymm5, ymm10731 vpxor ymm6, ymm6, ymm11732 vpxor ymm7, ymm7, ymm8733 vpxor ymm4, ymm4, ymm9734 vmovdqa ymmword ptr [rsp+200H], ymm8735 vpsrld ymm8, ymm5, 12736 vpslld ymm5, ymm5, 20737 vpor ymm5, ymm5, ymm8738 vpsrld ymm8, ymm6, 12739 vpslld ymm6, ymm6, 20740 vpor ymm6, ymm6, ymm8741 vpsrld ymm8, ymm7, 12742 vpslld ymm7, ymm7, 20743 vpor ymm7, ymm7, ymm8744 vpsrld ymm8, ymm4, 12745 vpslld ymm4, ymm4, 20746 vpor ymm4, ymm4, ymm8747 vpaddd ymm0, ymm0, ymmword ptr [rsp]748 vpaddd ymm1, ymm1, ymmword ptr [rsp+40H]749 vpaddd ymm2, ymm2, ymmword ptr [rsp+100H]750 vpaddd ymm3, ymm3, ymmword ptr [rsp+0C0H]751 vpaddd ymm0, ymm0, ymm5752 vpaddd ymm1, ymm1, ymm6753 vpaddd ymm2, ymm2, ymm7754 vpaddd ymm3, ymm3, ymm4755 vpxor ymm15, ymm15, ymm0756 vpxor ymm12, ymm12, ymm1757 vpxor ymm13, ymm13, ymm2758 vpxor ymm14, ymm14, ymm3759 vbroadcasti128 ymm8, xmmword ptr [ROT8]760 vpshufb ymm15, ymm15, ymm8761 vpshufb ymm12, ymm12, ymm8762 vpshufb ymm13, ymm13, ymm8763 vpshufb ymm14, ymm14, ymm8764 vpaddd ymm10, ymm10, ymm15765 vpaddd ymm11, ymm11, ymm12766 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]767 vpaddd ymm9, ymm9, ymm14768 vpxor ymm5, ymm5, ymm10769 vpxor ymm6, ymm6, ymm11770 vpxor ymm7, ymm7, ymm8771 vpxor ymm4, ymm4, ymm9772 vmovdqa ymmword ptr [rsp+200H], ymm8773 vpsrld ymm8, ymm5, 7774 vpslld ymm5, ymm5, 25775 vpor ymm5, ymm5, ymm8776 vpsrld ymm8, ymm6, 7777 vpslld ymm6, ymm6, 25778 vpor ymm6, ymm6, ymm8779 vpsrld ymm8, ymm7, 7780 vpslld ymm7, ymm7, 25781 vpor ymm7, ymm7, ymm8782 vpsrld ymm8, ymm4, 7783 vpslld ymm4, ymm4, 25784 vpor ymm4, ymm4, ymm8785 vpaddd ymm0, ymm0, ymmword ptr [rsp+180H]786 vpaddd ymm1, ymm1, ymmword ptr [rsp+120H]787 vpaddd ymm2, ymm2, ymmword ptr [rsp+1E0H]788 vpaddd ymm3, ymm3, ymmword ptr [rsp+1C0H]789 vpaddd ymm0, ymm0, ymm4790 vpaddd ymm1, ymm1, ymm5791 vpaddd ymm2, ymm2, ymm6792 vpaddd ymm3, ymm3, ymm7793 vpxor ymm12, ymm12, ymm0794 vpxor ymm13, ymm13, ymm1795 vpxor ymm14, ymm14, ymm2796 vpxor ymm15, ymm15, ymm3797 vbroadcasti128 ymm8, xmmword ptr [ROT16]798 vpshufb ymm12, ymm12, ymm8799 vpshufb ymm13, ymm13, ymm8800 vpshufb ymm14, ymm14, ymm8801 vpshufb ymm15, ymm15, ymm8802 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]803 vpaddd ymm9, ymm9, ymm13804 vpaddd ymm10, ymm10, ymm14805 vpaddd ymm11, ymm11, ymm15806 vpxor ymm4, ymm4, ymm8807 vpxor ymm5, ymm5, ymm9808 vpxor ymm6, ymm6, ymm10809 vpxor ymm7, ymm7, ymm11810 vmovdqa ymmword ptr [rsp+200H], ymm8811 vpsrld ymm8, ymm4, 12812 vpslld ymm4, ymm4, 20813 vpor ymm4, ymm4, ymm8814 vpsrld ymm8, ymm5, 12815 vpslld ymm5, ymm5, 20816 vpor ymm5, ymm5, ymm8817 vpsrld ymm8, ymm6, 12818 vpslld ymm6, ymm6, 20819 vpor ymm6, ymm6, ymm8820 vpsrld ymm8, ymm7, 12821 vpslld ymm7, ymm7, 20822 vpor ymm7, ymm7, ymm8823 vpaddd ymm0, ymm0, ymmword ptr [rsp+1A0H]824 vpaddd ymm1, ymm1, ymmword ptr [rsp+160H]825 vpaddd ymm2, ymm2, ymmword ptr [rsp+140H]826 vpaddd ymm3, ymm3, ymmword ptr [rsp+100H]827 vpaddd ymm0, ymm0, ymm4828 vpaddd ymm1, ymm1, ymm5829 vpaddd ymm2, ymm2, ymm6830 vpaddd ymm3, ymm3, ymm7831 vpxor ymm12, ymm12, ymm0832 vpxor ymm13, ymm13, ymm1833 vpxor ymm14, ymm14, ymm2834 vpxor ymm15, ymm15, ymm3835 vbroadcasti128 ymm8, xmmword ptr [ROT8]836 vpshufb ymm12, ymm12, ymm8837 vpshufb ymm13, ymm13, ymm8838 vpshufb ymm14, ymm14, ymm8839 vpshufb ymm15, ymm15, ymm8840 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]841 vpaddd ymm9, ymm9, ymm13842 vpaddd ymm10, ymm10, ymm14843 vpaddd ymm11, ymm11, ymm15844 vpxor ymm4, ymm4, ymm8845 vpxor ymm5, ymm5, ymm9846 vpxor ymm6, ymm6, ymm10847 vpxor ymm7, ymm7, ymm11848 vmovdqa ymmword ptr [rsp+200H], ymm8849 vpsrld ymm8, ymm4, 7850 vpslld ymm4, ymm4, 25851 vpor ymm4, ymm4, ymm8852 vpsrld ymm8, ymm5, 7853 vpslld ymm5, ymm5, 25854 vpor ymm5, ymm5, ymm8855 vpsrld ymm8, ymm6, 7856 vpslld ymm6, ymm6, 25857 vpor ymm6, ymm6, ymm8858 vpsrld ymm8, ymm7, 7859 vpslld ymm7, ymm7, 25860 vpor ymm7, ymm7, ymm8861 vpaddd ymm0, ymm0, ymmword ptr [rsp+0E0H]862 vpaddd ymm1, ymm1, ymmword ptr [rsp+0A0H]863 vpaddd ymm2, ymm2, ymmword ptr [rsp]864 vpaddd ymm3, ymm3, ymmword ptr [rsp+0C0H]865 vpaddd ymm0, ymm0, ymm5866 vpaddd ymm1, ymm1, ymm6867 vpaddd ymm2, ymm2, ymm7868 vpaddd ymm3, ymm3, ymm4869 vpxor ymm15, ymm15, ymm0870 vpxor ymm12, ymm12, ymm1871 vpxor ymm13, ymm13, ymm2872 vpxor ymm14, ymm14, ymm3873 vbroadcasti128 ymm8, xmmword ptr [ROT16]874 vpshufb ymm15, ymm15, ymm8875 vpshufb ymm12, ymm12, ymm8876 vpshufb ymm13, ymm13, ymm8877 vpshufb ymm14, ymm14, ymm8878 vpaddd ymm10, ymm10, ymm15879 vpaddd ymm11, ymm11, ymm12880 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]881 vpaddd ymm9, ymm9, ymm14882 vpxor ymm5, ymm5, ymm10883 vpxor ymm6, ymm6, ymm11884 vpxor ymm7, ymm7, ymm8885 vpxor ymm4, ymm4, ymm9886 vmovdqa ymmword ptr [rsp+200H], ymm8887 vpsrld ymm8, ymm5, 12888 vpslld ymm5, ymm5, 20889 vpor ymm5, ymm5, ymm8890 vpsrld ymm8, ymm6, 12891 vpslld ymm6, ymm6, 20892 vpor ymm6, ymm6, ymm8893 vpsrld ymm8, ymm7, 12894 vpslld ymm7, ymm7, 20895 vpor ymm7, ymm7, ymm8896 vpsrld ymm8, ymm4, 12897 vpslld ymm4, ymm4, 20898 vpor ymm4, ymm4, ymm8899 vpaddd ymm0, ymm0, ymmword ptr [rsp+40H]900 vpaddd ymm1, ymm1, ymmword ptr [rsp+60H]901 vpaddd ymm2, ymm2, ymmword ptr [rsp+20H]902 vpaddd ymm3, ymm3, ymmword ptr [rsp+80H]903 vpaddd ymm0, ymm0, ymm5904 vpaddd ymm1, ymm1, ymm6905 vpaddd ymm2, ymm2, ymm7906 vpaddd ymm3, ymm3, ymm4907 vpxor ymm15, ymm15, ymm0908 vpxor ymm12, ymm12, ymm1909 vpxor ymm13, ymm13, ymm2910 vpxor ymm14, ymm14, ymm3911 vbroadcasti128 ymm8, xmmword ptr [ROT8]912 vpshufb ymm15, ymm15, ymm8913 vpshufb ymm12, ymm12, ymm8914 vpshufb ymm13, ymm13, ymm8915 vpshufb ymm14, ymm14, ymm8916 vpaddd ymm10, ymm10, ymm15917 vpaddd ymm11, ymm11, ymm12918 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]919 vpaddd ymm9, ymm9, ymm14920 vpxor ymm5, ymm5, ymm10921 vpxor ymm6, ymm6, ymm11922 vpxor ymm7, ymm7, ymm8923 vpxor ymm4, ymm4, ymm9924 vmovdqa ymmword ptr [rsp+200H], ymm8925 vpsrld ymm8, ymm5, 7926 vpslld ymm5, ymm5, 25927 vpor ymm5, ymm5, ymm8928 vpsrld ymm8, ymm6, 7929 vpslld ymm6, ymm6, 25930 vpor ymm6, ymm6, ymm8931 vpsrld ymm8, ymm7, 7932 vpslld ymm7, ymm7, 25933 vpor ymm7, ymm7, ymm8934 vpsrld ymm8, ymm4, 7935 vpslld ymm4, ymm4, 25936 vpor ymm4, ymm4, ymm8937 vpaddd ymm0, ymm0, ymmword ptr [rsp+120H]938 vpaddd ymm1, ymm1, ymmword ptr [rsp+160H]939 vpaddd ymm2, ymm2, ymmword ptr [rsp+100H]940 vpaddd ymm3, ymm3, ymmword ptr [rsp+1E0H]941 vpaddd ymm0, ymm0, ymm4942 vpaddd ymm1, ymm1, ymm5943 vpaddd ymm2, ymm2, ymm6944 vpaddd ymm3, ymm3, ymm7945 vpxor ymm12, ymm12, ymm0946 vpxor ymm13, ymm13, ymm1947 vpxor ymm14, ymm14, ymm2948 vpxor ymm15, ymm15, ymm3949 vbroadcasti128 ymm8, xmmword ptr [ROT16]950 vpshufb ymm12, ymm12, ymm8951 vpshufb ymm13, ymm13, ymm8952 vpshufb ymm14, ymm14, ymm8953 vpshufb ymm15, ymm15, ymm8954 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]955 vpaddd ymm9, ymm9, ymm13956 vpaddd ymm10, ymm10, ymm14957 vpaddd ymm11, ymm11, ymm15958 vpxor ymm4, ymm4, ymm8959 vpxor ymm5, ymm5, ymm9960 vpxor ymm6, ymm6, ymm10961 vpxor ymm7, ymm7, ymm11962 vmovdqa ymmword ptr [rsp+200H], ymm8963 vpsrld ymm8, ymm4, 12964 vpslld ymm4, ymm4, 20965 vpor ymm4, ymm4, ymm8966 vpsrld ymm8, ymm5, 12967 vpslld ymm5, ymm5, 20968 vpor ymm5, ymm5, ymm8969 vpsrld ymm8, ymm6, 12970 vpslld ymm6, ymm6, 20971 vpor ymm6, ymm6, ymm8972 vpsrld ymm8, ymm7, 12973 vpslld ymm7, ymm7, 20974 vpor ymm7, ymm7, ymm8975 vpaddd ymm0, ymm0, ymmword ptr [rsp+1C0H]976 vpaddd ymm1, ymm1, ymmword ptr [rsp+0A0H]977 vpaddd ymm2, ymm2, ymmword ptr [rsp+180H]978 vpaddd ymm3, ymm3, ymmword ptr [rsp+20H]979 vpaddd ymm0, ymm0, ymm4980 vpaddd ymm1, ymm1, ymm5981 vpaddd ymm2, ymm2, ymm6982 vpaddd ymm3, ymm3, ymm7983 vpxor ymm12, ymm12, ymm0984 vpxor ymm13, ymm13, ymm1985 vpxor ymm14, ymm14, ymm2986 vpxor ymm15, ymm15, ymm3987 vbroadcasti128 ymm8, xmmword ptr [ROT8]988 vpshufb ymm12, ymm12, ymm8989 vpshufb ymm13, ymm13, ymm8990 vpshufb ymm14, ymm14, ymm8991 vpshufb ymm15, ymm15, ymm8992 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]993 vpaddd ymm9, ymm9, ymm13994 vpaddd ymm10, ymm10, ymm14995 vpaddd ymm11, ymm11, ymm15996 vpxor ymm4, ymm4, ymm8997 vpxor ymm5, ymm5, ymm9998 vpxor ymm6, ymm6, ymm10999 vpxor ymm7, ymm7, ymm111000 vmovdqa ymmword ptr [rsp+200H], ymm81001 vpsrld ymm8, ymm4, 71002 vpslld ymm4, ymm4, 251003 vpor ymm4, ymm4, ymm81004 vpsrld ymm8, ymm5, 71005 vpslld ymm5, ymm5, 251006 vpor ymm5, ymm5, ymm81007 vpsrld ymm8, ymm6, 71008 vpslld ymm6, ymm6, 251009 vpor ymm6, ymm6, ymm81010 vpsrld ymm8, ymm7, 71011 vpslld ymm7, ymm7, 251012 vpor ymm7, ymm7, ymm81013 vpaddd ymm0, ymm0, ymmword ptr [rsp+1A0H]1014 vpaddd ymm1, ymm1, ymmword ptr [rsp]1015 vpaddd ymm2, ymm2, ymmword ptr [rsp+40H]1016 vpaddd ymm3, ymm3, ymmword ptr [rsp+80H]1017 vpaddd ymm0, ymm0, ymm51018 vpaddd ymm1, ymm1, ymm61019 vpaddd ymm2, ymm2, ymm71020 vpaddd ymm3, ymm3, ymm41021 vpxor ymm15, ymm15, ymm01022 vpxor ymm12, ymm12, ymm11023 vpxor ymm13, ymm13, ymm21024 vpxor ymm14, ymm14, ymm31025 vbroadcasti128 ymm8, xmmword ptr [ROT16]1026 vpshufb ymm15, ymm15, ymm81027 vpshufb ymm12, ymm12, ymm81028 vpshufb ymm13, ymm13, ymm81029 vpshufb ymm14, ymm14, ymm81030 vpaddd ymm10, ymm10, ymm151031 vpaddd ymm11, ymm11, ymm121032 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]1033 vpaddd ymm9, ymm9, ymm141034 vpxor ymm5, ymm5, ymm101035 vpxor ymm6, ymm6, ymm111036 vpxor ymm7, ymm7, ymm81037 vpxor ymm4, ymm4, ymm91038 vmovdqa ymmword ptr [rsp+200H], ymm81039 vpsrld ymm8, ymm5, 121040 vpslld ymm5, ymm5, 201041 vpor ymm5, ymm5, ymm81042 vpsrld ymm8, ymm6, 121043 vpslld ymm6, ymm6, 201044 vpor ymm6, ymm6, ymm81045 vpsrld ymm8, ymm7, 121046 vpslld ymm7, ymm7, 201047 vpor ymm7, ymm7, ymm81048 vpsrld ymm8, ymm4, 121049 vpslld ymm4, ymm4, 201050 vpor ymm4, ymm4, ymm81051 vpaddd ymm0, ymm0, ymmword ptr [rsp+60H]1052 vpaddd ymm1, ymm1, ymmword ptr [rsp+140H]1053 vpaddd ymm2, ymm2, ymmword ptr [rsp+0C0H]1054 vpaddd ymm3, ymm3, ymmword ptr [rsp+0E0H]1055 vpaddd ymm0, ymm0, ymm51056 vpaddd ymm1, ymm1, ymm61057 vpaddd ymm2, ymm2, ymm71058 vpaddd ymm3, ymm3, ymm41059 vpxor ymm15, ymm15, ymm01060 vpxor ymm12, ymm12, ymm11061 vpxor ymm13, ymm13, ymm21062 vpxor ymm14, ymm14, ymm31063 vbroadcasti128 ymm8, xmmword ptr [ROT8]1064 vpshufb ymm15, ymm15, ymm81065 vpshufb ymm12, ymm12, ymm81066 vpshufb ymm13, ymm13, ymm81067 vpshufb ymm14, ymm14, ymm81068 vpaddd ymm10, ymm10, ymm151069 vpaddd ymm11, ymm11, ymm121070 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]1071 vpaddd ymm9, ymm9, ymm141072 vpxor ymm5, ymm5, ymm101073 vpxor ymm6, ymm6, ymm111074 vpxor ymm7, ymm7, ymm81075 vpxor ymm4, ymm4, ymm91076 vmovdqa ymmword ptr [rsp+200H], ymm81077 vpsrld ymm8, ymm5, 71078 vpslld ymm5, ymm5, 251079 vpor ymm5, ymm5, ymm81080 vpsrld ymm8, ymm6, 71081 vpslld ymm6, ymm6, 251082 vpor ymm6, ymm6, ymm81083 vpsrld ymm8, ymm7, 71084 vpslld ymm7, ymm7, 251085 vpor ymm7, ymm7, ymm81086 vpsrld ymm8, ymm4, 71087 vpslld ymm4, ymm4, 251088 vpor ymm4, ymm4, ymm81089 vpaddd ymm0, ymm0, ymmword ptr [rsp+160H]1090 vpaddd ymm1, ymm1, ymmword ptr [rsp+0A0H]1091 vpaddd ymm2, ymm2, ymmword ptr [rsp+20H]1092 vpaddd ymm3, ymm3, ymmword ptr [rsp+100H]1093 vpaddd ymm0, ymm0, ymm41094 vpaddd ymm1, ymm1, ymm51095 vpaddd ymm2, ymm2, ymm61096 vpaddd ymm3, ymm3, ymm71097 vpxor ymm12, ymm12, ymm01098 vpxor ymm13, ymm13, ymm11099 vpxor ymm14, ymm14, ymm21100 vpxor ymm15, ymm15, ymm31101 vbroadcasti128 ymm8, xmmword ptr [ROT16]1102 vpshufb ymm12, ymm12, ymm81103 vpshufb ymm13, ymm13, ymm81104 vpshufb ymm14, ymm14, ymm81105 vpshufb ymm15, ymm15, ymm81106 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]1107 vpaddd ymm9, ymm9, ymm131108 vpaddd ymm10, ymm10, ymm141109 vpaddd ymm11, ymm11, ymm151110 vpxor ymm4, ymm4, ymm81111 vpxor ymm5, ymm5, ymm91112 vpxor ymm6, ymm6, ymm101113 vpxor ymm7, ymm7, ymm111114 vmovdqa ymmword ptr [rsp+200H], ymm81115 vpsrld ymm8, ymm4, 121116 vpslld ymm4, ymm4, 201117 vpor ymm4, ymm4, ymm81118 vpsrld ymm8, ymm5, 121119 vpslld ymm5, ymm5, 201120 vpor ymm5, ymm5, ymm81121 vpsrld ymm8, ymm6, 121122 vpslld ymm6, ymm6, 201123 vpor ymm6, ymm6, ymm81124 vpsrld ymm8, ymm7, 121125 vpslld ymm7, ymm7, 201126 vpor ymm7, ymm7, ymm81127 vpaddd ymm0, ymm0, ymmword ptr [rsp+1E0H]1128 vpaddd ymm1, ymm1, ymmword ptr [rsp]1129 vpaddd ymm2, ymm2, ymmword ptr [rsp+120H]1130 vpaddd ymm3, ymm3, ymmword ptr [rsp+0C0H]1131 vpaddd ymm0, ymm0, ymm41132 vpaddd ymm1, ymm1, ymm51133 vpaddd ymm2, ymm2, ymm61134 vpaddd ymm3, ymm3, ymm71135 vpxor ymm12, ymm12, ymm01136 vpxor ymm13, ymm13, ymm11137 vpxor ymm14, ymm14, ymm21138 vpxor ymm15, ymm15, ymm31139 vbroadcasti128 ymm8, xmmword ptr [ROT8]1140 vpshufb ymm12, ymm12, ymm81141 vpshufb ymm13, ymm13, ymm81142 vpshufb ymm14, ymm14, ymm81143 vpshufb ymm15, ymm15, ymm81144 vpaddd ymm8, ymm12, ymmword ptr [rsp+200H]1145 vpaddd ymm9, ymm9, ymm131146 vpaddd ymm10, ymm10, ymm141147 vpaddd ymm11, ymm11, ymm151148 vpxor ymm4, ymm4, ymm81149 vpxor ymm5, ymm5, ymm91150 vpxor ymm6, ymm6, ymm101151 vpxor ymm7, ymm7, ymm111152 vmovdqa ymmword ptr [rsp+200H], ymm81153 vpsrld ymm8, ymm4, 71154 vpslld ymm4, ymm4, 251155 vpor ymm4, ymm4, ymm81156 vpsrld ymm8, ymm5, 71157 vpslld ymm5, ymm5, 251158 vpor ymm5, ymm5, ymm81159 vpsrld ymm8, ymm6, 71160 vpslld ymm6, ymm6, 251161 vpor ymm6, ymm6, ymm81162 vpsrld ymm8, ymm7, 71163 vpslld ymm7, ymm7, 251164 vpor ymm7, ymm7, ymm81165 vpaddd ymm0, ymm0, ymmword ptr [rsp+1C0H]1166 vpaddd ymm1, ymm1, ymmword ptr [rsp+40H]1167 vpaddd ymm2, ymm2, ymmword ptr [rsp+60H]1168 vpaddd ymm3, ymm3, ymmword ptr [rsp+0E0H]1169 vpaddd ymm0, ymm0, ymm51170 vpaddd ymm1, ymm1, ymm61171 vpaddd ymm2, ymm2, ymm71172 vpaddd ymm3, ymm3, ymm41173 vpxor ymm15, ymm15, ymm01174 vpxor ymm12, ymm12, ymm11175 vpxor ymm13, ymm13, ymm21176 vpxor ymm14, ymm14, ymm31177 vbroadcasti128 ymm8, xmmword ptr [ROT16]1178 vpshufb ymm15, ymm15, ymm81179 vpshufb ymm12, ymm12, ymm81180 vpshufb ymm13, ymm13, ymm81181 vpshufb ymm14, ymm14, ymm81182 vpaddd ymm10, ymm10, ymm151183 vpaddd ymm11, ymm11, ymm121184 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]1185 vpaddd ymm9, ymm9, ymm141186 vpxor ymm5, ymm5, ymm101187 vpxor ymm6, ymm6, ymm111188 vpxor ymm7, ymm7, ymm81189 vpxor ymm4, ymm4, ymm91190 vmovdqa ymmword ptr [rsp+200H], ymm81191 vpsrld ymm8, ymm5, 121192 vpslld ymm5, ymm5, 201193 vpor ymm5, ymm5, ymm81194 vpsrld ymm8, ymm6, 121195 vpslld ymm6, ymm6, 201196 vpor ymm6, ymm6, ymm81197 vpsrld ymm8, ymm7, 121198 vpslld ymm7, ymm7, 201199 vpor ymm7, ymm7, ymm81200 vpsrld ymm8, ymm4, 121201 vpslld ymm4, ymm4, 201202 vpor ymm4, ymm4, ymm81203 vpaddd ymm0, ymm0, ymmword ptr [rsp+140H]1204 vpaddd ymm1, ymm1, ymmword ptr [rsp+180H]1205 vpaddd ymm2, ymm2, ymmword ptr [rsp+80H]1206 vpaddd ymm3, ymm3, ymmword ptr [rsp+1A0H]1207 vpaddd ymm0, ymm0, ymm51208 vpaddd ymm1, ymm1, ymm61209 vpaddd ymm2, ymm2, ymm71210 vpaddd ymm3, ymm3, ymm41211 vpxor ymm15, ymm15, ymm01212 vpxor ymm12, ymm12, ymm11213 vpxor ymm13, ymm13, ymm21214 vpxor ymm14, ymm14, ymm31215 vbroadcasti128 ymm8, xmmword ptr [ROT8]1216 vpshufb ymm15, ymm15, ymm81217 vpshufb ymm12, ymm12, ymm81218 vpshufb ymm13, ymm13, ymm81219 vpshufb ymm14, ymm14, ymm81220 vpaddd ymm10, ymm10, ymm151221 vpaddd ymm11, ymm11, ymm121222 vpaddd ymm8, ymm13, ymmword ptr [rsp+200H]1223 vpaddd ymm9, ymm9, ymm141224 vpxor ymm5, ymm5, ymm101225 vpxor ymm6, ymm6, ymm111226 vpxor ymm7, ymm7, ymm81227 vpxor ymm4, ymm4, ymm91228 vpxor ymm0, ymm0, ymm81229 vpxor ymm1, ymm1, ymm91230 vpxor ymm2, ymm2, ymm101231 vpxor ymm3, ymm3, ymm111232 vpsrld ymm8, ymm5, 71233 vpslld ymm5, ymm5, 251234 vpor ymm5, ymm5, ymm81235 vpsrld ymm8, ymm6, 71236 vpslld ymm6, ymm6, 251237 vpor ymm6, ymm6, ymm81238 vpsrld ymm8, ymm7, 71239 vpslld ymm7, ymm7, 251240 vpor ymm7, ymm7, ymm81241 vpsrld ymm8, ymm4, 71242 vpslld ymm4, ymm4, 251243 vpor ymm4, ymm4, ymm81244 vpxor ymm4, ymm4, ymm121245 vpxor ymm5, ymm5, ymm131246 vpxor ymm6, ymm6, ymm141247 vpxor ymm7, ymm7, ymm151248 movzx eax, byte ptr [rbp+78H]1249 jne innerloop81250 mov rbx, qword ptr [rbp+90H]1251 vunpcklps ymm8, ymm0, ymm11252 vunpcklps ymm9, ymm2, ymm31253 vunpckhps ymm10, ymm0, ymm11254 vunpcklps ymm11, ymm4, ymm51255 vunpcklps ymm0, ymm6, ymm71256 vshufps ymm12, ymm8, ymm9, 781257 vblendps ymm1, ymm8, ymm12, 0CCH1258 vshufps ymm8, ymm11, ymm0, 781259 vunpckhps ymm13, ymm2, ymm31260 vblendps ymm2, ymm11, ymm8, 0CCH1261 vblendps ymm3, ymm12, ymm9, 0CCH1262 vperm2f128 ymm12, ymm1, ymm2, 20H1263 vmovups ymmword ptr [rbx], ymm121264 vunpckhps ymm14, ymm4, ymm51265 vblendps ymm4, ymm8, ymm0, 0CCH1266 vunpckhps ymm15, ymm6, ymm71267 vperm2f128 ymm7, ymm3, ymm4, 20H1268 vmovups ymmword ptr [rbx+20H], ymm71269 vshufps ymm5, ymm10, ymm13, 781270 vblendps ymm6, ymm5, ymm13, 0CCH1271 vshufps ymm13, ymm14, ymm15, 781272 vblendps ymm10, ymm10, ymm5, 0CCH1273 vblendps ymm14, ymm14, ymm13, 0CCH1274 vperm2f128 ymm8, ymm10, ymm14, 20H1275 vmovups ymmword ptr [rbx+40H], ymm81276 vblendps ymm15, ymm13, ymm15, 0CCH1277 vperm2f128 ymm13, ymm6, ymm15, 20H1278 vmovups ymmword ptr [rbx+60H], ymm131279 vperm2f128 ymm9, ymm1, ymm2, 31H1280 vperm2f128 ymm11, ymm3, ymm4, 31H1281 vmovups ymmword ptr [rbx+80H], ymm91282 vperm2f128 ymm14, ymm10, ymm14, 31H1283 vperm2f128 ymm15, ymm6, ymm15, 31H1284 vmovups ymmword ptr [rbx+0A0H], ymm111285 vmovups ymmword ptr [rbx+0C0H], ymm141286 vmovups ymmword ptr [rbx+0E0H], ymm151287 vmovdqa ymm0, ymmword ptr [rsp+2A0H]1288 vpaddd ymm1, ymm0, ymmword ptr [rsp+220H]1289 vmovdqa ymmword ptr [rsp+220H], ymm11290 vpxor ymm0, ymm0, ymmword ptr [CMP_MSB_MASK]1291 vpxor ymm2, ymm1, ymmword ptr [CMP_MSB_MASK]1292 vpcmpgtd ymm2, ymm0, ymm21293 vmovdqa ymm0, ymmword ptr [rsp+240H]1294 vpsubd ymm2, ymm0, ymm21295 vmovdqa ymmword ptr [rsp+240H], ymm21296 add rdi, 641297 add rbx, 2561298 mov qword ptr [rbp+90H], rbx1299 sub rsi, 81300 cmp rsi, 81301 jnc outerloop81302 test rsi, rsi1303 jnz final7blocks1304unwind:1305 vzeroupper1306 vmovdqa xmm6, xmmword ptr [rsp+2D0H]1307 vmovdqa xmm7, xmmword ptr [rsp+2E0H]1308 vmovdqa xmm8, xmmword ptr [rsp+2F0H]1309 vmovdqa xmm9, xmmword ptr [rsp+300H]1310 vmovdqa xmm10, xmmword ptr [rsp+310H]1311 vmovdqa xmm11, xmmword ptr [rsp+320H]1312 vmovdqa xmm12, xmmword ptr [rsp+330H]1313 vmovdqa xmm13, xmmword ptr [rsp+340H]1314 vmovdqa xmm14, xmmword ptr [rsp+350H]1315 vmovdqa xmm15, xmmword ptr [rsp+360H]1316 mov rsp, rbp1317 pop rbp1318 pop rbx1319 pop rdi1320 pop rsi1321 pop r121322 pop r131323 pop r141324 pop r151325 ret1326ALIGN 161327final7blocks:1328 mov rbx, qword ptr [rbp+90H]1329 mov r15, qword ptr [rsp+2C0H]1330 movzx r13d, byte ptr [rbp+78H]1331 movzx r12d, byte ptr [rbp+88H]1332 test rsi, 4H1333 je final3blocks1334 vbroadcasti128 ymm0, xmmword ptr [rcx]1335 vbroadcasti128 ymm1, xmmword ptr [rcx+10H]1336 vmovdqa ymm8, ymm01337 vmovdqa ymm9, ymm11338 vbroadcasti128 ymm12, xmmword ptr [rsp+220H]1339 vbroadcasti128 ymm13, xmmword ptr [rsp+240H]1340 vpunpckldq ymm14, ymm12, ymm131341 vpunpckhdq ymm15, ymm12, ymm131342 vpermq ymm14, ymm14, 50H1343 vpermq ymm15, ymm15, 50H1344 vbroadcasti128 ymm12, xmmword ptr [BLAKE3_BLOCK_LEN]1345 vpblendd ymm14, ymm14, ymm12, 44H1346 vpblendd ymm15, ymm15, ymm12, 44H1347 vmovdqa ymmword ptr [rsp], ymm141348 vmovdqa ymmword ptr [rsp+20H], ymm151349 mov r8, qword ptr [rdi]1350 mov r9, qword ptr [rdi+8H]1351 mov r10, qword ptr [rdi+10H]1352 mov r11, qword ptr [rdi+18H]1353 movzx eax, byte ptr [rbp+80H]1354 or eax, r13d1355 xor edx, edx1356ALIGN 161357innerloop4:1358 mov r14d, eax1359 or eax, r12d1360 add rdx, 641361 cmp rdx, r151362 cmovne eax, r14d1363 mov dword ptr [rsp+200H], eax1364 vmovups ymm2, ymmword ptr [r8+rdx-40H]1365 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-40H], 01H1366 vmovups ymm3, ymmword ptr [r8+rdx-30H]1367 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-30H], 01H1368 vshufps ymm4, ymm2, ymm3, 1361369 vshufps ymm5, ymm2, ymm3, 2211370 vmovups ymm2, ymmword ptr [r8+rdx-20H]1371 vinsertf128 ymm2, ymm2, xmmword ptr [r9+rdx-20H], 01H1372 vmovups ymm3, ymmword ptr [r8+rdx-10H]1373 vinsertf128 ymm3, ymm3, xmmword ptr [r9+rdx-10H], 01H1374 vshufps ymm6, ymm2, ymm3, 1361375 vshufps ymm7, ymm2, ymm3, 2211376 vpshufd ymm6, ymm6, 93H1377 vpshufd ymm7, ymm7, 93H1378 vmovups ymm10, ymmword ptr [r10+rdx-40H]1379 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-40H], 01H1380 vmovups ymm11, ymmword ptr [r10+rdx-30H]1381 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-30H], 01H1382 vshufps ymm12, ymm10, ymm11, 1361383 vshufps ymm13, ymm10, ymm11, 2211384 vmovups ymm10, ymmword ptr [r10+rdx-20H]1385 vinsertf128 ymm10, ymm10, xmmword ptr [r11+rdx-20H], 01H1386 vmovups ymm11, ymmword ptr [r10+rdx-10H]1387 vinsertf128 ymm11, ymm11, xmmword ptr [r11+rdx-10H], 01H1388 vshufps ymm14, ymm10, ymm11, 1361389 vshufps ymm15, ymm10, ymm11, 2211390 vpshufd ymm14, ymm14, 93H1391 vpshufd ymm15, ymm15, 93H1392 vpbroadcastd ymm2, dword ptr [rsp+200H]1393 vmovdqa ymm3, ymmword ptr [rsp]1394 vmovdqa ymm11, ymmword ptr [rsp+20H]1395 vpblendd ymm3, ymm3, ymm2, 88H1396 vpblendd ymm11, ymm11, ymm2, 88H1397 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV]1398 vmovdqa ymm10, ymm21399 mov al, 71400roundloop4:1401 vpaddd ymm0, ymm0, ymm41402 vpaddd ymm8, ymm8, ymm121403 vmovdqa ymmword ptr [rsp+40H], ymm41404 nop1405 vmovdqa ymmword ptr [rsp+60H], ymm121406 nop1407 vpaddd ymm0, ymm0, ymm11408 vpaddd ymm8, ymm8, ymm91409 vpxor ymm3, ymm3, ymm01410 vpxor ymm11, ymm11, ymm81411 vbroadcasti128 ymm4, xmmword ptr [ROT16]1412 vpshufb ymm3, ymm3, ymm41413 vpshufb ymm11, ymm11, ymm41414 vpaddd ymm2, ymm2, ymm31415 vpaddd ymm10, ymm10, ymm111416 vpxor ymm1, ymm1, ymm21417 vpxor ymm9, ymm9, ymm101418 vpsrld ymm4, ymm1, 121419 vpslld ymm1, ymm1, 201420 vpor ymm1, ymm1, ymm41421 vpsrld ymm4, ymm9, 121422 vpslld ymm9, ymm9, 201423 vpor ymm9, ymm9, ymm41424 vpaddd ymm0, ymm0, ymm51425 vpaddd ymm8, ymm8, ymm131426 vpaddd ymm0, ymm0, ymm11427 vpaddd ymm8, ymm8, ymm91428 vmovdqa ymmword ptr [rsp+80H], ymm51429 vmovdqa ymmword ptr [rsp+0A0H], ymm131430 vpxor ymm3, ymm3, ymm01431 vpxor ymm11, ymm11, ymm81432 vbroadcasti128 ymm4, xmmword ptr [ROT8]1433 vpshufb ymm3, ymm3, ymm41434 vpshufb ymm11, ymm11, ymm41435 vpaddd ymm2, ymm2, ymm31436 vpaddd ymm10, ymm10, ymm111437 vpxor ymm1, ymm1, ymm21438 vpxor ymm9, ymm9, ymm101439 vpsrld ymm4, ymm1, 71440 vpslld ymm1, ymm1, 251441 vpor ymm1, ymm1, ymm41442 vpsrld ymm4, ymm9, 71443 vpslld ymm9, ymm9, 251444 vpor ymm9, ymm9, ymm41445 vpshufd ymm0, ymm0, 93H1446 vpshufd ymm8, ymm8, 93H1447 vpshufd ymm3, ymm3, 4EH1448 vpshufd ymm11, ymm11, 4EH1449 vpshufd ymm2, ymm2, 39H1450 vpshufd ymm10, ymm10, 39H1451 vpaddd ymm0, ymm0, ymm61452 vpaddd ymm8, ymm8, ymm141453 vpaddd ymm0, ymm0, ymm11454 vpaddd ymm8, ymm8, ymm91455 vpxor ymm3, ymm3, ymm01456 vpxor ymm11, ymm11, ymm81457 vbroadcasti128 ymm4, xmmword ptr [ROT16]1458 vpshufb ymm3, ymm3, ymm41459 vpshufb ymm11, ymm11, ymm41460 vpaddd ymm2, ymm2, ymm31461 vpaddd ymm10, ymm10, ymm111462 vpxor ymm1, ymm1, ymm21463 vpxor ymm9, ymm9, ymm101464 vpsrld ymm4, ymm1, 121465 vpslld ymm1, ymm1, 201466 vpor ymm1, ymm1, ymm41467 vpsrld ymm4, ymm9, 121468 vpslld ymm9, ymm9, 201469 vpor ymm9, ymm9, ymm41470 vpaddd ymm0, ymm0, ymm71471 vpaddd ymm8, ymm8, ymm151472 vpaddd ymm0, ymm0, ymm11473 vpaddd ymm8, ymm8, ymm91474 vpxor ymm3, ymm3, ymm01475 vpxor ymm11, ymm11, ymm81476 vbroadcasti128 ymm4, xmmword ptr [ROT8]1477 vpshufb ymm3, ymm3, ymm41478 vpshufb ymm11, ymm11, ymm41479 vpaddd ymm2, ymm2, ymm31480 vpaddd ymm10, ymm10, ymm111481 vpxor ymm1, ymm1, ymm21482 vpxor ymm9, ymm9, ymm101483 vpsrld ymm4, ymm1, 71484 vpslld ymm1, ymm1, 251485 vpor ymm1, ymm1, ymm41486 vpsrld ymm4, ymm9, 71487 vpslld ymm9, ymm9, 251488 vpor ymm9, ymm9, ymm41489 vpshufd ymm0, ymm0, 39H1490 vpshufd ymm8, ymm8, 39H1491 vpshufd ymm3, ymm3, 4EH1492 vpshufd ymm11, ymm11, 4EH1493 vpshufd ymm2, ymm2, 93H1494 vpshufd ymm10, ymm10, 93H1495 dec al1496 je endroundloop41497 vmovdqa ymm4, ymmword ptr [rsp+40H]1498 vmovdqa ymm5, ymmword ptr [rsp+80H]1499 vshufps ymm12, ymm4, ymm5, 2141500 vpshufd ymm13, ymm4, 0FH1501 vpshufd ymm4, ymm12, 39H1502 vshufps ymm12, ymm6, ymm7, 2501503 vpblendd ymm13, ymm13, ymm12, 0AAH1504 vpunpcklqdq ymm12, ymm7, ymm51505 vpblendd ymm12, ymm12, ymm6, 88H1506 vpshufd ymm12, ymm12, 78H1507 vpunpckhdq ymm5, ymm5, ymm71508 vpunpckldq ymm6, ymm6, ymm51509 vpshufd ymm7, ymm6, 1EH1510 vmovdqa ymmword ptr [rsp+40H], ymm131511 vmovdqa ymmword ptr [rsp+80H], ymm121512 vmovdqa ymm12, ymmword ptr [rsp+60H]1513 vmovdqa ymm13, ymmword ptr [rsp+0A0H]1514 vshufps ymm5, ymm12, ymm13, 2141515 vpshufd ymm6, ymm12, 0FH1516 vpshufd ymm12, ymm5, 39H1517 vshufps ymm5, ymm14, ymm15, 2501518 vpblendd ymm6, ymm6, ymm5, 0AAH1519 vpunpcklqdq ymm5, ymm15, ymm131520 vpblendd ymm5, ymm5, ymm14, 88H1521 vpshufd ymm5, ymm5, 78H1522 vpunpckhdq ymm13, ymm13, ymm151523 vpunpckldq ymm14, ymm14, ymm131524 vpshufd ymm15, ymm14, 1EH1525 vmovdqa ymm13, ymm61526 vmovdqa ymm14, ymm51527 vmovdqa ymm5, ymmword ptr [rsp+40H]1528 vmovdqa ymm6, ymmword ptr [rsp+80H]1529 jmp roundloop41530endroundloop4:1531 vpxor ymm0, ymm0, ymm21532 vpxor ymm1, ymm1, ymm31533 vpxor ymm8, ymm8, ymm101534 vpxor ymm9, ymm9, ymm111535 mov eax, r13d1536 cmp rdx, r151537 jne innerloop41538 vmovdqu xmmword ptr [rbx], xmm01539 vmovdqu xmmword ptr [rbx+10H], xmm11540 vextracti128 xmmword ptr [rbx+20H], ymm0, 01H1541 vextracti128 xmmword ptr [rbx+30H], ymm1, 01H1542 vmovdqu xmmword ptr [rbx+40H], xmm81543 vmovdqu xmmword ptr [rbx+50H], xmm91544 vextracti128 xmmword ptr [rbx+60H], ymm8, 01H1545 vextracti128 xmmword ptr [rbx+70H], ymm9, 01H1546 vmovaps xmm8, xmmword ptr [rsp+260H]1547 vmovaps xmm0, xmmword ptr [rsp+220H]1548 vmovaps xmm1, xmmword ptr [rsp+230H]1549 vmovaps xmm2, xmmword ptr [rsp+240H]1550 vmovaps xmm3, xmmword ptr [rsp+250H]1551 vblendvps xmm0, xmm0, xmm1, xmm81552 vblendvps xmm2, xmm2, xmm3, xmm81553 vmovaps xmmword ptr [rsp+220H], xmm01554 vmovaps xmmword ptr [rsp+240H], xmm21555 add rbx, 1281556 add rdi, 321557 sub rsi, 41558final3blocks:1559 test rsi, 2H1560 je final1blocks1561 vbroadcasti128 ymm0, xmmword ptr [rcx]1562 vbroadcasti128 ymm1, xmmword ptr [rcx+10H]1563 vmovd xmm13, dword ptr [rsp+220H]1564 vpinsrd xmm13, xmm13, dword ptr [rsp+240H], 11565 vpinsrd xmm13, xmm13, dword ptr [BLAKE3_BLOCK_LEN], 21566 vmovd xmm14, dword ptr [rsp+224H]1567 vpinsrd xmm14, xmm14, dword ptr [rsp+244H], 11568 vpinsrd xmm14, xmm14, dword ptr [BLAKE3_BLOCK_LEN], 21569 vinserti128 ymm13, ymm13, xmm14, 01H1570 vbroadcasti128 ymm14, xmmword ptr [ROT16]1571 vbroadcasti128 ymm15, xmmword ptr [ROT8]1572 mov r8, qword ptr [rdi]1573 mov r9, qword ptr [rdi+8H]1574 movzx eax, byte ptr [rbp+80H]1575 or eax, r13d1576 xor edx, edx1577ALIGN 161578innerloop2:1579 mov r14d, eax1580 or eax, r12d1581 add rdx, 641582 cmp rdx, r151583 cmovne eax, r14d1584 mov dword ptr [rsp+200H], eax1585 vbroadcasti128 ymm2, xmmword ptr [BLAKE3_IV]1586 vpbroadcastd ymm8, dword ptr [rsp+200H]1587 vpblendd ymm3, ymm13, ymm8, 88H1588 vmovups ymm8, ymmword ptr [r8+rdx-40H]1589 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-40H], 01H1590 vmovups ymm9, ymmword ptr [r8+rdx-30H]1591 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-30H], 01H1592 vshufps ymm4, ymm8, ymm9, 1361593 vshufps ymm5, ymm8, ymm9, 2211594 vmovups ymm8, ymmword ptr [r8+rdx-20H]1595 vinsertf128 ymm8, ymm8, xmmword ptr [r9+rdx-20H], 01H1596 vmovups ymm9, ymmword ptr [r8+rdx-10H]1597 vinsertf128 ymm9, ymm9, xmmword ptr [r9+rdx-10H], 01H1598 vshufps ymm6, ymm8, ymm9, 1361599 vshufps ymm7, ymm8, ymm9, 2211600 vpshufd ymm6, ymm6, 93H1601 vpshufd ymm7, ymm7, 93H1602 mov al, 71603roundloop2:1604 vpaddd ymm0, ymm0, ymm41605 vpaddd ymm0, ymm0, ymm11606 vpxor ymm3, ymm3, ymm01607 vpshufb ymm3, ymm3, ymm141608 vpaddd ymm2, ymm2, ymm31609 vpxor ymm1, ymm1, ymm21610 vpsrld ymm8, ymm1, 121611 vpslld ymm1, ymm1, 201612 vpor ymm1, ymm1, ymm81613 vpaddd ymm0, ymm0, ymm51614 vpaddd ymm0, ymm0, ymm11615 vpxor ymm3, ymm3, ymm01616 vpshufb ymm3, ymm3, ymm151617 vpaddd ymm2, ymm2, ymm31618 vpxor ymm1, ymm1, ymm21619 vpsrld ymm8, ymm1, 71620 vpslld ymm1, ymm1, 251621 vpor ymm1, ymm1, ymm81622 vpshufd ymm0, ymm0, 93H1623 vpshufd ymm3, ymm3, 4EH1624 vpshufd ymm2, ymm2, 39H1625 vpaddd ymm0, ymm0, ymm61626 vpaddd ymm0, ymm0, ymm11627 vpxor ymm3, ymm3, ymm01628 vpshufb ymm3, ymm3, ymm141629 vpaddd ymm2, ymm2, ymm31630 vpxor ymm1, ymm1, ymm21631 vpsrld ymm8, ymm1, 121632 vpslld ymm1, ymm1, 201633 vpor ymm1, ymm1, ymm81634 vpaddd ymm0, ymm0, ymm71635 vpaddd ymm0, ymm0, ymm11636 vpxor ymm3, ymm3, ymm01637 vpshufb ymm3, ymm3, ymm151638 vpaddd ymm2, ymm2, ymm31639 vpxor ymm1, ymm1, ymm21640 vpsrld ymm8, ymm1, 71641 vpslld ymm1, ymm1, 251642 vpor ymm1, ymm1, ymm81643 vpshufd ymm0, ymm0, 39H1644 vpshufd ymm3, ymm3, 4EH1645 vpshufd ymm2, ymm2, 93H1646 dec al1647 jz endroundloop21648 vshufps ymm8, ymm4, ymm5, 2141649 vpshufd ymm9, ymm4, 0FH1650 vpshufd ymm4, ymm8, 39H1651 vshufps ymm8, ymm6, ymm7, 2501652 vpblendd ymm9, ymm9, ymm8, 0AAH1653 vpunpcklqdq ymm8, ymm7, ymm51654 vpblendd ymm8, ymm8, ymm6, 88H1655 vpshufd ymm8, ymm8, 78H1656 vpunpckhdq ymm5, ymm5, ymm71657 vpunpckldq ymm6, ymm6, ymm51658 vpshufd ymm7, ymm6, 1EH1659 vmovdqa ymm5, ymm91660 vmovdqa ymm6, ymm81661 jmp roundloop21662endroundloop2:1663 vpxor ymm0, ymm0, ymm21664 vpxor ymm1, ymm1, ymm31665 mov eax, r13d1666 cmp rdx, r151667 jne innerloop21668 vmovdqu xmmword ptr [rbx], xmm01669 vmovdqu xmmword ptr [rbx+10H], xmm11670 vextracti128 xmmword ptr [rbx+20H], ymm0, 01H1671 vextracti128 xmmword ptr [rbx+30H], ymm1, 01H1672 vmovaps ymm8, ymmword ptr [rsp+260H]1673 vmovaps ymm0, ymmword ptr [rsp+220H]1674 vmovups ymm1, ymmword ptr [rsp+228H]1675 vmovaps ymm2, ymmword ptr [rsp+240H]1676 vmovups ymm3, ymmword ptr [rsp+248H]1677 vblendvps ymm0, ymm0, ymm1, ymm81678 vblendvps ymm2, ymm2, ymm3, ymm81679 vmovaps ymmword ptr [rsp+220H], ymm01680 vmovaps ymmword ptr [rsp+240H], ymm21681 add rbx, 641682 add rdi, 161683 sub rsi, 21684final1blocks:1685 test rsi, 1H1686 je unwind1687 vmovdqu xmm0, xmmword ptr [rcx]1688 vmovdqu xmm1, xmmword ptr [rcx+10H]1689 vmovd xmm3, dword ptr [rsp+220H]1690 vpinsrd xmm3, xmm3, dword ptr [rsp+240H], 11691 vpinsrd xmm13, xmm3, dword ptr [BLAKE3_BLOCK_LEN], 21692 vmovdqa xmm14, xmmword ptr [ROT16]1693 vmovdqa xmm15, xmmword ptr [ROT8]1694 mov r8, qword ptr [rdi]1695 movzx eax, byte ptr [rbp+80H]1696 or eax, r13d1697 xor edx, edx1698ALIGN 161699innerloop1:1700 mov r14d, eax1701 or eax, r12d1702 add rdx, 641703 cmp rdx, r151704 cmovne eax, r14d1705 vmovdqa xmm2, xmmword ptr [BLAKE3_IV]1706 vmovdqa xmm3, xmm131707 vpinsrd xmm3, xmm3, eax, 31708 vmovups xmm8, xmmword ptr [r8+rdx-40H]1709 vmovups xmm9, xmmword ptr [r8+rdx-30H]1710 vshufps xmm4, xmm8, xmm9, 1361711 vshufps xmm5, xmm8, xmm9, 2211712 vmovups xmm8, xmmword ptr [r8+rdx-20H]1713 vmovups xmm9, xmmword ptr [r8+rdx-10H]1714 vshufps xmm6, xmm8, xmm9, 1361715 vshufps xmm7, xmm8, xmm9, 2211716 vpshufd xmm6, xmm6, 93H1717 vpshufd xmm7, xmm7, 93H1718 mov al, 71719roundloop1:1720 vpaddd xmm0, xmm0, xmm41721 vpaddd xmm0, xmm0, xmm11722 vpxor xmm3, xmm3, xmm01723 vpshufb xmm3, xmm3, xmm141724 vpaddd xmm2, xmm2, xmm31725 vpxor xmm1, xmm1, xmm21726 vpsrld xmm8, xmm1, 121727 vpslld xmm1, xmm1, 201728 vpor xmm1, xmm1, xmm81729 vpaddd xmm0, xmm0, xmm51730 vpaddd xmm0, xmm0, xmm11731 vpxor xmm3, xmm3, xmm01732 vpshufb xmm3, xmm3, xmm151733 vpaddd xmm2, xmm2, xmm31734 vpxor xmm1, xmm1, xmm21735 vpsrld xmm8, xmm1, 71736 vpslld xmm1, xmm1, 251737 vpor xmm1, xmm1, xmm81738 vpshufd xmm0, xmm0, 93H1739 vpshufd xmm3, xmm3, 4EH1740 vpshufd xmm2, xmm2, 39H1741 vpaddd xmm0, xmm0, xmm61742 vpaddd xmm0, xmm0, xmm11743 vpxor xmm3, xmm3, xmm01744 vpshufb xmm3, xmm3, xmm141745 vpaddd xmm2, xmm2, xmm31746 vpxor xmm1, xmm1, xmm21747 vpsrld xmm8, xmm1, 121748 vpslld xmm1, xmm1, 201749 vpor xmm1, xmm1, xmm81750 vpaddd xmm0, xmm0, xmm71751 vpaddd xmm0, xmm0, xmm11752 vpxor xmm3, xmm3, xmm01753 vpshufb xmm3, xmm3, xmm151754 vpaddd xmm2, xmm2, xmm31755 vpxor xmm1, xmm1, xmm21756 vpsrld xmm8, xmm1, 71757 vpslld xmm1, xmm1, 251758 vpor xmm1, xmm1, xmm81759 vpshufd xmm0, xmm0, 39H1760 vpshufd xmm3, xmm3, 4EH1761 vpshufd xmm2, xmm2, 93H1762 dec al1763 jz endroundloop11764 vshufps xmm8, xmm4, xmm5, 2141765 vpshufd xmm9, xmm4, 0FH1766 vpshufd xmm4, xmm8, 39H1767 vshufps xmm8, xmm6, xmm7, 2501768 vpblendd xmm9, xmm9, xmm8, 0AAH1769 vpunpcklqdq xmm8, xmm7, xmm51770 vpblendd xmm8, xmm8, xmm6, 88H1771 vpshufd xmm8, xmm8, 78H1772 vpunpckhdq xmm5, xmm5, xmm71773 vpunpckldq xmm6, xmm6, xmm51774 vpshufd xmm7, xmm6, 1EH1775 vmovdqa xmm5, xmm91776 vmovdqa xmm6, xmm81777 jmp roundloop11778endroundloop1:1779 vpxor xmm0, xmm0, xmm21780 vpxor xmm1, xmm1, xmm31781 mov eax, r13d1782 cmp rdx, r151783 jne innerloop11784 vmovdqu xmmword ptr [rbx], xmm01785 vmovdqu xmmword ptr [rbx+10H], xmm11786 jmp unwind1787 1788_llvm_blake3_hash_many_avx2 ENDP1789llvm_blake3_hash_many_avx2 ENDP1790_TEXT ENDS1791 1792_RDATA SEGMENT READONLY PAGE ALIAS(".rdata") 'CONST'1793ALIGN 641794ADD0:1795 dd 0, 1, 2, 3, 4, 5, 6, 71796 1797ADD1:1798 dd 8 dup (8)1799 1800BLAKE3_IV_0:1801 dd 8 dup (6A09E667H)1802 1803BLAKE3_IV_1:1804 dd 8 dup (0BB67AE85H)1805 1806BLAKE3_IV_2:1807 dd 8 dup (3C6EF372H)1808 1809BLAKE3_IV_3:1810 dd 8 dup (0A54FF53AH)1811 1812BLAKE3_BLOCK_LEN:1813 dd 8 dup (64)1814 1815ROT16:1816 db 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 131817 1818ROT8:1819 db 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 121820 1821CMP_MSB_MASK:1822 dd 8 dup(80000000H)1823 1824BLAKE3_IV:1825 dd 6A09E667H, 0BB67AE85H, 3C6EF372H, 0A54FF53AH1826 1827_RDATA ENDS1828END1829