Ethereum

0x6167a3e21585a9f6b3a1012d0aed3280a36a5baa

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

Decompilation outputEthereum · 0x6167a3e2…a36a5baa10.3 KB5.5 s
Share
406 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[0x0]    ( => ( => ))  ; // STORAGE[0x1]      ; // STORAGE[0x2] bytes 0 to 19     ; // STORAGE[0x3]     ; // STORAGE[0x4]      ; // STORAGE[0x5]      ; // STORAGE[0x6]     ; // STORAGE[0x7]    ( => )  ; // STORAGE[0xc]    ( => )  ; // STORAGE[0xd]    ( => )  ; // STORAGE[0xe]    ( => )  ; // STORAGE[0xf]      ; // STORAGE[0x10] bytes 0 to 19      ; // STORAGE[0x12] bytes 0 to 19     ; // STORAGE[0x13]     ; // STORAGE[0x15] bytes 0 to 0     ; // STORAGE[0x15] bytes 1 to 1     ; // STORAGE[0x16]    ( => )  ; // STORAGE[0x17]    ( => )  ; // STORAGE[0x18]     ; // STORAGE[0x19] bytes 0 to 19    ( => )  ; // STORAGE[0x1c]         ( ,  , );     ( ,  , );    ()   {        // Synthetic compatibility routes preserve original selectors for unresolved names.         ((.. >= 4) && (. == 0x29525bf2)) {            // Route to Unknown_29525bf2() after replacing only msg.sig.            ((0xeb0b79ce));            ;        }         ((.. >= 4) && (. == 0x3562ca32)) {            // Route to Unknown_3562ca32(address) after replacing only msg.sig.            ((0xe66c1f23));            ;        }         ((.. >= 4) && (. == 0x6f8ac742)) {            // Route to Unknown_6f8ac742() after replacing only msg.sig.            ((0x515a1afd));            ;        }         ((.. >= 4) && (. == 0xaed92f4d)) {            // Route to Unknown_aed92f4d(uint256) after replacing only msg.sig.            ((0xf0dedfe0));            ;        }         ((.. >= 4) && (. == 0xeb76bc97)) {            // Route to Unknown_eb76bc97() after replacing only msg.sig.            ((0xb4fe09f9));            ;        }        ();    }             ()    ( ) {         ;    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = ;         (., , [.][]);         ;    }         ( ,  ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60));        (, , );         ;    }         ()    () {         ();    }         ( )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ();    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (!(([.][] + ) < [.][]), "SafeMath: addition overflow");        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = [.][] + ;         (., , ([(.)][] + ));         ;    }         ( ,  )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (, );    }         ()    () {         ();    }         ( )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ( != (0), "balance query for the zero address");          = [];         ([] == 0) {             = ;        }         ;    }         ()    ( ) {         ;    }         ([]  ,  ,  )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x60));        (!(. > 0xffffffffffffffff));        (((0x04 + ) + 0x1f) < (0x04 + (.. - 0x04)));        (!(. > 0xffffffffffffffff));        (!(((0x04 + ) + 0x20) + (. * 0x20) > (0x04 + (.. - 0x04))));          = 0;         () {             ( >= .) {                ;            }            (0x20 *  + ((0x04 + ) + 0x20) + 0x20 - (0x20 *  + ((0x04 + ) + 0x20)) >= 0x20);             (, [], );             =  + 0x01;        }    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (, );         ;    }         ( ,  )    () {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x40));        (, , .);         ;    }         ( )   {        (!(((0x04 + (.. - 0x04)) - 0x04) < 0x20));        ();    }         ()    () {         ();    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        (, , );         ( > [][(.)]) {              = 0;             () {                  = ;                 ( >= ) {                    ;                }                 ( + 0x20 >= ) {                    ;                }                 = ( + 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");        }        ( != (0), "ERC20: approve from the zero address");        (. != (0), "ERC20: approve to the zero address");        [][.] = (([][(.)] - ));         (, ., [][.]);    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        ( > 0x0, "Transfer amount must be greater than zero");         ( == ) {            (.. != 0x0);            ( ,   ) = .(.((0x18160ddd))); // staticcall totalSupply            ();             ;             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (( + .) -  >= 0x20);              = .(, ());            ( == );             ( > ) {                 = ;            }        }         (!(([] / 0x01) || ([] / 0x01))) {            (!(([] / 0x01)));             (( == ) && ( > 0)) {                (.. != 0x0);                ( ,   ) = .(.((0x18160ddd))); // staticcall totalSupply                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (( + .) -  >= 0x20);                ( == );                (!( < ));            }            (, , );        }  {            (, , );        }    }         ( ,  ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( != (0), "ERC20: transfer from the zero address");        ( != (0), "ERC20: transfer to the zero address");        (!([] < ), "ERC20: transfer amount exceeds balance");         ( > []) {              = 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");            }        }        [] = [] - ;        ([] +  >= [], "SafeMath: addition overflow");        [] = [] + ;         (, , );    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.         ;         = (0x20 + ) + 0x14;          = 0;         () {              = ;             ( >= ) {                ;            }             ( + 0x20 >= ) {                ;            }             = ( + 0x20) + 0x20;             =  + 0x20;        }        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        ( == );         ( == ) {             = ;        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         ;         = (0x20 + ) + 0x14;          = 0;         () {              = ;             ( >= ) {                ;            }             ( + 0x20 >= ) {                ;            }             = ( + 0x20) + 0x20;             =  + 0x20;        }        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        ( == );         ( == ) {            [] = ( * 0x01) | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & []);        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.         ( > [.][]) {              = 0;             () {                  = ;                 ( >= ) {                    ;                }                 ( + 0x20 >= ) {                    ;                }                 = ( + 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");        }        (. != (0), "ERC20: approve from the zero address");        ( != (0), "ERC20: approve to the zero address");        [.][] = ([.][] - );         (., , (([(.)][] - )));    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.         ;         = (0x20 + ) + 0x14;          = 0;         () {              = ;             ( >= ) {                ;            }             ( + 0x20 >= ) {                ;            }             = ( + 0x20) + 0x20;             =  + 0x20;        }        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        ( == );         ( == ) {            (!( == 0), "ERC20: transfer from the zero address");            (!( == 0), "ERC20: transfer to the zero address");            (!([] < ), "ERC20: transfer amount exceeds balance");             = 0x40 + ;             ( > []) {                  = 0;                 () {                      = ;                     ( >= ) {                        ;                    }                     ( + 0x20 >= ) {                        ;                    }                     = ( + 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");            }            [] = ([] - );            ([] +  >= [], "SafeMath: addition overflow");            [] = ([] + );             (, , );        }    }         ( )  {         {              := (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.        // 0x06fdde03 => name()    // 0x095ea7b3 => approve(address,uint256)    // 0x0fb3f904 => unresolved_0fb3f904(address)    // 0x16163c13 => unresolved_16163c13(address)    // 0x18160ddd => totalSupply()    // 0x23b872dd => transferFrom(address,address,uint256)    // 0x29525bf2 => Unknown_29525bf2()    // 0x313ce567 => decimals()    // 0x3562ca32 => Unknown_3562ca32(address)    // 0x39509351 => increaseAllowance(address,uint256)    // 0x404e5129 => blacklist(address,bool)    // 0x49bd5a5e => uniswapV2Pair()    // 0x5983810f => unresolved_5983810f(address)    // 0x6f8ac742 => Unknown_6f8ac742()    // 0x70a08231 => balanceOf(address)    // 0x880e68be => unresolved_880e68be(address)    // 0x927f3d41 => _defaultAddress()    // 0x95d89b41 => symbol()    // 0x983bc41b => airdrop(address[],address,uint256)    // 0xa457c2d7 => decreaseAllowance(address,uint256)    // 0xa9059cbb => transfer(address,uint256)    // 0xaed92f4d => Unknown_aed92f4d(uint256)    // 0xc0cd0dd8 => unresolved_c0cd0dd8(address)    // 0xc45a0155 => factory()    // 0xdd62ed3e => allowance(address,address)    // 0xeb76bc97 => Unknown_eb76bc97()    // 0xef95c4a0 => unresolved_ef95c4a0(address)    // 0xfbbb9809 => unresolved_fbbb9809(address)}