BNB Chain
0x0bc0877e631f7104077f9fc21a23be1924d24293
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0x0bc0877e…24d242934.1 KB3.2 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0x0bc0877e631f7104077f9fc21a23be1924d24293
366 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] bytes 0 to 0 ; // STORAGE[0x6] ; // STORAGE[0x7] ; // STORAGE[0xd] ( => ) ; // STORAGE[0xe] ( => ) ; // STORAGE[0xf] ; // STORAGE[0x12] ; // STORAGE[0x14] ; // STORAGE[0x15] ; // STORAGE[0x1d] ( , , ); ( , , ); ( , ); () { (. == , "Ownable: caller is not the owner"); ; } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x6ceeb0bf)) { // Route to Unknown_6ceeb0bf(address) after replacing only msg.sig. ((0x1e7e789b)); ; } ((.. >= 4) && (. == 0x7f8d4443)) { // Route to Unknown_7f8d4443(address,bool) after replacing only msg.sig. ((0x308d341f)); ; } ((.. >= 4) && (. == 0x83786d8e)) { // Route to Unknown_83786d8e(uint256) after replacing only msg.sig. ((0x2136145f)); ; } (); } () ( ) { ; } ( , ) () { (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = ; (., , [.][]); ; } ( , , ) () { ( != (0), "ERC20: transfer from the zero address"); ( != (0), "ERC20: transfer to the zero address"); ( > 0x0, "Transfer amount must be greater than zero"); (!(([]) || ([]))) { (![]); ( == ) { ( , ) = .(); // staticcall (); ( , ) = .(); // staticcall (); ( , ) = .(.((0x0902f1ac))); // staticcall getReserves (); ( , ) = (.).(); // staticcall (); ( , ) = (.).(); // staticcall (); = 0; = 0; = 0; (. == ) { = 0; = 0; (. > .) { = . - .; = ((. - .) > ) ? 1 : 0; } = 0; (. == .) { = 0x01; } = ; = ; = ; } = ; = ; = ; (. == ) { = ; = ; ( > .) { = - .; = (( - .) > ) ? 1 : 0; } = ; ( == .) { = 0x01; } = ; = ; = ; } (( | ) == 0x0); } (, , ); } { (, , ); } = 0x60 + ; ( <= [][.]) { ( != (0), "ERC20: approve from the zero address"); (. != (0), "ERC20: approve to the zero address"); [][.] = [][.] - ; (, ., [][.]); ; } { = 0; () { (!( < )) { ; } = 0x20 + ; } ( > ) { } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } } ( , ) () { (!(([.][] + ) < [.][]), "SafeMath: addition overflow"); (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = [.][] + ; (., , [.][]); ; } ( ) { (); = ; } () { (, (0)); = (0); } ( , ) { (); [] = ; } ( ) { (); } () ( ) { ; } ( , ) () { ; = 0x60 + ; (!( > [.][])) { (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = [.][] - ; (., , [.][]); } { = 0; () { (!( < .)) { ; } = 0x20 + ; } (0x40 > .) { } ("ERC20: decreased allowance below zero"); } ; } ( , ) () { (, , .); ; } ( ) { ( != (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"); (!( > []), "ERC20: transfer amount exceeds balance"); = 0x40 + ; (!( <= [])) { = 0; () { = ; (!( < .)) { ; } (!((0x20 + ) < .)) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } [] = ([] - ); ([] + >= [], "SafeMath: addition overflow"); [] = ([] + ); (, , ); } ( ) { // Decompilation incomplete: helper effect provenance is conservative. (); ( != 0x0, "ERC20: transfer from the zero address"); ( != 0x0, "ERC20: transfer to the zero address"); (!( > []), "ERC20: transfer amount exceeds balance"); = 0x40 + ; (!( <= [])) { = 0; () { = ; (!( < .)) { ; } (!((0x20 + ) < .)) { ; } = 0x20 + (0x20 + ); = 0x20 + ; } ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"); } [] = ([] - ); ([] + >= [], "SafeMath: addition overflow"); [] = ([] + ); (, , ); } ( , , ) { // 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"); (!(([]) || ([]))) { (![]); ( == ) { ( , ) = .(); // staticcall (); ( , ) = .(); // staticcall (); ( , ) = .(.((0x0902f1ac))); // staticcall getReserves (); ( , ) = (.).(); // staticcall (); ( , ) = (.).(); // staticcall (); = 0; = 0; = 0; (. == ) { = 0; = 0; (. > .) { = . - .; = ((. - .) > ) ? 1 : 0; } = 0; (. == .) { = 0x01; } = ; = ; = ; } = ; = ; = ; (. == ) { = ; = ; ( > .) { = - .; = (( - .) > ) ? 1 : 0; } = ; ( == .) { = 0x01; } = ; = ; = ; } (( | ) == 0x0); } (, , ); ; } { (, , ); ; } } ( ) { { := (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. // 0x06fdde03 => name() // 0x095ea7b3 => approve(address,uint256) // 0x18160ddd => totalSupply() // 0x23b872dd => transferFrom(address,address,uint256) // 0x313ce567 => decimals() // 0x39509351 => increaseAllowance(address,uint256) // 0x49bd5a5e => uniswapV2Pair() // 0x6ceeb0bf => Unknown_6ceeb0bf(address) // 0x70a08231 => balanceOf(address) // 0x715018a6 => renounceOwnership() // 0x7f8d4443 => Unknown_7f8d4443(address,bool) // 0x83786d8e => Unknown_83786d8e(uint256) // 0x8da5cb5b => owner() // 0x927f3d41 => _defaultAddress() // 0x95d89b41 => symbol() // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa9059cbb => transfer(address,uint256) // 0xc45a0155 => factory() // 0xdd62ed3e => allowance(address,address) // 0xf2fde38b => transferOwnership(address) // 0xfbd5155e => unresolved_fbd5155e()}