changed (unsigned)void* cast to (unsigned long) cast for x64 addresses