WmipSMBiosFindStringAndZero

__int64 __fastcall WmipSMBiosFindStringAndZero(__int64 a1, int a2, unsigned int a3){
  unsigned __int64 v3; 
  int v4; 
  UINT8 *v5; 
  unsigned int v6; 
  __int64 v7; 
  _WORD *v8; 

  v3 = a1 + a3;
  if( !a2 )
    return 0i64;
  v4 = 0;
  v5 = (UINT8 *)(a1 + *(unsigned __int8 *)(a1 + 1));
  v6 = a2 - 1;
  if( a2 == 1 )
  {
LABEL_10:
    while( (unsigned __int64)v5 < v3 && *v5 )
      *v5++ = 95;
    return 0i64;
  }
  while( 1 )
  {
    strchr(v5, 0);
    v8 = (_WORD *)v7;
    v5 = (UINT8 *)(v7 + 1);
    if( (unsigned __int64)v5 >= v3 || !*v8 )
      return 3221225524i64;
    if( ++v4 >= v6 )
      goto LABEL_10;
  }
}

Referenced by:

WmipSMBiosHideMachine