<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>114982</ID>
      <Description>"&lt;=== Attach to process"</Description>
      <Options 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("Dragon Age The Veilguard.exe")
  if(process == nil) then
    ShowMessage('The process is NOT found!')
  end
{$asm}


[DISABLE]

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"ability points do not decrease"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]

aobscanmodule(points,Dragon Age The Veilguard.exe,44 29 81 C8 01 00 00) // should be unique
alloc(newmem,$100,points)

label(code)
label(return)

newmem:

code:
  // sub [rcx+000001C8],r8d
  jmp return

points:
  jmp newmem
  nop 2
return:
registersymbol(points)

[DISABLE]

points:
  db 44 29 81 C8 01 00 00

unregistersymbol(points)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+D28168

Dragon Age The Veilguard.exe+D28143: 57                       - push rdi
Dragon Age The Veilguard.exe+D28144: 48 83 EC 40              - sub rsp,40
Dragon Age The Veilguard.exe+D28148: 0F B6 74 24 78           - movzx esi,byte ptr [rsp+78]
Dragon Age The Veilguard.exe+D2814D: 41 0F B6 E9              - movzx ebp,r9b
Dragon Age The Veilguard.exe+D28151: 8B DA                    - mov ebx,edx
Dragon Age The Veilguard.exe+D28153: 48 8B F9                 - mov rdi,rcx
Dragon Age The Veilguard.exe+D28156: 40 84 F6                 - test sil,sil
Dragon Age The Veilguard.exe+D28159: 75 46                    - jne "Dragon Age The Veilguard.exe"+D281A1
Dragon Age The Veilguard.exe+D2815B: 44 39 81 C8 01 00 00     - cmp [rcx+000001C8],r8d
Dragon Age The Veilguard.exe+D28162: 0F 82 05 01 00 00        - jb "Dragon Age The Veilguard.exe"+D2826D
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+D28168: 44 29 81 C8 01 00 00     - sub [rcx+000001C8],r8d
// ---------- DONE INJECTING  ----------
Dragon Age The Veilguard.exe+D2816F: 48 83 B9 78 02 00 00 00  - cmp qword ptr [rcx+00000278],00
Dragon Age The Veilguard.exe+D28177: 74 20                    - je "Dragon Age The Veilguard.exe"+D28199
Dragon Age The Veilguard.exe+D28179: 48 8B 89 78 02 00 00     - mov rcx,[rcx+00000278]
Dragon Age The Veilguard.exe+D28180: 48 83 C1 40              - add rcx,40
Dragon Age The Veilguard.exe+D28184: 48 8B 01                 - mov rax,[rcx]
Dragon Age The Veilguard.exe+D28187: FF 50 10                 - call qword ptr [rax+10]
Dragon Age The Veilguard.exe+D2818A: 8B 97 C8 01 00 00        - mov edx,[rdi+000001C8]
Dragon Age The Veilguard.exe+D28190: 48 8D 48 78              - lea rcx,[rax+78]
Dragon Age The Veilguard.exe+D28194: E8 F7 20 FF FF           - call "Dragon Age The Veilguard.exe"+D1A290
Dragon Age The Veilguard.exe+D28199: 48 8B CF                 - mov rcx,rdi
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"add 500 additional XP each time you get some XP (affects vendor strength, too...)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(xp,Dragon Age The Veilguard.exe,45 89 71 04 41 89 39) // should be unique
alloc(newmem,$100,xp)

label(code)
label(return)

newmem:
  add r14d, #500
code:
  mov [r9+04],r14d
  mov [r9],edi
  jmp return

xp:
  jmp newmem
  nop 2
return:
registersymbol(xp)

[DISABLE]

xp:
  db 45 89 71 04 41 89 39

unregistersymbol(xp)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+D23910

Dragon Age The Veilguard.exe+D238F0: 48 8B 02              - mov rax,[rdx]
Dragon Age The Veilguard.exe+D238F3: 48 8B C8              - mov rcx,rax
Dragon Age The Veilguard.exe+D238F6: 48 C1 E9 20           - shr rcx,20
Dragon Age The Veilguard.exe+D238FA: 3B CB                 - cmp ecx,ebx
Dragon Age The Veilguard.exe+D238FC: 44 0F 44 F0           - cmove r14d,eax
Dragon Age The Veilguard.exe+D23900: 48 83 C2 08           - add rdx,08
Dragon Age The Veilguard.exe+D23904: 49 3B D0              - cmp rdx,r8
Dragon Age The Veilguard.exe+D23907: 75 E7                 - jne "Dragon Age The Veilguard.exe"+D238F0
Dragon Age The Veilguard.exe+D23909: 44 89 74 24 50        - mov [rsp+50],r14d
Dragon Age The Veilguard.exe+D2390E: 8B FB                 - mov edi,ebx
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+D23910: 45 89 71 04           - mov [r9+04],r14d
// ---------- DONE INJECTING  ----------
Dragon Age The Veilguard.exe+D23914: 41 89 39              - mov [r9],edi
Dragon Age The Veilguard.exe+D23917: 4C 39 AE A8 01 00 00  - cmp [rsi+000001A8],r13
Dragon Age The Veilguard.exe+D2391E: 74 17                 - je "Dragon Age The Veilguard.exe"+D23937
Dragon Age The Veilguard.exe+D23920: 48 8B 8E A8 01 00 00  - mov rcx,[rsi+000001A8]
Dragon Age The Veilguard.exe+D23927: 45 8B C6              - mov r8d,r14d
Dragon Age The Veilguard.exe+D2392A: 49 8B D7              - mov rdx,r15
Dragon Age The Veilguard.exe+D2392D: E8 6E 62 00 00        - call "Dragon Age The Veilguard.exe"+D29BA0
Dragon Age The Veilguard.exe+D23932: 44 8B 54 24 54        - mov r10d,[rsp+54]
Dragon Age The Veilguard.exe+D23937: 48 8B 85 F8 00 00 00  - mov rax,[rbp+000000F8]
Dragon Age The Veilguard.exe+D2393E: 45 8B CE              - mov r9d,r14d
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>30</ID>
          <Description>"unlimited mana"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Dragon Age The Veilguard.exe
  Version: 
  Date   : 2024-11-01
  Author : Marc

  lets jump over the "decrease mana" code :)
}

define(address,"Dragon Age The Veilguard.exe"+1313A90)
define(bytes,0F 84)

[ENABLE]
assert(address,bytes)
alloc(newmem,$1000,"Dragon Age The Veilguard.exe"+1313A90)

address:
  db 0f 88 // js "Dragon Age The Veilguard.exe"+1313B4E

[DISABLE]
address:
  db bytes
  // je "Dragon Age The Veilguard.exe"+1313B4E

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+1313A90

Dragon Age The Veilguard.exe+1313A75: 0F 28 F3                 - movaps xmm6,xmm3
Dragon Age The Veilguard.exe+1313A78: 83 78 48 00              - cmp dword ptr [rax+48],00
Dragon Age The Veilguard.exe+1313A7C: 75 0C                    - jne "Dragon Age The Veilguard.exe"+1313A8A
Dragon Age The Veilguard.exe+1313A7E: 66 90                    - nop 2
Dragon Age The Veilguard.exe+1313A80: 38 41 09                 - cmp [rcx+09],al
Dragon Age The Veilguard.exe+1313A83: 0F 95 C0                 - setne al
Dragon Age The Veilguard.exe+1313A86: FF C0                    - inc eax
Dragon Age The Veilguard.exe+1313A88: EB 03                    - jmp "Dragon Age The Veilguard.exe"+1313A8D
Dragon Age The Veilguard.exe+1313A8A: 8B 40 48                 - mov eax,[rax+48]
Dragon Age The Veilguard.exe+1313A8D: 83 F8 02                 - cmp eax,02
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+1313A90: 0F 84 B8 00 00 00        - je "Dragon Age The Veilguard.exe"+1313B4E
// ---------- DONE INJECTING  ----------
Dragon Age The Veilguard.exe+1313A96: F3 0F 10 49 28           - movss xmm1,[rcx+28]
Dragon Age The Veilguard.exe+1313A9B: 0F 57 E4                 - xorps xmm4,xmm4
Dragon Age The Veilguard.exe+1313A9E: 0F 28 DD                 - movaps xmm3,xmm5
Dragon Age The Veilguard.exe+1313AA1: 8B C2                    - mov eax,edx
Dragon Age The Veilguard.exe+1313AA3: 48 89 74 24 50           - mov [rsp+50],rsi
Dragon Age The Veilguard.exe+1313AA8: F3 0F 11 74 24 20        - movss [rsp+20],xmm6
Dragon Age The Veilguard.exe+1313AAE: 48 89 7C 24 58           - mov [rsp+58],rdi
Dragon Age The Veilguard.exe+1313AB3: F3 48 0F 2A E0           - cvtsi2ss xmm4,rax
Dragon Age The Veilguard.exe+1313AB8: 89 51 2C                 - mov [rcx+2C],edx
// some more code ^^
Dragon Age The Veilguard.exe+1313ABB: F3 0F 59 25 A1 3B 6E 03  - mulss xmm4,["Dragon Age The Veilguard.exe"+49F7664]
Dragon Age The Veilguard.exe+1313AC3 - 0F28 C4               - movaps xmm0,xmm4
Dragon Age The Veilguard.exe+1313AC6 - 0F28 D4               - movaps xmm2,xmm4
Dragon Age The Veilguard.exe+1313AC9 - F3 0F59 D6            - mulss xmm2,xmm6
Dragon Age The Veilguard.exe+1313ACD - F3 0F59 C5            - mulss xmm0,xmm5
Dragon Age The Veilguard.exe+1313AD1 - F3 0F5C D8            - subss xmm3,xmm0
Dragon Age The Veilguard.exe+1313AD5 - 0F28 C4               - movaps xmm0,xmm4
Dragon Age The Veilguard.exe+1313AD8 - F3 0F59 C5            - mulss xmm0,xmm5
Dragon Age The Veilguard.exe+1313ADC - F3 0F59 E6            - mulss xmm4,xmm6
Dragon Age The Veilguard.exe+1313AE0 - F3 0F58 DA            - addss xmm3,xmm2
Dragon Age The Veilguard.exe+1313AE4 - 0F28 D5               - movaps xmm2,xmm5
Dragon Age The Veilguard.exe+1313AE7 - F3 0F5C D0            - subss xmm2,xmm0
Dragon Age The Veilguard.exe+1313AEB - F3 0F11 59 28         - movss [rcx+28],xmm3
Dragon Age The Veilguard.exe+1313AF0 - 0F28 DD               - movaps xmm3,xmm5
Dragon Age The Veilguard.exe+1313AF3 - F3 0F58 D4            - addss xmm2,xmm4
Dragon Age The Veilguard.exe+1313AF7 - E8 64FAFFFF           - call "Dragon Age The Veilguard.exe"+1313560
Dragon Age The Veilguard.exe+1313AFC - 48 8B 7B 30           - mov rdi,[rbx+30]
Dragon Age The Veilguard.exe+1313B00 - 8B 73 38              - mov esi,[rbx+38]
Dragon Age The Veilguard.exe+1313B03 - 8B 17                 - mov edx,[rdi]
Dragon Age The Veilguard.exe+1313B05 - 0FBA E2 11            - bt edx,11

}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"Get Gold Address (activate and loot some gold or by something)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(getgold,Dragon Age The Veilguard.exe,68 74 05 41 8B 41 04 C3) // should be unique
alloc(newmem,$1000,getgold)

label(code)
label(return)
label(goldaddress)

newmem:
  mov [goldaddress],r9
code:
  mov eax,[r9+04]
  ret 
  jmp return

goldaddress:
  dq 0

getgold+03:
  jmp newmem
return:
registersymbol(getgold goldaddress)

[DISABLE]

getgold+03:
  db 41 8B 41 04 C3

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Dragon Age The Veilguard.exe+13F6449

Dragon Age The Veilguard.exe+13F642B: 4D 3B 4A 68  - cmp r9,[r10+68]
Dragon Age The Veilguard.exe+13F642F: 74 0E        - je "Dragon Age The Veilguard.exe"+13F643F
Dragon Age The Veilguard.exe+13F6431: 41 3B 11     - cmp edx,[r9]
Dragon Age The Veilguard.exe+13F6434: 7C 09        - jl "Dragon Age The Veilguard.exe"+13F643F
Dragon Age The Veilguard.exe+13F6436: 49 8D 41 08  - lea rax,[r9+08]
Dragon Age The Veilguard.exe+13F643A: 4C 3B C8     - cmp r9,rax
Dragon Age The Veilguard.exe+13F643D: 75 04        - jne "Dragon Age The Veilguard.exe"+13F6443
Dragon Age The Veilguard.exe+13F643F: 4D 8B 4A 68  - mov r9,[r10+68]
Dragon Age The Veilguard.exe+13F6443: 4D 3B 4A 68  - cmp r9,[r10+68]
Dragon Age The Veilguard.exe+13F6447: 74 05        - je "Dragon Age The Veilguard.exe"+13F644E
// ---------- INJECTING HERE ----------
Dragon Age The Veilguard.exe+13F6449: 41 8B 41 04  - mov eax,[r9+04]
// ---------- DONE INJECTING  ----------
Dragon Age The Veilguard.exe+13F644D: C3           - ret 
Dragon Age The Veilguard.exe+13F644E: 33 C0        - xor eax,eax
Dragon Age The Veilguard.exe+13F6450: C3           - ret 
Dragon Age The Veilguard.exe+13F6451: CC           - int 3 
Dragon Age The Veilguard.exe+13F6452: CC           - int 3 
Dragon Age The Veilguard.exe+13F6453: CC           - int 3 
Dragon Age The Veilguard.exe+13F6454: CC           - int 3 
Dragon Age The Veilguard.exe+13F6455: CC           - int 3 
Dragon Age The Veilguard.exe+13F6456: CC           - int 3 
Dragon Age The Veilguard.exe+13F6457: CC           - int 3 
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>18</ID>
              <Description>"Amount of Gold"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>4 Bytes</VariableType>
              <Address>goldaddress</Address>
              <Offsets>
                <Offset>4</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
