BlockhashRegistry- assembly code can be optimized
The following code can be optimized by removing `mload` and mstore:\\n```\\nrequire(first > 0xf7, "invalid offset");\\nuint8 offset = first - 0xf7 + 2;\\n\\n/// we are using assembly because it's the most efficent way to access the parent blockhash within the rlp-encoded blockheader\\n// solium-disable-next-line security/no-inline-assembly\\nassembly { // solhint-disable-line no-inline-assembly\\n    // mstore to get the memory pointer of the blockheader to 0x20\\n    mstore(0x20, \\_blockheader)\\n\\n    // we load the pointer we just stored\\n    // then we add 0x20 (32 bytes) to get to the start of the blockheader\\n    // then we add the offset we calculated\\n    // and load it to the parentHash variable\\n    parentHash :=mload(\\n        add(\\n            add(\\n                mload(0x20), 0x20\\n            ), offset)\\n    )\\n}\\n```\\n
```\\nassembly { // solhint-disable-line no-inline-assembly\\n            // mstore to get the memory pointer of the blockheader to 0x20\\n            //mstore(0x20, \\_blockheader) //@audit should assign 0x20ptr to variable first and use it.\\n\\n            // we load the pointer we just stored\\n            // then we add 0x20 (32 bytes) to get to the start of the blockheader\\n            // then we add the offset we calculated\\n            // and load it to the parentHash variable\\n            parentHash :=mload(\\n                add(\\n                    add(\\n                        \\_blockheader, 0x20\\n                    ), offset)\\n            )\\n        }\\n```\\n
```\\nrequire(first > 0xf7, "invalid offset");\\nuint8 offset = first - 0xf7 + 2;\\n\\n/// we are using assembly because it's the most efficent way to access the parent blockhash within the rlp-encoded blockheader\\n// solium-disable-next-line security/no-inline-assembly\\nassembly { // solhint-disable-line no-inline-assembly\\n    // mstore to get the memory pointer of the blockheader to 0x20\\n    mstore(0x20, \\_blockheader)\\n\\n    // we load the pointer we just stored\\n    // then we add 0x20 (32 bytes) to get to the start of the blockheader\\n    // then we add the offset we calculated\\n    // and load it to the parentHash variable\\n    parentHash :=mload(\\n        add(\\n            add(\\n                mload(0x20), 0x20\\n            ), offset)\\n    )\\n}\\n```\\n