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