<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="44">
  <CheatEntries>
    <CheatEntry>
      <ID>12</ID>
      <Description>"Enabler"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
if process == nil then ShowMessage('Process is not selected.')
elseif readInteger(process) == 0 then ShowMessage('Process cannot be opened.')
else
  if (monopipe~=nil) and (monopipe.ProcessID~=getOpenedProcessID()) then
    monopipe.destroy()
    monopipe=nil
  end
  if (monopipe==nil) then
    LaunchMonoDataCollector()
  end
end
{$asm}

define(schar,"Character:GetHealthRatio")
define(sgamehub,"GameHubManager:OpenTab")
registersymbol(schar sgamehub)

[DISABLE]
{$lua}
if not syntaxcheck and monopipe then monopipe = nil,monopipe.Destroy()end
{$asm}
unregistersymbol(*)

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>11</ID>
          <Description>"Character [ Double Click Character During Mission]"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Mahokenshi.exe
  Version: 
  Date   : 2023-01-26
  Author : MarianaRoses
  AoB    : 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? F3 ?? ?? ?? F3 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? F3 ?? ?? ?? F3 ?? ?? ?? F2 ?? ?? ?? F2 ?? ?? ?? EB ?? 66 ?? ?? ?? F2 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? C3 00 ?? 00 ?? 00 ?? 04 ?? 00 ?? ?? 00 ?? 00 ?? 00 ?? 00 ?? 00 ?? 55 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48
  This script does blah blah blah
}

[ENABLE]

aobscanregion(bchar,schar,schar+5a,48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? F3 ?? ?? ?? F3 ?? ?? ?? 48 ?? ?? ?? ?? ?? ?? 48 ?? ?? ?? F3) // should be unique
alloc(newmem,$1000,bchar)
alloc(bcharc,7)
alloc(bchari,8)
registerSymbol(bchar bcharc bchari)
label(code return)

bcharc:
  readmem(bchar,7)
  
newmem:
  cmp [rsi+114],0
  jne code
  mov [bchari],rsi
  readmem(bchar,7)
  jmp return
code:
  readmem(bchar,7)
  jmp return

  

bchar:
  jmp newmem
  nop 2
return:

[DISABLE]
bchar:
  readmem(bcharc,7)
unregistersymbol(*)
dealloc(*)
       {
// ORIGINAL CODE - INJECTION POINT: 1DA2C982F0A

1DA2C982EEA: 00 00                 - add [rax],al
1DA2C982EEC: 00 00                 - add [rax],al
1DA2C982EEE: 00 00                 - add [rax],al
1DA2C982EF0: 48 83 EC 08           - sub rsp,08
1DA2C982EF4: 48 89 34 24           - mov [rsp],rsi
1DA2C982EF8: 48 8B F1              - mov rsi,rcx
1DA2C982EFB: 48 8B 86 B8 00 00 00  - mov rax,[rsi+000000B8]
1DA2C982F02: 48 63 40 60           - movsxd  rax,dword ptr [rax+60]
1DA2C982F06: 85 C0                 - test eax,eax
1DA2C982F08: 74 30                 - je 1DA2C982F3A
// ---------- INJECTING HERE ----------
1DA2C982F0A: 48 8B 86 B8 00 00 00  - mov rax,[rsi+000000B8]
// ---------- DONE INJECTING  ----------
1DA2C982F11: 48 63 40 64           - movsxd  rax,dword ptr [rax+64]
1DA2C982F15: F3 0F 2A C0           - cvtsi2ss xmm0,eax
1DA2C982F19: F3 0F 5A C0           - cvtss2sd xmm0,xmm0
1DA2C982F1D: 48 8B 86 B8 00 00 00  - mov rax,[rsi+000000B8]
1DA2C982F24: 48 63 40 60           - movsxd  rax,dword ptr [rax+60]
1DA2C982F28: F3 0F 2A C8           - cvtsi2ss xmm1,eax
1DA2C982F2C: F3 0F 5A C9           - cvtss2sd xmm1,xmm1
1DA2C982F30: F2 0F 5E C1           - divsd xmm0,xmm1
1DA2C982F34: F2 0F 5A C0           - cvtsd2ss xmm0,xmm0
1DA2C982F38: EB 08                 - jmp 1DA2C982F42
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>13</ID>
              <Description>"statManager"</Description>
              <Options moHideChildren="1"/>
              <ShowAsHex>1</ShowAsHex>
              <GroupHeader>1</GroupHeader>
              <Address>bchari</Address>
              <Offsets>
                <Offset>B8</Offset>
              </Offsets>
              <CheatEntries>
                <CheatEntry>
                  <ID>14</ID>
                  <Description>"strength"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>10</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>15</ID>
                  <Description>"defense"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>20</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>16</ID>
                  <Description>"cardDraw"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>30</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>17</ID>
                  <Description>"handSize"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>40</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>18</ID>
                  <Description>"AP"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>50</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>19</ID>
                  <Description>"maxHealth"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>60</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>20</ID>
                  <Description>"currentHealth"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>64</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>21</ID>
                  <Description>"currentGold"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>68</Offset>
                    <Offset>B8</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>46</ID>
              <Description>"Misc Pointers"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>22</ID>
                  <Description>"_PillageLandmarkDone"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>149</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>23</ID>
                  <Description>"_attackPillageAnim"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>148</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>24</ID>
                  <Description>"_pillageWithCamDezoom"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>144</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>25</ID>
                  <Description>"_camZoomWithPillageAnim"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>140</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>26</ID>
                  <Description>"_MovementState"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>13C</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>27</ID>
                  <Description>"timeForDashOneTile"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>138</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>28</ID>
                  <Description>"timeLandDash"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>134</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>29</ID>
                  <Description>"timeLaunchDash"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>130</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>30</ID>
                  <Description>"timeForTravelOneTileFly"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>12C</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>31</ID>
                  <Description>"timeLandFly"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>128</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>32</ID>
                  <Description>"timeLaunchFly"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>124</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>33</ID>
                  <Description>"timeForTeleportOneTile"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>120</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>34</ID>
                  <Description>"timeForTravelOneTile"</Description>
                  <VariableType>Float</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>11C</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>35</ID>
                  <Description>"PathfindForceAvoidCharacter"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>11B</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>36</ID>
                  <Description>"CanWalkThroughOtherCharacter"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>11A</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>37</ID>
                  <Description>"CanWalkOnWater"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>119</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>38</ID>
                  <Description>"IsInCombat"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>118</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>39</ID>
                  <Description>"currentFaction"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>114</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>40</ID>
                  <Description>"&lt;healthLostThisTurn&gt;k__BackingField"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>110</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>41</ID>
                  <Description>"&lt;isTravelling&gt;k__BackingField"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>10E</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>42</ID>
                  <Description>"_IsAlive"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>10D</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>43</ID>
                  <Description>"_characterInit"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>10C</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>44</ID>
                  <Description>"position"</Description>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>104</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>45</ID>
                  <Description>"hideDIrectlyOnDeath"</Description>
                  <VariableType>Byte</VariableType>
                  <Address>bchari</Address>
                  <Offsets>
                    <Offset>100</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>523</ID>
              <Description>"Character's Script *Required End Turn"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>522</ID>
                  <Description>"Always Max Health"</Description>
                  <Options moHideChildren="1"/>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
healthTimer = createTimer()
healthTimer.setInterval(1000)
healthTimer.onTimer = function(fhealth)
local hpMax = readInteger('[[bchari]+b8]+60')
local hpCur = readInteger('[[bchari]+b8]+64')
  if hpCur ~= nil then
   writeInteger('[[bchari]+b8]+64',hpMax)
  end
end

[DISABLE]
healthTimer.Destroy()

</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>524</ID>
                  <Description>"Infinite AP"</Description>
                  <Options moHideChildren="1"/>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
apTimer = createTimer()
apTimer.setInterval(1000)
apTimer.onTimer = function(finfap)
local apCur = readInteger('[[bchari]+b8]+50')
  if apCur ~= nil then
   writeInteger('[[bchari]+b8]+50',999)
  end
end

[DISABLE]
apTimer.Destroy()

</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>525</ID>
                  <Description>"Infinite Gold"</Description>
                  <Options moHideChildren="1"/>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
goldTimer = createTimer()
goldTimer.setInterval(1000)
goldTimer.onTimer = function(finfgold)
local goldCur = readInteger('[[bchari]+b8]+68')
  if goldCur ~= nil then
   writeInteger('[[bchari]+b8]+68',999999999)
  end
end

[DISABLE]
goldTimer.Destroy()

</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>526</ID>
                  <Description>"Infinite Strength"</Description>
                  <Options moHideChildren="1"/>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
strengthTimer = createTimer()
strengthTimer.setInterval(1000)
strengthTimer.onTimer = function(fstrength)
local strCur = readInteger('[[bchari]+b8]+10')
  if strCur ~= nil then
   writeInteger('[[bchari]+b8]+10',999999999)
  end
end

[DISABLE]
strengthTimer.Destroy()
local strCur = readInteger('[[bchari]+b8]+10')
if strCur ~= nil then
   writeInteger('[[bchari]+b8]+10',0)
end

</AssemblerScript>
                </CheatEntry>
                <CheatEntry>
                  <ID>527</ID>
                  <Description>"Infinite Defense"</Description>
                  <Options moHideChildren="1"/>
                  <VariableType>Auto Assembler Script</VariableType>
                  <AssemblerScript>{$lua}
if syntaxcheck then return end
[ENABLE]
defenseTimer = createTimer()
defenseTimer.setInterval(1000)
defenseTimer.onTimer = function(fdefense)
local defCur = readInteger('[[bchari]+b8]+20')
  if defCur ~= nil then
   writeInteger('[[bchari]+b8]+20',999999999)
  end
end

[DISABLE]
defenseTimer.Destroy()
local strCur = readInteger('[[bchari]+b8]+20')
if strCur ~= nil then
   writeInteger('[[bchari]+b8]+20',0)
end

</AssemblerScript>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>532</ID>
          <Description>"Game Hub Manager [ Change Tab on Mission Menu ]"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Mahokenshi.exe
  Version: 
  Date   : 2023-01-26
  Author : MarianaRoses
  AoB    : 45 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? ?? 44 ?? ?? ?? 83 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 39 ?? ?? 0F ?? ?? ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? ?? 48 ?? ?? 48 ?? ?? ?? 48 ?? ?? ?? 90 49 ?? ?? ?? ?? ?? ?? ?? ?? ?? 41 ?? ?? E9 ?? ?? ?? ?? 4D ?? ?? ?? 49 ?? ?? ?? 4C ?? ?? 49 ?? ?? 83 ?? ?? 49 ?? ?? ?? ?? 3B ?? 0F ?? ?? ?? ?? ?? 49
  This script does blah blah blah
}

[ENABLE]

aobscanregion(bgamehub,sgamehub,sgamehub+3d3,45 ?? ?? ?? ?? ?? ?? 4C ?? ?? ?? 49 ?? ?? ?? 48 ?? ?? ?? 44 ?? ?? ?? 83 ) // should be unique
alloc(newmem,$1000,bgamehub)
alloc(bgamehubc,7)
alloc(bgamehubi,8)
registerSymbol(bgamehub bgamehubc bgamehubi)
label(code return)

bgamehubc:
  readmem(bgamehub,7)
  
newmem:
  mov [bgamehubi],r15
code:
  readmem(bgamehub,7)
  jmp return

bgamehub:
  jmp newmem
  nop 2
return:

[DISABLE]
bgamehub:
  readmem(bgamehubc,7)
unregistersymbol(*)
dealloc(*)
       {
// ORIGINAL CODE - INJECTION POINT: GameHubManager:OpenTab+103

GameHubManager:OpenTab+df: 48 63 C9                       - movsxd  rcx,ecx
GameHubManager:OpenTab+e2: 48 8D 44 C8 20                 - lea rax,[rax+rcx*8+20]
GameHubManager:OpenTab+e7: 48 8B 00                       - mov rax,[rax]
GameHubManager:OpenTab+ea: 48 8B 40 20                    - mov rax,[rax+20]
GameHubManager:OpenTab+ee: 48 8B C8                       - mov rcx,rax
GameHubManager:OpenTab+f1: 48 BA 00 5A 97 F6 86 02 00 00  - mov rdx,00000286F6975A00
GameHubManager:OpenTab+fb: 4C 8B C6                       - mov r8,rsi
GameHubManager:OpenTab+fe: 83 38 00                       - cmp dword ptr [rax],00
GameHubManager:OpenTab+101: 48 8D                          - db 45 89 B7 DC 00 00 00 
GameHubManager:OpenTab+103: 64 24 00                       - and al,00
// ---------- INJECTING HERE ----------
GameHubManager:OpenTab+106: 49 BB E0 FC A7 01 87 02 00 00  - mov r11,UnityEngine.Animator:SetBool
// ---------- DONE INJECTING  ----------
GameHubManager:OpenTab+110: 41 FF D3                       - call r11
GameHubManager:OpenTab+113: 49 8B 47 48                    - mov rax,[r15+48]
GameHubManager:OpenTab+117: 48 89 45 B0                    - mov [rbp-50],rax
GameHubManager:OpenTab+11b: 44 89 75 A8                    - mov [rbp-58],r14d
GameHubManager:OpenTab+11f: 83 38 00                       - cmp dword ptr [rax],00
GameHubManager:OpenTab+122: 48 8B 45 B0                    - mov rax,[rbp-50]
GameHubManager:OpenTab+126: 48 63 40 18                    - movsxd  rax,dword ptr [rax+18]
GameHubManager:OpenTab+12a: 39 45 A8                       - cmp [rbp-58],eax
GameHubManager:OpenTab+12d: 0F 83 2D 02 00 00              - jae GameHubManager:OpenTab+360
GameHubManager:OpenTab+133: 48 8B 45 B0                    - mov rax,[rbp-50]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>533</ID>
              <Description>"_CurrentUpgradeTreeCurrency"</Description>
              <VariableType>4 Bytes</VariableType>
              <Address>bgamehubi</Address>
              <Offsets>
                <Offset>D8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>534</ID>
              <Description>"_CurrentTab"</Description>
              <VariableType>4 Bytes</VariableType>
              <Address>bgamehubi</Address>
              <Offsets>
                <Offset>DC</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>172</ID>
      <Description>"Author: MarianaRoses -- Visit Us at https://opencheattables.com"</Description>
      <Options moHideChildren="1"/>
      <Color>0000FF</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>memPointerTest</Name>
      <Address>2864BBD0000</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
