BNB Chain
0x8321fdc811c5605ff411ee8ab008433fe0545d99
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0x8321fdc8…e0545d999.1 KB47.0 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0x8321fdc811c5605ff411ee8ab008433fe0545d99
657 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// Decompilation incomplete: symbolic execution reached a configured deadline for 1 of 24 entry points (170000 ms contract budget): 23b872dd// SPDX-License-Identifier: MIT >=0.8.0; { () ( ); ( ) ( ); ( , ) ( );} { () ( , , );} { = 18; ; // STORAGE[0x0] ( => ) ; // STORAGE[0x1] ( => ( => )) ; // STORAGE[0x2] ; // STORAGE[0x3] ; // STORAGE[0x4] ; // STORAGE[0x5] ; // STORAGE[0x6] ; // STORAGE[0x7] ; // STORAGE[0x9] ; // STORAGE[0xa] ; // STORAGE[0xd] ; // STORAGE[0x10] ( => ) ; // STORAGE[0x11] ( => ) ; // STORAGE[0x12] ( => ) ; // STORAGE[0x13] ; // STORAGE[0x14] ; // STORAGE[0x15] ; // STORAGE[0x17] ( , , ); ( , , ); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { (. == , "Ownable: caller is not the owner"); ; } () { } () ( ) { ; } ( , ) () { (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = ; (., , [.][]); ; } ( , , ) { (!( > [][.]), "ERC20: transfer amount exceeds allowance"); (!( > [][.]), "SafeMath: subtraction overflow"); [][.] = [][.] - ; ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ( != , "ERC20: transfer to the same address"); (. != (0), "ERC20: transfer to the same address"); = ([]) ? 1 : 0; (![]) { = ([]) ? 1 : 0; } = ; ( == 0) { = ([]) ? 1 : 0; } } ( , ) () { (!(. < 0x2386f26fc10000), "value"); ( , ) = .{ : 0x08fc * !()., : (). }(""); // call (); = ().(, ); ; } ( , ) () { (!(( + [.][]) < [.][]), "SafeMath: addition overflow"); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = + [.][]; (., , [.][]); ; } ( ) { = ; } ( , ) { [] = ; } () { = (0); } () ( ) { ; } ( , ) () { (!( > [.][]), "ERC20: decreased allowance below zero"); (. != (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))))) { ; } (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff)); = 0x20 + ; = 0x20 + ; } (. == , "Ownable: caller is not the owner"); = 0; () { ( >= ) { ; } [()] = ; = 0x01 + ; } } ( , ) () { (, , .); ; } ( ) { ( != (0), "Ownable: new owner is the zero address"); = ; } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); (!([] < ), "amount error"); (!([] || [])) { ( != ) { ; (![]) { (![]) { ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [] >= [], "SafeMath: addition overflow"); [] = ( + []); (, , ); ; } { = ; ([] == ) { (0x0186a0 != 0x0, "SafeMath: division by zero"); = (0x01869f * ( / 0x0186a0)); (0x0 != / 0x186a0) { (((0x01869f * ( / 0x0186a0)) / ( / 0x0186a0)) == 0x01869f, "SafeMath: multiplication overflow"); } { = 0; } = ; } (![]) { ( < ., "startTime"); (0x03e8 != 0x0, "SafeMath: division by zero"); = (0x24 * ( / 0x03e8)); (0x0 != ( / 0x03e8)) { (0x24 * ( / 0x03e8) / ( / 0x03e8) == 0x24, "SafeMath: multiplication overflow"); } { = 0; } ( != (0), "ERC20: transfer from the zero address"); (() != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [()] >= [()], "SafeMath: addition overflow"); [()] = ( + [()]); (, (), ); (0x03e8 != 0x0, "SafeMath: division by zero"); ; (0x0 == / 0x3e8) { = 0x01; = 0; = (0x03c4 * ( / 0x03e8)); () { ( < 0x04) { = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero"); } } } } } } { (![], "to error"); ( , ) = ( / 0x01).(); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); ( , , ) = ().(); = ().(); = 0; = 0; ( > (())) { = ((())) * (( - (()))); = ((())) * (( - (()))); (0x0 != (( - (())))) { (((())) * (( - (()))) / (( - (()))) == ((())), "SafeMath: multiplication overflow"); } { = 0x40 + ; = 0; = 0; } ((()) != 0x0, "SafeMath: division by zero"); = ( / (())); = ( - (())); } = ; (![]) { (!( > .), "startTime"); (0x03e8 != 0x0, "SafeMath: division by zero"); = (0x24 * ( / 0x03e8)); (0x0 != ( / 0x03e8)) { (0x24 * ( / 0x03e8) / ( / 0x03e8) == 0x24, "SafeMath: multiplication overflow"); } { = 0; } ( != (0), "ERC20: transfer from the zero address"); (() != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [()] >= [()], "SafeMath: addition overflow"); [()] = ( + [()]); (, (), ); (0x03e8 != 0x0, "SafeMath: division by zero"); = (0x03c4 * ( / 0x03e8)); (0x0 != / 0x3e8) { (((0x03c4 * ( / 0x03e8)) / ( / 0x03e8)) == 0x03c4, "SafeMath: multiplication overflow"); = 0x01; = 0; = (0x03c4 * ( / 0x03e8)); () { ( >= 0x4) { ; } = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero"); (() != (0), "ERC20: transfer from the zero address"); (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address"); = 0x60 + ; (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance"); [()] = [()] - ( / (( * 0x0f4240))); (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow"); [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))]; ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))), / (( * 0x0f4240))); = (0x01 + ); = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )); = ; } } { = 0x01; = 0; = (0x03c4 * ( / 0x03e8)); () { ( >= 0x4) { ; } = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero"); (() != (0), "ERC20: transfer from the zero address"); (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address"); = 0x60 + ; (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance"); [()] = [()] - ( / (( * 0x0f4240))); (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow"); [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))]; ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))), / (( * 0x0f4240))); = (0x01 + ); = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )); = ; } = 0; } = ; } ( < , "ExceedBuyLimit"); ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [] >= [], "SafeMath: addition overflow"); [] = ( + []); (, , ); ; } } { ( , ) = ( / 0x01).(); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); ( , , ) = ().(); = ().(); = 0; = 0; = 0; (!(() == (()))) { = 0; = ((()) == ) ? 1 : 0; = 0; (() > ) { = (() - ); = 0; = (!((() - ) < 0x5af3107a4000)) ? 1 : 0; } = ; = ; = ; } ( == 0x0) { (![]) { = ; ([]) { = ; ([] == ) { (0x0186a0 != 0x0, "SafeMath: division by zero"); = (0x01869f * ( / 0x0186a0)); (0x0 != / 0x186a0) { (((0x01869f * ( / 0x0186a0)) / ( / 0x0186a0)) == 0x01869f, "SafeMath: multiplication overflow"); } { = 0; } = ; } = ; (![]) { ( < ., "startTime"); (0x03e8 != 0x0, "SafeMath: division by zero"); = (0x24 * ( / 0x03e8)); (0x0 != ( / 0x03e8)) { (0x24 * ( / 0x03e8) / ( / 0x03e8) == 0x24, "SafeMath: multiplication overflow"); } { = 0; } ( != (0), "ERC20: transfer from the zero address"); (() != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [()] >= [()], "SafeMath: addition overflow"); [()] = ( + [()]); (, (), ); (0x03e8 != 0x0, "SafeMath: division by zero"); = (0x03c4 * ( / 0x03e8)); (0x0 != / 0x3e8) { (((0x03c4 * ( / 0x03e8)) / ( / 0x03e8)) == 0x03c4, "SafeMath: multiplication overflow"); = 0x01; = 0; = (0x03c4 * ( / 0x03e8)); () { ( >= 0x4) { ; } = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero"); (() != (0), "ERC20: transfer from the zero address"); (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address"); = 0x60 + ; (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance"); [()] = [()] - ( / (( * 0x0f4240))); (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow"); [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))]; ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))), / (( * 0x0f4240))); = (0x01 + ); = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )); = ; } } { (0); = 0; } = ; } (); = ; } ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [] >= [], "SafeMath: addition overflow"); [] = ( + []); (, , ); ; } { (![], "to error"); ( , ) = ( / 0x01).(); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); ( , , ) = ().(); ().(); } } { (![]) { = ().(); ( , , ) = ().(); = ( * ); (0x0 != ) { ( * / == , "SafeMath: multiplication overflow"); } { = 0; } = ; = ; = (()); = (()); = 0x15b7; = 0x03e8; = 0x03f4; = 0; = (()); = (); = ; = 0; = ; = 0; = ; = ; = ; = ; = 0; = ; () { ( != 0x0, "SafeMath: division by zero"); = 0x40 + ; = ; = ; = ; = ; = 0x0f3c; = ; = ; = ; = ; = ; = 0; = ; = ; = ; = ; = ; = ; = ; = ; = .[0] >> 0xe0; } } { ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); = 0x60 + ; ( <= [], "ERC20: transfer amount exceeds balance"); [] = ([] - ); ( + [] >= [], "SafeMath: addition overflow"); [] = ( + []); (, , ); ; } } } } { ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ( <= [], "SafeMath: subtraction overflow"); [] = ([] - ); ( + [] >= [], "SafeMath: addition overflow"); [] = ( + []); (, , ); ; } } ( ) { // Decompilation incomplete: helper effect provenance is conservative. = 0x01; = ; = (0x03c4 * ( / 0x03e8)); () { ( >= 0x4) { ; } = ((( + (0x01)))) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & ); ((( * 0x0f4240)) != 0x0, "SafeMath: division by zero"); (() != , "ERC20: transfer from the zero address"); (((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )) & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address"); (( / (( * 0x0f4240))) <= [()], "ERC20: transfer amount exceeds balance"); [()] = [()] - ( / (( * 0x0f4240))); (( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] >= [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))], "SafeMath: addition overflow"); [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )))] = ( / (( * 0x0f4240))) + [((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ())))]; ((), ((((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / ))), / (( * 0x0f4240))); = (0x01 + ); = (((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) / )); = ; } } () { // Decompilation incomplete: helper effect provenance is conservative. (0x1770 != 0x0, "SafeMath: division by zero"); ([()] > (([] / 0x1770))) { (!( < 0x04)) { = 0; ([()]); } { = (0x01 + ); ([()]); } (); } } ( ) { // Decompilation incomplete: helper effect provenance is conservative. (() != (0), "ERC20: approve from the zero address"); (( & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: approve to the zero address"); [()][()] = ; ((), (), [()][()]); = + 0x60; (!(0 < .)) (50); (!(0x01 < .)) (50); (0x78 + . >= ., "SafeMath: addition overflow"); = 0; = (0x04 + ) + 0xc0; = + 0x20; () { = ; = ; = ; (!( < )) { ; } (!((0x01 + ) < )) { ; } = 0x01 + (0x01 + ); = ( + 0x20) + 0x20; = 0x20 + (0x20 + ); = 0x01 + ; = + 0x20; = 0x20 + ; } (.. != 0x0); .(, 0, 0xa0, , (0x78 + .), ); // call } ( ) { // Decompilation incomplete: helper effect provenance is conservative. (() != (0), "ERC20: approve from the zero address"); (( & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: approve to the zero address"); [()][()] = ; ((), (), [()][()]); = + 0x80; (!(0 < .)) (50); (!(0x01 < .)) (50); (!(0x02 < .)) (50); (!((0x78 + .) < .), "SafeMath: addition overflow"); = 0; = (0x04 + ) + 0xc0; = + 0x20; () { = ; = ; = ; (!( < )) { ; } (!((0x01 + ) < )) { ; } = 0x01 + (0x01 + ); = ( + 0x20) + 0x20; = 0x20 + (0x20 + ); = 0x01 + ; = + 0x20; = 0x20 + ; } (.. != 0x0); .(, 0, 0xa0, , (0x78 + .), ); // call } // 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) // 0x30488a55 => swapTimes() // 0x313ce567 => decimals() // 0x33f3d628 => rescueToken(address,uint256) // 0x39509351 => increaseAllowance(address,uint256) // 0x3e0a322d => setStartTime(uint256) // 0x49bd5a5e => uniswapV2Pair() // 0x590ffdce => setExcludedFromFees(address,bool) // 0x70a08231 => balanceOf(address) // 0x715018a6 => renounceOwnership() // 0x78e97925 => startTime() // 0x8da5cb5b => owner() // 0x95d89b41 => symbol() // 0x9af5adcd => ktNum() // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa5115a3a => excludeFromFeesUsers(address[],bool) // 0xa9059cbb => transfer(address,uint256) // 0xaa10c9e5 => whiteUserList(address) // 0xdd62ed3e => allowance(address,address) // 0xf2fde38b => transferOwnership(address)}