<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>32</ID>
      <Description>"精簡模式 / Compact mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

if not toggleCompactView then
    function toggleCompactView(sender, forceEnable)
        local isCompactMode = not (compactViewMenuItem.Caption == 'Compact View Mode')
        if forceEnable ~= nil then
            isCompactMode = not forceEnable
        end

    synchronize(function()
        compactViewMenuItem.Caption = isCompactMode and 'Compact View Mode' or 'Full View Mode'
        getMainForm().Splitter1.Visible = isCompactMode
        getMainForm().Panel4.Visible    = isCompactMode
        getMainForm().Panel5.Visible    = isCompactMode
    end)
end
end

if not createCompactViewMenu then
    function createCompactViewMenu()
        if isCompactMenuCreated then return end

    synchronize(function()
        local mainMenu = getMainForm().Menu.Items
        compactViewMenuItem = createMenuItem(mainMenu)
        mainMenu.add(compactViewMenuItem)
        compactViewMenuItem.Caption = 'Compact View Mode'
        compactViewMenuItem.OnClick = toggleCompactView
    end)

    isCompactMenuCreated = true
end
end

createCompactViewMenu()
toggleCompactView(nil, true)

[DISABLE]
{$lua}
if toggleCompactView then
    toggleCompactView(nil, false)
end

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>136</ID>
      <Description>"[自動選擇遊戲程序] 一鍵開啟或關閉大部份指令碼 / (Auto attach) Turn some scripts on/off"</Description>
      <Color>0080FF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
{$lua}
if (syntaxcheck) then return end
synchronize(function()
  getLuaEngine().menuItem5.doClick()
  getLuaEngine().Close()
end)

local enableBattleScripts = {
  140, -- "[戰鬥] 勇氣指令不需BP / Battle: Orders cost 0 BP"
  148, -- "道具指令 / Item scripts"
  162, -- "[戰鬥] 傷害倍率 / Battle: Damage multiplier"
  169, -- "[戰鬥] CP無限 / Battle: inf CP"
  171, -- "[戰鬥] EP無限 / Battle: inf EP"
  175, -- "[戰鬥] 設定最低BP值 / Battle: set min BP"
  180, -- "[地圖] 奇襲點數無限 / Map: inf. charge"
  182, -- "[戰鬥] 主結晶迴路EXP倍率 / Battle: Master Quartz EXP multiplier"
  185, -- "取得最耀晶數值 / Get Mira / Sepiths"
  198, -- "取得裝備的迴路 / Get equipped Quartz"
  209, -- "[戰鬥] 設定最小EXP獎勵 / Battle: set min. EXP bonus"
  221, -- "[戰鬥] 破防倍率 / Battle: Break multiplier"
  244, -- "釣魚快速捲線 / Automated fishing when hooked"
  249, -- "VM遊戲：敵人HP為1 / VM Card game: enemy 1HP"
  252, -- "綜合成績 / Get main sheet stats"
  304, -- "變更服裝的3D座標某軸之極限值 / Set costume axis coord limit"
  32, -- "精簡模式 / Compact mode"
  149, -- "裝備或丟棄物品時設定數量 / Drop/equip item: set #"
  196, -- "設定最小耀晶數 / Set min. Sepiths"
  294, -- "保持最小絆點數 / bonding pt"
}
local addressList = getAddressList()
synchronize(function()
  for _, id in ipairs(enableBattleScripts) do
    local memRec = addressList.getMemoryRecordByID(id)
    if memRec and not memRec.Active then
      memRec.Active = true
      sleep(30)
    end
    addressList.refresh()
  end
end)
synchronize(function() getLuaEngine().Close() end)
[DISABLE]
{$lua}
if (syntaxcheck) then return end
synchronize(function()
  getLuaEngine().menuItem5.doClick()
  getLuaEngine().Close()
end)

local disableBattleScripts = {
  294, -- "保持最小絆點數 / bonding pt"
  289, -- "如果過量擊殺、則先保留1點HP? / Keep 1HP if overkill w/ damage multiplier to enemy?"
  243, -- "Data+"
  196, -- "設定最小耀晶數 / Set min. Sepiths"
  149, -- "裝備或丟棄物品時設定數量 / Drop/equip item: set #"
  32, -- "精簡模式 / Compact mode"
  304, -- "變更服裝的3D座標某軸之極限值 / Set costume axis coord limit"
  30, -- "英雄傳說 閃之軌跡IV -THE END OF SAGA-  /  https://opencheattables.com  /  CE 7.5+"
  285, -- "ARCUS II 遊戲「波姆碰」 / ARCUS II game "Pom""
  272, -- "設定Link經驗值 / Set link EXP"
  252, -- "綜合成績 / Get main sheet stats"
  249, -- "VM遊戲：敵人HP為1 / VM Card game: enemy 1HP"
  244, -- "釣魚快速捲線 / Automated fishing when hooked"
  224, -- "戰歷 / Get battle records"
  221, -- "[戰鬥] 破防倍率 / Battle: Break multiplier"
  209, -- "[戰鬥] 設定最小EXP獎勵 / Battle: set min. EXP bonus"
  198, -- "取得裝備的迴路 / Get equipped Quartz"
  185, -- "取得最耀晶數值 / Get Mira / Sepiths"
  182, -- "[戰鬥] 主結晶迴路EXP倍率 / Battle: Master Quartz EXP multiplier"
  180, -- "[地圖] 奇襲點數無限 / Map: inf. charge"
  175, -- "[戰鬥] 設定最低BP值 / Battle: set min BP"
  171, -- "[戰鬥] EP無限 / Battle: inf EP"
  169, -- "[戰鬥] CP無限 / Battle: inf CP"
  162, -- "[戰鬥] 傷害倍率 / Battle: Damage multiplier"
  148, -- "道具指令 / Item scripts"
  140, -- "[戰鬥] 勇氣指令不需BP / Battle: Orders cost 0 BP"
}
local addressList = getAddressList()
synchronize(function()
  for _, id in ipairs(disableBattleScripts) do
    local memRec = addressList.getMemoryRecordByID(id)
    if memRec and memRec.Active then
      memRec.Active = false
      sleep(30)
    end
    addressList.refresh()
  end
end)
synchronize(function() getLuaEngine().Close() end)
-- Comments:
-- ID: 32, Description: "精簡模式 / Compact mode", Depth: 0
-- ID: 136, Description: "[自動選擇遊戲程序] 一鍵開啟或關閉大部份指令碼 / (Auto attach) Turn some scripts on/off", Depth: 0
-- ID: 180, Description: "[地圖] 奇襲點數無限 / Map: inf. charge", Depth: 0
-- ID: 221, Description: "[戰鬥] 破防倍率 / Battle: Break multiplier", Depth: 0
-- ID: 272, Description: "設定Link經驗值 / Set link EXP", Depth: 0
-- ID: 209, Description: "[戰鬥] 設定最小EXP獎勵 / Battle: set min. EXP bonus", Depth: 0
-- ID: 175, Description: "[戰鬥] 設定最低BP值 / Battle: set min BP", Depth: 0
-- ID: 171, Description: "[戰鬥] EP無限 / Battle: inf EP", Depth: 0
-- ID: 169, Description: "[戰鬥] CP無限 / Battle: inf CP", Depth: 0
-- ID: 182, Description: "[戰鬥] 主結晶迴路EXP倍率 / Battle: Master Quartz EXP multiplier", Depth: 0
-- ID: 162, Description: "[戰鬥] 傷害倍率 / Battle: Damage multiplier", Depth: 0
--   ID: 289, Description: "如果過量擊殺、則先保留1點HP? / Keep 1HP if overkill w/ damage multiplier to enemy?", Depth: 1
-- ID: 140, Description: "[戰鬥] 勇氣指令不需BP / Battle: Orders cost 0 BP", Depth: 0
-- ID: 148, Description: "道具指令 / Item scripts", Depth: 0
--   ID: 149, Description: "裝備或丟棄物品時設定數量 / Drop/equip item: set #", Depth: 1
-- ID: 198, Description: "取得裝備的迴路 / Get equipped Quartz", Depth: 0
-- ID: 244, Description: "釣魚快速捲線 / Automated fishing when hooked", Depth: 0
-- ID: 224, Description: "戰歷 / Get battle records", Depth: 0
-- ID: 249, Description: "VM遊戲：敵人HP為1 / VM Card game: enemy 1HP", Depth: 0
-- ID: 285, Description: "ARCUS II 遊戲「波姆碰」 / ARCUS II game "Pom"", Depth: 0
-- ID: 185, Description: "取得最耀晶數值 / Get Mira / Sepiths", Depth: 0
--   ID: 196, Description: "設定最小耀晶數 / Set min. Sepiths", Depth: 1
--   ID: 243, Description: "Data+", Depth: 1
-- ID: 252, Description: "綜合成績 / Get main sheet stats", Depth: 0
--   ID: 294, Description: "保持最小絆點數 / bonding pt", Depth: 1
-- ID: 304, Description: "變更服裝的3D座標某軸之極限值 / Set costume axis coord limit", Depth: 0
-- ID: 30, Description: "英雄傳說 閃之軌跡IV -THE END OF SAGA-  /  https://opencheattables.com  /  CE 7.5+", Depth: 0

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>180</ID>
      <Description>"[地圖] 奇襲點數無限 / Map: inf. charge"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version:
  Date   : 2024-07-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_CHARGE,$process,66 39 88 04 A6 9A 00) // should be unique
alloc(newmem,$1000,INJECT_INF_CHARGE)

label(code)
label(return)

newmem:
  mov [rax+009AA604],cx

code:
  cmp [rax+009AA604],cx
  jmp return

INJECT_INF_CHARGE:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_CHARGE)

[DISABLE]

INJECT_INF_CHARGE:
  db 66 39 88 04 A6 9A 00

unregistersymbol(INJECT_INF_CHARGE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+2D77C0

ed8_4_PC.exe+2D7795: 48 8D 45 C7              - lea rax,[rbp-39]
ed8_4_PC.exe+2D7799: C6 44 24 30 00           - mov byte ptr [rsp+30],00
ed8_4_PC.exe+2D779E: 66 89 7C 24 28           - mov [rsp+28],di
ed8_4_PC.exe+2D77A3: 48 89 44 24 20           - mov [rsp+20],rax
ed8_4_PC.exe+2D77A8: E8 D3 76 00 00           - call ed8_4_PC.exe+2DEE80
ed8_4_PC.exe+2D77AD: FF C3                    - inc ebx
ed8_4_PC.exe+2D77AF: 83 FB 09                 - cmp ebx,09
ed8_4_PC.exe+2D77B2: 7C 8C                    - jl ed8_4_PC.exe+2D7740
ed8_4_PC.exe+2D77B4: 49 8B 86 18 0A 00 00     - mov rax,[r14+00000A18]
ed8_4_PC.exe+2D77BB: B9 C8 00 00 00           - mov ecx,000000C8
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+2D77C0: 66 39 88 04 A6 9A 00     - cmp [rax+009AA604],cx
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+2D77C7: 74 78                    - je ed8_4_PC.exe+2D7841
ed8_4_PC.exe+2D77C9: 66 44 89 7D 07           - mov [rbp+07],r15w
ed8_4_PC.exe+2D77CE: 41 8B DF                 - mov ebx,r15d
ed8_4_PC.exe+2D77D1: 48 C7 45 0B 00 00 00 00  - mov qword ptr [rbp+0B],00000000
ed8_4_PC.exe+2D77D9: 44 89 7D 13              - mov [rbp+13],r15d
ed8_4_PC.exe+2D77DD: 0F 1F 00                 - nop dword ptr [rax]
ed8_4_PC.exe+2D77E0: 49 8B 8E 18 0A 00 00     - mov rcx,[r14+00000A18]
ed8_4_PC.exe+2D77E7: 48 8D 45 07              - lea rax,[rbp+07]
ed8_4_PC.exe+2D77EB: 48 81 C1 28 A5 9A 00     - add rcx,009AA528
ed8_4_PC.exe+2D77F2: 4C 89 7C 24 28           - mov [rsp+28],r15
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>221</ID>
      <Description>"[戰鬥] 破防倍率 / Battle: Break multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BREAK_MULTI,$process,2B C7 3B C1 0F 4C C8 33 C0 85 C9 0F 48 C8 89 8B DC 03 00 00 48 8B CB) // should be unique
alloc(newmem,$1000,INJECT_BREAK_MULTI)

label(code)
label(return)
label(vf_break_multi)

newmem:
  vxorps xmm13, xmm13, xmm13
  vxorps xmm15, xmm15, xmm15

  vcvtsi2ss xmm15, xmm15, edi
  vmovss xmm14, [vf_break_multi]
  vcvtsi2ss xmm13, xmm13, eax
  vmulss xmm15, xmm15, xmm14
  vucomiss xmm15, xmm13
  jbe @F

  movups xmm15, xmm13

@@:
  vcvtss2si edi, xmm15

code:
  sub eax,edi
  cmp eax,ecx
  cmovl ecx,eax
  jmp return
align 10 cc
  vf_break_multi:
  dd (float)1.81

INJECT_BREAK_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BREAK_MULTI)
registersymbol(vf_break_multi)

[DISABLE]

INJECT_BREAK_MULTI:
  db 2B C7 3B C1 0F 4C C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+1154B3

ed8_4_PC_JP.exe+11548E: E8 ED 6C 04 00     - call ed8_4_PC_JP.exe+15C180
ed8_4_PC_JP.exe+115493: 48 85 C0           - test rax,rax
ed8_4_PC_JP.exe+115496: 74 0F              - je ed8_4_PC_JP.exe+1154A7
ed8_4_PC_JP.exe+115498: 45 33 C0           - xor r8d,r8d
ed8_4_PC_JP.exe+11549B: 8B D7              - mov edx,edi
ed8_4_PC_JP.exe+11549D: 48 8B C8           - mov rcx,rax
ed8_4_PC_JP.exe+1154A0: E8 5B D1 FF FF     - call ed8_4_PC_JP.exe+112600
ed8_4_PC_JP.exe+1154A5: EB 20              - jmp ed8_4_PC_JP.exe+1154C7
ed8_4_PC_JP.exe+1154A7: 8B 83 DC 03 00 00  - mov eax,[rbx+000003DC]
ed8_4_PC_JP.exe+1154AD: 8B 8B E0 03 00 00  - mov ecx,[rbx+000003E0]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+1154B3: 2B C7              - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+1154B5: 3B C1              - cmp eax,ecx
ed8_4_PC_JP.exe+1154B7: 0F 4C C8           - cmovl ecx,eax
ed8_4_PC_JP.exe+1154BA: 33 C0              - xor eax,eax
ed8_4_PC_JP.exe+1154BC: 85 C9              - test ecx,ecx
ed8_4_PC_JP.exe+1154BE: 0F 48 C8           - cmovs ecx,eax
ed8_4_PC_JP.exe+1154C1: 89 8B DC 03 00 00  - mov [rbx+000003DC],ecx
ed8_4_PC_JP.exe+1154C7: 48 8B CB           - mov rcx,rbx
ed8_4_PC_JP.exe+1154CA: E8 81 14 00 00     - call ed8_4_PC_JP.exe+116950
ed8_4_PC_JP.exe+1154CF: 83 78 30 00        - cmp dword ptr [rax+30],00
ed8_4_PC_JP.exe+1154D3: 75 23              - jne ed8_4_PC_JP.exe+1154F8
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>222</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_break_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>272</ID>
      <Description>"設定Link經驗值 / Set link EXP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_LINK_XP,$process,48 03 C2 8B 04 81) // should be unique
alloc(newmem,$1000,INJECT_SET_LINK_XP)

label(code)
label(return)
label(i_min_link_exp)

newmem:

code:
  add rax,rdx
  mov eax,[rcx+rax*4]

  // code start
  test eax, eax
  jz return

  cmp eax, [i_min_link_exp]
  jae return

  mov eax, [i_min_link_exp]
  mov [rcx+rax*4], eax
  // code end


  jmp return
align 10 cc
  i_min_link_exp:
  dd #1200

INJECT_SET_LINK_XP:
  jmp newmem
  nop
return:
registersymbol(INJECT_SET_LINK_XP)
registersymbol(i_min_link_exp)

[DISABLE]

INJECT_SET_LINK_XP:
  db 48 03 C2 8B 04 81

unregistersymbol(INJECT_SET_LINK_XP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+46BCEC

ed8_4_PC_JP.exe+46BCCE: CC              - int 3 
ed8_4_PC_JP.exe+46BCCF: CC              - int 3 
ed8_4_PC_JP.exe+46BCD0: 66 83 FA 40     - cmp dx,40
ed8_4_PC_JP.exe+46BCD4: 73 1D           - jae ed8_4_PC_JP.exe+46BCF3
ed8_4_PC_JP.exe+46BCD6: 66 41 83 F8 40  - cmp r8w,40
ed8_4_PC_JP.exe+46BCDB: 73 16           - jae ed8_4_PC_JP.exe+46BCF3
ed8_4_PC_JP.exe+46BCDD: 0F B7 C2        - movzx eax,dx
ed8_4_PC_JP.exe+46BCE0: 48 83 C0 10     - add rax,10
ed8_4_PC_JP.exe+46BCE4: 41 0F B7 D0     - movzx edx,r8w
ed8_4_PC_JP.exe+46BCE8: 48 C1 E0 06     - shl rax,06
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+46BCEC: 48 03 C2        - add rax,rdx
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+46BCEF: 8B 04 81        - mov eax,[rcx+rax*4]
ed8_4_PC_JP.exe+46BCF2: C3              - ret 
ed8_4_PC_JP.exe+46BCF3: 33 C0           - xor eax,eax
ed8_4_PC_JP.exe+46BCF5: C3              - ret 
ed8_4_PC_JP.exe+46BCF6: CC              - int 3 
ed8_4_PC_JP.exe+46BCF7: CC              - int 3 
ed8_4_PC_JP.exe+46BCF8: CC              - int 3 
ed8_4_PC_JP.exe+46BCF9: CC              - int 3 
ed8_4_PC_JP.exe+46BCFA: CC              - int 3 
ed8_4_PC_JP.exe+46BCFB: CC              - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>278</ID>
          <Description>"使用方式：戰鬥1-2次"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>279</ID>
          <Description>"戰鬥前開啟! / Warning: make a backup before use!!"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>280</ID>
          <Description>"不`使用時關閉! / Warning: disable when done."</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>277</ID>
          <Description>"最小值 / Min. link EXP"</Description>
          <DropDownList DisplayValueAsItem="1">2000:Lv4.2
2800:Lv5
4000:Lv6
5390:Lv7-
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_min_link_exp</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>209</ID>
      <Description>"[戰鬥] 設定最小EXP獎勵 / Battle: set min. EXP bonus"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_XP_BONUS,$process,95 02 00 00 00 F3 0F 10 45 10 F3 0F 58 86 90 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_XP_BONUS)

label(code)
label(return)
label(vf_min_xp_bonus)

newmem:
  vmovss xmm14, [vf_min_xp_bonus]
  vmovss xmm15, dword ptr [rsi+00000290]
  vucomiss xmm15, xmm14
  jae code
  vmovss [rsi+00000290], xmm14

code:
  addss xmm0,[rsi+00000290]
  jmp return
align 10 cc
  vf_min_xp_bonus:
  dd (float)1.8

INJECT_SET_MIN_XP_BONUS+0A:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SET_MIN_XP_BONUS)
registersymbol(vf_min_xp_bonus)

[DISABLE]

INJECT_SET_MIN_XP_BONUS+0A:
  db F3 0F 58 86 90 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+190696

ed8_4_PC_JP.exe+19065C: 48 8B CB                       - mov rcx,rbx
ed8_4_PC_JP.exe+19065F: E8 DC 3A 00 00                 - call ed8_4_PC_JP.exe+194140
ed8_4_PC_JP.exe+190664: 44 0F 28 44 24 30              - movaps xmm8,[rsp+30]
ed8_4_PC_JP.exe+19066A: 0F 28 7C 24 40                 - movaps xmm7,[rsp+40]
ed8_4_PC_JP.exe+19066F: 0F 28 74 24 50                 - movaps xmm6,[rsp+50]
ed8_4_PC_JP.exe+190674: 43 FE 84 3E 94 02 00 00        - inc byte ptr [r14+r15+00000294]
ed8_4_PC_JP.exe+19067C: 4A 8D 04 76                    - lea rax,[rsi+r14*2]
ed8_4_PC_JP.exe+190680: 4C 8B A4 24 90 00 00 00        - mov r12,[rsp+00000090]
ed8_4_PC_JP.exe+190688: 41 C6 84 06 95 02 00 00 00     - mov byte ptr [r14+rax+00000295],00
ed8_4_PC_JP.exe+190691: F3 0F 10 45 10                 - movss xmm0,[rbp+10]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+190696: F3 0F 58 86 90 02 00 00        - addss xmm0,[rsi+00000290]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+19069E: 0F 2F 05 73 5C 6F 00           - comiss xmm0,[ed8_4_PC_JP.exe+886318]
ed8_4_PC_JP.exe+1906A5: F3 0F 11 86 90 02 00 00        - movss [rsi+00000290],xmm0
ed8_4_PC_JP.exe+1906AD: 76 0A                          - jna ed8_4_PC_JP.exe+1906B9
ed8_4_PC_JP.exe+1906AF: C7 86 90 02 00 00 66 66 1E 41  - mov [rsi+00000290],411E6666
ed8_4_PC_JP.exe+1906B9: 4C 8B B4 24 98 00 00 00        - mov r14,[rsp+00000098]
ed8_4_PC_JP.exe+1906C1: 4C 8B 7C 24 60                 - mov r15,[rsp+60]
ed8_4_PC_JP.exe+1906C6: 48 8B AC 24 80 00 00 00        - mov rbp,[rsp+00000080]
ed8_4_PC_JP.exe+1906CE: 48 8B BC 24 88 00 00 00        - mov rdi,[rsp+00000088]
ed8_4_PC_JP.exe+1906D6: 48 83 C4 68                    - add rsp,68
ed8_4_PC_JP.exe+1906DA: 5E                             - pop rsi
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>210</ID>
          <Description>"最小值 / Min. bonus"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_xp_bonus</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>175</ID>
      <Description>"[戰鬥] 設定最低BP值 / Battle: set min BP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_SET_BP,$process,0F B6 BB 90 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_SET_BP)

label(code)
label(return)
label(i_min_bp)

newmem:
  mov dil, [i_min_bp]
  cmp [rbx+00000290], dil
  jae code
  mov [rbx+00000290], dil

code:
  movzx edi,byte ptr [rbx+00000290]
  jmp return
align 10 cc
  i_min_bp:
  db 1


INJECT_BATTLE_SET_BP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATTLE_SET_BP)
registersymbol(i_min_bp)

[DISABLE]

INJECT_BATTLE_SET_BP:
  db 0F B6 BB 90 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+473AFA

ed8_4_PC_JP.exe+473AC2: 44 0F 28 D9              - movaps xmm11,xmm1
ed8_4_PC_JP.exe+473AC6: E8 75 7D 06 00           - call ed8_4_PC_JP.exe+4DB840
ed8_4_PC_JP.exe+473ACB: 48 8B 0D E6 5E 89 00     - mov rcx,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+473AD2: BA 01 04 00 00           - mov edx,00000401
ed8_4_PC_JP.exe+473AD7: E8 B4 AA E6 FF           - call ed8_4_PC_JP.exe+2DE590
ed8_4_PC_JP.exe+473ADC: 84 C0                    - test al,al
ed8_4_PC_JP.exe+473ADE: 0F 84 53 04 00 00        - je ed8_4_PC_JP.exe+473F37
ed8_4_PC_JP.exe+473AE4: 8B 93 94 02 00 00        - mov edx,[rbx+00000294]
ed8_4_PC_JP.exe+473AEA: 48 89 B4 24 B0 00 00 00  - mov [rsp+000000B0],rsi
ed8_4_PC_JP.exe+473AF2: 48 89 BC 24 B8 00 00 00  - mov [rsp+000000B8],rdi
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+473AFA: 0F B6 BB 90 02 00 00     - movzx edi,byte ptr [rbx+00000290]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+473B01: 0F 29 B4 24 90 00 00 00  - movaps [rsp+00000090],xmm6
ed8_4_PC_JP.exe+473B09: 8D 42 FF                 - lea eax,[rdx-01]
ed8_4_PC_JP.exe+473B0C: 0F 29 BC 24 80 00 00 00  - movaps [rsp+00000080],xmm7
ed8_4_PC_JP.exe+473B14: 44 0F 29 44 24 70        - movaps [rsp+70],xmm8
ed8_4_PC_JP.exe+473B1A: 44 0F 29 4C 24 60        - movaps [rsp+60],xmm9
ed8_4_PC_JP.exe+473B20: 83 F8 06                 - cmp eax,06
ed8_4_PC_JP.exe+473B23: 0F 87 70 03 00 00        - ja ed8_4_PC_JP.exe+473E99
ed8_4_PC_JP.exe+473B29: 4C 8D 05 D0 C4 B8 FF     - lea r8,[ed8_4_PC_JP.exe]
ed8_4_PC_JP.exe+473B30: 48 98                    - cdqe 
ed8_4_PC_JP.exe+473B32: 41 8B 8C 80 48 3F 47 00  - mov ecx,[r8+rax*4+00473F48]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>176</ID>
          <Description>"最小值 / Min. BP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_min_bp</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>171</ID>
      <Description>"[戰鬥] EP無限 / Battle: inf EP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_INF_EP,$process,B6 03 00 00 2B C7 85 C0 0F 4F C8) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_INF_EP)

label(code)
label(return)

newmem:
  // check if player w/ 2 condifions
  push r15
  xor r15, r15
  cmp byte ptr [rbx+000003A9], 8
  //jne to_enemy
  jne to_add_2
  inc r15d

to_add_2:
  cmp dword ptr [rbx+000003E0], 0 // max break pt
  //jne to_enemy
  jne to_add_post
  inc r15d

to_add_post:
  test r15d, r15d
  pop r15
  jz code

  movzx ecx, word ptr [rbx+000003B6]
  mov [rbx+000003B4], cx
  mov eax, ecx
  //xor ecx, ecx

  cmp edi, 0
  jl code
  xor edi, edi

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return

INJECT_BATTLE_INF_EP+04:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATTLE_INF_EP)

[DISABLE]

INJECT_BATTLE_INF_EP+04:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(INJECT_BATTLE_INF_EP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+112804

ed8_4_PC_JP.exe+1127D7: 48 8B 4B 08                    - mov rcx,[rbx+08]
ed8_4_PC_JP.exe+1127DB: E8 A0 99 04 00                 - call ed8_4_PC_JP.exe+15C180
ed8_4_PC_JP.exe+1127E0: 48 85 C0                       - test rax,rax
ed8_4_PC_JP.exe+1127E3: 74 0F                          - je ed8_4_PC_JP.exe+1127F4
ed8_4_PC_JP.exe+1127E5: F7 80 A8 03 00 00 00 00 20 00  - test [rax+000003A8],00200000
ed8_4_PC_JP.exe+1127EF: 48 8B D8                       - mov rbx,rax
ed8_4_PC_JP.exe+1127F2: 75 DC                          - jne ed8_4_PC_JP.exe+1127D0
ed8_4_PC_JP.exe+1127F4: 0F B7 83 B4 03 00 00           - movzx eax,word ptr [rbx+000003B4]
ed8_4_PC_JP.exe+1127FB: 33 C9                          - xor ecx,ecx
ed8_4_PC_JP.exe+1127FD: 0F B7 93 B6 03 00 00           - movzx edx,word ptr [rbx+000003B6]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+112804: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+112806: 85 C0                          - test eax,eax
ed8_4_PC_JP.exe+112808: 0F 4F C8                       - cmovg ecx,eax
ed8_4_PC_JP.exe+11280B: 3B CA                          - cmp ecx,edx
ed8_4_PC_JP.exe+11280D: 66 0F 4C D1                    - cmovl dx,cx
ed8_4_PC_JP.exe+112811: 66 89 93 B4 03 00 00           - mov [rbx+000003B4],dx
ed8_4_PC_JP.exe+112818: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+11281D: 48 83 C4 20                    - add rsp,20
ed8_4_PC_JP.exe+112821: 5F                             - pop rdi
ed8_4_PC_JP.exe+112822: C3                             - ret 
ed8_4_PC_JP.exe+112823: CC                             - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>169</ID>
      <Description>"[戰鬥] CP無限 / Battle: inf CP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_INF_CP,$process,BA 03 00 00 2B C7 85 C0 0F 4F C8) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_INF_CP)

label(code)
label(return)

newmem:
  // check if player w/ 2 condifions
  push r15
  xor r15, r15
  cmp byte ptr [rbx+000003A9], 8
  //jne to_enemy
  jne to_add_2
  inc r15d

to_add_2:
  cmp dword ptr [rbx+000003E0], 0 // max break pt
  //jne to_enemy
  jne to_add_post
  inc r15d

to_add_post:
  test r15d, r15d
  pop r15
  jz code

  movzx ecx, word ptr [rbx+000003BA]
  mov [rbx+000003B8], cx
  mov eax, ecx
  //xor ecx, ecx

  cmp edi, 0
  jl code
  xor edi, edi

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return

INJECT_BATTLE_INF_CP+04:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATTLE_INF_CP)

[DISABLE]

INJECT_BATTLE_INF_CP+04:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(INJECT_BATTLE_INF_CP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+112704

ed8_4_PC_JP.exe+1126D7: 48 8B 4B 08                    - mov rcx,[rbx+08]
ed8_4_PC_JP.exe+1126DB: E8 A0 9A 04 00                 - call ed8_4_PC_JP.exe+15C180
ed8_4_PC_JP.exe+1126E0: 48 85 C0                       - test rax,rax
ed8_4_PC_JP.exe+1126E3: 74 0F                          - je ed8_4_PC_JP.exe+1126F4
ed8_4_PC_JP.exe+1126E5: F7 80 A8 03 00 00 00 00 20 00  - test [rax+000003A8],00200000
ed8_4_PC_JP.exe+1126EF: 48 8B D8                       - mov rbx,rax
ed8_4_PC_JP.exe+1126F2: 75 DC                          - jne ed8_4_PC_JP.exe+1126D0
ed8_4_PC_JP.exe+1126F4: 0F B7 83 B8 03 00 00           - movzx eax,word ptr [rbx+000003B8]
ed8_4_PC_JP.exe+1126FB: 33 C9                          - xor ecx,ecx
ed8_4_PC_JP.exe+1126FD: 0F B7 93 BA 03 00 00           - movzx edx,word ptr [rbx+000003BA]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+112704: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+112706: 85 C0                          - test eax,eax
ed8_4_PC_JP.exe+112708: 0F 4F C8                       - cmovg ecx,eax
ed8_4_PC_JP.exe+11270B: 3B CA                          - cmp ecx,edx
ed8_4_PC_JP.exe+11270D: 66 0F 4C D1                    - cmovl dx,cx
ed8_4_PC_JP.exe+112711: 66 89 93 B8 03 00 00           - mov [rbx+000003B8],dx
ed8_4_PC_JP.exe+112718: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+11271D: 48 83 C4 20                    - add rsp,20
ed8_4_PC_JP.exe+112721: 5F                             - pop rdi
ed8_4_PC_JP.exe+112722: C3                             - ret 
ed8_4_PC_JP.exe+112723: CC                             - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>182</ID>
      <Description>"[戰鬥] 主結晶迴路EXP倍率 / Battle: Master Quartz EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_MQZ_MULTI,$process,F3 0F 59 CE F3 0F 58 C8 F3 48 0F 2C C9 3B C8 0F 42 C1 89) // should be unique
alloc(newmem,$1000,INJECT_MQZ_MULTI)

label(code)
label(return)
label(vf_maz_multi)

newmem:
  vmovss xmm14, [vf_maz_multi]
  vmulss xmm1, xmm1, xmm14

code:
  mulss xmm1,xmm6
  addss xmm1,xmm0
  jmp return
align 10 cc
  vf_maz_multi:
  dd (float)1.333333333

INJECT_MQZ_MULTI:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_MQZ_MULTI)
registersymbol(vf_maz_multi)

[DISABLE]

INJECT_MQZ_MULTI:
  db F3 0F 59 CE F3 0F 58 C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+1865FD

ed8_4_PC_JP.exe+1865D1: 66 83 F8 08           - cmp ax,08
ed8_4_PC_JP.exe+1865D5: 77 67                 - ja ed8_4_PC_JP.exe+18663E
ed8_4_PC_JP.exe+1865D7: 8B 83 CC 02 00 00     - mov eax,[rbx+000002CC]
ed8_4_PC_JP.exe+1865DD: 0F 57 C9              - xorps xmm1,xmm1
ed8_4_PC_JP.exe+1865E0: 0F 57 C0              - xorps xmm0,xmm0
ed8_4_PC_JP.exe+1865E3: BA 0A 00 00 00        - mov edx,0000000A
ed8_4_PC_JP.exe+1865E8: F3 48 0F 2A C8        - cvtsi2ss xmm1,rax
ed8_4_PC_JP.exe+1865ED: 8B 83 DC 02 00 00     - mov eax,[rbx+000002DC]
ed8_4_PC_JP.exe+1865F3: F3 48 0F 2A C0        - cvtsi2ss xmm0,rax
ed8_4_PC_JP.exe+1865F8: B8 9F 86 01 00        - mov eax,0001869F
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+1865FD: F3 0F 59 CE           - mulss xmm1,xmm6
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+186601: F3 0F 58 C8           - addss xmm1,xmm0
ed8_4_PC_JP.exe+186605: F3 48 0F 2C C9        - cvttss2si rcx,xmm1
ed8_4_PC_JP.exe+18660A: 3B C8                 - cmp ecx,eax
ed8_4_PC_JP.exe+18660C: 0F 42 C1              - cmovb eax,ecx
ed8_4_PC_JP.exe+18660F: 89 83 CC 02 00 00     - mov [rbx+000002CC],eax
ed8_4_PC_JP.exe+186615: 48 8B 0D 9C 33 B8 00  - mov rcx,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+18661C: E8 9F 9A 16 00        - call ed8_4_PC_JP.exe+2F00C0
ed8_4_PC_JP.exe+186621: 8B 93 CC 02 00 00     - mov edx,[rbx+000002CC]
ed8_4_PC_JP.exe+186627: 44 8B 83 C8 02 00 00  - mov r8d,[rbx+000002C8]
ed8_4_PC_JP.exe+18662E: 41 03 D0              - add edx,r8d
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>183</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_maz_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>162</ID>
      <Description>"[戰鬥] 傷害倍率 / Battle: Damage multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_DAMAGE_MULTI,$process,89 9E AC 03 00 00) // should be unique
alloc(newmem,$1000,INJECT_DAMAGE_MULTI)

label(code)
label(return)
label(vf_damage_to_player)
label(vf_damage_to_enemy)
label(is_rec_ep_hit)
label(is_rec_cp_hit)
label(is_keep_1hp)

newmem:
  vcvtsi2ss xmm15, xmm15, ebx // xmm15 = new hp

  push rbx
  mov ebx, [rsi+000003AC]
  vcvtsi2ss xmm13, xmm13, ebx // xmm13 = old hp
  pop rbx

  vucomiss xmm15, xmm13  // skip if new HP &gt; old HP
  jae code

  // damage calc. start
  vsubss xmm12, xmm13, xmm15  // damage (delta) = old HP - new HP
  //vunpcklps xmm12, xmm12, xmm12  // place lower 32-bit float to 33-64 bit
  vbroadcastss xmm12, xmm12

  vmovaps xmm14, [vf_damage_to_player] // copy multiplier: to_player &amp; to_emeny, 0, 0

  vmulps xmm12, xmm12, xmm14 // new delta; packed mul calc.
  vbroadcastss xmm13, xmm13
  vsubps xmm12, xmm13, xmm12 // old hp - new delta = new hp; packed sub: lower 32-bit = player; 33-64 bit = enemy
  // damage calc end

  // check if player w/ 2 conditions

  push r15
  xor r15, r15
  cmp byte ptr [rsi+000003A9], 8
  //jne to_enemy
  jne to_add_2
  inc r15d

to_add_2:
  cmp dword ptr [rsi+000003E0], 0 // max break pt
  //jne to_enemy
  jne to_add_post
  inc r15d

to_add_post:
  test r15d, r15d
  pop r15

  jz to_enemy


to_Player:
  cmp dword ptr [is_rec_ep_hit], 1
  jne @F

  push r15
  mov r15w, [rsi+000003B6]
  mov [rsi+000003B4], r15w
  pop r15

@@:
  cmp dword ptr [is_rec_cp_hit], 1
  jne @F

  push r15
  mov r15w, [rsi+000003BA]
  mov [rsi+000003B8], r15w
  pop r15

  // check if damage multiplier to player &lt; 1
  //
  // i.e.
  // ebx = 0 (new HP = 0)
  // [rsi+000003AC] = 100 (old HP)
  // if multiplier &lt; 1, player will not die

  vmovss xmm10, [vf_1]
  vmovss xmm11, [vf_damage_to_player]
  vucomiss xmm11, xmm10
  jb @F // if multiplier &lt; 1, skip 0 HP check
  je code // multiplier = 1

  test ebx, ebx // this part will be checked only multiplier &gt; 1
                // already 0, no need to write new Hp back
  jz code


@@:
  // Write player HP back
  vcvtss2si ebx, xmm12  // lower 32 bit float = player HP

  jmp code

to_enemy:
  vmovss xmm10, [vf_1]
  vmovss xmm11, [vf_damage_to_enemy]
  vucomiss xmm11, xmm10
  jb @F // if multiplier &lt; 1, skip 0 HP check
  je code // multiplier = 1, no need to write back

  test ebx, ebx // this part will be checked only multiplier &gt; 1
                // already 0, no need to write new Hp back
  jz code

@@:

  cmp ebx, 1
  je code

  vextractps [tmp1], xmm12, 1 // move xmm lower 2nd 32-bit part to memory
  vmovd xmm12, [tmp1]


  vxorps xmm11, xmm11, xmm11
  vucomiss xmm12, xmm11
  ja to_enemy_1

  cmp dword ptr [is_keep_1hp], 1
  jne @F
  vmovss xmm12, [vf_1]
  jmp to_enemy_1

en_set_0:
  vxorps xmm12, xmm12, xmm12

to_enemy_1:
  vcvtss2si ebx, xmm12



code:
  mov [rsi+000003AC],ebx
  jmp return
align 10 cc
  // packed scaler start
  vf_damage_to_player:
  dd (float)1
  vf_damage_to_enemy:
  dd (float)64
  dd 0
  dd 0
  // packed scaler end
  is_rec_ep_hit:
  dd 1
  is_rec_cp_hit:
  dd 1
  vf_1:
  dd (float)1
  tmp1:
  dd 0
  is_keep_1hp:
  dd 0

INJECT_DAMAGE_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_DAMAGE_MULTI)
registersymbol(vf_damage_to_player)
registersymbol(vf_damage_to_enemy)
registersymbol(is_rec_ep_hit)
registersymbol(is_rec_cp_hit)
registersymbol(is_keep_1hp)

[DISABLE]

INJECT_DAMAGE_MULTI:
  db 89 9E AC 03 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+113B54

ed8_4_PC.exe+113B2E: F7 E1                    - mul ecx
ed8_4_PC.exe+113B30: C1 EA 05                 - shr edx,05
ed8_4_PC.exe+113B33: 03 DA                    - add ebx,edx
ed8_4_PC.exe+113B35: 45 2B FE                 - sub r15d,r14d
ed8_4_PC.exe+113B38: 45 85 FF                 - test r15d,r15d
ed8_4_PC.exe+113B3B: 41 0F 4F FF              - cmovg edi,r15d
ed8_4_PC.exe+113B3F: 4C 8B BC 24 90 00 00 00  - mov r15,[rsp+00000090]
ed8_4_PC.exe+113B47: 3B FB                    - cmp edi,ebx
ed8_4_PC.exe+113B49: 0F 4C DF                 - cmovl ebx,edi
ed8_4_PC.exe+113B4C: 48 8B BC 24 98 00 00 00  - mov rdi,[rsp+00000098]
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+113B54: 89 9E AC 03 00 00        - mov [rsi+000003AC],ebx
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+113B5A: 48 8B 9C 24 D0 00 00 00  - mov rbx,[rsp+000000D0]
ed8_4_PC.exe+113B62: 48 8B 4D 27              - mov rcx,[rbp+27]
ed8_4_PC.exe+113B66: 48 33 CC                 - xor rcx,rsp
ed8_4_PC.exe+113B69: E8 F2 D3 69 00           - call ed8_4_PC.exe+7B0F60
ed8_4_PC.exe+113B6E: 48 81 C4 A0 00 00 00     - add rsp,000000A0
ed8_4_PC.exe+113B75: 41 5E                    - pop r14
ed8_4_PC.exe+113B77: 5E                       - pop rsi
ed8_4_PC.exe+113B78: 5D                       - pop rbp
ed8_4_PC.exe+113B79: C3                       - ret
ed8_4_PC.exe+113B7A: CC                       - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>288</ID>
          <Description>"Warning: 龍眼 / "Dragon Vision" may not work"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>163</ID>
          <Description>"受傷時EP回滿? / Full EP when get hit?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_rec_ep_hit</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>164</ID>
          <Description>"受傷時CP回滿? / Full CP when get hit?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_rec_cp_hit</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>165</ID>
          <Description>"對玩家傷害倍率 / Damage multiplier to player"</Description>
          <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">1:Default
0.85:0.85
0.5:0.5
0.0001:0.0001
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_damage_to_player</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>166</ID>
          <Description>"對敵人傷害倍率 / Damage multiplier to enemy"</Description>
          <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">1:Default
6:6
12:12
32:32
64:64
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_damage_to_enemy</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>289</ID>
          <Description>"如果過量擊殺、則先保留1點HP? / Keep 1HP if overkill w/ damage multiplier to enemy?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_keep_1hp</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>291</ID>
              <Description>"如果龍瞳的效果失效、設此為1則可能使其功能回復 (非100%)"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>309</ID>
              <Description>"此效果是敵人HP在死前至少剩1"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>305</ID>
              <Description>"Set this to "1" to make "Dragon Vision" more workable (not 100%)"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>140</ID>
      <Description>"[戰鬥] 勇氣指令不需BP / Battle: Orders cost 0 BP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ORDER_0BP_PRE,$process,0F B6 88 90 02 00 00 66) // should be unique
alloc(newmem,$1000,INJECT_ORDER_0BP_PRE)

label(code)
label(return)



aobscanmodule(INJECT_NO_ORDER_COST,$process,44 2B C0 45 85 C0) // should be unique
alloc(newmem2,$1000,INJECT_NO_ORDER_COST)

label(code2)
label(return2)



newmem:
  xor si, si

code:
  movzx ecx,byte ptr [rax+00000290]
  jmp return

INJECT_ORDER_0BP_PRE:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_ORDER_0BP_PRE)



newmem2:
  xor eax, eax

code2:
  sub r8d,eax
  test r8d,r8d
  jmp return2

INJECT_NO_ORDER_COST:
  jmp newmem2
  nop
return2:
registersymbol(INJECT_NO_ORDER_COST)

[DISABLE]

INJECT_ORDER_0BP_PRE:
  db 0F B6 88 90 02 00 00
INJECT_NO_ORDER_COST:
  db 44 2B C0 45 85 C0

unregistersymbol(INJECT_ORDER_0BP_PRE)
dealloc(newmem)

unregistersymbol(INJECT_NO_ORDER_COST)
dealloc(newmem2)
{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+F8118

ed8_4_PC_JP.exe+F80ED: 49 8B 85 28 41 00 00  - mov rax,[r13+00004128]
ed8_4_PC_JP.exe+F80F4: 49 8B 56 60           - mov rdx,[r14+60]
ed8_4_PC_JP.exe+F80F8: 48 8B 88 D0 02 00 00  - mov rcx,[rax+000002D0]
ed8_4_PC_JP.exe+F80FF: E8 AC EA 00 00        - call ed8_4_PC_JP.exe+106BB0
ed8_4_PC_JP.exe+F8104: 83 F8 11              - cmp eax,11
ed8_4_PC_JP.exe+F8107: 75 05                 - jne ed8_4_PC_JP.exe+F810E
ed8_4_PC_JP.exe+F8109: 66 89 33              - mov [rbx],si
ed8_4_PC_JP.exe+F810C: EB 03                 - jmp ed8_4_PC_JP.exe+F8111
ed8_4_PC_JP.exe+F810E: 0F B7 33              - movzx esi,word ptr [rbx]
ed8_4_PC_JP.exe+F8111: 49 8B 85 00 42 00 00  - mov rax,[r13+00004200]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+F8118: 0F B6 88 90 02 00 00  - movzx ecx,byte ptr [rax+00000290]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+F811F: 66 3B CE              - cmp cx,si
ed8_4_PC_JP.exe+F8122: 0F 83 A3 FE FF FF     - jae ed8_4_PC_JP.exe+F7FCB
ed8_4_PC_JP.exe+F8128: 32 C0                 - xor al,al
ed8_4_PC_JP.exe+F812A: E9 9E FE FF FF        - jmp ed8_4_PC_JP.exe+F7FCD
ed8_4_PC_JP.exe+F812F: 90                    - nop
ed8_4_PC_JP.exe+F8130: C3                    - ret
ed8_4_PC_JP.exe+F8131: 7D 0F                 - jnl ed8_4_PC_JP.exe+F8142
ed8_4_PC_JP.exe+F8133: 00 C3                 - add bl,al
ed8_4_PC_JP.exe+F8135: 7D 0F                 - jnl ed8_4_PC_JP.exe+F8146
ed8_4_PC_JP.exe+F8137: 00 9F 7D 0F 00 4A     - add [rdi+4A000F7D],bl
}



{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+471C09

ed8_4_PC_JP.exe+471BF9: CC              - int 3
ed8_4_PC_JP.exe+471BFA: CC              - int 3
ed8_4_PC_JP.exe+471BFB: CC              - int 3
ed8_4_PC_JP.exe+471BFC: CC              - int 3
ed8_4_PC_JP.exe+471BFD: CC              - int 3
ed8_4_PC_JP.exe+471BFE: CC              - int 3
ed8_4_PC_JP.exe+471BFF: CC              - int 3
ed8_4_PC_JP.exe+471C00: 44 0F B6 01     - movzx r8d,byte ptr [rcx]
ed8_4_PC_JP.exe+471C04: 0F B6 C2        - movzx eax,dl
ed8_4_PC_JP.exe+471C07: 33 D2           - xor edx,edx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+471C09: 44 2B C0        - sub r8d,eax
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+471C0C: 45 85 C0        - test r8d,r8d
ed8_4_PC_JP.exe+471C0F: 41 0F B6 C0     - movzx eax,r8b
ed8_4_PC_JP.exe+471C13: 0F 4F D0        - cmovg edx,eax
ed8_4_PC_JP.exe+471C16: 88 11           - mov [rcx],dl
ed8_4_PC_JP.exe+471C18: E9 D3 F8 FF FF  - jmp ed8_4_PC_JP.exe+4714F0
ed8_4_PC_JP.exe+471C1D: CC              - int 3
ed8_4_PC_JP.exe+471C1E: CC              - int 3
ed8_4_PC_JP.exe+471C1F: CC              - int 3
ed8_4_PC_JP.exe+471C20: 40 57           - push rdi
ed8_4_PC_JP.exe+471C22: 48 83 EC 20     - sub rsp,20
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>148</ID>
      <Description>"道具指令 / Item scripts"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_ITEM_BASE_ADDR,$process,42 0F B7 44 0A 02 48 83 C4 20 5F C3 CC CC CC CC CC CC 48) // should be unique
alloc(newmem,$1000,INJECT_GET_ITEM_BASE_ADDR)

label(code)
label(return)
label(i_item_base_addr)
label(i_item_idx_ptr)
label(is_set_item_cnt)

newmem:
  mov [i_item_base_addr], r9
  mov [i_item_idx_ptr], rdx
  cmp dword ptr [is_set_item_cnt], 1
  jne code
  cmp word ptr [rdx+r9+02], 1
  jbe code
  cmp word ptr [rdx+r9+02], 50
  jae @F

  mov ax, 50
  mov [rdx+r9+02], ax
  jmp code

@@:
  cmp word ptr [rdx+r9+02], 5A
  jbe @F
  mov ax, 5A
  mov [rdx+r9+02], ax

code:
  movzx eax,word ptr [rdx+r9+02]
  jmp return
align 10 cc
  i_item_base_addr:
  dq 0
  i_item_idx_ptr:
  dq 0
  is_set_item_cnt:
  dd 1

INJECT_GET_ITEM_BASE_ADDR:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_ITEM_BASE_ADDR)
registersymbol(i_item_base_addr)
registersymbol(i_item_idx_ptr)
registersymbol(is_set_item_cnt)

[DISABLE]

INJECT_GET_ITEM_BASE_ADDR:
  db 42 0F B7 44 0A 02

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+32122E

ed8_4_PC_JP.exe+32120F: FF C0              - inc eax
ed8_4_PC_JP.exe+321211: 41 3B C0           - cmp eax,r8d
ed8_4_PC_JP.exe+321214: 72 EA              - jb ed8_4_PC_JP.exe+321200
ed8_4_PC_JP.exe+321216: 41 0F B7 C2        - movzx eax,r10w
ed8_4_PC_JP.exe+32121A: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+32121F: 48 83 C4 20        - add rsp,20
ed8_4_PC_JP.exe+321223: 5F                 - pop rdi
ed8_4_PC_JP.exe+321224: C3                 - ret 
ed8_4_PC_JP.exe+321225: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+32122A: 48 C1 E2 05        - shl rdx,05
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+32122E: 42 0F B7 44 0A 02  - movzx eax,word ptr [rdx+r9+02]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+321234: 48 83 C4 20        - add rsp,20
ed8_4_PC_JP.exe+321238: 5F                 - pop rdi
ed8_4_PC_JP.exe+321239: C3                 - ret 
ed8_4_PC_JP.exe+32123A: CC                 - int 3 
ed8_4_PC_JP.exe+32123B: CC                 - int 3 
ed8_4_PC_JP.exe+32123C: CC                 - int 3 
ed8_4_PC_JP.exe+32123D: CC                 - int 3 
ed8_4_PC_JP.exe+32123E: CC                 - int 3 
ed8_4_PC_JP.exe+32123F: CC                 - int 3 
ed8_4_PC_JP.exe+321240: 48 89 5C 24 08     - mov [rsp+08],rbx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>154</ID>
          <Description>"如果數量&gt;=2、則設為80? / Set item # to 80, if &gt;=2?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_set_item_cnt</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>149</ID>
          <Description>"裝備或丟棄物品時設定數量 / Drop/equip item: set #"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ITEM_CHG_TO_80,$process,42 0F B7 4C 0A 02) // should be unique
alloc(newmem,$1000,INJECT_ITEM_CHG_TO_80)

label(code)
label(return)
label(i_base_citem_addr)
label(i_base_citem_idx)

newmem:
  //push r15
  //lea r15, [rdx+r9+02]
  //mov [i_base_citem_addr], r15
  //pop r15
  mov [i_base_citem_idx], rdx
  cmp word ptr [rdx+r9+02], 51
  jae code
  mov word ptr [rdx+r9+02], 51

code:
  movzx ecx,word ptr [rdx+r9+02]
  jmp return
align 10 cc
  i_base_citem_addr:
  dq 0
  i_base_citem_idx:
  dq 0

INJECT_ITEM_CHG_TO_80:
  jmp newmem
  nop
return:
registersymbol(INJECT_ITEM_CHG_TO_80)
registersymbol(i_base_citem_addr)
registersymbol(i_base_citem_idx)

[DISABLE]

INJECT_ITEM_CHG_TO_80:
  db 42 0F B7 4C 0A 02

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+32631C

ed8_4_PC_JP.exe+326300: 8B D1                    - mov edx,ecx
ed8_4_PC_JP.exe+326302: 8B C1                    - mov eax,ecx
ed8_4_PC_JP.exe+326304: 48 C1 E0 05              - shl rax,05
ed8_4_PC_JP.exe+326308: 66 42 39 1C 08           - cmp [rax+r9],bx
ed8_4_PC_JP.exe+32630D: 74 09                    - je ed8_4_PC_JP.exe+326318
ed8_4_PC_JP.exe+32630F: FF C1                    - inc ecx
ed8_4_PC_JP.exe+326311: 41 3B C8                 - cmp ecx,r8d
ed8_4_PC_JP.exe+326314: 72 EA                    - jb ed8_4_PC_JP.exe+326300
ed8_4_PC_JP.exe+326316: EB 1D                    - jmp ed8_4_PC_JP.exe+326335
ed8_4_PC_JP.exe+326318: 48 C1 E2 05              - shl rdx,05
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+32631C: 42 0F B7 4C 0A 02        - movzx ecx,word ptr [rdx+r9+02]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+326322: 0F B7 C5                 - movzx eax,bp
ed8_4_PC_JP.exe+326325: 2B C8                    - sub ecx,eax
ed8_4_PC_JP.exe+326327: 8B C6                    - mov eax,esi
ed8_4_PC_JP.exe+326329: 85 C9                    - test ecx,ecx
ed8_4_PC_JP.exe+32632B: 66 0F 4F C1              - cmovg ax,cx
ed8_4_PC_JP.exe+32632F: 66 42 89 44 0A 02        - mov [rdx+r9+02],ax
ed8_4_PC_JP.exe+326335: 40 38 B4 24 C0 04 00 00  - cmp [rsp+000004C0],sil
ed8_4_PC_JP.exe+32633D: 0F 84 AF 01 00 00        - je ed8_4_PC_JP.exe+3264F2
ed8_4_PC_JP.exe+326343: 44 8B 27                 - mov r12d,[rdi]
ed8_4_PC_JP.exe+326346: 41 81 E4 FF FF FF 7F     - and r12d,7FFFFFFF
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>150</ID>
              <Description>"Item id"</Description>
              <DropDownList DisplayValueAsItem="1">---: ==(靴)==
551:戰鬥釘鞋 / バトルスパイク
575:健行藍 / ハイキングブルー
576:健行黃 / ハイキングイエロー
589:斯托雷加Z / ストレガーZ
001: ==(配件)==
714:霸者獎章
717:銀翼獅子中綬章
718:金翼獅子大綬章
719:熾煌翼獅子最高綬章
720:迅捷機芯 / クイックキャリバー
----:==(主迴路)==
3240:火神ex
3241:未來ex
3245:王者ex
3246:西風ex
3248:精皇ex
3250:睿智ex
3251:守護ex
3252:精后ex
3255:處女ex
3258:暴風ex
----:==(迴路)==
3309:破壊1
3338:破壊3
3342:鋼星鈴
3343:金剛盾
3344:玄武刃
3345:羅漢珠
3346:不動珠
3350:高壓水塊 / アクアブリード
3357:治癒術
3358:復活術 / セラス
3373:復活術R / セラスR
3382:治癒
3383:高壓水塊SR / アクアブリードSR
3393:HP3
3400:青龍刃
3401:仙道珠
3402:氷将珠
3418:攻撃1
3419:必殺1
3431:攻撃2
3432:必殺2
3447:攻撃3
3451:破剣の牙III
3453:憤怒
3454:朱雀刃
3455:武神珠
3456:炎帝珠
3460:風之輪
3466:大治癒術
3467:回避1
3468:移動1
3480:移動2
3487:風之輪SR / エアストライクSR
3501:白虎刃
3502:風神珠
3503:雷神珠
3516:行動力1
3525:時間爆發R / クロノバーストR
3539:行動力3
3544:冥皇
3545:影輪牙
3546:神行珠 / 韋駄天珠
3547:魔王珠
3554:閃耀天啟 / シャイニング
3557:命中1
3567:命中2
3569:妨害2
3574:破邪之印SR
3580:命中3
3585:熾天使
3586:日輪牙
3587:天帝珠
3588:七剣珠
3590:銀夜之棘 / シルバーソーン
3596:EP1
3597:精神1
3600:銀夜之棘R / シルバーソーンR
3602:白銀狼R
3606:EP2
3607:精神2
3611:月鏡
3613:龍瞳 / 龍眼
3621:精神3
3627:賢王珠
3628:銀狼珠
9999:Empty
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_item_base_addr</Address>
              <Offsets>
                <Offset>[i_base_citem_idx]</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>151</ID>
              <Description>"count"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_item_base_addr</Address>
              <Offsets>
                <Offset>[i_base_citem_idx]+2</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>198</ID>
      <Description>"取得裝備的迴路 / Get equipped Quartz"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version:
  Date   : 2024-07-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_EQUIPPED_QUARTZ,$process,0F B7 84 50 88 00 9B 00) // should be unique
alloc(newmem,$1000,INJECT_GET_EQUIPPED_QUARTZ)

label(code)
label(return)
label(i_base_eqz_addr)

newmem:
  test ecx, ecx
  jnz code

  push r15
  lea r15, [rax+rdx*2+009B0088]
  mov [i_base_eqz_addr], r15
  pop r15



code:
  //movzx eax,word ptr [rax+rdx*2+009B0080]
  movzx eax,word ptr [rax+rdx*2+009B0088]
  jmp return
align 10 cc
  i_base_eqz_addr:
  dq 0

INJECT_GET_EQUIPPED_QUARTZ:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GET_EQUIPPED_QUARTZ)
registersymbol(i_base_eqz_addr)

[DISABLE]

INJECT_GET_EQUIPPED_QUARTZ:
  db 0F B7 84 50 88 00 9B 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+31F322

ed8_4_PC.exe+31F2FF: CC                       - int 3
ed8_4_PC.exe+31F300: 66 83 FA 40              - cmp dx,40
ed8_4_PC.exe+31F304: 73 25                    - jae ed8_4_PC.exe+31F32B
ed8_4_PC.exe+31F306: 66 41 83 F8 09           - cmp r8w,09
ed8_4_PC.exe+31F30B: 73 1E                    - jae ed8_4_PC.exe+31F32B
ed8_4_PC.exe+31F30D: 0F B7 C2                 - movzx eax,dx
ed8_4_PC.exe+31F310: 41 0F B7 C8              - movzx ecx,r8w
ed8_4_PC.exe+31F314: 48 8D 14 C0              - lea rdx,[rax+rax*8]
ed8_4_PC.exe+31F318: 48 8B 05 F9 C0 9F 00     - mov rax,[ed8_4_PC.exe+D1B418]
ed8_4_PC.exe+31F31F: 48 03 D1                 - add rdx,rcx
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+31F322: 0F B7 84 50 88 00 9B 00  - movzx eax,word ptr [rax+rdx*2+009B0088]
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+31F32A: C3                       - ret
ed8_4_PC.exe+31F32B: B8 0F 27 00 00           - mov eax,0000270F
ed8_4_PC.exe+31F330: C3                       - ret
ed8_4_PC.exe+31F331: CC                       - int 3
ed8_4_PC.exe+31F332: CC                       - int 3
ed8_4_PC.exe+31F333: CC                       - int 3
ed8_4_PC.exe+31F334: CC                       - int 3
ed8_4_PC.exe+31F335: CC                       - int 3
ed8_4_PC.exe+31F336: CC                       - int 3
ed8_4_PC.exe+31F337: CC                       - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>306</ID>
          <Description>"部份ID仍為日文"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>199</ID>
          <Description>"Master #1"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>200</ID>
          <Description>"Master #2"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>201</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>202</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>6</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>203</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>204</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>205</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>206</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>207</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>244</ID>
      <Description>"釣魚快速捲線 / Automated fishing when hooked"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FISH5,$process,F3 0F 58 97 E0 01 00 00) // should be unique
alloc(newmem,$1000,INJECT_FISH5)

label(code)
label(return)

newmem:
  vxorps xmm15, xmm15, xmm15
  vucomiss xmm2, xmm15
  jae code
  vmovss xmm14, [vf_factor]
  vmulss xmm2, xmm2, xmm14

code:
  addss xmm2,[rdi+000001E0]
  jmp return
align 10 cc
  vf_factor:
  dd (float)-10

INJECT_FISH5:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FISH5)

[DISABLE]

INJECT_FISH5:
  db F3 0F 58 97 E0 01 00 00

unregistersymbol(INJECT_FISH5)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+3452E0

ed8_4_PC_JP.exe+3452AA: 41 0F 2E C0              - ucomiss xmm0,xmm8
ed8_4_PC_JP.exe+3452AE: 7A 02                    - jp ed8_4_PC_JP.exe+3452B2
ed8_4_PC_JP.exe+3452B0: 74 18                    - je ed8_4_PC_JP.exe+3452CA
ed8_4_PC_JP.exe+3452B2: F3 0F 10 87 00 02 00 00  - movss xmm0,[rdi+00000200]
ed8_4_PC_JP.exe+3452BA: F3 0F 5E 87 04 02 00 00  - divss xmm0,[rdi+00000204]
ed8_4_PC_JP.exe+3452C2: F3 0F 11 87 08 02 00 00  - movss [rdi+00000208],xmm0
ed8_4_PC_JP.exe+3452CA: F3 0F 59 15 B2 6B 76 00  - mulss xmm2,[ed8_4_PC_JP.exe+AABE84]
ed8_4_PC_JP.exe+3452D2: 0F 57 C0                 - xorps xmm0,xmm0
ed8_4_PC_JP.exe+3452D5: 48 8B CF                 - mov rcx,rdi
ed8_4_PC_JP.exe+3452D8: F3 0F 10 8F E4 01 00 00  - movss xmm1,[rdi+000001E4]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+3452E0: F3 0F 58 97 E0 01 00 00  - addss xmm2,[rdi+000001E0]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+3452E8: F3 0F 5D CA              - minss xmm1,xmm2
ed8_4_PC_JP.exe+3452EC: F3 0F 5F C1              - maxss xmm0,xmm1
ed8_4_PC_JP.exe+3452F0: F3 0F 11 87 E0 01 00 00  - movss [rdi+000001E0],xmm0
ed8_4_PC_JP.exe+3452F8: E8 C3 70 FF FF           - call ed8_4_PC_JP.exe+33C3C0
ed8_4_PC_JP.exe+3452FD: F3 0F 10 97 E4 01 00 00  - movss xmm2,[rdi+000001E4]
ed8_4_PC_JP.exe+345305: 0F B7 C6                 - movzx eax,si
ed8_4_PC_JP.exe+345308: F3 0F 10 8F E0 01 00 00  - movss xmm1,[rdi+000001E0]
ed8_4_PC_JP.exe+345310: 0F 28 C2                 - movaps xmm0,xmm2
ed8_4_PC_JP.exe+345313: F3 41 0F 59 C3           - mulss xmm0,xmm11
ed8_4_PC_JP.exe+345318: 0F 2F C1                 - comiss xmm0,xmm1
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>224</ID>
      <Description>"戰歷 / Get battle records"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version:
  Date   : 2025-03-03
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_BATTLE_STATS,$process,8B 8C 88 AC B1 9B 00 89 4C 24 30 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? FB 04) // should be unique
alloc(newmem,$1000,INJECT_GET_BATTLE_STATS)

label(code)
label(return)
label(i_base_bstat_addr)

newmem:
  test ecx, ecx
  jnz code

  push r15
  lea r15, [rax+rcx*4+009BB1AC]
  mov [i_base_bstat_addr], r15
  pop r15

code:
  //mov ecx,[rax+rcx*4+009BB1A4]
  mov ecx,[rax+rcx*4+009BB1AC]
  jmp return
align 10 cc
  i_base_bstat_addr:
  dq 0

INJECT_GET_BATTLE_STATS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_BATTLE_STATS)
registersymbol(i_base_bstat_addr)

[DISABLE]

INJECT_GET_BATTLE_STATS:
  db 8B 8C 88 AC B1 9B 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+4B76F0

ed8_4_PC.exe+4B76BC - 48 89 44 24 28        - mov [rsp+28],rax
ed8_4_PC.exe+4B76C1 - 0F28 D7               - movaps xmm2,xmm7
ed8_4_PC.exe+4B76C4 - 48 8D 45 A0           - lea rax,[rbp-60]
ed8_4_PC.exe+4B76C8 - 48 89 44 24 20        - mov [rsp+20],rax
ed8_4_PC.exe+4B76CD - E8 1E20E3FF           - call ed8_4_PC.exe+2E96F0
ed8_4_PC.exe+4B76D2 - 48 8B 05 BF4C8600     - mov rax,[ed8_4_PC.exe+D1C398]
ed8_4_PC.exe+4B76D9 - 4C 8D 0D 9C674000     - lea r9,[ed8_4_PC.exe+8BDE7C]
ed8_4_PC.exe+4B76E0 - 48 0FBF CB            - movsx rcx,bx
ed8_4_PC.exe+4B76E4 - 4C 8D 05 9D674000     - lea r8,[ed8_4_PC.exe+8BDE88]
ed8_4_PC.exe+4B76EB - BA 80000000           - mov edx,00000080
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+4B76F0 - 8B 8C 88 ACB19B00     - mov ecx,[rax+rcx*4+009BB1AC]
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+4B76F7 - 89 4C 24 30           - mov [rsp+30],ecx
ed8_4_PC.exe+4B76FB - 48 8D 4D F0           - lea rcx,[rbp-10]
ed8_4_PC.exe+4B76FF - 4C 89 7C 24 28        - mov [rsp+28],r15
ed8_4_PC.exe+4B7704 - 4C 89 64 24 20        - mov [rsp+20],r12
ed8_4_PC.exe+4B7709 - E8 82F3C1FF           - call ed8_4_PC.exe+D6A90
ed8_4_PC.exe+4B770E - 0F10 05 AB836700      - movups xmm0,[ed8_4_PC.exe+B2FAC0]
ed8_4_PC.exe+4B7715 - 48 8B 0D 7C4C8600     - mov rcx,[ed8_4_PC.exe+D1C398]
ed8_4_PC.exe+4B771C - 48 8D 45 B0           - lea rax,[rbp-50]
ed8_4_PC.exe+4B7720 - 0F10 0D C95D6000      - movups xmm1,[ed8_4_PC.exe+ABD4F0]
ed8_4_PC.exe+4B7727 - C7 84 24 C0000000 03000000 - mov [rsp+000000C0],00000003
ed8_4_PC.exe+4B7732 - 4C 8D 4D F0           - lea r9,[rbp-10]
ed8_4_PC.exe+4B7736 - 4C 89 AC 24 B8000000  - mov [rsp+000000B8],r13
ed8_4_PC.exe+4B773E - F3 45 0F58 C7         - addss xmm8,xmm15
ed8_4_PC.exe+4B7743 - 4C 89 AC 24 B0000000  - mov [rsp+000000B0],r13
ed8_4_PC.exe+4B774B - 0F28 D7               - movaps xmm2,xmm7
ed8_4_PC.exe+4B774E - 4C 89 AC 24 A8000000  - mov [rsp+000000A8],r13
ed8_4_PC.exe+4B7756 - 4C 89 AC 24 A0000000  - mov [rsp+000000A0],r13
ed8_4_PC.exe+4B775E - 4C 89 AC 24 98000000  - mov [rsp+00000098],r13
ed8_4_PC.exe+4B7766 - 4C 89 AC 24 90000000  - mov [rsp+00000090],r13
ed8_4_PC.exe+4B776E - 4C 89 AC 24 88000000  - mov [rsp+00000088],r13
ed8_4_PC.exe+4B7776 - 4C 89 AC 24 80000000  - mov [rsp+00000080],r13
ed8_4_PC.exe+4B777E - 4C 89 6C 24 78        - mov [rsp+78],r13
ed8_4_PC.exe+4B7783 - 44 88 6C 24 70        - mov [rsp+70],r13b
ed8_4_PC.exe+4B7788 - 44 88 6C 24 68        - mov [rsp+68],r13b
ed8_4_PC.exe+4B778D - C7 44 24 60 01000000  - mov [rsp+60],00000001
ed8_4_PC.exe+4B7795 - F3 44 0F11 4C 24 58   - movss [rsp+58],xmm9
ed8_4_PC.exe+4B779C - F3 44 0F11 54 24 50   - movss [rsp+50],xmm10
ed8_4_PC.exe+4B77A3 - F3 44 0F11 4C 24 48   - movss [rsp+48],xmm9
ed8_4_PC.exe+4B77AA - F3 44 0F11 54 24 40   - movss [rsp+40],xmm10
ed8_4_PC.exe+4B77B1 - F3 44 0F11 5C 24 38   - movss [rsp+38],xmm11
ed8_4_PC.exe+4B77B8 - 66 0F7F 45 B0         - movdqa [rbp-50],xmm0
ed8_4_PC.exe+4B77BD - F3 0F10 45 8C         - movss xmm0,[rbp-74]
ed8_4_PC.exe+4B77C2 - F3 0F11 44 24 30      - movss [rsp+30],xmm0
ed8_4_PC.exe+4B77C8 - 48 89 44 24 28        - mov [rsp+28],rax
ed8_4_PC.exe+4B77CD - 48 8D 45 A0           - lea rax,[rbp-60]
ed8_4_PC.exe+4B77D1 - 66 0F7F 4D A0         - movdqa [rbp-60],xmm1
ed8_4_PC.exe+4B77D6 - 41 0F28 C8            - movaps xmm1,xmm8
ed8_4_PC.exe+4B77DA - 48 89 44 24 20        - mov [rsp+20],rax
ed8_4_PC.exe+4B77DF - E8 0C1FE3FF           - call ed8_4_PC.exe+2E96F0
ed8_4_PC.exe+4B77E4 - 66 FF C3              - inc bx
ed8_4_PC.exe+4B77E7 - 66 83 FB 04           - cmp bx,04


}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>241</ID>
          <Description>"Usage: Main menu -&gt; 戰鬥"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>225</ID>
          <Description>"累計戰鬥次數 / Number of Battles"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>226</ID>
          <Description>"戰鬥勝利次數 / Battles Win"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>227</ID>
          <Description>"無法戰鬥次數 / Battles lose"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>228</ID>
          <Description>"戰門撤退次數 / Battles retreat"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>229</ID>
          <Description>"擊敗敵人次數 / Enemies killed"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>230</ID>
          <Description>"先制攻擊發生次數 / Single advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>231</ID>
          <Description>"優勢攻擊發生次數 / Double advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>232</ID>
          <Description>"奇襲攻擊發生次數 / Triple advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>233</ID>
          <Description>"背後遇襲發生次數 / Back attacks"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>20</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>234</ID>
          <Description>"重試次數 / Retry"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>24</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>235</ID>
          <Description>"S戰技發動次數 / S-Craft"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>236</ID>
          <Description>"破防發動次數 / Break"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>2C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>237</ID>
          <Description>"追擊發動次數 / Follow attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>30</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>238</ID>
          <Description>"連續猛攻發動次數 / Rush"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>239</ID>
          <Description>"爆裂猛攻發動次數 / Burst"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>240</ID>
          <Description>"勇氣指令發動次數 / Brave order"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>3C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>249</ID>
      <Description>"VM遊戲：敵人HP為1 / VM Card game: enemy 1HP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-08
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_VMCARD_ENEMY_1HP,$process,41 0F B7 82 BC 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_VMCARD_ENEMY_1HP)

label(code)
label(return)

newmem:
  cmp word ptr [r10+000002BC], 1
  jbe code
  mov ax, 1
  mov [r10+000002BC], ax

code:
  movzx eax,word ptr [r10+000002BC]
  jmp return

INJECT_VMCARD_ENEMY_1HP:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_VMCARD_ENEMY_1HP)

[DISABLE]

INJECT_VMCARD_ENEMY_1HP:
  db 41 0F B7 82 BC 02 00 00

unregistersymbol(INJECT_VMCARD_ENEMY_1HP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+35BCEB

ed8_4_PC_JP.exe+35BCC0: 45 0F B7 C8              - movzx r9d,r8w
ed8_4_PC_JP.exe+35BCC4: 4E 8B 14 C9              - mov r10,[rcx+r9*8]
ed8_4_PC_JP.exe+35BCC8: 49 8B 82 A8 02 00 00     - mov rax,[r10+000002A8]
ed8_4_PC_JP.exe+35BCCF: 66 83 78 02 02           - cmp word ptr [rax+02],02
ed8_4_PC_JP.exe+35BCD4: 74 0D                    - je ed8_4_PC_JP.exe+35BCE3
ed8_4_PC_JP.exe+35BCD6: 66 41 FF C0              - inc r8w
ed8_4_PC_JP.exe+35BCDA: 66 41 83 F8 07           - cmp r8w,07
ed8_4_PC_JP.exe+35BCDF: 72 DF                    - jb ed8_4_PC_JP.exe+35BCC0
ed8_4_PC_JP.exe+35BCE1: EB 3E                    - jmp ed8_4_PC_JP.exe+35BD21
ed8_4_PC_JP.exe+35BCE3: 41 80 BB E2 06 00 00 2E  - cmp byte ptr [r11+000006E2],2E
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+35BCEB: 41 0F B7 82 BC 02 00 00  - movzx eax,word ptr [r10+000002BC]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+35BCF3: 44 0F B7 C0              - movzx r8d,ax
ed8_4_PC_JP.exe+35BCF7: 66 41 89 83 E6 06 00 00  - mov [r11+000006E6],ax
ed8_4_PC_JP.exe+35BCFF: 75 20                    - jne ed8_4_PC_JP.exe+35BD21
ed8_4_PC_JP.exe+35BD01: 4A 8B 04 C9              - mov rax,[rcx+r9*8]
ed8_4_PC_JP.exe+35BD05: 48 8B 88 A8 02 00 00     - mov rcx,[rax+000002A8]
ed8_4_PC_JP.exe+35BD0C: 0F B7 41 18              - movzx eax,word ptr [rcx+18]
ed8_4_PC_JP.exe+35BD10: 66 D1 E8                 - shr ax,1
ed8_4_PC_JP.exe+35BD13: 66 44 3B C0              - cmp r8w,ax
ed8_4_PC_JP.exe+35BD17: 0F 9E C0                 - setle al
ed8_4_PC_JP.exe+35BD1A: 41 88 83 0B 08 00 00     - mov [r11+0000080B],al
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>285</ID>
      <Description>"ARCUS II 遊戲「波姆碰」 / ARCUS II game "Pom""</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_PON_GAME_DATA,$process,44 8B 87 D4 7A 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_PON_GAME_DATA)

label(code)
label(return)
label(i_base_pdata_1)
label(i_base_pdata_2)
label(is_lock_cp)

newmem:
  cmp rdi, [i_base_pdata_1]
  je code
  cmp rdi, [i_base_pdata_2]
  je code_pre
  cmp qword ptr [i_base_pdata_1], 0
  je save1
  cmp qword ptr [i_base_pdata_2], 0
  je save2
  //jmp code
// reset
  vxorps xmm15, xmm15, xmm15
  movaps [i_base_pdata_1], xmm15
  //mov dword ptr [i_base_pdata_1], 0
  //mov dword ptr [i_base_pdata_1], 0
  jmp newmem

save1:
  mov [i_base_pdata_1], rdi
  jmp code

save2:
  cmp dword ptr [i_base_pdata_2], 0
  jne @F
  mov [i_base_pdata_2], rdi

  push r15
  mov r15, [i_base_pdata_1]
  cmp rdi, r15
  ja swap_done
  mov [i_tmp1], r15
  mov [i_base_pdata_1], rdi
  mov [i_base_pdata_2], r15

swap_done:
  pop r15
  jmp code

code_pre:
  cmp dword ptr [is_lock_cp], 1
  jne code

  push r15
  mov r15, [i_base_pdata_1]
  test r15, r15
  jz @F

  lea r15, [r15+7AD4]
  mov dword ptr [r15], #500

  mov r15, [i_base_pdata_2]
  test r15, r15
  jz @F

  lea r15, [r15+7AD4]
  mov dword ptr [r15], 0

@@:
  pop r15

code:
  mov r8d,[rdi+00007AD4]
  jmp return
align 10 cc
  i_base_pdata_1:
  dq 0
  i_base_pdata_2:
  dq 0
  i_tmp1:
  dq 0
  is_lock_cp:
  dd 1

INJECT_GET_PON_GAME_DATA:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_PON_GAME_DATA)
registersymbol(i_base_pdata_1)
registersymbol(i_base_pdata_2)
registersymbol(is_lock_cp)


[DISABLE]

INJECT_GET_PON_GAME_DATA:
  db 44 8B 87 D4 7A 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+353E28

ed8_4_PC_JP.exe+353E00: B8 1F 85 EB 51        - mov eax,51EB851F
ed8_4_PC_JP.exe+353E05: F7 E9                 - imul ecx
ed8_4_PC_JP.exe+353E07: C1 FA 05              - sar edx,05
ed8_4_PC_JP.exe+353E0A: 8B C2                 - mov eax,edx
ed8_4_PC_JP.exe+353E0C: C1 E8 1F              - shr eax,1F
ed8_4_PC_JP.exe+353E0F: 03 D0                 - add edx,eax
ed8_4_PC_JP.exe+353E11: 89 97 E4 7A 00 00     - mov [rdi+00007AE4],edx
ed8_4_PC_JP.exe+353E17: 44 89 B7 E8 7A 00 00  - mov [rdi+00007AE8],r14d
ed8_4_PC_JP.exe+353E1E: 44 8B 8F D8 7A 00 00  - mov r9d,[rdi+00007AD8]
ed8_4_PC_JP.exe+353E25: 41 8B C1              - mov eax,r9d
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+353E28: 44 8B 87 D4 7A 00 00  - mov r8d,[rdi+00007AD4]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+353E2F: 45 3B C8              - cmp r9d,r8d
ed8_4_PC_JP.exe+353E32: 74 73                 - je ed8_4_PC_JP.exe+353EA7
ed8_4_PC_JP.exe+353E34: 7E 34                 - jle ed8_4_PC_JP.exe+353E6A
ed8_4_PC_JP.exe+353E36: 41 8B C9              - mov ecx,r9d
ed8_4_PC_JP.exe+353E39: B8 89 88 88 88        - mov eax,88888889
ed8_4_PC_JP.exe+353E3E: 41 2B C8              - sub ecx,r8d
ed8_4_PC_JP.exe+353E41: F7 E9                 - imul ecx
ed8_4_PC_JP.exe+353E43: 41 8B C1              - mov eax,r9d
ed8_4_PC_JP.exe+353E46: 03 D1                 - add edx,ecx
ed8_4_PC_JP.exe+353E48: C1 FA 05              - sar edx,05
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>290</ID>
          <Description>"鎖定CP? / Lock CP?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_lock_cp</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>286</ID>
          <Description>"CP #1"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_pdata_1</Address>
          <Offsets>
            <Offset>7AD4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>287</ID>
          <Description>"CP #2"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_pdata_2</Address>
          <Offsets>
            <Offset>7AD4</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>185</ID>
      <Description>"取得最耀晶數值 / Get Mira / Sepiths"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version:
  Date   : 2024-07-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MIRA,$process,44 8B 80 F0 A5 9A 00) // should be unique
alloc(newmem,$1000,INJECT_GET_MIRA)

label(code)
label(return)
label(i_base_mira_addr)

newmem:
  mov [i_base_mira_addr], rax

code:
  //mov r8d,[rax+009AA5E8]
  mov r8d,[rax+009AA5F0]
  jmp return
align 10 cc
  i_base_mira_addr:
  dq 0

INJECT_GET_MIRA:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_MIRA)
registersymbol(i_base_mira_addr)

[DISABLE]

INJECT_GET_MIRA:
  db 44 8B 80 F0 A5 9A 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+209198

ed8_4_PC.exe+209166: 48 85 C9                 - test rcx,rcx
ed8_4_PC.exe+209169: 74 1A                    - je ed8_4_PC.exe+209185
ed8_4_PC.exe+20916B: 48 8B 05 A6 22 B1 00     - mov rax,[ed8_4_PC.exe+D1B418]
ed8_4_PC.exe+209172: 44 8B 80 AC A5 9A 00     - mov r8d,[rax+009AA5AC]
ed8_4_PC.exe+209179: 48 8D 15 D4 30 69 00     - lea rdx,[ed8_4_PC.exe+89C254]
ed8_4_PC.exe+209180: E8 6B 60 2C 00           - call ed8_4_PC.exe+4CF1F0
ed8_4_PC.exe+209185: 48 8B 8F 58 21 00 00     - mov rcx,[rdi+00002158]
ed8_4_PC.exe+20918C: 48 85 C9                 - test rcx,rcx
ed8_4_PC.exe+20918F: 74 1A                    - je ed8_4_PC.exe+2091AB
ed8_4_PC.exe+209191: 48 8B 05 80 22 B1 00     - mov rax,[ed8_4_PC.exe+D1B418]
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+209198: 44 8B 80 F0 A5 9A 00     - mov r8d,[rax+009AA5F0]
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+20919F: 48 8D 15 AE 30 69 00     - lea rdx,[ed8_4_PC.exe+89C254]
ed8_4_PC.exe+2091A6: E8 45 60 2C 00           - call ed8_4_PC.exe+4CF1F0
ed8_4_PC.exe+2091AB: 4C 8D 8C 24 D0 00 00 00  - lea r9,[rsp+000000D0]
ed8_4_PC.exe+2091B3: 4C 8D 84 24 E0 00 00 00  - lea r8,[rsp+000000E0]
ed8_4_PC.exe+2091BB: 48 8D 94 24 E8 00 00 00  - lea rdx,[rsp+000000E8]
ed8_4_PC.exe+2091C3: 48 8B 0D 4E 22 B1 00     - mov rcx,[ed8_4_PC.exe+D1B418]
ed8_4_PC.exe+2091CA: E8 D1 A0 0E 00           - call ed8_4_PC.exe+2F32A0
ed8_4_PC.exe+2091CF: 48 8B 8F 60 21 00 00     - mov rcx,[rdi+00002160]
ed8_4_PC.exe+2091D6: 48 85 C9                 - test rcx,rcx
ed8_4_PC.exe+2091D9: 74 27                    - je ed8_4_PC.exe+209202
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>242</ID>
          <Description>"Usage: Menu -&gt; Item"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>196</ID>
          <Description>"設定最小耀晶數 / Set min. Sepiths"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version:
  Date   : 2024-07-23
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_SEPH,$process,8B 84 88 90 A5 9A 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_SEPH)

label(code)
label(return)

newmem:
  cmp dword ptr [rax+rcx*4+009AA590], #24667
  jae code
  push r15
  mov r15d, #24667
  mov [rax+rcx*4+009AA590], r15d
  pop r15

code:
  mov eax,[rax+rcx*4+009AA590]
  jmp return

INJECT_SET_MIN_SEPH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_MIN_SEPH)



aobscanmodule(INJECT_SET_MIN_SPIECE,$process,44 8B 80 AC A5 9A 00) // should be unique
alloc(newmem1,$1000,INJECT_SET_MIN_SPIECE)

label(code1)
label(return1)

newmem1:
  cmp dword ptr [rax+009AA5AC], #24668
  jae code1

  mov r8d, #24668
  mov [rax+009AA5AC], r8d


code1:
  mov r8d,[rax+009AA5AC]
  jmp return1

INJECT_SET_MIN_SPIECE:
  jmp newmem1
  nop 2
return1:
registersymbol(INJECT_SET_MIN_SPIECE)


[DISABLE]

INJECT_SET_MIN_SEPH:
  db 8B 84 88 90 A5 9A 00

INJECT_SET_MIN_SPIECE:
  db 44 8B 80 AC A5 9A 00

unregistersymbol(INJECT_SET_MIN_SEPH)
dealloc(newmem)

unregistersymbol(INJECT_SET_MIN_SPIECE)
dealloc(newmem1)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+3246CA

ed8_4_PC.exe+3246B8: CC                    - int 3
ed8_4_PC.exe+3246B9: CC                    - int 3
ed8_4_PC.exe+3246BA: CC                    - int 3
ed8_4_PC.exe+3246BB: CC                    - int 3
ed8_4_PC.exe+3246BC: CC                    - int 3
ed8_4_PC.exe+3246BD: CC                    - int 3
ed8_4_PC.exe+3246BE: CC                    - int 3
ed8_4_PC.exe+3246BF: CC                    - int 3
ed8_4_PC.exe+3246C0: 48 8B 05 51 6D 9F 00  - mov rax,[ed8_4_PC.exe+D1B418]
ed8_4_PC.exe+3246C7: 48 63 CA              - movsxd  rcx,edx
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+3246CA: 8B 84 88 90 A5 9A 00  - mov eax,[rax+rcx*4+009AA590]
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+3246D1: C3                    - ret
ed8_4_PC.exe+3246D2: CC                    - int 3
ed8_4_PC.exe+3246D3: CC                    - int 3
ed8_4_PC.exe+3246D4: CC                    - int 3
ed8_4_PC.exe+3246D5: CC                    - int 3
ed8_4_PC.exe+3246D6: CC                    - int 3
ed8_4_PC.exe+3246D7: CC                    - int 3
ed8_4_PC.exe+3246D8: CC                    - int 3
ed8_4_PC.exe+3246D9: CC                    - int 3
ed8_4_PC.exe+3246DA: CC                    - int 3
}


{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+209172

ed8_4_PC.exe+20913E: 48 8B 01                 - mov rax,[rcx]
ed8_4_PC.exe+209141: 41 B9 02 00 00 00        - mov r9d,00000002
ed8_4_PC.exe+209147: F3 0F 10 15 25 DC 68 00  - movss xmm2,[ed8_4_PC.exe+896D74]
ed8_4_PC.exe+20914F: 0F 28 CF                 - movaps xmm1,xmm7
ed8_4_PC.exe+209152: FF 90 60 01 00 00        - call qword ptr [rax+00000160]
ed8_4_PC.exe+209158: C6 87 12 1B 00 00 00     - mov byte ptr [rdi+00001B12],00
ed8_4_PC.exe+20915F: 48 8B 8F 50 21 00 00     - mov rcx,[rdi+00002150]
ed8_4_PC.exe+209166: 48 85 C9                 - test rcx,rcx
ed8_4_PC.exe+209169: 74 1A                    - je ed8_4_PC.exe+209185
ed8_4_PC.exe+20916B: 48 8B 05 A6 22 B1 00     - mov rax,[ed8_4_PC.exe+D1B418]
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+209172: 44 8B 80 AC A5 9A 00     - mov r8d,[rax+009AA5AC]
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+209179: 48 8D 15 D4 30 69 00     - lea rdx,[ed8_4_PC.exe+89C254]
ed8_4_PC.exe+209180: E8 6B 60 2C 00           - call ed8_4_PC.exe+4CF1F0
ed8_4_PC.exe+209185: 48 8B 8F 58 21 00 00     - mov rcx,[rdi+00002158]
ed8_4_PC.exe+20918C: 48 85 C9                 - test rcx,rcx
ed8_4_PC.exe+20918F: 74 1A                    - je ed8_4_PC.exe+2091AB
ed8_4_PC.exe+209191: 48 8B 05 80 22 B1 00     - mov rax,[ed8_4_PC.exe+D1B418]
INJECT_GET_MIRA: E9 63 6E CF FF           - jmp 13FF00000
ed8_4_PC.exe+20919D: 66 90                    - nop 2
ed8_4_PC.exe+20919F: 48 8D 15 AE 30 69 00     - lea rdx,[ed8_4_PC.exe+89C254]
ed8_4_PC.exe+2091A6: E8 45 60 2C 00           - call ed8_4_PC.exe+4CF1F0
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>243</ID>
          <Description>"Data+"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>186</ID>
              <Description>"地 (Earth)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA590</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>188</ID>
              <Description>"水 (Water)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA594</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>189</ID>
              <Description>"火 (Fire)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA598</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>190</ID>
              <Description>"風 (Wind)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA59C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>191</ID>
              <Description>"時 (Time)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5A0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>192</ID>
              <Description>"空 (Space)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5A4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>193</ID>
              <Description>"幻 (Mirage)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5A8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>194</ID>
              <Description>"塊 (piece)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5AC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>187</ID>
              <Description>"Mira"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5F0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>282</ID>
              <Description>"籌碼 / Medal"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5FC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>195</ID>
              <Description>"Charge"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA604</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>252</ID>
      <Description>"綜合成績 / Get main sheet stats"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-08
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MAIN_STATS,$process,8B 84 81 94 36 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_MAIN_STATS)

label(code)
label(return)
label(i_base_main_stats_addr)
label(i_base_main_stats_root_addr)

newmem:
  cmp eax, 12
  jne code

  push r15
  lea r15, [rcx+rax*4+00003694]
  mov [i_base_main_stats_addr], r15
  mov [i_base_main_stats_root_addr], rcx
  pop r15

code:
  mov eax,[rcx+rax*4+00003694]
  jmp return
align 10 cc
  i_base_main_stats_addr:
  dq 0
  i_base_main_stats_root_addr:
  dq 0

INJECT_GET_MAIN_STATS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_MAIN_STATS)
registersymbol(i_base_main_stats_addr)
registersymbol(i_base_main_stats_root_addr)

[DISABLE]

INJECT_GET_MAIN_STATS:
  db 8B 84 81 94 36 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+2EEF7A

ed8_4_PC_JP.exe+2EEF69: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6A: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6B: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6C: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6D: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6E: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6F: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF70: 81 FA 00 01 00 00     - cmp edx,00000100
ed8_4_PC_JP.exe+2EEF76: 73 0A                 - jae ed8_4_PC_JP.exe+2EEF82
ed8_4_PC_JP.exe+2EEF78: 8B C2                 - mov eax,edx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+2EEF7A: 8B 84 81 8C 36 00 00  - mov eax,[rcx+rax*4+0000368C]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+2EEF81: C3                    - ret 
ed8_4_PC_JP.exe+2EEF82: 33 C0                 - xor eax,eax
ed8_4_PC_JP.exe+2EEF84: C3                    - ret 
ed8_4_PC_JP.exe+2EEF85: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF86: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF87: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF88: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF89: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF8A: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF8B: CC                    - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>265</ID>
          <Description>"Usage: "Main"選單 -&gt; 綜合成績"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>294</ID>
          <Description>"保持最小絆點數 / bonding pt"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version:
  Date   : 2024-07-27
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_KIZ_PT,$process,44 89 84 81 94 36 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_KIZ_PT)

label(code)
label(return)

newmem:
  push r15
  push r14

  mov r14, [i_base_main_stats_root_addr]
  cmp rcx, r14
  jne endp

  mov r14, A
  cmp rax, r14
  jne endp

  test r8d, r8d
  jnz endp
  mov r8d, 1

endp:
  pop r14
  pop r15

code:
  mov [rcx+rax*4+00003694],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 94 36 00 00

unregistersymbol(INJECT_SET_MIN_KIZ_PT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+309B0A

ed8_4_PC.exe+309AF9: CC                       - int 3
ed8_4_PC.exe+309AFA: CC                       - int 3
ed8_4_PC.exe+309AFB: CC                       - int 3
ed8_4_PC.exe+309AFC: CC                       - int 3
ed8_4_PC.exe+309AFD: CC                       - int 3
ed8_4_PC.exe+309AFE: CC                       - int 3
ed8_4_PC.exe+309AFF: CC                       - int 3
ed8_4_PC.exe+309B00: 81 FA 00 01 00 00        - cmp edx,00000100
ed8_4_PC.exe+309B06: 73 0A                    - jae ed8_4_PC.exe+309B12
ed8_4_PC.exe+309B08: 8B C2                    - mov eax,edx
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+309B0A: 44 89 84 81 94 36 00 00  - mov [rcx+rax*4+00003694],r8d
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+309B12: C3                       - ret
ed8_4_PC.exe+309B13: CC                       - int 3
ed8_4_PC.exe+309B14: CC                       - int 3
ed8_4_PC.exe+309B15: CC                       - int 3
ed8_4_PC.exe+309B16: CC                       - int 3
ed8_4_PC.exe+309B17: CC                       - int 3
ed8_4_PC.exe+309B18: CC                       - int 3
ed8_4_PC.exe+309B19: CC                       - int 3
ed8_4_PC.exe+309B1A: CC                       - int 3
ed8_4_PC.exe+309B1B: CC                       - int 3
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>253</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>264</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>263</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-30</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>262</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-24</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>292</ID>
          <Description>"絆pt / bonding pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-20</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>261</ID>
          <Description>"絆pt / bonding pt. high watermark"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>260</ID>
          <Description>"特務科階級 / Instructor Rank"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>259</ID>
          <Description>"總AP #1"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>258</ID>
          <Description>"總AP #2"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>257</ID>
          <Description>"托爾玆復興度 / Thors Rebuild Rating"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>254</ID>
          <Description>"復興等級 / Unity Grade"</Description>
          <DropDownList DisplayValueAsItem="1">0:離散
1:雌伏
2:集結
3:揚旗
4:飛翔
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>255</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>54</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>58</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>304</ID>
      <Description>"變更服裝的3D座標某軸之極限值 / Set costume axis coord limit"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC.exe
  Version: 
  Date   : 2024-07-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_POV_LIMIT_BREAK,$process,F3 0F 58 B3 50 04 00 00 F3 41) // should be unique
alloc(newmem,$1000,INJECT_POV_LIMIT_BREAK)

label(code)
label(return)

newmem:
  vmovss xmm12, [vf_89]
  vmovss xmm10, [vf_m89]

code:
  addss xmm6,[rbx+00000450]
  jmp return
align 10 cc
  vf_m89:
  dd (float)-89
  vf_89:
  dd (float)89

INJECT_POV_LIMIT_BREAK:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_POV_LIMIT_BREAK)

[DISABLE]

INJECT_POV_LIMIT_BREAK:
  db F3 0F 58 B3 50 04 00 00

unregistersymbol(INJECT_POV_LIMIT_BREAK)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC.exe+1F2CFD

ed8_4_PC.exe+1F2CC7: F3 0F 59 CF                    - mulss xmm1,xmm7
ed8_4_PC.exe+1F2CCB: F3 0F 59 C6                    - mulss xmm0,xmm6
ed8_4_PC.exe+1F2CCF: F3 0F 58 C8                    - addss xmm1,xmm0
ed8_4_PC.exe+1F2CD3: 0F 28 C1                       - movaps xmm0,xmm1
ed8_4_PC.exe+1F2CD6: E8 E5 09 5C 00                 - call ed8_4_PC.exe+7B36C0
ed8_4_PC.exe+1F2CDB: 0F 2F 05 86 FF 68 00           - comiss xmm0,[ed8_4_PC.exe+882C68]
ed8_4_PC.exe+1F2CE2: 76 78                          - jna ed8_4_PC.exe+1F2D5C
ed8_4_PC.exe+1F2CE4: F3 0F 59 B4 24 18 01 00 00     - mulss xmm6,[rsp+00000118]
ed8_4_PC.exe+1F2CED: F3 0F 10 8B 54 04 00 00        - movss xmm1,[rbx+00000454]
ed8_4_PC.exe+1F2CF5: F3 0F 59 35 13 54 6A 00        - mulss xmm6,[ed8_4_PC.exe+898110]
// ---------- INJECTING HERE ----------
ed8_4_PC.exe+1F2CFD: F3 0F 58 B3 50 04 00 00        - addss xmm6,[rbx+00000450]
// ---------- DONE INJECTING  ----------
ed8_4_PC.exe+1F2D05: F3 41 0F 5D F4                 - minss xmm6,xmm12
ed8_4_PC.exe+1F2D0A: F3 44 0F 5F D6                 - maxss xmm10,xmm6
ed8_4_PC.exe+1F2D0F: F3 44 0F 11 93 50 04 00 00     - movss [rbx+00000450],xmm10
ed8_4_PC.exe+1F2D18: F3 44 0F 10 94 24 18 01 00 00  - movss xmm10,[rsp+00000118]
ed8_4_PC.exe+1F2D22: F3 41 0F 59 FA                 - mulss xmm7,xmm10
ed8_4_PC.exe+1F2D27: F3 0F 59 3D E1 53 6A 00        - mulss xmm7,[ed8_4_PC.exe+898110]
ed8_4_PC.exe+1F2D2F: F3 0F 5C CF                    - subss xmm1,xmm7
ed8_4_PC.exe+1F2D33: F3 41 0F 5D CB                 - minss xmm1,xmm11
ed8_4_PC.exe+1F2D38: F3 44 0F 5F C9                 - maxss xmm9,xmm1
ed8_4_PC.exe+1F2D3D: 41 0F 28 C1                    - movaps xmm0,xmm9
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>30</ID>
      <Description>"英雄傳說 閃之軌跡IV -THE END OF SAGA-  /  https://opencheattables.com  /  CE 7.6"</Description>
      <Options moHideChildren="1"/>
      <Color>009100</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>6</ID>
          <Description>"https://kamikouryaku.net/sennokiseki4/?&amp;47129ea91c"</Description>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>synchronize(function() AddressList.Header.OnSectionClick = nil end)

</LuaScript>
</CheatTable>
