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
)