<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <Files>
    <Main.lua Encoding="Ascii85">omO3L,eQ%1s{1N50}G.CKq71;0g4tzE6J8Ez)0Z^CkWC!tjLwP$Z{WMUD^EK[PMV.Mz7JM/RqQpk]xu$ictZg$eG!hZ?(4VzP4VxkUC{)ZhF[{a0:}fCRDq1:!I_3C*3gG4atwAqgs4,J^=R)/5^VqBXF(gT:LqacQ=Ddop]N?b9.PrJekzm3k:rqeH6WpPL6Bstk:KVR(PQNZpZH?ql=QKDF%AAHe#7N]1c/.IXZa+w:1p(DQ9lR:91ee+4b82I)3svxg^J:ZU@VnDd]mIBL123XdQ_LX4:2I0GD#rIy[hzp/F.jbs(nOuyx2*LWbQgobiQF92!*#4vU9V[#Kblu#DqvaTXuna$_*iWtk:k($x_@SUIm}a7?Zx=ow=}=ujMQ1@V1LYEVkbBL9uHNhzr{%$.s1t):zLs;iX;F{JpqmSmyw4?!NJtGGbibB?L7NG-I/7*b*.:b,pD8E!F/P+gjeaG0.+.]Nbr;j;4z?RGYS!02pfbXGnPVF3^sH6VoW:P4+5tAYRkdN7/NBjxy#n[yKLo@BbUrN,*E-R%1HzPPm98$an5/2U8I0IPt^h:=Xd^{iE%n,m_3@HmT6H%6PlruyL.kFX@Vtiu+uMxNuK^nCQ4ptJ+%D?B?ir.Zec6r@xmT(NV-MY@mMRAn7vTisc1wyT+WQ=XRc/%UxsvBRg[!8?T6^QxuJsJ^:eb]%ahWI-4WSk:4RFk6REehBbAegnLO=aoF}gMLg[cJa5WW]{!KSSFbyP:iO56}su,CCPd6B-AZ^(_kw#]/uc]gVxRtt^pU9.wRSM+W)sGj[0kg0=#8JXYwa7[q9p5nXXt(fcx4xo#BBuk6Tlvr^c=gmqV;wRIa9W(j=0*?kztd-H-cB,]7o3y_8@PlPzy!rnr0@[4z%Q11+bXcJz5Te0B2bWRJ@T)^kz7y+k#]-DoG]qEm5l=OHkZIZk:{shUT[u@Ci)mex,?C,ZAy+300-hpnBs:WSB0Rv6$OaN7I=jrSWW-_1W=u,{,9?reVD8_?2VNg?a:Zb7kGk-y-9j}[dkYpl(qHh/48UT/]/#WI7BRT_r/,p]qMzu@y3W(xLnqIf*@:m}e,K#ucmK](r98A34R%t#vj3BT7eFHR!$c{Dw7!?bawIZiR+VtfTx$gHwFg7:seGaOQGIIeLYn8KvYQ3wj*2$Cxp!W*^d+vU1Z/y.@p1q/BqkO/Pui[jg(S5mX216XG!5pI!-g$LnMlF[fu9mFW*%6Sh)9Ohq(1b.G(peH40L}X$8,}9I6(?w6Y1EMV4t,;gAr6G.l.b!A+wq(EPaN!NG1C5r(cnT?pI+7f5hNgoVmV,Dm1%!Q7wJ_W2*DIsTr#[aoZ0?oho5n)?WB4N+q:qk%MQ+NgHY[1uV*shw.Gq2(c+=ku-%Kx.lJ8A1@uzM)qz)=gmkzzG[S$==jc%8_UHJOf-+B#qF}mm5a0?!f%KsCoNN@;BUGZ2fL:1N$Skbbvkw5#ZpMLlO=zKp}(zc4Abl[d$Keu9u5Yr7(y,ld:Xj]/WEBwW39Jf2LVAxgRKI;u@zG.^}qoO-NeL0(1oeBFmL-Zfw_5H?D^f481ZGwtSQ2Kp)h_2Iu%bJ=f;;14L.?hRhH}Tg-((j/Sl6_RDPd6m:ig.qQs[epjHXE+/m.Me!pM9AX4cmV</Main.lua>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"[ACTIVATE]"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then
  return
end

CETrequire('Main')

Main.TableVersion = "1.0"
Main.GameVersion = "1.0"
Main.GameProcess = "COI.exe"
Main.Game = "Castle of Illusion"

AttachInformation()
AddSignature()
PostNotice()

-- Activate Full Screen
EnableCompactMode()

[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"[POINTERS]"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
define(Game,COI.exe+649D3C)
define(Player,COI.exe+362628)

registersymbol(Game)
registersymbol(Player)

[DISABLE]
unregistersymbol(Game)
unregistersymbol(Player)

</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>1337211242</ID>
              <Description>"Game"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337211241</ID>
                  <Description>"Score"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Game</Address>
                  <Offsets>
                    <Offset>8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337211243</ID>
                  <Description>"Lives"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Game</Address>
                  <Offsets>
                    <Offset>C</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>1337211258</ID>
              <Description>"Player"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>1337211256</ID>
                  <Description>"Apples"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>4 Bytes</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>1D8</Offset>
                    <Offset>8</Offset>
                    <Offset>3C</Offset>
                    <Offset>0</Offset>
                    <Offset>300</Offset>
                    <Offset>30</Offset>
                  </Offsets>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1337211261</ID>
                      <Description>"Max"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>4 Bytes</VariableType>
                      <Address>Player</Address>
                      <Offsets>
                        <Offset>1E0</Offset>
                        <Offset>8</Offset>
                        <Offset>3C</Offset>
                        <Offset>0</Offset>
                        <Offset>300</Offset>
                        <Offset>30</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>1337211260</ID>
                  <Description>"Health"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>Player</Address>
                  <Offsets>
                    <Offset>1DC</Offset>
                    <Offset>8</Offset>
                    <Offset>3C</Offset>
                    <Offset>0</Offset>
                    <Offset>300</Offset>
                    <Offset>30</Offset>
                  </Offsets>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1337211259</ID>
                      <Description>"Max"</Description>
                      <ShowAsSigned>0</ShowAsSigned>
                      <VariableType>Float</VariableType>
                      <Address>Player</Address>
                      <Offsets>
                        <Offset>1E4</Offset>
                        <Offset>8</Offset>
                        <Offset>3C</Offset>
                        <Offset>0</Offset>
                        <Offset>300</Offset>
                        <Offset>30</Offset>
                      </Offsets>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>3</ID>
          <Description>"[SCRIPTS]"</Description>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>4</ID>
          <Description>"[DEBUG]"</Description>
          <Options moHideChildren="1"/>
          <Color>0000FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>1337092187</ID>
              <Description>"Fetch Base Addresses (Easy)"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
  print(string.format("Fetching Base Addresses..."))

  local aobList = {
  "AOB"
  }
  local aobNames = {
  "Game"
  }
  local xbase = readInteger(process)and GetAddress(process)
  print(string.format("Base: %X",xbase))
  for i = 1, #aobList do
        local aob = AOBScan(aobList[i],"+X*C*W")
        local instruct = getAddressSafe(aob[0])
        local distance = getAddressSafe(instruct)+3
        distance = readInteger(distance)

        local instructSize = getInstructionSize(instruct)

        local address = (instruct + distance + instructSize) - xbase
        print(string.format("%s: %s+%X",aobNames[i],process,address))
  end



[DISABLE]
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>1337211233</ID>
              <Description>"Toggle Full Screen"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{$lua}
ToggleCompactMode()

[ENABLE]
[DISABLE]
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>- Initial Release (Dump &amp; Restore)</Comments>
  <LuaScript>local tableLuaFilesDirectory = "luaFiles"
local luaFileExt = ".lua"

function CETrequire(moduleStr)
    if not moduleStr then return end
    local sep = package.config:sub(1, 1)
    local localTableLuaFilePath = tableLuaFilesDirectory ~= "" and (tableLuaFilesDirectory .. sep .. moduleStr) or moduleStr
    local fullPath = localTableLuaFilePath .. luaFileExt

    local f = io.open(fullPath)
    if f then
        f:close()
        return dofile(fullPath)
    end

    local tableFile = findTableFile(moduleStr .. luaFileExt)
    if not tableFile then return end

    local stream = tableFile.stream
    local fn, err = load(readStringLocal(stream.memory, stream.size))
    if not fn then
        error("Error loading module '" .. moduleStr .. "': " .. err)
    end

    return fn()
end
</LuaScript>
</CheatTable>
