Ethereum

0x15fc6561f97da526804e26fb843b7c354196aa86

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

Decompilation outputEthereum · 0x15fc6561…4196aa8612.5 KB44.8 s
Share
421 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 29 entry points (170000 ms contract budget): 485cc955// SPDX-License-Identifier: MIT  >=0.8.0;  {        = ;        ( => )  ; // STORAGE[0x0]     ; // STORAGE[0x1]      ; // STORAGE[0x2]     ; // STORAGE[0x3] bytes 0 to 19      ; // STORAGE[0x4] bytes 0 to 19      ; // STORAGE[0x5]    ( => )  ; // STORAGE[0x6] // DESOLEX_STORAGE_CONFLICT_RESOLVED: mapping value 0: bool [ResolvedAbi] vs uint256 [ResolvedAbi] (selected bool) | mapping value 0: bool [VerifiedAbi] vs uint256 [ResolvedAbi] (selected bool)    ( => )  ; // STORAGE[0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00]    ( => ( => ))  ; // STORAGE[0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01]      ; // STORAGE[0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02]     ; // STORAGE[0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03]     ; // STORAGE[0x52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace04]      ; // STORAGE[0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300] bytes 0 to 19     ;     ;         (, , , );     ();     ( , );     ( , , );     (, );     ( , );     ();     ( ,  , );     ( , );     ();     ();     ();     ( ,  );     ();     ();     ();     ( ,  , );     ( , );     (, );     ();     (, );     ();     (, );     ( ,  );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }    ()   {    }             ()    ( ) {         ;    }         ( ,  )   () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (. != (0));        ( != (0));        [.][] = ;         (., , );         ;    }         ( ,  ,  )   () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60));        (, , );         ;    }         ( )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ( == ((.)), ());         (, );         = ;    }         ([]  ,  )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (!(. > 0xffffffffffffffff));        (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04)));        (!(. > 0xffffffffffffffff));        (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04))));        ((.) == , ());          = 0;         () {             ( >= .) {                ;            }            (0x20 *  + ((0x04 + ) + 0x20) + 0x20 - (0x20 *  + ((0x04 + ) + 0x20)) >= 0x20);            ([] != 0, ());             ([([])] -  != 0) {                  = 0;                 ( != 0x0) {                      = 0;                     ([]. < ) {                        (!((). < ( - ([].))), ());                         =  - ([].);                    }                     = ;                }                [[]] = ;                 ([], [[]]);                 ( != 0) {                    ( ,   ) = [].{ :  }(""); // call                      = 0x60;                     (. != 0) {                         ;                         =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                         = ;                    }                    (, ());                     ([], );                }            }             = 0x01 + ;        }    }         ( )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));         ;         = (0x20 + ) + 0x14;          =  + ((((.( << 0x60)))) % (( - ) + (0x01)));         ( -  - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {        }  {             = ((.( << 0x60)));        }         ;    }         ( ,  )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));          = (( / 0x01)) == 0;         (( / 0x01) == 0) {             = !(( / 0x010000000000000000));        }          = (( / 0x01)) == 0x01;         (( / 0x01) == 0x01) {             = (()..) == 0;        }        (!(! && !), ());         = 0x01 | (0xffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000 & );         (!(( / 0x010000000000000000))) {             = (0x01 * 0x010000000000000000) | (0xffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff & );        }    }         ()  {        ();    }         ([]  , []  )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (!(. > 0xffffffffffffffff));        (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04)));        (!(. > 0xffffffffffffffff));        (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04))));        (!(. > 0xffffffffffffffff));        (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04)));        (!(. > 0xffffffffffffffff));        (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04))));        ( == ((.)), ());        ( == , ());          = 0;         () {             ( >= .) {                ;            }            (0x20 *  + ((0x04 + ) + 0x20) + 0x20 - (0x20 *  + ((0x04 + ) + 0x20)) >= 0x20);             (!( < .)) (50);            ([] != 0, ());             (!([] > [[]])) {                 ([] < [[]]) {                    ((0xffffffffffffffffffffffffffffffffffffffff & []) != 0x0);                     ((0xffffffffffffffffffffffffffffffffffffffff & []) != 0x0) {                        (!([[]] < ([[]] - [])));                        [[]] = [[]] - ([[]] - []);                    }  {                         =  + ([[]] - []);                    }                     ((0xffffffffffffffffffffffffffffffffffffffff & 0) != 0x0) {                        [(0)] = [(0)] + ([[]] - []);                    }  {                         =  - ([[]] - []);                    }                     ([], (0), );                }            }  {                ((0xffffffffffffffffffffffffffffffffffffffff & []) != 0x0);                 ((0xffffffffffffffffffffffffffffffffffffffff & 0) != 0x0) {                    (!([(0)] < ([] - [[]])));                    [(0)] = [(0)] - ([] - [[]]);                }  {                     =  + ([] - [[]]);                }                 ((0xffffffffffffffffffffffffffffffffffffffff & []) != 0x0) {                    [[]] = [[]] + ([] - [[]]);                }  {                     =  - ([] - [[]]);                }                 ((0), [], );            }             ([], ([[]]), ([]));             = 0x01 + ;        }    }         ()  {        ( == ((.)), ());         = 0 | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );         (( / 0x01), (0));    }         ( ,  )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        ( == );        ( == );        ( == ((.)), ());        ( <= , ());         (, , , );         = ;         = ;    }         ()    ( ) {         ;    }         ( ,  )   () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (. != (0));        ( != (0));         (. != (0)) {            (!([.] < ));            [.] = [.] - ;        }  {             =  + ;        }         ( != (0)) {            [] = [] + ;        }  {             =  - ;        }         (., , );         ;    }         ( )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ( == ((.)), ());         (, );         = ;    }         ( )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ( == ((.)), ());        (!((). < ), ());        ( ,   ) = ( / 0x01).{ :  }(""); // call          = 0x60;         (. != 0) {             ;             =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             = ;        }        (, ());         (( / 0x01), );    }         ( ,  ,  )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60));         ( != (( / 0x01))) {             = 0x23b872dd00000000000000000000000000000000000000000000000000000000;            ( ,   ) = .(.((0x23b872dd), , (), )); // call transferFrom              = ;             (!( & ( == 0x01))) {                (!((!) & (0x01)));                 =  & ((!.) & (().. > 0));            }            ( != 0x0, ());        }  {             = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;            ( ,   ) = .(.((0xa9059cbb), , )); // call transfer              = ;             (!( & ( == 0x01))) {                (!((!) & (0x01)));                 =  & ((!.) & (().. > 0));            }            ( != 0x0, ());        }    }         ( )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ( == ((.)), ());        ( != (0), ());         = ( * 0x01) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );         (( / 0x01), );    }         ( ,  )  {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));         = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;        ( ,   ) = .(.((0xa9059cbb), , )); // call transfer          = ;         (!( & ( == 0x01))) {            (!((!) & (0x01)));             =  & ((!.) & (().. > 0));        }        ( != 0x0, ());    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         ([][(.)] < 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {            (!([][(.)] < ));            ( != (0));            (. != (0));            [][.] = ((([][(.)])) - );        }        (, , );    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != (0));        ( != (0));        (, , );    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         ( != (0)) {            (!([] < ));            [] = [] - ;        }  {             =  + ;        }         ( != (0)) {            [] = [] + ;        }  {             =  - ;        }         (, , );    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.        ([.], ());        ( ,   ) = .(., ()); // staticcall        ();         ;         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));          = .(, ());        (!( < 0xe8d4a51000), ());        (![.], ());         = ((0x20 + ) + 0x14);          = ( + (((((.(. << 0x60)))) % ((( - ) + 0x01)))));         (( - ) - 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff == 0) {             = ((.(. << 0x60)));        }        ( != 0x0, ());        [.] = ;        (. != (0));         ((0xffffffffffffffffffffffffffffffffffffffff & 0) != 0x0) {            (!([(0)] < ));            [(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.        // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x18160ddd => totalSupply()    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x2b681ce8 => setMinimalEth(uint256)    // 0x313ce567 => decimals()    // 0x3c271a05 => setWhitelist(address[],bool)    // 0x402914f5 => claimable(address)    // 0x485cc955 => initialize(address,address)    // 0x4e71d92d => claim()    // 0x570ca735 => operator()    // 0x64547536 => rebase(address[],uint256[])    // 0x70a08231 => balanceOf(address)    // 0x715018a6 => renounceOwnership()    // 0x83ad4542 => setRange(uint256,uint256)    // 0x878fb82d => unresolved_878fb82d()    // 0x8da5cb5b => owner()    // 0x95d89b41 => symbol()    // 0x9b85961f => getRange()    // 0xa9059cbb => transfer(address,uint256)    // 0xb3ab15fb => setOperator(address)    // 0xc311d049 => withdrawEth(uint256)    // 0xc884ef83 => claimed(address)    // 0xc8fea2fb => collect(address,address,uint256)    // 0xd936547e => whitelisted(address)    // 0xdd62ed3e => allowance(address,address)    // 0xf2fde38b => transferOwnership(address)    // 0xf3fef3a3 => withdraw(address,uint256)}