<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>5</ID>
      <Description>"Gold"</Description>
      <VariableType>4 Bytes</VariableType>
      <Address>"Ysc_dx11.exe"+00015D28</Address>
      <Offsets>
        <Offset>11010</Offset>
        <Offset>0</Offset>
      </Offsets>
    </CheatEntry>
    <CheatEntry>
      <ID>8</ID>
      <Description>"Enable EXP Multiplier"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(exp_multiplier,Ysc_dx11.exe,F3 0F 58 ** ** F3 0F 11 ** ** 6A)
alloc(newmem,$100)

label(code)
label(return)
label(exp_factor)
label(originalcode)
registersymbol(exp_factor)
registersymbol(originalcode)

newmem:

code:
  movss xmm6,[ebp+40]
  mulss xmm6,[exp_factor]
  addss xmm0,xmm6
  jmp return

exp_factor:
  dd (float)1

originalcode:
  readmem(exp_multiplier,5)

exp_multiplier:
  jmp newmem
return:
registersymbol(exp_multiplier)

[DISABLE]

exp_multiplier:
  readmem(originalcode,5)

unregistersymbol(exp_multiplier)
unregistersymbol(originalcode)
dealloc(newmem)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>7</ID>
          <Description>"EXP Factor"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>"exp_factor"</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>12</ID>
      <Description>"NoDamage/OneHitKill"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(no_damage,Ysc_dx11.exe,F3 0F 11 8F D0 0A 00 00 F7)
aobscan(adol_base,40 3F 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 44 4F 4C)
aobscan(duran_base,CC 42 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 44 55 52 45)
aobscan(ozma_base,80 44 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4F 5A 4D 41)
aobscan(carna_base,00 41 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 41 52 4E)
aobscan(calilica_base,EC 46 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 43 41 4E 4C)
aobscan(frieda_base,A0 48 65 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 46 52 49 44)
alloc(newmem,$1000)

label(code)
label(return)
label(pc_char)
label(set_health_normal)
label(set_health_zero)
label(set_health_full)
label(enable_no_damage)
label(enable_one_hit)
registersymbol(enable_no_damage)
registersymbol(enable_one_hit)

newmem:

code:
  // Test if EDI is base address of PC struct
  cmp edi,adol_base
  je pc_char
  cmp edi,duran_base
  je pc_char
  cmp edi,ozma_base
  je pc_char
  cmp edi,carna_base
  je pc_char
  cmp edi,calilica_base
  je pc_char
  cmp edi,frieda_base
  je pc_char

  // If not a PC, and enable one hit on
  cmp [enable_one_hit],0
  jne set_health_zero
  //   Else Normal Damage
  jmp set_health_normal

set_health_zero:
  xorps xmm1,xmm1

set_health_normal:
  movss [edi+00000AD0],xmm1
  jmp return

set_health_full:
  movss [edi+00000AD0],xmm2
  jmp return

pc_char:
  cmp [enable_no_damage],0
  // Restore PC to full health
  jne set_health_full
  //   Else Normal Damage
  jmp set_health_normal

enable_no_damage:
  dd 0

enable_one_hit:
  dd 0

no_damage:
  jmp newmem
  nop 3
return:
registersymbol(no_damage)

[DISABLE]

no_damage:
  db F3 0F 11 8F D0 0A 00 00

unregistersymbol(no_damage)
dealloc(newmem)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>13</ID>
          <Description>"No Damage (0=Off, 1=On)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>"enable_no_damage"</Address>
        </CheatEntry>
        <CheatEntry>
          <ID>14</ID>
          <Description>"One Hit Kill (0=Off, 1=On)"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>"enable_one_hit"</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
