SdbpCheckAttribute

__int64 __fastcall SdbpCheckAttribute(
        _DWORD *a1,
        unsigned __int16 a2,
        unsigned __int64 *a3,
        unsigned int a4,
        __int64 a5){
  int v5; 
  int v7; 
  int v8; 
  __int64 result; 
  UINT64 v10; 
  bool v11; 
  v5 = 0;
  *a1 = 0;
  if( a2 == 16414 )
  {
    if( a4 >= 4 )
    {
      LOBYTE(v5) = *(_DWORD *)a3 >= *(_DWORD *)(a5 + 16);
      goto LABEL_15;
    }
    v10 = 572i64;
    goto LABEL_25;
  }
  if( a2 == 16435 )
  {
    if( a4 >= 4 )
    {
      LOBYTE(v5) = *(_DWORD *)a3 <= *(_DWORD *)(a5 + 16);
      goto LABEL_15;
    }
    v10 = 559i64;
    goto LABEL_25;
  }
  if( a2 <= 0x5001u )
    goto LABEL_9;
  if( a2 <= 0x5003u )
  {
    if( a4 >= 8 )
    {
      v8 = SdbpCheckVersion(*a3, *(_QWORD *)(a5 + 16));
      goto LABEL_14;
    }
    v10 = 518i64;
    goto LABEL_25;
  }
  if( a2 != 20493 && a2 != 20486 )
  {
    if( a2 > 0x5011u && a2 <= 0x5013u )
    {
      if( a4 >= 8 )
      {
        v8 = SdbpCheckFromVersion(*a3, *(_QWORD *)(a5 + 16));
        goto LABEL_14;
      }
      v10 = 532i64;
      goto LABEL_25;
    }
LABEL_9:
    v7 = a2 & 0xF000;
    switch( v7 )
    {
      case 16384:
        if( a4 < 4 )
        {
          v10 = 588i64;
          goto LABEL_25;
        }
        v11 = *(_DWORD *)a3 == *(_DWORD *)(a5 + 16);
        break;
      case 20480:
        if( a4 < 8 )
        {
          v10 = 618i64;
          goto LABEL_25;
        }
        v11 = *a3 == *(_QWORD *)(a5 + 16);
        break;
      case 24576:
        if( a4 >= 2 )
        {
          v8 = AslStringPatternMatchW((PWCHAR)a3, *(PWCHAR *)(a5 + 16));
LABEL_14:
          v5 = v8;
          goto LABEL_15;
        }
        v10 = 604i64;
        goto LABEL_25;
      default:
LABEL_15:
        result = 1i64;
        *a1 = v5;
        return result;
    }
    LOBYTE(v5) = v11;
    goto LABEL_15;
  }
  if( a4 >= 8 )
  {
    v8 = SdbpCheckUptoVersion(*a3, *(_QWORD *)(a5 + 16));
    goto LABEL_14;
  }
  v10 = 546i64;
LABEL_25:
  AslLogCallPrintf(1ui64, "SdbpCheckAttribute", v10, "Attribute size doesn't match");
  return 0i64;
}

Referenced by:

SdbpCheckAllAttributes