docs: def _save_function_initial_state(self, function_key, function_address, state):
          """
          Save the initial state of a function, and merge it with existing ones if there are any.
  
          :param FunctionKey function_key: The key to this function.
          :param int function_address: Address of the function.
          :param SimState state: Initial state of the function.
          :return: None
          """
  
          l.debug('Saving the initial state for function %#08x with function key %s',
                  function_address,
                  function_key
                  )
          if function_key in self._function_initial_states[function_address]:
              existing_state = self._function_initial_states[function_address][function_key]
              merged_state, _, _ = existing_state.merge(state)
              self._function_initial_states[function_address][function_key] = merged_state
  
          else:
              self._function_initial_states[function_address][function_key] = state