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