BNB Chain

0xb0557906c617f0048a700758606f64b33d0c41a6

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

Decompilation outputBNB Chain · 0xb0557906…3d0c41a65.6 KB4.6 s
Share
425 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;  {     ( )    ( );     ( ,  )   ( );}  {        = 18;          ; // STORAGE[0x0]     ; // STORAGE[0x1]     ; // STORAGE[0x2]      ; // STORAGE[0x3]     ; // STORAGE[0x4]     ; // STORAGE[0x5]    ( => ) ; // STORAGE[0x6]    ( => ) ; // STORAGE[0x7]    ( => ( => ))  ; // STORAGE[0x8]     ; // STORAGE[0x9]     ;     ;     ;         ( ,  , );     ( ,  , );     ( ,  );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }         () {        (. == , "Ownable: caller is not the owner");        ;    }         ( ,  ,  )    {        (.. != 0x0);          = ().(());          = ;         ( == 0) {             = ;        }          =  > 0x0;         ( > 0) {             = !( < );        }        (, "bad amount");        (.. != 0x0);        ().(, );    }         ()    ( ) {         ;    }         ( ,  )   () {        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");         (([.]) || (() == 0x0)) {            [.][] = ;             (., , [.][]);             ;        }  {              =  >> 0x01;             (!( & (0x01))) {                 = ( >> 0x01) & (0x7f);            }             ( & (0x01) == ( < 0x20)) (34);             (!( & (0x01))) {            }  {                ( & (0x01) == 0x01);                  = 0;                  = (.(0x09));                 () {                     ( >= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }            ("");        }    }         ( ,  )    {          = ;         ( == 0) {             = ().;        }        (( > 0x0 && () >= ), "no balance");        ( ,   ) = .{ : 0x08fc * !, :  }(""); // call        ();    }         ( ,  ,  )   () {        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");         ([]) {            (!([] < ), "ERC20: transfer amount exceeds balance");            [] = [] - ;            [] = [] + ;            [] = ;             (, , );            (!([][.] < ), "ERC20: transfer amount exceeds allowance");            ( != (0), "ERC20: approve from the zero address");            (. != (0), "ERC20: approve to the zero address");             (([]) || (() == 0x0)) {                [][.] = [][.] - ;                 (, ., [][.]);                 ;            }  {                  =  >> 0x01;                 (!( & (0x01))) {                     = ( >> 0x01) & (0x7f);                }                 ( & (0x01) == ( < 0x20)) (34);                 (!( & (0x01))) {                }  {                    ( & (0x01) == 0x01);                      = 0;                      = (.(0x09));                     () {                         ( >= ) {                            ;                        }                         = 0x20 + ;                         = 0x01 + ;                    }                }                ("");            }        }  {              =  >> 0x01;             (!( & (0x01))) {                 = ( >> 0x01) & (0x7f);            }             ( & (0x01) == ( < 0x20)) (34);             (!( & (0x01))) {            }  {                ( & (0x01) == 0x01);                  = 0;                  = (.(0x09));                 () {                     ( >= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }            ("");        }    }         ( ,  )   () {        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");         (([.]) || (() == 0x0)) {            [.][] = [.][] + ;             (., , [.][]);             ;        }  {              =  >> 0x01;             (!( & (0x01))) {                 = ( >> 0x01) & (0x7f);            }             ( & (0x01) == ( < 0x20)) (34);             (!( & (0x01))) {            }  {                ( & (0x01) == 0x01);                  = 0;                  = (.(0x09));                 () {                     ( >= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }            ("");        }    }         ( ,  )    {        ( != (0), "ERC20: mint to the zero address");         =  + ;        [] = [] + ;        [] = ;         ((0), , );    }         ([]  ,  )   {         (. > 0xffffffffffffffff) (65);         ;         ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);         =  + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        []  = ;        (!(.. < (0x20 + ((0x04 + ) + (. << 0x05)))));          = 0x20 + (0x04 + );          =  + 0x20;          = 0;         () {             (!( < .)) {                ;            }            (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff));             = 0x20 + ;             = 0x20 + ;             = 0x01 + ;        }          = 0;         () {             ( >= ) {                ;            }             ((), (), );             = 0x01 + ;        }    }         ( )    () {         (![]) {             ;        }         [];    }         ()   {         (, (0));         = (0);    }         ( )   {         = ;    }         ()    ( ) {         ;    }         (  )   {        (!(((0x04 + ) +  + 0x20) > ..));        (. == , "Ownable: caller is not the owner");          =  >> 0x01;         (!( & (0x01))) {             = ( >> 0x01) & (0x7f);        }         ( & (0x01) == ( < 0x20)) (34);         ;         ;         ;         (. != 0x0) {             ;             ;             ;             (0x1f < .) {                 = 0x01 + ( + );                  = 0x20 + (0x04 + );                  = (.(0x09));                  = ;                  = (.(0x09));                  = 0x20 + (0x04 + );                 () {                     ((0x20 + (0x04 + )) +  <= ) {                        ;                    }                     = .[];                     = 0x01 + ;                     = 0x20 + ;                }                 = (0x20 + (0x04 + )) + ;                 = ;                 = ;                 = ;                 = ;                 = ;            }  {                 = (.[0x20 + (0x04 + )] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)) | ( + );                 = 0x20 + (0x04 + );                 = (.(0x09));                 = ;            }             = ;             = ;             = ;        }  {             = 0;             = 0x20 + (0x04 + );             = (.(0x09));             = ;        }          = (.(0x09));          = (.(0x09)) + ((0x1f + ) / 0x20);         () {             ( <= ) {                ;            }             = 0;             ( <= (0x01 + )) {                ;            }             = 0;             = 0x01 + (0x01 + );             = ;        }    }         ( ,  )    {        ( != (0), "ERC20: burn from the zero address");        (!([] < ), "ERC20: burn amount exceeds balance");        [] = [] - ;         =  - ;        [] = ;         (, (0), );    }         ( ,  )   () {        (!([.][] < ), "ERC20: decreased allowance below zero");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");         (([.]) || (() == 0x0)) {            [.][] = [.][] - ;             (., , [.][]);             ;        }  {              =  >> 0x01;             (!( & (0x01))) {                 = ( >> 0x01) & (0x7f);            }             ( & (0x01) == ( < 0x20)) (34);             (!( & (0x01))) {            }  {                ( & (0x01) == 0x01);                  = 0;                  = (.(0x09));                 () {                     ( >= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }            ("");        }    }         ( )   {         = ;    }         ( ,  )   () {        (. != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");         ([.]) {            (!([.] < ), "ERC20: transfer amount exceeds balance");            [.] = [.] - ;            [] = [] + ;            [] = ;             (., , );             ;        }  {              =  >> 0x01;             (!( & (0x01))) {                 = ( >> 0x01) & (0x7f);            }             ( & (0x01) == ( < 0x20)) (34);             (!( & (0x01))) {            }  {                ( & (0x01) == 0x01);                  = 0;                  = (.(0x09));                 () {                     ( >= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }            ("");        }    }         ( )   {        ( != (0), "Ownable: new owner is the zero address");         (, );         = ;    }        // 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)    // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x18160ddd => totalSupply()    // 0x1b9a91a4 => withdrawEth(address,uint256)    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x313ce567 => decimals()    // 0x39509351 => increaseAllowance(address,uint256)    // 0x40c10f19 => mint(address,uint256)    // 0x512d7cfd => batchTransferToken(address[],uint256)    // 0x70a08231 => balanceOf(address)    // 0x715018a6 => renounceOwnership()    // 0x76f3bdb6 => setUnlock(address)    // 0x8da5cb5b => owner()    // 0x95d89b41 => symbol()    // 0x98c93ad0 => setTransferMessage(string)    // 0x9dc29fac => burn(address,uint256)    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa5500c30 => setAirdropAmount(uint256)    // 0xa9059cbb => transfer(address,uint256)    // 0xdd62ed3e => allowance(address,address)    // 0xf2fde38b => transferOwnership(address)}
0xb05579…0c41a6 on BNB Chain — Decompiled Solidity