code: def get_arg_info(self, state, is_fp=None, sizes=None):
          
          argument_types = self.func_ty.args
          argument_names = self.func_ty.arg_names if self.func_ty.arg_names else ['unknown'] * len(self.func_ty.args)
          argument_locations = self.arg_locs(is_fp=is_fp, sizes=sizes)
          argument_values = self.get_args(state, is_fp=is_fp, sizes=sizes)
          return list(zip(argument_types, argument_names, argument_locations, argument_values))
docs: This is just a simple wrapper that collects the information from various locations
          is_fp and sizes are passed to self.arg_locs and self.get_args
          :param angr.SimState state: The state to evaluate and extract the values from
          :return:    A list of tuples, where the nth tuple is (type, name, location, value) of the nth argument