Ethereum

0x975f5b9c13fa3088c0be9b305f5cc0e92e54a0f5

Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.

Decompilation outputEthereum · 0x975f5b9c…2e54a0f54.6 KB49.7 s
Share
354 lines · Click a variable or keyword to highlight its references · Click a line number to copy its link; Shift-click to copy a block link
//decompiled by exvvul decompiler tool contact@exvul.com https://x.com/exvulsec// Decompilation incomplete: symbolic execution reached a configured deadline for 1 of 11 entry points (170000 ms contract budget): fallback// SPDX-License-Identifier: MIT  >=0.8.0;  {     ; // STORAGE[0x646ce8048c3626bbbf5c2c647f51b237237cec25cfed45e79d4914601933bf31]      ; // STORAGE[0xa5a2208abe0c5f4ba3d9a1a8257f99a7a123333d5d7deaa908e85dd3c5dd4525]    [] ; // STORAGE[0xd90f15b2999653a565bb43347e20e8f705982e5466eb55a88528398f299d0c68]     ;     ;         ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }         () {        (. == );        ;    }    ()   {    }        ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x0eecf949)) {            // Route to Unknown_0eecf949(address) after replacing only msg.sig.            ((0x52e8c97a));            ;        }         ((.. >= 4) && (. == 0x15383154)) {            // Route to Unknown_15383154(bytes,bytes,uint256) after replacing only msg.sig.            ((0xebd9c142));            ;        }         ((.. >= 4) && (. == 0x385b517f)) {            // Route to Unknown_385b517f(bytes) after replacing only msg.sig.            ((0xb9dc40f7));            ;        }         ((.. >= 4) && (. == 0x6c898447)) {            // Route to Unknown_6c898447(uint256) after replacing only msg.sig.            ((0xd5465759));            ;        }         ((.. >= 4) && (. == 0xb0e6892a)) {            // Route to Unknown_b0e6892a(bytes,uint256) after replacing only msg.sig.            ((0xceea9770));            ;        }         ((.. >= 4) && (. == 0xf8eda687)) {            // Route to Unknown_f8eda687() after replacing only msg.sig.            ((0x774c3e11));            ;        }    }             ()     ( ) {          = 0;          = 0x805af178237f59accad94e1a7d58b8056894d12216da697d92ee72cda3efd7ac;         ;          =  + 0x20;         () {             ( >= .) {                ;            }             = 0x01 + ;             = 0x01 + ;             =  + 0x20;        }         ((( + ((( - ) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((( - ) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);          = 0;          =  + 0x20;          =  + 0x40;         () {             =  + ((( - ) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             ( >= .) {                ;            }             = 0x01 + ;             =  + 0x20;             = 0x20 + ;        }         .(0x20, .);    }         ( )   {         = ;    }         (  ,  )   {        (((0x04 + ) + 0x1f) < ..);        (!(((. << 0x05) + (0x04 + ) + 0x20) > ..));        (. == );        (. == );          = 0;         () {             (!(( < .))) (50);            (.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1));             ((.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])]) != (.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])])) {                ();                ;            }             (!(( < .))) (50);            (.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1));             (!(( < .))) (50);            (.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1));             (!(.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40] < ((.. - (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)]))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) {                ();                ;            }             (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40])] > 0xffffffffffffffff) {                ();                ;            }             ((0x20 + (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)]) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40]))) > (.. - (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40])]))) {                ();                ;            }            ( ,   ) = (.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])]).{ : .[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x20] }(""); // call             ((.) != 0x0) {                 (!(. <= 0xffffffffffffffff)) (65);                 ;                 ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);                 =  + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            }             (!) {                ();                ;            }             = 0x01 + ;        }    }         ( )   {          = 0;          = 0;         ( != (. + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {             (!((. + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < .)) (50);             (!( < .)) (50);            [] = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []) | (( >> 0) & (0xffffffffffffffffffffffffffffffffffffffff) & (0xffffffffffffffffffffffffffffffffffffffff) << 0);        }  {             = ;             = . + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;        }         (!(. != 0x0)) (49);         (!((. + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < .)) (50);         = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000) & ;        . = . + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;    }         (  )  {        (((0x04 + ) + 0x1f) < ..);        (!(((. << 0x05) + (0x04 + ) + 0x20) > ..));        (. == );         () {             (. == 0) {                ;            }             (. == 0) {                (49);                ;            }             (!((. + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) < .)) {                (50);                ;            }             = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000) & ;            . = . + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;        }          = 0;         () {             (!( < .)) {                ;            }             ((( + 0x20) + ( << 0x05)) != (( + 0x20) + ( << 0x05))) {                ();                ;            }             (!(. < 0x010000000000000000)) {                (65);                ;            }            . = . + 0x01;             (!(. < .)) {                (50);                ;            }            [.] = (( + 0x20) + ( << 0x05) & (0xffffffffffffffffffffffffffffffffffffffff)) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & [.]);             =  + 0x01;        }    }         (  ,   ,  )   {        (((0x04 + ) + 0x1f) < ..);        (!(((. << 0x05) + (0x04 + ) + 0x20) > ..));        (((0x04 + ) + 0x1f) < ..);        (!(((. << 0x05) + (0x04 + ) + 0x20) > ..));        (. == );          = 0;         () {             ( >= .) {                ;            }             ( >= .) {                (50);                ;            }             (!(.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1))) {                ();                ;            }            ((.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])] & 0xffffffffffffffffffffffffffffffffffffffff) == .[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])]);             (!(( < .))) (50);            (.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1));             ( >= .) {                (50);                ;            }             (!(.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1))) {                ();                ;            }             (!(.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40] < ((.. - (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)]))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) {                ();                ;            }             (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40])] > 0xffffffffffffffff) {                ();                ;            }             ((0x20 + (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)]) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40]))) > (.. - (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40])]))) {                ();                ;            }            ( ,   ) = (.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])]).{ : .[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x20] }(""); // call              = 0x60;             ((.) != 0x0) {                 (. > 0xffffffffffffffff) (65);                 ;                 ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);                 =  + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }             (!) {                ();                ;            }             =  + 0x01;        }          = 0;         ;         () {             = 0x01;             ( >= .) {                ;            }             ( >= .) {                (50);                ;            }             (([]) == ((.))) {                ;            }             = 0x01 + ;             (( != 0x0) && (. == )) {                  = 0;                 () {                     ( >= .) {                        ;                    }                     (!(( < .))) (50);                    (.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1));                    ((.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])] & 0xffffffffffffffffffffffffffffffffffffffff) == (.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])]));                     (!(( < .))) (50);                    (.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1));                     ( >= .) {                        (50);                        ;                    }                     (!(.[((0x04 + ) + 0x20) + ( << 0x05)] < ((.. - ((0x04 + ) + 0x20)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1))) {                        ();                        ;                    }                     (!(.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40] < ((.. - (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)]))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1))) {                        ();                        ;                    }                     (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40])] > 0xffffffffffffffff) {                        ();                        ;                    }                     ((0x20 + (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)]) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40]))) > (.. - (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + (.[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x40])]))) {                        ();                        ;                    }                    ( ,   ) = (.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])]).{ : .[(((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + ( << 0x05)])) + 0x20] }(""); // call                     ((.) != 0x0) {                         (. > 0xffffffffffffffff) (65);                         ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);                         =  + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    }                    ();                     =  + 0x01;                }            }        }         = 0;    }         ( )   {        ( != (0));         = ;    }         ( )   {         (!(. < 0x010000000000000000)) (65);        . = . + 0x01;         (!(. < .)) (50);        [.] =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & [.]);    }         ( )  {         {              := (0x40)            (, 0, ())            (, (((), 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff), (224, (, 0xffffffff))))              := ((), (), , (), 0, 0)              := ()            (, 0, )                          0 { (, ) }             { (, ) }        }    }        // Note: This selector table is synthetic and is not part of the original Solidity source.    // It records the recovered selector-to-signature mapping without executable behavior.        // 0x0eecf949 => Unknown_0eecf949(address)    // 0x13af4035 => setOwner(address)    // 0x15383154 => Unknown_15383154(bytes,bytes,uint256)    // 0x385b517f => Unknown_385b517f(bytes)    // 0x6c898447 => Unknown_6c898447(uint256)    // 0x8da5cb5b => owner()    // 0xb0e6892a => Unknown_b0e6892a(bytes,uint256)    // 0xf635c1b5 => setMask(bytes32)    // 0xf8eda687 => Unknown_f8eda687()}