<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>130</ID>
      <Description>"Get health"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_HEALTH,$process,8B 81 90 FE FF FF) // should be unique
alloc(newmem,$1000,INJECT_GET_HEALTH)

label(code)
label(return)
label(i_base_health_addr)
label(is_inf_health)
label(vf_hp_multi)

newmem:
  mov [i_base_health_addr], rcx
  cmp dword ptr [is_inf_health], 1
  jne code
  mov eax, [rcx-0000016C]
  mov [rcx-00000170], eax

code:
  mov eax,[rcx-00000170]
  jmp return
align 10 cc
  i_base_health_addr:
  dq 0
  is_inf_health:
  dd 0
  vf_hp_multi:
  dd (float)1.5

INJECT_GET_HEALTH:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_HEALTH)
registersymbol(i_base_health_addr)
registersymbol(is_inf_health)
registersymbol(vf_hp_multi)
[DISABLE]

INJECT_GET_HEALTH:
  db 8B 81 90 FE FF FF

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+22981E0

ACOdyssey.exe+22981CF: CC                 - int 3 
ACOdyssey.exe+22981D0: 8B 81 58 FF FF FF  - mov eax,[rcx-000000A8]
ACOdyssey.exe+22981D6: 89 02              - mov [rdx],eax
ACOdyssey.exe+22981D8: 33 C0              - xor eax,eax
ACOdyssey.exe+22981DA: C3                 - ret 
ACOdyssey.exe+22981DB: CC                 - int 3 
ACOdyssey.exe+22981DC: CC                 - int 3 
ACOdyssey.exe+22981DD: CC                 - int 3 
ACOdyssey.exe+22981DE: CC                 - int 3 
ACOdyssey.exe+22981DF: CC                 - int 3 
// ---------- INJECTING HERE ----------
ACOdyssey.exe+22981E0: 8B 81 90 FE FF FF  - mov eax,[rcx-00000170]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+22981E6: 89 02              - mov [rdx],eax
ACOdyssey.exe+22981E8: 33 C0              - xor eax,eax
ACOdyssey.exe+22981EA: C3                 - ret 
ACOdyssey.exe+22981EB: CC                 - int 3 
ACOdyssey.exe+22981EC: CC                 - int 3 
ACOdyssey.exe+22981ED: CC                 - int 3 
ACOdyssey.exe+22981EE: CC                 - int 3 
ACOdyssey.exe+22981EF: CC                 - int 3 
ACOdyssey.exe+22981F0: 8B 41 B0           - mov eax,[rcx-50]
ACOdyssey.exe+22981F3: 89 02              - mov [rdx],eax
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>186</ID>
          <Description>"Try to lock HP, method 1"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-17
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_CHAR_GOT_HIT,ACOdyssey.exe,8B FA 48 8B D9 E8 3C A6) // should be unique
alloc(newmem,$1000,INJECT_CHAR_GOT_HIT)

label(code)
label(return)

newmem:
  push rax
  mov eax, [rbx+00000134]
  vmovss xmm14, [vf_2]
  cvtsi2ss xmm15, eax
  vmulss xmm13, xmm14, xmm15
  vcvtss2si eax, xmm13
  mov edx, eax
  pop rax

code:
  mov edi,edx
  mov rbx,rcx
  jmp return
align 10 cc
  vf_2:
  dd (float)2

INJECT_CHAR_GOT_HIT:
  jmp newmem
return:
registersymbol(INJECT_CHAR_GOT_HIT)

[DISABLE]

INJECT_CHAR_GOT_HIT:
  db 8B FA 48 8B D9

unregistersymbol(INJECT_CHAR_GOT_HIT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+22D6EDA

ACOdyssey.exe+22D6EC9: 5B                 - pop rbx
ACOdyssey.exe+22D6ECA: C3                 - ret 
ACOdyssey.exe+22D6ECB: CC                 - int 3 
ACOdyssey.exe+22D6ECC: CC                 - int 3 
ACOdyssey.exe+22D6ECD: CC                 - int 3 
ACOdyssey.exe+22D6ECE: CC                 - int 3 
ACOdyssey.exe+22D6ECF: CC                 - int 3 
ACOdyssey.exe+22D6ED0: 48 89 5C 24 08     - mov [rsp+08],rbx
ACOdyssey.exe+22D6ED5: 57                 - push rdi
ACOdyssey.exe+22D6ED6: 48 83 EC 20        - sub rsp,20
// ---------- INJECTING HERE ----------
ACOdyssey.exe+22D6EDA: 8B FA              - mov edi,edx
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+22D6EDC: 48 8B D9           - mov rbx,rcx
ACOdyssey.exe+22D6EDF: E8 3C A6 04 00     - call ACOdyssey.exe+2321520
ACOdyssey.exe+22D6EE4: 83 C9 FF           - or ecx,-01
ACOdyssey.exe+22D6EE7: 3B F9              - cmp edi,ecx
ACOdyssey.exe+22D6EE9: 0F 4E F9           - cmovle edi,ecx
ACOdyssey.exe+22D6EEC: 3B C7              - cmp eax,edi
ACOdyssey.exe+22D6EEE: 0F 4E F8           - cmovle edi,eax
ACOdyssey.exe+22D6EF1: 89 BB 30 01 00 00  - mov [rbx+00000130],edi
ACOdyssey.exe+22D6EF7: 48 8B 5C 24 30     - mov rbx,[rsp+30]
ACOdyssey.exe+22D6EFC: 48 83 C4 20        - add rsp,20
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>187</ID>
          <Description>"Try to lock HP, method 2"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-17
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_PLAYER_GOT_HIT2,ACOdyssey.exe,8B B9 30 01 00 00 48 8B D9) // should be unique
alloc(newmem,$1000,INJECT_PLAYER_GOT_HIT2)

label(code)
label(return)

newmem:
  mov edi, [rcx+00000134]
  mov [rcx+00000130], edi

code:
  mov edi,[rcx+00000130]
  jmp return

INJECT_PLAYER_GOT_HIT2:
  jmp newmem
  nop
return:
registersymbol(INJECT_PLAYER_GOT_HIT2)

[DISABLE]

INJECT_PLAYER_GOT_HIT2:
  db 8B B9 30 01 00 00

unregistersymbol(INJECT_PLAYER_GOT_HIT2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+22E022A

ACOdyssey.exe+22E0219: CC                       - int 3 
ACOdyssey.exe+22E021A: CC                       - int 3 
ACOdyssey.exe+22E021B: CC                       - int 3 
ACOdyssey.exe+22E021C: CC                       - int 3 
ACOdyssey.exe+22E021D: CC                       - int 3 
ACOdyssey.exe+22E021E: CC                       - int 3 
ACOdyssey.exe+22E021F: CC                       - int 3 
ACOdyssey.exe+22E0220: 48 89 5C 24 18           - mov [rsp+18],rbx
ACOdyssey.exe+22E0225: 57                       - push rdi
ACOdyssey.exe+22E0226: 48 83 EC 20              - sub rsp,20
// ---------- INJECTING HERE ----------
ACOdyssey.exe+22E022A: 8B B9 30 01 00 00        - mov edi,[rcx+00000130]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+22E0230: 48 8B D9                 - mov rbx,rcx
ACOdyssey.exe+22E0233: 85 FF                    - test edi,edi
ACOdyssey.exe+22E0235: 0F 88 F2 02 00 00        - js ACOdyssey.exe+22E052D
ACOdyssey.exe+22E023B: 48 89 6C 24 30           - mov [rsp+30],rbp
ACOdyssey.exe+22E0240: 48 89 74 24 38           - mov [rsp+38],rsi
ACOdyssey.exe+22E0245: E8 D6 12 04 00           - call ACOdyssey.exe+2321520
ACOdyssey.exe+22E024A: 66 0F 6E C0              - movd xmm0,eax
ACOdyssey.exe+22E024E: 0F 5B C0                 - cvtdq2ps xmm0,xmm0
ACOdyssey.exe+22E0251: F3 0F 59 83 8C 01 00 00  - mulss xmm0,[rbx+0000018C]
ACOdyssey.exe+22E0259: F3 0F 2C C0              - cvttss2si eax,xmm0
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>131</ID>
          <Description>"Current health"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_health_addr</Address>
          <Offsets>
            <Offset>-170</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>132</ID>
          <Description>"Max health"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_health_addr</Address>
          <Offsets>
            <Offset>-16C</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>134</ID>
      <Description>"EXP multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_EXP_MULTI,$process,41 8D 2C 1E 89 6C 24 60) // should be unique
alloc(newmem,$1000,INJECT_EXP_MULTI)

label(code)
label(return)
label(vf_exp_multi)

newmem:
  vmovss xmm14, [vf_exp_multi]
  cvtsi2ss xmm15, rbx
  vmulss xmm13, xmm14, xmm15
  vcvtss2si rbx, xmm13

code:
  lea ebp,[r14+rbx]
  mov [rsp+60],ebp
  jmp return
align 10 cc
  vf_exp_multi:
  dd (float)1.2


INJECT_EXP_MULTI:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_EXP_MULTI)
registersymbol(vf_exp_multi)

[DISABLE]

INJECT_EXP_MULTI:
  db 41 8D 2C 1E 89 6C 24 60

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+28B1E0C

ACOdyssey.exe+28B1DCC: 84 C0                    - test al,al
ACOdyssey.exe+28B1DCE: 0F 84 8A 03 00 00        - je ACOdyssey.exe+28B215E
ACOdyssey.exe+28B1DD4: 41 8B 47 10              - mov eax,[r15+10]
ACOdyssey.exe+28B1DD8: 48 89 AC 24 D0 00 00 00  - mov [rsp+000000D0],rbp
ACOdyssey.exe+28B1DE0: 48 89 B4 24 A8 00 00 00  - mov [rsp+000000A8],rsi
ACOdyssey.exe+28B1DE8: 48 8B 74 24 60           - mov rsi,[rsp+60]
ACOdyssey.exe+28B1DED: 4C 89 A4 24 A0 00 00 00  - mov [rsp+000000A0],r12
ACOdyssey.exe+28B1DF5: 4C 89 AC 24 98 00 00 00  - mov [rsp+00000098],r13
ACOdyssey.exe+28B1DFD: 4C 89 B4 24 90 00 00 00  - mov [rsp+00000090],r14
ACOdyssey.exe+28B1E05: 44 8B B6 64 06 00 00     - mov r14d,[rsi+00000664]
// ---------- INJECTING HERE ----------
ACOdyssey.exe+28B1E0C: 41 8D 2C 1E              - lea ebp,[r14+rbx]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+28B1E10: 89 6C 24 60              - mov [rsp+60],ebp
ACOdyssey.exe+28B1E14: 3D 00 00 02 00           - cmp eax,00020000
ACOdyssey.exe+28B1E19: 73 04                    - jae ACOdyssey.exe+28B1E1F
ACOdyssey.exe+28B1E1B: 33 C0                    - xor eax,eax
ACOdyssey.exe+28B1E1D: EB 11                    - jmp ACOdyssey.exe+28B1E30
ACOdyssey.exe+28B1E1F: C1 E8 11                 - shr eax,11
ACOdyssey.exe+28B1E22: 8D 0C 85 FC FF FF FF     - lea ecx,[rax*4-00000004]
ACOdyssey.exe+28B1E29: 49 8B 47 08              - mov rax,[r15+08]
ACOdyssey.exe+28B1E2D: 8B 04 01                 - mov eax,[rcx+rax]
ACOdyssey.exe+28B1E30: 33 FF                    - xor edi,edi
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>135</ID>
          <Description>"Multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_exp_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>137</ID>
      <Description>"Get EXP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_EXP,$process,8B 80 64 06 00 00 48 83 C4 20) // should be unique
alloc(newmem,$1000,INJECT_GET_EXP)

label(code)
label(return)
label(i_base_exp_addr)

newmem:
  mov [i_base_exp_addr], rax
code:
  mov eax,[rax+00000664]
  jmp return
align 10 cc
  i_base_exp_addr:
  dq 0

INJECT_GET_EXP:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_EXP)
registersymbol(i_base_exp_addr)

[DISABLE]

INJECT_GET_EXP:
  db 8B 80 64 06 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+28B7980

ACOdyssey.exe+28B795D: 48 8D 99 4C 04 00 00  - lea rbx,[rcx+0000044C]
ACOdyssey.exe+28B7964: 4C 8B C3              - mov r8,rbx
ACOdyssey.exe+28B7967: E8 C4 DB 7A FF        - call ACOdyssey.exe+2065530
ACOdyssey.exe+28B796C: 8B 4B 08              - mov ecx,[rbx+08]
ACOdyssey.exe+28B796F: C1 E9 11              - shr ecx,11
ACOdyssey.exe+28B7972: C1 E1 03              - shl ecx,03
ACOdyssey.exe+28B7975: 48 03 0B              - add rcx,[rbx]
ACOdyssey.exe+28B7978: 48 3B C1              - cmp rax,rcx
ACOdyssey.exe+28B797B: 74 0F                 - je ACOdyssey.exe+28B798C
ACOdyssey.exe+28B797D: 48 8B 00              - mov rax,[rax]
// ---------- INJECTING HERE ----------
ACOdyssey.exe+28B7980: 8B 80 64 06 00 00     - mov eax,[rax+00000664]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+28B7986: 48 83 C4 20           - add rsp,20
ACOdyssey.exe+28B798A: 5B                    - pop rbx
ACOdyssey.exe+28B798B: C3                    - ret 
ACOdyssey.exe+28B798C: 33 C0                 - xor eax,eax
ACOdyssey.exe+28B798E: 48 83 C4 20           - add rsp,20
ACOdyssey.exe+28B7992: 5B                    - pop rbx
ACOdyssey.exe+28B7993: C3                    - ret 
ACOdyssey.exe+28B7994: CC                    - int 3 
ACOdyssey.exe+28B7995: CC                    - int 3 
ACOdyssey.exe+28B7996: CC                    - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>139</ID>
          <Description>"Usage: Open menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>138</ID>
          <Description>"EXP"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_exp_addr</Address>
          <Offsets>
            <Offset>664</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>179</ID>
      <Description>"Get ability pt"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_ABILITY_PT,ACOdyssey.exe,8B 41 10 8B 51 14 3B) // should be unique
alloc(newmem,$1000,INJECT_GET_ABILITY_PT)

label(code)
label(return)
label(i_base_ability_pt_addr)

newmem:
  mov [i_base_ability_pt_addr], rcx
code:
  mov eax,[rcx+10]
  mov edx,[rcx+14]
  jmp return
align 10 cc
  i_base_ability_pt_addr:
  dq 0


INJECT_GET_ABILITY_PT:
  jmp newmem
  nop
return:
registersymbol(INJECT_GET_ABILITY_PT)
registersymbol(i_base_ability_pt_addr)

[DISABLE]

INJECT_GET_ABILITY_PT:
  db 8B 41 10 8B 51 14

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+24337E0

ACOdyssey.exe+24337D6: CC              - int 3 
ACOdyssey.exe+24337D7: CC              - int 3 
ACOdyssey.exe+24337D8: CC              - int 3 
ACOdyssey.exe+24337D9: CC              - int 3 
ACOdyssey.exe+24337DA: CC              - int 3 
ACOdyssey.exe+24337DB: CC              - int 3 
ACOdyssey.exe+24337DC: CC              - int 3 
ACOdyssey.exe+24337DD: CC              - int 3 
ACOdyssey.exe+24337DE: CC              - int 3 
ACOdyssey.exe+24337DF: CC              - int 3 
// ---------- INJECTING HERE ----------
ACOdyssey.exe+24337E0: 8B 41 10        - mov eax,[rcx+10]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+24337E3: 8B 51 14        - mov edx,[rcx+14]
ACOdyssey.exe+24337E6: 3B C2           - cmp eax,edx
ACOdyssey.exe+24337E8: 73 03           - jae ACOdyssey.exe+24337ED
ACOdyssey.exe+24337EA: 33 C0           - xor eax,eax
ACOdyssey.exe+24337EC: C3              - ret 
ACOdyssey.exe+24337ED: 2B C2           - sub eax,edx
ACOdyssey.exe+24337EF: C3              - ret 
ACOdyssey.exe+24337F0: 48 89 5C 24 08  - mov [rsp+08],rbx
ACOdyssey.exe+24337F5: 57              - push rdi
ACOdyssey.exe+24337F6: 48 83 EC 30     - sub rsp,30
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>182</ID>
          <Description>"Usage: open menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>180</ID>
          <Description>"Pt. total"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_ability_pt_addr</Address>
          <Offsets>
            <Offset>10</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>181</ID>
          <Description>"Pt. used (read only)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>FF8080</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_base_ability_pt_addr</Address>
          <Offsets>
            <Offset>14</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>151</ID>
      <Description>"Get drachmae (money) and materials (if not zero)"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>150</ID>
          <Description>"Usage:"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>152</ID>
          <Description>"1. Disable step 4"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>153</ID>
          <Description>"2. Open menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>154</ID>
          <Description>"3. Switch tab before "ability" menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>142</ID>
          <Description>"4. Enable this, and switch to "ability"menu"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-14
  Author : bbfox@htgtps://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_GET_MONEY,ACOdyssey.exe,48 8B 6C 24 30 48 85 C0 74 04) // should be unique
alloc(newmem,$1000,INJECT_GET_MONEY)

label(code)
label(return)
label(i_base_money_addr)

newmem:
  test rax, rax
  je code
  cmp dword ptr [i_count], 6
  ja code
  push r15
  push r14
  push r13
  xor r13, r13
  mov r13d, [i_count]

loop1:

  mov r14, i_base_money_addr
  lea r15, [r14+r13d*8]
  mov r14, [r15]
  //test r14, r14
  //jz store_it
  //jmp next1
store_it:
  //mov r14, rax
  mov [r15], rax

next1:
  inc r13d
  mov [i_count], r13d
  //cmp r13d, 6
  //ja endp
  //jmp loop1

endp:
  pop r13
  pop r14
  pop r15

code:
  mov rbp,[rsp+30]
  jmp return
align 10 cc
  i_base_money_addr:
  dq 0
  align 100 0
  i_count:
  dd 0


INJECT_GET_MONEY:
  jmp newmem
return:
registersymbol(INJECT_GET_MONEY)
registersymbol(i_base_money_addr)

[DISABLE]

INJECT_GET_MONEY:
  db 48 8B 6C 24 30

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+25D423E

ACOdyssey.exe+25D421A: 83 3C 01 00     - cmp dword ptr [rcx+rax],00
ACOdyssey.exe+25D421E: 48 8B CB        - mov rcx,rbx
ACOdyssey.exe+25D4221: 76 0A           - jna ACOdyssey.exe+25D422D
ACOdyssey.exe+25D4223: E8 38 99 21 FE  - call ACOdyssey.exe+7EDB60
ACOdyssey.exe+25D4228: 40 B6 01        - mov sil,01
ACOdyssey.exe+25D422B: EB 05           - jmp ACOdyssey.exe+25D4232
ACOdyssey.exe+25D422D: E8 5E 98 21 FE  - call ACOdyssey.exe+7EDA90
ACOdyssey.exe+25D4232: 48 8D 4F 2C     - lea rcx,[rdi+2C]
ACOdyssey.exe+25D4236: 48 8B D5        - mov rdx,rbp
ACOdyssey.exe+25D4239: E8 12 97 FE FF  - call ACOdyssey.exe+25BD950
// ---------- INJECTING HERE ----------
ACOdyssey.exe+25D423E: 48 8B 6C 24 30  - mov rbp,[rsp+30]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+25D4243: 48 85 C0        - test rax,rax
ACOdyssey.exe+25D4246: 74 04           - je ACOdyssey.exe+25D424C
ACOdyssey.exe+25D4248: 8B 38           - mov edi,[rax]
ACOdyssey.exe+25D424A: EB 02           - jmp ACOdyssey.exe+25D424E
ACOdyssey.exe+25D424C: 33 FF           - xor edi,edi
ACOdyssey.exe+25D424E: 40 84 F6        - test sil,sil
ACOdyssey.exe+25D4251: 48 8B CB        - mov rcx,rbx
ACOdyssey.exe+25D4254: 48 8B 74 24 38  - mov rsi,[rsp+38]
ACOdyssey.exe+25D4259: 74 12           - je ACOdyssey.exe+25D426D
ACOdyssey.exe+25D425B: E8 30 DC 21 FE  - call ACOdyssey.exe+7F1E90
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>143</ID>
              <Description>"Drachmae"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>144</ID>
              <Description>"Material #1"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr+8</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>145</ID>
              <Description>"Material  #2"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr+10</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>146</ID>
              <Description>"Material  #3"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr+18</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>147</ID>
              <Description>"Material  #4"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr+20</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>148</ID>
              <Description>"Material  #5"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr+28</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>149</ID>
              <Description>"Material  #6"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_money_addr+30</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>156</ID>
          <Description>"5. Disable when quit menu"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>155</ID>
      <Description>"inf. oxygen"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_OXYGEN,ACOdyssey.exe,F3 0F 11 89 F0 05 00 00 48 8B 43) // should be unique
alloc(newmem,$1000,INJECT_INF_OXYGEN)

label(code)
label(return)

newmem:
  movss xmm1, [rcx+000005EC]

code:
  movss [rcx+000005F0],xmm1
  jmp return

INJECT_INF_OXYGEN:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_INF_OXYGEN)

[DISABLE]

INJECT_INF_OXYGEN:
  db F3 0F 11 89 F0 05 00 00

unregistersymbol(INJECT_INF_OXYGEN)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+35A958A

ACOdyssey.exe+35A9557: 84 C0                    - test al,al
ACOdyssey.exe+35A9559: 0F 84 24 01 00 00        - je ACOdyssey.exe+35A9683
ACOdyssey.exe+35A955F: 48 8B CB                 - mov rcx,rbx
ACOdyssey.exe+35A9562: E8 A9 DD FF FF           - call ACOdyssey.exe+35A7310
ACOdyssey.exe+35A9567: 48 8B 43 38              - mov rax,[rbx+38]
ACOdyssey.exe+35A956B: F3 0F 11 83 3C 06 00 00  - movss [rbx+0000063C],xmm0
ACOdyssey.exe+35A9573: 48 8B 08                 - mov rcx,[rax]
ACOdyssey.exe+35A9576: F3 0F 10 89 F0 05 00 00  - movss xmm1,[rcx+000005F0]
ACOdyssey.exe+35A957E: F3 0F 5C C8              - subss xmm1,xmm0
ACOdyssey.exe+35A9582: F3 0F 10 05 CA 90 AD 00  - movss xmm0,[ACOdyssey.exe+4082654]
// ---------- INJECTING HERE ----------
ACOdyssey.exe+35A958A: F3 0F 11 89 F0 05 00 00  - movss [rcx+000005F0],xmm1
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+35A9592: 48 8B 43 38              - mov rax,[rbx+38]
ACOdyssey.exe+35A9596: 48 8B 10                 - mov rdx,[rax]
ACOdyssey.exe+35A9599: 0F 2F 82 F0 05 00 00     - comiss xmm0,[rdx+000005F0]
ACOdyssey.exe+35A95A0: 76 63                    - jna ACOdyssey.exe+35A9605
ACOdyssey.exe+35A95A2: 33 C9                    - xor ecx,ecx
ACOdyssey.exe+35A95A4: 89 8A F0 05 00 00        - mov [rdx+000005F0],ecx
ACOdyssey.exe+35A95AA: 48 8B 83 80 05 00 00     - mov rax,[rbx+00000580]
ACOdyssey.exe+35A95B1: 48 85 C0                 - test rax,rax
ACOdyssey.exe+35A95B4: 74 0C                    - je ACOdyssey.exe+35A95C2
ACOdyssey.exe+35A95B6: 48 8B 00                 - mov rax,[rax]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>185</ID>
      <Description>"inf. Adrenaline"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-16
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_ADREN,ACOdyssey.exe,CF 00 33 D2 89 BB A8 02 00 00) // should be unique
alloc(newmem,$1000,INJECT_INF_ADREN)

label(code)
label(return)

newmem:
  mov edi, [rbx+000002AC]
  add edi, edi

code:
  mov [rbx+000002A8],edi
  jmp return

INJECT_INF_ADREN+04:
  jmp newmem
  nop
return:
registersymbol(INJECT_INF_ADREN)

[DISABLE]

INJECT_INF_ADREN+04:
  db 89 BB A8 02 00 00

unregistersymbol(INJECT_INF_ADREN)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+22D7599

ACOdyssey.exe+22D7573: 74 7B                 - je ACOdyssey.exe+22D75F0
ACOdyssey.exe+22D7575: 44 8B 81 AC 02 00 00  - mov r8d,[rcx+000002AC]
ACOdyssey.exe+22D757C: 41 3B D0              - cmp edx,r8d
ACOdyssey.exe+22D757F: 8B 89 A8 02 00 00     - mov ecx,[rcx+000002A8]
ACOdyssey.exe+22D7585: 48 89 7C 24 30        - mov [rsp+30],rdi
ACOdyssey.exe+22D758A: 41 8B F8              - mov edi,r8d
ACOdyssey.exe+22D758D: 0F 46 FA              - cmovbe edi,edx
ACOdyssey.exe+22D7590: 8B D7                 - mov edx,edi
ACOdyssey.exe+22D7592: E8 49 08 CF 00        - call ACOdyssey.exe+2FC7DE0
ACOdyssey.exe+22D7597: 33 D2                 - xor edx,edx
// ---------- INJECTING HERE ----------
ACOdyssey.exe+22D7599: 89 BB A8 02 00 00     - mov [rbx+000002A8],edi
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+22D759F: 8B C7                 - mov eax,edi
ACOdyssey.exe+22D75A1: F7 B3 CC 01 00 00     - div [rbx+000001CC]
ACOdyssey.exe+22D75A7: 3B 83 B0 02 00 00     - cmp eax,[rbx+000002B0]
ACOdyssey.exe+22D75AD: 75 04                 - jne ACOdyssey.exe+22D75B3
ACOdyssey.exe+22D75AF: 85 FF                 - test edi,edi
ACOdyssey.exe+22D75B1: 75 19                 - jne ACOdyssey.exe+22D75CC
ACOdyssey.exe+22D75B3: 85 FF                 - test edi,edi
ACOdyssey.exe+22D75B5: 89 83 B0 02 00 00     - mov [rbx+000002B0],eax
ACOdyssey.exe+22D75BB: 8B D0                 - mov edx,eax
ACOdyssey.exe+22D75BD: 48 8B CB              - mov rcx,rbx
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>160</ID>
      <Description>"Arrows (items) not decrease between defined values"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-14
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ITEM_NO_DEC,ACOdyssey.exe,44 2B C0 44 89 03 75) // should be unique
alloc(newmem,$1000,INJECT_ITEM_NO_DEC)

label(code)
label(return)
label(i_item_chk_threshold)
label(i_item_chk_upper)
label(i_item_chk_lower)

newmem:
  pushfq
  cmp r8d, [i_item_chk_upper]
  jle chk_2
  jmp endp
chk_2:
  cmp r8d, [i_item_chk_lower]
  jge chk_3
  jmp endp
chk_3:
  cmp eax, [i_item_chk_threshold]
  jge endp
  mov r8d, [i_item_chk_upper]
  mov eax, 0

endp:
  popfq

code:
  sub r8d,eax
  mov [rbx],r8d
  jmp return
align 10 cc
  i_item_chk_threshold:
  dd 5
  i_item_chk_upper:
  dd 14
  i_item_chk_lower:
  dd 8

INJECT_ITEM_NO_DEC:
  jmp newmem
  nop
return:
registersymbol(INJECT_ITEM_NO_DEC)
registersymbol(i_item_chk_threshold)
registersymbol(i_item_chk_upper)
registersymbol(i_item_chk_lower)
[DISABLE]

INJECT_ITEM_NO_DEC:
  db 44 2B C0 44 89 03

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3581

ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3560: 48 C1 F8 3F     - sar rax,3F
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3564: 48 23 D0        - and rdx,rax
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3567: 48 83 C2 28     - add rdx,28
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+356B: E8 E0 0B FC FF  - call ACOdyssey.exe+25D8B60
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3570: 84 C0           - test al,al
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3572: 75 20           - jne ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3594
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3574: 44 8B 03        - mov r8d,[rbx]
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3577: 45 3B E0        - cmp r12d,r8d
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+357A: 41 8B C0        - mov eax,r8d
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+357D: 41 0F 46 C4     - cmovbe eax,r12d
// ---------- INJECTING HERE ----------
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3581: 44 2B C0        - sub r8d,eax
// ---------- DONE INJECTING  ----------
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3584: 44 89 03        - mov [rbx],r8d
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3587: 75 0B           - jne ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3594
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3589: 8B D7           - mov edx,edi
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+358B: 49 8D 4E 2C     - lea rcx,[r14+2C]
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+358F: E8 CC 10 00 00  - call ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+4660
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3594: 49 8B 4E 38     - mov rcx,[r14+38]
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+3598: 48 85 C9        - test rcx,rcx
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+359B: 74 09           - je ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+35A6
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+359D: 48 8B 01        - mov rax,[rcx]
ACOdyssey.AK::MemoryMgr::StartProfileThreadUsage+35A0: 48 8B D6        - mov rdx,rsi
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>183</ID>
          <Description>"upper boundary"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_item_chk_upper</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>184</ID>
          <Description>"lower boundary"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_item_chk_lower</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>161</ID>
          <Description>"Reduction value per occurrence"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_item_chk_threshold</Address>
          <CheatEntries>
            <CheatEntry>
              <ID>195</ID>
              <Description>"**may have side effects (i.e. quest item)**"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>171</ID>
              <Description>"**Not working as expected with the vendor**"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>169</ID>
              <Description>"Any reduction amount that is less than"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>163</ID>
              <Description>"this set value will be triggered"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>167</ID>
      <Description>"Item multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-15
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_ITEM_MULTI,ACOdyssey.exe,44 8B 81 F8 00 00 00 41 03 D7) // should be unique
alloc(newmem,$1000,INJECT_ITEM_MULTI)

label(code)
label(return)
label(vf_item_multi)
label(i_item_multi_upper_cap)
label(i_item_multi_lower_limit)

newmem:
  cmp edx, [i_item_multi_lower_limit]
  jbe code
  cmp r15d, 0
  jle code
  cmp edx, [i_item_multi_upper_cap]
  jae code
  cvtsi2ss xmm15, r15d
  vmovss xmm14, [vf_item_multi]
  vmulss xmm13, xmm14, xmm15
  vcvtss2si r15d, xmm13

code:
  mov r8d,[rcx+000000F8]
  jmp return
align 10 cc
  vf_item_multi:
  dd (float)1.4
  i_item_multi_upper_cap:
  dd #30000
  i_item_multi_lower_limit:
  dd 1
  db EB 3B 54
  db 68 69 73 20 74
  db 61 62 6C 65 20 63 6F 6D 65 73 20 66 72 6F 6D 20 68 74
  db 74 70 73 3A 2F
  db 2F 6F 70 65 6E 63 68 65
  db 61 74 74 61 62 6C 65 73
  db 2E 63 6F 6D
  db 20 2F 20 43 45 20 37 2E 34 2B
INJECT_ITEM_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_ITEM_MULTI)
registersymbol(vf_item_multi)
registersymbol(i_item_multi_upper_cap)
registersymbol(i_item_multi_lower_limit)
[DISABLE]

INJECT_ITEM_MULTI:
  db 44 8B 81 F8 00 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+258ADD8

ACOdyssey.exe+258ADB1: 32 DB                    - xor bl,bl
ACOdyssey.exe+258ADB3: EB 4D                    - jmp ACOdyssey.exe+258AE02
ACOdyssey.exe+258ADB5: 48 8D 4F 2C              - lea rcx,[rdi+2C]
ACOdyssey.exe+258ADB9: 4D 8B C6                 - mov r8,r14
ACOdyssey.exe+258ADBC: 48 8B D6                 - mov rdx,rsi
ACOdyssey.exe+258ADBF: E8 AC 35 03 00           - call ACOdyssey.exe+25BE370
ACOdyssey.exe+258ADC4: 48 8B 0D AD 0C 57 03     - mov rcx,[ACOdyssey.exe+5AFBA78]
ACOdyssey.exe+258ADCB: 4C 8B C8                 - mov r9,rax
ACOdyssey.exe+258ADCE: 0F B6 9C 24 E8 00 00 00  - movzx ebx,byte ptr [rsp+000000E8]
ACOdyssey.exe+258ADD6: 8B 10                    - mov edx,[rax]
// ---------- INJECTING HERE ----------
ACOdyssey.exe+258ADD8: 44 8B 81 F8 00 00 00     - mov r8d,[rcx+000000F8]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+258ADDF: 41 03 D7                 - add edx,r15d
ACOdyssey.exe+258ADE2: 41 3B D0                 - cmp edx,r8d
ACOdyssey.exe+258ADE5: 41 0F 47 D0              - cmova edx,r8d
ACOdyssey.exe+258ADE9: 89 10                    - mov [rax],edx
ACOdyssey.exe+258ADEB: 4D 85 F6                 - test r14,r14
ACOdyssey.exe+258ADEE: 75 12                    - jne ACOdyssey.exe+258AE02
ACOdyssey.exe+258ADF0: 8B 4F 28                 - mov ecx,[rdi+28]
ACOdyssey.exe+258ADF3: 8D 41 01                 - lea eax,[rcx+01]
ACOdyssey.exe+258ADF6: 89 47 28                 - mov [rdi+28],eax
ACOdyssey.exe+258ADF9: 41 89 49 18              - mov [r9+18],ecx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>170</ID>
          <Description>"**may have side effects (i.e. quest item)**"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>188</ID>
          <Description>"**disbale when interactive with vendor**"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
        <CheatEntry>
          <ID>197</ID>
          <Description>"bypass if stock/number# &lt;="</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_item_multi_lower_limit</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>168</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_item_multi</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>189</ID>
          <Description>"upper limit (may not work)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>i_item_multi_upper_cap</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>190</ID>
      <Description>"inf. Ship HP"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-19
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_SHIP_HP,ACOdyssey.exe,80 F3 01 89 30) // should be unique
alloc(newmem,$1000,INJECT_INF_SHIP_HP)

label(code)
label(return)

newmem:
  pushfq
  cmp [rax+78], 8
  jne endp
  mov esi,[rax+4]
endp:
  popfq

code:
  xor bl,01
  mov [rax],esi
  jmp return

INJECT_INF_SHIP_HP:
  jmp newmem
return:
registersymbol(INJECT_INF_SHIP_HP)

[DISABLE]

INJECT_INF_SHIP_HP:
  db 80 F3 01 89 30

unregistersymbol(INJECT_INF_SHIP_HP)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+30A0BC8

ACOdyssey.exe+30A0B9D: 48 8B 89 58 01 00 00  - mov rcx,[rcx+00000158]
ACOdyssey.exe+30A0BA4: 41 0F B6 E8           - movzx ebp,r8b
ACOdyssey.exe+30A0BA8: 8B F2                 - mov esi,edx
ACOdyssey.exe+30A0BAA: 48 8B 01              - mov rax,[rcx]
ACOdyssey.exe+30A0BAD: FF 90 40 02 00 00     - call qword ptr [rax+00000240]
ACOdyssey.exe+30A0BB3: 48 8B 8F 58 01 00 00  - mov rcx,[rdi+00000158]
ACOdyssey.exe+30A0BBA: 8B 18                 - mov ebx,[rax]
ACOdyssey.exe+30A0BBC: 48 8B 01              - mov rax,[rcx]
ACOdyssey.exe+30A0BBF: FF 90 40 02 00 00     - call qword ptr [rax+00000240]
ACOdyssey.exe+30A0BC5: C1 EB 1F              - shr ebx,1F
// ---------- INJECTING HERE ----------
ACOdyssey.exe+30A0BC8: 80 F3 01              - xor bl,01
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+30A0BCB: 89 30                 - mov [rax],esi
ACOdyssey.exe+30A0BCD: 74 20                 - je ACOdyssey.exe+30A0BEF
ACOdyssey.exe+30A0BCF: 85 F6                 - test esi,esi
ACOdyssey.exe+30A0BD1: 79 1C                 - jns ACOdyssey.exe+30A0BEF
ACOdyssey.exe+30A0BD3: 8B 15 77 38 AC 02     - mov edx,[ACOdyssey.exe+5B64450]
ACOdyssey.exe+30A0BD9: 45 33 C0              - xor r8d,r8d
ACOdyssey.exe+30A0BDC: 48 8B CF              - mov rcx,rdi
ACOdyssey.exe+30A0BDF: 40 84 ED              - test bpl,bpl
ACOdyssey.exe+30A0BE2: 75 06                 - jne ACOdyssey.exe+30A0BEA
ACOdyssey.exe+30A0BE4: 8B 15 4E FF A5 02     - mov edx,[ACOdyssey.exe+5B00B38]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>196</ID>
          <Description>"**may have side effects (i.e. quest)**"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>191</ID>
      <Description>"inf. ship rower stamina"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Assassin Creed?Odyssey
  Version: 
  Date   : 2023-05-19
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_INF_SHIP_STA,ACOdyssey.exe,F3 44 0F 11 43 50 74) // should be unique
alloc(newmem,$1000,INJECT_INF_SHIP_STA)

label(code)
label(return)

newmem:
  pushfq
  cmp [rbx+48], 4
  jne endp
  push r15
  mov r15d,[rbx+3C]
  mov [rbx+50],r15d
  movd xmm8, r15d
  pop r15
endp:
  popfq

code:
  movss [rbx+50],xmm8
  jmp return

INJECT_INF_SHIP_STA:
  jmp newmem
  nop
return:
registersymbol(INJECT_INF_SHIP_STA)

[DISABLE]

INJECT_INF_SHIP_STA:
  db F3 44 0F 11 43 50

unregistersymbol(INJECT_INF_SHIP_STA)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+308AD89

ACOdyssey.exe+308AD6A: 0F 2F 43 50           - comiss xmm0,[rbx+50]
ACOdyssey.exe+308AD6E: 76 15                 - jna ACOdyssey.exe+308AD85
ACOdyssey.exe+308AD70: B2 01                 - mov dl,01
ACOdyssey.exe+308AD72: EB 08                 - jmp ACOdyssey.exe+308AD7C
ACOdyssey.exe+308AD74: 0F 2F 43 50           - comiss xmm0,[rbx+50]
ACOdyssey.exe+308AD78: 77 0B                 - ja ACOdyssey.exe+308AD85
ACOdyssey.exe+308AD7A: 33 D2                 - xor edx,edx
ACOdyssey.exe+308AD7C: 48 8D 4B 08           - lea rcx,[rbx+08]
ACOdyssey.exe+308AD80: E8 1B A8 93 FD        - call ACOdyssey.exe+9C55A0
ACOdyssey.exe+308AD85: 45 0F 2E C8           - ucomiss xmm9,xmm8
// ---------- INJECTING HERE ----------
ACOdyssey.exe+308AD89: F3 44 0F 11 43 50     - movss [rbx+50],xmm8
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+308AD8F: 74 07                 - je ACOdyssey.exe+308AD98
ACOdyssey.exe+308AD91: 80 8B 82 00 00 00 01  - or byte ptr [rbx+00000082],01
ACOdyssey.exe+308AD98: 0F 28 74 24 50        - movaps xmm6,[rsp+50]
ACOdyssey.exe+308AD9D: 0F 28 7C 24 40        - movaps xmm7,[rsp+40]
ACOdyssey.exe+308ADA2: 44 0F 28 44 24 30     - movaps xmm8,[rsp+30]
ACOdyssey.exe+308ADA8: 44 0F 28 4C 24 20     - movaps xmm9,[rsp+20]
ACOdyssey.exe+308ADAE: 48 83 C4 60           - add rsp,60
ACOdyssey.exe+308ADB2: 5B                    - pop rbx
ACOdyssey.exe+308ADB3: C3                    - ret 
ACOdyssey.exe+308ADB4: CC                    - int 3 
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>162</ID>
          <Description>"**may have side effects (i.e. quest)**"</Description>
          <Color>8000FF</Color>
          <GroupHeader>1</GroupHeader>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>192</ID>
      <Description>"Ship fire buildup multiplier"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ACOdyssey.exe
  Version: 
  Date   : 2023-05-20
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SHIP_FILE_GAUGE_MULTI,ACOdyssey.exe,F3 0F 5C 40 50 0F 2F 05 * * * * 0F 92 C3) // should be unique
alloc(newmem,$1000,INJECT_SHIP_FILE_GAUGE_MULTI)

label(code)
label(return)
label(vf_ship_fire_multi)

newmem:
  vmovss xmm15, [rax+50]
  vmovss xmm14, [vf_ship_fire_multi]
  vmulss xmm13, xmm14, xmm15
  vmovss [rax+50], xmm13

code:
  subss xmm0,[rax+50]
  jmp return
  align 10 cc
  vf_ship_fire_multi:
  dd (float)4

INJECT_SHIP_FILE_GAUGE_MULTI:
  jmp newmem
return:
registersymbol(INJECT_SHIP_FILE_GAUGE_MULTI)
registersymbol(vf_ship_fire_multi)
[DISABLE]

INJECT_SHIP_FILE_GAUGE_MULTI:
  db F3 0F 5C 40 50

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+30C9C3E

ACOdyssey.exe+30C9C1A: 48 8B 41 10           - mov rax,[rcx+10]
ACOdyssey.exe+30C9C1E: 48 8B F9              - mov rdi,rcx
ACOdyssey.exe+30C9C21: 48 8B 49 18           - mov rcx,[rcx+18]
ACOdyssey.exe+30C9C25: 8B 58 2C              - mov ebx,[rax+2C]
ACOdyssey.exe+30C9C28: 48 8B 01              - mov rax,[rcx]
ACOdyssey.exe+30C9C2B: FF 50 20              - call qword ptr [rax+20]
ACOdyssey.exe+30C9C2E: 48 8B 47 18           - mov rax,[rdi+18]
ACOdyssey.exe+30C9C32: 0F 57 C9              - xorps xmm1,xmm1
ACOdyssey.exe+30C9C35: F3 48 0F 2A CB        - cvtsi2ss xmm1,rbx
ACOdyssey.exe+30C9C3A: F3 0F 59 C1           - mulss xmm0,xmm1
// ---------- INJECTING HERE ----------
ACOdyssey.exe+30C9C3E: F3 0F 5C 40 50        - subss xmm0,[rax+50]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+30C9C43: 0F 2F 05 0A 8A FB 00  - comiss xmm0,[ACOdyssey.exe+4082654]
ACOdyssey.exe+30C9C4A: 0F 92 C3              - setb bl
ACOdyssey.exe+30C9C4D: 80 FB 01              - cmp bl,01
ACOdyssey.exe+30C9C50: 75 5C                 - jne ACOdyssey.exe+30C9CAE
ACOdyssey.exe+30C9C52: 38 9F E8 00 00 00     - cmp [rdi+000000E8],bl
ACOdyssey.exe+30C9C58: 74 54                 - je ACOdyssey.exe+30C9CAE
ACOdyssey.exe+30C9C5A: 48 8B 8F D8 00 00 00  - mov rcx,[rdi+000000D8]
ACOdyssey.exe+30C9C61: 48 85 C9              - test rcx,rcx
ACOdyssey.exe+30C9C64: 74 48                 - je ACOdyssey.exe+30C9CAE
ACOdyssey.exe+30C9C66: 48 8B 49 08           - mov rcx,[rcx+08]
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>193</ID>
          <Description>"multiplier"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <Color>C08000</Color>
          <VariableType>Float</VariableType>
          <Address>vf_ship_fire_multi</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>200</ID>
      <Description>"Fast mastery pt spend"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : ACOdyssey.exe
  Version: 
  Date   : 2023-05-20
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FAST_MASTERY_PT_SET,ACOdyssey.exe,FE 48 8D 4E 08 48 8B 5C 24 30) // should be unique
alloc(newmem,$1000,INJECT_FAST_MASTERY_PT_SET)

label(code)
label(return)

newmem:
  // jump from
  // ACOdyssey.exe+246110C - FF 00                 - inc [rax]
  push r15
  cmp dword ptr [rax], #19
  jae endp
  mov r15d, #19
  mov [rax], r15d
endp:
  pop r15

code:
  lea rcx,[rsi+08]
  mov rbx,[rsp+30]
  jmp return

INJECT_FAST_MASTERY_PT_SET+01:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_FAST_MASTERY_PT_SET)

[DISABLE]

INJECT_FAST_MASTERY_PT_SET+01:
  db 48 8D 4E 08 48 8B 5C 24 30

unregistersymbol(INJECT_FAST_MASTERY_PT_SET)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ACOdyssey.exe+2461169

ACOdyssey.exe+2461144: E8 07 74 5B FE  - call ACOdyssey.exe+A18550
ACOdyssey.exe+2461149: 48 8B CB        - mov rcx,rbx
ACOdyssey.exe+246114C: 48 8B F8        - mov rdi,rax
ACOdyssey.exe+246114F: E8 EC D0 55 FE  - call ACOdyssey.exe+9BE240
ACOdyssey.exe+2461154: 45 33 C0        - xor r8d,r8d
ACOdyssey.exe+2461157: 48 8B D7        - mov rdx,rdi
ACOdyssey.exe+246115A: 48 8B CE        - mov rcx,rsi
ACOdyssey.exe+246115D: E8 6E DF 51 FE  - call ACOdyssey.exe+97F0D0
ACOdyssey.exe+2461162: 33 C9           - xor ecx,ecx
ACOdyssey.exe+2461164: E8 D7 D0 55 FE  - call ACOdyssey.exe+9BE240
// ---------- INJECTING HERE ----------
ACOdyssey.exe+2461169: 48 8D 4E 08     - lea rcx,[rsi+08]
// ---------- DONE INJECTING  ----------
ACOdyssey.exe+246116D: 48 8B 5C 24 30  - mov rbx,[rsp+30]
ACOdyssey.exe+2461172: 48 8B 6C 24 38  - mov rbp,[rsp+38]
ACOdyssey.exe+2461177: 48 8B 74 24 40  - mov rsi,[rsp+40]
ACOdyssey.exe+246117C: 48 83 C4 20     - add rsp,20
ACOdyssey.exe+2461180: 5F              - pop rdi
ACOdyssey.exe+2461181: E9 0A 0D 39 FE  - jmp ACOdyssey.exe+7F1E90
ACOdyssey.exe+2461186: CC              - int 3 
ACOdyssey.exe+2461187: CC              - int 3 
ACOdyssey.exe+2461188: CC              - int 3 
ACOdyssey.exe+2461189: CC              - int 3 
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>194</ID>
      <Description>"Assassin's Creed® Odyssey 1.5.6  /  https://opencheattables.com  /  CE 7.5+"</Description>
      <Color>00B359</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>http://fearlessrevolution.com/viewtopic.php?f=4&amp;t=8001
</Comments>
  <DisassemblerComments>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+22D7599</Address>
      <Comment>-- Modify Addrenaline Function
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+26190B6</Address>
      <Comment>--Craft 20 Normal Arrows (Auto Craft)
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+28B1E94</Address>
      <Comment>-- First EXP Injection
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+28B1EA4</Address>
      <Comment>Here
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+307D2DC</Address>
      <Comment>-- Fire Buildup
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+308AD00</Address>
      <Comment>Ship Data?
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+308AD89</Address>
      <Comment>-- Ship Info
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+310F3A5</Address>
      <Comment>-- Nope
</Comment>
    </DisassemblerComment>
    <DisassemblerComment>
      <Address>"ACOdyssey.exe"+35A958A</Address>
      <Comment>Oxygen
</Comment>
    </DisassemblerComment>
  </DisassemblerComments>
</CheatTable>
