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