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