<?xml version="1.0"?>
<CheatTable CheatEngineTableVersion="12">
  <CheatEntries>
    <CheatEntry>
      <ID>57</ID>
      <Description>"EXP base script: must be activated FIRST, prerequiste to the next script (exp reduction) (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem7,2048) //2kb should be enough
label(returnhere7)
label(originalcode7)
label(exit7)
label(hHSubFJMP)
label(skillpoints)
aobscan(EXPChange_AOB,89 48 18 8b 57 1C 5D)
registersymbol(hHSubFJMP)


newmem7: //this is allocated memory, you have read,write,execute access
//place your code here
push edx
push ebx
//No changes in this script neccessary; just a technical anchor
// in order for the next script to work: it marks a strand of parallel code
skillpoints:
pop ebx
pop edx

originalcode7:
mov [eax+18],ecx
mov edx,[edi+1C]
pop ebp

exit7:
jmp returnhere7

EXPChange_AOB:
hHSubFJMP:
jmp newmem7
nop
nop
returnhere7:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem7)
hHSubFJMP:                    //"Reckoning.exe"+3A1051:
//db 5E 89 48 18 8B 57 1C
db 89 48 18 8b 57 1C 5D
//db 66 2B C8 66 89 8E DA 00 00 00
//Alt: mov eax,esi
//Alt: neg eax
//Alt: cmp ecx,eax
unregistersymbol(hHSubFJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>49</Key>
          </Keys>
          <Description>EXP Always first</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>56</ID>
      <Description>"60% EXP gain reduction (only works if first script was activated beforehand) (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem8,2048) //2kb should be enough
label(returnhere8)
label(originalcode8)
label(exit8)
label(hHSubGJMP)
label(skillpoints2)
label(NotZero)
aobscan(EXPChange2_AOB,5E 89 48 18 8b 57 1C 5D)
//globalalloc(EXPPointer,4)
//globalalloc(pTotalEXP,4)
registersymbol(hHSubGJMP)


newmem8: //this is allocated memory, you have read,write,execute access
//place your code here

push edx
push ebx
mov edx,[eax+18]
mov ebx,ecx
sub ebx,edx
cmp ebx,(int)15
jbe skillpoints2
cmp ebx,(int)100
je skillpoints2
cmp [eax+18],ecx
je skillpoints2
cmp ebx,(int)10000
jg skillpoints2
cmp ecx,0
jbe skillpoints2
cmp edx,0
jbe skillpoints2
push eax
push edx
mov eax,ebx
//BEGIN OF ADJUSTABLE BLOCK: EXP REDUCTION//
mov edx,3
//above number is the dividend
mul edx
pop edx
sar eax,3
//above number is the divisor
//a 1 means divide by 2, a 2 means divide by 4, a 3 means by 8...
//above settings result in only 3/8 gain (37,5%)
//if you wanted less severe penality and more gain, like e.g. 50%:
//you could set this e.g. to 1 (first number)/1(second number),
//meaning: 1/2 (50%)
//END OF ADJUSTABLE BLOCK: EXP REDUCTION//
mov ebx,eax
pop eax
add [eax+18],ebx
mov ebx,[eax+18]
//mov [pTotalEXP],ebx
cmp ebx,0
jg NotZero
jmp skillpoints2
NotZero:
pop ebx
pop edx
pop esi
jmp originalcode8

skillpoints2:
pop ebx
mov [eax+18],ecx
pop edx
pop esi

originalcode8:
//pop esi
//mov [eax+18],ecx
mov edx,[edi+1C]
pop ebp

exit8:
jmp returnhere8

EXPChange2_AOB:
hHSubGJMP:
jmp newmem8
nop
nop
nop
returnhere8:

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem8)
dealloc(TotalEXP)
hHSubGJMP:                    //"Reckoning.exe"+3A1051:
//db 5E 89 48 18 8B 57 1C
db 5E 89 48 18 8b 57 1C 5D
//db 66 2B C8 66 89 8E DA 00 00 00
//Alt: mov eax,esi
//Alt: neg eax
//Alt: cmp ecx,eax
unregistersymbol(hHSubGJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>50</Key>
          </Keys>
          <Description>EXP -60%</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>2</ID>
      <Description>"Damage done 50%, damage received  200%, Mob min damage 3%, Soft cap player damage at 1500/12% (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem1,2048) //2kb should be enough
label(returnhere1)
label(originalcode1)
label(exit1)
globalalloc(pHeroHealth,4)
alloc(pHeroMaxHealth,4)
alloc(pHeroCurrentHealth,4)
aobscan(hHRead_AOB,8B 4B 48 89 4C 24 14 85 C9)
label(hHReadJMP)
registersymbol(hHReadJMP)
alloc(newmem2,2048) //2kb should be enough
label(returnhere2)
label(originalcode2)
label(exit2)
label(MonsterHP)
label(NonBoosted)
label(StillBoosted)
label(NonBoostedDamage)
label(FiveLimit)
label(FiveRemains)
label(FiveSteps)
label(GoOn)
aobscan(hHSubA_AOB,3B C8 76 ** 03 CE 89 4F 48 ** ** 89 5F 48 B1 40)
label(hHSubAJMP)
registersymbol(hHSubAJMP)

alloc(newmem6,2048) //2kb should be enough
label(returnhere6)
label(originalcode6)
label(exit6)
label(hHSubEJMP)
aobscan(MaxHPIncrease_AOB,83 F8 01 89 47 4C)
registersymbol(hHSubEJMP)


newmem1: //this is allocated memory, you have read,write,execute access
//place your code here
mov [pHeroHealth],ebx
push edx
mov edx,[ebx+4c]
mov [pHeroMaxHealth],edx
mov edx,[ebx+48]
mov [pHeroCurrentHealth],edx
pop edx

originalcode1:
mov ecx,[ebx+48]
mov [esp+14],ecx

exit1:
jmp returnhere1

newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [pHeroHealth],edi
jne MonsterHP
push eax
push ebx
mov eax,esi

// ADJUSTABLE BLOCK: SOFT CAP OF HIGH HP BY EXTREME DAMAGE INCREASE//
cmp [pHeroCurrentHealth],(int)2999
//above number is the hero current hp number which has to be exceeded for below
//described extreme damage increase to kick in
//the changes start with 3000+ hp in this case
//when changing this adjust all other "2999" you see in the whole code below
//to the same value
jbe NonBoosted
mov ebx,(int)40
//above number is the dividend for damage received by player when his health
// is 3000+ hp; it's a counterbalance for excessive stat increase due to
//crafting and the way stat multilpliers are stacked in vanilla
mul ebx
sar eax,(int)1
//above number is the divisor for such damage received by  high hp player
//a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
//above combination results in 40/2 (2^1), i.e. 20 times the vanilla damage
//(or 2000% or paraphrased +additional +1900%)
mov esi,eax
//END OF ADJUSTABLE BLOCK: SOFT CAP OF HIGH HP BY EXTREME DAMAGE INCREASE//

// ADJUSTABLE BLOCK: MINIMUM DAMGAE RECEIVED REGARDLESS OF ARMOR/RESISTENCE//
push [pHeroMaxHealth]
sar [pHeroMaxHealth],5
// above number describes the percentage of the hero's maximum hp that is added
// to damage each time a damage occurs; it adds on every hit, but also on every
// posion, burn, bleed etc. tick. There is an exception to this when hero
// current hp drop below 200 hp or max hero hp are below 128 hp;
// these exceptions are described further down in the code;
// purpose of this is to counterbalance excessive stacking of resistence and
// armor modifiers; furthermore it keeps even grey mobs somewhat dangerous;
// you get better in the game, a true hero - but you remain vulnerable
// a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
// above setting results in 1/32 (2^5), i.e. about 3% of hero max hp added
// to each damage received after armor/resistance calculations;e.g a 10000
// max hp hero would receive (round about) additional 300 points of damage per
// hit this values appears double time (see code below); change the other entry
// accordingly
sub esi,[pHeroMaxHealth]
pop [pHeroMaxHealth]
add ecx,esi
pop ebx
pop eax
cmp ecx,(int)2999
//when a hit brings you below of 3000 current hp, this line (and the one below)
// ensures that this very hit will apply no  more damage then needed to drop to
// 4999 hp; this is just to make it still attractive to go over 3000+ hp
// otherwise a hero with e.g. 2999 hp might be better of than one with 3001 hp
jge StillBoosted
mov ecx,(int)2999
//see above, change in accordane, as all "2999" numbers in the code
jmp originalcode2
// END OF ADJUSTABLE BLOCK: MINIMUM DAMGAE RECEIVED REGARDLESS OF ARMOR/RES//

StillBoosted:
cmp ecx,0
jg originalcode2
mov ecx,0
jmp originalcode2

//ADJUSTABLE BLOCK: DAMAGE RECEVEID BY HERO WHEN CURRENT HP BELOW 5000//
NonBoosted:
mov ebx,(int)4
//above number is the dividend for damage received by player
// this muliplier is the normal multiplier used, i.e. when current hero hp are
// below 3000 hp;
mul ebx
sar eax,(int)1
//above number is the divisor for damage received by player
//a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
//above combintaion results in 4/2 (2^1), i.e. double times the damage received
//by hero than in vanilla; that is 200% of vanilla damage received or
//paraphrased + additional 100%
cmp [pHeroMaxHealth],(int)3000
//This number caps the minmum damage received in certain high hp situations;
//not very relevant actually - without the cap heroes with over 3000 max hp
//might get in situations where they would actually wish for less max hp
//which is to be avoided - therefore this cap
jb FiveLimit
mov [pHeroMaxHealth],(int)3000
//END OF ADJUSTABLE BLOCK: DAMAGE RECEVEID BY HERO WHEN CURRENT HP BELOW 5000//

//ADJUSTABLE BLOCK: EXECPTIONS TO MINIMUM DAMAGE//
FiveLimit:
mov esi,eax
cmp [pHeroMaxHealth],(int)128
//above number is the minimum full hp of the hero that is neccesssary before the
//minimum damage mechanism described above kicks in; I had crashes when going
//below this; if you lower the divisor for minimum damage below, i.e. increase
//minimum damage, you might want to increase this number, too;
// e.g. when setting the divider to 6 (now 5) I would increase this threshold
// to 256 (now 128)
jb FiveRemains
cmp [pHeroCurrentHealth],(int)200
//above number is a switch point at which minimum damage is calculated as
//absolute value (here: +5 additional damage points) instead of using
//above relative method (here: 3% of of max hp). This switch, occuring when
//current hp go equal or below above value (200), is neccessary to somewhat
//mitigate the effect of damage over time ticks from posion, burn, bleed, etc.;
//your reaction window for healing/fleeing is increased this way;
//without this you will have many sudden death situations when fighting foes
//with damage over time attacks
//to deactivate this safe zone change all three values of "200" here and below
//two times to 0; in any case change all three vlaues in parallel
jbe FiveSteps
push [pHeroMaxHealth]
sar [pHeroMaxHealth],5
//this is again the divisor for minimum damage (1/32 here; 2^5; round about
//3% of max hp: set to the same value as above; it repeats for techncial reasons
//only
sub esi,[pHeroMaxHealth]
pop [pHeroMaxHealth]
push [pHeroCurrentHealth]
add [pHeroCurrentHealth],esi
mov ebx,[pHeroCurrentHealth]
pop [pHeroCurrentHealth]
cmp ebx,(int)150
//again, a threshold value: in case any damage brings your hero to 200 or less
//hp, that very damage only drops you down to exactly 200 hp; otherwise spill
//over damage might simply drop you dead right away before entering the 200 hp
// safe zone with reduced minmum damage mechanism
jg FiveRemains
mov esi,0
mov ecx,(int)150
//see above, always chnage in parallel
jmp FiveRemains

FiveSteps:
sub esi,(int)5
//This is the absolute minimum damage added to each damage that occurs within
//the 200 hp safe zone
//END OF ADJUSTABLE BLOCK: EXECPTIONS TO MINIMUM//

FiveRemains:
add ecx,esi
pop ebx
pop eax
cmp ecx,0
//do not change or dying will be glitchy
jg originalcode2
mov ecx,0
//do not change or dying will be glitchy
jmp originalcode2

MonsterHP:
push eax
push ebx
//mov eax,[edi+48]
//mov [edi+48],ecx
//neg eax
//mov ebx,(int)1
//mul ebx
//sar eax,1
//cmp ecx,eax
//jg GoOn
//mov ebx,(int)-1500
//add eax,esi
//add eax,(int)30
//cmp eax,(int)0
//jg GoOn
//mov ebx,[edi+48]
//neg ebx
//cmp eax,ebx
//jb GoOn
//mov ecx,0
//add ecx,esi
//pop ebx
//pop eax
//cmp ecx,0
//do not change or dying will be glitchy
//jg originalcode2
//mov ecx,0
//do not change or dying will be glitchy
//jmp originalcode2

GoOn:
mov eax,esi

//ADJUSTABLE BLOCK: SOFT CAP TO DAMAGE DONE BY HERO//
cmp eax,(int)-1500
//this checks at which damage value a soft cap to the damage the hero deals
//shall be applied; in this case, if you do more than 1500 damage points, you
//get diminishing returns
//purpose is to counterbalance extreme effects due to the way the modifiers
//stack in vanilla; this shall prevent weapon crafting/socketing
//from becoming game breaking in the end game
//this mechanism favors fast weapons over slow a little - I cannot change that
//it will not break stealth kills: there's a glitch though that stealth killed
//opponents need a few extra strikes after they have dropped ;just imagine you
//alredy kncoked them out and now have to finish them off; only a minor glitch
//mind that it's a negative value here
jge NonBoostedDamage
add eax,(int)1629
//change in accordance to above, but use a positive value
sar eax,(int)3
//this is the percentage to which the excess damage, here beyond 1500 damage
//points, is reduced; it's round about 12% right now (1/8, 2^3). E.g when
//dealing 3000 damage points in vanilla this will drop to 1500+1500*12/100=
//1680 damage points
//actually this is not fully correct for I have added additonal 129 points
//to prevent potential crashes (at least 128 should go positive before dividing)
//balancewise these 129 points will have no effect you might notice ingame
sub eax,(int)1629
//change in accordance to above, but use a positive value
//END OF ADJUSTABLE BLOCK: SOFT CAP TO DMAGAE DONE BY HERO//

//ADJUSTABLE BLOCK 1: DAMAGE DONE BY HERO//
mov ebx,(int)1
//above number is the dividend for all damage done by hero
//this damage block repeats a few lines below;
//make changes in both blocks (1&amp;2) in accordance
push edx
mul ebx
pop edx
sar eax,(int)1
//above number is the divisor for damage done by hero
//a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
//right now this is 1/2, i.e. 50% of vanilla damahge done by hero or paraphrased
//-50% to the vanilla damage done by the hero
//END OF ADJUSTABLE BLOCK 1: DAMAGE DONE BY HERO//

mov esi,eax
add ecx,esi
pop ebx
pop eax
cmp ecx,0
//do not change or dying will be glitchy
jg originalcode2
mov ecx,0
//do not change or dying will be glitchy
jmp originalcode2

NonBoostedDamage:
//ADJUSTABLE BLOCK 2: DAMAGE DONE BY HERO//
mov ebx,(int)1
//above number is the dividend for all damage done by hero
//this damage block repeats a few lines above;
//make changes in both blocks (1&amp;2) in accordance
push edx
mul ebx
pop edx
sar eax,(int)1
//above number is the divisor for damage done by hero
//a 1 above means divide by 2, a 2 divide by 4, a 3 divide by 8...
//right now this is 1/2, i.e. 50% of vanilla damage done by hero or paraphrased
//-50% to the vanilla damage done by the hero
//END OF ADJUSTABLE BLOCK 2: DAMAGE DONE BY HERO//

mov esi,eax
add ecx,esi
pop ebx
pop eax
cmp ecx,0
//do not change or dying will be glitchy
jg originalcode2
mov ecx,0
//do not change or dying will be glitchy
jmp originalcode2

originalcode2:
mov [edi+48],ecx


exit2:
jmp returnhere2

newmem6: //this is allocated memory, you have read,write,execute access
//place your code here
cmp eax,01
push ebx

//ADJUSABLE BLOCK: MAX HP TIMES FIVE//
mov ebx,(int)1
//above value is the muliplier for hero's max hp; it's at vanilla level now
//END OF ADJUSABLE BLOCK: MAX HP TIMES FIVE//

mul ebx
pop ebx

originalcode6:
//cmp eax,01
mov [edi+4C],eax

exit6:
jmp returnhere6



hHRead_AOB:                     //"Reckoning.exe"+3A18E5:
hHReadJMP:
jmp newmem1
nop
nop
returnhere1:

hHSubA_AOB:                     //"Reckoning.exe"+3A1059:
hHSubAJMP:
jmp newmem2
nop
nop
nop
nop
returnhere2:

MaxHPIncrease_AOB:
hHSubEJMP:
jmp newmem6
nop
returnhere6:

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem1)
dealloc(newmem2)
dealloc(newmem6)

hHReadJMP:                    //"Reckoning.exe"+3A18E5:
db 8B 4B 48 89 4C 24 14
//Alt: mov ecx,[ebx+48]
//Alt: mov [esp+14],ecx
dealloc(pHeroHealth)
dealloc(pHeroMaxHealth)
dealloc(pHeroCurrentHealth)
//dealloc(Intermediate,4)
unregistersymbol(hHReadJMP)

hHSubAJMP:                    //"Reckoning.exe"+3A1059:
db 03 CE 89 4F 48
//Alt: add ecx,esi
//Alt: mov [edi+48],ecx
unregistersymbol(hHSubAJMP)

hHSubEJMP:                    //"Reckoning.exe"+3A1051:
//db 5E 89 48 18 8B 57 1C
db 83 F8 01 89 47 4C
//db 66 2B C8 66 89 8E DA 00 00 00
//Alt: mov eax,esi
//Alt: neg eax
//Alt: cmp ecx,eax
unregistersymbol(hHSubEJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>51</Key>
          </Keys>
          <Description>DAM Changes</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
      <CheatEntries>
        <CheatEntry>
          <ID>28</ID>
          <Description>"CurrentHealth (leave UNACTIVATED)"</Description>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>pHeroHealth</Address>
          <Offsets>
            <Offset>48</Offset>
          </Offsets>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>60</ID>
      <Description>"Health regeneration 20% effect, Heal potions 50% effect; needs damage script active (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem3,2048) //2kb should be enough
label(returnhere3)
label(originalcode3)
label(exit3)
label(Collecting)
label(Healpotion)
label(MonsterRegeneration)
globalalloc(Counter,4)
aobscan(hHSubB_AOB,03 CE 83 F8 01 89 4F 48 8D 53 01)
label(hHSubBJMP)
registersymbol(hHSubBJMP)

newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [pHeroHealth],edi
jne MonsterRegeneration
//ADJUSTABLE BLOCK: STRENGTH OF HEALING EFFECTS IN FAVOR OF HERO//
cmp esi,(int)30
//above number is for identifying whether a heal potion (or more general:
//single instance heal) or a regeneration potion (or more genereal: heal
//over time) is used; every heal of 30+ points on one tick is considered as
//heal potion; please note that the number of ticks called per second depends
//on the potion used; small regenration potions tick 3 to 5 times per second
//large ones about 20 times per second
jge Healpotion
cmp [Counter],(int)5
//this number divides the strenth of heal over time effects (e.g. regeneration
//potions); it actually inserts blank ticks without effect: the setting of 5,
// reduces HoT effects to 20% (80% effectiveness lost)
jne Collecting
add ecx,esi
mov [Counter],0
jmp originalcode3
Collecting:
add [Counter],(int)1
jmp originalcode3
Healpotion:
push ebx
push eax
mov eax,esi
mov ebx,(int)1
mul ebx
sar eax,(int)1
mov esi,eax
pop eax
pop ebx
//above number divides the strength of single instance heals (e.g. heal potions)
// a 1 means divide by 2, a 2 means by 4, a 3 by 8...
//the 2 above brings single instance heals down 50% (50% effectiveness lost)
//END OF ADJUSTABLE BLOCK: STRENGTH OF HEALING EFFECTS IN FAVOR OF HERO//
add ecx,esi
jmp originalcode3

MonsterRegeneration:
add ecx,esi
//add ecx,esi
//special: above- if un-commmenetned could double monster heals, but I have not
//seen any so far... I keep it commented and tehrewith dectivated to prevent
//potential hidden glitches

originalcode3:
//add ecx,esi
cmp eax,01

exit3:
jmp returnhere3

hHSubB_AOB:                     //"Reckoning.exe"+3A0FC9:
hHSubBJMP:
jmp newmem3
returnhere3:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem3)
hHSubBJMP:                    //"Reckoning.exe"+3A0FC9:
db 03 CE 83 F8 01
//Alt: add ecx,esi
//Alt: cmp eax,01
unregistersymbol(hHSubBJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>52</Key>
          </Keys>
          <Description>HEAL Changes</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>10</ID>
      <Description>"Mana cost 200%, mana reg 33%, mana potions 50%, Min cast cost 10 (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(DRUNTER)
label(MinCostReached)
aobscan(MPSub_AOB,8B D0 F7 DA 3B CA ** ** 03 C8 89 8D 84 00 00 00)
label(MPSubJMP)
registersymbol(MPSubJMP)

alloc(newmem3,2048) //2kb should be enough
label(returnhere3)
label(originalcode3)
label(exit3)
//label(MonsterRegeneration)
label(Collecting)
label(ManaPotion)
globalalloc(ManaCounter,4)
aobscan(ManaRegSub_AOB,01 85 84 00 00 00 8B B5 84 00 00 00)
label(ManaRegSubJMP)
registersymbol(ManaRegSubJMP)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push eax
push ebx
push ecx
mov eax,[ebp+00000084]
sub eax,ecx

// ADJUSTABLE BLOCK: INCREASED MANA COST//
mov ecx,(int)200
//above number is the dividend for mana cost
mul ecx
mov ebx,(int)100
//above number is the divisor for mana cost
//the combination means double mana cost
//i.e. + additional 100% compared to vanilla
//or paraphrased: 200% of vanilla cost
//Note: The last spell before mana rus out can actually be cast for vanilla
//mana cost; it's out of bounds for me to change this
// END OF ADJUSTABLE BLOCK: INCREASED MANA COST//
push edx
div ebx
//ADJUSTABLE BLOCK: MINIMUM MANA COST
cmp eax,(int)10
//above number it the minimum of mana cost per cast, regardless of
//your equipment or skill boni; change in parallel to second number
//below
jg MinCostReached
mov eax,(int)10
//above number is the minimum of mana cost per cast, regardless of
//your equipment or skill boni; change in parallel to first number
//above
//END OF ADJUSTABLE BLOCK: MINIMUM MANA COST
MinCostReached:
pop edx
cmp [ebp+00000084],eax
jbe DRUNTER
sub [ebp+00000084],eax
pop ecx
pop ebx
pop eax
jmp returnhere
DRUNTER:
mov [ebp+00000084],0
pop ecx
pop ebx
pop eax

originalcode:
//mov [ebp+00000084],ecx

exit:
jmp returnhere


newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
//ADJUSTABLE BLOCK: STRENGTH OF MANA EFFECTS IN FAVOR OF HERO//
cmp eax,(int)30
//above number is for identifying whether a mana potion (or more general:
//single instance managain) or a regeneration potion (or more generel: mana
//over time) is used; every mana gain of 30+ points on one tick is considered as
//mana potion; please note that the number of ticks called per second depends
//on the potion used; small regenration potions tick 3 to 5 times per second
//large ones about 20 times per second
jge ManaPotion
cmp [ManaCounter],(int)3
//this number divides the strength of mana over time effects (e.g. regeneration
//potions); it actually inserts blank ticks without effect: the setting of 3,
// reduces mana over time effects to 33% (67% effectiveness lost)
jne Collecting
add [ebp+00000084],eax
mov [ManaCounter],0
jmp originalcode3
Collecting:
add [ManaCounter],(int)1
jmp originalcode3
ManaPotion:
sar eax,1
//above number divides the strength of single instance mana gains
// a 1 means divide by 2, a 2 means by 4, a 3 by 8...
//the 1 above brings single instance gain down 50% (50% effectiveness lost)
//END OF ADJUSTABLE BLOCK: STRENGTH OF MANA EFFECTS IN FAVOR OF HERO//
add [ebp+00000084],eax
jmp originalcode3

originalcode3:
//add [ebp+00000084],eax

exit3:
jmp returnhere3

MPSub_AOB+A:          //"Reckoning.exe"+39A6A1:
MPSubJMP:
jmp newmem
nop
returnhere:

ManaRegSub_AOB:
ManaRegSubJMP:
jmp newmem3
nop
returnhere3:


 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
dealloc(newmem3)
MPSubJMP:             //"Reckoning.exe"+39A6A1:
mov [ebp+00000084],ecx
//Alt: db 89 8D 84 00 00 00
unregistersymbol(MPSubJMP)
ManaRegSubJMP:             //"Reckoning.exe"+39A6A1:
add [ebp+00000084],eax
unregistersymbol(ManaRegSubJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>53</Key>
          </Keys>
          <Description>MANA Changes</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>59</ID>
      <Description>"Slower Fatepoints gain: gain speed down to approximately 25% , later in game even less (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
label(MinFive)
aobscan(Fate_AOB,03 82 04 02 00 00 D9 6C 24 0C)
label(FateSubJMP)
registersymbol(FateSubJMP)


newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp eax,(int)250
jg originalcode
cmp eax,(int)5
jae MinFive
mov eax,(int)5

MinFive:
sub [edx+00000204],(int)5
//ADJUSTABLE BLOCK: FATE GAIN PER KILL
cmp eax,(int)10
//above line sets the maximal fate points per kill
//it's the above value minus 5; here: 10-5 = 5 max. fate points per kill
//to go down to e.g. 4 max points per kill, set this and the below number to 9
//this setting means about max. 2% of your fate bar (when full: 265 fate points)
//per kill, no more fate agin for attck combos alone, no extra fate agin for
//"elite" opponents of various classes; estimated reducutio of gain speed: 25%
//(and even more when late ron you woudl find mor "elite")
//note that foes 4 lvl below you, even if still yellows, don't yield fate points
jbe originalcode
mov eax,(int)10
//keep this number the same as above number; here both at 10
//END OF ADJUSTABLE BLOCK: FATE GAIN PER KILL

originalcode:
add eax,[edx+00000204]

exit:
jmp returnhere

Fate_AOB:
FateSubJMP:
jmp newmem
nop
returnhere:

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
FateSubJMP:             //"Reckoning.exe"+39A6A1:
db 03 82 04 02 00 00
//mov [ebp+00000084],ecx
//Alt: db 89 8D 84 00 00 00
unregistersymbol(FateSubJMP)

</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>54</Key>
          </Keys>
          <Description>FATE Changes</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>18</ID>
      <Description>"Gold found and sell value set to 33% of vanilla: Preparation script (please activate)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
globalalloc(pMoney,4)
aobscan(moneyRead_AOB,85 C0 74 08 8B 80 64 03 00 00 EB 02 33 C0 33 C9 33 D2 89 44 24 20)
label(moneyReadJMP)
registersymbol(moneyReadJMP)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov [pMoney],eax
//just  a script preparing the use of the second gold script; no need for
//changes here; always activate both of these gold scripts, preferably this
//one first
originalcode:
mov eax,[eax+00000364]

exit:
jmp returnhere

moneyRead_AOB+4:            //"Reckoning.exe"+7020EC:
moneyReadJMP:
jmp newmem
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
moneyReadJMP:               //"Reckoning.exe"+7020EC:
db 8B 80 64 03 00 00
//Alt: mov eax,[eax+00000364]
dealloc(pMoney)
unregistersymbol(moneyReadJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>55</Key>
          </Keys>
          <Description>GOLD Changes</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
      <CheatEntries>
        <CheatEntry>
          <ID>19</ID>
          <Description>"Money (leave UNACTIVATED)"</Description>
          <Color>80000008</Color>
          <VariableType>4 Bytes</VariableType>
          <Address>pMoney</Address>
          <Offsets>
            <Offset>364</Offset>
          </Offsets>
        </CheatEntry>
        <CheatEntry>
          <ID>20</ID>
          <Description>"Gold found and sell value set to 33% of vanilla: Executive script (please activate)"</Description>
          <Color>80000008</Color>
          <VariableType>Auto Assembler Script</VariableType>
          <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
aobscan(moneySub_AOB,CC CC 01 86 64 03 00 00 8B 86 64 03 00 00 8B 15 ** ** ** ** 33 C9 85 C0)
label(moneySubJMP)
registersymbol(moneySubJMP)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here
cmp [pMoney],esi
push ebx
push ecx
jne originalcode
cmp eax,(int)0
jbe originalcode
mov ebx,[esi+00000364]
mov ecx,ebx
add ecx,eax
cmp ecx,ebx
jbe originalcode

//ADJUSTABLE BLOCK: DECREASED GOLD INFLUX//
mov ebx,(int)33
//above number is the dividend for gold found and gained by selling
//please note that the sell values appear a shigh as before, but the money you
//get will be only one third (33/100) with above setting
mul ebx
mov ecx,(int)100
//above number is the divisor for gold found and gained by selling
push edx
div ecx
pop edx
//END OF ADJUSTABLE BLOCK: DECREASED GOLD INFLUX//

originalcode:
pop ecx
pop ebx
add [esi+00000364],eax

exit:
jmp returnhere

moneySub_AOB+2:             //"Reckoning.exe"+63C490:
moneySubJMP:
jmp newmem
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
moneySubJMP:                //"Reckoning.exe"+63C490:
db 01 86 64 03 00 00
//Alt: add [esi+00000364],eax
unregistersymbol(moneySubJMP)
</AssemblerScript>
          <Hotkeys>
            <Hotkey>
              <Action>Toggle Activation</Action>
              <Keys>
                <Key>17</Key>
                <Key>55</Key>
              </Keys>
              <Description>GOLD Changes</Description>
              <ID>0</ID>
            </Hotkey>
          </Hotkeys>
        </CheatEntry>
      </CheatEntries>
    </CheatEntry>
    <CheatEntry>
      <ID>29</ID>
      <Description>"MaximumHealth (leave UNACTIVATED)"</Description>
      <Color>80000008</Color>
      <VariableType>4 Bytes</VariableType>
      <Address>pHeroHealth</Address>
      <Offsets>
        <Offset>4C</Offset>
      </Offsets>
    </CheatEntry>
    <CheatEntry>
      <ID>61</ID>
      <Description>"Attack Weight Preparation (please activate; afterwards switch ingame from diffculty hard to medium to hard again)"</Description>
      <Color>80000008</Color>
      <VariableType>Auto Assembler Script</VariableType>
      <AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem5,2048) //2kb should be enough
label(returnhere5)
label(originalcode5)
label(exit5)
label(hHSubDJMP)
globalalloc(AttackWeightPointer,4)
aobscan(AttackWeight_AOB,66 2B C8 66 89 8E DA 00 00 00)
registersymbol(hHSubDJMP)

newmem5: //this is allocated memory, you have read,write,execute access
//place your code here
sub cx,ax

//ADJUSTABLE BLOCK: ATTACK WEIGHT//
mov [esi+000000DA],(int)100
//The game uses a parameter called attack weight to determine how many opponents
//attack you simultaneously with which of their attacks; usually this is 14 on
//hard vanilla difficulty; it's increased to 100 here;
//to have this increase take effect, you have to change diffculty back and
//forth ingame on each restart of the game, like hard-medium-hard
//after doing so place the check mark in front of the Attack Weight Pointer in
//the Cheat Engine menu to lock its value at 100
//END OF ADJUSTABLE BLOCK: ATTACK WEIGHT//

mov [AttackWeightPointer],esi

originalcode5:
//sub cx,ax
//mov [esi+000000DA],cx

exit5:
jmp returnhere5

AttackWeight_AOB:
hHSubDJMP:
jmp newmem5
nop
nop
nop
nop
nop
returnhere5:


[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem5)
hHSubDJMP:                    //"Reckoning.exe"+3A1051:
//db 5E 89 48 18 8B 57 1C
db 66 2B C8 66 89 8E DA 00 00 00
//Alt: mov eax,esi
//Alt: neg eax
//Alt: cmp ecx,eax
unregistersymbol(hHSubDJMP)
</AssemblerScript>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>56</Key>
          </Keys>
          <Description>AW Change now</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
    <CheatEntry>
      <ID>49</ID>
      <Description>"AttackWeight Freeze (please activate after having activated the script above and having done that hard-medium-hard switch ingame)"</Description>
      <Color>80000008</Color>
      <VariableType>Byte</VariableType>
      <Address>AttackWeightPointer</Address>
      <Offsets>
        <Offset>DA</Offset>
      </Offsets>
      <Hotkeys>
        <Hotkey>
          <Action>Toggle Activation</Action>
          <Keys>
            <Key>17</Key>
            <Key>57</Key>
          </Keys>
          <Description>AW alt+tab</Description>
          <ID>0</ID>
        </Hotkey>
      </Hotkeys>
    </CheatEntry>
  </CheatEntries>
  <CheatCodes>
    <CodeEntry>
      <Description>hp +- 1 Code :mov [edi+48],ecx</Description>
      <Address>007A105B</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>3A105B</ModuleNameOffset>
      <Before>
        <Byte>C8</Byte>
        <Byte>76</Byte>
        <Byte>07</Byte>
        <Byte>03</Byte>
        <Byte>CE</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>4F</Byte>
        <Byte>48</Byte>
      </Actual>
      <After>
        <Byte>EB</Byte>
        <Byte>03</Byte>
        <Byte>89</Byte>
        <Byte>5F</Byte>
        <Byte>48</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>hp access 1 Code :mov ecx,[ebx+48]</Description>
      <Address>007A18E5</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>3A18E5</ModuleNameOffset>
      <Before>
        <Byte>8E</Byte>
        <Byte>98</Byte>
        <Byte>01</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>4B</Byte>
        <Byte>48</Byte>
      </Actual>
      <After>
        <Byte>89</Byte>
        <Byte>4C</Byte>
        <Byte>24</Byte>
        <Byte>14</Byte>
        <Byte>85</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>arrow - Code :mov [ebp+00000084],eax</Description>
      <Address>008C16DB</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>4C16DB</ModuleNameOffset>
      <Before>
        <Byte>48</Byte>
        <Byte>3B</Byte>
        <Byte>C3</Byte>
        <Byte>7C</Byte>
        <Byte>06</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>85</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>38</Byte>
        <Byte>9C</Byte>
        <Byte>24</Byte>
        <Byte>F4</Byte>
        <Byte>01</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>arrow + 1 Code :mov [esi+00000084],eax</Description>
      <Address>008866C0</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>4866C0</ModuleNameOffset>
      <Before>
        <Byte>5E</Byte>
        <Byte>6C</Byte>
        <Byte>89</Byte>
        <Byte>5E</Byte>
        <Byte>60</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>86</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>F3</Byte>
        <Byte>0F</Byte>
        <Byte>11</Byte>
        <Byte>86</Byte>
        <Byte>88</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>arrow + 2 Code :mov [esi+00000084],ebx</Description>
      <Address>008C4A6C</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>4C4A6C</ModuleNameOffset>
      <Before>
        <Byte>00</Byte>
        <Byte>03</Byte>
        <Byte>D8</Byte>
        <Byte>78</Byte>
        <Byte>06</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>9E</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>33</Byte>
        <Byte>DB</Byte>
        <Byte>EB</Byte>
        <Byte>12</Byte>
        <Byte>8B</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>arrow + 3 Code :mov [ecx+00000084],eax</Description>
      <Address>008B9C03</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>4B9C03</ModuleNameOffset>
      <Before>
        <Byte>0A</Byte>
        <Byte>8B</Byte>
        <Byte>4C</Byte>
        <Byte>24</Byte>
        <Byte>2C</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>81</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>83</Byte>
        <Byte>7D</Byte>
        <Byte>0C</Byte>
        <Byte>00</Byte>
        <Byte>74</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>arrow access Code :mov eax,[eax+00000084]</Description>
      <Address>0088AFE5</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>48AFE5</ModuleNameOffset>
      <Before>
        <Byte>40</Byte>
        <Byte>20</Byte>
        <Byte>01</Byte>
        <Byte>74</Byte>
        <Byte>0A</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>80</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>01</Byte>
        <Byte>44</Byte>
        <Byte>24</Byte>
        <Byte>18</Byte>
        <Byte>83</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>repair - Code :movss [esi+00000088],xmm0</Description>
      <Address>008BC1CF</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>4BC1CF</ModuleNameOffset>
      <Before>
        <Byte>28</Byte>
        <Byte>C2</Byte>
        <Byte>0F</Byte>
        <Byte>2F</Byte>
        <Byte>D0</Byte>
      </Before>
      <Actual>
        <Byte>F3</Byte>
        <Byte>0F</Byte>
        <Byte>11</Byte>
        <Byte>86</Byte>
        <Byte>88</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>0F</Byte>
        <Byte>82</Byte>
        <Byte>3B</Byte>
        <Byte>01</Byte>
        <Byte>00</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>mp - Code :mov [ebp+00000084],ecx</Description>
      <Address>0079A6A1</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>39A6A1</ModuleNameOffset>
      <Before>
        <Byte>CA</Byte>
        <Byte>76</Byte>
        <Byte>0A</Byte>
        <Byte>03</Byte>
        <Byte>C8</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>8D</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>EB</Byte>
        <Byte>0A</Byte>
        <Byte>C7</Byte>
        <Byte>85</Byte>
        <Byte>84</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>mp + Code :add [ebp+00000084],eax</Description>
      <Address>0079A602</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>39A602</ModuleNameOffset>
      <Before>
        <Byte>8C</Byte>
        <Byte>8F</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>01</Byte>
        <Byte>85</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>B5</Byte>
        <Byte>84</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>hp +- 2 Code :mov [edi+48],ecx</Description>
      <Address>007A0FD1</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>3A0FD1</ModuleNameOffset>
      <Before>
        <Byte>03</Byte>
        <Byte>CE</Byte>
        <Byte>83</Byte>
        <Byte>F8</Byte>
        <Byte>01</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>4F</Byte>
        <Byte>48</Byte>
      </Actual>
      <After>
        <Byte>8D</Byte>
        <Byte>53</Byte>
        <Byte>01</Byte>
        <Byte>7C</Byte>
        <Byte>02</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>hp +- 3 Code :mov [edi+48],ebx</Description>
      <Address>007A1060</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>3A1060</ModuleNameOffset>
      <Before>
        <Byte>F7</Byte>
        <Byte>10</Byte>
        <Byte>01</Byte>
        <Byte>EB</Byte>
        <Byte>03</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>5F</Byte>
        <Byte>48</Byte>
      </Actual>
      <After>
        <Byte>B1</Byte>
        <Byte>40</Byte>
        <Byte>84</Byte>
        <Byte>8F</Byte>
        <Byte>DC</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>fate + 1 Code :mov [edx+00000204],eax</Description>
      <Address>0082D30E</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>42D30E</ModuleNameOffset>
      <Before>
        <Byte>0C</Byte>
        <Byte>3B</Byte>
        <Byte>C1</Byte>
        <Byte>73</Byte>
        <Byte>0C</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>82</Byte>
        <Byte>04</Byte>
        <Byte>02</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>83</Byte>
        <Byte>C4</Byte>
        <Byte>08</Byte>
        <Byte>C2</Byte>
        <Byte>04</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>fate + 2 Code :mov [edx+00000204],ecx</Description>
      <Address>0082D31A</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>42D31A</ModuleNameOffset>
      <Before>
        <Byte>C4</Byte>
        <Byte>08</Byte>
        <Byte>C2</Byte>
        <Byte>04</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>8A</Byte>
        <Byte>04</Byte>
        <Byte>02</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>83</Byte>
        <Byte>C4</Byte>
        <Byte>08</Byte>
        <Byte>C2</Byte>
        <Byte>04</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>fate - Code :mov [eax+00000204],esi</Description>
      <Address>00AF7D00</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>6F7D00</ModuleNameOffset>
      <Before>
        <Byte>F1</Byte>
        <Byte>72</Byte>
        <Byte>02</Byte>
        <Byte>8B</Byte>
        <Byte>F1</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>B0</Byte>
        <Byte>04</Byte>
        <Byte>02</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>5F</Byte>
        <Byte>33</Byte>
        <Byte>C0</Byte>
        <Byte>5E</Byte>
        <Byte>C3</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>skill point - Code :mov [eax+18],ecx</Description>
      <Address>0089CFBA</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>49CFBA</ModuleNameOffset>
      <Before>
        <Byte>00</Byte>
        <Byte>8B</Byte>
        <Byte>4F</Byte>
        <Byte>18</Byte>
        <Byte>5E</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>48</Byte>
        <Byte>18</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>57</Byte>
        <Byte>1C</Byte>
        <Byte>5D</Byte>
        <Byte>89</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>$ +- 1 Code :add [esi+00000364],eax</Description>
      <Address>00A3C490</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>63C490</ModuleNameOffset>
      <Before>
        <Byte>00</Byte>
        <Byte>5B</Byte>
        <Byte>C3</Byte>
        <Byte>CC</Byte>
        <Byte>CC</Byte>
      </Before>
      <Actual>
        <Byte>01</Byte>
        <Byte>86</Byte>
        <Byte>64</Byte>
        <Byte>03</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>86</Byte>
        <Byte>64</Byte>
        <Byte>03</Byte>
        <Byte>00</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>$ +- 2 Code :mov [esi+00000364],eax</Description>
      <Address>00A3C4AC</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>63C4AC</ModuleNameOffset>
      <Before>
        <Byte>9C</Byte>
        <Byte>C1</Byte>
        <Byte>49</Byte>
        <Byte>23</Byte>
        <Byte>C1</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>86</Byte>
        <Byte>64</Byte>
        <Byte>03</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>8A</Byte>
        <Byte>DC</Byte>
        <Byte>32</Byte>
        <Byte>00</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>$ +- 3 Code :mov [esi+00000364],eax</Description>
      <Address>00A3C4C4</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>63C4C4</ModuleNameOffset>
      <Before>
        <Byte>0D</Byte>
        <Byte>8C</Byte>
        <Byte>5A</Byte>
        <Byte>BF</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>86</Byte>
        <Byte>64</Byte>
        <Byte>03</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>49</Byte>
        <Byte>24</Byte>
        <Byte>8B</Byte>
        <Byte>11</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>$ access Code :mov eax,[eax+00000364]</Description>
      <Address>00B020EC</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>7020EC</ModuleNameOffset>
      <Before>
        <Byte>FF</Byte>
        <Byte>85</Byte>
        <Byte>C0</Byte>
        <Byte>74</Byte>
        <Byte>08</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>80</Byte>
        <Byte>64</Byte>
        <Byte>03</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>EB</Byte>
        <Byte>02</Byte>
        <Byte>33</Byte>
        <Byte>C0</Byte>
        <Byte>33</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>cool down start Code :mov [ecx+esi+04],edx</Description>
      <Address>00892ED0</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>492ED0</ModuleNameOffset>
      <Before>
        <Byte>04</Byte>
        <Byte>8B</Byte>
        <Byte>54</Byte>
        <Byte>24</Byte>
        <Byte>1C</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>54</Byte>
        <Byte>31</Byte>
        <Byte>04</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>43</Byte>
        <Byte>04</Byte>
        <Byte>80</Byte>
        <Byte>4C</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>cooling down Code :sub [esi+04],eax</Description>
      <Address>00886D6B</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>486D6B</ModuleNameOffset>
      <Before>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>EB</Byte>
        <Byte>07</Byte>
      </Before>
      <Actual>
        <Byte>29</Byte>
        <Byte>46</Byte>
        <Byte>04</Byte>
      </Actual>
      <After>
        <Byte>FF</Byte>
        <Byte>44</Byte>
        <Byte>24</Byte>
        <Byte>0C</Byte>
        <Byte>45</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>cool down set zero Code :mov [esi+04],00000000</Description>
      <Address>00886D49</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>486D49</ModuleNameOffset>
      <Before>
        <Byte>02</Byte>
        <Byte>C6</Byte>
        <Byte>46</Byte>
        <Byte>08</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>C7</Byte>
        <Byte>46</Byte>
        <Byte>04</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>7C</Byte>
        <Byte>11</Byte>
        <Byte>8B</Byte>
        <Byte>0D</Byte>
        <Byte>54</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Heal HPCode :mov [edi+48],ecx</Description>
      <Address>007A14F1</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>3A14F1</ModuleNameOffset>
      <Before>
        <Byte>94</Byte>
        <Byte>07</Byte>
        <Byte>83</Byte>
        <Byte>F8</Byte>
        <Byte>01</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>4F</Byte>
        <Byte>48</Byte>
      </Actual>
      <After>
        <Byte>8D</Byte>
        <Byte>53</Byte>
        <Byte>01</Byte>
        <Byte>7C</Byte>
        <Byte>02</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Raise EXP Code :mov [eax+18],ecx</Description>
      <Address>0089D7AA</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>49D7AA</ModuleNameOffset>
      <Before>
        <Byte>00</Byte>
        <Byte>8B</Byte>
        <Byte>4F</Byte>
        <Byte>18</Byte>
        <Byte>5E</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>48</Byte>
        <Byte>18</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>57</Byte>
        <Byte>1C</Byte>
        <Byte>5D</Byte>
        <Byte>89</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Gain Level Code :mov eax,[eax+000001F4]</Description>
      <Address>00B0454C</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>70454C</ModuleNameOffset>
      <Before>
        <Byte>FF</Byte>
        <Byte>85</Byte>
        <Byte>C0</Byte>
        <Byte>74</Byte>
        <Byte>08</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>80</Byte>
        <Byte>F4</Byte>
        <Byte>01</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>EB</Byte>
        <Byte>02</Byte>
        <Byte>33</Byte>
        <Byte>C0</Byte>
        <Byte>33</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Real get level 1 Code :mov [edi+000001F4],eax</Description>
      <Address>00847E0E</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>447E0E</ModuleNameOffset>
      <Before>
        <Byte>C6</Byte>
        <Byte>50</Byte>
        <Byte>12</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>87</Byte>
        <Byte>F4</Byte>
        <Byte>01</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>E8</Byte>
        <Byte>87</Byte>
        <Byte>01</Byte>
        <Byte>1D</Byte>
        <Byte>00</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>Real Get Level 2 Code :mov eax,[edi+000001F4]</Description>
      <Address>00847E2C</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>447E2C</ModuleNameOffset>
      <Before>
        <Byte>BF</Byte>
        <Byte>00</Byte>
        <Byte>8B</Byte>
        <Byte>49</Byte>
        <Byte>24</Byte>
      </Before>
      <Actual>
        <Byte>8B</Byte>
        <Byte>87</Byte>
        <Byte>F4</Byte>
        <Byte>01</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>11</Byte>
        <Byte>8B</Byte>
        <Byte>52</Byte>
        <Byte>10</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>DepleteFatebarCode :mov [eax+00000204],esi</Description>
      <Address>09DA0000</Address>
      <ModuleName/>
      <ModuleNameOffset>0</ModuleNameOffset>
      <Before/>
      <Actual>
        <Byte>89</Byte>
        <Byte>B0</Byte>
        <Byte>04</Byte>
        <Byte>02</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </Actual>
      <After>
        <Byte>E9</Byte>
        <Byte>DB</Byte>
        <Byte>83</Byte>
        <Byte>D5</Byte>
        <Byte>F6</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>EXPCode :mov [eax+18],ecx</Description>
      <Address>0089D7AA</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>49D7AA</ModuleNameOffset>
      <Before>
        <Byte>00</Byte>
        <Byte>8B</Byte>
        <Byte>4F</Byte>
        <Byte>18</Byte>
        <Byte>5E</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>48</Byte>
        <Byte>18</Byte>
      </Actual>
      <After>
        <Byte>8B</Byte>
        <Byte>57</Byte>
        <Byte>1C</Byte>
        <Byte>5D</Byte>
        <Byte>89</Byte>
      </After>
    </CodeEntry>
    <CodeEntry>
      <Description>MaxHPIncreasonlvlupCode :mov [edi+4C],eax</Description>
      <Address>007A0C5B</Address>
      <ModuleName>Reckoning.exe</ModuleName>
      <ModuleNameOffset>3A0C5B</ModuleNameOffset>
      <Before>
        <Byte>CE</Byte>
        <Byte>FF</Byte>
        <Byte>83</Byte>
        <Byte>F8</Byte>
        <Byte>01</Byte>
      </Before>
      <Actual>
        <Byte>89</Byte>
        <Byte>47</Byte>
        <Byte>4C</Byte>
      </Actual>
      <After>
        <Byte>B9</Byte>
        <Byte>01</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
        <Byte>00</Byte>
      </After>
    </CodeEntry>
  </CheatCodes>
  <UserdefinedSymbols>
    <SymbolEntry>
      <Name>EnemyNummberPointer</Name>
      <Address>18430000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>pSkillPt</Name>
      <Address>01870000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>pHeroHealth</Name>
      <Address>003E0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>pMoney</Name>
      <Address>00F30000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>cooldownJMP</Name>
      <Address>00888EDE</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>repairJMP</Name>
      <Address>008BE36F</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>fateBJMP</Name>
      <Address>0082DA0C</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>pLvlUpPt</Name>
      <Address>19820000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>pExp</Name>
      <Address>19830000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>AttackWeightPointer</Name>
      <Address>00F60000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>EXPPointer</Name>
      <Address>003D0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubCJMP</Name>
      <Address>007A1571</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>Counter</Name>
      <Address>00EE0000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ManaCounter</Name>
      <Address>00F00000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>TotalEXP</Name>
      <Address>00230000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>pTotalEXP</Name>
      <Address>0A920000</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubFJMP</Name>
      <Address>0086441A</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubGJMP</Name>
      <Address>0089D7A9</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHReadJMP</Name>
      <Address>007A1E05</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubAJMP</Name>
      <Address>007A1575</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubEJMP</Name>
      <Address>007A0C58</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubBJMP</Name>
      <Address>007A14EC</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>MPSubJMP</Name>
      <Address>0079ABC1</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>ManaRegSubJMP</Name>
      <Address>0079AB22</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>FateSubJMP</Name>
      <Address>0082DA00</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>moneyReadJMP</Name>
      <Address>00B027CC</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>moneySubJMP</Name>
      <Address>00A3BE30</Address>
    </SymbolEntry>
    <SymbolEntry>
      <Name>hHSubDJMP</Name>
      <Address>0088A42E</Address>
    </SymbolEntry>
  </UserdefinedSymbols>
</CheatTable>
