alloc(newmem,4048,"DiabloImmortal.exe"+20B880F)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:

// byte ptr [rdi+158],3F > 0F tat fog

// byte ptr [rdi+228],20 = bat 00 = tat

//[rdi+298] = float X LEFT+UP 511
//[rdi+29C] = float Y LEFT+UP 510

//[rdi+2E0] = float X RIGHT+DOWN 677
//[rdi+2E4] = float Y RIGHT+DOWN 383

push rax // address
push rbx // address
mov rax,newmem+500 // address 0x0 value vtmem

mov rbx,[rax+0] //> chuyen rcx = rbx = [rax+20]
add rbx,8

// xoa fog byte ptr [rdi+158] = 3F > 0F
cmp rdi,0 // address check
je if01
cmp byte ptr [rdi+158],3F // 425+20
jne if01
//cmp [rax+0],90 // for loop < 50 (190)  10 (48) 20 (90)
//ja if01
cmp [rdi+28C],(float)572 // 425+20
jne if01
//cmp [rdi+78],3ED70A3E // (float)0.42
//jne if01
cmp byte ptr [rdi+00000228],20
jne if01
//mov [rdi+00000228],20
//mov [rax+0],rbx
//mov [rax+rbx],rdi
mov byte ptr [rdi+158],0F // number map
if01:




// tat map byte ptr [rdi+228] = 20 > 0
cmp rdi,0 // address check
je if02
cmp [rdi+28C],(float)572 // 425+20
jne if02
cmp [rdi+78],3ED70A3E // (float)0.42
jne if02
cmp byte ptr [rdi+00000228],20
jne if02
mov [rax+8*60],rdi
if02:


// distance player center map
cmp rdi,0 // address check
je if03
cmp byte ptr [rdi+158],0F // 425+20
jne if03
cmp [rax+0],48 // for loop < 50 (190)  10 (48) 20 (90)
ja if01
cmp [rdi+28C],(float)572 // 425+20
jne if03
cmp [rdi+78],3ED70A3E // (float)0.42
jne if03
cmp byte ptr [rdi+00000228],20
jne if03

cmp [rdi+298],(float)500 // >  510
jb if03
cmp [rdi+298],(float)687 // < 677
ja if03
cmp [rdi+2E0],(float)500 // >  510
jb if03
cmp [rdi+2E0],(float)687 // < 677
ja if03

cmp [rdi+29C],(float)373 // > 383
jb if03
cmp [rdi+29C],(float)520 // < 510
ja if03
cmp [rdi+2E4],(float)373 // > 383
jb if03
cmp [rdi+2E4],(float)520 // < 510
ja if03


mov [rax+8*70],rdi
if03:


pop rbx
pop rax



test byte ptr [rdi+00000228],20

exit:
jmp returnhere

"DiabloImmortal.exe"+20B880F:
jmp newmem
nop
nop
returnhere:

