alloc(newmem,4048,"DiabloImmortal.exe"+46FDD4)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov rax,[rbx]
movss xmm0,[rax+08]
// comiss xmm0,[rdi+08]
// seta cl


// rcx = rbx cmp byte ptr [rcx+6C],00
// rbx
// rdi xy playter

push rax // address

mov rax,newmem+500 // address 0x0 value vtmem

cmp byte ptr [rcx+21],00 // test
jne exit01

mov [rax+100],newmem+500 // address 0x0 value vtmem loop

cmp [rcx],(float)500  // > x 150 exit
jb exit01

cmp [rcx],(float)1940  // < x 800 exit
ja exit01

cmp [rcx+4],(float)0  // > y 0 exit
jb exit01

cmp [rcx+4],(float)1490  // < y 500 exit
ja exit01

cmp [rax+0],00000000  // < y 500 exit
jne if01
mov [rax+0],rcx // float x float y
jmp exit01
if01:

cmp [rax+8],00000000  // < y 500 exit
jne if02
mov [rax+8],rcx // float x float y
jmp exit01
if02:

cmp [rax+10],00000000  // < y 500 exit
jne if03
mov [rax+10],rcx // float x float y
jmp exit01
if03:

cmp [rax+18],00000000  // < y 500 exit
jne if04
mov [rax+18],rcx // float x float y
jmp exit01
if04:

cmp [rax+20],00000000  // < y 500 exit
jne if05
mov [rax+20],rcx // float x float y
jmp exit01
if05:

//mov [rax+8],rbx // float x float y
//mov [rax+10],rsi
//mov [rax+18],rdi // rdi png
//mov [rax+20],rax
//mov [rax+28],rdx

exit01:

pop rax



exit:
jmp returnhere

"DiabloImmortal.exe"+46FDD4:
jmp newmem
nop
nop
nop
returnhere:

