Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(104)

Side by Side Diff: third_party/boringssl/win-x86_64/crypto/aes/aes-x86_64.asm

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

Powered by Google App Engine
This is Rietveld 408576698