BNB Chain
0x97d62f3d00d3134c0f8f3e73775c580aa3707777
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0x97d62f3d…a37077776.3 KB3.6 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0x97d62f3d00d3134c0f8f3e73775c580aa3707777
548 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] bytes 0 to 19 ; // STORAGE[0x1] bytes 20 to 20 ( => ) ; // STORAGE[0x2] ( => ) ; // STORAGE[0x3] ( => ) ; // STORAGE[0x4] ( => ) ; // STORAGE[0x5] ( => ) ; // STORAGE[0x6] ; // STORAGE[0x7] ; // STORAGE[0x8] ; // STORAGE[0x9] ( => ) ; // STORAGE[0xa] ( => ( => )) ; // STORAGE[0xb] ; // STORAGE[0xc] ; // STORAGE[0xd] ; // STORAGE[0xe] ( , , ); ( , , ); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { (. == , "Ownable: caller is not the owner"); ; } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x7c30d4ae)) { // Route to Unknown_7c30d4ae(bytes,bool) after replacing only msg.sig. ((0x5a56615d)); ; } ((.. >= 4) && (. == 0x7fe991c1)) { // Route to Unknown_7fe991c1(bool) after replacing only msg.sig. ((0xb6a56822)); ; } ((.. >= 4) && (. == 0x9cfddb15)) { // Route to Unknown_9cfddb15(address) after replacing only msg.sig. ((0x738aa930)); ; } ((.. >= 4) && (. == 0xaaeccdcf)) { // Route to Unknown_aaeccdcf(address,uint256) after replacing only msg.sig. ((0x96464df4)); ; } ((.. >= 4) && (. == 0xbd84a8ad)) { // Route to Unknown_bd84a8ad(bytes,bool) after replacing only msg.sig. ((0x5db29605)); ; } ((.. >= 4) && (. == 0xbf29c958)) { // Route to Unknown_bf29c958(uint256) after replacing only msg.sig. ((0x2e62f85d)); ; } ((.. >= 4) && (. == 0xc1bfccbf)) { // Route to Unknown_c1bfccbf(bytes,uint256) after replacing only msg.sig. ((0xbd6d94b6)); ; } ((.. >= 4) && (. == 0xf2aaf59e)) { // Route to Unknown_f2aaf59e(bytes,bool) after replacing only msg.sig. ((0x71b35524)); ; } (); } () ( ) { ; } ( , ) () { (. != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [.][] = ; (., , [.][]); ; } ( , , ) () { (, ., ); (, , ); ; } ( , ) () { (. != (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)); = 0; = 0x04 + ; = ..; () { ( >= ) { ; } (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff)); = 0x20 + ; = ; = 0x20 + ; = ; = ; = ; = ; (. == , "Ownable: caller is not the owner"); (0x1 == ) { (!(0 < )) (50); ([()] != ); } = 0; () { (!( < .)) { ; } (!( < )) (50); [()] = ; = 0x01 + ; } ; } } ( ) () { ( != ); = ; ; } () ( ) { ; } ( ) () { ( != ); = ; ; } ( , ) () { (!([.][] < ), "ERC20: decreased allowance below zero"); (. != (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"); (!([.] < ), "ERC20: transfer amount exceeds balance"); (((![.]) && (![])) && ( > 0x5)) { (![.], "b"); (![], "b"); (![.], "b"); (![.], "b"); = [.] < ( - 0x0b); (!([.] < ( - 0x0b))) { = . < ( + [.]); } (, "g"); () { ().(., ( + 0x02)); } = == ; ( == ) { = [.]; } (!); (. == ) { ( , ) = .(); // staticcall (); ; = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); (() == (), "nnn"); ().(); ( , ) = .(); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); = ().(); ( > (()), "Library: INSUFFICIENT_INPUT_AMOUNT"); ( - (()) <= , "ds-math-sub-underflow"); (( - (())) > 0, "PancakeLibrary: INSUFFICIENT_INPUT_AMOUNT"); = 0; = 0x26f7 * ( - (())); ((0x26f7 == 0x0 || 0x26f7 * ( - (())) / 0x26f7 == ( - (()))), "ds-math-mul-overflow"); = 0; (() != 0x0) { = (()) * ; } (() == 0x0 || (()) * / (()) == , "ds-math-mul-overflow"); = 0; = 0x2710 * (()); ((0x2710 == 0x0 || 0x2710 * (()) / 0x2710 == (())), "ds-math-mul-overflow"); ( + >= , "ds-math-add-overflow"); (!( > ( / ( + ))), "xxxxxxxx"); } } = () ? 1 : 0; () { = (!( == )) ? 1 : 0; } = ; ( != 0x0) { = (!([])) ? 1 : 0; } = ; ( != 0x0) { = (!([])) ? 1 : 0; } (!( == 0x0)) { [] = (0x01 + (( + 0x01) + 0x6c)) - 0x79; ([.]) { [] = (( + 0x02) + 0x6c) - 0x79; } (0x0 == []) { [] = + (((. + 0x02) + 0x6c) - 0x7a); } } [.] = [.] - ; [] = + []; (., , ); ; } ( , ) { [] = ( * []) / 0x3b9aca00; } ( , ) () { (. > 0xffffffffffffffff) (65); ; ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..)); = + 0x20; = ; = (0x04 + ) + 0x20; = 0x20 + ((0x04 + ) + (. << 0x05)); = 0; = 0x04 + ; = ..; () { ( >= ) { ; } (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff)); = 0x20 + ; = ; = 0x20 + ; = ; = ; = ; = ; (. == , "Ownable: caller is not the owner"); (0x1 == ) { (!(0 < )) (50); ([()] != ); } = 0; () { (!( < .)) { ; } (!( < )) (50); [()] = ; = 0x01 + ; } ; } } ( ) () { ( != ); = () ? 1 : 0; ; } ( , ) () { (. > 0xffffffffffffffff) (65); ; ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..)); = + 0x20; = ; = (0x04 + ) + 0x20; = 0x20 + ((0x04 + ) + (. << 0x05)); = 0; = 0x04 + ; = ..; () { ( >= ) { ; } (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff)); = 0x20 + ; = ; = 0x20 + ; = ; = ; = ; = ; (. == , "Ownable: caller is not the owner"); (0x1 == ) { (!(0 < )) (50); ([()] != ); } = 0; () { (!( < .)) { ; } (!( < )) (50); [()] = ; = 0x01 + ; } ; } } ( , ) () { (. > 0xffffffffffffffff) (65); ; ((( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((. << 0x05) + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..)); = + 0x20; = ; = (0x04 + ) + 0x20; = 0x20 + ((0x04 + ) + (. << 0x05)); = 0; = 0x04 + ; = ..; () { ( >= ) { ; } (.[] == (.[] & 0xffffffffffffffffffffffffffffffffffffffff)); = 0x20 + ; = ; = 0x20 + ; = ; = ; = ; = ; (. == , "Ownable: caller is not the owner"); (0x1 == ) { (!(0 < )) (50); ([()] != ); } = 0; () { (!( < .)) { ; } (!( < )) (50); [()] = ; = 0x01 + ; } ; } } ( , , ) { // 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"); (, , ); [] = [] - ; [] = + []; (, , ); } ( , , ) { // Decompilation incomplete: helper effect provenance is conservative. (((![]) && (![])) && ( > 0x5)) { (![], "b"); (![], "b"); (![.], "b"); (![.], "b"); = [] < (( - 0x0b)); (!([] < (( - 0x0b)))) { = . < (( + [])); } (, "g"); () { ().(, ( + 0x02)); } = == ; ( == ) { = []; } (!); ( == ) { ( , ) = .(); // staticcall (); ; = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); (() == (), "nnn"); ().(); ( , ) = .(); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ( & 0xffffffffffffffffffffffffffffffffffffffff)); = ().(); ( > (()), "Library: INSUFFICIENT_INPUT_AMOUNT"); ( - (()) <= , "ds-math-sub-underflow"); (( - (())) > 0, "PancakeLibrary: INSUFFICIENT_INPUT_AMOUNT"); = 0; = 0x26f7 * (( - (()))); ((0x26f7 == 0x0 || 0x26f7 * (( - (()))) / 0x26f7 == (( - (())))), "ds-math-mul-overflow"); = 0; (((())) != 0x0) { = ((())) * ; } ((((())) == 0x0 || ((())) * / ((())) == ), "ds-math-mul-overflow"); = 0; = 0x2710 * (()); ((0x2710 == 0x0 || 0x2710 * (()) / 0x2710 == (())), "ds-math-mul-overflow"); ( + >= , "ds-math-add-overflow"); (!( > (( / (( + ))))), "xxxxxxxx"); } } = () ? 1 : 0; () { = (!( == )) ? 1 : 0; } = ; ( != 0x0) { = (!([])) ? 1 : 0; } = ; ( != 0x0) { = (!([])) ? 1 : 0; } ( == 0x0) { ; } { [] = ((0x01 + ((( + 0x01) + 0x6c))) - 0x79); ([]) { [] = ((( + 0x02) + 0x6c) - 0x79); } (0x0 == []) { [] = ( + ((((. + 0x02) + 0x6c) - 0x7a))); } ; } } ( , , ) { (!([][] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) { (!([][] < ), "ERC20: insufficient allowance"); ( != (0), "ERC20: approve from the zero address"); ( != (0), "ERC20: approve to the zero address"); [][] = [][] - ; (, , [][]); } } ( ) { { := (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) // 0x70a08231 => balanceOf(address) // 0x7c30d4ae => Unknown_7c30d4ae(bytes,bool) // 0x7fe991c1 => Unknown_7fe991c1(bool) // 0x8da5cb5b => owner() // 0x95d89b41 => symbol() // 0x9cfddb15 => Unknown_9cfddb15(address) // 0xa457c2d7 => decreaseAllowance(address,uint256) // 0xa9059cbb => transfer(address,uint256) // 0xaaeccdcf => Unknown_aaeccdcf(address,uint256) // 0xb51449bb => _pair() // 0xb6fccf8a => LP() // 0xbd84a8ad => Unknown_bd84a8ad(bytes,bool) // 0xbf29c958 => Unknown_bf29c958(uint256) // 0xc1bfccbf => Unknown_c1bfccbf(bytes,uint256) // 0xdd62ed3e => allowance(address,address) // 0xf2aaf59e => Unknown_f2aaf59e(bytes,bool)}