// RegAccessLookupTablePointer - addr:0xffdaf559
int __cdecl RegAccessLookupTablePointer(int a1)
{
int Size; // [esp+Ch] [ebp-Ch]
int v3; // [esp+10h] [ebp-8h]
int Ptr; // [esp+14h] [ebp-4h]
if ( *(_DWORD *)(a1 + 12) )
{
v3 = *(_DWORD *)(*(_DWORD *)(a1 + 12) + 4 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 255544);
Ptr = *(_DWORD *)(*(_DWORD *)(a1 + 12) + 4 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 255560);
}
else
{
Size = PcdGetSize((void *)6);
if ( *(_DWORD *)(Size + 4) )
{
v3 = *(_DWORD *)(Size + 16 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 20);
Ptr = *(_DWORD *)(Size + 16 * (unsigned __int16)*(_DWORD *)(a1 + 4) + 16);
}
else
{
PcdInitRegAccessData(dword_FFDB0A08, 8);
v3 = dword_FFDB0A1C[4 * (unsigned __int16)*(_DWORD *)(a1 + 4)];
Ptr = dword_FFDB0A18[4 * (unsigned __int16)*(_DWORD *)(a1 + 4)];
if ( !Ptr && !v3 )
{
Ptr = PcdGetPtr((void *)5);
v3 = 0;
}
}
}
if ( !Ptr && !v3 )
return PcdGetPtr((void *)5);
return Ptr;
}