BNB Chain

0x5e6d1f40be466dd2facc94a26818948ecd3b1ca2

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

Decompilation outputBNB Chain · 0x5e6d1f40…cd3b1ca210.7 KB6.8 s
Share
421 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]     ; // STORAGE[0x3]     ; // STORAGE[0x4]     ; // STORAGE[0x5]     ; // STORAGE[0x6]     ;     ;         ( )   {         ("memory-safe") {            (0x00, (224, 0x4e487b71))            (0x04, )            (0x00, 0x24)        }    }    ()   {    }        ()   {    }             ( ,  )  {        (. == (0xfd929b0f270dfea6c4827262b4e2bf6ea50fe9b6));         = ;         = ;         = ;          = ().(0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c);        ((0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c).. != 0x0);        ( ,   ) = (0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c).((), , 0x60); // call        ();         = ;          = ().(());        (().. != 0x0);        ( ,   ) = .(.((0xa9059cbb), ., )); // call transfer        ();    }         ( ,   )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f));        (!(((0x04 + ) +  + 0x20) > ..));        (. == (0xfd929b0f270dfea6c4827262b4e2bf6ea50fe9b6));         (0x0 != ) {            ( ,   ) = (0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c).(()); // staticcall            ();              = .(, ());            ((0x6bca74586218db34cdb402295796b79663d816e9).. != 0x0);            ( ,   ) = (0x6bca74586218db34cdb402295796b79663d816e9).(( * 0x0b1a2bc2ec500000) / 0x0de0b6b3a7640000); // call            ();             = ;              = ().(0xfd5840cd36d94d7229439859c0112a4185bc0255);            ((0xfd5840cd36d94d7229439859c0112a4185bc0255).. != 0x0);            ( ,   ) = (0xfd5840cd36d94d7229439859c0112a4185bc0255).(( * 0x0de05bc096e9c000) / 0x0de0b6b3a7640000); // call            ();            ((0x238a358808379702088667322f80ac48bad5e6c4).. != 0x0);            ( ,   ) = (0x238a358808379702088667322f80ac48bad5e6c4).(0x20); // call            ();            ((0xfd5840cd36d94d7229439859c0112a4185bc0255).. != 0x0);            ( ,   ) = (0xfd5840cd36d94d7229439859c0112a4185bc0255).(( * 0x0de05bc096e9c000) / 0x0de0b6b3a7640000); // call            ();            ((0x6bca74586218db34cdb402295796b79663d816e9).. != 0x0);            (0x6bca74586218db34cdb402295796b79663d816e9).(( * 0x0b1a2bc2ec500000) / 0x0de0b6b3a7640000); // call        }  {             = 0x01 + ;            ( ,   ) = (0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c).(0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c); // staticcall            ();              = .(, ());            ((0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c).. != 0x0);            (0x8f73b65b4caaf64fba2af91cc5d4a2a1318e5d8c).(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c, , 0x60); // call        }        ();    }         ( )  {        ((0xfd929b0f270dfea6c4827262b4e2bf6ea50fe9b6) == .);          = ().(());        (.. != 0x0);        ( ,   ) = .(.((0xa9059cbb), ., )); // call transfer        ();    }         ( ,  ,  ,   )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f));        (!(((0x04 + ) +  + 0x20) > ..));         = 0x01 + ;         ( != .) {             = ;              = ().(());             ;             ( -  != 0) {                 (!( < .)) (50);                 = ;                  = ().(([]));                  =  - 0x01;                 (!(( + ) > )) {                }  {                     =  - ;                }                 = ;                ( ,   ) = ([]).(); // staticcall                ();                 =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                (!((( + .) - ) < 0x20));                (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));                 ((.) - (()) != 0) {                     = 0x40 + ;                }  {                     = 0x40 + ;                }            }  {                (. == (0xfd929b0f270dfea6c4827262b4e2bf6ea50fe9b6));                 = ;                (().. != 0x0);                ( ,   ) = .(.((0x095ea7b3), 0x10ed43c718714eb63d5aa57b78b54704e256024e, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)); // call approve                ();                 =  + 0x60;                  = 0x02;                 (0x02 != 0) {                     = 0x40 + (0x20 + );                }                 = ;                 (!(0 < .)) (50);                 (!(0x01 < .)) (50);                 = ;                 = ().(());                  = 0;                  = (0x04 + ) + 0xc0;                  =  + 0x20;                 () {                     (!( < )) {                        ;                    }                     = 0x01 + ;                     = 0x20 + ;                     = 0x20 + ;                }                ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(, 0, 0xa0, (0x038757581a0814565f7f3d7ad223097f8410de), .); // call                ();                 =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f));                (( + .) -  >= 0x20);                (!( > 0xffffffffffffffff));                ((( + ) + 0x1f) < ( + .));                 ( > 0xffffffffffffffff) (65);                 ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((( << 0x05) + 0x20) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((( << 0x05) + 0x20) + 0x1f))) > 0xffffffffffffffff)) (65);                 =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((( << 0x05) + 0x20) + 0x1f));                (!((0x20 + (( + ) + ( << 0x05))) > ( + .)));                  =  + 0x20;                  = 0x20 + ( + );                 () {                      = ;                      = ;                     (!( < (0x20 + (( + ) + ( << 0x05))))) {                        ;                    }                     (!((0x20 + ) < (0x20 + (( + ) + ( << 0x05))))) {                        ;                    }                     = 0x20 + (0x20 + );                     = 0x20 + (0x20 + );                     = 0x20 + ;                     = 0x20 + ;                }                 (!(0 < )) {                    ( ,   ) = (0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).(()); // staticcall                    ();                      = .(, ());                    ( ,   ) = (0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).(0x840e19dcca541ee0b55a3c67e900a39d523b12b8); // staticcall                    ();                      = .(, ());                     = ;                      = ().(0x840e19dcca541ee0b55a3c67e900a39d523b12b8);                    ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(, , ); // staticcall                    ();                     =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    (( + .) -  >= 0x20);                    ((0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).. != 0x0);                    ( ,   ) = (0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).(0x840e19dcca541ee0b55a3c67e900a39d523b12b8, ); // call                    ();                    ((0x840e19dcca541ee0b55a3c67e900a39d523b12b8).. != 0x0);                    ( ,   ) = (0x840e19dcca541ee0b55a3c67e900a39d523b12b8).((( * 0x0de0375f5d1f4000) / 0x0de0b6b3a7640000), 0, (), 0x80); // call                    ();                }  {                     = 0x40 + ;                }                 = ;                (().. != 0x0);                ( ,   ) = .(.((0xa9059cbb), ., (((( + ) * 0x19) / 0x26f7) + ( + )) + 0x01)); // call transfer                ();            }        }  {            (. == (0xfd929b0f270dfea6c4827262b4e2bf6ea50fe9b6));             = ;            (().. != 0x0);            ( ,   ) = .(.((0x095ea7b3), 0x10ed43c718714eb63d5aa57b78b54704e256024e, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)); // call approve            ();             =  + (0x20 + (0x20 * 0x02));              = 0x02;             = (0x02 * 0x20) + (0x20 + );             = ;             (!(0 < .)) (50);             (!(0x01 < .)) (50);             = ;            ().(());              = 0;              = (0x04 + ) + 0xc0;              =  + 0x20;             () {                 (!( < )) {                    ;                }                 = 0x01 + ;                 = 0x20 + ;                 = 0x20 + ;            }            ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(, 0, 0xa0, (0x038757581a0814565f7f3d7ad223097f8410de), ., ); // call            ();             =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f));            (( + .) -  >= 0x20);            (!( > 0xffffffffffffffff));            ((( + ) + 0x1f) < ( + .));             ( > 0xffffffffffffffff) (65);             ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((( << 0x05) + 0x20) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((( << 0x05) + 0x20) + 0x1f))) > 0xffffffffffffffff)) (65);             =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((( << 0x05) + 0x20) + 0x1f));            (!((0x20 + (( + ) + ( << 0x05))) > ( + .)));              =  + 0x20;              = 0x20 + ( + );             () {                 (!( < (0x20 + (( + ) + ( << 0x05))))) {                    ;                }                 = 0x20 + ;                 = 0x20 + ;                 (!(0 < )) {                    ( ,   ) = (0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).(()); // staticcall                    ();                      = .(, ());                    ( ,   ) = (0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).(0x840e19dcca541ee0b55a3c67e900a39d523b12b8); // staticcall                    ();                      = .(, ());                     = ;                      = ().(0x840e19dcca541ee0b55a3c67e900a39d523b12b8);                    ( ,   ) = (0x10ed43c718714eb63d5aa57b78b54704e256024e).(, , ); // staticcall                    ();                     =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    (( + .) -  >= 0x20);                    ((0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).. != 0x0);                    ( ,   ) = (0x9cf0e3ad4efa7ab602d7b5a38c55795cfa777777).(0x840e19dcca541ee0b55a3c67e900a39d523b12b8, ); // call                    ();                    ((0x840e19dcca541ee0b55a3c67e900a39d523b12b8).. != 0x0);                    ( ,   ) = (0x840e19dcca541ee0b55a3c67e900a39d523b12b8).((. * 0x0de0375f5d1f4000) / 0x0de0b6b3a7640000, 0, (), 0x80); // call                    ();                     = ;                    (().. != 0x0);                    ( ,   ) = .(.((0xa9059cbb), ., (((( + ) * 0x19) / 0x26f7) + ( + )) + 0x01)); // call transfer                    ();                }  {                     = 0x40 + ;                }            }        }    }         (  )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f));        (!(((0x04 + ) +  + 0x20) > ..));         = ;          = ().(0x28e2ea090877bf75740558f6bfb36a5ffee9e9df);         = ;        ((0x28e2ea090877bf75740558f6bfb36a5ffee9e9df).. != 0x0);        ( ,   ) = (0x28e2ea090877bf75740558f6bfb36a5ffee9e9df).(, (), ); // call        ();        ((0x6807dc923806fe8fd134338eabca509979a7e0cb).. != 0x0);        ( ,   ) = (0x6807dc923806fe8fd134338eabca509979a7e0cb).(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c, 0x06c6b935b8bbd4000000, (), 0); // call        ();         = ;          = ().(0xa9251ca9de909cb71783723713b21e4233fbf1b1);         = ;        ((0x6807dc923806fe8fd134338eabca509979a7e0cb).. != 0x0);        ( ,   ) = (0x6807dc923806fe8fd134338eabca509979a7e0cb).(, ( * 0x0773cea7a4628000) / 0x0de0b6b3a7640000, 0x02, 0, ()); // call        ();         (!(0 < )) (50);         = 0;        ().();         (!(0 < )) (50);         = 0x20 + (0x20 + );    }         ( ,  ,   )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f));        (!(((0x04 + ) +  + 0x20) > ..));         = 0x01 + ;         ( != ) {             (!( < )) (50);             = ;            ().();             = ;            ( ,   ) = .(); // staticcall            ();             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (!((( + .) - ) < 0x20));            (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));             ((.) - (()) != 0) {                 = 0x20 + (0x20 + );            }  {                 = 0x20 + (0x20 + );            }        }  {             = ;              = ().(0x6fe9e9de56356f7edbfcbb29fab7cd69471a4869);              = 0;             () {                 = 0x20 + (0x20 + );                 (!( < )) {                    ;                }                 = 0x20 + ;            }            ((0x6fe9e9de56356f7edbfcbb29fab7cd69471a4869).. != 0x0);            ( ,   ) = (0x6fe9e9de56356f7edbfcbb29fab7cd69471a4869).((), , 0, 0x80); // call            ();             = ;            ( ,   ) = (.).(); // staticcall            ();             =  + ((. + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            (!((( + .) - ) < 0x20));            (. == (. & 0xffffffffffffffffffffffffffffffffffffffff));              = ;             ((.) != ()) {                 = ;            }            (!(((0x20 + ) + ) - (0x20 + ) < 0x20));            (().. != 0x0);            ( ,   ) = .(.((0xa9059cbb), .,  + )); // call transfer            ();        }    }         (  )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f));        (!(((0x04 + ) +  + 0x20) > ..));         = ;        ().(0x238a358808379702088667322f80ac48bad5e6c4);         = ;          = ().(0x238a358808379702088667322f80ac48bad5e6c4);        ((0x238a358808379702088667322f80ac48bad5e6c4).. != 0x0);        ( ,   ) = (0x238a358808379702088667322f80ac48bad5e6c4).((), (), ); // call        ();         = 0x40 + ;    }         ( ,  ,   )  {         (. > 0xffffffffffffffff) (65);         ;         ((( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) < ) | (( + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f))) > 0xffffffffffffffff)) (65);         =  + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & ((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (. + 0x1f))) + 0x1f));        (!(((0x04 + ) +  + 0x20) > ..));         (!(0 < .)) (50);         (!(. != 0x0)) (50);         = 0x01;          = ().(([0]));         = 0x40 + ;          = 0;         () {              = ;             (!( < )) {                ;            }             (!((0x20 + ) < )) {                ;            }             = 0x20 + (0x20 + );             = 0x20 + ;        }        (([0]).. != 0x0);        ( ,   ) = ([0]).(( - 0x01), 0, (), 0x80); // call        ();         = ;        (!(((0x20 + ) + ) - (0x20 + ) < 0x20));        (().. != 0x0);        ( ,   ) = .(.((0xa9059cbb), .,  + )); // call transfer        ();    }        // 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.        // 0x05d546ef => Approve(uint256,uint256)    // 0x13a1a562 => onMoolahFlashLoan(uint256,bytes)    // 0x51cff8d9 => withdraw(address)    // 0x84800812 => pancakeCall(address,uint256,uint256,bytes)    // 0x91dd7346 => unlockCallback(bytes)    // 0xa1d48336 => pancakeV3FlashCallback(uint256,uint256,bytes)    // 0xab6291fe => lockAcquired(bytes)    // 0xe9cbafb0 => uniswapV3FlashCallback(uint256,uint256,bytes)}