alloc(newmem,2048,"DiabloImmortal.exe"+D345ED) 
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:

// asm_render_mini_tiled03.CEA find shadow mini map

//movss [rdi+14],xmm0
//mov [rdi+10],ecx
movss xmm1,[rbx+50]
// movss xmm0,[rbx+4C]
// mov eax,[rbx+48]


push rax // address
mov rax,newmem+500 // address 0x0 value vtmem

cmp [rbx+50],00000000 // Portal
jne exit01
//cmp [rbx+C],7F000000 // shadow mini map
//je exit01
cmp [rbx+C],BF000000 // shadow map
jne exit01
mov [rax+8*1],rbx
exit01:


//cmp [rbx+C],7F000000 // shadow mini map
//jne exit02
//cmp [rbx+24],7F000000 // shadow mini map
//jne exit02
//cmp [rbx+3C],7F000000 // shadow mini map
//jne exit02
//cmp [rbx+54],7F000000 // shadow mini map
//jne exit02
//mov [rax+8*3],rbx

//mov [rbx+C],FFFFFFFF // default 7F000000
//mov [rbx+24],FFFFFFFF // default 7F000000
//mov [rbx+3C],FFFFFFFF // default 7F000000
//mov [rbx+54],FFFFFFFF // default 7F000000
//exit02:


cmp [rbx-C],(float)354 // shadow mini map
jne exit03
cmp [rbx-8],(float)236 // shadow mini map
jne exit03
cmp [rbx+C],7F000000 // shadow map
jne exit04
mov [rax+8*2],rbx

mov [rbx+C],FFFFFFFF // default 7F000000
mov [rbx+24],FFFFFFFF // default 7F000000
mov [rbx+3C],FFFFFFFF // default 7F000000
mov [rbx+54],FFFFFFFF // default 7F000000
exit03:



cmp [rbx-C],(float)1334 // shadow map
jne exit04
cmp [rbx-8],(float)930 // shadow map
jne exit04
cmp [rbx+C],BF000000 // shadow map
jne exit04
mov [rax+8*4],rbx

mov [rbx+C],FFFFFFFF // default BF000000
mov [rbx+24],FFFFFFFF // default BF000000
mov [rbx+3C],FFFFFFFF // default BF000000
mov [rbx+54],FFFFFFFF // default BF000000
exit04:

pop rax

exit:
jmp returnhere

"DiabloImmortal.exe"+D345ED:
jmp newmem
returnhere:

