def METHOD_NAME(ir: Operation) -> bool:
    """
    Detect if the IR lvalue is a vulnerable type
    Must be a storage allocation, and an array of Int
    Assume the IR is a InitArray, or an Assignement to an ArrayType
    """
    # Storage allocation
    # Base type is signed integer
    if not isinstance(ir, OperationWithLValue):
        return False
    return (
        (
            isinstance(ir.lvalue, StateVariable)
            or (isinstance(ir.lvalue, LocalVariable) and ir.lvalue.is_storage)
        )
        and isinstance(ir.lvalue.type.type, ElementaryType)  # type: ignore
        and ir.lvalue.type.type.type in Int  # type: ignore
    )