_BYTE *__fastcall PipSmBiosFindStruct(char a1, char a2, _BYTE *a3, int a4){
_BYTE *v4;
_BYTE *v5;
_BYTE *i;
v4 = &a3[a4 - 2];
while( 1 )
{
v5 = 0i64;
if( a3 >= v4 )
break;
if( *a3 == a1 )
{
v5 = a3;
if( *a3 != 2 || a3 + 14 <= &a3[(unsigned __int8)a3[1]] && a3[13] == a2 )
break;
}
for( i = &a3[(unsigned __int8)a3[1]]; i < v4 && *(_WORD *)i; ++i )
;
a3 = i + 2;
}
return v5;
}