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

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

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

Powered by Google App Engine
This is Rietveld 408576698