PopFxAcpiValidateParameters

bool __fastcall PopFxAcpiValidateParameters(__int64 a1){
  char v1; 
  unsigned __int16 **v3; 
  unsigned __int64 v4; 
  int v5; 
  int v6; 
  int v7; 
  bool v8; 
  bool v9; 
  unsigned __int16 *v10; 
  __int64 v11; 
  unsigned __int16 *v12; 
  __int64 v13; 

  v1 = 0;
  if( !a1 )
    return v1;
  v3 = *(unsigned __int16 ***)(a1 + 16);
  v4 = *(_QWORD *)(a1 + 24);
  if( !v3 || !v4 )
    return v1;
  v5 = *(_DWORD *)a1 - 1;
  if( !v5 )
  {
    if( v4 >= 0x18 )
    {
      v12 = *v3;
      if( *v3 )
      {
        if( *((_QWORD *)v12 + 1) )
        {
          v13 = *v12;
          if( (unsigned int)v13 >= 4 )
            return v12[1] >= (unsigned __int64)(v13 + 2);
        }
      }
    }
    return v1;
  }
  v6 = v5 - 1;
  if( !v6 )
  {
    v9 = v4 < 0x10;
LABEL_12:
    if( v9 )
      return v1;
    v10 = *v3;
    if( !*v3 )
      return v1;
    if( !*((_QWORD *)v10 + 1) )
      return v1;
    v11 = *v10;
    if( (unsigned int)v11 < 4 )
      return v1;
    v8 = v10[1] < (unsigned __int64)(v11 + 2);
    goto LABEL_17;
  }
  v7 = v6 - 1;
  if( !v7 )
  {
    v9 = v4 < 0x28;
    goto LABEL_12;
  }
  if( v7 != 1 )
  {
    if( (*(_DWORD *)(*(_QWORD *)(a1 + 8) + 824i64) & 4) != 0 )
      return 1;
    return v1;
  }
  v8 = v4 < 0x10;
LABEL_17:
  if( !v8 )
    return 1;
  return v1;
}

Referenced by:

PopFxAcpiDispatchNotification