aobscanmodule(FLYSPEED,trove.exe,0F 28 1D B0 98 B5 00 0F 58 26) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
newmem:
code:
movaps xmm3,[trove.AK::MotionEngine::SetPlayerVolume+4A5A90]
jmp return
FLYSPEED:
jmp code
nop
nop
return:
registersymbol(FLYSPEED)
FLYSPEED:
db 0F 28 1D B0 98 B5 00
unregistersymbol(FLYSPEED)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "trove.exe"+39417A
"trove.exe"+394154: 0F 57 C0 - xorps xmm0,xmm0
"trove.exe"+394157: 0F 14 C8 - unpcklps xmm1,xmm0
"trove.exe"+39415A: F3 0F 10 47 38 - movss xmm0,[edi+38]
"trove.exe"+39415F: 0F 29 4D B0 - movaps [ebp-50],xmm1
"trove.exe"+394163: 0F 29 45 D0 - movaps [ebp-30],xmm0
"trove.exe"+394167: E8 54 89 DC FF - call trove.exe+15CAC0
"trove.exe"+39416C: 0F 28 65 D0 - movaps xmm4,[ebp-30]
"trove.exe"+394170: 8B 73 08 - mov esi,[ebx+08]
"trove.exe"+394173: 0F C6 E4 00 - shufps xmm4,xmm4,00
"trove.exe"+394177: 0F 59 20 - mulps xmm4,[eax]
// ---------- INJECTING HERE ----------
"trove.exe"+39417A: 0F 28 1D B0 98 05 01 - movaps xmm3,[trove.exe+7E98B0]
// ---------- DONE INJECTING ----------
"trove.exe"+394181: 0F 58 26 - addps xmm4,[esi]
"trove.exe"+394184: 0F 28 CC - movaps xmm1,xmm4
"trove.exe"+394187: 0F 59 CC - mulps xmm1,xmm4
"trove.exe"+39418A: 0F 28 D1 - movaps xmm2,xmm1
"trove.exe"+39418D: 0F 28 C1 - movaps xmm0,xmm1
"trove.exe"+394190: 0F C6 C1 55 - shufps xmm0,xmm1,55
"trove.exe"+394194: 0F C6 D1 AA - shufps xmm2,xmm1,-56
"trove.exe"+394198: 0F 58 D0 - addps xmm2,xmm0
"trove.exe"+39419B: 0F C6 C9 00 - shufps xmm1,xmm1,00
"trove.exe"+39419F: 0F 28 05 80 57 0A 01 - movaps xmm0,[trove.exe+835780]
}