No LLM evaluation was recorded.
Score: 92/100
All four state-changing functions and the packed-slot layout are recovered accurately. setValue writes slot 0; setOwner masks the low 160 bits of slot 1; initialize sets the boolean byte at offset 20 of slot 1; reset clears value, the address bits, and the boolean bits. The initialized() getter correctly extracts the packed byte. Only mutability annotation and minor storage-declaration redundancy differ.
@@ -1,0 +1,59 @@+// SPDX-License-Identifier: MIT+pragma solidity >=0.8.0;++/// @title Decompiled Contract+/// @author Jonathan Becker <jonathan@jbecker.dev>+/// @custom:version heimdall-rs v0.9.2+///+/// @notice This contract was decompiled using the heimdall-rs decompiler.+/// It was generated directly by tracing the EVM opcodes from this contract.+/// As a result, it may not compile or even be valid solidity code.+/// Despite this, it should be obvious what each function does. Overall+/// logic should have been preserved throughout decompiling.+///+/// @custom:github You can find the open-source decompiler here:+/// https://heimdall.rs++contract DecompiledContract {+ uint256 public value; // storage slot: 0x00+ address public owner; // storage slot: 0x01+ bytes32 store_c; // storage slot: 0x01+ + + /// @custom:selector 0x55241077+ /// @custom:signature setValue(uint256 arg0) public payable+ /// @param arg0 ["uint256", "bytes32", "int256"]+ function setValue(uint256 arg0) public payable {+ require(0x04 + (msg.data.length - 0x04) - 0x04 >= 0x20);+ value = arg0;+ }+ + /// @custom:selector 0x8129fc1c+ /// @custom:signature initialize() public payable+ function initialize() public payable {+ store_c = 0x010000000000000000000000000000000000000000 | 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff & store_c;+ }+ + /// @custom:selector 0xd826f88f+ /// @custom:signature reset() public payable+ function reset() public payable {+ value = 0;+ store_c = 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & store_c;+ store_c = 0 * 0x010000000000000000000000000000000000000000 | 0xffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff & store_c;+ }+ + /// @custom:selector 0x158ef93e+ /// @custom:signature initialized() public view returns (bool)+ function initialized() public view returns (bool) {+ return uint8(store_c / 0x010000000000000000000000000000000000000000);+ }+ + /// @custom:selector 0x13af4035+ /// @custom:signature setOwner(address arg0) public payable+ /// @param arg0 ["address", "uint160", "bytes20", "int160"]+ function setOwner(address arg0) public payable {+ require(0x04 + (msg.data.length - 0x04) - 0x04 >= 0x20);+ require(true);+ store_c = arg0 | 0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & store_c;+ }+}