<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="42">
  <CheatEntries>
    <CheatEntry>
      <ID>3</ID>
      <Description>"Infinite Hp"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : duke3d.exe
  Version: 
  Date   : 2022-12-29
  Author : MarianaRoses
  AoB    : 66 ?? ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 8B ?? ?? 81 ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 8D ?? ?? C1 ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? ?? ?? ?? ?? 98 89 ?? ?? 3B ?? 0F ?? ?? ?? ?? ?? 8B ?? E8 ?? ?? ?? ?? 66 ?? ?? 0F ?? ?? ?? ?? ?? 8B ?? ?? ?? ?? ?? 69 ?? ?? ?? ?? ?? 41 69 ?? ?? ?? ?? ?? 8B ?? 8B ?? ?? ?? ?? ?? C1 ?? ?? 83 ?? ?? 2B ?? 47 83 ?? ?? 8B ?? 89 ?? ?? C1
  This script does blah blah blah
}

[ENABLE]

aobscanmodule(bplayer,duke3d.exe,66 ?? ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 8B ?? ?? 81 ?? ?? ?? ?? ?? 0F) // should be unique
alloc(newmem,$1000,bplayer)
alloc(bplayerc,8)
alloc(bplayerx,8)
registerSymbol(bplayer bplayerc bplayerx)
label(code return)

bplayerc:
  readmem(bplayer,8)

bplayerx:
  readmem(bplayer+3,4)
newmem:
  push ecx
  mov ecx,[bplayerx]
  add ecx,eax
  mov word ptr [ecx],#999
  pop ecx
code:
  readmem(bplayer,8)
  jmp return

bplayer:
  jmp newmem
  nop 3
return:

[DISABLE]
bplayer:
  readmem(bplayerc,8)
unregistersymbol(*)
dealloc(*)
       {
// ORIGINAL CODE - INJECTION POINT: duke3d.exe+229FE

duke3d.exe+229D6: E8 B5 70 07 00           - call duke3d.exe+99A90
duke3d.exe+229DB: 0F B7 C8                 - movzx ecx,ax
duke3d.exe+229DE: 0F B7 43 18              - movzx eax,word ptr [ebx+18]
duke3d.exe+229E2: 89 45 F8                 - mov [ebp-08],eax
duke3d.exe+229E5: 89 45 F4                 - mov [ebp-0C],eax
duke3d.exe+229E8: 0F BF C1                 - movsx eax,cx
duke3d.exe+229EB: 69 D0 08 04 00 00        - imul edx,eax,00000408
duke3d.exe+229F1: 89 55 E8                 - mov [ebp-18],edx
duke3d.exe+229F4: 0F BF 82 E8 D8 2E 01     - movsx eax,word ptr [edx+duke3d.exe+5FD8E8]
duke3d.exe+229FB: 6B C0 2C                 - imul eax,eax,2C
// ---------- INJECTING HERE ----------
duke3d.exe+229FE: 66 83 B8 3A 68 97 01 00  - cmp word ptr [eax+duke3d.exe+C8683A],00
// ---------- DONE INJECTING  ----------
duke3d.exe+22A06: 0F 8E FD 02 00 00        - jng duke3d.exe+22D09
duke3d.exe+22A0C: 8B 4D EC                 - mov ecx,[ebp-14]
duke3d.exe+22A0F: 81 F9 30 75 00 00        - cmp ecx,00007530
duke3d.exe+22A15: 0F 8D BE 02 00 00        - jnl duke3d.exe+22CD9
duke3d.exe+22A1B: 8D 34 F6                 - lea esi,[esi+esi*8]
duke3d.exe+22A1E: C1 F9 08                 - sar ecx,08
duke3d.exe+22A21: 66 FF 04 F5 C0 07 30 01  - inc word ptr [esi*8+duke3d.exe+6107C0]
duke3d.exe+22A29: 66 8B 04 F5 C0 07 30 01  - mov ax,[esi*8+duke3d.exe+6107C0]
duke3d.exe+22A31: 98                       - cwde 
duke3d.exe+22A32: 89 75 DC                 - mov [ebp-24],esi
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>7</ID>
      <Description>"Infinite Armor"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : duke3d.exe
  Version: 
  Date   : 2022-12-29
  Author : MarianaRoses
  AoB    : 0F ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B ?? ?? 8B ?? ?? 64 ?? ?? ?? ?? ?? ?? 59 8B ?? 5D C2 ?? ?? ?? ?? 55 8B ?? 6A ?? 68 ?? ?? ?? ?? 64 ?? ?? ?? ?? ?? 50 51 A1 ?? ?? ?? ?? 33 ?? 50 8D ?? ?? 64 ?? ?? ?? ?? ?? 8B ?? ?? C7 ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? 83 ?? ?? 75 ?? B8
  This script does blah blah blah
}

[ENABLE]

aobscanmodule(infarmor,duke3d.exe,0F ?? ?? ?? ?? ?? ?? E8 ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? C7 ?? ?? ?? ?? ?? ?? 8B) // should be unique
alloc(newmem,$1000,infarmor)
alloc(infarmorc,7)
alloc(infarmorx,2)
registerSymbol(infarmor infarmorc infarmorx)
label(code return)

infarmorc:
  readmem(infarmor,7)

infarmorx:
  dw #999
newmem:

code:
  readmem(infarmor,7)
  movsx edx,word ptr [infarmorx]
  jmp return

infarmor:
  jmp newmem
  nop 2
return:

[DISABLE]
infarmor:
  readmem(infarmorc,7)
unregistersymbol(*)
dealloc(*)
       {
// ORIGINAL CODE - INJECTION POINT: duke3d.exe+8AB40

duke3d.exe+8AB20: 50                    - push eax
duke3d.exe+8AB21: 51                    - push ecx
duke3d.exe+8AB22: A1 74 30 FC 00        - mov eax,[duke3d.exe+2D3074]
duke3d.exe+8AB27: 33 C5                 - xor eax,ebp
duke3d.exe+8AB29: 50                    - push eax
duke3d.exe+8AB2A: 8D 45 F4              - lea eax,[ebp-0C]
duke3d.exe+8AB2D: 64 A3 00 00 00 00     - mov fs:[00000000],eax
duke3d.exe+8AB33: 8B 45 0C              - mov eax,[ebp+0C]
duke3d.exe+8AB36: C7 45 F0 00 00 00 00  - mov [ebp-10],00000000
duke3d.exe+8AB3D: 8B 4D 08              - mov ecx,[ebp+08]
// ---------- INJECTING HERE ----------
duke3d.exe+8AB40: 0F BF 90 82 03 00 00  - movsx edx,word ptr [eax+00000382]
// ---------- DONE INJECTING  ----------
duke3d.exe+8AB47: E8 A4 DA FA FF        - call duke3d.exe+385F0
duke3d.exe+8AB4C: C7 45 FC 00 00 00 00  - mov [ebp-04],00000000
duke3d.exe+8AB53: C7 45 F0 01 00 00 00  - mov [ebp-10],00000001
duke3d.exe+8AB5A: 8B 45 08              - mov eax,[ebp+08]
duke3d.exe+8AB5D: 8B 4D F4              - mov ecx,[ebp-0C]
duke3d.exe+8AB60: 64 89 0D 00 00 00 00  - mov fs:[00000000],ecx
duke3d.exe+8AB67: 59                    - pop ecx
duke3d.exe+8AB68: 8B E5                 - mov esp,ebp
duke3d.exe+8AB6A: 5D                    - pop ebp
duke3d.exe+8AB6B: C2 08 00              - ret 0008
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>16</ID>
      <Description>"Infinite Ammo * Except Grenade"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : duke3d.exe
  Version: 
  Date   : 2022-12-29
  Author : MarianaRoses
  AoB    : 66 ?? ?? ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? 33 ?? 6B ?? ?? 0F ?? ?? ?? ?? ?? ?? 98 6B ?? ?? 0F ?? ?? 03 ?? 8B ?? ?? ?? ?? ?? ?? 85 ?? 75 ?? B8 ?? ?? ?? ?? EB ?? 83 ?? ?? 74 ?? 80 ?? ?? ?? ?? ?? ?? ?? 74 ?? 66 ?? ?? ?? ?? ?? ?? ?? ?? 7F ?? 42 66 ?? ?? ?? 7C ?? 33 ?? 66 ?? ?? ?? ?? ?? ?? 66 ?? ?? ?? 0F ?? ?? 33 ?? 66 ?? ?? ?? ?? ?? ?? 33
  This script does blah blah blah
}

[ENABLE]
aobscanmodule(bammo,duke3d.exe,66 ?? ?? ?? ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? 0F ?? ?? ?? ?? ?? ?? 33 ?? 6B) // should be unique
alloc(newmem,$1000,bammo)
alloc(bammoc,9)
alloc(bammoi,8)
registerSymbol(bammo bammoc bammoi)
label(code return)

bammoc:
  readmem(bammo,9)

bammoi:
  readmem(bammo+4,4)
newmem:
  push edx
  push eax
  mov edx,[bammoi]
  add edx,ecx
  imul eax,2
  add edx,eax
  mov word ptr [edx],#999
  pop eax
  pop edx
code:
  readmem(bammo,9)
  jmp return

bammo:
  jmp newmem
  nop 4
return:

[DISABLE]
bammo:
  readmem(bammoc,9)
unregistersymbol(*)
dealloc(*)
       {
// ORIGINAL CODE - INJECTION POINT: duke3d.exe+2117C

duke3d.exe+21155: 66 83 BC 51 DA 02 00 00 00  - cmp word ptr [ecx+edx*2+000002DA],00
duke3d.exe+2115E: 7E 08                       - jle duke3d.exe+21168
duke3d.exe+21160: 5F                          - pop edi
duke3d.exe+21161: 5E                          - pop esi
duke3d.exe+21162: 5B                          - pop ebx
duke3d.exe+21163: E9 28 FE FF FF              - jmp duke3d.exe+20F90
duke3d.exe+21168: 0F B7 B9 FA 02 00 00        - movzx edi,word ptr [ecx+000002FA]
duke3d.exe+2116F: 0F BF C7                    - movsx eax,di
duke3d.exe+21172: 80 BC 08 CA 03 00 00 00     - cmp byte ptr [eax+ecx+000003CA],00
duke3d.exe+2117A: 74 0F                       - je duke3d.exe+2118B
// ---------- INJECTING HERE ----------
duke3d.exe+2117C: 66 83 BC 41 DA 02 00 00 00  - cmp word ptr [ecx+eax*2+000002DA],00
// ---------- DONE INJECTING  ----------
duke3d.exe+21185: 0F 8F 9E 00 00 00           - jg duke3d.exe+21229
duke3d.exe+2118B: 0F BF 81 28 03 00 00        - movsx eax,word ptr [ecx+00000328]
duke3d.exe+21192: 33 D2                       - xor edx,edx
duke3d.exe+21194: 6B C0 2C                    - imul eax,eax,2C
duke3d.exe+21197: 0F B7 80 32 68 97 01        - movzx eax,word ptr [eax+duke3d.exe+C86832]
duke3d.exe+2119E: 98                          - cwde 
duke3d.exe+2119F: 6B F0 0D                    - imul esi,eax,0D
duke3d.exe+211A2: 0F BF C2                    - movsx eax,dx
duke3d.exe+211A5: 03 C6                       - add eax,esi
duke3d.exe+211A7: 8B 04 85 E0 FC BC 01        - mov eax,[eax*4+duke3d.exe+EDFCE0]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>27979</ID>
      <Description>"Author: MarianaRoses -- Visit Us at Https://opencheattables.com"</Description>
      <Color>0000FF</Color>
      <GroupHeader>1</GroupHeader>
    </CheatEntry>
  </CheatEntries>
  <UserdefinedSymbols/>
</CheatTable>
