bf_enc_686.S revision 1.3 1 1.3 perry /* $NetBSD: bf_enc_686.S,v 1.3 2005/02/26 23:04:16 perry 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.3 perry *
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.3 perry *
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.3 perry *
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.3 perry * 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.3 perry *
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.3 perry *
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-686.pl elf' by
62 1.1 tls * Jason R. Thorpe <thorpej (at) zembu.com> and Thor Lancelot Simon
63 1.2 keihan * <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 pushl %esi
72 1.1 tls pushl %edi
73 1.1 tls
74 1.1 tls
75 1.1 tls /* Load the 2 words */
76 1.1 tls movl 20(%esp), %eax
77 1.1 tls movl (%eax), %ecx
78 1.1 tls movl 4(%eax), %edx
79 1.1 tls
80 1.1 tls /* P pointer, s and enc flag */
81 1.1 tls movl 24(%esp), %edi
82 1.1 tls xorl %eax, %eax
83 1.1 tls xorl %ebx, %ebx
84 1.1 tls xorl (%edi), %ecx
85 1.1 tls
86 1.1 tls /* Round 0 */
87 1.1 tls rorl $16, %ecx
88 1.1 tls movl 4(%edi), %esi
89 1.1 tls movb %ch, %al
90 1.1 tls movb %cl, %bl
91 1.1 tls rorl $16, %ecx
92 1.1 tls xorl %esi, %edx
93 1.1 tls movl 72(%edi,%eax,4),%esi
94 1.1 tls movl 1096(%edi,%ebx,4),%ebp
95 1.1 tls movb %ch, %al
96 1.1 tls movb %cl, %bl
97 1.1 tls addl %ebp, %esi
98 1.1 tls movl 2120(%edi,%eax,4),%eax
99 1.1 tls xorl %eax, %esi
100 1.1 tls movl 3144(%edi,%ebx,4),%ebp
101 1.1 tls addl %ebp, %esi
102 1.1 tls xorl %eax, %eax
103 1.1 tls xorl %esi, %edx
104 1.1 tls
105 1.1 tls /* Round 1 */
106 1.1 tls rorl $16, %edx
107 1.1 tls movl 8(%edi), %esi
108 1.1 tls movb %dh, %al
109 1.1 tls movb %dl, %bl
110 1.1 tls rorl $16, %edx
111 1.1 tls xorl %esi, %ecx
112 1.1 tls movl 72(%edi,%eax,4),%esi
113 1.1 tls movl 1096(%edi,%ebx,4),%ebp
114 1.1 tls movb %dh, %al
115 1.1 tls movb %dl, %bl
116 1.1 tls addl %ebp, %esi
117 1.1 tls movl 2120(%edi,%eax,4),%eax
118 1.1 tls xorl %eax, %esi
119 1.1 tls movl 3144(%edi,%ebx,4),%ebp
120 1.1 tls addl %ebp, %esi
121 1.1 tls xorl %eax, %eax
122 1.1 tls xorl %esi, %ecx
123 1.1 tls
124 1.1 tls /* Round 2 */
125 1.1 tls rorl $16, %ecx
126 1.1 tls movl 12(%edi), %esi
127 1.1 tls movb %ch, %al
128 1.1 tls movb %cl, %bl
129 1.1 tls rorl $16, %ecx
130 1.1 tls xorl %esi, %edx
131 1.1 tls movl 72(%edi,%eax,4),%esi
132 1.1 tls movl 1096(%edi,%ebx,4),%ebp
133 1.1 tls movb %ch, %al
134 1.1 tls movb %cl, %bl
135 1.1 tls addl %ebp, %esi
136 1.1 tls movl 2120(%edi,%eax,4),%eax
137 1.1 tls xorl %eax, %esi
138 1.1 tls movl 3144(%edi,%ebx,4),%ebp
139 1.1 tls addl %ebp, %esi
140 1.1 tls xorl %eax, %eax
141 1.1 tls xorl %esi, %edx
142 1.1 tls
143 1.1 tls /* Round 3 */
144 1.1 tls rorl $16, %edx
145 1.1 tls movl 16(%edi), %esi
146 1.1 tls movb %dh, %al
147 1.1 tls movb %dl, %bl
148 1.1 tls rorl $16, %edx
149 1.1 tls xorl %esi, %ecx
150 1.1 tls movl 72(%edi,%eax,4),%esi
151 1.1 tls movl 1096(%edi,%ebx,4),%ebp
152 1.1 tls movb %dh, %al
153 1.1 tls movb %dl, %bl
154 1.1 tls addl %ebp, %esi
155 1.1 tls movl 2120(%edi,%eax,4),%eax
156 1.1 tls xorl %eax, %esi
157 1.1 tls movl 3144(%edi,%ebx,4),%ebp
158 1.1 tls addl %ebp, %esi
159 1.1 tls xorl %eax, %eax
160 1.1 tls xorl %esi, %ecx
161 1.1 tls
162 1.1 tls /* Round 4 */
163 1.1 tls rorl $16, %ecx
164 1.1 tls movl 20(%edi), %esi
165 1.1 tls movb %ch, %al
166 1.1 tls movb %cl, %bl
167 1.1 tls rorl $16, %ecx
168 1.1 tls xorl %esi, %edx
169 1.1 tls movl 72(%edi,%eax,4),%esi
170 1.1 tls movl 1096(%edi,%ebx,4),%ebp
171 1.1 tls movb %ch, %al
172 1.1 tls movb %cl, %bl
173 1.1 tls addl %ebp, %esi
174 1.1 tls movl 2120(%edi,%eax,4),%eax
175 1.1 tls xorl %eax, %esi
176 1.1 tls movl 3144(%edi,%ebx,4),%ebp
177 1.1 tls addl %ebp, %esi
178 1.1 tls xorl %eax, %eax
179 1.1 tls xorl %esi, %edx
180 1.1 tls
181 1.1 tls /* Round 5 */
182 1.1 tls rorl $16, %edx
183 1.1 tls movl 24(%edi), %esi
184 1.1 tls movb %dh, %al
185 1.1 tls movb %dl, %bl
186 1.1 tls rorl $16, %edx
187 1.1 tls xorl %esi, %ecx
188 1.1 tls movl 72(%edi,%eax,4),%esi
189 1.1 tls movl 1096(%edi,%ebx,4),%ebp
190 1.1 tls movb %dh, %al
191 1.1 tls movb %dl, %bl
192 1.1 tls addl %ebp, %esi
193 1.1 tls movl 2120(%edi,%eax,4),%eax
194 1.1 tls xorl %eax, %esi
195 1.1 tls movl 3144(%edi,%ebx,4),%ebp
196 1.1 tls addl %ebp, %esi
197 1.1 tls xorl %eax, %eax
198 1.1 tls xorl %esi, %ecx
199 1.1 tls
200 1.1 tls /* Round 6 */
201 1.1 tls rorl $16, %ecx
202 1.1 tls movl 28(%edi), %esi
203 1.1 tls movb %ch, %al
204 1.1 tls movb %cl, %bl
205 1.1 tls rorl $16, %ecx
206 1.1 tls xorl %esi, %edx
207 1.1 tls movl 72(%edi,%eax,4),%esi
208 1.1 tls movl 1096(%edi,%ebx,4),%ebp
209 1.1 tls movb %ch, %al
210 1.1 tls movb %cl, %bl
211 1.1 tls addl %ebp, %esi
212 1.1 tls movl 2120(%edi,%eax,4),%eax
213 1.1 tls xorl %eax, %esi
214 1.1 tls movl 3144(%edi,%ebx,4),%ebp
215 1.1 tls addl %ebp, %esi
216 1.1 tls xorl %eax, %eax
217 1.1 tls xorl %esi, %edx
218 1.1 tls
219 1.1 tls /* Round 7 */
220 1.1 tls rorl $16, %edx
221 1.1 tls movl 32(%edi), %esi
222 1.1 tls movb %dh, %al
223 1.1 tls movb %dl, %bl
224 1.1 tls rorl $16, %edx
225 1.1 tls xorl %esi, %ecx
226 1.1 tls movl 72(%edi,%eax,4),%esi
227 1.1 tls movl 1096(%edi,%ebx,4),%ebp
228 1.1 tls movb %dh, %al
229 1.1 tls movb %dl, %bl
230 1.1 tls addl %ebp, %esi
231 1.1 tls movl 2120(%edi,%eax,4),%eax
232 1.1 tls xorl %eax, %esi
233 1.1 tls movl 3144(%edi,%ebx,4),%ebp
234 1.1 tls addl %ebp, %esi
235 1.1 tls xorl %eax, %eax
236 1.1 tls xorl %esi, %ecx
237 1.1 tls
238 1.1 tls /* Round 8 */
239 1.1 tls rorl $16, %ecx
240 1.1 tls movl 36(%edi), %esi
241 1.1 tls movb %ch, %al
242 1.1 tls movb %cl, %bl
243 1.1 tls rorl $16, %ecx
244 1.1 tls xorl %esi, %edx
245 1.1 tls movl 72(%edi,%eax,4),%esi
246 1.1 tls movl 1096(%edi,%ebx,4),%ebp
247 1.1 tls movb %ch, %al
248 1.1 tls movb %cl, %bl
249 1.1 tls addl %ebp, %esi
250 1.1 tls movl 2120(%edi,%eax,4),%eax
251 1.1 tls xorl %eax, %esi
252 1.1 tls movl 3144(%edi,%ebx,4),%ebp
253 1.1 tls addl %ebp, %esi
254 1.1 tls xorl %eax, %eax
255 1.1 tls xorl %esi, %edx
256 1.1 tls
257 1.1 tls /* Round 9 */
258 1.1 tls rorl $16, %edx
259 1.1 tls movl 40(%edi), %esi
260 1.1 tls movb %dh, %al
261 1.1 tls movb %dl, %bl
262 1.1 tls rorl $16, %edx
263 1.1 tls xorl %esi, %ecx
264 1.1 tls movl 72(%edi,%eax,4),%esi
265 1.1 tls movl 1096(%edi,%ebx,4),%ebp
266 1.1 tls movb %dh, %al
267 1.1 tls movb %dl, %bl
268 1.1 tls addl %ebp, %esi
269 1.1 tls movl 2120(%edi,%eax,4),%eax
270 1.1 tls xorl %eax, %esi
271 1.1 tls movl 3144(%edi,%ebx,4),%ebp
272 1.1 tls addl %ebp, %esi
273 1.1 tls xorl %eax, %eax
274 1.1 tls xorl %esi, %ecx
275 1.1 tls
276 1.1 tls /* Round 10 */
277 1.1 tls rorl $16, %ecx
278 1.1 tls movl 44(%edi), %esi
279 1.1 tls movb %ch, %al
280 1.1 tls movb %cl, %bl
281 1.1 tls rorl $16, %ecx
282 1.1 tls xorl %esi, %edx
283 1.1 tls movl 72(%edi,%eax,4),%esi
284 1.1 tls movl 1096(%edi,%ebx,4),%ebp
285 1.1 tls movb %ch, %al
286 1.1 tls movb %cl, %bl
287 1.1 tls addl %ebp, %esi
288 1.1 tls movl 2120(%edi,%eax,4),%eax
289 1.1 tls xorl %eax, %esi
290 1.1 tls movl 3144(%edi,%ebx,4),%ebp
291 1.1 tls addl %ebp, %esi
292 1.1 tls xorl %eax, %eax
293 1.1 tls xorl %esi, %edx
294 1.1 tls
295 1.1 tls /* Round 11 */
296 1.1 tls rorl $16, %edx
297 1.1 tls movl 48(%edi), %esi
298 1.1 tls movb %dh, %al
299 1.1 tls movb %dl, %bl
300 1.1 tls rorl $16, %edx
301 1.1 tls xorl %esi, %ecx
302 1.1 tls movl 72(%edi,%eax,4),%esi
303 1.1 tls movl 1096(%edi,%ebx,4),%ebp
304 1.1 tls movb %dh, %al
305 1.1 tls movb %dl, %bl
306 1.1 tls addl %ebp, %esi
307 1.1 tls movl 2120(%edi,%eax,4),%eax
308 1.1 tls xorl %eax, %esi
309 1.1 tls movl 3144(%edi,%ebx,4),%ebp
310 1.1 tls addl %ebp, %esi
311 1.1 tls xorl %eax, %eax
312 1.1 tls xorl %esi, %ecx
313 1.1 tls
314 1.1 tls /* Round 12 */
315 1.1 tls rorl $16, %ecx
316 1.1 tls movl 52(%edi), %esi
317 1.1 tls movb %ch, %al
318 1.1 tls movb %cl, %bl
319 1.1 tls rorl $16, %ecx
320 1.1 tls xorl %esi, %edx
321 1.1 tls movl 72(%edi,%eax,4),%esi
322 1.1 tls movl 1096(%edi,%ebx,4),%ebp
323 1.1 tls movb %ch, %al
324 1.1 tls movb %cl, %bl
325 1.1 tls addl %ebp, %esi
326 1.1 tls movl 2120(%edi,%eax,4),%eax
327 1.1 tls xorl %eax, %esi
328 1.1 tls movl 3144(%edi,%ebx,4),%ebp
329 1.1 tls addl %ebp, %esi
330 1.1 tls xorl %eax, %eax
331 1.1 tls xorl %esi, %edx
332 1.1 tls
333 1.1 tls /* Round 13 */
334 1.1 tls rorl $16, %edx
335 1.1 tls movl 56(%edi), %esi
336 1.1 tls movb %dh, %al
337 1.1 tls movb %dl, %bl
338 1.1 tls rorl $16, %edx
339 1.1 tls xorl %esi, %ecx
340 1.1 tls movl 72(%edi,%eax,4),%esi
341 1.1 tls movl 1096(%edi,%ebx,4),%ebp
342 1.1 tls movb %dh, %al
343 1.1 tls movb %dl, %bl
344 1.1 tls addl %ebp, %esi
345 1.1 tls movl 2120(%edi,%eax,4),%eax
346 1.1 tls xorl %eax, %esi
347 1.1 tls movl 3144(%edi,%ebx,4),%ebp
348 1.1 tls addl %ebp, %esi
349 1.1 tls xorl %eax, %eax
350 1.1 tls xorl %esi, %ecx
351 1.1 tls
352 1.1 tls /* Round 14 */
353 1.1 tls rorl $16, %ecx
354 1.1 tls movl 60(%edi), %esi
355 1.1 tls movb %ch, %al
356 1.1 tls movb %cl, %bl
357 1.1 tls rorl $16, %ecx
358 1.1 tls xorl %esi, %edx
359 1.1 tls movl 72(%edi,%eax,4),%esi
360 1.1 tls movl 1096(%edi,%ebx,4),%ebp
361 1.1 tls movb %ch, %al
362 1.1 tls movb %cl, %bl
363 1.1 tls addl %ebp, %esi
364 1.1 tls movl 2120(%edi,%eax,4),%eax
365 1.1 tls xorl %eax, %esi
366 1.1 tls movl 3144(%edi,%ebx,4),%ebp
367 1.1 tls addl %ebp, %esi
368 1.1 tls xorl %eax, %eax
369 1.1 tls xorl %esi, %edx
370 1.1 tls
371 1.1 tls /* Round 15 */
372 1.1 tls rorl $16, %edx
373 1.1 tls movl 64(%edi), %esi
374 1.1 tls movb %dh, %al
375 1.1 tls movb %dl, %bl
376 1.1 tls rorl $16, %edx
377 1.1 tls xorl %esi, %ecx
378 1.1 tls movl 72(%edi,%eax,4),%esi
379 1.1 tls movl 1096(%edi,%ebx,4),%ebp
380 1.1 tls movb %dh, %al
381 1.1 tls movb %dl, %bl
382 1.1 tls addl %ebp, %esi
383 1.1 tls movl 2120(%edi,%eax,4),%eax
384 1.1 tls xorl %eax, %esi
385 1.1 tls movl 3144(%edi,%ebx,4),%ebp
386 1.1 tls addl %ebp, %esi
387 1.1 tls xorl %eax, %eax
388 1.1 tls xorl %esi, %ecx
389 1.1 tls xorl 68(%edi), %edx
390 1.1 tls movl 20(%esp), %eax
391 1.1 tls movl %edx, (%eax)
392 1.1 tls movl %ecx, 4(%eax)
393 1.1 tls popl %edi
394 1.1 tls popl %esi
395 1.1 tls popl %ebx
396 1.1 tls popl %ebp
397 1.1 tls ret
398 1.1 tls .L_BF_encrypt_end:
399 1.1 tls .size _C_LABEL(BF_encrypt),.L_BF_encrypt_end-_C_LABEL(BF_encrypt)
400 1.1 tls
401 1.1 tls ENTRY(BF_decrypt)
402 1.1 tls pushl %ebp
403 1.1 tls pushl %ebx
404 1.1 tls pushl %esi
405 1.1 tls pushl %edi
406 1.1 tls
407 1.1 tls
408 1.1 tls /* Load the 2 words */
409 1.1 tls movl 20(%esp), %eax
410 1.1 tls movl (%eax), %ecx
411 1.1 tls movl 4(%eax), %edx
412 1.1 tls
413 1.1 tls /* P pointer, s and enc flag */
414 1.1 tls movl 24(%esp), %edi
415 1.1 tls xorl %eax, %eax
416 1.1 tls xorl %ebx, %ebx
417 1.1 tls xorl 68(%edi), %ecx
418 1.1 tls
419 1.1 tls /* Round 16 */
420 1.1 tls rorl $16, %ecx
421 1.1 tls movl 64(%edi), %esi
422 1.1 tls movb %ch, %al
423 1.1 tls movb %cl, %bl
424 1.1 tls rorl $16, %ecx
425 1.1 tls xorl %esi, %edx
426 1.1 tls movl 72(%edi,%eax,4),%esi
427 1.1 tls movl 1096(%edi,%ebx,4),%ebp
428 1.1 tls movb %ch, %al
429 1.1 tls movb %cl, %bl
430 1.1 tls addl %ebp, %esi
431 1.1 tls movl 2120(%edi,%eax,4),%eax
432 1.1 tls xorl %eax, %esi
433 1.1 tls movl 3144(%edi,%ebx,4),%ebp
434 1.1 tls addl %ebp, %esi
435 1.1 tls xorl %eax, %eax
436 1.1 tls xorl %esi, %edx
437 1.1 tls
438 1.1 tls /* Round 15 */
439 1.1 tls rorl $16, %edx
440 1.1 tls movl 60(%edi), %esi
441 1.1 tls movb %dh, %al
442 1.1 tls movb %dl, %bl
443 1.1 tls rorl $16, %edx
444 1.1 tls xorl %esi, %ecx
445 1.1 tls movl 72(%edi,%eax,4),%esi
446 1.1 tls movl 1096(%edi,%ebx,4),%ebp
447 1.1 tls movb %dh, %al
448 1.1 tls movb %dl, %bl
449 1.1 tls addl %ebp, %esi
450 1.1 tls movl 2120(%edi,%eax,4),%eax
451 1.1 tls xorl %eax, %esi
452 1.1 tls movl 3144(%edi,%ebx,4),%ebp
453 1.1 tls addl %ebp, %esi
454 1.1 tls xorl %eax, %eax
455 1.1 tls xorl %esi, %ecx
456 1.1 tls
457 1.1 tls /* Round 14 */
458 1.1 tls rorl $16, %ecx
459 1.1 tls movl 56(%edi), %esi
460 1.1 tls movb %ch, %al
461 1.1 tls movb %cl, %bl
462 1.1 tls rorl $16, %ecx
463 1.1 tls xorl %esi, %edx
464 1.1 tls movl 72(%edi,%eax,4),%esi
465 1.1 tls movl 1096(%edi,%ebx,4),%ebp
466 1.1 tls movb %ch, %al
467 1.1 tls movb %cl, %bl
468 1.1 tls addl %ebp, %esi
469 1.1 tls movl 2120(%edi,%eax,4),%eax
470 1.1 tls xorl %eax, %esi
471 1.1 tls movl 3144(%edi,%ebx,4),%ebp
472 1.1 tls addl %ebp, %esi
473 1.1 tls xorl %eax, %eax
474 1.1 tls xorl %esi, %edx
475 1.1 tls
476 1.1 tls /* Round 13 */
477 1.1 tls rorl $16, %edx
478 1.1 tls movl 52(%edi), %esi
479 1.1 tls movb %dh, %al
480 1.1 tls movb %dl, %bl
481 1.1 tls rorl $16, %edx
482 1.1 tls xorl %esi, %ecx
483 1.1 tls movl 72(%edi,%eax,4),%esi
484 1.1 tls movl 1096(%edi,%ebx,4),%ebp
485 1.1 tls movb %dh, %al
486 1.1 tls movb %dl, %bl
487 1.1 tls addl %ebp, %esi
488 1.1 tls movl 2120(%edi,%eax,4),%eax
489 1.1 tls xorl %eax, %esi
490 1.1 tls movl 3144(%edi,%ebx,4),%ebp
491 1.1 tls addl %ebp, %esi
492 1.1 tls xorl %eax, %eax
493 1.1 tls xorl %esi, %ecx
494 1.1 tls
495 1.1 tls /* Round 12 */
496 1.1 tls rorl $16, %ecx
497 1.1 tls movl 48(%edi), %esi
498 1.1 tls movb %ch, %al
499 1.1 tls movb %cl, %bl
500 1.1 tls rorl $16, %ecx
501 1.1 tls xorl %esi, %edx
502 1.1 tls movl 72(%edi,%eax,4),%esi
503 1.1 tls movl 1096(%edi,%ebx,4),%ebp
504 1.1 tls movb %ch, %al
505 1.1 tls movb %cl, %bl
506 1.1 tls addl %ebp, %esi
507 1.1 tls movl 2120(%edi,%eax,4),%eax
508 1.1 tls xorl %eax, %esi
509 1.1 tls movl 3144(%edi,%ebx,4),%ebp
510 1.1 tls addl %ebp, %esi
511 1.1 tls xorl %eax, %eax
512 1.1 tls xorl %esi, %edx
513 1.1 tls
514 1.1 tls /* Round 11 */
515 1.1 tls rorl $16, %edx
516 1.1 tls movl 44(%edi), %esi
517 1.1 tls movb %dh, %al
518 1.1 tls movb %dl, %bl
519 1.1 tls rorl $16, %edx
520 1.1 tls xorl %esi, %ecx
521 1.1 tls movl 72(%edi,%eax,4),%esi
522 1.1 tls movl 1096(%edi,%ebx,4),%ebp
523 1.1 tls movb %dh, %al
524 1.1 tls movb %dl, %bl
525 1.1 tls addl %ebp, %esi
526 1.1 tls movl 2120(%edi,%eax,4),%eax
527 1.1 tls xorl %eax, %esi
528 1.1 tls movl 3144(%edi,%ebx,4),%ebp
529 1.1 tls addl %ebp, %esi
530 1.1 tls xorl %eax, %eax
531 1.1 tls xorl %esi, %ecx
532 1.1 tls
533 1.1 tls /* Round 10 */
534 1.1 tls rorl $16, %ecx
535 1.1 tls movl 40(%edi), %esi
536 1.1 tls movb %ch, %al
537 1.1 tls movb %cl, %bl
538 1.1 tls rorl $16, %ecx
539 1.1 tls xorl %esi, %edx
540 1.1 tls movl 72(%edi,%eax,4),%esi
541 1.1 tls movl 1096(%edi,%ebx,4),%ebp
542 1.1 tls movb %ch, %al
543 1.1 tls movb %cl, %bl
544 1.1 tls addl %ebp, %esi
545 1.1 tls movl 2120(%edi,%eax,4),%eax
546 1.1 tls xorl %eax, %esi
547 1.1 tls movl 3144(%edi,%ebx,4),%ebp
548 1.1 tls addl %ebp, %esi
549 1.1 tls xorl %eax, %eax
550 1.1 tls xorl %esi, %edx
551 1.1 tls
552 1.1 tls /* Round 9 */
553 1.1 tls rorl $16, %edx
554 1.1 tls movl 36(%edi), %esi
555 1.1 tls movb %dh, %al
556 1.1 tls movb %dl, %bl
557 1.1 tls rorl $16, %edx
558 1.1 tls xorl %esi, %ecx
559 1.1 tls movl 72(%edi,%eax,4),%esi
560 1.1 tls movl 1096(%edi,%ebx,4),%ebp
561 1.1 tls movb %dh, %al
562 1.1 tls movb %dl, %bl
563 1.1 tls addl %ebp, %esi
564 1.1 tls movl 2120(%edi,%eax,4),%eax
565 1.1 tls xorl %eax, %esi
566 1.1 tls movl 3144(%edi,%ebx,4),%ebp
567 1.1 tls addl %ebp, %esi
568 1.1 tls xorl %eax, %eax
569 1.1 tls xorl %esi, %ecx
570 1.1 tls
571 1.1 tls /* Round 8 */
572 1.1 tls rorl $16, %ecx
573 1.1 tls movl 32(%edi), %esi
574 1.1 tls movb %ch, %al
575 1.1 tls movb %cl, %bl
576 1.1 tls rorl $16, %ecx
577 1.1 tls xorl %esi, %edx
578 1.1 tls movl 72(%edi,%eax,4),%esi
579 1.1 tls movl 1096(%edi,%ebx,4),%ebp
580 1.1 tls movb %ch, %al
581 1.1 tls movb %cl, %bl
582 1.1 tls addl %ebp, %esi
583 1.1 tls movl 2120(%edi,%eax,4),%eax
584 1.1 tls xorl %eax, %esi
585 1.1 tls movl 3144(%edi,%ebx,4),%ebp
586 1.1 tls addl %ebp, %esi
587 1.1 tls xorl %eax, %eax
588 1.1 tls xorl %esi, %edx
589 1.1 tls
590 1.1 tls /* Round 7 */
591 1.1 tls rorl $16, %edx
592 1.1 tls movl 28(%edi), %esi
593 1.1 tls movb %dh, %al
594 1.1 tls movb %dl, %bl
595 1.1 tls rorl $16, %edx
596 1.1 tls xorl %esi, %ecx
597 1.1 tls movl 72(%edi,%eax,4),%esi
598 1.1 tls movl 1096(%edi,%ebx,4),%ebp
599 1.1 tls movb %dh, %al
600 1.1 tls movb %dl, %bl
601 1.1 tls addl %ebp, %esi
602 1.1 tls movl 2120(%edi,%eax,4),%eax
603 1.1 tls xorl %eax, %esi
604 1.1 tls movl 3144(%edi,%ebx,4),%ebp
605 1.1 tls addl %ebp, %esi
606 1.1 tls xorl %eax, %eax
607 1.1 tls xorl %esi, %ecx
608 1.1 tls
609 1.1 tls /* Round 6 */
610 1.1 tls rorl $16, %ecx
611 1.1 tls movl 24(%edi), %esi
612 1.1 tls movb %ch, %al
613 1.1 tls movb %cl, %bl
614 1.1 tls rorl $16, %ecx
615 1.1 tls xorl %esi, %edx
616 1.1 tls movl 72(%edi,%eax,4),%esi
617 1.1 tls movl 1096(%edi,%ebx,4),%ebp
618 1.1 tls movb %ch, %al
619 1.1 tls movb %cl, %bl
620 1.1 tls addl %ebp, %esi
621 1.1 tls movl 2120(%edi,%eax,4),%eax
622 1.1 tls xorl %eax, %esi
623 1.1 tls movl 3144(%edi,%ebx,4),%ebp
624 1.1 tls addl %ebp, %esi
625 1.1 tls xorl %eax, %eax
626 1.1 tls xorl %esi, %edx
627 1.1 tls
628 1.1 tls /* Round 5 */
629 1.1 tls rorl $16, %edx
630 1.1 tls movl 20(%edi), %esi
631 1.1 tls movb %dh, %al
632 1.1 tls movb %dl, %bl
633 1.1 tls rorl $16, %edx
634 1.1 tls xorl %esi, %ecx
635 1.1 tls movl 72(%edi,%eax,4),%esi
636 1.1 tls movl 1096(%edi,%ebx,4),%ebp
637 1.1 tls movb %dh, %al
638 1.1 tls movb %dl, %bl
639 1.1 tls addl %ebp, %esi
640 1.1 tls movl 2120(%edi,%eax,4),%eax
641 1.1 tls xorl %eax, %esi
642 1.1 tls movl 3144(%edi,%ebx,4),%ebp
643 1.1 tls addl %ebp, %esi
644 1.1 tls xorl %eax, %eax
645 1.1 tls xorl %esi, %ecx
646 1.1 tls
647 1.1 tls /* Round 4 */
648 1.1 tls rorl $16, %ecx
649 1.1 tls movl 16(%edi), %esi
650 1.1 tls movb %ch, %al
651 1.1 tls movb %cl, %bl
652 1.1 tls rorl $16, %ecx
653 1.1 tls xorl %esi, %edx
654 1.1 tls movl 72(%edi,%eax,4),%esi
655 1.1 tls movl 1096(%edi,%ebx,4),%ebp
656 1.1 tls movb %ch, %al
657 1.1 tls movb %cl, %bl
658 1.1 tls addl %ebp, %esi
659 1.1 tls movl 2120(%edi,%eax,4),%eax
660 1.1 tls xorl %eax, %esi
661 1.1 tls movl 3144(%edi,%ebx,4),%ebp
662 1.1 tls addl %ebp, %esi
663 1.1 tls xorl %eax, %eax
664 1.1 tls xorl %esi, %edx
665 1.1 tls
666 1.1 tls /* Round 3 */
667 1.1 tls rorl $16, %edx
668 1.1 tls movl 12(%edi), %esi
669 1.1 tls movb %dh, %al
670 1.1 tls movb %dl, %bl
671 1.1 tls rorl $16, %edx
672 1.1 tls xorl %esi, %ecx
673 1.1 tls movl 72(%edi,%eax,4),%esi
674 1.1 tls movl 1096(%edi,%ebx,4),%ebp
675 1.1 tls movb %dh, %al
676 1.1 tls movb %dl, %bl
677 1.1 tls addl %ebp, %esi
678 1.1 tls movl 2120(%edi,%eax,4),%eax
679 1.1 tls xorl %eax, %esi
680 1.1 tls movl 3144(%edi,%ebx,4),%ebp
681 1.1 tls addl %ebp, %esi
682 1.1 tls xorl %eax, %eax
683 1.1 tls xorl %esi, %ecx
684 1.1 tls
685 1.1 tls /* Round 2 */
686 1.1 tls rorl $16, %ecx
687 1.1 tls movl 8(%edi), %esi
688 1.1 tls movb %ch, %al
689 1.1 tls movb %cl, %bl
690 1.1 tls rorl $16, %ecx
691 1.1 tls xorl %esi, %edx
692 1.1 tls movl 72(%edi,%eax,4),%esi
693 1.1 tls movl 1096(%edi,%ebx,4),%ebp
694 1.1 tls movb %ch, %al
695 1.1 tls movb %cl, %bl
696 1.1 tls addl %ebp, %esi
697 1.1 tls movl 2120(%edi,%eax,4),%eax
698 1.1 tls xorl %eax, %esi
699 1.1 tls movl 3144(%edi,%ebx,4),%ebp
700 1.1 tls addl %ebp, %esi
701 1.1 tls xorl %eax, %eax
702 1.1 tls xorl %esi, %edx
703 1.1 tls
704 1.1 tls /* Round 1 */
705 1.1 tls rorl $16, %edx
706 1.1 tls movl 4(%edi), %esi
707 1.1 tls movb %dh, %al
708 1.1 tls movb %dl, %bl
709 1.1 tls rorl $16, %edx
710 1.1 tls xorl %esi, %ecx
711 1.1 tls movl 72(%edi,%eax,4),%esi
712 1.1 tls movl 1096(%edi,%ebx,4),%ebp
713 1.1 tls movb %dh, %al
714 1.1 tls movb %dl, %bl
715 1.1 tls addl %ebp, %esi
716 1.1 tls movl 2120(%edi,%eax,4),%eax
717 1.1 tls xorl %eax, %esi
718 1.1 tls movl 3144(%edi,%ebx,4),%ebp
719 1.1 tls addl %ebp, %esi
720 1.1 tls xorl %eax, %eax
721 1.1 tls xorl %esi, %ecx
722 1.1 tls xorl (%edi), %edx
723 1.1 tls movl 20(%esp), %eax
724 1.1 tls movl %edx, (%eax)
725 1.1 tls movl %ecx, 4(%eax)
726 1.1 tls popl %edi
727 1.1 tls popl %esi
728 1.1 tls popl %ebx
729 1.1 tls popl %ebp
730 1.1 tls ret
731 1.1 tls .L_BF_decrypt_end:
732 1.1 tls .size _C_LABEL(BF_decrypt),.L_BF_decrypt_end-_C_LABEL(BF_decrypt)
733