BNB Chain

0xb3bac1fd23bba04a64199fee22b21d132b720f2c

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

Decompilation outputBNB Chain · 0xb3bac1fd…2b720f2c12.9 KB11.6 s
Share
1,021 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;  {     ( )    ( );     ( ,  )   ( );}  {     ()    ( ,  ,  );}  {        = 59982529565474602786053471651654676140957756238362561887554810313527260672626;        = (0xb188526f94182873baf52abaf7656c49e2c70b9a);        = 18;        = 57005;        = 445871849533988182036309736462192083979662038182;        = (0xddb812c5b32eddaac4b483844859d954feff096);        = 0;        = 639002531771979466940299477152232070597554863328;        = 93607044848363402794244116661092631206634518530482369123436161345688078138743;        = (0x55d398326f99059ff775485246999027b3197955);        = (0x10ed43c718714eb63d5aa57b78b54704e256024e);        = 40368397740492514231869833713661771874802627165310775572604548191503390570144;        ( => )  ; // STORAGE[0x0]    ( => ( => ))  ; // STORAGE[0x1]      ; // STORAGE[0x2]     ; // STORAGE[0x3]     ; // STORAGE[0x4]    [] ; // STORAGE[0x5]    [] ; // STORAGE[0x6]    ( => )  ; // STORAGE[0x7]    ( => ( => ))  ; // STORAGE[0x9]      ; // STORAGE[0xa]      ; // STORAGE[0xb]      ; // STORAGE[0xc]      ; // STORAGE[0xd]      ; // STORAGE[0xe]     ; // STORAGE[0xf]      ; // STORAGE[0x10]      ; // STORAGE[0x11]      ; // STORAGE[0x12]     ; // STORAGE[0x13]     ;     ;     ;         (, );     ( ,  ,  );     ();     (, );     ( ,  , );     ();     ();     ( ,  ,  );     ( ,  , );     ();     (, , , );     (, , , );     ();     ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }    ()   {    }        ()  {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x04965850)) {            // Route to Unknown_04965850(uint256) after replacing only msg.sig.            ((0x5f147226));            ;        }         ((.. >= 4) && (. == 0x148592c1)) {            // Route to Unknown_148592c1() after replacing only msg.sig.            ((0x345e608e));            ;        }         ((.. >= 4) && (. == 0x3e8e7905)) {            // Route to Unknown_3e8e7905() after replacing only msg.sig.            ((0x20cff587));            ;        }         ((.. >= 4) && (. == 0x8ce5c9b2)) {            // Route to Unknown_8ce5c9b2(uint256) after replacing only msg.sig.            ((0xad98e3dd));            ;        }         ((.. >= 4) && (. == 0xc9d3648f)) {            // Route to Unknown_c9d3648f(bool) after replacing only msg.sig.            ((0x9a4e7088));            ;        }         ((.. >= 4) && (. == 0xd505accf)) {            // Route to Unknown_d505accf(address,address,uint256,uint256,bool,uint256,uint256) after replacing only msg.sig.            ((0xcd2d430f));            ;        }        ();    }             ( )    () {        ( == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000));          = 0x7965db0b00000000000000000000000000000000000000000000000000000000 == ( & 0xffffffff00000000000000000000000000000000000000000000000000000000);         (0x7965db0b00000000000000000000000000000000000000000000000000000000 != ( & 0xffffffff00000000000000000000000000000000000000000000000000000000)) {             = ( & 0xffffffff00000000000000000000000000000000000000000000000000000000) == 0x1ffc9a700000000000000000000000000000000000000000000000000000000;        }         ;    }         ( )  {         = ;         = .;        (([][.]) != 0x0, ());        ( <= 0x64, ());         = () ? 1 : 0;    }         ()    ( ) {         ;    }         ( ,  )   () {        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = ;         (., , [.][]);         ;    }         ( )  {         = ;         = .;        (([][.]) != 0x0, ());         =  / 0x015180;    }         ()  {         = ;         = .;        (([][.]) != 0x0, ());         ((. / 0x015180) > ) {             = . / 0x015180;              = ().(0x0ddb812c5b32eddaac4b483844859d954feff096);             ( > 0xd3c21bcecceda1000000) {                  =  / 0xc8;                 (( - ( / 0xc8)) < 0xd3c21bcecceda1000000) {                     =  - 0xd3c21bcecceda1000000;                }                ((0x0ddb812c5b32eddaac4b483844859d954feff096 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer from the zero address");                ((0xdead & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address");                (!([(0x0ddb812c5b32eddaac4b483844859d954feff096)] < ), "ERC20: transfer amount exceeds balance");                [(0x0ddb812c5b32eddaac4b483844859d954feff096)] = [(0x0ddb812c5b32eddaac4b483844859d954feff096)] - ;                [(0xdead)] =  + [(0xdead)];                 ((0x0ddb812c5b32eddaac4b483844859d954feff096), (0xdead), );                ((0x0ddb812c5b32eddaac4b483844859d954feff096).. != 0x0);                ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // call                ();                 (, );            }        }    }         ( ,  ,  )   () {        (, ., );        (, , );         ;    }         ( )    () {         ;    }         ( )  {         = ;         = .;        (([][.]) != 0x0, ());         =  | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & );    }         ( ,  )  {        (, );    }         ( ,  )  {         = ;         = .;        (([][.]) != 0x0, ());         ((). != 0x0) {            ( ,   ) = (.).{ : (). }(""); // call              = 0x60;             ;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }            (, ());        }         (!(() == )) {            ( ,   ) = .(.((0xa9059cbb), ., )); // call transfer            ();             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (!((( + .) - ) < 0x20));            (. == (. != 0x0));        }    }         ()    () {         (!((0xb3bac1fd23bba04a64199fee22b21d132b720f2c) == () && () == 0x38)) {             (.(0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f, 0x9595765698653a218f80db894ae5a0d9d1aeea01913b21811697eea1220d08bc, 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6, ., ()));        }  {             0x05ba1df72b4b4996664f58cafd8405703af28d5f622486d746219092877c6914;        }    }         ( ,  )  {        (. == , "AccessControl: can only renounce roles for self");         (([][])) {            [][] = ;             (, , .);        }    }         ( ,  )   () {        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] =  + [.][];         (., , [.][]);         ;    }         ()    () {         !(!(()));    }         ()   () {         ((. / 0x015180) > ) {            ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // staticcall            ();             ;             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (!((( + .) - ) < 0x20));            (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));            ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // staticcall            ();            ( ,  ,  ) = .(, (, , ));              = 0 == (());             (!(0 == (()))) {                 = !(());            }             ;             (!) {                  = (() * 0x0de0b6b3a7640000) / (());                 (() == (0xffffffffffffffffffffffffffffffffffffffff & )) {                }  {                     = (() * 0x0de0b6b3a7640000) / (());                }                 = ;            }  {                 = 0;            }            // duplicate declaration of value2 omitted        }         ;    }         ()    () {         !(!(()));    }         ()   () {        ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // staticcall        ();         ;         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));        ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // staticcall        ();        ( ,  ,  ) = .(, (, , ));          = 0 == (());         (!(0 == (()))) {             = !(());        }         ;         (!) {              = (() * 0x0de0b6b3a7640000) / (());             (() == (0xffffffffffffffffffffffffffffffffffffffff & )) {            }  {                 = (() * 0x0de0b6b3a7640000) / (());            }             = ;        }  {             = 0;        }         ( < ) {             (((( - ) * 0x64) / ) < 0x0a) {                 0;            }              = ;             ((((((( - ) * 0x64) / ) - 0x0a) * 0x05) + 0x0a) <= ) {                 = ((((( - ) * 0x64) / ) - 0x0a) * 0x05) + 0x0a;            }             ;        }         0;    }         ()  {        ();    }         ()    () {          = ;        ((0x50617920546f6b656e0000000000000000000000000000000000000000000009 & 0xff) <= 0x1f, ());         = 0x40 + ;         = ;          = ;        ((0x3100000000000000000000000000000000000000000000000000000000000001 & 0xff) <= 0x1f, ());         = 0x40 + ;         = ;         =  + 0x20;          = 0;         () {             (!( < )) {                ;            }             = 0x20 + ;              = 0;             () {                 (!( < )) {                    ;                }                 = 0x20 + ;                  = 0;                  = 0x20 + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ) + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ) + ( + 0xe0)))));                  =  + 0x20;                 () {                     (!( < .)) {                        ;                    }                     = 0x01 + ;                     = 0x20 + ;                     = 0x20 + ;                }                 .(0x0f00000000000000000000000000000000000000000000000000000000000000, 0xe0, (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ) + ( + 0xe0))) - , ., (), 0, (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ) + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ) + ( + 0xe0))))) - , , , .);            }        }    }         ( )  {         = ;         = .;        (([][.]) != 0x0, ());         =  / 0x015180;    }         ()    ( ) {         ;    }         ( ,  )  {         = ;         = .;        (([][.]) != 0x0, ());        (!( > 0x186a0 ||  > 0x186a0), ());         = () ? 1 : 0;         = ;    }         ( ,  )   () {        (!([.][] < ), "ERC20: decreased allowance below zero");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = [(.)][] - ;         (., , [.][]);         ;    }         ( ,  )   () {        (, , .);         ;    }         ( )  {         = ;         = .;        (([][.]) != 0x0, ());         =  | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & );    }         ( ,  ,  ,  ,  ,  ,  )  {        ( == ( & 0xff));        (, , , , , , );    }         ( ,  )  {        (, );    }         ( )  {         = ;         = .;        (([][.]) != 0x0, ());         = ;    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         ((. / 0x015180) > ) {            ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // staticcall            ();             ;             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (( + .) -  >= 0x20);            ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));            ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // staticcall            ();            ( ,  ,  ) = .(, (, , ));              = 0x0 == (0xffffffffffffffffffffffffffff & );             (!(0 == (()))) {                 = (0xffffffffffffffffffffffffffff & ) == 0x0;            }             ;             (!) {                  = (() * 0x0de0b6b3a7640000) / (());                 (!(() == (0xffffffffffffffffffffffffffffffffffffffff & ))) {                     = (() * 0x0de0b6b3a7640000) / (());                }                 = ;            }  {                 = 0;            }             ( != 0x0) {                 = (. / 0x015180);                 = ;                 (., );            }        }         (!([0x849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f272][] != 0x0 || [0x849ce89bfb011047badb624cc7bca584328cbe2b50dc206a08607a3818d8f272][])) {             ;             ( != 0xddb812c5b32eddaac4b483844859d954feff096) {                  = ;                 ( == (0xddb812c5b32eddaac4b483844859d954feff096)) {                    ();                      = ();                      = ( * ) / 0x0186a0;                     (( * ) / 0x64 != 0) {                         = (( * ) / 0x64) + ;                         = (( * ) / 0x64) + (( * ) / 0x0186a0);                    }                    ( != (0), "ERC20: transfer from the zero address");                    (() != (0), "ERC20: transfer to the zero address");                    (!([] < ), "ERC20: transfer amount exceeds balance");                    [] = [] - ;                    [()] =  + [()];                     (, (), );                     (, , , ( * ) / 0x64);                      = ().(());                     (!( < )) {                         = 0;                         (() != 0x0) {                              = (((( - ) * 0x01) / 0x05) + );                             (!( > )) {                                 = ;                            }                             (!( == 0x0)) {                                 =  + 0x60;                                 (!(0 < .)) (50);                                 (!(0x01 < .)) (50);                                 (!(( - 0x01) < )) (50);                                  = ().((0xb188526f94182873baf52abaf7656c49e2c70b9a));                                  = 0;                                  = (0x04 + ) + 0xc0;                                  =  + 0x20;                                 () {                                      = ;                                      = ;                                      = ;                                     (!( < )) {                                        ;                                    }                                     (!((0x01 + ) < )) {                                        ;                                    }                                     = 0x01 + (0x01 + );                                     = 0x20 + (0x20 + );                                     = 0x20 + (0x20 + );                                     = 0x01 + ;                                     = 0x20 + ;                                     = 0x20 + ;                                }                                ((0x10ed43c718714eb63d5aa57b78b54704e256024e).. != 0x0);                                ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(( / 0x02), 0x01, 0xa0, (0xb188526f94182873baf52abaf7656c49e2c70b9a), ., ); // call                                ();                                  = ().((0xb188526f94182873baf52abaf7656c49e2c70b9a));                                ( ,   ) = (0x55d398326f99059ff775485246999027b3197955).(((0xb188526f94182873baf52abaf7656c49e2c70b9a)), (),  - ); // call                                ();                                  = .(, ());                                ( ,   ) = (0x55d398326f99059ff775485246999027b3197955).(((0x10ed43c718714eb63d5aa57b78b54704e256024e)),  - ); // call                                ();                                  = .(, ());                                ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(0x55d398326f99059ff775485246999027b3197955, (),  - ,  / 0x02, 0x01, 0x01, (), .); // call                                ();                                .(, (, , ));                            }                            ( ,   ) = .(.((0xa9059cbb), ((0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6)), ((( - ) * 0x03) / 0x04))); // call transfer                            ();                             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            (( + .) -  >= 0x20);                            ( == ( != 0x0));                            ().(((0x6feddd51a5d321f243b7f3d000e9d4db3891fce0)), (( - ) / 0x04));                             (., , , );                        }  {                            ().(((0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6)), );                             (., , , 0);                        }                    }                     =  - ;                }                 = ;            }  {                (!(()), ());                ( != (0), "ERC20: transfer from the zero address");                (0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6 != 0x0, "ERC20: transfer to the zero address");                (!([] < (( * ) / 0x0186a0)), "ERC20: transfer amount exceeds balance");                [] = [] - (( * ) / 0x0186a0);                [0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6] = (( * ) / 0x0186a0) + [0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6];                 (, 0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6, ( * ) / 0x0186a0);                 (, , ( * ) / 0x0186a0, 0);                 =  - (( * ) / 0x0186a0);            }            ( != (0), "ERC20: transfer from the zero address");            ( != (0), "ERC20: transfer to the zero address");            (!([] < ), "ERC20: transfer amount exceeds balance");            [] = [] - ;            [] =  + [];             (, , );            ;        }  {            (, , );            ;        }    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.         (!((. / 0x015180) > )) {            ;        }  {             = (. / 0x015180);              = ().(0x0ddb812c5b32eddaac4b483844859d954feff096);             ( > 0xd3c21bcecceda1000000) {                  = ( / 0xc8);                 (( - (( / 0xc8))) < 0xd3c21bcecceda1000000) {                     = ( - 0xd3c21bcecceda1000000);                }                (, ((0xdead)), ((0x0ddb812c5b32eddaac4b483844859d954feff096)));                ((0x0ddb812c5b32eddaac4b483844859d954feff096).. != 0x0);                ( ,   ) = (0x0ddb812c5b32eddaac4b483844859d954feff096).(); // call                ();                 (, );            }            ;        }    }         ()   () {        // Decompilation incomplete: helper effect provenance is conservative.          = (0x0de0b6b3a7640000, (), ((0x0ddb812c5b32eddaac4b483844859d954feff096)));         (!( < )) {             0;        }  {             ;             (!(((( - ) * 0x64) / ) < 0x0a)) {                  = ;                 (!((((((( - ) * 0x64) / ) - 0x0a) * 0x05) + 0x0a) > )) {                     = (((((( - ) * 0x64) / ) - 0x0a) * 0x05) + 0x0a);                }                 ;            }  {                 0;            }        }    }         ( ,  ,  )  {        ( != (0), "ERC20: transfer from the zero address");        (( & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "ERC20: transfer to the zero address");        (!([] < ), "ERC20: transfer amount exceeds balance");        [] = [] - ;        [] =  + [];         (, , );    }         ( ,  ,  )   () {        // Decompilation incomplete: helper effect provenance is conservative.        ( ,   ) = .(); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);        ( == ( & 0xffffffffffffffffffffffffffffffffffffffff));        ( ,  , ) = ().();          = 0x0 == (0xffffffffffffffffffffffffffff & );         (!(0 == (()))) {             = (0xffffffffffffffffffffffffffff & ) == 0x0;        }         ;         (!) {              = (() * ) / (());             (!( == (()))) {                 = (() * ) / (());            }             ;        }  {             0;        }    }         ( ,  ,  )  {         (!([][] == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)) {            (!([][] < ), "ERC20: insufficient allowance");            ( != (0), "ERC20: approve from the zero address");            ( != (0), "ERC20: approve to the zero address");            [][] = [][] - ;             (, , [][]);        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!(([][.]) != 0x0)) {             (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             ;             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));              = (0x14 * 0x02) + 0x02;             (0x14 * 0x2 + 0x2 != 0x0) {                 = ((0x14 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);              = (0x14 * 0x02) + 0x01;              = .;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");             (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));              = (0x20 * 0x02) + 0x02;             ((0x20 * 0x02) + 0x02 != 0) {                 = ((0x20 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);             = (0x20 * 0x02) + 0x01;             = ;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");              = 0;             () {                  = ;                 ( >= ) {                    ;                }                 (0x20 +  >= ) {                    ;                }                 = 0x20 + (0x20 + );                 = 0x20 + ;            }             = 0;             () {                  = ;                 ( >= ) {                    ;                }                 (0x20 +  >= ) {                    ;                }                 = 0x20 + (0x20 + );                 = 0x20 + ;            }             = 0x28 + (. + ((0x20 + ) + .));             = 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\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\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\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)) {            [][] = ;             (, , .);        }    }         ()  {        // Decompilation incomplete: helper effect provenance is conservative.         = ;         = .;        (([][.]) != 0x0, ());          = ().(());         (!( < )) {             = 0;             (() != 0x0) {                  = ((( - ) * 0x01) / 0x05) + ;                 (!( > )) {                     = ;                }                 ;                 (!( == 0x0)) {                     =  + 0x60;                     (!(0 < .)) (50);                     (!(0x01 < .)) (50);                     (!(( - 0x01) < )) (50);                      = ().((0xb188526f94182873baf52abaf7656c49e2c70b9a));                      = 0;                      = (0x04 + ) + 0xc0;                      =  + 0x20;                     ;                     () {                         (!( < )) {                            ;                        }                         = 0x01 + ;                         = 0x20 + ;                         = 0x20 + ;                        ( ,   ) = (0x55d398326f99059ff775485246999027b3197955).(((0xb188526f94182873baf52abaf7656c49e2c70b9a)), (), ( - )); // call                        ();                          = .(, ());                        ( ,   ) = (0x55d398326f99059ff775485246999027b3197955).(((0x10ed43c718714eb63d5aa57b78b54704e256024e)), ( - )); // call                        ();                          = .(, ());                        ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(0x55d398326f99059ff775485246999027b3197955, (), ( - ), ( / 0x02), 0x01, 0x01, (), .); // call                        ();                        .(, (, , ));                    }                    ((0x10ed43c718714eb63d5aa57b78b54704e256024e).. != 0x0);                    ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).((( / 0x02)), 0x01, 0xa0, (0xb188526f94182873baf52abaf7656c49e2c70b9a), ., ); // call                    ();                     = ().((0xb188526f94182873baf52abaf7656c49e2c70b9a));                }                ( ,   ) = .(.((0xa9059cbb), ((0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6)), (( - ) * 0x03) / 0x04)); // call transfer                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (!((( + .) - ) < 0x20));                (. == (. != 0x0));                ().(((0x6feddd51a5d321f243b7f3d000e9d4db3891fce0)), ( - ) / 0x04);                 (., , , );            }  {                ().(((0x4e1995d0cb72c8ffcfd62ae25e6085ca364494a6)), );                 (., , , 0);            }        }    }         ( ,  ,  ,  ,  ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        (!(. > ), "ERC20Permit: expired deadline");         = 0x07;        [] = [] + 0x01;          = ((.(0x8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f, 0x9595765698653a218f80db894ae5a0d9d1aeea01913b21811697eea1220d08bc, 0xc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6, ., ())));         (((0xb3bac1fd23bba04a64199fee22b21d132b720f2c) == ()) && (() == 0x38)) {             = 0x05ba1df72b4b4996664f58cafd8405703af28d5f622486d746219092877c6914;        }         ;         ;         ( <= 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0) {            ();              = 0;              = ;             (!(())) {                 = 0x01;                 = 0;            }             = ;             = ;        }  {             = 0x03;             = 0;        }         (!( <= 0x4)) (33);         ( != 0x0) {            ( != 0x1, "ECDSA: invalid signature");            ( != 0x2, "ECDSA: invalid signature length");            ( != 0x3, "ECDSA: invalid signature 's' value");        }        (() == , "ERC20Permit: invalid signature");        ( != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [][] = ;         (, , [][]);    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         (!(([][.]) != 0x0)) {             (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             ;             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));              = (0x14 * 0x02) + 0x02;             (0x14 * 0x2 + 0x2 != 0x0) {                 = ((0x14 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);              = (0x14 * 0x02) + 0x01;              = .;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");             (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) (65);             =  + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));              = (0x20 * 0x02) + 0x02;             ((0x20 * 0x02) + 0x02 != 0) {                 = ((0x20 * 0x02) + 0x02) + ( + 0x20);            }             (!(0 < .)) (50);             (!(0x01 < .)) (50);             = (0x20 * 0x02) + 0x01;             = ;             ;             () {                  = ;                 = ;                 ( <= 0x1) {                    ;                }                 (!((0xf & ) < 0x10)) (50);                 (!( < .)) (50);                 (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +  <= 0x1) {                    ;                }                 (!(0x0f & ( >> 0x04) < 0x10)) (50);                 (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ) < .)) (50);                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + );                 = ( >> 0x04) >> 0x04;                 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + ;                 =  >> 0x04;            }            ( == 0x0, "Strings: hex length insufficient");              = 0;             () {                  = ;                 ( >= ) {                    ;                }                 (0x20 +  >= ) {                    ;                }                 = 0x20 + (0x20 + );                 = 0x20 + ;            }             = 0;             () {                  = ;                 ( >= ) {                    ;                }                 (0x20 +  >= ) {                    ;                }                 = 0x20 + (0x20 + );                 = 0x20 + ;            }             = 0x28 + (. + ((0x20 + ) + .));             = 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\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\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\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");            }        }         ((([][]))) {            [][] = ;             (, , .);        }    }         ( )  {         {              := (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.        // 0x01ffc9a7 => supportsInterface(bytes4)    // 0x04965850 => Unknown_04965850(uint256)    // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x0ee37889 => setLastDay(uint256)    // 0x148592c1 => Unknown_148592c1()    // 0x18160ddd => totalSupply()    // 0x1f9bbe20 => INTERN_SYSTEM()    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x23feb3d6 => unresolved_23feb3d6()    // 0x248a9ca3 => getRoleAdmin(bytes32)    // 0x29555f0c => setBuyLimit(bool)    // 0x2b14ca56 => sellFee()    // 0x2c871eec => lastDayPrice()    // 0x2dfb66d7 => openPrice()    // 0x2f2ff15d => grantRole(bytes32,address)    // 0x313ce567 => decimals()    // 0x33f3d628 => rescueToken(address,uint256)    // 0x3644e515 => DOMAIN_SEPARATOR()    // 0x36568abe => renounceRole(bytes32,address)    // 0x39509351 => increaseAllowance(address,uint256)    // 0x3e8e7905 => Unknown_3e8e7905()    // 0x47062402 => buyFee()    // 0x4b9036d1 => getDayPrice()    // 0x4c0dd643 => isLimitBuy()    // 0x4ef64d09 => unresolved_4ef64d09()    // 0x546da5f6 => getDownFee()    // 0x55eda4e8 => BLACK_HOLE()    // 0x56f0ef4b => allotFee()    // 0x65df2e51 => FOUNDATION()    // 0x6644c1e4 => unresolved_6644c1e4()    // 0x6b0c932d => lastDay()    // 0x6f7b0850 => LP_TOKEN_USDT()    // 0x70a08231 => balanceOf(address)    // 0x7ecebe00 => nonces(address)    // 0x84b0196e => eip712Domain()    // 0x8ce5c9b2 => Unknown_8ce5c9b2(uint256)    // 0x91d14854 => hasRole(bytes32,address)    // 0x95d89b41 => symbol()    // 0x98b7d4be => setFeeRatio(uint256,uint256)    // 0xa217fddf => DEFAULT_ADMIN_ROLE()    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa5f596e5 => unresolved_a5f596e5()    // 0xa9059cbb => transfer(address,uint256)    // 0xc2524a4a => INTERN_SYSTEM_MANAGER()    // 0xc54e44eb => USDT()    // 0xc9d3648f => Unknown_c9d3648f(bool)    // 0xcbd7be97 => SWAPROUTER()    // 0xd505accf => Unknown_d505accf(address,address,uint256,uint256,bool,uint256,uint256)    // 0xd547741f => revokeRole(bytes32,address)    // 0xd6117529 => setMinFeeAmount(uint256)    // 0xdd62ed3e => allowance(address,address)    // 0xe0956e0f => TOKEN_MANAGER()    // 0xf5d36475 => minFeeAmount()}
0xb3bac1…720f2c on BNB Chain — Decompiled Solidity