1 ; Don't even think of reading this code
\r
2 ; It was automatically generated by bf586.pl
\r
3 ; Which is a perl program used to generate the x86 assember for
\r
4 ; any of elf, a.out, Win32, or Solaris
\r
5 ; It can be found in SSLeay 0.7.0+
\r
6 ; eric <eay@cryptsoft.com>
\r
13 _BF_encrypt PROC NEAR
\r
20 mov eax, DWORD PTR 20[esp]
\r
21 mov ecx, DWORD PTR [eax]
\r
22 mov edx, DWORD PTR 4[eax]
\r
24 ; P pointer, s and enc flag
\r
25 mov edi, DWORD PTR 24[esp]
\r
28 mov ebp, DWORD PTR 28[esp]
\r
30 je $L000start_decrypt
\r
31 xor ecx, DWORD PTR [edi]
\r
35 mov esi, DWORD PTR 4[edi]
\r
40 mov esi, DWORD PTR 72[eax*4+edi]
\r
41 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
45 mov eax, DWORD PTR 2120[eax*4+edi]
\r
47 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
54 mov esi, DWORD PTR 8[edi]
\r
59 mov esi, DWORD PTR 72[eax*4+edi]
\r
60 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
64 mov eax, DWORD PTR 2120[eax*4+edi]
\r
66 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
73 mov esi, DWORD PTR 12[edi]
\r
78 mov esi, DWORD PTR 72[eax*4+edi]
\r
79 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
83 mov eax, DWORD PTR 2120[eax*4+edi]
\r
85 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
92 mov esi, DWORD PTR 16[edi]
\r
97 mov esi, DWORD PTR 72[eax*4+edi]
\r
98 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
102 mov eax, DWORD PTR 2120[eax*4+edi]
\r
104 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
111 mov esi, DWORD PTR 20[edi]
\r
116 mov esi, DWORD PTR 72[eax*4+edi]
\r
117 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
121 mov eax, DWORD PTR 2120[eax*4+edi]
\r
123 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
130 mov esi, DWORD PTR 24[edi]
\r
135 mov esi, DWORD PTR 72[eax*4+edi]
\r
136 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
140 mov eax, DWORD PTR 2120[eax*4+edi]
\r
142 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
149 mov esi, DWORD PTR 28[edi]
\r
154 mov esi, DWORD PTR 72[eax*4+edi]
\r
155 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
159 mov eax, DWORD PTR 2120[eax*4+edi]
\r
161 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
168 mov esi, DWORD PTR 32[edi]
\r
173 mov esi, DWORD PTR 72[eax*4+edi]
\r
174 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
178 mov eax, DWORD PTR 2120[eax*4+edi]
\r
180 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
187 mov esi, DWORD PTR 36[edi]
\r
192 mov esi, DWORD PTR 72[eax*4+edi]
\r
193 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
197 mov eax, DWORD PTR 2120[eax*4+edi]
\r
199 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
206 mov esi, DWORD PTR 40[edi]
\r
211 mov esi, DWORD PTR 72[eax*4+edi]
\r
212 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
216 mov eax, DWORD PTR 2120[eax*4+edi]
\r
218 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
225 mov esi, DWORD PTR 44[edi]
\r
230 mov esi, DWORD PTR 72[eax*4+edi]
\r
231 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
235 mov eax, DWORD PTR 2120[eax*4+edi]
\r
237 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
244 mov esi, DWORD PTR 48[edi]
\r
249 mov esi, DWORD PTR 72[eax*4+edi]
\r
250 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
254 mov eax, DWORD PTR 2120[eax*4+edi]
\r
256 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
263 mov esi, DWORD PTR 52[edi]
\r
268 mov esi, DWORD PTR 72[eax*4+edi]
\r
269 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
273 mov eax, DWORD PTR 2120[eax*4+edi]
\r
275 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
282 mov esi, DWORD PTR 56[edi]
\r
287 mov esi, DWORD PTR 72[eax*4+edi]
\r
288 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
292 mov eax, DWORD PTR 2120[eax*4+edi]
\r
294 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
301 mov esi, DWORD PTR 60[edi]
\r
306 mov esi, DWORD PTR 72[eax*4+edi]
\r
307 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
311 mov eax, DWORD PTR 2120[eax*4+edi]
\r
313 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
320 mov esi, DWORD PTR 64[edi]
\r
325 mov esi, DWORD PTR 72[eax*4+edi]
\r
326 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
330 mov eax, DWORD PTR 2120[eax*4+edi]
\r
332 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
336 xor edx, DWORD PTR 68[edi]
\r
337 mov eax, DWORD PTR 20[esp]
\r
338 mov DWORD PTR [eax],edx
\r
339 mov DWORD PTR 4[eax],ecx
\r
345 $L000start_decrypt:
\r
346 xor ecx, DWORD PTR 68[edi]
\r
350 mov esi, DWORD PTR 64[edi]
\r
355 mov esi, DWORD PTR 72[eax*4+edi]
\r
356 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
360 mov eax, DWORD PTR 2120[eax*4+edi]
\r
362 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
369 mov esi, DWORD PTR 60[edi]
\r
374 mov esi, DWORD PTR 72[eax*4+edi]
\r
375 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
379 mov eax, DWORD PTR 2120[eax*4+edi]
\r
381 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
388 mov esi, DWORD PTR 56[edi]
\r
393 mov esi, DWORD PTR 72[eax*4+edi]
\r
394 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
398 mov eax, DWORD PTR 2120[eax*4+edi]
\r
400 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
407 mov esi, DWORD PTR 52[edi]
\r
412 mov esi, DWORD PTR 72[eax*4+edi]
\r
413 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
417 mov eax, DWORD PTR 2120[eax*4+edi]
\r
419 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
426 mov esi, DWORD PTR 48[edi]
\r
431 mov esi, DWORD PTR 72[eax*4+edi]
\r
432 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
436 mov eax, DWORD PTR 2120[eax*4+edi]
\r
438 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
445 mov esi, DWORD PTR 44[edi]
\r
450 mov esi, DWORD PTR 72[eax*4+edi]
\r
451 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
455 mov eax, DWORD PTR 2120[eax*4+edi]
\r
457 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
464 mov esi, DWORD PTR 40[edi]
\r
469 mov esi, DWORD PTR 72[eax*4+edi]
\r
470 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
474 mov eax, DWORD PTR 2120[eax*4+edi]
\r
476 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
483 mov esi, DWORD PTR 36[edi]
\r
488 mov esi, DWORD PTR 72[eax*4+edi]
\r
489 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
493 mov eax, DWORD PTR 2120[eax*4+edi]
\r
495 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
502 mov esi, DWORD PTR 32[edi]
\r
507 mov esi, DWORD PTR 72[eax*4+edi]
\r
508 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
512 mov eax, DWORD PTR 2120[eax*4+edi]
\r
514 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
521 mov esi, DWORD PTR 28[edi]
\r
526 mov esi, DWORD PTR 72[eax*4+edi]
\r
527 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
531 mov eax, DWORD PTR 2120[eax*4+edi]
\r
533 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
540 mov esi, DWORD PTR 24[edi]
\r
545 mov esi, DWORD PTR 72[eax*4+edi]
\r
546 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
550 mov eax, DWORD PTR 2120[eax*4+edi]
\r
552 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
559 mov esi, DWORD PTR 20[edi]
\r
564 mov esi, DWORD PTR 72[eax*4+edi]
\r
565 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
569 mov eax, DWORD PTR 2120[eax*4+edi]
\r
571 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
578 mov esi, DWORD PTR 16[edi]
\r
583 mov esi, DWORD PTR 72[eax*4+edi]
\r
584 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
588 mov eax, DWORD PTR 2120[eax*4+edi]
\r
590 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
597 mov esi, DWORD PTR 12[edi]
\r
602 mov esi, DWORD PTR 72[eax*4+edi]
\r
603 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
607 mov eax, DWORD PTR 2120[eax*4+edi]
\r
609 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
616 mov esi, DWORD PTR 8[edi]
\r
621 mov esi, DWORD PTR 72[eax*4+edi]
\r
622 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
626 mov eax, DWORD PTR 2120[eax*4+edi]
\r
628 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
635 mov esi, DWORD PTR 4[edi]
\r
640 mov esi, DWORD PTR 72[eax*4+edi]
\r
641 mov ebp, DWORD PTR 1096[ebx*4+edi]
\r
645 mov eax, DWORD PTR 2120[eax*4+edi]
\r
647 mov ebp, DWORD PTR 3144[ebx*4+edi]
\r
651 xor edx, DWORD PTR [edi]
\r
652 mov eax, DWORD PTR 20[esp]
\r
653 mov DWORD PTR [eax],edx
\r
654 mov DWORD PTR 4[eax],ecx
\r