BNB Chain
0xb0557906c617f0048a700758606f64b33d0c41a6
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0xb0557906…3d0c41a65.6 KB4.6 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0xb0557906c617f0048a700758606f64b33d0c41a6
425 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; { ( ) ( ); ( , ) ( );} { = 18; ; // STORAGE[0x0] ; // STORAGE[0x1] ; // STORAGE[0x2] ; // STORAGE[0x3] ; // STORAGE[0x4] ; // STORAGE[0x5] ( => ) ; // STORAGE[0x6] ( => ) ; // STORAGE[0x7] ( => ( => )) ; // STORAGE[0x8] ; // STORAGE[0x9] ; ; ; ( , , ); ( , , ); ( , ); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { (. == , "Ownable: caller is not the owner"); ; } ( , , ) { (.. != 0x0); = ().(()); = ; ( == 0) { = ; } = > 0x0; ( > 0) { = !( < ); } (, "bad amount"); (.. != 0x0); ().(, ); } () ( ) { ; } ( , ) () { (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); (([.]) || (() == 0x0)) { [.][] = ; (., , [.][]); ; } { = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); (!( & (0x01))) { } { ( & (0x01) == 0x01); = 0; = (.(0x09)); () { ( >= ) { ; } = 0x20 + ; = 0x01 + ; } } (""); } } ( , ) { = ; ( == 0) { = ().; } (( > 0x0 && () >= ), "no balance"); ( , ) = .{ : 0x08fc * !, : }(""); // call (); } ( , , ) () { ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ([]) { (!([] < ), "ERC20: transfer amount exceeds balance"); [] = [] - ; [] = [] + ; [] = ; (, , ); (!([][.] < ), "ERC20: transfer amount exceeds allowance"); ( != (0), "ERC20: approve from the zero address"); (. != (0), "ERC20: approve to the zero address"); (([]) || (() == 0x0)) { [][.] = [][.] - ; (, ., [][.]); ; } { = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); (!( & (0x01))) { } { ( & (0x01) == 0x01); = 0; = (.(0x09)); () { ( >= ) { ; } = 0x20 + ; = 0x01 + ; } } (""); } } { = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); (!( & (0x01))) { } { ( & (0x01) == 0x01); = 0; = (.(0x09)); () { ( >= ) { ; } = 0x20 + ; = 0x01 + ; } } (""); } } ( , ) () { (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); (([.]) || (() == 0x0)) { [.][] = [.][] + ; (., , [.][]); ; } { = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); (!( & (0x01))) { } { ( & (0x01) == 0x01); = 0; = (.(0x09)); () { ( >= ) { ; } = 0x20 + ; = 0x01 + ; } } (""); } } ( , ) { ( != (0), "ERC20: mint to the zero address"); = + ; [] = [] + ; [] = ; ((0), , ); } ([] , ) { (. > 0xffffffffffffffff) (65); ; ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); [] = ; (!(.. < (0x20 + ((0x04 + ) + (. << 0x05))))); = 0x20 + (0x04 + ); = + 0x20; = 0; () { (!( < .)) { ; } (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff)); = 0x20 + ; = 0x20 + ; = 0x01 + ; } = 0; () { ( >= ) { ; } ((), (), ); = 0x01 + ; } } ( ) () { (![]) { ; } []; } () { (, (0)); = (0); } ( ) { = ; } () ( ) { ; } ( ) { (!(((0x04 + ) + + 0x20) > ..)); (. == , "Ownable: caller is not the owner"); = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); ; ; ; (. != 0x0) { ; ; ; (0x1f < .) { = 0x01 + ( + ); = 0x20 + (0x04 + ); = (.(0x09)); = ; = (.(0x09)); = 0x20 + (0x04 + ); () { ((0x20 + (0x04 + )) + <= ) { ; } = .[]; = 0x01 + ; = 0x20 + ; } = (0x20 + (0x04 + )) + ; = ; = ; = ; = ; = ; } { = (.[0x20 + (0x04 + )] & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)) | ( + ); = 0x20 + (0x04 + ); = (.(0x09)); = ; } = ; = ; = ; } { = 0; = 0x20 + (0x04 + ); = (.(0x09)); = ; } = (.(0x09)); = (.(0x09)) + ((0x1f + ) / 0x20); () { ( <= ) { ; } = 0; ( <= (0x01 + )) { ; } = 0; = 0x01 + (0x01 + ); = ; } } ( , ) { ( != (0), "ERC20: burn from the zero address"); (!([] < ), "ERC20: burn amount exceeds balance"); [] = [] - ; = - ; [] = ; (, (0), ); } ( , ) () { (!([.][] < ), "ERC20: decreased allowance below zero"); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); (([.]) || (() == 0x0)) { [.][] = [.][] - ; (., , [.][]); ; } { = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); (!( & (0x01))) { } { ( & (0x01) == 0x01); = 0; = (.(0x09)); () { ( >= ) { ; } = 0x20 + ; = 0x01 + ; } } (""); } } ( ) { = ; } ( , ) () { (. != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ([.]) { (!([.] < ), "ERC20: transfer amount exceeds balance"); [.] = [.] - ; [] = [] + ; [] = ; (., , ); ; } { = >> 0x01; (!( & (0x01))) { = ( >> 0x01) & (0x7f); } ( & (0x01) == ( < 0x20)) (34); (!( & (0x01))) { } { ( & (0x01) == 0x01); = 0; = (.(0x09)); () { ( >= ) { ; } = 0x20 + ; = 0x01 + ; } } (""); } } ( ) { ( != (0), "Ownable: new owner is the zero address"); (, ); = ; } // 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. // 0x01e33667 => withdrawToken(address,address,uint256) // 0x06fdde03 => name() // 0x095ea7b3 => approve(address,uint256) // 0x18160ddd => totalSupply() // 0x1b9a91a4 => withdrawEth(address,uint256) // 0x23b872dd => transferFrom(address,address,uint256) // 0x313ce567 => decimals() // 0x39509351 => increaseAllowance(address,uint256) // 0x40c10f19 => mint(address,uint256) // 0x512d7cfd => batchTransferToken(address[],uint256) // 0x70a08231 => balanceOf(address) // 0x715018a6 => renounceOwnership() // 0x76f3bdb6 => setUnlock(address) // 0x8da5cb5b => owner() // 0x95d89b41 => symbol() // 0x98c93ad0 => setTransferMessage(string) // 0x9dc29fac => burn(address,uint256) // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa5500c30 => setAirdropAmount(uint256) // 0xa9059cbb => transfer(address,uint256) // 0xdd62ed3e => allowance(address,address) // 0xf2fde38b => transferOwnership(address)}