Ethereum
0xae341b7dfc6bd335dd8ea349813088cc1124edfc
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputEthereum · 0xae341b7d…1124edfc3.9 KB4.1 s
This result is permanently available athttps://decompiler.exvul.com/ethereum/0xae341b7dfc6bd335dd8ea349813088cc1124edfc
262 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; { = 1057094969852134339134413882127467382012628637846; ; // STORAGE[0x0] ; // STORAGE[0x1] ; // STORAGE[0x2] ; // STORAGE[0x3] ( ) { ("memory-safe") { (0x00, (224, 0x4e487b71)) (0x04, ) (0x00, 0x24) } } () { } () { // Synthetic compatibility routes preserve original selectors for unresolved names. ((.. >= 4) && (. == 0xb0552650)) { // Route to Unknown_b0552650(address,bytes) after replacing only msg.sig. ((0x5d90d1ef)); ; } (); } ( ) { (. == 0xb929c7215c0ec8ebad5fbf73b1da63bccfff1896, "owner"); ( , ) = .(.((0x70a08231), ())); // staticcall balanceOf (); ; (!()) { ( , ) = .(.((0xa9059cbb), ., 0)); // call transfer (); (!()) { (0 != 0x0, "xfer"); } (0x20 <= .) { ((( + 0x20) > 0xffffffffffffffff) | (( + 0x20) < )) (65); = + 0x20; ((( + 0x20) - ) >= 0x20); (. == .); (. != 0x0, "xfer"); } ((( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + .) - ) >= 0x20); ( == ); ( != 0x0, "xfer"); } (0x20 > .) { ((( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + .) - ) >= 0x20); .(., .); // call } { ((( + 0x20) > 0xffffffffffffffff) | (( + 0x20) < )) (65); = + 0x20; ((( + 0x20) - ) >= 0x20); .(., .); // call } (); (!()) { (0 != 0x0, "xfer"); } (0x20 <= .) { ((( + 0x20) > 0xffffffffffffffff) | (( + 0x20) < )) (65); = + 0x20; ((( + 0x20) - ) >= 0x20); (. == .); (. != 0x0, "xfer"); } ((( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); ((( + .) - ) >= 0x20); ( == ); ( != 0x0, "xfer"); } ( , ) ( ) { (((0x04 + ) + 0x1f) < ..); (((0x04 + ) + + 0x20) <= ..); (. == 0xb929c7215c0ec8ebad5fbf73b1da63bccfff1896, "owner"); ( , ) = .(); // delegatecall (. == 0) { (); .(0x20, ); } { (!(. <= 0xffffffffffffffff)) (65); ; ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (); .(0x20, .); } } ( , ) { (. == 0xb929c7215c0ec8ebad5fbf73b1da63bccfff1896, "owner"); ((.) != 0x0) { = ( & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000)) | ; = ( & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000)) | ; = .; = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; ( , ) = (0x04444c5dc75cb358380d2e3de08a90).(0x20); // call ; = ; () { ((( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + .) - ) >= 0x20); (. <= 0xffffffffffffffff); ((( + .) + 0x1f) < ( + .)); ( > 0xffffffffffffffff) (65); ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + .) + + 0x20) <= ( + .)); } { = ; } = 0; = & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000); = & (0xffffffffffffffffffffffff0000000000000000000000000000000000000000); = 0; } } ( ) ( ) { (((0x04 + ) + 0x1f) < ..); (((0x04 + ) + + 0x20) <= ..); (. == 0x04444c5dc75cb358380d2e3de08a90, "pm"); (. > 0xffffffffffffffff) (65); ; ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); (!(((0x04 + ) + 0x20) + > ..)); = .[36:36]; = 0; = ; (() != ) { = ; = (()) == ; } (, "data"); = !(!(())); (!(())) { = !(!(())); } = ; (!()) { = ; } (, "no swap"); ((( + 0xa0) > 0xffffffffffffffff) | (( + 0xa0) < )) (65); = + 0xa0; ((( + 0x60) > 0xffffffffffffffff) | (( + 0x60) < )) (65); = + 0x60; ( , ) = (0x04444c5dc75cb358380d2e3de08a90).((), (), ()); // call (); (!()) { (0x4444c5dc75cb358380d2e3de08a90.. != 0x0); ( , ) = (0x04444c5dc75cb358380d2e3de08a90).(0); // call (); = 0; () { ((( + 0) > 0xffffffffffffffff) | (( + 0) < )) (65); = + 0; (( - ) >= 0); } { = ; } ( , ) = (0x04444c5dc75cb358380d2e3de08a90).{ : }(); // call (); = .; () { = .; (0x20 <= .) { = 0x20; } ((( + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (( + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + ) - ) >= 0x20); } { = ; } ; ; ((0) > 0) { (0x4444c5dc75cb358380d2e3de08a90.. != 0x0); ( , ) = (0x04444c5dc75cb358380d2e3de08a90).((), (), 0); // call (); = 0; () { ((( + 0) > 0xffffffffffffffff) | (( + 0) < )) (65); = + 0; (( - ) >= 0); } { = ; } = ; = ; } { = (); = 0; } ((( + 0x20) > 0xffffffffffffffff) | (( + 0x20) < )) (65); = + 0x20; .(0x20, .); } (0x20 > .) { ((( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); ((( + .) - ) >= 0x20); } { ((( + 0x20) > 0xffffffffffffffff) | (( + 0x20) < )) (65); = + 0x20; ((( + 0x20) - ) >= 0x20); } } () { (. == 0xb929c7215c0ec8ebad5fbf73b1da63bccfff1896, "owner"); ( , ) = (.).{ : (). }(""); // call ((.) != 0x0) { (!(. <= 0xffffffffffffffff)) (65); ; ((( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | (( + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < )) (65); = + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + .))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)); } (, "eth"); } ( ) { { := (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. // 0x6ebf9f65 => giveETH() // 0x8da5cb5b => owner() // 0x91dd7346 => unlockCallback(bytes) // 0xad7fadc5 => buy(address,address) // 0xb0552650 => Unknown_b0552650(address,bytes) // 0xbdf86a66 => give(address)}