code: def _freevar_argname(arg, cellvars, freevars):
      
      len_cellvars = len(cellvars)
      if arg < len_cellvars:
          return cellvars[arg]
      return freevars[arg - len_cellvars]
docs: Get the name of the variable manipulated by a 'uses_free' instruction.
  
      Parameters
      ----------
      arg : int
          The raw argument to a uses_free instruction that we want to resolve to
          a name.
      cellvars : list[str]
          The co_cellvars of the function for which we want to resolve `arg`.
      freevars : list[str]
          The co_freevars of the function for which we want to resolve `arg`.
  
      Notes
      -----
      From https://docs.python.org/3.5/library/dis.html#opcode-LOAD_CLOSURE:
  
          The name of the variable is co_cellvars[i] if i is less than the length
          of co_cellvars. Otherwise it is co_freevars[i - len(co_cellvars)]