<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="51">
  <CheatEntries>
    <CheatEntry>
      <ID>15</ID>
      <Description>"Enable Code"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
aobscanmodule(pPlayerBase,GameAssembly.dll,48 8B 11 48 8B 82 ?? ?? ?? ?? 48 8B 92 ?? ?? ?? ?? FF D0 48 85 C0 74 ?? 48 8B 10 48)
aobscanmodule(pHpUpgradeCount,GameAssembly.dll, 48 8B 88 * * * * 48 8B 41 50 48 85 C0 74 * 8B 80 * * * * 48 83 C4 * C3 E8 * * * *)

alloc(MasterMem,2048,pPlayerBase)

label(code_base ori_base ret_base code_hpcount ori_hpcount ret_hpcount pBasePointer pHpMultiply JumpKey1 JumpKey2 pKunaiMin pCellFill pGoldMultiplier Inv_Save1 Inv_Save2 Xec_Save)
registersymbol(MasterMem pPlayerBase pHpUpgradeCount ori_base ori_hpcount pBasePointer pHpMultiply JumpKey1 JumpKey2 pKunaiMin pCellFill pGoldMultiplier Inv_Save1 Inv_Save2 Xec_Save)

MasterMem:
pBasePointer:
  dq 00
  align 10 CC
pHpMultiply:
  dq 00
  align 10 CC
JumpKey1:
  dd 0020
  align 10 CC
JumpKey2:
  dd 0010
  align 10 CC
pKunaiMin:
  dd 03
  align 10 CC
pCellFill:
  dd (float)9
  align 10 CC
pGoldMultiplier:
  dd (float)2
  align 10 CC
Inv_Save1:
  dq 00
  align 10 CC
Inv_Save2:
  dq 00
  align 10 CC
Xec_Save:
  dq 00

  align 10 CC
code_base:
  push rax
  mov rax,pBasePointer
  mov [rax],rcx
  pop rax
ori_base:
  readmem(pPlayerBase,10)
  jmp ret_base

  align 10 CC
code_hpcount:
  mov [pHpMultiply],rax
ori_hpcount:
  readmem(pHpUpgradeCount+10,6)
  jmp ret_hpcount


pPlayerBase:
  jmp code_base
  nop 5
ret_base:

pHpUpgradeCount+10:
  jmp code_hpcount
  nop
ret_hpcount:

[DISABLE]
pPlayerBase:
  readmem(ori_base,10)

pHpUpgradeCount+10:
  readmem(ori_hpcount,6)

unregistersymbol(*)
dealloc(MasterMem)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>38</ID>
          <Description>"Infinite HP"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(pPlayerHP,GameAssembly.dll,F3 44 0F 10 49 28 48 8B 82 ?? ?? ?? ?? 48 8B 92 ?? ?? ?? ?? FF D0 F3 44 0F)

label(code_hp ori_hp ret_hp skip_hp)
registersymbol(pPlayerHP ori_hp)

MasterMem+200:
code_hp:
  push rbx
  mov rbx,[pBasePointer]
  test rbx,rbx
  je @f
  mov rbx,[rbx+98]
  test rbx,rbx
  je @f
  mov rbx,[rbx+18]
  test rbx,rbx
  je @f
  sub rsp, 30
  movdqu [rsp], xmm0
  movdqu [rsp+10], xmm1
  movdqu [rsp+20], xmm2

  movss xmm0, [rbx+18]
  movss xmm1, [rbx+20]

  push rdx
  mov rdx,[pHpMultiply]
  test rdx,rdx
  je skip_hp
  cvtsi2ss xmm2, dword ptr [rdx+A0]
  mulss xmm1, xmm2

skip_hp:
  pop rdx
  addss xmm0, xmm1
  movss [rcx+28], xmm0

  movdqu xmm2, [rsp+20]
  movdqu xmm1, [rsp+10]
  movdqu xmm0, [rsp]
  add rsp, 30
@@:
  pop rbx
ori_hp:
  readmem(pPlayerHP,6)
  jmp ret_hp

pPlayerHP:
  jmp code_hp
  nop
ret_hp:

[DISABLE]
pPlayerHP:
  readmem(ori_hp,6)

unregistersymbol(*)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>29</ID>
          <Description>"Invincible"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">[ENABLE]
aobscanmodule(pPlayerGod,GameAssembly.dll,0F 85 ?? ?? ?? ?? 0F 10 53 10 48 8B 17 48 8B CF F2 0F 11)
aobscanmodule(pTrapGod,GameAssembly.dll,00 74 15 48 8B 01 48)
aobscanmodule(pShieldAmulet,GameAssembly.dll,80 B8 99 01 00 00 00 74 1E)
aobscanmodule(pLaserGod,GameAssembly.dll,75 1E 48 85 DB 74 24 48 8B 4B 70 48 85 C9 74 1B 48 8B 01)

registersymbol(pPlayerGod pTrapGod pShieldAmulet pLaserGod)

Inv_Save1:
  readmem(pPlayerGod,6)

Inv_Save2:
  readmem(pShieldAmulet+07,2)

pTrapGod+01:
  db EB

pPlayerGod:
  jmp pPlayerGod+112
  nop

pShieldAmulet+07:
  nop 2

pLaserGod+0E:
  db EB

[DISABLE]
pTrapGod+01:
  db 74

pPlayerGod:
  readmem(Inv_Save1,6)

pShieldAmulet+07:
  readmem(Inv_Save2,2)

pLaserGod+0E:
  db 74

unregistersymbol(*)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>31</ID>
          <Description>"Infinite Kunai (Min)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">[ENABLE]
aobscanmodule(pKunai,GameAssembly.dll,84 C0 75 03 29 7B 20 48 8B 5C 24 ?? 48 83 C4 ?? 5F C3 CC)

label(code_kunai ori_kunai ret_kunai)
registersymbol(pKunai ori_kunai)

MasterMem+300:
code_kunai:
  push rax
  mov eax,[rbx+20]
  cmp eax,[pKunaiMin]
  jg @f
  mov eax,[pKunaiMin]
  mov [rbx+20],eax
  pop rax
  reassemble(pKunai+07,5)
  jmp ret_kunai
@@:
  pop rax
ori_kunai:
  readmem(pKunai+04,8)
  jmp ret_kunai

pKunai+04:
  jmp code_kunai
  nop 3
ret_kunai:

[DISABLE]
pKunai+04:
  readmem(ori_kunai,8)

unregistersymbol(*)
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>60</ID>
              <Description>"Set Min Kunai"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>pKunaiMin</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>55</ID>
          <Description>"Shinobi Execution Ready"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(pXecutionMax,GameAssembly.dll,80 7B 18 00 74 ?? F3 0F 10 43 20 0F 2F 43 1C 0F 82 ?? ?? ?? ?? 80 3D ?? ?? ?? ?? 00 75 ?? 48 8D 0D ?? ?? ?? ??)
registersymbol(pXecutionMax)

Xec_Save:
  readmem(pXecutionMax+0F,6)

pXecutionMax+0F:
  nop 6

[DISABLE]
pXecutionMax+0F:
  readmem(Xec_Save,6)

unregistersymbol(pXecutionMax)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>30</ID>
          <Description>"Infinite Ninpo Cells"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(pCellAmount,GameAssembly.dll,F3 0F 11 47 24 E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? F3 0F 10 47 24 0F 2F 05 ?? ?? ?? ?? 0F 82 ?? ?? ?? ?? 8B 5F 20)

label(code_cell ori_cell ret_cell)
registersymbol(pCellAmount ori_cell)

MasterMem+400:
code_cell:
  movss xmm0,[pCellFill]
ori_cell:
  readmem(pCellAmount,5)
  jmp ret_cell

pCellAmount:
  jmp code_cell
ret_cell:

[DISABLE]
pCellAmount:
  readmem(ori_cell,5)

unregistersymbol(*)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>41</ID>
          <Description>"Infinite Ninjutsu"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(pNinjutsu,GameAssembly.dll,F3 0F 10 41 18 0F 2F 05 ?? ?? ?? ?? 0F 93 C0 C3 48 89 5C 24 08 48 89 6C 24 10 48 89 74 24 18 57)

label(code_nj ori_nj ret_nj)
registersymbol(pNinjutsu ori_nj)

MasterMem+500:
code_nj:
  mov dword ptr[rcx+18],(float)1
ori_nj:
  readmem(pNinjutsu,5)
  jmp ret_nj

pNinjutsu:
  jmp code_nj
ret_nj:

[DISABLE]
pNinjutsu:
  readmem(ori_nj,5)

unregistersymbol(*)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>47</ID>
          <Description>"Jump Modifier (Hold key 1+2 to Levitate)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
if JumpMod ~= nil then
  JumpMod.destroy()
  JumpMod = nil
end

JumpMod = createTimer(getMainForm())
JumpMod.Interval = 30
JumpMod.OnTimer = function()
  local key1 = readInteger('JumpKey1')
  local key2 = readInteger('JumpKey2')

  if key1 and key2 then
      if isKeyPressed(key1) and isKeyPressed(key2) then
        writeFloat('[[pBasePointer]+1B0]+30', 12)
      end
  end
end
{$asm}

[DISABLE]
{$lua}
if JumpMod ~= nil then
  JumpMod.destroy()
  JumpMod = nil
end
{$asm}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry NoCheckbox="1">
              <ID>56</ID>
              <Description>"Hold key 1"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0020:Keyboard: Space
0011:Keyboard: Ctrl
0010:Keyboard: Shift
0012:Keyboard: Alt
0058:Keyboard: X
0043:Keyboard: C
0056:Keyboard: V
5800:Gamepad A
5801:Gamepad B
5802:Gamepad X
5803:Gamepad Y
5804:Gamepad RB (Right Shoulder)
5805:Gamepad LB (Left Shoulder)
5806:Gamepad LT (Left Trigger)
5807:Gamepad RT (Right Trigger)
5816:Gamepad L3 (Left Thumb)
5817:Gamepad R3 (Right Thumb)
</DropDownList>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>2 Bytes</VariableType>
              <Address>JumpKey1</Address>
            </CheatEntry>
            <CheatEntry NoCheckbox="1">
              <ID>57</ID>
              <Description>"Hold key 2"</Description>
              <DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0020:Keyboard: Space
0011:Keyboard: Ctrl
0010:Keyboard: Shift
0012:Keyboard: Alt
0058:Keyboard: X
0043:Keyboard: C
0056:Keyboard: V
5800:Gamepad A
5801:Gamepad B
5802:Gamepad X
5803:Gamepad Y
5804:Gamepad RB (Right Shoulder)
5805:Gamepad LB (Left Shoulder)
5806:Gamepad LT (Left Trigger)
5807:Gamepad RT (Right Trigger)
5816:Gamepad L3 (Left Thumb)
5817:Gamepad R3 (Right Thumb)
</DropDownList>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>2 Bytes</VariableType>
              <Address>JumpKey2</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>48</ID>
          <Description>"Infinite Dash in Air"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(pDash,GameAssembly.dll,C6 80 ?? ?? ?? ?? 01 48 8B 43 28 48 85 C0 74 ?? 48 8B 88 ?? ?? ?? ?? 48 85 C9 74 ?? 83 B9 ?? ?? ?? ?? 01 7D ?? C7 81 ?? ?? ?? ?? 01 00 00 00)
registersymbol(pDash)

pDash+06:
  db 00

{$lua}
if syntaxcheck then return end
if DashDelay ~= nil then
  DashDelay.destroy()
  DashDelay = nil
end

DashDelay = createTimer(getMainForm())
DashDelay.Interval = 50
DashDelay.OnTimer = function()
  writeFloat('[[[[pBasePointer]+150]+10]+48]+18', 0)
end
{$asm}

[DISABLE]
pDash+06:
  db 01

unregistersymbol(pDash)

{$lua}
if DashDelay ~= nil then
  DashDelay.destroy()
  DashDelay = nil
end
writeFloat('[[[[pBasePointer]+150]+10]+48]+18', 0.2)
{$asm}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>50</ID>
          <Description>"Gold Multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">[ENABLE]
aobscanmodule(pGoldGain,GameAssembly.dll,01 58 60 48 8B 0D ?? ?? ?? ?? 66 01 0D ?? ?? ?? ?? 85 DB 7E ?? 48 8B 0D ?? ?? ?? ?? E8 ?? ?? ?? ?? 48 89 C7)

label(code_gold ori_gold ret_gold)
registersymbol(pGoldGain ori_gold)

MasterMem+600:
code_gold:
  cmp ebx,00
  jle @f
  push rbx
  fild dword ptr [rsp]
  fmul dword ptr [pGoldMultiplier]
  fistp dword ptr [rsp]
  pop rbx
@@:
  readmem(pGoldGain,3)
  reassemble(pGoldGain+3,7)
  jmp ret_gold

  align 10 CC
ori_gold:
  readmem(pGoldGain,10)

pGoldGain:
  jmp code_gold
  nop 5
ret_gold:

[DISABLE]
pGoldGain:
  readmem(ori_gold,10)

unregistersymbol(*)
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>51</ID>
              <Description>"Set multiply by"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>pGoldMultiplier</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>52</ID>
          <Description>"PlayerBasePointer"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C0C0C0</Color>
          <GroupHeader>1</GroupHeader>
          <Address>pBasePointer</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
          <CheatEntries>
            <CheatEntry ValueOnActivate="95">
              <ID>17</ID>
              <Description>"&lt;Health&gt;k__BackingField"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Float</VariableType>
              <Address>+40</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>39</ID>
              <Description>"Additional Health"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Float</VariableType>
              <Address>+98</Address>
              <Offsets>
                <Offset>20</Offset>
                <Offset>18</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>21</ID>
              <Description>"&lt;KunaiCount&gt;k__BackingField"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>+190</Address>
              <Offsets>
                <Offset>20</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>33</ID>
              <Description>"&lt;KunaiCount&gt; Yamato"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>+C0</Address>
              <Offsets>
                <Offset>20</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"&lt;HasShield&gt;k__BackingField"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Byte</VariableType>
              <Address>+190</Address>
              <Offsets>
                <Offset>24</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry ValueOnActivate="99" RestoreOnDeactivate="1">
              <ID>18</ID>
              <Description>"NbMaxJump"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>+98</Address>
              <Offsets>
                <Offset>18</Offset>
                <Offset>58</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>46</ID>
              <Description>"Velocity Y"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Float</VariableType>
              <Address>+1B0</Address>
              <Offsets>
                <Offset>30</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry ValueOnActivate="0">
              <ID>23</ID>
              <Description>"&lt;HasDoneDashInAir&gt;k__BackingField"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Byte</VariableType>
              <Address>+88</Address>
              <Offsets>
                <Offset>130</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>53</ID>
              <Description>"CooldownDashinAir"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Float</VariableType>
              <Address>+150</Address>
              <Offsets>
                <Offset>18</Offset>
                <Offset>48</Offset>
                <Offset>10</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry ValueOnActivate="1">
              <ID>19</ID>
              <Description>"CanParry"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Byte</VariableType>
              <Address>+88</Address>
              <Offsets>
                <Offset>B0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry ValueOnActivate="1" ValueOnDeactivate="0">
              <ID>20</ID>
              <Description>"Amulet_IsShieldEnabled"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Byte</VariableType>
              <Address>+88</Address>
              <Offsets>
                <Offset>199</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>28</ID>
              <Description>"Cell Amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Float</VariableType>
              <Address>+198</Address>
              <Offsets>
                <Offset>24</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry ValueOnActivate="1">
              <ID>32</ID>
              <Description>"Ninjutsu Gauge Amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C0C0C0</Color>
              <VariableType>Float</VariableType>
              <Address>+1A0</Address>
              <Offsets>
                <Offset>18</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
