A program I'm investigating has the following code (disassembled by IDA with some light censorship by me):
__text:....B9 call <redacted>
__text:....BE nop
__text:....BF nop dword ptr [rax+00h]
I have two questions. First, why would the compiler have inserted these nops? They don't appear to be for any alignment purpose.
Second, what is that nop with a relative addressing argument? Its hex is 0F 1F 40 00. Looking at http://ref.x86asm.net/, this does appear to be an instruction called "hintable NOP", but I'm having trouble finding relevant information about it.
By the way, the next instruction starts at ....C3 and is a real/productive instruction (that is, not a nop or anything morally equivalent to a nop).