signed int __cdecl sub_5A76D0(int a1, int a2, int a3, CDataStore *dataStore) { int v4; // edi@1 int v6; // eax@4 CDataStore *v7; // esi@1 WoWGuid v8; // qax@1 int v9; // [sp+8h] [bp-14h]@1 int *srcSize; // [sp+14h] [bp-8h]@1 int src; // [sp+10h] [bp-Ch]@1 char value; // [sp+1Bh] [bp-1h]@1 unsigned __int8 v13; // [sp+1Ah] [bp-2h]@1 int v14; // [sp+Ch] [bp-10h]@1 v7 = dataStore; CDataStore_ReadInt64(dataStore, (WoWGuid *)&v9); CDataStore_ReadInt32(v7, (int *)&srcSize); CDataStore_GetBufferParams(v7, &src, srcSize); v4 = src; CDataStore_ReadByte(v7, (BYTE)&value); CDataStore_ReadByte(v7, (BYTE)&v13); lowPart = v9; highPart = v14; dword_D21084 = (unsigned __int8)value; dword_D21090 = v13; v8 = ClntObjMgrGetActivePlrGuid(); if ( ClntObjMgrObjectPtr(v8.lowPart, v8.highPart, 16) ) { if ( *(_BYTE *)v4 ) { sub_59BA30(v4); return 1; } v6 = sub_67CCC0(v9, v14, &v9, sub_5A7650, 0, 0); if ( v6 ) sub_59BA30(v6); } return 1; }