<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>13</ID>
      <Description>"Enable table"</Description>
      <Options moHideChildren="1"/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
mono_initialize()
LaunchMonoDataCollector()
{$asm}
[DISABLE]
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"Infinite Health"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanregion(InfHealth,PlayerControls.UserCode_RpcDamage,PlayerControls.UserCode_RpcDamage+10,40 53 48 83 EC 40)
registersymbol(InfHealth)

InfHealth:
  ret

[DISABLE]
InfHealth:
  db 40

unregistersymbol(InfHealth)

{
// ORIGINAL CODE - INJECTION POINT: PlayerControls.UserCode_RpcDamage

GameAssembly.dll+2FFCB3: E8 78 B5 51 00        - call GameAssembly.dll+81B230
GameAssembly.dll+2FFCB8: 0F 28 74 24 40        - movaps xmm6,[rsp+40]
GameAssembly.dll+2FFCBD: 48 8B 74 24 68        - mov rsi,[rsp+68]
GameAssembly.dll+2FFCC2: 48 83 C4 50           - add rsp,50
GameAssembly.dll+2FFCC6: 5F                    - pop rdi
GameAssembly.dll+2FFCC7: C3                    - ret
GameAssembly.dll+2FFCC8: E8 C3 7C DB FF        - call GameAssembly.dll+B7990
GameAssembly.dll+2FFCCD: CC                    - int 3
GameAssembly.dll+2FFCCE: CC                    - int 3
GameAssembly.dll+2FFCCF: CC                    - int 3
// ---------- INJECTING HERE ----------
PlayerControls.UserCode_RpcDamage: 40 53                 - push rbx
// ---------- DONE INJECTING  ----------
GameAssembly.dll+2FFCD2: 48 83 EC 40           - sub rsp,40
GameAssembly.dll+2FFCD6: 80 3D 82 CF 27 01 00  - cmp byte ptr [GameAssembly.dll+157CC5F],00
GameAssembly.dll+2FFCDD: 48 8B D9              - mov rbx,rcx
GameAssembly.dll+2FFCE0: 0F 29 74 24 30        - movaps [rsp+30],xmm6
GameAssembly.dll+2FFCE5: 0F 28 F1              - movaps xmm6,xmm1
GameAssembly.dll+2FFCE8: 75 12                 - jne GameAssembly.dll+2FFCFC
GameAssembly.dll+2FFCEA: 8B 0D F4 2C DE 00     - mov ecx,[GameAssembly.dll+10E29E4]
GameAssembly.dll+2FFCF0: E8 2B 7B DB FF        - call GameAssembly.dll+B7820
GameAssembly.dll+2FFCF5: C6 05 63 CF 27 01 01  - mov byte ptr [GameAssembly.dll+157CC5F],01
GameAssembly.dll+2FFCFC: 80 BB CC 03 00 00 00  - cmp byte ptr [rbx+000003CC],00
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>8</ID>
          <Description>"Infinite Combo"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{ Game   : Kings of Hell.exe
  Version: 
  Date   : 2026-07-04
  Author : �����

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanregion(InfCombo,GameController.set_NetworkGUIComboTimerPlayer01,GameController.set_NetworkGUIComboTimerPlayer01+49,0F 28 CE 48 8B CB) // should be unique
alloc(newmem,$1000,InfCombo)

newmem:
  movaps xmm1,xmm6
  mov rcx,rbx
  jmp GameController.set_NetworkGUIComboTimerPlayer01+49

InfCombo:
  jmp newmem
  nop
registersymbol(InfCombo)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
InfCombo:
  db 0F 28 CE 48 8B CB

unregistersymbol(InfCombo)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+36F1FE

GameAssembly.dll+36F1CA: 80 3D 81 DC 20 01 00           - cmp byte ptr [GameAssembly.dll+157CE52],00
GameAssembly.dll+36F1D1: 48 8B D9                       - mov rbx,rcx
GameAssembly.dll+36F1D4: 0F 29 74 24 30                 - movaps [rsp+30],xmm6
GameAssembly.dll+36F1D9: 0F 28 F1                       - movaps xmm6,xmm1
GameAssembly.dll+36F1DC: 75 12                          - jne GameAssembly.dll+36F1F0
GameAssembly.dll+36F1DE: 8B 0D C0 0B DB 00              - mov ecx,[GameAssembly.dll+111FDA4]
GameAssembly.dll+36F1E4: E8 37 86 D4 FF                 - call GameAssembly.dll+B7820
GameAssembly.dll+36F1E9: C6 05 62 DC 20 01 01           - mov byte ptr [GameAssembly.dll+157CE52],01
GameAssembly.dll+36F1F0: 4C 8B 0D 39 6C 24 01           - mov r9,[GameAssembly.dll+15B5E30]
GameAssembly.dll+36F1F7: 4C 8D 83 9C 01 00 00           - lea r8,[rbx+0000019C]
// ---------- INJECTING HERE ----------
GameAssembly.dll+36F1FE: 0F 28 CE                       - movaps xmm1,xmm6
// ---------- DONE INJECTING  ----------
GameAssembly.dll+36F201: 48 8B CB                       - mov rcx,rbx
GameAssembly.dll+36F204: E8 47 4E 91 00                 - call GameAssembly.dll+C84050
GameAssembly.dll+36F209: 84 C0                          - test al,al
GameAssembly.dll+36F20B: 75 28                          - jne GameAssembly.dll+36F235
GameAssembly.dll+36F20D: 48 8B 05 44 1B 22 01           - mov rax,[GameAssembly.dll+1590D58]
GameAssembly.dll+36F214: 4C 8D 83 9C 01 00 00           - lea r8,[rbx+0000019C]
GameAssembly.dll+36F21B: 49 B9 00 00 00 00 00 08 00 00  - mov r9,0000080000000000
GameAssembly.dll+36F225: 48 89 44 24 20                 - mov [rsp+20],rax
GameAssembly.dll+36F22A: 0F 28 CE                       - movaps xmm1,xmm6
GameAssembly.dll+36F22D: 48 8B CB                       - mov rcx,rbx
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>12</ID>
          <Description>"Infinite Continues"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanregion(InfContinue,GameController.set_NetworkPlayerCredits+5F,GameController.set_NetworkPlayerCredits+6E,8B D7 48 8B CB)
registersymbol(InfContinue)
alloc(newmem,$1000,InfContinue)

newmem:
  mov edx,edi
  mov rcx,rbx
  jmp GameController.set_NetworkPlayerCredits+6E

InfContinue:
  jmp newmem

[DISABLE]
InfContinue:
  db 8B D7 48 8B CB

unregistersymbol(InfContinue)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+370664

GameAssembly.dll+370636: 4C 8D 83 44 01 00 00  - lea r8,[rbx+00000144]
GameAssembly.dll+37063D: 8B D7                 - mov edx,edi
GameAssembly.dll+37063F: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+370642: E8 69 39 91 00        - call GameAssembly.dll+C83FB0
GameAssembly.dll+370647: 84 C0                 - test al,al
GameAssembly.dll+370649: 75 23                 - jne GameAssembly.dll+37066E
GameAssembly.dll+37064B: 48 8B 05 16 07 22 01  - mov rax,[GameAssembly.dll+1590D68]
GameAssembly.dll+370652: 4C 8D 83 44 01 00 00  - lea r8,[rbx+00000144]
GameAssembly.dll+370659: 41 B9 00 00 00 10     - mov r9d,10000000
GameAssembly.dll+37065F: 48 89 44 24 20        - mov [rsp+20],rax
// ---------- INJECTING HERE ----------
GameAssembly.dll+370664: 8B D7                 - mov edx,edi
// ---------- DONE INJECTING  ----------
GameAssembly.dll+370666: 48 8B CB              - mov rcx,rbx
GameAssembly.dll+370669: E8 32 48 4B 00        - call GameAssembly.dll+824EA0
GameAssembly.dll+37066E: 48 8B 5C 24 40        - mov rbx,[rsp+40]
GameAssembly.dll+370673: 48 8B 74 24 48        - mov rsi,[rsp+48]
GameAssembly.dll+370678: 48 83 C4 30           - add rsp,30
GameAssembly.dll+37067C: 5F                    - pop rdi
GameAssembly.dll+37067D: C3                    - ret 
GameAssembly.dll+37067E: CC                    - int 3 
GameAssembly.dll+37067F: CC                    - int 3 
GameController.set_NetworkPlayerScorePlacement: 48 89 5C 24 08        - mov [rsp+08],rbx
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry>
      <Description>Change of call GameAssembly.dll+C84050</Description>
      <AddressString>GameAssembly.dll+36F204</AddressString>
      <Before>
        <Byte>28</Byte>
        <Byte>CE</Byte>
        <Byte>48</Byte>
        <Byte>8B</Byte>
        <Byte>CB</Byte>
      </Before>
      <Actual>
        <Byte>E8</Byte>
        <Byte>47</Byte>
        <Byte>4E</Byte>
        <Byte>91</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>84</Byte>
        <Byte>C0</Byte>
        <Byte>75</Byte>
        <Byte>28</Byte>
        <Byte>48</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols/>
</CheatTable>
