Skip to content

fix(transforms): handle immutable variables and inherited contract patterns#138

Merged
g4titanx merged 5 commits intomasterfrom
fix/push_split-invalid-jumps
Mar 12, 2026
Merged

fix(transforms): handle immutable variables and inherited contract patterns#138
g4titanx merged 5 commits intomasterfrom
fix/push_split-invalid-jumps

Conversation

@g4titanx
Copy link
Copy Markdown
Member

@g4titanx g4titanx commented Mar 5, 2026

the test_obfuscated_function_calls e2e test began failing with InvalidJump after i updated escrow contract [EscrowERC20 + EscrowBase (inheritance)]. the inherited contract introduced two patterns the obfuscation pipeline didn't handle:

  1. immutable variables — base contract stores token address, arbiter, and owner as immutable, causing the init code to write values into the runtime at hardcoded byte offsets
  2. non-adjacent return address PUSHes — inheritance causes Solidity to emit internal function call patterns where the return address is pushed far before the terminal JUMP

this PR fixes both issues and also improves the PushSplit transform's chain generation.

i've added a proper documentation of the code where necessary

@g4titanx g4titanx requested a review from ozwaldorf March 5, 2026 22:18
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Mar 5, 2026

Decompile Diff Analysis

Statistics (50 iterations)

  • Total: 38 hunks, -187 removed, +253 added
  • Items: 17 total, 16 with changes
  • Selectors: 20 remapped
Metric Min Avg Max
Hunks 34 37.9 40
Lines removed 186 189.5 201
Lines added 244 268.5 408
Lines unchanged 64 75.5 79
Full Diff Output
─── Storage ───
@@ -1,16 +1,21 @@
-    uint256 public constant tokenContract = 0;
-    uint256 public constant expectedAmount = 0;
-    uint256 public constant unresolved_3d2691bc = 256;
-    uint256 public constant unresolved_8677ab23 = 0;
+    bytes32 store_c;
+    bytes32 store_f;
+    bytes32 store_o;
+    bytes32 store_m;
+    bytes32 store_p;
+    bytes32 store_j;
+    bytes32 store_k;
+    bytes32 store_a;
+    bytes32 store_e;
+    uint256 public unresolved_7bb87963;
+    bytes32 store_h;
+    uint256 public unresolved_dddd10c7;
+    bool public unresolved_38803a3b;
+    uint256 public unresolved_bdbb068a;
+    bytes32 store_n;
+    uint256 public unresolved_a777a492;
+    bytes32 store_r;
+    bytes32 store_d;
     
-    uint256 public unresolved_8bd03d0a;
-    uint256 public executionDeadline;
-    uint256 public bondAmount;
-    bool public unresolved_308657d7;
-    uint256 public totalBondsDeposited;
-    uint256 public unresolved_d415b3f9;
-    uint256 public currentRewardAmount;
-    address public unresolved_1aa7c0ec;
-    
-    error InvalidRLPList();
+    error CustomError_00000000();
     

─── Function Unresolved_ede7f6a3 (0xede7f6a3 → 0xf7e0f67a) ───
@@ -1,77 +1,16 @@
-    /// @custom:selector    0xede7f6a3
-    /// @custom:signature   Unresolved_ede7f6a3(uint256 arg0, uint256 arg1) public view
+    
+    /// @custom:selector    0xf7e0f67a
+    /// @custom:signature   Unresolved_f7e0f67a(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_f7e0f67a(uint256 arg0, uint256 arg1) public view {
+        require(0xf6 == msg.data[0]);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40);
         require(arg0 > 0xffffffffffffffff);
         require(((msg.data.length - arg0) + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0xa0);
         require(arg0 + (arg0) > 0xffffffffffffffff);
-        require(!(bytes1(unresolved_308657d7 >> 0x08)), CustomError_ded7c80c());
-        require(msg.sender == (address(unresolved_1aa7c0ec)), CustomError_ded7c80c());
-        require(!(msg.sender == (address(unresolved_1aa7c0ec))), CustomError_ded7c80c());
-        var_a = 0xded7c80c00000000000000000000000000000000000000000000000000000000;
-        require(arg1 > block.number, CustomError_58968cf0());
-        var_a = 0x58968cf000000000000000000000000000000000000000000000000000000000;
-        require((block.number - arg1) > block.number, CustomError_c42a0185());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x11;
-        require((block.number - arg1) > 0x0100, CustomError_c42a0185());
-        var_a = 0xc42a018500000000000000000000000000000000000000000000000000000000;
-        require(!blockhash(arg1), CustomError_31aed5c2());
-        require(arg0 + (arg0) > 0xffffffffffffffff, CustomError_31aed5c2());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x41;
-        require(((var_c + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) > 0xffffffffffffffff) | ((var_c + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f))) < var_c), CustomError_31aed5c2());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x41;
-        uint256 var_c = var_c + (uint248((0x20 + (0x1f + (arg0 + (arg0)))) + 0x1f));
-        uint256 var_d = (arg0 + (arg0));
-        var_e = msg.data[36:36];
-        uint256 var_f = 0;
-        require(keccak256(var_e) - blockhash(arg1), CustomError_31aed5c2());
-        require(!(arg0 + (arg0)), CustomError_31aed5c2());
-        require(bytes1(0x20 + (arg0 + (arg0))) < 0xc000000000000000000000000000000000000000000000000000000000000000, CustomError_31aed5c2());
-        require(!(arg0 + (arg0)), CustomError_31aed5c2());
-        require(bytes1(0x20 + (arg0 + (arg0))) < 0xf800000000000000000000000000000000000000000000000000000000000000, CustomError_31aed5c2());
-        require(!(0 < (arg0 + (arg0))), CustomError_31aed5c2());
-        require((bytes1(((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09) > 0xff, CustomError_31aed5c2());
-        require((0x01 + (bytes1((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09))) > 0xff, CustomError_31aed5c2());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x11;
-        require(0 > (0 + (bytes1(0x01 + ((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09)))), CustomError_31aed5c2());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x11;
-        require(!(block.chainid == 0xa5bd), CustomError_31aed5c2());
-        require(block.chainid == 0xa5bd, CustomError_31aed5c2());
-        require(0 < 0x03, CustomError_31aed5c2());
-        require(!((0 + (bytes1(0x01 + ((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09)))) < (arg0 + (arg0))), CustomError_31aed5c2());
-        require(!((0 + (bytes1(0x01 + ((((0x20 + (arg0 + (arg0))) + 0) >> 0xf8) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff09)))) < (arg0 + (arg0))), CustomError_31aed5c2());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x32;
-        var_a = 0x31aed5c200000000000000000000000000000000000000000000000000000000;
-        if (0 < 0x08) {
-        }
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x11;
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x32;
-        if (!block.chainid == 0xa5bd) {
-            if (block.chainid == 0xa5bd) {
-                require(!(block.chainid == 0xa5bd), CustomError_c0098bd9());
-            }
-            require(block.chainid == 0xa5bd, CustomError_c0098bd9());
-        }
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x32;
-        var_a = 0xc0098bd900000000000000000000000000000000000000000000000000000000;
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
-        var_b = 0x32;
-        var_a = 0xff28378700000000000000000000000000000000000000000000000000000000;
-        var_a = 0xbfc9f0d300000000000000000000000000000000000000000000000000000000;
-        require(executionDeadline, CustomError_ded7c80c());
-        require(!(!block.timestamp > executionDeadline), CustomError_ded7c80c());
-        var_a = 0xded7c80c00000000000000000000000000000000000000000000000000000000;
-        var_a = 0xd5ef09ba00000000000000000000000000000000000000000000000000000000;
+        require(!(bytes1(unresolved_38803a3b >> 0x08)), CustomError_d5ef09ba());
+        uint256 var_a = (0x5bd28f7c + (0x0f24f561 + (arg0 + (arg0)))) << 0xe1;
     }

─── Function fund (0xa65e2cfd → 0x9a018578) ───
@@ -1,41 +1,43 @@
     
-    /// @custom:selector    0xa65e2cfd
-    /// @custom:signature   fund(uint256 arg0, uint256 arg1) public payable
+    /// @custom:selector    0x9a018578
+    /// @custom:signature   Unresolved_9a018578(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_9a018578(uint256 arg0, uint256 arg1) public payable {
+        require(!store_r);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x40, CustomError_618bbdd5());
         require(msg.sender - 0, CustomError_618bbdd5());
-        var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
-        require(bytes1(unresolved_308657d7 >> 0x08), CustomError_5adf6387());
-        var_a = 0x5adf638700000000000000000000000000000000000000000000000000000000;
-        require(!arg0);
-        require(!arg1);
-        currentRewardAmount = arg0;
-        unresolved_d415b3f9 = arg0;
-        unresolved_8bd03d0a = arg1;
-        require(unresolved_d415b3f9 > (unresolved_d415b3f9 + unresolved_8bd03d0a));
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        uint256 var_a = (0xe8e105c2 ^ (0x4e08231c ^ (0x487b0610 ^ (0x8f199d1b ^ arg1)))) << 0xe0;
+        require(bytes1(unresolved_38803a3b >> 0x08), CustomError_a5209c79());
+        var_a = (0x82c0d404 - (0x406980c8 + (0x9d36b6c3 + arg1))) << 0xe0;
+        require(!arg0, CustomError_4e48817a());
+        require(!arg1, CustomError_4e48817a());
+        unresolved_bdbb068a = arg0;
+        unresolved_dddd10c7 = arg0;
+        unresolved_a777a492 = arg1;
+        require(unresolved_dddd10c7 > (unresolved_dddd10c7 + unresolved_a777a492), CustomError_4e48817a());
+        var_a = 0x4e48817a00000000000000000000000000000000000000000000000000000000;
         var_b = 0x11;
         var_c = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
         address var_d = msg.sender;
         address var_e = address(this);
-        uint256 var_f = unresolved_d415b3f9 + unresolved_8bd03d0a;
+        uint256 var_f = unresolved_dddd10c7 + unresolved_a777a492;
         (bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_d); // call
-        require(!0, CustomError_045c4b02());
-        unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
-        var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
-        require(0x20 > ret0.length);
-        require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g));
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        require(!0, CustomError_305f41f2());
+        unresolved_38803a3b = (uint248(unresolved_38803a3b)) | 0x0100;
+        var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+        require(0x20 > ret0.length, CustomError_4e487bd1());
+        require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g), CustomError_4e487bd1());
+        var_a = (0xb9b54963 ^ (0xf7fd3212 ^ (var_g + 0x20))) << 0xe0;
         var_b = 0x41;
         uint256 var_g = var_g + 0x20;
         require(((var_g + 0x20) - var_g) < 0x20);
-        require(var_g.length - var_g.length, CustomError_045c4b02());
-        require(!var_g.length, CustomError_045c4b02());
-        var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
-        unresolved_308657d7 = (uint248(unresolved_308657d7)) | 0x0100;
-        var_a = 0x932ca0a300000000000000000000000000000000000000000000000000000000;
-        var_a = 0xea1083a700000000000000000000000000000000000000000000000000000000;
+        require(var_g.length - var_g.length, CustomError_305f41f2());
+        require(!var_g.length, CustomError_305f41f2());
+        var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+        unresolved_38803a3b = (uint248(unresolved_38803a3b)) | 0x0100;
+        var_a = (0xb129e438 ^ (0xb99c327a ^ (0x9b9976e1 ^ arg1))) << 0xe0;
+        var_a = (0x0414638f - (0x14f5eeb5 + (0x642134b0 + (0x750dc3d1 + arg1)))) << 0xe0;
     }

─── Function bond (0x9940686e → 0x2dee68b3) ───
@@ -1,54 +1,58 @@
     
-    /// @custom:selector    0x9940686e
-    /// @custom:signature   bond(uint256 arg0) public payable
+    /// @custom:selector    0x2dee68b3
+    /// @custom:signature   Unresolved_2dee68b3(uint256 arg0) public payable
     /// @param              arg0 ["uint256", "bytes32", "int256"]
-    function bond(uint256 arg0) public payable {
+    function Unresolved_2dee68b3(uint256 arg0) public payable {
+        require(0x68 == msg.data[0]);
+        require(0 == 0x01);
         require(msg.value);
-        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, CustomError_253ef1d2());
-        require(executionDeadline, CustomError_253ef1d2());
-        require(block.timestamp > executionDeadline, CustomError_253ef1d2());
-        require(!(bytes1(unresolved_308657d7 >> 0x08)), CustomError_253ef1d2());
-        require(bytes1(unresolved_308657d7), CustomError_253ef1d2());
-        require(executionDeadline, CustomError_253ef1d2());
-        require(!(block.timestamp > executionDeadline), CustomError_253ef1d2());
-        var_a = 0x253ef1d200000000000000000000000000000000000000000000000000000000;
-        require((currentRewardAmount >> 0x01) > arg0, CustomError_e92c469f());
-        var_a = 0xe92c469f00000000000000000000000000000000000000000000000000000000;
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0x20, CustomError_24793289());
+        require(unresolved_7bb87963, CustomError_24793289());
+        require(unresolved_7bb87963, CustomError_24793289());
+        require(!(bytes1(unresolved_38803a3b >> 0x08)), CustomError_24793289());
+        require(bytes1(unresolved_38803a3b), CustomError_24793289());
+        uint256 var_a = (0x72c19e10 ^ (0xf026eb8e ^ (0xe241e4b8 ^ (0x44dfa3af ^ arg0)))) << 0xe0;
+        require(unresolved_7bb87963, CustomError_e92c4b8f());
+        require(unresolved_7bb87963, CustomError_e92c4b8f());
+        require((unresolved_bdbb068a >> 0x01) > arg0, CustomError_e92c4b8f());
+        var_a = 0xe92c4b8f00000000000000000000000000000000000000000000000000000000;
         var_b = 0x23b872dd00000000000000000000000000000000000000000000000000000000;
         address var_c = msg.sender;
         address var_d = address(this);
         uint256 var_e = arg0;
         (bool success, bytes memory ret0) = address(0).Unresolved_23b872dd(var_c); // call
-        require(!0, CustomError_045c4b02());
-        unresolved_1aa7c0ec = (uint96(unresolved_1aa7c0ec)) | msg.sender;
-        require(block.timestamp > (block.timestamp + 0x012c), CustomError_045c4b02());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        require(!0, CustomError_b7f27eb5());
+        store_m = (uint96(store_m)) | msg.sender;
+        require(block.timestamp > (block.timestamp + 0x012c), CustomError_b7f27eb5());
+        var_a = (0x1e1e8075 + (0x3029fafc + (block.timestamp + 0x012c))) << 0xe0;
         var_f = 0x11;
-        executionDeadline = block.timestamp + 0x012c;
-        bondAmount = arg0;
-        var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
-        require(0x20 > ret0.length);
-        require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g));
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        unresolved_7bb87963 = block.timestamp + 0x012c;
+        store_c = arg0;
+        var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ arg0)))) << 0xe1;
+        require(0x20 > ret0.length, CustomError_4e487bd1());
+        require(((var_g + 0x20) > 0xffffffffffffffff) | ((var_g + 0x20) < var_g), CustomError_4e487bd1());
+        var_a = (0xb9b54963 ^ (0xf7fd3212 ^ (var_g + 0x20))) << 0xe0;
         var_f = 0x41;
         uint256 var_g = var_g + 0x20;
         require(((var_g + 0x20) - var_g) < 0x20);
         require(var_g.length - var_g.length, CustomError_045c4b02());
         require(!var_g.length, CustomError_045c4b02());
-        var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
-        var_a = 0x2479328900000000000000000000000000000000000000000000000000000000;
-        var_a = 0xd5ef09ba00000000000000000000000000000000000000000000000000000000;
-        require(currentRewardAmount > (currentRewardAmount + bondAmount), CustomError_9cbc1de1());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ arg0)))) << 0xe1;
+        var_a = (0x7de41b1f ^ (0x6f7b63f6 ^ arg0)) << 0xe1;
+        require(!(block.timestamp > unresolved_7bb87963), CustomError_253ef1d2());
+        var_a = (0x7de41b1f ^ (0x6f7b63f6 ^ arg0)) << 0xe1;
+        var_a = (0x5bd28f7c + (0x0f24f561 + unresolved_38803a3b)) << 0xe1;
+        require(unresolved_bdbb068a > (unresolved_bdbb068a + store_c), CustomError_6343d604());
+        var_a = (0x1e1e8075 + (0x3029fafc + (unresolved_bdbb068a + store_c))) << 0xe0;
         var_f = 0x11;
-        currentRewardAmount = currentRewardAmount + bondAmount;
-        require(totalBondsDeposited > (totalBondsDeposited + bondAmount), CustomError_9cbc1de1());
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        unresolved_bdbb068a = unresolved_bdbb068a + store_c;
+        require(store_j > (store_j + store_c), CustomError_6343d604());
+        var_a = (0x1e1e8075 + (0x3029fafc + (store_j + store_c))) << 0xe0;
         var_f = 0x11;
-        totalBondsDeposited = totalBondsDeposited + bondAmount;
-        require(executionDeadline, CustomError_9cbc1de1());
-        require(!(block.timestamp > executionDeadline), CustomError_9cbc1de1());
-        var_a = 0x9cbc1de100000000000000000000000000000000000000000000000000000000;
-        if (executionDeadline) {
-        }
+        store_j = store_j + store_c;
+        require(unresolved_7bb87963, CustomError_6343d604());
+        require(unresolved_7bb87963, CustomError_6343d604());
+        var_a = 0x6343d60400000000000000000000000000000000000000000000000000000000;
+        require(!(block.timestamp > unresolved_7bb87963), CustomError_6343d604());
+        var_a = 0x6343d60400000000000000000000000000000000000000000000000000000000;
     }

─── Function withdraw (0x3ccfd60b → 0x3445d63a) ───
@@ -1,40 +1,43 @@
     
-    /// @custom:selector    0x3ccfd60b
-    /// @custom:signature   withdraw() public payable
-    function withdraw() public payable {
+    /// @custom:selector    0x3445d63a
+    /// @custom:signature   Unresolved_3445d63a(uint256 arg0) public payable
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_3445d63a(uint256 arg0) public payable {
+        require(0xd6 == msg.data[0]);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
-        require(!(bytes1(unresolved_308657d7 >> 0x08)), CustomError_618bbdd5());
-        require(msg.sender - 0, CustomError_618bbdd5());
-        var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
-        require(executionDeadline, CustomError_9cbc1de1());
-        require(!(block.timestamp > executionDeadline), CustomError_9cbc1de1());
-        var_a = 0x9cbc1de100000000000000000000000000000000000000000000000000000000;
-        unresolved_1aa7c0ec = uint96(unresolved_1aa7c0ec);
-        bondAmount = 0;
-        executionDeadline = 0;
-        require(unresolved_8bd03d0a > (unresolved_8bd03d0a + unresolved_d415b3f9));
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        require(!(bytes1(unresolved_38803a3b >> 0x08)), CustomError_618bbfaa());
+        require(msg.sender - 0, CustomError_618bbfaa());
+        var_a = 0x618bbfaa00000000000000000000000000000000000000000000000000000000;
+        require(unresolved_7bb87963, CustomError_6343df98());
+        require(!(block.timestamp > unresolved_7bb87963), CustomError_6343df98());
+        var_a = 0x6343df9800000000000000000000000000000000000000000000000000000000;
+        store_m = uint96(store_m);
+        store_c = 0;
+        unresolved_7bb87963 = 0;
+        require(unresolved_a777a492 > (unresolved_a777a492 + unresolved_dddd10c7));
+        uint256 var_a = (0x1e1e8075 + (0x3029fafc + (unresolved_a777a492 + unresolved_dddd10c7))) << 0xe0;
         var_b = 0x11;
-        unresolved_308657d7 = uint248(unresolved_308657d7);
-        unresolved_8bd03d0a = 0;
-        currentRewardAmount = 0;
-        require(!unresolved_8bd03d0a + unresolved_d415b3f9);
+        unresolved_38803a3b = uint248(unresolved_38803a3b);
+        unresolved_a777a492 = 0;
+        unresolved_bdbb068a = 0;
+        require(!unresolved_a777a492 + unresolved_dddd10c7);
         var_c = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;
         address var_d = msg.sender;
-        uint256 var_e = unresolved_8bd03d0a + unresolved_d415b3f9;
+        uint256 var_e = unresolved_a777a492 + unresolved_dddd10c7;
         (bool success, bytes memory ret0) = address(0).Unresolved_a9059cbb(var_d); // call
-        require(!0, CustomError_045c4b02());
-        var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
-        require(0x20 > ret0.length);
-        require(((var_f + 0x20) > 0xffffffffffffffff) | ((var_f + 0x20) < var_f));
-        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
+        require(!0, CustomError_6cd7e776());
+        var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+        require(0x20 > ret0.length, CustomError_4e487bd1());
+        require(((var_f + 0x20) > 0xffffffffffffffff) | ((var_f + 0x20) < var_f), CustomError_4e487bd1());
+        var_a = (0xb9b54963 ^ (0xf7fd3212 ^ (var_f + 0x20))) << 0xe0;
         var_b = 0x41;
         uint256 var_f = var_f + 0x20;
         require(((var_f + 0x20) - var_f) < 0x20);
-        require(var_f.length - var_f.length, CustomError_045c4b02());
-        require(!var_f.length, CustomError_045c4b02());
-        var_a = 0x045c4b0200000000000000000000000000000000000000000000000000000000;
-        var_a = 0x53cd7f7900000000000000000000000000000000000000000000000000000000;
-        var_a = 0xd5ef09ba00000000000000000000000000000000000000000000000000000000;
+        require(var_f.length - var_f.length, CustomError_6cd7e776());
+        require(!var_f.length, CustomError_6cd7e776());
+        var_a = (0xe141e972 ^ (0xd4bea647 ^ (0x4feee602 ^ (0x783f8cb6 ^ (msg.data[0] >> 0xe0))))) << 0xe1;
+        var_a = (0x9e328c1f - (0x05bc439d + (0xec43c7fb + (unresolved_a777a492 + unresolved_dddd10c7)))) << 0xe0;
+        var_a = 0xd5ef0eb800000000000000000000000000000000000000000000000000000000;
     }

─── Function requestCancellation (0x81972d00 → 0x27d6cfc5) ───
@@ -1,10 +1,12 @@
     
-    /// @custom:selector    0x81972d00
-    /// @custom:signature   requestCancellation() public payable
-    function requestCancellation() public payable {
+    /// @custom:selector    0x27d6cfc5
+    /// @custom:signature   Unresolved_27d6cfc5() public payable
+    function Unresolved_27d6cfc5() public payable {
+        require(!store_e);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
-        require(msg.sender - 0, CustomError_618bbdd5());
-        var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
-        unresolved_308657d7 = 0x01 | (uint248(unresolved_308657d7));
+        require(msg.sender - 0, CustomError_465d7210());
+        bytes32 var_a = (0xe8e105c2 ^ (0x4e08231c ^ (0x487b0610 ^ (0x8f199d1b ^ (msg.data[0] >> 0xe0))))) << 0xe0;
+        unresolved_7bb87963 = 0x01 | (uint248(unresolved_7bb87963));
     }

─── Function resume (0x046f7da2 → 0x9ff9efde) ───
@@ -1,10 +1,12 @@
     
-    /// @custom:selector    0x046f7da2
-    /// @custom:signature   resume() public payable
-    function resume() public payable {
+    /// @custom:selector    0x9ff9efde
+    /// @custom:signature   Unresolved_9ff9efde() public payable
+    function Unresolved_9ff9efde() public payable {
+        require(!store_o);
+        require(0 == 0x01);
         require(msg.value);
         require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
-        require(msg.sender - 0, CustomError_618bbdd5());
-        var_a = 0x618bbdd500000000000000000000000000000000000000000000000000000000;
-        unresolved_308657d7 = uint248(unresolved_308657d7);
+        require(msg.sender - 0, CustomError_fe72520b());
+        bytes32 var_a = (0xe8e105c2 ^ (0x4e08231c ^ (0x487b0610 ^ (0x8f199d1b ^ (msg.data[0] >> 0xe0))))) << 0xe0;
+        unresolved_7bb87963 = uint248(unresolved_7bb87963);
     }

─── Added: Unresolved_febc8906 (0xfebc8906) ───
@@ -1,0 +1,12 @@
+    
+    /// @custom:selector    0xfebc8906
+    /// @custom:signature   Unresolved_febc8906(uint256 arg0) public view returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_febc8906(uint256 arg0) public view returns (uint256) {
+        require(0xfe == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        var_a = store_j;
+        return store_j;
+    }

─── Added: Unresolved_a7adc0e8 (0xa7adc0e8) ───
@@ -1,0 +1,12 @@
+    
+    /// @custom:selector    0xa7adc0e8
+    /// @custom:signature   Unresolved_a7adc0e8(uint256 arg0) public view returns (address)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_a7adc0e8(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_m);
+        return address(store_m);
+    }

─── Added: Unresolved_867c6ed9 (0x867c6ed9) ───
@@ -1,0 +1,12 @@
+    
+    /// @custom:selector    0x867c6ed9
+    /// @custom:signature   Unresolved_867c6ed9(uint256 arg0) public pure returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_867c6ed9(uint256 arg0) public pure returns (uint256) {
+        require(0x86 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        uint256 var_a = 0;
+        return 0;
+    }

─── Added: Unresolved_47c33f39 (0x47c33f39) ───
@@ -1,0 +1,11 @@
+    
+    /// @custom:selector    0x47c33f39
+    /// @custom:signature   Unresolved_47c33f39() public view returns (uint256)
+    function Unresolved_47c33f39() public view returns (uint256) {
+        require(!store_d);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        var_a = 0x0100;
+        return 0x0100;
+    }

─── Added: Unresolved_cba105ba (0xcba105ba) ───
@@ -1,0 +1,16 @@
+    
+    /// @custom:selector    0xcba105ba
+    /// @custom:signature   Unresolved_cba105ba(uint256 arg0) public view returns (bool)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_cba105ba(uint256 arg0) public view returns (bool) {
+        require(0xcb == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        if (unresolved_7bb87963) {
+            uint256 var_a = !(block.timestamp > unresolved_7bb87963);
+            return !(block.timestamp > unresolved_7bb87963);
+            var_a = unresolved_7bb87963;
+            return unresolved_7bb87963;
+        }
+    }

─── Added: Unresolved_e0e40e82 (0xe0e40e82) ───
@@ -1,0 +1,11 @@
+    
+    /// @custom:selector    0xe0e40e82
+    /// @custom:signature   Unresolved_e0e40e82() public view returns (uint256)
+    function Unresolved_e0e40e82() public view returns (uint256) {
+        require(!store_n);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        uint256 var_a = 0;
+        return 0;
+    }

─── Added: Unresolved_55ba05c1 (0x55ba05c1) ───
@@ -1,0 +1,12 @@
+    
+    /// @custom:selector    0x55ba05c1
+    /// @custom:signature   Unresolved_55ba05c1(uint256 arg0) public pure returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_55ba05c1(uint256 arg0) public pure returns (uint256) {
+        require(0x55 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        uint256 var_a = 0;
+        return 0;
+    }

─── Added: Unresolved_73b223b7 (0x73b223b7) ───
@@ -1,0 +1,11 @@
+    /// @custom:selector    0x73b223b7
+    /// @custom:signature   Unresolved_73b223b7(uint256 arg0) public view returns (uint256)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_73b223b7(uint256 arg0) public view returns (uint256) {
+        require(0x23 == msg.data[0]);
+        require(0 == 0x01);
+        require(msg.value);
+        require((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0);
+        var_a = store_c;
+        return store_c;
+    }

─── Added: Unresolved_30efb285 (0x30efb285) ───
@@ -1,0 +1,12 @@
+    
+    /// @custom:selector    0x30efb285
+    /// @custom:signature   Unresolved_30efb285(uint256 arg0) public view returns (bool)
+    /// @param              arg0 ["uint256", "bytes32", "int256"]
+    function Unresolved_30efb285(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(unresolved_38803a3b));
+        return !(!bytes1(unresolved_38803a3b));
+    }

Commit 13b5799

@g4titanx g4titanx added Urgent Needed for the next milestone Hard Requires more technicality labels Mar 5, 2026
@g4titanx g4titanx merged commit 446be3f into master Mar 12, 2026
8 checks passed
@g4titanx g4titanx deleted the fix/push_split-invalid-jumps branch March 12, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Hard Requires more technicality Urgent Needed for the next milestone

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants