Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 18446 | Differences between
and this patch

Collapse All | Expand All

(-)linux-2.4.20-gentoo-r2/drivers/ide/ide-floppy.c (-2 / +31 lines)
Lines 97-102 Link Here
97
#include <linux/slab.h>
97
#include <linux/slab.h>
98
#include <linux/cdrom.h>
98
#include <linux/cdrom.h>
99
#include <linux/ide.h>
99
#include <linux/ide.h>
100
#include <linux/devfs_fs_kernel.h>
100
101
101
#include <asm/byteorder.h>
102
#include <asm/byteorder.h>
102
#include <asm/irq.h>
103
#include <asm/irq.h>
Lines 271-276 Link Here
271
 */
272
 */
272
typedef struct {
273
typedef struct {
273
	ide_drive_t *drive;
274
	ide_drive_t *drive;
275
	devfs_handle_t de;			/* devfs entry */
274
276
275
	idefloppy_pc_t *pc;			/* Current packet command */
277
	idefloppy_pc_t *pc;			/* Current packet command */
276
	idefloppy_pc_t *failed_pc; 		/* Last failed packet command */
278
	idefloppy_pc_t *failed_pc; 		/* Last failed packet command */
Lines 661-666 Link Here
661
#define IDEFLOPPY_MIN(a,b)	((a)<(b) ? (a):(b))
663
#define IDEFLOPPY_MIN(a,b)	((a)<(b) ? (a):(b))
662
#define	IDEFLOPPY_MAX(a,b)	((a)>(b) ? (a):(b))
664
#define	IDEFLOPPY_MAX(a,b)	((a)>(b) ? (a):(b))
663
665
666
extern devfs_handle_t ide_devfs_handle; /* Hook into ide devfs chain */
667
664
/*
668
/*
665
 *	Too bad. The drive wants to send us data which we are not ready to accept.
669
 *	Too bad. The drive wants to send us data which we are not ready to accept.
666
 *	Just throw it away.
670
 *	Just throw it away.
Lines 1457-1465 Link Here
1457
                        if (memcmp (descriptor, &floppy->capacity, sizeof (idefloppy_capacity_descriptor_t)))
1461
                        if (memcmp (descriptor, &floppy->capacity, sizeof (idefloppy_capacity_descriptor_t)))
1458
                                printk (KERN_INFO "%s: %dkB, %d blocks, %d sector size\n", drive->name, blocks * length / 1024, blocks, length);
1462
                                printk (KERN_INFO "%s: %dkB, %d blocks, %d sector size\n", drive->name, blocks * length / 1024, blocks, length);
1459
                        floppy->capacity = *descriptor;
1463
                        floppy->capacity = *descriptor;
1460
                        if (!length || length % 512)
1464
                        		if (!length || length % 512) {
1461
                                printk (KERN_NOTICE "%s: %d bytes block size not supported\n", drive->name, length);
1465
                                printk (KERN_NOTICE "%s: %d bytes block size not supported\n", drive->name, length);
1462
                        else {
1466
			} else if (!i && descriptor->dc == CAPACITY_NO_CARTRIDGE 				&& drive->removable && !(length % 512)) {
1467
			/* Set these two so that idefloppy_capacity returns a
1468
			   positive value, needed for devfs registration. */
1469
				floppy->blocks = blocks;
1470
				floppy->bs_factor = length / 512;
1471
                        	} else {
1463
                                floppy->blocks = blocks;
1472
                                floppy->blocks = blocks;
1464
                                floppy->block_size = length;
1473
                                floppy->block_size = length;
1465
                                if ((floppy->bs_factor = length / 512) != 1)
1474
                                if ((floppy->bs_factor = length / 512) != 1)
Lines 2010-2015 Link Here
2010
	struct idefloppy_id_gcw gcw;
2019
	struct idefloppy_id_gcw gcw;
2011
	int major = HWIF(drive)->major, i;
2020
	int major = HWIF(drive)->major, i;
2012
	int minor = drive->select.b.unit << PARTN_BITS;
2021
	int minor = drive->select.b.unit << PARTN_BITS;
2022
	char fname[64],iname[64]; /* for devfs */
2023
	devfs_handle_t idefloppy_devfs_handle; /* for devfs */
2024
	ide_hwif_t *hwif = HWIF(drive);
2013
2025
2014
	*((unsigned short *) &gcw) = drive->id->config;
2026
	*((unsigned short *) &gcw) = drive->id->config;
2015
	drive->driver_data = floppy;
2027
	drive->driver_data = floppy;
Lines 2063-2068 Link Here
2063
			hwif->gd->flags[i] |= GENHD_FL_REMOVABLE;
2075
			hwif->gd->flags[i] |= GENHD_FL_REMOVABLE;
2064
		break;
2076
		break;
2065
	}
2077
	}
2078
2079
/* Always register drive with devfs */
2080
	floppy->de = devfs_register (drive->de, "disc", DEVFS_FL_REMOVABLE,
2081
				major, minor,
2082
					S_IFBLK | S_IRUGO | S_IWUGO,
2083
					ide_fops, NULL);
2084
	/* Create ide/fd entry in devfs */
2085
idefloppy_devfs_handle = devfs_mk_dir(ide_devfs_handle,"fd",NULL);
2086
2087
	sprintf (fname, "c%db%dt%du%d",
2088
		(hwif->channel && hwif->mate) ? hwif->mate->index : hwif->index,		hwif->channel, i, hwif->drives[i].lun);
2089
	sprintf (iname, "../host%d/bus%d/target%d/lun%d/disc",
2090
		(hwif->channel && hwif->mate) ? hwif->mate->index : hwif->index,
2091
		hwif->channel, i, hwif->drives[i].lun);
2092
devfs_mk_symlink(idefloppy_devfs_handle, fname, DEVFS_FL_REMOVABLE, iname, NULL, NULL);
2066
}
2093
}
2067
2094
2068
static int idefloppy_cleanup (ide_drive_t *drive)
2095
static int idefloppy_cleanup (ide_drive_t *drive)
Lines 2071-2076 Link Here
2071
2098
2072
	if (ide_unregister_subdriver (drive))
2099
	if (ide_unregister_subdriver (drive))
2073
		return 1;
2100
		return 1;
2101
	devfs_unregister(floppy->de);
2102
2074
	drive->driver_data = NULL;
2103
	drive->driver_data = NULL;
2075
	kfree (floppy);
2104
	kfree (floppy);
2076
	return 0;
2105
	return 0;
(-)linux-2.4.20-gentoo-r2/drivers/ide/ide-probe.c (+1 lines)
Lines 124-129 Link Here
124
					if (!strstr(id->model, "oppy") && !strstr(id->model, "poyp") && !strstr(id->model, "ZIP"))
124
					if (!strstr(id->model, "oppy") && !strstr(id->model, "poyp") && !strstr(id->model, "ZIP"))
125
						printk("cdrom or floppy?, assuming ");
125
						printk("cdrom or floppy?, assuming ");
126
					if (drive->media != ide_cdrom) {
126
					if (drive->media != ide_cdrom) {
127
						drive->removable = 1;
127
						printk ("FLOPPY");
128
						printk ("FLOPPY");
128
						break;
129
						break;
129
					}
130
					}
(-)linux-2.4.20-gentoo-r2/include/linux/version.h (-3 lines)
Lines 1-3 Link Here
1
#define UTS_RELEASE "2.4.20-gentoo-r2"
2
#define LINUX_VERSION_CODE 132116
3
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
(-)linux-2.4.20-gentoo-r2/kernel/proconfig.data (+608 lines)
Line 0 Link Here
1
2
/* generated by $0 from $TOPDIR/.config, do not edit */
3
4
PROCONF_KEY_BEGIN
5
PROCONF_KEY( BLK_DEV , 0 )
6
PROCONF_KEY( MTDRAM , 1 )
7
PROCONF_KEY( IP , 2 )
8
PROCONF_KEY( \202ROUTE , 3 )
9
PROCONF_KEY( \202PIMSM , 4 )
10
PROCONF_KEY( \202NF , 5 )
11
PROCONF_KEY( \205MATCH , 6 )
12
PROCONF_KEY( \205TARGET , 7 )
13
PROCONF_KEY( IP6 , 8 )
14
PROCONF_KEY( \210NF , 9 )
15
PROCONF_KEY( \211MATCH , 10 )
16
PROCONF_KEY( \211TARGET , 11 )
17
PROCONF_KEY( AIC7XXX , 12 )
18
PROCONF_KEY( HISAX , 13 )
19
PROCONF_KEY( ISDN_DRV , 14 )
20
PROCONF_KEY( RADIO , 15 )
21
PROCONF_KEY( VIDEO , 16 )
22
PROCONF_KEY( REISERFS , 17 )
23
PROCONF_KEY( NCPFS , 18 )
24
PROCONF_KEY( FBCON , 19 )
25
PROCONF_KEY( X86 , 20 )
26
PROCONF_KEY( UID16 , 21 )
27
PROCONF_KEY( EXPERIMENTAL , 22 )
28
PROCONF_KEY( MODULES , 23 )
29
PROCONF_KEY( MODVERSIONS , 24 )
30
PROCONF_KEY( KMOD , 25 )
31
PROCONF_KEY( LOLAT , 26 )
32
PROCONF_KEY( MPENTIUMIII31 , 27 )
33
PROCONF_KEY( \224WP_WORKS_OK , 28 )
34
PROCONF_KEY( \224INVLPG , 29 )
35
PROCONF_KEY( \224CMPXCHG , 30 )
36
PROCONF_KEY( \224XADD , 31 )
37
PROCONF_KEY( \224BSWAP , 32 )
38
PROCONF_KEY( \224POPAD_OK , 33 )
39
PROCONF_KEY( RWSEM_XCHGADD_ALGORITHM , 34 )
40
PROCONF_KEY( \224L1_CACHE_SHIFT , 35 )
41
PROCONF_KEY( \224HAS_TSC , 36 )
42
PROCONF_KEY( \224GOOD_APIC , 37 )
43
PROCONF_KEY( \224PGE , 38 )
44
PROCONF_KEY( \224USE_PPRO_CHECKSUM , 39 )
45
PROCONF_KEY( \224MCE , 40 )
46
PROCONF_KEY( MICROCODE , 41 )
47
PROCONF_KEY( \224MSR , 42 )
48
PROCONF_KEY( \224CPUID , 43 )
49
PROCONF_KEY( NOHIGHMEM , 44 )
50
PROCONF_KEY( 1GB , 45 )
51
PROCONF_KEY( MTRR , 46 )
52
PROCONF_KEY( SMP , 47 )
53
PROCONF_KEY( PREEMPT , 48 )
54
PROCONF_KEY( \224TSC , 49 )
55
PROCONF_KEY( HAVE_DEC_LOCK , 50 )
56
PROCONF_KEY( NET , 51 )
57
PROCONF_KEY( \224IO_APIC , 52 )
58
PROCONF_KEY( \224LOCAL_APIC , 53 )
59
PROCONF_KEY( PCI , 54 )
60
PROCONF_KEY( \266GOANY , 55 )
61
PROCONF_KEY( \266BIOS , 56 )
62
PROCONF_KEY( \266DIRECT , 57 )
63
PROCONF_KEY( \266NAMES , 58 )
64
PROCONF_KEY( HOTPLUG , 59 )
65
PROCONF_KEY( SYSVIPC , 60 )
66
PROCONF_KEY( SYSCTL , 61 )
67
PROCONF_KEY( KCORE_ELF , 62 )
68
PROCONF_KEY( BINFMT_ELF , 63 )
69
PROCONF_KEY( PARPORT , 64 )
70
PROCONF_KEY( \301\200PC , 65 )
71
PROCONF_KEY( \301\201CML1 , 66 )
72
PROCONF_KEY( \301\2001284 , 67 )
73
PROCONF_KEY( CDROM_PKTCDVD , 68 )
74
PROCONF_KEY( \200LOOP , 69 )
75
PROCONF_KEY( PACKET , 70 )
76
PROCONF_KEY( NETFILTER , 71 )
77
PROCONF_KEY( \263RESTRICTED_REUSE , 72 )
78
PROCONF_KEY( UNIX , 73 )
79
PROCONF_KEY( INET , 74 )
80
PROCONF_KEY( \263IPGRE , 75 )
81
PROCONF_KEY( \301\212ECN , 76 )
82
PROCONF_KEY( SYN_COOKIES , 77 )
83
PROCONF_KEY( \205CONNTRACK , 78 )
84
PROCONF_KEY( \205FTP , 79 )
85
PROCONF_KEY( \205IRC , 80 )
86
PROCONF_KEY( \205CT_PROTO_GRE , 81 )
87
PROCONF_KEY( \205PPTP , 82 )
88
PROCONF_KEY( \205IPTABLES , 83 )
89
PROCONF_KEY( \206LIMIT , 84 )
90
PROCONF_KEY( \206QUOTA , 85 )
91
PROCONF_KEY( \206MULTIPORT , 86 )
92
PROCONF_KEY( \206MPORT , 87 )
93
PROCONF_KEY( \206TCPMSS , 88 )
94
PROCONF_KEY( \206STEALTH , 89 )
95
PROCONF_KEY( \206HELPER , 90 )
96
PROCONF_KEY( \206STATE , 91 )
97
PROCONF_KEY( \206IPLIMIT , 92 )
98
PROCONF_KEY( \206CONNTRACK , 93 )
99
PROCONF_KEY( \206OWNER , 94 )
100
PROCONF_KEY( \205FILTER , 95 )
101
PROCONF_KEY( \205NAT , 96 )
102
PROCONF_KEY( \301\240NEEDED , 97 )
103
PROCONF_KEY( \207MASQUERADE , 98 )
104
PROCONF_KEY( \301\240PPTP , 99 )
105
PROCONF_KEY( \301\240PROTO_GRE , 100 )
106
PROCONF_KEY( \301\240IRC , 101 )
107
PROCONF_KEY( \301\240FTP , 102 )
108
PROCONF_KEY( \207LOG , 103 )
109
PROCONF_KEY( \207TCPMSS , 104 )
110
PROCONF_KEY( IPV6 , 105 )
111
PROCONF_KEY( \301\251DROP_FAKE_V4MAPPED , 106 )
112
PROCONF_KEY( \301\2516TO4_NEXTHOP , 107 )
113
PROCONF_KEY( \301\251PRIVACY , 108 )
114
PROCONF_KEY( \211IPTABLES , 109 )
115
PROCONF_KEY( \212LIMIT , 110 )
116
PROCONF_KEY( \212MAC , 111 )
117
PROCONF_KEY( \212MULTIPORT , 112 )
118
PROCONF_KEY( \211FILTER , 113 )
119
PROCONF_KEY( \213LOG , 114 )
120
PROCONF_KEY( \301\251IPSEC_TUNNEL , 115 )
121
PROCONF_KEY( \263PKTGEN , 116 )
122
PROCONF_KEY( IPSEC , 117 )
123
PROCONF_KEY( \301\265IPIP , 118 )
124
PROCONF_KEY( \301\265AH , 119 )
125
PROCONF_KEY( \301\265AUTH_HMAC_MD5 , 120 )
126
PROCONF_KEY( \301\265AUTH_HMAC_SHA1 , 121 )
127
PROCONF_KEY( \301\265ESP , 122 )
128
PROCONF_KEY( \301\265ENC_3DES , 123 )
129
PROCONF_KEY( \301\265IPCOMP , 124 )
130
PROCONF_KEY( \301\265NAT_TRAVERSAL , 125 )
131
PROCONF_KEY( IDE , 126 )
132
PROCONF_KEY( \200IDE , 127 )
133
PROCONF_KEY( \200IDEDISK , 128 )
134
PROCONF_KEY( \200IDEFLOPPY , 129 )
135
PROCONF_KEY( \200IDESCSI , 130 )
136
PROCONF_KEY( \301\276TASK_IOCTL , 131 )
137
PROCONF_KEY( \200IDEPCI , 132 )
138
PROCONF_KEY( IDEPCI_SHARE_IRQ , 133 )
139
PROCONF_KEY( \200IDEDMA_PCI , 134 )
140
PROCONF_KEY( IDEDMA_PCI_AUTO , 135 )
141
PROCONF_KEY( \200IDEDMA , 136 )
142
PROCONF_KEY( \200ADMA , 137 )
143
PROCONF_KEY( \200VIA82CXXX , 138 )
144
PROCONF_KEY( IDEDMA_AUTO , 139 )
145
PROCONF_KEY( \301\277MODES , 140 )
146
PROCONF_KEY( SCSI , 141 )
147
PROCONF_KEY( \200SD , 142 )
148
PROCONF_KEY( SD_EXTRA_DEVS , 143 )
149
PROCONF_KEY( CHR_DEV_ST , 144 )
150
PROCONF_KEY( \200SR , 145 )
151
PROCONF_KEY( \302\221VENDOR , 146 )
152
PROCONF_KEY( SR_EXTRA_DEVS , 147 )
153
PROCONF_KEY( CHR_DEV_SG , 148 )
154
PROCONF_KEY( \302\215AIC7XXX , 149 )
155
PROCONF_KEY( \214CMDS_PER_DEVICE , 150 )
156
PROCONF_KEY( \214RESET_DELAY_MS , 151 )
157
PROCONF_KEY( \214DEBUG_MASK , 152 )
158
PROCONF_KEY( \302\215AIC79XX , 153 )
159
PROCONF_KEY( AIC79XX_CMDS_PER_DEVICE , 154 )
160
PROCONF_KEY( AIC79XX_RESET_DELAY_MS , 155 )
161
PROCONF_KEY( AIC79XX_DEBUG_MASK , 156 )
162
PROCONF_KEY( NETDEVICES , 157 )
163
PROCONF_KEY( DUMMY , 158 )
164
PROCONF_KEY( \263ETHERNET , 159 )
165
PROCONF_KEY( \263VENDOR_3COM , 160 )
166
PROCONF_KEY( VORTEX , 161 )
167
PROCONF_KEY( INPUT , 162 )
168
PROCONF_KEY( \302\242KEYBDEV , 163 )
169
PROCONF_KEY( \302\242MOUSEDEV , 164 )
170
PROCONF_KEY( \302\244SCREEN_X , 165 )
171
PROCONF_KEY( \302\244SCREEN_Y , 166 )
172
PROCONF_KEY( \302\242JOYDEV , 167 )
173
PROCONF_KEY( \302\242EVDEV , 168 )
174
PROCONF_KEY( VT , 169 )
175
PROCONF_KEY( ECC , 170 )
176
PROCONF_KEY( \302\251CONSOLE , 171 )
177
PROCONF_KEY( SERIAL , 172 )
178
PROCONF_KEY( UNIX98_PTYS , 173 )
179
PROCONF_KEY( UNIX98_PTY_COUNT , 174 )
180
PROCONF_KEY( MOUSE , 175 )
181
PROCONF_KEY( PSMOUSE , 176 )
182
PROCONF_KEY( \302\242GAMEPORT , 177 )
183
PROCONF_KEY( \302\242EMU10K1 , 178 )
184
PROCONF_KEY( \302\242SIDEWINDER , 179 )
185
PROCONF_KEY( RTC , 180 )
186
PROCONF_KEY( AGP , 181 )
187
PROCONF_KEY( \302\265VIA , 182 )
188
PROCONF_KEY( \220DEV , 183 )
189
PROCONF_KEY( \220CPIA , 184 )
190
PROCONF_KEY( \302\270USB , 185 )
191
PROCONF_KEY( SUPERMOUNT , 186 )
192
PROCONF_KEY( EXT3_FS , 187 )
193
PROCONF_KEY( JBD , 188 )
194
PROCONF_KEY( FAT_FS , 189 )
195
PROCONF_KEY( VFAT_FS , 190 )
196
PROCONF_KEY( TMPFS , 191 )
197
PROCONF_KEY( RAMFS , 192 )
198
PROCONF_KEY( ISO9660_FS , 193 )
199
PROCONF_KEY( JOLIET , 194 )
200
PROCONF_KEY( ZISOFS , 195 )
201
PROCONF_KEY( MINIX_FS , 196 )
202
PROCONF_KEY( PROC_FS , 197 )
203
PROCONF_KEY( PROC_CONFIG , 198 )
204
PROCONF_KEY( DEVFS_FS , 199 )
205
PROCONF_KEY( DEVFS_MOUNT , 200 )
206
PROCONF_KEY( EXT2_FS , 201 )
207
PROCONF_KEY( UDF_FS , 202 )
208
PROCONF_KEY( SMB_FS , 203 )
209
PROCONF_KEY( \303\203FS , 204 )
210
PROCONF_KEY( FS_MBCACHE , 205 )
211
PROCONF_KEY( MSDOS_PARTITION , 206 )
212
PROCONF_KEY( SMB_NLS , 207 )
213
PROCONF_KEY( NLS , 208 )
214
PROCONF_KEY( \303\220DEFAULT , 209 )
215
PROCONF_KEY( IMON , 210 )
216
PROCONF_KEY( EXECOUNT , 211 )
217
PROCONF_KEY( VGA_CONSOLE , 212 )
218
PROCONF_KEY( SOUND , 213 )
219
PROCONF_KEY( \303\225EMU10K1 , 214 )
220
PROCONF_KEY( USB , 215 )
221
PROCONF_KEY( \303\227DEVICEFS , 216 )
222
PROCONF_KEY( \303\227UHCI , 217 )
223
PROCONF_KEY( \303\227AUDIO , 218 )
224
PROCONF_KEY( \303\227EMI26 , 219 )
225
PROCONF_KEY( \303\227STORAGE , 220 )
226
PROCONF_KEY( \303\234DATAFAB , 221 )
227
PROCONF_KEY( \303\234FREECOM , 222 )
228
PROCONF_KEY( \303\234ISD200 , 223 )
229
PROCONF_KEY( \303\234DPCM , 224 )
230
PROCONF_KEY( \303\234HP8200e , 225 )
231
PROCONF_KEY( \303\234SDDR09 , 226 )
232
PROCONF_KEY( \303\234SDDR55 , 227 )
233
PROCONF_KEY( \303\234JUMPSHOT , 228 )
234
PROCONF_KEY( \303\227ACM , 229 )
235
PROCONF_KEY( \303\227PRINTER , 230 )
236
PROCONF_KEY( \303\227HID , 231 )
237
PROCONF_KEY( \303\227HIDINPUT , 232 )
238
PROCONF_KEY( \303\227HIDDEV , 233 )
239
PROCONF_KEY( \303\227DC2XX , 234 )
240
PROCONF_KEY( \303\227MDC800 , 235 )
241
PROCONF_KEY( \303\227SCANNER , 236 )
242
PROCONF_KEY( \303\227MICROTEK , 237 )
243
PROCONF_KEY( \303\227HPUSBSCSI , 238 )
244
PROCONF_KEY( \303\227PEGASUS , 239 )
245
PROCONF_KEY( \303\227RTL8150 , 240 )
246
PROCONF_KEY( \303\227KAWETH , 241 )
247
PROCONF_KEY( \303\227CATC , 242 )
248
PROCONF_KEY( \303\227CDCETHER , 243 )
249
PROCONF_KEY( \303\227LCD , 244 )
250
PROCONF_KEY( ZLIB_INFLATE , 245 )
251
PROCONF_KEY( ZLIB_DEFLATE , 246 )
252
PROCONF_KEY( GRKERNSEC , 247 )
253
PROCONF_KEY( \303\267CUSTOM , 248 )
254
PROCONF_KEY( \303\267PAX_ASLR , 249 )
255
PROCONF_KEY( \303\267PAX_RANDKSTACK , 250 )
256
PROCONF_KEY( \303\267PAX_RANDUSTACK , 251 )
257
PROCONF_KEY( \303\267PAX_RANDMMAP , 252 )
258
PROCONF_KEY( \303\267KMEM , 253 )
259
PROCONF_KEY( \303\267PROC_MEMMAP , 254 )
260
PROCONF_KEY( \303\267ACL_HIDEKERN , 255 )
261
PROCONF_KEY( \303\267ACL_MAXTRIES , 256 )
262
PROCONF_KEY( \303\267ACL_TIMEOUT , 257 )
263
PROCONF_KEY( \303\267PROC , 258 )
264
PROCONF_KEY( \304\202USERGROUP , 259 )
265
PROCONF_KEY( \304\202GID , 260 )
266
PROCONF_KEY( \304\202ADD , 261 )
267
PROCONF_KEY( \303\267LINK , 262 )
268
PROCONF_KEY( \303\267FIFO , 263 )
269
PROCONF_KEY( \303\267CHROOT , 264 )
270
PROCONF_KEY( \304\210MOUNT , 265 )
271
PROCONF_KEY( \304\210DOUBLE , 266 )
272
PROCONF_KEY( \304\210PIVOT , 267 )
273
PROCONF_KEY( \304\210CHDIR , 268 )
274
PROCONF_KEY( \304\210CHMOD , 269 )
275
PROCONF_KEY( \304\210FCHDIR , 270 )
276
PROCONF_KEY( \304\210MKNOD , 271 )
277
PROCONF_KEY( \304\210SHMAT , 272 )
278
PROCONF_KEY( \304\210UNIX , 273 )
279
PROCONF_KEY( \304\210FINDTASK , 274 )
280
PROCONF_KEY( \304\210NICE , 275 )
281
PROCONF_KEY( \304\210SYSCTL , 276 )
282
PROCONF_KEY( \304\210CAPS , 277 )
283
PROCONF_KEY( \303\267EXECVE , 278 )
284
PROCONF_KEY( \303\267DMESG , 279 )
285
PROCONF_KEY( \303\267RANDPID , 280 )
286
PROCONF_KEY( \303\267RANDNET , 281 )
287
PROCONF_KEY( \303\267RANDISN , 282 )
288
PROCONF_KEY( \303\267RANDID , 283 )
289
PROCONF_KEY( \303\267RANDSRC , 284 )
290
PROCONF_KEY( \303\267RANDRPC , 285 )
291
PROCONF_KEY( \303\267RANDPING , 286 )
292
PROCONF_KEY( \303\267FLOODTIME , 287 )
293
PROCONF_KEY( \303\267FLOODBURST , 288 )
294
PROCONF_KEY_END
295
296
PROCONF_XDATA_BEGIN
297
PROCONF_XDATA( n )
298
PROCONF_XDATA( y )
299
PROCONF_XDATA( m )
300
PROCONF_XDATA( 5 )
301
PROCONF_XDATA( 40 )
302
PROCONF_XDATA( 2 )
303
PROCONF_XDATA( 253 )
304
PROCONF_XDATA( 5000 )
305
PROCONF_XDATA( 0 )
306
PROCONF_XDATA( 1600 )
307
PROCONF_XDATA( 1200 )
308
PROCONF_XDATA( 256 )
309
PROCONF_XDATA( "iso8859-1" )
310
PROCONF_XDATA( 3 )
311
PROCONF_XDATA( 30 )
312
PROCONF_XDATA( 10 )
313
PROCONF_XDATA( 4 )
314
PROCONF_XDATA_END
315
316
PROCONF_DATA_BEGIN
317
PROCONF_DATA( "\000" )
318
PROCONF_DATA( "\000" )
319
PROCONF_DATA( "\000" )
320
PROCONF_DATA( "\000" )
321
PROCONF_DATA( "\000" )
322
PROCONF_DATA( "\000" )
323
PROCONF_DATA( "\000" )
324
PROCONF_DATA( "\000" )
325
PROCONF_DATA( "\000" )
326
PROCONF_DATA( "\000" )
327
PROCONF_DATA( "\000" )
328
PROCONF_DATA( "\000" )
329
PROCONF_DATA( "\000" )
330
PROCONF_DATA( "\000" )
331
PROCONF_DATA( "\000" )
332
PROCONF_DATA( "\000" )
333
PROCONF_DATA( "\000" )
334
PROCONF_DATA( "\000" )
335
PROCONF_DATA( "\000" )
336
PROCONF_DATA( "\000" )
337
PROCONF_DATA( "\001" )
338
PROCONF_DATA( "\001" )
339
PROCONF_DATA( "\001" )
340
PROCONF_DATA( "\001" )
341
PROCONF_DATA( "\001" )
342
PROCONF_DATA( "\001" )
343
PROCONF_DATA( "\001" )
344
PROCONF_DATA( "\001" )
345
PROCONF_DATA( "\001" )
346
PROCONF_DATA( "\001" )
347
PROCONF_DATA( "\001" )
348
PROCONF_DATA( "\001" )
349
PROCONF_DATA( "\001" )
350
PROCONF_DATA( "\001" )
351
PROCONF_DATA( "\001" )
352
PROCONF_DATA( "\003" )
353
PROCONF_DATA( "\001" )
354
PROCONF_DATA( "\001" )
355
PROCONF_DATA( "\001" )
356
PROCONF_DATA( "\001" )
357
PROCONF_DATA( "\001" )
358
PROCONF_DATA( "\001" )
359
PROCONF_DATA( "\001" )
360
PROCONF_DATA( "\001" )
361
PROCONF_DATA( "\001" )
362
PROCONF_DATA( "\001" )
363
PROCONF_DATA( "\001" )
364
PROCONF_DATA( "\001" )
365
PROCONF_DATA( "\001" )
366
PROCONF_DATA( "\001" )
367
PROCONF_DATA( "\001" )
368
PROCONF_DATA( "\001" )
369
PROCONF_DATA( "\001" )
370
PROCONF_DATA( "\001" )
371
PROCONF_DATA( "\001" )
372
PROCONF_DATA( "\001" )
373
PROCONF_DATA( "\001" )
374
PROCONF_DATA( "\001" )
375
PROCONF_DATA( "\001" )
376
PROCONF_DATA( "\001" )
377
PROCONF_DATA( "\001" )
378
PROCONF_DATA( "\001" )
379
PROCONF_DATA( "\001" )
380
PROCONF_DATA( "\001" )
381
PROCONF_DATA( "\001" )
382
PROCONF_DATA( "\001" )
383
PROCONF_DATA( "\001" )
384
PROCONF_DATA( "\001" )
385
PROCONF_DATA( "\001" )
386
PROCONF_DATA( "\001" )
387
PROCONF_DATA( "\001" )
388
PROCONF_DATA( "\001" )
389
PROCONF_DATA( "\001" )
390
PROCONF_DATA( "\001" )
391
PROCONF_DATA( "\001" )
392
PROCONF_DATA( "\001" )
393
PROCONF_DATA( "\001" )
394
PROCONF_DATA( "\001" )
395
PROCONF_DATA( "\001" )
396
PROCONF_DATA( "\001" )
397
PROCONF_DATA( "\001" )
398
PROCONF_DATA( "\001" )
399
PROCONF_DATA( "\001" )
400
PROCONF_DATA( "\001" )
401
PROCONF_DATA( "\001" )
402
PROCONF_DATA( "\001" )
403
PROCONF_DATA( "\001" )
404
PROCONF_DATA( "\001" )
405
PROCONF_DATA( "\001" )
406
PROCONF_DATA( "\001" )
407
PROCONF_DATA( "\001" )
408
PROCONF_DATA( "\001" )
409
PROCONF_DATA( "\001" )
410
PROCONF_DATA( "\001" )
411
PROCONF_DATA( "\001" )
412
PROCONF_DATA( "\001" )
413
PROCONF_DATA( "\001" )
414
PROCONF_DATA( "\001" )
415
PROCONF_DATA( "\001" )
416
PROCONF_DATA( "\001" )
417
PROCONF_DATA( "\001" )
418
PROCONF_DATA( "\001" )
419
PROCONF_DATA( "\001" )
420
PROCONF_DATA( "\001" )
421
PROCONF_DATA( "\001" )
422
PROCONF_DATA( "\002" )
423
PROCONF_DATA( "\001" )
424
PROCONF_DATA( "\001" )
425
PROCONF_DATA( "\001" )
426
PROCONF_DATA( "\001" )
427
PROCONF_DATA( "\001" )
428
PROCONF_DATA( "\001" )
429
PROCONF_DATA( "\001" )
430
PROCONF_DATA( "\001" )
431
PROCONF_DATA( "\001" )
432
PROCONF_DATA( "\001" )
433
PROCONF_DATA( "\002" )
434
PROCONF_DATA( "\002" )
435
PROCONF_DATA( "\001" )
436
PROCONF_DATA( "\001" )
437
PROCONF_DATA( "\001" )
438
PROCONF_DATA( "\001" )
439
PROCONF_DATA( "\001" )
440
PROCONF_DATA( "\001" )
441
PROCONF_DATA( "\001" )
442
PROCONF_DATA( "\001" )
443
PROCONF_DATA( "\001" )
444
PROCONF_DATA( "\001" )
445
PROCONF_DATA( "\001" )
446
PROCONF_DATA( "\001" )
447
PROCONF_DATA( "\001" )
448
PROCONF_DATA( "\001" )
449
PROCONF_DATA( "\001" )
450
PROCONF_DATA( "\001" )
451
PROCONF_DATA( "\001" )
452
PROCONF_DATA( "\001" )
453
PROCONF_DATA( "\001" )
454
PROCONF_DATA( "\001" )
455
PROCONF_DATA( "\001" )
456
PROCONF_DATA( "\001" )
457
PROCONF_DATA( "\001" )
458
PROCONF_DATA( "\001" )
459
PROCONF_DATA( "\001" )
460
PROCONF_DATA( "\004" )
461
PROCONF_DATA( "\001" )
462
PROCONF_DATA( "\001" )
463
PROCONF_DATA( "\001" )
464
PROCONF_DATA( "\005" )
465
PROCONF_DATA( "\001" )
466
PROCONF_DATA( "\001" )
467
PROCONF_DATA( "\006" )
468
PROCONF_DATA( "\007" )
469
PROCONF_DATA( "\010" )
470
PROCONF_DATA( "\001" )
471
PROCONF_DATA( "\006" )
472
PROCONF_DATA( "\007" )
473
PROCONF_DATA( "\010" )
474
PROCONF_DATA( "\001" )
475
PROCONF_DATA( "\002" )
476
PROCONF_DATA( "\001" )
477
PROCONF_DATA( "\001" )
478
PROCONF_DATA( "\001" )
479
PROCONF_DATA( "\001" )
480
PROCONF_DATA( "\001" )
481
PROCONF_DATA( "\001" )
482
PROCONF_DATA( "\011" )
483
PROCONF_DATA( "\012" )
484
PROCONF_DATA( "\001" )
485
PROCONF_DATA( "\001" )
486
PROCONF_DATA( "\001" )
487
PROCONF_DATA( "\001" )
488
PROCONF_DATA( "\001" )
489
PROCONF_DATA( "\001" )
490
PROCONF_DATA( "\001" )
491
PROCONF_DATA( "\013" )
492
PROCONF_DATA( "\001" )
493
PROCONF_DATA( "\001" )
494
PROCONF_DATA( "\001" )
495
PROCONF_DATA( "\001" )
496
PROCONF_DATA( "\001" )
497
PROCONF_DATA( "\001" )
498
PROCONF_DATA( "\001" )
499
PROCONF_DATA( "\001" )
500
PROCONF_DATA( "\001" )
501
PROCONF_DATA( "\002" )
502
PROCONF_DATA( "\002" )
503
PROCONF_DATA( "\001" )
504
PROCONF_DATA( "\001" )
505
PROCONF_DATA( "\001" )
506
PROCONF_DATA( "\001" )
507
PROCONF_DATA( "\001" )
508
PROCONF_DATA( "\001" )
509
PROCONF_DATA( "\001" )
510
PROCONF_DATA( "\001" )
511
PROCONF_DATA( "\001" )
512
PROCONF_DATA( "\001" )
513
PROCONF_DATA( "\001" )
514
PROCONF_DATA( "\001" )
515
PROCONF_DATA( "\001" )
516
PROCONF_DATA( "\001" )
517
PROCONF_DATA( "\001" )
518
PROCONF_DATA( "\001" )
519
PROCONF_DATA( "\001" )
520
PROCONF_DATA( "\001" )
521
PROCONF_DATA( "\001" )
522
PROCONF_DATA( "\001" )
523
PROCONF_DATA( "\001" )
524
PROCONF_DATA( "\001" )
525
PROCONF_DATA( "\001" )
526
PROCONF_DATA( "\014" )
527
PROCONF_DATA( "\001" )
528
PROCONF_DATA( "\001" )
529
PROCONF_DATA( "\001" )
530
PROCONF_DATA( "\001" )
531
PROCONF_DATA( "\001" )
532
PROCONF_DATA( "\001" )
533
PROCONF_DATA( "\001" )
534
PROCONF_DATA( "\001" )
535
PROCONF_DATA( "\002" )
536
PROCONF_DATA( "\002" )
537
PROCONF_DATA( "\002" )
538
PROCONF_DATA( "\001" )
539
PROCONF_DATA( "\001" )
540
PROCONF_DATA( "\001" )
541
PROCONF_DATA( "\001" )
542
PROCONF_DATA( "\001" )
543
PROCONF_DATA( "\001" )
544
PROCONF_DATA( "\001" )
545
PROCONF_DATA( "\001" )
546
PROCONF_DATA( "\002" )
547
PROCONF_DATA( "\002" )
548
PROCONF_DATA( "\001" )
549
PROCONF_DATA( "\001" )
550
PROCONF_DATA( "\001" )
551
PROCONF_DATA( "\002" )
552
PROCONF_DATA( "\002" )
553
PROCONF_DATA( "\002" )
554
PROCONF_DATA( "\002" )
555
PROCONF_DATA( "\002" )
556
PROCONF_DATA( "\002" )
557
PROCONF_DATA( "\002" )
558
PROCONF_DATA( "\002" )
559
PROCONF_DATA( "\002" )
560
PROCONF_DATA( "\002" )
561
PROCONF_DATA( "\002" )
562
PROCONF_DATA( "\001" )
563
PROCONF_DATA( "\001" )
564
PROCONF_DATA( "\001" )
565
PROCONF_DATA( "\001" )
566
PROCONF_DATA( "\001" )
567
PROCONF_DATA( "\001" )
568
PROCONF_DATA( "\001" )
569
PROCONF_DATA( "\001" )
570
PROCONF_DATA( "\001" )
571
PROCONF_DATA( "\001" )
572
PROCONF_DATA( "\001" )
573
PROCONF_DATA( "\015" )
574
PROCONF_DATA( "\016" )
575
PROCONF_DATA( "\001" )
576
PROCONF_DATA( "\001" )
577
PROCONF_DATA( "\017" )
578
PROCONF_DATA( "\001" )
579
PROCONF_DATA( "\001" )
580
PROCONF_DATA( "\001" )
581
PROCONF_DATA( "\001" )
582
PROCONF_DATA( "\001" )
583
PROCONF_DATA( "\001" )
584
PROCONF_DATA( "\001" )
585
PROCONF_DATA( "\001" )
586
PROCONF_DATA( "\001" )
587
PROCONF_DATA( "\001" )
588
PROCONF_DATA( "\001" )
589
PROCONF_DATA( "\001" )
590
PROCONF_DATA( "\001" )
591
PROCONF_DATA( "\001" )
592
PROCONF_DATA( "\001" )
593
PROCONF_DATA( "\001" )
594
PROCONF_DATA( "\001" )
595
PROCONF_DATA( "\001" )
596
PROCONF_DATA( "\001" )
597
PROCONF_DATA( "\001" )
598
PROCONF_DATA( "\001" )
599
PROCONF_DATA( "\001" )
600
PROCONF_DATA( "\001" )
601
PROCONF_DATA( "\001" )
602
PROCONF_DATA( "\001" )
603
PROCONF_DATA( "\001" )
604
PROCONF_DATA( "\017" )
605
PROCONF_DATA( "\020" )
606
PROCONF_DATA_END
607
608
ucLen = 289;
(-)linux-2.4.20-gentoo-r2/net/ipsec/libdes/asm/dx86unix.S (+3193 lines)
Line 0 Link Here
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
6
 */
7
8
#define TYPE(a,b)       .type   a,b
9
#define SIZE(a,b)       .size   a,b
10
11
#if defined(OUT) || defined(BSDI)
12
#define des_SPtrans _des_SPtrans
13
14
#endif
15
16
#ifdef OUT
17
#define OK	1
18
#define ALIGN	4
19
#endif
20
21
#ifdef BSDI
22
#define OK              1
23
#define ALIGN           4
24
#undef SIZE
25
#undef TYPE
26
#endif
27
28
#if defined(ELF) || defined(SOL)
29
#define OK              1
30
#define ALIGN           16
31
#endif
32
33
#ifndef OK
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.
39
#endif
40
41
/* Let the Assembler begin :-) */
42
	/* Don't even think of reading this code */
43
	/* It was automatically generated by des-586.pl */
44
	/* Which is a perl program used to generate the x86 assember for */
45
	/* any of elf, a.out, BSDI,Win32, or Solaris */
46
	/* eric <eay@cryptsoft.com> */
47
48
	.file	"des-586.s"
49
	.version	"01.01"
50
.text
51
	.align ALIGN
52
.globl des_encrypt
53
	TYPE(des_encrypt,@function)
54
des_encrypt:
55
	pushl	%esi
56
	pushl	%edi
57
58
	/* Load the 2 words */
59
	movl	12(%esp),	%esi
60
	xorl	%ecx,		%ecx
61
	pushl	%ebx
62
	pushl	%ebp
63
	movl	(%esi),		%eax
64
	movl	28(%esp),	%ebx
65
	movl	4(%esi),	%edi
66
67
	/* IP */
68
	roll	$4,		%eax
69
	movl	%eax,		%esi
70
	xorl	%edi,		%eax
71
	andl	$0xf0f0f0f0,	%eax
72
	xorl	%eax,		%esi
73
	xorl	%eax,		%edi
74
75
	roll	$20,		%edi
76
	movl	%edi,		%eax
77
	xorl	%esi,		%edi
78
	andl	$0xfff0000f,	%edi
79
	xorl	%edi,		%eax
80
	xorl	%edi,		%esi
81
82
	roll	$14,		%eax
83
	movl	%eax,		%edi
84
	xorl	%esi,		%eax
85
	andl	$0x33333333,	%eax
86
	xorl	%eax,		%edi
87
	xorl	%eax,		%esi
88
89
	roll	$22,		%esi
90
	movl	%esi,		%eax
91
	xorl	%edi,		%esi
92
	andl	$0x03fc03fc,	%esi
93
	xorl	%esi,		%eax
94
	xorl	%esi,		%edi
95
96
	roll	$9,		%eax
97
	movl	%eax,		%esi
98
	xorl	%edi,		%eax
99
	andl	$0xaaaaaaaa,	%eax
100
	xorl	%eax,		%esi
101
	xorl	%eax,		%edi
102
103
.byte 209
104
.byte 199		/* roll $1 %edi */
105
	movl	24(%esp),	%ebp
106
	cmpl	$0,		%ebx
107
	je	.L000start_decrypt
108
109
	/* Round 0 */
110
	movl	(%ebp),		%eax
111
	xorl	%ebx,		%ebx
112
	movl	4(%ebp),	%edx
113
	xorl	%esi,		%eax
114
	xorl	%esi,		%edx
115
	andl	$0xfcfcfcfc,	%eax
116
	andl	$0xcfcfcfcf,	%edx
117
	movb	%al,		%bl
118
	movb	%ah,		%cl
119
	rorl	$4,		%edx
120
	movl	      des_SPtrans(%ebx),%ebp
121
	movb	%dl,		%bl
122
	xorl	%ebp,		%edi
123
	movl	0x200+des_SPtrans(%ecx),%ebp
124
	xorl	%ebp,		%edi
125
	movb	%dh,		%cl
126
	shrl	$16,		%eax
127
	movl	0x100+des_SPtrans(%ebx),%ebp
128
	xorl	%ebp,		%edi
129
	movb	%ah,		%bl
130
	shrl	$16,		%edx
131
	movl	0x300+des_SPtrans(%ecx),%ebp
132
	xorl	%ebp,		%edi
133
	movl	24(%esp),	%ebp
134
	movb	%dh,		%cl
135
	andl	$0xff,		%eax
136
	andl	$0xff,		%edx
137
	movl	0x600+des_SPtrans(%ebx),%ebx
138
	xorl	%ebx,		%edi
139
	movl	0x700+des_SPtrans(%ecx),%ebx
140
	xorl	%ebx,		%edi
141
	movl	0x400+des_SPtrans(%eax),%ebx
142
	xorl	%ebx,		%edi
143
	movl	0x500+des_SPtrans(%edx),%ebx
144
	xorl	%ebx,		%edi
145
146
	/* Round 1 */
147
	movl	8(%ebp),	%eax
148
	xorl	%ebx,		%ebx
149
	movl	12(%ebp),	%edx
150
	xorl	%edi,		%eax
151
	xorl	%edi,		%edx
152
	andl	$0xfcfcfcfc,	%eax
153
	andl	$0xcfcfcfcf,	%edx
154
	movb	%al,		%bl
155
	movb	%ah,		%cl
156
	rorl	$4,		%edx
157
	movl	      des_SPtrans(%ebx),%ebp
158
	movb	%dl,		%bl
159
	xorl	%ebp,		%esi
160
	movl	0x200+des_SPtrans(%ecx),%ebp
161
	xorl	%ebp,		%esi
162
	movb	%dh,		%cl
163
	shrl	$16,		%eax
164
	movl	0x100+des_SPtrans(%ebx),%ebp
165
	xorl	%ebp,		%esi
166
	movb	%ah,		%bl
167
	shrl	$16,		%edx
168
	movl	0x300+des_SPtrans(%ecx),%ebp
169
	xorl	%ebp,		%esi
170
	movl	24(%esp),	%ebp
171
	movb	%dh,		%cl
172
	andl	$0xff,		%eax
173
	andl	$0xff,		%edx
174
	movl	0x600+des_SPtrans(%ebx),%ebx
175
	xorl	%ebx,		%esi
176
	movl	0x700+des_SPtrans(%ecx),%ebx
177
	xorl	%ebx,		%esi
178
	movl	0x400+des_SPtrans(%eax),%ebx
179
	xorl	%ebx,		%esi
180
	movl	0x500+des_SPtrans(%edx),%ebx
181
	xorl	%ebx,		%esi
182
183
	/* Round 2 */
184
	movl	16(%ebp),	%eax
185
	xorl	%ebx,		%ebx
186
	movl	20(%ebp),	%edx
187
	xorl	%esi,		%eax
188
	xorl	%esi,		%edx
189
	andl	$0xfcfcfcfc,	%eax
190
	andl	$0xcfcfcfcf,	%edx
191
	movb	%al,		%bl
192
	movb	%ah,		%cl
193
	rorl	$4,		%edx
194
	movl	      des_SPtrans(%ebx),%ebp
195
	movb	%dl,		%bl
196
	xorl	%ebp,		%edi
197
	movl	0x200+des_SPtrans(%ecx),%ebp
198
	xorl	%ebp,		%edi
199
	movb	%dh,		%cl
200
	shrl	$16,		%eax
201
	movl	0x100+des_SPtrans(%ebx),%ebp
202
	xorl	%ebp,		%edi
203
	movb	%ah,		%bl
204
	shrl	$16,		%edx
205
	movl	0x300+des_SPtrans(%ecx),%ebp
206
	xorl	%ebp,		%edi
207
	movl	24(%esp),	%ebp
208
	movb	%dh,		%cl
209
	andl	$0xff,		%eax
210
	andl	$0xff,		%edx
211
	movl	0x600+des_SPtrans(%ebx),%ebx
212
	xorl	%ebx,		%edi
213
	movl	0x700+des_SPtrans(%ecx),%ebx
214
	xorl	%ebx,		%edi
215
	movl	0x400+des_SPtrans(%eax),%ebx
216
	xorl	%ebx,		%edi
217
	movl	0x500+des_SPtrans(%edx),%ebx
218
	xorl	%ebx,		%edi
219
220
	/* Round 3 */
221
	movl	24(%ebp),	%eax
222
	xorl	%ebx,		%ebx
223
	movl	28(%ebp),	%edx
224
	xorl	%edi,		%eax
225
	xorl	%edi,		%edx
226
	andl	$0xfcfcfcfc,	%eax
227
	andl	$0xcfcfcfcf,	%edx
228
	movb	%al,		%bl
229
	movb	%ah,		%cl
230
	rorl	$4,		%edx
231
	movl	      des_SPtrans(%ebx),%ebp
232
	movb	%dl,		%bl
233
	xorl	%ebp,		%esi
234
	movl	0x200+des_SPtrans(%ecx),%ebp
235
	xorl	%ebp,		%esi
236
	movb	%dh,		%cl
237
	shrl	$16,		%eax
238
	movl	0x100+des_SPtrans(%ebx),%ebp
239
	xorl	%ebp,		%esi
240
	movb	%ah,		%bl
241
	shrl	$16,		%edx
242
	movl	0x300+des_SPtrans(%ecx),%ebp
243
	xorl	%ebp,		%esi
244
	movl	24(%esp),	%ebp
245
	movb	%dh,		%cl
246
	andl	$0xff,		%eax
247
	andl	$0xff,		%edx
248
	movl	0x600+des_SPtrans(%ebx),%ebx
249
	xorl	%ebx,		%esi
250
	movl	0x700+des_SPtrans(%ecx),%ebx
251
	xorl	%ebx,		%esi
252
	movl	0x400+des_SPtrans(%eax),%ebx
253
	xorl	%ebx,		%esi
254
	movl	0x500+des_SPtrans(%edx),%ebx
255
	xorl	%ebx,		%esi
256
257
	/* Round 4 */
258
	movl	32(%ebp),	%eax
259
	xorl	%ebx,		%ebx
260
	movl	36(%ebp),	%edx
261
	xorl	%esi,		%eax
262
	xorl	%esi,		%edx
263
	andl	$0xfcfcfcfc,	%eax
264
	andl	$0xcfcfcfcf,	%edx
265
	movb	%al,		%bl
266
	movb	%ah,		%cl
267
	rorl	$4,		%edx
268
	movl	      des_SPtrans(%ebx),%ebp
269
	movb	%dl,		%bl
270
	xorl	%ebp,		%edi
271
	movl	0x200+des_SPtrans(%ecx),%ebp
272
	xorl	%ebp,		%edi
273
	movb	%dh,		%cl
274
	shrl	$16,		%eax
275
	movl	0x100+des_SPtrans(%ebx),%ebp
276
	xorl	%ebp,		%edi
277
	movb	%ah,		%bl
278
	shrl	$16,		%edx
279
	movl	0x300+des_SPtrans(%ecx),%ebp
280
	xorl	%ebp,		%edi
281
	movl	24(%esp),	%ebp
282
	movb	%dh,		%cl
283
	andl	$0xff,		%eax
284
	andl	$0xff,		%edx
285
	movl	0x600+des_SPtrans(%ebx),%ebx
286
	xorl	%ebx,		%edi
287
	movl	0x700+des_SPtrans(%ecx),%ebx
288
	xorl	%ebx,		%edi
289
	movl	0x400+des_SPtrans(%eax),%ebx
290
	xorl	%ebx,		%edi
291
	movl	0x500+des_SPtrans(%edx),%ebx
292
	xorl	%ebx,		%edi
293
294
	/* Round 5 */
295
	movl	40(%ebp),	%eax
296
	xorl	%ebx,		%ebx
297
	movl	44(%ebp),	%edx
298
	xorl	%edi,		%eax
299
	xorl	%edi,		%edx
300
	andl	$0xfcfcfcfc,	%eax
301
	andl	$0xcfcfcfcf,	%edx
302
	movb	%al,		%bl
303
	movb	%ah,		%cl
304
	rorl	$4,		%edx
305
	movl	      des_SPtrans(%ebx),%ebp
306
	movb	%dl,		%bl
307
	xorl	%ebp,		%esi
308
	movl	0x200+des_SPtrans(%ecx),%ebp
309
	xorl	%ebp,		%esi
310
	movb	%dh,		%cl
311
	shrl	$16,		%eax
312
	movl	0x100+des_SPtrans(%ebx),%ebp
313
	xorl	%ebp,		%esi
314
	movb	%ah,		%bl
315
	shrl	$16,		%edx
316
	movl	0x300+des_SPtrans(%ecx),%ebp
317
	xorl	%ebp,		%esi
318
	movl	24(%esp),	%ebp
319
	movb	%dh,		%cl
320
	andl	$0xff,		%eax
321
	andl	$0xff,		%edx
322
	movl	0x600+des_SPtrans(%ebx),%ebx
323
	xorl	%ebx,		%esi
324
	movl	0x700+des_SPtrans(%ecx),%ebx
325
	xorl	%ebx,		%esi
326
	movl	0x400+des_SPtrans(%eax),%ebx
327
	xorl	%ebx,		%esi
328
	movl	0x500+des_SPtrans(%edx),%ebx
329
	xorl	%ebx,		%esi
330
331
	/* Round 6 */
332
	movl	48(%ebp),	%eax
333
	xorl	%ebx,		%ebx
334
	movl	52(%ebp),	%edx
335
	xorl	%esi,		%eax
336
	xorl	%esi,		%edx
337
	andl	$0xfcfcfcfc,	%eax
338
	andl	$0xcfcfcfcf,	%edx
339
	movb	%al,		%bl
340
	movb	%ah,		%cl
341
	rorl	$4,		%edx
342
	movl	      des_SPtrans(%ebx),%ebp
343
	movb	%dl,		%bl
344
	xorl	%ebp,		%edi
345
	movl	0x200+des_SPtrans(%ecx),%ebp
346
	xorl	%ebp,		%edi
347
	movb	%dh,		%cl
348
	shrl	$16,		%eax
349
	movl	0x100+des_SPtrans(%ebx),%ebp
350
	xorl	%ebp,		%edi
351
	movb	%ah,		%bl
352
	shrl	$16,		%edx
353
	movl	0x300+des_SPtrans(%ecx),%ebp
354
	xorl	%ebp,		%edi
355
	movl	24(%esp),	%ebp
356
	movb	%dh,		%cl
357
	andl	$0xff,		%eax
358
	andl	$0xff,		%edx
359
	movl	0x600+des_SPtrans(%ebx),%ebx
360
	xorl	%ebx,		%edi
361
	movl	0x700+des_SPtrans(%ecx),%ebx
362
	xorl	%ebx,		%edi
363
	movl	0x400+des_SPtrans(%eax),%ebx
364
	xorl	%ebx,		%edi
365
	movl	0x500+des_SPtrans(%edx),%ebx
366
	xorl	%ebx,		%edi
367
368
	/* Round 7 */
369
	movl	56(%ebp),	%eax
370
	xorl	%ebx,		%ebx
371
	movl	60(%ebp),	%edx
372
	xorl	%edi,		%eax
373
	xorl	%edi,		%edx
374
	andl	$0xfcfcfcfc,	%eax
375
	andl	$0xcfcfcfcf,	%edx
376
	movb	%al,		%bl
377
	movb	%ah,		%cl
378
	rorl	$4,		%edx
379
	movl	      des_SPtrans(%ebx),%ebp
380
	movb	%dl,		%bl
381
	xorl	%ebp,		%esi
382
	movl	0x200+des_SPtrans(%ecx),%ebp
383
	xorl	%ebp,		%esi
384
	movb	%dh,		%cl
385
	shrl	$16,		%eax
386
	movl	0x100+des_SPtrans(%ebx),%ebp
387
	xorl	%ebp,		%esi
388
	movb	%ah,		%bl
389
	shrl	$16,		%edx
390
	movl	0x300+des_SPtrans(%ecx),%ebp
391
	xorl	%ebp,		%esi
392
	movl	24(%esp),	%ebp
393
	movb	%dh,		%cl
394
	andl	$0xff,		%eax
395
	andl	$0xff,		%edx
396
	movl	0x600+des_SPtrans(%ebx),%ebx
397
	xorl	%ebx,		%esi
398
	movl	0x700+des_SPtrans(%ecx),%ebx
399
	xorl	%ebx,		%esi
400
	movl	0x400+des_SPtrans(%eax),%ebx
401
	xorl	%ebx,		%esi
402
	movl	0x500+des_SPtrans(%edx),%ebx
403
	xorl	%ebx,		%esi
404
405
	/* Round 8 */
406
	movl	64(%ebp),	%eax
407
	xorl	%ebx,		%ebx
408
	movl	68(%ebp),	%edx
409
	xorl	%esi,		%eax
410
	xorl	%esi,		%edx
411
	andl	$0xfcfcfcfc,	%eax
412
	andl	$0xcfcfcfcf,	%edx
413
	movb	%al,		%bl
414
	movb	%ah,		%cl
415
	rorl	$4,		%edx
416
	movl	      des_SPtrans(%ebx),%ebp
417
	movb	%dl,		%bl
418
	xorl	%ebp,		%edi
419
	movl	0x200+des_SPtrans(%ecx),%ebp
420
	xorl	%ebp,		%edi
421
	movb	%dh,		%cl
422
	shrl	$16,		%eax
423
	movl	0x100+des_SPtrans(%ebx),%ebp
424
	xorl	%ebp,		%edi
425
	movb	%ah,		%bl
426
	shrl	$16,		%edx
427
	movl	0x300+des_SPtrans(%ecx),%ebp
428
	xorl	%ebp,		%edi
429
	movl	24(%esp),	%ebp
430
	movb	%dh,		%cl
431
	andl	$0xff,		%eax
432
	andl	$0xff,		%edx
433
	movl	0x600+des_SPtrans(%ebx),%ebx
434
	xorl	%ebx,		%edi
435
	movl	0x700+des_SPtrans(%ecx),%ebx
436
	xorl	%ebx,		%edi
437
	movl	0x400+des_SPtrans(%eax),%ebx
438
	xorl	%ebx,		%edi
439
	movl	0x500+des_SPtrans(%edx),%ebx
440
	xorl	%ebx,		%edi
441
442
	/* Round 9 */
443
	movl	72(%ebp),	%eax
444
	xorl	%ebx,		%ebx
445
	movl	76(%ebp),	%edx
446
	xorl	%edi,		%eax
447
	xorl	%edi,		%edx
448
	andl	$0xfcfcfcfc,	%eax
449
	andl	$0xcfcfcfcf,	%edx
450
	movb	%al,		%bl
451
	movb	%ah,		%cl
452
	rorl	$4,		%edx
453
	movl	      des_SPtrans(%ebx),%ebp
454
	movb	%dl,		%bl
455
	xorl	%ebp,		%esi
456
	movl	0x200+des_SPtrans(%ecx),%ebp
457
	xorl	%ebp,		%esi
458
	movb	%dh,		%cl
459
	shrl	$16,		%eax
460
	movl	0x100+des_SPtrans(%ebx),%ebp
461
	xorl	%ebp,		%esi
462
	movb	%ah,		%bl
463
	shrl	$16,		%edx
464
	movl	0x300+des_SPtrans(%ecx),%ebp
465
	xorl	%ebp,		%esi
466
	movl	24(%esp),	%ebp
467
	movb	%dh,		%cl
468
	andl	$0xff,		%eax
469
	andl	$0xff,		%edx
470
	movl	0x600+des_SPtrans(%ebx),%ebx
471
	xorl	%ebx,		%esi
472
	movl	0x700+des_SPtrans(%ecx),%ebx
473
	xorl	%ebx,		%esi
474
	movl	0x400+des_SPtrans(%eax),%ebx
475
	xorl	%ebx,		%esi
476
	movl	0x500+des_SPtrans(%edx),%ebx
477
	xorl	%ebx,		%esi
478
479
	/* Round 10 */
480
	movl	80(%ebp),	%eax
481
	xorl	%ebx,		%ebx
482
	movl	84(%ebp),	%edx
483
	xorl	%esi,		%eax
484
	xorl	%esi,		%edx
485
	andl	$0xfcfcfcfc,	%eax
486
	andl	$0xcfcfcfcf,	%edx
487
	movb	%al,		%bl
488
	movb	%ah,		%cl
489
	rorl	$4,		%edx
490
	movl	      des_SPtrans(%ebx),%ebp
491
	movb	%dl,		%bl
492
	xorl	%ebp,		%edi
493
	movl	0x200+des_SPtrans(%ecx),%ebp
494
	xorl	%ebp,		%edi
495
	movb	%dh,		%cl
496
	shrl	$16,		%eax
497
	movl	0x100+des_SPtrans(%ebx),%ebp
498
	xorl	%ebp,		%edi
499
	movb	%ah,		%bl
500
	shrl	$16,		%edx
501
	movl	0x300+des_SPtrans(%ecx),%ebp
502
	xorl	%ebp,		%edi
503
	movl	24(%esp),	%ebp
504
	movb	%dh,		%cl
505
	andl	$0xff,		%eax
506
	andl	$0xff,		%edx
507
	movl	0x600+des_SPtrans(%ebx),%ebx
508
	xorl	%ebx,		%edi
509
	movl	0x700+des_SPtrans(%ecx),%ebx
510
	xorl	%ebx,		%edi
511
	movl	0x400+des_SPtrans(%eax),%ebx
512
	xorl	%ebx,		%edi
513
	movl	0x500+des_SPtrans(%edx),%ebx
514
	xorl	%ebx,		%edi
515
516
	/* Round 11 */
517
	movl	88(%ebp),	%eax
518
	xorl	%ebx,		%ebx
519
	movl	92(%ebp),	%edx
520
	xorl	%edi,		%eax
521
	xorl	%edi,		%edx
522
	andl	$0xfcfcfcfc,	%eax
523
	andl	$0xcfcfcfcf,	%edx
524
	movb	%al,		%bl
525
	movb	%ah,		%cl
526
	rorl	$4,		%edx
527
	movl	      des_SPtrans(%ebx),%ebp
528
	movb	%dl,		%bl
529
	xorl	%ebp,		%esi
530
	movl	0x200+des_SPtrans(%ecx),%ebp
531
	xorl	%ebp,		%esi
532
	movb	%dh,		%cl
533
	shrl	$16,		%eax
534
	movl	0x100+des_SPtrans(%ebx),%ebp
535
	xorl	%ebp,		%esi
536
	movb	%ah,		%bl
537
	shrl	$16,		%edx
538
	movl	0x300+des_SPtrans(%ecx),%ebp
539
	xorl	%ebp,		%esi
540
	movl	24(%esp),	%ebp
541
	movb	%dh,		%cl
542
	andl	$0xff,		%eax
543
	andl	$0xff,		%edx
544
	movl	0x600+des_SPtrans(%ebx),%ebx
545
	xorl	%ebx,		%esi
546
	movl	0x700+des_SPtrans(%ecx),%ebx
547
	xorl	%ebx,		%esi
548
	movl	0x400+des_SPtrans(%eax),%ebx
549
	xorl	%ebx,		%esi
550
	movl	0x500+des_SPtrans(%edx),%ebx
551
	xorl	%ebx,		%esi
552
553
	/* Round 12 */
554
	movl	96(%ebp),	%eax
555
	xorl	%ebx,		%ebx
556
	movl	100(%ebp),	%edx
557
	xorl	%esi,		%eax
558
	xorl	%esi,		%edx
559
	andl	$0xfcfcfcfc,	%eax
560
	andl	$0xcfcfcfcf,	%edx
561
	movb	%al,		%bl
562
	movb	%ah,		%cl
563
	rorl	$4,		%edx
564
	movl	      des_SPtrans(%ebx),%ebp
565
	movb	%dl,		%bl
566
	xorl	%ebp,		%edi
567
	movl	0x200+des_SPtrans(%ecx),%ebp
568
	xorl	%ebp,		%edi
569
	movb	%dh,		%cl
570
	shrl	$16,		%eax
571
	movl	0x100+des_SPtrans(%ebx),%ebp
572
	xorl	%ebp,		%edi
573
	movb	%ah,		%bl
574
	shrl	$16,		%edx
575
	movl	0x300+des_SPtrans(%ecx),%ebp
576
	xorl	%ebp,		%edi
577
	movl	24(%esp),	%ebp
578
	movb	%dh,		%cl
579
	andl	$0xff,		%eax
580
	andl	$0xff,		%edx
581
	movl	0x600+des_SPtrans(%ebx),%ebx
582
	xorl	%ebx,		%edi
583
	movl	0x700+des_SPtrans(%ecx),%ebx
584
	xorl	%ebx,		%edi
585
	movl	0x400+des_SPtrans(%eax),%ebx
586
	xorl	%ebx,		%edi
587
	movl	0x500+des_SPtrans(%edx),%ebx
588
	xorl	%ebx,		%edi
589
590
	/* Round 13 */
591
	movl	104(%ebp),	%eax
592
	xorl	%ebx,		%ebx
593
	movl	108(%ebp),	%edx
594
	xorl	%edi,		%eax
595
	xorl	%edi,		%edx
596
	andl	$0xfcfcfcfc,	%eax
597
	andl	$0xcfcfcfcf,	%edx
598
	movb	%al,		%bl
599
	movb	%ah,		%cl
600
	rorl	$4,		%edx
601
	movl	      des_SPtrans(%ebx),%ebp
602
	movb	%dl,		%bl
603
	xorl	%ebp,		%esi
604
	movl	0x200+des_SPtrans(%ecx),%ebp
605
	xorl	%ebp,		%esi
606
	movb	%dh,		%cl
607
	shrl	$16,		%eax
608
	movl	0x100+des_SPtrans(%ebx),%ebp
609
	xorl	%ebp,		%esi
610
	movb	%ah,		%bl
611
	shrl	$16,		%edx
612
	movl	0x300+des_SPtrans(%ecx),%ebp
613
	xorl	%ebp,		%esi
614
	movl	24(%esp),	%ebp
615
	movb	%dh,		%cl
616
	andl	$0xff,		%eax
617
	andl	$0xff,		%edx
618
	movl	0x600+des_SPtrans(%ebx),%ebx
619
	xorl	%ebx,		%esi
620
	movl	0x700+des_SPtrans(%ecx),%ebx
621
	xorl	%ebx,		%esi
622
	movl	0x400+des_SPtrans(%eax),%ebx
623
	xorl	%ebx,		%esi
624
	movl	0x500+des_SPtrans(%edx),%ebx
625
	xorl	%ebx,		%esi
626
627
	/* Round 14 */
628
	movl	112(%ebp),	%eax
629
	xorl	%ebx,		%ebx
630
	movl	116(%ebp),	%edx
631
	xorl	%esi,		%eax
632
	xorl	%esi,		%edx
633
	andl	$0xfcfcfcfc,	%eax
634
	andl	$0xcfcfcfcf,	%edx
635
	movb	%al,		%bl
636
	movb	%ah,		%cl
637
	rorl	$4,		%edx
638
	movl	      des_SPtrans(%ebx),%ebp
639
	movb	%dl,		%bl
640
	xorl	%ebp,		%edi
641
	movl	0x200+des_SPtrans(%ecx),%ebp
642
	xorl	%ebp,		%edi
643
	movb	%dh,		%cl
644
	shrl	$16,		%eax
645
	movl	0x100+des_SPtrans(%ebx),%ebp
646
	xorl	%ebp,		%edi
647
	movb	%ah,		%bl
648
	shrl	$16,		%edx
649
	movl	0x300+des_SPtrans(%ecx),%ebp
650
	xorl	%ebp,		%edi
651
	movl	24(%esp),	%ebp
652
	movb	%dh,		%cl
653
	andl	$0xff,		%eax
654
	andl	$0xff,		%edx
655
	movl	0x600+des_SPtrans(%ebx),%ebx
656
	xorl	%ebx,		%edi
657
	movl	0x700+des_SPtrans(%ecx),%ebx
658
	xorl	%ebx,		%edi
659
	movl	0x400+des_SPtrans(%eax),%ebx
660
	xorl	%ebx,		%edi
661
	movl	0x500+des_SPtrans(%edx),%ebx
662
	xorl	%ebx,		%edi
663
664
	/* Round 15 */
665
	movl	120(%ebp),	%eax
666
	xorl	%ebx,		%ebx
667
	movl	124(%ebp),	%edx
668
	xorl	%edi,		%eax
669
	xorl	%edi,		%edx
670
	andl	$0xfcfcfcfc,	%eax
671
	andl	$0xcfcfcfcf,	%edx
672
	movb	%al,		%bl
673
	movb	%ah,		%cl
674
	rorl	$4,		%edx
675
	movl	      des_SPtrans(%ebx),%ebp
676
	movb	%dl,		%bl
677
	xorl	%ebp,		%esi
678
	movl	0x200+des_SPtrans(%ecx),%ebp
679
	xorl	%ebp,		%esi
680
	movb	%dh,		%cl
681
	shrl	$16,		%eax
682
	movl	0x100+des_SPtrans(%ebx),%ebp
683
	xorl	%ebp,		%esi
684
	movb	%ah,		%bl
685
	shrl	$16,		%edx
686
	movl	0x300+des_SPtrans(%ecx),%ebp
687
	xorl	%ebp,		%esi
688
	movl	24(%esp),	%ebp
689
	movb	%dh,		%cl
690
	andl	$0xff,		%eax
691
	andl	$0xff,		%edx
692
	movl	0x600+des_SPtrans(%ebx),%ebx
693
	xorl	%ebx,		%esi
694
	movl	0x700+des_SPtrans(%ecx),%ebx
695
	xorl	%ebx,		%esi
696
	movl	0x400+des_SPtrans(%eax),%ebx
697
	xorl	%ebx,		%esi
698
	movl	0x500+des_SPtrans(%edx),%ebx
699
	xorl	%ebx,		%esi
700
	jmp	.L001end
701
.L000start_decrypt:
702
703
	/* Round 15 */
704
	movl	120(%ebp),	%eax
705
	xorl	%ebx,		%ebx
706
	movl	124(%ebp),	%edx
707
	xorl	%esi,		%eax
708
	xorl	%esi,		%edx
709
	andl	$0xfcfcfcfc,	%eax
710
	andl	$0xcfcfcfcf,	%edx
711
	movb	%al,		%bl
712
	movb	%ah,		%cl
713
	rorl	$4,		%edx
714
	movl	      des_SPtrans(%ebx),%ebp
715
	movb	%dl,		%bl
716
	xorl	%ebp,		%edi
717
	movl	0x200+des_SPtrans(%ecx),%ebp
718
	xorl	%ebp,		%edi
719
	movb	%dh,		%cl
720
	shrl	$16,		%eax
721
	movl	0x100+des_SPtrans(%ebx),%ebp
722
	xorl	%ebp,		%edi
723
	movb	%ah,		%bl
724
	shrl	$16,		%edx
725
	movl	0x300+des_SPtrans(%ecx),%ebp
726
	xorl	%ebp,		%edi
727
	movl	24(%esp),	%ebp
728
	movb	%dh,		%cl
729
	andl	$0xff,		%eax
730
	andl	$0xff,		%edx
731
	movl	0x600+des_SPtrans(%ebx),%ebx
732
	xorl	%ebx,		%edi
733
	movl	0x700+des_SPtrans(%ecx),%ebx
734
	xorl	%ebx,		%edi
735
	movl	0x400+des_SPtrans(%eax),%ebx
736
	xorl	%ebx,		%edi
737
	movl	0x500+des_SPtrans(%edx),%ebx
738
	xorl	%ebx,		%edi
739
740
	/* Round 14 */
741
	movl	112(%ebp),	%eax
742
	xorl	%ebx,		%ebx
743
	movl	116(%ebp),	%edx
744
	xorl	%edi,		%eax
745
	xorl	%edi,		%edx
746
	andl	$0xfcfcfcfc,	%eax
747
	andl	$0xcfcfcfcf,	%edx
748
	movb	%al,		%bl
749
	movb	%ah,		%cl
750
	rorl	$4,		%edx
751
	movl	      des_SPtrans(%ebx),%ebp
752
	movb	%dl,		%bl
753
	xorl	%ebp,		%esi
754
	movl	0x200+des_SPtrans(%ecx),%ebp
755
	xorl	%ebp,		%esi
756
	movb	%dh,		%cl
757
	shrl	$16,		%eax
758
	movl	0x100+des_SPtrans(%ebx),%ebp
759
	xorl	%ebp,		%esi
760
	movb	%ah,		%bl
761
	shrl	$16,		%edx
762
	movl	0x300+des_SPtrans(%ecx),%ebp
763
	xorl	%ebp,		%esi
764
	movl	24(%esp),	%ebp
765
	movb	%dh,		%cl
766
	andl	$0xff,		%eax
767
	andl	$0xff,		%edx
768
	movl	0x600+des_SPtrans(%ebx),%ebx
769
	xorl	%ebx,		%esi
770
	movl	0x700+des_SPtrans(%ecx),%ebx
771
	xorl	%ebx,		%esi
772
	movl	0x400+des_SPtrans(%eax),%ebx
773
	xorl	%ebx,		%esi
774
	movl	0x500+des_SPtrans(%edx),%ebx
775
	xorl	%ebx,		%esi
776
777
	/* Round 13 */
778
	movl	104(%ebp),	%eax
779
	xorl	%ebx,		%ebx
780
	movl	108(%ebp),	%edx
781
	xorl	%esi,		%eax
782
	xorl	%esi,		%edx
783
	andl	$0xfcfcfcfc,	%eax
784
	andl	$0xcfcfcfcf,	%edx
785
	movb	%al,		%bl
786
	movb	%ah,		%cl
787
	rorl	$4,		%edx
788
	movl	      des_SPtrans(%ebx),%ebp
789
	movb	%dl,		%bl
790
	xorl	%ebp,		%edi
791
	movl	0x200+des_SPtrans(%ecx),%ebp
792
	xorl	%ebp,		%edi
793
	movb	%dh,		%cl
794
	shrl	$16,		%eax
795
	movl	0x100+des_SPtrans(%ebx),%ebp
796
	xorl	%ebp,		%edi
797
	movb	%ah,		%bl
798
	shrl	$16,		%edx
799
	movl	0x300+des_SPtrans(%ecx),%ebp
800
	xorl	%ebp,		%edi
801
	movl	24(%esp),	%ebp
802
	movb	%dh,		%cl
803
	andl	$0xff,		%eax
804
	andl	$0xff,		%edx
805
	movl	0x600+des_SPtrans(%ebx),%ebx
806
	xorl	%ebx,		%edi
807
	movl	0x700+des_SPtrans(%ecx),%ebx
808
	xorl	%ebx,		%edi
809
	movl	0x400+des_SPtrans(%eax),%ebx
810
	xorl	%ebx,		%edi
811
	movl	0x500+des_SPtrans(%edx),%ebx
812
	xorl	%ebx,		%edi
813
814
	/* Round 12 */
815
	movl	96(%ebp),	%eax
816
	xorl	%ebx,		%ebx
817
	movl	100(%ebp),	%edx
818
	xorl	%edi,		%eax
819
	xorl	%edi,		%edx
820
	andl	$0xfcfcfcfc,	%eax
821
	andl	$0xcfcfcfcf,	%edx
822
	movb	%al,		%bl
823
	movb	%ah,		%cl
824
	rorl	$4,		%edx
825
	movl	      des_SPtrans(%ebx),%ebp
826
	movb	%dl,		%bl
827
	xorl	%ebp,		%esi
828
	movl	0x200+des_SPtrans(%ecx),%ebp
829
	xorl	%ebp,		%esi
830
	movb	%dh,		%cl
831
	shrl	$16,		%eax
832
	movl	0x100+des_SPtrans(%ebx),%ebp
833
	xorl	%ebp,		%esi
834
	movb	%ah,		%bl
835
	shrl	$16,		%edx
836
	movl	0x300+des_SPtrans(%ecx),%ebp
837
	xorl	%ebp,		%esi
838
	movl	24(%esp),	%ebp
839
	movb	%dh,		%cl
840
	andl	$0xff,		%eax
841
	andl	$0xff,		%edx
842
	movl	0x600+des_SPtrans(%ebx),%ebx
843
	xorl	%ebx,		%esi
844
	movl	0x700+des_SPtrans(%ecx),%ebx
845
	xorl	%ebx,		%esi
846
	movl	0x400+des_SPtrans(%eax),%ebx
847
	xorl	%ebx,		%esi
848
	movl	0x500+des_SPtrans(%edx),%ebx
849
	xorl	%ebx,		%esi
850
851
	/* Round 11 */
852
	movl	88(%ebp),	%eax
853
	xorl	%ebx,		%ebx
854
	movl	92(%ebp),	%edx
855
	xorl	%esi,		%eax
856
	xorl	%esi,		%edx
857
	andl	$0xfcfcfcfc,	%eax
858
	andl	$0xcfcfcfcf,	%edx
859
	movb	%al,		%bl
860
	movb	%ah,		%cl
861
	rorl	$4,		%edx
862
	movl	      des_SPtrans(%ebx),%ebp
863
	movb	%dl,		%bl
864
	xorl	%ebp,		%edi
865
	movl	0x200+des_SPtrans(%ecx),%ebp
866
	xorl	%ebp,		%edi
867
	movb	%dh,		%cl
868
	shrl	$16,		%eax
869
	movl	0x100+des_SPtrans(%ebx),%ebp
870
	xorl	%ebp,		%edi
871
	movb	%ah,		%bl
872
	shrl	$16,		%edx
873
	movl	0x300+des_SPtrans(%ecx),%ebp
874
	xorl	%ebp,		%edi
875
	movl	24(%esp),	%ebp
876
	movb	%dh,		%cl
877
	andl	$0xff,		%eax
878
	andl	$0xff,		%edx
879
	movl	0x600+des_SPtrans(%ebx),%ebx
880
	xorl	%ebx,		%edi
881
	movl	0x700+des_SPtrans(%ecx),%ebx
882
	xorl	%ebx,		%edi
883
	movl	0x400+des_SPtrans(%eax),%ebx
884
	xorl	%ebx,		%edi
885
	movl	0x500+des_SPtrans(%edx),%ebx
886
	xorl	%ebx,		%edi
887
888
	/* Round 10 */
889
	movl	80(%ebp),	%eax
890
	xorl	%ebx,		%ebx
891
	movl	84(%ebp),	%edx
892
	xorl	%edi,		%eax
893
	xorl	%edi,		%edx
894
	andl	$0xfcfcfcfc,	%eax
895
	andl	$0xcfcfcfcf,	%edx
896
	movb	%al,		%bl
897
	movb	%ah,		%cl
898
	rorl	$4,		%edx
899
	movl	      des_SPtrans(%ebx),%ebp
900
	movb	%dl,		%bl
901
	xorl	%ebp,		%esi
902
	movl	0x200+des_SPtrans(%ecx),%ebp
903
	xorl	%ebp,		%esi
904
	movb	%dh,		%cl
905
	shrl	$16,		%eax
906
	movl	0x100+des_SPtrans(%ebx),%ebp
907
	xorl	%ebp,		%esi
908
	movb	%ah,		%bl
909
	shrl	$16,		%edx
910
	movl	0x300+des_SPtrans(%ecx),%ebp
911
	xorl	%ebp,		%esi
912
	movl	24(%esp),	%ebp
913
	movb	%dh,		%cl
914
	andl	$0xff,		%eax
915
	andl	$0xff,		%edx
916
	movl	0x600+des_SPtrans(%ebx),%ebx
917
	xorl	%ebx,		%esi
918
	movl	0x700+des_SPtrans(%ecx),%ebx
919
	xorl	%ebx,		%esi
920
	movl	0x400+des_SPtrans(%eax),%ebx
921
	xorl	%ebx,		%esi
922
	movl	0x500+des_SPtrans(%edx),%ebx
923
	xorl	%ebx,		%esi
924
925
	/* Round 9 */
926
	movl	72(%ebp),	%eax
927
	xorl	%ebx,		%ebx
928
	movl	76(%ebp),	%edx
929
	xorl	%esi,		%eax
930
	xorl	%esi,		%edx
931
	andl	$0xfcfcfcfc,	%eax
932
	andl	$0xcfcfcfcf,	%edx
933
	movb	%al,		%bl
934
	movb	%ah,		%cl
935
	rorl	$4,		%edx
936
	movl	      des_SPtrans(%ebx),%ebp
937
	movb	%dl,		%bl
938
	xorl	%ebp,		%edi
939
	movl	0x200+des_SPtrans(%ecx),%ebp
940
	xorl	%ebp,		%edi
941
	movb	%dh,		%cl
942
	shrl	$16,		%eax
943
	movl	0x100+des_SPtrans(%ebx),%ebp
944
	xorl	%ebp,		%edi
945
	movb	%ah,		%bl
946
	shrl	$16,		%edx
947
	movl	0x300+des_SPtrans(%ecx),%ebp
948
	xorl	%ebp,		%edi
949
	movl	24(%esp),	%ebp
950
	movb	%dh,		%cl
951
	andl	$0xff,		%eax
952
	andl	$0xff,		%edx
953
	movl	0x600+des_SPtrans(%ebx),%ebx
954
	xorl	%ebx,		%edi
955
	movl	0x700+des_SPtrans(%ecx),%ebx
956
	xorl	%ebx,		%edi
957
	movl	0x400+des_SPtrans(%eax),%ebx
958
	xorl	%ebx,		%edi
959
	movl	0x500+des_SPtrans(%edx),%ebx
960
	xorl	%ebx,		%edi
961
962
	/* Round 8 */
963
	movl	64(%ebp),	%eax
964
	xorl	%ebx,		%ebx
965
	movl	68(%ebp),	%edx
966
	xorl	%edi,		%eax
967
	xorl	%edi,		%edx
968
	andl	$0xfcfcfcfc,	%eax
969
	andl	$0xcfcfcfcf,	%edx
970
	movb	%al,		%bl
971
	movb	%ah,		%cl
972
	rorl	$4,		%edx
973
	movl	      des_SPtrans(%ebx),%ebp
974
	movb	%dl,		%bl
975
	xorl	%ebp,		%esi
976
	movl	0x200+des_SPtrans(%ecx),%ebp
977
	xorl	%ebp,		%esi
978
	movb	%dh,		%cl
979
	shrl	$16,		%eax
980
	movl	0x100+des_SPtrans(%ebx),%ebp
981
	xorl	%ebp,		%esi
982
	movb	%ah,		%bl
983
	shrl	$16,		%edx
984
	movl	0x300+des_SPtrans(%ecx),%ebp
985
	xorl	%ebp,		%esi
986
	movl	24(%esp),	%ebp
987
	movb	%dh,		%cl
988
	andl	$0xff,		%eax
989
	andl	$0xff,		%edx
990
	movl	0x600+des_SPtrans(%ebx),%ebx
991
	xorl	%ebx,		%esi
992
	movl	0x700+des_SPtrans(%ecx),%ebx
993
	xorl	%ebx,		%esi
994
	movl	0x400+des_SPtrans(%eax),%ebx
995
	xorl	%ebx,		%esi
996
	movl	0x500+des_SPtrans(%edx),%ebx
997
	xorl	%ebx,		%esi
998
999
	/* Round 7 */
1000
	movl	56(%ebp),	%eax
1001
	xorl	%ebx,		%ebx
1002
	movl	60(%ebp),	%edx
1003
	xorl	%esi,		%eax
1004
	xorl	%esi,		%edx
1005
	andl	$0xfcfcfcfc,	%eax
1006
	andl	$0xcfcfcfcf,	%edx
1007
	movb	%al,		%bl
1008
	movb	%ah,		%cl
1009
	rorl	$4,		%edx
1010
	movl	      des_SPtrans(%ebx),%ebp
1011
	movb	%dl,		%bl
1012
	xorl	%ebp,		%edi
1013
	movl	0x200+des_SPtrans(%ecx),%ebp
1014
	xorl	%ebp,		%edi
1015
	movb	%dh,		%cl
1016
	shrl	$16,		%eax
1017
	movl	0x100+des_SPtrans(%ebx),%ebp
1018
	xorl	%ebp,		%edi
1019
	movb	%ah,		%bl
1020
	shrl	$16,		%edx
1021
	movl	0x300+des_SPtrans(%ecx),%ebp
1022
	xorl	%ebp,		%edi
1023
	movl	24(%esp),	%ebp
1024
	movb	%dh,		%cl
1025
	andl	$0xff,		%eax
1026
	andl	$0xff,		%edx
1027
	movl	0x600+des_SPtrans(%ebx),%ebx
1028
	xorl	%ebx,		%edi
1029
	movl	0x700+des_SPtrans(%ecx),%ebx
1030
	xorl	%ebx,		%edi
1031
	movl	0x400+des_SPtrans(%eax),%ebx
1032
	xorl	%ebx,		%edi
1033
	movl	0x500+des_SPtrans(%edx),%ebx
1034
	xorl	%ebx,		%edi
1035
1036
	/* Round 6 */
1037
	movl	48(%ebp),	%eax
1038
	xorl	%ebx,		%ebx
1039
	movl	52(%ebp),	%edx
1040
	xorl	%edi,		%eax
1041
	xorl	%edi,		%edx
1042
	andl	$0xfcfcfcfc,	%eax
1043
	andl	$0xcfcfcfcf,	%edx
1044
	movb	%al,		%bl
1045
	movb	%ah,		%cl
1046
	rorl	$4,		%edx
1047
	movl	      des_SPtrans(%ebx),%ebp
1048
	movb	%dl,		%bl
1049
	xorl	%ebp,		%esi
1050
	movl	0x200+des_SPtrans(%ecx),%ebp
1051
	xorl	%ebp,		%esi
1052
	movb	%dh,		%cl
1053
	shrl	$16,		%eax
1054
	movl	0x100+des_SPtrans(%ebx),%ebp
1055
	xorl	%ebp,		%esi
1056
	movb	%ah,		%bl
1057
	shrl	$16,		%edx
1058
	movl	0x300+des_SPtrans(%ecx),%ebp
1059
	xorl	%ebp,		%esi
1060
	movl	24(%esp),	%ebp
1061
	movb	%dh,		%cl
1062
	andl	$0xff,		%eax
1063
	andl	$0xff,		%edx
1064
	movl	0x600+des_SPtrans(%ebx),%ebx
1065
	xorl	%ebx,		%esi
1066
	movl	0x700+des_SPtrans(%ecx),%ebx
1067
	xorl	%ebx,		%esi
1068
	movl	0x400+des_SPtrans(%eax),%ebx
1069
	xorl	%ebx,		%esi
1070
	movl	0x500+des_SPtrans(%edx),%ebx
1071
	xorl	%ebx,		%esi
1072
1073
	/* Round 5 */
1074
	movl	40(%ebp),	%eax
1075
	xorl	%ebx,		%ebx
1076
	movl	44(%ebp),	%edx
1077
	xorl	%esi,		%eax
1078
	xorl	%esi,		%edx
1079
	andl	$0xfcfcfcfc,	%eax
1080
	andl	$0xcfcfcfcf,	%edx
1081
	movb	%al,		%bl
1082
	movb	%ah,		%cl
1083
	rorl	$4,		%edx
1084
	movl	      des_SPtrans(%ebx),%ebp
1085
	movb	%dl,		%bl
1086
	xorl	%ebp,		%edi
1087
	movl	0x200+des_SPtrans(%ecx),%ebp
1088
	xorl	%ebp,		%edi
1089
	movb	%dh,		%cl
1090
	shrl	$16,		%eax
1091
	movl	0x100+des_SPtrans(%ebx),%ebp
1092
	xorl	%ebp,		%edi
1093
	movb	%ah,		%bl
1094
	shrl	$16,		%edx
1095
	movl	0x300+des_SPtrans(%ecx),%ebp
1096
	xorl	%ebp,		%edi
1097
	movl	24(%esp),	%ebp
1098
	movb	%dh,		%cl
1099
	andl	$0xff,		%eax
1100
	andl	$0xff,		%edx
1101
	movl	0x600+des_SPtrans(%ebx),%ebx
1102
	xorl	%ebx,		%edi
1103
	movl	0x700+des_SPtrans(%ecx),%ebx
1104
	xorl	%ebx,		%edi
1105
	movl	0x400+des_SPtrans(%eax),%ebx
1106
	xorl	%ebx,		%edi
1107
	movl	0x500+des_SPtrans(%edx),%ebx
1108
	xorl	%ebx,		%edi
1109
1110
	/* Round 4 */
1111
	movl	32(%ebp),	%eax
1112
	xorl	%ebx,		%ebx
1113
	movl	36(%ebp),	%edx
1114
	xorl	%edi,		%eax
1115
	xorl	%edi,		%edx
1116
	andl	$0xfcfcfcfc,	%eax
1117
	andl	$0xcfcfcfcf,	%edx
1118
	movb	%al,		%bl
1119
	movb	%ah,		%cl
1120
	rorl	$4,		%edx
1121
	movl	      des_SPtrans(%ebx),%ebp
1122
	movb	%dl,		%bl
1123
	xorl	%ebp,		%esi
1124
	movl	0x200+des_SPtrans(%ecx),%ebp
1125
	xorl	%ebp,		%esi
1126
	movb	%dh,		%cl
1127
	shrl	$16,		%eax
1128
	movl	0x100+des_SPtrans(%ebx),%ebp
1129
	xorl	%ebp,		%esi
1130
	movb	%ah,		%bl
1131
	shrl	$16,		%edx
1132
	movl	0x300+des_SPtrans(%ecx),%ebp
1133
	xorl	%ebp,		%esi
1134
	movl	24(%esp),	%ebp
1135
	movb	%dh,		%cl
1136
	andl	$0xff,		%eax
1137
	andl	$0xff,		%edx
1138
	movl	0x600+des_SPtrans(%ebx),%ebx
1139
	xorl	%ebx,		%esi
1140
	movl	0x700+des_SPtrans(%ecx),%ebx
1141
	xorl	%ebx,		%esi
1142
	movl	0x400+des_SPtrans(%eax),%ebx
1143
	xorl	%ebx,		%esi
1144
	movl	0x500+des_SPtrans(%edx),%ebx
1145
	xorl	%ebx,		%esi
1146
1147
	/* Round 3 */
1148
	movl	24(%ebp),	%eax
1149
	xorl	%ebx,		%ebx
1150
	movl	28(%ebp),	%edx
1151
	xorl	%esi,		%eax
1152
	xorl	%esi,		%edx
1153
	andl	$0xfcfcfcfc,	%eax
1154
	andl	$0xcfcfcfcf,	%edx
1155
	movb	%al,		%bl
1156
	movb	%ah,		%cl
1157
	rorl	$4,		%edx
1158
	movl	      des_SPtrans(%ebx),%ebp
1159
	movb	%dl,		%bl
1160
	xorl	%ebp,		%edi
1161
	movl	0x200+des_SPtrans(%ecx),%ebp
1162
	xorl	%ebp,		%edi
1163
	movb	%dh,		%cl
1164
	shrl	$16,		%eax
1165
	movl	0x100+des_SPtrans(%ebx),%ebp
1166
	xorl	%ebp,		%edi
1167
	movb	%ah,		%bl
1168
	shrl	$16,		%edx
1169
	movl	0x300+des_SPtrans(%ecx),%ebp
1170
	xorl	%ebp,		%edi
1171
	movl	24(%esp),	%ebp
1172
	movb	%dh,		%cl
1173
	andl	$0xff,		%eax
1174
	andl	$0xff,		%edx
1175
	movl	0x600+des_SPtrans(%ebx),%ebx
1176
	xorl	%ebx,		%edi
1177
	movl	0x700+des_SPtrans(%ecx),%ebx
1178
	xorl	%ebx,		%edi
1179
	movl	0x400+des_SPtrans(%eax),%ebx
1180
	xorl	%ebx,		%edi
1181
	movl	0x500+des_SPtrans(%edx),%ebx
1182
	xorl	%ebx,		%edi
1183
1184
	/* Round 2 */
1185
	movl	16(%ebp),	%eax
1186
	xorl	%ebx,		%ebx
1187
	movl	20(%ebp),	%edx
1188
	xorl	%edi,		%eax
1189
	xorl	%edi,		%edx
1190
	andl	$0xfcfcfcfc,	%eax
1191
	andl	$0xcfcfcfcf,	%edx
1192
	movb	%al,		%bl
1193
	movb	%ah,		%cl
1194
	rorl	$4,		%edx
1195
	movl	      des_SPtrans(%ebx),%ebp
1196
	movb	%dl,		%bl
1197
	xorl	%ebp,		%esi
1198
	movl	0x200+des_SPtrans(%ecx),%ebp
1199
	xorl	%ebp,		%esi
1200
	movb	%dh,		%cl
1201
	shrl	$16,		%eax
1202
	movl	0x100+des_SPtrans(%ebx),%ebp
1203
	xorl	%ebp,		%esi
1204
	movb	%ah,		%bl
1205
	shrl	$16,		%edx
1206
	movl	0x300+des_SPtrans(%ecx),%ebp
1207
	xorl	%ebp,		%esi
1208
	movl	24(%esp),	%ebp
1209
	movb	%dh,		%cl
1210
	andl	$0xff,		%eax
1211
	andl	$0xff,		%edx
1212
	movl	0x600+des_SPtrans(%ebx),%ebx
1213
	xorl	%ebx,		%esi
1214
	movl	0x700+des_SPtrans(%ecx),%ebx
1215
	xorl	%ebx,		%esi
1216
	movl	0x400+des_SPtrans(%eax),%ebx
1217
	xorl	%ebx,		%esi
1218
	movl	0x500+des_SPtrans(%edx),%ebx
1219
	xorl	%ebx,		%esi
1220
1221
	/* Round 1 */
1222
	movl	8(%ebp),	%eax
1223
	xorl	%ebx,		%ebx
1224
	movl	12(%ebp),	%edx
1225
	xorl	%esi,		%eax
1226
	xorl	%esi,		%edx
1227
	andl	$0xfcfcfcfc,	%eax
1228
	andl	$0xcfcfcfcf,	%edx
1229
	movb	%al,		%bl
1230
	movb	%ah,		%cl
1231
	rorl	$4,		%edx
1232
	movl	      des_SPtrans(%ebx),%ebp
1233
	movb	%dl,		%bl
1234
	xorl	%ebp,		%edi
1235
	movl	0x200+des_SPtrans(%ecx),%ebp
1236
	xorl	%ebp,		%edi
1237
	movb	%dh,		%cl
1238
	shrl	$16,		%eax
1239
	movl	0x100+des_SPtrans(%ebx),%ebp
1240
	xorl	%ebp,		%edi
1241
	movb	%ah,		%bl
1242
	shrl	$16,		%edx
1243
	movl	0x300+des_SPtrans(%ecx),%ebp
1244
	xorl	%ebp,		%edi
1245
	movl	24(%esp),	%ebp
1246
	movb	%dh,		%cl
1247
	andl	$0xff,		%eax
1248
	andl	$0xff,		%edx
1249
	movl	0x600+des_SPtrans(%ebx),%ebx
1250
	xorl	%ebx,		%edi
1251
	movl	0x700+des_SPtrans(%ecx),%ebx
1252
	xorl	%ebx,		%edi
1253
	movl	0x400+des_SPtrans(%eax),%ebx
1254
	xorl	%ebx,		%edi
1255
	movl	0x500+des_SPtrans(%edx),%ebx
1256
	xorl	%ebx,		%edi
1257
1258
	/* Round 0 */
1259
	movl	(%ebp),		%eax
1260
	xorl	%ebx,		%ebx
1261
	movl	4(%ebp),	%edx
1262
	xorl	%edi,		%eax
1263
	xorl	%edi,		%edx
1264
	andl	$0xfcfcfcfc,	%eax
1265
	andl	$0xcfcfcfcf,	%edx
1266
	movb	%al,		%bl
1267
	movb	%ah,		%cl
1268
	rorl	$4,		%edx
1269
	movl	      des_SPtrans(%ebx),%ebp
1270
	movb	%dl,		%bl
1271
	xorl	%ebp,		%esi
1272
	movl	0x200+des_SPtrans(%ecx),%ebp
1273
	xorl	%ebp,		%esi
1274
	movb	%dh,		%cl
1275
	shrl	$16,		%eax
1276
	movl	0x100+des_SPtrans(%ebx),%ebp
1277
	xorl	%ebp,		%esi
1278
	movb	%ah,		%bl
1279
	shrl	$16,		%edx
1280
	movl	0x300+des_SPtrans(%ecx),%ebp
1281
	xorl	%ebp,		%esi
1282
	movl	24(%esp),	%ebp
1283
	movb	%dh,		%cl
1284
	andl	$0xff,		%eax
1285
	andl	$0xff,		%edx
1286
	movl	0x600+des_SPtrans(%ebx),%ebx
1287
	xorl	%ebx,		%esi
1288
	movl	0x700+des_SPtrans(%ecx),%ebx
1289
	xorl	%ebx,		%esi
1290
	movl	0x400+des_SPtrans(%eax),%ebx
1291
	xorl	%ebx,		%esi
1292
	movl	0x500+des_SPtrans(%edx),%ebx
1293
	xorl	%ebx,		%esi
1294
.L001end:
1295
1296
	/* FP */
1297
	movl	20(%esp),	%edx
1298
.byte 209
1299
.byte 206		/* rorl $1 %esi */
1300
	movl	%edi,		%eax
1301
	xorl	%esi,		%edi
1302
	andl	$0xaaaaaaaa,	%edi
1303
	xorl	%edi,		%eax
1304
	xorl	%edi,		%esi
1305
1306
	roll	$23,		%eax
1307
	movl	%eax,		%edi
1308
	xorl	%esi,		%eax
1309
	andl	$0x03fc03fc,	%eax
1310
	xorl	%eax,		%edi
1311
	xorl	%eax,		%esi
1312
1313
	roll	$10,		%edi
1314
	movl	%edi,		%eax
1315
	xorl	%esi,		%edi
1316
	andl	$0x33333333,	%edi
1317
	xorl	%edi,		%eax
1318
	xorl	%edi,		%esi
1319
1320
	roll	$18,		%esi
1321
	movl	%esi,		%edi
1322
	xorl	%eax,		%esi
1323
	andl	$0xfff0000f,	%esi
1324
	xorl	%esi,		%edi
1325
	xorl	%esi,		%eax
1326
1327
	roll	$12,		%edi
1328
	movl	%edi,		%esi
1329
	xorl	%eax,		%edi
1330
	andl	$0xf0f0f0f0,	%edi
1331
	xorl	%edi,		%esi
1332
	xorl	%edi,		%eax
1333
1334
	rorl	$4,		%eax
1335
	movl	%eax,		(%edx)
1336
	movl	%esi,		4(%edx)
1337
	popl	%ebp
1338
	popl	%ebx
1339
	popl	%edi
1340
	popl	%esi
1341
	ret
1342
.des_encrypt_end:
1343
	SIZE(des_encrypt,.des_encrypt_end-des_encrypt)
1344
.ident	"desasm.pl"
1345
.text
1346
	.align ALIGN
1347
.globl des_encrypt2
1348
	TYPE(des_encrypt2,@function)
1349
des_encrypt2:
1350
	pushl	%esi
1351
	pushl	%edi
1352
1353
	/* Load the 2 words */
1354
	movl	12(%esp),	%eax
1355
	xorl	%ecx,		%ecx
1356
	pushl	%ebx
1357
	pushl	%ebp
1358
	movl	(%eax),		%esi
1359
	movl	28(%esp),	%ebx
1360
	roll	$3,		%esi
1361
	movl	4(%eax),	%edi
1362
	roll	$3,		%edi
1363
	movl	24(%esp),	%ebp
1364
	cmpl	$0,		%ebx
1365
	je	.L002start_decrypt
1366
1367
	/* Round 0 */
1368
	movl	(%ebp),		%eax
1369
	xorl	%ebx,		%ebx
1370
	movl	4(%ebp),	%edx
1371
	xorl	%esi,		%eax
1372
	xorl	%esi,		%edx
1373
	andl	$0xfcfcfcfc,	%eax
1374
	andl	$0xcfcfcfcf,	%edx
1375
	movb	%al,		%bl
1376
	movb	%ah,		%cl
1377
	rorl	$4,		%edx
1378
	movl	      des_SPtrans(%ebx),%ebp
1379
	movb	%dl,		%bl
1380
	xorl	%ebp,		%edi
1381
	movl	0x200+des_SPtrans(%ecx),%ebp
1382
	xorl	%ebp,		%edi
1383
	movb	%dh,		%cl
1384
	shrl	$16,		%eax
1385
	movl	0x100+des_SPtrans(%ebx),%ebp
1386
	xorl	%ebp,		%edi
1387
	movb	%ah,		%bl
1388
	shrl	$16,		%edx
1389
	movl	0x300+des_SPtrans(%ecx),%ebp
1390
	xorl	%ebp,		%edi
1391
	movl	24(%esp),	%ebp
1392
	movb	%dh,		%cl
1393
	andl	$0xff,		%eax
1394
	andl	$0xff,		%edx
1395
	movl	0x600+des_SPtrans(%ebx),%ebx
1396
	xorl	%ebx,		%edi
1397
	movl	0x700+des_SPtrans(%ecx),%ebx
1398
	xorl	%ebx,		%edi
1399
	movl	0x400+des_SPtrans(%eax),%ebx
1400
	xorl	%ebx,		%edi
1401
	movl	0x500+des_SPtrans(%edx),%ebx
1402
	xorl	%ebx,		%edi
1403
1404
	/* Round 1 */
1405
	movl	8(%ebp),	%eax
1406
	xorl	%ebx,		%ebx
1407
	movl	12(%ebp),	%edx
1408
	xorl	%edi,		%eax
1409
	xorl	%edi,		%edx
1410
	andl	$0xfcfcfcfc,	%eax
1411
	andl	$0xcfcfcfcf,	%edx
1412
	movb	%al,		%bl
1413
	movb	%ah,		%cl
1414
	rorl	$4,		%edx
1415
	movl	      des_SPtrans(%ebx),%ebp
1416
	movb	%dl,		%bl
1417
	xorl	%ebp,		%esi
1418
	movl	0x200+des_SPtrans(%ecx),%ebp
1419
	xorl	%ebp,		%esi
1420
	movb	%dh,		%cl
1421
	shrl	$16,		%eax
1422
	movl	0x100+des_SPtrans(%ebx),%ebp
1423
	xorl	%ebp,		%esi
1424
	movb	%ah,		%bl
1425
	shrl	$16,		%edx
1426
	movl	0x300+des_SPtrans(%ecx),%ebp
1427
	xorl	%ebp,		%esi
1428
	movl	24(%esp),	%ebp
1429
	movb	%dh,		%cl
1430
	andl	$0xff,		%eax
1431
	andl	$0xff,		%edx
1432
	movl	0x600+des_SPtrans(%ebx),%ebx
1433
	xorl	%ebx,		%esi
1434
	movl	0x700+des_SPtrans(%ecx),%ebx
1435
	xorl	%ebx,		%esi
1436
	movl	0x400+des_SPtrans(%eax),%ebx
1437
	xorl	%ebx,		%esi
1438
	movl	0x500+des_SPtrans(%edx),%ebx
1439
	xorl	%ebx,		%esi
1440
1441
	/* Round 2 */
1442
	movl	16(%ebp),	%eax
1443
	xorl	%ebx,		%ebx
1444
	movl	20(%ebp),	%edx
1445
	xorl	%esi,		%eax
1446
	xorl	%esi,		%edx
1447
	andl	$0xfcfcfcfc,	%eax
1448
	andl	$0xcfcfcfcf,	%edx
1449
	movb	%al,		%bl
1450
	movb	%ah,		%cl
1451
	rorl	$4,		%edx
1452
	movl	      des_SPtrans(%ebx),%ebp
1453
	movb	%dl,		%bl
1454
	xorl	%ebp,		%edi
1455
	movl	0x200+des_SPtrans(%ecx),%ebp
1456
	xorl	%ebp,		%edi
1457
	movb	%dh,		%cl
1458
	shrl	$16,		%eax
1459
	movl	0x100+des_SPtrans(%ebx),%ebp
1460
	xorl	%ebp,		%edi
1461
	movb	%ah,		%bl
1462
	shrl	$16,		%edx
1463
	movl	0x300+des_SPtrans(%ecx),%ebp
1464
	xorl	%ebp,		%edi
1465
	movl	24(%esp),	%ebp
1466
	movb	%dh,		%cl
1467
	andl	$0xff,		%eax
1468
	andl	$0xff,		%edx
1469
	movl	0x600+des_SPtrans(%ebx),%ebx
1470
	xorl	%ebx,		%edi
1471
	movl	0x700+des_SPtrans(%ecx),%ebx
1472
	xorl	%ebx,		%edi
1473
	movl	0x400+des_SPtrans(%eax),%ebx
1474
	xorl	%ebx,		%edi
1475
	movl	0x500+des_SPtrans(%edx),%ebx
1476
	xorl	%ebx,		%edi
1477
1478
	/* Round 3 */
1479
	movl	24(%ebp),	%eax
1480
	xorl	%ebx,		%ebx
1481
	movl	28(%ebp),	%edx
1482
	xorl	%edi,		%eax
1483
	xorl	%edi,		%edx
1484
	andl	$0xfcfcfcfc,	%eax
1485
	andl	$0xcfcfcfcf,	%edx
1486
	movb	%al,		%bl
1487
	movb	%ah,		%cl
1488
	rorl	$4,		%edx
1489
	movl	      des_SPtrans(%ebx),%ebp
1490
	movb	%dl,		%bl
1491
	xorl	%ebp,		%esi
1492
	movl	0x200+des_SPtrans(%ecx),%ebp
1493
	xorl	%ebp,		%esi
1494
	movb	%dh,		%cl
1495
	shrl	$16,		%eax
1496
	movl	0x100+des_SPtrans(%ebx),%ebp
1497
	xorl	%ebp,		%esi
1498
	movb	%ah,		%bl
1499
	shrl	$16,		%edx
1500
	movl	0x300+des_SPtrans(%ecx),%ebp
1501
	xorl	%ebp,		%esi
1502
	movl	24(%esp),	%ebp
1503
	movb	%dh,		%cl
1504
	andl	$0xff,		%eax
1505
	andl	$0xff,		%edx
1506
	movl	0x600+des_SPtrans(%ebx),%ebx
1507
	xorl	%ebx,		%esi
1508
	movl	0x700+des_SPtrans(%ecx),%ebx
1509
	xorl	%ebx,		%esi
1510
	movl	0x400+des_SPtrans(%eax),%ebx
1511
	xorl	%ebx,		%esi
1512
	movl	0x500+des_SPtrans(%edx),%ebx
1513
	xorl	%ebx,		%esi
1514
1515
	/* Round 4 */
1516
	movl	32(%ebp),	%eax
1517
	xorl	%ebx,		%ebx
1518
	movl	36(%ebp),	%edx
1519
	xorl	%esi,		%eax
1520
	xorl	%esi,		%edx
1521
	andl	$0xfcfcfcfc,	%eax
1522
	andl	$0xcfcfcfcf,	%edx
1523
	movb	%al,		%bl
1524
	movb	%ah,		%cl
1525
	rorl	$4,		%edx
1526
	movl	      des_SPtrans(%ebx),%ebp
1527
	movb	%dl,		%bl
1528
	xorl	%ebp,		%edi
1529
	movl	0x200+des_SPtrans(%ecx),%ebp
1530
	xorl	%ebp,		%edi
1531
	movb	%dh,		%cl
1532
	shrl	$16,		%eax
1533
	movl	0x100+des_SPtrans(%ebx),%ebp
1534
	xorl	%ebp,		%edi
1535
	movb	%ah,		%bl
1536
	shrl	$16,		%edx
1537
	movl	0x300+des_SPtrans(%ecx),%ebp
1538
	xorl	%ebp,		%edi
1539
	movl	24(%esp),	%ebp
1540
	movb	%dh,		%cl
1541
	andl	$0xff,		%eax
1542
	andl	$0xff,		%edx
1543
	movl	0x600+des_SPtrans(%ebx),%ebx
1544
	xorl	%ebx,		%edi
1545
	movl	0x700+des_SPtrans(%ecx),%ebx
1546
	xorl	%ebx,		%edi
1547
	movl	0x400+des_SPtrans(%eax),%ebx
1548
	xorl	%ebx,		%edi
1549
	movl	0x500+des_SPtrans(%edx),%ebx
1550
	xorl	%ebx,		%edi
1551
1552
	/* Round 5 */
1553
	movl	40(%ebp),	%eax
1554
	xorl	%ebx,		%ebx
1555
	movl	44(%ebp),	%edx
1556
	xorl	%edi,		%eax
1557
	xorl	%edi,		%edx
1558
	andl	$0xfcfcfcfc,	%eax
1559
	andl	$0xcfcfcfcf,	%edx
1560
	movb	%al,		%bl
1561
	movb	%ah,		%cl
1562
	rorl	$4,		%edx
1563
	movl	      des_SPtrans(%ebx),%ebp
1564
	movb	%dl,		%bl
1565
	xorl	%ebp,		%esi
1566
	movl	0x200+des_SPtrans(%ecx),%ebp
1567
	xorl	%ebp,		%esi
1568
	movb	%dh,		%cl
1569
	shrl	$16,		%eax
1570
	movl	0x100+des_SPtrans(%ebx),%ebp
1571
	xorl	%ebp,		%esi
1572
	movb	%ah,		%bl
1573
	shrl	$16,		%edx
1574
	movl	0x300+des_SPtrans(%ecx),%ebp
1575
	xorl	%ebp,		%esi
1576
	movl	24(%esp),	%ebp
1577
	movb	%dh,		%cl
1578
	andl	$0xff,		%eax
1579
	andl	$0xff,		%edx
1580
	movl	0x600+des_SPtrans(%ebx),%ebx
1581
	xorl	%ebx,		%esi
1582
	movl	0x700+des_SPtrans(%ecx),%ebx
1583
	xorl	%ebx,		%esi
1584
	movl	0x400+des_SPtrans(%eax),%ebx
1585
	xorl	%ebx,		%esi
1586
	movl	0x500+des_SPtrans(%edx),%ebx
1587
	xorl	%ebx,		%esi
1588
1589
	/* Round 6 */
1590
	movl	48(%ebp),	%eax
1591
	xorl	%ebx,		%ebx
1592
	movl	52(%ebp),	%edx
1593
	xorl	%esi,		%eax
1594
	xorl	%esi,		%edx
1595
	andl	$0xfcfcfcfc,	%eax
1596
	andl	$0xcfcfcfcf,	%edx
1597
	movb	%al,		%bl
1598
	movb	%ah,		%cl
1599
	rorl	$4,		%edx
1600
	movl	      des_SPtrans(%ebx),%ebp
1601
	movb	%dl,		%bl
1602
	xorl	%ebp,		%edi
1603
	movl	0x200+des_SPtrans(%ecx),%ebp
1604
	xorl	%ebp,		%edi
1605
	movb	%dh,		%cl
1606
	shrl	$16,		%eax
1607
	movl	0x100+des_SPtrans(%ebx),%ebp
1608
	xorl	%ebp,		%edi
1609
	movb	%ah,		%bl
1610
	shrl	$16,		%edx
1611
	movl	0x300+des_SPtrans(%ecx),%ebp
1612
	xorl	%ebp,		%edi
1613
	movl	24(%esp),	%ebp
1614
	movb	%dh,		%cl
1615
	andl	$0xff,		%eax
1616
	andl	$0xff,		%edx
1617
	movl	0x600+des_SPtrans(%ebx),%ebx
1618
	xorl	%ebx,		%edi
1619
	movl	0x700+des_SPtrans(%ecx),%ebx
1620
	xorl	%ebx,		%edi
1621
	movl	0x400+des_SPtrans(%eax),%ebx
1622
	xorl	%ebx,		%edi
1623
	movl	0x500+des_SPtrans(%edx),%ebx
1624
	xorl	%ebx,		%edi
1625
1626
	/* Round 7 */
1627
	movl	56(%ebp),	%eax
1628
	xorl	%ebx,		%ebx
1629
	movl	60(%ebp),	%edx
1630
	xorl	%edi,		%eax
1631
	xorl	%edi,		%edx
1632
	andl	$0xfcfcfcfc,	%eax
1633
	andl	$0xcfcfcfcf,	%edx
1634
	movb	%al,		%bl
1635
	movb	%ah,		%cl
1636
	rorl	$4,		%edx
1637
	movl	      des_SPtrans(%ebx),%ebp
1638
	movb	%dl,		%bl
1639
	xorl	%ebp,		%esi
1640
	movl	0x200+des_SPtrans(%ecx),%ebp
1641
	xorl	%ebp,		%esi
1642
	movb	%dh,		%cl
1643
	shrl	$16,		%eax
1644
	movl	0x100+des_SPtrans(%ebx),%ebp
1645
	xorl	%ebp,		%esi
1646
	movb	%ah,		%bl
1647
	shrl	$16,		%edx
1648
	movl	0x300+des_SPtrans(%ecx),%ebp
1649
	xorl	%ebp,		%esi
1650
	movl	24(%esp),	%ebp
1651
	movb	%dh,		%cl
1652
	andl	$0xff,		%eax
1653
	andl	$0xff,		%edx
1654
	movl	0x600+des_SPtrans(%ebx),%ebx
1655
	xorl	%ebx,		%esi
1656
	movl	0x700+des_SPtrans(%ecx),%ebx
1657
	xorl	%ebx,		%esi
1658
	movl	0x400+des_SPtrans(%eax),%ebx
1659
	xorl	%ebx,		%esi
1660
	movl	0x500+des_SPtrans(%edx),%ebx
1661
	xorl	%ebx,		%esi
1662
1663
	/* Round 8 */
1664
	movl	64(%ebp),	%eax
1665
	xorl	%ebx,		%ebx
1666
	movl	68(%ebp),	%edx
1667
	xorl	%esi,		%eax
1668
	xorl	%esi,		%edx
1669
	andl	$0xfcfcfcfc,	%eax
1670
	andl	$0xcfcfcfcf,	%edx
1671
	movb	%al,		%bl
1672
	movb	%ah,		%cl
1673
	rorl	$4,		%edx
1674
	movl	      des_SPtrans(%ebx),%ebp
1675
	movb	%dl,		%bl
1676
	xorl	%ebp,		%edi
1677
	movl	0x200+des_SPtrans(%ecx),%ebp
1678
	xorl	%ebp,		%edi
1679
	movb	%dh,		%cl
1680
	shrl	$16,		%eax
1681
	movl	0x100+des_SPtrans(%ebx),%ebp
1682
	xorl	%ebp,		%edi
1683
	movb	%ah,		%bl
1684
	shrl	$16,		%edx
1685
	movl	0x300+des_SPtrans(%ecx),%ebp
1686
	xorl	%ebp,		%edi
1687
	movl	24(%esp),	%ebp
1688
	movb	%dh,		%cl
1689
	andl	$0xff,		%eax
1690
	andl	$0xff,		%edx
1691
	movl	0x600+des_SPtrans(%ebx),%ebx
1692
	xorl	%ebx,		%edi
1693
	movl	0x700+des_SPtrans(%ecx),%ebx
1694
	xorl	%ebx,		%edi
1695
	movl	0x400+des_SPtrans(%eax),%ebx
1696
	xorl	%ebx,		%edi
1697
	movl	0x500+des_SPtrans(%edx),%ebx
1698
	xorl	%ebx,		%edi
1699
1700
	/* Round 9 */
1701
	movl	72(%ebp),	%eax
1702
	xorl	%ebx,		%ebx
1703
	movl	76(%ebp),	%edx
1704
	xorl	%edi,		%eax
1705
	xorl	%edi,		%edx
1706
	andl	$0xfcfcfcfc,	%eax
1707
	andl	$0xcfcfcfcf,	%edx
1708
	movb	%al,		%bl
1709
	movb	%ah,		%cl
1710
	rorl	$4,		%edx
1711
	movl	      des_SPtrans(%ebx),%ebp
1712
	movb	%dl,		%bl
1713
	xorl	%ebp,		%esi
1714
	movl	0x200+des_SPtrans(%ecx),%ebp
1715
	xorl	%ebp,		%esi
1716
	movb	%dh,		%cl
1717
	shrl	$16,		%eax
1718
	movl	0x100+des_SPtrans(%ebx),%ebp
1719
	xorl	%ebp,		%esi
1720
	movb	%ah,		%bl
1721
	shrl	$16,		%edx
1722
	movl	0x300+des_SPtrans(%ecx),%ebp
1723
	xorl	%ebp,		%esi
1724
	movl	24(%esp),	%ebp
1725
	movb	%dh,		%cl
1726
	andl	$0xff,		%eax
1727
	andl	$0xff,		%edx
1728
	movl	0x600+des_SPtrans(%ebx),%ebx
1729
	xorl	%ebx,		%esi
1730
	movl	0x700+des_SPtrans(%ecx),%ebx
1731
	xorl	%ebx,		%esi
1732
	movl	0x400+des_SPtrans(%eax),%ebx
1733
	xorl	%ebx,		%esi
1734
	movl	0x500+des_SPtrans(%edx),%ebx
1735
	xorl	%ebx,		%esi
1736
1737
	/* Round 10 */
1738
	movl	80(%ebp),	%eax
1739
	xorl	%ebx,		%ebx
1740
	movl	84(%ebp),	%edx
1741
	xorl	%esi,		%eax
1742
	xorl	%esi,		%edx
1743
	andl	$0xfcfcfcfc,	%eax
1744
	andl	$0xcfcfcfcf,	%edx
1745
	movb	%al,		%bl
1746
	movb	%ah,		%cl
1747
	rorl	$4,		%edx
1748
	movl	      des_SPtrans(%ebx),%ebp
1749
	movb	%dl,		%bl
1750
	xorl	%ebp,		%edi
1751
	movl	0x200+des_SPtrans(%ecx),%ebp
1752
	xorl	%ebp,		%edi
1753
	movb	%dh,		%cl
1754
	shrl	$16,		%eax
1755
	movl	0x100+des_SPtrans(%ebx),%ebp
1756
	xorl	%ebp,		%edi
1757
	movb	%ah,		%bl
1758
	shrl	$16,		%edx
1759
	movl	0x300+des_SPtrans(%ecx),%ebp
1760
	xorl	%ebp,		%edi
1761
	movl	24(%esp),	%ebp
1762
	movb	%dh,		%cl
1763
	andl	$0xff,		%eax
1764
	andl	$0xff,		%edx
1765
	movl	0x600+des_SPtrans(%ebx),%ebx
1766
	xorl	%ebx,		%edi
1767
	movl	0x700+des_SPtrans(%ecx),%ebx
1768
	xorl	%ebx,		%edi
1769
	movl	0x400+des_SPtrans(%eax),%ebx
1770
	xorl	%ebx,		%edi
1771
	movl	0x500+des_SPtrans(%edx),%ebx
1772
	xorl	%ebx,		%edi
1773
1774
	/* Round 11 */
1775
	movl	88(%ebp),	%eax
1776
	xorl	%ebx,		%ebx
1777
	movl	92(%ebp),	%edx
1778
	xorl	%edi,		%eax
1779
	xorl	%edi,		%edx
1780
	andl	$0xfcfcfcfc,	%eax
1781
	andl	$0xcfcfcfcf,	%edx
1782
	movb	%al,		%bl
1783
	movb	%ah,		%cl
1784
	rorl	$4,		%edx
1785
	movl	      des_SPtrans(%ebx),%ebp
1786
	movb	%dl,		%bl
1787
	xorl	%ebp,		%esi
1788
	movl	0x200+des_SPtrans(%ecx),%ebp
1789
	xorl	%ebp,		%esi
1790
	movb	%dh,		%cl
1791
	shrl	$16,		%eax
1792
	movl	0x100+des_SPtrans(%ebx),%ebp
1793
	xorl	%ebp,		%esi
1794
	movb	%ah,		%bl
1795
	shrl	$16,		%edx
1796
	movl	0x300+des_SPtrans(%ecx),%ebp
1797
	xorl	%ebp,		%esi
1798
	movl	24(%esp),	%ebp
1799
	movb	%dh,		%cl
1800
	andl	$0xff,		%eax
1801
	andl	$0xff,		%edx
1802
	movl	0x600+des_SPtrans(%ebx),%ebx
1803
	xorl	%ebx,		%esi
1804
	movl	0x700+des_SPtrans(%ecx),%ebx
1805
	xorl	%ebx,		%esi
1806
	movl	0x400+des_SPtrans(%eax),%ebx
1807
	xorl	%ebx,		%esi
1808
	movl	0x500+des_SPtrans(%edx),%ebx
1809
	xorl	%ebx,		%esi
1810
1811
	/* Round 12 */
1812
	movl	96(%ebp),	%eax
1813
	xorl	%ebx,		%ebx
1814
	movl	100(%ebp),	%edx
1815
	xorl	%esi,		%eax
1816
	xorl	%esi,		%edx
1817
	andl	$0xfcfcfcfc,	%eax
1818
	andl	$0xcfcfcfcf,	%edx
1819
	movb	%al,		%bl
1820
	movb	%ah,		%cl
1821
	rorl	$4,		%edx
1822
	movl	      des_SPtrans(%ebx),%ebp
1823
	movb	%dl,		%bl
1824
	xorl	%ebp,		%edi
1825
	movl	0x200+des_SPtrans(%ecx),%ebp
1826
	xorl	%ebp,		%edi
1827
	movb	%dh,		%cl
1828
	shrl	$16,		%eax
1829
	movl	0x100+des_SPtrans(%ebx),%ebp
1830
	xorl	%ebp,		%edi
1831
	movb	%ah,		%bl
1832
	shrl	$16,		%edx
1833
	movl	0x300+des_SPtrans(%ecx),%ebp
1834
	xorl	%ebp,		%edi
1835
	movl	24(%esp),	%ebp
1836
	movb	%dh,		%cl
1837
	andl	$0xff,		%eax
1838
	andl	$0xff,		%edx
1839
	movl	0x600+des_SPtrans(%ebx),%ebx
1840
	xorl	%ebx,		%edi
1841
	movl	0x700+des_SPtrans(%ecx),%ebx
1842
	xorl	%ebx,		%edi
1843
	movl	0x400+des_SPtrans(%eax),%ebx
1844
	xorl	%ebx,		%edi
1845
	movl	0x500+des_SPtrans(%edx),%ebx
1846
	xorl	%ebx,		%edi
1847
1848
	/* Round 13 */
1849
	movl	104(%ebp),	%eax
1850
	xorl	%ebx,		%ebx
1851
	movl	108(%ebp),	%edx
1852
	xorl	%edi,		%eax
1853
	xorl	%edi,		%edx
1854
	andl	$0xfcfcfcfc,	%eax
1855
	andl	$0xcfcfcfcf,	%edx
1856
	movb	%al,		%bl
1857
	movb	%ah,		%cl
1858
	rorl	$4,		%edx
1859
	movl	      des_SPtrans(%ebx),%ebp
1860
	movb	%dl,		%bl
1861
	xorl	%ebp,		%esi
1862
	movl	0x200+des_SPtrans(%ecx),%ebp
1863
	xorl	%ebp,		%esi
1864
	movb	%dh,		%cl
1865
	shrl	$16,		%eax
1866
	movl	0x100+des_SPtrans(%ebx),%ebp
1867
	xorl	%ebp,		%esi
1868
	movb	%ah,		%bl
1869
	shrl	$16,		%edx
1870
	movl	0x300+des_SPtrans(%ecx),%ebp
1871
	xorl	%ebp,		%esi
1872
	movl	24(%esp),	%ebp
1873
	movb	%dh,		%cl
1874
	andl	$0xff,		%eax
1875
	andl	$0xff,		%edx
1876
	movl	0x600+des_SPtrans(%ebx),%ebx
1877
	xorl	%ebx,		%esi
1878
	movl	0x700+des_SPtrans(%ecx),%ebx
1879
	xorl	%ebx,		%esi
1880
	movl	0x400+des_SPtrans(%eax),%ebx
1881
	xorl	%ebx,		%esi
1882
	movl	0x500+des_SPtrans(%edx),%ebx
1883
	xorl	%ebx,		%esi
1884
1885
	/* Round 14 */
1886
	movl	112(%ebp),	%eax
1887
	xorl	%ebx,		%ebx
1888
	movl	116(%ebp),	%edx
1889
	xorl	%esi,		%eax
1890
	xorl	%esi,		%edx
1891
	andl	$0xfcfcfcfc,	%eax
1892
	andl	$0xcfcfcfcf,	%edx
1893
	movb	%al,		%bl
1894
	movb	%ah,		%cl
1895
	rorl	$4,		%edx
1896
	movl	      des_SPtrans(%ebx),%ebp
1897
	movb	%dl,		%bl
1898
	xorl	%ebp,		%edi
1899
	movl	0x200+des_SPtrans(%ecx),%ebp
1900
	xorl	%ebp,		%edi
1901
	movb	%dh,		%cl
1902
	shrl	$16,		%eax
1903
	movl	0x100+des_SPtrans(%ebx),%ebp
1904
	xorl	%ebp,		%edi
1905
	movb	%ah,		%bl
1906
	shrl	$16,		%edx
1907
	movl	0x300+des_SPtrans(%ecx),%ebp
1908
	xorl	%ebp,		%edi
1909
	movl	24(%esp),	%ebp
1910
	movb	%dh,		%cl
1911
	andl	$0xff,		%eax
1912
	andl	$0xff,		%edx
1913
	movl	0x600+des_SPtrans(%ebx),%ebx
1914
	xorl	%ebx,		%edi
1915
	movl	0x700+des_SPtrans(%ecx),%ebx
1916
	xorl	%ebx,		%edi
1917
	movl	0x400+des_SPtrans(%eax),%ebx
1918
	xorl	%ebx,		%edi
1919
	movl	0x500+des_SPtrans(%edx),%ebx
1920
	xorl	%ebx,		%edi
1921
1922
	/* Round 15 */
1923
	movl	120(%ebp),	%eax
1924
	xorl	%ebx,		%ebx
1925
	movl	124(%ebp),	%edx
1926
	xorl	%edi,		%eax
1927
	xorl	%edi,		%edx
1928
	andl	$0xfcfcfcfc,	%eax
1929
	andl	$0xcfcfcfcf,	%edx
1930
	movb	%al,		%bl
1931
	movb	%ah,		%cl
1932
	rorl	$4,		%edx
1933
	movl	      des_SPtrans(%ebx),%ebp
1934
	movb	%dl,		%bl
1935
	xorl	%ebp,		%esi
1936
	movl	0x200+des_SPtrans(%ecx),%ebp
1937
	xorl	%ebp,		%esi
1938
	movb	%dh,		%cl
1939
	shrl	$16,		%eax
1940
	movl	0x100+des_SPtrans(%ebx),%ebp
1941
	xorl	%ebp,		%esi
1942
	movb	%ah,		%bl
1943
	shrl	$16,		%edx
1944
	movl	0x300+des_SPtrans(%ecx),%ebp
1945
	xorl	%ebp,		%esi
1946
	movl	24(%esp),	%ebp
1947
	movb	%dh,		%cl
1948
	andl	$0xff,		%eax
1949
	andl	$0xff,		%edx
1950
	movl	0x600+des_SPtrans(%ebx),%ebx
1951
	xorl	%ebx,		%esi
1952
	movl	0x700+des_SPtrans(%ecx),%ebx
1953
	xorl	%ebx,		%esi
1954
	movl	0x400+des_SPtrans(%eax),%ebx
1955
	xorl	%ebx,		%esi
1956
	movl	0x500+des_SPtrans(%edx),%ebx
1957
	xorl	%ebx,		%esi
1958
	jmp	.L003end
1959
.L002start_decrypt:
1960
1961
	/* Round 15 */
1962
	movl	120(%ebp),	%eax
1963
	xorl	%ebx,		%ebx
1964
	movl	124(%ebp),	%edx
1965
	xorl	%esi,		%eax
1966
	xorl	%esi,		%edx
1967
	andl	$0xfcfcfcfc,	%eax
1968
	andl	$0xcfcfcfcf,	%edx
1969
	movb	%al,		%bl
1970
	movb	%ah,		%cl
1971
	rorl	$4,		%edx
1972
	movl	      des_SPtrans(%ebx),%ebp
1973
	movb	%dl,		%bl
1974
	xorl	%ebp,		%edi
1975
	movl	0x200+des_SPtrans(%ecx),%ebp
1976
	xorl	%ebp,		%edi
1977
	movb	%dh,		%cl
1978
	shrl	$16,		%eax
1979
	movl	0x100+des_SPtrans(%ebx),%ebp
1980
	xorl	%ebp,		%edi
1981
	movb	%ah,		%bl
1982
	shrl	$16,		%edx
1983
	movl	0x300+des_SPtrans(%ecx),%ebp
1984
	xorl	%ebp,		%edi
1985
	movl	24(%esp),	%ebp
1986
	movb	%dh,		%cl
1987
	andl	$0xff,		%eax
1988
	andl	$0xff,		%edx
1989
	movl	0x600+des_SPtrans(%ebx),%ebx
1990
	xorl	%ebx,		%edi
1991
	movl	0x700+des_SPtrans(%ecx),%ebx
1992
	xorl	%ebx,		%edi
1993
	movl	0x400+des_SPtrans(%eax),%ebx
1994
	xorl	%ebx,		%edi
1995
	movl	0x500+des_SPtrans(%edx),%ebx
1996
	xorl	%ebx,		%edi
1997
1998
	/* Round 14 */
1999
	movl	112(%ebp),	%eax
2000
	xorl	%ebx,		%ebx
2001
	movl	116(%ebp),	%edx
2002
	xorl	%edi,		%eax
2003
	xorl	%edi,		%edx
2004
	andl	$0xfcfcfcfc,	%eax
2005
	andl	$0xcfcfcfcf,	%edx
2006
	movb	%al,		%bl
2007
	movb	%ah,		%cl
2008
	rorl	$4,		%edx
2009
	movl	      des_SPtrans(%ebx),%ebp
2010
	movb	%dl,		%bl
2011
	xorl	%ebp,		%esi
2012
	movl	0x200+des_SPtrans(%ecx),%ebp
2013
	xorl	%ebp,		%esi
2014
	movb	%dh,		%cl
2015
	shrl	$16,		%eax
2016
	movl	0x100+des_SPtrans(%ebx),%ebp
2017
	xorl	%ebp,		%esi
2018
	movb	%ah,		%bl
2019
	shrl	$16,		%edx
2020
	movl	0x300+des_SPtrans(%ecx),%ebp
2021
	xorl	%ebp,		%esi
2022
	movl	24(%esp),	%ebp
2023
	movb	%dh,		%cl
2024
	andl	$0xff,		%eax
2025
	andl	$0xff,		%edx
2026
	movl	0x600+des_SPtrans(%ebx),%ebx
2027
	xorl	%ebx,		%esi
2028
	movl	0x700+des_SPtrans(%ecx),%ebx
2029
	xorl	%ebx,		%esi
2030
	movl	0x400+des_SPtrans(%eax),%ebx
2031
	xorl	%ebx,		%esi
2032
	movl	0x500+des_SPtrans(%edx),%ebx
2033
	xorl	%ebx,		%esi
2034
2035
	/* Round 13 */
2036
	movl	104(%ebp),	%eax
2037
	xorl	%ebx,		%ebx
2038
	movl	108(%ebp),	%edx
2039
	xorl	%esi,		%eax
2040
	xorl	%esi,		%edx
2041
	andl	$0xfcfcfcfc,	%eax
2042
	andl	$0xcfcfcfcf,	%edx
2043
	movb	%al,		%bl
2044
	movb	%ah,		%cl
2045
	rorl	$4,		%edx
2046
	movl	      des_SPtrans(%ebx),%ebp
2047
	movb	%dl,		%bl
2048
	xorl	%ebp,		%edi
2049
	movl	0x200+des_SPtrans(%ecx),%ebp
2050
	xorl	%ebp,		%edi
2051
	movb	%dh,		%cl
2052
	shrl	$16,		%eax
2053
	movl	0x100+des_SPtrans(%ebx),%ebp
2054
	xorl	%ebp,		%edi
2055
	movb	%ah,		%bl
2056
	shrl	$16,		%edx
2057
	movl	0x300+des_SPtrans(%ecx),%ebp
2058
	xorl	%ebp,		%edi
2059
	movl	24(%esp),	%ebp
2060
	movb	%dh,		%cl
2061
	andl	$0xff,		%eax
2062
	andl	$0xff,		%edx
2063
	movl	0x600+des_SPtrans(%ebx),%ebx
2064
	xorl	%ebx,		%edi
2065
	movl	0x700+des_SPtrans(%ecx),%ebx
2066
	xorl	%ebx,		%edi
2067
	movl	0x400+des_SPtrans(%eax),%ebx
2068
	xorl	%ebx,		%edi
2069
	movl	0x500+des_SPtrans(%edx),%ebx
2070
	xorl	%ebx,		%edi
2071
2072
	/* Round 12 */
2073
	movl	96(%ebp),	%eax
2074
	xorl	%ebx,		%ebx
2075
	movl	100(%ebp),	%edx
2076
	xorl	%edi,		%eax
2077
	xorl	%edi,		%edx
2078
	andl	$0xfcfcfcfc,	%eax
2079
	andl	$0xcfcfcfcf,	%edx
2080
	movb	%al,		%bl
2081
	movb	%ah,		%cl
2082
	rorl	$4,		%edx
2083
	movl	      des_SPtrans(%ebx),%ebp
2084
	movb	%dl,		%bl
2085
	xorl	%ebp,		%esi
2086
	movl	0x200+des_SPtrans(%ecx),%ebp
2087
	xorl	%ebp,		%esi
2088
	movb	%dh,		%cl
2089
	shrl	$16,		%eax
2090
	movl	0x100+des_SPtrans(%ebx),%ebp
2091
	xorl	%ebp,		%esi
2092
	movb	%ah,		%bl
2093
	shrl	$16,		%edx
2094
	movl	0x300+des_SPtrans(%ecx),%ebp
2095
	xorl	%ebp,		%esi
2096
	movl	24(%esp),	%ebp
2097
	movb	%dh,		%cl
2098
	andl	$0xff,		%eax
2099
	andl	$0xff,		%edx
2100
	movl	0x600+des_SPtrans(%ebx),%ebx
2101
	xorl	%ebx,		%esi
2102
	movl	0x700+des_SPtrans(%ecx),%ebx
2103
	xorl	%ebx,		%esi
2104
	movl	0x400+des_SPtrans(%eax),%ebx
2105
	xorl	%ebx,		%esi
2106
	movl	0x500+des_SPtrans(%edx),%ebx
2107
	xorl	%ebx,		%esi
2108
2109
	/* Round 11 */
2110
	movl	88(%ebp),	%eax
2111
	xorl	%ebx,		%ebx
2112
	movl	92(%ebp),	%edx
2113
	xorl	%esi,		%eax
2114
	xorl	%esi,		%edx
2115
	andl	$0xfcfcfcfc,	%eax
2116
	andl	$0xcfcfcfcf,	%edx
2117
	movb	%al,		%bl
2118
	movb	%ah,		%cl
2119
	rorl	$4,		%edx
2120
	movl	      des_SPtrans(%ebx),%ebp
2121
	movb	%dl,		%bl
2122
	xorl	%ebp,		%edi
2123
	movl	0x200+des_SPtrans(%ecx),%ebp
2124
	xorl	%ebp,		%edi
2125
	movb	%dh,		%cl
2126
	shrl	$16,		%eax
2127
	movl	0x100+des_SPtrans(%ebx),%ebp
2128
	xorl	%ebp,		%edi
2129
	movb	%ah,		%bl
2130
	shrl	$16,		%edx
2131
	movl	0x300+des_SPtrans(%ecx),%ebp
2132
	xorl	%ebp,		%edi
2133
	movl	24(%esp),	%ebp
2134
	movb	%dh,		%cl
2135
	andl	$0xff,		%eax
2136
	andl	$0xff,		%edx
2137
	movl	0x600+des_SPtrans(%ebx),%ebx
2138
	xorl	%ebx,		%edi
2139
	movl	0x700+des_SPtrans(%ecx),%ebx
2140
	xorl	%ebx,		%edi
2141
	movl	0x400+des_SPtrans(%eax),%ebx
2142
	xorl	%ebx,		%edi
2143
	movl	0x500+des_SPtrans(%edx),%ebx
2144
	xorl	%ebx,		%edi
2145
2146
	/* Round 10 */
2147
	movl	80(%ebp),	%eax
2148
	xorl	%ebx,		%ebx
2149
	movl	84(%ebp),	%edx
2150
	xorl	%edi,		%eax
2151
	xorl	%edi,		%edx
2152
	andl	$0xfcfcfcfc,	%eax
2153
	andl	$0xcfcfcfcf,	%edx
2154
	movb	%al,		%bl
2155
	movb	%ah,		%cl
2156
	rorl	$4,		%edx
2157
	movl	      des_SPtrans(%ebx),%ebp
2158
	movb	%dl,		%bl
2159
	xorl	%ebp,		%esi
2160
	movl	0x200+des_SPtrans(%ecx),%ebp
2161
	xorl	%ebp,		%esi
2162
	movb	%dh,		%cl
2163
	shrl	$16,		%eax
2164
	movl	0x100+des_SPtrans(%ebx),%ebp
2165
	xorl	%ebp,		%esi
2166
	movb	%ah,		%bl
2167
	shrl	$16,		%edx
2168
	movl	0x300+des_SPtrans(%ecx),%ebp
2169
	xorl	%ebp,		%esi
2170
	movl	24(%esp),	%ebp
2171
	movb	%dh,		%cl
2172
	andl	$0xff,		%eax
2173
	andl	$0xff,		%edx
2174
	movl	0x600+des_SPtrans(%ebx),%ebx
2175
	xorl	%ebx,		%esi
2176
	movl	0x700+des_SPtrans(%ecx),%ebx
2177
	xorl	%ebx,		%esi
2178
	movl	0x400+des_SPtrans(%eax),%ebx
2179
	xorl	%ebx,		%esi
2180
	movl	0x500+des_SPtrans(%edx),%ebx
2181
	xorl	%ebx,		%esi
2182
2183
	/* Round 9 */
2184
	movl	72(%ebp),	%eax
2185
	xorl	%ebx,		%ebx
2186
	movl	76(%ebp),	%edx
2187
	xorl	%esi,		%eax
2188
	xorl	%esi,		%edx
2189
	andl	$0xfcfcfcfc,	%eax
2190
	andl	$0xcfcfcfcf,	%edx
2191
	movb	%al,		%bl
2192
	movb	%ah,		%cl
2193
	rorl	$4,		%edx
2194
	movl	      des_SPtrans(%ebx),%ebp
2195
	movb	%dl,		%bl
2196
	xorl	%ebp,		%edi
2197
	movl	0x200+des_SPtrans(%ecx),%ebp
2198
	xorl	%ebp,		%edi
2199
	movb	%dh,		%cl
2200
	shrl	$16,		%eax
2201
	movl	0x100+des_SPtrans(%ebx),%ebp
2202
	xorl	%ebp,		%edi
2203
	movb	%ah,		%bl
2204
	shrl	$16,		%edx
2205
	movl	0x300+des_SPtrans(%ecx),%ebp
2206
	xorl	%ebp,		%edi
2207
	movl	24(%esp),	%ebp
2208
	movb	%dh,		%cl
2209
	andl	$0xff,		%eax
2210
	andl	$0xff,		%edx
2211
	movl	0x600+des_SPtrans(%ebx),%ebx
2212
	xorl	%ebx,		%edi
2213
	movl	0x700+des_SPtrans(%ecx),%ebx
2214
	xorl	%ebx,		%edi
2215
	movl	0x400+des_SPtrans(%eax),%ebx
2216
	xorl	%ebx,		%edi
2217
	movl	0x500+des_SPtrans(%edx),%ebx
2218
	xorl	%ebx,		%edi
2219
2220
	/* Round 8 */
2221
	movl	64(%ebp),	%eax
2222
	xorl	%ebx,		%ebx
2223
	movl	68(%ebp),	%edx
2224
	xorl	%edi,		%eax
2225
	xorl	%edi,		%edx
2226
	andl	$0xfcfcfcfc,	%eax
2227
	andl	$0xcfcfcfcf,	%edx
2228
	movb	%al,		%bl
2229
	movb	%ah,		%cl
2230
	rorl	$4,		%edx
2231
	movl	      des_SPtrans(%ebx),%ebp
2232
	movb	%dl,		%bl
2233
	xorl	%ebp,		%esi
2234
	movl	0x200+des_SPtrans(%ecx),%ebp
2235
	xorl	%ebp,		%esi
2236
	movb	%dh,		%cl
2237
	shrl	$16,		%eax
2238
	movl	0x100+des_SPtrans(%ebx),%ebp
2239
	xorl	%ebp,		%esi
2240
	movb	%ah,		%bl
2241
	shrl	$16,		%edx
2242
	movl	0x300+des_SPtrans(%ecx),%ebp
2243
	xorl	%ebp,		%esi
2244
	movl	24(%esp),	%ebp
2245
	movb	%dh,		%cl
2246
	andl	$0xff,		%eax
2247
	andl	$0xff,		%edx
2248
	movl	0x600+des_SPtrans(%ebx),%ebx
2249
	xorl	%ebx,		%esi
2250
	movl	0x700+des_SPtrans(%ecx),%ebx
2251
	xorl	%ebx,		%esi
2252
	movl	0x400+des_SPtrans(%eax),%ebx
2253
	xorl	%ebx,		%esi
2254
	movl	0x500+des_SPtrans(%edx),%ebx
2255
	xorl	%ebx,		%esi
2256
2257
	/* Round 7 */
2258
	movl	56(%ebp),	%eax
2259
	xorl	%ebx,		%ebx
2260
	movl	60(%ebp),	%edx
2261
	xorl	%esi,		%eax
2262
	xorl	%esi,		%edx
2263
	andl	$0xfcfcfcfc,	%eax
2264
	andl	$0xcfcfcfcf,	%edx
2265
	movb	%al,		%bl
2266
	movb	%ah,		%cl
2267
	rorl	$4,		%edx
2268
	movl	      des_SPtrans(%ebx),%ebp
2269
	movb	%dl,		%bl
2270
	xorl	%ebp,		%edi
2271
	movl	0x200+des_SPtrans(%ecx),%ebp
2272
	xorl	%ebp,		%edi
2273
	movb	%dh,		%cl
2274
	shrl	$16,		%eax
2275
	movl	0x100+des_SPtrans(%ebx),%ebp
2276
	xorl	%ebp,		%edi
2277
	movb	%ah,		%bl
2278
	shrl	$16,		%edx
2279
	movl	0x300+des_SPtrans(%ecx),%ebp
2280
	xorl	%ebp,		%edi
2281
	movl	24(%esp),	%ebp
2282
	movb	%dh,		%cl
2283
	andl	$0xff,		%eax
2284
	andl	$0xff,		%edx
2285
	movl	0x600+des_SPtrans(%ebx),%ebx
2286
	xorl	%ebx,		%edi
2287
	movl	0x700+des_SPtrans(%ecx),%ebx
2288
	xorl	%ebx,		%edi
2289
	movl	0x400+des_SPtrans(%eax),%ebx
2290
	xorl	%ebx,		%edi
2291
	movl	0x500+des_SPtrans(%edx),%ebx
2292
	xorl	%ebx,		%edi
2293
2294
	/* Round 6 */
2295
	movl	48(%ebp),	%eax
2296
	xorl	%ebx,		%ebx
2297
	movl	52(%ebp),	%edx
2298
	xorl	%edi,		%eax
2299
	xorl	%edi,		%edx
2300
	andl	$0xfcfcfcfc,	%eax
2301
	andl	$0xcfcfcfcf,	%edx
2302
	movb	%al,		%bl
2303
	movb	%ah,		%cl
2304
	rorl	$4,		%edx
2305
	movl	      des_SPtrans(%ebx),%ebp
2306
	movb	%dl,		%bl
2307
	xorl	%ebp,		%esi
2308
	movl	0x200+des_SPtrans(%ecx),%ebp
2309
	xorl	%ebp,		%esi
2310
	movb	%dh,		%cl
2311
	shrl	$16,		%eax
2312
	movl	0x100+des_SPtrans(%ebx),%ebp
2313
	xorl	%ebp,		%esi
2314
	movb	%ah,		%bl
2315
	shrl	$16,		%edx
2316
	movl	0x300+des_SPtrans(%ecx),%ebp
2317
	xorl	%ebp,		%esi
2318
	movl	24(%esp),	%ebp
2319
	movb	%dh,		%cl
2320
	andl	$0xff,		%eax
2321
	andl	$0xff,		%edx
2322
	movl	0x600+des_SPtrans(%ebx),%ebx
2323
	xorl	%ebx,		%esi
2324
	movl	0x700+des_SPtrans(%ecx),%ebx
2325
	xorl	%ebx,		%esi
2326
	movl	0x400+des_SPtrans(%eax),%ebx
2327
	xorl	%ebx,		%esi
2328
	movl	0x500+des_SPtrans(%edx),%ebx
2329
	xorl	%ebx,		%esi
2330
2331
	/* Round 5 */
2332
	movl	40(%ebp),	%eax
2333
	xorl	%ebx,		%ebx
2334
	movl	44(%ebp),	%edx
2335
	xorl	%esi,		%eax
2336
	xorl	%esi,		%edx
2337
	andl	$0xfcfcfcfc,	%eax
2338
	andl	$0xcfcfcfcf,	%edx
2339
	movb	%al,		%bl
2340
	movb	%ah,		%cl
2341
	rorl	$4,		%edx
2342
	movl	      des_SPtrans(%ebx),%ebp
2343
	movb	%dl,		%bl
2344
	xorl	%ebp,		%edi
2345
	movl	0x200+des_SPtrans(%ecx),%ebp
2346
	xorl	%ebp,		%edi
2347
	movb	%dh,		%cl
2348
	shrl	$16,		%eax
2349
	movl	0x100+des_SPtrans(%ebx),%ebp
2350
	xorl	%ebp,		%edi
2351
	movb	%ah,		%bl
2352
	shrl	$16,		%edx
2353
	movl	0x300+des_SPtrans(%ecx),%ebp
2354
	xorl	%ebp,		%edi
2355
	movl	24(%esp),	%ebp
2356
	movb	%dh,		%cl
2357
	andl	$0xff,		%eax
2358
	andl	$0xff,		%edx
2359
	movl	0x600+des_SPtrans(%ebx),%ebx
2360
	xorl	%ebx,		%edi
2361
	movl	0x700+des_SPtrans(%ecx),%ebx
2362
	xorl	%ebx,		%edi
2363
	movl	0x400+des_SPtrans(%eax),%ebx
2364
	xorl	%ebx,		%edi
2365
	movl	0x500+des_SPtrans(%edx),%ebx
2366
	xorl	%ebx,		%edi
2367
2368
	/* Round 4 */
2369
	movl	32(%ebp),	%eax
2370
	xorl	%ebx,		%ebx
2371
	movl	36(%ebp),	%edx
2372
	xorl	%edi,		%eax
2373
	xorl	%edi,		%edx
2374
	andl	$0xfcfcfcfc,	%eax
2375
	andl	$0xcfcfcfcf,	%edx
2376
	movb	%al,		%bl
2377
	movb	%ah,		%cl
2378
	rorl	$4,		%edx
2379
	movl	      des_SPtrans(%ebx),%ebp
2380
	movb	%dl,		%bl
2381
	xorl	%ebp,		%esi
2382
	movl	0x200+des_SPtrans(%ecx),%ebp
2383
	xorl	%ebp,		%esi
2384
	movb	%dh,		%cl
2385
	shrl	$16,		%eax
2386
	movl	0x100+des_SPtrans(%ebx),%ebp
2387
	xorl	%ebp,		%esi
2388
	movb	%ah,		%bl
2389
	shrl	$16,		%edx
2390
	movl	0x300+des_SPtrans(%ecx),%ebp
2391
	xorl	%ebp,		%esi
2392
	movl	24(%esp),	%ebp
2393
	movb	%dh,		%cl
2394
	andl	$0xff,		%eax
2395
	andl	$0xff,		%edx
2396
	movl	0x600+des_SPtrans(%ebx),%ebx
2397
	xorl	%ebx,		%esi
2398
	movl	0x700+des_SPtrans(%ecx),%ebx
2399
	xorl	%ebx,		%esi
2400
	movl	0x400+des_SPtrans(%eax),%ebx
2401
	xorl	%ebx,		%esi
2402
	movl	0x500+des_SPtrans(%edx),%ebx
2403
	xorl	%ebx,		%esi
2404
2405
	/* Round 3 */
2406
	movl	24(%ebp),	%eax
2407
	xorl	%ebx,		%ebx
2408
	movl	28(%ebp),	%edx
2409
	xorl	%esi,		%eax
2410
	xorl	%esi,		%edx
2411
	andl	$0xfcfcfcfc,	%eax
2412
	andl	$0xcfcfcfcf,	%edx
2413
	movb	%al,		%bl
2414
	movb	%ah,		%cl
2415
	rorl	$4,		%edx
2416
	movl	      des_SPtrans(%ebx),%ebp
2417
	movb	%dl,		%bl
2418
	xorl	%ebp,		%edi
2419
	movl	0x200+des_SPtrans(%ecx),%ebp
2420
	xorl	%ebp,		%edi
2421
	movb	%dh,		%cl
2422
	shrl	$16,		%eax
2423
	movl	0x100+des_SPtrans(%ebx),%ebp
2424
	xorl	%ebp,		%edi
2425
	movb	%ah,		%bl
2426
	shrl	$16,		%edx
2427
	movl	0x300+des_SPtrans(%ecx),%ebp
2428
	xorl	%ebp,		%edi
2429
	movl	24(%esp),	%ebp
2430
	movb	%dh,		%cl
2431
	andl	$0xff,		%eax
2432
	andl	$0xff,		%edx
2433
	movl	0x600+des_SPtrans(%ebx),%ebx
2434
	xorl	%ebx,		%edi
2435
	movl	0x700+des_SPtrans(%ecx),%ebx
2436
	xorl	%ebx,		%edi
2437
	movl	0x400+des_SPtrans(%eax),%ebx
2438
	xorl	%ebx,		%edi
2439
	movl	0x500+des_SPtrans(%edx),%ebx
2440
	xorl	%ebx,		%edi
2441
2442
	/* Round 2 */
2443
	movl	16(%ebp),	%eax
2444
	xorl	%ebx,		%ebx
2445
	movl	20(%ebp),	%edx
2446
	xorl	%edi,		%eax
2447
	xorl	%edi,		%edx
2448
	andl	$0xfcfcfcfc,	%eax
2449
	andl	$0xcfcfcfcf,	%edx
2450
	movb	%al,		%bl
2451
	movb	%ah,		%cl
2452
	rorl	$4,		%edx
2453
	movl	      des_SPtrans(%ebx),%ebp
2454
	movb	%dl,		%bl
2455
	xorl	%ebp,		%esi
2456
	movl	0x200+des_SPtrans(%ecx),%ebp
2457
	xorl	%ebp,		%esi
2458
	movb	%dh,		%cl
2459
	shrl	$16,		%eax
2460
	movl	0x100+des_SPtrans(%ebx),%ebp
2461
	xorl	%ebp,		%esi
2462
	movb	%ah,		%bl
2463
	shrl	$16,		%edx
2464
	movl	0x300+des_SPtrans(%ecx),%ebp
2465
	xorl	%ebp,		%esi
2466
	movl	24(%esp),	%ebp
2467
	movb	%dh,		%cl
2468
	andl	$0xff,		%eax
2469
	andl	$0xff,		%edx
2470
	movl	0x600+des_SPtrans(%ebx),%ebx
2471
	xorl	%ebx,		%esi
2472
	movl	0x700+des_SPtrans(%ecx),%ebx
2473
	xorl	%ebx,		%esi
2474
	movl	0x400+des_SPtrans(%eax),%ebx
2475
	xorl	%ebx,		%esi
2476
	movl	0x500+des_SPtrans(%edx),%ebx
2477
	xorl	%ebx,		%esi
2478
2479
	/* Round 1 */
2480
	movl	8(%ebp),	%eax
2481
	xorl	%ebx,		%ebx
2482
	movl	12(%ebp),	%edx
2483
	xorl	%esi,		%eax
2484
	xorl	%esi,		%edx
2485
	andl	$0xfcfcfcfc,	%eax
2486
	andl	$0xcfcfcfcf,	%edx
2487
	movb	%al,		%bl
2488
	movb	%ah,		%cl
2489
	rorl	$4,		%edx
2490
	movl	      des_SPtrans(%ebx),%ebp
2491
	movb	%dl,		%bl
2492
	xorl	%ebp,		%edi
2493
	movl	0x200+des_SPtrans(%ecx),%ebp
2494
	xorl	%ebp,		%edi
2495
	movb	%dh,		%cl
2496
	shrl	$16,		%eax
2497
	movl	0x100+des_SPtrans(%ebx),%ebp
2498
	xorl	%ebp,		%edi
2499
	movb	%ah,		%bl
2500
	shrl	$16,		%edx
2501
	movl	0x300+des_SPtrans(%ecx),%ebp
2502
	xorl	%ebp,		%edi
2503
	movl	24(%esp),	%ebp
2504
	movb	%dh,		%cl
2505
	andl	$0xff,		%eax
2506
	andl	$0xff,		%edx
2507
	movl	0x600+des_SPtrans(%ebx),%ebx
2508
	xorl	%ebx,		%edi
2509
	movl	0x700+des_SPtrans(%ecx),%ebx
2510
	xorl	%ebx,		%edi
2511
	movl	0x400+des_SPtrans(%eax),%ebx
2512
	xorl	%ebx,		%edi
2513
	movl	0x500+des_SPtrans(%edx),%ebx
2514
	xorl	%ebx,		%edi
2515
2516
	/* Round 0 */
2517
	movl	(%ebp),		%eax
2518
	xorl	%ebx,		%ebx
2519
	movl	4(%ebp),	%edx
2520
	xorl	%edi,		%eax
2521
	xorl	%edi,		%edx
2522
	andl	$0xfcfcfcfc,	%eax
2523
	andl	$0xcfcfcfcf,	%edx
2524
	movb	%al,		%bl
2525
	movb	%ah,		%cl
2526
	rorl	$4,		%edx
2527
	movl	      des_SPtrans(%ebx),%ebp
2528
	movb	%dl,		%bl
2529
	xorl	%ebp,		%esi
2530
	movl	0x200+des_SPtrans(%ecx),%ebp
2531
	xorl	%ebp,		%esi
2532
	movb	%dh,		%cl
2533
	shrl	$16,		%eax
2534
	movl	0x100+des_SPtrans(%ebx),%ebp
2535
	xorl	%ebp,		%esi
2536
	movb	%ah,		%bl
2537
	shrl	$16,		%edx
2538
	movl	0x300+des_SPtrans(%ecx),%ebp
2539
	xorl	%ebp,		%esi
2540
	movl	24(%esp),	%ebp
2541
	movb	%dh,		%cl
2542
	andl	$0xff,		%eax
2543
	andl	$0xff,		%edx
2544
	movl	0x600+des_SPtrans(%ebx),%ebx
2545
	xorl	%ebx,		%esi
2546
	movl	0x700+des_SPtrans(%ecx),%ebx
2547
	xorl	%ebx,		%esi
2548
	movl	0x400+des_SPtrans(%eax),%ebx
2549
	xorl	%ebx,		%esi
2550
	movl	0x500+des_SPtrans(%edx),%ebx
2551
	xorl	%ebx,		%esi
2552
.L003end:
2553
2554
	/* Fixup */
2555
	rorl	$3,		%edi
2556
	movl	20(%esp),	%eax
2557
	rorl	$3,		%esi
2558
	movl	%edi,		(%eax)
2559
	movl	%esi,		4(%eax)
2560
	popl	%ebp
2561
	popl	%ebx
2562
	popl	%edi
2563
	popl	%esi
2564
	ret
2565
.des_encrypt2_end:
2566
	SIZE(des_encrypt2,.des_encrypt2_end-des_encrypt2)
2567
.ident	"desasm.pl"
2568
.text
2569
	.align ALIGN
2570
.globl des_encrypt3
2571
	TYPE(des_encrypt3,@function)
2572
des_encrypt3:
2573
	pushl	%ebx
2574
	movl	8(%esp),	%ebx
2575
	pushl	%ebp
2576
	pushl	%esi
2577
	pushl	%edi
2578
2579
	/* Load the data words */
2580
	movl	(%ebx),		%edi
2581
	movl	4(%ebx),	%esi
2582
	subl	$12,		%esp
2583
2584
	/* IP */
2585
	roll	$4,		%edi
2586
	movl	%edi,		%edx
2587
	xorl	%esi,		%edi
2588
	andl	$0xf0f0f0f0,	%edi
2589
	xorl	%edi,		%edx
2590
	xorl	%edi,		%esi
2591
2592
	roll	$20,		%esi
2593
	movl	%esi,		%edi
2594
	xorl	%edx,		%esi
2595
	andl	$0xfff0000f,	%esi
2596
	xorl	%esi,		%edi
2597
	xorl	%esi,		%edx
2598
2599
	roll	$14,		%edi
2600
	movl	%edi,		%esi
2601
	xorl	%edx,		%edi
2602
	andl	$0x33333333,	%edi
2603
	xorl	%edi,		%esi
2604
	xorl	%edi,		%edx
2605
2606
	roll	$22,		%edx
2607
	movl	%edx,		%edi
2608
	xorl	%esi,		%edx
2609
	andl	$0x03fc03fc,	%edx
2610
	xorl	%edx,		%edi
2611
	xorl	%edx,		%esi
2612
2613
	roll	$9,		%edi
2614
	movl	%edi,		%edx
2615
	xorl	%esi,		%edi
2616
	andl	$0xaaaaaaaa,	%edi
2617
	xorl	%edi,		%edx
2618
	xorl	%edi,		%esi
2619
2620
	rorl	$3,		%edx
2621
	rorl	$2,		%esi
2622
	movl	%esi,		4(%ebx)
2623
	movl	36(%esp),	%eax
2624
	movl	%edx,		(%ebx)
2625
	movl	40(%esp),	%edi
2626
	movl	44(%esp),	%esi
2627
	movl	$1,		8(%esp)
2628
	movl	%eax,		4(%esp)
2629
	movl	%ebx,		(%esp)
2630
	call	des_encrypt2
2631
	movl	$0,		8(%esp)
2632
	movl	%edi,		4(%esp)
2633
	movl	%ebx,		(%esp)
2634
	call	des_encrypt2
2635
	movl	$1,		8(%esp)
2636
	movl	%esi,		4(%esp)
2637
	movl	%ebx,		(%esp)
2638
	call	des_encrypt2
2639
	addl	$12,		%esp
2640
	movl	(%ebx),		%edi
2641
	movl	4(%ebx),	%esi
2642
2643
	/* FP */
2644
	roll	$2,		%esi
2645
	roll	$3,		%edi
2646
	movl	%edi,		%eax
2647
	xorl	%esi,		%edi
2648
	andl	$0xaaaaaaaa,	%edi
2649
	xorl	%edi,		%eax
2650
	xorl	%edi,		%esi
2651
2652
	roll	$23,		%eax
2653
	movl	%eax,		%edi
2654
	xorl	%esi,		%eax
2655
	andl	$0x03fc03fc,	%eax
2656
	xorl	%eax,		%edi
2657
	xorl	%eax,		%esi
2658
2659
	roll	$10,		%edi
2660
	movl	%edi,		%eax
2661
	xorl	%esi,		%edi
2662
	andl	$0x33333333,	%edi
2663
	xorl	%edi,		%eax
2664
	xorl	%edi,		%esi
2665
2666
	roll	$18,		%esi
2667
	movl	%esi,		%edi
2668
	xorl	%eax,		%esi
2669
	andl	$0xfff0000f,	%esi
2670
	xorl	%esi,		%edi
2671
	xorl	%esi,		%eax
2672
2673
	roll	$12,		%edi
2674
	movl	%edi,		%esi
2675
	xorl	%eax,		%edi
2676
	andl	$0xf0f0f0f0,	%edi
2677
	xorl	%edi,		%esi
2678
	xorl	%edi,		%eax
2679
2680
	rorl	$4,		%eax
2681
	movl	%eax,		(%ebx)
2682
	movl	%esi,		4(%ebx)
2683
	popl	%edi
2684
	popl	%esi
2685
	popl	%ebp
2686
	popl	%ebx
2687
	ret
2688
.des_encrypt3_end:
2689
	SIZE(des_encrypt3,.des_encrypt3_end-des_encrypt3)
2690
.ident	"desasm.pl"
2691
.text
2692
	.align ALIGN
2693
.globl des_decrypt3
2694
	TYPE(des_decrypt3,@function)
2695
des_decrypt3:
2696
	pushl	%ebx
2697
	movl	8(%esp),	%ebx
2698
	pushl	%ebp
2699
	pushl	%esi
2700
	pushl	%edi
2701
2702
	/* Load the data words */
2703
	movl	(%ebx),		%edi
2704
	movl	4(%ebx),	%esi
2705
	subl	$12,		%esp
2706
2707
	/* IP */
2708
	roll	$4,		%edi
2709
	movl	%edi,		%edx
2710
	xorl	%esi,		%edi
2711
	andl	$0xf0f0f0f0,	%edi
2712
	xorl	%edi,		%edx
2713
	xorl	%edi,		%esi
2714
2715
	roll	$20,		%esi
2716
	movl	%esi,		%edi
2717
	xorl	%edx,		%esi
2718
	andl	$0xfff0000f,	%esi
2719
	xorl	%esi,		%edi
2720
	xorl	%esi,		%edx
2721
2722
	roll	$14,		%edi
2723
	movl	%edi,		%esi
2724
	xorl	%edx,		%edi
2725
	andl	$0x33333333,	%edi
2726
	xorl	%edi,		%esi
2727
	xorl	%edi,		%edx
2728
2729
	roll	$22,		%edx
2730
	movl	%edx,		%edi
2731
	xorl	%esi,		%edx
2732
	andl	$0x03fc03fc,	%edx
2733
	xorl	%edx,		%edi
2734
	xorl	%edx,		%esi
2735
2736
	roll	$9,		%edi
2737
	movl	%edi,		%edx
2738
	xorl	%esi,		%edi
2739
	andl	$0xaaaaaaaa,	%edi
2740
	xorl	%edi,		%edx
2741
	xorl	%edi,		%esi
2742
2743
	rorl	$3,		%edx
2744
	rorl	$2,		%esi
2745
	movl	%esi,		4(%ebx)
2746
	movl	36(%esp),	%esi
2747
	movl	%edx,		(%ebx)
2748
	movl	40(%esp),	%edi
2749
	movl	44(%esp),	%eax
2750
	movl	$0,		8(%esp)
2751
	movl	%eax,		4(%esp)
2752
	movl	%ebx,		(%esp)
2753
	call	des_encrypt2
2754
	movl	$1,		8(%esp)
2755
	movl	%edi,		4(%esp)
2756
	movl	%ebx,		(%esp)
2757
	call	des_encrypt2
2758
	movl	$0,		8(%esp)
2759
	movl	%esi,		4(%esp)
2760
	movl	%ebx,		(%esp)
2761
	call	des_encrypt2
2762
	addl	$12,		%esp
2763
	movl	(%ebx),		%edi
2764
	movl	4(%ebx),	%esi
2765
2766
	/* FP */
2767
	roll	$2,		%esi
2768
	roll	$3,		%edi
2769
	movl	%edi,		%eax
2770
	xorl	%esi,		%edi
2771
	andl	$0xaaaaaaaa,	%edi
2772
	xorl	%edi,		%eax
2773
	xorl	%edi,		%esi
2774
2775
	roll	$23,		%eax
2776
	movl	%eax,		%edi
2777
	xorl	%esi,		%eax
2778
	andl	$0x03fc03fc,	%eax
2779
	xorl	%eax,		%edi
2780
	xorl	%eax,		%esi
2781
2782
	roll	$10,		%edi
2783
	movl	%edi,		%eax
2784
	xorl	%esi,		%edi
2785
	andl	$0x33333333,	%edi
2786
	xorl	%edi,		%eax
2787
	xorl	%edi,		%esi
2788
2789
	roll	$18,		%esi
2790
	movl	%esi,		%edi
2791
	xorl	%eax,		%esi
2792
	andl	$0xfff0000f,	%esi
2793
	xorl	%esi,		%edi
2794
	xorl	%esi,		%eax
2795
2796
	roll	$12,		%edi
2797
	movl	%edi,		%esi
2798
	xorl	%eax,		%edi
2799
	andl	$0xf0f0f0f0,	%edi
2800
	xorl	%edi,		%esi
2801
	xorl	%edi,		%eax
2802
2803
	rorl	$4,		%eax
2804
	movl	%eax,		(%ebx)
2805
	movl	%esi,		4(%ebx)
2806
	popl	%edi
2807
	popl	%esi
2808
	popl	%ebp
2809
	popl	%ebx
2810
	ret
2811
.des_decrypt3_end:
2812
	SIZE(des_decrypt3,.des_decrypt3_end-des_decrypt3)
2813
.ident	"desasm.pl"
2814
.text
2815
	.align ALIGN
2816
.globl des_ncbc_encrypt
2817
	TYPE(des_ncbc_encrypt,@function)
2818
des_ncbc_encrypt:
2819
2820
	pushl	%ebp
2821
	pushl	%ebx
2822
	pushl	%esi
2823
	pushl	%edi
2824
	movl	28(%esp),	%ebp
2825
	/* getting iv ptr from parameter 4 */
2826
	movl	36(%esp),	%ebx
2827
	movl	(%ebx),		%esi
2828
	movl	4(%ebx),	%edi
2829
	pushl	%edi
2830
	pushl	%esi
2831
	pushl	%edi
2832
	pushl	%esi
2833
	movl	%esp,		%ebx
2834
	movl	36(%esp),	%esi
2835
	movl	40(%esp),	%edi
2836
	/* getting encrypt flag from parameter 5 */
2837
	movl	56(%esp),	%ecx
2838
	/* get and push parameter 5 */
2839
	pushl	%ecx
2840
	/* get and push parameter 3 */
2841
	movl	52(%esp),	%eax
2842
	pushl	%eax
2843
	pushl	%ebx
2844
	cmpl	$0,		%ecx
2845
	jz	.L004decrypt
2846
	andl	$4294967288,	%ebp
2847
	movl	12(%esp),	%eax
2848
	movl	16(%esp),	%ebx
2849
	jz	.L005encrypt_finish
2850
.L006encrypt_loop:
2851
	movl	(%esi),		%ecx
2852
	movl	4(%esi),	%edx
2853
	xorl	%ecx,		%eax
2854
	xorl	%edx,		%ebx
2855
	movl	%eax,		12(%esp)
2856
	movl	%ebx,		16(%esp)
2857
	call	des_encrypt
2858
	movl	12(%esp),	%eax
2859
	movl	16(%esp),	%ebx
2860
	movl	%eax,		(%edi)
2861
	movl	%ebx,		4(%edi)
2862
	addl	$8,		%esi
2863
	addl	$8,		%edi
2864
	subl	$8,		%ebp
2865
	jnz	.L006encrypt_loop
2866
.L005encrypt_finish:
2867
	movl	56(%esp),	%ebp
2868
	andl	$7,		%ebp
2869
	jz	.L007finish
2870
	xorl	%ecx,		%ecx
2871
	xorl	%edx,		%edx
2872
	movl	.L008cbc_enc_jmp_table(,%ebp,4),%ebp
2873
	jmp	*%ebp
2874
.L009ej7:
2875
	movb	6(%esi),	%dh
2876
	sall	$8,		%edx
2877
.L010ej6:
2878
	movb	5(%esi),	%dh
2879
.L011ej5:
2880
	movb	4(%esi),	%dl
2881
.L012ej4:
2882
	movl	(%esi),		%ecx
2883
	jmp	.L013ejend
2884
.L014ej3:
2885
	movb	2(%esi),	%ch
2886
	sall	$8,		%ecx
2887
.L015ej2:
2888
	movb	1(%esi),	%ch
2889
.L016ej1:
2890
	movb	(%esi),		%cl
2891
.L013ejend:
2892
	xorl	%ecx,		%eax
2893
	xorl	%edx,		%ebx
2894
	movl	%eax,		12(%esp)
2895
	movl	%ebx,		16(%esp)
2896
	call	des_encrypt
2897
	movl	12(%esp),	%eax
2898
	movl	16(%esp),	%ebx
2899
	movl	%eax,		(%edi)
2900
	movl	%ebx,		4(%edi)
2901
	jmp	.L007finish
2902
.align ALIGN
2903
.L004decrypt:
2904
	andl	$4294967288,	%ebp
2905
	movl	20(%esp),	%eax
2906
	movl	24(%esp),	%ebx
2907
	jz	.L017decrypt_finish
2908
.L018decrypt_loop:
2909
	movl	(%esi),		%eax
2910
	movl	4(%esi),	%ebx
2911
	movl	%eax,		12(%esp)
2912
	movl	%ebx,		16(%esp)
2913
	call	des_encrypt
2914
	movl	12(%esp),	%eax
2915
	movl	16(%esp),	%ebx
2916
	movl	20(%esp),	%ecx
2917
	movl	24(%esp),	%edx
2918
	xorl	%eax,		%ecx
2919
	xorl	%ebx,		%edx
2920
	movl	(%esi),		%eax
2921
	movl	4(%esi),	%ebx
2922
	movl	%ecx,		(%edi)
2923
	movl	%edx,		4(%edi)
2924
	movl	%eax,		20(%esp)
2925
	movl	%ebx,		24(%esp)
2926
	addl	$8,		%esi
2927
	addl	$8,		%edi
2928
	subl	$8,		%ebp
2929
	jnz	.L018decrypt_loop
2930
.L017decrypt_finish:
2931
	movl	56(%esp),	%ebp
2932
	andl	$7,		%ebp
2933
	jz	.L007finish
2934
	movl	(%esi),		%eax
2935
	movl	4(%esi),	%ebx
2936
	movl	%eax,		12(%esp)
2937
	movl	%ebx,		16(%esp)
2938
	call	des_encrypt
2939
	movl	12(%esp),	%eax
2940
	movl	16(%esp),	%ebx
2941
	movl	20(%esp),	%ecx
2942
	movl	24(%esp),	%edx
2943
	xorl	%eax,		%ecx
2944
	xorl	%ebx,		%edx
2945
	movl	(%esi),		%eax
2946
	movl	4(%esi),	%ebx
2947
.L019dj7:
2948
	rorl	$16,		%edx
2949
	movb	%dl,		6(%edi)
2950
	shrl	$16,		%edx
2951
.L020dj6:
2952
	movb	%dh,		5(%edi)
2953
.L021dj5:
2954
	movb	%dl,		4(%edi)
2955
.L022dj4:
2956
	movl	%ecx,		(%edi)
2957
	jmp	.L023djend
2958
.L024dj3:
2959
	rorl	$16,		%ecx
2960
	movb	%cl,		2(%edi)
2961
	sall	$16,		%ecx
2962
.L025dj2:
2963
	movb	%ch,		1(%esi)
2964
.L026dj1:
2965
	movb	%cl,		(%esi)
2966
.L023djend:
2967
	jmp	.L007finish
2968
.align ALIGN
2969
.L007finish:
2970
	movl	64(%esp),	%ecx
2971
	addl	$28,		%esp
2972
	movl	%eax,		(%ecx)
2973
	movl	%ebx,		4(%ecx)
2974
	popl	%edi
2975
	popl	%esi
2976
	popl	%ebx
2977
	popl	%ebp
2978
	ret
2979
.align ALIGN
2980
.L008cbc_enc_jmp_table:
2981
	.long 0
2982
	.long .L016ej1
2983
	.long .L015ej2
2984
	.long .L014ej3
2985
	.long .L012ej4
2986
	.long .L011ej5
2987
	.long .L010ej6
2988
	.long .L009ej7
2989
.align ALIGN
2990
.L027cbc_dec_jmp_table:
2991
	.long 0
2992
	.long .L026dj1
2993
	.long .L025dj2
2994
	.long .L024dj3
2995
	.long .L022dj4
2996
	.long .L021dj5
2997
	.long .L020dj6
2998
	.long .L019dj7
2999
.des_ncbc_encrypt_end:
3000
	SIZE(des_ncbc_encrypt,.des_ncbc_encrypt_end-des_ncbc_encrypt)
3001
.ident	"desasm.pl"
3002
.text
3003
	.align ALIGN
3004
.globl des_ede3_cbc_encrypt
3005
	TYPE(des_ede3_cbc_encrypt,@function)
3006
des_ede3_cbc_encrypt:
3007
3008
	pushl	%ebp
3009
	pushl	%ebx
3010
	pushl	%esi
3011
	pushl	%edi
3012
	movl	28(%esp),	%ebp
3013
	/* getting iv ptr from parameter 6 */
3014
	movl	44(%esp),	%ebx
3015
	movl	(%ebx),		%esi
3016
	movl	4(%ebx),	%edi
3017
	pushl	%edi
3018
	pushl	%esi
3019
	pushl	%edi
3020
	pushl	%esi
3021
	movl	%esp,		%ebx
3022
	movl	36(%esp),	%esi
3023
	movl	40(%esp),	%edi
3024
	/* getting encrypt flag from parameter 7 */
3025
	movl	64(%esp),	%ecx
3026
	/* get and push parameter 5 */
3027
	movl	56(%esp),	%eax
3028
	pushl	%eax
3029
	/* get and push parameter 4 */
3030
	movl	56(%esp),	%eax
3031
	pushl	%eax
3032
	/* get and push parameter 3 */
3033
	movl	56(%esp),	%eax
3034
	pushl	%eax
3035
	pushl	%ebx
3036
	cmpl	$0,		%ecx
3037
	jz	.L028decrypt
3038
	andl	$4294967288,	%ebp
3039
	movl	16(%esp),	%eax
3040
	movl	20(%esp),	%ebx
3041
	jz	.L029encrypt_finish
3042
.L030encrypt_loop:
3043
	movl	(%esi),		%ecx
3044
	movl	4(%esi),	%edx
3045
	xorl	%ecx,		%eax
3046
	xorl	%edx,		%ebx
3047
	movl	%eax,		16(%esp)
3048
	movl	%ebx,		20(%esp)
3049
	call	des_encrypt3
3050
	movl	16(%esp),	%eax
3051
	movl	20(%esp),	%ebx
3052
	movl	%eax,		(%edi)
3053
	movl	%ebx,		4(%edi)
3054
	addl	$8,		%esi
3055
	addl	$8,		%edi
3056
	subl	$8,		%ebp
3057
	jnz	.L030encrypt_loop
3058
.L029encrypt_finish:
3059
	movl	60(%esp),	%ebp
3060
	andl	$7,		%ebp
3061
	jz	.L031finish
3062
	xorl	%ecx,		%ecx
3063
	xorl	%edx,		%edx
3064
	movl	.L032cbc_enc_jmp_table(,%ebp,4),%ebp
3065
	jmp	*%ebp
3066
.L033ej7:
3067
	movb	6(%esi),	%dh
3068
	sall	$8,		%edx
3069
.L034ej6:
3070
	movb	5(%esi),	%dh
3071
.L035ej5:
3072
	movb	4(%esi),	%dl
3073
.L036ej4:
3074
	movl	(%esi),		%ecx
3075
	jmp	.L037ejend
3076
.L038ej3:
3077
	movb	2(%esi),	%ch
3078
	sall	$8,		%ecx
3079
.L039ej2:
3080
	movb	1(%esi),	%ch
3081
.L040ej1:
3082
	movb	(%esi),		%cl
3083
.L037ejend:
3084
	xorl	%ecx,		%eax
3085
	xorl	%edx,		%ebx
3086
	movl	%eax,		16(%esp)
3087
	movl	%ebx,		20(%esp)
3088
	call	des_encrypt3
3089
	movl	16(%esp),	%eax
3090
	movl	20(%esp),	%ebx
3091
	movl	%eax,		(%edi)
3092
	movl	%ebx,		4(%edi)
3093
	jmp	.L031finish
3094
.align ALIGN
3095
.L028decrypt:
3096
	andl	$4294967288,	%ebp
3097
	movl	24(%esp),	%eax
3098
	movl	28(%esp),	%ebx
3099
	jz	.L041decrypt_finish
3100
.L042decrypt_loop:
3101
	movl	(%esi),		%eax
3102
	movl	4(%esi),	%ebx
3103
	movl	%eax,		16(%esp)
3104
	movl	%ebx,		20(%esp)
3105
	call	des_decrypt3
3106
	movl	16(%esp),	%eax
3107
	movl	20(%esp),	%ebx
3108
	movl	24(%esp),	%ecx
3109
	movl	28(%esp),	%edx
3110
	xorl	%eax,		%ecx
3111
	xorl	%ebx,		%edx
3112
	movl	(%esi),		%eax
3113
	movl	4(%esi),	%ebx
3114
	movl	%ecx,		(%edi)
3115
	movl	%edx,		4(%edi)
3116
	movl	%eax,		24(%esp)
3117
	movl	%ebx,		28(%esp)
3118
	addl	$8,		%esi
3119
	addl	$8,		%edi
3120
	subl	$8,		%ebp
3121
	jnz	.L042decrypt_loop
3122
.L041decrypt_finish:
3123
	movl	60(%esp),	%ebp
3124
	andl	$7,		%ebp
3125
	jz	.L031finish
3126
	movl	(%esi),		%eax
3127
	movl	4(%esi),	%ebx
3128
	movl	%eax,		16(%esp)
3129
	movl	%ebx,		20(%esp)
3130
	call	des_decrypt3
3131
	movl	16(%esp),	%eax
3132
	movl	20(%esp),	%ebx
3133
	movl	24(%esp),	%ecx
3134
	movl	28(%esp),	%edx
3135
	xorl	%eax,		%ecx
3136
	xorl	%ebx,		%edx
3137
	movl	(%esi),		%eax
3138
	movl	4(%esi),	%ebx
3139
.L043dj7:
3140
	rorl	$16,		%edx
3141
	movb	%dl,		6(%edi)
3142
	shrl	$16,		%edx
3143
.L044dj6:
3144
	movb	%dh,		5(%edi)
3145
.L045dj5:
3146
	movb	%dl,		4(%edi)
3147
.L046dj4:
3148
	movl	%ecx,		(%edi)
3149
	jmp	.L047djend
3150
.L048dj3:
3151
	rorl	$16,		%ecx
3152
	movb	%cl,		2(%edi)
3153
	sall	$16,		%ecx
3154
.L049dj2:
3155
	movb	%ch,		1(%esi)
3156
.L050dj1:
3157
	movb	%cl,		(%esi)
3158
.L047djend:
3159
	jmp	.L031finish
3160
.align ALIGN
3161
.L031finish:
3162
	movl	76(%esp),	%ecx
3163
	addl	$32,		%esp
3164
	movl	%eax,		(%ecx)
3165
	movl	%ebx,		4(%ecx)
3166
	popl	%edi
3167
	popl	%esi
3168
	popl	%ebx
3169
	popl	%ebp
3170
	ret
3171
.align ALIGN
3172
.L032cbc_enc_jmp_table:
3173
	.long 0
3174
	.long .L040ej1
3175
	.long .L039ej2
3176
	.long .L038ej3
3177
	.long .L036ej4
3178
	.long .L035ej5
3179
	.long .L034ej6
3180
	.long .L033ej7
3181
.align ALIGN
3182
.L051cbc_dec_jmp_table:
3183
	.long 0
3184
	.long .L050dj1
3185
	.long .L049dj2
3186
	.long .L048dj3
3187
	.long .L046dj4
3188
	.long .L045dj5
3189
	.long .L044dj6
3190
	.long .L043dj7
3191
.des_ede3_cbc_encrypt_end:
3192
	SIZE(des_ede3_cbc_encrypt,.des_ede3_cbc_encrypt_end-des_ede3_cbc_encrypt)
3193
.ident	"desasm.pl"
(-)linux-2.4.20-gentoo-r2/net/ipsec/libdes/asm/yx86unix.S (+972 lines)
Line 0 Link Here
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
6
 */
7
8
#define TYPE(a,b)       .type   a,b
9
#define SIZE(a,b)       .size   a,b
10
11
#if defined(OUT) || defined(BSDI)
12
#define des_SPtrans _des_SPtrans
13
14
#endif
15
16
#ifdef OUT
17
#define OK	1
18
#define ALIGN	4
19
#endif
20
21
#ifdef BSDI
22
#define OK              1
23
#define ALIGN           4
24
#undef SIZE
25
#undef TYPE
26
#endif
27
28
#if defined(ELF) || defined(SOL)
29
#define OK              1
30
#define ALIGN           16
31
#endif
32
33
#ifndef OK
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.
39
#endif
40
41
/* Let the Assembler begin :-) */
42
	/* Don't even think of reading this code */
43
	/* It was automatically generated by crypt586.pl */
44
	/* Which is a perl program used to generate the x86 assember for */
45
	/* any of elf, a.out, BSDI,Win32, or Solaris */
46
	/* eric <eay@cryptsoft.com> */
47
48
	.file	"crypt586.s"
49
	.version	"01.01"
50
.text
51
	.align ALIGN
52
.globl fcrypt_body
53
	TYPE(fcrypt_body,@function)
54
fcrypt_body:
55
	pushl	%ebp
56
	pushl	%ebx
57
	pushl	%esi
58
	pushl	%edi
59
60
61
	/* Load the 2 words */
62
	xorl	%edi,		%edi
63
	xorl	%esi,		%esi
64
	movl	24(%esp),	%ebp
65
	pushl	$25
66
.L000start:
67
68
	/* Round 0 */
69
	movl	32(%esp),	%eax
70
	movl	%esi,		%edx
71
	shrl	$16,		%edx
72
	movl	36(%esp),	%ecx
73
	xorl	%esi,		%edx
74
	andl	%edx,		%eax
75
	andl	%ecx,		%edx
76
	movl	%eax,		%ebx
77
	sall	$16,		%ebx
78
	movl	%edx,		%ecx
79
	sall	$16,		%ecx
80
	xorl	%ebx,		%eax
81
	xorl	%ecx,		%edx
82
	movl	(%ebp),		%ebx
83
	xorl	%ebx,		%eax
84
	movl	4(%ebp),	%ecx
85
	xorl	%esi,		%eax
86
	xorl	%esi,		%edx
87
	xorl	%ecx,		%edx
88
	andl	$0xfcfcfcfc,	%eax
89
	xorl	%ebx,		%ebx
90
	andl	$0xcfcfcfcf,	%edx
91
	xorl	%ecx,		%ecx
92
	movb	%al,		%bl
93
	movb	%ah,		%cl
94
	rorl	$4,		%edx
95
	movl	      des_SPtrans(%ebx),%ebp
96
	movb	%dl,		%bl
97
	xorl	%ebp,		%edi
98
	movl	0x200+des_SPtrans(%ecx),%ebp
99
	xorl	%ebp,		%edi
100
	movb	%dh,		%cl
101
	shrl	$16,		%eax
102
	movl	0x100+des_SPtrans(%ebx),%ebp
103
	xorl	%ebp,		%edi
104
	movb	%ah,		%bl
105
	shrl	$16,		%edx
106
	movl	0x300+des_SPtrans(%ecx),%ebp
107
	xorl	%ebp,		%edi
108
	movl	28(%esp),	%ebp
109
	movb	%dh,		%cl
110
	andl	$0xff,		%eax
111
	andl	$0xff,		%edx
112
	movl	0x600+des_SPtrans(%ebx),%ebx
113
	xorl	%ebx,		%edi
114
	movl	0x700+des_SPtrans(%ecx),%ebx
115
	xorl	%ebx,		%edi
116
	movl	0x400+des_SPtrans(%eax),%ebx
117
	xorl	%ebx,		%edi
118
	movl	0x500+des_SPtrans(%edx),%ebx
119
	xorl	%ebx,		%edi
120
121
	/* Round 1 */
122
	movl	32(%esp),	%eax
123
	movl	%edi,		%edx
124
	shrl	$16,		%edx
125
	movl	36(%esp),	%ecx
126
	xorl	%edi,		%edx
127
	andl	%edx,		%eax
128
	andl	%ecx,		%edx
129
	movl	%eax,		%ebx
130
	sall	$16,		%ebx
131
	movl	%edx,		%ecx
132
	sall	$16,		%ecx
133
	xorl	%ebx,		%eax
134
	xorl	%ecx,		%edx
135
	movl	8(%ebp),	%ebx
136
	xorl	%ebx,		%eax
137
	movl	12(%ebp),	%ecx
138
	xorl	%edi,		%eax
139
	xorl	%edi,		%edx
140
	xorl	%ecx,		%edx
141
	andl	$0xfcfcfcfc,	%eax
142
	xorl	%ebx,		%ebx
143
	andl	$0xcfcfcfcf,	%edx
144
	xorl	%ecx,		%ecx
145
	movb	%al,		%bl
146
	movb	%ah,		%cl
147
	rorl	$4,		%edx
148
	movl	      des_SPtrans(%ebx),%ebp
149
	movb	%dl,		%bl
150
	xorl	%ebp,		%esi
151
	movl	0x200+des_SPtrans(%ecx),%ebp
152
	xorl	%ebp,		%esi
153
	movb	%dh,		%cl
154
	shrl	$16,		%eax
155
	movl	0x100+des_SPtrans(%ebx),%ebp
156
	xorl	%ebp,		%esi
157
	movb	%ah,		%bl
158
	shrl	$16,		%edx
159
	movl	0x300+des_SPtrans(%ecx),%ebp
160
	xorl	%ebp,		%esi
161
	movl	28(%esp),	%ebp
162
	movb	%dh,		%cl
163
	andl	$0xff,		%eax
164
	andl	$0xff,		%edx
165
	movl	0x600+des_SPtrans(%ebx),%ebx
166
	xorl	%ebx,		%esi
167
	movl	0x700+des_SPtrans(%ecx),%ebx
168
	xorl	%ebx,		%esi
169
	movl	0x400+des_SPtrans(%eax),%ebx
170
	xorl	%ebx,		%esi
171
	movl	0x500+des_SPtrans(%edx),%ebx
172
	xorl	%ebx,		%esi
173
174
	/* Round 2 */
175
	movl	32(%esp),	%eax
176
	movl	%esi,		%edx
177
	shrl	$16,		%edx
178
	movl	36(%esp),	%ecx
179
	xorl	%esi,		%edx
180
	andl	%edx,		%eax
181
	andl	%ecx,		%edx
182
	movl	%eax,		%ebx
183
	sall	$16,		%ebx
184
	movl	%edx,		%ecx
185
	sall	$16,		%ecx
186
	xorl	%ebx,		%eax
187
	xorl	%ecx,		%edx
188
	movl	16(%ebp),	%ebx
189
	xorl	%ebx,		%eax
190
	movl	20(%ebp),	%ecx
191
	xorl	%esi,		%eax
192
	xorl	%esi,		%edx
193
	xorl	%ecx,		%edx
194
	andl	$0xfcfcfcfc,	%eax
195
	xorl	%ebx,		%ebx
196
	andl	$0xcfcfcfcf,	%edx
197
	xorl	%ecx,		%ecx
198
	movb	%al,		%bl
199
	movb	%ah,		%cl
200
	rorl	$4,		%edx
201
	movl	      des_SPtrans(%ebx),%ebp
202
	movb	%dl,		%bl
203
	xorl	%ebp,		%edi
204
	movl	0x200+des_SPtrans(%ecx),%ebp
205
	xorl	%ebp,		%edi
206
	movb	%dh,		%cl
207
	shrl	$16,		%eax
208
	movl	0x100+des_SPtrans(%ebx),%ebp
209
	xorl	%ebp,		%edi
210
	movb	%ah,		%bl
211
	shrl	$16,		%edx
212
	movl	0x300+des_SPtrans(%ecx),%ebp
213
	xorl	%ebp,		%edi
214
	movl	28(%esp),	%ebp
215
	movb	%dh,		%cl
216
	andl	$0xff,		%eax
217
	andl	$0xff,		%edx
218
	movl	0x600+des_SPtrans(%ebx),%ebx
219
	xorl	%ebx,		%edi
220
	movl	0x700+des_SPtrans(%ecx),%ebx
221
	xorl	%ebx,		%edi
222
	movl	0x400+des_SPtrans(%eax),%ebx
223
	xorl	%ebx,		%edi
224
	movl	0x500+des_SPtrans(%edx),%ebx
225
	xorl	%ebx,		%edi
226
227
	/* Round 3 */
228
	movl	32(%esp),	%eax
229
	movl	%edi,		%edx
230
	shrl	$16,		%edx
231
	movl	36(%esp),	%ecx
232
	xorl	%edi,		%edx
233
	andl	%edx,		%eax
234
	andl	%ecx,		%edx
235
	movl	%eax,		%ebx
236
	sall	$16,		%ebx
237
	movl	%edx,		%ecx
238
	sall	$16,		%ecx
239
	xorl	%ebx,		%eax
240
	xorl	%ecx,		%edx
241
	movl	24(%ebp),	%ebx
242
	xorl	%ebx,		%eax
243
	movl	28(%ebp),	%ecx
244
	xorl	%edi,		%eax
245
	xorl	%edi,		%edx
246
	xorl	%ecx,		%edx
247
	andl	$0xfcfcfcfc,	%eax
248
	xorl	%ebx,		%ebx
249
	andl	$0xcfcfcfcf,	%edx
250
	xorl	%ecx,		%ecx
251
	movb	%al,		%bl
252
	movb	%ah,		%cl
253
	rorl	$4,		%edx
254
	movl	      des_SPtrans(%ebx),%ebp
255
	movb	%dl,		%bl
256
	xorl	%ebp,		%esi
257
	movl	0x200+des_SPtrans(%ecx),%ebp
258
	xorl	%ebp,		%esi
259
	movb	%dh,		%cl
260
	shrl	$16,		%eax
261
	movl	0x100+des_SPtrans(%ebx),%ebp
262
	xorl	%ebp,		%esi
263
	movb	%ah,		%bl
264
	shrl	$16,		%edx
265
	movl	0x300+des_SPtrans(%ecx),%ebp
266
	xorl	%ebp,		%esi
267
	movl	28(%esp),	%ebp
268
	movb	%dh,		%cl
269
	andl	$0xff,		%eax
270
	andl	$0xff,		%edx
271
	movl	0x600+des_SPtrans(%ebx),%ebx
272
	xorl	%ebx,		%esi
273
	movl	0x700+des_SPtrans(%ecx),%ebx
274
	xorl	%ebx,		%esi
275
	movl	0x400+des_SPtrans(%eax),%ebx
276
	xorl	%ebx,		%esi
277
	movl	0x500+des_SPtrans(%edx),%ebx
278
	xorl	%ebx,		%esi
279
280
	/* Round 4 */
281
	movl	32(%esp),	%eax
282
	movl	%esi,		%edx
283
	shrl	$16,		%edx
284
	movl	36(%esp),	%ecx
285
	xorl	%esi,		%edx
286
	andl	%edx,		%eax
287
	andl	%ecx,		%edx
288
	movl	%eax,		%ebx
289
	sall	$16,		%ebx
290
	movl	%edx,		%ecx
291
	sall	$16,		%ecx
292
	xorl	%ebx,		%eax
293
	xorl	%ecx,		%edx
294
	movl	32(%ebp),	%ebx
295
	xorl	%ebx,		%eax
296
	movl	36(%ebp),	%ecx
297
	xorl	%esi,		%eax
298
	xorl	%esi,		%edx
299
	xorl	%ecx,		%edx
300
	andl	$0xfcfcfcfc,	%eax
301
	xorl	%ebx,		%ebx
302
	andl	$0xcfcfcfcf,	%edx
303
	xorl	%ecx,		%ecx
304
	movb	%al,		%bl
305
	movb	%ah,		%cl
306
	rorl	$4,		%edx
307
	movl	      des_SPtrans(%ebx),%ebp
308
	movb	%dl,		%bl
309
	xorl	%ebp,		%edi
310
	movl	0x200+des_SPtrans(%ecx),%ebp
311
	xorl	%ebp,		%edi
312
	movb	%dh,		%cl
313
	shrl	$16,		%eax
314
	movl	0x100+des_SPtrans(%ebx),%ebp
315
	xorl	%ebp,		%edi
316
	movb	%ah,		%bl
317
	shrl	$16,		%edx
318
	movl	0x300+des_SPtrans(%ecx),%ebp
319
	xorl	%ebp,		%edi
320
	movl	28(%esp),	%ebp
321
	movb	%dh,		%cl
322
	andl	$0xff,		%eax
323
	andl	$0xff,		%edx
324
	movl	0x600+des_SPtrans(%ebx),%ebx
325
	xorl	%ebx,		%edi
326
	movl	0x700+des_SPtrans(%ecx),%ebx
327
	xorl	%ebx,		%edi
328
	movl	0x400+des_SPtrans(%eax),%ebx
329
	xorl	%ebx,		%edi
330
	movl	0x500+des_SPtrans(%edx),%ebx
331
	xorl	%ebx,		%edi
332
333
	/* Round 5 */
334
	movl	32(%esp),	%eax
335
	movl	%edi,		%edx
336
	shrl	$16,		%edx
337
	movl	36(%esp),	%ecx
338
	xorl	%edi,		%edx
339
	andl	%edx,		%eax
340
	andl	%ecx,		%edx
341
	movl	%eax,		%ebx
342
	sall	$16,		%ebx
343
	movl	%edx,		%ecx
344
	sall	$16,		%ecx
345
	xorl	%ebx,		%eax
346
	xorl	%ecx,		%edx
347
	movl	40(%ebp),	%ebx
348
	xorl	%ebx,		%eax
349
	movl	44(%ebp),	%ecx
350
	xorl	%edi,		%eax
351
	xorl	%edi,		%edx
352
	xorl	%ecx,		%edx
353
	andl	$0xfcfcfcfc,	%eax
354
	xorl	%ebx,		%ebx
355
	andl	$0xcfcfcfcf,	%edx
356
	xorl	%ecx,		%ecx
357
	movb	%al,		%bl
358
	movb	%ah,		%cl
359
	rorl	$4,		%edx
360
	movl	      des_SPtrans(%ebx),%ebp
361
	movb	%dl,		%bl
362
	xorl	%ebp,		%esi
363
	movl	0x200+des_SPtrans(%ecx),%ebp
364
	xorl	%ebp,		%esi
365
	movb	%dh,		%cl
366
	shrl	$16,		%eax
367
	movl	0x100+des_SPtrans(%ebx),%ebp
368
	xorl	%ebp,		%esi
369
	movb	%ah,		%bl
370
	shrl	$16,		%edx
371
	movl	0x300+des_SPtrans(%ecx),%ebp
372
	xorl	%ebp,		%esi
373
	movl	28(%esp),	%ebp
374
	movb	%dh,		%cl
375
	andl	$0xff,		%eax
376
	andl	$0xff,		%edx
377
	movl	0x600+des_SPtrans(%ebx),%ebx
378
	xorl	%ebx,		%esi
379
	movl	0x700+des_SPtrans(%ecx),%ebx
380
	xorl	%ebx,		%esi
381
	movl	0x400+des_SPtrans(%eax),%ebx
382
	xorl	%ebx,		%esi
383
	movl	0x500+des_SPtrans(%edx),%ebx
384
	xorl	%ebx,		%esi
385
386
	/* Round 6 */
387
	movl	32(%esp),	%eax
388
	movl	%esi,		%edx
389
	shrl	$16,		%edx
390
	movl	36(%esp),	%ecx
391
	xorl	%esi,		%edx
392
	andl	%edx,		%eax
393
	andl	%ecx,		%edx
394
	movl	%eax,		%ebx
395
	sall	$16,		%ebx
396
	movl	%edx,		%ecx
397
	sall	$16,		%ecx
398
	xorl	%ebx,		%eax
399
	xorl	%ecx,		%edx
400
	movl	48(%ebp),	%ebx
401
	xorl	%ebx,		%eax
402
	movl	52(%ebp),	%ecx
403
	xorl	%esi,		%eax
404
	xorl	%esi,		%edx
405
	xorl	%ecx,		%edx
406
	andl	$0xfcfcfcfc,	%eax
407
	xorl	%ebx,		%ebx
408
	andl	$0xcfcfcfcf,	%edx
409
	xorl	%ecx,		%ecx
410
	movb	%al,		%bl
411
	movb	%ah,		%cl
412
	rorl	$4,		%edx
413
	movl	      des_SPtrans(%ebx),%ebp
414
	movb	%dl,		%bl
415
	xorl	%ebp,		%edi
416
	movl	0x200+des_SPtrans(%ecx),%ebp
417
	xorl	%ebp,		%edi
418
	movb	%dh,		%cl
419
	shrl	$16,		%eax
420
	movl	0x100+des_SPtrans(%ebx),%ebp
421
	xorl	%ebp,		%edi
422
	movb	%ah,		%bl
423
	shrl	$16,		%edx
424
	movl	0x300+des_SPtrans(%ecx),%ebp
425
	xorl	%ebp,		%edi
426
	movl	28(%esp),	%ebp
427
	movb	%dh,		%cl
428
	andl	$0xff,		%eax
429
	andl	$0xff,		%edx
430
	movl	0x600+des_SPtrans(%ebx),%ebx
431
	xorl	%ebx,		%edi
432
	movl	0x700+des_SPtrans(%ecx),%ebx
433
	xorl	%ebx,		%edi
434
	movl	0x400+des_SPtrans(%eax),%ebx
435
	xorl	%ebx,		%edi
436
	movl	0x500+des_SPtrans(%edx),%ebx
437
	xorl	%ebx,		%edi
438
439
	/* Round 7 */
440
	movl	32(%esp),	%eax
441
	movl	%edi,		%edx
442
	shrl	$16,		%edx
443
	movl	36(%esp),	%ecx
444
	xorl	%edi,		%edx
445
	andl	%edx,		%eax
446
	andl	%ecx,		%edx
447
	movl	%eax,		%ebx
448
	sall	$16,		%ebx
449
	movl	%edx,		%ecx
450
	sall	$16,		%ecx
451
	xorl	%ebx,		%eax
452
	xorl	%ecx,		%edx
453
	movl	56(%ebp),	%ebx
454
	xorl	%ebx,		%eax
455
	movl	60(%ebp),	%ecx
456
	xorl	%edi,		%eax
457
	xorl	%edi,		%edx
458
	xorl	%ecx,		%edx
459
	andl	$0xfcfcfcfc,	%eax
460
	xorl	%ebx,		%ebx
461
	andl	$0xcfcfcfcf,	%edx
462
	xorl	%ecx,		%ecx
463
	movb	%al,		%bl
464
	movb	%ah,		%cl
465
	rorl	$4,		%edx
466
	movl	      des_SPtrans(%ebx),%ebp
467
	movb	%dl,		%bl
468
	xorl	%ebp,		%esi
469
	movl	0x200+des_SPtrans(%ecx),%ebp
470
	xorl	%ebp,		%esi
471
	movb	%dh,		%cl
472
	shrl	$16,		%eax
473
	movl	0x100+des_SPtrans(%ebx),%ebp
474
	xorl	%ebp,		%esi
475
	movb	%ah,		%bl
476
	shrl	$16,		%edx
477
	movl	0x300+des_SPtrans(%ecx),%ebp
478
	xorl	%ebp,		%esi
479
	movl	28(%esp),	%ebp
480
	movb	%dh,		%cl
481
	andl	$0xff,		%eax
482
	andl	$0xff,		%edx
483
	movl	0x600+des_SPtrans(%ebx),%ebx
484
	xorl	%ebx,		%esi
485
	movl	0x700+des_SPtrans(%ecx),%ebx
486
	xorl	%ebx,		%esi
487
	movl	0x400+des_SPtrans(%eax),%ebx
488
	xorl	%ebx,		%esi
489
	movl	0x500+des_SPtrans(%edx),%ebx
490
	xorl	%ebx,		%esi
491
492
	/* Round 8 */
493
	movl	32(%esp),	%eax
494
	movl	%esi,		%edx
495
	shrl	$16,		%edx
496
	movl	36(%esp),	%ecx
497
	xorl	%esi,		%edx
498
	andl	%edx,		%eax
499
	andl	%ecx,		%edx
500
	movl	%eax,		%ebx
501
	sall	$16,		%ebx
502
	movl	%edx,		%ecx
503
	sall	$16,		%ecx
504
	xorl	%ebx,		%eax
505
	xorl	%ecx,		%edx
506
	movl	64(%ebp),	%ebx
507
	xorl	%ebx,		%eax
508
	movl	68(%ebp),	%ecx
509
	xorl	%esi,		%eax
510
	xorl	%esi,		%edx
511
	xorl	%ecx,		%edx
512
	andl	$0xfcfcfcfc,	%eax
513
	xorl	%ebx,		%ebx
514
	andl	$0xcfcfcfcf,	%edx
515
	xorl	%ecx,		%ecx
516
	movb	%al,		%bl
517
	movb	%ah,		%cl
518
	rorl	$4,		%edx
519
	movl	      des_SPtrans(%ebx),%ebp
520
	movb	%dl,		%bl
521
	xorl	%ebp,		%edi
522
	movl	0x200+des_SPtrans(%ecx),%ebp
523
	xorl	%ebp,		%edi
524
	movb	%dh,		%cl
525
	shrl	$16,		%eax
526
	movl	0x100+des_SPtrans(%ebx),%ebp
527
	xorl	%ebp,		%edi
528
	movb	%ah,		%bl
529
	shrl	$16,		%edx
530
	movl	0x300+des_SPtrans(%ecx),%ebp
531
	xorl	%ebp,		%edi
532
	movl	28(%esp),	%ebp
533
	movb	%dh,		%cl
534
	andl	$0xff,		%eax
535
	andl	$0xff,		%edx
536
	movl	0x600+des_SPtrans(%ebx),%ebx
537
	xorl	%ebx,		%edi
538
	movl	0x700+des_SPtrans(%ecx),%ebx
539
	xorl	%ebx,		%edi
540
	movl	0x400+des_SPtrans(%eax),%ebx
541
	xorl	%ebx,		%edi
542
	movl	0x500+des_SPtrans(%edx),%ebx
543
	xorl	%ebx,		%edi
544
545
	/* Round 9 */
546
	movl	32(%esp),	%eax
547
	movl	%edi,		%edx
548
	shrl	$16,		%edx
549
	movl	36(%esp),	%ecx
550
	xorl	%edi,		%edx
551
	andl	%edx,		%eax
552
	andl	%ecx,		%edx
553
	movl	%eax,		%ebx
554
	sall	$16,		%ebx
555
	movl	%edx,		%ecx
556
	sall	$16,		%ecx
557
	xorl	%ebx,		%eax
558
	xorl	%ecx,		%edx
559
	movl	72(%ebp),	%ebx
560
	xorl	%ebx,		%eax
561
	movl	76(%ebp),	%ecx
562
	xorl	%edi,		%eax
563
	xorl	%edi,		%edx
564
	xorl	%ecx,		%edx
565
	andl	$0xfcfcfcfc,	%eax
566
	xorl	%ebx,		%ebx
567
	andl	$0xcfcfcfcf,	%edx
568
	xorl	%ecx,		%ecx
569
	movb	%al,		%bl
570
	movb	%ah,		%cl
571
	rorl	$4,		%edx
572
	movl	      des_SPtrans(%ebx),%ebp
573
	movb	%dl,		%bl
574
	xorl	%ebp,		%esi
575
	movl	0x200+des_SPtrans(%ecx),%ebp
576
	xorl	%ebp,		%esi
577
	movb	%dh,		%cl
578
	shrl	$16,		%eax
579
	movl	0x100+des_SPtrans(%ebx),%ebp
580
	xorl	%ebp,		%esi
581
	movb	%ah,		%bl
582
	shrl	$16,		%edx
583
	movl	0x300+des_SPtrans(%ecx),%ebp
584
	xorl	%ebp,		%esi
585
	movl	28(%esp),	%ebp
586
	movb	%dh,		%cl
587
	andl	$0xff,		%eax
588
	andl	$0xff,		%edx
589
	movl	0x600+des_SPtrans(%ebx),%ebx
590
	xorl	%ebx,		%esi
591
	movl	0x700+des_SPtrans(%ecx),%ebx
592
	xorl	%ebx,		%esi
593
	movl	0x400+des_SPtrans(%eax),%ebx
594
	xorl	%ebx,		%esi
595
	movl	0x500+des_SPtrans(%edx),%ebx
596
	xorl	%ebx,		%esi
597
598
	/* Round 10 */
599
	movl	32(%esp),	%eax
600
	movl	%esi,		%edx
601
	shrl	$16,		%edx
602
	movl	36(%esp),	%ecx
603
	xorl	%esi,		%edx
604
	andl	%edx,		%eax
605
	andl	%ecx,		%edx
606
	movl	%eax,		%ebx
607
	sall	$16,		%ebx
608
	movl	%edx,		%ecx
609
	sall	$16,		%ecx
610
	xorl	%ebx,		%eax
611
	xorl	%ecx,		%edx
612
	movl	80(%ebp),	%ebx
613
	xorl	%ebx,		%eax
614
	movl	84(%ebp),	%ecx
615
	xorl	%esi,		%eax
616
	xorl	%esi,		%edx
617
	xorl	%ecx,		%edx
618
	andl	$0xfcfcfcfc,	%eax
619
	xorl	%ebx,		%ebx
620
	andl	$0xcfcfcfcf,	%edx
621
	xorl	%ecx,		%ecx
622
	movb	%al,		%bl
623
	movb	%ah,		%cl
624
	rorl	$4,		%edx
625
	movl	      des_SPtrans(%ebx),%ebp
626
	movb	%dl,		%bl
627
	xorl	%ebp,		%edi
628
	movl	0x200+des_SPtrans(%ecx),%ebp
629
	xorl	%ebp,		%edi
630
	movb	%dh,		%cl
631
	shrl	$16,		%eax
632
	movl	0x100+des_SPtrans(%ebx),%ebp
633
	xorl	%ebp,		%edi
634
	movb	%ah,		%bl
635
	shrl	$16,		%edx
636
	movl	0x300+des_SPtrans(%ecx),%ebp
637
	xorl	%ebp,		%edi
638
	movl	28(%esp),	%ebp
639
	movb	%dh,		%cl
640
	andl	$0xff,		%eax
641
	andl	$0xff,		%edx
642
	movl	0x600+des_SPtrans(%ebx),%ebx
643
	xorl	%ebx,		%edi
644
	movl	0x700+des_SPtrans(%ecx),%ebx
645
	xorl	%ebx,		%edi
646
	movl	0x400+des_SPtrans(%eax),%ebx
647
	xorl	%ebx,		%edi
648
	movl	0x500+des_SPtrans(%edx),%ebx
649
	xorl	%ebx,		%edi
650
651
	/* Round 11 */
652
	movl	32(%esp),	%eax
653
	movl	%edi,		%edx
654
	shrl	$16,		%edx
655
	movl	36(%esp),	%ecx
656
	xorl	%edi,		%edx
657
	andl	%edx,		%eax
658
	andl	%ecx,		%edx
659
	movl	%eax,		%ebx
660
	sall	$16,		%ebx
661
	movl	%edx,		%ecx
662
	sall	$16,		%ecx
663
	xorl	%ebx,		%eax
664
	xorl	%ecx,		%edx
665
	movl	88(%ebp),	%ebx
666
	xorl	%ebx,		%eax
667
	movl	92(%ebp),	%ecx
668
	xorl	%edi,		%eax
669
	xorl	%edi,		%edx
670
	xorl	%ecx,		%edx
671
	andl	$0xfcfcfcfc,	%eax
672
	xorl	%ebx,		%ebx
673
	andl	$0xcfcfcfcf,	%edx
674
	xorl	%ecx,		%ecx
675
	movb	%al,		%bl
676
	movb	%ah,		%cl
677
	rorl	$4,		%edx
678
	movl	      des_SPtrans(%ebx),%ebp
679
	movb	%dl,		%bl
680
	xorl	%ebp,		%esi
681
	movl	0x200+des_SPtrans(%ecx),%ebp
682
	xorl	%ebp,		%esi
683
	movb	%dh,		%cl
684
	shrl	$16,		%eax
685
	movl	0x100+des_SPtrans(%ebx),%ebp
686
	xorl	%ebp,		%esi
687
	movb	%ah,		%bl
688
	shrl	$16,		%edx
689
	movl	0x300+des_SPtrans(%ecx),%ebp
690
	xorl	%ebp,		%esi
691
	movl	28(%esp),	%ebp
692
	movb	%dh,		%cl
693
	andl	$0xff,		%eax
694
	andl	$0xff,		%edx
695
	movl	0x600+des_SPtrans(%ebx),%ebx
696
	xorl	%ebx,		%esi
697
	movl	0x700+des_SPtrans(%ecx),%ebx
698
	xorl	%ebx,		%esi
699
	movl	0x400+des_SPtrans(%eax),%ebx
700
	xorl	%ebx,		%esi
701
	movl	0x500+des_SPtrans(%edx),%ebx
702
	xorl	%ebx,		%esi
703
704
	/* Round 12 */
705
	movl	32(%esp),	%eax
706
	movl	%esi,		%edx
707
	shrl	$16,		%edx
708
	movl	36(%esp),	%ecx
709
	xorl	%esi,		%edx
710
	andl	%edx,		%eax
711
	andl	%ecx,		%edx
712
	movl	%eax,		%ebx
713
	sall	$16,		%ebx
714
	movl	%edx,		%ecx
715
	sall	$16,		%ecx
716
	xorl	%ebx,		%eax
717
	xorl	%ecx,		%edx
718
	movl	96(%ebp),	%ebx
719
	xorl	%ebx,		%eax
720
	movl	100(%ebp),	%ecx
721
	xorl	%esi,		%eax
722
	xorl	%esi,		%edx
723
	xorl	%ecx,		%edx
724
	andl	$0xfcfcfcfc,	%eax
725
	xorl	%ebx,		%ebx
726
	andl	$0xcfcfcfcf,	%edx
727
	xorl	%ecx,		%ecx
728
	movb	%al,		%bl
729
	movb	%ah,		%cl
730
	rorl	$4,		%edx
731
	movl	      des_SPtrans(%ebx),%ebp
732
	movb	%dl,		%bl
733
	xorl	%ebp,		%edi
734
	movl	0x200+des_SPtrans(%ecx),%ebp
735
	xorl	%ebp,		%edi
736
	movb	%dh,		%cl
737
	shrl	$16,		%eax
738
	movl	0x100+des_SPtrans(%ebx),%ebp
739
	xorl	%ebp,		%edi
740
	movb	%ah,		%bl
741
	shrl	$16,		%edx
742
	movl	0x300+des_SPtrans(%ecx),%ebp
743
	xorl	%ebp,		%edi
744
	movl	28(%esp),	%ebp
745
	movb	%dh,		%cl
746
	andl	$0xff,		%eax
747
	andl	$0xff,		%edx
748
	movl	0x600+des_SPtrans(%ebx),%ebx
749
	xorl	%ebx,		%edi
750
	movl	0x700+des_SPtrans(%ecx),%ebx
751
	xorl	%ebx,		%edi
752
	movl	0x400+des_SPtrans(%eax),%ebx
753
	xorl	%ebx,		%edi
754
	movl	0x500+des_SPtrans(%edx),%ebx
755
	xorl	%ebx,		%edi
756
757
	/* Round 13 */
758
	movl	32(%esp),	%eax
759
	movl	%edi,		%edx
760
	shrl	$16,		%edx
761
	movl	36(%esp),	%ecx
762
	xorl	%edi,		%edx
763
	andl	%edx,		%eax
764
	andl	%ecx,		%edx
765
	movl	%eax,		%ebx
766
	sall	$16,		%ebx
767
	movl	%edx,		%ecx
768
	sall	$16,		%ecx
769
	xorl	%ebx,		%eax
770
	xorl	%ecx,		%edx
771
	movl	104(%ebp),	%ebx
772
	xorl	%ebx,		%eax
773
	movl	108(%ebp),	%ecx
774
	xorl	%edi,		%eax
775
	xorl	%edi,		%edx
776
	xorl	%ecx,		%edx
777
	andl	$0xfcfcfcfc,	%eax
778
	xorl	%ebx,		%ebx
779
	andl	$0xcfcfcfcf,	%edx
780
	xorl	%ecx,		%ecx
781
	movb	%al,		%bl
782
	movb	%ah,		%cl
783
	rorl	$4,		%edx
784
	movl	      des_SPtrans(%ebx),%ebp
785
	movb	%dl,		%bl
786
	xorl	%ebp,		%esi
787
	movl	0x200+des_SPtrans(%ecx),%ebp
788
	xorl	%ebp,		%esi
789
	movb	%dh,		%cl
790
	shrl	$16,		%eax
791
	movl	0x100+des_SPtrans(%ebx),%ebp
792
	xorl	%ebp,		%esi
793
	movb	%ah,		%bl
794
	shrl	$16,		%edx
795
	movl	0x300+des_SPtrans(%ecx),%ebp
796
	xorl	%ebp,		%esi
797
	movl	28(%esp),	%ebp
798
	movb	%dh,		%cl
799
	andl	$0xff,		%eax
800
	andl	$0xff,		%edx
801
	movl	0x600+des_SPtrans(%ebx),%ebx
802
	xorl	%ebx,		%esi
803
	movl	0x700+des_SPtrans(%ecx),%ebx
804
	xorl	%ebx,		%esi
805
	movl	0x400+des_SPtrans(%eax),%ebx
806
	xorl	%ebx,		%esi
807
	movl	0x500+des_SPtrans(%edx),%ebx
808
	xorl	%ebx,		%esi
809
810
	/* Round 14 */
811
	movl	32(%esp),	%eax
812
	movl	%esi,		%edx
813
	shrl	$16,		%edx
814
	movl	36(%esp),	%ecx
815
	xorl	%esi,		%edx
816
	andl	%edx,		%eax
817
	andl	%ecx,		%edx
818
	movl	%eax,		%ebx
819
	sall	$16,		%ebx
820
	movl	%edx,		%ecx
821
	sall	$16,		%ecx
822
	xorl	%ebx,		%eax
823
	xorl	%ecx,		%edx
824
	movl	112(%ebp),	%ebx
825
	xorl	%ebx,		%eax
826
	movl	116(%ebp),	%ecx
827
	xorl	%esi,		%eax
828
	xorl	%esi,		%edx
829
	xorl	%ecx,		%edx
830
	andl	$0xfcfcfcfc,	%eax
831
	xorl	%ebx,		%ebx
832
	andl	$0xcfcfcfcf,	%edx
833
	xorl	%ecx,		%ecx
834
	movb	%al,		%bl
835
	movb	%ah,		%cl
836
	rorl	$4,		%edx
837
	movl	      des_SPtrans(%ebx),%ebp
838
	movb	%dl,		%bl
839
	xorl	%ebp,		%edi
840
	movl	0x200+des_SPtrans(%ecx),%ebp
841
	xorl	%ebp,		%edi
842
	movb	%dh,		%cl
843
	shrl	$16,		%eax
844
	movl	0x100+des_SPtrans(%ebx),%ebp
845
	xorl	%ebp,		%edi
846
	movb	%ah,		%bl
847
	shrl	$16,		%edx
848
	movl	0x300+des_SPtrans(%ecx),%ebp
849
	xorl	%ebp,		%edi
850
	movl	28(%esp),	%ebp
851
	movb	%dh,		%cl
852
	andl	$0xff,		%eax
853
	andl	$0xff,		%edx
854
	movl	0x600+des_SPtrans(%ebx),%ebx
855
	xorl	%ebx,		%edi
856
	movl	0x700+des_SPtrans(%ecx),%ebx
857
	xorl	%ebx,		%edi
858
	movl	0x400+des_SPtrans(%eax),%ebx
859
	xorl	%ebx,		%edi
860
	movl	0x500+des_SPtrans(%edx),%ebx
861
	xorl	%ebx,		%edi
862
863
	/* Round 15 */
864
	movl	32(%esp),	%eax
865
	movl	%edi,		%edx
866
	shrl	$16,		%edx
867
	movl	36(%esp),	%ecx
868
	xorl	%edi,		%edx
869
	andl	%edx,		%eax
870
	andl	%ecx,		%edx
871
	movl	%eax,		%ebx
872
	sall	$16,		%ebx
873
	movl	%edx,		%ecx
874
	sall	$16,		%ecx
875
	xorl	%ebx,		%eax
876
	xorl	%ecx,		%edx
877
	movl	120(%ebp),	%ebx
878
	xorl	%ebx,		%eax
879
	movl	124(%ebp),	%ecx
880
	xorl	%edi,		%eax
881
	xorl	%edi,		%edx
882
	xorl	%ecx,		%edx
883
	andl	$0xfcfcfcfc,	%eax
884
	xorl	%ebx,		%ebx
885
	andl	$0xcfcfcfcf,	%edx
886
	xorl	%ecx,		%ecx
887
	movb	%al,		%bl
888
	movb	%ah,		%cl
889
	rorl	$4,		%edx
890
	movl	      des_SPtrans(%ebx),%ebp
891
	movb	%dl,		%bl
892
	xorl	%ebp,		%esi
893
	movl	0x200+des_SPtrans(%ecx),%ebp
894
	xorl	%ebp,		%esi
895
	movb	%dh,		%cl
896
	shrl	$16,		%eax
897
	movl	0x100+des_SPtrans(%ebx),%ebp
898
	xorl	%ebp,		%esi
899
	movb	%ah,		%bl
900
	shrl	$16,		%edx
901
	movl	0x300+des_SPtrans(%ecx),%ebp
902
	xorl	%ebp,		%esi
903
	movl	28(%esp),	%ebp
904
	movb	%dh,		%cl
905
	andl	$0xff,		%eax
906
	andl	$0xff,		%edx
907
	movl	0x600+des_SPtrans(%ebx),%ebx
908
	xorl	%ebx,		%esi
909
	movl	0x700+des_SPtrans(%ecx),%ebx
910
	xorl	%ebx,		%esi
911
	movl	0x400+des_SPtrans(%eax),%ebx
912
	xorl	%ebx,		%esi
913
	movl	0x500+des_SPtrans(%edx),%ebx
914
	xorl	%ebx,		%esi
915
	movl	(%esp),		%ebx
916
	movl	%edi,		%eax
917
	decl	%ebx
918
	movl	%esi,		%edi
919
	movl	%eax,		%esi
920
	movl	%ebx,		(%esp)
921
	jnz	.L000start
922
923
	/* FP */
924
	movl	24(%esp),	%edx
925
.byte 209
926
.byte 207		/* rorl $1 %edi */
927
	movl	%esi,		%eax
928
	xorl	%edi,		%esi
929
	andl	$0xaaaaaaaa,	%esi
930
	xorl	%esi,		%eax
931
	xorl	%esi,		%edi
932
933
	roll	$23,		%eax
934
	movl	%eax,		%esi
935
	xorl	%edi,		%eax
936
	andl	$0x03fc03fc,	%eax
937
	xorl	%eax,		%esi
938
	xorl	%eax,		%edi
939
940
	roll	$10,		%esi
941
	movl	%esi,		%eax
942
	xorl	%edi,		%esi
943
	andl	$0x33333333,	%esi
944
	xorl	%esi,		%eax
945
	xorl	%esi,		%edi
946
947
	roll	$18,		%edi
948
	movl	%edi,		%esi
949
	xorl	%eax,		%edi
950
	andl	$0xfff0000f,	%edi
951
	xorl	%edi,		%esi
952
	xorl	%edi,		%eax
953
954
	roll	$12,		%esi
955
	movl	%esi,		%edi
956
	xorl	%eax,		%esi
957
	andl	$0xf0f0f0f0,	%esi
958
	xorl	%esi,		%edi
959
	xorl	%esi,		%eax
960
961
	rorl	$4,		%eax
962
	movl	%eax,		(%edx)
963
	movl	%edi,		4(%edx)
964
	popl	%ecx
965
	popl	%edi
966
	popl	%esi
967
	popl	%ebx
968
	popl	%ebp
969
	ret
970
.fcrypt_body_end:
971
	SIZE(fcrypt_body,.fcrypt_body_end-fcrypt_body)
972
.ident	"fcrypt_body"
(-)linux-2.4.20-gentoo-r2/net/ipsec/libfreeswan/version.c (+40 lines)
Line 0 Link Here
1
/*
2
 * return IPsec version information
3
 * Copyright (C) 2001  Henry Spencer.
4
 * 
5
 * This library is free software; you can redistribute it and/or modify it
6
 * under the terms of the GNU Library General Public License as published by
7
 * the Free Software Foundation; either version 2 of the License, or (at your
8
 * option) any later version.  See <http://www.fsf.org/copyleft/lgpl.txt>.
9
 * 
10
 * This library is distributed in the hope that it will be useful, but
11
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
13
 * License for more details.
14
 *
15
 * RCSID $Id: version.in.c,v 1.1.1.1 2002/09/05 03:13:20 ken Exp $
16
 */
17
#include "internal.h"
18
#include "freeswan.h"
19
20
#define	V	"super-freeswan-1.99_kb3"		/* substituted in by Makefile */
21
static const char freeswan_number[] = V;
22
static const char freeswan_string[] = "Linux FreeS/WAN " V;
23
24
/*
25
 - ipsec_version_code - return IPsec version number/code, as string
26
 */
27
const char *
28
ipsec_version_code()
29
{
30
	return freeswan_number;
31
}
32
33
/*
34
 - ipsec_version_string - return full version string
35
 */
36
const char *
37
ipsec_version_string()
38
{
39
	return freeswan_string;
40
}

Return to bug 18446