BNB Chain
0xd70b245fcd75444eb12b6318c965c5282a7e372f
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0xd70b245f…2a7e372f4.7 KB8.4 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0xd70b245fcd75444eb12b6318c965c5282a7e372f
315 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; { = (0x6374ca2da5646c73eb444ab99780495d61035f9b); = (0x63d1eacebb70bbbf0641e7c88e9099301bba3688); = (0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c); = (0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1); = (0x55d398326f99059ff775485246999027b3197955); = (0x1b81d678ffb9c0263b24a97847620c99d213eb14); ( , ); (, , ); ( , , , , ); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x0e6b4b6e)) { // Route to Unknown_0e6b4b6e(bytes,bytes,uint256,uint256) after replacing only msg.sig. ((0xb88c74ec)); ; } ((.. >= 4) && (. == 0x8bd28fc3)) { // Route to Unknown_8bd28fc3(address,uint256,uint256) after replacing only msg.sig. ((0xb01b6cb9)); ; } (); } ( , , , ) ( ) { (!(((0x04 + ) + (. << 0x05) + 0x20) > ..)); (!(((0x04 + ) + (. << 0x05) + 0x20) > ..)); ((. == . && . != 0x0), "len"); ( <= 0xbb8, "bribe too high"); ((0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1).. != 0x0); ( , ) = (0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1).(); // call (); (. > 0xffffffffffffffff) (65); ; = + (0x20 + (0x20 * .)); = ; ( != 0x0) { = (. * 0x20) + (0x20 + ); } (. > 0xffffffffffffffff) (65); = + (0x20 + (0x20 * .)); = ; ( != 0x0) { = (. * 0x20) + (0x20 + ); } = 0; () { (!( < .)) { ; } (.[(0x20 * ) + ((0x04 + ) + 0x20)] == ((.[(0x20 * ) + ((0x04 + ) + 0x20)]))); (!( < .)) (50); ( , ) = ().((.[(0x20 * ) + ((0x04 + ) + 0x20)]), ((0x20 * ) + ( + 0x20)), ); // call () { = + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f)); (!((( + .) - ) < 0x20)); (!( < .)) (50); (!( < .)) (50); = 0x01 + ; } () { (!( < )) (50); (!( < )) (50); = 0x01 + ; } { = 0x01 + ; } } ( , ) = (0x55d398326f99059ff775485246999027b3197955).(()); // staticcall (); = .(, ()); (!(0x0 > 0x0 && > 0x0 && > 0x0)) { ( != 0x0) { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(., ); // call (); .(, ()); } = 0; = + 0x80; = + 0x20; () { (!( < .)) { ; } = 0x01 + ; = + 0x20; = 0x20 + ; } .(0, 0x60, 0, .); } { (( * ) / 0x2710 == 0) { ( != 0x0) { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(., ); // call (); .(, ()); } = 0; = + 0x80; = + 0x20; () { (!( < .)) { ; } = 0x01 + ; = + 0x20; = 0x20 + ; } .(0, 0x60, 0, .); } { = + 0x0100; ( , ) = (0x1b81d678ffb9c0263b24a97847620c99d213eb14).((.)); // call (!) { (!) { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(()); // staticcall (); = .(, ()); ( != 0x0) { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(., ); // call (); .(, ()); } = 0; = + 0x80; = + 0x20; () { (!( < .)) { ; } = 0x01 + ; = + 0x20; = 0x20 + ; } .(0, 0x60, 0, .); } { ((0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c).. != 0x0); ( , ) = (0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c).(( * ) / 0x2710); // call (); ( , ) = (0x6374ca2da5646c73eb444ab99780495d61035f9b).{ : ( * ) / 0x2710 }(""); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } = ; () { = ( * ) / 0x2710; } (, ( * ) / 0x2710, ); ( , ) = (0x55d398326f99059ff775485246999027b3197955).(()); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); (. != 0x0) { (0x0 != ) { = 0; = 0; () { (!( < .)) { ; } (!( < )) (50); = ; (!( == 0x0 || 0x0 == )) { (!( < )) (50); = ; (( * .) / != 0) { (!( < 0x4 + + 0x20)) (50); (0x20 * + 0xa6 + 0x20 - (0x20 * + 0xa6) >= 0x20); (.[(0x20 * ) + 0xa6] == ((.[(0x20 * ) + 0xa6]))); ( , ) = (0x55d398326f99059ff775485246999027b3197955).((.[(0x20 * ) + 0xa6]), ( * .) / ); // call (); .(, ()); (!( < 0x4 + + 0x20)) (50); (0x20 * + 0xa6 + 0x20 - (0x20 * + 0xa6) >= 0x20); (.[(0x20 * ) + 0xa6] == ((.[(0x20 * ) + 0xa6]))); ((.[(0x20 * ) + 0xa6]), ( * .) / ); = (( * .) / ) + ; } = ; } = 0x01 + ; = ; } (. > ) { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(., . - ); // call (); .(, ()); } } { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(., .); // call (); .(, ()); } } } } { = + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f)); (!((( + .) - ) < 0x20)); ((0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c).. != 0x0); ( , ) = (0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c).(.); // call (); ( , ) = (0x6374ca2da5646c73eb444ab99780495d61035f9b).{ : . }(""); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } = 0; () { = .; } (( * ) / 0x2710, ., ); ( , ) = (0x55d398326f99059ff775485246999027b3197955).(()); // staticcall (); = .(, ()); (. != 0x0) { ( , ) = (0x55d398326f99059ff775485246999027b3197955).(., .); // call (); .(, ()); } = 0; = + 0x80; = + 0x20; () { (!( < .)) { ; } = 0x01 + ; = + 0x20; = 0x20 + ; } .(0, 0x60, , .); } } } } ( , , ) () { (, , ); (() * (0x26f7 * )) / ((0x26f7 * ) + (0x2710 * (()))); } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. (() == ., "self only"); ( > 0x0, "amount=0"); ( , ) = (0x63d1eacebb70bbbf0641e7c88e9099301bba3688).(, 0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1, ); // call (); = .(, ()); (, "transferFrom failed"); ( , ) = (0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1).(); // staticcall (); ( , , ) = .(, (, , )); ( , ) = (0x63d1eacebb70bbbf0641e7c88e9099301bba3688).(0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1); // staticcall (); = .(, ()); = - (()); (!( > (()))) { = 0; } ( > 0x0, "net=0 blocked"); (( - ) * 0x64 / <= , "TAX too high"); = (() * (0x26f7 * ) / ((0x26f7 * ) + (0x2710 * (())))) > 0; (() * (0x26f7 * ) / ((0x26f7 * ) + (0x2710 * (()))) > 0) { = (() * (0x26f7 * ) / ((0x26f7 * ) + (0x2710 * (())))) < (()); } (, "bad out"); ((0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1).. != 0x0); ( , ) = (0x17662cadea9e98a5a660ca1fe993f136d3cb0ae1).(((() * (0x26f7 * )) / ((0x26f7 * ) + (0x2710 * (())))), 0, (), 0x80); // call (); (, , , (() * (0x26f7 * )) / ((0x26f7 * ) + (0x2710 * (()))), (( - ) * 0x64) / ); } ( ) { { := (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. // 0x0e6b4b6e => Unknown_0e6b4b6e(bytes,bytes,uint256,uint256) // 0x66eb6e57 => unresolved_66eb6e57() // 0x82bfefc8 => TOKEN() // 0x8bd28fc3 => Unknown_8bd28fc3(address,uint256,uint256) // 0x8dd95002 => WBNB() // 0xace3a8a7 => PAIR() // 0xc54e44eb => USDT() // 0xff1a1600 => V3ROUTER()}