I'm currently working on taking apart a game (Soul Reaver: Legacy of Kain) and I often come across odd looking sections such as this in the decompiler
*(_DWORD *)(a2 + 16) = a2 + 624; *(_DWORD *)(a2 + 38200) = a2 + 8; *(_DWORD *)(a2 + 20) = 0; *(_DWORD *)(a2 + 37592) = 0; *(_DWORD *)(a2 + 37596) = a2 + 36968; *(_DWORD *)(a1 + 8) = a2; *(_DWORD *)a1 = 0; *(_DWORD *)(a1 + 4) = 0;
These appear to me to be offsets in a struct, but some of the offsets make little sense, e.g.
36968. I'm aware that it is quite difficult to be sure, but some pointers in the correct direction would be much appreciated :)
Assembly for those who want it :)
.text:004B0126 xor esi, esi .text:004B0128 mov [ecx+10h], eax .text:004B012B lea eax, [ecx+8] .text:004B012E mov [ecx+9538h], eax .text:004B0134 mov eax, [esp+4+arg_0] .text:004B0138 lea edx, [ecx+9068h] .text:004B013E mov [ecx+14h], esi .text:004B0141 mov [ecx+92D8h], esi .text:004B0147 mov [ecx+92DCh], edx .text:004B014D mov [eax+8], ecx .text:004B0150 mov [eax], esi .text:004B0152 mov [eax+4], esi