<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>32</ID>
      <Description>"精簡模式 / Compact mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
--https://forum.cheatengine.org/viewtopic.php?t=570055
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible    = state; getMainForm().Panel5.Visible    = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))

[DISABLE]
LuaCall(cycleFullCompact(nil,false))

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>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
if memrec then print(memrec.Description) end
getLuaEngine().menuItem5.doClick()

P_NAME = 'ed8_3_PC.exe'

if (p_ated == nil) and (getProcessIDFromProcessName(P_NAME) ~= nil) then
	openProcess(P_NAME)
    p_ated = true
    Sleep(100)
end


battle_array = {32,17,19,126,36,54,119,114,45,47,20,78,41,40,142,107,108,81,140,153,158}


local a_len = #(battle_array)

local i = 0

for i = 1, a_len do
  getAddressList().getMemoryRecordByID(battle_array[i]).Active = true
  sleep(1)
end

print("Scripts ON; Total " .. a_len .. " items.")
getLuaEngine().Close()

[DISABLE]
{$lua}
if (syntaxcheck) then return end
if memrec then print(memrec.Description) end
p_ated = nil
battle_array_close = {192,186,143,57,109,41,40,     17,19,126,5,36,54,119,114,45,47,20,78,142,107,108,81,30,140,32,145,153,158,170,     30}

local a_len1 = #(battle_array_close)

local i = 0

for i = 1, a_len1 do
  getAddressList().getMemoryRecordByID(battle_array_close[i]).Active = false
end

print("Scripts OFF.")

getLuaEngine().Close()

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>17</ID>
      <Description>"[戰鬥] CP無限 / Battle: inf CP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_CP,$process,0F B7 83 70 03 00 00 33) // should be unique
alloc(newmem,$1000,INJECT_INF_CP)

aobscanmodule(INJECT_INF_CP2,$process,66 89 93 70 03 00 00) // should be unique
alloc(newmem2,$1000,INJECT_INF_CP2)

label(code)
label(return)

label(code2)
label(return2)

newmem:
  cmp byte ptr [rbx+360], 0
  jne code
  mov ax, [rbx+00000372]
  mov [rbx+00000372], ax

code:
  movzx eax,word ptr [rbx+00000370]
  jmp return

INJECT_INF_CP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_CP)


newmem2:
  cmp byte ptr [rbx+360], 0
  jne code2
  mov dx, [rbx+00000372]
code2:
  mov [rbx+00000370],dx
  jmp return2

INJECT_INF_CP2:
  jmp newmem2
  nop 2
return2:
registersymbol(INJECT_INF_CP2)
[DISABLE]

INJECT_INF_CP:
  db 0F B7 83 70 03 00 00

INJECT_INF_CP2:
  db 66 89 93 70 03 00 00

unregistersymbol(INJECT_INF_CP)
dealloc(newmem)

unregistersymbol(INJECT_INF_CP2)
dealloc(newmem2)
{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+155CE4

ed8_3_PC.exe+155CB9: 74 29                          - je ed8_3_PC.exe+155CE4
ed8_3_PC.exe+155CBB: 0F 1F 44 00 00                 - nop dword ptr [rax+rax+00]
ed8_3_PC.exe+155CC0: 0F B7 93 32 04 00 00           - movzx edx,word ptr [rbx+00000432]
ed8_3_PC.exe+155CC7: 48 8B 4B 08                    - mov rcx,[rbx+08]
ed8_3_PC.exe+155CCB: E8 80 18 04 00                 - call ed8_3_PC.exe+197550
ed8_3_PC.exe+155CD0: 48 85 C0                       - test rax,rax
ed8_3_PC.exe+155CD3: 74 0F                          - je ed8_3_PC.exe+155CE4
ed8_3_PC.exe+155CD5: F7 80 60 03 00 00 00 00 20 00  - test [rax+00000360],00200000
ed8_3_PC.exe+155CDF: 48 8B D8                       - mov rbx,rax
ed8_3_PC.exe+155CE2: 75 DC                          - jne ed8_3_PC.exe+155CC0
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+155CE4: 0F B7 83 70 03 00 00           - movzx eax,word ptr [rbx+00000370]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+155CEB: 33 C9                          - xor ecx,ecx
ed8_3_PC.exe+155CED: 0F B7 93 72 03 00 00           - movzx edx,word ptr [rbx+00000372]
ed8_3_PC.exe+155CF4: 2B C7                          - sub eax,edi
ed8_3_PC.exe+155CF6: 85 C0                          - test eax,eax
ed8_3_PC.exe+155CF8: 0F 4F C8                       - cmovg ecx,eax
ed8_3_PC.exe+155CFB: 3B CA                          - cmp ecx,edx
ed8_3_PC.exe+155CFD: 66 0F 4C D1                    - cmovl dx,cx
ed8_3_PC.exe+155D01: 66 89 93 70 03 00 00           - mov [rbx+00000370],dx
ed8_3_PC.exe+155D08: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
ed8_3_PC.exe+155D0D: 48 83 C4 20                    - add rsp,20
}


{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+155D01

ed8_3_PC.exe+155CDF: 48 8B D8              - mov rbx,rax
ed8_3_PC.exe+155CE2: 75 DC                 - jne ed8_3_PC.exe+155CC0
ed8_3_PC.exe+155CE4: 0F B7 83 70 03 00 00  - movzx eax,word ptr [rbx+00000370]
ed8_3_PC.exe+155CEB: 33 C9                 - xor ecx,ecx
ed8_3_PC.exe+155CED: 0F B7 93 72 03 00 00  - movzx edx,word ptr [rbx+00000372]
ed8_3_PC.exe+155CF4: 2B C7                 - sub eax,edi
ed8_3_PC.exe+155CF6: 85 C0                 - test eax,eax
ed8_3_PC.exe+155CF8: 0F 4F C8              - cmovg ecx,eax
ed8_3_PC.exe+155CFB: 3B CA                 - cmp ecx,edx
ed8_3_PC.exe+155CFD: 66 0F 4C D1           - cmovl dx,cx
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+155D01: 66 89 93 70 03 00 00  - mov [rbx+00000370],dx
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+155D08: 48 8B 5C 24 30        - mov rbx,[rsp+30]
ed8_3_PC.exe+155D0D: 48 83 C4 20           - add rsp,20
ed8_3_PC.exe+155D11: 5F                    - pop rdi
ed8_3_PC.exe+155D12: C3                    - ret
ed8_3_PC.exe+155D13: CC                    - int 3
ed8_3_PC.exe+155D14: CC                    - int 3
ed8_3_PC.exe+155D15: CC                    - int 3
ed8_3_PC.exe+155D16: CC                    - int 3
ed8_3_PC.exe+155D17: CC                    - int 3
ed8_3_PC.exe+155D18: CC                    - int 3
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>19</ID>
      <Description>"[戰鬥] EP無限 / Battle: inf EP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_EP,$process,0F B7 83 6C 03 00 00) // should be unique
alloc(newmem,$1000,INJECT_INF_EP)

label(code)
label(return)

newmem:
  cmp byte ptr [rbx+360], 0
  jne code

  mov ax, [rbx+0000036E]
  mov [rbx+0000036C], ax

  xor edi, edi

code:
  movzx eax,word ptr [rbx+0000036C]
  jmp return

INJECT_INF_EP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_EP)

[DISABLE]

INJECT_INF_EP:
  db 0F B7 83 6C 03 00 00

unregistersymbol(INJECT_INF_EP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+155E64

ed8_3_PC.exe+155E39: 74 29                          - je ed8_3_PC.exe+155E64
ed8_3_PC.exe+155E3B: 0F 1F 44 00 00                 - nop dword ptr [rax+rax+00]
ed8_3_PC.exe+155E40: 0F B7 93 32 04 00 00           - movzx edx,word ptr [rbx+00000432]
ed8_3_PC.exe+155E47: 48 8B 4B 08                    - mov rcx,[rbx+08]
ed8_3_PC.exe+155E4B: E8 00 17 04 00                 - call ed8_3_PC.exe+197550
ed8_3_PC.exe+155E50: 48 85 C0                       - test rax,rax
ed8_3_PC.exe+155E53: 74 0F                          - je ed8_3_PC.exe+155E64
ed8_3_PC.exe+155E55: F7 80 60 03 00 00 00 00 20 00  - test [rax+00000360],00200000
ed8_3_PC.exe+155E5F: 48 8B D8                       - mov rbx,rax
ed8_3_PC.exe+155E62: 75 DC                          - jne ed8_3_PC.exe+155E40
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+155E64: 0F B7 83 6C 03 00 00           - movzx eax,word ptr [rbx+0000036C]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+155E6B: 33 C9                          - xor ecx,ecx
ed8_3_PC.exe+155E6D: 0F B7 93 6E 03 00 00           - movzx edx,word ptr [rbx+0000036E]
ed8_3_PC.exe+155E74: 2B C7                          - sub eax,edi
ed8_3_PC.exe+155E76: 85 C0                          - test eax,eax
ed8_3_PC.exe+155E78: 0F 4F C8                       - cmovg ecx,eax
ed8_3_PC.exe+155E7B: 3B CA                          - cmp ecx,edx
ed8_3_PC.exe+155E7D: 66 0F 4C D1                    - cmovl dx,cx
ed8_3_PC.exe+155E81: 66 89 93 6C 03 00 00           - mov [rbx+0000036C],dx
ed8_3_PC.exe+155E88: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
ed8_3_PC.exe+155E8D: 48 83 C4 20                    - add rsp,20
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>145</ID>
      <Description>"[戰鬥] 設定最小EXP獎勵 / Battle: set min. EXP bonus"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_EXP_BONUS,$process,F3 0F 58 86 90 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_EXP_BONUS)

label(code)
label(return)
label(vf_min_exp_bonus)

newmem:
  vmovss xmm15, [rsi+00000290]
  vmovss xmm14, [vf_min_exp_bonus]
  vucomiss xmm15, xmm14
  jae code
  vmovss [rsi+00000290], xmm14

code:
  addss xmm0,[rsi+00000290]
  jmp return
align 10 cc
  vf_min_exp_bonus:
  dd (float)1.8

INJECT_SET_MIN_EXP_BONUS:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SET_MIN_EXP_BONUS)
registersymbol(vf_min_exp_bonus)

[DISABLE]

INJECT_SET_MIN_EXP_BONUS:
  db F3 0F 58 86 90 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+1C6F8F

ed8_3_PC.exe+1C6F61: 0F B6 48 08                    - movzx ecx,byte ptr [rax+08]
ed8_3_PC.exe+1C6F65: 48 8B 50 08                    - mov rdx,[rax+08]
ed8_3_PC.exe+1C6F69: 83 E1 01                       - and ecx,01
ed8_3_PC.exe+1C6F6C: 48 2B D1                       - sub rdx,rcx
ed8_3_PC.exe+1C6F6F: 48 8B CE                       - mov rcx,rsi
ed8_3_PC.exe+1C6F72: E8 89 5C 00 00                 - call ed8_3_PC.exe+1CCC00
ed8_3_PC.exe+1C6F77: FE 84 2B 94 02 00 00           - inc byte ptr [rbx+rbp+00000294]
ed8_3_PC.exe+1C6F7E: 48 8D 0C 5E                    - lea rcx,[rsi+rbx*2]
ed8_3_PC.exe+1C6F82: C6 84 0B 95 02 00 00 00        - mov byte ptr [rbx+rcx+00000295],00
ed8_3_PC.exe+1C6F8A: F3 0F 10 47 10                 - movss xmm0,[rdi+10]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+1C6F8F: F3 0F 58 86 90 02 00 00        - addss xmm0,[rsi+00000290]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+1C6F97: 0F 2F 05 7A A3 63 00           - comiss xmm0,[ed8_3_PC.exe+801318]
ed8_3_PC.exe+1C6F9E: F3 0F 11 86 90 02 00 00        - movss [rsi+00000290],xmm0
ed8_3_PC.exe+1C6FA6: 76 0A                          - jna ed8_3_PC.exe+1C6FB2
ed8_3_PC.exe+1C6FA8: C7 86 90 02 00 00 66 66 1E 41  - mov [rsi+00000290],411E6666
ed8_3_PC.exe+1C6FB2: 0F B6 47 08                    - movzx eax,byte ptr [rdi+08]
ed8_3_PC.exe+1C6FB6: 48 8D 15 8B A0 63 00           - lea rdx,[ed8_3_PC.exe+801048]
ed8_3_PC.exe+1C6FBD: 48 8B 5F 08                    - mov rbx,[rdi+08]
ed8_3_PC.exe+1C6FC1: 48 8D 4C 24 30                 - lea rcx,[rsp+30]
ed8_3_PC.exe+1C6FC6: 83 E0 01                       - and eax,01
ed8_3_PC.exe+1C6FC9: 41 B8 FF 03 00 00              - mov r8d,000003FF
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>146</ID>
          <Description>"最小獎勵 / min. bonus"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_exp_bonus</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>153</ID>
      <Description>"[戰鬥] Link經驗值倍率 / Battle: Link EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version: 
  Date   : 2024-07-14
  Author : bbfox2https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_LINK_EXP_MULTI_V2,$process,18 27 00 89 84 BE 7C 87 00 00) // should be unique
alloc(newmem,$1000,INJECT_LINK_EXP_MULTI_V2)

label(code)
label(return)
label(vf_link_xp_multi)
label(i_old_lxp)
label(i_new_lxp)

newmem:
  cmp eax, 0
  je code

  cmp [rsi+rdi*4+0000877C], eax
  jae code

  mov [i_old_lxp], eax

  vcvtsi2ss xmm15, xmm15, eax
  vmovss xmm14, [vf_link_xp_multi]
  push eax
  mov eax, [rsi+rdi*4+0000877C]
  vcvtsi2ss xmm13, xmm13, eax
  pop eax

  vsubss xmm12, xmm15, xmm13
  vmulss xmm12, xmm12, xmm14
  vaddss xmm15, xmm13, xmm12

  vmovss xmm14, [vf_5]
  vdivss xmm15, xmm15, xmm14
  //vmovss xmm14, [vf_0_5]
  //vaddss xmm15, xmm15, xmm14
  //vcvttps2dq xmm13, xmm15
  vcvtps2dq xmm13, xmm15
  vcvtdq2ps xmm15, xmm13
  vmulss xmm15, xmm15, xmm14

  vcvtss2si eax, xmm15
  mov [i_new_lxp], eax

code:
  mov [rsi+rdi*4+0000877C],eax
  jmp return
align 10 cc
  vf_link_xp_multi:
  dd (float)2
  vf_10:
  dd (float)10
  vf_5:
  dd (float)5
  i_old_lxp:
  dd 0
  i_new_lxp:
  dd 0
  vf_0_5:
  dd (float)0.5



INJECT_LINK_EXP_MULTI_V2+03:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_LINK_EXP_MULTI_V2)
registersymbol(vf_link_xp_multi)
registersymbol(i_old_lxp)
registersymbol(i_new_lxp)

[DISABLE]

INJECT_LINK_EXP_MULTI_V2+03:
  db 89 84 BE 7C 87 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+1AE2C6

ed8_3_PC.exe+1AE294: 48 03 F8              - add rdi,rax
ed8_3_PC.exe+1AE297: 45 0F B7 C4           - movzx r8d,r12w
ed8_3_PC.exe+1AE29B: 41 0F B7 D7           - movzx edx,r15w
ed8_3_PC.exe+1AE29F: 48 8B 8B 28 2E 00 00  - mov rcx,[rbx+00002E28]
ed8_3_PC.exe+1AE2A6: E8 A5 18 27 00        - call ed8_3_PC.exe+41FB50
ed8_3_PC.exe+1AE2AB: 88 84 37 7C 6C 00 00  - mov [rdi+rsi+00006C7C],al
ed8_3_PC.exe+1AE2B2: 45 0F B7 C4           - movzx r8d,r12w
ed8_3_PC.exe+1AE2B6: 41 0F B7 D7           - movzx edx,r15w
ed8_3_PC.exe+1AE2BA: 48 8B 8B 28 2E 00 00  - mov rcx,[rbx+00002E28]
ed8_3_PC.exe+1AE2C1: E8 2A 18 27 00        - call ed8_3_PC.exe+41FAF0
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+1AE2C6: 89 84 BE 7C 87 00 00  - mov [rsi+rdi*4+0000877C],eax
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+1AE2CD: 48 8B 8B 28 2E 00 00  - mov rcx,[rbx+00002E28]
ed8_3_PC.exe+1AE2D4: 48 81 C1 11 5A 00 00  - add rcx,00005A11
ed8_3_PC.exe+1AE2DB: 45 0F B7 C4           - movzx r8d,r12w
ed8_3_PC.exe+1AE2DF: 41 0F B7 D7           - movzx edx,r15w
ed8_3_PC.exe+1AE2E3: E8 38 18 27 00        - call ed8_3_PC.exe+41FB20
ed8_3_PC.exe+1AE2E8: 88 84 37 7C 7E 00 00  - mov [rdi+rsi+00007E7C],al
ed8_3_PC.exe+1AE2EF: 41 FF C5              - inc r13d
ed8_3_PC.exe+1AE2F2: 8B 93 D8 00 00 00     - mov edx,[rbx+000000D8]
ed8_3_PC.exe+1AE2F8: 44 3B EA              - cmp r13d,edx
ed8_3_PC.exe+1AE2FB: 0F 82 4F FF FF FF     - jb ed8_3_PC.exe+1AE250
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>154</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_link_xp_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>155</ID>
          <Description>"old val"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_old_lxp</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>156</ID>
          <Description>"new val"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_new_lxp</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>126</ID>
      <Description>"[戰鬥] 經驗值倍率 / Battle: EXP multiplier"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_XP_MULTI,$process,0F 57 C9 0F 57 C0 F3 48 0F 2A C8 8B 87) // should be unique
alloc(newmem,$1000,INJECT_XP_MULTI)

label(code)
label(return)
label(vf_xp_multi)
label(i_old_bxp)
label(i_new_bxp)

newmem:
  mov [i_old_bxp], eax
  vcvtsi2ss xmm15, xmm15, eax
  vmovss xmm14, [vf_xp_multi]
  vmulss xmm15, xmm14, xmm15
  vcvtss2si eax, xmm15
  mov [i_new_bxp], eax

code:
  xorps xmm1,xmm1
  xorps xmm0,xmm0
  jmp return
align 10 cc
  vf_xp_multi:
  dd (float)1.10
  i_old_bxp:
  dd 0
  i_new_bxp:
  dd 0

INJECT_XP_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_XP_MULTI)
registersymbol(vf_xp_multi)
registersymbol(i_old_bxp)
registersymbol(i_new_bxp)

[DISABLE]

INJECT_XP_MULTI:
  db 0F 57 C9 0F 57 C0

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+1BE100

ed8_3_PC.exe+1BE0D6: 48 8B 6C 24 50           - mov rbp,[rsp+50]
ed8_3_PC.exe+1BE0DB: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
ed8_3_PC.exe+1BE0E0: 48 83 C4 30              - add rsp,30
ed8_3_PC.exe+1BE0E4: 5F                       - pop rdi
ed8_3_PC.exe+1BE0E5: C3                       - ret
ed8_3_PC.exe+1BE0E6: 66 83 BF 9A 02 00 00 63  - cmp word ptr [rdi+0000029A],63
ed8_3_PC.exe+1BE0EE: 48 89 5C 24 40           - mov [rsp+40],rbx
ed8_3_PC.exe+1BE0F3: 48 89 74 24 48           - mov [rsp+48],rsi
ed8_3_PC.exe+1BE0F8: 73 66                    - jae ed8_3_PC.exe+1BE160
ed8_3_PC.exe+1BE0FA: 8B 87 C4 02 00 00        - mov eax,[rdi+000002C4]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+1BE100: 0F 57 C9                 - xorps xmm1,xmm1
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+1BE103: 0F 57 C0                 - xorps xmm0,xmm0
ed8_3_PC.exe+1BE106: F3 48 0F 2A C8           - cvtsi2ss xmm1,rax
ed8_3_PC.exe+1BE10B: 8B 87 CC 02 00 00        - mov eax,[rdi+000002CC]
ed8_3_PC.exe+1BE111: F3 48 0F 2A C0           - cvtsi2ss xmm0,rax
ed8_3_PC.exe+1BE116: 8B C5                    - mov eax,ebp
ed8_3_PC.exe+1BE118: F3 0F 59 CE              - mulss xmm1,xmm6
ed8_3_PC.exe+1BE11C: F3 0F 58 C8              - addss xmm1,xmm0
ed8_3_PC.exe+1BE120: F3 48 0F 2C C9           - cvttss2si rcx,xmm1
ed8_3_PC.exe+1BE125: 3B CD                    - cmp ecx,ebp
ed8_3_PC.exe+1BE127: 0F 42 C1                 - cmovb eax,ecx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>127</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_xp_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>5</ID>
      <Description>"[戰鬥] 傷害倍率 / Battle: Damage multiplier"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_DAMAGE_MULTI,$process,89 9F 64 03 00 00) // should be unique
alloc(newmem,$1000,INJECT_DAMAGE_MULTI)

label(code)
label(return)
label(is_full_ep)
label(is_full_cp)
label(vf_dmg_to_player_multi)
label(vf_dmg_to_enemy_multi)
label(i_last_obj_addr)
label(i_dmg_orig)
label(i_dmg_new)
label(i_batt_target)
label(i_player_hp_ignore_val)

newmem:
  mov [i_last_obj_addr], rdi

check2:
  //cmp ebx, 0
  //je code
  db EB 3B 54
  db 68 69 73 20 74 61 62 6C 65
  db 20 63 6F 6D
  db 65 73 20 66 72 6F 6D 20
  db 68 74 74 70
  db 73 3A 2F 2F 6F 70 65 6E 63 68 65 61
  db 74 74 61 62
  db 6C 65
  db 73 2E
  db 63 6F 6D 20
  db 2F
  db 20
  db 43 45 20 37
  db 2E 34 2B

  cmp byte [rdi+00000360], 0
  je to_player
  jmp to_enemy


to_player:
  mov dword ptr [i_batt_target], 1

  push r15

  // EP section
  cmp dword ptr [is_full_ep], 1
  jne next1
  mov r15w, [rdi+0000036E]
  mov [rdi+0000036C], r15w

next1:
  // CP section
  cmp dword ptr [is_full_cp], 1
  jne next2
  mov r15w, [rdi+00000372]
  mov [rdi+00000370], r15w

next2:
  // HP section
  mov r15d, [rdi+00000364]
  cmp r15d, ebx // new HP equal or greater old one
  jbe to_player_pre



  cmp r15d, dword ptr [i_player_hp_ignore_val]
  jbe to_player_pre

  // HP multiplier section
  vmovss xmm15, [vf_dmg_to_player_multi]
  vmovss xmm14, [vf_1]
  vucomiss xmm14, xmm15
  je to_player_pre // multiplier = 1


  vcvtsi2ss xmm14, xmm14, ebx
  vmovss [i_dmg_orig], xmm14
  cvtsi2ss xmm13, [rdi+00000364]
  vsubss xmm12, xmm13, xmm14 // Delta (damage)
  vmulss xmm12, xmm12, xmm15 // final damage value
  //cvtsi2ss xmm14, [rdi+00000364]
  vsubss xmm12, xmm13, xmm12 // final HP = [orig HP] - [final damage value]

  vxorps xmm14, xmm14, xmm14
  vucomiss xmm12, xmm14
  ja next3
  vxorps xmm12, xmm12, xmm12

next3:
  vmovss [i_dmg_new], xmm12
  vcvtss2si ebx, xmm12

to_player_pre:
  pop r15
  jmp code

to_enemy:
  mov dword ptr [i_batt_target], 2
  cmp [rdi+00000364],ebx
  jbe code

  // 38C = break value current?
  // 390 = breat value full?

  vmovss xmm15, [vf_dmg_to_enemy_multi]
  vmovss xmm14, [vf_1]
  vucomiss xmm14, xmm15
  vcvtsi2ss xmm14, xmm14, ebx
  vmovss [i_dmg_orig], xmm14
  je to_enemy_1 // multiplier = 1


  cvtsi2ss xmm13, [rdi+00000364]
  vsubss xmm13, xmm13, xmm14 // Delta (damage)
  vmulss xmm13, xmm13, xmm15 // final damage
  cvtsi2ss xmm14, [rdi+00000364]
  vsubss xmm14, xmm14, xmm13

  //xorps xmm6, xmm6

  //final HP cannot be minus

  movss xmm13, [vf_1]
  ucomiss xmm14, xmm13
  ja to_enemy_1

  vxorps xmm14, xmm14, xmm14

to_enemy_1:
  vmovss [i_dmg_new], xmm14
  vcvtss2si ebx, xmm14


code:
  mov [rdi+00000364],ebx
  jmp return

align 10 cc
  is_full_ep:
  dd 1
  is_full_cp:
  dd 1
  vf_dmg_to_player_multi:
  dd (float)0.85
  vf_dmg_to_enemy_multi:
  dd (float)2
  i_last_obj_addr:
  dq 0
  i_dmg_orig:
  dd 0
  i_dmg_new:
  dd 0
  vf_1:
  dd (float)1
  i_batt_target:
  dd 0
  i_player_hp_ignore_val:
  dd #500

INJECT_DAMAGE_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_DAMAGE_MULTI)
registersymbol(is_full_ep)
registersymbol(is_full_cp)
registersymbol(vf_dmg_to_player_multi)
registersymbol(vf_dmg_to_enemy_multi)
registersymbol(i_last_obj_addr)
registersymbol(i_dmg_orig)
registersymbol(i_dmg_new)
registersymbol(i_batt_target)
registersymbol(i_player_hp_ignore_val)


[DISABLE]

INJECT_DAMAGE_MULTI:
  db 89 9F 64 03 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+155FF0

ed8_3_PC.exe+155FCA: F7 E1                    - mul ecx
ed8_3_PC.exe+155FCC: C1 EA 05                 - shr edx,05
ed8_3_PC.exe+155FCF: 03 DA                    - add ebx,edx
ed8_3_PC.exe+155FD1: 45 2B FE                 - sub r15d,r14d
ed8_3_PC.exe+155FD4: 45 85 FF                 - test r15d,r15d
ed8_3_PC.exe+155FD7: 41 0F 4F F7              - cmovg esi,r15d
ed8_3_PC.exe+155FDB: 4C 8B BC 24 90 00 00 00  - mov r15,[rsp+00000090]
ed8_3_PC.exe+155FE3: 3B F3                    - cmp esi,ebx
ed8_3_PC.exe+155FE5: 0F 4C DE                 - cmovl ebx,esi
ed8_3_PC.exe+155FE8: 48 8B B4 24 98 00 00 00  - mov rsi,[rsp+00000098]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+155FF0: 89 9F 64 03 00 00        - mov [rdi+00000364],ebx
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+155FF6: 48 8B 9C 24 D0 00 00 00  - mov rbx,[rsp+000000D0]
ed8_3_PC.exe+155FFE: 48 8B 4D 27              - mov rcx,[rbp+27]
ed8_3_PC.exe+156002: 48 33 CC                 - xor rcx,rsp
ed8_3_PC.exe+156005: E8 A6 C1 58 00           - call ed8_3_PC.exe+6E21B0
ed8_3_PC.exe+15600A: 48 81 C4 A0 00 00 00     - add rsp,000000A0
ed8_3_PC.exe+156011: 41 5E                    - pop r14
ed8_3_PC.exe+156013: 5F                       - pop rdi
ed8_3_PC.exe+156014: 5D                       - pop rbp
ed8_3_PC.exe+156015: C3                       - ret
ed8_3_PC.exe+156016: CC                       - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>7</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_full_ep</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>8</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_full_cp</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>9</ID>
          <Description>"對玩家傷害倍率 / Damage multiplier to player"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_dmg_to_player_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"對敵人傷害倍率 / Damage multiplier to enemy"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_dmg_to_enemy_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>137</ID>
          <Description>"玩家HP低於此值時不處理 / Bypass script when player HP below:"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_player_hp_ignore_val</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>109</ID>
          <Description>"_debug"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C0C0C0</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>11</ID>
              <Description>"last object"</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>8 Bytes</VariableType>
              <Address>i_last_obj_addr</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"Target"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">1:我
2:敵
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_batt_target</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>13</ID>
              <Description>"Dmg. orig."</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>Float</VariableType>
              <Address>i_dmg_orig</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>14</ID>
              <Description>"Dmg new"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>Float</VariableType>
              <Address>i_dmg_new</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>36</ID>
      <Description>"[戰鬥] 破防倍率 / Battle: Break multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  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 8C 03 00 00 48 8B CB) // should be unique
alloc(newmem,$1000,INJECT_BREAK_MULTI)

label(code)
label(return)
label(vf_break_multi)

newmem:
  cmp byte ptr [rbx+00000360], 0
  je code

  vcvtsi2ss xmm15, xmm15, edi
  vmovss xmm14, [vf_break_multi]
  vmulss xmm13, xmm14, xmm15
  vcvtss2si edi, xmm13

  cmp eax, edi
  jae code
  mov edi, eax

code:
  sub eax,edi
  cmp eax,ecx
  cmovl ecx,eax
  jmp return
align 10 cc
  vf_break_multi:
  dd (float)1.33333333

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_3_PC.exe+158840

ed8_3_PC.exe+15881B: E8 30 ED 03 00     - call ed8_3_PC.exe+197550
ed8_3_PC.exe+158820: 48 85 C0           - test rax,rax
ed8_3_PC.exe+158823: 74 0F              - je ed8_3_PC.exe+158834
ed8_3_PC.exe+158825: 45 33 C0           - xor r8d,r8d
ed8_3_PC.exe+158828: 8B D7              - mov edx,edi
ed8_3_PC.exe+15882A: 48 8B C8           - mov rcx,rax
ed8_3_PC.exe+15882D: E8 BE D3 FF FF     - call ed8_3_PC.exe+155BF0
ed8_3_PC.exe+158832: EB 20              - jmp ed8_3_PC.exe+158854
ed8_3_PC.exe+158834: 8B 83 8C 03 00 00  - mov eax,[rbx+0000038C]
ed8_3_PC.exe+15883A: 8B 8B 90 03 00 00  - mov ecx,[rbx+00000390]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+158840: 2B C7              - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+158842: 3B C1              - cmp eax,ecx
ed8_3_PC.exe+158844: 0F 4C C8           - cmovl ecx,eax
ed8_3_PC.exe+158847: 33 C0              - xor eax,eax
ed8_3_PC.exe+158849: 85 C9              - test ecx,ecx
ed8_3_PC.exe+15884B: 0F 48 C8           - cmovs ecx,eax
ed8_3_PC.exe+15884E: 89 8B 8C 03 00 00  - mov [rbx+0000038C],ecx
ed8_3_PC.exe+158854: 48 8B CB           - mov rcx,rbx
ed8_3_PC.exe+158857: E8 B4 12 00 00     - call ed8_3_PC.exe+159B10
ed8_3_PC.exe+15885C: 83 78 28 00        - cmp dword ptr [rax+28],00
ed8_3_PC.exe+158860: 75 23              - jne ed8_3_PC.exe+158885
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>37</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_break_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>140</ID>
      <Description>"[戰鬥] 勇氣指令不需BP / Battle: Orders cost 0 BP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  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 ebx, ebx

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_3_PC.exe+13D8BA

ed8_3_PC.exe+13D88D: 49 8B 85 60 2D 00 00  - mov rax,[r13+00002D60]
ed8_3_PC.exe+13D894: 49 8B 57 50           - mov rdx,[r15+50]
ed8_3_PC.exe+13D898: 48 8B 88 D0 02 00 00  - mov rcx,[rax+000002D0]
ed8_3_PC.exe+13D89F: E8 3C D8 00 00        - call ed8_3_PC.exe+14B0E0
ed8_3_PC.exe+13D8A4: 83 F8 11              - cmp eax,11
ed8_3_PC.exe+13D8A7: 75 06                 - jne ed8_3_PC.exe+13D8AF
ed8_3_PC.exe+13D8A9: 66 41 89 1E           - mov [r14],bx
ed8_3_PC.exe+13D8AD: EB 04                 - jmp ed8_3_PC.exe+13D8B3
ed8_3_PC.exe+13D8AF: 41 0F B7 1E           - movzx ebx,word ptr [r14]
ed8_3_PC.exe+13D8B3: 49 8B 85 30 2E 00 00  - mov rax,[r13+00002E30]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+13D8BA: 0F B6 88 90 02 00 00  - movzx ecx,byte ptr [rax+00000290]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+13D8C1: 66 3B CB              - cmp cx,bx
ed8_3_PC.exe+13D8C4: 0F 83 52 FF FF FF     - jae ed8_3_PC.exe+13D81C
ed8_3_PC.exe+13D8CA: 32 C0                 - xor al,al
ed8_3_PC.exe+13D8CC: E9 4D FF FF FF        - jmp ed8_3_PC.exe+13D81E
ed8_3_PC.exe+13D8D1: 0F 1F 00              - nop dword ptr [rax]
ed8_3_PC.exe+13D8D4: 2F                    - das
ed8_3_PC.exe+13D8D5: D5 13                 - aad 13
ed8_3_PC.exe+13D8D7: 00 2F                 - add [rdi],ch
ed8_3_PC.exe+13D8D9: D5 13                 - aad 13
ed8_3_PC.exe+13D8DB: 00 0A                 - add [rdx],cl
}

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+424719

ed8_3_PC.exe+424709: CC              - int 3
ed8_3_PC.exe+42470A: CC              - int 3
ed8_3_PC.exe+42470B: CC              - int 3
ed8_3_PC.exe+42470C: CC              - int 3
ed8_3_PC.exe+42470D: CC              - int 3
ed8_3_PC.exe+42470E: CC              - int 3
ed8_3_PC.exe+42470F: CC              - int 3
ed8_3_PC.exe+424710: 44 0F B6 01     - movzx r8d,byte ptr [rcx]
ed8_3_PC.exe+424714: 0F B6 C2        - movzx eax,dl
ed8_3_PC.exe+424717: 33 D2           - xor edx,edx
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+424719: 44 2B C0        - sub r8d,eax
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+42471C: 45 85 C0        - test r8d,r8d
ed8_3_PC.exe+42471F: 41 0F B6 C0     - movzx eax,r8b
ed8_3_PC.exe+424723: 0F 4F D0        - cmovg edx,eax
ed8_3_PC.exe+424726: 88 11           - mov [rcx],dl
ed8_3_PC.exe+424728: E9 63 F9 FF FF  - jmp ed8_3_PC.exe+424090
ed8_3_PC.exe+42472D: CC              - int 3
ed8_3_PC.exe+42472E: CC              - int 3
ed8_3_PC.exe+42472F: CC              - int 3
ed8_3_PC.exe+424730: 40 57           - push rdi
ed8_3_PC.exe+424732: 48 83 EC 20     - sub rsp,20
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>54</ID>
      <Description>"[戰鬥] 設定最低BP值 / Battle: set min. breavery pt."</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_BRA_PT,$process,0F B6 9F 90 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_BRA_PT)

label(code)
label(return)
label(i_min_bra_pt)
label(i_base_bra_pt_addr)

newmem:
  mov [i_base_bra_pt_addr], rdi

  mov bl, [i_min_bra_pt]
  cmp [rdi+00000290], bl
  jae code

  mov [rdi+00000290], bl


code:
  movzx ebx,byte ptr [rdi+00000290]
  jmp return
align 10 cc
  i_min_bra_pt:
  db 2
  i_base_bra_pt_addr:
  dq 0

INJECT_SET_MIN_BRA_PT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_MIN_BRA_PT)
registersymbol(i_min_bra_pt)
registersymbol(i_base_bra_pt_addr)

[DISABLE]

INJECT_SET_MIN_BRA_PT:
  db 0F B6 9F 90 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+426222

ed8_3_PC.exe+4261EF: 48 8B F9                 - mov rdi,rcx
ed8_3_PC.exe+4261F2: 44 0F 28 D1              - movaps xmm10,xmm1
ed8_3_PC.exe+4261F6: E8 25 1B 06 00           - call ed8_3_PC.exe+487D20
ed8_3_PC.exe+4261FB: 48 8B 0D DE 51 82 00     - mov rcx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+426202: BA 01 04 00 00           - mov edx,00000401
ed8_3_PC.exe+426207: E8 74 97 ED FF           - call ed8_3_PC.exe+2FF980
ed8_3_PC.exe+42620C: 84 C0                    - test al,al
ed8_3_PC.exe+42620E: 0F 84 A7 03 00 00        - je ed8_3_PC.exe+4265BB
ed8_3_PC.exe+426214: 8B 97 94 02 00 00        - mov edx,[rdi+00000294]
ed8_3_PC.exe+42621A: 48 89 9C 24 A0 00 00 00  - mov [rsp+000000A0],rbx
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+426222: 0F B6 9F 90 02 00 00     - movzx ebx,byte ptr [rdi+00000290]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+426229: 0F 29 B4 24 80 00 00 00  - movaps [rsp+00000080],xmm6
ed8_3_PC.exe+426231: 8D 42 FF                 - lea eax,[rdx-01]
ed8_3_PC.exe+426234: 0F 29 7C 24 70           - movaps [rsp+70],xmm7
ed8_3_PC.exe+426239: 44 0F 29 44 24 60        - movaps [rsp+60],xmm8
ed8_3_PC.exe+42623F: 83 F8 06                 - cmp eax,06
ed8_3_PC.exe+426242: 0F 87 00 03 00 00        - ja ed8_3_PC.exe+426548
ed8_3_PC.exe+426248: 4C 8D 05 B1 9D BD FF     - lea r8,[ed8_3_PC.exe]
ed8_3_PC.exe+42624F: 48 98                    - cdqe
ed8_3_PC.exe+426251: 48 89 B4 24 A8 00 00 00  - mov [rsp+000000A8],rsi
ed8_3_PC.exe+426259: 41 8B 8C 80 CC 65 42 00  - mov ecx,[r8+rax*4+004265CC]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>55</ID>
          <Description>"min. pt"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_min_bra_pt</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>138</ID>
          <Description>"cur. pt"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_bra_pt_addr</Address>
          <Offsets>
            <Offset>290</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>119</ID>
      <Description>"[戰鬥] 無限道具數量 / Battle: inf. item amount when use"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_INF_ITEM,$process,2B C8 85 C9 66 44 0F 4F D1) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_INF_ITEM)

label(code)
label(return)

newmem:
  cmp ecx, 51
  jae code
  mov ecx, 51

code:
  sub ecx,eax
  test ecx,ecx
  cmovg r10w,cx
  jmp return

INJECT_BATTLE_INF_ITEM:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_BATTLE_INF_ITEM)

[DISABLE]

INJECT_BATTLE_INF_ITEM:
  db 2B C8 85 C9 66 44 0F 4F D1

unregistersymbol(INJECT_BATTLE_INF_ITEM)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+341915

ed8_3_PC.exe+3418F6: 8B D1              - mov edx,ecx
ed8_3_PC.exe+3418F8: 66 42 39 1C 08     - cmp [rax+r9],bx
ed8_3_PC.exe+3418FD: 74 09              - je ed8_3_PC.exe+341908
ed8_3_PC.exe+3418FF: FF C1              - inc ecx
ed8_3_PC.exe+341901: 41 3B C8           - cmp ecx,r8d
ed8_3_PC.exe+341904: 72 EA              - jb ed8_3_PC.exe+3418F0
ed8_3_PC.exe+341906: EB 1C              - jmp ed8_3_PC.exe+341924
ed8_3_PC.exe+341908: 48 C1 E2 05        - shl rdx,05
ed8_3_PC.exe+34190C: 0F B7 C5           - movzx eax,bp
ed8_3_PC.exe+34190F: 42 0F B7 4C 0A 02  - movzx ecx,word ptr [rdx+r9+02]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+341915: 2B C8              - sub ecx,eax
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+341917: 85 C9              - test ecx,ecx
ed8_3_PC.exe+341919: 66 44 0F 4F D1     - cmovg r10w,cx
ed8_3_PC.exe+34191E: 66 46 89 54 0A 02  - mov [rdx+r9+02],r10w
ed8_3_PC.exe+341924: 80 7C 24 50 00     - cmp byte ptr [rsp+50],00
ed8_3_PC.exe+341929: 74 0B              - je ed8_3_PC.exe+341936
ed8_3_PC.exe+34192B: 48 8B D7           - mov rdx,rdi
ed8_3_PC.exe+34192E: 48 8B CE           - mov rcx,rsi
ed8_3_PC.exe+341931: E8 4A F6 FF FF     - call ed8_3_PC.exe+340F80
ed8_3_PC.exe+341936: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_3_PC.exe+34193B: 48 8B 6C 24 38     - mov rbp,[rsp+38]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>114</ID>
      <Description>"[戰鬥] 主結晶迴路EXP倍率 / Battle: Master Quartz EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_M_QUARTZ_XP_MULTI,$process,03 D0 8B C3 3B D3) // should be unique
alloc(newmem,$1000,INJECT_M_QUARTZ_XP_MULTI)

label(code)
label(return)
label(vf_mqz_xp_multi)
label(i_old_mqz_val)
label(i_new_mqz_val)


newmem:
  mov [i_old_mqz_val], eax
  vcvtsi2ss xmm15, xmm15, eax
  vmovss xmm14, [vf_mqz_xp_multi]
  vmulss xmm14, xmm15, xmm14
  vcvtss2si eax, xmm14
  mov [i_new_mqz_val], eax

code:
  add edx,eax
  mov eax,ebx
  cmp edx,ebx
  jmp return
align 10 cc
  vf_mqz_xp_multi:
  dd (float)1.3333333
  i_old_mqz_val:
  dd 0
  i_new_mqz_val:
  dd 0

INJECT_M_QUARTZ_XP_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_M_QUARTZ_XP_MULTI)
registersymbol(vf_mqz_xp_multi)
registersymbol(i_old_mqz_val)
registersymbol(i_new_mqz_val)

[DISABLE]

INJECT_M_QUARTZ_XP_MULTI:
  db 03 D0 8B C3 3B D3

unregistersymbol(INJECT_M_QUARTZ_XP_MULTI)
unregistersymbol(vf_mqz_xp_multi)
unregistersymbol(i_old_mqz_val)
unregistersymbol(i_new_mqz_val)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+1BDA67

ed8_3_PC.exe+1BDA31: 44 0F B7 C8              - movzx r9d,ax
ed8_3_PC.exe+1BDA35: 44 0F B7 87 9C 02 00 00  - movzx r8d,word ptr [rdi+0000029C]
ed8_3_PC.exe+1BDA3D: 48 89 74 24 28           - mov [rsp+28],rsi
ed8_3_PC.exe+1BDA42: 8B 87 CC 02 00 00        - mov eax,[rdi+000002CC]
ed8_3_PC.exe+1BDA48: 89 44 24 20              - mov [rsp+20],eax
ed8_3_PC.exe+1BDA4C: 66 0F 73 DA 04           - psrldq xmm2,04
ed8_3_PC.exe+1BDA51: 66 0F 7E D2              - movd edx,xmm2
ed8_3_PC.exe+1BDA55: 48 8B 0D 84 D9 A8 00     - mov rcx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+1BDA5C: E8 FF FB 13 00           - call ed8_3_PC.exe+2FD660
ed8_3_PC.exe+1BDA61: 8B 97 C4 02 00 00        - mov edx,[rdi+000002C4]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+1BDA67: 03 D0                    - add edx,eax
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+1BDA69: 8B C3                    - mov eax,ebx
ed8_3_PC.exe+1BDA6B: 3B D3                    - cmp edx,ebx
ed8_3_PC.exe+1BDA6D: 0F 42 C2                 - cmovb eax,edx
ed8_3_PC.exe+1BDA70: 89 87 C4 02 00 00        - mov [rdi+000002C4],eax
ed8_3_PC.exe+1BDA76: BA 07 00 00 00           - mov edx,00000007
ed8_3_PC.exe+1BDA7B: 48 8B 0D 5E D9 A8 00     - mov rcx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+1BDA82: E8 E9 2D 15 00           - call ed8_3_PC.exe+310870
ed8_3_PC.exe+1BDA87: 44 8B 87 C0 02 00 00     - mov r8d,[rdi+000002C0]
ed8_3_PC.exe+1BDA8E: 8B 97 C4 02 00 00        - mov edx,[rdi+000002C4]
ed8_3_PC.exe+1BDA94: 41 03 D0                 - add edx,r8d
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>115</ID>
          <Description>"倍率 / multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_mqz_xp_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>116</ID>
          <Description>"old delta"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_old_mqz_val</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>117</ID>
          <Description>"new delta"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_new_mqz_val</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>45</ID>
      <Description>"[地圖] 設定最小奇襲點數 / Map: set min. charge"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_MIN_CHARGE,$process,66 39 88 F4 66 35 00) // should be unique
alloc(newmem,$1000,INJECT_MIN_CHARGE)

label(code)
label(return)
label(i_min_charges)

newmem:
  push r15
  mov r15w, [i_min_charges]
  cmp [rax+003566F4], r15w
  jae endp
  mov [rax+003566F4], r15w

endp:
  pop r15

code:
  cmp [rax+003566F4],cx
  jmp return
align 10 cc
  i_min_charges:
  dw 64

INJECT_MIN_CHARGE:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_MIN_CHARGE)
registersymbol(i_min_charges)

[DISABLE]

INJECT_MIN_CHARGE:
  db 66 39 88 F4 66 35 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+2F7551

ed8_3_PC.exe+2F7525: 48 8D 45 D7              - lea rax,[rbp-29]
ed8_3_PC.exe+2F7529: C6 44 24 30 00           - mov byte ptr [rsp+30],00
ed8_3_PC.exe+2F752E: 66 44 89 7C 24 28        - mov [rsp+28],r15w
ed8_3_PC.exe+2F7534: 48 89 44 24 20           - mov [rsp+20],rax
ed8_3_PC.exe+2F7539: E8 52 63 00 00           - call ed8_3_PC.exe+2FD890
ed8_3_PC.exe+2F753E: FF C6                    - inc esi
ed8_3_PC.exe+2F7540: 83 FE 09                 - cmp esi,09
ed8_3_PC.exe+2F7543: 7C 8B                    - jl ed8_3_PC.exe+2F74D0
ed8_3_PC.exe+2F7545: 48 8B 87 D8 08 00 00     - mov rax,[rdi+000008D8]
ed8_3_PC.exe+2F754C: B9 C8 00 00 00           - mov ecx,000000C8
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+2F7551: 66 39 88 F4 66 35 00     - cmp [rax+003566F4],cx
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+2F7558: 74 7A                    - je ed8_3_PC.exe+2F75D4
ed8_3_PC.exe+2F755A: 66 44 89 75 17           - mov [rbp+17],r14w
ed8_3_PC.exe+2F755F: 41 8B DE                 - mov ebx,r14d
ed8_3_PC.exe+2F7562: 48 C7 45 1B 00 00 00 00  - mov qword ptr [rbp+1B],00000000
ed8_3_PC.exe+2F756A: 44 89 75 23              - mov [rbp+23],r14d
ed8_3_PC.exe+2F756E: 66 90                    - nop 2
ed8_3_PC.exe+2F7570: 48 8B 8F D8 08 00 00     - mov rcx,[rdi+000008D8]
ed8_3_PC.exe+2F7577: 48 8D 45 17              - lea rax,[rbp+17]
ed8_3_PC.exe+2F757B: 48 81 C1 30 66 35 00     - add rcx,00356630
ed8_3_PC.exe+2F7582: 4C 89 74 24 28           - mov [rsp+28],r14
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>135</ID>
          <Description>"min. charge"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_min_charges</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>47</ID>
      <Description>"設定最小耀晶數 / Set min. Sepiths"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_SEPH,$process,8B 84 88 88 66 35 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_SEPH)

label(code)
label(return)

newmem:
  cmp dword ptr [rax+rcx*4+00356688], #24666
  jae code
  mov dword ptr [rax+rcx*4+00356688], #24666


code:
  mov eax,[rax+rcx*4+00356688]
  jmp return

INJECT_SET_MIN_SEPH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_MIN_SEPH)

[DISABLE]

INJECT_SET_MIN_SEPH:
  db 8B 84 88 88 66 35 00

unregistersymbol(INJECT_SET_MIN_SEPH)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+33E85A

ed8_3_PC.exe+33E848: CC                    - int 3
ed8_3_PC.exe+33E849: CC                    - int 3
ed8_3_PC.exe+33E84A: CC                    - int 3
ed8_3_PC.exe+33E84B: CC                    - int 3
ed8_3_PC.exe+33E84C: CC                    - int 3
ed8_3_PC.exe+33E84D: CC                    - int 3
ed8_3_PC.exe+33E84E: CC                    - int 3
ed8_3_PC.exe+33E84F: CC                    - int 3
ed8_3_PC.exe+33E850: 48 8B 05 89 CB 90 00  - mov rax,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+33E857: 48 63 CA              - movsxd  rcx,edx
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+33E85A: 8B 84 88 88 66 35 00  - mov eax,[rax+rcx*4+00356688]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+33E861: C3                    - ret
ed8_3_PC.exe+33E862: CC                    - int 3
ed8_3_PC.exe+33E863: CC                    - int 3
ed8_3_PC.exe+33E864: CC                    - int 3
ed8_3_PC.exe+33E865: CC                    - int 3
ed8_3_PC.exe+33E866: CC                    - int 3
ed8_3_PC.exe+33E867: CC                    - int 3
ed8_3_PC.exe+33E868: CC                    - int 3
ed8_3_PC.exe+33E869: CC                    - int 3
ed8_3_PC.exe+33E86A: CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>48</ID>
          <Description>"Usage: menu (Gamead Y)-&gt; Item"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>20</ID>
      <Description>"取得最小耀晶數 / Get Sepiths"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_SEPITH,$process,44 8B 80 A4 66 35 00) // should be unique
alloc(newmem,$1000,INJECT_GET_SEPITH)

label(code)
label(return)
label(i_base_seph_addr)
label(is_set_min_piece)

newmem:
  mov [i_base_seph_addr], rax
  cmp dword ptr [is_set_min_piece], 1
  jne code
  //cmp dword ptr [rax+0035664C], #24666
  cmp dword ptr [rax+003566A4], #24666
  jae code
  //mov dword ptr [rax+0035664C], #24666
  mov dword ptr [rax+003566A4], #24666


code:
  mov r8d,[rax+003566A4]
  jmp return
align 10 cc
  i_base_seph_addr:
  dq 0
  is_set_min_piece:
  dd 1

INJECT_GET_SEPITH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_SEPITH)
registersymbol(i_base_seph_addr)
registersymbol(is_set_min_piece)

[DISABLE]

INJECT_GET_SEPITH:
  db 44 8B 80 A4 66 35 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+233B59

ed8_3_PC.exe+233B28: 48 8B 01                 - mov rax,[rcx]
ed8_3_PC.exe+233B2B: 41 B9 02 00 00 00        - mov r9d,00000002
ed8_3_PC.exe+233B31: F3 0F 10 15 6B F6 5C 00  - movss xmm2,[ed8_3_PC.exe+8031A4]
ed8_3_PC.exe+233B39: 0F 28 CF                 - movaps xmm1,xmm7
ed8_3_PC.exe+233B3C: FF 50 40                 - call qword ptr [rax+40]
ed8_3_PC.exe+233B3F: C6 87 D2 12 00 00 00     - mov byte ptr [rdi+000012D2],00
ed8_3_PC.exe+233B46: 48 8B 8F 90 17 00 00     - mov rcx,[rdi+00001790]
ed8_3_PC.exe+233B4D: 48 85 C9                 - test rcx,rcx
ed8_3_PC.exe+233B50: 74 1A                    - je ed8_3_PC.exe+233B6C
ed8_3_PC.exe+233B52: 48 8B 05 87 78 A1 00     - mov rax,[ed8_3_PC.exe+C4B3E0]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+233B59: 44 8B 80 A4 66 35 00     - mov r8d,[rax+003566A4]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+233B60: 48 8D 15 61 25 5D 00     - lea rdx,[ed8_3_PC.exe+8060C8]
ed8_3_PC.exe+233B67: E8 B4 6F 24 00           - call ed8_3_PC.exe+47AB20
ed8_3_PC.exe+233B6C: 48 8B 8F 98 17 00 00     - mov rcx,[rdi+00001798]
ed8_3_PC.exe+233B73: 48 85 C9                 - test rcx,rcx
ed8_3_PC.exe+233B76: 74 1A                    - je ed8_3_PC.exe+233B92
ed8_3_PC.exe+233B78: 48 8B 05 61 78 A1 00     - mov rax,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+233B7F: 44 8B 80 E8 66 35 00     - mov r8d,[rax+003566E8]
ed8_3_PC.exe+233B86: 48 8D 15 3B 25 5D 00     - lea rdx,[ed8_3_PC.exe+8060C8]
ed8_3_PC.exe+233B8D: E8 8E 6F 24 00           - call ed8_3_PC.exe+47AB20
ed8_3_PC.exe+233B92: 4C 8D 8C 24 C0 00 00 00  - lea r9,[rsp+000000C0]
}

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>31</ID>
          <Description>"Usage: menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>49</ID>
          <Description>"設定最小值? / Set min. piece?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_set_min_piece</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>143</ID>
          <Description>"Data+"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>21</ID>
              <Description>"地セピス (Orange)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>356688</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>29</ID>
              <Description>"水セピス (Blue)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>35668C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>28</ID>
              <Description>"火セピス (Red)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>356690</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>26</ID>
              <Description>"風セピス (Green)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>356694</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>25</ID>
              <Description>"時セピス (Black)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>356698</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>24</ID>
              <Description>"空セピス (Golden)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>35669C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>23</ID>
              <Description>"幻セピス (Silver)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>3566A0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>22</ID>
              <Description>"セピス塊 (piece)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>3566A4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>27</ID>
              <Description>"Mira"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>3566E8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>50</ID>
              <Description>"Charge"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_seph_addr</Address>
              <Offsets>
                <Offset>3566F4</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>78</ID>
      <Description>"道具指令 / Item scripts"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_UPDATE_ITEM_BASE_ADDR,$process,42 0F B7 44 12 02) // should be unique
alloc(newmem,$1000,INJECT_UPDATE_ITEM_BASE_ADDR)

label(code)
label(return)
label(i_base_allitem_addr)
label(i_base_item_off_addr)

newmem:
  inc dword ptr [i_cnt]
  cmp dword ptr [i_cnt], A
  jb code
  mov dword ptr [i_cnt], 0

  cmp [i_base_allitem_addr], r10
  je code
  mov [i_base_allitem_addr], r10

code:
  movzx eax,word ptr [rdx+r10+02]
  jmp return
align 10 cc
  i_base_allitem_addr:
  dq 0
  i_base_item_off_addr:
  dq 0
  i_cnt:
  dd 0


INJECT_UPDATE_ITEM_BASE_ADDR:
  jmp newmem
  nop
return:
registersymbol(INJECT_UPDATE_ITEM_BASE_ADDR)
registersymbol(i_base_allitem_addr)
registersymbol(i_base_item_off_addr)
[DISABLE]

INJECT_UPDATE_ITEM_BASE_ADDR:
  db 42 0F B7 44 12 02

unregistersymbol(INJECT_UPDATE_ITEM_BASE_ADDR)
unregistersymbol(i_base_allitem_addr)
unregistersymbol(i_base_item_off_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+33CA2E

ed8_3_PC.exe+33CA0F: FF C1              - inc ecx
ed8_3_PC.exe+33CA11: 41 3B C8           - cmp ecx,r8d
ed8_3_PC.exe+33CA14: 72 EA              - jb ed8_3_PC.exe+33CA00
ed8_3_PC.exe+33CA16: 41 0F B7 C1        - movzx eax,r9w
ed8_3_PC.exe+33CA1A: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_3_PC.exe+33CA1F: 48 83 C4 20        - add rsp,20
ed8_3_PC.exe+33CA23: 5F                 - pop rdi
ed8_3_PC.exe+33CA24: C3                 - ret
ed8_3_PC.exe+33CA25: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_3_PC.exe+33CA2A: 48 C1 E2 05        - shl rdx,05
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+33CA2E: 42 0F B7 44 12 02  - movzx eax,word ptr [rdx+r10+02]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+33CA34: 48 83 C4 20        - add rsp,20
ed8_3_PC.exe+33CA38: 5F                 - pop rdi
ed8_3_PC.exe+33CA39: C3                 - ret
ed8_3_PC.exe+33CA3A: CC                 - int 3
ed8_3_PC.exe+33CA3B: CC                 - int 3
ed8_3_PC.exe+33CA3C: CC                 - int 3
ed8_3_PC.exe+33CA3D: CC                 - int 3
ed8_3_PC.exe+33CA3E: CC                 - int 3
ed8_3_PC.exe+33CA3F: CC                 - int 3
ed8_3_PC.exe+33CA40: 48 89 5C 24 08     - mov [rsp+08],rbx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>41</ID>
          <Description>"裝備或丟棄物品時設定數量 / Drop/equip item: set # to.."</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ITEM_CHG_CNT,$process,85 C9 66 44 0F 4F D1) // should be unique
alloc(newmem,$1000,INJECT_ITEM_CHG_CNT)

label(code)
label(return)
label(i_base_ditem_addr)
label(i_base_ditem_addr1)
label(i_base_ditem_target)
label(i_base_ditem_limit)


aobscanmodule(INJECT_ITEM_CHG_CNT1,$process,42 0F 10 44 35 00) // should be unique
alloc(newmem1,$1000,INJECT_ITEM_CHG_CNT1)

label(code1)
label(return1)

newmem:
  mov [i_base_allitem_addr], r9
  mov [i_base_item_off_addr], rdx
  push r15
  lea r15, [rdx+r9]
  mov [i_base_ditem_addr], r15
  pop r15

  cmp cx, [i_base_ditem_target]
  jae @F
  mov cx, [i_base_ditem_target]
  jmp code

@@:
  cmp cx, [i_base_ditem_limit]
  jbe @F
  mov cx, [i_base_ditem_limit]
  mov r10w, [i_base_ditem_limit]

code:
  test ecx,ecx
  cmovg r10w,cx
  jmp return
align 10 cc
  i_base_ditem_addr:
  dq 0
  i_base_ditem_addr1:
  dq 0
  i_base_ditem_target:
  dw 50
  i_base_ditem_limit:
  dw 60


INJECT_ITEM_CHG_CNT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_ITEM_CHG_CNT)
registersymbol(i_base_ditem_addr)
registersymbol(i_base_ditem_addr1)
registersymbol(i_base_ditem_target)
registersymbol(i_base_ditem_limit)

newmem1:
  push r15
  lea r15, [rbp+r14+00]
  mov [i_base_ditem_addr1], r15
  pop r15

code1:
  movups xmm0,[rbp+r14+00]
  //movups xmm0,[r15+rsi]
  jmp return1

INJECT_ITEM_CHG_CNT1:
  jmp newmem1
  nop
return1:
registersymbol(INJECT_ITEM_CHG_CNT1)


[DISABLE]

INJECT_ITEM_CHG_CNT:
  db 85 C9 66 44 0F 4F D1

INJECT_ITEM_CHG_CNT1:
  db 42 0F 10 44 35 00

unregistersymbol(INJECT_ITEM_CHG_CNT)
unregistersymbol(i_base_ditem_addr)
unregistersymbol(i_base_ditem_addr1)
unregistersymbol(i_base_ditem_target)
unregistersymbol(i_base_ditem_limit)

dealloc(newmem)

unregistersymbol(INJECT_ITEM_CHG_CNT1)
dealloc(newmem1)
{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+3419F8

ed8_3_PC.exe+3419D8: 66 42 39 1C 08     - cmp [rax+r9],bx
ed8_3_PC.exe+3419DD: 74 09              - je ed8_3_PC.exe+3419E8
ed8_3_PC.exe+3419DF: FF C1              - inc ecx
ed8_3_PC.exe+3419E1: 41 3B C8           - cmp ecx,r8d
ed8_3_PC.exe+3419E4: 72 EA              - jb ed8_3_PC.exe+3419D0
ed8_3_PC.exe+3419E6: EB 1D              - jmp ed8_3_PC.exe+341A05
ed8_3_PC.exe+3419E8: 48 C1 E2 05        - shl rdx,05
ed8_3_PC.exe+3419EC: 41 0F B7 C6        - movzx eax,r14w
ed8_3_PC.exe+3419F0: 42 0F B7 4C 0A 02  - movzx ecx,word ptr [rdx+r9+02]
ed8_3_PC.exe+3419F6: 2B C8              - sub ecx,eax
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+3419F8: 85 C9              - test ecx,ecx
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+3419FA: 66 44 0F 4F D1     - cmovg r10w,cx
ed8_3_PC.exe+3419FF: 66 46 89 54 0A 02  - mov [rdx+r9+02],r10w
ed8_3_PC.exe+341A05: 40 84 F6           - test sil,sil
ed8_3_PC.exe+341A08: 74 0B              - je ed8_3_PC.exe+341A15
ed8_3_PC.exe+341A0A: 48 8B D7           - mov rdx,rdi
ed8_3_PC.exe+341A0D: 48 8B CD           - mov rcx,rbp
ed8_3_PC.exe+341A10: E8 6B F5 FF FF     - call ed8_3_PC.exe+340F80
ed8_3_PC.exe+341A15: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_3_PC.exe+341A1A: 48 8B 6C 24 38     - mov rbp,[rsp+38]
ed8_3_PC.exe+341A1F: 48 8B 74 24 40     - mov rsi,[rsp+40]
}

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+3410C2

ed8_3_PC.exe+34109F: 90                 - nop
ed8_3_PC.exe+3410A0: 0F 10 01           - movups xmm0,[rcx]
ed8_3_PC.exe+3410A3: 41 0F 11 04 08     - movups [r8+rcx],xmm0
ed8_3_PC.exe+3410A8: 0F 10 49 10        - movups xmm1,[rcx+10]
ed8_3_PC.exe+3410AC: 41 0F 11 4C 08 10  - movups [r8+rcx+10],xmm1
ed8_3_PC.exe+3410B2: 48 8D 49 20        - lea rcx,[rcx+20]
ed8_3_PC.exe+3410B6: 48 83 EA 01        - sub rdx,01
ed8_3_PC.exe+3410BA: 75 E4              - jne ed8_3_PC.exe+3410A0
ed8_3_PC.exe+3410BC: 8B C7              - mov eax,edi
ed8_3_PC.exe+3410BE: 48 C1 E0 05        - shl rax,05
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+3410C2: 42 0F 10 44 35 00  - movups xmm0,[rbp+r14+00]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+3410C8: 0F 11 04 18        - movups [rax+rbx],xmm0
ed8_3_PC.exe+3410CC: 42 0F 10 4C 35 10  - movups xmm1,[rbp+r14+10]
ed8_3_PC.exe+3410D2: 0F 11 4C 18 10     - movups [rax+rbx+10],xmm1
ed8_3_PC.exe+3410D7: 4C 3B CB           - cmp r9,rbx
ed8_3_PC.exe+3410DA: 74 0D              - je ed8_3_PC.exe+3410E9
ed8_3_PC.exe+3410DC: 4D 85 C9           - test r9,r9
ed8_3_PC.exe+3410DF: 74 08              - je ed8_3_PC.exe+3410E9
ed8_3_PC.exe+3410E1: 49 8B C9           - mov rcx,r9
ed8_3_PC.exe+3410E4: E8 67 99 19 00     - call ed8_3_PC.exe+4DAA50
ed8_3_PC.exe+3410E9: 48 89 5C 24 38     - mov [rsp+38],rbx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>175</ID>
              <Description>"大部份ID為日文"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>179</ID>
              <Description>"數量 / Amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_ditem_target</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>180</ID>
              <Description>"上限 / limit"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_ditem_limit</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>43</ID>
              <Description>"Last item id"</Description>
              <DropDownList DisplayValueAsItem="1">0:ティアの薬
---:(Shoes)
500:レザーブーツ
507:ストレガースター
508:ストレガームーン
509:ノマドブーツ
513:クラフトブーツ
514:ノーブルフェザー
515:アクセルブーツ
521:星靴サジテール
522:星靴サジテール
523:星靴ヴェルソー
524:斯托雷加X / ストレガーX
---:(Accessories)
655:ZCFゴーグル
668:携帯格言集・風
678:賭徒咪西 / ギャンブラーみっしぃ
687:小悪魔ドール
691:百變圓球 / カレイドスフィア
692:幻影斗篷 / ミラージュケープ
695:堅守のエンブレム
696:烈攻のエンブレム
697:光輝のエンブレム
698:獅子心銀星章
699:獅子心銀金星章
700:獅子心紅星章
701:獅子心蒼金大星章
---:(結晶迴路)
3300:岩石之刺 / ニードルショット
3308:防禦1
3309:破壊1
3313:岩石之刺R / ニードルショットR
3322:破壊2
3321:防御2
3330:刺藤爪SR / アイヴィネイルSR
3335:大地之癒SR / アースグロウSR
3338:破壊3
3342:鋼星鈴
3343:金剛盾
3344:玄武刃
3345:羅漢珠
3346:不動珠
3349:碧水噴射 / ブルーアセンション
3351:回復術 / ティア
3354:治癒術 / キュリア
3355:復活術 / ティア
3356:聖靈術 / アセラス
3361:破霊の牙
3363:冰晶劍R / クリスタルエッジR
3364:碧水噴射R / ブルーアセンションR
3367:中回復術R / ティアラSR
3368:大回復術R / ティアラルR
3371:聖靈術R / アセラスR
3372:HP2
3374:封魔の刃II
3376:破霊の牙II
3379:治癒
3381:冰晶劍SR / クリスタルエッジSR
3385:中回復術SR / ティアラSR
3390:HP3
3391:魔防3
3395:海星鈴
3396:瀑布
3397:青龍刀 / 青龍刃
3398:仙道珠
3399:氷将珠
3401:猛毒烈焰 / ベノムフレイム
3408:攻擊1
3413:火焰劍R / ファイアボルトR
3421:攻撃2
3422:必殺2
3424:炎傷の刃II
3437:攻撃3
3442:焔星鈴
3443:憤怒
3444:朱雀刃
3445:武神珠
3446:炎帝珠
3449:風之飆塵 / エアリアルダスト
3453:大治癒術 / レキュリア
3460:復仇之劍R / ネメシスアローR
3463:生命之息R / ブレスR
3464:聖靈之息R / ホーリーブレスR
3466:回避2
3467:移動2
3475:復仇之劍SR / ネメシスアローSR
3486:嵐星鈴
3487:革命
3488:白虎刃
3489:風神珠
3490:雷神珠
3498:駆動1
3500:破迅の牙
3502:受難之刃R / カルバリーエッジR
3507:行動力2
3508:駆動2
3515:受難之刃SR / カルバリーエッジSR
3519:時間爆發SR / クロノバーストSR
3520:行動力3
3524:刻界鈴
3525:冥皇
3526:影輪牙
3527:神速珠
3528:魔王珠
3530:破邪之印 / エクスクルセイド
3534:熾天使之環 / セラフィムリング
3538:妨害1
3539:黃金球R / ゴルトスフィアR
3545:省EP2
3546:命中2
3548:妨害2
3562:聖界鈴
3563:覇道
3564:熾天使
3565:日輪牙
3566:天帝珠
3567:七劍珠
3568:銀月之棘 / シルバーソーン
3569:蓋倫保壘 / ガリオンフォート
3571:情報解析 / アナライズ
3572:神聖之力 / セイントフォース
3581:情報解析R / アナライズR
3583:新月之鏡R / クレセントミラーR
3584:EP2
3585:精神2
3588:銀言鈴
3589:月鏡
3590:虎威
3591:龍瞳
3595:情報解析SR / アナライズSR
3596:神聖之力SR / セイントフォースSR
3601:破言の牙III
3602:幽界鈴
3603:玉藻
3605:賢王珠
3606:銀狼珠
9999:未裝備
52685:Error
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_allitem_addr</Address>
              <Offsets>
                <Offset>[i_base_item_off_addr]</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>79</ID>
              <Description>"Last item amount"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_allitem_addr</Address>
              <Offsets>
                <Offset>42</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>40</ID>
          <Description>"如果數量&gt;=2、則設為80 / Set item # to 80, if &gt;=2"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_ITEM_CNT,$process,66 42 83 7C 01 02 00) // should be unique
alloc(newmem,$1000,INJECT_SET_ITEM_CNT)

label(code)
label(return)
label(i_base_item_addrx1)
label(i_base_item_trigger_value)
label(i_base_item_set2_value)

newmem:
  push rax
  mov ax, [i_base_item_trigger_value]
  cmp word ptr [rcx+r8+02],ax
  pop rax
  jb code

  push rax
  mov ax, [i_base_item_set2_value]
  cmp word ptr [rcx+r8+02], ax
  pop rax
  jae code

  push rax
  mov ax, [i_base_item_set2_value]
  mov word ptr [rcx+r8+02], ax
  pop rax

  push r15
  lea r15, [rcx+r8]
  mov [i_base_item_addrx1], r15
  pop r15

code:
  cmp word ptr [rcx+r8+02],00
  jmp return
align 10 cc
  i_base_item_addrx1:
  dq 0
  i_base_item_trigger_value:
  dw 2
  i_base_item_set2_value:
  dw 50


INJECT_SET_ITEM_CNT:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_ITEM_CNT)
registersymbol(i_base_item_addrx1)
registersymbol(i_base_item_trigger_value)
registersymbol(i_base_item_set2_value)

[DISABLE]

INJECT_SET_ITEM_CNT:
  db 66 42 83 7C 01 02 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+21B4A6

ed8_3_PC.exe+21B47F: CC                    - int 3
ed8_3_PC.exe+21B480: 4C 8B 05 59 FF A2 00  - mov r8,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+21B487: 33 C0                 - xor eax,eax
ed8_3_PC.exe+21B489: 41 8B 90 38 66 35 00  - mov edx,[r8+00356638]
ed8_3_PC.exe+21B490: 85 D2                 - test edx,edx
ed8_3_PC.exe+21B492: 74 21                 - je ed8_3_PC.exe+21B4B5
ed8_3_PC.exe+21B494: 4D 8B 80 40 66 35 00  - mov r8,[r8+00356640]
ed8_3_PC.exe+21B49B: 0F 1F 44 00 00        - nop dword ptr [rax+rax+00]
ed8_3_PC.exe+21B4A0: 8B C8                 - mov ecx,eax
ed8_3_PC.exe+21B4A2: 48 C1 E1 05           - shl rcx,05
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+21B4A6: 66 42 83 7C 01 02 00  - cmp word ptr [rcx+r8+02],00
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+21B4AD: 74 06                 - je ed8_3_PC.exe+21B4B5
ed8_3_PC.exe+21B4AF: FF C0                 - inc eax
ed8_3_PC.exe+21B4B1: 3B C2                 - cmp eax,edx
ed8_3_PC.exe+21B4B3: 72 EB                 - jb ed8_3_PC.exe+21B4A0
ed8_3_PC.exe+21B4B5: C3                    - ret
ed8_3_PC.exe+21B4B6: CC                    - int 3
ed8_3_PC.exe+21B4B7: CC                    - int 3
ed8_3_PC.exe+21B4B8: CC                    - int 3
ed8_3_PC.exe+21B4B9: CC                    - int 3
ed8_3_PC.exe+21B4BA: CC                    - int 3
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>181</ID>
              <Description>"數量需 &gt;= / amount most &gt;="</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_item_trigger_value</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>182</ID>
              <Description>"設定為 / set to #"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_base_item_set2_value</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>142</ID>
      <Description>"釣魚快速捲線 / Fast fishing"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FISHING2,$process,F3 0F 58 83 D8 01 00 00) // should be unique
alloc(newmem,$1000,INJECT_FISHING2)

label(code)
label(return)
label(i_base_fishing_addr)
label(is_afish_on)

newmem:
  mov [i_base_fishing_addr], rbx
  //movss xmm15, xmm2
  cmp dword ptr [is_afish_on], 1
  jne code
  vxorps xmm14, xmm14, xmm14
  vucomiss xmm0, xmm14
  jae code
  vmovss xmm14, [vf_f_multi]
  vmulss xmm0, xmm0, xmm14


code:
  //addss xmm2,[rbx+000001D8]
  addss xmm0,[rbx+000001D8]
  jmp return
align 10 cc
  vf_f_multi:
  dd (float)-11
  is_afish_on:
  dd 1
  i_base_fishing_addr:
  dq 0

INJECT_FISHING2:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FISHING2)
registersymbol(i_base_fishing_addr)
registersymbol(is_afish_on)

[DISABLE]

INJECT_FISHING2:
  db F3 0F 58 83 D8 01 00 00

unregistersymbol(*)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+35A67A

ed8_3_PC.exe+35A638: F3 0F 5E 83 FC 01 00 00  - divss xmm0,[rbx+000001FC]
ed8_3_PC.exe+35A640: F3 0F 11 83 00 02 00 00  - movss [rbx+00000200],xmm0
ed8_3_PC.exe+35A648: 48 8B 0D 91 0D 8F 00     - mov rcx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+35A64F: 48 81 C1 A4 1C 00 00     - add rcx,00001CA4
ed8_3_PC.exe+35A656: E8 25 20 DC FF           - call ed8_3_PC.exe+11C680
ed8_3_PC.exe+35A65B: F3 0F 10 0D A1 A8 6B 00  - movss xmm1,[ed8_3_PC.exe+A14F04]
ed8_3_PC.exe+35A663: 48 8B CB                 - mov rcx,rbx
ed8_3_PC.exe+35A666: F3 0F 59 8B D4 01 00 00  - mulss xmm1,[rbx+000001D4]
ed8_3_PC.exe+35A66E: F3 0F 59 C1              - mulss xmm0,xmm1
ed8_3_PC.exe+35A672: F3 0F 10 8B DC 01 00 00  - movss xmm1,[rbx+000001DC]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+35A67A: F3 0F 58 83 D8 01 00 00  - addss xmm0,[rbx+000001D8]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+35A682: F3 0F 5D C8              - minss xmm1,xmm0
ed8_3_PC.exe+35A686: 0F 57 C0                 - xorps xmm0,xmm0
ed8_3_PC.exe+35A689: F3 0F 5F C1              - maxss xmm0,xmm1
ed8_3_PC.exe+35A68D: F3 0F 11 83 D8 01 00 00  - movss [rbx+000001D8],xmm0
ed8_3_PC.exe+35A695: E8 D6 72 FF FF           - call ed8_3_PC.exe+351970
ed8_3_PC.exe+35A69A: F3 0F 10 93 DC 01 00 00  - movss xmm2,[rbx+000001DC]
ed8_3_PC.exe+35A6A2: 0F B7 C7                 - movzx eax,di
ed8_3_PC.exe+35A6A5: F3 0F 10 8B D8 01 00 00  - movss xmm1,[rbx+000001D8]
ed8_3_PC.exe+35A6AD: 0F 28 C2                 - movaps xmm0,xmm2
ed8_3_PC.exe+35A6B0: F3 41 0F 59 C3           - mulss xmm0,xmm11
}

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>178</ID>
          <Description>"啟用? / Enabled?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_afish_on</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>176</ID>
          <Description>"Delta"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_fishing_addr</Address>
          <Offsets>
            <Offset>1D4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>177</ID>
          <Description>"Value"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_fishing_addr</Address>
          <Offsets>
            <Offset>1D8</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>107</ID>
      <Description>"VM遊戲:敵人主將HP為1 / VM Card game: Low enemy master HP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_LOW_ENEMY_HP,$process,44 0F B7 B2 BC 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_LOW_ENEMY_HP)

label(code)
label(return)

newmem:
  mov r14w, [rdx+000002BC]
  cmp r14w, 1
  jbe code
  mov r14w, 1
  mov [rdx+000002BC], r14w

code:
  movzx r14d,word ptr [rdx+000002BC]
  jmp return

INJECT_LOW_ENEMY_HP:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_LOW_ENEMY_HP)

[DISABLE]

INJECT_LOW_ENEMY_HP:
  db 44 0F B7 B2 BC 02 00 00

unregistersymbol(INJECT_LOW_ENEMY_HP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+365952

ed8_3_PC.exe+365922: 33 FF                       - xor edi,edi
ed8_3_PC.exe+365924: 4C 89 B4 24 30 01 00 00     - mov [rsp+00000130],r14
ed8_3_PC.exe+36592C: 4C 2B C9                    - sub r9,rcx
ed8_3_PC.exe+36592F: 44 0F B7 F7                 - movzx r14d,di
ed8_3_PC.exe+365933: 44 8D 47 07                 - lea r8d,[rdi+07]
ed8_3_PC.exe+365937: 66 0F 1F 84 00 00 00 00 00  - nop word ptr [rax+rax+00000000]
ed8_3_PC.exe+365940: 49 8B 14 09                 - mov rdx,[r9+rcx]
ed8_3_PC.exe+365944: 48 8B 82 A8 02 00 00        - mov rax,[rdx+000002A8]
ed8_3_PC.exe+36594B: 66 83 78 02 02              - cmp word ptr [rax+02],02
ed8_3_PC.exe+365950: 75 08                       - jne ed8_3_PC.exe+36595A
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+365952: 44 0F B7 B2 BC 02 00 00     - movzx r14d,word ptr [rdx+000002BC]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+36595A: 48 8B 11                    - mov rdx,[rcx]
ed8_3_PC.exe+36595D: 48 8B 82 A8 02 00 00        - mov rax,[rdx+000002A8]
ed8_3_PC.exe+365964: 66 83 78 02 02              - cmp word ptr [rax+02],02
ed8_3_PC.exe+365969: 75 07                       - jne ed8_3_PC.exe+365972
ed8_3_PC.exe+36596B: 0F B7 BA BC 02 00 00        - movzx edi,word ptr [rdx+000002BC]
ed8_3_PC.exe+365972: 48 83 C1 08                 - add rcx,08
ed8_3_PC.exe+365976: 49 83 E8 01                 - sub r8,01
ed8_3_PC.exe+36597A: 75 C4                       - jne ed8_3_PC.exe+365940
ed8_3_PC.exe+36597C: 0F BF DF                    - movsx ebx,di
ed8_3_PC.exe+36597F: 4C 8D 05 32 63 49 00        - lea r8,[ed8_3_PC.exe+7FBCB8]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>108</ID>
      <Description>"VM遊戲: Mana滿檔 / VM Card game: full mana"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_MANA_FULL,$process,0F BF 83 FC 05 00 00) // should be unique
alloc(newmem,$1000,INJECT_MANA_FULL)

label(code)
label(return)

newmem:
  mov ax, [rbx+000005FA]
  mov [rbx+000005FC], ax

code:
  movsx eax,word ptr [rbx+000005FC]
  jmp return

INJECT_MANA_FULL:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_MANA_FULL)

[DISABLE]

INJECT_MANA_FULL:
  db 0F BF 83 FC 05 00 00

unregistersymbol(INJECT_MANA_FULL)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+37D2EF

ed8_3_PC.exe+37D2BD: 39 BB 48 01 00 00                 - cmp [rbx+00000148],edi
ed8_3_PC.exe+37D2C3: 76 6E                             - jna ed8_3_PC.exe+37D333
ed8_3_PC.exe+37D2C5: 66 66 66 0F 1F 84 00 00 00 00 00  - nop word ptr [rax+rax+00000000]
ed8_3_PC.exe+37D2D0: 48 8B 83 50 01 00 00              - mov rax,[rbx+00000150]
ed8_3_PC.exe+37D2D7: 44 0F B7 C6                       - movzx r8d,si
ed8_3_PC.exe+37D2DB: 4A 8B 14 C0                       - mov rdx,[rax+r8*8]
ed8_3_PC.exe+37D2DF: 48 85 D2                          - test rdx,rdx
ed8_3_PC.exe+37D2E2: 74 41                             - je ed8_3_PC.exe+37D325
ed8_3_PC.exe+37D2E4: 48 8B 82 A8 02 00 00              - mov rax,[rdx+000002A8]
ed8_3_PC.exe+37D2EB: 0F B7 48 14                       - movzx ecx,word ptr [rax+14]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+37D2EF: 0F BF 83 FC 05 00 00              - movsx eax,word ptr [rbx+000005FC]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+37D2F6: 3B C8                             - cmp ecx,eax
ed8_3_PC.exe+37D2F8: 7F 0E                             - jg ed8_3_PC.exe+37D308
ed8_3_PC.exe+37D2FA: 40 38 BB 68 05 00 00              - cmp [rbx+00000568],dil
ed8_3_PC.exe+37D301: 74 05                             - je ed8_3_PC.exe+37D308
ed8_3_PC.exe+37D303: 0F B7 C5                          - movzx eax,bp
ed8_3_PC.exe+37D306: EB 02                             - jmp ed8_3_PC.exe+37D30A
ed8_3_PC.exe+37D308: 8B C7                             - mov eax,edi
ed8_3_PC.exe+37D30A: 66 89 82 DE 02 00 00              - mov [rdx+000002DE],ax
ed8_3_PC.exe+37D311: 0F 28 CE                          - movaps xmm1,xmm6
ed8_3_PC.exe+37D314: 48 8B 83 50 01 00 00              - mov rax,[rbx+00000150]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>170</ID>
      <Description>"取得最後裝備的物品ID / Selected equipped item ID"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version: 
  Date   : 2024-07-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SELED_EQUIP,$process,0F B7 84 50 F8 96 35 00) // should be unique
alloc(newmem,$1000,INJECT_SELED_EQUIP)

label(code)
label(return)
label(i_seled_item_addr)

newmem:
  push r15
  lea r15, [rax+rdx*2+003596F8]
  mov [i_seled_item_addr], r15
  pop r15

code:
  movzx eax,word ptr [rax+rdx*2+003596F8]
  jmp return
align 10 cc
  i_seled_item_addr:
  dq 0


INJECT_SELED_EQUIP:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SELED_EQUIP)
registersymbol(i_seled_item_addr)

[DISABLE]

INJECT_SELED_EQUIP:
  db 0F B7 84 50 F8 96 35 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+3397E3

ed8_3_PC.exe+3397BF: CC                       - int 3
ed8_3_PC.exe+3397C0: 66 83 FA 30              - cmp dx,30
ed8_3_PC.exe+3397C4: 73 26                    - jae ed8_3_PC.exe+3397EC
ed8_3_PC.exe+3397C6: 66 41 83 F8 0A           - cmp r8w,0A
ed8_3_PC.exe+3397CB: 73 1F                    - jae ed8_3_PC.exe+3397EC
ed8_3_PC.exe+3397CD: 0F B7 C2                 - movzx eax,dx
ed8_3_PC.exe+3397D0: 48 8D 0C 80              - lea rcx,[rax+rax*4]
ed8_3_PC.exe+3397D4: 41 0F B7 C0              - movzx eax,r8w
ed8_3_PC.exe+3397D8: 48 8D 14 48              - lea rdx,[rax+rcx*2]
ed8_3_PC.exe+3397DC: 48 8B 05 FD 1B 91 00     - mov rax,[ed8_3_PC.exe+C4B3E0]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+3397E3: 0F B7 84 50 F8 96 35 00  - movzx eax,word ptr [rax+rdx*2+003596F8]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+3397EB: C3                       - ret
ed8_3_PC.exe+3397EC: B8 0F 27 00 00           - mov eax,0000270F
ed8_3_PC.exe+3397F1: C3                       - ret
ed8_3_PC.exe+3397F2: CC                       - int 3
ed8_3_PC.exe+3397F3: CC                       - int 3
ed8_3_PC.exe+3397F4: CC                       - int 3
ed8_3_PC.exe+3397F5: CC                       - int 3
ed8_3_PC.exe+3397F6: CC                       - int 3
ed8_3_PC.exe+3397F7: CC                       - int 3
ed8_3_PC.exe+3397F8: CC                       - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>171</ID>
          <Description>"Item ID"</Description>
          <DropDownListLink>Last item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_seled_item_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>158</ID>
      <Description>"取得裝備的迴路 / Get equipped Quartz"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version:
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_CUR_EQUIP_QUARTZX,$process,0F B7 84 50 D8 AA 35 00) // should be unique
alloc(newmem,$1000,INJECT_GET_CUR_EQUIP_QUARTZX)

label(code)
label(return)
label(i_base_eqp_quartz_addr)

newmem:
  cmp ecx, 0
  jne code

  push r15
  lea r15, [rax+rdx*2+0035AAD8]
  mov [i_base_eqp_quartz_addr], r15
  pop r15

code:
  //movzx eax,word ptr [rax+rdx*2]
  movzx eax,word ptr [rax+rdx*2+0035AAD8]
  ret 
  jmp return
align 10 cc
  i_base_eqp_quartz_addr:
  dq 0

INJECT_GET_CUR_EQUIP_QUARTZX:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GET_CUR_EQUIP_QUARTZX)
registersymbol(i_base_eqp_quartz_addr)

[DISABLE]

INJECT_GET_CUR_EQUIP_QUARTZX:
  db 0F B7 84 50 D8 AA 35 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+339C42

ed8_3_PC.exe+339C1F: CC                       - int 3
ed8_3_PC.exe+339C20: 66 83 FA 30              - cmp dx,30
ed8_3_PC.exe+339C24: 73 25                    - jae ed8_3_PC.exe+339C4B
ed8_3_PC.exe+339C26: 66 41 83 F8 09           - cmp r8w,09
ed8_3_PC.exe+339C2B: 73 1E                    - jae ed8_3_PC.exe+339C4B
ed8_3_PC.exe+339C2D: 0F B7 C2                 - movzx eax,dx
ed8_3_PC.exe+339C30: 41 0F B7 C8              - movzx ecx,r8w
ed8_3_PC.exe+339C34: 48 8D 14 C0              - lea rdx,[rax+rax*8]
ed8_3_PC.exe+339C38: 48 8B 05 A1 17 91 00     - mov rax,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+339C3F: 48 03 D1                 - add rdx,rcx
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+339C42: 0F B7 84 50 D8 AA 35 00  - movzx eax,word ptr [rax+rdx*2+0035AAD8]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+339C4A: C3                       - ret
ed8_3_PC.exe+339C4B: B8 0F 27 00 00           - mov eax,0000270F
ed8_3_PC.exe+339C50: C3                       - ret
ed8_3_PC.exe+339C51: CC                       - int 3
ed8_3_PC.exe+339C52: CC                       - int 3
ed8_3_PC.exe+339C53: CC                       - int 3
ed8_3_PC.exe+339C54: CC                       - int 3
ed8_3_PC.exe+339C55: CC                       - int 3
ed8_3_PC.exe+339C56: CC                       - int 3
ed8_3_PC.exe+339C57: CC                       - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>168</ID>
          <Description>"Usage: menu -&gt; Orbment"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>174</ID>
          <Description>"部份ID為日文"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>159</ID>
          <Description>"Master Quartz #1"</Description>
          <DropDownList DisplayValueAsItem="1">3200:火神 / カグツチ
3201:未來 / スクルド
3202:天狼 / シリウス
3203:歌姬 / ディーヴァ
3204:聖典 / カノン
3205:王者 / レグルス
3206:西風 / ゼファー
3207:百變 / カレイド
3208:精皇 / オベロン
3209:永恆 / メビウス
3210:睿智 / ソフィア
3211:守護 / キーパー
3212:精后 / ティタニア
3213:幻朧 / オボロ
3214:靈貓 / カッツェ
3215:處女 / ヴァルゴ
3216:天蠍 / スコルピオ
3217:適能
3218:暴風
3219:神盾
3220:雷神 / トール
3221:英傑 / ベオウルフ
3222:運轉 / ゴーズ
3223:寶盒
3224:紋章 / エンブレム
3225:智者
3226:騎兵
3227:神矛
3228:王權ex / レガリアex
3229:靈殿ex / ヴァルハラex
3240:百變ex / カレイドex
3241:永恆ex / メビウスex
3242:幻朧ex / オボロex
3243:靈貓ex / カッツェex
3244:英傑ex / ベオウルフex
3245:紋章ex / エンブレムex
3246:騎兵ex
3247:神盾ex
3300:岩石之刺 / ニードルショット
3308:防禦1
3309:破壊1
3313:岩石之刺R / ニードルショットR
3322:破壊2
3321:防御2
3330:刺藤爪SR / アイヴィネイルSR
3335:大地之癒SR / アースグロウSR
3338:破壊3
3342:鋼星鈴
3343:金剛盾
3344:玄武刃
3345:羅漢珠
3346:不動珠
3348:冰晶劍 / クリスタルエッジ
3349:碧水噴射 / ブルーアセンション
3351:回復術 / ティア
3353:大回復術 / ティアラル
3354:治癒術 / キュリア
3355:復活術 / ティア
3356:聖靈術 / アセラス
3361:破霊の牙
3363:冰晶劍R / クリスタルエッジR
3364:碧水噴射R / ブルーアセンションR
3367:中回復術R / ティアラSR
3368:大回復術R / ティアラルR
3369:治癒術R / キュリアR
3371:聖靈術R / アセラスR
3372:HP2
3373:魔防2
3374:封魔の刃II
3376:破霊の牙II
3379:治癒
3381:冰晶劍SR / クリスタルエッジSR
3385:中回復術SR / ティアラSR
3390:HP3
3391:魔防3
3395:海星鈴
3396:瀑布
3397:青龍刀 / 青龍刃
3398:仙道珠
3399:氷将珠
3401:猛毒烈焰 / ベノムフレイム
3402:閃焰蝶
3403:力天使加農
3408:攻擊1
3413:火焰劍R / ファイアボルトR
3421:攻撃2
3422:必殺2
3424:炎傷の刃II
3427:練氣
3437:攻撃3
3438:必殺3
3442:焔星鈴
3443:憤怒
3444:朱雀刃
3445:武神珠
3446:炎帝珠
3449:風之飆塵 / エアリアルダスト
3450:神罰怒雷
3452:聖靈之息 / ホーリーブレス
3453:大治癒術 / レキュリア
3460:復仇之劍R / ネメシスアローR
3463:生命之息R / ブレスR
3464:聖靈之息R / ホーリーブレスR
3466:回避2
3467:移動2
3475:復仇之劍SR / ネメシスアローSR
3479:聖靈之息SR / ホーリーブレスSR
3480:大治癒術SR / レキュリアSR
3481:回避3
3486:嵐星鈴
3487:革命
3488:白虎刃
3489:風神珠
3490:雷神珠
3496:時間爆發 / クロノバースト
3498:駆動1
3500:破迅の牙
3502:受難之刃R / カルバリーエッジR
3507:行動力2
3508:駆動2
3515:受難之刃SR / カルバリーエッジSR
3519:時間爆發SR / クロノバーストSR
3520:行動力3
3521:駆動3
3524:刻界鈴
3525:冥皇
3526:影輪牙
3527:神速珠
3528:魔王珠
3530:破邪之印 / エクスクルセイド
3533:閃耀天啟
3534:熾天使之環 / セラフィムリング
3538:妨害1
3539:黃金球R / ゴルトスフィアR
3545:省EP2
3546:命中2
3548:妨害2
3551:幸運
3559:命中3
3561:妨害3
3562:聖界鈴
3563:覇道
3564:熾天使
3565:日輪牙
3566:天帝珠
3567:七劍珠
3568:銀月之棘 / シルバーソーン
3569:蓋倫保壘 / ガリオンフォート
3571:情報解析 / アナライズ
3572:神聖之力 / セイントフォース
3581:情報解析R / アナライズR
3583:新月之鏡R / クレセントミラーR
3584:EP2
3585:精神2
3588:銀言鈴
3589:月鏡
3590:虎威
3591:龍瞳
3592:銀月之棘SR / シルバーソーンSR
3593:蓋倫保壘SR / ガリオンフォートSR
3595:情報解析SR / アナライズSR
3596:神聖之力SR / セイントフォースSR
3599:精神3
3601:破言の牙III
3602:幽界鈴
3603:玉藻
3604:月輪牙
3605:賢王珠
3606:銀狼珠
9999:未裝備
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>160</ID>
          <Description>"Master Quartz #2"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>167</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>166</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>165</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>164</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>163</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>162</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>6</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>161</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Master Quartz #1</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqp_quartz_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>57</ID>
      <Description>"戰歷 / Get battle records"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version: 
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_BATTLE_REC,$process,8B 8C 88 DC 2B 36 00 89 4C 24 30 48 8D 4D 10 4C 89 7C 24 28 4C 89 64 24 20 E8 F2) // should be unique
alloc(newmem,$1000,INJECT_GET_BATTLE_REC)

label(code)
label(return)
label(i_base_bat_rec_addr)

newmem:
  push r15
  lea r15, [rax+rcx*4+00362BDC]
  cmp [i_base_bat_rec_addr], r15
  jbe endp

  mov [i_base_bat_rec_addr], r15

endp:
  pop r15

code:
  //mov ecx,[rax+rcx*4+00362B84]
  mov ecx,[rax+rcx*4+00362BDC]
  jmp return
align 10 cc
  i_base_bat_rec_addr:
  dq 7FFFFFFFFFFFFFFF

INJECT_GET_BATTLE_REC:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_BATTLE_REC)
registersymbol(i_base_bat_rec_addr)

[DISABLE]

INJECT_GET_BATTLE_REC:
  db 8B 8C 88 DC 2B 36 00

unregistersymbol(*)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+462F40

ed8_3_PC.exe+462F0A: 48 8D 45 D0                       - lea rax,[rbp-30]
ed8_3_PC.exe+462F0E: 48 89 44 24 20                    - mov [rsp+20],rax
ed8_3_PC.exe+462F13: 48 8B 0D C6 84 7E 00              - mov rcx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+462F1A: 0F 28 D7                          - movaps xmm2,xmm7
ed8_3_PC.exe+462F1D: E8 EE 62 EA FF                    - call ed8_3_PC.exe+309210
ed8_3_PC.exe+462F22: 48 8B 05 B7 84 7E 00              - mov rax,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+462F29: 4C 8D 0D 7C D0 3B 00              - lea r9,[ed8_3_PC.exe+81FFAC]
ed8_3_PC.exe+462F30: 48 0F BF CB                       - movsx rcx,bx
ed8_3_PC.exe+462F34: 4C 8D 05 7D D0 3B 00              - lea r8,[ed8_3_PC.exe+81FFB8]
ed8_3_PC.exe+462F3B: BA 80 00 00 00                    - mov edx,00000080
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+462F40: 8B 8C 88 DC 2B 36 00              - mov ecx,[rax+rcx*4+00362BDC]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+462F47: 89 4C 24 30                       - mov [rsp+30],ecx
ed8_3_PC.exe+462F4B: 48 8D 4D 10                       - lea rcx,[rbp+10]
ed8_3_PC.exe+462F4F: 4C 89 7C 24 28                    - mov [rsp+28],r15
ed8_3_PC.exe+462F54: 4C 89 64 24 20                    - mov [rsp+20],r12
ed8_3_PC.exe+462F59: E8 F2 92 CB FF                    - call ed8_3_PC.exe+11C250
ed8_3_PC.exe+462F5E: 0F 28 0D 1B F7 38 00              - movaps xmm1,[ed8_3_PC.exe+7F2680]
ed8_3_PC.exe+462F65: 48 8D 45 D0                       - lea rax,[rbp-30]
ed8_3_PC.exe+462F69: 48 8B 0D 70 84 7E 00              - mov rcx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+462F70: 4C 8D 4D 10                       - lea r9,[rbp+10]
ed8_3_PC.exe+462F74: C7 84 24 C0 00 00 00 03 00 00 00  - mov [rsp+000000C0],00000003
}

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>75</ID>
          <Description>"Usage: Main menu -&gt; 戰鬥"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>58</ID>
          <Description>"累計戰鬥次數 / Number of Battles"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>59</ID>
          <Description>"戰鬥勝利次數 / Battles Win"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>60</ID>
          <Description>"無法戰鬥次數 / Battles lose"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>61</ID>
          <Description>"戰門撤退次數 / Battles retreat"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>62</ID>
          <Description>"擊敗敵人次數 / Enemies killed"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>63</ID>
          <Description>"先制攻擊發生次數 / Single advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>64</ID>
          <Description>"優勢攻擊發生次數 / Double advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>65</ID>
          <Description>"奇襲攻擊發生次數 / Triple advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>66</ID>
          <Description>"背後遇襲發生次數 / Back attacks"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>20</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>67</ID>
          <Description>"重試次數 / Retry"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>24</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>68</ID>
          <Description>"S戰技發動次數 / S-Craft"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>69</ID>
          <Description>"破防發動次數 / Break"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>2C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>70</ID>
          <Description>"追擊發動次數 / Follow attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>30</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>71</ID>
          <Description>"連續猛攻發動次數 / Rush"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>72</ID>
          <Description>"爆裂猛攻發動次數 / Burst"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>73</ID>
          <Description>"勇氣指令發動次數 / Brave order"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>3C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>74</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bat_rec_addr</Address>
          <Offsets>
            <Offset>40</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>81</ID>
      <Description>"綜合成績 / Get main sheet stats"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version: 
  Date   : 2024-07-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MAIN_STATS,$process,8B 84 81 94 32 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_MAIN_STATS)

label(code)
label(return)
label(i_base_m_stat_addr)
label(is_keep_kizuna)

newmem:
  mov [i_base_m_stat_addr], rcx
  cmp dword ptr [is_keep_kizuna], 1
  jne code

  cmp rax, A
  jne code

  push r15
  lea r15, [rcx+rax*4+00003294]
  cmp word ptr [r15], 1
  jae endp
  mov word ptr [r15], 1

endp:
  pop r15


code:
  //mov eax,[rcx+rax*4+0000328C]
  mov eax,[rcx+rax*4+00003294]
  jmp return
align 10 cc
  i_base_m_stat_addr:
  dq 0
  is_keep_kizuna:
  dd 1

INJECT_GET_MAIN_STATS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_MAIN_STATS)
registersymbol(i_base_m_stat_addr)
registersymbol(is_keep_kizuna)

[DISABLE]

INJECT_GET_MAIN_STATS:
  db 8B 84 81 94 32 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+30FE7A

ed8_3_PC.exe+30FE69: CC                    - int 3
ed8_3_PC.exe+30FE6A: CC                    - int 3
ed8_3_PC.exe+30FE6B: CC                    - int 3
ed8_3_PC.exe+30FE6C: CC                    - int 3
ed8_3_PC.exe+30FE6D: CC                    - int 3
ed8_3_PC.exe+30FE6E: CC                    - int 3
ed8_3_PC.exe+30FE6F: CC                    - int 3
ed8_3_PC.exe+30FE70: 81 FA 00 01 00 00     - cmp edx,00000100
ed8_3_PC.exe+30FE76: 73 0A                 - jae ed8_3_PC.exe+30FE82
ed8_3_PC.exe+30FE78: 8B C2                 - mov eax,edx
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+30FE7A: 8B 84 81 94 32 00 00  - mov eax,[rcx+rax*4+00003294]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+30FE81: C3                    - ret
ed8_3_PC.exe+30FE82: 33 C0                 - xor eax,eax
ed8_3_PC.exe+30FE84: C3                    - ret
ed8_3_PC.exe+30FE85: CC                    - int 3
ed8_3_PC.exe+30FE86: CC                    - int 3
ed8_3_PC.exe+30FE87: CC                    - int 3
ed8_3_PC.exe+30FE88: CC                    - int 3
ed8_3_PC.exe+30FE89: CC                    - int 3
ed8_3_PC.exe+30FE8A: CC                    - int 3
ed8_3_PC.exe+30FE8B: CC                    - int 3
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>95</ID>
          <Description>"Usage: "Main"選單 -&gt; 綜合成績 / main menu-&gt;main"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>113</ID>
          <Description>"保持最小絆點數? / keep min. bonding pt?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_keep_kizuna</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>82</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32A4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>83</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32A8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>84</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32AC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>85</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32B8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>87</ID>
          <Description>"絆點數 / bonding pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32BC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>88</ID>
          <Description>"絆點數上限 / bonding pt. limit"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32C0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>112</ID>
          <Description>"教官階級 / Drill Instructor rank"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32CC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>89</ID>
          <Description>"總計AP / Ap total"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32D0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>90</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32D8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>91</ID>
          <Description>"分校充實度 / branch school enrichment"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32DC</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>92</ID>
          <Description>"學院等級 / academic level"</Description>
          <DropDownList DisplayValueAsItem="1">0:無名
1:新進
2:中堅
3:一流
4:名門
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32E0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>93</ID>
          <Description>"委託達成数 / number of fulfilled assignments"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>32E4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>94</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_m_stat_addr</Address>
          <Offsets>
            <Offset>3334</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>186</ID>
      <Description>"取得變更服裝的部份3D座標 / Get some Costume coords"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version: 
  Date   : 2024-07-17
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_COSTI_POS,$process,F3 0F 10 9F B0 02 00 00 0F 28 C6) // should be unique
alloc(newmem,$1000,INJECT_GET_COSTI_POS)

label(code)
label(return)
label(i_base_cost_addr)

newmem:
  mov [i_base_cost_addr], rdi

code:
  movss xmm3,[rdi+000002B0]
  jmp return
align 10 cc
  i_base_cost_addr:
  dq 0

INJECT_GET_COSTI_POS:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GET_COSTI_POS)
registersymbol(i_base_cost_addr)

[DISABLE]

INJECT_GET_COSTI_POS:
  db F3 0F 10 9F B0 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+47978D

ed8_3_PC.exe+47974D: EB 10                       - jmp ed8_3_PC.exe+47975F
ed8_3_PC.exe+47974F: F3 0F 10 15 E5 F5 37 00     - movss xmm2,[ed8_3_PC.exe+7F8D3C]
ed8_3_PC.exe+479757: F3 0F 10 35 3D 4E 37 00     - movss xmm6,[ed8_3_PC.exe+7EE59C]
ed8_3_PC.exe+47975F: 80 BF C5 02 00 00 01        - cmp byte ptr [rdi+000002C5],01
ed8_3_PC.exe+479766: 0F 57 C0                    - xorps xmm0,xmm0
ed8_3_PC.exe+479769: F3 0F 59 B7 B8 02 00 00     - mulss xmm6,[rdi+000002B8]
ed8_3_PC.exe+479771: 48 8B 1D 68 1C 7D 00        - mov rbx,[ed8_3_PC.exe+C4B3E0]
ed8_3_PC.exe+479778: F3 0F 10 BE E8 1F 00 00     - movss xmm7,[rsi+00001FE8]
ed8_3_PC.exe+479780: F3 44 0F 10 05 73 83 37 00  - movss xmm8,[ed8_3_PC.exe+7F1AFC]
ed8_3_PC.exe+479789: F3 0F 58 F8                 - addss xmm7,xmm0
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+47978D: F3 0F 10 9F B0 02 00 00     - movss xmm3,[rdi+000002B0]
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+479795: 0F 28 C6                    - movaps xmm0,xmm6
ed8_3_PC.exe+479798: F3 0F 58 05 E0 D8 37 00     - addss xmm0,[ed8_3_PC.exe+7F7080]
ed8_3_PC.exe+4797A0: F3 0F 10 A7 B4 02 00 00     - movss xmm4,[rdi+000002B4]
ed8_3_PC.exe+4797A8: F3 0F 58 96 68 03 00 00     - addss xmm2,[rsi+00000368]
ed8_3_PC.exe+4797B0: F3 0F 59 1D 38 5D 37 00     - mulss xmm3,[ed8_3_PC.exe+7EF4F0]
ed8_3_PC.exe+4797B8: F3 0F 59 25 30 5D 37 00     - mulss xmm4,[ed8_3_PC.exe+7EF4F0]
ed8_3_PC.exe+4797C0: F3 44 0F 5D C0              - minss xmm8,xmm0
ed8_3_PC.exe+4797C5: F3 0F 10 AF BC 02 00 00     - movss xmm5,[rdi+000002BC]
ed8_3_PC.exe+4797CD: 0F 28 C6                    - movaps xmm0,xmm6
ed8_3_PC.exe+4797D0: F3 0F 5C 05 A8 D8 37 00     - subss xmm0,[ed8_3_PC.exe+7F7080]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>192</ID>
          <Description>"Limit break"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_3_PC.exe
  Version: 
  Date   : 2024-07-18
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_COST_LIMIT_BREAK,$process,F3 41 0F 5D F5) // should be unique
alloc(newmem,$1000,INJECT_COST_LIMIT_BREAK)

label(code)
label(return)

newmem:
  vmovss xmm10, [vf_m90]
  vmovss xmm13, [vf_90]

code:
  minss xmm6,xmm13
  jmp return
align 10 cc
  vf_m90:
  dd (float)-89
  vf_90:
  dd (float)89


INJECT_COST_LIMIT_BREAK:
  jmp newmem
return:
registersymbol(INJECT_COST_LIMIT_BREAK)

[DISABLE]

INJECT_COST_LIMIT_BREAK:
  db F3 41 0F 5D F5

unregistersymbol(INJECT_COST_LIMIT_BREAK)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_3_PC.exe+21EC42

ed8_3_PC.exe+21EC08: F3 0F 59 C6                    - mulss xmm0,xmm6
ed8_3_PC.exe+21EC0C: F3 0F 58 C8                    - addss xmm1,xmm0
ed8_3_PC.exe+21EC10: 0F 28 C1                       - movaps xmm0,xmm1
ed8_3_PC.exe+21EC13: E8 F5 39 53 00                 - call ed8_3_PC.exe+75260D
ed8_3_PC.exe+21EC18: 0F 2F 05 C5 08 5D 00           - comiss xmm0,[ed8_3_PC.exe+7EF4E4]
ed8_3_PC.exe+21EC1F: 76 78                          - jna ed8_3_PC.exe+21EC99
ed8_3_PC.exe+21EC21: F3 0F 59 B4 24 18 01 00 00     - mulss xmm6,[rsp+00000118]
ed8_3_PC.exe+21EC2A: F3 0F 10 8B C4 03 00 00        - movss xmm1,[rbx+000003C4]
ed8_3_PC.exe+21EC32: F3 0F 59 35 B6 50 5E 00        - mulss xmm6,[ed8_3_PC.exe+803CF0]
ed8_3_PC.exe+21EC3A: F3 0F 58 B3 C0 03 00 00        - addss xmm6,[rbx+000003C0]
// ---------- INJECTING HERE ----------
ed8_3_PC.exe+21EC42: F3 41 0F 5D F5                 - minss xmm6,xmm13
// ---------- DONE INJECTING  ----------
ed8_3_PC.exe+21EC47: F3 44 0F 5F D6                 - maxss xmm10,xmm6
ed8_3_PC.exe+21EC4C: F3 44 0F 11 93 C0 03 00 00     - movss [rbx+000003C0],xmm10
ed8_3_PC.exe+21EC55: F3 44 0F 10 94 24 18 01 00 00  - movss xmm10,[rsp+00000118]
ed8_3_PC.exe+21EC5F: F3 41 0F 59 FA                 - mulss xmm7,xmm10
ed8_3_PC.exe+21EC64: F3 0F 59 3D 84 50 5E 00        - mulss xmm7,[ed8_3_PC.exe+803CF0]
ed8_3_PC.exe+21EC6C: F3 0F 5C CF                    - subss xmm1,xmm7
ed8_3_PC.exe+21EC70: F3 41 0F 5D CC                 - minss xmm1,xmm12
ed8_3_PC.exe+21EC75: F3 44 0F 5F C9                 - maxss xmm9,xmm1
ed8_3_PC.exe+21EC7A: 41 0F 28 C1                    - movaps xmm0,xmm9
ed8_3_PC.exe+21EC7E: F3 44 0F 11 8B C4 03 00 00     - movss [rbx+000003C4],xmm9
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>187</ID>
          <Description>"X-Angle"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_cost_addr</Address>
          <Offsets>
            <Offset>2B0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>188</ID>
          <Description>"Y-Angle"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_cost_addr</Address>
          <Offsets>
            <Offset>2B4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>189</ID>
          <Description>"Scale"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_cost_addr</Address>
          <Offsets>
            <Offset>2B8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>190</ID>
          <Description>"Y-Pos"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_cost_addr</Address>
          <Offsets>
            <Offset>2C0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>30</ID>
      <Description>"英雄傳說 閃之軌跡III / THE LEGEND OF HEROES: SEN NO KISEKI III  /  https://opencheattables.com  /  CE 7.5+"</Description>
      <Options moHideChildren="1"/>
      <Color>009100</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>6</ID>
          <Description>"https://kamikouryaku.net/sennokiseki3/"</Description>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>AddressList.Header.OnSectionClick = nil

</LuaScript>
</CheatTable>
