<?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>"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()

battle_array = {32,180,221,209,175,171,169,182,140,148,244,249,185        ,149,196}


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

battle_array_close = {294,243,196,149,    180,221,209,175,171,169,182,140,148,244,249,185,272,285,     162,198,224,252,32 }

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>180</ID>
      <Description>"Map: inf. Charge"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_CHARGE,$process,66 39 88 FC A5 9A 00) // should be unique
alloc(newmem,$1000,INJECT_INF_CHARGE)

label(code)
label(return)

newmem:
  mov [rax+009AA5FC],cx

code:
  cmp [rax+009AA5FC],cx
  jmp return

INJECT_INF_CHARGE:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_CHARGE)

[DISABLE]

INJECT_INF_CHARGE:
  db 66 39 88 FC A5 9A 00

unregistersymbol(INJECT_INF_CHARGE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+2D6440

ed8_4_PC_JP.exe+2D6415: 48 8D 45 C7              - lea rax,[rbp-39]
ed8_4_PC_JP.exe+2D6419: C6 44 24 30 00           - mov byte ptr [rsp+30],00
ed8_4_PC_JP.exe+2D641E: 66 89 7C 24 28           - mov [rsp+28],di
ed8_4_PC_JP.exe+2D6423: 48 89 44 24 20           - mov [rsp+20],rax
ed8_4_PC_JP.exe+2D6428: E8 B3 76 00 00           - call ed8_4_PC_JP.exe+2DDAE0
ed8_4_PC_JP.exe+2D642D: FF C3                    - inc ebx
ed8_4_PC_JP.exe+2D642F: 83 FB 09                 - cmp ebx,09
ed8_4_PC_JP.exe+2D6432: 7C 8C                    - jl ed8_4_PC_JP.exe+2D63C0
ed8_4_PC_JP.exe+2D6434: 49 8B 86 18 0A 00 00     - mov rax,[r14+00000A18]
ed8_4_PC_JP.exe+2D643B: B9 C8 00 00 00           - mov ecx,000000C8
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+2D6440: 66 39 88 FC A5 9A 00     - cmp [rax+009AA5FC],cx
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+2D6447: 74 78                    - je ed8_4_PC_JP.exe+2D64C1
ed8_4_PC_JP.exe+2D6449: 66 44 89 7D 07           - mov [rbp+07],r15w
ed8_4_PC_JP.exe+2D644E: 41 8B DF                 - mov ebx,r15d
ed8_4_PC_JP.exe+2D6451: 48 C7 45 0B 00 00 00 00  - mov qword ptr [rbp+0B],00000000
ed8_4_PC_JP.exe+2D6459: 44 89 7D 13              - mov [rbp+13],r15d
ed8_4_PC_JP.exe+2D645D: 0F 1F 00                 - nop dword ptr [rax]
ed8_4_PC_JP.exe+2D6460: 49 8B 8E 18 0A 00 00     - mov rcx,[r14+00000A18]
ed8_4_PC_JP.exe+2D6467: 48 8D 45 07              - lea rax,[rbp+07]
ed8_4_PC_JP.exe+2D646B: 48 81 C1 20 A5 9A 00     - add rcx,009AA520
ed8_4_PC_JP.exe+2D6472: 4C 89 7C 24 28           - mov [rsp+28],r15
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>221</ID>
      <Description>"Battle: Break multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BREAK_MULTI,$process,2B C7 3B C1 0F 4C C8 33 C0 85 C9 0F 48 C8 89 8B DC 03 00 00 48 8B CB) // should be unique
alloc(newmem,$1000,INJECT_BREAK_MULTI)

label(code)
label(return)
label(vf_break_multi)

newmem:
  vxorps xmm13, xmm13, xmm13
  vxorps xmm15, xmm15, xmm15

  vcvtsi2ss xmm15, xmm15, edi
  vmovss xmm14, [vf_break_multi]
  vcvtsi2ss xmm13, xmm13, eax
  vmulss xmm15, xmm15, xmm14
  vucomiss xmm15, xmm13
  jbe @F

  movups xmm15, xmm13

@@:
  vcvtss2si edi, xmm15

code:
  sub eax,edi
  cmp eax,ecx
  cmovl ecx,eax
  jmp return
align 10 cc
  vf_break_multi:
  dd (float)1.81

INJECT_BREAK_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BREAK_MULTI)
registersymbol(vf_break_multi)

[DISABLE]

INJECT_BREAK_MULTI:
  db 2B C7 3B C1 0F 4C C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+1154B3

ed8_4_PC_JP.exe+11548E: E8 ED 6C 04 00     - call ed8_4_PC_JP.exe+15C180
ed8_4_PC_JP.exe+115493: 48 85 C0           - test rax,rax
ed8_4_PC_JP.exe+115496: 74 0F              - je ed8_4_PC_JP.exe+1154A7
ed8_4_PC_JP.exe+115498: 45 33 C0           - xor r8d,r8d
ed8_4_PC_JP.exe+11549B: 8B D7              - mov edx,edi
ed8_4_PC_JP.exe+11549D: 48 8B C8           - mov rcx,rax
ed8_4_PC_JP.exe+1154A0: E8 5B D1 FF FF     - call ed8_4_PC_JP.exe+112600
ed8_4_PC_JP.exe+1154A5: EB 20              - jmp ed8_4_PC_JP.exe+1154C7
ed8_4_PC_JP.exe+1154A7: 8B 83 DC 03 00 00  - mov eax,[rbx+000003DC]
ed8_4_PC_JP.exe+1154AD: 8B 8B E0 03 00 00  - mov ecx,[rbx+000003E0]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+1154B3: 2B C7              - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+1154B5: 3B C1              - cmp eax,ecx
ed8_4_PC_JP.exe+1154B7: 0F 4C C8           - cmovl ecx,eax
ed8_4_PC_JP.exe+1154BA: 33 C0              - xor eax,eax
ed8_4_PC_JP.exe+1154BC: 85 C9              - test ecx,ecx
ed8_4_PC_JP.exe+1154BE: 0F 48 C8           - cmovs ecx,eax
ed8_4_PC_JP.exe+1154C1: 89 8B DC 03 00 00  - mov [rbx+000003DC],ecx
ed8_4_PC_JP.exe+1154C7: 48 8B CB           - mov rcx,rbx
ed8_4_PC_JP.exe+1154CA: E8 81 14 00 00     - call ed8_4_PC_JP.exe+116950
ed8_4_PC_JP.exe+1154CF: 83 78 30 00        - cmp dword ptr [rax+30],00
ed8_4_PC_JP.exe+1154D3: 75 23              - jne ed8_4_PC_JP.exe+1154F8
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>222</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_break_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>272</ID>
      <Description>"Set link EXP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-09
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_LINK_XP,$process,48 03 C2 8B 04 81) // should be unique
alloc(newmem,$1000,INJECT_SET_LINK_XP)

label(code)
label(return)
label(i_min_link_exp)

newmem:

code:
  add rax,rdx
  mov eax,[rcx+rax*4]

  // code start
  test eax, eax
  jz return

  cmp eax, [i_min_link_exp]
  jae return

  mov eax, [i_min_link_exp]
  mov [rcx+rax*4], eax
  // code end


  jmp return
align 10 cc
  i_min_link_exp:
  dd #1200

INJECT_SET_LINK_XP:
  jmp newmem
  nop
return:
registersymbol(INJECT_SET_LINK_XP)
registersymbol(i_min_link_exp)

[DISABLE]

INJECT_SET_LINK_XP:
  db 48 03 C2 8B 04 81

unregistersymbol(INJECT_SET_LINK_XP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+46BCEC

ed8_4_PC_JP.exe+46BCCE: CC              - int 3 
ed8_4_PC_JP.exe+46BCCF: CC              - int 3 
ed8_4_PC_JP.exe+46BCD0: 66 83 FA 40     - cmp dx,40
ed8_4_PC_JP.exe+46BCD4: 73 1D           - jae ed8_4_PC_JP.exe+46BCF3
ed8_4_PC_JP.exe+46BCD6: 66 41 83 F8 40  - cmp r8w,40
ed8_4_PC_JP.exe+46BCDB: 73 16           - jae ed8_4_PC_JP.exe+46BCF3
ed8_4_PC_JP.exe+46BCDD: 0F B7 C2        - movzx eax,dx
ed8_4_PC_JP.exe+46BCE0: 48 83 C0 10     - add rax,10
ed8_4_PC_JP.exe+46BCE4: 41 0F B7 D0     - movzx edx,r8w
ed8_4_PC_JP.exe+46BCE8: 48 C1 E0 06     - shl rax,06
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+46BCEC: 48 03 C2        - add rax,rdx
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+46BCEF: 8B 04 81        - mov eax,[rcx+rax*4]
ed8_4_PC_JP.exe+46BCF2: C3              - ret 
ed8_4_PC_JP.exe+46BCF3: 33 C0           - xor eax,eax
ed8_4_PC_JP.exe+46BCF5: C3              - ret 
ed8_4_PC_JP.exe+46BCF6: CC              - int 3 
ed8_4_PC_JP.exe+46BCF7: CC              - int 3 
ed8_4_PC_JP.exe+46BCF8: CC              - int 3 
ed8_4_PC_JP.exe+46BCF9: CC              - int 3 
ed8_4_PC_JP.exe+46BCFA: CC              - int 3 
ed8_4_PC_JP.exe+46BCFB: CC              - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>278</ID>
          <Description>"Usage: Take a battle"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>279</ID>
          <Description>"Warning: make a backup before use!!"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>280</ID>
          <Description>"Warning: disable when done."</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>277</ID>
          <Description>"Min. link EXP"</Description>
          <DropDownList DisplayValueAsItem="1">2000:Lv4.2
2800:Lv5
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_min_link_exp</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>209</ID>
      <Description>"Battle: set min. EXP bonus"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_XP_BONUS,$process,95 02 00 00 00 F3 0F 10 45 10 F3 0F 58 86 90 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_XP_BONUS)

label(code)
label(return)
label(vf_min_xp_bonus)

newmem:
  vmovss xmm14, [vf_min_xp_bonus]
  vmovss xmm15, dword ptr [rsi+00000290]
  vucomiss xmm15, xmm14
  jae code
  vmovss [rsi+00000290], xmm14

code:
  addss xmm0,[rsi+00000290]
  jmp return
align 10 cc
  vf_min_xp_bonus:
  dd (float)1.4

INJECT_SET_MIN_XP_BONUS+0A:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SET_MIN_XP_BONUS)
registersymbol(vf_min_xp_bonus)

[DISABLE]

INJECT_SET_MIN_XP_BONUS+0A:
  db F3 0F 58 86 90 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+190696

ed8_4_PC_JP.exe+19065C: 48 8B CB                       - mov rcx,rbx
ed8_4_PC_JP.exe+19065F: E8 DC 3A 00 00                 - call ed8_4_PC_JP.exe+194140
ed8_4_PC_JP.exe+190664: 44 0F 28 44 24 30              - movaps xmm8,[rsp+30]
ed8_4_PC_JP.exe+19066A: 0F 28 7C 24 40                 - movaps xmm7,[rsp+40]
ed8_4_PC_JP.exe+19066F: 0F 28 74 24 50                 - movaps xmm6,[rsp+50]
ed8_4_PC_JP.exe+190674: 43 FE 84 3E 94 02 00 00        - inc byte ptr [r14+r15+00000294]
ed8_4_PC_JP.exe+19067C: 4A 8D 04 76                    - lea rax,[rsi+r14*2]
ed8_4_PC_JP.exe+190680: 4C 8B A4 24 90 00 00 00        - mov r12,[rsp+00000090]
ed8_4_PC_JP.exe+190688: 41 C6 84 06 95 02 00 00 00     - mov byte ptr [r14+rax+00000295],00
ed8_4_PC_JP.exe+190691: F3 0F 10 45 10                 - movss xmm0,[rbp+10]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+190696: F3 0F 58 86 90 02 00 00        - addss xmm0,[rsi+00000290]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+19069E: 0F 2F 05 73 5C 6F 00           - comiss xmm0,[ed8_4_PC_JP.exe+886318]
ed8_4_PC_JP.exe+1906A5: F3 0F 11 86 90 02 00 00        - movss [rsi+00000290],xmm0
ed8_4_PC_JP.exe+1906AD: 76 0A                          - jna ed8_4_PC_JP.exe+1906B9
ed8_4_PC_JP.exe+1906AF: C7 86 90 02 00 00 66 66 1E 41  - mov [rsi+00000290],411E6666
ed8_4_PC_JP.exe+1906B9: 4C 8B B4 24 98 00 00 00        - mov r14,[rsp+00000098]
ed8_4_PC_JP.exe+1906C1: 4C 8B 7C 24 60                 - mov r15,[rsp+60]
ed8_4_PC_JP.exe+1906C6: 48 8B AC 24 80 00 00 00        - mov rbp,[rsp+00000080]
ed8_4_PC_JP.exe+1906CE: 48 8B BC 24 88 00 00 00        - mov rdi,[rsp+00000088]
ed8_4_PC_JP.exe+1906D6: 48 83 C4 68                    - add rsp,68
ed8_4_PC_JP.exe+1906DA: 5E                             - pop rsi
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>210</ID>
          <Description>"Min. bonus"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_xp_bonus</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>175</ID>
      <Description>"Battle: set min BP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_SET_BP,$process,0F B6 BB 90 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_SET_BP)

label(code)
label(return)
label(i_min_bp)

newmem:
  mov dil, [i_min_bp]
  cmp [rbx+00000290], dil
  jae code
  mov [rbx+00000290], dil

code:
  movzx edi,byte ptr [rbx+00000290]
  jmp return
align 10 cc
  i_min_bp:
  db 1


INJECT_BATTLE_SET_BP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATTLE_SET_BP)
registersymbol(i_min_bp)

[DISABLE]

INJECT_BATTLE_SET_BP:
  db 0F B6 BB 90 02 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+473AFA

ed8_4_PC_JP.exe+473AC2: 44 0F 28 D9              - movaps xmm11,xmm1
ed8_4_PC_JP.exe+473AC6: E8 75 7D 06 00           - call ed8_4_PC_JP.exe+4DB840
ed8_4_PC_JP.exe+473ACB: 48 8B 0D E6 5E 89 00     - mov rcx,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+473AD2: BA 01 04 00 00           - mov edx,00000401
ed8_4_PC_JP.exe+473AD7: E8 B4 AA E6 FF           - call ed8_4_PC_JP.exe+2DE590
ed8_4_PC_JP.exe+473ADC: 84 C0                    - test al,al
ed8_4_PC_JP.exe+473ADE: 0F 84 53 04 00 00        - je ed8_4_PC_JP.exe+473F37
ed8_4_PC_JP.exe+473AE4: 8B 93 94 02 00 00        - mov edx,[rbx+00000294]
ed8_4_PC_JP.exe+473AEA: 48 89 B4 24 B0 00 00 00  - mov [rsp+000000B0],rsi
ed8_4_PC_JP.exe+473AF2: 48 89 BC 24 B8 00 00 00  - mov [rsp+000000B8],rdi
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+473AFA: 0F B6 BB 90 02 00 00     - movzx edi,byte ptr [rbx+00000290]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+473B01: 0F 29 B4 24 90 00 00 00  - movaps [rsp+00000090],xmm6
ed8_4_PC_JP.exe+473B09: 8D 42 FF                 - lea eax,[rdx-01]
ed8_4_PC_JP.exe+473B0C: 0F 29 BC 24 80 00 00 00  - movaps [rsp+00000080],xmm7
ed8_4_PC_JP.exe+473B14: 44 0F 29 44 24 70        - movaps [rsp+70],xmm8
ed8_4_PC_JP.exe+473B1A: 44 0F 29 4C 24 60        - movaps [rsp+60],xmm9
ed8_4_PC_JP.exe+473B20: 83 F8 06                 - cmp eax,06
ed8_4_PC_JP.exe+473B23: 0F 87 70 03 00 00        - ja ed8_4_PC_JP.exe+473E99
ed8_4_PC_JP.exe+473B29: 4C 8D 05 D0 C4 B8 FF     - lea r8,[ed8_4_PC_JP.exe]
ed8_4_PC_JP.exe+473B30: 48 98                    - cdqe 
ed8_4_PC_JP.exe+473B32: 41 8B 8C 80 48 3F 47 00  - mov ecx,[r8+rax*4+00473F48]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>176</ID>
          <Description>"Min. BP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_min_bp</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>171</ID>
      <Description>"Battle: inf. EP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_INF_EP,$process,B6 03 00 00 2B C7 85 C0 0F 4F C8) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_INF_EP)

label(code)
label(return)

newmem:
  // check if player w/ 2 condifions
  push r15
  xor r15, r15
  cmp byte ptr [rbx+000003A9], 8
  //jne to_enemy
  jne to_add_2
  inc r15d

to_add_2:
  cmp dword ptr [rbx+000003E0], 0 // max break pt
  //jne to_enemy
  jne to_add_post
  inc r15d

to_add_post:
  test r15d, r15d
  pop r15
  jz code

  xor edi, edi
  mov cx, [rbx+000003B6]
  mov [rbx+000003B4], cx
  xor ecx, ecx

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return

INJECT_BATTLE_INF_EP+04:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATTLE_INF_EP)

[DISABLE]

INJECT_BATTLE_INF_EP+04:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(INJECT_BATTLE_INF_EP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+112804

ed8_4_PC_JP.exe+1127D7: 48 8B 4B 08                    - mov rcx,[rbx+08]
ed8_4_PC_JP.exe+1127DB: E8 A0 99 04 00                 - call ed8_4_PC_JP.exe+15C180
ed8_4_PC_JP.exe+1127E0: 48 85 C0                       - test rax,rax
ed8_4_PC_JP.exe+1127E3: 74 0F                          - je ed8_4_PC_JP.exe+1127F4
ed8_4_PC_JP.exe+1127E5: F7 80 A8 03 00 00 00 00 20 00  - test [rax+000003A8],00200000
ed8_4_PC_JP.exe+1127EF: 48 8B D8                       - mov rbx,rax
ed8_4_PC_JP.exe+1127F2: 75 DC                          - jne ed8_4_PC_JP.exe+1127D0
ed8_4_PC_JP.exe+1127F4: 0F B7 83 B4 03 00 00           - movzx eax,word ptr [rbx+000003B4]
ed8_4_PC_JP.exe+1127FB: 33 C9                          - xor ecx,ecx
ed8_4_PC_JP.exe+1127FD: 0F B7 93 B6 03 00 00           - movzx edx,word ptr [rbx+000003B6]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+112804: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+112806: 85 C0                          - test eax,eax
ed8_4_PC_JP.exe+112808: 0F 4F C8                       - cmovg ecx,eax
ed8_4_PC_JP.exe+11280B: 3B CA                          - cmp ecx,edx
ed8_4_PC_JP.exe+11280D: 66 0F 4C D1                    - cmovl dx,cx
ed8_4_PC_JP.exe+112811: 66 89 93 B4 03 00 00           - mov [rbx+000003B4],dx
ed8_4_PC_JP.exe+112818: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+11281D: 48 83 C4 20                    - add rsp,20
ed8_4_PC_JP.exe+112821: 5F                             - pop rdi
ed8_4_PC_JP.exe+112822: C3                             - ret 
ed8_4_PC_JP.exe+112823: CC                             - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>169</ID>
      <Description>"Battle: inf. CP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_BATTLE_INF_CP,$process,BA 03 00 00 2B C7 85 C0 0F 4F C8) // should be unique
alloc(newmem,$1000,INJECT_BATTLE_INF_CP)

label(code)
label(return)

newmem:
  // check if player w/ 2 condifions
  push r15
  xor r15, r15
  cmp byte ptr [rbx+000003A9], 8
  //jne to_enemy
  jne to_add_2
  inc r15d

to_add_2:
  cmp dword ptr [rbx+000003E0], 0 // max break pt
  //jne to_enemy
  jne to_add_post
  inc r15d

to_add_post:
  test r15d, r15d
  pop r15
  jz code

  xor edi, edi
  mov cx, [rbx+000003BA]
  mov [rbx+000003B8], cx
  xor ecx, ecx

code:
  sub eax,edi
  test eax,eax
  cmovg ecx,eax
  jmp return

INJECT_BATTLE_INF_CP+04:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_BATTLE_INF_CP)

[DISABLE]

INJECT_BATTLE_INF_CP+04:
  db 2B C7 85 C0 0F 4F C8

unregistersymbol(INJECT_BATTLE_INF_CP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+112704

ed8_4_PC_JP.exe+1126D7: 48 8B 4B 08                    - mov rcx,[rbx+08]
ed8_4_PC_JP.exe+1126DB: E8 A0 9A 04 00                 - call ed8_4_PC_JP.exe+15C180
ed8_4_PC_JP.exe+1126E0: 48 85 C0                       - test rax,rax
ed8_4_PC_JP.exe+1126E3: 74 0F                          - je ed8_4_PC_JP.exe+1126F4
ed8_4_PC_JP.exe+1126E5: F7 80 A8 03 00 00 00 00 20 00  - test [rax+000003A8],00200000
ed8_4_PC_JP.exe+1126EF: 48 8B D8                       - mov rbx,rax
ed8_4_PC_JP.exe+1126F2: 75 DC                          - jne ed8_4_PC_JP.exe+1126D0
ed8_4_PC_JP.exe+1126F4: 0F B7 83 B8 03 00 00           - movzx eax,word ptr [rbx+000003B8]
ed8_4_PC_JP.exe+1126FB: 33 C9                          - xor ecx,ecx
ed8_4_PC_JP.exe+1126FD: 0F B7 93 BA 03 00 00           - movzx edx,word ptr [rbx+000003BA]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+112704: 2B C7                          - sub eax,edi
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+112706: 85 C0                          - test eax,eax
ed8_4_PC_JP.exe+112708: 0F 4F C8                       - cmovg ecx,eax
ed8_4_PC_JP.exe+11270B: 3B CA                          - cmp ecx,edx
ed8_4_PC_JP.exe+11270D: 66 0F 4C D1                    - cmovl dx,cx
ed8_4_PC_JP.exe+112711: 66 89 93 B8 03 00 00           - mov [rbx+000003B8],dx
ed8_4_PC_JP.exe+112718: 48 8B 5C 24 30                 - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+11271D: 48 83 C4 20                    - add rsp,20
ed8_4_PC_JP.exe+112721: 5F                             - pop rdi
ed8_4_PC_JP.exe+112722: C3                             - ret 
ed8_4_PC_JP.exe+112723: CC                             - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>182</ID>
      <Description>"Battle: Master Quartz EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_MQZ_MULTI,$process,F3 0F 59 CE F3 0F 58 C8 F3 48 0F 2C C9 3B C8 0F 42 C1 89) // should be unique
alloc(newmem,$1000,INJECT_MQZ_MULTI)

label(code)
label(return)
label(vf_maz_multi)

newmem:
  vmovss xmm14, [vf_maz_multi]
  vmulss xmm1, xmm1, xmm14

code:
  mulss xmm1,xmm6
  addss xmm1,xmm0
  jmp return
align 10 cc
  vf_maz_multi:
  dd (float)1.333333333

INJECT_MQZ_MULTI:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_MQZ_MULTI)
registersymbol(vf_maz_multi)

[DISABLE]

INJECT_MQZ_MULTI:
  db F3 0F 59 CE F3 0F 58 C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+1865FD

ed8_4_PC_JP.exe+1865D1: 66 83 F8 08           - cmp ax,08
ed8_4_PC_JP.exe+1865D5: 77 67                 - ja ed8_4_PC_JP.exe+18663E
ed8_4_PC_JP.exe+1865D7: 8B 83 CC 02 00 00     - mov eax,[rbx+000002CC]
ed8_4_PC_JP.exe+1865DD: 0F 57 C9              - xorps xmm1,xmm1
ed8_4_PC_JP.exe+1865E0: 0F 57 C0              - xorps xmm0,xmm0
ed8_4_PC_JP.exe+1865E3: BA 0A 00 00 00        - mov edx,0000000A
ed8_4_PC_JP.exe+1865E8: F3 48 0F 2A C8        - cvtsi2ss xmm1,rax
ed8_4_PC_JP.exe+1865ED: 8B 83 DC 02 00 00     - mov eax,[rbx+000002DC]
ed8_4_PC_JP.exe+1865F3: F3 48 0F 2A C0        - cvtsi2ss xmm0,rax
ed8_4_PC_JP.exe+1865F8: B8 9F 86 01 00        - mov eax,0001869F
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+1865FD: F3 0F 59 CE           - mulss xmm1,xmm6
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+186601: F3 0F 58 C8           - addss xmm1,xmm0
ed8_4_PC_JP.exe+186605: F3 48 0F 2C C9        - cvttss2si rcx,xmm1
ed8_4_PC_JP.exe+18660A: 3B C8                 - cmp ecx,eax
ed8_4_PC_JP.exe+18660C: 0F 42 C1              - cmovb eax,ecx
ed8_4_PC_JP.exe+18660F: 89 83 CC 02 00 00     - mov [rbx+000002CC],eax
ed8_4_PC_JP.exe+186615: 48 8B 0D 9C 33 B8 00  - mov rcx,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+18661C: E8 9F 9A 16 00        - call ed8_4_PC_JP.exe+2F00C0
ed8_4_PC_JP.exe+186621: 8B 93 CC 02 00 00     - mov edx,[rbx+000002CC]
ed8_4_PC_JP.exe+186627: 44 8B 83 C8 02 00 00  - mov r8d,[rbx+000002C8]
ed8_4_PC_JP.exe+18662E: 41 03 D0              - add edx,r8d
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>183</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_maz_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>162</ID>
      <Description>"Battle: Damage multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_DAMAGE_MULTI,$process,89 9E AC 03 00 00) // should be unique
alloc(newmem,$1000,INJECT_DAMAGE_MULTI)

label(code)
label(return)
label(vf_damage_to_player)
label(vf_damage_to_enemy)
label(is_rec_ep_hit)
label(is_rec_cp_hit)
label(is_keep_1hp)

newmem:
  test ebx, ebx
  jz code

  vcvtsi2ss xmm15, xmm15, ebx // xmm15 = new hp

  push rbx
  mov ebx, [rsi+000003AC]
  vcvtsi2ss xmm13, xmm13, ebx // xmm13 = old hp
  pop rbx

  vucomiss xmm15, xmm13  // skip if new HP &gt; old HP
  jae code


  vsubss xmm12, xmm13, xmm15  // damage (delta) = old HP - new HP
  //vunpcklps xmm12, xmm12, xmm12  // place lower 32-bit float to 33-64 bit
  vbroadcastss xmm12, xmm12

  vmovaps xmm14, [vf_damage_to_player] // copy multiplier: to_player &amp; to_emeny, 0, 0

  vmulps xmm12, xmm12, xmm14 // new delta; packed mul calc.
  vbroadcastss xmm13, xmm13
  vsubps xmm12, xmm13, xmm12 // old hp - new delta = new hp; packed sub: lower 32-bit = player; 33-64 bit = enemy

  // check if player w/ 2 condifions
  push r15
  xor r15, r15
  cmp byte ptr [rsi+000003A9], 8
  //jne to_enemy
  jne to_add_2
  inc r15d

to_add_2:
  cmp dword ptr [rsi+000003E0], 0 // max break pt
  //jne to_enemy
  jne to_add_post
  inc r15d

to_add_post:
  test r15d, r15d
  pop r15

  jz to_enemy


to_Player:
  cmp dword ptr [is_rec_ep_hit], 1
  jne @F

  push r15
  mov r15w, [rsi+000003B6]
  mov [rsi+000003B4], r15w
  pop r15

@@:
  cmp dword ptr [is_rec_cp_hit], 1
  jne @F

  push r15
  mov r15w, [rsi+000003BA]
  mov [rsi+000003B8], r15w
  pop r15

@@:
  //vmovss xmm14, [vf_damage_to_player]
  //vmulss xmm12, xmm12, xmm14 // new delta
  //vsubss xmm12, xmm13, xmm12 // old hp - new delta = new hp
  vcvtss2si ebx, xmm12  // lower 32 bit float = player HP

  jmp code

to_enemy:
  cmp ebx, 1
  je code
  ////vmovss xmm11, [vf_1]

  //vmovss xmm14, [vf_damage_to_enemy]
  ////vucomiss xmm11, xmm14  // multiplier = 1
  ////je code

  //vmulss xmm12, xmm12, xmm14 // new delta
  //vsubss xmm12, xmm13, xmm12 // old hp - new delta = new hp


  vextractps [tmp1], xmm12, 1 // move 2nd 32-bit to memory
  vmovd xmm12, [tmp1]


  vxorps xmm11, xmm11, xmm11
  vucomiss xmm12, xmm11
  ja to_enemy_1

  cmp dword ptr [is_keep_1hp], 1
  jne @F
  vmovss xmm12, [vf_1]
  jmp to_enemy_1

en_set_0:
  vxorps xmm12, xmm12, xmm12



to_enemy_1:
  vcvtss2si ebx, xmm12



code:
  mov [rsi+000003AC],ebx
  jmp return
align 10 cc
  // packed scaler start
  vf_damage_to_player:
  dd (float)0.85
  vf_damage_to_enemy:
  dd (float)1
  dd 0 0
  // packed scaler end
  is_rec_ep_hit:
  dd 1
  is_rec_cp_hit:
  dd 1
  vf_1:
  dd (float)1
  tmp1:
  dd 0
  is_keep_1hp:
  dd 0

INJECT_DAMAGE_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_DAMAGE_MULTI)
registersymbol(vf_damage_to_player)
registersymbol(vf_damage_to_enemy)
registersymbol(is_rec_ep_hit)
registersymbol(is_rec_cp_hit)
registersymbol(is_keep_1hp)

[DISABLE]

INJECT_DAMAGE_MULTI:
  db 89 9E AC 03 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+112984

ed8_4_PC_JP.exe+11295E: F7 E1                    - mul ecx
ed8_4_PC_JP.exe+112960: C1 EA 05                 - shr edx,05
ed8_4_PC_JP.exe+112963: 03 DA                    - add ebx,edx
ed8_4_PC_JP.exe+112965: 45 2B FE                 - sub r15d,r14d
ed8_4_PC_JP.exe+112968: 45 85 FF                 - test r15d,r15d
ed8_4_PC_JP.exe+11296B: 41 0F 4F FF              - cmovg edi,r15d
ed8_4_PC_JP.exe+11296F: 4C 8B BC 24 90 00 00 00  - mov r15,[rsp+00000090]
ed8_4_PC_JP.exe+112977: 3B FB                    - cmp edi,ebx
ed8_4_PC_JP.exe+112979: 0F 4C DF                 - cmovl ebx,edi
ed8_4_PC_JP.exe+11297C: 48 8B BC 24 98 00 00 00  - mov rdi,[rsp+00000098]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+112984: 89 9E AC 03 00 00        - mov [rsi+000003AC],ebx
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+11298A: 48 8B 9C 24 D0 00 00 00  - mov rbx,[rsp+000000D0]
ed8_4_PC_JP.exe+112992: 48 8B 4D 27              - mov rcx,[rbp+27]
ed8_4_PC_JP.exe+112996: 48 33 CC                 - xor rcx,rsp
ed8_4_PC_JP.exe+112999: E8 A2 16 69 00           - call ed8_4_PC_JP.exe+7A4040
ed8_4_PC_JP.exe+11299E: 48 81 C4 A0 00 00 00     - add rsp,000000A0
ed8_4_PC_JP.exe+1129A5: 41 5E                    - pop r14
ed8_4_PC_JP.exe+1129A7: 5E                       - pop rsi
ed8_4_PC_JP.exe+1129A8: 5D                       - pop rbp
ed8_4_PC_JP.exe+1129A9: C3                       - ret 
ed8_4_PC_JP.exe+1129AA: CC                       - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>288</ID>
          <Description>"Warning: 龍眼 / "Dragon Vision" may not work"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>163</ID>
          <Description>"Recover EP when hit?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_rec_ep_hit</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>164</ID>
          <Description>"Recover CP when hit?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_rec_cp_hit</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>165</ID>
          <Description>"Damage multiplier to player"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_damage_to_player</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>166</ID>
          <Description>"Damage multiplier to enemy"</Description>
          <DropDownList DisplayValueAsItem="1">1:Default
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_damage_to_enemy</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>289</ID>
          <Description>"Keep 1HP if overkill w/ damage multiplier to enemy?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_keep_1hp</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>291</ID>
              <Description>"Set this to "1" to make 龍眼 / "Dragon Vision" more workable (not 100%)"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>140</ID>
      <Description>"Battle: Order cost 0 BP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ORDER_0BP_PRE,$process,0F B6 88 90 02 00 00 66) // should be unique
alloc(newmem,$1000,INJECT_ORDER_0BP_PRE)

label(code)
label(return)



aobscanmodule(INJECT_NO_ORDER_COST,$process,44 2B C0 45 85 C0) // should be unique
alloc(newmem2,$1000,INJECT_NO_ORDER_COST)

label(code2)
label(return2)



newmem:
  xor si, si

code:
  movzx ecx,byte ptr [rax+00000290]
  jmp return

INJECT_ORDER_0BP_PRE:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_ORDER_0BP_PRE)



newmem2:
  xor eax, eax

code2:
  sub r8d,eax
  test r8d,r8d
  jmp return2

INJECT_NO_ORDER_COST:
  jmp newmem2
  nop
return2:
registersymbol(INJECT_NO_ORDER_COST)

[DISABLE]

INJECT_ORDER_0BP_PRE:
  db 0F B6 88 90 02 00 00
INJECT_NO_ORDER_COST:
  db 44 2B C0 45 85 C0

unregistersymbol(INJECT_ORDER_0BP_PRE)
dealloc(newmem)

unregistersymbol(INJECT_NO_ORDER_COST)
dealloc(newmem2)
{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+F8118

ed8_4_PC_JP.exe+F80ED: 49 8B 85 28 41 00 00  - mov rax,[r13+00004128]
ed8_4_PC_JP.exe+F80F4: 49 8B 56 60           - mov rdx,[r14+60]
ed8_4_PC_JP.exe+F80F8: 48 8B 88 D0 02 00 00  - mov rcx,[rax+000002D0]
ed8_4_PC_JP.exe+F80FF: E8 AC EA 00 00        - call ed8_4_PC_JP.exe+106BB0
ed8_4_PC_JP.exe+F8104: 83 F8 11              - cmp eax,11
ed8_4_PC_JP.exe+F8107: 75 05                 - jne ed8_4_PC_JP.exe+F810E
ed8_4_PC_JP.exe+F8109: 66 89 33              - mov [rbx],si
ed8_4_PC_JP.exe+F810C: EB 03                 - jmp ed8_4_PC_JP.exe+F8111
ed8_4_PC_JP.exe+F810E: 0F B7 33              - movzx esi,word ptr [rbx]
ed8_4_PC_JP.exe+F8111: 49 8B 85 00 42 00 00  - mov rax,[r13+00004200]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+F8118: 0F B6 88 90 02 00 00  - movzx ecx,byte ptr [rax+00000290]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+F811F: 66 3B CE              - cmp cx,si
ed8_4_PC_JP.exe+F8122: 0F 83 A3 FE FF FF     - jae ed8_4_PC_JP.exe+F7FCB
ed8_4_PC_JP.exe+F8128: 32 C0                 - xor al,al
ed8_4_PC_JP.exe+F812A: E9 9E FE FF FF        - jmp ed8_4_PC_JP.exe+F7FCD
ed8_4_PC_JP.exe+F812F: 90                    - nop
ed8_4_PC_JP.exe+F8130: C3                    - ret
ed8_4_PC_JP.exe+F8131: 7D 0F                 - jnl ed8_4_PC_JP.exe+F8142
ed8_4_PC_JP.exe+F8133: 00 C3                 - add bl,al
ed8_4_PC_JP.exe+F8135: 7D 0F                 - jnl ed8_4_PC_JP.exe+F8146
ed8_4_PC_JP.exe+F8137: 00 9F 7D 0F 00 4A     - add [rdi+4A000F7D],bl
}



{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+471C09

ed8_4_PC_JP.exe+471BF9: CC              - int 3
ed8_4_PC_JP.exe+471BFA: CC              - int 3
ed8_4_PC_JP.exe+471BFB: CC              - int 3
ed8_4_PC_JP.exe+471BFC: CC              - int 3
ed8_4_PC_JP.exe+471BFD: CC              - int 3
ed8_4_PC_JP.exe+471BFE: CC              - int 3
ed8_4_PC_JP.exe+471BFF: CC              - int 3
ed8_4_PC_JP.exe+471C00: 44 0F B6 01     - movzx r8d,byte ptr [rcx]
ed8_4_PC_JP.exe+471C04: 0F B6 C2        - movzx eax,dl
ed8_4_PC_JP.exe+471C07: 33 D2           - xor edx,edx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+471C09: 44 2B C0        - sub r8d,eax
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+471C0C: 45 85 C0        - test r8d,r8d
ed8_4_PC_JP.exe+471C0F: 41 0F B6 C0     - movzx eax,r8b
ed8_4_PC_JP.exe+471C13: 0F 4F D0        - cmovg edx,eax
ed8_4_PC_JP.exe+471C16: 88 11           - mov [rcx],dl
ed8_4_PC_JP.exe+471C18: E9 D3 F8 FF FF  - jmp ed8_4_PC_JP.exe+4714F0
ed8_4_PC_JP.exe+471C1D: CC              - int 3
ed8_4_PC_JP.exe+471C1E: CC              - int 3
ed8_4_PC_JP.exe+471C1F: CC              - int 3
ed8_4_PC_JP.exe+471C20: 40 57           - push rdi
ed8_4_PC_JP.exe+471C22: 48 83 EC 20     - sub rsp,20
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>148</ID>
      <Description>"Item scripts"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_ITEM_BASE_ADDR,$process,42 0F B7 44 0A 02 48 83 C4 20 5F C3 CC CC CC CC CC CC 48) // should be unique
alloc(newmem,$1000,INJECT_GET_ITEM_BASE_ADDR)

label(code)
label(return)
label(i_item_base_addr)
label(i_item_idx_ptr)
label(is_set_item_cnt)

newmem:
  mov [i_item_base_addr], r9
  mov [i_item_idx_ptr], rdx
  cmp dword ptr [is_set_item_cnt], 1
  jne code
  cmp word ptr [rdx+r9+02], 1
  jbe code
  cmp word ptr [rdx+r9+02], 50
  jae code

  mov ax, 50
  mov [rdx+r9+02], ax



code:
  movzx eax,word ptr [rdx+r9+02]
  jmp return
align 10 cc
  i_item_base_addr:
  dq 0
  i_item_idx_ptr:
  dq 0
  is_set_item_cnt:
  dd 1

INJECT_GET_ITEM_BASE_ADDR:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_ITEM_BASE_ADDR)
registersymbol(i_item_base_addr)
registersymbol(i_item_idx_ptr)
registersymbol(is_set_item_cnt)

[DISABLE]

INJECT_GET_ITEM_BASE_ADDR:
  db 42 0F B7 44 0A 02

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+32122E

ed8_4_PC_JP.exe+32120F: FF C0              - inc eax
ed8_4_PC_JP.exe+321211: 41 3B C0           - cmp eax,r8d
ed8_4_PC_JP.exe+321214: 72 EA              - jb ed8_4_PC_JP.exe+321200
ed8_4_PC_JP.exe+321216: 41 0F B7 C2        - movzx eax,r10w
ed8_4_PC_JP.exe+32121A: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+32121F: 48 83 C4 20        - add rsp,20
ed8_4_PC_JP.exe+321223: 5F                 - pop rdi
ed8_4_PC_JP.exe+321224: C3                 - ret 
ed8_4_PC_JP.exe+321225: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ed8_4_PC_JP.exe+32122A: 48 C1 E2 05        - shl rdx,05
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+32122E: 42 0F B7 44 0A 02  - movzx eax,word ptr [rdx+r9+02]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+321234: 48 83 C4 20        - add rsp,20
ed8_4_PC_JP.exe+321238: 5F                 - pop rdi
ed8_4_PC_JP.exe+321239: C3                 - ret 
ed8_4_PC_JP.exe+32123A: CC                 - int 3 
ed8_4_PC_JP.exe+32123B: CC                 - int 3 
ed8_4_PC_JP.exe+32123C: CC                 - int 3 
ed8_4_PC_JP.exe+32123D: CC                 - int 3 
ed8_4_PC_JP.exe+32123E: CC                 - int 3 
ed8_4_PC_JP.exe+32123F: CC                 - int 3 
ed8_4_PC_JP.exe+321240: 48 89 5C 24 08     - mov [rsp+08],rbx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>154</ID>
          <Description>"Set item count, if &gt;= 2?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_set_item_cnt</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>149</ID>
          <Description>"Drop / change item -&gt; set item stock #"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ITEM_CHG_TO_80,$process,42 0F B7 4C 0A 02) // should be unique
alloc(newmem,$1000,INJECT_ITEM_CHG_TO_80)

label(code)
label(return)
label(i_base_citem_addr)
label(i_base_citem_idx)

newmem:
  //push r15
  //lea r15, [rdx+r9+02]
  //mov [i_base_citem_addr], r15
  //pop r15
  mov [i_base_citem_idx], rdx
  cmp word ptr [rdx+r9+02], 51
  jae code
  mov word ptr [rdx+r9+02], 51

code:
  movzx ecx,word ptr [rdx+r9+02]
  jmp return
align 10 cc
  i_base_citem_addr:
  dq 0
  i_base_citem_idx:
  dq 0

INJECT_ITEM_CHG_TO_80:
  jmp newmem
  nop
return:
registersymbol(INJECT_ITEM_CHG_TO_80)
registersymbol(i_base_citem_addr)
registersymbol(i_base_citem_idx)

[DISABLE]

INJECT_ITEM_CHG_TO_80:
  db 42 0F B7 4C 0A 02

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+32631C

ed8_4_PC_JP.exe+326300: 8B D1                    - mov edx,ecx
ed8_4_PC_JP.exe+326302: 8B C1                    - mov eax,ecx
ed8_4_PC_JP.exe+326304: 48 C1 E0 05              - shl rax,05
ed8_4_PC_JP.exe+326308: 66 42 39 1C 08           - cmp [rax+r9],bx
ed8_4_PC_JP.exe+32630D: 74 09                    - je ed8_4_PC_JP.exe+326318
ed8_4_PC_JP.exe+32630F: FF C1                    - inc ecx
ed8_4_PC_JP.exe+326311: 41 3B C8                 - cmp ecx,r8d
ed8_4_PC_JP.exe+326314: 72 EA                    - jb ed8_4_PC_JP.exe+326300
ed8_4_PC_JP.exe+326316: EB 1D                    - jmp ed8_4_PC_JP.exe+326335
ed8_4_PC_JP.exe+326318: 48 C1 E2 05              - shl rdx,05
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+32631C: 42 0F B7 4C 0A 02        - movzx ecx,word ptr [rdx+r9+02]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+326322: 0F B7 C5                 - movzx eax,bp
ed8_4_PC_JP.exe+326325: 2B C8                    - sub ecx,eax
ed8_4_PC_JP.exe+326327: 8B C6                    - mov eax,esi
ed8_4_PC_JP.exe+326329: 85 C9                    - test ecx,ecx
ed8_4_PC_JP.exe+32632B: 66 0F 4F C1              - cmovg ax,cx
ed8_4_PC_JP.exe+32632F: 66 42 89 44 0A 02        - mov [rdx+r9+02],ax
ed8_4_PC_JP.exe+326335: 40 38 B4 24 C0 04 00 00  - cmp [rsp+000004C0],sil
ed8_4_PC_JP.exe+32633D: 0F 84 AF 01 00 00        - je ed8_4_PC_JP.exe+3264F2
ed8_4_PC_JP.exe+326343: 44 8B 27                 - mov r12d,[rdi]
ed8_4_PC_JP.exe+326346: 41 81 E4 FF FF FF 7F     - and r12d,7FFFFFFF
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>150</ID>
              <Description>"Item id"</Description>
              <DropDownList DisplayValueAsItem="1">001: ==(靴)==
551:バトルスパイク
575:ハイキングブルー
576:ハイキングイエロー
589:ストレガーZ
001: ==(アクセサリ)==
717:銀翼獅子中綬章
718:金翼獅子大綬章
719:熾煌翼獅子最高綬章
720:クイックキャリバー
001:==(クオーツ)==
3309:破壊1
3338:破壊3
3342:鋼星鈴
3343:金剛盾
3344:玄武刃
3345:羅漢珠
3346:不動珠
3350:アクアブリード
3358:セラス
3393:HP3
3400:青龍刃
3401:仙道珠
3402:氷将珠
3418:攻撃1
3419:必殺1
3431:攻撃2
3447:攻撃3
3453:憤怒
3454:朱雀刃
3455:武神珠
3456:炎帝珠
3467:回避1
3468:移動1
3480:移動2
3487:エアストライクSR
3501:白虎刃
3502:風神珠
3503:雷神珠
3516:行動力1
3525:クロノバーストR
3539:行動力3
3544:冥皇
3545:影輪牙
3546:韋駄天珠
3547:魔王珠
3554:シャイニング
3555:セラフィムリング
3569:妨害2
3585:熾天使
3586:日輪牙
3587:天帝珠
3588:七剣珠
3590:シルバーソーン
3596:EP1
3606:EP2
3611:月鏡
3613:龍眼
3627:賢王珠
3628:銀狼珠
9999:Empty
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_item_base_addr</Address>
              <Offsets>
                <Offset>[i_base_citem_idx]</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>151</ID>
              <Description>"count"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>i_item_base_addr</Address>
              <Offsets>
                <Offset>[i_base_citem_idx]+2</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>198</ID>
      <Description>"Get Equipped Quartz"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_EQUIPPED_QUARTZ,$process,0F B7 84 50 80 00 9B 00) // should be unique
alloc(newmem,$1000,INJECT_GET_EQUIPPED_QUARTZ)

label(code)
label(return)
label(i_base_eqz_addr)

newmem:
  test ecx, ecx
  jnz code

  push r15
  lea r15, [rax+rdx*2+009B0080]
  mov [i_base_eqz_addr], r15
  pop r15



code:
  movzx eax,word ptr [rax+rdx*2+009B0080]
  jmp return
align 10 cc
  i_base_eqz_addr:
  dq 0

INJECT_GET_EQUIPPED_QUARTZ:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GET_EQUIPPED_QUARTZ)
registersymbol(i_base_eqz_addr)

[DISABLE]

INJECT_GET_EQUIPPED_QUARTZ:
  db 0F B7 84 50 80 00 9B 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+31DEC2

ed8_4_PC_JP.exe+31DE9F: CC                       - int 3 
ed8_4_PC_JP.exe+31DEA0: 66 83 FA 40              - cmp dx,40
ed8_4_PC_JP.exe+31DEA4: 73 25                    - jae ed8_4_PC_JP.exe+31DECB
ed8_4_PC_JP.exe+31DEA6: 66 41 83 F8 09           - cmp r8w,09
ed8_4_PC_JP.exe+31DEAB: 73 1E                    - jae ed8_4_PC_JP.exe+31DECB
ed8_4_PC_JP.exe+31DEAD: 0F B7 C2                 - movzx eax,dx
ed8_4_PC_JP.exe+31DEB0: 41 0F B7 C8              - movzx ecx,r8w
ed8_4_PC_JP.exe+31DEB4: 48 8D 14 C0              - lea rdx,[rax+rax*8]
ed8_4_PC_JP.exe+31DEB8: 48 8B 05 F9 BA 9E 00     - mov rax,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+31DEBF: 48 03 D1                 - add rdx,rcx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+31DEC2: 0F B7 84 50 80 00 9B 00  - movzx eax,word ptr [rax+rdx*2+009B0080]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+31DECA: C3                       - ret 
ed8_4_PC_JP.exe+31DECB: B8 0F 27 00 00           - mov eax,0000270F
ed8_4_PC_JP.exe+31DED0: C3                       - ret 
ed8_4_PC_JP.exe+31DED1: CC                       - int 3 
ed8_4_PC_JP.exe+31DED2: CC                       - int 3 
ed8_4_PC_JP.exe+31DED3: CC                       - int 3 
ed8_4_PC_JP.exe+31DED4: CC                       - int 3 
ed8_4_PC_JP.exe+31DED5: CC                       - int 3 
ed8_4_PC_JP.exe+31DED6: CC                       - int 3 
ed8_4_PC_JP.exe+31DED7: CC                       - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>199</ID>
          <Description>"Master #1"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>200</ID>
          <Description>"Master #2"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>201</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>202</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>6</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>203</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>204</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>205</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>206</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>207</ID>
          <Description>"Quartz"</Description>
          <DropDownListLink>Item id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_eqz_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>244</ID>
      <Description>"Automated fishing when hooked"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FISH5,$process,F3 0F 58 97 E0 01 00 00) // should be unique
alloc(newmem,$1000,INJECT_FISH5)

label(code)
label(return)

newmem:
  vxorps xmm15, xmm15, xmm15
  vucomiss xmm2, xmm15
  jae code
  vmovss xmm14, [vf_factor]
  vmulss xmm2, xmm2, xmm14

code:
  addss xmm2,[rdi+000001E0]
  jmp return
align 10 cc
  vf_factor:
  dd (float)-10

INJECT_FISH5:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FISH5)

[DISABLE]

INJECT_FISH5:
  db F3 0F 58 97 E0 01 00 00

unregistersymbol(INJECT_FISH5)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+3452E0

ed8_4_PC_JP.exe+3452AA: 41 0F 2E C0              - ucomiss xmm0,xmm8
ed8_4_PC_JP.exe+3452AE: 7A 02                    - jp ed8_4_PC_JP.exe+3452B2
ed8_4_PC_JP.exe+3452B0: 74 18                    - je ed8_4_PC_JP.exe+3452CA
ed8_4_PC_JP.exe+3452B2: F3 0F 10 87 00 02 00 00  - movss xmm0,[rdi+00000200]
ed8_4_PC_JP.exe+3452BA: F3 0F 5E 87 04 02 00 00  - divss xmm0,[rdi+00000204]
ed8_4_PC_JP.exe+3452C2: F3 0F 11 87 08 02 00 00  - movss [rdi+00000208],xmm0
ed8_4_PC_JP.exe+3452CA: F3 0F 59 15 B2 6B 76 00  - mulss xmm2,[ed8_4_PC_JP.exe+AABE84]
ed8_4_PC_JP.exe+3452D2: 0F 57 C0                 - xorps xmm0,xmm0
ed8_4_PC_JP.exe+3452D5: 48 8B CF                 - mov rcx,rdi
ed8_4_PC_JP.exe+3452D8: F3 0F 10 8F E4 01 00 00  - movss xmm1,[rdi+000001E4]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+3452E0: F3 0F 58 97 E0 01 00 00  - addss xmm2,[rdi+000001E0]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+3452E8: F3 0F 5D CA              - minss xmm1,xmm2
ed8_4_PC_JP.exe+3452EC: F3 0F 5F C1              - maxss xmm0,xmm1
ed8_4_PC_JP.exe+3452F0: F3 0F 11 87 E0 01 00 00  - movss [rdi+000001E0],xmm0
ed8_4_PC_JP.exe+3452F8: E8 C3 70 FF FF           - call ed8_4_PC_JP.exe+33C3C0
ed8_4_PC_JP.exe+3452FD: F3 0F 10 97 E4 01 00 00  - movss xmm2,[rdi+000001E4]
ed8_4_PC_JP.exe+345305: 0F B7 C6                 - movzx eax,si
ed8_4_PC_JP.exe+345308: F3 0F 10 8F E0 01 00 00  - movss xmm1,[rdi+000001E0]
ed8_4_PC_JP.exe+345310: 0F 28 C2                 - movaps xmm0,xmm2
ed8_4_PC_JP.exe+345313: F3 41 0F 59 C3           - mulss xmm0,xmm11
ed8_4_PC_JP.exe+345318: 0F 2F C1                 - comiss xmm0,xmm1
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>224</ID>
      <Description>"Get Battle stats"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_BATTLE_STATS,$process,8B 8C 88 A4 B1 9B 00 89 4C 24 30 48 8D 4D F0 4C 89 7C 24 28 4C 89 64 24 20 E8 19) // should be unique
alloc(newmem,$1000,INJECT_GET_BATTLE_STATS)

label(code)
label(return)
label(i_base_bstat_addr)

newmem:
  test ecx, ecx
  jnz code

  push r15
  lea r15, [rax+rcx*4+009BB1A4]
  mov [i_base_bstat_addr], r15
  pop r15

code:
  mov ecx,[rax+rcx*4+009BB1A4]
  jmp return
align 10 cc
  i_base_bstat_addr:
  dq 0

INJECT_GET_BATTLE_STATS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_BATTLE_STATS)
registersymbol(i_base_bstat_addr)

[DISABLE]

INJECT_GET_BATTLE_STATS:
  db 8B 8C 88 A4 B1 9B 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+4B6289

ed8_4_PC_JP.exe+4B6256: 48 8D 45 A0                       - lea rax,[rbp-60]
ed8_4_PC_JP.exe+4B625A: 4C 8D 4D F0                       - lea r9,[rbp-10]
ed8_4_PC_JP.exe+4B625E: 48 89 44 24 20                    - mov [rsp+20],rax
ed8_4_PC_JP.exe+4B6263: 0F 28 D7                          - movaps xmm2,xmm7
ed8_4_PC_JP.exe+4B6266: E8 F5 1F E3 FF                    - call ed8_4_PC_JP.exe+2E8260
ed8_4_PC_JP.exe+4B626B: 48 8B 05 46 37 85 00              - mov rax,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+4B6272: 4C 8D 0D 03 9B 3F 00              - lea r9,[ed8_4_PC_JP.exe+8AFD7C]
ed8_4_PC_JP.exe+4B6279: 48 0F BF CB                       - movsx rcx,bx
ed8_4_PC_JP.exe+4B627D: 4C 8D 05 04 9B 3F 00              - lea r8,[ed8_4_PC_JP.exe+8AFD88]
ed8_4_PC_JP.exe+4B6284: BA 80 00 00 00                    - mov edx,00000080
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+4B6289: 8B 8C 88 A4 B1 9B 00              - mov ecx,[rax+rcx*4+009BB1A4]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+4B6290: 89 4C 24 30                       - mov [rsp+30],ecx
ed8_4_PC_JP.exe+4B6294: 48 8D 4D F0                       - lea rcx,[rbp-10]
ed8_4_PC_JP.exe+4B6298: 4C 89 7C 24 28                    - mov [rsp+28],r15
ed8_4_PC_JP.exe+4B629D: 4C 89 64 24 20                    - mov [rsp+20],r12
ed8_4_PC_JP.exe+4B62A2: E8 19 F6 C1 FF                    - call ed8_4_PC_JP.exe+D58C0
ed8_4_PC_JP.exe+4B62A7: 0F 10 05 42 6E 66 00              - movups xmm0,[ed8_4_PC_JP.exe+B1D0F0]
ed8_4_PC_JP.exe+4B62AE: 48 8B 0D 03 37 85 00              - mov rcx,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+4B62B5: 48 8D 45 B0                       - lea rax,[rbp-50]
ed8_4_PC_JP.exe+4B62B9: 0F 10 0D 30 52 5F 00              - movups xmm1,[ed8_4_PC_JP.exe+AAB4F0]
ed8_4_PC_JP.exe+4B62C0: C7 84 24 C0 00 00 00 03 00 00 00  - mov [rsp+000000C0],00000003
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>241</ID>
          <Description>"Usage: Main menu -&gt; 戦闘"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>225</ID>
          <Description>"総戦闘回数 / Number of Battles"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>226</ID>
          <Description>"戦闘勝利回数 / Battles Win"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>227</ID>
          <Description>"戦闘不能回数 / Battles lose"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>228</ID>
          <Description>"戰闘退却回数 / Battles retreat"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>229</ID>
          <Description>"敵擊破回数 / Enemys killed"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>230</ID>
          <Description>"先制攻撃発生回数 / Preemptive Attacks"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>231</ID>
          <Description>"優勢攻撃発生回数 / Double advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>232</ID>
          <Description>"奇襲攻撃発生回数 / Triple advantage"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>233</ID>
          <Description>"バックアタック発生回数 / Back attacks"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>20</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>234</ID>
          <Description>"リトライ回数 / Retry"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>24</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>235</ID>
          <Description>"Sクラフト発動回数 / S-Craft"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>28</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>236</ID>
          <Description>"ブレイク発動回数 / Break"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>2C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>237</ID>
          <Description>"追撃発動回数 / Follow attack"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>30</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>238</ID>
          <Description>"ラッシュ発動回数 / Rush"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>239</ID>
          <Description>"バースト発動回数 / Burst"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>240</ID>
          <Description>"ブレイフオーダー発動回数 / Brave order"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_bstat_addr</Address>
          <Offsets>
            <Offset>3C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>249</ID>
      <Description>"VM Card game: enemy 1HP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-08
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_VMCARD_ENEMY_1HP,$process,41 0F B7 82 BC 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_VMCARD_ENEMY_1HP)

label(code)
label(return)

newmem:
  cmp word ptr [r10+000002BC], 1
  jbe code
  mov ax, 1
  mov [r10+000002BC], ax

code:
  movzx eax,word ptr [r10+000002BC]
  jmp return

INJECT_VMCARD_ENEMY_1HP:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_VMCARD_ENEMY_1HP)

[DISABLE]

INJECT_VMCARD_ENEMY_1HP:
  db 41 0F B7 82 BC 02 00 00

unregistersymbol(INJECT_VMCARD_ENEMY_1HP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+35BCEB

ed8_4_PC_JP.exe+35BCC0: 45 0F B7 C8              - movzx r9d,r8w
ed8_4_PC_JP.exe+35BCC4: 4E 8B 14 C9              - mov r10,[rcx+r9*8]
ed8_4_PC_JP.exe+35BCC8: 49 8B 82 A8 02 00 00     - mov rax,[r10+000002A8]
ed8_4_PC_JP.exe+35BCCF: 66 83 78 02 02           - cmp word ptr [rax+02],02
ed8_4_PC_JP.exe+35BCD4: 74 0D                    - je ed8_4_PC_JP.exe+35BCE3
ed8_4_PC_JP.exe+35BCD6: 66 41 FF C0              - inc r8w
ed8_4_PC_JP.exe+35BCDA: 66 41 83 F8 07           - cmp r8w,07
ed8_4_PC_JP.exe+35BCDF: 72 DF                    - jb ed8_4_PC_JP.exe+35BCC0
ed8_4_PC_JP.exe+35BCE1: EB 3E                    - jmp ed8_4_PC_JP.exe+35BD21
ed8_4_PC_JP.exe+35BCE3: 41 80 BB E2 06 00 00 2E  - cmp byte ptr [r11+000006E2],2E
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+35BCEB: 41 0F B7 82 BC 02 00 00  - movzx eax,word ptr [r10+000002BC]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+35BCF3: 44 0F B7 C0              - movzx r8d,ax
ed8_4_PC_JP.exe+35BCF7: 66 41 89 83 E6 06 00 00  - mov [r11+000006E6],ax
ed8_4_PC_JP.exe+35BCFF: 75 20                    - jne ed8_4_PC_JP.exe+35BD21
ed8_4_PC_JP.exe+35BD01: 4A 8B 04 C9              - mov rax,[rcx+r9*8]
ed8_4_PC_JP.exe+35BD05: 48 8B 88 A8 02 00 00     - mov rcx,[rax+000002A8]
ed8_4_PC_JP.exe+35BD0C: 0F B7 41 18              - movzx eax,word ptr [rcx+18]
ed8_4_PC_JP.exe+35BD10: 66 D1 E8                 - shr ax,1
ed8_4_PC_JP.exe+35BD13: 66 44 3B C0              - cmp r8w,ax
ed8_4_PC_JP.exe+35BD17: 0F 9E C0                 - setle al
ed8_4_PC_JP.exe+35BD1A: 41 88 83 0B 08 00 00     - mov [r11+0000080B],al
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>285</ID>
      <Description>"ARCUS II game "ポムっと" (Pom)"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_PON_GAME_DATA,$process,44 8B 87 D4 7A 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_PON_GAME_DATA)

label(code)
label(return)
label(i_base_pdata_1)
label(i_base_pdata_2)
label(is_lock_cp)

newmem:
  cmp rdi, [i_base_pdata_1]
  je code
  cmp rdi, [i_base_pdata_2]
  je code_pre
  cmp qword ptr [i_base_pdata_1], 0
  je save1
  cmp qword ptr [i_base_pdata_2], 0
  je save2
  //jmp code
// reset
  vxorps xmm15, xmm15, xmm15
  movaps [i_base_pdata_1], xmm15
  //mov dword ptr [i_base_pdata_1], 0
  //mov dword ptr [i_base_pdata_1], 0
  jmp newmem

save1:
  mov [i_base_pdata_1], rdi
  jmp code

save2:
  cmp dword ptr [i_base_pdata_2], 0
  jne @F
  mov [i_base_pdata_2], rdi

  push r15
  mov r15, [i_base_pdata_1]
  cmp rdi, r15
  ja swap_done
  mov [i_tmp1], r15
  mov [i_base_pdata_1], rdi
  mov [i_base_pdata_2], r15

swap_done:
  pop r15
  jmp code

code_pre:
  cmp dword ptr [is_lock_cp], 1
  jne code

  push r15
  mov r15, [i_base_pdata_1]
  test r15, r15
  jz @F

  lea r15, [r15+7AD4]
  mov dword ptr [r15], #500

  mov r15, [i_base_pdata_2]
  test r15, r15
  jz @F

  lea r15, [r15+7AD4]
  mov dword ptr [r15], 0

@@:
  pop r15

code:
  mov r8d,[rdi+00007AD4]
  jmp return
align 10 cc
  i_base_pdata_1:
  dq 0
  i_base_pdata_2:
  dq 0
  i_tmp1:
  dq 0
  is_lock_cp:
  dd 1

INJECT_GET_PON_GAME_DATA:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_PON_GAME_DATA)
registersymbol(i_base_pdata_1)
registersymbol(i_base_pdata_2)
registersymbol(is_lock_cp)


[DISABLE]

INJECT_GET_PON_GAME_DATA:
  db 44 8B 87 D4 7A 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+353E28

ed8_4_PC_JP.exe+353E00: B8 1F 85 EB 51        - mov eax,51EB851F
ed8_4_PC_JP.exe+353E05: F7 E9                 - imul ecx
ed8_4_PC_JP.exe+353E07: C1 FA 05              - sar edx,05
ed8_4_PC_JP.exe+353E0A: 8B C2                 - mov eax,edx
ed8_4_PC_JP.exe+353E0C: C1 E8 1F              - shr eax,1F
ed8_4_PC_JP.exe+353E0F: 03 D0                 - add edx,eax
ed8_4_PC_JP.exe+353E11: 89 97 E4 7A 00 00     - mov [rdi+00007AE4],edx
ed8_4_PC_JP.exe+353E17: 44 89 B7 E8 7A 00 00  - mov [rdi+00007AE8],r14d
ed8_4_PC_JP.exe+353E1E: 44 8B 8F D8 7A 00 00  - mov r9d,[rdi+00007AD8]
ed8_4_PC_JP.exe+353E25: 41 8B C1              - mov eax,r9d
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+353E28: 44 8B 87 D4 7A 00 00  - mov r8d,[rdi+00007AD4]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+353E2F: 45 3B C8              - cmp r9d,r8d
ed8_4_PC_JP.exe+353E32: 74 73                 - je ed8_4_PC_JP.exe+353EA7
ed8_4_PC_JP.exe+353E34: 7E 34                 - jle ed8_4_PC_JP.exe+353E6A
ed8_4_PC_JP.exe+353E36: 41 8B C9              - mov ecx,r9d
ed8_4_PC_JP.exe+353E39: B8 89 88 88 88        - mov eax,88888889
ed8_4_PC_JP.exe+353E3E: 41 2B C8              - sub ecx,r8d
ed8_4_PC_JP.exe+353E41: F7 E9                 - imul ecx
ed8_4_PC_JP.exe+353E43: 41 8B C1              - mov eax,r9d
ed8_4_PC_JP.exe+353E46: 03 D1                 - add edx,ecx
ed8_4_PC_JP.exe+353E48: C1 FA 05              - sar edx,05
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>290</ID>
          <Description>"Lock CP?"</Description>
          <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>is_lock_cp</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>286</ID>
          <Description>"CP #1"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_pdata_1</Address>
          <Offsets>
            <Offset>7AD4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>287</ID>
          <Description>"CP #2"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_pdata_2</Address>
          <Offsets>
            <Offset>7AD4</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>185</ID>
      <Description>"Get Mira / Sepiths"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MIRA,$process,44 8B 80 E8 A5 9A 00) // should be unique
alloc(newmem,$1000,INJECT_GET_MIRA)

label(code)
label(return)
label(i_base_mira_addr)

newmem:
  mov [i_base_mira_addr], rax

code:
  mov r8d,[rax+009AA5E8]
  jmp return
align 10 cc
  i_base_mira_addr:
  dq 0

INJECT_GET_MIRA:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_MIRA)
registersymbol(i_base_mira_addr)

[DISABLE]

INJECT_GET_MIRA:
  db 44 8B 80 E8 A5 9A 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+207D48

ed8_4_PC_JP.exe+207D16: 48 85 C9                 - test rcx,rcx
ed8_4_PC_JP.exe+207D19: 74 1A                    - je ed8_4_PC_JP.exe+207D35
ed8_4_PC_JP.exe+207D1B: 48 8B 05 96 1C B0 00     - mov rax,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+207D22: 44 8B 80 A4 A5 9A 00     - mov r8d,[rax+009AA5A4]
ed8_4_PC_JP.exe+207D29: 48 8D 15 9C 73 68 00     - lea rdx,[ed8_4_PC_JP.exe+88F0CC]
ed8_4_PC_JP.exe+207D30: E8 9B 5F 2C 00           - call ed8_4_PC_JP.exe+4CDCD0
ed8_4_PC_JP.exe+207D35: 48 8B 8F 58 21 00 00     - mov rcx,[rdi+00002158]
ed8_4_PC_JP.exe+207D3C: 48 85 C9                 - test rcx,rcx
ed8_4_PC_JP.exe+207D3F: 74 1A                    - je ed8_4_PC_JP.exe+207D5B
ed8_4_PC_JP.exe+207D41: 48 8B 05 70 1C B0 00     - mov rax,[ed8_4_PC_JP.exe+D099B8]
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+207D48: 44 8B 80 E8 A5 9A 00     - mov r8d,[rax+009AA5E8]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+207D4F: 48 8D 15 76 73 68 00     - lea rdx,[ed8_4_PC_JP.exe+88F0CC]
ed8_4_PC_JP.exe+207D56: E8 75 5F 2C 00           - call ed8_4_PC_JP.exe+4CDCD0
ed8_4_PC_JP.exe+207D5B: 4C 8D 8C 24 D0 00 00 00  - lea r9,[rsp+000000D0]
ed8_4_PC_JP.exe+207D63: 4C 8D 84 24 E0 00 00 00  - lea r8,[rsp+000000E0]
ed8_4_PC_JP.exe+207D6B: 48 8D 94 24 E8 00 00 00  - lea rdx,[rsp+000000E8]
ed8_4_PC_JP.exe+207D73: 48 8B 0D 3E 1C B0 00     - mov rcx,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+207D7A: E8 31 A0 0E 00           - call ed8_4_PC_JP.exe+2F1DB0
ed8_4_PC_JP.exe+207D7F: 48 8B 8F 60 21 00 00     - mov rcx,[rdi+00002160]
ed8_4_PC_JP.exe+207D86: 48 85 C9                 - test rcx,rcx
ed8_4_PC_JP.exe+207D89: 74 27                    - je ed8_4_PC_JP.exe+207DB2
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>242</ID>
          <Description>"Usage: Menu -&gt; Item"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>196</ID>
          <Description>"Set min. sepiths"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-07
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_SEPH,$process,8B 84 88 88 A5 9A 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_SEPH)

label(code)
label(return)

newmem:
  cmp dword ptr [rax+rcx*4+009AA588], #24667
  jae code
  push r15
  mov r15d, #24667
  mov [rax+rcx*4+009AA588], r15d
  pop r15

code:
  mov eax,[rax+rcx*4+009AA588]
  jmp return

INJECT_SET_MIN_SEPH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_MIN_SEPH)



aobscanmodule(INJECT_SET_MIN_SPIECE,$process,44 8B 80 A4 A5 9A 00) // should be unique
alloc(newmem1,$1000,INJECT_SET_MIN_SPIECE)

label(code1)
label(return1)

newmem1:
  cmp dword ptr [rax+009AA5A4], #24668
  jae code1

  mov r8d, #24668
  mov [rax+009AA5A4], r8d


code1:
  mov r8d,[rax+009AA5A4]
  jmp return1

INJECT_SET_MIN_SPIECE:
  jmp newmem1
  nop 2
return1:
registersymbol(INJECT_SET_MIN_SPIECE)


[DISABLE]

INJECT_SET_MIN_SEPH:
  db 8B 84 88 88 A5 9A 00

INJECT_SET_MIN_SPIECE:
  db 44 8B 80 A4 A5 9A 00

unregistersymbol(INJECT_SET_MIN_SEPH)
dealloc(newmem)

unregistersymbol(INJECT_SET_MIN_SPIECE)
dealloc(newmem1)
{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+3232AA

ed8_4_PC_JP.exe+323298: CC                    - int 3 
ed8_4_PC_JP.exe+323299: CC                    - int 3 
ed8_4_PC_JP.exe+32329A: CC                    - int 3 
ed8_4_PC_JP.exe+32329B: CC                    - int 3 
ed8_4_PC_JP.exe+32329C: CC                    - int 3 
ed8_4_PC_JP.exe+32329D: CC                    - int 3 
ed8_4_PC_JP.exe+32329E: CC                    - int 3 
ed8_4_PC_JP.exe+32329F: CC                    - int 3 
ed8_4_PC_JP.exe+3232A0: 48 8B 05 11 67 9E 00  - mov rax,[ed8_4_PC_JP.exe+D099B8]
ed8_4_PC_JP.exe+3232A7: 48 63 CA              - movsxd  rcx,edx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+3232AA: 8B 84 88 88 A5 9A 00  - mov eax,[rax+rcx*4+009AA588]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+3232B1: C3                    - ret 
ed8_4_PC_JP.exe+3232B2: CC                    - int 3 
ed8_4_PC_JP.exe+3232B3: CC                    - int 3 
ed8_4_PC_JP.exe+3232B4: CC                    - int 3 
ed8_4_PC_JP.exe+3232B5: CC                    - int 3 
ed8_4_PC_JP.exe+3232B6: CC                    - int 3 
ed8_4_PC_JP.exe+3232B7: CC                    - int 3 
ed8_4_PC_JP.exe+3232B8: CC                    - int 3 
ed8_4_PC_JP.exe+3232B9: CC                    - int 3 
ed8_4_PC_JP.exe+3232BA: CC                    - int 3 
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>243</ID>
          <Description>"Data+"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>186</ID>
              <Description>"地のセピス (Orange)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA588</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>188</ID>
              <Description>"水のセピス (Blue)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA58C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>189</ID>
              <Description>"火のセピス (Red)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA590</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>190</ID>
              <Description>"風のセピス (Green)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA594</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>191</ID>
              <Description>"時のセピス (Black)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA598</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>192</ID>
              <Description>"空のセピス (Golden)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA59C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>193</ID>
              <Description>"幻のセピス (Silver)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5A0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>194</ID>
              <Description>"セピス塊 (piece)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5A4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>187</ID>
              <Description>"Mira"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5E8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>282</ID>
              <Description>"メダル (Medal)"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5F4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>195</ID>
              <Description>"Charge"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_mira_addr</Address>
              <Offsets>
                <Offset>9AA5FC</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>252</ID>
      <Description>"Get stats"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-08
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MAIN_STATS,$process,8B 84 81 8C 36 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_MAIN_STATS)

label(code)
label(return)
label(i_base_main_stats_addr)
label(i_base_main_stats_root_addr)

newmem:
  cmp eax, 12
  jne code

  push r15
  lea r15, [rcx+rax*4+0000368C]
  mov [i_base_main_stats_addr], r15
  mov [i_base_main_stats_root_addr], rcx
  pop r15

code:
  mov eax,[rcx+rax*4+0000368C]
  jmp return
align 10 cc
  i_base_main_stats_addr:
  dq 0
  i_base_main_stats_root_addr:
  dq 0

INJECT_GET_MAIN_STATS:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_MAIN_STATS)
registersymbol(i_base_main_stats_addr)
registersymbol(i_base_main_stats_root_addr)

[DISABLE]

INJECT_GET_MAIN_STATS:
  db 8B 84 81 8C 36 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+2EEF7A

ed8_4_PC_JP.exe+2EEF69: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6A: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6B: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6C: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6D: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6E: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF6F: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF70: 81 FA 00 01 00 00     - cmp edx,00000100
ed8_4_PC_JP.exe+2EEF76: 73 0A                 - jae ed8_4_PC_JP.exe+2EEF82
ed8_4_PC_JP.exe+2EEF78: 8B C2                 - mov eax,edx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+2EEF7A: 8B 84 81 8C 36 00 00  - mov eax,[rcx+rax*4+0000368C]
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+2EEF81: C3                    - ret 
ed8_4_PC_JP.exe+2EEF82: 33 C0                 - xor eax,eax
ed8_4_PC_JP.exe+2EEF84: C3                    - ret 
ed8_4_PC_JP.exe+2EEF85: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF86: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF87: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF88: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF89: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF8A: CC                    - int 3 
ed8_4_PC_JP.exe+2EEF8B: CC                    - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>265</ID>
          <Description>"Usage: menu "メイン" -&gt; 総合成績"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>294</ID>
          <Description>"Keep min. 絆 / bonding pt"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : ed8_4_PC_JP.exe
  Version: 
  Date   : 2024-04-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_MIN_KIZ_PT,$process,44 89 84 81 8C 36 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_MIN_KIZ_PT)

label(code)
label(return)

newmem:
  push r15
  push r14

  mov r14, [i_base_main_stats_root_addr]
  cmp rcx, r14
  jne endp

  mov r14, A
  cmp rax, r14
  jne endp

  test r8d, r8d
  jnz endp
  mov r8d, 1

endp:
  pop r14
  pop r15

code:
  mov [rcx+rax*4+0000368C],r8d
  jmp return

INJECT_SET_MIN_KIZ_PT:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SET_MIN_KIZ_PT)

[DISABLE]

INJECT_SET_MIN_KIZ_PT:
  db 44 89 84 81 8C 36 00 00

unregistersymbol(INJECT_SET_MIN_KIZ_PT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ed8_4_PC_JP.exe+30877A

ed8_4_PC_JP.exe+308769: CC                       - int 3 
ed8_4_PC_JP.exe+30876A: CC                       - int 3 
ed8_4_PC_JP.exe+30876B: CC                       - int 3 
ed8_4_PC_JP.exe+30876C: CC                       - int 3 
ed8_4_PC_JP.exe+30876D: CC                       - int 3 
ed8_4_PC_JP.exe+30876E: CC                       - int 3 
ed8_4_PC_JP.exe+30876F: CC                       - int 3 
ed8_4_PC_JP.exe+308770: 81 FA 00 01 00 00        - cmp edx,00000100
ed8_4_PC_JP.exe+308776: 73 0A                    - jae ed8_4_PC_JP.exe+308782
ed8_4_PC_JP.exe+308778: 8B C2                    - mov eax,edx
// ---------- INJECTING HERE ----------
ed8_4_PC_JP.exe+30877A: 44 89 84 81 8C 36 00 00  - mov [rcx+rax*4+0000368C],r8d
// ---------- DONE INJECTING  ----------
ed8_4_PC_JP.exe+308782: C3                       - ret 
ed8_4_PC_JP.exe+308783: CC                       - int 3 
ed8_4_PC_JP.exe+308784: CC                       - int 3 
ed8_4_PC_JP.exe+308785: CC                       - int 3 
ed8_4_PC_JP.exe+308786: CC                       - int 3 
ed8_4_PC_JP.exe+308787: CC                       - int 3 
ed8_4_PC_JP.exe+308788: CC                       - int 3 
ed8_4_PC_JP.exe+308789: CC                       - int 3 
ed8_4_PC_JP.exe+30878A: CC                       - int 3 
ed8_4_PC_JP.exe+30878B: CC                       - int 3 
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>253</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>264</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>263</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-30</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>262</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-24</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>292</ID>
          <Description>"絆pt / bonding pt."</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-20</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>261</ID>
          <Description>"絆pt / bonding pt. high watermark"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-1C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>260</ID>
          <Description>"教官ランク / Instructor Rank"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>259</ID>
          <Description>"総AP #1"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>258</ID>
          <Description>"総AP #2"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>-8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>257</ID>
          <Description>"トールズ再起度 / Thors Rebuild Rating"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>254</ID>
          <Description>"再起グレート / Great Revival"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>255</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>54</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>256</ID>
          <Description>"??"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_main_stats_addr</Address>
          <Offsets>
            <Offset>58</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>30</ID>
      <Description>"英雄伝説 閃の軌跡IV 1.2.1 /  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/sennokiseki4/?&amp;47129ea91c"</Description>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>AddressList.Header.OnSectionClick = nil

</LuaScript>
</CheatTable>
