That's what I'm trying to do now, and I'm confused as shit. And the pseudocode generator on mac doesn't always work that well :/ 0xD2E300 is a pointer to the WoW DB Struct
Code:
WowClientDB__GetRow();
v3 = *(&dword_D2E300 + 4);
if ( _EBX >= v3
&& _EBX <= *(&dword_D2E300 + 3)
&& (v4 = *(const void **)(*(&dword_D2E300 + 8) + 4 * (_EBX - v3))) != 0 )
{
if ( unk_C7E44C )
{
v6 = (unsigned int)&v37;
v5 = (int)((char *)v4 + 1);
v36 = *(_BYTE *)v4;
if ( (unsigned int)&v45 > (unsigned int)&v37 )
{
do
{
*(_BYTE *)v6 = *(_BYTE *)v5;
v21 = *(_BYTE *)v5;
++v6;
if ( *(_BYTE *)v5 == *(_BYTE *)(v5 - 1) )
{
v19 = v6;
v20 = v6 + *(_BYTE *)(v5 + 1) - 1;
if ( *(_BYTE *)(v5 + 1) )
{
while ( 1 )
{
*(_BYTE *)v19++ = v21;
if ( v19 == v20 + 1 )
break;
v21 = *(_BYTE *)v5;
}
v6 = v19;
}
v5 += 2;
if ( (unsigned int)&v45 > v6 )
*(_BYTE *)v6++ = *(_BYTE *)v5;
}
++v5;
}
while ( v6 < (unsigned int)&v45 );
}
}
else
{
memcpy(&v36, v4, 0x2A8u);
}
v7 = GetPlayerGUID();
v8 = GetBaseAddressFromGUID(v7, 16);
v35 = v8;
if ( v47 )
{
LODWORD(v27) = sub_56D8E0(0);
v8 = GetBaseAddressFromGUID(v27, 8);
}
FrameScript_PushString(a1, v43);
Full source: tanaris4 private pastebin - collaborative debugging tool
Edit: Kind of getting somewhere, looks like what I want to do is get the resulting POINTER to the row, add 0x1 to it, and then jump a certain amount and I see the correct string (but it's not static, it varies a bit on how far away it is, i.e. name could be at 0x60 away or 0x68 away)