It would work...

It would be too long to realistically do in normal code.

You'd have to use ASM.

I'm going on holiday in an hour but if you post your msn/e-mail or whatever. when I get back we can talk.