<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="34">
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"F1 Unlimited Perks at char creation"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : laby_dx.exe
  Version: 
  Date   : 2021-04-22
  Author : Ich

  This script does prevents decreasing of available perks at char creation
}

define(address,"laby_dx.exe"+11E9A0)
define(bytes,29 C2 41 89 54 24 58)

[ENABLE]
address:
  nop 2
return:

[DISABLE]
address:
  db bytes

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: laby_dx.exe+11E9A0

laby_dx.exe+11E967: 48 8D BC 24 90 00 00 00  - lea rdi,[rsp+00000090]
laby_dx.exe+11E96F: 48 8D B4 24 A0 00 00 00  - lea rsi,[rsp+000000A0]
laby_dx.exe+11E977: 0F B6 84 24 08 01 00 00  - movzx eax,byte ptr [rsp+00000108]
laby_dx.exe+11E97F: 48 8D 14 80              - lea rdx,[rax+rax*4]
laby_dx.exe+11E983: 48 8D 0C 50              - lea rcx,[rax+rdx*2]
laby_dx.exe+11E987: 48 C1 E1 04              - shl rcx,04
laby_dx.exe+11E98B: 4C 01 E9                 - add rcx,r13
laby_dx.exe+11E98E: E8 0D EB FA FF           - call laby_dx.exe+CD4A0
laby_dx.exe+11E993: 41 8B 54 24 58           - mov edx,[r12+58]
laby_dx.exe+11E998: 4D 8B B4 24 28 01 00 00  - mov r14,[r12+00000128]
// ---------- INJECTING HERE ----------
laby_dx.exe+11E9A0: 29 C2                    - sub edx,eax
// ---------- DONE INJECTING  ----------
laby_dx.exe+11E9A2: 41 89 54 24 58           - mov [r12+58],edx
laby_dx.exe+11E9A7: 0F 88 83 02 00 00        - js laby_dx.exe+11EC30
laby_dx.exe+11E9AD: 89 D0                    - mov eax,edx
laby_dx.exe+11E9AF: 48 8D 0D CA 93 63 00     - lea rcx,[laby_dx.exe+757D80]
laby_dx.exe+11E9B6: 83 C8 01                 - or eax,01
laby_dx.exe+11E9B9: 0F BD C0                 - bsr eax,eax
laby_dx.exe+11E9BC: 48 98                    - cdqe 
laby_dx.exe+11E9BE: 0F B7 0C 41              - movzx ecx,word ptr [rcx+rax*2]
laby_dx.exe+11E9C2: 48 8D 05 37 F4 4E 00     - lea rax,[laby_dx.exe+60DE00]
laby_dx.exe+11E9C9: 3B 14 88                 - cmp edx,[rax+rcx*4]
}
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>112</Key>
          </Keys>
          <ID>0</ID>
          <ActivateSound>Activate</ActivateSound>
          <DeactivateSound>Deactivate</DeactivateSound>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>3</ID>
      <Description>"F2 available attribute points do not decrease"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : laby_dx.exe
  Version: 
  Date   : 2021-04-22
  Author : Ich

  This script prevents the decrease of available attribute points
}

define(address,"laby_dx.exe"+D6130)
define(bytes,28 91 B8 06 00 00)

[ENABLE]
address:
  nop 6

[DISABLE]
address:
  db bytes

dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: laby_dx.exe+D6130

laby_dx.exe+D6104: 01 91 B0 06 00 00                 - add [rcx+000006B0],edx
laby_dx.exe+D610A: 45 84 C0                          - test r8l,r8l
laby_dx.exe+D610D: 75 01                             - jne laby_dx.exe+D6110
laby_dx.exe+D610F: C3                                - ret 
laby_dx.exe+D6110: 41 89 D0                          - mov r8d,edx
laby_dx.exe+D6113: 48 81 C1 28 07 00 00              - add rcx,00000728
laby_dx.exe+D611A: BA 08 00 00 00                    - mov edx,00000008
laby_dx.exe+D611F: E9 0C 44 07 00                    - jmp laby_dx.exe+14A530
laby_dx.exe+D6124: 66 66 2E 0F 1F 84 00 00 00 00 00  - nop word ptr cs:[rax+rax+00000000]
laby_dx.exe+D612F: 90                                - nop 
// ---------- INJECTING HERE ----------
laby_dx.exe+D6130: 28 91 B8 06 00 00                 - sub [rcx+000006B8],dl
// ---------- DONE INJECTING  ----------
laby_dx.exe+D6136: C3                                - ret 
laby_dx.exe+D6137: 90                                - nop 
laby_dx.exe+D6138: 0F 1F 84 00 00 00 00 00           - nop dword ptr [rax+rax+00000000]
laby_dx.exe+D6140: 0F B6 81 B8 06 00 00              - movzx eax,byte ptr [rcx+000006B8]
laby_dx.exe+D6147: C3                                - ret 
laby_dx.exe+D6148: 0F 1F 84 00 00 00 00 00           - nop dword ptr [rax+rax+00000000]
laby_dx.exe+D6150: 4C 8B 81 D0 06 00 00              - mov r8,[rcx+000006D0]
laby_dx.exe+D6157: 89 D0                             - mov eax,edx
laby_dx.exe+D6159: 31 D2                             - xor edx,edx
laby_dx.exe+D615B: 49 89 C1                          - mov r9,rax
}
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>113</Key>
          </Keys>
          <ID>0</ID>
          <ActivateSound>Activate</ActivateSound>
          <DeactivateSound>Deactivate</DeactivateSound>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
