BNB Chain

0x8321fdc811c5605ff411ee8ab008433fe0545d99

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

Decompilation outputBNB Chain · 0x8321fdc8…e0545d999.1 KB47.0 s
Share
657 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 24 entry points (170000 ms contract budget): 23b872dd// SPDX-License-Identifier: MIT  >=0.8.0;  {     ()    ( );     ( )    ( );     ( ,  )   ( );}  {     ()    ( ,  ,  );}  {        = 18;          ; // STORAGE[0x0]    ( => )  ; // STORAGE[0x1]    ( => ( => ))  ; // STORAGE[0x2]      ; // STORAGE[0x3]     ; // STORAGE[0x4]     ; // STORAGE[0x5]     ; // STORAGE[0x6]     ; // STORAGE[0x7]     ; // STORAGE[0x9]      ; // STORAGE[0xa]     ; // STORAGE[0xd]     ; // STORAGE[0x10]    ( => ) ; // STORAGE[0x11]    ( => )  ; // STORAGE[0x12]    ( => ) ; // STORAGE[0x13]      ; // STORAGE[0x14]      ; // STORAGE[0x15]      ; // STORAGE[0x17]         ( ,  , );     ( ,  , );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }         () {        (. == , "Ownable: caller is not the owner");        ;    }    ()   {    }             ()    ( ) {         ;    }         ( ,  )   () {        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = ;         (., , [.][]);         ;    }         ( ,  ,  )  {        (!( > [][.]), "ERC20: transfer amount exceeds allowance");        (!( > [][.]), "SafeMath: subtraction overflow");        [][.] = [][.] - ;        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        ( != , "ERC20: transfer to the same address");        (. != (0), "ERC20: transfer to the same address");          = ([]) ? 1 : 0;         (![]) {             = ([]) ? 1 : 0;        }          = ;         ( == 0) {             = ([]) ? 1 : 0;        }    }         ( ,  )    () {        (!(. < 0x2386f26fc10000), "value");        ( ,   ) = .{ : 0x08fc * !()., : (). }(""); // call        ();          = ().(, );         ;    }         ( ,  )   () {        (!(( + [.][]) < [.][]), "SafeMath: addition overflow");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] =  + [.][];         (., , [.][]);         ;    }         ( )   {         = ;    }         ( ,  )   {        [] = ;    }         ()   {         = (0);    }         ()    ( ) {         ;    }         ( ,  )   () {        (!( > [.][]), "ERC20: decreased allowance below zero");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = [.][] - ;         (., , [.][]);         ;    }         ([]  ,  )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);         =  + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        []  = ;        (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..));          =  + 0x20;          = (0x04 + ) + 0x20;         () {             (!( < (0x20 + ((0x04 + ) + (. << 0x05))))) {                ;            }            (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff));             = 0x20 + ;             = 0x20 + ;        }        (. == , "Ownable: caller is not the owner");          = 0;         () {             ( >= ) {                ;            }            [()] = ;             = 0x01 + ;        }    }         ( ,  )   () {        (, , .);         ;    }         ( )   {        ( != (0), "Ownable: new owner is the zero address");         = ;    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        (!([] < ), "amount error");         (!([] || [])) {             ( != ) {                 ;                 (![]) {                     (![]) {                        ( != (0), "ERC20: transfer from the zero address");                        ( != (0), "ERC20: transfer to the zero address");                         = 0x60 + ;                        ( <= [], "ERC20: transfer amount exceeds balance");                        [] = ([] - );                        ( + [] >= [], "SafeMath: addition overflow");                        [] = ( + []);                         (, , );                        ;                    }  {                          = ;                         ([] == ) {                            (0x0186a0 != 0x0, "SafeMath: division by zero");                              = (0x01869f * ( / 0x0186a0));                             (0x0 !=  / 0x186a0) {                                (((0x01869f * ( / 0x0186a0)) / ( / 0x0186a0)) == 0x01869f, "SafeMath: multiplication overflow");                            }  {                                 = 0;                            }                             = ;                        }                         (![]) {                            ( < ., "startTime");                            (0x03e8 != 0x0, "SafeMath: division by zero");                              = (0x24 * ( / 0x03e8));                             (0x0 != ( / 0x03e8)) {                                (0x24 * ( / 0x03e8) / ( / 0x03e8) == 0x24, "SafeMath: multiplication overflow");                            }  {                                 = 0;                            }                            ( != (0), "ERC20: transfer from the zero address");                            (() != (0), "ERC20: transfer to the zero address");                             = 0x60 + ;                            ( <= [], "ERC20: transfer amount exceeds balance");                            [] = ([] - );                            ( + [()] >= [()], "SafeMath: addition overflow");                            [()] = ( + [()]);                             (, (), );                            (0x03e8 != 0x0, "SafeMath: division by zero");                             ;                             (0x0 ==  / 0x3e8) {                                  = 0x01;                                  = 0;                                  = (0x03c4 * ( / 0x03e8));                                 () {                                     ( < 0x04) {                                         = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                                        ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero");                                    }                                }                            }                        }                    }                }  {                    (![], "to error");                    ( ,   ) = ( / 0x01).(); // staticcall                    ();                     =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    (( + .) -  >= 0x20);                    ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                    ( ,  ,  ) = ().();                      = ().();                      = 0;                      = 0;                     ( > (())) {                          = ((())) * (( - (())));                          = ((())) * (( - (())));                         (0x0 != (( - (())))) {                            (((())) * (( - (()))) / (( - (()))) == ((())), "SafeMath: multiplication overflow");                        }  {                             = 0x40 + ;                             = 0;                             = 0;                        }                        ((()) != 0x0, "SafeMath: division by zero");                         = ( / (()));                         = ( - (()));                    }                      = ;                     (![]) {                        (!( > .), "startTime");                        (0x03e8 != 0x0, "SafeMath: division by zero");                          = (0x24 * ( / 0x03e8));                         (0x0 != ( / 0x03e8)) {                            (0x24 * ( / 0x03e8) / ( / 0x03e8) == 0x24, "SafeMath: multiplication overflow");                        }  {                             = 0;                        }                        ( != (0), "ERC20: transfer from the zero address");                        (() != (0), "ERC20: transfer to the zero address");                         = 0x60 + ;                        ( <= [], "ERC20: transfer amount exceeds balance");                        [] = ([] - );                        ( + [()] >= [()], "SafeMath: addition overflow");                        [()] = ( + [()]);                         (, (), );                        (0x03e8 != 0x0, "SafeMath: division by zero");                          = (0x03c4 * ( / 0x03e8));                         (0x0 !=  / 0x3e8) {                            (((0x03c4 * ( / 0x03e8)) / ( / 0x03e8)) == 0x03c4, "SafeMath: multiplication overflow");                              = 0x01;                              = 0;                              = (0x03c4 * ( / 0x03e8));                             () {                                 ( >= 0x4) {                                    ;                                }                                 = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                                ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero");                                (() != (0), "ERC20: transfer from the zero address");                                (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address");                                 = 0x60 + ;                                (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance");                                [()] = [()] - ( / (( * 0x0f4240)));                                (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow");                                [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))];                                 ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))),  / (( * 0x0f4240)));                                 = (0x01 + );                                 = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ));                                 = ;                            }                        }  {                              = 0x01;                              = 0;                              = (0x03c4 * ( / 0x03e8));                             () {                                 ( >= 0x4) {                                    ;                                }                                 = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                                ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero");                                (() != (0), "ERC20: transfer from the zero address");                                (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address");                                 = 0x60 + ;                                (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance");                                [()] = [()] - ( / (( * 0x0f4240)));                                (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow");                                [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))];                                 ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))),  / (( * 0x0f4240)));                                 = (0x01 + );                                 = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ));                                 = ;                            }                             = 0;                        }                         = ;                    }                    ( < , "ExceedBuyLimit");                    ( != (0), "ERC20: transfer from the zero address");                    ( != (0), "ERC20: transfer to the zero address");                     = 0x60 + ;                    ( <= [], "ERC20: transfer amount exceeds balance");                    [] = ([] - );                    ( + [] >= [], "SafeMath: addition overflow");                    [] = ( + []);                     (, , );                    ;                }            }  {                ( ,   ) = ( / 0x01).(); // staticcall                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                ( ,  ,  ) = ().();                  = ().();                  = 0;                  = 0;                  = 0;                 (!(() == (()))) {                      = 0;                      = ((()) == ) ? 1 : 0;                      = 0;                     (() > ) {                         = (() - );                         = 0;                         = (!((() - ) < 0x5af3107a4000)) ? 1 : 0;                    }                     = ;                     = ;                     = ;                }                 ( == 0x0) {                     (![]) {                          = ;                         ([]) {                             = ;                             ([] == ) {                                (0x0186a0 != 0x0, "SafeMath: division by zero");                                  = (0x01869f * ( / 0x0186a0));                                 (0x0 !=  / 0x186a0) {                                    (((0x01869f * ( / 0x0186a0)) / ( / 0x0186a0)) == 0x01869f, "SafeMath: multiplication overflow");                                }  {                                     = 0;                                }                                 = ;                            }                              = ;                             (![]) {                                ( < ., "startTime");                                (0x03e8 != 0x0, "SafeMath: division by zero");                                  = (0x24 * ( / 0x03e8));                                 (0x0 != ( / 0x03e8)) {                                    (0x24 * ( / 0x03e8) / ( / 0x03e8) == 0x24, "SafeMath: multiplication overflow");                                }  {                                     = 0;                                }                                ( != (0), "ERC20: transfer from the zero address");                                (() != (0), "ERC20: transfer to the zero address");                                 = 0x60 + ;                                ( <= [], "ERC20: transfer amount exceeds balance");                                [] = ([] - );                                ( + [()] >= [()], "SafeMath: addition overflow");                                [()] = ( + [()]);                                 (, (), );                                (0x03e8 != 0x0, "SafeMath: division by zero");                                  = (0x03c4 * ( / 0x03e8));                                 (0x0 !=  / 0x3e8) {                                    (((0x03c4 * ( / 0x03e8)) / ( / 0x03e8)) == 0x03c4, "SafeMath: multiplication overflow");                                      = 0x01;                                      = 0;                                      = (0x03c4 * ( / 0x03e8));                                     () {                                         ( >= 0x4) {                                            ;                                        }                                         = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                                        ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero");                                        (() != (0), "ERC20: transfer from the zero address");                                        (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address");                                         = 0x60 + ;                                        (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance");                                        [()] = [()] - ( / (( * 0x0f4240)));                                        (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow");                                        [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))];                                         ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))),  / (( * 0x0f4240)));                                         = (0x01 + );                                         = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ));                                         = ;                                    }                                }  {                                    (0);                                     = 0;                                }                                 = ;                            }                            ();                             = ;                        }                        ( != (0), "ERC20: transfer from the zero address");                        ( != (0), "ERC20: transfer to the zero address");                         = 0x60 + ;                        ( <= [], "ERC20: transfer amount exceeds balance");                        [] = ([] - );                        ( + [] >= [], "SafeMath: addition overflow");                        [] = ( + []);                         (, , );                        ;                    }  {                        (![], "to error");                        ( ,   ) = ( / 0x01).(); // staticcall                        ();                         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                        (( + .) -  >= 0x20);                        ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                        ( ,  ,  ) = ().();                        ().();                    }                }  {                     (![]) {                          = ().();                        ( ,  ,  ) = ().();                          = ( * );                         (0x0 != ) {                            ( *  /  == , "SafeMath: multiplication overflow");                        }  {                             = 0;                        }                          = ;                          = ;                          = (());                          = (());                          = 0x15b7;                          = 0x03e8;                          = 0x03f4;                          = 0;                          = (());                          = ();                          = ;                          = 0;                          = ;                          = 0;                          = ;                          = ;                          = ;                          = ;                          = 0;                          = ;                         () {                            ( != 0x0, "SafeMath: division by zero");                             = 0x40 + ;                             = ;                             = ;                             = ;                             = ;                             = 0x0f3c;                             = ;                             = ;                             = ;                             = ;                             = ;                             = 0;                             = ;                             = ;                             = ;                             = ;                             = ;                             = ;                             = ;                             = ;                             = .[0] >> 0xe0;                        }                    }  {                        ( != (0), "ERC20: transfer from the zero address");                        ( != (0), "ERC20: transfer to the zero address");                         = 0x60 + ;                        ( <= [], "ERC20: transfer amount exceeds balance");                        [] = ([] - );                        ( + [] >= [], "SafeMath: addition overflow");                        [] = ( + []);                         (, , );                        ;                    }                }            }        }  {            ( != (0), "ERC20: transfer from the zero address");            ( != (0), "ERC20: transfer to the zero address");            ( <= [], "SafeMath: subtraction overflow");            [] = ([] - );            ( + [] >= [], "SafeMath: addition overflow");            [] = ( + []);             (, , );            ;        }    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.          = 0x01;          = ;          = (0x03c4 * ( / 0x03e8));         () {             ( >= 0x4) {                ;            }             = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );            ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero");            (() != , "ERC20: transfer from the zero address");            (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address");            (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance");            [()] = [()] - ( / (( * 0x0f4240)));            (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow");            [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))];             ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))),  / (( * 0x0f4240)));             = (0x01 + );             = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ));             = ;        }    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.        (0x1770 != 0x0, "SafeMath: division by zero");         ([()] > (([] / 0x1770))) {             (!( < 0x04)) {                 = 0;                ([()]);            }  {                 = (0x01 + );                ([()]);            }            ();        }    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.        (() != (0), "ERC20: approve from the zero address");        (( & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: approve to the zero address");        [()][()] = ;         ((), (), [()][()]);         =  + 0x60;         (!(0 < .)) (50);         (!(0x01 < .)) (50);        (0x78 + . >= ., "SafeMath: addition overflow");          = 0;          = (0x04 + ) + 0xc0;          =  + 0x20;         () {              = ;              = ;              = ;             (!( < )) {                ;            }             (!((0x01 + ) < )) {                ;            }             = 0x01 + (0x01 + );             = ( + 0x20) + 0x20;             = 0x20 + (0x20 + );             = 0x01 + ;             =  + 0x20;             = 0x20 + ;        }        (.. != 0x0);        .(, 0, 0xa0, , (0x78 + .), ); // call    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.        (() != (0), "ERC20: approve from the zero address");        (( & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: approve to the zero address");        [()][()] = ;         ((), (), [()][()]);         =  + 0x80;         (!(0 < .)) (50);         (!(0x01 < .)) (50);         (!(0x02 < .)) (50);        (!((0x78 + .) < .), "SafeMath: addition overflow");          = 0;          = (0x04 + ) + 0xc0;          =  + 0x20;         () {              = ;              = ;              = ;             (!( < )) {                ;            }             (!((0x01 + ) < )) {                ;            }             = 0x01 + (0x01 + );             = ( + 0x20) + 0x20;             = 0x20 + (0x20 + );             = 0x01 + ;             =  + 0x20;             = 0x20 + ;        }        (.. != 0x0);        .(, 0, 0xa0, , (0x78 + .), ); // call    }        // 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)    // 0x30488a55 => swapTimes()    // 0x313ce567 => decimals()    // 0x33f3d628 => rescueToken(address,uint256)    // 0x39509351 => increaseAllowance(address,uint256)    // 0x3e0a322d => setStartTime(uint256)    // 0x49bd5a5e => uniswapV2Pair()    // 0x590ffdce => setExcludedFromFees(address,bool)    // 0x70a08231 => balanceOf(address)    // 0x715018a6 => renounceOwnership()    // 0x78e97925 => startTime()    // 0x8da5cb5b => owner()    // 0x95d89b41 => symbol()    // 0x9af5adcd => ktNum()    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa5115a3a => excludeFromFeesUsers(address[],bool)    // 0xa9059cbb => transfer(address,uint256)    // 0xaa10c9e5 => whiteUserList(address)    // 0xdd62ed3e => allowance(address,address)    // 0xf2fde38b => transferOwnership(address)}