alloc(newmem,4048,"DiabloImmortal.exe"+1DF5090)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
movzx eax,byte ptr [rbx+rcx]
mov [rcx],al
//lea rcx,[rcx+01]
//sub r8,01

// [rbx+rcx] = text name map

push rax // address
mov rax,newmem+500 // address 0x0 value vtmem


cmp [rbx+rcx],65646C45 // Elder Rift
jne exit01
cmp [rbx+rcx+4],69522072 // Elder Rift
jne exit01
mov [rax+8*0],1
mov [rax+8*1],rbx
mov [rax+8*2],rcx
exit01:

cmp [rbx+rcx],74736557 // Westmarch
jne exit02
cmp [rbx+rcx+4],6372616D // Westmarch
jne exit02
mov [rax+8*0],2
mov [rax+8*1],rbx
mov [rax+8*2],rcx
exit02:

cmp [rbx+rcx],6C616843 // Challenge Rift
jne exit03
cmp [rbx+rcx+A],74666952 // Challenge Rift
jne exit03
mov [rax+8*0],3
mov [rax+8*1],rbx
mov [rax+8*2],rcx
exit03:

pop rax


exit:
jmp returnhere

"DiabloImmortal.exe"+1DF5090:
jmp newmem
nop
returnhere:

