Shouldn't that be "PUSH EDX" instead of "PUSH RDX"? Or perhaps a PUSH dword ptr 0/PUSH EDX combo if you really need to push 64-bits? Wondering if maybe it ends up being unaligned and doesn't like it? Prior x86 modes don't care about alignment, but perhaps it does for x64 instructions?