<?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"
  79, -- "Get bonds level in Shui Jing Retreat (水鏡庵)"
  99, -- "Get money / currency"
  108, -- "[DLC} get Visionary skill pt (幻武功/夢幻戰功)"
  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"
  108, -- "[DLC} get Visionary skill pt (幻武功/夢幻戰功)"
  105, -- "DYNASTY WARRIORS: ORIGINS; 真・三國無双 ORIGINS 1.0.0.9  /  https://opencheattables.com"
  99, -- "Get money / currency"
  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 / currency", Depth: 0
-- ID: 108, Description: "[DLC} get Visionary skill pt (幻武功/夢幻戰功)", 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   : 2026-01-22
  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+119E33

DWORIGINS.exe+119E19: 89 41 34              - mov [rcx+34],eax
DWORIGINS.exe+119E1C: C3                    - ret
DWORIGINS.exe+119E1D: CC                    - int 3
DWORIGINS.exe+119E1E: CC                    - int 3
DWORIGINS.exe+119E1F: CC                    - int 3
DWORIGINS.exe+119E20: 48 83 EC 28           - sub rsp,28
DWORIGINS.exe+119E24: 0F 57 E4              - xorps xmm4,xmm4
DWORIGINS.exe+119E27: 48 8B D1              - mov rdx,rcx
DWORIGINS.exe+119E2A: 0F 2F E1              - comiss xmm4,xmm1
DWORIGINS.exe+119E2D: 0F 87 B8 00 00 00     - ja DWORIGINS.exe+119EEB
// ---------- INJECTING HERE ----------
DWORIGINS.exe+119E33: F3 0F 10 51 38        - movss xmm2,[rcx+38]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+119E38: 0F 2F E2              - comiss xmm4,xmm2
DWORIGINS.exe+119E3B: 0F 87 AA 00 00 00     - ja DWORIGINS.exe+119EEB
DWORIGINS.exe+119E41: 8B 41 18              - mov eax,[rcx+18]
DWORIGINS.exe+119E44: 48 A9 00 00 00 20     - test rax,20000000
DWORIGINS.exe+119E4A: 0F 87 9B 00 00 00     - ja DWORIGINS.exe+119EEB
DWORIGINS.exe+119E50: 48 8B 41 10           - mov rax,[rcx+10]
DWORIGINS.exe+119E54: 0F 57 C0              - xorps xmm0,xmm0
DWORIGINS.exe+119E57: F3 0F 10 59 34        - movss xmm3,[rcx+34]
DWORIGINS.exe+119E5C: F6 80 10 02 00 00 02  - test byte ptr [rax+00000210],02
DWORIGINS.exe+119E63: 74 16                 - je DWORIGINS.exe+119E7B
DWORIGINS.exe+119E65 - B9 66020000           - mov ecx,00000266
DWORIGINS.exe+119E6A - E8 5124FAFF           - call DWORIGINS.exe+BC2C0
DWORIGINS.exe+119E6F - F3 0F59 C3            - mulss xmm0,xmm3
DWORIGINS.exe+119E73 - F3 0F59 05 95A84903   - mulss xmm0,[DWORIGINS.exe+35B4710]
DWORIGINS.exe+119E7B - F3 0F5C D1            - subss xmm2,xmm1
DWORIGINS.exe+119E7F - 0F2F D3               - comiss xmm2,xmm3
DWORIGINS.exe+119E82 - 73 07                 - jae DWORIGINS.exe+119E8B
DWORIGINS.exe+119E84 - F3 0F5F C2            - maxss xmm0,xmm2
DWORIGINS.exe+119E88 - 0F28 D8               - movaps xmm3,xmm0
DWORIGINS.exe+119E8B - 0F2F CC               - comiss xmm1,xmm4
DWORIGINS.exe+119E8E - F3 0F11 5A 38         - movss [rdx+38],xmm3
DWORIGINS.exe+119E93 - 76 0C                 - jna DWORIGINS.exe+119EA1
DWORIGINS.exe+119E95 - 8B 82 14010000        - mov eax,[rdx+00000114]
DWORIGINS.exe+119E9B - 89 82 10010000        - mov [rdx+00000110],eax
DWORIGINS.exe+119EA1 - 80 BA 54010000 00     - cmp byte ptr [rdx+00000154],00
DWORIGINS.exe+119EA8 - 74 20                 - je DWORIGINS.exe+119ECA
DWORIGINS.exe+119EAA - F3 0F10 05 3EB14903   - movss xmm0,[DWORIGINS.exe+35B4FF0]
DWORIGINS.exe+119EB2 - F3 0F5C 82 58010000   - subss xmm0,[rdx+00000158]
DWORIGINS.exe+119EBA - F3 0F58 82 60010000   - addss xmm0,[rdx+00000160]
DWORIGINS.exe+119EC2 - F3 0F11 82 60010000   - movss [rdx+00000160],xmm0
DWORIGINS.exe+119ECA - F3 0F58 8A 5C010000   - addss xmm1,[rdx+0000015C]
DWORIGINS.exe+119ED2 - C7 82 58010000 0000A040 - mov [rdx+00000158],40A00000
DWORIGINS.exe+119EDC - C6 82 54010000 01     - mov byte ptr [rdx+00000154],01
DWORIGINS.exe+119EE3 - F3 0F11 8A 5C010000   - movss [rdx+0000015C],xmm1
DWORIGINS.exe+119EEB - 48 83 C4 28           - add rsp,28
DWORIGINS.exe+119EEF - 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   : 2026-01-22
  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+11C44B

DWORIGINS.exe+11C41C: F3 0F 59 05 EC 82 49 03  - mulss xmm0,[DWORIGINS.exe+35B4710]
DWORIGINS.exe+11C424: F3 0F 58 C2              - addss xmm0,xmm2
DWORIGINS.exe+11C428: 0F 2F C1                 - comiss xmm0,xmm1
DWORIGINS.exe+11C42B: 73 07                    - jae DWORIGINS.exe+11C434
DWORIGINS.exe+11C42D: 0F 28 CE                 - movaps xmm1,xmm6
DWORIGINS.exe+11C430: F3 0F 5F C8              - maxss xmm1,xmm0
DWORIGINS.exe+11C434: B9 C9 02 00 00           - mov ecx,000002C9
DWORIGINS.exe+11C439: F3 0F 11 4F 38           - movss [rdi+38],xmm1
DWORIGINS.exe+11C43E: E8 7D FE F9 FF           - call DWORIGINS.exe+BC2C0
DWORIGINS.exe+11C443: F3 0F 11 87 64 01 00 00  - movss [rdi+00000164],xmm0
// ---------- INJECTING HERE ----------
DWORIGINS.exe+11C44B: 8B 47 38                 - mov eax,[rdi+38]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+11C44E: 89 47 3C                 - mov [rdi+3C],eax
DWORIGINS.exe+11C451: 0F 28 74 24 20           - movaps xmm6,[rsp+20]
DWORIGINS.exe+11C456: 48 8B 6C 24 50           - mov rbp,[rsp+50]
DWORIGINS.exe+11C45B: 48 83 C4 30              - add rsp,30
DWORIGINS.exe+11C45F: 5F                       - pop rdi
DWORIGINS.exe+11C460: C3                       - ret
DWORIGINS.exe+11C461: CC                       - int 3
DWORIGINS.exe+11C462: CC                       - int 3
DWORIGINS.exe+11C463: CC                       - int 3
DWORIGINS.exe+11C464: 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 41 0F 58 C8 0F 2F CA) // 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 xmm8, 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 xmm8, xmm6, xmm15

code_pre:
  movaps xmm13, [bak13]
  movaps xmm14, [bak14]
  movaps xmm15, [bak15]
  popfq

code:
  //addss xmm1,xmm6
  //comiss xmm1,xmm2
  addss xmm1,xmm8
  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
return:
registersymbol(INJECT_MUSOU_MULTI vf_musou_multi)

[DISABLE]

INJECT_MUSOU_MULTI:
  db F3 41 0F 58 C8

unregistersymbol(INJECT_MUSOU_MULTI vf_musou_multi)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+11A426

DWORIGINS.exe+11A403: 48 83 C0 60        - add rax,60
DWORIGINS.exe+11A407: 48 3B C1           - cmp rax,rcx
DWORIGINS.exe+11A40A: 75 E4              - jne DWORIGINS.exe+11A3F0
DWORIGINS.exe+11A40C: 84 D2              - test dl,dl
DWORIGINS.exe+11A40E: 74 04              - je DWORIGINS.exe+11A414
DWORIGINS.exe+11A410: F3 0F 58 C1        - addss xmm0,xmm1
DWORIGINS.exe+11A414: F3 44 0F 59 C0     - mulss xmm8,xmm0
DWORIGINS.exe+11A419: F3 0F 10 73 44     - movss xmm6,[rbx+44]
DWORIGINS.exe+11A41E: F3 0F 10 53 40     - movss xmm2,[rbx+40]
DWORIGINS.exe+11A423: 0F 28 CE           - movaps xmm1,xmm6
// ---------- INJECTING HERE ----------
DWORIGINS.exe+11A426: F3 41 0F 58 C8     - addss xmm1,xmm8
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+11A42B: 0F 2F CA           - comiss xmm1,xmm2
DWORIGINS.exe+11A42E: 72 05              - jb DWORIGINS.exe+11A435
DWORIGINS.exe+11A430: 0F 28 C2           - movaps xmm0,xmm2
DWORIGINS.exe+11A433: EB 08              - jmp DWORIGINS.exe+11A43D
DWORIGINS.exe+11A435: 41 0F 28 C1        - movaps xmm0,xmm9
DWORIGINS.exe+11A439: F3 0F 5F C1        - maxss xmm0,xmm1
DWORIGINS.exe+11A43D: 0F 2E C2           - ucomiss xmm0,xmm2
DWORIGINS.exe+11A440: F3 0F 11 43 44     - movss [rbx+44],xmm0
DWORIGINS.exe+11A445: 0F 8A D4 00 00 00  - jp DWORIGINS.exe+11A51F
DWORIGINS.exe+11A44B: 0F 85 CE 00 00 00  - jne DWORIGINS.exe+11A51F
}
</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+11A6C6

DWORIGINS.exe+11A6A1: F6 82 10 02 00 00 04  - test byte ptr [rdx+00000210],04
DWORIGINS.exe+11A6A8: 74 1C                 - je DWORIGINS.exe+11A6C6
DWORIGINS.exe+11A6AA: 0F 2F CB              - comiss xmm1,xmm3
DWORIGINS.exe+11A6AD: 76 17                 - jna DWORIGINS.exe+11A6C6
DWORIGINS.exe+11A6AF: E8 6C C4 98 00        - call DWORIGINS.exe+AA6B20
DWORIGINS.exe+11A6B4: 85 C0                 - test eax,eax
DWORIGINS.exe+11A6B6: 75 0E                 - jne DWORIGINS.exe+11A6C6
DWORIGINS.exe+11A6B8: B9 8D 00 00 00        - mov ecx,0000008D
DWORIGINS.exe+11A6BD: E8 FE 1B FA FF        - call DWORIGINS.exe+BC2C0
DWORIGINS.exe+11A6C2: F3 0F 59 C8           - mulss xmm1,xmm0
// ---------- INJECTING HERE ----------
DWORIGINS.exe+11A6C6: F3 41 0F 58 4A 70     - addss xmm1,[r10+70]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+11A6CC: F3 41 0F 10 42 6C     - movss xmm0,[r10+6C]
DWORIGINS.exe+11A6D2: 0F 2F C8              - comiss xmm1,xmm0
DWORIGINS.exe+11A6D5: 73 07                 - jae DWORIGINS.exe+11A6DE
DWORIGINS.exe+11A6D7: 0F 28 C3              - movaps xmm0,xmm3
DWORIGINS.exe+11A6DA: F3 0F 5F C1           - maxss xmm0,xmm1
DWORIGINS.exe+11A6DE: F3 41 0F 11 42 70     - movss [r10+70],xmm0
DWORIGINS.exe+11A6E4: 48 83 C4 28           - add rsp,28
DWORIGINS.exe+11A6E8: C3                    - ret
DWORIGINS.exe+11A6E9: CC                    - int 3
DWORIGINS.exe+11A6EA: 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 [rsi+000009A0],3
  jae code
  mov word ptr [rsi+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   : 2026-01-22
  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+AAB26E

DWORIGINS.exe+AAB21F - CC                    - int 3
DWORIGINS.exe+AAB220 - 48 8B 05 89E11603     - mov rax,[DWORIGINS.exe+3C193B0]
DWORIGINS.exe+AAB227 - 48 8B 50 08           - mov rdx,[rax+08]
DWORIGINS.exe+AAB22B - 48 8B 42 08           - mov rax,[rdx+08]
DWORIGINS.exe+AAB22F - 48 85 C0              - test rax,rax
DWORIGINS.exe+AAB232 - 74 56                 - je DWORIGINS.exe+AAB28A
DWORIGINS.exe+AAB234 - 48 83 78 08 00        - cmp qword ptr [rax+08],00
DWORIGINS.exe+AAB239 - 76 4F                 - jna DWORIGINS.exe+AAB28A
DWORIGINS.exe+AAB23B - 48 8B 00              - mov rax,[rax]
DWORIGINS.exe+AAB23E - 48 8B 10              - mov rdx,[rax]
DWORIGINS.exe+AAB241 - 48 85 D2              - test rdx,rdx
DWORIGINS.exe+AAB244 - 74 44                 - je DWORIGINS.exe+AAB28A
DWORIGINS.exe+AAB246: 44 0F B7 92 58 04 00 00  - movzx r10d,word ptr [rdx+00000458]
DWORIGINS.exe+AAB24E: B8 E7 03 00 00           - mov eax,000003E7
DWORIGINS.exe+AAB253: 45 33 C0                 - xor r8d,r8d
DWORIGINS.exe+AAB256: 66 44 3B D0              - cmp r10w,ax
DWORIGINS.exe+AAB25A: 72 06                    - jb DWORIGINS.exe+AAB262
DWORIGINS.exe+AAB25C: 44 0F B7 C8              - movzx r9d,ax
DWORIGINS.exe+AAB260: EB 0C                    - jmp DWORIGINS.exe+AAB26E
DWORIGINS.exe+AAB262: 66 45 85 D2              - test r10w,r10w
DWORIGINS.exe+AAB266: 45 8B C8                 - mov r9d,r8d
DWORIGINS.exe+AAB269: 66 45 0F 45 CA           - cmovne r9w,r10w
// ---------- INJECTING HERE ----------
DWORIGINS.exe+AAB26E: 66 41 03 C9              - add cx,r9w
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+AAB272: 66 3B C8                 - cmp cx,ax
DWORIGINS.exe+AAB275: 73 0C                    - jae DWORIGINS.exe+AAB283
DWORIGINS.exe+AAB277: 66 85 C9                 - test cx,cx
DWORIGINS.exe+AAB27A: 66 44 0F 45 C1           - cmovne r8w,cx
DWORIGINS.exe+AAB27F: 41 0F B7 C0              - movzx eax,r8w
DWORIGINS.exe+AAB283: 66 89 82 58 04 00 00     - mov [rdx+00000458],ax
DWORIGINS.exe+AAB28A: C3                       - ret
DWORIGINS.exe+AAB28B: CC                       - int 3
DWORIGINS.exe+AAB28C: CC                       - int 3
DWORIGINS.exe+AAB28D: 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   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SKILL_XP_MULTI_3,$process,8D 48 01 3B CD) // should be unique
label(i_skill_xp_multi_3)

INJECT_SKILL_XP_MULTI_3:
  db 8D 48
i_skill_xp_multi_3:
  db 3

registersymbol(INJECT_SKILL_XP_MULTI_3 i_skill_xp_multi_3)

[DISABLE]

INJECT_SKILL_XP_MULTI_3:
  db 8D 48 01

unregistersymbol(INJECT_SKILL_XP_MULTI_3 i_skill_xp_multi_3)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+198995

DWORIGINS.exe+19896A: 3B DD                 - cmp ebx,ebp
DWORIGINS.exe+19896C: 0F 87 AD 00 00 00     - ja DWORIGINS.exe+198A1F
DWORIGINS.exe+198972: BA 09 00 00 00        - mov edx,00000009
DWORIGINS.exe+198977: 48 89 74 24 50        - mov [rsp+50],rsi
DWORIGINS.exe+19897C: 48 8B CF              - mov rcx,rdi
DWORIGINS.exe+19897F: 44 8D 42 F8           - lea r8d,[rdx-08]
DWORIGINS.exe+198983: E8 58 84 20 00        - call DWORIGINS.exe+3A0DE0
DWORIGINS.exe+198988: 48 63 C3              - movsxd  rax,ebx
DWORIGINS.exe+19898B: 48 8D 14 87           - lea rdx,[rdi+rax*4]
DWORIGINS.exe+19898F: 8B 82 18 0A 00 00     - mov eax,[rdx+00000A18]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+198995: 8D 48 01              - lea ecx,[rax+01]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+198998: 3B CD                 - cmp ecx,ebp
DWORIGINS.exe+19899A: 72 05                 - jb DWORIGINS.exe+1989A1
DWORIGINS.exe+19899C: 0F B7 C5              - movzx eax,bp
DWORIGINS.exe+19899F: EB 08                 - jmp DWORIGINS.exe+1989A9
DWORIGINS.exe+1989A1: 33 C0                 - xor eax,eax
DWORIGINS.exe+1989A3: 85 C9                 - test ecx,ecx
DWORIGINS.exe+1989A5: 66 0F 45 C1           - cmovne ax,cx
DWORIGINS.exe+1989A9: 0F B7 C0              - movzx eax,ax
DWORIGINS.exe+1989AC: 89 82 18 0A 00 00     - mov [rdx+00000A18],eax
DWORIGINS.exe+1989B2: 48 8B 05 E7 09 A8 03  - mov rax,[DWORIGINS.exe+3C193A0]
}
</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   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_WEAPON_EXP_MULTI,$process,F3 0F 58 94 BD B4 09 00 00) // should be unique
alloc(newmem,$200,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]
  addss xmm2,[rbp+rdi*4+000009B4]
  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 B4 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+3A0C89

DWORIGINS.exe+3A0C65: 48 3B C8                       - cmp rcx,rax
DWORIGINS.exe+3A0C68: 73 0A                          - jae DWORIGINS.exe+3A0C74
DWORIGINS.exe+3A0C6A: 48 85 C9                       - test rcx,rcx
DWORIGINS.exe+3A0C6D: 48 8B C1                       - mov rax,rcx
DWORIGINS.exe+3A0C70: 48 0F 44 C6                    - cmove rax,rsi
DWORIGINS.exe+3A0C74: 8B C0                          - mov eax,eax
DWORIGINS.exe+3A0C76: 0F 57 C0                       - xorps xmm0,xmm0
DWORIGINS.exe+3A0C79: F3 48 0F 2A C0                 - cvtsi2ss xmm0,rax
DWORIGINS.exe+3A0C7E: F3 0F 11 84 BD E4 09 00 00     - movss [rbp+rdi*4+000009E4],xmm0
DWORIGINS.exe+3A0C87: EB 53                          - jmp DWORIGINS.exe+3A0CDC
// ---------- INJECTING HERE ----------
DWORIGINS.exe+3A0C89: F3 0F 58 94 BD B4 09 00 00     - addss xmm2,[rbp+rdi*4+000009B4]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+3A0C92: 0F 2F D0                       - comiss xmm2,xmm0
DWORIGINS.exe+3A0C95: 72 16                          - jb DWORIGINS.exe+3A0CAD
DWORIGINS.exe+3A0C97: F3 0F 5C D0                    - subss xmm2,xmm0
DWORIGINS.exe+3A0C9B: 0F 2F D0                       - comiss xmm2,xmm0
DWORIGINS.exe+3A0C9E: 73 0D                          - jae DWORIGINS.exe+3A0CAD
DWORIGINS.exe+3A0CA0: 48 B8 00 00 00 00 00 00 00 80  - mov rax,8000000000000000
DWORIGINS.exe+3A0CAA: 48 03 D0                       - add rdx,rax
DWORIGINS.exe+3A0CAD: F3 48 0F 2C CA                 - cvttss2si rcx,xmm2
DWORIGINS.exe+3A0CB2: B8 3F 42 0F 00                 - mov eax,000F423F
DWORIGINS.exe+3A0CB7: 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>9B4</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+240136

DWORIGINS.exe+24010F: 4C 89 60 20           - mov [rax+20],r12
DWORIGINS.exe+240113: 4C 89 70 E8           - mov [rax-18],r14
DWORIGINS.exe+240117: E8 F4 BB 04 00        - call DWORIGINS.exe+28BD10
DWORIGINS.exe+24011C: 45 33 E4              - xor r12d,r12d
DWORIGINS.exe+24011F: 48 85 C0              - test rax,rax
DWORIGINS.exe+240122: 74 09                 - je DWORIGINS.exe+24012D
DWORIGINS.exe+240124: 44 8B B0 D0 01 00 00  - mov r14d,[rax+000001D0]
DWORIGINS.exe+24012B: EB 03                 - jmp DWORIGINS.exe+240130
DWORIGINS.exe+24012D: 45 8B F4              - mov r14d,r12d
DWORIGINS.exe+240130: 8B 8B D0 01 00 00     - mov ecx,[rbx+000001D0]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+240136: 8B F9                 - mov edi,ecx
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+240138: 42 8D 04 39           - lea eax,[rcx+r15]
DWORIGINS.exe+24013C: 3D 9F 86 01 00        - cmp eax,0001869F
DWORIGINS.exe+240141: 77 08                 - ja DWORIGINS.exe+24014B
DWORIGINS.exe+240143: 89 83 D0 01 00 00     - mov [rbx+000001D0],eax
DWORIGINS.exe+240149: 8B F8                 - mov edi,eax
DWORIGINS.exe+24014B: 2B F9                 - sub edi,ecx
DWORIGINS.exe+24014D: 48 8B 8B A0 3D 00 00  - mov rcx,[rbx+00003DA0]
DWORIGINS.exe+240154: E8 B7 BB 04 00        - call DWORIGINS.exe+28BD10
DWORIGINS.exe+240159: 48 85 C0              - test rax,rax
DWORIGINS.exe+24015C: 74 08                 - je DWORIGINS.exe+240166
}
</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   : 2026-01-22
  Author : bfox@https://opencheattables.com
}

[ENABLE]
// 1 use = float 100
// max 5 slots = 500
aobscanmodule(INJECT_INF_HORSE_CHARGE,$process,F3 0F 11 87 80 02 00 00 48) // should be unique
alloc(newmem,$1000,INJECT_INF_HORSE_CHARGE)

label(code)
label(return)

newmem:
  pushfq

  vmovss xmm14, [vf_150]
  vucomiss xmm14, xmm0
  jbe code_pre
  movss xmm0, xmm14

code_pre:
  popfq

code:
  //movss xmm0,[rax+00000280]
  movss [rdi+00000280],xmm0
  jmp return
align 10 cc
  vf_150:
  dd (float)150

INJECT_INF_HORSE_CHARGE:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_INF_HORSE_CHARGE)

[DISABLE]

INJECT_INF_HORSE_CHARGE:
  db F3 0F 11 87 80 02 00 00

unregistersymbol(INJECT_INF_HORSE_CHARGE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+FC623

DWORIGINS.exe+FC5F6: 89 47 28                 - mov [rdi+28],eax
DWORIGINS.exe+FC5F9: 8B 83 7C 10 00 00        - mov eax,[rbx+0000107C]
DWORIGINS.exe+FC5FF: 89 47 2C                 - mov [rdi+2C],eax
DWORIGINS.exe+FC602: F3 0F 10 8B 2C 10 00 00  - movss xmm1,[rbx+0000102C]
DWORIGINS.exe+FC60A: F3 0F 10 87 7C 02 00 00  - movss xmm0,[rdi+0000027C]
DWORIGINS.exe+FC612: 0F 2F C8                 - comiss xmm1,xmm0
DWORIGINS.exe+FC615: 73 07                    - jae DWORIGINS.exe+FC61E
DWORIGINS.exe+FC617: 0F 57 C0                 - xorps xmm0,xmm0
DWORIGINS.exe+FC61A: F3 0F 5F C1              - maxss xmm0,xmm1
DWORIGINS.exe+FC61E: 0F 28 7C 24 40           - movaps xmm7,[rsp+40]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+FC623: F3 0F 11 87 80 02 00 00  - movss [rdi+00000280],xmm0
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+FC62B: 48 8B 7C 24 78           - mov rdi,[rsp+78]
DWORIGINS.exe+FC630: 48 8B 9C 24 88 00 00 00  - mov rbx,[rsp+00000088]
DWORIGINS.exe+FC638: 48 83 C4 60              - add rsp,60
DWORIGINS.exe+FC63C: 5E                       - pop rsi
DWORIGINS.exe+FC63D: C3                       - ret
DWORIGINS.exe+FC63E: CC                       - int 3
DWORIGINS.exe+FC63F: CC                       - int 3
DWORIGINS.exe+FC640: 4C 8B DC                 - mov r11,rsp
DWORIGINS.exe+FC643: 55                       - push rbp
DWORIGINS.exe+FC644: 41 54                    - push r12
}
</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+3A63B2

DWORIGINS.exe+3A639A: 8B 01           - mov eax,[rcx]
DWORIGINS.exe+3A639C: 41 3B C7        - cmp eax,r15d
DWORIGINS.exe+3A639F: 72 05           - jb DWORIGINS.exe+3A63A6
DWORIGINS.exe+3A63A1: 41 8B C7        - mov eax,r15d
DWORIGINS.exe+3A63A4: EB 0C           - jmp DWORIGINS.exe+3A63B2
DWORIGINS.exe+3A63A6: 85 C0           - test eax,eax
DWORIGINS.exe+3A63A8: 0F 44 C6        - cmove eax,esi
DWORIGINS.exe+3A63AB: EB 05           - jmp DWORIGINS.exe+3A63B2
DWORIGINS.exe+3A63AD: 48 8B CE        - mov rcx,rsi
DWORIGINS.exe+3A63B0: 8B C6           - mov eax,esi
// ---------- INJECTING HERE ----------
DWORIGINS.exe+3A63B2: 42 8D 14 10     - lea edx,[rax+r10]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+3A63B6: 48 85 C9        - test rcx,rcx
DWORIGINS.exe+3A63B9: 74 11           - je DWORIGINS.exe+3A63CC
DWORIGINS.exe+3A63BB: 41 3B D7        - cmp edx,r15d
DWORIGINS.exe+3A63BE: 73 09           - jae DWORIGINS.exe+3A63C9
DWORIGINS.exe+3A63C0: 85 D2           - test edx,edx
DWORIGINS.exe+3A63C2: 44 8B FA        - mov r15d,edx
DWORIGINS.exe+3A63C5: 44 0F 44 FE     - cmove r15d,esi
DWORIGINS.exe+3A63C9: 44 89 39        - mov [rcx],r15d
DWORIGINS.exe+3A63CC: E8 AF F2 6E 00  - call DWORIGINS.exe+A95680
DWORIGINS.exe+3A63D1: 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   : 2026-01-22
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_ITEM_USE,$process,C7 ?? ?? ?? 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 A4 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+193887

DWORIGINS.exe+19385B: F3 0F 10 15 BD 13 42 03           - movss xmm2,[DWORIGINS.exe+35B4C20]
DWORIGINS.exe+193863: 89 5C 24 20                       - mov [rsp+20],ebx
DWORIGINS.exe+193867: 8B 91 10 02 00 00                 - mov edx,[rcx+00000210]
DWORIGINS.exe+19386D: 83 E2 04                          - and edx,04
DWORIGINS.exe+193870: 84 C0                             - test al,al
DWORIGINS.exe+193872: 0F 84 19 02 00 00                 - je DWORIGINS.exe+193A91
DWORIGINS.exe+193878: 85 D2                             - test edx,edx
DWORIGINS.exe+19387A: B9 31 00 00 00                    - mov ecx,00000031
DWORIGINS.exe+19387F: 0F 95 C2                          - setne dl
DWORIGINS.exe+193882: E8 E9 FC DA 00                    - call DWORIGINS.exe+F43570
// ---------- INJECTING HERE ----------
DWORIGINS.exe+193887: C7 84 BE A4 09 00 00 FF FF FF FF  - mov [rsi+rdi*4+000009A4],FFFFFFFF
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+193892: E9 D2 01 00 00                    - jmp DWORIGINS.exe+193A69
DWORIGINS.exe+193897: 48 85 ED                          - test rbp,rbp
DWORIGINS.exe+19389A: 0F 84 00 02 00 00                 - je DWORIGINS.exe+193AA0
DWORIGINS.exe+1938A0: 48 8B 85 B0 00 00 00              - mov rax,[rbp+000000B0]
DWORIGINS.exe+1938A7: 48 85 C0                          - test rax,rax
DWORIGINS.exe+1938AA: 0F 84 F0 01 00 00                 - je DWORIGINS.exe+193AA0
DWORIGINS.exe+1938B0: 4C 8B 88 38 01 00 00              - mov r9,[rax+00000138]
DWORIGINS.exe+1938B7: 4D 85 C9                          - test r9,r9
DWORIGINS.exe+1938BA: 74 10                             - je DWORIGINS.exe+1938CC
DWORIGINS.exe+1938BC: 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   : 2026-01-22
  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+3A0E5C

DWORIGINS.exe+3A0E39: F0 0F B1 39        - lock cmpxchg [rcx],edi
DWORIGINS.exe+3A0E3D: 75 F1              - jne DWORIGINS.exe+3A0E30
DWORIGINS.exe+3A0E3F: 48 8B 5C 24 58     - mov rbx,[rsp+58]
DWORIGINS.exe+3A0E44: 33 F6              - xor esi,esi
DWORIGINS.exe+3A0E46: 41 83 F9 63        - cmp r9d,63
DWORIGINS.exe+3A0E4A: 77 35              - ja DWORIGINS.exe+3A0E81
DWORIGINS.exe+3A0E4C: 41 83 F9 FF        - cmp r9d,-01
DWORIGINS.exe+3A0E50: 74 2F              - je DWORIGINS.exe+3A0E81
DWORIGINS.exe+3A0E52: 4B 8D 14 8A        - lea rdx,[r10+r9*4]
DWORIGINS.exe+3A0E56: 8B 8A 84 00 00 00  - mov ecx,[rdx+00000084]
// ---------- INJECTING HERE ----------
DWORIGINS.exe+3A0E5C: 41 03 C8           - add ecx,r8d
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+3A0E5F: B8 9F 86 01 00     - mov eax,0001869F
DWORIGINS.exe+3A0E64: 3B C8              - cmp ecx,eax
DWORIGINS.exe+3A0E66: 73 07              - jae DWORIGINS.exe+3A0E6F
DWORIGINS.exe+3A0E68: 8B C1              - mov eax,ecx
DWORIGINS.exe+3A0E6A: 85 C9              - test ecx,ecx
DWORIGINS.exe+3A0E6C: 0F 44 C6           - cmove eax,esi
DWORIGINS.exe+3A0E6F: 89 82 84 00 00 00  - mov [rdx+00000084],eax
DWORIGINS.exe+3A0E75: 41 8B D1           - mov edx,r9d
DWORIGINS.exe+3A0E78: 49 8B CA           - mov rcx,r10
DWORIGINS.exe+3A0E7B: E8 F0 1B 00 00     - call DWORIGINS.exe+3A2A70
}
</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 i_base_skill_xp_addr1)

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 i_base_skill_xp_addr1)
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 i_base_skill_xp_addr1)
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   : 2026-01-22
  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+A9F2EA

DWORIGINS.exe+A9F2CF: 74 38                    - je DWORIGINS.exe+A9F309
DWORIGINS.exe+A9F2D1: 48 83 78 08 00           - cmp qword ptr [rax+08],00
DWORIGINS.exe+A9F2D6: 76 31                    - jna DWORIGINS.exe+A9F309
DWORIGINS.exe+A9F2D8: 48 8B 00                 - mov rax,[rax]
DWORIGINS.exe+A9F2DB: 48 8B 10                 - mov rdx,[rax]
DWORIGINS.exe+A9F2DE: 48 85 D2                 - test rdx,rdx
DWORIGINS.exe+A9F2E1: 74 26                    - je DWORIGINS.exe+A9F309
DWORIGINS.exe+A9F2E3: 83 F9 0D                 - cmp ecx,0D
DWORIGINS.exe+A9F2E6: 73 21                    - jae DWORIGINS.exe+A9F309
DWORIGINS.exe+A9F2E8: 8B C1                    - mov eax,ecx
// ---------- INJECTING HERE ----------
DWORIGINS.exe+A9F2EA: 0F B7 8C 42 76 09 00 00  - movzx ecx,word ptr [rdx+rax*2+00000976]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+A9F2F2: B8 10 27 00 00           - mov eax,00002710
DWORIGINS.exe+A9F2F7: 66 3B C8                 - cmp cx,ax
DWORIGINS.exe+A9F2FA: 73 0F                    - jae DWORIGINS.exe+A9F30B
DWORIGINS.exe+A9F2FC: 33 C0                    - xor eax,eax
DWORIGINS.exe+A9F2FE: 66 85 C9                 - test cx,cx
DWORIGINS.exe+A9F301: 66 0F 45 C1              - cmovne ax,cx
DWORIGINS.exe+A9F305: 0F B7 C0                 - movzx eax,ax
DWORIGINS.exe+A9F308: C3                       - ret
DWORIGINS.exe+A9F309: 33 C0                    - xor eax,eax
DWORIGINS.exe+A9F30B: 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   : 2026-01-22
  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+14FEFB1

DWORIGINS.exe+14FEF8F: 41 BF 00 00 00 00  - mov r15d,00000000
DWORIGINS.exe+14FEF95: 49 0F 44 C7        - cmove rax,r15
DWORIGINS.exe+14FEF99: 48 3B C8           - cmp rcx,rax
DWORIGINS.exe+14FEF9C: 76 0A              - jna DWORIGINS.exe+14FEFA8
DWORIGINS.exe+14FEF9E: 41 8B CF           - mov ecx,r15d
DWORIGINS.exe+14FEFA1: 48 85 D2           - test rdx,rdx
DWORIGINS.exe+14FEFA4: 49 0F 45 C8        - cmovne rcx,r8
DWORIGINS.exe+14FEFA8: 49 8B 04 C9        - mov rax,[r9+rcx*8]
DWORIGINS.exe+14FEFAC: 48 85 C0           - test rax,rax
DWORIGINS.exe+14FEFAF: 74 18              - je DWORIGINS.exe+14FEFC9
// ---------- INJECTING HERE ----------
DWORIGINS.exe+14FEFB1: 8B 00              - mov eax,[rax]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+14FEFB3: BE 3F 42 0F 00     - mov esi,000F423F
DWORIGINS.exe+14FEFB8: 3B C6              - cmp eax,esi
DWORIGINS.exe+14FEFBA: 73 10              - jae DWORIGINS.exe+14FEFCC
DWORIGINS.exe+14FEFBC: 8B F0              - mov esi,eax
DWORIGINS.exe+14FEFBE: 85 C0              - test eax,eax
DWORIGINS.exe+14FEFC0: 41 0F 44 F7        - cmove esi,r15d
DWORIGINS.exe+14FEFC4: EB 06              - jmp DWORIGINS.exe+14FEFCC
DWORIGINS.exe+14FEFC6: 45 33 FF           - xor r15d,r15d
DWORIGINS.exe+14FEFC9: 41 8B F7           - mov esi,r15d
DWORIGINS.exe+14FEFCC: 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   : 2026-01-22
  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+AB84EA

DWORIGINS.exe+AB84C9: 48 8B 08     - mov rcx,[rax]
DWORIGINS.exe+AB84CC: 45 33 C9     - xor r9d,r9d
DWORIGINS.exe+AB84CF: 4D 85 C0     - test r8,r8
DWORIGINS.exe+AB84D2: 49 8D 40 FF  - lea rax,[r8-01]
DWORIGINS.exe+AB84D6: 49 0F 44 C1  - cmove rax,r9
DWORIGINS.exe+AB84DA: 48 3B D0     - cmp rdx,rax
DWORIGINS.exe+AB84DD: 48 0F 46 C2  - cmovbe rax,rdx
DWORIGINS.exe+AB84E1: 48 8B 14 C1  - mov rdx,[rcx+rax*8]
DWORIGINS.exe+AB84E5: 48 85 D2     - test rdx,rdx
DWORIGINS.exe+AB84E8: 74 1B        - je DWORIGINS.exe+AB8505
// ---------- INJECTING HERE ----------
DWORIGINS.exe+AB84EA: 0F B6 0A     - movzx ecx,byte ptr [rdx]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+AB84ED: 80 F9 09     - cmp cl,09
DWORIGINS.exe+AB84F0: 72 06        - jb DWORIGINS.exe+AB84F8
DWORIGINS.exe+AB84F2: B0 09        - mov al,09
DWORIGINS.exe+AB84F4: 0F B6 C0     - movzx eax,al
DWORIGINS.exe+AB84F7: C3           - ret
DWORIGINS.exe+AB84F8: 84 C9        - test cl,cl
DWORIGINS.exe+AB84FA: 0F B6 C1     - movzx eax,cl
DWORIGINS.exe+AB84FD: 41 0F 44 C1  - cmove eax,r9d
DWORIGINS.exe+AB8501: 0F B6 C0     - movzx eax,al
DWORIGINS.exe+AB8504: 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   : 2026-01-22
  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+1252114

DWORIGINS.exe+12520EC: 0F 83 A3 FD FF FF  - jae DWORIGINS.exe+1251E95
DWORIGINS.exe+12520F2: 48 8B 09           - mov rcx,[rcx]
DWORIGINS.exe+12520F5: 49 8D 40 FF        - lea rax,[r8-01]
DWORIGINS.exe+12520F9: 4D 85 C0           - test r8,r8
DWORIGINS.exe+12520FC: 49 0F 44 C3        - cmove rax,r11
DWORIGINS.exe+1252100: 48 3B D0           - cmp rdx,rax
DWORIGINS.exe+1252103: 48 0F 46 C2        - cmovbe rax,rdx
DWORIGINS.exe+1252107: 48 8B 14 C1        - mov rdx,[rcx+rax*8]
DWORIGINS.exe+125210B: 48 85 D2           - test rdx,rdx
DWORIGINS.exe+125210E: 0F 84 81 FD FF FF  - je DWORIGINS.exe+1251E95
// ---------- INJECTING HERE ----------
DWORIGINS.exe+1252114: 0F B6 4A 02        - movzx ecx,byte ptr [rdx+02]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+1252118: 80 F9 05           - cmp cl,05
DWORIGINS.exe+125211B: 73 13              - jae DWORIGINS.exe+1252130
DWORIGINS.exe+125211D: 84 C9              - test cl,cl
DWORIGINS.exe+125211F: 0F B6 C1           - movzx eax,cl
DWORIGINS.exe+1252122: 44 0F 45 D8        - cmovne r11d,eax
DWORIGINS.exe+1252126: 41 80 FB 03        - cmp r11b,03
DWORIGINS.exe+125212A: 0F 82 65 FD FF FF  - jb DWORIGINS.exe+1251E95
DWORIGINS.exe+1252130: 48 8B 5C 24 30     - mov rbx,[rsp+30]
DWORIGINS.exe+1252135: B0 01              - mov al,01
DWORIGINS.exe+1252137: 48 83 C4 20        - add rsp,20
}
</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   : 2026-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+15070BE

DWORIGINS.exe+15070A0: 48 85 C9           - test rcx,rcx
DWORIGINS.exe+15070A3: 48 0F 44 C6        - cmove rax,rsi
DWORIGINS.exe+15070A7: 48 3B D8           - cmp rbx,rax
DWORIGINS.exe+15070AA: 76 09              - jna DWORIGINS.exe+15070B5
DWORIGINS.exe+15070AC: 48 85 C9           - test rcx,rcx
DWORIGINS.exe+15070AF: 8B D6              - mov edx,esi
DWORIGINS.exe+15070B1: 49 0F 45 D0        - cmovne rdx,r8
DWORIGINS.exe+15070B5: 49 8B 14 D1        - mov rdx,[r9+rdx*8]
DWORIGINS.exe+15070B9: 48 85 D2           - test rdx,rdx
DWORIGINS.exe+15070BC: 74 34              - je DWORIGINS.exe+15070F2
// ---------- INJECTING HERE ----------
DWORIGINS.exe+15070BE: 0F BF 42 04        - movsx eax,word ptr [rdx+04]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+15070C2: 3D 2B 01 00 00     - cmp eax,0000012B
DWORIGINS.exe+15070C7: 77 15              - ja DWORIGINS.exe+15070DE
DWORIGINS.exe+15070C9: 83 F8 FF           - cmp eax,-01
DWORIGINS.exe+15070CC: 74 10              - je DWORIGINS.exe+15070DE
DWORIGINS.exe+15070CE: B1 01              - mov cl,01
DWORIGINS.exe+15070D0: 41 BD FF FF FF FF  - mov r13d,FFFFFFFF
DWORIGINS.exe+15070D6: 84 C9              - test cl,cl
DWORIGINS.exe+15070D8: 44 0F 45 E8        - cmovne r13d,eax
DWORIGINS.exe+15070DC: EB 1A              - jmp DWORIGINS.exe+15070F8
DWORIGINS.exe+15070DE: 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 / currency"</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_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+14ED199

DWORIGINS.exe+14ED17B: 4C 8B 40 08           - mov r8,[rax+08]
DWORIGINS.exe+14ED17F: 49 8B 40 08           - mov rax,[r8+08]
DWORIGINS.exe+14ED183: 48 85 C0              - test rax,rax
DWORIGINS.exe+14ED186: 74 28                 - je DWORIGINS.exe+14ED1B0
DWORIGINS.exe+14ED188: 48 39 58 08           - cmp [rax+08],rbx
DWORIGINS.exe+14ED18C: 76 22                 - jna DWORIGINS.exe+14ED1B0
DWORIGINS.exe+14ED18E: 48 8B 00              - mov rax,[rax]
DWORIGINS.exe+14ED191: 48 8B 08              - mov rcx,[rax]
DWORIGINS.exe+14ED194: 48 85 C9              - test rcx,rcx
DWORIGINS.exe+14ED197: 74 17                 - je DWORIGINS.exe+14ED1B0
// ---------- INJECTING HERE ----------
DWORIGINS.exe+14ED199: 8B 89 84 03 00 00     - mov ecx,[rcx+00000384]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+14ED19F: 3B CF                 - cmp ecx,edi
DWORIGINS.exe+14ED1A1: 72 04                 - jb DWORIGINS.exe+14ED1A7
DWORIGINS.exe+14ED1A3: 8B C7                 - mov eax,edi
DWORIGINS.exe+14ED1A5: EB 0B                 - jmp DWORIGINS.exe+14ED1B2
DWORIGINS.exe+14ED1A7: 85 C9                 - test ecx,ecx
DWORIGINS.exe+14ED1A9: 8B C3                 - mov eax,ebx
DWORIGINS.exe+14ED1AB: 0F 45 C1              - cmovne eax,ecx
DWORIGINS.exe+14ED1AE: EB 02                 - jmp DWORIGINS.exe+14ED1B2
DWORIGINS.exe+14ED1B0: 8B C3                 - mov eax,ebx
DWORIGINS.exe+14ED1B2: 4C 8D 35 C7 44 F2 01  - lea r14,[DWORIGINS.exe+3411680]
}
</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>108</ID>
      <Description>"[DLC} get Visionary skill pt (幻武功/夢幻戰功)"</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_V_PT,$process,0F B7 52 22 EB 25) // should be unique
alloc(newmem,$1000,INJECT_GET_V_PT)

label(code)
label(return i_base_v_pt_addr)

newmem:
  mov [i_base_v_pt_addr], rdx

code:
  movzx edx,word ptr [rdx+22]
  reassemble(INJECT_GET_V_PT+4)
  //jmp DWORIGINS.exe+125F51F
  jmp return
  align 10 cc
  i_base_v_pt_addr:
  dq 0


INJECT_GET_V_PT:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_V_PT i_base_v_pt_addr)

[DISABLE]

INJECT_GET_V_PT:
  db 0F B7 52 22 EB 25

unregistersymbol(INJECT_GET_V_PT i_base_v_pt_addr)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: DWORIGINS.exe+125F4F4

DWORIGINS.exe+125F4D3: 48 8B 82 F8 00 00 00  - mov rax,[rdx+000000F8]
DWORIGINS.exe+125F4DA: 48 8B 40 08           - mov rax,[rax+08]
DWORIGINS.exe+125F4DE: 48 85 C0              - test rax,rax
DWORIGINS.exe+125F4E1: 74 51                 - je DWORIGINS.exe+125F534
DWORIGINS.exe+125F4E3: 48 39 48 08           - cmp [rax+08],rcx
DWORIGINS.exe+125F4E7: 76 4B                 - jna DWORIGINS.exe+125F534
DWORIGINS.exe+125F4E9: 48 8B 00              - mov rax,[rax]
DWORIGINS.exe+125F4EC: 48 8B 10              - mov rdx,[rax]
DWORIGINS.exe+125F4EF: 48 85 D2              - test rdx,rdx
DWORIGINS.exe+125F4F2: 74 40                 - je DWORIGINS.exe+125F534
// ---------- INJECTING HERE ----------
DWORIGINS.exe+125F4F4: 0F B7 52 22           - movzx edx,word ptr [rdx+22]
// ---------- DONE INJECTING  ----------
DWORIGINS.exe+125F4F8: EB 25                 - jmp DWORIGINS.exe+125F51F
DWORIGINS.exe+125F4FA: 48 8B 42 08           - mov rax,[rdx+08]
DWORIGINS.exe+125F4FE: 48 8B 40 08           - mov rax,[rax+08]
DWORIGINS.exe+125F502: 48 85 C0              - test rax,rax
DWORIGINS.exe+125F505: 74 2D                 - je DWORIGINS.exe+125F534
DWORIGINS.exe+125F507: 48 39 48 08           - cmp [rax+08],rcx
DWORIGINS.exe+125F50B: 76 27                 - jna DWORIGINS.exe+125F534
DWORIGINS.exe+125F50D: 48 8B 00              - mov rax,[rax]
DWORIGINS.exe+125F510: 48 8B 10              - mov rdx,[rax]
DWORIGINS.exe+125F513: 48 85 D2              - test rdx,rdx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>109</ID>
          <Description>"Value"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>2 Bytes</VariableType>
          <Address>i_base_v_pt_addr</Address>
          <Offsets>
            <Offset>22</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>
