bf_enc_586.S revision 1.1 1 1.1 tls /* $NetBSD: bf_enc_586.S,v 1.1 2001/09/09 11:01:01 tls Exp $ */
2 1.1 tls
3 1.1 tls /* Copyright (C) 1995-1998 Eric Young (eay (at) cryptsoft.com)
4 1.1 tls * All rights reserved.
5 1.1 tls *
6 1.1 tls * This package is an SSL implementation written
7 1.1 tls * by Eric Young (eay (at) cryptsoft.com).
8 1.1 tls * The implementation was written so as to conform with Netscapes SSL.
9 1.1 tls *
10 1.1 tls * This library is free for commercial and non-commercial use as long as
11 1.1 tls * the following conditions are aheared to. The following conditions
12 1.1 tls * apply to all code found in this distribution, be it the RC4, RSA,
13 1.1 tls * lhash, DES, etc., code; not just the SSL code. The SSL documentation
14 1.1 tls * included with this distribution is covered by the same copyright terms
15 1.1 tls * except that the holder is Tim Hudson (tjh (at) cryptsoft.com).
16 1.1 tls *
17 1.1 tls * Copyright remains Eric Young's, and as such any Copyright notices in
18 1.1 tls * the code are not to be removed.
19 1.1 tls * If this package is used in a product, Eric Young should be given attribution
20 1.1 tls * as the author of the parts of the library used.
21 1.1 tls * This can be in the form of a textual message at program startup or
22 1.1 tls * in documentation (online or textual) provided with the package.
23 1.1 tls *
24 1.1 tls * Redistribution and use in source and binary forms, with or without
25 1.1 tls * modification, are permitted provided that the following conditions
26 1.1 tls * are met:
27 1.1 tls * 1. Redistributions of source code must retain the copyright
28 1.1 tls * notice, this list of conditions and the following disclaimer.
29 1.1 tls * 2. Redistributions in binary form must reproduce the above copyright
30 1.1 tls * notice, this list of conditions and the following disclaimer in the
31 1.1 tls * documentation and/or other materials provided with the distribution.
32 1.1 tls * 3. All advertising materials mentioning features or use of this software
33 1.1 tls * must display the following acknowledgement:
34 1.1 tls * "This product includes cryptographic software written by
35 1.1 tls * Eric Young (eay (at) cryptsoft.com)"
36 1.1 tls * The word 'cryptographic' can be left out if the rouines from the library
37 1.1 tls * being used are not cryptographic related :-).
38 1.1 tls * 4. If you include any Windows specific code (or a derivative thereof) from
39 1.1 tls * the apps directory (application code) you must include an acknowledgement:
40 1.1 tls * "This product includes software written by Tim Hudson (tjh (at) cryptsoft.com)"
41 1.1 tls *
42 1.1 tls * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
43 1.1 tls * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44 1.1 tls * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45 1.1 tls * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
46 1.1 tls * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
47 1.1 tls * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
48 1.1 tls * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49 1.1 tls * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
50 1.1 tls * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
51 1.1 tls * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
52 1.1 tls * SUCH DAMAGE.
53 1.1 tls *
54 1.1 tls * The licence and distribution terms for any publically available version or
55 1.1 tls * derivative of this code cannot be changed. i.e. this code cannot simply be
56 1.1 tls * copied and put under another distribution licence
57 1.1 tls * [including the GNU Public Licence.]
58 1.1 tls */
59 1.1 tls
60 1.1 tls /*
61 1.1 tls * Modified from the output of `perl bf-586.pl elf' by
62 1.1 tls * Jason R. Thorpe <thorpej (at) zembu.com> and Thor Lancelot Simon
63 1.1 tls * <tls (at) netbsd.org>
64 1.1 tls */
65 1.1 tls
66 1.1 tls #include <i386/include/asm.h>
67 1.1 tls
68 1.1 tls ENTRY(BF_encrypt)
69 1.1 tls pushl %ebp
70 1.1 tls pushl %ebx
71 1.1 tls movl 12(%esp), %ebx
72 1.1 tls movl 16(%esp), %ebp
73 1.1 tls pushl %esi
74 1.1 tls pushl %edi
75 1.1 tls /* Load the 2 words */
76 1.1 tls movl (%ebx), %edi
77 1.1 tls movl 4(%ebx), %esi
78 1.1 tls xorl %eax, %eax
79 1.1 tls movl (%ebp), %ebx
80 1.1 tls xorl %ecx, %ecx
81 1.1 tls xorl %ebx, %edi
82 1.1 tls
83 1.1 tls /* Round 0 */
84 1.1 tls movl 4(%ebp), %edx
85 1.1 tls movl %edi, %ebx
86 1.1 tls xorl %edx, %esi
87 1.1 tls shrl $16, %ebx
88 1.1 tls movl %edi, %edx
89 1.1 tls movb %bh, %al
90 1.1 tls andl $255, %ebx
91 1.1 tls movb %dh, %cl
92 1.1 tls andl $255, %edx
93 1.1 tls movl 72(%ebp,%eax,4),%eax
94 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
95 1.1 tls addl %eax, %ebx
96 1.1 tls movl 2120(%ebp,%ecx,4),%eax
97 1.1 tls xorl %eax, %ebx
98 1.1 tls movl 3144(%ebp,%edx,4),%edx
99 1.1 tls addl %edx, %ebx
100 1.1 tls xorl %eax, %eax
101 1.1 tls xorl %ebx, %esi
102 1.1 tls
103 1.1 tls /* Round 1 */
104 1.1 tls movl 8(%ebp), %edx
105 1.1 tls movl %esi, %ebx
106 1.1 tls xorl %edx, %edi
107 1.1 tls shrl $16, %ebx
108 1.1 tls movl %esi, %edx
109 1.1 tls movb %bh, %al
110 1.1 tls andl $255, %ebx
111 1.1 tls movb %dh, %cl
112 1.1 tls andl $255, %edx
113 1.1 tls movl 72(%ebp,%eax,4),%eax
114 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
115 1.1 tls addl %eax, %ebx
116 1.1 tls movl 2120(%ebp,%ecx,4),%eax
117 1.1 tls xorl %eax, %ebx
118 1.1 tls movl 3144(%ebp,%edx,4),%edx
119 1.1 tls addl %edx, %ebx
120 1.1 tls xorl %eax, %eax
121 1.1 tls xorl %ebx, %edi
122 1.1 tls
123 1.1 tls /* Round 2 */
124 1.1 tls movl 12(%ebp), %edx
125 1.1 tls movl %edi, %ebx
126 1.1 tls xorl %edx, %esi
127 1.1 tls shrl $16, %ebx
128 1.1 tls movl %edi, %edx
129 1.1 tls movb %bh, %al
130 1.1 tls andl $255, %ebx
131 1.1 tls movb %dh, %cl
132 1.1 tls andl $255, %edx
133 1.1 tls movl 72(%ebp,%eax,4),%eax
134 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
135 1.1 tls addl %eax, %ebx
136 1.1 tls movl 2120(%ebp,%ecx,4),%eax
137 1.1 tls xorl %eax, %ebx
138 1.1 tls movl 3144(%ebp,%edx,4),%edx
139 1.1 tls addl %edx, %ebx
140 1.1 tls xorl %eax, %eax
141 1.1 tls xorl %ebx, %esi
142 1.1 tls
143 1.1 tls /* Round 3 */
144 1.1 tls movl 16(%ebp), %edx
145 1.1 tls movl %esi, %ebx
146 1.1 tls xorl %edx, %edi
147 1.1 tls shrl $16, %ebx
148 1.1 tls movl %esi, %edx
149 1.1 tls movb %bh, %al
150 1.1 tls andl $255, %ebx
151 1.1 tls movb %dh, %cl
152 1.1 tls andl $255, %edx
153 1.1 tls movl 72(%ebp,%eax,4),%eax
154 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
155 1.1 tls addl %eax, %ebx
156 1.1 tls movl 2120(%ebp,%ecx,4),%eax
157 1.1 tls xorl %eax, %ebx
158 1.1 tls movl 3144(%ebp,%edx,4),%edx
159 1.1 tls addl %edx, %ebx
160 1.1 tls xorl %eax, %eax
161 1.1 tls xorl %ebx, %edi
162 1.1 tls
163 1.1 tls /* Round 4 */
164 1.1 tls movl 20(%ebp), %edx
165 1.1 tls movl %edi, %ebx
166 1.1 tls xorl %edx, %esi
167 1.1 tls shrl $16, %ebx
168 1.1 tls movl %edi, %edx
169 1.1 tls movb %bh, %al
170 1.1 tls andl $255, %ebx
171 1.1 tls movb %dh, %cl
172 1.1 tls andl $255, %edx
173 1.1 tls movl 72(%ebp,%eax,4),%eax
174 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
175 1.1 tls addl %eax, %ebx
176 1.1 tls movl 2120(%ebp,%ecx,4),%eax
177 1.1 tls xorl %eax, %ebx
178 1.1 tls movl 3144(%ebp,%edx,4),%edx
179 1.1 tls addl %edx, %ebx
180 1.1 tls xorl %eax, %eax
181 1.1 tls xorl %ebx, %esi
182 1.1 tls
183 1.1 tls /* Round 5 */
184 1.1 tls movl 24(%ebp), %edx
185 1.1 tls movl %esi, %ebx
186 1.1 tls xorl %edx, %edi
187 1.1 tls shrl $16, %ebx
188 1.1 tls movl %esi, %edx
189 1.1 tls movb %bh, %al
190 1.1 tls andl $255, %ebx
191 1.1 tls movb %dh, %cl
192 1.1 tls andl $255, %edx
193 1.1 tls movl 72(%ebp,%eax,4),%eax
194 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
195 1.1 tls addl %eax, %ebx
196 1.1 tls movl 2120(%ebp,%ecx,4),%eax
197 1.1 tls xorl %eax, %ebx
198 1.1 tls movl 3144(%ebp,%edx,4),%edx
199 1.1 tls addl %edx, %ebx
200 1.1 tls xorl %eax, %eax
201 1.1 tls xorl %ebx, %edi
202 1.1 tls
203 1.1 tls /* Round 6 */
204 1.1 tls movl 28(%ebp), %edx
205 1.1 tls movl %edi, %ebx
206 1.1 tls xorl %edx, %esi
207 1.1 tls shrl $16, %ebx
208 1.1 tls movl %edi, %edx
209 1.1 tls movb %bh, %al
210 1.1 tls andl $255, %ebx
211 1.1 tls movb %dh, %cl
212 1.1 tls andl $255, %edx
213 1.1 tls movl 72(%ebp,%eax,4),%eax
214 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
215 1.1 tls addl %eax, %ebx
216 1.1 tls movl 2120(%ebp,%ecx,4),%eax
217 1.1 tls xorl %eax, %ebx
218 1.1 tls movl 3144(%ebp,%edx,4),%edx
219 1.1 tls addl %edx, %ebx
220 1.1 tls xorl %eax, %eax
221 1.1 tls xorl %ebx, %esi
222 1.1 tls
223 1.1 tls /* Round 7 */
224 1.1 tls movl 32(%ebp), %edx
225 1.1 tls movl %esi, %ebx
226 1.1 tls xorl %edx, %edi
227 1.1 tls shrl $16, %ebx
228 1.1 tls movl %esi, %edx
229 1.1 tls movb %bh, %al
230 1.1 tls andl $255, %ebx
231 1.1 tls movb %dh, %cl
232 1.1 tls andl $255, %edx
233 1.1 tls movl 72(%ebp,%eax,4),%eax
234 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
235 1.1 tls addl %eax, %ebx
236 1.1 tls movl 2120(%ebp,%ecx,4),%eax
237 1.1 tls xorl %eax, %ebx
238 1.1 tls movl 3144(%ebp,%edx,4),%edx
239 1.1 tls addl %edx, %ebx
240 1.1 tls xorl %eax, %eax
241 1.1 tls xorl %ebx, %edi
242 1.1 tls
243 1.1 tls /* Round 8 */
244 1.1 tls movl 36(%ebp), %edx
245 1.1 tls movl %edi, %ebx
246 1.1 tls xorl %edx, %esi
247 1.1 tls shrl $16, %ebx
248 1.1 tls movl %edi, %edx
249 1.1 tls movb %bh, %al
250 1.1 tls andl $255, %ebx
251 1.1 tls movb %dh, %cl
252 1.1 tls andl $255, %edx
253 1.1 tls movl 72(%ebp,%eax,4),%eax
254 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
255 1.1 tls addl %eax, %ebx
256 1.1 tls movl 2120(%ebp,%ecx,4),%eax
257 1.1 tls xorl %eax, %ebx
258 1.1 tls movl 3144(%ebp,%edx,4),%edx
259 1.1 tls addl %edx, %ebx
260 1.1 tls xorl %eax, %eax
261 1.1 tls xorl %ebx, %esi
262 1.1 tls
263 1.1 tls /* Round 9 */
264 1.1 tls movl 40(%ebp), %edx
265 1.1 tls movl %esi, %ebx
266 1.1 tls xorl %edx, %edi
267 1.1 tls shrl $16, %ebx
268 1.1 tls movl %esi, %edx
269 1.1 tls movb %bh, %al
270 1.1 tls andl $255, %ebx
271 1.1 tls movb %dh, %cl
272 1.1 tls andl $255, %edx
273 1.1 tls movl 72(%ebp,%eax,4),%eax
274 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
275 1.1 tls addl %eax, %ebx
276 1.1 tls movl 2120(%ebp,%ecx,4),%eax
277 1.1 tls xorl %eax, %ebx
278 1.1 tls movl 3144(%ebp,%edx,4),%edx
279 1.1 tls addl %edx, %ebx
280 1.1 tls xorl %eax, %eax
281 1.1 tls xorl %ebx, %edi
282 1.1 tls
283 1.1 tls /* Round 10 */
284 1.1 tls movl 44(%ebp), %edx
285 1.1 tls movl %edi, %ebx
286 1.1 tls xorl %edx, %esi
287 1.1 tls shrl $16, %ebx
288 1.1 tls movl %edi, %edx
289 1.1 tls movb %bh, %al
290 1.1 tls andl $255, %ebx
291 1.1 tls movb %dh, %cl
292 1.1 tls andl $255, %edx
293 1.1 tls movl 72(%ebp,%eax,4),%eax
294 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
295 1.1 tls addl %eax, %ebx
296 1.1 tls movl 2120(%ebp,%ecx,4),%eax
297 1.1 tls xorl %eax, %ebx
298 1.1 tls movl 3144(%ebp,%edx,4),%edx
299 1.1 tls addl %edx, %ebx
300 1.1 tls xorl %eax, %eax
301 1.1 tls xorl %ebx, %esi
302 1.1 tls
303 1.1 tls /* Round 11 */
304 1.1 tls movl 48(%ebp), %edx
305 1.1 tls movl %esi, %ebx
306 1.1 tls xorl %edx, %edi
307 1.1 tls shrl $16, %ebx
308 1.1 tls movl %esi, %edx
309 1.1 tls movb %bh, %al
310 1.1 tls andl $255, %ebx
311 1.1 tls movb %dh, %cl
312 1.1 tls andl $255, %edx
313 1.1 tls movl 72(%ebp,%eax,4),%eax
314 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
315 1.1 tls addl %eax, %ebx
316 1.1 tls movl 2120(%ebp,%ecx,4),%eax
317 1.1 tls xorl %eax, %ebx
318 1.1 tls movl 3144(%ebp,%edx,4),%edx
319 1.1 tls addl %edx, %ebx
320 1.1 tls xorl %eax, %eax
321 1.1 tls xorl %ebx, %edi
322 1.1 tls
323 1.1 tls /* Round 12 */
324 1.1 tls movl 52(%ebp), %edx
325 1.1 tls movl %edi, %ebx
326 1.1 tls xorl %edx, %esi
327 1.1 tls shrl $16, %ebx
328 1.1 tls movl %edi, %edx
329 1.1 tls movb %bh, %al
330 1.1 tls andl $255, %ebx
331 1.1 tls movb %dh, %cl
332 1.1 tls andl $255, %edx
333 1.1 tls movl 72(%ebp,%eax,4),%eax
334 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
335 1.1 tls addl %eax, %ebx
336 1.1 tls movl 2120(%ebp,%ecx,4),%eax
337 1.1 tls xorl %eax, %ebx
338 1.1 tls movl 3144(%ebp,%edx,4),%edx
339 1.1 tls addl %edx, %ebx
340 1.1 tls xorl %eax, %eax
341 1.1 tls xorl %ebx, %esi
342 1.1 tls
343 1.1 tls /* Round 13 */
344 1.1 tls movl 56(%ebp), %edx
345 1.1 tls movl %esi, %ebx
346 1.1 tls xorl %edx, %edi
347 1.1 tls shrl $16, %ebx
348 1.1 tls movl %esi, %edx
349 1.1 tls movb %bh, %al
350 1.1 tls andl $255, %ebx
351 1.1 tls movb %dh, %cl
352 1.1 tls andl $255, %edx
353 1.1 tls movl 72(%ebp,%eax,4),%eax
354 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
355 1.1 tls addl %eax, %ebx
356 1.1 tls movl 2120(%ebp,%ecx,4),%eax
357 1.1 tls xorl %eax, %ebx
358 1.1 tls movl 3144(%ebp,%edx,4),%edx
359 1.1 tls addl %edx, %ebx
360 1.1 tls xorl %eax, %eax
361 1.1 tls xorl %ebx, %edi
362 1.1 tls
363 1.1 tls /* Round 14 */
364 1.1 tls movl 60(%ebp), %edx
365 1.1 tls movl %edi, %ebx
366 1.1 tls xorl %edx, %esi
367 1.1 tls shrl $16, %ebx
368 1.1 tls movl %edi, %edx
369 1.1 tls movb %bh, %al
370 1.1 tls andl $255, %ebx
371 1.1 tls movb %dh, %cl
372 1.1 tls andl $255, %edx
373 1.1 tls movl 72(%ebp,%eax,4),%eax
374 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
375 1.1 tls addl %eax, %ebx
376 1.1 tls movl 2120(%ebp,%ecx,4),%eax
377 1.1 tls xorl %eax, %ebx
378 1.1 tls movl 3144(%ebp,%edx,4),%edx
379 1.1 tls addl %edx, %ebx
380 1.1 tls xorl %eax, %eax
381 1.1 tls xorl %ebx, %esi
382 1.1 tls
383 1.1 tls /* Round 15 */
384 1.1 tls movl 64(%ebp), %edx
385 1.1 tls movl %esi, %ebx
386 1.1 tls xorl %edx, %edi
387 1.1 tls shrl $16, %ebx
388 1.1 tls movl %esi, %edx
389 1.1 tls movb %bh, %al
390 1.1 tls andl $255, %ebx
391 1.1 tls movb %dh, %cl
392 1.1 tls andl $255, %edx
393 1.1 tls movl 72(%ebp,%eax,4),%eax
394 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
395 1.1 tls addl %eax, %ebx
396 1.1 tls movl 2120(%ebp,%ecx,4),%eax
397 1.1 tls xorl %eax, %ebx
398 1.1 tls movl 3144(%ebp,%edx,4),%edx
399 1.1 tls addl %edx, %ebx
400 1.1 tls # Load parameter 0 (16) enc=1
401 1.1 tls movl 20(%esp), %eax
402 1.1 tls xorl %ebx, %edi
403 1.1 tls movl 68(%ebp), %edx
404 1.1 tls xorl %edx, %esi
405 1.1 tls movl %edi, 4(%eax)
406 1.1 tls movl %esi, (%eax)
407 1.1 tls popl %edi
408 1.1 tls popl %esi
409 1.1 tls popl %ebx
410 1.1 tls popl %ebp
411 1.1 tls ret
412 1.1 tls .L_BF_encrypt_end:
413 1.1 tls .size _C_LABEL(BF_encrypt),.L_BF_encrypt_end-_C_LABEL(BF_encrypt)
414 1.1 tls
415 1.1 tls ENTRY(BF_decrypt)
416 1.1 tls pushl %ebp
417 1.1 tls pushl %ebx
418 1.1 tls movl 12(%esp), %ebx
419 1.1 tls movl 16(%esp), %ebp
420 1.1 tls pushl %esi
421 1.1 tls pushl %edi
422 1.1 tls # Load the 2 words
423 1.1 tls movl (%ebx), %edi
424 1.1 tls movl 4(%ebx), %esi
425 1.1 tls xorl %eax, %eax
426 1.1 tls movl 68(%ebp), %ebx
427 1.1 tls xorl %ecx, %ecx
428 1.1 tls xorl %ebx, %edi
429 1.1 tls
430 1.1 tls /* Round 16 */
431 1.1 tls movl 64(%ebp), %edx
432 1.1 tls movl %edi, %ebx
433 1.1 tls xorl %edx, %esi
434 1.1 tls shrl $16, %ebx
435 1.1 tls movl %edi, %edx
436 1.1 tls movb %bh, %al
437 1.1 tls andl $255, %ebx
438 1.1 tls movb %dh, %cl
439 1.1 tls andl $255, %edx
440 1.1 tls movl 72(%ebp,%eax,4),%eax
441 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
442 1.1 tls addl %eax, %ebx
443 1.1 tls movl 2120(%ebp,%ecx,4),%eax
444 1.1 tls xorl %eax, %ebx
445 1.1 tls movl 3144(%ebp,%edx,4),%edx
446 1.1 tls addl %edx, %ebx
447 1.1 tls xorl %eax, %eax
448 1.1 tls xorl %ebx, %esi
449 1.1 tls
450 1.1 tls /* Round 15 */
451 1.1 tls movl 60(%ebp), %edx
452 1.1 tls movl %esi, %ebx
453 1.1 tls xorl %edx, %edi
454 1.1 tls shrl $16, %ebx
455 1.1 tls movl %esi, %edx
456 1.1 tls movb %bh, %al
457 1.1 tls andl $255, %ebx
458 1.1 tls movb %dh, %cl
459 1.1 tls andl $255, %edx
460 1.1 tls movl 72(%ebp,%eax,4),%eax
461 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
462 1.1 tls addl %eax, %ebx
463 1.1 tls movl 2120(%ebp,%ecx,4),%eax
464 1.1 tls xorl %eax, %ebx
465 1.1 tls movl 3144(%ebp,%edx,4),%edx
466 1.1 tls addl %edx, %ebx
467 1.1 tls xorl %eax, %eax
468 1.1 tls xorl %ebx, %edi
469 1.1 tls
470 1.1 tls /* Round 14 */
471 1.1 tls movl 56(%ebp), %edx
472 1.1 tls movl %edi, %ebx
473 1.1 tls xorl %edx, %esi
474 1.1 tls shrl $16, %ebx
475 1.1 tls movl %edi, %edx
476 1.1 tls movb %bh, %al
477 1.1 tls andl $255, %ebx
478 1.1 tls movb %dh, %cl
479 1.1 tls andl $255, %edx
480 1.1 tls movl 72(%ebp,%eax,4),%eax
481 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
482 1.1 tls addl %eax, %ebx
483 1.1 tls movl 2120(%ebp,%ecx,4),%eax
484 1.1 tls xorl %eax, %ebx
485 1.1 tls movl 3144(%ebp,%edx,4),%edx
486 1.1 tls addl %edx, %ebx
487 1.1 tls xorl %eax, %eax
488 1.1 tls xorl %ebx, %esi
489 1.1 tls
490 1.1 tls /* Round 13 */
491 1.1 tls movl 52(%ebp), %edx
492 1.1 tls movl %esi, %ebx
493 1.1 tls xorl %edx, %edi
494 1.1 tls shrl $16, %ebx
495 1.1 tls movl %esi, %edx
496 1.1 tls movb %bh, %al
497 1.1 tls andl $255, %ebx
498 1.1 tls movb %dh, %cl
499 1.1 tls andl $255, %edx
500 1.1 tls movl 72(%ebp,%eax,4),%eax
501 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
502 1.1 tls addl %eax, %ebx
503 1.1 tls movl 2120(%ebp,%ecx,4),%eax
504 1.1 tls xorl %eax, %ebx
505 1.1 tls movl 3144(%ebp,%edx,4),%edx
506 1.1 tls addl %edx, %ebx
507 1.1 tls xorl %eax, %eax
508 1.1 tls xorl %ebx, %edi
509 1.1 tls
510 1.1 tls /* Round 12 */
511 1.1 tls movl 48(%ebp), %edx
512 1.1 tls movl %edi, %ebx
513 1.1 tls xorl %edx, %esi
514 1.1 tls shrl $16, %ebx
515 1.1 tls movl %edi, %edx
516 1.1 tls movb %bh, %al
517 1.1 tls andl $255, %ebx
518 1.1 tls movb %dh, %cl
519 1.1 tls andl $255, %edx
520 1.1 tls movl 72(%ebp,%eax,4),%eax
521 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
522 1.1 tls addl %eax, %ebx
523 1.1 tls movl 2120(%ebp,%ecx,4),%eax
524 1.1 tls xorl %eax, %ebx
525 1.1 tls movl 3144(%ebp,%edx,4),%edx
526 1.1 tls addl %edx, %ebx
527 1.1 tls xorl %eax, %eax
528 1.1 tls xorl %ebx, %esi
529 1.1 tls
530 1.1 tls /* Round 11 */
531 1.1 tls movl 44(%ebp), %edx
532 1.1 tls movl %esi, %ebx
533 1.1 tls xorl %edx, %edi
534 1.1 tls shrl $16, %ebx
535 1.1 tls movl %esi, %edx
536 1.1 tls movb %bh, %al
537 1.1 tls andl $255, %ebx
538 1.1 tls movb %dh, %cl
539 1.1 tls andl $255, %edx
540 1.1 tls movl 72(%ebp,%eax,4),%eax
541 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
542 1.1 tls addl %eax, %ebx
543 1.1 tls movl 2120(%ebp,%ecx,4),%eax
544 1.1 tls xorl %eax, %ebx
545 1.1 tls movl 3144(%ebp,%edx,4),%edx
546 1.1 tls addl %edx, %ebx
547 1.1 tls xorl %eax, %eax
548 1.1 tls xorl %ebx, %edi
549 1.1 tls
550 1.1 tls /* Round 10 */
551 1.1 tls movl 40(%ebp), %edx
552 1.1 tls movl %edi, %ebx
553 1.1 tls xorl %edx, %esi
554 1.1 tls shrl $16, %ebx
555 1.1 tls movl %edi, %edx
556 1.1 tls movb %bh, %al
557 1.1 tls andl $255, %ebx
558 1.1 tls movb %dh, %cl
559 1.1 tls andl $255, %edx
560 1.1 tls movl 72(%ebp,%eax,4),%eax
561 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
562 1.1 tls addl %eax, %ebx
563 1.1 tls movl 2120(%ebp,%ecx,4),%eax
564 1.1 tls xorl %eax, %ebx
565 1.1 tls movl 3144(%ebp,%edx,4),%edx
566 1.1 tls addl %edx, %ebx
567 1.1 tls xorl %eax, %eax
568 1.1 tls xorl %ebx, %esi
569 1.1 tls
570 1.1 tls /* Round 9 */
571 1.1 tls movl 36(%ebp), %edx
572 1.1 tls movl %esi, %ebx
573 1.1 tls xorl %edx, %edi
574 1.1 tls shrl $16, %ebx
575 1.1 tls movl %esi, %edx
576 1.1 tls movb %bh, %al
577 1.1 tls andl $255, %ebx
578 1.1 tls movb %dh, %cl
579 1.1 tls andl $255, %edx
580 1.1 tls movl 72(%ebp,%eax,4),%eax
581 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
582 1.1 tls addl %eax, %ebx
583 1.1 tls movl 2120(%ebp,%ecx,4),%eax
584 1.1 tls xorl %eax, %ebx
585 1.1 tls movl 3144(%ebp,%edx,4),%edx
586 1.1 tls addl %edx, %ebx
587 1.1 tls xorl %eax, %eax
588 1.1 tls xorl %ebx, %edi
589 1.1 tls
590 1.1 tls /* Round 8 */
591 1.1 tls movl 32(%ebp), %edx
592 1.1 tls movl %edi, %ebx
593 1.1 tls xorl %edx, %esi
594 1.1 tls shrl $16, %ebx
595 1.1 tls movl %edi, %edx
596 1.1 tls movb %bh, %al
597 1.1 tls andl $255, %ebx
598 1.1 tls movb %dh, %cl
599 1.1 tls andl $255, %edx
600 1.1 tls movl 72(%ebp,%eax,4),%eax
601 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
602 1.1 tls addl %eax, %ebx
603 1.1 tls movl 2120(%ebp,%ecx,4),%eax
604 1.1 tls xorl %eax, %ebx
605 1.1 tls movl 3144(%ebp,%edx,4),%edx
606 1.1 tls addl %edx, %ebx
607 1.1 tls xorl %eax, %eax
608 1.1 tls xorl %ebx, %esi
609 1.1 tls
610 1.1 tls /* Round 7 */
611 1.1 tls movl 28(%ebp), %edx
612 1.1 tls movl %esi, %ebx
613 1.1 tls xorl %edx, %edi
614 1.1 tls shrl $16, %ebx
615 1.1 tls movl %esi, %edx
616 1.1 tls movb %bh, %al
617 1.1 tls andl $255, %ebx
618 1.1 tls movb %dh, %cl
619 1.1 tls andl $255, %edx
620 1.1 tls movl 72(%ebp,%eax,4),%eax
621 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
622 1.1 tls addl %eax, %ebx
623 1.1 tls movl 2120(%ebp,%ecx,4),%eax
624 1.1 tls xorl %eax, %ebx
625 1.1 tls movl 3144(%ebp,%edx,4),%edx
626 1.1 tls addl %edx, %ebx
627 1.1 tls xorl %eax, %eax
628 1.1 tls xorl %ebx, %edi
629 1.1 tls
630 1.1 tls /* Round 6 */
631 1.1 tls movl 24(%ebp), %edx
632 1.1 tls movl %edi, %ebx
633 1.1 tls xorl %edx, %esi
634 1.1 tls shrl $16, %ebx
635 1.1 tls movl %edi, %edx
636 1.1 tls movb %bh, %al
637 1.1 tls andl $255, %ebx
638 1.1 tls movb %dh, %cl
639 1.1 tls andl $255, %edx
640 1.1 tls movl 72(%ebp,%eax,4),%eax
641 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
642 1.1 tls addl %eax, %ebx
643 1.1 tls movl 2120(%ebp,%ecx,4),%eax
644 1.1 tls xorl %eax, %ebx
645 1.1 tls movl 3144(%ebp,%edx,4),%edx
646 1.1 tls addl %edx, %ebx
647 1.1 tls xorl %eax, %eax
648 1.1 tls xorl %ebx, %esi
649 1.1 tls
650 1.1 tls /* Round 5 */
651 1.1 tls movl 20(%ebp), %edx
652 1.1 tls movl %esi, %ebx
653 1.1 tls xorl %edx, %edi
654 1.1 tls shrl $16, %ebx
655 1.1 tls movl %esi, %edx
656 1.1 tls movb %bh, %al
657 1.1 tls andl $255, %ebx
658 1.1 tls movb %dh, %cl
659 1.1 tls andl $255, %edx
660 1.1 tls movl 72(%ebp,%eax,4),%eax
661 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
662 1.1 tls addl %eax, %ebx
663 1.1 tls movl 2120(%ebp,%ecx,4),%eax
664 1.1 tls xorl %eax, %ebx
665 1.1 tls movl 3144(%ebp,%edx,4),%edx
666 1.1 tls addl %edx, %ebx
667 1.1 tls xorl %eax, %eax
668 1.1 tls xorl %ebx, %edi
669 1.1 tls
670 1.1 tls /* Round 4 */
671 1.1 tls movl 16(%ebp), %edx
672 1.1 tls movl %edi, %ebx
673 1.1 tls xorl %edx, %esi
674 1.1 tls shrl $16, %ebx
675 1.1 tls movl %edi, %edx
676 1.1 tls movb %bh, %al
677 1.1 tls andl $255, %ebx
678 1.1 tls movb %dh, %cl
679 1.1 tls andl $255, %edx
680 1.1 tls movl 72(%ebp,%eax,4),%eax
681 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
682 1.1 tls addl %eax, %ebx
683 1.1 tls movl 2120(%ebp,%ecx,4),%eax
684 1.1 tls xorl %eax, %ebx
685 1.1 tls movl 3144(%ebp,%edx,4),%edx
686 1.1 tls addl %edx, %ebx
687 1.1 tls xorl %eax, %eax
688 1.1 tls xorl %ebx, %esi
689 1.1 tls
690 1.1 tls /* Round 3 */
691 1.1 tls movl 12(%ebp), %edx
692 1.1 tls movl %esi, %ebx
693 1.1 tls xorl %edx, %edi
694 1.1 tls shrl $16, %ebx
695 1.1 tls movl %esi, %edx
696 1.1 tls movb %bh, %al
697 1.1 tls andl $255, %ebx
698 1.1 tls movb %dh, %cl
699 1.1 tls andl $255, %edx
700 1.1 tls movl 72(%ebp,%eax,4),%eax
701 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
702 1.1 tls addl %eax, %ebx
703 1.1 tls movl 2120(%ebp,%ecx,4),%eax
704 1.1 tls xorl %eax, %ebx
705 1.1 tls movl 3144(%ebp,%edx,4),%edx
706 1.1 tls addl %edx, %ebx
707 1.1 tls xorl %eax, %eax
708 1.1 tls xorl %ebx, %edi
709 1.1 tls
710 1.1 tls /* Round 2 */
711 1.1 tls movl 8(%ebp), %edx
712 1.1 tls movl %edi, %ebx
713 1.1 tls xorl %edx, %esi
714 1.1 tls shrl $16, %ebx
715 1.1 tls movl %edi, %edx
716 1.1 tls movb %bh, %al
717 1.1 tls andl $255, %ebx
718 1.1 tls movb %dh, %cl
719 1.1 tls andl $255, %edx
720 1.1 tls movl 72(%ebp,%eax,4),%eax
721 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
722 1.1 tls addl %eax, %ebx
723 1.1 tls movl 2120(%ebp,%ecx,4),%eax
724 1.1 tls xorl %eax, %ebx
725 1.1 tls movl 3144(%ebp,%edx,4),%edx
726 1.1 tls addl %edx, %ebx
727 1.1 tls xorl %eax, %eax
728 1.1 tls xorl %ebx, %esi
729 1.1 tls
730 1.1 tls /* Round 1 */
731 1.1 tls movl 4(%ebp), %edx
732 1.1 tls movl %esi, %ebx
733 1.1 tls xorl %edx, %edi
734 1.1 tls shrl $16, %ebx
735 1.1 tls movl %esi, %edx
736 1.1 tls movb %bh, %al
737 1.1 tls andl $255, %ebx
738 1.1 tls movb %dh, %cl
739 1.1 tls andl $255, %edx
740 1.1 tls movl 72(%ebp,%eax,4),%eax
741 1.1 tls movl 1096(%ebp,%ebx,4),%ebx
742 1.1 tls addl %eax, %ebx
743 1.1 tls movl 2120(%ebp,%ecx,4),%eax
744 1.1 tls xorl %eax, %ebx
745 1.1 tls movl 3144(%ebp,%edx,4),%edx
746 1.1 tls addl %edx, %ebx
747 1.1 tls # Load parameter 0 (1) enc=0
748 1.1 tls movl 20(%esp), %eax
749 1.1 tls xorl %ebx, %edi
750 1.1 tls movl (%ebp), %edx
751 1.1 tls xorl %edx, %esi
752 1.1 tls movl %edi, 4(%eax)
753 1.1 tls movl %esi, (%eax)
754 1.1 tls popl %edi
755 1.1 tls popl %esi
756 1.1 tls popl %ebx
757 1.1 tls popl %ebp
758 1.1 tls ret
759 1.1 tls .L_BF_decrypt_end:
760 1.1 tls .size _C_LABEL(BF_decrypt),.L_BF_decrypt_end-_C_LABEL(BF_decrypt)
761