BNB Chain

0x8795530eed8d79635d484206addec9286f2c1a3f

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

Decompilation outputBNB Chain · 0x8795530e…6f2c1a3f9.8 KB4.9 s
Share
713 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;  {     ()    ( );     ( )    ( );     ( ,  )   ( );}  {     ()    ( ,  ,  );}  {        = 489982930986835137684486657990555633941558688085;          ; // STORAGE[0x0]     ; // STORAGE[0x1]      ; // STORAGE[0x2]     ; // STORAGE[0x3] bytes 0 to 19     ; // STORAGE[0x5] bytes 0 to 19      ; // STORAGE[0x6]     ; // STORAGE[0x7]     ; // STORAGE[0x8]    ( => ) ; // STORAGE[0x9]    ( => )  ; // STORAGE[0xa]    ( => ) ; // STORAGE[0xb]    ( => ) ; // STORAGE[0xc]    [] ; // STORAGE[0xd]      ; // STORAGE[0xd]    ( => ) ; // STORAGE[0xe]    ( => ) ; // STORAGE[0xf]     ; // STORAGE[0x10]     ; // STORAGE[0x11]      ; // STORAGE[0x12]     ; // STORAGE[0x13]     ; // STORAGE[0x14]     ; // STORAGE[0x15]     ; // STORAGE[0x16]     ; // STORAGE[0x17]     ; // STORAGE[0x18]     ; // STORAGE[0x19]     ; // STORAGE[0x1a] bytes 0 to 0     ; // STORAGE[0x1a] bytes 1 to 1     ;     ;     ;     ;         ();     ();     ( ,  );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }         () {        (. == , ());        ;    }    ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x62150efd)) {            // Route to Unknown_62150efd(uint256,uint256,uint256) after replacing only msg.sig.            ((0x7f14bbd7));            ;        }         ((.. >= 4) && (. == 0x8d47a773)) {            // Route to Unknown_8d47a773() after replacing only msg.sig.            ((0x4bdc4291));            ;        }         ((.. >= 4) && (. == 0xa479d423)) {            // Route to Unknown_a479d423(address[],bytes,uint256) after replacing only msg.sig.            ((0xb3643ebb));            ;        }         ((.. >= 4) && (. == 0xd4c8c84d)) {            // Route to Unknown_d4c8c84d() after replacing only msg.sig.            ((0x67417356));            ;        }         ((.. >= 4) && (. == 0xfa6f061e)) {            // Route to Unknown_fa6f061e() after replacing only msg.sig.            ((0x57899dba));            ;        }        ();    }             ( ,  ,  )    {        ( != (0), "Invalid token");        ( != (0), "Invalid to");        ( > 0x0, "Invalid amount");         ( == ) {            (!, "reward running");        }          = ().(, );        (, "Transfer failed");    }         ( )    () {         .(!(!([])), [], []);    }         ()    () {          = ().(());        // duplicate declaration of accountBalance omitted    }         ( )    {        ( > 0x0, "Invalid time");         = ;    }         ([]  ,  )   {          = . == ;         (. != ) {             = [.];        }        (, "Ownable: caller is not the owner or whiteList");        (. != 0x0, "len fail");          = 0;         () {             ( >= .) {                ;            }            ([] != 0, "Invalid account");             (!( < .)) (50);            [[]] = ;             = 0x01 + ;        }    }         ( ,  ,  )    {        (!, "check running");        (!, "reward running");        ( > 0x0, "min verify amount is 0");        ( <= 0x64, "lp reward rate fail");        ( > 0x0, "batch size zero");         = ;         = ;         = ;    }         ()    {         (, (0));         = (0);    }         ( )    () {         .(!(!([])), []);    }         ()    ( ) {         .(, );    }         ( ,  )    {        ( != (0), "Invalid account");        [] = ;    }         ()   {        ();    }         ( )    {        ( > 0x0, "rewardRate the 0");         = ;    }         ([]  ,   ,  )   {        (!(((0x04 + ) + (. << 0x05) + 0x20) > ..));          = . == ;         (. != ) {             = [.];        }        (, "Ownable: caller is not the owner or whiteList");        (. != 0x0, "len");        ( == , "len != len");        ( > 0x0, "teamTotalPow must be greater than zero");        (. > , "time fail");          = 0;         () {             ( >= .) {                ;            }            ([] != 0, "Invalid account");             (!( < .)) (50);             (!( < .)) (50);            [[]] = (.[(0x20 * ) + ((0x04 + ) + 0x20)]) + [[]];             = 0x01 + ;        }         =  + ;         (!( > )) {             = 0;             =  + .;        }    }         ( ,  )    {        ( != (0), "Invalid to");        ( > 0x0, "Invalid amount");        (!((). < ), "Address: insufficient balance");        ( ,   ) = .{ :  }(""); // call          = 0x60;         (. != 0) {             ;             =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             = ;        }        (, "Address: unable to send value, recipient may have reverted");    }         ()    {         = 0;         = 0;         = 0;         = 0;    }         ( ,  )   {        (, );    }         ()   {        ();    }         ()    () {         .(, , , , , , , , , !(!()), !(!()));    }         ( )    {        ( != (0), ());         (, );         = ;    }         ()   {        ();    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != 0x2, "ReentrancyGuard: reentrant call");         = 0x02;        (!, "check running");        (!, "reward running");        ( != 0x0, "Pair not set");          = ().(.);        (. != (0), "Invalid account");          = ;         ( < ) {             = 0;        }         ( > [.]) {             = (( - [.]) + );            [.] = ;              = 0;             ( == 0x0) {                 ([.]) {                    [.] = ;                     (!(( - 0x01) < )) (50);                     (!([.] < )) (50);                     = (( & (0xffffffffffffffffffffffffffffffffffffffff))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                    [()] = [.];                     (!( != 0x0)) (49);                     = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000) & ;                     =  + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;                    [.] = 0;                }            }  {                 (![.]) {                    [.] = ;                    [.] = ;                     =  + 0x01;                    [] = (.) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);                }                 = ;            }             = 0x01;        }         ([.] > ) {              = ( - (([.] - )));             ( < (([.] - ))) {                 = 0;            }             = ;        }        [.] = ;         ( != 0x0) {             (![.]) {                [.] = ;                [.] = ;                 =  + 0x01;                [] = (.) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);            }             = 0x01;        }         ([.]) {            [.] = ;             (!(( - 0x01) < )) (50);             (!([.] < )) (50);             = (( & (0xffffffffffffffffffffffffffffffffffffffff))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );            [()] = [.];             (!( != 0x0)) (49);             = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000) & ;             =  + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;            [.] = 0;        }         = 0x01;    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        (. == , ());        (!, "check running");        (!, "reward running");        ( != (0), "Invalid token address");        ( != (0), "Invalid pair address");        ( ,   ) = .(); // staticcall        ();         ;         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));        ( ,   ) = .(); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));          = (0xffffffffffffffffffffffffffffffffffffffff & ) == 0x55d398326f99059ff775485246999027b3197955;         ((.) == 0x55d398326f99059ff775485246999027b3197955) {             = ((.)) == ;        }         ;         (!()) {             = ((.)) == ;             ((.) == ) {                 = (0xffffffffffffffffffffffffffffffffffffffff & ) == 0x55d398326f99059ff775485246999027b3197955;            }        }        (( || ), "Invalid pair tokens");         = ;         = ;    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != 0x2, "ReentrancyGuard: reentrant call");         = 0x02;          = . == ;         (. != ) {             = [.];        }        (, "Ownable: caller is not the owner or whiteList");        (!, "reward running");        ( != 0x0, "Pair not set");         (0x0 != ) {            ( < , "index out of bounds");              =  < ;              = 0;              = ;             () {                 = ;                 (!( &&  < )) {                     ( < ) {                         = ;                    }  {                         = 0;                         = ;                    }                    ;                }                 (!( < )) (50);                  = ().(([]));                (([]) != 0x0, "Invalid account");                  = ;                 ( < ) {                     = 0;                }                 (!( > [([])])) {                     ([([])] > ) {                          = ( - (([([])] - )));                         ( < (([([])] - ))) {                             = 0;                        }                         = ;                    }                }  {                     = (( - [([])]) + );                }                [([])] = ;                  = 0;                 ( == 0x0) {                     ([([])]) {                        [([]) & (0xffffffffffffffffffffffffffffffffffffffff)] = ;                         (!(( - 0x01) < )) (50);                         (!([([])] < )) (50);                         = (( & (0xffffffffffffffffffffffffffffffffffffffff))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                        [()] = [([])];                         (!( != 0x0)) (49);                         = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000) & ;                         =  + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;                        [([])] = 0;                    }                }  {                     (![([])]) {                        [([]) & (0xffffffffffffffffffffffffffffffffffffffff)] = ;                        [([])] = ;                         =  + 0x01;                        [] = (([]) & (0xffffffffffffffffffffffffffffffffffffffff)) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & []);                    }                     = 0x01;                }                  = ;                 ( != 0x0) {                     = 0x01 + ;                }                 =  < ;                 = 0x01 + ;                 = ;            }        }  {             = 0;             = ;        }         = 0x01;    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != 0x2, "ReentrancyGuard: reentrant call");         = 0x02;          = . == ;         (. != ) {             = [.];        }        (, "Ownable: caller is not the owner or whiteList");        (!, "check running");        ( != 0x0, "Token not set");        ( != 0x0, "Pair not set");        (. > , "time fail");        ( != 0x0, "lp list empty");        ( > 0, "total lp amount is 0");        ( != 0x0, "batch size zero");        ( < , "index out of bounds");          = ( + ) - 0x01;         ((( + ) - 0x01) >= ) {             =  - 0x01;        }          = ;          = ;         (!) {              = ();            ( > 0x0, "reward token is 0");             = ;             = () ? 1 : 0;             = ;             = () ? 1 : 0;             = ;        }          = ;         () {             ( > ) {                ;            }             (!( < )) (50);             (((0xffffffffffffffffffffffffffffffffffffffff & []) != 0x0) && (([0xffffffffffffffffffffffffffffffffffffffff & []] > 0x0) && (( > 0x0) && (([([])] * ) /  != 0)))) {                ( ,   ) = .(.((0xa9059cbb), ([]), ([([])] * ) / )); // call transfer                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (!((( + .) - ) < 0x20));                (. == (. != 0x0));                (. != 0x0, "transfer failed");                [([])] = (([([])] * ) / ) + [([])];            }             = 0x01 + ;        }         ( < ( - 0x01)) {             =  + 0x01;        }  {             = 0;             = 0;             = 0;             = ;             =  + .;        }         = 0x01;    }         ()   () {        // Decompilation incomplete: helper effect provenance is conservative.          = ().(());          = !();         ( != 0x0) {             = !;        }         ;         (!( ||  == 0x0)) {              = ();             ;             (0 != ((( * ) / 0x64))) {                 =  + 0x60;                 (!(0 < .)) (50);                 (!(0x01 < .)) (50);                  = 0;                  = ;                  = (0x04 + ) + 0x60;                  =  + 0x20;                  = 0;                  = (0x04 + );                  = ;                  = ();                 () {                     ( >= ) {                        ;                    }                     = (0x01 + );                     = ;                     = ( + 0x20);                     = (0x20 + );                     = ;                     = ;                     = ;                     = ;                }                ( ,   ) = .((), 0x40); // staticcall                ();                 =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f));                (( + .) -  >= 0x20);                (!( > 0xffffffffffffffff));                (( + .) > (( + ) + 0x1f));                 ( > 0xffffffffffffffff) (65);                 ((( + ((( << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((( << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);                 =  + ((( << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (!((0x20 + (( + ) + ( << 0x05))) > ( + .)));                  =  + 0x20;                  = ;                  =  << 0x05;                  = 0x20 + (( + ) + ( << 0x05));                  = ( + ) + 0x20;                  = 0;                  = ;                  = ( + .);                 () {                     ( >= ) {                        ;                    }                     = (0x20 + );                     = ;                     = ;                     = ;                     = (0x20 + );                     = ;                     = ;                     = ;                     (!(0x01 < )) (50);                     ;                     ( > ((( * ) / 0x64))) {                         =  + 0x60;                         (!(0 < .)) (50);                         (!(0x01 < .)) (50);                          = 0;                          = ;                          = (0x04 + ) + 0x60;                          =  + 0x20;                          = 0;                          = (0x04 + );                          = ;                          = ((( * ) / 0x64));                         () {                             ( >= ) {                                ;                            }                             = (0x01 + );                             = ;                             = ( + 0x20);                             = (0x20 + );                             = ;                             = ;                             = ;                             = ;                        }                        ( ,   ) = .((), 0x40); // staticcall                        ();                         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f));                        (( + .) -  >= 0x20);                        (!( > 0xffffffffffffffff));                        (( + .) > (( + ) + 0x1f));                         ( > 0xffffffffffffffff) (65);                         ((( + ((( << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((( << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);                         =  + ((( << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                        (!((0x20 + (( + ) + ( << 0x05))) > ( + .)));                          =  + 0x20;                          = ;                          =  << 0x05;                          = 0x20 + (( + ) + ( << 0x05));                          = ( + ) + 0x20;                          = 0;                          = ;                          = ( + .);                         () {                             ( >= ) {                                ;                            }                             = (0x20 + );                             = ;                             = ;                             = ;                             = (0x20 + );                             = ;                             = ;                             = ;                             (!(0x01 < )) (50);                              = ;                             (!( > )) {                                 = ();                            }                             ;                        }                    }  {                         ;                    }                }            }  {                 0;            }        }  {             0;        }    }         ( )   () {        // Decompilation incomplete: helper effect provenance is conservative.         ;         (0x0 != ) {              = ().();             ;             (0 -  != 0) {                ().();                ( ,   ) = .(); // staticcall                ();                 ;                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                  = (.);                 ((.) != 0x55d398326f99059ff775485246999027b3197955) {                     = ();                }                 (( * ) * 0x02) / ;            }  {                 0;            }        }  {             0;        }    }         ( )  {         {              := (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.        // 0x01e33667 => withdrawToken(address,address,uint256)    // 0x0784f212 => getLpInfo(address)    // 0x12065fe0 => getBalance()    // 0x1694505e => uniswapV2Router()    // 0x42bf7fdc => setTimeConfig(uint256)    // 0x4f5756e0 => getTeamConfig()    // 0x5d2e9b78 => resetDynamic(address[],uint256)    // 0x61d5f080 => getLpLength()    // 0x62150efd => Unknown_62150efd(uint256,uint256,uint256)    // 0x715018a6 => renounceOwnership()    // 0x7b510fe8 => getAccountInfo(address)    // 0x7e1a3786 => getRewardRate()    // 0x856a004a => getBaseContracts()    // 0x8d14e127 => setWhiteList(address,bool)    // 0x8d47a773 => Unknown_8d47a773()    // 0x8da5cb5b => owner()    // 0x9e447fc6 => setRewardRate(uint256)    // 0xa0617eb8 => getDynamicAmt(address)    // 0xa479d423 => Unknown_a479d423(address[],bytes,uint256)    // 0xa97af1f2 => withdrawBNB(address,uint256)    // 0xb09ddc05 => resetTimeTag()    // 0xc54e44eb => USDT()    // 0xcd274f65 => setBaseContracts(address,address)    // 0xd4c8c84d => Unknown_d4c8c84d()    // 0xdcce363a => getLpConfig()    // 0xf2fde38b => transferOwnership(address)    // 0xfa6f061e => Unknown_fa6f061e()}