8 local($name,$enc)=@_;
\r
10 &function_begin($name,4,"");
\r
13 &comment("Load the data words");
\r
14 &mov("ebx",&wparam(0));
\r
15 &mov($L,&DWP(0,"ebx","",0));
\r
16 &mov($R,&DWP(4,"ebx","",0));
\r
20 &IP_new($L,$R,"edx",0);
\r
26 &mov(&DWP(4,"ebx","",0),$R);
\r
27 &mov("eax",&wparam(1));
\r
28 &mov(&DWP(0,"ebx","",0),"edx");
\r
29 &mov("edi",&wparam(2));
\r
30 &mov("esi",&wparam(3));
\r
34 &mov(&DWP(4,"ebx","",0),$R);
\r
35 &mov("esi",&wparam(1));
\r
36 &mov(&DWP(0,"ebx","",0),"edx");
\r
37 &mov("edi",&wparam(2));
\r
38 &mov("eax",&wparam(3));
\r
40 &push(($enc)?"1":"0");
\r
43 &call("des_encrypt2");
\r
44 &push(($enc)?"0":"1");
\r
47 &call("des_encrypt2");
\r
48 &push(($enc)?"1":"0");
\r
51 &call("des_encrypt2");
\r
53 &mov($L,&DWP(0,"ebx","",0));
\r
55 &mov($R,&DWP(4,"ebx","",0));
\r
59 &FP_new($L,$R,"eax",0);
\r
61 &mov(&DWP(0,"ebx","",0),"eax");
\r
62 &mov(&DWP(4,"ebx","",0),$R);
\r
64 &function_end($name);
\r