Deleted Added
full compact
bf-586.s (95967) bf-586.s (127326)
1 # $FreeBSD: head/secure/lib/libcrypto/i386/bf-586.s 95967 2002-05-03 00:14:39Z peter $
2 # Dont even think of reading this code
3 # It was automatically generated by bf-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/bf-586.s 127326 2004-03-23 08:32:29Z markm $
7
2
3
4
5
6
7
8 .file "bf-586.s"
9 .version "01.01"
10gcc2_compiled.:
11.text
12 .align 16
13.globl BF_encrypt
14 .type BF_encrypt,@function
15BF_encrypt:
16
17 pushl %ebp
18 pushl %ebx
19 movl 12(%esp), %ebx
20 movl 16(%esp), %ebp
21 pushl %esi
22 pushl %edi
8 .file "bf-586.s"
9 .version "01.01"
10gcc2_compiled.:
11.text
12 .align 16
13.globl BF_encrypt
14 .type BF_encrypt,@function
15BF_encrypt:
16
17 pushl %ebp
18 pushl %ebx
19 movl 12(%esp), %ebx
20 movl 16(%esp), %ebp
21 pushl %esi
22 pushl %edi
23 # Load the 2 words
23
24 movl (%ebx), %edi
25 movl 4(%ebx), %esi
26 xorl %eax, %eax
27 movl (%ebp), %ebx
28 xorl %ecx, %ecx
29 xorl %ebx, %edi
30
24 movl (%ebx), %edi
25 movl 4(%ebx), %esi
26 xorl %eax, %eax
27 movl (%ebp), %ebx
28 xorl %ecx, %ecx
29 xorl %ebx, %edi
30
31 # Round 0
31
32 movl 4(%ebp), %edx
33 movl %edi, %ebx
34 xorl %edx, %esi
35 shrl $16, %ebx
36 movl %edi, %edx
37 movb %bh, %al
38 andl $255, %ebx
39 movb %dh, %cl
40 andl $255, %edx
41 movl 72(%ebp,%eax,4),%eax
42 movl 1096(%ebp,%ebx,4),%ebx
43 addl %eax, %ebx
44 movl 2120(%ebp,%ecx,4),%eax
45 xorl %eax, %ebx
46 movl 3144(%ebp,%edx,4),%edx
47 addl %edx, %ebx
48 xorl %eax, %eax
49 xorl %ebx, %esi
50
32 movl 4(%ebp), %edx
33 movl %edi, %ebx
34 xorl %edx, %esi
35 shrl $16, %ebx
36 movl %edi, %edx
37 movb %bh, %al
38 andl $255, %ebx
39 movb %dh, %cl
40 andl $255, %edx
41 movl 72(%ebp,%eax,4),%eax
42 movl 1096(%ebp,%ebx,4),%ebx
43 addl %eax, %ebx
44 movl 2120(%ebp,%ecx,4),%eax
45 xorl %eax, %ebx
46 movl 3144(%ebp,%edx,4),%edx
47 addl %edx, %ebx
48 xorl %eax, %eax
49 xorl %ebx, %esi
50
51 # Round 1
51
52 movl 8(%ebp), %edx
53 movl %esi, %ebx
54 xorl %edx, %edi
55 shrl $16, %ebx
56 movl %esi, %edx
57 movb %bh, %al
58 andl $255, %ebx
59 movb %dh, %cl
60 andl $255, %edx
61 movl 72(%ebp,%eax,4),%eax
62 movl 1096(%ebp,%ebx,4),%ebx
63 addl %eax, %ebx
64 movl 2120(%ebp,%ecx,4),%eax
65 xorl %eax, %ebx
66 movl 3144(%ebp,%edx,4),%edx
67 addl %edx, %ebx
68 xorl %eax, %eax
69 xorl %ebx, %edi
70
52 movl 8(%ebp), %edx
53 movl %esi, %ebx
54 xorl %edx, %edi
55 shrl $16, %ebx
56 movl %esi, %edx
57 movb %bh, %al
58 andl $255, %ebx
59 movb %dh, %cl
60 andl $255, %edx
61 movl 72(%ebp,%eax,4),%eax
62 movl 1096(%ebp,%ebx,4),%ebx
63 addl %eax, %ebx
64 movl 2120(%ebp,%ecx,4),%eax
65 xorl %eax, %ebx
66 movl 3144(%ebp,%edx,4),%edx
67 addl %edx, %ebx
68 xorl %eax, %eax
69 xorl %ebx, %edi
70
71 # Round 2
71
72 movl 12(%ebp), %edx
73 movl %edi, %ebx
74 xorl %edx, %esi
75 shrl $16, %ebx
76 movl %edi, %edx
77 movb %bh, %al
78 andl $255, %ebx
79 movb %dh, %cl
80 andl $255, %edx
81 movl 72(%ebp,%eax,4),%eax
82 movl 1096(%ebp,%ebx,4),%ebx
83 addl %eax, %ebx
84 movl 2120(%ebp,%ecx,4),%eax
85 xorl %eax, %ebx
86 movl 3144(%ebp,%edx,4),%edx
87 addl %edx, %ebx
88 xorl %eax, %eax
89 xorl %ebx, %esi
90
72 movl 12(%ebp), %edx
73 movl %edi, %ebx
74 xorl %edx, %esi
75 shrl $16, %ebx
76 movl %edi, %edx
77 movb %bh, %al
78 andl $255, %ebx
79 movb %dh, %cl
80 andl $255, %edx
81 movl 72(%ebp,%eax,4),%eax
82 movl 1096(%ebp,%ebx,4),%ebx
83 addl %eax, %ebx
84 movl 2120(%ebp,%ecx,4),%eax
85 xorl %eax, %ebx
86 movl 3144(%ebp,%edx,4),%edx
87 addl %edx, %ebx
88 xorl %eax, %eax
89 xorl %ebx, %esi
90
91 # Round 3
91
92 movl 16(%ebp), %edx
93 movl %esi, %ebx
94 xorl %edx, %edi
95 shrl $16, %ebx
96 movl %esi, %edx
97 movb %bh, %al
98 andl $255, %ebx
99 movb %dh, %cl
100 andl $255, %edx
101 movl 72(%ebp,%eax,4),%eax
102 movl 1096(%ebp,%ebx,4),%ebx
103 addl %eax, %ebx
104 movl 2120(%ebp,%ecx,4),%eax
105 xorl %eax, %ebx
106 movl 3144(%ebp,%edx,4),%edx
107 addl %edx, %ebx
108 xorl %eax, %eax
109 xorl %ebx, %edi
110
92 movl 16(%ebp), %edx
93 movl %esi, %ebx
94 xorl %edx, %edi
95 shrl $16, %ebx
96 movl %esi, %edx
97 movb %bh, %al
98 andl $255, %ebx
99 movb %dh, %cl
100 andl $255, %edx
101 movl 72(%ebp,%eax,4),%eax
102 movl 1096(%ebp,%ebx,4),%ebx
103 addl %eax, %ebx
104 movl 2120(%ebp,%ecx,4),%eax
105 xorl %eax, %ebx
106 movl 3144(%ebp,%edx,4),%edx
107 addl %edx, %ebx
108 xorl %eax, %eax
109 xorl %ebx, %edi
110
111 # Round 4
111
112 movl 20(%ebp), %edx
113 movl %edi, %ebx
114 xorl %edx, %esi
115 shrl $16, %ebx
116 movl %edi, %edx
117 movb %bh, %al
118 andl $255, %ebx
119 movb %dh, %cl
120 andl $255, %edx
121 movl 72(%ebp,%eax,4),%eax
122 movl 1096(%ebp,%ebx,4),%ebx
123 addl %eax, %ebx
124 movl 2120(%ebp,%ecx,4),%eax
125 xorl %eax, %ebx
126 movl 3144(%ebp,%edx,4),%edx
127 addl %edx, %ebx
128 xorl %eax, %eax
129 xorl %ebx, %esi
130
112 movl 20(%ebp), %edx
113 movl %edi, %ebx
114 xorl %edx, %esi
115 shrl $16, %ebx
116 movl %edi, %edx
117 movb %bh, %al
118 andl $255, %ebx
119 movb %dh, %cl
120 andl $255, %edx
121 movl 72(%ebp,%eax,4),%eax
122 movl 1096(%ebp,%ebx,4),%ebx
123 addl %eax, %ebx
124 movl 2120(%ebp,%ecx,4),%eax
125 xorl %eax, %ebx
126 movl 3144(%ebp,%edx,4),%edx
127 addl %edx, %ebx
128 xorl %eax, %eax
129 xorl %ebx, %esi
130
131 # Round 5
131
132 movl 24(%ebp), %edx
133 movl %esi, %ebx
134 xorl %edx, %edi
135 shrl $16, %ebx
136 movl %esi, %edx
137 movb %bh, %al
138 andl $255, %ebx
139 movb %dh, %cl
140 andl $255, %edx
141 movl 72(%ebp,%eax,4),%eax
142 movl 1096(%ebp,%ebx,4),%ebx
143 addl %eax, %ebx
144 movl 2120(%ebp,%ecx,4),%eax
145 xorl %eax, %ebx
146 movl 3144(%ebp,%edx,4),%edx
147 addl %edx, %ebx
148 xorl %eax, %eax
149 xorl %ebx, %edi
150
132 movl 24(%ebp), %edx
133 movl %esi, %ebx
134 xorl %edx, %edi
135 shrl $16, %ebx
136 movl %esi, %edx
137 movb %bh, %al
138 andl $255, %ebx
139 movb %dh, %cl
140 andl $255, %edx
141 movl 72(%ebp,%eax,4),%eax
142 movl 1096(%ebp,%ebx,4),%ebx
143 addl %eax, %ebx
144 movl 2120(%ebp,%ecx,4),%eax
145 xorl %eax, %ebx
146 movl 3144(%ebp,%edx,4),%edx
147 addl %edx, %ebx
148 xorl %eax, %eax
149 xorl %ebx, %edi
150
151 # Round 6
151
152 movl 28(%ebp), %edx
153 movl %edi, %ebx
154 xorl %edx, %esi
155 shrl $16, %ebx
156 movl %edi, %edx
157 movb %bh, %al
158 andl $255, %ebx
159 movb %dh, %cl
160 andl $255, %edx
161 movl 72(%ebp,%eax,4),%eax
162 movl 1096(%ebp,%ebx,4),%ebx
163 addl %eax, %ebx
164 movl 2120(%ebp,%ecx,4),%eax
165 xorl %eax, %ebx
166 movl 3144(%ebp,%edx,4),%edx
167 addl %edx, %ebx
168 xorl %eax, %eax
169 xorl %ebx, %esi
170
152 movl 28(%ebp), %edx
153 movl %edi, %ebx
154 xorl %edx, %esi
155 shrl $16, %ebx
156 movl %edi, %edx
157 movb %bh, %al
158 andl $255, %ebx
159 movb %dh, %cl
160 andl $255, %edx
161 movl 72(%ebp,%eax,4),%eax
162 movl 1096(%ebp,%ebx,4),%ebx
163 addl %eax, %ebx
164 movl 2120(%ebp,%ecx,4),%eax
165 xorl %eax, %ebx
166 movl 3144(%ebp,%edx,4),%edx
167 addl %edx, %ebx
168 xorl %eax, %eax
169 xorl %ebx, %esi
170
171 # Round 7
171
172 movl 32(%ebp), %edx
173 movl %esi, %ebx
174 xorl %edx, %edi
175 shrl $16, %ebx
176 movl %esi, %edx
177 movb %bh, %al
178 andl $255, %ebx
179 movb %dh, %cl
180 andl $255, %edx
181 movl 72(%ebp,%eax,4),%eax
182 movl 1096(%ebp,%ebx,4),%ebx
183 addl %eax, %ebx
184 movl 2120(%ebp,%ecx,4),%eax
185 xorl %eax, %ebx
186 movl 3144(%ebp,%edx,4),%edx
187 addl %edx, %ebx
188 xorl %eax, %eax
189 xorl %ebx, %edi
190
172 movl 32(%ebp), %edx
173 movl %esi, %ebx
174 xorl %edx, %edi
175 shrl $16, %ebx
176 movl %esi, %edx
177 movb %bh, %al
178 andl $255, %ebx
179 movb %dh, %cl
180 andl $255, %edx
181 movl 72(%ebp,%eax,4),%eax
182 movl 1096(%ebp,%ebx,4),%ebx
183 addl %eax, %ebx
184 movl 2120(%ebp,%ecx,4),%eax
185 xorl %eax, %ebx
186 movl 3144(%ebp,%edx,4),%edx
187 addl %edx, %ebx
188 xorl %eax, %eax
189 xorl %ebx, %edi
190
191 # Round 8
191
192 movl 36(%ebp), %edx
193 movl %edi, %ebx
194 xorl %edx, %esi
195 shrl $16, %ebx
196 movl %edi, %edx
197 movb %bh, %al
198 andl $255, %ebx
199 movb %dh, %cl
200 andl $255, %edx
201 movl 72(%ebp,%eax,4),%eax
202 movl 1096(%ebp,%ebx,4),%ebx
203 addl %eax, %ebx
204 movl 2120(%ebp,%ecx,4),%eax
205 xorl %eax, %ebx
206 movl 3144(%ebp,%edx,4),%edx
207 addl %edx, %ebx
208 xorl %eax, %eax
209 xorl %ebx, %esi
210
192 movl 36(%ebp), %edx
193 movl %edi, %ebx
194 xorl %edx, %esi
195 shrl $16, %ebx
196 movl %edi, %edx
197 movb %bh, %al
198 andl $255, %ebx
199 movb %dh, %cl
200 andl $255, %edx
201 movl 72(%ebp,%eax,4),%eax
202 movl 1096(%ebp,%ebx,4),%ebx
203 addl %eax, %ebx
204 movl 2120(%ebp,%ecx,4),%eax
205 xorl %eax, %ebx
206 movl 3144(%ebp,%edx,4),%edx
207 addl %edx, %ebx
208 xorl %eax, %eax
209 xorl %ebx, %esi
210
211 # Round 9
211
212 movl 40(%ebp), %edx
213 movl %esi, %ebx
214 xorl %edx, %edi
215 shrl $16, %ebx
216 movl %esi, %edx
217 movb %bh, %al
218 andl $255, %ebx
219 movb %dh, %cl
220 andl $255, %edx
221 movl 72(%ebp,%eax,4),%eax
222 movl 1096(%ebp,%ebx,4),%ebx
223 addl %eax, %ebx
224 movl 2120(%ebp,%ecx,4),%eax
225 xorl %eax, %ebx
226 movl 3144(%ebp,%edx,4),%edx
227 addl %edx, %ebx
228 xorl %eax, %eax
229 xorl %ebx, %edi
230
212 movl 40(%ebp), %edx
213 movl %esi, %ebx
214 xorl %edx, %edi
215 shrl $16, %ebx
216 movl %esi, %edx
217 movb %bh, %al
218 andl $255, %ebx
219 movb %dh, %cl
220 andl $255, %edx
221 movl 72(%ebp,%eax,4),%eax
222 movl 1096(%ebp,%ebx,4),%ebx
223 addl %eax, %ebx
224 movl 2120(%ebp,%ecx,4),%eax
225 xorl %eax, %ebx
226 movl 3144(%ebp,%edx,4),%edx
227 addl %edx, %ebx
228 xorl %eax, %eax
229 xorl %ebx, %edi
230
231 # Round 10
231
232 movl 44(%ebp), %edx
233 movl %edi, %ebx
234 xorl %edx, %esi
235 shrl $16, %ebx
236 movl %edi, %edx
237 movb %bh, %al
238 andl $255, %ebx
239 movb %dh, %cl
240 andl $255, %edx
241 movl 72(%ebp,%eax,4),%eax
242 movl 1096(%ebp,%ebx,4),%ebx
243 addl %eax, %ebx
244 movl 2120(%ebp,%ecx,4),%eax
245 xorl %eax, %ebx
246 movl 3144(%ebp,%edx,4),%edx
247 addl %edx, %ebx
248 xorl %eax, %eax
249 xorl %ebx, %esi
250
232 movl 44(%ebp), %edx
233 movl %edi, %ebx
234 xorl %edx, %esi
235 shrl $16, %ebx
236 movl %edi, %edx
237 movb %bh, %al
238 andl $255, %ebx
239 movb %dh, %cl
240 andl $255, %edx
241 movl 72(%ebp,%eax,4),%eax
242 movl 1096(%ebp,%ebx,4),%ebx
243 addl %eax, %ebx
244 movl 2120(%ebp,%ecx,4),%eax
245 xorl %eax, %ebx
246 movl 3144(%ebp,%edx,4),%edx
247 addl %edx, %ebx
248 xorl %eax, %eax
249 xorl %ebx, %esi
250
251 # Round 11
251
252 movl 48(%ebp), %edx
253 movl %esi, %ebx
254 xorl %edx, %edi
255 shrl $16, %ebx
256 movl %esi, %edx
257 movb %bh, %al
258 andl $255, %ebx
259 movb %dh, %cl
260 andl $255, %edx
261 movl 72(%ebp,%eax,4),%eax
262 movl 1096(%ebp,%ebx,4),%ebx
263 addl %eax, %ebx
264 movl 2120(%ebp,%ecx,4),%eax
265 xorl %eax, %ebx
266 movl 3144(%ebp,%edx,4),%edx
267 addl %edx, %ebx
268 xorl %eax, %eax
269 xorl %ebx, %edi
270
252 movl 48(%ebp), %edx
253 movl %esi, %ebx
254 xorl %edx, %edi
255 shrl $16, %ebx
256 movl %esi, %edx
257 movb %bh, %al
258 andl $255, %ebx
259 movb %dh, %cl
260 andl $255, %edx
261 movl 72(%ebp,%eax,4),%eax
262 movl 1096(%ebp,%ebx,4),%ebx
263 addl %eax, %ebx
264 movl 2120(%ebp,%ecx,4),%eax
265 xorl %eax, %ebx
266 movl 3144(%ebp,%edx,4),%edx
267 addl %edx, %ebx
268 xorl %eax, %eax
269 xorl %ebx, %edi
270
271 # Round 12
271
272 movl 52(%ebp), %edx
273 movl %edi, %ebx
274 xorl %edx, %esi
275 shrl $16, %ebx
276 movl %edi, %edx
277 movb %bh, %al
278 andl $255, %ebx
279 movb %dh, %cl
280 andl $255, %edx
281 movl 72(%ebp,%eax,4),%eax
282 movl 1096(%ebp,%ebx,4),%ebx
283 addl %eax, %ebx
284 movl 2120(%ebp,%ecx,4),%eax
285 xorl %eax, %ebx
286 movl 3144(%ebp,%edx,4),%edx
287 addl %edx, %ebx
288 xorl %eax, %eax
289 xorl %ebx, %esi
290
272 movl 52(%ebp), %edx
273 movl %edi, %ebx
274 xorl %edx, %esi
275 shrl $16, %ebx
276 movl %edi, %edx
277 movb %bh, %al
278 andl $255, %ebx
279 movb %dh, %cl
280 andl $255, %edx
281 movl 72(%ebp,%eax,4),%eax
282 movl 1096(%ebp,%ebx,4),%ebx
283 addl %eax, %ebx
284 movl 2120(%ebp,%ecx,4),%eax
285 xorl %eax, %ebx
286 movl 3144(%ebp,%edx,4),%edx
287 addl %edx, %ebx
288 xorl %eax, %eax
289 xorl %ebx, %esi
290
291 # Round 13
291
292 movl 56(%ebp), %edx
293 movl %esi, %ebx
294 xorl %edx, %edi
295 shrl $16, %ebx
296 movl %esi, %edx
297 movb %bh, %al
298 andl $255, %ebx
299 movb %dh, %cl
300 andl $255, %edx
301 movl 72(%ebp,%eax,4),%eax
302 movl 1096(%ebp,%ebx,4),%ebx
303 addl %eax, %ebx
304 movl 2120(%ebp,%ecx,4),%eax
305 xorl %eax, %ebx
306 movl 3144(%ebp,%edx,4),%edx
307 addl %edx, %ebx
308 xorl %eax, %eax
309 xorl %ebx, %edi
310
292 movl 56(%ebp), %edx
293 movl %esi, %ebx
294 xorl %edx, %edi
295 shrl $16, %ebx
296 movl %esi, %edx
297 movb %bh, %al
298 andl $255, %ebx
299 movb %dh, %cl
300 andl $255, %edx
301 movl 72(%ebp,%eax,4),%eax
302 movl 1096(%ebp,%ebx,4),%ebx
303 addl %eax, %ebx
304 movl 2120(%ebp,%ecx,4),%eax
305 xorl %eax, %ebx
306 movl 3144(%ebp,%edx,4),%edx
307 addl %edx, %ebx
308 xorl %eax, %eax
309 xorl %ebx, %edi
310
311 # Round 14
311
312 movl 60(%ebp), %edx
313 movl %edi, %ebx
314 xorl %edx, %esi
315 shrl $16, %ebx
316 movl %edi, %edx
317 movb %bh, %al
318 andl $255, %ebx
319 movb %dh, %cl
320 andl $255, %edx
321 movl 72(%ebp,%eax,4),%eax
322 movl 1096(%ebp,%ebx,4),%ebx
323 addl %eax, %ebx
324 movl 2120(%ebp,%ecx,4),%eax
325 xorl %eax, %ebx
326 movl 3144(%ebp,%edx,4),%edx
327 addl %edx, %ebx
328 xorl %eax, %eax
329 xorl %ebx, %esi
330
312 movl 60(%ebp), %edx
313 movl %edi, %ebx
314 xorl %edx, %esi
315 shrl $16, %ebx
316 movl %edi, %edx
317 movb %bh, %al
318 andl $255, %ebx
319 movb %dh, %cl
320 andl $255, %edx
321 movl 72(%ebp,%eax,4),%eax
322 movl 1096(%ebp,%ebx,4),%ebx
323 addl %eax, %ebx
324 movl 2120(%ebp,%ecx,4),%eax
325 xorl %eax, %ebx
326 movl 3144(%ebp,%edx,4),%edx
327 addl %edx, %ebx
328 xorl %eax, %eax
329 xorl %ebx, %esi
330
331 # Round 15
331
332 movl 64(%ebp), %edx
333 movl %esi, %ebx
334 xorl %edx, %edi
335 shrl $16, %ebx
336 movl %esi, %edx
337 movb %bh, %al
338 andl $255, %ebx
339 movb %dh, %cl
340 andl $255, %edx
341 movl 72(%ebp,%eax,4),%eax
342 movl 1096(%ebp,%ebx,4),%ebx
343 addl %eax, %ebx
344 movl 2120(%ebp,%ecx,4),%eax
345 xorl %eax, %ebx
346 movl 3144(%ebp,%edx,4),%edx
347 addl %edx, %ebx
332 movl 64(%ebp), %edx
333 movl %esi, %ebx
334 xorl %edx, %edi
335 shrl $16, %ebx
336 movl %esi, %edx
337 movb %bh, %al
338 andl $255, %ebx
339 movb %dh, %cl
340 andl $255, %edx
341 movl 72(%ebp,%eax,4),%eax
342 movl 1096(%ebp,%ebx,4),%ebx
343 addl %eax, %ebx
344 movl 2120(%ebp,%ecx,4),%eax
345 xorl %eax, %ebx
346 movl 3144(%ebp,%edx,4),%edx
347 addl %edx, %ebx
348 # Load parameter 0 (16) enc=1
348
349 movl 20(%esp), %eax
350 xorl %ebx, %edi
351 movl 68(%ebp), %edx
352 xorl %edx, %esi
353 movl %edi, 4(%eax)
354 movl %esi, (%eax)
355 popl %edi
356 popl %esi
357 popl %ebx
358 popl %ebp
359 ret
349 movl 20(%esp), %eax
350 xorl %ebx, %edi
351 movl 68(%ebp), %edx
352 xorl %edx, %esi
353 movl %edi, 4(%eax)
354 movl %esi, (%eax)
355 popl %edi
356 popl %esi
357 popl %ebx
358 popl %ebp
359 ret
360.BF_encrypt_end:
361 .size BF_encrypt,.BF_encrypt_end-BF_encrypt
360.L_BF_encrypt_end:
361 .size BF_encrypt,.L_BF_encrypt_end-BF_encrypt
362.ident "BF_encrypt"
363.text
364 .align 16
365.globl BF_decrypt
366 .type BF_decrypt,@function
367BF_decrypt:
368
369 pushl %ebp
370 pushl %ebx
371 movl 12(%esp), %ebx
372 movl 16(%esp), %ebp
373 pushl %esi
374 pushl %edi
362.ident "BF_encrypt"
363.text
364 .align 16
365.globl BF_decrypt
366 .type BF_decrypt,@function
367BF_decrypt:
368
369 pushl %ebp
370 pushl %ebx
371 movl 12(%esp), %ebx
372 movl 16(%esp), %ebp
373 pushl %esi
374 pushl %edi
375 # Load the 2 words
375
376 movl (%ebx), %edi
377 movl 4(%ebx), %esi
378 xorl %eax, %eax
379 movl 68(%ebp), %ebx
380 xorl %ecx, %ecx
381 xorl %ebx, %edi
382
376 movl (%ebx), %edi
377 movl 4(%ebx), %esi
378 xorl %eax, %eax
379 movl 68(%ebp), %ebx
380 xorl %ecx, %ecx
381 xorl %ebx, %edi
382
383 # Round 16
383
384 movl 64(%ebp), %edx
385 movl %edi, %ebx
386 xorl %edx, %esi
387 shrl $16, %ebx
388 movl %edi, %edx
389 movb %bh, %al
390 andl $255, %ebx
391 movb %dh, %cl
392 andl $255, %edx
393 movl 72(%ebp,%eax,4),%eax
394 movl 1096(%ebp,%ebx,4),%ebx
395 addl %eax, %ebx
396 movl 2120(%ebp,%ecx,4),%eax
397 xorl %eax, %ebx
398 movl 3144(%ebp,%edx,4),%edx
399 addl %edx, %ebx
400 xorl %eax, %eax
401 xorl %ebx, %esi
402
384 movl 64(%ebp), %edx
385 movl %edi, %ebx
386 xorl %edx, %esi
387 shrl $16, %ebx
388 movl %edi, %edx
389 movb %bh, %al
390 andl $255, %ebx
391 movb %dh, %cl
392 andl $255, %edx
393 movl 72(%ebp,%eax,4),%eax
394 movl 1096(%ebp,%ebx,4),%ebx
395 addl %eax, %ebx
396 movl 2120(%ebp,%ecx,4),%eax
397 xorl %eax, %ebx
398 movl 3144(%ebp,%edx,4),%edx
399 addl %edx, %ebx
400 xorl %eax, %eax
401 xorl %ebx, %esi
402
403 # Round 15
403
404 movl 60(%ebp), %edx
405 movl %esi, %ebx
406 xorl %edx, %edi
407 shrl $16, %ebx
408 movl %esi, %edx
409 movb %bh, %al
410 andl $255, %ebx
411 movb %dh, %cl
412 andl $255, %edx
413 movl 72(%ebp,%eax,4),%eax
414 movl 1096(%ebp,%ebx,4),%ebx
415 addl %eax, %ebx
416 movl 2120(%ebp,%ecx,4),%eax
417 xorl %eax, %ebx
418 movl 3144(%ebp,%edx,4),%edx
419 addl %edx, %ebx
420 xorl %eax, %eax
421 xorl %ebx, %edi
422
404 movl 60(%ebp), %edx
405 movl %esi, %ebx
406 xorl %edx, %edi
407 shrl $16, %ebx
408 movl %esi, %edx
409 movb %bh, %al
410 andl $255, %ebx
411 movb %dh, %cl
412 andl $255, %edx
413 movl 72(%ebp,%eax,4),%eax
414 movl 1096(%ebp,%ebx,4),%ebx
415 addl %eax, %ebx
416 movl 2120(%ebp,%ecx,4),%eax
417 xorl %eax, %ebx
418 movl 3144(%ebp,%edx,4),%edx
419 addl %edx, %ebx
420 xorl %eax, %eax
421 xorl %ebx, %edi
422
423 # Round 14
423
424 movl 56(%ebp), %edx
425 movl %edi, %ebx
426 xorl %edx, %esi
427 shrl $16, %ebx
428 movl %edi, %edx
429 movb %bh, %al
430 andl $255, %ebx
431 movb %dh, %cl
432 andl $255, %edx
433 movl 72(%ebp,%eax,4),%eax
434 movl 1096(%ebp,%ebx,4),%ebx
435 addl %eax, %ebx
436 movl 2120(%ebp,%ecx,4),%eax
437 xorl %eax, %ebx
438 movl 3144(%ebp,%edx,4),%edx
439 addl %edx, %ebx
440 xorl %eax, %eax
441 xorl %ebx, %esi
442
424 movl 56(%ebp), %edx
425 movl %edi, %ebx
426 xorl %edx, %esi
427 shrl $16, %ebx
428 movl %edi, %edx
429 movb %bh, %al
430 andl $255, %ebx
431 movb %dh, %cl
432 andl $255, %edx
433 movl 72(%ebp,%eax,4),%eax
434 movl 1096(%ebp,%ebx,4),%ebx
435 addl %eax, %ebx
436 movl 2120(%ebp,%ecx,4),%eax
437 xorl %eax, %ebx
438 movl 3144(%ebp,%edx,4),%edx
439 addl %edx, %ebx
440 xorl %eax, %eax
441 xorl %ebx, %esi
442
443 # Round 13
443
444 movl 52(%ebp), %edx
445 movl %esi, %ebx
446 xorl %edx, %edi
447 shrl $16, %ebx
448 movl %esi, %edx
449 movb %bh, %al
450 andl $255, %ebx
451 movb %dh, %cl
452 andl $255, %edx
453 movl 72(%ebp,%eax,4),%eax
454 movl 1096(%ebp,%ebx,4),%ebx
455 addl %eax, %ebx
456 movl 2120(%ebp,%ecx,4),%eax
457 xorl %eax, %ebx
458 movl 3144(%ebp,%edx,4),%edx
459 addl %edx, %ebx
460 xorl %eax, %eax
461 xorl %ebx, %edi
462
444 movl 52(%ebp), %edx
445 movl %esi, %ebx
446 xorl %edx, %edi
447 shrl $16, %ebx
448 movl %esi, %edx
449 movb %bh, %al
450 andl $255, %ebx
451 movb %dh, %cl
452 andl $255, %edx
453 movl 72(%ebp,%eax,4),%eax
454 movl 1096(%ebp,%ebx,4),%ebx
455 addl %eax, %ebx
456 movl 2120(%ebp,%ecx,4),%eax
457 xorl %eax, %ebx
458 movl 3144(%ebp,%edx,4),%edx
459 addl %edx, %ebx
460 xorl %eax, %eax
461 xorl %ebx, %edi
462
463 # Round 12
463
464 movl 48(%ebp), %edx
465 movl %edi, %ebx
466 xorl %edx, %esi
467 shrl $16, %ebx
468 movl %edi, %edx
469 movb %bh, %al
470 andl $255, %ebx
471 movb %dh, %cl
472 andl $255, %edx
473 movl 72(%ebp,%eax,4),%eax
474 movl 1096(%ebp,%ebx,4),%ebx
475 addl %eax, %ebx
476 movl 2120(%ebp,%ecx,4),%eax
477 xorl %eax, %ebx
478 movl 3144(%ebp,%edx,4),%edx
479 addl %edx, %ebx
480 xorl %eax, %eax
481 xorl %ebx, %esi
482
464 movl 48(%ebp), %edx
465 movl %edi, %ebx
466 xorl %edx, %esi
467 shrl $16, %ebx
468 movl %edi, %edx
469 movb %bh, %al
470 andl $255, %ebx
471 movb %dh, %cl
472 andl $255, %edx
473 movl 72(%ebp,%eax,4),%eax
474 movl 1096(%ebp,%ebx,4),%ebx
475 addl %eax, %ebx
476 movl 2120(%ebp,%ecx,4),%eax
477 xorl %eax, %ebx
478 movl 3144(%ebp,%edx,4),%edx
479 addl %edx, %ebx
480 xorl %eax, %eax
481 xorl %ebx, %esi
482
483 # Round 11
483
484 movl 44(%ebp), %edx
485 movl %esi, %ebx
486 xorl %edx, %edi
487 shrl $16, %ebx
488 movl %esi, %edx
489 movb %bh, %al
490 andl $255, %ebx
491 movb %dh, %cl
492 andl $255, %edx
493 movl 72(%ebp,%eax,4),%eax
494 movl 1096(%ebp,%ebx,4),%ebx
495 addl %eax, %ebx
496 movl 2120(%ebp,%ecx,4),%eax
497 xorl %eax, %ebx
498 movl 3144(%ebp,%edx,4),%edx
499 addl %edx, %ebx
500 xorl %eax, %eax
501 xorl %ebx, %edi
502
484 movl 44(%ebp), %edx
485 movl %esi, %ebx
486 xorl %edx, %edi
487 shrl $16, %ebx
488 movl %esi, %edx
489 movb %bh, %al
490 andl $255, %ebx
491 movb %dh, %cl
492 andl $255, %edx
493 movl 72(%ebp,%eax,4),%eax
494 movl 1096(%ebp,%ebx,4),%ebx
495 addl %eax, %ebx
496 movl 2120(%ebp,%ecx,4),%eax
497 xorl %eax, %ebx
498 movl 3144(%ebp,%edx,4),%edx
499 addl %edx, %ebx
500 xorl %eax, %eax
501 xorl %ebx, %edi
502
503 # Round 10
503
504 movl 40(%ebp), %edx
505 movl %edi, %ebx
506 xorl %edx, %esi
507 shrl $16, %ebx
508 movl %edi, %edx
509 movb %bh, %al
510 andl $255, %ebx
511 movb %dh, %cl
512 andl $255, %edx
513 movl 72(%ebp,%eax,4),%eax
514 movl 1096(%ebp,%ebx,4),%ebx
515 addl %eax, %ebx
516 movl 2120(%ebp,%ecx,4),%eax
517 xorl %eax, %ebx
518 movl 3144(%ebp,%edx,4),%edx
519 addl %edx, %ebx
520 xorl %eax, %eax
521 xorl %ebx, %esi
522
504 movl 40(%ebp), %edx
505 movl %edi, %ebx
506 xorl %edx, %esi
507 shrl $16, %ebx
508 movl %edi, %edx
509 movb %bh, %al
510 andl $255, %ebx
511 movb %dh, %cl
512 andl $255, %edx
513 movl 72(%ebp,%eax,4),%eax
514 movl 1096(%ebp,%ebx,4),%ebx
515 addl %eax, %ebx
516 movl 2120(%ebp,%ecx,4),%eax
517 xorl %eax, %ebx
518 movl 3144(%ebp,%edx,4),%edx
519 addl %edx, %ebx
520 xorl %eax, %eax
521 xorl %ebx, %esi
522
523 # Round 9
523
524 movl 36(%ebp), %edx
525 movl %esi, %ebx
526 xorl %edx, %edi
527 shrl $16, %ebx
528 movl %esi, %edx
529 movb %bh, %al
530 andl $255, %ebx
531 movb %dh, %cl
532 andl $255, %edx
533 movl 72(%ebp,%eax,4),%eax
534 movl 1096(%ebp,%ebx,4),%ebx
535 addl %eax, %ebx
536 movl 2120(%ebp,%ecx,4),%eax
537 xorl %eax, %ebx
538 movl 3144(%ebp,%edx,4),%edx
539 addl %edx, %ebx
540 xorl %eax, %eax
541 xorl %ebx, %edi
542
524 movl 36(%ebp), %edx
525 movl %esi, %ebx
526 xorl %edx, %edi
527 shrl $16, %ebx
528 movl %esi, %edx
529 movb %bh, %al
530 andl $255, %ebx
531 movb %dh, %cl
532 andl $255, %edx
533 movl 72(%ebp,%eax,4),%eax
534 movl 1096(%ebp,%ebx,4),%ebx
535 addl %eax, %ebx
536 movl 2120(%ebp,%ecx,4),%eax
537 xorl %eax, %ebx
538 movl 3144(%ebp,%edx,4),%edx
539 addl %edx, %ebx
540 xorl %eax, %eax
541 xorl %ebx, %edi
542
543 # Round 8
543
544 movl 32(%ebp), %edx
545 movl %edi, %ebx
546 xorl %edx, %esi
547 shrl $16, %ebx
548 movl %edi, %edx
549 movb %bh, %al
550 andl $255, %ebx
551 movb %dh, %cl
552 andl $255, %edx
553 movl 72(%ebp,%eax,4),%eax
554 movl 1096(%ebp,%ebx,4),%ebx
555 addl %eax, %ebx
556 movl 2120(%ebp,%ecx,4),%eax
557 xorl %eax, %ebx
558 movl 3144(%ebp,%edx,4),%edx
559 addl %edx, %ebx
560 xorl %eax, %eax
561 xorl %ebx, %esi
562
544 movl 32(%ebp), %edx
545 movl %edi, %ebx
546 xorl %edx, %esi
547 shrl $16, %ebx
548 movl %edi, %edx
549 movb %bh, %al
550 andl $255, %ebx
551 movb %dh, %cl
552 andl $255, %edx
553 movl 72(%ebp,%eax,4),%eax
554 movl 1096(%ebp,%ebx,4),%ebx
555 addl %eax, %ebx
556 movl 2120(%ebp,%ecx,4),%eax
557 xorl %eax, %ebx
558 movl 3144(%ebp,%edx,4),%edx
559 addl %edx, %ebx
560 xorl %eax, %eax
561 xorl %ebx, %esi
562
563 # Round 7
563
564 movl 28(%ebp), %edx
565 movl %esi, %ebx
566 xorl %edx, %edi
567 shrl $16, %ebx
568 movl %esi, %edx
569 movb %bh, %al
570 andl $255, %ebx
571 movb %dh, %cl
572 andl $255, %edx
573 movl 72(%ebp,%eax,4),%eax
574 movl 1096(%ebp,%ebx,4),%ebx
575 addl %eax, %ebx
576 movl 2120(%ebp,%ecx,4),%eax
577 xorl %eax, %ebx
578 movl 3144(%ebp,%edx,4),%edx
579 addl %edx, %ebx
580 xorl %eax, %eax
581 xorl %ebx, %edi
582
564 movl 28(%ebp), %edx
565 movl %esi, %ebx
566 xorl %edx, %edi
567 shrl $16, %ebx
568 movl %esi, %edx
569 movb %bh, %al
570 andl $255, %ebx
571 movb %dh, %cl
572 andl $255, %edx
573 movl 72(%ebp,%eax,4),%eax
574 movl 1096(%ebp,%ebx,4),%ebx
575 addl %eax, %ebx
576 movl 2120(%ebp,%ecx,4),%eax
577 xorl %eax, %ebx
578 movl 3144(%ebp,%edx,4),%edx
579 addl %edx, %ebx
580 xorl %eax, %eax
581 xorl %ebx, %edi
582
583 # Round 6
583
584 movl 24(%ebp), %edx
585 movl %edi, %ebx
586 xorl %edx, %esi
587 shrl $16, %ebx
588 movl %edi, %edx
589 movb %bh, %al
590 andl $255, %ebx
591 movb %dh, %cl
592 andl $255, %edx
593 movl 72(%ebp,%eax,4),%eax
594 movl 1096(%ebp,%ebx,4),%ebx
595 addl %eax, %ebx
596 movl 2120(%ebp,%ecx,4),%eax
597 xorl %eax, %ebx
598 movl 3144(%ebp,%edx,4),%edx
599 addl %edx, %ebx
600 xorl %eax, %eax
601 xorl %ebx, %esi
602
584 movl 24(%ebp), %edx
585 movl %edi, %ebx
586 xorl %edx, %esi
587 shrl $16, %ebx
588 movl %edi, %edx
589 movb %bh, %al
590 andl $255, %ebx
591 movb %dh, %cl
592 andl $255, %edx
593 movl 72(%ebp,%eax,4),%eax
594 movl 1096(%ebp,%ebx,4),%ebx
595 addl %eax, %ebx
596 movl 2120(%ebp,%ecx,4),%eax
597 xorl %eax, %ebx
598 movl 3144(%ebp,%edx,4),%edx
599 addl %edx, %ebx
600 xorl %eax, %eax
601 xorl %ebx, %esi
602
603 # Round 5
603
604 movl 20(%ebp), %edx
605 movl %esi, %ebx
606 xorl %edx, %edi
607 shrl $16, %ebx
608 movl %esi, %edx
609 movb %bh, %al
610 andl $255, %ebx
611 movb %dh, %cl
612 andl $255, %edx
613 movl 72(%ebp,%eax,4),%eax
614 movl 1096(%ebp,%ebx,4),%ebx
615 addl %eax, %ebx
616 movl 2120(%ebp,%ecx,4),%eax
617 xorl %eax, %ebx
618 movl 3144(%ebp,%edx,4),%edx
619 addl %edx, %ebx
620 xorl %eax, %eax
621 xorl %ebx, %edi
622
604 movl 20(%ebp), %edx
605 movl %esi, %ebx
606 xorl %edx, %edi
607 shrl $16, %ebx
608 movl %esi, %edx
609 movb %bh, %al
610 andl $255, %ebx
611 movb %dh, %cl
612 andl $255, %edx
613 movl 72(%ebp,%eax,4),%eax
614 movl 1096(%ebp,%ebx,4),%ebx
615 addl %eax, %ebx
616 movl 2120(%ebp,%ecx,4),%eax
617 xorl %eax, %ebx
618 movl 3144(%ebp,%edx,4),%edx
619 addl %edx, %ebx
620 xorl %eax, %eax
621 xorl %ebx, %edi
622
623 # Round 4
623
624 movl 16(%ebp), %edx
625 movl %edi, %ebx
626 xorl %edx, %esi
627 shrl $16, %ebx
628 movl %edi, %edx
629 movb %bh, %al
630 andl $255, %ebx
631 movb %dh, %cl
632 andl $255, %edx
633 movl 72(%ebp,%eax,4),%eax
634 movl 1096(%ebp,%ebx,4),%ebx
635 addl %eax, %ebx
636 movl 2120(%ebp,%ecx,4),%eax
637 xorl %eax, %ebx
638 movl 3144(%ebp,%edx,4),%edx
639 addl %edx, %ebx
640 xorl %eax, %eax
641 xorl %ebx, %esi
642
624 movl 16(%ebp), %edx
625 movl %edi, %ebx
626 xorl %edx, %esi
627 shrl $16, %ebx
628 movl %edi, %edx
629 movb %bh, %al
630 andl $255, %ebx
631 movb %dh, %cl
632 andl $255, %edx
633 movl 72(%ebp,%eax,4),%eax
634 movl 1096(%ebp,%ebx,4),%ebx
635 addl %eax, %ebx
636 movl 2120(%ebp,%ecx,4),%eax
637 xorl %eax, %ebx
638 movl 3144(%ebp,%edx,4),%edx
639 addl %edx, %ebx
640 xorl %eax, %eax
641 xorl %ebx, %esi
642
643 # Round 3
643
644 movl 12(%ebp), %edx
645 movl %esi, %ebx
646 xorl %edx, %edi
647 shrl $16, %ebx
648 movl %esi, %edx
649 movb %bh, %al
650 andl $255, %ebx
651 movb %dh, %cl
652 andl $255, %edx
653 movl 72(%ebp,%eax,4),%eax
654 movl 1096(%ebp,%ebx,4),%ebx
655 addl %eax, %ebx
656 movl 2120(%ebp,%ecx,4),%eax
657 xorl %eax, %ebx
658 movl 3144(%ebp,%edx,4),%edx
659 addl %edx, %ebx
660 xorl %eax, %eax
661 xorl %ebx, %edi
662
644 movl 12(%ebp), %edx
645 movl %esi, %ebx
646 xorl %edx, %edi
647 shrl $16, %ebx
648 movl %esi, %edx
649 movb %bh, %al
650 andl $255, %ebx
651 movb %dh, %cl
652 andl $255, %edx
653 movl 72(%ebp,%eax,4),%eax
654 movl 1096(%ebp,%ebx,4),%ebx
655 addl %eax, %ebx
656 movl 2120(%ebp,%ecx,4),%eax
657 xorl %eax, %ebx
658 movl 3144(%ebp,%edx,4),%edx
659 addl %edx, %ebx
660 xorl %eax, %eax
661 xorl %ebx, %edi
662
663 # Round 2
663
664 movl 8(%ebp), %edx
665 movl %edi, %ebx
666 xorl %edx, %esi
667 shrl $16, %ebx
668 movl %edi, %edx
669 movb %bh, %al
670 andl $255, %ebx
671 movb %dh, %cl
672 andl $255, %edx
673 movl 72(%ebp,%eax,4),%eax
674 movl 1096(%ebp,%ebx,4),%ebx
675 addl %eax, %ebx
676 movl 2120(%ebp,%ecx,4),%eax
677 xorl %eax, %ebx
678 movl 3144(%ebp,%edx,4),%edx
679 addl %edx, %ebx
680 xorl %eax, %eax
681 xorl %ebx, %esi
682
664 movl 8(%ebp), %edx
665 movl %edi, %ebx
666 xorl %edx, %esi
667 shrl $16, %ebx
668 movl %edi, %edx
669 movb %bh, %al
670 andl $255, %ebx
671 movb %dh, %cl
672 andl $255, %edx
673 movl 72(%ebp,%eax,4),%eax
674 movl 1096(%ebp,%ebx,4),%ebx
675 addl %eax, %ebx
676 movl 2120(%ebp,%ecx,4),%eax
677 xorl %eax, %ebx
678 movl 3144(%ebp,%edx,4),%edx
679 addl %edx, %ebx
680 xorl %eax, %eax
681 xorl %ebx, %esi
682
683 # Round 1
683
684 movl 4(%ebp), %edx
685 movl %esi, %ebx
686 xorl %edx, %edi
687 shrl $16, %ebx
688 movl %esi, %edx
689 movb %bh, %al
690 andl $255, %ebx
691 movb %dh, %cl
692 andl $255, %edx
693 movl 72(%ebp,%eax,4),%eax
694 movl 1096(%ebp,%ebx,4),%ebx
695 addl %eax, %ebx
696 movl 2120(%ebp,%ecx,4),%eax
697 xorl %eax, %ebx
698 movl 3144(%ebp,%edx,4),%edx
699 addl %edx, %ebx
684 movl 4(%ebp), %edx
685 movl %esi, %ebx
686 xorl %edx, %edi
687 shrl $16, %ebx
688 movl %esi, %edx
689 movb %bh, %al
690 andl $255, %ebx
691 movb %dh, %cl
692 andl $255, %edx
693 movl 72(%ebp,%eax,4),%eax
694 movl 1096(%ebp,%ebx,4),%ebx
695 addl %eax, %ebx
696 movl 2120(%ebp,%ecx,4),%eax
697 xorl %eax, %ebx
698 movl 3144(%ebp,%edx,4),%edx
699 addl %edx, %ebx
700 # Load parameter 0 (1) enc=0
700
701 movl 20(%esp), %eax
702 xorl %ebx, %edi
703 movl (%ebp), %edx
704 xorl %edx, %esi
705 movl %edi, 4(%eax)
706 movl %esi, (%eax)
707 popl %edi
708 popl %esi
709 popl %ebx
710 popl %ebp
711 ret
701 movl 20(%esp), %eax
702 xorl %ebx, %edi
703 movl (%ebp), %edx
704 xorl %edx, %esi
705 movl %edi, 4(%eax)
706 movl %esi, (%eax)
707 popl %edi
708 popl %esi
709 popl %ebx
710 popl %ebp
711 ret
712.BF_decrypt_end:
713 .size BF_decrypt,.BF_decrypt_end-BF_decrypt
712.L_BF_decrypt_end:
713 .size BF_decrypt,.L_BF_decrypt_end-BF_decrypt
714.ident "BF_decrypt"
715.text
716 .align 16
717.globl BF_cbc_encrypt
718 .type BF_cbc_encrypt,@function
719BF_cbc_encrypt:
720
721 pushl %ebp
722 pushl %ebx
723 pushl %esi
724 pushl %edi
725 movl 28(%esp), %ebp
714.ident "BF_decrypt"
715.text
716 .align 16
717.globl BF_cbc_encrypt
718 .type BF_cbc_encrypt,@function
719BF_cbc_encrypt:
720
721 pushl %ebp
722 pushl %ebx
723 pushl %esi
724 pushl %edi
725 movl 28(%esp), %ebp
726 # getting iv ptr from parameter 4
726
727 movl 36(%esp), %ebx
728 movl (%ebx), %esi
729 movl 4(%ebx), %edi
730 pushl %edi
731 pushl %esi
732 pushl %edi
733 pushl %esi
734 movl %esp, %ebx
735 movl 36(%esp), %esi
736 movl 40(%esp), %edi
727 movl 36(%esp), %ebx
728 movl (%ebx), %esi
729 movl 4(%ebx), %edi
730 pushl %edi
731 pushl %esi
732 pushl %edi
733 pushl %esi
734 movl %esp, %ebx
735 movl 36(%esp), %esi
736 movl 40(%esp), %edi
737 # getting encrypt flag from parameter 5
737
738 movl 56(%esp), %ecx
738 movl 56(%esp), %ecx
739 # get and push parameter 3
739
740 movl 48(%esp), %eax
741 pushl %eax
742 pushl %ebx
743 cmpl $0, %ecx
744 jz .L000decrypt
745 andl $4294967288, %ebp
746 movl 8(%esp), %eax
747 movl 12(%esp), %ebx
748 jz .L001encrypt_finish
749.L002encrypt_loop:
750 movl (%esi), %ecx
751 movl 4(%esi), %edx
752 xorl %ecx, %eax
753 xorl %edx, %ebx
754.byte 15
740 movl 48(%esp), %eax
741 pushl %eax
742 pushl %ebx
743 cmpl $0, %ecx
744 jz .L000decrypt
745 andl $4294967288, %ebp
746 movl 8(%esp), %eax
747 movl 12(%esp), %ebx
748 jz .L001encrypt_finish
749.L002encrypt_loop:
750 movl (%esi), %ecx
751 movl 4(%esi), %edx
752 xorl %ecx, %eax
753 xorl %edx, %ebx
754.byte 15
755.byte 200 # bswapl %eax
755.byte 200
756.byte 15
756.byte 15
757.byte 203 # bswapl %ebx
757.byte 203
758 movl %eax, 8(%esp)
759 movl %ebx, 12(%esp)
760 call BF_encrypt
761 movl 8(%esp), %eax
762 movl 12(%esp), %ebx
763.byte 15
758 movl %eax, 8(%esp)
759 movl %ebx, 12(%esp)
760 call BF_encrypt
761 movl 8(%esp), %eax
762 movl 12(%esp), %ebx
763.byte 15
764.byte 200 # bswapl %eax
764.byte 200
765.byte 15
765.byte 15
766.byte 203 # bswapl %ebx
766.byte 203
767 movl %eax, (%edi)
768 movl %ebx, 4(%edi)
769 addl $8, %esi
770 addl $8, %edi
771 subl $8, %ebp
772 jnz .L002encrypt_loop
773.L001encrypt_finish:
774 movl 52(%esp), %ebp
775 andl $7, %ebp
776 jz .L003finish
767 movl %eax, (%edi)
768 movl %ebx, 4(%edi)
769 addl $8, %esi
770 addl $8, %edi
771 subl $8, %ebp
772 jnz .L002encrypt_loop
773.L001encrypt_finish:
774 movl 52(%esp), %ebp
775 andl $7, %ebp
776 jz .L003finish
777 call .L004PIC_point
778.L004PIC_point:
779 popl %edx
780 leal .L005cbc_enc_jmp_table-.L004PIC_point(%edx),%ecx
781 movl (%ecx,%ebp,4), %ebp
782 addl %edx, %ebp
777 xorl %ecx, %ecx
778 xorl %edx, %edx
783 xorl %ecx, %ecx
784 xorl %edx, %edx
779 movl .L004cbc_enc_jmp_table(,%ebp,4),%ebp
780 jmp *%ebp
785 jmp *%ebp
781.L005ej7:
786.L006ej7:
782 movb 6(%esi), %dh
783 sall $8, %edx
787 movb 6(%esi), %dh
788 sall $8, %edx
784.L006ej6:
789.L007ej6:
785 movb 5(%esi), %dh
790 movb 5(%esi), %dh
786.L007ej5:
791.L008ej5:
787 movb 4(%esi), %dl
792 movb 4(%esi), %dl
788.L008ej4:
793.L009ej4:
789 movl (%esi), %ecx
794 movl (%esi), %ecx
790 jmp .L009ejend
791.L010ej3:
795 jmp .L010ejend
796.L011ej3:
792 movb 2(%esi), %ch
793 sall $8, %ecx
797 movb 2(%esi), %ch
798 sall $8, %ecx
794.L011ej2:
799.L012ej2:
795 movb 1(%esi), %ch
800 movb 1(%esi), %ch
796.L012ej1:
801.L013ej1:
797 movb (%esi), %cl
802 movb (%esi), %cl
798.L009ejend:
803.L010ejend:
799 xorl %ecx, %eax
800 xorl %edx, %ebx
801.byte 15
804 xorl %ecx, %eax
805 xorl %edx, %ebx
806.byte 15
802.byte 200 # bswapl %eax
807.byte 200
803.byte 15
808.byte 15
804.byte 203 # bswapl %ebx
809.byte 203
805 movl %eax, 8(%esp)
806 movl %ebx, 12(%esp)
807 call BF_encrypt
808 movl 8(%esp), %eax
809 movl 12(%esp), %ebx
810.byte 15
810 movl %eax, 8(%esp)
811 movl %ebx, 12(%esp)
812 call BF_encrypt
813 movl 8(%esp), %eax
814 movl 12(%esp), %ebx
815.byte 15
811.byte 200 # bswapl %eax
816.byte 200
812.byte 15
817.byte 15
813.byte 203 # bswapl %ebx
818.byte 203
814 movl %eax, (%edi)
815 movl %ebx, 4(%edi)
816 jmp .L003finish
817.align 16
818.L000decrypt:
819 andl $4294967288, %ebp
820 movl 16(%esp), %eax
821 movl 20(%esp), %ebx
819 movl %eax, (%edi)
820 movl %ebx, 4(%edi)
821 jmp .L003finish
822.align 16
823.L000decrypt:
824 andl $4294967288, %ebp
825 movl 16(%esp), %eax
826 movl 20(%esp), %ebx
822 jz .L013decrypt_finish
823.L014decrypt_loop:
827 jz .L014decrypt_finish
828.L015decrypt_loop:
824 movl (%esi), %eax
825 movl 4(%esi), %ebx
826.byte 15
829 movl (%esi), %eax
830 movl 4(%esi), %ebx
831.byte 15
827.byte 200 # bswapl %eax
832.byte 200
828.byte 15
833.byte 15
829.byte 203 # bswapl %ebx
834.byte 203
830 movl %eax, 8(%esp)
831 movl %ebx, 12(%esp)
832 call BF_decrypt
833 movl 8(%esp), %eax
834 movl 12(%esp), %ebx
835.byte 15
835 movl %eax, 8(%esp)
836 movl %ebx, 12(%esp)
837 call BF_decrypt
838 movl 8(%esp), %eax
839 movl 12(%esp), %ebx
840.byte 15
836.byte 200 # bswapl %eax
841.byte 200
837.byte 15
842.byte 15
838.byte 203 # bswapl %ebx
843.byte 203
839 movl 16(%esp), %ecx
840 movl 20(%esp), %edx
841 xorl %eax, %ecx
842 xorl %ebx, %edx
843 movl (%esi), %eax
844 movl 4(%esi), %ebx
845 movl %ecx, (%edi)
846 movl %edx, 4(%edi)
847 movl %eax, 16(%esp)
848 movl %ebx, 20(%esp)
849 addl $8, %esi
850 addl $8, %edi
851 subl $8, %ebp
844 movl 16(%esp), %ecx
845 movl 20(%esp), %edx
846 xorl %eax, %ecx
847 xorl %ebx, %edx
848 movl (%esi), %eax
849 movl 4(%esi), %ebx
850 movl %ecx, (%edi)
851 movl %edx, 4(%edi)
852 movl %eax, 16(%esp)
853 movl %ebx, 20(%esp)
854 addl $8, %esi
855 addl $8, %edi
856 subl $8, %ebp
852 jnz .L014decrypt_loop
853.L013decrypt_finish:
857 jnz .L015decrypt_loop
858.L014decrypt_finish:
854 movl 52(%esp), %ebp
855 andl $7, %ebp
856 jz .L003finish
857 movl (%esi), %eax
858 movl 4(%esi), %ebx
859.byte 15
859 movl 52(%esp), %ebp
860 andl $7, %ebp
861 jz .L003finish
862 movl (%esi), %eax
863 movl 4(%esi), %ebx
864.byte 15
860.byte 200 # bswapl %eax
865.byte 200
861.byte 15
866.byte 15
862.byte 203 # bswapl %ebx
867.byte 203
863 movl %eax, 8(%esp)
864 movl %ebx, 12(%esp)
865 call BF_decrypt
866 movl 8(%esp), %eax
867 movl 12(%esp), %ebx
868.byte 15
868 movl %eax, 8(%esp)
869 movl %ebx, 12(%esp)
870 call BF_decrypt
871 movl 8(%esp), %eax
872 movl 12(%esp), %ebx
873.byte 15
869.byte 200 # bswapl %eax
874.byte 200
870.byte 15
875.byte 15
871.byte 203 # bswapl %ebx
876.byte 203
872 movl 16(%esp), %ecx
873 movl 20(%esp), %edx
874 xorl %eax, %ecx
875 xorl %ebx, %edx
876 movl (%esi), %eax
877 movl 4(%esi), %ebx
877 movl 16(%esp), %ecx
878 movl 20(%esp), %edx
879 xorl %eax, %ecx
880 xorl %ebx, %edx
881 movl (%esi), %eax
882 movl 4(%esi), %ebx
878.L015dj7:
883.L016dj7:
879 rorl $16, %edx
880 movb %dl, 6(%edi)
881 shrl $16, %edx
884 rorl $16, %edx
885 movb %dl, 6(%edi)
886 shrl $16, %edx
882.L016dj6:
887.L017dj6:
883 movb %dh, 5(%edi)
888 movb %dh, 5(%edi)
884.L017dj5:
889.L018dj5:
885 movb %dl, 4(%edi)
890 movb %dl, 4(%edi)
886.L018dj4:
891.L019dj4:
887 movl %ecx, (%edi)
892 movl %ecx, (%edi)
888 jmp .L019djend
889.L020dj3:
893 jmp .L020djend
894.L021dj3:
890 rorl $16, %ecx
891 movb %cl, 2(%edi)
892 sall $16, %ecx
895 rorl $16, %ecx
896 movb %cl, 2(%edi)
897 sall $16, %ecx
893.L021dj2:
898.L022dj2:
894 movb %ch, 1(%esi)
899 movb %ch, 1(%esi)
895.L022dj1:
900.L023dj1:
896 movb %cl, (%esi)
901 movb %cl, (%esi)
897.L019djend:
902.L020djend:
898 jmp .L003finish
899.align 16
900.L003finish:
901 movl 60(%esp), %ecx
902 addl $24, %esp
903 movl %eax, (%ecx)
904 movl %ebx, 4(%ecx)
905 popl %edi
906 popl %esi
907 popl %ebx
908 popl %ebp
909 ret
910.align 16
903 jmp .L003finish
904.align 16
905.L003finish:
906 movl 60(%esp), %ecx
907 addl $24, %esp
908 movl %eax, (%ecx)
909 movl %ebx, 4(%ecx)
910 popl %edi
911 popl %esi
912 popl %ebx
913 popl %ebp
914 ret
915.align 16
911.L004cbc_enc_jmp_table:
916.L005cbc_enc_jmp_table:
912 .long 0
917 .long 0
913 .long .L012ej1
914 .long .L011ej2
915 .long .L010ej3
916 .long .L008ej4
917 .long .L007ej5
918 .long .L006ej6
919 .long .L005ej7
920.align 16
921.L023cbc_dec_jmp_table:
922 .long 0
923 .long .L022dj1
924 .long .L021dj2
925 .long .L020dj3
926 .long .L018dj4
927 .long .L017dj5
928 .long .L016dj6
929 .long .L015dj7
918 .long .L013ej1-.L004PIC_point
919 .long .L012ej2-.L004PIC_point
920 .long .L011ej3-.L004PIC_point
921 .long .L009ej4-.L004PIC_point
922 .long .L008ej5-.L004PIC_point
923 .long .L007ej6-.L004PIC_point
924 .long .L006ej7-.L004PIC_point
930.L_BF_cbc_encrypt_end:
931 .size BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt
932.ident "desasm.pl"
925.L_BF_cbc_encrypt_end:
926 .size BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt
927.ident "desasm.pl"