code: def resolve_addresses(addresses, symbolizer, binary):
      addresses = list(set(addresses))
      cmd = [
          symbolizer,
          "--demangle",
          "--obj",
          binary,
      ]
      proc = subprocess.Popen(
          cmd,
          stdin=subprocess.PIPE,
          stdout=subprocess.PIPE,
          stderr=subprocess.PIPE,
          **({"text": True} if six.PY3 else {}),
      )
      out, err = proc.communicate(input="\n".join(addresses))
      if proc.returncode:
          raise Exception(
              "Symbolizer failed with rc:{}\nstderr: {}".format(
                  proc.returncode, err
              )
          )
  
      resolved = list(filter(None, out.split("\n\n")))
      if len(addresses) != len(resolved):
          raise Exception(
              "llvm-symbolizer can not extract lines from addresses (count mismatch: {}-{})".format(
                  len(addresses), len(resolved)
              )
          )
  
      return {k: v.strip(" \n") for k, v in zip(addresses, resolved)}
  
file_path: catboost/library/python/cores/__init__.py
imports: import os
  import re
  import glob
  import socket
  import logging
  import platform
  import subprocess
  import six
  from library.python.reservoir_sampling import reservoir_sampling
label_desc: Use image node_id 6 for calling a global function with example usage: resolve_addresses(addresses, symbolizer, binary) and returns: unknown