Ethereum
0xf91fbd15b5c8da6079ef5cba6d7a8da1b1d1e2bc
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputEthereum · 0xf91fbd15…b1d1e2bc9.8 KB8.1 s
This result is permanently available athttps://decompiler.exvul.com/ethereum/0xf91fbd15b5c8da6079ef5cba6d7a8da1b1d1e2bc
401 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: generated symbolic output exceeded safe postprocessing limits for 1 of 11 entry points; ABI and selector evidence were preserved but those Solidity bodies were omitted: a9967a5b// SPDX-License-Identifier: MIT >=0.8.0; { = 0x1E0447b19BB6EcFdAe1e4AE1694b0C3659614e4e; = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; ; // STORAGE[0x0] bytes 0 to 19 ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0x35482f96)) { // Route to Unknown_35482f96(uint256,bytes) after replacing only msg.sig. ((0x7d59a27e)); ; } ((.. >= 4) && (. == 0x629eeb13)) { // Route to Unknown_629eeb13(address) after replacing only msg.sig. ((0xcc23144d)); ; } ((.. >= 4) && (. == 0x7faa64c8)) { // Route to Unknown_7faa64c8() after replacing only msg.sig. ((0x3ae3dee1)); ; } ((.. >= 4) && (. == 0x8b418713)) { // Route to Unknown_8b418713(address,bytes) after replacing only msg.sig. ((0x448f759a)); ; } ((.. >= 4) && (. == 0xa9967a5b)) { // Route to Unknown_a9967a5b(uint256,bytes,bool) after replacing only msg.sig. ((0xe6fa7a2e)); ; } } ( , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40)); (!(. > 0xffffffffffffffff)); (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04))); (!(. > 0xffffffffffffffff)); (!(((0x04 + ) + 0x20) + (. * 0x01) > (0x04 + (.. - 0x04)))); (. == , "Not owner"); (().. != 0x0); ( , ) = ().(, ((0x04 + ) + 0x60) - (0x04 + ), (0)); // call (); } ( ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (. == , "Not owner"); ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); ; = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); = .(, ()); (.. != 0x0); ( , ) = .(.((0xa9059cbb), , ())); // call transfer (); } ([] ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20)); (!(. > 0xffffffffffffffff)); (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04))); (!(. > 0xffffffffffffffff)); (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04)))); (. == , "Not owner"); = 0; () { ( >= .) { ; } (0x20 * + ((0x04 + ) + 0x20) + 0x20 - (0x20 * + ((0x04 + ) + 0x20)) >= 0x20); ( , ) = [].(()); // staticcall (); ; = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); = .(, ()); (!( < .)) (50); (0x20 * + ((0x04 + ) + 0x20) + 0x20 - (0x20 * + ((0x04 + ) + 0x20)) >= 0x20); ([].. != 0x0); ( , ) = [].(, ()); // call (); = 0x01 + ; } ((). > 0) { ( , ) = .{ : !(). * 0x08fc, : (). }(""); // call (); } } () { (. == , "Not owner"); ( , ) = .{ : !(). * 0x08fc, : (). }(""); // call (); } ( , ) { (!(((0x04 + (.. - 0x04)) - 0x04) < 0x80)); (!(((0x04 + (.. - 0x04)) - 0x24) < 0x40)); (!(. > 0xffffffffffffffff)); (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04))); (!(. > 0xffffffffffffffff)); (!(((0x04 + ) + 0x20) + (. * 0x01) > (0x04 + (.. - 0x04)))); ( == (), "."); (. == (0x1e0447b19bb6ecfdae1e4ae1694b0c3659614e4e), ".."); (((0x04 + ) + 0x20) + - ((0x04 + ) + 0x20) >= 0x20); (!(.[((0x04 + ) + 0x20) + 0] > 0xffffffffffffffff)); (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0]) + 0x1f < (((0x04 + ) + 0x20) + )); (!(.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0])] <= 0xffffffffffffffff)) (65); ( + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff || + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) < ) (65); = + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0]) + 0x20) + .[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0])] * 0x20 <= (((0x04 + ) + 0x20) + )); = (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0])) + 0x20; = (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0]) + 0x20) + (.[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0])] * 0x20); = + 0x20; = ; = (((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0])) + 0x20; = .[((0x04 + ) + 0x20) + (.[((0x04 + ) + 0x20) + 0])]; = ((0x04 + ) + 0x20) + ; () { ( >= ) { ; } (!(.[] > 0xffffffffffffffff)); ( - ( + .[]) >= 0x60); ( + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff || + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) < ) (65); ( == ); (!(.[( + .[]) + 0x40] > 0xffffffffffffffff)); ( + 0x1f < ); (!( <= 0xffffffffffffffff)) (65); ( + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff || + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) < ) (65); = + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ( + <= ); (( + 0x20) >= ) { ; } (!(.[ + 0x20] > 0xffffffffffffffff)); ( - ( + .[]) >= 0x60); ( + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff || + ( + 0x1f & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) < ) (65); = + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ( == ); (!(.[( + .[]) + 0x40] > 0xffffffffffffffff)); ( + 0x1f < ); (!( <= 0xffffffffffffffff)) (65); ((( + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ( + <= ); = + 0x20; = ; = + 0x20; = ; = ; = ; = ; ( , ) = (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).(()); // staticcall (); (( + .) - >= 0x20); = .(, ()); ; ( == ); ((0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).. != 0x0); ( , ) = (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).(); // call (); ( > 0xffffffffffffffff) (65); = + (0x20 + (0x20 * )); = ; ( != 0x0) { = (0x20 + ) + ( * 0x20); } = 0; () { = ; ( >= ) { ; } ( == 0x1) { ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); = .(, ()); ( == ); (!( < .)) (50); } ((0x01 + ) >= ) { ; } ( == 0x1) { ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); ( == ); (!((0x01 + ) < .)) (50); } = 0x01 + (0x01 + ); = 0x01 + ; } = 0; () { = ; ( >= ) { ; } ( != 0x1) { ( , ) = ().{ : }(""); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } } { (!( < .)) (50); ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); (( + .) - >= 0x20); ( == ); ( , ) = ().((), ()); // staticcall (); (( + .) - >= 0x20); = .(, ()); ( == ); (!( == 0)) { (().. != 0x0); ( , ) = .(.((0x095ea7b3), (), 0)); // call approve (); } (().. != 0x0); ; ( , ) = .(.((0x095ea7b3), (), ( - ))); // call approve (); } ((0x01 + ) >= ) { ; } ( != 0x1) { ( , ) = ().{ : }(""); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } } { (!((0x01 + ) < .)) (50); ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); (( + .) - >= 0x20); ( == ); ( , ) = ().((), ()); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (( + .) - >= 0x20); = .(, ()); ( == ); (!( == 0)) { (().. != 0x0); ( , ) = .(.((0x095ea7b3), (), 0)); // call approve (); } (().. != 0x0); ( , ) = .(.((0x095ea7b3), (), ( - ))); // call approve (); } = 0x01 + (0x01 + ); = 0x01 + ; } ((). > 0) { ((0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).. != 0x0); ( , ) = (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).{ : (). }(); // call (); } ( , ) = (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).(()); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); = .(, ()); ( == ); ((0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).. != 0x0); ( , ) = (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).(); // call (); ( > 0xffffffffffffffff) (65); = + (0x20 + (0x20 * )); = ; () { = (0x20 + ) + ( * 0x20); } = 0; () { ( >= ) { ; } (!( < )) (50); ( == 0x1) { (!( < )) (50); ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); = .(, ()); ( == ); (!( < .)) (50); } = 0x01 + ; } = 0; () { ( >= ) { ; } (!( < )) (50); ( != 0x1) { ( , ) = ().{ : }(""); // call = 0x60; (. != 0) { = + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); = ; } } { (!( < .)) (50); ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); = .(, ()); ( == ); ( , ) = ().((), ()); // staticcall (); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!((( + .) - ) < 0x20)); = .(, ()); ( == ); (!( == 0)) { (().. != 0x0); ( , ) = .(.((0x095ea7b3), (), 0)); // call approve (); } (().. != 0x0); ( , ) = .(.((0x095ea7b3), (), ( - ))); // call approve (); } = 0x01 + ; } ((). > 0) { ((0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).. != 0x0); ( , ) = (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).{ : (). }(); // call (); } } } ( , , ) { // Function body omitted: symbolic output exceeded safe complexity limits. { (0, 0) } } ( ) { { := (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. // 0x1b1fe68a => SOLO_MARGIN() // 0x35482f96 => Unknown_35482f96(uint256,bytes) // 0x629eeb13 => Unknown_629eeb13(address) // 0x6568a279 => withdrawAll(address[]) // 0x7faa64c8 => Unknown_7faa64c8() // 0x8b418713 => Unknown_8b418713(address,bytes) // 0x8da5cb5b => owner() // 0xa9967a5b => Unknown_a9967a5b(uint256,bytes,bool) // 0xad5c4648 => WETH()}