<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>0</ID>
      <Description>"Compact Mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then return end

if not toggleCompactView then
    function toggleCompactView(sender, forceEnable)
        local isCompactMode = not (compactViewMenuItem.Caption == 'Compact View Mode')
        if forceEnable ~= nil then
            isCompactMode = not forceEnable
        end

    synchronize(function()
        compactViewMenuItem.Caption = isCompactMode and 'Compact View Mode' or 'Full View Mode'
        getMainForm().Splitter1.Visible = isCompactMode
        getMainForm().Panel4.Visible    = isCompactMode
        getMainForm().Panel5.Visible    = isCompactMode
    end)
end
end

if not createCompactViewMenu then
    function createCompactViewMenu()
        if isCompactMenuCreated then return end

    synchronize(function()
        local mainMenu = getMainForm().Menu.Items
        compactViewMenuItem = createMenuItem(mainMenu)
        mainMenu.add(compactViewMenuItem)
        compactViewMenuItem.Caption = 'Compact View Mode'
        compactViewMenuItem.OnClick = toggleCompactView
    end)

    isCompactMenuCreated = true
end
end

createCompactViewMenu()
toggleCompactView(nil, true)

[DISABLE]
{$lua}
if toggleCompactView then
    toggleCompactView(nil, false)
end

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Toggle Scripts (auto attach process)"</Description>
      <Color>0080FF</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
{$lua}
if (syntaxcheck) then return end
synchronize(function()
  getLuaEngine().menuItem5.doClick()
  getLuaEngine().Close()
end)


-- attach process
local processName = "DWORIGINS.exe"
local pid = getProcessIDFromProcessName(processName)
if pid ~= nil and pid &gt; 0 then
  local currentPid = getOpenedProcessID() or 0
  if currentPid ~= pid then
    openProcess(processName)
    print("Attached to: " .. processName)
    Sleep(333)
  else
    print("Already attached to: " .. processName)
  end
end
synchronize(function()
  getLuaEngine().Close()
end)


local enableBattleScripts = {
  0, -- "Compact Mode"
  2, -- "Battle: When hit, try to maintain HP or min. musou / skill pt"
  31, -- "(?) Battle: inf. meat buns / 肉まん"
  32, -- "Battle: skill pt (戰功) multiplier"
  34, -- "Battle: skill XP multiplier"
  36, -- "Battle: weapon EXP multiplier"
  39, -- "Battle: K.O. count multiplier"
  41, -- "Battle: inf. horse charge"
  42, -- "Battle: Horse EXP multiplier"
  44, -- "Battle: infinite item usage except for meat buns"
  45, -- "Battle: Trainings count multiplier"
  47, -- "(?) Battle: Get gained skill exp"
  54, -- "(?) Battle: Guard skill timer multiplier"
  56, -- "(?) Level of Peace (太平値) multiplier"
  59, -- "(?) Get last value of Level of Peace"
  61, -- "Get all level of peace value"
  75, -- "Set the stock of consumable items"
  82, -- "Get weapon data"
  99, -- "Get money"
  3, -- "Retrieve the player's base HP if not already obtained / Additional HP options"
  26, -- "Musou gauge multiplier"
  28, -- "Skill gauge multiplier"
  6, -- "Guards / 護衛兵 (affects nearby units only)"
}
local addressList = getAddressList()
synchronize(function()
  for _, id in ipairs(enableBattleScripts) do
    local memRec = addressList.getMemoryRecordByID(id)
    if memRec and not memRec.Active then
      memRec.Active = true
      sleep(30)
    end
    addressList.refresh()
  end
end)
synchronize(function() getLuaEngine().Close() end)
[DISABLE]
{$lua}
if (syntaxcheck) then return end
synchronize(function()
  getLuaEngine().menuItem5.doClick()
  getLuaEngine().Close()
end)

local disableBattleScripts = {
  9, -- "Number of  guards (護衛兵):"
  7, -- "Try to fill guards (護衛兵) HP?"
  6, -- "Guards / 護衛兵 (affects nearby units only)"
  28, -- "Skill gauge multiplier"
  26, -- "Musou gauge multiplier"
  17, -- "Max (nearby?) enemy non-trash mob HP ratio"
  11, -- "min. HP Ratio"
  3, -- "Retrieve the player's base HP if not already obtained / Additional HP options"
  105, -- "DYNASTY WARRIORS: ORIGINS; 真・三國無双 ORIGINS 1.0.0.9  /  https://opencheattables.com"
  99, -- "Get money"
  82, -- "Get weapon data"
  79, -- "Get bonds level in Shui Jing Retreat (水鏡庵)"
  75, -- "Set the stock of consumable items"
  72, -- "Get horse EXP"
  61, -- "Get all level of peace value"
  59, -- "(?) Get last value of Level of Peace"
  56, -- "(?) Level of Peace (太平値) multiplier"
  54, -- "(?) Battle: Guard skill timer multiplier"
  47, -- "(?) Battle: Get gained skill exp"
  45, -- "Battle: Trainings count multiplier"
  44, -- "Battle: infinite item usage except for meat buns"
  42, -- "Battle: Horse EXP multiplier"
  41, -- "Battle: inf. horse charge"
  39, -- "Battle: K.O. count multiplier"
  36, -- "Battle: weapon EXP multiplier"
  34, -- "Battle: skill XP multiplier"
  32, -- "Battle: skill pt (戰功) multiplier"
  31, -- "(?) Battle: inf. meat buns / 肉まん"
  2, -- "Battle: When hit, try to maintain HP or min. musou / skill pt"
  0, -- "Compact Mode"
}
local addressList = getAddressList()
synchronize(function()
  for _, id in ipairs(disableBattleScripts) do
    local memRec = addressList.getMemoryRecordByID(id)
    if memRec and memRec.Active then
      memRec.Active = false
      sleep(30)
    end
    addressList.refresh()
  end
end)
synchronize(function() getLuaEngine().Close() end)
-- Comments:
-- ID: 0, Description: "Compact Mode", Depth: 0
-- ID: 2, Description: "Battle: When hit, try to maintain HP or min. musou / skill pt", Depth: 0
--   ID: 3, Description: "Retrieve the player's base HP if not already obtained / Additional HP options", Depth: 1
--     ID: 6, Description: "Guards / 護衛兵 (affects nearby units only)", Depth: 2
--       ID: 7, Description: "Try to fill guards (護衛兵) HP?", Depth: 3
--       ID: 9, Description: "Number of  guards (護衛兵):", Depth: 3
--   ID: 11, Description: "min. HP Ratio", Depth: 1
--   ID: 17, Description: "Max (nearby?) enemy non-trash mob HP ratio", Depth: 1
--   ID: 26, Description: "Musou gauge multiplier", Depth: 1
--   ID: 28, Description: "Skill gauge multiplier", Depth: 1
-- ID: 31, Description: "(?) Battle: inf. meat buns / 肉まん", Depth: 0
-- ID: 32, Description: "Battle: skill pt (戰功) multiplier", Depth: 0
-- ID: 34, Description: "Battle: skill XP multiplier", Depth: 0
-- ID: 36, Description: "Battle: weapon EXP multiplier", Depth: 0
-- ID: 39, Description: "Battle: K.O. count multiplier", Depth: 0
-- ID: 41, Description: "Battle: inf. horse charge", Depth: 0
-- ID: 42, Description: "Battle: Horse EXP multiplier", Depth: 0
-- ID: 44, Description: "Battle: infinite item usage except for meat buns", Depth: 0
-- ID: 45, Description: "Battle: Trainings count multiplier", Depth: 0
-- ID: 47, Description: "(?) Battle: Get gained skill exp", Depth: 0
-- ID: 54, Description: "(?) Battle: Guard skill timer multiplier", Depth: 0
-- ID: 56, Description: "(?) Level of Peace (太平値) multiplier", Depth: 0
-- ID: 59, Description: "(?) Get last value of Level of Peace", Depth: 0
-- ID: 61, Description: "Get all level of peace value", Depth: 0
-- ID: 72, Description: "Get horse EXP", Depth: 0
-- ID: 75, Description: "Set the stock of consumable items", Depth: 0
-- ID: 79, Description: "Get bonds level in Shui Jing Retreat (水鏡庵)", Depth: 0
-- ID: 82, Description: "Get weapon data", Depth: 0
-- ID: 99, Description: "Get money", Depth: 0
-- ID: 105, Description: "DYNASTY WARRIORS: ORIGINS; 真・三國無双 ORIGINS 1.0.0.9  /  https://opencheattables.com", Depth: 0

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>2</ID>
      <Description>"Battle: When hit, try to maintain HP or min. musou / skill pt"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_HP,$process,F3 0F 10 51 38 0F 2F E2) // should be unique
alloc(newmem,$1000,INJECT_INF_HP)

label(code)
label(return)
label(vf_hp_ratio)
label(i_base_hp_addr)
label(vf_min_musou_ratio)
label(vf_frndly_hp_ratio)
label(vf_trash_mob_hp_threshold vf_min_skill_ratio vf_max_enemy_hp_ratio)

newmem:
  pushfq
  cmp qword ptr [rcx+10], 0
  je code_pre
  push rax
  movaps [bak14], xmm14
  movaps [bak15], xmm15

  mov rax, [rcx+10]
  test rax, rax
  jz endp

  cmp dword ptr [rax+B8], 2 // trash mob
  je endp

  //vmovss xmm15, [vf_trash_mob_hp_threshold]
  //vucomiss xmm15, dword ptr [rcx+34]
  //jae endp

  cmp dword ptr [rax+2C], 0
  jne to_non_player
  cmp dword ptr [rcx+44], BF800000 // -1
  je to_non_player

to_player:
  mov [i_base_hp_addr], rcx
  movss xmm15, [rcx+34]
  vmovss xmm14, [vf_hp_ratio]
  vmulss xmm15, xmm14, xmm15
  vucomiss xmm15, [rcx+38]
  jbe @F
  movss [rcx+38], xmm15

@@:
  vmovss xmm14, [vf_min_musou_ratio]
  vmovss xmm15, [rcx+40]
  vmulss xmm15, xmm14, xmm15
  vucomiss xmm15, [rcx+44]
  jbe @F
  movss [rcx+44], xmm15

@@:
  vmovss xmm14, [vf_min_skill_ratio]
  vmovss xmm15, [rcx+6C]
  vmulss xmm15, xmm14, xmm15
  vucomiss xmm15, [rcx+70]
  jbe endp
  movss [rcx+70], xmm15

  jmp endp

to_non_player:
  //cmp dword ptr [rax+38], 0
  //ja to_enemy
  cmp dword ptr [rax+40], 0
  jne to_enemy

  //debug
  movss xmm2,[rcx+38]
  // musou
  cmp dword ptr [vf_frndly_hp_ratio], 0  // friendly HP ratio is 0, skip
  je endp
  movss xmm15, [rcx+40]
  movss [rcx+44], xmm15

@@:
  //
  movss xmm15, [rcx+34]
  vmovss xmm14, [vf_frndly_hp_ratio]
  vmulss xmm15, xmm14, xmm15
  vucomiss xmm15, [rcx+38]
  jbe @F
  movss [rcx+38], xmm15

@@:

  jmp endp
to_enemy:
  // not trash mob
  // not friendly unit
  movss xmm15, [rcx+34]
  vmovss xmm14, [vf_max_enemy_hp_ratio]
  vmulss xmm15, xmm14, xmm15
  vucomiss xmm15, [rcx+38]
  jae @F
  movss [rcx+38], xmm15


  db EB 3B 54
  db 68 69 73 20 74 61 62 6C 65
  db 20 63 6F 6D
  db 65 73 20 66 72 6F 6D 20
  db 68 74 74 70
  db 73 3A 2F 2F 6F 70 65 6E 63 68 65 61
  db 74 74 61 62
  db 6C 65
  db 73 2E
  db 63 6F 6D 20
  db 2F
  db 20
  db 43 45 20 37
  db 2E 34 2B

endp:
  movaps xmm14, [bak14]
  movaps xmm15, [bak15]
  pop rax

code_pre:
  popfq

code:
  movss xmm2,[rcx+38]
  jmp return
align 10 cc
  bak14:
  dq 0 0
  bak15:
  dq 0 0
  vf_400:
  dd (float)100
  vf_hp_ratio:
  dd (float)0.51
  i_base_hp_addr:
  dq 0
  vf_min_musou_ratio:
  dd (float)0.8
  vf_frndly_hp_ratio:
  dd (float)0.175
  vf_m1:
  dd (float)-1
  vf_trash_mob_hp_threshold:
  dd (float)249
  vf_min_skill_ratio:
  dd (float)0.8
  vf_max_enemy_hp_ratio:
  dd (float)0.95


INJECT_INF_HP:
  jmp newmem
return:
registersymbol(INJECT_INF_HP)
registersymbol(vf_hp_ratio)
registersymbol(i_base_hp_addr)
registersymbol(vf_min_musou_ratio)
registersymbol(vf_frndly_hp_ratio)
registersymbol(vf_trash_mob_hp_threshold vf_min_skill_ratio vf_max_enemy_hp_ratio)

[DISABLE]

INJECT_INF_HP:
  db F3 0F 10 51 38

unregistersymbol(INJECT_INF_HP)
unregistersymbol(vf_hp_ratio)
unregistersymbol(i_base_hp_addr)
unregistersymbol(vf_min_musou_ratio)
unregistersymbol(vf_frndly_hp_ratio)
unregistersymbol(vf_trash_mob_hp_threshold vf_min_skill_ratio vf_max_enemy_hp_ratio)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+10B623

DWORIGINS.exe+10B609: 89 41 34              - mov [rcx+34],eax
DWORIGINS.exe+10B60C: C3                    - ret
DWORIGINS.exe+10B60D: CC                    - int 3
DWORIGINS.exe+10B60E: CC                    - int 3
DWORIGINS.exe+10B60F: CC                    - int 3
DWORIGINS.exe+10B610: 48 83 EC 28           - sub rsp,28
DWORIGINS.exe+10B614: 0F 57 E4              - xorps xmm4,xmm4
DWORIGINS.exe+10B617: 48 8B D1              - mov rdx,rcx
DWORIGINS.exe+10B61A: 0F 2F E1              - comiss xmm4,xmm1
DWORIGINS.exe+10B61D: 0F 87 B8 00 00 00     - ja DWORIGINS.exe+10B6DB
// ---------- INJECTING HERE ----------
DWORIGINS.exe+10B623: F3 0F 10 51 38        - movss xmm2,[rcx+38]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+10B628: 0F 2F E2              - comiss xmm4,xmm2
DWORIGINS.exe+10B62B: 0F 87 AA 00 00 00     - ja DWORIGINS.exe+10B6DB
DWORIGINS.exe+10B631: 8B 41 18              - mov eax,[rcx+18]
DWORIGINS.exe+10B634: 48 A9 00 00 00 20     - test rax,20000000
DWORIGINS.exe+10B63A: 0F 87 9B 00 00 00     - ja DWORIGINS.exe+10B6DB
DWORIGINS.exe+10B640: 48 8B 41 10           - mov rax,[rcx+10]
DWORIGINS.exe+10B644: 0F 57 C0              - xorps xmm0,xmm0
DWORIGINS.exe+10B647: F3 0F 10 59 34        - movss xmm3,[rcx+34]
DWORIGINS.exe+10B64C: F6 80 00 02 00 00 02  - test byte ptr [rax+00000200],02
DWORIGINS.exe+10B653: 74 16                 - je DWORIGINS.exe+10B66B
DWORIGINS.exe+10B655 - B9 5C020000           - mov ecx,0000025C
DWORIGINS.exe+10B65A - E8 5154FAFF           - call DWORIGINS.exe+B0AB0
DWORIGINS.exe+10B65F - F3 0F59 C3            - mulss xmm0,xmm3
DWORIGINS.exe+10B663 - F3 0F59 05 0D342A03   - mulss xmm0,[DWORIGINS.exe+33AEA78]
DWORIGINS.exe+10B66B - F3 0F5C D1            - subss xmm2,xmm1
DWORIGINS.exe+10B66F - 0F2F D3               - comiss xmm2,xmm3
DWORIGINS.exe+10B672 - 73 07                 - jae DWORIGINS.exe+10B67B
DWORIGINS.exe+10B674 - F3 0F5F C2            - maxss xmm0,xmm2
DWORIGINS.exe+10B678 - 0F28 D8               - movaps xmm3,xmm0
DWORIGINS.exe+10B67B - 0F2F CC               - comiss xmm1,xmm4
DWORIGINS.exe+10B67E - F3 0F11 5A 38         - movss [rdx+38],xmm3
DWORIGINS.exe+10B683 - 76 0C                 - jna DWORIGINS.exe+10B691
DWORIGINS.exe+10B685 - 8B 82 14010000        - mov eax,[rdx+00000114]
DWORIGINS.exe+10B68B - 89 82 10010000        - mov [rdx+00000110],eax
DWORIGINS.exe+10B691 - 80 BA 54010000 00     - cmp byte ptr [rdx+00000154],00
DWORIGINS.exe+10B698 - 74 20                 - je DWORIGINS.exe+10B6BA
DWORIGINS.exe+10B69A - F3 0F10 05 A63C2A03   - movss xmm0,[DWORIGINS.exe+33AF348]
DWORIGINS.exe+10B6A2 - F3 0F5C 82 58010000   - subss xmm0,[rdx+00000158]
DWORIGINS.exe+10B6AA - F3 0F58 82 60010000   - addss xmm0,[rdx+00000160]
DWORIGINS.exe+10B6B2 - F3 0F11 82 60010000   - movss [rdx+00000160],xmm0
DWORIGINS.exe+10B6BA - F3 0F58 8A 5C010000   - addss xmm1,[rdx+0000015C]
DWORIGINS.exe+10B6C2 - C7 82 58010000 0000A040 - mov [rdx+00000158],40A00000
DWORIGINS.exe+10B6CC - C6 82 54010000 01     - mov byte ptr [rdx+00000154],01
DWORIGINS.exe+10B6D3 - F3 0F11 8A 5C010000   - movss [rdx+0000015C],xmm1
DWORIGINS.exe+10B6DB - 48 83 C4 28           - add rsp,28
DWORIGINS.exe+10B6DF - C3                    - ret

}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>3</ID>
          <Description>"Retrieve the player's base HP if not already obtained / Additional HP options"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-19
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_HP_BASE,$process,8B 47 38 89 47 3C) // should be unique
alloc(newmem,$1000,INJECT_GET_HP_BASE)

label(code)
label(return is_full_hp is_guard_full_hp i_guard_cnt is_keep_skill_pt2)

newmem:

  mov dword ptr [i_chk_flag], 0
  cmp qword ptr [i_base_hp_addr], 0
  jne chk_hp_pre1

  cmp qword ptr [rdi+10], 0
  je code
  jmp chk_hp_aft1

chk_hp_pre1:
  mov dword ptr [i_chk_flag], 1

chk_hp_aft1:
  push rax
  pushfq

  cmp dword ptr [i_chk_flag], 1
  je chk_hp

  mov rax, [rdi+10]
  test rax, rax
  jz endp

  cmp dword ptr [rax+28], 0 // player
  je @F

  cmp dword ptr [is_guard_full_hp], 1  // 義勇軍 HP option
  jne @F

  push r15
  mov r15d, [i_guard_cnt]
  cmp dword ptr [rax+28], r15d  // 義勇軍 should be first created (char. creation order/ID; replacable if dead)
  pop r15
  ja @F
  cmp dword ptr [rax+40], 0  // 我方
  jne @F

  //cmp dword ptr [rdi+B8], 2 // guard type is trash mob
  //jne @F

  vmovss xmm15, [rdi+34]
  vmovss [rdi+38], xmm15
  vmovss [rdi+3C], xmm15

@@:
  cmp dword ptr [rdi+B8], 2 // trash mob
  je endp

  cmp dword ptr [rax+2C], 0
  jne endp

  cmp dword ptr [rcx+44], BF800000 // -1
  je endp

  mov [i_base_hp_addr], rdi

chk_hp:
  mov dword ptr [i_chk_flag], 0
  cmp rdi, [i_base_hp_addr]
  jne endp

  cmp dword ptr [is_full_hp], 1
  jne chk_skill_pt

  vmovss xmm15, [rdi+34]
  mulss xmm15, dword ptr [vf_hp_ratio]
  vmovss xmm14, [rdi+38]
  vucomiss xmm14, xmm15
  jae chk_skill_pt
  vmovss [rdi+38], xmm15

chk_skill_pt:
  cmp dword ptr [is_keep_skill_pt2], 1
  jne endp
  vmovss xmm15, [rdi+6C]
  vmovss xmm14, [vf_min_skill_ratio]
  vmulss xmm15, xmm14, xmm15
  vmovss xmm14, [rdi+70]
  vucomiss xmm14, xmm15
  jae endp
  vmovss [rdi+70], xmm15

endp:
  popfq
  pop rax


code:
  mov eax,[rdi+38]
  mov [rdi+3C],eax
  jmp return
align 10 cc
  i_chk_flag:
  dd 0
  is_full_hp:
  dd 1
  is_guard_full_hp:
  dd 1
  i_guard_cnt:
  dd 32
  is_keep_skill_pt2:
  dd 1

INJECT_GET_HP_BASE:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_HP_BASE is_full_hp is_guard_full_hp i_guard_cnt is_keep_skill_pt2)

[DISABLE]

INJECT_GET_HP_BASE:
  db 8B 47 38 89 47 3C

unregistersymbol(INJECT_GET_HP_BASE is_full_hp is_guard_full_hp i_guard_cnt is_keep_skill_pt2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+10DF7A

DWORIGINS.exe+10DF4F: F3 0F 59 C4              - mulss xmm0,xmm4
DWORIGINS.exe+10DF53: F3 0F 58 C2              - addss xmm0,xmm2
DWORIGINS.exe+10DF57: 0F 2F C1                 - comiss xmm0,xmm1
DWORIGINS.exe+10DF5A: 73 07                    - jae DWORIGINS.exe+10DF63
DWORIGINS.exe+10DF5C: 0F 57 C9                 - xorps xmm1,xmm1
DWORIGINS.exe+10DF5F: F3 0F 5F C8              - maxss xmm1,xmm0
DWORIGINS.exe+10DF63: B9 BF 02 00 00           - mov ecx,000002BF
DWORIGINS.exe+10DF68: F3 0F 11 4F 38           - movss [rdi+38],xmm1
DWORIGINS.exe+10DF6D: E8 DE 2B FA FF           - call DWORIGINS.exe+B0B50
DWORIGINS.exe+10DF72: F3 0F 11 87 64 01 00 00  - movss [rdi+00000164],xmm0
// ---------- INJECTING HERE ----------
DWORIGINS.exe+10DF7A: 8B 47 38                 - mov eax,[rdi+38]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+10DF7D: 89 47 3C                 - mov [rdi+3C],eax
DWORIGINS.exe+10DF80: 48 8B 74 24 40           - mov rsi,[rsp+40]
DWORIGINS.exe+10DF85: 48 83 C4 20              - add rsp,20
DWORIGINS.exe+10DF89: 5F                       - pop rdi
DWORIGINS.exe+10DF8A: C3                       - ret 
DWORIGINS.exe+10DF8B: CC                       - int 3 
DWORIGINS.exe+10DF8C: CC                       - int 3 
DWORIGINS.exe+10DF8D: CC                       - int 3 
DWORIGINS.exe+10DF8E: CC                       - int 3 
DWORIGINS.exe+10DF8F: CC                       - int 3 
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>4</ID>
              <Description>"Also try to keep HP here?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_full_hp</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>5</ID>
              <Description>"Also check min. skill pt?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_keep_skill_pt2</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"Guards / 護衛兵 (affects nearby units only)"</Description>
              <Options moHideChildren="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>7</ID>
                  <Description>"Try to fill guards (護衛兵) HP?"</Description>
                  <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>is_guard_full_hp</Address>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>8</ID>
                      <Description>"Set to "No" if the enemy cannot be defeated."</Description>
                      <Color>8000FF</Color>
                      <GroupHeader>1</GroupHeader>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>9</ID>
                  <Description>"Number of  guards (護衛兵):"</Description>
                  <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">24:24
25:25
26:26
27:27
28:28
29:29
30:30
31:31
32:32
33:33
34:34
35:35
36:36
37:37
38:38
39:39
40:40
</DropDownList>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_guard_cnt</Address>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>10</ID>
                      <Description>"Setting a higher number may affect nearby trash mobs on the player's side."</Description>
                      <Color>8000FF</Color>
                      <GroupHeader>1</GroupHeader>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>11</ID>
          <Description>"min. HP Ratio"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_hp_ratio</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>12</ID>
              <Description>"May be ineffective against undefendable attacks."</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>13</ID>
              <Description>"防御不能な攻撃には効果がない可能性があります"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"Min. HP ratio for nearby friendly named characters:"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_frndly_hp_ratio</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>15</ID>
          <Description>"Min. musou ratio"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_musou_ratio</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"Min. skill ratio"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_min_skill_ratio</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>17</ID>
          <Description>"Max (nearby?) enemy non-trash mob HP ratio"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_max_enemy_hp_ratio</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>18</ID>
              <Description>"Use with caution!"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"base."</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>808080</Color>
          <VariableType>8 Bytes</VariableType>
          <Address>i_base_hp_addr</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"Max HP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_hp_addr</Address>
          <Offsets>
            <Offset>34</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"HP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_hp_addr</Address>
          <Offsets>
            <Offset>38</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>22</ID>
          <Description>"Max musou"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_hp_addr</Address>
          <Offsets>
            <Offset>40</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"Musou"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_hp_addr</Address>
          <Offsets>
            <Offset>44</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>24</ID>
          <Description>"Max skill"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_hp_addr</Address>
          <Offsets>
            <Offset>6C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>25</ID>
          <Description>"Skill"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_base_hp_addr</Address>
          <Offsets>
            <Offset>70</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>26</ID>
          <Description>"Musou gauge multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_MUSOU_MULTI,$process,F3 0F 58 CE 0F 2F CA 72 05) // should be unique
alloc(newmem,$1000,INJECT_MUSOU_MULTI)

label(code)
label(return vf_musou_multi)

newmem:
  cmp rbx, [i_base_hp_addr]
  jne code

  pushfq
  movaps [bak13], xmm13
  movaps [bak14], xmm14
  movaps [bak15], xmm15

  vxorps xmm15, xmm15, xmm15
  vucomiss xmm6, xmm15
  jbe code_pre
  jmp @F

  vmovss xmm14, [vf_min_musou_ratio]
  movaps xmm13, xmm9
  vmulss xmm13, xmm14, xmm2
  vucomiss xmm1, xmm13
  jae @F
  movaps xmm1, xmm13
  movaps xmm9, xmm1
  movss [rbx+44], xmm1

@@:
  vmovss xmm15, [vf_musou_multi]
  vmulss xmm6, xmm6, xmm15

code_pre:
  movaps xmm13, [bak13]
  movaps xmm14, [bak14]
  movaps xmm15, [bak15]
  popfq

code:
  addss xmm1,xmm6
  comiss xmm1,xmm2
  jmp return
align 10 cc
  vf_musou_multi:
  dd (float)3.33333
  dd 0
  dq 0
  bak13:
  dq 0 0
  bak14:
  dq 0 0
  bak15:
  dq 0 0

INJECT_MUSOU_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_MUSOU_MULTI vf_musou_multi)

[DISABLE]

INJECT_MUSOU_MULTI:
  db F3 0F 58 CE 0F 2F CA

unregistersymbol(INJECT_MUSOU_MULTI vf_musou_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+10BD51

DWORIGINS.exe+10BD2B: 76 15              - jna DWORIGINS.exe+10BD42
DWORIGINS.exe+10BD2D: E8 BE 60 96 00     - call DWORIGINS.exe+A71DF0
DWORIGINS.exe+10BD32: 85 C0              - test eax,eax
DWORIGINS.exe+10BD34: 75 0C              - jne DWORIGINS.exe+10BD42
DWORIGINS.exe+10BD36: 8D 48 6C           - lea ecx,[rax+6C]
DWORIGINS.exe+10BD39: E8 12 4E FA FF     - call DWORIGINS.exe+B0B50
DWORIGINS.exe+10BD3E: F3 0F 59 F0        - mulss xmm6,xmm0
DWORIGINS.exe+10BD42: F3 44 0F 10 4B 44  - movss xmm9,[rbx+44]
DWORIGINS.exe+10BD48: F3 0F 10 53 40     - movss xmm2,[rbx+40]
DWORIGINS.exe+10BD4D: 41 0F 28 C9        - movaps xmm1,xmm9
// ---------- INJECTING HERE ----------
DWORIGINS.exe+10BD51: F3 0F 58 CE        - addss xmm1,xmm6
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+10BD55: 0F 2F CA           - comiss xmm1,xmm2
DWORIGINS.exe+10BD58: 72 05              - jb DWORIGINS.exe+10BD5F
DWORIGINS.exe+10BD5A: 0F 28 C2           - movaps xmm0,xmm2
DWORIGINS.exe+10BD5D: EB 07              - jmp DWORIGINS.exe+10BD66
DWORIGINS.exe+10BD5F: 0F 57 C0           - xorps xmm0,xmm0
DWORIGINS.exe+10BD62: F3 0F 5F C1        - maxss xmm0,xmm1
DWORIGINS.exe+10BD66: 0F 2E C2           - ucomiss xmm0,xmm2
DWORIGINS.exe+10BD69: F3 0F 11 43 44     - movss [rbx+44],xmm0
DWORIGINS.exe+10BD6E: 0F 8A 83 01 00 00  - jp DWORIGINS.exe+10BEF7
DWORIGINS.exe+10BD74: 0F 85 7D 01 00 00  - jne DWORIGINS.exe+10BEF7
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>27</ID>
              <Description>"multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_musou_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>28</ID>
          <Description>"Skill gauge multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SKILL_MULTI,$process,F3 41 0F 58 4A 70) // should be unique
alloc(newmem,$1000,INJECT_SKILL_MULTI)

label(code)
label(return vf_skill_multi vf_sk_dec_multi)

newmem:
  pushfq

  cmp r10, [i_base_hp_addr]
  jne code_pre
  movaps [bak15], xmm15
  vxorps xmm15, xmm15, xmm15
  vucomiss xmm1, xmm15
  ja to_plus
  vmovss xmm15, [vf_sk_dec_multi]
  jmp to_calc
to_plus:
  vmovss xmm15, [vf_skill_multi]
to_calc:
  vmulss xmm1, xmm1, xmm15

  movaps xmm15, [bak15]

code_pre:
  popfq

code:
  addss xmm1,[r10+70]
  jmp return
align 10 cc
  bak15:
  dq 0 0
  vf_skill_multi:
  dd (float)3.33333333333
  vf_033:
  dd (float)0.33333333
  vf_sk_dec_multi:
  dd (float)0.225


INJECT_SKILL_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_SKILL_MULTI vf_skill_multi vf_sk_dec_multi)

[DISABLE]

INJECT_SKILL_MULTI:
  db F3 41 0F 58 4A 70

unregistersymbol(INJECT_SKILL_MULTI vf_skill_multi vf_sk_dec_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+10C0A6

DWORIGINS.exe+10C081: F6 82 00 02 00 00 04  - test byte ptr [rdx+00000200],04
DWORIGINS.exe+10C088: 74 1C                 - je DWORIGINS.exe+10C0A6
DWORIGINS.exe+10C08A: 0F 2F CB              - comiss xmm1,xmm3
DWORIGINS.exe+10C08D: 76 17                 - jna DWORIGINS.exe+10C0A6
DWORIGINS.exe+10C08F: E8 5C 5D 96 00        - call DWORIGINS.exe+A71DF0
DWORIGINS.exe+10C094: 85 C0                 - test eax,eax
DWORIGINS.exe+10C096: 75 0E                 - jne DWORIGINS.exe+10C0A6
DWORIGINS.exe+10C098: B9 86 00 00 00        - mov ecx,00000086
DWORIGINS.exe+10C09D: E8 AE 4A FA FF        - call DWORIGINS.exe+B0B50
DWORIGINS.exe+10C0A2: F3 0F 59 C8           - mulss xmm1,xmm0
// ---------- INJECTING HERE ----------
DWORIGINS.exe+10C0A6: F3 41 0F 58 4A 70     - addss xmm1,[r10+70]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+10C0AC: F3 41 0F 10 42 6C     - movss xmm0,[r10+6C]
DWORIGINS.exe+10C0B2: 0F 2F C8              - comiss xmm1,xmm0
DWORIGINS.exe+10C0B5: 73 07                 - jae DWORIGINS.exe+10C0BE
DWORIGINS.exe+10C0B7: 0F 28 C3              - movaps xmm0,xmm3
DWORIGINS.exe+10C0BA: F3 0F 5F C1           - maxss xmm0,xmm1
DWORIGINS.exe+10C0BE: F3 41 0F 11 42 70     - movss [r10+70],xmm0
DWORIGINS.exe+10C0C4: 48 83 C4 28           - add rsp,28
DWORIGINS.exe+10C0C8: C3                    - ret 
DWORIGINS.exe+10C0C9: CC                    - int 3 
DWORIGINS.exe+10C0CA: CC                    - int 3 
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>29</ID>
              <Description>"multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_skill_multi</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>30</ID>
              <Description>"decrease multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_sk_dec_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>31</ID>
      <Description>"(?) Battle: inf. meat buns / 肉まん"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_DUMPLING,$process,66 83 BE A0 09 00 00 00) // should be unique
alloc(newmem,$1000,INJECT_INF_DUMPLING)

label(code)
label(return)

newmem:
  cmp word ptr [rdi+000009A0],3
  jae code
  mov word ptr [rdi+000009A0],3


code:
  cmp word ptr [rsi+000009A0],00
  jmp return

INJECT_INF_DUMPLING:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_INF_DUMPLING)

[DISABLE]

INJECT_INF_DUMPLING:
  db 66 83 BE A0 09 00 00 00

unregistersymbol(INJECT_INF_DUMPLING)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+19371B

DWORIGINS.exe+1936F5: 48 8B 81 B8 45 00 00     - mov rax,[rcx+000045B8]
DWORIGINS.exe+1936FC: 48 85 C0                 - test rax,rax
DWORIGINS.exe+1936FF: 74 68                    - je DWORIGINS.exe+193769
DWORIGINS.exe+193701: F6 80 10 02 00 00 04     - test byte ptr [rax+00000210],04
DWORIGINS.exe+193708: 75 07                    - jne DWORIGINS.exe+193711
DWORIGINS.exe+19370A: 48 8B 81 C8 45 00 00     - mov rax,[rcx+000045C8]
DWORIGINS.exe+193711: 48 85 C0                 - test rax,rax
DWORIGINS.exe+193714: 74 53                    - je DWORIGINS.exe+193769
DWORIGINS.exe+193716: 48 85 F6                 - test rsi,rsi
DWORIGINS.exe+193719: 74 4E                    - je DWORIGINS.exe+193769
// ---------- INJECTING HERE ----------
DWORIGINS.exe+19371B: 66 83 BE A0 09 00 00 00  - cmp word ptr [rsi+000009A0],00
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+193723: 74 2B                    - je DWORIGINS.exe+193750
DWORIGINS.exe+193725: 48 8B 88 10 03 00 00     - mov rcx,[rax+00000310]
DWORIGINS.exe+19372C: 48 85 C9                 - test rcx,rcx
DWORIGINS.exe+19372F: 74 0C                    - je DWORIGINS.exe+19373D
DWORIGINS.exe+193731: F3 0F 10 41 34           - movss xmm0,[rcx+34]
DWORIGINS.exe+193736: F3 0F 10 49 38           - movss xmm1,[rcx+38]
DWORIGINS.exe+19373B: EB 06                    - jmp DWORIGINS.exe+193743
DWORIGINS.exe+19373D: 0F 57 C0                 - xorps xmm0,xmm0
DWORIGINS.exe+193740: 0F 57 C9                 - xorps xmm1,xmm1
DWORIGINS.exe+193743: F3 0F 5C 05 2D 0E 42 03  - subss xmm0,[DWORIGINS.exe+35B4578]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>32</ID>
      <Description>"Battle: skill pt (戰功) multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SKILL_PT_MULTI,$process,66 41 03 C9 66 3B C8 73 0C 66 85 C9 66 44 0F 45 C1 41 0F B7 C0 66 89 82 58) // should be unique
alloc(newmem,$1000,INJECT_SKILL_PT_MULTI)

label(code)
label(return vf_skill_pt_multi)

newmem:
  //push rcx
  //and ecx, 0000FFFF
  pushfq

  vcvtsi2ss xmm15, xmm15, ecx
  vmovss xmm14, [vf_skill_pt_multi]
  vmulss xmm15, xmm15, xmm14
  vmovss xmm14, [vf_999]
  vucomiss xmm15, xmm14
  jbe @F
  vmovss xmm15, [vf_999]
@@:
  vcvtss2si ecx, xmm15
  //pop rcx
  popfq

code:
  add cx,r9w
  cmp cx,ax
  jmp return
align 10 cc
  vf_skill_pt_multi:
  dd (float)2.5
  vf_999:
  dd (float)999

INJECT_SKILL_PT_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SKILL_PT_MULTI vf_skill_pt_multi)

[DISABLE]

INJECT_SKILL_PT_MULTI:
  db 66 41 03 C9 66 3B C8

unregistersymbol(INJECT_SKILL_PT_MULTI vf_skill_pt_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+A7613E

DWORIGINS.exe+A76116: 44 0F B7 92 58 04 00 00  - movzx r10d,word ptr [rdx+00000458]
DWORIGINS.exe+A7611E: B8 E7 03 00 00           - mov eax,000003E7
DWORIGINS.exe+A76123: 45 33 C0                 - xor r8d,r8d
DWORIGINS.exe+A76126: 66 44 3B D0              - cmp r10w,ax
DWORIGINS.exe+A7612A: 72 06                    - jb DWORIGINS.exe+A76132
DWORIGINS.exe+A7612C: 44 0F B7 C8              - movzx r9d,ax
DWORIGINS.exe+A76130: EB 0C                    - jmp DWORIGINS.exe+A7613E
DWORIGINS.exe+A76132: 66 45 85 D2              - test r10w,r10w
DWORIGINS.exe+A76136: 45 8B C8                 - mov r9d,r8d
DWORIGINS.exe+A76139: 66 45 0F 45 CA           - cmovne r9w,r10w
// ---------- INJECTING HERE ----------
DWORIGINS.exe+A7613E: 66 41 03 C9              - add cx,r9w
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+A76142: 66 3B C8                 - cmp cx,ax
DWORIGINS.exe+A76145: 73 0C                    - jae DWORIGINS.exe+A76153
DWORIGINS.exe+A76147: 66 85 C9                 - test cx,cx
DWORIGINS.exe+A7614A: 66 44 0F 45 C1           - cmovne r8w,cx
DWORIGINS.exe+A7614F: 41 0F B7 C0              - movzx eax,r8w
DWORIGINS.exe+A76153: 66 89 82 58 04 00 00     - mov [rdx+00000458],ax
DWORIGINS.exe+A7615A: C3                       - ret 
DWORIGINS.exe+A7615B: CC                       - int 3 
DWORIGINS.exe+A7615C: CC                       - int 3 
DWORIGINS.exe+A7615D: CC                       - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>33</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_skill_pt_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>34</ID>
      <Description>"Battle: skill XP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-17
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SKILL_XP_MULTI_3,$process,8D 48 01 3B CD) // should be unique
alloc(newmem,$1000,INJECT_SKILL_XP_MULTI_3)

label(code)
label(return i_skill_xp_multi_3)

newmem:
  push r14
  mov r14, [i_skill_xp_multi_3]
  lea ecx,[rax+r14]
  pop r14

code:
  //lea ecx,[rax+01]
  cmp ecx,ebp
  jmp return
align 10 cc
  i_skill_xp_multi_3:
  db 3
  db 0
  dw 0
  dd 0

INJECT_SKILL_XP_MULTI_3:
  jmp newmem
return:
registersymbol(INJECT_SKILL_XP_MULTI_3 i_skill_xp_multi_3)

[DISABLE]

INJECT_SKILL_XP_MULTI_3:
  db 8D 48 01 3B CD

unregistersymbol(INJECT_SKILL_XP_MULTI_3 i_skill_xp_multi_3)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+187D55

DWORIGINS.exe+187D29: 0F 84 AD 00 00 00     - je DWORIGINS.exe+187DDC
DWORIGINS.exe+187D2F: 3B DD                 - cmp ebx,ebp
DWORIGINS.exe+187D31: 0F 87 A5 00 00 00     - ja DWORIGINS.exe+187DDC
DWORIGINS.exe+187D37: BA 09 00 00 00        - mov edx,00000009
DWORIGINS.exe+187D3C: 48 8B CE              - mov rcx,rsi
DWORIGINS.exe+187D3F: 44 8D 42 F8           - lea r8d,[rdx-08]
DWORIGINS.exe+187D43: E8 A8 C6 1F 00        - call DWORIGINS.exe+3843F0
DWORIGINS.exe+187D48: 48 63 C3              - movsxd  rax,ebx
DWORIGINS.exe+187D4B: 48 8D 14 86           - lea rdx,[rsi+rax*4]
DWORIGINS.exe+187D4F: 8B 82 00 0A 00 00     - mov eax,[rdx+00000A00]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+187D55: 8D 48 01              - lea ecx,[rax+01]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+187D58: 3B CD                 - cmp ecx,ebp
DWORIGINS.exe+187D5A: 72 05                 - jb DWORIGINS.exe+187D61
DWORIGINS.exe+187D5C: 0F B7 C5              - movzx eax,bp
DWORIGINS.exe+187D5F: EB 08                 - jmp DWORIGINS.exe+187D69
DWORIGINS.exe+187D61: 33 C0                 - xor eax,eax
DWORIGINS.exe+187D63: 85 C9                 - test ecx,ecx
DWORIGINS.exe+187D65: 66 0F 45 C1           - cmovne ax,cx
DWORIGINS.exe+187D69: 0F B7 C0              - movzx eax,ax
DWORIGINS.exe+187D6C: 89 82 00 0A 00 00     - mov [rdx+00000A00],eax
DWORIGINS.exe+187D72: 48 8B 05 07 9C 83 03  - mov rax,[DWORIGINS.exe+39C1980]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>35</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_skill_xp_multi_3</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>36</ID>
      <Description>"Battle: weapon EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_WEAPON_EXP_MULTI,$process,F3 0F 58 94 BD AC 09 00 00) // should be unique
alloc(newmem,$1000,INJECT_WEAPON_EXP_MULTI)

label(code)
label(return vf_weapon_exp_multi i_last_weapon_exp_addr i_base_weapon_addr i_last_weapon_idx)

newmem:
  push r15
  lea r15, [rbp+rdi*4]
  mov [i_base_weapon_addr], rbp
  mov [i_last_weapon_idx], rdi
  mov [i_last_weapon_exp_addr], r15
  pop r15
  vmovss xmm15, [vf_weapon_exp_multi]
  vmulss xmm2, xmm2, xmm15

code:
  addss xmm2,[rbp+rdi*4+000009AC]
  jmp return
align 10 cc
  i_last_weapon_exp_addr:
  dq 0
  i_base_weapon_addr:
  dq 0
  i_last_weapon_idx:
  dq 0
  vf_weapon_exp_multi:
  dd (float)3.33333


INJECT_WEAPON_EXP_MULTI:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_WEAPON_EXP_MULTI vf_weapon_exp_multi i_last_weapon_exp_addr i_base_weapon_addr i_last_weapon_idx)

[DISABLE]

INJECT_WEAPON_EXP_MULTI:
  db F3 0F 58 94 BD AC 09 00 00

unregistersymbol(INJECT_WEAPON_EXP_MULTI vf_weapon_exp_multi i_last_weapon_exp_addr i_base_weapon_addr i_last_weapon_idx)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+384299

DWORIGINS.exe+384275: 48 3B C8                       - cmp rcx,rax
DWORIGINS.exe+384278: 73 0A                          - jae DWORIGINS.exe+384284
DWORIGINS.exe+38427A: 48 85 C9                       - test rcx,rcx
DWORIGINS.exe+38427D: 48 8B C1                       - mov rax,rcx
DWORIGINS.exe+384280: 48 0F 44 C6                    - cmove rax,rsi
DWORIGINS.exe+384284: 8B C0                          - mov eax,eax
DWORIGINS.exe+384286: 0F 57 C0                       - xorps xmm0,xmm0
DWORIGINS.exe+384289: F3 48 0F 2A C0                 - cvtsi2ss xmm0,rax
DWORIGINS.exe+38428E: F3 0F 11 84 BD D4 09 00 00     - movss [rbp+rdi*4+000009D4],xmm0
DWORIGINS.exe+384297: EB 53                          - jmp DWORIGINS.exe+3842EC
// ---------- INJECTING HERE ----------
DWORIGINS.exe+384299: F3 0F 58 94 BD AC 09 00 00     - addss xmm2,[rbp+rdi*4+000009AC]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+3842A2: 0F 2F D0                       - comiss xmm2,xmm0
DWORIGINS.exe+3842A5: 72 16                          - jb DWORIGINS.exe+3842BD
DWORIGINS.exe+3842A7: F3 0F 5C D0                    - subss xmm2,xmm0
DWORIGINS.exe+3842AB: 0F 2F D0                       - comiss xmm2,xmm0
DWORIGINS.exe+3842AE: 73 0D                          - jae DWORIGINS.exe+3842BD
DWORIGINS.exe+3842B0: 48 B8 00 00 00 00 00 00 00 80  - mov rax,8000000000000000
DWORIGINS.exe+3842BA: 48 03 D0                       - add rdx,rax
DWORIGINS.exe+3842BD: F3 48 0F 2C CA                 - cvttss2si rcx,xmm2
DWORIGINS.exe+3842C2: B8 3F 42 0F 00                 - mov eax,000F423F
DWORIGINS.exe+3842C7: 48 03 CA                       - add rcx,rdx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>37</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_weapon_exp_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>38</ID>
          <Description>"Gained exp (during battle)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Float</VariableType>
          <Address>i_last_weapon_exp_addr</Address>
          <Offsets>
            <Offset>9AC</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>39</ID>
      <Description>"Battle: K.O. count multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-17
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_KOCNT_MULTI,$process,8B F9 42 8D 04 39) // should be unique
alloc(newmem,$1000,INJECT_KOCNT_MULTI)

label(code)
label(return vf_ko_cnt_multi)

newmem:
  vcvtsi2ss xmm15, xmm15, r15
  vmovss xmm14, [vf_ko_cnt_multi]
  vmulss xmm15, xmm14, xmm15
  vcvtss2si r15, xmm15

code:
  mov edi,ecx
  lea eax,[rcx+r15]
  jmp return
align 10 cc
  vf_ko_cnt_multi:
  dd (float)2

INJECT_KOCNT_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_KOCNT_MULTI vf_ko_cnt_multi)

[DISABLE]

INJECT_KOCNT_MULTI:
  db 8B F9 42 8D 04 39

unregistersymbol(INJECT_KOCNT_MULTI vf_ko_cnt_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+22A3D6

DWORIGINS.exe+22A3AF: 4C 89 60 20           - mov [rax+20],r12
DWORIGINS.exe+22A3B3: 4C 89 70 E8           - mov [rax-18],r14
DWORIGINS.exe+22A3B7: E8 94 A7 04 00        - call DWORIGINS.exe+274B50
DWORIGINS.exe+22A3BC: 45 33 E4              - xor r12d,r12d
DWORIGINS.exe+22A3BF: 48 85 C0              - test rax,rax
DWORIGINS.exe+22A3C2: 74 09                 - je DWORIGINS.exe+22A3CD
DWORIGINS.exe+22A3C4: 44 8B B0 D0 01 00 00  - mov r14d,[rax+000001D0]
DWORIGINS.exe+22A3CB: EB 03                 - jmp DWORIGINS.exe+22A3D0
DWORIGINS.exe+22A3CD: 45 8B F4              - mov r14d,r12d
DWORIGINS.exe+22A3D0: 8B 8B D0 01 00 00     - mov ecx,[rbx+000001D0]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+22A3D6: 8B F9                 - mov edi,ecx
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+22A3D8: 42 8D 04 39           - lea eax,[rcx+r15]
DWORIGINS.exe+22A3DC: 3D 9F 86 01 00        - cmp eax,0001869F
DWORIGINS.exe+22A3E1: 77 08                 - ja DWORIGINS.exe+22A3EB
DWORIGINS.exe+22A3E3: 89 83 D0 01 00 00     - mov [rbx+000001D0],eax
DWORIGINS.exe+22A3E9: 8B F8                 - mov edi,eax
DWORIGINS.exe+22A3EB: 2B F9                 - sub edi,ecx
DWORIGINS.exe+22A3ED: 48 8B 8B A0 3D 00 00  - mov rcx,[rbx+00003DA0]
DWORIGINS.exe+22A3F4: E8 57 A7 04 00        - call DWORIGINS.exe+274B50
DWORIGINS.exe+22A3F9: 48 85 C0              - test rax,rax
DWORIGINS.exe+22A3FC: 74 08                 - je DWORIGINS.exe+22A406
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>40</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_ko_cnt_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>41</ID>
      <Description>"Battle: inf. horse charge"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-17
  Author : bfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_HORSE_CHARGE,$process,F3 0F 10 80 80 02 00 00 F3) // should be unique
alloc(newmem,$1000,INJECT_INF_HORSE_CHARGE)

label(code)
label(return)

newmem:
  pushfq

  vmovss xmm14, [vf_100]
  vucomiss xmm14, [rax+00000280]
  jbe code_pre
  movss [rax+00000280], xmm14

code_pre:
  popfq

code:
  movss xmm0,[rax+00000280]
  jmp return
align 10 cc
  vf_100:
  dd (float)100

INJECT_INF_HORSE_CHARGE:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_INF_HORSE_CHARGE)

[DISABLE]

INJECT_INF_HORSE_CHARGE:
  db F3 0F 10 80 80 02 00 00

unregistersymbol(INJECT_INF_HORSE_CHARGE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+FCF0AE

DWORIGINS.exe+FCF081: 74 1B                    - je DWORIGINS.exe+FCF09E
DWORIGINS.exe+FCF083: 8B 90 98 7F 00 00        - mov edx,[rax+00007F98]
DWORIGINS.exe+FCF089: 8D 42 F6                 - lea eax,[rdx-0A]
DWORIGINS.exe+FCF08C: 83 F8 02                 - cmp eax,02
DWORIGINS.exe+FCF08F: 0F 86 9F 00 00 00        - jbe DWORIGINS.exe+FCF134
DWORIGINS.exe+FCF095: 83 FA 12                 - cmp edx,12
DWORIGINS.exe+FCF098: 0F 84 96 00 00 00        - je DWORIGINS.exe+FCF134
DWORIGINS.exe+FCF09E: 49 8B 86 D8 02 00 00     - mov rax,[r14+000002D8]
DWORIGINS.exe+FCF0A5: 48 85 C0                 - test rax,rax
DWORIGINS.exe+FCF0A8: 0F 84 92 00 00 00        - je DWORIGINS.exe+FCF140
// ---------- INJECTING HERE ----------
DWORIGINS.exe+FCF0AE: F3 0F 10 80 80 02 00 00  - movss xmm0,[rax+00000280]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+FCF0B6: F3 0F 10 88 7C 02 00 00  - movss xmm1,[rax+0000027C]
DWORIGINS.exe+FCF0BE: F3 0F 11 45 C8           - movss [rbp-38],xmm0
DWORIGINS.exe+FCF0C3: F3 0F 11 4D CC           - movss [rbp-34],xmm1
DWORIGINS.exe+FCF0C8: 48 85 C9                 - test rcx,rcx
DWORIGINS.exe+FCF0CB: 74 16                    - je DWORIGINS.exe+FCF0E3
DWORIGINS.exe+FCF0CD: 48 8B 41 10              - mov rax,[rcx+10]
DWORIGINS.exe+FCF0D1: 48 85 C0                 - test rax,rax
DWORIGINS.exe+FCF0D4: 74 0D                    - je DWORIGINS.exe+FCF0E3
DWORIGINS.exe+FCF0D6: 81 78 04 FF 03 00 00     - cmp [rax+04],000003FF
DWORIGINS.exe+FCF0DD: C6 45 D0 01              - mov byte ptr [rbp-30],01
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>42</ID>
      <Description>"Battle: Horse EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-18
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_HORSE_EXP_MULTI,$process,42 8D 14 10 48 85 C9) // should be unique
alloc(newmem,$1000,INJECT_HORSE_EXP_MULTI)

label(code)
label(return vf_horse_exp_multi)

newmem:
  vcvtsi2ss xmm15, xmm15, r10
  vmovss xmm14, [vf_horse_exp_multi]
  vmulss xmm15, xmm15, xmm14
  vcvtss2si r10, xmm15

code:
  lea edx,[rax+r10]
  test rcx,rcx
  jmp return
align 10 cc
  vf_horse_exp_multi:
  dd (float)6

INJECT_HORSE_EXP_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_HORSE_EXP_MULTI vf_horse_exp_multi)

[DISABLE]

INJECT_HORSE_EXP_MULTI:
  db 42 8D 14 10 48 85 C9

unregistersymbol(INJECT_HORSE_EXP_MULTI vf_horse_exp_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+38950D

DWORIGINS.exe+3894F5: 8B 01           - mov eax,[rcx]
DWORIGINS.exe+3894F7: 41 3B C7        - cmp eax,r15d
DWORIGINS.exe+3894FA: 72 05           - jb DWORIGINS.exe+389501
DWORIGINS.exe+3894FC: 41 8B C7        - mov eax,r15d
DWORIGINS.exe+3894FF: EB 0C           - jmp DWORIGINS.exe+38950D
DWORIGINS.exe+389501: 85 C0           - test eax,eax
DWORIGINS.exe+389503: 0F 44 C5        - cmove eax,ebp
DWORIGINS.exe+389506: EB 05           - jmp DWORIGINS.exe+38950D
DWORIGINS.exe+389508: 48 8B CD        - mov rcx,rbp
DWORIGINS.exe+38950B: 8B C5           - mov eax,ebp
// ---------- INJECTING HERE ----------
DWORIGINS.exe+38950D: 42 8D 14 10     - lea edx,[rax+r10]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+389511: 48 85 C9        - test rcx,rcx
DWORIGINS.exe+389514: 74 11           - je DWORIGINS.exe+389527
DWORIGINS.exe+389516: 41 3B D7        - cmp edx,r15d
DWORIGINS.exe+389519: 73 09           - jae DWORIGINS.exe+389524
DWORIGINS.exe+38951B: 85 D2           - test edx,edx
DWORIGINS.exe+38951D: 44 8B FA        - mov r15d,edx
DWORIGINS.exe+389520: 44 0F 44 FD     - cmove r15d,ebp
DWORIGINS.exe+389524: 44 89 39        - mov [rcx],r15d
DWORIGINS.exe+389527: E8 14 B9 6D 00  - call DWORIGINS.exe+A64E40
DWORIGINS.exe+38952C: 8B C8           - mov ecx,eax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>43</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_horse_exp_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>44</ID>
      <Description>"Battle: infinite item usage except for meat buns"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-02-21
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_ITEM_USE,$process,C7 ?? ?? 9C 09 00 00 FF FF FF FF E9) // should be unique
alloc(INJECT_INF_ITEM_USEo, 11)

INJECT_INF_ITEM_USEo:
  readmem(INJECT_INF_ITEM_USE, 11)

INJECT_INF_ITEM_USE:
  nop B
return:
registersymbol(INJECT_INF_ITEM_USE)
registersymbol(INJECT_INF_ITEM_USEo)

[DISABLE]

INJECT_INF_ITEM_USE:
  //db C7 84 BE 9C 09 00 00 FF FF FF FF
  readmem(INJECT_INF_ITEM_USEo, 11)

unregistersymbol(INJECT_INF_ITEM_USE)
unregistersymbol(INJECT_INF_ITEM_USEo)
dealloc(INJECT_INF_ITEM_USEo)


{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+182BDA

DWORIGINS.exe+182BAE: F3 0F 10 15 6A BA 23 03           - movss xmm2,[DWORIGINS.exe+33BE620]
DWORIGINS.exe+182BB6: 89 5C 24 20                       - mov [rsp+20],ebx
DWORIGINS.exe+182BBA: 8B 91 00 02 00 00                 - mov edx,[rcx+00000200]
DWORIGINS.exe+182BC0: 83 E2 04                          - and edx,04
DWORIGINS.exe+182BC3: 84 C0                             - test al,al
DWORIGINS.exe+182BC5: 0F 84 19 02 00 00                 - je DWORIGINS.exe+182DE4
DWORIGINS.exe+182BCB: 85 D2                             - test edx,edx
DWORIGINS.exe+182BCD: B9 31 00 00 00                    - mov ecx,00000031
DWORIGINS.exe+182BD2: 0F 95 C2                          - setne dl
DWORIGINS.exe+182BD5: E8 66 4E D2 00                    - call DWORIGINS.exe+EA7A40
// ---------- INJECTING HERE ----------
DWORIGINS.exe+182BDA: C7 84 BE 9C 09 00 00 FF FF FF FF  - mov [rsi+rdi*4+0000099C],FFFFFFFF
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+182BE5: E9 D2 01 00 00                    - jmp DWORIGINS.exe+182DBC
DWORIGINS.exe+182BEA: 48 85 ED                          - test rbp,rbp
DWORIGINS.exe+182BED: 0F 84 00 02 00 00                 - je DWORIGINS.exe+182DF3
DWORIGINS.exe+182BF3: 48 8B 85 A8 00 00 00              - mov rax,[rbp+000000A8]
DWORIGINS.exe+182BFA: 48 85 C0                          - test rax,rax
DWORIGINS.exe+182BFD: 0F 84 F0 01 00 00                 - je DWORIGINS.exe+182DF3
DWORIGINS.exe+182C03: 4C 8B 88 20 01 00 00              - mov r9,[rax+00000120]
DWORIGINS.exe+182C0A: 4D 85 C9                          - test r9,r9
DWORIGINS.exe+182C0D: 74 10                             - je DWORIGINS.exe+182C1F
DWORIGINS.exe+182C0F: 41 8B 41 18                       - mov eax,[r9+18]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>45</ID>
      <Description>"Battle: Trainings count multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-21
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_TRAILS_CNT_MULTIPLIER,$process,41 03 C8 B8 9F 86 01 00) // should be unique
alloc(newmem,$1000,INJECT_TRAILS_CNT_MULTIPLIER)

label(code)
label(return vf_trail_cnt_multi)

newmem:
  vcvtsi2ss xmm15, xmm15, r8d
  vmovss xmm14, [vf_trail_cnt_multi]
  vmulss xmm15, xmm14, xmm15
  vcvtss2si r8d, xmm15

code:
  add ecx,r8d
  mov eax,0001869F
  jmp return
align 10 cc
  vf_trail_cnt_multi:
  dd (float)5

INJECT_TRAILS_CNT_MULTIPLIER:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_TRAILS_CNT_MULTIPLIER vf_trail_cnt_multi)

[DISABLE]

INJECT_TRAILS_CNT_MULTIPLIER:
  db 41 03 C8 B8 9F 86 01 00

unregistersymbol(INJECT_TRAILS_CNT_MULTIPLIER vf_trail_cnt_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+385649

DWORIGINS.exe+385629: F0 0F B1 39     - lock cmpxchg [rcx],edi
DWORIGINS.exe+38562D: 75 F1           - jne DWORIGINS.exe+385620
DWORIGINS.exe+38562F: 48 8B 5C 24 58  - mov rbx,[rsp+58]
DWORIGINS.exe+385634: 33 F6           - xor esi,esi
DWORIGINS.exe+385636: 41 83 F9 63     - cmp r9d,63
DWORIGINS.exe+38563A: 77 2F           - ja DWORIGINS.exe+38566B
DWORIGINS.exe+38563C: 41 83 F9 FF     - cmp r9d,-01
DWORIGINS.exe+385640: 74 29           - je DWORIGINS.exe+38566B
DWORIGINS.exe+385642: 4B 8D 14 8A     - lea rdx,[r10+r9*4]
DWORIGINS.exe+385646: 8B 4A 7C        - mov ecx,[rdx+7C]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+385649: 41 03 C8        - add ecx,r8d
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+38564C: B8 9F 86 01 00  - mov eax,0001869F
DWORIGINS.exe+385651: 3B C8           - cmp ecx,eax
DWORIGINS.exe+385653: 73 07           - jae DWORIGINS.exe+38565C
DWORIGINS.exe+385655: 8B C1           - mov eax,ecx
DWORIGINS.exe+385657: 85 C9           - test ecx,ecx
DWORIGINS.exe+385659: 0F 44 C6        - cmove eax,esi
DWORIGINS.exe+38565C: 89 42 7C        - mov [rdx+7C],eax
DWORIGINS.exe+38565F: 41 8B D1        - mov edx,r9d
DWORIGINS.exe+385662: 49 8B CA        - mov rcx,r10
DWORIGINS.exe+385665: E8 66 19 00 00  - call DWORIGINS.exe+386FD0
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>46</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_trail_cnt_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>47</ID>
      <Description>"(?) Battle: Get gained skill exp"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_SKILL_XP_INC,$process,03 ?? ?? ?? 0A 00 00 48 8B 05 ?? ?? ?? ?? 48 8B 88 ?? 01 00 00 4C ?? ?? 30 4D 85 C0 74 ?? 3B ?? ?? 73 1?) // should be unique
alloc(newmem,$1000,INJECT_GET_SKILL_XP_INC)

alloc(INJECT_GET_SKILL_XP_INCo, 8)

label(code)
label(return)

INJECT_GET_SKILL_XP_INCo:
  readmem(INJECT_GET_SKILL_XP_INC, 7)

newmem:
  push r15
  push r14
  push r13
  //lea r15, [rcx+rax*4+00000A18]
  db 4c 8d bc 81
  readmem(INJECT_GET_SKILL_XP_INC+3, 4)
  xor r13, r13

loop_1:
  mov r14, i_base_skill_xp_addr1
  lea r14, [r14+r13*8]
  cmp qword ptr [r14], r15
  je endp_pre
  cmp qword ptr [r14], 0
  je write_new_data
  jmp check_next

write_new_data:
  mov [i_idx], r13
  mov [r14], r15
  jmp endp

overwrite_data:
  mov r13, [i_idx]
  inc r13
  cmp r13, 4
  jb overwrite_data_next
  mov r13, 0

overwrite_data_next:
  mov [i_idx], r13
  mov [r14], r15
  jmp endp

check_next:
  inc r13
  cmp r13, 4
  je overwrite_data
  jmp loop_1

endp_pre:
  //mov [i_idx], r13

endp:
  pop r13
  pop r14
  pop r15


code:
  // add edx,[rcx+rax*4+00000A18] //     03 94 81 18 0a 00 00
  // lea r15, [rcx+rax*4+00000A18] // 4c 8d bc 81 18 0a 00 00
  reassemble(INJECT_GET_SKILL_XP_INC)
  jmp return
align 10 cc
  i_base_skill_xp_addr1:
  dq 0
  dq 0
  dq 0
  dq 0
  dq 0
  i_idx:
  dq 0

INJECT_GET_SKILL_XP_INC:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_SKILL_XP_INC)
registersymbol(INJECT_GET_SKILL_XP_INCo)
[DISABLE]

INJECT_GET_SKILL_XP_INC:
  //db 03 94 81 18 0A 00 00
  readmem(INJECT_GET_SKILL_XP_INCo, 7)

unregistersymbol(INJECT_GET_SKILL_XP_INC)
dealloc(newmem)
unregistersymbol(INJECT_GET_SKILL_XP_INCo)
dealloc(INJECT_GET_SKILL_XP_INCo)
{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+112CF45

DWORIGINS.exe+112CF25: 66 85 C0              - test ax,ax
DWORIGINS.exe+112CF28: 75 09                 - jne DWORIGINS.exe+112CF33
DWORIGINS.exe+112CF2A: 41 8B C4              - mov eax,r12d
DWORIGINS.exe+112CF2D: EB 04                 - jmp DWORIGINS.exe+112CF33
DWORIGINS.exe+112CF2F: 41 0F B7 C4           - movzx eax,r12w
DWORIGINS.exe+112CF33: 0F B7 D0              - movzx edx,ax
DWORIGINS.exe+112CF36: 48 8B 0D 6B C3 AE 02  - mov rcx,[DWORIGINS.exe+3C192A8]
DWORIGINS.exe+112CF3D: 48 85 C9              - test rcx,rcx
DWORIGINS.exe+112CF40: 74 0A                 - je DWORIGINS.exe+112CF4C
DWORIGINS.exe+112CF42: 48 63 C6              - movsxd  rax,esi
// ---------- INJECTING HERE ----------
DWORIGINS.exe+112CF45: 03 94 81 18 0A 00 00  - add edx,[rcx+rax*4+00000A18]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+112CF4C: 48 8B 05 4D C4 AE 02  - mov rax,[DWORIGINS.exe+3C193A0]
DWORIGINS.exe+112CF53: 48 8B 88 78 01 00 00  - mov rcx,[rax+00000178]
DWORIGINS.exe+112CF5A: 4C 8B 41 30           - mov r8,[rcx+30]
DWORIGINS.exe+112CF5E: 4D 85 C0              - test r8,r8
DWORIGINS.exe+112CF61: 74 18                 - je DWORIGINS.exe+112CF7B
DWORIGINS.exe+112CF63: 3B 71 38              - cmp esi,[rcx+38]
DWORIGINS.exe+112CF66: 73 13                 - jae DWORIGINS.exe+112CF7B
DWORIGINS.exe+112CF68: 48 8D 0C B6           - lea rcx,[rsi+rsi*4]
DWORIGINS.exe+112CF6C: 49 8D 04 88           - lea rax,[r8+rcx*4]
DWORIGINS.exe+112CF70: 0F BF 40 10           - movsx eax,word ptr [rax+10]
DWORIGINS.exe+112CF74 - 3B D0                 - cmp edx,eax
DWORIGINS.exe+112CF76 - 0F93 C3               - setae bl
DWORIGINS.exe+112CF79 - EB 10                 - jmp DWORIGINS.exe+112CF8B
DWORIGINS.exe+112CF7B - 49 8B C7              - mov rax,r15
DWORIGINS.exe+112CF7E - 0FBF 40 10            - movsx eax,word ptr [rax+10]
DWORIGINS.exe+112CF82 - 3B D0                 - cmp edx,eax
DWORIGINS.exe+112CF84 - 0F93 C3               - setae bl
DWORIGINS.exe+112CF87 - EB 02                 - jmp DWORIGINS.exe+112CF8B
DWORIGINS.exe+112CF89 - 32 DB                 - xor bl,bl
DWORIGINS.exe+112CF8B - 48 8B 4F 60           - mov rcx,[rdi+60]
DWORIGINS.exe+112CF8F - 48 85 C9              - test rcx,rcx

}

{
DWORIGINS.exe+112CF45
DWORIGINS.exe+112D03B
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>48</ID>
          <Description>"Usage: open menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>49</ID>
          <Description>"Re-enable when get into new battle zone"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>50</ID>
          <Description>"#1"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_skill_xp_addr1</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>51</ID>
          <Description>"#2"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_skill_xp_addr1+8</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>52</ID>
          <Description>"#3"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_skill_xp_addr1+18</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>53</ID>
          <Description>"#4"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_skill_xp_addr1+10</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>54</ID>
      <Description>"(?) Battle: Guard skill timer multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2026-01-22
  Author : bbfox@https://openchetatables.com
}

[ENABLE]

aobscanmodule(INJECT_GUARD_SKILL_TIMER_MULTI,$process,F3 0F 5C C7 41 0F 2F C0 F3 41) // should be unique
alloc(newmem,$100,INJECT_GUARD_SKILL_TIMER_MULTI)

label(code)
label(return vf_guard_skill_t_multi)

newmem:
  vmovss xmm14, [vf_guard_skill_t_multi]
  vmulss xmm7, xmm14, xmm7

code:
  subss xmm0,xmm7
  comiss xmm0,xmm8
  jmp return
  align 10 cc
  vf_guard_skill_t_multi:
  dd (float)6.666666666

INJECT_GUARD_SKILL_TIMER_MULTI:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GUARD_SKILL_TIMER_MULTI vf_guard_skill_t_multi)

[DISABLE]

INJECT_GUARD_SKILL_TIMER_MULTI:
  db F3 0F 5C C7 41 0F 2F C0

unregistersymbol(INJECT_GUARD_SKILL_TIMER_MULTI vf_guard_skill_t_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+1A5E66

DWORIGINS.exe+1A5E3B: 41 0F 2F F1                          - comiss xmm6,xmm9
DWORIGINS.exe+1A5E3F: 76 04                                - jna DWORIGINS.exe+1A5E45
DWORIGINS.exe+1A5E41: F3 0F 59 FE                          - mulss xmm7,xmm6
DWORIGINS.exe+1A5E45: E8 36 F8 8E 00                       - call DWORIGINS.exe+A95680
DWORIGINS.exe+1A5E4A: 3D F4 01 00 00                       - cmp eax,000001F4
DWORIGINS.exe+1A5E4F: 75 0E                                - jne DWORIGINS.exe+1A5E5F
DWORIGINS.exe+1A5E51: B9 87 02 00 00                       - mov ecx,00000287
DWORIGINS.exe+1A5E56: E8 65 64 F1 FF                       - call DWORIGINS.exe+BC2C0
DWORIGINS.exe+1A5E5B: F3 0F 59 F8                          - mulss xmm7,xmm0
DWORIGINS.exe+1A5E5F: F3 41 0F 10 44 DE 24                 - movss xmm0,[r14+rbx*8+24]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+1A5E66: F3 0F 5C C7                          - subss xmm0,xmm7
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+1A5E6A: 41 0F 2F C0                          - comiss xmm0,xmm8
DWORIGINS.exe+1A5E6E: F3 41 0F 11 44 DE 24                 - movss [r14+rbx*8+24],xmm0
DWORIGINS.exe+1A5E75: 73 22                                - jae DWORIGINS.exe+1A5E99
DWORIGINS.exe+1A5E77: 4D 89 64 DE 20                       - mov [r14+rbx*8+20],r12
DWORIGINS.exe+1A5E7C: 4D 85 ED                             - test r13,r13
DWORIGINS.exe+1A5E7F: 74 18                                - je DWORIGINS.exe+1A5E99
DWORIGINS.exe+1A5E81: B8 02 00 00 00                       - mov eax,00000002
DWORIGINS.exe+1A5E86: 48 3B F8                             - cmp rdi,rax
DWORIGINS.exe+1A5E89: 48 0F 46 C7                          - cmovbe rax,rdi
DWORIGINS.exe+1A5E8D: 41 C7 84 85 40 01 00 00 00 00 80 BF  - mov [r13+rax*4+00000140],BF800000
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>55</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_guard_skill_t_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>56</ID>
      <Description>"(?) Level of Peace (太平値) multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_PEACE_LV_MULTI,$process,0F B7 C0 03 D0) // should be unique
alloc(newmem,$1000,INJECT_PEACE_LV_MULTI)

label(code)
label(return vf_peace_lv_multi)

newmem:
  pushfq
  //movzx eax,ax
  vmovss xmm14, [vf_peace_lv_multi]
  vcvtsi2ss xmm15, xmm15, eax
  vmulss xmm15, xmm14, xmm15
  vcvtss2si eax, xmm15
  popfq

code:
  movzx eax,ax
  add edx,eax
  jmp return
  align 10 cc
  vf_peace_lv_multi:
  dd (float)2.1

INJECT_PEACE_LV_MULTI:
  jmp newmem
return:
registersymbol(INJECT_PEACE_LV_MULTI vf_peace_lv_multi)

[DISABLE]

INJECT_PEACE_LV_MULTI:
  db 0F B7 C0 03 D0

unregistersymbol(INJECT_PEACE_LV_MULTI vf_peace_lv_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+A9F232

DWORIGINS.exe+A9F1CF - CC                    - int 3
DWORIGINS.exe+A9F1D0 - 48 8B 05 D9A11703     - mov rax,[DWORIGINS.exe+3C193B0]
DWORIGINS.exe+A9F1D7 - 45 33 D2              - xor r10d,r10d
DWORIGINS.exe+A9F1DA - 44 8B D9              - mov r11d,ecx
DWORIGINS.exe+A9F1DD - 4C 8B 80 B8000000     - mov r8,[rax+000000B8]
DWORIGINS.exe+A9F1E4 - 4D 8B 48 08           - mov r9,[r8+08]
DWORIGINS.exe+A9F1E8 - 41 B8 10270000        - mov r8d,00002710
DWORIGINS.exe+A9F1EE - 4D 85 C9              - test r9,r9
DWORIGINS.exe+A9F1F1 - 74 3B                 - je DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F1F3 - 4D 39 51 08           - cmp [r9+08],r10
DWORIGINS.exe+A9F1F7 - 76 35                 - jna DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F1F9 - 49 8B 01              - mov rax,[r9]
DWORIGINS.exe+A9F1FC - 48 8B 08              - mov rcx,[rax]
DWORIGINS.exe+A9F1FF - 48 85 C9              - test rcx,rcx
DWORIGINS.exe+A9F202 - 74 2A                 - je DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F204 - 41 83 FB 0D           - cmp r11d,0D
DWORIGINS.exe+A9F208 - 73 24                 - jae DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F20A - 42 0FB7 8C 59 76090000  - movzx ecx,word ptr [rcx+r11*2+00000976]
DWORIGINS.exe+A9F213: 41 8B C3     - mov eax,r11d
DWORIGINS.exe+A9F216: 66 41 3B C8  - cmp cx,r8w
DWORIGINS.exe+A9F21A: 72 06        - jb DWORIGINS.exe+A9F222
DWORIGINS.exe+A9F21C: 41 0F B7 C0  - movzx eax,r8w
DWORIGINS.exe+A9F220: EB 10        - jmp DWORIGINS.exe+A9F232
DWORIGINS.exe+A9F222: 66 85 C9     - test cx,cx
DWORIGINS.exe+A9F225: 41 8B C2     - mov eax,r10d
DWORIGINS.exe+A9F228: 66 0F 45 C1  - cmovne ax,cx
DWORIGINS.exe+A9F22C: EB 04        - jmp DWORIGINS.exe+A9F232
DWORIGINS.exe+A9F22E: 41 0F B7 C2  - movzx eax,r10w
// ---------- INJECTING HERE ----------
DWORIGINS.exe+A9F232: 0F B7 C0     - movzx eax,ax
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+A9F235: 03 D0        - add edx,eax
DWORIGINS.exe+A9F237: 41 3B D0     - cmp edx,r8d
DWORIGINS.exe+A9F23A: 72 06        - jb DWORIGINS.exe+A9F242
DWORIGINS.exe+A9F23C: 41 0F B7 C8  - movzx ecx,r8w
DWORIGINS.exe+A9F240: EB 09        - jmp DWORIGINS.exe+A9F24B
DWORIGINS.exe+A9F242: 85 D2        - test edx,edx
DWORIGINS.exe+A9F244: 41 8B CA     - mov ecx,r10d
DWORIGINS.exe+A9F247: 66 0F 45 CA  - cmovne cx,dx
DWORIGINS.exe+A9F24B: 4D 85 C9     - test r9,r9
DWORIGINS.exe+A9F24E: 74 32        - je DWORIGINS.exe+A9F282
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>57</ID>
          <Description>"Notice: This value is a 2-byte integer (maximum 65535 or 32767)"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>58</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_peace_lv_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>59</ID>
      <Description>"(?) Get last value of Level of Peace"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_LAST_PEACE_VAL,$process,42 0F B7 8C 59 76 09 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_LAST_PEACE_VAL)

label(code)
label(return i_base_last_peace_val_addr)

newmem:
  push r15
  lea r15, [rcx+r11*2]
  mov [i_base_last_peace_val_addr], r15
  pop r15

code:
  movzx ecx,word ptr [rcx+r11*2+00000976]
  jmp return
align 10 cc
  i_base_last_peace_val_addr:
  dq 0

INJECT_GET_LAST_PEACE_VAL:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_GET_LAST_PEACE_VAL i_base_last_peace_val_addr)

[DISABLE]

INJECT_GET_LAST_PEACE_VAL:
  db 42 0F B7 8C 59 76 09 00 00

unregistersymbol(INJECT_GET_LAST_PEACE_VAL i_base_last_peace_val_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+A9F20A

DWORIGINS.exe+A9F1EE: 4D 85 C9                    - test r9,r9
DWORIGINS.exe+A9F1F1: 74 3B                       - je DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F1F3: 4D 39 51 08                 - cmp [r9+08],r10
DWORIGINS.exe+A9F1F7: 76 35                       - jna DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F1F9: 49 8B 01                    - mov rax,[r9]
DWORIGINS.exe+A9F1FC: 48 8B 08                    - mov rcx,[rax]
DWORIGINS.exe+A9F1FF: 48 85 C9                    - test rcx,rcx
DWORIGINS.exe+A9F202: 74 2A                       - je DWORIGINS.exe+A9F22E
DWORIGINS.exe+A9F204: 41 83 FB 0D                 - cmp r11d,0D
DWORIGINS.exe+A9F208: 73 24                       - jae DWORIGINS.exe+A9F22E
// ---------- INJECTING HERE ----------
DWORIGINS.exe+A9F20A: 42 0F B7 8C 59 76 09 00 00  - movzx ecx,word ptr [rcx+r11*2+00000976]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+A9F213: 41 8B C3                    - mov eax,r11d
DWORIGINS.exe+A9F216: 66 41 3B C8                 - cmp cx,r8w
DWORIGINS.exe+A9F21A: 72 06                       - jb DWORIGINS.exe+A9F222
DWORIGINS.exe+A9F21C: 41 0F B7 C0                 - movzx eax,r8w
DWORIGINS.exe+A9F220: EB 10                       - jmp DWORIGINS.exe+A9F232
DWORIGINS.exe+A9F222: 66 85 C9                    - test cx,cx
DWORIGINS.exe+A9F225: 41 8B C2                    - mov eax,r10d
DWORIGINS.exe+A9F228: 66 0F 45 C1                 - cmovne ax,cx
DWORIGINS.exe+A9F22C: EB 04                       - jmp DWORIGINS.exe+A9F232
DWORIGINS.exe+A9F22E: 41 0F B7 C2                 - movzx eax,r10w
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>60</ID>
          <Description>"Last changed value"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_last_peace_val_addr</Address>
          <Offsets>
            <Offset>976</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>61</ID>
      <Description>"Get all level of peace value"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-17
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_ALL_PEACE_VAL,$process,0F B7 8C 42 76 09 00 00) // should be unique
alloc(newmem,$1000,INJECT_GET_ALL_PEACE_VAL)

label(code)
label(return i_base_peace_val_addr)

newmem:
  cmp qword ptr [i_base_peace_val_addr], 0
  jne code
  push r15
  lea r15, [rdx+00000976]
  mov [i_base_peace_val_addr], r15
  pop r15


code:
  movzx ecx,word ptr [rdx+rax*2+00000976]
  jmp return
align 10 cc
  i_base_peace_val_addr:
  dq 0

INJECT_GET_ALL_PEACE_VAL:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_GET_ALL_PEACE_VAL i_base_peace_val_addr)

[DISABLE]

INJECT_GET_ALL_PEACE_VAL:
  db 0F B7 8C 42 76 09 00 00

unregistersymbol(INJECT_GET_ALL_PEACE_VAL i_base_peace_val_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+A6C0FA

DWORIGINS.exe+A6C0DF: 74 38                    - je DWORIGINS.exe+A6C119
DWORIGINS.exe+A6C0E1: 48 83 78 08 00           - cmp qword ptr [rax+08],00
DWORIGINS.exe+A6C0E6: 76 31                    - jna DWORIGINS.exe+A6C119
DWORIGINS.exe+A6C0E8: 48 8B 00                 - mov rax,[rax]
DWORIGINS.exe+A6C0EB: 48 8B 10                 - mov rdx,[rax]
DWORIGINS.exe+A6C0EE: 48 85 D2                 - test rdx,rdx
DWORIGINS.exe+A6C0F1: 74 26                    - je DWORIGINS.exe+A6C119
DWORIGINS.exe+A6C0F3: 83 F9 0D                 - cmp ecx,0D
DWORIGINS.exe+A6C0F6: 73 21                    - jae DWORIGINS.exe+A6C119
DWORIGINS.exe+A6C0F8: 8B C1                    - mov eax,ecx
// ---------- INJECTING HERE ----------
DWORIGINS.exe+A6C0FA: 0F B7 8C 42 76 09 00 00  - movzx ecx,word ptr [rdx+rax*2+00000976]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+A6C102: B8 10 27 00 00           - mov eax,00002710
DWORIGINS.exe+A6C107: 66 3B C8                 - cmp cx,ax
DWORIGINS.exe+A6C10A: 73 0F                    - jae DWORIGINS.exe+A6C11B
DWORIGINS.exe+A6C10C: 33 C0                    - xor eax,eax
DWORIGINS.exe+A6C10E: 66 85 C9                 - test cx,cx
DWORIGINS.exe+A6C111: 66 0F 45 C1              - cmovne ax,cx
DWORIGINS.exe+A6C115: 0F B7 C0                 - movzx eax,ax
DWORIGINS.exe+A6C118: C3                       - ret 
DWORIGINS.exe+A6C119: 33 C0                    - xor eax,eax
DWORIGINS.exe+A6C11B: 0F B7 C0                 - movzx eax,ax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>62</ID>
          <Description>"#1 / 司隸 / Sili"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>63</ID>
          <Description>"#2 / 豫 / Yu"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>64</ID>
          <Description>"#3 / 冀 / Ji"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>65</ID>
          <Description>"#4 / 兗 / Yan"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>6</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>66</ID>
          <Description>"#5 / 徐 / Xu"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>67</ID>
          <Description>"#6 / 青 / Qing"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>68</ID>
          <Description>"#7 / 荊 / Jing"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>69</ID>
          <Description>"#8 / 揚 / Yang"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>70</ID>
          <Description>"#9 / 幽 / You"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>16</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>71</ID>
          <Description>"#10 / 涼 / Liang"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_peace_val_addr</Address>
          <Offsets>
            <Offset>12</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>72</ID>
      <Description>"Get horse EXP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-18
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_HORSE_EXP,$process,8B 00 BE 3F 42 0F 00) // should be unique
alloc(newmem,$1000,INJECT_GET_HORSE_EXP)

label(code)
label(return i_base_horse_exp_addr)

newmem:
  mov [i_base_horse_exp_addr], rax

code:
  mov eax,[rax]
  mov esi,000F423F
  jmp return
align 10 cc
  i_base_horse_exp_addr:
  dq 0

INJECT_GET_HORSE_EXP:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_HORSE_EXP i_base_horse_exp_addr)

[DISABLE]

INJECT_GET_HORSE_EXP:
  db 8B 00 BE 3F 42 0F 00

unregistersymbol(INJECT_GET_HORSE_EXP i_base_horse_exp_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+13E7D81

DWORIGINS.exe+13E7D5F: 41 BF 00 00 00 00  - mov r15d,00000000
DWORIGINS.exe+13E7D65: 49 0F 44 C7        - cmove rax,r15
DWORIGINS.exe+13E7D69: 48 3B C8           - cmp rcx,rax
DWORIGINS.exe+13E7D6C: 76 0A              - jna DWORIGINS.exe+13E7D78
DWORIGINS.exe+13E7D6E: 41 8B CF           - mov ecx,r15d
DWORIGINS.exe+13E7D71: 48 85 D2           - test rdx,rdx
DWORIGINS.exe+13E7D74: 49 0F 45 C8        - cmovne rcx,r8
DWORIGINS.exe+13E7D78: 49 8B 04 C9        - mov rax,[r9+rcx*8]
DWORIGINS.exe+13E7D7C: 48 85 C0           - test rax,rax
DWORIGINS.exe+13E7D7F: 74 18              - je DWORIGINS.exe+13E7D99
// ---------- INJECTING HERE ----------
DWORIGINS.exe+13E7D81: 8B 00              - mov eax,[rax]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+13E7D83: BE 3F 42 0F 00     - mov esi,000F423F
DWORIGINS.exe+13E7D88: 3B C6              - cmp eax,esi
DWORIGINS.exe+13E7D8A: 73 10              - jae DWORIGINS.exe+13E7D9C
DWORIGINS.exe+13E7D8C: 8B F0              - mov esi,eax
DWORIGINS.exe+13E7D8E: 85 C0              - test eax,eax
DWORIGINS.exe+13E7D90: 41 0F 44 F7        - cmove esi,r15d
DWORIGINS.exe+13E7D94: EB 06              - jmp DWORIGINS.exe+13E7D9C
DWORIGINS.exe+13E7D96: 45 33 FF           - xor r15d,r15d
DWORIGINS.exe+13E7D99: 41 8B F7           - mov esi,r15d
DWORIGINS.exe+13E7D9C: 41 8B CE           - mov ecx,r14d
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>73</ID>
          <Description>"Usage: Equip-&gt;Horse"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>74</ID>
          <Description>"EXP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_horse_exp_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>75</ID>
      <Description>"Set the stock of consumable items"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-20
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SET_CONSUME_ITEM_CNT,$process,0F B6 0A 80 F9 09) // should be unique
alloc(newmem,$1000,INJECT_SET_CONSUME_ITEM_CNT)

label(code)
label(return i_min_item_cnt_threshold i_set_item_cnt_to)

newmem:
  mov cl, [i_min_item_cnt_threshold]
  cmp [rdx], cl
  jb code
  mov cl, [i_set_item_cnt_to]
  cmp [rdx], cl
  jae code
  mov [rdx], cl

code:
  movzx ecx,byte ptr [rdx]
  cmp cl,09
  jmp return
align 10 cc
  i_min_item_cnt_threshold:
  db 1
  db 0 0 0
  db 0 0 0 0
  i_set_item_cnt_to:
  db 5

INJECT_SET_CONSUME_ITEM_CNT:
  jmp newmem
  nop
return:
registersymbol(INJECT_SET_CONSUME_ITEM_CNT i_min_item_cnt_threshold i_set_item_cnt_to)

[DISABLE]

INJECT_SET_CONSUME_ITEM_CNT:
  db 0F B6 0A 80 F9 09

unregistersymbol(INJECT_SET_CONSUME_ITEM_CNT i_min_item_cnt_threshold i_set_item_cnt_to)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+A8291A

DWORIGINS.exe+A828F9: 48 8B 08     - mov rcx,[rax]
DWORIGINS.exe+A828FC: 45 33 C9     - xor r9d,r9d
DWORIGINS.exe+A828FF: 4D 85 C0     - test r8,r8
DWORIGINS.exe+A82902: 49 8D 40 FF  - lea rax,[r8-01]
DWORIGINS.exe+A82906: 49 0F 44 C1  - cmove rax,r9
DWORIGINS.exe+A8290A: 48 3B D0     - cmp rdx,rax
DWORIGINS.exe+A8290D: 48 0F 46 C2  - cmovbe rax,rdx
DWORIGINS.exe+A82911: 48 8B 14 C1  - mov rdx,[rcx+rax*8]
DWORIGINS.exe+A82915: 48 85 D2     - test rdx,rdx
DWORIGINS.exe+A82918: 74 1B        - je DWORIGINS.exe+A82935
// ---------- INJECTING HERE ----------
DWORIGINS.exe+A8291A: 0F B6 0A     - movzx ecx,byte ptr [rdx]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+A8291D: 80 F9 09     - cmp cl,09
DWORIGINS.exe+A82920: 72 06        - jb DWORIGINS.exe+A82928
DWORIGINS.exe+A82922: B0 09        - mov al,09
DWORIGINS.exe+A82924: 0F B6 C0     - movzx eax,al
DWORIGINS.exe+A82927: C3           - ret 
DWORIGINS.exe+A82928: 84 C9        - test cl,cl
DWORIGINS.exe+A8292A: 0F B6 C1     - movzx eax,cl
DWORIGINS.exe+A8292D: 41 0F 44 C1  - cmove eax,r9d
DWORIGINS.exe+A82931: 0F B6 C0     - movzx eax,al
DWORIGINS.exe+A82934: C3           - ret 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>76</ID>
          <Description>"Usage: Equip-&gt; Consumables"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>77</ID>
          <Description>"item stock must &gt;="</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_min_item_cnt_threshold</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>78</ID>
          <Description>"Set item stock to"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Byte</VariableType>
          <Address>i_set_item_cnt_to</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>79</ID>
      <Description>"Get bonds level in Shui Jing Retreat (水鏡庵)"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-21
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_FRIENDSHIP_LVL,$process,0F B6 4A 02 80 F9 05 73) // should be unique
alloc(newmem,$1000,INJECT_GET_FRIENDSHIP_LVL)

label(code)
label(return i_base_friendship_addr)

newmem:
  mov [i_base_friendship_addr], rdx

code:
  movzx ecx,byte ptr [rdx+02]
  cmp cl,05
  jmp return
align 10 cc
  i_base_friendship_addr:
  dq 0

INJECT_GET_FRIENDSHIP_LVL:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_GET_FRIENDSHIP_LVL i_base_friendship_addr)

[DISABLE]

INJECT_GET_FRIENDSHIP_LVL:
  db 0F B6 4A 02 80 F9 05

unregistersymbol(INJECT_GET_FRIENDSHIP_LVL i_base_friendship_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+125CD1B

DWORIGINS.exe+125CCFB: 73 38        - jae DWORIGINS.exe+125CD35
DWORIGINS.exe+125CCFD: 48 8B 09     - mov rcx,[rcx]
DWORIGINS.exe+125CD00: 48 8D 42 FF  - lea rax,[rdx-01]
DWORIGINS.exe+125CD04: 48 85 D2     - test rdx,rdx
DWORIGINS.exe+125CD07: 49 0F 44 C0  - cmove rax,r8
DWORIGINS.exe+125CD0B: 4C 3B C8     - cmp r9,rax
DWORIGINS.exe+125CD0E: 49 0F 46 C1  - cmovbe rax,r9
DWORIGINS.exe+125CD12: 48 8B 14 C1  - mov rdx,[rcx+rax*8]
DWORIGINS.exe+125CD16: 48 85 D2     - test rdx,rdx
DWORIGINS.exe+125CD19: 74 1A        - je DWORIGINS.exe+125CD35
// ---------- INJECTING HERE ----------
DWORIGINS.exe+125CD1B: 0F B6 4A 02  - movzx ecx,byte ptr [rdx+02]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+125CD1F: 80 F9 05     - cmp cl,05
DWORIGINS.exe+125CD22: 73 0E        - jae DWORIGINS.exe+125CD32
DWORIGINS.exe+125CD24: 84 C9        - test cl,cl
DWORIGINS.exe+125CD26: 0F B6 C1     - movzx eax,cl
DWORIGINS.exe+125CD29: 44 0F 45 C0  - cmovne r8d,eax
DWORIGINS.exe+125CD2D: 45 84 C0     - test r8b,r8b
DWORIGINS.exe+125CD30: 74 03        - je DWORIGINS.exe+125CD35
DWORIGINS.exe+125CD32: B0 01        - mov al,01
DWORIGINS.exe+125CD34: C3           - ret 
DWORIGINS.exe+125CD35: 32 C0        - xor al,al
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>80</ID>
          <Description>"Only for acquaintance"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>81</ID>
          <Description>"Value"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_friendship_addr</Address>
          <Offsets>
            <Offset>2</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>82</ID>
      <Description>"Get weapon data"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_WEAPON_DATA,$process,0F BF 42 04 3D 2B 01 00 00 77 15) // should be unique
alloc(newmem,$1000,INJECT_GET_WEAPON_DATA)

label(code)
label(return i_base_weapon_data_addr)

newmem:
  mov [i_base_weapon_data_addr], rdx

code:
  movsx eax,word ptr [rdx+04]
  cmp eax,0000012B
  jmp return
align 10 cc
  i_base_weapon_data_addr:
  dq 0

INJECT_GET_WEAPON_DATA:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_GET_WEAPON_DATA i_base_weapon_data_addr)

[DISABLE]

INJECT_GET_WEAPON_DATA:
  db 0F BF 42 04 3D 2B 01 00 00

unregistersymbol(INJECT_GET_WEAPON_DATA i_base_weapon_data_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+13F17AE

DWORIGINS.exe+13F1790: 48 85 C9           - test rcx,rcx
DWORIGINS.exe+13F1793: 48 0F 44 C6        - cmove rax,rsi
DWORIGINS.exe+13F1797: 48 3B D8           - cmp rbx,rax
DWORIGINS.exe+13F179A: 76 09              - jna DWORIGINS.exe+13F17A5
DWORIGINS.exe+13F179C: 48 85 C9           - test rcx,rcx
DWORIGINS.exe+13F179F: 8B D6              - mov edx,esi
DWORIGINS.exe+13F17A1: 49 0F 45 D0        - cmovne rdx,r8
DWORIGINS.exe+13F17A5: 49 8B 14 D1        - mov rdx,[r9+rdx*8]
DWORIGINS.exe+13F17A9: 48 85 D2           - test rdx,rdx
DWORIGINS.exe+13F17AC: 74 34              - je DWORIGINS.exe+13F17E2
// ---------- INJECTING HERE ----------
DWORIGINS.exe+13F17AE: 0F BF 42 04        - movsx eax,word ptr [rdx+04]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+13F17B2: 3D 2B 01 00 00     - cmp eax,0000012B
DWORIGINS.exe+13F17B7: 77 15              - ja DWORIGINS.exe+13F17CE
DWORIGINS.exe+13F17B9: 83 F8 FF           - cmp eax,-01
DWORIGINS.exe+13F17BC: 74 10              - je DWORIGINS.exe+13F17CE
DWORIGINS.exe+13F17BE: B1 01              - mov cl,01
DWORIGINS.exe+13F17C0: 41 BD FF FF FF FF  - mov r13d,FFFFFFFF
DWORIGINS.exe+13F17C6: 84 C9              - test cl,cl
DWORIGINS.exe+13F17C8: 44 0F 45 E8        - cmovne r13d,eax
DWORIGINS.exe+13F17CC: EB 1A              - jmp DWORIGINS.exe+13F17E8
DWORIGINS.exe+13F17CE: 33 C9              - xor ecx,ecx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>83</ID>
          <Description>"Usage: Equip-&gt;Weapon"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>84</ID>
          <Description>"??"</Description>
          <ShowAsHex>1</ShowAsHex>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>0</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>85</ID>
          <Description>"Weapon ID"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>4</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>86</ID>
          <Description>"+ Value"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>12</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>87</ID>
          <Description>"Skill 1"</Description>
          <Options moDeactivateChildrenAsWell="1"/>
          <DropDownListLink>skill-id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>6</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>88</ID>
          <Description>"Skill 1 Lv"</Description>
          <DropDownList DisplayValueAsItem="1">0:N/A
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>13</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>89</ID>
          <Description>"Skill 2"</Description>
          <Options moDeactivateChildrenAsWell="1"/>
          <DropDownListLink>skill-id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>8</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>90</ID>
          <Description>"Skill 2 Lv"</Description>
          <DropDownListLink>Skill 1 Lv</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>91</ID>
          <Description>"Skill 3"</Description>
          <Options moDeactivateChildrenAsWell="1"/>
          <DropDownListLink>skill-id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>92</ID>
          <Description>"Skill 3 Lv"</Description>
          <DropDownListLink>Skill 1 Lv</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>15</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>93</ID>
          <Description>"Skill 4"</Description>
          <Options moDeactivateChildrenAsWell="1"/>
          <DropDownListLink>skill-id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>C</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>94</ID>
          <Description>"Skill 4 Lv"</Description>
          <DropDownListLink>Skill 1 Lv</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>16</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>95</ID>
          <Description>"Skill 5"</Description>
          <Options moDeactivateChildrenAsWell="1"/>
          <DropDownListLink>skill-id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>E</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>96</ID>
          <Description>"Skill 5 Lv"</Description>
          <DropDownListLink>Skill 1 Lv</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>17</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>97</ID>
          <Description>"Skill 6"</Description>
          <Options moDeactivateChildrenAsWell="1"/>
          <DropDownListLink>skill-id</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>98</ID>
          <Description>"Skill 6 Lv"</Description>
          <DropDownListLink>Skill 1 Lv</DropDownListLink>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>Byte</VariableType>
          <Address>i_base_weapon_data_addr</Address>
          <Offsets>
            <Offset>18</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>99</ID>
      <Description>"Get money"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : DWORIGINS.exe
  Version: 
  Date   : 2025-01-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MONEY,$process,8B 89 84 03 00 00 3B) // should be unique
alloc(newmem,$1000,INJECT_GET_MONEY)

label(code)
label(return i_base_money_addr)

newmem:
  mov [i_base_money_addr], rcx

code:
  mov ecx,[rcx+00000384]
  jmp return
align 10 cc
  i_base_money_addr:
  dq 0

INJECT_GET_MONEY:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_MONEY i_base_money_addr)

[DISABLE]

INJECT_GET_MONEY:
  db 8B 89 84 03 00 00

unregistersymbol(INJECT_GET_MONEY i_base_money_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+13D6615

DWORIGINS.exe+13D65F7: 49 8B 40 08           - mov rax,[r8+08]
DWORIGINS.exe+13D65FB: 48 8B 40 08           - mov rax,[rax+08]
DWORIGINS.exe+13D65FF: 48 85 C0              - test rax,rax
DWORIGINS.exe+13D6602: 74 28                 - je DWORIGINS.exe+13D662C
DWORIGINS.exe+13D6604: 48 39 78 08           - cmp [rax+08],rdi
DWORIGINS.exe+13D6608: 76 22                 - jna DWORIGINS.exe+13D662C
DWORIGINS.exe+13D660A: 48 8B 00              - mov rax,[rax]
DWORIGINS.exe+13D660D: 48 8B 08              - mov rcx,[rax]
DWORIGINS.exe+13D6610: 48 85 C9              - test rcx,rcx
DWORIGINS.exe+13D6613: 74 17                 - je DWORIGINS.exe+13D662C
// ---------- INJECTING HERE ----------
DWORIGINS.exe+13D6615: 8B 89 84 03 00 00     - mov ecx,[rcx+00000384]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+13D661B: 3B CB                 - cmp ecx,ebx
DWORIGINS.exe+13D661D: 72 04                 - jb DWORIGINS.exe+13D6623
DWORIGINS.exe+13D661F: 8B C3                 - mov eax,ebx
DWORIGINS.exe+13D6621: EB 0B                 - jmp DWORIGINS.exe+13D662E
DWORIGINS.exe+13D6623: 85 C9                 - test ecx,ecx
DWORIGINS.exe+13D6625: 8B C7                 - mov eax,edi
DWORIGINS.exe+13D6627: 0F 45 C1              - cmovne eax,ecx
DWORIGINS.exe+13D662A: EB 02                 - jmp DWORIGINS.exe+13D662E
DWORIGINS.exe+13D662C: 8B C7                 - mov eax,edi
DWORIGINS.exe+13D662E: 4C 8D 25 4B 94 E5 01  - lea r12,[DWORIGINS.exe+322FA80]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>100</ID>
          <Description>"money"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_money_addr</Address>
          <Offsets>
            <Offset>384</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>101</ID>
          <Description>"Skill Points / 武功"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_money_addr</Address>
          <Offsets>
            <Offset>458</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>102</ID>
          <Description>"Old Coins / 古銭"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_money_addr</Address>
          <Offsets>
            <Offset>45A</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>103</ID>
          <Description>"Pyroxene / 輝石"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_money_addr</Address>
          <Offsets>
            <Offset>4BE</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>104</ID>
          <Description>"Moongrass / 月香草"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_money_addr</Address>
          <Offsets>
            <Offset>46C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>105</ID>
      <Description>"DYNASTY WARRIORS: ORIGINS; 真・三國無双 ORIGINS 1.0.0.9  /  https://opencheattables.com"</Description>
      <Options moHideChildren="1"/>
      <Color>00A800</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>106</ID>
          <Description>"skill-id"</Description>
          <DropDownList DisplayValueAsItem="1">0:Boosts normal atk strength by % (gray)
1:Boosts normal atk strength by % (soft brown)
2:Boosts strong atk strength by % (gray)
3:Boosts strong atk strength by % (soft brown)
4:Boosts Musou Atk strength by % (gray)
5:Boosts Musou Atk strength by % (soft brown)
6:Boosts Battle Arts strength by % (gray)
7:Boosts Battle Arts strength by % (soft brown)
8:Extends the input window for parries (gray)
9:Boost damage to officers by % (soft brown)
10:Boost dmg to soldiers % (gray)
11:Boost dmg to soldiers % (soft brown)
12:Boosts Bravery gained during parries by % (soft brown)
13:Boosts Musou Gauge by % (Golden)
14:Boosts Bravery gained by % (white)
15:inc Proficiency gained by %, but allows enemies to break your guard. (Golden)
16:Grants % chance of not draining Bravery Gauge when activating a Battle Art (Golden)
17:Boosts damage to Wushu, to officers by % (Golden)
18:Boosts charged strong atk strength by % (gray)
19:Obtain a small amount of Bravery upon defecting an officer. (Golden)
20:Reduces the charge time for strong atks by % (white)
21:Grants a very small chance of generating a whirlwind  when attacking (Golden)
22:Boosts atk by % for a limited time after perfect evade
23:Boosts dmg dealt by %, but reduces your Defense by 5% (gray)
24:Grants a very small chance of meat bun from enemy (white)
25:Extends the input window for parries (soft brown)
26:Repel ebemy arrows when attacking (1?)
27:Enables you to dash in midair with [RT] / [Space] (1)
28:Increases the drop rate of Nectar Water
29:Boosts assault strength by % (white)
30:Extends the input window for perfect Evades (white)
31:Inc the amt of Bravery gained after perfect evade (white)
32:Increases the drop rate of weapons (Golden)
33:Boosts Defense Strength by % at Winning morale of higher (white)
65535:None
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address/>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Friendship 
DWORIGINS.exe+114FBF8 - 41 0FB6 48 02         - movzx ecx,byte ptr [r8+02]
41 0F B6 48 02 80 F9 05 73
HP init.
DWORIGINS.exe,48 89 5E 38 48 89 5E 40 33
DWORIGINS.exe+1B784A: 48 89 5E 38
Guards skill counter
DWORIGINS.exe,F3 0F 11 40 34 8B 40 30 83 E0 CF 83 C8 08 89 41 30 E9 31
DWORIGINS.exe+FC2CA9
</Comments>
  <LuaScript>IDs = {105,     }

function contains(table, val)
   local i = 0
   for i=1, #table do
      if table[i] == val then
         return true
      end
   end
   return false
end

function onMemRecPreExecute(memoryrecord, newstate)
    if contains(IDs, memoryrecord.ID) and newstate then
	    memoryrecord.OnActivate = function(memoryrecord, before, currentstate)
		    return false
	    end
    end
end

</LuaScript>
</CheatTable>
