

//alloc(newmem,2048,"DiabloImmortal.exe"+38B18E)
//alloc(newmem,2048,"DiabloImmortal.exe"+3A751E)
//alloc(newmem,2048,"DiabloImmortal.exe"+3A7A6E)
alloc(newmem,2048,"DiabloImmortal.exe"+3C101E)

label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:

// movups xmm0,[rsp+30]
movups [rdx+08],xmm0
movups xmm1,[rsp+40]
// movups [rdx+18],xmm1
// mov [rdx+38],rdx
//add qword ptr [rcx+08],40

// rbx = xmm0 = rdx+8
// rdx+8 > 0 = text name
// rdx+8 > 90 = text fontC
// rdx+8 > 10C = text font size
// rdx+8 > 108 = tat = 00000101 bat = 01000000

// rdx+8 > 130 = color hex
// 756F6853 // color text vang npc nguoi choi
// 3F6DEDEE // color text trang nguoi choi
// 3F6FEFF0 color text vang item
// 3EC2C2C3 do xanh
// 3F2DADAE // color xanh name Guild

// new rdx+8 > 0 = text name
// new rdx+8 > C8 = color hex
// new rdx+8 > CC = color hex
// new rdx+8 > A0 = tat = 00000101 bat = 01000000





// [rdx+0] > 8 > 108 > tat = 00000101
// [rdx+8] > 0 > 0 = text name
// rdx+10 = float x
// rdx+14 = float y
// rdx+8 > 0 = text name > \Char\mon\devi
// [rbx+10] = string len

push rax
mov rax,newmem+500 // vtmem

//mov [rax+0],0 // reset = 0
cmp [rbx+108],01000000 // color text name = 1
jne exit01

cmp [rbx+130],3F2DADAE // color xanh name Guild
je exit01

cmp [rbx+130],3F70F0F1 // color trang player + item
je exit01

cmp [rbx+130],3F48C8C9 // color vang npc01
je exit01

cmp [rbx+130],3F3EBEBF // color vang npc02
je exit01

cmp [rbx+130],3F5ADADB // color xanh npc01
je exit01

cmp [rbx+130],3F3EBEBF // color ko ro
je exit01

cmp [rbx+130],3EFAFAFB // color ko ro
je exit01

cmp [rbx+130],540993C0 // color ko ro
je exit01

cmp [rbx+0],646C6F47 // Gold
je exit01

cmp [rbx+3],646C6F47 // Gold
je exit01

cmp [rbx+4],646C6F47 // Gold
je exit01

mov [rax+8*0],rdx
mov [rax+8*1],rbx

cmp [rbx+10],00000011 // string len 16+1 Rift Progress Orb
jne exit01
mov [rax+8*20],rdx
mov [rax+8*21],rbx
exit01:

cmp [rbx+0],616C425B // [Blacksmith]
jne exit02
mov [rax+8*10],rdx
mov [rax+8*11],rbx
exit02:

cmp [rbx+108],01000000 // color text name = 1
jne exit03
cmp [rbx+130],3EECECED // color text name tim boss
jne exit03
mov [rax+8*10],rdx
mov [rax+8*11],rbx
exit03:

cmp [rbx+0],00000045 // #E   Return to Westmarch
je exit04
cmp [rbx+10],00000013 // 19 len Return to Westmarch
jne exit04
cmp [rbx+108],01000000 // color text name = 1
jne exit04
cmp [rbx+130],3F70F0F1 // color xanh name Guild
jne exit04
mov [rax+8*12],rdx
mov [rax+8*13],rbx
exit04:

cmp [rbx+0],72616843 // follow > Charsi
jne exit05
cmp [rbx+2],69737261 // follow > Charsi
jne exit05
mov [rax+8*30],rdx
mov [rax+8*31],rbx
exit05:

cmp [rbx+0],73796C41 // follow > Alyssa
jne exit06
cmp [rbx+2],61737379 // follow > Alyssa
jne exit06
mov [rax+8*30],rdx
mov [rax+8*31],rbx
exit06:


//Energy Globe
//Rift Progress Orb

pop rax



exit:
jmp returnhere




//"DiabloImmortal.exe"+38B18E:
//"DiabloImmortal.exe"+3A751E:
//"DiabloImmortal.exe"+3A7A6E:
"DiabloImmortal.exe"+3C101E:

jmp newmem
nop
nop
nop
nop
returnhere:

