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
28 #if defined(ELF) || defined(SOL)
34 You need to define one of
35 ELF - elf systems - linux-elf, NetBSD and DG-UX
36 OUT - a.out systems - linux-a.out and FreeBSD
37 SOL - solaris systems, which are elf with strange comment lines
38 BSDI - a.out with a very primative version of as.
42 #define des_encrypt sw_des_encrypt
43 #define des_ncbc_encrypt sw_des_ncbc_encrypt
44 #define des_ede3_cbc_encrypt sw_des_ede3_cbc_encrypt
47 /* Let the Assembler begin :-) */
48 /* Don't even think of reading this code */
49 /* It was automatically generated by des-586.pl */
50 /* Which is a perl program used to generate the x86 assember for */
51 /* any of elf, a.out, BSDI,Win32, or Solaris */
52 /* eric <eay@cryptsoft.com> */
60 TYPE(des_encrypt,@function)
65 /* Load the 2 words */
78 andl $0xf0f0f0f0, %eax
85 andl $0xfff0000f, %edi
92 andl $0x33333333, %eax
99 andl $0x03fc03fc, %esi
106 andl $0xaaaaaaaa, %eax
111 .byte 199 /* roll $1 %edi */
114 je .L000start_decrypt
122 andl $0xfcfcfcfc, %eax
123 andl $0xcfcfcfcf, %edx
127 movl des_SPtrans(%ebx),%ebp
130 movl 0x200+des_SPtrans(%ecx),%ebp
134 movl 0x100+des_SPtrans(%ebx),%ebp
138 movl 0x300+des_SPtrans(%ecx),%ebp
144 movl 0x600+des_SPtrans(%ebx),%ebx
146 movl 0x700+des_SPtrans(%ecx),%ebx
148 movl 0x400+des_SPtrans(%eax),%ebx
150 movl 0x500+des_SPtrans(%edx),%ebx
159 andl $0xfcfcfcfc, %eax
160 andl $0xcfcfcfcf, %edx
164 movl des_SPtrans(%ebx),%ebp
167 movl 0x200+des_SPtrans(%ecx),%ebp
171 movl 0x100+des_SPtrans(%ebx),%ebp
175 movl 0x300+des_SPtrans(%ecx),%ebp
181 movl 0x600+des_SPtrans(%ebx),%ebx
183 movl 0x700+des_SPtrans(%ecx),%ebx
185 movl 0x400+des_SPtrans(%eax),%ebx
187 movl 0x500+des_SPtrans(%edx),%ebx
196 andl $0xfcfcfcfc, %eax
197 andl $0xcfcfcfcf, %edx
201 movl des_SPtrans(%ebx),%ebp
204 movl 0x200+des_SPtrans(%ecx),%ebp
208 movl 0x100+des_SPtrans(%ebx),%ebp
212 movl 0x300+des_SPtrans(%ecx),%ebp
218 movl 0x600+des_SPtrans(%ebx),%ebx
220 movl 0x700+des_SPtrans(%ecx),%ebx
222 movl 0x400+des_SPtrans(%eax),%ebx
224 movl 0x500+des_SPtrans(%edx),%ebx
233 andl $0xfcfcfcfc, %eax
234 andl $0xcfcfcfcf, %edx
238 movl des_SPtrans(%ebx),%ebp
241 movl 0x200+des_SPtrans(%ecx),%ebp
245 movl 0x100+des_SPtrans(%ebx),%ebp
249 movl 0x300+des_SPtrans(%ecx),%ebp
255 movl 0x600+des_SPtrans(%ebx),%ebx
257 movl 0x700+des_SPtrans(%ecx),%ebx
259 movl 0x400+des_SPtrans(%eax),%ebx
261 movl 0x500+des_SPtrans(%edx),%ebx
270 andl $0xfcfcfcfc, %eax
271 andl $0xcfcfcfcf, %edx
275 movl des_SPtrans(%ebx),%ebp
278 movl 0x200+des_SPtrans(%ecx),%ebp
282 movl 0x100+des_SPtrans(%ebx),%ebp
286 movl 0x300+des_SPtrans(%ecx),%ebp
292 movl 0x600+des_SPtrans(%ebx),%ebx
294 movl 0x700+des_SPtrans(%ecx),%ebx
296 movl 0x400+des_SPtrans(%eax),%ebx
298 movl 0x500+des_SPtrans(%edx),%ebx
307 andl $0xfcfcfcfc, %eax
308 andl $0xcfcfcfcf, %edx
312 movl des_SPtrans(%ebx),%ebp
315 movl 0x200+des_SPtrans(%ecx),%ebp
319 movl 0x100+des_SPtrans(%ebx),%ebp
323 movl 0x300+des_SPtrans(%ecx),%ebp
329 movl 0x600+des_SPtrans(%ebx),%ebx
331 movl 0x700+des_SPtrans(%ecx),%ebx
333 movl 0x400+des_SPtrans(%eax),%ebx
335 movl 0x500+des_SPtrans(%edx),%ebx
344 andl $0xfcfcfcfc, %eax
345 andl $0xcfcfcfcf, %edx
349 movl des_SPtrans(%ebx),%ebp
352 movl 0x200+des_SPtrans(%ecx),%ebp
356 movl 0x100+des_SPtrans(%ebx),%ebp
360 movl 0x300+des_SPtrans(%ecx),%ebp
366 movl 0x600+des_SPtrans(%ebx),%ebx
368 movl 0x700+des_SPtrans(%ecx),%ebx
370 movl 0x400+des_SPtrans(%eax),%ebx
372 movl 0x500+des_SPtrans(%edx),%ebx
381 andl $0xfcfcfcfc, %eax
382 andl $0xcfcfcfcf, %edx
386 movl des_SPtrans(%ebx),%ebp
389 movl 0x200+des_SPtrans(%ecx),%ebp
393 movl 0x100+des_SPtrans(%ebx),%ebp
397 movl 0x300+des_SPtrans(%ecx),%ebp
403 movl 0x600+des_SPtrans(%ebx),%ebx
405 movl 0x700+des_SPtrans(%ecx),%ebx
407 movl 0x400+des_SPtrans(%eax),%ebx
409 movl 0x500+des_SPtrans(%edx),%ebx
418 andl $0xfcfcfcfc, %eax
419 andl $0xcfcfcfcf, %edx
423 movl des_SPtrans(%ebx),%ebp
426 movl 0x200+des_SPtrans(%ecx),%ebp
430 movl 0x100+des_SPtrans(%ebx),%ebp
434 movl 0x300+des_SPtrans(%ecx),%ebp
440 movl 0x600+des_SPtrans(%ebx),%ebx
442 movl 0x700+des_SPtrans(%ecx),%ebx
444 movl 0x400+des_SPtrans(%eax),%ebx
446 movl 0x500+des_SPtrans(%edx),%ebx
455 andl $0xfcfcfcfc, %eax
456 andl $0xcfcfcfcf, %edx
460 movl des_SPtrans(%ebx),%ebp
463 movl 0x200+des_SPtrans(%ecx),%ebp
467 movl 0x100+des_SPtrans(%ebx),%ebp
471 movl 0x300+des_SPtrans(%ecx),%ebp
477 movl 0x600+des_SPtrans(%ebx),%ebx
479 movl 0x700+des_SPtrans(%ecx),%ebx
481 movl 0x400+des_SPtrans(%eax),%ebx
483 movl 0x500+des_SPtrans(%edx),%ebx
492 andl $0xfcfcfcfc, %eax
493 andl $0xcfcfcfcf, %edx
497 movl des_SPtrans(%ebx),%ebp
500 movl 0x200+des_SPtrans(%ecx),%ebp
504 movl 0x100+des_SPtrans(%ebx),%ebp
508 movl 0x300+des_SPtrans(%ecx),%ebp
514 movl 0x600+des_SPtrans(%ebx),%ebx
516 movl 0x700+des_SPtrans(%ecx),%ebx
518 movl 0x400+des_SPtrans(%eax),%ebx
520 movl 0x500+des_SPtrans(%edx),%ebx
529 andl $0xfcfcfcfc, %eax
530 andl $0xcfcfcfcf, %edx
534 movl des_SPtrans(%ebx),%ebp
537 movl 0x200+des_SPtrans(%ecx),%ebp
541 movl 0x100+des_SPtrans(%ebx),%ebp
545 movl 0x300+des_SPtrans(%ecx),%ebp
551 movl 0x600+des_SPtrans(%ebx),%ebx
553 movl 0x700+des_SPtrans(%ecx),%ebx
555 movl 0x400+des_SPtrans(%eax),%ebx
557 movl 0x500+des_SPtrans(%edx),%ebx
566 andl $0xfcfcfcfc, %eax
567 andl $0xcfcfcfcf, %edx
571 movl des_SPtrans(%ebx),%ebp
574 movl 0x200+des_SPtrans(%ecx),%ebp
578 movl 0x100+des_SPtrans(%ebx),%ebp
582 movl 0x300+des_SPtrans(%ecx),%ebp
588 movl 0x600+des_SPtrans(%ebx),%ebx
590 movl 0x700+des_SPtrans(%ecx),%ebx
592 movl 0x400+des_SPtrans(%eax),%ebx
594 movl 0x500+des_SPtrans(%edx),%ebx
603 andl $0xfcfcfcfc, %eax
604 andl $0xcfcfcfcf, %edx
608 movl des_SPtrans(%ebx),%ebp
611 movl 0x200+des_SPtrans(%ecx),%ebp
615 movl 0x100+des_SPtrans(%ebx),%ebp
619 movl 0x300+des_SPtrans(%ecx),%ebp
625 movl 0x600+des_SPtrans(%ebx),%ebx
627 movl 0x700+des_SPtrans(%ecx),%ebx
629 movl 0x400+des_SPtrans(%eax),%ebx
631 movl 0x500+des_SPtrans(%edx),%ebx
640 andl $0xfcfcfcfc, %eax
641 andl $0xcfcfcfcf, %edx
645 movl des_SPtrans(%ebx),%ebp
648 movl 0x200+des_SPtrans(%ecx),%ebp
652 movl 0x100+des_SPtrans(%ebx),%ebp
656 movl 0x300+des_SPtrans(%ecx),%ebp
662 movl 0x600+des_SPtrans(%ebx),%ebx
664 movl 0x700+des_SPtrans(%ecx),%ebx
666 movl 0x400+des_SPtrans(%eax),%ebx
668 movl 0x500+des_SPtrans(%edx),%ebx
677 andl $0xfcfcfcfc, %eax
678 andl $0xcfcfcfcf, %edx
682 movl des_SPtrans(%ebx),%ebp
685 movl 0x200+des_SPtrans(%ecx),%ebp
689 movl 0x100+des_SPtrans(%ebx),%ebp
693 movl 0x300+des_SPtrans(%ecx),%ebp
699 movl 0x600+des_SPtrans(%ebx),%ebx
701 movl 0x700+des_SPtrans(%ecx),%ebx
703 movl 0x400+des_SPtrans(%eax),%ebx
705 movl 0x500+des_SPtrans(%edx),%ebx
716 andl $0xfcfcfcfc, %eax
717 andl $0xcfcfcfcf, %edx
721 movl des_SPtrans(%ebx),%ebp
724 movl 0x200+des_SPtrans(%ecx),%ebp
728 movl 0x100+des_SPtrans(%ebx),%ebp
732 movl 0x300+des_SPtrans(%ecx),%ebp
738 movl 0x600+des_SPtrans(%ebx),%ebx
740 movl 0x700+des_SPtrans(%ecx),%ebx
742 movl 0x400+des_SPtrans(%eax),%ebx
744 movl 0x500+des_SPtrans(%edx),%ebx
753 andl $0xfcfcfcfc, %eax
754 andl $0xcfcfcfcf, %edx
758 movl des_SPtrans(%ebx),%ebp
761 movl 0x200+des_SPtrans(%ecx),%ebp
765 movl 0x100+des_SPtrans(%ebx),%ebp
769 movl 0x300+des_SPtrans(%ecx),%ebp
775 movl 0x600+des_SPtrans(%ebx),%ebx
777 movl 0x700+des_SPtrans(%ecx),%ebx
779 movl 0x400+des_SPtrans(%eax),%ebx
781 movl 0x500+des_SPtrans(%edx),%ebx
790 andl $0xfcfcfcfc, %eax
791 andl $0xcfcfcfcf, %edx
795 movl des_SPtrans(%ebx),%ebp
798 movl 0x200+des_SPtrans(%ecx),%ebp
802 movl 0x100+des_SPtrans(%ebx),%ebp
806 movl 0x300+des_SPtrans(%ecx),%ebp
812 movl 0x600+des_SPtrans(%ebx),%ebx
814 movl 0x700+des_SPtrans(%ecx),%ebx
816 movl 0x400+des_SPtrans(%eax),%ebx
818 movl 0x500+des_SPtrans(%edx),%ebx
827 andl $0xfcfcfcfc, %eax
828 andl $0xcfcfcfcf, %edx
832 movl des_SPtrans(%ebx),%ebp
835 movl 0x200+des_SPtrans(%ecx),%ebp
839 movl 0x100+des_SPtrans(%ebx),%ebp
843 movl 0x300+des_SPtrans(%ecx),%ebp
849 movl 0x600+des_SPtrans(%ebx),%ebx
851 movl 0x700+des_SPtrans(%ecx),%ebx
853 movl 0x400+des_SPtrans(%eax),%ebx
855 movl 0x500+des_SPtrans(%edx),%ebx
864 andl $0xfcfcfcfc, %eax
865 andl $0xcfcfcfcf, %edx
869 movl des_SPtrans(%ebx),%ebp
872 movl 0x200+des_SPtrans(%ecx),%ebp
876 movl 0x100+des_SPtrans(%ebx),%ebp
880 movl 0x300+des_SPtrans(%ecx),%ebp
886 movl 0x600+des_SPtrans(%ebx),%ebx
888 movl 0x700+des_SPtrans(%ecx),%ebx
890 movl 0x400+des_SPtrans(%eax),%ebx
892 movl 0x500+des_SPtrans(%edx),%ebx
901 andl $0xfcfcfcfc, %eax
902 andl $0xcfcfcfcf, %edx
906 movl des_SPtrans(%ebx),%ebp
909 movl 0x200+des_SPtrans(%ecx),%ebp
913 movl 0x100+des_SPtrans(%ebx),%ebp
917 movl 0x300+des_SPtrans(%ecx),%ebp
923 movl 0x600+des_SPtrans(%ebx),%ebx
925 movl 0x700+des_SPtrans(%ecx),%ebx
927 movl 0x400+des_SPtrans(%eax),%ebx
929 movl 0x500+des_SPtrans(%edx),%ebx
938 andl $0xfcfcfcfc, %eax
939 andl $0xcfcfcfcf, %edx
943 movl des_SPtrans(%ebx),%ebp
946 movl 0x200+des_SPtrans(%ecx),%ebp
950 movl 0x100+des_SPtrans(%ebx),%ebp
954 movl 0x300+des_SPtrans(%ecx),%ebp
960 movl 0x600+des_SPtrans(%ebx),%ebx
962 movl 0x700+des_SPtrans(%ecx),%ebx
964 movl 0x400+des_SPtrans(%eax),%ebx
966 movl 0x500+des_SPtrans(%edx),%ebx
975 andl $0xfcfcfcfc, %eax
976 andl $0xcfcfcfcf, %edx
980 movl des_SPtrans(%ebx),%ebp
983 movl 0x200+des_SPtrans(%ecx),%ebp
987 movl 0x100+des_SPtrans(%ebx),%ebp
991 movl 0x300+des_SPtrans(%ecx),%ebp
997 movl 0x600+des_SPtrans(%ebx),%ebx
999 movl 0x700+des_SPtrans(%ecx),%ebx
1001 movl 0x400+des_SPtrans(%eax),%ebx
1003 movl 0x500+des_SPtrans(%edx),%ebx
1012 andl $0xfcfcfcfc, %eax
1013 andl $0xcfcfcfcf, %edx
1017 movl des_SPtrans(%ebx),%ebp
1020 movl 0x200+des_SPtrans(%ecx),%ebp
1024 movl 0x100+des_SPtrans(%ebx),%ebp
1028 movl 0x300+des_SPtrans(%ecx),%ebp
1034 movl 0x600+des_SPtrans(%ebx),%ebx
1036 movl 0x700+des_SPtrans(%ecx),%ebx
1038 movl 0x400+des_SPtrans(%eax),%ebx
1040 movl 0x500+des_SPtrans(%edx),%ebx
1049 andl $0xfcfcfcfc, %eax
1050 andl $0xcfcfcfcf, %edx
1054 movl des_SPtrans(%ebx),%ebp
1057 movl 0x200+des_SPtrans(%ecx),%ebp
1061 movl 0x100+des_SPtrans(%ebx),%ebp
1065 movl 0x300+des_SPtrans(%ecx),%ebp
1071 movl 0x600+des_SPtrans(%ebx),%ebx
1073 movl 0x700+des_SPtrans(%ecx),%ebx
1075 movl 0x400+des_SPtrans(%eax),%ebx
1077 movl 0x500+des_SPtrans(%edx),%ebx
1086 andl $0xfcfcfcfc, %eax
1087 andl $0xcfcfcfcf, %edx
1091 movl des_SPtrans(%ebx),%ebp
1094 movl 0x200+des_SPtrans(%ecx),%ebp
1098 movl 0x100+des_SPtrans(%ebx),%ebp
1102 movl 0x300+des_SPtrans(%ecx),%ebp
1108 movl 0x600+des_SPtrans(%ebx),%ebx
1110 movl 0x700+des_SPtrans(%ecx),%ebx
1112 movl 0x400+des_SPtrans(%eax),%ebx
1114 movl 0x500+des_SPtrans(%edx),%ebx
1123 andl $0xfcfcfcfc, %eax
1124 andl $0xcfcfcfcf, %edx
1128 movl des_SPtrans(%ebx),%ebp
1131 movl 0x200+des_SPtrans(%ecx),%ebp
1135 movl 0x100+des_SPtrans(%ebx),%ebp
1139 movl 0x300+des_SPtrans(%ecx),%ebp
1145 movl 0x600+des_SPtrans(%ebx),%ebx
1147 movl 0x700+des_SPtrans(%ecx),%ebx
1149 movl 0x400+des_SPtrans(%eax),%ebx
1151 movl 0x500+des_SPtrans(%edx),%ebx
1160 andl $0xfcfcfcfc, %eax
1161 andl $0xcfcfcfcf, %edx
1165 movl des_SPtrans(%ebx),%ebp
1168 movl 0x200+des_SPtrans(%ecx),%ebp
1172 movl 0x100+des_SPtrans(%ebx),%ebp
1176 movl 0x300+des_SPtrans(%ecx),%ebp
1182 movl 0x600+des_SPtrans(%ebx),%ebx
1184 movl 0x700+des_SPtrans(%ecx),%ebx
1186 movl 0x400+des_SPtrans(%eax),%ebx
1188 movl 0x500+des_SPtrans(%edx),%ebx
1197 andl $0xfcfcfcfc, %eax
1198 andl $0xcfcfcfcf, %edx
1202 movl des_SPtrans(%ebx),%ebp
1205 movl 0x200+des_SPtrans(%ecx),%ebp
1209 movl 0x100+des_SPtrans(%ebx),%ebp
1213 movl 0x300+des_SPtrans(%ecx),%ebp
1219 movl 0x600+des_SPtrans(%ebx),%ebx
1221 movl 0x700+des_SPtrans(%ecx),%ebx
1223 movl 0x400+des_SPtrans(%eax),%ebx
1225 movl 0x500+des_SPtrans(%edx),%ebx
1234 andl $0xfcfcfcfc, %eax
1235 andl $0xcfcfcfcf, %edx
1239 movl des_SPtrans(%ebx),%ebp
1242 movl 0x200+des_SPtrans(%ecx),%ebp
1246 movl 0x100+des_SPtrans(%ebx),%ebp
1250 movl 0x300+des_SPtrans(%ecx),%ebp
1256 movl 0x600+des_SPtrans(%ebx),%ebx
1258 movl 0x700+des_SPtrans(%ecx),%ebx
1260 movl 0x400+des_SPtrans(%eax),%ebx
1262 movl 0x500+des_SPtrans(%edx),%ebx
1271 andl $0xfcfcfcfc, %eax
1272 andl $0xcfcfcfcf, %edx
1276 movl des_SPtrans(%ebx),%ebp
1279 movl 0x200+des_SPtrans(%ecx),%ebp
1283 movl 0x100+des_SPtrans(%ebx),%ebp
1287 movl 0x300+des_SPtrans(%ecx),%ebp
1293 movl 0x600+des_SPtrans(%ebx),%ebx
1295 movl 0x700+des_SPtrans(%ecx),%ebx
1297 movl 0x400+des_SPtrans(%eax),%ebx
1299 movl 0x500+des_SPtrans(%edx),%ebx
1306 .byte 206 /* rorl $1 %esi */
1309 andl $0xaaaaaaaa, %edi
1316 andl $0x03fc03fc, %eax
1323 andl $0x33333333, %edi
1330 andl $0xfff0000f, %esi
1337 andl $0xf0f0f0f0, %edi
1350 SIZE(des_encrypt,.des_encrypt_end-des_encrypt)
1355 TYPE(des_encrypt2,@function)
1360 /* Load the 2 words */
1372 je .L002start_decrypt
1380 andl $0xfcfcfcfc, %eax
1381 andl $0xcfcfcfcf, %edx
1385 movl des_SPtrans(%ebx),%ebp
1388 movl 0x200+des_SPtrans(%ecx),%ebp
1392 movl 0x100+des_SPtrans(%ebx),%ebp
1396 movl 0x300+des_SPtrans(%ecx),%ebp
1402 movl 0x600+des_SPtrans(%ebx),%ebx
1404 movl 0x700+des_SPtrans(%ecx),%ebx
1406 movl 0x400+des_SPtrans(%eax),%ebx
1408 movl 0x500+des_SPtrans(%edx),%ebx
1417 andl $0xfcfcfcfc, %eax
1418 andl $0xcfcfcfcf, %edx
1422 movl des_SPtrans(%ebx),%ebp
1425 movl 0x200+des_SPtrans(%ecx),%ebp
1429 movl 0x100+des_SPtrans(%ebx),%ebp
1433 movl 0x300+des_SPtrans(%ecx),%ebp
1439 movl 0x600+des_SPtrans(%ebx),%ebx
1441 movl 0x700+des_SPtrans(%ecx),%ebx
1443 movl 0x400+des_SPtrans(%eax),%ebx
1445 movl 0x500+des_SPtrans(%edx),%ebx
1454 andl $0xfcfcfcfc, %eax
1455 andl $0xcfcfcfcf, %edx
1459 movl des_SPtrans(%ebx),%ebp
1462 movl 0x200+des_SPtrans(%ecx),%ebp
1466 movl 0x100+des_SPtrans(%ebx),%ebp
1470 movl 0x300+des_SPtrans(%ecx),%ebp
1476 movl 0x600+des_SPtrans(%ebx),%ebx
1478 movl 0x700+des_SPtrans(%ecx),%ebx
1480 movl 0x400+des_SPtrans(%eax),%ebx
1482 movl 0x500+des_SPtrans(%edx),%ebx
1491 andl $0xfcfcfcfc, %eax
1492 andl $0xcfcfcfcf, %edx
1496 movl des_SPtrans(%ebx),%ebp
1499 movl 0x200+des_SPtrans(%ecx),%ebp
1503 movl 0x100+des_SPtrans(%ebx),%ebp
1507 movl 0x300+des_SPtrans(%ecx),%ebp
1513 movl 0x600+des_SPtrans(%ebx),%ebx
1515 movl 0x700+des_SPtrans(%ecx),%ebx
1517 movl 0x400+des_SPtrans(%eax),%ebx
1519 movl 0x500+des_SPtrans(%edx),%ebx
1528 andl $0xfcfcfcfc, %eax
1529 andl $0xcfcfcfcf, %edx
1533 movl des_SPtrans(%ebx),%ebp
1536 movl 0x200+des_SPtrans(%ecx),%ebp
1540 movl 0x100+des_SPtrans(%ebx),%ebp
1544 movl 0x300+des_SPtrans(%ecx),%ebp
1550 movl 0x600+des_SPtrans(%ebx),%ebx
1552 movl 0x700+des_SPtrans(%ecx),%ebx
1554 movl 0x400+des_SPtrans(%eax),%ebx
1556 movl 0x500+des_SPtrans(%edx),%ebx
1565 andl $0xfcfcfcfc, %eax
1566 andl $0xcfcfcfcf, %edx
1570 movl des_SPtrans(%ebx),%ebp
1573 movl 0x200+des_SPtrans(%ecx),%ebp
1577 movl 0x100+des_SPtrans(%ebx),%ebp
1581 movl 0x300+des_SPtrans(%ecx),%ebp
1587 movl 0x600+des_SPtrans(%ebx),%ebx
1589 movl 0x700+des_SPtrans(%ecx),%ebx
1591 movl 0x400+des_SPtrans(%eax),%ebx
1593 movl 0x500+des_SPtrans(%edx),%ebx
1602 andl $0xfcfcfcfc, %eax
1603 andl $0xcfcfcfcf, %edx
1607 movl des_SPtrans(%ebx),%ebp
1610 movl 0x200+des_SPtrans(%ecx),%ebp
1614 movl 0x100+des_SPtrans(%ebx),%ebp
1618 movl 0x300+des_SPtrans(%ecx),%ebp
1624 movl 0x600+des_SPtrans(%ebx),%ebx
1626 movl 0x700+des_SPtrans(%ecx),%ebx
1628 movl 0x400+des_SPtrans(%eax),%ebx
1630 movl 0x500+des_SPtrans(%edx),%ebx
1639 andl $0xfcfcfcfc, %eax
1640 andl $0xcfcfcfcf, %edx
1644 movl des_SPtrans(%ebx),%ebp
1647 movl 0x200+des_SPtrans(%ecx),%ebp
1651 movl 0x100+des_SPtrans(%ebx),%ebp
1655 movl 0x300+des_SPtrans(%ecx),%ebp
1661 movl 0x600+des_SPtrans(%ebx),%ebx
1663 movl 0x700+des_SPtrans(%ecx),%ebx
1665 movl 0x400+des_SPtrans(%eax),%ebx
1667 movl 0x500+des_SPtrans(%edx),%ebx
1676 andl $0xfcfcfcfc, %eax
1677 andl $0xcfcfcfcf, %edx
1681 movl des_SPtrans(%ebx),%ebp
1684 movl 0x200+des_SPtrans(%ecx),%ebp
1688 movl 0x100+des_SPtrans(%ebx),%ebp
1692 movl 0x300+des_SPtrans(%ecx),%ebp
1698 movl 0x600+des_SPtrans(%ebx),%ebx
1700 movl 0x700+des_SPtrans(%ecx),%ebx
1702 movl 0x400+des_SPtrans(%eax),%ebx
1704 movl 0x500+des_SPtrans(%edx),%ebx
1713 andl $0xfcfcfcfc, %eax
1714 andl $0xcfcfcfcf, %edx
1718 movl des_SPtrans(%ebx),%ebp
1721 movl 0x200+des_SPtrans(%ecx),%ebp
1725 movl 0x100+des_SPtrans(%ebx),%ebp
1729 movl 0x300+des_SPtrans(%ecx),%ebp
1735 movl 0x600+des_SPtrans(%ebx),%ebx
1737 movl 0x700+des_SPtrans(%ecx),%ebx
1739 movl 0x400+des_SPtrans(%eax),%ebx
1741 movl 0x500+des_SPtrans(%edx),%ebx
1750 andl $0xfcfcfcfc, %eax
1751 andl $0xcfcfcfcf, %edx
1755 movl des_SPtrans(%ebx),%ebp
1758 movl 0x200+des_SPtrans(%ecx),%ebp
1762 movl 0x100+des_SPtrans(%ebx),%ebp
1766 movl 0x300+des_SPtrans(%ecx),%ebp
1772 movl 0x600+des_SPtrans(%ebx),%ebx
1774 movl 0x700+des_SPtrans(%ecx),%ebx
1776 movl 0x400+des_SPtrans(%eax),%ebx
1778 movl 0x500+des_SPtrans(%edx),%ebx
1787 andl $0xfcfcfcfc, %eax
1788 andl $0xcfcfcfcf, %edx
1792 movl des_SPtrans(%ebx),%ebp
1795 movl 0x200+des_SPtrans(%ecx),%ebp
1799 movl 0x100+des_SPtrans(%ebx),%ebp
1803 movl 0x300+des_SPtrans(%ecx),%ebp
1809 movl 0x600+des_SPtrans(%ebx),%ebx
1811 movl 0x700+des_SPtrans(%ecx),%ebx
1813 movl 0x400+des_SPtrans(%eax),%ebx
1815 movl 0x500+des_SPtrans(%edx),%ebx
1821 movl 100(%ebp), %edx
1824 andl $0xfcfcfcfc, %eax
1825 andl $0xcfcfcfcf, %edx
1829 movl des_SPtrans(%ebx),%ebp
1832 movl 0x200+des_SPtrans(%ecx),%ebp
1836 movl 0x100+des_SPtrans(%ebx),%ebp
1840 movl 0x300+des_SPtrans(%ecx),%ebp
1846 movl 0x600+des_SPtrans(%ebx),%ebx
1848 movl 0x700+des_SPtrans(%ecx),%ebx
1850 movl 0x400+des_SPtrans(%eax),%ebx
1852 movl 0x500+des_SPtrans(%edx),%ebx
1856 movl 104(%ebp), %eax
1858 movl 108(%ebp), %edx
1861 andl $0xfcfcfcfc, %eax
1862 andl $0xcfcfcfcf, %edx
1866 movl des_SPtrans(%ebx),%ebp
1869 movl 0x200+des_SPtrans(%ecx),%ebp
1873 movl 0x100+des_SPtrans(%ebx),%ebp
1877 movl 0x300+des_SPtrans(%ecx),%ebp
1883 movl 0x600+des_SPtrans(%ebx),%ebx
1885 movl 0x700+des_SPtrans(%ecx),%ebx
1887 movl 0x400+des_SPtrans(%eax),%ebx
1889 movl 0x500+des_SPtrans(%edx),%ebx
1893 movl 112(%ebp), %eax
1895 movl 116(%ebp), %edx
1898 andl $0xfcfcfcfc, %eax
1899 andl $0xcfcfcfcf, %edx
1903 movl des_SPtrans(%ebx),%ebp
1906 movl 0x200+des_SPtrans(%ecx),%ebp
1910 movl 0x100+des_SPtrans(%ebx),%ebp
1914 movl 0x300+des_SPtrans(%ecx),%ebp
1920 movl 0x600+des_SPtrans(%ebx),%ebx
1922 movl 0x700+des_SPtrans(%ecx),%ebx
1924 movl 0x400+des_SPtrans(%eax),%ebx
1926 movl 0x500+des_SPtrans(%edx),%ebx
1930 movl 120(%ebp), %eax
1932 movl 124(%ebp), %edx
1935 andl $0xfcfcfcfc, %eax
1936 andl $0xcfcfcfcf, %edx
1940 movl des_SPtrans(%ebx),%ebp
1943 movl 0x200+des_SPtrans(%ecx),%ebp
1947 movl 0x100+des_SPtrans(%ebx),%ebp
1951 movl 0x300+des_SPtrans(%ecx),%ebp
1957 movl 0x600+des_SPtrans(%ebx),%ebx
1959 movl 0x700+des_SPtrans(%ecx),%ebx
1961 movl 0x400+des_SPtrans(%eax),%ebx
1963 movl 0x500+des_SPtrans(%edx),%ebx
1969 movl 120(%ebp), %eax
1971 movl 124(%ebp), %edx
1974 andl $0xfcfcfcfc, %eax
1975 andl $0xcfcfcfcf, %edx
1979 movl des_SPtrans(%ebx),%ebp
1982 movl 0x200+des_SPtrans(%ecx),%ebp
1986 movl 0x100+des_SPtrans(%ebx),%ebp
1990 movl 0x300+des_SPtrans(%ecx),%ebp
1996 movl 0x600+des_SPtrans(%ebx),%ebx
1998 movl 0x700+des_SPtrans(%ecx),%ebx
2000 movl 0x400+des_SPtrans(%eax),%ebx
2002 movl 0x500+des_SPtrans(%edx),%ebx
2006 movl 112(%ebp), %eax
2008 movl 116(%ebp), %edx
2011 andl $0xfcfcfcfc, %eax
2012 andl $0xcfcfcfcf, %edx
2016 movl des_SPtrans(%ebx),%ebp
2019 movl 0x200+des_SPtrans(%ecx),%ebp
2023 movl 0x100+des_SPtrans(%ebx),%ebp
2027 movl 0x300+des_SPtrans(%ecx),%ebp
2033 movl 0x600+des_SPtrans(%ebx),%ebx
2035 movl 0x700+des_SPtrans(%ecx),%ebx
2037 movl 0x400+des_SPtrans(%eax),%ebx
2039 movl 0x500+des_SPtrans(%edx),%ebx
2043 movl 104(%ebp), %eax
2045 movl 108(%ebp), %edx
2048 andl $0xfcfcfcfc, %eax
2049 andl $0xcfcfcfcf, %edx
2053 movl des_SPtrans(%ebx),%ebp
2056 movl 0x200+des_SPtrans(%ecx),%ebp
2060 movl 0x100+des_SPtrans(%ebx),%ebp
2064 movl 0x300+des_SPtrans(%ecx),%ebp
2070 movl 0x600+des_SPtrans(%ebx),%ebx
2072 movl 0x700+des_SPtrans(%ecx),%ebx
2074 movl 0x400+des_SPtrans(%eax),%ebx
2076 movl 0x500+des_SPtrans(%edx),%ebx
2082 movl 100(%ebp), %edx
2085 andl $0xfcfcfcfc, %eax
2086 andl $0xcfcfcfcf, %edx
2090 movl des_SPtrans(%ebx),%ebp
2093 movl 0x200+des_SPtrans(%ecx),%ebp
2097 movl 0x100+des_SPtrans(%ebx),%ebp
2101 movl 0x300+des_SPtrans(%ecx),%ebp
2107 movl 0x600+des_SPtrans(%ebx),%ebx
2109 movl 0x700+des_SPtrans(%ecx),%ebx
2111 movl 0x400+des_SPtrans(%eax),%ebx
2113 movl 0x500+des_SPtrans(%edx),%ebx
2122 andl $0xfcfcfcfc, %eax
2123 andl $0xcfcfcfcf, %edx
2127 movl des_SPtrans(%ebx),%ebp
2130 movl 0x200+des_SPtrans(%ecx),%ebp
2134 movl 0x100+des_SPtrans(%ebx),%ebp
2138 movl 0x300+des_SPtrans(%ecx),%ebp
2144 movl 0x600+des_SPtrans(%ebx),%ebx
2146 movl 0x700+des_SPtrans(%ecx),%ebx
2148 movl 0x400+des_SPtrans(%eax),%ebx
2150 movl 0x500+des_SPtrans(%edx),%ebx
2159 andl $0xfcfcfcfc, %eax
2160 andl $0xcfcfcfcf, %edx
2164 movl des_SPtrans(%ebx),%ebp
2167 movl 0x200+des_SPtrans(%ecx),%ebp
2171 movl 0x100+des_SPtrans(%ebx),%ebp
2175 movl 0x300+des_SPtrans(%ecx),%ebp
2181 movl 0x600+des_SPtrans(%ebx),%ebx
2183 movl 0x700+des_SPtrans(%ecx),%ebx
2185 movl 0x400+des_SPtrans(%eax),%ebx
2187 movl 0x500+des_SPtrans(%edx),%ebx
2196 andl $0xfcfcfcfc, %eax
2197 andl $0xcfcfcfcf, %edx
2201 movl des_SPtrans(%ebx),%ebp
2204 movl 0x200+des_SPtrans(%ecx),%ebp
2208 movl 0x100+des_SPtrans(%ebx),%ebp
2212 movl 0x300+des_SPtrans(%ecx),%ebp
2218 movl 0x600+des_SPtrans(%ebx),%ebx
2220 movl 0x700+des_SPtrans(%ecx),%ebx
2222 movl 0x400+des_SPtrans(%eax),%ebx
2224 movl 0x500+des_SPtrans(%edx),%ebx
2233 andl $0xfcfcfcfc, %eax
2234 andl $0xcfcfcfcf, %edx
2238 movl des_SPtrans(%ebx),%ebp
2241 movl 0x200+des_SPtrans(%ecx),%ebp
2245 movl 0x100+des_SPtrans(%ebx),%ebp
2249 movl 0x300+des_SPtrans(%ecx),%ebp
2255 movl 0x600+des_SPtrans(%ebx),%ebx
2257 movl 0x700+des_SPtrans(%ecx),%ebx
2259 movl 0x400+des_SPtrans(%eax),%ebx
2261 movl 0x500+des_SPtrans(%edx),%ebx
2270 andl $0xfcfcfcfc, %eax
2271 andl $0xcfcfcfcf, %edx
2275 movl des_SPtrans(%ebx),%ebp
2278 movl 0x200+des_SPtrans(%ecx),%ebp
2282 movl 0x100+des_SPtrans(%ebx),%ebp
2286 movl 0x300+des_SPtrans(%ecx),%ebp
2292 movl 0x600+des_SPtrans(%ebx),%ebx
2294 movl 0x700+des_SPtrans(%ecx),%ebx
2296 movl 0x400+des_SPtrans(%eax),%ebx
2298 movl 0x500+des_SPtrans(%edx),%ebx
2307 andl $0xfcfcfcfc, %eax
2308 andl $0xcfcfcfcf, %edx
2312 movl des_SPtrans(%ebx),%ebp
2315 movl 0x200+des_SPtrans(%ecx),%ebp
2319 movl 0x100+des_SPtrans(%ebx),%ebp
2323 movl 0x300+des_SPtrans(%ecx),%ebp
2329 movl 0x600+des_SPtrans(%ebx),%ebx
2331 movl 0x700+des_SPtrans(%ecx),%ebx
2333 movl 0x400+des_SPtrans(%eax),%ebx
2335 movl 0x500+des_SPtrans(%edx),%ebx
2344 andl $0xfcfcfcfc, %eax
2345 andl $0xcfcfcfcf, %edx
2349 movl des_SPtrans(%ebx),%ebp
2352 movl 0x200+des_SPtrans(%ecx),%ebp
2356 movl 0x100+des_SPtrans(%ebx),%ebp
2360 movl 0x300+des_SPtrans(%ecx),%ebp
2366 movl 0x600+des_SPtrans(%ebx),%ebx
2368 movl 0x700+des_SPtrans(%ecx),%ebx
2370 movl 0x400+des_SPtrans(%eax),%ebx
2372 movl 0x500+des_SPtrans(%edx),%ebx
2381 andl $0xfcfcfcfc, %eax
2382 andl $0xcfcfcfcf, %edx
2386 movl des_SPtrans(%ebx),%ebp
2389 movl 0x200+des_SPtrans(%ecx),%ebp
2393 movl 0x100+des_SPtrans(%ebx),%ebp
2397 movl 0x300+des_SPtrans(%ecx),%ebp
2403 movl 0x600+des_SPtrans(%ebx),%ebx
2405 movl 0x700+des_SPtrans(%ecx),%ebx
2407 movl 0x400+des_SPtrans(%eax),%ebx
2409 movl 0x500+des_SPtrans(%edx),%ebx
2418 andl $0xfcfcfcfc, %eax
2419 andl $0xcfcfcfcf, %edx
2423 movl des_SPtrans(%ebx),%ebp
2426 movl 0x200+des_SPtrans(%ecx),%ebp
2430 movl 0x100+des_SPtrans(%ebx),%ebp
2434 movl 0x300+des_SPtrans(%ecx),%ebp
2440 movl 0x600+des_SPtrans(%ebx),%ebx
2442 movl 0x700+des_SPtrans(%ecx),%ebx
2444 movl 0x400+des_SPtrans(%eax),%ebx
2446 movl 0x500+des_SPtrans(%edx),%ebx
2455 andl $0xfcfcfcfc, %eax
2456 andl $0xcfcfcfcf, %edx
2460 movl des_SPtrans(%ebx),%ebp
2463 movl 0x200+des_SPtrans(%ecx),%ebp
2467 movl 0x100+des_SPtrans(%ebx),%ebp
2471 movl 0x300+des_SPtrans(%ecx),%ebp
2477 movl 0x600+des_SPtrans(%ebx),%ebx
2479 movl 0x700+des_SPtrans(%ecx),%ebx
2481 movl 0x400+des_SPtrans(%eax),%ebx
2483 movl 0x500+des_SPtrans(%edx),%ebx
2492 andl $0xfcfcfcfc, %eax
2493 andl $0xcfcfcfcf, %edx
2497 movl des_SPtrans(%ebx),%ebp
2500 movl 0x200+des_SPtrans(%ecx),%ebp
2504 movl 0x100+des_SPtrans(%ebx),%ebp
2508 movl 0x300+des_SPtrans(%ecx),%ebp
2514 movl 0x600+des_SPtrans(%ebx),%ebx
2516 movl 0x700+des_SPtrans(%ecx),%ebx
2518 movl 0x400+des_SPtrans(%eax),%ebx
2520 movl 0x500+des_SPtrans(%edx),%ebx
2529 andl $0xfcfcfcfc, %eax
2530 andl $0xcfcfcfcf, %edx
2534 movl des_SPtrans(%ebx),%ebp
2537 movl 0x200+des_SPtrans(%ecx),%ebp
2541 movl 0x100+des_SPtrans(%ebx),%ebp
2545 movl 0x300+des_SPtrans(%ecx),%ebp
2551 movl 0x600+des_SPtrans(%ebx),%ebx
2553 movl 0x700+des_SPtrans(%ecx),%ebx
2555 movl 0x400+des_SPtrans(%eax),%ebx
2557 movl 0x500+des_SPtrans(%edx),%ebx
2573 SIZE(des_encrypt2,.des_encrypt2_end-des_encrypt2)
2578 TYPE(des_encrypt3,@function)
2586 /* Load the data words */
2595 andl $0xf0f0f0f0, %edi
2602 andl $0xfff0000f, %esi
2609 andl $0x33333333, %edi
2616 andl $0x03fc03fc, %edx
2623 andl $0xaaaaaaaa, %edi
2655 andl $0xaaaaaaaa, %edi
2662 andl $0x03fc03fc, %eax
2669 andl $0x33333333, %edi
2676 andl $0xfff0000f, %esi
2683 andl $0xf0f0f0f0, %edi
2696 SIZE(des_encrypt3,.des_encrypt3_end-des_encrypt3)
2701 TYPE(des_decrypt3,@function)
2709 /* Load the data words */
2718 andl $0xf0f0f0f0, %edi
2725 andl $0xfff0000f, %esi
2732 andl $0x33333333, %edi
2739 andl $0x03fc03fc, %edx
2746 andl $0xaaaaaaaa, %edi
2778 andl $0xaaaaaaaa, %edi
2785 andl $0x03fc03fc, %eax
2792 andl $0x33333333, %edi
2799 andl $0xfff0000f, %esi
2806 andl $0xf0f0f0f0, %edi
2819 SIZE(des_decrypt3,.des_decrypt3_end-des_decrypt3)
2823 .globl des_ncbc_encrypt
2824 TYPE(des_ncbc_encrypt,@function)
2832 /* getting iv ptr from parameter 4 */
2843 /* getting encrypt flag from parameter 5 */
2845 /* get and push parameter 5 */
2847 /* get and push parameter 3 */
2853 andl $4294967288, %ebp
2856 jz .L005encrypt_finish
2872 jnz .L006encrypt_loop
2873 .L005encrypt_finish:
2879 movl .L008cbc_enc_jmp_table(,%ebp,4),%ebp
2911 andl $4294967288, %ebp
2914 jz .L017decrypt_finish
2936 jnz .L018decrypt_loop
2937 .L017decrypt_finish:
2987 .L008cbc_enc_jmp_table:
2997 .L027cbc_dec_jmp_table:
3006 .des_ncbc_encrypt_end:
3007 SIZE(des_ncbc_encrypt,.des_ncbc_encrypt_end-des_ncbc_encrypt)
3011 .globl des_ede3_cbc_encrypt
3012 TYPE(des_ede3_cbc_encrypt,@function)
3013 des_ede3_cbc_encrypt:
3020 /* getting iv ptr from parameter 6 */
3031 /* getting encrypt flag from parameter 7 */
3033 /* get and push parameter 5 */
3036 /* get and push parameter 4 */
3039 /* get and push parameter 3 */
3045 andl $4294967288, %ebp
3048 jz .L029encrypt_finish
3064 jnz .L030encrypt_loop
3065 .L029encrypt_finish:
3071 movl .L032cbc_enc_jmp_table(,%ebp,4),%ebp
3103 andl $4294967288, %ebp
3106 jz .L041decrypt_finish
3128 jnz .L042decrypt_loop
3129 .L041decrypt_finish:
3179 .L032cbc_enc_jmp_table:
3189 .L051cbc_dec_jmp_table:
3198 .des_ede3_cbc_encrypt_end:
3199 SIZE(des_ede3_cbc_encrypt,.des_ede3_cbc_encrypt_end-des_ede3_cbc_encrypt)