You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
movesi,dword ptr ds:[ebx] ; Get pointer to first vtable entry of UObject.push0leaedx,dword ptr ss:[ebp+8]pushedxpush0pusheaxpushecxmovecx,ebxmovss dword ptr ss:[ebp+8],xmm0call borderlandspresequel.10A0920movedx,dword ptr ds:[esi+E8] ; Index into vtable to get address of ProcessEventpusheaxmovecx,ebx ; ecx = ebx = this pointer = UObject we're calling ProcessEvent oncalledx ; Call ProcessEvent
The [esi+E8] suggests that the vtable index for ProcessEvent is 0xE8 / 4 = 58.
I'm assuming our detoured function will need to use the fastcall calling convention and ignore edx as the second parameter since Rust doesn't have a stable thiscall calling convention I could use in this scenario. Otherwise, I'm not sure how we would access the this pointer (which is the UObject that is calling ProcessEvent as a member function) that the game will store in ecx.
The text was updated successfully, but these errors were encountered:
I believe the following is the beginning of
ProcessEvent
:And here's one of the call sites:
The
[esi+E8]
suggests that the vtable index forProcessEvent
is0xE8 / 4 = 58
.I'm assuming our detoured function will need to use the
fastcall
calling convention and ignoreedx
as the second parameter since Rust doesn't have a stablethiscall
calling convention I could use in this scenario. Otherwise, I'm not sure how we would access thethis
pointer (which is theUObject
that is callingProcessEvent
as a member function) that the game will store inecx
.The text was updated successfully, but these errors were encountered: