1	# $FreeBSD$
2
3
4
5
6
7
8	.file	"rc4-586.s"
9	.version	"01.01"
10gcc2_compiled.:
11.text
12	.align 16
13.globl RC4
14	.type	RC4,@function
15RC4:
16
17	pushl	%ebp
18	pushl	%ebx
19	movl	12(%esp),	%ebp
20	movl	16(%esp),	%ebx
21	pushl	%esi
22	pushl	%edi
23	movl	(%ebp),		%ecx
24	movl	4(%ebp),	%edx
25	movl	28(%esp),	%esi
26	incl	%ecx
27	subl	$12,		%esp
28	addl	$8,		%ebp
29	andl	$255,		%ecx
30	leal	-8(%ebx,%esi),	%ebx
31	movl	44(%esp),	%edi
32	movl	%ebx,		8(%esp)
33	movl	(%ebp,%ecx,4),	%eax
34	cmpl	%esi,		%ebx
35	jl	.L000end
36.L001start:
37	addl	$8,		%esi
38
39	addl	%eax,		%edx
40	andl	$255,		%edx
41	incl	%ecx
42	movl	(%ebp,%edx,4),	%ebx
43	movl	%ebx,		-4(%ebp,%ecx,4)
44	addl	%eax,		%ebx
45	andl	$255,		%ecx
46	andl	$255,		%ebx
47	movl	%eax,		(%ebp,%edx,4)
48	nop
49	movl	(%ebp,%ebx,4),	%ebx
50	movl	(%ebp,%ecx,4),	%eax
51	movb	%bl,		(%esp)
52
53	addl	%eax,		%edx
54	andl	$255,		%edx
55	incl	%ecx
56	movl	(%ebp,%edx,4),	%ebx
57	movl	%ebx,		-4(%ebp,%ecx,4)
58	addl	%eax,		%ebx
59	andl	$255,		%ecx
60	andl	$255,		%ebx
61	movl	%eax,		(%ebp,%edx,4)
62	nop
63	movl	(%ebp,%ebx,4),	%ebx
64	movl	(%ebp,%ecx,4),	%eax
65	movb	%bl,		1(%esp)
66
67	addl	%eax,		%edx
68	andl	$255,		%edx
69	incl	%ecx
70	movl	(%ebp,%edx,4),	%ebx
71	movl	%ebx,		-4(%ebp,%ecx,4)
72	addl	%eax,		%ebx
73	andl	$255,		%ecx
74	andl	$255,		%ebx
75	movl	%eax,		(%ebp,%edx,4)
76	nop
77	movl	(%ebp,%ebx,4),	%ebx
78	movl	(%ebp,%ecx,4),	%eax
79	movb	%bl,		2(%esp)
80
81	addl	%eax,		%edx
82	andl	$255,		%edx
83	incl	%ecx
84	movl	(%ebp,%edx,4),	%ebx
85	movl	%ebx,		-4(%ebp,%ecx,4)
86	addl	%eax,		%ebx
87	andl	$255,		%ecx
88	andl	$255,		%ebx
89	movl	%eax,		(%ebp,%edx,4)
90	nop
91	movl	(%ebp,%ebx,4),	%ebx
92	movl	(%ebp,%ecx,4),	%eax
93	movb	%bl,		3(%esp)
94
95	addl	%eax,		%edx
96	andl	$255,		%edx
97	incl	%ecx
98	movl	(%ebp,%edx,4),	%ebx
99	movl	%ebx,		-4(%ebp,%ecx,4)
100	addl	%eax,		%ebx
101	andl	$255,		%ecx
102	andl	$255,		%ebx
103	movl	%eax,		(%ebp,%edx,4)
104	nop
105	movl	(%ebp,%ebx,4),	%ebx
106	movl	(%ebp,%ecx,4),	%eax
107	movb	%bl,		4(%esp)
108
109	addl	%eax,		%edx
110	andl	$255,		%edx
111	incl	%ecx
112	movl	(%ebp,%edx,4),	%ebx
113	movl	%ebx,		-4(%ebp,%ecx,4)
114	addl	%eax,		%ebx
115	andl	$255,		%ecx
116	andl	$255,		%ebx
117	movl	%eax,		(%ebp,%edx,4)
118	nop
119	movl	(%ebp,%ebx,4),	%ebx
120	movl	(%ebp,%ecx,4),	%eax
121	movb	%bl,		5(%esp)
122
123	addl	%eax,		%edx
124	andl	$255,		%edx
125	incl	%ecx
126	movl	(%ebp,%edx,4),	%ebx
127	movl	%ebx,		-4(%ebp,%ecx,4)
128	addl	%eax,		%ebx
129	andl	$255,		%ecx
130	andl	$255,		%ebx
131	movl	%eax,		(%ebp,%edx,4)
132	nop
133	movl	(%ebp,%ebx,4),	%ebx
134	movl	(%ebp,%ecx,4),	%eax
135	movb	%bl,		6(%esp)
136
137	addl	%eax,		%edx
138	andl	$255,		%edx
139	incl	%ecx
140	movl	(%ebp,%edx,4),	%ebx
141	movl	%ebx,		-4(%ebp,%ecx,4)
142	addl	%eax,		%ebx
143	andl	$255,		%ecx
144	andl	$255,		%ebx
145	movl	%eax,		(%ebp,%edx,4)
146	nop
147	movl	(%ebp,%ebx,4),	%ebx
148	addl	$8,		%edi
149	movb	%bl,		7(%esp)
150
151	movl	(%esp),		%eax
152	movl	-8(%esi),	%ebx
153	xorl	%ebx,		%eax
154	movl	-4(%esi),	%ebx
155	movl	%eax,		-8(%edi)
156	movl	4(%esp),	%eax
157	xorl	%ebx,		%eax
158	movl	8(%esp),	%ebx
159	movl	%eax,		-4(%edi)
160	movl	(%ebp,%ecx,4),	%eax
161	cmpl	%ebx,		%esi
162	jle	.L001start
163.L000end:
164
165	addl	$8,		%ebx
166	incl	%esi
167	cmpl	%esi,		%ebx
168	jl	.L002finished
169	movl	%ebx,		8(%esp)
170	addl	%eax,		%edx
171	andl	$255,		%edx
172	incl	%ecx
173	movl	(%ebp,%edx,4),	%ebx
174	movl	%ebx,		-4(%ebp,%ecx,4)
175	addl	%eax,		%ebx
176	andl	$255,		%ecx
177	andl	$255,		%ebx
178	movl	%eax,		(%ebp,%edx,4)
179	nop
180	movl	(%ebp,%ebx,4),	%ebx
181	movl	(%ebp,%ecx,4),	%eax
182	movb	-1(%esi),	%bh
183	xorb	%bh,		%bl
184	movb	%bl,		(%edi)
185
186	movl	8(%esp),	%ebx
187	cmpl	%esi,		%ebx
188	jle	.L002finished
189	incl	%esi
190	addl	%eax,		%edx
191	andl	$255,		%edx
192	incl	%ecx
193	movl	(%ebp,%edx,4),	%ebx
194	movl	%ebx,		-4(%ebp,%ecx,4)
195	addl	%eax,		%ebx
196	andl	$255,		%ecx
197	andl	$255,		%ebx
198	movl	%eax,		(%ebp,%edx,4)
199	nop
200	movl	(%ebp,%ebx,4),	%ebx
201	movl	(%ebp,%ecx,4),	%eax
202	movb	-1(%esi),	%bh
203	xorb	%bh,		%bl
204	movb	%bl,		1(%edi)
205
206	movl	8(%esp),	%ebx
207	cmpl	%esi,		%ebx
208	jle	.L002finished
209	incl	%esi
210	addl	%eax,		%edx
211	andl	$255,		%edx
212	incl	%ecx
213	movl	(%ebp,%edx,4),	%ebx
214	movl	%ebx,		-4(%ebp,%ecx,4)
215	addl	%eax,		%ebx
216	andl	$255,		%ecx
217	andl	$255,		%ebx
218	movl	%eax,		(%ebp,%edx,4)
219	nop
220	movl	(%ebp,%ebx,4),	%ebx
221	movl	(%ebp,%ecx,4),	%eax
222	movb	-1(%esi),	%bh
223	xorb	%bh,		%bl
224	movb	%bl,		2(%edi)
225
226	movl	8(%esp),	%ebx
227	cmpl	%esi,		%ebx
228	jle	.L002finished
229	incl	%esi
230	addl	%eax,		%edx
231	andl	$255,		%edx
232	incl	%ecx
233	movl	(%ebp,%edx,4),	%ebx
234	movl	%ebx,		-4(%ebp,%ecx,4)
235	addl	%eax,		%ebx
236	andl	$255,		%ecx
237	andl	$255,		%ebx
238	movl	%eax,		(%ebp,%edx,4)
239	nop
240	movl	(%ebp,%ebx,4),	%ebx
241	movl	(%ebp,%ecx,4),	%eax
242	movb	-1(%esi),	%bh
243	xorb	%bh,		%bl
244	movb	%bl,		3(%edi)
245
246	movl	8(%esp),	%ebx
247	cmpl	%esi,		%ebx
248	jle	.L002finished
249	incl	%esi
250	addl	%eax,		%edx
251	andl	$255,		%edx
252	incl	%ecx
253	movl	(%ebp,%edx,4),	%ebx
254	movl	%ebx,		-4(%ebp,%ecx,4)
255	addl	%eax,		%ebx
256	andl	$255,		%ecx
257	andl	$255,		%ebx
258	movl	%eax,		(%ebp,%edx,4)
259	nop
260	movl	(%ebp,%ebx,4),	%ebx
261	movl	(%ebp,%ecx,4),	%eax
262	movb	-1(%esi),	%bh
263	xorb	%bh,		%bl
264	movb	%bl,		4(%edi)
265
266	movl	8(%esp),	%ebx
267	cmpl	%esi,		%ebx
268	jle	.L002finished
269	incl	%esi
270	addl	%eax,		%edx
271	andl	$255,		%edx
272	incl	%ecx
273	movl	(%ebp,%edx,4),	%ebx
274	movl	%ebx,		-4(%ebp,%ecx,4)
275	addl	%eax,		%ebx
276	andl	$255,		%ecx
277	andl	$255,		%ebx
278	movl	%eax,		(%ebp,%edx,4)
279	nop
280	movl	(%ebp,%ebx,4),	%ebx
281	movl	(%ebp,%ecx,4),	%eax
282	movb	-1(%esi),	%bh
283	xorb	%bh,		%bl
284	movb	%bl,		5(%edi)
285
286	movl	8(%esp),	%ebx
287	cmpl	%esi,		%ebx
288	jle	.L002finished
289	incl	%esi
290	addl	%eax,		%edx
291	andl	$255,		%edx
292	incl	%ecx
293	movl	(%ebp,%edx,4),	%ebx
294	movl	%ebx,		-4(%ebp,%ecx,4)
295	addl	%eax,		%ebx
296	andl	$255,		%ecx
297	andl	$255,		%ebx
298	movl	%eax,		(%ebp,%edx,4)
299	nop
300	movl	(%ebp,%ebx,4),	%ebx
301	movb	-1(%esi),	%bh
302	xorb	%bh,		%bl
303	movb	%bl,		6(%edi)
304.L002finished:
305	decl	%ecx
306	addl	$12,		%esp
307	movl	%edx,		-4(%ebp)
308	movb	%cl,		-8(%ebp)
309	popl	%edi
310	popl	%esi
311	popl	%ebx
312	popl	%ebp
313	ret
314.L_RC4_end:
315	.size	RC4,.L_RC4_end-RC4
316.ident	"RC4"
317