<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Loot 5x the credit$"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{$lua}
LaunchMonoDataCollector()
{$asm}

define(address,GameManager:LocalGainCurrency+71)
define(bytes,03 CF 89 48 5C)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  add ecx,edi
  add ecx,edi
  add ecx,edi
  add ecx,edi

code:
  add ecx,edi
  mov [eax+5C],ecx
  jmp return

address:
  jmp newmem
return:

[DISABLE]

address:
  db bytes
  // add ecx,edi
  // mov [eax+5C],ecx

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameManager:LocalGainCurrency+71

GameManager:LocalGainCurrency+56: 50              - push eax
GameManager:LocalGainCurrency+57: 51              - push ecx
GameManager:LocalGainCurrency+58: 39 00           - cmp [eax],eax
GameManager:LocalGainCurrency+5a: E8 D9 09 5C EB  - call System.Collections.Generic.List`1[System.Object]:GetEnumerator
GameManager:LocalGainCurrency+5f: 83 C4 0C        - add esp,0C
GameManager:LocalGainCurrency+62: EB 12           - jmp GameManager:LocalGainCurrency+76
GameManager:LocalGainCurrency+64: 8D 64 24 00     - lea esp,[esp+00]
GameManager:LocalGainCurrency+68: 8B 5D C4        - mov ebx,[ebp-3C]
GameManager:LocalGainCurrency+6b: 8B 43 4C        - mov eax,[ebx+4C]
GameManager:LocalGainCurrency+6e: 8B 48 5C        - mov ecx,[eax+5C]
// ---------- INJECTING HERE ----------
GameManager:LocalGainCurrency+71: 03 CF           - add ecx,edi
// ---------- DONE INJECTING  ----------
GameManager:LocalGainCurrency+73: 89 48 5C        - mov [eax+5C],ecx
GameManager:LocalGainCurrency+76: 8D 45 B8        - lea eax,[ebp-48]
GameManager:LocalGainCurrency+79: BA BC C2 E2 1A  - mov edx,1AE2C2BC
GameManager:LocalGainCurrency+7e: 83 EC 0C        - sub esp,0C
GameManager:LocalGainCurrency+81: 50              - push eax
GameManager:LocalGainCurrency+82: E8 61 0A 5C EB  - call System.Collections.Generic.List`1+Enumerator[System.Object]:MoveNext
GameManager:LocalGainCurrency+87: 83 C4 10        - add esp,10
GameManager:LocalGainCurrency+8a: 85 C0           - test eax,eax
GameManager:LocalGainCurrency+8c: 75 DA           - jne GameManager:LocalGainCurrency+68
GameManager:LocalGainCurrency+8e: 83 EC 0C        - sub esp,0C
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>4</ID>
      <Description>"Get Addresses"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{$lua}
LaunchMonoDataCollector()
{$asm}

define(address,6B1EB389)
define(bytes,83 EC 0C 50 39 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000)

label(code)
label(return)
label(player)

newmem:
  mov [player],eax
code:
  sub esp,0C
  push eax
  cmp [eax],eax
  jmp return

player:
  dd 0

address:
  jmp newmem
  nop
return:

registersymbol(player)
[DISABLE]

address:
  db bytes
  // sub esp,0C
  // push eax
  // cmp [eax],eax

dealloc(newmem)
unregistersymbol(player)

{
// ORIGINAL CODE - INJECTION POINT: HealthCounter:Update+19

HealthCounter:Update: 55              - push ebp
HealthCounter:Update+1: 8B EC           - mov ebp,esp
HealthCounter:Update+3: 83 EC 08        - sub esp,08
HealthCounter:Update+6: 8B 45 08        - mov eax,[ebp+08]
HealthCounter:Update+9: 8B 48 10        - mov ecx,[eax+10]
HealthCounter:Update+c: 8B D1           - mov edx,ecx
HealthCounter:Update+e: 39 12           - cmp [edx],edx
HealthCounter:Update+10: 8B 49 60        - mov ecx,[ecx+60]
HealthCounter:Update+13: 89 4D FC        - mov [ebp-04],ecx
HealthCounter:Update+16: 8B 40 10        - mov eax,[eax+10]
// ---------- INJECTING HERE ----------
HealthCounter:Update+19: 83 EC 0C        - sub esp,0C
// ---------- DONE INJECTING  ----------
HealthCounter:Update+1c: 50              - push eax
HealthCounter:Update+1d: 39 00           - cmp [eax],eax
HealthCounter:Update+1f: E8 2C 00 00 00  - call BaseStatData:get_MaxHealth
HealthCounter:Update+24: 83 C4 10        - add esp,10
HealthCounter:Update+27: 8B C8           - mov ecx,eax
HealthCounter:Update+29: 8B 45 FC        - mov eax,[ebp-04]
HealthCounter:Update+2c: 83 EC 04        - sub esp,04
HealthCounter:Update+2f: 51              - push ecx
HealthCounter:Update+30: 50              - push eax
HealthCounter:Update+31: FF 75 08        - push [ebp+08]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"BaseStatData"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <GroupHeader>1</GroupHeader>
          <Address>player</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
          <CheatEntries>
            <CheatEntry>
              <ID>7</ID>
              <Description>"Health"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>+60</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>15</ID>
              <Description>"energy"</Description>
              <Color>FF0000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[player]+74</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"Opals (credit$)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>008000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>+5c</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>8</ID>
              <Description>"charisma"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+1C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>9</ID>
              <Description>"endurance"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+28</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>10</ID>
              <Description>"agility"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+10</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>11</ID>
              <Description>"faith"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+34</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"intellect"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+40</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>13</ID>
              <Description>"spirit"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+4C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14</ID>
              <Description>"strength"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+58</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>16</ID>
              <Description>"basePhysAttack"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+84</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>17</ID>
              <Description>"baseMagAttack"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+90</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>18</ID>
              <Description>"baseHealPower"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+9C</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>19</ID>
              <Description>"basePhysDefense"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+A8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>20</ID>
              <Description>"baseMagDefense"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+B4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>21</ID>
              <Description>"baseEnergyRecoverRate"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>+C4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"baseSpeed"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>+C8</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>23</ID>
              <Description>"baseAttackSpeed"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>+E0</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>24</ID>
              <Description>"isInvincible"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>0000FF</Color>
              <VariableType>Byte</VariableType>
              <Address>+E5</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>25</ID>
              <Description>"revivesRemaining"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>+E8</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Structures StructVersion="2">
    <Structure Name="BaseStatData" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
      <Elements>
        <Element Offset="8" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000008" Description="tempAgility" DisplayMethod="unsigned integer"/>
        <Element Offset="12" Vartype="Float" Bytesize="4" OffsetHex="0000000C" Description="tempAgilityModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="16" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000010" Description="agility" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="20" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000014" Description="tempCharisma" DisplayMethod="unsigned integer"/>
        <Element Offset="24" Vartype="Float" Bytesize="4" OffsetHex="00000018" Description="tempCharismaModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="28" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000001C" Description="charisma" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="32" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000020" Description="tempEndurance" DisplayMethod="unsigned integer"/>
        <Element Offset="36" Vartype="Float" Bytesize="4" OffsetHex="00000024" Description="tempEnduranceModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="40" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000028" Description="endurance" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="44" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000002C" Description="tempFaith" DisplayMethod="unsigned integer"/>
        <Element Offset="48" Vartype="Float" Bytesize="4" OffsetHex="00000030" Description="tempFaithModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="52" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000034" Description="faith" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="56" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000038" Description="tempIntellect" DisplayMethod="unsigned integer"/>
        <Element Offset="60" Vartype="Float" Bytesize="4" OffsetHex="0000003C" Description="tempIntellectModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="64" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000040" Description="intellect" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="68" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000044" Description="tempSpirit" DisplayMethod="unsigned integer"/>
        <Element Offset="72" Vartype="Float" Bytesize="4" OffsetHex="00000048" Description="tempSpiritModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="76" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000004C" Description="spirit" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="80" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000050" Description="tempStrength" DisplayMethod="unsigned integer"/>
        <Element Offset="84" Vartype="Float" Bytesize="4" OffsetHex="00000054" Description="tempStrengthModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="88" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000058" Description="strength" DisplayMethod="unsigned integer" BackgroundColor="80FFFF"/>
        <Element Offset="92" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000005C" Description="opals" DisplayMethod="unsigned integer" BackgroundColor="FFFF80"/>
        <Element Offset="96" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000060" Description="health" DisplayMethod="unsigned integer" BackgroundColor="FFFF80"/>
        <Element Offset="100" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000064" Description="baseMaxHealth" DisplayMethod="unsigned integer"/>
        <Element Offset="104" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000068" Description="maxHealth" DisplayMethod="unsigned integer"/>
        <Element Offset="108" Vartype="Float" Bytesize="4" OffsetHex="0000006C" Description="tempMaxHealth" DisplayMethod="unsigned integer"/>
        <Element Offset="112" Vartype="Float" Bytesize="4" OffsetHex="00000070" Description="tempMaxHealthModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="116" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000074" Description="energy" DisplayMethod="unsigned integer" BackgroundColor="FFFF80"/>
        <Element Offset="120" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000078" Description="maxEnergy" DisplayMethod="unsigned integer"/>
        <Element Offset="124" Vartype="Float" Bytesize="4" OffsetHex="0000007C" Description="tempMaxEnergy" DisplayMethod="unsigned integer"/>
        <Element Offset="128" Vartype="Float" Bytesize="4" OffsetHex="00000080" Description="tempMaxEnergyModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="132" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000084" Description="basePhysAttack" DisplayMethod="unsigned integer"/>
        <Element Offset="136" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000088" Description="tempPhysAttack" DisplayMethod="unsigned integer"/>
        <Element Offset="140" Vartype="Float" Bytesize="4" OffsetHex="0000008C" Description="tempPhysAttackModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="144" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000090" Description="baseMagAttack" DisplayMethod="unsigned integer"/>
        <Element Offset="148" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000094" Description="tempMagAttack" DisplayMethod="unsigned integer"/>
        <Element Offset="152" Vartype="Float" Bytesize="4" OffsetHex="00000098" Description="tempMagAttackModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="156" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000009C" Description="baseHealPower" DisplayMethod="unsigned integer"/>
        <Element Offset="160" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000A0" Description="tempHealPower" DisplayMethod="unsigned integer"/>
        <Element Offset="164" Vartype="Float" Bytesize="4" OffsetHex="000000A4" Description="tempHealPowerModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="168" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000A8" Description="basePhysDefense" DisplayMethod="unsigned integer"/>
        <Element Offset="172" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000AC" Description="tempPhysDefense" DisplayMethod="unsigned integer"/>
        <Element Offset="176" Vartype="Float" Bytesize="4" OffsetHex="000000B0" Description="tempPhysDefenseModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="180" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000B4" Description="baseMagDefense" DisplayMethod="unsigned integer"/>
        <Element Offset="184" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000B8" Description="tempMagDefense" DisplayMethod="unsigned integer"/>
        <Element Offset="188" Vartype="Float" Bytesize="4" OffsetHex="000000BC" Description="tempMagDefenseModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="192" Vartype="Float" Bytesize="4" OffsetHex="000000C0" Description="tempEnergyRecoverRate" DisplayMethod="unsigned integer"/>
        <Element Offset="196" Vartype="Float" Bytesize="4" OffsetHex="000000C4" Description="baseEnergyRecoverRate" DisplayMethod="unsigned integer"/>
        <Element Offset="200" Vartype="Float" Bytesize="4" OffsetHex="000000C8" Description="baseSpeed" DisplayMethod="unsigned integer"/>
        <Element Offset="204" Vartype="Float" Bytesize="4" OffsetHex="000000CC" Description="tempSpeed" DisplayMethod="unsigned integer"/>
        <Element Offset="208" Vartype="Float" Bytesize="4" OffsetHex="000000D0" Description="tempSpeedModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="212" Vartype="Float" Bytesize="4" OffsetHex="000000D4" Description="difficultyModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="216" Vartype="Float" Bytesize="4" OffsetHex="000000D8" Description="tempAttackSpeed" DisplayMethod="unsigned integer"/>
        <Element Offset="220" Vartype="Float" Bytesize="4" OffsetHex="000000DC" Description="tempAttackSpeedModifier" DisplayMethod="unsigned integer"/>
        <Element Offset="224" Vartype="Float" Bytesize="4" OffsetHex="000000E0" Description="baseAttackSpeed" DisplayMethod="unsigned integer"/>
        <Element Offset="228" Vartype="Byte" Bytesize="1" OffsetHex="000000E4" Description="dead" DisplayMethod="unsigned integer"/>
        <Element Offset="229" Vartype="Byte" Bytesize="1" OffsetHex="000000E5" Description="isInvincible" DisplayMethod="unsigned integer"/>
        <Element Offset="230" Vartype="Byte" Bytesize="1" OffsetHex="000000E6" Description="doNotScaleHealth" DisplayMethod="unsigned integer"/>
        <Element Offset="232" Vartype="4 Bytes" Bytesize="4" OffsetHex="000000E8" Description="revivesRemaining" DisplayMethod="unsigned integer"/>
      </Elements>
    </Structure>
  </Structures>
</CheatTable>
