Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/i386/cmll-x86.S
39482 views
1
/* Do not modify. This file is auto-generated from cmll-x86.pl. */
2
#ifdef PIC
3
.text
4
.globl Camellia_EncryptBlock_Rounds
5
.type Camellia_EncryptBlock_Rounds,@function
6
.align 16
7
Camellia_EncryptBlock_Rounds:
8
.L_Camellia_EncryptBlock_Rounds_begin:
9
#ifdef __CET__
10
11
.byte 243,15,30,251
12
#endif
13
14
pushl %ebp
15
pushl %ebx
16
pushl %esi
17
pushl %edi
18
movl 20(%esp),%eax
19
movl 24(%esp),%esi
20
movl 28(%esp),%edi
21
movl %esp,%ebx
22
subl $28,%esp
23
andl $-64,%esp
24
leal -127(%edi),%ecx
25
subl %esp,%ecx
26
negl %ecx
27
andl $960,%ecx
28
subl %ecx,%esp
29
addl $4,%esp
30
shll $6,%eax
31
leal (%edi,%eax,1),%eax
32
movl %ebx,20(%esp)
33
movl %eax,16(%esp)
34
call .L000pic_point
35
.L000pic_point:
36
popl %ebp
37
leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
38
movl (%esi),%eax
39
movl 4(%esi),%ebx
40
movl 8(%esi),%ecx
41
bswap %eax
42
movl 12(%esi),%edx
43
bswap %ebx
44
bswap %ecx
45
bswap %edx
46
call _x86_Camellia_encrypt
47
movl 20(%esp),%esp
48
bswap %eax
49
movl 32(%esp),%esi
50
bswap %ebx
51
bswap %ecx
52
bswap %edx
53
movl %eax,(%esi)
54
movl %ebx,4(%esi)
55
movl %ecx,8(%esi)
56
movl %edx,12(%esi)
57
popl %edi
58
popl %esi
59
popl %ebx
60
popl %ebp
61
ret
62
.size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
63
.globl Camellia_EncryptBlock
64
.type Camellia_EncryptBlock,@function
65
.align 16
66
Camellia_EncryptBlock:
67
.L_Camellia_EncryptBlock_begin:
68
#ifdef __CET__
69
70
.byte 243,15,30,251
71
#endif
72
73
movl $128,%eax
74
subl 4(%esp),%eax
75
movl $3,%eax
76
adcl $0,%eax
77
movl %eax,4(%esp)
78
jmp .L_Camellia_EncryptBlock_Rounds_begin
79
.size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
80
.globl Camellia_encrypt
81
.type Camellia_encrypt,@function
82
.align 16
83
Camellia_encrypt:
84
.L_Camellia_encrypt_begin:
85
#ifdef __CET__
86
87
.byte 243,15,30,251
88
#endif
89
90
pushl %ebp
91
pushl %ebx
92
pushl %esi
93
pushl %edi
94
movl 20(%esp),%esi
95
movl 28(%esp),%edi
96
movl %esp,%ebx
97
subl $28,%esp
98
andl $-64,%esp
99
movl 272(%edi),%eax
100
leal -127(%edi),%ecx
101
subl %esp,%ecx
102
negl %ecx
103
andl $960,%ecx
104
subl %ecx,%esp
105
addl $4,%esp
106
shll $6,%eax
107
leal (%edi,%eax,1),%eax
108
movl %ebx,20(%esp)
109
movl %eax,16(%esp)
110
call .L001pic_point
111
.L001pic_point:
112
popl %ebp
113
leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
114
movl (%esi),%eax
115
movl 4(%esi),%ebx
116
movl 8(%esi),%ecx
117
bswap %eax
118
movl 12(%esi),%edx
119
bswap %ebx
120
bswap %ecx
121
bswap %edx
122
call _x86_Camellia_encrypt
123
movl 20(%esp),%esp
124
bswap %eax
125
movl 24(%esp),%esi
126
bswap %ebx
127
bswap %ecx
128
bswap %edx
129
movl %eax,(%esi)
130
movl %ebx,4(%esi)
131
movl %ecx,8(%esi)
132
movl %edx,12(%esi)
133
popl %edi
134
popl %esi
135
popl %ebx
136
popl %ebp
137
ret
138
.size Camellia_encrypt,.-.L_Camellia_encrypt_begin
139
.type _x86_Camellia_encrypt,@function
140
.align 16
141
_x86_Camellia_encrypt:
142
#ifdef __CET__
143
144
.byte 243,15,30,251
145
#endif
146
147
xorl (%edi),%eax
148
xorl 4(%edi),%ebx
149
xorl 8(%edi),%ecx
150
xorl 12(%edi),%edx
151
movl 16(%edi),%esi
152
movl %eax,4(%esp)
153
movl %ebx,8(%esp)
154
movl %ecx,12(%esp)
155
movl %edx,16(%esp)
156
.align 16
157
.L002loop:
158
xorl %esi,%eax
159
xorl 20(%edi),%ebx
160
movzbl %ah,%esi
161
movl 2052(%ebp,%esi,8),%edx
162
movzbl %al,%esi
163
xorl 4(%ebp,%esi,8),%edx
164
shrl $16,%eax
165
movzbl %bl,%esi
166
movl (%ebp,%esi,8),%ecx
167
movzbl %ah,%esi
168
xorl (%ebp,%esi,8),%edx
169
movzbl %bh,%esi
170
xorl 4(%ebp,%esi,8),%ecx
171
shrl $16,%ebx
172
movzbl %al,%eax
173
xorl 2048(%ebp,%eax,8),%edx
174
movzbl %bh,%esi
175
movl 16(%esp),%eax
176
xorl %edx,%ecx
177
rorl $8,%edx
178
xorl 2048(%ebp,%esi,8),%ecx
179
movzbl %bl,%esi
180
movl 12(%esp),%ebx
181
xorl %eax,%edx
182
xorl 2052(%ebp,%esi,8),%ecx
183
movl 24(%edi),%esi
184
xorl %ecx,%edx
185
movl %edx,16(%esp)
186
xorl %ebx,%ecx
187
movl %ecx,12(%esp)
188
xorl %esi,%ecx
189
xorl 28(%edi),%edx
190
movzbl %ch,%esi
191
movl 2052(%ebp,%esi,8),%ebx
192
movzbl %cl,%esi
193
xorl 4(%ebp,%esi,8),%ebx
194
shrl $16,%ecx
195
movzbl %dl,%esi
196
movl (%ebp,%esi,8),%eax
197
movzbl %ch,%esi
198
xorl (%ebp,%esi,8),%ebx
199
movzbl %dh,%esi
200
xorl 4(%ebp,%esi,8),%eax
201
shrl $16,%edx
202
movzbl %cl,%ecx
203
xorl 2048(%ebp,%ecx,8),%ebx
204
movzbl %dh,%esi
205
movl 8(%esp),%ecx
206
xorl %ebx,%eax
207
rorl $8,%ebx
208
xorl 2048(%ebp,%esi,8),%eax
209
movzbl %dl,%esi
210
movl 4(%esp),%edx
211
xorl %ecx,%ebx
212
xorl 2052(%ebp,%esi,8),%eax
213
movl 32(%edi),%esi
214
xorl %eax,%ebx
215
movl %ebx,8(%esp)
216
xorl %edx,%eax
217
movl %eax,4(%esp)
218
xorl %esi,%eax
219
xorl 36(%edi),%ebx
220
movzbl %ah,%esi
221
movl 2052(%ebp,%esi,8),%edx
222
movzbl %al,%esi
223
xorl 4(%ebp,%esi,8),%edx
224
shrl $16,%eax
225
movzbl %bl,%esi
226
movl (%ebp,%esi,8),%ecx
227
movzbl %ah,%esi
228
xorl (%ebp,%esi,8),%edx
229
movzbl %bh,%esi
230
xorl 4(%ebp,%esi,8),%ecx
231
shrl $16,%ebx
232
movzbl %al,%eax
233
xorl 2048(%ebp,%eax,8),%edx
234
movzbl %bh,%esi
235
movl 16(%esp),%eax
236
xorl %edx,%ecx
237
rorl $8,%edx
238
xorl 2048(%ebp,%esi,8),%ecx
239
movzbl %bl,%esi
240
movl 12(%esp),%ebx
241
xorl %eax,%edx
242
xorl 2052(%ebp,%esi,8),%ecx
243
movl 40(%edi),%esi
244
xorl %ecx,%edx
245
movl %edx,16(%esp)
246
xorl %ebx,%ecx
247
movl %ecx,12(%esp)
248
xorl %esi,%ecx
249
xorl 44(%edi),%edx
250
movzbl %ch,%esi
251
movl 2052(%ebp,%esi,8),%ebx
252
movzbl %cl,%esi
253
xorl 4(%ebp,%esi,8),%ebx
254
shrl $16,%ecx
255
movzbl %dl,%esi
256
movl (%ebp,%esi,8),%eax
257
movzbl %ch,%esi
258
xorl (%ebp,%esi,8),%ebx
259
movzbl %dh,%esi
260
xorl 4(%ebp,%esi,8),%eax
261
shrl $16,%edx
262
movzbl %cl,%ecx
263
xorl 2048(%ebp,%ecx,8),%ebx
264
movzbl %dh,%esi
265
movl 8(%esp),%ecx
266
xorl %ebx,%eax
267
rorl $8,%ebx
268
xorl 2048(%ebp,%esi,8),%eax
269
movzbl %dl,%esi
270
movl 4(%esp),%edx
271
xorl %ecx,%ebx
272
xorl 2052(%ebp,%esi,8),%eax
273
movl 48(%edi),%esi
274
xorl %eax,%ebx
275
movl %ebx,8(%esp)
276
xorl %edx,%eax
277
movl %eax,4(%esp)
278
xorl %esi,%eax
279
xorl 52(%edi),%ebx
280
movzbl %ah,%esi
281
movl 2052(%ebp,%esi,8),%edx
282
movzbl %al,%esi
283
xorl 4(%ebp,%esi,8),%edx
284
shrl $16,%eax
285
movzbl %bl,%esi
286
movl (%ebp,%esi,8),%ecx
287
movzbl %ah,%esi
288
xorl (%ebp,%esi,8),%edx
289
movzbl %bh,%esi
290
xorl 4(%ebp,%esi,8),%ecx
291
shrl $16,%ebx
292
movzbl %al,%eax
293
xorl 2048(%ebp,%eax,8),%edx
294
movzbl %bh,%esi
295
movl 16(%esp),%eax
296
xorl %edx,%ecx
297
rorl $8,%edx
298
xorl 2048(%ebp,%esi,8),%ecx
299
movzbl %bl,%esi
300
movl 12(%esp),%ebx
301
xorl %eax,%edx
302
xorl 2052(%ebp,%esi,8),%ecx
303
movl 56(%edi),%esi
304
xorl %ecx,%edx
305
movl %edx,16(%esp)
306
xorl %ebx,%ecx
307
movl %ecx,12(%esp)
308
xorl %esi,%ecx
309
xorl 60(%edi),%edx
310
movzbl %ch,%esi
311
movl 2052(%ebp,%esi,8),%ebx
312
movzbl %cl,%esi
313
xorl 4(%ebp,%esi,8),%ebx
314
shrl $16,%ecx
315
movzbl %dl,%esi
316
movl (%ebp,%esi,8),%eax
317
movzbl %ch,%esi
318
xorl (%ebp,%esi,8),%ebx
319
movzbl %dh,%esi
320
xorl 4(%ebp,%esi,8),%eax
321
shrl $16,%edx
322
movzbl %cl,%ecx
323
xorl 2048(%ebp,%ecx,8),%ebx
324
movzbl %dh,%esi
325
movl 8(%esp),%ecx
326
xorl %ebx,%eax
327
rorl $8,%ebx
328
xorl 2048(%ebp,%esi,8),%eax
329
movzbl %dl,%esi
330
movl 4(%esp),%edx
331
xorl %ecx,%ebx
332
xorl 2052(%ebp,%esi,8),%eax
333
movl 64(%edi),%esi
334
xorl %eax,%ebx
335
movl %ebx,8(%esp)
336
xorl %edx,%eax
337
movl %eax,4(%esp)
338
addl $64,%edi
339
cmpl 20(%esp),%edi
340
je .L003done
341
andl %eax,%esi
342
movl 16(%esp),%edx
343
roll $1,%esi
344
movl %edx,%ecx
345
xorl %esi,%ebx
346
orl 12(%edi),%ecx
347
movl %ebx,8(%esp)
348
xorl 12(%esp),%ecx
349
movl 4(%edi),%esi
350
movl %ecx,12(%esp)
351
orl %ebx,%esi
352
andl 8(%edi),%ecx
353
xorl %esi,%eax
354
roll $1,%ecx
355
movl %eax,4(%esp)
356
xorl %ecx,%edx
357
movl 16(%edi),%esi
358
movl %edx,16(%esp)
359
jmp .L002loop
360
.align 8
361
.L003done:
362
movl %eax,%ecx
363
movl %ebx,%edx
364
movl 12(%esp),%eax
365
movl 16(%esp),%ebx
366
xorl %esi,%eax
367
xorl 4(%edi),%ebx
368
xorl 8(%edi),%ecx
369
xorl 12(%edi),%edx
370
ret
371
.size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
372
.globl Camellia_DecryptBlock_Rounds
373
.type Camellia_DecryptBlock_Rounds,@function
374
.align 16
375
Camellia_DecryptBlock_Rounds:
376
.L_Camellia_DecryptBlock_Rounds_begin:
377
#ifdef __CET__
378
379
.byte 243,15,30,251
380
#endif
381
382
pushl %ebp
383
pushl %ebx
384
pushl %esi
385
pushl %edi
386
movl 20(%esp),%eax
387
movl 24(%esp),%esi
388
movl 28(%esp),%edi
389
movl %esp,%ebx
390
subl $28,%esp
391
andl $-64,%esp
392
leal -127(%edi),%ecx
393
subl %esp,%ecx
394
negl %ecx
395
andl $960,%ecx
396
subl %ecx,%esp
397
addl $4,%esp
398
shll $6,%eax
399
movl %edi,16(%esp)
400
leal (%edi,%eax,1),%edi
401
movl %ebx,20(%esp)
402
call .L004pic_point
403
.L004pic_point:
404
popl %ebp
405
leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
406
movl (%esi),%eax
407
movl 4(%esi),%ebx
408
movl 8(%esi),%ecx
409
bswap %eax
410
movl 12(%esi),%edx
411
bswap %ebx
412
bswap %ecx
413
bswap %edx
414
call _x86_Camellia_decrypt
415
movl 20(%esp),%esp
416
bswap %eax
417
movl 32(%esp),%esi
418
bswap %ebx
419
bswap %ecx
420
bswap %edx
421
movl %eax,(%esi)
422
movl %ebx,4(%esi)
423
movl %ecx,8(%esi)
424
movl %edx,12(%esi)
425
popl %edi
426
popl %esi
427
popl %ebx
428
popl %ebp
429
ret
430
.size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
431
.globl Camellia_DecryptBlock
432
.type Camellia_DecryptBlock,@function
433
.align 16
434
Camellia_DecryptBlock:
435
.L_Camellia_DecryptBlock_begin:
436
#ifdef __CET__
437
438
.byte 243,15,30,251
439
#endif
440
441
movl $128,%eax
442
subl 4(%esp),%eax
443
movl $3,%eax
444
adcl $0,%eax
445
movl %eax,4(%esp)
446
jmp .L_Camellia_DecryptBlock_Rounds_begin
447
.size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
448
.globl Camellia_decrypt
449
.type Camellia_decrypt,@function
450
.align 16
451
Camellia_decrypt:
452
.L_Camellia_decrypt_begin:
453
#ifdef __CET__
454
455
.byte 243,15,30,251
456
#endif
457
458
pushl %ebp
459
pushl %ebx
460
pushl %esi
461
pushl %edi
462
movl 20(%esp),%esi
463
movl 28(%esp),%edi
464
movl %esp,%ebx
465
subl $28,%esp
466
andl $-64,%esp
467
movl 272(%edi),%eax
468
leal -127(%edi),%ecx
469
subl %esp,%ecx
470
negl %ecx
471
andl $960,%ecx
472
subl %ecx,%esp
473
addl $4,%esp
474
shll $6,%eax
475
movl %edi,16(%esp)
476
leal (%edi,%eax,1),%edi
477
movl %ebx,20(%esp)
478
call .L005pic_point
479
.L005pic_point:
480
popl %ebp
481
leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
482
movl (%esi),%eax
483
movl 4(%esi),%ebx
484
movl 8(%esi),%ecx
485
bswap %eax
486
movl 12(%esi),%edx
487
bswap %ebx
488
bswap %ecx
489
bswap %edx
490
call _x86_Camellia_decrypt
491
movl 20(%esp),%esp
492
bswap %eax
493
movl 24(%esp),%esi
494
bswap %ebx
495
bswap %ecx
496
bswap %edx
497
movl %eax,(%esi)
498
movl %ebx,4(%esi)
499
movl %ecx,8(%esi)
500
movl %edx,12(%esi)
501
popl %edi
502
popl %esi
503
popl %ebx
504
popl %ebp
505
ret
506
.size Camellia_decrypt,.-.L_Camellia_decrypt_begin
507
.type _x86_Camellia_decrypt,@function
508
.align 16
509
_x86_Camellia_decrypt:
510
#ifdef __CET__
511
512
.byte 243,15,30,251
513
#endif
514
515
xorl (%edi),%eax
516
xorl 4(%edi),%ebx
517
xorl 8(%edi),%ecx
518
xorl 12(%edi),%edx
519
movl -8(%edi),%esi
520
movl %eax,4(%esp)
521
movl %ebx,8(%esp)
522
movl %ecx,12(%esp)
523
movl %edx,16(%esp)
524
.align 16
525
.L006loop:
526
xorl %esi,%eax
527
xorl -4(%edi),%ebx
528
movzbl %ah,%esi
529
movl 2052(%ebp,%esi,8),%edx
530
movzbl %al,%esi
531
xorl 4(%ebp,%esi,8),%edx
532
shrl $16,%eax
533
movzbl %bl,%esi
534
movl (%ebp,%esi,8),%ecx
535
movzbl %ah,%esi
536
xorl (%ebp,%esi,8),%edx
537
movzbl %bh,%esi
538
xorl 4(%ebp,%esi,8),%ecx
539
shrl $16,%ebx
540
movzbl %al,%eax
541
xorl 2048(%ebp,%eax,8),%edx
542
movzbl %bh,%esi
543
movl 16(%esp),%eax
544
xorl %edx,%ecx
545
rorl $8,%edx
546
xorl 2048(%ebp,%esi,8),%ecx
547
movzbl %bl,%esi
548
movl 12(%esp),%ebx
549
xorl %eax,%edx
550
xorl 2052(%ebp,%esi,8),%ecx
551
movl -16(%edi),%esi
552
xorl %ecx,%edx
553
movl %edx,16(%esp)
554
xorl %ebx,%ecx
555
movl %ecx,12(%esp)
556
xorl %esi,%ecx
557
xorl -12(%edi),%edx
558
movzbl %ch,%esi
559
movl 2052(%ebp,%esi,8),%ebx
560
movzbl %cl,%esi
561
xorl 4(%ebp,%esi,8),%ebx
562
shrl $16,%ecx
563
movzbl %dl,%esi
564
movl (%ebp,%esi,8),%eax
565
movzbl %ch,%esi
566
xorl (%ebp,%esi,8),%ebx
567
movzbl %dh,%esi
568
xorl 4(%ebp,%esi,8),%eax
569
shrl $16,%edx
570
movzbl %cl,%ecx
571
xorl 2048(%ebp,%ecx,8),%ebx
572
movzbl %dh,%esi
573
movl 8(%esp),%ecx
574
xorl %ebx,%eax
575
rorl $8,%ebx
576
xorl 2048(%ebp,%esi,8),%eax
577
movzbl %dl,%esi
578
movl 4(%esp),%edx
579
xorl %ecx,%ebx
580
xorl 2052(%ebp,%esi,8),%eax
581
movl -24(%edi),%esi
582
xorl %eax,%ebx
583
movl %ebx,8(%esp)
584
xorl %edx,%eax
585
movl %eax,4(%esp)
586
xorl %esi,%eax
587
xorl -20(%edi),%ebx
588
movzbl %ah,%esi
589
movl 2052(%ebp,%esi,8),%edx
590
movzbl %al,%esi
591
xorl 4(%ebp,%esi,8),%edx
592
shrl $16,%eax
593
movzbl %bl,%esi
594
movl (%ebp,%esi,8),%ecx
595
movzbl %ah,%esi
596
xorl (%ebp,%esi,8),%edx
597
movzbl %bh,%esi
598
xorl 4(%ebp,%esi,8),%ecx
599
shrl $16,%ebx
600
movzbl %al,%eax
601
xorl 2048(%ebp,%eax,8),%edx
602
movzbl %bh,%esi
603
movl 16(%esp),%eax
604
xorl %edx,%ecx
605
rorl $8,%edx
606
xorl 2048(%ebp,%esi,8),%ecx
607
movzbl %bl,%esi
608
movl 12(%esp),%ebx
609
xorl %eax,%edx
610
xorl 2052(%ebp,%esi,8),%ecx
611
movl -32(%edi),%esi
612
xorl %ecx,%edx
613
movl %edx,16(%esp)
614
xorl %ebx,%ecx
615
movl %ecx,12(%esp)
616
xorl %esi,%ecx
617
xorl -28(%edi),%edx
618
movzbl %ch,%esi
619
movl 2052(%ebp,%esi,8),%ebx
620
movzbl %cl,%esi
621
xorl 4(%ebp,%esi,8),%ebx
622
shrl $16,%ecx
623
movzbl %dl,%esi
624
movl (%ebp,%esi,8),%eax
625
movzbl %ch,%esi
626
xorl (%ebp,%esi,8),%ebx
627
movzbl %dh,%esi
628
xorl 4(%ebp,%esi,8),%eax
629
shrl $16,%edx
630
movzbl %cl,%ecx
631
xorl 2048(%ebp,%ecx,8),%ebx
632
movzbl %dh,%esi
633
movl 8(%esp),%ecx
634
xorl %ebx,%eax
635
rorl $8,%ebx
636
xorl 2048(%ebp,%esi,8),%eax
637
movzbl %dl,%esi
638
movl 4(%esp),%edx
639
xorl %ecx,%ebx
640
xorl 2052(%ebp,%esi,8),%eax
641
movl -40(%edi),%esi
642
xorl %eax,%ebx
643
movl %ebx,8(%esp)
644
xorl %edx,%eax
645
movl %eax,4(%esp)
646
xorl %esi,%eax
647
xorl -36(%edi),%ebx
648
movzbl %ah,%esi
649
movl 2052(%ebp,%esi,8),%edx
650
movzbl %al,%esi
651
xorl 4(%ebp,%esi,8),%edx
652
shrl $16,%eax
653
movzbl %bl,%esi
654
movl (%ebp,%esi,8),%ecx
655
movzbl %ah,%esi
656
xorl (%ebp,%esi,8),%edx
657
movzbl %bh,%esi
658
xorl 4(%ebp,%esi,8),%ecx
659
shrl $16,%ebx
660
movzbl %al,%eax
661
xorl 2048(%ebp,%eax,8),%edx
662
movzbl %bh,%esi
663
movl 16(%esp),%eax
664
xorl %edx,%ecx
665
rorl $8,%edx
666
xorl 2048(%ebp,%esi,8),%ecx
667
movzbl %bl,%esi
668
movl 12(%esp),%ebx
669
xorl %eax,%edx
670
xorl 2052(%ebp,%esi,8),%ecx
671
movl -48(%edi),%esi
672
xorl %ecx,%edx
673
movl %edx,16(%esp)
674
xorl %ebx,%ecx
675
movl %ecx,12(%esp)
676
xorl %esi,%ecx
677
xorl -44(%edi),%edx
678
movzbl %ch,%esi
679
movl 2052(%ebp,%esi,8),%ebx
680
movzbl %cl,%esi
681
xorl 4(%ebp,%esi,8),%ebx
682
shrl $16,%ecx
683
movzbl %dl,%esi
684
movl (%ebp,%esi,8),%eax
685
movzbl %ch,%esi
686
xorl (%ebp,%esi,8),%ebx
687
movzbl %dh,%esi
688
xorl 4(%ebp,%esi,8),%eax
689
shrl $16,%edx
690
movzbl %cl,%ecx
691
xorl 2048(%ebp,%ecx,8),%ebx
692
movzbl %dh,%esi
693
movl 8(%esp),%ecx
694
xorl %ebx,%eax
695
rorl $8,%ebx
696
xorl 2048(%ebp,%esi,8),%eax
697
movzbl %dl,%esi
698
movl 4(%esp),%edx
699
xorl %ecx,%ebx
700
xorl 2052(%ebp,%esi,8),%eax
701
movl -56(%edi),%esi
702
xorl %eax,%ebx
703
movl %ebx,8(%esp)
704
xorl %edx,%eax
705
movl %eax,4(%esp)
706
subl $64,%edi
707
cmpl 20(%esp),%edi
708
je .L007done
709
andl %eax,%esi
710
movl 16(%esp),%edx
711
roll $1,%esi
712
movl %edx,%ecx
713
xorl %esi,%ebx
714
orl 4(%edi),%ecx
715
movl %ebx,8(%esp)
716
xorl 12(%esp),%ecx
717
movl 12(%edi),%esi
718
movl %ecx,12(%esp)
719
orl %ebx,%esi
720
andl (%edi),%ecx
721
xorl %esi,%eax
722
roll $1,%ecx
723
movl %eax,4(%esp)
724
xorl %ecx,%edx
725
movl -8(%edi),%esi
726
movl %edx,16(%esp)
727
jmp .L006loop
728
.align 8
729
.L007done:
730
movl %eax,%ecx
731
movl %ebx,%edx
732
movl 12(%esp),%eax
733
movl 16(%esp),%ebx
734
xorl %esi,%ecx
735
xorl 12(%edi),%edx
736
xorl (%edi),%eax
737
xorl 4(%edi),%ebx
738
ret
739
.size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
740
.globl Camellia_Ekeygen
741
.type Camellia_Ekeygen,@function
742
.align 16
743
Camellia_Ekeygen:
744
.L_Camellia_Ekeygen_begin:
745
#ifdef __CET__
746
747
.byte 243,15,30,251
748
#endif
749
750
pushl %ebp
751
pushl %ebx
752
pushl %esi
753
pushl %edi
754
subl $16,%esp
755
movl 36(%esp),%ebp
756
movl 40(%esp),%esi
757
movl 44(%esp),%edi
758
movl (%esi),%eax
759
movl 4(%esi),%ebx
760
movl 8(%esi),%ecx
761
movl 12(%esi),%edx
762
bswap %eax
763
bswap %ebx
764
bswap %ecx
765
bswap %edx
766
movl %eax,(%edi)
767
movl %ebx,4(%edi)
768
movl %ecx,8(%edi)
769
movl %edx,12(%edi)
770
cmpl $128,%ebp
771
je .L0081st128
772
movl 16(%esi),%eax
773
movl 20(%esi),%ebx
774
cmpl $192,%ebp
775
je .L0091st192
776
movl 24(%esi),%ecx
777
movl 28(%esi),%edx
778
jmp .L0101st256
779
.align 4
780
.L0091st192:
781
movl %eax,%ecx
782
movl %ebx,%edx
783
notl %ecx
784
notl %edx
785
.align 4
786
.L0101st256:
787
bswap %eax
788
bswap %ebx
789
bswap %ecx
790
bswap %edx
791
movl %eax,32(%edi)
792
movl %ebx,36(%edi)
793
movl %ecx,40(%edi)
794
movl %edx,44(%edi)
795
xorl (%edi),%eax
796
xorl 4(%edi),%ebx
797
xorl 8(%edi),%ecx
798
xorl 12(%edi),%edx
799
.align 4
800
.L0081st128:
801
call .L011pic_point
802
.L011pic_point:
803
popl %ebp
804
leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
805
leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
806
movl (%edi),%esi
807
movl %eax,(%esp)
808
movl %ebx,4(%esp)
809
movl %ecx,8(%esp)
810
movl %edx,12(%esp)
811
xorl %esi,%eax
812
xorl 4(%edi),%ebx
813
movzbl %ah,%esi
814
movl 2052(%ebp,%esi,8),%edx
815
movzbl %al,%esi
816
xorl 4(%ebp,%esi,8),%edx
817
shrl $16,%eax
818
movzbl %bl,%esi
819
movl (%ebp,%esi,8),%ecx
820
movzbl %ah,%esi
821
xorl (%ebp,%esi,8),%edx
822
movzbl %bh,%esi
823
xorl 4(%ebp,%esi,8),%ecx
824
shrl $16,%ebx
825
movzbl %al,%eax
826
xorl 2048(%ebp,%eax,8),%edx
827
movzbl %bh,%esi
828
movl 12(%esp),%eax
829
xorl %edx,%ecx
830
rorl $8,%edx
831
xorl 2048(%ebp,%esi,8),%ecx
832
movzbl %bl,%esi
833
movl 8(%esp),%ebx
834
xorl %eax,%edx
835
xorl 2052(%ebp,%esi,8),%ecx
836
movl 8(%edi),%esi
837
xorl %ecx,%edx
838
movl %edx,12(%esp)
839
xorl %ebx,%ecx
840
movl %ecx,8(%esp)
841
xorl %esi,%ecx
842
xorl 12(%edi),%edx
843
movzbl %ch,%esi
844
movl 2052(%ebp,%esi,8),%ebx
845
movzbl %cl,%esi
846
xorl 4(%ebp,%esi,8),%ebx
847
shrl $16,%ecx
848
movzbl %dl,%esi
849
movl (%ebp,%esi,8),%eax
850
movzbl %ch,%esi
851
xorl (%ebp,%esi,8),%ebx
852
movzbl %dh,%esi
853
xorl 4(%ebp,%esi,8),%eax
854
shrl $16,%edx
855
movzbl %cl,%ecx
856
xorl 2048(%ebp,%ecx,8),%ebx
857
movzbl %dh,%esi
858
movl 4(%esp),%ecx
859
xorl %ebx,%eax
860
rorl $8,%ebx
861
xorl 2048(%ebp,%esi,8),%eax
862
movzbl %dl,%esi
863
movl (%esp),%edx
864
xorl %ecx,%ebx
865
xorl 2052(%ebp,%esi,8),%eax
866
movl 16(%edi),%esi
867
xorl %eax,%ebx
868
movl %ebx,4(%esp)
869
xorl %edx,%eax
870
movl %eax,(%esp)
871
movl 8(%esp),%ecx
872
movl 12(%esp),%edx
873
movl 44(%esp),%esi
874
xorl (%esi),%eax
875
xorl 4(%esi),%ebx
876
xorl 8(%esi),%ecx
877
xorl 12(%esi),%edx
878
movl 16(%edi),%esi
879
movl %eax,(%esp)
880
movl %ebx,4(%esp)
881
movl %ecx,8(%esp)
882
movl %edx,12(%esp)
883
xorl %esi,%eax
884
xorl 20(%edi),%ebx
885
movzbl %ah,%esi
886
movl 2052(%ebp,%esi,8),%edx
887
movzbl %al,%esi
888
xorl 4(%ebp,%esi,8),%edx
889
shrl $16,%eax
890
movzbl %bl,%esi
891
movl (%ebp,%esi,8),%ecx
892
movzbl %ah,%esi
893
xorl (%ebp,%esi,8),%edx
894
movzbl %bh,%esi
895
xorl 4(%ebp,%esi,8),%ecx
896
shrl $16,%ebx
897
movzbl %al,%eax
898
xorl 2048(%ebp,%eax,8),%edx
899
movzbl %bh,%esi
900
movl 12(%esp),%eax
901
xorl %edx,%ecx
902
rorl $8,%edx
903
xorl 2048(%ebp,%esi,8),%ecx
904
movzbl %bl,%esi
905
movl 8(%esp),%ebx
906
xorl %eax,%edx
907
xorl 2052(%ebp,%esi,8),%ecx
908
movl 24(%edi),%esi
909
xorl %ecx,%edx
910
movl %edx,12(%esp)
911
xorl %ebx,%ecx
912
movl %ecx,8(%esp)
913
xorl %esi,%ecx
914
xorl 28(%edi),%edx
915
movzbl %ch,%esi
916
movl 2052(%ebp,%esi,8),%ebx
917
movzbl %cl,%esi
918
xorl 4(%ebp,%esi,8),%ebx
919
shrl $16,%ecx
920
movzbl %dl,%esi
921
movl (%ebp,%esi,8),%eax
922
movzbl %ch,%esi
923
xorl (%ebp,%esi,8),%ebx
924
movzbl %dh,%esi
925
xorl 4(%ebp,%esi,8),%eax
926
shrl $16,%edx
927
movzbl %cl,%ecx
928
xorl 2048(%ebp,%ecx,8),%ebx
929
movzbl %dh,%esi
930
movl 4(%esp),%ecx
931
xorl %ebx,%eax
932
rorl $8,%ebx
933
xorl 2048(%ebp,%esi,8),%eax
934
movzbl %dl,%esi
935
movl (%esp),%edx
936
xorl %ecx,%ebx
937
xorl 2052(%ebp,%esi,8),%eax
938
movl 32(%edi),%esi
939
xorl %eax,%ebx
940
movl %ebx,4(%esp)
941
xorl %edx,%eax
942
movl %eax,(%esp)
943
movl 8(%esp),%ecx
944
movl 12(%esp),%edx
945
movl 36(%esp),%esi
946
cmpl $128,%esi
947
jne .L0122nd256
948
movl 44(%esp),%edi
949
leal 128(%edi),%edi
950
movl %eax,-112(%edi)
951
movl %ebx,-108(%edi)
952
movl %ecx,-104(%edi)
953
movl %edx,-100(%edi)
954
movl %eax,%ebp
955
shll $15,%eax
956
movl %ebx,%esi
957
shrl $17,%esi
958
shll $15,%ebx
959
orl %esi,%eax
960
movl %ecx,%esi
961
shll $15,%ecx
962
movl %eax,-80(%edi)
963
shrl $17,%esi
964
orl %esi,%ebx
965
shrl $17,%ebp
966
movl %edx,%esi
967
shrl $17,%esi
968
movl %ebx,-76(%edi)
969
shll $15,%edx
970
orl %esi,%ecx
971
orl %ebp,%edx
972
movl %ecx,-72(%edi)
973
movl %edx,-68(%edi)
974
movl %eax,%ebp
975
shll $15,%eax
976
movl %ebx,%esi
977
shrl $17,%esi
978
shll $15,%ebx
979
orl %esi,%eax
980
movl %ecx,%esi
981
shll $15,%ecx
982
movl %eax,-64(%edi)
983
shrl $17,%esi
984
orl %esi,%ebx
985
shrl $17,%ebp
986
movl %edx,%esi
987
shrl $17,%esi
988
movl %ebx,-60(%edi)
989
shll $15,%edx
990
orl %esi,%ecx
991
orl %ebp,%edx
992
movl %ecx,-56(%edi)
993
movl %edx,-52(%edi)
994
movl %eax,%ebp
995
shll $15,%eax
996
movl %ebx,%esi
997
shrl $17,%esi
998
shll $15,%ebx
999
orl %esi,%eax
1000
movl %ecx,%esi
1001
shll $15,%ecx
1002
movl %eax,-32(%edi)
1003
shrl $17,%esi
1004
orl %esi,%ebx
1005
shrl $17,%ebp
1006
movl %edx,%esi
1007
shrl $17,%esi
1008
movl %ebx,-28(%edi)
1009
shll $15,%edx
1010
orl %esi,%ecx
1011
orl %ebp,%edx
1012
movl %eax,%ebp
1013
shll $15,%eax
1014
movl %ebx,%esi
1015
shrl $17,%esi
1016
shll $15,%ebx
1017
orl %esi,%eax
1018
movl %ecx,%esi
1019
shll $15,%ecx
1020
movl %eax,-16(%edi)
1021
shrl $17,%esi
1022
orl %esi,%ebx
1023
shrl $17,%ebp
1024
movl %edx,%esi
1025
shrl $17,%esi
1026
movl %ebx,-12(%edi)
1027
shll $15,%edx
1028
orl %esi,%ecx
1029
orl %ebp,%edx
1030
movl %ecx,-8(%edi)
1031
movl %edx,-4(%edi)
1032
movl %ebx,%ebp
1033
shll $2,%ebx
1034
movl %ecx,%esi
1035
shrl $30,%esi
1036
shll $2,%ecx
1037
orl %esi,%ebx
1038
movl %edx,%esi
1039
shll $2,%edx
1040
movl %ebx,32(%edi)
1041
shrl $30,%esi
1042
orl %esi,%ecx
1043
shrl $30,%ebp
1044
movl %eax,%esi
1045
shrl $30,%esi
1046
movl %ecx,36(%edi)
1047
shll $2,%eax
1048
orl %esi,%edx
1049
orl %ebp,%eax
1050
movl %edx,40(%edi)
1051
movl %eax,44(%edi)
1052
movl %ebx,%ebp
1053
shll $17,%ebx
1054
movl %ecx,%esi
1055
shrl $15,%esi
1056
shll $17,%ecx
1057
orl %esi,%ebx
1058
movl %edx,%esi
1059
shll $17,%edx
1060
movl %ebx,64(%edi)
1061
shrl $15,%esi
1062
orl %esi,%ecx
1063
shrl $15,%ebp
1064
movl %eax,%esi
1065
shrl $15,%esi
1066
movl %ecx,68(%edi)
1067
shll $17,%eax
1068
orl %esi,%edx
1069
orl %ebp,%eax
1070
movl %edx,72(%edi)
1071
movl %eax,76(%edi)
1072
movl -128(%edi),%ebx
1073
movl -124(%edi),%ecx
1074
movl -120(%edi),%edx
1075
movl -116(%edi),%eax
1076
movl %ebx,%ebp
1077
shll $15,%ebx
1078
movl %ecx,%esi
1079
shrl $17,%esi
1080
shll $15,%ecx
1081
orl %esi,%ebx
1082
movl %edx,%esi
1083
shll $15,%edx
1084
movl %ebx,-96(%edi)
1085
shrl $17,%esi
1086
orl %esi,%ecx
1087
shrl $17,%ebp
1088
movl %eax,%esi
1089
shrl $17,%esi
1090
movl %ecx,-92(%edi)
1091
shll $15,%eax
1092
orl %esi,%edx
1093
orl %ebp,%eax
1094
movl %edx,-88(%edi)
1095
movl %eax,-84(%edi)
1096
movl %ebx,%ebp
1097
shll $30,%ebx
1098
movl %ecx,%esi
1099
shrl $2,%esi
1100
shll $30,%ecx
1101
orl %esi,%ebx
1102
movl %edx,%esi
1103
shll $30,%edx
1104
movl %ebx,-48(%edi)
1105
shrl $2,%esi
1106
orl %esi,%ecx
1107
shrl $2,%ebp
1108
movl %eax,%esi
1109
shrl $2,%esi
1110
movl %ecx,-44(%edi)
1111
shll $30,%eax
1112
orl %esi,%edx
1113
orl %ebp,%eax
1114
movl %edx,-40(%edi)
1115
movl %eax,-36(%edi)
1116
movl %ebx,%ebp
1117
shll $15,%ebx
1118
movl %ecx,%esi
1119
shrl $17,%esi
1120
shll $15,%ecx
1121
orl %esi,%ebx
1122
movl %edx,%esi
1123
shll $15,%edx
1124
shrl $17,%esi
1125
orl %esi,%ecx
1126
shrl $17,%ebp
1127
movl %eax,%esi
1128
shrl $17,%esi
1129
shll $15,%eax
1130
orl %esi,%edx
1131
orl %ebp,%eax
1132
movl %edx,-24(%edi)
1133
movl %eax,-20(%edi)
1134
movl %ebx,%ebp
1135
shll $17,%ebx
1136
movl %ecx,%esi
1137
shrl $15,%esi
1138
shll $17,%ecx
1139
orl %esi,%ebx
1140
movl %edx,%esi
1141
shll $17,%edx
1142
movl %ebx,(%edi)
1143
shrl $15,%esi
1144
orl %esi,%ecx
1145
shrl $15,%ebp
1146
movl %eax,%esi
1147
shrl $15,%esi
1148
movl %ecx,4(%edi)
1149
shll $17,%eax
1150
orl %esi,%edx
1151
orl %ebp,%eax
1152
movl %edx,8(%edi)
1153
movl %eax,12(%edi)
1154
movl %ebx,%ebp
1155
shll $17,%ebx
1156
movl %ecx,%esi
1157
shrl $15,%esi
1158
shll $17,%ecx
1159
orl %esi,%ebx
1160
movl %edx,%esi
1161
shll $17,%edx
1162
movl %ebx,16(%edi)
1163
shrl $15,%esi
1164
orl %esi,%ecx
1165
shrl $15,%ebp
1166
movl %eax,%esi
1167
shrl $15,%esi
1168
movl %ecx,20(%edi)
1169
shll $17,%eax
1170
orl %esi,%edx
1171
orl %ebp,%eax
1172
movl %edx,24(%edi)
1173
movl %eax,28(%edi)
1174
movl %ebx,%ebp
1175
shll $17,%ebx
1176
movl %ecx,%esi
1177
shrl $15,%esi
1178
shll $17,%ecx
1179
orl %esi,%ebx
1180
movl %edx,%esi
1181
shll $17,%edx
1182
movl %ebx,48(%edi)
1183
shrl $15,%esi
1184
orl %esi,%ecx
1185
shrl $15,%ebp
1186
movl %eax,%esi
1187
shrl $15,%esi
1188
movl %ecx,52(%edi)
1189
shll $17,%eax
1190
orl %esi,%edx
1191
orl %ebp,%eax
1192
movl %edx,56(%edi)
1193
movl %eax,60(%edi)
1194
movl $3,%eax
1195
jmp .L013done
1196
.align 16
1197
.L0122nd256:
1198
movl 44(%esp),%esi
1199
movl %eax,48(%esi)
1200
movl %ebx,52(%esi)
1201
movl %ecx,56(%esi)
1202
movl %edx,60(%esi)
1203
xorl 32(%esi),%eax
1204
xorl 36(%esi),%ebx
1205
xorl 40(%esi),%ecx
1206
xorl 44(%esi),%edx
1207
movl 32(%edi),%esi
1208
movl %eax,(%esp)
1209
movl %ebx,4(%esp)
1210
movl %ecx,8(%esp)
1211
movl %edx,12(%esp)
1212
xorl %esi,%eax
1213
xorl 36(%edi),%ebx
1214
movzbl %ah,%esi
1215
movl 2052(%ebp,%esi,8),%edx
1216
movzbl %al,%esi
1217
xorl 4(%ebp,%esi,8),%edx
1218
shrl $16,%eax
1219
movzbl %bl,%esi
1220
movl (%ebp,%esi,8),%ecx
1221
movzbl %ah,%esi
1222
xorl (%ebp,%esi,8),%edx
1223
movzbl %bh,%esi
1224
xorl 4(%ebp,%esi,8),%ecx
1225
shrl $16,%ebx
1226
movzbl %al,%eax
1227
xorl 2048(%ebp,%eax,8),%edx
1228
movzbl %bh,%esi
1229
movl 12(%esp),%eax
1230
xorl %edx,%ecx
1231
rorl $8,%edx
1232
xorl 2048(%ebp,%esi,8),%ecx
1233
movzbl %bl,%esi
1234
movl 8(%esp),%ebx
1235
xorl %eax,%edx
1236
xorl 2052(%ebp,%esi,8),%ecx
1237
movl 40(%edi),%esi
1238
xorl %ecx,%edx
1239
movl %edx,12(%esp)
1240
xorl %ebx,%ecx
1241
movl %ecx,8(%esp)
1242
xorl %esi,%ecx
1243
xorl 44(%edi),%edx
1244
movzbl %ch,%esi
1245
movl 2052(%ebp,%esi,8),%ebx
1246
movzbl %cl,%esi
1247
xorl 4(%ebp,%esi,8),%ebx
1248
shrl $16,%ecx
1249
movzbl %dl,%esi
1250
movl (%ebp,%esi,8),%eax
1251
movzbl %ch,%esi
1252
xorl (%ebp,%esi,8),%ebx
1253
movzbl %dh,%esi
1254
xorl 4(%ebp,%esi,8),%eax
1255
shrl $16,%edx
1256
movzbl %cl,%ecx
1257
xorl 2048(%ebp,%ecx,8),%ebx
1258
movzbl %dh,%esi
1259
movl 4(%esp),%ecx
1260
xorl %ebx,%eax
1261
rorl $8,%ebx
1262
xorl 2048(%ebp,%esi,8),%eax
1263
movzbl %dl,%esi
1264
movl (%esp),%edx
1265
xorl %ecx,%ebx
1266
xorl 2052(%ebp,%esi,8),%eax
1267
movl 48(%edi),%esi
1268
xorl %eax,%ebx
1269
movl %ebx,4(%esp)
1270
xorl %edx,%eax
1271
movl %eax,(%esp)
1272
movl 8(%esp),%ecx
1273
movl 12(%esp),%edx
1274
movl 44(%esp),%edi
1275
leal 128(%edi),%edi
1276
movl %eax,-112(%edi)
1277
movl %ebx,-108(%edi)
1278
movl %ecx,-104(%edi)
1279
movl %edx,-100(%edi)
1280
movl %eax,%ebp
1281
shll $30,%eax
1282
movl %ebx,%esi
1283
shrl $2,%esi
1284
shll $30,%ebx
1285
orl %esi,%eax
1286
movl %ecx,%esi
1287
shll $30,%ecx
1288
movl %eax,-48(%edi)
1289
shrl $2,%esi
1290
orl %esi,%ebx
1291
shrl $2,%ebp
1292
movl %edx,%esi
1293
shrl $2,%esi
1294
movl %ebx,-44(%edi)
1295
shll $30,%edx
1296
orl %esi,%ecx
1297
orl %ebp,%edx
1298
movl %ecx,-40(%edi)
1299
movl %edx,-36(%edi)
1300
movl %eax,%ebp
1301
shll $30,%eax
1302
movl %ebx,%esi
1303
shrl $2,%esi
1304
shll $30,%ebx
1305
orl %esi,%eax
1306
movl %ecx,%esi
1307
shll $30,%ecx
1308
movl %eax,32(%edi)
1309
shrl $2,%esi
1310
orl %esi,%ebx
1311
shrl $2,%ebp
1312
movl %edx,%esi
1313
shrl $2,%esi
1314
movl %ebx,36(%edi)
1315
shll $30,%edx
1316
orl %esi,%ecx
1317
orl %ebp,%edx
1318
movl %ecx,40(%edi)
1319
movl %edx,44(%edi)
1320
movl %ebx,%ebp
1321
shll $19,%ebx
1322
movl %ecx,%esi
1323
shrl $13,%esi
1324
shll $19,%ecx
1325
orl %esi,%ebx
1326
movl %edx,%esi
1327
shll $19,%edx
1328
movl %ebx,128(%edi)
1329
shrl $13,%esi
1330
orl %esi,%ecx
1331
shrl $13,%ebp
1332
movl %eax,%esi
1333
shrl $13,%esi
1334
movl %ecx,132(%edi)
1335
shll $19,%eax
1336
orl %esi,%edx
1337
orl %ebp,%eax
1338
movl %edx,136(%edi)
1339
movl %eax,140(%edi)
1340
movl -96(%edi),%ebx
1341
movl -92(%edi),%ecx
1342
movl -88(%edi),%edx
1343
movl -84(%edi),%eax
1344
movl %ebx,%ebp
1345
shll $15,%ebx
1346
movl %ecx,%esi
1347
shrl $17,%esi
1348
shll $15,%ecx
1349
orl %esi,%ebx
1350
movl %edx,%esi
1351
shll $15,%edx
1352
movl %ebx,-96(%edi)
1353
shrl $17,%esi
1354
orl %esi,%ecx
1355
shrl $17,%ebp
1356
movl %eax,%esi
1357
shrl $17,%esi
1358
movl %ecx,-92(%edi)
1359
shll $15,%eax
1360
orl %esi,%edx
1361
orl %ebp,%eax
1362
movl %edx,-88(%edi)
1363
movl %eax,-84(%edi)
1364
movl %ebx,%ebp
1365
shll $15,%ebx
1366
movl %ecx,%esi
1367
shrl $17,%esi
1368
shll $15,%ecx
1369
orl %esi,%ebx
1370
movl %edx,%esi
1371
shll $15,%edx
1372
movl %ebx,-64(%edi)
1373
shrl $17,%esi
1374
orl %esi,%ecx
1375
shrl $17,%ebp
1376
movl %eax,%esi
1377
shrl $17,%esi
1378
movl %ecx,-60(%edi)
1379
shll $15,%eax
1380
orl %esi,%edx
1381
orl %ebp,%eax
1382
movl %edx,-56(%edi)
1383
movl %eax,-52(%edi)
1384
movl %ebx,%ebp
1385
shll $30,%ebx
1386
movl %ecx,%esi
1387
shrl $2,%esi
1388
shll $30,%ecx
1389
orl %esi,%ebx
1390
movl %edx,%esi
1391
shll $30,%edx
1392
movl %ebx,16(%edi)
1393
shrl $2,%esi
1394
orl %esi,%ecx
1395
shrl $2,%ebp
1396
movl %eax,%esi
1397
shrl $2,%esi
1398
movl %ecx,20(%edi)
1399
shll $30,%eax
1400
orl %esi,%edx
1401
orl %ebp,%eax
1402
movl %edx,24(%edi)
1403
movl %eax,28(%edi)
1404
movl %ecx,%ebp
1405
shll $2,%ecx
1406
movl %edx,%esi
1407
shrl $30,%esi
1408
shll $2,%edx
1409
orl %esi,%ecx
1410
movl %eax,%esi
1411
shll $2,%eax
1412
movl %ecx,80(%edi)
1413
shrl $30,%esi
1414
orl %esi,%edx
1415
shrl $30,%ebp
1416
movl %ebx,%esi
1417
shrl $30,%esi
1418
movl %edx,84(%edi)
1419
shll $2,%ebx
1420
orl %esi,%eax
1421
orl %ebp,%ebx
1422
movl %eax,88(%edi)
1423
movl %ebx,92(%edi)
1424
movl -80(%edi),%ecx
1425
movl -76(%edi),%edx
1426
movl -72(%edi),%eax
1427
movl -68(%edi),%ebx
1428
movl %ecx,%ebp
1429
shll $15,%ecx
1430
movl %edx,%esi
1431
shrl $17,%esi
1432
shll $15,%edx
1433
orl %esi,%ecx
1434
movl %eax,%esi
1435
shll $15,%eax
1436
movl %ecx,-80(%edi)
1437
shrl $17,%esi
1438
orl %esi,%edx
1439
shrl $17,%ebp
1440
movl %ebx,%esi
1441
shrl $17,%esi
1442
movl %edx,-76(%edi)
1443
shll $15,%ebx
1444
orl %esi,%eax
1445
orl %ebp,%ebx
1446
movl %eax,-72(%edi)
1447
movl %ebx,-68(%edi)
1448
movl %ecx,%ebp
1449
shll $30,%ecx
1450
movl %edx,%esi
1451
shrl $2,%esi
1452
shll $30,%edx
1453
orl %esi,%ecx
1454
movl %eax,%esi
1455
shll $30,%eax
1456
movl %ecx,-16(%edi)
1457
shrl $2,%esi
1458
orl %esi,%edx
1459
shrl $2,%ebp
1460
movl %ebx,%esi
1461
shrl $2,%esi
1462
movl %edx,-12(%edi)
1463
shll $30,%ebx
1464
orl %esi,%eax
1465
orl %ebp,%ebx
1466
movl %eax,-8(%edi)
1467
movl %ebx,-4(%edi)
1468
movl %edx,64(%edi)
1469
movl %eax,68(%edi)
1470
movl %ebx,72(%edi)
1471
movl %ecx,76(%edi)
1472
movl %edx,%ebp
1473
shll $17,%edx
1474
movl %eax,%esi
1475
shrl $15,%esi
1476
shll $17,%eax
1477
orl %esi,%edx
1478
movl %ebx,%esi
1479
shll $17,%ebx
1480
movl %edx,96(%edi)
1481
shrl $15,%esi
1482
orl %esi,%eax
1483
shrl $15,%ebp
1484
movl %ecx,%esi
1485
shrl $15,%esi
1486
movl %eax,100(%edi)
1487
shll $17,%ecx
1488
orl %esi,%ebx
1489
orl %ebp,%ecx
1490
movl %ebx,104(%edi)
1491
movl %ecx,108(%edi)
1492
movl -128(%edi),%edx
1493
movl -124(%edi),%eax
1494
movl -120(%edi),%ebx
1495
movl -116(%edi),%ecx
1496
movl %eax,%ebp
1497
shll $13,%eax
1498
movl %ebx,%esi
1499
shrl $19,%esi
1500
shll $13,%ebx
1501
orl %esi,%eax
1502
movl %ecx,%esi
1503
shll $13,%ecx
1504
movl %eax,-32(%edi)
1505
shrl $19,%esi
1506
orl %esi,%ebx
1507
shrl $19,%ebp
1508
movl %edx,%esi
1509
shrl $19,%esi
1510
movl %ebx,-28(%edi)
1511
shll $13,%edx
1512
orl %esi,%ecx
1513
orl %ebp,%edx
1514
movl %ecx,-24(%edi)
1515
movl %edx,-20(%edi)
1516
movl %eax,%ebp
1517
shll $15,%eax
1518
movl %ebx,%esi
1519
shrl $17,%esi
1520
shll $15,%ebx
1521
orl %esi,%eax
1522
movl %ecx,%esi
1523
shll $15,%ecx
1524
movl %eax,(%edi)
1525
shrl $17,%esi
1526
orl %esi,%ebx
1527
shrl $17,%ebp
1528
movl %edx,%esi
1529
shrl $17,%esi
1530
movl %ebx,4(%edi)
1531
shll $15,%edx
1532
orl %esi,%ecx
1533
orl %ebp,%edx
1534
movl %ecx,8(%edi)
1535
movl %edx,12(%edi)
1536
movl %eax,%ebp
1537
shll $17,%eax
1538
movl %ebx,%esi
1539
shrl $15,%esi
1540
shll $17,%ebx
1541
orl %esi,%eax
1542
movl %ecx,%esi
1543
shll $17,%ecx
1544
movl %eax,48(%edi)
1545
shrl $15,%esi
1546
orl %esi,%ebx
1547
shrl $15,%ebp
1548
movl %edx,%esi
1549
shrl $15,%esi
1550
movl %ebx,52(%edi)
1551
shll $17,%edx
1552
orl %esi,%ecx
1553
orl %ebp,%edx
1554
movl %ecx,56(%edi)
1555
movl %edx,60(%edi)
1556
movl %ebx,%ebp
1557
shll $2,%ebx
1558
movl %ecx,%esi
1559
shrl $30,%esi
1560
shll $2,%ecx
1561
orl %esi,%ebx
1562
movl %edx,%esi
1563
shll $2,%edx
1564
movl %ebx,112(%edi)
1565
shrl $30,%esi
1566
orl %esi,%ecx
1567
shrl $30,%ebp
1568
movl %eax,%esi
1569
shrl $30,%esi
1570
movl %ecx,116(%edi)
1571
shll $2,%eax
1572
orl %esi,%edx
1573
orl %ebp,%eax
1574
movl %edx,120(%edi)
1575
movl %eax,124(%edi)
1576
movl $4,%eax
1577
.L013done:
1578
leal 144(%edi),%edx
1579
addl $16,%esp
1580
popl %edi
1581
popl %esi
1582
popl %ebx
1583
popl %ebp
1584
ret
1585
.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
1586
.globl Camellia_set_key
1587
.type Camellia_set_key,@function
1588
.align 16
1589
Camellia_set_key:
1590
.L_Camellia_set_key_begin:
1591
#ifdef __CET__
1592
1593
.byte 243,15,30,251
1594
#endif
1595
1596
pushl %ebx
1597
movl 8(%esp),%ecx
1598
movl 12(%esp),%ebx
1599
movl 16(%esp),%edx
1600
movl $-1,%eax
1601
testl %ecx,%ecx
1602
jz .L014done
1603
testl %edx,%edx
1604
jz .L014done
1605
movl $-2,%eax
1606
cmpl $256,%ebx
1607
je .L015arg_ok
1608
cmpl $192,%ebx
1609
je .L015arg_ok
1610
cmpl $128,%ebx
1611
jne .L014done
1612
.align 4
1613
.L015arg_ok:
1614
pushl %edx
1615
pushl %ecx
1616
pushl %ebx
1617
call .L_Camellia_Ekeygen_begin
1618
addl $12,%esp
1619
movl %eax,(%edx)
1620
xorl %eax,%eax
1621
.align 4
1622
.L014done:
1623
popl %ebx
1624
ret
1625
.size Camellia_set_key,.-.L_Camellia_set_key_begin
1626
.align 64
1627
.LCamellia_SIGMA:
1628
.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
1629
.align 64
1630
.LCamellia_SBOX:
1631
.long 1886416896,1886388336
1632
.long 2189591040,741081132
1633
.long 741092352,3014852787
1634
.long 3974949888,3233808576
1635
.long 3014898432,3840147684
1636
.long 656877312,1465319511
1637
.long 3233857536,3941204202
1638
.long 3857048832,2930639022
1639
.long 3840205824,589496355
1640
.long 2240120064,1802174571
1641
.long 1465341696,1162149957
1642
.long 892679424,2779054245
1643
.long 3941263872,3991732461
1644
.long 202116096,1330577487
1645
.long 2930683392,488439837
1646
.long 1094795520,2459041938
1647
.long 589505280,2256928902
1648
.long 4025478912,2947481775
1649
.long 1802201856,2088501372
1650
.long 2475922176,522125343
1651
.long 1162167552,1044250686
1652
.long 421075200,3705405660
1653
.long 2779096320,1583218782
1654
.long 555819264,185270283
1655
.long 3991792896,2795896998
1656
.long 235802112,960036921
1657
.long 1330597632,3587506389
1658
.long 1313754624,1566376029
1659
.long 488447232,3654877401
1660
.long 1701143808,1515847770
1661
.long 2459079168,1364262993
1662
.long 3183328512,1819017324
1663
.long 2256963072,2341142667
1664
.long 3099113472,2593783962
1665
.long 2947526400,4227531003
1666
.long 2408550144,2964324528
1667
.long 2088532992,1953759348
1668
.long 3958106880,724238379
1669
.long 522133248,4042260720
1670
.long 3469659648,2223243396
1671
.long 1044266496,3755933919
1672
.long 808464384,3419078859
1673
.long 3705461760,875823156
1674
.long 1600085760,1987444854
1675
.long 1583242752,1835860077
1676
.long 3318072576,2846425257
1677
.long 185273088,3520135377
1678
.long 437918208,67371012
1679
.long 2795939328,336855060
1680
.long 3789676800,976879674
1681
.long 960051456,3739091166
1682
.long 3402287616,286326801
1683
.long 3587560704,842137650
1684
.long 1195853568,2627469468
1685
.long 1566399744,1397948499
1686
.long 1027423488,4075946226
1687
.long 3654932736,4278059262
1688
.long 16843008,3486449871
1689
.long 1515870720,3284336835
1690
.long 3604403712,2054815866
1691
.long 1364283648,606339108
1692
.long 1448498688,3907518696
1693
.long 1819044864,1616904288
1694
.long 1296911616,1768489065
1695
.long 2341178112,2863268010
1696
.long 218959104,2694840480
1697
.long 2593823232,2711683233
1698
.long 1717986816,1650589794
1699
.long 4227595008,1414791252
1700
.long 3435973632,505282590
1701
.long 2964369408,3772776672
1702
.long 757935360,1684275300
1703
.long 1953788928,269484048
1704
.long 303174144,0
1705
.long 724249344,2745368739
1706
.long 538976256,1970602101
1707
.long 4042321920,2324299914
1708
.long 2981212416,3873833190
1709
.long 2223277056,151584777
1710
.long 2576980224,3722248413
1711
.long 3755990784,2273771655
1712
.long 1280068608,2206400643
1713
.long 3419130624,3452764365
1714
.long 3267543552,2425356432
1715
.long 875836416,1936916595
1716
.long 2122219008,4143317238
1717
.long 1987474944,2644312221
1718
.long 84215040,3216965823
1719
.long 1835887872,1381105746
1720
.long 3082270464,3638034648
1721
.long 2846468352,3368550600
1722
.long 825307392,3334865094
1723
.long 3520188672,2172715137
1724
.long 387389184,1869545583
1725
.long 67372032,320012307
1726
.long 3621246720,1667432547
1727
.long 336860160,3924361449
1728
.long 1482184704,2812739751
1729
.long 976894464,2677997727
1730
.long 1633771776,3166437564
1731
.long 3739147776,690552873
1732
.long 454761216,4193845497
1733
.long 286331136,791609391
1734
.long 471604224,3031695540
1735
.long 842150400,2021130360
1736
.long 252645120,101056518
1737
.long 2627509248,3890675943
1738
.long 370546176,1903231089
1739
.long 1397969664,3570663636
1740
.long 404232192,2880110763
1741
.long 4076007936,2290614408
1742
.long 572662272,2374828173
1743
.long 4278124032,1920073842
1744
.long 1145324544,3115909305
1745
.long 3486502656,4177002744
1746
.long 2998055424,2896953516
1747
.long 3284386560,909508662
1748
.long 3048584448,707395626
1749
.long 2054846976,1010565180
1750
.long 2442236160,4059103473
1751
.long 606348288,1077936192
1752
.long 134744064,3553820883
1753
.long 3907577856,3149594811
1754
.long 2829625344,1128464451
1755
.long 1616928768,353697813
1756
.long 4244438016,2913796269
1757
.long 1768515840,2004287607
1758
.long 1347440640,2155872384
1759
.long 2863311360,2189557890
1760
.long 3503345664,3974889708
1761
.long 2694881280,656867367
1762
.long 2105376000,3856990437
1763
.long 2711724288,2240086149
1764
.long 2307492096,892665909
1765
.long 1650614784,202113036
1766
.long 2543294208,1094778945
1767
.long 1414812672,4025417967
1768
.long 1532713728,2475884691
1769
.long 505290240,421068825
1770
.long 2509608192,555810849
1771
.long 3772833792,235798542
1772
.long 4294967040,1313734734
1773
.long 1684300800,1701118053
1774
.long 3537031680,3183280317
1775
.long 269488128,3099066552
1776
.long 3301229568,2408513679
1777
.long 0,3958046955
1778
.long 1212696576,3469607118
1779
.long 2745410304,808452144
1780
.long 4160222976,1600061535
1781
.long 1970631936,3318022341
1782
.long 3688618752,437911578
1783
.long 2324335104,3789619425
1784
.long 50529024,3402236106
1785
.long 3873891840,1195835463
1786
.long 3671775744,1027407933
1787
.long 151587072,16842753
1788
.long 1061109504,3604349142
1789
.long 3722304768,1448476758
1790
.long 2492765184,1296891981
1791
.long 2273806080,218955789
1792
.long 1549556736,1717960806
1793
.long 2206434048,3435921612
1794
.long 33686016,757923885
1795
.long 3452816640,303169554
1796
.long 1246382592,538968096
1797
.long 2425393152,2981167281
1798
.long 858993408,2576941209
1799
.long 1936945920,1280049228
1800
.long 1734829824,3267494082
1801
.long 4143379968,2122186878
1802
.long 4092850944,84213765
1803
.long 2644352256,3082223799
1804
.long 2139062016,825294897
1805
.long 3217014528,387383319
1806
.long 3806519808,3621191895
1807
.long 1381126656,1482162264
1808
.long 2610666240,1633747041
1809
.long 3638089728,454754331
1810
.long 640034304,471597084
1811
.long 3368601600,252641295
1812
.long 926365440,370540566
1813
.long 3334915584,404226072
1814
.long 993737472,572653602
1815
.long 2172748032,1145307204
1816
.long 2526451200,2998010034
1817
.long 1869573888,3048538293
1818
.long 1263225600,2442199185
1819
.long 320017152,134742024
1820
.long 3200171520,2829582504
1821
.long 1667457792,4244373756
1822
.long 774778368,1347420240
1823
.long 3924420864,3503292624
1824
.long 2038003968,2105344125
1825
.long 2812782336,2307457161
1826
.long 2358021120,2543255703
1827
.long 2678038272,1532690523
1828
.long 1852730880,2509570197
1829
.long 3166485504,4294902015
1830
.long 2391707136,3536978130
1831
.long 690563328,3301179588
1832
.long 4126536960,1212678216
1833
.long 4193908992,4160159991
1834
.long 3065427456,3688562907
1835
.long 791621376,50528259
1836
.long 4261281024,3671720154
1837
.long 3031741440,1061093439
1838
.long 1499027712,2492727444
1839
.long 2021160960,1549533276
1840
.long 2560137216,33685506
1841
.long 101058048,1246363722
1842
.long 1785358848,858980403
1843
.long 3890734848,1734803559
1844
.long 1179010560,4092788979
1845
.long 1903259904,2139029631
1846
.long 3132799488,3806462178
1847
.long 3570717696,2610626715
1848
.long 623191296,640024614
1849
.long 2880154368,926351415
1850
.long 1111638528,993722427
1851
.long 2290649088,2526412950
1852
.long 2728567296,1263206475
1853
.long 2374864128,3200123070
1854
.long 4210752000,774766638
1855
.long 1920102912,2037973113
1856
.long 117901056,2357985420
1857
.long 3115956480,1852702830
1858
.long 1431655680,2391670926
1859
.long 4177065984,4126474485
1860
.long 4008635904,3065381046
1861
.long 2896997376,4261216509
1862
.long 168430080,1499005017
1863
.long 909522432,2560098456
1864
.long 1229539584,1785331818
1865
.long 707406336,1178992710
1866
.long 1751672832,3132752058
1867
.long 1010580480,623181861
1868
.long 943208448,1111621698
1869
.long 4059164928,2728525986
1870
.long 2762253312,4210688250
1871
.long 1077952512,117899271
1872
.long 673720320,1431634005
1873
.long 3553874688,4008575214
1874
.long 2071689984,168427530
1875
.long 3149642496,1229520969
1876
.long 3385444608,1751646312
1877
.long 1128481536,943194168
1878
.long 3250700544,2762211492
1879
.long 353703168,673710120
1880
.long 3823362816,2071658619
1881
.long 2913840384,3385393353
1882
.long 4109693952,3250651329
1883
.long 2004317952,3823304931
1884
.long 3351758592,4109631732
1885
.long 2155905024,3351707847
1886
.long 2661195264,2661154974
1887
.long 14737632,939538488
1888
.long 328965,1090535745
1889
.long 5789784,369104406
1890
.long 14277081,1979741814
1891
.long 6776679,3640711641
1892
.long 5131854,2466288531
1893
.long 8487297,1610637408
1894
.long 13355979,4060148466
1895
.long 13224393,1912631922
1896
.long 723723,3254829762
1897
.long 11447982,2868947883
1898
.long 6974058,2583730842
1899
.long 14013909,1962964341
1900
.long 1579032,100664838
1901
.long 6118749,1459640151
1902
.long 8553090,2684395680
1903
.long 4605510,2432733585
1904
.long 14671839,4144035831
1905
.long 14079702,3036722613
1906
.long 2565927,3372272073
1907
.long 9079434,2717950626
1908
.long 3289650,2348846220
1909
.long 4934475,3523269330
1910
.long 4342338,2415956112
1911
.long 14408667,4127258358
1912
.long 1842204,117442311
1913
.long 10395294,2801837991
1914
.long 10263708,654321447
1915
.long 3815994,2382401166
1916
.long 13290186,2986390194
1917
.long 2434341,1224755529
1918
.long 8092539,3724599006
1919
.long 855309,1124090691
1920
.long 7434609,1543527516
1921
.long 6250335,3607156695
1922
.long 2039583,3338717127
1923
.long 16316664,1040203326
1924
.long 14145495,4110480885
1925
.long 4079166,2399178639
1926
.long 10329501,1728079719
1927
.long 8158332,520101663
1928
.long 6316128,402659352
1929
.long 12171705,1845522030
1930
.long 12500670,2936057775
1931
.long 12369084,788541231
1932
.long 9145227,3791708898
1933
.long 1447446,2231403909
1934
.long 3421236,218107149
1935
.long 5066061,1392530259
1936
.long 12829635,4026593520
1937
.long 7500402,2617285788
1938
.long 9803157,1694524773
1939
.long 11250603,3925928682
1940
.long 9342606,2734728099
1941
.long 12237498,2919280302
1942
.long 8026746,2650840734
1943
.long 11776947,3959483628
1944
.long 131586,2147516544
1945
.long 11842740,754986285
1946
.long 11382189,1795189611
1947
.long 10658466,2818615464
1948
.long 11316396,721431339
1949
.long 14211288,905983542
1950
.long 10132122,2785060518
1951
.long 1513239,3305162181
1952
.long 1710618,2248181382
1953
.long 3487029,1291865421
1954
.long 13421772,855651123
1955
.long 16250871,4244700669
1956
.long 10066329,1711302246
1957
.long 6381921,1476417624
1958
.long 5921370,2516620950
1959
.long 15263976,973093434
1960
.long 2368548,150997257
1961
.long 5658198,2499843477
1962
.long 4210752,268439568
1963
.long 14803425,2013296760
1964
.long 6513507,3623934168
1965
.long 592137,1107313218
1966
.long 3355443,3422604492
1967
.long 12566463,4009816047
1968
.long 10000536,637543974
1969
.long 9934743,3842041317
1970
.long 8750469,1627414881
1971
.long 6842472,436214298
1972
.long 16579836,1056980799
1973
.long 15527148,989870907
1974
.long 657930,2181071490
1975
.long 14342874,3053500086
1976
.long 7303023,3674266587
1977
.long 5460819,3556824276
1978
.long 6447714,2550175896
1979
.long 10724259,3892373736
1980
.long 3026478,2332068747
1981
.long 526344,33554946
1982
.long 11513775,3942706155
1983
.long 2631720,167774730
1984
.long 11579568,738208812
1985
.long 7631988,486546717
1986
.long 12763842,2952835248
1987
.long 12434877,1862299503
1988
.long 3552822,2365623693
1989
.long 2236962,2281736328
1990
.long 3684408,234884622
1991
.long 6579300,419436825
1992
.long 1973790,2264958855
1993
.long 3750201,1308642894
1994
.long 2894892,184552203
1995
.long 10921638,2835392937
1996
.long 3158064,201329676
1997
.long 15066597,2030074233
1998
.long 4473924,285217041
1999
.long 16645629,2130739071
2000
.long 8947848,570434082
2001
.long 10461087,3875596263
2002
.long 6645093,1493195097
2003
.long 8882055,3774931425
2004
.long 7039851,3657489114
2005
.long 16053492,1023425853
2006
.long 2302755,3355494600
2007
.long 4737096,301994514
2008
.long 1052688,67109892
2009
.long 13750737,1946186868
2010
.long 5329233,1409307732
2011
.long 12632256,805318704
2012
.long 16382457,2113961598
2013
.long 13816530,3019945140
2014
.long 10526880,671098920
2015
.long 5592405,1426085205
2016
.long 10592673,1744857192
2017
.long 4276545,1342197840
2018
.long 16448250,3187719870
2019
.long 4408131,3489714384
2020
.long 1250067,3288384708
2021
.long 12895428,822096177
2022
.long 3092271,3405827019
2023
.long 11053224,704653866
2024
.long 11974326,2902502829
2025
.long 3947580,251662095
2026
.long 2829099,3389049546
2027
.long 12698049,1879076976
2028
.long 16777215,4278255615
2029
.long 13158600,838873650
2030
.long 10855845,1761634665
2031
.long 2105376,134219784
2032
.long 9013641,1644192354
2033
.long 0,0
2034
.long 9474192,603989028
2035
.long 4671303,3506491857
2036
.long 15724527,4211145723
2037
.long 15395562,3120609978
2038
.long 12040119,3976261101
2039
.long 1381653,1157645637
2040
.long 394758,2164294017
2041
.long 13487565,1929409395
2042
.long 11908533,1828744557
2043
.long 1184274,2214626436
2044
.long 8289918,2667618207
2045
.long 12303291,3993038574
2046
.long 2697513,1241533002
2047
.long 986895,3271607235
2048
.long 12105912,771763758
2049
.long 460551,3238052289
2050
.long 263172,16777473
2051
.long 10197915,3858818790
2052
.long 9737364,620766501
2053
.long 2171169,1207978056
2054
.long 6710886,2566953369
2055
.long 15132390,3103832505
2056
.long 13553358,3003167667
2057
.long 15592941,2063629179
2058
.long 15198183,4177590777
2059
.long 3881787,3456159438
2060
.long 16711422,3204497343
2061
.long 8355711,3741376479
2062
.long 12961221,1895854449
2063
.long 10790052,687876393
2064
.long 3618615,3439381965
2065
.long 11645361,1811967084
2066
.long 5000268,318771987
2067
.long 9539985,1677747300
2068
.long 7237230,2600508315
2069
.long 9276813,1660969827
2070
.long 7763574,2634063261
2071
.long 197379,3221274816
2072
.long 2960685,1258310475
2073
.long 14606046,3070277559
2074
.long 9868950,2768283045
2075
.long 2500134,2298513801
2076
.long 8224125,1593859935
2077
.long 13027014,2969612721
2078
.long 6052956,385881879
2079
.long 13882323,4093703412
2080
.long 15921906,3154164924
2081
.long 5197647,3540046803
2082
.long 1644825,1174423110
2083
.long 4144959,3472936911
2084
.long 14474460,922761015
2085
.long 7960953,1577082462
2086
.long 1907997,1191200583
2087
.long 5395026,2483066004
2088
.long 15461355,4194368250
2089
.long 15987699,4227923196
2090
.long 7171437,1526750043
2091
.long 6184542,2533398423
2092
.long 16514043,4261478142
2093
.long 6908265,1509972570
2094
.long 11711154,2885725356
2095
.long 15790320,1006648380
2096
.long 3223857,1275087948
2097
.long 789516,50332419
2098
.long 13948116,889206069
2099
.long 13619151,4076925939
2100
.long 9211020,587211555
2101
.long 14869218,3087055032
2102
.long 7697781,1560304989
2103
.long 11119017,1778412138
2104
.long 4868682,2449511058
2105
.long 5723991,3573601749
2106
.long 8684676,553656609
2107
.long 1118481,1140868164
2108
.long 4539717,1358975313
2109
.long 1776411,3321939654
2110
.long 16119285,2097184125
2111
.long 15000804,956315961
2112
.long 921102,2197848963
2113
.long 7566195,3691044060
2114
.long 11184810,2852170410
2115
.long 15856113,2080406652
2116
.long 14540253,1996519287
2117
.long 5855577,1442862678
2118
.long 1315860,83887365
2119
.long 7105644,452991771
2120
.long 9605778,2751505572
2121
.long 5526612,352326933
2122
.long 13684944,872428596
2123
.long 7895160,503324190
2124
.long 7368816,469769244
2125
.long 14935011,4160813304
2126
.long 4802889,1375752786
2127
.long 8421504,536879136
2128
.long 5263440,335549460
2129
.long 10987431,3909151209
2130
.long 16185078,3170942397
2131
.long 7829367,3707821533
2132
.long 9671571,3825263844
2133
.long 8816262,2701173153
2134
.long 8618883,3758153952
2135
.long 2763306,2315291274
2136
.long 13092807,4043370993
2137
.long 5987163,3590379222
2138
.long 15329769,2046851706
2139
.long 15658734,3137387451
2140
.long 9408399,3808486371
2141
.long 65793,1073758272
2142
.long 4013373,1325420367
2143
.globl Camellia_cbc_encrypt
2144
.type Camellia_cbc_encrypt,@function
2145
.align 16
2146
Camellia_cbc_encrypt:
2147
.L_Camellia_cbc_encrypt_begin:
2148
#ifdef __CET__
2149
2150
.byte 243,15,30,251
2151
#endif
2152
2153
pushl %ebp
2154
pushl %ebx
2155
pushl %esi
2156
pushl %edi
2157
movl 28(%esp),%ecx
2158
cmpl $0,%ecx
2159
je .L016enc_out
2160
pushfl
2161
cld
2162
movl 24(%esp),%eax
2163
movl 28(%esp),%ebx
2164
movl 36(%esp),%edx
2165
movl 40(%esp),%ebp
2166
leal -64(%esp),%esi
2167
andl $-64,%esi
2168
leal -127(%edx),%edi
2169
subl %esi,%edi
2170
negl %edi
2171
andl $960,%edi
2172
subl %edi,%esi
2173
movl 44(%esp),%edi
2174
xchgl %esi,%esp
2175
addl $4,%esp
2176
movl %esi,20(%esp)
2177
movl %eax,24(%esp)
2178
movl %ebx,28(%esp)
2179
movl %ecx,32(%esp)
2180
movl %edx,36(%esp)
2181
movl %ebp,40(%esp)
2182
call .L017pic_point
2183
.L017pic_point:
2184
popl %ebp
2185
leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
2186
movl $32,%esi
2187
.align 4
2188
.L018prefetch_sbox:
2189
movl (%ebp),%eax
2190
movl 32(%ebp),%ebx
2191
movl 64(%ebp),%ecx
2192
movl 96(%ebp),%edx
2193
leal 128(%ebp),%ebp
2194
decl %esi
2195
jnz .L018prefetch_sbox
2196
movl 36(%esp),%eax
2197
subl $4096,%ebp
2198
movl 24(%esp),%esi
2199
movl 272(%eax),%edx
2200
cmpl $0,%edi
2201
je .L019DECRYPT
2202
movl 32(%esp),%ecx
2203
movl 40(%esp),%edi
2204
shll $6,%edx
2205
leal (%eax,%edx,1),%edx
2206
movl %edx,16(%esp)
2207
testl $4294967280,%ecx
2208
jz .L020enc_tail
2209
movl (%edi),%eax
2210
movl 4(%edi),%ebx
2211
.align 4
2212
.L021enc_loop:
2213
movl 8(%edi),%ecx
2214
movl 12(%edi),%edx
2215
xorl (%esi),%eax
2216
xorl 4(%esi),%ebx
2217
xorl 8(%esi),%ecx
2218
bswap %eax
2219
xorl 12(%esi),%edx
2220
bswap %ebx
2221
movl 36(%esp),%edi
2222
bswap %ecx
2223
bswap %edx
2224
call _x86_Camellia_encrypt
2225
movl 24(%esp),%esi
2226
movl 28(%esp),%edi
2227
bswap %eax
2228
bswap %ebx
2229
bswap %ecx
2230
movl %eax,(%edi)
2231
bswap %edx
2232
movl %ebx,4(%edi)
2233
movl %ecx,8(%edi)
2234
movl %edx,12(%edi)
2235
movl 32(%esp),%ecx
2236
leal 16(%esi),%esi
2237
movl %esi,24(%esp)
2238
leal 16(%edi),%edx
2239
movl %edx,28(%esp)
2240
subl $16,%ecx
2241
testl $4294967280,%ecx
2242
movl %ecx,32(%esp)
2243
jnz .L021enc_loop
2244
testl $15,%ecx
2245
jnz .L020enc_tail
2246
movl 40(%esp),%esi
2247
movl 8(%edi),%ecx
2248
movl 12(%edi),%edx
2249
movl %eax,(%esi)
2250
movl %ebx,4(%esi)
2251
movl %ecx,8(%esi)
2252
movl %edx,12(%esi)
2253
movl 20(%esp),%esp
2254
popfl
2255
.L016enc_out:
2256
popl %edi
2257
popl %esi
2258
popl %ebx
2259
popl %ebp
2260
ret
2261
pushfl
2262
.align 4
2263
.L020enc_tail:
2264
movl %edi,%eax
2265
movl 28(%esp),%edi
2266
pushl %eax
2267
movl $16,%ebx
2268
subl %ecx,%ebx
2269
cmpl %esi,%edi
2270
je .L022enc_in_place
2271
.align 4
2272
.long 2767451785
2273
jmp .L023enc_skip_in_place
2274
.L022enc_in_place:
2275
leal (%edi,%ecx,1),%edi
2276
.L023enc_skip_in_place:
2277
movl %ebx,%ecx
2278
xorl %eax,%eax
2279
.align 4
2280
.long 2868115081
2281
popl %edi
2282
movl 28(%esp),%esi
2283
movl (%edi),%eax
2284
movl 4(%edi),%ebx
2285
movl $16,32(%esp)
2286
jmp .L021enc_loop
2287
.align 16
2288
.L019DECRYPT:
2289
shll $6,%edx
2290
leal (%eax,%edx,1),%edx
2291
movl %eax,16(%esp)
2292
movl %edx,36(%esp)
2293
cmpl 28(%esp),%esi
2294
je .L024dec_in_place
2295
movl 40(%esp),%edi
2296
movl %edi,44(%esp)
2297
.align 4
2298
.L025dec_loop:
2299
movl (%esi),%eax
2300
movl 4(%esi),%ebx
2301
movl 8(%esi),%ecx
2302
bswap %eax
2303
movl 12(%esi),%edx
2304
bswap %ebx
2305
movl 36(%esp),%edi
2306
bswap %ecx
2307
bswap %edx
2308
call _x86_Camellia_decrypt
2309
movl 44(%esp),%edi
2310
movl 32(%esp),%esi
2311
bswap %eax
2312
bswap %ebx
2313
bswap %ecx
2314
xorl (%edi),%eax
2315
bswap %edx
2316
xorl 4(%edi),%ebx
2317
xorl 8(%edi),%ecx
2318
xorl 12(%edi),%edx
2319
subl $16,%esi
2320
jc .L026dec_partial
2321
movl %esi,32(%esp)
2322
movl 24(%esp),%esi
2323
movl 28(%esp),%edi
2324
movl %eax,(%edi)
2325
movl %ebx,4(%edi)
2326
movl %ecx,8(%edi)
2327
movl %edx,12(%edi)
2328
movl %esi,44(%esp)
2329
leal 16(%esi),%esi
2330
movl %esi,24(%esp)
2331
leal 16(%edi),%edi
2332
movl %edi,28(%esp)
2333
jnz .L025dec_loop
2334
movl 44(%esp),%edi
2335
.L027dec_end:
2336
movl 40(%esp),%esi
2337
movl (%edi),%eax
2338
movl 4(%edi),%ebx
2339
movl 8(%edi),%ecx
2340
movl 12(%edi),%edx
2341
movl %eax,(%esi)
2342
movl %ebx,4(%esi)
2343
movl %ecx,8(%esi)
2344
movl %edx,12(%esi)
2345
jmp .L028dec_out
2346
.align 4
2347
.L026dec_partial:
2348
leal 44(%esp),%edi
2349
movl %eax,(%edi)
2350
movl %ebx,4(%edi)
2351
movl %ecx,8(%edi)
2352
movl %edx,12(%edi)
2353
leal 16(%esi),%ecx
2354
movl %edi,%esi
2355
movl 28(%esp),%edi
2356
.long 2767451785
2357
movl 24(%esp),%edi
2358
jmp .L027dec_end
2359
.align 4
2360
.L024dec_in_place:
2361
.L029dec_in_place_loop:
2362
leal 44(%esp),%edi
2363
movl (%esi),%eax
2364
movl 4(%esi),%ebx
2365
movl 8(%esi),%ecx
2366
movl 12(%esi),%edx
2367
movl %eax,(%edi)
2368
movl %ebx,4(%edi)
2369
movl %ecx,8(%edi)
2370
bswap %eax
2371
movl %edx,12(%edi)
2372
bswap %ebx
2373
movl 36(%esp),%edi
2374
bswap %ecx
2375
bswap %edx
2376
call _x86_Camellia_decrypt
2377
movl 40(%esp),%edi
2378
movl 28(%esp),%esi
2379
bswap %eax
2380
bswap %ebx
2381
bswap %ecx
2382
xorl (%edi),%eax
2383
bswap %edx
2384
xorl 4(%edi),%ebx
2385
xorl 8(%edi),%ecx
2386
xorl 12(%edi),%edx
2387
movl %eax,(%esi)
2388
movl %ebx,4(%esi)
2389
movl %ecx,8(%esi)
2390
movl %edx,12(%esi)
2391
leal 16(%esi),%esi
2392
movl %esi,28(%esp)
2393
leal 44(%esp),%esi
2394
movl (%esi),%eax
2395
movl 4(%esi),%ebx
2396
movl 8(%esi),%ecx
2397
movl 12(%esi),%edx
2398
movl %eax,(%edi)
2399
movl %ebx,4(%edi)
2400
movl %ecx,8(%edi)
2401
movl %edx,12(%edi)
2402
movl 24(%esp),%esi
2403
leal 16(%esi),%esi
2404
movl %esi,24(%esp)
2405
movl 32(%esp),%ecx
2406
subl $16,%ecx
2407
jc .L030dec_in_place_partial
2408
movl %ecx,32(%esp)
2409
jnz .L029dec_in_place_loop
2410
jmp .L028dec_out
2411
.align 4
2412
.L030dec_in_place_partial:
2413
movl 28(%esp),%edi
2414
leal 44(%esp),%esi
2415
leal (%edi,%ecx,1),%edi
2416
leal 16(%esi,%ecx,1),%esi
2417
negl %ecx
2418
.long 2767451785
2419
.align 4
2420
.L028dec_out:
2421
movl 20(%esp),%esp
2422
popfl
2423
popl %edi
2424
popl %esi
2425
popl %ebx
2426
popl %ebp
2427
ret
2428
.size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
2429
.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
2430
.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
2431
.byte 115,108,46,111,114,103,62,0
2432
2433
.section ".note.gnu.property", "a"
2434
.p2align 2
2435
.long 1f - 0f
2436
.long 4f - 1f
2437
.long 5
2438
0:
2439
.asciz "GNU"
2440
1:
2441
.p2align 2
2442
.long 0xc0000002
2443
.long 3f - 2f
2444
2:
2445
.long 3
2446
3:
2447
.p2align 2
2448
4:
2449
#else
2450
.text
2451
.globl Camellia_EncryptBlock_Rounds
2452
.type Camellia_EncryptBlock_Rounds,@function
2453
.align 16
2454
Camellia_EncryptBlock_Rounds:
2455
.L_Camellia_EncryptBlock_Rounds_begin:
2456
#ifdef __CET__
2457
2458
.byte 243,15,30,251
2459
#endif
2460
2461
pushl %ebp
2462
pushl %ebx
2463
pushl %esi
2464
pushl %edi
2465
movl 20(%esp),%eax
2466
movl 24(%esp),%esi
2467
movl 28(%esp),%edi
2468
movl %esp,%ebx
2469
subl $28,%esp
2470
andl $-64,%esp
2471
leal -127(%edi),%ecx
2472
subl %esp,%ecx
2473
negl %ecx
2474
andl $960,%ecx
2475
subl %ecx,%esp
2476
addl $4,%esp
2477
shll $6,%eax
2478
leal (%edi,%eax,1),%eax
2479
movl %ebx,20(%esp)
2480
movl %eax,16(%esp)
2481
call .L000pic_point
2482
.L000pic_point:
2483
popl %ebp
2484
leal .LCamellia_SBOX-.L000pic_point(%ebp),%ebp
2485
movl (%esi),%eax
2486
movl 4(%esi),%ebx
2487
movl 8(%esi),%ecx
2488
bswap %eax
2489
movl 12(%esi),%edx
2490
bswap %ebx
2491
bswap %ecx
2492
bswap %edx
2493
call _x86_Camellia_encrypt
2494
movl 20(%esp),%esp
2495
bswap %eax
2496
movl 32(%esp),%esi
2497
bswap %ebx
2498
bswap %ecx
2499
bswap %edx
2500
movl %eax,(%esi)
2501
movl %ebx,4(%esi)
2502
movl %ecx,8(%esi)
2503
movl %edx,12(%esi)
2504
popl %edi
2505
popl %esi
2506
popl %ebx
2507
popl %ebp
2508
ret
2509
.size Camellia_EncryptBlock_Rounds,.-.L_Camellia_EncryptBlock_Rounds_begin
2510
.globl Camellia_EncryptBlock
2511
.type Camellia_EncryptBlock,@function
2512
.align 16
2513
Camellia_EncryptBlock:
2514
.L_Camellia_EncryptBlock_begin:
2515
#ifdef __CET__
2516
2517
.byte 243,15,30,251
2518
#endif
2519
2520
movl $128,%eax
2521
subl 4(%esp),%eax
2522
movl $3,%eax
2523
adcl $0,%eax
2524
movl %eax,4(%esp)
2525
jmp .L_Camellia_EncryptBlock_Rounds_begin
2526
.size Camellia_EncryptBlock,.-.L_Camellia_EncryptBlock_begin
2527
.globl Camellia_encrypt
2528
.type Camellia_encrypt,@function
2529
.align 16
2530
Camellia_encrypt:
2531
.L_Camellia_encrypt_begin:
2532
#ifdef __CET__
2533
2534
.byte 243,15,30,251
2535
#endif
2536
2537
pushl %ebp
2538
pushl %ebx
2539
pushl %esi
2540
pushl %edi
2541
movl 20(%esp),%esi
2542
movl 28(%esp),%edi
2543
movl %esp,%ebx
2544
subl $28,%esp
2545
andl $-64,%esp
2546
movl 272(%edi),%eax
2547
leal -127(%edi),%ecx
2548
subl %esp,%ecx
2549
negl %ecx
2550
andl $960,%ecx
2551
subl %ecx,%esp
2552
addl $4,%esp
2553
shll $6,%eax
2554
leal (%edi,%eax,1),%eax
2555
movl %ebx,20(%esp)
2556
movl %eax,16(%esp)
2557
call .L001pic_point
2558
.L001pic_point:
2559
popl %ebp
2560
leal .LCamellia_SBOX-.L001pic_point(%ebp),%ebp
2561
movl (%esi),%eax
2562
movl 4(%esi),%ebx
2563
movl 8(%esi),%ecx
2564
bswap %eax
2565
movl 12(%esi),%edx
2566
bswap %ebx
2567
bswap %ecx
2568
bswap %edx
2569
call _x86_Camellia_encrypt
2570
movl 20(%esp),%esp
2571
bswap %eax
2572
movl 24(%esp),%esi
2573
bswap %ebx
2574
bswap %ecx
2575
bswap %edx
2576
movl %eax,(%esi)
2577
movl %ebx,4(%esi)
2578
movl %ecx,8(%esi)
2579
movl %edx,12(%esi)
2580
popl %edi
2581
popl %esi
2582
popl %ebx
2583
popl %ebp
2584
ret
2585
.size Camellia_encrypt,.-.L_Camellia_encrypt_begin
2586
.type _x86_Camellia_encrypt,@function
2587
.align 16
2588
_x86_Camellia_encrypt:
2589
#ifdef __CET__
2590
2591
.byte 243,15,30,251
2592
#endif
2593
2594
xorl (%edi),%eax
2595
xorl 4(%edi),%ebx
2596
xorl 8(%edi),%ecx
2597
xorl 12(%edi),%edx
2598
movl 16(%edi),%esi
2599
movl %eax,4(%esp)
2600
movl %ebx,8(%esp)
2601
movl %ecx,12(%esp)
2602
movl %edx,16(%esp)
2603
.align 16
2604
.L002loop:
2605
xorl %esi,%eax
2606
xorl 20(%edi),%ebx
2607
movzbl %ah,%esi
2608
movl 2052(%ebp,%esi,8),%edx
2609
movzbl %al,%esi
2610
xorl 4(%ebp,%esi,8),%edx
2611
shrl $16,%eax
2612
movzbl %bl,%esi
2613
movl (%ebp,%esi,8),%ecx
2614
movzbl %ah,%esi
2615
xorl (%ebp,%esi,8),%edx
2616
movzbl %bh,%esi
2617
xorl 4(%ebp,%esi,8),%ecx
2618
shrl $16,%ebx
2619
movzbl %al,%eax
2620
xorl 2048(%ebp,%eax,8),%edx
2621
movzbl %bh,%esi
2622
movl 16(%esp),%eax
2623
xorl %edx,%ecx
2624
rorl $8,%edx
2625
xorl 2048(%ebp,%esi,8),%ecx
2626
movzbl %bl,%esi
2627
movl 12(%esp),%ebx
2628
xorl %eax,%edx
2629
xorl 2052(%ebp,%esi,8),%ecx
2630
movl 24(%edi),%esi
2631
xorl %ecx,%edx
2632
movl %edx,16(%esp)
2633
xorl %ebx,%ecx
2634
movl %ecx,12(%esp)
2635
xorl %esi,%ecx
2636
xorl 28(%edi),%edx
2637
movzbl %ch,%esi
2638
movl 2052(%ebp,%esi,8),%ebx
2639
movzbl %cl,%esi
2640
xorl 4(%ebp,%esi,8),%ebx
2641
shrl $16,%ecx
2642
movzbl %dl,%esi
2643
movl (%ebp,%esi,8),%eax
2644
movzbl %ch,%esi
2645
xorl (%ebp,%esi,8),%ebx
2646
movzbl %dh,%esi
2647
xorl 4(%ebp,%esi,8),%eax
2648
shrl $16,%edx
2649
movzbl %cl,%ecx
2650
xorl 2048(%ebp,%ecx,8),%ebx
2651
movzbl %dh,%esi
2652
movl 8(%esp),%ecx
2653
xorl %ebx,%eax
2654
rorl $8,%ebx
2655
xorl 2048(%ebp,%esi,8),%eax
2656
movzbl %dl,%esi
2657
movl 4(%esp),%edx
2658
xorl %ecx,%ebx
2659
xorl 2052(%ebp,%esi,8),%eax
2660
movl 32(%edi),%esi
2661
xorl %eax,%ebx
2662
movl %ebx,8(%esp)
2663
xorl %edx,%eax
2664
movl %eax,4(%esp)
2665
xorl %esi,%eax
2666
xorl 36(%edi),%ebx
2667
movzbl %ah,%esi
2668
movl 2052(%ebp,%esi,8),%edx
2669
movzbl %al,%esi
2670
xorl 4(%ebp,%esi,8),%edx
2671
shrl $16,%eax
2672
movzbl %bl,%esi
2673
movl (%ebp,%esi,8),%ecx
2674
movzbl %ah,%esi
2675
xorl (%ebp,%esi,8),%edx
2676
movzbl %bh,%esi
2677
xorl 4(%ebp,%esi,8),%ecx
2678
shrl $16,%ebx
2679
movzbl %al,%eax
2680
xorl 2048(%ebp,%eax,8),%edx
2681
movzbl %bh,%esi
2682
movl 16(%esp),%eax
2683
xorl %edx,%ecx
2684
rorl $8,%edx
2685
xorl 2048(%ebp,%esi,8),%ecx
2686
movzbl %bl,%esi
2687
movl 12(%esp),%ebx
2688
xorl %eax,%edx
2689
xorl 2052(%ebp,%esi,8),%ecx
2690
movl 40(%edi),%esi
2691
xorl %ecx,%edx
2692
movl %edx,16(%esp)
2693
xorl %ebx,%ecx
2694
movl %ecx,12(%esp)
2695
xorl %esi,%ecx
2696
xorl 44(%edi),%edx
2697
movzbl %ch,%esi
2698
movl 2052(%ebp,%esi,8),%ebx
2699
movzbl %cl,%esi
2700
xorl 4(%ebp,%esi,8),%ebx
2701
shrl $16,%ecx
2702
movzbl %dl,%esi
2703
movl (%ebp,%esi,8),%eax
2704
movzbl %ch,%esi
2705
xorl (%ebp,%esi,8),%ebx
2706
movzbl %dh,%esi
2707
xorl 4(%ebp,%esi,8),%eax
2708
shrl $16,%edx
2709
movzbl %cl,%ecx
2710
xorl 2048(%ebp,%ecx,8),%ebx
2711
movzbl %dh,%esi
2712
movl 8(%esp),%ecx
2713
xorl %ebx,%eax
2714
rorl $8,%ebx
2715
xorl 2048(%ebp,%esi,8),%eax
2716
movzbl %dl,%esi
2717
movl 4(%esp),%edx
2718
xorl %ecx,%ebx
2719
xorl 2052(%ebp,%esi,8),%eax
2720
movl 48(%edi),%esi
2721
xorl %eax,%ebx
2722
movl %ebx,8(%esp)
2723
xorl %edx,%eax
2724
movl %eax,4(%esp)
2725
xorl %esi,%eax
2726
xorl 52(%edi),%ebx
2727
movzbl %ah,%esi
2728
movl 2052(%ebp,%esi,8),%edx
2729
movzbl %al,%esi
2730
xorl 4(%ebp,%esi,8),%edx
2731
shrl $16,%eax
2732
movzbl %bl,%esi
2733
movl (%ebp,%esi,8),%ecx
2734
movzbl %ah,%esi
2735
xorl (%ebp,%esi,8),%edx
2736
movzbl %bh,%esi
2737
xorl 4(%ebp,%esi,8),%ecx
2738
shrl $16,%ebx
2739
movzbl %al,%eax
2740
xorl 2048(%ebp,%eax,8),%edx
2741
movzbl %bh,%esi
2742
movl 16(%esp),%eax
2743
xorl %edx,%ecx
2744
rorl $8,%edx
2745
xorl 2048(%ebp,%esi,8),%ecx
2746
movzbl %bl,%esi
2747
movl 12(%esp),%ebx
2748
xorl %eax,%edx
2749
xorl 2052(%ebp,%esi,8),%ecx
2750
movl 56(%edi),%esi
2751
xorl %ecx,%edx
2752
movl %edx,16(%esp)
2753
xorl %ebx,%ecx
2754
movl %ecx,12(%esp)
2755
xorl %esi,%ecx
2756
xorl 60(%edi),%edx
2757
movzbl %ch,%esi
2758
movl 2052(%ebp,%esi,8),%ebx
2759
movzbl %cl,%esi
2760
xorl 4(%ebp,%esi,8),%ebx
2761
shrl $16,%ecx
2762
movzbl %dl,%esi
2763
movl (%ebp,%esi,8),%eax
2764
movzbl %ch,%esi
2765
xorl (%ebp,%esi,8),%ebx
2766
movzbl %dh,%esi
2767
xorl 4(%ebp,%esi,8),%eax
2768
shrl $16,%edx
2769
movzbl %cl,%ecx
2770
xorl 2048(%ebp,%ecx,8),%ebx
2771
movzbl %dh,%esi
2772
movl 8(%esp),%ecx
2773
xorl %ebx,%eax
2774
rorl $8,%ebx
2775
xorl 2048(%ebp,%esi,8),%eax
2776
movzbl %dl,%esi
2777
movl 4(%esp),%edx
2778
xorl %ecx,%ebx
2779
xorl 2052(%ebp,%esi,8),%eax
2780
movl 64(%edi),%esi
2781
xorl %eax,%ebx
2782
movl %ebx,8(%esp)
2783
xorl %edx,%eax
2784
movl %eax,4(%esp)
2785
addl $64,%edi
2786
cmpl 20(%esp),%edi
2787
je .L003done
2788
andl %eax,%esi
2789
movl 16(%esp),%edx
2790
roll $1,%esi
2791
movl %edx,%ecx
2792
xorl %esi,%ebx
2793
orl 12(%edi),%ecx
2794
movl %ebx,8(%esp)
2795
xorl 12(%esp),%ecx
2796
movl 4(%edi),%esi
2797
movl %ecx,12(%esp)
2798
orl %ebx,%esi
2799
andl 8(%edi),%ecx
2800
xorl %esi,%eax
2801
roll $1,%ecx
2802
movl %eax,4(%esp)
2803
xorl %ecx,%edx
2804
movl 16(%edi),%esi
2805
movl %edx,16(%esp)
2806
jmp .L002loop
2807
.align 8
2808
.L003done:
2809
movl %eax,%ecx
2810
movl %ebx,%edx
2811
movl 12(%esp),%eax
2812
movl 16(%esp),%ebx
2813
xorl %esi,%eax
2814
xorl 4(%edi),%ebx
2815
xorl 8(%edi),%ecx
2816
xorl 12(%edi),%edx
2817
ret
2818
.size _x86_Camellia_encrypt,.-_x86_Camellia_encrypt
2819
.globl Camellia_DecryptBlock_Rounds
2820
.type Camellia_DecryptBlock_Rounds,@function
2821
.align 16
2822
Camellia_DecryptBlock_Rounds:
2823
.L_Camellia_DecryptBlock_Rounds_begin:
2824
#ifdef __CET__
2825
2826
.byte 243,15,30,251
2827
#endif
2828
2829
pushl %ebp
2830
pushl %ebx
2831
pushl %esi
2832
pushl %edi
2833
movl 20(%esp),%eax
2834
movl 24(%esp),%esi
2835
movl 28(%esp),%edi
2836
movl %esp,%ebx
2837
subl $28,%esp
2838
andl $-64,%esp
2839
leal -127(%edi),%ecx
2840
subl %esp,%ecx
2841
negl %ecx
2842
andl $960,%ecx
2843
subl %ecx,%esp
2844
addl $4,%esp
2845
shll $6,%eax
2846
movl %edi,16(%esp)
2847
leal (%edi,%eax,1),%edi
2848
movl %ebx,20(%esp)
2849
call .L004pic_point
2850
.L004pic_point:
2851
popl %ebp
2852
leal .LCamellia_SBOX-.L004pic_point(%ebp),%ebp
2853
movl (%esi),%eax
2854
movl 4(%esi),%ebx
2855
movl 8(%esi),%ecx
2856
bswap %eax
2857
movl 12(%esi),%edx
2858
bswap %ebx
2859
bswap %ecx
2860
bswap %edx
2861
call _x86_Camellia_decrypt
2862
movl 20(%esp),%esp
2863
bswap %eax
2864
movl 32(%esp),%esi
2865
bswap %ebx
2866
bswap %ecx
2867
bswap %edx
2868
movl %eax,(%esi)
2869
movl %ebx,4(%esi)
2870
movl %ecx,8(%esi)
2871
movl %edx,12(%esi)
2872
popl %edi
2873
popl %esi
2874
popl %ebx
2875
popl %ebp
2876
ret
2877
.size Camellia_DecryptBlock_Rounds,.-.L_Camellia_DecryptBlock_Rounds_begin
2878
.globl Camellia_DecryptBlock
2879
.type Camellia_DecryptBlock,@function
2880
.align 16
2881
Camellia_DecryptBlock:
2882
.L_Camellia_DecryptBlock_begin:
2883
#ifdef __CET__
2884
2885
.byte 243,15,30,251
2886
#endif
2887
2888
movl $128,%eax
2889
subl 4(%esp),%eax
2890
movl $3,%eax
2891
adcl $0,%eax
2892
movl %eax,4(%esp)
2893
jmp .L_Camellia_DecryptBlock_Rounds_begin
2894
.size Camellia_DecryptBlock,.-.L_Camellia_DecryptBlock_begin
2895
.globl Camellia_decrypt
2896
.type Camellia_decrypt,@function
2897
.align 16
2898
Camellia_decrypt:
2899
.L_Camellia_decrypt_begin:
2900
#ifdef __CET__
2901
2902
.byte 243,15,30,251
2903
#endif
2904
2905
pushl %ebp
2906
pushl %ebx
2907
pushl %esi
2908
pushl %edi
2909
movl 20(%esp),%esi
2910
movl 28(%esp),%edi
2911
movl %esp,%ebx
2912
subl $28,%esp
2913
andl $-64,%esp
2914
movl 272(%edi),%eax
2915
leal -127(%edi),%ecx
2916
subl %esp,%ecx
2917
negl %ecx
2918
andl $960,%ecx
2919
subl %ecx,%esp
2920
addl $4,%esp
2921
shll $6,%eax
2922
movl %edi,16(%esp)
2923
leal (%edi,%eax,1),%edi
2924
movl %ebx,20(%esp)
2925
call .L005pic_point
2926
.L005pic_point:
2927
popl %ebp
2928
leal .LCamellia_SBOX-.L005pic_point(%ebp),%ebp
2929
movl (%esi),%eax
2930
movl 4(%esi),%ebx
2931
movl 8(%esi),%ecx
2932
bswap %eax
2933
movl 12(%esi),%edx
2934
bswap %ebx
2935
bswap %ecx
2936
bswap %edx
2937
call _x86_Camellia_decrypt
2938
movl 20(%esp),%esp
2939
bswap %eax
2940
movl 24(%esp),%esi
2941
bswap %ebx
2942
bswap %ecx
2943
bswap %edx
2944
movl %eax,(%esi)
2945
movl %ebx,4(%esi)
2946
movl %ecx,8(%esi)
2947
movl %edx,12(%esi)
2948
popl %edi
2949
popl %esi
2950
popl %ebx
2951
popl %ebp
2952
ret
2953
.size Camellia_decrypt,.-.L_Camellia_decrypt_begin
2954
.type _x86_Camellia_decrypt,@function
2955
.align 16
2956
_x86_Camellia_decrypt:
2957
#ifdef __CET__
2958
2959
.byte 243,15,30,251
2960
#endif
2961
2962
xorl (%edi),%eax
2963
xorl 4(%edi),%ebx
2964
xorl 8(%edi),%ecx
2965
xorl 12(%edi),%edx
2966
movl -8(%edi),%esi
2967
movl %eax,4(%esp)
2968
movl %ebx,8(%esp)
2969
movl %ecx,12(%esp)
2970
movl %edx,16(%esp)
2971
.align 16
2972
.L006loop:
2973
xorl %esi,%eax
2974
xorl -4(%edi),%ebx
2975
movzbl %ah,%esi
2976
movl 2052(%ebp,%esi,8),%edx
2977
movzbl %al,%esi
2978
xorl 4(%ebp,%esi,8),%edx
2979
shrl $16,%eax
2980
movzbl %bl,%esi
2981
movl (%ebp,%esi,8),%ecx
2982
movzbl %ah,%esi
2983
xorl (%ebp,%esi,8),%edx
2984
movzbl %bh,%esi
2985
xorl 4(%ebp,%esi,8),%ecx
2986
shrl $16,%ebx
2987
movzbl %al,%eax
2988
xorl 2048(%ebp,%eax,8),%edx
2989
movzbl %bh,%esi
2990
movl 16(%esp),%eax
2991
xorl %edx,%ecx
2992
rorl $8,%edx
2993
xorl 2048(%ebp,%esi,8),%ecx
2994
movzbl %bl,%esi
2995
movl 12(%esp),%ebx
2996
xorl %eax,%edx
2997
xorl 2052(%ebp,%esi,8),%ecx
2998
movl -16(%edi),%esi
2999
xorl %ecx,%edx
3000
movl %edx,16(%esp)
3001
xorl %ebx,%ecx
3002
movl %ecx,12(%esp)
3003
xorl %esi,%ecx
3004
xorl -12(%edi),%edx
3005
movzbl %ch,%esi
3006
movl 2052(%ebp,%esi,8),%ebx
3007
movzbl %cl,%esi
3008
xorl 4(%ebp,%esi,8),%ebx
3009
shrl $16,%ecx
3010
movzbl %dl,%esi
3011
movl (%ebp,%esi,8),%eax
3012
movzbl %ch,%esi
3013
xorl (%ebp,%esi,8),%ebx
3014
movzbl %dh,%esi
3015
xorl 4(%ebp,%esi,8),%eax
3016
shrl $16,%edx
3017
movzbl %cl,%ecx
3018
xorl 2048(%ebp,%ecx,8),%ebx
3019
movzbl %dh,%esi
3020
movl 8(%esp),%ecx
3021
xorl %ebx,%eax
3022
rorl $8,%ebx
3023
xorl 2048(%ebp,%esi,8),%eax
3024
movzbl %dl,%esi
3025
movl 4(%esp),%edx
3026
xorl %ecx,%ebx
3027
xorl 2052(%ebp,%esi,8),%eax
3028
movl -24(%edi),%esi
3029
xorl %eax,%ebx
3030
movl %ebx,8(%esp)
3031
xorl %edx,%eax
3032
movl %eax,4(%esp)
3033
xorl %esi,%eax
3034
xorl -20(%edi),%ebx
3035
movzbl %ah,%esi
3036
movl 2052(%ebp,%esi,8),%edx
3037
movzbl %al,%esi
3038
xorl 4(%ebp,%esi,8),%edx
3039
shrl $16,%eax
3040
movzbl %bl,%esi
3041
movl (%ebp,%esi,8),%ecx
3042
movzbl %ah,%esi
3043
xorl (%ebp,%esi,8),%edx
3044
movzbl %bh,%esi
3045
xorl 4(%ebp,%esi,8),%ecx
3046
shrl $16,%ebx
3047
movzbl %al,%eax
3048
xorl 2048(%ebp,%eax,8),%edx
3049
movzbl %bh,%esi
3050
movl 16(%esp),%eax
3051
xorl %edx,%ecx
3052
rorl $8,%edx
3053
xorl 2048(%ebp,%esi,8),%ecx
3054
movzbl %bl,%esi
3055
movl 12(%esp),%ebx
3056
xorl %eax,%edx
3057
xorl 2052(%ebp,%esi,8),%ecx
3058
movl -32(%edi),%esi
3059
xorl %ecx,%edx
3060
movl %edx,16(%esp)
3061
xorl %ebx,%ecx
3062
movl %ecx,12(%esp)
3063
xorl %esi,%ecx
3064
xorl -28(%edi),%edx
3065
movzbl %ch,%esi
3066
movl 2052(%ebp,%esi,8),%ebx
3067
movzbl %cl,%esi
3068
xorl 4(%ebp,%esi,8),%ebx
3069
shrl $16,%ecx
3070
movzbl %dl,%esi
3071
movl (%ebp,%esi,8),%eax
3072
movzbl %ch,%esi
3073
xorl (%ebp,%esi,8),%ebx
3074
movzbl %dh,%esi
3075
xorl 4(%ebp,%esi,8),%eax
3076
shrl $16,%edx
3077
movzbl %cl,%ecx
3078
xorl 2048(%ebp,%ecx,8),%ebx
3079
movzbl %dh,%esi
3080
movl 8(%esp),%ecx
3081
xorl %ebx,%eax
3082
rorl $8,%ebx
3083
xorl 2048(%ebp,%esi,8),%eax
3084
movzbl %dl,%esi
3085
movl 4(%esp),%edx
3086
xorl %ecx,%ebx
3087
xorl 2052(%ebp,%esi,8),%eax
3088
movl -40(%edi),%esi
3089
xorl %eax,%ebx
3090
movl %ebx,8(%esp)
3091
xorl %edx,%eax
3092
movl %eax,4(%esp)
3093
xorl %esi,%eax
3094
xorl -36(%edi),%ebx
3095
movzbl %ah,%esi
3096
movl 2052(%ebp,%esi,8),%edx
3097
movzbl %al,%esi
3098
xorl 4(%ebp,%esi,8),%edx
3099
shrl $16,%eax
3100
movzbl %bl,%esi
3101
movl (%ebp,%esi,8),%ecx
3102
movzbl %ah,%esi
3103
xorl (%ebp,%esi,8),%edx
3104
movzbl %bh,%esi
3105
xorl 4(%ebp,%esi,8),%ecx
3106
shrl $16,%ebx
3107
movzbl %al,%eax
3108
xorl 2048(%ebp,%eax,8),%edx
3109
movzbl %bh,%esi
3110
movl 16(%esp),%eax
3111
xorl %edx,%ecx
3112
rorl $8,%edx
3113
xorl 2048(%ebp,%esi,8),%ecx
3114
movzbl %bl,%esi
3115
movl 12(%esp),%ebx
3116
xorl %eax,%edx
3117
xorl 2052(%ebp,%esi,8),%ecx
3118
movl -48(%edi),%esi
3119
xorl %ecx,%edx
3120
movl %edx,16(%esp)
3121
xorl %ebx,%ecx
3122
movl %ecx,12(%esp)
3123
xorl %esi,%ecx
3124
xorl -44(%edi),%edx
3125
movzbl %ch,%esi
3126
movl 2052(%ebp,%esi,8),%ebx
3127
movzbl %cl,%esi
3128
xorl 4(%ebp,%esi,8),%ebx
3129
shrl $16,%ecx
3130
movzbl %dl,%esi
3131
movl (%ebp,%esi,8),%eax
3132
movzbl %ch,%esi
3133
xorl (%ebp,%esi,8),%ebx
3134
movzbl %dh,%esi
3135
xorl 4(%ebp,%esi,8),%eax
3136
shrl $16,%edx
3137
movzbl %cl,%ecx
3138
xorl 2048(%ebp,%ecx,8),%ebx
3139
movzbl %dh,%esi
3140
movl 8(%esp),%ecx
3141
xorl %ebx,%eax
3142
rorl $8,%ebx
3143
xorl 2048(%ebp,%esi,8),%eax
3144
movzbl %dl,%esi
3145
movl 4(%esp),%edx
3146
xorl %ecx,%ebx
3147
xorl 2052(%ebp,%esi,8),%eax
3148
movl -56(%edi),%esi
3149
xorl %eax,%ebx
3150
movl %ebx,8(%esp)
3151
xorl %edx,%eax
3152
movl %eax,4(%esp)
3153
subl $64,%edi
3154
cmpl 20(%esp),%edi
3155
je .L007done
3156
andl %eax,%esi
3157
movl 16(%esp),%edx
3158
roll $1,%esi
3159
movl %edx,%ecx
3160
xorl %esi,%ebx
3161
orl 4(%edi),%ecx
3162
movl %ebx,8(%esp)
3163
xorl 12(%esp),%ecx
3164
movl 12(%edi),%esi
3165
movl %ecx,12(%esp)
3166
orl %ebx,%esi
3167
andl (%edi),%ecx
3168
xorl %esi,%eax
3169
roll $1,%ecx
3170
movl %eax,4(%esp)
3171
xorl %ecx,%edx
3172
movl -8(%edi),%esi
3173
movl %edx,16(%esp)
3174
jmp .L006loop
3175
.align 8
3176
.L007done:
3177
movl %eax,%ecx
3178
movl %ebx,%edx
3179
movl 12(%esp),%eax
3180
movl 16(%esp),%ebx
3181
xorl %esi,%ecx
3182
xorl 12(%edi),%edx
3183
xorl (%edi),%eax
3184
xorl 4(%edi),%ebx
3185
ret
3186
.size _x86_Camellia_decrypt,.-_x86_Camellia_decrypt
3187
.globl Camellia_Ekeygen
3188
.type Camellia_Ekeygen,@function
3189
.align 16
3190
Camellia_Ekeygen:
3191
.L_Camellia_Ekeygen_begin:
3192
#ifdef __CET__
3193
3194
.byte 243,15,30,251
3195
#endif
3196
3197
pushl %ebp
3198
pushl %ebx
3199
pushl %esi
3200
pushl %edi
3201
subl $16,%esp
3202
movl 36(%esp),%ebp
3203
movl 40(%esp),%esi
3204
movl 44(%esp),%edi
3205
movl (%esi),%eax
3206
movl 4(%esi),%ebx
3207
movl 8(%esi),%ecx
3208
movl 12(%esi),%edx
3209
bswap %eax
3210
bswap %ebx
3211
bswap %ecx
3212
bswap %edx
3213
movl %eax,(%edi)
3214
movl %ebx,4(%edi)
3215
movl %ecx,8(%edi)
3216
movl %edx,12(%edi)
3217
cmpl $128,%ebp
3218
je .L0081st128
3219
movl 16(%esi),%eax
3220
movl 20(%esi),%ebx
3221
cmpl $192,%ebp
3222
je .L0091st192
3223
movl 24(%esi),%ecx
3224
movl 28(%esi),%edx
3225
jmp .L0101st256
3226
.align 4
3227
.L0091st192:
3228
movl %eax,%ecx
3229
movl %ebx,%edx
3230
notl %ecx
3231
notl %edx
3232
.align 4
3233
.L0101st256:
3234
bswap %eax
3235
bswap %ebx
3236
bswap %ecx
3237
bswap %edx
3238
movl %eax,32(%edi)
3239
movl %ebx,36(%edi)
3240
movl %ecx,40(%edi)
3241
movl %edx,44(%edi)
3242
xorl (%edi),%eax
3243
xorl 4(%edi),%ebx
3244
xorl 8(%edi),%ecx
3245
xorl 12(%edi),%edx
3246
.align 4
3247
.L0081st128:
3248
call .L011pic_point
3249
.L011pic_point:
3250
popl %ebp
3251
leal .LCamellia_SBOX-.L011pic_point(%ebp),%ebp
3252
leal .LCamellia_SIGMA-.LCamellia_SBOX(%ebp),%edi
3253
movl (%edi),%esi
3254
movl %eax,(%esp)
3255
movl %ebx,4(%esp)
3256
movl %ecx,8(%esp)
3257
movl %edx,12(%esp)
3258
xorl %esi,%eax
3259
xorl 4(%edi),%ebx
3260
movzbl %ah,%esi
3261
movl 2052(%ebp,%esi,8),%edx
3262
movzbl %al,%esi
3263
xorl 4(%ebp,%esi,8),%edx
3264
shrl $16,%eax
3265
movzbl %bl,%esi
3266
movl (%ebp,%esi,8),%ecx
3267
movzbl %ah,%esi
3268
xorl (%ebp,%esi,8),%edx
3269
movzbl %bh,%esi
3270
xorl 4(%ebp,%esi,8),%ecx
3271
shrl $16,%ebx
3272
movzbl %al,%eax
3273
xorl 2048(%ebp,%eax,8),%edx
3274
movzbl %bh,%esi
3275
movl 12(%esp),%eax
3276
xorl %edx,%ecx
3277
rorl $8,%edx
3278
xorl 2048(%ebp,%esi,8),%ecx
3279
movzbl %bl,%esi
3280
movl 8(%esp),%ebx
3281
xorl %eax,%edx
3282
xorl 2052(%ebp,%esi,8),%ecx
3283
movl 8(%edi),%esi
3284
xorl %ecx,%edx
3285
movl %edx,12(%esp)
3286
xorl %ebx,%ecx
3287
movl %ecx,8(%esp)
3288
xorl %esi,%ecx
3289
xorl 12(%edi),%edx
3290
movzbl %ch,%esi
3291
movl 2052(%ebp,%esi,8),%ebx
3292
movzbl %cl,%esi
3293
xorl 4(%ebp,%esi,8),%ebx
3294
shrl $16,%ecx
3295
movzbl %dl,%esi
3296
movl (%ebp,%esi,8),%eax
3297
movzbl %ch,%esi
3298
xorl (%ebp,%esi,8),%ebx
3299
movzbl %dh,%esi
3300
xorl 4(%ebp,%esi,8),%eax
3301
shrl $16,%edx
3302
movzbl %cl,%ecx
3303
xorl 2048(%ebp,%ecx,8),%ebx
3304
movzbl %dh,%esi
3305
movl 4(%esp),%ecx
3306
xorl %ebx,%eax
3307
rorl $8,%ebx
3308
xorl 2048(%ebp,%esi,8),%eax
3309
movzbl %dl,%esi
3310
movl (%esp),%edx
3311
xorl %ecx,%ebx
3312
xorl 2052(%ebp,%esi,8),%eax
3313
movl 16(%edi),%esi
3314
xorl %eax,%ebx
3315
movl %ebx,4(%esp)
3316
xorl %edx,%eax
3317
movl %eax,(%esp)
3318
movl 8(%esp),%ecx
3319
movl 12(%esp),%edx
3320
movl 44(%esp),%esi
3321
xorl (%esi),%eax
3322
xorl 4(%esi),%ebx
3323
xorl 8(%esi),%ecx
3324
xorl 12(%esi),%edx
3325
movl 16(%edi),%esi
3326
movl %eax,(%esp)
3327
movl %ebx,4(%esp)
3328
movl %ecx,8(%esp)
3329
movl %edx,12(%esp)
3330
xorl %esi,%eax
3331
xorl 20(%edi),%ebx
3332
movzbl %ah,%esi
3333
movl 2052(%ebp,%esi,8),%edx
3334
movzbl %al,%esi
3335
xorl 4(%ebp,%esi,8),%edx
3336
shrl $16,%eax
3337
movzbl %bl,%esi
3338
movl (%ebp,%esi,8),%ecx
3339
movzbl %ah,%esi
3340
xorl (%ebp,%esi,8),%edx
3341
movzbl %bh,%esi
3342
xorl 4(%ebp,%esi,8),%ecx
3343
shrl $16,%ebx
3344
movzbl %al,%eax
3345
xorl 2048(%ebp,%eax,8),%edx
3346
movzbl %bh,%esi
3347
movl 12(%esp),%eax
3348
xorl %edx,%ecx
3349
rorl $8,%edx
3350
xorl 2048(%ebp,%esi,8),%ecx
3351
movzbl %bl,%esi
3352
movl 8(%esp),%ebx
3353
xorl %eax,%edx
3354
xorl 2052(%ebp,%esi,8),%ecx
3355
movl 24(%edi),%esi
3356
xorl %ecx,%edx
3357
movl %edx,12(%esp)
3358
xorl %ebx,%ecx
3359
movl %ecx,8(%esp)
3360
xorl %esi,%ecx
3361
xorl 28(%edi),%edx
3362
movzbl %ch,%esi
3363
movl 2052(%ebp,%esi,8),%ebx
3364
movzbl %cl,%esi
3365
xorl 4(%ebp,%esi,8),%ebx
3366
shrl $16,%ecx
3367
movzbl %dl,%esi
3368
movl (%ebp,%esi,8),%eax
3369
movzbl %ch,%esi
3370
xorl (%ebp,%esi,8),%ebx
3371
movzbl %dh,%esi
3372
xorl 4(%ebp,%esi,8),%eax
3373
shrl $16,%edx
3374
movzbl %cl,%ecx
3375
xorl 2048(%ebp,%ecx,8),%ebx
3376
movzbl %dh,%esi
3377
movl 4(%esp),%ecx
3378
xorl %ebx,%eax
3379
rorl $8,%ebx
3380
xorl 2048(%ebp,%esi,8),%eax
3381
movzbl %dl,%esi
3382
movl (%esp),%edx
3383
xorl %ecx,%ebx
3384
xorl 2052(%ebp,%esi,8),%eax
3385
movl 32(%edi),%esi
3386
xorl %eax,%ebx
3387
movl %ebx,4(%esp)
3388
xorl %edx,%eax
3389
movl %eax,(%esp)
3390
movl 8(%esp),%ecx
3391
movl 12(%esp),%edx
3392
movl 36(%esp),%esi
3393
cmpl $128,%esi
3394
jne .L0122nd256
3395
movl 44(%esp),%edi
3396
leal 128(%edi),%edi
3397
movl %eax,-112(%edi)
3398
movl %ebx,-108(%edi)
3399
movl %ecx,-104(%edi)
3400
movl %edx,-100(%edi)
3401
movl %eax,%ebp
3402
shll $15,%eax
3403
movl %ebx,%esi
3404
shrl $17,%esi
3405
shll $15,%ebx
3406
orl %esi,%eax
3407
movl %ecx,%esi
3408
shll $15,%ecx
3409
movl %eax,-80(%edi)
3410
shrl $17,%esi
3411
orl %esi,%ebx
3412
shrl $17,%ebp
3413
movl %edx,%esi
3414
shrl $17,%esi
3415
movl %ebx,-76(%edi)
3416
shll $15,%edx
3417
orl %esi,%ecx
3418
orl %ebp,%edx
3419
movl %ecx,-72(%edi)
3420
movl %edx,-68(%edi)
3421
movl %eax,%ebp
3422
shll $15,%eax
3423
movl %ebx,%esi
3424
shrl $17,%esi
3425
shll $15,%ebx
3426
orl %esi,%eax
3427
movl %ecx,%esi
3428
shll $15,%ecx
3429
movl %eax,-64(%edi)
3430
shrl $17,%esi
3431
orl %esi,%ebx
3432
shrl $17,%ebp
3433
movl %edx,%esi
3434
shrl $17,%esi
3435
movl %ebx,-60(%edi)
3436
shll $15,%edx
3437
orl %esi,%ecx
3438
orl %ebp,%edx
3439
movl %ecx,-56(%edi)
3440
movl %edx,-52(%edi)
3441
movl %eax,%ebp
3442
shll $15,%eax
3443
movl %ebx,%esi
3444
shrl $17,%esi
3445
shll $15,%ebx
3446
orl %esi,%eax
3447
movl %ecx,%esi
3448
shll $15,%ecx
3449
movl %eax,-32(%edi)
3450
shrl $17,%esi
3451
orl %esi,%ebx
3452
shrl $17,%ebp
3453
movl %edx,%esi
3454
shrl $17,%esi
3455
movl %ebx,-28(%edi)
3456
shll $15,%edx
3457
orl %esi,%ecx
3458
orl %ebp,%edx
3459
movl %eax,%ebp
3460
shll $15,%eax
3461
movl %ebx,%esi
3462
shrl $17,%esi
3463
shll $15,%ebx
3464
orl %esi,%eax
3465
movl %ecx,%esi
3466
shll $15,%ecx
3467
movl %eax,-16(%edi)
3468
shrl $17,%esi
3469
orl %esi,%ebx
3470
shrl $17,%ebp
3471
movl %edx,%esi
3472
shrl $17,%esi
3473
movl %ebx,-12(%edi)
3474
shll $15,%edx
3475
orl %esi,%ecx
3476
orl %ebp,%edx
3477
movl %ecx,-8(%edi)
3478
movl %edx,-4(%edi)
3479
movl %ebx,%ebp
3480
shll $2,%ebx
3481
movl %ecx,%esi
3482
shrl $30,%esi
3483
shll $2,%ecx
3484
orl %esi,%ebx
3485
movl %edx,%esi
3486
shll $2,%edx
3487
movl %ebx,32(%edi)
3488
shrl $30,%esi
3489
orl %esi,%ecx
3490
shrl $30,%ebp
3491
movl %eax,%esi
3492
shrl $30,%esi
3493
movl %ecx,36(%edi)
3494
shll $2,%eax
3495
orl %esi,%edx
3496
orl %ebp,%eax
3497
movl %edx,40(%edi)
3498
movl %eax,44(%edi)
3499
movl %ebx,%ebp
3500
shll $17,%ebx
3501
movl %ecx,%esi
3502
shrl $15,%esi
3503
shll $17,%ecx
3504
orl %esi,%ebx
3505
movl %edx,%esi
3506
shll $17,%edx
3507
movl %ebx,64(%edi)
3508
shrl $15,%esi
3509
orl %esi,%ecx
3510
shrl $15,%ebp
3511
movl %eax,%esi
3512
shrl $15,%esi
3513
movl %ecx,68(%edi)
3514
shll $17,%eax
3515
orl %esi,%edx
3516
orl %ebp,%eax
3517
movl %edx,72(%edi)
3518
movl %eax,76(%edi)
3519
movl -128(%edi),%ebx
3520
movl -124(%edi),%ecx
3521
movl -120(%edi),%edx
3522
movl -116(%edi),%eax
3523
movl %ebx,%ebp
3524
shll $15,%ebx
3525
movl %ecx,%esi
3526
shrl $17,%esi
3527
shll $15,%ecx
3528
orl %esi,%ebx
3529
movl %edx,%esi
3530
shll $15,%edx
3531
movl %ebx,-96(%edi)
3532
shrl $17,%esi
3533
orl %esi,%ecx
3534
shrl $17,%ebp
3535
movl %eax,%esi
3536
shrl $17,%esi
3537
movl %ecx,-92(%edi)
3538
shll $15,%eax
3539
orl %esi,%edx
3540
orl %ebp,%eax
3541
movl %edx,-88(%edi)
3542
movl %eax,-84(%edi)
3543
movl %ebx,%ebp
3544
shll $30,%ebx
3545
movl %ecx,%esi
3546
shrl $2,%esi
3547
shll $30,%ecx
3548
orl %esi,%ebx
3549
movl %edx,%esi
3550
shll $30,%edx
3551
movl %ebx,-48(%edi)
3552
shrl $2,%esi
3553
orl %esi,%ecx
3554
shrl $2,%ebp
3555
movl %eax,%esi
3556
shrl $2,%esi
3557
movl %ecx,-44(%edi)
3558
shll $30,%eax
3559
orl %esi,%edx
3560
orl %ebp,%eax
3561
movl %edx,-40(%edi)
3562
movl %eax,-36(%edi)
3563
movl %ebx,%ebp
3564
shll $15,%ebx
3565
movl %ecx,%esi
3566
shrl $17,%esi
3567
shll $15,%ecx
3568
orl %esi,%ebx
3569
movl %edx,%esi
3570
shll $15,%edx
3571
shrl $17,%esi
3572
orl %esi,%ecx
3573
shrl $17,%ebp
3574
movl %eax,%esi
3575
shrl $17,%esi
3576
shll $15,%eax
3577
orl %esi,%edx
3578
orl %ebp,%eax
3579
movl %edx,-24(%edi)
3580
movl %eax,-20(%edi)
3581
movl %ebx,%ebp
3582
shll $17,%ebx
3583
movl %ecx,%esi
3584
shrl $15,%esi
3585
shll $17,%ecx
3586
orl %esi,%ebx
3587
movl %edx,%esi
3588
shll $17,%edx
3589
movl %ebx,(%edi)
3590
shrl $15,%esi
3591
orl %esi,%ecx
3592
shrl $15,%ebp
3593
movl %eax,%esi
3594
shrl $15,%esi
3595
movl %ecx,4(%edi)
3596
shll $17,%eax
3597
orl %esi,%edx
3598
orl %ebp,%eax
3599
movl %edx,8(%edi)
3600
movl %eax,12(%edi)
3601
movl %ebx,%ebp
3602
shll $17,%ebx
3603
movl %ecx,%esi
3604
shrl $15,%esi
3605
shll $17,%ecx
3606
orl %esi,%ebx
3607
movl %edx,%esi
3608
shll $17,%edx
3609
movl %ebx,16(%edi)
3610
shrl $15,%esi
3611
orl %esi,%ecx
3612
shrl $15,%ebp
3613
movl %eax,%esi
3614
shrl $15,%esi
3615
movl %ecx,20(%edi)
3616
shll $17,%eax
3617
orl %esi,%edx
3618
orl %ebp,%eax
3619
movl %edx,24(%edi)
3620
movl %eax,28(%edi)
3621
movl %ebx,%ebp
3622
shll $17,%ebx
3623
movl %ecx,%esi
3624
shrl $15,%esi
3625
shll $17,%ecx
3626
orl %esi,%ebx
3627
movl %edx,%esi
3628
shll $17,%edx
3629
movl %ebx,48(%edi)
3630
shrl $15,%esi
3631
orl %esi,%ecx
3632
shrl $15,%ebp
3633
movl %eax,%esi
3634
shrl $15,%esi
3635
movl %ecx,52(%edi)
3636
shll $17,%eax
3637
orl %esi,%edx
3638
orl %ebp,%eax
3639
movl %edx,56(%edi)
3640
movl %eax,60(%edi)
3641
movl $3,%eax
3642
jmp .L013done
3643
.align 16
3644
.L0122nd256:
3645
movl 44(%esp),%esi
3646
movl %eax,48(%esi)
3647
movl %ebx,52(%esi)
3648
movl %ecx,56(%esi)
3649
movl %edx,60(%esi)
3650
xorl 32(%esi),%eax
3651
xorl 36(%esi),%ebx
3652
xorl 40(%esi),%ecx
3653
xorl 44(%esi),%edx
3654
movl 32(%edi),%esi
3655
movl %eax,(%esp)
3656
movl %ebx,4(%esp)
3657
movl %ecx,8(%esp)
3658
movl %edx,12(%esp)
3659
xorl %esi,%eax
3660
xorl 36(%edi),%ebx
3661
movzbl %ah,%esi
3662
movl 2052(%ebp,%esi,8),%edx
3663
movzbl %al,%esi
3664
xorl 4(%ebp,%esi,8),%edx
3665
shrl $16,%eax
3666
movzbl %bl,%esi
3667
movl (%ebp,%esi,8),%ecx
3668
movzbl %ah,%esi
3669
xorl (%ebp,%esi,8),%edx
3670
movzbl %bh,%esi
3671
xorl 4(%ebp,%esi,8),%ecx
3672
shrl $16,%ebx
3673
movzbl %al,%eax
3674
xorl 2048(%ebp,%eax,8),%edx
3675
movzbl %bh,%esi
3676
movl 12(%esp),%eax
3677
xorl %edx,%ecx
3678
rorl $8,%edx
3679
xorl 2048(%ebp,%esi,8),%ecx
3680
movzbl %bl,%esi
3681
movl 8(%esp),%ebx
3682
xorl %eax,%edx
3683
xorl 2052(%ebp,%esi,8),%ecx
3684
movl 40(%edi),%esi
3685
xorl %ecx,%edx
3686
movl %edx,12(%esp)
3687
xorl %ebx,%ecx
3688
movl %ecx,8(%esp)
3689
xorl %esi,%ecx
3690
xorl 44(%edi),%edx
3691
movzbl %ch,%esi
3692
movl 2052(%ebp,%esi,8),%ebx
3693
movzbl %cl,%esi
3694
xorl 4(%ebp,%esi,8),%ebx
3695
shrl $16,%ecx
3696
movzbl %dl,%esi
3697
movl (%ebp,%esi,8),%eax
3698
movzbl %ch,%esi
3699
xorl (%ebp,%esi,8),%ebx
3700
movzbl %dh,%esi
3701
xorl 4(%ebp,%esi,8),%eax
3702
shrl $16,%edx
3703
movzbl %cl,%ecx
3704
xorl 2048(%ebp,%ecx,8),%ebx
3705
movzbl %dh,%esi
3706
movl 4(%esp),%ecx
3707
xorl %ebx,%eax
3708
rorl $8,%ebx
3709
xorl 2048(%ebp,%esi,8),%eax
3710
movzbl %dl,%esi
3711
movl (%esp),%edx
3712
xorl %ecx,%ebx
3713
xorl 2052(%ebp,%esi,8),%eax
3714
movl 48(%edi),%esi
3715
xorl %eax,%ebx
3716
movl %ebx,4(%esp)
3717
xorl %edx,%eax
3718
movl %eax,(%esp)
3719
movl 8(%esp),%ecx
3720
movl 12(%esp),%edx
3721
movl 44(%esp),%edi
3722
leal 128(%edi),%edi
3723
movl %eax,-112(%edi)
3724
movl %ebx,-108(%edi)
3725
movl %ecx,-104(%edi)
3726
movl %edx,-100(%edi)
3727
movl %eax,%ebp
3728
shll $30,%eax
3729
movl %ebx,%esi
3730
shrl $2,%esi
3731
shll $30,%ebx
3732
orl %esi,%eax
3733
movl %ecx,%esi
3734
shll $30,%ecx
3735
movl %eax,-48(%edi)
3736
shrl $2,%esi
3737
orl %esi,%ebx
3738
shrl $2,%ebp
3739
movl %edx,%esi
3740
shrl $2,%esi
3741
movl %ebx,-44(%edi)
3742
shll $30,%edx
3743
orl %esi,%ecx
3744
orl %ebp,%edx
3745
movl %ecx,-40(%edi)
3746
movl %edx,-36(%edi)
3747
movl %eax,%ebp
3748
shll $30,%eax
3749
movl %ebx,%esi
3750
shrl $2,%esi
3751
shll $30,%ebx
3752
orl %esi,%eax
3753
movl %ecx,%esi
3754
shll $30,%ecx
3755
movl %eax,32(%edi)
3756
shrl $2,%esi
3757
orl %esi,%ebx
3758
shrl $2,%ebp
3759
movl %edx,%esi
3760
shrl $2,%esi
3761
movl %ebx,36(%edi)
3762
shll $30,%edx
3763
orl %esi,%ecx
3764
orl %ebp,%edx
3765
movl %ecx,40(%edi)
3766
movl %edx,44(%edi)
3767
movl %ebx,%ebp
3768
shll $19,%ebx
3769
movl %ecx,%esi
3770
shrl $13,%esi
3771
shll $19,%ecx
3772
orl %esi,%ebx
3773
movl %edx,%esi
3774
shll $19,%edx
3775
movl %ebx,128(%edi)
3776
shrl $13,%esi
3777
orl %esi,%ecx
3778
shrl $13,%ebp
3779
movl %eax,%esi
3780
shrl $13,%esi
3781
movl %ecx,132(%edi)
3782
shll $19,%eax
3783
orl %esi,%edx
3784
orl %ebp,%eax
3785
movl %edx,136(%edi)
3786
movl %eax,140(%edi)
3787
movl -96(%edi),%ebx
3788
movl -92(%edi),%ecx
3789
movl -88(%edi),%edx
3790
movl -84(%edi),%eax
3791
movl %ebx,%ebp
3792
shll $15,%ebx
3793
movl %ecx,%esi
3794
shrl $17,%esi
3795
shll $15,%ecx
3796
orl %esi,%ebx
3797
movl %edx,%esi
3798
shll $15,%edx
3799
movl %ebx,-96(%edi)
3800
shrl $17,%esi
3801
orl %esi,%ecx
3802
shrl $17,%ebp
3803
movl %eax,%esi
3804
shrl $17,%esi
3805
movl %ecx,-92(%edi)
3806
shll $15,%eax
3807
orl %esi,%edx
3808
orl %ebp,%eax
3809
movl %edx,-88(%edi)
3810
movl %eax,-84(%edi)
3811
movl %ebx,%ebp
3812
shll $15,%ebx
3813
movl %ecx,%esi
3814
shrl $17,%esi
3815
shll $15,%ecx
3816
orl %esi,%ebx
3817
movl %edx,%esi
3818
shll $15,%edx
3819
movl %ebx,-64(%edi)
3820
shrl $17,%esi
3821
orl %esi,%ecx
3822
shrl $17,%ebp
3823
movl %eax,%esi
3824
shrl $17,%esi
3825
movl %ecx,-60(%edi)
3826
shll $15,%eax
3827
orl %esi,%edx
3828
orl %ebp,%eax
3829
movl %edx,-56(%edi)
3830
movl %eax,-52(%edi)
3831
movl %ebx,%ebp
3832
shll $30,%ebx
3833
movl %ecx,%esi
3834
shrl $2,%esi
3835
shll $30,%ecx
3836
orl %esi,%ebx
3837
movl %edx,%esi
3838
shll $30,%edx
3839
movl %ebx,16(%edi)
3840
shrl $2,%esi
3841
orl %esi,%ecx
3842
shrl $2,%ebp
3843
movl %eax,%esi
3844
shrl $2,%esi
3845
movl %ecx,20(%edi)
3846
shll $30,%eax
3847
orl %esi,%edx
3848
orl %ebp,%eax
3849
movl %edx,24(%edi)
3850
movl %eax,28(%edi)
3851
movl %ecx,%ebp
3852
shll $2,%ecx
3853
movl %edx,%esi
3854
shrl $30,%esi
3855
shll $2,%edx
3856
orl %esi,%ecx
3857
movl %eax,%esi
3858
shll $2,%eax
3859
movl %ecx,80(%edi)
3860
shrl $30,%esi
3861
orl %esi,%edx
3862
shrl $30,%ebp
3863
movl %ebx,%esi
3864
shrl $30,%esi
3865
movl %edx,84(%edi)
3866
shll $2,%ebx
3867
orl %esi,%eax
3868
orl %ebp,%ebx
3869
movl %eax,88(%edi)
3870
movl %ebx,92(%edi)
3871
movl -80(%edi),%ecx
3872
movl -76(%edi),%edx
3873
movl -72(%edi),%eax
3874
movl -68(%edi),%ebx
3875
movl %ecx,%ebp
3876
shll $15,%ecx
3877
movl %edx,%esi
3878
shrl $17,%esi
3879
shll $15,%edx
3880
orl %esi,%ecx
3881
movl %eax,%esi
3882
shll $15,%eax
3883
movl %ecx,-80(%edi)
3884
shrl $17,%esi
3885
orl %esi,%edx
3886
shrl $17,%ebp
3887
movl %ebx,%esi
3888
shrl $17,%esi
3889
movl %edx,-76(%edi)
3890
shll $15,%ebx
3891
orl %esi,%eax
3892
orl %ebp,%ebx
3893
movl %eax,-72(%edi)
3894
movl %ebx,-68(%edi)
3895
movl %ecx,%ebp
3896
shll $30,%ecx
3897
movl %edx,%esi
3898
shrl $2,%esi
3899
shll $30,%edx
3900
orl %esi,%ecx
3901
movl %eax,%esi
3902
shll $30,%eax
3903
movl %ecx,-16(%edi)
3904
shrl $2,%esi
3905
orl %esi,%edx
3906
shrl $2,%ebp
3907
movl %ebx,%esi
3908
shrl $2,%esi
3909
movl %edx,-12(%edi)
3910
shll $30,%ebx
3911
orl %esi,%eax
3912
orl %ebp,%ebx
3913
movl %eax,-8(%edi)
3914
movl %ebx,-4(%edi)
3915
movl %edx,64(%edi)
3916
movl %eax,68(%edi)
3917
movl %ebx,72(%edi)
3918
movl %ecx,76(%edi)
3919
movl %edx,%ebp
3920
shll $17,%edx
3921
movl %eax,%esi
3922
shrl $15,%esi
3923
shll $17,%eax
3924
orl %esi,%edx
3925
movl %ebx,%esi
3926
shll $17,%ebx
3927
movl %edx,96(%edi)
3928
shrl $15,%esi
3929
orl %esi,%eax
3930
shrl $15,%ebp
3931
movl %ecx,%esi
3932
shrl $15,%esi
3933
movl %eax,100(%edi)
3934
shll $17,%ecx
3935
orl %esi,%ebx
3936
orl %ebp,%ecx
3937
movl %ebx,104(%edi)
3938
movl %ecx,108(%edi)
3939
movl -128(%edi),%edx
3940
movl -124(%edi),%eax
3941
movl -120(%edi),%ebx
3942
movl -116(%edi),%ecx
3943
movl %eax,%ebp
3944
shll $13,%eax
3945
movl %ebx,%esi
3946
shrl $19,%esi
3947
shll $13,%ebx
3948
orl %esi,%eax
3949
movl %ecx,%esi
3950
shll $13,%ecx
3951
movl %eax,-32(%edi)
3952
shrl $19,%esi
3953
orl %esi,%ebx
3954
shrl $19,%ebp
3955
movl %edx,%esi
3956
shrl $19,%esi
3957
movl %ebx,-28(%edi)
3958
shll $13,%edx
3959
orl %esi,%ecx
3960
orl %ebp,%edx
3961
movl %ecx,-24(%edi)
3962
movl %edx,-20(%edi)
3963
movl %eax,%ebp
3964
shll $15,%eax
3965
movl %ebx,%esi
3966
shrl $17,%esi
3967
shll $15,%ebx
3968
orl %esi,%eax
3969
movl %ecx,%esi
3970
shll $15,%ecx
3971
movl %eax,(%edi)
3972
shrl $17,%esi
3973
orl %esi,%ebx
3974
shrl $17,%ebp
3975
movl %edx,%esi
3976
shrl $17,%esi
3977
movl %ebx,4(%edi)
3978
shll $15,%edx
3979
orl %esi,%ecx
3980
orl %ebp,%edx
3981
movl %ecx,8(%edi)
3982
movl %edx,12(%edi)
3983
movl %eax,%ebp
3984
shll $17,%eax
3985
movl %ebx,%esi
3986
shrl $15,%esi
3987
shll $17,%ebx
3988
orl %esi,%eax
3989
movl %ecx,%esi
3990
shll $17,%ecx
3991
movl %eax,48(%edi)
3992
shrl $15,%esi
3993
orl %esi,%ebx
3994
shrl $15,%ebp
3995
movl %edx,%esi
3996
shrl $15,%esi
3997
movl %ebx,52(%edi)
3998
shll $17,%edx
3999
orl %esi,%ecx
4000
orl %ebp,%edx
4001
movl %ecx,56(%edi)
4002
movl %edx,60(%edi)
4003
movl %ebx,%ebp
4004
shll $2,%ebx
4005
movl %ecx,%esi
4006
shrl $30,%esi
4007
shll $2,%ecx
4008
orl %esi,%ebx
4009
movl %edx,%esi
4010
shll $2,%edx
4011
movl %ebx,112(%edi)
4012
shrl $30,%esi
4013
orl %esi,%ecx
4014
shrl $30,%ebp
4015
movl %eax,%esi
4016
shrl $30,%esi
4017
movl %ecx,116(%edi)
4018
shll $2,%eax
4019
orl %esi,%edx
4020
orl %ebp,%eax
4021
movl %edx,120(%edi)
4022
movl %eax,124(%edi)
4023
movl $4,%eax
4024
.L013done:
4025
leal 144(%edi),%edx
4026
addl $16,%esp
4027
popl %edi
4028
popl %esi
4029
popl %ebx
4030
popl %ebp
4031
ret
4032
.size Camellia_Ekeygen,.-.L_Camellia_Ekeygen_begin
4033
.globl Camellia_set_key
4034
.type Camellia_set_key,@function
4035
.align 16
4036
Camellia_set_key:
4037
.L_Camellia_set_key_begin:
4038
#ifdef __CET__
4039
4040
.byte 243,15,30,251
4041
#endif
4042
4043
pushl %ebx
4044
movl 8(%esp),%ecx
4045
movl 12(%esp),%ebx
4046
movl 16(%esp),%edx
4047
movl $-1,%eax
4048
testl %ecx,%ecx
4049
jz .L014done
4050
testl %edx,%edx
4051
jz .L014done
4052
movl $-2,%eax
4053
cmpl $256,%ebx
4054
je .L015arg_ok
4055
cmpl $192,%ebx
4056
je .L015arg_ok
4057
cmpl $128,%ebx
4058
jne .L014done
4059
.align 4
4060
.L015arg_ok:
4061
pushl %edx
4062
pushl %ecx
4063
pushl %ebx
4064
call .L_Camellia_Ekeygen_begin
4065
addl $12,%esp
4066
movl %eax,(%edx)
4067
xorl %eax,%eax
4068
.align 4
4069
.L014done:
4070
popl %ebx
4071
ret
4072
.size Camellia_set_key,.-.L_Camellia_set_key_begin
4073
.align 64
4074
.LCamellia_SIGMA:
4075
.long 2694735487,1003262091,3061508184,1286239154,3337565999,3914302142,1426019237,4057165596,283453434,3731369245,2958461122,3018244605,0,0,0,0
4076
.align 64
4077
.LCamellia_SBOX:
4078
.long 1886416896,1886388336
4079
.long 2189591040,741081132
4080
.long 741092352,3014852787
4081
.long 3974949888,3233808576
4082
.long 3014898432,3840147684
4083
.long 656877312,1465319511
4084
.long 3233857536,3941204202
4085
.long 3857048832,2930639022
4086
.long 3840205824,589496355
4087
.long 2240120064,1802174571
4088
.long 1465341696,1162149957
4089
.long 892679424,2779054245
4090
.long 3941263872,3991732461
4091
.long 202116096,1330577487
4092
.long 2930683392,488439837
4093
.long 1094795520,2459041938
4094
.long 589505280,2256928902
4095
.long 4025478912,2947481775
4096
.long 1802201856,2088501372
4097
.long 2475922176,522125343
4098
.long 1162167552,1044250686
4099
.long 421075200,3705405660
4100
.long 2779096320,1583218782
4101
.long 555819264,185270283
4102
.long 3991792896,2795896998
4103
.long 235802112,960036921
4104
.long 1330597632,3587506389
4105
.long 1313754624,1566376029
4106
.long 488447232,3654877401
4107
.long 1701143808,1515847770
4108
.long 2459079168,1364262993
4109
.long 3183328512,1819017324
4110
.long 2256963072,2341142667
4111
.long 3099113472,2593783962
4112
.long 2947526400,4227531003
4113
.long 2408550144,2964324528
4114
.long 2088532992,1953759348
4115
.long 3958106880,724238379
4116
.long 522133248,4042260720
4117
.long 3469659648,2223243396
4118
.long 1044266496,3755933919
4119
.long 808464384,3419078859
4120
.long 3705461760,875823156
4121
.long 1600085760,1987444854
4122
.long 1583242752,1835860077
4123
.long 3318072576,2846425257
4124
.long 185273088,3520135377
4125
.long 437918208,67371012
4126
.long 2795939328,336855060
4127
.long 3789676800,976879674
4128
.long 960051456,3739091166
4129
.long 3402287616,286326801
4130
.long 3587560704,842137650
4131
.long 1195853568,2627469468
4132
.long 1566399744,1397948499
4133
.long 1027423488,4075946226
4134
.long 3654932736,4278059262
4135
.long 16843008,3486449871
4136
.long 1515870720,3284336835
4137
.long 3604403712,2054815866
4138
.long 1364283648,606339108
4139
.long 1448498688,3907518696
4140
.long 1819044864,1616904288
4141
.long 1296911616,1768489065
4142
.long 2341178112,2863268010
4143
.long 218959104,2694840480
4144
.long 2593823232,2711683233
4145
.long 1717986816,1650589794
4146
.long 4227595008,1414791252
4147
.long 3435973632,505282590
4148
.long 2964369408,3772776672
4149
.long 757935360,1684275300
4150
.long 1953788928,269484048
4151
.long 303174144,0
4152
.long 724249344,2745368739
4153
.long 538976256,1970602101
4154
.long 4042321920,2324299914
4155
.long 2981212416,3873833190
4156
.long 2223277056,151584777
4157
.long 2576980224,3722248413
4158
.long 3755990784,2273771655
4159
.long 1280068608,2206400643
4160
.long 3419130624,3452764365
4161
.long 3267543552,2425356432
4162
.long 875836416,1936916595
4163
.long 2122219008,4143317238
4164
.long 1987474944,2644312221
4165
.long 84215040,3216965823
4166
.long 1835887872,1381105746
4167
.long 3082270464,3638034648
4168
.long 2846468352,3368550600
4169
.long 825307392,3334865094
4170
.long 3520188672,2172715137
4171
.long 387389184,1869545583
4172
.long 67372032,320012307
4173
.long 3621246720,1667432547
4174
.long 336860160,3924361449
4175
.long 1482184704,2812739751
4176
.long 976894464,2677997727
4177
.long 1633771776,3166437564
4178
.long 3739147776,690552873
4179
.long 454761216,4193845497
4180
.long 286331136,791609391
4181
.long 471604224,3031695540
4182
.long 842150400,2021130360
4183
.long 252645120,101056518
4184
.long 2627509248,3890675943
4185
.long 370546176,1903231089
4186
.long 1397969664,3570663636
4187
.long 404232192,2880110763
4188
.long 4076007936,2290614408
4189
.long 572662272,2374828173
4190
.long 4278124032,1920073842
4191
.long 1145324544,3115909305
4192
.long 3486502656,4177002744
4193
.long 2998055424,2896953516
4194
.long 3284386560,909508662
4195
.long 3048584448,707395626
4196
.long 2054846976,1010565180
4197
.long 2442236160,4059103473
4198
.long 606348288,1077936192
4199
.long 134744064,3553820883
4200
.long 3907577856,3149594811
4201
.long 2829625344,1128464451
4202
.long 1616928768,353697813
4203
.long 4244438016,2913796269
4204
.long 1768515840,2004287607
4205
.long 1347440640,2155872384
4206
.long 2863311360,2189557890
4207
.long 3503345664,3974889708
4208
.long 2694881280,656867367
4209
.long 2105376000,3856990437
4210
.long 2711724288,2240086149
4211
.long 2307492096,892665909
4212
.long 1650614784,202113036
4213
.long 2543294208,1094778945
4214
.long 1414812672,4025417967
4215
.long 1532713728,2475884691
4216
.long 505290240,421068825
4217
.long 2509608192,555810849
4218
.long 3772833792,235798542
4219
.long 4294967040,1313734734
4220
.long 1684300800,1701118053
4221
.long 3537031680,3183280317
4222
.long 269488128,3099066552
4223
.long 3301229568,2408513679
4224
.long 0,3958046955
4225
.long 1212696576,3469607118
4226
.long 2745410304,808452144
4227
.long 4160222976,1600061535
4228
.long 1970631936,3318022341
4229
.long 3688618752,437911578
4230
.long 2324335104,3789619425
4231
.long 50529024,3402236106
4232
.long 3873891840,1195835463
4233
.long 3671775744,1027407933
4234
.long 151587072,16842753
4235
.long 1061109504,3604349142
4236
.long 3722304768,1448476758
4237
.long 2492765184,1296891981
4238
.long 2273806080,218955789
4239
.long 1549556736,1717960806
4240
.long 2206434048,3435921612
4241
.long 33686016,757923885
4242
.long 3452816640,303169554
4243
.long 1246382592,538968096
4244
.long 2425393152,2981167281
4245
.long 858993408,2576941209
4246
.long 1936945920,1280049228
4247
.long 1734829824,3267494082
4248
.long 4143379968,2122186878
4249
.long 4092850944,84213765
4250
.long 2644352256,3082223799
4251
.long 2139062016,825294897
4252
.long 3217014528,387383319
4253
.long 3806519808,3621191895
4254
.long 1381126656,1482162264
4255
.long 2610666240,1633747041
4256
.long 3638089728,454754331
4257
.long 640034304,471597084
4258
.long 3368601600,252641295
4259
.long 926365440,370540566
4260
.long 3334915584,404226072
4261
.long 993737472,572653602
4262
.long 2172748032,1145307204
4263
.long 2526451200,2998010034
4264
.long 1869573888,3048538293
4265
.long 1263225600,2442199185
4266
.long 320017152,134742024
4267
.long 3200171520,2829582504
4268
.long 1667457792,4244373756
4269
.long 774778368,1347420240
4270
.long 3924420864,3503292624
4271
.long 2038003968,2105344125
4272
.long 2812782336,2307457161
4273
.long 2358021120,2543255703
4274
.long 2678038272,1532690523
4275
.long 1852730880,2509570197
4276
.long 3166485504,4294902015
4277
.long 2391707136,3536978130
4278
.long 690563328,3301179588
4279
.long 4126536960,1212678216
4280
.long 4193908992,4160159991
4281
.long 3065427456,3688562907
4282
.long 791621376,50528259
4283
.long 4261281024,3671720154
4284
.long 3031741440,1061093439
4285
.long 1499027712,2492727444
4286
.long 2021160960,1549533276
4287
.long 2560137216,33685506
4288
.long 101058048,1246363722
4289
.long 1785358848,858980403
4290
.long 3890734848,1734803559
4291
.long 1179010560,4092788979
4292
.long 1903259904,2139029631
4293
.long 3132799488,3806462178
4294
.long 3570717696,2610626715
4295
.long 623191296,640024614
4296
.long 2880154368,926351415
4297
.long 1111638528,993722427
4298
.long 2290649088,2526412950
4299
.long 2728567296,1263206475
4300
.long 2374864128,3200123070
4301
.long 4210752000,774766638
4302
.long 1920102912,2037973113
4303
.long 117901056,2357985420
4304
.long 3115956480,1852702830
4305
.long 1431655680,2391670926
4306
.long 4177065984,4126474485
4307
.long 4008635904,3065381046
4308
.long 2896997376,4261216509
4309
.long 168430080,1499005017
4310
.long 909522432,2560098456
4311
.long 1229539584,1785331818
4312
.long 707406336,1178992710
4313
.long 1751672832,3132752058
4314
.long 1010580480,623181861
4315
.long 943208448,1111621698
4316
.long 4059164928,2728525986
4317
.long 2762253312,4210688250
4318
.long 1077952512,117899271
4319
.long 673720320,1431634005
4320
.long 3553874688,4008575214
4321
.long 2071689984,168427530
4322
.long 3149642496,1229520969
4323
.long 3385444608,1751646312
4324
.long 1128481536,943194168
4325
.long 3250700544,2762211492
4326
.long 353703168,673710120
4327
.long 3823362816,2071658619
4328
.long 2913840384,3385393353
4329
.long 4109693952,3250651329
4330
.long 2004317952,3823304931
4331
.long 3351758592,4109631732
4332
.long 2155905024,3351707847
4333
.long 2661195264,2661154974
4334
.long 14737632,939538488
4335
.long 328965,1090535745
4336
.long 5789784,369104406
4337
.long 14277081,1979741814
4338
.long 6776679,3640711641
4339
.long 5131854,2466288531
4340
.long 8487297,1610637408
4341
.long 13355979,4060148466
4342
.long 13224393,1912631922
4343
.long 723723,3254829762
4344
.long 11447982,2868947883
4345
.long 6974058,2583730842
4346
.long 14013909,1962964341
4347
.long 1579032,100664838
4348
.long 6118749,1459640151
4349
.long 8553090,2684395680
4350
.long 4605510,2432733585
4351
.long 14671839,4144035831
4352
.long 14079702,3036722613
4353
.long 2565927,3372272073
4354
.long 9079434,2717950626
4355
.long 3289650,2348846220
4356
.long 4934475,3523269330
4357
.long 4342338,2415956112
4358
.long 14408667,4127258358
4359
.long 1842204,117442311
4360
.long 10395294,2801837991
4361
.long 10263708,654321447
4362
.long 3815994,2382401166
4363
.long 13290186,2986390194
4364
.long 2434341,1224755529
4365
.long 8092539,3724599006
4366
.long 855309,1124090691
4367
.long 7434609,1543527516
4368
.long 6250335,3607156695
4369
.long 2039583,3338717127
4370
.long 16316664,1040203326
4371
.long 14145495,4110480885
4372
.long 4079166,2399178639
4373
.long 10329501,1728079719
4374
.long 8158332,520101663
4375
.long 6316128,402659352
4376
.long 12171705,1845522030
4377
.long 12500670,2936057775
4378
.long 12369084,788541231
4379
.long 9145227,3791708898
4380
.long 1447446,2231403909
4381
.long 3421236,218107149
4382
.long 5066061,1392530259
4383
.long 12829635,4026593520
4384
.long 7500402,2617285788
4385
.long 9803157,1694524773
4386
.long 11250603,3925928682
4387
.long 9342606,2734728099
4388
.long 12237498,2919280302
4389
.long 8026746,2650840734
4390
.long 11776947,3959483628
4391
.long 131586,2147516544
4392
.long 11842740,754986285
4393
.long 11382189,1795189611
4394
.long 10658466,2818615464
4395
.long 11316396,721431339
4396
.long 14211288,905983542
4397
.long 10132122,2785060518
4398
.long 1513239,3305162181
4399
.long 1710618,2248181382
4400
.long 3487029,1291865421
4401
.long 13421772,855651123
4402
.long 16250871,4244700669
4403
.long 10066329,1711302246
4404
.long 6381921,1476417624
4405
.long 5921370,2516620950
4406
.long 15263976,973093434
4407
.long 2368548,150997257
4408
.long 5658198,2499843477
4409
.long 4210752,268439568
4410
.long 14803425,2013296760
4411
.long 6513507,3623934168
4412
.long 592137,1107313218
4413
.long 3355443,3422604492
4414
.long 12566463,4009816047
4415
.long 10000536,637543974
4416
.long 9934743,3842041317
4417
.long 8750469,1627414881
4418
.long 6842472,436214298
4419
.long 16579836,1056980799
4420
.long 15527148,989870907
4421
.long 657930,2181071490
4422
.long 14342874,3053500086
4423
.long 7303023,3674266587
4424
.long 5460819,3556824276
4425
.long 6447714,2550175896
4426
.long 10724259,3892373736
4427
.long 3026478,2332068747
4428
.long 526344,33554946
4429
.long 11513775,3942706155
4430
.long 2631720,167774730
4431
.long 11579568,738208812
4432
.long 7631988,486546717
4433
.long 12763842,2952835248
4434
.long 12434877,1862299503
4435
.long 3552822,2365623693
4436
.long 2236962,2281736328
4437
.long 3684408,234884622
4438
.long 6579300,419436825
4439
.long 1973790,2264958855
4440
.long 3750201,1308642894
4441
.long 2894892,184552203
4442
.long 10921638,2835392937
4443
.long 3158064,201329676
4444
.long 15066597,2030074233
4445
.long 4473924,285217041
4446
.long 16645629,2130739071
4447
.long 8947848,570434082
4448
.long 10461087,3875596263
4449
.long 6645093,1493195097
4450
.long 8882055,3774931425
4451
.long 7039851,3657489114
4452
.long 16053492,1023425853
4453
.long 2302755,3355494600
4454
.long 4737096,301994514
4455
.long 1052688,67109892
4456
.long 13750737,1946186868
4457
.long 5329233,1409307732
4458
.long 12632256,805318704
4459
.long 16382457,2113961598
4460
.long 13816530,3019945140
4461
.long 10526880,671098920
4462
.long 5592405,1426085205
4463
.long 10592673,1744857192
4464
.long 4276545,1342197840
4465
.long 16448250,3187719870
4466
.long 4408131,3489714384
4467
.long 1250067,3288384708
4468
.long 12895428,822096177
4469
.long 3092271,3405827019
4470
.long 11053224,704653866
4471
.long 11974326,2902502829
4472
.long 3947580,251662095
4473
.long 2829099,3389049546
4474
.long 12698049,1879076976
4475
.long 16777215,4278255615
4476
.long 13158600,838873650
4477
.long 10855845,1761634665
4478
.long 2105376,134219784
4479
.long 9013641,1644192354
4480
.long 0,0
4481
.long 9474192,603989028
4482
.long 4671303,3506491857
4483
.long 15724527,4211145723
4484
.long 15395562,3120609978
4485
.long 12040119,3976261101
4486
.long 1381653,1157645637
4487
.long 394758,2164294017
4488
.long 13487565,1929409395
4489
.long 11908533,1828744557
4490
.long 1184274,2214626436
4491
.long 8289918,2667618207
4492
.long 12303291,3993038574
4493
.long 2697513,1241533002
4494
.long 986895,3271607235
4495
.long 12105912,771763758
4496
.long 460551,3238052289
4497
.long 263172,16777473
4498
.long 10197915,3858818790
4499
.long 9737364,620766501
4500
.long 2171169,1207978056
4501
.long 6710886,2566953369
4502
.long 15132390,3103832505
4503
.long 13553358,3003167667
4504
.long 15592941,2063629179
4505
.long 15198183,4177590777
4506
.long 3881787,3456159438
4507
.long 16711422,3204497343
4508
.long 8355711,3741376479
4509
.long 12961221,1895854449
4510
.long 10790052,687876393
4511
.long 3618615,3439381965
4512
.long 11645361,1811967084
4513
.long 5000268,318771987
4514
.long 9539985,1677747300
4515
.long 7237230,2600508315
4516
.long 9276813,1660969827
4517
.long 7763574,2634063261
4518
.long 197379,3221274816
4519
.long 2960685,1258310475
4520
.long 14606046,3070277559
4521
.long 9868950,2768283045
4522
.long 2500134,2298513801
4523
.long 8224125,1593859935
4524
.long 13027014,2969612721
4525
.long 6052956,385881879
4526
.long 13882323,4093703412
4527
.long 15921906,3154164924
4528
.long 5197647,3540046803
4529
.long 1644825,1174423110
4530
.long 4144959,3472936911
4531
.long 14474460,922761015
4532
.long 7960953,1577082462
4533
.long 1907997,1191200583
4534
.long 5395026,2483066004
4535
.long 15461355,4194368250
4536
.long 15987699,4227923196
4537
.long 7171437,1526750043
4538
.long 6184542,2533398423
4539
.long 16514043,4261478142
4540
.long 6908265,1509972570
4541
.long 11711154,2885725356
4542
.long 15790320,1006648380
4543
.long 3223857,1275087948
4544
.long 789516,50332419
4545
.long 13948116,889206069
4546
.long 13619151,4076925939
4547
.long 9211020,587211555
4548
.long 14869218,3087055032
4549
.long 7697781,1560304989
4550
.long 11119017,1778412138
4551
.long 4868682,2449511058
4552
.long 5723991,3573601749
4553
.long 8684676,553656609
4554
.long 1118481,1140868164
4555
.long 4539717,1358975313
4556
.long 1776411,3321939654
4557
.long 16119285,2097184125
4558
.long 15000804,956315961
4559
.long 921102,2197848963
4560
.long 7566195,3691044060
4561
.long 11184810,2852170410
4562
.long 15856113,2080406652
4563
.long 14540253,1996519287
4564
.long 5855577,1442862678
4565
.long 1315860,83887365
4566
.long 7105644,452991771
4567
.long 9605778,2751505572
4568
.long 5526612,352326933
4569
.long 13684944,872428596
4570
.long 7895160,503324190
4571
.long 7368816,469769244
4572
.long 14935011,4160813304
4573
.long 4802889,1375752786
4574
.long 8421504,536879136
4575
.long 5263440,335549460
4576
.long 10987431,3909151209
4577
.long 16185078,3170942397
4578
.long 7829367,3707821533
4579
.long 9671571,3825263844
4580
.long 8816262,2701173153
4581
.long 8618883,3758153952
4582
.long 2763306,2315291274
4583
.long 13092807,4043370993
4584
.long 5987163,3590379222
4585
.long 15329769,2046851706
4586
.long 15658734,3137387451
4587
.long 9408399,3808486371
4588
.long 65793,1073758272
4589
.long 4013373,1325420367
4590
.globl Camellia_cbc_encrypt
4591
.type Camellia_cbc_encrypt,@function
4592
.align 16
4593
Camellia_cbc_encrypt:
4594
.L_Camellia_cbc_encrypt_begin:
4595
#ifdef __CET__
4596
4597
.byte 243,15,30,251
4598
#endif
4599
4600
pushl %ebp
4601
pushl %ebx
4602
pushl %esi
4603
pushl %edi
4604
movl 28(%esp),%ecx
4605
cmpl $0,%ecx
4606
je .L016enc_out
4607
pushfl
4608
cld
4609
movl 24(%esp),%eax
4610
movl 28(%esp),%ebx
4611
movl 36(%esp),%edx
4612
movl 40(%esp),%ebp
4613
leal -64(%esp),%esi
4614
andl $-64,%esi
4615
leal -127(%edx),%edi
4616
subl %esi,%edi
4617
negl %edi
4618
andl $960,%edi
4619
subl %edi,%esi
4620
movl 44(%esp),%edi
4621
xchgl %esi,%esp
4622
addl $4,%esp
4623
movl %esi,20(%esp)
4624
movl %eax,24(%esp)
4625
movl %ebx,28(%esp)
4626
movl %ecx,32(%esp)
4627
movl %edx,36(%esp)
4628
movl %ebp,40(%esp)
4629
call .L017pic_point
4630
.L017pic_point:
4631
popl %ebp
4632
leal .LCamellia_SBOX-.L017pic_point(%ebp),%ebp
4633
movl $32,%esi
4634
.align 4
4635
.L018prefetch_sbox:
4636
movl (%ebp),%eax
4637
movl 32(%ebp),%ebx
4638
movl 64(%ebp),%ecx
4639
movl 96(%ebp),%edx
4640
leal 128(%ebp),%ebp
4641
decl %esi
4642
jnz .L018prefetch_sbox
4643
movl 36(%esp),%eax
4644
subl $4096,%ebp
4645
movl 24(%esp),%esi
4646
movl 272(%eax),%edx
4647
cmpl $0,%edi
4648
je .L019DECRYPT
4649
movl 32(%esp),%ecx
4650
movl 40(%esp),%edi
4651
shll $6,%edx
4652
leal (%eax,%edx,1),%edx
4653
movl %edx,16(%esp)
4654
testl $4294967280,%ecx
4655
jz .L020enc_tail
4656
movl (%edi),%eax
4657
movl 4(%edi),%ebx
4658
.align 4
4659
.L021enc_loop:
4660
movl 8(%edi),%ecx
4661
movl 12(%edi),%edx
4662
xorl (%esi),%eax
4663
xorl 4(%esi),%ebx
4664
xorl 8(%esi),%ecx
4665
bswap %eax
4666
xorl 12(%esi),%edx
4667
bswap %ebx
4668
movl 36(%esp),%edi
4669
bswap %ecx
4670
bswap %edx
4671
call _x86_Camellia_encrypt
4672
movl 24(%esp),%esi
4673
movl 28(%esp),%edi
4674
bswap %eax
4675
bswap %ebx
4676
bswap %ecx
4677
movl %eax,(%edi)
4678
bswap %edx
4679
movl %ebx,4(%edi)
4680
movl %ecx,8(%edi)
4681
movl %edx,12(%edi)
4682
movl 32(%esp),%ecx
4683
leal 16(%esi),%esi
4684
movl %esi,24(%esp)
4685
leal 16(%edi),%edx
4686
movl %edx,28(%esp)
4687
subl $16,%ecx
4688
testl $4294967280,%ecx
4689
movl %ecx,32(%esp)
4690
jnz .L021enc_loop
4691
testl $15,%ecx
4692
jnz .L020enc_tail
4693
movl 40(%esp),%esi
4694
movl 8(%edi),%ecx
4695
movl 12(%edi),%edx
4696
movl %eax,(%esi)
4697
movl %ebx,4(%esi)
4698
movl %ecx,8(%esi)
4699
movl %edx,12(%esi)
4700
movl 20(%esp),%esp
4701
popfl
4702
.L016enc_out:
4703
popl %edi
4704
popl %esi
4705
popl %ebx
4706
popl %ebp
4707
ret
4708
pushfl
4709
.align 4
4710
.L020enc_tail:
4711
movl %edi,%eax
4712
movl 28(%esp),%edi
4713
pushl %eax
4714
movl $16,%ebx
4715
subl %ecx,%ebx
4716
cmpl %esi,%edi
4717
je .L022enc_in_place
4718
.align 4
4719
.long 2767451785
4720
jmp .L023enc_skip_in_place
4721
.L022enc_in_place:
4722
leal (%edi,%ecx,1),%edi
4723
.L023enc_skip_in_place:
4724
movl %ebx,%ecx
4725
xorl %eax,%eax
4726
.align 4
4727
.long 2868115081
4728
popl %edi
4729
movl 28(%esp),%esi
4730
movl (%edi),%eax
4731
movl 4(%edi),%ebx
4732
movl $16,32(%esp)
4733
jmp .L021enc_loop
4734
.align 16
4735
.L019DECRYPT:
4736
shll $6,%edx
4737
leal (%eax,%edx,1),%edx
4738
movl %eax,16(%esp)
4739
movl %edx,36(%esp)
4740
cmpl 28(%esp),%esi
4741
je .L024dec_in_place
4742
movl 40(%esp),%edi
4743
movl %edi,44(%esp)
4744
.align 4
4745
.L025dec_loop:
4746
movl (%esi),%eax
4747
movl 4(%esi),%ebx
4748
movl 8(%esi),%ecx
4749
bswap %eax
4750
movl 12(%esi),%edx
4751
bswap %ebx
4752
movl 36(%esp),%edi
4753
bswap %ecx
4754
bswap %edx
4755
call _x86_Camellia_decrypt
4756
movl 44(%esp),%edi
4757
movl 32(%esp),%esi
4758
bswap %eax
4759
bswap %ebx
4760
bswap %ecx
4761
xorl (%edi),%eax
4762
bswap %edx
4763
xorl 4(%edi),%ebx
4764
xorl 8(%edi),%ecx
4765
xorl 12(%edi),%edx
4766
subl $16,%esi
4767
jc .L026dec_partial
4768
movl %esi,32(%esp)
4769
movl 24(%esp),%esi
4770
movl 28(%esp),%edi
4771
movl %eax,(%edi)
4772
movl %ebx,4(%edi)
4773
movl %ecx,8(%edi)
4774
movl %edx,12(%edi)
4775
movl %esi,44(%esp)
4776
leal 16(%esi),%esi
4777
movl %esi,24(%esp)
4778
leal 16(%edi),%edi
4779
movl %edi,28(%esp)
4780
jnz .L025dec_loop
4781
movl 44(%esp),%edi
4782
.L027dec_end:
4783
movl 40(%esp),%esi
4784
movl (%edi),%eax
4785
movl 4(%edi),%ebx
4786
movl 8(%edi),%ecx
4787
movl 12(%edi),%edx
4788
movl %eax,(%esi)
4789
movl %ebx,4(%esi)
4790
movl %ecx,8(%esi)
4791
movl %edx,12(%esi)
4792
jmp .L028dec_out
4793
.align 4
4794
.L026dec_partial:
4795
leal 44(%esp),%edi
4796
movl %eax,(%edi)
4797
movl %ebx,4(%edi)
4798
movl %ecx,8(%edi)
4799
movl %edx,12(%edi)
4800
leal 16(%esi),%ecx
4801
movl %edi,%esi
4802
movl 28(%esp),%edi
4803
.long 2767451785
4804
movl 24(%esp),%edi
4805
jmp .L027dec_end
4806
.align 4
4807
.L024dec_in_place:
4808
.L029dec_in_place_loop:
4809
leal 44(%esp),%edi
4810
movl (%esi),%eax
4811
movl 4(%esi),%ebx
4812
movl 8(%esi),%ecx
4813
movl 12(%esi),%edx
4814
movl %eax,(%edi)
4815
movl %ebx,4(%edi)
4816
movl %ecx,8(%edi)
4817
bswap %eax
4818
movl %edx,12(%edi)
4819
bswap %ebx
4820
movl 36(%esp),%edi
4821
bswap %ecx
4822
bswap %edx
4823
call _x86_Camellia_decrypt
4824
movl 40(%esp),%edi
4825
movl 28(%esp),%esi
4826
bswap %eax
4827
bswap %ebx
4828
bswap %ecx
4829
xorl (%edi),%eax
4830
bswap %edx
4831
xorl 4(%edi),%ebx
4832
xorl 8(%edi),%ecx
4833
xorl 12(%edi),%edx
4834
movl %eax,(%esi)
4835
movl %ebx,4(%esi)
4836
movl %ecx,8(%esi)
4837
movl %edx,12(%esi)
4838
leal 16(%esi),%esi
4839
movl %esi,28(%esp)
4840
leal 44(%esp),%esi
4841
movl (%esi),%eax
4842
movl 4(%esi),%ebx
4843
movl 8(%esi),%ecx
4844
movl 12(%esi),%edx
4845
movl %eax,(%edi)
4846
movl %ebx,4(%edi)
4847
movl %ecx,8(%edi)
4848
movl %edx,12(%edi)
4849
movl 24(%esp),%esi
4850
leal 16(%esi),%esi
4851
movl %esi,24(%esp)
4852
movl 32(%esp),%ecx
4853
subl $16,%ecx
4854
jc .L030dec_in_place_partial
4855
movl %ecx,32(%esp)
4856
jnz .L029dec_in_place_loop
4857
jmp .L028dec_out
4858
.align 4
4859
.L030dec_in_place_partial:
4860
movl 28(%esp),%edi
4861
leal 44(%esp),%esi
4862
leal (%edi,%ecx,1),%edi
4863
leal 16(%esi,%ecx,1),%esi
4864
negl %ecx
4865
.long 2767451785
4866
.align 4
4867
.L028dec_out:
4868
movl 20(%esp),%esp
4869
popfl
4870
popl %edi
4871
popl %esi
4872
popl %ebx
4873
popl %ebp
4874
ret
4875
.size Camellia_cbc_encrypt,.-.L_Camellia_cbc_encrypt_begin
4876
.byte 67,97,109,101,108,108,105,97,32,102,111,114,32,120,56,54
4877
.byte 32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115
4878
.byte 115,108,46,111,114,103,62,0
4879
4880
.section ".note.gnu.property", "a"
4881
.p2align 2
4882
.long 1f - 0f
4883
.long 4f - 1f
4884
.long 5
4885
0:
4886
.asciz "GNU"
4887
1:
4888
.p2align 2
4889
.long 0xc0000002
4890
.long 3f - 2f
4891
2:
4892
.long 3
4893
3:
4894
.p2align 2
4895
4:
4896
#endif
4897
4898