<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>26386</ID>
      <Description>"9 of item upon discard/usage DLC"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(WrtToItmOnDiscardDLC,Tales of Arise.exe,44 89 63 08 44 3B E7) // should be unique
alloc(newmem,$1000,WrtToItmOnDiscardDLC)

label(code)
label(return)

newmem:

code:
  mov r12d,#9 // New Code
  mov [rbx+08],r12d
  cmp r12d,edi
  jmp return

WrtToItmOnDiscardDLC:
  jmp newmem
  nop 2
return:
registersymbol(WrtToItmOnDiscardDLC)

[DISABLE]

WrtToItmOnDiscardDLC:
  db 44 89 63 08 44 3B E7

unregistersymbol(WrtToItmOnDiscardDLC)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+CFA9FF

Tales of Arise.exe+CFA9D9: 48 8B CF        - mov rcx,rdi
Tales of Arise.exe+CFA9DC: 4C 8D 45 AF     - lea r8,[rbp-51]
Tales of Arise.exe+CFA9E0: 48 89 45 AF     - mov [rbp-51],rax
Tales of Arise.exe+CFA9E4: 48 8D 55 AB     - lea rdx,[rbp-55]
Tales of Arise.exe+CFA9E8: E8 43 39 00 00  - call "Tales of Arise.exe"+CFE330
Tales of Arise.exe+CFA9ED: 48 63 45 AB     - movsxd  rax,dword ptr [rbp-55]
Tales of Arise.exe+CFA9F1: 48 8D 0C 80     - lea rcx,[rax+rax*4]
Tales of Arise.exe+CFA9F5: 48 8B 07        - mov rax,[rdi]
Tales of Arise.exe+CFA9F8: 48 8D 1C C8     - lea rbx,[rax+rcx*8]
Tales of Arise.exe+CFA9FC: 8B 7B 08        - mov edi,[rbx+08]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+CFA9FF: 44 89 63 08     - mov [rbx+08],r12d
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+CFAA03: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CFAA06: 7E 09           - jle "Tales of Arise.exe"+CFAA11
Tales of Arise.exe+CFAA08: E8 33 13 00 00  - call "Tales of Arise.exe"+CFBD40
Tales of Arise.exe+CFAA0D: 48 89 43 10     - mov [rbx+10],rax
Tales of Arise.exe+CFAA11: 45 84 ED        - test r13l,r13l
Tales of Arise.exe+CFAA14: 74 10           - je "Tales of Arise.exe"+CFAA26
Tales of Arise.exe+CFAA16: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CFAA19: 7E 0B           - jle "Tales of Arise.exe"+CFAA26
Tales of Arise.exe+CFAA1B: 8B 55 6F        - mov edx,[rbp+6F]
Tales of Arise.exe+CFAA1E: 48 8B CE        - mov rcx,rsi
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26387</ID>
      <Description>"13 of item upon discard/usage DLC"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(WrtToItmOnDiscardDLC,Tales of Arise.exe,44 89 63 08 44 3B E7) // should be unique
alloc(newmem,$1000,WrtToItmOnDiscardDLC)

label(code)
label(return)

newmem:

code:
  mov r12d,#13 // New Code
  mov [rbx+08],r12d
  cmp r12d,edi
  jmp return

WrtToItmOnDiscardDLC:
  jmp newmem
  nop 2
return:
registersymbol(WrtToItmOnDiscardDLC)

[DISABLE]

WrtToItmOnDiscardDLC:
  db 44 89 63 08 44 3B E7

unregistersymbol(WrtToItmOnDiscardDLC)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+CFA9FF

Tales of Arise.exe+CFA9D9: 48 8B CF        - mov rcx,rdi
Tales of Arise.exe+CFA9DC: 4C 8D 45 AF     - lea r8,[rbp-51]
Tales of Arise.exe+CFA9E0: 48 89 45 AF     - mov [rbp-51],rax
Tales of Arise.exe+CFA9E4: 48 8D 55 AB     - lea rdx,[rbp-55]
Tales of Arise.exe+CFA9E8: E8 43 39 00 00  - call "Tales of Arise.exe"+CFE330
Tales of Arise.exe+CFA9ED: 48 63 45 AB     - movsxd  rax,dword ptr [rbp-55]
Tales of Arise.exe+CFA9F1: 48 8D 0C 80     - lea rcx,[rax+rax*4]
Tales of Arise.exe+CFA9F5: 48 8B 07        - mov rax,[rdi]
Tales of Arise.exe+CFA9F8: 48 8D 1C C8     - lea rbx,[rax+rcx*8]
Tales of Arise.exe+CFA9FC: 8B 7B 08        - mov edi,[rbx+08]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+CFA9FF: 44 89 63 08     - mov [rbx+08],r12d
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+CFAA03: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CFAA06: 7E 09           - jle "Tales of Arise.exe"+CFAA11
Tales of Arise.exe+CFAA08: E8 33 13 00 00  - call "Tales of Arise.exe"+CFBD40
Tales of Arise.exe+CFAA0D: 48 89 43 10     - mov [rbx+10],rax
Tales of Arise.exe+CFAA11: 45 84 ED        - test r13l,r13l
Tales of Arise.exe+CFAA14: 74 10           - je "Tales of Arise.exe"+CFAA26
Tales of Arise.exe+CFAA16: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CFAA19: 7E 0B           - jle "Tales of Arise.exe"+CFAA26
Tales of Arise.exe+CFAA1B: 8B 55 6F        - mov edx,[rbp+6F]
Tales of Arise.exe+CFAA1E: 48 8B CE        - mov rcx,rsi
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26388</ID>
      <Description>"81 of item upon discard/usage DLC"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(WrtToItmOnDiscardDLC,Tales of Arise.exe,44 89 63 08 44 3B E7) // should be unique
alloc(newmem,$1000,WrtToItmOnDiscardDLC)

label(code)
label(return)

newmem:

code:
  mov r12d,#81 // New Code
  mov [rbx+08],r12d
  cmp r12d,edi
  jmp return

WrtToItmOnDiscardDLC:
  jmp newmem
  nop 2
return:
registersymbol(WrtToItmOnDiscardDLC)

[DISABLE]

WrtToItmOnDiscardDLC:
  db 44 89 63 08 44 3B E7

unregistersymbol(WrtToItmOnDiscardDLC)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+CFA9FF

Tales of Arise.exe+CFA9D9: 48 8B CF        - mov rcx,rdi
Tales of Arise.exe+CFA9DC: 4C 8D 45 AF     - lea r8,[rbp-51]
Tales of Arise.exe+CFA9E0: 48 89 45 AF     - mov [rbp-51],rax
Tales of Arise.exe+CFA9E4: 48 8D 55 AB     - lea rdx,[rbp-55]
Tales of Arise.exe+CFA9E8: E8 43 39 00 00  - call "Tales of Arise.exe"+CFE330
Tales of Arise.exe+CFA9ED: 48 63 45 AB     - movsxd  rax,dword ptr [rbp-55]
Tales of Arise.exe+CFA9F1: 48 8D 0C 80     - lea rcx,[rax+rax*4]
Tales of Arise.exe+CFA9F5: 48 8B 07        - mov rax,[rdi]
Tales of Arise.exe+CFA9F8: 48 8D 1C C8     - lea rbx,[rax+rcx*8]
Tales of Arise.exe+CFA9FC: 8B 7B 08        - mov edi,[rbx+08]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+CFA9FF: 44 89 63 08     - mov [rbx+08],r12d
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+CFAA03: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CFAA06: 7E 09           - jle "Tales of Arise.exe"+CFAA11
Tales of Arise.exe+CFAA08: E8 33 13 00 00  - call "Tales of Arise.exe"+CFBD40
Tales of Arise.exe+CFAA0D: 48 89 43 10     - mov [rbx+10],rax
Tales of Arise.exe+CFAA11: 45 84 ED        - test r13l,r13l
Tales of Arise.exe+CFAA14: 74 10           - je "Tales of Arise.exe"+CFAA26
Tales of Arise.exe+CFAA16: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CFAA19: 7E 0B           - jle "Tales of Arise.exe"+CFAA26
Tales of Arise.exe+CFAA1B: 8B 55 6F        - mov edx,[rbp+6F]
Tales of Arise.exe+CFAA1E: 48 8B CE        - mov rcx,rsi
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26382</ID>
      <Description>"Food Timer always set at 1 minute left (LEGACY)"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-08
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(DecreaseTheFoodTimer,Tales of Arise.exe,F3 0F 5C CE F3 0F 11 48 34) // should be unique
alloc(newmem,$1000,DecreaseTheFoodTimer)

label(code)
label(return)

newmem:

alloc(My60, 4)

code:
  //subss xmm1,xmm6 // Original Code
  movss xmm1,[My60] // New Code
  movss [rax+34],xmm1
  jmp return

My60:
 dd (float)60

dealloc(My60)

DecreaseTheFoodTimer:
  jmp newmem
  nop 4
return:
registersymbol(DecreaseTheFoodTimer)

[DISABLE]

DecreaseTheFoodTimer:
  db F3 0F 5C CE F3 0F 11 48 34

unregistersymbol(DecreaseTheFoodTimer)
dealloc(newmem)
dealloc(My60)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+93F62C

Tales of Arise.exe+93F600: 0F 84 C1 00 00 00        - je "Tales of Arise.exe"+93F6C7
Tales of Arise.exe+93F606: E8 85 E9 FE FF           - call "Tales of Arise.exe"+92DF90
Tales of Arise.exe+93F60B: 84 C0                    - test al,al
Tales of Arise.exe+93F60D: 0F 85 B4 00 00 00        - jne "Tales of Arise.exe"+93F6C7
Tales of Arise.exe+93F613: 48 8B CF                 - mov rcx,rdi
Tales of Arise.exe+93F616: 48 89 5C 24 48           - mov [rsp+48],rbx
Tales of Arise.exe+93F61B: E8 A0 F2 FF FF           - call "Tales of Arise.exe"+93E8C0
Tales of Arise.exe+93F620: 48 8B D8                 - mov rbx,rax
Tales of Arise.exe+93F623: 80 78 28 05              - cmp byte ptr [rax+28],05
Tales of Arise.exe+93F627: F3 0F 10 48 34           - movss xmm1,[rax+34]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+93F62C: F3 0F 5C CE              - subss xmm1,xmm6
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+93F630: F3 0F 11 48 34           - movss [rax+34],xmm1
Tales of Arise.exe+93F635: 0F 28 D1                 - movaps xmm2,xmm1
Tales of Arise.exe+93F638: 75 46                    - jne "Tales of Arise.exe"+93F680
Tales of Arise.exe+93F63A: 80 78 3C 00              - cmp byte ptr [rax+3C],00
Tales of Arise.exe+93F63E: 75 40                    - jne "Tales of Arise.exe"+93F680
Tales of Arise.exe+93F640: F3 0F 10 40 38           - movss xmm0,[rax+38]
Tales of Arise.exe+93F645: F3 0F 59 05 17 AE 00 02  - mulss xmm0,["Tales of Arise.exe"+294A464]
Tales of Arise.exe+93F64D: 0F 2F C8                 - comiss xmm1,xmm0
Tales of Arise.exe+93F650: 77 2E                    - ja "Tales of Arise.exe"+93F680
Tales of Arise.exe+93F652: 48 8D 4F 30              - lea rcx,[rdi+30]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26389</ID>
      <Description>"Battle Chaining Gauge doesn't decrease"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(DecrsBattleChainGauge,Tales of Arise.exe,F3 0F 11 90 AC 0F 00 00) // should be unique
alloc(newmem,$1000,DecrsBattleChainGauge)

label(code)
label(return)
label(oldcode)

newmem:

alloc(My99, 4)
alloc(My1, 4)

code:
  comiss xmm2,[My99]
  ja oldcode
  comiss xmm2,[My1]
  jb oldcode
  comiss xmm2,[rax+00000FAC]
  ja oldcode
  jmp return

oldcode:
  movss [rax+00000FAC],xmm2
  jmp return

My99:
 dd (float)99
My1:
 dd (float)1

DecrsBattleChainGauge:
  jmp newmem
  nop 3
return:
registersymbol(DecrsBattleChainGauge)

[DISABLE]

DecrsBattleChainGauge:
  db F3 0F 11 90 AC 0F 00 00

unregistersymbol(DecrsBattleChainGauge)
dealloc(newmem)
dealloc(My99)
dealloc(My1)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C85708

Tales of Arise.exe+C856E0: 48 8B 41 28              - mov rax,[rcx+28]
Tales of Arise.exe+C856E4: 0F 57 C0                 - xorps xmm0,xmm0
Tales of Arise.exe+C856E7: F3 0F 10 98 AC 0F 00 00  - movss xmm3,[rax+00000FAC]
Tales of Arise.exe+C856EF: 0F 28 D3                 - movaps xmm2,xmm3
Tales of Arise.exe+C856F2: F3 0F 58 D1              - addss xmm2,xmm1
Tales of Arise.exe+C856F6: 0F 2F D0                 - comiss xmm2,xmm0
Tales of Arise.exe+C856F9: 73 05                    - jae "Tales of Arise.exe"+C85700
Tales of Arise.exe+C856FB: 0F 57 D2                 - xorps xmm2,xmm2
Tales of Arise.exe+C856FE: EB 08                    - jmp "Tales of Arise.exe"+C85708
Tales of Arise.exe+C85700: F3 0F 5D 15 B0 B7 35 03  - minss xmm2,["Tales of Arise.exe"+3FE0EB8]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C85708: F3 0F 11 90 AC 0F 00 00  - movss [rax+00000FAC],xmm2
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C85710: 48 8B 41 28              - mov rax,[rcx+28]
Tales of Arise.exe+C85714: 80 B8 A8 0F 00 00 00     - cmp byte ptr [rax+00000FA8],00
Tales of Arise.exe+C8571B: 74 48                    - je "Tales of Arise.exe"+C85765
Tales of Arise.exe+C8571D: F3 0F 10 90 AC 0F 00 00  - movss xmm2,[rax+00000FAC]
Tales of Arise.exe+C85725: 0F 2F D3                 - comiss xmm2,xmm3
Tales of Arise.exe+C85728: 76 12                    - jna "Tales of Arise.exe"+C8573C
Tales of Arise.exe+C8572A: F3 0F 10 88 B0 0F 00 00  - movss xmm1,[rax+00000FB0]
Tales of Arise.exe+C85732: F3 0F 5C D3              - subss xmm2,xmm3
Tales of Arise.exe+C85736: F3 0F 5C CA              - subss xmm1,xmm2
Tales of Arise.exe+C8573A: EB 11                    - jmp "Tales of Arise.exe"+C8574D
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>2</ID>
      <Description>"500x Skill Usage"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-09
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(SkillUsageIncrementAmt,Tales of Arise.exe,41 B8 01 00 00 00 48 8D 54 24 38 48 8B) // should be unique
alloc(newmem,$1000,SkillUsageIncrementAmt)

label(code)
label(return)

newmem:

code:
  //mov r8d,00000001 // Original Code
  mov r8d,#500 // New Code
  // Increments by 100 instead of 1
  jmp return

SkillUsageIncrementAmt:
  jmp newmem
  nop
return:
registersymbol(SkillUsageIncrementAmt)

[DISABLE]

SkillUsageIncrementAmt:
  db 41 B8 01 00 00 00

unregistersymbol(SkillUsageIncrementAmt)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+B91D64

Tales of Arise.exe+B91D3E: B9 5B 00 02 00     - mov ecx,0002005B
Tales of Arise.exe+B91D43: E8 28 6C 0D 00     - call "Tales of Arise.exe"+C68970
Tales of Arise.exe+B91D48: 0F B6 C0           - movzx eax,al
Tales of Arise.exe+B91D4B: 85 C0              - test eax,eax
Tales of Arise.exe+B91D4D: 74 02              - je "Tales of Arise.exe"+B91D51
Tales of Arise.exe+B91D4F: EB 26              - jmp "Tales of Arise.exe"+B91D77
Tales of Arise.exe+B91D51: 48 8B 44 24 30     - mov rax,[rsp+30]
Tales of Arise.exe+B91D56: 48 8B 00           - mov rax,[rax]
Tales of Arise.exe+B91D59: 48 8B 4C 24 30     - mov rcx,[rsp+30]
Tales of Arise.exe+B91D5E: FF 90 D0 04 00 00  - call qword ptr [rax+000004D0]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+B91D64: 41 B8 01 00 00 00  - mov r8d,00000001
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+B91D6A: 48 8D 54 24 38     - lea rdx,[rsp+38]
Tales of Arise.exe+B91D6F: 48 8B C8           - mov rcx,rax
Tales of Arise.exe+B91D72: E8 B9 7E 0C 00     - call "Tales of Arise.exe"+C59C30
Tales of Arise.exe+B91D77: 48 83 C4 28        - add rsp,28
Tales of Arise.exe+B91D7B: C3                 - ret 
Tales of Arise.exe+B91D7C: CC                 - int 3 
Tales of Arise.exe+B91D7D: CC                 - int 3 
Tales of Arise.exe+B91D7E: CC                 - int 3 
Tales of Arise.exe+B91D7F: CC                 - int 3 
Tales of Arise.exe+B91D80: 48 89 54 24 10     - mov [rsp+10],rdx
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>7</ID>
      <Description>"2x EXP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-10
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(AmountToAddToXP,Tales of Arise.exe,8B 97 F0 03 00 00 4C 8D) // should be unique
alloc(newmem,$1000,AmountToAddToXP)

label(code)
label(return)

newmem:

code:
  mov edx,[rdi+000003F0]
  imul edx, #2 // Added Code
  jmp return

AmountToAddToXP:
  jmp newmem
  nop
return:
registersymbol(AmountToAddToXP)

[DISABLE]

AmountToAddToXP:
  db 8B 97 F0 03 00 00

unregistersymbol(AmountToAddToXP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+BFDA47

Tales of Arise.exe+BFDA23: 48 8D 14 C1           - lea rdx,[rcx+rax*8]
Tales of Arise.exe+BFDA27: 48 3B CA              - cmp rcx,rdx
Tales of Arise.exe+BFDA2A: 0F 84 B4 01 00 00     - je "Tales of Arise.exe"+BFDBE4
Tales of Arise.exe+BFDA30: 48 8B 19              - mov rbx,[rcx]
Tales of Arise.exe+BFDA33: 40 38 73 40           - cmp [rbx+40],sil
Tales of Arise.exe+BFDA37: 74 0E                 - je "Tales of Arise.exe"+BFDA47
Tales of Arise.exe+BFDA39: 48 83 C1 08           - add rcx,08
Tales of Arise.exe+BFDA3D: 48 3B CA              - cmp rcx,rdx
Tales of Arise.exe+BFDA40: 75 EE                 - jne "Tales of Arise.exe"+BFDA30
Tales of Arise.exe+BFDA42: E9 9D 01 00 00        - jmp "Tales of Arise.exe"+BFDBE4
// ---------- INJECTING HERE ----------
Tales of Arise.exe+BFDA47: 8B 97 F0 03 00 00     - mov edx,[rdi+000003F0]
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+BFDA4D: 4C 8D 85 D8 00 00 00  - lea r8,[rbp+000000D8]
Tales of Arise.exe+BFDA54: 48 8B CB              - mov rcx,rbx
Tales of Arise.exe+BFDA57: E8 54 AA 05 00        - call "Tales of Arise.exe"+C584B0
Tales of Arise.exe+BFDA5C: 4C 8D B7 B8 04 00 00  - lea r14,[rdi+000004B8]
Tales of Arise.exe+BFDA63: 41 8B 46 08           - mov eax,[r14+08]
Tales of Arise.exe+BFDA67: 41 3B 46 34           - cmp eax,[r14+34]
Tales of Arise.exe+BFDA6B: 74 56                 - je "Tales of Arise.exe"+BFDAC3
Tales of Arise.exe+BFDA6D: 49 8B 56 40           - mov rdx,[r14+40]
Tales of Arise.exe+BFDA71: 49 8D 4E 38           - lea rcx,[r14+38]
Tales of Arise.exe+BFDA75: 4D 63 46 48           - movsxd  r8,dword ptr [r14+48]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Infinite SP Usage"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-10
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(WriteNewSPValue,Tales of Arise.exe,89 41 70 44 3B C0) // should be unique
alloc(newmem,$1000,WriteNewSPValue)

label(code)
label(return)

newmem:

code:
  //mov [rcx+70],eax // Original Code
  cmp r8d,eax
  jmp return

WriteNewSPValue:
  jmp newmem
  nop
return:
registersymbol(WriteNewSPValue)

[DISABLE]

WriteNewSPValue:
  db 89 41 70 44 3B C0

unregistersymbol(WriteNewSPValue)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C589FA

Tales of Arise.exe+C589DF: CC                    - int 3 
Tales of Arise.exe+C589E0: 48 83 EC 28           - sub rsp,28
Tales of Arise.exe+C589E4: 44 8B 41 70           - mov r8d,[rcx+70]
Tales of Arise.exe+C589E8: 85 D2                 - test edx,edx
Tales of Arise.exe+C589EA: 79 04                 - jns "Tales of Arise.exe"+C589F0
Tales of Arise.exe+C589EC: 33 C0                 - xor eax,eax
Tales of Arise.exe+C589EE: EB 0A                 - jmp "Tales of Arise.exe"+C589FA
Tales of Arise.exe+C589F0: B8 FF E0 F5 05        - mov eax,05F5E0FF
Tales of Arise.exe+C589F5: 3B D0                 - cmp edx,eax
Tales of Arise.exe+C589F7: 0F 4C C2              - cmovl eax,edx
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C589FA: 89 41 70              - mov [rcx+70],eax
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C589FD: 44 3B C0              - cmp r8d,eax
Tales of Arise.exe+C58A00: 7D 25                 - jnl "Tales of Arise.exe"+C58A27
Tales of Arise.exe+C58A02: E8 A9 78 22 00        - call "Tales of Arise.exe"+E802B0
Tales of Arise.exe+C58A07: 48 85 C0              - test rax,rax
Tales of Arise.exe+C58A0A: 74 1B                 - je "Tales of Arise.exe"+C58A27
Tales of Arise.exe+C58A0C: 48 8B 88 C0 00 00 00  - mov rcx,[rax+000000C0]
Tales of Arise.exe+C58A13: 48 85 C9              - test rcx,rcx
Tales of Arise.exe+C58A16: 74 0F                 - je "Tales of Arise.exe"+C58A27
Tales of Arise.exe+C58A18: 48 83 C1 70           - add rcx,70
Tales of Arise.exe+C58A1C: 33 D2                 - xor edx,edx
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>19</ID>
      <Description>"Hero Mode (can't die)"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-10
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(AddDamage,Tales of Arise.exe,03 C8 8B C1 89 44 24 28 83 7C 24 28 00 7D) // should be unique
alloc(newmem,$1000,AddDamage)

label(code)
label(return)
label(dothis)

newmem:

code:
  add ecx,eax
  mov r8d,eax
  mov rax,#0
  mov rax,[rsp+50]
  cmp [rax+000002B0],#0
  mov rax,#0
  mov eax,r8d
  jne dothis
  cmp eax,0
  jg dothis
  cmp ecx,#2 // minimum HP
  jg dothis
  sub ecx,eax
  jmp dothis

dothis:
  mov eax,ecx
  mov [rsp+28],eax
  jmp return

AddDamage:
  jmp newmem
  nop 3
return:
registersymbol(AddDamage)

[DISABLE]

AddDamage:
  db 03 C8 8B C1 89 44 24 28

unregistersymbol(AddDamage)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+B9DDB8

Tales of Arise.exe+B9DD8B: 8B 54 24 20              - mov edx,[rsp+20]
Tales of Arise.exe+B9DD8F: 48 8B 44 24 50           - mov rax,[rsp+50]
Tales of Arise.exe+B9DD94: 0F B6 88 08 03 00 00     - movzx ecx,byte ptr [rax+00000308]
Tales of Arise.exe+B9DD9B: E8 D0 B4 00 00           - call "Tales of Arise.exe"+BA9270
Tales of Arise.exe+B9DDA0: 89 44 24 20              - mov [rsp+20],eax
Tales of Arise.exe+B9DDA4: 83 7C 24 20 00           - cmp dword ptr [rsp+20],00
Tales of Arise.exe+B9DDA9: 75 05                    - jne "Tales of Arise.exe"+B9DDB0
Tales of Arise.exe+B9DDAB: E9 88 00 00 00           - jmp "Tales of Arise.exe"+B9DE38
Tales of Arise.exe+B9DDB0: 8B 44 24 20              - mov eax,[rsp+20]
Tales of Arise.exe+B9DDB4: 8B 4C 24 24              - mov ecx,[rsp+24]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+B9DDB8: 03 C8                    - add ecx,eax
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+B9DDBA: 8B C1                    - mov eax,ecx
Tales of Arise.exe+B9DDBC: 89 44 24 28              - mov [rsp+28],eax
Tales of Arise.exe+B9DDC0: 83 7C 24 28 00           - cmp dword ptr [rsp+28],00
Tales of Arise.exe+B9DDC5: 7D 0A                    - jnl "Tales of Arise.exe"+B9DDD1
Tales of Arise.exe+B9DDC7: C7 44 24 38 00 00 00 00  - mov [rsp+38],00000000
Tales of Arise.exe+B9DDCF: EB 24                    - jmp "Tales of Arise.exe"+B9DDF5
Tales of Arise.exe+B9DDD1: 8B 44 24 30              - mov eax,[rsp+30]
Tales of Arise.exe+B9DDD5: 39 44 24 28              - cmp [rsp+28],eax
Tales of Arise.exe+B9DDD9: 7D 0A                    - jnl "Tales of Arise.exe"+B9DDE5
Tales of Arise.exe+B9DDDB: 8B 44 24 28              - mov eax,[rsp+28]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>20</ID>
      <Description>"God Mode (can't die + almost 1-hit kill)"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-10
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(AddDamage,Tales of Arise.exe,03 C8 8B C1 89 44 24 28 83 7C 24 28 00 7D) // should be unique
alloc(newmem,$1000,AddDamage)

label(code)
label(return)
label(dothis)
label(enemydothis)

newmem:

code:
  add ecx,eax
  mov r8d,eax
  mov rax,#0
  mov rax,[rsp+50]
  cmp [rax+000002B0],#0
  mov rax,#0
  mov eax,r8d
  jne enemydothis
  cmp eax,0
  jg dothis
  cmp ecx,#2 // minimum HP
  jg dothis
  sub ecx,eax
  jmp dothis

enemydothis:
  cmp ecx,#1
  jle dothis
  mov ecx,#1
  jmp dothis

dothis:
  mov eax,ecx
  mov [rsp+28],eax
  jmp return

AddDamage:
  jmp newmem
  nop 3
return:
registersymbol(AddDamage)

[DISABLE]

AddDamage:
  db 03 C8 8B C1 89 44 24 28

unregistersymbol(AddDamage)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+B9DDB8

Tales of Arise.exe+B9DD8B: 8B 54 24 20              - mov edx,[rsp+20]
Tales of Arise.exe+B9DD8F: 48 8B 44 24 50           - mov rax,[rsp+50]
Tales of Arise.exe+B9DD94: 0F B6 88 08 03 00 00     - movzx ecx,byte ptr [rax+00000308]
Tales of Arise.exe+B9DD9B: E8 D0 B4 00 00           - call "Tales of Arise.exe"+BA9270
Tales of Arise.exe+B9DDA0: 89 44 24 20              - mov [rsp+20],eax
Tales of Arise.exe+B9DDA4: 83 7C 24 20 00           - cmp dword ptr [rsp+20],00
Tales of Arise.exe+B9DDA9: 75 05                    - jne "Tales of Arise.exe"+B9DDB0
Tales of Arise.exe+B9DDAB: E9 88 00 00 00           - jmp "Tales of Arise.exe"+B9DE38
Tales of Arise.exe+B9DDB0: 8B 44 24 20              - mov eax,[rsp+20]
Tales of Arise.exe+B9DDB4: 8B 4C 24 24              - mov ecx,[rsp+24]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+B9DDB8: 03 C8                    - add ecx,eax
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+B9DDBA: 8B C1                    - mov eax,ecx
Tales of Arise.exe+B9DDBC: 89 44 24 28              - mov [rsp+28],eax
Tales of Arise.exe+B9DDC0: 83 7C 24 28 00           - cmp dword ptr [rsp+28],00
Tales of Arise.exe+B9DDC5: 7D 0A                    - jnl "Tales of Arise.exe"+B9DDD1
Tales of Arise.exe+B9DDC7: C7 44 24 38 00 00 00 00  - mov [rsp+38],00000000
Tales of Arise.exe+B9DDCF: EB 24                    - jmp "Tales of Arise.exe"+B9DDF5
Tales of Arise.exe+B9DDD1: 8B 44 24 30              - mov eax,[rsp+30]
Tales of Arise.exe+B9DDD5: 39 44 24 28              - cmp [rsp+28],eax
Tales of Arise.exe+B9DDD9: 7D 0A                    - jnl "Tales of Arise.exe"+B9DDE5
Tales of Arise.exe+B9DDDB: 8B 44 24 28              - mov eax,[rsp+28]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>5</ID>
      <Description>"Infinite Item Usage (LEGACY)"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-09
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(SetItemAmt,Tales of Arise.exe,44 89 63 08 44 3B E7) // should be unique
alloc(newmem,$1000,SetItemAmt)

label(code)
label(return)

newmem:

code:
  mov r12d,[rbx+08] // New Code
  //mov [rbx+08],r12d // original code
  cmp r12d,edi
  jmp return

SetItemAmt:
  jmp newmem
  nop 2
return:
registersymbol(SetItemAmt)

[DISABLE]

SetItemAmt:
  db 44 89 63 08 44 3B E7

unregistersymbol(SetItemAmt)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+CEBF8F

Tales of Arise.exe+CEBF69: 48 8B CF        - mov rcx,rdi
Tales of Arise.exe+CEBF6C: 4C 8D 45 AF     - lea r8,[rbp-51]
Tales of Arise.exe+CEBF70: 48 89 45 AF     - mov [rbp-51],rax
Tales of Arise.exe+CEBF74: 48 8D 55 AB     - lea rdx,[rbp-55]
Tales of Arise.exe+CEBF78: E8 03 39 00 00  - call "Tales of Arise.exe"+CEF880
Tales of Arise.exe+CEBF7D: 48 63 45 AB     - movsxd  rax,dword ptr [rbp-55]
Tales of Arise.exe+CEBF81: 48 8D 0C 80     - lea rcx,[rax+rax*4]
Tales of Arise.exe+CEBF85: 48 8B 07        - mov rax,[rdi]
Tales of Arise.exe+CEBF88: 48 8D 1C C8     - lea rbx,[rax+rcx*8]
Tales of Arise.exe+CEBF8C: 8B 7B 08        - mov edi,[rbx+08]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+CEBF8F: 44 89 63 08     - mov [rbx+08],r12d
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+CEBF93: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CEBF96: 7E 09           - jle "Tales of Arise.exe"+CEBFA1
Tales of Arise.exe+CEBF98: E8 23 13 00 00  - call "Tales of Arise.exe"+CED2C0
Tales of Arise.exe+CEBF9D: 48 89 43 10     - mov [rbx+10],rax
Tales of Arise.exe+CEBFA1: 45 84 ED        - test r13l,r13l
Tales of Arise.exe+CEBFA4: 74 10           - je "Tales of Arise.exe"+CEBFB6
Tales of Arise.exe+CEBFA6: 44 3B E7        - cmp r12d,edi
Tales of Arise.exe+CEBFA9: 7E 0B           - jle "Tales of Arise.exe"+CEBFB6
Tales of Arise.exe+CEBFAB: 8B 55 6F        - mov edx,[rbp+6F]
Tales of Arise.exe+CEBFAE: 48 8B CE        - mov rcx,rsi
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26</ID>
      <Description>"Don't use up materials/ores when crafting accessories (LEGACY)"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-12
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(UseUpMaterial,Tales of Arise.exe,E8 5F E1 FC FF) // should be unique
alloc(newmem,$1000,UseUpMaterial)

label(code)
label(return)

newmem:

code:
  //call "Tales of Arise.exe"+CEF460
  jmp return

UseUpMaterial:
  jmp newmem
return:
registersymbol(UseUpMaterial)

[DISABLE]

UseUpMaterial:
  db E8 5F E1 FC FF

unregistersymbol(UseUpMaterial)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+D212FC

Tales of Arise.exe+D212D3: 48 B8 25 49 92 24 49 92 24 49  - mov rax,4924924924924925
Tales of Arise.exe+D212DD: 48 F7 E9                       - imul rcx
Tales of Arise.exe+D212E0: 48 C1 FA 04                    - sar rdx,04
Tales of Arise.exe+D212E4: 48 8B C2                       - mov rax,rdx
Tales of Arise.exe+D212E7: 48 C1 E8 3F                    - shr rax,3F
Tales of Arise.exe+D212EB: 48 03 D0                       - add rdx,rax
Tales of Arise.exe+D212EE: 83 FA FF                       - cmp edx,-01
Tales of Arise.exe+D212F1: 74 0E                          - je "Tales of Arise.exe"+D21301
Tales of Arise.exe+D212F3: 41 B8 01 00 00 00              - mov r8d,00000001
Tales of Arise.exe+D212F9: 48 8B CB                       - mov rcx,rbx
// ---------- INJECTING HERE ----------
Tales of Arise.exe+D212FC: E8 5F E1 FC FF                 - call "Tales of Arise.exe"+CEF460
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+D21301: 48 8B B5 D0 01 00 00           - mov rsi,[rbp+000001D0]
Tales of Arise.exe+D21308: 48 8B 05 A1 D3 EA 03           - mov rax,["Tales of Arise.exe"+4BCE6B0]
Tales of Arise.exe+D2130F: 8B 5E 2C                       - mov ebx,[rsi+2C]
Tales of Arise.exe+D21312: 48 85 C0                       - test rax,rax
Tales of Arise.exe+D21315: 74 48                          - je "Tales of Arise.exe"+D2135F
Tales of Arise.exe+D21317: 48 8B 88 60 09 00 00           - mov rcx,[rax+00000960]
Tales of Arise.exe+D2131E: 48 85 C9                       - test rcx,rcx
Tales of Arise.exe+D21321: 74 3C                          - je "Tales of Arise.exe"+D2135F
Tales of Arise.exe+D21323: 48 8B 01                       - mov rax,[rcx]
Tales of Arise.exe+D21326: FF 90 50 01 00 00              - call qword ptr [rax+00000150]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>27</ID>
      <Description>"Don't use up materials/ores when enhancing accessories (LEGACY)"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2021-09-12
  Author : chausies

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(UseMatsToEnhance,Tales of Arise.exe,E8 F7 41 E0 FF) // should be unique
alloc(newmem,$1000,UseMatsToEnhance)

label(code)
label(return)

newmem:

code:
  //call "Tales of Arise.exe"+CED160
  jmp return

UseMatsToEnhance:
  jmp newmem
return:
registersymbol(UseMatsToEnhance)

[DISABLE]

UseMatsToEnhance:
  db E8 F7 41 E0 FF

unregistersymbol(UseMatsToEnhance)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+EE8F64

Tales of Arise.exe+EE8F44: 0F 4C F8        - cmovl edi,eax
Tales of Arise.exe+EE8F47: 8B F7           - mov esi,edi
Tales of Arise.exe+EE8F49: 45 33 C9        - xor r9d,r9d
Tales of Arise.exe+EE8F4C: 44 8B C6        - mov r8d,esi
Tales of Arise.exe+EE8F4F: 41 8B D7        - mov edx,r15d
Tales of Arise.exe+EE8F52: 48 8B CD        - mov rcx,rbp
Tales of Arise.exe+EE8F55: E8 46 2F E0 FF  - call "Tales of Arise.exe"+CEBEA0
Tales of Arise.exe+EE8F5A: 4C 8B 7C 24 50  - mov r15,[rsp+50]
Tales of Arise.exe+EE8F5F: 4D 8B C6        - mov r8,r14
Tales of Arise.exe+EE8F62: 8B D3           - mov edx,ebx
// ---------- INJECTING HERE ----------
Tales of Arise.exe+EE8F64: E8 F7 41 E0 FF  - call "Tales of Arise.exe"+CED160
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+EE8F69: 4C 8B 74 24 40  - mov r14,[rsp+40]
Tales of Arise.exe+EE8F6E: 48 8B 5C 24 58  - mov rbx,[rsp+58]
Tales of Arise.exe+EE8F73: 48 83 C4 20     - add rsp,20
Tales of Arise.exe+EE8F77: 5F              - pop rdi
Tales of Arise.exe+EE8F78: 5E              - pop rsi
Tales of Arise.exe+EE8F79: 5D              - pop rbp
Tales of Arise.exe+EE8F7A: C3              - ret 
Tales of Arise.exe+EE8F7B: CC              - int 3 
Tales of Arise.exe+EE8F7C: CC              - int 3 
Tales of Arise.exe+EE8F7D: CC              - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26372</ID>
      <Description>"Fish Pointers (Enter fish UI first) (LEGACY)"</Description>
      <Options moHideChildren="1"/>
      <ShowAsSigned>0</ShowAsSigned>
      <GroupHeader>1</GroupHeader>
      <Address>"Tales of Arise.exe"+046CD040</Address>
      <Offsets>
        <Offset>0</Offset>
        <Offset>240</Offset>
        <Offset>20</Offset>
        <Offset>48</Offset>
        <Offset>30</Offset>
        <Offset>50</Offset>
      </Offsets>
      <CheatEntries>
        <CheatEntry>
          <ID>26373</ID>
          <Description>"Line Tension"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>+540</Address>
          <Offsets>
            <Offset>338</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26377</ID>
          <Description>"Power"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>+410</Address>
          <Offsets>
            <Offset>588</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26374</ID>
          <Description>"HP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>+410</Address>
          <Offsets>
            <Offset>5A0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26375</ID>
          <Description>"HP (Max)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>+410</Address>
          <Offsets>
            <Offset>5A4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26376</ID>
          <Description>"Rarity?"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>+410</Address>
          <Offsets>
            <Offset>720</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
