diff options
| author | cvs2svn <admin@example.com> | 1998-10-19 21:47:12 +0000 |
|---|---|---|
| committer | cvs2svn <admin@example.com> | 1998-10-19 21:47:12 +0000 |
| commit | 5170039cf1df2194faa85741f0733977525cd5c0 (patch) | |
| tree | c667406046ddb1efca5ed4316b02e43494241660 /src/lib/libcrypto/rc4/asm/r4-win32.asm | |
| parent | 536c76cbb863bab152f19842ab88772c01e922c7 (diff) | |
| download | openbsd-OPENBSD_2_4_BASE.tar.gz openbsd-OPENBSD_2_4_BASE.tar.bz2 openbsd-OPENBSD_2_4_BASE.zip | |
This commit was manufactured by cvs2git to create tag 'OPENBSD_2_4_BASE'.OPENBSD_2_4_BASE
Diffstat (limited to 'src/lib/libcrypto/rc4/asm/r4-win32.asm')
| -rw-r--r-- | src/lib/libcrypto/rc4/asm/r4-win32.asm | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/src/lib/libcrypto/rc4/asm/r4-win32.asm b/src/lib/libcrypto/rc4/asm/r4-win32.asm new file mode 100644 index 0000000000..70b0f7484c --- /dev/null +++ b/src/lib/libcrypto/rc4/asm/r4-win32.asm | |||
| @@ -0,0 +1,314 @@ | |||
| 1 | ; Don't even think of reading this code | ||
| 2 | ; It was automatically generated by rc4-586.pl | ||
| 3 | ; Which is a perl program used to generate the x86 assember for | ||
| 4 | ; any of elf, a.out, BSDI,Win32, or Solaris | ||
| 5 | ; eric <eay@cryptsoft.com> | ||
| 6 | ; | ||
| 7 | TITLE rc4-586.asm | ||
| 8 | .386 | ||
| 9 | .model FLAT | ||
| 10 | _TEXT SEGMENT | ||
| 11 | PUBLIC _RC4 | ||
| 12 | |||
| 13 | _RC4 PROC NEAR | ||
| 14 | ; | ||
| 15 | push ebp | ||
| 16 | push ebx | ||
| 17 | mov ebp, DWORD PTR 12[esp] | ||
| 18 | mov ebx, DWORD PTR 16[esp] | ||
| 19 | push esi | ||
| 20 | push edi | ||
| 21 | mov ecx, DWORD PTR [ebp] | ||
| 22 | mov edx, DWORD PTR 4[ebp] | ||
| 23 | mov esi, DWORD PTR 28[esp] | ||
| 24 | inc ecx | ||
| 25 | sub esp, 12 | ||
| 26 | add ebp, 8 | ||
| 27 | and ecx, 255 | ||
| 28 | lea ebx, DWORD PTR [esi+ebx-8] | ||
| 29 | mov edi, DWORD PTR 44[esp] | ||
| 30 | mov DWORD PTR 8[esp],ebx | ||
| 31 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 32 | cmp ebx, esi | ||
| 33 | jl $L000end | ||
| 34 | L001start: | ||
| 35 | add esi, 8 | ||
| 36 | ; Round 0 | ||
| 37 | add edx, eax | ||
| 38 | and edx, 255 | ||
| 39 | inc ecx | ||
| 40 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 41 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 42 | add ebx, eax | ||
| 43 | and ecx, 255 | ||
| 44 | and ebx, 255 | ||
| 45 | mov DWORD PTR [edx*4+ebp],eax | ||
| 46 | nop | ||
| 47 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 48 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 49 | mov BYTE PTR [esp], bl | ||
| 50 | ; Round 1 | ||
| 51 | add edx, eax | ||
| 52 | and edx, 255 | ||
| 53 | inc ecx | ||
| 54 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 55 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 56 | add ebx, eax | ||
| 57 | and ecx, 255 | ||
| 58 | and ebx, 255 | ||
| 59 | mov DWORD PTR [edx*4+ebp],eax | ||
| 60 | nop | ||
| 61 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 62 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 63 | mov BYTE PTR 1[esp],bl | ||
| 64 | ; Round 2 | ||
| 65 | add edx, eax | ||
| 66 | and edx, 255 | ||
| 67 | inc ecx | ||
| 68 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 69 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 70 | add ebx, eax | ||
| 71 | and ecx, 255 | ||
| 72 | and ebx, 255 | ||
| 73 | mov DWORD PTR [edx*4+ebp],eax | ||
| 74 | nop | ||
| 75 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 76 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 77 | mov BYTE PTR 2[esp],bl | ||
| 78 | ; Round 3 | ||
| 79 | add edx, eax | ||
| 80 | and edx, 255 | ||
| 81 | inc ecx | ||
| 82 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 83 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 84 | add ebx, eax | ||
| 85 | and ecx, 255 | ||
| 86 | and ebx, 255 | ||
| 87 | mov DWORD PTR [edx*4+ebp],eax | ||
| 88 | nop | ||
| 89 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 90 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 91 | mov BYTE PTR 3[esp],bl | ||
| 92 | ; Round 4 | ||
| 93 | add edx, eax | ||
| 94 | and edx, 255 | ||
| 95 | inc ecx | ||
| 96 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 97 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 98 | add ebx, eax | ||
| 99 | and ecx, 255 | ||
| 100 | and ebx, 255 | ||
| 101 | mov DWORD PTR [edx*4+ebp],eax | ||
| 102 | nop | ||
| 103 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 104 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 105 | mov BYTE PTR 4[esp],bl | ||
| 106 | ; Round 5 | ||
| 107 | add edx, eax | ||
| 108 | and edx, 255 | ||
| 109 | inc ecx | ||
| 110 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 111 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 112 | add ebx, eax | ||
| 113 | and ecx, 255 | ||
| 114 | and ebx, 255 | ||
| 115 | mov DWORD PTR [edx*4+ebp],eax | ||
| 116 | nop | ||
| 117 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 118 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 119 | mov BYTE PTR 5[esp],bl | ||
| 120 | ; Round 6 | ||
| 121 | add edx, eax | ||
| 122 | and edx, 255 | ||
| 123 | inc ecx | ||
| 124 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 125 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 126 | add ebx, eax | ||
| 127 | and ecx, 255 | ||
| 128 | and ebx, 255 | ||
| 129 | mov DWORD PTR [edx*4+ebp],eax | ||
| 130 | nop | ||
| 131 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 132 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 133 | mov BYTE PTR 6[esp],bl | ||
| 134 | ; Round 7 | ||
| 135 | add edx, eax | ||
| 136 | and edx, 255 | ||
| 137 | inc ecx | ||
| 138 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 139 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 140 | add ebx, eax | ||
| 141 | and ecx, 255 | ||
| 142 | and ebx, 255 | ||
| 143 | mov DWORD PTR [edx*4+ebp],eax | ||
| 144 | nop | ||
| 145 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 146 | add edi, 8 | ||
| 147 | mov BYTE PTR 7[esp],bl | ||
| 148 | ; apply the cipher text | ||
| 149 | mov eax, DWORD PTR [esp] | ||
| 150 | mov ebx, DWORD PTR [esi-8] | ||
| 151 | xor eax, ebx | ||
| 152 | mov ebx, DWORD PTR [esi-4] | ||
| 153 | mov DWORD PTR [edi-8],eax | ||
| 154 | mov eax, DWORD PTR 4[esp] | ||
| 155 | xor eax, ebx | ||
| 156 | mov ebx, DWORD PTR 8[esp] | ||
| 157 | mov DWORD PTR [edi-4],eax | ||
| 158 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 159 | cmp esi, ebx | ||
| 160 | jle L001start | ||
| 161 | $L000end: | ||
| 162 | ; Round 0 | ||
| 163 | add ebx, 8 | ||
| 164 | inc esi | ||
| 165 | cmp ebx, esi | ||
| 166 | jl $L002finished | ||
| 167 | mov DWORD PTR 8[esp],ebx | ||
| 168 | add edx, eax | ||
| 169 | and edx, 255 | ||
| 170 | inc ecx | ||
| 171 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 172 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 173 | add ebx, eax | ||
| 174 | and ecx, 255 | ||
| 175 | and ebx, 255 | ||
| 176 | mov DWORD PTR [edx*4+ebp],eax | ||
| 177 | nop | ||
| 178 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 179 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 180 | mov bh, BYTE PTR [esi-1] | ||
| 181 | xor bl, bh | ||
| 182 | mov BYTE PTR [edi], bl | ||
| 183 | ; Round 1 | ||
| 184 | mov ebx, DWORD PTR 8[esp] | ||
| 185 | cmp ebx, esi | ||
| 186 | jle $L002finished | ||
| 187 | inc esi | ||
| 188 | add edx, eax | ||
| 189 | and edx, 255 | ||
| 190 | inc ecx | ||
| 191 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 192 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 193 | add ebx, eax | ||
| 194 | and ecx, 255 | ||
| 195 | and ebx, 255 | ||
| 196 | mov DWORD PTR [edx*4+ebp],eax | ||
| 197 | nop | ||
| 198 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 199 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 200 | mov bh, BYTE PTR [esi-1] | ||
| 201 | xor bl, bh | ||
| 202 | mov BYTE PTR 1[edi],bl | ||
| 203 | ; Round 2 | ||
| 204 | mov ebx, DWORD PTR 8[esp] | ||
| 205 | cmp ebx, esi | ||
| 206 | jle $L002finished | ||
| 207 | inc esi | ||
| 208 | add edx, eax | ||
| 209 | and edx, 255 | ||
| 210 | inc ecx | ||
| 211 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 212 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 213 | add ebx, eax | ||
| 214 | and ecx, 255 | ||
| 215 | and ebx, 255 | ||
| 216 | mov DWORD PTR [edx*4+ebp],eax | ||
| 217 | nop | ||
| 218 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 219 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 220 | mov bh, BYTE PTR [esi-1] | ||
| 221 | xor bl, bh | ||
| 222 | mov BYTE PTR 2[edi],bl | ||
| 223 | ; Round 3 | ||
| 224 | mov ebx, DWORD PTR 8[esp] | ||
| 225 | cmp ebx, esi | ||
| 226 | jle $L002finished | ||
| 227 | inc esi | ||
| 228 | add edx, eax | ||
| 229 | and edx, 255 | ||
| 230 | inc ecx | ||
| 231 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 232 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 233 | add ebx, eax | ||
| 234 | and ecx, 255 | ||
| 235 | and ebx, 255 | ||
| 236 | mov DWORD PTR [edx*4+ebp],eax | ||
| 237 | nop | ||
| 238 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 239 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 240 | mov bh, BYTE PTR [esi-1] | ||
| 241 | xor bl, bh | ||
| 242 | mov BYTE PTR 3[edi],bl | ||
| 243 | ; Round 4 | ||
| 244 | mov ebx, DWORD PTR 8[esp] | ||
| 245 | cmp ebx, esi | ||
| 246 | jle $L002finished | ||
| 247 | inc esi | ||
| 248 | add edx, eax | ||
| 249 | and edx, 255 | ||
| 250 | inc ecx | ||
| 251 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 252 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 253 | add ebx, eax | ||
| 254 | and ecx, 255 | ||
| 255 | and ebx, 255 | ||
| 256 | mov DWORD PTR [edx*4+ebp],eax | ||
| 257 | nop | ||
| 258 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 259 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 260 | mov bh, BYTE PTR [esi-1] | ||
| 261 | xor bl, bh | ||
| 262 | mov BYTE PTR 4[edi],bl | ||
| 263 | ; Round 5 | ||
| 264 | mov ebx, DWORD PTR 8[esp] | ||
| 265 | cmp ebx, esi | ||
| 266 | jle $L002finished | ||
| 267 | inc esi | ||
| 268 | add edx, eax | ||
| 269 | and edx, 255 | ||
| 270 | inc ecx | ||
| 271 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 272 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 273 | add ebx, eax | ||
| 274 | and ecx, 255 | ||
| 275 | and ebx, 255 | ||
| 276 | mov DWORD PTR [edx*4+ebp],eax | ||
| 277 | nop | ||
| 278 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 279 | mov eax, DWORD PTR [ecx*4+ebp] | ||
| 280 | mov bh, BYTE PTR [esi-1] | ||
| 281 | xor bl, bh | ||
| 282 | mov BYTE PTR 5[edi],bl | ||
| 283 | ; Round 6 | ||
| 284 | mov ebx, DWORD PTR 8[esp] | ||
| 285 | cmp ebx, esi | ||
| 286 | jle $L002finished | ||
| 287 | inc esi | ||
| 288 | add edx, eax | ||
| 289 | and edx, 255 | ||
| 290 | inc ecx | ||
| 291 | mov ebx, DWORD PTR [edx*4+ebp] | ||
| 292 | mov DWORD PTR [ecx*4+ebp-4],ebx | ||
| 293 | add ebx, eax | ||
| 294 | and ecx, 255 | ||
| 295 | and ebx, 255 | ||
| 296 | mov DWORD PTR [edx*4+ebp],eax | ||
| 297 | nop | ||
| 298 | mov ebx, DWORD PTR [ebx*4+ebp] | ||
| 299 | mov bh, BYTE PTR [esi-1] | ||
| 300 | xor bl, bh | ||
| 301 | mov BYTE PTR 6[edi],bl | ||
| 302 | $L002finished: | ||
| 303 | dec ecx | ||
| 304 | add esp, 12 | ||
| 305 | mov DWORD PTR [ebp-4],edx | ||
| 306 | mov BYTE PTR [ebp-8],cl | ||
| 307 | pop edi | ||
| 308 | pop esi | ||
| 309 | pop ebx | ||
| 310 | pop ebp | ||
| 311 | ret | ||
| 312 | _RC4 ENDP | ||
| 313 | _TEXT ENDS | ||
| 314 | END | ||
