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