<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>30</ID>
      <Description>"Compact Mode"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
--https://forum.cheatengine.org/viewtopic.php?t=570055
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'Compact View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Compact View Mode' or 'Full View Mode'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible    = state; getMainForm().Panel5.Visible    = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'Compact View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))

[DISABLE]
LuaCall(cycleFullCompact(nil,false))

</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>31</ID>
      <Description>"啟用 (建議啟用二次) / Enable (enable twice)"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
if syntaxcheck then
    return
end
if process == nil then
    ShowMessage("Process is not selected.")
elseif readInteger(process) == 0 then
    ShowMessage("Process cannot be opened.")
else
    if monopipe ~= nil and monopipe.ProcessID ~= getOpenedProcessID() then
        monopipe.destroy()
        monopipe = nil
    end
    if monopipe == nil then
        LaunchMonoDataCollector()
    end
end


{$asm}
//define(PlayerControllerManagedUpdateProc,"PlayerController.ManagedUpdate")

//registersymbol(PlayerControllerManagedUpdateProc)


[DISABLE]
{$lua}
if syntaxcheck then return end;if not syntaxcheck and monopipe then monopipe=nil,monopipe.Destroy()end

{$asm}
unregistersymbol(*)

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>50</ID>
          <Description>"戰役：HP滿血 / Group Battle: inf HP"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

//aobscan(INJECT_SET_BAT_HEALTH,8B 41 20 50 DB 04 24) // should be unique
aobscanregion(INJECT_SET_BAT_HEALTH,Mortal.Battle.PlayerStateTransition:CanDash+40,Mortal.Battle.PlayerStateTransition:CanDash+80,8B 41 20 50 DB 04 24) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(is_uhp_enabled2)
label(i_hp_addr2)
newmem:
  push eax
  push edx
  mov [i_hp_addr2], ecx

  cmp dword ptr [is_uhp_enabled2], 1
  jne endp

  mov eax, [ecx+10] //_defaultHealth
  mov eax, [eax+C] //_health

  mov [i_base_health], eax
  mov eax, [ecx+18] //_defaultAddHealth
  add eax, [i_base_health]
  mov [ecx+20], eax //&lt;CurrentHealth&gt;k__BackingField

endp:
  pop edx
  pop eax


code:
  mov eax,[ecx+20]
  push eax
  fild dword ptr [esp]
  jmp return
align 10 cc
  is_uhp_enabled2:
  dd 1
  i_hp_addr2:
  dd 0
  i_base_health:
  dd 0

INJECT_SET_BAT_HEALTH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_BAT_HEALTH)
registersymbol(is_uhp_enabled2)
registersymbol(i_hp_addr2)
[DISABLE]

INJECT_SET_BAT_HEALTH:
  db 8B 41 20 50 DB 04 24

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Battle.PlayerStateTransition:CanDash+49

Mortal.Battle.PlayerStateTransition:CanDash+30: 85 C0           - test eax,eax
Mortal.Battle.PlayerStateTransition:CanDash+32: 74 07           - je Mortal.Battle.PlayerStateTransition:CanDash+3b
Mortal.Battle.PlayerStateTransition:CanDash+34: 33 C0           - xor eax,eax
Mortal.Battle.PlayerStateTransition:CanDash+36: E9 9E 01 00 00  - jmp Mortal.Battle.PlayerStateTransition:CanDash+1d9
Mortal.Battle.PlayerStateTransition:CanDash+3b: 8B 47 08        - mov eax,[edi+08]
Mortal.Battle.PlayerStateTransition:CanDash+3e: 8B C8           - mov ecx,eax
Mortal.Battle.PlayerStateTransition:CanDash+40: 39 09           - cmp [ecx],ecx
Mortal.Battle.PlayerStateTransition:CanDash+42: 8B 48 58        - mov ecx,[eax+58]
Mortal.Battle.PlayerStateTransition:CanDash+45: 8B C1           - mov eax,ecx
Mortal.Battle.PlayerStateTransition:CanDash+47: 39 00           - cmp [eax],eax
// ---------- INJECTING HERE ----------
Mortal.Battle.PlayerStateTransition:CanDash+49: 8B 41 20        - mov eax,[ecx+20]
// ---------- DONE INJECTING  ----------
Mortal.Battle.PlayerStateTransition:CanDash+4c: 50              - push eax
Mortal.Battle.PlayerStateTransition:CanDash+4d: DB 04 24        - fild dword ptr [esp]
Mortal.Battle.PlayerStateTransition:CanDash+50: D9 1C 24        - fstp dword ptr [esp]
Mortal.Battle.PlayerStateTransition:CanDash+53: D9 04 24        - fld dword ptr [esp]
Mortal.Battle.PlayerStateTransition:CanDash+56: 83 C4 04        - add esp,04
Mortal.Battle.PlayerStateTransition:CanDash+59: 8B 41 10        - mov eax,[ecx+10]
Mortal.Battle.PlayerStateTransition:CanDash+5c: 8B D0           - mov edx,eax
Mortal.Battle.PlayerStateTransition:CanDash+5e: 39 12           - cmp [edx],edx
Mortal.Battle.PlayerStateTransition:CanDash+60: 8B 40 0C        - mov eax,[eax+0C]
Mortal.Battle.PlayerStateTransition:CanDash+63: 8B 49 18        - mov ecx,[ecx+18]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>51</ID>
              <Description>"啟用? / Enabled?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_uhp_enabled2</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>52</ID>
              <Description>"HP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_hp_addr2</Address>
              <Offsets>
                <Offset>20</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"戰．你．娘．親：HP / Battle: HP"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

//aobscan(INJECT_BATTLE_HP,8B 49 74 89 4D F4) // should be unique
aobscanregion(INJECT_BATTLE_HP,Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+41,Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+71,8B 49 74 89 4D F4) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_base_player_hp_addr)
label(is_full_hp)


newmem:
  push edx
  cmp dword ptr [ecx+1C], 0 //CombatAvatar
  jne endp
  mov [i_base_player_hp_addr], ecx
  cmp dword ptr [is_full_hp], 1
  jne endp

  mov edx, [ecx+64]
  mov [ecx+74], edx

endp:
  pop edx

code:
  mov ecx,[ecx+74]
  mov [ebp-0C],ecx
  jmp return
align 10 cc
  i_base_player_hp_addr:
  dd 0
  is_full_hp:
  dd 0

INJECT_BATTLE_HP:
  jmp newmem
  nop
return:
registersymbol(INJECT_BATTLE_HP)
registersymbol(i_base_player_hp_addr)
registersymbol(is_full_hp)
[DISABLE]

INJECT_BATTLE_HP:
  db 8B 49 74 89 4D F4

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+41

Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+1a: 83 7D F0 01           - cmp dword ptr [ebp-10],01
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+1e: 0F 84 49 00 00 00     - je Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+6d
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+24: 33 C0                 - xor eax,eax
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+26: E9 4B 00 00 00        - jmp Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+76
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+2b: C7 47 10 FF FF FF FF  - mov [edi+10],FFFFFFFF
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+32: 8B 45 EC              - mov eax,[ebp-14]
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+35: 8B 48 0C              - mov ecx,[eax+0C]
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+38: 8B 51 64              - mov edx,[ecx+64]
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+3b: 89 55 F8              - mov [ebp-08],edx
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+3e: 8B 48 0C              - mov ecx,[eax+0C]
// ---------- INJECTING HERE ----------
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+41: 8B 49 74              - mov ecx,[ecx+74]
// ---------- DONE INJECTING  ----------
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+44: 89 4D F4              - mov [ebp-0C],ecx
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+47: 8B 40 14              - mov eax,[eax+14]
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+4a: 89 54 24 08           - mov [esp+08],edx
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+4e: 89 4C 24 04           - mov [esp+04],ecx
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+52: 89 04 24              - mov [esp],eax
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+55: 39 00                 - cmp [eax],eax
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+57: E8 34 00 00 00        - call Mortal.Combat.CombatStatBar:Setup
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+5c: 89 47 08              - mov [edi+08],eax
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+5f: C7 47 10 01 00 00 00  - mov [edi+10],00000001
Mortal.Combat.CombatStatUI+&lt;UpdateHealth&gt;d__13:MoveNext+66: B8 01 00 00 00        - mov eax,00000001
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>29</ID>
              <Description>"需要時啟用 / Enable only when needed"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>60</ID>
              <Description>"對敵人傷害倍率 / damage multiplier"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript Async="1">{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

//aobscan(INJECT_DAMAGE_MULTI,8B 48 74 8B 57 14) // should be unique
aobscanregion(INJECT_DAMAGE_MULTI,Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+20,Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+60,8B 48 74 8B 57 14) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(vf_damage_multi)

newmem:

code:
  mov ecx,[eax+74]
  mov edx,[edi+14]

  // code start
  cmp eax, [i_base_player_hp_addr]
  je return

  movss xmm7, [vf_damage_multi]
  cvtsi2ss xmm6, edx
  mulss xmm6, xmm7
  cvtss2si edx, xmm6
  mov [edi+14], edx
  // code end

  jmp return
align 10 cc
  vf_damage_multi:
  dd (float)1.5

INJECT_DAMAGE_MULTI:
  jmp newmem
  nop
return:
registersymbol(INJECT_DAMAGE_MULTI)
registersymbol(vf_damage_multi)

[DISABLE]

INJECT_DAMAGE_MULTI:
  db 8B 48 74 8B 57 14

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+30

Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+c: 8B 77 10              - mov esi,[edi+10]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+f: 8B 5F 0C              - mov ebx,[edi+0C]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+12: 85 F6                 - test esi,esi
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+14: 74 10                 - je Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+26
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+16: 83 FE 01              - cmp esi,01
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+19: 0F 84 D2 00 00 00     - je Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+f1
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+1f: 33 C0                 - xor eax,eax
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+21: E9 D4 00 00 00        - jmp Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+fa
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+26: C7 47 10 FF FF FF FF  - mov [edi+10],FFFFFFFF
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+2d: 8B 43 10              - mov eax,[ebx+10]
// ---------- INJECTING HERE ----------
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+30: 8B 48 74              - mov ecx,[eax+74]
// ---------- DONE INJECTING  ----------
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+33: 8B 57 14              - mov edx,[edi+14]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+36: 03 CA                 - add ecx,edx
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+38: 89 48 74              - mov [eax+74],ecx
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+3b: 8B 43 10              - mov eax,[ebx+10]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+3e: 89 45 C8              - mov [ebp-38],eax
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+41: 8B 40 74              - mov eax,[eax+74]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+44: 8B 8B AC 00 00 00     - mov ecx,[ebx+000000AC]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+4a: 8B 53 10              - mov edx,[ebx+10]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+4d: 8B 52 64              - mov edx,[edx+64]
Mortal.Combat.CombatStatController+&lt;ModifyHealth&gt;d__241:MoveNext+50: 89 54 24 08           - mov [esp+08],edx
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>61</ID>
                  <Description>"倍率 / multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>C08000</Color>
                  <VariableType>Float</VariableType>
                  <Address>vf_damage_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>28</ID>
              <Description>"試著滿血? / try to full HP?"</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>26</ID>
              <Description>"HP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_player_hp_addr</Address>
              <Offsets>
                <Offset>74</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>27</ID>
              <Description>"氣 / Stamina"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_player_hp_addr</Address>
              <Offsets>
                <Offset>78</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"取得一些數據 / Get stats"</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]
//aobscan(INJECT_GET_STATS,89 45 F4 89 3C 24 E8 40) // should be unique
aobscanregion(INJECT_GET_STATS,Mortal.Core.GameStat:get_FinalValue+a,Mortal.Core.GameStat:get_FinalValue+1d,89 45 F4 89 3C 24) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_coco_addr)
label(i_actionP_addr)
label(i_contribution_addr)
label(i_mind_phase_addr)
label(i_assets_addr)
label(i_fame)
label(i_forge_addr)
label(i_morality_addr)
label(i_cohesive_addr)
label(i_disciples_addr)
label(i_skill_pt_addr)
label(i_alch_addr)
label(i_disposition_addr)
label(i_conduct_addr)
label(i_refinement_addr)
label(i_con_addr)
label(i_chi_addr)
label(i_lightness_addr)
label(i_sword_addr)
label(i_fist_addr)
label(i_hidden_weapons_addr)

newmem:
  push ecx
  mov ecx, [edi+20]

t_coco:
  cmp ecx, 3
  jne @F
  mov [i_coco_addr], edi

  jmp endp
t_ap:
  cmp ecx, #19
  jne @F
  mov [i_actionP_addr], edi

  jmp endp

t_cb:
  cmp ecx, #20
  jne @F
  mov [i_contribution_addr], edi

  jmp endp
t_mindp:
  cmp ecx, 6
  jne @F
  mov [i_mind_phase_addr], edi

  jmp endp
t_assets:
  cmp ecx, #33
  jne @F
  mov [i_assets_addr], edi

  jmp endp
t_forge:
  cmp ecx, #17
  jne @F
  mov [i_forge_addr], edi

  jmp endp
t_morality:
  cmp ecx, #11
  jne @F
  mov [i_morality_addr], edi

  jmp endp

t_cohesive:
  cmp ecx, #16
  jne @F
  mov [i_cohesive_addr], edi

  jmp endp

t_fame:
  cmp ecx, #14
  jne @F
  mov [i_fame], edi

  jmp endp

t_disciples:
  cmp ecx, #15
  jne @F
  mov [i_disciples_addr], edi

  jmp endp

t_skill_pt:
  cmp ecx, #31
  jne @F
  mov [i_skill_pt_addr], edi

  jmp endp

t_alch:
  cmp ecx, #18
  jne @F
  mov [i_alch_addr], edi

  jmp endp

t_disposition:
  cmp ecx, 8
  jne @F
  mov [i_disposition_addr], edi

  jmp endp

t_conduct:
  cmp ecx, 9
  jne @F
  mov [i_conduct_addr], edi

  jmp endp

t_refinement:
  cmp ecx, #10
  jne @F
  mov [i_refinement_addr], edi

  jmp endp

t_con:
  cmp ecx, 0
  jne @F
  mov [i_con_addr], edi

  jmp endp

t_chi:
  cmp ecx, 1
  jne @F
  mov [i_chi_addr], edi

  jmp endp

t_ightness:
  cmp ecx, 2
  jne @F
  mov [i_lightness_addr], edi

  jmp endp

t_sword:
  cmp ecx, #100
  jne @F
  mov [i_sword_addr], edi

  jmp endp

t_fist:
  cmp ecx, #102
  jne @F
  mov [i_fist_addr], edi

  jmp endp

t_hweapon:
  cmp ecx, #101
  jne @F
  mov [i_hidden_weapons_addr], edi

  jmp endp


endp:
  pop ecx

code:
  mov [ebp-0C],eax
  mov [esp],edi
  jmp return
align 10 cc
  i_coco_addr: // 3
  dd 0
  i_actionP_addr: //19
  dd 0
  i_contribution_addr: //20
  dd 0
  i_mind_phase_addr: // 6
  dd 0
  i_assets_addr: // 33
  dd 0
  i_fame: // 14
  dd 0
  i_forge_addr: // 17
  dd 0
  i_morality_addr: // 11
  dd 0
  i_cohesive_addr: // 16
  dd 0
  i_disciples_addr: // 15
  dd 0
  i_skill_pt_addr: // 31
  dd 0
  i_alch_addr: // 18
  dd 0
  i_disposition_addr: // 8
  dd 0
  i_conduct_addr: // 9
  dd 0
  i_refinement_addr: //10
  dd 0
  i_con_addr: // 0
  dd 0
  i_chi_addr: // 1
  dd 0
  i_lightness_addr: // 2
  dd 0
  i_sword_addr: // 100
  dd 0
  i_fist_addr: // 102
  dd 0
  i_hidden_weapons_addr: // 101
  dd 0



INJECT_GET_STATS:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_STATS)
registersymbol(i_coco_addr)
registersymbol(i_actionP_addr)
registersymbol(i_contribution_addr)
registersymbol(i_mind_phase_addr)
registersymbol(i_assets_addr)
registersymbol(i_fame)
registersymbol(i_forge_addr)
registersymbol(i_morality_addr)
registersymbol(i_cohesive_addr)
registersymbol(i_disciples_addr)
registersymbol(i_skill_pt_addr)
registersymbol(i_alch_addr)
registersymbol(i_disposition_addr)
registersymbol(i_conduct_addr)
registersymbol(i_refinement_addr)
registersymbol(i_con_addr)
registersymbol(i_chi_addr)
registersymbol(i_lightness_addr)
registersymbol(i_sword_addr)
registersymbol(i_fist_addr)
registersymbol(i_hidden_weapons_addr)

[DISABLE]

INJECT_GET_STATS:
  db 89 45 F4 89 3C 24

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Core.GameStat:get_FinalValue+d

39BF35CF: 00 00           - add [eax],al
39BF35D1: 00 00           - add [eax],al
39BF35D3: 00 00           - add [eax],al
39BF35D5: 00 00           - add [eax],al
39BF35D7: 00 55 8B        - add [ebp-75],dl
Mortal.Core.GameStat:get_FinalValue+2: EC              - in al,dx
Mortal.Core.GameStat:get_FinalValue+3: 57              - push edi
Mortal.Core.GameStat:get_FinalValue+4: 83 EC 24        - sub esp,24
Mortal.Core.GameStat:get_FinalValue+7: 8B 7D 08        - mov edi,[ebp+08]
Mortal.Core.GameStat:get_FinalValue+a: 8B 47 28        - mov eax,[edi+28]
// ---------- INJECTING HERE ----------
Mortal.Core.GameStat:get_FinalValue+d: 89 45 F4        - mov [ebp-0C],eax
// ---------- DONE INJECTING  ----------
Mortal.Core.GameStat:get_FinalValue+10: 89 3C 24        - mov [esp],edi
Mortal.Core.GameStat:get_FinalValue+13: E8 40 00 00 00  - call Mortal.Core.GameStat:get_AdditionValue
Mortal.Core.GameStat:get_FinalValue+18: 8B C8           - mov ecx,eax
Mortal.Core.GameStat:get_FinalValue+1a: 8B 45 F4        - mov eax,[ebp-0C]
Mortal.Core.GameStat:get_FinalValue+1d: 03 C1           - add eax,ecx
Mortal.Core.GameStat:get_FinalValue+1f: 89 45 F8        - mov [ebp-08],eax
Mortal.Core.GameStat:get_FinalValue+22: 8B 4F 2C        - mov ecx,[edi+2C]
Mortal.Core.GameStat:get_FinalValue+25: 8B 57 30        - mov edx,[edi+30]
Mortal.Core.GameStat:get_FinalValue+28: 8B 47 34        - mov eax,[edi+34]
Mortal.Core.GameStat:get_FinalValue+2b: 03 D0           - add edx,eax
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>17</ID>
              <Description>"等待遊戲進行 / Wait turn "</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>11</ID>
              <Description>"金錢 / Money"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_coco_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>12</ID>
              <Description>"行動力 / AP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_actionP_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>13</ID>
              <Description>"貢獻 / contribution"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_contribution_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>14</ID>
              <Description>"心相 / Mind's image"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_mind_phase_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>15</ID>
              <Description>"資產 / assets"</Description>
              <ShowAsSigned>1</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_assets_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>16</ID>
              <Description>"名聲 / reputation"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_fame</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>34</ID>
              <Description>"向心力 / cohesive force"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_cohesive_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>35</ID>
              <Description>"門人數量 / number of disciples"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_disciples_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>39</ID>
              <Description>"武學點數 / Skill pt."</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_skill_pt_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>25</ID>
              <Description>"鍛造點數 / forge cnt#"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_forge_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>42</ID>
              <Description>"煉丹點數 / alchemy"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_alch_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>43</ID>
              <Description>"性情 / disposition"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_disposition_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>44</ID>
              <Description>"處世 / conduct"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_conduct_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>33</ID>
              <Description>"道德 / morality"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_morality_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>45</ID>
              <Description>"修養 / refinement"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_refinement_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>54</ID>
              <Description>"基礎體力 / base constitution"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_con_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>55</ID>
              <Description>"基礎內力 / base chi"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_chi_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>58</ID>
              <Description>"基礎拳掌 / base fist &amp; palm skill"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_fist_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>59</ID>
              <Description>"基礎暗器 / base hidden weapons skill"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_hidden_weapons_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>57</ID>
              <Description>"基礎刀劍 / base sword skill"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_sword_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>56</ID>
              <Description>"基礎輕功 / base lightness skill"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_lightness_addr</Address>
              <Offsets>
                <Offset>28</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>38</ID>
          <Description>"鍛造：最大消費不減 / Upgrade count no dec."</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]
//aobscan(INJECT_UPGRADE_NO_DEC,49 89 88 9C 00 00 00) // should be unique
aobscanregion(INJECT_UPGRADE_NO_DEC,"Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext"+bd,"Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext"+ed,49 89 88 9C 00 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  //dec ecx
  mov [eax+0000009C],ecx
  jmp return

INJECT_UPGRADE_NO_DEC:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_UPGRADE_NO_DEC)

[DISABLE]

INJECT_UPGRADE_NO_DEC:
  db 49 89 88 9C 00 00 00

unregistersymbol(INJECT_UPGRADE_NO_DEC)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+cd

Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+a6: 8B 4D D4                 - mov ecx,[ebp-2C]
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+a9: F7 D9                    - neg ecx
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+ab: C7 44 24 08 01 00 00 00  - mov [esp+08],00000001
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+b3: 89 4C 24 04              - mov [esp+04],ecx
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+b7: 89 04 24                 - mov [esp],eax
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+ba: 39 00                    - cmp [eax],eax
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+bc: 8D 6D 00                 - lea ebp,[ebp+00]
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+bf: E8 4C 6C FA FF           - call Mortal.Core.GameStat:AddValue
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+c4: 8B 45 CC                 - mov eax,[ebp-34]
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+c7: 8B 88 9C 00 00 00        - mov ecx,[eax+0000009C]
// ---------- INJECTING HERE ----------
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+cd: 49                       - dec ecx
// ---------- DONE INJECTING  ----------
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+ce: 89 88 9C 00 00 00        - mov [eax+0000009C],ecx
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+d4: 8B 80 88 00 00 00        - mov eax,[eax+00000088]
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+da: 89 45 C0                 - mov [ebp-40],eax
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+dd: 39 00                    - cmp [eax],eax
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+df: C7 04 24 40 F0 D6 4D     - mov [esp],4DD6F040
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+e6: 90                       - nop 
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+e7: E8 DC F3 0A 03           - call System.Object:__icall_wrapper_ves_icall_object_new_specific
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+ec: 8B 4D C0                 - mov ecx,[ebp-40]
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+ef: C7 40 10 00 00 00 00     - mov [eax+10],00000000
Mortal.Core.UpgradePanel+&lt;StartHandleUpgarde&gt;d__44:MoveNext+f6: 89 48 0C                 - mov [eax+0C],ecx
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>41</ID>
          <Description>"修練：最大消費不減 / Skill upgrade # no dec."</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]


//aobscan(INJECT_INF_SKILL_UPGRADE,00 00 00 49 89 88 B4 00 00 00) // should be unique
aobscanregion(INJECT_INF_SKILL_UPGRADE,Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+85,Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+B5,49 89 88 B4 00 00 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  //dec ecx
  mov [eax+000000B4],ecx
  jmp return

INJECT_INF_SKILL_UPGRADE:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_INF_SKILL_UPGRADE)

[DISABLE]

INJECT_INF_SKILL_UPGRADE:
  db 49 89 88 B4 00 00 00

unregistersymbol(INJECT_INF_SKILL_UPGRADE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+95

Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+6b: 8B 45 D0                 - mov eax,[ebp-30]
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+6e: 8B 40 14                 - mov eax,[eax+14]
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+71: C7 44 24 08 01 00 00 00  - mov [esp+08],00000001
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+79: C7 44 24 04 FF FF FF FF  - mov [esp+04],FFFFFFFF
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+81: 89 04 24                 - mov [esp],eax
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+84: 39 00                    - cmp [eax],eax
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+86: 90                       - nop 
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+87: E8 D4 F9 F9 FF           - call Mortal.Core.GameStat:AddValue
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+8c: 8B 45 D0                 - mov eax,[ebp-30]
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+8f: 8B 88 B4 00 00 00        - mov ecx,[eax+000000B4]
// ---------- INJECTING HERE ----------
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+95: 49                       - dec ecx
// ---------- DONE INJECTING  ----------
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+96: 89 88 B4 00 00 00        - mov [eax+000000B4],ecx
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+9c: 8B 80 A0 00 00 00        - mov eax,[eax+000000A0]
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+a2: 89 45 C4                 - mov [ebp-3C],eax
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+a5: 39 00                    - cmp [eax],eax
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+a7: C7 04 24 40 F0 D6 4D     - mov [esp],4DD6F040
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+ae: 90                       - nop 
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+af: E8 64 81 0A 03           - call System.Object:__icall_wrapper_ves_icall_object_new_specific
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+b4: 8B 4D C4                 - mov ecx,[ebp-3C]
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+b7: C7 40 10 00 00 00 00     - mov [eax+10],00000000
Mortal.Core.MartialPanel+&lt;StartHandleUpgarde&gt;d__70:MoveNext+be: 89 48 0C                 - mov [eax+0C],ecx
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>46</ID>
          <Description>"設定擲骰子結果 / Set dice result"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Mortal.exe
  Version: 
  Date   : 2024-06-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

//aobscan(INJECT_SET_DICE_RESULT,8B C3 8D 65 F8 8D 65 F8 5E 5B C9 C3 00 00 68 88) // should be unique
aobscanregion(INJECT_SET_DICE_RESULT,Mortal.Story.DiceCheckResult:get_ResultCount+90,Mortal.Story.DiceCheckResult:get_ResultCount+E0,8B C3 8D 65 F8) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(i_dtarget_value)
newmem:
  cmp dword ptr [i_dtarget_value], -1
  je code
  mov ebx, [i_dtarget_value]
  //mov dword ptr [i_dtarget_value], -1
code:
  mov eax,ebx
  lea esp,[ebp-08]
  jmp return
align 10 cc
  i_dtarget_value:
  dd -1

INJECT_SET_DICE_RESULT:
  jmp newmem
return:
registersymbol(INJECT_SET_DICE_RESULT)
registersymbol(i_dtarget_value)

[DISABLE]

INJECT_SET_DICE_RESULT:
  db 8B C3 8D 65 F8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Mortal.Story.DiceCheckResult:get_ResultCount+9a

Mortal.Story.DiceCheckResult:get_ResultCount+7e: 74 08           - je Mortal.Story.DiceCheckResult:get_ResultCount+88
Mortal.Story.DiceCheckResult:get_ResultCount+80: 8D 6D 00        - lea ebp,[ebp+00]
Mortal.Story.DiceCheckResult:get_ResultCount+83: E8 C0 CB 63 F4  - call 046F37D8
Mortal.Story.DiceCheckResult:get_ResultCount+88: EB 10           - jmp Mortal.Story.DiceCheckResult:get_ResultCount+9a
Mortal.Story.DiceCheckResult:get_ResultCount+8a: 89 65 F4        - mov [ebp-0C],esp
Mortal.Story.DiceCheckResult:get_ResultCount+8d: 83 EC 10        - sub esp,10
Mortal.Story.DiceCheckResult:get_ResultCount+90: 8D 45 DC        - lea eax,[ebp-24]
Mortal.Story.DiceCheckResult:get_ResultCount+93: 89 45 D4        - mov [ebp-2C],eax
Mortal.Story.DiceCheckResult:get_ResultCount+96: 8B 65 F4        - mov esp,[ebp-0C]
Mortal.Story.DiceCheckResult:get_ResultCount+99: C3              - ret 
// ---------- INJECTING HERE ----------
Mortal.Story.DiceCheckResult:get_ResultCount+9a: 8B C3           - mov eax,ebx
// ---------- DONE INJECTING  ----------
Mortal.Story.DiceCheckResult:get_ResultCount+9c: 8D 65 F8        - lea esp,[ebp-08]
Mortal.Story.DiceCheckResult:get_ResultCount+9f: 8D 65 F8        - lea esp,[ebp-08]
Mortal.Story.DiceCheckResult:get_ResultCount+a2: 5E              - pop esi
Mortal.Story.DiceCheckResult:get_ResultCount+a3: 5B              - pop ebx
Mortal.Story.DiceCheckResult:get_ResultCount+a4: C9              - leave 
Mortal.Story.DiceCheckResult:get_ResultCount+a5: C3              - ret 
100B6C36: 00 00           - add [eax],al
100B6C38: 68 88 CA B8 23  - push 23B8CA88
100B6C3D: E9 BE 94 5A F4  - jmp 04660100
100B6C42: 00 00           - add [eax],al
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>47</ID>
              <Description>"結果 / result"</Description>
              <DropDownList DisplayValueAsItem="1">-1:不設定
</DropDownList>
              <ShowAsSigned>1</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_dtarget_value</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>32</ID>
      <Description>"活俠傳 Legend of Mortal v1.0.3122  /  https://opencheattables.com  /  CE 7.5+"</Description>
      <Color>00AE57</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
