<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="16">
  <CheatEntries>
    <CheatEntry>
      <ID>106</ID>
      <Description>"[Enable]"</Description>
      <Options moHideChildren="1"/>
      <Color>000080</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
alloc( EPhysicsHandler_Hook, 1024 )
registersymbol( EPhysicsHandler_Hook )
label( p0 )
registersymbol( p0 )
label( p1 )
registersymbol( p1 )
label( p2 )
registersymbol( p2 )
label( back )

EPhysicsHandler_Hook+100:
p0:
dd 0

EPhysicsHandler_Hook+104:
p1:
dd 0

EPhysicsHandler_Hook+108:
p2:
dd 0

EPhysicsHandler_Hook:
push ebx
mov [p1],eax
mov ebx,[eax+A4]
mov [p0],ebx
pop ebx
movzx eax,byte ptr [eax+00000084]
jmp back

aobscan( dwEPhysicsHook_AOB, 0FB680????????570FB6??39BE????????74 )
label( dwEPhysicsHook )
registersymbol( dwEPhysicsHook )
dwEPhysicsHook_AOB:
dwEPhysicsHook:
jmp EPhysicsHandler_Hook
db 90 90
back:

[DISABLE]
dwEPhysicsHook:
movzx eax,byte ptr [eax+00000084]

unregistersymbol( dwEPhysicsHook )
unregistersymbol( p2 )
unregistersymbol( p1 )
unregistersymbol( p0 )
unregistersymbol( EPhysicsHandler_Hook )
dealloc( EPhysicsHandler_Hook )

</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>108</ID>
          <Description>"[Character]"</Description>
          <Options moHideChildren="1"/>
          <Color>FF0000</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>112</ID>
              <Description>"Health"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>261C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>119</ID>
              <Description>"HealthMax"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>2620</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>121</ID>
              <Description>"Shield"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>2624</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>120</ID>
              <Description>"ShieldMax"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>2628</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>118</ID>
              <Description>"Silver"</Description>
              <Color>80000008</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>50C</Offset>
                <Offset>8C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>114</ID>
              <Description>"Salt"</Description>
              <Color>80000008</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>510</Offset>
                <Offset>8C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>113</ID>
              <Description>"LockPicks"</Description>
              <Color>80000008</Color>
              <VariableType>4 Bytes</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>51C</Offset>
                <Offset>8C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>123</ID>
              <Description>"Speed"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>16E8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>124</ID>
              <Description>"JumpHeight"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>270</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>109</ID>
              <Description>"Player.X"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>44</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>111</ID>
              <Description>"Player.Y"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>48</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>110</ID>
              <Description>"Player.Z"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>4C</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>115</ID>
              <Description>"MoveVector.X"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>E8</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>116</ID>
              <Description>"MoveVector.Y"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>EC</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>117</ID>
              <Description>"MoveVector.Z"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>F0</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>122</ID>
              <Description>"MoveVector.Delta"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>16E4</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>125</ID>
              <Description>"Fly.MoveVector.Delta"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>264</Offset>
              </Offsets>
            </CheatEntry>
            <CheatEntry>
              <ID>139</ID>
              <Description>"Walk.Friction"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>25C</Offset>
              </Offsets>
              <CheatEntries>
                <CheatEntry>
                  <ID>140</ID>
                  <Description>"Walk.MoveVector.Delta"</Description>
                  <Color>80000008</Color>
                  <VariableType>Float</VariableType>
                  <Address>p1</Address>
                  <Offsets>
                    <Offset>240</Offset>
                    <Offset>E4</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
            <CheatEntry>
              <ID>141</ID>
              <Description>"Fly.Friction"</Description>
              <Color>80000008</Color>
              <VariableType>Float</VariableType>
              <Address>p1</Address>
              <Offsets>
                <Offset>264</Offset>
              </Offsets>
              <CheatEntries>
                <CheatEntry>
                  <ID>142</ID>
                  <Description>"Fly.MoveVector.Delta"</Description>
                  <Color>80000008</Color>
                  <VariableType>Float</VariableType>
                  <Address>p1</Address>
                  <Offsets>
                    <Offset>254</Offset>
                    <Offset>E4</Offset>
                  </Offsets>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
        <CheatEntry>
          <ID>105</ID>
          <Description>"[Scripts]"</Description>
          <Options moHideChildren="1"/>
          <Color>FF0000</Color>
          <GroupHeader>1</GroupHeader>
          <CheatEntries>
            <CheatEntry>
              <ID>23</ID>
              <Description>"Infinite Ammo"</Description>
              <Color>80000008</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]

alloc( WeaponsHandler_Hook, 256 )
label( exit )
label( back )

WeaponsHandler_Hook:
pushfd
pushad
mov eax,[p1]
test eax,eax
je short exit
cmp [esi+8C],eax
jne short exit
popad
popfd
ret
exit:
popad
popfd
push ebp
mov ebp,esp
and esp,FFFFFFF0
jmp back

aobscan( dwWeaponsHook_AOB, 558BEC83E4F05153568BF1F7 )
label( dwWeaponsHook )
registersymbol( dwWeaponsHook )

dwWeaponsHook_AOB:
dwWeaponsHook:
jmp WeaponsHandler_Hook
nop
back:

[DISABLE]

dwWeaponsHook:
db 55 8B EC 83 E4 F0

unregistersymbol( dwWeaponsHook )
dealloc( WeaponsHandler_Hook )
</AssemblerScript>
            </CheatEntry>
            <CheatEntry>
              <ID>6</ID>
              <Description>"Cheat Handler"</Description>
              <Options moHideChildren="1"/>
              <Color>80000008</Color>
              <VariableType>Auto Assembler Script</VariableType>
              <AssemblerScript>[ENABLE]
//68 E0 BF 4E 01 50 E8 62 3D 2F 00 83 C4 08 85 C0 74 16 33 C9 39 0D 9C 96 69 01 0F 94 C1 89 0D 9C 96 69 01
aobscan(TOGGLEUI_AOB,68xxxxxxxx50E8xxxxxxxx83C40885C0741633C9390Dyyyyyyyy0F94C1890Dyyyyyyyy)
label(TOGGLEUI)
registersymbol(TOGGLEUI)

[TOGGLEUI_AOB+16]:
TOGGLEUI:
////////////////////////////////

alloc( KeyHandlerThread, 4096 )
registersymbol( KeyHandlerThread )
CreateThread( KeyHandlerThread )
label( Toggle )
label( Toggler )
registersymbol( Toggler )
label( KeyHandlerOff )
registersymbol( KeyHandlerOff )
label( ExitKeyHandler )
label( TogglePlayersOnly )
label( bPlayersOnly )
registersymbol( bPlayersOnly )
label( TogglePlayersOnly_exit )
label( ToggleFly )
label( bFly )
registersymbol( bFly )
label( ToggleFly_exit )
label( ToggleGhost )
label( bGhost )
registersymbol( bGhost )
label( ToggleGhost_exit )
label( ToggleGod )
label( bGod )
registersymbol( bGod )
label( ToggleGod_exit )
label( ToggleSloMo1 )
label( ToggleSloMo2 )
label( ToggleSloMo3 )
label( __ToggleUI )


KeyHandlerThread+300:
Toggler:
dd 1

KeyHandlerThread+304:
KeyHandlerOff:
dd 0

KeyHandlerThread+308:
bPlayersOnly:
dd 0

KeyHandlerThread+30C:
bFly:
dd 0

KeyHandlerThread+310:
bGhost:
dd 0

KeyHandlerThread+314:
bGod:
dd 0

KeyHandlerThread:
push 0a
call Sleep

cmp [KeyHandlerOff],1
je ExitKeyHandler

push 71 //F2
call GetAsyncKeyState
test ax,ax
jne Toggle

cmp [Toggler],1
jne KeyHandlerThread

push 61 //VK_NUMPAD1
call GetAsyncKeyState
test ax,ax
jne TogglePlayersOnly

push 62 //VK_NUMPAD2
call GetAsyncKeyState
test ax,ax
jne ToggleFly

push 63 //VK_NUMPAD3
call GetAsyncKeyState
test ax,ax
jne ToggleGhost

push 65 //VK_NUMPAD5
call GetAsyncKeyState
test ax,ax
jne ToggleGod

push 67 //VK_NUMPAD7
call GetAsyncKeyState
test ax,ax
jne ToggleSloMo1

push 68 //VK_NUMPAD8
call GetAsyncKeyState
test ax,ax
jne ToggleSloMo2

push 69 //VK_NUMPAD9
call GetAsyncKeyState
test ax,ax
jne ToggleSloMo3

push 64 //VK_NUMPAD4
call GetAsyncKeyState
test ax,ax
jne __ToggleUI

jmp KeyHandlerThread

TogglePlayersOnly:
xor [bPlayersOnly],1
cmp [bPlayersOnly],0
je @f
mov ecx,[p0]
or dword ptr [ecx+204],80
jmp TogglePlayersOnly_exit
@@:
mov ecx,[p0]
and dword ptr [ecx+204],FFFFFF7F
TogglePlayersOnly_exit:
push C8
call Sleep
jmp KeyHandlerThread

ToggleFly:
xor [bFly],1
cmp [bFly],0
je @f
mov eax,[p1]
mov byte ptr [eax+84],4
mov ecx,[eax+E4]
mov [ecx+254],(float)8.0
jmp ToggleFly_exit
@@:
mov eax,[p1]
mov byte ptr [eax+84],1
mov ecx,[eax+E4]
mov [ecx+254],(float)0.3
ToggleFly_exit:
push C8
call Sleep
jmp KeyHandlerThread

ToggleGhost:
xor [bGhost],1
cmp [bGhost],0
je @f
mov ebx,[p1]
and byte ptr [ebx+60],FFFFFFF0
jmp ToggleGhost_exit
@@:
mov ebx,[p1]
or dword ptr [ebx+60],6
ToggleGhost_exit:
push C8
call Sleep
jmp KeyHandlerThread

ToggleGod:
xor [bGod],1
cmp [bGod],0
je @f
mov eax,[p1]
or [eax+6EC],8
jmp ToggleGod_exit
@@:
mov eax,[p1]
and [eax+6EC],FFFFFFF1
ToggleGod_exit:
push C8
call Sleep
jmp KeyHandlerThread

ToggleSloMo1:
mov ebx,[p0]
mov [ebx+398],(float)0.5
push C8
call Sleep
jmp KeyHandlerThread

ToggleSloMo2:
mov ebx,[p0]
mov [ebx+398],(float)1.0
push C8
call Sleep
jmp KeyHandlerThread

ToggleSloMo3:
mov ebx,[p0]
mov [ebx+398],(float)1.5
push C8
call Sleep
jmp KeyHandlerThread

__ToggleUI:
xor [TOGGLEUI],1
push C8
call Sleep
jmp KeyHandlerThread

Toggle:
xor [Toggler],1
push 96
call Sleep
jmp KeyHandlerThread

ExitKeyHandler:
ret

[DISABLE]
unregistersymbol(TOGGLEUI)
///////////////////////////


KeyHandlerOff:
dd 1

unregistersymbol( bGod )
unregistersymbol( bGhost )
unregistersymbol( bFly )
unregistersymbol( bPlayersOnly )
unregistersymbol( KeyHandlerOff )
</AssemblerScript>
              <CheatEntries>
                <CheatEntry>
                  <ID>11</ID>
                  <Description>"SloMo"</Description>
                  <Color>80000008</Color>
                  <VariableType>Float</VariableType>
                  <Address>p0</Address>
                  <Offsets>
                    <Offset>398</Offset>
                  </Offsets>
                </CheatEntry>
                <CheatEntry>
                  <ID>7</ID>
                  <Description>"PlayersOnly"</Description>
                  <Color>80000008</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bPlayersOnly</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>8</ID>
                  <Description>"Fly"</Description>
                  <Color>80000008</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bFly</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>9</ID>
                  <Description>"Ghost"</Description>
                  <Color>80000008</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bGhost</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>10</ID>
                  <Description>"God"</Description>
                  <Color>80000008</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>bGod</Address>
                </CheatEntry>
                <CheatEntry>
                  <ID>143</ID>
                  <Description>"TOGGLEUI"</Description>
                  <Color>80000008</Color>
                  <VariableType>4 Bytes</VariableType>
                  <Address>TOGGLEUI</Address>
                </CheatEntry>
              </CheatEntries>
            </CheatEntry>
          </CheatEntries>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>Toggler</Name>
      <Address>07320300</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
