<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="38">
  <CheatEntries>
    <CheatEntry>
      <ID>2</ID>
      <Description>"Catgirl Lover 2"</Description>
      <Options moHideChildren="1"/>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>1</ID>
          <Description>"Instant Win"</Description>
          <LastState Activated="1"/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>{$lua}
if (LaunchMonoDataCollector()==0) then
  error('Failed to Activate Mono Features')
end
{$asm}

[ENABLE]

aobscan(INJECT_moves,48 63 47 50 85 C0 0F 8F 18) // should be unique
alloc(newmem,$1000,INJECT_moves)

label(code)
label(return)

newmem:
  cmp [rdi+5C],#0
  je code
  mov [rdi+50],#1
  mov [rdi+5C],#999999
code:

  movsxd  rax,dword ptr [rdi+50]
  test eax,eax
  jmp return



INJECT_moves:
  jmp newmem
  nop
return:
registersymbol(INJECT_moves)

[DISABLE]

INJECT_moves:
  db 48 63 47 50 85 C0

unregistersymbol(INJECT_moves)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+11f

SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+ec: F3 0F 11 6D DC                 - movss [rbp-24],xmm5
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+f1: F3 0F 10 45 DC                 - movss xmm0,[rbp-24]
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+f6: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+fa: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+fe: F3 0F 11 68 10                 - movss [rax+10],xmm5
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+103: 48 89 46 10                    - mov [rsi+10],rax
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+107: C7 46 20 01 00 00 00           - mov [rsi+20],00000001
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+10e: B8 01 00 00 00                 - mov eax,00000001
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+113: E9 9D 03 00 00                 - jmp SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+4b5
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+118: C7 46 20 FF FF FF FF           - mov [rsi+20],FFFFFFFF
// ---------- INJECTING HERE ----------
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+11f: 48 63 47 50                    - movsxd  rax,dword ptr [rdi+50]
// ---------- DONE INJECTING  ----------
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+123: 85 C0                          - test eax,eax
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+125: 0F 8F 18 02 00 00              - jg SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+343
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+12b: 48 B9 80 22 48 56 52 02 00 00  - mov rcx,0000025256482280
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+135: 48 BA 60 F6 18 0E 52 02 00 00  - mov rdx,000002520E18F660
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+13f: 49 B8 A0 D2 47 56 52 02 00 00  - mov r8,000002525647D2A0
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+149: 48 8D 64 24 00                 - lea rsp,[rsp+00]
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+14e: 49 BB 50 52 9A 08 52 02 00 00  - mov r11,00000252089A5250
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+158: 41 FF D3                       - call r11
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+15b: 48 85 FF                       - test rdi,rdi
SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+15e: 0F 84 B4 03 00 00              - je SessionAssistant+&lt;MovesLimitation&gt;d__38:MoveNext+518
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Structures StructVersion="2">
    <Structure Name="SessionAssistant" AutoFill="0" AutoCreate="1" DefaultHex="0" AutoDestroy="0" DoNotSaveLocal="0" RLECompression="1" AutoCreateStructsize="4096">
      <Elements>
        <Element Offset="16" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000010" Description="m_CachedPtr" DisplayMethod="Unsigned Integer"/>
        <Element Offset="24" Vartype="Pointer" Bytesize="8" OffsetHex="00000018" Description="combinations" DisplayMethod="Unsigned Integer"/>
        <Element Offset="32" Vartype="Pointer" Bytesize="8" OffsetHex="00000020" Description="chipInfos" DisplayMethod="Unsigned Integer"/>
        <Element Offset="40" Vartype="Pointer" Bytesize="8" OffsetHex="00000028" Description="blockInfos" DisplayMethod="Unsigned Integer"/>
        <Element Offset="48" Vartype="Pointer" Bytesize="8" OffsetHex="00000030" Description="mixes" DisplayMethod="Unsigned Integer"/>
        <Element Offset="56" Vartype="Pointer" Bytesize="8" OffsetHex="00000038" Description="solutions" DisplayMethod="Unsigned Integer"/>
        <Element Offset="64" Vartype="Pointer" Bytesize="8" OffsetHex="00000040" Description="colorMask" DisplayMethod="Unsigned Integer"/>
        <Element Offset="72" Vartype="Byte" Bytesize="1" OffsetHex="00000048" Description="squareCombination" DisplayMethod="Unsigned Integer"/>
        <Element Offset="76" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000004C" Description="lastMovementId" DisplayMethod="Unsigned Integer"/>
        <Element Offset="80" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000050" Description="movesCount" DisplayMethod="Unsigned Integer"/>
        <Element Offset="84" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000054" Description="swapEvent" DisplayMethod="Unsigned Integer"/>
        <Element Offset="88" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000058" Description="eventCount" DisplayMethod="Unsigned Integer"/>
        <Element Offset="92" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000005C" Description="score" DisplayMethod="Unsigned Integer"/>
        <Element Offset="96" Vartype="Byte" Bytesize="1" OffsetHex="00000060" Description="isPlaying" DisplayMethod="Unsigned Integer"/>
        <Element Offset="97" Vartype="Byte" Bytesize="1" OffsetHex="00000061" Description="outOfLimit" DisplayMethod="Unsigned Integer"/>
        <Element Offset="98" Vartype="Byte" Bytesize="1" OffsetHex="00000062" Description="reachedTheTarget" DisplayMethod="Unsigned Integer"/>
        <Element Offset="100" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000064" Description="creatingSugarTask" DisplayMethod="Unsigned Integer"/>
        <Element Offset="104" Vartype="Byte" Bytesize="1" OffsetHex="00000068" Description="firstChipGeneration" DisplayMethod="Unsigned Integer"/>
        <Element Offset="108" Vartype="4 Bytes" Bytesize="4" OffsetHex="0000006C" Description="matchCount" DisplayMethod="Unsigned Integer"/>
        <Element Offset="112" Vartype="4 Bytes" Bytesize="4" OffsetHex="00000070" Description="stars" DisplayMethod="Unsigned Integer"/>
        <Element Offset="116" Vartype="Byte" Bytesize="1" OffsetHex="00000074" Description="targetRoutineIsOver" DisplayMethod="Unsigned Integer"/>
        <Element Offset="117" Vartype="Byte" Bytesize="1" OffsetHex="00000075" Description="limitationRoutineIsOver" DisplayMethod="Unsigned Integer"/>
        <Element Offset="118" Vartype="Byte" Bytesize="1" OffsetHex="00000076" Description="swaping" DisplayMethod="Unsigned Integer"/>
        <Element Offset="119" Vartype="Byte" Bytesize="1" OffsetHex="00000077" Description="iteraction" DisplayMethod="Unsigned Integer"/>
      </Elements>
    </Structure>
  </Structures>
</CheatTable>
