<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="52">
  <Files>
    <File Name="launchgame.dat" Encoding="Ascii85">i),74NXp62Pbo@Q%uCfvtw]l@wu+62%uOwhaRP{4fy5P?QcHje5[1%E72Jwai!(6QGE0Cek{}sR(}z)sr6uMRr$R@o</File>
  </Files>
  <CheatEntries>
    <CheatEntry>
      <ID>16</ID>
      <Description>"CPP Symbols Version"</Description>
      <Options moHideChildren="1"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"Infinite Health"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
// aobscanfunction(name, functionStart, aob)
aobscanfunction(infiniteHealth, bloodrayne.Rayne::SubtractHealth, F3 0F 5C C1 F3 0F 11 81 ** ** ** **)
assert(infiniteHealth, F3 0F 5C C1 F3 0F 11 81 ** ** ** **)

alloc(infiniteHealthBytes, 4)

registersymbol(infiniteHealth)
registersymbol(infiniteHealthBytes)

infiniteHealthBytes:
 readmem(infiniteHealth, 4)

infiniteHealth:
 db 90 90 90 90

[DISABLE]
infiniteHealth:
 readmem(infiniteHealthBytes, 4)

dealloc(*)
unregistersymbol(*)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Invincibility (Can't Get Hit) (W+V to toggle on/off)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
bloodrayne.Rayne::CanGetHit:
 mov al, 00 // Can Get Hit? No.

[DISABLE]
bloodrayne.Rayne::CanGetHit:
 mov al, 01 // Can Get Hit? Yes.
</AssemblerScript>
          <Hotkeys>
            <Hotkey>
              <Action>Toggle Activation</Action>
              <Keys>
                <Key>87</Key>
                <Key>86</Key>
              </Keys>
              <ID>0</ID>
            </Hotkey>
          </Hotkeys>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"Infinite Pistol Ammo"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanfunction(infinitePistolAmmo, bloodrayne.Rayne::UpdateState, FE 8E ** ** ** ** 48 8B CE)
assert(infinitePistolAmmo, FE 8E ** ** ** ** 48 8B CE)

alloc(infinitePistolAmmoBytes, 6)

registersymbol(infinitePistolAmmo)
registersymbol(infinitePistolAmmoBytes)

infinitePistolAmmoBytes:
 readmem(infinitePistolAmmo, 6)

infinitePistolAmmo:
 db 90 90 90 90 90 90

[DISABLE]
infinitePistolAmmo:
 readmem(infinitePistolAmmoBytes, 6)

dealloc(*)
unregistersymbol(*)
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>10</ID>
          <Description>"Big Jump (alt+space to toggle on/off)"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanfunction(bigJump, bloodrayne.Rayne::InitState, C7 40 04 ** ** ** ** 48 8B 07 0F 28 CE)
assert(bigJump, C7 40 04 ** ** ** ** 48 8B 07 0F 28 CE)

alloc(newmem, 32, bigJump)
alloc(bigJumpBytes, 7)
alloc(jumpBoost, 4)

label(exit)

registersymbol(bigJump)
registersymbol(bigJumpBytes)
registersymbol(jumpBoost)

bigJumpBytes:
 readmem(bigJump, 7)

jumpBoost:
 readmem(bigJump+3, 4)

newmem:
movss xmm1, [jumpBoost]
movss [rax+04], xmm1
jmp exit

bigJump:
 jmp newmem
 nop
 nop
 exit:

[DISABLE]
bigJump:
 readmem(bigJumpBytes, 7)

dealloc(*)
unregistersymbol(*)
</AssemblerScript>
          <Hotkeys>
            <Hotkey>
              <Action>Toggle Activation</Action>
              <Keys>
                <Key>18</Key>
                <Key>32</Key>
              </Keys>
              <ID>0</ID>
              <ActivateSound>Activate</ActivateSound>
              <DeactivateSound>Deactivate</DeactivateSound>
            </Hotkey>
          </Hotkeys>
          <CheatEntries>
            <CheatEntry>
              <ID>11</ID>
              <Description>"Jump Height"</Description>
              <DropDownList DisplayValueAsItem="1">115:Normal
143:x1.25
172:x1.50
201:x1.75
230:Double
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>jumpBoost</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"Moon Jump (Keep Space Pressed / ctrl+space to toggle on/off)"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$LUA}
if syntaxcheck then return end
--Hotkey Script
local timer = createTimer(nil)
timer.Interval = 100

timer.OnTimer = function(timer)
  if memrec.Active == false then
    timer.destroy()
    return
  end

  local moonJumpEnabled = getAddressSafe("moonJumpEnabled")
  if not moonJumpEnabled then return end

  if isKeyPressed(VK_SPACE) then
    writeByte(moonJumpEnabled, 1)
  else
    writeByte(moonJumpEnabled, 0)
  end
end
--]]
{$ASM}
aobscanfunction(moonJump, bloodrayne.wfControllerManager::Update, F3 0F 11 69 ** F3 0F 58 61 **)
assert(moonJump, F3 0F 11 69 ** F3 0F 58 61 **)

alloc(newmem, 64, moonJump)
alloc(moonJumpBytes, 5)
alloc(moonJumpEnabled, 1)
alloc(jumpSpeed, 4)

label(originalcode)
label(exit)

registersymbol(moonJump)
registersymbol(moonJumpBytes)
registersymbol(moonJumpEnabled)

moonJumpBytes:
 readmem(moonJump, 5)

moonJumpEnabled:
 db 0

jumpSpeed:
 dd (float)20.0

newmem:
 cmp byte ptr [moonJumpEnabled], 1
 jne originalcode

 comiss xmm5, [jumpSpeed]
 ja exit
 movss xmm5, [jumpSpeed]

originalcode:
 readmem(moonJump, 5)
 jmp exit

moonJump:
 jmp newmem
 exit:

[DISABLE]
moonJump:
 readmem(moonJumpBytes, 5)

dealloc(*)
unregistersymbol(*)
</AssemblerScript>
          <Hotkeys>
            <Hotkey>
              <Action>Toggle Activation</Action>
              <Keys>
                <Key>17</Key>
                <Key>32</Key>
              </Keys>
              <ID>0</ID>
              <ActivateSound>Activate</ActivateSound>
              <DeactivateSound>Deactivate</DeactivateSound>
            </Hotkey>
          </Hotkeys>
        </CheatEntry>
        <CheatEntry>
          <ID>15</ID>
          <Description>"Reinitialize Symbol Handler"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$LUA}
if syntaxcheck then return end

[ENABLE]
showMessage("Reinitializing Symbol Handler should take a few seconds")
reinitializeSymbolhandler()
[DISABLE]
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>17</ID>
      <Description>"No CPP Symbols Version"</Description>
      <Options moHideChildren="1"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>18</ID>
          <Description>"Infinite Health"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
// aobscanfunction(name, functionStart, aob)
aobscanmodule(infiniteHealth, $process, F3 0F 5C C1 F3 0F 11 81 ** ** ** ** 0F 28 C8)
assert(infiniteHealth, F3 0F 5C C1 F3 0F 11 81 ** ** ** ** 0F 28 C8)

alloc(infiniteHealthBytes, 4)

registersymbol(infiniteHealth)
registersymbol(infiniteHealthBytes)

infiniteHealthBytes:
 readmem(infiniteHealth, 4)

infiniteHealth:
 db 90 90 90 90

[DISABLE]
infiniteHealth:
 readmem(infiniteHealthBytes, 4)

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>19</ID>
          <Description>"Invincibility"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
$process+12310:
 mov al, 00 // Can Get Hit? No.

[DISABLE]
$process+12310:
 mov al, 01 // Can Get Hit? Yes.

</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"Infinite Pistol Ammo"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(infinitePistolAmmo, $process, FE 8E ** ** ** ** 48 8B CE E8 ** ** ** ** F3)
assert(infinitePistolAmmo, FE 8E ** ** ** ** 48 8B CE E8 ** ** ** ** F3)

alloc(infinitePistolAmmoBytes, 6)

registersymbol(infinitePistolAmmo)
registersymbol(infinitePistolAmmoBytes)

infinitePistolAmmoBytes:
 readmem(infinitePistolAmmo, 6)

infinitePistolAmmo:
 db 90 90 90 90 90 90

[DISABLE]
infinitePistolAmmo:
 readmem(infinitePistolAmmoBytes, 6)

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>21</ID>
          <Description>"Big Jump"</Description>
          <Options moHideChildren="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(bigJump, $process, C7 40 04 ** ** ** ** 48 8B 07 0F 28 CE)
assert(bigJump, C7 40 04 ** ** ** ** 48 8B 07 0F 28 CE)

alloc(newmem, 32, bigJump)
alloc(bigJumpBytes, 7)
alloc(jumpBoost, 4)

label(exit)

registersymbol(bigJump)
registersymbol(bigJumpBytes)
registersymbol(jumpBoost)

bigJumpBytes:
 readmem(bigJump, 7)

jumpBoost:
 readmem(bigJump+3, 4)

newmem:
movss xmm1, [jumpBoost]
movss [rax+04], xmm1
jmp exit

bigJump:
 jmp newmem
 nop
 nop
 exit:

[DISABLE]
bigJump:
 readmem(bigJumpBytes, 7)

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
          <CheatEntries>
            <CheatEntry>
              <ID>22</ID>
              <Description>"Jump Height"</Description>
              <DropDownList DisplayValueAsItem="1">115:Normal
143:x1.25
172:x1.50
201:x1.75
230:Double
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <VariableType>Float</VariableType>
              <Address>jumpBoost</Address>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>23</ID>
          <Description>"MoonJump"</Description>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
{$LUA}
if syntaxcheck then return end
--Hotkey Script
local timer = createTimer(nil)
timer.Interval = 100

timer.OnTimer = function(timer)
  if memrec.Active == false then
    timer.destroy()
    return
  end

  local moonJumpEnabled = getAddressSafe("moonJumpEnabled")
  if not moonJumpEnabled then return end

  if isKeyPressed(VK_SPACE) then
    writeByte(moonJumpEnabled, 1)
  else
    writeByte(moonJumpEnabled, 0)
  end
end
--]]
{$ASM}
aobscanmodule(moonJump, $process, F3 0F 11 69 ** F3 0F 58 61 **)
assert(moonJump, F3 0F 11 69 ** F3 0F 58 61 **)

alloc(newmem, 64, moonJump)
alloc(moonJumpBytes, 5)
alloc(moonJumpEnabled, 1)
alloc(jumpSpeed, 4)

label(originalcode)
label(exit)

registersymbol(moonJump)
registersymbol(moonJumpBytes)
registersymbol(moonJumpEnabled)

moonJumpBytes:
 readmem(moonJump, 5)

moonJumpEnabled:
 db 0

jumpSpeed:
 dd (float)20.0

newmem:
 cmp byte ptr [moonJumpEnabled], 1
 jne originalcode

 comiss xmm5, [jumpSpeed]
 ja exit
 movss xmm5, [jumpSpeed]

originalcode:
 readmem(moonJump, 5)
 jmp exit

moonJump:
 jmp newmem
 exit:

[DISABLE]
moonJump:
 readmem(moonJumpBytes, 5)

dealloc(*)
unregistersymbol(*)

</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
