summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/des/asm/yx86unix.cpp
diff options
context:
space:
mode:
authorryker <>1998-10-05 20:13:16 +0000
committerryker <>1998-10-05 20:13:16 +0000
commit9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4 (patch)
tree51ff319f3510104698e541954d10ad98f9125f36 /src/lib/libcrypto/des/asm/yx86unix.cpp
parent9e77c62555877f9a64805c49d0dcd7dbfbb40f4e (diff)
downloadopenbsd-9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4.tar.gz
openbsd-9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4.tar.bz2
openbsd-9e43e2ac1373d5be5c6500c1bc3b1dd6ee9584b4.zip
Import of SSLeay-0.9.0b with RSA and IDEA stubbed + OpenBSD build
functionality for shared libs. Note that routines such as sslv2_init and friends that use RSA will not work due to lack of RSA in this library. Needs documentation and help from ports for easy upgrade to full functionality where legally possible.
Diffstat (limited to 'src/lib/libcrypto/des/asm/yx86unix.cpp')
-rw-r--r--src/lib/libcrypto/des/asm/yx86unix.cpp976
1 files changed, 976 insertions, 0 deletions
diff --git a/src/lib/libcrypto/des/asm/yx86unix.cpp b/src/lib/libcrypto/des/asm/yx86unix.cpp
new file mode 100644
index 0000000000..8719e38607
--- /dev/null
+++ b/src/lib/libcrypto/des/asm/yx86unix.cpp
@@ -0,0 +1,976 @@
1/* Run the C pre-processor over this file with one of the following defined
2 * ELF - elf object files,
3 * OUT - a.out object files,
4 * BSDI - BSDI style a.out object files
5 * SOL - Solaris style elf
6 */
7
8#define TYPE(a,b) .type a,b
9#define SIZE(a,b) .size a,b
10
11#if defined(OUT) || defined(BSDI)
12#define des_SPtrans _des_SPtrans
13#define fcrypt_body _fcrypt_body
14
15#endif
16
17#ifdef OUT
18#define OK 1
19#define ALIGN 4
20#endif
21
22#ifdef BSDI
23#define OK 1
24#define ALIGN 4
25#undef SIZE
26#undef TYPE
27#define SIZE(a,b)
28#define TYPE(a,b)
29#endif
30
31#if defined(ELF) || defined(SOL)
32#define OK 1
33#define ALIGN 16
34#endif
35
36#ifndef OK
37You need to define one of
38ELF - elf systems - linux-elf, NetBSD and DG-UX
39OUT - a.out systems - linux-a.out and FreeBSD
40SOL - solaris systems, which are elf with strange comment lines
41BSDI - a.out with a very primative version of as.
42#endif
43
44/* Let the Assembler begin :-) */
45 /* Don't even think of reading this code */
46 /* It was automatically generated by crypt586.pl */
47 /* Which is a perl program used to generate the x86 assember for */
48 /* any of elf, a.out, BSDI,Win32, or Solaris */
49 /* eric <eay@cryptsoft.com> */
50
51 .file "crypt586.s"
52 .version "01.01"
53gcc2_compiled.:
54.text
55 .align ALIGN
56.globl fcrypt_body
57 TYPE(fcrypt_body,@function)
58fcrypt_body:
59 pushl %ebp
60 pushl %ebx
61 pushl %esi
62 pushl %edi
63
64
65 /* Load the 2 words */
66 xorl %edi, %edi
67 xorl %esi, %esi
68 movl 24(%esp), %ebp
69 pushl $25
70.L000start:
71
72 /* Round 0 */
73 movl 32(%esp), %eax
74 movl %esi, %edx
75 shrl $16, %edx
76 movl 36(%esp), %ecx
77 xorl %esi, %edx
78 andl %edx, %eax
79 andl %ecx, %edx
80 movl %eax, %ebx
81 sall $16, %ebx
82 movl %edx, %ecx
83 sall $16, %ecx
84 xorl %ebx, %eax
85 xorl %ecx, %edx
86 movl (%ebp), %ebx
87 xorl %ebx, %eax
88 movl 4(%ebp), %ecx
89 xorl %esi, %eax
90 xorl %esi, %edx
91 xorl %ecx, %edx
92 andl $0xfcfcfcfc, %eax
93 xorl %ebx, %ebx
94 andl $0xcfcfcfcf, %edx
95 xorl %ecx, %ecx
96 movb %al, %bl
97 movb %ah, %cl
98 rorl $4, %edx
99 movl des_SPtrans(%ebx),%ebp
100 movb %dl, %bl
101 xorl %ebp, %edi
102 movl 0x200+des_SPtrans(%ecx),%ebp
103 xorl %ebp, %edi
104 movb %dh, %cl
105 shrl $16, %eax
106 movl 0x100+des_SPtrans(%ebx),%ebp
107 xorl %ebp, %edi
108 movb %ah, %bl
109 shrl $16, %edx
110 movl 0x300+des_SPtrans(%ecx),%ebp
111 xorl %ebp, %edi
112 movl 28(%esp), %ebp
113 movb %dh, %cl
114 andl $0xff, %eax
115 andl $0xff, %edx
116 movl 0x600+des_SPtrans(%ebx),%ebx
117 xorl %ebx, %edi
118 movl 0x700+des_SPtrans(%ecx),%ebx
119 xorl %ebx, %edi
120 movl 0x400+des_SPtrans(%eax),%ebx
121 xorl %ebx, %edi
122 movl 0x500+des_SPtrans(%edx),%ebx
123 xorl %ebx, %edi
124
125 /* Round 1 */
126 movl 32(%esp), %eax
127 movl %edi, %edx
128 shrl $16, %edx
129 movl 36(%esp), %ecx
130 xorl %edi, %edx
131 andl %edx, %eax
132 andl %ecx, %edx
133 movl %eax, %ebx
134 sall $16, %ebx
135 movl %edx, %ecx
136 sall $16, %ecx
137 xorl %ebx, %eax
138 xorl %ecx, %edx
139 movl 8(%ebp), %ebx
140 xorl %ebx, %eax
141 movl 12(%ebp), %ecx
142 xorl %edi, %eax
143 xorl %edi, %edx
144 xorl %ecx, %edx
145 andl $0xfcfcfcfc, %eax
146 xorl %ebx, %ebx
147 andl $0xcfcfcfcf, %edx
148 xorl %ecx, %ecx
149 movb %al, %bl
150 movb %ah, %cl
151 rorl $4, %edx
152 movl des_SPtrans(%ebx),%ebp
153 movb %dl, %bl
154 xorl %ebp, %esi
155 movl 0x200+des_SPtrans(%ecx),%ebp
156 xorl %ebp, %esi
157 movb %dh, %cl
158 shrl $16, %eax
159 movl 0x100+des_SPtrans(%ebx),%ebp
160 xorl %ebp, %esi
161 movb %ah, %bl
162 shrl $16, %edx
163 movl 0x300+des_SPtrans(%ecx),%ebp
164 xorl %ebp, %esi
165 movl 28(%esp), %ebp
166 movb %dh, %cl
167 andl $0xff, %eax
168 andl $0xff, %edx
169 movl 0x600+des_SPtrans(%ebx),%ebx
170 xorl %ebx, %esi
171 movl 0x700+des_SPtrans(%ecx),%ebx
172 xorl %ebx, %esi
173 movl 0x400+des_SPtrans(%eax),%ebx
174 xorl %ebx, %esi
175 movl 0x500+des_SPtrans(%edx),%ebx
176 xorl %ebx, %esi
177
178 /* Round 2 */
179 movl 32(%esp), %eax
180 movl %esi, %edx
181 shrl $16, %edx
182 movl 36(%esp), %ecx
183 xorl %esi, %edx
184 andl %edx, %eax
185 andl %ecx, %edx
186 movl %eax, %ebx
187 sall $16, %ebx
188 movl %edx, %ecx
189 sall $16, %ecx
190 xorl %ebx, %eax
191 xorl %ecx, %edx
192 movl 16(%ebp), %ebx
193 xorl %ebx, %eax
194 movl 20(%ebp), %ecx
195 xorl %esi, %eax
196 xorl %esi, %edx
197 xorl %ecx, %edx
198 andl $0xfcfcfcfc, %eax
199 xorl %ebx, %ebx
200 andl $0xcfcfcfcf, %edx
201 xorl %ecx, %ecx
202 movb %al, %bl
203 movb %ah, %cl
204 rorl $4, %edx
205 movl des_SPtrans(%ebx),%ebp
206 movb %dl, %bl
207 xorl %ebp, %edi
208 movl 0x200+des_SPtrans(%ecx),%ebp
209 xorl %ebp, %edi
210 movb %dh, %cl
211 shrl $16, %eax
212 movl 0x100+des_SPtrans(%ebx),%ebp
213 xorl %ebp, %edi
214 movb %ah, %bl
215 shrl $16, %edx
216 movl 0x300+des_SPtrans(%ecx),%ebp
217 xorl %ebp, %edi
218 movl 28(%esp), %ebp
219 movb %dh, %cl
220 andl $0xff, %eax
221 andl $0xff, %edx
222 movl 0x600+des_SPtrans(%ebx),%ebx
223 xorl %ebx, %edi
224 movl 0x700+des_SPtrans(%ecx),%ebx
225 xorl %ebx, %edi
226 movl 0x400+des_SPtrans(%eax),%ebx
227 xorl %ebx, %edi
228 movl 0x500+des_SPtrans(%edx),%ebx
229 xorl %ebx, %edi
230
231 /* Round 3 */
232 movl 32(%esp), %eax
233 movl %edi, %edx
234 shrl $16, %edx
235 movl 36(%esp), %ecx
236 xorl %edi, %edx
237 andl %edx, %eax
238 andl %ecx, %edx
239 movl %eax, %ebx
240 sall $16, %ebx
241 movl %edx, %ecx
242 sall $16, %ecx
243 xorl %ebx, %eax
244 xorl %ecx, %edx
245 movl 24(%ebp), %ebx
246 xorl %ebx, %eax
247 movl 28(%ebp), %ecx
248 xorl %edi, %eax
249 xorl %edi, %edx
250 xorl %ecx, %edx
251 andl $0xfcfcfcfc, %eax
252 xorl %ebx, %ebx
253 andl $0xcfcfcfcf, %edx
254 xorl %ecx, %ecx
255 movb %al, %bl
256 movb %ah, %cl
257 rorl $4, %edx
258 movl des_SPtrans(%ebx),%ebp
259 movb %dl, %bl
260 xorl %ebp, %esi
261 movl 0x200+des_SPtrans(%ecx),%ebp
262 xorl %ebp, %esi
263 movb %dh, %cl
264 shrl $16, %eax
265 movl 0x100+des_SPtrans(%ebx),%ebp
266 xorl %ebp, %esi
267 movb %ah, %bl
268 shrl $16, %edx
269 movl 0x300+des_SPtrans(%ecx),%ebp
270 xorl %ebp, %esi
271 movl 28(%esp), %ebp
272 movb %dh, %cl
273 andl $0xff, %eax
274 andl $0xff, %edx
275 movl 0x600+des_SPtrans(%ebx),%ebx
276 xorl %ebx, %esi
277 movl 0x700+des_SPtrans(%ecx),%ebx
278 xorl %ebx, %esi
279 movl 0x400+des_SPtrans(%eax),%ebx
280 xorl %ebx, %esi
281 movl 0x500+des_SPtrans(%edx),%ebx
282 xorl %ebx, %esi
283
284 /* Round 4 */
285 movl 32(%esp), %eax
286 movl %esi, %edx
287 shrl $16, %edx
288 movl 36(%esp), %ecx
289 xorl %esi, %edx
290 andl %edx, %eax
291 andl %ecx, %edx
292 movl %eax, %ebx
293 sall $16, %ebx
294 movl %edx, %ecx
295 sall $16, %ecx
296 xorl %ebx, %eax
297 xorl %ecx, %edx
298 movl 32(%ebp), %ebx
299 xorl %ebx, %eax
300 movl 36(%ebp), %ecx
301 xorl %esi, %eax
302 xorl %esi, %edx
303 xorl %ecx, %edx
304 andl $0xfcfcfcfc, %eax
305 xorl %ebx, %ebx
306 andl $0xcfcfcfcf, %edx
307 xorl %ecx, %ecx
308 movb %al, %bl
309 movb %ah, %cl
310 rorl $4, %edx
311 movl des_SPtrans(%ebx),%ebp
312 movb %dl, %bl
313 xorl %ebp, %edi
314 movl 0x200+des_SPtrans(%ecx),%ebp
315 xorl %ebp, %edi
316 movb %dh, %cl
317 shrl $16, %eax
318 movl 0x100+des_SPtrans(%ebx),%ebp
319 xorl %ebp, %edi
320 movb %ah, %bl
321 shrl $16, %edx
322 movl 0x300+des_SPtrans(%ecx),%ebp
323 xorl %ebp, %edi
324 movl 28(%esp), %ebp
325 movb %dh, %cl
326 andl $0xff, %eax
327 andl $0xff, %edx
328 movl 0x600+des_SPtrans(%ebx),%ebx
329 xorl %ebx, %edi
330 movl 0x700+des_SPtrans(%ecx),%ebx
331 xorl %ebx, %edi
332 movl 0x400+des_SPtrans(%eax),%ebx
333 xorl %ebx, %edi
334 movl 0x500+des_SPtrans(%edx),%ebx
335 xorl %ebx, %edi
336
337 /* Round 5 */
338 movl 32(%esp), %eax
339 movl %edi, %edx
340 shrl $16, %edx
341 movl 36(%esp), %ecx
342 xorl %edi, %edx
343 andl %edx, %eax
344 andl %ecx, %edx
345 movl %eax, %ebx
346 sall $16, %ebx
347 movl %edx, %ecx
348 sall $16, %ecx
349 xorl %ebx, %eax
350 xorl %ecx, %edx
351 movl 40(%ebp), %ebx
352 xorl %ebx, %eax
353 movl 44(%ebp), %ecx
354 xorl %edi, %eax
355 xorl %edi, %edx
356 xorl %ecx, %edx
357 andl $0xfcfcfcfc, %eax
358 xorl %ebx, %ebx
359 andl $0xcfcfcfcf, %edx
360 xorl %ecx, %ecx
361 movb %al, %bl
362 movb %ah, %cl
363 rorl $4, %edx
364 movl des_SPtrans(%ebx),%ebp
365 movb %dl, %bl
366 xorl %ebp, %esi
367 movl 0x200+des_SPtrans(%ecx),%ebp
368 xorl %ebp, %esi
369 movb %dh, %cl
370 shrl $16, %eax
371 movl 0x100+des_SPtrans(%ebx),%ebp
372 xorl %ebp, %esi
373 movb %ah, %bl
374 shrl $16, %edx
375 movl 0x300+des_SPtrans(%ecx),%ebp
376 xorl %ebp, %esi
377 movl 28(%esp), %ebp
378 movb %dh, %cl
379 andl $0xff, %eax
380 andl $0xff, %edx
381 movl 0x600+des_SPtrans(%ebx),%ebx
382 xorl %ebx, %esi
383 movl 0x700+des_SPtrans(%ecx),%ebx
384 xorl %ebx, %esi
385 movl 0x400+des_SPtrans(%eax),%ebx
386 xorl %ebx, %esi
387 movl 0x500+des_SPtrans(%edx),%ebx
388 xorl %ebx, %esi
389
390 /* Round 6 */
391 movl 32(%esp), %eax
392 movl %esi, %edx
393 shrl $16, %edx
394 movl 36(%esp), %ecx
395 xorl %esi, %edx
396 andl %edx, %eax
397 andl %ecx, %edx
398 movl %eax, %ebx
399 sall $16, %ebx
400 movl %edx, %ecx
401 sall $16, %ecx
402 xorl %ebx, %eax
403 xorl %ecx, %edx
404 movl 48(%ebp), %ebx
405 xorl %ebx, %eax
406 movl 52(%ebp), %ecx
407 xorl %esi, %eax
408 xorl %esi, %edx
409 xorl %ecx, %edx
410 andl $0xfcfcfcfc, %eax
411 xorl %ebx, %ebx
412 andl $0xcfcfcfcf, %edx
413 xorl %ecx, %ecx
414 movb %al, %bl
415 movb %ah, %cl
416 rorl $4, %edx
417 movl des_SPtrans(%ebx),%ebp
418 movb %dl, %bl
419 xorl %ebp, %edi
420 movl 0x200+des_SPtrans(%ecx),%ebp
421 xorl %ebp, %edi
422 movb %dh, %cl
423 shrl $16, %eax
424 movl 0x100+des_SPtrans(%ebx),%ebp
425 xorl %ebp, %edi
426 movb %ah, %bl
427 shrl $16, %edx
428 movl 0x300+des_SPtrans(%ecx),%ebp
429 xorl %ebp, %edi
430 movl 28(%esp), %ebp
431 movb %dh, %cl
432 andl $0xff, %eax
433 andl $0xff, %edx
434 movl 0x600+des_SPtrans(%ebx),%ebx
435 xorl %ebx, %edi
436 movl 0x700+des_SPtrans(%ecx),%ebx
437 xorl %ebx, %edi
438 movl 0x400+des_SPtrans(%eax),%ebx
439 xorl %ebx, %edi
440 movl 0x500+des_SPtrans(%edx),%ebx
441 xorl %ebx, %edi
442
443 /* Round 7 */
444 movl 32(%esp), %eax
445 movl %edi, %edx
446 shrl $16, %edx
447 movl 36(%esp), %ecx
448 xorl %edi, %edx
449 andl %edx, %eax
450 andl %ecx, %edx
451 movl %eax, %ebx
452 sall $16, %ebx
453 movl %edx, %ecx
454 sall $16, %ecx
455 xorl %ebx, %eax
456 xorl %ecx, %edx
457 movl 56(%ebp), %ebx
458 xorl %ebx, %eax
459 movl 60(%ebp), %ecx
460 xorl %edi, %eax
461 xorl %edi, %edx
462 xorl %ecx, %edx
463 andl $0xfcfcfcfc, %eax
464 xorl %ebx, %ebx
465 andl $0xcfcfcfcf, %edx
466 xorl %ecx, %ecx
467 movb %al, %bl
468 movb %ah, %cl
469 rorl $4, %edx
470 movl des_SPtrans(%ebx),%ebp
471 movb %dl, %bl
472 xorl %ebp, %esi
473 movl 0x200+des_SPtrans(%ecx),%ebp
474 xorl %ebp, %esi
475 movb %dh, %cl
476 shrl $16, %eax
477 movl 0x100+des_SPtrans(%ebx),%ebp
478 xorl %ebp, %esi
479 movb %ah, %bl
480 shrl $16, %edx
481 movl 0x300+des_SPtrans(%ecx),%ebp
482 xorl %ebp, %esi
483 movl 28(%esp), %ebp
484 movb %dh, %cl
485 andl $0xff, %eax
486 andl $0xff, %edx
487 movl 0x600+des_SPtrans(%ebx),%ebx
488 xorl %ebx, %esi
489 movl 0x700+des_SPtrans(%ecx),%ebx
490 xorl %ebx, %esi
491 movl 0x400+des_SPtrans(%eax),%ebx
492 xorl %ebx, %esi
493 movl 0x500+des_SPtrans(%edx),%ebx
494 xorl %ebx, %esi
495
496 /* Round 8 */
497 movl 32(%esp), %eax
498 movl %esi, %edx
499 shrl $16, %edx
500 movl 36(%esp), %ecx
501 xorl %esi, %edx
502 andl %edx, %eax
503 andl %ecx, %edx
504 movl %eax, %ebx
505 sall $16, %ebx
506 movl %edx, %ecx
507 sall $16, %ecx
508 xorl %ebx, %eax
509 xorl %ecx, %edx
510 movl 64(%ebp), %ebx
511 xorl %ebx, %eax
512 movl 68(%ebp), %ecx
513 xorl %esi, %eax
514 xorl %esi, %edx
515 xorl %ecx, %edx
516 andl $0xfcfcfcfc, %eax
517 xorl %ebx, %ebx
518 andl $0xcfcfcfcf, %edx
519 xorl %ecx, %ecx
520 movb %al, %bl
521 movb %ah, %cl
522 rorl $4, %edx
523 movl des_SPtrans(%ebx),%ebp
524 movb %dl, %bl
525 xorl %ebp, %edi
526 movl 0x200+des_SPtrans(%ecx),%ebp
527 xorl %ebp, %edi
528 movb %dh, %cl
529 shrl $16, %eax
530 movl 0x100+des_SPtrans(%ebx),%ebp
531 xorl %ebp, %edi
532 movb %ah, %bl
533 shrl $16, %edx
534 movl 0x300+des_SPtrans(%ecx),%ebp
535 xorl %ebp, %edi
536 movl 28(%esp), %ebp
537 movb %dh, %cl
538 andl $0xff, %eax
539 andl $0xff, %edx
540 movl 0x600+des_SPtrans(%ebx),%ebx
541 xorl %ebx, %edi
542 movl 0x700+des_SPtrans(%ecx),%ebx
543 xorl %ebx, %edi
544 movl 0x400+des_SPtrans(%eax),%ebx
545 xorl %ebx, %edi
546 movl 0x500+des_SPtrans(%edx),%ebx
547 xorl %ebx, %edi
548
549 /* Round 9 */
550 movl 32(%esp), %eax
551 movl %edi, %edx
552 shrl $16, %edx
553 movl 36(%esp), %ecx
554 xorl %edi, %edx
555 andl %edx, %eax
556 andl %ecx, %edx
557 movl %eax, %ebx
558 sall $16, %ebx
559 movl %edx, %ecx
560 sall $16, %ecx
561 xorl %ebx, %eax
562 xorl %ecx, %edx
563 movl 72(%ebp), %ebx
564 xorl %ebx, %eax
565 movl 76(%ebp), %ecx
566 xorl %edi, %eax
567 xorl %edi, %edx
568 xorl %ecx, %edx
569 andl $0xfcfcfcfc, %eax
570 xorl %ebx, %ebx
571 andl $0xcfcfcfcf, %edx
572 xorl %ecx, %ecx
573 movb %al, %bl
574 movb %ah, %cl
575 rorl $4, %edx
576 movl des_SPtrans(%ebx),%ebp
577 movb %dl, %bl
578 xorl %ebp, %esi
579 movl 0x200+des_SPtrans(%ecx),%ebp
580 xorl %ebp, %esi
581 movb %dh, %cl
582 shrl $16, %eax
583 movl 0x100+des_SPtrans(%ebx),%ebp
584 xorl %ebp, %esi
585 movb %ah, %bl
586 shrl $16, %edx
587 movl 0x300+des_SPtrans(%ecx),%ebp
588 xorl %ebp, %esi
589 movl 28(%esp), %ebp
590 movb %dh, %cl
591 andl $0xff, %eax
592 andl $0xff, %edx
593 movl 0x600+des_SPtrans(%ebx),%ebx
594 xorl %ebx, %esi
595 movl 0x700+des_SPtrans(%ecx),%ebx
596 xorl %ebx, %esi
597 movl 0x400+des_SPtrans(%eax),%ebx
598 xorl %ebx, %esi
599 movl 0x500+des_SPtrans(%edx),%ebx
600 xorl %ebx, %esi
601
602 /* Round 10 */
603 movl 32(%esp), %eax
604 movl %esi, %edx
605 shrl $16, %edx
606 movl 36(%esp), %ecx
607 xorl %esi, %edx
608 andl %edx, %eax
609 andl %ecx, %edx
610 movl %eax, %ebx
611 sall $16, %ebx
612 movl %edx, %ecx
613 sall $16, %ecx
614 xorl %ebx, %eax
615 xorl %ecx, %edx
616 movl 80(%ebp), %ebx
617 xorl %ebx, %eax
618 movl 84(%ebp), %ecx
619 xorl %esi, %eax
620 xorl %esi, %edx
621 xorl %ecx, %edx
622 andl $0xfcfcfcfc, %eax
623 xorl %ebx, %ebx
624 andl $0xcfcfcfcf, %edx
625 xorl %ecx, %ecx
626 movb %al, %bl
627 movb %ah, %cl
628 rorl $4, %edx
629 movl des_SPtrans(%ebx),%ebp
630 movb %dl, %bl
631 xorl %ebp, %edi
632 movl 0x200+des_SPtrans(%ecx),%ebp
633 xorl %ebp, %edi
634 movb %dh, %cl
635 shrl $16, %eax
636 movl 0x100+des_SPtrans(%ebx),%ebp
637 xorl %ebp, %edi
638 movb %ah, %bl
639 shrl $16, %edx
640 movl 0x300+des_SPtrans(%ecx),%ebp
641 xorl %ebp, %edi
642 movl 28(%esp), %ebp
643 movb %dh, %cl
644 andl $0xff, %eax
645 andl $0xff, %edx
646 movl 0x600+des_SPtrans(%ebx),%ebx
647 xorl %ebx, %edi
648 movl 0x700+des_SPtrans(%ecx),%ebx
649 xorl %ebx, %edi
650 movl 0x400+des_SPtrans(%eax),%ebx
651 xorl %ebx, %edi
652 movl 0x500+des_SPtrans(%edx),%ebx
653 xorl %ebx, %edi
654
655 /* Round 11 */
656 movl 32(%esp), %eax
657 movl %edi, %edx
658 shrl $16, %edx
659 movl 36(%esp), %ecx
660 xorl %edi, %edx
661 andl %edx, %eax
662 andl %ecx, %edx
663 movl %eax, %ebx
664 sall $16, %ebx
665 movl %edx, %ecx
666 sall $16, %ecx
667 xorl %ebx, %eax
668 xorl %ecx, %edx
669 movl 88(%ebp), %ebx
670 xorl %ebx, %eax
671 movl 92(%ebp), %ecx
672 xorl %edi, %eax
673 xorl %edi, %edx
674 xorl %ecx, %edx
675 andl $0xfcfcfcfc, %eax
676 xorl %ebx, %ebx
677 andl $0xcfcfcfcf, %edx
678 xorl %ecx, %ecx
679 movb %al, %bl
680 movb %ah, %cl
681 rorl $4, %edx
682 movl des_SPtrans(%ebx),%ebp
683 movb %dl, %bl
684 xorl %ebp, %esi
685 movl 0x200+des_SPtrans(%ecx),%ebp
686 xorl %ebp, %esi
687 movb %dh, %cl
688 shrl $16, %eax
689 movl 0x100+des_SPtrans(%ebx),%ebp
690 xorl %ebp, %esi
691 movb %ah, %bl
692 shrl $16, %edx
693 movl 0x300+des_SPtrans(%ecx),%ebp
694 xorl %ebp, %esi
695 movl 28(%esp), %ebp
696 movb %dh, %cl
697 andl $0xff, %eax
698 andl $0xff, %edx
699 movl 0x600+des_SPtrans(%ebx),%ebx
700 xorl %ebx, %esi
701 movl 0x700+des_SPtrans(%ecx),%ebx
702 xorl %ebx, %esi
703 movl 0x400+des_SPtrans(%eax),%ebx
704 xorl %ebx, %esi
705 movl 0x500+des_SPtrans(%edx),%ebx
706 xorl %ebx, %esi
707
708 /* Round 12 */
709 movl 32(%esp), %eax
710 movl %esi, %edx
711 shrl $16, %edx
712 movl 36(%esp), %ecx
713 xorl %esi, %edx
714 andl %edx, %eax
715 andl %ecx, %edx
716 movl %eax, %ebx
717 sall $16, %ebx
718 movl %edx, %ecx
719 sall $16, %ecx
720 xorl %ebx, %eax
721 xorl %ecx, %edx
722 movl 96(%ebp), %ebx
723 xorl %ebx, %eax
724 movl 100(%ebp), %ecx
725 xorl %esi, %eax
726 xorl %esi, %edx
727 xorl %ecx, %edx
728 andl $0xfcfcfcfc, %eax
729 xorl %ebx, %ebx
730 andl $0xcfcfcfcf, %edx
731 xorl %ecx, %ecx
732 movb %al, %bl
733 movb %ah, %cl
734 rorl $4, %edx
735 movl des_SPtrans(%ebx),%ebp
736 movb %dl, %bl
737 xorl %ebp, %edi
738 movl 0x200+des_SPtrans(%ecx),%ebp
739 xorl %ebp, %edi
740 movb %dh, %cl
741 shrl $16, %eax
742 movl 0x100+des_SPtrans(%ebx),%ebp
743 xorl %ebp, %edi
744 movb %ah, %bl
745 shrl $16, %edx
746 movl 0x300+des_SPtrans(%ecx),%ebp
747 xorl %ebp, %edi
748 movl 28(%esp), %ebp
749 movb %dh, %cl
750 andl $0xff, %eax
751 andl $0xff, %edx
752 movl 0x600+des_SPtrans(%ebx),%ebx
753 xorl %ebx, %edi
754 movl 0x700+des_SPtrans(%ecx),%ebx
755 xorl %ebx, %edi
756 movl 0x400+des_SPtrans(%eax),%ebx
757 xorl %ebx, %edi
758 movl 0x500+des_SPtrans(%edx),%ebx
759 xorl %ebx, %edi
760
761 /* Round 13 */
762 movl 32(%esp), %eax
763 movl %edi, %edx
764 shrl $16, %edx
765 movl 36(%esp), %ecx
766 xorl %edi, %edx
767 andl %edx, %eax
768 andl %ecx, %edx
769 movl %eax, %ebx
770 sall $16, %ebx
771 movl %edx, %ecx
772 sall $16, %ecx
773 xorl %ebx, %eax
774 xorl %ecx, %edx
775 movl 104(%ebp), %ebx
776 xorl %ebx, %eax
777 movl 108(%ebp), %ecx
778 xorl %edi, %eax
779 xorl %edi, %edx
780 xorl %ecx, %edx
781 andl $0xfcfcfcfc, %eax
782 xorl %ebx, %ebx
783 andl $0xcfcfcfcf, %edx
784 xorl %ecx, %ecx
785 movb %al, %bl
786 movb %ah, %cl
787 rorl $4, %edx
788 movl des_SPtrans(%ebx),%ebp
789 movb %dl, %bl
790 xorl %ebp, %esi
791 movl 0x200+des_SPtrans(%ecx),%ebp
792 xorl %ebp, %esi
793 movb %dh, %cl
794 shrl $16, %eax
795 movl 0x100+des_SPtrans(%ebx),%ebp
796 xorl %ebp, %esi
797 movb %ah, %bl
798 shrl $16, %edx
799 movl 0x300+des_SPtrans(%ecx),%ebp
800 xorl %ebp, %esi
801 movl 28(%esp), %ebp
802 movb %dh, %cl
803 andl $0xff, %eax
804 andl $0xff, %edx
805 movl 0x600+des_SPtrans(%ebx),%ebx
806 xorl %ebx, %esi
807 movl 0x700+des_SPtrans(%ecx),%ebx
808 xorl %ebx, %esi
809 movl 0x400+des_SPtrans(%eax),%ebx
810 xorl %ebx, %esi
811 movl 0x500+des_SPtrans(%edx),%ebx
812 xorl %ebx, %esi
813
814 /* Round 14 */
815 movl 32(%esp), %eax
816 movl %esi, %edx
817 shrl $16, %edx
818 movl 36(%esp), %ecx
819 xorl %esi, %edx
820 andl %edx, %eax
821 andl %ecx, %edx
822 movl %eax, %ebx
823 sall $16, %ebx
824 movl %edx, %ecx
825 sall $16, %ecx
826 xorl %ebx, %eax
827 xorl %ecx, %edx
828 movl 112(%ebp), %ebx
829 xorl %ebx, %eax
830 movl 116(%ebp), %ecx
831 xorl %esi, %eax
832 xorl %esi, %edx
833 xorl %ecx, %edx
834 andl $0xfcfcfcfc, %eax
835 xorl %ebx, %ebx
836 andl $0xcfcfcfcf, %edx
837 xorl %ecx, %ecx
838 movb %al, %bl
839 movb %ah, %cl
840 rorl $4, %edx
841 movl des_SPtrans(%ebx),%ebp
842 movb %dl, %bl
843 xorl %ebp, %edi
844 movl 0x200+des_SPtrans(%ecx),%ebp
845 xorl %ebp, %edi
846 movb %dh, %cl
847 shrl $16, %eax
848 movl 0x100+des_SPtrans(%ebx),%ebp
849 xorl %ebp, %edi
850 movb %ah, %bl
851 shrl $16, %edx
852 movl 0x300+des_SPtrans(%ecx),%ebp
853 xorl %ebp, %edi
854 movl 28(%esp), %ebp
855 movb %dh, %cl
856 andl $0xff, %eax
857 andl $0xff, %edx
858 movl 0x600+des_SPtrans(%ebx),%ebx
859 xorl %ebx, %edi
860 movl 0x700+des_SPtrans(%ecx),%ebx
861 xorl %ebx, %edi
862 movl 0x400+des_SPtrans(%eax),%ebx
863 xorl %ebx, %edi
864 movl 0x500+des_SPtrans(%edx),%ebx
865 xorl %ebx, %edi
866
867 /* Round 15 */
868 movl 32(%esp), %eax
869 movl %edi, %edx
870 shrl $16, %edx
871 movl 36(%esp), %ecx
872 xorl %edi, %edx
873 andl %edx, %eax
874 andl %ecx, %edx
875 movl %eax, %ebx
876 sall $16, %ebx
877 movl %edx, %ecx
878 sall $16, %ecx
879 xorl %ebx, %eax
880 xorl %ecx, %edx
881 movl 120(%ebp), %ebx
882 xorl %ebx, %eax
883 movl 124(%ebp), %ecx
884 xorl %edi, %eax
885 xorl %edi, %edx
886 xorl %ecx, %edx
887 andl $0xfcfcfcfc, %eax
888 xorl %ebx, %ebx
889 andl $0xcfcfcfcf, %edx
890 xorl %ecx, %ecx
891 movb %al, %bl
892 movb %ah, %cl
893 rorl $4, %edx
894 movl des_SPtrans(%ebx),%ebp
895 movb %dl, %bl
896 xorl %ebp, %esi
897 movl 0x200+des_SPtrans(%ecx),%ebp
898 xorl %ebp, %esi
899 movb %dh, %cl
900 shrl $16, %eax
901 movl 0x100+des_SPtrans(%ebx),%ebp
902 xorl %ebp, %esi
903 movb %ah, %bl
904 shrl $16, %edx
905 movl 0x300+des_SPtrans(%ecx),%ebp
906 xorl %ebp, %esi
907 movl 28(%esp), %ebp
908 movb %dh, %cl
909 andl $0xff, %eax
910 andl $0xff, %edx
911 movl 0x600+des_SPtrans(%ebx),%ebx
912 xorl %ebx, %esi
913 movl 0x700+des_SPtrans(%ecx),%ebx
914 xorl %ebx, %esi
915 movl 0x400+des_SPtrans(%eax),%ebx
916 xorl %ebx, %esi
917 movl 0x500+des_SPtrans(%edx),%ebx
918 xorl %ebx, %esi
919 movl (%esp), %ebx
920 movl %edi, %eax
921 decl %ebx
922 movl %esi, %edi
923 movl %eax, %esi
924 movl %ebx, (%esp)
925 jnz .L000start
926
927 /* FP */
928 movl 24(%esp), %edx
929.byte 209
930.byte 207 /* rorl $1 %edi */
931 movl %esi, %eax
932 xorl %edi, %esi
933 andl $0xaaaaaaaa, %esi
934 xorl %esi, %eax
935 xorl %esi, %edi
936
937 roll $23, %eax
938 movl %eax, %esi
939 xorl %edi, %eax
940 andl $0x03fc03fc, %eax
941 xorl %eax, %esi
942 xorl %eax, %edi
943
944 roll $10, %esi
945 movl %esi, %eax
946 xorl %edi, %esi
947 andl $0x33333333, %esi
948 xorl %esi, %eax
949 xorl %esi, %edi
950
951 roll $18, %edi
952 movl %edi, %esi
953 xorl %eax, %edi
954 andl $0xfff0000f, %edi
955 xorl %edi, %esi
956 xorl %edi, %eax
957
958 roll $12, %esi
959 movl %esi, %edi
960 xorl %eax, %esi
961 andl $0xf0f0f0f0, %esi
962 xorl %esi, %edi
963 xorl %esi, %eax
964
965 rorl $4, %eax
966 movl %eax, (%edx)
967 movl %edi, 4(%edx)
968 popl %ecx
969 popl %edi
970 popl %esi
971 popl %ebx
972 popl %ebp
973 ret
974.fcrypt_body_end:
975 SIZE(fcrypt_body,.fcrypt_body_end-fcrypt_body)
976.ident "fcrypt_body"