VirtualBox

source: vbox/trunk/src/libs/openssl-1.1.1j/crypto/genasm-nasm/aes-x86_64.S@ 88461

Last change on this file since 88461 was 83531, checked in by vboxsync, 5 years ago

setting svn:sync-process=export for openssl-1.1.1f, all files except tests

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