

//alloc(newmem,2048,"DiabloImmortal.exe"+FF52C3)
//alloc(newmem,2048,"DiabloImmortal.exe"+10038A3)
//alloc(newmem,2048,"DiabloImmortal.exe"+FFFD73)
//alloc(newmem,2048,"DiabloImmortal.exe"+1000DF3)
alloc(newmem,2048,"DiabloImmortal.exe"+116EB92)


label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
// arrow + light
// [r15+14] = x float
// [r15+18] = y float
// [r15+24] = x size float
// [r15+28] = y size float
// [r15+6C] bat = 0 tat = 1, +2C x y hps

// [r15-1C] = xmin float
// [r15-18] = ymax float

// [r15-4] = xmax float
// [r15-0] = ymin float





//movss xmm10,[r15+18]
//movss xmm11,[r15+1C]
movss xmm13,[r15-34]
//movss xmm14,[r15-30]
//movss xmm15,[r15-2C]



push rax // address
mov rax,newmem+500 // address 0x0 value vtmem


cmp byte ptr[r15-50],01 // 425+20
jne if01
movss xmm13,[r15-28]
if01:

cmp byte ptr[r15-50],00 // 425+20
jne if02
mov [rax+8*1],r15
if02:

// REMOVE ARROW Clans unlocked + Open Inventory + Click to view

cmp byte ptr [rax+8*3],1 // bat = 1 tat = 0
jne if03
cmp [r15+24],(float)0.2 // 0.6171875
jb if03
cmp [r15+24],(float)0.8 // 0.6171875
ja if03
cmp [r15+28],(float)0.0 // 0.53515625
jb if03
cmp [r15+28],(float)0.6 // 0.53515625
ja if03

cmp [r15-1C],(float)307 // 607-200 xmin > 407 > 307
jb if03
cmp [r15-4],(float)678 // 618+60 xmax
ja if03
cmp [r15-18],(float)404 // 454-50 ymax ( flip - 500y )
jb if03
cmp [r15-0],(float)527 // 467+60 ymin ( flip - 500y )
ja if03
movss xmm13,[r15-28]
if03:


pop rax


// [r15-1C] = xmin float 607
// [r15-18] = ymax float 454

// [r15-4] = xmax float 618
// [r15-0] = ymin float 467




exit:
jmp returnhere


//"DiabloImmortal.exe"+FF52C3:
//"DiabloImmortal.exe"+10038A3:
//"DiabloImmortal.exe"+FFFD73:
//"DiabloImmortal.exe"+1000DF3:
"DiabloImmortal.exe"+116EB92:


jmp newmem
nop
returnhere:

