<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>2</ID>
      <Description>"Bombs"</Description>
      <ShowAsSigned>0</ShowAsSigned>
      <VariableType>Byte</VariableType>
      <Address>Sin.dll+1324EB0</Address>
    </CheatEntry>
    <CheatEntry>
      <ID>4</ID>
      <Description>"Health"</Description>
      <VariableType>4 Bytes</VariableType>
      <Address>Sin.dll+1324E94</Address>
    </CheatEntry>
    <CheatEntry>
      <ID>3</ID>
      <Description>"Infinite Bombs"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanmodule(InfBombs,Sin.dll,88 47 28 84 C0) // should be unique
alloc(newmem,$1000,InfBombs)

label(return)

newmem:
  mov [rdi+28],6
  test al,al
  jmp return

InfBombs:
  jmp newmem
return:
registersymbol(InfBombs)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
InfBombs:
  db 88 47 28 84 C0

unregistersymbol(InfBombs)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Sin.dll+7BC82

Sin.dll+7BC5F: 48 85 C0                       - test rax,rax
Sin.dll+7BC62: 74 60                          - je Sin.dll+7BCC4
Sin.dll+7BC64: 89 9F 54 04 00 00              - mov [rdi+00000454],ebx
Sin.dll+7BC6A: FF 87 10 05 00 00              - inc [rdi+00000510]
Sin.dll+7BC70: 85 F6                          - test esi,esi
Sin.dll+7BC72: 75 15                          - jne Sin.dll+7BC89
Sin.dll+7BC74: 39 1D E6 03 20 01              - cmp [Sin.dll+127C060],ebx
Sin.dll+7BC7A: 0F B6 47 28                    - movzx eax,byte ptr [rdi+28]
Sin.dll+7BC7E: 75 05                          - jne Sin.dll+7BC85
Sin.dll+7BC80: FE C8                          - dec al
// ---------- INJECTING HERE ----------
Sin.dll+7BC82: 88 47 28                       - mov [rdi+28],al
// ---------- DONE INJECTING  ----------
Sin.dll+7BC85: 84 C0                          - test al,al
Sin.dll+7BC87: 7F 07                          - jg Sin.dll+7BC90
Sin.dll+7BC89: 88 5F 28                       - mov [rdi+28],bl
Sin.dll+7BC8C: 0F 1F 40 00                    - nop dword ptr [rax+00]
Sin.dll+7BC90: 48 8B 8F 38 03 00 00           - mov rcx,[rdi+00000338]
Sin.dll+7BC97: 8B D3                          - mov edx,ebx
Sin.dll+7BC99: E8 50 56 F8 FF                 - call Sin.dll+12EE
Sin.dll+7BC9E: FF C3                          - inc ebx
Sin.dll+7BCA0: C7 80 18 03 00 00 40 00 00 00  - mov [rax+00000318],00000040
Sin.dll+7BCAA: 83 FB 02                       - cmp ebx,02
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>8</ID>
      <Description>"Invincibility"</Description>
      <LastState/>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
aobscanmodule(NoProjDmg,Sin.dll,40 56 41 54 41 55 48)
aobscanmodule(NoHitboxDmg,Sin.dll,48 89 5C 24 08 48 89 74 24 10 48 89 7C 24 18 55 41 54)
aobscanmodule(NoLaserDmg,Sin.dll,CC 48 89 6C 24 18 48 89 74 24 20 57 41 54)
registersymbol(NoProjDmg)
registersymbol(NoHitboxDmg)
registersymbol(NoLaserDmg)

//No projectile damage
NoProjDmg:
  ret

//No hitbox damage
NoHitboxDmg:
  ret

//No laser damage
NoLaserDmg+01:
  ret

[DISABLE]
NoProjDmg:
  db 40

NoHitboxDmg:
  db 48

NoLaserDmg+01:
  db 48

unregistersymbol(*)

{
// ORIGINAL CODE - INJECTION POINT: NoProjDmg - Sin.dll+31440

Sin.dll+31436: CC                       - int 3 
Sin.dll+31437: CC                       - int 3 
Sin.dll+31438: CC                       - int 3 
Sin.dll+31439: CC                       - int 3 
Sin.dll+3143A: CC                       - int 3 
Sin.dll+3143B: CC                       - int 3 
Sin.dll+3143C: CC                       - int 3 
Sin.dll+3143D: CC                       - int 3 
Sin.dll+3143E: CC                       - int 3 
Sin.dll+3143F: CC                       - int 3 
// ---------- INJECTING HERE ----------
Sin.dll+31440: 40 56                    - push rsi
// ---------- DONE INJECTING  ----------
Sin.dll+31442: 41 54                    - push r12
Sin.dll+31444: 41 55                    - push r13
Sin.dll+31446: 48 81 EC 50 01 00 00     - sub rsp,00000150
Sin.dll+3144D: 48 8B 05 14 DC 76 00     - mov rax,[Sin.dll+79F068]
Sin.dll+31454: 48 33 C4                 - xor rax,rsp
Sin.dll+31457: 48 89 84 24 20 01 00 00  - mov [rsp+00000120],rax
Sin.dll+3145F: 4C 8B E2                 - mov r12,rdx
Sin.dll+31462: 89 4C 24 20              - mov [rsp+20],ecx
Sin.dll+31466: 8B D1                    - mov edx,ecx
Sin.dll+31468: 8B F1                    - mov esi,ecx

-----------------------------------------------------------------------------

// ORIGINAL CODE - INJECTION POINT: NoHitboxDmg - Sin.dll+34880

Sin.dll+34876: CC                    - int 3
Sin.dll+34877: CC                    - int 3
Sin.dll+34878: CC                    - int 3
Sin.dll+34879: CC                    - int 3
Sin.dll+3487A: CC                    - int 3
Sin.dll+3487B: CC                    - int 3
Sin.dll+3487C: CC                    - int 3
Sin.dll+3487D: CC                    - int 3
Sin.dll+3487E: CC                    - int 3
Sin.dll+3487F: CC                    - int 3
// ---------- INJECTING HERE ----------
Sin.dll+34880: 48 89 5C 24 08        - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
Sin.dll+34885: 48 89 74 24 10        - mov [rsp+10],rsi
Sin.dll+3488A: 48 89 7C 24 18        - mov [rsp+18],rdi
Sin.dll+3488F: 55                    - push rbp
Sin.dll+34890: 41 54                 - push r12
Sin.dll+34892: 41 55                 - push r13
Sin.dll+34894: 41 56                 - push r14
Sin.dll+34896: 41 57                 - push r15
Sin.dll+34898: 48 8D 6C 24 B0        - lea rbp,[rsp-50]
Sin.dll+3489D: 48 81 EC 50 01 00 00  - sub rsp,00000150
Sin.dll+348A4: 48 8B 05 BD A7 76 00  - mov rax,[Sin.dll+79F068]

-----------------------------------------------------------------------------

// ORIGINAL CODE - INJECTION POINT: NoLaserDmg - Sin.dll+5F700

Sin.dll+5F6F6: CC                    - int 3
Sin.dll+5F6F7: CC                    - int 3
Sin.dll+5F6F8: CC                    - int 3
Sin.dll+5F6F9: CC                    - int 3
Sin.dll+5F6FA: CC                    - int 3
Sin.dll+5F6FB: CC                    - int 3
Sin.dll+5F6FC: CC                    - int 3
Sin.dll+5F6FD: CC                    - int 3
Sin.dll+5F6FE: CC                    - int 3
Sin.dll+5F6FF: CC                    - int 3
// ---------- INJECTING HERE ----------
Sin.dll+5F700: 48 89 6C 24 18        - mov [rsp+18],rbp
// ---------- DONE INJECTING  ----------
Sin.dll+5F705: 48 89 74 24 20        - mov [rsp+20],rsi
Sin.dll+5F70A: 57                    - push rdi
Sin.dll+5F70B: 41 54                 - push r12
Sin.dll+5F70D: 41 57                 - push r15
Sin.dll+5F70F: 48 83 EC 20           - sub rsp,20
Sin.dll+5F713: 48 8B F1              - mov rsi,rcx
Sin.dll+5F716: 49 8B F8              - mov rdi,r8
Sin.dll+5F719: 49 8B 88 88 00 00 00  - mov rcx,[r8+00000088]
Sin.dll+5F720: 4C 8B FA              - mov r15,rdx
Sin.dll+5F723: E8 AA 50 FA FF        - call Sin.dll+47D2
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>9</ID>
      <Description>"Individual invicibilities"</Description>
      <Options moHideChildren="1"/>
      <LastState Value="" RealAddress="00000000"/>
      <GroupHeader>1</GroupHeader>
      <CheatEntries>
        <CheatEntry>
          <ID>5</ID>
          <Description>"Projectile invincibility"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(Proj,Sin.dll,40 56 41 54 41 55 48) // should be unique
registersymbol(Proj)

Proj:
  ret

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Proj:
  db 40

unregistersymbol(Proj)

{
// ORIGINAL CODE - INJECTION POINT: Sin.dll+31440

Sin.dll+31436: CC                       - int 3 
Sin.dll+31437: CC                       - int 3 
Sin.dll+31438: CC                       - int 3 
Sin.dll+31439: CC                       - int 3 
Sin.dll+3143A: CC                       - int 3 
Sin.dll+3143B: CC                       - int 3 
Sin.dll+3143C: CC                       - int 3 
Sin.dll+3143D: CC                       - int 3 
Sin.dll+3143E: CC                       - int 3 
Sin.dll+3143F: CC                       - int 3 
// ---------- INJECTING HERE ----------
Sin.dll+31440: 40 56                    - push rsi
// ---------- DONE INJECTING  ----------
Sin.dll+31442: 41 54                    - push r12
Sin.dll+31444: 41 55                    - push r13
Sin.dll+31446: 48 81 EC 50 01 00 00     - sub rsp,00000150
Sin.dll+3144D: 48 8B 05 14 DC 76 00     - mov rax,[Sin.dll+79F068]
Sin.dll+31454: 48 33 C4                 - xor rax,rsp
Sin.dll+31457: 48 89 84 24 20 01 00 00  - mov [rsp+00000120],rax
Sin.dll+3145F: 4C 8B E2                 - mov r12,rdx
Sin.dll+31462: 89 4C 24 20              - mov [rsp+20],ecx
Sin.dll+31466: 8B D1                    - mov edx,ecx
Sin.dll+31468: 8B F1                    - mov esi,ecx
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>6</ID>
          <Description>"Hitbox invincibility"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(Hitbox,Sin.dll,48 89 5C 24 08 48 89 74 24 10 48 89 7C 24 18 55 41 54) // should be unique
registersymbol(Hitbox)

Hitbox:
  ret

[DISABLE]
Hitbox:
  db 48

unregistersymbol(Hitbox)

{
// ORIGINAL CODE - INJECTION POINT: Sin.dll+34880

Sin.dll+34876: CC                    - int 3 
Sin.dll+34877: CC                    - int 3 
Sin.dll+34878: CC                    - int 3 
Sin.dll+34879: CC                    - int 3 
Sin.dll+3487A: CC                    - int 3 
Sin.dll+3487B: CC                    - int 3 
Sin.dll+3487C: CC                    - int 3 
Sin.dll+3487D: CC                    - int 3 
Sin.dll+3487E: CC                    - int 3 
Sin.dll+3487F: CC                    - int 3 
// ---------- INJECTING HERE ----------
Sin.dll+34880: 48 89 5C 24 08        - mov [rsp+08],rbx
// ---------- DONE INJECTING  ----------
Sin.dll+34885: 48 89 74 24 10        - mov [rsp+10],rsi
Sin.dll+3488A: 48 89 7C 24 18        - mov [rsp+18],rdi
Sin.dll+3488F: 55                    - push rbp
Sin.dll+34890: 41 54                 - push r12
Sin.dll+34892: 41 55                 - push r13
Sin.dll+34894: 41 56                 - push r14
Sin.dll+34896: 41 57                 - push r15
Sin.dll+34898: 48 8D 6C 24 B0        - lea rbp,[rsp-50]
Sin.dll+3489D: 48 81 EC 50 01 00 00  - sub rsp,00000150
Sin.dll+348A4: 48 8B 05 BD A7 76 00  - mov rax,[Sin.dll+79F068]
}
</AssemblerScript>
        </CheatEntry>
        <CheatEntry>
          <ID>7</ID>
          <Description>"Laser invincibility"</Description>
          <LastState/>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
aobscanmodule(Laser,Sin.dll,CC 48 89 6C 24 18 48 89 74 24 20 57 41 54)
registersymbol(Laser)

Laser+01:
  ret

[DISABLE]
Laser+01:
  db 48

unregistersymbol(Laser)

{
// ORIGINAL CODE - INJECTION POINT: Sin.dll+5F700

Sin.dll+5F6F6: CC                    - int 3 
Sin.dll+5F6F7: CC                    - int 3 
Sin.dll+5F6F8: CC                    - int 3 
Sin.dll+5F6F9: CC                    - int 3 
Sin.dll+5F6FA: CC                    - int 3 
Sin.dll+5F6FB: CC                    - int 3 
Sin.dll+5F6FC: CC                    - int 3 
Sin.dll+5F6FD: CC                    - int 3 
Sin.dll+5F6FE: CC                    - int 3 
Sin.dll+5F6FF: CC                    - int 3 
// ---------- INJECTING HERE ----------
Sin.dll+5F700: 48 89 6C 24 18        - mov [rsp+18],rbp
// ---------- DONE INJECTING  ----------
Sin.dll+5F705: 48 89 74 24 20        - mov [rsp+20],rsi
Sin.dll+5F70A: 57                    - push rdi
Sin.dll+5F70B: 41 54                 - push r12
Sin.dll+5F70D: 41 57                 - push r15
Sin.dll+5F70F: 48 83 EC 20           - sub rsp,20
Sin.dll+5F713: 48 8B F1              - mov rsi,rcx
Sin.dll+5F716: 49 8B F8              - mov rdi,r8
Sin.dll+5F719: 49 8B 88 88 00 00 00  - mov rcx,[r8+00000088]
Sin.dll+5F720: 4C 8B FA              - mov r15,rdx
Sin.dll+5F723: E8 AA 50 FA FF        - call Sin.dll+47D2
}
</AssemblerScript>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
