I don't think that witness is used to generate the address, since older wallets shouldn't be able to download witness data, but would still be able to send to segwit addresses.
Also, you need to look at the output of the transaction that was referenced in that first input, I believe, since coins aren't spent from addresses, but from unspent transactions. Addresses are there just for humans.
And there is no other (direct) possibility to make an address?
I cannot turn this script
ScriptSig: PUSHDATA(34) [ 002071191892b7ed5764d72cc7232cf99d722b776240d78eb625c389d7f4d03db874 ]
into the address
32mgo47LcUQjPfjYNzAYEsM5fqosiqpuVd without searching for the previous out-transaction?
Actually I have no idea.
As far as I remember in scriptsig for legacy transactions you have a public key of that address and a signature for that transaction. And you should be able to hash the public key and encode it to get an address.
However, addresses starting with 3 are P2SH, meaning that instead of a public key and signature, you have a whole script in scriptsig that needs to hash to the output value of that past transactions.
Now, segwit transactions look to legacy clients as anyone-can-spend transactions.
So, I guess, there would be no need to put a public key of the address into segwit as you don't need to provide proof of ownership there. And since segwit is designed to reduce fees and size of scriptsig, I assume they wouldn't put what is unnecessary there.
So actually, I don't know, although it is easier to look up parent transaction and I believe that is how block explorers do it, it still might be possible by hashing the script and encoding it to that address.
Still this means that you don't need a witness for this at all, since even legacy clients (that don't know about witness data) can tell if the address has spent coins or not.
You should be able to find some information online on how to hash and encode the scriptsig into a Bitcoin address.
Just keep in mind that this has nothing to do with segwit, you are simply looking for information on generating P2SH addresses.
Then again, I am not sure about any of this and I could be completely wrong, good luck!
EDIT: This might be the info you are looking for at
https://github.com/bitcoin/bips/blob/master/bip-0013.mediawikibase58-encode: [one-byte version][20-byte hash][4-byte checksum]
"Version byte is 5 for a main-network address, 196 for a testnet address. The 20-byte hash is the hash of the script that will be used to redeem the coins. And the 4-byte checksum is the first four bytes of the double SHA256 hash of the version and hash."
Keep in mind that Bitcoin uses specific base58 encoding as well.