alloc(newmem,2048,"DiabloImmortal.exe"+6BA8E0) 
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov rcx,[rdi]
lea rdx,[rsp+30]

// rcx+6C = bat 1 tat 0
// rcx+2C = y hp
// rcx+30 = x hp
// rcx+34 = % hp

// summon = y 50 x 78 % 7.8 float
// enemy = y 50 x 52 % 23.39999962
// 42480000 42500000 41BB3333
// rbx+0 = float object x
// rbx+4 = float object y
// rsi+0 =
// rdi+0 = name path png

push rax // address
mov rax,newmem+500 // address 0x0 value vtmem
//mov byte ptr [rcx+6C],01 // test

cmp byte ptr [rcx+6C],00
jne exit01
//cmp [rcx+2C],42480000 // y hp do
//jne exit01
//cmp [rcx+30],42500000 // x hp do
//jne exit01
//cmp [rcx+34],41BB3333 // % hp do
//jne exit01

cmp [rbx],(float)0  // > x 0 exit
jb exit01

cmp [rbx],(float)940  // < x 800 exit
ja exit01

cmp [rbx+4],(float)10  // > y 0 exit
jb exit01

cmp [rbx+4],(float)490  // < y 500 exit
ja exit01



mov [rax],rcx // 6C bat = 0 tat = 1, +2C x y hp
mov [rax+8],rbx // float x float y
mov [rax+10],rsi
mov [rax+18],rdi // rdi png

exit01:

pop rax



exit:
jmp returnhere

"DiabloImmortal.exe"+6BA8E0:
jmp newmem
nop
nop
nop
returnhere:

