BNB Chain
0x8f0606af40f68bb3afa390e5743b6e096f46023a
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0x8f0606af…6f46023a13.0 KB16.6 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0x8f0606af40f68bb3afa390e5743b6e096f46023a
531 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] ( => ( => )) ; // STORAGE[0x1] ; // STORAGE[0x2] ; // STORAGE[0x3] ; // STORAGE[0x4] ; // STORAGE[0x5] ; // STORAGE[0x6] ; // STORAGE[0x7] ; // STORAGE[0x8] bytes 0 to 19 ; // STORAGE[0x9] bytes 0 to 19 ; // STORAGE[0xc] ; // STORAGE[0xd] ; // STORAGE[0xf] ( => ) ; // STORAGE[0x10] ( => ) ; // STORAGE[0x11] ( => ) ; // STORAGE[0x12] ( => ) ; // STORAGE[0x13] ; // STORAGE[0x14] ; // STORAGE[0x15] ; // STORAGE[0x16] bytes 0 to 19 ; // STORAGE[0x17] ; // STORAGE[0x19] bytes 0 to 0 ; // STORAGE[0x1d] bytes 0 to 0 ; // STORAGE[0x1e] ( => ) ; // STORAGE[0x1f] ( => ) ; // STORAGE[0x20] ( => ) ; // STORAGE[0x21] ; // STORAGE[0x22] bytes 0 to 19 ; // STORAGE[0x25] ( => ) ; // STORAGE[0x29] ( , , ); ( , , ); () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x1032d536)) { // Route to Unknown_1032d536(address) after replacing only msg.sig. ((0xce5049b9)); ; } ((.. >= 4) && (. == 0x221cf01c)) { // Route to Unknown_221cf01c(address,uint256) after replacing only msg.sig. ((0x9ee2615b)); ; } ((.. >= 4) && (. == 0x43f7c0ee)) { // Route to Unknown_43f7c0ee(uint256) after replacing only msg.sig. ((0xda27fb54)); ; } ((.. >= 4) && (. == 0x658c9125)) { // Route to Unknown_658c9125() after replacing only msg.sig. ((0xcae8ff6b)); ; } ((.. >= 4) && (. == 0x847ed4b3)) { // Route to Unknown_847ed4b3() after replacing only msg.sig. ((0xaa0cbb65)); ; } ((.. >= 4) && (. == 0xd62a5d3e)) { // Route to Unknown_d62a5d3e() after replacing only msg.sig. ((0x73d3e543)); ; } (); } () ( ) { ; } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = ; (., , [.][]); ; } ( ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (); } ( , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (, ); } ( , , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60)); (, , ); ; } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = [.][] + ; (., , ([(.)][] + )); ; } ( ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (. != (0), "ERC20: burn from the zero address"); (!([.] < ), "ERC20: burn amount exceeds balance"); [.] = [.] - ; = - ; (., (0), ); } ( ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (); } () () { (( / 0x01)); } () () { (); } ( ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); ( != (0), "balance query for the zero address"); = []; ([] == 0x0) { = ; } ; } ( , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (!([][(.)] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) { (!([][(.)] < ), "ERC20: insufficient allowance"); ( != (0), "ERC20: approve from the zero address"); (. != (0), "ERC20: approve to the zero address"); [][.] = [][(.)] - ; (, ., [][.]); } ( != (0), "ERC20: burn from the zero address"); (!([] < ), "ERC20: burn amount exceeds balance"); [] = [] - ; = - ; (, (0), ([][(.)] - )); } () () { (); } () ( ) { ; } ([] , , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60)); (!(. > 0xffffffffffffffff)); (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04))); (!(. > 0xffffffffffffffff)); (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04)))); (([.] / 0x01) != 0x0, "this"); = 0; () { ( >= .) { ; } (0x20 * + ((0x04 + ) + 0x20) + 0x20 - (0x20 * + ((0x04 + ) + 0x20)) >= 0x20); (, [], ); = + 0x01; } } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (!([.][] < ), "ERC20: decreased allowance below zero"); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = [.][] - ; (., , ([(.)][] - )); ; } ( , ) () { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (, , .); ; } () () { (); } ( ) { // Decompilation incomplete: helper effect provenance is conservative. ; = (0x20 + ) + 0x14; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); ( == ); ( - == 0) { = ; } } ( , ) { // Decompilation incomplete: helper effect provenance is conservative. ; = (0x20 + ) + 0x14; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); ( == ); ( - == 0) { ( != 0x0, "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. (!([][(.)] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) { (!([][(.)] < ), "ERC20: insufficient allowance"); ( != (0), "ERC20: approve from the zero address"); (. != (0), "ERC20: approve to the zero address"); [][.] = ([][(.)] - ); (, ., [][.]); } (, , ); } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ( > 0x0, "Transfer amount must be greater than zero"); (!(([] / 0x01) || ([] / 0x01))) { (!(([] / 0x01))); ( == (( / 0x01))) { ; = 0x24 + ; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } ( , ) = ( / 0x01).(); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } = 0x24 + ; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } ( , ) = ( / 0x01).(); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } = 0x24 + ; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } ( , ) = ( / 0x01).(); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (((0x20 + ) + ) - (0x20 + ) >= 0x40); ( == ); ( == ); (((0x20 + ) + ) - (0x20 + ) >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); (((0x20 + ) + ) - (0x20 + ) >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); = ((0x24 + ) + 0x20); = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } ( , ) = (()).(); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (((0x20 + ) + ) - (0x20 + ) >= 0x20); ( == ); = ((0x24 + ) + 0x20); = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } ( , ) = (()).(); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } (((0x20 + ) + ) - (0x20 + ) >= 0x20); ( == ); ; ; ; ((()) != (( / 0x01))) { = 0; = 0; = 0; ((()) == (( / 0x01))) { = 0; = ((()) == (())) ? 1 : 0; = 0; ( > (())) { = ( - (())); = 0; = ((( - (()))) > ) ? 1 : 0; } = ; = ; = ; } = ; = ; = ; } { = 0; = ((()) == (())) ? 1 : 0; = 0; ( > (())) { = ( - (())); = 0; = ((( - (()))) > ) ? 1 : 0; } = ; = ; = ; } ( == 0x0 && == 0x0); } (( != ()) && (( != / 0x1) && (( != / 0x1) && ([][((( / 0x01)))] < )))) { ( != (0), "ERC20: approve from the zero address"); ((0xffffffffffffffffffffffffffffffffffffffff & (( / 0x01))) != 0x0, "ERC20: approve to the zero address"); [][((( / 0x01)))] = ; (, ((( / 0x01))), ); } (, , ); } { (, , ); } } ( , , ) { ( != (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. ; = (0x20 + ) + 0x14; = 0; () { = ; ( >= ) { ; } ( + 0x20 >= ) { ; } = ( + 0x20) + 0x20; = + 0x20; } (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); ( == ); ( - == 0) { (( / 0x01) != 0x0, "ERC20: transfer from the zero address"); ( != 0x0, "ERC20: transfer to the zero address"); (!([( / 0x01)] < ), "ERC20: transfer amount exceeds balance"); [( / 0x01)] = [( / 0x01)] - ; [] = [] + ; (( / 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. // 0x049ec164 => unresolved_049ec164(address) // 0x06fdde03 => name() // 0x095ea7b3 => approve(address,uint256) // 0x1032d536 => Unknown_1032d536(address) // 0x1468fbf2 => unresolved_1468fbf2(address) // 0x18160ddd => totalSupply() // 0x221cf01c => Unknown_221cf01c(address,uint256) // 0x23b872dd => transferFrom(address,address,uint256) // 0x25c6c8a0 => unresolved_25c6c8a0(address) // 0x307bf9d5 => banList(address) // 0x313ce567 => decimals() // 0x39509351 => increaseAllowance(address,uint256) // 0x42966c68 => burn(uint256) // 0x43f7c0ee => Unknown_43f7c0ee(uint256) // 0x49bd5a5e => uniswapV2Pair() // 0x5c105068 => unresolved_5c105068(address) // 0x658c9125 => Unknown_658c9125() // 0x66666aa9 => rewardPool() // 0x70a08231 => balanceOf(address) // 0x714f2831 => unresolved_714f2831(address) // 0x78e97925 => startTime() // 0x79cc6790 => burnFrom(address,uint256) // 0x847ed4b3 => Unknown_847ed4b3() // 0x8c981e81 => bindValid() // 0x95d89b41 => symbol() // 0x983bc41b => airdrop(address[],address,uint256) // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa8aa1b31 => pair() // 0xa9059cbb => transfer(address,uint256) // 0xbf78a499 => unresolved_bf78a499(address) // 0xc45a0155 => factory() // 0xc8c9966f => unresolved_c8c9966f(address) // 0xd62a5d3e => Unknown_d62a5d3e() // 0xdd62ed3e => allowance(address,address)}