I have the following code :
CMP BYTE PTR [ESP+5],61 ; ESP is 0012F9AC
JNZ SHORT ....
The following is in the memory
Address Data
0012F9AC 0012FA94
0012F9B0 61616161
0012F9B4 61616161
Now, the way I understand it is that it is comparing 0x61 to the value at (0x0012F9AC + 5) which is 0x12F9B1. According to the memory 'dump' the value at address 0x12F9B1 is 0x61. So why is it still insisting on doing the jump ?
Sorry, not and expert in assembly, but is the ,61 really 0x61? You could try ,97 as a quick check.
Update: I see blackbear got there first with the same comment.