<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>10</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>247</ID>
      <Description>"Enable (enable twice: 1st: waiting for IL2CPP to complete, then enable again)"</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")
define(PlayerControllerDealDamageToPlayerProc,"PlayerController.DealDamageToPlayer")
define(PlayerControllerHealPlayerProc,"PlayerController.HealPlayer")
define(SkillTalentUIElementUpdateTalentProc,"SkillTalentUIElement.UpdateTalent")
define(PlayerControllerAddSkillProc,"PlayerController.AddSkill")
define(EntityUtilityGetDamageInfoProc,"EntityUtility.GetDamageInfo")
define(AttackPlayerClientSystemRegisterPlayerHitProc,"AttackPlayerClientSystem.RegisterPlayerHit")
define(PlayerStateWalkUpdateProc,"PlayerState.Walk.Update")
define(PlayerStateFishingUpdateMiniGameProc,"PlayerState.Fishing.UpdateMiniGame")
define(PlayerControllerReduceDurabilityOfHeldEquipmentProc,"PlayerController.ReduceDurabilityOfHeldEquipment")
define(PlayerControllerReduceDurabilityOfEquipmentProc,"PlayerController.ReduceDurabilityOfEquipment")
define(SaveManagerAddSkillValueProc,"SaveManager.AddSkillValue")
define(InventoryHandlerGetExistingAmountOfObjectProc,"InventoryHandler.GetExistingAmountOfObject")
define(PlayerStatePlayerBaseStateUpdateMiniGameProc, "PlayerState.PlayerBaseState.UpdateMiniGame")


registersymbol(PlayerControllerManagedUpdateProc)
registersymbol(PlayerControllerDealDamageToPlayerProc)
registersymbol(PlayerControllerHealPlayerProc)
registersymbol(SkillTalentUIElementUpdateTalentProc)
registersymbol(PlayerControllerAddSkillProc)
registersymbol(EntityUtilityGetDamageInfoProc)
registersymbol(AttackPlayerClientSystemRegisterPlayerHitProc)
registersymbol(PlayerStateWalkUpdateProc)
registersymbol(PlayerStateFishingUpdateMiniGameProc)
registersymbol(PlayerControllerReduceDurabilityOfHeldEquipmentProc)
registersymbol(PlayerControllerReduceDurabilityOfEquipmentProc)
registersymbol(SaveManagerAddSkillValueProc)
registersymbol(InventoryHandlerGetExistingAmountOfObjectProc)
registersymbol(PlayerStatePlayerBaseStateUpdateMiniGameProc)

[DISABLE]
{$lua}
if syntaxcheck then return end;if not syntaxcheck and monopipe then monopipe=nil,monopipe.Destroy()end

{$asm}
unregistersymbol(*)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>996</ID>
          <Description>"Food never below #"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-11-11
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FOOD_DEC,lib_burst_generated.dll,83 F9 65 BA 64 00 00 00 0F 4D CA 89) // should be unique
alloc(newmem,$1000,INJECT_FOOD_DEC)

label(code)
label(return)
label(i_food_min)
newmem:
  cmp ecx, [i_food_min]
  jge code
  mov ecx, [i_food_min]

code:
  cmp ecx,65
  mov edx,00000064
  jmp return
align 10 cc
  i_food_min:
  dd #95
INJECT_FOOD_DEC:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FOOD_DEC)
registersymbol(i_food_min)
[DISABLE]

INJECT_FOOD_DEC:
  db 83 F9 65 BA 64 00 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.dll+1515AEE

lib_burst_generated.dll+1515ABE: C5 DA 2A 91 CC 00 00 00     - vcvtsi2ss xmm2,esp,[rcx+000000CC]
lib_burst_generated.dll+1515AC6: C5 EA 5E 15 CE 69 6A 00     - vdivss xmm2,xmm2,[lib_burst_generated.dll+1BBC49C]
lib_burst_generated.dll+1515ACE: C5 AA 58 D2                 - vaddss xmm2,xmm10,xmm2
lib_burst_generated.dll+1515AD2: C5 82 59 D2                 - vmulss xmm2,xmm15,xmm2
lib_burst_generated.dll+1515AD6: C5 F2 58 CA                 - vaddss xmm1,xmm1,xmm2
lib_burst_generated.dll+1515ADA: C4 C1 7A 11 4C 36 10        - vmovss [r14+rsi+10],xmm1
lib_burst_generated.dll+1515AE1: C4 C1 78 2E C8              - vucomiss xmm1,xmm8
lib_burst_generated.dll+1515AE6: 76 28                       - jna lib_burst_generated.dll+1515B10
lib_burst_generated.dll+1515AE8: 41 8B 0C 36                 - mov ecx,[r14+rsi]
lib_burst_generated.dll+1515AEC: FF C9                       - dec ecx
// ---------- INJECTING HERE ----------
lib_burst_generated.dll+1515AEE: 83 F9 65                    - cmp ecx,65
// ---------- DONE INJECTING  ----------
lib_burst_generated.dll+1515AF1: BA 64 00 00 00              - mov edx,00000064
lib_burst_generated.dll+1515AF6: 0F 4D CA                    - cmovge ecx,edx
lib_burst_generated.dll+1515AF9: 89 CA                       - mov edx,ecx
lib_burst_generated.dll+1515AFB: C1 FA 1F                    - sar edx,1F
lib_burst_generated.dll+1515AFE: C4 E2 68 F2 C9              - andn ecx,edx,ecx
lib_burst_generated.dll+1515B03: 41 89 0C 36                 - mov [r14+rsi],ecx
lib_burst_generated.dll+1515B07: 41 C7 44 36 10 00 00 00 00  - mov [r14+rsi+10],00000000
lib_burst_generated.dll+1515B10: 4C 03 64 24 60              - add r12,[rsp+60]
lib_burst_generated.dll+1515B15: C4 C1 7A 11 44 36 04        - vmovss [r14+rsi+04],xmm0
lib_burst_generated.dll+1515B1C: C4 C3 79 17 44 36 08 01     - vextractps [r14+rsi+08],xmm0,xmm0,01
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>178</ID>
              <Description>"Min. number"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_food_min</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Split item set # (turn on when needed, require stack # of 3 or more)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-10
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_ITEM_SPLIT_DEST,lib_burst_generated.dll+1882FB4, lib_burst_generated.dll+1A82FB4, 42 89 7C 3E 04) // should be unique
alloc(newmem,$1000,INJECT_ITEM_SPLIT_DEST)

label(code)
label(return)
label(i_dest_item_addr)
label(i_min_value)

newmem:
  push rax
  lea rax, [rsi+r15]
  mov [i_dest_item_addr], rax
  pop rax

  cmp edi, [i_min_value]
  jge code
  cmp edi, 1
  jle code
  mov edi, [i_min_value]

code:
  mov [rsi+r15+04],edi
  jmp return

align 10 cc
  i_dest_item_addr:
  dq 0
  i_min_value:
  dd #995
  i_min_safe_value:
  dd 1


INJECT_ITEM_SPLIT_DEST:
  jmp newmem
return:

registersymbol(i_dest_item_addr)
registersymbol(i_min_value)
registersymbol(INJECT_ITEM_SPLIT_DEST)

[DISABLE]

INJECT_ITEM_SPLIT_DEST:
  db 42 89 7C 3E 04

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.dll+1982FB4

lib_burst_generated.dll+1982F89: 0F 44 C1                 - cmove eax,ecx
lib_burst_generated.dll+1982F8C: 44 89 E2                 - mov edx,r12d
lib_burst_generated.dll+1982F8F: 0F 44 D1                 - cmove edx,ecx
lib_burst_generated.dll+1982F92: 44 0F 44 F1              - cmove r14d,ecx
lib_burst_generated.dll+1982F96: 48 8B 8C 24 D8 00 00 00  - mov rcx,[rsp+000000D8]
lib_burst_generated.dll+1982F9E: 48 8B 09                 - mov rcx,[rcx]
lib_burst_generated.dll+1982FA1: 48 85 C9                 - test rcx,rcx
lib_burst_generated.dll+1982FA4: 48 8B B4 24 E0 00 00 00  - mov rsi,[rsp+000000E0]
lib_burst_generated.dll+1982FAC: 48 0F 45 F1              - cmovne rsi,rcx
lib_burst_generated.dll+1982FB0: 42 89 04 3E              - mov [rsi+r15],eax
// ---------- INJECTING HERE ----------
lib_burst_generated.dll+1982FB4: 42 89 7C 3E 04           - mov [rsi+r15+04],edi
// ---------- DONE INJECTING  ----------
lib_burst_generated.dll+1982FB9: 42 89 54 3E 08           - mov [rsi+r15+08],edx
lib_burst_generated.dll+1982FBE: 46 89 74 3E 0C           - mov [rsi+r15+0C],r14d
lib_burst_generated.dll+1982FC3: 48 8B 45 00              - mov rax,[rbp+00]
lib_burst_generated.dll+1982FC7: 48 83 C5 10              - add rbp,10
lib_burst_generated.dll+1982FCB: 48 85 C0                 - test rax,rax
lib_burst_generated.dll+1982FCE: 48 0F 45 E8              - cmovne rbp,rax
lib_burst_generated.dll+1982FD2: 44 89 6C 1D 00           - mov [rbp+rbx+00],r13d
lib_burst_generated.dll+1982FD7: 44 89 44 1D 04           - mov [rbp+rbx+04],r8d
lib_burst_generated.dll+1982FDC: 44 89 64 1D 08           - mov [rbp+rbx+08],r12d
lib_burst_generated.dll+1982FE1: 8B 44 24 7C              - mov eax,[rsp+7C]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>3</ID>
              <Description>"Min. value"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_min_value</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>997</ID>
              <Description>"Get item ID &amp; count"</Description>
              <Options moDeactivateChildrenAsWell="1"/>
              <GroupHeader>1</GroupHeader>
              <CheatEntries>
                <CheatEntry>
                  <ID>998</ID>
                  <Description>"Usage: Open itembox"</Description>
                  <Color>8000FF</Color>
                  <GroupHeader>1</GroupHeader>
                  <CheatEntries>
                    <CheatEntry>
                      <ID>1000</ID>
                      <Description>"1. Right click on single item (# of items must be 1) to pick item"</Description>
                      <Color>8000FF</Color>
                      <GroupHeader>1</GroupHeader>
                    </CheatEntry>
                    <CheatEntry>
                      <ID>999</ID>
                      <Description>"2. Left click to put it down"</Description>
                      <Color>8000FF</Color>
                      <GroupHeader>1</GroupHeader>
                    </CheatEntry>
                  </CheatEntries>
                </CheatEntry>
                <CheatEntry>
                  <ID>929</ID>
                  <Description>"Item ID"</Description>
                  <DropDownListLink>-Item ID-</DropDownListLink>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_dest_item_addr</Address>
                  <Offsets>
                    <Offset>0</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>4</ID>
                  <Description>"Item Count (Only for stackable) / Durability (for non-stackable)"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <Color>FF8080</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>i_dest_item_addr</Address>
                  <Offsets>
                    <Offset>4</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>260</ID>
          <Description>"Freeze durability of held equip."</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]

//aobscanmodule(INJECT_HELD_EQUIPMENT,GameAssembly.dll,22 EA FF CC CC CC CC CC 48 89 5C 24 10) // should be unique
aobscanregion(INJECT_HELD_EQUIPMENT,PlayerControllerReduceDurabilityOfHeldEquipmentProc,PlayerControllerReduceDurabilityOfHeldEquipmentProc+10,48 89 5C 24 18) // should be unique
alloc(newmem,$1000,INJECT_HELD_EQUIPMENT)

label(code)
label(return)

newmem:
  ret

code:
  //mov [rsp+10],rbx
  jmp return

INJECT_HELD_EQUIPMENT:
  jmp newmem
return:
registersymbol(INJECT_HELD_EQUIPMENT)

[DISABLE]

INJECT_HELD_EQUIPMENT:
  db 48 89 5C 24 18

unregistersymbol(INJECT_HELD_EQUIPMENT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: PlayerControllerReduceDurabilityOfHeldEquipmentProc

GameAssembly.dll+1A9F236: CC                    - int 3
GameAssembly.dll+1A9F237: CC                    - int 3
GameAssembly.dll+1A9F238: CC                    - int 3
GameAssembly.dll+1A9F239: CC                    - int 3
GameAssembly.dll+1A9F23A: CC                    - int 3
GameAssembly.dll+1A9F23B: CC                    - int 3
GameAssembly.dll+1A9F23C: CC                    - int 3
GameAssembly.dll+1A9F23D: CC                    - int 3
GameAssembly.dll+1A9F23E: CC                    - int 3
GameAssembly.dll+1A9F23F: CC                    - int 3
// ---------- INJECTING HERE ----------
PlayerControllerReduceDurabilityOfHeldEquipmentProc: 48 89 5C 24 18        - mov [rsp+18],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1A9F245: 48 89 74 24 20        - mov [rsp+20],rsi
GameAssembly.dll+1A9F24A: 57                    - push rdi
GameAssembly.dll+1A9F24B: 48 83 EC 40           - sub rsp,40
GameAssembly.dll+1A9F24F: 80 3D 02 21 A9 02 00  - cmp byte ptr [GameAssembly.dll+4531358],00
GameAssembly.dll+1A9F256: 48 8B F1              - mov rsi,rcx
GameAssembly.dll+1A9F259: 75 2B                 - jne GameAssembly.dll+1A9F286
GameAssembly.dll+1A9F25B: 48 8D 0D 5E 15 89 02  - lea rcx,[GameAssembly.dll+43307C0]
GameAssembly.dll+1A9F262: E8 A9 98 77 FE        - call GameAssembly.dll+218B10
GameAssembly.dll+1A9F267: 48 8D 0D 82 3F 84 02  - lea rcx,[GameAssembly.dll+42E31F0]
GameAssembly.dll+1A9F26E: E8 9D 98 77 FE        - call GameAssembly.dll+218B10
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>261</ID>
          <Description>"Freeze durability of equips except held one"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_REDUCE_DUR_EQUIPMENT,PlayerControllerReduceDurabilityOfEquipmentProc,PlayerControllerReduceDurabilityOfEquipmentProc+A,48 89 5C 24 18) // should be unique


alloc(newmem,$1000,INJECT_REDUCE_DUR_EQUIPMENT)

label(code)
label(return)

newmem:
  ret
code:
  //mov [rsp+10],rbx
  jmp return

INJECT_REDUCE_DUR_EQUIPMENT:
  jmp newmem
return:
registersymbol(INJECT_REDUCE_DUR_EQUIPMENT)

[DISABLE]

INJECT_REDUCE_DUR_EQUIPMENT:
  db 48 89 5C 24 18

unregistersymbol(INJECT_REDUCE_DUR_EQUIPMENT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: PlayerControllerReduceDurabilityOfEquipmentProc

GameAssembly.dll+A7A022: E8 C9 99 B9 FF        - call GameAssembly.dll+6139F0
GameAssembly.dll+A7A027: CC                    - int 3
GameAssembly.dll+A7A028: CC                    - int 3
GameAssembly.dll+A7A029: CC                    - int 3
GameAssembly.dll+A7A02A: CC                    - int 3
GameAssembly.dll+A7A02B: CC                    - int 3
GameAssembly.dll+A7A02C: CC                    - int 3
GameAssembly.dll+A7A02D: CC                    - int 3
GameAssembly.dll+A7A02E: CC                    - int 3
GameAssembly.dll+A7A02F: CC                    - int 3
// ---------- INJECTING HERE ----------
PlayerControllerReduceDurabilityOfEquipmentProc: 48 89 5C 24 18        - mov [rsp+18],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+A7A035: 48 89 6C 24 20        - mov [rsp+20],rbp
GameAssembly.dll+A7A03A: 56                    - push rsi
GameAssembly.dll+A7A03B: 48 83 EC 40           - sub rsp,40
GameAssembly.dll+A7A03F: 80 3D 54 3C 75 03 00  - cmp byte ptr [GameAssembly.dll+41CDC9A],00
GameAssembly.dll+A7A046: 41 8B E8              - mov ebp,r8d
GameAssembly.dll+A7A049: 48 8B DA              - mov rbx,rdx
GameAssembly.dll+A7A04C: 48 8B F1              - mov rsi,rcx
GameAssembly.dll+A7A04F: 75 13                 - jne GameAssembly.dll+A7A064
GameAssembly.dll+A7A051: 48 8D 0D D8 90 56 03  - lea rcx,[GameAssembly.dll+3FE3130]
GameAssembly.dll+A7A058: E8 23 98 B9 FF        - call GameAssembly.dll+613880
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>185</ID>
          <Description>"Player move speed"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-30
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]


aobscanregion(INJECT_PLAYER_DATA,PlayerControllerManagedUpdateProc+200,PlayerControllerManagedUpdateProc+480,39 B7 00 0A 00 00) // should be unique
alloc(newmem,$1000,INJECT_PLAYER_DATA)

label(code)
label(return)
label(i_char_base_addr)

newmem:
  push rax
  mov [i_char_base_addr], rdi
  pop rax

code:
  //cmp [rdi+00000998],r14d
  cmp [rdi+00000A00],esi
  jmp return

align 10 cc
  i_char_base_addr:
  dq 0

INJECT_PLAYER_DATA:
  jmp newmem
  nop
return:

registersymbol(i_char_base_addr)
registersymbol(INJECT_PLAYER_DATA)

[DISABLE]

INJECT_PLAYER_DATA:
  db 39 B7 00 0A 00 00

unregistersymbol(*)
dealloc(newmem)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1850173

GameAssembly.dll+1850140: 48 8B CF                 - mov rcx,rdi
GameAssembly.dll+1850143: C6 87 14 04 00 00 01     - mov byte ptr [rdi+00000414],01
GameAssembly.dll+185014A: 48 8B 90 70 04 00 00     - mov rdx,[rax+00000470]
GameAssembly.dll+1850151: FF 90 68 04 00 00        - call qword ptr [rax+00000468]
GameAssembly.dll+1850157: 48 85 C0                 - test rax,rax
GameAssembly.dll+185015A: 0F 84 99 12 00 00        - je GameAssembly.dll+18513F9
GameAssembly.dll+1850160: F3 0F 10 0D 50 A1 C8 01  - movss xmm1,[GameAssembly.dll+34DA2B8]
GameAssembly.dll+1850168: 45 33 C0                 - xor r8d,r8d
GameAssembly.dll+185016B: 48 8B C8                 - mov rcx,rax
GameAssembly.dll+185016E: E8 ED D8 90 00           - call PlayerInput.DisableInputFor
// ---------- INJECTING HERE ----------
GameAssembly.dll+1850173: 39 B7 00 0A 00 00        - cmp [rdi+00000A00],esi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1850179: 7F 61                    - jg GameAssembly.dll+18501DC
GameAssembly.dll+185017B: 48 8B 8F 60 03 00 00     - mov rcx,[rdi+00000360]
GameAssembly.dll+1850182: 48 85 C9                 - test rcx,rcx
GameAssembly.dll+1850185: 0F 84 6E 12 00 00        - je GameAssembly.dll+18513F9
GameAssembly.dll+185018B: 33 D2                    - xor edx,edx
GameAssembly.dll+185018D: E8 DE A5 18 00           - call PlayerState.State.get_isActive
GameAssembly.dll+1850192: 84 C0                    - test al,al
GameAssembly.dll+1850194: 75 46                    - jne GameAssembly.dll+18501DC
GameAssembly.dll+1850196: 48 8B 8F 30 03 00 00     - mov rcx,[rdi+00000330]
GameAssembly.dll+185019D: 48 85 C9                 - test rcx,rcx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>186</ID>
              <Description>"Base addr"</Description>
              <ShowAsHex>1</ShowAsHex>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>808080</Color>
              <VariableType>8 Bytes</VariableType>
              <Address>i_char_base_addr</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>698</ID>
              <Description>"movementSpeed"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>Float</VariableType>
              <Address>i_char_base_addr</Address>
              <Offsets>
                <Offset>488</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>183</ID>
          <Description>"Player HP"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-30
  Author : bbfox@ https://opencheattables.com
}

[ENABLE]

aobscanregion(INJECT_HP_DAMAGE,PlayerControllerDealDamageToPlayerProc+a0,PlayerControllerDealDamageToPlayerProc+5a0,29 9F 00 0A 00 00) // should be unique
alloc(newmem,$1000,INJECT_HP_DAMAGE)

label(code)
label(return)
label(i_player_base_addr)
label(i_player_hp_option)
newmem:
  push r13
  lea r13, [rdi+00000A00]
  mov [i_player_base_addr], r13
  pop r13

  cmp dword ptr [i_player_hp_option], 0
  je code
  cmp dword ptr [i_player_hp_option], 1
  jne check_hp2
  add [rdi+00000A00], ebx
  jmp endp

check_hp2:
  cmp dword ptr [i_player_hp_option], 2
  jne check_hp3
  mov ebx, 1
  jmp endp

check_hp3:
  cmp dword ptr [i_player_hp_option], 3
  jne endp
  mov ebx, 0
  jmp endp

endp:

code:
  sub [rdi+00000A00],ebx
  jmp return

align 10 cc
  i_player_base_addr:
  dq 0
  i_player_hp_option: //0:Normal, 1:try to Keep, 2:1pt, 3:No damage
  dd 1

INJECT_HP_DAMAGE:
  jmp newmem
  nop
return:
registersymbol(i_player_base_addr)
registersymbol(i_player_hp_option)
registersymbol(INJECT_HP_DAMAGE)

[DISABLE]

INJECT_HP_DAMAGE:
  db 29 9F 00 0A 00 00

unregistersymbol(*)
dealloc(newmem)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1845B0C

GameAssembly.dll+1845AC3: C6 05 87 8C C2 02 01     - mov byte ptr [GameAssembly.dll+446E751],01
GameAssembly.dll+1845ACA: 80 BF 20 03 00 00 00     - cmp byte ptr [rdi+00000320],00
GameAssembly.dll+1845AD1: 0F 85 D0 04 00 00        - jne GameAssembly.dll+1845FA7
GameAssembly.dll+1845AD7: 80 BF 1C 0A 00 00 00     - cmp byte ptr [rdi+00000A1C],00
GameAssembly.dll+1845ADE: 0F 85 C3 04 00 00        - jne GameAssembly.dll+1845FA7
GameAssembly.dll+1845AE4: 48 89 B4 24 D0 01 00 00  - mov [rsp+000001D0],rsi
GameAssembly.dll+1845AEC: 4C 89 A4 24 D8 01 00 00  - mov [rsp+000001D8],r12
GameAssembly.dll+1845AF4: 4C 89 B4 24 E0 01 00 00  - mov [rsp+000001E0],r14
GameAssembly.dll+1845AFC: 4C 89 BC 24 A0 01 00 00  - mov [rsp+000001A0],r15
GameAssembly.dll+1845B04: 0F 29 B4 24 90 01 00 00  - movaps [rsp+00000190],xmm6
// ---------- INJECTING HERE ----------
GameAssembly.dll+1845B0C: 29 9F 00 0A 00 00        - sub [rdi+00000A00],ebx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1845B12: 45 33 E4                 - xor r12d,r12d
GameAssembly.dll+1845B15: 44 39 A7 00 0A 00 00     - cmp [rdi+00000A00],r12d
GameAssembly.dll+1845B1C: 0F 8F 17 01 00 00        - jg GameAssembly.dll+1845C39
GameAssembly.dll+1845B22: 48 8B 5F 30              - mov rbx,[rdi+30]
GameAssembly.dll+1845B26: 33 D2                    - xor edx,edx
GameAssembly.dll+1845B28: 48 8B CF                 - mov rcx,rdi
GameAssembly.dll+1845B2B: E8 00 D4 42 00           - call UIelement.get_world
GameAssembly.dll+1845B30: 48 8B 0D 49 70 A2 02     - mov rcx,[GameAssembly.dll+426CB80]
GameAssembly.dll+1845B37: 48 8B F0                 - mov rsi,rax
GameAssembly.dll+1845B3A: F6 81 33 01 00 00 04     - test byte ptr [rcx+00000133],04
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>184</ID>
              <Description>"HP damage option"</Description>
              <DropDownList DisplayValueAsItem="1">0:Normal
1:Try to keep
2:1pt
3:No damage
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_player_hp_option</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>181</ID>
          <Description>"HP recover multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-30
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_FASTER_HP_ADD,PlayerControllerHealPlayerProc+100,PlayerControllerHealPlayerProc+600,48 8B 07 03 DE) // should be unique

alloc(newmem,$1000,INJECT_FASTER_HP_ADD)

label(code)
label(return)
label(vf_addhp_multi)

newmem:
  vmovss xmm15, [vf_addhp_multi]
  cvtsi2ss xmm14, esi
  vmulss xmm15, xmm14, xmm15
  cvtss2si esi, xmm15

code:
  mov rax,[rdi]
  add ebx,esi
  jmp return

align 10 cc
  vf_addhp_multi:
  dd (float)1.5


INJECT_FASTER_HP_ADD:
  jmp newmem
  nop 3
return:
registersymbol(vf_addhp_multi)
registersymbol(INJECT_FASTER_HP_ADD)

[DISABLE]

INJECT_FASTER_HP_ADD:
  db 48 8B 07 03 DE

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+C54C28

GameAssembly.dll+C54BF9: 33 D2                    - xor edx,edx
GameAssembly.dll+C54BFB: 0F 5B C0                 - cvtdq2ps xmm0,xmm0
GameAssembly.dll+C54BFE: F3 0F 59 05 E2 3B BC 02  - mulss xmm0,[GameAssembly.dll+38187E8]
GameAssembly.dll+C54C06: E8 55 82 B5 FF           - call GameAssembly.dll+7ACE60
GameAssembly.dll+C54C0B: F3 0F 10 0D A9 F1 90 02  - movss xmm1,[GameAssembly.dll+3563DBC]
GameAssembly.dll+C54C13: 45 33 C0                 - xor r8d,r8d
GameAssembly.dll+C54C16: E8 75 34 B3 FF           - call Unity.Mathematics.math.max
GameAssembly.dll+C54C1B: F3 0F 2C F0              - cvttss2si esi,xmm0
GameAssembly.dll+C54C1F: 8B 9F 68 08 00 00        - mov ebx,[rdi+00000868]
GameAssembly.dll+C54C25: 48 8B CF                 - mov rcx,rdi
// ---------- INJECTING HERE ----------
GameAssembly.dll+C54C28: 48 8B 07                 - mov rax,[rdi]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+C54C2B: 03 DE                    - add ebx,esi
GameAssembly.dll+C54C2D: 89 9F 68 08 00 00        - mov [rdi+00000868],ebx
GameAssembly.dll+C54C33: 48 8B 90 90 02 00 00     - mov rdx,[rax+00000290]
GameAssembly.dll+C54C3A: FF 90 88 02 00 00        - call qword ptr [rax+00000288]
GameAssembly.dll+C54C40: F2 0F 10 87 70 01 00 00  - movsd xmm0,[rdi+00000170]
GameAssembly.dll+C54C48: 48 8D 54 24 30           - lea rdx,[rsp+30]
GameAssembly.dll+C54C4D: 48 8B AF 60 03 00 00     - mov rbp,[rdi+00000360]
GameAssembly.dll+C54C54: 48 8D 4C 24 40           - lea rcx,[rsp+40]
GameAssembly.dll+C54C59: 3B D8                    - cmp ebx,eax
GameAssembly.dll+C54C5B: F2 0F 11 44 24 30        - movsd [rsp+30],xmm0
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>182</ID>
              <Description>"Multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_addhp_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>156</ID>
          <Description>"Spend skill point everywhere+"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>157</ID>
              <Description>"Allow you to click skill point in any place, UI will display all as "5""</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>155</ID>
              <Description>"Click to display as "all 5""</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-12
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_SKILL2,SkillTalentUIElementUpdateTalentProc+190,SkillTalentUIElementUpdateTalentProc+790,8B 84 24 E0 00 00 00 89 83)
alloc(newmem,$1000,INJECT_SKILL2)

label(code)
label(return)

newmem:
  mov eax, 5
  mov [rsp+000000E0], eax

code:
  mov eax,[rsp+000000E0]
  jmp return

INJECT_SKILL2:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SKILL2)

[DISABLE]

INJECT_SKILL2:
  db 8B 84 24 E0 00 00 00

unregistersymbol(INJECT_SKILL2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+FD954F

GameAssembly.dll+FD9520: 48 8B 4B 50           - mov rcx,[rbx+50]
GameAssembly.dll+FD9524: 41 0F 10 07           - movups xmm0,[r15]
GameAssembly.dll+FD9528: 0F 11 44 24 20        - movups [rsp+20],xmm0
GameAssembly.dll+FD952D: F2 41 0F 10 4F 10     - movsd xmm1,[r15+10]
GameAssembly.dll+FD9533: F2 0F 11 4C 24 30     - movsd [rsp+30],xmm1
GameAssembly.dll+FD9539: 48 85 C9              - test rcx,rcx
GameAssembly.dll+FD953C: 0F 84 F7 07 00 00     - je GameAssembly.dll+FD9D39
GameAssembly.dll+FD9542: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+FD9545: 48 8B 54 24 30        - mov rdx,[rsp+30]
GameAssembly.dll+FD954A: E8 B1 5D C1 00        - call UnityEngine.SpriteRenderer.set_sprite
// ---------- INJECTING HERE ----------
GameAssembly.dll+FD954F: 8B 84 24 E0 00 00 00  - mov eax,[rsp+000000E0]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+FD9556: 89 83 B8 00 00 00     - mov [rbx+000000B8],eax
GameAssembly.dll+FD955C: 33 D2                 - xor edx,edx
GameAssembly.dll+FD955E: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+FD9561: E8 1A F2 FF FF        - call SkillTalentUIElement.GetCurrentPoints
GameAssembly.dll+FD9566: 44 8B F0              - mov r14d,eax
GameAssembly.dll+FD9569: 33 C9                 - xor ecx,ecx
GameAssembly.dll+FD956B: E8 E0 71 03 00        - call Manager.get_saves
GameAssembly.dll+FD9570: 48 85 C0              - test rax,rax
GameAssembly.dll+FD9573: 0F 84 BA 07 00 00     - je GameAssembly.dll+FD9D33
GameAssembly.dll+FD9579: 45 33 C0              - xor r8d,r8d
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>366</ID>
          <Description>"Redirect XP from skill 1 to skill 2"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-30
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_REDIRECT_XP,SaveManagerAddSkillValueProc+d0,SaveManagerAddSkillValueProc+2e0,48 8B 4E 30 44 39 34 28) // should be unique
alloc(newmem,$1000,INJECT_REDIRECT_XP)

label(code)
label(return)
label(i_src_skill)
label(i_dst_skill)

newmem:
  cmp r14d, [i_src_skill]
  jne code
  cmp dword ptr [i_dst_skill], 8
  jg code
  mov r14d, [i_dst_skill]

code:
  mov rcx,[rsi+30]
  cmp [rax+rbp],r14d
  jmp return

align 10 cc
  i_src_skill:
  dd 1
  i_dst_skill:
  dd 6

INJECT_REDIRECT_XP:
  jmp newmem
  nop 3
return:
registersymbol(i_src_skill)
registersymbol(i_dst_skill)
registersymbol(INJECT_REDIRECT_XP)

[DISABLE]

INJECT_REDIRECT_XP:
  db 48 8B 4E 30 44 39 34 28

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1C7AE7E

GameAssembly.dll+1C7AE58: 48 85 DB           - test rbx,rbx
GameAssembly.dll+1C7AE5B: 0F 84 E4 01 00 00  - je GameAssembly.dll+1C7B045
GameAssembly.dll+1C7AE61: 48 8B 5B 60        - mov rbx,[rbx+60]
GameAssembly.dll+1C7AE65: 48 85 DB           - test rbx,rbx
GameAssembly.dll+1C7AE68: 0F 84 D7 01 00 00  - je GameAssembly.dll+1C7B045
GameAssembly.dll+1C7AE6E: 3B 7B 18           - cmp edi,[rbx+18]
GameAssembly.dll+1C7AE71: 72 07              - jb GameAssembly.dll+1C7AE7A
GameAssembly.dll+1C7AE73: 33 C9              - xor ecx,ecx
GameAssembly.dll+1C7AE75: E8 16 F5 89 FF     - call System.ThrowHelper.ThrowArgumentOutOfRangeException
GameAssembly.dll+1C7AE7A: 48 8B 43 10        - mov rax,[rbx+10]
// ---------- INJECTING HERE ----------
GameAssembly.dll+1C7AE7E: 48 8B 4E 30        - mov rcx,[rsi+30]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1C7AE82: 44 39 34 28        - cmp [rax+rbp],r14d
GameAssembly.dll+1C7AE86: 74 17              - je GameAssembly.dll+1C7AE9F
GameAssembly.dll+1C7AE88: FF C7              - inc edi
GameAssembly.dll+1C7AE8A: 48 83 C5 08        - add rbp,08
GameAssembly.dll+1C7AE8E: 48 8B C1           - mov rax,rcx
GameAssembly.dll+1C7AE91: 48 85 C9           - test rcx,rcx
GameAssembly.dll+1C7AE94: 0F 84 AB 01 00 00  - je GameAssembly.dll+1C7B045
GameAssembly.dll+1C7AE9A: E9 71 FF FF FF     - jmp GameAssembly.dll+1C7AE10
GameAssembly.dll+1C7AE9F: 48 85 C9           - test rcx,rcx
GameAssembly.dll+1C7AEA2: 0F 84 9D 01 00 00  - je GameAssembly.dll+1C7B045
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>367</ID>
              <Description>"Skill 1 (only valid when not max)"</Description>
              <DropDownList DisplayValueAsItem="1">0:Mining
1:Running
2:Melee
3:Vitality
4:Crafting
5:Range
6:Gardening
7:Fishing
8:Cooking
9:N/A
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_src_skill</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>368</ID>
              <Description>"Skill 2"</Description>
              <DropDownList DisplayValueAsItem="1">0:Mining
1:Running
2:Melee
3:Vitality
4:Crafting
5:Range
6:Gardening
7:Fishing
8:Cooking
9:N/A
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_dst_skill</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>160</ID>
          <Description>"Skill XP multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-13
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_SKILL_XP_MULTI,PlayerControllerAddSkillProc+140,PlayerControllerAddSkillProc+680,45 8B C6 48 8B C8 E8) // should be unique
alloc(newmem,$1000,INJECT_SKILL_XP_MULTI)

label(code)
label(return)
label(vf_skill_xp_multi)

newmem:
  // rdx = skill
  // r14d = xp
  vmovss xmm14, [vf_skill_xp_multi]
  cvtsi2ss xmm15, r14d
  vmulss xmm15, xmm15, xmm14
  cvtss2si r14d, xmm15


code:
  mov r8d,r14d
  mov rcx,rax
  jmp return

align 10 cc
  i_skill_xp_multi:
  dd 4
  vf_skill_xp_multi:
  dd (float)6

INJECT_SKILL_XP_MULTI:
  jmp newmem
  nop
return:

registersymbol(vf_skill_xp_multi)
registersymbol(INJECT_SKILL_XP_MULTI)

[DISABLE]

INJECT_SKILL_XP_MULTI:
  db 45 8B C6 48 8B C8

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+C461CE

GameAssembly.dll+C461A8: 74 0E                 - je GameAssembly.dll+C461B8
GameAssembly.dll+C461AA: 83 B9 E0 00 00 00 00  - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+C461B1: 75 05                 - jne GameAssembly.dll+C461B8
GameAssembly.dll+C461B3: E8 A8 14 92 FF        - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+C461B8: 33 C9                 - xor ecx,ecx
GameAssembly.dll+C461BA: E8 91 A5 3C 00        - call Manager.get_saves
GameAssembly.dll+C461BF: 48 85 C0              - test rax,rax
GameAssembly.dll+C461C2: 0F 84 AD 05 00 00     - je GameAssembly.dll+C46775
GameAssembly.dll+C461C8: 8B 55 6F              - mov edx,[rbp+6F]
GameAssembly.dll+C461CB: 45 33 C9              - xor r9d,r9d
// ---------- INJECTING HERE ----------
GameAssembly.dll+C461CE: 45 8B C6              - mov r8d,r14d
// ---------- DONE INJECTING  ----------
GameAssembly.dll+C461D1: 48 8B C8              - mov rcx,rax
GameAssembly.dll+C461D4: E8 E7 4B 08 00        - call SaveManagerAddSkillValueProc
GameAssembly.dll+C461D9: 8B 5D 6F              - mov ebx,[rbp+6F]
GameAssembly.dll+C461DC: 33 C9                 - xor ecx,ecx
GameAssembly.dll+C461DE: E8 6D A5 3C 00        - call Manager.get_saves
GameAssembly.dll+C461E3: 48 85 C0              - test rax,rax
GameAssembly.dll+C461E6: 0F 84 89 05 00 00     - je GameAssembly.dll+C46775
GameAssembly.dll+C461EC: 8B 55 6F              - mov edx,[rbp+6F]
GameAssembly.dll+C461EF: 45 33 C0              - xor r8d,r8d
GameAssembly.dll+C461F2: 48 8B C8              - mov rcx,rax
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>365</ID>
              <Description>"XP multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_skill_xp_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>164</ID>
          <Description>"Damage multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-21
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_DAMAGE_MULTI,EntityUtilityGetDamageInfoProc+3A0,EntityUtilityGetDamageInfoProc+13A0,45 8B CD 0F 10 01) // should be unique

alloc(newmem,$1000,INJECT_DAMAGE_MULTI)

label(code)
label(return)
label(vf_damage_multi)

newmem:
  movd xmm15, [vf_damage_multi]
  //movd xmm14, r9d
  cvtsi2ss xmm14, r13d
  mulss xmm15, xmm14
  cvtss2si r13d, xmm15

code:
  mov r9d,r13d
  movups xmm0,[rcx]
  jmp return


align 10 cc
  vf_damage_multi:
  dd (float)1.5
  db EB 3B 54 68 69 73 20 74 61 62 6C 65 20 63 6F 6D 65 73 20 66 72 6F 6D 20 68 74 74 70 73 3A 2F
  db 2F 6F 70 65 6E 63 68 65 61 74 74 61 62 6C 65 73 2E 63 6F 6D 20 2F 20 43 45 20 37 2E 34 2B
INJECT_DAMAGE_MULTI:
  jmp newmem
  nop
return:
registersymbol(vf_damage_multi)
registersymbol(INJECT_DAMAGE_MULTI)

[DISABLE]

INJECT_DAMAGE_MULTI:
  db 45 8B CD 0F 10 01

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+E19818

GameAssembly.dll+E197E8: 48 8D 4D 30              - lea rcx,[rbp+30]
GameAssembly.dll+E197EC: 48 8B D7                 - mov rdx,rdi
GameAssembly.dll+E197EF: E8 AC C4 9A 00           - call GameAssembly.dll+17C5CA0
GameAssembly.dll+E197F4: 48 8B 8D 80 00 00 00     - mov rcx,[rbp+00000080]
GameAssembly.dll+E197FB: 4C 8D 45 58              - lea r8,[rbp+58]
GameAssembly.dll+E197FF: 0F B6 D0                 - movzx edx,al
GameAssembly.dll+E19802: 66 0F 7F 75 90           - movdqa [rbp-70],xmm6
GameAssembly.dll+E19807: 48 8B 85 90 00 00 00     - mov rax,[rbp+00000090]
GameAssembly.dll+E1980E: 33 DB                    - xor ebx,ebx
GameAssembly.dll+E19810: 48 89 9C 24 80 00 00 00  - mov [rsp+00000080],rbx
// ---------- INJECTING HERE ----------
GameAssembly.dll+E19818: 45 8B CD                 - mov r9d,r13d
// ---------- DONE INJECTING  ----------
GameAssembly.dll+E1981B: 0F 10 01                 - movups xmm0,[rcx]
GameAssembly.dll+E1981E: 48 8B 4D 50              - mov rcx,[rbp+50]
GameAssembly.dll+E19822: 0F 29 45 A0              - movaps [rbp-60],xmm0
GameAssembly.dll+E19826: 0F 10 01                 - movups xmm0,[rcx]
GameAssembly.dll+E19829: 48 8B 8D A8 00 00 00     - mov rcx,[rbp+000000A8]
GameAssembly.dll+E19830: 48 89 4C 24 78           - mov [rsp+78],rcx
GameAssembly.dll+E19835: 48 8B 8D A0 00 00 00     - mov rcx,[rbp+000000A0]
GameAssembly.dll+E1983C: 48 89 4C 24 70           - mov [rsp+70],rcx
GameAssembly.dll+E19841: 48 8B 8D 98 00 00 00     - mov rcx,[rbp+00000098]
GameAssembly.dll+E19848: 48 89 4C 24 68           - mov [rsp+68],rcx
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>165</ID>
              <Description>"multiplier"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">1.5:1.5
2:2
4:4
8:8
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_damage_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>166</ID>
          <Description>"Monster damage to player"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-03-21
  Author : bbfox @https://opencheattables.com/
}

[ENABLE]
aobscanregion(INJECT_ENEMY_DAMAGE,AttackPlayerClientSystemRegisterPlayerHitProc+800,AttackPlayerClientSystemRegisterPlayerHitProc+1900,33 D2 89 45 04) // should be unique


alloc(newmem,$1000,INJECT_ENEMY_DAMAGE)

label(code)
label(return)
label(i_monster_damage_type)
label(i_monster_damage_divisor)

newmem:
  cmp dword ptr [i_monster_damage_type], 0
  je endp

check_1:
  cmp dword ptr [i_monster_damage_type], 1
  jne check_2
  mov eax, 1
  jmp endp

check_2:
  cmp dword ptr [i_monster_damage_type], 2
  jne check_3
  mov eax, 0
  jmp endp

check_3:
  cmp dword ptr [i_monster_damage_type], 3
  jne endp

  movss xmm15, [i_monster_damage_divisor]
  comiss xmm15, [vf_zero]
  ja check_3_1
  movss xmm15, [vf_one]

check_3_1:
  db EB 3B 54 68 69 73 20 74 61 62 6C 65 20 63 6F 6D 65 73 20 66 72 6F 6D 20 68 74 74 70 73 3A 2F
  db 2F 6F 70 65 6E 63 68 65 61 74 74 61 62 6C 65 73 2E 63 6F 6D 20 2F 20 43 45 20 37 2E 34 2B
  cvtsi2ss xmm14, eax
  divss xmm14, xmm15
  cvtss2si eax, xmm14

endp:
code:
  xor edx,edx
  mov [rbp+04],eax
  jmp return

align 10 cc
  i_monster_damage_type: //0: Normal, 1:1pt, 2:no damage, 3:divide by number
  dd 3
  i_monster_damage_divisor:
  dd (float)1.5
  vf_zero:
  dd 0
  vf_one:
  dd (float)1

INJECT_ENEMY_DAMAGE:
  jmp newmem
return:
registersymbol(i_monster_damage_divisor)
registersymbol(i_monster_damage_type)
registersymbol(INJECT_ENEMY_DAMAGE)

[DISABLE]

INJECT_ENEMY_DAMAGE:
  db 33 D2 89 45 04

unregistersymbol(*)
dealloc(newmem)


{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1CED0EF

GameAssembly.dll+1CED0BE: 4C 89 74 24 50              - mov [rsp+50],r14
GameAssembly.dll+1CED0C3: 4C 89 7C 24 48              - mov [rsp+48],r15
GameAssembly.dll+1CED0C8: 40 88 7C 24 40              - mov [rsp+40],dil
GameAssembly.dll+1CED0CD: 40 88 7C 24 38              - mov [rsp+38],dil
GameAssembly.dll+1CED0D2: 88 44 24 30                 - mov [rsp+30],al
GameAssembly.dll+1CED0D6: 0F B6 85 48 04 00 00        - movzx eax,byte ptr [rbp+00000448]
GameAssembly.dll+1CED0DD: 40 88 7C 24 28              - mov [rsp+28],dil
GameAssembly.dll+1CED0E2: 88 44 24 20                 - mov [rsp+20],al
GameAssembly.dll+1CED0E6: 0F 29 45 80                 - movaps [rbp-80],xmm0
GameAssembly.dll+1CED0EA: E8 F1 0A 2A 00              - call EntityUtility.CalculateDamage
// ---------- INJECTING HERE ----------
GameAssembly.dll+1CED0EF: 33 D2                       - xor edx,edx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1CED0F1: 89 45 04                    - mov [rbp+04],eax
GameAssembly.dll+1CED0F4: 49 8B CD                    - mov rcx,r13
GameAssembly.dll+1CED0F7: 44 8B F8                    - mov r15d,eax
GameAssembly.dll+1CED0FA: E8 B1 20 B6 FF              - call PlayerController.IsShielded
GameAssembly.dll+1CED0FF: F3 44 0F 10 15 34 C2 7C 01  - movss xmm10,[GameAssembly.dll+34B933C]
GameAssembly.dll+1CED108: 84 C0                       - test al,al
GameAssembly.dll+1CED10A: 0F 84 2D 06 00 00           - je GameAssembly.dll+1CED73D
GameAssembly.dll+1CED110: 33 D2                       - xor edx,edx
GameAssembly.dll+1CED112: 49 8B CD                    - mov rcx,r13
GameAssembly.dll+1CED115: E8 46 4E B7 FF              - call PlayerController.get_shieldedAmount
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>167</ID>
              <Description>"Damage type"</Description>
              <DropDownList ReadOnly="1" DisplayValueAsItem="1">0:Normal
1:1pt
2:No damage
3:Divide by divisor below
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_monster_damage_type</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>168</ID>
              <Description>"Divisor"</Description>
              <DropDownListLink>multiplier</DropDownListLink>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>i_monster_damage_divisor</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>259</ID>
          <Description>"Fast fishing - fish bite"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version:
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.com/
}
//Fast fishing - fish bite
[ENABLE]
//After TimerSimple.StartNew
aobscanmodule(INJECT_SET_FISH_BITE_TIME,GameAssembly.dll,F3 0F 11 09 48 8B D9) // should be unique
alloc(newmem,$1000,INJECT_SET_FISH_BITE_TIME)

label(code)
label(return)

newmem:
  vmovss xmm1, [vf_fish_bite_time]

code:
  movss [rcx],xmm1
  mov rbx,rcx
  jmp return

align 10 cc
  vf_fish_bite_time:
  dd (float)0.8

INJECT_SET_FISH_BITE_TIME:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_FISH_BITE_TIME)

[DISABLE]

INJECT_SET_FISH_BITE_TIME:
  db F3 0F 11 09 48 8B D9

unregistersymbol(INJECT_SET_FISH_BITE_TIME)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+21EFA56
TimerSimple.StartNew - 40 53                 - push rbx
..
..
..


GameAssembly.dll+21EFA43: 48 8B C3              - mov rax,rbx
GameAssembly.dll+21EFA46: 48 83 C4 20           - add rsp,20
GameAssembly.dll+21EFA4A: 5B                    - pop rbx
GameAssembly.dll+21EFA4B: C3                    - ret
GameAssembly.dll+21EFA4C: CC                    - int 3
GameAssembly.dll+21EFA4D: CC                    - int 3
GameAssembly.dll+21EFA4E: CC                    - int 3
GameAssembly.dll+21EFA4F: CC                    - int 3
GameAssembly.dll+21EFA50: 40 53                 - push rbx
GameAssembly.dll+21EFA52: 48 83 EC 20           - sub rsp,20
// ---------- INJECTING HERE ----------
GameAssembly.dll+21EFA56: F3 0F 11 09           - movss [rcx],xmm1
// ---------- DONE INJECTING  ----------
GameAssembly.dll+21EFA5A: 48 8B D9              - mov rbx,rcx
GameAssembly.dll+21EFA5D: 45 84 C0              - test r8l,r8l
GameAssembly.dll+21EFA60: 74 0B                 - je GameAssembly.dll+21EFA6D
GameAssembly.dll+21EFA62: C6 41 0C 00           - mov byte ptr [rcx+0C],00
GameAssembly.dll+21EFA66: C7 41 10 00 00 00 00  - mov [rcx+10],00000000
GameAssembly.dll+21EFA6D: 80 79 04 00           - cmp byte ptr [rcx+04],00
GameAssembly.dll+21EFA71: 74 09                 - je GameAssembly.dll+21EFA7C
GameAssembly.dll+21EFA73: 33 C9                 - xor ecx,ecx
GameAssembly.dll+21EFA75: E8 26 16 E8 FE        - call UnityEngine.Time.get_unscaledTime
GameAssembly.dll+21EFA7A: EB 07                 - jmp GameAssembly.dll+21EFA83
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>257</ID>
          <Description>"Fast fishing - can ignore red fishing line"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version:
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.com/
}
//Fast fishing - can ignore red fishing line
[ENABLE]
aobscanregion(INJECT_FISH_LINE_TENSION,PlayerStatePlayerBaseStateUpdateMiniGameProc+680, PlayerStatePlayerBaseStateUpdateMiniGameProc+A80,F3 0F 11 BF B0 01 00 00 0F) // should be unique


alloc(newmem,$1000,INJECT_FISH_LINE_TENSION)

label(code)
label(return)

newmem:

  vmovss xmm15, [vf_cast_time]
  vmovss [rdi+9C], xmm15 //castTimer
  vmovss [rdi+C4], xmm15 //pullUpTimer

  vmovss xmm15, [vf_throw_time]
  vmovss [rdi+B0], xmm15 //throwTimer

  vmovss xmm15, [vf_fishStruggleTimer]
  vmovss [rdi+190], xmm15 //fishStruggleTimer

  vmovss xmm7, [vf_line_tension]
  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
code:
  movss [rdi+000001B0],xmm7
  jmp return

align 10 cc
  vf_line_tension:
  dd (float)0.1
  vf_cast_time:
  dd (float)0.5
  vf_throw_time:
  dd (float)0.2
  vf_fishStruggleTimer:
  dd (float)5

INJECT_FISH_LINE_TENSION:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FISH_LINE_TENSION)

[DISABLE]

INJECT_FISH_LINE_TENSION:
  db F3 0F 11 BF B0 01 00 00

unregistersymbol(INJECT_FISH_LINE_TENSION)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+183529E

GameAssembly.dll+1835271: 74 0E                       - je GameAssembly.dll+1835281
GameAssembly.dll+1835273: F3 44 0F 10 8F B4 01 00 00  - movss xmm9,[rdi+000001B4]
GameAssembly.dll+183527C: F3 45 0F 59 CB              - mulss xmm9,xmm11
GameAssembly.dll+1835281: F3 0F 10 B7 B0 01 00 00     - movss xmm6,[rdi+000001B0]
GameAssembly.dll+1835289: 33 C9                       - xor ecx,ecx
GameAssembly.dll+183528B: E8 10 D9 72 FF              - call UnityEngine.Time.get_deltaTime
GameAssembly.dll+1835290: 0F 28 F8                    - movaps xmm7,xmm0
GameAssembly.dll+1835293: F3 41 0F 59 F9              - mulss xmm7,xmm9
GameAssembly.dll+1835298: F3 0F 58 FE                 - addss xmm7,xmm6
GameAssembly.dll+183529C: 33 D2                       - xor edx,edx
// ---------- INJECTING HERE ----------
GameAssembly.dll+183529E: F3 0F 11 BF B0 01 00 00     - movss [rdi+000001B0],xmm7
// ---------- DONE INJECTING  ----------
GameAssembly.dll+18352A6: 0F 28 C7                    - movaps xmm0,xmm7
GameAssembly.dll+18352A9: E8 A2 B4 C1 FF              - call System.Single.IsNaN
GameAssembly.dll+18352AE: 84 C0                       - test al,al
GameAssembly.dll+18352B0: 75 06                       - jne GameAssembly.dll+18352B8
GameAssembly.dll+18352B2: 41 0F 2F F8                 - comiss xmm7,xmm8
GameAssembly.dll+18352B6: 76 04                       - jna GameAssembly.dll+18352BC
GameAssembly.dll+18352B8: 41 0F 28 F8                 - movaps xmm7,xmm8
GameAssembly.dll+18352BC: 33 D2                       - xor edx,edx
GameAssembly.dll+18352BE: 0F 28 C7                    - movaps xmm0,xmm7
GameAssembly.dll+18352C1: E8 8A B4 C1 FF              - call System.Single.IsNaN
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>258</ID>
          <Description>"Fast fish struggle success"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version:
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.com/
}
//Fast fish struggle success
[ENABLE]
aobscanregion(INJECT_FAST_FISH_POSITION,PlayerStatePlayerBaseStateUpdateMiniGameProc+80,PlayerStatePlayerBaseStateUpdateMiniGameProc+580,F3 0F 11 87 8C 01 00 00 44) // should be unique
alloc(newmem,$1000,INJECT_FAST_FISH_POSITION)

label(code)
label(return)

newmem:
  vmovss xmm0, [vf_position]

code:  //fishPosition
  movss [rdi+0000018C],xmm0
  jmp return

align 10 cc
  vf_position:
  dd (float)-0.9

INJECT_FAST_FISH_POSITION:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_FAST_FISH_POSITION)

[DISABLE]


INJECT_FAST_FISH_POSITION:
  db F3 0F 11 87 8C 01 00 00 44

unregistersymbol(INJECT_FAST_FISH_POSITION)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1834C66

GameAssembly.dll+1834C3E: 45 33 C9                    - xor r9d,r9d
GameAssembly.dll+1834C41: 4C 8B C6                    - mov r8,rsi
GameAssembly.dll+1834C44: 48 8B D3                    - mov rdx,rbx
GameAssembly.dll+1834C47: B9 88 00 00 00              - mov ecx,00000088
GameAssembly.dll+1834C4C: E8 7F CA 75 00              - call EntityUtility.GetConditionValue
GameAssembly.dll+1834C51: F7 D8                       - neg eax
GameAssembly.dll+1834C53: 66 0F 6E C0                 - movd xmm0,eax
GameAssembly.dll+1834C57: 0F 5B C0                    - cvtdq2ps xmm0,xmm0
GameAssembly.dll+1834C5A: F3 0F 58 C0                 - addss xmm0,xmm0
GameAssembly.dll+1834C5E: F3 0F 5E 05 12 48 C8 01     - divss xmm0,[GameAssembly.dll+34B9478]
// ---------- INJECTING HERE ----------
GameAssembly.dll+1834C66: F3 0F 11 87 8C 01 00 00     - movss [rdi+0000018C],xmm0
// ---------- DONE INJECTING  ----------
GameAssembly.dll+1834C6E: 44 0F 28 9C 24 90 00 00 00  - movaps xmm11,[rsp+00000090]
GameAssembly.dll+1834C77: 44 0F 28 94 24 A0 00 00 00  - movaps xmm10,[rsp+000000A0]
GameAssembly.dll+1834C80: 44 0F 28 8C 24 B0 00 00 00  - movaps xmm9,[rsp+000000B0]
GameAssembly.dll+1834C89: 44 0F 28 84 24 C0 00 00 00  - movaps xmm8,[rsp+000000C0]
GameAssembly.dll+1834C92: 0F 28 BC 24 D0 00 00 00     - movaps xmm7,[rsp+000000D0]
GameAssembly.dll+1834C9A: 0F 28 B4 24 E0 00 00 00     - movaps xmm6,[rsp+000000E0]
GameAssembly.dll+1834CA2: 4C 8B BC 24 F0 00 00 00     - mov r15,[rsp+000000F0]
GameAssembly.dll+1834CAA: 4C 8B B4 24 F8 00 00 00     - mov r14,[rsp+000000F8]
GameAssembly.dll+1834CB2: 48 8B B4 24 28 01 00 00     - mov rsi,[rsp+00000128]
GameAssembly.dll+1834CBA: 48 8B AC 24 20 01 00 00     - mov rbp,[rsp+00000120]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>640</ID>
          <Description>"_not working"</Description>
          <Options moHideChildren="1"/>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>252</ID>
              <Description>"Move speed multiplier (Disable will cause crash)"</Description>
              <Options moHideChildren="1"/>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-04-02
  Author : bbfox @https://opencheattables.org/
}

[ENABLE]
aobscanregion(INJECT_WALK_UPDATE2,PlayerStateWalkUpdateProc+300,PlayerStateWalkUpdateProc+800,F3 0F 10 80 60 04 00 00) // should be unique
alloc(newmem,$1000,INJECT_WALK_UPDATE2)

label(code)
label(return)
label(vf_walk_speed_multi)

newmem:
  vmovss xmm15, [vf_walk_speed_multi]
  mulss xmm7,xmm15
  mulss xmm8,xmm15
  mulss xmm9,xmm15

code:
  movss xmm0,[rax+00000460]
  jmp return

align 10 cc
  vf_walk_speed_multi:
  dd (float)1.5


INJECT_WALK_UPDATE2:
  jmp newmem
  nop 4
return:

registersymbol(vf_walk_speed_multi)
registersymbol(INJECT_WALK_UPDATE2)

[DISABLE]

INJECT_WALK_UPDATE2:
  db F3 0F 10 80 60 04 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+8D07C5

GameAssembly.dll+8D079C: F3 0F 10 7D A7           - movss xmm7,[rbp-59]
GameAssembly.dll+8D07A1: 8B 45 AF                 - mov eax,[rbp-51]
GameAssembly.dll+8D07A4: 0F 28 C7                 - movaps xmm0,xmm7
GameAssembly.dll+8D07A7: 41 0F 14 C0              - unpcklps xmm0,xmm8
GameAssembly.dll+8D07AB: F2 0F 11 46 38           - movsd [rsi+38],xmm0
GameAssembly.dll+8D07B0: 89 46 40                 - mov [rsi+40],eax
GameAssembly.dll+8D07B3: 48 8B 46 10              - mov rax,[rsi+10]
GameAssembly.dll+8D07B7: F2 0F 11 45 A7           - movsd [rbp-59],xmm0
GameAssembly.dll+8D07BC: 48 85 C0                 - test rax,rax
GameAssembly.dll+8D07BF: 0F 84 A1 01 00 00        - je GameAssembly.dll+8D0966
// ---------- INJECTING HERE ----------
GameAssembly.dll+8D07C5: F3 0F 10 80 60 04 00 00  - movss xmm0,[rax+00000460]
// ---------- DONE INJECTING  ----------
GameAssembly.dll+8D07CD: F3 0F 59 F8              - mulss xmm7,xmm0
GameAssembly.dll+8D07D1: F3 44 0F 59 C0           - mulss xmm8,xmm0
GameAssembly.dll+8D07D6: F3 44 0F 59 C8           - mulss xmm9,xmm0
GameAssembly.dll+8D07DB: 48 8B 06                 - mov rax,[rsi]
GameAssembly.dll+8D07DE: 48 8B CE                 - mov rcx,rsi
GameAssembly.dll+8D07E1: 48 8B 90 D0 01 00 00     - mov rdx,[rax+000001D0]
GameAssembly.dll+8D07E8: FF 90 C8 01 00 00        - call qword ptr [rax+000001C8]
GameAssembly.dll+8D07EE: 0F 28 F0                 - movaps xmm6,xmm0
GameAssembly.dll+8D07F1: F3 0F 59 FE              - mulss xmm7,xmm6
GameAssembly.dll+8D07F5: F3 44 0F 59 C6           - mulss xmm8,xmm6
}
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>256</ID>
                  <Description>"multiplier"</Description>
                  <ShowAsSigned>0</ShowAsSigned>
                  <VariableType>Float</VariableType>
                  <Address>vf_walk_speed_multi</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>503</ID>
              <Description>"Inf. craft materials (No effect) (turn off when not use)"</Description>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2022-05-12
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscanmodule(INJECT_INF_AMONT_OF_OBJECT,GameAssembly.dll,40 56 57 41 56) // should be unique
aobscanregion(INJECT_INF_AMONT_OF_OBJECT,InventoryHandlerGetExistingAmountOfObjectProc,InventoryHandlerGetExistingAmountOfObjectProc+5,48 89 5C 24 10) // should be unique
alloc(newmem,$1000,INJECT_INF_AMONT_OF_OBJECT)

label(code)
label(return)

newmem:
  mov eax, #999
  ret

code:
  mov [rsp+10],rbx
  jmp return

INJECT_INF_AMONT_OF_OBJECT:
  jmp newmem
return:
registersymbol(INJECT_INF_AMONT_OF_OBJECT)

[DISABLE]

INJECT_INF_AMONT_OF_OBJECT:
  db 48 89 5C 24 10

unregistersymbol(INJECT_INF_AMONT_OF_OBJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: InventoryHandlerGetExistingAmountOfObjectProc

GameAssembly.dll+D598AB: 48 8B 5C 24 40        - mov rbx,[rsp+40]
GameAssembly.dll+D598B0: 48 8B 74 24 48        - mov rsi,[rsp+48]
GameAssembly.dll+D598B5: 48 83 C4 30           - add rsp,30
GameAssembly.dll+D598B9: 5F                    - pop rdi
GameAssembly.dll+D598BA: C3                    - ret
GameAssembly.dll+D598BB: CC                    - int 3
GameAssembly.dll+D598BC: CC                    - int 3
GameAssembly.dll+D598BD: CC                    - int 3
GameAssembly.dll+D598BE: CC                    - int 3
GameAssembly.dll+D598BF: CC                    - int 3
// ---------- INJECTING HERE ----------
InventoryHandlerGetExistingAmountOfObjectProc: 48 89 5C 24 10        - mov [rsp+10],rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+D598C5: 48 89 74 24 18        - mov [rsp+18],rsi
GameAssembly.dll+D598CA: 57                    - push rdi
GameAssembly.dll+D598CB: 48 83 EC 60           - sub rsp,60
GameAssembly.dll+D598CF: 8B FA                 - mov edi,edx
GameAssembly.dll+D598D1: 48 8B F1              - mov rsi,rcx
GameAssembly.dll+D598D4: 80 3D 0E 5D 47 03 00  - cmp byte ptr [GameAssembly.dll+41CF5E9],00
GameAssembly.dll+D598DB: 75 37                 - jne GameAssembly.dll+D59914
GameAssembly.dll+D598DD: 48 8D 0D 5C 8C 25 03  - lea rcx,[GameAssembly.dll+3FB2540]
GameAssembly.dll+D598E4: E8 97 9F 8B FF        - call GameAssembly.dll+613880
GameAssembly.dll+D598E9: 48 8D 0D 50 8D 25 03  - lea rcx,[GameAssembly.dll+3FB2640]
}
</AssemblerScript>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>501</ID>
      <Description>"*** Core Keeper 0.5.1.0-c249 EA  /  https://opencheattables.com  /  CE 7.4+ ***"</Description>
      <Options moHideChildren="1"/>
      <Color>800080</Color>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>1001</ID>
          <Description>"-Item ID-"</Description>
          <DropDownList DisplayValueAsItem="1">30:Scarlet pickaxe
31:Scaret Hoe
32:Scarlet Shovel
53:Scarlet Fishrod
110:Torch
111:Campfire
1500:Copper Ore
1510:Iron Ore
1520:Gold Ore
1521:Scarlet Ore
1522:Octarine Ore
1523:Galaxite Ore
6002:Tombstone
8301:Orb Lantern
8511:Scarlet Helm
8600:Copper Breastplate
8611:Scarlet Breastplate
8706:Scarlet Pants
8853:Glow Tulip Ring
8902:Scarlet Sword
</DropDownList>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>000</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <LuaScript>AddressList.Header.OnSectionClick = nil
IDs = {501, 182, 365, 364, 165, 168, 178, 3, 186, 184, 367, 368, 167,
       }

function contains(table, val)
   local i = 0
   for i=1, #table do
      if table[i] == val then
         return true
      end
   end
   return false
end


function onMemRecPreExecute(memoryrecord, newstate)
    if contains(IDs, memoryrecord.ID) and newstate then
	    memoryrecord.OnActivate = function(memoryrecord, before, currentstate)
		    return false
	    end
    end
end
</LuaScript>
</CheatTable>
