<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="46">
  <CheatEntries>
    <CheatEntry>
      <ID>12</ID>
      <Description>"Sonic the Hedgehog 4 - Episode II"</Description>
      <Options moHideChildren="1" moActivateChildrenAsWell="1" moDeactivateChildrenAsWell="1"/>
      <Color>C08000</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]

aobscanmodule(One,Sonic.exe,8B 90 FC 35 00 00 A1 10)
aobscanmodule(Two,Sonic.exe,8B 42 04 8B 4A 08)

alloc(newmemOne,$1000)
alloc(newmemTwo,$1000)
alloc(Three,4)
alloc(Four,4)

registersymbol(One)
registersymbol(Two)
registersymbol(Three)
registersymbol(Four)

label(codeOne)
label(codeTwo)
label(returnOne)
label(returnTwo)

Three:
  dd 0

Four:
  dd 0

newmemOne:

codeOne:
  mov dword ptr [Three],eax
  mov edx,[eax+000035FC]
  jmp returnOne

One:
  jmp newmemOne
  nop

returnOne:

newmemTwo:

codeTwo:
  mov dword ptr [Four],edx
  mov eax,[edx+04]
  mov ecx,[edx+08]
  jmp returnTwo

Two:
  jmp newmemTwo
  nop

returnTwo:

[DISABLE]

One:
  db 8B 90 FC 35 00 00

Two:
  db 8B 42 04 8B 4A 08

unregistersymbol(One)
unregistersymbol(Two)
unregistersymbol(Three)
unregistersymbol(Four)

dealloc(newmemOne)
dealloc(newmemTwo)
dealloc(Three)
dealloc(Four)
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>50</ID>
          <Description>"==== General ===="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>1</ID>
              <Description>"Freeze Time"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Five,Sonic.exe,01 3D 04 28 8A 00)
aobscanmodule(Six,Sonic.exe,89 01 8D 44 24 60)

registersymbol(Five)
registersymbol(Six)

Sonic.exe+145393:
  db 90 90 90 90 90 90

Sonic.exe+240051:
  db 90 90

[DISABLE]

Five:
  db 01 3D 04 28 8A 00

Six:
  db 89 01

unregistersymbol(Five)
unregistersymbol(Six)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>9</ID>
              <Description>"Infinite Air"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Seven,Sonic.exe,D9 9E 10 36 00 00 83)
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  fldz
  fstp dword ptr [esi+00003610]
  jmp return

Seven:
  jmp newmem
  nop

return:
registersymbol(Seven)

[DISABLE]

Seven:
  db D9 9E 10 36 00 00

unregistersymbol(Seven)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>3</ID>
              <Description>"Keep Rings"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Eight,Sonic.exe,66 89 15 2E 28 8A 00 7E)
registersymbol(Eight)

Sonic.exe+1730DD:
  db 90 90 90 90 90 90 90

[DISABLE]

Eight:
  db 66 89 15 2E 28 8A 00

unregistersymbol(Eight)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>56</ID>
              <Description>"Untouchable"</Description>
              <Color>C08000</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

aobscanmodule(Nine,Sonic.exe,D9 86 00 36 00 00 D9 5C 24 0C D9 44 24 0C D9)
alloc(newmem,$1000)

label(code)
label(return)
label(Ten)

newmem:

code:
  fld dword ptr [Ten]
  fstp dword ptr [esi+00003600]
  jmp return

Ten:
  dd (float)5

Nine:
  jmp newmem
  nop

return:
registersymbol(Nine)

[DISABLE]

Nine:
  db D9 86 00 36 00 00

unregistersymbol(Nine)
dealloc(newmem)
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>36</ID>
              <Description>"⬆Only works after getting hit."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>51</ID>
          <Description>"==== Extras ====="</Description>
          <Options moHideChildren="1" moDeactivateChildrenAsWell="1"/>
          <Color>C080FF</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>13</ID>
              <Description>"Score"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Three]+35FC</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>10</ID>
              <Description>"Lives"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>Sonic.exe+4A2828</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>2</ID>
              <Description>"Rings"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <Color>C08000</Color>
              <VariableType>2 Bytes</VariableType>
              <Address>Sonic.exe+4A282E</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>49</ID>
              <Description>"Special Stage Rings - Sonic"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+4</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>54</ID>
              <Description>"Special Stage Rings - Tails"</Description>
              <DropDownList DescriptionOnly="1" DisplayValueAsItem="1">??:Waiting
</DropDownList>
              <ShowAsSigned>0</ShowAsSigned>
              <Color>C08000</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>[Four]+40</Address>
            </CheatEntry>
            <CheatEntry>
              <ID>55</ID>
              <Description>"⬆Values may appear higher than expected outside the correct stage."</Description>
              <Color>C0C0C0</Color>
              <GroupHeader>1</GroupHeader>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
  <Comments>Created by: Outrun
https://opencheattables.com</Comments>
</CheatTable>
