BNB Chain

0xd967d2fd56be5ef02a4180b928635d10ab917777

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

Decompilation outputBNB Chain · 0xd967d2fd…ab9177776.3 KB3.6 s
Share
548 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] bytes 0 to 19     ; // STORAGE[0x1] bytes 20 to 20    ( => ) ; // STORAGE[0x2]    ( => ) ; // STORAGE[0x3]    ( => ) ; // STORAGE[0x4]    ( => ) ; // STORAGE[0x5]    ( => ) ; // STORAGE[0x6]     ; // STORAGE[0x7]      ; // STORAGE[0x8]     ; // STORAGE[0x9]    ( => )  ; // STORAGE[0xa]    ( => ( => ))  ; // STORAGE[0xb]      ; // STORAGE[0xc]     ; // STORAGE[0xd]     ; // STORAGE[0xe]         ( ,  , );     ( ,  , );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }         () {        (. == , "Ownable: caller is not the owner");        ;    }    ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x388cb330)) {            // Route to Unknown_388cb330(bool) after replacing only msg.sig.            ((0xb06d6dfc));            ;        }         ((.. >= 4) && (. == 0x3c0b51f6)) {            // Route to Unknown_3c0b51f6(bytes,bool) after replacing only msg.sig.            ((0xf37b81bf));            ;        }         ((.. >= 4) && (. == 0x47f130b1)) {            // Route to Unknown_47f130b1(bytes,bool) after replacing only msg.sig.            ((0x4ba8ea86));            ;        }         ((.. >= 4) && (. == 0x6a6b1468)) {            // Route to Unknown_6a6b1468(address) after replacing only msg.sig.            ((0xb2d1cd66));            ;        }         ((.. >= 4) && (. == 0xaaeccdcf)) {            // Route to Unknown_aaeccdcf(address,uint256) after replacing only msg.sig.            ((0x96464df4));            ;        }         ((.. >= 4) && (. == 0xbf29c958)) {            // Route to Unknown_bf29c958(uint256) after replacing only msg.sig.            ((0x2e62f85d));            ;        }         ((.. >= 4) && (. == 0xc1bfccbf)) {            // Route to Unknown_c1bfccbf(bytes,uint256) after replacing only msg.sig.            ((0xbd6d94b6));            ;        }         ((.. >= 4) && (. == 0xf1b3e2d9)) {            // Route to Unknown_f1b3e2d9(bytes,bool) after replacing only msg.sig.            ((0x6f185147));            ;        }        ();    }             ()    ( ) {         ;    }         ( ,  )    () {        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = ;         (., , [.][]);         ;    }         ( ,  ,  )    () {        (, ., );        (, , );         ;    }         ( )     () {        ( != );         = ;         ;    }         ( ,  )    () {        (. != (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));          = 0;          = 0x04 + ;          = ..;         () {             ( >= ) {                ;            }            (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff));             = 0x20 + ;             = ;             = 0x20 + ;             = ;             = ;             = ;             = ;            (. == , "Ownable: caller is not the owner");             (0x1 == ) {                 (!(0 < )) (50);                ([()] != );            }              = 0;             () {                 (!( < .)) {                    ;                }                 (!( < )) (50);                [()] = ;                 = 0x01 + ;            }             ;        }    }         (  ,  )    () {         (. > 0xffffffffffffffff) (65);         ;         ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);         =  + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..));          =  + 0x20;          = ;          = (0x04 + ) + 0x20;          = 0x20 + ((0x04 + ) + (. << 0x05));          = 0;          = 0x04 + ;          = ..;         () {             ( >= ) {                ;            }            (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff));             = 0x20 + ;             = ;             = 0x20 + ;             = ;             = ;             = ;             = ;            (. == , "Ownable: caller is not the owner");             (0x1 == ) {                 (!(0 < )) (50);                ([()] != );            }              = 0;             () {                 (!( < .)) {                    ;                }                 (!( < )) (50);                [()] = ;                 = 0x01 + ;            }             ;        }    }         ( )     () {        ( != );         = ;         ;    }         ()    ( ) {         ;    }         ( ,  )    () {        (!([.][] < ), "ERC20: decreased allowance below zero");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = [.][] - ;         (., , [.][]);         ;    }         ( ,  )    () {        (. != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        (!([.] < ), "ERC20: transfer amount exceeds balance");         (((![.]) && (![])) && ( > 0x5)) {            (![.], "b");            (![], "b");            (![.], "b");            (![.], "b");              = [.] < ( - 0x0b);             (!([.] < ( - 0x0b))) {                 = . < ( + [.]);            }            (, "g");             () {                ().(., ( + 0x02));            }              =  == ;             ( == ) {                 = [.];            }            (!);             (. == ) {                ( ,   ) = .(); // staticcall                ();                 ;                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                (() == (), "nnn");                ().();                ( ,   ) = .(); // staticcall                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                  = ().();                ( > (()), "Library: INSUFFICIENT_INPUT_AMOUNT");                ( - (()) <= , "ds-math-sub-underflow");                (( - (())) > 0, "PancakeLibrary: INSUFFICIENT_INPUT_AMOUNT");                  = 0;                 = 0x26f7 * ( - (()));                ((0x26f7 == 0x0 || 0x26f7 * ( - (())) / 0x26f7 == ( - (()))), "ds-math-mul-overflow");                  = 0;                 (() != 0x0) {                     = (()) * ;                }                (() == 0x0 || (()) *  / (()) == , "ds-math-mul-overflow");                  = 0;                 = 0x2710 * (());                ((0x2710 == 0x0 || 0x2710 * (()) / 0x2710 == (())), "ds-math-mul-overflow");                ( +  >= , "ds-math-add-overflow");                (!( > ( / ( + ))), "xxxxxxxx");            }        }          = () ? 1 : 0;         () {             = (!( == )) ? 1 : 0;        }          = ;         ( != 0x0) {             = (!([])) ? 1 : 0;        }          = ;         ( != 0x0) {             = (!([])) ? 1 : 0;        }         (!( == 0x0)) {            [] = (0x01 + (( + 0x01) + 0x6d)) - 0x7a;             ([.]) {                [] = (( + 0x02) + 0x6d) - 0x7a;            }             (0x0 == []) {                [] =  + (((. + 0x02) + 0x6d) - 0x7b);            }        }        [.] = [.] - ;        [] =  + [];         (., , );         ;    }         ( ,  )    {        [] = ( * []) / 0x3b9aca00;    }         ( )     () {        ( != );         = () ? 1 : 0;         ;    }         (  ,  )    () {         (. > 0xffffffffffffffff) (65);         ;         ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);         =  + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..));          =  + 0x20;          = ;          = (0x04 + ) + 0x20;          = 0x20 + ((0x04 + ) + (. << 0x05));          = 0;          = 0x04 + ;          = ..;         () {             ( >= ) {                ;            }            (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff));             = 0x20 + ;             = ;             = 0x20 + ;             = ;             = ;             = ;             = ;            (. == , "Ownable: caller is not the owner");             (0x1 == ) {                 (!(0 < )) (50);                ([()] != );            }              = 0;             () {                 (!( < .)) {                    ;                }                 (!( < )) (50);                [()] = ;                 = 0x01 + ;            }             ;        }    }         (  ,  )    () {         (. > 0xffffffffffffffff) (65);         ;         ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65);         =  + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..));          =  + 0x20;          = ;          = (0x04 + ) + 0x20;          = 0x20 + ((0x04 + ) + (. << 0x05));          = 0;          = 0x04 + ;          = ..;         () {             ( >= ) {                ;            }            (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff));             = 0x20 + ;             = ;             = 0x20 + ;             = ;             = ;             = ;             = ;            (. == , "Ownable: caller is not the owner");             (0x1 == ) {                 (!(0 < )) (50);                ([()] != );            }              = 0;             () {                 (!( < .)) {                    ;                }                 (!( < )) (50);                [()] = ;                 = 0x01 + ;            }             ;        }    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != (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.         (((![]) && (![])) && ( > 0x5)) {            (![], "b");            (![], "b");            (![.], "b");            (![.], "b");              = [] < (( - 0x0b));             (!([] < (( - 0x0b)))) {                 = . < (( + []));            }            (, "g");             () {                ().(, ( + 0x02));            }              =  == ;             ( == ) {                 = [];            }            (!);             ( == ) {                ( ,   ) = .(); // staticcall                ();                 ;                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                (() == (), "nnn");                ().();                ( ,   ) = .(); // staticcall                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));                  = ().();                ( > (()), "Library: INSUFFICIENT_INPUT_AMOUNT");                ( - (()) <= , "ds-math-sub-underflow");                (( - (())) > 0, "PancakeLibrary: INSUFFICIENT_INPUT_AMOUNT");                  = 0;                 = 0x26f7 * (( - (())));                ((0x26f7 == 0x0 || 0x26f7 * (( - (()))) / 0x26f7 == (( - (())))), "ds-math-mul-overflow");                  = 0;                 (((())) != 0x0) {                     = ((())) * ;                }                ((((())) == 0x0 || ((())) *  / ((())) == ), "ds-math-mul-overflow");                  = 0;                 = 0x2710 * (());                ((0x2710 == 0x0 || 0x2710 * (()) / 0x2710 == (())), "ds-math-mul-overflow");                ( +  >= , "ds-math-add-overflow");                (!( > (( / (( + ))))), "xxxxxxxx");            }        }          = () ? 1 : 0;         () {             = (!( == )) ? 1 : 0;        }          = ;         ( != 0x0) {             = (!([])) ? 1 : 0;        }          = ;         ( != 0x0) {             = (!([])) ? 1 : 0;        }         ( == 0x0) {            ;        }  {            [] = ((0x01 + ((( + 0x01) + 0x6d))) - 0x7a);             ([]) {                [] = ((( + 0x02) + 0x6d) - 0x7a);            }             (0x0 == []) {                [] = ( + ((((. + 0x02) + 0x6d) - 0x7b)));            }            ;        }    }         ( ,  ,  )  {         (!([][] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {            (!([][] < ), "ERC20: insufficient allowance");            ( != (0), "ERC20: approve from the zero address");            ( != (0), "ERC20: approve to the zero address");            [][] = [][] - ;             (, , [][]);        }    }         ( )  {         {              := (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.        // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x18160ddd => totalSupply()    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x313ce567 => decimals()    // 0x388cb330 => Unknown_388cb330(bool)    // 0x39509351 => increaseAllowance(address,uint256)    // 0x3c0b51f6 => Unknown_3c0b51f6(bytes,bool)    // 0x47f130b1 => Unknown_47f130b1(bytes,bool)    // 0x6a6b1468 => Unknown_6a6b1468(address)    // 0x70a08231 => balanceOf(address)    // 0x8da5cb5b => owner()    // 0x95d89b41 => symbol()    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa9059cbb => transfer(address,uint256)    // 0xaaeccdcf => Unknown_aaeccdcf(address,uint256)    // 0xb51449bb => _pair()    // 0xb6fccf8a => LP()    // 0xbf29c958 => Unknown_bf29c958(uint256)    // 0xc1bfccbf => Unknown_c1bfccbf(bytes,uint256)    // 0xdd62ed3e => allowance(address,address)    // 0xf1b3e2d9 => Unknown_f1b3e2d9(bytes,bool)}
0xd967d2…917777 on BNB Chain — Decompiled Solidity