ExtractAggregateFieldTypes
unsigned __int8 __fastcall ExtractAggregateFieldTypes(__int64 a1, __int64 a2){
__int64 v2;
unsigned __int8 v3;
unsigned __int64 v5;
char *v6;
char v7;
__int64 v9;
char v11;
char v12;
char v13;
v2 = *(_QWORD *)(a2 + 16);
v3 = 0;
v5 = v2 + *(unsigned int *)(a2 + 24);
v6 = (char *)(v2 + 2);
do
v7 = *v6++;
while( v7 < 0 );
while( *v6++ )
;
while( (unsigned __int64)v6 < v5 )
{
while( *v6++ )
;
if( *v6 >= 0 )
break;
v11 = v6[1];
v12 = *v6 & 0x7F;
v6 += 2;
if( v11 >= 0 )
break;
while( 1 )
{
v13 = *v6;
if( *v6 >= 0 )
break;
if( v13 != (char)0x80 )
return v3;
++v6;
}
if( v12 != 9 || (unsigned __int8)(v13 - 113) > 2u )
break;
v9 = 2i64 * v3++;
*(_BYTE *)(a2 + 8 * v9 + 45) = v13;
}
return v3;
}Referenced by:
tlgWriteAgg