summaryrefslogtreecommitdiff
path: root/src/lib/libssl/src/fips-1.0/aes/asm/fips-ax86-elf.s
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/src/fips-1.0/aes/asm/fips-ax86-elf.s')
-rw-r--r--src/lib/libssl/src/fips-1.0/aes/asm/fips-ax86-elf.s1711
1 files changed, 1711 insertions, 0 deletions
diff --git a/src/lib/libssl/src/fips-1.0/aes/asm/fips-ax86-elf.s b/src/lib/libssl/src/fips-1.0/aes/asm/fips-ax86-elf.s
new file mode 100644
index 0000000000..a3aa8fa9d9
--- /dev/null
+++ b/src/lib/libssl/src/fips-1.0/aes/asm/fips-ax86-elf.s
@@ -0,0 +1,1711 @@
1
2
3
4
5
6
7 .file "aes-586.s"
8.globl AES_Te
9.text
10.globl _x86_AES_encrypt
11.type _x86_AES_encrypt,@function
12.align 16
13_x86_AES_encrypt:
14 movl %edi, 12(%esp)
15 xorl (%edi), %eax
16 xorl 4(%edi), %ebx
17 xorl 8(%edi), %ecx
18 xorl 12(%edi), %edx
19 movl 240(%edi), %esi
20 leal -2(%esi,%esi), %esi
21 leal (%edi,%esi,8), %esi
22 movl %esi, 16(%esp)
23.align 4
24.L000loop:
25 movl %eax, %esi
26 andl $255, %esi
27 movl (%ebp,%esi,8), %esi
28 movzbl %bh, %edi
29 xorl 3(%ebp,%edi,8), %esi
30 movl %ecx, %edi
31 shrl $16, %edi
32 andl $255, %edi
33 xorl 2(%ebp,%edi,8), %esi
34 movl %edx, %edi
35 shrl $24, %edi
36 xorl 1(%ebp,%edi,8), %esi
37 movl %esi, 4(%esp)
38
39 movl %ebx, %esi
40 andl $255, %esi
41 shrl $16, %ebx
42 movl (%ebp,%esi,8), %esi
43 movzbl %ch, %edi
44 xorl 3(%ebp,%edi,8), %esi
45 movl %edx, %edi
46 shrl $16, %edi
47 andl $255, %edi
48 xorl 2(%ebp,%edi,8), %esi
49 movl %eax, %edi
50 shrl $24, %edi
51 xorl 1(%ebp,%edi,8), %esi
52 movl %esi, 8(%esp)
53
54 movl %ecx, %esi
55 andl $255, %esi
56 shrl $24, %ecx
57 movl (%ebp,%esi,8), %esi
58 movzbl %dh, %edi
59 xorl 3(%ebp,%edi,8), %esi
60 movl %eax, %edi
61 shrl $16, %edi
62 andl $255, %edx
63 andl $255, %edi
64 xorl 2(%ebp,%edi,8), %esi
65 movzbl %bh, %edi
66 xorl 1(%ebp,%edi,8), %esi
67
68 movl 12(%esp), %edi
69 movl (%ebp,%edx,8), %edx
70 movzbl %ah, %eax
71 xorl 3(%ebp,%eax,8), %edx
72 movl 4(%esp), %eax
73 andl $255, %ebx
74 xorl 2(%ebp,%ebx,8), %edx
75 movl 8(%esp), %ebx
76 xorl 1(%ebp,%ecx,8), %edx
77 movl %esi, %ecx
78
79 addl $16, %edi
80 xorl (%edi), %eax
81 xorl 4(%edi), %ebx
82 xorl 8(%edi), %ecx
83 xorl 12(%edi), %edx
84 cmpl 16(%esp), %edi
85 movl %edi, 12(%esp)
86 jb .L000loop
87 movl %eax, %esi
88 andl $255, %esi
89 movl 2(%ebp,%esi,8), %esi
90 andl $255, %esi
91 movzbl %bh, %edi
92 movl (%ebp,%edi,8), %edi
93 andl $65280, %edi
94 xorl %edi, %esi
95 movl %ecx, %edi
96 shrl $16, %edi
97 andl $255, %edi
98 movl (%ebp,%edi,8), %edi
99 andl $16711680, %edi
100 xorl %edi, %esi
101 movl %edx, %edi
102 shrl $24, %edi
103 movl 2(%ebp,%edi,8), %edi
104 andl $4278190080, %edi
105 xorl %edi, %esi
106 movl %esi, 4(%esp)
107 movl %ebx, %esi
108 andl $255, %esi
109 shrl $16, %ebx
110 movl 2(%ebp,%esi,8), %esi
111 andl $255, %esi
112 movzbl %ch, %edi
113 movl (%ebp,%edi,8), %edi
114 andl $65280, %edi
115 xorl %edi, %esi
116 movl %edx, %edi
117 shrl $16, %edi
118 andl $255, %edi
119 movl (%ebp,%edi,8), %edi
120 andl $16711680, %edi
121 xorl %edi, %esi
122 movl %eax, %edi
123 shrl $24, %edi
124 movl 2(%ebp,%edi,8), %edi
125 andl $4278190080, %edi
126 xorl %edi, %esi
127 movl %esi, 8(%esp)
128 movl %ecx, %esi
129 andl $255, %esi
130 shrl $24, %ecx
131 movl 2(%ebp,%esi,8), %esi
132 andl $255, %esi
133 movzbl %dh, %edi
134 movl (%ebp,%edi,8), %edi
135 andl $65280, %edi
136 xorl %edi, %esi
137 movl %eax, %edi
138 shrl $16, %edi
139 andl $255, %edx
140 andl $255, %edi
141 movl (%ebp,%edi,8), %edi
142 andl $16711680, %edi
143 xorl %edi, %esi
144 movzbl %bh, %edi
145 movl 2(%ebp,%edi,8), %edi
146 andl $4278190080, %edi
147 xorl %edi, %esi
148 movl 12(%esp), %edi
149 andl $255, %edx
150 movl 2(%ebp,%edx,8), %edx
151 andl $255, %edx
152 movzbl %ah, %eax
153 movl (%ebp,%eax,8), %eax
154 andl $65280, %eax
155 xorl %eax, %edx
156 movl 4(%esp), %eax
157 andl $255, %ebx
158 movl (%ebp,%ebx,8), %ebx
159 andl $16711680, %ebx
160 xorl %ebx, %edx
161 movl 8(%esp), %ebx
162 movl 2(%ebp,%ecx,8), %ecx
163 andl $4278190080, %ecx
164 xorl %ecx, %edx
165 movl %esi, %ecx
166 addl $16, %edi
167 xorl (%edi), %eax
168 xorl 4(%edi), %ebx
169 xorl 8(%edi), %ecx
170 xorl 12(%edi), %edx
171 ret
172.align 64
173AES_Te:
174 .long 2774754246,2774754246
175 .long 2222750968,2222750968
176 .long 2574743534,2574743534
177 .long 2373680118,2373680118
178 .long 234025727,234025727
179 .long 3177933782,3177933782
180 .long 2976870366,2976870366
181 .long 1422247313,1422247313
182 .long 1345335392,1345335392
183 .long 50397442,50397442
184 .long 2842126286,2842126286
185 .long 2099981142,2099981142
186 .long 436141799,436141799
187 .long 1658312629,1658312629
188 .long 3870010189,3870010189
189 .long 2591454956,2591454956
190 .long 1170918031,1170918031
191 .long 2642575903,2642575903
192 .long 1086966153,1086966153
193 .long 2273148410,2273148410
194 .long 368769775,368769775
195 .long 3948501426,3948501426
196 .long 3376891790,3376891790
197 .long 200339707,200339707
198 .long 3970805057,3970805057
199 .long 1742001331,1742001331
200 .long 4255294047,4255294047
201 .long 3937382213,3937382213
202 .long 3214711843,3214711843
203 .long 4154762323,4154762323
204 .long 2524082916,2524082916
205 .long 1539358875,1539358875
206 .long 3266819957,3266819957
207 .long 486407649,486407649
208 .long 2928907069,2928907069
209 .long 1780885068,1780885068
210 .long 1513502316,1513502316
211 .long 1094664062,1094664062
212 .long 49805301,49805301
213 .long 1338821763,1338821763
214 .long 1546925160,1546925160
215 .long 4104496465,4104496465
216 .long 887481809,887481809
217 .long 150073849,150073849
218 .long 2473685474,2473685474
219 .long 1943591083,1943591083
220 .long 1395732834,1395732834
221 .long 1058346282,1058346282
222 .long 201589768,201589768
223 .long 1388824469,1388824469
224 .long 1696801606,1696801606
225 .long 1589887901,1589887901
226 .long 672667696,672667696
227 .long 2711000631,2711000631
228 .long 251987210,251987210
229 .long 3046808111,3046808111
230 .long 151455502,151455502
231 .long 907153956,907153956
232 .long 2608889883,2608889883
233 .long 1038279391,1038279391
234 .long 652995533,652995533
235 .long 1764173646,1764173646
236 .long 3451040383,3451040383
237 .long 2675275242,2675275242
238 .long 453576978,453576978
239 .long 2659418909,2659418909
240 .long 1949051992,1949051992
241 .long 773462580,773462580
242 .long 756751158,756751158
243 .long 2993581788,2993581788
244 .long 3998898868,3998898868
245 .long 4221608027,4221608027
246 .long 4132590244,4132590244
247 .long 1295727478,1295727478
248 .long 1641469623,1641469623
249 .long 3467883389,3467883389
250 .long 2066295122,2066295122
251 .long 1055122397,1055122397
252 .long 1898917726,1898917726
253 .long 2542044179,2542044179
254 .long 4115878822,4115878822
255 .long 1758581177,1758581177
256 .long 0,0
257 .long 753790401,753790401
258 .long 1612718144,1612718144
259 .long 536673507,536673507
260 .long 3367088505,3367088505
261 .long 3982187446,3982187446
262 .long 3194645204,3194645204
263 .long 1187761037,1187761037
264 .long 3653156455,3653156455
265 .long 1262041458,1262041458
266 .long 3729410708,3729410708
267 .long 3561770136,3561770136
268 .long 3898103984,3898103984
269 .long 1255133061,1255133061
270 .long 1808847035,1808847035
271 .long 720367557,720367557
272 .long 3853167183,3853167183
273 .long 385612781,385612781
274 .long 3309519750,3309519750
275 .long 3612167578,3612167578
276 .long 1429418854,1429418854
277 .long 2491778321,2491778321
278 .long 3477423498,3477423498
279 .long 284817897,284817897
280 .long 100794884,100794884
281 .long 2172616702,2172616702
282 .long 4031795360,4031795360
283 .long 1144798328,1144798328
284 .long 3131023141,3131023141
285 .long 3819481163,3819481163
286 .long 4082192802,4082192802
287 .long 4272137053,4272137053
288 .long 3225436288,3225436288
289 .long 2324664069,2324664069
290 .long 2912064063,2912064063
291 .long 3164445985,3164445985
292 .long 1211644016,1211644016
293 .long 83228145,83228145
294 .long 3753688163,3753688163
295 .long 3249976951,3249976951
296 .long 1977277103,1977277103
297 .long 1663115586,1663115586
298 .long 806359072,806359072
299 .long 452984805,452984805
300 .long 250868733,250868733
301 .long 1842533055,1842533055
302 .long 1288555905,1288555905
303 .long 336333848,336333848
304 .long 890442534,890442534
305 .long 804056259,804056259
306 .long 3781124030,3781124030
307 .long 2727843637,2727843637
308 .long 3427026056,3427026056
309 .long 957814574,957814574
310 .long 1472513171,1472513171
311 .long 4071073621,4071073621
312 .long 2189328124,2189328124
313 .long 1195195770,1195195770
314 .long 2892260552,2892260552
315 .long 3881655738,3881655738
316 .long 723065138,723065138
317 .long 2507371494,2507371494
318 .long 2690670784,2690670784
319 .long 2558624025,2558624025
320 .long 3511635870,3511635870
321 .long 2145180835,2145180835
322 .long 1713513028,1713513028
323 .long 2116692564,2116692564
324 .long 2878378043,2878378043
325 .long 2206763019,2206763019
326 .long 3393603212,3393603212
327 .long 703524551,703524551
328 .long 3552098411,3552098411
329 .long 1007948840,1007948840
330 .long 2044649127,2044649127
331 .long 3797835452,3797835452
332 .long 487262998,487262998
333 .long 1994120109,1994120109
334 .long 1004593371,1004593371
335 .long 1446130276,1446130276
336 .long 1312438900,1312438900
337 .long 503974420,503974420
338 .long 3679013266,3679013266
339 .long 168166924,168166924
340 .long 1814307912,1814307912
341 .long 3831258296,3831258296
342 .long 1573044895,1573044895
343 .long 1859376061,1859376061
344 .long 4021070915,4021070915
345 .long 2791465668,2791465668
346 .long 2828112185,2828112185
347 .long 2761266481,2761266481
348 .long 937747667,937747667
349 .long 2339994098,2339994098
350 .long 854058965,854058965
351 .long 1137232011,1137232011
352 .long 1496790894,1496790894
353 .long 3077402074,3077402074
354 .long 2358086913,2358086913
355 .long 1691735473,1691735473
356 .long 3528347292,3528347292
357 .long 3769215305,3769215305
358 .long 3027004632,3027004632
359 .long 4199962284,4199962284
360 .long 133494003,133494003
361 .long 636152527,636152527
362 .long 2942657994,2942657994
363 .long 2390391540,2390391540
364 .long 3920539207,3920539207
365 .long 403179536,403179536
366 .long 3585784431,3585784431
367 .long 2289596656,2289596656
368 .long 1864705354,1864705354
369 .long 1915629148,1915629148
370 .long 605822008,605822008
371 .long 4054230615,4054230615
372 .long 3350508659,3350508659
373 .long 1371981463,1371981463
374 .long 602466507,602466507
375 .long 2094914977,2094914977
376 .long 2624877800,2624877800
377 .long 555687742,555687742
378 .long 3712699286,3712699286
379 .long 3703422305,3703422305
380 .long 2257292045,2257292045
381 .long 2240449039,2240449039
382 .long 2423288032,2423288032
383 .long 1111375484,1111375484
384 .long 3300242801,3300242801
385 .long 2858837708,2858837708
386 .long 3628615824,3628615824
387 .long 84083462,84083462
388 .long 32962295,32962295
389 .long 302911004,302911004
390 .long 2741068226,2741068226
391 .long 1597322602,1597322602
392 .long 4183250862,4183250862
393 .long 3501832553,3501832553
394 .long 2441512471,2441512471
395 .long 1489093017,1489093017
396 .long 656219450,656219450
397 .long 3114180135,3114180135
398 .long 954327513,954327513
399 .long 335083755,335083755
400 .long 3013122091,3013122091
401 .long 856756514,856756514
402 .long 3144247762,3144247762
403 .long 1893325225,1893325225
404 .long 2307821063,2307821063
405 .long 2811532339,2811532339
406 .long 3063651117,3063651117
407 .long 572399164,572399164
408 .long 2458355477,2458355477
409 .long 552200649,552200649
410 .long 1238290055,1238290055
411 .long 4283782570,4283782570
412 .long 2015897680,2015897680
413 .long 2061492133,2061492133
414 .long 2408352771,2408352771
415 .long 4171342169,4171342169
416 .long 2156497161,2156497161
417 .long 386731290,386731290
418 .long 3669999461,3669999461
419 .long 837215959,837215959
420 .long 3326231172,3326231172
421 .long 3093850320,3093850320
422 .long 3275833730,3275833730
423 .long 2962856233,2962856233
424 .long 1999449434,1999449434
425 .long 286199582,286199582
426 .long 3417354363,3417354363
427 .long 4233385128,4233385128
428 .long 3602627437,3602627437
429 .long 974525996,974525996
430 .long 1,2,4,8
431 .long 16,32,64,128
432 .long 27,54,0,0,
433 .long 0,0,0,0
434.L__x86_AES_encrypt_end:
435.size _x86_AES_encrypt,.L__x86_AES_encrypt_end-_x86_AES_encrypt
436.ident "_x86_AES_encrypt"
437.globl AES_Te
438.text
439.globl AES_encrypt
440.type AES_encrypt,@function
441.align 16
442AES_encrypt:
443 pushl %ebp
444 pushl %ebx
445 pushl %esi
446 pushl %edi
447
448 movl 20(%esp), %esi
449 movl 28(%esp), %edi
450 movl %esp, %eax
451 subl $24, %esp
452 andl $-64, %esp
453 addl $4, %esp
454 movl %eax, 16(%esp)
455 call .L001pic_point
456.L001pic_point:
457 popl %ebp
458 leal AES_Te-.L001pic_point(%ebp),%ebp
459 movl (%esi), %eax
460 movl 4(%esi), %ebx
461 movl 8(%esi), %ecx
462 movl 12(%esi), %edx
463 call _x86_AES_encrypt
464 movl 16(%esp), %esp
465 movl 24(%esp), %esi
466 movl %eax, (%esi)
467 movl %ebx, 4(%esi)
468 movl %ecx, 8(%esi)
469 movl %edx, 12(%esi)
470 popl %edi
471 popl %esi
472 popl %ebx
473 popl %ebp
474 ret
475.L_AES_encrypt_end:
476.size AES_encrypt,.L_AES_encrypt_end-AES_encrypt
477.ident "AES_encrypt"
478.globl AES_Td
479.text
480.globl _x86_AES_decrypt
481.type _x86_AES_decrypt,@function
482.align 16
483_x86_AES_decrypt:
484 movl %edi, 12(%esp)
485 xorl (%edi), %eax
486 xorl 4(%edi), %ebx
487 xorl 8(%edi), %ecx
488 xorl 12(%edi), %edx
489 movl 240(%edi), %esi
490 leal -2(%esi,%esi), %esi
491 leal (%edi,%esi,8), %esi
492 movl %esi, 16(%esp)
493.align 4
494.L002loop:
495 movl %eax, %esi
496 andl $255, %esi
497 movl (%ebp,%esi,8), %esi
498 movzbl %dh, %edi
499 xorl 3(%ebp,%edi,8), %esi
500 movl %ecx, %edi
501 shrl $16, %edi
502 andl $255, %edi
503 xorl 2(%ebp,%edi,8), %esi
504 movl %ebx, %edi
505 shrl $24, %edi
506 xorl 1(%ebp,%edi,8), %esi
507 movl %esi, 4(%esp)
508
509 movl %ebx, %esi
510 andl $255, %esi
511 movl (%ebp,%esi,8), %esi
512 movzbl %ah, %edi
513 xorl 3(%ebp,%edi,8), %esi
514 movl %edx, %edi
515 shrl $16, %edi
516 andl $255, %edi
517 xorl 2(%ebp,%edi,8), %esi
518 movl %ecx, %edi
519 shrl $24, %edi
520 xorl 1(%ebp,%edi,8), %esi
521 movl %esi, 8(%esp)
522
523 movl %ecx, %esi
524 andl $255, %esi
525 movl (%ebp,%esi,8), %esi
526 movzbl %bh, %edi
527 xorl 3(%ebp,%edi,8), %esi
528 movl %eax, %edi
529 shrl $16, %edi
530 andl $255, %edi
531 xorl 2(%ebp,%edi,8), %esi
532 movl %edx, %edi
533 shrl $24, %edi
534 xorl 1(%ebp,%edi,8), %esi
535
536 movl 12(%esp), %edi
537 andl $255, %edx
538 movl (%ebp,%edx,8), %edx
539 movzbl %ch, %ecx
540 xorl 3(%ebp,%ecx,8), %edx
541 movl %esi, %ecx
542 shrl $16, %ebx
543 andl $255, %ebx
544 xorl 2(%ebp,%ebx,8), %edx
545 movl 8(%esp), %ebx
546 shrl $24, %eax
547 xorl 1(%ebp,%eax,8), %edx
548 movl 4(%esp), %eax
549
550 addl $16, %edi
551 xorl (%edi), %eax
552 xorl 4(%edi), %ebx
553 xorl 8(%edi), %ecx
554 xorl 12(%edi), %edx
555 cmpl 16(%esp), %edi
556 movl %edi, 12(%esp)
557 jb .L002loop
558 movl %eax, %esi
559 andl $255, %esi
560 movl 2048(%ebp,%esi,4),%esi
561 andl $255, %esi
562 movzbl %dh, %edi
563 movl 2048(%ebp,%edi,4),%edi
564 andl $65280, %edi
565 xorl %edi, %esi
566 movl %ecx, %edi
567 shrl $16, %edi
568 andl $255, %edi
569 movl 2048(%ebp,%edi,4),%edi
570 andl $16711680, %edi
571 xorl %edi, %esi
572 movl %ebx, %edi
573 shrl $24, %edi
574 movl 2048(%ebp,%edi,4),%edi
575 andl $4278190080, %edi
576 xorl %edi, %esi
577 movl %esi, 4(%esp)
578 movl %ebx, %esi
579 andl $255, %esi
580 movl 2048(%ebp,%esi,4),%esi
581 andl $255, %esi
582 movzbl %ah, %edi
583 movl 2048(%ebp,%edi,4),%edi
584 andl $65280, %edi
585 xorl %edi, %esi
586 movl %edx, %edi
587 shrl $16, %edi
588 andl $255, %edi
589 movl 2048(%ebp,%edi,4),%edi
590 andl $16711680, %edi
591 xorl %edi, %esi
592 movl %ecx, %edi
593 shrl $24, %edi
594 movl 2048(%ebp,%edi,4),%edi
595 andl $4278190080, %edi
596 xorl %edi, %esi
597 movl %esi, 8(%esp)
598 movl %ecx, %esi
599 andl $255, %esi
600 movl 2048(%ebp,%esi,4),%esi
601 andl $255, %esi
602 movzbl %bh, %edi
603 movl 2048(%ebp,%edi,4),%edi
604 andl $65280, %edi
605 xorl %edi, %esi
606 movl %eax, %edi
607 shrl $16, %edi
608 andl $255, %edi
609 movl 2048(%ebp,%edi,4),%edi
610 andl $16711680, %edi
611 xorl %edi, %esi
612 movl %edx, %edi
613 shrl $24, %edi
614 movl 2048(%ebp,%edi,4),%edi
615 andl $4278190080, %edi
616 xorl %edi, %esi
617 movl 12(%esp), %edi
618 andl $255, %edx
619 movl 2048(%ebp,%edx,4),%edx
620 andl $255, %edx
621 movzbl %ch, %ecx
622 movl 2048(%ebp,%ecx,4),%ecx
623 andl $65280, %ecx
624 xorl %ecx, %edx
625 movl %esi, %ecx
626 shrl $16, %ebx
627 andl $255, %ebx
628 movl 2048(%ebp,%ebx,4),%ebx
629 andl $16711680, %ebx
630 xorl %ebx, %edx
631 movl 8(%esp), %ebx
632 shrl $24, %eax
633 movl 2048(%ebp,%eax,4),%eax
634 andl $4278190080, %eax
635 xorl %eax, %edx
636 movl 4(%esp), %eax
637 addl $16, %edi
638 xorl (%edi), %eax
639 xorl 4(%edi), %ebx
640 xorl 8(%edi), %ecx
641 xorl 12(%edi), %edx
642 ret
643.align 64
644AES_Td:
645 .long 1353184337,1353184337
646 .long 1399144830,1399144830
647 .long 3282310938,3282310938
648 .long 2522752826,2522752826
649 .long 3412831035,3412831035
650 .long 4047871263,4047871263
651 .long 2874735276,2874735276
652 .long 2466505547,2466505547
653 .long 1442459680,1442459680
654 .long 4134368941,4134368941
655 .long 2440481928,2440481928
656 .long 625738485,625738485
657 .long 4242007375,4242007375
658 .long 3620416197,3620416197
659 .long 2151953702,2151953702
660 .long 2409849525,2409849525
661 .long 1230680542,1230680542
662 .long 1729870373,1729870373
663 .long 2551114309,2551114309
664 .long 3787521629,3787521629
665 .long 41234371,41234371
666 .long 317738113,317738113
667 .long 2744600205,2744600205
668 .long 3338261355,3338261355
669 .long 3881799427,3881799427
670 .long 2510066197,2510066197
671 .long 3950669247,3950669247
672 .long 3663286933,3663286933
673 .long 763608788,763608788
674 .long 3542185048,3542185048
675 .long 694804553,694804553
676 .long 1154009486,1154009486
677 .long 1787413109,1787413109
678 .long 2021232372,2021232372
679 .long 1799248025,1799248025
680 .long 3715217703,3715217703
681 .long 3058688446,3058688446
682 .long 397248752,397248752
683 .long 1722556617,1722556617
684 .long 3023752829,3023752829
685 .long 407560035,407560035
686 .long 2184256229,2184256229
687 .long 1613975959,1613975959
688 .long 1165972322,1165972322
689 .long 3765920945,3765920945
690 .long 2226023355,2226023355
691 .long 480281086,480281086
692 .long 2485848313,2485848313
693 .long 1483229296,1483229296
694 .long 436028815,436028815
695 .long 2272059028,2272059028
696 .long 3086515026,3086515026
697 .long 601060267,601060267
698 .long 3791801202,3791801202
699 .long 1468997603,1468997603
700 .long 715871590,715871590
701 .long 120122290,120122290
702 .long 63092015,63092015
703 .long 2591802758,2591802758
704 .long 2768779219,2768779219
705 .long 4068943920,4068943920
706 .long 2997206819,2997206819
707 .long 3127509762,3127509762
708 .long 1552029421,1552029421
709 .long 723308426,723308426
710 .long 2461301159,2461301159
711 .long 4042393587,4042393587
712 .long 2715969870,2715969870
713 .long 3455375973,3455375973
714 .long 3586000134,3586000134
715 .long 526529745,526529745
716 .long 2331944644,2331944644
717 .long 2639474228,2639474228
718 .long 2689987490,2689987490
719 .long 853641733,853641733
720 .long 1978398372,1978398372
721 .long 971801355,971801355
722 .long 2867814464,2867814464
723 .long 111112542,111112542
724 .long 1360031421,1360031421
725 .long 4186579262,4186579262
726 .long 1023860118,1023860118
727 .long 2919579357,2919579357
728 .long 1186850381,1186850381
729 .long 3045938321,3045938321
730 .long 90031217,90031217
731 .long 1876166148,1876166148
732 .long 4279586912,4279586912
733 .long 620468249,620468249
734 .long 2548678102,2548678102
735 .long 3426959497,3426959497
736 .long 2006899047,2006899047
737 .long 3175278768,3175278768
738 .long 2290845959,2290845959
739 .long 945494503,945494503
740 .long 3689859193,3689859193
741 .long 1191869601,1191869601
742 .long 3910091388,3910091388
743 .long 3374220536,3374220536
744 .long 0,0
745 .long 2206629897,2206629897
746 .long 1223502642,1223502642
747 .long 2893025566,2893025566
748 .long 1316117100,1316117100
749 .long 4227796733,4227796733
750 .long 1446544655,1446544655
751 .long 517320253,517320253
752 .long 658058550,658058550
753 .long 1691946762,1691946762
754 .long 564550760,564550760
755 .long 3511966619,3511966619
756 .long 976107044,976107044
757 .long 2976320012,2976320012
758 .long 266819475,266819475
759 .long 3533106868,3533106868
760 .long 2660342555,2660342555
761 .long 1338359936,1338359936
762 .long 2720062561,2720062561
763 .long 1766553434,1766553434
764 .long 370807324,370807324
765 .long 179999714,179999714
766 .long 3844776128,3844776128
767 .long 1138762300,1138762300
768 .long 488053522,488053522
769 .long 185403662,185403662
770 .long 2915535858,2915535858
771 .long 3114841645,3114841645
772 .long 3366526484,3366526484
773 .long 2233069911,2233069911
774 .long 1275557295,1275557295
775 .long 3151862254,3151862254
776 .long 4250959779,4250959779
777 .long 2670068215,2670068215
778 .long 3170202204,3170202204
779 .long 3309004356,3309004356
780 .long 880737115,880737115
781 .long 1982415755,1982415755
782 .long 3703972811,3703972811
783 .long 1761406390,1761406390
784 .long 1676797112,1676797112
785 .long 3403428311,3403428311
786 .long 277177154,277177154
787 .long 1076008723,1076008723
788 .long 538035844,538035844
789 .long 2099530373,2099530373
790 .long 4164795346,4164795346
791 .long 288553390,288553390
792 .long 1839278535,1839278535
793 .long 1261411869,1261411869
794 .long 4080055004,4080055004
795 .long 3964831245,3964831245
796 .long 3504587127,3504587127
797 .long 1813426987,1813426987
798 .long 2579067049,2579067049
799 .long 4199060497,4199060497
800 .long 577038663,577038663
801 .long 3297574056,3297574056
802 .long 440397984,440397984
803 .long 3626794326,3626794326
804 .long 4019204898,4019204898
805 .long 3343796615,3343796615
806 .long 3251714265,3251714265
807 .long 4272081548,4272081548
808 .long 906744984,906744984
809 .long 3481400742,3481400742
810 .long 685669029,685669029
811 .long 646887386,646887386
812 .long 2764025151,2764025151
813 .long 3835509292,3835509292
814 .long 227702864,227702864
815 .long 2613862250,2613862250
816 .long 1648787028,1648787028
817 .long 3256061430,3256061430
818 .long 3904428176,3904428176
819 .long 1593260334,1593260334
820 .long 4121936770,4121936770
821 .long 3196083615,3196083615
822 .long 2090061929,2090061929
823 .long 2838353263,2838353263
824 .long 3004310991,3004310991
825 .long 999926984,999926984
826 .long 2809993232,2809993232
827 .long 1852021992,1852021992
828 .long 2075868123,2075868123
829 .long 158869197,158869197
830 .long 4095236462,4095236462
831 .long 28809964,28809964
832 .long 2828685187,2828685187
833 .long 1701746150,1701746150
834 .long 2129067946,2129067946
835 .long 147831841,147831841
836 .long 3873969647,3873969647
837 .long 3650873274,3650873274
838 .long 3459673930,3459673930
839 .long 3557400554,3557400554
840 .long 3598495785,3598495785
841 .long 2947720241,2947720241
842 .long 824393514,824393514
843 .long 815048134,815048134
844 .long 3227951669,3227951669
845 .long 935087732,935087732
846 .long 2798289660,2798289660
847 .long 2966458592,2966458592
848 .long 366520115,366520115
849 .long 1251476721,1251476721
850 .long 4158319681,4158319681
851 .long 240176511,240176511
852 .long 804688151,804688151
853 .long 2379631990,2379631990
854 .long 1303441219,1303441219
855 .long 1414376140,1414376140
856 .long 3741619940,3741619940
857 .long 3820343710,3820343710
858 .long 461924940,461924940
859 .long 3089050817,3089050817
860 .long 2136040774,2136040774
861 .long 82468509,82468509
862 .long 1563790337,1563790337
863 .long 1937016826,1937016826
864 .long 776014843,776014843
865 .long 1511876531,1511876531
866 .long 1389550482,1389550482
867 .long 861278441,861278441
868 .long 323475053,323475053
869 .long 2355222426,2355222426
870 .long 2047648055,2047648055
871 .long 2383738969,2383738969
872 .long 2302415851,2302415851
873 .long 3995576782,3995576782
874 .long 902390199,902390199
875 .long 3991215329,3991215329
876 .long 1018251130,1018251130
877 .long 1507840668,1507840668
878 .long 1064563285,1064563285
879 .long 2043548696,2043548696
880 .long 3208103795,3208103795
881 .long 3939366739,3939366739
882 .long 1537932639,1537932639
883 .long 342834655,342834655
884 .long 2262516856,2262516856
885 .long 2180231114,2180231114
886 .long 1053059257,1053059257
887 .long 741614648,741614648
888 .long 1598071746,1598071746
889 .long 1925389590,1925389590
890 .long 203809468,203809468
891 .long 2336832552,2336832552
892 .long 1100287487,1100287487
893 .long 1895934009,1895934009
894 .long 3736275976,3736275976
895 .long 2632234200,2632234200
896 .long 2428589668,2428589668
897 .long 1636092795,1636092795
898 .long 1890988757,1890988757
899 .long 1952214088,1952214088
900 .long 1113045200,1113045200
901 .long 1381126738,151587081,1785358954,3587560917
902 .long 808464432,909522486,2779096485,943208504
903 .long 3217014719,1077952576,2745410467,2661195422
904 .long 2172748161,4092851187,3621246935,4227595259
905 .long 2088533116,3823363043,960051513,2189591170
906 .long 2610666395,791621423,4294967295,2273806215
907 .long 875836468,2391707278,1128481603,1145324612
908 .long 3301229764,3739147998,3924421097,3419130827
909 .long 1414812756,2071690107,2492765332,842150450
910 .long 2795939494,3267543746,589505315,1027423549
911 .long 4008636142,1280068684,2509608341,185273099
912 .long 1111638594,4210752250,3284386755,1313754702
913 .long 134744072,774778414,2711724449,1717986918
914 .long 673720360,3654932953,606348324,2998055602
915 .long 1987475062,1532713819,2728567458,1229539657
916 .long 1835887981,2341178251,3520188881,623191333
917 .long 1920103026,4177066232,4143380214,1684300900
918 .long 2256963206,1751672936,2560137368,370546198
919 .long 3570717908,2762253476,1549556828,3435973836
920 .long 1566399837,1701143909,3065427638,2459079314
921 .long 1819044972,1886417008,1212696648,1347440720
922 .long 4261281277,3991793133,3115956665,3671775962
923 .long 1583242846,353703189,1179010630,1465341783
924 .long 2812782503,2374864269,2644352413,2223277188
925 .long 2425393296,3638089944,2880154539,0
926 .long 2358021260,3166485692,3553874899,168430090
927 .long 4160223223,3840206052,1482184792,84215045
928 .long 3099113656,3014898611,1162167621,101058054
929 .long 3503345872,741092396,505290270,2408550287
930 .long 3402287818,1061109567,252645135,33686018
931 .long 3250700737,2947526575,3183328701,50529027
932 .long 16843009,320017171,2324335242,1802201963
933 .long 976894522,2442236305,286331153,1094795585
934 .long 1330597711,1734829927,3705461980,3941264106
935 .long 2543294359,4076008178,3486502863,3469659854
936 .long 4042322160,3031741620,3873892070,1936946035
937 .long 2526451350,2896997548,1953789044,572662306
938 .long 3890735079,2913840557,892679477,2240120197
939 .long 3806520034,4193909241,926365495,3907578088
940 .long 471604252,1970632053,3755991007,1852730990
941 .long 1195853639,4059165169,437918234,1903260017
942 .long 488447261,690563369,3318072773,2307492233
943 .long 1869573999,3082270647,1650614882,235802126
944 .long 2863311530,404232216,3200171710,454761243
945 .long 4244438268,1448498774,1044266558,1263225675
946 .long 3334915782,3537031890,2038004089,538976288
947 .long 2593823386,3688618971,3233857728,4278124286
948 .long 2021161080,3452816845,1515870810,4109694196
949 .long 522133279,3722304989,2829625512,858993459
950 .long 2290649224,117901063,3351758791,825307441
951 .long 2981212593,303174162,269488144,1499027801
952 .long 656877351,2155905152,3974950124,1600085855
953 .long 1616928864,1364283729,2139062143,2846468521
954 .long 421075225,3048584629,1246382666,218959117
955 .long 757935405,3857049061,2054847098,2678038431
956 .long 2475922323,3385444809,2627509404,4025479151
957 .long 2694881440,3772834016,993737531,1296911693
958 .long 2930683566,707406378,4126537205,2964369584
959 .long 3368601800,3958107115,3149642683,1010580540
960 .long 2206434179,1397969747,2576980377,1633771873
961 .long 387389207,724249387,67372036,2122219134
962 .long 3132799674,2004318071,3604403926,640034342
963 .long 3789677025,1768515945,336860180,1667457891
964 .long 1431655765,555819297,202116108,2105376125
965.L__x86_AES_decrypt_end:
966.size _x86_AES_decrypt,.L__x86_AES_decrypt_end-_x86_AES_decrypt
967.ident "_x86_AES_decrypt"
968.globl AES_Td
969.text
970.globl AES_decrypt
971.type AES_decrypt,@function
972.align 16
973AES_decrypt:
974 pushl %ebp
975 pushl %ebx
976 pushl %esi
977 pushl %edi
978
979 movl 20(%esp), %esi
980 movl 28(%esp), %edi
981 movl %esp, %eax
982 subl $24, %esp
983 andl $-64, %esp
984 addl $4, %esp
985 movl %eax, 16(%esp)
986 call .L003pic_point
987.L003pic_point:
988 popl %ebp
989 leal AES_Td-.L003pic_point(%ebp),%ebp
990 movl (%esi), %eax
991 movl 4(%esi), %ebx
992 movl 8(%esi), %ecx
993 movl 12(%esi), %edx
994 call _x86_AES_decrypt
995 movl 16(%esp), %esp
996 movl 24(%esp), %esi
997 movl %eax, (%esi)
998 movl %ebx, 4(%esi)
999 movl %ecx, 8(%esi)
1000 movl %edx, 12(%esi)
1001 popl %edi
1002 popl %esi
1003 popl %ebx
1004 popl %ebp
1005 ret
1006.L_AES_decrypt_end:
1007.size AES_decrypt,.L_AES_decrypt_end-AES_decrypt
1008.ident "AES_decrypt"
1009.globl AES_Te
1010.globl AES_Td
1011.text
1012.globl AES_cbc_encrypt
1013.type AES_cbc_encrypt,@function
1014.align 16
1015AES_cbc_encrypt:
1016 pushl %ebp
1017 pushl %ebx
1018 pushl %esi
1019 pushl %edi
1020
1021 movl 28(%esp), %ecx
1022 cmpl $0, %ecx
1023 je .L004enc_out
1024 call .L005pic_point
1025.L005pic_point:
1026 popl %ebp
1027 pushfl
1028 cld
1029 cmpl $0, 44(%esp)
1030 je .L006DECRYPT
1031 leal AES_Te-.L005pic_point(%ebp),%ebp
1032 leal -308(%esp), %edi
1033 andl $-64, %edi
1034 movl %ebp, %eax
1035 leal 2048(%ebp), %ebx
1036 movl %edi, %edx
1037 andl $4095, %eax
1038 andl $4095, %ebx
1039 andl $4095, %edx
1040 cmpl %ebx, %edx
1041 jb .L007te_break_out
1042 subl %ebx, %edx
1043 subl %edx, %edi
1044 jmp .L008te_ok
1045.L007te_break_out:
1046 subl %eax, %edx
1047 andl $4095, %edx
1048 addl $320, %edx
1049 subl %edx, %edi
1050.align 4
1051.L008te_ok:
1052 movl 24(%esp), %eax
1053 movl 28(%esp), %ebx
1054 movl 36(%esp), %edx
1055 movl 40(%esp), %esi
1056 xchgl %edi, %esp
1057 addl $4, %esp
1058 movl %edi, 16(%esp)
1059 movl %eax, 20(%esp)
1060 movl %ebx, 24(%esp)
1061 movl %ecx, 28(%esp)
1062 movl %edx, 32(%esp)
1063 movl %esi, 36(%esp)
1064 movl $61, %ecx
1065 movl %edx, %esi
1066 leal 60(%esp), %edi
1067 movl %edi, 32(%esp)
1068.align 4
1069 .long 4136216051
1070 movl %eax, %esi
1071 movl $16, %edi
1072.align 4
1073.L009prefetch_te:
1074 movl (%ebp), %eax
1075 movl 32(%ebp), %ebx
1076 movl 64(%ebp), %ecx
1077 movl 96(%ebp), %edx
1078 leal 128(%ebp), %ebp
1079 decl %edi
1080 jnz .L009prefetch_te
1081 subl $2048, %ebp
1082 movl 28(%esp), %ecx
1083 movl 36(%esp), %edi
1084 testl $4294967280, %ecx
1085 jz .L010enc_tail
1086 movl (%edi), %eax
1087 movl 4(%edi), %ebx
1088.align 4
1089.L011enc_loop:
1090 movl 8(%edi), %ecx
1091 movl 12(%edi), %edx
1092 xorl (%esi), %eax
1093 xorl 4(%esi), %ebx
1094 xorl 8(%esi), %ecx
1095 xorl 12(%esi), %edx
1096 movl 32(%esp), %edi
1097 call _x86_AES_encrypt
1098 movl 20(%esp), %esi
1099 movl 24(%esp), %edi
1100 movl %eax, (%edi)
1101 movl %ebx, 4(%edi)
1102 movl %ecx, 8(%edi)
1103 movl %edx, 12(%edi)
1104 movl 28(%esp), %ecx
1105 leal 16(%esi), %esi
1106 movl %esi, 20(%esp)
1107 leal 16(%edi), %edx
1108 movl %edx, 24(%esp)
1109 subl $16, %ecx
1110 testl $4294967280, %ecx
1111 movl %ecx, 28(%esp)
1112 jnz .L011enc_loop
1113 testl $15, %ecx
1114 jnz .L010enc_tail
1115 movl 36(%esp), %esi
1116 movl 8(%edi), %ecx
1117 movl 12(%edi), %edx
1118 movl %eax, (%esi)
1119 movl %ebx, 4(%esi)
1120 movl %ecx, 8(%esi)
1121 movl %edx, 12(%esi)
1122 movl 32(%esp), %edi
1123 movl 16(%esp), %esp
1124 movl $60, %ecx
1125 xorl %eax, %eax
1126.align 4
1127 .long 4136217587
1128 popfl
1129.L004enc_out:
1130 popl %edi
1131 popl %esi
1132 popl %ebx
1133 popl %ebp
1134 ret
1135 pushfl
1136.align 4
1137.L010enc_tail:
1138 pushl %edi
1139 movl 24(%esp), %edi
1140 movl $16, %ebx
1141 subl %ecx, %ebx
1142 cmpl %esi, %edi
1143 je .L012enc_in_place
1144.align 4
1145 .long 4136215795
1146 jmp .L013enc_skip_in_place
1147.L012enc_in_place:
1148 leal (%edi,%ecx), %edi
1149.L013enc_skip_in_place:
1150 movl %ebx, %ecx
1151 xorl %eax, %eax
1152.align 4
1153 .long 4136217331
1154 popl %edi
1155 movl 24(%esp), %esi
1156 movl (%edi), %eax
1157 movl 4(%edi), %ebx
1158 movl $16, 28(%esp)
1159 jmp .L011enc_loop
1160.align 4
1161.L006DECRYPT:
1162 leal AES_Td-.L005pic_point(%ebp),%ebp
1163 leal -308(%esp), %edi
1164 andl $-64, %edi
1165 movl %ebp, %eax
1166 leal 3072(%ebp), %ebx
1167 movl %edi, %edx
1168 andl $4095, %eax
1169 andl $4095, %ebx
1170 andl $4095, %edx
1171 cmpl %ebx, %edx
1172 jb .L014td_break_out
1173 subl %ebx, %edx
1174 subl %edx, %edi
1175 jmp .L015td_ok
1176.L014td_break_out:
1177 subl %eax, %edx
1178 andl $4095, %edx
1179 addl $320, %edx
1180 subl %edx, %edi
1181.align 4
1182.L015td_ok:
1183 movl 24(%esp), %eax
1184 movl 28(%esp), %ebx
1185 movl 36(%esp), %edx
1186 movl 40(%esp), %esi
1187 xchgl %edi, %esp
1188 addl $4, %esp
1189 movl %edi, 16(%esp)
1190 movl %eax, 20(%esp)
1191 movl %ebx, 24(%esp)
1192 movl %ecx, 28(%esp)
1193 movl %edx, 32(%esp)
1194 movl %esi, 36(%esp)
1195 movl $61, %ecx
1196 movl %edx, %esi
1197 leal 60(%esp), %edi
1198 movl %edi, 32(%esp)
1199.align 4
1200 .long 4136216051
1201 movl %eax, %esi
1202 movl $24, %edi
1203.align 4
1204.L016prefetch_td:
1205 movl (%ebp), %eax
1206 movl 32(%ebp), %ebx
1207 movl 64(%ebp), %ecx
1208 movl 96(%ebp), %edx
1209 leal 128(%ebp), %ebp
1210 decl %edi
1211 jnz .L016prefetch_td
1212 subl $3072, %ebp
1213 cmpl 24(%esp), %esi
1214 je .L017dec_in_place
1215 movl 36(%esp), %edi
1216 movl %edi, 40(%esp)
1217.align 4
1218.L018dec_loop:
1219 movl (%esi), %eax
1220 movl 4(%esi), %ebx
1221 movl 8(%esi), %ecx
1222 movl 12(%esi), %edx
1223 movl 32(%esp), %edi
1224 call _x86_AES_decrypt
1225 movl 40(%esp), %edi
1226 movl 28(%esp), %esi
1227 xorl (%edi), %eax
1228 xorl 4(%edi), %ebx
1229 xorl 8(%edi), %ecx
1230 xorl 12(%edi), %edx
1231 subl $16, %esi
1232 jc .L019dec_partial
1233 movl %esi, 28(%esp)
1234 movl 20(%esp), %esi
1235 movl 24(%esp), %edi
1236 movl %eax, (%edi)
1237 movl %ebx, 4(%edi)
1238 movl %ecx, 8(%edi)
1239 movl %edx, 12(%edi)
1240 movl %esi, 40(%esp)
1241 leal 16(%esi), %esi
1242 movl %esi, 20(%esp)
1243 leal 16(%edi), %edi
1244 movl %edi, 24(%esp)
1245 jnz .L018dec_loop
1246 movl 40(%esp), %edi
1247.L020dec_end:
1248 movl 36(%esp), %esi
1249 movl (%edi), %eax
1250 movl 4(%edi), %ebx
1251 movl 8(%edi), %ecx
1252 movl 12(%edi), %edx
1253 movl %eax, (%esi)
1254 movl %ebx, 4(%esi)
1255 movl %ecx, 8(%esi)
1256 movl %edx, 12(%esi)
1257 jmp .L021dec_out
1258.align 4
1259.L019dec_partial:
1260 leal 44(%esp), %edi
1261 movl %eax, (%edi)
1262 movl %ebx, 4(%edi)
1263 movl %ecx, 8(%edi)
1264 movl %edx, 12(%edi)
1265 leal 16(%esi), %ecx
1266 movl %edi, %esi
1267 movl 24(%esp), %edi
1268 .long 4136215795
1269 movl 20(%esp), %edi
1270 jmp .L020dec_end
1271.align 4
1272.L017dec_in_place:
1273.L022dec_in_place_loop:
1274 leal 44(%esp), %edi
1275 movl (%esi), %eax
1276 movl 4(%esi), %ebx
1277 movl 8(%esi), %ecx
1278 movl 12(%esi), %edx
1279 movl %eax, (%edi)
1280 movl %ebx, 4(%edi)
1281 movl %ecx, 8(%edi)
1282 movl %edx, 12(%edi)
1283 movl 32(%esp), %edi
1284 call _x86_AES_decrypt
1285 movl 36(%esp), %edi
1286 movl 24(%esp), %esi
1287 xorl (%edi), %eax
1288 xorl 4(%edi), %ebx
1289 xorl 8(%edi), %ecx
1290 xorl 12(%edi), %edx
1291 movl %eax, (%esi)
1292 movl %ebx, 4(%esi)
1293 movl %ecx, 8(%esi)
1294 movl %edx, 12(%esi)
1295 leal 16(%esi), %esi
1296 movl %esi, 24(%esp)
1297 leal 44(%esp), %esi
1298 movl (%esi), %eax
1299 movl 4(%esi), %ebx
1300 movl 8(%esi), %ecx
1301 movl 12(%esi), %edx
1302 movl %eax, (%edi)
1303 movl %ebx, 4(%edi)
1304 movl %ecx, 8(%edi)
1305 movl %edx, 12(%edi)
1306 movl 20(%esp), %esi
1307 leal 16(%esi), %esi
1308 movl %esi, 20(%esp)
1309 movl 28(%esp), %ecx
1310 subl $16, %ecx
1311 jc .L023dec_in_place_partial
1312 movl %ecx, 28(%esp)
1313 jnz .L022dec_in_place_loop
1314 jmp .L021dec_out
1315.align 4
1316.L023dec_in_place_partial:
1317 movl 24(%esp), %edi
1318 leal 44(%esp), %esi
1319 leal (%edi,%ecx), %edi
1320 leal 16(%esi,%ecx), %esi
1321 negl %ecx
1322 .long 4136215795
1323.align 4
1324.L021dec_out:
1325 movl 32(%esp), %edi
1326 movl 16(%esp), %esp
1327 movl $60, %ecx
1328 xorl %eax, %eax
1329.align 4
1330 .long 4136217587
1331 popfl
1332 popl %edi
1333 popl %esi
1334 popl %ebx
1335 popl %ebp
1336 ret
1337.L_AES_cbc_encrypt_end:
1338.size AES_cbc_encrypt,.L_AES_cbc_encrypt_end-AES_cbc_encrypt
1339.ident "AES_cbc_encrypt"
1340.globl AES_Te
1341.text
1342.globl AES_set_encrypt_key
1343.type AES_set_encrypt_key,@function
1344.align 16
1345AES_set_encrypt_key:
1346 pushl %ebp
1347 pushl %ebx
1348 pushl %esi
1349 pushl %edi
1350
1351 call FIPS_selftest_failed
1352 cmpl $0,%eax
1353 mov $-3,%eax
1354 jne .L029exit
1355
1356 movl 20(%esp), %esi
1357 movl 28(%esp), %edi
1358 testl $-1, %esi
1359 jz .L024badpointer
1360 testl $-1, %edi
1361 jz .L024badpointer
1362 call .L025pic_point
1363.L025pic_point:
1364 popl %ebp
1365 leal AES_Te-.L025pic_point(%ebp),%ebp
1366 movl 24(%esp), %ecx
1367 cmpl $128, %ecx
1368 je .L02610rounds
1369 cmpl $192, %ecx
1370 je .L02712rounds
1371 cmpl $256, %ecx
1372 je .L02814rounds
1373 movl $-2, %eax
1374 jmp .L029exit
1375.L02610rounds:
1376 movl (%esi), %eax
1377 movl 4(%esi), %ebx
1378 movl 8(%esi), %ecx
1379 movl 12(%esi), %edx
1380 movl %eax, (%edi)
1381 movl %ebx, 4(%edi)
1382 movl %ecx, 8(%edi)
1383 movl %edx, 12(%edi)
1384 xorl %ecx, %ecx
1385 jmp .L03010shortcut
1386.align 4
1387.L03110loop:
1388 movl (%edi), %eax
1389 movl 12(%edi), %edx
1390.L03010shortcut:
1391 movzbl %dl, %esi
1392 movl 2(%ebp,%esi,8), %ebx
1393 movzbl %dh, %esi
1394 andl $4278190080, %ebx
1395 xorl %ebx, %eax
1396 movl 2(%ebp,%esi,8), %ebx
1397 shrl $16, %edx
1398 andl $255, %ebx
1399 movzbl %dl, %esi
1400 xorl %ebx, %eax
1401 movl (%ebp,%esi,8), %ebx
1402 movzbl %dh, %esi
1403 andl $65280, %ebx
1404 xorl %ebx, %eax
1405 movl (%ebp,%esi,8), %ebx
1406 andl $16711680, %ebx
1407 xorl %ebx, %eax
1408 xorl 2048(%ebp,%ecx,4),%eax
1409 movl %eax, 16(%edi)
1410 xorl 4(%edi), %eax
1411 movl %eax, 20(%edi)
1412 xorl 8(%edi), %eax
1413 movl %eax, 24(%edi)
1414 xorl 12(%edi), %eax
1415 movl %eax, 28(%edi)
1416 incl %ecx
1417 addl $16, %edi
1418 cmpl $10, %ecx
1419 jl .L03110loop
1420 movl $10, 80(%edi)
1421 xorl %eax, %eax
1422 jmp .L029exit
1423.L02712rounds:
1424 movl (%esi), %eax
1425 movl 4(%esi), %ebx
1426 movl 8(%esi), %ecx
1427 movl 12(%esi), %edx
1428 movl %eax, (%edi)
1429 movl %ebx, 4(%edi)
1430 movl %ecx, 8(%edi)
1431 movl %edx, 12(%edi)
1432 movl 16(%esi), %ecx
1433 movl 20(%esi), %edx
1434 movl %ecx, 16(%edi)
1435 movl %edx, 20(%edi)
1436 xorl %ecx, %ecx
1437 jmp .L03212shortcut
1438.align 4
1439.L03312loop:
1440 movl (%edi), %eax
1441 movl 20(%edi), %edx
1442.L03212shortcut:
1443 movzbl %dl, %esi
1444 movl 2(%ebp,%esi,8), %ebx
1445 movzbl %dh, %esi
1446 andl $4278190080, %ebx
1447 xorl %ebx, %eax
1448 movl 2(%ebp,%esi,8), %ebx
1449 shrl $16, %edx
1450 andl $255, %ebx
1451 movzbl %dl, %esi
1452 xorl %ebx, %eax
1453 movl (%ebp,%esi,8), %ebx
1454 movzbl %dh, %esi
1455 andl $65280, %ebx
1456 xorl %ebx, %eax
1457 movl (%ebp,%esi,8), %ebx
1458 andl $16711680, %ebx
1459 xorl %ebx, %eax
1460 xorl 2048(%ebp,%ecx,4),%eax
1461 movl %eax, 24(%edi)
1462 xorl 4(%edi), %eax
1463 movl %eax, 28(%edi)
1464 xorl 8(%edi), %eax
1465 movl %eax, 32(%edi)
1466 xorl 12(%edi), %eax
1467 movl %eax, 36(%edi)
1468 cmpl $7, %ecx
1469 je .L03412break
1470 incl %ecx
1471 xorl 16(%edi), %eax
1472 movl %eax, 40(%edi)
1473 xorl 20(%edi), %eax
1474 movl %eax, 44(%edi)
1475 addl $24, %edi
1476 jmp .L03312loop
1477.L03412break:
1478 movl $12, 72(%edi)
1479 xorl %eax, %eax
1480 jmp .L029exit
1481.L02814rounds:
1482 movl (%esi), %eax
1483 movl 4(%esi), %ebx
1484 movl 8(%esi), %ecx
1485 movl 12(%esi), %edx
1486 movl %eax, (%edi)
1487 movl %ebx, 4(%edi)
1488 movl %ecx, 8(%edi)
1489 movl %edx, 12(%edi)
1490 movl 16(%esi), %eax
1491 movl 20(%esi), %ebx
1492 movl 24(%esi), %ecx
1493 movl 28(%esi), %edx
1494 movl %eax, 16(%edi)
1495 movl %ebx, 20(%edi)
1496 movl %ecx, 24(%edi)
1497 movl %edx, 28(%edi)
1498 xorl %ecx, %ecx
1499 jmp .L03514shortcut
1500.align 4
1501.L03614loop:
1502 movl 28(%edi), %edx
1503.L03514shortcut:
1504 movl (%edi), %eax
1505 movzbl %dl, %esi
1506 movl 2(%ebp,%esi,8), %ebx
1507 movzbl %dh, %esi
1508 andl $4278190080, %ebx
1509 xorl %ebx, %eax
1510 movl 2(%ebp,%esi,8), %ebx
1511 shrl $16, %edx
1512 andl $255, %ebx
1513 movzbl %dl, %esi
1514 xorl %ebx, %eax
1515 movl (%ebp,%esi,8), %ebx
1516 movzbl %dh, %esi
1517 andl $65280, %ebx
1518 xorl %ebx, %eax
1519 movl (%ebp,%esi,8), %ebx
1520 andl $16711680, %ebx
1521 xorl %ebx, %eax
1522 xorl 2048(%ebp,%ecx,4),%eax
1523 movl %eax, 32(%edi)
1524 xorl 4(%edi), %eax
1525 movl %eax, 36(%edi)
1526 xorl 8(%edi), %eax
1527 movl %eax, 40(%edi)
1528 xorl 12(%edi), %eax
1529 movl %eax, 44(%edi)
1530 cmpl $6, %ecx
1531 je .L03714break
1532 incl %ecx
1533 movl %eax, %edx
1534 movl 16(%edi), %eax
1535 movzbl %dl, %esi
1536 movl 2(%ebp,%esi,8), %ebx
1537 movzbl %dh, %esi
1538 andl $255, %ebx
1539 xorl %ebx, %eax
1540 movl (%ebp,%esi,8), %ebx
1541 shrl $16, %edx
1542 andl $65280, %ebx
1543 movzbl %dl, %esi
1544 xorl %ebx, %eax
1545 movl (%ebp,%esi,8), %ebx
1546 movzbl %dh, %esi
1547 andl $16711680, %ebx
1548 xorl %ebx, %eax
1549 movl 2(%ebp,%esi,8), %ebx
1550 andl $4278190080, %ebx
1551 xorl %ebx, %eax
1552 movl %eax, 48(%edi)
1553 xorl 20(%edi), %eax
1554 movl %eax, 52(%edi)
1555 xorl 24(%edi), %eax
1556 movl %eax, 56(%edi)
1557 xorl 28(%edi), %eax
1558 movl %eax, 60(%edi)
1559 addl $32, %edi
1560 jmp .L03614loop
1561.L03714break:
1562 movl $14, 48(%edi)
1563 xorl %eax, %eax
1564 jmp .L029exit
1565.L024badpointer:
1566 movl $-1, %eax
1567.L029exit:
1568 popl %edi
1569 popl %esi
1570 popl %ebx
1571 popl %ebp
1572 ret
1573.L_AES_set_encrypt_key_end:
1574.size AES_set_encrypt_key,.L_AES_set_encrypt_key_end-AES_set_encrypt_key
1575.ident "AES_set_encrypt_key"
1576.globl AES_Td
1577.globl AES_Te
1578.text
1579.globl AES_set_decrypt_key
1580.type AES_set_decrypt_key,@function
1581.align 16
1582AES_set_decrypt_key:
1583 movl 4(%esp), %eax
1584 movl 8(%esp), %ecx
1585 movl 12(%esp), %edx
1586 subl $12, %esp
1587 movl %eax, (%esp)
1588 movl %ecx, 4(%esp)
1589 movl %edx, 8(%esp)
1590 call AES_set_encrypt_key
1591 addl $12, %esp
1592 cmpl $0, %eax
1593 je .L038proceed
1594 ret
1595.L038proceed:
1596 pushl %ebp
1597 pushl %ebx
1598 pushl %esi
1599 pushl %edi
1600 movl 28(%esp), %esi
1601 movl 240(%esi), %ecx
1602 leal (,%ecx,4), %ecx
1603 leal (%esi,%ecx,4), %edi
1604.align 4
1605.L039invert:
1606 movl (%esi), %eax
1607 movl 4(%esi), %ebx
1608 movl (%edi), %ecx
1609 movl 4(%edi), %edx
1610 movl %eax, (%edi)
1611 movl %ebx, 4(%edi)
1612 movl %ecx, (%esi)
1613 movl %edx, 4(%esi)
1614 movl 8(%esi), %eax
1615 movl 12(%esi), %ebx
1616 movl 8(%edi), %ecx
1617 movl 12(%edi), %edx
1618 movl %eax, 8(%edi)
1619 movl %ebx, 12(%edi)
1620 movl %ecx, 8(%esi)
1621 movl %edx, 12(%esi)
1622 addl $16, %esi
1623 subl $16, %edi
1624 cmpl %edi, %esi
1625 jne .L039invert
1626 call .L040pic_point
1627.L040pic_point:
1628 popl %ebp
1629 leal AES_Td-.L040pic_point(%ebp),%edi
1630 leal AES_Te-.L040pic_point(%ebp),%ebp
1631 movl 28(%esp), %esi
1632 movl 240(%esi), %ecx
1633 decl %ecx
1634.align 4
1635.L041permute:
1636 addl $16, %esi
1637 movl (%esi), %eax
1638 movl %eax, %edx
1639 movzbl %ah, %ebx
1640 shrl $16, %edx
1641 andl $255, %eax
1642 movzbl 2(%ebp,%eax,8), %eax
1643 movzbl 2(%ebp,%ebx,8), %ebx
1644 movl (%edi,%eax,8), %eax
1645 xorl 3(%edi,%ebx,8), %eax
1646 movzbl %dh, %ebx
1647 andl $255, %edx
1648 movzbl 2(%ebp,%edx,8), %edx
1649 movzbl 2(%ebp,%ebx,8), %ebx
1650 xorl 2(%edi,%edx,8), %eax
1651 xorl 1(%edi,%ebx,8), %eax
1652 movl %eax, (%esi)
1653 movl 4(%esi), %eax
1654 movl %eax, %edx
1655 movzbl %ah, %ebx
1656 shrl $16, %edx
1657 andl $255, %eax
1658 movzbl 2(%ebp,%eax,8), %eax
1659 movzbl 2(%ebp,%ebx,8), %ebx
1660 movl (%edi,%eax,8), %eax
1661 xorl 3(%edi,%ebx,8), %eax
1662 movzbl %dh, %ebx
1663 andl $255, %edx
1664 movzbl 2(%ebp,%edx,8), %edx
1665 movzbl 2(%ebp,%ebx,8), %ebx
1666 xorl 2(%edi,%edx,8), %eax
1667 xorl 1(%edi,%ebx,8), %eax
1668 movl %eax, 4(%esi)
1669 movl 8(%esi), %eax
1670 movl %eax, %edx
1671 movzbl %ah, %ebx
1672 shrl $16, %edx
1673 andl $255, %eax
1674 movzbl 2(%ebp,%eax,8), %eax
1675 movzbl 2(%ebp,%ebx,8), %ebx
1676 movl (%edi,%eax,8), %eax
1677 xorl 3(%edi,%ebx,8), %eax
1678 movzbl %dh, %ebx
1679 andl $255, %edx
1680 movzbl 2(%ebp,%edx,8), %edx
1681 movzbl 2(%ebp,%ebx,8), %ebx
1682 xorl 2(%edi,%edx,8), %eax
1683 xorl 1(%edi,%ebx,8), %eax
1684 movl %eax, 8(%esi)
1685 movl 12(%esi), %eax
1686 movl %eax, %edx
1687 movzbl %ah, %ebx
1688 shrl $16, %edx
1689 andl $255, %eax
1690 movzbl 2(%ebp,%eax,8), %eax
1691 movzbl 2(%ebp,%ebx,8), %ebx
1692 movl (%edi,%eax,8), %eax
1693 xorl 3(%edi,%ebx,8), %eax
1694 movzbl %dh, %ebx
1695 andl $255, %edx
1696 movzbl 2(%ebp,%edx,8), %edx
1697 movzbl 2(%ebp,%ebx,8), %ebx
1698 xorl 2(%edi,%edx,8), %eax
1699 xorl 1(%edi,%ebx,8), %eax
1700 movl %eax, 12(%esi)
1701 decl %ecx
1702 jnz .L041permute
1703 xorl %eax, %eax
1704 popl %edi
1705 popl %esi
1706 popl %ebx
1707 popl %ebp
1708 ret
1709.L_AES_set_decrypt_key_end:
1710.size AES_set_decrypt_key,.L_AES_set_decrypt_key_end-AES_set_decrypt_key
1711.ident "AES_set_decrypt_key"