<?xml version="1.0" encoding="utf-8"?>
<CheatTable ApoctEngineTableVersion="45">
  <CheatEntries>
    <CheatEntry>
      <ID>1</ID>
      <Description>"Edit Current gold"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Arcanum.exe
  Version: 
  Date   : 2024-08-05
  Author : Apocalypticx

  This script does edit gold amount
}

[ENABLE]

aobscanmodule(gold1,Arcanum.exe,8B 00 89 47 10) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(CurrentGold)
label(EditGold)

newmem:
pushfd
cmp [esp+4],000000A5
je CurrentGold
popfd

code:
  mov eax,[eax]
  mov [edi+10],eax
  jmp return

CurrentGold:
popfd
push ebx
mov ebx,[EditGold]
mov [eax],ebx
pop ebx
mov eax,[eax]
mov [edi+10],eax
jmp return

EditGold:
dd 0

gold1:
  jmp newmem
return:
registersymbol(gold1)
registersymbol(EditGold)

[DISABLE]

gold1:
  db 8B 00 89 47 10

unregistersymbol(EditGold)
unregistersymbol(gold1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcanum.exe+E419D

Arcanum.exe+E4179: 40                    - inc eax
Arcanum.exe+E417A: 4E                    - dec esi
Arcanum.exe+E417B: 00 90 90 90 90 57     - add [eax+57909090],dl
Arcanum.exe+E4181: 8B 7C 24 08           - mov edi,[esp+08]
Arcanum.exe+E4185: 8B 0F                 - mov ecx,[edi]
Arcanum.exe+E4187: 8B 47 04              - mov eax,[edi+04]
Arcanum.exe+E418A: 83 C1 FD              - add ecx,-03
Arcanum.exe+E418D: 83 F9 0A              - cmp ecx,0A
Arcanum.exe+E4190: 0F 87 BC 00 00 00     - ja Arcanum.exe+E4252
Arcanum.exe+E4196: FF 24 8D 54 42 4E 00  - jmp dword ptr [ecx*4+Arcanum.exe+E4254]
// ---------- INJECTING HERE ----------
Arcanum.exe+E419D: 8B 00                 - mov eax,[eax]
// ---------- DONE INJECTING  ----------
Arcanum.exe+E419F: 89 47 10              - mov [edi+10],eax
Arcanum.exe+E41A2: 5F                    - pop edi
Arcanum.exe+E41A3: C3                    - ret 
Arcanum.exe+E41A4: 8B 10                 - mov edx,[eax]
Arcanum.exe+E41A6: 33 C9                 - xor ecx,ecx
Arcanum.exe+E41A8: 3B D1                 - cmp edx,ecx
Arcanum.exe+E41AA: 0F 84 9F 00 00 00     - je Arcanum.exe+E424F
Arcanum.exe+E41B0: 8B 57 08              - mov edx,[edi+08]
Arcanum.exe+E41B3: 8D 4F 10              - lea ecx,[edi+10]
Arcanum.exe+E41B6: 51                    - push ecx
}
</AssemblerScript>
      <CheatEntries>
        <CheatEntry>
          <ID>2</ID>
          <Description>"Editgold"</Description>
          <ShowAsSigned>0</ShowAsSigned>
          <VariableType>4 Bytes</VariableType>
          <Address>EditGold</Address>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>6</ID>
      <Description>"Infinite H+F"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Arcanum.exe
  Version: 
  Date   : 2024-08-12
  Author : Apocalypticx

  This script does infinite health and fatigue
}

[ENABLE]

aobscanmodule(stamina1,Arcanum.exe,89 07 5F 5E C3 8B) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(InfiniteStamina)
label(InfiniteHealth)
label(GodMode)

newmem:
pushfd
cmp [esp+4],1D       //attack
je InfiniteHealth
cmp [esp+4],E2       //fatigue
je InfiniteStamina
popfd

code:
  mov [edi],eax
  pop edi
  pop esi
  ret 
  jmp return

InfiniteHealth:
cmp [esp+14],21E       //party
je GodMode
cmp [esp+14],452       //half ogre, gnome
je GodMode
cmp [esp+14],450       //halfling, half elf, elf, human, half orc, dwarf, orc
je GodMode
cmp [esp+14],452       //half ogre, gnome
je GodMode
popfd
mov [edi],eax
pop edi
pop esi
ret
jmp return

InfiniteStamina:
popfd
mov eax,0                 //0 fatigue loss
mov [edi],eax
pop edi
pop esi
ret
jmp return

GodMode:
popfd
mov eax,0                 //0 damage loss
mov [edi],eax
pop edi
pop esi
ret
jmp return

stamina1:
  jmp newmem
return:
registersymbol(stamina1)

[DISABLE]

stamina1:
  db 89 07 5F 5E C3

unregistersymbol(stamina1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcanum.exe+E4021

Arcanum.exe+E4000: 56                    - push esi
Arcanum.exe+E4001: 8B 74 24 08           - mov esi,[esp+08]
Arcanum.exe+E4005: 57                    - push edi
Arcanum.exe+E4006: 8B 06                 - mov eax,[esi]
Arcanum.exe+E4008: 8B 7E 04              - mov edi,[esi+04]
Arcanum.exe+E400B: 83 C0 FD              - add eax,-03
Arcanum.exe+E400E: 83 F8 0A              - cmp eax,0A
Arcanum.exe+E4011: 0F 87 F6 00 00 00     - ja Arcanum.exe+E410D
Arcanum.exe+E4017: FF 24 85 50 41 4E 00  - jmp dword ptr [eax*4+Arcanum.exe+E4150]
Arcanum.exe+E401E: 8B 46 10              - mov eax,[esi+10]
// ---------- INJECTING HERE ----------
Arcanum.exe+E4021: 89 07                 - mov [edi],eax
// ---------- DONE INJECTING  ----------
Arcanum.exe+E4023: 5F                    - pop edi
Arcanum.exe+E4024: 5E                    - pop esi
Arcanum.exe+E4025: C3                    - ret 
Arcanum.exe+E4026: 8B 4E 10              - mov ecx,[esi+10]
Arcanum.exe+E4029: 8B 46 14              - mov eax,[esi+14]
Arcanum.exe+E402C: 0B C8                 - or ecx,eax
Arcanum.exe+E402E: 8B 07                 - mov eax,[edi]
Arcanum.exe+E4030: 0F 84 C4 00 00 00     - je Arcanum.exe+E40FA
Arcanum.exe+E4036: 85 C0                 - test eax,eax
Arcanum.exe+E4038: 75 0C                 - jne Arcanum.exe+E4046
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>7</ID>
      <Description>"1 Hit Kill"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>{ Game   : Arcanum.exe
  Version: 
  Date   : 2024-08-20
  Author : Apocalypticx

  This script does one hit kill
}

[ENABLE]

aobscanmodule(onehitkill1,Arcanum.exe,83 C0 FD 83 F8 0A 0F 87 F6) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(PlayerCheck)
label(NoKill)
label(1HitKill)


newmem:
pushfd
cmp [esp+4],1D       //attack
je PlayerCheck
popfd

code:
  add eax,-03
  cmp eax,0A
  jmp return

PlayerCheck:
cmp [esp+14],21E       //party
jne NoKill
cmp [esp+14],450       //halfling, half elf, elf, human, half orc, dwarf, orc
jne 1HitKill
cmp [esp+14],452       //half ogre, gnome
jne 1HitKill
cmp [esp+14],458       //misc
jne 1HitKill
popfd
add eax,-03
cmp eax,0A
jmp return

NoKill:
popfd
add eax,-03
cmp eax,0A
jmp return

1HitKill:
popfd
add eax,-03
cmp eax,0A
mov [esi+10],(int)65535
jmp return

onehitkill1:
  jmp newmem
  nop
return:
registersymbol(onehitkill1)

[DISABLE]

onehitkill1:
  db 83 C0 FD 83 F8 0A

unregistersymbol(onehitkill1)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: Arcanum.exe+E400B

Arcanum.exe+E3FF7: 02 02                 - add al,[edx]
Arcanum.exe+E3FF9: 02 02                 - add al,[edx]
Arcanum.exe+E3FFB: 02 01                 - add al,[ecx]
Arcanum.exe+E3FFD: 01 02                 - add [edx],eax
Arcanum.exe+E3FFF: 90                    - nop 
Arcanum.exe+E4000: 56                    - push esi
Arcanum.exe+E4001: 8B 74 24 08           - mov esi,[esp+08]
Arcanum.exe+E4005: 57                    - push edi
Arcanum.exe+E4006: 8B 06                 - mov eax,[esi]
Arcanum.exe+E4008: 8B 7E 04              - mov edi,[esi+04]
// ---------- INJECTING HERE ----------
Arcanum.exe+E400B: 83 C0 FD              - add eax,-03
// ---------- DONE INJECTING  ----------
Arcanum.exe+E400E: 83 F8 0A              - cmp eax,0A
Arcanum.exe+E4011: 0F 87 F6 00 00 00     - ja Arcanum.exe+E410D
Arcanum.exe+E4017: FF 24 85 50 41 4E 00  - jmp dword ptr [eax*4+Arcanum.exe+E4150]
Arcanum.exe+E401E: 8B 46 10              - mov eax,[esi+10]
Arcanum.exe+E4021: 89 07                 - mov [edi],eax
Arcanum.exe+E4023: 5F                    - pop edi
Arcanum.exe+E4024: 5E                    - pop esi
Arcanum.exe+E4025: C3                    - ret 
Arcanum.exe+E4026: 8B 4E 10              - mov ecx,[esi+10]
Arcanum.exe+E4029: 8B 46 14              - mov eax,[esi+14]
}
</AssemblerScript>
    </CheatEntry>
    <CheatEntry>
      <ID>8</ID>
      <Description>"Donate Paypal"</Description>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
{$lua}
--NO_ACTIVATE
if syntaxcheck then return end
if memrec then print(memrec.Description) end

shellExecute('https://paypal.me/apocalypticx?country.x=GB&amp;locale.x=en_GB')

getLuaEngine().MenuItem1.DoClick()
getLuaEngine().Close()

[DISABLE]

</AssemblerScript>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry GroupHeader="1">
      <Description>Gold Read</Description>
    </CodeEntry>
    <CodeEntry>
      <Description>Code :mov eax,[eax]</Description>
      <AddressString>Arcanum.exe+E419D</AddressString>
      <Before>
        <Byte>8D</Byte>
        <Byte>54</Byte>
        <Byte>42</Byte>
        <Byte>4E</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>89</Byte>
        <Byte>47</Byte>
        <Byte>10</Byte>
        <Byte>5F</Byte>
        <Byte>C3</Byte>
      </After>
    </CodeEntry>
    <CodeEntry GroupHeader="1">
      <Description>Gold Write</Description>
    </CodeEntry>
    <CodeEntry>
      <Description>Code :mov [edi],eax</Description>
      <AddressString>Arcanum.exe+E4021</AddressString>
      <Before>
        <Byte>4E</Byte>
        <Byte>00</Byte>
        <Byte>8B</Byte>
        <Byte>46</Byte>
        <Byte>10</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>07</Byte>
      </Actual>
      <After>
        <Byte>5F</Byte>
        <Byte>5E</Byte>
        <Byte>C3</Byte>
        <Byte>8B</Byte>
        <Byte>4E</Byte>
      </After>
    </CodeEntry>
    <CodeEntry GroupHeader="1">
      <Description>Exp</Description>
    </CodeEntry>
    <CodeEntry>
      <Description>Code :repe movsd </Description>
      <AddressString>Arcanum.exe+E76A4</AddressString>
      <Before>
        <Byte>8B</Byte>
        <Byte>C1</Byte>
        <Byte>C1</Byte>
        <Byte>E9</Byte>
        <Byte>02</Byte>
      </Before>
      <Actual>
        <Byte>F3</Byte>
        <Byte>A5</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>C8</Byte>
        <Byte>83</Byte>
        <Byte>C4</Byte>
        <Byte>04</Byte>
      </After>
    </CodeEntry>
    <CodeEntry GroupHeader="1">
      <Description>Attack Write</Description>
    </CodeEntry>
    <CodeEntry>
      <Description>Code :call Arcanum.exe+E4000</Description>
      <AddressString>Arcanum.exe+8875</AddressString>
      <Before>
        <Byte>8D</Byte>
        <Byte>54</Byte>
        <Byte>24</Byte>
        <Byte>08</Byte>
        <Byte>52</Byte>
      </Before>
      <Actual>
        <Byte>E8</Byte>
        <Byte>86</Byte>
        <Byte>B7</Byte>
        <Byte>0D</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>83</Byte>
        <Byte>C4</Byte>
        <Byte>04</Byte>
        <Byte>5F</Byte>
        <Byte>5E</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols/>
</CheatTable>
