P2SH address decoding
Here is the example
of the transaction from the question

the redeem script is: 514104398184a2cef0d7b73ed7a3a1d4ad16296c3c6986bed0bd72775060aae9891979eaea1efb28d7eb1da3304ec38a98b42086e3be2ceba82b0e932128ec422a6fc2210250504b2d4245544120506565722d506565722d6e6574776f726b2062657461212102553432353135362e31323234202020202020202020202020202020202020202053ae

to derive the P2SH address we do the following:
sha256(redeemScript)
using PHP:

$sha256= hash('sha256',hexStringToByteString($redeemScript));
SHA256: 8b1c6ece53385d6ae3cf3c40fc6239389a7006d9f46047d5d67c3fa78dd2afcc


ripemd160 the resulting hash

$ripemd160=hash('ripemd160',hexStringToByteString($sha256));
RIPEMD160: c25497b8a9bcc393f47abd19a435d1af440916ac


prepend "05" and hash twice

$hashTwice = hash('sha256',hexStringToByteString (hash('sha256',hexStringToByteString ("05" .  $ripemd160))));
double hash: 479ce4efc25c4195ef3cc015d74c45034a2c72f21e322ba30f5c26d872e58b38


first 4 bytes is the chscksum

$checksum=substr($hashTwice,0,8);
checksum: 479ce4ef


compose the address as:


  base58-encode: [one-byte version][20-byte hash][4-byte checksum]


$addr= "05" . $ripemd160 . $checksum;
address: 05c25497b8a9bcc393f47abd19a435d1af440916ac479ce4ef


base58 encode

$p2sh=base58_encode($to_encode);
base58: 3KQYMMqMBTv8254UqwmaLzW5NDT879KzK8


and we get the correct P2SH address: 3KQYMMqMBTv8254UqwmaLzW5NDT879KzK8