<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Activate me :)"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
LaunchMonoDataCollector()
{$asm}

[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>231989</ID>
          <Description>"GodMode"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,Zyklus.HealthComponent:ChangePoint_Final+1f8)
define(bytes,F3 41 0F 11 AE 30 01 00 00)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,Zyklus.HealthComponent:ChangePoint_Final+1f8)

label(code)
label(return)

newmem:
  cmp byte ptr [r14+00000148],1 // check for us
  jne code                      // if not, continue as normal
  movss xmm5,[r14+00000134]     // load max health

code:
  movss [r14+00000130],xmm5
  jmp return

address:
  jmp newmem
  nop 4
return:

[DISABLE]

address:
  db bytes
  // movss [r14+00000130],xmm5

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Zyklus.HealthComponent:ChangePoint_Final+1f8

Zyklus.HealthComponent:ChangePoint_Final+1cd: F2 0F 5C C1                    - subsd xmm0,xmm1
Zyklus.HealthComponent:ChangePoint_Final+1d1: 49 8B CE                       - mov rcx,r14
Zyklus.HealthComponent:ChangePoint_Final+1d4: F2 0F 10 C8                    - movsd xmm1,xmm0
Zyklus.HealthComponent:ChangePoint_Final+1d8: F2 0F 5A C9                    - cvtsd2ss xmm1,xmm1
Zyklus.HealthComponent:ChangePoint_Final+1dc: 66 90                          - nop 2
Zyklus.HealthComponent:ChangePoint_Final+1de: 49 BB C0 5B 9D 42 87 02 00 00  - mov r11,Zyklus.HealthComponent:RaiseOnHealed
Zyklus.HealthComponent:ChangePoint_Final+1e8: 41 FF D3                       - call r11
Zyklus.HealthComponent:ChangePoint_Final+1eb: F3 0F 10 45 E4                 - movss xmm0,[rbp-1C]
Zyklus.HealthComponent:ChangePoint_Final+1f0: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Zyklus.HealthComponent:ChangePoint_Final+1f4: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
Zyklus.HealthComponent:ChangePoint_Final+1f8: F3 41 0F 11 AE 30 01 00 00     - movss [r14+00000130],xmm5
// ---------- DONE INJECTING  ----------
Zyklus.HealthComponent:ChangePoint_Final+201: 49 8B CE                       - mov rcx,r14
Zyklus.HealthComponent:ChangePoint_Final+204: 48 8B D7                       - mov rdx,rdi
Zyklus.HealthComponent:ChangePoint_Final+207: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
Zyklus.HealthComponent:ChangePoint_Final+20e: 49 BB 90 5D 9D 42 87 02 00 00  - mov r11,Zyklus.HealthComponent:RaiseOnParametersChanged
Zyklus.HealthComponent:ChangePoint_Final+218: 41 FF D3                       - call r11
Zyklus.HealthComponent:ChangePoint_Final+21b: 48 8B 7D E8                    - mov rdi,[rbp-18]
Zyklus.HealthComponent:ChangePoint_Final+21f: 4C 8B 65 F0                    - mov r12,[rbp-10]
Zyklus.HealthComponent:ChangePoint_Final+223: 4C 8B 75 F8                    - mov r14,[rbp-08]
Zyklus.HealthComponent:ChangePoint_Final+227: 48 8D 65 00                    - lea rsp,[rbp+00]
Zyklus.HealthComponent:ChangePoint_Final+22b: 5D                             - pop rbp
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232009</ID>
          <Description>"Ignore Skill-Cooldown on Right-Click"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,CooldownCondition:CheckCondition+28)
define(bytes,74 07)

[ENABLE]
assert(address,bytes)
address:
  nop 2

[DISABLE]

address:
  db bytes
  // je CooldownCondition:CheckCondition+31
  // mov eax,00000001

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: CooldownCondition:CheckCondition+28

CooldownCondition:CheckCondition+1: 48 8B EC                       - mov rbp,rsp
CooldownCondition:CheckCondition+4: 48 83 EC 40                    - sub rsp,40
CooldownCondition:CheckCondition+8: 48 89 75 F8                    - mov [rbp-08],rsi
CooldownCondition:CheckCondition+c: 48 8B F1                       - mov rsi,rcx
CooldownCondition:CheckCondition+f: 48 8B 46 18                    - mov rax,[rsi+18]
CooldownCondition:CheckCondition+13: 48 8B C8                       - mov rcx,rax
CooldownCondition:CheckCondition+16: 48 8B 00                       - mov rax,[rax]
CooldownCondition:CheckCondition+19: 49 BA 00 15 0E 10 56 01 00 00  - mov r10,00000156100E1500
previousCooldownFlagChkAOB: FF 50 A0                       - call qword ptr [rax-60]
CooldownCondition:CheckCondition+26: 85 C0                          - test eax,eax
// ---------- INJECTING HERE ----------
CooldownCondition:CheckCondition+28: 74 07                          - je CooldownCondition:CheckCondition+31
// ---------- DONE INJECTING  ----------
CooldownCondition:CheckCondition+2a: B8 01 00 00 00                 - mov eax,00000001
CooldownCondition:CheckCondition+2f: EB 1C                          - jmp CooldownCondition:CheckCondition+4d
CooldownCondition:CheckCondition+31: 48 8B 46 10                    - mov rax,[rsi+10]
CooldownCondition:CheckCondition+35: 48 8B C8                       - mov rcx,rax
CooldownCondition:CheckCondition+38: 83 38 00                       - cmp dword ptr [rax],00
CooldownCondition:CheckCondition+3b: 66 66 90                       - nop 3
CooldownCondition:CheckCondition+3e: 49 BB A7 7E 08 20 56 01 00 00  - mov r11,0000015620087EA7
CooldownCondition:CheckCondition+48: 41 FF D3                       - call r11
CooldownCondition:CheckCondition+4b: 33 C0                          - xor eax,eax
CooldownCondition:CheckCondition+4d: 48 8B 75 F8                    - mov rsi,[rbp-08]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232023</ID>
          <Description>"unlimited energy"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+e3)
define(bytes,F3 0F 11 6E 64)

[ENABLE]
assert(address,bytes)

address:
  db 90 90 90 90 90
return:

[DISABLE]
address:
  db bytes
  // movss [rsi+64],xmm5

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+e3

Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+b8: F3 0F 10 46 64     - movss xmm0,[rsi+64]
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+bd: F3 0F 5A C0        - cvtss2sd xmm0,xmm0
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+c1: F3 0F 10 4D EC     - movss xmm1,[rbp-14]
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+c6: F3 0F 5A C9        - cvtss2sd xmm1,xmm1
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+ca: 66 0F 2F C8        - comisd xmm1,xmm0
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+ce: 7A 06              - jp Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+d6
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+d0: 0F 84 4D 00 00 00  - je Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+123
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+d6: F3 0F 10 45 EC     - movss xmm0,[rbp-14]
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+db: F3 0F 5A C0        - cvtss2sd xmm0,xmm0
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+df: F2 0F 5A E8        - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+e3: F3 0F 11 6E 64     - movss [rsi+64],xmm5
// ---------- DONE INJECTING  ----------
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+e8: 48 8B 46 40        - mov rax,[rsi+40]
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+ec: 48 8B C8           - mov rcx,rax
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+ef: 48 8B F9           - mov rdi,rcx
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+f2: 48 85 C0           - test rax,rax
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+f5: 75 02              - jne Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+f9
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+f7: EB 06              - jmp Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+ff
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+f9: 48 8B CF           - mov rcx,rdi
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+fc: FF 57 18           - call qword ptr [rdi+18]
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+ff: 48 8B CE           - mov rcx,rsi
Zyklus.PlayerEnergyComponent:ChangePlayerEnergy+102: 48 8D 6D 00        - lea rbp,[rbp+00]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232024</ID>
          <Description>"No Cooldown on Dash"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,PlayerRollComponent:Dash+44)
define(bytes,F3 0F 11 6E 70)

[ENABLE]
assert(address,bytes)
address:
  db 90 90 90 90 90

[DISABLE]
address:
  db bytes
  // movss [rsi+70],xmm5

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: PlayerRollComponent:Dash+44

PlayerRollComponent:Dash+16: 49 BB 70 7C 28 35 C5 01 00 00  - mov r11,PlayerRollComponent:CanDash
PlayerRollComponent:Dash+20: 41 FF D3                       - call r11
PlayerRollComponent:Dash+23: 85 C0                          - test eax,eax
PlayerRollComponent:Dash+25: 74 24                          - je PlayerRollComponent:Dash+4b
PlayerRollComponent:Dash+27: F3 0F 10 46 70                 - movss xmm0,[rsi+70]
PlayerRollComponent:Dash+2c: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
PlayerRollComponent:Dash+30: F3 0F 10 0D 98 00 00 00        - movss xmm1,[PlayerRollComponent:Dash+d0]
PlayerRollComponent:Dash+38: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
PlayerRollComponent:Dash+3c: F2 0F 5C C1                    - subsd xmm0,xmm1
PlayerRollComponent:Dash+40: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
PlayerRollComponent:Dash+44: F3 0F 11 6E 70                 - movss [rsi+70],xmm5
// ---------- DONE INJECTING  ----------
PlayerRollComponent:Dash+49: EB 18                          - jmp PlayerRollComponent:Dash+63
PlayerRollComponent:Dash+4b: 48 B9 F0 CA C7 8E C5 01 00 00  - mov rcx,000001C58EC7CAF0
PlayerRollComponent:Dash+55: 90                             - nop 
PlayerRollComponent:Dash+56: 49 BB 9B 65 20 50 C5 01 00 00  - mov r11,000001C55020659B
PlayerRollComponent:Dash+60: 41 FF D3                       - call r11
PlayerRollComponent:Dash+63: F3 0F 10 46 70                 - movss xmm0,[rsi+70]
PlayerRollComponent:Dash+68: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
PlayerRollComponent:Dash+6c: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
PlayerRollComponent:Dash+70: 48 8D 64 24 00                 - lea rsp,[rsp+00]
PlayerRollComponent:Dash+75: 90                             - nop 
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232026</ID>
          <Description>"add 10 Jewels every time you press Tab"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,ResourceTabBar:Setup+2c9)
define(bytes,48 63 88 74 05 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,ResourceTabBar:Setup+2c9)

label(code)
label(return)

newmem:
  add [rax+00000574],(int)10
code:
  movsxd  rcx,dword ptr [rax+00000574]
  jmp return

address:
  jmp newmem
  nop 2
return:

[DISABLE]

address:
  db bytes
  // movsxd  rcx,dword ptr [rax+00000574]

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ResourceTabBar:Setup+2c9

ResourceTabBar:Setup+295: 48 B8 30 E9 CF 63 C5 01 00 00  - mov rax,000001C563CFE930
ResourceTabBar:Setup+29f: 48 8B 00                       - mov rax,[rax]
ResourceTabBar:Setup+2a2: 48 8B C8                       - mov rcx,rax
ResourceTabBar:Setup+2a5: 48 63 95 78 FF FF FF           - movsxd  rdx,dword ptr [rbp-00000088]
ResourceTabBar:Setup+2ac: 83 38 00                       - cmp dword ptr [rax],00
ResourceTabBar:Setup+2af: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
ResourceTabBar:Setup+2b6: 49 BB 70 FE 2F 3F C5 01 00 00  - mov r11,Zyklus.Managers.PlayerManager:GetPlayer
ResourceTabBar:Setup+2c0: 41 FF D3                       - call r11
ResourceTabBar:Setup+2c3: 48 8B C8                       - mov rcx,rax
ResourceTabBar:Setup+2c6: 83 39 00                       - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
ResourceTabBar:Setup+2c9: 48 63 88 74 05 00 00           - movsxd  rcx,dword ptr [rax+00000574]
// ---------- DONE INJECTING  ----------
ResourceTabBar:Setup+2d0: 33 D2                          - xor edx,edx
ResourceTabBar:Setup+2d2: 48 8D 6D 00                    - lea rbp,[rbp+00]
ResourceTabBar:Setup+2d6: 49 BB E0 8B 22 06 C5 01 00 00  - mov r11,Zyklus.General:IntToText
ResourceTabBar:Setup+2e0: 41 FF D3                       - call r11
ResourceTabBar:Setup+2e3: 48 89 45 98                    - mov [rbp-68],rax
ResourceTabBar:Setup+2e7: 48 8B CE                       - mov rcx,rsi
ResourceTabBar:Setup+2ea: 48 8B 55 98                    - mov rdx,[rbp-68]
ResourceTabBar:Setup+2ee: 48 8B 06                       - mov rax,[rsi]
ResourceTabBar:Setup+2f1: FF 90 C8 02 00 00              - call qword ptr [rax+000002C8]
ResourceTabBar:Setup+2f7: 49 8B 46 48                    - mov rax,[r14+48]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232027</ID>
          <Description>"dont spent gold at Uncle Ben"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,Zyklus.Inventory.InventoryComponent:RemoveItem+132)
define(bytes,89 48 18 49 8B 46 18)

[ENABLE]
assert(address,bytes)
address:
  db 90 90 90
return:

[DISABLE]
address:
  db bytes
  // mov [rax+18],ecx
  // mov rax,[r14+18]

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Zyklus.Inventory.InventoryComponent:RemoveItem+132

Zyklus.Inventory.InventoryComponent:RemoveItem+10f: 48 8B 40 10        - mov rax,[rax+10]
Zyklus.Inventory.InventoryComponent:RemoveItem+113: 48 63 4D A8        - movsxd  rcx,dword ptr [rbp-58]
Zyklus.Inventory.InventoryComponent:RemoveItem+117: 48 63 C9           - movsxd  rcx,ecx
Zyklus.Inventory.InventoryComponent:RemoveItem+11a: 48 8D 44 C8 20     - lea rax,[rax+rcx*8+20]
Zyklus.Inventory.InventoryComponent:RemoveItem+11f: 48 8B 08           - mov rcx,[rax]
Zyklus.Inventory.InventoryComponent:RemoveItem+122: 48 8B C1           - mov rax,rcx
Zyklus.Inventory.InventoryComponent:RemoveItem+125: 83 39 00           - cmp dword ptr [rcx],00
Zyklus.Inventory.InventoryComponent:RemoveItem+128: 48 63 49 18        - movsxd  rcx,dword ptr [rcx+18]
Zyklus.Inventory.InventoryComponent:RemoveItem+12c: 2B 4D 90           - sub ecx,[rbp-70]
Zyklus.Inventory.InventoryComponent:RemoveItem+12f: 83 38 00           - cmp dword ptr [rax],00
// ---------- INJECTING HERE ----------
Zyklus.Inventory.InventoryComponent:RemoveItem+132: 89 48 18           - mov [rax+18],ecx
// ---------- DONE INJECTING  ----------
Zyklus.Inventory.InventoryComponent:RemoveItem+135: 49 8B 46 18        - mov rax,[r14+18]
Zyklus.Inventory.InventoryComponent:RemoveItem+139: 48 89 45 A0        - mov [rbp-60],rax
Zyklus.Inventory.InventoryComponent:RemoveItem+13d: 44 89 6D 98        - mov [rbp-68],r13d
Zyklus.Inventory.InventoryComponent:RemoveItem+141: 83 38 00           - cmp dword ptr [rax],00
Zyklus.Inventory.InventoryComponent:RemoveItem+144: 48 8B 45 A0        - mov rax,[rbp-60]
Zyklus.Inventory.InventoryComponent:RemoveItem+148: 48 63 40 18        - movsxd  rax,dword ptr [rax+18]
Zyklus.Inventory.InventoryComponent:RemoveItem+14c: 39 45 98           - cmp [rbp-68],eax
Zyklus.Inventory.InventoryComponent:RemoveItem+14f: 0F 83 33 03 00 00  - jae Zyklus.Inventory.InventoryComponent:RemoveItem+488
Zyklus.Inventory.InventoryComponent:RemoveItem+155: 48 8B 45 A0        - mov rax,[rbp-60]
Zyklus.Inventory.InventoryComponent:RemoveItem+159: 48 8B 40 10        - mov rax,[rax+10]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232031</ID>
          <Description>"Relict always ready"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+2b)
define(bytes,0F 84 AA 01 00 00)

[ENABLE]
assert(address,bytes)
address:
  db 90 90 90 90 90 90

[DISABLE]
address:
  db bytes
  // je Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+1db

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+2b

Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+1: 48 8B EC                       - mov rbp,rsp
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+4: 48 83 EC 40                    - sub rsp,40
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+8: 48 89 75 F8                    - mov [rbp-08],rsi
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+c: 48 8B F1                       - mov rsi,rcx
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+f: 48 B8 B0 36 7C 2A F6 01 00 00  - mov rax,000001F62A7C36B0
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+19: 48 8B 00                       - mov rax,[rax]
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+1c: 48 8B C8                       - mov rcx,rax
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+1f: 83 39 00                       - cmp dword ptr [rcx],00
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+22: 0F B6 80 D8 01 00 00           - movzx eax,byte ptr [rax+000001D8]
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+29: 85 C0                          - test eax,eax
// ---------- INJECTING HERE ----------
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+2b: 0F 84 AA 01 00 00              - je Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+1db
// ---------- DONE INJECTING  ----------
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+31: 48 63 86 BC 00 00 00           - movsxd  rax,dword ptr [rsi+000000BC]
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+38: 85 C0                          - test eax,eax
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+3a: 0F 8E 9B 01 00 00              - jng Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+1db
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+40: 0F B6 86 CA 00 00 00           - movzx eax,byte ptr [rsi+000000CA]
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+47: 85 C0                          - test eax,eax
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+49: 74 10                          - je Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+5b
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+4b: 48 8B CE                       - mov rcx,rsi
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+4e: 49 BB 15 B5 D4 19 F6 01 00 00  - mov r11,000001F619D4B515
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+58: 41 FF D3                       - call r11
Zyklus.DivineRelic.UsableDivineRelicBase:UseStart+5b: 48 8B 46 60                    - mov rax,[rsi+60]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232065</ID>
          <Description>"Mobs always drop something (kill something first so you can activate it)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$lua}
-- Source: https://www.cheatengine.org/forum/viewtopic.php?t=588996
--
if syntaxcheck==true then return '' end

-- assume LaunchMonoDataCollector has been called
if (LaunchMonoDataCollector()==0) then
  error("no mono")
end

function reEscape(s)
  local escPatChars = [[().%+-*?[^]]
  s = s:gsub('.',function(c) if escPatChars:find(c,1,true) then return '%'..c end end)
  return s
end

function findMethod_Addr_BySignature(namespace,classname,methodname,signature,check)
  local meth = findMethod_BySignature(namespace,classname,methodname,signature,check)
  if meth~=nil and meth&gt;0 then return mono_compile_method(meth) end
end

function findMethod_BySignature(namespace,classname,methodname,signature,check)
  assert(type(signature)=='string',"invalid signature")
  signature="^"..reEscape(signature:gsub(";",","))
  local class = mono_findClass(namespace,classname)
  if type(class)~='number' or class==0 then
     print('Class ' .. classname .. ' not found')
     return nil
  end
  local methods=mono_class_enumMethods(class)
  if type(methods)~='table' or #methods&lt;1 then return nil end
  if check then
    for i=1,#methods do
     if methodname == methods[i].name then
       local sign = mono_method_getSignature(methods[i].method)
       if sign:match(signature) then
         return methods[i].method
       end
     end
    end
    end
end

function tohex(n)return string.format('%X',n or 0)end

desired_function = findMethod_Addr_BySignature('','LootDropperComponent','Drop','UnityEngine.Vector2',true)
-- desired_function = tohex(desired_function)
writeBytes(desired_function+0x41d, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90)


-- print(tohex(desired_function))

{$asm}


[DISABLE]
{$lua}
writeBytes(desired_function+0x41d, 0x0F, 0x84, 0xD8, 0x02, 0x00, 0x00)
{$asm}
{
// ORIGINAL CODE - INJECTION POINT: Zyklus.Loot.LootDropperComponent:Drop+41d

Zyklus.Loot.LootDropperComponent:Drop+3ef: 48 8B 40 18                    - mov rax,[rax+18]
Zyklus.Loot.LootDropperComponent:Drop+3f3: 48 8B C8                       - mov rcx,rax
Zyklus.Loot.LootDropperComponent:Drop+3f6: 48 8B 00                       - mov rax,[rax]
Zyklus.Loot.LootDropperComponent:Drop+3f9: FF 90 80 00 00 00              - call qword ptr [rax+00000080]
Zyklus.Loot.LootDropperComponent:Drop+3ff: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
Zyklus.Loot.LootDropperComponent:Drop+403: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0
Zyklus.Loot.LootDropperComponent:Drop+407: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
Zyklus.Loot.LootDropperComponent:Drop+40e: 49 BB B3 E6 F4 BD EC 01 00 00  - mov r11,000001ECBDF4E6B3
Zyklus.Loot.LootDropperComponent:Drop+418: 41 FF D3                       - call r11
Zyklus.Loot.LootDropperComponent:Drop+41b: 85 C0                          - test eax,eax
// ---------- INJECTING HERE ----------
Zyklus.Loot.LootDropperComponent:Drop+41d: 0F 84 D8 02 00 00              - je Zyklus.Loot.LootDropperComponent:Drop+6fb
// ---------- DONE INJECTING  ----------
Zyklus.Loot.LootDropperComponent:Drop+423: BB 02 1F 3B 04                 - mov ebx,043B1F02
Zyklus.Loot.LootDropperComponent:Drop+428: 48 B8 20 E7 FA F3 EC 01 00 00  - mov rax,000001ECF3FAE720
Zyklus.Loot.LootDropperComponent:Drop+432: 48 8B 00                       - mov rax,[rax]
Zyklus.Loot.LootDropperComponent:Drop+435: 48 89 85 78 FE FF FF           - mov [rbp-00000188],rax
Zyklus.Loot.LootDropperComponent:Drop+43c: 48 8B CE                       - mov rcx,rsi
Zyklus.Loot.LootDropperComponent:Drop+43f: 48 8D AD 00 00 00 00           - lea rbp,[rbp+00000000]
Zyklus.Loot.LootDropperComponent:Drop+446: 49 BB 2A F2 74 F1 EC 01 00 00  - mov r11,000001ECF174F22A
Zyklus.Loot.LootDropperComponent:Drop+450: 41 FF D3                       - call r11
Zyklus.Loot.LootDropperComponent:Drop+453: 48 8B D5                       - mov rdx,rbp
Zyklus.Loot.LootDropperComponent:Drop+456: 48 81 C2 60 FF FF FF           - add rdx,FFFFFFFFFFFFFF60
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>232038</ID>
          <Description>"Get Player Data"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{
 This code constantly reads the players health - and ONLY the health. :)
 In fact, what we get here is the Datablock "HealthComponent" as you'll see
 if you throw the address we receive here into the "dissect data" tool.
}

define(address,Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+48)
define(bytes,F3 0F 10 80 30 01 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+48)

label(code)
label(return)
label(playerdata)

newmem:
  mov [playerdata],rax
code:
  movss xmm0,[rax+00000130]
  jmp return

playerdata:
  dq 0

address:
  jmp newmem
  nop 3
return:

registersymbol(playerdata)
[DISABLE]

address:
  db bytes
  // movss xmm0,[rax+00000130]

dealloc(newmem)
unregistersymbol(playerdata)

{
// ORIGINAL CODE - INJECTION POINT: Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+48

Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+1f: 83 39 00                 - cmp dword ptr [rcx],00
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+22: 0F B6 80 D8 01 00 00     - movzx eax,byte ptr [rax+000001D8]
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+29: 85 C0                    - test eax,eax
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+2b: 0F 84 9A 00 00 00        - je Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+cb
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+31: 48 8B 46 38              - mov rax,[rsi+38]
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+35: 48 8B C8                 - mov rcx,rax
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+38: 83 39 00                 - cmp dword ptr [rcx],00
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+3b: 48 8B 80 E0 00 00 00     - mov rax,[rax+000000E0]
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+42: 48 8B C8                 - mov rcx,rax
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+45: 83 39 00                 - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+48: F3 0F 10 80 30 01 00 00  - movss xmm0,[rax+00000130]
// ---------- DONE INJECTING  ----------
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+50: F3 0F 5A C0              - cvtss2sd xmm0,xmm0
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+54: 66 0F 57 C9              - xorpd xmm1,xmm1
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+58: 48 33 C0                 - xor rax,rax
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+5b: 66 0F 2F C8              - comisd xmm1,xmm0
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+5f: 7A 04                    - jp Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+65
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+61: 40 0F 92 C0              - setb al
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+65: 85 C0                    - test eax,eax
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+67: 0F 84 5E 00 00 00        - je Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+cb
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+6d: 48 8B 46 38              - mov rax,[rsi+38]
Zyklus.Player.Input.PlayerInputControllerManager:HandlePotionUse+71: 48 8B C8                 - mov rcx,rax
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>232046</ID>
              <Description>"Health"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Float</VariableType>
              <Address>playerdata</Address>
              <Offsets>
                <Offset>130</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>232063</ID>
              <Description>"Experience"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF0000</Color>
              <VariableType>Float</VariableType>
              <Address>playerdata</Address>
              <Offsets>
                <Offset>30</Offset>
                <Offset>18</Offset>
                <Offset>198</Offset>
                <Offset>20</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>232005</ID>
      <Description>"Gold (Loot Gold to update)"</Description>
      <VariableType>4 Bytes</VariableType>
      <Address>"UnityPlayer.dll"+01629DA8</Address>
      <Offsets>
        <Offset>18</Offset>
        <Offset>20</Offset>
        <Offset>10</Offset>
        <Offset>58</Offset>
        <Offset>0</Offset>
        <Offset>100</Offset>
        <Offset>8</Offset>
        <Offset>D0</Offset>
      </Offsets>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
