
//alloc(newmem,2048,"DiabloImmortal.exe"+5B7F40)
//alloc(newmem,2048,"DiabloImmortal.exe"+5B3A80)
//alloc(newmem,2048,"DiabloImmortal.exe"+5B2F90)
alloc(newmem,2048,"DiabloImmortal.exe"+6AFDC0)

label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
// r9+2C = bat = 0 tat = 1
// r9+84 = float x
// r9+8C = float y
// r9+70 = id object 40FD70A4
// r9+70 = id object 40FA1A29 Darkwood
// r10+48 = id 3E6147AE
// r10+4C = id 3E6147AE

push rax // address
mov rax,newmem+500 // address 0x0 value vtmem
//mov byte ptr [rcx+6C],01 // test

cmp byte ptr [r9+2C],00
jne exit01
//cmp [r9+70],40FD70A4
cmp [r10+48],3E6147AE
jne exit01
//cmp [r9+84],00000000
//je exit01
//cmp [r9+8C],00000000
//je exit01
//cmp [rax],00000000
//jne exit01
mov [rax+0],r9
mov [rax+8],r10
mov [rax+10],rcx
mov [rax+18],rdx
//mov [rax+20],rsi
//mov [rax+28],rdi
//mov [rax+30],rbp
//mov [rax+38],rsp
//mov [rax+40],r8
//mov [rax+48],r9
//mov [rax+50],r10
//mov [rax+58],r11
//mov [rax+60],r12
//mov [rax+68],r13
//mov [rax+70],r14
//mov [rax+78],r15

exit01:
pop rax



exit:
cmp byte ptr [r9+2C],00
// movzx eax,cx
// movss xmm1,[r8+rax*4]
// lea rcx,[rax+r11]


jmp returnhere




//"DiabloImmortal.exe"+5B7F40:
//"DiabloImmortal.exe"+5B3A80:
//"DiabloImmortal.exe"+5B2F90:
"DiabloImmortal.exe"+6AFDC0:




jmp newmem
returnhere:

