Bump you up.
What does the the block header look like before and after hashing?
As far as I understand, a block header is the block hash. So it would look like this after hashing:
00000000000008a3a41b85b8b29ad444def299fee21793cd8b9e567eab02cd81
And to get that, you need a few crucial pieces of data: The client version, The hash of the previous block, the hash based on all the transactions to be included in the block, the time, the difficulty, and a random 32-bit number.
Hashing it doesn't change it; it tests whether the header meets the target and will be accepted by the network. So various bits could change for each attempt. You could update nonce, timestamp, the Merkle root, or any combination essentially.