Yes it is a great challenge and I don't want to do like everyone does. A big problem will be to detect alignment because it does not always use NOP but prefixes. It is hard to find valid informations and when found it is hard to understand.
Rather than taking the opcode in tables, I search all the possibilities. For now I have found 80 000 cases but I am reducing this number drasticaly. In my test I added prefixes that are not used in normal coding. For example if the 66h prefix is before a REX prefix, the REX prefix has the priority so the 66h has no reason to be there.
Now I have many docs that correct the error I have made. The X64 is a strange processor, for me it is an X32 extended, with just 64 bits registers but it can't address memory > 32 bits! You can address the same memory with a 64 bits register or with a 32 bits register!
With this processor you always change from 16 bits to 32 bits to 64 bits! You loose speed. I think that it is better to stay in 64 bits mode and don't use 32 or 16 bits.
That means when calling a windows function don't put on the stack 32 bits registers but 64 bits registers. That creates more trafic on band width.
Thank you to support me
A+
Philippe