VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.1/crypto/genasm-nasm/aesni-mb-x86_64.S@ 94083

Last change on this file since 94083 was 94083, checked in by vboxsync, 3 years ago

libs/openssl-3.0.1: Recreate asm files, bugref:10128

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

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette