code: def get_args(self, state, is_fp=None, sizes=None, stack_base=None):
          
          if sizes is None and self.func_ty is not None:
              sizes = [arg.size for arg in self.func_ty.args]
          if is_fp is None:
              if self.args is None:
                  if self.func_ty is None:
                      raise ValueError("You must either customize this CC or pass a value to is_fp!")
                  else:
                      arg_locs = self.arg_locs([False]*len(self.func_ty.args))
              else:
                  arg_locs = self.args
  
          elif type(is_fp) is int:
              if self.args is not None and len(self.args) != is_fp:
                  raise ValueError("Bad number of args requested: got %d, expected %d" % (is_fp, len(self.args)))
              arg_locs = self.arg_locs([False]*is_fp, sizes)
          else:
              arg_locs = self.arg_locs(is_fp, sizes)
  
          return [loc.get_value(state, stack_base=stack_base) for loc in arg_locs]
docs: `is_fp` should be a list of booleans specifying whether each corresponding argument is floating-point -
          True for fp and False for int. For a shorthand to assume that all the parameters are int, pass the number of
          parameters as an int.
  
          If you've customized this CC, you may omit this parameter entirely. If it is provided, it is used for
          sanity-checking.
  
          `sizes` is an optional list of argument sizes, in bytes. Be careful about using this if you've made explicit
          the arg locations, since it might decide to combine two locations into one if an arg is too big.
  
          `stack_base` is an optional pointer to the top of the stack at the function start. If it is not
          specified, use the current stack pointer.
  
          Returns a list of bitvector expressions representing the arguments of a function.