<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>26447</ID>
      <Description>"Battle: CP recovery bonus after battle"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-10
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_CP_REC_BONUS,Tales of Arise.exe,0F 5B C9 F3 0F 58 C1 F3 0F 2C D8) // should be unique
alloc(newmem,$1000,INJECT_CP_REC_BONUS)

label(code)
label(return)
label(vf_cp_b_multi)
label(vf_cp_b_add)

newmem:

code:
  cvtdq2ps xmm1,xmm1
  // code start
  vmovss xmm14, [vf_cp_b_multi]
  vmovss xmm15, [vf_cp_b_add]
  vmulss xmm1, xmm1, xmm14
  vaddss xmm1, xmm1, xmm15

  // code end
  addss xmm0,xmm1
  jmp return
align 10 cc
  vf_cp_b_multi:
  dd (float)4
  vf_cp_b_add:
  dd (float)52

INJECT_CP_REC_BONUS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_CP_REC_BONUS)
registersymbol(vf_cp_b_multi)
registersymbol(vf_cp_b_add)

[DISABLE]

INJECT_CP_REC_BONUS:
  db 0F 5B C9 F3 0F 58 C1

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C12F5B

Tales of Arise.exe+C12F2A: 41 B9 01 00 00 00     - mov r9d,00000001
Tales of Arise.exe+C12F30: C6 44 24 20 01        - mov byte ptr [rsp+20],01
Tales of Arise.exe+C12F35: 45 33 C0              - xor r8d,r8d
Tales of Arise.exe+C12F38: 48 8D 8D C0 00 00 00  - lea rcx,[rbp+000000C0]
Tales of Arise.exe+C12F3F: E8 7C 38 75 00        - call "Tales of Arise.exe"+13667C0
Tales of Arise.exe+C12F44: 41 0F 28 D6           - movaps xmm2,xmm14
Tales of Arise.exe+C12F48: 48 8D 95 C0 00 00 00  - lea rdx,[rbp+000000C0]
Tales of Arise.exe+C12F4F: 48 8B CE              - mov rcx,rsi
Tales of Arise.exe+C12F52: E8 99 AB 06 00        - call "Tales of Arise.exe"+C7DAF0
Tales of Arise.exe+C12F57: 66 0F 6E CB           - movd xmm1,ebx
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C12F5B: 0F 5B C9              - cvtdq2ps xmm1,xmm1
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C12F5E: F3 0F 58 C1           - addss xmm0,xmm1
Tales of Arise.exe+C12F62: F3 0F 2C D8           - cvttss2si ebx,xmm0
Tales of Arise.exe+C12F66: 8B CB                 - mov ecx,ebx
Tales of Arise.exe+C12F68: E8 73 35 04 00        - call "Tales of Arise.exe"+C564E0
Tales of Arise.exe+C12F6D: 01 9F D0 03 00 00     - add [rdi+000003D0],ebx
Tales of Arise.exe+C12F73: 4D 85 ED              - test r13,r13
Tales of Arise.exe+C12F76: 74 08                 - je "Tales of Arise.exe"+C12F80
Tales of Arise.exe+C12F78: 49 8B CD              - mov rcx,r13
Tales of Arise.exe+C12F7B: E8 E0 28 BE FF        - call "Tales of Arise.exe"+7F5860
Tales of Arise.exe+C12F80: 48 8B 8F 18 05 00 00  - mov rcx,[rdi+00000518]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>26448</ID>
          <Description>"Multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>vf_cp_b_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>26449</ID>
          <Description>"Extra CP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>vf_cp_b_add</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>26442</ID>
      <Description>"Battle: AG &amp; HP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_AG_HP,Tales of Arise.exe,0F 2E 80 74 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_INF_AG_HP)

label(code)
label(return)
label(vf_min_ag)
label(vf_min_hp_ratio)

newmem:
next0:
  push rbx
  vmovss xmm14, [vf_min_hp_ratio]
  mov ebx, [rax+00000270]
  vcvtsi2ss xmm15, xmm15, rbx
  vmulss xmm14, xmm14, xmm15  // get target min. HP
  mov ebx, [rax+0000026C]
  vcvtsi2ss xmm15, xmm15, rbx
  vucomiss xmm15, xmm14
  jae endp
  vcvtss2si ebx, xmm14
  mov [rax+0000026C], ebx

endp:
  pop rbx

next1:
  vmovss xmm15, [rax+00000274] // AG
  vmovss xmm14, [vf_min_ag]
  vucomiss xmm15, xmm14
  jae next2
  vmovss [rax+00000274], xmm14

next2:

code:
  ucomiss xmm0, [rax+00000274]
  jmp return
align 10 cc
  vf_min_ag:
  dd (float)200
  vf_min_hp_ratio:
  dd (float)0.8

INJECT_INF_AG_HP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_AG_HP)
registersymbol(vf_min_ag)
registersymbol(vf_min_hp_ratio)
[DISABLE]

INJECT_INF_AG_HP:
  db 0F 2E 80 74 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+BB25D3

Tales of Arise.exe+BB25A4: 74 4E                 - je "Tales of Arise.exe"+BB25F4
Tales of Arise.exe+BB25A6: 48 8B 44 24 50        - mov rax,[rsp+50]
Tales of Arise.exe+BB25AB: 48 05 58 01 00 00     - add rax,00000158
Tales of Arise.exe+BB25B1: 44 8B 4C 24 34        - mov r9d,[rsp+34]
Tales of Arise.exe+BB25B6: 44 8B 44 24 38        - mov r8d,[rsp+38]
Tales of Arise.exe+BB25BB: 48 8B 54 24 50        - mov rdx,[rsp+50]
Tales of Arise.exe+BB25C0: 48 8B C8              - mov rcx,rax
Tales of Arise.exe+BB25C3: E8 48 98 FF FF        - call "Tales of Arise.exe"+BABE10
Tales of Arise.exe+BB25C8: 48 8B 44 24 50        - mov rax,[rsp+50]
read_ag: F3 0F 10 44 24 20     - movss xmm0,[rsp+20]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+BB25D3: 0F 2E 80 74 02 00 00  - ucomiss xmm0,[rax+00000274]
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+BB25DA: 75 18                 - jne "Tales of Arise.exe"+BB25F4
Tales of Arise.exe+BB25DC: 48 8B 44 24 50        - mov rax,[rsp+50]
Tales of Arise.exe+BB25E1: 48 05 78 01 00 00     - add rax,00000178
Tales of Arise.exe+BB25E7: 48 8B 54 24 50        - mov rdx,[rsp+50]
Tales of Arise.exe+BB25EC: 48 8B C8              - mov rcx,rax
Tales of Arise.exe+BB25EF: E8 4C 98 FF FF        - call "Tales of Arise.exe"+BABE40
Tales of Arise.exe+BB25F4: 48 83 C4 48           - add rsp,48
Tales of Arise.exe+BB25F8: C3                    - ret 
Tales of Arise.exe+BB25F9: CC                    - int 3 
Tales of Arise.exe+BB25FA: CC                    - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>26445</ID>
          <Description>"HP: Not god mode"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>26443</ID>
          <Description>"min. AG (25 = 1AG)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_ag</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>26444</ID>
          <Description>"min. HP Ratio"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_hp_ratio</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>26454</ID>
      <Description>"Skill usage multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-11
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SK_XP_MULTI2,Tales of Arise.exe,8B 52 08 03 D6) // should be unique
alloc(newmem,$1000,INJECT_SK_XP_MULTI2)

label(code)
label(return)
label(vf_xk_xp_multi2)

newmem:
  vcvtsi2ss xmm15, xmm15, esi
  vmovss xmm14, [vf_xk_xp_multi2]
  vmulss xmm15, xmm14, xmm15
  vcvtss2si esi, xmm15


code:
  mov edx,[rdx+08]
  add edx,esi
  jmp return
align 10 cc
  vf_xk_xp_multi2:
  dd (float)60

INJECT_SK_XP_MULTI2:
  jmp newmem
return:
registersymbol(INJECT_SK_XP_MULTI2)
registersymbol(vf_xk_xp_multi2)

[DISABLE]

INJECT_SK_XP_MULTI2:
  db 8B 52 08 03 D6

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C62A62

Tales of Arise.exe+C62A47: 47 39 0C 82           - cmp [r10+r8*4],r9d
Tales of Arise.exe+C62A4B: 4B 8D 14 82           - lea rdx,[r10+r8*4]
Tales of Arise.exe+C62A4F: 74 0A                 - je "Tales of Arise.exe"+C62A5B
Tales of Arise.exe+C62A51: 8B 4A 0C              - mov ecx,[rdx+0C]
Tales of Arise.exe+C62A54: 83 F9 FF              - cmp ecx,-01
Tales of Arise.exe+C62A57: 75 E7                 - jne "Tales of Arise.exe"+C62A40
Tales of Arise.exe+C62A59: EB 05                 - jmp "Tales of Arise.exe"+C62A60
Tales of Arise.exe+C62A5B: 83 F9 FF              - cmp ecx,-01
Tales of Arise.exe+C62A5E: 75 02                 - jne "Tales of Arise.exe"+C62A62
Tales of Arise.exe+C62A60: 33 D2                 - xor edx,edx
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C62A62: 8B 52 08              - mov edx,[rdx+08]
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C62A65: 03 D6                 - add edx,esi
Tales of Arise.exe+C62A67: 79 05                 - jns "Tales of Arise.exe"+C62A6E
Tales of Arise.exe+C62A69: 45 33 C0              - xor r8d,r8d
Tales of Arise.exe+C62A6C: EB 0D                 - jmp "Tales of Arise.exe"+C62A7B
Tales of Arise.exe+C62A6E: 41 B8 FF E0 F5 05     - mov r8d,05F5E0FF
Tales of Arise.exe+C62A74: 41 3B D0              - cmp edx,r8d
Tales of Arise.exe+C62A77: 44 0F 4C C2           - cmovl r8d,edx
Tales of Arise.exe+C62A7B: 44 3B 9B 34 01 00 00  - cmp r11d,[rbx+00000134]
Tales of Arise.exe+C62A82: 74 3B                 - je "Tales of Arise.exe"+C62ABF
Tales of Arise.exe+C62A84: 83 F8 FF              - cmp eax,-01
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>26455</ID>
          <Description>"Multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>vf_xk_xp_multi2</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>26450</ID>
      <Description>"Item drop rate"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-11
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ITEM_DROP,Tales of Arise.exe,8B E8 41 8B DF) // should be unique
alloc(newmem,$1000,INJECT_ITEM_DROP)

label(code)
label(return)

newmem:
  mov eax, 5

code:
  mov ebp,eax
  mov ebx,r15d
  jmp return

INJECT_ITEM_DROP:
  jmp newmem
return:
registersymbol(INJECT_ITEM_DROP)

[DISABLE]

INJECT_ITEM_DROP:
  db 8B E8 41 8B DF

unregistersymbol(INJECT_ITEM_DROP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C10F96

Tales of Arise.exe+C10F5F: 83 B8 84 06 00 00 00     - cmp dword ptr [rax+00000684],00
Tales of Arise.exe+C10F66: 0F 8F 94 02 00 00        - jg "Tales of Arise.exe"+C11200
Tales of Arise.exe+C10F6C: 48 89 5C 24 70           - mov [rsp+70],rbx
Tales of Arise.exe+C10F71: 49 8B CE                 - mov rcx,r14
Tales of Arise.exe+C10F74: 48 89 AC 24 80 00 00 00  - mov [rsp+00000080],rbp
Tales of Arise.exe+C10F7C: 48 89 B4 24 88 00 00 00  - mov [rsp+00000088],rsi
Tales of Arise.exe+C10F84: 48 89 7C 24 58           - mov [rsp+58],rdi
Tales of Arise.exe+C10F89: 4C 89 7C 24 50           - mov [rsp+50],r15
Tales of Arise.exe+C10F8E: E8 FD 21 00 00           - call "Tales of Arise.exe"+C13190
Tales of Arise.exe+C10F93: 45 33 FF                 - xor r15d,r15d
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C10F96: 8B E8                    - mov ebp,eax
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C10F98: 41 8B DF                 - mov ebx,r15d
Tales of Arise.exe+C10F9B: E8 D0 C2 29 00           - call "Tales of Arise.exe"+EAD270
Tales of Arise.exe+C10FA0: 48 85 C0                 - test rax,rax
Tales of Arise.exe+C10FA3: 0F 84 85 00 00 00        - je "Tales of Arise.exe"+C1102E
Tales of Arise.exe+C10FA9: 48 39 98 A0 05 00 00     - cmp [rax+000005A0],rbx
Tales of Arise.exe+C10FB0: 74 7C                    - je "Tales of Arise.exe"+C1102E
Tales of Arise.exe+C10FB2: E8 B9 C2 29 00           - call "Tales of Arise.exe"+EAD270
Tales of Arise.exe+C10FB7: 48 85 C0                 - test rax,rax
Tales of Arise.exe+C10FBA: 74 15                    - je "Tales of Arise.exe"+C10FD1
Tales of Arise.exe+C10FBC: 48 8B 88 A0 05 00 00     - mov rcx,[rax+000005A0]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26457</ID>
      <Description>"(testing) Battle init: fast strike"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-11
  Author : bbfox@https://opencheattablesc.com
}

[ENABLE]

aobscanmodule(INJECT_FAST_STK,Tales of Arise.exe,8B 54 24 40 48 8B 8C 24 C0 00 00 00 E8 54) // should be unique
alloc(newmem,$1000,INJECT_FAST_STK)

label(code)
label(return)

newmem:
  mov eax, (float)1000
  mov [rcx+58], eax
  cmp eax, #1000
  jae code
  mov eax, #1000
  mov [rcx+5C], eax

code:
  mov edx,[rsp+40]
  mov rcx,[rsp+000000C0]
  jmp return

INJECT_FAST_STK:
  jmp newmem
  nop 7
return:
registersymbol(INJECT_FAST_STK)

[DISABLE]

INJECT_FAST_STK:
  db 8B 54 24 40 48 8B 8C 24 C0 00 00 00

unregistersymbol(INJECT_FAST_STK)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+BA539B

Tales of Arise.exe+BA5365: 89 44 24 24              - mov [rsp+24],eax
Tales of Arise.exe+BA5369: 48 8D 8C 24 98 00 00 00  - lea rcx,[rsp+00000098]
Tales of Arise.exe+BA5371: E8 5A 82 A2 FF           - call "Tales of Arise.exe"+5CD5D0
Tales of Arise.exe+BA5376: 48 8B 84 24 C0 00 00 00  - mov rax,[rsp+000000C0]
Tales of Arise.exe+BA537E: 48 8B 00                 - mov rax,[rax]
Tales of Arise.exe+BA5381: 48 8B 8C 24 C0 00 00 00  - mov rcx,[rsp+000000C0]
Tales of Arise.exe+BA5389: FF 90 D0 04 00 00        - call qword ptr [rax+000004D0]
Tales of Arise.exe+BA538F: 8B 54 24 24              - mov edx,[rsp+24]
Tales of Arise.exe+BA5393: 48 8B C8                 - mov rcx,rax
Tales of Arise.exe+BA5396: E8 75 C3 0B 00           - call "Tales of Arise.exe"+C61710
// ---------- INJECTING HERE ----------
Tales of Arise.exe+BA539B: 8B 54 24 40              - mov edx,[rsp+40]
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+BA539F: 48 8B 8C 24 C0 00 00 00  - mov rcx,[rsp+000000C0]
Tales of Arise.exe+BA53A7: E8 54 ED 00 00           - call "Tales of Arise.exe"+BB4100
Tales of Arise.exe+BA53AC: 48 81 C4 B8 00 00 00     - add rsp,000000B8
Tales of Arise.exe+BA53B3: C3                       - ret 
Tales of Arise.exe+BA53B4: CC                       - int 3 
Tales of Arise.exe+BA53B5: CC                       - int 3 
Tales of Arise.exe+BA53B6: CC                       - int 3 
Tales of Arise.exe+BA53B7: CC                       - int 3 
Tales of Arise.exe+BA53B8: CC                       - int 3 
Tales of Arise.exe+BA53B9: CC                       - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26451</ID>
      <Description>"Weapon crafting: materials do not decrease"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-11
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_CREAFT_NO_DECREASE,Tales of Arise.exe,2B C1 45 33 C0) // should be unique
alloc(newmem,$1000,INJECT_CREAFT_NO_DECREASE)

label(code)
label(return)

newmem:
  xor ecx, ecx

code:
  sub eax,ecx
  xor r8d,r8d
  jmp return

INJECT_CREAFT_NO_DECREASE:
  jmp newmem
return:
registersymbol(INJECT_CREAFT_NO_DECREASE)

[DISABLE]

INJECT_CREAFT_NO_DECREASE:
  db 2B C1 45 33 C0

unregistersymbol(INJECT_CREAFT_NO_DECREASE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+D84495

Tales of Arise.exe+D84473: E8 48 1D F7 FF        - call "Tales of Arise.exe"+CF61C0
Tales of Arise.exe+D84478: 48 8B 0D 51 8E ED 03  - mov rcx,["Tales of Arise.exe"+4C5D2D0]
Tales of Arise.exe+D8447F: 8B D0                 - mov edx,eax
Tales of Arise.exe+D84481: 44 8B F0              - mov r14d,eax
Tales of Arise.exe+D84484: E8 07 62 F7 FF        - call "Tales of Arise.exe"+CFA690
Tales of Arise.exe+D84489: 8B 4B 10              - mov ecx,[rbx+10]
Tales of Arise.exe+D8448C: 85 F6                 - test esi,esi
Tales of Arise.exe+D8448E: 7E 05                 - jle "Tales of Arise.exe"+D84495
Tales of Arise.exe+D84490: 3B CE                 - cmp ecx,esi
Tales of Arise.exe+D84492: 0F 4F CE              - cmovg ecx,esi
// ---------- INJECTING HERE ----------
Tales of Arise.exe+D84495: 2B C1                 - sub eax,ecx
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+D84497: 45 33 C0              - xor r8d,r8d
Tales of Arise.exe+D8449A: 8B D0                 - mov edx,eax
Tales of Arise.exe+D8449C: 41 8B CE              - mov ecx,r14d
Tales of Arise.exe+D8449F: E8 2C D9 F6 FF        - call "Tales of Arise.exe"+CF1DD0
Tales of Arise.exe+D844A4: 48 83 C3 20           - add rbx,20
Tales of Arise.exe+D844A8: 49 83 EC 01           - sub r12,01
Tales of Arise.exe+D844AC: 75 85                 - jne "Tales of Arise.exe"+D84433
Tales of Arise.exe+D844AE: 39 7D C7              - cmp [rbp-39],edi
Tales of Arise.exe+D844B1: 74 16                 - je "Tales of Arise.exe"+D844C9
Tales of Arise.exe+D844B3: 4C 8B 7D BF           - mov r15,[rbp-41]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26453</ID>
      <Description>"Fast accessories enchant"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-11
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FAST_ENCHANT,Tales of Arise.exe,8B 4C 24 48 01 48 28) // should be unique
alloc(newmem,$1000,INJECT_FAST_ENCHANT)

label(code)
label(return)

newmem:
  mov ecx, #100
  mov [rsp+48], ecx

code:
  mov ecx,[rsp+48]
  add [rax+28],ecx
  jmp return

INJECT_FAST_ENCHANT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_FAST_ENCHANT)

[DISABLE]

INJECT_FAST_ENCHANT:
  db 8B 4C 24 48 01 48 28

unregistersymbol(INJECT_FAST_ENCHANT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+111D24D

Tales of Arise.exe+111D22B: 48 85 C0              - test rax,rax
Tales of Arise.exe+111D22E: 0F 95 C1              - setne cl
Tales of Arise.exe+111D231: 48 03 C8              - add rcx,rax
Tales of Arise.exe+111D234: 48 89 4B 20           - mov [rbx+20],rcx
Tales of Arise.exe+111D238: 85 D2                 - test edx,edx
Tales of Arise.exe+111D23A: 74 76                 - je "Tales of Arise.exe"+111D2B2
Tales of Arise.exe+111D23C: 48 8B 0D 8D 00 B4 03  - mov rcx,["Tales of Arise.exe"+4C5D2D0]
Tales of Arise.exe+111D243: E8 18 E4 BD FF        - call "Tales of Arise.exe"+CFB660
Tales of Arise.exe+111D248: 48 85 C0              - test rax,rax
Tales of Arise.exe+111D24B: 74 65                 - je "Tales of Arise.exe"+111D2B2
// ---------- INJECTING HERE ----------
Tales of Arise.exe+111D24D: 8B 4C 24 48           - mov ecx,[rsp+48]
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+111D251: 01 48 28              - add [rax+28],ecx
Tales of Arise.exe+111D254: 48 8B 0D FD 1F B2 03  - mov rcx,["Tales of Arise.exe"+4C3F258]
Tales of Arise.exe+111D25B: 48 85 C9              - test rcx,rcx
Tales of Arise.exe+111D25E: 74 25                 - je "Tales of Arise.exe"+111D285
Tales of Arise.exe+111D260: 48 8B 89 60 09 00 00  - mov rcx,[rcx+00000960]
Tales of Arise.exe+111D267: 48 85 C9              - test rcx,rcx
Tales of Arise.exe+111D26A: 74 19                 - je "Tales of Arise.exe"+111D285
Tales of Arise.exe+111D26C: 48 8B 01              - mov rax,[rcx]
Tales of Arise.exe+111D26F: FF 90 50 01 00 00     - call qword ptr [rax+00000150]
Tales of Arise.exe+111D275: 48 85 C0              - test rax,rax
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>26456</ID>
      <Description>"(2023/11/11) Tales of Arise: Beyond the Dawn  /  https://opencheattables.com  /  CE 7.5+"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <Color>00994D</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>26434</ID>
          <Description>"====== (based on chausies's AOB)======"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>26446</ID>
              <Description>"https://opencheattables.com/viewtopic.php?t=945"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>26435</ID>
              <Description>"XP Multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : bbfox@https://https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_XP_MULTI,Tales of Arise.exe,8B 97 F0 03 00 00 4C 8D) // should be unique
alloc(newmem,$1000,INJECT_XP_MULTI)

label(code)
label(return)
label(vf_xp_multi)

newmem:
  vmovss xmm14, [vf_xp_multi]
  vcvtsi2ss xmm15, xmm15, edx
  vmulss xmm15, xmm14, xmm15
  vcvtss2si edx, xmm15

code:
  mov edx,[rdi+000003F0]
  jmp return
align 10 cc
  vf_xp_multi:
  dd (float)1.5

INJECT_XP_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_XP_MULTI)
registersymbol(vf_xp_multi)

[DISABLE]

INJECT_XP_MULTI:
  db 8B 97 F0 03 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C123E7

Tales of Arise.exe+C123C3: 48 8D 14 C1           - lea rdx,[rcx+rax*8]
Tales of Arise.exe+C123C7: 48 3B CA              - cmp rcx,rdx
Tales of Arise.exe+C123CA: 0F 84 B4 01 00 00     - je "Tales of Arise.exe"+C12584
Tales of Arise.exe+C123D0: 48 8B 19              - mov rbx,[rcx]
Tales of Arise.exe+C123D3: 40 38 73 40           - cmp [rbx+40],sil
Tales of Arise.exe+C123D7: 74 0E                 - je "Tales of Arise.exe"+C123E7
Tales of Arise.exe+C123D9: 48 83 C1 08           - add rcx,08
Tales of Arise.exe+C123DD: 48 3B CA              - cmp rcx,rdx
Tales of Arise.exe+C123E0: 75 EE                 - jne "Tales of Arise.exe"+C123D0
Tales of Arise.exe+C123E2: E9 9D 01 00 00        - jmp "Tales of Arise.exe"+C12584
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C123E7: 8B 97 F0 03 00 00     - mov edx,[rdi+000003F0]
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C123ED: 4C 8D 85 D8 00 00 00  - lea r8,[rbp+000000D8]
Tales of Arise.exe+C123F4: 48 8B CB              - mov rcx,rbx
Tales of Arise.exe+C123F7: E8 14 EE 04 00        - call "Tales of Arise.exe"+C61210
Tales of Arise.exe+C123FC: 4C 8D B7 B8 04 00 00  - lea r14,[rdi+000004B8]
Tales of Arise.exe+C12403: 41 8B 46 08           - mov eax,[r14+08]
Tales of Arise.exe+C12407: 41 3B 46 34           - cmp eax,[r14+34]
Tales of Arise.exe+C1240B: 74 56                 - je "Tales of Arise.exe"+C12463
Tales of Arise.exe+C1240D: 49 8B 56 40           - mov rdx,[r14+40]
Tales of Arise.exe+C12411: 49 8D 4E 38           - lea rcx,[r14+38]
Tales of Arise.exe+C12415: 4D 63 46 48           - movsxd  r8,dword ptr [r14+48]
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>26436</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>Float</VariableType>
                  <Address>vf_xp_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>26437</ID>
              <Description>"Skill usage multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SK_XP_MULTI,Tales of Arise.exe,41 B8 01 00 00 00 48 8D 54 24 38 48 8B) // should be unique
alloc(newmem,$1000,INJECT_SK_XP_MULTI)

label(code)
label(return)
label(i_sk_xp_multi)

newmem:

code:
  //mov r8d,00000001
  mov r8d, [i_sk_xp_multi]

  jmp return
align 10 cc
  i_sk_xp_multi:
  dd #51

INJECT_SK_XP_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_SK_XP_MULTI)
registersymbol(i_sk_xp_multi)

[DISABLE]

INJECT_SK_XP_MULTI:
  db 41 B8 01 00 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+BA57F4

Tales of Arise.exe+BA57CE: B9 5B 00 02 00     - mov ecx,0002005B
Tales of Arise.exe+BA57D3: E8 98 E0 0C 00     - call "Tales of Arise.exe"+C73870
Tales of Arise.exe+BA57D8: 0F B6 C0           - movzx eax,al
Tales of Arise.exe+BA57DB: 85 C0              - test eax,eax
Tales of Arise.exe+BA57DD: 74 02              - je "Tales of Arise.exe"+BA57E1
Tales of Arise.exe+BA57DF: EB 26              - jmp "Tales of Arise.exe"+BA5807
Tales of Arise.exe+BA57E1: 48 8B 44 24 30     - mov rax,[rsp+30]
Tales of Arise.exe+BA57E6: 48 8B 00           - mov rax,[rax]
Tales of Arise.exe+BA57E9: 48 8B 4C 24 30     - mov rcx,[rsp+30]
Tales of Arise.exe+BA57EE: FF 90 D0 04 00 00  - call qword ptr [rax+000004D0]
// ---------- INJECTING HERE ----------
Tales of Arise.exe+BA57F4: 41 B8 01 00 00 00  - mov r8d,00000001
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+BA57FA: 48 8D 54 24 38     - lea rdx,[rsp+38]
Tales of Arise.exe+BA57FF: 48 8B C8           - mov rcx,rax
Tales of Arise.exe+BA5802: E8 89 D1 0B 00     - call "Tales of Arise.exe"+C62990
Tales of Arise.exe+BA5807: 48 83 C4 28        - add rsp,28
Tales of Arise.exe+BA580B: C3                 - ret 
Tales of Arise.exe+BA580C: CC                 - int 3 
Tales of Arise.exe+BA580D: CC                 - int 3 
Tales of Arise.exe+BA580E: CC                 - int 3 
Tales of Arise.exe+BA580F: CC                 - int 3 
Tales of Arise.exe+BA5810: 48 89 54 24 10     - mov [rsp+10],rdx
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>26438</ID>
                  <Description>"Multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_sk_xp_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>26441</ID>
              <Description>"inf. SP"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_SP,Tales of Arise.exe,0F 4C C2 89 41 70) // should be unique
alloc(newmem,$1000,INJECT_INF_SP)

label(code)
label(return)

newmem:

code:
  cmovl eax,edx
  cmp eax, #5120
  jae @F
  mov eax, #5120

next:
  mov [rcx+70],eax
  jmp return

INJECT_INF_SP:
  jmp newmem
  nop
return:
registersymbol(INJECT_INF_SP)

[DISABLE]

INJECT_INF_SP:
  db 0F 4C C2 89 41 70

unregistersymbol(INJECT_INF_SP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Tales of Arise.exe+C61757

Tales of Arise.exe+C6173E: CC                    - int 3 
Tales of Arise.exe+C6173F: CC                    - int 3 
Tales of Arise.exe+C61740: 48 83 EC 28           - sub rsp,28
Tales of Arise.exe+C61744: 44 8B 41 70           - mov r8d,[rcx+70]
Tales of Arise.exe+C61748: 85 D2                 - test edx,edx
Tales of Arise.exe+C6174A: 79 04                 - jns "Tales of Arise.exe"+C61750
Tales of Arise.exe+C6174C: 33 C0                 - xor eax,eax
Tales of Arise.exe+C6174E: EB 0A                 - jmp "Tales of Arise.exe"+C6175A
Tales of Arise.exe+C61750: B8 FF E0 F5 05        - mov eax,05F5E0FF
Tales of Arise.exe+C61755: 3B D0                 - cmp edx,eax
// ---------- INJECTING HERE ----------
Tales of Arise.exe+C61757: 0F 4C C2              - cmovl eax,edx
// ---------- DONE INJECTING  ----------
Tales of Arise.exe+C6175A: 89 41 70              - mov [rcx+70],eax
Tales of Arise.exe+C6175D: 44 3B C0              - cmp r8d,eax
Tales of Arise.exe+C61760: 7D 25                 - jnl "Tales of Arise.exe"+C61787
Tales of Arise.exe+C61762: E8 29 BC 24 00        - call "Tales of Arise.exe"+EAD390
Tales of Arise.exe+C61767: 48 85 C0              - test rax,rax
Tales of Arise.exe+C6176A: 74 1B                 - je "Tales of Arise.exe"+C61787
Tales of Arise.exe+C6176C: 48 8B 88 C0 00 00 00  - mov rcx,[rax+000000C0]
Tales of Arise.exe+C61773: 48 85 C9              - test rcx,rcx
Tales of Arise.exe+C61776: 74 0F                 - je "Tales of Arise.exe"+C61787
Tales of Arise.exe+C61778: 48 83 C1 70           - add rcx,70
}
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>26439</ID>
              <Description>"Set item to 15, if amount between 2..14"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : Tales of Arise.exe
  Version: 
  Date   : 2023-11-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_ITEM_CNT,Tales of Arise.exe,44 89 63 08 44 3B E7) // should be unique
alloc(newmem,$1000,INJECT_SET_ITEM_CNT)

label(code)
label(return)

newmem:
  cmp r12d, #1 // ignore if count = 1
  jb code

  cmp r12d, #14 // ignore if count &gt; 14
  ja code

  mov r12d, #15


code:
  mov [rbx+08],r12d
  cmp r12d,edi
  jmp return

INJECT_SET_ITEM_CNT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_ITEM_CNT)

[DISABLE]

INJECT_SET_ITEM_CNT:
  db 44 89 63 08 44 3B E7

unregistersymbol(INJECT_SET_ITEM_CNT)
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 r13b,r13b
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>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>ret_guard_time</Name>
      <Address>7FF72FEE624B</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>write_sp_gain</Name>
      <Address>7FF72FF42680</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>write_food_timer</Name>
      <Address>7FF72FF8BBFE</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_game_engine</Name>
      <Address>7FF72F906389</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>write_exp_gain</Name>
      <Address>7FF72FF42183</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_attack</Name>
      <Address>7FF72FEAD808</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_damage</Name>
      <Address>7FF72FEAD965</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_cmp_offset</Name>
      <Address>7FF72FEE4D2F</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cmp_count1</Name>
      <Address>7FF72FE61638</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cmp_count2</Name>
      <Address>7FF72FE61681</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cmp_count3</Name>
      <Address>7FF72FE616CA</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cmp_count4</Name>
      <Address>7FF72FE61713</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cmp_count5</Name>
      <Address>7FF72FE6175C</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cmp_count6</Name>
      <Address>7FF72FE617B7</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_enhance</Name>
      <Address>7FF730060E5A</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_crafting_costs</Name>
      <Address>7FF7300B424A</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>write_material</Name>
      <Address>7FF7300B4495</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>write_arte</Name>
      <Address>7FF72FFA018F</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ret_cp_bonus</Name>
      <Address>7FF72FF42F5B</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ret_avoid_time</Name>
      <Address>7FF72FEE62AB</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_ag</Name>
      <Address>7FF72FEE25CD</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ret_item_count</Name>
      <Address>7FF72FF40F93</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>write_ol_gauge</Name>
      <Address>7FF72FEE42FF</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_chant_cmp</Name>
      <Address>7FF7314AADE1</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>read_chant_time</Name>
      <Address>7FF72FE8999E</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name/>
      <Address>7FF72FEE4D2F</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>trace_critical_cmp</Name>
      <Address>7FF72FEACB57</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>trace_critical</Name>
      <Address>7FF72FEACC53</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>INF_CP</Name>
      <Address>7FF7300BD8AD</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>SKILl_USE_MULTIPLIER</Name>
      <Address>7FF72FF92A62</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ToA_EasyBG</Name>
      <Address>7FF72FF916F6</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ToA_CookingCost</Name>
      <Address>7FF72FF829EA</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ToA_ArteProficiency</Name>
      <Address>7FF72FFA017E</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
