<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"unlimited ammo"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>define(address,flanne.Ammo:UseAmmo+17)
define(bytes,2B 45 F0 89 47 38)

[ENABLE]
address:
  nop
  nop
  nop
return:

[DISABLE]

address:
  db bytes
  // sub eax,[rbp-10]


dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: flanne.Ammo:UseAmmo+17

18ECE43F40A: 00 00                          - add [rax],al
18ECE43F40C: 00 00                          - add [rax],al
18ECE43F40E: 00 00                          - add [rax],al
flanne.Ammo:UseAmmo: 55                             - push rbp
flanne.Ammo:UseAmmo+1: 48 8B EC                       - mov rbp,rsp
flanne.Ammo:UseAmmo+4: 48 83 EC 40                    - sub rsp,40
flanne.Ammo:UseAmmo+8: 48 89 7D F8                    - mov [rbp-08],rdi
flanne.Ammo:UseAmmo+c: 48 8B F9                       - mov rdi,rcx
flanne.Ammo:UseAmmo+f: 48 89 55 F0                    - mov [rbp-10],rdx
flanne.Ammo:UseAmmo+13: 48 63 47 38                    - movsxd  rax,dword ptr [rdi+38]
// ---------- INJECTING HERE ----------
flanne.Ammo:UseAmmo+17: 2B 45 F0                       - sub eax,[rbp-10]
// ---------- DONE INJECTING  ----------
flanne.Ammo:UseAmmo+1a: 89 47 38                       - mov [rdi+38],eax
flanne.Ammo:UseAmmo+1d: 48 89 45 E8                    - mov [rbp-18],rax
flanne.Ammo:UseAmmo+21: 48 8B 47 18                    - mov rax,[rdi+18]
flanne.Ammo:UseAmmo+25: 48 8B C8                       - mov rcx,rax
flanne.Ammo:UseAmmo+28: 83 38 00                       - cmp dword ptr [rax],00
flanne.Ammo:UseAmmo+2b: 66 66 90                       - nop 3
flanne.Ammo:UseAmmo+2e: 49 BB C0 E0 20 CE 8E 01 00 00  - mov r11,flanne.Gun:get_maxAmmo
flanne.Ammo:UseAmmo+38: 41 FF D3                       - call r11
flanne.Ammo:UseAmmo+3b: 4C 8B C0                       - mov r8,rax
flanne.Ammo:UseAmmo+3e: 48 8B 4D E8                    - mov rcx,[rbp-18]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>11</ID>
      <Description>"5x the XP"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>define(address,flanne.Player.PlayerXP:GainXP+17)
define(bytes,03 45 E8 89 47 34)

[ENABLE]
assert(address,bytes)
alloc(newmem,$100,flanne.Player.PlayerXP:GainXP+17)

label(code)
label(return)

newmem:
  add eax,[rbp-18]
  add eax,[rbp-18]
  add eax,[rbp-18]
  add eax,[rbp-18]

code:
  add eax,[rbp-18]
  mov [rdi+34],eax
  jmp return

address:
  jmp newmem
  nop
return:

[DISABLE]

address:
  db bytes
  // add eax,[rbp-18]
  // mov [rdi+34],eax

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: flanne.Player.PlayerXP:GainXP+17

18ECE46E6FA: 00 00                          - add [rax],al
18ECE46E6FC: 00 00                          - add [rax],al
18ECE46E6FE: 00 00                          - add [rax],al
flanne.Player.PlayerXP:GainXP: 55                             - push rbp
flanne.Player.PlayerXP:GainXP+1: 48 8B EC                       - mov rbp,rsp
flanne.Player.PlayerXP:GainXP+4: 48 83 EC 50                    - sub rsp,50
flanne.Player.PlayerXP:GainXP+8: 48 89 7D F8                    - mov [rbp-08],rdi
flanne.Player.PlayerXP:GainXP+c: 48 8B F9                       - mov rdi,rcx
flanne.Player.PlayerXP:GainXP+f: 48 89 55 E8                    - mov [rbp-18],rdx
flanne.Player.PlayerXP:GainXP+13: 48 63 47 34                    - movsxd  rax,dword ptr [rdi+34]
// ---------- INJECTING HERE ----------
flanne.Player.PlayerXP:GainXP+17: 03 45 E8                       - add eax,[rbp-18]
// ---------- DONE INJECTING  ----------
flanne.Player.PlayerXP:GainXP+1a: 89 47 34                       - mov [rdi+34],eax
flanne.Player.PlayerXP:GainXP+1d: 48 89 45 E0                    - mov [rbp-20],rax
flanne.Player.PlayerXP:GainXP+21: 48 8B CF                       - mov rcx,rdi
flanne.Player.PlayerXP:GainXP+24: 66 90                          - nop 2
flanne.Player.PlayerXP:GainXP+26: 49 BB 30 67 20 CE 8E 01 00 00  - mov r11,flanne.Player.PlayerXP:get_xpToLevel
flanne.Player.PlayerXP:GainXP+30: 41 FF D3                       - call r11
flanne.Player.PlayerXP:GainXP+33: 48 8B C8                       - mov rcx,rax
flanne.Player.PlayerXP:GainXP+36: 48 8B 45 E0                    - mov rax,[rbp-20]
flanne.Player.PlayerXP:GainXP+3a: 3B C1                          - cmp eax,ecx
flanne.Player.PlayerXP:GainXP+3c: 0F 8E 89 00 00 00              - jng flanne.Player.PlayerXP:GainXP+cb
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"No Collision"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>define(address,flanne.Player.PlayerCollider:OnCollisionEnter2D)
define(bytes,55)

[ENABLE]
address:
  ret
return:

[DISABLE]

address:
  db bytes
  // push rbp

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: flanne.Player.PlayerCollider:OnCollisionEnter2D

UnityEngine.Rigidbody2D:MovePosition_Injected+128: 41 FF D3                       - call r11
18ECE4050CB: 00 00                          - add [rax],al
18ECE4050CD: 00 00                          - add [rax],al
18ECE4050CF: 00 01                          - add [rcx],al
18ECE4050D1: 04 02                          - add al,02
18ECE4050D3: 05 04 03 01 50                 - add eax,50010304
18ECE4050D8: 00 00                          - add [rax],al
18ECE4050DA: 00 00                          - add [rax],al
18ECE4050DC: 00 00                          - add [rax],al
18ECE4050DE: 00 00                          - add [rax],al
// ---------- INJECTING HERE ----------
flanne.Player.PlayerCollider:OnCollisionEnter2D: 55                             - push rbp
// ---------- DONE INJECTING  ----------
flanne.Player.PlayerCollider:OnCollisionEnter2D+1: 48 8B EC                       - mov rbp,rsp
flanne.Player.PlayerCollider:OnCollisionEnter2D+4: 48 81 EC 60 01 00 00           - sub rsp,00000160
flanne.Player.PlayerCollider:OnCollisionEnter2D+b: 48 89 75 F0                    - mov [rbp-10],rsi
flanne.Player.PlayerCollider:OnCollisionEnter2D+f: 48 89 7D F8                    - mov [rbp-08],rdi
flanne.Player.PlayerCollider:OnCollisionEnter2D+13: 48 8B F9                       - mov rdi,rcx
flanne.Player.PlayerCollider:OnCollisionEnter2D+16: 48 8B F2                       - mov rsi,rdx
flanne.Player.PlayerCollider:OnCollisionEnter2D+19: C7 85 D8 FE FF FF 00 00 00 00  - mov [rbp-00000128],00000000
flanne.Player.PlayerCollider:OnCollisionEnter2D+23: C7 85 DC FE FF FF 00 00 00 00  - mov [rbp-00000124],00000000
flanne.Player.PlayerCollider:OnCollisionEnter2D+2d: C7 85 E0 FE FF FF 00 00 00 00  - mov [rbp-00000120],00000000
flanne.Player.PlayerCollider:OnCollisionEnter2D+37: C7 85 E4 FE FF FF 00 00 00 00  - mov [rbp-0000011C],00000000
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>13</ID>
          <Description>"One-Hit-Kills"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>define(address,Health:HPChange+63)
define(bytes,89 47 48 48 8B 47 18)

[ENABLE]

assert(address,bytes)
alloc(newmem,$100,Health:HPChange+63)

label(code)
label(return)

newmem:
  xor eax,eax
code:
  mov [rdi+48],eax
  mov rax,[rdi+18]
  jmp return

address:
  jmp newmem
  nop 2
return:

[DISABLE]

address:
  db bytes
  // mov [rdi+48],eax
  // mov rax,[rdi+18]

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Health:HPChange+63

Health:HPChange+3b: E9 C3 00 00 00                 - jmp Health:HPChange+103
Health:HPChange+40: 48 63 47 48                    - movsxd  rax,dword ptr [rdi+48]
Health:HPChange+44: 48 89 45 E0                    - mov [rbp-20],rax
Health:HPChange+48: 48 8B C8                       - mov rcx,rax
Health:HPChange+4b: 03 CE                          - add ecx,esi
Health:HPChange+4d: 4C 63 47 40                    - movsxd  r8,dword ptr [rdi+40]
Health:HPChange+51: 33 D2                          - xor edx,edx
Health:HPChange+53: 66 66 90                       - nop 3
Health:HPChange+56: 49 BB 00 1D FE CD 8E 01 00 00  - mov r11,UnityEngine.Mathf:Clamp
Health:HPChange+60: 41 FF D3                       - call r11
// ---------- INJECTING HERE ----------
Health:HPChange+63: 89 47 48                       - mov [rdi+48],eax
// ---------- DONE INJECTING  ----------
Health:HPChange+66: 48 8B 47 18                    - mov rax,[rdi+18]
Health:HPChange+6a: 48 63 57 48                    - movsxd  rdx,dword ptr [rdi+48]
Health:HPChange+6e: 48 8B C8                       - mov rcx,rax
Health:HPChange+71: 83 38 00                       - cmp dword ptr [rax],00
Health:HPChange+74: 66 90                          - nop 2
Health:HPChange+76: 49 BB 70 59 20 CE 8E 01 00 00  - mov r11,UnityEngine.Events.UnityEvent`1[System.Int32]:Invoke
Health:HPChange+80: 41 FF D3                       - call r11
Health:HPChange+83: 48 8B 45 E0                    - mov rax,[rbp-20]
Health:HPChange+87: 89 45 E8                       - mov [rbp-18],eax
Health:HPChange+8a: 85 F6                          - test esi,esi
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
