GetBaseTypeSize

NTSTATUS __fastcall GetBaseTypeSize(INT16 a1){
  unsigned int v1; 
  NTSTATUS result; 
  unsigned int v3; 
  unsigned int v4; 
  unsigned int v5; 
  unsigned int v6; 
  unsigned int v7; 
  unsigned int v8; 
  unsigned int v9; 
  unsigned int v10; 
  unsigned int v11; 

  v1 = a1 & 0xFFF;
  result = 1;
  if( v1 <= 0xF )
  {
    if( v1 == 15 )
      return 8;
    if( v1 > 0xA )
    {
      v6 = v1 - 11;
      if( !v6 )
        return 8;
      v7 = v6 - 1;
      if( !v7 )
        return 16;
      v8 = v7 - 1;
      if( !v8 )
        return 16;
      if( v8 == 1 )
        return 8;
    }
    else
    {
      if( v1 == 10 )
        return 4;
      if( v1 > 5 )
      {
        if( v1 > 7 )
          return 8;
        return 4;
      }
      if( v1 >= 4 )
        return 2;
      if( v1 > 1 )
        return result;
    }
    return 0;
  }
  if( v1 > 0x15 )
  {
    v9 = v1 - 22;
    if( v9 )
    {
      v10 = v9 - 1;
      if( v10 )
      {
        v11 = v10 - 1;
        if( v11 )
          goto LABEL_26;
      }
    }
    return 4;
  }
  if( v1 == 21 )
    return 20;
  v3 = v1 - 16;
  if( !v3 )
    return 8;
  v4 = v3 - 1;
  if( !v4 )
    return result;
  v5 = v4 - 1;
  if( !v5 )
    return 2;
  v11 = v5 - 1;
  if( v11 )
  {
LABEL_26:
    if( v11 != 1 )
      return 0;
    return 2;
  }
  return result;
}

Referenced by:

PnpValidatePropertyData