As a brief background, I found seven (end-point) addresses that correspond to the player's health. The first six are identical in nature to those I found and talked about in the aforementioned thread: they just seem to be part of a singly-linked list that are constantly being updated.
The seventh address is the "magic" address I need to backtrack as it is that location which seems to be governing all the rest: changing it instantly updates all the others, changing it changes it in-game, freezing it freezes it in-game, etc.
Simple so far, right?
Well, to cut to the chase, as the above screen shot shows, doing a the "Find what writes to this address" yields one result (good!), but the assembly code in this case is meaningless without seeing it in context, i.e., I need to look at the code to see how the game calculated the value in the ESI register, but when I right-click on it and try to view it in the debugger, I get garbage code. (Rest easy, L. Spiro. Even Visual Studio showed the same garbage code when I tried using it instead.)
So to sum up:
- Found address 20BB1790h points to health;
- Had MHS tell me what writes to that, but it basically just gave me a circular reference: address/offset = 20BB178Ch+4h;
- Did a pointer (and data for that matter) search for 20BB178Ch but got zero hits, so I have to look at preceding lines of code to determine how it was calculated; and finally
- Brought up the code in the debugger to do just that but only garbage code is displayed (same garbage code shows up in Visual Studio as well).
How do I proceed?
P.S. Doing a "find what accesses" instead of "find what writes to" pretty much yields the same results as described above.