<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>1</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>2</ID>
      <Description>"Enable (enable twice)"</Description>
      <Options moHideChildren="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(ResourceControllerAddCashProc,"ResourceController:AddCash")
define(ResourceControllerReturnCanPurchaseProc,"ResourceController:ReturnCanPurchase")
define(ResourceControllerTryUseXpUpgradePointProc,"ResourceController:TryUseXpUpgradePoint")
define(EndlessModeDirectorAddTimeScoreProc,"EndlessModeDirector:AddTimeScore")
define(HotbarUseCountControllerAddUseCountProc,"HotbarUseCountController:AddUseCount")
define(HotbarUseCountControllerSetUseCountProc,"HotbarUseCountController:SetUseCount")



registersymbol(ResourceControllerReturnCanPurchaseProc)
registersymbol(ResourceControllerAddCashProc)
registersymbol(ResourceControllerTryUseXpUpgradePointProc)
registersymbol(EndlessModeDirectorAddTimeScoreProc)
registersymbol(HotbarUseCountControllerAddUseCountProc)
registersymbol(HotbarUseCountControllerSetUseCountProc)

[DISABLE]
{$lua}
if syntaxcheck then return end;if not syntaxcheck and monopipe then monopipe=nil,monopipe.Destroy()end;

{$asm}
unregistersymbol(*)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>3</ID>
          <Description>"Battle: Cash 2000"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_SET_CASH,48 63 40 30 41 3B C0) // should be unique
aobscanregion(INJECT_SET_CASH,ResourceControllerAddCashProc+30,ResourceControllerAddCashProc+60,48 63 40 30 41 3B C0) // should be unique


alloc(newmem,$1000,INJECT_SET_CASH)

label(code)
label(return)

newmem:
  mov dword ptr [rax+30], #2000

code:
  movsxd  rax,dword ptr [rax+30]
  cmp eax,r8d
  jmp return

INJECT_SET_CASH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_SET_CASH)

[DISABLE]

INJECT_SET_CASH:
  db 48 63 40 30 41 3B C0

unregistersymbol(INJECT_SET_CASH)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ResourceController:AddCash+42

ResourceController:AddCash+16: 4C 89 45 D8           - mov [rbp-28],r8
ResourceController:AddCash+1a: 49 8B 87 B8 00 00 00  - mov rax,[r15+000000B8]
ResourceController:AddCash+21: 48 8B C8              - mov rcx,rax
ResourceController:AddCash+24: 83 39 00              - cmp dword ptr [rcx],00
ResourceController:AddCash+27: 4C 63 40 30           - movsxd  r8,dword ptr [rax+30]
ResourceController:AddCash+2b: 49 63 87 44 01 00 00  - movsxd  rax,dword ptr [r15+00000144]
ResourceController:AddCash+32: 44 03 C0              - add r8d,eax
ResourceController:AddCash+35: 49 8B 87 B0 00 00 00  - mov rax,[r15+000000B0]
ResourceController:AddCash+3c: 48 8B C8              - mov rcx,rax
ResourceController:AddCash+3f: 83 39 00              - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
ResourceController:AddCash+42: 48 63 40 30           - movsxd  rax,dword ptr [rax+30]
// ---------- DONE INJECTING  ----------
ResourceController:AddCash+46: 41 3B C0              - cmp eax,r8d
ResourceController:AddCash+49: 40 0F 9C C0           - setl al
ResourceController:AddCash+4d: 48 0F B6 C0           - movzx rax,al
ResourceController:AddCash+51: 48 89 45 D0           - mov [rbp-30],rax
ResourceController:AddCash+55: 49 8B 87 B0 00 00 00  - mov rax,[r15+000000B0]
ResourceController:AddCash+5c: 48 89 45 C8           - mov [rbp-38],rax
ResourceController:AddCash+60: 48 8B C8              - mov rcx,rax
ResourceController:AddCash+63: 83 39 00              - cmp dword ptr [rcx],00
ResourceController:AddCash+66: 48 63 48 30           - movsxd  rcx,dword ptr [rax+30]
ResourceController:AddCash+6a: 03 CF                 - add ecx,edi
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"Battle: Upgrade Point 16"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author : bbfox @ https://opencheattables.org
}

[ENABLE]

//aobscan(INJECT_TRY_UPGRADE_POINT,48 63 40 30 85 C0 7E 36) // should be unique
aobscanregion(INJECT_TRY_UPGRADE_POINT,ResourceControllerTryUseXpUpgradePointProc+19,ResourceControllerTryUseXpUpgradePointProc+49,48 63 40 30 85 C0 7E 36) // should be unique


alloc(newmem,$1000,INJECT_TRY_UPGRADE_POINT)

label(code)
label(return)

newmem:
  mov dword ptr [rax+30], #16

code:
  movsxd  rax,dword ptr [rax+30]
  test eax,eax
  jmp return

INJECT_TRY_UPGRADE_POINT:
  jmp newmem
  nop
return:
registersymbol(INJECT_TRY_UPGRADE_POINT)

[DISABLE]

INJECT_TRY_UPGRADE_POINT:
  db 48 63 40 30 85 C0

unregistersymbol(INJECT_TRY_UPGRADE_POINT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ResourceController:TryUseXpUpgradePoint+1c

1E787FF1F2C: 00 00                 - add [rax],al
1E787FF1F2E: 00 00                 - add [rax],al
ResourceControllerTryUseXpUpgradePointProc: 55                    - push rbp
ResourceController:TryUseXpUpgradePoint+1: 48 8B EC              - mov rbp,rsp
ResourceController:TryUseXpUpgradePoint+4: 48 83 EC 30           - sub rsp,30
ResourceController:TryUseXpUpgradePoint+8: 48 89 75 F8           - mov [rbp-08],rsi
ResourceController:TryUseXpUpgradePoint+c: 48 8B F1              - mov rsi,rcx
ResourceController:TryUseXpUpgradePoint+f: 48 8B 86 08 01 00 00  - mov rax,[rsi+00000108]
ResourceController:TryUseXpUpgradePoint+16: 48 8B C8              - mov rcx,rax
ResourceController:TryUseXpUpgradePoint+19: 83 39 00              - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
ResourceController:TryUseXpUpgradePoint+1c: 48 63 40 30           - movsxd  rax,dword ptr [rax+30]
// ---------- DONE INJECTING  ----------
ResourceController:TryUseXpUpgradePoint+20: 85 C0                 - test eax,eax
ResourceController:TryUseXpUpgradePoint+22: 7E 36                 - jle ResourceController:TryUseXpUpgradePoint+5a
ResourceController:TryUseXpUpgradePoint+24: 48 8B 8E 08 01 00 00  - mov rcx,[rsi+00000108]
ResourceController:TryUseXpUpgradePoint+2b: 48 8B C1              - mov rax,rcx
ResourceController:TryUseXpUpgradePoint+2e: 83 39 00              - cmp dword ptr [rcx],00
ResourceController:TryUseXpUpgradePoint+31: 48 63 51 30           - movsxd  rdx,dword ptr [rcx+30]
ResourceController:TryUseXpUpgradePoint+35: 89 55 F0              - mov [rbp-10],edx
ResourceController:TryUseXpUpgradePoint+38: FF CA                 - dec edx
ResourceController:TryUseXpUpgradePoint+3a: 48 8B C8              - mov rcx,rax
ResourceController:TryUseXpUpgradePoint+3d: 83 38 00              - cmp dword ptr [rax],00
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>16</ID>
          <Description>"Battle: inf. army count (counter type: mercenary, mine, missile...etc)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author : bbfox @ https://opencheattables.org
}
[ENABLE]

//aobscan(INJECT_ADD_ARMY_COUNT,89 48 14 E9 4A 00 00 00) // should be unique
aobscanregion(INJECT_ADD_ARMY_COUNT,HotbarUseCountControllerAddUseCountProc+a0,HotbarUseCountControllerAddUseCountProc+1a0,89 48 14 E9 4A 00 00 00) // should be unique


alloc(newmem,$1000,INJECT_ADD_ARMY_COUNT)

label(code)
label(return)

newmem:
  mov ecx, 0

code:
  mov [rax+14],ecx
  reassemble(INJECT_ADD_ARMY_COUNT+3)
  //jmp HotbarUseCountController:AddUseCount+103
  jmp return

INJECT_ADD_ARMY_COUNT:
  jmp newmem
  nop 3
return:
registersymbol(INJECT_ADD_ARMY_COUNT)

[DISABLE]

INJECT_ADD_ARMY_COUNT:
  db 89 48 14 E9 4A 00 00 00

unregistersymbol(INJECT_ADD_ARMY_COUNT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: HotbarUseCountController:AddUseCount+b1

HotbarUseCountController:AddUseCount+8b: 89 78 10                       - mov [rax+10],edi
HotbarUseCountController:AddUseCount+8e: 49 8B 46 28                    - mov rax,[r14+28]
HotbarUseCountController:AddUseCount+92: 48 8B C8                       - mov rcx,rax
HotbarUseCountController:AddUseCount+95: 49 8B D4                       - mov rdx,r12
HotbarUseCountController:AddUseCount+98: 83 38 00                       - cmp dword ptr [rax],00
HotbarUseCountController:AddUseCount+9b: 66 66 90                       - nop 3
HotbarUseCountController:AddUseCount+9e: 49 BB 60 7E 76 71 8C 01 00 00  - mov r11,System.Collections.Generic.Dictionary`2[TKey_REF,TValue_REF]:get_Item
HotbarUseCountController:AddUseCount+a8: 41 FF D3                       - call r11
HotbarUseCountController:AddUseCount+ab: 48 63 48 14                    - movsxd  rcx,dword ptr [rax+14]
HotbarUseCountController:AddUseCount+af: 03 CE                          - add ecx,esi
// ---------- INJECTING HERE ----------
HotbarUseCountController:AddUseCount+b1: 89 48 14                       - mov [rax+14],ecx
// ---------- DONE INJECTING  ----------
HotbarUseCountController:AddUseCount+b4: E9 4A 00 00 00                 - jmp HotbarUseCountController:AddUseCount+103
HotbarUseCountController:AddUseCount+b9: 48 B9 D0 D2 30 12 8F 01 00 00  - mov rcx,0000018F1230D2D0
HotbarUseCountController:AddUseCount+c3: 66 66 90                       - nop 3
HotbarUseCountController:AddUseCount+c6: 49 BB 10 2E 28 77 8D 01 00 00  - mov r11,System.Object:__icall_wrapper_ves_icall_object_new_specific
HotbarUseCountController:AddUseCount+d0: 41 FF D3                       - call r11
HotbarUseCountController:AddUseCount+d3: 4C 8B C0                       - mov r8,rax
HotbarUseCountController:AddUseCount+d6: 41 89 78 10                    - mov [r8+10],edi
HotbarUseCountController:AddUseCount+da: 41 89 70 14                    - mov [r8+14],esi
HotbarUseCountController:AddUseCount+de: 4C 89 45 D0                    - mov [rbp-30],r8
HotbarUseCountController:AddUseCount+e2: 49 8B 46 28                    - mov rax,[r14+28]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"Battle: inf. army used count (limit type)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author :
}

[ENABLE]

//aobscan(INJECT_ARMY_SET_USE_COUNT,41 FF D3 89 70 14) // should be unique
aobscanregion(INJECT_ARMY_SET_USE_COUNT,HotbarUseCountControllerSetUseCountProc+9e,HotbarUseCountControllerSetUseCountProc+19e,41 FF D3 89 70 14) // should be unique
alloc(newmem,$1000,INJECT_ARMY_SET_USE_COUNT)

label(code)
label(return)

newmem:

code:
  call r11

  mov esi, 0

  mov [rax+14],esi
  jmp return

INJECT_ARMY_SET_USE_COUNT:
  jmp newmem
  nop
return:
registersymbol(INJECT_ARMY_SET_USE_COUNT)

[DISABLE]

INJECT_ARMY_SET_USE_COUNT:
  db 41 FF D3 89 70 14

unregistersymbol(INJECT_ARMY_SET_USE_COUNT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: HotbarUseCountController:SetUseCount+a8

HotbarUseCountController:SetUseCount+7d: 90                             - nop 
HotbarUseCountController:SetUseCount+7e: 49 BB 60 7E 76 71 8C 01 00 00  - mov r11,System.Collections.Generic.Dictionary`2[TKey_REF,TValue_REF]:get_Item
HotbarUseCountController:SetUseCount+88: 41 FF D3                       - call r11
HotbarUseCountController:SetUseCount+8b: 89 78 10                       - mov [rax+10],edi
HotbarUseCountController:SetUseCount+8e: 49 8B 46 28                    - mov rax,[r14+28]
HotbarUseCountController:SetUseCount+92: 48 8B C8                       - mov rcx,rax
HotbarUseCountController:SetUseCount+95: 49 8B D4                       - mov rdx,r12
HotbarUseCountController:SetUseCount+98: 83 38 00                       - cmp dword ptr [rax],00
HotbarUseCountController:SetUseCount+9b: 66 66 90                       - nop 3
HotbarUseCountController:SetUseCount+9e: 49 BB 60 7E 76 71 8C 01 00 00  - mov r11,System.Collections.Generic.Dictionary`2[TKey_REF,TValue_REF]:get_Item
// ---------- INJECTING HERE ----------
HotbarUseCountController:SetUseCount+a8: 41 FF D3                       - call r11
// ---------- DONE INJECTING  ----------
HotbarUseCountController:SetUseCount+ab: 89 70 14                       - mov [rax+14],esi
HotbarUseCountController:SetUseCount+ae: E9 48 00 00 00                 - jmp HotbarUseCountController:SetUseCount+fb
HotbarUseCountController:SetUseCount+b3: 48 B9 D0 D2 30 12 8F 01 00 00  - mov rcx,0000018F1230D2D0
HotbarUseCountController:SetUseCount+bd: 90                             - nop 
HotbarUseCountController:SetUseCount+be: 49 BB 10 2E 28 77 8D 01 00 00  - mov r11,System.Object:__icall_wrapper_ves_icall_object_new_specific
HotbarUseCountController:SetUseCount+c8: 41 FF D3                       - call r11
HotbarUseCountController:SetUseCount+cb: 4C 8B C0                       - mov r8,rax
HotbarUseCountController:SetUseCount+ce: 41 89 78 10                    - mov [r8+10],edi
HotbarUseCountController:SetUseCount+d2: 41 89 70 14                    - mov [r8+14],esi
HotbarUseCountController:SetUseCount+d6: 4C 89 45 D0                    - mov [rbp-30],r8
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>5</ID>
          <Description>"Prepare: Cash 1000"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author : bbfox @ https://opencheattables.org

}

[ENABLE]

//aobscan(INJECT_WAR_PREPARE_CASH,48 63 40 30 41 3B C7 7C) // should be unique
aobscanregion(INJECT_WAR_PREPARE_CASH,ResourceControllerReturnCanPurchaseProc+40,ResourceControllerReturnCanPurchaseProc+5A,48 63 40 30 41 3B C7 7C) // should be unique

alloc(newmem,$1000,INJECT_WAR_PREPARE_CASH)

label(code)
label(return)

newmem:
  mov dword ptr [rax+30], #1000

code:
  movsxd rax,dword ptr [rax+30]
  cmp eax,r15d
  jmp return

INJECT_WAR_PREPARE_CASH:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_WAR_PREPARE_CASH)

[DISABLE]

INJECT_WAR_PREPARE_CASH:
  db 48 63 40 30 41 3B C7

unregistersymbol(INJECT_WAR_PREPARE_CASH)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ResourceController:ReturnCanPurchase+47

ResourceController:ReturnCanPurchase+21: 49 8B F9              - mov rdi,r9
ResourceController:ReturnCanPurchase+24: 49 8B 85 B0 00 00 00  - mov rax,[r13+000000B0]
ResourceController:ReturnCanPurchase+2b: 48 8B C8              - mov rcx,rax
ResourceController:ReturnCanPurchase+2e: 83 39 00              - cmp dword ptr [rcx],00
ResourceController:ReturnCanPurchase+31: 48 63 40 30           - movsxd  rax,dword ptr [rax+30]
ResourceController:ReturnCanPurchase+35: 41 3B C6              - cmp eax,r14d
ResourceController:ReturnCanPurchase+38: 7C 35                 - jl ResourceController:ReturnCanPurchase+6f
ResourceController:ReturnCanPurchase+3a: 49 8B 85 E0 00 00 00  - mov rax,[r13+000000E0]
ResourceController:ReturnCanPurchase+41: 48 8B C8              - mov rcx,rax
ResourceController:ReturnCanPurchase+44: 83 39 00              - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
ResourceController:ReturnCanPurchase+47: 48 63 40 30           - movsxd  rax,dword ptr [rax+30]
// ---------- DONE INJECTING  ----------
ResourceController:ReturnCanPurchase+4b: 41 3B C7              - cmp eax,r15d
ResourceController:ReturnCanPurchase+4e: 7C 1F                 - jl ResourceController:ReturnCanPurchase+6f
ResourceController:ReturnCanPurchase+50: 49 8B 85 E8 00 00 00  - mov rax,[r13+000000E8]
ResourceController:ReturnCanPurchase+57: 48 8B C8              - mov rcx,rax
ResourceController:ReturnCanPurchase+5a: 83 39 00              - cmp dword ptr [rcx],00
ResourceController:ReturnCanPurchase+5d: 48 63 40 30           - movsxd  rax,dword ptr [rax+30]
ResourceController:ReturnCanPurchase+61: 3B C7                 - cmp eax,edi
ResourceController:ReturnCanPurchase+63: 7C 0A                 - jl ResourceController:ReturnCanPurchase+6f
ResourceController:ReturnCanPurchase+65: B8 01 00 00 00        - mov eax,00000001
ResourceController:ReturnCanPurchase+6a: E9 9E 00 00 00        - jmp ResourceController:ReturnCanPurchase+10d
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>7</ID>
          <Description>"Prepare: Ticket 100"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author : bbfox @ https://opencheattables.org

}

[ENABLE]

//aobscan(INJECT_WAR_PREPARE_SET_TICKET,48 63 40 30 3B C7 7C) // should be unique
aobscanregion(INJECT_WAR_PREPARE_SET_TICKET,ResourceControllerReturnCanPurchaseProc+5d,ResourceControllerReturnCanPurchaseProc+8d,48 63 40 30 3B C7 7C) // should be unique

alloc(newmem,$1000,INJECT_WAR_PREPARE_SET_TICKET)

label(code)
label(return)

newmem:
  mov dword ptr [rax+30], #100

code:
  movsxd  rax,dword ptr [rax+30]
  cmp eax,edi
  jmp return

INJECT_WAR_PREPARE_SET_TICKET:
  jmp newmem
  nop
return:
registersymbol(INJECT_WAR_PREPARE_SET_TICKET)

[DISABLE]

INJECT_WAR_PREPARE_SET_TICKET:
  db 48 63 40 30 3B C7

unregistersymbol(INJECT_WAR_PREPARE_SET_TICKET)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: ResourceController:ReturnCanPurchase+5d

ResourceController:ReturnCanPurchase+38: 7C 35                 - jl ResourceController:ReturnCanPurchase+6f
ResourceController:ReturnCanPurchase+3a: 49 8B 85 E0 00 00 00  - mov rax,[r13+000000E0]
ResourceController:ReturnCanPurchase+41: 48 8B C8              - mov rcx,rax
ResourceController:ReturnCanPurchase+44: 83 39 00              - cmp dword ptr [rcx],00
INJECT_WAR_PREPARE_CASH: E9 D4 70 01 00        - jmp 1E7CD040000
ResourceController:ReturnCanPurchase+4c: 66 90                 - nop 2
ResourceController:ReturnCanPurchase+4e: 7C 1F                 - jl ResourceController:ReturnCanPurchase+6f
ResourceController:ReturnCanPurchase+50: 49 8B 85 E8 00 00 00  - mov rax,[r13+000000E8]
ResourceController:ReturnCanPurchase+57: 48 8B C8              - mov rcx,rax
ResourceController:ReturnCanPurchase+5a: 83 39 00              - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
ResourceController:ReturnCanPurchase+5d: 48 63 40 30           - movsxd  rax,dword ptr [rax+30]
// ---------- DONE INJECTING  ----------
ResourceController:ReturnCanPurchase+61: 3B C7                 - cmp eax,edi
ResourceController:ReturnCanPurchase+63: 7C 0A                 - jl ResourceController:ReturnCanPurchase+6f
ResourceController:ReturnCanPurchase+65: B8 01 00 00 00        - mov eax,00000001
ResourceController:ReturnCanPurchase+6a: E9 9E 00 00 00        - jmp ResourceController:ReturnCanPurchase+10d
ResourceController:ReturnCanPurchase+6f: 0F B6 45 30           - movzx eax,byte ptr [rbp+30]
ResourceController:ReturnCanPurchase+73: 85 C0                 - test eax,eax
ResourceController:ReturnCanPurchase+75: 0F 84 90 00 00 00     - je ResourceController:ReturnCanPurchase+10b
ResourceController:ReturnCanPurchase+7b: 49 8B 85 B0 00 00 00  - mov rax,[r13+000000B0]
ResourceController:ReturnCanPurchase+82: 48 8B C8              - mov rcx,rax
ResourceController:ReturnCanPurchase+85: 83 39 00              - cmp dword ptr [rcx],00
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>13</ID>
          <Description>"Endless Attack: TimeScore"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Warpips.exe
  Version: 
  Date   : 2022-04-24
  Author : bbfox @ https://opencheattables.org

}

[ENABLE]

//aobscan(INJECT_TIMESCORE_MULTI,48 63 51 28 83 C2 0A 48 8B C8 83 38 00 49 BB A0) // should be unique
aobscanregion(INJECT_TIMESCORE_MULTI,EndlessModeDirectorAddTimeScoreProc+13,EndlessModeDirectorAddTimeScoreProc+53,48 63 51 28 83 C2 0A 48 8B C8) // should be unique
alloc(newmem,$1000,INJECT_TIMESCORE_MULTI)

label(code)
label(return)

newmem:
  push rbx
  mov ebx, [rcx+28]
  add ebx, #1000
  mov [rcx+28], ebx
  pop rbx

code:
  movsxd rdx,dword ptr [rcx+28]
  add edx,0A
  jmp return

INJECT_TIMESCORE_MULTI:
  jmp newmem
  nop 2
return:
registersymbol(INJECT_TIMESCORE_MULTI)

[DISABLE]

INJECT_TIMESCORE_MULTI:
  db 48 63 51 28 83 C2 0A

unregistersymbol(INJECT_TIMESCORE_MULTI)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: EndlessModeDirector:AddTimeScore+19

1BDCE24426C: 00 00                          - add [rax],al
1BDCE24426E: 00 00                          - add [rax],al
EndlessModeDirectorAddTimeScoreProc: 55                             - push rbp
EndlessModeDirector:AddTimeScore+1: 48 8B EC                       - mov rbp,rsp
EndlessModeDirector:AddTimeScore+4: 48 83 EC 30                    - sub rsp,30
EndlessModeDirector:AddTimeScore+8: 48 89 4D F8                    - mov [rbp-08],rcx
EndlessModeDirector:AddTimeScore+c: 48 8B C1                       - mov rax,rcx
EndlessModeDirector:AddTimeScore+f: 48 8B 48 28                    - mov rcx,[rax+28]
EndlessModeDirector:AddTimeScore+13: 48 8B C1                       - mov rax,rcx
EndlessModeDirector:AddTimeScore+16: 83 39 00                       - cmp dword ptr [rcx],00
// ---------- INJECTING HERE ----------
EndlessModeDirector:AddTimeScore+19: 48 63 51 28                    - movsxd  rdx,dword ptr [rcx+28]
// ---------- DONE INJECTING  ----------
EndlessModeDirector:AddTimeScore+1d: 83 C2 0A                       - add edx,0A
EndlessModeDirector:AddTimeScore+20: 48 8B C8                       - mov rcx,rax
EndlessModeDirector:AddTimeScore+23: 83 38 00                       - cmp dword ptr [rax],00
EndlessModeDirector:AddTimeScore+26: 49 BB A0 C8 2B 43 BB 01 00 00  - mov r11,IntDynamicStat:set_Value
EndlessModeDirector:AddTimeScore+30: 41 FF D3                       - call r11
EndlessModeDirector:AddTimeScore+33: 48 8D 65 00                    - lea rsp,[rbp+00]
EndlessModeDirector:AddTimeScore+37: 5D                             - pop rbp
EndlessModeDirector:AddTimeScore+38: C3                             - ret 
1BDCE2442A9: 00 00                          - add [rax],al
1BDCE2442AB: 00 00                          - add [rax],al
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
