BNB Chain

0x0ed1206abd87144070a5c1c2ccf408d8f66fbfca

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

Decompilation outputBNB Chain · 0x0ed1206af66fbfca8.1 KB81.4 s
Share
//decompiled by exvvul decompiler tool [email protected] https://x.com/exvulsec
// Decompilation incomplete: symbolic execution reached a configured deadline for 1 of 14 entry points (170000 ms contract budget): 5eb8d679
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

contract DesolexContract {
    address public constant stakedToken = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90);
    uint256 public constant hasOpenPositions = 0;
    address public constant stakingMain = address(0xe3a24afea37dc8547cedb480e291881bba335c31);
    address public constant protocolRegistry = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593);
    uint256 public constant moduleKey = 106852065828623546274044616771672785867894045487939322555174515354801705053772;
    address public constant usdc = address(0x55d398326f99059ff775485246999027b3197955);
    uint256 public constant interfaceVersion = 1;
    address public constant unresolved_1aa5bb66 = address(0x71a7919663974000194e3ee699a455d7b6c6734d);
    address public constant protocolToken = address(0x61e91daf03a49ecec334bffbf5008860cfb33333);
    uint256 public constant totalLiability = 0;
    
    bytes32 stor_0; // STORAGE[0x0]
    
    error CustomError_2d98e82f();
    event Event_379d7d50();
    error InvalidBeneficiary();
    error EmptyBatch();
    error CustomError_d3787760();
    error CustomError_e407736d();
    error ZeroReceived();
    error CustomError_b072117c();
    error ZeroAmount();
    error SafeERC20FailedOperation(address);
    error CustomError_fa1a51c5();
    error LengthMismatch();
    function _desolexPanic(uint256 code) private pure {
        assembly ("memory-safe") {
            mstore(0x00, shl(224, 0x4e487b71))
            mstore(0x04, code)
            revert(0x00, 0x24)
        }
    }
    fallback() external payable {
        // Synthetic compatibility routes preserve original selectors for unresolved names.
        if ((msg.data.length >= 4) && (msg.sig == 0x5eb8d679)) {
            // Route to Unknown_5eb8d679(uint256,uint256,uint256) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x84934526));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x8191f5e5)) {
            // Route to Unknown_8191f5e5(uint256,uint256) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xfa1556a9));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x9b8aeda5)) {
            // Route to Unknown_9b8aeda5(address,uint256,uint256) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x4f815444));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0xeed6b9a2)) {
            // Route to Unknown_eed6b9a2(bytes,bytes,bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xeae7159d));
            return;
        }
        revert();
    }
    
    
    function Unknown_eed6b9a2(bytes memory arg0, bytes memory arg1, bytes memory arg2) public payable returns (bytes memory) {
        if (!(msg.value)) {
            if ((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) >= 0x60) {
                if (!(arg0.length > 0xffffffffffffffff)) {
                    if (((0x04 + arg0) + 0x1f) < msg.data.length) {
                        if (!(arg0.length > 0xffffffffffffffff)) {
                            if (!(((arg0.length << 0x05) + (0x04 + arg0) + 0x20) > msg.data.length)) {
                                if (!(arg1.length > 0xffffffffffffffff)) {
                                    if (((0x04 + arg1) + 0x1f) < msg.data.length) {
                                        if (!(arg1.length > 0xffffffffffffffff)) {
                                            if (!(((arg1.length << 0x05) + (0x04 + arg1) + 0x20) > msg.data.length)) {
                                                if (!(arg2.length > 0xffffffffffffffff)) {
                                                    if (((0x04 + arg2) + 0x1f) < msg.data.length) {
                                                        if (!(arg2.length > 0xffffffffffffffff)) {
                                                            if (!(((arg2.length << 0x05) + (0x04 + arg2) + 0x20) > msg.data.length)) {
                                                                if (stor_0 != 0x02) {
                                                                    stor_0 = 0x02;
                                                                    (bool success0, bytes memory returnData0) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).isActive(0xec3c2045da149c45c16ce5a6d86d63bb81d27c31c6383c580ec51f98d5c3ee4c, address(this)); // staticcall
                                                                    if (success0) {
                                                                        uint256 value0 = 0;
                                                                        uint256 var_d;
                                                                        uint256 value1 = var_d.length;
                                                                        if (success0) {
                                                                            if (0x20 > returnData0.length) {
                                                                                if (((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                var_d = var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(((var_d + returnData0.length) - var_d) >= 0x20);
                                                                            } else {
                                                                                if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                                                                var_d = var_d + 0x20;
                                                                                require(((var_d + 0x20) - var_d) >= 0x20);
                                                                            }
                                                                            require(var_d.length == var_d.length);
                                                                        } else {
                                                                            value0 = var_d;
                                                                            value1 = 0;
                                                                        }
                                                                        if (value1 != 0x0) {
                                                                            (bool success1, bytes memory returnData1) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).activeAddress(0x465332bcc850872a7077bd29d9c354678be3b12916a7f79faae70eb5d4f293e7); // staticcall
                                                                            if (success1) {
                                                                                uint256 value2 = 0;
                                                                                uint256 value3 = var_d.length;
                                                                                if (success1) {
                                                                                    if (0x20 > returnData1.length) {
                                                                                        if (((var_d + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                        var_d = var_d + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        require(((var_d + returnData1.length) - var_d) >= 0x20);
                                                                                    } else {
                                                                                        if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                                                                        var_d = var_d + 0x20;
                                                                                        require(((var_d + 0x20) - var_d) >= 0x20);
                                                                                    }
                                                                                    require(var_d.length == (address(var_d.length)));
                                                                                } else {
                                                                                    value2 = var_d;
                                                                                    value3 = 0;
                                                                                }
                                                                                if (value3.code.length != 0x0) {
                                                                                    (bool success2, bytes memory returnData2) = address(value3).OPERATIONS_ROLE(); // staticcall
                                                                                    if (success2) {
                                                                                        if (!(success2)) {
                                                                                            (bool success3, bytes memory returnData3) = address(value3).hasRole(0, msg.sender); // staticcall
                                                                                            if (success3) {
                                                                                                if (success3) {
                                                                                                    if (0x20 <= returnData3.length) {
                                                                                                        if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                                                                                        var_d = var_d + 0x20;
                                                                                                        require(((var_d + 0x20) - var_d) >= 0x20);
                                                                                                        require(var_d.length == var_d.length);
                                                                                                        if (var_d.length != 0x0) {
                                                                                                            if (!(arg0.length != arg1.length || arg0.length != arg2.length)) {
                                                                                                                if (arg0 != 0x0) {
                                                                                                                    if (!(arg0.length > 0xffffffffffffffff)) {
                                                                                                                        if (!(((var_d + (((0x20 + (arg0.length << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + (((0x20 + (arg0.length << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d))) {
                                                                                                                            var_d = var_d + (((0x20 + (arg0.length << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                            if (!(arg0.length > 0xffffffffffffffff)) {
                                                                                                                                uint256 value4 = 0;
                                                                                                                                while (true) {
                                                                                                                                    if (value4 < arg0.length) {
                                                                                                                                        if (!((value4 < arg0.length))) _desolexPanic(50);
                                                                                                                                        if (msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] == (address(msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)]))) {
                                                                                                                                            if (!((value4 < arg1))) _desolexPanic(50);
                                                                                                                                            if (msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)] < 0x0a) {
                                                                                                                                                if (!((value4 < arg2))) _desolexPanic(50);
                                                                                                                                                if (!((msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0 && (msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) == address(this) || (msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) == 0x0)) {
                                                                                                                                                    if (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)] != 0x0) {
                                                                                                                                                        (bool success4, bytes memory returnData4) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                                                                                        if (success4) {
                                                                                                                                                            uint256 value6 = 0;
                                                                                                                                                            uint256 value85 = var_d.length;
                                                                                                                                                            if (success4) {
                                                                                                                                                                uint256 value5 = returnData4.length;
                                                                                                                                                                if (0x20 <= returnData4.length) {
                                                                                                                                                                    value5 = 0x20;
                                                                                                                                                                }
                                                                                                                                                                if (((var_d + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                                                                var_d = var_d + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                                                require(((var_d + value5) - var_d) >= 0x20);
                                                                                                                                                            } else {
                                                                                                                                                                value6 = var_d;
                                                                                                                                                                value85 = 0;
                                                                                                                                                            }
                                                                                                                                                            (bool success5, bytes memory returnData5) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                                                                                                            if (success5) {
                                                                                                                                                                uint256 value8 = 0;
                                                                                                                                                                uint256 value86 = var_d.length;
                                                                                                                                                                if (success5) {
                                                                                                                                                                    uint256 value7 = returnData5.length;
                                                                                                                                                                    if (0x20 <= returnData5.length) {
                                                                                                                                                                        value7 = 0x20;
                                                                                                                                                                    }
                                                                                                                                                                    if (((var_d + ((value7 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value7 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                                                                    var_d = var_d + ((value7 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                                                    require(((var_d + value7) - var_d) >= 0x20);
                                                                                                                                                                } else {
                                                                                                                                                                    value8 = var_d;
                                                                                                                                                                    value86 = 0;
                                                                                                                                                                }
                                                                                                                                                                address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                                                                                                            }
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    } else {
                                                                                                                                        uint256 value9 = 0;
                                                                                                                                        uint256 value10 = var_d + 0x20;
                                                                                                                                        uint256 value11 = var_d + 0x40;
                                                                                                                                        while (true) {
                                                                                                                                            stor_0 = 0x01;
                                                                                                                                            if (value9 >= var_d.length) {
                                                                                                                                                return abi.encodePacked(0x20, var_d.length);
                                                                                                                                            }
                                                                                                                                            value9 = 0x01 + value9;
                                                                                                                                            value10 = value10 + 0x20;
                                                                                                                                            value11 = 0x20 + value11;
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                } else {
                                                                                                    require(0, CustomError_e407736d());
                                                                                                    require(!(arg0.length != arg1.length || arg0.length != arg2.length), LengthMismatch());
                                                                                                    require(arg0 != 0x0, EmptyBatch());
                                                                                                    if (arg0.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                    if (((var_d + (((0x20 + (arg0.length << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + (((0x20 + (arg0.length << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                    var_d = var_d + (((0x20 + (arg0.length << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                    if (arg0.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                    uint256 value4 = 0;
                                                                                                    while (true) {
                                                                                                        if (!(value4 < arg0.length)) {
                                                                                                            break;
                                                                                                        }
                                                                                                        if (!((value4 < arg0.length))) _desolexPanic(50);
                                                                                                        if (msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] != (address(msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)]))) {
                                                                                                            revert();
                                                                                                            break;
                                                                                                        }
                                                                                                        if (!((value4 < arg1))) _desolexPanic(50);
                                                                                                        if (!(msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)] < 0x0a)) {
                                                                                                            revert();
                                                                                                            break;
                                                                                                        }
                                                                                                        if (!((value4 < arg2))) _desolexPanic(50);
                                                                                                        require(!((msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0 && (msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) == address(this) || (msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) == 0x0), InvalidBeneficiary());
                                                                                                        require(msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)] != 0x0, ZeroAmount());
                                                                                                        (bool success7, bytes memory returnData7) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                                        require(success7);
                                                                                                        uint256 value13 = 0;
                                                                                                        uint256 value19 = var_d.length;
                                                                                                        if (success7) {
                                                                                                            uint256 value12 = returnData7.length;
                                                                                                            if (0x20 <= returnData7.length) {
                                                                                                                value12 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value12) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value13 = var_d;
                                                                                                            value19 = 0;
                                                                                                        }
                                                                                                        (bool success8, bytes memory returnData8) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                                                        require(success8);
                                                                                                        uint256 value15 = 0;
                                                                                                        uint256 value18 = var_d.length;
                                                                                                        if (success8) {
                                                                                                            uint256 value14 = returnData8.length;
                                                                                                            if (0x20 <= returnData8.length) {
                                                                                                                value14 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value14 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value14 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value14 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value14) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value15 = var_d;
                                                                                                            value18 = 0;
                                                                                                        }
                                                                                                        (bool success9, bytes memory returnData9) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                                                        require(success9);
                                                                                                        uint256 value17 = var_d.length;
                                                                                                        if (success9) {
                                                                                                            uint256 value16 = returnData9.length;
                                                                                                            if (0x20 <= returnData9.length) {
                                                                                                                value16 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value16) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value17 = 0;
                                                                                                        }
                                                                                                        if (((var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                        var_d = var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        (bool success10, bytes memory returnData10) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transferFrom(msg.sender, address(this), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)])); // call
                                                                                                        require(success10);
                                                                                                        bool flag4 = !(0x01 == var_v);
                                                                                                        if (returnData10.length == 0) {
                                                                                                            flag4 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                        }
                                                                                                        require(!(flag4), SafeERC20FailedOperation());
                                                                                                        (bool success11, bytes memory returnData11) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                                        require(success11);
                                                                                                        uint256 value21 = 0;
                                                                                                        uint256 value22 = var_d.length;
                                                                                                        if (success11) {
                                                                                                            uint256 value20 = returnData11.length;
                                                                                                            if (0x20 <= returnData11.length) {
                                                                                                                value20 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value20) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value21 = var_d;
                                                                                                            value22 = 0;
                                                                                                        }
                                                                                                        uint256 value23 = 0;
                                                                                                        if (value22 >= value19) {
                                                                                                        } else {
                                                                                                            value23 = value22;
                                                                                                        }
                                                                                                        require(!(value22 >= value19 && value22 - value19 != (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]) || value22 < value19), CustomError_fa1a51c5());
                                                                                                        (bool success12, bytes memory returnData12) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                                        require(success12);
                                                                                                        uint256 value25 = 0;
                                                                                                        uint256 value26 = var_d.length;
                                                                                                        if (success12) {
                                                                                                            uint256 value24 = returnData12.length;
                                                                                                            if (0x20 <= returnData12.length) {
                                                                                                                value24 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value24 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value24 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value24 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value24) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value25 = var_d;
                                                                                                            value26 = 0;
                                                                                                        }
                                                                                                        (bool success13, bytes memory returnData13) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                                        require(success13);
                                                                                                        uint256 value28 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                                                        uint256 value31 = var_d.length;
                                                                                                        if (success13) {
                                                                                                            uint256 value27 = returnData13.length;
                                                                                                            if (0x20 <= returnData13.length) {
                                                                                                                value27 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value27 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value27 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value27 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value27) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value28 = var_d;
                                                                                                            value31 = 0;
                                                                                                        }
                                                                                                        if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                        var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        (bool success14, bytes memory returnData14) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)])); // call
                                                                                                        uint256 value29 = 0;
                                                                                                        uint256 value30 = 0;
                                                                                                        bool flag6;
                                                                                                        if (success14) {
                                                                                                            bool flag25 = 0x01 == var_v;
                                                                                                            if (returnData14.length == 0) {
                                                                                                                flag25 = !(!(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length));
                                                                                                            }
                                                                                                            flag6 = flag25;
                                                                                                        } else {
                                                                                                            value29 = returnData14.length;
                                                                                                            value30 = var_v;
                                                                                                            flag6 = success14;
                                                                                                        }
                                                                                                        if (!flag6) {
                                                                                                            if (((var_d + 0x80) > 0xffffffffffffffff) | ((var_d + 0x80) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + 0x80;
                                                                                                            (bool success15, bytes memory returnData15) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                            require(success15);
                                                                                                            bool flag7 = !(0x01 == var_v);
                                                                                                            if (returnData15.length == 0) {
                                                                                                                flag7 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                            }
                                                                                                            require(!(flag7), SafeERC20FailedOperation());
                                                                                                            (bool success16, bytes memory returnData16) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)])); // call
                                                                                                            require(success16);
                                                                                                            bool flag8 = !(0x01 == var_v);
                                                                                                            if (returnData16.length == 0) {
                                                                                                                flag8 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                            }
                                                                                                            require(!(flag8), SafeERC20FailedOperation());
                                                                                                        }
                                                                                                        require(0xe3a24afea37dc8547cedb480e291881bba335c31.code.length != 0x0);
                                                                                                        (bool success17, bytes memory returnData17) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).Unknown_0d60cf12(0x71a7919663974000194e3ee699a455d7b6c6734d, (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)])); // call
                                                                                                        require(success17);
                                                                                                        uint256 value84;
                                                                                                        if (success17) {
                                                                                                            if (((var_d + ((0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            (bool success18, bytes memory returnData18) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                            uint256 value32 = 0;
                                                                                                            uint256 value33 = 0;
                                                                                                            bool flag9;
                                                                                                            if (success18) {
                                                                                                                bool flag26 = 0x01 == var_v;
                                                                                                                if (returnData18.length == 0) {
                                                                                                                    flag26 = !(!(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length));
                                                                                                                }
                                                                                                                flag9 = flag26;
                                                                                                            } else {
                                                                                                                value32 = returnData18.length;
                                                                                                                value33 = var_v;
                                                                                                                flag9 = success18;
                                                                                                            }
                                                                                                            if (!flag9) {
                                                                                                                if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                (bool success19, bytes memory returnData19) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                                require(success19);
                                                                                                                bool flag10 = !(0x01 == var_v);
                                                                                                                if (returnData19.length == 0) {
                                                                                                                    flag10 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                                }
                                                                                                                require(!(flag10), SafeERC20FailedOperation());
                                                                                                                (bool success20, bytes memory returnData20) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                                require(success20);
                                                                                                                bool flag11 = !(0x01 == var_v);
                                                                                                                if (returnData20.length == 0) {
                                                                                                                    flag11 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                                }
                                                                                                                require(!(flag11), SafeERC20FailedOperation());
                                                                                                            }
                                                                                                            (bool success21, bytes memory returnData21) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                                            require(success21);
                                                                                                            uint256 value35 = 0x20;
                                                                                                            uint256 value36 = var_d.length;
                                                                                                            if (success21) {
                                                                                                                uint256 value34 = returnData21.length;
                                                                                                                if (0x20 <= returnData21.length) {
                                                                                                                    value34 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value34 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value34 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value34 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value34) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value35 = var_d;
                                                                                                                value36 = 0;
                                                                                                            }
                                                                                                            (bool success22, bytes memory returnData22) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                                            require(success22);
                                                                                                            uint256 value38 = 0;
                                                                                                            uint256 value39 = var_d.length;
                                                                                                            if (success22) {
                                                                                                                uint256 value37 = returnData22.length;
                                                                                                                if (0x20 <= returnData22.length) {
                                                                                                                    value37 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value37 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value37 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value37 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value37) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value38 = var_d;
                                                                                                                value39 = 0;
                                                                                                            }
                                                                                                            uint256 value40 = 0;
                                                                                                            uint256 value41 = 0;
                                                                                                            bool flag12 = !((value36 - value26) == (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]));
                                                                                                            if (value36 >= value26) {
                                                                                                            } else {
                                                                                                                value40 = value36;
                                                                                                                value41 = value26;
                                                                                                                flag12 = value36 < value26;
                                                                                                            }
                                                                                                            uint256 value42 = 0;
                                                                                                            uint256 value43 = 0;
                                                                                                            if (!flag12) {
                                                                                                            } else {
                                                                                                                value42 = value39;
                                                                                                                value43 = value31;
                                                                                                            }
                                                                                                            require(!(!flag12 && value39 < value31 + (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]) || flag12), CustomError_2d98e82f());
                                                                                                            if (!((msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)] < 0x0a))) _desolexPanic(33);
                                                                                                            (bool success23, bytes memory returnData23) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(address(msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)])); // call
                                                                                                            require(success23);
                                                                                                            uint256 value45 = 0;
                                                                                                            uint256 value46 = var_d.length;
                                                                                                            if (success23) {
                                                                                                                uint256 value44 = returnData23.length;
                                                                                                                if (0x20 <= returnData23.length) {
                                                                                                                    value44 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value44) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value45 = var_d;
                                                                                                                value46 = 0;
                                                                                                            }
                                                                                                            (bool success24, bytes memory returnData24) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                                            require(success24);
                                                                                                            uint256 value48 = 0;
                                                                                                            uint256 value49 = var_d.length;
                                                                                                            if (success24) {
                                                                                                                uint256 value47 = returnData24.length;
                                                                                                                if (0x20 <= returnData24.length) {
                                                                                                                    value47 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value47 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value47 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value47 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value47) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value48 = var_d;
                                                                                                                value49 = 0;
                                                                                                            }
                                                                                                            uint256 value51 = 0;
                                                                                                            bool flag14;
                                                                                                            if (value49 == value19) {
                                                                                                                (bool success25, bytes memory returnData25) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                                                                require(success25);
                                                                                                                bool flag27 = !(var_d.length == value18);
                                                                                                                if (success25) {
                                                                                                                    uint256 value50 = returnData25.length;
                                                                                                                    if (0x20 <= returnData25.length) {
                                                                                                                        value50 = 0x20;
                                                                                                                    }
                                                                                                                    if (((var_d + ((value50 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value50 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                    var_d = var_d + ((value50 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    require(((var_d + value50) - var_d) >= 0x20);
                                                                                                                } else {
                                                                                                                    flag27 = 0x0 != value18;
                                                                                                                }
                                                                                                                flag14 = flag27;
                                                                                                            } else {
                                                                                                                value51 = value18;
                                                                                                                flag14 = value49 != value19;
                                                                                                            }
                                                                                                            uint256 value54 = 0;
                                                                                                            bool flag15;
                                                                                                            if (!flag14) {
                                                                                                                (bool success26, bytes memory returnData26) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                                                                require(success26);
                                                                                                                uint256 value53 = var_d.length;
                                                                                                                if (success26) {
                                                                                                                    uint256 value52 = returnData26.length;
                                                                                                                    if (0x20 <= returnData26.length) {
                                                                                                                        value52 = 0x20;
                                                                                                                    }
                                                                                                                    if (((var_d + ((value52 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value52 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                    var_d = var_d + ((value52 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    require(((var_d + value52) - var_d) >= 0x20);
                                                                                                                } else {
                                                                                                                    value53 = 0;
                                                                                                                }
                                                                                                                flag15 = value53 != value17;
                                                                                                            } else {
                                                                                                                value54 = value17;
                                                                                                                flag15 = flag14;
                                                                                                            }
                                                                                                            uint256 value56 = 0;
                                                                                                            uint256 value57 = 0;
                                                                                                            bool flag16;
                                                                                                            if (!flag15) {
                                                                                                                (bool success27, bytes memory returnData27) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).allowance(address(this), 0xe3a24afea37dc8547cedb480e291881bba335c31); // staticcall
                                                                                                                require(success27);
                                                                                                                bool flag28 = var_d.length;
                                                                                                                if (success27) {
                                                                                                                    uint256 value55 = returnData27.length;
                                                                                                                    if (0x20 <= returnData27.length) {
                                                                                                                        value55 = 0x20;
                                                                                                                    }
                                                                                                                    if (((var_d + ((value55 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value55 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                    var_d = var_d + ((value55 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    require(((var_d + value55) - var_d) >= 0x20);
                                                                                                                } else {
                                                                                                                    flag28 = 0x0 != 0x0;
                                                                                                                }
                                                                                                                flag16 = flag28;
                                                                                                            } else {
                                                                                                                value56 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                                                                value57 = 0x61e91daf03a49ecec334bffbf5008860cfb33333;
                                                                                                                flag16 = flag15;
                                                                                                            }
                                                                                                            require(!(flag16), CustomError_b072117c());
                                                                                                            if (!((msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)] < 0x0a))) _desolexPanic(33);
                                                                                                            emit Event_379d7d50(address(msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)]), value46, (msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)]), 0x61e91daf03a49ecec334bffbf5008860cfb33333, (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]));
                                                                                                            value84 = value46;
                                                                                                        } else {
                                                                                                            if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            (bool success28, bytes memory returnData28) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                            uint256 value58 = 0;
                                                                                                            uint256 value59 = 0;
                                                                                                            bool flag17;
                                                                                                            if (success28) {
                                                                                                                bool flag29 = 0x01 == var_v;
                                                                                                                if (returnData28.length == 0) {
                                                                                                                    flag29 = !(!(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length));
                                                                                                                }
                                                                                                                flag17 = flag29;
                                                                                                            } else {
                                                                                                                value58 = returnData28.length;
                                                                                                                value59 = var_v;
                                                                                                                flag17 = success28;
                                                                                                            }
                                                                                                            if (!flag17) {
                                                                                                                if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                (bool success29, bytes memory returnData29) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                                require(success29);
                                                                                                                bool flag18 = !(0x01 == var_v);
                                                                                                                if (returnData29.length == 0) {
                                                                                                                    flag18 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                                }
                                                                                                                require(!(flag18), SafeERC20FailedOperation());
                                                                                                                (bool success30, bytes memory returnData30) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                                                                require(success30);
                                                                                                                bool flag19 = !(0x01 == var_v);
                                                                                                                if (returnData30.length == 0) {
                                                                                                                    flag19 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                                                }
                                                                                                                require(!(flag19), SafeERC20FailedOperation());
                                                                                                            }
                                                                                                            (bool success31, bytes memory returnData31) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                                            require(success31);
                                                                                                            uint256 value61 = 0x20;
                                                                                                            uint256 value62 = var_d.length;
                                                                                                            if (success31) {
                                                                                                                uint256 value60 = returnData31.length;
                                                                                                                if (0x20 <= returnData31.length) {
                                                                                                                    value60 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value60 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value60 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value60 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value60) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value61 = var_d;
                                                                                                                value62 = 0;
                                                                                                            }
                                                                                                            (bool success32, bytes memory returnData32) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                                            require(success32);
                                                                                                            uint256 value64 = 0;
                                                                                                            uint256 value65 = var_d.length;
                                                                                                            if (success32) {
                                                                                                                uint256 value63 = returnData32.length;
                                                                                                                if (0x20 <= returnData32.length) {
                                                                                                                    value63 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value63 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value63 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value63 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value63) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value64 = var_d;
                                                                                                                value65 = 0;
                                                                                                            }
                                                                                                            uint256 value66 = 0;
                                                                                                            uint256 value67 = 0;
                                                                                                            bool flag20 = !((value62 - value26) == (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]));
                                                                                                            if (value62 >= value26) {
                                                                                                            } else {
                                                                                                                value66 = value62;
                                                                                                                value67 = value26;
                                                                                                                flag20 = value62 < value26;
                                                                                                            }
                                                                                                            uint256 value68 = 0;
                                                                                                            uint256 value69 = 0;
                                                                                                            if (!flag20) {
                                                                                                            } else {
                                                                                                                value68 = value65;
                                                                                                                value69 = value31;
                                                                                                            }
                                                                                                            require(!(!flag20 && value65 < value31 + (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]) || flag20), CustomError_2d98e82f());
                                                                                                            if (!((msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)] < 0x0a))) _desolexPanic(33);
                                                                                                            (bool success33, bytes memory returnData33) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(address(msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)])); // call
                                                                                                            require(success33);
                                                                                                            uint256 value71 = 0;
                                                                                                            uint256 value72 = var_d.length;
                                                                                                            if (success33) {
                                                                                                                uint256 value70 = returnData33.length;
                                                                                                                if (0x20 <= returnData33.length) {
                                                                                                                    value70 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value70 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value70 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value70 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value70) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value71 = var_d;
                                                                                                                value72 = 0;
                                                                                                            }
                                                                                                            (bool success34, bytes memory returnData34) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                                            require(success34);
                                                                                                            uint256 value74 = 0;
                                                                                                            uint256 value75 = var_d.length;
                                                                                                            if (success34) {
                                                                                                                uint256 value73 = returnData34.length;
                                                                                                                if (0x20 <= returnData34.length) {
                                                                                                                    value73 = 0x20;
                                                                                                                }
                                                                                                                if (((var_d + ((value73 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value73 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                var_d = var_d + ((value73 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                require(((var_d + value73) - var_d) >= 0x20);
                                                                                                            } else {
                                                                                                                value74 = var_d;
                                                                                                                value75 = 0;
                                                                                                            }
                                                                                                            uint256 value77 = 0;
                                                                                                            bool flag22;
                                                                                                            if (value75 == value19) {
                                                                                                                (bool success35, bytes memory returnData35) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                                                                require(success35);
                                                                                                                bool flag30 = !(var_d.length == value18);
                                                                                                                if (success35) {
                                                                                                                    uint256 value76 = returnData35.length;
                                                                                                                    if (0x20 <= returnData35.length) {
                                                                                                                        value76 = 0x20;
                                                                                                                    }
                                                                                                                    if (((var_d + ((value76 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value76 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                    var_d = var_d + ((value76 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    require(((var_d + value76) - var_d) >= 0x20);
                                                                                                                } else {
                                                                                                                    flag30 = 0x0 != value18;
                                                                                                                }
                                                                                                                flag22 = flag30;
                                                                                                            } else {
                                                                                                                value77 = value18;
                                                                                                                flag22 = value75 != value19;
                                                                                                            }
                                                                                                            uint256 value80 = 0;
                                                                                                            bool flag23;
                                                                                                            if (!flag22) {
                                                                                                                (bool success36, bytes memory returnData36) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                                                                require(success36);
                                                                                                                uint256 value79 = var_d.length;
                                                                                                                if (success36) {
                                                                                                                    uint256 value78 = returnData36.length;
                                                                                                                    if (0x20 <= returnData36.length) {
                                                                                                                        value78 = 0x20;
                                                                                                                    }
                                                                                                                    if (((var_d + ((value78 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value78 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                    var_d = var_d + ((value78 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    require(((var_d + value78) - var_d) >= 0x20);
                                                                                                                } else {
                                                                                                                    value79 = 0;
                                                                                                                }
                                                                                                                flag23 = value79 != value17;
                                                                                                            } else {
                                                                                                                value80 = value17;
                                                                                                                flag23 = flag22;
                                                                                                            }
                                                                                                            uint256 value82 = 0;
                                                                                                            uint256 value83 = 0;
                                                                                                            bool flag24;
                                                                                                            if (!flag23) {
                                                                                                                (bool success37, bytes memory returnData37) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).allowance(address(this), 0xe3a24afea37dc8547cedb480e291881bba335c31); // staticcall
                                                                                                                require(success37);
                                                                                                                bool flag31 = var_d.length;
                                                                                                                if (success37) {
                                                                                                                    uint256 value81 = returnData37.length;
                                                                                                                    if (0x20 <= returnData37.length) {
                                                                                                                        value81 = 0x20;
                                                                                                                    }
                                                                                                                    if (((var_d + ((value81 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value81 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                                    var_d = var_d + ((value81 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    require(((var_d + value81) - var_d) >= 0x20);
                                                                                                                } else {
                                                                                                                    flag31 = 0x0 != 0x0;
                                                                                                                }
                                                                                                                flag24 = flag31;
                                                                                                            } else {
                                                                                                                value82 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                                                                value83 = 0x61e91daf03a49ecec334bffbf5008860cfb33333;
                                                                                                                flag24 = flag23;
                                                                                                            }
                                                                                                            require(!(flag24), CustomError_b072117c());
                                                                                                            if (!((msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)] < 0x0a))) _desolexPanic(33);
                                                                                                            emit Event_379d7d50(address(msg.data[(value4 << 0x05) + ((0x04 + arg0) + 0x20)]), value72, (msg.data[(value4 << 0x05) + ((0x04 + arg1) + 0x20)]), 0x61e91daf03a49ecec334bffbf5008860cfb33333, (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]), (msg.data[(value4 << 0x05) + ((0x04 + arg2) + 0x20)]));
                                                                                                            value84 = value72;
                                                                                                        }
                                                                                                        if (!(value4 < var_d.length)) {
                                                                                                            _desolexPanic(50);
                                                                                                            break;
                                                                                                        }
                                                                                                        value4 = value4 + 0x01;
                                                                                                    }
                                                                                                    uint256 value9 = 0;
                                                                                                    uint256 value10 = var_d + 0x20;
                                                                                                    uint256 value11 = var_d + 0x40;
                                                                                                    while (true) {
                                                                                                        stor_0 = 0x01;
                                                                                                        if (value9 >= var_d.length) {
                                                                                                            return abi.encodePacked(0x20, var_d.length);
                                                                                                        }
                                                                                                        value9 = 0x01 + value9;
                                                                                                        value10 = value10 + 0x20;
                                                                                                        value11 = 0x20 + value11;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_9b8aeda5(address arg0, uint256 arg1, uint256 arg2) public payable returns (bytes memory) {
        if (!(msg.value)) {
            if ((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) >= 0x60) {
                if (arg0 == arg0) {
                    if (arg1 < 0x0a) {
                        if (stor_0 != 0x02) {
                            stor_0 = 0x02;
                            (bool success0, bytes memory returnData0) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).isActive(0xec3c2045da149c45c16ce5a6d86d63bb81d27c31c6383c580ec51f98d5c3ee4c, address(this)); // staticcall
                            if (success0) {
                                uint256 value0 = 0;
                                uint256 var_d;
                                uint256 value1 = var_d.length;
                                if (success0) {
                                    if (0x20 > returnData0.length) {
                                        if (((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                        var_d = var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                        require(((var_d + returnData0.length) - var_d) >= 0x20);
                                    } else {
                                        if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                        var_d = var_d + 0x20;
                                        require(((var_d + 0x20) - var_d) >= 0x20);
                                    }
                                    require(var_d.length == var_d.length);
                                } else {
                                    value0 = var_d;
                                    value1 = 0;
                                }
                                if (value1 != 0x0) {
                                    (bool success1, bytes memory returnData1) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).activeAddress(0x465332bcc850872a7077bd29d9c354678be3b12916a7f79faae70eb5d4f293e7); // staticcall
                                    if (success1) {
                                        uint256 value2 = 0;
                                        uint256 value3 = var_d.length;
                                        if (success1) {
                                            if (0x20 > returnData1.length) {
                                                if (((var_d + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                var_d = var_d + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                require(((var_d + returnData1.length) - var_d) >= 0x20);
                                            } else {
                                                if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                                var_d = var_d + 0x20;
                                                require(((var_d + 0x20) - var_d) >= 0x20);
                                            }
                                            require(var_d.length == (address(var_d.length)));
                                        } else {
                                            value2 = var_d;
                                            value3 = 0;
                                        }
                                        if (value3.code.length != 0x0) {
                                            (bool success2, bytes memory returnData2) = address(value3).OPERATIONS_ROLE(); // staticcall
                                            if (success2) {
                                                if (!(success2)) {
                                                    (bool success3, bytes memory returnData3) = address(value3).hasRole(0, msg.sender); // staticcall
                                                    if (success3) {
                                                        if (!(success3)) {
                                                            if (0 != 0) {
                                                                require(!(arg0 != address(0) && arg0 == address(this) || arg0 == address(0)), InvalidBeneficiary());
                                                                require(arg2 != 0x0, ZeroAmount());
                                                                (bool success4, bytes memory returnData4) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                require(success4);
                                                                uint256 value5 = 0;
                                                                uint256 value11 = var_d.length;
                                                                if (success4) {
                                                                    uint256 value4 = returnData4.length;
                                                                    if (0x20 <= returnData4.length) {
                                                                        value4 = 0x20;
                                                                    }
                                                                    if (((var_d + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    require(((var_d + value4) - var_d) >= 0x20);
                                                                } else {
                                                                    value5 = var_d;
                                                                    value11 = 0;
                                                                }
                                                                (bool success5, bytes memory returnData5) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                require(success5);
                                                                uint256 value7 = 0;
                                                                uint256 value10 = var_d.length;
                                                                if (success5) {
                                                                    uint256 value6 = returnData5.length;
                                                                    if (0x20 <= returnData5.length) {
                                                                        value6 = 0x20;
                                                                    }
                                                                    if (((var_d + ((value6 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value6 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((value6 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    require(((var_d + value6) - var_d) >= 0x20);
                                                                } else {
                                                                    value7 = var_d;
                                                                    value10 = 0;
                                                                }
                                                                (bool success6, bytes memory returnData6) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                require(success6);
                                                                uint256 value9 = var_d.length;
                                                                if (success6) {
                                                                    uint256 value8 = returnData6.length;
                                                                    if (0x20 <= returnData6.length) {
                                                                        value8 = 0x20;
                                                                    }
                                                                    if (((var_d + ((value8 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value8 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((value8 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    require(((var_d + value8) - var_d) >= 0x20);
                                                                } else {
                                                                    value9 = 0;
                                                                }
                                                                if (((var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                (bool success7, bytes memory returnData7) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transferFrom(msg.sender, address(this), arg2); // call
                                                                require(success7);
                                                                bool flag1 = !(0x01 == var_q);
                                                                if (returnData7.length == 0) {
                                                                    flag1 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                }
                                                                require(!(flag1), SafeERC20FailedOperation());
                                                                (bool success8, bytes memory returnData8) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                require(success8);
                                                                uint256 value13 = 0;
                                                                uint256 value14 = var_d.length;
                                                                if (success8) {
                                                                    uint256 value12 = returnData8.length;
                                                                    if (0x20 <= returnData8.length) {
                                                                        value12 = 0x20;
                                                                    }
                                                                    if (((var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    require(((var_d + value12) - var_d) >= 0x20);
                                                                } else {
                                                                    value13 = var_d;
                                                                    value14 = 0;
                                                                }
                                                                uint256 value15 = 0;
                                                                if (value14 >= value11) {
                                                                } else {
                                                                    value15 = value14;
                                                                }
                                                                require(!(value14 >= value11 && value14 - value11 != arg2 || value14 < value11), CustomError_fa1a51c5());
                                                                (bool success9, bytes memory returnData9) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                require(success9);
                                                                uint256 value17 = 0;
                                                                uint256 value18 = var_d.length;
                                                                if (success9) {
                                                                    uint256 value16 = returnData9.length;
                                                                    if (0x20 <= returnData9.length) {
                                                                        value16 = 0x20;
                                                                    }
                                                                    if (((var_d + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((value16 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    require(((var_d + value16) - var_d) >= 0x20);
                                                                } else {
                                                                    value17 = var_d;
                                                                    value18 = 0;
                                                                }
                                                                (bool success10, bytes memory returnData10) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                require(success10);
                                                                uint256 value20 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                uint256 value23 = var_d.length;
                                                                if (success10) {
                                                                    uint256 value19 = returnData10.length;
                                                                    if (0x20 <= returnData10.length) {
                                                                        value19 = 0x20;
                                                                    }
                                                                    if (((var_d + ((value19 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value19 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((value19 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    require(((var_d + value19) - var_d) >= 0x20);
                                                                } else {
                                                                    value20 = var_d;
                                                                    value23 = 0;
                                                                }
                                                                if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                (bool success11, bytes memory returnData11) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), arg2); // call
                                                                uint256 value21 = 0;
                                                                uint256 value22 = 0;
                                                                bool flag3;
                                                                if (success11) {
                                                                    bool flag37 = 0x01 == var_q;
                                                                    if (returnData11.length == 0) {
                                                                        flag37 = !(!(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length));
                                                                    }
                                                                    flag3 = flag37;
                                                                } else {
                                                                    value21 = returnData11.length;
                                                                    value22 = var_q;
                                                                    flag3 = success11;
                                                                }
                                                                if (!flag3) {
                                                                    if (((var_d + 0x80) > 0xffffffffffffffff) | ((var_d + 0x80) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + 0x80;
                                                                    (bool success12, bytes memory returnData12) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                    require(success12);
                                                                    bool flag4 = !(0x01 == var_q);
                                                                    if (returnData12.length == 0) {
                                                                        flag4 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                    }
                                                                    require(!(flag4), SafeERC20FailedOperation());
                                                                    (bool success13, bytes memory returnData13) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), arg2); // call
                                                                    require(success13);
                                                                    bool flag5 = !(0x01 == var_q);
                                                                    if (returnData13.length == 0) {
                                                                        flag5 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                    }
                                                                    require(!(flag5), SafeERC20FailedOperation());
                                                                }
                                                                require(0xe3a24afea37dc8547cedb480e291881bba335c31.code.length != 0x0);
                                                                (bool success14, bytes memory returnData14) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).Unknown_0d60cf12(0x71a7919663974000194e3ee699a455d7b6c6734d, arg2); // call
                                                                require(success14);
                                                                uint256 value76;
                                                                if (success14) {
                                                                    if (((var_d + ((0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    (bool success15, bytes memory returnData15) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                    uint256 value24 = 0;
                                                                    uint256 value25 = 0;
                                                                    bool flag6;
                                                                    if (success15) {
                                                                        bool flag38 = 0x01 == var_q;
                                                                        if (returnData15.length == 0) {
                                                                            flag38 = !(!(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length));
                                                                        }
                                                                        flag6 = flag38;
                                                                    } else {
                                                                        value24 = returnData15.length;
                                                                        value25 = var_q;
                                                                        flag6 = success15;
                                                                    }
                                                                    if (!flag6) {
                                                                        if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success16, bytes memory returnData16) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                        require(success16);
                                                                        bool flag7 = !(0x01 == var_q);
                                                                        if (returnData16.length == 0) {
                                                                            flag7 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                        }
                                                                        require(!(flag7), SafeERC20FailedOperation());
                                                                        (bool success17, bytes memory returnData17) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                        require(success17);
                                                                        bool flag8 = !(0x01 == var_q);
                                                                        if (returnData17.length == 0) {
                                                                            flag8 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                        }
                                                                        require(!(flag8), SafeERC20FailedOperation());
                                                                    }
                                                                    (bool success18, bytes memory returnData18) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                    require(success18);
                                                                    uint256 value27 = 0x20;
                                                                    uint256 value28 = var_d.length;
                                                                    if (success18) {
                                                                        uint256 value26 = returnData18.length;
                                                                        if (0x20 <= returnData18.length) {
                                                                            value26 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value26 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value26 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value26 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value26) - var_d) >= 0x20);
                                                                    } else {
                                                                        value27 = var_d;
                                                                        value28 = 0;
                                                                    }
                                                                    (bool success19, bytes memory returnData19) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                    require(success19);
                                                                    uint256 value30 = 0;
                                                                    uint256 value31 = var_d.length;
                                                                    if (success19) {
                                                                        uint256 value29 = returnData19.length;
                                                                        if (0x20 <= returnData19.length) {
                                                                            value29 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value29 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value29 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value29 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value29) - var_d) >= 0x20);
                                                                    } else {
                                                                        value30 = var_d;
                                                                        value31 = 0;
                                                                    }
                                                                    uint256 value32 = 0;
                                                                    uint256 value33 = 0;
                                                                    bool flag9 = !((value28 - value18) == arg2);
                                                                    if (value28 >= value18) {
                                                                    } else {
                                                                        value32 = value28;
                                                                        value33 = value18;
                                                                        flag9 = value28 < value18;
                                                                    }
                                                                    uint256 value34 = 0;
                                                                    uint256 value35 = 0;
                                                                    if (!flag9) {
                                                                    } else {
                                                                        value34 = value31;
                                                                        value35 = value23;
                                                                    }
                                                                    require(!(!flag9 && value31 < value23 + arg2 || flag9), CustomError_2d98e82f());
                                                                    if (!((arg1 < 0x0a))) _desolexPanic(33);
                                                                    (bool success20, bytes memory returnData20) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(arg0, arg1, arg2); // call
                                                                    require(success20);
                                                                    uint256 value37 = 0;
                                                                    uint256 value38 = var_d.length;
                                                                    if (success20) {
                                                                        uint256 value36 = returnData20.length;
                                                                        if (0x20 <= returnData20.length) {
                                                                            value36 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value36 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value36 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value36 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value36) - var_d) >= 0x20);
                                                                    } else {
                                                                        value37 = var_d;
                                                                        value38 = 0;
                                                                    }
                                                                    (bool success21, bytes memory returnData21) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                    require(success21);
                                                                    uint256 value40 = 0;
                                                                    uint256 value41 = var_d.length;
                                                                    if (success21) {
                                                                        uint256 value39 = returnData21.length;
                                                                        if (0x20 <= returnData21.length) {
                                                                            value39 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value39 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value39 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value39 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value39) - var_d) >= 0x20);
                                                                    } else {
                                                                        value40 = var_d;
                                                                        value41 = 0;
                                                                    }
                                                                    uint256 value43 = 0;
                                                                    bool flag11;
                                                                    if (value41 == value11) {
                                                                        (bool success22, bytes memory returnData22) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                        require(success22);
                                                                        bool flag39 = !(var_d.length == value10);
                                                                        if (success22) {
                                                                            uint256 value42 = returnData22.length;
                                                                            if (0x20 <= returnData22.length) {
                                                                                value42 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value42 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value42 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value42 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value42) - var_d) >= 0x20);
                                                                        } else {
                                                                            flag39 = 0x0 != value10;
                                                                        }
                                                                        flag11 = flag39;
                                                                    } else {
                                                                        value43 = value10;
                                                                        flag11 = value41 != value11;
                                                                    }
                                                                    uint256 value46 = 0;
                                                                    bool flag12;
                                                                    if (!flag11) {
                                                                        (bool success23, bytes memory returnData23) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                        require(success23);
                                                                        uint256 value45 = var_d.length;
                                                                        if (success23) {
                                                                            uint256 value44 = returnData23.length;
                                                                            if (0x20 <= returnData23.length) {
                                                                                value44 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value44) - var_d) >= 0x20);
                                                                        } else {
                                                                            value45 = 0;
                                                                        }
                                                                        flag12 = value45 != value9;
                                                                    } else {
                                                                        value46 = value9;
                                                                        flag12 = flag11;
                                                                    }
                                                                    uint256 value48 = 0;
                                                                    uint256 value49 = 0;
                                                                    bool flag13;
                                                                    if (!flag12) {
                                                                        (bool success24, bytes memory returnData24) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).allowance(address(this), 0xe3a24afea37dc8547cedb480e291881bba335c31); // staticcall
                                                                        require(success24);
                                                                        bool flag40 = var_d.length;
                                                                        if (success24) {
                                                                            uint256 value47 = returnData24.length;
                                                                            if (0x20 <= returnData24.length) {
                                                                                value47 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value47 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value47 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value47 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value47) - var_d) >= 0x20);
                                                                        } else {
                                                                            flag40 = 0x0 != 0x0;
                                                                        }
                                                                        flag13 = flag40;
                                                                    } else {
                                                                        value48 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                        value49 = 0x61e91daf03a49ecec334bffbf5008860cfb33333;
                                                                        flag13 = flag12;
                                                                    }
                                                                    require(!(flag13), CustomError_b072117c());
                                                                    if (!((arg1 < 0x0a))) _desolexPanic(33);
                                                                    emit Event_379d7d50(arg0, value38, arg1, 0x61e91daf03a49ecec334bffbf5008860cfb33333, arg2, arg2, arg2);
                                                                    value76 = value38;
                                                                } else {
                                                                    if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                    var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    (bool success25, bytes memory returnData25) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                    uint256 value50 = 0;
                                                                    uint256 value51 = 0;
                                                                    bool flag14;
                                                                    if (success25) {
                                                                        bool flag41 = 0x01 == var_q;
                                                                        if (returnData25.length == 0) {
                                                                            flag41 = !(!(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length));
                                                                        }
                                                                        flag14 = flag41;
                                                                    } else {
                                                                        value50 = returnData25.length;
                                                                        value51 = var_q;
                                                                        flag14 = success25;
                                                                    }
                                                                    if (!flag14) {
                                                                        if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success26, bytes memory returnData26) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                        require(success26);
                                                                        bool flag15 = !(0x01 == var_q);
                                                                        if (returnData26.length == 0) {
                                                                            flag15 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                        }
                                                                        require(!(flag15), SafeERC20FailedOperation());
                                                                        (bool success27, bytes memory returnData27) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(address(0xe3a24afea37dc8547cedb480e291881bba335c31), 0); // call
                                                                        require(success27);
                                                                        bool flag16 = !(0x01 == var_q);
                                                                        if (returnData27.length == 0) {
                                                                            flag16 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                        }
                                                                        require(!(flag16), SafeERC20FailedOperation());
                                                                    }
                                                                    (bool success28, bytes memory returnData28) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                    require(success28);
                                                                    uint256 value53 = 0x20;
                                                                    uint256 value54 = var_d.length;
                                                                    if (success28) {
                                                                        uint256 value52 = returnData28.length;
                                                                        if (0x20 <= returnData28.length) {
                                                                            value52 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value52 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value52 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value52 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value52) - var_d) >= 0x20);
                                                                    } else {
                                                                        value53 = var_d;
                                                                        value54 = 0;
                                                                    }
                                                                    (bool success29, bytes memory returnData29) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                    require(success29);
                                                                    uint256 value56 = 0;
                                                                    uint256 value57 = var_d.length;
                                                                    if (success29) {
                                                                        uint256 value55 = returnData29.length;
                                                                        if (0x20 <= returnData29.length) {
                                                                            value55 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value55 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value55 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value55 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value55) - var_d) >= 0x20);
                                                                    } else {
                                                                        value56 = var_d;
                                                                        value57 = 0;
                                                                    }
                                                                    uint256 value58 = 0;
                                                                    uint256 value59 = 0;
                                                                    bool flag17 = !((value54 - value18) == arg2);
                                                                    if (value54 >= value18) {
                                                                    } else {
                                                                        value58 = value54;
                                                                        value59 = value18;
                                                                        flag17 = value54 < value18;
                                                                    }
                                                                    uint256 value60 = 0;
                                                                    uint256 value61 = 0;
                                                                    if (!flag17) {
                                                                    } else {
                                                                        value60 = value57;
                                                                        value61 = value23;
                                                                    }
                                                                    require(!(!flag17 && value57 < value23 + arg2 || flag17), CustomError_2d98e82f());
                                                                    if (!((arg1 < 0x0a))) _desolexPanic(33);
                                                                    (bool success30, bytes memory returnData30) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(arg0, arg1, arg2); // call
                                                                    require(success30);
                                                                    uint256 value63 = 0;
                                                                    uint256 value64 = var_d.length;
                                                                    if (success30) {
                                                                        uint256 value62 = returnData30.length;
                                                                        if (0x20 <= returnData30.length) {
                                                                            value62 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value62 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value62 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value62 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value62) - var_d) >= 0x20);
                                                                    } else {
                                                                        value63 = var_d;
                                                                        value64 = 0;
                                                                    }
                                                                    (bool success31, bytes memory returnData31) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                    require(success31);
                                                                    uint256 value66 = 0;
                                                                    uint256 value67 = var_d.length;
                                                                    if (success31) {
                                                                        uint256 value65 = returnData31.length;
                                                                        if (0x20 <= returnData31.length) {
                                                                            value65 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value65 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value65 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value65 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value65) - var_d) >= 0x20);
                                                                    } else {
                                                                        value66 = var_d;
                                                                        value67 = 0;
                                                                    }
                                                                    uint256 value69 = 0;
                                                                    bool flag19;
                                                                    if (value67 == value11) {
                                                                        (bool success32, bytes memory returnData32) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                        require(success32);
                                                                        bool flag42 = !(var_d.length == value10);
                                                                        if (success32) {
                                                                            uint256 value68 = returnData32.length;
                                                                            if (0x20 <= returnData32.length) {
                                                                                value68 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value68 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value68 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value68 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value68) - var_d) >= 0x20);
                                                                        } else {
                                                                            flag42 = 0x0 != value10;
                                                                        }
                                                                        flag19 = flag42;
                                                                    } else {
                                                                        value69 = value10;
                                                                        flag19 = value67 != value11;
                                                                    }
                                                                    uint256 value72 = 0;
                                                                    bool flag20;
                                                                    if (!flag19) {
                                                                        (bool success33, bytes memory returnData33) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                        require(success33);
                                                                        uint256 value71 = var_d.length;
                                                                        if (success33) {
                                                                            uint256 value70 = returnData33.length;
                                                                            if (0x20 <= returnData33.length) {
                                                                                value70 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value70 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value70 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value70 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value70) - var_d) >= 0x20);
                                                                        } else {
                                                                            value71 = 0;
                                                                        }
                                                                        flag20 = value71 != value9;
                                                                    } else {
                                                                        value72 = value9;
                                                                        flag20 = flag19;
                                                                    }
                                                                    uint256 value74 = 0;
                                                                    uint256 value75 = 0;
                                                                    bool flag21;
                                                                    if (!flag20) {
                                                                        (bool success34, bytes memory returnData34) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).allowance(address(this), 0xe3a24afea37dc8547cedb480e291881bba335c31); // staticcall
                                                                        require(success34);
                                                                        bool flag43 = var_d.length;
                                                                        if (success34) {
                                                                            uint256 value73 = returnData34.length;
                                                                            if (0x20 <= returnData34.length) {
                                                                                value73 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value73 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value73 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value73 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value73) - var_d) >= 0x20);
                                                                        } else {
                                                                            flag43 = 0x0 != 0x0;
                                                                        }
                                                                        flag21 = flag43;
                                                                    } else {
                                                                        value74 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                        value75 = 0x61e91daf03a49ecec334bffbf5008860cfb33333;
                                                                        flag21 = flag20;
                                                                    }
                                                                    require(!(flag21), CustomError_b072117c());
                                                                    if (!((arg1 < 0x0a))) _desolexPanic(33);
                                                                    emit Event_379d7d50(arg0, value64, arg1, 0x61e91daf03a49ecec334bffbf5008860cfb33333, arg2, arg2, arg2);
                                                                    value76 = value64;
                                                                }
                                                                stor_0 = 0x01;
                                                                return abi.encodePacked(value76, arg2);
                                                            }
                                                            if (msg.sender.code.length != 0x0) {
                                                                (bool success35, bytes memory returnData35) = address(msg.sender).moduleKey(); // staticcall
                                                                if (success35) {
                                                                    uint256 value78 = msg.data[0] >> 0xe0;
                                                                    uint256 value79 = var_d.length;
                                                                    if (success35) {
                                                                        uint256 value77 = returnData35.length;
                                                                        if (0x20 <= returnData35.length) {
                                                                            value77 = 0x20;
                                                                        }
                                                                        if (((var_d + ((value77 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value77 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                        var_d = var_d + ((value77 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_d + value77) - var_d) >= 0x20);
                                                                    } else {
                                                                        value78 = var_d;
                                                                        value79 = 0;
                                                                    }
                                                                    (bool success36, bytes memory returnData36) = address(msg.sender).protocolRegistry(); // staticcall
                                                                    if (success36) {
                                                                        uint256 value81 = msg.data[0] >> 0xe0;
                                                                        uint256 value82 = var_d.length;
                                                                        if (success36) {
                                                                            uint256 value80 = returnData36.length;
                                                                            if (0x20 <= returnData36.length) {
                                                                                value80 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value80 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value80 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value80 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value80) - var_d) >= 0x20);
                                                                            require(var_d.length == (address(var_d.length)));
                                                                        } else {
                                                                            value81 = var_d;
                                                                            value82 = 0;
                                                                        }
                                                                        bool flag31;
                                                                        if ((0xffffffffffffffffffffffffffffffffffffffff & value82) == 0xfd89fb9faf9de258c2148b2d0ec14da16ee42593) {
                                                                            bool flag22 = value79 == 0x68de1c984c4eebc5de4b763a1ad06988c52ea9c0d76dfd49a8657b00be3dae24;
                                                                            if (value79 == 0x3dce1dc86d1deb25701dba1ad261b444c7b5a7a6b9092d0a6d658ac794c13f00) {
                                                                                flag22 = value79 == 0x3dce1dc86d1deb25701dba1ad261b444c7b5a7a6b9092d0a6d658ac794c13f00;
                                                                            }
                                                                            bool flag23 = value79 == 0xbc927bfc5c186c97e68035e3b13e627bfcabf0c3e3c383eb0baaa821e9c0993;
                                                                            if (flag22) {
                                                                                flag23 = flag22;
                                                                            }
                                                                            bool flag24 = value79 == 0x3b72d04cd592877045c3c489fde60236e534d59d13644602ca8793a8de465735;
                                                                            if (flag23) {
                                                                                flag24 = flag23;
                                                                            }
                                                                            bool flag25 = value79 == 0x44d1897000e1820489c98f12d565e42cac755320f25261f7078ea1c4b54bf1e3;
                                                                            if (flag24) {
                                                                                flag25 = flag24;
                                                                            }
                                                                            bool flag26 = value79 == 0x59b73660b44be2e41bfe589999d21f4dc6542904655f8d2668d67af9a866f6e8;
                                                                            if (flag25) {
                                                                                flag26 = flag25;
                                                                            }
                                                                            bool flag27 = value79 == 0xd7d99e9ca15bc1ab44d3d7d29d8fe31071d7776deb01a8d9a728b73eed95f421;
                                                                            if (flag26) {
                                                                                flag27 = flag26;
                                                                            }
                                                                            bool flag28 = value79 == 0x531aa12b76219651557faf31b798ad39530437acdc017b2a4cfa4e34d41b5e8f;
                                                                            if (flag27) {
                                                                                flag28 = flag27;
                                                                            }
                                                                            bool flag29 = value79 == 0x394c2f20e3fe5e5a2d5d9824b1ccc14d91d17c934caaef23a00ca65ad7d6b244;
                                                                            if (flag28) {
                                                                                flag29 = flag28;
                                                                            }
                                                                            bool flag30 = value79 == 0x689a43c59c00602c815d4b978a6b148a95d2f0b49de2a245129fb1f0a7359035;
                                                                            if (flag29) {
                                                                                flag30 = flag29;
                                                                            }
                                                                            flag31 = !flag30;
                                                                        } else {
                                                                            flag31 = (0xffffffffffffffffffffffffffffffffffffffff & value82) != 0xfd89fb9faf9de258c2148b2d0ec14da16ee42593;
                                                                        }
                                                                        uint256 value88 = msg.data[0] >> 0xe0;
                                                                        uint256 value89 = msg.data[0] >> 0xe0;
                                                                        bool flag34;
                                                                        if (!flag31) {
                                                                            (bool success37, bytes memory returnData37) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).statusOf(value79, msg.sender); // staticcall
                                                                            require(success37);
                                                                            uint256 value84 = msg.data[0] >> 0xe0;
                                                                            uint256 value85 = var_d.length;
                                                                            if (success37) {
                                                                                uint256 value83 = returnData37.length;
                                                                                if (0x20 <= returnData37.length) {
                                                                                    value83 = 0x20;
                                                                                }
                                                                                if (((var_d + ((value83 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value83 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                var_d = var_d + ((value83 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(((var_d + value83) - var_d) >= 0x20);
                                                                                require(var_d.length < 0x05);
                                                                            } else {
                                                                                value84 = var_d;
                                                                                value85 = 0;
                                                                            }
                                                                            if (!(value85 < 0x05)) _desolexPanic(33);
                                                                            uint256 value87 = msg.data[0] >> 0xe0;
                                                                            bool flag33;
                                                                            if (value85 != 0x1) {
                                                                                uint256 value86 = msg.data[0] >> 0xe0;
                                                                                bool flag32 = value85 == 0x3;
                                                                                if (value85 == 0x02) {
                                                                                    value86 = value85;
                                                                                    flag32 = value85 == 0x2;
                                                                                }
                                                                                flag33 = flag32;
                                                                            } else {
                                                                                value87 = value85;
                                                                                flag33 = value85 == 0x1;
                                                                            }
                                                                            flag34 = !flag33;
                                                                        } else {
                                                                            value88 = 0xfd89fb9faf9de258c2148b2d0ec14da16ee42593;
                                                                            value89 = value79;
                                                                            flag34 = flag31;
                                                                        }
                                                                        require(!flag34, CustomError_d3787760());
                                                                        if (!(arg0 != address(0) && arg0 == address(this) || arg0 == address(0))) {
                                                                            if (arg2 != 0x0) {
                                                                                (bool success38, bytes memory returnData38) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                if (success38) {
                                                                                    uint256 value91 = 0;
                                                                                    uint256 value97 = var_d.length;
                                                                                    if (success38) {
                                                                                        uint256 value90 = returnData38.length;
                                                                                        if (0x20 <= returnData38.length) {
                                                                                            value90 = 0x20;
                                                                                        }
                                                                                        if (((var_d + ((value90 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value90 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                        var_d = var_d + ((value90 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        require(((var_d + value90) - var_d) >= 0x20);
                                                                                    } else {
                                                                                        value91 = var_d;
                                                                                        value97 = 0;
                                                                                    }
                                                                                    (bool success39, bytes memory returnData39) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                                                    if (success39) {
                                                                                        uint256 value93 = 0;
                                                                                        uint256 value96 = var_d.length;
                                                                                        if (success39) {
                                                                                            uint256 value92 = returnData39.length;
                                                                                            if (0x20 <= returnData39.length) {
                                                                                                value92 = 0x20;
                                                                                            }
                                                                                            if (((var_d + ((value92 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value92 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                            var_d = var_d + ((value92 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                            require(((var_d + value92) - var_d) >= 0x20);
                                                                                        } else {
                                                                                            value93 = var_d;
                                                                                            value96 = 0;
                                                                                        }
                                                                                        (bool success40, bytes memory returnData40) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                                                        require(success40);
                                                                                        uint256 value95 = var_d.length;
                                                                                        if (success40) {
                                                                                            uint256 value94 = returnData40.length;
                                                                                            if (0x20 <= returnData40.length) {
                                                                                                value94 = 0x20;
                                                                                            }
                                                                                            if (((var_d + ((value94 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value94 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                            var_d = var_d + ((value94 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                            require(((var_d + value94) - var_d) >= 0x20);
                                                                                        } else {
                                                                                            value95 = 0;
                                                                                        }
                                                                                        if (((var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                        var_d = var_d + ((0x84 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        (bool success41, bytes memory returnData41) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transferFrom(msg.sender, address(this), arg2); // call
                                                                                        require(success41);
                                                                                        bool flag36 = !(0x01 == var_q);
                                                                                        if (returnData41.length == 0) {
                                                                                            flag36 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                        }
                                                                                        require(!(flag36), SafeERC20FailedOperation());
                                                                                        address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_8191f5e5(uint256 arg0, uint256 arg1) public payable returns (uint256) {
        if (!(msg.value)) {
            if ((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) >= 0x40) {
                if (arg0 < 0x0a) {
                    if (stor_0 != 0x02) {
                        stor_0 = 0x02;
                        (bool success0, bytes memory returnData0) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).isActive(0xec3c2045da149c45c16ce5a6d86d63bb81d27c31c6383c580ec51f98d5c3ee4c, address(this)); // staticcall
                        if (success0) {
                            uint256 value0 = 0;
                            uint256 var_d;
                            uint256 value1 = var_d.length;
                            if (success0) {
                                if (0x20 > returnData0.length) {
                                    if (((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                    var_d = var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                    require(((var_d + returnData0.length) - var_d) >= 0x20);
                                } else {
                                    if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                    var_d = var_d + 0x20;
                                    require(((var_d + 0x20) - var_d) >= 0x20);
                                }
                                require(var_d.length == var_d.length);
                            } else {
                                value0 = var_d;
                                value1 = 0;
                            }
                            if (value1 != 0x0) {
                                if (arg1 != 0x0) {
                                    (bool success1, bytes memory returnData1) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                    if (success1) {
                                        uint256 value3 = msg.data[0] >> 0xe0;
                                        uint256 value5 = var_d.length;
                                        if (success1) {
                                            uint256 value2 = returnData1.length;
                                            if (0x20 <= returnData1.length) {
                                                value2 = 0x20;
                                            }
                                            if (((var_d + ((value2 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value2 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                            var_d = var_d + ((value2 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                            require(((var_d + value2) - var_d) >= 0x20);
                                        } else {
                                            value3 = var_d;
                                            value5 = 0;
                                        }
                                        (bool success2, bytes memory returnData2) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                        if (success2) {
                                            uint256 value6 = msg.data[0] >> 0xe0;
                                            uint256 value8 = var_d.length;
                                            if (success2) {
                                                uint256 value4 = returnData2.length;
                                                if (0x20 <= returnData2.length) {
                                                    value4 = 0x20;
                                                }
                                                if (((var_d + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                var_d = var_d + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                require(((var_d + value4) - var_d) >= 0x20);
                                            } else {
                                                value6 = var_d;
                                                value8 = 0;
                                            }
                                            (bool success3, bytes memory returnData3) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                            if (success3) {
                                                if (success3) {
                                                    uint256 value7 = returnData3.length;
                                                    if (0x20 <= returnData3.length) {
                                                        value7 = 0x20;
                                                    }
                                                    if (((var_d + ((value7 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value7 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                    var_d = var_d + ((value7 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                    if (((var_d + value7) - var_d) >= 0x20) {
                                                        if (((var_d + 0xa0) > 0xffffffffffffffff) | ((var_d + 0xa0) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + 0xa0;
                                                        (bool success4, bytes memory returnData4) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transferFrom(msg.sender, address(this), arg1); // call
                                                        require(success4);
                                                        bool flag0 = !(0x01 == var_o);
                                                        if (returnData4.length == 0) {
                                                            flag0 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length == 0x0;
                                                        }
                                                        require(!(flag0), SafeERC20FailedOperation());
                                                        (bool success5, bytes memory returnData5) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                        if (success5) {
                                                            uint256 value10 = msg.data[0] >> 0xe0;
                                                            uint256 value11 = var_d.length;
                                                            if (success5) {
                                                                uint256 value9 = returnData5.length;
                                                                if (0x20 <= returnData5.length) {
                                                                    value9 = 0x20;
                                                                }
                                                                if (((var_d + ((value9 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value9 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value9 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value9) - var_d) >= 0x20);
                                                            } else {
                                                                value10 = var_d;
                                                                value11 = 0;
                                                            }
                                                            if (value11 > value5) {
                                                                if ((value11 - value5) <= value11) {
                                                                    (bool success6, bytes memory returnData6) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                    if (success6) {
                                                                        uint256 value13 = 0;
                                                                        uint256 value14 = var_d.length;
                                                                        if (success6) {
                                                                            uint256 value12 = returnData6.length;
                                                                            if (0x20 <= returnData6.length) {
                                                                                value12 = 0x20;
                                                                            }
                                                                            if (((var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_d + value12) - var_d) >= 0x20);
                                                                        } else {
                                                                            value13 = var_d;
                                                                            value14 = 0;
                                                                        }
                                                                        (bool success7, bytes memory returnData7) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                        if (success7) {
                                                                            uint256 value16 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                                            uint256 value19 = var_d.length;
                                                                            if (success7) {
                                                                                uint256 value15 = returnData7.length;
                                                                                if (0x20 <= returnData7.length) {
                                                                                    value15 = 0x20;
                                                                                }
                                                                                if (((var_d + ((value15 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value15 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                var_d = var_d + ((value15 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(((var_d + value15) - var_d) >= 0x20);
                                                                            } else {
                                                                                value16 = var_d;
                                                                                value19 = 0;
                                                                            }
                                                                            if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                            var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            (bool success8, bytes memory returnData8) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, value11 - value5); // call
                                                                            uint256 value17 = 0;
                                                                            uint256 value18 = 0;
                                                                            bool flag1;
                                                                            if (success8) {
                                                                                bool flag29 = 0x01 == var_o;
                                                                                if (returnData8.length == 0) {
                                                                                    flag29 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length != 0x0;
                                                                                }
                                                                                flag1 = flag29;
                                                                            } else {
                                                                                value17 = returnData8.length;
                                                                                value18 = var_o;
                                                                                flag1 = success8;
                                                                            }
                                                                            if (!flag1) {
                                                                                if (((var_d + 0x80) > 0xffffffffffffffff) | ((var_d + 0x80) < var_d)) _desolexPanic(65);
                                                                                var_d = var_d + 0x80;
                                                                                (bool success9, bytes memory returnData9) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                                                require(success9);
                                                                                bool flag2 = !(0x01 == var_o);
                                                                                if (returnData9.length == 0) {
                                                                                    flag2 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                }
                                                                                require(!(flag2), SafeERC20FailedOperation());
                                                                                (bool success10, bytes memory returnData10) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, value11 - value5); // call
                                                                                require(success10);
                                                                                bool flag3 = !(0x01 == var_o);
                                                                                if (returnData10.length == 0) {
                                                                                    flag3 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                }
                                                                                require(!(flag3), SafeERC20FailedOperation());
                                                                            }
                                                                            require(0xe3a24afea37dc8547cedb480e291881bba335c31.code.length != 0x0);
                                                                            (bool success11, bytes memory returnData11) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).Unknown_0d60cf12(0x71a7919663974000194e3ee699a455d7b6c6734d, value11 - value5); // call
                                                                            require(success11);
                                                                            if (!(success11)) {
                                                                                if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                (bool success12, bytes memory returnData12) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                                                uint256 value20 = 0;
                                                                                uint256 value21 = 0;
                                                                                bool flag4;
                                                                                if (success12) {
                                                                                    bool flag30 = 0x01 == var_o;
                                                                                    if (returnData12.length == 0) {
                                                                                        flag30 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length != 0x0;
                                                                                    }
                                                                                    flag4 = flag30;
                                                                                } else {
                                                                                    value20 = returnData12.length;
                                                                                    value21 = var_o;
                                                                                    flag4 = success12;
                                                                                }
                                                                                if (!flag4) {
                                                                                    if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                    var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                    (bool success13, bytes memory returnData13) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                                                    require(success13);
                                                                                    bool flag5 = !(0x01 == var_o);
                                                                                    if (returnData13.length == 0) {
                                                                                        flag5 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                    }
                                                                                    require(!(flag5), SafeERC20FailedOperation());
                                                                                    (bool success14, bytes memory returnData14) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                                                    require(success14);
                                                                                    bool flag6 = !(0x01 == var_o);
                                                                                    if (returnData14.length == 0) {
                                                                                        flag6 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                                                    }
                                                                                    require(!(flag6), SafeERC20FailedOperation());
                                                                                }
                                                                                (bool success15, bytes memory returnData15) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                if (success15) {
                                                                                    uint256 value23 = 0x20;
                                                                                    uint256 value24 = var_d.length;
                                                                                    if (success15) {
                                                                                        uint256 value22 = returnData15.length;
                                                                                        if (0x20 <= returnData15.length) {
                                                                                            value22 = 0x20;
                                                                                        }
                                                                                        if (((var_d + ((value22 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value22 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                        var_d = var_d + ((value22 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        require(((var_d + value22) - var_d) >= 0x20);
                                                                                    } else {
                                                                                        value23 = var_d;
                                                                                        value24 = 0;
                                                                                    }
                                                                                    (bool success16, bytes memory returnData16) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                                                    if (success16) {
                                                                                        uint256 value26 = 0;
                                                                                        uint256 value27 = var_d.length;
                                                                                        if (success16) {
                                                                                            uint256 value25 = returnData16.length;
                                                                                            if (0x20 <= returnData16.length) {
                                                                                                value25 = 0x20;
                                                                                            }
                                                                                            if (((var_d + ((value25 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value25 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                            var_d = var_d + ((value25 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                            require(((var_d + value25) - var_d) >= 0x20);
                                                                                        } else {
                                                                                            value26 = var_d;
                                                                                            value27 = 0;
                                                                                        }
                                                                                        uint256 value28 = 0;
                                                                                        uint256 value29 = 0;
                                                                                        bool flag7 = value24 - value14 != value11 - value5;
                                                                                        if (value24 >= value14) {
                                                                                        } else {
                                                                                            value28 = value24;
                                                                                            value29 = value14;
                                                                                            flag7 = value24 < value14;
                                                                                        }
                                                                                        uint256 value30 = 0;
                                                                                        uint256 value31 = 0;
                                                                                        if (!flag7) {
                                                                                        } else {
                                                                                            value30 = value27;
                                                                                            value31 = value19;
                                                                                        }
                                                                                        if (!(!flag7 && value27 < value19 + (value11 - value5) || flag7)) {
                                                                                            if (arg0 < 0x0a) {
                                                                                                (bool success17, bytes memory returnData17) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(msg.sender, arg0, value11 - value5); // call
                                                                                                if (success17) {
                                                                                                    uint256 value33 = 0;
                                                                                                    uint256 value34 = var_d.length;
                                                                                                    if (success17) {
                                                                                                        uint256 value32 = returnData17.length;
                                                                                                        if (0x20 <= returnData17.length) {
                                                                                                            value32 = 0x20;
                                                                                                        }
                                                                                                        if (((var_d + ((value32 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value32 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                        var_d = var_d + ((value32 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        require(((var_d + value32) - var_d) >= 0x20);
                                                                                                    } else {
                                                                                                        value33 = var_d;
                                                                                                        value34 = 0;
                                                                                                    }
                                                                                                    (bool success18, bytes memory returnData18) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                                                                    if (success18) {
                                                                                                        uint256 value36 = 0;
                                                                                                        uint256 value37 = var_d.length;
                                                                                                        if (success18) {
                                                                                                            uint256 value35 = returnData18.length;
                                                                                                            if (0x20 <= returnData18.length) {
                                                                                                                value35 = 0x20;
                                                                                                            }
                                                                                                            if (((var_d + ((value35 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value35 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                                                            var_d = var_d + ((value35 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            require(((var_d + value35) - var_d) >= 0x20);
                                                                                                        } else {
                                                                                                            value36 = var_d;
                                                                                                            value37 = 0;
                                                                                                        }
                                                                                                        if (value37 != value5) {
                                                                                                            require(value37 == value5, CustomError_b072117c());
                                                                                                            emit Event_379d7d50(msg.sender, value34, arg0, 0x61e91daf03a49ecec334bffbf5008860cfb33333, arg1, value11 - value5, value11 - value5);
                                                                                                            stor_0 = 0x01;
                                                                                                            return value34;
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                } else {
                                                    if (((var_d + 0xa0) > 0xffffffffffffffff) | ((var_d + 0xa0) < var_d)) _desolexPanic(65);
                                                    var_d = var_d + 0xa0;
                                                    (bool success19, bytes memory returnData19) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transferFrom(msg.sender, address(this), arg1); // call
                                                    require(success19);
                                                    bool flag9 = !(0x01 == var_o);
                                                    if (returnData19.length == 0) {
                                                        flag9 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length == 0x0;
                                                    }
                                                    require(!(flag9), SafeERC20FailedOperation());
                                                    (bool success20, bytes memory returnData20) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                    require(success20);
                                                    uint256 value39 = msg.data[0] >> 0xe0;
                                                    uint256 value40 = var_d.length;
                                                    if (success20) {
                                                        uint256 value38 = returnData20.length;
                                                        if (0x20 <= returnData20.length) {
                                                            value38 = 0x20;
                                                        }
                                                        if (((var_d + ((value38 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value38 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + ((value38 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(((var_d + value38) - var_d) >= 0x20);
                                                    } else {
                                                        value39 = var_d;
                                                        value40 = 0;
                                                    }
                                                    require(value40 > value5, ZeroReceived());
                                                    (bool success21, bytes memory returnData21) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                    require(success21);
                                                    uint256 value42 = 0;
                                                    uint256 value43 = var_d.length;
                                                    if (success21) {
                                                        uint256 value41 = returnData21.length;
                                                        if (0x20 <= returnData21.length) {
                                                            value41 = 0x20;
                                                        }
                                                        if (((var_d + ((value41 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value41 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + ((value41 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(((var_d + value41) - var_d) >= 0x20);
                                                    } else {
                                                        value42 = var_d;
                                                        value43 = 0;
                                                    }
                                                    (bool success22, bytes memory returnData22) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                    require(success22);
                                                    uint256 value45 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                    uint256 value48 = var_d.length;
                                                    if (success22) {
                                                        uint256 value44 = returnData22.length;
                                                        if (0x20 <= returnData22.length) {
                                                            value44 = 0x20;
                                                        }
                                                        if (((var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + ((value44 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(((var_d + value44) - var_d) >= 0x20);
                                                    } else {
                                                        value45 = var_d;
                                                        value48 = 0;
                                                    }
                                                    if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                    var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                    (bool success23, bytes memory returnData23) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, value40 - value5); // call
                                                    uint256 value46 = 0;
                                                    uint256 value47 = 0;
                                                    bool flag10;
                                                    if (success23) {
                                                        bool flag31 = 0x01 == var_o;
                                                        if (returnData23.length == 0) {
                                                            flag31 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length != 0x0;
                                                        }
                                                        flag10 = flag31;
                                                    } else {
                                                        value46 = returnData23.length;
                                                        value47 = var_o;
                                                        flag10 = success23;
                                                    }
                                                    if (!flag10) {
                                                        if (((var_d + 0x80) > 0xffffffffffffffff) | ((var_d + 0x80) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + 0x80;
                                                        (bool success24, bytes memory returnData24) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                        require(success24);
                                                        bool flag11 = !(0x01 == var_o);
                                                        if (returnData24.length == 0) {
                                                            flag11 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                        }
                                                        require(!(flag11), SafeERC20FailedOperation());
                                                        (bool success25, bytes memory returnData25) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, value40 - value5); // call
                                                        require(success25);
                                                        bool flag12 = !(0x01 == var_o);
                                                        if (returnData25.length == 0) {
                                                            flag12 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                        }
                                                        require(!(flag12), SafeERC20FailedOperation());
                                                    }
                                                    require(0xe3a24afea37dc8547cedb480e291881bba335c31.code.length != 0x0);
                                                    (bool success26, bytes memory returnData26) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).Unknown_0d60cf12(0x71a7919663974000194e3ee699a455d7b6c6734d, value40 - value5); // call
                                                    require(success26);
                                                    if (success26) {
                                                        if (((var_d + 0) > 0xffffffffffffffff) | ((var_d + 0) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + 0;
                                                        if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        (bool success27, bytes memory returnData27) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                        uint256 value49 = 0;
                                                        uint256 value50 = 0;
                                                        bool flag13;
                                                        if (success27) {
                                                            bool flag32 = 0x01 == var_o;
                                                            if (returnData27.length == 0) {
                                                                flag32 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length != 0x0;
                                                            }
                                                            flag13 = flag32;
                                                        } else {
                                                            value49 = returnData27.length;
                                                            value50 = var_o;
                                                            flag13 = success27;
                                                        }
                                                        if (!flag13) {
                                                            if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            (bool success28, bytes memory returnData28) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                            require(success28);
                                                            bool flag14 = !(0x01 == var_o);
                                                            if (returnData28.length == 0) {
                                                                flag14 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                            }
                                                            require(!(flag14), SafeERC20FailedOperation());
                                                            (bool success29, bytes memory returnData29) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                            require(success29);
                                                            bool flag15 = !(0x01 == var_o);
                                                            if (returnData29.length == 0) {
                                                                flag15 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                            }
                                                            require(!(flag15), SafeERC20FailedOperation());
                                                        }
                                                        (bool success30, bytes memory returnData30) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                        require(success30);
                                                        uint256 value52 = 0x20;
                                                        uint256 value53 = var_d.length;
                                                        if (success30) {
                                                            uint256 value51 = returnData30.length;
                                                            if (0x20 <= returnData30.length) {
                                                                value51 = 0x20;
                                                            }
                                                            if (((var_d + ((value51 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value51 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value51 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value51) - var_d) >= 0x20);
                                                        } else {
                                                            value52 = var_d;
                                                            value53 = 0;
                                                        }
                                                        (bool success31, bytes memory returnData31) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                        require(success31);
                                                        uint256 value55 = 0;
                                                        uint256 value56 = var_d.length;
                                                        if (success31) {
                                                            uint256 value54 = returnData31.length;
                                                            if (0x20 <= returnData31.length) {
                                                                value54 = 0x20;
                                                            }
                                                            if (((var_d + ((value54 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value54 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value54 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value54) - var_d) >= 0x20);
                                                        } else {
                                                            value55 = var_d;
                                                            value56 = 0;
                                                        }
                                                        uint256 value57 = 0;
                                                        uint256 value58 = 0;
                                                        bool flag16 = value53 - value43 != value40 - value5;
                                                        if (value53 >= value43) {
                                                        } else {
                                                            value57 = value53;
                                                            value58 = value43;
                                                            flag16 = value53 < value43;
                                                        }
                                                        uint256 value59 = 0;
                                                        uint256 value60 = 0;
                                                        if (!flag16) {
                                                        } else {
                                                            value59 = value56;
                                                            value60 = value48;
                                                        }
                                                        require(!(!flag16 && value56 < value48 + (value40 - value5) || flag16), CustomError_2d98e82f());
                                                        if (!((arg0 < 0x0a))) _desolexPanic(33);
                                                        (bool success32, bytes memory returnData32) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(msg.sender, arg0, value40 - value5); // call
                                                        require(success32);
                                                        uint256 value62 = 0;
                                                        uint256 value63 = var_d.length;
                                                        if (success32) {
                                                            uint256 value61 = returnData32.length;
                                                            if (0x20 <= returnData32.length) {
                                                                value61 = 0x20;
                                                            }
                                                            if (((var_d + ((value61 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value61 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value61 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value61) - var_d) >= 0x20);
                                                        } else {
                                                            value62 = var_d;
                                                            value63 = 0;
                                                        }
                                                        (bool success33, bytes memory returnData33) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                        require(success33);
                                                        uint256 value65 = 0;
                                                        uint256 value66 = var_d.length;
                                                        if (success33) {
                                                            uint256 value64 = returnData33.length;
                                                            if (0x20 <= returnData33.length) {
                                                                value64 = 0x20;
                                                            }
                                                            if (((var_d + ((value64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value64) - var_d) >= 0x20);
                                                        } else {
                                                            value65 = var_d;
                                                            value66 = 0;
                                                        }
                                                        uint256 value68 = 0;
                                                        bool flag18;
                                                        if (value66 == value5) {
                                                            (bool success34, bytes memory returnData34) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                            require(success34);
                                                            bool flag33 = !(var_d.length == value8);
                                                            if (success34) {
                                                                uint256 value67 = returnData34.length;
                                                                if (0x20 <= returnData34.length) {
                                                                    value67 = 0x20;
                                                                }
                                                                if (((var_d + ((value67 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value67 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value67 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value67) - var_d) >= 0x20);
                                                            } else {
                                                                flag33 = 0x0 != value8;
                                                            }
                                                            flag18 = flag33;
                                                        } else {
                                                            value68 = value8;
                                                            flag18 = value66 != value5;
                                                        }
                                                        bool flag19;
                                                        if (!flag18) {
                                                            (bool success35, bytes memory returnData35) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                            require(success35);
                                                            uint256 value70 = var_d.length;
                                                            if (success35) {
                                                                uint256 value69 = returnData35.length;
                                                                if (0x20 <= returnData35.length) {
                                                                    value69 = 0x20;
                                                                }
                                                                if (((var_d + ((value69 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value69 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value69 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value69) - var_d) >= 0x20);
                                                            } else {
                                                                value70 = 0;
                                                            }
                                                            flag19 = value70 != 0x0;
                                                        } else {
                                                            flag19 = flag18;
                                                        }
                                                        uint256 value72 = 0;
                                                        uint256 value73 = 0;
                                                        bool flag20;
                                                        if (!flag19) {
                                                            (bool success36, bytes memory returnData36) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).allowance(address(this), 0xe3a24afea37dc8547cedb480e291881bba335c31); // staticcall
                                                            require(success36);
                                                            bool flag34 = var_d.length;
                                                            if (success36) {
                                                                uint256 value71 = returnData36.length;
                                                                if (0x20 <= returnData36.length) {
                                                                    value71 = 0x20;
                                                                }
                                                                if (((var_d + ((value71 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value71 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value71 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value71) - var_d) >= 0x20);
                                                            } else {
                                                                flag34 = 0x0 != 0x0;
                                                            }
                                                            flag20 = flag34;
                                                        } else {
                                                            value72 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                            value73 = 0x61e91daf03a49ecec334bffbf5008860cfb33333;
                                                            flag20 = flag19;
                                                        }
                                                        require(!(flag20), CustomError_b072117c());
                                                        emit Event_379d7d50(msg.sender, value63, arg0, 0x61e91daf03a49ecec334bffbf5008860cfb33333, arg1, value40 - value5, value40 - value5);
                                                        stor_0 = 0x01;
                                                        return value63;
                                                    } else {
                                                        if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                        var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        (bool success37, bytes memory returnData37) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                        uint256 value74 = 0;
                                                        uint256 value75 = 0;
                                                        bool flag21;
                                                        if (success37) {
                                                            bool flag35 = 0x01 == var_o;
                                                            if (returnData37.length == 0) {
                                                                flag35 = 0x61e91daf03a49ecec334bffbf5008860cfb33333.code.length != 0x0;
                                                            }
                                                            flag21 = flag35;
                                                        } else {
                                                            value74 = returnData37.length;
                                                            value75 = var_o;
                                                            flag21 = success37;
                                                        }
                                                        if (!flag21) {
                                                            if (((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            (bool success38, bytes memory returnData38) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                            require(success38);
                                                            bool flag22 = !(0x01 == var_o);
                                                            if (returnData38.length == 0) {
                                                                flag22 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                            }
                                                            require(!(flag22), SafeERC20FailedOperation());
                                                            (bool success39, bytes memory returnData39) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).approve(0xe3a24afea37dc8547cedb480e291881bba335c31, 0); // call
                                                            require(success39);
                                                            bool flag23 = !(0x01 == var_o);
                                                            if (returnData39.length == 0) {
                                                                flag23 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
                                                            }
                                                            require(!(flag23), SafeERC20FailedOperation());
                                                        }
                                                        (bool success40, bytes memory returnData40) = address(0xe3a24afea37dc8547cedb480e291881bba335c31).vaultPrincipal(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                        require(success40);
                                                        uint256 value77 = 0x20;
                                                        uint256 value78 = var_d.length;
                                                        if (success40) {
                                                            uint256 value76 = returnData40.length;
                                                            if (0x20 <= returnData40.length) {
                                                                value76 = 0x20;
                                                            }
                                                            if (((var_d + ((value76 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value76 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value76 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value76) - var_d) >= 0x20);
                                                        } else {
                                                            value77 = var_d;
                                                            value78 = 0;
                                                        }
                                                        (bool success41, bytes memory returnData41) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).balanceOf(0x71a7919663974000194e3ee699a455d7b6c6734d); // staticcall
                                                        require(success41);
                                                        uint256 value80 = 0;
                                                        uint256 value81 = var_d.length;
                                                        if (success41) {
                                                            uint256 value79 = returnData41.length;
                                                            if (0x20 <= returnData41.length) {
                                                                value79 = 0x20;
                                                            }
                                                            if (((var_d + ((value79 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value79 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value79 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value79) - var_d) >= 0x20);
                                                        } else {
                                                            value80 = var_d;
                                                            value81 = 0;
                                                        }
                                                        uint256 value82 = 0;
                                                        uint256 value83 = 0;
                                                        bool flag24 = value78 - value43 != value40 - value5;
                                                        if (value78 >= value43) {
                                                        } else {
                                                            value82 = value78;
                                                            value83 = value43;
                                                            flag24 = value78 < value43;
                                                        }
                                                        uint256 value84 = 0;
                                                        uint256 value85 = 0;
                                                        if (!flag24) {
                                                        } else {
                                                            value84 = value81;
                                                            value85 = value48;
                                                        }
                                                        require(!(!flag24 && value81 < value48 + (value40 - value5) || flag24), CustomError_2d98e82f());
                                                        if (!((arg0 < 0x0a))) _desolexPanic(33);
                                                        (bool success42, bytes memory returnData42) = address(0x71a7919663974000194e3ee699a455d7b6c6734d).Unknown_095bf141(msg.sender, arg0, value40 - value5); // call
                                                        require(success42);
                                                        uint256 value87 = 0;
                                                        uint256 value88 = var_d.length;
                                                        if (success42) {
                                                            uint256 value86 = returnData42.length;
                                                            if (0x20 <= returnData42.length) {
                                                                value86 = 0x20;
                                                            }
                                                            if (((var_d + ((value86 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value86 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value86 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value86) - var_d) >= 0x20);
                                                        } else {
                                                            value87 = var_d;
                                                            value88 = 0;
                                                        }
                                                        (bool success43, bytes memory returnData43) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
                                                        require(success43);
                                                        uint256 value90 = 0;
                                                        uint256 value91 = var_d.length;
                                                        if (success43) {
                                                            uint256 value89 = returnData43.length;
                                                            if (0x20 <= returnData43.length) {
                                                                value89 = 0x20;
                                                            }
                                                            if (((var_d + ((value89 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value89 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                            var_d = var_d + ((value89 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            require(((var_d + value89) - var_d) >= 0x20);
                                                        } else {
                                                            value90 = var_d;
                                                            value91 = 0;
                                                        }
                                                        uint256 value93 = 0;
                                                        bool flag26;
                                                        if (value91 == value5) {
                                                            (bool success44, bytes memory returnData44) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
                                                            require(success44);
                                                            bool flag36 = !(var_d.length == value8);
                                                            if (success44) {
                                                                uint256 value92 = returnData44.length;
                                                                if (0x20 <= returnData44.length) {
                                                                    value92 = 0x20;
                                                                }
                                                                if (((var_d + ((value92 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value92 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value92 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value92) - var_d) >= 0x20);
                                                            } else {
                                                                flag36 = 0x0 != value8;
                                                            }
                                                            flag26 = flag36;
                                                        } else {
                                                            value93 = value8;
                                                            flag26 = value91 != value5;
                                                        }
                                                        bool flag27;
                                                        if (!flag26) {
                                                            (bool success45, bytes memory returnData45) = address(0xe8e4ddaa28612a98cd50805f53eff32f5ff94d90).gonBalanceOf(address(this)); // staticcall
                                                            require(success45);
                                                            uint256 value95 = var_d.length;
                                                            if (success45) {
                                                                uint256 value94 = returnData45.length;
                                                                if (0x20 <= returnData45.length) {
                                                                    value94 = 0x20;
                                                                }
                                                                if (((var_d + ((value94 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value94 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value94 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value94) - var_d) >= 0x20);
                                                            } else {
                                                                value95 = 0;
                                                            }
                                                            flag27 = value95 != 0x0;
                                                        } else {
                                                            flag27 = flag26;
                                                        }
                                                        uint256 value97 = 0;
                                                        uint256 value98 = 0;
                                                        bool flag28;
                                                        if (!flag27) {
                                                            (bool success46, bytes memory returnData46) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).allowance(address(this), 0xe3a24afea37dc8547cedb480e291881bba335c31); // staticcall
                                                            require(success46);
                                                            bool flag37 = var_d.length;
                                                            if (success46) {
                                                                uint256 value96 = returnData46.length;
                                                                if (0x20 <= returnData46.length) {
                                                                    value96 = 0x20;
                                                                }
                                                                if (((var_d + ((value96 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((value96 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                                                var_d = var_d + ((value96 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                require(((var_d + value96) - var_d) >= 0x20);
                                                            } else {
                                                                flag37 = 0x0 != 0x0;
                                                            }
                                                            flag28 = flag37;
                                                        } else {
                                                            value97 = 0xe3a24afea37dc8547cedb480e291881bba335c31;
                                                            value98 = 0x61e91daf03a49ecec334bffbf5008860cfb33333;
                                                            flag28 = flag27;
                                                        }
                                                        require(!(flag28), CustomError_b072117c());
                                                        emit Event_379d7d50(msg.sender, value88, arg0, 0x61e91daf03a49ecec334bffbf5008860cfb33333, arg1, value40 - value5, value40 - value5);
                                                        stor_0 = 0x01;
                                                        return value88;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_5eb8d679(uint256 arg0, uint256 arg1, uint256 arg2) public payable {
        if (!(msg.value)) {
            if ((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) >= 0x80) {
                if (arg0 < 0x0a) {
                    if (stor_0 != 0x02) {
                        stor_0 = 0x02;
                        (bool success0, bytes memory returnData0) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).isActive(0xec3c2045da149c45c16ce5a6d86d63bb81d27c31c6383c580ec51f98d5c3ee4c, address(this)); // staticcall
                        if (success0) {
                            uint256 value0 = 0;
                            uint256 var_d;
                            uint256 value1 = var_d.length;
                            if (success0) {
                                if (0x20 > returnData0.length) {
                                    if (((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
                                    var_d = var_d + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                    require(((var_d + returnData0.length) - var_d) >= 0x20);
                                } else {
                                    if (((var_d + 0x20) > 0xffffffffffffffff) | ((var_d + 0x20) < var_d)) _desolexPanic(65);
                                    var_d = var_d + 0x20;
                                    require(((var_d + 0x20) - var_d) >= 0x20);
                                }
                                require(var_d.length == var_d.length);
                            } else {
                                value0 = var_d;
                                value1 = 0;
                            }
                            if ((value1 != 0x0) && (arg1 != 0x0)) {
                                var_f = var_f;
                                address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).activeAddress(var_f); // staticcall
                            }
                        }
                    }
                }
            }
        }
    }
    
    function __desolexSelectorShim(uint32 rewrittenSelector) private {
        assembly {
            let input := mload(0x40)
            calldatacopy(input, 0, calldatasize())
            mstore(input, or(and(mload(input), 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(224, and(rewrittenSelector, 0xffffffff))))
            let success := delegatecall(gas(), address(), input, calldatasize(), 0, 0)
            let size := returndatasize()
            returndatacopy(input, 0, size)
            switch success
            case 0 { revert(input, size) }
            default { return(input, size) }
        }
    }
    
    // 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.
    
    // 0x0fc29349 => totalLiability()
    // 0x1a465fe1 => protocolToken()
    // 0x1aa5bb66 => unresolved_1aa5bb66()
    // 0x1d8ffa4d => interfaceVersion()
    // 0x3e413bee => usdc()
    // 0x55fd7fa0 => moduleKey()
    // 0x5eb8d679 => Unknown_5eb8d679(uint256,uint256,uint256)
    // 0x7656419f => protocolRegistry()
    // 0x8191f5e5 => Unknown_8191f5e5(uint256,uint256)
    // 0x8ba1dbf7 => stakingMain()
    // 0x9b8aeda5 => Unknown_9b8aeda5(address,uint256,uint256)
    // 0x9ce6dd9f => hasOpenPositions()
    // 0xcc7a262e => stakedToken()
    // 0xeed6b9a2 => Unknown_eed6b9a2(bytes,bytes,bytes)
}
0x0ed120…6fbfca on BNB Chain — Decompiled Solidity