Search code examples
c++pseudocodeida

how to simplify this pseudocode


I have this pseudocode in IDA but I don't understand the result when I compiled it

__int64 v17 = 507890351016; 
__int64 v20 = 0;
auto test = *(WORD*)(*(uintptr_t*)v17 + v20);

the output of test is 48, can someone explain what's going here and what the equivalent in c++


Solution

  • v17 is a 64 bit integer, v20 is a 64 bit integer. v17 seems to be a pointer and whatever is at that address is being dereferenced to a DWORD type and stored in test. Because v20 == 0, the offset from v17+v20 is 0.

    The result is

    int64_t v17 = 507890351016;
    DWORD test = *(DWORD*)v17;