
//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:

// gia tri duoc tim bang x cua text name

// movups xmm0,[rsp+30]
movups [rdx+08],xmm0 // > lui ve movups xmm0,[rsp+30] bi crack
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

// [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 [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

push rax
push rcx


mov rax,newmem+500 // vtmem


mov [rax+8*10],rdx
mov [rax+8*11],rbx
mov [rax+8*12],rcx
mov [rax+8*12],rcx




pop rcx
pop rax



exit:
jmp returnhere




//"DiabloImmortal.exe"+38B18E:
//"DiabloImmortal.exe"+3A751E:
//"DiabloImmortal.exe"+3A7A6E:
"DiabloImmortal.exe"+3C101E:

jmp newmem
nop
nop
nop
nop
returnhere:

