Ethereum

0x8c0d729d03cb8ecbc79a62a68cdd67ccfa6a7b92

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

Decompilation outputEthereum · 0x8c0d729d…fa6a7b928.2 KB52.5 s
Share
628 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;  {     ( )    ( );}  {        = (0xdac17f958d2ee523a2206206994597c13d831ec7);        = (0x7c78a049fff71609990017b58a959e926e6ec4c6);        = ;        = 2;        = (0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb);        = 2;        = 29970000000000000000000000;        = 40500000000000000000000000;        = ;        = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3);        = 1;        = 1000000000000;         ; // STORAGE[0x0]         ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }    ()   {    }             ( ,   )  {        (!(((0x04 + ) +  + 0x20) > ..));         ;         =  + 0x64;         (!(0 < )) {        }  {        }        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(); // call          = 0x60;         (. != 0) {             =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             = ;        }          = ;         () {              = !;             ( != 0x0) {                (((0x20 + ) + ) - (0x20 + ) >= 0x20);                ( == );                 = ;            }             = ;        }        ( != 0x0, "approve failed");         ((0x2 == 0x0) || (0x2 == 0x2)) {             =  + 0x64;             (!(0 < )) {            }  {            }            ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(); // call              = 0x60;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }              = ;             () {                  = !;                 ( != 0x0) {                    (((0x20 + ) + ) - (0x20 + ) >= 0x20);                    ( == );                     = ;                }                 = ;            }            ( != 0x0, "approve failed");        }          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((0x21803566376b97f8800000 / 0x014e) > )) {             = 0x21803566376b97f8800000 / 0x014e;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((((0x21803566376b97f8800000 - ) * 0x0c) / 0x03e8) > )) {             = ((0x21803566376b97f8800000 - ) * 0x0c) / 0x03e8;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((((0x21803566376b97f8800000 - ) -  * 0x2d) / 0x03e8) > )) {             = ((0x21803566376b97f8800000 - ) -  * 0x2d) / 0x03e8;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((( * 0x13) / 0x64) > )) {             = ( * 0x13) / 0x64;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          =  * 0x13;          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          = ;          =  * 0x13;          = ;          =  - ;          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!( > )) {             = ;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ;          =  + .;        ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(0, 0); // call        ();        ( -  >= 0x20);        ( == );        ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).((0x18ca64f499a6a8c7400000 / 0x14), 0); // call        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);        ( == );    }         ( ,   )  {        (!(((0x04 + ) +  + 0x20) > ..));         ;         =  + 0x64;         (!(0 < )) {        }  {        }        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(); // call          = 0x60;         (. != 0) {             =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));             = ;        }          = ;         () {              = !;             ( != 0x0) {                (((0x20 + ) + ) - (0x20 + ) >= 0x20);                ( == );                 = ;            }             = ;        }        ( != 0x0, "approve failed");         ((0x2 == 0x0) || (0x2 == 0x2)) {             =  + 0x64;             (!(0 < )) {            }  {            }            ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(); // call              = 0x60;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }              = ;             () {                  = !;                 ( != 0x0) {                    (((0x20 + ) + ) - (0x20 + ) >= 0x20);                    ( == );                     = ;                }                 = ;            }            ( != 0x0, "approve failed");        }          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((0x21803566376b97f8800000 / 0x014e) > )) {             = 0x21803566376b97f8800000 / 0x014e;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((((0x21803566376b97f8800000 - ) * 0x0c) / 0x03e8) > )) {             = ((0x21803566376b97f8800000 - ) * 0x0c) / 0x03e8;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((((0x21803566376b97f8800000 - ) -  * 0x2d) / 0x03e8) > )) {             = ((0x21803566376b97f8800000 - ) -  * 0x2d) / 0x03e8;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!((( * 0x13) / 0x64) > )) {             = ( * 0x13) / 0x64;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          =  * 0x13;          = ;          = 0x21803566376b97f8800000 - ;          = ;          = ;          = ;          = (0x21803566376b97f8800000 - ) - ;          = ;          = ;          = ;          = ((0x21803566376b97f8800000 - ) - ) - ;          = ;          =  * 0x13;          = ;          =  - ;          = ().;        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);         = 0xe8d4a51000 * .;          = ;         (!( > )) {             = ;        }         ( != 0x0) {              = ;              =  + .;            ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(, 0); // call            ();            ( -  >= 0x20);            ( == );        }          = ;          =  + .;        ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).(0, 0); // call        ();        ( -  >= 0x20);        ( == );        ( ,   ) = (0x808c3ba97268dbf9695b1ec10729e09c7e67a9e3).((0x18ca64f499a6a8c7400000 / 0x14), 0); // call        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (( + .) -  >= 0x20);        ( == );    }         ( ,  )   () {        (, );         . - ;    }         ( )  {        ();    }         ( ,  ,   )  {        (!(((0x04 + ) +  + 0x20) > ..));    }         ([]  , []  , []  ,   )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f));        []  = ;        (!((0x20 + ((0x04 + ) + (. << 0x05))) > ..));          =  + 0x20;          = 0x20 + (0x04 + );         () {             (!( < (0x20 + ((0x04 + ) + (. << 0x05))))) {                ;            }            (.[] == ((.[])));             = 0x20 + ;             = 0x20 + ;        }         (!( <= 0xffffffffffffffff)) (65);         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f));        (!(((0x04 + ) + (. << 0x05) + 0x20) > ..));          = (0x04 + ) + 0x20;          = ;          =  + 0x20;          = 0x20;          = ((0x04 + ) + (. << 0x05)) + 0x20;          = 0;          = 0x04 + ;          = ..;         () {             ( >= ) {                ;            }             =  + ;             = ;             =  + ;             = ;             = ;             = ;             = ;             = ;             (!( <= 0xffffffffffffffff)) (65);             ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f))) > 0xffffffffffffffff)) (65);             =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (. << 0x05)) + 0x1f));            (!(((0x04 + ) + (. << 0x05) + 0x20) > ..));              = (0x04 + ) + 0x20;              = ;              =  + 0x20;              = 0x20;              = ((0x04 + ) + (. << 0x05)) + 0x20;              = 0;              = 0x04 + ;              = ..;             () {                 ( >= ) {                    ;                }                 =  + ;                 = ;                 =  + ;                 = ;                 = ;                 = ;                 = ;                 = ;                (!(((0x04 + ) +  + 0x20) > ..));            }        }    }         ( ,  )  {        // Decompilation incomplete: helper effect provenance is conservative.        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(0x7c78a049fff71609990017b58a959e926e6ec4c6); // staticcall        ();          = .(, ());        ((0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb).. != 0x0);        ( ,   ) = (0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb).(0xdac17f958d2ee523a2206206994597c13d831ec7, , 0x60); // call        ();        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(()); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));         (. != 0x0) {             =  + 0x64;              = 0;             () {                  = ;                 (!( < )) {                    ;                }                 (!((0x20 + ) < )) {                    ;                }                 = 0x20 + (0x20 + );                 = 0x20 + ;            }            ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(); // call              = 0x60;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }              = ;             () {                  = !;                 ( != 0x0) {                    (((0x20 + ) + ) - (0x20 + ) >= 0x20);                    ( == );                     = ;                }                 = ;            }            ( != 0x0, "transfer failed");        }        ( ,   ) = (0xdac17f958d2ee523a2206206994597c13d831ec7).(0x7c78a049fff71609990017b58a959e926e6ec4c6); // staticcall        ();         =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        (!((( + .) - ) < 0x20));        (!((. - ) < ), "GAIN_LT_MIN");    }         ( )  {        // Decompilation incomplete: helper effect provenance is conservative.        ((0x7c78a049fff71609990017b58a959e926e6ec4c6) == ., "NOT_OWNER");         ( != (0)) {            ().(());             ;             =  + 0x64;              = 0;             () {                  = ;                 (!( < )) {                    ;                }                 (!((0x20 + ) < )) {                    ;                }                 = 0x20 + (0x20 + );                 = 0x20 + ;            }            ( ,   ) = .(); // call              = 0x60;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }              = ;             () {                  = !;                 ( != 0x0) {                    (((0x20 + ) + ) - (0x20 + ) >= 0x20);                    ( == );                     = ;                }                 = ;            }            ( != 0x0, "transfer failed");        }  {            ( ,   ) = (0x7c78a049fff71609990017b58a959e926e6ec4c6).{ : (). }(""); // call              = 0x60;             (. != 0) {                 =  + ((. + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                 = ;            }            (, "NATIVE_SEND_FAIL");        }    }        // 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.        // 0x13a1a562 => onMoolahFlashLoan(uint256,bytes)    // 0x31f57072 => onMorphoFlashLoan(uint256,bytes)    // 0x38d52e0f => asset()    // 0x5601eaea => execute(uint256,uint256)    // 0x839006f2 => rescue(address)    // 0x8da5cb5b => owner()    // 0x93290d4a => nativePool()    // 0x938b9ceb => loops()    // 0xa1d48336 => pancakeV3FlashCallback(uint256,uint256,bytes)    // 0xae07e5da => unresolved_ae07e5da()    // 0xb00e0539 => flashKind()    // 0xb4150c6c => unresolved_b4150c6c()    // 0xbba81b1c => dMax()    // 0xc79dfb68 => unresolved_c79dfb68()    // 0xd4b83992 => target()    // 0xd944e6a3 => geo()    // 0xf04f2707 => receiveFlashLoan(address[],uint256[],uint256[],bytes)    // 0xf51e181a => scale()}