```\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