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