alloc(newmem,2048,"DiabloImmortal.exe"+5AF3F9)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:



// 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

// [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

// new func1

// new [rdx+8]>0>0 text name = text name  >>  [rbx+0]>0 = text name
// new rdx+10 = float x
// new rdx+14 = float y
// new [rdx+8]>E0 = color hex  >>  [rbx+E0] = color hex
// new [rdx+8]>B8 = tat = 00000101 bat = 01000000  >>  [rbx+B8] = bat tat
// new [rdx+8]>10  string len  >>  [rbx+10] = string len


// new func2 bi doi RDX thanh RCX, RBX
// new [rcx+8]>0>0 text name = text name  >>  [rbx+0]>0 = text name
// new [rbx+8]>B8 = tat = 00000101 bat = 01000000  >>  [rcx+B8] = bat tat
// new rcx+10 = float x
// new rcx+14 = float y

//cmp byte ptr [rbx+000000B8],00
//jne 7FF64454F5BA
movsd [rsp+30],xmm15
//movss xmm2,[rbx+000000C8]
//xorps xmm0,xmm0

push rax
push rdx


mov rax,newmem+500 // vtmem

//mov [rax+0],0 // reset = 0
cmp [rbx+B8],01000000 // color text name = 1
jne exit01

cmp [rbx+E0],3F2DADAE // color xanh name Guild
je exit01

cmp [rbx+E0],3F70F0F1 // color trang player + item
je exit01

cmp [rbx+E0],3F48C8C9 // color vang npc01
je exit01

cmp [rbx+E0],3F3EBEBF // color vang npc02
je exit01

cmp [rbx+E0],3F5ADADB // color xanh npc01
je exit01

cmp [rbx+E0],3F3EBEBF // color ko ro
je exit01

cmp [rbx+E0],3EFAFAFB // color ko ro
je exit01

cmp [rbx+E0],540993C0 // color ko ro
je exit01

cmp [rbx+0],006F0047 // Gold
je exit01

cmp [rbx+6],006F0047 // Gold
je exit01

cmp [rbx+8],006F0047 // Gold
je exit01

cmp [rbx+A],006F0047 // Gold
je exit01

cmp [rbx+C],006F0047 // Gold
je exit01

mov [rax+8*0],rcx
mov [rax+8*1],rbx

cmp [rbx+10],00000011 // string len 16+1 Rift Progress Orb
jne exit01
mov [rax+8*20],rcx
mov [rax+8*21],rbx
exit01:

// loi thoat gan cho market
//mov rdx, [rbx]
//cmp rdx, 0x10000000
//jb exit02
//cmp rdx, 0x7FFFFFFFFFFF
//ja exit02
//cmp [rdx+0],0042005B // [Blacksmith]
//jne exit02
//cmp [rdx+4],0061006C // [Blacksmith]
//jne exit02
//mov [rax+8*10],rcx
//mov [rax+8*11],rbx
//exit02:

cmp [rbx+B8],01000000 // color text name = 1
jne exit02
cmp [rbx+E0],3F48C8C9 // color text name [Blacksmith]
jne exit02
cmp [rbx+10],0000000C // [Blacksmith] stringlen
jne exit02
mov [rax+8*10],rcx
mov [rax+8*11],rbx
exit02:


cmp [rbx+B8],01000000 // color text name = 1
jne exit03
cmp [rbx+E0],3EECECED // color text name tim boss
jne exit03
mov [rax+8*10],rcx
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+B8],01000000 // color text name = 1
jne exit04
cmp [rbx+E0],3F70F0F1 // color xanh name Guild
jne exit04
mov [rax+8*12],rcx
mov [rax+8*13],rbx
exit04:



cmp byte ptr[rax+8*42],01 // color text name = 1
jne exit07
cmp [rbx+B8],01000000 // color text name = 1
jne exit07
cmp [rbx+0],00000045 // color text name tim boss
jne exit07
cmp [rbx+E0],3F6FEFF0 // color text name tim boss
jne exit07
mov [rax+8*40],rcx
mov [rax+8*41],rbx
mov [rbx+B8],00000101 // color text name = 1
exit07:


cmp [rbx+B8],01000000 // color text name = 1
jne exit05
cmp [rbx+20],00680043 // follow > Charsi
jne exit05
cmp [rbx+24],00720061 // follow > Charsi
jne exit05
mov [rax+8*30],rcx
mov [rax+8*31],rbx
exit05:

cmp [rbx+B8],01000000 // color text name = 1
jne exit06
cmp [rbx+20],006C0041 // follow > Alyssa
jne exit06
cmp [rbx+24],00730079 // follow > Alyssa
jne exit06
mov [rax+8*30],rcx
mov [rax+8*31],rbx
exit06:





//Energy Globe
//Rift Progress Orb


pop rdx
pop rax



















exit:
jmp returnhere

"DiabloImmortal.exe"+5AF3F9:
jmp newmem
nop
nop
returnhere:

