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
This result is permanently available athttps://decompiler.exvul.com/bsc/0x2b528a28451e9853f51616f3b0f6d82af8bea6ae
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)}