<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>198</ID>
      <Description>"Zool Redimensioned"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(One,Zool.exe,E8 02 00 00 8B 40 4C 2B C1)
aobscanmodule(Two,Zool.exe,30 0F B6 80 5F 01 00 00 83 E0 04)
aobscanmodule(Three,Zool.exe,8B 00 89 44 24 24 8B 44 24 20)

alloc(newmemOne,$1000,One)
alloc(newmemTwo,$1000,Two)
alloc(newmemThree,$1000,Three)
alloc(Four,8)
alloc(Five,8)
alloc(Six,8)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)
registersymbol(Four)
registersymbol(Five)
registersymbol(Six)

label(codeOne)
label(codeTwo)
label(codeThree)
label(returnOne)
label(returnTwo)
label(returnThree)

Four:
  dq 0

Five:
  dq 0

Six:
  dq 0

newmemOne:

codeOne:
  mov qword ptr [Four],rax
  mov eax,[rax+4C]
  sub eax,ecx
  jmp returnOne

One+04:
  jmp newmemOne

returnOne:

newmemTwo:

codeTwo:
  mov qword ptr [Five],rax
  movzx eax,byte ptr [rax+0000015F]
  jmp returnTwo

Two+01:
  jmp newmemTwo
  nop 2

returnTwo:

newmemThree:

codeThree:
  mov qword ptr [Six],rax
  mov eax,[rax]
  mov [rsp+24],eax
  jmp returnThree

Three:
  jmp newmemThree
  nop

returnThree:

{$lua}
  local last = ""
  local function pad(str,length)
  if #str &gt; length then
  return str:sub(1,length)
  else
  return str .. string.rep(" ",length - #str)
  end
  end
  local buf = buf or allocateMemory(64)
  unregisterSymbol("Seven")
  registerSymbol("Seven",buf,true)
  if _G.time and _G.time.instance then
  _G.time.instance.destroy()
  _G.time.instance = nil
  end
  local tmr = createTimer(nil,false)
  tmr.Interval = 100
  tmr.Enabled = true
  tmr.OnTimer = function()
  local addr = getAddressSafe("[Four]+38")
  local out = "Waiting"
  if addr then
  local v = readInteger(addr)
  if v and v &gt; 0 then
  local frames = 60
  local tc = math.floor((v/frames)*100) - 1
  if tc &lt; 0 then tc = 0 end
  local min = math.floor(tc/6000)
  local sec = math.floor((tc % 6000)/100)
  local cents = tc % 100
  out = string.format("%02d:%02d:%02d",min,sec,cents)
  end
  end
  local currentValue = readString(buf) or ""
  if currentValue ~= last then
  local m,s,cs = currentValue:match("^(%d+):(%d+):?(%d*)$")
  if m and s then
  local mm = tonumber(m)
  local ss = tonumber(s)
  local cc = tonumber(cs) or 0
  if mm and ss and cc then
  if ss &lt; 0 then ss = 0 end
  if ss &gt; 59 then ss = 59 end
  if cc &lt; 0 then cc = 0 end
  if cc &gt; 99 then cc = 99 end
  local frames = 60
  local tc = mm*6000+ss*100+cc
  local nv = math.floor(((tc+1)/100)*frames+0.5)
  if addr then
  writeInteger(addr,nv)
  end
  out = string.format("%02d:%02d:%02d",mm,ss,cc)
  end
  end
  end
  for i = 0,63 do writeBytes(buf+i,0) end
  writeString(buf,pad(out,64),false)
  last = out
  end
  _G.time = {instance = tmr}
{$asm}

[DISABLE]

One+04:
  db 8B 40 4C 2B C1

Two+01:
  db 0F B6 80 5F 01 00 00

Three:
  db 8B 00 89 44 24 24

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)
unregistersymbol(Five)
unregistersymbol(Six)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(newmemThree)
dealloc(Four)
dealloc(Five)
dealloc(Six)

{$lua}
  if _G.time and _G.time.instance then
  _G.time.instance.Enabled = false
  _G.time.instance.destroy()
  _G.time.instance = nil
  end
  if buf then
  unregisterSymbol("Seven")
  deAlloc(buf)
  buf = nil
  end
  last = nil
  _G.time = nil
{$asm}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>199</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>200</ID>
              <Description>"Freeze Time"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Eight,Zool.exe,89 41 38 48 81 C4 F8 00 00 00)
registersymbol(Eight)

Zool.exe+BAA96:
  db 90 90 90

[DISABLE]

Eight:
  db 89 41 38

unregistersymbol(Eight)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>201</ID>
              <Description>"Infinite Lives"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Nine,Zool.exe,89 81 F0 02 00 00 48)
registersymbol(Nine)

Zool.exe+B748D:
  db 90 90 90 90 90 90

[DISABLE]

Nine:
  db 89 81 F0 02 00 00

unregistersymbol(Nine)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>202</ID>
              <Description>"Infinite Health"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Ten,Zool.exe,8B 80 0C 01 00 00 C3)
alloc(newmem,$1000,Ten)

label(code)
label(return)

newmem:

code:
  mov dword ptr [rax+0000010C],5
  mov eax,[rax+0000010C]
  jmp return

Ten:
  jmp newmem
  nop

return:
registersymbol(Ten)

[DISABLE]

Ten:
  db 8B 80 0C 01 00 00

unregistersymbol(Ten)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>203</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Eleven,Zool.exe,0F B6 80 FD 00 00 00 85 C0 74 3E)
aobscanmodule(Twelve,Zool.exe,8B 80 30 01 00 00 FF)

alloc(newmemOne,$1000,Eleven)
alloc(newmemTwo,$1000,Twelve)

registersymbol(Eleven)
registersymbol(Twelve)

label(codeOne)
label(codeTwo)
label(returnOne)
label(returnTwo)

newmemOne:

codeOne:
  mov byte ptr [rax+000000FD],1
  movzx eax,byte ptr [rax+000000FD]
  jmp returnOne

Eleven:
  jmp newmemOne
  nop 2

returnOne:

newmemTwo:

codeTwo:
  mov dword ptr [rax+00000130],36
  mov eax,[rax+00000130]
  jmp returnTwo

Twelve:
  jmp newmemTwo
  nop

returnTwo:

[DISABLE]

Eleven:
  db 0F B6 80 FD 00 00 00

Twelve:
  db 8B 80 30 01 00 00

unregistersymbol(Eleven)
unregistersymbol(Twelve)

dealloc(newmemOne)
dealloc(newmemTwo)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>204</ID>
              <Description>"Level Collectibles"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Thirteen,Zool.exe,89 41 50 48 8B 44 24 40)
alloc(newmem,$1000,Thirteen)

registersymbol(Thirteen)

label(code)
label(return)

newmem:

code:
  mov eax,[rcx+2E4]
  mov [rcx+50],eax
  mov rax,[rsp+40]
  jmp return

Thirteen:
  jmp newmem
  nop 3

return:

{$lua}
  if syntaxcheck then return end
  if collectible and collectible.destroy then
  collectible.destroy()
  collectible = nil
  end
  collectible = createTimer(nil, true)
  collectible.Interval = 1000
  collectible.OnTimer = function(t)
  if getOpenedProcessID() == 0 then
  t.destroy()
  collectible = nil
  return
  end
  local addr = getAddressSafe("[Six]")
  if not addr then return end
  pcall(writeInteger,addr,7)
  end
{$asm}

[DISABLE]

Thirteen:
  db 89 41 50 48 8B 44 24 40

unregistersymbol(Thirteen)
dealloc(newmem)

{$lua}
  if collectible then
  collectible.destroy()
  collectible = nil
  end
{$asm}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>206</ID>
              <Description>"⬆Collect at least one of each collectible."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>205</ID>
              <Description>"⬆Gives you all the necessary collectibles for the level."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>207</ID>
          <Description>"==== Statistics ==="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>208</ID>
              <Description>"Time"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>String</VariableType>
              <Length>8</Length>
              <Unicode>0</Unicode>
              <CodePage>0</CodePage>
              <ZeroTerminate>1</ZeroTerminate>
              <Address>Seven</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>209</ID>
              <Description>"Score"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+4C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>210</ID>
              <Description>"Collectibles"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+50</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>211</ID>
              <Description>"Needed Collectibles"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+2E4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>212</ID>
              <Description>"Big Collectibles"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">*:Waiting
0:✖️▪✖️▪✖️
1:✔️▪✖️▪✖️
2:✖️▪✔️▪✖️
4:✖️▪✖️▪✔️
3:✔️▪✔️▪✖️
5:✔️▪✖️▪✔️
6:✖️▪✔️▪✔️
7:✔️▪✔️▪✔️
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Six]</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>213</ID>
              <Description>"⬆Pick up a big collectible to populate value."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>214</ID>
              <Description>"Weapon"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">*:Waiting
0:None
2:Jump
1:Shield
4:Shadow
3:Shield ▪ Jump
6:Shadow ▪ Jump
5:Shadow ▪ Shield
7:Shadow ▪ Shield ▪ Jump
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Byte</VariableType>
              <Address>[Five]+15F</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>215</ID>
              <Description>"⬆Lock to keep power-ups active."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>216</ID>
              <Description>"⬆Shield = Invincibility ▪ Jump = Jumping Zool ▪ Shadow = TwoZool."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
