The offsets changed - a normal behavior after a new update.
Code: Select all
[ENABLE]
alloc(newmem,2048,DawnOfMan:Being:getAge+12)
label(returnhere)
label(originalcode)
label(exit)
newmem:
cmp byte ptr [rax+5C],1
jne originalcode
cmp [rax+58],#30
jle originalcode
mov [rax+40],#1
mov [rax+50],(float)0
mov [rax+58],#20
originalcode:
movsxd rax,dword ptr [rax+40]
add rsp,08
exit:
jmp returnhere
DawnOfMan:Being:getAge+12:
jmp newmem
nop
nop
nop
returnhere:
[DISABLE]
dealloc(newmem)
DawnOfMan:Being:getAge+12:
movsxd rax,dword ptr [rax+40]
add rsp,08
//Alt: db 48 63 40 40 48 83 C4 08
Code: Select all
[ENABLE]
alloc(newmem,2048,DawnOfMan:Human:getMorale+b)
label(returnhere)
label(originalcode)
label(exit)
alloc(tempmem,4)
registersymbol(morale_p)
alloc(morale_p,4)
newmem:
mov [tempmem],rdx
mov rdx,[rax+00000090] //hydration
mov rdx,[rdx+10]
mov [rdx+14],(float)1
mov [tempmem],rdx
mov rdx,[rax+00000098] //nutrition
mov rdx,[rdx+10]
mov [rdx+14],(float)1
mov [tempmem],rdx
mov rdx,[rax+000000A0] //health
mov rdx,[rdx+10]
mov [rdx+14],(float)1
mov [tempmem],rdx
mov rdx,[rax+000000A8] //temperature
mov rdx,[rdx+10]
mov [rdx+14],(float)1
mov rdx,[tempmem]
mov rdx,[rax+000000B0] //Stamina
mov rdx,[rdx+10]
mov [rdx+14],(float)1
mov rdx,[tempmem]
mov rdx,[rax+000000D8] //Rest
mov rdx,[rdx+10]
mov [rdx+14],(float)1
mov rdx,[tempmem]
mov rdx,[rax+000000E0] //Morale
mov rdx,[rdx+10]
mov [morale_p],rdx
mov [rdx+14],(float)1
mov rdx,[tempmem]
originalcode:
mov rax,[rax+000000E0]
exit:
jmp returnhere
DawnOfMan:Human:getMorale+b:
jmp newmem
nop
nop
returnhere:
[DISABLE]
dealloc(newmem)
dealloc(tempmem)
unregistersymbol(morale_p)
dealloc(morale_p)
DawnOfMan:Human:getMorale+b:
mov rax,[rax+000000E0]
//Alt: db 48 8B 80 E0 00 00 00