1 /* Run the C pre-processor over this file with one of the following defined
2 * ELF - elf object files,
3 * OUT - a.out object files,
4 * BSDI - BSDI style a.out object files
5 * SOL - Solaris style elf
8 #define TYPE(a,b) .type a,b
9 #define SIZE(a,b) .size a,b
11 #if defined(OUT) || defined(BSDI)
12 #define des_SPtrans _des_SPtrans
13 #define des_encrypt _des_encrypt
14 #define des_encrypt2 _des_encrypt2
15 #define des_encrypt3 _des_encrypt3
16 #define des_decrypt3 _des_decrypt3
17 #define des_ncbc_encrypt _des_ncbc_encrypt
18 #define des_ede3_cbc_encrypt _des_ede3_cbc_encrypt
36 #if defined(ELF) || defined(SOL)
42 You need to define one of
43 ELF - elf systems - linux-elf, NetBSD and DG-UX
44 OUT - a.out systems - linux-a.out and FreeBSD
45 SOL - solaris systems, which are elf with strange comment lines
46 BSDI - a.out with a very primative version of as.
49 /* Let the Assembler begin :-) */
50 /* Don't even think of reading this code */
51 /* It was automatically generated by des-586.pl */
52 /* Which is a perl program used to generate the x86 assember for */
53 /* any of elf, a.out, BSDI,Win32, or Solaris */
54 /* eric <eay@cryptsoft.com> */
62 TYPE(des_encrypt,@function)
67 /* Load the 2 words */
80 andl $0xf0f0f0f0, %eax
87 andl $0xfff0000f, %edi
94 andl $0x33333333, %eax
101 andl $0x03fc03fc, %esi
108 andl $0xaaaaaaaa, %eax
113 .byte 199 /* roll $1 %edi */
116 je .L000start_decrypt
124 andl $0xfcfcfcfc, %eax
125 andl $0xcfcfcfcf, %edx
129 movl des_SPtrans(%ebx),%ebp
132 movl 0x200+des_SPtrans(%ecx),%ebp
136 movl 0x100+des_SPtrans(%ebx),%ebp
140 movl 0x300+des_SPtrans(%ecx),%ebp
146 movl 0x600+des_SPtrans(%ebx),%ebx
148 movl 0x700+des_SPtrans(%ecx),%ebx
150 movl 0x400+des_SPtrans(%eax),%ebx
152 movl 0x500+des_SPtrans(%edx),%ebx
161 andl $0xfcfcfcfc, %eax
162 andl $0xcfcfcfcf, %edx
166 movl des_SPtrans(%ebx),%ebp
169 movl 0x200+des_SPtrans(%ecx),%ebp
173 movl 0x100+des_SPtrans(%ebx),%ebp
177 movl 0x300+des_SPtrans(%ecx),%ebp
183 movl 0x600+des_SPtrans(%ebx),%ebx
185 movl 0x700+des_SPtrans(%ecx),%ebx
187 movl 0x400+des_SPtrans(%eax),%ebx
189 movl 0x500+des_SPtrans(%edx),%ebx
198 andl $0xfcfcfcfc, %eax
199 andl $0xcfcfcfcf, %edx
203 movl des_SPtrans(%ebx),%ebp
206 movl 0x200+des_SPtrans(%ecx),%ebp
210 movl 0x100+des_SPtrans(%ebx),%ebp
214 movl 0x300+des_SPtrans(%ecx),%ebp
220 movl 0x600+des_SPtrans(%ebx),%ebx
222 movl 0x700+des_SPtrans(%ecx),%ebx
224 movl 0x400+des_SPtrans(%eax),%ebx
226 movl 0x500+des_SPtrans(%edx),%ebx
235 andl $0xfcfcfcfc, %eax
236 andl $0xcfcfcfcf, %edx
240 movl des_SPtrans(%ebx),%ebp
243 movl 0x200+des_SPtrans(%ecx),%ebp
247 movl 0x100+des_SPtrans(%ebx),%ebp
251 movl 0x300+des_SPtrans(%ecx),%ebp
257 movl 0x600+des_SPtrans(%ebx),%ebx
259 movl 0x700+des_SPtrans(%ecx),%ebx
261 movl 0x400+des_SPtrans(%eax),%ebx
263 movl 0x500+des_SPtrans(%edx),%ebx
272 andl $0xfcfcfcfc, %eax
273 andl $0xcfcfcfcf, %edx
277 movl des_SPtrans(%ebx),%ebp
280 movl 0x200+des_SPtrans(%ecx),%ebp
284 movl 0x100+des_SPtrans(%ebx),%ebp
288 movl 0x300+des_SPtrans(%ecx),%ebp
294 movl 0x600+des_SPtrans(%ebx),%ebx
296 movl 0x700+des_SPtrans(%ecx),%ebx
298 movl 0x400+des_SPtrans(%eax),%ebx
300 movl 0x500+des_SPtrans(%edx),%ebx
309 andl $0xfcfcfcfc, %eax
310 andl $0xcfcfcfcf, %edx
314 movl des_SPtrans(%ebx),%ebp
317 movl 0x200+des_SPtrans(%ecx),%ebp
321 movl 0x100+des_SPtrans(%ebx),%ebp
325 movl 0x300+des_SPtrans(%ecx),%ebp
331 movl 0x600+des_SPtrans(%ebx),%ebx
333 movl 0x700+des_SPtrans(%ecx),%ebx
335 movl 0x400+des_SPtrans(%eax),%ebx
337 movl 0x500+des_SPtrans(%edx),%ebx
346 andl $0xfcfcfcfc, %eax
347 andl $0xcfcfcfcf, %edx
351 movl des_SPtrans(%ebx),%ebp
354 movl 0x200+des_SPtrans(%ecx),%ebp
358 movl 0x100+des_SPtrans(%ebx),%ebp
362 movl 0x300+des_SPtrans(%ecx),%ebp
368 movl 0x600+des_SPtrans(%ebx),%ebx
370 movl 0x700+des_SPtrans(%ecx),%ebx
372 movl 0x400+des_SPtrans(%eax),%ebx
374 movl 0x500+des_SPtrans(%edx),%ebx
383 andl $0xfcfcfcfc, %eax
384 andl $0xcfcfcfcf, %edx
388 movl des_SPtrans(%ebx),%ebp
391 movl 0x200+des_SPtrans(%ecx),%ebp
395 movl 0x100+des_SPtrans(%ebx),%ebp
399 movl 0x300+des_SPtrans(%ecx),%ebp
405 movl 0x600+des_SPtrans(%ebx),%ebx
407 movl 0x700+des_SPtrans(%ecx),%ebx
409 movl 0x400+des_SPtrans(%eax),%ebx
411 movl 0x500+des_SPtrans(%edx),%ebx
420 andl $0xfcfcfcfc, %eax
421 andl $0xcfcfcfcf, %edx
425 movl des_SPtrans(%ebx),%ebp
428 movl 0x200+des_SPtrans(%ecx),%ebp
432 movl 0x100+des_SPtrans(%ebx),%ebp
436 movl 0x300+des_SPtrans(%ecx),%ebp
442 movl 0x600+des_SPtrans(%ebx),%ebx
444 movl 0x700+des_SPtrans(%ecx),%ebx
446 movl 0x400+des_SPtrans(%eax),%ebx
448 movl 0x500+des_SPtrans(%edx),%ebx
457 andl $0xfcfcfcfc, %eax
458 andl $0xcfcfcfcf, %edx
462 movl des_SPtrans(%ebx),%ebp
465 movl 0x200+des_SPtrans(%ecx),%ebp
469 movl 0x100+des_SPtrans(%ebx),%ebp
473 movl 0x300+des_SPtrans(%ecx),%ebp
479 movl 0x600+des_SPtrans(%ebx),%ebx
481 movl 0x700+des_SPtrans(%ecx),%ebx
483 movl 0x400+des_SPtrans(%eax),%ebx
485 movl 0x500+des_SPtrans(%edx),%ebx
494 andl $0xfcfcfcfc, %eax
495 andl $0xcfcfcfcf, %edx
499 movl des_SPtrans(%ebx),%ebp
502 movl 0x200+des_SPtrans(%ecx),%ebp
506 movl 0x100+des_SPtrans(%ebx),%ebp
510 movl 0x300+des_SPtrans(%ecx),%ebp
516 movl 0x600+des_SPtrans(%ebx),%ebx
518 movl 0x700+des_SPtrans(%ecx),%ebx
520 movl 0x400+des_SPtrans(%eax),%ebx
522 movl 0x500+des_SPtrans(%edx),%ebx
531 andl $0xfcfcfcfc, %eax
532 andl $0xcfcfcfcf, %edx
536 movl des_SPtrans(%ebx),%ebp
539 movl 0x200+des_SPtrans(%ecx),%ebp
543 movl 0x100+des_SPtrans(%ebx),%ebp
547 movl 0x300+des_SPtrans(%ecx),%ebp
553 movl 0x600+des_SPtrans(%ebx),%ebx
555 movl 0x700+des_SPtrans(%ecx),%ebx
557 movl 0x400+des_SPtrans(%eax),%ebx
559 movl 0x500+des_SPtrans(%edx),%ebx
568 andl $0xfcfcfcfc, %eax
569 andl $0xcfcfcfcf, %edx
573 movl des_SPtrans(%ebx),%ebp
576 movl 0x200+des_SPtrans(%ecx),%ebp
580 movl 0x100+des_SPtrans(%ebx),%ebp
584 movl 0x300+des_SPtrans(%ecx),%ebp
590 movl 0x600+des_SPtrans(%ebx),%ebx
592 movl 0x700+des_SPtrans(%ecx),%ebx
594 movl 0x400+des_SPtrans(%eax),%ebx
596 movl 0x500+des_SPtrans(%edx),%ebx
605 andl $0xfcfcfcfc, %eax
606 andl $0xcfcfcfcf, %edx
610 movl des_SPtrans(%ebx),%ebp
613 movl 0x200+des_SPtrans(%ecx),%ebp
617 movl 0x100+des_SPtrans(%ebx),%ebp
621 movl 0x300+des_SPtrans(%ecx),%ebp
627 movl 0x600+des_SPtrans(%ebx),%ebx
629 movl 0x700+des_SPtrans(%ecx),%ebx
631 movl 0x400+des_SPtrans(%eax),%ebx
633 movl 0x500+des_SPtrans(%edx),%ebx
642 andl $0xfcfcfcfc, %eax
643 andl $0xcfcfcfcf, %edx
647 movl des_SPtrans(%ebx),%ebp
650 movl 0x200+des_SPtrans(%ecx),%ebp
654 movl 0x100+des_SPtrans(%ebx),%ebp
658 movl 0x300+des_SPtrans(%ecx),%ebp
664 movl 0x600+des_SPtrans(%ebx),%ebx
666 movl 0x700+des_SPtrans(%ecx),%ebx
668 movl 0x400+des_SPtrans(%eax),%ebx
670 movl 0x500+des_SPtrans(%edx),%ebx
679 andl $0xfcfcfcfc, %eax
680 andl $0xcfcfcfcf, %edx
684 movl des_SPtrans(%ebx),%ebp
687 movl 0x200+des_SPtrans(%ecx),%ebp
691 movl 0x100+des_SPtrans(%ebx),%ebp
695 movl 0x300+des_SPtrans(%ecx),%ebp
701 movl 0x600+des_SPtrans(%ebx),%ebx
703 movl 0x700+des_SPtrans(%ecx),%ebx
705 movl 0x400+des_SPtrans(%eax),%ebx
707 movl 0x500+des_SPtrans(%edx),%ebx
718 andl $0xfcfcfcfc, %eax
719 andl $0xcfcfcfcf, %edx
723 movl des_SPtrans(%ebx),%ebp
726 movl 0x200+des_SPtrans(%ecx),%ebp
730 movl 0x100+des_SPtrans(%ebx),%ebp
734 movl 0x300+des_SPtrans(%ecx),%ebp
740 movl 0x600+des_SPtrans(%ebx),%ebx
742 movl 0x700+des_SPtrans(%ecx),%ebx
744 movl 0x400+des_SPtrans(%eax),%ebx
746 movl 0x500+des_SPtrans(%edx),%ebx
755 andl $0xfcfcfcfc, %eax
756 andl $0xcfcfcfcf, %edx
760 movl des_SPtrans(%ebx),%ebp
763 movl 0x200+des_SPtrans(%ecx),%ebp
767 movl 0x100+des_SPtrans(%ebx),%ebp
771 movl 0x300+des_SPtrans(%ecx),%ebp
777 movl 0x600+des_SPtrans(%ebx),%ebx
779 movl 0x700+des_SPtrans(%ecx),%ebx
781 movl 0x400+des_SPtrans(%eax),%ebx
783 movl 0x500+des_SPtrans(%edx),%ebx
792 andl $0xfcfcfcfc, %eax
793 andl $0xcfcfcfcf, %edx
797 movl des_SPtrans(%ebx),%ebp
800 movl 0x200+des_SPtrans(%ecx),%ebp
804 movl 0x100+des_SPtrans(%ebx),%ebp
808 movl 0x300+des_SPtrans(%ecx),%ebp
814 movl 0x600+des_SPtrans(%ebx),%ebx
816 movl 0x700+des_SPtrans(%ecx),%ebx
818 movl 0x400+des_SPtrans(%eax),%ebx
820 movl 0x500+des_SPtrans(%edx),%ebx
829 andl $0xfcfcfcfc, %eax
830 andl $0xcfcfcfcf, %edx
834 movl des_SPtrans(%ebx),%ebp
837 movl 0x200+des_SPtrans(%ecx),%ebp
841 movl 0x100+des_SPtrans(%ebx),%ebp
845 movl 0x300+des_SPtrans(%ecx),%ebp
851 movl 0x600+des_SPtrans(%ebx),%ebx
853 movl 0x700+des_SPtrans(%ecx),%ebx
855 movl 0x400+des_SPtrans(%eax),%ebx
857 movl 0x500+des_SPtrans(%edx),%ebx
866 andl $0xfcfcfcfc, %eax
867 andl $0xcfcfcfcf, %edx
871 movl des_SPtrans(%ebx),%ebp
874 movl 0x200+des_SPtrans(%ecx),%ebp
878 movl 0x100+des_SPtrans(%ebx),%ebp
882 movl 0x300+des_SPtrans(%ecx),%ebp
888 movl 0x600+des_SPtrans(%ebx),%ebx
890 movl 0x700+des_SPtrans(%ecx),%ebx
892 movl 0x400+des_SPtrans(%eax),%ebx
894 movl 0x500+des_SPtrans(%edx),%ebx
903 andl $0xfcfcfcfc, %eax
904 andl $0xcfcfcfcf, %edx
908 movl des_SPtrans(%ebx),%ebp
911 movl 0x200+des_SPtrans(%ecx),%ebp
915 movl 0x100+des_SPtrans(%ebx),%ebp
919 movl 0x300+des_SPtrans(%ecx),%ebp
925 movl 0x600+des_SPtrans(%ebx),%ebx
927 movl 0x700+des_SPtrans(%ecx),%ebx
929 movl 0x400+des_SPtrans(%eax),%ebx
931 movl 0x500+des_SPtrans(%edx),%ebx
940 andl $0xfcfcfcfc, %eax
941 andl $0xcfcfcfcf, %edx
945 movl des_SPtrans(%ebx),%ebp
948 movl 0x200+des_SPtrans(%ecx),%ebp
952 movl 0x100+des_SPtrans(%ebx),%ebp
956 movl 0x300+des_SPtrans(%ecx),%ebp
962 movl 0x600+des_SPtrans(%ebx),%ebx
964 movl 0x700+des_SPtrans(%ecx),%ebx
966 movl 0x400+des_SPtrans(%eax),%ebx
968 movl 0x500+des_SPtrans(%edx),%ebx
977 andl $0xfcfcfcfc, %eax
978 andl $0xcfcfcfcf, %edx
982 movl des_SPtrans(%ebx),%ebp
985 movl 0x200+des_SPtrans(%ecx),%ebp
989 movl 0x100+des_SPtrans(%ebx),%ebp
993 movl 0x300+des_SPtrans(%ecx),%ebp
999 movl 0x600+des_SPtrans(%ebx),%ebx
1001 movl 0x700+des_SPtrans(%ecx),%ebx
1003 movl 0x400+des_SPtrans(%eax),%ebx
1005 movl 0x500+des_SPtrans(%edx),%ebx
1014 andl $0xfcfcfcfc, %eax
1015 andl $0xcfcfcfcf, %edx
1019 movl des_SPtrans(%ebx),%ebp
1022 movl 0x200+des_SPtrans(%ecx),%ebp
1026 movl 0x100+des_SPtrans(%ebx),%ebp
1030 movl 0x300+des_SPtrans(%ecx),%ebp
1036 movl 0x600+des_SPtrans(%ebx),%ebx
1038 movl 0x700+des_SPtrans(%ecx),%ebx
1040 movl 0x400+des_SPtrans(%eax),%ebx
1042 movl 0x500+des_SPtrans(%edx),%ebx
1051 andl $0xfcfcfcfc, %eax
1052 andl $0xcfcfcfcf, %edx
1056 movl des_SPtrans(%ebx),%ebp
1059 movl 0x200+des_SPtrans(%ecx),%ebp
1063 movl 0x100+des_SPtrans(%ebx),%ebp
1067 movl 0x300+des_SPtrans(%ecx),%ebp
1073 movl 0x600+des_SPtrans(%ebx),%ebx
1075 movl 0x700+des_SPtrans(%ecx),%ebx
1077 movl 0x400+des_SPtrans(%eax),%ebx
1079 movl 0x500+des_SPtrans(%edx),%ebx
1088 andl $0xfcfcfcfc, %eax
1089 andl $0xcfcfcfcf, %edx
1093 movl des_SPtrans(%ebx),%ebp
1096 movl 0x200+des_SPtrans(%ecx),%ebp
1100 movl 0x100+des_SPtrans(%ebx),%ebp
1104 movl 0x300+des_SPtrans(%ecx),%ebp
1110 movl 0x600+des_SPtrans(%ebx),%ebx
1112 movl 0x700+des_SPtrans(%ecx),%ebx
1114 movl 0x400+des_SPtrans(%eax),%ebx
1116 movl 0x500+des_SPtrans(%edx),%ebx
1125 andl $0xfcfcfcfc, %eax
1126 andl $0xcfcfcfcf, %edx
1130 movl des_SPtrans(%ebx),%ebp
1133 movl 0x200+des_SPtrans(%ecx),%ebp
1137 movl 0x100+des_SPtrans(%ebx),%ebp
1141 movl 0x300+des_SPtrans(%ecx),%ebp
1147 movl 0x600+des_SPtrans(%ebx),%ebx
1149 movl 0x700+des_SPtrans(%ecx),%ebx
1151 movl 0x400+des_SPtrans(%eax),%ebx
1153 movl 0x500+des_SPtrans(%edx),%ebx
1162 andl $0xfcfcfcfc, %eax
1163 andl $0xcfcfcfcf, %edx
1167 movl des_SPtrans(%ebx),%ebp
1170 movl 0x200+des_SPtrans(%ecx),%ebp
1174 movl 0x100+des_SPtrans(%ebx),%ebp
1178 movl 0x300+des_SPtrans(%ecx),%ebp
1184 movl 0x600+des_SPtrans(%ebx),%ebx
1186 movl 0x700+des_SPtrans(%ecx),%ebx
1188 movl 0x400+des_SPtrans(%eax),%ebx
1190 movl 0x500+des_SPtrans(%edx),%ebx
1199 andl $0xfcfcfcfc, %eax
1200 andl $0xcfcfcfcf, %edx
1204 movl des_SPtrans(%ebx),%ebp
1207 movl 0x200+des_SPtrans(%ecx),%ebp
1211 movl 0x100+des_SPtrans(%ebx),%ebp
1215 movl 0x300+des_SPtrans(%ecx),%ebp
1221 movl 0x600+des_SPtrans(%ebx),%ebx
1223 movl 0x700+des_SPtrans(%ecx),%ebx
1225 movl 0x400+des_SPtrans(%eax),%ebx
1227 movl 0x500+des_SPtrans(%edx),%ebx
1236 andl $0xfcfcfcfc, %eax
1237 andl $0xcfcfcfcf, %edx
1241 movl des_SPtrans(%ebx),%ebp
1244 movl 0x200+des_SPtrans(%ecx),%ebp
1248 movl 0x100+des_SPtrans(%ebx),%ebp
1252 movl 0x300+des_SPtrans(%ecx),%ebp
1258 movl 0x600+des_SPtrans(%ebx),%ebx
1260 movl 0x700+des_SPtrans(%ecx),%ebx
1262 movl 0x400+des_SPtrans(%eax),%ebx
1264 movl 0x500+des_SPtrans(%edx),%ebx
1273 andl $0xfcfcfcfc, %eax
1274 andl $0xcfcfcfcf, %edx
1278 movl des_SPtrans(%ebx),%ebp
1281 movl 0x200+des_SPtrans(%ecx),%ebp
1285 movl 0x100+des_SPtrans(%ebx),%ebp
1289 movl 0x300+des_SPtrans(%ecx),%ebp
1295 movl 0x600+des_SPtrans(%ebx),%ebx
1297 movl 0x700+des_SPtrans(%ecx),%ebx
1299 movl 0x400+des_SPtrans(%eax),%ebx
1301 movl 0x500+des_SPtrans(%edx),%ebx
1308 .byte 206 /* rorl $1 %esi */
1311 andl $0xaaaaaaaa, %edi
1318 andl $0x03fc03fc, %eax
1325 andl $0x33333333, %edi
1332 andl $0xfff0000f, %esi
1339 andl $0xf0f0f0f0, %edi
1352 SIZE(des_encrypt,.des_encrypt_end-des_encrypt)
1357 TYPE(des_encrypt2,@function)
1362 /* Load the 2 words */
1374 je .L002start_decrypt
1382 andl $0xfcfcfcfc, %eax
1383 andl $0xcfcfcfcf, %edx
1387 movl des_SPtrans(%ebx),%ebp
1390 movl 0x200+des_SPtrans(%ecx),%ebp
1394 movl 0x100+des_SPtrans(%ebx),%ebp
1398 movl 0x300+des_SPtrans(%ecx),%ebp
1404 movl 0x600+des_SPtrans(%ebx),%ebx
1406 movl 0x700+des_SPtrans(%ecx),%ebx
1408 movl 0x400+des_SPtrans(%eax),%ebx
1410 movl 0x500+des_SPtrans(%edx),%ebx
1419 andl $0xfcfcfcfc, %eax
1420 andl $0xcfcfcfcf, %edx
1424 movl des_SPtrans(%ebx),%ebp
1427 movl 0x200+des_SPtrans(%ecx),%ebp
1431 movl 0x100+des_SPtrans(%ebx),%ebp
1435 movl 0x300+des_SPtrans(%ecx),%ebp
1441 movl 0x600+des_SPtrans(%ebx),%ebx
1443 movl 0x700+des_SPtrans(%ecx),%ebx
1445 movl 0x400+des_SPtrans(%eax),%ebx
1447 movl 0x500+des_SPtrans(%edx),%ebx
1456 andl $0xfcfcfcfc, %eax
1457 andl $0xcfcfcfcf, %edx
1461 movl des_SPtrans(%ebx),%ebp
1464 movl 0x200+des_SPtrans(%ecx),%ebp
1468 movl 0x100+des_SPtrans(%ebx),%ebp
1472 movl 0x300+des_SPtrans(%ecx),%ebp
1478 movl 0x600+des_SPtrans(%ebx),%ebx
1480 movl 0x700+des_SPtrans(%ecx),%ebx
1482 movl 0x400+des_SPtrans(%eax),%ebx
1484 movl 0x500+des_SPtrans(%edx),%ebx
1493 andl $0xfcfcfcfc, %eax
1494 andl $0xcfcfcfcf, %edx
1498 movl des_SPtrans(%ebx),%ebp
1501 movl 0x200+des_SPtrans(%ecx),%ebp
1505 movl 0x100+des_SPtrans(%ebx),%ebp
1509 movl 0x300+des_SPtrans(%ecx),%ebp
1515 movl 0x600+des_SPtrans(%ebx),%ebx
1517 movl 0x700+des_SPtrans(%ecx),%ebx
1519 movl 0x400+des_SPtrans(%eax),%ebx
1521 movl 0x500+des_SPtrans(%edx),%ebx
1530 andl $0xfcfcfcfc, %eax
1531 andl $0xcfcfcfcf, %edx
1535 movl des_SPtrans(%ebx),%ebp
1538 movl 0x200+des_SPtrans(%ecx),%ebp
1542 movl 0x100+des_SPtrans(%ebx),%ebp
1546 movl 0x300+des_SPtrans(%ecx),%ebp
1552 movl 0x600+des_SPtrans(%ebx),%ebx
1554 movl 0x700+des_SPtrans(%ecx),%ebx
1556 movl 0x400+des_SPtrans(%eax),%ebx
1558 movl 0x500+des_SPtrans(%edx),%ebx
1567 andl $0xfcfcfcfc, %eax
1568 andl $0xcfcfcfcf, %edx
1572 movl des_SPtrans(%ebx),%ebp
1575 movl 0x200+des_SPtrans(%ecx),%ebp
1579 movl 0x100+des_SPtrans(%ebx),%ebp
1583 movl 0x300+des_SPtrans(%ecx),%ebp
1589 movl 0x600+des_SPtrans(%ebx),%ebx
1591 movl 0x700+des_SPtrans(%ecx),%ebx
1593 movl 0x400+des_SPtrans(%eax),%ebx
1595 movl 0x500+des_SPtrans(%edx),%ebx
1604 andl $0xfcfcfcfc, %eax
1605 andl $0xcfcfcfcf, %edx
1609 movl des_SPtrans(%ebx),%ebp
1612 movl 0x200+des_SPtrans(%ecx),%ebp
1616 movl 0x100+des_SPtrans(%ebx),%ebp
1620 movl 0x300+des_SPtrans(%ecx),%ebp
1626 movl 0x600+des_SPtrans(%ebx),%ebx
1628 movl 0x700+des_SPtrans(%ecx),%ebx
1630 movl 0x400+des_SPtrans(%eax),%ebx
1632 movl 0x500+des_SPtrans(%edx),%ebx
1641 andl $0xfcfcfcfc, %eax
1642 andl $0xcfcfcfcf, %edx
1646 movl des_SPtrans(%ebx),%ebp
1649 movl 0x200+des_SPtrans(%ecx),%ebp
1653 movl 0x100+des_SPtrans(%ebx),%ebp
1657 movl 0x300+des_SPtrans(%ecx),%ebp
1663 movl 0x600+des_SPtrans(%ebx),%ebx
1665 movl 0x700+des_SPtrans(%ecx),%ebx
1667 movl 0x400+des_SPtrans(%eax),%ebx
1669 movl 0x500+des_SPtrans(%edx),%ebx
1678 andl $0xfcfcfcfc, %eax
1679 andl $0xcfcfcfcf, %edx
1683 movl des_SPtrans(%ebx),%ebp
1686 movl 0x200+des_SPtrans(%ecx),%ebp
1690 movl 0x100+des_SPtrans(%ebx),%ebp
1694 movl 0x300+des_SPtrans(%ecx),%ebp
1700 movl 0x600+des_SPtrans(%ebx),%ebx
1702 movl 0x700+des_SPtrans(%ecx),%ebx
1704 movl 0x400+des_SPtrans(%eax),%ebx
1706 movl 0x500+des_SPtrans(%edx),%ebx
1715 andl $0xfcfcfcfc, %eax
1716 andl $0xcfcfcfcf, %edx
1720 movl des_SPtrans(%ebx),%ebp
1723 movl 0x200+des_SPtrans(%ecx),%ebp
1727 movl 0x100+des_SPtrans(%ebx),%ebp
1731 movl 0x300+des_SPtrans(%ecx),%ebp
1737 movl 0x600+des_SPtrans(%ebx),%ebx
1739 movl 0x700+des_SPtrans(%ecx),%ebx
1741 movl 0x400+des_SPtrans(%eax),%ebx
1743 movl 0x500+des_SPtrans(%edx),%ebx
1752 andl $0xfcfcfcfc, %eax
1753 andl $0xcfcfcfcf, %edx
1757 movl des_SPtrans(%ebx),%ebp
1760 movl 0x200+des_SPtrans(%ecx),%ebp
1764 movl 0x100+des_SPtrans(%ebx),%ebp
1768 movl 0x300+des_SPtrans(%ecx),%ebp
1774 movl 0x600+des_SPtrans(%ebx),%ebx
1776 movl 0x700+des_SPtrans(%ecx),%ebx
1778 movl 0x400+des_SPtrans(%eax),%ebx
1780 movl 0x500+des_SPtrans(%edx),%ebx
1789 andl $0xfcfcfcfc, %eax
1790 andl $0xcfcfcfcf, %edx
1794 movl des_SPtrans(%ebx),%ebp
1797 movl 0x200+des_SPtrans(%ecx),%ebp
1801 movl 0x100+des_SPtrans(%ebx),%ebp
1805 movl 0x300+des_SPtrans(%ecx),%ebp
1811 movl 0x600+des_SPtrans(%ebx),%ebx
1813 movl 0x700+des_SPtrans(%ecx),%ebx
1815 movl 0x400+des_SPtrans(%eax),%ebx
1817 movl 0x500+des_SPtrans(%edx),%ebx
1823 movl 100(%ebp), %edx
1826 andl $0xfcfcfcfc, %eax
1827 andl $0xcfcfcfcf, %edx
1831 movl des_SPtrans(%ebx),%ebp
1834 movl 0x200+des_SPtrans(%ecx),%ebp
1838 movl 0x100+des_SPtrans(%ebx),%ebp
1842 movl 0x300+des_SPtrans(%ecx),%ebp
1848 movl 0x600+des_SPtrans(%ebx),%ebx
1850 movl 0x700+des_SPtrans(%ecx),%ebx
1852 movl 0x400+des_SPtrans(%eax),%ebx
1854 movl 0x500+des_SPtrans(%edx),%ebx
1858 movl 104(%ebp), %eax
1860 movl 108(%ebp), %edx
1863 andl $0xfcfcfcfc, %eax
1864 andl $0xcfcfcfcf, %edx
1868 movl des_SPtrans(%ebx),%ebp
1871 movl 0x200+des_SPtrans(%ecx),%ebp
1875 movl 0x100+des_SPtrans(%ebx),%ebp
1879 movl 0x300+des_SPtrans(%ecx),%ebp
1885 movl 0x600+des_SPtrans(%ebx),%ebx
1887 movl 0x700+des_SPtrans(%ecx),%ebx
1889 movl 0x400+des_SPtrans(%eax),%ebx
1891 movl 0x500+des_SPtrans(%edx),%ebx
1895 movl 112(%ebp), %eax
1897 movl 116(%ebp), %edx
1900 andl $0xfcfcfcfc, %eax
1901 andl $0xcfcfcfcf, %edx
1905 movl des_SPtrans(%ebx),%ebp
1908 movl 0x200+des_SPtrans(%ecx),%ebp
1912 movl 0x100+des_SPtrans(%ebx),%ebp
1916 movl 0x300+des_SPtrans(%ecx),%ebp
1922 movl 0x600+des_SPtrans(%ebx),%ebx
1924 movl 0x700+des_SPtrans(%ecx),%ebx
1926 movl 0x400+des_SPtrans(%eax),%ebx
1928 movl 0x500+des_SPtrans(%edx),%ebx
1932 movl 120(%ebp), %eax
1934 movl 124(%ebp), %edx
1937 andl $0xfcfcfcfc, %eax
1938 andl $0xcfcfcfcf, %edx
1942 movl des_SPtrans(%ebx),%ebp
1945 movl 0x200+des_SPtrans(%ecx),%ebp
1949 movl 0x100+des_SPtrans(%ebx),%ebp
1953 movl 0x300+des_SPtrans(%ecx),%ebp
1959 movl 0x600+des_SPtrans(%ebx),%ebx
1961 movl 0x700+des_SPtrans(%ecx),%ebx
1963 movl 0x400+des_SPtrans(%eax),%ebx
1965 movl 0x500+des_SPtrans(%edx),%ebx
1971 movl 120(%ebp), %eax
1973 movl 124(%ebp), %edx
1976 andl $0xfcfcfcfc, %eax
1977 andl $0xcfcfcfcf, %edx
1981 movl des_SPtrans(%ebx),%ebp
1984 movl 0x200+des_SPtrans(%ecx),%ebp
1988 movl 0x100+des_SPtrans(%ebx),%ebp
1992 movl 0x300+des_SPtrans(%ecx),%ebp
1998 movl 0x600+des_SPtrans(%ebx),%ebx
2000 movl 0x700+des_SPtrans(%ecx),%ebx
2002 movl 0x400+des_SPtrans(%eax),%ebx
2004 movl 0x500+des_SPtrans(%edx),%ebx
2008 movl 112(%ebp), %eax
2010 movl 116(%ebp), %edx
2013 andl $0xfcfcfcfc, %eax
2014 andl $0xcfcfcfcf, %edx
2018 movl des_SPtrans(%ebx),%ebp
2021 movl 0x200+des_SPtrans(%ecx),%ebp
2025 movl 0x100+des_SPtrans(%ebx),%ebp
2029 movl 0x300+des_SPtrans(%ecx),%ebp
2035 movl 0x600+des_SPtrans(%ebx),%ebx
2037 movl 0x700+des_SPtrans(%ecx),%ebx
2039 movl 0x400+des_SPtrans(%eax),%ebx
2041 movl 0x500+des_SPtrans(%edx),%ebx
2045 movl 104(%ebp), %eax
2047 movl 108(%ebp), %edx
2050 andl $0xfcfcfcfc, %eax
2051 andl $0xcfcfcfcf, %edx
2055 movl des_SPtrans(%ebx),%ebp
2058 movl 0x200+des_SPtrans(%ecx),%ebp
2062 movl 0x100+des_SPtrans(%ebx),%ebp
2066 movl 0x300+des_SPtrans(%ecx),%ebp
2072 movl 0x600+des_SPtrans(%ebx),%ebx
2074 movl 0x700+des_SPtrans(%ecx),%ebx
2076 movl 0x400+des_SPtrans(%eax),%ebx
2078 movl 0x500+des_SPtrans(%edx),%ebx
2084 movl 100(%ebp), %edx
2087 andl $0xfcfcfcfc, %eax
2088 andl $0xcfcfcfcf, %edx
2092 movl des_SPtrans(%ebx),%ebp
2095 movl 0x200+des_SPtrans(%ecx),%ebp
2099 movl 0x100+des_SPtrans(%ebx),%ebp
2103 movl 0x300+des_SPtrans(%ecx),%ebp
2109 movl 0x600+des_SPtrans(%ebx),%ebx
2111 movl 0x700+des_SPtrans(%ecx),%ebx
2113 movl 0x400+des_SPtrans(%eax),%ebx
2115 movl 0x500+des_SPtrans(%edx),%ebx
2124 andl $0xfcfcfcfc, %eax
2125 andl $0xcfcfcfcf, %edx
2129 movl des_SPtrans(%ebx),%ebp
2132 movl 0x200+des_SPtrans(%ecx),%ebp
2136 movl 0x100+des_SPtrans(%ebx),%ebp
2140 movl 0x300+des_SPtrans(%ecx),%ebp
2146 movl 0x600+des_SPtrans(%ebx),%ebx
2148 movl 0x700+des_SPtrans(%ecx),%ebx
2150 movl 0x400+des_SPtrans(%eax),%ebx
2152 movl 0x500+des_SPtrans(%edx),%ebx
2161 andl $0xfcfcfcfc, %eax
2162 andl $0xcfcfcfcf, %edx
2166 movl des_SPtrans(%ebx),%ebp
2169 movl 0x200+des_SPtrans(%ecx),%ebp
2173 movl 0x100+des_SPtrans(%ebx),%ebp
2177 movl 0x300+des_SPtrans(%ecx),%ebp
2183 movl 0x600+des_SPtrans(%ebx),%ebx
2185 movl 0x700+des_SPtrans(%ecx),%ebx
2187 movl 0x400+des_SPtrans(%eax),%ebx
2189 movl 0x500+des_SPtrans(%edx),%ebx
2198 andl $0xfcfcfcfc, %eax
2199 andl $0xcfcfcfcf, %edx
2203 movl des_SPtrans(%ebx),%ebp
2206 movl 0x200+des_SPtrans(%ecx),%ebp
2210 movl 0x100+des_SPtrans(%ebx),%ebp
2214 movl 0x300+des_SPtrans(%ecx),%ebp
2220 movl 0x600+des_SPtrans(%ebx),%ebx
2222 movl 0x700+des_SPtrans(%ecx),%ebx
2224 movl 0x400+des_SPtrans(%eax),%ebx
2226 movl 0x500+des_SPtrans(%edx),%ebx
2235 andl $0xfcfcfcfc, %eax
2236 andl $0xcfcfcfcf, %edx
2240 movl des_SPtrans(%ebx),%ebp
2243 movl 0x200+des_SPtrans(%ecx),%ebp
2247 movl 0x100+des_SPtrans(%ebx),%ebp
2251 movl 0x300+des_SPtrans(%ecx),%ebp
2257 movl 0x600+des_SPtrans(%ebx),%ebx
2259 movl 0x700+des_SPtrans(%ecx),%ebx
2261 movl 0x400+des_SPtrans(%eax),%ebx
2263 movl 0x500+des_SPtrans(%edx),%ebx
2272 andl $0xfcfcfcfc, %eax
2273 andl $0xcfcfcfcf, %edx
2277 movl des_SPtrans(%ebx),%ebp
2280 movl 0x200+des_SPtrans(%ecx),%ebp
2284 movl 0x100+des_SPtrans(%ebx),%ebp
2288 movl 0x300+des_SPtrans(%ecx),%ebp
2294 movl 0x600+des_SPtrans(%ebx),%ebx
2296 movl 0x700+des_SPtrans(%ecx),%ebx
2298 movl 0x400+des_SPtrans(%eax),%ebx
2300 movl 0x500+des_SPtrans(%edx),%ebx
2309 andl $0xfcfcfcfc, %eax
2310 andl $0xcfcfcfcf, %edx
2314 movl des_SPtrans(%ebx),%ebp
2317 movl 0x200+des_SPtrans(%ecx),%ebp
2321 movl 0x100+des_SPtrans(%ebx),%ebp
2325 movl 0x300+des_SPtrans(%ecx),%ebp
2331 movl 0x600+des_SPtrans(%ebx),%ebx
2333 movl 0x700+des_SPtrans(%ecx),%ebx
2335 movl 0x400+des_SPtrans(%eax),%ebx
2337 movl 0x500+des_SPtrans(%edx),%ebx
2346 andl $0xfcfcfcfc, %eax
2347 andl $0xcfcfcfcf, %edx
2351 movl des_SPtrans(%ebx),%ebp
2354 movl 0x200+des_SPtrans(%ecx),%ebp
2358 movl 0x100+des_SPtrans(%ebx),%ebp
2362 movl 0x300+des_SPtrans(%ecx),%ebp
2368 movl 0x600+des_SPtrans(%ebx),%ebx
2370 movl 0x700+des_SPtrans(%ecx),%ebx
2372 movl 0x400+des_SPtrans(%eax),%ebx
2374 movl 0x500+des_SPtrans(%edx),%ebx
2383 andl $0xfcfcfcfc, %eax
2384 andl $0xcfcfcfcf, %edx
2388 movl des_SPtrans(%ebx),%ebp
2391 movl 0x200+des_SPtrans(%ecx),%ebp
2395 movl 0x100+des_SPtrans(%ebx),%ebp
2399 movl 0x300+des_SPtrans(%ecx),%ebp
2405 movl 0x600+des_SPtrans(%ebx),%ebx
2407 movl 0x700+des_SPtrans(%ecx),%ebx
2409 movl 0x400+des_SPtrans(%eax),%ebx
2411 movl 0x500+des_SPtrans(%edx),%ebx
2420 andl $0xfcfcfcfc, %eax
2421 andl $0xcfcfcfcf, %edx
2425 movl des_SPtrans(%ebx),%ebp
2428 movl 0x200+des_SPtrans(%ecx),%ebp
2432 movl 0x100+des_SPtrans(%ebx),%ebp
2436 movl 0x300+des_SPtrans(%ecx),%ebp
2442 movl 0x600+des_SPtrans(%ebx),%ebx
2444 movl 0x700+des_SPtrans(%ecx),%ebx
2446 movl 0x400+des_SPtrans(%eax),%ebx
2448 movl 0x500+des_SPtrans(%edx),%ebx
2457 andl $0xfcfcfcfc, %eax
2458 andl $0xcfcfcfcf, %edx
2462 movl des_SPtrans(%ebx),%ebp
2465 movl 0x200+des_SPtrans(%ecx),%ebp
2469 movl 0x100+des_SPtrans(%ebx),%ebp
2473 movl 0x300+des_SPtrans(%ecx),%ebp
2479 movl 0x600+des_SPtrans(%ebx),%ebx
2481 movl 0x700+des_SPtrans(%ecx),%ebx
2483 movl 0x400+des_SPtrans(%eax),%ebx
2485 movl 0x500+des_SPtrans(%edx),%ebx
2494 andl $0xfcfcfcfc, %eax
2495 andl $0xcfcfcfcf, %edx
2499 movl des_SPtrans(%ebx),%ebp
2502 movl 0x200+des_SPtrans(%ecx),%ebp
2506 movl 0x100+des_SPtrans(%ebx),%ebp
2510 movl 0x300+des_SPtrans(%ecx),%ebp
2516 movl 0x600+des_SPtrans(%ebx),%ebx
2518 movl 0x700+des_SPtrans(%ecx),%ebx
2520 movl 0x400+des_SPtrans(%eax),%ebx
2522 movl 0x500+des_SPtrans(%edx),%ebx
2531 andl $0xfcfcfcfc, %eax
2532 andl $0xcfcfcfcf, %edx
2536 movl des_SPtrans(%ebx),%ebp
2539 movl 0x200+des_SPtrans(%ecx),%ebp
2543 movl 0x100+des_SPtrans(%ebx),%ebp
2547 movl 0x300+des_SPtrans(%ecx),%ebp
2553 movl 0x600+des_SPtrans(%ebx),%ebx
2555 movl 0x700+des_SPtrans(%ecx),%ebx
2557 movl 0x400+des_SPtrans(%eax),%ebx
2559 movl 0x500+des_SPtrans(%edx),%ebx
2575 SIZE(des_encrypt2,.des_encrypt2_end-des_encrypt2)
2580 TYPE(des_encrypt3,@function)
2588 /* Load the data words */
2597 andl $0xf0f0f0f0, %edi
2604 andl $0xfff0000f, %esi
2611 andl $0x33333333, %edi
2618 andl $0x03fc03fc, %edx
2625 andl $0xaaaaaaaa, %edi
2657 andl $0xaaaaaaaa, %edi
2664 andl $0x03fc03fc, %eax
2671 andl $0x33333333, %edi
2678 andl $0xfff0000f, %esi
2685 andl $0xf0f0f0f0, %edi
2698 SIZE(des_encrypt3,.des_encrypt3_end-des_encrypt3)
2703 TYPE(des_decrypt3,@function)
2711 /* Load the data words */
2720 andl $0xf0f0f0f0, %edi
2727 andl $0xfff0000f, %esi
2734 andl $0x33333333, %edi
2741 andl $0x03fc03fc, %edx
2748 andl $0xaaaaaaaa, %edi
2780 andl $0xaaaaaaaa, %edi
2787 andl $0x03fc03fc, %eax
2794 andl $0x33333333, %edi
2801 andl $0xfff0000f, %esi
2808 andl $0xf0f0f0f0, %edi
2821 SIZE(des_decrypt3,.des_decrypt3_end-des_decrypt3)
2825 .globl des_ncbc_encrypt
2826 TYPE(des_ncbc_encrypt,@function)
2834 /* getting iv ptr from parameter 4 */
2845 /* getting encrypt flag from parameter 5 */
2847 /* get and push parameter 5 */
2849 /* get and push parameter 3 */
2855 andl $4294967288, %ebp
2858 jz .L005encrypt_finish
2874 jnz .L006encrypt_loop
2875 .L005encrypt_finish:
2881 movl .L008cbc_enc_jmp_table(,%ebp,4),%ebp
2913 andl $4294967288, %ebp
2916 jz .L017decrypt_finish
2938 jnz .L018decrypt_loop
2939 .L017decrypt_finish:
2989 .L008cbc_enc_jmp_table:
2999 .L027cbc_dec_jmp_table:
3008 .des_ncbc_encrypt_end:
3009 SIZE(des_ncbc_encrypt,.des_ncbc_encrypt_end-des_ncbc_encrypt)
3013 .globl des_ede3_cbc_encrypt
3014 TYPE(des_ede3_cbc_encrypt,@function)
3015 des_ede3_cbc_encrypt:
3022 /* getting iv ptr from parameter 6 */
3033 /* getting encrypt flag from parameter 7 */
3035 /* get and push parameter 5 */
3038 /* get and push parameter 4 */
3041 /* get and push parameter 3 */
3047 andl $4294967288, %ebp
3050 jz .L029encrypt_finish
3066 jnz .L030encrypt_loop
3067 .L029encrypt_finish:
3073 movl .L032cbc_enc_jmp_table(,%ebp,4),%ebp
3105 andl $4294967288, %ebp
3108 jz .L041decrypt_finish
3130 jnz .L042decrypt_loop
3131 .L041decrypt_finish:
3181 .L032cbc_enc_jmp_table:
3191 .L051cbc_dec_jmp_table:
3200 .des_ede3_cbc_encrypt_end:
3201 SIZE(des_ede3_cbc_encrypt,.des_ede3_cbc_encrypt_end-des_ede3_cbc_encrypt)