BNB Chain

0x8f0606af40f68bb3afa390e5743b6e096f46023a

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

Decompilation outputBNB Chain · 0x8f0606af…6f46023a13.0 KB16.6 s
Share
531 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;  {        = ;        ( => ) ; // STORAGE[0x0]    ( => ( => ))  ; // STORAGE[0x1]      ; // STORAGE[0x2]     ; // STORAGE[0x3]     ; // STORAGE[0x4]     ; // STORAGE[0x5]      ; // STORAGE[0x6]      ; // STORAGE[0x7]      ; // STORAGE[0x8] bytes 0 to 19      ; // STORAGE[0x9] bytes 0 to 19     ; // STORAGE[0xc]     ; // STORAGE[0xd]     ; // STORAGE[0xf]    ( => )  ; // STORAGE[0x10]    ( => )  ; // STORAGE[0x11]    ( => )  ; // STORAGE[0x12]    ( => )  ; // STORAGE[0x13]     ; // STORAGE[0x14]     ; // STORAGE[0x15]      ; // STORAGE[0x16] bytes 0 to 19     ; // STORAGE[0x17]     ; // STORAGE[0x19] bytes 0 to 0     ; // STORAGE[0x1d] bytes 0 to 0     ; // STORAGE[0x1e]    ( => )  ; // STORAGE[0x1f]    ( => )  ; // STORAGE[0x20]    ( => )  ; // STORAGE[0x21]     ; // STORAGE[0x22] bytes 0 to 19     ; // STORAGE[0x25]    ( => )  ; // STORAGE[0x29]         ( ,  , );     ( ,  , );    ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x1032d536)) {            // Route to Unknown_1032d536(address) after replacing only msg.sig.            ((0xce5049b9));            ;        }         ((.. >= 4) && (. == 0x221cf01c)) {            // Route to Unknown_221cf01c(address,uint256) after replacing only msg.sig.            ((0x9ee2615b));            ;        }         ((.. >= 4) && (. == 0x43f7c0ee)) {            // Route to Unknown_43f7c0ee(uint256) after replacing only msg.sig.            ((0xda27fb54));            ;        }         ((.. >= 4) && (. == 0x658c9125)) {            // Route to Unknown_658c9125() after replacing only msg.sig.            ((0xcae8ff6b));            ;        }         ((.. >= 4) && (. == 0x847ed4b3)) {            // Route to Unknown_847ed4b3() after replacing only msg.sig.            ((0xaa0cbb65));            ;        }         ((.. >= 4) && (. == 0xd62a5d3e)) {            // Route to Unknown_d62a5d3e() after replacing only msg.sig.            ((0x73d3e543));            ;        }        ();    }             ()    ( ) {         ;    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = ;         (., , [.][]);         ;    }         ( )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ();    }         ( ,  )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (, );    }         ( ,  ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60));        (, , );         ;    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = [.][] + ;         (., , ([(.)][] + ));         ;    }         ( )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        (. != (0), "ERC20: burn from the zero address");        (!([.] < ), "ERC20: burn amount exceeds balance");        [.] = [.] - ;         =  - ;         (., (0), );    }         ( )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ();    }         ()    () {         (( / 0x01));    }         ()    () {         ();    }         ( )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ( != (0), "balance query for the zero address");          = [];         ([] == 0x0) {             = ;        }         ;    }         ( ,  )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));         (!([][(.)] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {            (!([][(.)] < ), "ERC20: insufficient allowance");            ( != (0), "ERC20: approve from the zero address");            (. != (0), "ERC20: approve to the zero address");            [][.] = [][(.)] - ;             (, ., [][.]);        }        ( != (0), "ERC20: burn from the zero address");        (!([] < ), "ERC20: burn amount exceeds balance");        [] = [] - ;         =  - ;         (, (0), ([][(.)] - ));    }         ()    () {         ();    }         ()    ( ) {         ;    }         ([]  ,  ,  )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60));        (!(. > 0xffffffffffffffff));        (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04)));        (!(. > 0xffffffffffffffff));        (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04))));        (([.] / 0x01) != 0x0, "this");          = 0;         () {             ( >= .) {                ;            }            (0x20 *  + ((0x04 + ) + 0x20) + 0x20 - (0x20 *  + ((0x04 + ) + 0x20)) >= 0x20);             (, [], );             =  + 0x01;        }    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (!([.][] < ), "ERC20: decreased allowance below zero");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = [.][] - ;         (., , ([(.)][] - ));         ;    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (, , .);         ;    }         ()    () {         ();    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.         ;         = (0x20 + ) + 0x14;          = 0;         () {              = ;             ( >= ) {                ;            }             ( + 0x20 >= ) {                ;            }             = ( + 0x20) + 0x20;             =  + 0x20;        }        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        ( == );         ( -  == 0) {             = ;        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         ;         = (0x20 + ) + 0x14;          = 0;         () {              = ;             ( >= ) {                ;            }             ( + 0x20 >= ) {                ;            }             = ( + 0x20) + 0x20;             =  + 0x20;        }        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        ( == );         ( -  == 0) {            ( != 0x0, "ERC20: transfer from the zero address");            ( != (0), "ERC20: transfer to the zero address");            (!([] < ), "ERC20: transfer amount exceeds balance");            [] = [] - ;            [] = [] + ;             (, , );        }    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!([][(.)] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {            (!([][(.)] < ), "ERC20: insufficient allowance");            ( != (0), "ERC20: approve from the zero address");            (. != (0), "ERC20: approve to the zero address");            [][.] = ([][(.)] - );             (, ., [][.]);        }        (, , );    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        ( > 0x0, "Transfer amount must be greater than zero");         (!(([] / 0x01) || ([] / 0x01))) {            (!(([] / 0x01)));             ( == (( / 0x01))) {                 ;                 = 0x24 + ;                  = 0;                 () {                      = ;                     ( >= ) {                        ;                    }                     ( + 0x20 >= ) {                        ;                    }                     = ( + 0x20) + 0x20;                     =  + 0x20;                }                ( ,   ) = ( / 0x01).(); // call                  = 0x60;                 (. != 0) {                     =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                     = ;                }                 = 0x24 + ;                 = 0;                 () {                      = ;                     ( >= ) {                        ;                    }                     ( + 0x20 >= ) {                        ;                    }                     = ( + 0x20) + 0x20;                     =  + 0x20;                }                ( ,   ) = ( / 0x01).(); // call                  = 0x60;                 (. != 0) {                     =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                     = ;                }                 = 0x24 + ;                 = 0;                 () {                      = ;                     ( >= ) {                        ;                    }                     ( + 0x20 >= ) {                        ;                    }                     = ( + 0x20) + 0x20;                     =  + 0x20;                }                ( ,   ) = ( / 0x01).(); // call                  = 0x60;                 (. != 0) {                     =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                     = ;                }                (((0x20 + ) + ) - (0x20 + ) >= 0x40);                ( == );                ( == );                (((0x20 + ) + ) - (0x20 + ) >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                (((0x20 + ) + ) - (0x20 + ) >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                 = ((0x24 + ) + 0x20);                 = 0;                 () {                      = ;                     ( >= ) {                        ;                    }                     ( + 0x20 >= ) {                        ;                    }                     = ( + 0x20) + 0x20;                     =  + 0x20;                }                ( ,   ) = (()).(); // call                  = 0x60;                 (. != 0) {                     =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                     = ;                }                (((0x20 + ) + ) - (0x20 + ) >= 0x20);                ( == );                 = ((0x24 + ) + 0x20);                 = 0;                 () {                      = ;                     ( >= ) {                        ;                    }                     ( + 0x20 >= ) {                        ;                    }                     = ( + 0x20) + 0x20;                     =  + 0x20;                }                ( ,   ) = (()).(); // call                  = 0x60;                 (. != 0) {                     =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                     = ;                }                (((0x20 + ) + ) - (0x20 + ) >= 0x20);                ( == );                 ;                 ;                 ;                 ((()) != (( / 0x01))) {                      = 0;                      = 0;                      = 0;                     ((()) == (( / 0x01))) {                          = 0;                          = ((()) == (())) ? 1 : 0;                          = 0;                         ( > (())) {                             = ( - (()));                             = 0;                             = ((( - (()))) > ) ? 1 : 0;                        }                         = ;                         = ;                         = ;                    }                     = ;                     = ;                     = ;                }  {                      = 0;                      = ((()) == (())) ? 1 : 0;                      = 0;                     ( > (())) {                         = ( - (()));                         = 0;                         = ((( - (()))) > ) ? 1 : 0;                    }                     = ;                     = ;                     = ;                }                ( == 0x0 &&  == 0x0);            }             (( != ()) && (( !=  / 0x1) && (( !=  / 0x1) && ([][((( / 0x01)))] < )))) {                ( != (0), "ERC20: approve from the zero address");                ((0xffffffffffffffffffffffffffffffffffffffff & (( / 0x01))) != 0x0, "ERC20: approve to the zero address");                [][((( / 0x01)))] = ;                 (, ((( / 0x01))), );            }            (, , );        }  {            (, , );        }    }         ( ,  ,  )  {        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        (!([] < ), "ERC20: transfer amount exceeds balance");        [] = [] - ;        [] = [] + ;         (, , );    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.         ;         = (0x20 + ) + 0x14;          = 0;         () {              = ;             ( >= ) {                ;            }             ( + 0x20 >= ) {                ;            }             = ( + 0x20) + 0x20;             =  + 0x20;        }        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        ( == );         ( -  == 0) {            (( / 0x01) != 0x0, "ERC20: transfer from the zero address");            ( != 0x0, "ERC20: transfer to the zero address");            (!([( / 0x01)] < ), "ERC20: transfer amount exceeds balance");            [( / 0x01)] = [( / 0x01)] - ;            [] = [] + ;             (( / 0x01), , );        }    }         ( )  {         {              := (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.        // 0x049ec164 => unresolved_049ec164(address)    // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x1032d536 => Unknown_1032d536(address)    // 0x1468fbf2 => unresolved_1468fbf2(address)    // 0x18160ddd => totalSupply()    // 0x221cf01c => Unknown_221cf01c(address,uint256)    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x25c6c8a0 => unresolved_25c6c8a0(address)    // 0x307bf9d5 => banList(address)    // 0x313ce567 => decimals()    // 0x39509351 => increaseAllowance(address,uint256)    // 0x42966c68 => burn(uint256)    // 0x43f7c0ee => Unknown_43f7c0ee(uint256)    // 0x49bd5a5e => uniswapV2Pair()    // 0x5c105068 => unresolved_5c105068(address)    // 0x658c9125 => Unknown_658c9125()    // 0x66666aa9 => rewardPool()    // 0x70a08231 => balanceOf(address)    // 0x714f2831 => unresolved_714f2831(address)    // 0x78e97925 => startTime()    // 0x79cc6790 => burnFrom(address,uint256)    // 0x847ed4b3 => Unknown_847ed4b3()    // 0x8c981e81 => bindValid()    // 0x95d89b41 => symbol()    // 0x983bc41b => airdrop(address[],address,uint256)    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa8aa1b31 => pair()    // 0xa9059cbb => transfer(address,uint256)    // 0xbf78a499 => unresolved_bf78a499(address)    // 0xc45a0155 => factory()    // 0xc8c9966f => unresolved_c8c9966f(address)    // 0xd62a5d3e => Unknown_d62a5d3e()    // 0xdd62ed3e => allowance(address,address)}
0x8f0606…46023a on BNB Chain — Decompiled Solidity