BNB Chain
0xa546772fb54ccbb535a705d34180bb76f373e9d7
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0xa546772f…f373e9d720.1 KB178.1 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0xa546772fb54ccbb535a705d34180bb76f373e9d7
553 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 11 of 13 entry points (170000 ms contract budget): 024181a6, 13a1a562, 1b11d0ff, 23a69e75, 2c8958f6, 31f57072, 9a76943e, a1d48336, a60b0d3c, e9cbafb0, fa461e33// SPDX-License-Identifier: MIT >=0.8.0; { ( , , ) ; ( ) ;} { ( => ) ; // STORAGE[0xb71f7fb7caa48a271ec75eec790c271d6fde5a501a28c711a0237b673a8759a1] ; ; ; ; (); (); (); (); (); (); ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0xfa461e33)) { // Route to Unknown_fa461e33(uint256,uint256,uint256[]) after replacing only msg.sig. ((0x5e9cef99)); ; } (); } ( , , [] ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x60) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { (.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8) { (!((.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8) == 0x06)) { (0x09 == (.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8), ()); (0x01 == (([0] >> 0x60) < (.[((0x04 + ) + 0x20) + 0x14] >> 0x60))) { } { } = 0; = 0x60; } } } } } } } } } ( , , ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x60) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { (.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8) { (!((.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8) == 0x06)) { (0x09 == (.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8), ()); (0x01 == ((.[(0x04 + ) + 0x20] >> 0x60) < (.[((0x04 + ) + 0x20) + 0x14] >> 0x60))) { } { } = 0; = 0x60; } } } } } } } } } ( ) ( ) { (((0x04 + ) + 0x1f) < ..); (((0x04 + ) + + 0x20) <= ..); (. == 0x238a358808379702088667322f80ac48bad5e6c4, ()); = ( + 0x20) >> 0x60; = (( + 0x20) + 0x14) >> 0x60; (!((( + 0x20) + 0x5f) >> 0xf8)) { = (( + 0x20) + 0x14) >> 0x60; = ( + 0x20) >> 0x60; } (0x01 == ((( + 0x20) + 0x5f) >> 0xf8)) { } { } ( , ) = (0xa0ffb9c1ce1fe56963b0321b32e7a0302114058b).(( + 0x20) >> 0x60, (( + 0x20) + 0x14) >> 0x60, (( + 0x20) + 0x28) >> 0x60); // call (); = 0; = >> 0x80; (((( + 0x20) + 0x5f) >> 0xf8) != 0x0) { = ; = (); } (0x01 != !) { ( , ) = (0x238a358808379702088667322f80ac48bad5e6c4).(); // call (); = 0; = 0; ( != 0x0) { = 0xa9059cbb00000000000000000000000000000000000000000000000000000000; ( , ) = .(.((0xa9059cbb), 0x238a358808379702088667322f80ac48bad5e6c4, (( + 0x20) + 0x60))); // call transfer (); (!((!(. < 0x20)) & (!( == 0x01))), ()); ( , ) = (0x238a358808379702088667322f80ac48bad5e6c4).(); // call (); } { = != 0x0; = ( + 0x20) + 0x60; } ( , ) = (0x238a358808379702088667322f80ac48bad5e6c4).(, (( + 0x20) + 0x80) >> 0x60, ); // call (); .(0x20, 0); } ( , ) = (0x238a358808379702088667322f80ac48bad5e6c4).{ : (( + 0x20) + 0x60) }(); // call (); = 0; = 0; ( != 0x0) { = 0xa9059cbb00000000000000000000000000000000000000000000000000000000; ( , ) = .(.((0xa9059cbb), 0x238a358808379702088667322f80ac48bad5e6c4, (( + 0x20) + 0x60))); // call transfer (); (!((!(. < 0x20)) & (!( == 0x01))), ()); ( , ) = (0x238a358808379702088667322f80ac48bad5e6c4).(); // call (); } { = != 0x0; = ( + 0x20) + 0x60; } ( , ) = (0x238a358808379702088667322f80ac48bad5e6c4).(, (( + 0x20) + 0x80) >> 0x60, ); // call (); .(0x20, 0); } ( , , ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x60) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { ((.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8) == 0x05, ()); (0x01 == ((.[(0x04 + ) + 0x20] >> 0x60) < (.[((0x04 + ) + 0x20) + 0x14] >> 0x60))) { } { } = 0; = 0x60; = (0x04 + ) + 0x20; = 0x40; } } } } } } } ( , , ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x60) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { (0x01 == ((( + 0x20) >> 0x60) < ((( + 0x20) + 0x14) >> 0x60))) { } { } = 0; = 0x60; } } } } } } } ( , , ) { ((!((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + ..) < 0x60)) && (( == ( & 0xff)) && ((!(. > 0xffffffffffffffff)) && ((((0x04 + ) + 0x1f) < ..) && ((!(. > 0xffffffffffffffff)) && (!(((0x04 + ) + + 0x20) > ..))))))) { (, ()); = 0; (() > 0xffffffffffffffff) (65); ; ((( + (((0x20 + (() << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (() << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + (() << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (() > 0xffffffffffffffff) (65); (() > 0xffffffffffffffff) (65); ((( + (((0x20 + (() << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (() << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + (() << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (() > 0xffffffffffffffff) (65); ((!(0 < (()))) && (0x0 < ( & 0xff))) { (!(0 < )) (50); } } } ( ) ( ) { (((0x04 + ) + 0x1f) < ..); (((0x04 + ) + + 0x20) <= ..); = ; (. == , ()); = ( + 0x20) >> 0x60; = (( + 0x20) + 0x14) >> 0x60; (!((( + 0x20) + 0x42) >> 0xf8)) { = (( + 0x20) + 0x14) >> 0x60; = ( + 0x20) >> 0x60; } (0x01 == ((( + 0x20) + 0x42) >> 0xf8)) { } { } = ; ( , ) = ().(( + 0x20) >> 0x60, (( + 0x20) + 0x14) >> 0x60, (( + 0x20) + 0x28) >> 0xe8); // call (); = 0; = >> 0x80; (((( + 0x20) + 0x42) >> 0xf8) != 0x0) { = ; = (); } (0x01 != !) { = ; = ; ().(); = 0; = 0; ( != 0x0) { = ; ( , ) = .(.((0xa9059cbb), , (( + 0x20) + 0x43))); // call transfer (); (!((!(. < 0x20)) & (!( == 0x01))), ()); = ; ( , ) = ().(); // call (); } { = != 0x0; = ( + 0x20) + 0x43; } = ; ().(, (( + 0x20) + 0x63) >> 0x60, ); .(0x20, 0); } = ; ( , ) = ().{ : (( + 0x20) + 0x43) }(); // call (); = 0; = 0; ( != 0x0) { = ; ( , ) = .(.((0xa9059cbb), , (( + 0x20) + 0x43))); // call transfer (); (!((!(. < 0x20)) & (!( == 0x01))), ()); = ; ( , ) = ().(); // call (); } { = != 0x0; = ( + 0x20) + 0x43; } = ; ().(, (( + 0x20) + 0x63) >> 0x60, ); .(0x20, 0); } ( , ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x40) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..); (((0x04 + ) + + 0x20) <= ..); = ; (. == ) { (!(0x20 > .)) { = ; ; = (( + ((.[((0x04 + ) + 0x20) + 0x20] >> 0xf3) & (0x1fe0))) + ((.[((0x04 + ) + 0x20) + 0x20] >> 0xf3) & (0x1fe0))) + 0x40; (0 < ((.[((0x04 + ) + 0x20) + 0x20] >> 0xf8))) { (!(0 < .)) (50); } { = ; = 0x095ea7b3000000000000000000000000; ( , ) = (.[(0x04 + ) + 0x20] >> 0x60).(, ); // call (! | ((!(. < 0x20)) & (!( == 0x01)))) { = 0x095ea7b3000000000000000000000000; (.[(0x04 + ) + 0x20] >> 0x60).(, 0); // call ( , ) = (.[(0x04 + ) + 0x20] >> 0x60).(, ); // call (); (!((!(. < 0x20)) & (!( == 0x01))), ()); } } } } } } } } ( , , ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x60) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { ((.[((0x04 + ) + 0x20) + 0x2b] >> 0xf8) == 0x05, ()); (0x01 == ((.[(0x04 + ) + 0x20] >> 0x60) < (.[((0x04 + ) + 0x20) + 0x14] >> 0x60))) { } { } = 0; = 0x60; = (0x04 + ) + 0x20; = 0x40; } } } } } } } ( , , ) { (!(.)) { ((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x60) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { (0x01 == ((( + 0x20) >> 0x60) < ((( + 0x20) + 0x14) >> 0x60))) { } { } = 0; = 0x60; } } } } } } } ( , , , , ) () { (!(.)) { ((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + ..) >= 0xa0) { ( == ) { ( == ) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..); = 0; (. == (()), ()); (() == ) { ; = (( + ((( + 0x20) >> 0xf3) & (0x1fe0))) + ((( + 0x20) >> 0xf3) & (0x1fe0))) + 0x40; (0 < ((( + 0x20) >> 0xf8))) { (!(0 < .)) (50); } { = (); = 0x095ea7b3000000000000000000000000; ( , ) = .(.((0x095ea7b3), , ( + ))); // call approve (! | ((!(. < 0x20)) & (!( == 0x01)))) { = 0x095ea7b3000000000000000000000000; .(, 0); // call ( , ) = .(.((0x095ea7b3), , ( + ))); // call approve (); (!((!(. < 0x20)) & (!( == 0x01))), ()); } { } 0x01; } } } } } } } } } } ( , ) { (!(.) && !((.. + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) < 0x40) && !(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..); (((0x04 + ) + + 0x20) <= ..); ((. == 0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c) && (!(0x20 > .))) { ; = (( + (((( + 0x20) + 0x20) >> 0xf3) & (0x1fe0))) + (((( + 0x20) + 0x20) >> 0xf3) & (0x1fe0))) + 0x40; (0 >= ((( + 0x20) + 0x20) >> 0xf8)) { = 0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c; = 0x095ea7b3000000000000000000000000; ( , ) = (.[(0x04 + ) + 0x20] >> 0x60).(, ); // call (! | ((!(. < 0x20)) & (!( == 0x01)))) { = 0x095ea7b3000000000000000000000000; (.[(0x04 + ) + 0x20] >> 0x60).(, 0); // call ( , ) = (.[(0x04 + ) + 0x20] >> 0x60).(, ); // call (); (!((!(. < 0x20)) & (!( == 0x01))), ()); } } (!(0 < .)) (50); } } } ( , , , , , ) { ((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + ..) >= 0xc0) { ( == ) { ( == ) { ( == ) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + 0x1f) < ..) { (!(. > 0xffffffffffffffff)) { (((0x04 + ) + + 0x20) <= ..) { = !(!([.])); (. != (0x21b7d28b882772a1cfe633daee6f42ebb95dec4e)) { } { = . == (0x21b7d28b882772a1cfe633daee6f42ebb95dec4e); } () { ([]) { ( == 0) { = ; = ; (!(0x01 > .)); (!( > )); ; ((( + 0x0120) > 0xffffffffffffffff) | (( + 0x0120) < )) (65); = + 0x0120; = 0x6a; ((.[(0x01 + ((0x04 + ) + 0x20)) + 0x55] >> 0xf8) != 0x0) { } { = 0x56; } (!(.[(0x01 + ((0x04 + ) + 0x20)) + ] >> 0xf8)) { (!(0x0b > )) (33); (!(0x0b > )) (33); ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) > 0xffffffffffffffff) (65); ((( + (((0x20 + ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) > 0xffffffffffffffff) (65); ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) > 0xffffffffffffffff) (65); ((( + (((0x20 + ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8) > 0xffffffffffffffff) (65); = .[4:4]; (!(0 < ((.[((0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)) + 0x20] >> 0xf8)))) { = 0; = 0; = (.[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)] - (.[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)])) < ; (!(.[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)] > (.[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)]))) { = .[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)]; = .[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)]; = !(.[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)] > (.[(0x01 + ((0x04 + ) + 0x20)) + ( + 0x01)])); } () { (0 == (!(!())), ()); ( , ) = (0x21b7d28b882772a1cfe633daee6f42ebb95dec4e).(); // staticcall (); = 0; = .; () { = .; (0x40 <= .) { = 0x40; } ((( + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + ) - ) >= 0x40); } { = ; = 0; } ( , ) = (0x21b7d28b882772a1cfe633daee6f42ebb95dec4e).(); // call (); (0x20 <= .) { ((( + 0x20) > 0xffffffffffffffff) | (( + 0x20) < )) (65); = + 0x20; (!((( + 0x20) - ) < 0x20)); } ((( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); (!((( + .) - ) < 0x20)); } } } } } } } } } } } } } } } } } } } ( ) { { := (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. // 0x024181a6 => atlasSolverCall(address,address,address,uint256,bytes,bytes) // 0x13a1a562 => onMoolahFlashLoan(uint256,bytes) // 0x1b11d0ff => executeOperation(address,uint256,uint256,address,bytes) // 0x23a69e75 => pancakeV3SwapCallback(int256,int256,bytes) // 0x2c8958f6 => algebraSwapCallback(int256,int256,bytes) // 0x31f57072 => onMorphoFlashLoan(uint256,bytes) // 0x91dd7346 => unlockCallback(bytes) // 0x9a76943e => execute(uint256,uint8,bytes) // 0xa1d48336 => pancakeV3FlashCallback(uint256,uint256,bytes) // 0xa60b0d3c => algebraFlashCallback(uint256,uint256,bytes) // 0xab6291fe => lockAcquired(bytes) // 0xe9cbafb0 => uniswapV3FlashCallback(uint256,uint256,bytes) // 0xfa461e33 => Unknown_fa461e33(uint256,uint256,bytes)}