1 /* $FreeBSD$ */
2 /* Do not modify. This file is auto-generated from des-586.pl. */
3 #ifdef PIC
4 .text
5 .globl DES_SPtrans
6 .type _x86_DES_encrypt,@function
7 .align 16
8 _x86_DES_encrypt:
9 pushl %ecx
10
11 movl (%ecx),%eax
12 xorl %ebx,%ebx
13 movl 4(%ecx),%edx
14 xorl %esi,%eax
15 xorl %ecx,%ecx
16 xorl %esi,%edx
17 andl $0xfcfcfcfc,%eax
18 andl $0xcfcfcfcf,%edx
19 movb %al,%bl
20 movb %ah,%cl
21 rorl $4,%edx
22 xorl (%ebp,%ebx,1),%edi
23 movb %dl,%bl
24 xorl 0x200(%ebp,%ecx,1),%edi
25 movb %dh,%cl
26 shrl $16,%eax
27 xorl 0x100(%ebp,%ebx,1),%edi
28 movb %ah,%bl
29 shrl $16,%edx
30 xorl 0x300(%ebp,%ecx,1),%edi
31 movb %dh,%cl
32 andl $0xff,%eax
33 andl $0xff,%edx
34 xorl 0x600(%ebp,%ebx,1),%edi
35 xorl 0x700(%ebp,%ecx,1),%edi
36 movl (%esp),%ecx
37 xorl 0x400(%ebp,%eax,1),%edi
38 xorl 0x500(%ebp,%edx,1),%edi
39
40 movl 8(%ecx),%eax
41 xorl %ebx,%ebx
42 movl 12(%ecx),%edx
43 xorl %edi,%eax
44 xorl %ecx,%ecx
45 xorl %edi,%edx
46 andl $0xfcfcfcfc,%eax
47 andl $0xcfcfcfcf,%edx
48 movb %al,%bl
49 movb %ah,%cl
50 rorl $4,%edx
51 xorl (%ebp,%ebx,1),%esi
52 movb %dl,%bl
53 xorl 0x200(%ebp,%ecx,1),%esi
54 movb %dh,%cl
55 shrl $16,%eax
56 xorl 0x100(%ebp,%ebx,1),%esi
57 movb %ah,%bl
58 shrl $16,%edx
59 xorl 0x300(%ebp,%ecx,1),%esi
60 movb %dh,%cl
61 andl $0xff,%eax
62 andl $0xff,%edx
63 xorl 0x600(%ebp,%ebx,1),%esi
64 xorl 0x700(%ebp,%ecx,1),%esi
65 movl (%esp),%ecx
66 xorl 0x400(%ebp,%eax,1),%esi
67 xorl 0x500(%ebp,%edx,1),%esi
68
69 movl 16(%ecx),%eax
70 xorl %ebx,%ebx
71 movl 20(%ecx),%edx
72 xorl %esi,%eax
73 xorl %ecx,%ecx
74 xorl %esi,%edx
75 andl $0xfcfcfcfc,%eax
76 andl $0xcfcfcfcf,%edx
77 movb %al,%bl
78 movb %ah,%cl
79 rorl $4,%edx
80 xorl (%ebp,%ebx,1),%edi
81 movb %dl,%bl
82 xorl 0x200(%ebp,%ecx,1),%edi
83 movb %dh,%cl
84 shrl $16,%eax
85 xorl 0x100(%ebp,%ebx,1),%edi
86 movb %ah,%bl
87 shrl $16,%edx
88 xorl 0x300(%ebp,%ecx,1),%edi
89 movb %dh,%cl
90 andl $0xff,%eax
91 andl $0xff,%edx
92 xorl 0x600(%ebp,%ebx,1),%edi
93 xorl 0x700(%ebp,%ecx,1),%edi
94 movl (%esp),%ecx
95 xorl 0x400(%ebp,%eax,1),%edi
96 xorl 0x500(%ebp,%edx,1),%edi
97
98 movl 24(%ecx),%eax
99 xorl %ebx,%ebx
100 movl 28(%ecx),%edx
101 xorl %edi,%eax
102 xorl %ecx,%ecx
103 xorl %edi,%edx
104 andl $0xfcfcfcfc,%eax
105 andl $0xcfcfcfcf,%edx
106 movb %al,%bl
107 movb %ah,%cl
108 rorl $4,%edx
109 xorl (%ebp,%ebx,1),%esi
110 movb %dl,%bl
111 xorl 0x200(%ebp,%ecx,1),%esi
112 movb %dh,%cl
113 shrl $16,%eax
114 xorl 0x100(%ebp,%ebx,1),%esi
115 movb %ah,%bl
116 shrl $16,%edx
117 xorl 0x300(%ebp,%ecx,1),%esi
118 movb %dh,%cl
119 andl $0xff,%eax
120 andl $0xff,%edx
121 xorl 0x600(%ebp,%ebx,1),%esi
122 xorl 0x700(%ebp,%ecx,1),%esi
123 movl (%esp),%ecx
124 xorl 0x400(%ebp,%eax,1),%esi
125 xorl 0x500(%ebp,%edx,1),%esi
126
127 movl 32(%ecx),%eax
128 xorl %ebx,%ebx
129 movl 36(%ecx),%edx
130 xorl %esi,%eax
131 xorl %ecx,%ecx
132 xorl %esi,%edx
133 andl $0xfcfcfcfc,%eax
134 andl $0xcfcfcfcf,%edx
135 movb %al,%bl
136 movb %ah,%cl
137 rorl $4,%edx
138 xorl (%ebp,%ebx,1),%edi
139 movb %dl,%bl
140 xorl 0x200(%ebp,%ecx,1),%edi
141 movb %dh,%cl
142 shrl $16,%eax
143 xorl 0x100(%ebp,%ebx,1),%edi
144 movb %ah,%bl
145 shrl $16,%edx
146 xorl 0x300(%ebp,%ecx,1),%edi
147 movb %dh,%cl
148 andl $0xff,%eax
149 andl $0xff,%edx
150 xorl 0x600(%ebp,%ebx,1),%edi
151 xorl 0x700(%ebp,%ecx,1),%edi
152 movl (%esp),%ecx
153 xorl 0x400(%ebp,%eax,1),%edi
154 xorl 0x500(%ebp,%edx,1),%edi
155
156 movl 40(%ecx),%eax
157 xorl %ebx,%ebx
158 movl 44(%ecx),%edx
159 xorl %edi,%eax
160 xorl %ecx,%ecx
161 xorl %edi,%edx
162 andl $0xfcfcfcfc,%eax
163 andl $0xcfcfcfcf,%edx
164 movb %al,%bl
165 movb %ah,%cl
166 rorl $4,%edx
167 xorl (%ebp,%ebx,1),%esi
168 movb %dl,%bl
169 xorl 0x200(%ebp,%ecx,1),%esi
170 movb %dh,%cl
171 shrl $16,%eax
172 xorl 0x100(%ebp,%ebx,1),%esi
173 movb %ah,%bl
174 shrl $16,%edx
175 xorl 0x300(%ebp,%ecx,1),%esi
176 movb %dh,%cl
177 andl $0xff,%eax
178 andl $0xff,%edx
179 xorl 0x600(%ebp,%ebx,1),%esi
180 xorl 0x700(%ebp,%ecx,1),%esi
181 movl (%esp),%ecx
182 xorl 0x400(%ebp,%eax,1),%esi
183 xorl 0x500(%ebp,%edx,1),%esi
184
185 movl 48(%ecx),%eax
186 xorl %ebx,%ebx
187 movl 52(%ecx),%edx
188 xorl %esi,%eax
189 xorl %ecx,%ecx
190 xorl %esi,%edx
191 andl $0xfcfcfcfc,%eax
192 andl $0xcfcfcfcf,%edx
193 movb %al,%bl
194 movb %ah,%cl
195 rorl $4,%edx
196 xorl (%ebp,%ebx,1),%edi
197 movb %dl,%bl
198 xorl 0x200(%ebp,%ecx,1),%edi
199 movb %dh,%cl
200 shrl $16,%eax
201 xorl 0x100(%ebp,%ebx,1),%edi
202 movb %ah,%bl
203 shrl $16,%edx
204 xorl 0x300(%ebp,%ecx,1),%edi
205 movb %dh,%cl
206 andl $0xff,%eax
207 andl $0xff,%edx
208 xorl 0x600(%ebp,%ebx,1),%edi
209 xorl 0x700(%ebp,%ecx,1),%edi
210 movl (%esp),%ecx
211 xorl 0x400(%ebp,%eax,1),%edi
212 xorl 0x500(%ebp,%edx,1),%edi
213
214 movl 56(%ecx),%eax
215 xorl %ebx,%ebx
216 movl 60(%ecx),%edx
217 xorl %edi,%eax
218 xorl %ecx,%ecx
219 xorl %edi,%edx
220 andl $0xfcfcfcfc,%eax
221 andl $0xcfcfcfcf,%edx
222 movb %al,%bl
223 movb %ah,%cl
224 rorl $4,%edx
225 xorl (%ebp,%ebx,1),%esi
226 movb %dl,%bl
227 xorl 0x200(%ebp,%ecx,1),%esi
228 movb %dh,%cl
229 shrl $16,%eax
230 xorl 0x100(%ebp,%ebx,1),%esi
231 movb %ah,%bl
232 shrl $16,%edx
233 xorl 0x300(%ebp,%ecx,1),%esi
234 movb %dh,%cl
235 andl $0xff,%eax
236 andl $0xff,%edx
237 xorl 0x600(%ebp,%ebx,1),%esi
238 xorl 0x700(%ebp,%ecx,1),%esi
239 movl (%esp),%ecx
240 xorl 0x400(%ebp,%eax,1),%esi
241 xorl 0x500(%ebp,%edx,1),%esi
242
243 movl 64(%ecx),%eax
244 xorl %ebx,%ebx
245 movl 68(%ecx),%edx
246 xorl %esi,%eax
247 xorl %ecx,%ecx
248 xorl %esi,%edx
249 andl $0xfcfcfcfc,%eax
250 andl $0xcfcfcfcf,%edx
251 movb %al,%bl
252 movb %ah,%cl
253 rorl $4,%edx
254 xorl (%ebp,%ebx,1),%edi
255 movb %dl,%bl
256 xorl 0x200(%ebp,%ecx,1),%edi
257 movb %dh,%cl
258 shrl $16,%eax
259 xorl 0x100(%ebp,%ebx,1),%edi
260 movb %ah,%bl
261 shrl $16,%edx
262 xorl 0x300(%ebp,%ecx,1),%edi
263 movb %dh,%cl
264 andl $0xff,%eax
265 andl $0xff,%edx
266 xorl 0x600(%ebp,%ebx,1),%edi
267 xorl 0x700(%ebp,%ecx,1),%edi
268 movl (%esp),%ecx
269 xorl 0x400(%ebp,%eax,1),%edi
270 xorl 0x500(%ebp,%edx,1),%edi
271
272 movl 72(%ecx),%eax
273 xorl %ebx,%ebx
274 movl 76(%ecx),%edx
275 xorl %edi,%eax
276 xorl %ecx,%ecx
277 xorl %edi,%edx
278 andl $0xfcfcfcfc,%eax
279 andl $0xcfcfcfcf,%edx
280 movb %al,%bl
281 movb %ah,%cl
282 rorl $4,%edx
283 xorl (%ebp,%ebx,1),%esi
284 movb %dl,%bl
285 xorl 0x200(%ebp,%ecx,1),%esi
286 movb %dh,%cl
287 shrl $16,%eax
288 xorl 0x100(%ebp,%ebx,1),%esi
289 movb %ah,%bl
290 shrl $16,%edx
291 xorl 0x300(%ebp,%ecx,1),%esi
292 movb %dh,%cl
293 andl $0xff,%eax
294 andl $0xff,%edx
295 xorl 0x600(%ebp,%ebx,1),%esi
296 xorl 0x700(%ebp,%ecx,1),%esi
297 movl (%esp),%ecx
298 xorl 0x400(%ebp,%eax,1),%esi
299 xorl 0x500(%ebp,%edx,1),%esi
300
301 movl 80(%ecx),%eax
302 xorl %ebx,%ebx
303 movl 84(%ecx),%edx
304 xorl %esi,%eax
305 xorl %ecx,%ecx
306 xorl %esi,%edx
307 andl $0xfcfcfcfc,%eax
308 andl $0xcfcfcfcf,%edx
309 movb %al,%bl
310 movb %ah,%cl
311 rorl $4,%edx
312 xorl (%ebp,%ebx,1),%edi
313 movb %dl,%bl
314 xorl 0x200(%ebp,%ecx,1),%edi
315 movb %dh,%cl
316 shrl $16,%eax
317 xorl 0x100(%ebp,%ebx,1),%edi
318 movb %ah,%bl
319 shrl $16,%edx
320 xorl 0x300(%ebp,%ecx,1),%edi
321 movb %dh,%cl
322 andl $0xff,%eax
323 andl $0xff,%edx
324 xorl 0x600(%ebp,%ebx,1),%edi
325 xorl 0x700(%ebp,%ecx,1),%edi
326 movl (%esp),%ecx
327 xorl 0x400(%ebp,%eax,1),%edi
328 xorl 0x500(%ebp,%edx,1),%edi
329
330 movl 88(%ecx),%eax
331 xorl %ebx,%ebx
332 movl 92(%ecx),%edx
333 xorl %edi,%eax
334 xorl %ecx,%ecx
335 xorl %edi,%edx
336 andl $0xfcfcfcfc,%eax
337 andl $0xcfcfcfcf,%edx
338 movb %al,%bl
339 movb %ah,%cl
340 rorl $4,%edx
341 xorl (%ebp,%ebx,1),%esi
342 movb %dl,%bl
343 xorl 0x200(%ebp,%ecx,1),%esi
344 movb %dh,%cl
345 shrl $16,%eax
346 xorl 0x100(%ebp,%ebx,1),%esi
347 movb %ah,%bl
348 shrl $16,%edx
349 xorl 0x300(%ebp,%ecx,1),%esi
350 movb %dh,%cl
351 andl $0xff,%eax
352 andl $0xff,%edx
353 xorl 0x600(%ebp,%ebx,1),%esi
354 xorl 0x700(%ebp,%ecx,1),%esi
355 movl (%esp),%ecx
356 xorl 0x400(%ebp,%eax,1),%esi
357 xorl 0x500(%ebp,%edx,1),%esi
358
359 movl 96(%ecx),%eax
360 xorl %ebx,%ebx
361 movl 100(%ecx),%edx
362 xorl %esi,%eax
363 xorl %ecx,%ecx
364 xorl %esi,%edx
365 andl $0xfcfcfcfc,%eax
366 andl $0xcfcfcfcf,%edx
367 movb %al,%bl
368 movb %ah,%cl
369 rorl $4,%edx
370 xorl (%ebp,%ebx,1),%edi
371 movb %dl,%bl
372 xorl 0x200(%ebp,%ecx,1),%edi
373 movb %dh,%cl
374 shrl $16,%eax
375 xorl 0x100(%ebp,%ebx,1),%edi
376 movb %ah,%bl
377 shrl $16,%edx
378 xorl 0x300(%ebp,%ecx,1),%edi
379 movb %dh,%cl
380 andl $0xff,%eax
381 andl $0xff,%edx
382 xorl 0x600(%ebp,%ebx,1),%edi
383 xorl 0x700(%ebp,%ecx,1),%edi
384 movl (%esp),%ecx
385 xorl 0x400(%ebp,%eax,1),%edi
386 xorl 0x500(%ebp,%edx,1),%edi
387
388 movl 104(%ecx),%eax
389 xorl %ebx,%ebx
390 movl 108(%ecx),%edx
391 xorl %edi,%eax
392 xorl %ecx,%ecx
393 xorl %edi,%edx
394 andl $0xfcfcfcfc,%eax
395 andl $0xcfcfcfcf,%edx
396 movb %al,%bl
397 movb %ah,%cl
398 rorl $4,%edx
399 xorl (%ebp,%ebx,1),%esi
400 movb %dl,%bl
401 xorl 0x200(%ebp,%ecx,1),%esi
402 movb %dh,%cl
403 shrl $16,%eax
404 xorl 0x100(%ebp,%ebx,1),%esi
405 movb %ah,%bl
406 shrl $16,%edx
407 xorl 0x300(%ebp,%ecx,1),%esi
408 movb %dh,%cl
409 andl $0xff,%eax
410 andl $0xff,%edx
411 xorl 0x600(%ebp,%ebx,1),%esi
412 xorl 0x700(%ebp,%ecx,1),%esi
413 movl (%esp),%ecx
414 xorl 0x400(%ebp,%eax,1),%esi
415 xorl 0x500(%ebp,%edx,1),%esi
416
417 movl 112(%ecx),%eax
418 xorl %ebx,%ebx
419 movl 116(%ecx),%edx
420 xorl %esi,%eax
421 xorl %ecx,%ecx
422 xorl %esi,%edx
423 andl $0xfcfcfcfc,%eax
424 andl $0xcfcfcfcf,%edx
425 movb %al,%bl
426 movb %ah,%cl
427 rorl $4,%edx
428 xorl (%ebp,%ebx,1),%edi
429 movb %dl,%bl
430 xorl 0x200(%ebp,%ecx,1),%edi
431 movb %dh,%cl
432 shrl $16,%eax
433 xorl 0x100(%ebp,%ebx,1),%edi
434 movb %ah,%bl
435 shrl $16,%edx
436 xorl 0x300(%ebp,%ecx,1),%edi
437 movb %dh,%cl
438 andl $0xff,%eax
439 andl $0xff,%edx
440 xorl 0x600(%ebp,%ebx,1),%edi
441 xorl 0x700(%ebp,%ecx,1),%edi
442 movl (%esp),%ecx
443 xorl 0x400(%ebp,%eax,1),%edi
444 xorl 0x500(%ebp,%edx,1),%edi
445
446 movl 120(%ecx),%eax
447 xorl %ebx,%ebx
448 movl 124(%ecx),%edx
449 xorl %edi,%eax
450 xorl %ecx,%ecx
451 xorl %edi,%edx
452 andl $0xfcfcfcfc,%eax
453 andl $0xcfcfcfcf,%edx
454 movb %al,%bl
455 movb %ah,%cl
456 rorl $4,%edx
457 xorl (%ebp,%ebx,1),%esi
458 movb %dl,%bl
459 xorl 0x200(%ebp,%ecx,1),%esi
460 movb %dh,%cl
461 shrl $16,%eax
462 xorl 0x100(%ebp,%ebx,1),%esi
463 movb %ah,%bl
464 shrl $16,%edx
465 xorl 0x300(%ebp,%ecx,1),%esi
466 movb %dh,%cl
467 andl $0xff,%eax
468 andl $0xff,%edx
469 xorl 0x600(%ebp,%ebx,1),%esi
470 xorl 0x700(%ebp,%ecx,1),%esi
471 movl (%esp),%ecx
472 xorl 0x400(%ebp,%eax,1),%esi
473 xorl 0x500(%ebp,%edx,1),%esi
474 addl $4,%esp
475 ret
476 .size _x86_DES_encrypt,.-_x86_DES_encrypt
477 .type _x86_DES_decrypt,@function
478 .align 16
479 _x86_DES_decrypt:
480 pushl %ecx
481
482 movl 120(%ecx),%eax
483 xorl %ebx,%ebx
484 movl 124(%ecx),%edx
485 xorl %esi,%eax
486 xorl %ecx,%ecx
487 xorl %esi,%edx
488 andl $0xfcfcfcfc,%eax
489 andl $0xcfcfcfcf,%edx
490 movb %al,%bl
491 movb %ah,%cl
492 rorl $4,%edx
493 xorl (%ebp,%ebx,1),%edi
494 movb %dl,%bl
495 xorl 0x200(%ebp,%ecx,1),%edi
496 movb %dh,%cl
497 shrl $16,%eax
498 xorl 0x100(%ebp,%ebx,1),%edi
499 movb %ah,%bl
500 shrl $16,%edx
501 xorl 0x300(%ebp,%ecx,1),%edi
502 movb %dh,%cl
503 andl $0xff,%eax
504 andl $0xff,%edx
505 xorl 0x600(%ebp,%ebx,1),%edi
506 xorl 0x700(%ebp,%ecx,1),%edi
507 movl (%esp),%ecx
508 xorl 0x400(%ebp,%eax,1),%edi
509 xorl 0x500(%ebp,%edx,1),%edi
510
511 movl 112(%ecx),%eax
512 xorl %ebx,%ebx
513 movl 116(%ecx),%edx
514 xorl %edi,%eax
515 xorl %ecx,%ecx
516 xorl %edi,%edx
517 andl $0xfcfcfcfc,%eax
518 andl $0xcfcfcfcf,%edx
519 movb %al,%bl
520 movb %ah,%cl
521 rorl $4,%edx
522 xorl (%ebp,%ebx,1),%esi
523 movb %dl,%bl
524 xorl 0x200(%ebp,%ecx,1),%esi
525 movb %dh,%cl
526 shrl $16,%eax
527 xorl 0x100(%ebp,%ebx,1),%esi
528 movb %ah,%bl
529 shrl $16,%edx
530 xorl 0x300(%ebp,%ecx,1),%esi
531 movb %dh,%cl
532 andl $0xff,%eax
533 andl $0xff,%edx
534 xorl 0x600(%ebp,%ebx,1),%esi
535 xorl 0x700(%ebp,%ecx,1),%esi
536 movl (%esp),%ecx
537 xorl 0x400(%ebp,%eax,1),%esi
538 xorl 0x500(%ebp,%edx,1),%esi
539
540 movl 104(%ecx),%eax
541 xorl %ebx,%ebx
542 movl 108(%ecx),%edx
543 xorl %esi,%eax
544 xorl %ecx,%ecx
545 xorl %esi,%edx
546 andl $0xfcfcfcfc,%eax
547 andl $0xcfcfcfcf,%edx
548 movb %al,%bl
549 movb %ah,%cl
550 rorl $4,%edx
551 xorl (%ebp,%ebx,1),%edi
552 movb %dl,%bl
553 xorl 0x200(%ebp,%ecx,1),%edi
554 movb %dh,%cl
555 shrl $16,%eax
556 xorl 0x100(%ebp,%ebx,1),%edi
557 movb %ah,%bl
558 shrl $16,%edx
559 xorl 0x300(%ebp,%ecx,1),%edi
560 movb %dh,%cl
561 andl $0xff,%eax
562 andl $0xff,%edx
563 xorl 0x600(%ebp,%ebx,1),%edi
564 xorl 0x700(%ebp,%ecx,1),%edi
565 movl (%esp),%ecx
566 xorl 0x400(%ebp,%eax,1),%edi
567 xorl 0x500(%ebp,%edx,1),%edi
568
569 movl 96(%ecx),%eax
570 xorl %ebx,%ebx
571 movl 100(%ecx),%edx
572 xorl %edi,%eax
573 xorl %ecx,%ecx
574 xorl %edi,%edx
575 andl $0xfcfcfcfc,%eax
576 andl $0xcfcfcfcf,%edx
577 movb %al,%bl
578 movb %ah,%cl
579 rorl $4,%edx
580 xorl (%ebp,%ebx,1),%esi
581 movb %dl,%bl
582 xorl 0x200(%ebp,%ecx,1),%esi
583 movb %dh,%cl
584 shrl $16,%eax
585 xorl 0x100(%ebp,%ebx,1),%esi
586 movb %ah,%bl
587 shrl $16,%edx
588 xorl 0x300(%ebp,%ecx,1),%esi
589 movb %dh,%cl
590 andl $0xff,%eax
591 andl $0xff,%edx
592 xorl 0x600(%ebp,%ebx,1),%esi
593 xorl 0x700(%ebp,%ecx,1),%esi
594 movl (%esp),%ecx
595 xorl 0x400(%ebp,%eax,1),%esi
596 xorl 0x500(%ebp,%edx,1),%esi
597
598 movl 88(%ecx),%eax
599 xorl %ebx,%ebx
600 movl 92(%ecx),%edx
601 xorl %esi,%eax
602 xorl %ecx,%ecx
603 xorl %esi,%edx
604 andl $0xfcfcfcfc,%eax
605 andl $0xcfcfcfcf,%edx
606 movb %al,%bl
607 movb %ah,%cl
608 rorl $4,%edx
609 xorl (%ebp,%ebx,1),%edi
610 movb %dl,%bl
611 xorl 0x200(%ebp,%ecx,1),%edi
612 movb %dh,%cl
613 shrl $16,%eax
614 xorl 0x100(%ebp,%ebx,1),%edi
615 movb %ah,%bl
616 shrl $16,%edx
617 xorl 0x300(%ebp,%ecx,1),%edi
618 movb %dh,%cl
619 andl $0xff,%eax
620 andl $0xff,%edx
621 xorl 0x600(%ebp,%ebx,1),%edi
622 xorl 0x700(%ebp,%ecx,1),%edi
623 movl (%esp),%ecx
624 xorl 0x400(%ebp,%eax,1),%edi
625 xorl 0x500(%ebp,%edx,1),%edi
626
627 movl 80(%ecx),%eax
628 xorl %ebx,%ebx
629 movl 84(%ecx),%edx
630 xorl %edi,%eax
631 xorl %ecx,%ecx
632 xorl %edi,%edx
633 andl $0xfcfcfcfc,%eax
634 andl $0xcfcfcfcf,%edx
635 movb %al,%bl
636 movb %ah,%cl
637 rorl $4,%edx
638 xorl (%ebp,%ebx,1),%esi
639 movb %dl,%bl
640 xorl 0x200(%ebp,%ecx,1),%esi
641 movb %dh,%cl
642 shrl $16,%eax
643 xorl 0x100(%ebp,%ebx,1),%esi
644 movb %ah,%bl
645 shrl $16,%edx
646 xorl 0x300(%ebp,%ecx,1),%esi
647 movb %dh,%cl
648 andl $0xff,%eax
649 andl $0xff,%edx
650 xorl 0x600(%ebp,%ebx,1),%esi
651 xorl 0x700(%ebp,%ecx,1),%esi
652 movl (%esp),%ecx
653 xorl 0x400(%ebp,%eax,1),%esi
654 xorl 0x500(%ebp,%edx,1),%esi
655
656 movl 72(%ecx),%eax
657 xorl %ebx,%ebx
658 movl 76(%ecx),%edx
659 xorl %esi,%eax
660 xorl %ecx,%ecx
661 xorl %esi,%edx
662 andl $0xfcfcfcfc,%eax
663 andl $0xcfcfcfcf,%edx
664 movb %al,%bl
665 movb %ah,%cl
666 rorl $4,%edx
667 xorl (%ebp,%ebx,1),%edi
668 movb %dl,%bl
669 xorl 0x200(%ebp,%ecx,1),%edi
670 movb %dh,%cl
671 shrl $16,%eax
672 xorl 0x100(%ebp,%ebx,1),%edi
673 movb %ah,%bl
674 shrl $16,%edx
675 xorl 0x300(%ebp,%ecx,1),%edi
676 movb %dh,%cl
677 andl $0xff,%eax
678 andl $0xff,%edx
679 xorl 0x600(%ebp,%ebx,1),%edi
680 xorl 0x700(%ebp,%ecx,1),%edi
681 movl (%esp),%ecx
682 xorl 0x400(%ebp,%eax,1),%edi
683 xorl 0x500(%ebp,%edx,1),%edi
684
685 movl 64(%ecx),%eax
686 xorl %ebx,%ebx
687 movl 68(%ecx),%edx
688 xorl %edi,%eax
689 xorl %ecx,%ecx
690 xorl %edi,%edx
691 andl $0xfcfcfcfc,%eax
692 andl $0xcfcfcfcf,%edx
693 movb %al,%bl
694 movb %ah,%cl
695 rorl $4,%edx
696 xorl (%ebp,%ebx,1),%esi
697 movb %dl,%bl
698 xorl 0x200(%ebp,%ecx,1),%esi
699 movb %dh,%cl
700 shrl $16,%eax
701 xorl 0x100(%ebp,%ebx,1),%esi
702 movb %ah,%bl
703 shrl $16,%edx
704 xorl 0x300(%ebp,%ecx,1),%esi
705 movb %dh,%cl
706 andl $0xff,%eax
707 andl $0xff,%edx
708 xorl 0x600(%ebp,%ebx,1),%esi
709 xorl 0x700(%ebp,%ecx,1),%esi
710 movl (%esp),%ecx
711 xorl 0x400(%ebp,%eax,1),%esi
712 xorl 0x500(%ebp,%edx,1),%esi
713
714 movl 56(%ecx),%eax
715 xorl %ebx,%ebx
716 movl 60(%ecx),%edx
717 xorl %esi,%eax
718 xorl %ecx,%ecx
719 xorl %esi,%edx
720 andl $0xfcfcfcfc,%eax
721 andl $0xcfcfcfcf,%edx
722 movb %al,%bl
723 movb %ah,%cl
724 rorl $4,%edx
725 xorl (%ebp,%ebx,1),%edi
726 movb %dl,%bl
727 xorl 0x200(%ebp,%ecx,1),%edi
728 movb %dh,%cl
729 shrl $16,%eax
730 xorl 0x100(%ebp,%ebx,1),%edi
731 movb %ah,%bl
732 shrl $16,%edx
733 xorl 0x300(%ebp,%ecx,1),%edi
734 movb %dh,%cl
735 andl $0xff,%eax
736 andl $0xff,%edx
737 xorl 0x600(%ebp,%ebx,1),%edi
738 xorl 0x700(%ebp,%ecx,1),%edi
739 movl (%esp),%ecx
740 xorl 0x400(%ebp,%eax,1),%edi
741 xorl 0x500(%ebp,%edx,1),%edi
742
743 movl 48(%ecx),%eax
744 xorl %ebx,%ebx
745 movl 52(%ecx),%edx
746 xorl %edi,%eax
747 xorl %ecx,%ecx
748 xorl %edi,%edx
749 andl $0xfcfcfcfc,%eax
750 andl $0xcfcfcfcf,%edx
751 movb %al,%bl
752 movb %ah,%cl
753 rorl $4,%edx
754 xorl (%ebp,%ebx,1),%esi
755 movb %dl,%bl
756 xorl 0x200(%ebp,%ecx,1),%esi
757 movb %dh,%cl
758 shrl $16,%eax
759 xorl 0x100(%ebp,%ebx,1),%esi
760 movb %ah,%bl
761 shrl $16,%edx
762 xorl 0x300(%ebp,%ecx,1),%esi
763 movb %dh,%cl
764 andl $0xff,%eax
765 andl $0xff,%edx
766 xorl 0x600(%ebp,%ebx,1),%esi
767 xorl 0x700(%ebp,%ecx,1),%esi
768 movl (%esp),%ecx
769 xorl 0x400(%ebp,%eax,1),%esi
770 xorl 0x500(%ebp,%edx,1),%esi
771
772 movl 40(%ecx),%eax
773 xorl %ebx,%ebx
774 movl 44(%ecx),%edx
775 xorl %esi,%eax
776 xorl %ecx,%ecx
777 xorl %esi,%edx
778 andl $0xfcfcfcfc,%eax
779 andl $0xcfcfcfcf,%edx
780 movb %al,%bl
781 movb %ah,%cl
782 rorl $4,%edx
783 xorl (%ebp,%ebx,1),%edi
784 movb %dl,%bl
785 xorl 0x200(%ebp,%ecx,1),%edi
786 movb %dh,%cl
787 shrl $16,%eax
788 xorl 0x100(%ebp,%ebx,1),%edi
789 movb %ah,%bl
790 shrl $16,%edx
791 xorl 0x300(%ebp,%ecx,1),%edi
792 movb %dh,%cl
793 andl $0xff,%eax
794 andl $0xff,%edx
795 xorl 0x600(%ebp,%ebx,1),%edi
796 xorl 0x700(%ebp,%ecx,1),%edi
797 movl (%esp),%ecx
798 xorl 0x400(%ebp,%eax,1),%edi
799 xorl 0x500(%ebp,%edx,1),%edi
800
801 movl 32(%ecx),%eax
802 xorl %ebx,%ebx
803 movl 36(%ecx),%edx
804 xorl %edi,%eax
805 xorl %ecx,%ecx
806 xorl %edi,%edx
807 andl $0xfcfcfcfc,%eax
808 andl $0xcfcfcfcf,%edx
809 movb %al,%bl
810 movb %ah,%cl
811 rorl $4,%edx
812 xorl (%ebp,%ebx,1),%esi
813 movb %dl,%bl
814 xorl 0x200(%ebp,%ecx,1),%esi
815 movb %dh,%cl
816 shrl $16,%eax
817 xorl 0x100(%ebp,%ebx,1),%esi
818 movb %ah,%bl
819 shrl $16,%edx
820 xorl 0x300(%ebp,%ecx,1),%esi
821 movb %dh,%cl
822 andl $0xff,%eax
823 andl $0xff,%edx
824 xorl 0x600(%ebp,%ebx,1),%esi
825 xorl 0x700(%ebp,%ecx,1),%esi
826 movl (%esp),%ecx
827 xorl 0x400(%ebp,%eax,1),%esi
828 xorl 0x500(%ebp,%edx,1),%esi
829
830 movl 24(%ecx),%eax
831 xorl %ebx,%ebx
832 movl 28(%ecx),%edx
833 xorl %esi,%eax
834 xorl %ecx,%ecx
835 xorl %esi,%edx
836 andl $0xfcfcfcfc,%eax
837 andl $0xcfcfcfcf,%edx
838 movb %al,%bl
839 movb %ah,%cl
840 rorl $4,%edx
841 xorl (%ebp,%ebx,1),%edi
842 movb %dl,%bl
843 xorl 0x200(%ebp,%ecx,1),%edi
844 movb %dh,%cl
845 shrl $16,%eax
846 xorl 0x100(%ebp,%ebx,1),%edi
847 movb %ah,%bl
848 shrl $16,%edx
849 xorl 0x300(%ebp,%ecx,1),%edi
850 movb %dh,%cl
851 andl $0xff,%eax
852 andl $0xff,%edx
853 xorl 0x600(%ebp,%ebx,1),%edi
854 xorl 0x700(%ebp,%ecx,1),%edi
855 movl (%esp),%ecx
856 xorl 0x400(%ebp,%eax,1),%edi
857 xorl 0x500(%ebp,%edx,1),%edi
858
859 movl 16(%ecx),%eax
860 xorl %ebx,%ebx
861 movl 20(%ecx),%edx
862 xorl %edi,%eax
863 xorl %ecx,%ecx
864 xorl %edi,%edx
865 andl $0xfcfcfcfc,%eax
866 andl $0xcfcfcfcf,%edx
867 movb %al,%bl
868 movb %ah,%cl
869 rorl $4,%edx
870 xorl (%ebp,%ebx,1),%esi
871 movb %dl,%bl
872 xorl 0x200(%ebp,%ecx,1),%esi
873 movb %dh,%cl
874 shrl $16,%eax
875 xorl 0x100(%ebp,%ebx,1),%esi
876 movb %ah,%bl
877 shrl $16,%edx
878 xorl 0x300(%ebp,%ecx,1),%esi
879 movb %dh,%cl
880 andl $0xff,%eax
881 andl $0xff,%edx
882 xorl 0x600(%ebp,%ebx,1),%esi
883 xorl 0x700(%ebp,%ecx,1),%esi
884 movl (%esp),%ecx
885 xorl 0x400(%ebp,%eax,1),%esi
886 xorl 0x500(%ebp,%edx,1),%esi
887
888 movl 8(%ecx),%eax
889 xorl %ebx,%ebx
890 movl 12(%ecx),%edx
891 xorl %esi,%eax
892 xorl %ecx,%ecx
893 xorl %esi,%edx
894 andl $0xfcfcfcfc,%eax
895 andl $0xcfcfcfcf,%edx
896 movb %al,%bl
897 movb %ah,%cl
898 rorl $4,%edx
899 xorl (%ebp,%ebx,1),%edi
900 movb %dl,%bl
901 xorl 0x200(%ebp,%ecx,1),%edi
902 movb %dh,%cl
903 shrl $16,%eax
904 xorl 0x100(%ebp,%ebx,1),%edi
905 movb %ah,%bl
906 shrl $16,%edx
907 xorl 0x300(%ebp,%ecx,1),%edi
908 movb %dh,%cl
909 andl $0xff,%eax
910 andl $0xff,%edx
911 xorl 0x600(%ebp,%ebx,1),%edi
912 xorl 0x700(%ebp,%ecx,1),%edi
913 movl (%esp),%ecx
914 xorl 0x400(%ebp,%eax,1),%edi
915 xorl 0x500(%ebp,%edx,1),%edi
916
917 movl (%ecx),%eax
918 xorl %ebx,%ebx
919 movl 4(%ecx),%edx
920 xorl %edi,%eax
921 xorl %ecx,%ecx
922 xorl %edi,%edx
923 andl $0xfcfcfcfc,%eax
924 andl $0xcfcfcfcf,%edx
925 movb %al,%bl
926 movb %ah,%cl
927 rorl $4,%edx
928 xorl (%ebp,%ebx,1),%esi
929 movb %dl,%bl
930 xorl 0x200(%ebp,%ecx,1),%esi
931 movb %dh,%cl
932 shrl $16,%eax
933 xorl 0x100(%ebp,%ebx,1),%esi
934 movb %ah,%bl
935 shrl $16,%edx
936 xorl 0x300(%ebp,%ecx,1),%esi
937 movb %dh,%cl
938 andl $0xff,%eax
939 andl $0xff,%edx
940 xorl 0x600(%ebp,%ebx,1),%esi
941 xorl 0x700(%ebp,%ecx,1),%esi
942 movl (%esp),%ecx
943 xorl 0x400(%ebp,%eax,1),%esi
944 xorl 0x500(%ebp,%edx,1),%esi
945 addl $4,%esp
946 ret
947 .size _x86_DES_decrypt,.-_x86_DES_decrypt
948 .globl DES_encrypt1
949 .type DES_encrypt1,@function
950 .align 16
951 DES_encrypt1:
952 .L_DES_encrypt1_begin:
953 pushl %esi
954 pushl %edi
955
956
957 movl 12(%esp),%esi
958 xorl %ecx,%ecx
959 pushl %ebx
960 pushl %ebp
961 movl (%esi),%eax
962 movl 28(%esp),%ebx
963 movl 4(%esi),%edi
964
965
966 roll $4,%eax
967 movl %eax,%esi
968 xorl %edi,%eax
969 andl $0xf0f0f0f0,%eax
970 xorl %eax,%esi
971 xorl %eax,%edi
972
973 roll $20,%edi
974 movl %edi,%eax
975 xorl %esi,%edi
976 andl $0xfff0000f,%edi
977 xorl %edi,%eax
978 xorl %edi,%esi
979
980 roll $14,%eax
981 movl %eax,%edi
982 xorl %esi,%eax
983 andl $0x33333333,%eax
984 xorl %eax,%edi
985 xorl %eax,%esi
986
987 roll $22,%esi
988 movl %esi,%eax
989 xorl %edi,%esi
990 andl $0x03fc03fc,%esi
991 xorl %esi,%eax
992 xorl %esi,%edi
993
994 roll $9,%eax
995 movl %eax,%esi
996 xorl %edi,%eax
997 andl $0xaaaaaaaa,%eax
998 xorl %eax,%esi
999 xorl %eax,%edi
1000
1001 roll $1,%edi
1002 call .L000pic_point
1003 .L000pic_point:
1004 popl %ebp
1005 leal .Ldes_sptrans-.L000pic_point(%ebp),%ebp
1006 movl 24(%esp),%ecx
1007 cmpl $0,%ebx
1008 je .L001decrypt
1009 call _x86_DES_encrypt
1010 jmp .L002done
1011 .L001decrypt:
1012 call _x86_DES_decrypt
1013 .L002done:
1014
1015
1016 movl 20(%esp),%edx
1017 rorl $1,%esi
1018 movl %edi,%eax
1019 xorl %esi,%edi
1020 andl $0xaaaaaaaa,%edi
1021 xorl %edi,%eax
1022 xorl %edi,%esi
1023
1024 roll $23,%eax
1025 movl %eax,%edi
1026 xorl %esi,%eax
1027 andl $0x03fc03fc,%eax
1028 xorl %eax,%edi
1029 xorl %eax,%esi
1030
1031 roll $10,%edi
1032 movl %edi,%eax
1033 xorl %esi,%edi
1034 andl $0x33333333,%edi
1035 xorl %edi,%eax
1036 xorl %edi,%esi
1037
1038 roll $18,%esi
1039 movl %esi,%edi
1040 xorl %eax,%esi
1041 andl $0xfff0000f,%esi
1042 xorl %esi,%edi
1043 xorl %esi,%eax
1044
1045 roll $12,%edi
1046 movl %edi,%esi
1047 xorl %eax,%edi
1048 andl $0xf0f0f0f0,%edi
1049 xorl %edi,%esi
1050 xorl %edi,%eax
1051
1052 rorl $4,%eax
1053 movl %eax,(%edx)
1054 movl %esi,4(%edx)
1055 popl %ebp
1056 popl %ebx
1057 popl %edi
1058 popl %esi
1059 ret
1060 .size DES_encrypt1,.-.L_DES_encrypt1_begin
1061 .globl DES_encrypt2
1062 .type DES_encrypt2,@function
1063 .align 16
1064 DES_encrypt2:
1065 .L_DES_encrypt2_begin:
1066 pushl %esi
1067 pushl %edi
1068
1069
1070 movl 12(%esp),%eax
1071 xorl %ecx,%ecx
1072 pushl %ebx
1073 pushl %ebp
1074 movl (%eax),%esi
1075 movl 28(%esp),%ebx
1076 roll $3,%esi
1077 movl 4(%eax),%edi
1078 roll $3,%edi
1079 call .L003pic_point
1080 .L003pic_point:
1081 popl %ebp
1082 leal .Ldes_sptrans-.L003pic_point(%ebp),%ebp
1083 movl 24(%esp),%ecx
1084 cmpl $0,%ebx
1085 je .L004decrypt
1086 call _x86_DES_encrypt
1087 jmp .L005done
1088 .L004decrypt:
1089 call _x86_DES_decrypt
1090 .L005done:
1091
1092
1093 rorl $3,%edi
1094 movl 20(%esp),%eax
1095 rorl $3,%esi
1096 movl %edi,(%eax)
1097 movl %esi,4(%eax)
1098 popl %ebp
1099 popl %ebx
1100 popl %edi
1101 popl %esi
1102 ret
1103 .size DES_encrypt2,.-.L_DES_encrypt2_begin
1104 .globl DES_encrypt3
1105 .type DES_encrypt3,@function
1106 .align 16
1107 DES_encrypt3:
1108 .L_DES_encrypt3_begin:
1109 pushl %ebx
1110 movl 8(%esp),%ebx
1111 pushl %ebp
1112 pushl %esi
1113 pushl %edi
1114
1115
1116 movl (%ebx),%edi
1117 movl 4(%ebx),%esi
1118 subl $12,%esp
1119
1120
1121 roll $4,%edi
1122 movl %edi,%edx
1123 xorl %esi,%edi
1124 andl $0xf0f0f0f0,%edi
1125 xorl %edi,%edx
1126 xorl %edi,%esi
1127
1128 roll $20,%esi
1129 movl %esi,%edi
1130 xorl %edx,%esi
1131 andl $0xfff0000f,%esi
1132 xorl %esi,%edi
1133 xorl %esi,%edx
1134
1135 roll $14,%edi
1136 movl %edi,%esi
1137 xorl %edx,%edi
1138 andl $0x33333333,%edi
1139 xorl %edi,%esi
1140 xorl %edi,%edx
1141
1142 roll $22,%edx
1143 movl %edx,%edi
1144 xorl %esi,%edx
1145 andl $0x03fc03fc,%edx
1146 xorl %edx,%edi
1147 xorl %edx,%esi
1148
1149 roll $9,%edi
1150 movl %edi,%edx
1151 xorl %esi,%edi
1152 andl $0xaaaaaaaa,%edi
1153 xorl %edi,%edx
1154 xorl %edi,%esi
1155
1156 rorl $3,%edx
1157 rorl $2,%esi
1158 movl %esi,4(%ebx)
1159 movl 36(%esp),%eax
1160 movl %edx,(%ebx)
1161 movl 40(%esp),%edi
1162 movl 44(%esp),%esi
1163 movl $1,8(%esp)
1164 movl %eax,4(%esp)
1165 movl %ebx,(%esp)
1166 call .L_DES_encrypt2_begin
1167 movl $0,8(%esp)
1168 movl %edi,4(%esp)
1169 movl %ebx,(%esp)
1170 call .L_DES_encrypt2_begin
1171 movl $1,8(%esp)
1172 movl %esi,4(%esp)
1173 movl %ebx,(%esp)
1174 call .L_DES_encrypt2_begin
1175 addl $12,%esp
1176 movl (%ebx),%edi
1177 movl 4(%ebx),%esi
1178
1179
1180 roll $2,%esi
1181 roll $3,%edi
1182 movl %edi,%eax
1183 xorl %esi,%edi
1184 andl $0xaaaaaaaa,%edi
1185 xorl %edi,%eax
1186 xorl %edi,%esi
1187
1188 roll $23,%eax
1189 movl %eax,%edi
1190 xorl %esi,%eax
1191 andl $0x03fc03fc,%eax
1192 xorl %eax,%edi
1193 xorl %eax,%esi
1194
1195 roll $10,%edi
1196 movl %edi,%eax
1197 xorl %esi,%edi
1198 andl $0x33333333,%edi
1199 xorl %edi,%eax
1200 xorl %edi,%esi
1201
1202 roll $18,%esi
1203 movl %esi,%edi
1204 xorl %eax,%esi
1205 andl $0xfff0000f,%esi
1206 xorl %esi,%edi
1207 xorl %esi,%eax
1208
1209 roll $12,%edi
1210 movl %edi,%esi
1211 xorl %eax,%edi
1212 andl $0xf0f0f0f0,%edi
1213 xorl %edi,%esi
1214 xorl %edi,%eax
1215
1216 rorl $4,%eax
1217 movl %eax,(%ebx)
1218 movl %esi,4(%ebx)
1219 popl %edi
1220 popl %esi
1221 popl %ebp
1222 popl %ebx
1223 ret
1224 .size DES_encrypt3,.-.L_DES_encrypt3_begin
1225 .globl DES_decrypt3
1226 .type DES_decrypt3,@function
1227 .align 16
1228 DES_decrypt3:
1229 .L_DES_decrypt3_begin:
1230 pushl %ebx
1231 movl 8(%esp),%ebx
1232 pushl %ebp
1233 pushl %esi
1234 pushl %edi
1235
1236
1237 movl (%ebx),%edi
1238 movl 4(%ebx),%esi
1239 subl $12,%esp
1240
1241
1242 roll $4,%edi
1243 movl %edi,%edx
1244 xorl %esi,%edi
1245 andl $0xf0f0f0f0,%edi
1246 xorl %edi,%edx
1247 xorl %edi,%esi
1248
1249 roll $20,%esi
1250 movl %esi,%edi
1251 xorl %edx,%esi
1252 andl $0xfff0000f,%esi
1253 xorl %esi,%edi
1254 xorl %esi,%edx
1255
1256 roll $14,%edi
1257 movl %edi,%esi
1258 xorl %edx,%edi
1259 andl $0x33333333,%edi
1260 xorl %edi,%esi
1261 xorl %edi,%edx
1262
1263 roll $22,%edx
1264 movl %edx,%edi
1265 xorl %esi,%edx
1266 andl $0x03fc03fc,%edx
1267 xorl %edx,%edi
1268 xorl %edx,%esi
1269
1270 roll $9,%edi
1271 movl %edi,%edx
1272 xorl %esi,%edi
1273 andl $0xaaaaaaaa,%edi
1274 xorl %edi,%edx
1275 xorl %edi,%esi
1276
1277 rorl $3,%edx
1278 rorl $2,%esi
1279 movl %esi,4(%ebx)
1280 movl 36(%esp),%esi
1281 movl %edx,(%ebx)
1282 movl 40(%esp),%edi
1283 movl 44(%esp),%eax
1284 movl $0,8(%esp)
1285 movl %eax,4(%esp)
1286 movl %ebx,(%esp)
1287 call .L_DES_encrypt2_begin
1288 movl $1,8(%esp)
1289 movl %edi,4(%esp)
1290 movl %ebx,(%esp)
1291 call .L_DES_encrypt2_begin
1292 movl $0,8(%esp)
1293 movl %esi,4(%esp)
1294 movl %ebx,(%esp)
1295 call .L_DES_encrypt2_begin
1296 addl $12,%esp
1297 movl (%ebx),%edi
1298 movl 4(%ebx),%esi
1299
1300
1301 roll $2,%esi
1302 roll $3,%edi
1303 movl %edi,%eax
1304 xorl %esi,%edi
1305 andl $0xaaaaaaaa,%edi
1306 xorl %edi,%eax
1307 xorl %edi,%esi
1308
1309 roll $23,%eax
1310 movl %eax,%edi
1311 xorl %esi,%eax
1312 andl $0x03fc03fc,%eax
1313 xorl %eax,%edi
1314 xorl %eax,%esi
1315
1316 roll $10,%edi
1317 movl %edi,%eax
1318 xorl %esi,%edi
1319 andl $0x33333333,%edi
1320 xorl %edi,%eax
1321 xorl %edi,%esi
1322
1323 roll $18,%esi
1324 movl %esi,%edi
1325 xorl %eax,%esi
1326 andl $0xfff0000f,%esi
1327 xorl %esi,%edi
1328 xorl %esi,%eax
1329
1330 roll $12,%edi
1331 movl %edi,%esi
1332 xorl %eax,%edi
1333 andl $0xf0f0f0f0,%edi
1334 xorl %edi,%esi
1335 xorl %edi,%eax
1336
1337 rorl $4,%eax
1338 movl %eax,(%ebx)
1339 movl %esi,4(%ebx)
1340 popl %edi
1341 popl %esi
1342 popl %ebp
1343 popl %ebx
1344 ret
1345 .size DES_decrypt3,.-.L_DES_decrypt3_begin
1346 .globl DES_ncbc_encrypt
1347 .type DES_ncbc_encrypt,@function
1348 .align 16
1349 DES_ncbc_encrypt:
1350 .L_DES_ncbc_encrypt_begin:
1351
1352 pushl %ebp
1353 pushl %ebx
1354 pushl %esi
1355 pushl %edi
1356 movl 28(%esp),%ebp
1357
1358 movl 36(%esp),%ebx
1359 movl (%ebx),%esi
1360 movl 4(%ebx),%edi
1361 pushl %edi
1362 pushl %esi
1363 pushl %edi
1364 pushl %esi
1365 movl %esp,%ebx
1366 movl 36(%esp),%esi
1367 movl 40(%esp),%edi
1368
1369 movl 56(%esp),%ecx
1370
1371 pushl %ecx
1372
1373 movl 52(%esp),%eax
1374 pushl %eax
1375 pushl %ebx
1376 cmpl $0,%ecx
1377 jz .L006decrypt
1378 andl $4294967288,%ebp
1379 movl 12(%esp),%eax
1380 movl 16(%esp),%ebx
1381 jz .L007encrypt_finish
1382 .L008encrypt_loop:
1383 movl (%esi),%ecx
1384 movl 4(%esi),%edx
1385 xorl %ecx,%eax
1386 xorl %edx,%ebx
1387 movl %eax,12(%esp)
1388 movl %ebx,16(%esp)
1389 call .L_DES_encrypt1_begin
1390 movl 12(%esp),%eax
1391 movl 16(%esp),%ebx
1392 movl %eax,(%edi)
1393 movl %ebx,4(%edi)
1394 addl $8,%esi
1395 addl $8,%edi
1396 subl $8,%ebp
1397 jnz .L008encrypt_loop
1398 .L007encrypt_finish:
1399 movl 56(%esp),%ebp
1400 andl $7,%ebp
1401 jz .L009finish
1402 call .L010PIC_point
1403 .L010PIC_point:
1404 popl %edx
1405 leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
1406 movl (%ecx,%ebp,4),%ebp
1407 addl %edx,%ebp
1408 xorl %ecx,%ecx
1409 xorl %edx,%edx
1410 jmp *%ebp
1411 .L012ej7:
1412 movb 6(%esi),%dh
1413 shll $8,%edx
1414 .L013ej6:
1415 movb 5(%esi),%dh
1416 .L014ej5:
1417 movb 4(%esi),%dl
1418 .L015ej4:
1419 movl (%esi),%ecx
1420 jmp .L016ejend
1421 .L017ej3:
1422 movb 2(%esi),%ch
1423 shll $8,%ecx
1424 .L018ej2:
1425 movb 1(%esi),%ch
1426 .L019ej1:
1427 movb (%esi),%cl
1428 .L016ejend:
1429 xorl %ecx,%eax
1430 xorl %edx,%ebx
1431 movl %eax,12(%esp)
1432 movl %ebx,16(%esp)
1433 call .L_DES_encrypt1_begin
1434 movl 12(%esp),%eax
1435 movl 16(%esp),%ebx
1436 movl %eax,(%edi)
1437 movl %ebx,4(%edi)
1438 jmp .L009finish
1439 .L006decrypt:
1440 andl $4294967288,%ebp
1441 movl 20(%esp),%eax
1442 movl 24(%esp),%ebx
1443 jz .L020decrypt_finish
1444 .L021decrypt_loop:
1445 movl (%esi),%eax
1446 movl 4(%esi),%ebx
1447 movl %eax,12(%esp)
1448 movl %ebx,16(%esp)
1449 call .L_DES_encrypt1_begin
1450 movl 12(%esp),%eax
1451 movl 16(%esp),%ebx
1452 movl 20(%esp),%ecx
1453 movl 24(%esp),%edx
1454 xorl %eax,%ecx
1455 xorl %ebx,%edx
1456 movl (%esi),%eax
1457 movl 4(%esi),%ebx
1458 movl %ecx,(%edi)
1459 movl %edx,4(%edi)
1460 movl %eax,20(%esp)
1461 movl %ebx,24(%esp)
1462 addl $8,%esi
1463 addl $8,%edi
1464 subl $8,%ebp
1465 jnz .L021decrypt_loop
1466 .L020decrypt_finish:
1467 movl 56(%esp),%ebp
1468 andl $7,%ebp
1469 jz .L009finish
1470 movl (%esi),%eax
1471 movl 4(%esi),%ebx
1472 movl %eax,12(%esp)
1473 movl %ebx,16(%esp)
1474 call .L_DES_encrypt1_begin
1475 movl 12(%esp),%eax
1476 movl 16(%esp),%ebx
1477 movl 20(%esp),%ecx
1478 movl 24(%esp),%edx
1479 xorl %eax,%ecx
1480 xorl %ebx,%edx
1481 movl (%esi),%eax
1482 movl 4(%esi),%ebx
1483 .L022dj7:
1484 rorl $16,%edx
1485 movb %dl,6(%edi)
1486 shrl $16,%edx
1487 .L023dj6:
1488 movb %dh,5(%edi)
1489 .L024dj5:
1490 movb %dl,4(%edi)
1491 .L025dj4:
1492 movl %ecx,(%edi)
1493 jmp .L026djend
1494 .L027dj3:
1495 rorl $16,%ecx
1496 movb %cl,2(%edi)
1497 shll $16,%ecx
1498 .L028dj2:
1499 movb %ch,1(%esi)
1500 .L029dj1:
1501 movb %cl,(%esi)
1502 .L026djend:
1503 jmp .L009finish
1504 .L009finish:
1505 movl 64(%esp),%ecx
1506 addl $28,%esp
1507 movl %eax,(%ecx)
1508 movl %ebx,4(%ecx)
1509 popl %edi
1510 popl %esi
1511 popl %ebx
1512 popl %ebp
1513 ret
1514 .align 64
1515 .L011cbc_enc_jmp_table:
1516 .long 0
1517 .long .L019ej1-.L010PIC_point
1518 .long .L018ej2-.L010PIC_point
1519 .long .L017ej3-.L010PIC_point
1520 .long .L015ej4-.L010PIC_point
1521 .long .L014ej5-.L010PIC_point
1522 .long .L013ej6-.L010PIC_point
1523 .long .L012ej7-.L010PIC_point
1524 .align 64
1525 .size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
1526 .globl DES_ede3_cbc_encrypt
1527 .type DES_ede3_cbc_encrypt,@function
1528 .align 16
1529 DES_ede3_cbc_encrypt:
1530 .L_DES_ede3_cbc_encrypt_begin:
1531
1532 pushl %ebp
1533 pushl %ebx
1534 pushl %esi
1535 pushl %edi
1536 movl 28(%esp),%ebp
1537
1538 movl 44(%esp),%ebx
1539 movl (%ebx),%esi
1540 movl 4(%ebx),%edi
1541 pushl %edi
1542 pushl %esi
1543 pushl %edi
1544 pushl %esi
1545 movl %esp,%ebx
1546 movl 36(%esp),%esi
1547 movl 40(%esp),%edi
1548
1549 movl 64(%esp),%ecx
1550
1551 movl 56(%esp),%eax
1552 pushl %eax
1553
1554 movl 56(%esp),%eax
1555 pushl %eax
1556
1557 movl 56(%esp),%eax
1558 pushl %eax
1559 pushl %ebx
1560 cmpl $0,%ecx
1561 jz .L030decrypt
1562 andl $4294967288,%ebp
1563 movl 16(%esp),%eax
1564 movl 20(%esp),%ebx
1565 jz .L031encrypt_finish
1566 .L032encrypt_loop:
1567 movl (%esi),%ecx
1568 movl 4(%esi),%edx
1569 xorl %ecx,%eax
1570 xorl %edx,%ebx
1571 movl %eax,16(%esp)
1572 movl %ebx,20(%esp)
1573 call .L_DES_encrypt3_begin
1574 movl 16(%esp),%eax
1575 movl 20(%esp),%ebx
1576 movl %eax,(%edi)
1577 movl %ebx,4(%edi)
1578 addl $8,%esi
1579 addl $8,%edi
1580 subl $8,%ebp
1581 jnz .L032encrypt_loop
1582 .L031encrypt_finish:
1583 movl 60(%esp),%ebp
1584 andl $7,%ebp
1585 jz .L033finish
1586 call .L034PIC_point
1587 .L034PIC_point:
1588 popl %edx
1589 leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
1590 movl (%ecx,%ebp,4),%ebp
1591 addl %edx,%ebp
1592 xorl %ecx,%ecx
1593 xorl %edx,%edx
1594 jmp *%ebp
1595 .L036ej7:
1596 movb 6(%esi),%dh
1597 shll $8,%edx
1598 .L037ej6:
1599 movb 5(%esi),%dh
1600 .L038ej5:
1601 movb 4(%esi),%dl
1602 .L039ej4:
1603 movl (%esi),%ecx
1604 jmp .L040ejend
1605 .L041ej3:
1606 movb 2(%esi),%ch
1607 shll $8,%ecx
1608 .L042ej2:
1609 movb 1(%esi),%ch
1610 .L043ej1:
1611 movb (%esi),%cl
1612 .L040ejend:
1613 xorl %ecx,%eax
1614 xorl %edx,%ebx
1615 movl %eax,16(%esp)
1616 movl %ebx,20(%esp)
1617 call .L_DES_encrypt3_begin
1618 movl 16(%esp),%eax
1619 movl 20(%esp),%ebx
1620 movl %eax,(%edi)
1621 movl %ebx,4(%edi)
1622 jmp .L033finish
1623 .L030decrypt:
1624 andl $4294967288,%ebp
1625 movl 24(%esp),%eax
1626 movl 28(%esp),%ebx
1627 jz .L044decrypt_finish
1628 .L045decrypt_loop:
1629 movl (%esi),%eax
1630 movl 4(%esi),%ebx
1631 movl %eax,16(%esp)
1632 movl %ebx,20(%esp)
1633 call .L_DES_decrypt3_begin
1634 movl 16(%esp),%eax
1635 movl 20(%esp),%ebx
1636 movl 24(%esp),%ecx
1637 movl 28(%esp),%edx
1638 xorl %eax,%ecx
1639 xorl %ebx,%edx
1640 movl (%esi),%eax
1641 movl 4(%esi),%ebx
1642 movl %ecx,(%edi)
1643 movl %edx,4(%edi)
1644 movl %eax,24(%esp)
1645 movl %ebx,28(%esp)
1646 addl $8,%esi
1647 addl $8,%edi
1648 subl $8,%ebp
1649 jnz .L045decrypt_loop
1650 .L044decrypt_finish:
1651 movl 60(%esp),%ebp
1652 andl $7,%ebp
1653 jz .L033finish
1654 movl (%esi),%eax
1655 movl 4(%esi),%ebx
1656 movl %eax,16(%esp)
1657 movl %ebx,20(%esp)
1658 call .L_DES_decrypt3_begin
1659 movl 16(%esp),%eax
1660 movl 20(%esp),%ebx
1661 movl 24(%esp),%ecx
1662 movl 28(%esp),%edx
1663 xorl %eax,%ecx
1664 xorl %ebx,%edx
1665 movl (%esi),%eax
1666 movl 4(%esi),%ebx
1667 .L046dj7:
1668 rorl $16,%edx
1669 movb %dl,6(%edi)
1670 shrl $16,%edx
1671 .L047dj6:
1672 movb %dh,5(%edi)
1673 .L048dj5:
1674 movb %dl,4(%edi)
1675 .L049dj4:
1676 movl %ecx,(%edi)
1677 jmp .L050djend
1678 .L051dj3:
1679 rorl $16,%ecx
1680 movb %cl,2(%edi)
1681 shll $16,%ecx
1682 .L052dj2:
1683 movb %ch,1(%esi)
1684 .L053dj1:
1685 movb %cl,(%esi)
1686 .L050djend:
1687 jmp .L033finish
1688 .L033finish:
1689 movl 76(%esp),%ecx
1690 addl $32,%esp
1691 movl %eax,(%ecx)
1692 movl %ebx,4(%ecx)
1693 popl %edi
1694 popl %esi
1695 popl %ebx
1696 popl %ebp
1697 ret
1698 .align 64
1699 .L035cbc_enc_jmp_table:
1700 .long 0
1701 .long .L043ej1-.L034PIC_point
1702 .long .L042ej2-.L034PIC_point
1703 .long .L041ej3-.L034PIC_point
1704 .long .L039ej4-.L034PIC_point
1705 .long .L038ej5-.L034PIC_point
1706 .long .L037ej6-.L034PIC_point
1707 .long .L036ej7-.L034PIC_point
1708 .align 64
1709 .size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
1710 .align 64
1711 DES_SPtrans:
1712 .Ldes_sptrans:
1713 .long 34080768,524288,33554434,34080770
1714 .long 33554432,526338,524290,33554434
1715 .long 526338,34080768,34078720,2050
1716 .long 33556482,33554432,0,524290
1717 .long 524288,2,33556480,526336
1718 .long 34080770,34078720,2050,33556480
1719 .long 2,2048,526336,34078722
1720 .long 2048,33556482,34078722,0
1721 .long 0,34080770,33556480,524290
1722 .long 34080768,524288,2050,33556480
1723 .long 34078722,2048,526336,33554434
1724 .long 526338,2,33554434,34078720
1725 .long 34080770,526336,34078720,33556482
1726 .long 33554432,2050,524290,0
1727 .long 524288,33554432,33556482,34080768
1728 .long 2,34078722,2048,526338
1729 .long 1074823184,0,1081344,1074790400
1730 .long 1073741840,32784,1073774592,1081344
1731 .long 32768,1074790416,16,1073774592
1732 .long 1048592,1074823168,1074790400,16
1733 .long 1048576,1073774608,1074790416,32768
1734 .long 1081360,1073741824,0,1048592
1735 .long 1073774608,1081360,1074823168,1073741840
1736 .long 1073741824,1048576,32784,1074823184
1737 .long 1048592,1074823168,1073774592,1081360
1738 .long 1074823184,1048592,1073741840,0
1739 .long 1073741824,32784,1048576,1074790416
1740 .long 32768,1073741824,1081360,1073774608
1741 .long 1074823168,32768,0,1073741840
1742 .long 16,1074823184,1081344,1074790400
1743 .long 1074790416,1048576,32784,1073774592
1744 .long 1073774608,16,1074790400,1081344
1745 .long 67108865,67371264,256,67109121
1746 .long 262145,67108864,67109121,262400
1747 .long 67109120,262144,67371008,1
1748 .long 67371265,257,1,67371009
1749 .long 0,262145,67371264,256
1750 .long 257,67371265,262144,67108865
1751 .long 67371009,67109120,262401,67371008
1752 .long 262400,0,67108864,262401
1753 .long 67371264,256,1,262144
1754 .long 257,262145,67371008,67109121
1755 .long 0,67371264,262400,67371009
1756 .long 262145,67108864,67371265,1
1757 .long 262401,67108865,67108864,67371265
1758 .long 262144,67109120,67109121,262400
1759 .long 67109120,0,67371009,257
1760 .long 67108865,262401,256,67371008
1761 .long 4198408,268439552,8,272633864
1762 .long 0,272629760,268439560,4194312
1763 .long 272633856,268435464,268435456,4104
1764 .long 268435464,4198408,4194304,268435456
1765 .long 272629768,4198400,4096,8
1766 .long 4198400,268439560,272629760,4096
1767 .long 4104,0,4194312,272633856
1768 .long 268439552,272629768,272633864,4194304
1769 .long 272629768,4104,4194304,268435464
1770 .long 4198400,268439552,8,272629760
1771 .long 268439560,0,4096,4194312
1772 .long 0,272629768,272633856,4096
1773 .long 268435456,272633864,4198408,4194304
1774 .long 272633864,8,268439552,4198408
1775 .long 4194312,4198400,272629760,268439560
1776 .long 4104,268435456,268435464,272633856
1777 .long 134217728,65536,1024,134284320
1778 .long 134283296,134218752,66592,134283264
1779 .long 65536,32,134217760,66560
1780 .long 134218784,134283296,134284288,0
1781 .long 66560,134217728,65568,1056
1782 .long 134218752,66592,0,134217760
1783 .long 32,134218784,134284320,65568
1784 .long 134283264,1024,1056,134284288
1785 .long 134284288,134218784,65568,134283264
1786 .long 65536,32,134217760,134218752
1787 .long 134217728,66560,134284320,0
1788 .long 66592,134217728,1024,65568
1789 .long 134218784,1024,0,134284320
1790 .long 134283296,134284288,1056,65536
1791 .long 66560,134283296,134218752,1056
1792 .long 32,66592,134283264,134217760
1793 .long 2147483712,2097216,0,2149588992
1794 .long 2097216,8192,2147491904,2097152
1795 .long 8256,2149589056,2105344,2147483648
1796 .long 2147491840,2147483712,2149580800,2105408
1797 .long 2097152,2147491904,2149580864,0
1798 .long 8192,64,2149588992,2149580864
1799 .long 2149589056,2149580800,2147483648,8256
1800 .long 64,2105344,2105408,2147491840
1801 .long 8256,2147483648,2147491840,2105408
1802 .long 2149588992,2097216,0,2147491840
1803 .long 2147483648,8192,2149580864,2097152
1804 .long 2097216,2149589056,2105344,64
1805 .long 2149589056,2105344,2097152,2147491904
1806 .long 2147483712,2149580800,2105408,0
1807 .long 8192,2147483712,2147491904,2149588992
1808 .long 2149580800,8256,64,2149580864
1809 .long 16384,512,16777728,16777220
1810 .long 16794116,16388,16896,0
1811 .long 16777216,16777732,516,16793600
1812 .long 4,16794112,16793600,516
1813 .long 16777732,16384,16388,16794116
1814 .long 0,16777728,16777220,16896
1815 .long 16793604,16900,16794112,4
1816 .long 16900,16793604,512,16777216
1817 .long 16900,16793600,16793604,516
1818 .long 16384,512,16777216,16793604
1819 .long 16777732,16900,16896,0
1820 .long 512,16777220,4,16777728
1821 .long 0,16777732,16777728,16896
1822 .long 516,16384,16794116,16777216
1823 .long 16794112,4,16388,16794116
1824 .long 16777220,16794112,16793600,16388
1825 .long 545259648,545390592,131200,0
1826 .long 537001984,8388736,545259520,545390720
1827 .long 128,536870912,8519680,131200
1828 .long 8519808,537002112,536871040,545259520
1829 .long 131072,8519808,8388736,537001984
1830 .long 545390720,536871040,0,8519680
1831 .long 536870912,8388608,537002112,545259648
1832 .long 8388608,131072,545390592,128
1833 .long 8388608,131072,536871040,545390720
1834 .long 131200,536870912,0,8519680
1835 .long 545259648,537002112,537001984,8388736
1836 .long 545390592,128,8388736,537001984
1837 .long 545390720,8388608,545259520,536871040
1838 .long 8519680,131200,537002112,545259520
1839 .long 128,545390592,8519808,0
1840 .long 536870912,545259648,131072,8519808
1841 #else
1842 .text
1843 .globl DES_SPtrans
1844 .type _x86_DES_encrypt,@function
1845 .align 16
1846 _x86_DES_encrypt:
1847 pushl %ecx
1848
1849 movl (%ecx),%eax
1850 xorl %ebx,%ebx
1851 movl 4(%ecx),%edx
1852 xorl %esi,%eax
1853 xorl %ecx,%ecx
1854 xorl %esi,%edx
1855 andl $0xfcfcfcfc,%eax
1856 andl $0xcfcfcfcf,%edx
1857 movb %al,%bl
1858 movb %ah,%cl
1859 rorl $4,%edx
1860 xorl (%ebp,%ebx,1),%edi
1861 movb %dl,%bl
1862 xorl 0x200(%ebp,%ecx,1),%edi
1863 movb %dh,%cl
1864 shrl $16,%eax
1865 xorl 0x100(%ebp,%ebx,1),%edi
1866 movb %ah,%bl
1867 shrl $16,%edx
1868 xorl 0x300(%ebp,%ecx,1),%edi
1869 movb %dh,%cl
1870 andl $0xff,%eax
1871 andl $0xff,%edx
1872 xorl 0x600(%ebp,%ebx,1),%edi
1873 xorl 0x700(%ebp,%ecx,1),%edi
1874 movl (%esp),%ecx
1875 xorl 0x400(%ebp,%eax,1),%edi
1876 xorl 0x500(%ebp,%edx,1),%edi
1877
1878 movl 8(%ecx),%eax
1879 xorl %ebx,%ebx
1880 movl 12(%ecx),%edx
1881 xorl %edi,%eax
1882 xorl %ecx,%ecx
1883 xorl %edi,%edx
1884 andl $0xfcfcfcfc,%eax
1885 andl $0xcfcfcfcf,%edx
1886 movb %al,%bl
1887 movb %ah,%cl
1888 rorl $4,%edx
1889 xorl (%ebp,%ebx,1),%esi
1890 movb %dl,%bl
1891 xorl 0x200(%ebp,%ecx,1),%esi
1892 movb %dh,%cl
1893 shrl $16,%eax
1894 xorl 0x100(%ebp,%ebx,1),%esi
1895 movb %ah,%bl
1896 shrl $16,%edx
1897 xorl 0x300(%ebp,%ecx,1),%esi
1898 movb %dh,%cl
1899 andl $0xff,%eax
1900 andl $0xff,%edx
1901 xorl 0x600(%ebp,%ebx,1),%esi
1902 xorl 0x700(%ebp,%ecx,1),%esi
1903 movl (%esp),%ecx
1904 xorl 0x400(%ebp,%eax,1),%esi
1905 xorl 0x500(%ebp,%edx,1),%esi
1906
1907 movl 16(%ecx),%eax
1908 xorl %ebx,%ebx
1909 movl 20(%ecx),%edx
1910 xorl %esi,%eax
1911 xorl %ecx,%ecx
1912 xorl %esi,%edx
1913 andl $0xfcfcfcfc,%eax
1914 andl $0xcfcfcfcf,%edx
1915 movb %al,%bl
1916 movb %ah,%cl
1917 rorl $4,%edx
1918 xorl (%ebp,%ebx,1),%edi
1919 movb %dl,%bl
1920 xorl 0x200(%ebp,%ecx,1),%edi
1921 movb %dh,%cl
1922 shrl $16,%eax
1923 xorl 0x100(%ebp,%ebx,1),%edi
1924 movb %ah,%bl
1925 shrl $16,%edx
1926 xorl 0x300(%ebp,%ecx,1),%edi
1927 movb %dh,%cl
1928 andl $0xff,%eax
1929 andl $0xff,%edx
1930 xorl 0x600(%ebp,%ebx,1),%edi
1931 xorl 0x700(%ebp,%ecx,1),%edi
1932 movl (%esp),%ecx
1933 xorl 0x400(%ebp,%eax,1),%edi
1934 xorl 0x500(%ebp,%edx,1),%edi
1935
1936 movl 24(%ecx),%eax
1937 xorl %ebx,%ebx
1938 movl 28(%ecx),%edx
1939 xorl %edi,%eax
1940 xorl %ecx,%ecx
1941 xorl %edi,%edx
1942 andl $0xfcfcfcfc,%eax
1943 andl $0xcfcfcfcf,%edx
1944 movb %al,%bl
1945 movb %ah,%cl
1946 rorl $4,%edx
1947 xorl (%ebp,%ebx,1),%esi
1948 movb %dl,%bl
1949 xorl 0x200(%ebp,%ecx,1),%esi
1950 movb %dh,%cl
1951 shrl $16,%eax
1952 xorl 0x100(%ebp,%ebx,1),%esi
1953 movb %ah,%bl
1954 shrl $16,%edx
1955 xorl 0x300(%ebp,%ecx,1),%esi
1956 movb %dh,%cl
1957 andl $0xff,%eax
1958 andl $0xff,%edx
1959 xorl 0x600(%ebp,%ebx,1),%esi
1960 xorl 0x700(%ebp,%ecx,1),%esi
1961 movl (%esp),%ecx
1962 xorl 0x400(%ebp,%eax,1),%esi
1963 xorl 0x500(%ebp,%edx,1),%esi
1964
1965 movl 32(%ecx),%eax
1966 xorl %ebx,%ebx
1967 movl 36(%ecx),%edx
1968 xorl %esi,%eax
1969 xorl %ecx,%ecx
1970 xorl %esi,%edx
1971 andl $0xfcfcfcfc,%eax
1972 andl $0xcfcfcfcf,%edx
1973 movb %al,%bl
1974 movb %ah,%cl
1975 rorl $4,%edx
1976 xorl (%ebp,%ebx,1),%edi
1977 movb %dl,%bl
1978 xorl 0x200(%ebp,%ecx,1),%edi
1979 movb %dh,%cl
1980 shrl $16,%eax
1981 xorl 0x100(%ebp,%ebx,1),%edi
1982 movb %ah,%bl
1983 shrl $16,%edx
1984 xorl 0x300(%ebp,%ecx,1),%edi
1985 movb %dh,%cl
1986 andl $0xff,%eax
1987 andl $0xff,%edx
1988 xorl 0x600(%ebp,%ebx,1),%edi
1989 xorl 0x700(%ebp,%ecx,1),%edi
1990 movl (%esp),%ecx
1991 xorl 0x400(%ebp,%eax,1),%edi
1992 xorl 0x500(%ebp,%edx,1),%edi
1993
1994 movl 40(%ecx),%eax
1995 xorl %ebx,%ebx
1996 movl 44(%ecx),%edx
1997 xorl %edi,%eax
1998 xorl %ecx,%ecx
1999 xorl %edi,%edx
2000 andl $0xfcfcfcfc,%eax
2001 andl $0xcfcfcfcf,%edx
2002 movb %al,%bl
2003 movb %ah,%cl
2004 rorl $4,%edx
2005 xorl (%ebp,%ebx,1),%esi
2006 movb %dl,%bl
2007 xorl 0x200(%ebp,%ecx,1),%esi
2008 movb %dh,%cl
2009 shrl $16,%eax
2010 xorl 0x100(%ebp,%ebx,1),%esi
2011 movb %ah,%bl
2012 shrl $16,%edx
2013 xorl 0x300(%ebp,%ecx,1),%esi
2014 movb %dh,%cl
2015 andl $0xff,%eax
2016 andl $0xff,%edx
2017 xorl 0x600(%ebp,%ebx,1),%esi
2018 xorl 0x700(%ebp,%ecx,1),%esi
2019 movl (%esp),%ecx
2020 xorl 0x400(%ebp,%eax,1),%esi
2021 xorl 0x500(%ebp,%edx,1),%esi
2022
2023 movl 48(%ecx),%eax
2024 xorl %ebx,%ebx
2025 movl 52(%ecx),%edx
2026 xorl %esi,%eax
2027 xorl %ecx,%ecx
2028 xorl %esi,%edx
2029 andl $0xfcfcfcfc,%eax
2030 andl $0xcfcfcfcf,%edx
2031 movb %al,%bl
2032 movb %ah,%cl
2033 rorl $4,%edx
2034 xorl (%ebp,%ebx,1),%edi
2035 movb %dl,%bl
2036 xorl 0x200(%ebp,%ecx,1),%edi
2037 movb %dh,%cl
2038 shrl $16,%eax
2039 xorl 0x100(%ebp,%ebx,1),%edi
2040 movb %ah,%bl
2041 shrl $16,%edx
2042 xorl 0x300(%ebp,%ecx,1),%edi
2043 movb %dh,%cl
2044 andl $0xff,%eax
2045 andl $0xff,%edx
2046 xorl 0x600(%ebp,%ebx,1),%edi
2047 xorl 0x700(%ebp,%ecx,1),%edi
2048 movl (%esp),%ecx
2049 xorl 0x400(%ebp,%eax,1),%edi
2050 xorl 0x500(%ebp,%edx,1),%edi
2051
2052 movl 56(%ecx),%eax
2053 xorl %ebx,%ebx
2054 movl 60(%ecx),%edx
2055 xorl %edi,%eax
2056 xorl %ecx,%ecx
2057 xorl %edi,%edx
2058 andl $0xfcfcfcfc,%eax
2059 andl $0xcfcfcfcf,%edx
2060 movb %al,%bl
2061 movb %ah,%cl
2062 rorl $4,%edx
2063 xorl (%ebp,%ebx,1),%esi
2064 movb %dl,%bl
2065 xorl 0x200(%ebp,%ecx,1),%esi
2066 movb %dh,%cl
2067 shrl $16,%eax
2068 xorl 0x100(%ebp,%ebx,1),%esi
2069 movb %ah,%bl
2070 shrl $16,%edx
2071 xorl 0x300(%ebp,%ecx,1),%esi
2072 movb %dh,%cl
2073 andl $0xff,%eax
2074 andl $0xff,%edx
2075 xorl 0x600(%ebp,%ebx,1),%esi
2076 xorl 0x700(%ebp,%ecx,1),%esi
2077 movl (%esp),%ecx
2078 xorl 0x400(%ebp,%eax,1),%esi
2079 xorl 0x500(%ebp,%edx,1),%esi
2080
2081 movl 64(%ecx),%eax
2082 xorl %ebx,%ebx
2083 movl 68(%ecx),%edx
2084 xorl %esi,%eax
2085 xorl %ecx,%ecx
2086 xorl %esi,%edx
2087 andl $0xfcfcfcfc,%eax
2088 andl $0xcfcfcfcf,%edx
2089 movb %al,%bl
2090 movb %ah,%cl
2091 rorl $4,%edx
2092 xorl (%ebp,%ebx,1),%edi
2093 movb %dl,%bl
2094 xorl 0x200(%ebp,%ecx,1),%edi
2095 movb %dh,%cl
2096 shrl $16,%eax
2097 xorl 0x100(%ebp,%ebx,1),%edi
2098 movb %ah,%bl
2099 shrl $16,%edx
2100 xorl 0x300(%ebp,%ecx,1),%edi
2101 movb %dh,%cl
2102 andl $0xff,%eax
2103 andl $0xff,%edx
2104 xorl 0x600(%ebp,%ebx,1),%edi
2105 xorl 0x700(%ebp,%ecx,1),%edi
2106 movl (%esp),%ecx
2107 xorl 0x400(%ebp,%eax,1),%edi
2108 xorl 0x500(%ebp,%edx,1),%edi
2109
2110 movl 72(%ecx),%eax
2111 xorl %ebx,%ebx
2112 movl 76(%ecx),%edx
2113 xorl %edi,%eax
2114 xorl %ecx,%ecx
2115 xorl %edi,%edx
2116 andl $0xfcfcfcfc,%eax
2117 andl $0xcfcfcfcf,%edx
2118 movb %al,%bl
2119 movb %ah,%cl
2120 rorl $4,%edx
2121 xorl (%ebp,%ebx,1),%esi
2122 movb %dl,%bl
2123 xorl 0x200(%ebp,%ecx,1),%esi
2124 movb %dh,%cl
2125 shrl $16,%eax
2126 xorl 0x100(%ebp,%ebx,1),%esi
2127 movb %ah,%bl
2128 shrl $16,%edx
2129 xorl 0x300(%ebp,%ecx,1),%esi
2130 movb %dh,%cl
2131 andl $0xff,%eax
2132 andl $0xff,%edx
2133 xorl 0x600(%ebp,%ebx,1),%esi
2134 xorl 0x700(%ebp,%ecx,1),%esi
2135 movl (%esp),%ecx
2136 xorl 0x400(%ebp,%eax,1),%esi
2137 xorl 0x500(%ebp,%edx,1),%esi
2138
2139 movl 80(%ecx),%eax
2140 xorl %ebx,%ebx
2141 movl 84(%ecx),%edx
2142 xorl %esi,%eax
2143 xorl %ecx,%ecx
2144 xorl %esi,%edx
2145 andl $0xfcfcfcfc,%eax
2146 andl $0xcfcfcfcf,%edx
2147 movb %al,%bl
2148 movb %ah,%cl
2149 rorl $4,%edx
2150 xorl (%ebp,%ebx,1),%edi
2151 movb %dl,%bl
2152 xorl 0x200(%ebp,%ecx,1),%edi
2153 movb %dh,%cl
2154 shrl $16,%eax
2155 xorl 0x100(%ebp,%ebx,1),%edi
2156 movb %ah,%bl
2157 shrl $16,%edx
2158 xorl 0x300(%ebp,%ecx,1),%edi
2159 movb %dh,%cl
2160 andl $0xff,%eax
2161 andl $0xff,%edx
2162 xorl 0x600(%ebp,%ebx,1),%edi
2163 xorl 0x700(%ebp,%ecx,1),%edi
2164 movl (%esp),%ecx
2165 xorl 0x400(%ebp,%eax,1),%edi
2166 xorl 0x500(%ebp,%edx,1),%edi
2167
2168 movl 88(%ecx),%eax
2169 xorl %ebx,%ebx
2170 movl 92(%ecx),%edx
2171 xorl %edi,%eax
2172 xorl %ecx,%ecx
2173 xorl %edi,%edx
2174 andl $0xfcfcfcfc,%eax
2175 andl $0xcfcfcfcf,%edx
2176 movb %al,%bl
2177 movb %ah,%cl
2178 rorl $4,%edx
2179 xorl (%ebp,%ebx,1),%esi
2180 movb %dl,%bl
2181 xorl 0x200(%ebp,%ecx,1),%esi
2182 movb %dh,%cl
2183 shrl $16,%eax
2184 xorl 0x100(%ebp,%ebx,1),%esi
2185 movb %ah,%bl
2186 shrl $16,%edx
2187 xorl 0x300(%ebp,%ecx,1),%esi
2188 movb %dh,%cl
2189 andl $0xff,%eax
2190 andl $0xff,%edx
2191 xorl 0x600(%ebp,%ebx,1),%esi
2192 xorl 0x700(%ebp,%ecx,1),%esi
2193 movl (%esp),%ecx
2194 xorl 0x400(%ebp,%eax,1),%esi
2195 xorl 0x500(%ebp,%edx,1),%esi
2196
2197 movl 96(%ecx),%eax
2198 xorl %ebx,%ebx
2199 movl 100(%ecx),%edx
2200 xorl %esi,%eax
2201 xorl %ecx,%ecx
2202 xorl %esi,%edx
2203 andl $0xfcfcfcfc,%eax
2204 andl $0xcfcfcfcf,%edx
2205 movb %al,%bl
2206 movb %ah,%cl
2207 rorl $4,%edx
2208 xorl (%ebp,%ebx,1),%edi
2209 movb %dl,%bl
2210 xorl 0x200(%ebp,%ecx,1),%edi
2211 movb %dh,%cl
2212 shrl $16,%eax
2213 xorl 0x100(%ebp,%ebx,1),%edi
2214 movb %ah,%bl
2215 shrl $16,%edx
2216 xorl 0x300(%ebp,%ecx,1),%edi
2217 movb %dh,%cl
2218 andl $0xff,%eax
2219 andl $0xff,%edx
2220 xorl 0x600(%ebp,%ebx,1),%edi
2221 xorl 0x700(%ebp,%ecx,1),%edi
2222 movl (%esp),%ecx
2223 xorl 0x400(%ebp,%eax,1),%edi
2224 xorl 0x500(%ebp,%edx,1),%edi
2225
2226 movl 104(%ecx),%eax
2227 xorl %ebx,%ebx
2228 movl 108(%ecx),%edx
2229 xorl %edi,%eax
2230 xorl %ecx,%ecx
2231 xorl %edi,%edx
2232 andl $0xfcfcfcfc,%eax
2233 andl $0xcfcfcfcf,%edx
2234 movb %al,%bl
2235 movb %ah,%cl
2236 rorl $4,%edx
2237 xorl (%ebp,%ebx,1),%esi
2238 movb %dl,%bl
2239 xorl 0x200(%ebp,%ecx,1),%esi
2240 movb %dh,%cl
2241 shrl $16,%eax
2242 xorl 0x100(%ebp,%ebx,1),%esi
2243 movb %ah,%bl
2244 shrl $16,%edx
2245 xorl 0x300(%ebp,%ecx,1),%esi
2246 movb %dh,%cl
2247 andl $0xff,%eax
2248 andl $0xff,%edx
2249 xorl 0x600(%ebp,%ebx,1),%esi
2250 xorl 0x700(%ebp,%ecx,1),%esi
2251 movl (%esp),%ecx
2252 xorl 0x400(%ebp,%eax,1),%esi
2253 xorl 0x500(%ebp,%edx,1),%esi
2254
2255 movl 112(%ecx),%eax
2256 xorl %ebx,%ebx
2257 movl 116(%ecx),%edx
2258 xorl %esi,%eax
2259 xorl %ecx,%ecx
2260 xorl %esi,%edx
2261 andl $0xfcfcfcfc,%eax
2262 andl $0xcfcfcfcf,%edx
2263 movb %al,%bl
2264 movb %ah,%cl
2265 rorl $4,%edx
2266 xorl (%ebp,%ebx,1),%edi
2267 movb %dl,%bl
2268 xorl 0x200(%ebp,%ecx,1),%edi
2269 movb %dh,%cl
2270 shrl $16,%eax
2271 xorl 0x100(%ebp,%ebx,1),%edi
2272 movb %ah,%bl
2273 shrl $16,%edx
2274 xorl 0x300(%ebp,%ecx,1),%edi
2275 movb %dh,%cl
2276 andl $0xff,%eax
2277 andl $0xff,%edx
2278 xorl 0x600(%ebp,%ebx,1),%edi
2279 xorl 0x700(%ebp,%ecx,1),%edi
2280 movl (%esp),%ecx
2281 xorl 0x400(%ebp,%eax,1),%edi
2282 xorl 0x500(%ebp,%edx,1),%edi
2283
2284 movl 120(%ecx),%eax
2285 xorl %ebx,%ebx
2286 movl 124(%ecx),%edx
2287 xorl %edi,%eax
2288 xorl %ecx,%ecx
2289 xorl %edi,%edx
2290 andl $0xfcfcfcfc,%eax
2291 andl $0xcfcfcfcf,%edx
2292 movb %al,%bl
2293 movb %ah,%cl
2294 rorl $4,%edx
2295 xorl (%ebp,%ebx,1),%esi
2296 movb %dl,%bl
2297 xorl 0x200(%ebp,%ecx,1),%esi
2298 movb %dh,%cl
2299 shrl $16,%eax
2300 xorl 0x100(%ebp,%ebx,1),%esi
2301 movb %ah,%bl
2302 shrl $16,%edx
2303 xorl 0x300(%ebp,%ecx,1),%esi
2304 movb %dh,%cl
2305 andl $0xff,%eax
2306 andl $0xff,%edx
2307 xorl 0x600(%ebp,%ebx,1),%esi
2308 xorl 0x700(%ebp,%ecx,1),%esi
2309 movl (%esp),%ecx
2310 xorl 0x400(%ebp,%eax,1),%esi
2311 xorl 0x500(%ebp,%edx,1),%esi
2312 addl $4,%esp
2313 ret
2314 .size _x86_DES_encrypt,.-_x86_DES_encrypt
2315 .type _x86_DES_decrypt,@function
2316 .align 16
2317 _x86_DES_decrypt:
2318 pushl %ecx
2319
2320 movl 120(%ecx),%eax
2321 xorl %ebx,%ebx
2322 movl 124(%ecx),%edx
2323 xorl %esi,%eax
2324 xorl %ecx,%ecx
2325 xorl %esi,%edx
2326 andl $0xfcfcfcfc,%eax
2327 andl $0xcfcfcfcf,%edx
2328 movb %al,%bl
2329 movb %ah,%cl
2330 rorl $4,%edx
2331 xorl (%ebp,%ebx,1),%edi
2332 movb %dl,%bl
2333 xorl 0x200(%ebp,%ecx,1),%edi
2334 movb %dh,%cl
2335 shrl $16,%eax
2336 xorl 0x100(%ebp,%ebx,1),%edi
2337 movb %ah,%bl
2338 shrl $16,%edx
2339 xorl 0x300(%ebp,%ecx,1),%edi
2340 movb %dh,%cl
2341 andl $0xff,%eax
2342 andl $0xff,%edx
2343 xorl 0x600(%ebp,%ebx,1),%edi
2344 xorl 0x700(%ebp,%ecx,1),%edi
2345 movl (%esp),%ecx
2346 xorl 0x400(%ebp,%eax,1),%edi
2347 xorl 0x500(%ebp,%edx,1),%edi
2348
2349 movl 112(%ecx),%eax
2350 xorl %ebx,%ebx
2351 movl 116(%ecx),%edx
2352 xorl %edi,%eax
2353 xorl %ecx,%ecx
2354 xorl %edi,%edx
2355 andl $0xfcfcfcfc,%eax
2356 andl $0xcfcfcfcf,%edx
2357 movb %al,%bl
2358 movb %ah,%cl
2359 rorl $4,%edx
2360 xorl (%ebp,%ebx,1),%esi
2361 movb %dl,%bl
2362 xorl 0x200(%ebp,%ecx,1),%esi
2363 movb %dh,%cl
2364 shrl $16,%eax
2365 xorl 0x100(%ebp,%ebx,1),%esi
2366 movb %ah,%bl
2367 shrl $16,%edx
2368 xorl 0x300(%ebp,%ecx,1),%esi
2369 movb %dh,%cl
2370 andl $0xff,%eax
2371 andl $0xff,%edx
2372 xorl 0x600(%ebp,%ebx,1),%esi
2373 xorl 0x700(%ebp,%ecx,1),%esi
2374 movl (%esp),%ecx
2375 xorl 0x400(%ebp,%eax,1),%esi
2376 xorl 0x500(%ebp,%edx,1),%esi
2377
2378 movl 104(%ecx),%eax
2379 xorl %ebx,%ebx
2380 movl 108(%ecx),%edx
2381 xorl %esi,%eax
2382 xorl %ecx,%ecx
2383 xorl %esi,%edx
2384 andl $0xfcfcfcfc,%eax
2385 andl $0xcfcfcfcf,%edx
2386 movb %al,%bl
2387 movb %ah,%cl
2388 rorl $4,%edx
2389 xorl (%ebp,%ebx,1),%edi
2390 movb %dl,%bl
2391 xorl 0x200(%ebp,%ecx,1),%edi
2392 movb %dh,%cl
2393 shrl $16,%eax
2394 xorl 0x100(%ebp,%ebx,1),%edi
2395 movb %ah,%bl
2396 shrl $16,%edx
2397 xorl 0x300(%ebp,%ecx,1),%edi
2398 movb %dh,%cl
2399 andl $0xff,%eax
2400 andl $0xff,%edx
2401 xorl 0x600(%ebp,%ebx,1),%edi
2402 xorl 0x700(%ebp,%ecx,1),%edi
2403 movl (%esp),%ecx
2404 xorl 0x400(%ebp,%eax,1),%edi
2405 xorl 0x500(%ebp,%edx,1),%edi
2406
2407 movl 96(%ecx),%eax
2408 xorl %ebx,%ebx
2409 movl 100(%ecx),%edx
2410 xorl %edi,%eax
2411 xorl %ecx,%ecx
2412 xorl %edi,%edx
2413 andl $0xfcfcfcfc,%eax
2414 andl $0xcfcfcfcf,%edx
2415 movb %al,%bl
2416 movb %ah,%cl
2417 rorl $4,%edx
2418 xorl (%ebp,%ebx,1),%esi
2419 movb %dl,%bl
2420 xorl 0x200(%ebp,%ecx,1),%esi
2421 movb %dh,%cl
2422 shrl $16,%eax
2423 xorl 0x100(%ebp,%ebx,1),%esi
2424 movb %ah,%bl
2425 shrl $16,%edx
2426 xorl 0x300(%ebp,%ecx,1),%esi
2427 movb %dh,%cl
2428 andl $0xff,%eax
2429 andl $0xff,%edx
2430 xorl 0x600(%ebp,%ebx,1),%esi
2431 xorl 0x700(%ebp,%ecx,1),%esi
2432 movl (%esp),%ecx
2433 xorl 0x400(%ebp,%eax,1),%esi
2434 xorl 0x500(%ebp,%edx,1),%esi
2435
2436 movl 88(%ecx),%eax
2437 xorl %ebx,%ebx
2438 movl 92(%ecx),%edx
2439 xorl %esi,%eax
2440 xorl %ecx,%ecx
2441 xorl %esi,%edx
2442 andl $0xfcfcfcfc,%eax
2443 andl $0xcfcfcfcf,%edx
2444 movb %al,%bl
2445 movb %ah,%cl
2446 rorl $4,%edx
2447 xorl (%ebp,%ebx,1),%edi
2448 movb %dl,%bl
2449 xorl 0x200(%ebp,%ecx,1),%edi
2450 movb %dh,%cl
2451 shrl $16,%eax
2452 xorl 0x100(%ebp,%ebx,1),%edi
2453 movb %ah,%bl
2454 shrl $16,%edx
2455 xorl 0x300(%ebp,%ecx,1),%edi
2456 movb %dh,%cl
2457 andl $0xff,%eax
2458 andl $0xff,%edx
2459 xorl 0x600(%ebp,%ebx,1),%edi
2460 xorl 0x700(%ebp,%ecx,1),%edi
2461 movl (%esp),%ecx
2462 xorl 0x400(%ebp,%eax,1),%edi
2463 xorl 0x500(%ebp,%edx,1),%edi
2464
2465 movl 80(%ecx),%eax
2466 xorl %ebx,%ebx
2467 movl 84(%ecx),%edx
2468 xorl %edi,%eax
2469 xorl %ecx,%ecx
2470 xorl %edi,%edx
2471 andl $0xfcfcfcfc,%eax
2472 andl $0xcfcfcfcf,%edx
2473 movb %al,%bl
2474 movb %ah,%cl
2475 rorl $4,%edx
2476 xorl (%ebp,%ebx,1),%esi
2477 movb %dl,%bl
2478 xorl 0x200(%ebp,%ecx,1),%esi
2479 movb %dh,%cl
2480 shrl $16,%eax
2481 xorl 0x100(%ebp,%ebx,1),%esi
2482 movb %ah,%bl
2483 shrl $16,%edx
2484 xorl 0x300(%ebp,%ecx,1),%esi
2485 movb %dh,%cl
2486 andl $0xff,%eax
2487 andl $0xff,%edx
2488 xorl 0x600(%ebp,%ebx,1),%esi
2489 xorl 0x700(%ebp,%ecx,1),%esi
2490 movl (%esp),%ecx
2491 xorl 0x400(%ebp,%eax,1),%esi
2492 xorl 0x500(%ebp,%edx,1),%esi
2493
2494 movl 72(%ecx),%eax
2495 xorl %ebx,%ebx
2496 movl 76(%ecx),%edx
2497 xorl %esi,%eax
2498 xorl %ecx,%ecx
2499 xorl %esi,%edx
2500 andl $0xfcfcfcfc,%eax
2501 andl $0xcfcfcfcf,%edx
2502 movb %al,%bl
2503 movb %ah,%cl
2504 rorl $4,%edx
2505 xorl (%ebp,%ebx,1),%edi
2506 movb %dl,%bl
2507 xorl 0x200(%ebp,%ecx,1),%edi
2508 movb %dh,%cl
2509 shrl $16,%eax
2510 xorl 0x100(%ebp,%ebx,1),%edi
2511 movb %ah,%bl
2512 shrl $16,%edx
2513 xorl 0x300(%ebp,%ecx,1),%edi
2514 movb %dh,%cl
2515 andl $0xff,%eax
2516 andl $0xff,%edx
2517 xorl 0x600(%ebp,%ebx,1),%edi
2518 xorl 0x700(%ebp,%ecx,1),%edi
2519 movl (%esp),%ecx
2520 xorl 0x400(%ebp,%eax,1),%edi
2521 xorl 0x500(%ebp,%edx,1),%edi
2522
2523 movl 64(%ecx),%eax
2524 xorl %ebx,%ebx
2525 movl 68(%ecx),%edx
2526 xorl %edi,%eax
2527 xorl %ecx,%ecx
2528 xorl %edi,%edx
2529 andl $0xfcfcfcfc,%eax
2530 andl $0xcfcfcfcf,%edx
2531 movb %al,%bl
2532 movb %ah,%cl
2533 rorl $4,%edx
2534 xorl (%ebp,%ebx,1),%esi
2535 movb %dl,%bl
2536 xorl 0x200(%ebp,%ecx,1),%esi
2537 movb %dh,%cl
2538 shrl $16,%eax
2539 xorl 0x100(%ebp,%ebx,1),%esi
2540 movb %ah,%bl
2541 shrl $16,%edx
2542 xorl 0x300(%ebp,%ecx,1),%esi
2543 movb %dh,%cl
2544 andl $0xff,%eax
2545 andl $0xff,%edx
2546 xorl 0x600(%ebp,%ebx,1),%esi
2547 xorl 0x700(%ebp,%ecx,1),%esi
2548 movl (%esp),%ecx
2549 xorl 0x400(%ebp,%eax,1),%esi
2550 xorl 0x500(%ebp,%edx,1),%esi
2551
2552 movl 56(%ecx),%eax
2553 xorl %ebx,%ebx
2554 movl 60(%ecx),%edx
2555 xorl %esi,%eax
2556 xorl %ecx,%ecx
2557 xorl %esi,%edx
2558 andl $0xfcfcfcfc,%eax
2559 andl $0xcfcfcfcf,%edx
2560 movb %al,%bl
2561 movb %ah,%cl
2562 rorl $4,%edx
2563 xorl (%ebp,%ebx,1),%edi
2564 movb %dl,%bl
2565 xorl 0x200(%ebp,%ecx,1),%edi
2566 movb %dh,%cl
2567 shrl $16,%eax
2568 xorl 0x100(%ebp,%ebx,1),%edi
2569 movb %ah,%bl
2570 shrl $16,%edx
2571 xorl 0x300(%ebp,%ecx,1),%edi
2572 movb %dh,%cl
2573 andl $0xff,%eax
2574 andl $0xff,%edx
2575 xorl 0x600(%ebp,%ebx,1),%edi
2576 xorl 0x700(%ebp,%ecx,1),%edi
2577 movl (%esp),%ecx
2578 xorl 0x400(%ebp,%eax,1),%edi
2579 xorl 0x500(%ebp,%edx,1),%edi
2580
2581 movl 48(%ecx),%eax
2582 xorl %ebx,%ebx
2583 movl 52(%ecx),%edx
2584 xorl %edi,%eax
2585 xorl %ecx,%ecx
2586 xorl %edi,%edx
2587 andl $0xfcfcfcfc,%eax
2588 andl $0xcfcfcfcf,%edx
2589 movb %al,%bl
2590 movb %ah,%cl
2591 rorl $4,%edx
2592 xorl (%ebp,%ebx,1),%esi
2593 movb %dl,%bl
2594 xorl 0x200(%ebp,%ecx,1),%esi
2595 movb %dh,%cl
2596 shrl $16,%eax
2597 xorl 0x100(%ebp,%ebx,1),%esi
2598 movb %ah,%bl
2599 shrl $16,%edx
2600 xorl 0x300(%ebp,%ecx,1),%esi
2601 movb %dh,%cl
2602 andl $0xff,%eax
2603 andl $0xff,%edx
2604 xorl 0x600(%ebp,%ebx,1),%esi
2605 xorl 0x700(%ebp,%ecx,1),%esi
2606 movl (%esp),%ecx
2607 xorl 0x400(%ebp,%eax,1),%esi
2608 xorl 0x500(%ebp,%edx,1),%esi
2609
2610 movl 40(%ecx),%eax
2611 xorl %ebx,%ebx
2612 movl 44(%ecx),%edx
2613 xorl %esi,%eax
2614 xorl %ecx,%ecx
2615 xorl %esi,%edx
2616 andl $0xfcfcfcfc,%eax
2617 andl $0xcfcfcfcf,%edx
2618 movb %al,%bl
2619 movb %ah,%cl
2620 rorl $4,%edx
2621 xorl (%ebp,%ebx,1),%edi
2622 movb %dl,%bl
2623 xorl 0x200(%ebp,%ecx,1),%edi
2624 movb %dh,%cl
2625 shrl $16,%eax
2626 xorl 0x100(%ebp,%ebx,1),%edi
2627 movb %ah,%bl
2628 shrl $16,%edx
2629 xorl 0x300(%ebp,%ecx,1),%edi
2630 movb %dh,%cl
2631 andl $0xff,%eax
2632 andl $0xff,%edx
2633 xorl 0x600(%ebp,%ebx,1),%edi
2634 xorl 0x700(%ebp,%ecx,1),%edi
2635 movl (%esp),%ecx
2636 xorl 0x400(%ebp,%eax,1),%edi
2637 xorl 0x500(%ebp,%edx,1),%edi
2638
2639 movl 32(%ecx),%eax
2640 xorl %ebx,%ebx
2641 movl 36(%ecx),%edx
2642 xorl %edi,%eax
2643 xorl %ecx,%ecx
2644 xorl %edi,%edx
2645 andl $0xfcfcfcfc,%eax
2646 andl $0xcfcfcfcf,%edx
2647 movb %al,%bl
2648 movb %ah,%cl
2649 rorl $4,%edx
2650 xorl (%ebp,%ebx,1),%esi
2651 movb %dl,%bl
2652 xorl 0x200(%ebp,%ecx,1),%esi
2653 movb %dh,%cl
2654 shrl $16,%eax
2655 xorl 0x100(%ebp,%ebx,1),%esi
2656 movb %ah,%bl
2657 shrl $16,%edx
2658 xorl 0x300(%ebp,%ecx,1),%esi
2659 movb %dh,%cl
2660 andl $0xff,%eax
2661 andl $0xff,%edx
2662 xorl 0x600(%ebp,%ebx,1),%esi
2663 xorl 0x700(%ebp,%ecx,1),%esi
2664 movl (%esp),%ecx
2665 xorl 0x400(%ebp,%eax,1),%esi
2666 xorl 0x500(%ebp,%edx,1),%esi
2667
2668 movl 24(%ecx),%eax
2669 xorl %ebx,%ebx
2670 movl 28(%ecx),%edx
2671 xorl %esi,%eax
2672 xorl %ecx,%ecx
2673 xorl %esi,%edx
2674 andl $0xfcfcfcfc,%eax
2675 andl $0xcfcfcfcf,%edx
2676 movb %al,%bl
2677 movb %ah,%cl
2678 rorl $4,%edx
2679 xorl (%ebp,%ebx,1),%edi
2680 movb %dl,%bl
2681 xorl 0x200(%ebp,%ecx,1),%edi
2682 movb %dh,%cl
2683 shrl $16,%eax
2684 xorl 0x100(%ebp,%ebx,1),%edi
2685 movb %ah,%bl
2686 shrl $16,%edx
2687 xorl 0x300(%ebp,%ecx,1),%edi
2688 movb %dh,%cl
2689 andl $0xff,%eax
2690 andl $0xff,%edx
2691 xorl 0x600(%ebp,%ebx,1),%edi
2692 xorl 0x700(%ebp,%ecx,1),%edi
2693 movl (%esp),%ecx
2694 xorl 0x400(%ebp,%eax,1),%edi
2695 xorl 0x500(%ebp,%edx,1),%edi
2696
2697 movl 16(%ecx),%eax
2698 xorl %ebx,%ebx
2699 movl 20(%ecx),%edx
2700 xorl %edi,%eax
2701 xorl %ecx,%ecx
2702 xorl %edi,%edx
2703 andl $0xfcfcfcfc,%eax
2704 andl $0xcfcfcfcf,%edx
2705 movb %al,%bl
2706 movb %ah,%cl
2707 rorl $4,%edx
2708 xorl (%ebp,%ebx,1),%esi
2709 movb %dl,%bl
2710 xorl 0x200(%ebp,%ecx,1),%esi
2711 movb %dh,%cl
2712 shrl $16,%eax
2713 xorl 0x100(%ebp,%ebx,1),%esi
2714 movb %ah,%bl
2715 shrl $16,%edx
2716 xorl 0x300(%ebp,%ecx,1),%esi
2717 movb %dh,%cl
2718 andl $0xff,%eax
2719 andl $0xff,%edx
2720 xorl 0x600(%ebp,%ebx,1),%esi
2721 xorl 0x700(%ebp,%ecx,1),%esi
2722 movl (%esp),%ecx
2723 xorl 0x400(%ebp,%eax,1),%esi
2724 xorl 0x500(%ebp,%edx,1),%esi
2725
2726 movl 8(%ecx),%eax
2727 xorl %ebx,%ebx
2728 movl 12(%ecx),%edx
2729 xorl %esi,%eax
2730 xorl %ecx,%ecx
2731 xorl %esi,%edx
2732 andl $0xfcfcfcfc,%eax
2733 andl $0xcfcfcfcf,%edx
2734 movb %al,%bl
2735 movb %ah,%cl
2736 rorl $4,%edx
2737 xorl (%ebp,%ebx,1),%edi
2738 movb %dl,%bl
2739 xorl 0x200(%ebp,%ecx,1),%edi
2740 movb %dh,%cl
2741 shrl $16,%eax
2742 xorl 0x100(%ebp,%ebx,1),%edi
2743 movb %ah,%bl
2744 shrl $16,%edx
2745 xorl 0x300(%ebp,%ecx,1),%edi
2746 movb %dh,%cl
2747 andl $0xff,%eax
2748 andl $0xff,%edx
2749 xorl 0x600(%ebp,%ebx,1),%edi
2750 xorl 0x700(%ebp,%ecx,1),%edi
2751 movl (%esp),%ecx
2752 xorl 0x400(%ebp,%eax,1),%edi
2753 xorl 0x500(%ebp,%edx,1),%edi
2754
2755 movl (%ecx),%eax
2756 xorl %ebx,%ebx
2757 movl 4(%ecx),%edx
2758 xorl %edi,%eax
2759 xorl %ecx,%ecx
2760 xorl %edi,%edx
2761 andl $0xfcfcfcfc,%eax
2762 andl $0xcfcfcfcf,%edx
2763 movb %al,%bl
2764 movb %ah,%cl
2765 rorl $4,%edx
2766 xorl (%ebp,%ebx,1),%esi
2767 movb %dl,%bl
2768 xorl 0x200(%ebp,%ecx,1),%esi
2769 movb %dh,%cl
2770 shrl $16,%eax
2771 xorl 0x100(%ebp,%ebx,1),%esi
2772 movb %ah,%bl
2773 shrl $16,%edx
2774 xorl 0x300(%ebp,%ecx,1),%esi
2775 movb %dh,%cl
2776 andl $0xff,%eax
2777 andl $0xff,%edx
2778 xorl 0x600(%ebp,%ebx,1),%esi
2779 xorl 0x700(%ebp,%ecx,1),%esi
2780 movl (%esp),%ecx
2781 xorl 0x400(%ebp,%eax,1),%esi
2782 xorl 0x500(%ebp,%edx,1),%esi
2783 addl $4,%esp
2784 ret
2785 .size _x86_DES_decrypt,.-_x86_DES_decrypt
2786 .globl DES_encrypt1
2787 .type DES_encrypt1,@function
2788 .align 16
2789 DES_encrypt1:
2790 .L_DES_encrypt1_begin:
2791 pushl %esi
2792 pushl %edi
2793
2794
2795 movl 12(%esp),%esi
2796 xorl %ecx,%ecx
2797 pushl %ebx
2798 pushl %ebp
2799 movl (%esi),%eax
2800 movl 28(%esp),%ebx
2801 movl 4(%esi),%edi
2802
2803
2804 roll $4,%eax
2805 movl %eax,%esi
2806 xorl %edi,%eax
2807 andl $0xf0f0f0f0,%eax
2808 xorl %eax,%esi
2809 xorl %eax,%edi
2810
2811 roll $20,%edi
2812 movl %edi,%eax
2813 xorl %esi,%edi
2814 andl $0xfff0000f,%edi
2815 xorl %edi,%eax
2816 xorl %edi,%esi
2817
2818 roll $14,%eax
2819 movl %eax,%edi
2820 xorl %esi,%eax
2821 andl $0x33333333,%eax
2822 xorl %eax,%edi
2823 xorl %eax,%esi
2824
2825 roll $22,%esi
2826 movl %esi,%eax
2827 xorl %edi,%esi
2828 andl $0x03fc03fc,%esi
2829 xorl %esi,%eax
2830 xorl %esi,%edi
2831
2832 roll $9,%eax
2833 movl %eax,%esi
2834 xorl %edi,%eax
2835 andl $0xaaaaaaaa,%eax
2836 xorl %eax,%esi
2837 xorl %eax,%edi
2838
2839 roll $1,%edi
2840 call .L000pic_point
2841 .L000pic_point:
2842 popl %ebp
2843 leal .Ldes_sptrans-.L000pic_point(%ebp),%ebp
2844 movl 24(%esp),%ecx
2845 cmpl $0,%ebx
2846 je .L001decrypt
2847 call _x86_DES_encrypt
2848 jmp .L002done
2849 .L001decrypt:
2850 call _x86_DES_decrypt
2851 .L002done:
2852
2853
2854 movl 20(%esp),%edx
2855 rorl $1,%esi
2856 movl %edi,%eax
2857 xorl %esi,%edi
2858 andl $0xaaaaaaaa,%edi
2859 xorl %edi,%eax
2860 xorl %edi,%esi
2861
2862 roll $23,%eax
2863 movl %eax,%edi
2864 xorl %esi,%eax
2865 andl $0x03fc03fc,%eax
2866 xorl %eax,%edi
2867 xorl %eax,%esi
2868
2869 roll $10,%edi
2870 movl %edi,%eax
2871 xorl %esi,%edi
2872 andl $0x33333333,%edi
2873 xorl %edi,%eax
2874 xorl %edi,%esi
2875
2876 roll $18,%esi
2877 movl %esi,%edi
2878 xorl %eax,%esi
2879 andl $0xfff0000f,%esi
2880 xorl %esi,%edi
2881 xorl %esi,%eax
2882
2883 roll $12,%edi
2884 movl %edi,%esi
2885 xorl %eax,%edi
2886 andl $0xf0f0f0f0,%edi
2887 xorl %edi,%esi
2888 xorl %edi,%eax
2889
2890 rorl $4,%eax
2891 movl %eax,(%edx)
2892 movl %esi,4(%edx)
2893 popl %ebp
2894 popl %ebx
2895 popl %edi
2896 popl %esi
2897 ret
2898 .size DES_encrypt1,.-.L_DES_encrypt1_begin
2899 .globl DES_encrypt2
2900 .type DES_encrypt2,@function
2901 .align 16
2902 DES_encrypt2:
2903 .L_DES_encrypt2_begin:
2904 pushl %esi
2905 pushl %edi
2906
2907
2908 movl 12(%esp),%eax
2909 xorl %ecx,%ecx
2910 pushl %ebx
2911 pushl %ebp
2912 movl (%eax),%esi
2913 movl 28(%esp),%ebx
2914 roll $3,%esi
2915 movl 4(%eax),%edi
2916 roll $3,%edi
2917 call .L003pic_point
2918 .L003pic_point:
2919 popl %ebp
2920 leal .Ldes_sptrans-.L003pic_point(%ebp),%ebp
2921 movl 24(%esp),%ecx
2922 cmpl $0,%ebx
2923 je .L004decrypt
2924 call _x86_DES_encrypt
2925 jmp .L005done
2926 .L004decrypt:
2927 call _x86_DES_decrypt
2928 .L005done:
2929
2930
2931 rorl $3,%edi
2932 movl 20(%esp),%eax
2933 rorl $3,%esi
2934 movl %edi,(%eax)
2935 movl %esi,4(%eax)
2936 popl %ebp
2937 popl %ebx
2938 popl %edi
2939 popl %esi
2940 ret
2941 .size DES_encrypt2,.-.L_DES_encrypt2_begin
2942 .globl DES_encrypt3
2943 .type DES_encrypt3,@function
2944 .align 16
2945 DES_encrypt3:
2946 .L_DES_encrypt3_begin:
2947 pushl %ebx
2948 movl 8(%esp),%ebx
2949 pushl %ebp
2950 pushl %esi
2951 pushl %edi
2952
2953
2954 movl (%ebx),%edi
2955 movl 4(%ebx),%esi
2956 subl $12,%esp
2957
2958
2959 roll $4,%edi
2960 movl %edi,%edx
2961 xorl %esi,%edi
2962 andl $0xf0f0f0f0,%edi
2963 xorl %edi,%edx
2964 xorl %edi,%esi
2965
2966 roll $20,%esi
2967 movl %esi,%edi
2968 xorl %edx,%esi
2969 andl $0xfff0000f,%esi
2970 xorl %esi,%edi
2971 xorl %esi,%edx
2972
2973 roll $14,%edi
2974 movl %edi,%esi
2975 xorl %edx,%edi
2976 andl $0x33333333,%edi
2977 xorl %edi,%esi
2978 xorl %edi,%edx
2979
2980 roll $22,%edx
2981 movl %edx,%edi
2982 xorl %esi,%edx
2983 andl $0x03fc03fc,%edx
2984 xorl %edx,%edi
2985 xorl %edx,%esi
2986
2987 roll $9,%edi
2988 movl %edi,%edx
2989 xorl %esi,%edi
2990 andl $0xaaaaaaaa,%edi
2991 xorl %edi,%edx
2992 xorl %edi,%esi
2993
2994 rorl $3,%edx
2995 rorl $2,%esi
2996 movl %esi,4(%ebx)
2997 movl 36(%esp),%eax
2998 movl %edx,(%ebx)
2999 movl 40(%esp),%edi
3000 movl 44(%esp),%esi
3001 movl $1,8(%esp)
3002 movl %eax,4(%esp)
3003 movl %ebx,(%esp)
3004 call .L_DES_encrypt2_begin
3005 movl $0,8(%esp)
3006 movl %edi,4(%esp)
3007 movl %ebx,(%esp)
3008 call .L_DES_encrypt2_begin
3009 movl $1,8(%esp)
3010 movl %esi,4(%esp)
3011 movl %ebx,(%esp)
3012 call .L_DES_encrypt2_begin
3013 addl $12,%esp
3014 movl (%ebx),%edi
3015 movl 4(%ebx),%esi
3016
3017
3018 roll $2,%esi
3019 roll $3,%edi
3020 movl %edi,%eax
3021 xorl %esi,%edi
3022 andl $0xaaaaaaaa,%edi
3023 xorl %edi,%eax
3024 xorl %edi,%esi
3025
3026 roll $23,%eax
3027 movl %eax,%edi
3028 xorl %esi,%eax
3029 andl $0x03fc03fc,%eax
3030 xorl %eax,%edi
3031 xorl %eax,%esi
3032
3033 roll $10,%edi
3034 movl %edi,%eax
3035 xorl %esi,%edi
3036 andl $0x33333333,%edi
3037 xorl %edi,%eax
3038 xorl %edi,%esi
3039
3040 roll $18,%esi
3041 movl %esi,%edi
3042 xorl %eax,%esi
3043 andl $0xfff0000f,%esi
3044 xorl %esi,%edi
3045 xorl %esi,%eax
3046
3047 roll $12,%edi
3048 movl %edi,%esi
3049 xorl %eax,%edi
3050 andl $0xf0f0f0f0,%edi
3051 xorl %edi,%esi
3052 xorl %edi,%eax
3053
3054 rorl $4,%eax
3055 movl %eax,(%ebx)
3056 movl %esi,4(%ebx)
3057 popl %edi
3058 popl %esi
3059 popl %ebp
3060 popl %ebx
3061 ret
3062 .size DES_encrypt3,.-.L_DES_encrypt3_begin
3063 .globl DES_decrypt3
3064 .type DES_decrypt3,@function
3065 .align 16
3066 DES_decrypt3:
3067 .L_DES_decrypt3_begin:
3068 pushl %ebx
3069 movl 8(%esp),%ebx
3070 pushl %ebp
3071 pushl %esi
3072 pushl %edi
3073
3074
3075 movl (%ebx),%edi
3076 movl 4(%ebx),%esi
3077 subl $12,%esp
3078
3079
3080 roll $4,%edi
3081 movl %edi,%edx
3082 xorl %esi,%edi
3083 andl $0xf0f0f0f0,%edi
3084 xorl %edi,%edx
3085 xorl %edi,%esi
3086
3087 roll $20,%esi
3088 movl %esi,%edi
3089 xorl %edx,%esi
3090 andl $0xfff0000f,%esi
3091 xorl %esi,%edi
3092 xorl %esi,%edx
3093
3094 roll $14,%edi
3095 movl %edi,%esi
3096 xorl %edx,%edi
3097 andl $0x33333333,%edi
3098 xorl %edi,%esi
3099 xorl %edi,%edx
3100
3101 roll $22,%edx
3102 movl %edx,%edi
3103 xorl %esi,%edx
3104 andl $0x03fc03fc,%edx
3105 xorl %edx,%edi
3106 xorl %edx,%esi
3107
3108 roll $9,%edi
3109 movl %edi,%edx
3110 xorl %esi,%edi
3111 andl $0xaaaaaaaa,%edi
3112 xorl %edi,%edx
3113 xorl %edi,%esi
3114
3115 rorl $3,%edx
3116 rorl $2,%esi
3117 movl %esi,4(%ebx)
3118 movl 36(%esp),%esi
3119 movl %edx,(%ebx)
3120 movl 40(%esp),%edi
3121 movl 44(%esp),%eax
3122 movl $0,8(%esp)
3123 movl %eax,4(%esp)
3124 movl %ebx,(%esp)
3125 call .L_DES_encrypt2_begin
3126 movl $1,8(%esp)
3127 movl %edi,4(%esp)
3128 movl %ebx,(%esp)
3129 call .L_DES_encrypt2_begin
3130 movl $0,8(%esp)
3131 movl %esi,4(%esp)
3132 movl %ebx,(%esp)
3133 call .L_DES_encrypt2_begin
3134 addl $12,%esp
3135 movl (%ebx),%edi
3136 movl 4(%ebx),%esi
3137
3138
3139 roll $2,%esi
3140 roll $3,%edi
3141 movl %edi,%eax
3142 xorl %esi,%edi
3143 andl $0xaaaaaaaa,%edi
3144 xorl %edi,%eax
3145 xorl %edi,%esi
3146
3147 roll $23,%eax
3148 movl %eax,%edi
3149 xorl %esi,%eax
3150 andl $0x03fc03fc,%eax
3151 xorl %eax,%edi
3152 xorl %eax,%esi
3153
3154 roll $10,%edi
3155 movl %edi,%eax
3156 xorl %esi,%edi
3157 andl $0x33333333,%edi
3158 xorl %edi,%eax
3159 xorl %edi,%esi
3160
3161 roll $18,%esi
3162 movl %esi,%edi
3163 xorl %eax,%esi
3164 andl $0xfff0000f,%esi
3165 xorl %esi,%edi
3166 xorl %esi,%eax
3167
3168 roll $12,%edi
3169 movl %edi,%esi
3170 xorl %eax,%edi
3171 andl $0xf0f0f0f0,%edi
3172 xorl %edi,%esi
3173 xorl %edi,%eax
3174
3175 rorl $4,%eax
3176 movl %eax,(%ebx)
3177 movl %esi,4(%ebx)
3178 popl %edi
3179 popl %esi
3180 popl %ebp
3181 popl %ebx
3182 ret
3183 .size DES_decrypt3,.-.L_DES_decrypt3_begin
3184 .globl DES_ncbc_encrypt
3185 .type DES_ncbc_encrypt,@function
3186 .align 16
3187 DES_ncbc_encrypt:
3188 .L_DES_ncbc_encrypt_begin:
3189
3190 pushl %ebp
3191 pushl %ebx
3192 pushl %esi
3193 pushl %edi
3194 movl 28(%esp),%ebp
3195
3196 movl 36(%esp),%ebx
3197 movl (%ebx),%esi
3198 movl 4(%ebx),%edi
3199 pushl %edi
3200 pushl %esi
3201 pushl %edi
3202 pushl %esi
3203 movl %esp,%ebx
3204 movl 36(%esp),%esi
3205 movl 40(%esp),%edi
3206
3207 movl 56(%esp),%ecx
3208
3209 pushl %ecx
3210
3211 movl 52(%esp),%eax
3212 pushl %eax
3213 pushl %ebx
3214 cmpl $0,%ecx
3215 jz .L006decrypt
3216 andl $4294967288,%ebp
3217 movl 12(%esp),%eax
3218 movl 16(%esp),%ebx
3219 jz .L007encrypt_finish
3220 .L008encrypt_loop:
3221 movl (%esi),%ecx
3222 movl 4(%esi),%edx
3223 xorl %ecx,%eax
3224 xorl %edx,%ebx
3225 movl %eax,12(%esp)
3226 movl %ebx,16(%esp)
3227 call .L_DES_encrypt1_begin
3228 movl 12(%esp),%eax
3229 movl 16(%esp),%ebx
3230 movl %eax,(%edi)
3231 movl %ebx,4(%edi)
3232 addl $8,%esi
3233 addl $8,%edi
3234 subl $8,%ebp
3235 jnz .L008encrypt_loop
3236 .L007encrypt_finish:
3237 movl 56(%esp),%ebp
3238 andl $7,%ebp
3239 jz .L009finish
3240 call .L010PIC_point
3241 .L010PIC_point:
3242 popl %edx
3243 leal .L011cbc_enc_jmp_table-.L010PIC_point(%edx),%ecx
3244 movl (%ecx,%ebp,4),%ebp
3245 addl %edx,%ebp
3246 xorl %ecx,%ecx
3247 xorl %edx,%edx
3248 jmp *%ebp
3249 .L012ej7:
3250 movb 6(%esi),%dh
3251 shll $8,%edx
3252 .L013ej6:
3253 movb 5(%esi),%dh
3254 .L014ej5:
3255 movb 4(%esi),%dl
3256 .L015ej4:
3257 movl (%esi),%ecx
3258 jmp .L016ejend
3259 .L017ej3:
3260 movb 2(%esi),%ch
3261 shll $8,%ecx
3262 .L018ej2:
3263 movb 1(%esi),%ch
3264 .L019ej1:
3265 movb (%esi),%cl
3266 .L016ejend:
3267 xorl %ecx,%eax
3268 xorl %edx,%ebx
3269 movl %eax,12(%esp)
3270 movl %ebx,16(%esp)
3271 call .L_DES_encrypt1_begin
3272 movl 12(%esp),%eax
3273 movl 16(%esp),%ebx
3274 movl %eax,(%edi)
3275 movl %ebx,4(%edi)
3276 jmp .L009finish
3277 .L006decrypt:
3278 andl $4294967288,%ebp
3279 movl 20(%esp),%eax
3280 movl 24(%esp),%ebx
3281 jz .L020decrypt_finish
3282 .L021decrypt_loop:
3283 movl (%esi),%eax
3284 movl 4(%esi),%ebx
3285 movl %eax,12(%esp)
3286 movl %ebx,16(%esp)
3287 call .L_DES_encrypt1_begin
3288 movl 12(%esp),%eax
3289 movl 16(%esp),%ebx
3290 movl 20(%esp),%ecx
3291 movl 24(%esp),%edx
3292 xorl %eax,%ecx
3293 xorl %ebx,%edx
3294 movl (%esi),%eax
3295 movl 4(%esi),%ebx
3296 movl %ecx,(%edi)
3297 movl %edx,4(%edi)
3298 movl %eax,20(%esp)
3299 movl %ebx,24(%esp)
3300 addl $8,%esi
3301 addl $8,%edi
3302 subl $8,%ebp
3303 jnz .L021decrypt_loop
3304 .L020decrypt_finish:
3305 movl 56(%esp),%ebp
3306 andl $7,%ebp
3307 jz .L009finish
3308 movl (%esi),%eax
3309 movl 4(%esi),%ebx
3310 movl %eax,12(%esp)
3311 movl %ebx,16(%esp)
3312 call .L_DES_encrypt1_begin
3313 movl 12(%esp),%eax
3314 movl 16(%esp),%ebx
3315 movl 20(%esp),%ecx
3316 movl 24(%esp),%edx
3317 xorl %eax,%ecx
3318 xorl %ebx,%edx
3319 movl (%esi),%eax
3320 movl 4(%esi),%ebx
3321 .L022dj7:
3322 rorl $16,%edx
3323 movb %dl,6(%edi)
3324 shrl $16,%edx
3325 .L023dj6:
3326 movb %dh,5(%edi)
3327 .L024dj5:
3328 movb %dl,4(%edi)
3329 .L025dj4:
3330 movl %ecx,(%edi)
3331 jmp .L026djend
3332 .L027dj3:
3333 rorl $16,%ecx
3334 movb %cl,2(%edi)
3335 shll $16,%ecx
3336 .L028dj2:
3337 movb %ch,1(%esi)
3338 .L029dj1:
3339 movb %cl,(%esi)
3340 .L026djend:
3341 jmp .L009finish
3342 .L009finish:
3343 movl 64(%esp),%ecx
3344 addl $28,%esp
3345 movl %eax,(%ecx)
3346 movl %ebx,4(%ecx)
3347 popl %edi
3348 popl %esi
3349 popl %ebx
3350 popl %ebp
3351 ret
3352 .align 64
3353 .L011cbc_enc_jmp_table:
3354 .long 0
3355 .long .L019ej1-.L010PIC_point
3356 .long .L018ej2-.L010PIC_point
3357 .long .L017ej3-.L010PIC_point
3358 .long .L015ej4-.L010PIC_point
3359 .long .L014ej5-.L010PIC_point
3360 .long .L013ej6-.L010PIC_point
3361 .long .L012ej7-.L010PIC_point
3362 .align 64
3363 .size DES_ncbc_encrypt,.-.L_DES_ncbc_encrypt_begin
3364 .globl DES_ede3_cbc_encrypt
3365 .type DES_ede3_cbc_encrypt,@function
3366 .align 16
3367 DES_ede3_cbc_encrypt:
3368 .L_DES_ede3_cbc_encrypt_begin:
3369
3370 pushl %ebp
3371 pushl %ebx
3372 pushl %esi
3373 pushl %edi
3374 movl 28(%esp),%ebp
3375
3376 movl 44(%esp),%ebx
3377 movl (%ebx),%esi
3378 movl 4(%ebx),%edi
3379 pushl %edi
3380 pushl %esi
3381 pushl %edi
3382 pushl %esi
3383 movl %esp,%ebx
3384 movl 36(%esp),%esi
3385 movl 40(%esp),%edi
3386
3387 movl 64(%esp),%ecx
3388
3389 movl 56(%esp),%eax
3390 pushl %eax
3391
3392 movl 56(%esp),%eax
3393 pushl %eax
3394
3395 movl 56(%esp),%eax
3396 pushl %eax
3397 pushl %ebx
3398 cmpl $0,%ecx
3399 jz .L030decrypt
3400 andl $4294967288,%ebp
3401 movl 16(%esp),%eax
3402 movl 20(%esp),%ebx
3403 jz .L031encrypt_finish
3404 .L032encrypt_loop:
3405 movl (%esi),%ecx
3406 movl 4(%esi),%edx
3407 xorl %ecx,%eax
3408 xorl %edx,%ebx
3409 movl %eax,16(%esp)
3410 movl %ebx,20(%esp)
3411 call .L_DES_encrypt3_begin
3412 movl 16(%esp),%eax
3413 movl 20(%esp),%ebx
3414 movl %eax,(%edi)
3415 movl %ebx,4(%edi)
3416 addl $8,%esi
3417 addl $8,%edi
3418 subl $8,%ebp
3419 jnz .L032encrypt_loop
3420 .L031encrypt_finish:
3421 movl 60(%esp),%ebp
3422 andl $7,%ebp
3423 jz .L033finish
3424 call .L034PIC_point
3425 .L034PIC_point:
3426 popl %edx
3427 leal .L035cbc_enc_jmp_table-.L034PIC_point(%edx),%ecx
3428 movl (%ecx,%ebp,4),%ebp
3429 addl %edx,%ebp
3430 xorl %ecx,%ecx
3431 xorl %edx,%edx
3432 jmp *%ebp
3433 .L036ej7:
3434 movb 6(%esi),%dh
3435 shll $8,%edx
3436 .L037ej6:
3437 movb 5(%esi),%dh
3438 .L038ej5:
3439 movb 4(%esi),%dl
3440 .L039ej4:
3441 movl (%esi),%ecx
3442 jmp .L040ejend
3443 .L041ej3:
3444 movb 2(%esi),%ch
3445 shll $8,%ecx
3446 .L042ej2:
3447 movb 1(%esi),%ch
3448 .L043ej1:
3449 movb (%esi),%cl
3450 .L040ejend:
3451 xorl %ecx,%eax
3452 xorl %edx,%ebx
3453 movl %eax,16(%esp)
3454 movl %ebx,20(%esp)
3455 call .L_DES_encrypt3_begin
3456 movl 16(%esp),%eax
3457 movl 20(%esp),%ebx
3458 movl %eax,(%edi)
3459 movl %ebx,4(%edi)
3460 jmp .L033finish
3461 .L030decrypt:
3462 andl $4294967288,%ebp
3463 movl 24(%esp),%eax
3464 movl 28(%esp),%ebx
3465 jz .L044decrypt_finish
3466 .L045decrypt_loop:
3467 movl (%esi),%eax
3468 movl 4(%esi),%ebx
3469 movl %eax,16(%esp)
3470 movl %ebx,20(%esp)
3471 call .L_DES_decrypt3_begin
3472 movl 16(%esp),%eax
3473 movl 20(%esp),%ebx
3474 movl 24(%esp),%ecx
3475 movl 28(%esp),%edx
3476 xorl %eax,%ecx
3477 xorl %ebx,%edx
3478 movl (%esi),%eax
3479 movl 4(%esi),%ebx
3480 movl %ecx,(%edi)
3481 movl %edx,4(%edi)
3482 movl %eax,24(%esp)
3483 movl %ebx,28(%esp)
3484 addl $8,%esi
3485 addl $8,%edi
3486 subl $8,%ebp
3487 jnz .L045decrypt_loop
3488 .L044decrypt_finish:
3489 movl 60(%esp),%ebp
3490 andl $7,%ebp
3491 jz .L033finish
3492 movl (%esi),%eax
3493 movl 4(%esi),%ebx
3494 movl %eax,16(%esp)
3495 movl %ebx,20(%esp)
3496 call .L_DES_decrypt3_begin
3497 movl 16(%esp),%eax
3498 movl 20(%esp),%ebx
3499 movl 24(%esp),%ecx
3500 movl 28(%esp),%edx
3501 xorl %eax,%ecx
3502 xorl %ebx,%edx
3503 movl (%esi),%eax
3504 movl 4(%esi),%ebx
3505 .L046dj7:
3506 rorl $16,%edx
3507 movb %dl,6(%edi)
3508 shrl $16,%edx
3509 .L047dj6:
3510 movb %dh,5(%edi)
3511 .L048dj5:
3512 movb %dl,4(%edi)
3513 .L049dj4:
3514 movl %ecx,(%edi)
3515 jmp .L050djend
3516 .L051dj3:
3517 rorl $16,%ecx
3518 movb %cl,2(%edi)
3519 shll $16,%ecx
3520 .L052dj2:
3521 movb %ch,1(%esi)
3522 .L053dj1:
3523 movb %cl,(%esi)
3524 .L050djend:
3525 jmp .L033finish
3526 .L033finish:
3527 movl 76(%esp),%ecx
3528 addl $32,%esp
3529 movl %eax,(%ecx)
3530 movl %ebx,4(%ecx)
3531 popl %edi
3532 popl %esi
3533 popl %ebx
3534 popl %ebp
3535 ret
3536 .align 64
3537 .L035cbc_enc_jmp_table:
3538 .long 0
3539 .long .L043ej1-.L034PIC_point
3540 .long .L042ej2-.L034PIC_point
3541 .long .L041ej3-.L034PIC_point
3542 .long .L039ej4-.L034PIC_point
3543 .long .L038ej5-.L034PIC_point
3544 .long .L037ej6-.L034PIC_point
3545 .long .L036ej7-.L034PIC_point
3546 .align 64
3547 .size DES_ede3_cbc_encrypt,.-.L_DES_ede3_cbc_encrypt_begin
3548 .align 64
3549 DES_SPtrans:
3550 .Ldes_sptrans:
3551 .long 34080768,524288,33554434,34080770
3552 .long 33554432,526338,524290,33554434
3553 .long 526338,34080768,34078720,2050
3554 .long 33556482,33554432,0,524290
3555 .long 524288,2,33556480,526336
3556 .long 34080770,34078720,2050,33556480
3557 .long 2,2048,526336,34078722
3558 .long 2048,33556482,34078722,0
3559 .long 0,34080770,33556480,524290
3560 .long 34080768,524288,2050,33556480
3561 .long 34078722,2048,526336,33554434
3562 .long 526338,2,33554434,34078720
3563 .long 34080770,526336,34078720,33556482
3564 .long 33554432,2050,524290,0
3565 .long 524288,33554432,33556482,34080768
3566 .long 2,34078722,2048,526338
3567 .long 1074823184,0,1081344,1074790400
3568 .long 1073741840,32784,1073774592,1081344
3569 .long 32768,1074790416,16,1073774592
3570 .long 1048592,1074823168,1074790400,16
3571 .long 1048576,1073774608,1074790416,32768
3572 .long 1081360,1073741824,0,1048592
3573 .long 1073774608,1081360,1074823168,1073741840
3574 .long 1073741824,1048576,32784,1074823184
3575 .long 1048592,1074823168,1073774592,1081360
3576 .long 1074823184,1048592,1073741840,0
3577 .long 1073741824,32784,1048576,1074790416
3578 .long 32768,1073741824,1081360,1073774608
3579 .long 1074823168,32768,0,1073741840
3580 .long 16,1074823184,1081344,1074790400
3581 .long 1074790416,1048576,32784,1073774592
3582 .long 1073774608,16,1074790400,1081344
3583 .long 67108865,67371264,256,67109121
3584 .long 262145,67108864,67109121,262400
3585 .long 67109120,262144,67371008,1
3586 .long 67371265,257,1,67371009
3587 .long 0,262145,67371264,256
3588 .long 257,67371265,262144,67108865
3589 .long 67371009,67109120,262401,67371008
3590 .long 262400,0,67108864,262401
3591 .long 67371264,256,1,262144
3592 .long 257,262145,67371008,67109121
3593 .long 0,67371264,262400,67371009
3594 .long 262145,67108864,67371265,1
3595 .long 262401,67108865,67108864,67371265
3596 .long 262144,67109120,67109121,262400
3597 .long 67109120,0,67371009,257
3598 .long 67108865,262401,256,67371008
3599 .long 4198408,268439552,8,272633864
3600 .long 0,272629760,268439560,4194312
3601 .long 272633856,268435464,268435456,4104
3602 .long 268435464,4198408,4194304,268435456
3603 .long 272629768,4198400,4096,8
3604 .long 4198400,268439560,272629760,4096
3605 .long 4104,0,4194312,272633856
3606 .long 268439552,272629768,272633864,4194304
3607 .long 272629768,4104,4194304,268435464
3608 .long 4198400,268439552,8,272629760
3609 .long 268439560,0,4096,4194312
3610 .long 0,272629768,272633856,4096
3611 .long 268435456,272633864,4198408,4194304
3612 .long 272633864,8,268439552,4198408
3613 .long 4194312,4198400,272629760,268439560
3614 .long 4104,268435456,268435464,272633856
3615 .long 134217728,65536,1024,134284320
3616 .long 134283296,134218752,66592,134283264
3617 .long 65536,32,134217760,66560
3618 .long 134218784,134283296,134284288,0
3619 .long 66560,134217728,65568,1056
3620 .long 134218752,66592,0,134217760
3621 .long 32,134218784,134284320,65568
3622 .long 134283264,1024,1056,134284288
3623 .long 134284288,134218784,65568,134283264
3624 .long 65536,32,134217760,134218752
3625 .long 134217728,66560,134284320,0
3626 .long 66592,134217728,1024,65568
3627 .long 134218784,1024,0,134284320
3628 .long 134283296,134284288,1056,65536
3629 .long 66560,134283296,134218752,1056
3630 .long 32,66592,134283264,134217760
3631 .long 2147483712,2097216,0,2149588992
3632 .long 2097216,8192,2147491904,2097152
3633 .long 8256,2149589056,2105344,2147483648
3634 .long 2147491840,2147483712,2149580800,2105408
3635 .long 2097152,2147491904,2149580864,0
3636 .long 8192,64,2149588992,2149580864
3637 .long 2149589056,2149580800,2147483648,8256
3638 .long 64,2105344,2105408,2147491840
3639 .long 8256,2147483648,2147491840,2105408
3640 .long 2149588992,2097216,0,2147491840
3641 .long 2147483648,8192,2149580864,2097152
3642 .long 2097216,2149589056,2105344,64
3643 .long 2149589056,2105344,2097152,2147491904
3644 .long 2147483712,2149580800,2105408,0
3645 .long 8192,2147483712,2147491904,2149588992
3646 .long 2149580800,8256,64,2149580864
3647 .long 16384,512,16777728,16777220
3648 .long 16794116,16388,16896,0
3649 .long 16777216,16777732,516,16793600
3650 .long 4,16794112,16793600,516
3651 .long 16777732,16384,16388,16794116
3652 .long 0,16777728,16777220,16896
3653 .long 16793604,16900,16794112,4
3654 .long 16900,16793604,512,16777216
3655 .long 16900,16793600,16793604,516
3656 .long 16384,512,16777216,16793604
3657 .long 16777732,16900,16896,0
3658 .long 512,16777220,4,16777728
3659 .long 0,16777732,16777728,16896
3660 .long 516,16384,16794116,16777216
3661 .long 16794112,4,16388,16794116
3662 .long 16777220,16794112,16793600,16388
3663 .long 545259648,545390592,131200,0
3664 .long 537001984,8388736,545259520,545390720
3665 .long 128,536870912,8519680,131200
3666 .long 8519808,537002112,536871040,545259520
3667 .long 131072,8519808,8388736,537001984
3668 .long 545390720,536871040,0,8519680
3669 .long 536870912,8388608,537002112,545259648
3670 .long 8388608,131072,545390592,128
3671 .long 8388608,131072,536871040,545390720
3672 .long 131200,536870912,0,8519680
3673 .long 545259648,537002112,537001984,8388736
3674 .long 545390592,128,8388736,537001984
3675 .long 545390720,8388608,545259520,536871040
3676 .long 8519680,131200,537002112,545259520
3677 .long 128,545390592,8519808,0
3678 .long 536870912,545259648,131072,8519808
3679 #endif
Cache object: 83f2c48a4207ea37dda3e2991978dad7
|