You have to use another register for it I don't know what it was but one of it should work just try both:
1:
Code: Select all
globalalloc(hbase,4)
code:
push rbx // Push Register that's not used in the script already
lea rbx,[r10+rcx*4+00002210]
mov [hbase],rbx
pop rbx
mov [r10+rcx*4+00002210],eax
jmp return
2:
Code: Select all
globalalloc(hbase,4)
code:
push rbx // Push Register that's not used in the script already
mov rbx,[r10+rcx*4+00002210]
mov [hbase],rbx
pop rbx
mov [r10+rcx*4+00002210],eax
jmp return
Edit: I think you can also do it manualy like
Code: Select all
globalalloc(hbase,4)
code:
mov [hbase],r10 // r10 is the base, rcx*4+00002210 is the offset this way you have to manualy calculate rcx*4+00002210 and add hbase + the offset you calculated to the adress list
mov [r10+rcx*4+00002210],eax
jmp return
Edit2: It was the first one i tried you have to only add [hbase] to the adress list NO OFFSET if you use the first one because it gets automaticly calculated thats what lea does.