<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>55</ID>
      <Description>"Selected Player HP"</Description>
      <VariableType>Float</VariableType>
      <Address>"Ys7.exe"+004395B8</Address>
      <Offsets>
        <Offset>710</Offset>
        <Offset>808</Offset>
      </Offsets>
    </CheatEntry>
    <CheatEntry>
      <ID>3</ID>
      <Description>"Gold"</Description>
      <VariableType>4 Bytes</VariableType>
      <Address>"Ys7.exe"+004395B8</Address>
      <Offsets>
        <Offset>B840</Offset>
        <Offset>828</Offset>
      </Offsets>
    </CheatEntry>
    <CheatEntry>
      <ID>77</ID>
      <Description>"No Player Damage"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(NO_PLAYER_DAMAGE,Ys7.exe,F3 0F 11 87 10 07 00 00 F7) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  cmp [edi+00000014],0x4C4F4441 // Test for Adol
  je return
  cmp [edi+00000014],0x49474F44 // Test for Dogi
  je return
  cmp [edi+00000014],0x004B5245 // Test for Elk
  je return
  cmp [edi+00000014],0x48534941 // Test for Aisha
  je return
  cmp [edi+00000014],0x5453554D // Test for Mustafa
  je return
  cmp [edi+00000014],0x4853494D // Test for Mishera
  je return
  cmp [edi+00000014],0x4853524B// Test for Cruxie
  je return
  cmp [edi+00000014],0x52474953 // Test for Sigroon
  je return
  cmp [edi+00000014],0x53494547 // Test for Geis - Comment this line if Geis is not in party
  je return                     //               - Comment this line if Geis is not in party
  movss [edi+00000710],xmm0
  jmp return

NO_PLAYER_DAMAGE:
  jmp newmem
  nop 3
return:
registersymbol(NO_PLAYER_DAMAGE)

[DISABLE]

NO_PLAYER_DAMAGE:
  db F3 0F 11 87 10 07 00 00

unregistersymbol(NO_PLAYER_DAMAGE)
dealloc(newmem)
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>81</ID>
      <Description>"Experience Multiplier"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(EXP_MULTIPLIER,Ys7.exe,F3 0F 59 74 24 10 83) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(exp_factor)
registersymbol(exp_factor)

newmem:

code:
  mulss xmm6,[esp+10]
  mulss xmm6,[exp_factor]
  jmp return

exp_factor:
  dd (float)1

EXP_MULTIPLIER:
  jmp newmem
  nop
return:
registersymbol(EXP_MULTIPLIER)

[DISABLE]

EXP_MULTIPLIER:
  db F3 0F 59 74 24 10

unregistersymbol(EXP_MULTIPLIER)
unregistersymbol(exp_factor)
dealloc(newmem)

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>82</ID>
          <Description>"Experience Factor"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>"exp_factor"</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>89</ID>
      <Description>"Damage Multiplier"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(MULTIPLY_DAMAGE,Ys7.exe,0F 57 0D 10 B8 ?? 00 56) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(dmg_multiplier)
registersymbol(dmg_multiplier)

newmem:

code:
  xorps xmm1,[Ys7.exe+1FB810]
  cmp [esi+00000014],0x4C4F4441 // Test for Adol
  je mult_damage
  cmp [esi+00000014],0x49474F44 // Test for Dogi
  je mult_damage
  cmp [esi+00000014],0x004B5245 // Test for Elk
  je mult_damage
  cmp [esi+00000014],0x48534941 // Test for Aisha
  je mult_damage
  cmp [esi+00000014],0x5453554D // Test for Mustafa
  je mult_damage
  cmp [esi+00000014],0x4853494D // Test for Mishera
  je mult_damage
  cmp [esi+00000014],0x4853524B // Test for Cruxie
  je mult_damage
  cmp [esi+00000014],0x52474953 // Test for Sigroon
  je mult_damage
  cmp [esi+00000014],0x53494547 // Test for Geis - Comment this line if Geis is not in party
  je mult_damage                //               - Comment this line if Geis is not in party
  jmp return
mult_damage:
  mulss xmm1,[dmg_multiplier]
  jmp return

dmg_multiplier:
  dd (float)1

MULTIPLY_DAMAGE:
  jmp newmem
  nop 2
return:
registersymbol(MULTIPLY_DAMAGE)

[DISABLE]

MULTIPLY_DAMAGE:
  db 0F 57 0D 10 B8 23 00

unregistersymbol(MULTIPLY_DAMAGE)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Ys7.exe+50716

Ys7.exe+506E5: 76 08                    - jna Ys7.exe+506EF
Ys7.exe+506E7: F3 0F 11 8F 10 07 00 00  - movss [edi+00000710],xmm1
Ys7.exe+506EF: 83 7F 74 01              - cmp dword ptr [edi+74],01
Ys7.exe+506F3: 75 17                    - jne Ys7.exe+5070C
Ys7.exe+506F5: F3 0F 10 05 20 A5 23 00  - movss xmm0,[Ys7.exe+1FA520]
Ys7.exe+506FD: F3 0F 5D C1              - minss xmm0,xmm1
Ys7.exe+50701: 0F 28 C8                 - movaps xmm1,xmm0
Ys7.exe+50704: F3 0F 11 8D D8 FE FF FF  - movss [ebp-00000128],xmm1
Ys7.exe+5070C: F3 0F 10 8D 48 FF FF FF  - movss xmm1,[ebp-000000B8]
Ys7.exe+50714: 8B CF                    - mov ecx,edi
// ---------- INJECTING HERE ----------
Ys7.exe+50716: 0F 57 0D 10 B8 23 00     - xorps xmm1,[Ys7.exe+1FB810]
// ---------- DONE INJECTING  ----------
Ys7.exe+5071D: 56                       - push esi
Ys7.exe+5071E: 6A 00                    - push 00
Ys7.exe+50720: E8 5B C7 FE FF           - call Ys7.exe+3CE80
Ys7.exe+50725: 83 7F 74 01              - cmp dword ptr [edi+74],01
Ys7.exe+50729: 0F 85 D7 00 00 00        - jne Ys7.exe+50806
Ys7.exe+5072F: 8B 87 B0 0B 00 00        - mov eax,[edi+00000BB0]
Ys7.exe+50735: 05 B4 00 00 00           - add eax,000000B4
Ys7.exe+5073A: 89 85 34 FF FF FF        - mov [ebp-000000CC],eax
Ys7.exe+50740: 8A 48 25                 - mov cl,[eax+25]
Ys7.exe+50743: 84 C9                    - test cl,cl
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>87</ID>
          <Description>"Damage Factor"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>Float</VariableType>
          <Address>"dmg_multiplier"</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
