PfVerifyTraceBuffer
char __fastcall PfVerifyTraceBuffer(_DWORD *a1, unsigned int a2, int *a3){
char v4;
__int64 v5;
unsigned int v6;
int v7;
unsigned int *v8;
__int64 v9;
unsigned __int64 v10;
char *v11;
unsigned __int64 v12;
unsigned int v13;
_DWORD *v14;
__int64 v15;
unsigned __int64 v16;
unsigned __int64 v17;
char result;
v4 = 0;
if( a2 < 0xD0 )
{
v7 = 10;
goto LABEL_26;
}
if( ((unsigned __int8)a1 & 7) != 0 )
{
v7 = 15;
goto LABEL_26;
}
if( *a1 != 30 || a1[1] != 1128485697 )
{
v7 = 20;
goto LABEL_26;
}
if( a2 > 0x10000000 )
{
v7 = 23;
goto LABEL_26;
}
if( a1[19] > 1u )
{
v7 = 25;
goto LABEL_26;
}
v5 = (unsigned int)a1[25];
if( (unsigned int)v5 > 0x84000 || (v6 = a1[21], v6 > 0x100000) )
{
v7 = 30;
goto LABEL_26;
}
if( a1[2] != a2 )
{
v7 = 35;
goto LABEL_26;
}
if( !PfVerifyScenarioId((__int64)(a1 + 3)) )
{
v7 = 37;
goto LABEL_26;
}
v10 = (unsigned __int64)v8 + v8[20];
if( (v10 & 7) != 0 )
{
v7 = 38;
goto LABEL_26;
}
if( v10 < (unsigned __int64)v8 || (v11 = (char *)v8 + v9, v10 >= (unsigned __int64)v8 + v9) )
{
v7 = 40;
goto LABEL_26;
}
v12 = 16i64 * v6 + v10 - 1;
if( v12 < (unsigned __int64)v8 || v12 >= (unsigned __int64)v11 )
{
v7 = 50;
goto LABEL_26;
}
v13 = v7;
v14 = v8 + 28;
v15 = (unsigned int)(v7 + 10);
do
{
v13 += *v14++;
--v15;
}
while( v15 );
if( v13 < v8[22] )
{
v7 = 120;
}
else
{
if( (_DWORD)v5 )
{
v16 = (unsigned __int64)v8 + v8[24];
if( (v16 & 7) != 0 )
{
v7 = 65;
goto LABEL_26;
}
if( v16 < (unsigned __int64)v8 || v16 >= (unsigned __int64)v11 )
{
v7 = 80;
goto LABEL_26;
}
v17 = v16 + 24 * v5 - 1;
if( v17 < (unsigned __int64)v8 || v17 >= (unsigned __int64)v11 )
{
v7 = 90;
goto LABEL_26;
}
}
v4 = 1;
}
LABEL_26:
result = v4;
*a3 = v7;
return result;
}Referenced by:
PfSnBuildDumpFromTrace