
Here are some examples to compile. Notice that CA will ignore this text just
as it would ignore ASM code. It only cares for the lines which start with '#'.
When you examine the output code, keep in mind the precedence of the operators
used.

#       ebx>>=edx*2+ecx;
#       ecx=edi|esi&edx^ecx-ebx|ebp^eax;
#       edx=eax-ebx*5&[ecx+edx*2+:equate0]|[esi+edi];

The same first 3 examples, except now all registers but the ones explicitly
modified will be preserved.

#7fh    ebx>>=edx*2+ecx;
#       ecx=edi|esi&edx^ecx-ebx|ebp^eax;
#       edx=eax-ebx*5&[ecx+edx*2+:equate0]|[esi+edi];

Back to preserving no regs.

#0      ebx=-[ecx+~(eax*2)];
#       edx=10h+16+10000b;
#       mem0=eax<<<[esi+[edi]];
#       ecx=edx/eax;
#       esi*=12345678h+&mem0+ecx+:equate0+8*ebx;
#       mem0=+(mem1/mem2);
#       mem0=mem1=eax=mem2=mem3;
#       edi=(ecx*mem0)+(ebx>>2)+mem1;
#       edi=[ebp]/([edi]/([esi]/([edx]/([ecx]:/([ebx]%[eax])))));
#       eax=[(ebx=[(ecx=[(edx=[(esi=[(edi=[(ebp=[eax])+ebx])+ecx])+edx])+esi])+edi])+ebp];
#       mem0=eax=[ebx=[ecx=[edx=[esi=[edi=[ebp=[eax]]]]]]];

Now, preserving EAX, EBX, ECX, and EDX.

#0fh    mem0/=mem1*mem2*1000h;
#       ebp<<<=ecx<<=eax;
#       mem0^=edi%10000h;
#       eax=(****ebx:>>ecx):/edx;
#       mem0-=+eax-+ebx++[ecx*edx];

