Deleted Added
full compact
des-586.s (95967) des-586.s (127326)
1 # $FreeBSD: head/secure/lib/libcrypto/i386/des-586.s 95967 2002-05-03 00:14:39Z peter $
2 # Dont even think of reading this code
3 # It was automatically generated by des-586.pl
4 # Which is a perl program used to generate the x86 assember for
5 # any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris
6 # eric <eay@cryptsoft.com>
1 # $FreeBSD: head/secure/lib/libcrypto/i386/des-586.s 127326 2004-03-23 08:32:29Z markm $
7
2
3
4
5
6
7
8 .file "des-586.s"
9 .version "01.01"
10gcc2_compiled.:
11.text
12 .align 16
8 .file "des-586.s"
9 .version "01.01"
10gcc2_compiled.:
11.text
12 .align 16
13.globl des_encrypt1
14 .type des_encrypt1,@function
15des_encrypt1:
13.globl DES_encrypt1
14 .type DES_encrypt1,@function
15DES_encrypt1:
16 pushl %esi
17 pushl %edi
18
16 pushl %esi
17 pushl %edi
18
19 # Load the 2 words
19
20 movl 12(%esp), %esi
21 xorl %ecx, %ecx
22 pushl %ebx
23 pushl %ebp
24 movl (%esi), %eax
25 movl 28(%esp), %ebx
26 movl 4(%esi), %edi
27
20 movl 12(%esp), %esi
21 xorl %ecx, %ecx
22 pushl %ebx
23 pushl %ebp
24 movl (%esi), %eax
25 movl 28(%esp), %ebx
26 movl 4(%esi), %edi
27
28 # IP
28
29 roll $4, %eax
30 movl %eax, %esi
31 xorl %edi, %eax
32 andl $0xf0f0f0f0, %eax
33 xorl %eax, %esi
34 xorl %eax, %edi
35
36 roll $20, %edi

--- 20 unchanged lines hidden (view full) ---

57 roll $9, %eax
58 movl %eax, %esi
59 xorl %edi, %eax
60 andl $0xaaaaaaaa, %eax
61 xorl %eax, %esi
62 xorl %eax, %edi
63
64.byte 209
29 roll $4, %eax
30 movl %eax, %esi
31 xorl %edi, %eax
32 andl $0xf0f0f0f0, %eax
33 xorl %eax, %esi
34 xorl %eax, %edi
35
36 roll $20, %edi

--- 20 unchanged lines hidden (view full) ---

57 roll $9, %eax
58 movl %eax, %esi
59 xorl %edi, %eax
60 andl $0xaaaaaaaa, %eax
61 xorl %eax, %esi
62 xorl %eax, %edi
63
64.byte 209
65.byte 199 # roll $1 %edi
66 movl 24(%esp), %ebp
65.byte 199
66 leal DES_SPtrans, %ebp
67 movl 24(%esp), %ecx
67 cmpl $0, %ebx
68 je .L000start_decrypt
69
68 cmpl $0, %ebx
69 je .L000start_decrypt
70
70 # Round 0
71 movl (%ebp), %eax
71
72 movl (%ecx), %eax
72 xorl %ebx, %ebx
73 xorl %ebx, %ebx
73 movl 4(%ebp), %edx
74 movl 4(%ecx), %edx
74 xorl %esi, %eax
75 xorl %esi, %eax
76 xorl %ecx, %ecx
75 xorl %esi, %edx
76 andl $0xfcfcfcfc, %eax
77 andl $0xcfcfcfcf, %edx
78 movb %al, %bl
79 movb %ah, %cl
80 rorl $4, %edx
77 xorl %esi, %edx
78 andl $0xfcfcfcfc, %eax
79 andl $0xcfcfcfcf, %edx
80 movb %al, %bl
81 movb %ah, %cl
82 rorl $4, %edx
81 movl des_SPtrans(%ebx),%ebp
83 xorl (%ebp,%ebx),%edi
82 movb %dl, %bl
84 movb %dl, %bl
83 xorl %ebp, %edi
84 movl 0x200+des_SPtrans(%ecx),%ebp
85 xorl %ebp, %edi
85 xorl 0x200(%ebp,%ecx),%edi
86 movb %dh, %cl
87 shrl $16, %eax
86 movb %dh, %cl
87 shrl $16, %eax
88 movl 0x100+des_SPtrans(%ebx),%ebp
89 xorl %ebp, %edi
88 xorl 0x100(%ebp,%ebx),%edi
90 movb %ah, %bl
91 shrl $16, %edx
89 movb %ah, %bl
90 shrl $16, %edx
92 movl 0x300+des_SPtrans(%ecx),%ebp
93 xorl %ebp, %edi
94 movl 24(%esp), %ebp
91 xorl 0x300(%ebp,%ecx),%edi
95 movb %dh, %cl
96 andl $0xff, %eax
97 andl $0xff, %edx
92 movb %dh, %cl
93 andl $0xff, %eax
94 andl $0xff, %edx
98 movl 0x600+des_SPtrans(%ebx),%ebx
99 xorl %ebx, %edi
100 movl 0x700+des_SPtrans(%ecx),%ebx
101 xorl %ebx, %edi
102 movl 0x400+des_SPtrans(%eax),%ebx
103 xorl %ebx, %edi
104 movl 0x500+des_SPtrans(%edx),%ebx
105 xorl %ebx, %edi
95 xorl 0x600(%ebp,%ebx),%edi
96 xorl 0x700(%ebp,%ecx),%edi
97 movl 24(%esp), %ecx
98 xorl 0x400(%ebp,%eax),%edi
99 xorl 0x500(%ebp,%edx),%edi
106
100
107 # Round 1
108 movl 8(%ebp), %eax
101
102 movl 8(%ecx), %eax
109 xorl %ebx, %ebx
103 xorl %ebx, %ebx
110 movl 12(%ebp), %edx
104 movl 12(%ecx), %edx
111 xorl %edi, %eax
105 xorl %edi, %eax
106 xorl %ecx, %ecx
112 xorl %edi, %edx
113 andl $0xfcfcfcfc, %eax
114 andl $0xcfcfcfcf, %edx
115 movb %al, %bl
116 movb %ah, %cl
117 rorl $4, %edx
107 xorl %edi, %edx
108 andl $0xfcfcfcfc, %eax
109 andl $0xcfcfcfcf, %edx
110 movb %al, %bl
111 movb %ah, %cl
112 rorl $4, %edx
118 movl des_SPtrans(%ebx),%ebp
113 xorl (%ebp,%ebx),%esi
119 movb %dl, %bl
114 movb %dl, %bl
120 xorl %ebp, %esi
121 movl 0x200+des_SPtrans(%ecx),%ebp
122 xorl %ebp, %esi
115 xorl 0x200(%ebp,%ecx),%esi
123 movb %dh, %cl
124 shrl $16, %eax
116 movb %dh, %cl
117 shrl $16, %eax
125 movl 0x100+des_SPtrans(%ebx),%ebp
126 xorl %ebp, %esi
118 xorl 0x100(%ebp,%ebx),%esi
127 movb %ah, %bl
128 shrl $16, %edx
119 movb %ah, %bl
120 shrl $16, %edx
129 movl 0x300+des_SPtrans(%ecx),%ebp
130 xorl %ebp, %esi
131 movl 24(%esp), %ebp
121 xorl 0x300(%ebp,%ecx),%esi
132 movb %dh, %cl
133 andl $0xff, %eax
134 andl $0xff, %edx
122 movb %dh, %cl
123 andl $0xff, %eax
124 andl $0xff, %edx
135 movl 0x600+des_SPtrans(%ebx),%ebx
136 xorl %ebx, %esi
137 movl 0x700+des_SPtrans(%ecx),%ebx
138 xorl %ebx, %esi
139 movl 0x400+des_SPtrans(%eax),%ebx
140 xorl %ebx, %esi
141 movl 0x500+des_SPtrans(%edx),%ebx
142 xorl %ebx, %esi
125 xorl 0x600(%ebp,%ebx),%esi
126 xorl 0x700(%ebp,%ecx),%esi
127 movl 24(%esp), %ecx
128 xorl 0x400(%ebp,%eax),%esi
129 xorl 0x500(%ebp,%edx),%esi
143
130
144 # Round 2
145 movl 16(%ebp), %eax
131
132 movl 16(%ecx), %eax
146 xorl %ebx, %ebx
133 xorl %ebx, %ebx
147 movl 20(%ebp), %edx
134 movl 20(%ecx), %edx
148 xorl %esi, %eax
135 xorl %esi, %eax
136 xorl %ecx, %ecx
149 xorl %esi, %edx
150 andl $0xfcfcfcfc, %eax
151 andl $0xcfcfcfcf, %edx
152 movb %al, %bl
153 movb %ah, %cl
154 rorl $4, %edx
137 xorl %esi, %edx
138 andl $0xfcfcfcfc, %eax
139 andl $0xcfcfcfcf, %edx
140 movb %al, %bl
141 movb %ah, %cl
142 rorl $4, %edx
155 movl des_SPtrans(%ebx),%ebp
143 xorl (%ebp,%ebx),%edi
156 movb %dl, %bl
144 movb %dl, %bl
157 xorl %ebp, %edi
158 movl 0x200+des_SPtrans(%ecx),%ebp
159 xorl %ebp, %edi
145 xorl 0x200(%ebp,%ecx),%edi
160 movb %dh, %cl
161 shrl $16, %eax
146 movb %dh, %cl
147 shrl $16, %eax
162 movl 0x100+des_SPtrans(%ebx),%ebp
163 xorl %ebp, %edi
148 xorl 0x100(%ebp,%ebx),%edi
164 movb %ah, %bl
165 shrl $16, %edx
149 movb %ah, %bl
150 shrl $16, %edx
166 movl 0x300+des_SPtrans(%ecx),%ebp
167 xorl %ebp, %edi
168 movl 24(%esp), %ebp
151 xorl 0x300(%ebp,%ecx),%edi
169 movb %dh, %cl
170 andl $0xff, %eax
171 andl $0xff, %edx
152 movb %dh, %cl
153 andl $0xff, %eax
154 andl $0xff, %edx
172 movl 0x600+des_SPtrans(%ebx),%ebx
173 xorl %ebx, %edi
174 movl 0x700+des_SPtrans(%ecx),%ebx
175 xorl %ebx, %edi
176 movl 0x400+des_SPtrans(%eax),%ebx
177 xorl %ebx, %edi
178 movl 0x500+des_SPtrans(%edx),%ebx
179 xorl %ebx, %edi
155 xorl 0x600(%ebp,%ebx),%edi
156 xorl 0x700(%ebp,%ecx),%edi
157 movl 24(%esp), %ecx
158 xorl 0x400(%ebp,%eax),%edi
159 xorl 0x500(%ebp,%edx),%edi
180
160
181 # Round 3
182 movl 24(%ebp), %eax
161
162 movl 24(%ecx), %eax
183 xorl %ebx, %ebx
163 xorl %ebx, %ebx
184 movl 28(%ebp), %edx
164 movl 28(%ecx), %edx
185 xorl %edi, %eax
165 xorl %edi, %eax
166 xorl %ecx, %ecx
186 xorl %edi, %edx
187 andl $0xfcfcfcfc, %eax
188 andl $0xcfcfcfcf, %edx
189 movb %al, %bl
190 movb %ah, %cl
191 rorl $4, %edx
167 xorl %edi, %edx
168 andl $0xfcfcfcfc, %eax
169 andl $0xcfcfcfcf, %edx
170 movb %al, %bl
171 movb %ah, %cl
172 rorl $4, %edx
192 movl des_SPtrans(%ebx),%ebp
173 xorl (%ebp,%ebx),%esi
193 movb %dl, %bl
174 movb %dl, %bl
194 xorl %ebp, %esi
195 movl 0x200+des_SPtrans(%ecx),%ebp
196 xorl %ebp, %esi
175 xorl 0x200(%ebp,%ecx),%esi
197 movb %dh, %cl
198 shrl $16, %eax
176 movb %dh, %cl
177 shrl $16, %eax
199 movl 0x100+des_SPtrans(%ebx),%ebp
200 xorl %ebp, %esi
178 xorl 0x100(%ebp,%ebx),%esi
201 movb %ah, %bl
202 shrl $16, %edx
179 movb %ah, %bl
180 shrl $16, %edx
203 movl 0x300+des_SPtrans(%ecx),%ebp
204 xorl %ebp, %esi
205 movl 24(%esp), %ebp
181 xorl 0x300(%ebp,%ecx),%esi
206 movb %dh, %cl
207 andl $0xff, %eax
208 andl $0xff, %edx
182 movb %dh, %cl
183 andl $0xff, %eax
184 andl $0xff, %edx
209 movl 0x600+des_SPtrans(%ebx),%ebx
210 xorl %ebx, %esi
211 movl 0x700+des_SPtrans(%ecx),%ebx
212 xorl %ebx, %esi
213 movl 0x400+des_SPtrans(%eax),%ebx
214 xorl %ebx, %esi
215 movl 0x500+des_SPtrans(%edx),%ebx
216 xorl %ebx, %esi
185 xorl 0x600(%ebp,%ebx),%esi
186 xorl 0x700(%ebp,%ecx),%esi
187 movl 24(%esp), %ecx
188 xorl 0x400(%ebp,%eax),%esi
189 xorl 0x500(%ebp,%edx),%esi
217
190
218 # Round 4
219 movl 32(%ebp), %eax
191
192 movl 32(%ecx), %eax
220 xorl %ebx, %ebx
193 xorl %ebx, %ebx
221 movl 36(%ebp), %edx
194 movl 36(%ecx), %edx
222 xorl %esi, %eax
195 xorl %esi, %eax
196 xorl %ecx, %ecx
223 xorl %esi, %edx
224 andl $0xfcfcfcfc, %eax
225 andl $0xcfcfcfcf, %edx
226 movb %al, %bl
227 movb %ah, %cl
228 rorl $4, %edx
197 xorl %esi, %edx
198 andl $0xfcfcfcfc, %eax
199 andl $0xcfcfcfcf, %edx
200 movb %al, %bl
201 movb %ah, %cl
202 rorl $4, %edx
229 movl des_SPtrans(%ebx),%ebp
203 xorl (%ebp,%ebx),%edi
230 movb %dl, %bl
204 movb %dl, %bl
231 xorl %ebp, %edi
232 movl 0x200+des_SPtrans(%ecx),%ebp
233 xorl %ebp, %edi
205 xorl 0x200(%ebp,%ecx),%edi
234 movb %dh, %cl
235 shrl $16, %eax
206 movb %dh, %cl
207 shrl $16, %eax
236 movl 0x100+des_SPtrans(%ebx),%ebp
237 xorl %ebp, %edi
208 xorl 0x100(%ebp,%ebx),%edi
238 movb %ah, %bl
239 shrl $16, %edx
209 movb %ah, %bl
210 shrl $16, %edx
240 movl 0x300+des_SPtrans(%ecx),%ebp
241 xorl %ebp, %edi
242 movl 24(%esp), %ebp
211 xorl 0x300(%ebp,%ecx),%edi
243 movb %dh, %cl
244 andl $0xff, %eax
245 andl $0xff, %edx
212 movb %dh, %cl
213 andl $0xff, %eax
214 andl $0xff, %edx
246 movl 0x600+des_SPtrans(%ebx),%ebx
247 xorl %ebx, %edi
248 movl 0x700+des_SPtrans(%ecx),%ebx
249 xorl %ebx, %edi
250 movl 0x400+des_SPtrans(%eax),%ebx
251 xorl %ebx, %edi
252 movl 0x500+des_SPtrans(%edx),%ebx
253 xorl %ebx, %edi
215 xorl 0x600(%ebp,%ebx),%edi
216 xorl 0x700(%ebp,%ecx),%edi
217 movl 24(%esp), %ecx
218 xorl 0x400(%ebp,%eax),%edi
219 xorl 0x500(%ebp,%edx),%edi
254
220
255 # Round 5
256 movl 40(%ebp), %eax
221
222 movl 40(%ecx), %eax
257 xorl %ebx, %ebx
223 xorl %ebx, %ebx
258 movl 44(%ebp), %edx
224 movl 44(%ecx), %edx
259 xorl %edi, %eax
225 xorl %edi, %eax
226 xorl %ecx, %ecx
260 xorl %edi, %edx
261 andl $0xfcfcfcfc, %eax
262 andl $0xcfcfcfcf, %edx
263 movb %al, %bl
264 movb %ah, %cl
265 rorl $4, %edx
227 xorl %edi, %edx
228 andl $0xfcfcfcfc, %eax
229 andl $0xcfcfcfcf, %edx
230 movb %al, %bl
231 movb %ah, %cl
232 rorl $4, %edx
266 movl des_SPtrans(%ebx),%ebp
233 xorl (%ebp,%ebx),%esi
267 movb %dl, %bl
234 movb %dl, %bl
268 xorl %ebp, %esi
269 movl 0x200+des_SPtrans(%ecx),%ebp
270 xorl %ebp, %esi
235 xorl 0x200(%ebp,%ecx),%esi
271 movb %dh, %cl
272 shrl $16, %eax
236 movb %dh, %cl
237 shrl $16, %eax
273 movl 0x100+des_SPtrans(%ebx),%ebp
274 xorl %ebp, %esi
238 xorl 0x100(%ebp,%ebx),%esi
275 movb %ah, %bl
276 shrl $16, %edx
239 movb %ah, %bl
240 shrl $16, %edx
277 movl 0x300+des_SPtrans(%ecx),%ebp
278 xorl %ebp, %esi
279 movl 24(%esp), %ebp
241 xorl 0x300(%ebp,%ecx),%esi
280 movb %dh, %cl
281 andl $0xff, %eax
282 andl $0xff, %edx
242 movb %dh, %cl
243 andl $0xff, %eax
244 andl $0xff, %edx
283 movl 0x600+des_SPtrans(%ebx),%ebx
284 xorl %ebx, %esi
285 movl 0x700+des_SPtrans(%ecx),%ebx
286 xorl %ebx, %esi
287 movl 0x400+des_SPtrans(%eax),%ebx
288 xorl %ebx, %esi
289 movl 0x500+des_SPtrans(%edx),%ebx
290 xorl %ebx, %esi
245 xorl 0x600(%ebp,%ebx),%esi
246 xorl 0x700(%ebp,%ecx),%esi
247 movl 24(%esp), %ecx
248 xorl 0x400(%ebp,%eax),%esi
249 xorl 0x500(%ebp,%edx),%esi
291
250
292 # Round 6
293 movl 48(%ebp), %eax
251
252 movl 48(%ecx), %eax
294 xorl %ebx, %ebx
253 xorl %ebx, %ebx
295 movl 52(%ebp), %edx
254 movl 52(%ecx), %edx
296 xorl %esi, %eax
255 xorl %esi, %eax
256 xorl %ecx, %ecx
297 xorl %esi, %edx
298 andl $0xfcfcfcfc, %eax
299 andl $0xcfcfcfcf, %edx
300 movb %al, %bl
301 movb %ah, %cl
302 rorl $4, %edx
257 xorl %esi, %edx
258 andl $0xfcfcfcfc, %eax
259 andl $0xcfcfcfcf, %edx
260 movb %al, %bl
261 movb %ah, %cl
262 rorl $4, %edx
303 movl des_SPtrans(%ebx),%ebp
263 xorl (%ebp,%ebx),%edi
304 movb %dl, %bl
264 movb %dl, %bl
305 xorl %ebp, %edi
306 movl 0x200+des_SPtrans(%ecx),%ebp
307 xorl %ebp, %edi
265 xorl 0x200(%ebp,%ecx),%edi
308 movb %dh, %cl
309 shrl $16, %eax
266 movb %dh, %cl
267 shrl $16, %eax
310 movl 0x100+des_SPtrans(%ebx),%ebp
311 xorl %ebp, %edi
268 xorl 0x100(%ebp,%ebx),%edi
312 movb %ah, %bl
313 shrl $16, %edx
269 movb %ah, %bl
270 shrl $16, %edx
314 movl 0x300+des_SPtrans(%ecx),%ebp
315 xorl %ebp, %edi
316 movl 24(%esp), %ebp
271 xorl 0x300(%ebp,%ecx),%edi
317 movb %dh, %cl
318 andl $0xff, %eax
319 andl $0xff, %edx
272 movb %dh, %cl
273 andl $0xff, %eax
274 andl $0xff, %edx
320 movl 0x600+des_SPtrans(%ebx),%ebx
321 xorl %ebx, %edi
322 movl 0x700+des_SPtrans(%ecx),%ebx
323 xorl %ebx, %edi
324 movl 0x400+des_SPtrans(%eax),%ebx
325 xorl %ebx, %edi
326 movl 0x500+des_SPtrans(%edx),%ebx
327 xorl %ebx, %edi
275 xorl 0x600(%ebp,%ebx),%edi
276 xorl 0x700(%ebp,%ecx),%edi
277 movl 24(%esp), %ecx
278 xorl 0x400(%ebp,%eax),%edi
279 xorl 0x500(%ebp,%edx),%edi
328
280
329 # Round 7
330 movl 56(%ebp), %eax
281
282 movl 56(%ecx), %eax
331 xorl %ebx, %ebx
283 xorl %ebx, %ebx
332 movl 60(%ebp), %edx
284 movl 60(%ecx), %edx
333 xorl %edi, %eax
285 xorl %edi, %eax
286 xorl %ecx, %ecx
334 xorl %edi, %edx
335 andl $0xfcfcfcfc, %eax
336 andl $0xcfcfcfcf, %edx
337 movb %al, %bl
338 movb %ah, %cl
339 rorl $4, %edx
287 xorl %edi, %edx
288 andl $0xfcfcfcfc, %eax
289 andl $0xcfcfcfcf, %edx
290 movb %al, %bl
291 movb %ah, %cl
292 rorl $4, %edx
340 movl des_SPtrans(%ebx),%ebp
293 xorl (%ebp,%ebx),%esi
341 movb %dl, %bl
294 movb %dl, %bl
342 xorl %ebp, %esi
343 movl 0x200+des_SPtrans(%ecx),%ebp
344 xorl %ebp, %esi
295 xorl 0x200(%ebp,%ecx),%esi
345 movb %dh, %cl
346 shrl $16, %eax
296 movb %dh, %cl
297 shrl $16, %eax
347 movl 0x100+des_SPtrans(%ebx),%ebp
348 xorl %ebp, %esi
298 xorl 0x100(%ebp,%ebx),%esi
349 movb %ah, %bl
350 shrl $16, %edx
299 movb %ah, %bl
300 shrl $16, %edx
351 movl 0x300+des_SPtrans(%ecx),%ebp
352 xorl %ebp, %esi
353 movl 24(%esp), %ebp
301 xorl 0x300(%ebp,%ecx),%esi
354 movb %dh, %cl
355 andl $0xff, %eax
356 andl $0xff, %edx
302 movb %dh, %cl
303 andl $0xff, %eax
304 andl $0xff, %edx
357 movl 0x600+des_SPtrans(%ebx),%ebx
358 xorl %ebx, %esi
359 movl 0x700+des_SPtrans(%ecx),%ebx
360 xorl %ebx, %esi
361 movl 0x400+des_SPtrans(%eax),%ebx
362 xorl %ebx, %esi
363 movl 0x500+des_SPtrans(%edx),%ebx
364 xorl %ebx, %esi
305 xorl 0x600(%ebp,%ebx),%esi
306 xorl 0x700(%ebp,%ecx),%esi
307 movl 24(%esp), %ecx
308 xorl 0x400(%ebp,%eax),%esi
309 xorl 0x500(%ebp,%edx),%esi
365
310
366 # Round 8
367 movl 64(%ebp), %eax
311
312 movl 64(%ecx), %eax
368 xorl %ebx, %ebx
313 xorl %ebx, %ebx
369 movl 68(%ebp), %edx
314 movl 68(%ecx), %edx
370 xorl %esi, %eax
315 xorl %esi, %eax
316 xorl %ecx, %ecx
371 xorl %esi, %edx
372 andl $0xfcfcfcfc, %eax
373 andl $0xcfcfcfcf, %edx
374 movb %al, %bl
375 movb %ah, %cl
376 rorl $4, %edx
317 xorl %esi, %edx
318 andl $0xfcfcfcfc, %eax
319 andl $0xcfcfcfcf, %edx
320 movb %al, %bl
321 movb %ah, %cl
322 rorl $4, %edx
377 movl des_SPtrans(%ebx),%ebp
323 xorl (%ebp,%ebx),%edi
378 movb %dl, %bl
324 movb %dl, %bl
379 xorl %ebp, %edi
380 movl 0x200+des_SPtrans(%ecx),%ebp
381 xorl %ebp, %edi
325 xorl 0x200(%ebp,%ecx),%edi
382 movb %dh, %cl
383 shrl $16, %eax
326 movb %dh, %cl
327 shrl $16, %eax
384 movl 0x100+des_SPtrans(%ebx),%ebp
385 xorl %ebp, %edi
328 xorl 0x100(%ebp,%ebx),%edi
386 movb %ah, %bl
387 shrl $16, %edx
329 movb %ah, %bl
330 shrl $16, %edx
388 movl 0x300+des_SPtrans(%ecx),%ebp
389 xorl %ebp, %edi
390 movl 24(%esp), %ebp
331 xorl 0x300(%ebp,%ecx),%edi
391 movb %dh, %cl
392 andl $0xff, %eax
393 andl $0xff, %edx
332 movb %dh, %cl
333 andl $0xff, %eax
334 andl $0xff, %edx
394 movl 0x600+des_SPtrans(%ebx),%ebx
395 xorl %ebx, %edi
396 movl 0x700+des_SPtrans(%ecx),%ebx
397 xorl %ebx, %edi
398 movl 0x400+des_SPtrans(%eax),%ebx
399 xorl %ebx, %edi
400 movl 0x500+des_SPtrans(%edx),%ebx
401 xorl %ebx, %edi
335 xorl 0x600(%ebp,%ebx),%edi
336 xorl 0x700(%ebp,%ecx),%edi
337 movl 24(%esp), %ecx
338 xorl 0x400(%ebp,%eax),%edi
339 xorl 0x500(%ebp,%edx),%edi
402
340
403 # Round 9
404 movl 72(%ebp), %eax
341
342 movl 72(%ecx), %eax
405 xorl %ebx, %ebx
343 xorl %ebx, %ebx
406 movl 76(%ebp), %edx
344 movl 76(%ecx), %edx
407 xorl %edi, %eax
345 xorl %edi, %eax
346 xorl %ecx, %ecx
408 xorl %edi, %edx
409 andl $0xfcfcfcfc, %eax
410 andl $0xcfcfcfcf, %edx
411 movb %al, %bl
412 movb %ah, %cl
413 rorl $4, %edx
347 xorl %edi, %edx
348 andl $0xfcfcfcfc, %eax
349 andl $0xcfcfcfcf, %edx
350 movb %al, %bl
351 movb %ah, %cl
352 rorl $4, %edx
414 movl des_SPtrans(%ebx),%ebp
353 xorl (%ebp,%ebx),%esi
415 movb %dl, %bl
354 movb %dl, %bl
416 xorl %ebp, %esi
417 movl 0x200+des_SPtrans(%ecx),%ebp
418 xorl %ebp, %esi
355 xorl 0x200(%ebp,%ecx),%esi
419 movb %dh, %cl
420 shrl $16, %eax
356 movb %dh, %cl
357 shrl $16, %eax
421 movl 0x100+des_SPtrans(%ebx),%ebp
422 xorl %ebp, %esi
358 xorl 0x100(%ebp,%ebx),%esi
423 movb %ah, %bl
424 shrl $16, %edx
359 movb %ah, %bl
360 shrl $16, %edx
425 movl 0x300+des_SPtrans(%ecx),%ebp
426 xorl %ebp, %esi
427 movl 24(%esp), %ebp
361 xorl 0x300(%ebp,%ecx),%esi
428 movb %dh, %cl
429 andl $0xff, %eax
430 andl $0xff, %edx
362 movb %dh, %cl
363 andl $0xff, %eax
364 andl $0xff, %edx
431 movl 0x600+des_SPtrans(%ebx),%ebx
432 xorl %ebx, %esi
433 movl 0x700+des_SPtrans(%ecx),%ebx
434 xorl %ebx, %esi
435 movl 0x400+des_SPtrans(%eax),%ebx
436 xorl %ebx, %esi
437 movl 0x500+des_SPtrans(%edx),%ebx
438 xorl %ebx, %esi
365 xorl 0x600(%ebp,%ebx),%esi
366 xorl 0x700(%ebp,%ecx),%esi
367 movl 24(%esp), %ecx
368 xorl 0x400(%ebp,%eax),%esi
369 xorl 0x500(%ebp,%edx),%esi
439
370
440 # Round 10
441 movl 80(%ebp), %eax
371
372 movl 80(%ecx), %eax
442 xorl %ebx, %ebx
373 xorl %ebx, %ebx
443 movl 84(%ebp), %edx
374 movl 84(%ecx), %edx
444 xorl %esi, %eax
375 xorl %esi, %eax
376 xorl %ecx, %ecx
445 xorl %esi, %edx
446 andl $0xfcfcfcfc, %eax
447 andl $0xcfcfcfcf, %edx
448 movb %al, %bl
449 movb %ah, %cl
450 rorl $4, %edx
377 xorl %esi, %edx
378 andl $0xfcfcfcfc, %eax
379 andl $0xcfcfcfcf, %edx
380 movb %al, %bl
381 movb %ah, %cl
382 rorl $4, %edx
451 movl des_SPtrans(%ebx),%ebp
383 xorl (%ebp,%ebx),%edi
452 movb %dl, %bl
384 movb %dl, %bl
453 xorl %ebp, %edi
454 movl 0x200+des_SPtrans(%ecx),%ebp
455 xorl %ebp, %edi
385 xorl 0x200(%ebp,%ecx),%edi
456 movb %dh, %cl
457 shrl $16, %eax
386 movb %dh, %cl
387 shrl $16, %eax
458 movl 0x100+des_SPtrans(%ebx),%ebp
459 xorl %ebp, %edi
388 xorl 0x100(%ebp,%ebx),%edi
460 movb %ah, %bl
461 shrl $16, %edx
389 movb %ah, %bl
390 shrl $16, %edx
462 movl 0x300+des_SPtrans(%ecx),%ebp
463 xorl %ebp, %edi
464 movl 24(%esp), %ebp
391 xorl 0x300(%ebp,%ecx),%edi
465 movb %dh, %cl
466 andl $0xff, %eax
467 andl $0xff, %edx
392 movb %dh, %cl
393 andl $0xff, %eax
394 andl $0xff, %edx
468 movl 0x600+des_SPtrans(%ebx),%ebx
469 xorl %ebx, %edi
470 movl 0x700+des_SPtrans(%ecx),%ebx
471 xorl %ebx, %edi
472 movl 0x400+des_SPtrans(%eax),%ebx
473 xorl %ebx, %edi
474 movl 0x500+des_SPtrans(%edx),%ebx
475 xorl %ebx, %edi
395 xorl 0x600(%ebp,%ebx),%edi
396 xorl 0x700(%ebp,%ecx),%edi
397 movl 24(%esp), %ecx
398 xorl 0x400(%ebp,%eax),%edi
399 xorl 0x500(%ebp,%edx),%edi
476
400
477 # Round 11
478 movl 88(%ebp), %eax
401
402 movl 88(%ecx), %eax
479 xorl %ebx, %ebx
403 xorl %ebx, %ebx
480 movl 92(%ebp), %edx
404 movl 92(%ecx), %edx
481 xorl %edi, %eax
405 xorl %edi, %eax
406 xorl %ecx, %ecx
482 xorl %edi, %edx
483 andl $0xfcfcfcfc, %eax
484 andl $0xcfcfcfcf, %edx
485 movb %al, %bl
486 movb %ah, %cl
487 rorl $4, %edx
407 xorl %edi, %edx
408 andl $0xfcfcfcfc, %eax
409 andl $0xcfcfcfcf, %edx
410 movb %al, %bl
411 movb %ah, %cl
412 rorl $4, %edx
488 movl des_SPtrans(%ebx),%ebp
413 xorl (%ebp,%ebx),%esi
489 movb %dl, %bl
414 movb %dl, %bl
490 xorl %ebp, %esi
491 movl 0x200+des_SPtrans(%ecx),%ebp
492 xorl %ebp, %esi
415 xorl 0x200(%ebp,%ecx),%esi
493 movb %dh, %cl
494 shrl $16, %eax
416 movb %dh, %cl
417 shrl $16, %eax
495 movl 0x100+des_SPtrans(%ebx),%ebp
496 xorl %ebp, %esi
418 xorl 0x100(%ebp,%ebx),%esi
497 movb %ah, %bl
498 shrl $16, %edx
419 movb %ah, %bl
420 shrl $16, %edx
499 movl 0x300+des_SPtrans(%ecx),%ebp
500 xorl %ebp, %esi
501 movl 24(%esp), %ebp
421 xorl 0x300(%ebp,%ecx),%esi
502 movb %dh, %cl
503 andl $0xff, %eax
504 andl $0xff, %edx
422 movb %dh, %cl
423 andl $0xff, %eax
424 andl $0xff, %edx
505 movl 0x600+des_SPtrans(%ebx),%ebx
506 xorl %ebx, %esi
507 movl 0x700+des_SPtrans(%ecx),%ebx
508 xorl %ebx, %esi
509 movl 0x400+des_SPtrans(%eax),%ebx
510 xorl %ebx, %esi
511 movl 0x500+des_SPtrans(%edx),%ebx
512 xorl %ebx, %esi
425 xorl 0x600(%ebp,%ebx),%esi
426 xorl 0x700(%ebp,%ecx),%esi
427 movl 24(%esp), %ecx
428 xorl 0x400(%ebp,%eax),%esi
429 xorl 0x500(%ebp,%edx),%esi
513
430
514 # Round 12
515 movl 96(%ebp), %eax
431
432 movl 96(%ecx), %eax
516 xorl %ebx, %ebx
433 xorl %ebx, %ebx
517 movl 100(%ebp), %edx
434 movl 100(%ecx), %edx
518 xorl %esi, %eax
435 xorl %esi, %eax
436 xorl %ecx, %ecx
519 xorl %esi, %edx
520 andl $0xfcfcfcfc, %eax
521 andl $0xcfcfcfcf, %edx
522 movb %al, %bl
523 movb %ah, %cl
524 rorl $4, %edx
437 xorl %esi, %edx
438 andl $0xfcfcfcfc, %eax
439 andl $0xcfcfcfcf, %edx
440 movb %al, %bl
441 movb %ah, %cl
442 rorl $4, %edx
525 movl des_SPtrans(%ebx),%ebp
443 xorl (%ebp,%ebx),%edi
526 movb %dl, %bl
444 movb %dl, %bl
527 xorl %ebp, %edi
528 movl 0x200+des_SPtrans(%ecx),%ebp
529 xorl %ebp, %edi
445 xorl 0x200(%ebp,%ecx),%edi
530 movb %dh, %cl
531 shrl $16, %eax
446 movb %dh, %cl
447 shrl $16, %eax
532 movl 0x100+des_SPtrans(%ebx),%ebp
533 xorl %ebp, %edi
448 xorl 0x100(%ebp,%ebx),%edi
534 movb %ah, %bl
535 shrl $16, %edx
449 movb %ah, %bl
450 shrl $16, %edx
536 movl 0x300+des_SPtrans(%ecx),%ebp
537 xorl %ebp, %edi
538 movl 24(%esp), %ebp
451 xorl 0x300(%ebp,%ecx),%edi
539 movb %dh, %cl
540 andl $0xff, %eax
541 andl $0xff, %edx
452 movb %dh, %cl
453 andl $0xff, %eax
454 andl $0xff, %edx
542 movl 0x600+des_SPtrans(%ebx),%ebx
543 xorl %ebx, %edi
544 movl 0x700+des_SPtrans(%ecx),%ebx
545 xorl %ebx, %edi
546 movl 0x400+des_SPtrans(%eax),%ebx
547 xorl %ebx, %edi
548 movl 0x500+des_SPtrans(%edx),%ebx
549 xorl %ebx, %edi
455 xorl 0x600(%ebp,%ebx),%edi
456 xorl 0x700(%ebp,%ecx),%edi
457 movl 24(%esp), %ecx
458 xorl 0x400(%ebp,%eax),%edi
459 xorl 0x500(%ebp,%edx),%edi
550
460
551 # Round 13
552 movl 104(%ebp), %eax
461
462 movl 104(%ecx), %eax
553 xorl %ebx, %ebx
463 xorl %ebx, %ebx
554 movl 108(%ebp), %edx
464 movl 108(%ecx), %edx
555 xorl %edi, %eax
465 xorl %edi, %eax
466 xorl %ecx, %ecx
556 xorl %edi, %edx
557 andl $0xfcfcfcfc, %eax
558 andl $0xcfcfcfcf, %edx
559 movb %al, %bl
560 movb %ah, %cl
561 rorl $4, %edx
467 xorl %edi, %edx
468 andl $0xfcfcfcfc, %eax
469 andl $0xcfcfcfcf, %edx
470 movb %al, %bl
471 movb %ah, %cl
472 rorl $4, %edx
562 movl des_SPtrans(%ebx),%ebp
473 xorl (%ebp,%ebx),%esi
563 movb %dl, %bl
474 movb %dl, %bl
564 xorl %ebp, %esi
565 movl 0x200+des_SPtrans(%ecx),%ebp
566 xorl %ebp, %esi
475 xorl 0x200(%ebp,%ecx),%esi
567 movb %dh, %cl
568 shrl $16, %eax
476 movb %dh, %cl
477 shrl $16, %eax
569 movl 0x100+des_SPtrans(%ebx),%ebp
570 xorl %ebp, %esi
478 xorl 0x100(%ebp,%ebx),%esi
571 movb %ah, %bl
572 shrl $16, %edx
479 movb %ah, %bl
480 shrl $16, %edx
573 movl 0x300+des_SPtrans(%ecx),%ebp
574 xorl %ebp, %esi
575 movl 24(%esp), %ebp
481 xorl 0x300(%ebp,%ecx),%esi
576 movb %dh, %cl
577 andl $0xff, %eax
578 andl $0xff, %edx
482 movb %dh, %cl
483 andl $0xff, %eax
484 andl $0xff, %edx
579 movl 0x600+des_SPtrans(%ebx),%ebx
580 xorl %ebx, %esi
581 movl 0x700+des_SPtrans(%ecx),%ebx
582 xorl %ebx, %esi
583 movl 0x400+des_SPtrans(%eax),%ebx
584 xorl %ebx, %esi
585 movl 0x500+des_SPtrans(%edx),%ebx
586 xorl %ebx, %esi
485 xorl 0x600(%ebp,%ebx),%esi
486 xorl 0x700(%ebp,%ecx),%esi
487 movl 24(%esp), %ecx
488 xorl 0x400(%ebp,%eax),%esi
489 xorl 0x500(%ebp,%edx),%esi
587
490
588 # Round 14
589 movl 112(%ebp), %eax
491
492 movl 112(%ecx), %eax
590 xorl %ebx, %ebx
493 xorl %ebx, %ebx
591 movl 116(%ebp), %edx
494 movl 116(%ecx), %edx
592 xorl %esi, %eax
495 xorl %esi, %eax
496 xorl %ecx, %ecx
593 xorl %esi, %edx
594 andl $0xfcfcfcfc, %eax
595 andl $0xcfcfcfcf, %edx
596 movb %al, %bl
597 movb %ah, %cl
598 rorl $4, %edx
497 xorl %esi, %edx
498 andl $0xfcfcfcfc, %eax
499 andl $0xcfcfcfcf, %edx
500 movb %al, %bl
501 movb %ah, %cl
502 rorl $4, %edx
599 movl des_SPtrans(%ebx),%ebp
503 xorl (%ebp,%ebx),%edi
600 movb %dl, %bl
504 movb %dl, %bl
601 xorl %ebp, %edi
602 movl 0x200+des_SPtrans(%ecx),%ebp
603 xorl %ebp, %edi
505 xorl 0x200(%ebp,%ecx),%edi
604 movb %dh, %cl
605 shrl $16, %eax
506 movb %dh, %cl
507 shrl $16, %eax
606 movl 0x100+des_SPtrans(%ebx),%ebp
607 xorl %ebp, %edi
508 xorl 0x100(%ebp,%ebx),%edi
608 movb %ah, %bl
609 shrl $16, %edx
509 movb %ah, %bl
510 shrl $16, %edx
610 movl 0x300+des_SPtrans(%ecx),%ebp
611 xorl %ebp, %edi
612 movl 24(%esp), %ebp
511 xorl 0x300(%ebp,%ecx),%edi
613 movb %dh, %cl
614 andl $0xff, %eax
615 andl $0xff, %edx
512 movb %dh, %cl
513 andl $0xff, %eax
514 andl $0xff, %edx
616 movl 0x600+des_SPtrans(%ebx),%ebx
617 xorl %ebx, %edi
618 movl 0x700+des_SPtrans(%ecx),%ebx
619 xorl %ebx, %edi
620 movl 0x400+des_SPtrans(%eax),%ebx
621 xorl %ebx, %edi
622 movl 0x500+des_SPtrans(%edx),%ebx
623 xorl %ebx, %edi
515 xorl 0x600(%ebp,%ebx),%edi
516 xorl 0x700(%ebp,%ecx),%edi
517 movl 24(%esp), %ecx
518 xorl 0x400(%ebp,%eax),%edi
519 xorl 0x500(%ebp,%edx),%edi
624
520
625 # Round 15
626 movl 120(%ebp), %eax
521
522 movl 120(%ecx), %eax
627 xorl %ebx, %ebx
523 xorl %ebx, %ebx
628 movl 124(%ebp), %edx
524 movl 124(%ecx), %edx
629 xorl %edi, %eax
525 xorl %edi, %eax
526 xorl %ecx, %ecx
630 xorl %edi, %edx
631 andl $0xfcfcfcfc, %eax
632 andl $0xcfcfcfcf, %edx
633 movb %al, %bl
634 movb %ah, %cl
635 rorl $4, %edx
527 xorl %edi, %edx
528 andl $0xfcfcfcfc, %eax
529 andl $0xcfcfcfcf, %edx
530 movb %al, %bl
531 movb %ah, %cl
532 rorl $4, %edx
636 movl des_SPtrans(%ebx),%ebp
533 xorl (%ebp,%ebx),%esi
637 movb %dl, %bl
534 movb %dl, %bl
638 xorl %ebp, %esi
639 movl 0x200+des_SPtrans(%ecx),%ebp
640 xorl %ebp, %esi
535 xorl 0x200(%ebp,%ecx),%esi
641 movb %dh, %cl
642 shrl $16, %eax
536 movb %dh, %cl
537 shrl $16, %eax
643 movl 0x100+des_SPtrans(%ebx),%ebp
644 xorl %ebp, %esi
538 xorl 0x100(%ebp,%ebx),%esi
645 movb %ah, %bl
646 shrl $16, %edx
539 movb %ah, %bl
540 shrl $16, %edx
647 movl 0x300+des_SPtrans(%ecx),%ebp
648 xorl %ebp, %esi
649 movl 24(%esp), %ebp
541 xorl 0x300(%ebp,%ecx),%esi
650 movb %dh, %cl
651 andl $0xff, %eax
652 andl $0xff, %edx
542 movb %dh, %cl
543 andl $0xff, %eax
544 andl $0xff, %edx
653 movl 0x600+des_SPtrans(%ebx),%ebx
654 xorl %ebx, %esi
655 movl 0x700+des_SPtrans(%ecx),%ebx
656 xorl %ebx, %esi
657 movl 0x400+des_SPtrans(%eax),%ebx
658 xorl %ebx, %esi
659 movl 0x500+des_SPtrans(%edx),%ebx
660 xorl %ebx, %esi
545 xorl 0x600(%ebp,%ebx),%esi
546 xorl 0x700(%ebp,%ecx),%esi
547 movl 24(%esp), %ecx
548 xorl 0x400(%ebp,%eax),%esi
549 xorl 0x500(%ebp,%edx),%esi
661 jmp .L001end
662.L000start_decrypt:
663
550 jmp .L001end
551.L000start_decrypt:
552
664 # Round 15
665 movl 120(%ebp), %eax
553
554 movl 120(%ecx), %eax
666 xorl %ebx, %ebx
555 xorl %ebx, %ebx
667 movl 124(%ebp), %edx
556 movl 124(%ecx), %edx
668 xorl %esi, %eax
557 xorl %esi, %eax
558 xorl %ecx, %ecx
669 xorl %esi, %edx
670 andl $0xfcfcfcfc, %eax
671 andl $0xcfcfcfcf, %edx
672 movb %al, %bl
673 movb %ah, %cl
674 rorl $4, %edx
559 xorl %esi, %edx
560 andl $0xfcfcfcfc, %eax
561 andl $0xcfcfcfcf, %edx
562 movb %al, %bl
563 movb %ah, %cl
564 rorl $4, %edx
675 movl des_SPtrans(%ebx),%ebp
565 xorl (%ebp,%ebx),%edi
676 movb %dl, %bl
566 movb %dl, %bl
677 xorl %ebp, %edi
678 movl 0x200+des_SPtrans(%ecx),%ebp
679 xorl %ebp, %edi
567 xorl 0x200(%ebp,%ecx),%edi
680 movb %dh, %cl
681 shrl $16, %eax
568 movb %dh, %cl
569 shrl $16, %eax
682 movl 0x100+des_SPtrans(%ebx),%ebp
683 xorl %ebp, %edi
570 xorl 0x100(%ebp,%ebx),%edi
684 movb %ah, %bl
685 shrl $16, %edx
571 movb %ah, %bl
572 shrl $16, %edx
686 movl 0x300+des_SPtrans(%ecx),%ebp
687 xorl %ebp, %edi
688 movl 24(%esp), %ebp
573 xorl 0x300(%ebp,%ecx),%edi
689 movb %dh, %cl
690 andl $0xff, %eax
691 andl $0xff, %edx
574 movb %dh, %cl
575 andl $0xff, %eax
576 andl $0xff, %edx
692 movl 0x600+des_SPtrans(%ebx),%ebx
693 xorl %ebx, %edi
694 movl 0x700+des_SPtrans(%ecx),%ebx
695 xorl %ebx, %edi
696 movl 0x400+des_SPtrans(%eax),%ebx
697 xorl %ebx, %edi
698 movl 0x500+des_SPtrans(%edx),%ebx
699 xorl %ebx, %edi
577 xorl 0x600(%ebp,%ebx),%edi
578 xorl 0x700(%ebp,%ecx),%edi
579 movl 24(%esp), %ecx
580 xorl 0x400(%ebp,%eax),%edi
581 xorl 0x500(%ebp,%edx),%edi
700
582
701 # Round 14
702 movl 112(%ebp), %eax
583
584 movl 112(%ecx), %eax
703 xorl %ebx, %ebx
585 xorl %ebx, %ebx
704 movl 116(%ebp), %edx
586 movl 116(%ecx), %edx
705 xorl %edi, %eax
587 xorl %edi, %eax
588 xorl %ecx, %ecx
706 xorl %edi, %edx
707 andl $0xfcfcfcfc, %eax
708 andl $0xcfcfcfcf, %edx
709 movb %al, %bl
710 movb %ah, %cl
711 rorl $4, %edx
589 xorl %edi, %edx
590 andl $0xfcfcfcfc, %eax
591 andl $0xcfcfcfcf, %edx
592 movb %al, %bl
593 movb %ah, %cl
594 rorl $4, %edx
712 movl des_SPtrans(%ebx),%ebp
595 xorl (%ebp,%ebx),%esi
713 movb %dl, %bl
596 movb %dl, %bl
714 xorl %ebp, %esi
715 movl 0x200+des_SPtrans(%ecx),%ebp
716 xorl %ebp, %esi
597 xorl 0x200(%ebp,%ecx),%esi
717 movb %dh, %cl
718 shrl $16, %eax
598 movb %dh, %cl
599 shrl $16, %eax
719 movl 0x100+des_SPtrans(%ebx),%ebp
720 xorl %ebp, %esi
600 xorl 0x100(%ebp,%ebx),%esi
721 movb %ah, %bl
722 shrl $16, %edx
601 movb %ah, %bl
602 shrl $16, %edx
723 movl 0x300+des_SPtrans(%ecx),%ebp
724 xorl %ebp, %esi
725 movl 24(%esp), %ebp
603 xorl 0x300(%ebp,%ecx),%esi
726 movb %dh, %cl
727 andl $0xff, %eax
728 andl $0xff, %edx
604 movb %dh, %cl
605 andl $0xff, %eax
606 andl $0xff, %edx
729 movl 0x600+des_SPtrans(%ebx),%ebx
730 xorl %ebx, %esi
731 movl 0x700+des_SPtrans(%ecx),%ebx
732 xorl %ebx, %esi
733 movl 0x400+des_SPtrans(%eax),%ebx
734 xorl %ebx, %esi
735 movl 0x500+des_SPtrans(%edx),%ebx
736 xorl %ebx, %esi
607 xorl 0x600(%ebp,%ebx),%esi
608 xorl 0x700(%ebp,%ecx),%esi
609 movl 24(%esp), %ecx
610 xorl 0x400(%ebp,%eax),%esi
611 xorl 0x500(%ebp,%edx),%esi
737
612
738 # Round 13
739 movl 104(%ebp), %eax
613
614 movl 104(%ecx), %eax
740 xorl %ebx, %ebx
615 xorl %ebx, %ebx
741 movl 108(%ebp), %edx
616 movl 108(%ecx), %edx
742 xorl %esi, %eax
617 xorl %esi, %eax
618 xorl %ecx, %ecx
743 xorl %esi, %edx
744 andl $0xfcfcfcfc, %eax
745 andl $0xcfcfcfcf, %edx
746 movb %al, %bl
747 movb %ah, %cl
748 rorl $4, %edx
619 xorl %esi, %edx
620 andl $0xfcfcfcfc, %eax
621 andl $0xcfcfcfcf, %edx
622 movb %al, %bl
623 movb %ah, %cl
624 rorl $4, %edx
749 movl des_SPtrans(%ebx),%ebp
625 xorl (%ebp,%ebx),%edi
750 movb %dl, %bl
626 movb %dl, %bl
751 xorl %ebp, %edi
752 movl 0x200+des_SPtrans(%ecx),%ebp
753 xorl %ebp, %edi
627 xorl 0x200(%ebp,%ecx),%edi
754 movb %dh, %cl
755 shrl $16, %eax
628 movb %dh, %cl
629 shrl $16, %eax
756 movl 0x100+des_SPtrans(%ebx),%ebp
757 xorl %ebp, %edi
630 xorl 0x100(%ebp,%ebx),%edi
758 movb %ah, %bl
759 shrl $16, %edx
631 movb %ah, %bl
632 shrl $16, %edx
760 movl 0x300+des_SPtrans(%ecx),%ebp
761 xorl %ebp, %edi
762 movl 24(%esp), %ebp
633 xorl 0x300(%ebp,%ecx),%edi
763 movb %dh, %cl
764 andl $0xff, %eax
765 andl $0xff, %edx
634 movb %dh, %cl
635 andl $0xff, %eax
636 andl $0xff, %edx
766 movl 0x600+des_SPtrans(%ebx),%ebx
767 xorl %ebx, %edi
768 movl 0x700+des_SPtrans(%ecx),%ebx
769 xorl %ebx, %edi
770 movl 0x400+des_SPtrans(%eax),%ebx
771 xorl %ebx, %edi
772 movl 0x500+des_SPtrans(%edx),%ebx
773 xorl %ebx, %edi
637 xorl 0x600(%ebp,%ebx),%edi
638 xorl 0x700(%ebp,%ecx),%edi
639 movl 24(%esp), %ecx
640 xorl 0x400(%ebp,%eax),%edi
641 xorl 0x500(%ebp,%edx),%edi
774
642
775 # Round 12
776 movl 96(%ebp), %eax
643
644 movl 96(%ecx), %eax
777 xorl %ebx, %ebx
645 xorl %ebx, %ebx
778 movl 100(%ebp), %edx
646 movl 100(%ecx), %edx
779 xorl %edi, %eax
647 xorl %edi, %eax
648 xorl %ecx, %ecx
780 xorl %edi, %edx
781 andl $0xfcfcfcfc, %eax
782 andl $0xcfcfcfcf, %edx
783 movb %al, %bl
784 movb %ah, %cl
785 rorl $4, %edx
649 xorl %edi, %edx
650 andl $0xfcfcfcfc, %eax
651 andl $0xcfcfcfcf, %edx
652 movb %al, %bl
653 movb %ah, %cl
654 rorl $4, %edx
786 movl des_SPtrans(%ebx),%ebp
655 xorl (%ebp,%ebx),%esi
787 movb %dl, %bl
656 movb %dl, %bl
788 xorl %ebp, %esi
789 movl 0x200+des_SPtrans(%ecx),%ebp
790 xorl %ebp, %esi
657 xorl 0x200(%ebp,%ecx),%esi
791 movb %dh, %cl
792 shrl $16, %eax
658 movb %dh, %cl
659 shrl $16, %eax
793 movl 0x100+des_SPtrans(%ebx),%ebp
794 xorl %ebp, %esi
660 xorl 0x100(%ebp,%ebx),%esi
795 movb %ah, %bl
796 shrl $16, %edx
661 movb %ah, %bl
662 shrl $16, %edx
797 movl 0x300+des_SPtrans(%ecx),%ebp
798 xorl %ebp, %esi
799 movl 24(%esp), %ebp
663 xorl 0x300(%ebp,%ecx),%esi
800 movb %dh, %cl
801 andl $0xff, %eax
802 andl $0xff, %edx
664 movb %dh, %cl
665 andl $0xff, %eax
666 andl $0xff, %edx
803 movl 0x600+des_SPtrans(%ebx),%ebx
804 xorl %ebx, %esi
805 movl 0x700+des_SPtrans(%ecx),%ebx
806 xorl %ebx, %esi
807 movl 0x400+des_SPtrans(%eax),%ebx
808 xorl %ebx, %esi
809 movl 0x500+des_SPtrans(%edx),%ebx
810 xorl %ebx, %esi
667 xorl 0x600(%ebp,%ebx),%esi
668 xorl 0x700(%ebp,%ecx),%esi
669 movl 24(%esp), %ecx
670 xorl 0x400(%ebp,%eax),%esi
671 xorl 0x500(%ebp,%edx),%esi
811
672
812 # Round 11
813 movl 88(%ebp), %eax
673
674 movl 88(%ecx), %eax
814 xorl %ebx, %ebx
675 xorl %ebx, %ebx
815 movl 92(%ebp), %edx
676 movl 92(%ecx), %edx
816 xorl %esi, %eax
677 xorl %esi, %eax
678 xorl %ecx, %ecx
817 xorl %esi, %edx
818 andl $0xfcfcfcfc, %eax
819 andl $0xcfcfcfcf, %edx
820 movb %al, %bl
821 movb %ah, %cl
822 rorl $4, %edx
679 xorl %esi, %edx
680 andl $0xfcfcfcfc, %eax
681 andl $0xcfcfcfcf, %edx
682 movb %al, %bl
683 movb %ah, %cl
684 rorl $4, %edx
823 movl des_SPtrans(%ebx),%ebp
685 xorl (%ebp,%ebx),%edi
824 movb %dl, %bl
686 movb %dl, %bl
825 xorl %ebp, %edi
826 movl 0x200+des_SPtrans(%ecx),%ebp
827 xorl %ebp, %edi
687 xorl 0x200(%ebp,%ecx),%edi
828 movb %dh, %cl
829 shrl $16, %eax
688 movb %dh, %cl
689 shrl $16, %eax
830 movl 0x100+des_SPtrans(%ebx),%ebp
831 xorl %ebp, %edi
690 xorl 0x100(%ebp,%ebx),%edi
832 movb %ah, %bl
833 shrl $16, %edx
691 movb %ah, %bl
692 shrl $16, %edx
834 movl 0x300+des_SPtrans(%ecx),%ebp
835 xorl %ebp, %edi
836 movl 24(%esp), %ebp
693 xorl 0x300(%ebp,%ecx),%edi
837 movb %dh, %cl
838 andl $0xff, %eax
839 andl $0xff, %edx
694 movb %dh, %cl
695 andl $0xff, %eax
696 andl $0xff, %edx
840 movl 0x600+des_SPtrans(%ebx),%ebx
841 xorl %ebx, %edi
842 movl 0x700+des_SPtrans(%ecx),%ebx
843 xorl %ebx, %edi
844 movl 0x400+des_SPtrans(%eax),%ebx
845 xorl %ebx, %edi
846 movl 0x500+des_SPtrans(%edx),%ebx
847 xorl %ebx, %edi
697 xorl 0x600(%ebp,%ebx),%edi
698 xorl 0x700(%ebp,%ecx),%edi
699 movl 24(%esp), %ecx
700 xorl 0x400(%ebp,%eax),%edi
701 xorl 0x500(%ebp,%edx),%edi
848
702
849 # Round 10
850 movl 80(%ebp), %eax
703
704 movl 80(%ecx), %eax
851 xorl %ebx, %ebx
705 xorl %ebx, %ebx
852 movl 84(%ebp), %edx
706 movl 84(%ecx), %edx
853 xorl %edi, %eax
707 xorl %edi, %eax
708 xorl %ecx, %ecx
854 xorl %edi, %edx
855 andl $0xfcfcfcfc, %eax
856 andl $0xcfcfcfcf, %edx
857 movb %al, %bl
858 movb %ah, %cl
859 rorl $4, %edx
709 xorl %edi, %edx
710 andl $0xfcfcfcfc, %eax
711 andl $0xcfcfcfcf, %edx
712 movb %al, %bl
713 movb %ah, %cl
714 rorl $4, %edx
860 movl des_SPtrans(%ebx),%ebp
715 xorl (%ebp,%ebx),%esi
861 movb %dl, %bl
716 movb %dl, %bl
862 xorl %ebp, %esi
863 movl 0x200+des_SPtrans(%ecx),%ebp
864 xorl %ebp, %esi
717 xorl 0x200(%ebp,%ecx),%esi
865 movb %dh, %cl
866 shrl $16, %eax
718 movb %dh, %cl
719 shrl $16, %eax
867 movl 0x100+des_SPtrans(%ebx),%ebp
868 xorl %ebp, %esi
720 xorl 0x100(%ebp,%ebx),%esi
869 movb %ah, %bl
870 shrl $16, %edx
721 movb %ah, %bl
722 shrl $16, %edx
871 movl 0x300+des_SPtrans(%ecx),%ebp
872 xorl %ebp, %esi
873 movl 24(%esp), %ebp
723 xorl 0x300(%ebp,%ecx),%esi
874 movb %dh, %cl
875 andl $0xff, %eax
876 andl $0xff, %edx
724 movb %dh, %cl
725 andl $0xff, %eax
726 andl $0xff, %edx
877 movl 0x600+des_SPtrans(%ebx),%ebx
878 xorl %ebx, %esi
879 movl 0x700+des_SPtrans(%ecx),%ebx
880 xorl %ebx, %esi
881 movl 0x400+des_SPtrans(%eax),%ebx
882 xorl %ebx, %esi
883 movl 0x500+des_SPtrans(%edx),%ebx
884 xorl %ebx, %esi
727 xorl 0x600(%ebp,%ebx),%esi
728 xorl 0x700(%ebp,%ecx),%esi
729 movl 24(%esp), %ecx
730 xorl 0x400(%ebp,%eax),%esi
731 xorl 0x500(%ebp,%edx),%esi
885
732
886 # Round 9
887 movl 72(%ebp), %eax
733
734 movl 72(%ecx), %eax
888 xorl %ebx, %ebx
735 xorl %ebx, %ebx
889 movl 76(%ebp), %edx
736 movl 76(%ecx), %edx
890 xorl %esi, %eax
737 xorl %esi, %eax
738 xorl %ecx, %ecx
891 xorl %esi, %edx
892 andl $0xfcfcfcfc, %eax
893 andl $0xcfcfcfcf, %edx
894 movb %al, %bl
895 movb %ah, %cl
896 rorl $4, %edx
739 xorl %esi, %edx
740 andl $0xfcfcfcfc, %eax
741 andl $0xcfcfcfcf, %edx
742 movb %al, %bl
743 movb %ah, %cl
744 rorl $4, %edx
897 movl des_SPtrans(%ebx),%ebp
745 xorl (%ebp,%ebx),%edi
898 movb %dl, %bl
746 movb %dl, %bl
899 xorl %ebp, %edi
900 movl 0x200+des_SPtrans(%ecx),%ebp
901 xorl %ebp, %edi
747 xorl 0x200(%ebp,%ecx),%edi
902 movb %dh, %cl
903 shrl $16, %eax
748 movb %dh, %cl
749 shrl $16, %eax
904 movl 0x100+des_SPtrans(%ebx),%ebp
905 xorl %ebp, %edi
750 xorl 0x100(%ebp,%ebx),%edi
906 movb %ah, %bl
907 shrl $16, %edx
751 movb %ah, %bl
752 shrl $16, %edx
908 movl 0x300+des_SPtrans(%ecx),%ebp
909 xorl %ebp, %edi
910 movl 24(%esp), %ebp
753 xorl 0x300(%ebp,%ecx),%edi
911 movb %dh, %cl
912 andl $0xff, %eax
913 andl $0xff, %edx
754 movb %dh, %cl
755 andl $0xff, %eax
756 andl $0xff, %edx
914 movl 0x600+des_SPtrans(%ebx),%ebx
915 xorl %ebx, %edi
916 movl 0x700+des_SPtrans(%ecx),%ebx
917 xorl %ebx, %edi
918 movl 0x400+des_SPtrans(%eax),%ebx
919 xorl %ebx, %edi
920 movl 0x500+des_SPtrans(%edx),%ebx
921 xorl %ebx, %edi
757 xorl 0x600(%ebp,%ebx),%edi
758 xorl 0x700(%ebp,%ecx),%edi
759 movl 24(%esp), %ecx
760 xorl 0x400(%ebp,%eax),%edi
761 xorl 0x500(%ebp,%edx),%edi
922
762
923 # Round 8
924 movl 64(%ebp), %eax
763
764 movl 64(%ecx), %eax
925 xorl %ebx, %ebx
765 xorl %ebx, %ebx
926 movl 68(%ebp), %edx
766 movl 68(%ecx), %edx
927 xorl %edi, %eax
767 xorl %edi, %eax
768 xorl %ecx, %ecx
928 xorl %edi, %edx
929 andl $0xfcfcfcfc, %eax
930 andl $0xcfcfcfcf, %edx
931 movb %al, %bl
932 movb %ah, %cl
933 rorl $4, %edx
769 xorl %edi, %edx
770 andl $0xfcfcfcfc, %eax
771 andl $0xcfcfcfcf, %edx
772 movb %al, %bl
773 movb %ah, %cl
774 rorl $4, %edx
934 movl des_SPtrans(%ebx),%ebp
775 xorl (%ebp,%ebx),%esi
935 movb %dl, %bl
776 movb %dl, %bl
936 xorl %ebp, %esi
937 movl 0x200+des_SPtrans(%ecx),%ebp
938 xorl %ebp, %esi
777 xorl 0x200(%ebp,%ecx),%esi
939 movb %dh, %cl
940 shrl $16, %eax
778 movb %dh, %cl
779 shrl $16, %eax
941 movl 0x100+des_SPtrans(%ebx),%ebp
942 xorl %ebp, %esi
780 xorl 0x100(%ebp,%ebx),%esi
943 movb %ah, %bl
944 shrl $16, %edx
781 movb %ah, %bl
782 shrl $16, %edx
945 movl 0x300+des_SPtrans(%ecx),%ebp
946 xorl %ebp, %esi
947 movl 24(%esp), %ebp
783 xorl 0x300(%ebp,%ecx),%esi
948 movb %dh, %cl
949 andl $0xff, %eax
950 andl $0xff, %edx
784 movb %dh, %cl
785 andl $0xff, %eax
786 andl $0xff, %edx
951 movl 0x600+des_SPtrans(%ebx),%ebx
952 xorl %ebx, %esi
953 movl 0x700+des_SPtrans(%ecx),%ebx
954 xorl %ebx, %esi
955 movl 0x400+des_SPtrans(%eax),%ebx
956 xorl %ebx, %esi
957 movl 0x500+des_SPtrans(%edx),%ebx
958 xorl %ebx, %esi
787 xorl 0x600(%ebp,%ebx),%esi
788 xorl 0x700(%ebp,%ecx),%esi
789 movl 24(%esp), %ecx
790 xorl 0x400(%ebp,%eax),%esi
791 xorl 0x500(%ebp,%edx),%esi
959
792
960 # Round 7
961 movl 56(%ebp), %eax
793
794 movl 56(%ecx), %eax
962 xorl %ebx, %ebx
795 xorl %ebx, %ebx
963 movl 60(%ebp), %edx
796 movl 60(%ecx), %edx
964 xorl %esi, %eax
797 xorl %esi, %eax
798 xorl %ecx, %ecx
965 xorl %esi, %edx
966 andl $0xfcfcfcfc, %eax
967 andl $0xcfcfcfcf, %edx
968 movb %al, %bl
969 movb %ah, %cl
970 rorl $4, %edx
799 xorl %esi, %edx
800 andl $0xfcfcfcfc, %eax
801 andl $0xcfcfcfcf, %edx
802 movb %al, %bl
803 movb %ah, %cl
804 rorl $4, %edx
971 movl des_SPtrans(%ebx),%ebp
805 xorl (%ebp,%ebx),%edi
972 movb %dl, %bl
806 movb %dl, %bl
973 xorl %ebp, %edi
974 movl 0x200+des_SPtrans(%ecx),%ebp
975 xorl %ebp, %edi
807 xorl 0x200(%ebp,%ecx),%edi
976 movb %dh, %cl
977 shrl $16, %eax
808 movb %dh, %cl
809 shrl $16, %eax
978 movl 0x100+des_SPtrans(%ebx),%ebp
979 xorl %ebp, %edi
810 xorl 0x100(%ebp,%ebx),%edi
980 movb %ah, %bl
981 shrl $16, %edx
811 movb %ah, %bl
812 shrl $16, %edx
982 movl 0x300+des_SPtrans(%ecx),%ebp
983 xorl %ebp, %edi
984 movl 24(%esp), %ebp
813 xorl 0x300(%ebp,%ecx),%edi
985 movb %dh, %cl
986 andl $0xff, %eax
987 andl $0xff, %edx
814 movb %dh, %cl
815 andl $0xff, %eax
816 andl $0xff, %edx
988 movl 0x600+des_SPtrans(%ebx),%ebx
989 xorl %ebx, %edi
990 movl 0x700+des_SPtrans(%ecx),%ebx
991 xorl %ebx, %edi
992 movl 0x400+des_SPtrans(%eax),%ebx
993 xorl %ebx, %edi
994 movl 0x500+des_SPtrans(%edx),%ebx
995 xorl %ebx, %edi
817 xorl 0x600(%ebp,%ebx),%edi
818 xorl 0x700(%ebp,%ecx),%edi
819 movl 24(%esp), %ecx
820 xorl 0x400(%ebp,%eax),%edi
821 xorl 0x500(%ebp,%edx),%edi
996
822
997 # Round 6
998 movl 48(%ebp), %eax
823
824 movl 48(%ecx), %eax
999 xorl %ebx, %ebx
825 xorl %ebx, %ebx
1000 movl 52(%ebp), %edx
826 movl 52(%ecx), %edx
1001 xorl %edi, %eax
827 xorl %edi, %eax
828 xorl %ecx, %ecx
1002 xorl %edi, %edx
1003 andl $0xfcfcfcfc, %eax
1004 andl $0xcfcfcfcf, %edx
1005 movb %al, %bl
1006 movb %ah, %cl
1007 rorl $4, %edx
829 xorl %edi, %edx
830 andl $0xfcfcfcfc, %eax
831 andl $0xcfcfcfcf, %edx
832 movb %al, %bl
833 movb %ah, %cl
834 rorl $4, %edx
1008 movl des_SPtrans(%ebx),%ebp
835 xorl (%ebp,%ebx),%esi
1009 movb %dl, %bl
836 movb %dl, %bl
1010 xorl %ebp, %esi
1011 movl 0x200+des_SPtrans(%ecx),%ebp
1012 xorl %ebp, %esi
837 xorl 0x200(%ebp,%ecx),%esi
1013 movb %dh, %cl
1014 shrl $16, %eax
838 movb %dh, %cl
839 shrl $16, %eax
1015 movl 0x100+des_SPtrans(%ebx),%ebp
1016 xorl %ebp, %esi
840 xorl 0x100(%ebp,%ebx),%esi
1017 movb %ah, %bl
1018 shrl $16, %edx
841 movb %ah, %bl
842 shrl $16, %edx
1019 movl 0x300+des_SPtrans(%ecx),%ebp
1020 xorl %ebp, %esi
1021 movl 24(%esp), %ebp
843 xorl 0x300(%ebp,%ecx),%esi
1022 movb %dh, %cl
1023 andl $0xff, %eax
1024 andl $0xff, %edx
844 movb %dh, %cl
845 andl $0xff, %eax
846 andl $0xff, %edx
1025 movl 0x600+des_SPtrans(%ebx),%ebx
1026 xorl %ebx, %esi
1027 movl 0x700+des_SPtrans(%ecx),%ebx
1028 xorl %ebx, %esi
1029 movl 0x400+des_SPtrans(%eax),%ebx
1030 xorl %ebx, %esi
1031 movl 0x500+des_SPtrans(%edx),%ebx
1032 xorl %ebx, %esi
847 xorl 0x600(%ebp,%ebx),%esi
848 xorl 0x700(%ebp,%ecx),%esi
849 movl 24(%esp), %ecx
850 xorl 0x400(%ebp,%eax),%esi
851 xorl 0x500(%ebp,%edx),%esi
1033
852
1034 # Round 5
1035 movl 40(%ebp), %eax
853
854 movl 40(%ecx), %eax
1036 xorl %ebx, %ebx
855 xorl %ebx, %ebx
1037 movl 44(%ebp), %edx
856 movl 44(%ecx), %edx
1038 xorl %esi, %eax
857 xorl %esi, %eax
858 xorl %ecx, %ecx
1039 xorl %esi, %edx
1040 andl $0xfcfcfcfc, %eax
1041 andl $0xcfcfcfcf, %edx
1042 movb %al, %bl
1043 movb %ah, %cl
1044 rorl $4, %edx
859 xorl %esi, %edx
860 andl $0xfcfcfcfc, %eax
861 andl $0xcfcfcfcf, %edx
862 movb %al, %bl
863 movb %ah, %cl
864 rorl $4, %edx
1045 movl des_SPtrans(%ebx),%ebp
865 xorl (%ebp,%ebx),%edi
1046 movb %dl, %bl
866 movb %dl, %bl
1047 xorl %ebp, %edi
1048 movl 0x200+des_SPtrans(%ecx),%ebp
1049 xorl %ebp, %edi
867 xorl 0x200(%ebp,%ecx),%edi
1050 movb %dh, %cl
1051 shrl $16, %eax
868 movb %dh, %cl
869 shrl $16, %eax
1052 movl 0x100+des_SPtrans(%ebx),%ebp
1053 xorl %ebp, %edi
870 xorl 0x100(%ebp,%ebx),%edi
1054 movb %ah, %bl
1055 shrl $16, %edx
871 movb %ah, %bl
872 shrl $16, %edx
1056 movl 0x300+des_SPtrans(%ecx),%ebp
1057 xorl %ebp, %edi
1058 movl 24(%esp), %ebp
873 xorl 0x300(%ebp,%ecx),%edi
1059 movb %dh, %cl
1060 andl $0xff, %eax
1061 andl $0xff, %edx
874 movb %dh, %cl
875 andl $0xff, %eax
876 andl $0xff, %edx
1062 movl 0x600+des_SPtrans(%ebx),%ebx
1063 xorl %ebx, %edi
1064 movl 0x700+des_SPtrans(%ecx),%ebx
1065 xorl %ebx, %edi
1066 movl 0x400+des_SPtrans(%eax),%ebx
1067 xorl %ebx, %edi
1068 movl 0x500+des_SPtrans(%edx),%ebx
1069 xorl %ebx, %edi
877 xorl 0x600(%ebp,%ebx),%edi
878 xorl 0x700(%ebp,%ecx),%edi
879 movl 24(%esp), %ecx
880 xorl 0x400(%ebp,%eax),%edi
881 xorl 0x500(%ebp,%edx),%edi
1070
882
1071 # Round 4
1072 movl 32(%ebp), %eax
883
884 movl 32(%ecx), %eax
1073 xorl %ebx, %ebx
885 xorl %ebx, %ebx
1074 movl 36(%ebp), %edx
886 movl 36(%ecx), %edx
1075 xorl %edi, %eax
887 xorl %edi, %eax
888 xorl %ecx, %ecx
1076 xorl %edi, %edx
1077 andl $0xfcfcfcfc, %eax
1078 andl $0xcfcfcfcf, %edx
1079 movb %al, %bl
1080 movb %ah, %cl
1081 rorl $4, %edx
889 xorl %edi, %edx
890 andl $0xfcfcfcfc, %eax
891 andl $0xcfcfcfcf, %edx
892 movb %al, %bl
893 movb %ah, %cl
894 rorl $4, %edx
1082 movl des_SPtrans(%ebx),%ebp
895 xorl (%ebp,%ebx),%esi
1083 movb %dl, %bl
896 movb %dl, %bl
1084 xorl %ebp, %esi
1085 movl 0x200+des_SPtrans(%ecx),%ebp
1086 xorl %ebp, %esi
897 xorl 0x200(%ebp,%ecx),%esi
1087 movb %dh, %cl
1088 shrl $16, %eax
898 movb %dh, %cl
899 shrl $16, %eax
1089 movl 0x100+des_SPtrans(%ebx),%ebp
1090 xorl %ebp, %esi
900 xorl 0x100(%ebp,%ebx),%esi
1091 movb %ah, %bl
1092 shrl $16, %edx
901 movb %ah, %bl
902 shrl $16, %edx
1093 movl 0x300+des_SPtrans(%ecx),%ebp
1094 xorl %ebp, %esi
1095 movl 24(%esp), %ebp
903 xorl 0x300(%ebp,%ecx),%esi
1096 movb %dh, %cl
1097 andl $0xff, %eax
1098 andl $0xff, %edx
904 movb %dh, %cl
905 andl $0xff, %eax
906 andl $0xff, %edx
1099 movl 0x600+des_SPtrans(%ebx),%ebx
1100 xorl %ebx, %esi
1101 movl 0x700+des_SPtrans(%ecx),%ebx
1102 xorl %ebx, %esi
1103 movl 0x400+des_SPtrans(%eax),%ebx
1104 xorl %ebx, %esi
1105 movl 0x500+des_SPtrans(%edx),%ebx
1106 xorl %ebx, %esi
907 xorl 0x600(%ebp,%ebx),%esi
908 xorl 0x700(%ebp,%ecx),%esi
909 movl 24(%esp), %ecx
910 xorl 0x400(%ebp,%eax),%esi
911 xorl 0x500(%ebp,%edx),%esi
1107
912
1108 # Round 3
1109 movl 24(%ebp), %eax
913
914 movl 24(%ecx), %eax
1110 xorl %ebx, %ebx
915 xorl %ebx, %ebx
1111 movl 28(%ebp), %edx
916 movl 28(%ecx), %edx
1112 xorl %esi, %eax
917 xorl %esi, %eax
918 xorl %ecx, %ecx
1113 xorl %esi, %edx
1114 andl $0xfcfcfcfc, %eax
1115 andl $0xcfcfcfcf, %edx
1116 movb %al, %bl
1117 movb %ah, %cl
1118 rorl $4, %edx
919 xorl %esi, %edx
920 andl $0xfcfcfcfc, %eax
921 andl $0xcfcfcfcf, %edx
922 movb %al, %bl
923 movb %ah, %cl
924 rorl $4, %edx
1119 movl des_SPtrans(%ebx),%ebp
925 xorl (%ebp,%ebx),%edi
1120 movb %dl, %bl
926 movb %dl, %bl
1121 xorl %ebp, %edi
1122 movl 0x200+des_SPtrans(%ecx),%ebp
1123 xorl %ebp, %edi
927 xorl 0x200(%ebp,%ecx),%edi
1124 movb %dh, %cl
1125 shrl $16, %eax
928 movb %dh, %cl
929 shrl $16, %eax
1126 movl 0x100+des_SPtrans(%ebx),%ebp
1127 xorl %ebp, %edi
930 xorl 0x100(%ebp,%ebx),%edi
1128 movb %ah, %bl
1129 shrl $16, %edx
931 movb %ah, %bl
932 shrl $16, %edx
1130 movl 0x300+des_SPtrans(%ecx),%ebp
1131 xorl %ebp, %edi
1132 movl 24(%esp), %ebp
933 xorl 0x300(%ebp,%ecx),%edi
1133 movb %dh, %cl
1134 andl $0xff, %eax
1135 andl $0xff, %edx
934 movb %dh, %cl
935 andl $0xff, %eax
936 andl $0xff, %edx
1136 movl 0x600+des_SPtrans(%ebx),%ebx
1137 xorl %ebx, %edi
1138 movl 0x700+des_SPtrans(%ecx),%ebx
1139 xorl %ebx, %edi
1140 movl 0x400+des_SPtrans(%eax),%ebx
1141 xorl %ebx, %edi
1142 movl 0x500+des_SPtrans(%edx),%ebx
1143 xorl %ebx, %edi
937 xorl 0x600(%ebp,%ebx),%edi
938 xorl 0x700(%ebp,%ecx),%edi
939 movl 24(%esp), %ecx
940 xorl 0x400(%ebp,%eax),%edi
941 xorl 0x500(%ebp,%edx),%edi
1144
942
1145 # Round 2
1146 movl 16(%ebp), %eax
943
944 movl 16(%ecx), %eax
1147 xorl %ebx, %ebx
945 xorl %ebx, %ebx
1148 movl 20(%ebp), %edx
946 movl 20(%ecx), %edx
1149 xorl %edi, %eax
947 xorl %edi, %eax
948 xorl %ecx, %ecx
1150 xorl %edi, %edx
1151 andl $0xfcfcfcfc, %eax
1152 andl $0xcfcfcfcf, %edx
1153 movb %al, %bl
1154 movb %ah, %cl
1155 rorl $4, %edx
949 xorl %edi, %edx
950 andl $0xfcfcfcfc, %eax
951 andl $0xcfcfcfcf, %edx
952 movb %al, %bl
953 movb %ah, %cl
954 rorl $4, %edx
1156 movl des_SPtrans(%ebx),%ebp
955 xorl (%ebp,%ebx),%esi
1157 movb %dl, %bl
956 movb %dl, %bl
1158 xorl %ebp, %esi
1159 movl 0x200+des_SPtrans(%ecx),%ebp
1160 xorl %ebp, %esi
957 xorl 0x200(%ebp,%ecx),%esi
1161 movb %dh, %cl
1162 shrl $16, %eax
958 movb %dh, %cl
959 shrl $16, %eax
1163 movl 0x100+des_SPtrans(%ebx),%ebp
1164 xorl %ebp, %esi
960 xorl 0x100(%ebp,%ebx),%esi
1165 movb %ah, %bl
1166 shrl $16, %edx
961 movb %ah, %bl
962 shrl $16, %edx
1167 movl 0x300+des_SPtrans(%ecx),%ebp
1168 xorl %ebp, %esi
1169 movl 24(%esp), %ebp
963 xorl 0x300(%ebp,%ecx),%esi
1170 movb %dh, %cl
1171 andl $0xff, %eax
1172 andl $0xff, %edx
964 movb %dh, %cl
965 andl $0xff, %eax
966 andl $0xff, %edx
1173 movl 0x600+des_SPtrans(%ebx),%ebx
1174 xorl %ebx, %esi
1175 movl 0x700+des_SPtrans(%ecx),%ebx
1176 xorl %ebx, %esi
1177 movl 0x400+des_SPtrans(%eax),%ebx
1178 xorl %ebx, %esi
1179 movl 0x500+des_SPtrans(%edx),%ebx
1180 xorl %ebx, %esi
967 xorl 0x600(%ebp,%ebx),%esi
968 xorl 0x700(%ebp,%ecx),%esi
969 movl 24(%esp), %ecx
970 xorl 0x400(%ebp,%eax),%esi
971 xorl 0x500(%ebp,%edx),%esi
1181
972
1182 # Round 1
1183 movl 8(%ebp), %eax
973
974 movl 8(%ecx), %eax
1184 xorl %ebx, %ebx
975 xorl %ebx, %ebx
1185 movl 12(%ebp), %edx
976 movl 12(%ecx), %edx
1186 xorl %esi, %eax
977 xorl %esi, %eax
978 xorl %ecx, %ecx
1187 xorl %esi, %edx
1188 andl $0xfcfcfcfc, %eax
1189 andl $0xcfcfcfcf, %edx
1190 movb %al, %bl
1191 movb %ah, %cl
1192 rorl $4, %edx
979 xorl %esi, %edx
980 andl $0xfcfcfcfc, %eax
981 andl $0xcfcfcfcf, %edx
982 movb %al, %bl
983 movb %ah, %cl
984 rorl $4, %edx
1193 movl des_SPtrans(%ebx),%ebp
985 xorl (%ebp,%ebx),%edi
1194 movb %dl, %bl
986 movb %dl, %bl
1195 xorl %ebp, %edi
1196 movl 0x200+des_SPtrans(%ecx),%ebp
1197 xorl %ebp, %edi
987 xorl 0x200(%ebp,%ecx),%edi
1198 movb %dh, %cl
1199 shrl $16, %eax
988 movb %dh, %cl
989 shrl $16, %eax
1200 movl 0x100+des_SPtrans(%ebx),%ebp
1201 xorl %ebp, %edi
990 xorl 0x100(%ebp,%ebx),%edi
1202 movb %ah, %bl
1203 shrl $16, %edx
991 movb %ah, %bl
992 shrl $16, %edx
1204 movl 0x300+des_SPtrans(%ecx),%ebp
1205 xorl %ebp, %edi
1206 movl 24(%esp), %ebp
993 xorl 0x300(%ebp,%ecx),%edi
1207 movb %dh, %cl
1208 andl $0xff, %eax
1209 andl $0xff, %edx
994 movb %dh, %cl
995 andl $0xff, %eax
996 andl $0xff, %edx
1210 movl 0x600+des_SPtrans(%ebx),%ebx
1211 xorl %ebx, %edi
1212 movl 0x700+des_SPtrans(%ecx),%ebx
1213 xorl %ebx, %edi
1214 movl 0x400+des_SPtrans(%eax),%ebx
1215 xorl %ebx, %edi
1216 movl 0x500+des_SPtrans(%edx),%ebx
1217 xorl %ebx, %edi
997 xorl 0x600(%ebp,%ebx),%edi
998 xorl 0x700(%ebp,%ecx),%edi
999 movl 24(%esp), %ecx
1000 xorl 0x400(%ebp,%eax),%edi
1001 xorl 0x500(%ebp,%edx),%edi
1218
1002
1219 # Round 0
1220 movl (%ebp), %eax
1003
1004 movl (%ecx), %eax
1221 xorl %ebx, %ebx
1005 xorl %ebx, %ebx
1222 movl 4(%ebp), %edx
1006 movl 4(%ecx), %edx
1223 xorl %edi, %eax
1007 xorl %edi, %eax
1008 xorl %ecx, %ecx
1224 xorl %edi, %edx
1225 andl $0xfcfcfcfc, %eax
1226 andl $0xcfcfcfcf, %edx
1227 movb %al, %bl
1228 movb %ah, %cl
1229 rorl $4, %edx
1009 xorl %edi, %edx
1010 andl $0xfcfcfcfc, %eax
1011 andl $0xcfcfcfcf, %edx
1012 movb %al, %bl
1013 movb %ah, %cl
1014 rorl $4, %edx
1230 movl des_SPtrans(%ebx),%ebp
1015 xorl (%ebp,%ebx),%esi
1231 movb %dl, %bl
1016 movb %dl, %bl
1232 xorl %ebp, %esi
1233 movl 0x200+des_SPtrans(%ecx),%ebp
1234 xorl %ebp, %esi
1017 xorl 0x200(%ebp,%ecx),%esi
1235 movb %dh, %cl
1236 shrl $16, %eax
1018 movb %dh, %cl
1019 shrl $16, %eax
1237 movl 0x100+des_SPtrans(%ebx),%ebp
1238 xorl %ebp, %esi
1020 xorl 0x100(%ebp,%ebx),%esi
1239 movb %ah, %bl
1240 shrl $16, %edx
1021 movb %ah, %bl
1022 shrl $16, %edx
1241 movl 0x300+des_SPtrans(%ecx),%ebp
1242 xorl %ebp, %esi
1243 movl 24(%esp), %ebp
1023 xorl 0x300(%ebp,%ecx),%esi
1244 movb %dh, %cl
1245 andl $0xff, %eax
1246 andl $0xff, %edx
1024 movb %dh, %cl
1025 andl $0xff, %eax
1026 andl $0xff, %edx
1247 movl 0x600+des_SPtrans(%ebx),%ebx
1248 xorl %ebx, %esi
1249 movl 0x700+des_SPtrans(%ecx),%ebx
1250 xorl %ebx, %esi
1251 movl 0x400+des_SPtrans(%eax),%ebx
1252 xorl %ebx, %esi
1253 movl 0x500+des_SPtrans(%edx),%ebx
1254 xorl %ebx, %esi
1027 xorl 0x600(%ebp,%ebx),%esi
1028 xorl 0x700(%ebp,%ecx),%esi
1029 movl 24(%esp), %ecx
1030 xorl 0x400(%ebp,%eax),%esi
1031 xorl 0x500(%ebp,%edx),%esi
1255.L001end:
1256
1032.L001end:
1033
1257 # FP
1034
1258 movl 20(%esp), %edx
1259.byte 209
1035 movl 20(%esp), %edx
1036.byte 209
1260.byte 206 # rorl $1 %esi
1037.byte 206
1261 movl %edi, %eax
1262 xorl %esi, %edi
1263 andl $0xaaaaaaaa, %edi
1264 xorl %edi, %eax
1265 xorl %edi, %esi
1266
1267 roll $23, %eax
1268 movl %eax, %edi

--- 26 unchanged lines hidden (view full) ---

1295 rorl $4, %eax
1296 movl %eax, (%edx)
1297 movl %esi, 4(%edx)
1298 popl %ebp
1299 popl %ebx
1300 popl %edi
1301 popl %esi
1302 ret
1038 movl %edi, %eax
1039 xorl %esi, %edi
1040 andl $0xaaaaaaaa, %edi
1041 xorl %edi, %eax
1042 xorl %edi, %esi
1043
1044 roll $23, %eax
1045 movl %eax, %edi

--- 26 unchanged lines hidden (view full) ---

1072 rorl $4, %eax
1073 movl %eax, (%edx)
1074 movl %esi, 4(%edx)
1075 popl %ebp
1076 popl %ebx
1077 popl %edi
1078 popl %esi
1079 ret
1303.L_des_encrypt1_end:
1304 .size des_encrypt1,.L_des_encrypt1_end-des_encrypt1
1080.L_DES_encrypt1_end:
1081 .size DES_encrypt1,.L_DES_encrypt1_end-DES_encrypt1
1305.ident "desasm.pl"
1306.text
1307 .align 16
1082.ident "desasm.pl"
1083.text
1084 .align 16
1308.globl des_encrypt2
1309 .type des_encrypt2,@function
1310des_encrypt2:
1085.globl DES_encrypt2
1086 .type DES_encrypt2,@function
1087DES_encrypt2:
1311 pushl %esi
1312 pushl %edi
1313
1088 pushl %esi
1089 pushl %edi
1090
1314 # Load the 2 words
1091
1315 movl 12(%esp), %eax
1316 xorl %ecx, %ecx
1317 pushl %ebx
1318 pushl %ebp
1319 movl (%eax), %esi
1320 movl 28(%esp), %ebx
1321 roll $3, %esi
1322 movl 4(%eax), %edi
1323 roll $3, %edi
1092 movl 12(%esp), %eax
1093 xorl %ecx, %ecx
1094 pushl %ebx
1095 pushl %ebp
1096 movl (%eax), %esi
1097 movl 28(%esp), %ebx
1098 roll $3, %esi
1099 movl 4(%eax), %edi
1100 roll $3, %edi
1324 movl 24(%esp), %ebp
1101 leal DES_SPtrans, %ebp
1102 movl 24(%esp), %ecx
1325 cmpl $0, %ebx
1326 je .L002start_decrypt
1327
1103 cmpl $0, %ebx
1104 je .L002start_decrypt
1105
1328 # Round 0
1329 movl (%ebp), %eax
1106
1107 movl (%ecx), %eax
1330 xorl %ebx, %ebx
1108 xorl %ebx, %ebx
1331 movl 4(%ebp), %edx
1109 movl 4(%ecx), %edx
1332 xorl %esi, %eax
1110 xorl %esi, %eax
1111 xorl %ecx, %ecx
1333 xorl %esi, %edx
1334 andl $0xfcfcfcfc, %eax
1335 andl $0xcfcfcfcf, %edx
1336 movb %al, %bl
1337 movb %ah, %cl
1338 rorl $4, %edx
1112 xorl %esi, %edx
1113 andl $0xfcfcfcfc, %eax
1114 andl $0xcfcfcfcf, %edx
1115 movb %al, %bl
1116 movb %ah, %cl
1117 rorl $4, %edx
1339 movl des_SPtrans(%ebx),%ebp
1118 xorl (%ebp,%ebx),%edi
1340 movb %dl, %bl
1119 movb %dl, %bl
1341 xorl %ebp, %edi
1342 movl 0x200+des_SPtrans(%ecx),%ebp
1343 xorl %ebp, %edi
1120 xorl 0x200(%ebp,%ecx),%edi
1344 movb %dh, %cl
1345 shrl $16, %eax
1121 movb %dh, %cl
1122 shrl $16, %eax
1346 movl 0x100+des_SPtrans(%ebx),%ebp
1347 xorl %ebp, %edi
1123 xorl 0x100(%ebp,%ebx),%edi
1348 movb %ah, %bl
1349 shrl $16, %edx
1124 movb %ah, %bl
1125 shrl $16, %edx
1350 movl 0x300+des_SPtrans(%ecx),%ebp
1351 xorl %ebp, %edi
1352 movl 24(%esp), %ebp
1126 xorl 0x300(%ebp,%ecx),%edi
1353 movb %dh, %cl
1354 andl $0xff, %eax
1355 andl $0xff, %edx
1127 movb %dh, %cl
1128 andl $0xff, %eax
1129 andl $0xff, %edx
1356 movl 0x600+des_SPtrans(%ebx),%ebx
1357 xorl %ebx, %edi
1358 movl 0x700+des_SPtrans(%ecx),%ebx
1359 xorl %ebx, %edi
1360 movl 0x400+des_SPtrans(%eax),%ebx
1361 xorl %ebx, %edi
1362 movl 0x500+des_SPtrans(%edx),%ebx
1363 xorl %ebx, %edi
1130 xorl 0x600(%ebp,%ebx),%edi
1131 xorl 0x700(%ebp,%ecx),%edi
1132 movl 24(%esp), %ecx
1133 xorl 0x400(%ebp,%eax),%edi
1134 xorl 0x500(%ebp,%edx),%edi
1364
1135
1365 # Round 1
1366 movl 8(%ebp), %eax
1136
1137 movl 8(%ecx), %eax
1367 xorl %ebx, %ebx
1138 xorl %ebx, %ebx
1368 movl 12(%ebp), %edx
1139 movl 12(%ecx), %edx
1369 xorl %edi, %eax
1140 xorl %edi, %eax
1141 xorl %ecx, %ecx
1370 xorl %edi, %edx
1371 andl $0xfcfcfcfc, %eax
1372 andl $0xcfcfcfcf, %edx
1373 movb %al, %bl
1374 movb %ah, %cl
1375 rorl $4, %edx
1142 xorl %edi, %edx
1143 andl $0xfcfcfcfc, %eax
1144 andl $0xcfcfcfcf, %edx
1145 movb %al, %bl
1146 movb %ah, %cl
1147 rorl $4, %edx
1376 movl des_SPtrans(%ebx),%ebp
1148 xorl (%ebp,%ebx),%esi
1377 movb %dl, %bl
1149 movb %dl, %bl
1378 xorl %ebp, %esi
1379 movl 0x200+des_SPtrans(%ecx),%ebp
1380 xorl %ebp, %esi
1150 xorl 0x200(%ebp,%ecx),%esi
1381 movb %dh, %cl
1382 shrl $16, %eax
1151 movb %dh, %cl
1152 shrl $16, %eax
1383 movl 0x100+des_SPtrans(%ebx),%ebp
1384 xorl %ebp, %esi
1153 xorl 0x100(%ebp,%ebx),%esi
1385 movb %ah, %bl
1386 shrl $16, %edx
1154 movb %ah, %bl
1155 shrl $16, %edx
1387 movl 0x300+des_SPtrans(%ecx),%ebp
1388 xorl %ebp, %esi
1389 movl 24(%esp), %ebp
1156 xorl 0x300(%ebp,%ecx),%esi
1390 movb %dh, %cl
1391 andl $0xff, %eax
1392 andl $0xff, %edx
1157 movb %dh, %cl
1158 andl $0xff, %eax
1159 andl $0xff, %edx
1393 movl 0x600+des_SPtrans(%ebx),%ebx
1394 xorl %ebx, %esi
1395 movl 0x700+des_SPtrans(%ecx),%ebx
1396 xorl %ebx, %esi
1397 movl 0x400+des_SPtrans(%eax),%ebx
1398 xorl %ebx, %esi
1399 movl 0x500+des_SPtrans(%edx),%ebx
1400 xorl %ebx, %esi
1160 xorl 0x600(%ebp,%ebx),%esi
1161 xorl 0x700(%ebp,%ecx),%esi
1162 movl 24(%esp), %ecx
1163 xorl 0x400(%ebp,%eax),%esi
1164 xorl 0x500(%ebp,%edx),%esi
1401
1165
1402 # Round 2
1403 movl 16(%ebp), %eax
1166
1167 movl 16(%ecx), %eax
1404 xorl %ebx, %ebx
1168 xorl %ebx, %ebx
1405 movl 20(%ebp), %edx
1169 movl 20(%ecx), %edx
1406 xorl %esi, %eax
1170 xorl %esi, %eax
1171 xorl %ecx, %ecx
1407 xorl %esi, %edx
1408 andl $0xfcfcfcfc, %eax
1409 andl $0xcfcfcfcf, %edx
1410 movb %al, %bl
1411 movb %ah, %cl
1412 rorl $4, %edx
1172 xorl %esi, %edx
1173 andl $0xfcfcfcfc, %eax
1174 andl $0xcfcfcfcf, %edx
1175 movb %al, %bl
1176 movb %ah, %cl
1177 rorl $4, %edx
1413 movl des_SPtrans(%ebx),%ebp
1178 xorl (%ebp,%ebx),%edi
1414 movb %dl, %bl
1179 movb %dl, %bl
1415 xorl %ebp, %edi
1416 movl 0x200+des_SPtrans(%ecx),%ebp
1417 xorl %ebp, %edi
1180 xorl 0x200(%ebp,%ecx),%edi
1418 movb %dh, %cl
1419 shrl $16, %eax
1181 movb %dh, %cl
1182 shrl $16, %eax
1420 movl 0x100+des_SPtrans(%ebx),%ebp
1421 xorl %ebp, %edi
1183 xorl 0x100(%ebp,%ebx),%edi
1422 movb %ah, %bl
1423 shrl $16, %edx
1184 movb %ah, %bl
1185 shrl $16, %edx
1424 movl 0x300+des_SPtrans(%ecx),%ebp
1425 xorl %ebp, %edi
1426 movl 24(%esp), %ebp
1186 xorl 0x300(%ebp,%ecx),%edi
1427 movb %dh, %cl
1428 andl $0xff, %eax
1429 andl $0xff, %edx
1187 movb %dh, %cl
1188 andl $0xff, %eax
1189 andl $0xff, %edx
1430 movl 0x600+des_SPtrans(%ebx),%ebx
1431 xorl %ebx, %edi
1432 movl 0x700+des_SPtrans(%ecx),%ebx
1433 xorl %ebx, %edi
1434 movl 0x400+des_SPtrans(%eax),%ebx
1435 xorl %ebx, %edi
1436 movl 0x500+des_SPtrans(%edx),%ebx
1437 xorl %ebx, %edi
1190 xorl 0x600(%ebp,%ebx),%edi
1191 xorl 0x700(%ebp,%ecx),%edi
1192 movl 24(%esp), %ecx
1193 xorl 0x400(%ebp,%eax),%edi
1194 xorl 0x500(%ebp,%edx),%edi
1438
1195
1439 # Round 3
1440 movl 24(%ebp), %eax
1196
1197 movl 24(%ecx), %eax
1441 xorl %ebx, %ebx
1198 xorl %ebx, %ebx
1442 movl 28(%ebp), %edx
1199 movl 28(%ecx), %edx
1443 xorl %edi, %eax
1200 xorl %edi, %eax
1201 xorl %ecx, %ecx
1444 xorl %edi, %edx
1445 andl $0xfcfcfcfc, %eax
1446 andl $0xcfcfcfcf, %edx
1447 movb %al, %bl
1448 movb %ah, %cl
1449 rorl $4, %edx
1202 xorl %edi, %edx
1203 andl $0xfcfcfcfc, %eax
1204 andl $0xcfcfcfcf, %edx
1205 movb %al, %bl
1206 movb %ah, %cl
1207 rorl $4, %edx
1450 movl des_SPtrans(%ebx),%ebp
1208 xorl (%ebp,%ebx),%esi
1451 movb %dl, %bl
1209 movb %dl, %bl
1452 xorl %ebp, %esi
1453 movl 0x200+des_SPtrans(%ecx),%ebp
1454 xorl %ebp, %esi
1210 xorl 0x200(%ebp,%ecx),%esi
1455 movb %dh, %cl
1456 shrl $16, %eax
1211 movb %dh, %cl
1212 shrl $16, %eax
1457 movl 0x100+des_SPtrans(%ebx),%ebp
1458 xorl %ebp, %esi
1213 xorl 0x100(%ebp,%ebx),%esi
1459 movb %ah, %bl
1460 shrl $16, %edx
1214 movb %ah, %bl
1215 shrl $16, %edx
1461 movl 0x300+des_SPtrans(%ecx),%ebp
1462 xorl %ebp, %esi
1463 movl 24(%esp), %ebp
1216 xorl 0x300(%ebp,%ecx),%esi
1464 movb %dh, %cl
1465 andl $0xff, %eax
1466 andl $0xff, %edx
1217 movb %dh, %cl
1218 andl $0xff, %eax
1219 andl $0xff, %edx
1467 movl 0x600+des_SPtrans(%ebx),%ebx
1468 xorl %ebx, %esi
1469 movl 0x700+des_SPtrans(%ecx),%ebx
1470 xorl %ebx, %esi
1471 movl 0x400+des_SPtrans(%eax),%ebx
1472 xorl %ebx, %esi
1473 movl 0x500+des_SPtrans(%edx),%ebx
1474 xorl %ebx, %esi
1220 xorl 0x600(%ebp,%ebx),%esi
1221 xorl 0x700(%ebp,%ecx),%esi
1222 movl 24(%esp), %ecx
1223 xorl 0x400(%ebp,%eax),%esi
1224 xorl 0x500(%ebp,%edx),%esi
1475
1225
1476 # Round 4
1477 movl 32(%ebp), %eax
1226
1227 movl 32(%ecx), %eax
1478 xorl %ebx, %ebx
1228 xorl %ebx, %ebx
1479 movl 36(%ebp), %edx
1229 movl 36(%ecx), %edx
1480 xorl %esi, %eax
1230 xorl %esi, %eax
1231 xorl %ecx, %ecx
1481 xorl %esi, %edx
1482 andl $0xfcfcfcfc, %eax
1483 andl $0xcfcfcfcf, %edx
1484 movb %al, %bl
1485 movb %ah, %cl
1486 rorl $4, %edx
1232 xorl %esi, %edx
1233 andl $0xfcfcfcfc, %eax
1234 andl $0xcfcfcfcf, %edx
1235 movb %al, %bl
1236 movb %ah, %cl
1237 rorl $4, %edx
1487 movl des_SPtrans(%ebx),%ebp
1238 xorl (%ebp,%ebx),%edi
1488 movb %dl, %bl
1239 movb %dl, %bl
1489 xorl %ebp, %edi
1490 movl 0x200+des_SPtrans(%ecx),%ebp
1491 xorl %ebp, %edi
1240 xorl 0x200(%ebp,%ecx),%edi
1492 movb %dh, %cl
1493 shrl $16, %eax
1241 movb %dh, %cl
1242 shrl $16, %eax
1494 movl 0x100+des_SPtrans(%ebx),%ebp
1495 xorl %ebp, %edi
1243 xorl 0x100(%ebp,%ebx),%edi
1496 movb %ah, %bl
1497 shrl $16, %edx
1244 movb %ah, %bl
1245 shrl $16, %edx
1498 movl 0x300+des_SPtrans(%ecx),%ebp
1499 xorl %ebp, %edi
1500 movl 24(%esp), %ebp
1246 xorl 0x300(%ebp,%ecx),%edi
1501 movb %dh, %cl
1502 andl $0xff, %eax
1503 andl $0xff, %edx
1247 movb %dh, %cl
1248 andl $0xff, %eax
1249 andl $0xff, %edx
1504 movl 0x600+des_SPtrans(%ebx),%ebx
1505 xorl %ebx, %edi
1506 movl 0x700+des_SPtrans(%ecx),%ebx
1507 xorl %ebx, %edi
1508 movl 0x400+des_SPtrans(%eax),%ebx
1509 xorl %ebx, %edi
1510 movl 0x500+des_SPtrans(%edx),%ebx
1511 xorl %ebx, %edi
1250 xorl 0x600(%ebp,%ebx),%edi
1251 xorl 0x700(%ebp,%ecx),%edi
1252 movl 24(%esp), %ecx
1253 xorl 0x400(%ebp,%eax),%edi
1254 xorl 0x500(%ebp,%edx),%edi
1512
1255
1513 # Round 5
1514 movl 40(%ebp), %eax
1256
1257 movl 40(%ecx), %eax
1515 xorl %ebx, %ebx
1258 xorl %ebx, %ebx
1516 movl 44(%ebp), %edx
1259 movl 44(%ecx), %edx
1517 xorl %edi, %eax
1260 xorl %edi, %eax
1261 xorl %ecx, %ecx
1518 xorl %edi, %edx
1519 andl $0xfcfcfcfc, %eax
1520 andl $0xcfcfcfcf, %edx
1521 movb %al, %bl
1522 movb %ah, %cl
1523 rorl $4, %edx
1262 xorl %edi, %edx
1263 andl $0xfcfcfcfc, %eax
1264 andl $0xcfcfcfcf, %edx
1265 movb %al, %bl
1266 movb %ah, %cl
1267 rorl $4, %edx
1524 movl des_SPtrans(%ebx),%ebp
1268 xorl (%ebp,%ebx),%esi
1525 movb %dl, %bl
1269 movb %dl, %bl
1526 xorl %ebp, %esi
1527 movl 0x200+des_SPtrans(%ecx),%ebp
1528 xorl %ebp, %esi
1270 xorl 0x200(%ebp,%ecx),%esi
1529 movb %dh, %cl
1530 shrl $16, %eax
1271 movb %dh, %cl
1272 shrl $16, %eax
1531 movl 0x100+des_SPtrans(%ebx),%ebp
1532 xorl %ebp, %esi
1273 xorl 0x100(%ebp,%ebx),%esi
1533 movb %ah, %bl
1534 shrl $16, %edx
1274 movb %ah, %bl
1275 shrl $16, %edx
1535 movl 0x300+des_SPtrans(%ecx),%ebp
1536 xorl %ebp, %esi
1537 movl 24(%esp), %ebp
1276 xorl 0x300(%ebp,%ecx),%esi
1538 movb %dh, %cl
1539 andl $0xff, %eax
1540 andl $0xff, %edx
1277 movb %dh, %cl
1278 andl $0xff, %eax
1279 andl $0xff, %edx
1541 movl 0x600+des_SPtrans(%ebx),%ebx
1542 xorl %ebx, %esi
1543 movl 0x700+des_SPtrans(%ecx),%ebx
1544 xorl %ebx, %esi
1545 movl 0x400+des_SPtrans(%eax),%ebx
1546 xorl %ebx, %esi
1547 movl 0x500+des_SPtrans(%edx),%ebx
1548 xorl %ebx, %esi
1280 xorl 0x600(%ebp,%ebx),%esi
1281 xorl 0x700(%ebp,%ecx),%esi
1282 movl 24(%esp), %ecx
1283 xorl 0x400(%ebp,%eax),%esi
1284 xorl 0x500(%ebp,%edx),%esi
1549
1285
1550 # Round 6
1551 movl 48(%ebp), %eax
1286
1287 movl 48(%ecx), %eax
1552 xorl %ebx, %ebx
1288 xorl %ebx, %ebx
1553 movl 52(%ebp), %edx
1289 movl 52(%ecx), %edx
1554 xorl %esi, %eax
1290 xorl %esi, %eax
1291 xorl %ecx, %ecx
1555 xorl %esi, %edx
1556 andl $0xfcfcfcfc, %eax
1557 andl $0xcfcfcfcf, %edx
1558 movb %al, %bl
1559 movb %ah, %cl
1560 rorl $4, %edx
1292 xorl %esi, %edx
1293 andl $0xfcfcfcfc, %eax
1294 andl $0xcfcfcfcf, %edx
1295 movb %al, %bl
1296 movb %ah, %cl
1297 rorl $4, %edx
1561 movl des_SPtrans(%ebx),%ebp
1298 xorl (%ebp,%ebx),%edi
1562 movb %dl, %bl
1299 movb %dl, %bl
1563 xorl %ebp, %edi
1564 movl 0x200+des_SPtrans(%ecx),%ebp
1565 xorl %ebp, %edi
1300 xorl 0x200(%ebp,%ecx),%edi
1566 movb %dh, %cl
1567 shrl $16, %eax
1301 movb %dh, %cl
1302 shrl $16, %eax
1568 movl 0x100+des_SPtrans(%ebx),%ebp
1569 xorl %ebp, %edi
1303 xorl 0x100(%ebp,%ebx),%edi
1570 movb %ah, %bl
1571 shrl $16, %edx
1304 movb %ah, %bl
1305 shrl $16, %edx
1572 movl 0x300+des_SPtrans(%ecx),%ebp
1573 xorl %ebp, %edi
1574 movl 24(%esp), %ebp
1306 xorl 0x300(%ebp,%ecx),%edi
1575 movb %dh, %cl
1576 andl $0xff, %eax
1577 andl $0xff, %edx
1307 movb %dh, %cl
1308 andl $0xff, %eax
1309 andl $0xff, %edx
1578 movl 0x600+des_SPtrans(%ebx),%ebx
1579 xorl %ebx, %edi
1580 movl 0x700+des_SPtrans(%ecx),%ebx
1581 xorl %ebx, %edi
1582 movl 0x400+des_SPtrans(%eax),%ebx
1583 xorl %ebx, %edi
1584 movl 0x500+des_SPtrans(%edx),%ebx
1585 xorl %ebx, %edi
1310 xorl 0x600(%ebp,%ebx),%edi
1311 xorl 0x700(%ebp,%ecx),%edi
1312 movl 24(%esp), %ecx
1313 xorl 0x400(%ebp,%eax),%edi
1314 xorl 0x500(%ebp,%edx),%edi
1586
1315
1587 # Round 7
1588 movl 56(%ebp), %eax
1316
1317 movl 56(%ecx), %eax
1589 xorl %ebx, %ebx
1318 xorl %ebx, %ebx
1590 movl 60(%ebp), %edx
1319 movl 60(%ecx), %edx
1591 xorl %edi, %eax
1320 xorl %edi, %eax
1321 xorl %ecx, %ecx
1592 xorl %edi, %edx
1593 andl $0xfcfcfcfc, %eax
1594 andl $0xcfcfcfcf, %edx
1595 movb %al, %bl
1596 movb %ah, %cl
1597 rorl $4, %edx
1322 xorl %edi, %edx
1323 andl $0xfcfcfcfc, %eax
1324 andl $0xcfcfcfcf, %edx
1325 movb %al, %bl
1326 movb %ah, %cl
1327 rorl $4, %edx
1598 movl des_SPtrans(%ebx),%ebp
1328 xorl (%ebp,%ebx),%esi
1599 movb %dl, %bl
1329 movb %dl, %bl
1600 xorl %ebp, %esi
1601 movl 0x200+des_SPtrans(%ecx),%ebp
1602 xorl %ebp, %esi
1330 xorl 0x200(%ebp,%ecx),%esi
1603 movb %dh, %cl
1604 shrl $16, %eax
1331 movb %dh, %cl
1332 shrl $16, %eax
1605 movl 0x100+des_SPtrans(%ebx),%ebp
1606 xorl %ebp, %esi
1333 xorl 0x100(%ebp,%ebx),%esi
1607 movb %ah, %bl
1608 shrl $16, %edx
1334 movb %ah, %bl
1335 shrl $16, %edx
1609 movl 0x300+des_SPtrans(%ecx),%ebp
1610 xorl %ebp, %esi
1611 movl 24(%esp), %ebp
1336 xorl 0x300(%ebp,%ecx),%esi
1612 movb %dh, %cl
1613 andl $0xff, %eax
1614 andl $0xff, %edx
1337 movb %dh, %cl
1338 andl $0xff, %eax
1339 andl $0xff, %edx
1615 movl 0x600+des_SPtrans(%ebx),%ebx
1616 xorl %ebx, %esi
1617 movl 0x700+des_SPtrans(%ecx),%ebx
1618 xorl %ebx, %esi
1619 movl 0x400+des_SPtrans(%eax),%ebx
1620 xorl %ebx, %esi
1621 movl 0x500+des_SPtrans(%edx),%ebx
1622 xorl %ebx, %esi
1340 xorl 0x600(%ebp,%ebx),%esi
1341 xorl 0x700(%ebp,%ecx),%esi
1342 movl 24(%esp), %ecx
1343 xorl 0x400(%ebp,%eax),%esi
1344 xorl 0x500(%ebp,%edx),%esi
1623
1345
1624 # Round 8
1625 movl 64(%ebp), %eax
1346
1347 movl 64(%ecx), %eax
1626 xorl %ebx, %ebx
1348 xorl %ebx, %ebx
1627 movl 68(%ebp), %edx
1349 movl 68(%ecx), %edx
1628 xorl %esi, %eax
1350 xorl %esi, %eax
1351 xorl %ecx, %ecx
1629 xorl %esi, %edx
1630 andl $0xfcfcfcfc, %eax
1631 andl $0xcfcfcfcf, %edx
1632 movb %al, %bl
1633 movb %ah, %cl
1634 rorl $4, %edx
1352 xorl %esi, %edx
1353 andl $0xfcfcfcfc, %eax
1354 andl $0xcfcfcfcf, %edx
1355 movb %al, %bl
1356 movb %ah, %cl
1357 rorl $4, %edx
1635 movl des_SPtrans(%ebx),%ebp
1358 xorl (%ebp,%ebx),%edi
1636 movb %dl, %bl
1359 movb %dl, %bl
1637 xorl %ebp, %edi
1638 movl 0x200+des_SPtrans(%ecx),%ebp
1639 xorl %ebp, %edi
1360 xorl 0x200(%ebp,%ecx),%edi
1640 movb %dh, %cl
1641 shrl $16, %eax
1361 movb %dh, %cl
1362 shrl $16, %eax
1642 movl 0x100+des_SPtrans(%ebx),%ebp
1643 xorl %ebp, %edi
1363 xorl 0x100(%ebp,%ebx),%edi
1644 movb %ah, %bl
1645 shrl $16, %edx
1364 movb %ah, %bl
1365 shrl $16, %edx
1646 movl 0x300+des_SPtrans(%ecx),%ebp
1647 xorl %ebp, %edi
1648 movl 24(%esp), %ebp
1366 xorl 0x300(%ebp,%ecx),%edi
1649 movb %dh, %cl
1650 andl $0xff, %eax
1651 andl $0xff, %edx
1367 movb %dh, %cl
1368 andl $0xff, %eax
1369 andl $0xff, %edx
1652 movl 0x600+des_SPtrans(%ebx),%ebx
1653 xorl %ebx, %edi
1654 movl 0x700+des_SPtrans(%ecx),%ebx
1655 xorl %ebx, %edi
1656 movl 0x400+des_SPtrans(%eax),%ebx
1657 xorl %ebx, %edi
1658 movl 0x500+des_SPtrans(%edx),%ebx
1659 xorl %ebx, %edi
1370 xorl 0x600(%ebp,%ebx),%edi
1371 xorl 0x700(%ebp,%ecx),%edi
1372 movl 24(%esp), %ecx
1373 xorl 0x400(%ebp,%eax),%edi
1374 xorl 0x500(%ebp,%edx),%edi
1660
1375
1661 # Round 9
1662 movl 72(%ebp), %eax
1376
1377 movl 72(%ecx), %eax
1663 xorl %ebx, %ebx
1378 xorl %ebx, %ebx
1664 movl 76(%ebp), %edx
1379 movl 76(%ecx), %edx
1665 xorl %edi, %eax
1380 xorl %edi, %eax
1381 xorl %ecx, %ecx
1666 xorl %edi, %edx
1667 andl $0xfcfcfcfc, %eax
1668 andl $0xcfcfcfcf, %edx
1669 movb %al, %bl
1670 movb %ah, %cl
1671 rorl $4, %edx
1382 xorl %edi, %edx
1383 andl $0xfcfcfcfc, %eax
1384 andl $0xcfcfcfcf, %edx
1385 movb %al, %bl
1386 movb %ah, %cl
1387 rorl $4, %edx
1672 movl des_SPtrans(%ebx),%ebp
1388 xorl (%ebp,%ebx),%esi
1673 movb %dl, %bl
1389 movb %dl, %bl
1674 xorl %ebp, %esi
1675 movl 0x200+des_SPtrans(%ecx),%ebp
1676 xorl %ebp, %esi
1390 xorl 0x200(%ebp,%ecx),%esi
1677 movb %dh, %cl
1678 shrl $16, %eax
1391 movb %dh, %cl
1392 shrl $16, %eax
1679 movl 0x100+des_SPtrans(%ebx),%ebp
1680 xorl %ebp, %esi
1393 xorl 0x100(%ebp,%ebx),%esi
1681 movb %ah, %bl
1682 shrl $16, %edx
1394 movb %ah, %bl
1395 shrl $16, %edx
1683 movl 0x300+des_SPtrans(%ecx),%ebp
1684 xorl %ebp, %esi
1685 movl 24(%esp), %ebp
1396 xorl 0x300(%ebp,%ecx),%esi
1686 movb %dh, %cl
1687 andl $0xff, %eax
1688 andl $0xff, %edx
1397 movb %dh, %cl
1398 andl $0xff, %eax
1399 andl $0xff, %edx
1689 movl 0x600+des_SPtrans(%ebx),%ebx
1690 xorl %ebx, %esi
1691 movl 0x700+des_SPtrans(%ecx),%ebx
1692 xorl %ebx, %esi
1693 movl 0x400+des_SPtrans(%eax),%ebx
1694 xorl %ebx, %esi
1695 movl 0x500+des_SPtrans(%edx),%ebx
1696 xorl %ebx, %esi
1400 xorl 0x600(%ebp,%ebx),%esi
1401 xorl 0x700(%ebp,%ecx),%esi
1402 movl 24(%esp), %ecx
1403 xorl 0x400(%ebp,%eax),%esi
1404 xorl 0x500(%ebp,%edx),%esi
1697
1405
1698 # Round 10
1699 movl 80(%ebp), %eax
1406
1407 movl 80(%ecx), %eax
1700 xorl %ebx, %ebx
1408 xorl %ebx, %ebx
1701 movl 84(%ebp), %edx
1409 movl 84(%ecx), %edx
1702 xorl %esi, %eax
1410 xorl %esi, %eax
1411 xorl %ecx, %ecx
1703 xorl %esi, %edx
1704 andl $0xfcfcfcfc, %eax
1705 andl $0xcfcfcfcf, %edx
1706 movb %al, %bl
1707 movb %ah, %cl
1708 rorl $4, %edx
1412 xorl %esi, %edx
1413 andl $0xfcfcfcfc, %eax
1414 andl $0xcfcfcfcf, %edx
1415 movb %al, %bl
1416 movb %ah, %cl
1417 rorl $4, %edx
1709 movl des_SPtrans(%ebx),%ebp
1418 xorl (%ebp,%ebx),%edi
1710 movb %dl, %bl
1419 movb %dl, %bl
1711 xorl %ebp, %edi
1712 movl 0x200+des_SPtrans(%ecx),%ebp
1713 xorl %ebp, %edi
1420 xorl 0x200(%ebp,%ecx),%edi
1714 movb %dh, %cl
1715 shrl $16, %eax
1421 movb %dh, %cl
1422 shrl $16, %eax
1716 movl 0x100+des_SPtrans(%ebx),%ebp
1717 xorl %ebp, %edi
1423 xorl 0x100(%ebp,%ebx),%edi
1718 movb %ah, %bl
1719 shrl $16, %edx
1424 movb %ah, %bl
1425 shrl $16, %edx
1720 movl 0x300+des_SPtrans(%ecx),%ebp
1721 xorl %ebp, %edi
1722 movl 24(%esp), %ebp
1426 xorl 0x300(%ebp,%ecx),%edi
1723 movb %dh, %cl
1724 andl $0xff, %eax
1725 andl $0xff, %edx
1427 movb %dh, %cl
1428 andl $0xff, %eax
1429 andl $0xff, %edx
1726 movl 0x600+des_SPtrans(%ebx),%ebx
1727 xorl %ebx, %edi
1728 movl 0x700+des_SPtrans(%ecx),%ebx
1729 xorl %ebx, %edi
1730 movl 0x400+des_SPtrans(%eax),%ebx
1731 xorl %ebx, %edi
1732 movl 0x500+des_SPtrans(%edx),%ebx
1733 xorl %ebx, %edi
1430 xorl 0x600(%ebp,%ebx),%edi
1431 xorl 0x700(%ebp,%ecx),%edi
1432 movl 24(%esp), %ecx
1433 xorl 0x400(%ebp,%eax),%edi
1434 xorl 0x500(%ebp,%edx),%edi
1734
1435
1735 # Round 11
1736 movl 88(%ebp), %eax
1436
1437 movl 88(%ecx), %eax
1737 xorl %ebx, %ebx
1438 xorl %ebx, %ebx
1738 movl 92(%ebp), %edx
1439 movl 92(%ecx), %edx
1739 xorl %edi, %eax
1440 xorl %edi, %eax
1441 xorl %ecx, %ecx
1740 xorl %edi, %edx
1741 andl $0xfcfcfcfc, %eax
1742 andl $0xcfcfcfcf, %edx
1743 movb %al, %bl
1744 movb %ah, %cl
1745 rorl $4, %edx
1442 xorl %edi, %edx
1443 andl $0xfcfcfcfc, %eax
1444 andl $0xcfcfcfcf, %edx
1445 movb %al, %bl
1446 movb %ah, %cl
1447 rorl $4, %edx
1746 movl des_SPtrans(%ebx),%ebp
1448 xorl (%ebp,%ebx),%esi
1747 movb %dl, %bl
1449 movb %dl, %bl
1748 xorl %ebp, %esi
1749 movl 0x200+des_SPtrans(%ecx),%ebp
1750 xorl %ebp, %esi
1450 xorl 0x200(%ebp,%ecx),%esi
1751 movb %dh, %cl
1752 shrl $16, %eax
1451 movb %dh, %cl
1452 shrl $16, %eax
1753 movl 0x100+des_SPtrans(%ebx),%ebp
1754 xorl %ebp, %esi
1453 xorl 0x100(%ebp,%ebx),%esi
1755 movb %ah, %bl
1756 shrl $16, %edx
1454 movb %ah, %bl
1455 shrl $16, %edx
1757 movl 0x300+des_SPtrans(%ecx),%ebp
1758 xorl %ebp, %esi
1759 movl 24(%esp), %ebp
1456 xorl 0x300(%ebp,%ecx),%esi
1760 movb %dh, %cl
1761 andl $0xff, %eax
1762 andl $0xff, %edx
1457 movb %dh, %cl
1458 andl $0xff, %eax
1459 andl $0xff, %edx
1763 movl 0x600+des_SPtrans(%ebx),%ebx
1764 xorl %ebx, %esi
1765 movl 0x700+des_SPtrans(%ecx),%ebx
1766 xorl %ebx, %esi
1767 movl 0x400+des_SPtrans(%eax),%ebx
1768 xorl %ebx, %esi
1769 movl 0x500+des_SPtrans(%edx),%ebx
1770 xorl %ebx, %esi
1460 xorl 0x600(%ebp,%ebx),%esi
1461 xorl 0x700(%ebp,%ecx),%esi
1462 movl 24(%esp), %ecx
1463 xorl 0x400(%ebp,%eax),%esi
1464 xorl 0x500(%ebp,%edx),%esi
1771
1465
1772 # Round 12
1773 movl 96(%ebp), %eax
1466
1467 movl 96(%ecx), %eax
1774 xorl %ebx, %ebx
1468 xorl %ebx, %ebx
1775 movl 100(%ebp), %edx
1469 movl 100(%ecx), %edx
1776 xorl %esi, %eax
1470 xorl %esi, %eax
1471 xorl %ecx, %ecx
1777 xorl %esi, %edx
1778 andl $0xfcfcfcfc, %eax
1779 andl $0xcfcfcfcf, %edx
1780 movb %al, %bl
1781 movb %ah, %cl
1782 rorl $4, %edx
1472 xorl %esi, %edx
1473 andl $0xfcfcfcfc, %eax
1474 andl $0xcfcfcfcf, %edx
1475 movb %al, %bl
1476 movb %ah, %cl
1477 rorl $4, %edx
1783 movl des_SPtrans(%ebx),%ebp
1478 xorl (%ebp,%ebx),%edi
1784 movb %dl, %bl
1479 movb %dl, %bl
1785 xorl %ebp, %edi
1786 movl 0x200+des_SPtrans(%ecx),%ebp
1787 xorl %ebp, %edi
1480 xorl 0x200(%ebp,%ecx),%edi
1788 movb %dh, %cl
1789 shrl $16, %eax
1481 movb %dh, %cl
1482 shrl $16, %eax
1790 movl 0x100+des_SPtrans(%ebx),%ebp
1791 xorl %ebp, %edi
1483 xorl 0x100(%ebp,%ebx),%edi
1792 movb %ah, %bl
1793 shrl $16, %edx
1484 movb %ah, %bl
1485 shrl $16, %edx
1794 movl 0x300+des_SPtrans(%ecx),%ebp
1795 xorl %ebp, %edi
1796 movl 24(%esp), %ebp
1486 xorl 0x300(%ebp,%ecx),%edi
1797 movb %dh, %cl
1798 andl $0xff, %eax
1799 andl $0xff, %edx
1487 movb %dh, %cl
1488 andl $0xff, %eax
1489 andl $0xff, %edx
1800 movl 0x600+des_SPtrans(%ebx),%ebx
1801 xorl %ebx, %edi
1802 movl 0x700+des_SPtrans(%ecx),%ebx
1803 xorl %ebx, %edi
1804 movl 0x400+des_SPtrans(%eax),%ebx
1805 xorl %ebx, %edi
1806 movl 0x500+des_SPtrans(%edx),%ebx
1807 xorl %ebx, %edi
1490 xorl 0x600(%ebp,%ebx),%edi
1491 xorl 0x700(%ebp,%ecx),%edi
1492 movl 24(%esp), %ecx
1493 xorl 0x400(%ebp,%eax),%edi
1494 xorl 0x500(%ebp,%edx),%edi
1808
1495
1809 # Round 13
1810 movl 104(%ebp), %eax
1496
1497 movl 104(%ecx), %eax
1811 xorl %ebx, %ebx
1498 xorl %ebx, %ebx
1812 movl 108(%ebp), %edx
1499 movl 108(%ecx), %edx
1813 xorl %edi, %eax
1500 xorl %edi, %eax
1501 xorl %ecx, %ecx
1814 xorl %edi, %edx
1815 andl $0xfcfcfcfc, %eax
1816 andl $0xcfcfcfcf, %edx
1817 movb %al, %bl
1818 movb %ah, %cl
1819 rorl $4, %edx
1502 xorl %edi, %edx
1503 andl $0xfcfcfcfc, %eax
1504 andl $0xcfcfcfcf, %edx
1505 movb %al, %bl
1506 movb %ah, %cl
1507 rorl $4, %edx
1820 movl des_SPtrans(%ebx),%ebp
1508 xorl (%ebp,%ebx),%esi
1821 movb %dl, %bl
1509 movb %dl, %bl
1822 xorl %ebp, %esi
1823 movl 0x200+des_SPtrans(%ecx),%ebp
1824 xorl %ebp, %esi
1510 xorl 0x200(%ebp,%ecx),%esi
1825 movb %dh, %cl
1826 shrl $16, %eax
1511 movb %dh, %cl
1512 shrl $16, %eax
1827 movl 0x100+des_SPtrans(%ebx),%ebp
1828 xorl %ebp, %esi
1513 xorl 0x100(%ebp,%ebx),%esi
1829 movb %ah, %bl
1830 shrl $16, %edx
1514 movb %ah, %bl
1515 shrl $16, %edx
1831 movl 0x300+des_SPtrans(%ecx),%ebp
1832 xorl %ebp, %esi
1833 movl 24(%esp), %ebp
1516 xorl 0x300(%ebp,%ecx),%esi
1834 movb %dh, %cl
1835 andl $0xff, %eax
1836 andl $0xff, %edx
1517 movb %dh, %cl
1518 andl $0xff, %eax
1519 andl $0xff, %edx
1837 movl 0x600+des_SPtrans(%ebx),%ebx
1838 xorl %ebx, %esi
1839 movl 0x700+des_SPtrans(%ecx),%ebx
1840 xorl %ebx, %esi
1841 movl 0x400+des_SPtrans(%eax),%ebx
1842 xorl %ebx, %esi
1843 movl 0x500+des_SPtrans(%edx),%ebx
1844 xorl %ebx, %esi
1520 xorl 0x600(%ebp,%ebx),%esi
1521 xorl 0x700(%ebp,%ecx),%esi
1522 movl 24(%esp), %ecx
1523 xorl 0x400(%ebp,%eax),%esi
1524 xorl 0x500(%ebp,%edx),%esi
1845
1525
1846 # Round 14
1847 movl 112(%ebp), %eax
1526
1527 movl 112(%ecx), %eax
1848 xorl %ebx, %ebx
1528 xorl %ebx, %ebx
1849 movl 116(%ebp), %edx
1529 movl 116(%ecx), %edx
1850 xorl %esi, %eax
1530 xorl %esi, %eax
1531 xorl %ecx, %ecx
1851 xorl %esi, %edx
1852 andl $0xfcfcfcfc, %eax
1853 andl $0xcfcfcfcf, %edx
1854 movb %al, %bl
1855 movb %ah, %cl
1856 rorl $4, %edx
1532 xorl %esi, %edx
1533 andl $0xfcfcfcfc, %eax
1534 andl $0xcfcfcfcf, %edx
1535 movb %al, %bl
1536 movb %ah, %cl
1537 rorl $4, %edx
1857 movl des_SPtrans(%ebx),%ebp
1538 xorl (%ebp,%ebx),%edi
1858 movb %dl, %bl
1539 movb %dl, %bl
1859 xorl %ebp, %edi
1860 movl 0x200+des_SPtrans(%ecx),%ebp
1861 xorl %ebp, %edi
1540 xorl 0x200(%ebp,%ecx),%edi
1862 movb %dh, %cl
1863 shrl $16, %eax
1541 movb %dh, %cl
1542 shrl $16, %eax
1864 movl 0x100+des_SPtrans(%ebx),%ebp
1865 xorl %ebp, %edi
1543 xorl 0x100(%ebp,%ebx),%edi
1866 movb %ah, %bl
1867 shrl $16, %edx
1544 movb %ah, %bl
1545 shrl $16, %edx
1868 movl 0x300+des_SPtrans(%ecx),%ebp
1869 xorl %ebp, %edi
1870 movl 24(%esp), %ebp
1546 xorl 0x300(%ebp,%ecx),%edi
1871 movb %dh, %cl
1872 andl $0xff, %eax
1873 andl $0xff, %edx
1547 movb %dh, %cl
1548 andl $0xff, %eax
1549 andl $0xff, %edx
1874 movl 0x600+des_SPtrans(%ebx),%ebx
1875 xorl %ebx, %edi
1876 movl 0x700+des_SPtrans(%ecx),%ebx
1877 xorl %ebx, %edi
1878 movl 0x400+des_SPtrans(%eax),%ebx
1879 xorl %ebx, %edi
1880 movl 0x500+des_SPtrans(%edx),%ebx
1881 xorl %ebx, %edi
1550 xorl 0x600(%ebp,%ebx),%edi
1551 xorl 0x700(%ebp,%ecx),%edi
1552 movl 24(%esp), %ecx
1553 xorl 0x400(%ebp,%eax),%edi
1554 xorl 0x500(%ebp,%edx),%edi
1882
1555
1883 # Round 15
1884 movl 120(%ebp), %eax
1556
1557 movl 120(%ecx), %eax
1885 xorl %ebx, %ebx
1558 xorl %ebx, %ebx
1886 movl 124(%ebp), %edx
1559 movl 124(%ecx), %edx
1887 xorl %edi, %eax
1560 xorl %edi, %eax
1561 xorl %ecx, %ecx
1888 xorl %edi, %edx
1889 andl $0xfcfcfcfc, %eax
1890 andl $0xcfcfcfcf, %edx
1891 movb %al, %bl
1892 movb %ah, %cl
1893 rorl $4, %edx
1562 xorl %edi, %edx
1563 andl $0xfcfcfcfc, %eax
1564 andl $0xcfcfcfcf, %edx
1565 movb %al, %bl
1566 movb %ah, %cl
1567 rorl $4, %edx
1894 movl des_SPtrans(%ebx),%ebp
1568 xorl (%ebp,%ebx),%esi
1895 movb %dl, %bl
1569 movb %dl, %bl
1896 xorl %ebp, %esi
1897 movl 0x200+des_SPtrans(%ecx),%ebp
1898 xorl %ebp, %esi
1570 xorl 0x200(%ebp,%ecx),%esi
1899 movb %dh, %cl
1900 shrl $16, %eax
1571 movb %dh, %cl
1572 shrl $16, %eax
1901 movl 0x100+des_SPtrans(%ebx),%ebp
1902 xorl %ebp, %esi
1573 xorl 0x100(%ebp,%ebx),%esi
1903 movb %ah, %bl
1904 shrl $16, %edx
1574 movb %ah, %bl
1575 shrl $16, %edx
1905 movl 0x300+des_SPtrans(%ecx),%ebp
1906 xorl %ebp, %esi
1907 movl 24(%esp), %ebp
1576 xorl 0x300(%ebp,%ecx),%esi
1908 movb %dh, %cl
1909 andl $0xff, %eax
1910 andl $0xff, %edx
1577 movb %dh, %cl
1578 andl $0xff, %eax
1579 andl $0xff, %edx
1911 movl 0x600+des_SPtrans(%ebx),%ebx
1912 xorl %ebx, %esi
1913 movl 0x700+des_SPtrans(%ecx),%ebx
1914 xorl %ebx, %esi
1915 movl 0x400+des_SPtrans(%eax),%ebx
1916 xorl %ebx, %esi
1917 movl 0x500+des_SPtrans(%edx),%ebx
1918 xorl %ebx, %esi
1580 xorl 0x600(%ebp,%ebx),%esi
1581 xorl 0x700(%ebp,%ecx),%esi
1582 movl 24(%esp), %ecx
1583 xorl 0x400(%ebp,%eax),%esi
1584 xorl 0x500(%ebp,%edx),%esi
1919 jmp .L003end
1920.L002start_decrypt:
1921
1585 jmp .L003end
1586.L002start_decrypt:
1587
1922 # Round 15
1923 movl 120(%ebp), %eax
1588
1589 movl 120(%ecx), %eax
1924 xorl %ebx, %ebx
1590 xorl %ebx, %ebx
1925 movl 124(%ebp), %edx
1591 movl 124(%ecx), %edx
1926 xorl %esi, %eax
1592 xorl %esi, %eax
1593 xorl %ecx, %ecx
1927 xorl %esi, %edx
1928 andl $0xfcfcfcfc, %eax
1929 andl $0xcfcfcfcf, %edx
1930 movb %al, %bl
1931 movb %ah, %cl
1932 rorl $4, %edx
1594 xorl %esi, %edx
1595 andl $0xfcfcfcfc, %eax
1596 andl $0xcfcfcfcf, %edx
1597 movb %al, %bl
1598 movb %ah, %cl
1599 rorl $4, %edx
1933 movl des_SPtrans(%ebx),%ebp
1600 xorl (%ebp,%ebx),%edi
1934 movb %dl, %bl
1601 movb %dl, %bl
1935 xorl %ebp, %edi
1936 movl 0x200+des_SPtrans(%ecx),%ebp
1937 xorl %ebp, %edi
1602 xorl 0x200(%ebp,%ecx),%edi
1938 movb %dh, %cl
1939 shrl $16, %eax
1603 movb %dh, %cl
1604 shrl $16, %eax
1940 movl 0x100+des_SPtrans(%ebx),%ebp
1941 xorl %ebp, %edi
1605 xorl 0x100(%ebp,%ebx),%edi
1942 movb %ah, %bl
1943 shrl $16, %edx
1606 movb %ah, %bl
1607 shrl $16, %edx
1944 movl 0x300+des_SPtrans(%ecx),%ebp
1945 xorl %ebp, %edi
1946 movl 24(%esp), %ebp
1608 xorl 0x300(%ebp,%ecx),%edi
1947 movb %dh, %cl
1948 andl $0xff, %eax
1949 andl $0xff, %edx
1609 movb %dh, %cl
1610 andl $0xff, %eax
1611 andl $0xff, %edx
1950 movl 0x600+des_SPtrans(%ebx),%ebx
1951 xorl %ebx, %edi
1952 movl 0x700+des_SPtrans(%ecx),%ebx
1953 xorl %ebx, %edi
1954 movl 0x400+des_SPtrans(%eax),%ebx
1955 xorl %ebx, %edi
1956 movl 0x500+des_SPtrans(%edx),%ebx
1957 xorl %ebx, %edi
1612 xorl 0x600(%ebp,%ebx),%edi
1613 xorl 0x700(%ebp,%ecx),%edi
1614 movl 24(%esp), %ecx
1615 xorl 0x400(%ebp,%eax),%edi
1616 xorl 0x500(%ebp,%edx),%edi
1958
1617
1959 # Round 14
1960 movl 112(%ebp), %eax
1618
1619 movl 112(%ecx), %eax
1961 xorl %ebx, %ebx
1620 xorl %ebx, %ebx
1962 movl 116(%ebp), %edx
1621 movl 116(%ecx), %edx
1963 xorl %edi, %eax
1622 xorl %edi, %eax
1623 xorl %ecx, %ecx
1964 xorl %edi, %edx
1965 andl $0xfcfcfcfc, %eax
1966 andl $0xcfcfcfcf, %edx
1967 movb %al, %bl
1968 movb %ah, %cl
1969 rorl $4, %edx
1624 xorl %edi, %edx
1625 andl $0xfcfcfcfc, %eax
1626 andl $0xcfcfcfcf, %edx
1627 movb %al, %bl
1628 movb %ah, %cl
1629 rorl $4, %edx
1970 movl des_SPtrans(%ebx),%ebp
1630 xorl (%ebp,%ebx),%esi
1971 movb %dl, %bl
1631 movb %dl, %bl
1972 xorl %ebp, %esi
1973 movl 0x200+des_SPtrans(%ecx),%ebp
1974 xorl %ebp, %esi
1632 xorl 0x200(%ebp,%ecx),%esi
1975 movb %dh, %cl
1976 shrl $16, %eax
1633 movb %dh, %cl
1634 shrl $16, %eax
1977 movl 0x100+des_SPtrans(%ebx),%ebp
1978 xorl %ebp, %esi
1635 xorl 0x100(%ebp,%ebx),%esi
1979 movb %ah, %bl
1980 shrl $16, %edx
1636 movb %ah, %bl
1637 shrl $16, %edx
1981 movl 0x300+des_SPtrans(%ecx),%ebp
1982 xorl %ebp, %esi
1983 movl 24(%esp), %ebp
1638 xorl 0x300(%ebp,%ecx),%esi
1984 movb %dh, %cl
1985 andl $0xff, %eax
1986 andl $0xff, %edx
1639 movb %dh, %cl
1640 andl $0xff, %eax
1641 andl $0xff, %edx
1987 movl 0x600+des_SPtrans(%ebx),%ebx
1988 xorl %ebx, %esi
1989 movl 0x700+des_SPtrans(%ecx),%ebx
1990 xorl %ebx, %esi
1991 movl 0x400+des_SPtrans(%eax),%ebx
1992 xorl %ebx, %esi
1993 movl 0x500+des_SPtrans(%edx),%ebx
1994 xorl %ebx, %esi
1642 xorl 0x600(%ebp,%ebx),%esi
1643 xorl 0x700(%ebp,%ecx),%esi
1644 movl 24(%esp), %ecx
1645 xorl 0x400(%ebp,%eax),%esi
1646 xorl 0x500(%ebp,%edx),%esi
1995
1647
1996 # Round 13
1997 movl 104(%ebp), %eax
1648
1649 movl 104(%ecx), %eax
1998 xorl %ebx, %ebx
1650 xorl %ebx, %ebx
1999 movl 108(%ebp), %edx
1651 movl 108(%ecx), %edx
2000 xorl %esi, %eax
1652 xorl %esi, %eax
1653 xorl %ecx, %ecx
2001 xorl %esi, %edx
2002 andl $0xfcfcfcfc, %eax
2003 andl $0xcfcfcfcf, %edx
2004 movb %al, %bl
2005 movb %ah, %cl
2006 rorl $4, %edx
1654 xorl %esi, %edx
1655 andl $0xfcfcfcfc, %eax
1656 andl $0xcfcfcfcf, %edx
1657 movb %al, %bl
1658 movb %ah, %cl
1659 rorl $4, %edx
2007 movl des_SPtrans(%ebx),%ebp
1660 xorl (%ebp,%ebx),%edi
2008 movb %dl, %bl
1661 movb %dl, %bl
2009 xorl %ebp, %edi
2010 movl 0x200+des_SPtrans(%ecx),%ebp
2011 xorl %ebp, %edi
1662 xorl 0x200(%ebp,%ecx),%edi
2012 movb %dh, %cl
2013 shrl $16, %eax
1663 movb %dh, %cl
1664 shrl $16, %eax
2014 movl 0x100+des_SPtrans(%ebx),%ebp
2015 xorl %ebp, %edi
1665 xorl 0x100(%ebp,%ebx),%edi
2016 movb %ah, %bl
2017 shrl $16, %edx
1666 movb %ah, %bl
1667 shrl $16, %edx
2018 movl 0x300+des_SPtrans(%ecx),%ebp
2019 xorl %ebp, %edi
2020 movl 24(%esp), %ebp
1668 xorl 0x300(%ebp,%ecx),%edi
2021 movb %dh, %cl
2022 andl $0xff, %eax
2023 andl $0xff, %edx
1669 movb %dh, %cl
1670 andl $0xff, %eax
1671 andl $0xff, %edx
2024 movl 0x600+des_SPtrans(%ebx),%ebx
2025 xorl %ebx, %edi
2026 movl 0x700+des_SPtrans(%ecx),%ebx
2027 xorl %ebx, %edi
2028 movl 0x400+des_SPtrans(%eax),%ebx
2029 xorl %ebx, %edi
2030 movl 0x500+des_SPtrans(%edx),%ebx
2031 xorl %ebx, %edi
1672 xorl 0x600(%ebp,%ebx),%edi
1673 xorl 0x700(%ebp,%ecx),%edi
1674 movl 24(%esp), %ecx
1675 xorl 0x400(%ebp,%eax),%edi
1676 xorl 0x500(%ebp,%edx),%edi
2032
1677
2033 # Round 12
2034 movl 96(%ebp), %eax
1678
1679 movl 96(%ecx), %eax
2035 xorl %ebx, %ebx
1680 xorl %ebx, %ebx
2036 movl 100(%ebp), %edx
1681 movl 100(%ecx), %edx
2037 xorl %edi, %eax
1682 xorl %edi, %eax
1683 xorl %ecx, %ecx
2038 xorl %edi, %edx
2039 andl $0xfcfcfcfc, %eax
2040 andl $0xcfcfcfcf, %edx
2041 movb %al, %bl
2042 movb %ah, %cl
2043 rorl $4, %edx
1684 xorl %edi, %edx
1685 andl $0xfcfcfcfc, %eax
1686 andl $0xcfcfcfcf, %edx
1687 movb %al, %bl
1688 movb %ah, %cl
1689 rorl $4, %edx
2044 movl des_SPtrans(%ebx),%ebp
1690 xorl (%ebp,%ebx),%esi
2045 movb %dl, %bl
1691 movb %dl, %bl
2046 xorl %ebp, %esi
2047 movl 0x200+des_SPtrans(%ecx),%ebp
2048 xorl %ebp, %esi
1692 xorl 0x200(%ebp,%ecx),%esi
2049 movb %dh, %cl
2050 shrl $16, %eax
1693 movb %dh, %cl
1694 shrl $16, %eax
2051 movl 0x100+des_SPtrans(%ebx),%ebp
2052 xorl %ebp, %esi
1695 xorl 0x100(%ebp,%ebx),%esi
2053 movb %ah, %bl
2054 shrl $16, %edx
1696 movb %ah, %bl
1697 shrl $16, %edx
2055 movl 0x300+des_SPtrans(%ecx),%ebp
2056 xorl %ebp, %esi
2057 movl 24(%esp), %ebp
1698 xorl 0x300(%ebp,%ecx),%esi
2058 movb %dh, %cl
2059 andl $0xff, %eax
2060 andl $0xff, %edx
1699 movb %dh, %cl
1700 andl $0xff, %eax
1701 andl $0xff, %edx
2061 movl 0x600+des_SPtrans(%ebx),%ebx
2062 xorl %ebx, %esi
2063 movl 0x700+des_SPtrans(%ecx),%ebx
2064 xorl %ebx, %esi
2065 movl 0x400+des_SPtrans(%eax),%ebx
2066 xorl %ebx, %esi
2067 movl 0x500+des_SPtrans(%edx),%ebx
2068 xorl %ebx, %esi
1702 xorl 0x600(%ebp,%ebx),%esi
1703 xorl 0x700(%ebp,%ecx),%esi
1704 movl 24(%esp), %ecx
1705 xorl 0x400(%ebp,%eax),%esi
1706 xorl 0x500(%ebp,%edx),%esi
2069
1707
2070 # Round 11
2071 movl 88(%ebp), %eax
1708
1709 movl 88(%ecx), %eax
2072 xorl %ebx, %ebx
1710 xorl %ebx, %ebx
2073 movl 92(%ebp), %edx
1711 movl 92(%ecx), %edx
2074 xorl %esi, %eax
1712 xorl %esi, %eax
1713 xorl %ecx, %ecx
2075 xorl %esi, %edx
2076 andl $0xfcfcfcfc, %eax
2077 andl $0xcfcfcfcf, %edx
2078 movb %al, %bl
2079 movb %ah, %cl
2080 rorl $4, %edx
1714 xorl %esi, %edx
1715 andl $0xfcfcfcfc, %eax
1716 andl $0xcfcfcfcf, %edx
1717 movb %al, %bl
1718 movb %ah, %cl
1719 rorl $4, %edx
2081 movl des_SPtrans(%ebx),%ebp
1720 xorl (%ebp,%ebx),%edi
2082 movb %dl, %bl
1721 movb %dl, %bl
2083 xorl %ebp, %edi
2084 movl 0x200+des_SPtrans(%ecx),%ebp
2085 xorl %ebp, %edi
1722 xorl 0x200(%ebp,%ecx),%edi
2086 movb %dh, %cl
2087 shrl $16, %eax
1723 movb %dh, %cl
1724 shrl $16, %eax
2088 movl 0x100+des_SPtrans(%ebx),%ebp
2089 xorl %ebp, %edi
1725 xorl 0x100(%ebp,%ebx),%edi
2090 movb %ah, %bl
2091 shrl $16, %edx
1726 movb %ah, %bl
1727 shrl $16, %edx
2092 movl 0x300+des_SPtrans(%ecx),%ebp
2093 xorl %ebp, %edi
2094 movl 24(%esp), %ebp
1728 xorl 0x300(%ebp,%ecx),%edi
2095 movb %dh, %cl
2096 andl $0xff, %eax
2097 andl $0xff, %edx
1729 movb %dh, %cl
1730 andl $0xff, %eax
1731 andl $0xff, %edx
2098 movl 0x600+des_SPtrans(%ebx),%ebx
2099 xorl %ebx, %edi
2100 movl 0x700+des_SPtrans(%ecx),%ebx
2101 xorl %ebx, %edi
2102 movl 0x400+des_SPtrans(%eax),%ebx
2103 xorl %ebx, %edi
2104 movl 0x500+des_SPtrans(%edx),%ebx
2105 xorl %ebx, %edi
1732 xorl 0x600(%ebp,%ebx),%edi
1733 xorl 0x700(%ebp,%ecx),%edi
1734 movl 24(%esp), %ecx
1735 xorl 0x400(%ebp,%eax),%edi
1736 xorl 0x500(%ebp,%edx),%edi
2106
1737
2107 # Round 10
2108 movl 80(%ebp), %eax
1738
1739 movl 80(%ecx), %eax
2109 xorl %ebx, %ebx
1740 xorl %ebx, %ebx
2110 movl 84(%ebp), %edx
1741 movl 84(%ecx), %edx
2111 xorl %edi, %eax
1742 xorl %edi, %eax
1743 xorl %ecx, %ecx
2112 xorl %edi, %edx
2113 andl $0xfcfcfcfc, %eax
2114 andl $0xcfcfcfcf, %edx
2115 movb %al, %bl
2116 movb %ah, %cl
2117 rorl $4, %edx
1744 xorl %edi, %edx
1745 andl $0xfcfcfcfc, %eax
1746 andl $0xcfcfcfcf, %edx
1747 movb %al, %bl
1748 movb %ah, %cl
1749 rorl $4, %edx
2118 movl des_SPtrans(%ebx),%ebp
1750 xorl (%ebp,%ebx),%esi
2119 movb %dl, %bl
1751 movb %dl, %bl
2120 xorl %ebp, %esi
2121 movl 0x200+des_SPtrans(%ecx),%ebp
2122 xorl %ebp, %esi
1752 xorl 0x200(%ebp,%ecx),%esi
2123 movb %dh, %cl
2124 shrl $16, %eax
1753 movb %dh, %cl
1754 shrl $16, %eax
2125 movl 0x100+des_SPtrans(%ebx),%ebp
2126 xorl %ebp, %esi
1755 xorl 0x100(%ebp,%ebx),%esi
2127 movb %ah, %bl
2128 shrl $16, %edx
1756 movb %ah, %bl
1757 shrl $16, %edx
2129 movl 0x300+des_SPtrans(%ecx),%ebp
2130 xorl %ebp, %esi
2131 movl 24(%esp), %ebp
1758 xorl 0x300(%ebp,%ecx),%esi
2132 movb %dh, %cl
2133 andl $0xff, %eax
2134 andl $0xff, %edx
1759 movb %dh, %cl
1760 andl $0xff, %eax
1761 andl $0xff, %edx
2135 movl 0x600+des_SPtrans(%ebx),%ebx
2136 xorl %ebx, %esi
2137 movl 0x700+des_SPtrans(%ecx),%ebx
2138 xorl %ebx, %esi
2139 movl 0x400+des_SPtrans(%eax),%ebx
2140 xorl %ebx, %esi
2141 movl 0x500+des_SPtrans(%edx),%ebx
2142 xorl %ebx, %esi
1762 xorl 0x600(%ebp,%ebx),%esi
1763 xorl 0x700(%ebp,%ecx),%esi
1764 movl 24(%esp), %ecx
1765 xorl 0x400(%ebp,%eax),%esi
1766 xorl 0x500(%ebp,%edx),%esi
2143
1767
2144 # Round 9
2145 movl 72(%ebp), %eax
1768
1769 movl 72(%ecx), %eax
2146 xorl %ebx, %ebx
1770 xorl %ebx, %ebx
2147 movl 76(%ebp), %edx
1771 movl 76(%ecx), %edx
2148 xorl %esi, %eax
1772 xorl %esi, %eax
1773 xorl %ecx, %ecx
2149 xorl %esi, %edx
2150 andl $0xfcfcfcfc, %eax
2151 andl $0xcfcfcfcf, %edx
2152 movb %al, %bl
2153 movb %ah, %cl
2154 rorl $4, %edx
1774 xorl %esi, %edx
1775 andl $0xfcfcfcfc, %eax
1776 andl $0xcfcfcfcf, %edx
1777 movb %al, %bl
1778 movb %ah, %cl
1779 rorl $4, %edx
2155 movl des_SPtrans(%ebx),%ebp
1780 xorl (%ebp,%ebx),%edi
2156 movb %dl, %bl
1781 movb %dl, %bl
2157 xorl %ebp, %edi
2158 movl 0x200+des_SPtrans(%ecx),%ebp
2159 xorl %ebp, %edi
1782 xorl 0x200(%ebp,%ecx),%edi
2160 movb %dh, %cl
2161 shrl $16, %eax
1783 movb %dh, %cl
1784 shrl $16, %eax
2162 movl 0x100+des_SPtrans(%ebx),%ebp
2163 xorl %ebp, %edi
1785 xorl 0x100(%ebp,%ebx),%edi
2164 movb %ah, %bl
2165 shrl $16, %edx
1786 movb %ah, %bl
1787 shrl $16, %edx
2166 movl 0x300+des_SPtrans(%ecx),%ebp
2167 xorl %ebp, %edi
2168 movl 24(%esp), %ebp
1788 xorl 0x300(%ebp,%ecx),%edi
2169 movb %dh, %cl
2170 andl $0xff, %eax
2171 andl $0xff, %edx
1789 movb %dh, %cl
1790 andl $0xff, %eax
1791 andl $0xff, %edx
2172 movl 0x600+des_SPtrans(%ebx),%ebx
2173 xorl %ebx, %edi
2174 movl 0x700+des_SPtrans(%ecx),%ebx
2175 xorl %ebx, %edi
2176 movl 0x400+des_SPtrans(%eax),%ebx
2177 xorl %ebx, %edi
2178 movl 0x500+des_SPtrans(%edx),%ebx
2179 xorl %ebx, %edi
1792 xorl 0x600(%ebp,%ebx),%edi
1793 xorl 0x700(%ebp,%ecx),%edi
1794 movl 24(%esp), %ecx
1795 xorl 0x400(%ebp,%eax),%edi
1796 xorl 0x500(%ebp,%edx),%edi
2180
1797
2181 # Round 8
2182 movl 64(%ebp), %eax
1798
1799 movl 64(%ecx), %eax
2183 xorl %ebx, %ebx
1800 xorl %ebx, %ebx
2184 movl 68(%ebp), %edx
1801 movl 68(%ecx), %edx
2185 xorl %edi, %eax
1802 xorl %edi, %eax
1803 xorl %ecx, %ecx
2186 xorl %edi, %edx
2187 andl $0xfcfcfcfc, %eax
2188 andl $0xcfcfcfcf, %edx
2189 movb %al, %bl
2190 movb %ah, %cl
2191 rorl $4, %edx
1804 xorl %edi, %edx
1805 andl $0xfcfcfcfc, %eax
1806 andl $0xcfcfcfcf, %edx
1807 movb %al, %bl
1808 movb %ah, %cl
1809 rorl $4, %edx
2192 movl des_SPtrans(%ebx),%ebp
1810 xorl (%ebp,%ebx),%esi
2193 movb %dl, %bl
1811 movb %dl, %bl
2194 xorl %ebp, %esi
2195 movl 0x200+des_SPtrans(%ecx),%ebp
2196 xorl %ebp, %esi
1812 xorl 0x200(%ebp,%ecx),%esi
2197 movb %dh, %cl
2198 shrl $16, %eax
1813 movb %dh, %cl
1814 shrl $16, %eax
2199 movl 0x100+des_SPtrans(%ebx),%ebp
2200 xorl %ebp, %esi
1815 xorl 0x100(%ebp,%ebx),%esi
2201 movb %ah, %bl
2202 shrl $16, %edx
1816 movb %ah, %bl
1817 shrl $16, %edx
2203 movl 0x300+des_SPtrans(%ecx),%ebp
2204 xorl %ebp, %esi
2205 movl 24(%esp), %ebp
1818 xorl 0x300(%ebp,%ecx),%esi
2206 movb %dh, %cl
2207 andl $0xff, %eax
2208 andl $0xff, %edx
1819 movb %dh, %cl
1820 andl $0xff, %eax
1821 andl $0xff, %edx
2209 movl 0x600+des_SPtrans(%ebx),%ebx
2210 xorl %ebx, %esi
2211 movl 0x700+des_SPtrans(%ecx),%ebx
2212 xorl %ebx, %esi
2213 movl 0x400+des_SPtrans(%eax),%ebx
2214 xorl %ebx, %esi
2215 movl 0x500+des_SPtrans(%edx),%ebx
2216 xorl %ebx, %esi
1822 xorl 0x600(%ebp,%ebx),%esi
1823 xorl 0x700(%ebp,%ecx),%esi
1824 movl 24(%esp), %ecx
1825 xorl 0x400(%ebp,%eax),%esi
1826 xorl 0x500(%ebp,%edx),%esi
2217
1827
2218 # Round 7
2219 movl 56(%ebp), %eax
1828
1829 movl 56(%ecx), %eax
2220 xorl %ebx, %ebx
1830 xorl %ebx, %ebx
2221 movl 60(%ebp), %edx
1831 movl 60(%ecx), %edx
2222 xorl %esi, %eax
1832 xorl %esi, %eax
1833 xorl %ecx, %ecx
2223 xorl %esi, %edx
2224 andl $0xfcfcfcfc, %eax
2225 andl $0xcfcfcfcf, %edx
2226 movb %al, %bl
2227 movb %ah, %cl
2228 rorl $4, %edx
1834 xorl %esi, %edx
1835 andl $0xfcfcfcfc, %eax
1836 andl $0xcfcfcfcf, %edx
1837 movb %al, %bl
1838 movb %ah, %cl
1839 rorl $4, %edx
2229 movl des_SPtrans(%ebx),%ebp
1840 xorl (%ebp,%ebx),%edi
2230 movb %dl, %bl
1841 movb %dl, %bl
2231 xorl %ebp, %edi
2232 movl 0x200+des_SPtrans(%ecx),%ebp
2233 xorl %ebp, %edi
1842 xorl 0x200(%ebp,%ecx),%edi
2234 movb %dh, %cl
2235 shrl $16, %eax
1843 movb %dh, %cl
1844 shrl $16, %eax
2236 movl 0x100+des_SPtrans(%ebx),%ebp
2237 xorl %ebp, %edi
1845 xorl 0x100(%ebp,%ebx),%edi
2238 movb %ah, %bl
2239 shrl $16, %edx
1846 movb %ah, %bl
1847 shrl $16, %edx
2240 movl 0x300+des_SPtrans(%ecx),%ebp
2241 xorl %ebp, %edi
2242 movl 24(%esp), %ebp
1848 xorl 0x300(%ebp,%ecx),%edi
2243 movb %dh, %cl
2244 andl $0xff, %eax
2245 andl $0xff, %edx
1849 movb %dh, %cl
1850 andl $0xff, %eax
1851 andl $0xff, %edx
2246 movl 0x600+des_SPtrans(%ebx),%ebx
2247 xorl %ebx, %edi
2248 movl 0x700+des_SPtrans(%ecx),%ebx
2249 xorl %ebx, %edi
2250 movl 0x400+des_SPtrans(%eax),%ebx
2251 xorl %ebx, %edi
2252 movl 0x500+des_SPtrans(%edx),%ebx
2253 xorl %ebx, %edi
1852 xorl 0x600(%ebp,%ebx),%edi
1853 xorl 0x700(%ebp,%ecx),%edi
1854 movl 24(%esp), %ecx
1855 xorl 0x400(%ebp,%eax),%edi
1856 xorl 0x500(%ebp,%edx),%edi
2254
1857
2255 # Round 6
2256 movl 48(%ebp), %eax
1858
1859 movl 48(%ecx), %eax
2257 xorl %ebx, %ebx
1860 xorl %ebx, %ebx
2258 movl 52(%ebp), %edx
1861 movl 52(%ecx), %edx
2259 xorl %edi, %eax
1862 xorl %edi, %eax
1863 xorl %ecx, %ecx
2260 xorl %edi, %edx
2261 andl $0xfcfcfcfc, %eax
2262 andl $0xcfcfcfcf, %edx
2263 movb %al, %bl
2264 movb %ah, %cl
2265 rorl $4, %edx
1864 xorl %edi, %edx
1865 andl $0xfcfcfcfc, %eax
1866 andl $0xcfcfcfcf, %edx
1867 movb %al, %bl
1868 movb %ah, %cl
1869 rorl $4, %edx
2266 movl des_SPtrans(%ebx),%ebp
1870 xorl (%ebp,%ebx),%esi
2267 movb %dl, %bl
1871 movb %dl, %bl
2268 xorl %ebp, %esi
2269 movl 0x200+des_SPtrans(%ecx),%ebp
2270 xorl %ebp, %esi
1872 xorl 0x200(%ebp,%ecx),%esi
2271 movb %dh, %cl
2272 shrl $16, %eax
1873 movb %dh, %cl
1874 shrl $16, %eax
2273 movl 0x100+des_SPtrans(%ebx),%ebp
2274 xorl %ebp, %esi
1875 xorl 0x100(%ebp,%ebx),%esi
2275 movb %ah, %bl
2276 shrl $16, %edx
1876 movb %ah, %bl
1877 shrl $16, %edx
2277 movl 0x300+des_SPtrans(%ecx),%ebp
2278 xorl %ebp, %esi
2279 movl 24(%esp), %ebp
1878 xorl 0x300(%ebp,%ecx),%esi
2280 movb %dh, %cl
2281 andl $0xff, %eax
2282 andl $0xff, %edx
1879 movb %dh, %cl
1880 andl $0xff, %eax
1881 andl $0xff, %edx
2283 movl 0x600+des_SPtrans(%ebx),%ebx
2284 xorl %ebx, %esi
2285 movl 0x700+des_SPtrans(%ecx),%ebx
2286 xorl %ebx, %esi
2287 movl 0x400+des_SPtrans(%eax),%ebx
2288 xorl %ebx, %esi
2289 movl 0x500+des_SPtrans(%edx),%ebx
2290 xorl %ebx, %esi
1882 xorl 0x600(%ebp,%ebx),%esi
1883 xorl 0x700(%ebp,%ecx),%esi
1884 movl 24(%esp), %ecx
1885 xorl 0x400(%ebp,%eax),%esi
1886 xorl 0x500(%ebp,%edx),%esi
2291
1887
2292 # Round 5
2293 movl 40(%ebp), %eax
1888
1889 movl 40(%ecx), %eax
2294 xorl %ebx, %ebx
1890 xorl %ebx, %ebx
2295 movl 44(%ebp), %edx
1891 movl 44(%ecx), %edx
2296 xorl %esi, %eax
1892 xorl %esi, %eax
1893 xorl %ecx, %ecx
2297 xorl %esi, %edx
2298 andl $0xfcfcfcfc, %eax
2299 andl $0xcfcfcfcf, %edx
2300 movb %al, %bl
2301 movb %ah, %cl
2302 rorl $4, %edx
1894 xorl %esi, %edx
1895 andl $0xfcfcfcfc, %eax
1896 andl $0xcfcfcfcf, %edx
1897 movb %al, %bl
1898 movb %ah, %cl
1899 rorl $4, %edx
2303 movl des_SPtrans(%ebx),%ebp
1900 xorl (%ebp,%ebx),%edi
2304 movb %dl, %bl
1901 movb %dl, %bl
2305 xorl %ebp, %edi
2306 movl 0x200+des_SPtrans(%ecx),%ebp
2307 xorl %ebp, %edi
1902 xorl 0x200(%ebp,%ecx),%edi
2308 movb %dh, %cl
2309 shrl $16, %eax
1903 movb %dh, %cl
1904 shrl $16, %eax
2310 movl 0x100+des_SPtrans(%ebx),%ebp
2311 xorl %ebp, %edi
1905 xorl 0x100(%ebp,%ebx),%edi
2312 movb %ah, %bl
2313 shrl $16, %edx
1906 movb %ah, %bl
1907 shrl $16, %edx
2314 movl 0x300+des_SPtrans(%ecx),%ebp
2315 xorl %ebp, %edi
2316 movl 24(%esp), %ebp
1908 xorl 0x300(%ebp,%ecx),%edi
2317 movb %dh, %cl
2318 andl $0xff, %eax
2319 andl $0xff, %edx
1909 movb %dh, %cl
1910 andl $0xff, %eax
1911 andl $0xff, %edx
2320 movl 0x600+des_SPtrans(%ebx),%ebx
2321 xorl %ebx, %edi
2322 movl 0x700+des_SPtrans(%ecx),%ebx
2323 xorl %ebx, %edi
2324 movl 0x400+des_SPtrans(%eax),%ebx
2325 xorl %ebx, %edi
2326 movl 0x500+des_SPtrans(%edx),%ebx
2327 xorl %ebx, %edi
1912 xorl 0x600(%ebp,%ebx),%edi
1913 xorl 0x700(%ebp,%ecx),%edi
1914 movl 24(%esp), %ecx
1915 xorl 0x400(%ebp,%eax),%edi
1916 xorl 0x500(%ebp,%edx),%edi
2328
1917
2329 # Round 4
2330 movl 32(%ebp), %eax
1918
1919 movl 32(%ecx), %eax
2331 xorl %ebx, %ebx
1920 xorl %ebx, %ebx
2332 movl 36(%ebp), %edx
1921 movl 36(%ecx), %edx
2333 xorl %edi, %eax
1922 xorl %edi, %eax
1923 xorl %ecx, %ecx
2334 xorl %edi, %edx
2335 andl $0xfcfcfcfc, %eax
2336 andl $0xcfcfcfcf, %edx
2337 movb %al, %bl
2338 movb %ah, %cl
2339 rorl $4, %edx
1924 xorl %edi, %edx
1925 andl $0xfcfcfcfc, %eax
1926 andl $0xcfcfcfcf, %edx
1927 movb %al, %bl
1928 movb %ah, %cl
1929 rorl $4, %edx
2340 movl des_SPtrans(%ebx),%ebp
1930 xorl (%ebp,%ebx),%esi
2341 movb %dl, %bl
1931 movb %dl, %bl
2342 xorl %ebp, %esi
2343 movl 0x200+des_SPtrans(%ecx),%ebp
2344 xorl %ebp, %esi
1932 xorl 0x200(%ebp,%ecx),%esi
2345 movb %dh, %cl
2346 shrl $16, %eax
1933 movb %dh, %cl
1934 shrl $16, %eax
2347 movl 0x100+des_SPtrans(%ebx),%ebp
2348 xorl %ebp, %esi
1935 xorl 0x100(%ebp,%ebx),%esi
2349 movb %ah, %bl
2350 shrl $16, %edx
1936 movb %ah, %bl
1937 shrl $16, %edx
2351 movl 0x300+des_SPtrans(%ecx),%ebp
2352 xorl %ebp, %esi
2353 movl 24(%esp), %ebp
1938 xorl 0x300(%ebp,%ecx),%esi
2354 movb %dh, %cl
2355 andl $0xff, %eax
2356 andl $0xff, %edx
1939 movb %dh, %cl
1940 andl $0xff, %eax
1941 andl $0xff, %edx
2357 movl 0x600+des_SPtrans(%ebx),%ebx
2358 xorl %ebx, %esi
2359 movl 0x700+des_SPtrans(%ecx),%ebx
2360 xorl %ebx, %esi
2361 movl 0x400+des_SPtrans(%eax),%ebx
2362 xorl %ebx, %esi
2363 movl 0x500+des_SPtrans(%edx),%ebx
2364 xorl %ebx, %esi
1942 xorl 0x600(%ebp,%ebx),%esi
1943 xorl 0x700(%ebp,%ecx),%esi
1944 movl 24(%esp), %ecx
1945 xorl 0x400(%ebp,%eax),%esi
1946 xorl 0x500(%ebp,%edx),%esi
2365
1947
2366 # Round 3
2367 movl 24(%ebp), %eax
1948
1949 movl 24(%ecx), %eax
2368 xorl %ebx, %ebx
1950 xorl %ebx, %ebx
2369 movl 28(%ebp), %edx
1951 movl 28(%ecx), %edx
2370 xorl %esi, %eax
1952 xorl %esi, %eax
1953 xorl %ecx, %ecx
2371 xorl %esi, %edx
2372 andl $0xfcfcfcfc, %eax
2373 andl $0xcfcfcfcf, %edx
2374 movb %al, %bl
2375 movb %ah, %cl
2376 rorl $4, %edx
1954 xorl %esi, %edx
1955 andl $0xfcfcfcfc, %eax
1956 andl $0xcfcfcfcf, %edx
1957 movb %al, %bl
1958 movb %ah, %cl
1959 rorl $4, %edx
2377 movl des_SPtrans(%ebx),%ebp
1960 xorl (%ebp,%ebx),%edi
2378 movb %dl, %bl
1961 movb %dl, %bl
2379 xorl %ebp, %edi
2380 movl 0x200+des_SPtrans(%ecx),%ebp
2381 xorl %ebp, %edi
1962 xorl 0x200(%ebp,%ecx),%edi
2382 movb %dh, %cl
2383 shrl $16, %eax
1963 movb %dh, %cl
1964 shrl $16, %eax
2384 movl 0x100+des_SPtrans(%ebx),%ebp
2385 xorl %ebp, %edi
1965 xorl 0x100(%ebp,%ebx),%edi
2386 movb %ah, %bl
2387 shrl $16, %edx
1966 movb %ah, %bl
1967 shrl $16, %edx
2388 movl 0x300+des_SPtrans(%ecx),%ebp
2389 xorl %ebp, %edi
2390 movl 24(%esp), %ebp
1968 xorl 0x300(%ebp,%ecx),%edi
2391 movb %dh, %cl
2392 andl $0xff, %eax
2393 andl $0xff, %edx
1969 movb %dh, %cl
1970 andl $0xff, %eax
1971 andl $0xff, %edx
2394 movl 0x600+des_SPtrans(%ebx),%ebx
2395 xorl %ebx, %edi
2396 movl 0x700+des_SPtrans(%ecx),%ebx
2397 xorl %ebx, %edi
2398 movl 0x400+des_SPtrans(%eax),%ebx
2399 xorl %ebx, %edi
2400 movl 0x500+des_SPtrans(%edx),%ebx
2401 xorl %ebx, %edi
1972 xorl 0x600(%ebp,%ebx),%edi
1973 xorl 0x700(%ebp,%ecx),%edi
1974 movl 24(%esp), %ecx
1975 xorl 0x400(%ebp,%eax),%edi
1976 xorl 0x500(%ebp,%edx),%edi
2402
1977
2403 # Round 2
2404 movl 16(%ebp), %eax
1978
1979 movl 16(%ecx), %eax
2405 xorl %ebx, %ebx
1980 xorl %ebx, %ebx
2406 movl 20(%ebp), %edx
1981 movl 20(%ecx), %edx
2407 xorl %edi, %eax
1982 xorl %edi, %eax
1983 xorl %ecx, %ecx
2408 xorl %edi, %edx
2409 andl $0xfcfcfcfc, %eax
2410 andl $0xcfcfcfcf, %edx
2411 movb %al, %bl
2412 movb %ah, %cl
2413 rorl $4, %edx
1984 xorl %edi, %edx
1985 andl $0xfcfcfcfc, %eax
1986 andl $0xcfcfcfcf, %edx
1987 movb %al, %bl
1988 movb %ah, %cl
1989 rorl $4, %edx
2414 movl des_SPtrans(%ebx),%ebp
1990 xorl (%ebp,%ebx),%esi
2415 movb %dl, %bl
1991 movb %dl, %bl
2416 xorl %ebp, %esi
2417 movl 0x200+des_SPtrans(%ecx),%ebp
2418 xorl %ebp, %esi
1992 xorl 0x200(%ebp,%ecx),%esi
2419 movb %dh, %cl
2420 shrl $16, %eax
1993 movb %dh, %cl
1994 shrl $16, %eax
2421 movl 0x100+des_SPtrans(%ebx),%ebp
2422 xorl %ebp, %esi
1995 xorl 0x100(%ebp,%ebx),%esi
2423 movb %ah, %bl
2424 shrl $16, %edx
1996 movb %ah, %bl
1997 shrl $16, %edx
2425 movl 0x300+des_SPtrans(%ecx),%ebp
2426 xorl %ebp, %esi
2427 movl 24(%esp), %ebp
1998 xorl 0x300(%ebp,%ecx),%esi
2428 movb %dh, %cl
2429 andl $0xff, %eax
2430 andl $0xff, %edx
1999 movb %dh, %cl
2000 andl $0xff, %eax
2001 andl $0xff, %edx
2431 movl 0x600+des_SPtrans(%ebx),%ebx
2432 xorl %ebx, %esi
2433 movl 0x700+des_SPtrans(%ecx),%ebx
2434 xorl %ebx, %esi
2435 movl 0x400+des_SPtrans(%eax),%ebx
2436 xorl %ebx, %esi
2437 movl 0x500+des_SPtrans(%edx),%ebx
2438 xorl %ebx, %esi
2002 xorl 0x600(%ebp,%ebx),%esi
2003 xorl 0x700(%ebp,%ecx),%esi
2004 movl 24(%esp), %ecx
2005 xorl 0x400(%ebp,%eax),%esi
2006 xorl 0x500(%ebp,%edx),%esi
2439
2007
2440 # Round 1
2441 movl 8(%ebp), %eax
2008
2009 movl 8(%ecx), %eax
2442 xorl %ebx, %ebx
2010 xorl %ebx, %ebx
2443 movl 12(%ebp), %edx
2011 movl 12(%ecx), %edx
2444 xorl %esi, %eax
2012 xorl %esi, %eax
2013 xorl %ecx, %ecx
2445 xorl %esi, %edx
2446 andl $0xfcfcfcfc, %eax
2447 andl $0xcfcfcfcf, %edx
2448 movb %al, %bl
2449 movb %ah, %cl
2450 rorl $4, %edx
2014 xorl %esi, %edx
2015 andl $0xfcfcfcfc, %eax
2016 andl $0xcfcfcfcf, %edx
2017 movb %al, %bl
2018 movb %ah, %cl
2019 rorl $4, %edx
2451 movl des_SPtrans(%ebx),%ebp
2020 xorl (%ebp,%ebx),%edi
2452 movb %dl, %bl
2021 movb %dl, %bl
2453 xorl %ebp, %edi
2454 movl 0x200+des_SPtrans(%ecx),%ebp
2455 xorl %ebp, %edi
2022 xorl 0x200(%ebp,%ecx),%edi
2456 movb %dh, %cl
2457 shrl $16, %eax
2023 movb %dh, %cl
2024 shrl $16, %eax
2458 movl 0x100+des_SPtrans(%ebx),%ebp
2459 xorl %ebp, %edi
2025 xorl 0x100(%ebp,%ebx),%edi
2460 movb %ah, %bl
2461 shrl $16, %edx
2026 movb %ah, %bl
2027 shrl $16, %edx
2462 movl 0x300+des_SPtrans(%ecx),%ebp
2463 xorl %ebp, %edi
2464 movl 24(%esp), %ebp
2028 xorl 0x300(%ebp,%ecx),%edi
2465 movb %dh, %cl
2466 andl $0xff, %eax
2467 andl $0xff, %edx
2029 movb %dh, %cl
2030 andl $0xff, %eax
2031 andl $0xff, %edx
2468 movl 0x600+des_SPtrans(%ebx),%ebx
2469 xorl %ebx, %edi
2470 movl 0x700+des_SPtrans(%ecx),%ebx
2471 xorl %ebx, %edi
2472 movl 0x400+des_SPtrans(%eax),%ebx
2473 xorl %ebx, %edi
2474 movl 0x500+des_SPtrans(%edx),%ebx
2475 xorl %ebx, %edi
2032 xorl 0x600(%ebp,%ebx),%edi
2033 xorl 0x700(%ebp,%ecx),%edi
2034 movl 24(%esp), %ecx
2035 xorl 0x400(%ebp,%eax),%edi
2036 xorl 0x500(%ebp,%edx),%edi
2476
2037
2477 # Round 0
2478 movl (%ebp), %eax
2038
2039 movl (%ecx), %eax
2479 xorl %ebx, %ebx
2040 xorl %ebx, %ebx
2480 movl 4(%ebp), %edx
2041 movl 4(%ecx), %edx
2481 xorl %edi, %eax
2042 xorl %edi, %eax
2043 xorl %ecx, %ecx
2482 xorl %edi, %edx
2483 andl $0xfcfcfcfc, %eax
2484 andl $0xcfcfcfcf, %edx
2485 movb %al, %bl
2486 movb %ah, %cl
2487 rorl $4, %edx
2044 xorl %edi, %edx
2045 andl $0xfcfcfcfc, %eax
2046 andl $0xcfcfcfcf, %edx
2047 movb %al, %bl
2048 movb %ah, %cl
2049 rorl $4, %edx
2488 movl des_SPtrans(%ebx),%ebp
2050 xorl (%ebp,%ebx),%esi
2489 movb %dl, %bl
2051 movb %dl, %bl
2490 xorl %ebp, %esi
2491 movl 0x200+des_SPtrans(%ecx),%ebp
2492 xorl %ebp, %esi
2052 xorl 0x200(%ebp,%ecx),%esi
2493 movb %dh, %cl
2494 shrl $16, %eax
2053 movb %dh, %cl
2054 shrl $16, %eax
2495 movl 0x100+des_SPtrans(%ebx),%ebp
2496 xorl %ebp, %esi
2055 xorl 0x100(%ebp,%ebx),%esi
2497 movb %ah, %bl
2498 shrl $16, %edx
2056 movb %ah, %bl
2057 shrl $16, %edx
2499 movl 0x300+des_SPtrans(%ecx),%ebp
2500 xorl %ebp, %esi
2501 movl 24(%esp), %ebp
2058 xorl 0x300(%ebp,%ecx),%esi
2502 movb %dh, %cl
2503 andl $0xff, %eax
2504 andl $0xff, %edx
2059 movb %dh, %cl
2060 andl $0xff, %eax
2061 andl $0xff, %edx
2505 movl 0x600+des_SPtrans(%ebx),%ebx
2506 xorl %ebx, %esi
2507 movl 0x700+des_SPtrans(%ecx),%ebx
2508 xorl %ebx, %esi
2509 movl 0x400+des_SPtrans(%eax),%ebx
2510 xorl %ebx, %esi
2511 movl 0x500+des_SPtrans(%edx),%ebx
2512 xorl %ebx, %esi
2062 xorl 0x600(%ebp,%ebx),%esi
2063 xorl 0x700(%ebp,%ecx),%esi
2064 movl 24(%esp), %ecx
2065 xorl 0x400(%ebp,%eax),%esi
2066 xorl 0x500(%ebp,%edx),%esi
2513.L003end:
2514
2067.L003end:
2068
2515 # Fixup
2069
2516 rorl $3, %edi
2517 movl 20(%esp), %eax
2518 rorl $3, %esi
2519 movl %edi, (%eax)
2520 movl %esi, 4(%eax)
2521 popl %ebp
2522 popl %ebx
2523 popl %edi
2524 popl %esi
2525 ret
2070 rorl $3, %edi
2071 movl 20(%esp), %eax
2072 rorl $3, %esi
2073 movl %edi, (%eax)
2074 movl %esi, 4(%eax)
2075 popl %ebp
2076 popl %ebx
2077 popl %edi
2078 popl %esi
2079 ret
2526.L_des_encrypt2_end:
2527 .size des_encrypt2,.L_des_encrypt2_end-des_encrypt2
2080.L_DES_encrypt2_end:
2081 .size DES_encrypt2,.L_DES_encrypt2_end-DES_encrypt2
2528.ident "desasm.pl"
2529.text
2530 .align 16
2082.ident "desasm.pl"
2083.text
2084 .align 16
2531.globl des_encrypt3
2532 .type des_encrypt3,@function
2533des_encrypt3:
2085.globl DES_encrypt3
2086 .type DES_encrypt3,@function
2087DES_encrypt3:
2534 pushl %ebx
2535 movl 8(%esp), %ebx
2536 pushl %ebp
2537 pushl %esi
2538 pushl %edi
2539
2088 pushl %ebx
2089 movl 8(%esp), %ebx
2090 pushl %ebp
2091 pushl %esi
2092 pushl %edi
2093
2540 # Load the data words
2094
2541 movl (%ebx), %edi
2542 movl 4(%ebx), %esi
2543 subl $12, %esp
2544
2095 movl (%ebx), %edi
2096 movl 4(%ebx), %esi
2097 subl $12, %esp
2098
2545 # IP
2099
2546 roll $4, %edi
2547 movl %edi, %edx
2548 xorl %esi, %edi
2549 andl $0xf0f0f0f0, %edi
2550 xorl %edi, %edx
2551 xorl %edi, %esi
2552
2553 roll $20, %esi

--- 29 unchanged lines hidden (view full) ---

2583 movl %esi, 4(%ebx)
2584 movl 36(%esp), %eax
2585 movl %edx, (%ebx)
2586 movl 40(%esp), %edi
2587 movl 44(%esp), %esi
2588 movl $1, 8(%esp)
2589 movl %eax, 4(%esp)
2590 movl %ebx, (%esp)
2100 roll $4, %edi
2101 movl %edi, %edx
2102 xorl %esi, %edi
2103 andl $0xf0f0f0f0, %edi
2104 xorl %edi, %edx
2105 xorl %edi, %esi
2106
2107 roll $20, %esi

--- 29 unchanged lines hidden (view full) ---

2137 movl %esi, 4(%ebx)
2138 movl 36(%esp), %eax
2139 movl %edx, (%ebx)
2140 movl 40(%esp), %edi
2141 movl 44(%esp), %esi
2142 movl $1, 8(%esp)
2143 movl %eax, 4(%esp)
2144 movl %ebx, (%esp)
2591 call des_encrypt2
2145 call DES_encrypt2
2592 movl $0, 8(%esp)
2593 movl %edi, 4(%esp)
2594 movl %ebx, (%esp)
2146 movl $0, 8(%esp)
2147 movl %edi, 4(%esp)
2148 movl %ebx, (%esp)
2595 call des_encrypt2
2149 call DES_encrypt2
2596 movl $1, 8(%esp)
2597 movl %esi, 4(%esp)
2598 movl %ebx, (%esp)
2150 movl $1, 8(%esp)
2151 movl %esi, 4(%esp)
2152 movl %ebx, (%esp)
2599 call des_encrypt2
2153 call DES_encrypt2
2600 addl $12, %esp
2601 movl (%ebx), %edi
2602 movl 4(%ebx), %esi
2603
2154 addl $12, %esp
2155 movl (%ebx), %edi
2156 movl 4(%ebx), %esi
2157
2604 # FP
2158
2605 roll $2, %esi
2606 roll $3, %edi
2607 movl %edi, %eax
2608 xorl %esi, %edi
2609 andl $0xaaaaaaaa, %edi
2610 xorl %edi, %eax
2611 xorl %edi, %esi
2612

--- 28 unchanged lines hidden (view full) ---

2641 rorl $4, %eax
2642 movl %eax, (%ebx)
2643 movl %esi, 4(%ebx)
2644 popl %edi
2645 popl %esi
2646 popl %ebp
2647 popl %ebx
2648 ret
2159 roll $2, %esi
2160 roll $3, %edi
2161 movl %edi, %eax
2162 xorl %esi, %edi
2163 andl $0xaaaaaaaa, %edi
2164 xorl %edi, %eax
2165 xorl %edi, %esi
2166

--- 28 unchanged lines hidden (view full) ---

2195 rorl $4, %eax
2196 movl %eax, (%ebx)
2197 movl %esi, 4(%ebx)
2198 popl %edi
2199 popl %esi
2200 popl %ebp
2201 popl %ebx
2202 ret
2649.L_des_encrypt3_end:
2650 .size des_encrypt3,.L_des_encrypt3_end-des_encrypt3
2203.L_DES_encrypt3_end:
2204 .size DES_encrypt3,.L_DES_encrypt3_end-DES_encrypt3
2651.ident "desasm.pl"
2652.text
2653 .align 16
2205.ident "desasm.pl"
2206.text
2207 .align 16
2654.globl des_decrypt3
2655 .type des_decrypt3,@function
2656des_decrypt3:
2208.globl DES_decrypt3
2209 .type DES_decrypt3,@function
2210DES_decrypt3:
2657 pushl %ebx
2658 movl 8(%esp), %ebx
2659 pushl %ebp
2660 pushl %esi
2661 pushl %edi
2662
2211 pushl %ebx
2212 movl 8(%esp), %ebx
2213 pushl %ebp
2214 pushl %esi
2215 pushl %edi
2216
2663 # Load the data words
2217
2664 movl (%ebx), %edi
2665 movl 4(%ebx), %esi
2666 subl $12, %esp
2667
2218 movl (%ebx), %edi
2219 movl 4(%ebx), %esi
2220 subl $12, %esp
2221
2668 # IP
2222
2669 roll $4, %edi
2670 movl %edi, %edx
2671 xorl %esi, %edi
2672 andl $0xf0f0f0f0, %edi
2673 xorl %edi, %edx
2674 xorl %edi, %esi
2675
2676 roll $20, %esi

--- 29 unchanged lines hidden (view full) ---

2706 movl %esi, 4(%ebx)
2707 movl 36(%esp), %esi
2708 movl %edx, (%ebx)
2709 movl 40(%esp), %edi
2710 movl 44(%esp), %eax
2711 movl $0, 8(%esp)
2712 movl %eax, 4(%esp)
2713 movl %ebx, (%esp)
2223 roll $4, %edi
2224 movl %edi, %edx
2225 xorl %esi, %edi
2226 andl $0xf0f0f0f0, %edi
2227 xorl %edi, %edx
2228 xorl %edi, %esi
2229
2230 roll $20, %esi

--- 29 unchanged lines hidden (view full) ---

2260 movl %esi, 4(%ebx)
2261 movl 36(%esp), %esi
2262 movl %edx, (%ebx)
2263 movl 40(%esp), %edi
2264 movl 44(%esp), %eax
2265 movl $0, 8(%esp)
2266 movl %eax, 4(%esp)
2267 movl %ebx, (%esp)
2714 call des_encrypt2
2268 call DES_encrypt2
2715 movl $1, 8(%esp)
2716 movl %edi, 4(%esp)
2717 movl %ebx, (%esp)
2269 movl $1, 8(%esp)
2270 movl %edi, 4(%esp)
2271 movl %ebx, (%esp)
2718 call des_encrypt2
2272 call DES_encrypt2
2719 movl $0, 8(%esp)
2720 movl %esi, 4(%esp)
2721 movl %ebx, (%esp)
2273 movl $0, 8(%esp)
2274 movl %esi, 4(%esp)
2275 movl %ebx, (%esp)
2722 call des_encrypt2
2276 call DES_encrypt2
2723 addl $12, %esp
2724 movl (%ebx), %edi
2725 movl 4(%ebx), %esi
2726
2277 addl $12, %esp
2278 movl (%ebx), %edi
2279 movl 4(%ebx), %esi
2280
2727 # FP
2281
2728 roll $2, %esi
2729 roll $3, %edi
2730 movl %edi, %eax
2731 xorl %esi, %edi
2732 andl $0xaaaaaaaa, %edi
2733 xorl %edi, %eax
2734 xorl %edi, %esi
2735

--- 28 unchanged lines hidden (view full) ---

2764 rorl $4, %eax
2765 movl %eax, (%ebx)
2766 movl %esi, 4(%ebx)
2767 popl %edi
2768 popl %esi
2769 popl %ebp
2770 popl %ebx
2771 ret
2282 roll $2, %esi
2283 roll $3, %edi
2284 movl %edi, %eax
2285 xorl %esi, %edi
2286 andl $0xaaaaaaaa, %edi
2287 xorl %edi, %eax
2288 xorl %edi, %esi
2289

--- 28 unchanged lines hidden (view full) ---

2318 rorl $4, %eax
2319 movl %eax, (%ebx)
2320 movl %esi, 4(%ebx)
2321 popl %edi
2322 popl %esi
2323 popl %ebp
2324 popl %ebx
2325 ret
2772.L_des_decrypt3_end:
2773 .size des_decrypt3,.L_des_decrypt3_end-des_decrypt3
2326.L_DES_decrypt3_end:
2327 .size DES_decrypt3,.L_DES_decrypt3_end-DES_decrypt3
2774.ident "desasm.pl"
2775.text
2776 .align 16
2328.ident "desasm.pl"
2329.text
2330 .align 16
2777.globl des_ncbc_encrypt
2778 .type des_ncbc_encrypt,@function
2779des_ncbc_encrypt:
2331.globl DES_ncbc_encrypt
2332 .type DES_ncbc_encrypt,@function
2333DES_ncbc_encrypt:
2780
2781 pushl %ebp
2782 pushl %ebx
2783 pushl %esi
2784 pushl %edi
2785 movl 28(%esp), %ebp
2334
2335 pushl %ebp
2336 pushl %ebx
2337 pushl %esi
2338 pushl %edi
2339 movl 28(%esp), %ebp
2786 # getting iv ptr from parameter 4
2340
2787 movl 36(%esp), %ebx
2788 movl (%ebx), %esi
2789 movl 4(%ebx), %edi
2790 pushl %edi
2791 pushl %esi
2792 pushl %edi
2793 pushl %esi
2794 movl %esp, %ebx
2795 movl 36(%esp), %esi
2796 movl 40(%esp), %edi
2341 movl 36(%esp), %ebx
2342 movl (%ebx), %esi
2343 movl 4(%ebx), %edi
2344 pushl %edi
2345 pushl %esi
2346 pushl %edi
2347 pushl %esi
2348 movl %esp, %ebx
2349 movl 36(%esp), %esi
2350 movl 40(%esp), %edi
2797 # getting encrypt flag from parameter 5
2351
2798 movl 56(%esp), %ecx
2352 movl 56(%esp), %ecx
2799 # get and push parameter 5
2353
2800 pushl %ecx
2354 pushl %ecx
2801 # get and push parameter 3
2355
2802 movl 52(%esp), %eax
2803 pushl %eax
2804 pushl %ebx
2805 cmpl $0, %ecx
2806 jz .L004decrypt
2807 andl $4294967288, %ebp
2808 movl 12(%esp), %eax
2809 movl 16(%esp), %ebx
2810 jz .L005encrypt_finish
2811.L006encrypt_loop:
2812 movl (%esi), %ecx
2813 movl 4(%esi), %edx
2814 xorl %ecx, %eax
2815 xorl %edx, %ebx
2816 movl %eax, 12(%esp)
2817 movl %ebx, 16(%esp)
2356 movl 52(%esp), %eax
2357 pushl %eax
2358 pushl %ebx
2359 cmpl $0, %ecx
2360 jz .L004decrypt
2361 andl $4294967288, %ebp
2362 movl 12(%esp), %eax
2363 movl 16(%esp), %ebx
2364 jz .L005encrypt_finish
2365.L006encrypt_loop:
2366 movl (%esi), %ecx
2367 movl 4(%esi), %edx
2368 xorl %ecx, %eax
2369 xorl %edx, %ebx
2370 movl %eax, 12(%esp)
2371 movl %ebx, 16(%esp)
2818 call des_encrypt1
2372 call DES_encrypt1
2819 movl 12(%esp), %eax
2820 movl 16(%esp), %ebx
2821 movl %eax, (%edi)
2822 movl %ebx, 4(%edi)
2823 addl $8, %esi
2824 addl $8, %edi
2825 subl $8, %ebp
2826 jnz .L006encrypt_loop
2827.L005encrypt_finish:
2828 movl 56(%esp), %ebp
2829 andl $7, %ebp
2830 jz .L007finish
2373 movl 12(%esp), %eax
2374 movl 16(%esp), %ebx
2375 movl %eax, (%edi)
2376 movl %ebx, 4(%edi)
2377 addl $8, %esi
2378 addl $8, %edi
2379 subl $8, %ebp
2380 jnz .L006encrypt_loop
2381.L005encrypt_finish:
2382 movl 56(%esp), %ebp
2383 andl $7, %ebp
2384 jz .L007finish
2385 call .L008PIC_point
2386.L008PIC_point:
2387 popl %edx
2388 leal .L009cbc_enc_jmp_table-.L008PIC_point(%edx),%ecx
2389 movl (%ecx,%ebp,4), %ebp
2390 addl %edx, %ebp
2831 xorl %ecx, %ecx
2832 xorl %edx, %edx
2391 xorl %ecx, %ecx
2392 xorl %edx, %edx
2833 movl .L008cbc_enc_jmp_table(,%ebp,4),%ebp
2834 jmp *%ebp
2393 jmp *%ebp
2835.L009ej7:
2394.L010ej7:
2836 movb 6(%esi), %dh
2837 sall $8, %edx
2395 movb 6(%esi), %dh
2396 sall $8, %edx
2838.L010ej6:
2397.L011ej6:
2839 movb 5(%esi), %dh
2398 movb 5(%esi), %dh
2840.L011ej5:
2399.L012ej5:
2841 movb 4(%esi), %dl
2400 movb 4(%esi), %dl
2842.L012ej4:
2401.L013ej4:
2843 movl (%esi), %ecx
2402 movl (%esi), %ecx
2844 jmp .L013ejend
2845.L014ej3:
2403 jmp .L014ejend
2404.L015ej3:
2846 movb 2(%esi), %ch
2847 sall $8, %ecx
2405 movb 2(%esi), %ch
2406 sall $8, %ecx
2848.L015ej2:
2407.L016ej2:
2849 movb 1(%esi), %ch
2408 movb 1(%esi), %ch
2850.L016ej1:
2409.L017ej1:
2851 movb (%esi), %cl
2410 movb (%esi), %cl
2852.L013ejend:
2411.L014ejend:
2853 xorl %ecx, %eax
2854 xorl %edx, %ebx
2855 movl %eax, 12(%esp)
2856 movl %ebx, 16(%esp)
2412 xorl %ecx, %eax
2413 xorl %edx, %ebx
2414 movl %eax, 12(%esp)
2415 movl %ebx, 16(%esp)
2857 call des_encrypt1
2416 call DES_encrypt1
2858 movl 12(%esp), %eax
2859 movl 16(%esp), %ebx
2860 movl %eax, (%edi)
2861 movl %ebx, 4(%edi)
2862 jmp .L007finish
2863.align 16
2864.L004decrypt:
2865 andl $4294967288, %ebp
2866 movl 20(%esp), %eax
2867 movl 24(%esp), %ebx
2417 movl 12(%esp), %eax
2418 movl 16(%esp), %ebx
2419 movl %eax, (%edi)
2420 movl %ebx, 4(%edi)
2421 jmp .L007finish
2422.align 16
2423.L004decrypt:
2424 andl $4294967288, %ebp
2425 movl 20(%esp), %eax
2426 movl 24(%esp), %ebx
2868 jz .L017decrypt_finish
2869.L018decrypt_loop:
2427 jz .L018decrypt_finish
2428.L019decrypt_loop:
2870 movl (%esi), %eax
2871 movl 4(%esi), %ebx
2872 movl %eax, 12(%esp)
2873 movl %ebx, 16(%esp)
2429 movl (%esi), %eax
2430 movl 4(%esi), %ebx
2431 movl %eax, 12(%esp)
2432 movl %ebx, 16(%esp)
2874 call des_encrypt1
2433 call DES_encrypt1
2875 movl 12(%esp), %eax
2876 movl 16(%esp), %ebx
2877 movl 20(%esp), %ecx
2878 movl 24(%esp), %edx
2879 xorl %eax, %ecx
2880 xorl %ebx, %edx
2881 movl (%esi), %eax
2882 movl 4(%esi), %ebx
2883 movl %ecx, (%edi)
2884 movl %edx, 4(%edi)
2885 movl %eax, 20(%esp)
2886 movl %ebx, 24(%esp)
2887 addl $8, %esi
2888 addl $8, %edi
2889 subl $8, %ebp
2434 movl 12(%esp), %eax
2435 movl 16(%esp), %ebx
2436 movl 20(%esp), %ecx
2437 movl 24(%esp), %edx
2438 xorl %eax, %ecx
2439 xorl %ebx, %edx
2440 movl (%esi), %eax
2441 movl 4(%esi), %ebx
2442 movl %ecx, (%edi)
2443 movl %edx, 4(%edi)
2444 movl %eax, 20(%esp)
2445 movl %ebx, 24(%esp)
2446 addl $8, %esi
2447 addl $8, %edi
2448 subl $8, %ebp
2890 jnz .L018decrypt_loop
2891.L017decrypt_finish:
2449 jnz .L019decrypt_loop
2450.L018decrypt_finish:
2892 movl 56(%esp), %ebp
2893 andl $7, %ebp
2894 jz .L007finish
2895 movl (%esi), %eax
2896 movl 4(%esi), %ebx
2897 movl %eax, 12(%esp)
2898 movl %ebx, 16(%esp)
2451 movl 56(%esp), %ebp
2452 andl $7, %ebp
2453 jz .L007finish
2454 movl (%esi), %eax
2455 movl 4(%esi), %ebx
2456 movl %eax, 12(%esp)
2457 movl %ebx, 16(%esp)
2899 call des_encrypt1
2458 call DES_encrypt1
2900 movl 12(%esp), %eax
2901 movl 16(%esp), %ebx
2902 movl 20(%esp), %ecx
2903 movl 24(%esp), %edx
2904 xorl %eax, %ecx
2905 xorl %ebx, %edx
2906 movl (%esi), %eax
2907 movl 4(%esi), %ebx
2459 movl 12(%esp), %eax
2460 movl 16(%esp), %ebx
2461 movl 20(%esp), %ecx
2462 movl 24(%esp), %edx
2463 xorl %eax, %ecx
2464 xorl %ebx, %edx
2465 movl (%esi), %eax
2466 movl 4(%esi), %ebx
2908.L019dj7:
2467.L020dj7:
2909 rorl $16, %edx
2910 movb %dl, 6(%edi)
2911 shrl $16, %edx
2468 rorl $16, %edx
2469 movb %dl, 6(%edi)
2470 shrl $16, %edx
2912.L020dj6:
2471.L021dj6:
2913 movb %dh, 5(%edi)
2472 movb %dh, 5(%edi)
2914.L021dj5:
2473.L022dj5:
2915 movb %dl, 4(%edi)
2474 movb %dl, 4(%edi)
2916.L022dj4:
2475.L023dj4:
2917 movl %ecx, (%edi)
2476 movl %ecx, (%edi)
2918 jmp .L023djend
2919.L024dj3:
2477 jmp .L024djend
2478.L025dj3:
2920 rorl $16, %ecx
2921 movb %cl, 2(%edi)
2922 sall $16, %ecx
2479 rorl $16, %ecx
2480 movb %cl, 2(%edi)
2481 sall $16, %ecx
2923.L025dj2:
2482.L026dj2:
2924 movb %ch, 1(%esi)
2483 movb %ch, 1(%esi)
2925.L026dj1:
2484.L027dj1:
2926 movb %cl, (%esi)
2485 movb %cl, (%esi)
2927.L023djend:
2486.L024djend:
2928 jmp .L007finish
2929.align 16
2930.L007finish:
2931 movl 64(%esp), %ecx
2932 addl $28, %esp
2933 movl %eax, (%ecx)
2934 movl %ebx, 4(%ecx)
2935 popl %edi
2936 popl %esi
2937 popl %ebx
2938 popl %ebp
2939 ret
2940.align 16
2487 jmp .L007finish
2488.align 16
2489.L007finish:
2490 movl 64(%esp), %ecx
2491 addl $28, %esp
2492 movl %eax, (%ecx)
2493 movl %ebx, 4(%ecx)
2494 popl %edi
2495 popl %esi
2496 popl %ebx
2497 popl %ebp
2498 ret
2499.align 16
2941.L008cbc_enc_jmp_table:
2500.L009cbc_enc_jmp_table:
2942 .long 0
2501 .long 0
2943 .long .L016ej1
2944 .long .L015ej2
2945 .long .L014ej3
2946 .long .L012ej4
2947 .long .L011ej5
2948 .long .L010ej6
2949 .long .L009ej7
2950.align 16
2951.L027cbc_dec_jmp_table:
2952 .long 0
2953 .long .L026dj1
2954 .long .L025dj2
2955 .long .L024dj3
2956 .long .L022dj4
2957 .long .L021dj5
2958 .long .L020dj6
2959 .long .L019dj7
2960.L_des_ncbc_encrypt_end:
2961 .size des_ncbc_encrypt,.L_des_ncbc_encrypt_end-des_ncbc_encrypt
2502 .long .L017ej1-.L008PIC_point
2503 .long .L016ej2-.L008PIC_point
2504 .long .L015ej3-.L008PIC_point
2505 .long .L013ej4-.L008PIC_point
2506 .long .L012ej5-.L008PIC_point
2507 .long .L011ej6-.L008PIC_point
2508 .long .L010ej7-.L008PIC_point
2509.L_DES_ncbc_encrypt_end:
2510 .size DES_ncbc_encrypt,.L_DES_ncbc_encrypt_end-DES_ncbc_encrypt
2962.ident "desasm.pl"
2963.text
2964 .align 16
2511.ident "desasm.pl"
2512.text
2513 .align 16
2965.globl des_ede3_cbc_encrypt
2966 .type des_ede3_cbc_encrypt,@function
2967des_ede3_cbc_encrypt:
2514.globl DES_ede3_cbc_encrypt
2515 .type DES_ede3_cbc_encrypt,@function
2516DES_ede3_cbc_encrypt:
2968
2969 pushl %ebp
2970 pushl %ebx
2971 pushl %esi
2972 pushl %edi
2973 movl 28(%esp), %ebp
2517
2518 pushl %ebp
2519 pushl %ebx
2520 pushl %esi
2521 pushl %edi
2522 movl 28(%esp), %ebp
2974 # getting iv ptr from parameter 6
2523
2975 movl 44(%esp), %ebx
2976 movl (%ebx), %esi
2977 movl 4(%ebx), %edi
2978 pushl %edi
2979 pushl %esi
2980 pushl %edi
2981 pushl %esi
2982 movl %esp, %ebx
2983 movl 36(%esp), %esi
2984 movl 40(%esp), %edi
2524 movl 44(%esp), %ebx
2525 movl (%ebx), %esi
2526 movl 4(%ebx), %edi
2527 pushl %edi
2528 pushl %esi
2529 pushl %edi
2530 pushl %esi
2531 movl %esp, %ebx
2532 movl 36(%esp), %esi
2533 movl 40(%esp), %edi
2985 # getting encrypt flag from parameter 7
2534
2986 movl 64(%esp), %ecx
2535 movl 64(%esp), %ecx
2987 # get and push parameter 5
2536
2988 movl 56(%esp), %eax
2989 pushl %eax
2537 movl 56(%esp), %eax
2538 pushl %eax
2990 # get and push parameter 4
2539
2991 movl 56(%esp), %eax
2992 pushl %eax
2540 movl 56(%esp), %eax
2541 pushl %eax
2993 # get and push parameter 3
2542
2994 movl 56(%esp), %eax
2995 pushl %eax
2996 pushl %ebx
2997 cmpl $0, %ecx
2998 jz .L028decrypt
2999 andl $4294967288, %ebp
3000 movl 16(%esp), %eax
3001 movl 20(%esp), %ebx
3002 jz .L029encrypt_finish
3003.L030encrypt_loop:
3004 movl (%esi), %ecx
3005 movl 4(%esi), %edx
3006 xorl %ecx, %eax
3007 xorl %edx, %ebx
3008 movl %eax, 16(%esp)
3009 movl %ebx, 20(%esp)
2543 movl 56(%esp), %eax
2544 pushl %eax
2545 pushl %ebx
2546 cmpl $0, %ecx
2547 jz .L028decrypt
2548 andl $4294967288, %ebp
2549 movl 16(%esp), %eax
2550 movl 20(%esp), %ebx
2551 jz .L029encrypt_finish
2552.L030encrypt_loop:
2553 movl (%esi), %ecx
2554 movl 4(%esi), %edx
2555 xorl %ecx, %eax
2556 xorl %edx, %ebx
2557 movl %eax, 16(%esp)
2558 movl %ebx, 20(%esp)
3010 call des_encrypt3
2559 call DES_encrypt3
3011 movl 16(%esp), %eax
3012 movl 20(%esp), %ebx
3013 movl %eax, (%edi)
3014 movl %ebx, 4(%edi)
3015 addl $8, %esi
3016 addl $8, %edi
3017 subl $8, %ebp
3018 jnz .L030encrypt_loop
3019.L029encrypt_finish:
3020 movl 60(%esp), %ebp
3021 andl $7, %ebp
3022 jz .L031finish
2560 movl 16(%esp), %eax
2561 movl 20(%esp), %ebx
2562 movl %eax, (%edi)
2563 movl %ebx, 4(%edi)
2564 addl $8, %esi
2565 addl $8, %edi
2566 subl $8, %ebp
2567 jnz .L030encrypt_loop
2568.L029encrypt_finish:
2569 movl 60(%esp), %ebp
2570 andl $7, %ebp
2571 jz .L031finish
2572 call .L032PIC_point
2573.L032PIC_point:
2574 popl %edx
2575 leal .L033cbc_enc_jmp_table-.L032PIC_point(%edx),%ecx
2576 movl (%ecx,%ebp,4), %ebp
2577 addl %edx, %ebp
3023 xorl %ecx, %ecx
3024 xorl %edx, %edx
2578 xorl %ecx, %ecx
2579 xorl %edx, %edx
3025 movl .L032cbc_enc_jmp_table(,%ebp,4),%ebp
3026 jmp *%ebp
2580 jmp *%ebp
3027.L033ej7:
2581.L034ej7:
3028 movb 6(%esi), %dh
3029 sall $8, %edx
2582 movb 6(%esi), %dh
2583 sall $8, %edx
3030.L034ej6:
2584.L035ej6:
3031 movb 5(%esi), %dh
2585 movb 5(%esi), %dh
3032.L035ej5:
2586.L036ej5:
3033 movb 4(%esi), %dl
2587 movb 4(%esi), %dl
3034.L036ej4:
2588.L037ej4:
3035 movl (%esi), %ecx
2589 movl (%esi), %ecx
3036 jmp .L037ejend
3037.L038ej3:
2590 jmp .L038ejend
2591.L039ej3:
3038 movb 2(%esi), %ch
3039 sall $8, %ecx
2592 movb 2(%esi), %ch
2593 sall $8, %ecx
3040.L039ej2:
2594.L040ej2:
3041 movb 1(%esi), %ch
2595 movb 1(%esi), %ch
3042.L040ej1:
2596.L041ej1:
3043 movb (%esi), %cl
2597 movb (%esi), %cl
3044.L037ejend:
2598.L038ejend:
3045 xorl %ecx, %eax
3046 xorl %edx, %ebx
3047 movl %eax, 16(%esp)
3048 movl %ebx, 20(%esp)
2599 xorl %ecx, %eax
2600 xorl %edx, %ebx
2601 movl %eax, 16(%esp)
2602 movl %ebx, 20(%esp)
3049 call des_encrypt3
2603 call DES_encrypt3
3050 movl 16(%esp), %eax
3051 movl 20(%esp), %ebx
3052 movl %eax, (%edi)
3053 movl %ebx, 4(%edi)
3054 jmp .L031finish
3055.align 16
3056.L028decrypt:
3057 andl $4294967288, %ebp
3058 movl 24(%esp), %eax
3059 movl 28(%esp), %ebx
2604 movl 16(%esp), %eax
2605 movl 20(%esp), %ebx
2606 movl %eax, (%edi)
2607 movl %ebx, 4(%edi)
2608 jmp .L031finish
2609.align 16
2610.L028decrypt:
2611 andl $4294967288, %ebp
2612 movl 24(%esp), %eax
2613 movl 28(%esp), %ebx
3060 jz .L041decrypt_finish
3061.L042decrypt_loop:
2614 jz .L042decrypt_finish
2615.L043decrypt_loop:
3062 movl (%esi), %eax
3063 movl 4(%esi), %ebx
3064 movl %eax, 16(%esp)
3065 movl %ebx, 20(%esp)
2616 movl (%esi), %eax
2617 movl 4(%esi), %ebx
2618 movl %eax, 16(%esp)
2619 movl %ebx, 20(%esp)
3066 call des_decrypt3
2620 call DES_decrypt3
3067 movl 16(%esp), %eax
3068 movl 20(%esp), %ebx
3069 movl 24(%esp), %ecx
3070 movl 28(%esp), %edx
3071 xorl %eax, %ecx
3072 xorl %ebx, %edx
3073 movl (%esi), %eax
3074 movl 4(%esi), %ebx
3075 movl %ecx, (%edi)
3076 movl %edx, 4(%edi)
3077 movl %eax, 24(%esp)
3078 movl %ebx, 28(%esp)
3079 addl $8, %esi
3080 addl $8, %edi
3081 subl $8, %ebp
2621 movl 16(%esp), %eax
2622 movl 20(%esp), %ebx
2623 movl 24(%esp), %ecx
2624 movl 28(%esp), %edx
2625 xorl %eax, %ecx
2626 xorl %ebx, %edx
2627 movl (%esi), %eax
2628 movl 4(%esi), %ebx
2629 movl %ecx, (%edi)
2630 movl %edx, 4(%edi)
2631 movl %eax, 24(%esp)
2632 movl %ebx, 28(%esp)
2633 addl $8, %esi
2634 addl $8, %edi
2635 subl $8, %ebp
3082 jnz .L042decrypt_loop
3083.L041decrypt_finish:
2636 jnz .L043decrypt_loop
2637.L042decrypt_finish:
3084 movl 60(%esp), %ebp
3085 andl $7, %ebp
3086 jz .L031finish
3087 movl (%esi), %eax
3088 movl 4(%esi), %ebx
3089 movl %eax, 16(%esp)
3090 movl %ebx, 20(%esp)
2638 movl 60(%esp), %ebp
2639 andl $7, %ebp
2640 jz .L031finish
2641 movl (%esi), %eax
2642 movl 4(%esi), %ebx
2643 movl %eax, 16(%esp)
2644 movl %ebx, 20(%esp)
3091 call des_decrypt3
2645 call DES_decrypt3
3092 movl 16(%esp), %eax
3093 movl 20(%esp), %ebx
3094 movl 24(%esp), %ecx
3095 movl 28(%esp), %edx
3096 xorl %eax, %ecx
3097 xorl %ebx, %edx
3098 movl (%esi), %eax
3099 movl 4(%esi), %ebx
2646 movl 16(%esp), %eax
2647 movl 20(%esp), %ebx
2648 movl 24(%esp), %ecx
2649 movl 28(%esp), %edx
2650 xorl %eax, %ecx
2651 xorl %ebx, %edx
2652 movl (%esi), %eax
2653 movl 4(%esi), %ebx
3100.L043dj7:
2654.L044dj7:
3101 rorl $16, %edx
3102 movb %dl, 6(%edi)
3103 shrl $16, %edx
2655 rorl $16, %edx
2656 movb %dl, 6(%edi)
2657 shrl $16, %edx
3104.L044dj6:
2658.L045dj6:
3105 movb %dh, 5(%edi)
2659 movb %dh, 5(%edi)
3106.L045dj5:
2660.L046dj5:
3107 movb %dl, 4(%edi)
2661 movb %dl, 4(%edi)
3108.L046dj4:
2662.L047dj4:
3109 movl %ecx, (%edi)
2663 movl %ecx, (%edi)
3110 jmp .L047djend
3111.L048dj3:
2664 jmp .L048djend
2665.L049dj3:
3112 rorl $16, %ecx
3113 movb %cl, 2(%edi)
3114 sall $16, %ecx
2666 rorl $16, %ecx
2667 movb %cl, 2(%edi)
2668 sall $16, %ecx
3115.L049dj2:
2669.L050dj2:
3116 movb %ch, 1(%esi)
2670 movb %ch, 1(%esi)
3117.L050dj1:
2671.L051dj1:
3118 movb %cl, (%esi)
2672 movb %cl, (%esi)
3119.L047djend:
2673.L048djend:
3120 jmp .L031finish
3121.align 16
3122.L031finish:
3123 movl 76(%esp), %ecx
3124 addl $32, %esp
3125 movl %eax, (%ecx)
3126 movl %ebx, 4(%ecx)
3127 popl %edi
3128 popl %esi
3129 popl %ebx
3130 popl %ebp
3131 ret
3132.align 16
2674 jmp .L031finish
2675.align 16
2676.L031finish:
2677 movl 76(%esp), %ecx
2678 addl $32, %esp
2679 movl %eax, (%ecx)
2680 movl %ebx, 4(%ecx)
2681 popl %edi
2682 popl %esi
2683 popl %ebx
2684 popl %ebp
2685 ret
2686.align 16
3133.L032cbc_enc_jmp_table:
2687.L033cbc_enc_jmp_table:
3134 .long 0
2688 .long 0
3135 .long .L040ej1
3136 .long .L039ej2
3137 .long .L038ej3
3138 .long .L036ej4
3139 .long .L035ej5
3140 .long .L034ej6
3141 .long .L033ej7
3142.align 16
3143.L051cbc_dec_jmp_table:
3144 .long 0
3145 .long .L050dj1
3146 .long .L049dj2
3147 .long .L048dj3
3148 .long .L046dj4
3149 .long .L045dj5
3150 .long .L044dj6
3151 .long .L043dj7
3152.L_des_ede3_cbc_encrypt_end:
3153 .size des_ede3_cbc_encrypt,.L_des_ede3_cbc_encrypt_end-des_ede3_cbc_encrypt
2689 .long .L041ej1-.L032PIC_point
2690 .long .L040ej2-.L032PIC_point
2691 .long .L039ej3-.L032PIC_point
2692 .long .L037ej4-.L032PIC_point
2693 .long .L036ej5-.L032PIC_point
2694 .long .L035ej6-.L032PIC_point
2695 .long .L034ej7-.L032PIC_point
2696.L_DES_ede3_cbc_encrypt_end:
2697 .size DES_ede3_cbc_encrypt,.L_DES_ede3_cbc_encrypt_end-DES_ede3_cbc_encrypt
3154.ident "desasm.pl"
2698.ident "desasm.pl"