function analyzeF(off) pos=offsets.find(off,0x39,ANYBYTE,0x8c,00,00,00) print(string.format("Compare at:%x",pos)) if pos ==0 then return 0 end if(pos-off>0x100) then print(string.format("Distance to cmp:%x",pos-off)) pos =offsets.find(off,CALL) print(string.format("Distance to call:%x",pos-off)) return 0 --return analyzeF(pos) else return pos end end function minEx(...) local imin=arg[1] for _,v in ipairs(arg) do if imin> v and v~=0 then imin=v end end return imin end function signDword(dw) if(dw>0xFFFFFFFF) then return dw-0xFFFFFFFF end return dw end --[[ Warning: not all mov's are acounted for. Found one: mov EAX,WORD PTR[EBP+1EF4] WTF?? Two more compares are missing. There are calls instead (same function) ]]-- friendship_in={} dofile("dfusion/friendship/install.lua") dofile("dfusion/friendship/patch.lua") function friendship(names) friendship_in.install(names) friendship_in.patch() end