1 .text
2 .globl	_fcrypt_body
3 .align	4
4 _fcrypt_body:
5 L_fcrypt_body_begin:
6 	%ifdef __CET__
7 
8 .byte	243,15,30,251
9 	%endif
10 
11 	pushl	%ebp
12 	pushl	%ebx
13 	pushl	%esi
14 	pushl	%edi
15 
16 	# Load the 2 words
17 	xorl	%edi,%edi
18 	xorl	%esi,%esi
19 	call	L000PIC_me_up
20 L000PIC_me_up:
21 	popl	%edx
22 	movl	L_DES_SPtrans$non_lazy_ptr-L000PIC_me_up(%edx),%edx
23 	pushl	%edx
24 	movl	28(%esp),%ebp
25 	pushl	$25
26 L001start:
27 
28 	# Round 0
29 	movl	36(%esp),%eax
30 	movl	%esi,%edx
31 	shrl	$16,%edx
32 	movl	40(%esp),%ecx
33 	xorl	%esi,%edx
34 	andl	%edx,%eax
35 	andl	%ecx,%edx
36 	movl	%eax,%ebx
37 	shll	$16,%ebx
38 	movl	%edx,%ecx
39 	shll	$16,%ecx
40 	xorl	%ebx,%eax
41 	xorl	%ecx,%edx
42 	movl	(%ebp),%ebx
43 	xorl	%ebx,%eax
44 	movl	4(%ebp),%ecx
45 	xorl	%esi,%eax
46 	xorl	%esi,%edx
47 	xorl	%ecx,%edx
48 	andl	$0xfcfcfcfc,%eax
49 	xorl	%ebx,%ebx
50 	andl	$0xcfcfcfcf,%edx
51 	xorl	%ecx,%ecx
52 	movb	%al,%bl
53 	movb	%ah,%cl
54 	rorl	$4,%edx
55 	movl	4(%esp),%ebp
56 	xorl	(%ebp,%ebx,1),%edi
57 	movb	%dl,%bl
58 	xorl	0x200(%ebp,%ecx,1),%edi
59 	movb	%dh,%cl
60 	shrl	$16,%eax
61 	xorl	0x100(%ebp,%ebx,1),%edi
62 	movb	%ah,%bl
63 	shrl	$16,%edx
64 	xorl	0x300(%ebp,%ecx,1),%edi
65 	movb	%dh,%cl
66 	andl	$0xff,%eax
67 	andl	$0xff,%edx
68 	movl	0x600(%ebp,%ebx,1),%ebx
69 	xorl	%ebx,%edi
70 	movl	0x700(%ebp,%ecx,1),%ebx
71 	xorl	%ebx,%edi
72 	movl	0x400(%ebp,%eax,1),%ebx
73 	xorl	%ebx,%edi
74 	movl	0x500(%ebp,%edx,1),%ebx
75 	xorl	%ebx,%edi
76 	movl	32(%esp),%ebp
77 
78 	# Round 1
79 	movl	36(%esp),%eax
80 	movl	%edi,%edx
81 	shrl	$16,%edx
82 	movl	40(%esp),%ecx
83 	xorl	%edi,%edx
84 	andl	%edx,%eax
85 	andl	%ecx,%edx
86 	movl	%eax,%ebx
87 	shll	$16,%ebx
88 	movl	%edx,%ecx
89 	shll	$16,%ecx
90 	xorl	%ebx,%eax
91 	xorl	%ecx,%edx
92 	movl	8(%ebp),%ebx
93 	xorl	%ebx,%eax
94 	movl	12(%ebp),%ecx
95 	xorl	%edi,%eax
96 	xorl	%edi,%edx
97 	xorl	%ecx,%edx
98 	andl	$0xfcfcfcfc,%eax
99 	xorl	%ebx,%ebx
100 	andl	$0xcfcfcfcf,%edx
101 	xorl	%ecx,%ecx
102 	movb	%al,%bl
103 	movb	%ah,%cl
104 	rorl	$4,%edx
105 	movl	4(%esp),%ebp
106 	xorl	(%ebp,%ebx,1),%esi
107 	movb	%dl,%bl
108 	xorl	0x200(%ebp,%ecx,1),%esi
109 	movb	%dh,%cl
110 	shrl	$16,%eax
111 	xorl	0x100(%ebp,%ebx,1),%esi
112 	movb	%ah,%bl
113 	shrl	$16,%edx
114 	xorl	0x300(%ebp,%ecx,1),%esi
115 	movb	%dh,%cl
116 	andl	$0xff,%eax
117 	andl	$0xff,%edx
118 	movl	0x600(%ebp,%ebx,1),%ebx
119 	xorl	%ebx,%esi
120 	movl	0x700(%ebp,%ecx,1),%ebx
121 	xorl	%ebx,%esi
122 	movl	0x400(%ebp,%eax,1),%ebx
123 	xorl	%ebx,%esi
124 	movl	0x500(%ebp,%edx,1),%ebx
125 	xorl	%ebx,%esi
126 	movl	32(%esp),%ebp
127 
128 	# Round 2
129 	movl	36(%esp),%eax
130 	movl	%esi,%edx
131 	shrl	$16,%edx
132 	movl	40(%esp),%ecx
133 	xorl	%esi,%edx
134 	andl	%edx,%eax
135 	andl	%ecx,%edx
136 	movl	%eax,%ebx
137 	shll	$16,%ebx
138 	movl	%edx,%ecx
139 	shll	$16,%ecx
140 	xorl	%ebx,%eax
141 	xorl	%ecx,%edx
142 	movl	16(%ebp),%ebx
143 	xorl	%ebx,%eax
144 	movl	20(%ebp),%ecx
145 	xorl	%esi,%eax
146 	xorl	%esi,%edx
147 	xorl	%ecx,%edx
148 	andl	$0xfcfcfcfc,%eax
149 	xorl	%ebx,%ebx
150 	andl	$0xcfcfcfcf,%edx
151 	xorl	%ecx,%ecx
152 	movb	%al,%bl
153 	movb	%ah,%cl
154 	rorl	$4,%edx
155 	movl	4(%esp),%ebp
156 	xorl	(%ebp,%ebx,1),%edi
157 	movb	%dl,%bl
158 	xorl	0x200(%ebp,%ecx,1),%edi
159 	movb	%dh,%cl
160 	shrl	$16,%eax
161 	xorl	0x100(%ebp,%ebx,1),%edi
162 	movb	%ah,%bl
163 	shrl	$16,%edx
164 	xorl	0x300(%ebp,%ecx,1),%edi
165 	movb	%dh,%cl
166 	andl	$0xff,%eax
167 	andl	$0xff,%edx
168 	movl	0x600(%ebp,%ebx,1),%ebx
169 	xorl	%ebx,%edi
170 	movl	0x700(%ebp,%ecx,1),%ebx
171 	xorl	%ebx,%edi
172 	movl	0x400(%ebp,%eax,1),%ebx
173 	xorl	%ebx,%edi
174 	movl	0x500(%ebp,%edx,1),%ebx
175 	xorl	%ebx,%edi
176 	movl	32(%esp),%ebp
177 
178 	# Round 3
179 	movl	36(%esp),%eax
180 	movl	%edi,%edx
181 	shrl	$16,%edx
182 	movl	40(%esp),%ecx
183 	xorl	%edi,%edx
184 	andl	%edx,%eax
185 	andl	%ecx,%edx
186 	movl	%eax,%ebx
187 	shll	$16,%ebx
188 	movl	%edx,%ecx
189 	shll	$16,%ecx
190 	xorl	%ebx,%eax
191 	xorl	%ecx,%edx
192 	movl	24(%ebp),%ebx
193 	xorl	%ebx,%eax
194 	movl	28(%ebp),%ecx
195 	xorl	%edi,%eax
196 	xorl	%edi,%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	4(%esp),%ebp
206 	xorl	(%ebp,%ebx,1),%esi
207 	movb	%dl,%bl
208 	xorl	0x200(%ebp,%ecx,1),%esi
209 	movb	%dh,%cl
210 	shrl	$16,%eax
211 	xorl	0x100(%ebp,%ebx,1),%esi
212 	movb	%ah,%bl
213 	shrl	$16,%edx
214 	xorl	0x300(%ebp,%ecx,1),%esi
215 	movb	%dh,%cl
216 	andl	$0xff,%eax
217 	andl	$0xff,%edx
218 	movl	0x600(%ebp,%ebx,1),%ebx
219 	xorl	%ebx,%esi
220 	movl	0x700(%ebp,%ecx,1),%ebx
221 	xorl	%ebx,%esi
222 	movl	0x400(%ebp,%eax,1),%ebx
223 	xorl	%ebx,%esi
224 	movl	0x500(%ebp,%edx,1),%ebx
225 	xorl	%ebx,%esi
226 	movl	32(%esp),%ebp
227 
228 	# Round 4
229 	movl	36(%esp),%eax
230 	movl	%esi,%edx
231 	shrl	$16,%edx
232 	movl	40(%esp),%ecx
233 	xorl	%esi,%edx
234 	andl	%edx,%eax
235 	andl	%ecx,%edx
236 	movl	%eax,%ebx
237 	shll	$16,%ebx
238 	movl	%edx,%ecx
239 	shll	$16,%ecx
240 	xorl	%ebx,%eax
241 	xorl	%ecx,%edx
242 	movl	32(%ebp),%ebx
243 	xorl	%ebx,%eax
244 	movl	36(%ebp),%ecx
245 	xorl	%esi,%eax
246 	xorl	%esi,%edx
247 	xorl	%ecx,%edx
248 	andl	$0xfcfcfcfc,%eax
249 	xorl	%ebx,%ebx
250 	andl	$0xcfcfcfcf,%edx
251 	xorl	%ecx,%ecx
252 	movb	%al,%bl
253 	movb	%ah,%cl
254 	rorl	$4,%edx
255 	movl	4(%esp),%ebp
256 	xorl	(%ebp,%ebx,1),%edi
257 	movb	%dl,%bl
258 	xorl	0x200(%ebp,%ecx,1),%edi
259 	movb	%dh,%cl
260 	shrl	$16,%eax
261 	xorl	0x100(%ebp,%ebx,1),%edi
262 	movb	%ah,%bl
263 	shrl	$16,%edx
264 	xorl	0x300(%ebp,%ecx,1),%edi
265 	movb	%dh,%cl
266 	andl	$0xff,%eax
267 	andl	$0xff,%edx
268 	movl	0x600(%ebp,%ebx,1),%ebx
269 	xorl	%ebx,%edi
270 	movl	0x700(%ebp,%ecx,1),%ebx
271 	xorl	%ebx,%edi
272 	movl	0x400(%ebp,%eax,1),%ebx
273 	xorl	%ebx,%edi
274 	movl	0x500(%ebp,%edx,1),%ebx
275 	xorl	%ebx,%edi
276 	movl	32(%esp),%ebp
277 
278 	# Round 5
279 	movl	36(%esp),%eax
280 	movl	%edi,%edx
281 	shrl	$16,%edx
282 	movl	40(%esp),%ecx
283 	xorl	%edi,%edx
284 	andl	%edx,%eax
285 	andl	%ecx,%edx
286 	movl	%eax,%ebx
287 	shll	$16,%ebx
288 	movl	%edx,%ecx
289 	shll	$16,%ecx
290 	xorl	%ebx,%eax
291 	xorl	%ecx,%edx
292 	movl	40(%ebp),%ebx
293 	xorl	%ebx,%eax
294 	movl	44(%ebp),%ecx
295 	xorl	%edi,%eax
296 	xorl	%edi,%edx
297 	xorl	%ecx,%edx
298 	andl	$0xfcfcfcfc,%eax
299 	xorl	%ebx,%ebx
300 	andl	$0xcfcfcfcf,%edx
301 	xorl	%ecx,%ecx
302 	movb	%al,%bl
303 	movb	%ah,%cl
304 	rorl	$4,%edx
305 	movl	4(%esp),%ebp
306 	xorl	(%ebp,%ebx,1),%esi
307 	movb	%dl,%bl
308 	xorl	0x200(%ebp,%ecx,1),%esi
309 	movb	%dh,%cl
310 	shrl	$16,%eax
311 	xorl	0x100(%ebp,%ebx,1),%esi
312 	movb	%ah,%bl
313 	shrl	$16,%edx
314 	xorl	0x300(%ebp,%ecx,1),%esi
315 	movb	%dh,%cl
316 	andl	$0xff,%eax
317 	andl	$0xff,%edx
318 	movl	0x600(%ebp,%ebx,1),%ebx
319 	xorl	%ebx,%esi
320 	movl	0x700(%ebp,%ecx,1),%ebx
321 	xorl	%ebx,%esi
322 	movl	0x400(%ebp,%eax,1),%ebx
323 	xorl	%ebx,%esi
324 	movl	0x500(%ebp,%edx,1),%ebx
325 	xorl	%ebx,%esi
326 	movl	32(%esp),%ebp
327 
328 	# Round 6
329 	movl	36(%esp),%eax
330 	movl	%esi,%edx
331 	shrl	$16,%edx
332 	movl	40(%esp),%ecx
333 	xorl	%esi,%edx
334 	andl	%edx,%eax
335 	andl	%ecx,%edx
336 	movl	%eax,%ebx
337 	shll	$16,%ebx
338 	movl	%edx,%ecx
339 	shll	$16,%ecx
340 	xorl	%ebx,%eax
341 	xorl	%ecx,%edx
342 	movl	48(%ebp),%ebx
343 	xorl	%ebx,%eax
344 	movl	52(%ebp),%ecx
345 	xorl	%esi,%eax
346 	xorl	%esi,%edx
347 	xorl	%ecx,%edx
348 	andl	$0xfcfcfcfc,%eax
349 	xorl	%ebx,%ebx
350 	andl	$0xcfcfcfcf,%edx
351 	xorl	%ecx,%ecx
352 	movb	%al,%bl
353 	movb	%ah,%cl
354 	rorl	$4,%edx
355 	movl	4(%esp),%ebp
356 	xorl	(%ebp,%ebx,1),%edi
357 	movb	%dl,%bl
358 	xorl	0x200(%ebp,%ecx,1),%edi
359 	movb	%dh,%cl
360 	shrl	$16,%eax
361 	xorl	0x100(%ebp,%ebx,1),%edi
362 	movb	%ah,%bl
363 	shrl	$16,%edx
364 	xorl	0x300(%ebp,%ecx,1),%edi
365 	movb	%dh,%cl
366 	andl	$0xff,%eax
367 	andl	$0xff,%edx
368 	movl	0x600(%ebp,%ebx,1),%ebx
369 	xorl	%ebx,%edi
370 	movl	0x700(%ebp,%ecx,1),%ebx
371 	xorl	%ebx,%edi
372 	movl	0x400(%ebp,%eax,1),%ebx
373 	xorl	%ebx,%edi
374 	movl	0x500(%ebp,%edx,1),%ebx
375 	xorl	%ebx,%edi
376 	movl	32(%esp),%ebp
377 
378 	# Round 7
379 	movl	36(%esp),%eax
380 	movl	%edi,%edx
381 	shrl	$16,%edx
382 	movl	40(%esp),%ecx
383 	xorl	%edi,%edx
384 	andl	%edx,%eax
385 	andl	%ecx,%edx
386 	movl	%eax,%ebx
387 	shll	$16,%ebx
388 	movl	%edx,%ecx
389 	shll	$16,%ecx
390 	xorl	%ebx,%eax
391 	xorl	%ecx,%edx
392 	movl	56(%ebp),%ebx
393 	xorl	%ebx,%eax
394 	movl	60(%ebp),%ecx
395 	xorl	%edi,%eax
396 	xorl	%edi,%edx
397 	xorl	%ecx,%edx
398 	andl	$0xfcfcfcfc,%eax
399 	xorl	%ebx,%ebx
400 	andl	$0xcfcfcfcf,%edx
401 	xorl	%ecx,%ecx
402 	movb	%al,%bl
403 	movb	%ah,%cl
404 	rorl	$4,%edx
405 	movl	4(%esp),%ebp
406 	xorl	(%ebp,%ebx,1),%esi
407 	movb	%dl,%bl
408 	xorl	0x200(%ebp,%ecx,1),%esi
409 	movb	%dh,%cl
410 	shrl	$16,%eax
411 	xorl	0x100(%ebp,%ebx,1),%esi
412 	movb	%ah,%bl
413 	shrl	$16,%edx
414 	xorl	0x300(%ebp,%ecx,1),%esi
415 	movb	%dh,%cl
416 	andl	$0xff,%eax
417 	andl	$0xff,%edx
418 	movl	0x600(%ebp,%ebx,1),%ebx
419 	xorl	%ebx,%esi
420 	movl	0x700(%ebp,%ecx,1),%ebx
421 	xorl	%ebx,%esi
422 	movl	0x400(%ebp,%eax,1),%ebx
423 	xorl	%ebx,%esi
424 	movl	0x500(%ebp,%edx,1),%ebx
425 	xorl	%ebx,%esi
426 	movl	32(%esp),%ebp
427 
428 	# Round 8
429 	movl	36(%esp),%eax
430 	movl	%esi,%edx
431 	shrl	$16,%edx
432 	movl	40(%esp),%ecx
433 	xorl	%esi,%edx
434 	andl	%edx,%eax
435 	andl	%ecx,%edx
436 	movl	%eax,%ebx
437 	shll	$16,%ebx
438 	movl	%edx,%ecx
439 	shll	$16,%ecx
440 	xorl	%ebx,%eax
441 	xorl	%ecx,%edx
442 	movl	64(%ebp),%ebx
443 	xorl	%ebx,%eax
444 	movl	68(%ebp),%ecx
445 	xorl	%esi,%eax
446 	xorl	%esi,%edx
447 	xorl	%ecx,%edx
448 	andl	$0xfcfcfcfc,%eax
449 	xorl	%ebx,%ebx
450 	andl	$0xcfcfcfcf,%edx
451 	xorl	%ecx,%ecx
452 	movb	%al,%bl
453 	movb	%ah,%cl
454 	rorl	$4,%edx
455 	movl	4(%esp),%ebp
456 	xorl	(%ebp,%ebx,1),%edi
457 	movb	%dl,%bl
458 	xorl	0x200(%ebp,%ecx,1),%edi
459 	movb	%dh,%cl
460 	shrl	$16,%eax
461 	xorl	0x100(%ebp,%ebx,1),%edi
462 	movb	%ah,%bl
463 	shrl	$16,%edx
464 	xorl	0x300(%ebp,%ecx,1),%edi
465 	movb	%dh,%cl
466 	andl	$0xff,%eax
467 	andl	$0xff,%edx
468 	movl	0x600(%ebp,%ebx,1),%ebx
469 	xorl	%ebx,%edi
470 	movl	0x700(%ebp,%ecx,1),%ebx
471 	xorl	%ebx,%edi
472 	movl	0x400(%ebp,%eax,1),%ebx
473 	xorl	%ebx,%edi
474 	movl	0x500(%ebp,%edx,1),%ebx
475 	xorl	%ebx,%edi
476 	movl	32(%esp),%ebp
477 
478 	# Round 9
479 	movl	36(%esp),%eax
480 	movl	%edi,%edx
481 	shrl	$16,%edx
482 	movl	40(%esp),%ecx
483 	xorl	%edi,%edx
484 	andl	%edx,%eax
485 	andl	%ecx,%edx
486 	movl	%eax,%ebx
487 	shll	$16,%ebx
488 	movl	%edx,%ecx
489 	shll	$16,%ecx
490 	xorl	%ebx,%eax
491 	xorl	%ecx,%edx
492 	movl	72(%ebp),%ebx
493 	xorl	%ebx,%eax
494 	movl	76(%ebp),%ecx
495 	xorl	%edi,%eax
496 	xorl	%edi,%edx
497 	xorl	%ecx,%edx
498 	andl	$0xfcfcfcfc,%eax
499 	xorl	%ebx,%ebx
500 	andl	$0xcfcfcfcf,%edx
501 	xorl	%ecx,%ecx
502 	movb	%al,%bl
503 	movb	%ah,%cl
504 	rorl	$4,%edx
505 	movl	4(%esp),%ebp
506 	xorl	(%ebp,%ebx,1),%esi
507 	movb	%dl,%bl
508 	xorl	0x200(%ebp,%ecx,1),%esi
509 	movb	%dh,%cl
510 	shrl	$16,%eax
511 	xorl	0x100(%ebp,%ebx,1),%esi
512 	movb	%ah,%bl
513 	shrl	$16,%edx
514 	xorl	0x300(%ebp,%ecx,1),%esi
515 	movb	%dh,%cl
516 	andl	$0xff,%eax
517 	andl	$0xff,%edx
518 	movl	0x600(%ebp,%ebx,1),%ebx
519 	xorl	%ebx,%esi
520 	movl	0x700(%ebp,%ecx,1),%ebx
521 	xorl	%ebx,%esi
522 	movl	0x400(%ebp,%eax,1),%ebx
523 	xorl	%ebx,%esi
524 	movl	0x500(%ebp,%edx,1),%ebx
525 	xorl	%ebx,%esi
526 	movl	32(%esp),%ebp
527 
528 	# Round 10
529 	movl	36(%esp),%eax
530 	movl	%esi,%edx
531 	shrl	$16,%edx
532 	movl	40(%esp),%ecx
533 	xorl	%esi,%edx
534 	andl	%edx,%eax
535 	andl	%ecx,%edx
536 	movl	%eax,%ebx
537 	shll	$16,%ebx
538 	movl	%edx,%ecx
539 	shll	$16,%ecx
540 	xorl	%ebx,%eax
541 	xorl	%ecx,%edx
542 	movl	80(%ebp),%ebx
543 	xorl	%ebx,%eax
544 	movl	84(%ebp),%ecx
545 	xorl	%esi,%eax
546 	xorl	%esi,%edx
547 	xorl	%ecx,%edx
548 	andl	$0xfcfcfcfc,%eax
549 	xorl	%ebx,%ebx
550 	andl	$0xcfcfcfcf,%edx
551 	xorl	%ecx,%ecx
552 	movb	%al,%bl
553 	movb	%ah,%cl
554 	rorl	$4,%edx
555 	movl	4(%esp),%ebp
556 	xorl	(%ebp,%ebx,1),%edi
557 	movb	%dl,%bl
558 	xorl	0x200(%ebp,%ecx,1),%edi
559 	movb	%dh,%cl
560 	shrl	$16,%eax
561 	xorl	0x100(%ebp,%ebx,1),%edi
562 	movb	%ah,%bl
563 	shrl	$16,%edx
564 	xorl	0x300(%ebp,%ecx,1),%edi
565 	movb	%dh,%cl
566 	andl	$0xff,%eax
567 	andl	$0xff,%edx
568 	movl	0x600(%ebp,%ebx,1),%ebx
569 	xorl	%ebx,%edi
570 	movl	0x700(%ebp,%ecx,1),%ebx
571 	xorl	%ebx,%edi
572 	movl	0x400(%ebp,%eax,1),%ebx
573 	xorl	%ebx,%edi
574 	movl	0x500(%ebp,%edx,1),%ebx
575 	xorl	%ebx,%edi
576 	movl	32(%esp),%ebp
577 
578 	# Round 11
579 	movl	36(%esp),%eax
580 	movl	%edi,%edx
581 	shrl	$16,%edx
582 	movl	40(%esp),%ecx
583 	xorl	%edi,%edx
584 	andl	%edx,%eax
585 	andl	%ecx,%edx
586 	movl	%eax,%ebx
587 	shll	$16,%ebx
588 	movl	%edx,%ecx
589 	shll	$16,%ecx
590 	xorl	%ebx,%eax
591 	xorl	%ecx,%edx
592 	movl	88(%ebp),%ebx
593 	xorl	%ebx,%eax
594 	movl	92(%ebp),%ecx
595 	xorl	%edi,%eax
596 	xorl	%edi,%edx
597 	xorl	%ecx,%edx
598 	andl	$0xfcfcfcfc,%eax
599 	xorl	%ebx,%ebx
600 	andl	$0xcfcfcfcf,%edx
601 	xorl	%ecx,%ecx
602 	movb	%al,%bl
603 	movb	%ah,%cl
604 	rorl	$4,%edx
605 	movl	4(%esp),%ebp
606 	xorl	(%ebp,%ebx,1),%esi
607 	movb	%dl,%bl
608 	xorl	0x200(%ebp,%ecx,1),%esi
609 	movb	%dh,%cl
610 	shrl	$16,%eax
611 	xorl	0x100(%ebp,%ebx,1),%esi
612 	movb	%ah,%bl
613 	shrl	$16,%edx
614 	xorl	0x300(%ebp,%ecx,1),%esi
615 	movb	%dh,%cl
616 	andl	$0xff,%eax
617 	andl	$0xff,%edx
618 	movl	0x600(%ebp,%ebx,1),%ebx
619 	xorl	%ebx,%esi
620 	movl	0x700(%ebp,%ecx,1),%ebx
621 	xorl	%ebx,%esi
622 	movl	0x400(%ebp,%eax,1),%ebx
623 	xorl	%ebx,%esi
624 	movl	0x500(%ebp,%edx,1),%ebx
625 	xorl	%ebx,%esi
626 	movl	32(%esp),%ebp
627 
628 	# Round 12
629 	movl	36(%esp),%eax
630 	movl	%esi,%edx
631 	shrl	$16,%edx
632 	movl	40(%esp),%ecx
633 	xorl	%esi,%edx
634 	andl	%edx,%eax
635 	andl	%ecx,%edx
636 	movl	%eax,%ebx
637 	shll	$16,%ebx
638 	movl	%edx,%ecx
639 	shll	$16,%ecx
640 	xorl	%ebx,%eax
641 	xorl	%ecx,%edx
642 	movl	96(%ebp),%ebx
643 	xorl	%ebx,%eax
644 	movl	100(%ebp),%ecx
645 	xorl	%esi,%eax
646 	xorl	%esi,%edx
647 	xorl	%ecx,%edx
648 	andl	$0xfcfcfcfc,%eax
649 	xorl	%ebx,%ebx
650 	andl	$0xcfcfcfcf,%edx
651 	xorl	%ecx,%ecx
652 	movb	%al,%bl
653 	movb	%ah,%cl
654 	rorl	$4,%edx
655 	movl	4(%esp),%ebp
656 	xorl	(%ebp,%ebx,1),%edi
657 	movb	%dl,%bl
658 	xorl	0x200(%ebp,%ecx,1),%edi
659 	movb	%dh,%cl
660 	shrl	$16,%eax
661 	xorl	0x100(%ebp,%ebx,1),%edi
662 	movb	%ah,%bl
663 	shrl	$16,%edx
664 	xorl	0x300(%ebp,%ecx,1),%edi
665 	movb	%dh,%cl
666 	andl	$0xff,%eax
667 	andl	$0xff,%edx
668 	movl	0x600(%ebp,%ebx,1),%ebx
669 	xorl	%ebx,%edi
670 	movl	0x700(%ebp,%ecx,1),%ebx
671 	xorl	%ebx,%edi
672 	movl	0x400(%ebp,%eax,1),%ebx
673 	xorl	%ebx,%edi
674 	movl	0x500(%ebp,%edx,1),%ebx
675 	xorl	%ebx,%edi
676 	movl	32(%esp),%ebp
677 
678 	# Round 13
679 	movl	36(%esp),%eax
680 	movl	%edi,%edx
681 	shrl	$16,%edx
682 	movl	40(%esp),%ecx
683 	xorl	%edi,%edx
684 	andl	%edx,%eax
685 	andl	%ecx,%edx
686 	movl	%eax,%ebx
687 	shll	$16,%ebx
688 	movl	%edx,%ecx
689 	shll	$16,%ecx
690 	xorl	%ebx,%eax
691 	xorl	%ecx,%edx
692 	movl	104(%ebp),%ebx
693 	xorl	%ebx,%eax
694 	movl	108(%ebp),%ecx
695 	xorl	%edi,%eax
696 	xorl	%edi,%edx
697 	xorl	%ecx,%edx
698 	andl	$0xfcfcfcfc,%eax
699 	xorl	%ebx,%ebx
700 	andl	$0xcfcfcfcf,%edx
701 	xorl	%ecx,%ecx
702 	movb	%al,%bl
703 	movb	%ah,%cl
704 	rorl	$4,%edx
705 	movl	4(%esp),%ebp
706 	xorl	(%ebp,%ebx,1),%esi
707 	movb	%dl,%bl
708 	xorl	0x200(%ebp,%ecx,1),%esi
709 	movb	%dh,%cl
710 	shrl	$16,%eax
711 	xorl	0x100(%ebp,%ebx,1),%esi
712 	movb	%ah,%bl
713 	shrl	$16,%edx
714 	xorl	0x300(%ebp,%ecx,1),%esi
715 	movb	%dh,%cl
716 	andl	$0xff,%eax
717 	andl	$0xff,%edx
718 	movl	0x600(%ebp,%ebx,1),%ebx
719 	xorl	%ebx,%esi
720 	movl	0x700(%ebp,%ecx,1),%ebx
721 	xorl	%ebx,%esi
722 	movl	0x400(%ebp,%eax,1),%ebx
723 	xorl	%ebx,%esi
724 	movl	0x500(%ebp,%edx,1),%ebx
725 	xorl	%ebx,%esi
726 	movl	32(%esp),%ebp
727 
728 	# Round 14
729 	movl	36(%esp),%eax
730 	movl	%esi,%edx
731 	shrl	$16,%edx
732 	movl	40(%esp),%ecx
733 	xorl	%esi,%edx
734 	andl	%edx,%eax
735 	andl	%ecx,%edx
736 	movl	%eax,%ebx
737 	shll	$16,%ebx
738 	movl	%edx,%ecx
739 	shll	$16,%ecx
740 	xorl	%ebx,%eax
741 	xorl	%ecx,%edx
742 	movl	112(%ebp),%ebx
743 	xorl	%ebx,%eax
744 	movl	116(%ebp),%ecx
745 	xorl	%esi,%eax
746 	xorl	%esi,%edx
747 	xorl	%ecx,%edx
748 	andl	$0xfcfcfcfc,%eax
749 	xorl	%ebx,%ebx
750 	andl	$0xcfcfcfcf,%edx
751 	xorl	%ecx,%ecx
752 	movb	%al,%bl
753 	movb	%ah,%cl
754 	rorl	$4,%edx
755 	movl	4(%esp),%ebp
756 	xorl	(%ebp,%ebx,1),%edi
757 	movb	%dl,%bl
758 	xorl	0x200(%ebp,%ecx,1),%edi
759 	movb	%dh,%cl
760 	shrl	$16,%eax
761 	xorl	0x100(%ebp,%ebx,1),%edi
762 	movb	%ah,%bl
763 	shrl	$16,%edx
764 	xorl	0x300(%ebp,%ecx,1),%edi
765 	movb	%dh,%cl
766 	andl	$0xff,%eax
767 	andl	$0xff,%edx
768 	movl	0x600(%ebp,%ebx,1),%ebx
769 	xorl	%ebx,%edi
770 	movl	0x700(%ebp,%ecx,1),%ebx
771 	xorl	%ebx,%edi
772 	movl	0x400(%ebp,%eax,1),%ebx
773 	xorl	%ebx,%edi
774 	movl	0x500(%ebp,%edx,1),%ebx
775 	xorl	%ebx,%edi
776 	movl	32(%esp),%ebp
777 
778 	# Round 15
779 	movl	36(%esp),%eax
780 	movl	%edi,%edx
781 	shrl	$16,%edx
782 	movl	40(%esp),%ecx
783 	xorl	%edi,%edx
784 	andl	%edx,%eax
785 	andl	%ecx,%edx
786 	movl	%eax,%ebx
787 	shll	$16,%ebx
788 	movl	%edx,%ecx
789 	shll	$16,%ecx
790 	xorl	%ebx,%eax
791 	xorl	%ecx,%edx
792 	movl	120(%ebp),%ebx
793 	xorl	%ebx,%eax
794 	movl	124(%ebp),%ecx
795 	xorl	%edi,%eax
796 	xorl	%edi,%edx
797 	xorl	%ecx,%edx
798 	andl	$0xfcfcfcfc,%eax
799 	xorl	%ebx,%ebx
800 	andl	$0xcfcfcfcf,%edx
801 	xorl	%ecx,%ecx
802 	movb	%al,%bl
803 	movb	%ah,%cl
804 	rorl	$4,%edx
805 	movl	4(%esp),%ebp
806 	xorl	(%ebp,%ebx,1),%esi
807 	movb	%dl,%bl
808 	xorl	0x200(%ebp,%ecx,1),%esi
809 	movb	%dh,%cl
810 	shrl	$16,%eax
811 	xorl	0x100(%ebp,%ebx,1),%esi
812 	movb	%ah,%bl
813 	shrl	$16,%edx
814 	xorl	0x300(%ebp,%ecx,1),%esi
815 	movb	%dh,%cl
816 	andl	$0xff,%eax
817 	andl	$0xff,%edx
818 	movl	0x600(%ebp,%ebx,1),%ebx
819 	xorl	%ebx,%esi
820 	movl	0x700(%ebp,%ecx,1),%ebx
821 	xorl	%ebx,%esi
822 	movl	0x400(%ebp,%eax,1),%ebx
823 	xorl	%ebx,%esi
824 	movl	0x500(%ebp,%edx,1),%ebx
825 	xorl	%ebx,%esi
826 	movl	32(%esp),%ebp
827 	movl	(%esp),%ebx
828 	movl	%edi,%eax
829 	decl	%ebx
830 	movl	%esi,%edi
831 	movl	%eax,%esi
832 	movl	%ebx,(%esp)
833 	jnz	L001start
834 
835 	# FP
836 	movl	28(%esp),%edx
837 	rorl	$1,%edi
838 	movl	%esi,%eax
839 	xorl	%edi,%esi
840 	andl	$0xaaaaaaaa,%esi
841 	xorl	%esi,%eax
842 	xorl	%esi,%edi
843 
844 	roll	$23,%eax
845 	movl	%eax,%esi
846 	xorl	%edi,%eax
847 	andl	$0x03fc03fc,%eax
848 	xorl	%eax,%esi
849 	xorl	%eax,%edi
850 
851 	roll	$10,%esi
852 	movl	%esi,%eax
853 	xorl	%edi,%esi
854 	andl	$0x33333333,%esi
855 	xorl	%esi,%eax
856 	xorl	%esi,%edi
857 
858 	roll	$18,%edi
859 	movl	%edi,%esi
860 	xorl	%eax,%edi
861 	andl	$0xfff0000f,%edi
862 	xorl	%edi,%esi
863 	xorl	%edi,%eax
864 
865 	roll	$12,%esi
866 	movl	%esi,%edi
867 	xorl	%eax,%esi
868 	andl	$0xf0f0f0f0,%esi
869 	xorl	%esi,%edi
870 	xorl	%esi,%eax
871 
872 	rorl	$4,%eax
873 	movl	%eax,(%edx)
874 	movl	%edi,4(%edx)
875 	addl	$8,%esp
876 	popl	%edi
877 	popl	%esi
878 	popl	%ebx
879 	popl	%ebp
880 	ret
881 .section __IMPORT,__pointers,non_lazy_symbol_pointers
882 L_DES_SPtrans$non_lazy_ptr:
883 .indirect_symbol	_DES_SPtrans
884 .long	0
885