I looked at the code. It's sill not the complete function code. I don't see code where EBX register is set or pushed on stack.
Anyway, this is my observation. Register ESI holds the pointer to the object, which is being used heavily in the function. If the code takes the je jump, a lot more happens to the object in ESI. You need to investigate what happens to the variables in the object.
To do that, do following steps:
1. Start the game don''t do anything.
2. Set a break point on cmp instruction. to get to the code, do manual AOB scan and do 'Disassemble this memory region'
3. Do the action in game which executes the function.
4. When the execution breaks there get address in ESI register and do dissect datastructure on it.
5. Take screen shot of all values (at least till offset 168 or more)
6. Now press F9 it'll resume execution.
7. Now look at 'Structure dissect' window and compare new values with the values in screenshot. This will give you some idea about what is missing on the object that makes the game crash.
8. Don't close the game. Now set break point on line [ICODE] call dword ptr [edx*4+0052A3B8][/ICODE]. Perform action again.
9. When execution breaks on the line. Press F7 it'll go in the function.
10. Now check in that function what variables from the object are being used. And what values are expected.
11. Also try to post the function code here.
If you are using this for yourself then, a workaround could be, to set a hot key to the cheat where you nop the jump. Then when you start a game perform the action which calls the function. Then whenever you want to activate the game feature press hot key to activate the cheat then push the button in game.
Anything Cheat Engine related, bugs, suggestions, helping others, etc..
Users browsing this forum: No registered users