BNB Chain

0x2b528a28451e9853f51616f3b0f6d82af8bea6ae

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

Decompilation outputBNB Chain · 0x2b528a28…f8bea6ae3.2 KB3.2 s
Share
481 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]        ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x041e6815)) {            // Route to Unknown_041e6815(address,address) after replacing only msg.sig.            ((0x67a93ced));            ;        }         ((.. >= 4) && (. == 0x52f18fc3)) {            // Route to Unknown_52f18fc3(uint256,uint256) after replacing only msg.sig.            ((0x4e31dd68));            ;        }         ((.. >= 4) && (. == 0xe8224088)) {            // Route to Unknown_e8224088(uint256) after replacing only msg.sig.            ((0xe2ba461e));            ;        }         ((.. >= 4) && (. == 0xf90369ae)) {            // Route to Unknown_f90369ae(uint256,uint256) after replacing only msg.sig.            ((0x18ac4dbe));            ;        }        ();    }             ( ,  )   {        (. == (), "This function is restricted to the contract's owner");        (().. != 0x0);        ( ,   ) = .(.((0x095ea7b3), , 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)); // call approve        ();        (!(. < 0x20));    }         ( ,  )   {        (. == (), "This function is restricted to the contract's owner");        (().. != 0x0);        ( ,   ) = .(.((0x70a08231), ())); // staticcall balanceOf        ();        (!(. < 0x20));          = .(, ());        (().. != 0x0);        ( ,   ) = .(.((0xa9059cbb), , )); // call transfer        ();        (!(. < 0x20));    }         ( ,  )   {        (, );    }         ()   {        ();    }         ( )   {        ();    }         ( ,  )   {        (, );    }         ( )   {        (. == (), "This function is restricted to the contract's owner");        (().. != 0x0);        ( ,   ) = ().(); // staticcall        ();        (!(. < 0x20));        (().. != 0x0);        ( ,   ) = ().(); // staticcall        ();        (!(. < 0x20));        (. == (), "This function is restricted to the contract's owner");         ;        (!(!((.)..)));        ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call        ();        (!(. < 0x20));        (. == (), "This function is restricted to the contract's owner");        (!(!((.)..)));        ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call        ();        (!(. < 0x20));        (().. != 0x0);        ( ,   ) = ().(); // call        ();        (().. != 0x0);        ( ,   ) = .(.((0x0902f1ac))); // staticcall getReserves        ();        (!(. < 0x60));         (!(0x1 + ((0xffffffffffffffffffffffffffff & ) - ((0xffffffffffffffffffffffffffff & ) * 0x3e8 + 0x271f) / 0x2710) <= 0x1 || 0x1 + ( & 0xffffffffffffffffffffffffffff) - (( & 0xffffffffffffffffffffffffffff) * 0x3e8 + 0x271f) / 0x2710 <= 0x1)) {            (!(!((.)..)));            ( ,   ) = (.).(, 0x01); // call            ();            (!(. < 0x20));            (!(!((.)..)));            ( ,   ) = (.).(, 0x01); // call            ();            (!(. < 0x20));              = 0;             () {                 =  + 0x20;                 (!( < .)) {                    ;                }                 = 0x20 + ;            }              = . + ( + 0xc4);             (0x1f & (.)) {                 = 0x20 + ((. + ( + 0xc4)) - (0x1f & (.)));            }            (().. != 0x0);            ().(0x01 + ((.) - ((((.) * 0x03e8) + 0x271f) / 0x2710)), (0x01 + (())) - (((() * 0x03e8) + 0x271f) / 0x2710), (), 0x80); // call        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        (. == (), "This function is restricted to the contract's owner");          = 0;         () {             ( >= ) {                ;            }              = 0;              = 0;              = ;              = ;             () {                 ( >= ) {                    ;                }                ((0xa943ea143cd7e79806d670f4a7cf08f8922a454f).. != 0x0);                ( ,   ) = (0xa943ea143cd7e79806d670f4a7cf08f8922a454f).(); // staticcall                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (.. != 0x0);                ( ,   ) = .(); // staticcall                ();                (!(. < 0x20));                 ;                (!(!((.)..)));                ( ,   ) = (.).(); // staticcall                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                ((.).. != 0x0);                ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                ((.).. != 0x0);                ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call                ();                (!(. < 0x20));                (.. != 0x0);                ( ,   ) = .(); // call                ();                (.. != 0x0);                ( ,   ) = .(.((0x0902f1ac))); // staticcall getReserves                ();                (!(. < 0x60));                 (!(0x1 + ((0xffffffffffffffffffffffffffff & ) - ((0xffffffffffffffffffffffffffff & ) * 0x3e8 + 0x271f) / 0x2710) <= 0x1 || 0x1 + ( & 0xffffffffffffffffffffffffffff) - (( & 0xffffffffffffffffffffffffffff) * 0x3e8 + 0x271f) / 0x2710 <= 0x1)) {                    (!(!((.)..)));                    ( ,   ) = (.).(, 0x01); // call                    ();                    (!(. < 0x20));                    (!(!((.)..)));                    ( ,   ) = (.).(, 0x01); // call                    ();                    (!(. < 0x20));                      = 0;                     () {                         =  + 0x20;                         (!( < .)) {                            ;                        }                         = 0x20 + ;                    }                      = . + ( + 0xc4);                     (0x1f & (.)) {                         = 0x20 + ((. + ( + 0xc4)) - (0x1f & (.)));                    }                    (!(!((.)..)));                    ( ,   ) = (.).(0x01 + ((.) - ((((.) * 0x03e8) + 0x271f) / 0x2710)), (0x01 + (())) - (((() * 0x03e8) + 0x271f) / 0x2710), (), 0x80); // call                     (!) {                         () {                            ;                        }                         = 0x01 + ;                         = ;                         = ;                         = ;                    }  {                        ;                         = 0x01 + ;                         = ;                         = ;                         = ;                    }                }  {                     = 0x01 + ;                     = ;                     = ;                     = ;                }                 = 0x01 + ;                 = ;                 = ;                 = ;            }             = 0x01 + ;        }    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.        (. == (), "This function is restricted to the contract's owner");        ((0xa943ea143cd7e79806d670f4a7cf08f8922a454f).. != 0x0);        ( ,   ) = (0xa943ea143cd7e79806d670f4a7cf08f8922a454f).(); // staticcall        ();        (!(. < 0x20));          = 0;         () {             ( >= 0x5) {                ;            }              = 0;             () {                 ;                 (!( < .)) {                    ;                }                 ((0xa943ea143cd7e79806d670f4a7cf08f8922a454f).. == 0) {                    ();                    ;                }                ( ,   ) = (0xa943ea143cd7e79806d670f4a7cf08f8922a454f).(); // staticcall                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (.. != 0x0);                ( ,   ) = .(); // staticcall                ();                (!(. < 0x20));                (!(!((.)..)));                ( ,   ) = (.).(); // staticcall                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (!(!((.)..)));                ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (!(!((.)..)));                ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call                ();                (!(. < 0x20));                (.. != 0x0);                ( ,   ) = .(); // call                ();                (.. != 0x0);                ( ,   ) = .(.((0x0902f1ac))); // staticcall getReserves                ();                (!(. < 0x60));                 (!(0x1 + ((0xffffffffffffffffffffffffffff & ) - ((0xffffffffffffffffffffffffffff & ) * 0x3e8 + 0x271f) / 0x2710) <= 0x1 || 0x1 + ( & 0xffffffffffffffffffffffffffff) - (( & 0xffffffffffffffffffffffffffff) * 0x3e8 + 0x271f) / 0x2710 <= 0x1)) {                    (!(!((.)..)));                    ( ,   ) = (.).(, 0x01); // call                    ();                    (!(. < 0x20));                    (!(!((.)..)));                    ( ,   ) = (.).(, 0x01); // call                    ();                    (!(. < 0x20));                      = 0;                     () {                         =  + 0x20;                         (!( < .)) {                            ;                        }                         = 0x20 + ;                    }                      = . + ( + 0xc4);                     (0x1f & (.)) {                         = 0x20 + ((. + ( + 0xc4)) - (0x1f & (.)));                    }                    (!(!((.)..)));                    (.).(0x01 + ((.) - ((((.) * 0x03e8) + 0x271f) / 0x2710)), (0x01 + (())) - (((() * 0x03e8) + 0x271f) / 0x2710), (), 0x80); // call                }                 = 0x01 + ;            }             = 0x01 + ;        }    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.        (. == (), "This function is restricted to the contract's owner");        ((0xa943ea143cd7e79806d670f4a7cf08f8922a454f).. != 0x0);        ( ,   ) = (0xa943ea143cd7e79806d670f4a7cf08f8922a454f).(); // staticcall        ();        (!(. < 0x20));          = 0;         () {             ( >= ) {                ;            }              = 0;             () {                 ;                 (!( < .)) {                    ;                }                 ((0xa943ea143cd7e79806d670f4a7cf08f8922a454f).. == 0) {                    ();                    ;                }                ( ,   ) = (0xa943ea143cd7e79806d670f4a7cf08f8922a454f).(); // staticcall                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (.. != 0x0);                ( ,   ) = .(); // staticcall                ();                (!(. < 0x20));                (!(!((.)..)));                ( ,   ) = (.).(); // staticcall                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (!(!((.)..)));                ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call                ();                (!(. < 0x20));                (. == (), "This function is restricted to the contract's owner");                (!(!((.)..)));                ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call                ();                (!(. < 0x20));                (.. != 0x0);                ( ,   ) = .(); // call                ();                (.. != 0x0);                ( ,   ) = .(.((0x0902f1ac))); // staticcall getReserves                ();                (!(. < 0x60));                 (!(0x1 + ((0xffffffffffffffffffffffffffff & ) - ((0xffffffffffffffffffffffffffff & ) * 0x3e8 + 0x271f) / 0x2710) <= 0x1 || 0x1 + ( & 0xffffffffffffffffffffffffffff) - (( & 0xffffffffffffffffffffffffffff) * 0x3e8 + 0x271f) / 0x2710 <= 0x1)) {                    (!(!((.)..)));                    ( ,   ) = (.).(, 0x01); // call                    ();                    (!(. < 0x20));                    (!(!((.)..)));                    ( ,   ) = (.).(, 0x01); // call                    ();                    (!(. < 0x20));                      = 0;                     () {                         =  + 0x20;                         (!( < .)) {                            ;                        }                         = 0x20 + ;                    }                      = . + ( + 0xc4);                     (0x1f & (.)) {                         = 0x20 + ((. + ( + 0xc4)) - (0x1f & (.)));                    }                    (!(!((.)..)));                    (.).(0x01 + ((.) - ((((.) * 0x03e8) + 0x271f) / 0x2710)), (0x01 + (())) - (((() * 0x03e8) + 0x271f) / 0x2710), (), 0x80); // call                }                 = 0x01 + ;            }             = 0x01 + ;        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        (. == (), "This function is restricted to the contract's owner");          = 0;         () {             ( >= ) {                ;            }             ((0xa943ea143cd7e79806d670f4a7cf08f8922a454f).. == 0) {                ();                ;            }            ( ,   ) = (0xa943ea143cd7e79806d670f4a7cf08f8922a454f).(); // staticcall            ();            (!(. < 0x20));            (. == (), "This function is restricted to the contract's owner");            (.. != 0x0);            ( ,   ) = .(); // staticcall            ();            (!(. < 0x20));             ;            (!(!((.)..)));            ( ,   ) = (.).(); // staticcall            ();            (!(. < 0x20));            (. == (), "This function is restricted to the contract's owner");            (!(!((.)..)));            ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call            ();            (!(. < 0x20));            (. == (), "This function is restricted to the contract's owner");            (!(!((.)..)));            ( ,   ) = (.).(, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call            ();            (!(. < 0x20));            (.. != 0x0);            ( ,   ) = .(); // call            ();            (.. != 0x0);            ( ,   ) = .(.((0x0902f1ac))); // staticcall getReserves            ();            (!(. < 0x60));             (!(0x1 + ((0xffffffffffffffffffffffffffff & ) - ((0xffffffffffffffffffffffffffff & ) * 0x3e8 + 0x271f) / 0x2710) <= 0x1 || 0x1 + ( & 0xffffffffffffffffffffffffffff) - (( & 0xffffffffffffffffffffffffffff) * 0x3e8 + 0x271f) / 0x2710 <= 0x1)) {                (!(!((.)..)));                ( ,   ) = (.).(, 0x01); // call                ();                (!(. < 0x20));                (!(!((.)..)));                ( ,   ) = (.).(, 0x01); // call                ();                (!(. < 0x20));                  = 0;                 () {                     =  + 0x20;                     (!( < .)) {                        ;                    }                     = 0x20 + ;                }                  = . + ( + 0xc4);                 (0x1f & (.)) {                     = 0x20 + ((. + ( + 0xc4)) - (0x1f & (.)));                }                (!(!((.)..)));                (.).(0x01 + ((.) - ((((.) * 0x03e8) + 0x271f) / 0x2710)), (0x01 + (())) - (((() * 0x03e8) + 0x271f) / 0x2710), (), 0x80); // call            }             = 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.        // 0x041e6815 => Unknown_041e6815(address,address)    // 0x3a600ce7 => sendToken(address,address)    // 0x52f18fc3 => Unknown_52f18fc3(uint256,uint256)    // 0xbdf72599 => doSwap()    // 0xe8224088 => Unknown_e8224088(uint256)    // 0xf90369ae => Unknown_f90369ae(uint256,uint256)    // 0xfdc21124 => drainLP(address)}
0x2b528a…bea6ae on BNB Chain — Decompiled Solidity