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