VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.0g/crypto/genasm-nasm/aes-x86_64.S@ 69881

Last change on this file since 69881 was 69881, checked in by vboxsync, 7 years ago

Update OpenSSL to 1.1.0g.
bugref:8070: src/libs maintenance

  • Property svn:eol-style set to native
File size: 57.2 KB
Line 
1default rel
2%define XMMWORD
3%define YMMWORD
4%define ZMMWORD
5section .text code align=64
6
7
8ALIGN 16
9_x86_64_AES_encrypt:
10 xor eax,DWORD[r15]
11 xor ebx,DWORD[4+r15]
12 xor ecx,DWORD[8+r15]
13 xor edx,DWORD[12+r15]
14
15 mov r13d,DWORD[240+r15]
16 sub r13d,1
17 jmp NEAR $L$enc_loop
18ALIGN 16
19$L$enc_loop:
20
21 movzx esi,al
22 movzx edi,bl
23 movzx ebp,cl
24 mov r10d,DWORD[rsi*8+r14]
25 mov r11d,DWORD[rdi*8+r14]
26 mov r12d,DWORD[rbp*8+r14]
27
28 movzx esi,bh
29 movzx edi,ch
30 movzx ebp,dl
31 xor r10d,DWORD[3+rsi*8+r14]
32 xor r11d,DWORD[3+rdi*8+r14]
33 mov r8d,DWORD[rbp*8+r14]
34
35 movzx esi,dh
36 shr ecx,16
37 movzx ebp,ah
38 xor r12d,DWORD[3+rsi*8+r14]
39 shr edx,16
40 xor r8d,DWORD[3+rbp*8+r14]
41
42 shr ebx,16
43 lea r15,[16+r15]
44 shr eax,16
45
46 movzx esi,cl
47 movzx edi,dl
48 movzx ebp,al
49 xor r10d,DWORD[2+rsi*8+r14]
50 xor r11d,DWORD[2+rdi*8+r14]
51 xor r12d,DWORD[2+rbp*8+r14]
52
53 movzx esi,dh
54 movzx edi,ah
55 movzx ebp,bl
56 xor r10d,DWORD[1+rsi*8+r14]
57 xor r11d,DWORD[1+rdi*8+r14]
58 xor r8d,DWORD[2+rbp*8+r14]
59
60 mov edx,DWORD[12+r15]
61 movzx edi,bh
62 movzx ebp,ch
63 mov eax,DWORD[r15]
64 xor r12d,DWORD[1+rdi*8+r14]
65 xor r8d,DWORD[1+rbp*8+r14]
66
67 mov ebx,DWORD[4+r15]
68 mov ecx,DWORD[8+r15]
69 xor eax,r10d
70 xor ebx,r11d
71 xor ecx,r12d
72 xor edx,r8d
73 sub r13d,1
74 jnz NEAR $L$enc_loop
75 movzx esi,al
76 movzx edi,bl
77 movzx ebp,cl
78 movzx r10d,BYTE[2+rsi*8+r14]
79 movzx r11d,BYTE[2+rdi*8+r14]
80 movzx r12d,BYTE[2+rbp*8+r14]
81
82 movzx esi,dl
83 movzx edi,bh
84 movzx ebp,ch
85 movzx r8d,BYTE[2+rsi*8+r14]
86 mov edi,DWORD[rdi*8+r14]
87 mov ebp,DWORD[rbp*8+r14]
88
89 and edi,0x0000ff00
90 and ebp,0x0000ff00
91
92 xor r10d,edi
93 xor r11d,ebp
94 shr ecx,16
95
96 movzx esi,dh
97 movzx edi,ah
98 shr edx,16
99 mov esi,DWORD[rsi*8+r14]
100 mov edi,DWORD[rdi*8+r14]
101
102 and esi,0x0000ff00
103 and edi,0x0000ff00
104 shr ebx,16
105 xor r12d,esi
106 xor r8d,edi
107 shr eax,16
108
109 movzx esi,cl
110 movzx edi,dl
111 movzx ebp,al
112 mov esi,DWORD[rsi*8+r14]
113 mov edi,DWORD[rdi*8+r14]
114 mov ebp,DWORD[rbp*8+r14]
115
116 and esi,0x00ff0000
117 and edi,0x00ff0000
118 and ebp,0x00ff0000
119
120 xor r10d,esi
121 xor r11d,edi
122 xor r12d,ebp
123
124 movzx esi,bl
125 movzx edi,dh
126 movzx ebp,ah
127 mov esi,DWORD[rsi*8+r14]
128 mov edi,DWORD[2+rdi*8+r14]
129 mov ebp,DWORD[2+rbp*8+r14]
130
131 and esi,0x00ff0000
132 and edi,0xff000000
133 and ebp,0xff000000
134
135 xor r8d,esi
136 xor r10d,edi
137 xor r11d,ebp
138
139 movzx esi,bh
140 movzx edi,ch
141 mov edx,DWORD[((16+12))+r15]
142 mov esi,DWORD[2+rsi*8+r14]
143 mov edi,DWORD[2+rdi*8+r14]
144 mov eax,DWORD[((16+0))+r15]
145
146 and esi,0xff000000
147 and edi,0xff000000
148
149 xor r12d,esi
150 xor r8d,edi
151
152 mov ebx,DWORD[((16+4))+r15]
153 mov ecx,DWORD[((16+8))+r15]
154 xor eax,r10d
155 xor ebx,r11d
156 xor ecx,r12d
157 xor edx,r8d
158DB 0xf3,0xc3
159
160
161ALIGN 16
162_x86_64_AES_encrypt_compact:
163 lea r8,[128+r14]
164 mov edi,DWORD[((0-128))+r8]
165 mov ebp,DWORD[((32-128))+r8]
166 mov r10d,DWORD[((64-128))+r8]
167 mov r11d,DWORD[((96-128))+r8]
168 mov edi,DWORD[((128-128))+r8]
169 mov ebp,DWORD[((160-128))+r8]
170 mov r10d,DWORD[((192-128))+r8]
171 mov r11d,DWORD[((224-128))+r8]
172 jmp NEAR $L$enc_loop_compact
173ALIGN 16
174$L$enc_loop_compact:
175 xor eax,DWORD[r15]
176 xor ebx,DWORD[4+r15]
177 xor ecx,DWORD[8+r15]
178 xor edx,DWORD[12+r15]
179 lea r15,[16+r15]
180 movzx r10d,al
181 movzx r11d,bl
182 movzx r12d,cl
183 movzx r8d,dl
184 movzx esi,bh
185 movzx edi,ch
186 shr ecx,16
187 movzx ebp,dh
188 movzx r10d,BYTE[r10*1+r14]
189 movzx r11d,BYTE[r11*1+r14]
190 movzx r12d,BYTE[r12*1+r14]
191 movzx r8d,BYTE[r8*1+r14]
192
193 movzx r9d,BYTE[rsi*1+r14]
194 movzx esi,ah
195 movzx r13d,BYTE[rdi*1+r14]
196 movzx edi,cl
197 movzx ebp,BYTE[rbp*1+r14]
198 movzx esi,BYTE[rsi*1+r14]
199
200 shl r9d,8
201 shr edx,16
202 shl r13d,8
203 xor r10d,r9d
204 shr eax,16
205 movzx r9d,dl
206 shr ebx,16
207 xor r11d,r13d
208 shl ebp,8
209 movzx r13d,al
210 movzx edi,BYTE[rdi*1+r14]
211 xor r12d,ebp
212
213 shl esi,8
214 movzx ebp,bl
215 shl edi,16
216 xor r8d,esi
217 movzx r9d,BYTE[r9*1+r14]
218 movzx esi,dh
219 movzx r13d,BYTE[r13*1+r14]
220 xor r10d,edi
221
222 shr ecx,8
223 movzx edi,ah
224 shl r9d,16
225 shr ebx,8
226 shl r13d,16
227 xor r11d,r9d
228 movzx ebp,BYTE[rbp*1+r14]
229 movzx esi,BYTE[rsi*1+r14]
230 movzx edi,BYTE[rdi*1+r14]
231 movzx edx,BYTE[rcx*1+r14]
232 movzx ecx,BYTE[rbx*1+r14]
233
234 shl ebp,16
235 xor r12d,r13d
236 shl esi,24
237 xor r8d,ebp
238 shl edi,24
239 xor r10d,esi
240 shl edx,24
241 xor r11d,edi
242 shl ecx,24
243 mov eax,r10d
244 mov ebx,r11d
245 xor ecx,r12d
246 xor edx,r8d
247 cmp r15,QWORD[16+rsp]
248 je NEAR $L$enc_compact_done
249 mov r10d,0x80808080
250 mov r11d,0x80808080
251 and r10d,eax
252 and r11d,ebx
253 mov esi,r10d
254 mov edi,r11d
255 shr r10d,7
256 lea r8d,[rax*1+rax]
257 shr r11d,7
258 lea r9d,[rbx*1+rbx]
259 sub esi,r10d
260 sub edi,r11d
261 and r8d,0xfefefefe
262 and r9d,0xfefefefe
263 and esi,0x1b1b1b1b
264 and edi,0x1b1b1b1b
265 mov r10d,eax
266 mov r11d,ebx
267 xor r8d,esi
268 xor r9d,edi
269
270 xor eax,r8d
271 xor ebx,r9d
272 mov r12d,0x80808080
273 rol eax,24
274 mov ebp,0x80808080
275 rol ebx,24
276 and r12d,ecx
277 and ebp,edx
278 xor eax,r8d
279 xor ebx,r9d
280 mov esi,r12d
281 ror r10d,16
282 mov edi,ebp
283 ror r11d,16
284 lea r8d,[rcx*1+rcx]
285 shr r12d,7
286 xor eax,r10d
287 shr ebp,7
288 xor ebx,r11d
289 ror r10d,8
290 lea r9d,[rdx*1+rdx]
291 ror r11d,8
292 sub esi,r12d
293 sub edi,ebp
294 xor eax,r10d
295 xor ebx,r11d
296
297 and r8d,0xfefefefe
298 and r9d,0xfefefefe
299 and esi,0x1b1b1b1b
300 and edi,0x1b1b1b1b
301 mov r12d,ecx
302 mov ebp,edx
303 xor r8d,esi
304 xor r9d,edi
305
306 ror r12d,16
307 xor ecx,r8d
308 ror ebp,16
309 xor edx,r9d
310 rol ecx,24
311 mov esi,DWORD[r14]
312 rol edx,24
313 xor ecx,r8d
314 mov edi,DWORD[64+r14]
315 xor edx,r9d
316 mov r8d,DWORD[128+r14]
317 xor ecx,r12d
318 ror r12d,8
319 xor edx,ebp
320 ror ebp,8
321 xor ecx,r12d
322 mov r9d,DWORD[192+r14]
323 xor edx,ebp
324 jmp NEAR $L$enc_loop_compact
325ALIGN 16
326$L$enc_compact_done:
327 xor eax,DWORD[r15]
328 xor ebx,DWORD[4+r15]
329 xor ecx,DWORD[8+r15]
330 xor edx,DWORD[12+r15]
331DB 0xf3,0xc3
332
333global AES_encrypt
334
335ALIGN 16
336global asm_AES_encrypt
337
338asm_AES_encrypt:
339AES_encrypt:
340 mov QWORD[8+rsp],rdi ;WIN64 prologue
341 mov QWORD[16+rsp],rsi
342 mov rax,rsp
343$L$SEH_begin_AES_encrypt:
344 mov rdi,rcx
345 mov rsi,rdx
346 mov rdx,r8
347
348
349 push rbx
350 push rbp
351 push r12
352 push r13
353 push r14
354 push r15
355
356
357 mov r10,rsp
358 lea rcx,[((-63))+rdx]
359 and rsp,-64
360 sub rcx,rsp
361 neg rcx
362 and rcx,0x3c0
363 sub rsp,rcx
364 sub rsp,32
365
366 mov QWORD[16+rsp],rsi
367 mov QWORD[24+rsp],r10
368$L$enc_prologue:
369
370 mov r15,rdx
371 mov r13d,DWORD[240+r15]
372
373 mov eax,DWORD[rdi]
374 mov ebx,DWORD[4+rdi]
375 mov ecx,DWORD[8+rdi]
376 mov edx,DWORD[12+rdi]
377
378 shl r13d,4
379 lea rbp,[r13*1+r15]
380 mov QWORD[rsp],r15
381 mov QWORD[8+rsp],rbp
382
383
384 lea r14,[(($L$AES_Te+2048))]
385 lea rbp,[768+rsp]
386 sub rbp,r14
387 and rbp,0x300
388 lea r14,[rbp*1+r14]
389
390 call _x86_64_AES_encrypt_compact
391
392 mov r9,QWORD[16+rsp]
393 mov rsi,QWORD[24+rsp]
394 mov DWORD[r9],eax
395 mov DWORD[4+r9],ebx
396 mov DWORD[8+r9],ecx
397 mov DWORD[12+r9],edx
398
399 mov r15,QWORD[rsi]
400 mov r14,QWORD[8+rsi]
401 mov r13,QWORD[16+rsi]
402 mov r12,QWORD[24+rsi]
403 mov rbp,QWORD[32+rsi]
404 mov rbx,QWORD[40+rsi]
405 lea rsp,[48+rsi]
406$L$enc_epilogue:
407 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
408 mov rsi,QWORD[16+rsp]
409 DB 0F3h,0C3h ;repret
410$L$SEH_end_AES_encrypt:
411
412ALIGN 16
413_x86_64_AES_decrypt:
414 xor eax,DWORD[r15]
415 xor ebx,DWORD[4+r15]
416 xor ecx,DWORD[8+r15]
417 xor edx,DWORD[12+r15]
418
419 mov r13d,DWORD[240+r15]
420 sub r13d,1
421 jmp NEAR $L$dec_loop
422ALIGN 16
423$L$dec_loop:
424
425 movzx esi,al
426 movzx edi,bl
427 movzx ebp,cl
428 mov r10d,DWORD[rsi*8+r14]
429 mov r11d,DWORD[rdi*8+r14]
430 mov r12d,DWORD[rbp*8+r14]
431
432 movzx esi,dh
433 movzx edi,ah
434 movzx ebp,dl
435 xor r10d,DWORD[3+rsi*8+r14]
436 xor r11d,DWORD[3+rdi*8+r14]
437 mov r8d,DWORD[rbp*8+r14]
438
439 movzx esi,bh
440 shr eax,16
441 movzx ebp,ch
442 xor r12d,DWORD[3+rsi*8+r14]
443 shr edx,16
444 xor r8d,DWORD[3+rbp*8+r14]
445
446 shr ebx,16
447 lea r15,[16+r15]
448 shr ecx,16
449
450 movzx esi,cl
451 movzx edi,dl
452 movzx ebp,al
453 xor r10d,DWORD[2+rsi*8+r14]
454 xor r11d,DWORD[2+rdi*8+r14]
455 xor r12d,DWORD[2+rbp*8+r14]
456
457 movzx esi,bh
458 movzx edi,ch
459 movzx ebp,bl
460 xor r10d,DWORD[1+rsi*8+r14]
461 xor r11d,DWORD[1+rdi*8+r14]
462 xor r8d,DWORD[2+rbp*8+r14]
463
464 movzx esi,dh
465 mov edx,DWORD[12+r15]
466 movzx ebp,ah
467 xor r12d,DWORD[1+rsi*8+r14]
468 mov eax,DWORD[r15]
469 xor r8d,DWORD[1+rbp*8+r14]
470
471 xor eax,r10d
472 mov ebx,DWORD[4+r15]
473 mov ecx,DWORD[8+r15]
474 xor ecx,r12d
475 xor ebx,r11d
476 xor edx,r8d
477 sub r13d,1
478 jnz NEAR $L$dec_loop
479 lea r14,[2048+r14]
480 movzx esi,al
481 movzx edi,bl
482 movzx ebp,cl
483 movzx r10d,BYTE[rsi*1+r14]
484 movzx r11d,BYTE[rdi*1+r14]
485 movzx r12d,BYTE[rbp*1+r14]
486
487 movzx esi,dl
488 movzx edi,dh
489 movzx ebp,ah
490 movzx r8d,BYTE[rsi*1+r14]
491 movzx edi,BYTE[rdi*1+r14]
492 movzx ebp,BYTE[rbp*1+r14]
493
494 shl edi,8
495 shl ebp,8
496
497 xor r10d,edi
498 xor r11d,ebp
499 shr edx,16
500
501 movzx esi,bh
502 movzx edi,ch
503 shr eax,16
504 movzx esi,BYTE[rsi*1+r14]
505 movzx edi,BYTE[rdi*1+r14]
506
507 shl esi,8
508 shl edi,8
509 shr ebx,16
510 xor r12d,esi
511 xor r8d,edi
512 shr ecx,16
513
514 movzx esi,cl
515 movzx edi,dl
516 movzx ebp,al
517 movzx esi,BYTE[rsi*1+r14]
518 movzx edi,BYTE[rdi*1+r14]
519 movzx ebp,BYTE[rbp*1+r14]
520
521 shl esi,16
522 shl edi,16
523 shl ebp,16
524
525 xor r10d,esi
526 xor r11d,edi
527 xor r12d,ebp
528
529 movzx esi,bl
530 movzx edi,bh
531 movzx ebp,ch
532 movzx esi,BYTE[rsi*1+r14]
533 movzx edi,BYTE[rdi*1+r14]
534 movzx ebp,BYTE[rbp*1+r14]
535
536 shl esi,16
537 shl edi,24
538 shl ebp,24
539
540 xor r8d,esi
541 xor r10d,edi
542 xor r11d,ebp
543
544 movzx esi,dh
545 movzx edi,ah
546 mov edx,DWORD[((16+12))+r15]
547 movzx esi,BYTE[rsi*1+r14]
548 movzx edi,BYTE[rdi*1+r14]
549 mov eax,DWORD[((16+0))+r15]
550
551 shl esi,24
552 shl edi,24
553
554 xor r12d,esi
555 xor r8d,edi
556
557 mov ebx,DWORD[((16+4))+r15]
558 mov ecx,DWORD[((16+8))+r15]
559 lea r14,[((-2048))+r14]
560 xor eax,r10d
561 xor ebx,r11d
562 xor ecx,r12d
563 xor edx,r8d
564DB 0xf3,0xc3
565
566
567ALIGN 16
568_x86_64_AES_decrypt_compact:
569 lea r8,[128+r14]
570 mov edi,DWORD[((0-128))+r8]
571 mov ebp,DWORD[((32-128))+r8]
572 mov r10d,DWORD[((64-128))+r8]
573 mov r11d,DWORD[((96-128))+r8]
574 mov edi,DWORD[((128-128))+r8]
575 mov ebp,DWORD[((160-128))+r8]
576 mov r10d,DWORD[((192-128))+r8]
577 mov r11d,DWORD[((224-128))+r8]
578 jmp NEAR $L$dec_loop_compact
579
580ALIGN 16
581$L$dec_loop_compact:
582 xor eax,DWORD[r15]
583 xor ebx,DWORD[4+r15]
584 xor ecx,DWORD[8+r15]
585 xor edx,DWORD[12+r15]
586 lea r15,[16+r15]
587 movzx r10d,al
588 movzx r11d,bl
589 movzx r12d,cl
590 movzx r8d,dl
591 movzx esi,dh
592 movzx edi,ah
593 shr edx,16
594 movzx ebp,bh
595 movzx r10d,BYTE[r10*1+r14]
596 movzx r11d,BYTE[r11*1+r14]
597 movzx r12d,BYTE[r12*1+r14]
598 movzx r8d,BYTE[r8*1+r14]
599
600 movzx r9d,BYTE[rsi*1+r14]
601 movzx esi,ch
602 movzx r13d,BYTE[rdi*1+r14]
603 movzx ebp,BYTE[rbp*1+r14]
604 movzx esi,BYTE[rsi*1+r14]
605
606 shr ecx,16
607 shl r13d,8
608 shl r9d,8
609 movzx edi,cl
610 shr eax,16
611 xor r10d,r9d
612 shr ebx,16
613 movzx r9d,dl
614
615 shl ebp,8
616 xor r11d,r13d
617 shl esi,8
618 movzx r13d,al
619 movzx edi,BYTE[rdi*1+r14]
620 xor r12d,ebp
621 movzx ebp,bl
622
623 shl edi,16
624 xor r8d,esi
625 movzx r9d,BYTE[r9*1+r14]
626 movzx esi,bh
627 movzx ebp,BYTE[rbp*1+r14]
628 xor r10d,edi
629 movzx r13d,BYTE[r13*1+r14]
630 movzx edi,ch
631
632 shl ebp,16
633 shl r9d,16
634 shl r13d,16
635 xor r8d,ebp
636 movzx ebp,dh
637 xor r11d,r9d
638 shr eax,8
639 xor r12d,r13d
640
641 movzx esi,BYTE[rsi*1+r14]
642 movzx ebx,BYTE[rdi*1+r14]
643 movzx ecx,BYTE[rbp*1+r14]
644 movzx edx,BYTE[rax*1+r14]
645
646 mov eax,r10d
647 shl esi,24
648 shl ebx,24
649 shl ecx,24
650 xor eax,esi
651 shl edx,24
652 xor ebx,r11d
653 xor ecx,r12d
654 xor edx,r8d
655 cmp r15,QWORD[16+rsp]
656 je NEAR $L$dec_compact_done
657
658 mov rsi,QWORD[((256+0))+r14]
659 shl rbx,32
660 shl rdx,32
661 mov rdi,QWORD[((256+8))+r14]
662 or rax,rbx
663 or rcx,rdx
664 mov rbp,QWORD[((256+16))+r14]
665 mov r9,rsi
666 mov r12,rsi
667 and r9,rax
668 and r12,rcx
669 mov rbx,r9
670 mov rdx,r12
671 shr r9,7
672 lea r8,[rax*1+rax]
673 shr r12,7
674 lea r11,[rcx*1+rcx]
675 sub rbx,r9
676 sub rdx,r12
677 and r8,rdi
678 and r11,rdi
679 and rbx,rbp
680 and rdx,rbp
681 xor r8,rbx
682 xor r11,rdx
683 mov r10,rsi
684 mov r13,rsi
685
686 and r10,r8
687 and r13,r11
688 mov rbx,r10
689 mov rdx,r13
690 shr r10,7
691 lea r9,[r8*1+r8]
692 shr r13,7
693 lea r12,[r11*1+r11]
694 sub rbx,r10
695 sub rdx,r13
696 and r9,rdi
697 and r12,rdi
698 and rbx,rbp
699 and rdx,rbp
700 xor r9,rbx
701 xor r12,rdx
702 mov r10,rsi
703 mov r13,rsi
704
705 and r10,r9
706 and r13,r12
707 mov rbx,r10
708 mov rdx,r13
709 shr r10,7
710 xor r8,rax
711 shr r13,7
712 xor r11,rcx
713 sub rbx,r10
714 sub rdx,r13
715 lea r10,[r9*1+r9]
716 lea r13,[r12*1+r12]
717 xor r9,rax
718 xor r12,rcx
719 and r10,rdi
720 and r13,rdi
721 and rbx,rbp
722 and rdx,rbp
723 xor r10,rbx
724 xor r13,rdx
725
726 xor rax,r10
727 xor rcx,r13
728 xor r8,r10
729 xor r11,r13
730 mov rbx,rax
731 mov rdx,rcx
732 xor r9,r10
733 shr rbx,32
734 xor r12,r13
735 shr rdx,32
736 xor r10,r8
737 rol eax,8
738 xor r13,r11
739 rol ecx,8
740 xor r10,r9
741 rol ebx,8
742 xor r13,r12
743
744 rol edx,8
745 xor eax,r10d
746 shr r10,32
747 xor ecx,r13d
748 shr r13,32
749 xor ebx,r10d
750 xor edx,r13d
751
752 mov r10,r8
753 rol r8d,24
754 mov r13,r11
755 rol r11d,24
756 shr r10,32
757 xor eax,r8d
758 shr r13,32
759 xor ecx,r11d
760 rol r10d,24
761 mov r8,r9
762 rol r13d,24
763 mov r11,r12
764 shr r8,32
765 xor ebx,r10d
766 shr r11,32
767 xor edx,r13d
768
769 mov rsi,QWORD[r14]
770 rol r9d,16
771 mov rdi,QWORD[64+r14]
772 rol r12d,16
773 mov rbp,QWORD[128+r14]
774 rol r8d,16
775 mov r10,QWORD[192+r14]
776 xor eax,r9d
777 rol r11d,16
778 xor ecx,r12d
779 mov r13,QWORD[256+r14]
780 xor ebx,r8d
781 xor edx,r11d
782 jmp NEAR $L$dec_loop_compact
783ALIGN 16
784$L$dec_compact_done:
785 xor eax,DWORD[r15]
786 xor ebx,DWORD[4+r15]
787 xor ecx,DWORD[8+r15]
788 xor edx,DWORD[12+r15]
789DB 0xf3,0xc3
790
791global AES_decrypt
792
793ALIGN 16
794global asm_AES_decrypt
795
796asm_AES_decrypt:
797AES_decrypt:
798 mov QWORD[8+rsp],rdi ;WIN64 prologue
799 mov QWORD[16+rsp],rsi
800 mov rax,rsp
801$L$SEH_begin_AES_decrypt:
802 mov rdi,rcx
803 mov rsi,rdx
804 mov rdx,r8
805
806
807 push rbx
808 push rbp
809 push r12
810 push r13
811 push r14
812 push r15
813
814
815 mov r10,rsp
816 lea rcx,[((-63))+rdx]
817 and rsp,-64
818 sub rcx,rsp
819 neg rcx
820 and rcx,0x3c0
821 sub rsp,rcx
822 sub rsp,32
823
824 mov QWORD[16+rsp],rsi
825 mov QWORD[24+rsp],r10
826$L$dec_prologue:
827
828 mov r15,rdx
829 mov r13d,DWORD[240+r15]
830
831 mov eax,DWORD[rdi]
832 mov ebx,DWORD[4+rdi]
833 mov ecx,DWORD[8+rdi]
834 mov edx,DWORD[12+rdi]
835
836 shl r13d,4
837 lea rbp,[r13*1+r15]
838 mov QWORD[rsp],r15
839 mov QWORD[8+rsp],rbp
840
841
842 lea r14,[(($L$AES_Td+2048))]
843 lea rbp,[768+rsp]
844 sub rbp,r14
845 and rbp,0x300
846 lea r14,[rbp*1+r14]
847 shr rbp,3
848 add r14,rbp
849
850 call _x86_64_AES_decrypt_compact
851
852 mov r9,QWORD[16+rsp]
853 mov rsi,QWORD[24+rsp]
854 mov DWORD[r9],eax
855 mov DWORD[4+r9],ebx
856 mov DWORD[8+r9],ecx
857 mov DWORD[12+r9],edx
858
859 mov r15,QWORD[rsi]
860 mov r14,QWORD[8+rsi]
861 mov r13,QWORD[16+rsi]
862 mov r12,QWORD[24+rsi]
863 mov rbp,QWORD[32+rsi]
864 mov rbx,QWORD[40+rsi]
865 lea rsp,[48+rsi]
866$L$dec_epilogue:
867 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
868 mov rsi,QWORD[16+rsp]
869 DB 0F3h,0C3h ;repret
870$L$SEH_end_AES_decrypt:
871global AES_set_encrypt_key
872
873ALIGN 16
874AES_set_encrypt_key:
875 mov QWORD[8+rsp],rdi ;WIN64 prologue
876 mov QWORD[16+rsp],rsi
877 mov rax,rsp
878$L$SEH_begin_AES_set_encrypt_key:
879 mov rdi,rcx
880 mov rsi,rdx
881 mov rdx,r8
882
883
884 push rbx
885 push rbp
886 push r12
887 push r13
888 push r14
889 push r15
890 sub rsp,8
891$L$enc_key_prologue:
892
893 call _x86_64_AES_set_encrypt_key
894
895 mov rbp,QWORD[40+rsp]
896 mov rbx,QWORD[48+rsp]
897 add rsp,56
898$L$enc_key_epilogue:
899 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
900 mov rsi,QWORD[16+rsp]
901 DB 0F3h,0C3h ;repret
902$L$SEH_end_AES_set_encrypt_key:
903
904
905ALIGN 16
906_x86_64_AES_set_encrypt_key:
907 mov ecx,esi
908 mov rsi,rdi
909 mov rdi,rdx
910
911 test rsi,-1
912 jz NEAR $L$badpointer
913 test rdi,-1
914 jz NEAR $L$badpointer
915
916 lea rbp,[$L$AES_Te]
917 lea rbp,[((2048+128))+rbp]
918
919
920 mov eax,DWORD[((0-128))+rbp]
921 mov ebx,DWORD[((32-128))+rbp]
922 mov r8d,DWORD[((64-128))+rbp]
923 mov edx,DWORD[((96-128))+rbp]
924 mov eax,DWORD[((128-128))+rbp]
925 mov ebx,DWORD[((160-128))+rbp]
926 mov r8d,DWORD[((192-128))+rbp]
927 mov edx,DWORD[((224-128))+rbp]
928
929 cmp ecx,128
930 je NEAR $L$10rounds
931 cmp ecx,192
932 je NEAR $L$12rounds
933 cmp ecx,256
934 je NEAR $L$14rounds
935 mov rax,-2
936 jmp NEAR $L$exit
937
938$L$10rounds:
939 mov rax,QWORD[rsi]
940 mov rdx,QWORD[8+rsi]
941 mov QWORD[rdi],rax
942 mov QWORD[8+rdi],rdx
943
944 shr rdx,32
945 xor ecx,ecx
946 jmp NEAR $L$10shortcut
947ALIGN 4
948$L$10loop:
949 mov eax,DWORD[rdi]
950 mov edx,DWORD[12+rdi]
951$L$10shortcut:
952 movzx esi,dl
953 movzx ebx,BYTE[((-128))+rsi*1+rbp]
954 movzx esi,dh
955 shl ebx,24
956 xor eax,ebx
957
958 movzx ebx,BYTE[((-128))+rsi*1+rbp]
959 shr edx,16
960 movzx esi,dl
961 xor eax,ebx
962
963 movzx ebx,BYTE[((-128))+rsi*1+rbp]
964 movzx esi,dh
965 shl ebx,8
966 xor eax,ebx
967
968 movzx ebx,BYTE[((-128))+rsi*1+rbp]
969 shl ebx,16
970 xor eax,ebx
971
972 xor eax,DWORD[((1024-128))+rcx*4+rbp]
973 mov DWORD[16+rdi],eax
974 xor eax,DWORD[4+rdi]
975 mov DWORD[20+rdi],eax
976 xor eax,DWORD[8+rdi]
977 mov DWORD[24+rdi],eax
978 xor eax,DWORD[12+rdi]
979 mov DWORD[28+rdi],eax
980 add ecx,1
981 lea rdi,[16+rdi]
982 cmp ecx,10
983 jl NEAR $L$10loop
984
985 mov DWORD[80+rdi],10
986 xor rax,rax
987 jmp NEAR $L$exit
988
989$L$12rounds:
990 mov rax,QWORD[rsi]
991 mov rbx,QWORD[8+rsi]
992 mov rdx,QWORD[16+rsi]
993 mov QWORD[rdi],rax
994 mov QWORD[8+rdi],rbx
995 mov QWORD[16+rdi],rdx
996
997 shr rdx,32
998 xor ecx,ecx
999 jmp NEAR $L$12shortcut
1000ALIGN 4
1001$L$12loop:
1002 mov eax,DWORD[rdi]
1003 mov edx,DWORD[20+rdi]
1004$L$12shortcut:
1005 movzx esi,dl
1006 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1007 movzx esi,dh
1008 shl ebx,24
1009 xor eax,ebx
1010
1011 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1012 shr edx,16
1013 movzx esi,dl
1014 xor eax,ebx
1015
1016 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1017 movzx esi,dh
1018 shl ebx,8
1019 xor eax,ebx
1020
1021 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1022 shl ebx,16
1023 xor eax,ebx
1024
1025 xor eax,DWORD[((1024-128))+rcx*4+rbp]
1026 mov DWORD[24+rdi],eax
1027 xor eax,DWORD[4+rdi]
1028 mov DWORD[28+rdi],eax
1029 xor eax,DWORD[8+rdi]
1030 mov DWORD[32+rdi],eax
1031 xor eax,DWORD[12+rdi]
1032 mov DWORD[36+rdi],eax
1033
1034 cmp ecx,7
1035 je NEAR $L$12break
1036 add ecx,1
1037
1038 xor eax,DWORD[16+rdi]
1039 mov DWORD[40+rdi],eax
1040 xor eax,DWORD[20+rdi]
1041 mov DWORD[44+rdi],eax
1042
1043 lea rdi,[24+rdi]
1044 jmp NEAR $L$12loop
1045$L$12break:
1046 mov DWORD[72+rdi],12
1047 xor rax,rax
1048 jmp NEAR $L$exit
1049
1050$L$14rounds:
1051 mov rax,QWORD[rsi]
1052 mov rbx,QWORD[8+rsi]
1053 mov rcx,QWORD[16+rsi]
1054 mov rdx,QWORD[24+rsi]
1055 mov QWORD[rdi],rax
1056 mov QWORD[8+rdi],rbx
1057 mov QWORD[16+rdi],rcx
1058 mov QWORD[24+rdi],rdx
1059
1060 shr rdx,32
1061 xor ecx,ecx
1062 jmp NEAR $L$14shortcut
1063ALIGN 4
1064$L$14loop:
1065 mov eax,DWORD[rdi]
1066 mov edx,DWORD[28+rdi]
1067$L$14shortcut:
1068 movzx esi,dl
1069 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1070 movzx esi,dh
1071 shl ebx,24
1072 xor eax,ebx
1073
1074 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1075 shr edx,16
1076 movzx esi,dl
1077 xor eax,ebx
1078
1079 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1080 movzx esi,dh
1081 shl ebx,8
1082 xor eax,ebx
1083
1084 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1085 shl ebx,16
1086 xor eax,ebx
1087
1088 xor eax,DWORD[((1024-128))+rcx*4+rbp]
1089 mov DWORD[32+rdi],eax
1090 xor eax,DWORD[4+rdi]
1091 mov DWORD[36+rdi],eax
1092 xor eax,DWORD[8+rdi]
1093 mov DWORD[40+rdi],eax
1094 xor eax,DWORD[12+rdi]
1095 mov DWORD[44+rdi],eax
1096
1097 cmp ecx,6
1098 je NEAR $L$14break
1099 add ecx,1
1100
1101 mov edx,eax
1102 mov eax,DWORD[16+rdi]
1103 movzx esi,dl
1104 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1105 movzx esi,dh
1106 xor eax,ebx
1107
1108 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1109 shr edx,16
1110 shl ebx,8
1111 movzx esi,dl
1112 xor eax,ebx
1113
1114 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1115 movzx esi,dh
1116 shl ebx,16
1117 xor eax,ebx
1118
1119 movzx ebx,BYTE[((-128))+rsi*1+rbp]
1120 shl ebx,24
1121 xor eax,ebx
1122
1123 mov DWORD[48+rdi],eax
1124 xor eax,DWORD[20+rdi]
1125 mov DWORD[52+rdi],eax
1126 xor eax,DWORD[24+rdi]
1127 mov DWORD[56+rdi],eax
1128 xor eax,DWORD[28+rdi]
1129 mov DWORD[60+rdi],eax
1130
1131 lea rdi,[32+rdi]
1132 jmp NEAR $L$14loop
1133$L$14break:
1134 mov DWORD[48+rdi],14
1135 xor rax,rax
1136 jmp NEAR $L$exit
1137
1138$L$badpointer:
1139 mov rax,-1
1140$L$exit:
1141DB 0xf3,0xc3
1142
1143global AES_set_decrypt_key
1144
1145ALIGN 16
1146AES_set_decrypt_key:
1147 mov QWORD[8+rsp],rdi ;WIN64 prologue
1148 mov QWORD[16+rsp],rsi
1149 mov rax,rsp
1150$L$SEH_begin_AES_set_decrypt_key:
1151 mov rdi,rcx
1152 mov rsi,rdx
1153 mov rdx,r8
1154
1155
1156 push rbx
1157 push rbp
1158 push r12
1159 push r13
1160 push r14
1161 push r15
1162 push rdx
1163$L$dec_key_prologue:
1164
1165 call _x86_64_AES_set_encrypt_key
1166 mov r8,QWORD[rsp]
1167 cmp eax,0
1168 jne NEAR $L$abort
1169
1170 mov r14d,DWORD[240+r8]
1171 xor rdi,rdi
1172 lea rcx,[r14*4+rdi]
1173 mov rsi,r8
1174 lea rdi,[rcx*4+r8]
1175ALIGN 4
1176$L$invert:
1177 mov rax,QWORD[rsi]
1178 mov rbx,QWORD[8+rsi]
1179 mov rcx,QWORD[rdi]
1180 mov rdx,QWORD[8+rdi]
1181 mov QWORD[rdi],rax
1182 mov QWORD[8+rdi],rbx
1183 mov QWORD[rsi],rcx
1184 mov QWORD[8+rsi],rdx
1185 lea rsi,[16+rsi]
1186 lea rdi,[((-16))+rdi]
1187 cmp rdi,rsi
1188 jne NEAR $L$invert
1189
1190 lea rax,[(($L$AES_Te+2048+1024))]
1191
1192 mov rsi,QWORD[40+rax]
1193 mov rdi,QWORD[48+rax]
1194 mov rbp,QWORD[56+rax]
1195
1196 mov r15,r8
1197 sub r14d,1
1198ALIGN 4
1199$L$permute:
1200 lea r15,[16+r15]
1201 mov rax,QWORD[r15]
1202 mov rcx,QWORD[8+r15]
1203 mov r9,rsi
1204 mov r12,rsi
1205 and r9,rax
1206 and r12,rcx
1207 mov rbx,r9
1208 mov rdx,r12
1209 shr r9,7
1210 lea r8,[rax*1+rax]
1211 shr r12,7
1212 lea r11,[rcx*1+rcx]
1213 sub rbx,r9
1214 sub rdx,r12
1215 and r8,rdi
1216 and r11,rdi
1217 and rbx,rbp
1218 and rdx,rbp
1219 xor r8,rbx
1220 xor r11,rdx
1221 mov r10,rsi
1222 mov r13,rsi
1223
1224 and r10,r8
1225 and r13,r11
1226 mov rbx,r10
1227 mov rdx,r13
1228 shr r10,7
1229 lea r9,[r8*1+r8]
1230 shr r13,7
1231 lea r12,[r11*1+r11]
1232 sub rbx,r10
1233 sub rdx,r13
1234 and r9,rdi
1235 and r12,rdi
1236 and rbx,rbp
1237 and rdx,rbp
1238 xor r9,rbx
1239 xor r12,rdx
1240 mov r10,rsi
1241 mov r13,rsi
1242
1243 and r10,r9
1244 and r13,r12
1245 mov rbx,r10
1246 mov rdx,r13
1247 shr r10,7
1248 xor r8,rax
1249 shr r13,7
1250 xor r11,rcx
1251 sub rbx,r10
1252 sub rdx,r13
1253 lea r10,[r9*1+r9]
1254 lea r13,[r12*1+r12]
1255 xor r9,rax
1256 xor r12,rcx
1257 and r10,rdi
1258 and r13,rdi
1259 and rbx,rbp
1260 and rdx,rbp
1261 xor r10,rbx
1262 xor r13,rdx
1263
1264 xor rax,r10
1265 xor rcx,r13
1266 xor r8,r10
1267 xor r11,r13
1268 mov rbx,rax
1269 mov rdx,rcx
1270 xor r9,r10
1271 shr rbx,32
1272 xor r12,r13
1273 shr rdx,32
1274 xor r10,r8
1275 rol eax,8
1276 xor r13,r11
1277 rol ecx,8
1278 xor r10,r9
1279 rol ebx,8
1280 xor r13,r12
1281
1282 rol edx,8
1283 xor eax,r10d
1284 shr r10,32
1285 xor ecx,r13d
1286 shr r13,32
1287 xor ebx,r10d
1288 xor edx,r13d
1289
1290 mov r10,r8
1291 rol r8d,24
1292 mov r13,r11
1293 rol r11d,24
1294 shr r10,32
1295 xor eax,r8d
1296 shr r13,32
1297 xor ecx,r11d
1298 rol r10d,24
1299 mov r8,r9
1300 rol r13d,24
1301 mov r11,r12
1302 shr r8,32
1303 xor ebx,r10d
1304 shr r11,32
1305 xor edx,r13d
1306
1307
1308 rol r9d,16
1309
1310 rol r12d,16
1311
1312 rol r8d,16
1313
1314 xor eax,r9d
1315 rol r11d,16
1316 xor ecx,r12d
1317
1318 xor ebx,r8d
1319 xor edx,r11d
1320 mov DWORD[r15],eax
1321 mov DWORD[4+r15],ebx
1322 mov DWORD[8+r15],ecx
1323 mov DWORD[12+r15],edx
1324 sub r14d,1
1325 jnz NEAR $L$permute
1326
1327 xor rax,rax
1328$L$abort:
1329 mov r15,QWORD[8+rsp]
1330 mov r14,QWORD[16+rsp]
1331 mov r13,QWORD[24+rsp]
1332 mov r12,QWORD[32+rsp]
1333 mov rbp,QWORD[40+rsp]
1334 mov rbx,QWORD[48+rsp]
1335 add rsp,56
1336$L$dec_key_epilogue:
1337 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1338 mov rsi,QWORD[16+rsp]
1339 DB 0F3h,0C3h ;repret
1340$L$SEH_end_AES_set_decrypt_key:
1341global AES_cbc_encrypt
1342
1343ALIGN 16
1344EXTERN OPENSSL_ia32cap_P
1345global asm_AES_cbc_encrypt
1346
1347asm_AES_cbc_encrypt:
1348AES_cbc_encrypt:
1349 mov QWORD[8+rsp],rdi ;WIN64 prologue
1350 mov QWORD[16+rsp],rsi
1351 mov rax,rsp
1352$L$SEH_begin_AES_cbc_encrypt:
1353 mov rdi,rcx
1354 mov rsi,rdx
1355 mov rdx,r8
1356 mov rcx,r9
1357 mov r8,QWORD[40+rsp]
1358 mov r9,QWORD[48+rsp]
1359
1360
1361 cmp rdx,0
1362 je NEAR $L$cbc_epilogue
1363 pushfq
1364 push rbx
1365 push rbp
1366 push r12
1367 push r13
1368 push r14
1369 push r15
1370$L$cbc_prologue:
1371
1372 cld
1373 mov r9d,r9d
1374
1375 lea r14,[$L$AES_Te]
1376 cmp r9,0
1377 jne NEAR $L$cbc_picked_te
1378 lea r14,[$L$AES_Td]
1379$L$cbc_picked_te:
1380
1381 mov r10d,DWORD[OPENSSL_ia32cap_P]
1382 cmp rdx,512
1383 jb NEAR $L$cbc_slow_prologue
1384 test rdx,15
1385 jnz NEAR $L$cbc_slow_prologue
1386 bt r10d,28
1387 jc NEAR $L$cbc_slow_prologue
1388
1389
1390 lea r15,[((-88-248))+rsp]
1391 and r15,-64
1392
1393
1394 mov r10,r14
1395 lea r11,[2304+r14]
1396 mov r12,r15
1397 and r10,0xFFF
1398 and r11,0xFFF
1399 and r12,0xFFF
1400
1401 cmp r12,r11
1402 jb NEAR $L$cbc_te_break_out
1403 sub r12,r11
1404 sub r15,r12
1405 jmp NEAR $L$cbc_te_ok
1406$L$cbc_te_break_out:
1407 sub r12,r10
1408 and r12,0xFFF
1409 add r12,320
1410 sub r15,r12
1411ALIGN 4
1412$L$cbc_te_ok:
1413
1414 xchg r15,rsp
1415
1416 mov QWORD[16+rsp],r15
1417$L$cbc_fast_body:
1418 mov QWORD[24+rsp],rdi
1419 mov QWORD[32+rsp],rsi
1420 mov QWORD[40+rsp],rdx
1421 mov QWORD[48+rsp],rcx
1422 mov QWORD[56+rsp],r8
1423 mov DWORD[((80+240))+rsp],0
1424 mov rbp,r8
1425 mov rbx,r9
1426 mov r9,rsi
1427 mov r8,rdi
1428 mov r15,rcx
1429
1430 mov eax,DWORD[240+r15]
1431
1432 mov r10,r15
1433 sub r10,r14
1434 and r10,0xfff
1435 cmp r10,2304
1436 jb NEAR $L$cbc_do_ecopy
1437 cmp r10,4096-248
1438 jb NEAR $L$cbc_skip_ecopy
1439ALIGN 4
1440$L$cbc_do_ecopy:
1441 mov rsi,r15
1442 lea rdi,[80+rsp]
1443 lea r15,[80+rsp]
1444 mov ecx,240/8
1445 DD 0x90A548F3
1446 mov DWORD[rdi],eax
1447$L$cbc_skip_ecopy:
1448 mov QWORD[rsp],r15
1449
1450 mov ecx,18
1451ALIGN 4
1452$L$cbc_prefetch_te:
1453 mov r10,QWORD[r14]
1454 mov r11,QWORD[32+r14]
1455 mov r12,QWORD[64+r14]
1456 mov r13,QWORD[96+r14]
1457 lea r14,[128+r14]
1458 sub ecx,1
1459 jnz NEAR $L$cbc_prefetch_te
1460 lea r14,[((-2304))+r14]
1461
1462 cmp rbx,0
1463 je NEAR $L$FAST_DECRYPT
1464
1465
1466 mov eax,DWORD[rbp]
1467 mov ebx,DWORD[4+rbp]
1468 mov ecx,DWORD[8+rbp]
1469 mov edx,DWORD[12+rbp]
1470
1471ALIGN 4
1472$L$cbc_fast_enc_loop:
1473 xor eax,DWORD[r8]
1474 xor ebx,DWORD[4+r8]
1475 xor ecx,DWORD[8+r8]
1476 xor edx,DWORD[12+r8]
1477 mov r15,QWORD[rsp]
1478 mov QWORD[24+rsp],r8
1479
1480 call _x86_64_AES_encrypt
1481
1482 mov r8,QWORD[24+rsp]
1483 mov r10,QWORD[40+rsp]
1484 mov DWORD[r9],eax
1485 mov DWORD[4+r9],ebx
1486 mov DWORD[8+r9],ecx
1487 mov DWORD[12+r9],edx
1488
1489 lea r8,[16+r8]
1490 lea r9,[16+r9]
1491 sub r10,16
1492 test r10,-16
1493 mov QWORD[40+rsp],r10
1494 jnz NEAR $L$cbc_fast_enc_loop
1495 mov rbp,QWORD[56+rsp]
1496 mov DWORD[rbp],eax
1497 mov DWORD[4+rbp],ebx
1498 mov DWORD[8+rbp],ecx
1499 mov DWORD[12+rbp],edx
1500
1501 jmp NEAR $L$cbc_fast_cleanup
1502
1503
1504ALIGN 16
1505$L$FAST_DECRYPT:
1506 cmp r9,r8
1507 je NEAR $L$cbc_fast_dec_in_place
1508
1509 mov QWORD[64+rsp],rbp
1510ALIGN 4
1511$L$cbc_fast_dec_loop:
1512 mov eax,DWORD[r8]
1513 mov ebx,DWORD[4+r8]
1514 mov ecx,DWORD[8+r8]
1515 mov edx,DWORD[12+r8]
1516 mov r15,QWORD[rsp]
1517 mov QWORD[24+rsp],r8
1518
1519 call _x86_64_AES_decrypt
1520
1521 mov rbp,QWORD[64+rsp]
1522 mov r8,QWORD[24+rsp]
1523 mov r10,QWORD[40+rsp]
1524 xor eax,DWORD[rbp]
1525 xor ebx,DWORD[4+rbp]
1526 xor ecx,DWORD[8+rbp]
1527 xor edx,DWORD[12+rbp]
1528 mov rbp,r8
1529
1530 sub r10,16
1531 mov QWORD[40+rsp],r10
1532 mov QWORD[64+rsp],rbp
1533
1534 mov DWORD[r9],eax
1535 mov DWORD[4+r9],ebx
1536 mov DWORD[8+r9],ecx
1537 mov DWORD[12+r9],edx
1538
1539 lea r8,[16+r8]
1540 lea r9,[16+r9]
1541 jnz NEAR $L$cbc_fast_dec_loop
1542 mov r12,QWORD[56+rsp]
1543 mov r10,QWORD[rbp]
1544 mov r11,QWORD[8+rbp]
1545 mov QWORD[r12],r10
1546 mov QWORD[8+r12],r11
1547 jmp NEAR $L$cbc_fast_cleanup
1548
1549ALIGN 16
1550$L$cbc_fast_dec_in_place:
1551 mov r10,QWORD[rbp]
1552 mov r11,QWORD[8+rbp]
1553 mov QWORD[((0+64))+rsp],r10
1554 mov QWORD[((8+64))+rsp],r11
1555ALIGN 4
1556$L$cbc_fast_dec_in_place_loop:
1557 mov eax,DWORD[r8]
1558 mov ebx,DWORD[4+r8]
1559 mov ecx,DWORD[8+r8]
1560 mov edx,DWORD[12+r8]
1561 mov r15,QWORD[rsp]
1562 mov QWORD[24+rsp],r8
1563
1564 call _x86_64_AES_decrypt
1565
1566 mov r8,QWORD[24+rsp]
1567 mov r10,QWORD[40+rsp]
1568 xor eax,DWORD[((0+64))+rsp]
1569 xor ebx,DWORD[((4+64))+rsp]
1570 xor ecx,DWORD[((8+64))+rsp]
1571 xor edx,DWORD[((12+64))+rsp]
1572
1573 mov r11,QWORD[r8]
1574 mov r12,QWORD[8+r8]
1575 sub r10,16
1576 jz NEAR $L$cbc_fast_dec_in_place_done
1577
1578 mov QWORD[((0+64))+rsp],r11
1579 mov QWORD[((8+64))+rsp],r12
1580
1581 mov DWORD[r9],eax
1582 mov DWORD[4+r9],ebx
1583 mov DWORD[8+r9],ecx
1584 mov DWORD[12+r9],edx
1585
1586 lea r8,[16+r8]
1587 lea r9,[16+r9]
1588 mov QWORD[40+rsp],r10
1589 jmp NEAR $L$cbc_fast_dec_in_place_loop
1590$L$cbc_fast_dec_in_place_done:
1591 mov rdi,QWORD[56+rsp]
1592 mov QWORD[rdi],r11
1593 mov QWORD[8+rdi],r12
1594
1595 mov DWORD[r9],eax
1596 mov DWORD[4+r9],ebx
1597 mov DWORD[8+r9],ecx
1598 mov DWORD[12+r9],edx
1599
1600ALIGN 4
1601$L$cbc_fast_cleanup:
1602 cmp DWORD[((80+240))+rsp],0
1603 lea rdi,[80+rsp]
1604 je NEAR $L$cbc_exit
1605 mov ecx,240/8
1606 xor rax,rax
1607 DD 0x90AB48F3
1608
1609 jmp NEAR $L$cbc_exit
1610
1611
1612ALIGN 16
1613$L$cbc_slow_prologue:
1614
1615 lea rbp,[((-88))+rsp]
1616 and rbp,-64
1617
1618 lea r10,[((-88-63))+rcx]
1619 sub r10,rbp
1620 neg r10
1621 and r10,0x3c0
1622 sub rbp,r10
1623
1624 xchg rbp,rsp
1625
1626 mov QWORD[16+rsp],rbp
1627$L$cbc_slow_body:
1628
1629
1630
1631
1632 mov QWORD[56+rsp],r8
1633 mov rbp,r8
1634 mov rbx,r9
1635 mov r9,rsi
1636 mov r8,rdi
1637 mov r15,rcx
1638 mov r10,rdx
1639
1640 mov eax,DWORD[240+r15]
1641 mov QWORD[rsp],r15
1642 shl eax,4
1643 lea rax,[rax*1+r15]
1644 mov QWORD[8+rsp],rax
1645
1646
1647 lea r14,[2048+r14]
1648 lea rax,[((768-8))+rsp]
1649 sub rax,r14
1650 and rax,0x300
1651 lea r14,[rax*1+r14]
1652
1653 cmp rbx,0
1654 je NEAR $L$SLOW_DECRYPT
1655
1656
1657 test r10,-16
1658 mov eax,DWORD[rbp]
1659 mov ebx,DWORD[4+rbp]
1660 mov ecx,DWORD[8+rbp]
1661 mov edx,DWORD[12+rbp]
1662 jz NEAR $L$cbc_slow_enc_tail
1663
1664ALIGN 4
1665$L$cbc_slow_enc_loop:
1666 xor eax,DWORD[r8]
1667 xor ebx,DWORD[4+r8]
1668 xor ecx,DWORD[8+r8]
1669 xor edx,DWORD[12+r8]
1670 mov r15,QWORD[rsp]
1671 mov QWORD[24+rsp],r8
1672 mov QWORD[32+rsp],r9
1673 mov QWORD[40+rsp],r10
1674
1675 call _x86_64_AES_encrypt_compact
1676
1677 mov r8,QWORD[24+rsp]
1678 mov r9,QWORD[32+rsp]
1679 mov r10,QWORD[40+rsp]
1680 mov DWORD[r9],eax
1681 mov DWORD[4+r9],ebx
1682 mov DWORD[8+r9],ecx
1683 mov DWORD[12+r9],edx
1684
1685 lea r8,[16+r8]
1686 lea r9,[16+r9]
1687 sub r10,16
1688 test r10,-16
1689 jnz NEAR $L$cbc_slow_enc_loop
1690 test r10,15
1691 jnz NEAR $L$cbc_slow_enc_tail
1692 mov rbp,QWORD[56+rsp]
1693 mov DWORD[rbp],eax
1694 mov DWORD[4+rbp],ebx
1695 mov DWORD[8+rbp],ecx
1696 mov DWORD[12+rbp],edx
1697
1698 jmp NEAR $L$cbc_exit
1699
1700ALIGN 4
1701$L$cbc_slow_enc_tail:
1702 mov r11,rax
1703 mov r12,rcx
1704 mov rcx,r10
1705 mov rsi,r8
1706 mov rdi,r9
1707 DD 0x9066A4F3
1708 mov rcx,16
1709 sub rcx,r10
1710 xor rax,rax
1711 DD 0x9066AAF3
1712 mov r8,r9
1713 mov r10,16
1714 mov rax,r11
1715 mov rcx,r12
1716 jmp NEAR $L$cbc_slow_enc_loop
1717
1718ALIGN 16
1719$L$SLOW_DECRYPT:
1720 shr rax,3
1721 add r14,rax
1722
1723 mov r11,QWORD[rbp]
1724 mov r12,QWORD[8+rbp]
1725 mov QWORD[((0+64))+rsp],r11
1726 mov QWORD[((8+64))+rsp],r12
1727
1728ALIGN 4
1729$L$cbc_slow_dec_loop:
1730 mov eax,DWORD[r8]
1731 mov ebx,DWORD[4+r8]
1732 mov ecx,DWORD[8+r8]
1733 mov edx,DWORD[12+r8]
1734 mov r15,QWORD[rsp]
1735 mov QWORD[24+rsp],r8
1736 mov QWORD[32+rsp],r9
1737 mov QWORD[40+rsp],r10
1738
1739 call _x86_64_AES_decrypt_compact
1740
1741 mov r8,QWORD[24+rsp]
1742 mov r9,QWORD[32+rsp]
1743 mov r10,QWORD[40+rsp]
1744 xor eax,DWORD[((0+64))+rsp]
1745 xor ebx,DWORD[((4+64))+rsp]
1746 xor ecx,DWORD[((8+64))+rsp]
1747 xor edx,DWORD[((12+64))+rsp]
1748
1749 mov r11,QWORD[r8]
1750 mov r12,QWORD[8+r8]
1751 sub r10,16
1752 jc NEAR $L$cbc_slow_dec_partial
1753 jz NEAR $L$cbc_slow_dec_done
1754
1755 mov QWORD[((0+64))+rsp],r11
1756 mov QWORD[((8+64))+rsp],r12
1757
1758 mov DWORD[r9],eax
1759 mov DWORD[4+r9],ebx
1760 mov DWORD[8+r9],ecx
1761 mov DWORD[12+r9],edx
1762
1763 lea r8,[16+r8]
1764 lea r9,[16+r9]
1765 jmp NEAR $L$cbc_slow_dec_loop
1766$L$cbc_slow_dec_done:
1767 mov rdi,QWORD[56+rsp]
1768 mov QWORD[rdi],r11
1769 mov QWORD[8+rdi],r12
1770
1771 mov DWORD[r9],eax
1772 mov DWORD[4+r9],ebx
1773 mov DWORD[8+r9],ecx
1774 mov DWORD[12+r9],edx
1775
1776 jmp NEAR $L$cbc_exit
1777
1778ALIGN 4
1779$L$cbc_slow_dec_partial:
1780 mov rdi,QWORD[56+rsp]
1781 mov QWORD[rdi],r11
1782 mov QWORD[8+rdi],r12
1783
1784 mov DWORD[((0+64))+rsp],eax
1785 mov DWORD[((4+64))+rsp],ebx
1786 mov DWORD[((8+64))+rsp],ecx
1787 mov DWORD[((12+64))+rsp],edx
1788
1789 mov rdi,r9
1790 lea rsi,[64+rsp]
1791 lea rcx,[16+r10]
1792 DD 0x9066A4F3
1793 jmp NEAR $L$cbc_exit
1794
1795ALIGN 16
1796$L$cbc_exit:
1797 mov rsi,QWORD[16+rsp]
1798 mov r15,QWORD[rsi]
1799 mov r14,QWORD[8+rsi]
1800 mov r13,QWORD[16+rsi]
1801 mov r12,QWORD[24+rsi]
1802 mov rbp,QWORD[32+rsi]
1803 mov rbx,QWORD[40+rsi]
1804 lea rsp,[48+rsi]
1805$L$cbc_popfq:
1806 popfq
1807$L$cbc_epilogue:
1808 mov rdi,QWORD[8+rsp] ;WIN64 epilogue
1809 mov rsi,QWORD[16+rsp]
1810 DB 0F3h,0C3h ;repret
1811$L$SEH_end_AES_cbc_encrypt:
1812ALIGN 64
1813$L$AES_Te:
1814 DD 0xa56363c6,0xa56363c6
1815 DD 0x847c7cf8,0x847c7cf8
1816 DD 0x997777ee,0x997777ee
1817 DD 0x8d7b7bf6,0x8d7b7bf6
1818 DD 0x0df2f2ff,0x0df2f2ff
1819 DD 0xbd6b6bd6,0xbd6b6bd6
1820 DD 0xb16f6fde,0xb16f6fde
1821 DD 0x54c5c591,0x54c5c591
1822 DD 0x50303060,0x50303060
1823 DD 0x03010102,0x03010102
1824 DD 0xa96767ce,0xa96767ce
1825 DD 0x7d2b2b56,0x7d2b2b56
1826 DD 0x19fefee7,0x19fefee7
1827 DD 0x62d7d7b5,0x62d7d7b5
1828 DD 0xe6abab4d,0xe6abab4d
1829 DD 0x9a7676ec,0x9a7676ec
1830 DD 0x45caca8f,0x45caca8f
1831 DD 0x9d82821f,0x9d82821f
1832 DD 0x40c9c989,0x40c9c989
1833 DD 0x877d7dfa,0x877d7dfa
1834 DD 0x15fafaef,0x15fafaef
1835 DD 0xeb5959b2,0xeb5959b2
1836 DD 0xc947478e,0xc947478e
1837 DD 0x0bf0f0fb,0x0bf0f0fb
1838 DD 0xecadad41,0xecadad41
1839 DD 0x67d4d4b3,0x67d4d4b3
1840 DD 0xfda2a25f,0xfda2a25f
1841 DD 0xeaafaf45,0xeaafaf45
1842 DD 0xbf9c9c23,0xbf9c9c23
1843 DD 0xf7a4a453,0xf7a4a453
1844 DD 0x967272e4,0x967272e4
1845 DD 0x5bc0c09b,0x5bc0c09b
1846 DD 0xc2b7b775,0xc2b7b775
1847 DD 0x1cfdfde1,0x1cfdfde1
1848 DD 0xae93933d,0xae93933d
1849 DD 0x6a26264c,0x6a26264c
1850 DD 0x5a36366c,0x5a36366c
1851 DD 0x413f3f7e,0x413f3f7e
1852 DD 0x02f7f7f5,0x02f7f7f5
1853 DD 0x4fcccc83,0x4fcccc83
1854 DD 0x5c343468,0x5c343468
1855 DD 0xf4a5a551,0xf4a5a551
1856 DD 0x34e5e5d1,0x34e5e5d1
1857 DD 0x08f1f1f9,0x08f1f1f9
1858 DD 0x937171e2,0x937171e2
1859 DD 0x73d8d8ab,0x73d8d8ab
1860 DD 0x53313162,0x53313162
1861 DD 0x3f15152a,0x3f15152a
1862 DD 0x0c040408,0x0c040408
1863 DD 0x52c7c795,0x52c7c795
1864 DD 0x65232346,0x65232346
1865 DD 0x5ec3c39d,0x5ec3c39d
1866 DD 0x28181830,0x28181830
1867 DD 0xa1969637,0xa1969637
1868 DD 0x0f05050a,0x0f05050a
1869 DD 0xb59a9a2f,0xb59a9a2f
1870 DD 0x0907070e,0x0907070e
1871 DD 0x36121224,0x36121224
1872 DD 0x9b80801b,0x9b80801b
1873 DD 0x3de2e2df,0x3de2e2df
1874 DD 0x26ebebcd,0x26ebebcd
1875 DD 0x6927274e,0x6927274e
1876 DD 0xcdb2b27f,0xcdb2b27f
1877 DD 0x9f7575ea,0x9f7575ea
1878 DD 0x1b090912,0x1b090912
1879 DD 0x9e83831d,0x9e83831d
1880 DD 0x742c2c58,0x742c2c58
1881 DD 0x2e1a1a34,0x2e1a1a34
1882 DD 0x2d1b1b36,0x2d1b1b36
1883 DD 0xb26e6edc,0xb26e6edc
1884 DD 0xee5a5ab4,0xee5a5ab4
1885 DD 0xfba0a05b,0xfba0a05b
1886 DD 0xf65252a4,0xf65252a4
1887 DD 0x4d3b3b76,0x4d3b3b76
1888 DD 0x61d6d6b7,0x61d6d6b7
1889 DD 0xceb3b37d,0xceb3b37d
1890 DD 0x7b292952,0x7b292952
1891 DD 0x3ee3e3dd,0x3ee3e3dd
1892 DD 0x712f2f5e,0x712f2f5e
1893 DD 0x97848413,0x97848413
1894 DD 0xf55353a6,0xf55353a6
1895 DD 0x68d1d1b9,0x68d1d1b9
1896 DD 0x00000000,0x00000000
1897 DD 0x2cededc1,0x2cededc1
1898 DD 0x60202040,0x60202040
1899 DD 0x1ffcfce3,0x1ffcfce3
1900 DD 0xc8b1b179,0xc8b1b179
1901 DD 0xed5b5bb6,0xed5b5bb6
1902 DD 0xbe6a6ad4,0xbe6a6ad4
1903 DD 0x46cbcb8d,0x46cbcb8d
1904 DD 0xd9bebe67,0xd9bebe67
1905 DD 0x4b393972,0x4b393972
1906 DD 0xde4a4a94,0xde4a4a94
1907 DD 0xd44c4c98,0xd44c4c98
1908 DD 0xe85858b0,0xe85858b0
1909 DD 0x4acfcf85,0x4acfcf85
1910 DD 0x6bd0d0bb,0x6bd0d0bb
1911 DD 0x2aefefc5,0x2aefefc5
1912 DD 0xe5aaaa4f,0xe5aaaa4f
1913 DD 0x16fbfbed,0x16fbfbed
1914 DD 0xc5434386,0xc5434386
1915 DD 0xd74d4d9a,0xd74d4d9a
1916 DD 0x55333366,0x55333366
1917 DD 0x94858511,0x94858511
1918 DD 0xcf45458a,0xcf45458a
1919 DD 0x10f9f9e9,0x10f9f9e9
1920 DD 0x06020204,0x06020204
1921 DD 0x817f7ffe,0x817f7ffe
1922 DD 0xf05050a0,0xf05050a0
1923 DD 0x443c3c78,0x443c3c78
1924 DD 0xba9f9f25,0xba9f9f25
1925 DD 0xe3a8a84b,0xe3a8a84b
1926 DD 0xf35151a2,0xf35151a2
1927 DD 0xfea3a35d,0xfea3a35d
1928 DD 0xc0404080,0xc0404080
1929 DD 0x8a8f8f05,0x8a8f8f05
1930 DD 0xad92923f,0xad92923f
1931 DD 0xbc9d9d21,0xbc9d9d21
1932 DD 0x48383870,0x48383870
1933 DD 0x04f5f5f1,0x04f5f5f1
1934 DD 0xdfbcbc63,0xdfbcbc63
1935 DD 0xc1b6b677,0xc1b6b677
1936 DD 0x75dadaaf,0x75dadaaf
1937 DD 0x63212142,0x63212142
1938 DD 0x30101020,0x30101020
1939 DD 0x1affffe5,0x1affffe5
1940 DD 0x0ef3f3fd,0x0ef3f3fd
1941 DD 0x6dd2d2bf,0x6dd2d2bf
1942 DD 0x4ccdcd81,0x4ccdcd81
1943 DD 0x140c0c18,0x140c0c18
1944 DD 0x35131326,0x35131326
1945 DD 0x2fececc3,0x2fececc3
1946 DD 0xe15f5fbe,0xe15f5fbe
1947 DD 0xa2979735,0xa2979735
1948 DD 0xcc444488,0xcc444488
1949 DD 0x3917172e,0x3917172e
1950 DD 0x57c4c493,0x57c4c493
1951 DD 0xf2a7a755,0xf2a7a755
1952 DD 0x827e7efc,0x827e7efc
1953 DD 0x473d3d7a,0x473d3d7a
1954 DD 0xac6464c8,0xac6464c8
1955 DD 0xe75d5dba,0xe75d5dba
1956 DD 0x2b191932,0x2b191932
1957 DD 0x957373e6,0x957373e6
1958 DD 0xa06060c0,0xa06060c0
1959 DD 0x98818119,0x98818119
1960 DD 0xd14f4f9e,0xd14f4f9e
1961 DD 0x7fdcdca3,0x7fdcdca3
1962 DD 0x66222244,0x66222244
1963 DD 0x7e2a2a54,0x7e2a2a54
1964 DD 0xab90903b,0xab90903b
1965 DD 0x8388880b,0x8388880b
1966 DD 0xca46468c,0xca46468c
1967 DD 0x29eeeec7,0x29eeeec7
1968 DD 0xd3b8b86b,0xd3b8b86b
1969 DD 0x3c141428,0x3c141428
1970 DD 0x79dedea7,0x79dedea7
1971 DD 0xe25e5ebc,0xe25e5ebc
1972 DD 0x1d0b0b16,0x1d0b0b16
1973 DD 0x76dbdbad,0x76dbdbad
1974 DD 0x3be0e0db,0x3be0e0db
1975 DD 0x56323264,0x56323264
1976 DD 0x4e3a3a74,0x4e3a3a74
1977 DD 0x1e0a0a14,0x1e0a0a14
1978 DD 0xdb494992,0xdb494992
1979 DD 0x0a06060c,0x0a06060c
1980 DD 0x6c242448,0x6c242448
1981 DD 0xe45c5cb8,0xe45c5cb8
1982 DD 0x5dc2c29f,0x5dc2c29f
1983 DD 0x6ed3d3bd,0x6ed3d3bd
1984 DD 0xefacac43,0xefacac43
1985 DD 0xa66262c4,0xa66262c4
1986 DD 0xa8919139,0xa8919139
1987 DD 0xa4959531,0xa4959531
1988 DD 0x37e4e4d3,0x37e4e4d3
1989 DD 0x8b7979f2,0x8b7979f2
1990 DD 0x32e7e7d5,0x32e7e7d5
1991 DD 0x43c8c88b,0x43c8c88b
1992 DD 0x5937376e,0x5937376e
1993 DD 0xb76d6dda,0xb76d6dda
1994 DD 0x8c8d8d01,0x8c8d8d01
1995 DD 0x64d5d5b1,0x64d5d5b1
1996 DD 0xd24e4e9c,0xd24e4e9c
1997 DD 0xe0a9a949,0xe0a9a949
1998 DD 0xb46c6cd8,0xb46c6cd8
1999 DD 0xfa5656ac,0xfa5656ac
2000 DD 0x07f4f4f3,0x07f4f4f3
2001 DD 0x25eaeacf,0x25eaeacf
2002 DD 0xaf6565ca,0xaf6565ca
2003 DD 0x8e7a7af4,0x8e7a7af4
2004 DD 0xe9aeae47,0xe9aeae47
2005 DD 0x18080810,0x18080810
2006 DD 0xd5baba6f,0xd5baba6f
2007 DD 0x887878f0,0x887878f0
2008 DD 0x6f25254a,0x6f25254a
2009 DD 0x722e2e5c,0x722e2e5c
2010 DD 0x241c1c38,0x241c1c38
2011 DD 0xf1a6a657,0xf1a6a657
2012 DD 0xc7b4b473,0xc7b4b473
2013 DD 0x51c6c697,0x51c6c697
2014 DD 0x23e8e8cb,0x23e8e8cb
2015 DD 0x7cdddda1,0x7cdddda1
2016 DD 0x9c7474e8,0x9c7474e8
2017 DD 0x211f1f3e,0x211f1f3e
2018 DD 0xdd4b4b96,0xdd4b4b96
2019 DD 0xdcbdbd61,0xdcbdbd61
2020 DD 0x868b8b0d,0x868b8b0d
2021 DD 0x858a8a0f,0x858a8a0f
2022 DD 0x907070e0,0x907070e0
2023 DD 0x423e3e7c,0x423e3e7c
2024 DD 0xc4b5b571,0xc4b5b571
2025 DD 0xaa6666cc,0xaa6666cc
2026 DD 0xd8484890,0xd8484890
2027 DD 0x05030306,0x05030306
2028 DD 0x01f6f6f7,0x01f6f6f7
2029 DD 0x120e0e1c,0x120e0e1c
2030 DD 0xa36161c2,0xa36161c2
2031 DD 0x5f35356a,0x5f35356a
2032 DD 0xf95757ae,0xf95757ae
2033 DD 0xd0b9b969,0xd0b9b969
2034 DD 0x91868617,0x91868617
2035 DD 0x58c1c199,0x58c1c199
2036 DD 0x271d1d3a,0x271d1d3a
2037 DD 0xb99e9e27,0xb99e9e27
2038 DD 0x38e1e1d9,0x38e1e1d9
2039 DD 0x13f8f8eb,0x13f8f8eb
2040 DD 0xb398982b,0xb398982b
2041 DD 0x33111122,0x33111122
2042 DD 0xbb6969d2,0xbb6969d2
2043 DD 0x70d9d9a9,0x70d9d9a9
2044 DD 0x898e8e07,0x898e8e07
2045 DD 0xa7949433,0xa7949433
2046 DD 0xb69b9b2d,0xb69b9b2d
2047 DD 0x221e1e3c,0x221e1e3c
2048 DD 0x92878715,0x92878715
2049 DD 0x20e9e9c9,0x20e9e9c9
2050 DD 0x49cece87,0x49cece87
2051 DD 0xff5555aa,0xff5555aa
2052 DD 0x78282850,0x78282850
2053 DD 0x7adfdfa5,0x7adfdfa5
2054 DD 0x8f8c8c03,0x8f8c8c03
2055 DD 0xf8a1a159,0xf8a1a159
2056 DD 0x80898909,0x80898909
2057 DD 0x170d0d1a,0x170d0d1a
2058 DD 0xdabfbf65,0xdabfbf65
2059 DD 0x31e6e6d7,0x31e6e6d7
2060 DD 0xc6424284,0xc6424284
2061 DD 0xb86868d0,0xb86868d0
2062 DD 0xc3414182,0xc3414182
2063 DD 0xb0999929,0xb0999929
2064 DD 0x772d2d5a,0x772d2d5a
2065 DD 0x110f0f1e,0x110f0f1e
2066 DD 0xcbb0b07b,0xcbb0b07b
2067 DD 0xfc5454a8,0xfc5454a8
2068 DD 0xd6bbbb6d,0xd6bbbb6d
2069 DD 0x3a16162c,0x3a16162c
2070DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2071DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2072DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2073DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2074DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2075DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2076DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2077DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2078DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2079DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2080DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2081DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2082DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2083DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2084DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2085DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2086DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2087DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2088DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2089DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2090DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2091DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2092DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2093DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2094DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2095DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2096DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2097DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2098DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2099DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2100DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2101DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2102DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2103DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2104DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2105DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2106DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2107DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2108DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2109DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2110DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2111DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2112DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2113DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2114DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2115DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2116DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2117DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2118DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2119DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2120DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2121DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2122DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2123DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2124DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2125DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2126DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2127DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2128DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2129DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2130DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2131DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2132DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2133DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2134DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2135DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2136DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2137DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2138DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2139DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2140DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2141DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2142DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2143DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2144DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2145DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2146DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2147DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2148DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2149DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2150DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2151DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2152DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2153DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2154DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2155DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2156DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2157DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2158DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2159DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2160DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2161DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2162DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2163DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2164DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2165DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2166DB 0x63,0x7c,0x77,0x7b,0xf2,0x6b,0x6f,0xc5
2167DB 0x30,0x01,0x67,0x2b,0xfe,0xd7,0xab,0x76
2168DB 0xca,0x82,0xc9,0x7d,0xfa,0x59,0x47,0xf0
2169DB 0xad,0xd4,0xa2,0xaf,0x9c,0xa4,0x72,0xc0
2170DB 0xb7,0xfd,0x93,0x26,0x36,0x3f,0xf7,0xcc
2171DB 0x34,0xa5,0xe5,0xf1,0x71,0xd8,0x31,0x15
2172DB 0x04,0xc7,0x23,0xc3,0x18,0x96,0x05,0x9a
2173DB 0x07,0x12,0x80,0xe2,0xeb,0x27,0xb2,0x75
2174DB 0x09,0x83,0x2c,0x1a,0x1b,0x6e,0x5a,0xa0
2175DB 0x52,0x3b,0xd6,0xb3,0x29,0xe3,0x2f,0x84
2176DB 0x53,0xd1,0x00,0xed,0x20,0xfc,0xb1,0x5b
2177DB 0x6a,0xcb,0xbe,0x39,0x4a,0x4c,0x58,0xcf
2178DB 0xd0,0xef,0xaa,0xfb,0x43,0x4d,0x33,0x85
2179DB 0x45,0xf9,0x02,0x7f,0x50,0x3c,0x9f,0xa8
2180DB 0x51,0xa3,0x40,0x8f,0x92,0x9d,0x38,0xf5
2181DB 0xbc,0xb6,0xda,0x21,0x10,0xff,0xf3,0xd2
2182DB 0xcd,0x0c,0x13,0xec,0x5f,0x97,0x44,0x17
2183DB 0xc4,0xa7,0x7e,0x3d,0x64,0x5d,0x19,0x73
2184DB 0x60,0x81,0x4f,0xdc,0x22,0x2a,0x90,0x88
2185DB 0x46,0xee,0xb8,0x14,0xde,0x5e,0x0b,0xdb
2186DB 0xe0,0x32,0x3a,0x0a,0x49,0x06,0x24,0x5c
2187DB 0xc2,0xd3,0xac,0x62,0x91,0x95,0xe4,0x79
2188DB 0xe7,0xc8,0x37,0x6d,0x8d,0xd5,0x4e,0xa9
2189DB 0x6c,0x56,0xf4,0xea,0x65,0x7a,0xae,0x08
2190DB 0xba,0x78,0x25,0x2e,0x1c,0xa6,0xb4,0xc6
2191DB 0xe8,0xdd,0x74,0x1f,0x4b,0xbd,0x8b,0x8a
2192DB 0x70,0x3e,0xb5,0x66,0x48,0x03,0xf6,0x0e
2193DB 0x61,0x35,0x57,0xb9,0x86,0xc1,0x1d,0x9e
2194DB 0xe1,0xf8,0x98,0x11,0x69,0xd9,0x8e,0x94
2195DB 0x9b,0x1e,0x87,0xe9,0xce,0x55,0x28,0xdf
2196DB 0x8c,0xa1,0x89,0x0d,0xbf,0xe6,0x42,0x68
2197DB 0x41,0x99,0x2d,0x0f,0xb0,0x54,0xbb,0x16
2198 DD 0x00000001,0x00000002,0x00000004,0x00000008
2199 DD 0x00000010,0x00000020,0x00000040,0x00000080
2200 DD 0x0000001b,0x00000036,0x80808080,0x80808080
2201 DD 0xfefefefe,0xfefefefe,0x1b1b1b1b,0x1b1b1b1b
2202ALIGN 64
2203$L$AES_Td:
2204 DD 0x50a7f451,0x50a7f451
2205 DD 0x5365417e,0x5365417e
2206 DD 0xc3a4171a,0xc3a4171a
2207 DD 0x965e273a,0x965e273a
2208 DD 0xcb6bab3b,0xcb6bab3b
2209 DD 0xf1459d1f,0xf1459d1f
2210 DD 0xab58faac,0xab58faac
2211 DD 0x9303e34b,0x9303e34b
2212 DD 0x55fa3020,0x55fa3020
2213 DD 0xf66d76ad,0xf66d76ad
2214 DD 0x9176cc88,0x9176cc88
2215 DD 0x254c02f5,0x254c02f5
2216 DD 0xfcd7e54f,0xfcd7e54f
2217 DD 0xd7cb2ac5,0xd7cb2ac5
2218 DD 0x80443526,0x80443526
2219 DD 0x8fa362b5,0x8fa362b5
2220 DD 0x495ab1de,0x495ab1de
2221 DD 0x671bba25,0x671bba25
2222 DD 0x980eea45,0x980eea45
2223 DD 0xe1c0fe5d,0xe1c0fe5d
2224 DD 0x02752fc3,0x02752fc3
2225 DD 0x12f04c81,0x12f04c81
2226 DD 0xa397468d,0xa397468d
2227 DD 0xc6f9d36b,0xc6f9d36b
2228 DD 0xe75f8f03,0xe75f8f03
2229 DD 0x959c9215,0x959c9215
2230 DD 0xeb7a6dbf,0xeb7a6dbf
2231 DD 0xda595295,0xda595295
2232 DD 0x2d83bed4,0x2d83bed4
2233 DD 0xd3217458,0xd3217458
2234 DD 0x2969e049,0x2969e049
2235 DD 0x44c8c98e,0x44c8c98e
2236 DD 0x6a89c275,0x6a89c275
2237 DD 0x78798ef4,0x78798ef4
2238 DD 0x6b3e5899,0x6b3e5899
2239 DD 0xdd71b927,0xdd71b927
2240 DD 0xb64fe1be,0xb64fe1be
2241 DD 0x17ad88f0,0x17ad88f0
2242 DD 0x66ac20c9,0x66ac20c9
2243 DD 0xb43ace7d,0xb43ace7d
2244 DD 0x184adf63,0x184adf63
2245 DD 0x82311ae5,0x82311ae5
2246 DD 0x60335197,0x60335197
2247 DD 0x457f5362,0x457f5362
2248 DD 0xe07764b1,0xe07764b1
2249 DD 0x84ae6bbb,0x84ae6bbb
2250 DD 0x1ca081fe,0x1ca081fe
2251 DD 0x942b08f9,0x942b08f9
2252 DD 0x58684870,0x58684870
2253 DD 0x19fd458f,0x19fd458f
2254 DD 0x876cde94,0x876cde94
2255 DD 0xb7f87b52,0xb7f87b52
2256 DD 0x23d373ab,0x23d373ab
2257 DD 0xe2024b72,0xe2024b72
2258 DD 0x578f1fe3,0x578f1fe3
2259 DD 0x2aab5566,0x2aab5566
2260 DD 0x0728ebb2,0x0728ebb2
2261 DD 0x03c2b52f,0x03c2b52f
2262 DD 0x9a7bc586,0x9a7bc586
2263 DD 0xa50837d3,0xa50837d3
2264 DD 0xf2872830,0xf2872830
2265 DD 0xb2a5bf23,0xb2a5bf23
2266 DD 0xba6a0302,0xba6a0302
2267 DD 0x5c8216ed,0x5c8216ed
2268 DD 0x2b1ccf8a,0x2b1ccf8a
2269 DD 0x92b479a7,0x92b479a7
2270 DD 0xf0f207f3,0xf0f207f3
2271 DD 0xa1e2694e,0xa1e2694e
2272 DD 0xcdf4da65,0xcdf4da65
2273 DD 0xd5be0506,0xd5be0506
2274 DD 0x1f6234d1,0x1f6234d1
2275 DD 0x8afea6c4,0x8afea6c4
2276 DD 0x9d532e34,0x9d532e34
2277 DD 0xa055f3a2,0xa055f3a2
2278 DD 0x32e18a05,0x32e18a05
2279 DD 0x75ebf6a4,0x75ebf6a4
2280 DD 0x39ec830b,0x39ec830b
2281 DD 0xaaef6040,0xaaef6040
2282 DD 0x069f715e,0x069f715e
2283 DD 0x51106ebd,0x51106ebd
2284 DD 0xf98a213e,0xf98a213e
2285 DD 0x3d06dd96,0x3d06dd96
2286 DD 0xae053edd,0xae053edd
2287 DD 0x46bde64d,0x46bde64d
2288 DD 0xb58d5491,0xb58d5491
2289 DD 0x055dc471,0x055dc471
2290 DD 0x6fd40604,0x6fd40604
2291 DD 0xff155060,0xff155060
2292 DD 0x24fb9819,0x24fb9819
2293 DD 0x97e9bdd6,0x97e9bdd6
2294 DD 0xcc434089,0xcc434089
2295 DD 0x779ed967,0x779ed967
2296 DD 0xbd42e8b0,0xbd42e8b0
2297 DD 0x888b8907,0x888b8907
2298 DD 0x385b19e7,0x385b19e7
2299 DD 0xdbeec879,0xdbeec879
2300 DD 0x470a7ca1,0x470a7ca1
2301 DD 0xe90f427c,0xe90f427c
2302 DD 0xc91e84f8,0xc91e84f8
2303 DD 0x00000000,0x00000000
2304 DD 0x83868009,0x83868009
2305 DD 0x48ed2b32,0x48ed2b32
2306 DD 0xac70111e,0xac70111e
2307 DD 0x4e725a6c,0x4e725a6c
2308 DD 0xfbff0efd,0xfbff0efd
2309 DD 0x5638850f,0x5638850f
2310 DD 0x1ed5ae3d,0x1ed5ae3d
2311 DD 0x27392d36,0x27392d36
2312 DD 0x64d90f0a,0x64d90f0a
2313 DD 0x21a65c68,0x21a65c68
2314 DD 0xd1545b9b,0xd1545b9b
2315 DD 0x3a2e3624,0x3a2e3624
2316 DD 0xb1670a0c,0xb1670a0c
2317 DD 0x0fe75793,0x0fe75793
2318 DD 0xd296eeb4,0xd296eeb4
2319 DD 0x9e919b1b,0x9e919b1b
2320 DD 0x4fc5c080,0x4fc5c080
2321 DD 0xa220dc61,0xa220dc61
2322 DD 0x694b775a,0x694b775a
2323 DD 0x161a121c,0x161a121c
2324 DD 0x0aba93e2,0x0aba93e2
2325 DD 0xe52aa0c0,0xe52aa0c0
2326 DD 0x43e0223c,0x43e0223c
2327 DD 0x1d171b12,0x1d171b12
2328 DD 0x0b0d090e,0x0b0d090e
2329 DD 0xadc78bf2,0xadc78bf2
2330 DD 0xb9a8b62d,0xb9a8b62d
2331 DD 0xc8a91e14,0xc8a91e14
2332 DD 0x8519f157,0x8519f157
2333 DD 0x4c0775af,0x4c0775af
2334 DD 0xbbdd99ee,0xbbdd99ee
2335 DD 0xfd607fa3,0xfd607fa3
2336 DD 0x9f2601f7,0x9f2601f7
2337 DD 0xbcf5725c,0xbcf5725c
2338 DD 0xc53b6644,0xc53b6644
2339 DD 0x347efb5b,0x347efb5b
2340 DD 0x7629438b,0x7629438b
2341 DD 0xdcc623cb,0xdcc623cb
2342 DD 0x68fcedb6,0x68fcedb6
2343 DD 0x63f1e4b8,0x63f1e4b8
2344 DD 0xcadc31d7,0xcadc31d7
2345 DD 0x10856342,0x10856342
2346 DD 0x40229713,0x40229713
2347 DD 0x2011c684,0x2011c684
2348 DD 0x7d244a85,0x7d244a85
2349 DD 0xf83dbbd2,0xf83dbbd2
2350 DD 0x1132f9ae,0x1132f9ae
2351 DD 0x6da129c7,0x6da129c7
2352 DD 0x4b2f9e1d,0x4b2f9e1d
2353 DD 0xf330b2dc,0xf330b2dc
2354 DD 0xec52860d,0xec52860d
2355 DD 0xd0e3c177,0xd0e3c177
2356 DD 0x6c16b32b,0x6c16b32b
2357 DD 0x99b970a9,0x99b970a9
2358 DD 0xfa489411,0xfa489411
2359 DD 0x2264e947,0x2264e947
2360 DD 0xc48cfca8,0xc48cfca8
2361 DD 0x1a3ff0a0,0x1a3ff0a0
2362 DD 0xd82c7d56,0xd82c7d56
2363 DD 0xef903322,0xef903322
2364 DD 0xc74e4987,0xc74e4987
2365 DD 0xc1d138d9,0xc1d138d9
2366 DD 0xfea2ca8c,0xfea2ca8c
2367 DD 0x360bd498,0x360bd498
2368 DD 0xcf81f5a6,0xcf81f5a6
2369 DD 0x28de7aa5,0x28de7aa5
2370 DD 0x268eb7da,0x268eb7da
2371 DD 0xa4bfad3f,0xa4bfad3f
2372 DD 0xe49d3a2c,0xe49d3a2c
2373 DD 0x0d927850,0x0d927850
2374 DD 0x9bcc5f6a,0x9bcc5f6a
2375 DD 0x62467e54,0x62467e54
2376 DD 0xc2138df6,0xc2138df6
2377 DD 0xe8b8d890,0xe8b8d890
2378 DD 0x5ef7392e,0x5ef7392e
2379 DD 0xf5afc382,0xf5afc382
2380 DD 0xbe805d9f,0xbe805d9f
2381 DD 0x7c93d069,0x7c93d069
2382 DD 0xa92dd56f,0xa92dd56f
2383 DD 0xb31225cf,0xb31225cf
2384 DD 0x3b99acc8,0x3b99acc8
2385 DD 0xa77d1810,0xa77d1810
2386 DD 0x6e639ce8,0x6e639ce8
2387 DD 0x7bbb3bdb,0x7bbb3bdb
2388 DD 0x097826cd,0x097826cd
2389 DD 0xf418596e,0xf418596e
2390 DD 0x01b79aec,0x01b79aec
2391 DD 0xa89a4f83,0xa89a4f83
2392 DD 0x656e95e6,0x656e95e6
2393 DD 0x7ee6ffaa,0x7ee6ffaa
2394 DD 0x08cfbc21,0x08cfbc21
2395 DD 0xe6e815ef,0xe6e815ef
2396 DD 0xd99be7ba,0xd99be7ba
2397 DD 0xce366f4a,0xce366f4a
2398 DD 0xd4099fea,0xd4099fea
2399 DD 0xd67cb029,0xd67cb029
2400 DD 0xafb2a431,0xafb2a431
2401 DD 0x31233f2a,0x31233f2a
2402 DD 0x3094a5c6,0x3094a5c6
2403 DD 0xc066a235,0xc066a235
2404 DD 0x37bc4e74,0x37bc4e74
2405 DD 0xa6ca82fc,0xa6ca82fc
2406 DD 0xb0d090e0,0xb0d090e0
2407 DD 0x15d8a733,0x15d8a733
2408 DD 0x4a9804f1,0x4a9804f1
2409 DD 0xf7daec41,0xf7daec41
2410 DD 0x0e50cd7f,0x0e50cd7f
2411 DD 0x2ff69117,0x2ff69117
2412 DD 0x8dd64d76,0x8dd64d76
2413 DD 0x4db0ef43,0x4db0ef43
2414 DD 0x544daacc,0x544daacc
2415 DD 0xdf0496e4,0xdf0496e4
2416 DD 0xe3b5d19e,0xe3b5d19e
2417 DD 0x1b886a4c,0x1b886a4c
2418 DD 0xb81f2cc1,0xb81f2cc1
2419 DD 0x7f516546,0x7f516546
2420 DD 0x04ea5e9d,0x04ea5e9d
2421 DD 0x5d358c01,0x5d358c01
2422 DD 0x737487fa,0x737487fa
2423 DD 0x2e410bfb,0x2e410bfb
2424 DD 0x5a1d67b3,0x5a1d67b3
2425 DD 0x52d2db92,0x52d2db92
2426 DD 0x335610e9,0x335610e9
2427 DD 0x1347d66d,0x1347d66d
2428 DD 0x8c61d79a,0x8c61d79a
2429 DD 0x7a0ca137,0x7a0ca137
2430 DD 0x8e14f859,0x8e14f859
2431 DD 0x893c13eb,0x893c13eb
2432 DD 0xee27a9ce,0xee27a9ce
2433 DD 0x35c961b7,0x35c961b7
2434 DD 0xede51ce1,0xede51ce1
2435 DD 0x3cb1477a,0x3cb1477a
2436 DD 0x59dfd29c,0x59dfd29c
2437 DD 0x3f73f255,0x3f73f255
2438 DD 0x79ce1418,0x79ce1418
2439 DD 0xbf37c773,0xbf37c773
2440 DD 0xeacdf753,0xeacdf753
2441 DD 0x5baafd5f,0x5baafd5f
2442 DD 0x146f3ddf,0x146f3ddf
2443 DD 0x86db4478,0x86db4478
2444 DD 0x81f3afca,0x81f3afca
2445 DD 0x3ec468b9,0x3ec468b9
2446 DD 0x2c342438,0x2c342438
2447 DD 0x5f40a3c2,0x5f40a3c2
2448 DD 0x72c31d16,0x72c31d16
2449 DD 0x0c25e2bc,0x0c25e2bc
2450 DD 0x8b493c28,0x8b493c28
2451 DD 0x41950dff,0x41950dff
2452 DD 0x7101a839,0x7101a839
2453 DD 0xdeb30c08,0xdeb30c08
2454 DD 0x9ce4b4d8,0x9ce4b4d8
2455 DD 0x90c15664,0x90c15664
2456 DD 0x6184cb7b,0x6184cb7b
2457 DD 0x70b632d5,0x70b632d5
2458 DD 0x745c6c48,0x745c6c48
2459 DD 0x4257b8d0,0x4257b8d0
2460DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2461DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2462DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2463DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2464DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2465DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2466DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2467DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2468DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2469DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2470DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2471DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2472DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2473DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2474DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2475DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2476DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2477DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2478DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2479DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2480DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2481DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2482DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2483DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2484DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2485DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2486DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2487DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2488DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2489DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2490DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2491DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2492 DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
2493 DD 0x1b1b1b1b,0x1b1b1b1b,0,0
2494DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2495DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2496DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2497DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2498DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2499DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2500DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2501DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2502DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2503DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2504DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2505DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2506DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2507DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2508DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2509DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2510DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2511DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2512DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2513DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2514DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2515DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2516DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2517DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2518DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2519DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2520DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2521DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2522DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2523DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2524DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2525DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2526 DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
2527 DD 0x1b1b1b1b,0x1b1b1b1b,0,0
2528DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2529DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2530DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2531DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2532DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2533DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2534DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2535DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2536DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2537DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2538DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2539DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2540DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2541DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2542DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2543DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2544DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2545DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2546DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2547DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2548DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2549DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2550DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2551DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2552DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2553DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2554DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2555DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2556DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2557DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2558DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2559DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2560 DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
2561 DD 0x1b1b1b1b,0x1b1b1b1b,0,0
2562DB 0x52,0x09,0x6a,0xd5,0x30,0x36,0xa5,0x38
2563DB 0xbf,0x40,0xa3,0x9e,0x81,0xf3,0xd7,0xfb
2564DB 0x7c,0xe3,0x39,0x82,0x9b,0x2f,0xff,0x87
2565DB 0x34,0x8e,0x43,0x44,0xc4,0xde,0xe9,0xcb
2566DB 0x54,0x7b,0x94,0x32,0xa6,0xc2,0x23,0x3d
2567DB 0xee,0x4c,0x95,0x0b,0x42,0xfa,0xc3,0x4e
2568DB 0x08,0x2e,0xa1,0x66,0x28,0xd9,0x24,0xb2
2569DB 0x76,0x5b,0xa2,0x49,0x6d,0x8b,0xd1,0x25
2570DB 0x72,0xf8,0xf6,0x64,0x86,0x68,0x98,0x16
2571DB 0xd4,0xa4,0x5c,0xcc,0x5d,0x65,0xb6,0x92
2572DB 0x6c,0x70,0x48,0x50,0xfd,0xed,0xb9,0xda
2573DB 0x5e,0x15,0x46,0x57,0xa7,0x8d,0x9d,0x84
2574DB 0x90,0xd8,0xab,0x00,0x8c,0xbc,0xd3,0x0a
2575DB 0xf7,0xe4,0x58,0x05,0xb8,0xb3,0x45,0x06
2576DB 0xd0,0x2c,0x1e,0x8f,0xca,0x3f,0x0f,0x02
2577DB 0xc1,0xaf,0xbd,0x03,0x01,0x13,0x8a,0x6b
2578DB 0x3a,0x91,0x11,0x41,0x4f,0x67,0xdc,0xea
2579DB 0x97,0xf2,0xcf,0xce,0xf0,0xb4,0xe6,0x73
2580DB 0x96,0xac,0x74,0x22,0xe7,0xad,0x35,0x85
2581DB 0xe2,0xf9,0x37,0xe8,0x1c,0x75,0xdf,0x6e
2582DB 0x47,0xf1,0x1a,0x71,0x1d,0x29,0xc5,0x89
2583DB 0x6f,0xb7,0x62,0x0e,0xaa,0x18,0xbe,0x1b
2584DB 0xfc,0x56,0x3e,0x4b,0xc6,0xd2,0x79,0x20
2585DB 0x9a,0xdb,0xc0,0xfe,0x78,0xcd,0x5a,0xf4
2586DB 0x1f,0xdd,0xa8,0x33,0x88,0x07,0xc7,0x31
2587DB 0xb1,0x12,0x10,0x59,0x27,0x80,0xec,0x5f
2588DB 0x60,0x51,0x7f,0xa9,0x19,0xb5,0x4a,0x0d
2589DB 0x2d,0xe5,0x7a,0x9f,0x93,0xc9,0x9c,0xef
2590DB 0xa0,0xe0,0x3b,0x4d,0xae,0x2a,0xf5,0xb0
2591DB 0xc8,0xeb,0xbb,0x3c,0x83,0x53,0x99,0x61
2592DB 0x17,0x2b,0x04,0x7e,0xba,0x77,0xd6,0x26
2593DB 0xe1,0x69,0x14,0x63,0x55,0x21,0x0c,0x7d
2594 DD 0x80808080,0x80808080,0xfefefefe,0xfefefefe
2595 DD 0x1b1b1b1b,0x1b1b1b1b,0,0
2596DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32
2597DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
2598DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
2599DB 62,0
2600ALIGN 64
2601EXTERN __imp_RtlVirtualUnwind
2602
2603ALIGN 16
2604block_se_handler:
2605 push rsi
2606 push rdi
2607 push rbx
2608 push rbp
2609 push r12
2610 push r13
2611 push r14
2612 push r15
2613 pushfq
2614 sub rsp,64
2615
2616 mov rax,QWORD[120+r8]
2617 mov rbx,QWORD[248+r8]
2618
2619 mov rsi,QWORD[8+r9]
2620 mov r11,QWORD[56+r9]
2621
2622 mov r10d,DWORD[r11]
2623 lea r10,[r10*1+rsi]
2624 cmp rbx,r10
2625 jb NEAR $L$in_block_prologue
2626
2627 mov rax,QWORD[152+r8]
2628
2629 mov r10d,DWORD[4+r11]
2630 lea r10,[r10*1+rsi]
2631 cmp rbx,r10
2632 jae NEAR $L$in_block_prologue
2633
2634 mov rax,QWORD[24+rax]
2635 lea rax,[48+rax]
2636
2637 mov rbx,QWORD[((-8))+rax]
2638 mov rbp,QWORD[((-16))+rax]
2639 mov r12,QWORD[((-24))+rax]
2640 mov r13,QWORD[((-32))+rax]
2641 mov r14,QWORD[((-40))+rax]
2642 mov r15,QWORD[((-48))+rax]
2643 mov QWORD[144+r8],rbx
2644 mov QWORD[160+r8],rbp
2645 mov QWORD[216+r8],r12
2646 mov QWORD[224+r8],r13
2647 mov QWORD[232+r8],r14
2648 mov QWORD[240+r8],r15
2649
2650$L$in_block_prologue:
2651 mov rdi,QWORD[8+rax]
2652 mov rsi,QWORD[16+rax]
2653 mov QWORD[152+r8],rax
2654 mov QWORD[168+r8],rsi
2655 mov QWORD[176+r8],rdi
2656
2657 jmp NEAR $L$common_seh_exit
2658
2659
2660
2661ALIGN 16
2662key_se_handler:
2663 push rsi
2664 push rdi
2665 push rbx
2666 push rbp
2667 push r12
2668 push r13
2669 push r14
2670 push r15
2671 pushfq
2672 sub rsp,64
2673
2674 mov rax,QWORD[120+r8]
2675 mov rbx,QWORD[248+r8]
2676
2677 mov rsi,QWORD[8+r9]
2678 mov r11,QWORD[56+r9]
2679
2680 mov r10d,DWORD[r11]
2681 lea r10,[r10*1+rsi]
2682 cmp rbx,r10
2683 jb NEAR $L$in_key_prologue
2684
2685 mov rax,QWORD[152+r8]
2686
2687 mov r10d,DWORD[4+r11]
2688 lea r10,[r10*1+rsi]
2689 cmp rbx,r10
2690 jae NEAR $L$in_key_prologue
2691
2692 lea rax,[56+rax]
2693
2694 mov rbx,QWORD[((-8))+rax]
2695 mov rbp,QWORD[((-16))+rax]
2696 mov r12,QWORD[((-24))+rax]
2697 mov r13,QWORD[((-32))+rax]
2698 mov r14,QWORD[((-40))+rax]
2699 mov r15,QWORD[((-48))+rax]
2700 mov QWORD[144+r8],rbx
2701 mov QWORD[160+r8],rbp
2702 mov QWORD[216+r8],r12
2703 mov QWORD[224+r8],r13
2704 mov QWORD[232+r8],r14
2705 mov QWORD[240+r8],r15
2706
2707$L$in_key_prologue:
2708 mov rdi,QWORD[8+rax]
2709 mov rsi,QWORD[16+rax]
2710 mov QWORD[152+r8],rax
2711 mov QWORD[168+r8],rsi
2712 mov QWORD[176+r8],rdi
2713
2714 jmp NEAR $L$common_seh_exit
2715
2716
2717
2718ALIGN 16
2719cbc_se_handler:
2720 push rsi
2721 push rdi
2722 push rbx
2723 push rbp
2724 push r12
2725 push r13
2726 push r14
2727 push r15
2728 pushfq
2729 sub rsp,64
2730
2731 mov rax,QWORD[120+r8]
2732 mov rbx,QWORD[248+r8]
2733
2734 lea r10,[$L$cbc_prologue]
2735 cmp rbx,r10
2736 jb NEAR $L$in_cbc_prologue
2737
2738 lea r10,[$L$cbc_fast_body]
2739 cmp rbx,r10
2740 jb NEAR $L$in_cbc_frame_setup
2741
2742 lea r10,[$L$cbc_slow_prologue]
2743 cmp rbx,r10
2744 jb NEAR $L$in_cbc_body
2745
2746 lea r10,[$L$cbc_slow_body]
2747 cmp rbx,r10
2748 jb NEAR $L$in_cbc_frame_setup
2749
2750$L$in_cbc_body:
2751 mov rax,QWORD[152+r8]
2752
2753 lea r10,[$L$cbc_epilogue]
2754 cmp rbx,r10
2755 jae NEAR $L$in_cbc_prologue
2756
2757 lea rax,[8+rax]
2758
2759 lea r10,[$L$cbc_popfq]
2760 cmp rbx,r10
2761 jae NEAR $L$in_cbc_prologue
2762
2763 mov rax,QWORD[8+rax]
2764 lea rax,[56+rax]
2765
2766$L$in_cbc_frame_setup:
2767 mov rbx,QWORD[((-16))+rax]
2768 mov rbp,QWORD[((-24))+rax]
2769 mov r12,QWORD[((-32))+rax]
2770 mov r13,QWORD[((-40))+rax]
2771 mov r14,QWORD[((-48))+rax]
2772 mov r15,QWORD[((-56))+rax]
2773 mov QWORD[144+r8],rbx
2774 mov QWORD[160+r8],rbp
2775 mov QWORD[216+r8],r12
2776 mov QWORD[224+r8],r13
2777 mov QWORD[232+r8],r14
2778 mov QWORD[240+r8],r15
2779
2780$L$in_cbc_prologue:
2781 mov rdi,QWORD[8+rax]
2782 mov rsi,QWORD[16+rax]
2783 mov QWORD[152+r8],rax
2784 mov QWORD[168+r8],rsi
2785 mov QWORD[176+r8],rdi
2786
2787$L$common_seh_exit:
2788
2789 mov rdi,QWORD[40+r9]
2790 mov rsi,r8
2791 mov ecx,154
2792 DD 0xa548f3fc
2793
2794 mov rsi,r9
2795 xor rcx,rcx
2796 mov rdx,QWORD[8+rsi]
2797 mov r8,QWORD[rsi]
2798 mov r9,QWORD[16+rsi]
2799 mov r10,QWORD[40+rsi]
2800 lea r11,[56+rsi]
2801 lea r12,[24+rsi]
2802 mov QWORD[32+rsp],r10
2803 mov QWORD[40+rsp],r11
2804 mov QWORD[48+rsp],r12
2805 mov QWORD[56+rsp],rcx
2806 call QWORD[__imp_RtlVirtualUnwind]
2807
2808 mov eax,1
2809 add rsp,64
2810 popfq
2811 pop r15
2812 pop r14
2813 pop r13
2814 pop r12
2815 pop rbp
2816 pop rbx
2817 pop rdi
2818 pop rsi
2819 DB 0F3h,0C3h ;repret
2820
2821
2822section .pdata rdata align=4
2823ALIGN 4
2824 DD $L$SEH_begin_AES_encrypt wrt ..imagebase
2825 DD $L$SEH_end_AES_encrypt wrt ..imagebase
2826 DD $L$SEH_info_AES_encrypt wrt ..imagebase
2827
2828 DD $L$SEH_begin_AES_decrypt wrt ..imagebase
2829 DD $L$SEH_end_AES_decrypt wrt ..imagebase
2830 DD $L$SEH_info_AES_decrypt wrt ..imagebase
2831
2832 DD $L$SEH_begin_AES_set_encrypt_key wrt ..imagebase
2833 DD $L$SEH_end_AES_set_encrypt_key wrt ..imagebase
2834 DD $L$SEH_info_AES_set_encrypt_key wrt ..imagebase
2835
2836 DD $L$SEH_begin_AES_set_decrypt_key wrt ..imagebase
2837 DD $L$SEH_end_AES_set_decrypt_key wrt ..imagebase
2838 DD $L$SEH_info_AES_set_decrypt_key wrt ..imagebase
2839
2840 DD $L$SEH_begin_AES_cbc_encrypt wrt ..imagebase
2841 DD $L$SEH_end_AES_cbc_encrypt wrt ..imagebase
2842 DD $L$SEH_info_AES_cbc_encrypt wrt ..imagebase
2843
2844section .xdata rdata align=8
2845ALIGN 8
2846$L$SEH_info_AES_encrypt:
2847DB 9,0,0,0
2848 DD block_se_handler wrt ..imagebase
2849 DD $L$enc_prologue wrt ..imagebase,$L$enc_epilogue wrt ..imagebase
2850$L$SEH_info_AES_decrypt:
2851DB 9,0,0,0
2852 DD block_se_handler wrt ..imagebase
2853 DD $L$dec_prologue wrt ..imagebase,$L$dec_epilogue wrt ..imagebase
2854$L$SEH_info_AES_set_encrypt_key:
2855DB 9,0,0,0
2856 DD key_se_handler wrt ..imagebase
2857 DD $L$enc_key_prologue wrt ..imagebase,$L$enc_key_epilogue wrt ..imagebase
2858$L$SEH_info_AES_set_decrypt_key:
2859DB 9,0,0,0
2860 DD key_se_handler wrt ..imagebase
2861 DD $L$dec_key_prologue wrt ..imagebase,$L$dec_key_epilogue wrt ..imagebase
2862$L$SEH_info_AES_cbc_encrypt:
2863DB 9,0,0,0
2864 DD cbc_se_handler 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