<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="52">
  <Files>
    <File Name="launchgame.dat" Encoding="Ascii85">t6@YZD9K1wNGr-r%{Xg)$WK!!%FIj8SI8^R$jnYGPt.4TNab=2igEXMS8z_vO*ZWIK}*_ER[,N@9z*nL1,KKjoZ=gn2;/</File>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>3</ID>
      <Description>"Find Value"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobScanModule(hackingPoint, the friends of ringo ishikawa.exe, 48 8B 03 48 89 07 EB ?? 41 8B 40 ??)

label(cheat)
label(nopInstruction)
label(code)
label(exit)

alloc(newmem, 2048, hackingPoint)
alloc(searchForThisValue, 8)

registersymbol(hackingPoint)
registersymbol(searchForThisValue)
registersymbol(nopInstruction)

newmem:

code:
mov rax,[rbx]
mov [rdi],rax

cheat:
cmp rax, [searchForThisValue]
jne exit

nopInstruction:
nop [rbx]
jmp exit

hackingPoint:
jmp newmem
nop
exit:
[DISABLE]
hackingPoint:
  db 48 8B 03 48 89 07

dealloc(*)
unregistersymbol(*)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>4</ID>
          <Description>"Value to Search For"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>searchForThisValue</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>5</ID>
          <Description>"Generate Entries"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$LUA}
if syntaxcheck then return end

[ENABLE]
-- Prevent print() from changing focus
getLuaEngine().cbShowOnPrint.Checked = false
-- Clear the console output
getLuaEngine().mOutput.clear()

local breakpoint = getAddressSafe('nopInstruction')
if not breakpoint then
  print('nopInstruction not found!')
  return
end

local found = {}
local count = 1
local function createRecord(address)
  local record = AddressList.createMemoryRecord()

  record.Description = string.format('%X', address)
  record.Type = vtDouble
  record.Address = address

  record.appendToEntry(memrec)
end

local function on_found()
  local address = RBX

  if not found[address] then
    found[address] = true
    createRecord(address)
  end

  debug_continueFromBreakpoint()
end

debug_setBreakpoint(breakpoint, on_found)
registerSymbol('breakpoint', breakpoint, false)
[DISABLE]
local breakpoint = getAddressSafe('breakpoint')
if breakpoint then
  debug_removeBreakpoint(breakpoint)
  unregisterSymbol('breakpoint')
end

while memrec.Count &gt; 0 do
  memrec.Child[0].destroy()
end
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>6</ID>
      <Description>"Get Pointers (unreliable)"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobScanModule(hackingPoint, the friends of ringo ishikawa.exe, 48 8B 03 48 89 07 EB ?? 41 8B 40 ??)

label(cheat)
label(code)
label(exit)
label(found)

alloc(newmem, 2048, hackingPoint)
alloc(health, 8)
alloc(maxHealth, 8)
alloc(money, 8)
alloc(cigars, 8)
alloc(experience, 8)

registersymbol(hackingPoint)
registersymbol(health)
registersymbol(maxHealth)
registersymbol(money)
registersymbol(cigars)
registersymbol(experience)

newmem:

code:
mov rax,[rbx]
mov [rdi],rax

cheat:
cmp rsi, 9 // Health
jne @f
cmp r9, 1
jne @f
mov qword ptr [health], rbx
jmp found

@@:
cmp rsi, 8 // Max Health
jne @f
cmp r9, 1
jne @f
mov qword ptr [maxHealth], rbx
jmp found

@@:
cmp rsi, 5 // Money
jne @f
mov qword ptr [money], rbx
jmp found

@@:
cmp rsi, 3 // Cigars
jne @f
cmp r9, 1
jne @f
cmp r14, E
jne @f
mov qword ptr [cigars], rbx
jmp found

@@:
cmp rsi, 6 // Experience
jne exit
mov qword ptr [experience], rbx

found:
nop [rbx]
jmp exit

hackingPoint:
jmp newmem
nop
exit:
[DISABLE]
hackingPoint:
  db 48 8B 03 48 89 07

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>7</ID>
          <Description>"Health"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>health</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>11</ID>
          <Description>"Max Health"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>maxHealth</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"Money"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>money</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>9</ID>
          <Description>"Cigars"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>cigars</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"Experience"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Double</VariableType>
          <Address>experience</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>18</ID>
      <Description>"Infinite Health"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanModule(hackingPointGod, the friends of ringo ishikawa.exe, 48 89 03 48 8B 9C 24 ?? 00 00 00)
alloc(newmem,2048,hackingPointGod)
label(code)
label(cheat)
label(exit)

alloc(copyhackingPointGod, 11)

registersymbol(hackingPointGod)
registersymbol(copyhackingPointGod)

copyhackingPointGod:
 readmem(hackingPointGod, 11)

newmem:
cmp qword ptr [rbx], rax // Compared old with new
jle code // If lower, there's nothing to do

cheat:
cmp rsi, 1
jne code
cmp [rsp+8], 0
je code
cmp [rsp+28], "the friends of ringo ishikawa.exe"+6B900
jne code
cmp [rsp+40], 0
je code
cmp [rsp+A0], 5
jne code
cmp [rsp+E0], 0
jne code
cmp [rsp+118], 0
jne code

nop [rbx]
mov rbx,[rsp+00000090]
jmp exit

code:
mov [rbx],rax
mov rbx,[rsp+00000090]

jmp exit

hackingPointGod:
jmp newmem
nop 6

exit:
[DISABLE]
hackingPointGod:
 readmem(copyhackingPointGod, 11)

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>13</ID>
      <Description>"Cigar"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanModule(hackingPointCigar, the friends of ringo ishikawa.exe, 49 8B 47 ?? 48 89 07)

label(code)
label(exit)
label(cheat)


alloc(newmem, 2048, hackingPointCigar)
alloc(copyhackingPointCigar, 7)

registersymbol(hackingPointCigar)
registersymbol(copyhackingPointCigar)

copyhackingPointCigar:
  readmem(hackingPointCigar, 7)


newmem:
mov rax,[r15+30] // Altered value

cmp rdx, 1
jne code

cmp rsi, 3
jne code
cmp qword ptr [rdi], rax // Check if current value &gt; altered value
ja cheat

cheat:
nop [rdi]
jmp exit

code:
// mov rax,[r15+30]
mov [rdi],rax

jmp exit
hackingPointCigar:
jmp newmem
nop 2

exit:
[DISABLE]
hackingPointCigar:
  readmem(copyhackingPointCigar, 7)

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry>
      <Description>Code :mov rax,[rbx]</Description>
      <AddressString>the friends of ringo ishikawa.exe+1C052A</AddressString>
      <Before>
        <Byte>26</Byte>
        <Byte>E4</Byte>
        <Byte>FF</Byte>
        <Byte>EB</Byte>
        <Byte>59</Byte>
      </Before>
      <Actual>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>03</Byte>
      </Actual>
      <After>
        <Byte>48</Byte>
        <Byte>89</Byte>
        <Byte>07</Byte>
        <Byte>EB</Byte>
        <Byte>51</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Code :mov [rdi],rax -- Cigar</Description>
      <AddressString>the friends of ringo ishikawa.exe+1BF568</AddressString>
      <Before>
        <Byte>07</Byte>
        <Byte>49</Byte>
        <Byte>8B</Byte>
        <Byte>47</Byte>
        <Byte>30</Byte>
      </Before>
      <Actual>
        <Byte>48</Byte>
        <Byte>89</Byte>
        <Byte>07</Byte>
      </Actual>
      <After>
        <Byte>83</Byte>
        <Byte>2D</Byte>
        <Byte>4A</Byte>
        <Byte>0A</Byte>
        <Byte>86</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Code :mov [rbx],rax -- Health</Description>
      <AddressString>the friends of ringo ishikawa.exe+27A3A3</AddressString>
      <Before>
        <Byte>D8</Byte>
        <Byte>FF</Byte>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>07</Byte>
      </Before>
      <Actual>
        <Byte>48</Byte>
        <Byte>89</Byte>
        <Byte>03</Byte>
      </Actual>
      <After>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>9C</Byte>
        <Byte>24</Byte>
        <Byte>90</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols/>
</CheatTable>
