I have a minidump of a crash. At the point of the crash, there is some weird looking code that shouldn't ever run successfully. Something like:
call AnObject::AFunction
test byte ptr [eax],cl
AnObject::AFunction is a member function that returns bool. So the result should be stored in eax as either 0 or 1. It does not make sense to dereference eax at this point.
I disassembled the corresponding binary and indeed, the code is different in this function:
call AnObject::AFunction
test al, al
Why on earth would the minidump disassembly code be different from the actual binary disassembly code?