<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="51">
  <CheatEntries>
    <CheatEntry>
      <ID>114982</ID>
      <Description>"&lt;=== Attach to process  and activate mono"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <Color>0000FF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end
  if(getCEVersion() &lt; 7.4) then
    ShowMessage('Warning! CE version should be 7.4 or above')
  end

OpenProcess("DreamGlobe.exe")
  if(process == nil) then
    ShowMessage('The process is NOT found!')
  end

LaunchMonoDataCollector()
{$asm}


[DISABLE]

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"+300 xp each time you get XP"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,ItemManager:AddExp+120 )
define(bytes,48 03 C1 48 89 87 90 02 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$100,ItemManager:AddExp+120 )

label(code)
label(return)

newmem:
  add rax,#300

code:
  add rax,rcx
  mov [rdi+00000290],rax
  jmp return

address:
  jmp newmem
  nop 5
return:

[DISABLE]

address:
  db bytes
  // add rax,rcx
  // mov [rdi+00000290],rax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ItemManager:AddExp+120

ItemManager:AddExp+f2: 48 8B 8F 90 02 00 00  - mov rcx,[rdi+00000290]
ItemManager:AddExp+f9: 48 2B C1              - sub rax,rcx
ItemManager:AddExp+fc: 49 63 CE              - movsxd  rcx,r14d
ItemManager:AddExp+ff: 48 3B C1              - cmp rax,rcx
ItemManager:AddExp+102: 0F 8D 0E 00 00 00     - jnl ItemManager:AddExp+116
ItemManager:AddExp+108: B8 FF FF FF 7F        - mov eax,7FFFFFFF
ItemManager:AddExp+10d: 48 89 87 90 02 00 00  - mov [rdi+00000290],rax
ItemManager:AddExp+114: EB 14                 - jmp ItemManager:AddExp+12a
ItemManager:AddExp+116: 48 8B 87 90 02 00 00  - mov rax,[rdi+00000290]
ItemManager:AddExp+11d: 49 63 CE              - movsxd  rcx,r14d
// ---------- INJECTING HERE ----------
ItemManager:AddExp+120: 48 03 C1              - add rax,rcx
// ---------- DONE INJECTING  ----------
ItemManager:AddExp+123: 48 89 87 90 02 00 00  - mov [rdi+00000290],rax
ItemManager:AddExp+12a: 48 8B 87 90 02 00 00  - mov rax,[rdi+00000290]
ItemManager:AddExp+131: 48 85 C0              - test rax,rax
ItemManager:AddExp+134: 7D 09                 - jnl ItemManager:AddExp+13f
ItemManager:AddExp+136: 33 C0                 - xor eax,eax
ItemManager:AddExp+138: 48 89 87 90 02 00 00  - mov [rdi+00000290],rax
ItemManager:AddExp+13f: 48 8B 87 90 02 00 00  - mov rax,[rdi+00000290]
ItemManager:AddExp+146: 48 2B 45 C8           - sub rax,[rbp-38]
ItemManager:AddExp+14a: 48 63 C0              - movsxd  rax,eax
ItemManager:AddExp+14d: 48 89 45 B8           - mov [rbp-48],rax
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>3</ID>
          <Description>"+1000 gold each time you collect money"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,ItemManager:AddMoney+82 )
define(bytes,48 03 C1 48 89 87 C0 01 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,ItemManager:AddMoney+82 )

label(code)
label(return)

newmem:
  add rax,#1000
code:
  add rax,rcx
  mov [rdi+000001C0],rax
  jmp return

address:
  jmp newmem
  nop 5
return:

[DISABLE]

address:
  db bytes
  // add rax,rcx
  // mov [rdi+000001C0],rax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ItemManager:AddMoney+82

ItemManager:AddMoney+58: 48 8B 8F C0 01 00 00  - mov rcx,[rdi+000001C0]
ItemManager:AddMoney+5f: 48 2B C1              - sub rax,rcx
ItemManager:AddMoney+62: 49 63 CF              - movsxd  rcx,r15d
ItemManager:AddMoney+65: 48 3B C1              - cmp rax,rcx
ItemManager:AddMoney+68: 7D 0E                 - jnl ItemManager:AddMoney+78
ItemManager:AddMoney+6a: B8 FF FF FF 7F        - mov eax,7FFFFFFF
ItemManager:AddMoney+6f: 48 89 87 C0 01 00 00  - mov [rdi+000001C0],rax
ItemManager:AddMoney+76: EB 14                 - jmp ItemManager:AddMoney+8c
ItemManager:AddMoney+78: 48 8B 87 C0 01 00 00  - mov rax,[rdi+000001C0]
ItemManager:AddMoney+7f: 49 63 CF              - movsxd  rcx,r15d
// ---------- INJECTING HERE ----------
ItemManager:AddMoney+82: 48 03 C1              - add rax,rcx
// ---------- DONE INJECTING  ----------
ItemManager:AddMoney+85: 48 89 87 C0 01 00 00  - mov [rdi+000001C0],rax
ItemManager:AddMoney+8c: 48 8B 87 C0 01 00 00  - mov rax,[rdi+000001C0]
ItemManager:AddMoney+93: 48 85 C0              - test rax,rax
ItemManager:AddMoney+96: 7F 09                 - jg ItemManager:AddMoney+a1
ItemManager:AddMoney+98: 33 C0                 - xor eax,eax
ItemManager:AddMoney+9a: 48 89 87 C0 01 00 00  - mov [rdi+000001C0],rax
ItemManager:AddMoney+a1: B8 FF FF FF 7F        - mov eax,7FFFFFFF
ItemManager:AddMoney+a6: 48 63 8F 98 02 00 00  - movsxd  rcx,dword ptr [rdi+00000298]
ItemManager:AddMoney+ad: 2B C1                 - sub eax,ecx
ItemManager:AddMoney+af: 41 3B C7              - cmp eax,r15d
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>4</ID>
          <Description>"don't spend money when buying"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,ItemManager:SpendMoney+3c )
define(bytes,48 2B C1 48 89 87 C0 01 00 00)

[ENABLE]

assert(address,bytes)
alloc(newmem,$1000,ItemManager:SpendMoney+3c )


label(code)
label(return)

newmem:

code:
  // sub rax,rcx
  mov [rdi+000001C0],rax
  jmp return

address:
  jmp newmem
  nop 5
return:

[DISABLE]

address:
  db bytes
  // sub rax,rcx
  // mov [rdi+000001C0],rax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ItemManager:SpendMoney+3c

ItemManager:SpendMoney+1a: 48 63 CE              - movsxd  rcx,esi
ItemManager:SpendMoney+1d: 48 3B C1              - cmp rax,rcx
ItemManager:SpendMoney+20: 7C 0C                 - jl ItemManager:SpendMoney+2e
ItemManager:SpendMoney+22: 48 8B 87 C0 01 00 00  - mov rax,[rdi+000001C0]
ItemManager:SpendMoney+29: 48 85 C0              - test rax,rax
ItemManager:SpendMoney+2c: 7F 04                 - jg ItemManager:SpendMoney+32
ItemManager:SpendMoney+2e: 33 C0                 - xor eax,eax
ItemManager:SpendMoney+30: EB 19                 - jmp ItemManager:SpendMoney+4b
ItemManager:SpendMoney+32: 48 8B 87 C0 01 00 00  - mov rax,[rdi+000001C0]
ItemManager:SpendMoney+39: 48 63 CE              - movsxd  rcx,esi
// ---------- INJECTING HERE ----------
ItemManager:SpendMoney+3c: 48 2B C1              - sub rax,rcx
// ---------- DONE INJECTING  ----------
ItemManager:SpendMoney+3f: 48 89 87 C0 01 00 00  - mov [rdi+000001C0],rax
ItemManager:SpendMoney+46: B8 01 00 00 00        - mov eax,00000001
ItemManager:SpendMoney+4b: 48 8B 34 24           - mov rsi,[rsp]
ItemManager:SpendMoney+4f: 48 8B 7C 24 08        - mov rdi,[rsp+08]
ItemManager:SpendMoney+54: 48 83 C4 18           - add rsp,18
ItemManager:SpendMoney+58: C3                    - ret 
172B18517C9: 00 00                 - add [rax],al
172B18517CB: 00 00                 - add [rax],al
172B18517CD: 00 00                 - add [rax],al
172B18517CF: 00 01                 - add [rcx],al
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"get sacrifice points (click on map to update)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]

aobscanfunction(points,MyQuestPanel:RefreshQuest,48 63 80 84 01 00 00 83)  // should be unique in this function
alloc(newmem,$100,points)

label(code)
label(return)
label(opfer)

newmem:
  mov [opfer],rax
code:
  movsxd  rax,dword ptr [rax+00000184]
  jmp return

opfer:
  dq 0

points:
  jmp newmem
  nop 2
return:
registersymbol(points opfer)

[DISABLE]

points:
  db 48 63 80 84 01 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: MyQuestPanel:RefreshQuest+ec

MyQuestPanel:RefreshQuest+b4: 0F B6 80 E6 01 00 00           - movzx eax,byte ptr [rax+000001E6]
MyQuestPanel:RefreshQuest+bb: 85 C0                          - test eax,eax
MyQuestPanel:RefreshQuest+bd: 0F 85 55 01 00 00              - jne MyQuestPanel:RefreshQuest+218
MyQuestPanel:RefreshQuest+c3: 48 B8 00 37 40 94 71 01 00 00  - mov rax,0000017194403700
MyQuestPanel:RefreshQuest+cd: 48 8B 00                       - mov rax,[rax]
MyQuestPanel:RefreshQuest+d0: 0F B6 80 E7 01 00 00           - movzx eax,byte ptr [rax+000001E7]
MyQuestPanel:RefreshQuest+d7: 85 C0                          - test eax,eax
MyQuestPanel:RefreshQuest+d9: 0F 85 39 01 00 00              - jne MyQuestPanel:RefreshQuest+218
MyQuestPanel:RefreshQuest+df: 48 B8 00 37 40 94 71 01 00 00  - mov rax,0000017194403700
MyQuestPanel:RefreshQuest+e9: 48 8B 00                       - mov rax,[rax]
// ---------- INJECTING HERE ----------
MyQuestPanel:RefreshQuest+ec: 48 63 80 84 01 00 00           - movsxd  rax,dword ptr [rax+00000184]
// ---------- DONE INJECTING  ----------
MyQuestPanel:RefreshQuest+f3: 83 F8 64                       - cmp eax,64
MyQuestPanel:RefreshQuest+f6: 0F 8C 5C 00 00 00              - jl MyQuestPanel:RefreshQuest+158
MyQuestPanel:RefreshQuest+fc: 48 8B 46 58                    - mov rax,[rsi+58]
MyQuestPanel:RefreshQuest+100: 48 8B C8                       - mov rcx,rax
MyQuestPanel:RefreshQuest+103: BA 01 00 00 00                 - mov edx,00000001
MyQuestPanel:RefreshQuest+108: 83 38 00                       - cmp dword ptr [rax],00
MyQuestPanel:RefreshQuest+10b: 66 66 90                       - nop 3
MyQuestPanel:RefreshQuest+10e: 49 BB 01 54 B8 AB 72 01 00 00  - mov r11,00000172ABB85401
MyQuestPanel:RefreshQuest+118: 41 FF D3                       - call r11
MyQuestPanel:RefreshQuest+11b: 48 8B 4E 58                    - mov rcx,[rsi+58]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>7</ID>
              <Description>"No description"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>opfer</Address>
              <Offsets>
                <Offset>184</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
