<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <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)"</Description>
      <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript Async="1">[ENABLE]
{$lua}
if syntaxcheck then
    return
end
if process == nil then
    ShowMessage("Process is not selected.")
elseif readInteger(process) == 0 then
    ShowMessage("Process cannot be opened.")
else
    if monopipe ~= nil and monopipe.ProcessID ~= getOpenedProcessID() then
        monopipe.destroy()
        monopipe = nil
    end
    if monopipe == nil then
        LaunchMonoDataCollector()
    end
end


{$asm}
define(PlayerControllerManagedUpdateProc,"PlayerController.ManagedUpdate")


registersymbol(PlayerControllerManagedUpdateProc)

[DISABLE]
{$lua}
if syntaxcheck then return end;if not syntaxcheck and monopipe then monopipe=nil,monopipe.Destroy()end

{$asm}
unregistersymbol(*)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>1046</ID>
          <Description>"Pick up item &amp; set stock (item count must &gt;=2)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-10-19
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanregion(INJECT_PICKUP_ITEM,lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+E200,lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+11000,42 81 7C 31 FC 0F 27 00 00) // should be unique
alloc(newmem,$1000,INJECT_PICKUP_ITEM)

label(code)
label(return)
label(i_last_item_addr)

newmem:
  cmp dword ptr [rcx+r14-4], 0
  je code
  //cmp dword ptr [rcx+r14-4], 1
  //je code

  push r15
  lea r15, [rcx+r14]
  mov [i_last_item_addr], r15
  pop r15

  cmp dword ptr [rcx+r14-4], 3E7
  jae code

  mov dword ptr [rcx+r14-4], 3E7

code:
  cmp [rcx+r14-04],0000270F
  jmp return
align 10 cc
  i_last_item_addr:
  dq 0

INJECT_PICKUP_ITEM:
  jmp newmem
  nop 4
return:
registersymbol(INJECT_PICKUP_ITEM)
registersymbol(i_last_item_addr)

[DISABLE]

INJECT_PICKUP_ITEM:
  db 42 81 7C 31 FC 0F 27 00 00

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC81

lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC5B: 48 0F 44 4D 60                 - cmove rcx,[rbp+60]
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC60: 42 8B 44 31 F8                 - mov eax,[rcx+r14-08]
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC65: 39 F0                          - cmp eax,esi
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC67: 0F 94 C2                       - sete dl
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC6A: 22 95 97 00 00 00              - and dl,[rbp+00000097]
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC70: 80 FA 01                       - cmp dl,01
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC73: 75 2B                          - jne lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA0
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC75: 8B 95 10 01 00 00              - mov edx,[rbp+00000110]
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC7B: 42 39 14 31                    - cmp [rcx+r14],edx
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC7F: 75 1F                          - jne lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA0
// ---------- INJECTING HERE ----------
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC81: 42 81 7C 31 FC 0F 27 00 00     - cmp [rcx+r14-04],0000270F
// ---------- DONE INJECTING  ----------
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC8A: 0F 9C C1                       - setl cl
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC8D: 83 FB FF                       - cmp ebx,-01
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC90: 74 15                          - je lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA7
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC92: EB 17                          - jmp lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCAB
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC94: 66 2E 0F 1F 84 00 00 00 00 00  - nop word ptr cs:[rax+rax+00000000]
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FC9E: 66 90                          - nop 2
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA0: 31 C9                          - xor ecx,ecx
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA2: 83 FB FF                       - cmp ebx,-01
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA5: 75 04                          - jne lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCAB
lib_burst_generated.burst.initialize.statics.e55bf0d85c2d3424c88d9f7e698d6f5d_avx2+FCA7: 85 C0                          - test eax,eax
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>1047</ID>
              <Description>"Click Sort to apply to all stockable"</Description>
              <Color>8000FF</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
            <CheatEntry>
              <ID>1057</ID>
              <Description>"ID"</Description>
              <DropDownListLink>-Item ID-</DropDownListLink>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_last_item_addr</Address>
              <Offsets>
                <Offset>-8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>1058</ID>
              <Description>"Cnt"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_last_item_addr</Address>
              <Offsets>
                <Offset>-4</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>1052</ID>
          <Description>"inf. mana (magic)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-08-31
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

// 1.0.0.2 aobscanmodule(INJECT_INF_MANA_MAGIC,lib_burst_generated.dll,C5 FF FF 85 C0 74 1C 8B 0F 8B 57 04) // should be unique
// 1.0.0.8 aobscanmodule(INJECT_INF_MANA_MAGIC,lib_burst_generated.dll,B9 FF FF 85 C0 74 1C 8B 0F 8B 57 04) // should be unique
aobscanregion(INJECT_INF_MANA_MAGIC,lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5AB1,lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+6DB1,74 1C 8B 0F 8B 57 04) // should be unique
alloc(newmem,$1000,INJECT_INF_MANA_MAGIC)

label(code)
label(return)

newmem:
  mov ecx, [rdi+4]
  shl rcx, 1
  mov [rdi], ecx

code:
  mov ecx,[rdi]
  mov edx,[rdi+04]
  jmp return

INJECT_INF_MANA_MAGIC+02:
  jmp newmem
return:
registersymbol(INJECT_INF_MANA_MAGIC)

[DISABLE]

INJECT_INF_MANA_MAGIC+02:
  db 8B 0F 8B 57 04

unregistersymbol(INJECT_INF_MANA_MAGIC)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DB1

lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5D81: 48 89 44 24 28        - mov [rsp+28],rax
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5D86: 48 8D 85 A8 06 00 00  - lea rax,[rbp+000006A8]
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5D8D: 48 89 44 24 20        - mov [rsp+20],rax
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5D92: C6 44 24 38 00        - mov byte ptr [rsp+38],00
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5D97: 4C 8D 85 E8 03 00 00  - lea r8,[rbp+000003E8]
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5D9E: 4C 8D 8D 90 04 00 00  - lea r9,[rbp+00000490]
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DA5: C5 F8 77              - vzeroupper
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DA8: E8 73 C4 FF FF        - call lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+2220
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DAD: 85 C0                 - test eax,eax
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DAF: 74 1C                 - je lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DCD
// ---------- INJECTING HERE ----------
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DB1: 8B 0F                 - mov ecx,[rdi]
// ---------- DONE INJECTING  ----------
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DB3: 8B 57 04              - mov edx,[rdi+04]
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DB6: 29 C1                 - sub ecx,eax
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DB8: 39 CA                 - cmp edx,ecx
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DBA: 0F 4C CA              - cmovl ecx,edx
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DBD: 89 C8                 - mov eax,ecx
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DBF: C1 F8 1F              - sar eax,1F
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DC2: C4 E2 78 F2 C1        - andn eax,eax,ecx
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DC7: 89 07                 - mov [rdi],eax
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DC9: C6 47 0C 01           - mov byte ptr [rdi+0C],01
lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+5DCD: 49 63 FE              - movsxd  rdi,r14d
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1053</ID>
          <Description>"inf. magic (summon)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-10-19
  Author : bbfox@https://opencheattables.com
}

[ENABLE]
aobscanmodule(INJECT_INF_MANA_SUMMON,lib_burst_generated.dll,31 EF FF 48 8B 4E 40 3B 01) // should be unique
alloc(newmem,$1000,INJECT_INF_MANA_SUMMON)

label(code)
label(return)

newmem:

code:
  mov rcx,[rsi+40]
  //
  push r15
  mov r15d, [rcx+4]
  shl r15d, 1
  mov dword ptr [rcx], r15d
  pop r15

@@:
  //
  cmp eax,[rcx]
  jmp return

INJECT_INF_MANA_SUMMON+03:
  jmp newmem
  nop
return:
registersymbol(INJECT_INF_MANA_SUMMON)

[DISABLE]

INJECT_INF_MANA_SUMMON+03:
  db 48 8B 4E 40 3B 01

unregistersymbol(INJECT_INF_MANA_SUMMON)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.dll+484B96B

lib_burst_generated.dll+484B941: 48 89 44 24 28        - mov [rsp+28],rax
lib_burst_generated.dll+484B946: 48 8D 45 60           - lea rax,[rbp+60]
lib_burst_generated.dll+484B94A: 48 89 44 24 20        - mov [rsp+20],rax
lib_burst_generated.dll+484B94F: C6 44 24 38 01        - mov byte ptr [rsp+38],01
lib_burst_generated.dll+484B954: 4C 8D 85 B0 00 00 00  - lea r8,[rbp+000000B0]
lib_burst_generated.dll+484B95B: 4C 8D 4D C8           - lea r9,[rbp-38]
lib_burst_generated.dll+484B95F: 89 F9                 - mov ecx,edi
lib_burst_generated.dll+484B961: 89 DA                 - mov edx,ebx
lib_burst_generated.dll+484B963: C5 F8 77              - vzeroupper
lib_burst_generated.dll+484B966: E8 15 31 EF FF        - call lib_burst_generated.burst.initialize.statics.fa3d7fb0d680af28ea795b76ea7aa226_avx2+21E0
// ---------- INJECTING HERE ----------
lib_burst_generated.dll+484B96B: 48 8B 4E 40           - mov rcx,[rsi+40]
// ---------- DONE INJECTING  ----------
lib_burst_generated.dll+484B96F: 3B 01                 - cmp eax,[rcx]
lib_burst_generated.dll+484B971: 7E 63                 - jle lib_burst_generated.dll+484B9D6
lib_burst_generated.dll+484B973: 48 8B 8D 90 01 00 00  - mov rcx,[rbp+00000190]
lib_burst_generated.dll+484B97A: 48 8B 86 98 00 00 00  - mov rax,[rsi+00000098]
lib_burst_generated.dll+484B981: 4C 8B 96 88 00 00 00  - mov r10,[rsi+00000088]
lib_burst_generated.dll+484B988: 44 8B 01              - mov r8d,[rcx]
lib_burst_generated.dll+484B98B: 8B 16                 - mov edx,[rsi]
lib_burst_generated.dll+484B98D: 8B 4E 04              - mov ecx,[rsi+04]
lib_burst_generated.dll+484B990: 45 0F B6 0A           - movzx r9d,byte ptr [r10]
lib_burst_generated.dll+484B994: 45 8D 59 01           - lea r11d,[r9+01]
}

</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1055</ID>
          <Description>"Skill XP multiplier"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-08-31
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_SKILL_MULTI,lib_burst_generated.dll,4E 01 00 00 03 47 0C 41 89 04 9E 48 83 C6 28) // should be unique
alloc(newmem,$1000,INJECT_SKILL_MULTI)

label(code)
label(return)
label(vf_skll_multi)

newmem:
  vcvtsi2ss xmm15, xmm15, eax
  vcvtsi2ss xmm14, xmm14, dword ptr [r14+rbx*4]
  vsubss xmm13, xmm15, xmm14
  vmovss xmm12, [vf_skll_multi]
  vmulss xmm13, xmm13, xmm12
  vaddss xmm15, xmm14, xmm13
  vcvtss2si eax, xmm15

code:
  mov [r14+rbx*4],eax
  add rsi,28
  jmp return
align 10 cc
  vf_skll_multi:
  dd (float)6.667


INJECT_SKILL_MULTI+07:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SKILL_MULTI)
registersymbol(vf_skll_multi)
[DISABLE]

INJECT_SKILL_MULTI+07:
  db 41 89 04 9E 48 83 C6 28

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24B7

lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+248C: C5 E2 C2 2D 8F 8A 5A 00 06  - vcmpnless xmm5,xmm3,dqword ptr [lib_burst_generated.dll+5CD73B4]
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+2495: C4 E3 59 4A C0 50           - vblendvps xmm0,xmm4,xmm0,xmm5
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+249B: C5 D8 57 E4                 - vxorps xmm4,xmm4,xmm4
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+249F: C5 E2 C2 DC 00              - vcmpeqss xmm3,xmm3,xmm4
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24A4: C4 E3 79 4A C1 30           - vblendvps xmm0,xmm0,xmm1,xmm3
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24AA: C5 EA 5E C0                 - vdivss xmm0,xmm2,xmm0
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24AE: C5 FA 2C C8                 - vcvttss2si ecx,xmm0
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24B2: 83 F9 64                    - cmp ecx,64
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24B5: 0F 8D                       - db 0F 8D
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24B7: 4E 01 00                    - add [rax],r8
// ---------- INJECTING HERE ----------
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24BA: 00 03                       - add [rbx],al
// ---------- DONE INJECTING  ----------
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24BC: 47 0C 41                    - or al,41
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24BF: 89 04 9E                    - mov [rsi+rbx*4],eax
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24C2: 48 83 C6 28                 - add rsi,28
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24C6: 44 8B 07                    - mov r8d,[rdi]
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24C9: 44 8B 4F 04                 - mov r9d,[rdi+04]
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24CD: 48 8D 4D B0                 - lea rcx,[rbp-50]
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24D1: 48 89 F2                    - mov rdx,rsi
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24D4: E8 D7 08 00 00              - call lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+2DB0
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24D9: 4C 8B 7D B0                 - mov r15,[rbp-50]
lib_burst_generated.burst.initialize.statics.9890403cf2b9966f01e12d8b0afbb57e_avx2+24DD: 41 8B 14 9E                 - mov edx,[r14+rbx*4]
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>1056</ID>
              <Description>"multiplier"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>Float</VariableType>
              <Address>vf_skll_multi</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>1039</ID>
          <Description>"Get HP"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-10-19
  Author : bbfox@https://opencheattables.com
}

[ENABLE]
//96 C9 FE A8 01 0F 85 88 00 00 00 48 8B 85 E0 00 00 00 83 38 00 7E 7C
aobscanregion(INJECT_GET_HP,lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+2400,lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+3675,48 8B 85 E0 00 00 00 83 38 00 7E 7C) // should be unique
alloc(newmem,$1000,INJECT_GET_HP)

label(code)
label(return)
label(i_base_hp_addr)
label(is_keep_hp)

newmem:
  mov [i_base_hp_addr], rax
  cmp dword ptr [is_keep_hp], 1
  jne code
  push r15
  mov r15d, [rax]
  cmp r15d, 64
  jle fill_hp
  cmp r15d, #2000
  jge fill_hp
  cmp r15d, [i_high_water_mark_hp]
  jg overwrite_rec
  jl fill_hp
  jmp endp

overwrite_rec:
  mov [i_high_water_mark_hp], r15d
  jmp endp

fill_hp:
  mov r15d, [i_high_water_mark_hp]
  mov [rax], r15d

endp:
  pop r15


code:
  cmp dword ptr [rax],00
  jle INJECT_GET_HP+88 // 7C + 5 + 7
  jmp return
align 10 cc
  i_base_hp_addr:
  dq 0
  is_keep_hp:
  dd 1
  i_high_water_mark_hp:
  dd C8

INJECT_GET_HP+7:
  jmp newmem
return:
registersymbol(INJECT_GET_HP)
registersymbol(i_base_hp_addr)
registersymbol(is_keep_hp)
[DISABLE]

INJECT_GET_HP+7:
  db 83 38 00 7E 7C

unregistersymbol(*)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24CD

lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24A7: 48 8B 0E              - mov rcx,[rsi]
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24AA: 44 8B 4E 18           - mov r9d,[rsi+18]
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24AE: 48 8D 46 08           - lea rax,[rsi+08]
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24B2: 48 89 45 10           - mov [rbp+10],rax
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24B6: 48 89 44 24 20        - mov [rsp+20],rax
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24BB: 89 DA                 - mov edx,ebx
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24BD: 45 89 F0              - mov r8d,r14d
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24C0: E8 8B FB AC FF        - call lib_burst_generated.dll+46E2300
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24C5: A8 01                 - test al,01
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24C7: 0F 85 88 00 00 00     - jne lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+2555
// ---------- INJECTING HERE ----------
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24CD: 48 8B 85 E0 00 00 00  - mov rax,[rbp+000000E0]
// ---------- DONE INJECTING  ----------
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24D4: 83 38 00              - cmp dword ptr [rax],00
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24D7: 7E 7C                 - jle lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+2555
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24D9: 48 8B 85 D8 00 00 00  - mov rax,[rbp+000000D8]
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24E0: 8B 48 08              - mov ecx,[rax+08]
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24E3: 0B 48 04              - or ecx,[rax+04]
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24E6: F7 C1 20 40 03 00     - test ecx,00034020
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24EC: 49 C7 07 00 00 00 00  - mov qword ptr [r15],00000000
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24F3: 75 67                 - jne lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+255C
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24F5: 45 84 E4              - test r12b,r12b
lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+24F8: 0F 84 32 01 00 00     - je lib_burst_generated.burst.initialize.statics.4f05bc3c73bb69c3081dd26b32507641_avx2+2630
}
</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>1059</ID>
              <Description>"Keep HP?"</Description>
              <DropDownList DisplayValueAsItem="1">0:No
1:Yes
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>is_keep_hp</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>1040</ID>
              <Description>"HP"</Description>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>FF8080</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>i_base_hp_addr</Address>
              <Offsets>
                <Offset>0</Offset>
              </Offsets>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>1033</ID>
          <Description>"Keep food level"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript Async="1">{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-08-28
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanmodule(INJECT_FOOD_NO_DEC,lib_burst_generated.dll,22 8B 07 FF C8 83 F8 64) // should be unique
alloc(newmem,$1000,INJECT_FOOD_NO_DEC)

label(code)
label(return)

newmem:
  cmp dword ptr [rdi], 61
  jae code
  mov dword ptr [rdi], 61

code:
  mov eax,[rdi]
  dec eax
  cmp eax,64
  jmp return

INJECT_FOOD_NO_DEC+01:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_FOOD_NO_DEC)

[DISABLE]

INJECT_FOOD_NO_DEC+01:
  db 8B 07 FF C8 83 F8 64

unregistersymbol(INJECT_FOOD_NO_DEC)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+202C

lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+1FF7: 48 85 C9                 - test rcx,rcx
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+1FFA: 48 0F 45 C1              - cmovne rax,rcx
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+1FFE: C5 EA 2A 88 CC 00 00 00  - vcvtsi2ss xmm1,edx,[rax+000000CC]
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2006: C5 F2 5E 0D E2 BD 73 00  - vdivss xmm1,xmm1,[lib_burst_generated.dll+5CD75B0]
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+200E: C5 F2 58 0D CA B8 73 00  - vaddss xmm1,xmm1,[lib_burst_generated.dll+5CD70A0]
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2016: C5 CA 59 C9              - vmulss xmm1,xmm6,xmm1
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+201A: C5 FA 58 C1              - vaddss xmm0,xmm0,xmm1
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+201E: C5 FA 11 47 10           - vmovss [rdi+10],xmm0
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2023: C5 F8 2E 05 65 BD 73 00  - vucomiss xmm0,[lib_burst_generated.dll+5CD7550]
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+202B: 76                       - db 76
// ---------- INJECTING HERE ----------
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+202C: 22 8B 07 FF C8 83        - and cl,[rbx-7C3700F9]
// ---------- DONE INJECTING  ----------
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2032: F8                       - clc
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2033: 64 B9 64 00 00 00        - mov ecx,00000064
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2039: 0F 4C C8                 - cmovl ecx,eax
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+203C: 89 C8                    - mov eax,ecx
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+203E: C1 F8 1F                 - sar eax,1F
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2041: C4 E2 78 F2 C1           - andn eax,eax,ecx
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2046: 89 07                    - mov [rdi],eax
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2048: C7 47 10 00 00 00 00     - mov [rdi+10],00000000
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+204F: C4 C1 7A 10 41 08        - vmovss xmm0,[r9+08]
lib_burst_generated.burst.initialize.statics.e3526798698902d6ce40ddef695fa808_avx2+2055: C4 C1 7B 10 09           - vmovsd xmm1,[r9]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>1050</ID>
          <Description>"Set item durability"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : CoreKeeper.exe
  Version: 
  Date   : 2024-08-28
  Author : bbfox@https://opencheattables.com
}

[ENABLE]

aobscanregion(INJECT_SET_ITEM_DUR,lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+3700,lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+4B80,89 70 04 E9 01 09 00 00) // should be unique
alloc(newmem,$1000,INJECT_SET_ITEM_DUR)

label(code)
label(return)

newmem:
  cmp esi, 3E7
  jae code
  mov esi, 3E7

code:
  mov [rax+04],esi
  jmp INJECT_SET_ITEM_DUR+909
  //jmp lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+448D
  jmp return

INJECT_SET_ITEM_DUR:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_SET_ITEM_DUR)

[DISABLE]

INJECT_SET_ITEM_DUR:
  db 89 70 04 E9 01 09 00 00

unregistersymbol(INJECT_SET_ITEM_DUR)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37C4

lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+3798: E8 33 69 1F FF           - call lib_burst_generated.burst.initialize.statics.a16bfeb816a6e02383cf3ea8ba810e58_avx2+3190
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+379D: 48 8B 84 24 B0 02 00 00  - mov rax,[rsp+000002B0]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37A5: 48 8B 08                 - mov rcx,[rax]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37A8: 48 83 C0 10              - add rax,10
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37AC: 48 85 C9                 - test rcx,rcx
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37AF: 48 0F 45 C1              - cmovne rax,rcx
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37B3: 48 8D 0C BF              - lea rcx,[rdi+rdi*4]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37B7: 39 1C 88                 - cmp [rax+rcx*4],ebx
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37BA: 0F 85 0D 09 00 00        - jne lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+40CD
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37C0: 48 8D 04 88              - lea rax,[rax+rcx*4]
// ---------- INJECTING HERE ----------
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37C4: 89 70 04                 - mov [rax+04],esi
// ---------- DONE INJECTING  ----------
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37C7: E9 01 09 00 00           - jmp lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+40CD
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37CC: 45 8B 4E 0C              - mov r9d,[r14+0C]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37D0: 41 8B 46 10              - mov eax,[r14+10]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37D4: 89 44 24 20              - mov [rsp+20],eax
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37D8: 4C 89 E9                 - mov rcx,r13
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37DB: 8B 94 24 8C 00 00 00     - mov edx,[rsp+0000008C]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37E2: 44 8B 84 24 88 00 00 00  - mov r8d,[rsp+00000088]
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37EA: C5 F8 77                 - vzeroupper
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37ED: E8 6E 50 00 00           - call lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+8860
lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+37F2: E9 D6 08 00 00           - jmp lib_burst_generated.burst.initialize.statics.d955aac4ce3e12722037e6821f29e8fc_avx2+40CD
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>501</ID>
      <Description>"*** Core Keeper 1.0.0.14  /  https://opencheattables.com  /  CE 7.5+ ***"</Description>
      <Options moHideChildren="1"/>
      <Color>00AC00</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
1505:Tin Ore
1025:Glass Piece
1031:Coral Wood Plank
1032:Gleam Wood Plank
1510:Iron Ore
1520:Gold Ore
1521:Scarlet Ore
1522:Octarine Ore
1523:Galaxite Ore
1524:Solarite Ore
1525:Pandorium Ore
1600:Anicent Gemstone
1601:Jungle Emerald
1602:Ocean Sapphire
1603:Desert Ruby
1633:Magma Slime
1612:Coral Wood
1613:Gleam Wood
1642:Strolly Poly Plate
4016:Scarlet Workbench
6002:Tombstone
8301:Orb Lantern
8511:Scarlet Helm
8600:Copper Breastplate
8611:Scarlet Breastplate
8706:Scarlet Pants
8815:Polished Gold Crystal Necklance
8816:Anicent Gem Necklance
8853:Glow Tulip Ring
8854:Swift Ring
8858:Melting Crystal Ring
8866:Polished 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>
