code: def get_func_cfg_with_tainted_args(self, definition):
          
          log.debug("Getting CFG for %s", definition.name)
          func_cfg = make_cfg(
              definition.node,
              self.project_modules,
              self.local_modules,
              definition.path,
              definition.module_definitions
          )
  
          args = Arguments(definition.node.args)
          if args:
              function_entry_node = func_cfg.nodes[0]
              function_entry_node.outgoing = list()
              first_node_after_args = func_cfg.nodes[1]
              first_node_after_args.ingoing = list()
  
              # We are just going to give all the tainted args the lineno of the def
              definition_lineno = definition.node.lineno
  
              # Taint all the arguments
              for i, arg in enumerate(args):
                  node_type = TaintedNode
                  if i == 0 and arg == 'self':
                      node_type = AssignmentNode
  
                  arg_node = node_type(
                      label=arg,
                      left_hand_side=arg,
                      ast_node=None,
                      right_hand_side_variables=[],
                      line_number=definition_lineno,
                      path=definition.path
                  )
                  function_entry_node.connect(arg_node)
                  # 1 and not 0 so that Entry Node remains first in the list
                  func_cfg.nodes.insert(1, arg_node)
                  arg_node.connect(first_node_after_args)
  
          return func_cfg
docs: Build a function cfg and return it, with all arguments tainted.