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