Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/sys/crypto/openssl/i386/rc4-586.S
39483 views
1
/* Do not modify. This file is auto-generated from rc4-586.pl. */
2
#ifdef PIC
3
.text
4
.globl RC4
5
.type RC4,@function
6
.align 16
7
RC4:
8
.L_RC4_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),%edi
19
movl 24(%esp),%edx
20
movl 28(%esp),%esi
21
movl 32(%esp),%ebp
22
xorl %eax,%eax
23
xorl %ebx,%ebx
24
cmpl $0,%edx
25
je .L000abort
26
movb (%edi),%al
27
movb 4(%edi),%bl
28
addl $8,%edi
29
leal (%esi,%edx,1),%ecx
30
subl %esi,%ebp
31
movl %ecx,24(%esp)
32
incb %al
33
cmpl $-1,256(%edi)
34
je .L001RC4_CHAR
35
movl (%edi,%eax,4),%ecx
36
andl $-4,%edx
37
jz .L002loop1
38
movl %ebp,32(%esp)
39
testl $-8,%edx
40
jz .L003go4loop4
41
call .L004PIC_me_up
42
.L004PIC_me_up:
43
popl %ebp
44
leal OPENSSL_ia32cap_P-.L004PIC_me_up(%ebp),%ebp
45
btl $26,(%ebp)
46
jnc .L003go4loop4
47
movl 32(%esp),%ebp
48
andl $-8,%edx
49
leal -8(%esi,%edx,1),%edx
50
movl %edx,-4(%edi)
51
addb %cl,%bl
52
movl (%edi,%ebx,4),%edx
53
movl %ecx,(%edi,%ebx,4)
54
movl %edx,(%edi,%eax,4)
55
incl %eax
56
addl %ecx,%edx
57
movzbl %al,%eax
58
movzbl %dl,%edx
59
movq (%esi),%mm0
60
movl (%edi,%eax,4),%ecx
61
movd (%edi,%edx,4),%mm2
62
jmp .L005loop_mmx_enter
63
.align 16
64
.L006loop_mmx:
65
addb %cl,%bl
66
psllq $56,%mm1
67
movl (%edi,%ebx,4),%edx
68
movl %ecx,(%edi,%ebx,4)
69
movl %edx,(%edi,%eax,4)
70
incl %eax
71
addl %ecx,%edx
72
movzbl %al,%eax
73
movzbl %dl,%edx
74
pxor %mm1,%mm2
75
movq (%esi),%mm0
76
movq %mm2,-8(%ebp,%esi,1)
77
movl (%edi,%eax,4),%ecx
78
movd (%edi,%edx,4),%mm2
79
.L005loop_mmx_enter:
80
addb %cl,%bl
81
movl (%edi,%ebx,4),%edx
82
movl %ecx,(%edi,%ebx,4)
83
movl %edx,(%edi,%eax,4)
84
incl %eax
85
addl %ecx,%edx
86
movzbl %al,%eax
87
movzbl %dl,%edx
88
pxor %mm0,%mm2
89
movl (%edi,%eax,4),%ecx
90
movd (%edi,%edx,4),%mm1
91
addb %cl,%bl
92
psllq $8,%mm1
93
movl (%edi,%ebx,4),%edx
94
movl %ecx,(%edi,%ebx,4)
95
movl %edx,(%edi,%eax,4)
96
incl %eax
97
addl %ecx,%edx
98
movzbl %al,%eax
99
movzbl %dl,%edx
100
pxor %mm1,%mm2
101
movl (%edi,%eax,4),%ecx
102
movd (%edi,%edx,4),%mm1
103
addb %cl,%bl
104
psllq $16,%mm1
105
movl (%edi,%ebx,4),%edx
106
movl %ecx,(%edi,%ebx,4)
107
movl %edx,(%edi,%eax,4)
108
incl %eax
109
addl %ecx,%edx
110
movzbl %al,%eax
111
movzbl %dl,%edx
112
pxor %mm1,%mm2
113
movl (%edi,%eax,4),%ecx
114
movd (%edi,%edx,4),%mm1
115
addb %cl,%bl
116
psllq $24,%mm1
117
movl (%edi,%ebx,4),%edx
118
movl %ecx,(%edi,%ebx,4)
119
movl %edx,(%edi,%eax,4)
120
incl %eax
121
addl %ecx,%edx
122
movzbl %al,%eax
123
movzbl %dl,%edx
124
pxor %mm1,%mm2
125
movl (%edi,%eax,4),%ecx
126
movd (%edi,%edx,4),%mm1
127
addb %cl,%bl
128
psllq $32,%mm1
129
movl (%edi,%ebx,4),%edx
130
movl %ecx,(%edi,%ebx,4)
131
movl %edx,(%edi,%eax,4)
132
incl %eax
133
addl %ecx,%edx
134
movzbl %al,%eax
135
movzbl %dl,%edx
136
pxor %mm1,%mm2
137
movl (%edi,%eax,4),%ecx
138
movd (%edi,%edx,4),%mm1
139
addb %cl,%bl
140
psllq $40,%mm1
141
movl (%edi,%ebx,4),%edx
142
movl %ecx,(%edi,%ebx,4)
143
movl %edx,(%edi,%eax,4)
144
incl %eax
145
addl %ecx,%edx
146
movzbl %al,%eax
147
movzbl %dl,%edx
148
pxor %mm1,%mm2
149
movl (%edi,%eax,4),%ecx
150
movd (%edi,%edx,4),%mm1
151
addb %cl,%bl
152
psllq $48,%mm1
153
movl (%edi,%ebx,4),%edx
154
movl %ecx,(%edi,%ebx,4)
155
movl %edx,(%edi,%eax,4)
156
incl %eax
157
addl %ecx,%edx
158
movzbl %al,%eax
159
movzbl %dl,%edx
160
pxor %mm1,%mm2
161
movl (%edi,%eax,4),%ecx
162
movd (%edi,%edx,4),%mm1
163
movl %ebx,%edx
164
xorl %ebx,%ebx
165
movb %dl,%bl
166
cmpl -4(%edi),%esi
167
leal 8(%esi),%esi
168
jb .L006loop_mmx
169
psllq $56,%mm1
170
pxor %mm1,%mm2
171
movq %mm2,-8(%ebp,%esi,1)
172
emms
173
cmpl 24(%esp),%esi
174
je .L007done
175
jmp .L002loop1
176
.align 16
177
.L003go4loop4:
178
leal -4(%esi,%edx,1),%edx
179
movl %edx,28(%esp)
180
.L008loop4:
181
addb %cl,%bl
182
movl (%edi,%ebx,4),%edx
183
movl %ecx,(%edi,%ebx,4)
184
movl %edx,(%edi,%eax,4)
185
addl %ecx,%edx
186
incb %al
187
andl $255,%edx
188
movl (%edi,%eax,4),%ecx
189
movl (%edi,%edx,4),%ebp
190
addb %cl,%bl
191
movl (%edi,%ebx,4),%edx
192
movl %ecx,(%edi,%ebx,4)
193
movl %edx,(%edi,%eax,4)
194
addl %ecx,%edx
195
incb %al
196
andl $255,%edx
197
rorl $8,%ebp
198
movl (%edi,%eax,4),%ecx
199
orl (%edi,%edx,4),%ebp
200
addb %cl,%bl
201
movl (%edi,%ebx,4),%edx
202
movl %ecx,(%edi,%ebx,4)
203
movl %edx,(%edi,%eax,4)
204
addl %ecx,%edx
205
incb %al
206
andl $255,%edx
207
rorl $8,%ebp
208
movl (%edi,%eax,4),%ecx
209
orl (%edi,%edx,4),%ebp
210
addb %cl,%bl
211
movl (%edi,%ebx,4),%edx
212
movl %ecx,(%edi,%ebx,4)
213
movl %edx,(%edi,%eax,4)
214
addl %ecx,%edx
215
incb %al
216
andl $255,%edx
217
rorl $8,%ebp
218
movl 32(%esp),%ecx
219
orl (%edi,%edx,4),%ebp
220
rorl $8,%ebp
221
xorl (%esi),%ebp
222
cmpl 28(%esp),%esi
223
movl %ebp,(%ecx,%esi,1)
224
leal 4(%esi),%esi
225
movl (%edi,%eax,4),%ecx
226
jb .L008loop4
227
cmpl 24(%esp),%esi
228
je .L007done
229
movl 32(%esp),%ebp
230
.align 16
231
.L002loop1:
232
addb %cl,%bl
233
movl (%edi,%ebx,4),%edx
234
movl %ecx,(%edi,%ebx,4)
235
movl %edx,(%edi,%eax,4)
236
addl %ecx,%edx
237
incb %al
238
andl $255,%edx
239
movl (%edi,%edx,4),%edx
240
xorb (%esi),%dl
241
leal 1(%esi),%esi
242
movl (%edi,%eax,4),%ecx
243
cmpl 24(%esp),%esi
244
movb %dl,-1(%ebp,%esi,1)
245
jb .L002loop1
246
jmp .L007done
247
.align 16
248
.L001RC4_CHAR:
249
movzbl (%edi,%eax,1),%ecx
250
.L009cloop1:
251
addb %cl,%bl
252
movzbl (%edi,%ebx,1),%edx
253
movb %cl,(%edi,%ebx,1)
254
movb %dl,(%edi,%eax,1)
255
addb %cl,%dl
256
movzbl (%edi,%edx,1),%edx
257
addb $1,%al
258
xorb (%esi),%dl
259
leal 1(%esi),%esi
260
movzbl (%edi,%eax,1),%ecx
261
cmpl 24(%esp),%esi
262
movb %dl,-1(%ebp,%esi,1)
263
jb .L009cloop1
264
.L007done:
265
decb %al
266
movl %ebx,-4(%edi)
267
movb %al,-8(%edi)
268
.L000abort:
269
popl %edi
270
popl %esi
271
popl %ebx
272
popl %ebp
273
ret
274
.size RC4,.-.L_RC4_begin
275
.globl RC4_set_key
276
.type RC4_set_key,@function
277
.align 16
278
RC4_set_key:
279
.L_RC4_set_key_begin:
280
#ifdef __CET__
281
282
.byte 243,15,30,251
283
#endif
284
285
pushl %ebp
286
pushl %ebx
287
pushl %esi
288
pushl %edi
289
movl 20(%esp),%edi
290
movl 24(%esp),%ebp
291
movl 28(%esp),%esi
292
call .L010PIC_me_up
293
.L010PIC_me_up:
294
popl %edx
295
leal OPENSSL_ia32cap_P-.L010PIC_me_up(%edx),%edx
296
leal 8(%edi),%edi
297
leal (%esi,%ebp,1),%esi
298
negl %ebp
299
xorl %eax,%eax
300
movl %ebp,-4(%edi)
301
btl $20,(%edx)
302
jc .L011c1stloop
303
.align 16
304
.L012w1stloop:
305
movl %eax,(%edi,%eax,4)
306
addb $1,%al
307
jnc .L012w1stloop
308
xorl %ecx,%ecx
309
xorl %edx,%edx
310
.align 16
311
.L013w2ndloop:
312
movl (%edi,%ecx,4),%eax
313
addb (%esi,%ebp,1),%dl
314
addb %al,%dl
315
addl $1,%ebp
316
movl (%edi,%edx,4),%ebx
317
jnz .L014wnowrap
318
movl -4(%edi),%ebp
319
.L014wnowrap:
320
movl %eax,(%edi,%edx,4)
321
movl %ebx,(%edi,%ecx,4)
322
addb $1,%cl
323
jnc .L013w2ndloop
324
jmp .L015exit
325
.align 16
326
.L011c1stloop:
327
movb %al,(%edi,%eax,1)
328
addb $1,%al
329
jnc .L011c1stloop
330
xorl %ecx,%ecx
331
xorl %edx,%edx
332
xorl %ebx,%ebx
333
.align 16
334
.L016c2ndloop:
335
movb (%edi,%ecx,1),%al
336
addb (%esi,%ebp,1),%dl
337
addb %al,%dl
338
addl $1,%ebp
339
movb (%edi,%edx,1),%bl
340
jnz .L017cnowrap
341
movl -4(%edi),%ebp
342
.L017cnowrap:
343
movb %al,(%edi,%edx,1)
344
movb %bl,(%edi,%ecx,1)
345
addb $1,%cl
346
jnc .L016c2ndloop
347
movl $-1,256(%edi)
348
.L015exit:
349
xorl %eax,%eax
350
movl %eax,-8(%edi)
351
movl %eax,-4(%edi)
352
popl %edi
353
popl %esi
354
popl %ebx
355
popl %ebp
356
ret
357
.size RC4_set_key,.-.L_RC4_set_key_begin
358
.globl RC4_options
359
.type RC4_options,@function
360
.align 16
361
RC4_options:
362
.L_RC4_options_begin:
363
#ifdef __CET__
364
365
.byte 243,15,30,251
366
#endif
367
368
call .L018pic_point
369
.L018pic_point:
370
popl %eax
371
leal .L019opts-.L018pic_point(%eax),%eax
372
call .L020PIC_me_up
373
.L020PIC_me_up:
374
popl %edx
375
leal OPENSSL_ia32cap_P-.L020PIC_me_up(%edx),%edx
376
movl (%edx),%edx
377
btl $20,%edx
378
jc .L0211xchar
379
btl $26,%edx
380
jnc .L022ret
381
addl $25,%eax
382
ret
383
.L0211xchar:
384
addl $12,%eax
385
.L022ret:
386
ret
387
.align 64
388
.L019opts:
389
.byte 114,99,52,40,52,120,44,105,110,116,41,0
390
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
391
.byte 114,99,52,40,56,120,44,109,109,120,41,0
392
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
393
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
394
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
395
.align 64
396
.size RC4_options,.-.L_RC4_options_begin
397
.comm OPENSSL_ia32cap_P,40,4
398
399
.section ".note.gnu.property", "a"
400
.p2align 2
401
.long 1f - 0f
402
.long 4f - 1f
403
.long 5
404
0:
405
.asciz "GNU"
406
1:
407
.p2align 2
408
.long 0xc0000002
409
.long 3f - 2f
410
2:
411
.long 3
412
3:
413
.p2align 2
414
4:
415
#else
416
.text
417
.globl RC4
418
.type RC4,@function
419
.align 16
420
RC4:
421
.L_RC4_begin:
422
#ifdef __CET__
423
424
.byte 243,15,30,251
425
#endif
426
427
pushl %ebp
428
pushl %ebx
429
pushl %esi
430
pushl %edi
431
movl 20(%esp),%edi
432
movl 24(%esp),%edx
433
movl 28(%esp),%esi
434
movl 32(%esp),%ebp
435
xorl %eax,%eax
436
xorl %ebx,%ebx
437
cmpl $0,%edx
438
je .L000abort
439
movb (%edi),%al
440
movb 4(%edi),%bl
441
addl $8,%edi
442
leal (%esi,%edx,1),%ecx
443
subl %esi,%ebp
444
movl %ecx,24(%esp)
445
incb %al
446
cmpl $-1,256(%edi)
447
je .L001RC4_CHAR
448
movl (%edi,%eax,4),%ecx
449
andl $-4,%edx
450
jz .L002loop1
451
movl %ebp,32(%esp)
452
testl $-8,%edx
453
jz .L003go4loop4
454
leal OPENSSL_ia32cap_P,%ebp
455
btl $26,(%ebp)
456
jnc .L003go4loop4
457
movl 32(%esp),%ebp
458
andl $-8,%edx
459
leal -8(%esi,%edx,1),%edx
460
movl %edx,-4(%edi)
461
addb %cl,%bl
462
movl (%edi,%ebx,4),%edx
463
movl %ecx,(%edi,%ebx,4)
464
movl %edx,(%edi,%eax,4)
465
incl %eax
466
addl %ecx,%edx
467
movzbl %al,%eax
468
movzbl %dl,%edx
469
movq (%esi),%mm0
470
movl (%edi,%eax,4),%ecx
471
movd (%edi,%edx,4),%mm2
472
jmp .L004loop_mmx_enter
473
.align 16
474
.L005loop_mmx:
475
addb %cl,%bl
476
psllq $56,%mm1
477
movl (%edi,%ebx,4),%edx
478
movl %ecx,(%edi,%ebx,4)
479
movl %edx,(%edi,%eax,4)
480
incl %eax
481
addl %ecx,%edx
482
movzbl %al,%eax
483
movzbl %dl,%edx
484
pxor %mm1,%mm2
485
movq (%esi),%mm0
486
movq %mm2,-8(%ebp,%esi,1)
487
movl (%edi,%eax,4),%ecx
488
movd (%edi,%edx,4),%mm2
489
.L004loop_mmx_enter:
490
addb %cl,%bl
491
movl (%edi,%ebx,4),%edx
492
movl %ecx,(%edi,%ebx,4)
493
movl %edx,(%edi,%eax,4)
494
incl %eax
495
addl %ecx,%edx
496
movzbl %al,%eax
497
movzbl %dl,%edx
498
pxor %mm0,%mm2
499
movl (%edi,%eax,4),%ecx
500
movd (%edi,%edx,4),%mm1
501
addb %cl,%bl
502
psllq $8,%mm1
503
movl (%edi,%ebx,4),%edx
504
movl %ecx,(%edi,%ebx,4)
505
movl %edx,(%edi,%eax,4)
506
incl %eax
507
addl %ecx,%edx
508
movzbl %al,%eax
509
movzbl %dl,%edx
510
pxor %mm1,%mm2
511
movl (%edi,%eax,4),%ecx
512
movd (%edi,%edx,4),%mm1
513
addb %cl,%bl
514
psllq $16,%mm1
515
movl (%edi,%ebx,4),%edx
516
movl %ecx,(%edi,%ebx,4)
517
movl %edx,(%edi,%eax,4)
518
incl %eax
519
addl %ecx,%edx
520
movzbl %al,%eax
521
movzbl %dl,%edx
522
pxor %mm1,%mm2
523
movl (%edi,%eax,4),%ecx
524
movd (%edi,%edx,4),%mm1
525
addb %cl,%bl
526
psllq $24,%mm1
527
movl (%edi,%ebx,4),%edx
528
movl %ecx,(%edi,%ebx,4)
529
movl %edx,(%edi,%eax,4)
530
incl %eax
531
addl %ecx,%edx
532
movzbl %al,%eax
533
movzbl %dl,%edx
534
pxor %mm1,%mm2
535
movl (%edi,%eax,4),%ecx
536
movd (%edi,%edx,4),%mm1
537
addb %cl,%bl
538
psllq $32,%mm1
539
movl (%edi,%ebx,4),%edx
540
movl %ecx,(%edi,%ebx,4)
541
movl %edx,(%edi,%eax,4)
542
incl %eax
543
addl %ecx,%edx
544
movzbl %al,%eax
545
movzbl %dl,%edx
546
pxor %mm1,%mm2
547
movl (%edi,%eax,4),%ecx
548
movd (%edi,%edx,4),%mm1
549
addb %cl,%bl
550
psllq $40,%mm1
551
movl (%edi,%ebx,4),%edx
552
movl %ecx,(%edi,%ebx,4)
553
movl %edx,(%edi,%eax,4)
554
incl %eax
555
addl %ecx,%edx
556
movzbl %al,%eax
557
movzbl %dl,%edx
558
pxor %mm1,%mm2
559
movl (%edi,%eax,4),%ecx
560
movd (%edi,%edx,4),%mm1
561
addb %cl,%bl
562
psllq $48,%mm1
563
movl (%edi,%ebx,4),%edx
564
movl %ecx,(%edi,%ebx,4)
565
movl %edx,(%edi,%eax,4)
566
incl %eax
567
addl %ecx,%edx
568
movzbl %al,%eax
569
movzbl %dl,%edx
570
pxor %mm1,%mm2
571
movl (%edi,%eax,4),%ecx
572
movd (%edi,%edx,4),%mm1
573
movl %ebx,%edx
574
xorl %ebx,%ebx
575
movb %dl,%bl
576
cmpl -4(%edi),%esi
577
leal 8(%esi),%esi
578
jb .L005loop_mmx
579
psllq $56,%mm1
580
pxor %mm1,%mm2
581
movq %mm2,-8(%ebp,%esi,1)
582
emms
583
cmpl 24(%esp),%esi
584
je .L006done
585
jmp .L002loop1
586
.align 16
587
.L003go4loop4:
588
leal -4(%esi,%edx,1),%edx
589
movl %edx,28(%esp)
590
.L007loop4:
591
addb %cl,%bl
592
movl (%edi,%ebx,4),%edx
593
movl %ecx,(%edi,%ebx,4)
594
movl %edx,(%edi,%eax,4)
595
addl %ecx,%edx
596
incb %al
597
andl $255,%edx
598
movl (%edi,%eax,4),%ecx
599
movl (%edi,%edx,4),%ebp
600
addb %cl,%bl
601
movl (%edi,%ebx,4),%edx
602
movl %ecx,(%edi,%ebx,4)
603
movl %edx,(%edi,%eax,4)
604
addl %ecx,%edx
605
incb %al
606
andl $255,%edx
607
rorl $8,%ebp
608
movl (%edi,%eax,4),%ecx
609
orl (%edi,%edx,4),%ebp
610
addb %cl,%bl
611
movl (%edi,%ebx,4),%edx
612
movl %ecx,(%edi,%ebx,4)
613
movl %edx,(%edi,%eax,4)
614
addl %ecx,%edx
615
incb %al
616
andl $255,%edx
617
rorl $8,%ebp
618
movl (%edi,%eax,4),%ecx
619
orl (%edi,%edx,4),%ebp
620
addb %cl,%bl
621
movl (%edi,%ebx,4),%edx
622
movl %ecx,(%edi,%ebx,4)
623
movl %edx,(%edi,%eax,4)
624
addl %ecx,%edx
625
incb %al
626
andl $255,%edx
627
rorl $8,%ebp
628
movl 32(%esp),%ecx
629
orl (%edi,%edx,4),%ebp
630
rorl $8,%ebp
631
xorl (%esi),%ebp
632
cmpl 28(%esp),%esi
633
movl %ebp,(%ecx,%esi,1)
634
leal 4(%esi),%esi
635
movl (%edi,%eax,4),%ecx
636
jb .L007loop4
637
cmpl 24(%esp),%esi
638
je .L006done
639
movl 32(%esp),%ebp
640
.align 16
641
.L002loop1:
642
addb %cl,%bl
643
movl (%edi,%ebx,4),%edx
644
movl %ecx,(%edi,%ebx,4)
645
movl %edx,(%edi,%eax,4)
646
addl %ecx,%edx
647
incb %al
648
andl $255,%edx
649
movl (%edi,%edx,4),%edx
650
xorb (%esi),%dl
651
leal 1(%esi),%esi
652
movl (%edi,%eax,4),%ecx
653
cmpl 24(%esp),%esi
654
movb %dl,-1(%ebp,%esi,1)
655
jb .L002loop1
656
jmp .L006done
657
.align 16
658
.L001RC4_CHAR:
659
movzbl (%edi,%eax,1),%ecx
660
.L008cloop1:
661
addb %cl,%bl
662
movzbl (%edi,%ebx,1),%edx
663
movb %cl,(%edi,%ebx,1)
664
movb %dl,(%edi,%eax,1)
665
addb %cl,%dl
666
movzbl (%edi,%edx,1),%edx
667
addb $1,%al
668
xorb (%esi),%dl
669
leal 1(%esi),%esi
670
movzbl (%edi,%eax,1),%ecx
671
cmpl 24(%esp),%esi
672
movb %dl,-1(%ebp,%esi,1)
673
jb .L008cloop1
674
.L006done:
675
decb %al
676
movl %ebx,-4(%edi)
677
movb %al,-8(%edi)
678
.L000abort:
679
popl %edi
680
popl %esi
681
popl %ebx
682
popl %ebp
683
ret
684
.size RC4,.-.L_RC4_begin
685
.globl RC4_set_key
686
.type RC4_set_key,@function
687
.align 16
688
RC4_set_key:
689
.L_RC4_set_key_begin:
690
#ifdef __CET__
691
692
.byte 243,15,30,251
693
#endif
694
695
pushl %ebp
696
pushl %ebx
697
pushl %esi
698
pushl %edi
699
movl 20(%esp),%edi
700
movl 24(%esp),%ebp
701
movl 28(%esp),%esi
702
leal OPENSSL_ia32cap_P,%edx
703
leal 8(%edi),%edi
704
leal (%esi,%ebp,1),%esi
705
negl %ebp
706
xorl %eax,%eax
707
movl %ebp,-4(%edi)
708
btl $20,(%edx)
709
jc .L009c1stloop
710
.align 16
711
.L010w1stloop:
712
movl %eax,(%edi,%eax,4)
713
addb $1,%al
714
jnc .L010w1stloop
715
xorl %ecx,%ecx
716
xorl %edx,%edx
717
.align 16
718
.L011w2ndloop:
719
movl (%edi,%ecx,4),%eax
720
addb (%esi,%ebp,1),%dl
721
addb %al,%dl
722
addl $1,%ebp
723
movl (%edi,%edx,4),%ebx
724
jnz .L012wnowrap
725
movl -4(%edi),%ebp
726
.L012wnowrap:
727
movl %eax,(%edi,%edx,4)
728
movl %ebx,(%edi,%ecx,4)
729
addb $1,%cl
730
jnc .L011w2ndloop
731
jmp .L013exit
732
.align 16
733
.L009c1stloop:
734
movb %al,(%edi,%eax,1)
735
addb $1,%al
736
jnc .L009c1stloop
737
xorl %ecx,%ecx
738
xorl %edx,%edx
739
xorl %ebx,%ebx
740
.align 16
741
.L014c2ndloop:
742
movb (%edi,%ecx,1),%al
743
addb (%esi,%ebp,1),%dl
744
addb %al,%dl
745
addl $1,%ebp
746
movb (%edi,%edx,1),%bl
747
jnz .L015cnowrap
748
movl -4(%edi),%ebp
749
.L015cnowrap:
750
movb %al,(%edi,%edx,1)
751
movb %bl,(%edi,%ecx,1)
752
addb $1,%cl
753
jnc .L014c2ndloop
754
movl $-1,256(%edi)
755
.L013exit:
756
xorl %eax,%eax
757
movl %eax,-8(%edi)
758
movl %eax,-4(%edi)
759
popl %edi
760
popl %esi
761
popl %ebx
762
popl %ebp
763
ret
764
.size RC4_set_key,.-.L_RC4_set_key_begin
765
.globl RC4_options
766
.type RC4_options,@function
767
.align 16
768
RC4_options:
769
.L_RC4_options_begin:
770
#ifdef __CET__
771
772
.byte 243,15,30,251
773
#endif
774
775
call .L016pic_point
776
.L016pic_point:
777
popl %eax
778
leal .L017opts-.L016pic_point(%eax),%eax
779
leal OPENSSL_ia32cap_P,%edx
780
movl (%edx),%edx
781
btl $20,%edx
782
jc .L0181xchar
783
btl $26,%edx
784
jnc .L019ret
785
addl $25,%eax
786
ret
787
.L0181xchar:
788
addl $12,%eax
789
.L019ret:
790
ret
791
.align 64
792
.L017opts:
793
.byte 114,99,52,40,52,120,44,105,110,116,41,0
794
.byte 114,99,52,40,49,120,44,99,104,97,114,41,0
795
.byte 114,99,52,40,56,120,44,109,109,120,41,0
796
.byte 82,67,52,32,102,111,114,32,120,56,54,44,32,67,82,89
797
.byte 80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114
798
.byte 111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
799
.align 64
800
.size RC4_options,.-.L_RC4_options_begin
801
.comm OPENSSL_ia32cap_P,40,4
802
803
.section ".note.gnu.property", "a"
804
.p2align 2
805
.long 1f - 0f
806
.long 4f - 1f
807
.long 5
808
0:
809
.asciz "GNU"
810
1:
811
.p2align 2
812
.long 0xc0000002
813
.long 3f - 2f
814
2:
815
.long 3
816
3:
817
.p2align 2
818
4:
819
#endif
820
821