PipSmBiosFindStruct

_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;
}

Referenced by:

PipInitComputerIds