Given this script:
76 a9 14 b0dcbf97eabf4404e31d952477ce822dadbe7e10 88 ac
You have the following information in sequence:
OP_DUP: 76
OP_HASH160: a9
Bytes to push: 14 (hex representation of 20 bytes)
Data to push: b0dcbf97eabf4404e31d952477ce822dadbe7e10 (20 byte hex representation of a bitcoin address)
OP_EQUALVERIFY: 88
OP_CHECKSIG: ac
Pulling out the hex representation of the bitcoin address from the "data to push" we get the RIPEMD-160 hash:
b0dcbf97eabf4404e31d952477ce822dadbe7e10
Looking at the
technical background of version 1 bitcoin addresses wiki page we see we are at step 3.
Step 4 says to add a version byte in front of RIPEMD-160 hash (0x00 for Main Network):
00b0dcbf97eabf4404e31d952477ce822dadbe7e10
Step 5 says to perform SHA-256 hash on the extended RIPEMD-160 result:
137a662136daf0c0a5019b58a0c14372bdf69d296efd5facd1db0abb223fb087
Step 6 says to perform SHA-256 hash on the result of the previous SHA-256 hash:
5b7d2f5842d2038bf99b5ce49670e73d9a8e889b8470da9a1d47c95efccecb7e
Step 7 says to take the first 4 bytes of the second SHA-256 hash. This is the address checksum:
Step 8 says to add the 4 checksum bytes from step 7 to the end of the extended RIPEMD-160 hash from step 4. This is the 25-byte binary Bitcoin Address:
00b0dcbf97eabf4404e31d952477ce822dadbe7e105b7d2f58
Step 9 says to convert the result from a byte string into a base58 string using Base58Check encoding. This is the most commonly used Bitcoin Address format:
1H8ANdafjpqYntniT3Ddxh4xPBMCSz33pj