
//alloc(newmem,2048,"DiabloImmortal.exe"+FFAB67)
//alloc(newmem,2048,"DiabloImmortal.exe"+1009147)
//alloc(newmem,2048,"DiabloImmortal.exe"+1005617)
//alloc(newmem,2048,"DiabloImmortal.exe"+1006697)
alloc(newmem,2048,"DiabloImmortal.exe"+117540A)

label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:

//movss xmm1,[rbx+08]
//movss xmm0,[rbx+04]
mov eax,[rbx]
movss [rdi+44],xmm0
//movss [rdi+48],xmm1


push rax // address
mov rax,newmem+500 // address 0x0 value vtmem


cmp [rbx-18],(float)5 // Portal 610 450
jne exit01
cmp [rbx-14],(float)48 // Portal
jne exit01
cmp [rbx-C],(float)43 // Portal
jne exit01
cmp [rbx-8],(float)48 // Portal
jne exit01
mov [rax+8*1],rbx
exit01:


// icon name map
cmp [rbx+0],(float)601 // 621-20
jb exit02
cmp [rbx+0],(float)641 // 621+20
ja exit02
cmp [rbx+4],(float)390 // 410-20
jb exit02
cmp [rbx+4],(float)430 // 410+20
ja exit02
mov [rbx+C],000000FF // default 7F000000
mov [rbx+24],000000FF // default 7F000000
mov [rbx+3C],000000FF // default 7F000000
mov [rbx+54],000000FF // default 7F000000
mov [rax+8*2],rbx
exit02:



// icon player map
cmp [rbx-18],(float)9 // Portal 610 450
jne exit03
cmp [rbx-14],(float)27 // Portal
jne exit03
cmp [rbx-C],(float)27 // Portal
jne exit03
cmp [rbx-8],(float)27 // Portal
jne exit03
cmp [rbx+10],3F750000
jne exit03
mov [rax+8*3],rbx
exit03:




pop rax

exit:
jmp returnhere


//"DiabloImmortal.exe"+FFAB67:
//"DiabloImmortal.exe"+1009147:
//"DiabloImmortal.exe"+1005617:
//"DiabloImmortal.exe"+1006697:
"DiabloImmortal.exe"+117540A:


jmp newmem
nop
nop
returnhere:

