Roll BoringSSL.
[chromium-blink-merge.git] / third_party / boringssl / win-x86_64 / crypto / aes / aes-x86_64.asm
blob96cbb4bfcd1295de8668909b48b255867e3c8ec2
1 OPTION DOTNAME
2 .text$ SEGMENT ALIGN(256) 'CODE'
4 ALIGN 16
5 _x86_64_AES_encrypt PROC PRIVATE
6 xor eax,DWORD PTR[r15]
7 xor ebx,DWORD PTR[4+r15]
8 xor ecx,DWORD PTR[8+r15]
9 xor edx,DWORD PTR[12+r15]
11 mov r13d,DWORD PTR[240+r15]
12 sub r13d,1
13 jmp $L$enc_loop
14 ALIGN 16
15 $L$enc_loop::
17 movzx esi,al
18 movzx edi,bl
19 movzx ebp,cl
20 mov r10d,DWORD PTR[rsi*8+r14]
21 mov r11d,DWORD PTR[rdi*8+r14]
22 mov r12d,DWORD PTR[rbp*8+r14]
24 movzx esi,bh
25 movzx edi,ch
26 movzx ebp,dl
27 xor r10d,DWORD PTR[3+rsi*8+r14]
28 xor r11d,DWORD PTR[3+rdi*8+r14]
29 mov r8d,DWORD PTR[rbp*8+r14]
31 movzx esi,dh
32 shr ecx,16
33 movzx ebp,ah
34 xor r12d,DWORD PTR[3+rsi*8+r14]
35 shr edx,16
36 xor r8d,DWORD PTR[3+rbp*8+r14]
38 shr ebx,16
39 lea r15,QWORD PTR[16+r15]
40 shr eax,16
42 movzx esi,cl
43 movzx edi,dl
44 movzx ebp,al
45 xor r10d,DWORD PTR[2+rsi*8+r14]
46 xor r11d,DWORD PTR[2+rdi*8+r14]
47 xor r12d,DWORD PTR[2+rbp*8+r14]
49 movzx esi,dh
50 movzx edi,ah
51 movzx ebp,bl
52 xor r10d,DWORD PTR[1+rsi*8+r14]
53 xor r11d,DWORD PTR[1+rdi*8+r14]
54 xor r8d,DWORD PTR[2+rbp*8+r14]
56 mov edx,DWORD PTR[12+r15]
57 movzx edi,bh
58 movzx ebp,ch
59 mov eax,DWORD PTR[r15]
60 xor r12d,DWORD PTR[1+rdi*8+r14]
61 xor r8d,DWORD PTR[1+rbp*8+r14]
63 mov ebx,DWORD PTR[4+r15]
64 mov ecx,DWORD PTR[8+r15]
65 xor eax,r10d
66 xor ebx,r11d
67 xor ecx,r12d
68 xor edx,r8d
69 sub r13d,1
70 jnz $L$enc_loop
71 movzx esi,al
72 movzx edi,bl
73 movzx ebp,cl
74 movzx r10d,BYTE PTR[2+rsi*8+r14]
75 movzx r11d,BYTE PTR[2+rdi*8+r14]
76 movzx r12d,BYTE PTR[2+rbp*8+r14]
78 movzx esi,dl
79 movzx edi,bh
80 movzx ebp,ch
81 movzx r8d,BYTE PTR[2+rsi*8+r14]
82 mov edi,DWORD PTR[rdi*8+r14]
83 mov ebp,DWORD PTR[rbp*8+r14]
85 and edi,00000ff00h
86 and ebp,00000ff00h
88 xor r10d,edi
89 xor r11d,ebp
90 shr ecx,16
92 movzx esi,dh
93 movzx edi,ah
94 shr edx,16
95 mov esi,DWORD PTR[rsi*8+r14]
96 mov edi,DWORD PTR[rdi*8+r14]
98 and esi,00000ff00h
99 and edi,00000ff00h
100 shr ebx,16
101 xor r12d,esi
102 xor r8d,edi
103 shr eax,16
105 movzx esi,cl
106 movzx edi,dl
107 movzx ebp,al
108 mov esi,DWORD PTR[rsi*8+r14]
109 mov edi,DWORD PTR[rdi*8+r14]
110 mov ebp,DWORD PTR[rbp*8+r14]
112 and esi,000ff0000h
113 and edi,000ff0000h
114 and ebp,000ff0000h
116 xor r10d,esi
117 xor r11d,edi
118 xor r12d,ebp
120 movzx esi,bl
121 movzx edi,dh
122 movzx ebp,ah
123 mov esi,DWORD PTR[rsi*8+r14]
124 mov edi,DWORD PTR[2+rdi*8+r14]
125 mov ebp,DWORD PTR[2+rbp*8+r14]
127 and esi,000ff0000h
128 and edi,0ff000000h
129 and ebp,0ff000000h
131 xor r8d,esi
132 xor r10d,edi
133 xor r11d,ebp
135 movzx esi,bh
136 movzx edi,ch
137 mov edx,DWORD PTR[((16+12))+r15]
138 mov esi,DWORD PTR[2+rsi*8+r14]
139 mov edi,DWORD PTR[2+rdi*8+r14]
140 mov eax,DWORD PTR[((16+0))+r15]
142 and esi,0ff000000h
143 and edi,0ff000000h
145 xor r12d,esi
146 xor r8d,edi
148 mov ebx,DWORD PTR[((16+4))+r15]
149 mov ecx,DWORD PTR[((16+8))+r15]
150 xor eax,r10d
151 xor ebx,r11d
152 xor ecx,r12d
153 xor edx,r8d
154 DB 0f3h,0c3h
155 _x86_64_AES_encrypt ENDP
157 ALIGN 16
158 _x86_64_AES_encrypt_compact PROC PRIVATE
159 lea r8,QWORD PTR[128+r14]
160 mov edi,DWORD PTR[((0-128))+r8]
161 mov ebp,DWORD PTR[((32-128))+r8]
162 mov r10d,DWORD PTR[((64-128))+r8]
163 mov r11d,DWORD PTR[((96-128))+r8]
164 mov edi,DWORD PTR[((128-128))+r8]
165 mov ebp,DWORD PTR[((160-128))+r8]
166 mov r10d,DWORD PTR[((192-128))+r8]
167 mov r11d,DWORD PTR[((224-128))+r8]
168 jmp $L$enc_loop_compact
169 ALIGN 16
170 $L$enc_loop_compact::
171 xor eax,DWORD PTR[r15]
172 xor ebx,DWORD PTR[4+r15]
173 xor ecx,DWORD PTR[8+r15]
174 xor edx,DWORD PTR[12+r15]
175 lea r15,QWORD PTR[16+r15]
176 movzx r10d,al
177 movzx r11d,bl
178 movzx r12d,cl
179 movzx r8d,dl
180 movzx esi,bh
181 movzx edi,ch
182 shr ecx,16
183 movzx ebp,dh
184 movzx r10d,BYTE PTR[r10*1+r14]
185 movzx r11d,BYTE PTR[r11*1+r14]
186 movzx r12d,BYTE PTR[r12*1+r14]
187 movzx r8d,BYTE PTR[r8*1+r14]
189 movzx r9d,BYTE PTR[rsi*1+r14]
190 movzx esi,ah
191 movzx r13d,BYTE PTR[rdi*1+r14]
192 movzx edi,cl
193 movzx ebp,BYTE PTR[rbp*1+r14]
194 movzx esi,BYTE PTR[rsi*1+r14]
196 shl r9d,8
197 shr edx,16
198 shl r13d,8
199 xor r10d,r9d
200 shr eax,16
201 movzx r9d,dl
202 shr ebx,16
203 xor r11d,r13d
204 shl ebp,8
205 movzx r13d,al
206 movzx edi,BYTE PTR[rdi*1+r14]
207 xor r12d,ebp
209 shl esi,8
210 movzx ebp,bl
211 shl edi,16
212 xor r8d,esi
213 movzx r9d,BYTE PTR[r9*1+r14]
214 movzx esi,dh
215 movzx r13d,BYTE PTR[r13*1+r14]
216 xor r10d,edi
218 shr ecx,8
219 movzx edi,ah
220 shl r9d,16
221 shr ebx,8
222 shl r13d,16
223 xor r11d,r9d
224 movzx ebp,BYTE PTR[rbp*1+r14]
225 movzx esi,BYTE PTR[rsi*1+r14]
226 movzx edi,BYTE PTR[rdi*1+r14]
227 movzx edx,BYTE PTR[rcx*1+r14]
228 movzx ecx,BYTE PTR[rbx*1+r14]
230 shl ebp,16
231 xor r12d,r13d
232 shl esi,24
233 xor r8d,ebp
234 shl edi,24
235 xor r10d,esi
236 shl edx,24
237 xor r11d,edi
238 shl ecx,24
239 mov eax,r10d
240 mov ebx,r11d
241 xor ecx,r12d
242 xor edx,r8d
243 cmp r15,QWORD PTR[16+rsp]
244 je $L$enc_compact_done
245 mov r10d,080808080h
246 mov r11d,080808080h
247 and r10d,eax
248 and r11d,ebx
249 mov esi,r10d
250 mov edi,r11d
251 shr r10d,7
252 lea r8d,DWORD PTR[rax*1+rax]
253 shr r11d,7
254 lea r9d,DWORD PTR[rbx*1+rbx]
255 sub esi,r10d
256 sub edi,r11d
257 and r8d,0fefefefeh
258 and r9d,0fefefefeh
259 and esi,01b1b1b1bh
260 and edi,01b1b1b1bh
261 mov r10d,eax
262 mov r11d,ebx
263 xor r8d,esi
264 xor r9d,edi
266 xor eax,r8d
267 xor ebx,r9d
268 mov r12d,080808080h
269 rol eax,24
270 mov ebp,080808080h
271 rol ebx,24
272 and r12d,ecx
273 and ebp,edx
274 xor eax,r8d
275 xor ebx,r9d
276 mov esi,r12d
277 ror r10d,16
278 mov edi,ebp
279 ror r11d,16
280 lea r8d,DWORD PTR[rcx*1+rcx]
281 shr r12d,7
282 xor eax,r10d
283 shr ebp,7
284 xor ebx,r11d
285 ror r10d,8
286 lea r9d,DWORD PTR[rdx*1+rdx]
287 ror r11d,8
288 sub esi,r12d
289 sub edi,ebp
290 xor eax,r10d
291 xor ebx,r11d
293 and r8d,0fefefefeh
294 and r9d,0fefefefeh
295 and esi,01b1b1b1bh
296 and edi,01b1b1b1bh
297 mov r12d,ecx
298 mov ebp,edx
299 xor r8d,esi
300 xor r9d,edi
302 ror r12d,16
303 xor ecx,r8d
304 ror ebp,16
305 xor edx,r9d
306 rol ecx,24
307 mov esi,DWORD PTR[r14]
308 rol edx,24
309 xor ecx,r8d
310 mov edi,DWORD PTR[64+r14]
311 xor edx,r9d
312 mov r8d,DWORD PTR[128+r14]
313 xor ecx,r12d
314 ror r12d,8
315 xor edx,ebp
316 ror ebp,8
317 xor ecx,r12d
318 mov r9d,DWORD PTR[192+r14]
319 xor edx,ebp
320 jmp $L$enc_loop_compact
321 ALIGN 16
322 $L$enc_compact_done::
323 xor eax,DWORD PTR[r15]
324 xor ebx,DWORD PTR[4+r15]
325 xor ecx,DWORD PTR[8+r15]
326 xor edx,DWORD PTR[12+r15]
327 DB 0f3h,0c3h
328 _x86_64_AES_encrypt_compact ENDP
329 ALIGN 16
330 PUBLIC asm_AES_encrypt
333 asm_AES_encrypt PROC PUBLIC
334 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
335 mov QWORD PTR[16+rsp],rsi
336 mov rax,rsp
337 $L$SEH_begin_asm_AES_encrypt::
338 mov rdi,rcx
339 mov rsi,rdx
340 mov rdx,r8
343 push rbx
344 push rbp
345 push r12
346 push r13
347 push r14
348 push r15
351 mov r10,rsp
352 lea rcx,QWORD PTR[((-63))+rdx]
353 and rsp,-64
354 sub rcx,rsp
355 neg rcx
356 and rcx,03c0h
357 sub rsp,rcx
358 sub rsp,32
360 mov QWORD PTR[16+rsp],rsi
361 mov QWORD PTR[24+rsp],r10
362 $L$enc_prologue::
364 mov r15,rdx
365 mov r13d,DWORD PTR[240+r15]
367 mov eax,DWORD PTR[rdi]
368 mov ebx,DWORD PTR[4+rdi]
369 mov ecx,DWORD PTR[8+rdi]
370 mov edx,DWORD PTR[12+rdi]
372 shl r13d,4
373 lea rbp,QWORD PTR[r13*1+r15]
374 mov QWORD PTR[rsp],r15
375 mov QWORD PTR[8+rsp],rbp
378 lea r14,QWORD PTR[(($L$AES_Te+2048))]
379 lea rbp,QWORD PTR[768+rsp]
380 sub rbp,r14
381 and rbp,0300h
382 lea r14,QWORD PTR[rbp*1+r14]
384 call _x86_64_AES_encrypt_compact
386 mov r9,QWORD PTR[16+rsp]
387 mov rsi,QWORD PTR[24+rsp]
388 mov DWORD PTR[r9],eax
389 mov DWORD PTR[4+r9],ebx
390 mov DWORD PTR[8+r9],ecx
391 mov DWORD PTR[12+r9],edx
393 mov r15,QWORD PTR[rsi]
394 mov r14,QWORD PTR[8+rsi]
395 mov r13,QWORD PTR[16+rsi]
396 mov r12,QWORD PTR[24+rsi]
397 mov rbp,QWORD PTR[32+rsi]
398 mov rbx,QWORD PTR[40+rsi]
399 lea rsp,QWORD PTR[48+rsi]
400 $L$enc_epilogue::
401 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
402 mov rsi,QWORD PTR[16+rsp]
403 DB 0F3h,0C3h ;repret
404 $L$SEH_end_asm_AES_encrypt::
405 asm_AES_encrypt ENDP
407 ALIGN 16
408 _x86_64_AES_decrypt PROC PRIVATE
409 xor eax,DWORD PTR[r15]
410 xor ebx,DWORD PTR[4+r15]
411 xor ecx,DWORD PTR[8+r15]
412 xor edx,DWORD PTR[12+r15]
414 mov r13d,DWORD PTR[240+r15]
415 sub r13d,1
416 jmp $L$dec_loop
417 ALIGN 16
418 $L$dec_loop::
420 movzx esi,al
421 movzx edi,bl
422 movzx ebp,cl
423 mov r10d,DWORD PTR[rsi*8+r14]
424 mov r11d,DWORD PTR[rdi*8+r14]
425 mov r12d,DWORD PTR[rbp*8+r14]
427 movzx esi,dh
428 movzx edi,ah
429 movzx ebp,dl
430 xor r10d,DWORD PTR[3+rsi*8+r14]
431 xor r11d,DWORD PTR[3+rdi*8+r14]
432 mov r8d,DWORD PTR[rbp*8+r14]
434 movzx esi,bh
435 shr eax,16
436 movzx ebp,ch
437 xor r12d,DWORD PTR[3+rsi*8+r14]
438 shr edx,16
439 xor r8d,DWORD PTR[3+rbp*8+r14]
441 shr ebx,16
442 lea r15,QWORD PTR[16+r15]
443 shr ecx,16
445 movzx esi,cl
446 movzx edi,dl
447 movzx ebp,al
448 xor r10d,DWORD PTR[2+rsi*8+r14]
449 xor r11d,DWORD PTR[2+rdi*8+r14]
450 xor r12d,DWORD PTR[2+rbp*8+r14]
452 movzx esi,bh
453 movzx edi,ch
454 movzx ebp,bl
455 xor r10d,DWORD PTR[1+rsi*8+r14]
456 xor r11d,DWORD PTR[1+rdi*8+r14]
457 xor r8d,DWORD PTR[2+rbp*8+r14]
459 movzx esi,dh
460 mov edx,DWORD PTR[12+r15]
461 movzx ebp,ah
462 xor r12d,DWORD PTR[1+rsi*8+r14]
463 mov eax,DWORD PTR[r15]
464 xor r8d,DWORD PTR[1+rbp*8+r14]
466 xor eax,r10d
467 mov ebx,DWORD PTR[4+r15]
468 mov ecx,DWORD PTR[8+r15]
469 xor ecx,r12d
470 xor ebx,r11d
471 xor edx,r8d
472 sub r13d,1
473 jnz $L$dec_loop
474 lea r14,QWORD PTR[2048+r14]
475 movzx esi,al
476 movzx edi,bl
477 movzx ebp,cl
478 movzx r10d,BYTE PTR[rsi*1+r14]
479 movzx r11d,BYTE PTR[rdi*1+r14]
480 movzx r12d,BYTE PTR[rbp*1+r14]
482 movzx esi,dl
483 movzx edi,dh
484 movzx ebp,ah
485 movzx r8d,BYTE PTR[rsi*1+r14]
486 movzx edi,BYTE PTR[rdi*1+r14]
487 movzx ebp,BYTE PTR[rbp*1+r14]
489 shl edi,8
490 shl ebp,8
492 xor r10d,edi
493 xor r11d,ebp
494 shr edx,16
496 movzx esi,bh
497 movzx edi,ch
498 shr eax,16
499 movzx esi,BYTE PTR[rsi*1+r14]
500 movzx edi,BYTE PTR[rdi*1+r14]
502 shl esi,8
503 shl edi,8
504 shr ebx,16
505 xor r12d,esi
506 xor r8d,edi
507 shr ecx,16
509 movzx esi,cl
510 movzx edi,dl
511 movzx ebp,al
512 movzx esi,BYTE PTR[rsi*1+r14]
513 movzx edi,BYTE PTR[rdi*1+r14]
514 movzx ebp,BYTE PTR[rbp*1+r14]
516 shl esi,16
517 shl edi,16
518 shl ebp,16
520 xor r10d,esi
521 xor r11d,edi
522 xor r12d,ebp
524 movzx esi,bl
525 movzx edi,bh
526 movzx ebp,ch
527 movzx esi,BYTE PTR[rsi*1+r14]
528 movzx edi,BYTE PTR[rdi*1+r14]
529 movzx ebp,BYTE PTR[rbp*1+r14]
531 shl esi,16
532 shl edi,24
533 shl ebp,24
535 xor r8d,esi
536 xor r10d,edi
537 xor r11d,ebp
539 movzx esi,dh
540 movzx edi,ah
541 mov edx,DWORD PTR[((16+12))+r15]
542 movzx esi,BYTE PTR[rsi*1+r14]
543 movzx edi,BYTE PTR[rdi*1+r14]
544 mov eax,DWORD PTR[((16+0))+r15]
546 shl esi,24
547 shl edi,24
549 xor r12d,esi
550 xor r8d,edi
552 mov ebx,DWORD PTR[((16+4))+r15]
553 mov ecx,DWORD PTR[((16+8))+r15]
554 lea r14,QWORD PTR[((-2048))+r14]
555 xor eax,r10d
556 xor ebx,r11d
557 xor ecx,r12d
558 xor edx,r8d
559 DB 0f3h,0c3h
560 _x86_64_AES_decrypt ENDP
562 ALIGN 16
563 _x86_64_AES_decrypt_compact PROC PRIVATE
564 lea r8,QWORD PTR[128+r14]
565 mov edi,DWORD PTR[((0-128))+r8]
566 mov ebp,DWORD PTR[((32-128))+r8]
567 mov r10d,DWORD PTR[((64-128))+r8]
568 mov r11d,DWORD PTR[((96-128))+r8]
569 mov edi,DWORD PTR[((128-128))+r8]
570 mov ebp,DWORD PTR[((160-128))+r8]
571 mov r10d,DWORD PTR[((192-128))+r8]
572 mov r11d,DWORD PTR[((224-128))+r8]
573 jmp $L$dec_loop_compact
575 ALIGN 16
576 $L$dec_loop_compact::
577 xor eax,DWORD PTR[r15]
578 xor ebx,DWORD PTR[4+r15]
579 xor ecx,DWORD PTR[8+r15]
580 xor edx,DWORD PTR[12+r15]
581 lea r15,QWORD PTR[16+r15]
582 movzx r10d,al
583 movzx r11d,bl
584 movzx r12d,cl
585 movzx r8d,dl
586 movzx esi,dh
587 movzx edi,ah
588 shr edx,16
589 movzx ebp,bh
590 movzx r10d,BYTE PTR[r10*1+r14]
591 movzx r11d,BYTE PTR[r11*1+r14]
592 movzx r12d,BYTE PTR[r12*1+r14]
593 movzx r8d,BYTE PTR[r8*1+r14]
595 movzx r9d,BYTE PTR[rsi*1+r14]
596 movzx esi,ch
597 movzx r13d,BYTE PTR[rdi*1+r14]
598 movzx ebp,BYTE PTR[rbp*1+r14]
599 movzx esi,BYTE PTR[rsi*1+r14]
601 shr ecx,16
602 shl r13d,8
603 shl r9d,8
604 movzx edi,cl
605 shr eax,16
606 xor r10d,r9d
607 shr ebx,16
608 movzx r9d,dl
610 shl ebp,8
611 xor r11d,r13d
612 shl esi,8
613 movzx r13d,al
614 movzx edi,BYTE PTR[rdi*1+r14]
615 xor r12d,ebp
616 movzx ebp,bl
618 shl edi,16
619 xor r8d,esi
620 movzx r9d,BYTE PTR[r9*1+r14]
621 movzx esi,bh
622 movzx ebp,BYTE PTR[rbp*1+r14]
623 xor r10d,edi
624 movzx r13d,BYTE PTR[r13*1+r14]
625 movzx edi,ch
627 shl ebp,16
628 shl r9d,16
629 shl r13d,16
630 xor r8d,ebp
631 movzx ebp,dh
632 xor r11d,r9d
633 shr eax,8
634 xor r12d,r13d
636 movzx esi,BYTE PTR[rsi*1+r14]
637 movzx ebx,BYTE PTR[rdi*1+r14]
638 movzx ecx,BYTE PTR[rbp*1+r14]
639 movzx edx,BYTE PTR[rax*1+r14]
641 mov eax,r10d
642 shl esi,24
643 shl ebx,24
644 shl ecx,24
645 xor eax,esi
646 shl edx,24
647 xor ebx,r11d
648 xor ecx,r12d
649 xor edx,r8d
650 cmp r15,QWORD PTR[16+rsp]
651 je $L$dec_compact_done
653 mov rsi,QWORD PTR[((256+0))+r14]
654 shl rbx,32
655 shl rdx,32
656 mov rdi,QWORD PTR[((256+8))+r14]
657 or rax,rbx
658 or rcx,rdx
659 mov rbp,QWORD PTR[((256+16))+r14]
660 mov r9,rsi
661 mov r12,rsi
662 and r9,rax
663 and r12,rcx
664 mov rbx,r9
665 mov rdx,r12
666 shr r9,7
667 lea r8,QWORD PTR[rax*1+rax]
668 shr r12,7
669 lea r11,QWORD PTR[rcx*1+rcx]
670 sub rbx,r9
671 sub rdx,r12
672 and r8,rdi
673 and r11,rdi
674 and rbx,rbp
675 and rdx,rbp
676 xor r8,rbx
677 xor r11,rdx
678 mov r10,rsi
679 mov r13,rsi
681 and r10,r8
682 and r13,r11
683 mov rbx,r10
684 mov rdx,r13
685 shr r10,7
686 lea r9,QWORD PTR[r8*1+r8]
687 shr r13,7
688 lea r12,QWORD PTR[r11*1+r11]
689 sub rbx,r10
690 sub rdx,r13
691 and r9,rdi
692 and r12,rdi
693 and rbx,rbp
694 and rdx,rbp
695 xor r9,rbx
696 xor r12,rdx
697 mov r10,rsi
698 mov r13,rsi
700 and r10,r9
701 and r13,r12
702 mov rbx,r10
703 mov rdx,r13
704 shr r10,7
705 xor r8,rax
706 shr r13,7
707 xor r11,rcx
708 sub rbx,r10
709 sub rdx,r13
710 lea r10,QWORD PTR[r9*1+r9]
711 lea r13,QWORD PTR[r12*1+r12]
712 xor r9,rax
713 xor r12,rcx
714 and r10,rdi
715 and r13,rdi
716 and rbx,rbp
717 and rdx,rbp
718 xor r10,rbx
719 xor r13,rdx
721 xor rax,r10
722 xor rcx,r13
723 xor r8,r10
724 xor r11,r13
725 mov rbx,rax
726 mov rdx,rcx
727 xor r9,r10
728 shr rbx,32
729 xor r12,r13
730 shr rdx,32
731 xor r10,r8
732 rol eax,8
733 xor r13,r11
734 rol ecx,8
735 xor r10,r9
736 rol ebx,8
737 xor r13,r12
739 rol edx,8
740 xor eax,r10d
741 shr r10,32
742 xor ecx,r13d
743 shr r13,32
744 xor ebx,r10d
745 xor edx,r13d
747 mov r10,r8
748 rol r8d,24
749 mov r13,r11
750 rol r11d,24
751 shr r10,32
752 xor eax,r8d
753 shr r13,32
754 xor ecx,r11d
755 rol r10d,24
756 mov r8,r9
757 rol r13d,24
758 mov r11,r12
759 shr r8,32
760 xor ebx,r10d
761 shr r11,32
762 xor edx,r13d
764 mov rsi,QWORD PTR[r14]
765 rol r9d,16
766 mov rdi,QWORD PTR[64+r14]
767 rol r12d,16
768 mov rbp,QWORD PTR[128+r14]
769 rol r8d,16
770 mov r10,QWORD PTR[192+r14]
771 xor eax,r9d
772 rol r11d,16
773 xor ecx,r12d
774 mov r13,QWORD PTR[256+r14]
775 xor ebx,r8d
776 xor edx,r11d
777 jmp $L$dec_loop_compact
778 ALIGN 16
779 $L$dec_compact_done::
780 xor eax,DWORD PTR[r15]
781 xor ebx,DWORD PTR[4+r15]
782 xor ecx,DWORD PTR[8+r15]
783 xor edx,DWORD PTR[12+r15]
784 DB 0f3h,0c3h
785 _x86_64_AES_decrypt_compact ENDP
786 ALIGN 16
787 PUBLIC asm_AES_decrypt
790 asm_AES_decrypt PROC PUBLIC
791 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
792 mov QWORD PTR[16+rsp],rsi
793 mov rax,rsp
794 $L$SEH_begin_asm_AES_decrypt::
795 mov rdi,rcx
796 mov rsi,rdx
797 mov rdx,r8
800 push rbx
801 push rbp
802 push r12
803 push r13
804 push r14
805 push r15
808 mov r10,rsp
809 lea rcx,QWORD PTR[((-63))+rdx]
810 and rsp,-64
811 sub rcx,rsp
812 neg rcx
813 and rcx,03c0h
814 sub rsp,rcx
815 sub rsp,32
817 mov QWORD PTR[16+rsp],rsi
818 mov QWORD PTR[24+rsp],r10
819 $L$dec_prologue::
821 mov r15,rdx
822 mov r13d,DWORD PTR[240+r15]
824 mov eax,DWORD PTR[rdi]
825 mov ebx,DWORD PTR[4+rdi]
826 mov ecx,DWORD PTR[8+rdi]
827 mov edx,DWORD PTR[12+rdi]
829 shl r13d,4
830 lea rbp,QWORD PTR[r13*1+r15]
831 mov QWORD PTR[rsp],r15
832 mov QWORD PTR[8+rsp],rbp
835 lea r14,QWORD PTR[(($L$AES_Td+2048))]
836 lea rbp,QWORD PTR[768+rsp]
837 sub rbp,r14
838 and rbp,0300h
839 lea r14,QWORD PTR[rbp*1+r14]
840 shr rbp,3
841 add r14,rbp
843 call _x86_64_AES_decrypt_compact
845 mov r9,QWORD PTR[16+rsp]
846 mov rsi,QWORD PTR[24+rsp]
847 mov DWORD PTR[r9],eax
848 mov DWORD PTR[4+r9],ebx
849 mov DWORD PTR[8+r9],ecx
850 mov DWORD PTR[12+r9],edx
852 mov r15,QWORD PTR[rsi]
853 mov r14,QWORD PTR[8+rsi]
854 mov r13,QWORD PTR[16+rsi]
855 mov r12,QWORD PTR[24+rsi]
856 mov rbp,QWORD PTR[32+rsi]
857 mov rbx,QWORD PTR[40+rsi]
858 lea rsp,QWORD PTR[48+rsi]
859 $L$dec_epilogue::
860 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
861 mov rsi,QWORD PTR[16+rsp]
862 DB 0F3h,0C3h ;repret
863 $L$SEH_end_asm_AES_decrypt::
864 asm_AES_decrypt ENDP
865 ALIGN 16
866 PUBLIC asm_AES_set_encrypt_key
868 asm_AES_set_encrypt_key PROC PUBLIC
869 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
870 mov QWORD PTR[16+rsp],rsi
871 mov rax,rsp
872 $L$SEH_begin_asm_AES_set_encrypt_key::
873 mov rdi,rcx
874 mov rsi,rdx
875 mov rdx,r8
878 push rbx
879 push rbp
880 push r12
881 push r13
882 push r14
883 push r15
884 sub rsp,8
885 $L$enc_key_prologue::
887 call _x86_64_AES_set_encrypt_key
889 mov rbp,QWORD PTR[40+rsp]
890 mov rbx,QWORD PTR[48+rsp]
891 add rsp,56
892 $L$enc_key_epilogue::
893 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
894 mov rsi,QWORD PTR[16+rsp]
895 DB 0F3h,0C3h ;repret
896 $L$SEH_end_asm_AES_set_encrypt_key::
897 asm_AES_set_encrypt_key ENDP
900 ALIGN 16
901 _x86_64_AES_set_encrypt_key PROC PRIVATE
902 mov ecx,esi
903 mov rsi,rdi
904 mov rdi,rdx
906 test rsi,-1
907 jz $L$badpointer
908 test rdi,-1
909 jz $L$badpointer
911 lea rbp,QWORD PTR[$L$AES_Te]
912 lea rbp,QWORD PTR[((2048+128))+rbp]
915 mov eax,DWORD PTR[((0-128))+rbp]
916 mov ebx,DWORD PTR[((32-128))+rbp]
917 mov r8d,DWORD PTR[((64-128))+rbp]
918 mov edx,DWORD PTR[((96-128))+rbp]
919 mov eax,DWORD PTR[((128-128))+rbp]
920 mov ebx,DWORD PTR[((160-128))+rbp]
921 mov r8d,DWORD PTR[((192-128))+rbp]
922 mov edx,DWORD PTR[((224-128))+rbp]
924 cmp ecx,128
925 je $L$10rounds
926 cmp ecx,192
927 je $L$12rounds
928 cmp ecx,256
929 je $L$14rounds
930 mov rax,-2
931 jmp $L$exit
933 $L$10rounds::
934 mov rax,QWORD PTR[rsi]
935 mov rdx,QWORD PTR[8+rsi]
936 mov QWORD PTR[rdi],rax
937 mov QWORD PTR[8+rdi],rdx
939 shr rdx,32
940 xor ecx,ecx
941 jmp $L$10shortcut
942 ALIGN 4
943 $L$10loop::
944 mov eax,DWORD PTR[rdi]
945 mov edx,DWORD PTR[12+rdi]
946 $L$10shortcut::
947 movzx esi,dl
948 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
949 movzx esi,dh
950 shl ebx,24
951 xor eax,ebx
953 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
954 shr edx,16
955 movzx esi,dl
956 xor eax,ebx
958 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
959 movzx esi,dh
960 shl ebx,8
961 xor eax,ebx
963 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
964 shl ebx,16
965 xor eax,ebx
967 xor eax,DWORD PTR[((1024-128))+rcx*4+rbp]
968 mov DWORD PTR[16+rdi],eax
969 xor eax,DWORD PTR[4+rdi]
970 mov DWORD PTR[20+rdi],eax
971 xor eax,DWORD PTR[8+rdi]
972 mov DWORD PTR[24+rdi],eax
973 xor eax,DWORD PTR[12+rdi]
974 mov DWORD PTR[28+rdi],eax
975 add ecx,1
976 lea rdi,QWORD PTR[16+rdi]
977 cmp ecx,10
978 jl $L$10loop
980 mov DWORD PTR[80+rdi],10
981 xor rax,rax
982 jmp $L$exit
984 $L$12rounds::
985 mov rax,QWORD PTR[rsi]
986 mov rbx,QWORD PTR[8+rsi]
987 mov rdx,QWORD PTR[16+rsi]
988 mov QWORD PTR[rdi],rax
989 mov QWORD PTR[8+rdi],rbx
990 mov QWORD PTR[16+rdi],rdx
992 shr rdx,32
993 xor ecx,ecx
994 jmp $L$12shortcut
995 ALIGN 4
996 $L$12loop::
997 mov eax,DWORD PTR[rdi]
998 mov edx,DWORD PTR[20+rdi]
999 $L$12shortcut::
1000 movzx esi,dl
1001 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1002 movzx esi,dh
1003 shl ebx,24
1004 xor eax,ebx
1006 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1007 shr edx,16
1008 movzx esi,dl
1009 xor eax,ebx
1011 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1012 movzx esi,dh
1013 shl ebx,8
1014 xor eax,ebx
1016 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1017 shl ebx,16
1018 xor eax,ebx
1020 xor eax,DWORD PTR[((1024-128))+rcx*4+rbp]
1021 mov DWORD PTR[24+rdi],eax
1022 xor eax,DWORD PTR[4+rdi]
1023 mov DWORD PTR[28+rdi],eax
1024 xor eax,DWORD PTR[8+rdi]
1025 mov DWORD PTR[32+rdi],eax
1026 xor eax,DWORD PTR[12+rdi]
1027 mov DWORD PTR[36+rdi],eax
1029 cmp ecx,7
1030 je $L$12break
1031 add ecx,1
1033 xor eax,DWORD PTR[16+rdi]
1034 mov DWORD PTR[40+rdi],eax
1035 xor eax,DWORD PTR[20+rdi]
1036 mov DWORD PTR[44+rdi],eax
1038 lea rdi,QWORD PTR[24+rdi]
1039 jmp $L$12loop
1040 $L$12break::
1041 mov DWORD PTR[72+rdi],12
1042 xor rax,rax
1043 jmp $L$exit
1045 $L$14rounds::
1046 mov rax,QWORD PTR[rsi]
1047 mov rbx,QWORD PTR[8+rsi]
1048 mov rcx,QWORD PTR[16+rsi]
1049 mov rdx,QWORD PTR[24+rsi]
1050 mov QWORD PTR[rdi],rax
1051 mov QWORD PTR[8+rdi],rbx
1052 mov QWORD PTR[16+rdi],rcx
1053 mov QWORD PTR[24+rdi],rdx
1055 shr rdx,32
1056 xor ecx,ecx
1057 jmp $L$14shortcut
1058 ALIGN 4
1059 $L$14loop::
1060 mov eax,DWORD PTR[rdi]
1061 mov edx,DWORD PTR[28+rdi]
1062 $L$14shortcut::
1063 movzx esi,dl
1064 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1065 movzx esi,dh
1066 shl ebx,24
1067 xor eax,ebx
1069 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1070 shr edx,16
1071 movzx esi,dl
1072 xor eax,ebx
1074 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1075 movzx esi,dh
1076 shl ebx,8
1077 xor eax,ebx
1079 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1080 shl ebx,16
1081 xor eax,ebx
1083 xor eax,DWORD PTR[((1024-128))+rcx*4+rbp]
1084 mov DWORD PTR[32+rdi],eax
1085 xor eax,DWORD PTR[4+rdi]
1086 mov DWORD PTR[36+rdi],eax
1087 xor eax,DWORD PTR[8+rdi]
1088 mov DWORD PTR[40+rdi],eax
1089 xor eax,DWORD PTR[12+rdi]
1090 mov DWORD PTR[44+rdi],eax
1092 cmp ecx,6
1093 je $L$14break
1094 add ecx,1
1096 mov edx,eax
1097 mov eax,DWORD PTR[16+rdi]
1098 movzx esi,dl
1099 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1100 movzx esi,dh
1101 xor eax,ebx
1103 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1104 shr edx,16
1105 shl ebx,8
1106 movzx esi,dl
1107 xor eax,ebx
1109 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1110 movzx esi,dh
1111 shl ebx,16
1112 xor eax,ebx
1114 movzx ebx,BYTE PTR[((-128))+rsi*1+rbp]
1115 shl ebx,24
1116 xor eax,ebx
1118 mov DWORD PTR[48+rdi],eax
1119 xor eax,DWORD PTR[20+rdi]
1120 mov DWORD PTR[52+rdi],eax
1121 xor eax,DWORD PTR[24+rdi]
1122 mov DWORD PTR[56+rdi],eax
1123 xor eax,DWORD PTR[28+rdi]
1124 mov DWORD PTR[60+rdi],eax
1126 lea rdi,QWORD PTR[32+rdi]
1127 jmp $L$14loop
1128 $L$14break::
1129 mov DWORD PTR[48+rdi],14
1130 xor rax,rax
1131 jmp $L$exit
1133 $L$badpointer::
1134 mov rax,-1
1135 $L$exit::
1136 DB 0f3h,0c3h
1137 _x86_64_AES_set_encrypt_key ENDP
1138 ALIGN 16
1139 PUBLIC asm_AES_set_decrypt_key
1141 asm_AES_set_decrypt_key PROC PUBLIC
1142 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
1143 mov QWORD PTR[16+rsp],rsi
1144 mov rax,rsp
1145 $L$SEH_begin_asm_AES_set_decrypt_key::
1146 mov rdi,rcx
1147 mov rsi,rdx
1148 mov rdx,r8
1151 push rbx
1152 push rbp
1153 push r12
1154 push r13
1155 push r14
1156 push r15
1157 push rdx
1158 $L$dec_key_prologue::
1160 call _x86_64_AES_set_encrypt_key
1161 mov r8,QWORD PTR[rsp]
1162 cmp eax,0
1163 jne $L$abort
1165 mov r14d,DWORD PTR[240+r8]
1166 xor rdi,rdi
1167 lea rcx,QWORD PTR[r14*4+rdi]
1168 mov rsi,r8
1169 lea rdi,QWORD PTR[rcx*4+r8]
1170 ALIGN 4
1171 $L$invert::
1172 mov rax,QWORD PTR[rsi]
1173 mov rbx,QWORD PTR[8+rsi]
1174 mov rcx,QWORD PTR[rdi]
1175 mov rdx,QWORD PTR[8+rdi]
1176 mov QWORD PTR[rdi],rax
1177 mov QWORD PTR[8+rdi],rbx
1178 mov QWORD PTR[rsi],rcx
1179 mov QWORD PTR[8+rsi],rdx
1180 lea rsi,QWORD PTR[16+rsi]
1181 lea rdi,QWORD PTR[((-16))+rdi]
1182 cmp rdi,rsi
1183 jne $L$invert
1185 lea rax,QWORD PTR[(($L$AES_Te+2048+1024))]
1187 mov rsi,QWORD PTR[40+rax]
1188 mov rdi,QWORD PTR[48+rax]
1189 mov rbp,QWORD PTR[56+rax]
1191 mov r15,r8
1192 sub r14d,1
1193 ALIGN 4
1194 $L$permute::
1195 lea r15,QWORD PTR[16+r15]
1196 mov rax,QWORD PTR[r15]
1197 mov rcx,QWORD PTR[8+r15]
1198 mov r9,rsi
1199 mov r12,rsi
1200 and r9,rax
1201 and r12,rcx
1202 mov rbx,r9
1203 mov rdx,r12
1204 shr r9,7
1205 lea r8,QWORD PTR[rax*1+rax]
1206 shr r12,7
1207 lea r11,QWORD PTR[rcx*1+rcx]
1208 sub rbx,r9
1209 sub rdx,r12
1210 and r8,rdi
1211 and r11,rdi
1212 and rbx,rbp
1213 and rdx,rbp
1214 xor r8,rbx
1215 xor r11,rdx
1216 mov r10,rsi
1217 mov r13,rsi
1219 and r10,r8
1220 and r13,r11
1221 mov rbx,r10
1222 mov rdx,r13
1223 shr r10,7
1224 lea r9,QWORD PTR[r8*1+r8]
1225 shr r13,7
1226 lea r12,QWORD PTR[r11*1+r11]
1227 sub rbx,r10
1228 sub rdx,r13
1229 and r9,rdi
1230 and r12,rdi
1231 and rbx,rbp
1232 and rdx,rbp
1233 xor r9,rbx
1234 xor r12,rdx
1235 mov r10,rsi
1236 mov r13,rsi
1238 and r10,r9
1239 and r13,r12
1240 mov rbx,r10
1241 mov rdx,r13
1242 shr r10,7
1243 xor r8,rax
1244 shr r13,7
1245 xor r11,rcx
1246 sub rbx,r10
1247 sub rdx,r13
1248 lea r10,QWORD PTR[r9*1+r9]
1249 lea r13,QWORD PTR[r12*1+r12]
1250 xor r9,rax
1251 xor r12,rcx
1252 and r10,rdi
1253 and r13,rdi
1254 and rbx,rbp
1255 and rdx,rbp
1256 xor r10,rbx
1257 xor r13,rdx
1259 xor rax,r10
1260 xor rcx,r13
1261 xor r8,r10
1262 xor r11,r13
1263 mov rbx,rax
1264 mov rdx,rcx
1265 xor r9,r10
1266 shr rbx,32
1267 xor r12,r13
1268 shr rdx,32
1269 xor r10,r8
1270 rol eax,8
1271 xor r13,r11
1272 rol ecx,8
1273 xor r10,r9
1274 rol ebx,8
1275 xor r13,r12
1277 rol edx,8
1278 xor eax,r10d
1279 shr r10,32
1280 xor ecx,r13d
1281 shr r13,32
1282 xor ebx,r10d
1283 xor edx,r13d
1285 mov r10,r8
1286 rol r8d,24
1287 mov r13,r11
1288 rol r11d,24
1289 shr r10,32
1290 xor eax,r8d
1291 shr r13,32
1292 xor ecx,r11d
1293 rol r10d,24
1294 mov r8,r9
1295 rol r13d,24
1296 mov r11,r12
1297 shr r8,32
1298 xor ebx,r10d
1299 shr r11,32
1300 xor edx,r13d
1303 rol r9d,16
1305 rol r12d,16
1307 rol r8d,16
1309 xor eax,r9d
1310 rol r11d,16
1311 xor ecx,r12d
1313 xor ebx,r8d
1314 xor edx,r11d
1315 mov DWORD PTR[r15],eax
1316 mov DWORD PTR[4+r15],ebx
1317 mov DWORD PTR[8+r15],ecx
1318 mov DWORD PTR[12+r15],edx
1319 sub r14d,1
1320 jnz $L$permute
1322 xor rax,rax
1323 $L$abort::
1324 mov r15,QWORD PTR[8+rsp]
1325 mov r14,QWORD PTR[16+rsp]
1326 mov r13,QWORD PTR[24+rsp]
1327 mov r12,QWORD PTR[32+rsp]
1328 mov rbp,QWORD PTR[40+rsp]
1329 mov rbx,QWORD PTR[48+rsp]
1330 add rsp,56
1331 $L$dec_key_epilogue::
1332 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
1333 mov rsi,QWORD PTR[16+rsp]
1334 DB 0F3h,0C3h ;repret
1335 $L$SEH_end_asm_AES_set_decrypt_key::
1336 asm_AES_set_decrypt_key ENDP
1337 ALIGN 16
1338 PUBLIC asm_AES_cbc_encrypt
1340 EXTERN OPENSSL_ia32cap_P:NEAR
1342 asm_AES_cbc_encrypt PROC PUBLIC
1343 mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
1344 mov QWORD PTR[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 PTR[40+rsp]
1352 mov r9,QWORD PTR[48+rsp]
1355 cmp rdx,0
1356 je $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::
1367 mov r9d,r9d
1369 lea r14,QWORD PTR[$L$AES_Te]
1370 cmp r9,0
1371 jne $L$cbc_picked_te
1372 lea r14,QWORD PTR[$L$AES_Td]
1373 $L$cbc_picked_te::
1375 mov r10d,DWORD PTR[OPENSSL_ia32cap_P]
1376 cmp rdx,512
1377 jb $L$cbc_slow_prologue
1378 test rdx,15
1379 jnz $L$cbc_slow_prologue
1380 bt r10d,28
1381 jc $L$cbc_slow_prologue
1384 lea r15,QWORD PTR[((-88-248))+rsp]
1385 and r15,-64
1388 mov r10,r14
1389 lea r11,QWORD PTR[2304+r14]
1390 mov r12,r15
1391 and r10,0FFFh
1392 and r11,0FFFh
1393 and r12,0FFFh
1395 cmp r12,r11
1396 jb $L$cbc_te_break_out
1397 sub r12,r11
1398 sub r15,r12
1399 jmp $L$cbc_te_ok
1400 $L$cbc_te_break_out::
1401 sub r12,r10
1402 and r12,0FFFh
1403 add r12,320
1404 sub r15,r12
1405 ALIGN 4
1406 $L$cbc_te_ok::
1408 xchg r15,rsp
1410 mov QWORD PTR[16+rsp],r15
1411 $L$cbc_fast_body::
1412 mov QWORD PTR[24+rsp],rdi
1413 mov QWORD PTR[32+rsp],rsi
1414 mov QWORD PTR[40+rsp],rdx
1415 mov QWORD PTR[48+rsp],rcx
1416 mov QWORD PTR[56+rsp],r8
1417 mov DWORD PTR[((80+240))+rsp],0
1418 mov rbp,r8
1419 mov rbx,r9
1420 mov r9,rsi
1421 mov r8,rdi
1422 mov r15,rcx
1424 mov eax,DWORD PTR[240+r15]
1426 mov r10,r15
1427 sub r10,r14
1428 and r10,0fffh
1429 cmp r10,2304
1430 jb $L$cbc_do_ecopy
1431 cmp r10,4096-248
1432 jb $L$cbc_skip_ecopy
1433 ALIGN 4
1434 $L$cbc_do_ecopy::
1435 mov rsi,r15
1436 lea rdi,QWORD PTR[80+rsp]
1437 lea r15,QWORD PTR[80+rsp]
1438 mov ecx,240/8
1439 DD 090A548F3h
1440 mov DWORD PTR[rdi],eax
1441 $L$cbc_skip_ecopy::
1442 mov QWORD PTR[rsp],r15
1444 mov ecx,18
1445 ALIGN 4
1446 $L$cbc_prefetch_te::
1447 mov r10,QWORD PTR[r14]
1448 mov r11,QWORD PTR[32+r14]
1449 mov r12,QWORD PTR[64+r14]
1450 mov r13,QWORD PTR[96+r14]
1451 lea r14,QWORD PTR[128+r14]
1452 sub ecx,1
1453 jnz $L$cbc_prefetch_te
1454 lea r14,QWORD PTR[((-2304))+r14]
1456 cmp rbx,0
1457 je $L$FAST_DECRYPT
1460 mov eax,DWORD PTR[rbp]
1461 mov ebx,DWORD PTR[4+rbp]
1462 mov ecx,DWORD PTR[8+rbp]
1463 mov edx,DWORD PTR[12+rbp]
1465 ALIGN 4
1466 $L$cbc_fast_enc_loop::
1467 xor eax,DWORD PTR[r8]
1468 xor ebx,DWORD PTR[4+r8]
1469 xor ecx,DWORD PTR[8+r8]
1470 xor edx,DWORD PTR[12+r8]
1471 mov r15,QWORD PTR[rsp]
1472 mov QWORD PTR[24+rsp],r8
1474 call _x86_64_AES_encrypt
1476 mov r8,QWORD PTR[24+rsp]
1477 mov r10,QWORD PTR[40+rsp]
1478 mov DWORD PTR[r9],eax
1479 mov DWORD PTR[4+r9],ebx
1480 mov DWORD PTR[8+r9],ecx
1481 mov DWORD PTR[12+r9],edx
1483 lea r8,QWORD PTR[16+r8]
1484 lea r9,QWORD PTR[16+r9]
1485 sub r10,16
1486 test r10,-16
1487 mov QWORD PTR[40+rsp],r10
1488 jnz $L$cbc_fast_enc_loop
1489 mov rbp,QWORD PTR[56+rsp]
1490 mov DWORD PTR[rbp],eax
1491 mov DWORD PTR[4+rbp],ebx
1492 mov DWORD PTR[8+rbp],ecx
1493 mov DWORD PTR[12+rbp],edx
1495 jmp $L$cbc_fast_cleanup
1498 ALIGN 16
1499 $L$FAST_DECRYPT::
1500 cmp r9,r8
1501 je $L$cbc_fast_dec_in_place
1503 mov QWORD PTR[64+rsp],rbp
1504 ALIGN 4
1505 $L$cbc_fast_dec_loop::
1506 mov eax,DWORD PTR[r8]
1507 mov ebx,DWORD PTR[4+r8]
1508 mov ecx,DWORD PTR[8+r8]
1509 mov edx,DWORD PTR[12+r8]
1510 mov r15,QWORD PTR[rsp]
1511 mov QWORD PTR[24+rsp],r8
1513 call _x86_64_AES_decrypt
1515 mov rbp,QWORD PTR[64+rsp]
1516 mov r8,QWORD PTR[24+rsp]
1517 mov r10,QWORD PTR[40+rsp]
1518 xor eax,DWORD PTR[rbp]
1519 xor ebx,DWORD PTR[4+rbp]
1520 xor ecx,DWORD PTR[8+rbp]
1521 xor edx,DWORD PTR[12+rbp]
1522 mov rbp,r8
1524 sub r10,16
1525 mov QWORD PTR[40+rsp],r10
1526 mov QWORD PTR[64+rsp],rbp
1528 mov DWORD PTR[r9],eax
1529 mov DWORD PTR[4+r9],ebx
1530 mov DWORD PTR[8+r9],ecx
1531 mov DWORD PTR[12+r9],edx
1533 lea r8,QWORD PTR[16+r8]
1534 lea r9,QWORD PTR[16+r9]
1535 jnz $L$cbc_fast_dec_loop
1536 mov r12,QWORD PTR[56+rsp]
1537 mov r10,QWORD PTR[rbp]
1538 mov r11,QWORD PTR[8+rbp]
1539 mov QWORD PTR[r12],r10
1540 mov QWORD PTR[8+r12],r11
1541 jmp $L$cbc_fast_cleanup
1543 ALIGN 16
1544 $L$cbc_fast_dec_in_place::
1545 mov r10,QWORD PTR[rbp]
1546 mov r11,QWORD PTR[8+rbp]
1547 mov QWORD PTR[((0+64))+rsp],r10
1548 mov QWORD PTR[((8+64))+rsp],r11
1549 ALIGN 4
1550 $L$cbc_fast_dec_in_place_loop::
1551 mov eax,DWORD PTR[r8]
1552 mov ebx,DWORD PTR[4+r8]
1553 mov ecx,DWORD PTR[8+r8]
1554 mov edx,DWORD PTR[12+r8]
1555 mov r15,QWORD PTR[rsp]
1556 mov QWORD PTR[24+rsp],r8
1558 call _x86_64_AES_decrypt
1560 mov r8,QWORD PTR[24+rsp]
1561 mov r10,QWORD PTR[40+rsp]
1562 xor eax,DWORD PTR[((0+64))+rsp]
1563 xor ebx,DWORD PTR[((4+64))+rsp]
1564 xor ecx,DWORD PTR[((8+64))+rsp]
1565 xor edx,DWORD PTR[((12+64))+rsp]
1567 mov r11,QWORD PTR[r8]
1568 mov r12,QWORD PTR[8+r8]
1569 sub r10,16
1570 jz $L$cbc_fast_dec_in_place_done
1572 mov QWORD PTR[((0+64))+rsp],r11
1573 mov QWORD PTR[((8+64))+rsp],r12
1575 mov DWORD PTR[r9],eax
1576 mov DWORD PTR[4+r9],ebx
1577 mov DWORD PTR[8+r9],ecx
1578 mov DWORD PTR[12+r9],edx
1580 lea r8,QWORD PTR[16+r8]
1581 lea r9,QWORD PTR[16+r9]
1582 mov QWORD PTR[40+rsp],r10
1583 jmp $L$cbc_fast_dec_in_place_loop
1584 $L$cbc_fast_dec_in_place_done::
1585 mov rdi,QWORD PTR[56+rsp]
1586 mov QWORD PTR[rdi],r11
1587 mov QWORD PTR[8+rdi],r12
1589 mov DWORD PTR[r9],eax
1590 mov DWORD PTR[4+r9],ebx
1591 mov DWORD PTR[8+r9],ecx
1592 mov DWORD PTR[12+r9],edx
1594 ALIGN 4
1595 $L$cbc_fast_cleanup::
1596 cmp DWORD PTR[((80+240))+rsp],0
1597 lea rdi,QWORD PTR[80+rsp]
1598 je $L$cbc_exit
1599 mov ecx,240/8
1600 xor rax,rax
1601 DD 090AB48F3h
1603 jmp $L$cbc_exit
1606 ALIGN 16
1607 $L$cbc_slow_prologue::
1609 lea rbp,QWORD PTR[((-88))+rsp]
1610 and rbp,-64
1612 lea r10,QWORD PTR[((-88-63))+rcx]
1613 sub r10,rbp
1614 neg r10
1615 and r10,03c0h
1616 sub rbp,r10
1618 xchg rbp,rsp
1620 mov QWORD PTR[16+rsp],rbp
1621 $L$cbc_slow_body::
1626 mov QWORD PTR[56+rsp],r8
1627 mov rbp,r8
1628 mov rbx,r9
1629 mov r9,rsi
1630 mov r8,rdi
1631 mov r15,rcx
1632 mov r10,rdx
1634 mov eax,DWORD PTR[240+r15]
1635 mov QWORD PTR[rsp],r15
1636 shl eax,4
1637 lea rax,QWORD PTR[rax*1+r15]
1638 mov QWORD PTR[8+rsp],rax
1641 lea r14,QWORD PTR[2048+r14]
1642 lea rax,QWORD PTR[((768-8))+rsp]
1643 sub rax,r14
1644 and rax,0300h
1645 lea r14,QWORD PTR[rax*1+r14]
1647 cmp rbx,0
1648 je $L$SLOW_DECRYPT
1651 test r10,-16
1652 mov eax,DWORD PTR[rbp]
1653 mov ebx,DWORD PTR[4+rbp]
1654 mov ecx,DWORD PTR[8+rbp]
1655 mov edx,DWORD PTR[12+rbp]
1656 jz $L$cbc_slow_enc_tail
1658 ALIGN 4
1659 $L$cbc_slow_enc_loop::
1660 xor eax,DWORD PTR[r8]
1661 xor ebx,DWORD PTR[4+r8]
1662 xor ecx,DWORD PTR[8+r8]
1663 xor edx,DWORD PTR[12+r8]
1664 mov r15,QWORD PTR[rsp]
1665 mov QWORD PTR[24+rsp],r8
1666 mov QWORD PTR[32+rsp],r9
1667 mov QWORD PTR[40+rsp],r10
1669 call _x86_64_AES_encrypt_compact
1671 mov r8,QWORD PTR[24+rsp]
1672 mov r9,QWORD PTR[32+rsp]
1673 mov r10,QWORD PTR[40+rsp]
1674 mov DWORD PTR[r9],eax
1675 mov DWORD PTR[4+r9],ebx
1676 mov DWORD PTR[8+r9],ecx
1677 mov DWORD PTR[12+r9],edx
1679 lea r8,QWORD PTR[16+r8]
1680 lea r9,QWORD PTR[16+r9]
1681 sub r10,16
1682 test r10,-16
1683 jnz $L$cbc_slow_enc_loop
1684 test r10,15
1685 jnz $L$cbc_slow_enc_tail
1686 mov rbp,QWORD PTR[56+rsp]
1687 mov DWORD PTR[rbp],eax
1688 mov DWORD PTR[4+rbp],ebx
1689 mov DWORD PTR[8+rbp],ecx
1690 mov DWORD PTR[12+rbp],edx
1692 jmp $L$cbc_exit
1694 ALIGN 4
1695 $L$cbc_slow_enc_tail::
1696 mov r11,rax
1697 mov r12,rcx
1698 mov rcx,r10
1699 mov rsi,r8
1700 mov rdi,r9
1701 DD 09066A4F3h
1702 mov rcx,16
1703 sub rcx,r10
1704 xor rax,rax
1705 DD 09066AAF3h
1706 mov r8,r9
1707 mov r10,16
1708 mov rax,r11
1709 mov rcx,r12
1710 jmp $L$cbc_slow_enc_loop
1712 ALIGN 16
1713 $L$SLOW_DECRYPT::
1714 shr rax,3
1715 add r14,rax
1717 mov r11,QWORD PTR[rbp]
1718 mov r12,QWORD PTR[8+rbp]
1719 mov QWORD PTR[((0+64))+rsp],r11
1720 mov QWORD PTR[((8+64))+rsp],r12
1722 ALIGN 4
1723 $L$cbc_slow_dec_loop::
1724 mov eax,DWORD PTR[r8]
1725 mov ebx,DWORD PTR[4+r8]
1726 mov ecx,DWORD PTR[8+r8]
1727 mov edx,DWORD PTR[12+r8]
1728 mov r15,QWORD PTR[rsp]
1729 mov QWORD PTR[24+rsp],r8
1730 mov QWORD PTR[32+rsp],r9
1731 mov QWORD PTR[40+rsp],r10
1733 call _x86_64_AES_decrypt_compact
1735 mov r8,QWORD PTR[24+rsp]
1736 mov r9,QWORD PTR[32+rsp]
1737 mov r10,QWORD PTR[40+rsp]
1738 xor eax,DWORD PTR[((0+64))+rsp]
1739 xor ebx,DWORD PTR[((4+64))+rsp]
1740 xor ecx,DWORD PTR[((8+64))+rsp]
1741 xor edx,DWORD PTR[((12+64))+rsp]
1743 mov r11,QWORD PTR[r8]
1744 mov r12,QWORD PTR[8+r8]
1745 sub r10,16
1746 jc $L$cbc_slow_dec_partial
1747 jz $L$cbc_slow_dec_done
1749 mov QWORD PTR[((0+64))+rsp],r11
1750 mov QWORD PTR[((8+64))+rsp],r12
1752 mov DWORD PTR[r9],eax
1753 mov DWORD PTR[4+r9],ebx
1754 mov DWORD PTR[8+r9],ecx
1755 mov DWORD PTR[12+r9],edx
1757 lea r8,QWORD PTR[16+r8]
1758 lea r9,QWORD PTR[16+r9]
1759 jmp $L$cbc_slow_dec_loop
1760 $L$cbc_slow_dec_done::
1761 mov rdi,QWORD PTR[56+rsp]
1762 mov QWORD PTR[rdi],r11
1763 mov QWORD PTR[8+rdi],r12
1765 mov DWORD PTR[r9],eax
1766 mov DWORD PTR[4+r9],ebx
1767 mov DWORD PTR[8+r9],ecx
1768 mov DWORD PTR[12+r9],edx
1770 jmp $L$cbc_exit
1772 ALIGN 4
1773 $L$cbc_slow_dec_partial::
1774 mov rdi,QWORD PTR[56+rsp]
1775 mov QWORD PTR[rdi],r11
1776 mov QWORD PTR[8+rdi],r12
1778 mov DWORD PTR[((0+64))+rsp],eax
1779 mov DWORD PTR[((4+64))+rsp],ebx
1780 mov DWORD PTR[((8+64))+rsp],ecx
1781 mov DWORD PTR[((12+64))+rsp],edx
1783 mov rdi,r9
1784 lea rsi,QWORD PTR[64+rsp]
1785 lea rcx,QWORD PTR[16+r10]
1786 DD 09066A4F3h
1787 jmp $L$cbc_exit
1789 ALIGN 16
1790 $L$cbc_exit::
1791 mov rsi,QWORD PTR[16+rsp]
1792 mov r15,QWORD PTR[rsi]
1793 mov r14,QWORD PTR[8+rsi]
1794 mov r13,QWORD PTR[16+rsi]
1795 mov r12,QWORD PTR[24+rsi]
1796 mov rbp,QWORD PTR[32+rsi]
1797 mov rbx,QWORD PTR[40+rsi]
1798 lea rsp,QWORD PTR[48+rsi]
1799 $L$cbc_popfq::
1800 popfq
1801 $L$cbc_epilogue::
1802 mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
1803 mov rsi,QWORD PTR[16+rsp]
1804 DB 0F3h,0C3h ;repret
1805 $L$SEH_end_asm_AES_cbc_encrypt::
1806 asm_AES_cbc_encrypt ENDP
1807 ALIGN 64
1808 $L$AES_Te::
1809 DD 0a56363c6h,0a56363c6h
1810 DD 0847c7cf8h,0847c7cf8h
1811 DD 0997777eeh,0997777eeh
1812 DD 08d7b7bf6h,08d7b7bf6h
1813 DD 00df2f2ffh,00df2f2ffh
1814 DD 0bd6b6bd6h,0bd6b6bd6h
1815 DD 0b16f6fdeh,0b16f6fdeh
1816 DD 054c5c591h,054c5c591h
1817 DD 050303060h,050303060h
1818 DD 003010102h,003010102h
1819 DD 0a96767ceh,0a96767ceh
1820 DD 07d2b2b56h,07d2b2b56h
1821 DD 019fefee7h,019fefee7h
1822 DD 062d7d7b5h,062d7d7b5h
1823 DD 0e6abab4dh,0e6abab4dh
1824 DD 09a7676ech,09a7676ech
1825 DD 045caca8fh,045caca8fh
1826 DD 09d82821fh,09d82821fh
1827 DD 040c9c989h,040c9c989h
1828 DD 0877d7dfah,0877d7dfah
1829 DD 015fafaefh,015fafaefh
1830 DD 0eb5959b2h,0eb5959b2h
1831 DD 0c947478eh,0c947478eh
1832 DD 00bf0f0fbh,00bf0f0fbh
1833 DD 0ecadad41h,0ecadad41h
1834 DD 067d4d4b3h,067d4d4b3h
1835 DD 0fda2a25fh,0fda2a25fh
1836 DD 0eaafaf45h,0eaafaf45h
1837 DD 0bf9c9c23h,0bf9c9c23h
1838 DD 0f7a4a453h,0f7a4a453h
1839 DD 0967272e4h,0967272e4h
1840 DD 05bc0c09bh,05bc0c09bh
1841 DD 0c2b7b775h,0c2b7b775h
1842 DD 01cfdfde1h,01cfdfde1h
1843 DD 0ae93933dh,0ae93933dh
1844 DD 06a26264ch,06a26264ch
1845 DD 05a36366ch,05a36366ch
1846 DD 0413f3f7eh,0413f3f7eh
1847 DD 002f7f7f5h,002f7f7f5h
1848 DD 04fcccc83h,04fcccc83h
1849 DD 05c343468h,05c343468h
1850 DD 0f4a5a551h,0f4a5a551h
1851 DD 034e5e5d1h,034e5e5d1h
1852 DD 008f1f1f9h,008f1f1f9h
1853 DD 0937171e2h,0937171e2h
1854 DD 073d8d8abh,073d8d8abh
1855 DD 053313162h,053313162h
1856 DD 03f15152ah,03f15152ah
1857 DD 00c040408h,00c040408h
1858 DD 052c7c795h,052c7c795h
1859 DD 065232346h,065232346h
1860 DD 05ec3c39dh,05ec3c39dh
1861 DD 028181830h,028181830h
1862 DD 0a1969637h,0a1969637h
1863 DD 00f05050ah,00f05050ah
1864 DD 0b59a9a2fh,0b59a9a2fh
1865 DD 00907070eh,00907070eh
1866 DD 036121224h,036121224h
1867 DD 09b80801bh,09b80801bh
1868 DD 03de2e2dfh,03de2e2dfh
1869 DD 026ebebcdh,026ebebcdh
1870 DD 06927274eh,06927274eh
1871 DD 0cdb2b27fh,0cdb2b27fh
1872 DD 09f7575eah,09f7575eah
1873 DD 01b090912h,01b090912h
1874 DD 09e83831dh,09e83831dh
1875 DD 0742c2c58h,0742c2c58h
1876 DD 02e1a1a34h,02e1a1a34h
1877 DD 02d1b1b36h,02d1b1b36h
1878 DD 0b26e6edch,0b26e6edch
1879 DD 0ee5a5ab4h,0ee5a5ab4h
1880 DD 0fba0a05bh,0fba0a05bh
1881 DD 0f65252a4h,0f65252a4h
1882 DD 04d3b3b76h,04d3b3b76h
1883 DD 061d6d6b7h,061d6d6b7h
1884 DD 0ceb3b37dh,0ceb3b37dh
1885 DD 07b292952h,07b292952h
1886 DD 03ee3e3ddh,03ee3e3ddh
1887 DD 0712f2f5eh,0712f2f5eh
1888 DD 097848413h,097848413h
1889 DD 0f55353a6h,0f55353a6h
1890 DD 068d1d1b9h,068d1d1b9h
1891 DD 000000000h,000000000h
1892 DD 02cededc1h,02cededc1h
1893 DD 060202040h,060202040h
1894 DD 01ffcfce3h,01ffcfce3h
1895 DD 0c8b1b179h,0c8b1b179h
1896 DD 0ed5b5bb6h,0ed5b5bb6h
1897 DD 0be6a6ad4h,0be6a6ad4h
1898 DD 046cbcb8dh,046cbcb8dh
1899 DD 0d9bebe67h,0d9bebe67h
1900 DD 04b393972h,04b393972h
1901 DD 0de4a4a94h,0de4a4a94h
1902 DD 0d44c4c98h,0d44c4c98h
1903 DD 0e85858b0h,0e85858b0h
1904 DD 04acfcf85h,04acfcf85h
1905 DD 06bd0d0bbh,06bd0d0bbh
1906 DD 02aefefc5h,02aefefc5h
1907 DD 0e5aaaa4fh,0e5aaaa4fh
1908 DD 016fbfbedh,016fbfbedh
1909 DD 0c5434386h,0c5434386h
1910 DD 0d74d4d9ah,0d74d4d9ah
1911 DD 055333366h,055333366h
1912 DD 094858511h,094858511h
1913 DD 0cf45458ah,0cf45458ah
1914 DD 010f9f9e9h,010f9f9e9h
1915 DD 006020204h,006020204h
1916 DD 0817f7ffeh,0817f7ffeh
1917 DD 0f05050a0h,0f05050a0h
1918 DD 0443c3c78h,0443c3c78h
1919 DD 0ba9f9f25h,0ba9f9f25h
1920 DD 0e3a8a84bh,0e3a8a84bh
1921 DD 0f35151a2h,0f35151a2h
1922 DD 0fea3a35dh,0fea3a35dh
1923 DD 0c0404080h,0c0404080h
1924 DD 08a8f8f05h,08a8f8f05h
1925 DD 0ad92923fh,0ad92923fh
1926 DD 0bc9d9d21h,0bc9d9d21h
1927 DD 048383870h,048383870h
1928 DD 004f5f5f1h,004f5f5f1h
1929 DD 0dfbcbc63h,0dfbcbc63h
1930 DD 0c1b6b677h,0c1b6b677h
1931 DD 075dadaafh,075dadaafh
1932 DD 063212142h,063212142h
1933 DD 030101020h,030101020h
1934 DD 01affffe5h,01affffe5h
1935 DD 00ef3f3fdh,00ef3f3fdh
1936 DD 06dd2d2bfh,06dd2d2bfh
1937 DD 04ccdcd81h,04ccdcd81h
1938 DD 0140c0c18h,0140c0c18h
1939 DD 035131326h,035131326h
1940 DD 02fececc3h,02fececc3h
1941 DD 0e15f5fbeh,0e15f5fbeh
1942 DD 0a2979735h,0a2979735h
1943 DD 0cc444488h,0cc444488h
1944 DD 03917172eh,03917172eh
1945 DD 057c4c493h,057c4c493h
1946 DD 0f2a7a755h,0f2a7a755h
1947 DD 0827e7efch,0827e7efch
1948 DD 0473d3d7ah,0473d3d7ah
1949 DD 0ac6464c8h,0ac6464c8h
1950 DD 0e75d5dbah,0e75d5dbah
1951 DD 02b191932h,02b191932h
1952 DD 0957373e6h,0957373e6h
1953 DD 0a06060c0h,0a06060c0h
1954 DD 098818119h,098818119h
1955 DD 0d14f4f9eh,0d14f4f9eh
1956 DD 07fdcdca3h,07fdcdca3h
1957 DD 066222244h,066222244h
1958 DD 07e2a2a54h,07e2a2a54h
1959 DD 0ab90903bh,0ab90903bh
1960 DD 08388880bh,08388880bh
1961 DD 0ca46468ch,0ca46468ch
1962 DD 029eeeec7h,029eeeec7h
1963 DD 0d3b8b86bh,0d3b8b86bh
1964 DD 03c141428h,03c141428h
1965 DD 079dedea7h,079dedea7h
1966 DD 0e25e5ebch,0e25e5ebch
1967 DD 01d0b0b16h,01d0b0b16h
1968 DD 076dbdbadh,076dbdbadh
1969 DD 03be0e0dbh,03be0e0dbh
1970 DD 056323264h,056323264h
1971 DD 04e3a3a74h,04e3a3a74h
1972 DD 01e0a0a14h,01e0a0a14h
1973 DD 0db494992h,0db494992h
1974 DD 00a06060ch,00a06060ch
1975 DD 06c242448h,06c242448h
1976 DD 0e45c5cb8h,0e45c5cb8h
1977 DD 05dc2c29fh,05dc2c29fh
1978 DD 06ed3d3bdh,06ed3d3bdh
1979 DD 0efacac43h,0efacac43h
1980 DD 0a66262c4h,0a66262c4h
1981 DD 0a8919139h,0a8919139h
1982 DD 0a4959531h,0a4959531h
1983 DD 037e4e4d3h,037e4e4d3h
1984 DD 08b7979f2h,08b7979f2h
1985 DD 032e7e7d5h,032e7e7d5h
1986 DD 043c8c88bh,043c8c88bh
1987 DD 05937376eh,05937376eh
1988 DD 0b76d6ddah,0b76d6ddah
1989 DD 08c8d8d01h,08c8d8d01h
1990 DD 064d5d5b1h,064d5d5b1h
1991 DD 0d24e4e9ch,0d24e4e9ch
1992 DD 0e0a9a949h,0e0a9a949h
1993 DD 0b46c6cd8h,0b46c6cd8h
1994 DD 0fa5656ach,0fa5656ach
1995 DD 007f4f4f3h,007f4f4f3h
1996 DD 025eaeacfh,025eaeacfh
1997 DD 0af6565cah,0af6565cah
1998 DD 08e7a7af4h,08e7a7af4h
1999 DD 0e9aeae47h,0e9aeae47h
2000 DD 018080810h,018080810h
2001 DD 0d5baba6fh,0d5baba6fh
2002 DD 0887878f0h,0887878f0h
2003 DD 06f25254ah,06f25254ah
2004 DD 0722e2e5ch,0722e2e5ch
2005 DD 0241c1c38h,0241c1c38h
2006 DD 0f1a6a657h,0f1a6a657h
2007 DD 0c7b4b473h,0c7b4b473h
2008 DD 051c6c697h,051c6c697h
2009 DD 023e8e8cbh,023e8e8cbh
2010 DD 07cdddda1h,07cdddda1h
2011 DD 09c7474e8h,09c7474e8h
2012 DD 0211f1f3eh,0211f1f3eh
2013 DD 0dd4b4b96h,0dd4b4b96h
2014 DD 0dcbdbd61h,0dcbdbd61h
2015 DD 0868b8b0dh,0868b8b0dh
2016 DD 0858a8a0fh,0858a8a0fh
2017 DD 0907070e0h,0907070e0h
2018 DD 0423e3e7ch,0423e3e7ch
2019 DD 0c4b5b571h,0c4b5b571h
2020 DD 0aa6666cch,0aa6666cch
2021 DD 0d8484890h,0d8484890h
2022 DD 005030306h,005030306h
2023 DD 001f6f6f7h,001f6f6f7h
2024 DD 0120e0e1ch,0120e0e1ch
2025 DD 0a36161c2h,0a36161c2h
2026 DD 05f35356ah,05f35356ah
2027 DD 0f95757aeh,0f95757aeh
2028 DD 0d0b9b969h,0d0b9b969h
2029 DD 091868617h,091868617h
2030 DD 058c1c199h,058c1c199h
2031 DD 0271d1d3ah,0271d1d3ah
2032 DD 0b99e9e27h,0b99e9e27h
2033 DD 038e1e1d9h,038e1e1d9h
2034 DD 013f8f8ebh,013f8f8ebh
2035 DD 0b398982bh,0b398982bh
2036 DD 033111122h,033111122h
2037 DD 0bb6969d2h,0bb6969d2h
2038 DD 070d9d9a9h,070d9d9a9h
2039 DD 0898e8e07h,0898e8e07h
2040 DD 0a7949433h,0a7949433h
2041 DD 0b69b9b2dh,0b69b9b2dh
2042 DD 0221e1e3ch,0221e1e3ch
2043 DD 092878715h,092878715h
2044 DD 020e9e9c9h,020e9e9c9h
2045 DD 049cece87h,049cece87h
2046 DD 0ff5555aah,0ff5555aah
2047 DD 078282850h,078282850h
2048 DD 07adfdfa5h,07adfdfa5h
2049 DD 08f8c8c03h,08f8c8c03h
2050 DD 0f8a1a159h,0f8a1a159h
2051 DD 080898909h,080898909h
2052 DD 0170d0d1ah,0170d0d1ah
2053 DD 0dabfbf65h,0dabfbf65h
2054 DD 031e6e6d7h,031e6e6d7h
2055 DD 0c6424284h,0c6424284h
2056 DD 0b86868d0h,0b86868d0h
2057 DD 0c3414182h,0c3414182h
2058 DD 0b0999929h,0b0999929h
2059 DD 0772d2d5ah,0772d2d5ah
2060 DD 0110f0f1eh,0110f0f1eh
2061 DD 0cbb0b07bh,0cbb0b07bh
2062 DD 0fc5454a8h,0fc5454a8h
2063 DD 0d6bbbb6dh,0d6bbbb6dh
2064 DD 03a16162ch,03a16162ch
2065 DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
2066 DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
2067 DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
2068 DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
2069 DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
2070 DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
2071 DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
2072 DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
2073 DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
2074 DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
2075 DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
2076 DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
2077 DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
2078 DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
2079 DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
2080 DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
2081 DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
2082 DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
2083 DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
2084 DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
2085 DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
2086 DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
2087 DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
2088 DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
2089 DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
2090 DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
2091 DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
2092 DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
2093 DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
2094 DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
2095 DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
2096 DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
2097 DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
2098 DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
2099 DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
2100 DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
2101 DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
2102 DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
2103 DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
2104 DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
2105 DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
2106 DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
2107 DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
2108 DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
2109 DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
2110 DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
2111 DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
2112 DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
2113 DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
2114 DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
2115 DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
2116 DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
2117 DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
2118 DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
2119 DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
2120 DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
2121 DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
2122 DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
2123 DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
2124 DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
2125 DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
2126 DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
2127 DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
2128 DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
2129 DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
2130 DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
2131 DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
2132 DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
2133 DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
2134 DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
2135 DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
2136 DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
2137 DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
2138 DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
2139 DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
2140 DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
2141 DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
2142 DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
2143 DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
2144 DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
2145 DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
2146 DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
2147 DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
2148 DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
2149 DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
2150 DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
2151 DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
2152 DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
2153 DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
2154 DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
2155 DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
2156 DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
2157 DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
2158 DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
2159 DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
2160 DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
2161 DB 063h,07ch,077h,07bh,0f2h,06bh,06fh,0c5h
2162 DB 030h,001h,067h,02bh,0feh,0d7h,0abh,076h
2163 DB 0cah,082h,0c9h,07dh,0fah,059h,047h,0f0h
2164 DB 0adh,0d4h,0a2h,0afh,09ch,0a4h,072h,0c0h
2165 DB 0b7h,0fdh,093h,026h,036h,03fh,0f7h,0cch
2166 DB 034h,0a5h,0e5h,0f1h,071h,0d8h,031h,015h
2167 DB 004h,0c7h,023h,0c3h,018h,096h,005h,09ah
2168 DB 007h,012h,080h,0e2h,0ebh,027h,0b2h,075h
2169 DB 009h,083h,02ch,01ah,01bh,06eh,05ah,0a0h
2170 DB 052h,03bh,0d6h,0b3h,029h,0e3h,02fh,084h
2171 DB 053h,0d1h,000h,0edh,020h,0fch,0b1h,05bh
2172 DB 06ah,0cbh,0beh,039h,04ah,04ch,058h,0cfh
2173 DB 0d0h,0efh,0aah,0fbh,043h,04dh,033h,085h
2174 DB 045h,0f9h,002h,07fh,050h,03ch,09fh,0a8h
2175 DB 051h,0a3h,040h,08fh,092h,09dh,038h,0f5h
2176 DB 0bch,0b6h,0dah,021h,010h,0ffh,0f3h,0d2h
2177 DB 0cdh,00ch,013h,0ech,05fh,097h,044h,017h
2178 DB 0c4h,0a7h,07eh,03dh,064h,05dh,019h,073h
2179 DB 060h,081h,04fh,0dch,022h,02ah,090h,088h
2180 DB 046h,0eeh,0b8h,014h,0deh,05eh,00bh,0dbh
2181 DB 0e0h,032h,03ah,00ah,049h,006h,024h,05ch
2182 DB 0c2h,0d3h,0ach,062h,091h,095h,0e4h,079h
2183 DB 0e7h,0c8h,037h,06dh,08dh,0d5h,04eh,0a9h
2184 DB 06ch,056h,0f4h,0eah,065h,07ah,0aeh,008h
2185 DB 0bah,078h,025h,02eh,01ch,0a6h,0b4h,0c6h
2186 DB 0e8h,0ddh,074h,01fh,04bh,0bdh,08bh,08ah
2187 DB 070h,03eh,0b5h,066h,048h,003h,0f6h,00eh
2188 DB 061h,035h,057h,0b9h,086h,0c1h,01dh,09eh
2189 DB 0e1h,0f8h,098h,011h,069h,0d9h,08eh,094h
2190 DB 09bh,01eh,087h,0e9h,0ceh,055h,028h,0dfh
2191 DB 08ch,0a1h,089h,00dh,0bfh,0e6h,042h,068h
2192 DB 041h,099h,02dh,00fh,0b0h,054h,0bbh,016h
2193 DD 000000001h,000000002h,000000004h,000000008h
2194 DD 000000010h,000000020h,000000040h,000000080h
2195 DD 00000001bh,000000036h,080808080h,080808080h
2196 DD 0fefefefeh,0fefefefeh,01b1b1b1bh,01b1b1b1bh
2197 ALIGN 64
2198 $L$AES_Td::
2199 DD 050a7f451h,050a7f451h
2200 DD 05365417eh,05365417eh
2201 DD 0c3a4171ah,0c3a4171ah
2202 DD 0965e273ah,0965e273ah
2203 DD 0cb6bab3bh,0cb6bab3bh
2204 DD 0f1459d1fh,0f1459d1fh
2205 DD 0ab58faach,0ab58faach
2206 DD 09303e34bh,09303e34bh
2207 DD 055fa3020h,055fa3020h
2208 DD 0f66d76adh,0f66d76adh
2209 DD 09176cc88h,09176cc88h
2210 DD 0254c02f5h,0254c02f5h
2211 DD 0fcd7e54fh,0fcd7e54fh
2212 DD 0d7cb2ac5h,0d7cb2ac5h
2213 DD 080443526h,080443526h
2214 DD 08fa362b5h,08fa362b5h
2215 DD 0495ab1deh,0495ab1deh
2216 DD 0671bba25h,0671bba25h
2217 DD 0980eea45h,0980eea45h
2218 DD 0e1c0fe5dh,0e1c0fe5dh
2219 DD 002752fc3h,002752fc3h
2220 DD 012f04c81h,012f04c81h
2221 DD 0a397468dh,0a397468dh
2222 DD 0c6f9d36bh,0c6f9d36bh
2223 DD 0e75f8f03h,0e75f8f03h
2224 DD 0959c9215h,0959c9215h
2225 DD 0eb7a6dbfh,0eb7a6dbfh
2226 DD 0da595295h,0da595295h
2227 DD 02d83bed4h,02d83bed4h
2228 DD 0d3217458h,0d3217458h
2229 DD 02969e049h,02969e049h
2230 DD 044c8c98eh,044c8c98eh
2231 DD 06a89c275h,06a89c275h
2232 DD 078798ef4h,078798ef4h
2233 DD 06b3e5899h,06b3e5899h
2234 DD 0dd71b927h,0dd71b927h
2235 DD 0b64fe1beh,0b64fe1beh
2236 DD 017ad88f0h,017ad88f0h
2237 DD 066ac20c9h,066ac20c9h
2238 DD 0b43ace7dh,0b43ace7dh
2239 DD 0184adf63h,0184adf63h
2240 DD 082311ae5h,082311ae5h
2241 DD 060335197h,060335197h
2242 DD 0457f5362h,0457f5362h
2243 DD 0e07764b1h,0e07764b1h
2244 DD 084ae6bbbh,084ae6bbbh
2245 DD 01ca081feh,01ca081feh
2246 DD 0942b08f9h,0942b08f9h
2247 DD 058684870h,058684870h
2248 DD 019fd458fh,019fd458fh
2249 DD 0876cde94h,0876cde94h
2250 DD 0b7f87b52h,0b7f87b52h
2251 DD 023d373abh,023d373abh
2252 DD 0e2024b72h,0e2024b72h
2253 DD 0578f1fe3h,0578f1fe3h
2254 DD 02aab5566h,02aab5566h
2255 DD 00728ebb2h,00728ebb2h
2256 DD 003c2b52fh,003c2b52fh
2257 DD 09a7bc586h,09a7bc586h
2258 DD 0a50837d3h,0a50837d3h
2259 DD 0f2872830h,0f2872830h
2260 DD 0b2a5bf23h,0b2a5bf23h
2261 DD 0ba6a0302h,0ba6a0302h
2262 DD 05c8216edh,05c8216edh
2263 DD 02b1ccf8ah,02b1ccf8ah
2264 DD 092b479a7h,092b479a7h
2265 DD 0f0f207f3h,0f0f207f3h
2266 DD 0a1e2694eh,0a1e2694eh
2267 DD 0cdf4da65h,0cdf4da65h
2268 DD 0d5be0506h,0d5be0506h
2269 DD 01f6234d1h,01f6234d1h
2270 DD 08afea6c4h,08afea6c4h
2271 DD 09d532e34h,09d532e34h
2272 DD 0a055f3a2h,0a055f3a2h
2273 DD 032e18a05h,032e18a05h
2274 DD 075ebf6a4h,075ebf6a4h
2275 DD 039ec830bh,039ec830bh
2276 DD 0aaef6040h,0aaef6040h
2277 DD 0069f715eh,0069f715eh
2278 DD 051106ebdh,051106ebdh
2279 DD 0f98a213eh,0f98a213eh
2280 DD 03d06dd96h,03d06dd96h
2281 DD 0ae053eddh,0ae053eddh
2282 DD 046bde64dh,046bde64dh
2283 DD 0b58d5491h,0b58d5491h
2284 DD 0055dc471h,0055dc471h
2285 DD 06fd40604h,06fd40604h
2286 DD 0ff155060h,0ff155060h
2287 DD 024fb9819h,024fb9819h
2288 DD 097e9bdd6h,097e9bdd6h
2289 DD 0cc434089h,0cc434089h
2290 DD 0779ed967h,0779ed967h
2291 DD 0bd42e8b0h,0bd42e8b0h
2292 DD 0888b8907h,0888b8907h
2293 DD 0385b19e7h,0385b19e7h
2294 DD 0dbeec879h,0dbeec879h
2295 DD 0470a7ca1h,0470a7ca1h
2296 DD 0e90f427ch,0e90f427ch
2297 DD 0c91e84f8h,0c91e84f8h
2298 DD 000000000h,000000000h
2299 DD 083868009h,083868009h
2300 DD 048ed2b32h,048ed2b32h
2301 DD 0ac70111eh,0ac70111eh
2302 DD 04e725a6ch,04e725a6ch
2303 DD 0fbff0efdh,0fbff0efdh
2304 DD 05638850fh,05638850fh
2305 DD 01ed5ae3dh,01ed5ae3dh
2306 DD 027392d36h,027392d36h
2307 DD 064d90f0ah,064d90f0ah
2308 DD 021a65c68h,021a65c68h
2309 DD 0d1545b9bh,0d1545b9bh
2310 DD 03a2e3624h,03a2e3624h
2311 DD 0b1670a0ch,0b1670a0ch
2312 DD 00fe75793h,00fe75793h
2313 DD 0d296eeb4h,0d296eeb4h
2314 DD 09e919b1bh,09e919b1bh
2315 DD 04fc5c080h,04fc5c080h
2316 DD 0a220dc61h,0a220dc61h
2317 DD 0694b775ah,0694b775ah
2318 DD 0161a121ch,0161a121ch
2319 DD 00aba93e2h,00aba93e2h
2320 DD 0e52aa0c0h,0e52aa0c0h
2321 DD 043e0223ch,043e0223ch
2322 DD 01d171b12h,01d171b12h
2323 DD 00b0d090eh,00b0d090eh
2324 DD 0adc78bf2h,0adc78bf2h
2325 DD 0b9a8b62dh,0b9a8b62dh
2326 DD 0c8a91e14h,0c8a91e14h
2327 DD 08519f157h,08519f157h
2328 DD 04c0775afh,04c0775afh
2329 DD 0bbdd99eeh,0bbdd99eeh
2330 DD 0fd607fa3h,0fd607fa3h
2331 DD 09f2601f7h,09f2601f7h
2332 DD 0bcf5725ch,0bcf5725ch
2333 DD 0c53b6644h,0c53b6644h
2334 DD 0347efb5bh,0347efb5bh
2335 DD 07629438bh,07629438bh
2336 DD 0dcc623cbh,0dcc623cbh
2337 DD 068fcedb6h,068fcedb6h
2338 DD 063f1e4b8h,063f1e4b8h
2339 DD 0cadc31d7h,0cadc31d7h
2340 DD 010856342h,010856342h
2341 DD 040229713h,040229713h
2342 DD 02011c684h,02011c684h
2343 DD 07d244a85h,07d244a85h
2344 DD 0f83dbbd2h,0f83dbbd2h
2345 DD 01132f9aeh,01132f9aeh
2346 DD 06da129c7h,06da129c7h
2347 DD 04b2f9e1dh,04b2f9e1dh
2348 DD 0f330b2dch,0f330b2dch
2349 DD 0ec52860dh,0ec52860dh
2350 DD 0d0e3c177h,0d0e3c177h
2351 DD 06c16b32bh,06c16b32bh
2352 DD 099b970a9h,099b970a9h
2353 DD 0fa489411h,0fa489411h
2354 DD 02264e947h,02264e947h
2355 DD 0c48cfca8h,0c48cfca8h
2356 DD 01a3ff0a0h,01a3ff0a0h
2357 DD 0d82c7d56h,0d82c7d56h
2358 DD 0ef903322h,0ef903322h
2359 DD 0c74e4987h,0c74e4987h
2360 DD 0c1d138d9h,0c1d138d9h
2361 DD 0fea2ca8ch,0fea2ca8ch
2362 DD 0360bd498h,0360bd498h
2363 DD 0cf81f5a6h,0cf81f5a6h
2364 DD 028de7aa5h,028de7aa5h
2365 DD 0268eb7dah,0268eb7dah
2366 DD 0a4bfad3fh,0a4bfad3fh
2367 DD 0e49d3a2ch,0e49d3a2ch
2368 DD 00d927850h,00d927850h
2369 DD 09bcc5f6ah,09bcc5f6ah
2370 DD 062467e54h,062467e54h
2371 DD 0c2138df6h,0c2138df6h
2372 DD 0e8b8d890h,0e8b8d890h
2373 DD 05ef7392eh,05ef7392eh
2374 DD 0f5afc382h,0f5afc382h
2375 DD 0be805d9fh,0be805d9fh
2376 DD 07c93d069h,07c93d069h
2377 DD 0a92dd56fh,0a92dd56fh
2378 DD 0b31225cfh,0b31225cfh
2379 DD 03b99acc8h,03b99acc8h
2380 DD 0a77d1810h,0a77d1810h
2381 DD 06e639ce8h,06e639ce8h
2382 DD 07bbb3bdbh,07bbb3bdbh
2383 DD 0097826cdh,0097826cdh
2384 DD 0f418596eh,0f418596eh
2385 DD 001b79aech,001b79aech
2386 DD 0a89a4f83h,0a89a4f83h
2387 DD 0656e95e6h,0656e95e6h
2388 DD 07ee6ffaah,07ee6ffaah
2389 DD 008cfbc21h,008cfbc21h
2390 DD 0e6e815efh,0e6e815efh
2391 DD 0d99be7bah,0d99be7bah
2392 DD 0ce366f4ah,0ce366f4ah
2393 DD 0d4099feah,0d4099feah
2394 DD 0d67cb029h,0d67cb029h
2395 DD 0afb2a431h,0afb2a431h
2396 DD 031233f2ah,031233f2ah
2397 DD 03094a5c6h,03094a5c6h
2398 DD 0c066a235h,0c066a235h
2399 DD 037bc4e74h,037bc4e74h
2400 DD 0a6ca82fch,0a6ca82fch
2401 DD 0b0d090e0h,0b0d090e0h
2402 DD 015d8a733h,015d8a733h
2403 DD 04a9804f1h,04a9804f1h
2404 DD 0f7daec41h,0f7daec41h
2405 DD 00e50cd7fh,00e50cd7fh
2406 DD 02ff69117h,02ff69117h
2407 DD 08dd64d76h,08dd64d76h
2408 DD 04db0ef43h,04db0ef43h
2409 DD 0544daacch,0544daacch
2410 DD 0df0496e4h,0df0496e4h
2411 DD 0e3b5d19eh,0e3b5d19eh
2412 DD 01b886a4ch,01b886a4ch
2413 DD 0b81f2cc1h,0b81f2cc1h
2414 DD 07f516546h,07f516546h
2415 DD 004ea5e9dh,004ea5e9dh
2416 DD 05d358c01h,05d358c01h
2417 DD 0737487fah,0737487fah
2418 DD 02e410bfbh,02e410bfbh
2419 DD 05a1d67b3h,05a1d67b3h
2420 DD 052d2db92h,052d2db92h
2421 DD 0335610e9h,0335610e9h
2422 DD 01347d66dh,01347d66dh
2423 DD 08c61d79ah,08c61d79ah
2424 DD 07a0ca137h,07a0ca137h
2425 DD 08e14f859h,08e14f859h
2426 DD 0893c13ebh,0893c13ebh
2427 DD 0ee27a9ceh,0ee27a9ceh
2428 DD 035c961b7h,035c961b7h
2429 DD 0ede51ce1h,0ede51ce1h
2430 DD 03cb1477ah,03cb1477ah
2431 DD 059dfd29ch,059dfd29ch
2432 DD 03f73f255h,03f73f255h
2433 DD 079ce1418h,079ce1418h
2434 DD 0bf37c773h,0bf37c773h
2435 DD 0eacdf753h,0eacdf753h
2436 DD 05baafd5fh,05baafd5fh
2437 DD 0146f3ddfh,0146f3ddfh
2438 DD 086db4478h,086db4478h
2439 DD 081f3afcah,081f3afcah
2440 DD 03ec468b9h,03ec468b9h
2441 DD 02c342438h,02c342438h
2442 DD 05f40a3c2h,05f40a3c2h
2443 DD 072c31d16h,072c31d16h
2444 DD 00c25e2bch,00c25e2bch
2445 DD 08b493c28h,08b493c28h
2446 DD 041950dffh,041950dffh
2447 DD 07101a839h,07101a839h
2448 DD 0deb30c08h,0deb30c08h
2449 DD 09ce4b4d8h,09ce4b4d8h
2450 DD 090c15664h,090c15664h
2451 DD 06184cb7bh,06184cb7bh
2452 DD 070b632d5h,070b632d5h
2453 DD 0745c6c48h,0745c6c48h
2454 DD 04257b8d0h,04257b8d0h
2455 DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
2456 DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
2457 DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
2458 DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
2459 DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
2460 DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
2461 DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
2462 DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
2463 DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
2464 DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
2465 DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
2466 DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
2467 DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
2468 DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
2469 DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
2470 DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
2471 DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
2472 DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
2473 DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
2474 DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
2475 DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
2476 DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
2477 DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
2478 DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
2479 DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
2480 DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
2481 DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
2482 DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
2483 DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
2484 DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
2485 DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
2486 DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
2487 DD 080808080h,080808080h,0fefefefeh,0fefefefeh
2488 DD 01b1b1b1bh,01b1b1b1bh,0,0
2489 DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
2490 DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
2491 DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
2492 DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
2493 DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
2494 DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
2495 DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
2496 DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
2497 DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
2498 DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
2499 DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
2500 DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
2501 DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
2502 DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
2503 DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
2504 DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
2505 DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
2506 DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
2507 DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
2508 DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
2509 DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
2510 DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
2511 DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
2512 DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
2513 DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
2514 DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
2515 DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
2516 DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
2517 DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
2518 DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
2519 DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
2520 DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
2521 DD 080808080h,080808080h,0fefefefeh,0fefefefeh
2522 DD 01b1b1b1bh,01b1b1b1bh,0,0
2523 DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
2524 DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
2525 DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
2526 DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
2527 DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
2528 DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
2529 DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
2530 DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
2531 DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
2532 DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
2533 DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
2534 DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
2535 DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
2536 DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
2537 DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
2538 DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
2539 DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
2540 DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
2541 DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
2542 DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
2543 DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
2544 DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
2545 DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
2546 DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
2547 DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
2548 DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
2549 DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
2550 DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
2551 DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
2552 DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
2553 DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
2554 DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
2555 DD 080808080h,080808080h,0fefefefeh,0fefefefeh
2556 DD 01b1b1b1bh,01b1b1b1bh,0,0
2557 DB 052h,009h,06ah,0d5h,030h,036h,0a5h,038h
2558 DB 0bfh,040h,0a3h,09eh,081h,0f3h,0d7h,0fbh
2559 DB 07ch,0e3h,039h,082h,09bh,02fh,0ffh,087h
2560 DB 034h,08eh,043h,044h,0c4h,0deh,0e9h,0cbh
2561 DB 054h,07bh,094h,032h,0a6h,0c2h,023h,03dh
2562 DB 0eeh,04ch,095h,00bh,042h,0fah,0c3h,04eh
2563 DB 008h,02eh,0a1h,066h,028h,0d9h,024h,0b2h
2564 DB 076h,05bh,0a2h,049h,06dh,08bh,0d1h,025h
2565 DB 072h,0f8h,0f6h,064h,086h,068h,098h,016h
2566 DB 0d4h,0a4h,05ch,0cch,05dh,065h,0b6h,092h
2567 DB 06ch,070h,048h,050h,0fdh,0edh,0b9h,0dah
2568 DB 05eh,015h,046h,057h,0a7h,08dh,09dh,084h
2569 DB 090h,0d8h,0abh,000h,08ch,0bch,0d3h,00ah
2570 DB 0f7h,0e4h,058h,005h,0b8h,0b3h,045h,006h
2571 DB 0d0h,02ch,01eh,08fh,0cah,03fh,00fh,002h
2572 DB 0c1h,0afh,0bdh,003h,001h,013h,08ah,06bh
2573 DB 03ah,091h,011h,041h,04fh,067h,0dch,0eah
2574 DB 097h,0f2h,0cfh,0ceh,0f0h,0b4h,0e6h,073h
2575 DB 096h,0ach,074h,022h,0e7h,0adh,035h,085h
2576 DB 0e2h,0f9h,037h,0e8h,01ch,075h,0dfh,06eh
2577 DB 047h,0f1h,01ah,071h,01dh,029h,0c5h,089h
2578 DB 06fh,0b7h,062h,00eh,0aah,018h,0beh,01bh
2579 DB 0fch,056h,03eh,04bh,0c6h,0d2h,079h,020h
2580 DB 09ah,0dbh,0c0h,0feh,078h,0cdh,05ah,0f4h
2581 DB 01fh,0ddh,0a8h,033h,088h,007h,0c7h,031h
2582 DB 0b1h,012h,010h,059h,027h,080h,0ech,05fh
2583 DB 060h,051h,07fh,0a9h,019h,0b5h,04ah,00dh
2584 DB 02dh,0e5h,07ah,09fh,093h,0c9h,09ch,0efh
2585 DB 0a0h,0e0h,03bh,04dh,0aeh,02ah,0f5h,0b0h
2586 DB 0c8h,0ebh,0bbh,03ch,083h,053h,099h,061h
2587 DB 017h,02bh,004h,07eh,0bah,077h,0d6h,026h
2588 DB 0e1h,069h,014h,063h,055h,021h,00ch,07dh
2589 DD 080808080h,080808080h,0fefefefeh,0fefefefeh
2590 DD 01b1b1b1bh,01b1b1b1bh,0,0
2591 DB 65,69,83,32,102,111,114,32,120,56,54,95,54,52,44,32
2592 DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97
2593 DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103
2594 DB 62,0
2595 ALIGN 64
2596 EXTERN __imp_RtlVirtualUnwind:NEAR
2598 ALIGN 16
2599 block_se_handler PROC PRIVATE
2600 push rsi
2601 push rdi
2602 push rbx
2603 push rbp
2604 push r12
2605 push r13
2606 push r14
2607 push r15
2608 pushfq
2609 sub rsp,64
2611 mov rax,QWORD PTR[120+r8]
2612 mov rbx,QWORD PTR[248+r8]
2614 mov rsi,QWORD PTR[8+r9]
2615 mov r11,QWORD PTR[56+r9]
2617 mov r10d,DWORD PTR[r11]
2618 lea r10,QWORD PTR[r10*1+rsi]
2619 cmp rbx,r10
2620 jb $L$in_block_prologue
2622 mov rax,QWORD PTR[152+r8]
2624 mov r10d,DWORD PTR[4+r11]
2625 lea r10,QWORD PTR[r10*1+rsi]
2626 cmp rbx,r10
2627 jae $L$in_block_prologue
2629 mov rax,QWORD PTR[24+rax]
2630 lea rax,QWORD PTR[48+rax]
2632 mov rbx,QWORD PTR[((-8))+rax]
2633 mov rbp,QWORD PTR[((-16))+rax]
2634 mov r12,QWORD PTR[((-24))+rax]
2635 mov r13,QWORD PTR[((-32))+rax]
2636 mov r14,QWORD PTR[((-40))+rax]
2637 mov r15,QWORD PTR[((-48))+rax]
2638 mov QWORD PTR[144+r8],rbx
2639 mov QWORD PTR[160+r8],rbp
2640 mov QWORD PTR[216+r8],r12
2641 mov QWORD PTR[224+r8],r13
2642 mov QWORD PTR[232+r8],r14
2643 mov QWORD PTR[240+r8],r15
2645 $L$in_block_prologue::
2646 mov rdi,QWORD PTR[8+rax]
2647 mov rsi,QWORD PTR[16+rax]
2648 mov QWORD PTR[152+r8],rax
2649 mov QWORD PTR[168+r8],rsi
2650 mov QWORD PTR[176+r8],rdi
2652 jmp $L$common_seh_exit
2653 block_se_handler ENDP
2656 ALIGN 16
2657 key_se_handler PROC PRIVATE
2658 push rsi
2659 push rdi
2660 push rbx
2661 push rbp
2662 push r12
2663 push r13
2664 push r14
2665 push r15
2666 pushfq
2667 sub rsp,64
2669 mov rax,QWORD PTR[120+r8]
2670 mov rbx,QWORD PTR[248+r8]
2672 mov rsi,QWORD PTR[8+r9]
2673 mov r11,QWORD PTR[56+r9]
2675 mov r10d,DWORD PTR[r11]
2676 lea r10,QWORD PTR[r10*1+rsi]
2677 cmp rbx,r10
2678 jb $L$in_key_prologue
2680 mov rax,QWORD PTR[152+r8]
2682 mov r10d,DWORD PTR[4+r11]
2683 lea r10,QWORD PTR[r10*1+rsi]
2684 cmp rbx,r10
2685 jae $L$in_key_prologue
2687 lea rax,QWORD PTR[56+rax]
2689 mov rbx,QWORD PTR[((-8))+rax]
2690 mov rbp,QWORD PTR[((-16))+rax]
2691 mov r12,QWORD PTR[((-24))+rax]
2692 mov r13,QWORD PTR[((-32))+rax]
2693 mov r14,QWORD PTR[((-40))+rax]
2694 mov r15,QWORD PTR[((-48))+rax]
2695 mov QWORD PTR[144+r8],rbx
2696 mov QWORD PTR[160+r8],rbp
2697 mov QWORD PTR[216+r8],r12
2698 mov QWORD PTR[224+r8],r13
2699 mov QWORD PTR[232+r8],r14
2700 mov QWORD PTR[240+r8],r15
2702 $L$in_key_prologue::
2703 mov rdi,QWORD PTR[8+rax]
2704 mov rsi,QWORD PTR[16+rax]
2705 mov QWORD PTR[152+r8],rax
2706 mov QWORD PTR[168+r8],rsi
2707 mov QWORD PTR[176+r8],rdi
2709 jmp $L$common_seh_exit
2710 key_se_handler ENDP
2713 ALIGN 16
2714 cbc_se_handler PROC PRIVATE
2715 push rsi
2716 push rdi
2717 push rbx
2718 push rbp
2719 push r12
2720 push r13
2721 push r14
2722 push r15
2723 pushfq
2724 sub rsp,64
2726 mov rax,QWORD PTR[120+r8]
2727 mov rbx,QWORD PTR[248+r8]
2729 lea r10,QWORD PTR[$L$cbc_prologue]
2730 cmp rbx,r10
2731 jb $L$in_cbc_prologue
2733 lea r10,QWORD PTR[$L$cbc_fast_body]
2734 cmp rbx,r10
2735 jb $L$in_cbc_frame_setup
2737 lea r10,QWORD PTR[$L$cbc_slow_prologue]
2738 cmp rbx,r10
2739 jb $L$in_cbc_body
2741 lea r10,QWORD PTR[$L$cbc_slow_body]
2742 cmp rbx,r10
2743 jb $L$in_cbc_frame_setup
2745 $L$in_cbc_body::
2746 mov rax,QWORD PTR[152+r8]
2748 lea r10,QWORD PTR[$L$cbc_epilogue]
2749 cmp rbx,r10
2750 jae $L$in_cbc_prologue
2752 lea rax,QWORD PTR[8+rax]
2754 lea r10,QWORD PTR[$L$cbc_popfq]
2755 cmp rbx,r10
2756 jae $L$in_cbc_prologue
2758 mov rax,QWORD PTR[8+rax]
2759 lea rax,QWORD PTR[56+rax]
2761 $L$in_cbc_frame_setup::
2762 mov rbx,QWORD PTR[((-16))+rax]
2763 mov rbp,QWORD PTR[((-24))+rax]
2764 mov r12,QWORD PTR[((-32))+rax]
2765 mov r13,QWORD PTR[((-40))+rax]
2766 mov r14,QWORD PTR[((-48))+rax]
2767 mov r15,QWORD PTR[((-56))+rax]
2768 mov QWORD PTR[144+r8],rbx
2769 mov QWORD PTR[160+r8],rbp
2770 mov QWORD PTR[216+r8],r12
2771 mov QWORD PTR[224+r8],r13
2772 mov QWORD PTR[232+r8],r14
2773 mov QWORD PTR[240+r8],r15
2775 $L$in_cbc_prologue::
2776 mov rdi,QWORD PTR[8+rax]
2777 mov rsi,QWORD PTR[16+rax]
2778 mov QWORD PTR[152+r8],rax
2779 mov QWORD PTR[168+r8],rsi
2780 mov QWORD PTR[176+r8],rdi
2782 $L$common_seh_exit::
2784 mov rdi,QWORD PTR[40+r9]
2785 mov rsi,r8
2786 mov ecx,154
2787 DD 0a548f3fch
2789 mov rsi,r9
2790 xor rcx,rcx
2791 mov rdx,QWORD PTR[8+rsi]
2792 mov r8,QWORD PTR[rsi]
2793 mov r9,QWORD PTR[16+rsi]
2794 mov r10,QWORD PTR[40+rsi]
2795 lea r11,QWORD PTR[56+rsi]
2796 lea r12,QWORD PTR[24+rsi]
2797 mov QWORD PTR[32+rsp],r10
2798 mov QWORD PTR[40+rsp],r11
2799 mov QWORD PTR[48+rsp],r12
2800 mov QWORD PTR[56+rsp],rcx
2801 call QWORD PTR[__imp_RtlVirtualUnwind]
2803 mov eax,1
2804 add rsp,64
2805 popfq
2806 pop r15
2807 pop r14
2808 pop r13
2809 pop r12
2810 pop rbp
2811 pop rbx
2812 pop rdi
2813 pop rsi
2814 DB 0F3h,0C3h ;repret
2815 cbc_se_handler ENDP
2817 .text$ ENDS
2818 .pdata SEGMENT READONLY ALIGN(4)
2819 ALIGN 4
2820 DD imagerel $L$SEH_begin_asm_AES_encrypt
2821 DD imagerel $L$SEH_end_asm_AES_encrypt
2822 DD imagerel $L$SEH_info_asm_AES_encrypt
2824 DD imagerel $L$SEH_begin_asm_AES_decrypt
2825 DD imagerel $L$SEH_end_asm_AES_decrypt
2826 DD imagerel $L$SEH_info_asm_AES_decrypt
2828 DD imagerel $L$SEH_begin_asm_AES_set_encrypt_key
2829 DD imagerel $L$SEH_end_asm_AES_set_encrypt_key
2830 DD imagerel $L$SEH_info_asm_AES_set_encrypt_key
2832 DD imagerel $L$SEH_begin_asm_AES_set_decrypt_key
2833 DD imagerel $L$SEH_end_asm_AES_set_decrypt_key
2834 DD imagerel $L$SEH_info_asm_AES_set_decrypt_key
2836 DD imagerel $L$SEH_begin_asm_AES_cbc_encrypt
2837 DD imagerel $L$SEH_end_asm_AES_cbc_encrypt
2838 DD imagerel $L$SEH_info_asm_AES_cbc_encrypt
2840 .pdata ENDS
2841 .xdata SEGMENT READONLY ALIGN(8)
2842 ALIGN 8
2843 $L$SEH_info_asm_AES_encrypt::
2844 DB 9,0,0,0
2845 DD imagerel block_se_handler
2846 DD imagerel $L$enc_prologue,imagerel $L$enc_epilogue
2847 $L$SEH_info_asm_AES_decrypt::
2848 DB 9,0,0,0
2849 DD imagerel block_se_handler
2850 DD imagerel $L$dec_prologue,imagerel $L$dec_epilogue
2851 $L$SEH_info_asm_AES_set_encrypt_key::
2852 DB 9,0,0,0
2853 DD imagerel key_se_handler
2854 DD imagerel $L$enc_key_prologue,imagerel $L$enc_key_epilogue
2855 $L$SEH_info_asm_AES_set_decrypt_key::
2856 DB 9,0,0,0
2857 DD imagerel key_se_handler
2858 DD imagerel $L$dec_key_prologue,imagerel $L$dec_key_epilogue
2859 $L$SEH_info_asm_AES_cbc_encrypt::
2860 DB 9,0,0,0
2861 DD imagerel cbc_se_handler
2863 .xdata ENDS