```\nfunction functionCallWithValue(\n    address target,\n    bytes memory data,\n    uint256 value,\n    string memory errorMessage\n) internal returns (bytes memory) {\n    require(address(this).balance >= value, "Address: insufficient balance for call");\n    require(isContract(target), "Address: call to non-contract");\n\n    (bool success, bytes memory returndata) = target.call{value: value}(data);\n    return verifyCallResult(success, returndata, errorMessage);\n}\n```\n