diff options
author | cvs2svn <admin@example.com> | 1998-10-05 20:13:17 +0000 |
---|---|---|
committer | cvs2svn <admin@example.com> | 1998-10-05 20:13:17 +0000 |
commit | e82f18fab47b698d93971f576f962a3068132912 (patch) | |
tree | 681519717892864935c3d0533cf171098afa649a /src/lib/libcrypto/des/asm/yx86unix.cpp | |
parent | 536c76cbb863bab152f19842ab88772c01e922c7 (diff) | |
download | openbsd-SSLeay_0_9_0b.tar.gz openbsd-SSLeay_0_9_0b.tar.bz2 openbsd-SSLeay_0_9_0b.zip |
This commit was manufactured by cvs2git to create tag 'SSLeay_0_9_0b'.SSLeay_0_9_0b
Diffstat (limited to 'src/lib/libcrypto/des/asm/yx86unix.cpp')
-rw-r--r-- | src/lib/libcrypto/des/asm/yx86unix.cpp | 976 |
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 | ||
37 | You need to define one of | ||
38 | ELF - elf systems - linux-elf, NetBSD and DG-UX | ||
39 | OUT - a.out systems - linux-a.out and FreeBSD | ||
40 | SOL - solaris systems, which are elf with strange comment lines | ||
41 | BSDI - 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" | ||
53 | gcc2_compiled.: | ||
54 | .text | ||
55 | .align ALIGN | ||
56 | .globl fcrypt_body | ||
57 | TYPE(fcrypt_body,@function) | ||
58 | fcrypt_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" | ||