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"
|