BNB Chain

0xdd022ea55a3e2d9b7921127f1790916896cf3436

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

Decompilation outputBNB Chain · 0xdd022ea5…96cf34365.3 KB8.1 s
Share
955 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// SPDX-License-Identifier: MIT  >=0.8.0;  {        = 10000;        = 21600;        = 9;        = 57005;        ( => )  ; // STORAGE[0x0]    ( => ( => ))  ; // STORAGE[0x1]      ; // STORAGE[0x2]     ; // STORAGE[0x3]     ; // STORAGE[0x4]      ; // STORAGE[0x5]      ; // STORAGE[0x6]      ; // STORAGE[0x7]    ( => )  ; // STORAGE[0x8]      ; // STORAGE[0x9]      ; // STORAGE[0xa]      ; // STORAGE[0xb]      ; // STORAGE[0xc]     ; // STORAGE[0xd]      ; // STORAGE[0xe]      ; // STORAGE[0xf]      ; // STORAGE[0x10]     ; // STORAGE[0x46fee3d77c34a6c5e10c3be6dc4b132c30449dbf4f0bc07684896dd09334299]     ; // STORAGE[0x5eff886ea0ce6ca488a3d6e336d6c0f75f46d19b42c06ce5ee98e42c96d256c7]         ();     ();     ();     ();     ();     ();     ( ,  , );     ();     ();     ();     ();     ();     ();     ();     ();     ();     ();     ();     ( ,  , );     (, , );     ();     ();     (, , );     ();     ();     ( ,  );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }         () {        (. == , ());        ;    }         ( )   {        [] = ;         ();    }         ()    () {         !(!(()));    }         ( )   {        ( != (0), ());         (, );         = ;    }         ( )   {        ( != (0), ());         = ;         ();    }         ( )  {        (. == , "unauthorized access");        ( != (0), ());         = ;         ();    }         ( )   {        ( <= 0x01f4, ());         = ;         ();    }         ( )   {        ( != (0), ());         = ;         ();    }         ( )   {        ( != (0), ());         = ;         ();    }         ( ,  )   () {        (., , );         ;    }         ()    ( ) {         ;    }         ( )   {        [] = ;         ();    }         ( )  {        (. == , "unauthorized access");        ( <= 0x2710, ());         = ;         ();    }         ()   {         (, (0));         = (0);    }         ()  {        (. == , "unauthorized access");        (. >= ( + 0x5460), ());        ( <= 0x01f4, ());        (, ());        ((([] * ) / 0x2710), ());          = !(());         ( == ) {        }  {             =  == ;        }         () {             ;             ;             ( != ) {                  = 0xdead;                  = (([] * ) / 0x2710) - (((([] * ) / 0x2710) * ) / 0x2710);                 (0xdead == ) {                      = (0);                     (!()) {                         = ;                    }                    (( != (0) &&  != ), "invalid fee receiver");                     (((([] * ) / 0x2710) * ) / 0x2710 == 0) {                         ( != (0)) {                            (!([] < (([] * ) / 0x2710)), (, [], (([] * ) / 0x2710)));                            [] = [] - (([] * ) / 0x2710);                             ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                                [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                            }  {                                 =  - (([] * ) / 0x2710);                            }                             (, (0xdead), (([] * ) / 0x2710));                        }  {                             =  + (([] * ) / 0x2710);                             ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                                [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                            }  {                                 =  - (([] * ) / 0x2710);                            }                             (, (0xdead), (([] * ) / 0x2710));                        }                        (..);                        ( ,   ) = .(); // call                        ();                          = 0x20;                         () {                             ((( + 0) < ) | (( + 0) > 0xffffffffffffffff)) (65);                             =  + 0;                        }  {                             = ;                        }                         = .;                         (([] * ) / 0x2710);                        ;                    }                    ((((([] * ) / 0x2710) * ) / 0x2710) < (([] * ) / 0x2710), ());                     ( != (0)) {                        (!([] < (((([] * ) / 0x2710) * ) / 0x2710)), (, [], (((([] * ) / 0x2710) * ) / 0x2710)));                        [] = [] - (((([] * ) / 0x2710) * ) / 0x2710);                         ( != (0)) {                            [] = [] + (((([] * ) / 0x2710) * ) / 0x2710);                        }  {                             =  - (((([] * ) / 0x2710) * ) / 0x2710);                        }                         (, , (((([] * ) / 0x2710) * ) / 0x2710));                    }  {                         =  + (((([] * ) / 0x2710) * ) / 0x2710);                         ( != (0)) {                            [] = [] + (((([] * ) / 0x2710) * ) / 0x2710);                        }  {                             =  - (((([] * ) / 0x2710) * ) / 0x2710);                        }                         (, , (((([] * ) / 0x2710) * ) / 0x2710));                    }                }  {                     = ;                     = ([] * ) / 0x2710;                }                 = ;            }  {                (!(0x0), ());                 = ([] * ) / 0x2710;            }             ( != (0)) {                (!([] < ), (, [], ));                [] = [] - ;                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + ;                }  {                     =  - ;                }                 (, (0xdead), );            }  {                 =  + (([] * ) / 0x2710);                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                }  {                     =  - (([] * ) / 0x2710);                }                 (, (0xdead), (([] * ) / 0x2710));            }        }   (0xdead == ) {             ([]) {                 ( != (0)) {                    (!([] < (([] * ) / 0x2710)), (, [], (([] * ) / 0x2710)));                    [] = [] - (([] * ) / 0x2710);                     ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                        [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                    }  {                         =  - (([] * ) / 0x2710);                    }                     (, (0xdead), (([] * ) / 0x2710));                }  {                     =  + (([] * ) / 0x2710);                     ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                        [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                    }  {                         =  - (([] * ) / 0x2710);                    }                     (, (0xdead), (([] * ) / 0x2710));                }                (..);                ( ,   ) = .(); // call                ();                  = 0x20;                 () {                     ((( + 0) < ) | (( + 0) > 0xffffffffffffffff)) (65);                     =  + 0;                }  {                     = ;                }                 = .;                 (([] * ) / 0x2710);                ;            }             ;             ( != ) {                  = 0xdead;                  = (([] * ) / 0x2710) - (((([] * ) / 0x2710) * ) / 0x2710);                  = (0);                 (!()) {                     = ;                }                (( != (0) &&  != ), "invalid fee receiver");                 (((([] * ) / 0x2710) * ) / 0x2710 == 0) {                     ( != (0)) {                        (!([] < (([] * ) / 0x2710)), (, [], (([] * ) / 0x2710)));                        [] = [] - (([] * ) / 0x2710);                         ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                            [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                        }  {                             =  - (([] * ) / 0x2710);                        }                         (, (0xdead), (([] * ) / 0x2710));                    }  {                         =  + (([] * ) / 0x2710);                         ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                            [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                        }  {                             =  - (([] * ) / 0x2710);                        }                         (, (0xdead), (([] * ) / 0x2710));                    }                    (..);                    ( ,   ) = .(); // call                    ();                      = 0x20;                     () {                         ((( + 0) < ) | (( + 0) > 0xffffffffffffffff)) (65);                         =  + 0;                    }  {                         = ;                    }                     = .;                     (([] * ) / 0x2710);                    ;                }                ((((([] * ) / 0x2710) * ) / 0x2710) < (([] * ) / 0x2710), ());                 ( != (0)) {                    (!([] < (((([] * ) / 0x2710) * ) / 0x2710)), (, [], (((([] * ) / 0x2710) * ) / 0x2710)));                    [] = [] - (((([] * ) / 0x2710) * ) / 0x2710);                     ( != (0)) {                        [] = [] + (((([] * ) / 0x2710) * ) / 0x2710);                    }  {                         =  - (((([] * ) / 0x2710) * ) / 0x2710);                    }                     (, , (((([] * ) / 0x2710) * ) / 0x2710));                }  {                     =  + (((([] * ) / 0x2710) * ) / 0x2710);                     ( != (0)) {                        [] = [] + (((([] * ) / 0x2710) * ) / 0x2710);                    }  {                         =  - (((([] * ) / 0x2710) * ) / 0x2710);                    }                     (, , (((([] * ) / 0x2710) * ) / 0x2710));                }                 = ;            }  {                (!(0x0), ());                 = ([] * ) / 0x2710;            }             ( != (0)) {                (!([] < ), (, [], ));                [] = [] - ;                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + ;                }  {                     =  - ;                }                 (, (0xdead), );            }  {                 =  + (([] * ) / 0x2710);                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                }  {                     =  - (([] * ) / 0x2710);                }                 (, (0xdead), (([] * ) / 0x2710));            }        }  {             ( != (0)) {                (!([] < (([] * ) / 0x2710)), (, [], (([] * ) / 0x2710)));                [] = [] - (([] * ) / 0x2710);                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                }  {                     =  - (([] * ) / 0x2710);                }                 (, (0xdead), (([] * ) / 0x2710));            }  {                 =  + (([] * ) / 0x2710);                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                }  {                     =  - (([] * ) / 0x2710);                }                 (, (0xdead), (([] * ) / 0x2710));            }            (..);            ( ,   ) = .(); // call            ();              = 0x20;             () {                 ((( + 0) < ) | (( + 0) > 0xffffffffffffffff)) (65);                 =  + 0;            }  {                 = ;            }             = .;             (([] * ) / 0x2710);            ;             ;             ( != ) {                  = 0xdead;                  = (([] * ) / 0x2710) - (((([] * ) / 0x2710) * ) / 0x2710);                 (0xdead == ) {                      = (0);                     (!()) {                         = ;                    }                    (( != (0) &&  != ), "invalid fee receiver");                     (((([] * ) / 0x2710) * ) / 0x2710 == 0) {                         ( != (0)) {                            (!([] < (([] * ) / 0x2710)), (, [], (([] * ) / 0x2710)));                            [] = [] - (([] * ) / 0x2710);                             ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                                [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                            }  {                                 =  - (([] * ) / 0x2710);                            }                             (, (0xdead), (([] * ) / 0x2710));                        }  {                             =  + (([] * ) / 0x2710);                             ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                                [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                            }  {                                 =  - (([] * ) / 0x2710);                            }                             (, (0xdead), (([] * ) / 0x2710));                        }                        (..);                        ( ,   ) = .(); // call                        ();                          = 0x20;                         () {                             ((( + 0) < ) | (( + 0) > 0xffffffffffffffff)) (65);                             =  + 0;                        }  {                             = ;                        }                         = .;                         (([] * ) / 0x2710);                        ;                    }                    ((((([] * ) / 0x2710) * ) / 0x2710) < (([] * ) / 0x2710), ());                     ( != (0)) {                        (!([] < (((([] * ) / 0x2710) * ) / 0x2710)), (, [], (((([] * ) / 0x2710) * ) / 0x2710)));                        [] = [] - (((([] * ) / 0x2710) * ) / 0x2710);                         ( != (0)) {                            [] = [] + (((([] * ) / 0x2710) * ) / 0x2710);                        }  {                             =  - (((([] * ) / 0x2710) * ) / 0x2710);                        }                         (, , (((([] * ) / 0x2710) * ) / 0x2710));                    }  {                         =  + (((([] * ) / 0x2710) * ) / 0x2710);                         ( != (0)) {                            [] = [] + (((([] * ) / 0x2710) * ) / 0x2710);                        }  {                             =  - (((([] * ) / 0x2710) * ) / 0x2710);                        }                         (, , (((([] * ) / 0x2710) * ) / 0x2710));                    }                }  {                     = ;                     = ([] * ) / 0x2710;                }                 = ;            }  {                (!(0x0), ());                 = ([] * ) / 0x2710;            }             ( != (0)) {                (!([] < ), (, [], ));                [] = [] - ;                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + ;                }  {                     =  - ;                }                 (, (0xdead), );            }  {                 =  + (([] * ) / 0x2710);                 ((0xffffffffffffffffffffffffffffffffffffffff & 0xdead) != 0x0) {                    [(0xdead)] = [(0xdead)] + (([] * ) / 0x2710);                }  {                     =  - (([] * ) / 0x2710);                }                 (, (0xdead), (([] * ) / 0x2710));            }        }        (..);        ( ,   ) = .(); // call        ();          = 0x20;         () {             ((( + 0) < ) | (( + 0) > 0xffffffffffffffff)) (65);             =  + 0;        }  {             = ;        }         = .;         (([] * ) / 0x2710);    }         ( ,  )  {        (. == , ());        ( != (0), ((0)));          = !([]);         (!()) {        }  {             = !();        }         ;         (!) {              =  == ;             ( == ) {                 = !(());            }             = ;        }  {             = ;        }         (!()) {             (0 != (0)) {                (!([0] < ), (0, [0], ));                [0] = [0] - ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }  {                 =  + ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }        }         (!()) {              = .[0] >> 0xe0;             ;             (!(())) {                  = .[0] >> 0xe0;                  = !([]);                 ( != (0xdead)) {                }  {                     = ;                     = !( == 0xdead);                }                 = ;            }  {                 = ;                 = !(());            }            (!(), ());             (0 != (0)) {                (!([0] < ), (0, [0], ));                [0] = [0] - ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }  {                 =  + ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }        }         ( != ) {             (0 != (0)) {                (!([0] < ), (0, [0], ));                [0] = [0] - ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }  {                 =  + ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }        }          = .[0] >> 0xe0;         (!()) {             = ;        }        (( != (0) &&  != ), "invalid fee receiver");         (( * ) / 0x2710 == 0) {             (0 != (0)) {                (!([0] < ), (0, [0], ));                [0] = [0] - ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }  {                 =  + ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 ((0), , );            }        }        ((( * ) / 0x2710) < , ());         (0 != (0)) {            (!([0] < (( * ) / 0x2710)), (0, [0], (( * ) / 0x2710)));            [0] = [0] - (( * ) / 0x2710);             ( != (0)) {                [] = [] + (( * ) / 0x2710);            }  {                 =  - (( * ) / 0x2710);            }             ((0), , (( * ) / 0x2710));        }  {             =  + (( * ) / 0x2710);             ( != (0)) {                [] = [] + (( * ) / 0x2710);            }  {                 =  - (( * ) / 0x2710);            }             ((0), , (( * ) / 0x2710));        }         (0 != (0)) {            (!([0] < ( - (( * ) / 0x2710))), (0, [0], ( - (( * ) / 0x2710))));            [0] = [0] - ( - (( * ) / 0x2710));             ( != (0)) {                [] = [] + ( - (( * ) / 0x2710));            }  {                 =  - ( - (( * ) / 0x2710));            }             ((0), , ( - (( * ) / 0x2710)));        }  {             =  + ;             ( != (0)) {                [] = [] + ;            }  {                 =  - ;            }             ((0), , );        }    }         ( )   {         = (()) | ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00));         ();    }         ( ,  ,  )   () {         ([][.] < 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) {            ([][.] >= , (., [][.], ));            ( != (0), ((0)));            (. != (0), ((0)));            [][.] = [][.] - ;        }        ( != (0), ((0)));        ( != (0), ((0)));          = !([]);         ( == ) {        }  {             =  == ;        }          = (0);         ;         (!) {              = (0);              = !([]);             ( == ) {            }  {                 = ;                 =  == ;            }             = ;        }  {             = ;             = ;        }         (!()) {             ( != (0)) {                (!([] < ), (, [], ));                [] = [] - ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 (, , );            }  {                 =  + ;                 ( != (0)) {                    [] = [] + ;                }  {                     =  - ;                }                 (, , );            }             0x01;        }          =  - (( * ) / 0x2710);         ( != ) {             ( != ) {                 ( != (0)) {                    (!([] < ), (, [], ));                    [] = [] - ;                     ( != (0)) {                        [] = [] + ;                    }  {                         =  - ;                    }                     (, , );                }  {                     =  + ;                     ( != (0)) {                        [] = [] + ;                    }  {                         =  - ;                    }                     (, , );                }                 0x01;            }              = (0);             (!()) {                 = ;            }            (( != (0) &&  != ), "invalid fee receiver");             (( * ) / 0x2710 == 0) {                 ( != (0)) {                    (!([] < ), (, [], ));                    [] = [] - ;                     ( != (0)) {                        [] = [] + ;                    }  {                         =  - ;                    }                     (, , );                }  {                     =  + ;                     ( != (0)) {                        [] = [] + ;                    }  {                         =  - ;                    }                     (, , );                }                 0x01;            }            ((( * ) / 0x2710) < , ());             ( != (0)) {                (!([] < (( * ) / 0x2710)), (, [], (( * ) / 0x2710)));                [] = [] - (( * ) / 0x2710);                 ( != (0)) {                    [] = [] + (( * ) / 0x2710);                }  {                     =  - (( * ) / 0x2710);                }                 (, , (( * ) / 0x2710));            }  {                 =  + (( * ) / 0x2710);                 ( != (0)) {                    [] = [] + (( * ) / 0x2710);                }  {                     =  - (( * ) / 0x2710);                }                 (, , (( * ) / 0x2710));            }        }  {              = (0);             ;             (!(())) {                  = (0);                  = !([]);                 ( != (0xdead)) {                }  {                     = ;                     = !( == 0xdead);                }                 = ;            }  {                 = ;                 = !(());            }            (!(), ());             = ;        }         ( != (0)) {            (!([] < ), (, [], ));            [] = [] - ;             ( != (0)) {                [] = [] + ;            }  {                 =  - ;            }             (, , );        }  {             =  + ;             ( != (0)) {                [] = [] + ;            }  {                 =  - ;            }             (, , );        }         0x01;    }         ( ,  )   () {        (. != (0), ((0)));        ( != (0), ((0)));        [.][] = ;         (., , [.][]);         ;    }         ()    ( ) {         ;    }         ( ,  ,  )  {        ( != (0), ((0)));        ( != (0), ((0)));          = !([]);         ( != ) {             =  == ;        }          = (0);         ;         (!) {              = (0);              = !([]);             (!( == )) {                 = ;                 =  == ;            }             = ;        }  {             = ;             = ;        }         ;         () {             ;             ( != ) {                 ;                 ( == ) {                      = (0);                     (!()) {                         = ;                    }                    (( != (0) &&  != ), "invalid fee receiver");                      =  - (( * ) / 0x2710);                     ((( * ) / 0x2710) != 0x0) {                        ((( * ) / 0x2710) < , ());                        (, , ( * ) / 0x2710);                    }  {                         = ;                    }                     = ;                }  {                     = ;                }                 = ;            }  {                  = (0);                 ;                 (!(())) {                      = (0);                      = !([]);                     (!( != (0xdead))) {                         = ;                         = !( == 0xdead);                    }                     = ;                }  {                     = ;                     = !(());                }                (!(), ());                 = ;            }             = ;        }  {             = ;        }        (, , );    }         ( ,  ,  )  {         ( != (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.        // 0x03fd2a45 => DEAD()    // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x18160ddd => totalSupply()    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x2f48ab7d => usdt()    // 0x313ce567 => decimals()    // 0x3ecb51c0 => setTransferState(bool)    // 0x40c10f19 => mint(address,uint256)    // 0x440a8430 => BALANCE_COOLDOWN()    // 0x5a08bd17 => targetRatio()    // 0x5aa6e675 => governance()    // 0x61d027b3 => treasury()    // 0x70a08231 => balanceOf(address)    // 0x70eb843b => balancePool()    // 0x715018a6 => renounceOwnership()    // 0x74c6bf41 => setSellRates(uint256)    // 0x78c8cda7 => removeWhitelist(address)    // 0x8da5cb5b => owner()    // 0x95d89b41 => symbol()    // 0x9b19251a => whitelist(address)    // 0x9c007af9 => sellRatio()    // 0xa9059cbb => transfer(address,uint256)    // 0xb398d515 => setTargetPool(address)    // 0xb3f00674 => feeReceiver()    // 0xba5265ab => BASE_100()    // 0xd38bfff4 => transferGovernance(address)    // 0xdd62ed3e => allowance(address,address)    // 0xe14f870d => pairFactory()    // 0xe429253e => setTargetRatio(uint256)    // 0xe60e2417 => targetPool()    // 0xeafd817d => lastBalanceTime()    // 0xefdcd974 => setFeeReceiver(address)    // 0xf0f44260 => setTreasury(address)    // 0xf2fde38b => transferOwnership(address)    // 0xf4880b22 => transferStatus()    // 0xf80f5dd5 => addWhitelist(address)}