<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>30</ID>
      <Description>"精簡模式 / Compact mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
--https://forum.cheatengine.org/viewtopic.php?t=570055
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible    = state; getMainForm().Panel5.Visible    = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))

[DISABLE]
LuaCall(cycleFullCompact(nil,false))

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>115</ID>
      <Description>"一鍵開啟或關閉大部份指令碼 / Turn some scripts on/off"</Description>
      <Color>4080FF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
{$lua}
if (syntaxcheck) then return end
if memrec then print(memrec.Description) end
getLuaEngine().menuItem5.doClick()

P_NAME = 'game_64.exe'

if (p_ated == nil) and (getProcessIDFromProcessName(P_NAME) ~= nil) then
	openProcess(P_NAME)
    p_ated = true
    Sleep(100)
end

battle_array = {30,88,12,16,76,4,10,71,33,20,36,54,56,92,118,125,130,         62}


local a_len = #(battle_array)

local i = 0

for i = 1, a_len do
  getAddressList().getMemoryRecordByID(battle_array[i]).Active = true
  sleep(1)
end

print("Scripts ON; Total " .. a_len .. " items.")
getLuaEngine().Close()

[DISABLE]
{$lua}
if (syntaxcheck) then return end
if memrec then print(memrec.Description) end

p_ated = nil

battle_array_close = {123,122,124,62,       12,88,16,76,4,10,71,33,20,36,54,56,92,118,125,130,       87,30}

local a_len1 = #(battle_array_close)

local i = 0

for i = 1, a_len1 do
  getAddressList().getMemoryRecordByID(battle_array_close[i]).Active = false
end

print("Scripts OFF.")

getLuaEngine().Close()


</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>12</ID>
      <Description>"[戰鬥] CP無限 / Battle: inf CP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATT_INF_CP,$process,46 02 00 00 2B C7 85 C0 0F 4F C8) // should be unique
alloc(newmem,$1000,INJECT_BATT_INF_CP)

label(code)
label(return)

newmem:
  xor edi, edi
  mov eax, edx

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return

INJECT_BATT_INF_CP+04:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATT_INF_CP)

[DISABLE]

INJECT_BATT_INF_CP+04:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(INJECT_BATT_INF_CP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+DA0E4

game_64.exe+DA0B7: 48 8B 4B 08                    - mov rcx,[rbx+08]
game_64.exe+DA0BB: E8 00 4C 02 00                 - call game_64.exe+FECC0
game_64.exe+DA0C0: 48 85 C0                       - test rax,rax
game_64.exe+DA0C3: 74 0F                          - je game_64.exe+DA0D4
game_64.exe+DA0C5: F7 80 34 02 00 00 00 00 20 00  - test [rax+00000234],00200000
game_64.exe+DA0CF: 48 8B D8                       - mov rbx,rax
game_64.exe+DA0D2: 75 DC                          - jne game_64.exe+DA0B0
game_64.exe+DA0D4: 0F B7 83 44 02 00 00           - movzx eax,word ptr [rbx+00000244]
game_64.exe+DA0DB: 33 C9                          - xor ecx,ecx
game_64.exe+DA0DD: 0F B7 93 46 02 00 00           - movzx edx,word ptr [rbx+00000246]
// ---------- INJECTING HERE ----------
game_64.exe+DA0E4: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
game_64.exe+DA0E6: 85 C0                          - test eax,eax
game_64.exe+DA0E8: 0F 4F C8                       - cmovg ecx,eax
game_64.exe+DA0EB: 3B CA                          - cmp ecx,edx
game_64.exe+DA0ED: 66 0F 4C D1                    - cmovl dx,cx
game_64.exe+DA0F1: 66 89 93 44 02 00 00           - mov [rbx+00000244],dx
game_64.exe+DA0F8: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
game_64.exe+DA0FD: 48 83 C4 20                    - add rsp,20
game_64.exe+DA101: 5F                             - pop rdi
game_64.exe+DA102: C3                             - ret 
game_64.exe+DA103: CC                             - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>16</ID>
      <Description>"[戰鬥] EP無限 / Battle: inf. EP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_EP,$process,42 02 00 00 2B C7 85 C0 0F 4F C8) // should be unique
alloc(newmem,$1000,INJECT_INF_EP)

label(code)
label(return)

newmem:
  xor edi, edi
  mov eax, edx

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return

INJECT_INF_EP+04:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_EP)

[DISABLE]

INJECT_INF_EP+04:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(INJECT_INF_EP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+DA264

game_64.exe+DA237: 48 8B 4B 08                    - mov rcx,[rbx+08]
game_64.exe+DA23B: E8 80 4A 02 00                 - call game_64.exe+FECC0
game_64.exe+DA240: 48 85 C0                       - test rax,rax
game_64.exe+DA243: 74 0F                          - je game_64.exe+DA254
game_64.exe+DA245: F7 80 34 02 00 00 00 00 20 00  - test [rax+00000234],00200000
game_64.exe+DA24F: 48 8B D8                       - mov rbx,rax
game_64.exe+DA252: 75 DC                          - jne game_64.exe+DA230
game_64.exe+DA254: 0F B7 83 40 02 00 00           - movzx eax,word ptr [rbx+00000240]
game_64.exe+DA25B: 33 C9                          - xor ecx,ecx
game_64.exe+DA25D: 0F B7 93 42 02 00 00           - movzx edx,word ptr [rbx+00000242]
// ---------- INJECTING HERE ----------
game_64.exe+DA264: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
game_64.exe+DA266: 85 C0                          - test eax,eax
game_64.exe+DA268: 0F 4F C8                       - cmovg ecx,eax
game_64.exe+DA26B: 3B CA                          - cmp ecx,edx
game_64.exe+DA26D: 66 0F 4C D1                    - cmovl dx,cx
game_64.exe+DA271: 66 89 93 40 02 00 00           - mov [rbx+00000240],dx
game_64.exe+DA278: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
game_64.exe+DA27D: 48 83 C4 20                    - add rsp,20
game_64.exe+DA281: 5F                             - pop rdi
game_64.exe+DA282: C3                             - ret 
game_64.exe+DA283: CC                             - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>130</ID>
      <Description>"[戰鬥] 設定最小BP值 / Battle: set min. BP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-06-10
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_BP,$process,0F B6 8B 00 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_BP)

label(code)
label(return)
label(i_min_bp)

newmem:
  mov cl, [rbx+00000200]
  cmp cl, [i_min_bp]
  jae @F
  mov cl, [i_min_bp]
  mov [rbx+00000200], cl

code:
  movzx ecx,byte ptr [rbx+00000200]
  jmp return
align 10 cc
  i_min_bp:
  db 2
INJECT_SET_MIN_BP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_MIN_BP)
registersymbol(i_min_bp)

[DISABLE]

INJECT_SET_MIN_BP:
  db 0F B6 8B 00 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+282250

game_64.exe+28221B: 48 8B 8B 18 02 00 00           - mov rcx,[rbx+00000218]
game_64.exe+282222: 45 33 C9                       - xor r9d,r9d
game_64.exe+282225: 0F 28 D6                       - movaps xmm2,xmm6
game_64.exe+282228: 41 0F 28 C9                    - movaps xmm1,xmm9
game_64.exe+28222C: 48 8B 01                       - mov rax,[rcx]
game_64.exe+28222F: FF 90 08 01 00 00              - call qword ptr [rax+00000108]
game_64.exe+282235: 44 0F 28 4C 24 50              - movaps xmm9,[rsp+50]
game_64.exe+28223B: 44 0F 28 44 24 60              - movaps xmm8,[rsp+60]
game_64.exe+282241: C7 83 04 02 00 00 02 00 00 00  - mov [rbx+00000204],00000002
game_64.exe+28224B: E9 4A 01 00 00                 - jmp game_64.exe+28239A
// ---------- INJECTING HERE ----------
game_64.exe+282250: 0F B6 8B 00 02 00 00           - movzx ecx,byte ptr [rbx+00000200]
// ---------- DONE INJECTING  ----------
game_64.exe+282257: 0F B6 83 08 02 00 00           - movzx eax,byte ptr [rbx+00000208]
game_64.exe+28225E: 3A C1                          - cmp al,cl
game_64.exe+282260: 74 11                          - je game_64.exe+282273
game_64.exe+282262: 1B C0                          - sbb eax,eax
game_64.exe+282264: 88 8B 08 02 00 00              - mov [rbx+00000208],cl
game_64.exe+28226A: 83 C0 05                       - add eax,05
game_64.exe+28226D: 89 83 04 02 00 00              - mov [rbx+00000204],eax
game_64.exe+282273: 83 BB 04 02 00 00 03           - cmp dword ptr [rbx+00000204],03
game_64.exe+28227A: 0F 84 1A 01 00 00              - je game_64.exe+28239A
game_64.exe+282280: F3 0F 10 3D 38 42 66 00        - movss xmm7,[game_64.exe+8E64C0]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>131</ID>
          <Description>"最小值 / min. BP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_min_bp</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>125</ID>
      <Description>"[戰鬥] 設定最低戰門評價 / Set min. Tactical Bonus"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-06-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_TP_FACTOR,$process,8B 8E 40 02 00 00 8D) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_TP_FACTOR)

label(code)
label(return)
label(vf_min_tp_factor)

newmem:
  push r15
  mov r15, [rsi+218]
  vmovss xmm15, [vf_min_tp_factor]
  vmovss xmm14, [r15+200]
  vucomiss xmm14, xmm15
  jae endp

  vmovss [r15+200], xmm15

endp:
  pop r15

code:
  mov ecx,[rsi+00000240]
  jmp return
align 10 cc
  vf_3:
  dd (float)3
  vf_min_tp_factor:
  dd (float)2.1

INJECT_SET_MIN_TP_FACTOR:
  jmp newmem
  nop
return:
registersymbol(INJECT_SET_MIN_TP_FACTOR)
registersymbol(vf_min_tp_factor)

[DISABLE]

INJECT_SET_MIN_TP_FACTOR:
  db 8B 8E 40 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+119E05

game_64.exe+119DD7: 48 33 C4                    - xor rax,rsp
game_64.exe+119DDA: 48 89 85 90 00 00 00        - mov [rbp+00000090],rax
game_64.exe+119DE1: 44 0F 28 C9                 - movaps xmm9,xmm1
game_64.exe+119DE5: 48 8B F1                    - mov rsi,rcx
game_64.exe+119DE8: 48 89 4D C0                 - mov [rbp-40],rcx
game_64.exe+119DEC: E8 FF 51 09 00              - call game_64.exe+1AEFF0
game_64.exe+119DF1: 4C 8B B8 C8 67 00 00        - mov r15,[rax+000067C8]
game_64.exe+119DF8: 4C 89 7D A8                 - mov [rbp-58],r15
game_64.exe+119DFC: 4D 8B 6F 30                 - mov r13,[r15+30]
game_64.exe+119E00: 4C 89 6C 24 78              - mov [rsp+78],r13
// ---------- INJECTING HERE ----------
game_64.exe+119E05: 8B 8E 40 02 00 00           - mov ecx,[rsi+00000240]
// ---------- DONE INJECTING  ----------
game_64.exe+119E0B: 8D 41 FC                    - lea eax,[rcx-04]
game_64.exe+119E0E: F3 0F 10 35 52 C6 7C 00     - movss xmm6,[game_64.exe+8E6468]
game_64.exe+119E16: F3 44 0F 10 05 A1 C6 7C 00  - movss xmm8,[game_64.exe+8E64C0]
game_64.exe+119E1F: 0F 57 FF                    - xorps xmm7,xmm7
game_64.exe+119E22: 83 F8 07                    - cmp eax,07
game_64.exe+119E25: 76 0C                       - jna game_64.exe+119E33
game_64.exe+119E27: 8D 41 EA                    - lea eax,[rcx-16]
game_64.exe+119E2A: 83 F8 02                    - cmp eax,02
game_64.exe+119E2D: 0F 87 82 01 00 00           - ja game_64.exe+119FB5
game_64.exe+119E33: 80 BE 38 05 00 00 00        - cmp byte ptr [rsi+00000538],00
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>126</ID>
          <Description>"係數 / Factor"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_tp_factor</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>88</ID>
      <Description>"[戰鬥] 主結晶迴路EXP倍率 / Battle: master quartz XP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_QXP_MULTI,$process,89 41 04 0F B6 84 0B 9C 85 F2 FF) // should be unique
alloc(newmem,$1000,INJECT_QXP_MULTI)

label(code)
label(return)
label(vf_qz_xp_multi)

newmem:
  test eax, eax
  jz code
  cmp [rcx+04],eax
  jae code

  vcvtsi2ss xmm15, xmm15, eax
  vcvtsi2ss xmm13, xmm13, [rcx+04]
  vmovss xmm14, [vf_qz_xp_multi]
  vsubss xmm12, xmm15, xmm13
  vmulss xmm12, xmm12, xmm14
  vaddss xmm15, xmm12, xmm13
  vroundss xmm15, xmm15, xmm15, 0
  vcvtss2si eax, xmm15

code:
  mov [rcx+04],eax
  movzx eax,byte ptr [rbx+rcx-000D7A64]
  jmp return
align 10 cc
  vf_qz_xp_multi:
  dd (float)3.3333333333

INJECT_QXP_MULTI:
  jmp newmem
  nop 6
return:
registersymbol(INJECT_QXP_MULTI)
registersymbol(vf_qz_xp_multi)

[DISABLE]

INJECT_QXP_MULTI:
  db 89 41 04 0F B6 84 0B 9C 85 F2 FF

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+1F7271

game_64.exe+1F723C: E8 1F AF F0 FF              - call game_64.exe+102160
game_64.exe+1F7241: FF C6                       - inc esi
game_64.exe+1F7243: 81 FE 00 08 00 00           - cmp esi,00000800
game_64.exe+1F7249: 7C A5                       - jl game_64.exe+1F71F0
game_64.exe+1F724B: 49 8D 8E D8 CD 13 00        - lea rcx,[r14+0013CDD8]
game_64.exe+1F7252: BA 1C 00 00 00              - mov edx,0000001C
game_64.exe+1F7257: 66 0F 1F 84 00 00 00 00 00  - nop word ptr [rax+rax+00000000]
game_64.exe+1F7260: 0F B6 84 0B 3C 81 F2 FF     - movzx eax,byte ptr [rbx+rcx-000D7EC4]
game_64.exe+1F7268: 88 01                       - mov [rcx],al
game_64.exe+1F726A: 8B 84 0B 40 81 F2 FF        - mov eax,[rbx+rcx-000D7EC0]
// ---------- INJECTING HERE ----------
game_64.exe+1F7271: 89 41 04                    - mov [rcx+04],eax
// ---------- DONE INJECTING  ----------
game_64.exe+1F7274: 0F B6 84 0B 9C 85 F2 FF     - movzx eax,byte ptr [rbx+rcx-000D7A64]
game_64.exe+1F727C: 88 81 60 04 00 00           - mov [rcx+00000460],al
game_64.exe+1F7282: 8B 84 0B A0 85 F2 FF        - mov eax,[rbx+rcx-000D7A60]
game_64.exe+1F7289: 89 81 64 04 00 00           - mov [rcx+00000464],eax
game_64.exe+1F728F: 48 8D 49 28                 - lea rcx,[rcx+28]
game_64.exe+1F7293: 48 83 EA 01                 - sub rdx,01
game_64.exe+1F7297: 75 C7                       - jne game_64.exe+1F7260
game_64.exe+1F7299: 41 BA 08 00 00 00           - mov r10d,00000008
game_64.exe+1F729F: 49 8D 8E 98 D6 13 00        - lea rcx,[r14+0013D698]
game_64.exe+1F72A6: 41 8B D2                    - mov edx,r10d
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>89</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_qz_xp_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>76</ID>
      <Description>"[戰鬥] Link經驗值倍率 / Battle: Link XP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATT_LINK_MULTI,$process,89 04 8E 48 8B 8F 68 11 00 00) // should be unique
alloc(newmem,$1000,INJECT_BATT_LINK_MULTI)

label(code)
label(return)
label(vf_b_link_multi)
label(i_lxp_old)
label(i_lxp_new)

newmem:
  test eax, eax
  jz code

  cmp [rsi+rcx*4],eax
  jae code

  mov [i_lxp_old], eax

  vcvtsi2ss xmm15, xmm15, eax
  vmovss xmm14, [vf_b_link_multi]
  vcvtsi2ss xmm13, xmm13, dword ptr [rsi+rcx*4]
  vsubss xmm12, xmm15, xmm13
  vmulss xmm12, xmm12, xmm14
  vaddss xmm15, xmm13, xmm12
  vroundss xmm15, xmm15, xmm15, 0
  vcvtss2si eax, xmm15

  mov [i_lxp_new], eax


code:
  mov [rsi+rcx*4],eax
  mov rcx,[rdi+00001168]
  jmp return
align 10 cc
  vf_b_link_multi:
  dd (float)2.01
  i_lxp_old:
  dd 0
  i_lxp_new:
  dd 0

INJECT_BATT_LINK_MULTI:
  jmp newmem
  nop 5
return:
registersymbol(INJECT_BATT_LINK_MULTI)
registersymbol(vf_b_link_multi)
registersymbol(i_lxp_old)
registersymbol(i_lxp_new)

[DISABLE]

INJECT_BATT_LINK_MULTI:
  db 89 04 8E 48 8B 8F 68 11 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+10B84B

game_64.exe+10B81F: 48 C1 E1 04           - shl rcx,04
game_64.exe+10B823: 48 03 CB              - add rcx,rbx
game_64.exe+10B826: 88 04 31              - mov [rcx+rsi],al
game_64.exe+10B829: 45 0F B7 C6           - movzx r8d,r14w
game_64.exe+10B82D: 41 0F B7 D4           - movzx edx,r12w
game_64.exe+10B831: 48 8B 8F 68 11 00 00  - mov rcx,[rdi+00001168]
game_64.exe+10B838: E8 D3 2C 17 00        - call game_64.exe+27E510
game_64.exe+10B83D: 49 8D 8D 8F 00 00 00  - lea rcx,[r13+0000008F]
game_64.exe+10B844: 48 C1 E1 04           - shl rcx,04
game_64.exe+10B848: 48 03 CB              - add rcx,rbx
// ---------- INJECTING HERE ----------
game_64.exe+10B84B: 89 04 8E              - mov [rsi+rcx*4],eax
// ---------- DONE INJECTING  ----------
game_64.exe+10B84E: 48 8B 8F 68 11 00 00  - mov rcx,[rdi+00001168]
game_64.exe+10B855: 48 81 C1 11 09 00 00  - add rcx,00000911
game_64.exe+10B85C: 45 0F B7 C6           - movzx r8d,r14w
game_64.exe+10B860: 41 0F B7 D4           - movzx edx,r12w
game_64.exe+10B864: E8 F7 2C 17 00        - call game_64.exe+27E560
game_64.exe+10B869: 49 8D 8D 2C 02 00 00  - lea rcx,[r13+0000022C]
game_64.exe+10B870: 48 C1 E1 04           - shl rcx,04
game_64.exe+10B874: 48 03 CB              - add rcx,rbx
game_64.exe+10B877: 88 04 31              - mov [rcx+rsi],al
game_64.exe+10B87A: FF C5                 - inc ebp
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>77</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_b_link_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>4</ID>
      <Description>"[戰鬥] 傷害倍率 / Battle: Damage multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_DAMAGE_MULTI,$process,2B C7 85 C0 0F 4F C8 3B CA 0F) // should be unique
alloc(newmem,$1000,INJECT_DAMAGE_MULTI)

label(code)
label(return)
label(vf_damage_multi_to_player)
label(vf_damage_multi_to_enemy)
label(is_fill_ep)
label(is_fill_cp)
label(i_hp_new)
label(i_hp_old)
label(is_player_no_dead)

newmem:
  //cmp edi, 0
  //jle code

  mov [i_hp_old], edi
  vcvtsi2ss xmm15, xmm15, edi  // damage
  vcvtsi2ss xmm13, xmm13, eax  // current HP
  vcvtsi2ss xmm12, xmm12, edx  // max HP
  vbroadcastss xmm12, xmm12
  vbroadcastss xmm13, xmm13
  vbroadcastss xmm15, xmm15

  vmovaps xmm14, [vf_damage_multi_to_player]

  vmulps xmm15, xmm15, xmm14 // new damages
  vsubps xmm13, xmm13, xmm15 // new HPs evaluation

  vxorps xmm14, xmm14, xmm14

  cmp byte ptr [rbx+00000234], 0
  jne to_enemy

to_player:
  cmp dword ptr [is_fill_ep], 1
  jne @F
  push r15
  mov r15w, [rbx+00000242]
  mov [rbx+00000240] r15w
  pop r15

@@:
  cmp dword ptr [is_fill_cp], 1
  jne @F
  push r15
  mov r15w, [rbx+00000246]
  mov [rbx+00000244] r15w
  pop r15

@@:
  cmp dword ptr [is_player_no_dead], 1
  jne @F
  vucomiss xmm13, xmm14
  jae @F

  vxorps xmm15, xmm15, xmm15
  //vcvtsi2ss xmm13, xmm13, eax

@@:
  vcvtss2si edi, xmm15
  mov [i_hp_new], edi
  jmp code

to_enemy:

  ////vshufps xmm13, xmm13, xmm13, 55
  vshufps xmm15, xmm15, xmm15, 55

  //vucomiss xmm13, xmm14
  //jae @F

  //vcvtss2si xmm15, xmm15, eax

@@:
  vcvtss2si edi, xmm15
  mov [i_hp_new], edi

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return
align 10 cc
  vf_damage_multi_to_player:
  dd (float)0.9
  vf_damage_multi_to_enemy:
  dd (float)1.05
  dd 0 0
  is_fill_ep:
  dd 1
  is_fill_cp:
  dd 1
  tmp1:
  dd 0
  is_player_no_dead:
  dd 1
  i_hp_new:
  dd 0
  i_hp_old:
  dd 0
  vf_1:
  dd (float)1

INJECT_DAMAGE_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_DAMAGE_MULTI)
registersymbol(vf_damage_multi_to_player)
registersymbol(vf_damage_multi_to_enemy)
registersymbol(is_fill_ep)
registersymbol(is_fill_cp)
registersymbol(i_hp_new)
registersymbol(i_hp_old)
registersymbol(is_player_no_dead)

[DISABLE]

INJECT_DAMAGE_MULTI:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+DA2E2

game_64.exe+DA2B7: 48 8B 4B 08                    - mov rcx,[rbx+08]
game_64.exe+DA2BB: E8 00 4A 02 00                 - call game_64.exe+FECC0
game_64.exe+DA2C0: 48 85 C0                       - test rax,rax
game_64.exe+DA2C3: 74 0F                          - je game_64.exe+DA2D4
game_64.exe+DA2C5: F7 80 34 02 00 00 00 00 20 00  - test [rax+00000234],00200000
game_64.exe+DA2CF: 48 8B D8                       - mov rbx,rax
game_64.exe+DA2D2: 75 DC                          - jne game_64.exe+DA2B0
game_64.exe+DA2D4: 8B 83 38 02 00 00              - mov eax,[rbx+00000238]
game_64.exe+DA2DA: 33 C9                          - xor ecx,ecx
game_64.exe+DA2DC: 8B 93 3C 02 00 00              - mov edx,[rbx+0000023C]
// ---------- INJECTING HERE ----------
game_64.exe+DA2E2: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
game_64.exe+DA2E4: 85 C0                          - test eax,eax
game_64.exe+DA2E6: 0F 4F C8                       - cmovg ecx,eax
game_64.exe+DA2E9: 3B CA                          - cmp ecx,edx
game_64.exe+DA2EB: 0F 4C D1                       - cmovl edx,ecx
game_64.exe+DA2EE: 89 93 38 02 00 00              - mov [rbx+00000238],edx
game_64.exe+DA2F4: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
game_64.exe+DA2F9: 48 83 C4 20                    - add rsp,20
game_64.exe+DA2FD: 5F                             - pop rdi
game_64.exe+DA2FE: C3                             - ret 
game_64.exe+DA2FF: CC                             - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"受傷時EP回滿? / Fill EP after hit?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_fill_ep</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"受傷時CP回滿? / Fill CP after hit?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_fill_cp</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>7</ID>
          <Description>"對玩家傷害倍率 / Multiplier to player"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_damage_multi_to_player</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"對敵人傷害倍率 / Multiplier to enemy"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_damage_multi_to_enemy</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"試著使玩家HP不變0? / Try to keep player HP &gt; 0?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_player_no_dead</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"[戰鬥] 使用道具：設定數量80 / Battle: Use item -&gt; set count #80"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_ITEM,$process,2B C8 85 C9 66 44 0F 4F D1 66 44) // should be unique
alloc(newmem,$1000,INJECT_INF_ITEM)

label(code)
label(return)

newmem:
  //cmp eax, 0
  //jl code

  //xor eax, eax
  sub ecx,eax

  cmp ecx, 60
  jle @F
  mov ecx, 60
  jmp code

@@:
  cmp ecx, 50
  jge @F
  mov ecx, 50

code:
  //sub ecx,eax
  test ecx,ecx
  cmovg r10w,cx
  jmp return

INJECT_INF_ITEM:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_INF_ITEM)

[DISABLE]

INJECT_INF_ITEM:
  db 2B C8 85 C9 66 44 0F 4F D1

unregistersymbol(INJECT_INF_ITEM)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+2002BA

game_64.exe+20029C: 74 09              - je game_64.exe+2002A7
game_64.exe+20029E: FF C0              - inc eax
game_64.exe+2002A0: 41 3B C1           - cmp eax,r9d
game_64.exe+2002A3: 72 EC              - jb game_64.exe+200291
game_64.exe+2002A5: EB 21              - jmp game_64.exe+2002C8
game_64.exe+2002A7: 8B C8              - mov ecx,eax
game_64.exe+2002A9: 48 8D 04 C9        - lea rax,[rcx+rcx*8]
game_64.exe+2002AD: 41 0F B7 4C 80 02  - movzx ecx,word ptr [r8+rax*4+02]
game_64.exe+2002B3: 49 8D 14 80        - lea rdx,[r8+rax*4]
game_64.exe+2002B7: 0F B7 C5           - movzx eax,bp
// ---------- INJECTING HERE ----------
game_64.exe+2002BA: 2B C8              - sub ecx,eax
// ---------- DONE INJECTING  ----------
game_64.exe+2002BC: 85 C9              - test ecx,ecx
game_64.exe+2002BE: 66 44 0F 4F D1     - cmovg r10w,cx
game_64.exe+2002C3: 66 44 89 52 02     - mov [rdx+02],r10w
game_64.exe+2002C8: 80 7C 24 50 00     - cmp byte ptr [rsp+50],00
game_64.exe+2002CD: 74 0B              - je game_64.exe+2002DA
game_64.exe+2002CF: 48 8B D7           - mov rdx,rdi
game_64.exe+2002D2: 48 8B CE           - mov rcx,rsi
game_64.exe+2002D5: E8 66 F7 FF FF     - call game_64.exe+1FFA40
game_64.exe+2002DA: 48 8B 5C 24 30     - mov rbx,[rsp+30]
game_64.exe+2002DF: 48 8B 6C 24 38     - mov rbp,[rsp+38]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>71</ID>
      <Description>"選單-&gt;Item: 設定道具數 / Menu -&gt; item: set item #"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_MENU_SET_ITEM,$process,41 0F B7 44 82 02 48 83 C4 20 5F C3 CC CC CC CC CC CC 48) // should be unique
alloc(newmem,$1000,INJECT_MENU_SET_ITEM)

label(code)
label(return)
label(i_item_min_cnt)
label(i_item_set2_cnt)

newmem:
  push r15
  mov r15w, [i_item_min_cnt]
  cmp word ptr [r10+rax*4+02], r15w
  jb endp
  mov r15w, [i_item_set2_cnt]
  cmp word ptr [r10+rax*4+02], r15w
  jae endp
  mov [r10+rax*4+02], r15w

endp:
  pop r15


code:
  movzx eax,word ptr [r10+rax*4+02]
  jmp return
align 10 cc
  i_item_min_cnt:
  dw 2
  i_item_set2_cnt:
  dd 50

INJECT_MENU_SET_ITEM:
  jmp newmem
  nop
return:
registersymbol(INJECT_MENU_SET_ITEM)
registersymbol(i_item_min_cnt)
registersymbol(i_item_set2_cnt)
[DISABLE]

INJECT_MENU_SET_ITEM:
  db 41 0F B7 44 82 02

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+1FE31E

game_64.exe+1FE2FF: 41 3B C0           - cmp eax,r8d
game_64.exe+1FE302: 72 EC              - jb game_64.exe+1FE2F0
game_64.exe+1FE304: 41 0F B7 C1        - movzx eax,r9w
game_64.exe+1FE308: 48 8B 5C 24 30     - mov rbx,[rsp+30]
game_64.exe+1FE30D: 48 83 C4 20        - add rsp,20
game_64.exe+1FE311: 5F                 - pop rdi
game_64.exe+1FE312: C3                 - ret 
game_64.exe+1FE313: 48 8B 5C 24 30     - mov rbx,[rsp+30]
game_64.exe+1FE318: 8B C8              - mov ecx,eax
game_64.exe+1FE31A: 48 8D 04 C9        - lea rax,[rcx+rcx*8]
// ---------- INJECTING HERE ----------
game_64.exe+1FE31E: 41 0F B7 44 82 02  - movzx eax,word ptr [r10+rax*4+02]
// ---------- DONE INJECTING  ----------
game_64.exe+1FE324: 48 83 C4 20        - add rsp,20
game_64.exe+1FE328: 5F                 - pop rdi
game_64.exe+1FE329: C3                 - ret 
game_64.exe+1FE32A: CC                 - int 3 
game_64.exe+1FE32B: CC                 - int 3 
game_64.exe+1FE32C: CC                 - int 3 
game_64.exe+1FE32D: CC                 - int 3 
game_64.exe+1FE32E: CC                 - int 3 
game_64.exe+1FE32F: CC                 - int 3 
game_64.exe+1FE330: 48 89 5C 24 08     - mov [rsp+08],rbx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>72</ID>
          <Description>"原本數量必需&gt;= / Item # must &gt;= "</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_item_min_cnt</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>73</ID>
          <Description>"設定數量為: / Set # to:"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_item_set2_cnt</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>33</ID>
      <Description>"使用道具：設定數量為80 / Use item -&gt; set count # to 80"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_ITEM_CNT2,$process,2B C8 85 C9 66 44 0F 4F D1 66 45) // should be unique
alloc(newmem,$1000,INJECT_SET_ITEM_CNT2)

label(code)
label(return)
label(i_base_item_addr2)

newmem:
  mov [i_base_item_addr2], r8
  //cmp eax, 0
  //jl code

  xor eax, eax

  sub ecx,eax
  cmp ecx, 60
  jle @F
  mov ecx, 60
  jmp code

@@:
  cmp ecx, 50
  jge @F
  mov ecx, 50

code:
  //sub ecx,eax
  test ecx,ecx
  cmovg r10w,cx
  jmp return
align 10 cc
  i_base_item_addr2:
  dq 0

INJECT_SET_ITEM_CNT2:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_SET_ITEM_CNT2)
registersymbol(i_base_item_addr2)

[DISABLE]

INJECT_SET_ITEM_CNT2:
  db 2B C8 85 C9 66 44 0F 4F D1

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+20037A

game_64.exe+20035B: 74 09              - je game_64.exe+200366
game_64.exe+20035D: FF C0              - inc eax
game_64.exe+20035F: 41 3B C0           - cmp eax,r8d
game_64.exe+200362: 72 EC              - jb game_64.exe+200350
game_64.exe+200364: EB 22              - jmp game_64.exe+200388
game_64.exe+200366: 8B C8              - mov ecx,eax
game_64.exe+200368: 48 8D 04 C9        - lea rax,[rcx+rcx*8]
game_64.exe+20036C: 41 0F B7 4C 81 02  - movzx ecx,word ptr [r9+rax*4+02]
game_64.exe+200372: 4D 8D 04 81        - lea r8,[r9+rax*4]
game_64.exe+200376: 41 0F B7 C6        - movzx eax,r14w
// ---------- INJECTING HERE ----------
game_64.exe+20037A: 2B C8              - sub ecx,eax 
// ---------- DONE INJECTING  ----------
game_64.exe+20037C: 85 C9              - test ecx,ecx
game_64.exe+20037E: 66 44 0F 4F D1     - cmovg r10w,cx
game_64.exe+200383: 66 45 89 50 02     - mov [r8+02],r10w
game_64.exe+200388: 40 84 F6           - test sil,sil
game_64.exe+20038B: 74 0B              - je game_64.exe+200398
game_64.exe+20038D: 48 8B D7           - mov rdx,rdi
game_64.exe+200390: 48 8B CD           - mov rcx,rbp
game_64.exe+200393: E8 A8 F6 FF FF     - call game_64.exe+1FFA40
game_64.exe+200398: 48 8B 5C 24 30     - mov rbx,[rsp+30]
game_64.exe+20039D: 48 8B 6C 24 38     - mov rbp,[rsp+38]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>34</ID>
          <Description>"ID"</Description>
          <DropDownList DisplayValueAsItem="1">===:鞋類===
551:陽光涼鞋
570:越野釘鞋
573:獵戶座腳甲(男)
574:嘉蕾德腳甲(女)
575:斯托雷加A1
===:飾品===
611:不屈徽章
614:星杯掛墜
638:鮭魚徽章
663:熾煌徽章
===:結晶迴路===
2115:地言鈴
2116:耀脈
2117:龍脈
2118:豐釀
2119:金剛盾
2120:不動珠
2121:玄武刃
2140:回復術
2145:HP1
2146:HP2
2147:魔防1
2148:魔防2
2149:魔防3
2153:治癒
2154:丹精
2155:水言鈴
2156:氾濫
2157:仙道珠
2158:青龍刃
2164:回復術
2180:攻擊1
2181:攻擊2
2182:攻擊3
2187:練氣
2189:火言鈴
2190:業火
2191:武神珠
2192:朱雀刃
2213:迴避1
2214:迴避2
2215:移動1
2216:移動2
2217:移動3
2223:逆鱗
2224:風言鈴
2225:薫風
2226:雷神珠
2227:風神珠
2228:白虎刃
2247:行動力1
2248:行動力2
2249:行動力3
2256:黒言鈴
2257:死神
2258:神行珠
2259:魔王珠
2260:羅刹牙
2264:暗影偽典
2267:時間爆發
2274:魔導祝福
2295:魔導祝福R
2275:閃耀天啟
2276:熾天使之環
2296:閃耀天啟R
2297:熾天使之環R
2277:省EP1
2278:省EP2
2279:命中1
2280:命中2
2283:金言鈴
2284:探知
2285:幸運
2286:龍瞳
2287:霸道
2288:天帝珠
2289:熾天使
2290:麒麟牙
2300:皎月之光
2305:神聖之力
2309:精神1
2310:精神2
2311:精神3
2313:情報
2314:虎威
2315:混沌
2316:銀言鈴
2317:梵天珠
2318:聖王珠
2319:幻妖牙
2320:皎月之光R
2325:神聖之力R
9999:無
52685:Error
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_item_addr2</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>35</ID>
          <Description>"Count"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_item_addr2</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>20</ID>
      <Description>"取得目前耀晶數 / Get seph."</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_SEPHS,$process,44 8B 80 B4 D6 13 00) // should be unique
alloc(newmem,$1000,INJECT_GET_SEPHS)

label(code)
label(return)
label(i_base_seph_addr)

newmem:
  mov [i_base_seph_addr], rax

code:
  mov r8d,[rax+0013D6B4]
  jmp return
align 10 cc
  i_base_seph_addr:
  dq 0

INJECT_GET_SEPHS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_SEPHS)
registersymbol(i_base_seph_addr)

[DISABLE]

INJECT_GET_SEPHS:
  db 44 8B 80 B4 D6 13 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+16439E

game_64.exe+164370: 40 53                 - push rbx
game_64.exe+164372: 48 83 EC 30           - sub rsp,30
game_64.exe+164376: 48 8B 41 10           - mov rax,[rcx+10]
game_64.exe+16437A: 48 8B D9              - mov rbx,rcx
game_64.exe+16437D: 48 8B 90 30 02 00 00  - mov rdx,[rax+00000230]
game_64.exe+164384: 48 8B 8A 00 01 00 00  - mov rcx,[rdx+00000100]
game_64.exe+16438B: 48 85 C9              - test rcx,rcx
game_64.exe+16438E: 74 1A                 - je game_64.exe+1643AA
game_64.exe+164390: 48 8B 05 69 87 A0 00  - mov rax,[game_64.exe+B6CB00]
game_64.exe+164397: 48 8D 15 06 C1 66 00  - lea rdx,[game_64.exe+7D04A4]
// ---------- INJECTING HERE ----------
game_64.exe+16439E: 44 8B 80 B4 D6 13 00  - mov r8d,[rax+0013D6B4]
// ---------- DONE INJECTING  ----------
game_64.exe+1643A5: E8 66 FE 16 00        - call game_64.exe+2D4210
game_64.exe+1643AA: 48 8B 43 10           - mov rax,[rbx+10]
game_64.exe+1643AE: 48 8B 88 30 02 00 00  - mov rcx,[rax+00000230]
game_64.exe+1643B5: 48 8B 89 08 01 00 00  - mov rcx,[rcx+00000108]
game_64.exe+1643BC: 48 85 C9              - test rcx,rcx
game_64.exe+1643BF: 74 1A                 - je game_64.exe+1643DB
game_64.exe+1643C1: 48 8B 05 38 87 A0 00  - mov rax,[game_64.exe+B6CB00]
game_64.exe+1643C8: 48 8D 15 D5 C0 66 00  - lea rdx,[game_64.exe+7D04A4]
game_64.exe+1643CF: 44 8B 80 D8 D6 13 00  - mov r8d,[rax+0013D6D8]
game_64.exe+1643D6: E8 35 FE 16 00        - call game_64.exe+2D4210
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>113</ID>
          <Description>"開啟選單頁 / Open Camp menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"地 / Earth"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D69C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"水 / Water"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6A0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>27</ID>
          <Description>"火 / Fire"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6A0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26</ID>
          <Description>"風 / Wind"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6A4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>25</ID>
          <Description>"時 / Time"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6A8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>24</ID>
          <Description>"空 / Space"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6AC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"幻 / Mirage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6B0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"石塊 / Piece"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6B4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>29</ID>
          <Description>"Mira"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13D6D8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>67</ID>
          <Description>"釣果點數 / Fishing pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13E374</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>68</ID>
          <Description>"Max Fishing pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_seph_addr</Address>
          <Offsets>
            <Offset>13E378</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>36</ID>
      <Description>"設定最小耀晶數 / Set min. Sepith"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-04
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_SEPI,$process,8B 84 88 98 D6 13 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_SEPI)

label(code)
label(return)

newmem:
  cmp dword ptr [rax+rcx*4+0013D698], #24020
  jae code

  mov dword ptr [rax+rcx*4+0013D698], #24020

code:
  mov eax,[rax+rcx*4+0013D698]
  jmp return

INJECT_SET_MIN_SEPI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_MIN_SEPI)

[DISABLE]

INJECT_SET_MIN_SEPI:
  db 8B 84 88 98 D6 13 00

unregistersymbol(INJECT_SET_MIN_SEPI)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+1FE75A

game_64.exe+1FE742: C3                    - ret 
game_64.exe+1FE743: 8B C7                 - mov eax,edi
game_64.exe+1FE745: 48 83 C4 20           - add rsp,20
game_64.exe+1FE749: 41 5F                 - pop r15
game_64.exe+1FE74B: 41 5E                 - pop r14
game_64.exe+1FE74D: 5F                    - pop rdi
game_64.exe+1FE74E: C3                    - ret 
game_64.exe+1FE74F: CC                    - int 3 
game_64.exe+1FE750: 48 8B 05 A9 E3 96 00  - mov rax,[game_64.exe+B6CB00]
game_64.exe+1FE757: 48 63 CA              - movsxd  rcx,edx
// ---------- INJECTING HERE ----------
game_64.exe+1FE75A: 8B 84 88 98 D6 13 00  - mov eax,[rax+rcx*4+0013D698]
// ---------- DONE INJECTING  ----------
game_64.exe+1FE761: C3                    - ret 
game_64.exe+1FE762: CC                    - int 3 
game_64.exe+1FE763: CC                    - int 3 
game_64.exe+1FE764: CC                    - int 3 
game_64.exe+1FE765: CC                    - int 3 
game_64.exe+1FE766: CC                    - int 3 
game_64.exe+1FE767: CC                    - int 3 
game_64.exe+1FE768: CC                    - int 3 
game_64.exe+1FE769: CC                    - int 3 
game_64.exe+1FE76A: CC                    - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>54</ID>
      <Description>"快速釣魚 / Fash fishing"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FAST_FISHING,$process,F3 0F 58 8B 84 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_FAST_FISHING)

label(code)
label(return)

newmem:
  vxorps xmm14, xmm14, xmm14
  vucomiss xmm1, xmm14
  jae @F
  vmovss xmm14, [vf_010]
  vmulss xmm1, xmm1, xmm14

@@:

code:
  addss xmm1,[rbx+00000284]
  jmp return
align 10 cc
  vf_01:
  dd (float)-1
  vf_010:
  dd (float)-11

INJECT_FAST_FISHING:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FAST_FISHING)

[DISABLE]

INJECT_FAST_FISHING:
  db F3 0F 58 8B 84 02 00 00

unregistersymbol(INJECT_FAST_FISHING)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+210D24

game_64.exe+210CEB: 41 0F 28 D8              - movaps xmm3,xmm8
game_64.exe+210CEF: 89 7C 24 20              - mov [rsp+20],edi
game_64.exe+210CF3: F3 0F 11 83 70 02 00 00  - movss [rbx+00000270],xmm0
game_64.exe+210CFB: F3 0F 10 48 1C           - movss xmm1,[rax+1C]
game_64.exe+210D00: F3 0F 59 8B 44 02 00 00  - mulss xmm1,[rbx+00000244]
game_64.exe+210D08: 0F 57 0D 11 5F 6D 00     - xorps xmm1,[game_64.exe+8E6C20]
game_64.exe+210D0F: F3 0F 5F C8              - maxss xmm1,xmm0
game_64.exe+210D13: 41 0F 28 C2              - movaps xmm0,xmm10
game_64.exe+210D17: F3 0F 11 8B 70 02 00 00  - movss [rbx+00000270],xmm1
game_64.exe+210D1F: F3 41 0F 59 CB           - mulss xmm1,xmm11
// ---------- INJECTING HERE ----------
game_64.exe+210D24: F3 0F 58 8B 84 02 00 00  - addss xmm1,[rbx+00000284]
// ---------- DONE INJECTING  ----------
game_64.exe+210D2C: F3 0F 5D C1              - minss xmm0,xmm1
game_64.exe+210D30: F3 0F 10 0D 6C B5 5C 00  - movss xmm1,[game_64.exe+7DC2A4]
game_64.exe+210D38: F3 0F 5F D0              - maxss xmm2,xmm0
game_64.exe+210D3C: F3 0F 11 93 84 02 00 00  - movss [rbx+00000284],xmm2
game_64.exe+210D44: F3 0F 59 15 30 B5 5C 00  - mulss xmm2,[game_64.exe+7DC27C]
game_64.exe+210D4C: 48 8B 8B 48 03 00 00     - mov rcx,[rbx+00000348]
game_64.exe+210D53: F3 0F 5C CA              - subss xmm1,xmm2
game_64.exe+210D57: F3 0F 10 15 F5 B4 5C 00  - movss xmm2,[game_64.exe+7DC254]
game_64.exe+210D5F: 48 8B 01                 - mov rax,[rcx]
game_64.exe+210D62: FF 90 E0 00 00 00        - call qword ptr [rax+000000E0]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>56</ID>
      <Description>"取得AP和羈絆點數等統計 / Get AP &amp; some stats."</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattable.com
}

[ENABLE]

aobscanmodule(INJECT_GET_KISU_PT,$process,8B 84 81 B0 2E 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_KISU_PT)

label(code)
label(return)
label(i_base_kizu_pt_addr)

newmem:
  cmp eax, 4
  jne code
  cmp qword ptr [i_base_kizu_pt_addr], 0
  jne code
  mov [i_base_kizu_pt_addr], rcx

code:
  mov eax,[rcx+rax*4+00002EB0]
  jmp return
align 10 cc
  i_base_kizu_pt_addr:
  dq 0

INJECT_GET_KISU_PT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_KISU_PT)
registersymbol(i_base_kizu_pt_addr)

[DISABLE]

INJECT_GET_KISU_PT:
  db 8B 84 81 B0 2E 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+1F1177

game_64.exe+1F1164: E9 A7 3F FA FF        - jmp game_64.exe+195110
game_64.exe+1F1169: 33 C0                 - xor eax,eax
game_64.exe+1F116B: C3                    - ret 
game_64.exe+1F116C: CC                    - int 3 
game_64.exe+1F116D: CC                    - int 3 
game_64.exe+1F116E: CC                    - int 3 
game_64.exe+1F116F: CC                    - int 3 
game_64.exe+1F1170: 83 FA 40              - cmp edx,40
game_64.exe+1F1173: 73 0A                 - jae game_64.exe+1F117F
game_64.exe+1F1175: 8B C2                 - mov eax,edx
// ---------- INJECTING HERE ----------
game_64.exe+1F1177: 8B 84 81 B0 2E 00 00  - mov eax,[rcx+rax*4+00002EB0]
// ---------- DONE INJECTING  ----------
game_64.exe+1F117E: C3                    - ret 
game_64.exe+1F117F: 33 C0                 - xor eax,eax
game_64.exe+1F1181: C3                    - ret 
game_64.exe+1F1182: CC                    - int 3 
game_64.exe+1F1183: CC                    - int 3 
game_64.exe+1F1184: CC                    - int 3 
game_64.exe+1F1185: CC                    - int 3 
game_64.exe+1F1186: CC                    - int 3 
game_64.exe+1F1187: CC                    - int 3 
game_64.exe+1F1188: CC                    - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>112</ID>
          <Description>"開啟綜合成績頁 / Open Main note menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>62</ID>
          <Description>"保持最少1點羈絆值 / Keep min. bonding pt."</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_KIZ_PT,$process,44 89 84 81 B0 2E 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_KIZ_PT)

label(code)
label(return)

newmem:
  cmp rcx, [i_base_kizu_pt_addr]
  jne code
  cmp eax, 9
  jne code
  test r8d, r8d
  jnz code
  mov r8d, 1

code:
  mov [rcx+rax*4+00002EB0],r8d
  jmp return

INJECT_SET_MIN_KIZ_PT:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SET_MIN_KIZ_PT)

[DISABLE]

INJECT_SET_MIN_KIZ_PT:
  db 44 89 84 81 B0 2E 00 00

unregistersymbol(INJECT_SET_MIN_KIZ_PT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+1F9B17

game_64.exe+1F9AFE: 48 8B 74 24 38           - mov rsi,[rsp+38]
game_64.exe+1F9B03: 48 83 C4 20              - add rsp,20
game_64.exe+1F9B07: 5F                       - pop rdi
game_64.exe+1F9B08: E9 A3 53 EB FF           - jmp game_64.exe+AEEB0
game_64.exe+1F9B0D: CC                       - int 3 
game_64.exe+1F9B0E: CC                       - int 3 
game_64.exe+1F9B0F: CC                       - int 3 
game_64.exe+1F9B10: 83 FA 40                 - cmp edx,40
game_64.exe+1F9B13: 73 0A                    - jae game_64.exe+1F9B1F
game_64.exe+1F9B15: 8B C2                    - mov eax,edx
// ---------- INJECTING HERE ----------
game_64.exe+1F9B17: 44 89 84 81 B0 2E 00 00  - mov [rcx+rax*4+00002EB0],r8d
// ---------- DONE INJECTING  ----------
game_64.exe+1F9B1F: C3                       - ret 
game_64.exe+1F9B20: 41 B8 F8 FF 00 00        - mov r8d,0000FFF8
game_64.exe+1F9B26: 0F B7 C2                 - movzx eax,dx
game_64.exe+1F9B29: 66 41 23 C0              - and ax,r8w
game_64.exe+1F9B2D: 41 B8 B8 0B 00 00        - mov r8d,00000BB8
game_64.exe+1F9B33: 66 41 3B C0              - cmp ax,r8w
game_64.exe+1F9B37: 73 23                    - jae game_64.exe+1F9B5C
game_64.exe+1F9B39: 44 0F B7 C2              - movzx r8d,dx
game_64.exe+1F9B3D: 49 C1 E8 03              - shr r8,03
game_64.exe+1F9B41: 4C 03 C1                 - add r8,rcx
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>57</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>58</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*5</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>59</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>60</ID>
          <Description>"羈絆點數 / bonding pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*9</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>61</ID>
          <Description>"最大羈絆點數 / Max bonding pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>81</ID>
          <Description>"階級 / Grade"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*11</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>82</ID>
          <Description>"總計結算AP / Total settlement of AP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*12</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>83</ID>
          <Description>"實習課題達成次數 / # of Field Study Assignments"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*13</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>84</ID>
          <Description>"課外活動達成次數 / # of Extracurricular Activities"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>85</ID>
          <Description>"總計AP / AP total #2"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C0C0C0</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_kizu_pt_addr</Address>
          <Offsets>
            <Offset>2EB0+4*2D</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>87</ID>
      <Description>"BLADE小遊戲輕鬆得勝 / Blade game: easy win"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BLADE_GAME,$process,44 0F BF 8B DC 03 00 00) // should be unique
alloc(newmem,$1000,INJECT_BLADE_GAME)

label(code)
label(return)

newmem:
  mov word ptr [rbx+000003DC], #100
  mov word ptr [rbx+00000484], #1

code:
  movsx r9d,word ptr [rbx+000003DC]
  jmp return

INJECT_BLADE_GAME:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_BLADE_GAME)

[DISABLE]

INJECT_BLADE_GAME:
  db 44 0F BF 8B DC 03 00 00

unregistersymbol(INJECT_BLADE_GAME)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+215684

game_64.exe+21565B: 48 8D 54 24 70              - lea rdx,[rsp+70]
game_64.exe+215660: 48 8B 89 10 03 00 00        - mov rcx,[rcx+00000310]
game_64.exe+215667: 45 33 C0                    - xor r8d,r8d
game_64.exe+21566A: 48 8B 01                    - mov rax,[rcx]
game_64.exe+21566D: FF 50 60                    - call qword ptr [rax+60]
game_64.exe+215670: F3 0F 10 44 24 7C           - movss xmm0,[rsp+7C]
game_64.exe+215676: 0F 57 FF                    - xorps xmm7,xmm7
game_64.exe+215679: 0F 2E C7                    - ucomiss xmm0,xmm7
game_64.exe+21567C: 7A 06                       - jp game_64.exe+215684
game_64.exe+21567E: 0F 84 C1 01 00 00           - je game_64.exe+215845
// ---------- INJECTING HERE ----------
game_64.exe+215684: 44 0F BF 8B DC 03 00 00     - movsx r9d,word ptr [rbx+000003DC]
// ---------- DONE INJECTING  ----------
game_64.exe+21568C: 4C 8D 05 3D E2 5A 00        - lea r8,[game_64.exe+7C38D0]
game_64.exe+215693: 48 89 B4 24 58 01 00 00     - mov [rsp+00000158],rsi
game_64.exe+21569B: 48 8D 4D B0                 - lea rcx,[rbp-50]
game_64.exe+21569F: 0F 29 B4 24 30 01 00 00     - movaps [rsp+00000130],xmm6
game_64.exe+2156A7: BA 20 00 00 00              - mov edx,00000020
game_64.exe+2156AC: F3 0F 10 35 44 74 5C 00     - movss xmm6,[game_64.exe+7DCAF8]
game_64.exe+2156B4: 44 0F 29 8C 24 10 01 00 00  - movaps [rsp+00000110],xmm9
game_64.exe+2156BD: 44 0F 28 CE                 - movaps xmm9,xmm6
game_64.exe+2156C1: 44 0F 29 94 24 00 01 00 00  - movaps [rsp+00000100],xmm10
game_64.exe+2156CA: 44 0F 29 9C 24 F0 00 00 00  - movaps [rsp+000000F0],xmm11
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>92</ID>
      <Description>"取得戰歷資料 / Get Battle Stats."</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_STATS,$process,44 8B 0C 06 E8 10 32 E0 FF) // should be unique
alloc(newmem,$1000,INJECT_GET_STATS)

label(code)
label(return)
label(i_base_bstats_addr)

newmem:
  cmp qword ptr [i_base_bstats_addr], 0
  jne code
  mov [i_base_bstats_addr], rax

code:
  mov r9d,[rsi+rax]
  call game_64.exe+BC3D0
  jmp return
align 10 cc
  i_base_bstats_addr:
  dq 0

INJECT_GET_STATS:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_GET_STATS)
registersymbol(i_base_bstats_addr)

[DISABLE]

INJECT_GET_STATS:
  db 44 8B 0C 06 E8 10 32 E0 FF

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+2B91B7

game_64.exe+2B9178: F3 44 0F 10 2D 8B 2C 51 00  - movss xmm13,[game_64.exe+7CBE0C]
game_64.exe+2B9181: 41 0F B7 DD                 - movzx ebx,r13w
game_64.exe+2B9185: F3 44 0F 10 05 3A 39 52 00  - movss xmm8,[game_64.exe+7DCAC8]
game_64.exe+2B918E: BE AC FA 13 00              - mov esi,0013FAAC
game_64.exe+2B9193: 0F 1F 40 00                 - nop dword ptr [rax+00]
game_64.exe+2B9197: 66 0F 1F 84 00 00 00 00 00  - nop word ptr [rax+rax+00000000]
game_64.exe+2B91A0: 48 8B 05 59 39 8B 00        - mov rax,[game_64.exe+B6CB00]
game_64.exe+2B91A7: 4C 8D 05 56 BC 52 00        - lea r8,[game_64.exe+7E4E04]
game_64.exe+2B91AE: BA 40 00 00 00              - mov edx,00000040
game_64.exe+2B91B3: 48 8D 4D F0                 - lea rcx,[rbp-10]
// ---------- INJECTING HERE ----------
game_64.exe+2B91B7: 44 8B 0C 06                 - mov r9d,[rsi+rax]
// ---------- DONE INJECTING  ----------
game_64.exe+2B91BB: E8 10 32 E0 FF              - call game_64.exe+BC3D0
game_64.exe+2B91C0: F3 0F 10 45 A4              - movss xmm0,[rbp-5C]
game_64.exe+2B91C5: 0F 57 C9                    - xorps xmm1,xmm1
game_64.exe+2B91C8: F3 0F 58 05 48 5C 51 00     - addss xmm0,[game_64.exe+7CEE18]
game_64.exe+2B91D0: F3 0F 10 7D A0              - movss xmm7,[rbp-60]
game_64.exe+2B91D5: 41 0F 28 DD                 - movaps xmm3,xmm13
game_64.exe+2B91D9: F3 0F 58 3D 0B D4 62 00     - addss xmm7,[game_64.exe+8E65EC]
game_64.exe+2B91E1: 44 89 6C 24 78              - mov [rsp+78],r13d
game_64.exe+2B91E6: 41 0F 28 D2                 - movaps xmm2,xmm10
game_64.exe+2B91EA: 44 88 6C 24 70              - mov [rsp+70],r13b
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>111</ID>
          <Description>"開啟戰歷頁 / Open Battle note menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>93</ID>
          <Description>"累計戰鬥次數 / Battle total #"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAAC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>94</ID>
          <Description>"累計勝利次數 / Battle Win"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAB0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>95</ID>
          <Description>"無法戰鬥次數 / Battle lost"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAB4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>96</ID>
          <Description>"戰鬥撤退次數 / Battle flee"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAB8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>97</ID>
          <Description>"擊敗敵人次數 / Enemy killed"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FABC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>98</ID>
          <Description>"先制攻擊出現次數 / Single advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAC0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>99</ID>
          <Description>"優勢攻擊出現次數 / Double advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAC4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>100</ID>
          <Description>"奇襲攻擊出現次數 / Triple advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAC8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>101</ID>
          <Description>"背後遇襲遭遇次數 / Back attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FACC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>102</ID>
          <Description>"重試次數 / Retry"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAD0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>103</ID>
          <Description>"S-Break發動次數 / S-Break #"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAD4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>104</ID>
          <Description>"迴避反擊發動次數 / Counter attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAD8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>110</ID>
          <Description>"驅動解除發動次數 / Break casting"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>148630</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>105</ID>
          <Description>"連結攻擊發動次數 / Link attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FADC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>106</ID>
          <Description>"追擊發動次數 / Follow attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAE0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>132</ID>
          <Description>"連續猛攻次數 / Rush attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAE4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>133</ID>
          <Description>"爆裂猛攻次數 / Burst attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstats_addr</Address>
          <Offsets>
            <Offset>13FAE8</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>118</ID>
      <Description>"取得遊戲總時間(秒) / Get game time in sec."</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : game_64.exe
  Version: 
  Date   : 2024-05-05
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_GAME_TIME,$process,F2 0F 11 9B 28 38 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_GAME_TIME)

label(code)
label(return)
label(i_base_gt_addr)

newmem:
  cmp qword ptr [i_base_gt_addr], 0
  jne code
  mov [i_base_gt_addr], rbx

code:
  movsd [rbx+00003828],xmm3
  jmp return
align 10 cc
  i_base_gt_addr:
  dq 0

INJECT_GET_GAME_TIME:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GET_GAME_TIME)
registersymbol(i_base_gt_addr)

[DISABLE]

INJECT_GET_GAME_TIME:
  db F2 0F 11 9B 28 38 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: game_64.exe+1FA876

game_64.exe+1FA839: 48 8D 8B 98 8A 14 00     - lea rcx,[rbx+00148A98]
game_64.exe+1FA840: E8 5B E6 03 00           - call game_64.exe+238EA0
game_64.exe+1FA845: F3 0F 10 93 C8 1C 00 00  - movss xmm2,[rbx+00001CC8]
game_64.exe+1FA84D: 0F 28 C6                 - movaps xmm0,xmm6
game_64.exe+1FA850: F3 0F 58 83 88 8A 14 00  - addss xmm0,[rbx+00148A88]
game_64.exe+1FA858: F3 0F 10 8B 90 8A 14 00  - movss xmm1,[rbx+00148A90]
game_64.exe+1FA860: 0F 5A DA                 - cvtps2pd xmm3,xmm2
game_64.exe+1FA863: 0F 2F C1                 - comiss xmm0,xmm1
game_64.exe+1FA866: F2 0F 58 9B 28 38 00 00  - addsd xmm3,[rbx+00003828]
game_64.exe+1FA86E: F3 0F 11 83 88 8A 14 00  - movss [rbx+00148A88],xmm0
// ---------- INJECTING HERE ----------
game_64.exe+1FA876: F2 0F 11 9B 28 38 00 00  - movsd [rbx+00003828],xmm3
// ---------- DONE INJECTING  ----------
game_64.exe+1FA87E: 72 0C                    - jb game_64.exe+1FA88C
game_64.exe+1FA880: F3 0F 5C C1              - subss xmm0,xmm1
game_64.exe+1FA884: F3 0F 11 83 88 8A 14 00  - movss [rbx+00148A88],xmm0
game_64.exe+1FA88C: 8B 83 B4 2F 00 00        - mov eax,[rbx+00002FB4]
game_64.exe+1FA892: 33 C9                    - xor ecx,ecx
game_64.exe+1FA894: FF C8                    - dec eax
game_64.exe+1FA896: 45 0F 57 C0              - xorps xmm8,xmm8
game_64.exe+1FA89A: 83 F8 01                 - cmp eax,01
game_64.exe+1FA89D: 77 2A                    - ja game_64.exe+1FA8C9
game_64.exe+1FA89F: F3 0F 10 8B 94 8A 14 00  - movss xmm1,[rbx+00148A94]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>119</ID>
          <Description>"遊戲總時間 / Game time"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Double</VariableType>
          <Address>i_base_gt_addr</Address>
          <Offsets>
            <Offset>3828</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>124</ID>
      <Description>"_debug"</Description>
      <Options moHideChildren="1"/>
      <Color>808080</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>122</ID>
          <Description>"Damage multiplier"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>14</ID>
              <Description>"Orig. damage"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_hp_old</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>13</ID>
              <Description>"New damage"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_hp_new</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>123</ID>
          <Description>"Link XP multiplier"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>120</ID>
              <Description>"old XP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_lxp_old</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>121</ID>
              <Description>"new XP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_lxp_new</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>114</ID>
      <Description>"英雄傳說 閃之軌跡I：改 –Thors Military Academy 1204– (64bit, zh-TW/繁體中文)  /  https://opencheattables.com"</Description>
      <Color>00A251</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>AddressList.Header.OnSectionClick = nil

</LuaScript>
</CheatTable>
