BNB Chain

0xe2ce6ab80874fa9fa2aae65d277dd6b8e65c9de0

Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.

Decompilation outputBNB Chain · 0xe2ce6ab8…e65c9de02.8 KB1.6 s
Share
286 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;  {     ; // STORAGE[0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc]     ; // STORAGE[0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103]         (, );     ( );     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }    ()   {         ;         = 0x80;         (.. == 0) {             (. != ) {                ( ,   ) = ().(); // delegatecall                ();                 ;            }  {                 ((.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xc9a6301a00000000000000000000000000000000000000000000000000000000) != 0x0) {                     ((.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xb0e10d7a00000000000000000000000000000000000000000000000000000000) != 0x0) {                         ((.[0] & 0xffffffff00000000000000000000000000000000000000000000000000000000 & 0xffffffff00000000000000000000000000000000000000000000000000000000 + 0x70d7c69000000000000000000000000000000000000000000000000000000000) == 0x0) {                            (!.);                            (!(0x04 > ..));                            (!(.. > ..));                            (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));                             (, );                            ( != (0), "ERC1967: new admin is the zero address");                             =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                             =  + 0x20;                            ;                        }   ((.[0] & 0xffffffff00000000000000000000000000000000000000000000000000000000 & 0xffffffff00000000000000000000000000000000000000000000000000000000 + 0x07ae5bc000000000000000000000000000000000000000000000000000000000) == 0x0) {                            (!.);                             ;                        }  {                            (!(.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xa39f25e500000000000000000000000000000000000000000000000000000000), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");                            (!.);                             = 0x40 + ;                             ();                        }                    }  {                        (!(0x04 > ..));                        (!(.. > ..));                        (.[0x04] == ((.[0x04])));                         (. > 0xffffffffffffffff) (65);                         ((( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < ) | (( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) (65);                         =  + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                        (!(((0x04 + ) +  + 0x20) > (0x04 + (.. - 0x04))));                        ((.[0x04] & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract");                         = ((.[0x04])) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                         ((.[0x04]));                         (0x1 != 0) {                             = 0x60 + ;                              = 0;                             () {                                  = ;                                 ( >= ) {                                    ;                                }                                 (0x20 +  >= ) {                                    ;                                }                                 = 0x20 + (0x20 + );                                 = 0x20 + ;                            }                            ( ,   ) = (.[0x04]).(); // delegatecall                              = 0x60;                             (. != 0) {                                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                 = ;                            }                             (!) {                                (!);                                  = 0;                                 () {                                     ( >= ) {                                        ;                                    }                                     (0x20 +  >= ) {                                        ;                                    }                                     = 0x20 + (0x20 + );                                    ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                                }                            }  {                                 (0x0 == ) {                                    (.[0x04].. != 0x0, "Address: call to non-contract");                                }                            }                        }                        ;                    }                }  {                    (!.);                    (0x04 <= ..);                    (.. <= ..);                    ((0x04 + 0) + (.. - 0x04) - (0x04 + 0) >= 0x20);                    (.[0x04 + 0] == ((.[0x04 + 0])));                     = 0x20 + ;                    ((.[0x04 + 0] & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract");                     = ((.[0x04 + 0])) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                     ((.[0x04 + 0]));                      = ( > 0) ? 1 : 0;                     ( <= 0) {                         = 0;                    }                     ( != 0x0) {                         = 0x60 + ;                          = 0;                         () {                             ( >= ) {                                ;                            }                             = 0x20 + ;                            ( ,   ) = (.[0x04 + 0]).(); // delegatecall                              = 0x60;                             (. != 0) {                                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                                 = ;                            }                             (!) {                                (!);                                  = 0;                                 () {                                     ( >= ) {                                        ;                                    }                                     = 0x20 + ;                                    ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                                }                            }  {                                 (0x0 == ) {                                    (.[0x04].. != 0x0, "Address: call to non-contract");                                }                            }                        }                    }                     =  + 0x20;                    ;                }            }        }         (. == ) {             (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xc9a6301a00000000000000000000000000000000000000000000000000000000 == 0) {                (!.);                (!(0x04 > ..));                (!(.. > ..));                (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));                 = 0x20 + ;                (( & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract");                 =  | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                 ();                 ( > 0x0) {                     = 0x60 + ;                      = 0;                     () {                          = ;                         ( >= ) {                            ;                        }                         (0x20 +  >= ) {                            ;                        }                         = 0x20 + (0x20 + );                         = 0x20 + ;                    }                    ( ,   ) = .(); // delegatecall                      = 0x60;                     (. != 0) {                         =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                         = ;                    }                     (!) {                        (!);                          = 0;                         () {                             ( >= ) {                                ;                            }                             (0x20 +  >= ) {                                ;                            }                             = 0x20 + (0x20 + );                            ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                        }                    }  {                         (0x0 == ) {                            (.. != 0x0, "Address: call to non-contract");                        }                    }                }                 =  + 0x20;                ;            }             (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xb0e10d7a00000000000000000000000000000000000000000000000000000000 == 0) {                (0x04 <= ..);                (.. <= ..);                (.[0x04 + 0] == ((.[0x04 + 0])));                (!(.[(0x04 + 0) + 0x20] > 0xffffffffffffffff));                (((0x04 + 0) + (.[(0x04 + 0) + 0x20]) + 0x1f) < ((0x04 + 0) + (.. - 0x04)));                 (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] > 0xffffffffffffffff) (65);                 ((( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < ) | (( + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) (65);                 =  + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])] + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (!(((0x04 + 0) + (.[(0x04 + 0) + 0x20]) + (.[(0x04 + 0) + (.[(0x04 + 0) + 0x20])]) + 0x20) > ((0x04 + 0) + (.. - 0x04))));                (((.[0x04 + 0]) & 0xffffffffffffffffffffffffffffffffffffffff).. != 0x0, "ERC1967: new implementation is not a contract");                 = ((.[0x04 + 0])) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & );                 ((.[0x04 + 0]));                  = ( > 0) ? 1 : 0;                 ( <= 0) {                     = 0x01;                }                 ( != 0x0) {                     = 0x60 + ;                      = 0;                     () {                          = ;                         ( >= ) {                            ;                        }                         (0x20 +  >= ) {                            ;                        }                         = 0x20 + (0x20 + );                         = 0x20 + ;                    }                    ( ,   ) = (.[0x04 + 0]).(); // delegatecall                      = 0x60;                     (. != 0) {                         =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                         = ;                    }                     (!) {                        (!);                          = 0;                         () {                             ( >= ) {                                ;                            }                             (0x20 +  >= ) {                                ;                            }                             = 0x20 + (0x20 + );                            ("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                        }                    }  {                         (0x0 == ) {                            ((.[0x04 + 0]).. != 0x0, "Address: call to non-contract");                        }                    }                }                ;            }             (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0x70d7c69000000000000000000000000000000000000000000000000000000000 == 0) {                (!.);                (0x04 <= ..);                (.. <= ..);                (0x04 + 0 + (.. - 0x04) - (0x04 + 0) >= 0x20);                (.[0x04 + 0] == ((.[0x04 + 0])));                 (, (.[0x04 + 0]));                ((.[0x04 + 0]) != 0x0, "ERC1967: new admin is the zero address");                 = (.[0x04 + 0]);                 =  + 0x20;                ;            }             (.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0x07ae5bc000000000000000000000000000000000000000000000000000000000 == 0) {                (!.);                 = 0x40 + ;                 ;            }            (!(.[0] & (0xffffffff00000000000000000000000000000000000000000000000000000000) & (0xffffffff00000000000000000000000000000000000000000000000000000000) + 0xa39f25e500000000000000000000000000000000000000000000000000000000), "TransparentUpgradeableProxy: admin cannot fallback to proxy target");            (!.);             ();        }        ( ,   ) = ().(); // delegatecall        ();         0x4e487b7100000000000000000000000000000000000000000000000000000000;    }    }