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
Share
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()}