VirtualBox

source: vbox/trunk/src/libs/openssl-3.0.7/crypto/genasm-nasm/aes-x86_64.S@ 98024

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

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

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