BNB Chain

0x55d398326f99059ff775485246999027b3197955

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

Decompilation outputBNB Chain · 0x55d39832…b31979554.3 KB1.1 s
Share
326 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] // DESOLEX_RAW_STORAGE: packed overlap: getOwner address bytes 0..19 vs owner address bytes 0..19    ( => )  ; // STORAGE[0x1]    ( => ( => ))  ; // STORAGE[0x2]      ; // STORAGE[0x3]     ; // STORAGE[0x4] // DESOLEX_RAW_STORAGE: packed overlap: decimals bool bytes 0..0 vs _decimals bool bytes 0..0     ; // STORAGE[0x5]     ; // STORAGE[0x6]         ( ,  , );     ( ,  , );     ( ,  );         ()    ( ) {         ;    }         ( ,  )    () {        (. != (0), "BEP20: approve from the zero address");        ( != (0), "BEP20: approve to the zero address");        [.][] = ;         (., , [.][]);         ;    }         ( ,  ,  )    () {        ( != (0), "BEP20: transfer from the zero address");        ( != (0), "BEP20: transfer to the zero address");         ( <= [()]) {            [] = [()] - ;            (!(( + []) < []), "SafeMath: addition overflow");            [] =  + [];             (, , );             ( <= [][(.)]) {                ( != (0), "BEP20: approve from the zero address");                (. != (0), "BEP20: approve to the zero address");                [][.] = [][(.)] - ;                 (, ., [][.]);                 ;            }  {                  = 0;                 () {                     (!( < )) {                        ;                    }                     = 0x20 + ;                }                 (0x1f & ) {                }                ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }  {              = 0;             () {                 (!( < )) {                    ;                }                 = 0x20 + ;            }             (0x1f & ) {            }            ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");        }    }         ()    () {         ();    }         ()    () {         ();    }         ( ,  )    () {        (!(( + [.][]) < [.][]), "SafeMath: addition overflow");        (. != (0), "BEP20: approve from the zero address");        ( != (0), "BEP20: approve to the zero address");        [.][] =  + [.][];         (., , [.][]);         ;    }         ( )    () {        (, .);         ;    }         ()   {        (. == (()), "Ownable: caller is not the owner");         ((), (0));         = (0xffffffffffffffffffffffff0000000000000000000000000000000000000000) & ;    }         ()    () {         ();    }         ()    () {         ();    }         ()    ( ) {         ;    }         ( )    () {        (. == (()), "Ownable: caller is not the owner");        (. != (0), "BEP20: mint to the zero address");        (!(( + ) < ), "SafeMath: addition overflow");         =  + ;        (!(( + [.]) < [.]), "SafeMath: addition overflow");        [.] =  + [.];         ((0), ., );         ;    }         ( ,  )    () {         ;         = 0x60 + ;         ( > [.][]) {              = 0;             () {                 (!( < .)) {                    ;                }                 = 0x20 + ;            }             (0x1f & (.)) {            }            ("BEP20: decreased allowance below zero");        }        (. != (0), "BEP20: approve from the zero address");        ( != (0), "BEP20: approve to the zero address");        [.][] = [.][] - ;         (., , [.][]);         ;    }         ( ,  )    () {        (. != (0), "BEP20: transfer from the zero address");        ( != (0), "BEP20: transfer to the zero address");         ;         = 0x60 + ;         ( > [.]) {              = 0;             () {                 (!( < .)) {                    ;                }                 = 0x20 + ;            }             (0x1f & (.)) {            }            ("BEP20: transfer amount exceeds balance");        }        [.] = [.] - ;        (!(( + []) < []), "SafeMath: addition overflow");        [] =  + [];         (., , );         ;    }         ()    ( ) {         ;         = 0x20 + ( + (0x20 * ((( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02) + 0x1f) / 0x20)));          = ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01)))))) / 0x02;          = 0x05;          =  + 0x20;         ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02 != 0) {              = ( + 0x20) + ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02);             ;              = ;             ;              = (( + 0x20) + ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02)) + (0x1f & ( - (( + 0x20) + ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02))));             (0x1f < ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02)) {                 = 0x20 + ( + 0x20);                 = 0x01 + (.(0x05));                 () {                     (( + 0x20) + ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * !( & (0x01)))) / 0x02) <= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }            }  {                 = ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01)))))) / 0x02;                 = 0x05;                 = 0x20 + ( + 0x20);            }             = ;             = ;             = ;        }          = 0;         () {             (!( < .)) {                ;            }             = 0x20 + ;        }          = . + ( + 0x40);         (0x1f & (.)) {             = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));        }         .(0x20, .);    }         ()    ( ) {         ;         = 0x20 + ( + (0x20 * ((( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02) + 0x1f) / 0x20)));         ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02 == 0) {              = 0;             () {                 (!( < .)) {                    ;                }                 = 0x20 + ;            }              = . + ( + 0x40);             (0x1f & (.)) {                 = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));            }        }  {             (0x1f < ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * (!( & (0x01))))) / 0x02)) {                  = 0x20 + ( + 0x20);                  = 0x01 + (.(0x06));                 () {                     (( + 0x20) + ( & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0x0100 * !( & (0x01)))) / 0x02) <= ) {                        ;                    }                     = 0x20 + ;                     = 0x01 + ;                }                  = 0;                 () {                     (!( < .)) {                        ;                    }                     = 0x20 + ;                }                  = . + ( + 0x40);                 (0x1f & (.)) {                     = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));                }            }  {                  = 0;                 () {                     (!( < .)) {                        ;                    }                     = 0x20 + ;                }                  = . + ( + 0x40);                 (0x1f & (.)) {                     = 0x20 + ((. + ( + 0x40)) - (0x1f & (.)));                }            }        }         .(0x20, .);    }         ( )   {        (. == (()), "Ownable: caller is not the owner");        ( != (0), "Ownable: new owner is the zero address");         ((), );         =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );    }         ( ,  )  {        ( != (0), "BEP20: burn from the zero address");         ;         = 0x60 + ;         ( > []) {              = 0;             () {                 (!( < .)) {                    ;                }                 = 0x20 + ;            }            ("BEP20: burn amount exceeds balance");        }        [] = [] - ;         = 0x40 + ;         ( > ) {              = 0;             () {                 (!( < .)) {                    ;                }                 = 0x20 + ;            }            ("SafeMath: subtraction overflow");        }         =  - ;         (, (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.        // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x18160ddd => totalSupply()    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x313ce567 => decimals()    // 0x32424aa3 => _decimals()    // 0x39509351 => increaseAllowance(address,uint256)    // 0x42966c68 => burn(uint256)    // 0x70a08231 => balanceOf(address)    // 0x715018a6 => renounceOwnership()    // 0x893d20e8 => getOwner()    // 0x8da5cb5b => owner()    // 0x95d89b41 => symbol()    // 0xa0712d68 => mint(uint256)    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa9059cbb => transfer(address,uint256)    // 0xb09f1266 => _symbol()    // 0xd28d8852 => _name()    // 0xdd62ed3e => allowance(address,address)    // 0xf2fde38b => transferOwnership(address)}