feat: impl. azoth obfuscated bytecode analyzer#130
Conversation
Decompile Diff AnalysisStatistics (50 iterations)
Full Diff Output─── Storage ───
@@ -1,14 +1,21 @@
- uint256 public constant unresolved_d4899a62 = 0;
- uint256 public constant unresolved_8677ab23 = 0;
- uint256 public constant expectedAmount = 0;
-
- bool public is_bonded;
- uint256 public currentRewardAmount;
- bool public unresolved_308657d7;
- uint256 public unresolved_fe03a460;
- address public unresolved_1aa7c0ec;
- uint256 public bondAmount;
- uint256 public unresolved_8bd03d0a;
- uint256 public unresolved_d415b3f9;
+ bytes32 store_a;
+ uint256 public unresolved_7ae9f527;
+ bytes32 store_i;
+ bytes32 store_m;
+ bytes32 store_j;
+ bytes32 store_q;
+ uint256 store_g;
+ bytes32 store_p;
+ bytes32 store_o;
+ bytes32 store_k;
+ bytes32 store_l;
+ bytes32 store_n;
+ uint256 public unresolved_dbb171eb;
+ uint256 public unresolved_56d564f1;
+ uint256 public unresolved_be318eb1;
+ uint256 public unresolved_3abecd86;
+ bytes32 store_b;
+ bytes32 store_r;
+ error CustomError_00000000();
─── Function requestCancellation (0x81972d00 → 0x15c59d6c) ───
@@ -1,12 +1,9 @@
- /// @custom:selector 0x81972d00
- /// @custom:signature requestCancellation() public payable
- function requestCancellation() public payable {
+
+ /// @custom:selector 0x15c59d6c
+ /// @custom:signature Unresolved_15c59d6c() public view
+ function Unresolved_15c59d6c() public view {
+ require(!store_p);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
- require(!(0 == msg.sender), "Only callable by the deployer");
- var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
- var_b = 0x20;
- var_c = 0x1d;
- var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
- unresolved_308657d7 = 0x01 | (uint248(unresolved_308657d7));
}
─── Function resume (0x046f7da2 → 0x34d8da6a) ───
@@ -1,13 +1,9 @@
- /// @custom:selector 0x046f7da2
- /// @custom:signature resume() public payable
- function resume() public payable {
+ /// @custom:selector 0x34d8da6a
+ /// @custom:signature Unresolved_34d8da6a() public view
+ function Unresolved_34d8da6a() public view {
+ require(!store_m);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
- require(!(0 == msg.sender), "Only callable by the deployer");
- var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
- var_b = 0x20;
- var_c = 0x1d;
- var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
- unresolved_308657d7 = uint248(unresolved_308657d7);
}
─── Function withdraw (0x3ccfd60b → 0x8c29d643) ───
@@ -1,55 +1,28 @@
- /// @custom:selector 0x3ccfd60b
- /// @custom:signature withdraw() public payable
- function withdraw() public payable {
+ /// @custom:selector 0x8c29d643
+ /// @custom:signature Unresolved_8c29d643(uint256 arg0) public view
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_8c29d643(uint256 arg0) public view {
+ require(0xd6 == msg.data[0]);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
- require(!(bytes1(unresolved_308657d7 >> 0x08)), "Only callable by the deployer");
- require(!(msg.sender == 0), "Only callable by the deployer");
+ require(!(bytes1(store_b >> 0x08)), CustomError_f5d98900());
+ require(!(msg.sender == 0), CustomError_f5d98900());
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x1d;
- var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
- require(!((bytes1(unresolved_308657d7 >> 0x08)) == 0x01), "Cannot reset while bond is active");
- require(is_bonded, "Cannot reset while bond is active");
- require(!(block.timestamp > is_bonded), "Cannot reset while bond is active");
- var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
- var_b = 0x20;
- var_c = 0x21;
- var_d = 0x43616e6e6f74207265736574207768696c6520626f6e64206973206163746976;
- var_e = 0x6500000000000000000000000000000000000000000000000000000000000000;
- unresolved_1aa7c0ec = uint96(unresolved_1aa7c0ec);
- bondAmount = 0;
- is_bonded = 0;
- require(unresolved_8bd03d0a > (unresolved_8bd03d0a + unresolved_d415b3f9));
- var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_g = 0x11;
- unresolved_308657d7 = uint248(unresolved_308657d7);
- unresolved_8bd03d0a = 0;
- currentRewardAmount = 0;
- require(!unresolved_8bd03d0a + unresolved_d415b3f9);
- var_a = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;
- address var_b = msg.sender;
- uint256 var_c = unresolved_8bd03d0a + unresolved_d415b3f9;
- (bool success, bytes memory ret0) = address(0).Unresolved_a9059cbb(var_b); // call
- require(0x20 > ret0.length);
- require(((var_h + 0x20) > 0xffffffffffffffff) | ((var_h + 0x20) < var_h));
- var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_g = 0x41;
- uint256 var_h = var_h + 0x20;
- require(((var_h + 0x20) - var_h) < 0x20);
- require(var_h.length - var_h.length);
- var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
- var_b = 0x20;
- var_c = 0x15;
- var_d = 0x4e6f20776974686472617761626c652066756e64730000000000000000000000;
+ bytes1 var_d = (0xb39712e76f05d8fbff76e2c0b6a94a3e - (0xbb52f02f95beeffa776884e3f1567f8b - (0x3a6b00236a8d251fd24a6abe326a17f6 + (0x73692272add9ac7d3e46d21ad19001b5 - ((0xb26a7947 - (0x0e322c77 - (0x2365896a + (bytes1(store_b >> 0x08) - (0x4b35e7a6 ^ (0xdddd4ee2 ^ (0xd79bebc4 ^ (0x474e + (((0x2c5fad63 ^ (0x8caf7178 ^ (0x867e77df ^ (0xf5d98900f7a8c5b2cfae076add583b49fce83dba281391c0c336e71b7e1213ea + var_e)))) ^ 0x0299) - 0x5e5d))))))))) ^ 0x01))))) ^ 0x02a1;
+ require(!((bytes1(store_b >> 0x08)) == 0x01), "����ѷ��
A5�'����bp���ҵ�,�9����`s@���U*�h��2��ہ");
+ require(unresolved_3abecd86, "����ѷ��
A5�'����bp���ҵ�,�9����`s@���U*�h��2��ہ");
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x37;
- var_d = 0x54686520636f6e747261637420776173206e6f742066756e646564206f722068;
- var_e = 0x6173206265656e20647261696e656420616c7265616479000000000000000000;
+ var_f = 0x0fa2f915d1b7c8e10d4135b327e7fd8aca627087e7b7dfd2b5b22ce239b401ec;
+ var_g = 0xc860734082f1af13552af19b8668c1e432ed89e1a1db811cf3915cd24258a554;
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x13;
- var_d = 0x436f6e7472616374206e6f742066756e64656400000000000000000000000000;
+ var_h = this.code[12833:12833];
+ uint248 var_i = ((0x4174b04ab0ea4dab9118c6174b8a9703 + (0x943afd6904d5debb48267eab2eb9d16b + (0x8c8aa98c6e7db19e80efff7c869c3297 - (uint248(0x3e44 ^ (0x0267 - (0xaf7b85fe966f657f ^ (0x03fa94abd98d237d ^ (0x680db416491b8568 ^ (var_j & ((0xebf2b942614f7ba8387477ecf4e53f3fc9e7ffffdee4e401ad09ab723300a9be + var_e) / 0x06))))))))))) ^ (bytes1(store_b >> 0x08))) << 0x6a;
}
─── Function bond (0x9940686e → 0x99dd17b2) ───
@@ -1,60 +1,63 @@
- /// @custom:selector 0x9940686e
- /// @custom:signature bond(uint256 arg0) public payable
+ /// @custom:selector 0x99dd17b2
+ /// @custom:signature Unresolved_99dd17b2(uint256 arg0) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
- function bond(uint256 arg0) public payable {
+ function Unresolved_99dd17b2(uint256 arg0) public payable {
+ require(0x99 == msg.data[0]);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, "Cancellation requested");
- require(!(bytes1(unresolved_308657d7 >> 0x08)), "Cancellation requested");
- require(!(!bytes1(unresolved_308657d7)), "Cancellation requested");
+ require(!(bytes1(store_b >> 0x08)), "Cancellation requested");
+ require(!(!bytes1(store_b)), "Cancellation requested");
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x16;
var_d = 0x43616e63656c6c6174696f6e2072657175657374656400000000000000000000;
- require(!(!arg0 < (currentRewardAmount >> 0x01)), "Bond must be at least half of reward amount");
+ require(!(!arg0 < (unresolved_56d564f1 >> 0x01)), CustomError_0());
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x2b;
- var_d = 0x426f6e64206d757374206265206174206c656173742068616c66206f66207265;
- var_e = 0x7761726420616d6f756e74000000000000000000000000000000000000000000;
- require(is_bonded, "Another executor is already bonded");
- require(block.timestamp > is_bonded, "Another executor is already bonded");
- require(is_bonded, "Another executor is already bonded");
- require(!(block.timestamp > is_bonded), "Another executor is already bonded");
+ uint256 var_e = var_f - 0xb59f2f0864b1bfc1963bbf784a629284fc8e0d1863e92da8d872f9221441d108;
+ var_g = 0x7761726420616d6f757c8c000000000000000000000000000000000000000000;
+ require(unresolved_3abecd86, CustomError_0());
+ require(block.timestamp > unresolved_3abecd86, CustomError_0());
+ require(unresolved_3abecd86, CustomError_0());
+ require(!(block.timestamp > unresolved_3abecd86), CustomError_0());
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x22;
- var_d = 0x416e6f74686572206578656375746f7220697320616c726561647920626f6e64;
- var_e = 0x6564000000000000000000000000000000000000000000000000000000000000;
+ uint256 var_h = 0x416e6f74686572206578656375746f7220697320616c726561647920626f6e64 + var_f;
+ var_i = 0x6564000000000000000000000000000000000000000000000000000000000000;
var_a = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
address var_b = msg.sender;
address var_c = address(this);
uint256 var_d = arg0;
(bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_b); // call
- unresolved_1aa7c0ec = var_b | (uint96(unresolved_1aa7c0ec));
- require(block.timestamp > (block.timestamp + 0x012c));
- var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_g = 0x11;
- is_bonded = block.timestamp + 0x012c;
- bondAmount = arg0;
- require(0x20 > ret0.length);
- require(((var_h + 0x20) > 0xffffffffffffffff) | ((var_h + 0x20) < var_h));
- var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_g = 0x41;
- uint256 var_h = var_h + 0x20;
- require(((var_h + 0x20) - var_h) < 0x20);
- require(var_h.length - var_h.length);
- if (currentRewardAmount > (currentRewardAmount + bondAmount)) {
- var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_g = 0x11;
- currentRewardAmount = currentRewardAmount + bondAmount;
- require(currentRewardAmount > (currentRewardAmount + bondAmount), "Contract not funded");
- var_f = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_g = 0x11;
- require(unresolved_fe03a460 > (unresolved_fe03a460 + bondAmount), "Contract not funded");
+ unresolved_3abecd86 = var_b | (uint96(unresolved_3abecd86));
+ require(block.timestamp > (block.timestamp + 0x012c), CustomError_874ff22d());
+ var_j = 0x874ff22d00000000000000000000000000000000000000000000000000000000;
+ var_k = 0x11;
+ unresolved_3abecd86 = block.timestamp + 0x012c;
+ store_g = arg0;
+ require(0x20 > ret0.length, CustomError_e0b9d3e7());
+ require(((var_f + 0x20) > 0xffffffffffffffff) | ((var_f + 0x20) < var_f), CustomError_e0b9d3e7());
+ uint256 var_j = (0xc938abeb - (0xe87ed8a4 - (var_f + 0x20))) << 0xe0;
+ var_k = 0x41;
+ uint256 var_f = var_f + 0x20;
+ require(((var_f + 0x20) - var_f) < 0x20);
+ require(var_f.length - var_f.length);
+ require(unresolved_56d564f1 > (unresolved_56d564f1 + store_g), CustomError_874ff260());
+ var_j = 0x874ff26000000000000000000000000000000000000000000000000000000000;
+ var_k = 0x11;
+ unresolved_56d564f1 = unresolved_56d564f1 + store_g;
+ require(unresolved_7ae9f527 > (unresolved_7ae9f527 + store_g), CustomError_874ff273());
+ var_j = 0x874ff27300000000000000000000000000000000000000000000000000000000;
+ var_k = 0x11;
+ if (unresolved_3abecd86) {
}
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x13;
- var_d = 0x436f6e7472616374206e6f742066756e64656400000000000000000000000000;
+ var_l = this.code[12833:12833];
+ uint256 var_m = ((0x4174b04ab0ea4dab9118c6174b8a9703 + (0x943afd6904d5debb48267eab2eb9d16b + (0x8c8aa98c6e7db19e80efff7c869c3297 - (uint248(0x3e44 ^ (0x0498 - (0xaf7b85fe966f657f ^ (0x03fa94abd98d237d ^ (0x680db416491b8568 ^ (var_j & ((0xebf2b942614f7ba8387477ecf4e53f3fc9e7ffffdee4e401ad09ab723300a9be + var_f) / 0x06))))))))))) ^ store_b) << 0x6a;
}
─── Function Unresolved_ede7f6a3 (0xede7f6a3 → 0xb63f5d84) ───
@@ -1,62 +1,55 @@
- /// @custom:selector 0xede7f6a3
- /// @custom:signature Unresolved_ede7f6a3(uint256 arg0, uint256 arg1) public view
+ /// @custom:selector 0xb63f5d84
+ /// @custom:signature Unresolved_b63f5d84(uint256 arg0, uint256 arg1) public view
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
- function Unresolved_ede7f6a3(uint256 arg0, uint256 arg1) public view {
+ function Unresolved_b63f5d84(uint256 arg0, uint256 arg1) public view {
+ require(!store_j);
+ require(0 == 0x01);
require(msg.value);
require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
require(arg0 > 0xffffffffffffffff);
- require(((msg.data.length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0xa0, "Only bonded executor can collect");
- require(!(bytes1(unresolved_308657d7 >> 0x08)), "Only bonded executor can collect");
- require(address(unresolved_1aa7c0ec) == msg.sender, "Only bonded executor can collect");
- require(!(address(unresolved_1aa7c0ec) == msg.sender), "Only bonded executor can collect");
+ require(((msg.data.length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0xa0, "��� ��u�3n��[�B�=Q���FR�]��S��_�");
+ require(!(bytes1(store_b >> 0x08)), "��� ��u�3n��[�B�=Q���FR�]��S��_�");
+ require(address(store_k) == msg.sender, "��� ��u�3n��[�B�=Q���FR�]��S��_�");
+ require(!(address(store_k) == msg.sender), "��� ��u�3n��[�B�=Q���FR�]��S��_�");
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x20;
- var_d = 0x4f6e6c7920626f6e646564206578656375746f722063616e20636f6c6c656374;
- require(!(!arg1 > block.number), "Target block is in the future");
+ var_d = 0x91bc9c201b177505336e04965be742a73d51e6f4d14652075d899a5302075f84;
+ require(!(!arg1 > block.number), CustomError_0());
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x1d;
- var_d = 0x54617267657420626c6f636b20697320696e2074686520667574757265000000;
- require((block.number - arg1) > block.number);
- var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_f = 0x11;
+ var_e = this.code[12865:12865];
+ uint256 var_f = 0x8b39 ^ ((0xaea1688f21940e688b70910e794f8ec5 ^ (0xfadf6388f1e9859b11ee11d8248854b6 ^ (0x777c2cd0e1ce3cf5bade318d198ad1b8 ^ ((0x8208c321 ^ (0xe75b4add ^ (var_g + 0xf7545721d787e5ce9ad0d1e02b075c60e51c34c4a1f548e79729f7730e2c1a01))) + var_h)))) + 0x080f);
+ require((block.number - arg1) > block.number, CustomError_874ff4e1());
+ var_g = 0x874ff4e100000000000000000000000000000000000000000000000000000000;
+ var_i = 0x11;
require(0 < (block.number - arg1));
require(!blockhash(arg1));
require(arg0 + (arg0) > 0xffffffffffffffff);
- require(arg0 + (arg0) > 0xffffffffffffffff, "Block header hash mismatch");
- var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_f = 0x41;
- require(((var_g + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) > 0xffffffffffffffff) | ((var_g + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) < var_g), "Block header hash mismatch");
- var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_f = 0x41;
- uint256 var_g = var_g + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f));
- uint256 var_a = (arg0 + (arg0));
- var_h = msg.data[36:36];
- uint256 var_i = 0;
- require(!(keccak256(var_h) == blockhash(arg1)), "Block header hash mismatch");
- var_i = 0x08c379a000000000000000000000000000000000000000000000000000000000;
- var_c = 0x20;
- var_d = 0x1a;
- var_j = 0x426c6f636b206865616465722068617368206d69736d61746368000000000000;
+ require(arg0 + (arg0) > 0xffffffffffffffff, CustomError_e0b9d347());
+ uint256 var_g = (0xc938abeb - (0xe87ed8a4 - (arg0 + (arg0)))) << 0xe0;
+ var_i = 0x41;
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x1d;
- var_d = 0x556e61626c6520746f20726574726965766520626c6f636b2068617368000000;
+ var_e = this.code[12897:12897];
+ uint256 var_j = blockhash(arg1) - (0xcde812a8b332e8a41761f21b9a4e7173 + (0xc8b4fde5a92e53da03fa03467bd69c04 + ((uint248(0xa392406c00c0002b48024c4a08b0e0c0431440609203b1ca7000b5a088480080 | ((0x61acaf2b - (0xc4993f90 - ((0xb76410f712353c441b3820a09eb6ad9b ^ (0x45d96795b6acbea8a6838f5404143d8a ^ (0x5c3021b70efb4266efe960ee5700f109 ^ var_g))) + var_h))) ^ 0x0854)) / 0x01) / 0x02)));
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x14;
var_d = 0x54617267657420626c6f636b20746f6f206f6c64000000000000000000000000;
- require(is_bonded, "Only bonded executor can collect");
- require(!(!block.timestamp > is_bonded), "Only bonded executor can collect");
+ require(unresolved_3abecd86, "��� ��u�3n��[�B�=Q���FR�]��S��_�");
+ require(!(!block.timestamp > unresolved_3abecd86), "��� ��u�3n��[�B�=Q���FR�]��S��_�");
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x20;
- var_d = 0x4f6e6c7920626f6e646564206578656375746f722063616e20636f6c6c656374;
+ var_d = 0x91bc9c201b177505336e04965be742a73d51e6f4d14652075d899a5302075f84;
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x13;
- var_d = 0x436f6e7472616374206e6f742066756e64656400000000000000000000000000;
+ var_e = this.code[12833:12833];
+ uint256 var_k = ((0x4174b04ab0ea4dab9118c6174b8a9703 + (0x943afd6904d5debb48267eab2eb9d16b + (0x8c8aa98c6e7db19e80efff7c869c3297 - (uint248(0x3e44 ^ (0x07e0 - (0xaf7b85fe966f657f ^ (0x03fa94abd98d237d ^ (0x680db416491b8568 ^ (var_g & ((0xebf2b942614f7ba8387477ecf4e53f3fc9e7ffffdee4e401ad09ab723300a9be + var_h) / 0x06))))))))))) ^ (0x04 + arg0)) << 0x6a;
}
─── Function fund (0xa65e2cfd → 0xfcbdf290) ───
@@ -1,49 +1,50 @@
-
- /// @custom:selector 0xa65e2cfd
- /// @custom:signature fund(uint256 arg0, uint256 arg1) public payable
+ /// @custom:selector 0xfcbdf290
+ /// @custom:signature Unresolved_fcbdf290(uint256 arg0, uint256 arg1) public payable
/// @param arg0 ["uint256", "bytes32", "int256"]
/// @param arg1 ["uint256", "bytes32", "int256"]
- function fund(uint256 arg0, uint256 arg1) public payable {
+ function Unresolved_fcbdf290(uint256 arg0, uint256 arg1) public payable {
+ require(!store_a);
+ require(0 == 0x01);
require(msg.value);
- require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40, "Only callable by the deployer");
- require(!(msg.sender == 0), "Only callable by the deployer");
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40, CustomError_0());
+ require(!(msg.sender == 0), CustomError_0());
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x1d;
- var_d = 0x4f6e6c792063616c6c61626c6520627920746865206465706c6f796572000000;
- require(!(!bytes1(unresolved_308657d7 >> 0x08)), "Contract already funded");
+ uint256 var_d = (0xb39712e76f05d8fbff76e2c0b6a94a3e - (0xbb52f02f95beeffa776884e3f1567f8b - (0x3a6b00236a8d251fd24a6abe326a17f6 + (0x73692272add9ac7d3e46d21ad19001b5 - ((0xb26a7947 - (0x0e322c77 - (0x2365896a + (arg0 - (0x4b35e7a6 ^ (0xdddd4ee2 ^ (0xd79bebc4 ^ (0x474e + (((0x2c5fad63 ^ (0x8caf7178 ^ (0x867e77df ^ (0xf5d98900f7a8c5b2cfae076add583b49fce83dba281391c0c336e71b7e1213ea + var_e)))) ^ 0x061c) - 0x5e5d))))))))) ^ 0x0655))))) ^ arg1;
+ require(!(!bytes1(store_b >> 0x08)), CustomError_0());
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x17;
- var_d = 0x436f6e747261637420616c72656164792066756e646564000000000000000000;
- require(!arg0);
- require(!arg1);
- currentRewardAmount = arg0;
- unresolved_d415b3f9 = arg0;
- unresolved_8bd03d0a = arg1;
- require(unresolved_d415b3f9 > (unresolved_d415b3f9 + unresolved_8bd03d0a));
- var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_f = 0x11;
+ uint256 var_f = 0xff4e69ceb036f8117d3cbbbd54a32c470c722a705ece9e718b9e1b4cbd856f7d ^ ((0x02 * (arg0 - (0x0c35881a3c8c876f ^ (0x2dfeaf2fcb199c97 ^ (0xd77eaaeaf9218efb ^ (0x91bca37d0bf887d2 ^ (0x24520280104062358000003a8880080180400e00114988400021416b10493444 | ((0x0e3008db193cc1b8 - (0xe0badf4aeb6f84 - (0x70b5123c726e02c0 - (0x6ccf7cd4ee038294 + (0x4c4c602291510b345a001ee38284443d0d7c005098c0ffff53a1c18b9bfcf080 + var_e))))) + 0x0637)))))))) - 0x1c9bbd8a604b3b0656a26627e346503ceee3bd82f8e7160e27a65a45f595539d);
+ require(!arg0, CustomError_874ff333());
+ require(!arg1, CustomError_874ff333());
+ unresolved_56d564f1 = arg0;
+ unresolved_dbb171eb = arg0;
+ unresolved_be318eb1 = arg1;
+ require(unresolved_dbb171eb > (unresolved_dbb171eb + unresolved_be318eb1), CustomError_874ff333());
+ var_g = 0x874ff33300000000000000000000000000000000000000000000000000000000;
+ var_h = 0x11;
var_a = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
address var_b = msg.sender;
address var_c = address(this);
- uint256 var_d = unresolved_d415b3f9 + unresolved_8bd03d0a;
+ uint256 var_i = unresolved_dbb171eb + unresolved_be318eb1;
(bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_b); // call
- unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
- require(0x20 > ret0.length);
- require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g));
- var_e = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
- var_f = 0x41;
- uint256 var_g = var_g + 0x20;
- require(((var_g + 0x20) - var_g) < 0x20);
- require(var_g.length - var_g.length);
- unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
+ store_b = (uint248(store_b)) | 0x0100;
+ require(0x20 > ret0.length, CustomError_e0b9d3e7());
+ require(((var_e + 0x20) > 0xffffffffffffffff) | ((var_e + 0x20) < var_e), CustomError_e0b9d3e7());
+ uint256 var_g = (0xc938abeb - (0xe87ed8a4 - (var_e + 0x20))) << 0xe0;
+ var_h = 0x41;
+ uint256 var_e = var_e + 0x20;
+ require(((var_e + 0x20) - var_e) < 0x20);
+ require(var_e.length - var_e.length);
+ store_b = (uint248(store_b)) | 0x0100;
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x1f;
- var_d = 0x5061796d656e7420616d6f756e74206d757374206265206e6f6e2d7a65726f00;
+ uint256 var_j = (0x0fd3ff58 + (0x4251d67b + (0xb150b2c8 - (0x03 * ((0x35a55ced76da4172 ^ (0x45cadfdbc0f20468 ^ (0x03 * ((0xde524a1bb5c27f151ff2bde8161c2592 ^ (0x2e167241d7ed415a8d80c50ee6ba9dd3 ^ (0x64a8a869e2c2c20b6dca0539260e8621 ^ (var_e - 0x08ee62d34428b791d1efb70d0c45cab73fbc89c0da898fbb3d48d19c1992b713)))) ^ 0x064d)))) ^ arg0))))) + 0x0655;
var_a = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var_b = 0x20;
var_c = 0x1e;
- var_d = 0x52657761726420616d6f756e74206d757374206265206e6f6e2d7a65726f0000;
+ uint256 var_k = ((var_e - 0x854a33ec567b554a91fa8ca3fd3004f08d5e69626504c3e608479e816ff0d241) / 0x01) - 0x32e4bc8ae41734e9248b1735890f977b19ea48ffffe455769a1a241bf72051c1;
}
─── Added: Unresolved_80c653f5 (0x80c653f5) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x80c653f5
+ /// @custom:signature Unresolved_80c653f5(uint256 arg0) public view returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_80c653f5(uint256 arg0) public view returns (uint256) {
+ require(0x80 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ var_a = store_g;
+ return store_g;
+ }
─── Added: Unresolved_388ac04f (0x388ac04f) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x388ac04f
+ /// @custom:signature Unresolved_388ac04f(uint256 arg0) public view returns (address)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_388ac04f(uint256 arg0) public view returns (address) {
+ require(0xc0 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ address var_a = address(store_k);
+ return address(store_k);
+ }
─── Added: Unresolved_11f17432 (0x11f17432) ───
@@ -1,0 +1,11 @@
+
+ /// @custom:selector 0x11f17432
+ /// @custom:signature Unresolved_11f17432() public view returns (uint256)
+ function Unresolved_11f17432() public view returns (uint256) {
+ require(!store_o);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ uint256 var_a = 0;
+ return 0;
+ }
─── Added: Unresolved_395c6a01 (0x395c6a01) ───
@@ -1,0 +1,16 @@
+
+ /// @custom:selector 0x395c6a01
+ /// @custom:signature Unresolved_395c6a01(uint256 arg0) public view returns (bool)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_395c6a01(uint256 arg0) public view returns (bool) {
+ require(0x6a == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ if (unresolved_3abecd86) {
+ uint256 var_a = !(block.timestamp > unresolved_3abecd86);
+ return !(block.timestamp > unresolved_3abecd86);
+ var_a = unresolved_3abecd86;
+ return unresolved_3abecd86;
+ }
+ }
─── Added: Unresolved_30daab9b (0x30daab9b) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x30daab9b
+ /// @custom:signature Unresolved_30daab9b(uint256 arg0) public pure returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_30daab9b(uint256 arg0) public pure returns (uint256) {
+ require(0xab == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ uint256 var_a = 0;
+ return 0;
+ }
─── Added: Unresolved_e9b504f5 (0xe9b504f5) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0xe9b504f5
+ /// @custom:signature Unresolved_e9b504f5(uint256 arg0) public view returns (bool)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_e9b504f5(uint256 arg0) public view returns (bool) {
+ require(0x04 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ bytes1 var_a = !(!bytes1(store_b >> 0x08));
+ return !(!bytes1(store_b >> 0x08));
+ }
─── Added: Unresolved_d43af2c8 (0xd43af2c8) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0xd43af2c8
+ /// @custom:signature Unresolved_d43af2c8(uint256 arg0) public pure returns (uint256)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_d43af2c8(uint256 arg0) public pure returns (uint256) {
+ require(0xd4 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ uint256 var_a = 0;
+ return 0;
+ }
─── Added: Unresolved_30d7adbb (0x30d7adbb) ───
@@ -1,0 +1,12 @@
+
+ /// @custom:selector 0x30d7adbb
+ /// @custom:signature Unresolved_30d7adbb(uint256 arg0) public view returns (bool)
+ /// @param arg0 ["uint256", "bytes32", "int256"]
+ function Unresolved_30d7adbb(uint256 arg0) public view returns (bool) {
+ require(0x30 == msg.data[0]);
+ require(0 == 0x01);
+ require(msg.value);
+ require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+ bytes1 var_a = !(!bytes1(store_b));
+ return !(!bytes1(store_b));
+ }
Commit 1a722ea |
meaning: Bytecode size: 11028 bytes - That’s the runtime size of the escrow contract I analyzed. Size percentile: 99.29% - This bytecode is larger than ~99.29% of contracts in the dataset. It’s unusually large compared to typical deployed contracts. Opcode similarity: 0.841 - Cosine similarity of opcode frequency vs. the dataset baseline. 0.841 is fairly close, but not “typical.” It suggests the distribution is somewhat similar to average contracts, but with noticeable deviations. Exact match: no - The keccak hash of the bytecode isn’t present in the dataset Bloom filter, so there’s no exact match (or it’s a false negative, which Bloom filters don’t produce). Top opcode anomalies (relative to dataset baseline, higher means overrepresented):
these anomalies are relative increases (e.g., +7394% means ~75× more frequent than the dataset baseline). but it doesn’t mean they’re wrong, just that the escrow contract’s opcode mix is unusual compared to the global dataset. |
ae02b82 to
cfcaf6a
Compare
…k number while indexing
cfcaf6a to
0bfac92
Compare
basically how this works is: download dataset -> index -> analyze
Dataset discovery
Download
Index build (cache)
Analyze (comparison)
Output