Ethereum

0x950fd558f47e234a2fde23b7d61f7ccdbcb4a86f

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

Decompilation outputEthereum · 0x950fd558bcb4a86f18.3 KB120.1 s
Share
//decompiled by exvvul decompiler tool [email protected] https://x.com/exvulsec
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

contract DesolexContract {
    address public constant poolManager = address(0x4444c5dc75cb358380d2e3de08a90);
    address public constant morpho = address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb);
    address public constant weth = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2);
    address public constant balancerVault = address(0xba1333333333a1ba1108e8412f11850a5c319ba9);
    
    address public owner; // STORAGE[0x0]
    mapping(address => bool) public whitelist; // STORAGE[0x1]
    uint256 public unresolved_d9dddc1b; // STORAGE[0x2]
    bool stor_3_0_0; // STORAGE[0x3] bytes 0 to 0
    mapping(bytes32 => bytes32) transient_map_j;
    bytes32 tstore_a;
    bytes32 tstore_b;
    bytes32 tstore_c;
    bool tstore_d;
    address tstore_e;
    address tstore_f;
    address tstore_g;
    address tstore_h;
    address tstore_i;
    
    error DelegatecallFailed();
    event WhitelistUpdated(address indexed, bool);
    error CustomError_41e8e806();
    error CustomError_27b29e2a();
    error CustomError_f0777cc7();
    error CustomError_33e02f55();
    error InsufficientProfit();
    error Unauthorized();
    error CustomError_e7be8e74();
    error DataTooShort();
    error InvalidActionCount();
    error CustomError_6ce5aa0c();
    event Event_0ef662bd(uint256, uint256);
    error TransferFailed();
    event Event_c6cf0ccc(uint256);
    function _desolexPanic(uint256 code) private pure {
        assembly ("memory-safe") {
            mstore(0x00, shl(224, 0x4e487b71))
            mstore(0x04, code)
            revert(0x00, 0x24)
        }
    }
    
    modifier onlyOwner() {
        require(msg.sender == owner, Unauthorized());
        _;
    }
    receive() external payable {
    }
    
    fallback() external payable {
        // Synthetic compatibility routes preserve original selectors for unresolved names.
        if ((msg.data.length >= 4) && (msg.sig == 0x23a69e75)) {
            // Route to Unknown_23a69e75(uint256,uint256,bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x607829c6));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x26d8bfb7)) {
            // Route to Unknown_26d8bfb7() after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xab2ca388));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x2c8958f6)) {
            // Route to Unknown_2c8958f6(uint256,uint256,bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xd8389fae));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x3a77b95e)) {
            // Route to Unknown_3a77b95e(bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x529c326c));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x728260d0)) {
            // Route to Unknown_728260d0(uint256) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xbc34fa92));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x7466e8ff)) {
            // Route to Unknown_7466e8ff(bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xc0a8f9bf));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x8a57589a)) {
            // Route to Unknown_8a57589a(bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xe6855bc2));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x8e9b1220)) {
            // Route to Unknown_8e9b1220(bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x7b9c84f9));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0x8eccac05)) {
            // Route to Unknown_8eccac05() after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x84112e67));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0xcb53bc22)) {
            // Route to Unknown_cb53bc22() after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x8fab1bc0));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0xdd225095)) {
            // Route to Unknown_dd225095(bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0x7ba4f0e4));
            return;
        }
        if ((msg.data.length >= 4) && (msg.sig == 0xfa461e33)) {
            // Route to Unknown_fa461e33(uint256,uint256,bytes) after replacing only msg.sig.
            __desolexSelectorShim(uint32(0xbc391381));
            return;
        }
        revert();
    }
    
    
    function Unknown_23a69e75(uint256 arg0, uint256 arg1, bytes memory arg2) public {
        require(((0x04 + arg2) + 0x1f) < msg.data.length);
        require(((0x04 + arg2) + arg2 + 0x20) <= msg.data.length);
        require((msg.sender == tstore_a) & (tstore_b == 0x01) | (tstore_c == 0x01), "!cb");
        uint256 value0 = (arg1) ? 1 : 0;
        if (arg0 > 0) {
            value0 = arg0;
        }
        uint256 var_d;
        if (((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
        var_d = var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        (bool success0, bytes memory returnData0) = address((arg2 + 0x20) >> 0x60).transfer(msg.sender, value0); // call
        uint256 value1 = 0x60;
        if ((returnData0.length) != 0x0) {
            if (returnData0.length > 0xffffffffffffffff) _desolexPanic(65);
            if (((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
            var_d = var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            value1 = var_d;
        }
        uint256 value4 = 0;
        bool flag0;
        if (success0) {
            uint256 value2 = 0;
            uint256 value3 = 0;
            bool flag1 = !(var_g);
            if (var_h) {
                require(((value1 + var_h) + 0x20) - (value1 + 0x20) >= 0x20);
                require(var_g != 0x0 == var_g);
            } else {
                value2 = var_h;
                value3 = value1;
                flag1 = var_h;
            }
            flag0 = flag1;
        } else {
            value4 = value1;
            flag0 = !success0;
        }
        require(!(flag0), TransferFailed());
    }
    
    function Unknown_2c8958f6(uint256 arg0, uint256 arg1, bytes memory arg2) public {
        require(((0x04 + arg2) + 0x1f) < msg.data.length);
        require(((0x04 + arg2) + arg2 + 0x20) <= msg.data.length);
        require((msg.sender == tstore_a) & (tstore_b == 0x01) | (tstore_c == 0x01), "!cb");
        uint256 value0 = (arg1) ? 1 : 0;
        if (arg0 > 0) {
            value0 = arg0;
        }
        uint256 var_d;
        if (((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
        var_d = var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        (bool success0, bytes memory returnData0) = address((arg2 + 0x20) >> 0x60).transfer(msg.sender, value0); // call
        uint256 value1 = 0x60;
        if ((returnData0.length) != 0x0) {
            if (returnData0.length > 0xffffffffffffffff) _desolexPanic(65);
            if (((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
            var_d = var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            value1 = var_d;
        }
        uint256 value4 = 0;
        bool flag0;
        if (success0) {
            uint256 value2 = 0;
            uint256 value3 = 0;
            bool flag1 = !(var_g);
            if (var_h) {
                require(((value1 + var_h) + 0x20) - (value1 + 0x20) >= 0x20);
                require(var_g != 0x0 == var_g);
            } else {
                value2 = var_h;
                value3 = value1;
                flag1 = var_h;
            }
            flag0 = flag1;
        } else {
            value4 = value1;
            flag0 = !success0;
        }
        require(!(flag0), TransferFailed());
    }
    
    function Unknown_fa461e33(uint256 arg0, uint256 arg1, bytes memory arg2) public {
        require(((0x04 + arg2) + 0x1f) < msg.data.length);
        require(((0x04 + arg2) + arg2 + 0x20) <= msg.data.length);
        require((msg.sender == tstore_a) & (tstore_b == 0x01) | (tstore_c == 0x01), "!cb");
        uint256 value0 = (arg1) ? 1 : 0;
        if (arg0 > 0) {
            value0 = arg0;
        }
        uint256 var_d;
        if (((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
        var_d = var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        (bool success0, bytes memory returnData0) = address((arg2 + 0x20) >> 0x60).transfer(msg.sender, value0); // call
        uint256 value1 = 0x60;
        if ((returnData0.length) != 0x0) {
            if (returnData0.length > 0xffffffffffffffff) _desolexPanic(65);
            if (((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
            var_d = var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            value1 = var_d;
        }
        uint256 value4 = 0;
        bool flag0;
        if (success0) {
            uint256 value2 = 0;
            uint256 value3 = 0;
            bool flag1 = !(var_g);
            if (var_h) {
                require(((value1 + var_h) + 0x20) - (value1 + 0x20) >= 0x20);
                require(var_g != 0x0 == var_g);
            } else {
                value2 = var_h;
                value3 = value1;
                flag1 = var_h;
            }
            flag0 = flag1;
        } else {
            value4 = value1;
            flag0 = !success0;
        }
        require(!(flag0), TransferFailed());
    }
    
    function emergencyWithdraw(address arg0, address arg1, uint256 arg2) public onlyOwner {
        uint256 var_a;
        if (arg0 == 0) {
            require((arg2 + 0x01) < address(this).balance, "Keep 1 wei");
            (bool success0, bytes memory returnData0) = arg1.call{ value: arg2 }(""); // call
            if ((returnData0.length) != 0x0) {
                if (!(returnData0.length <= 0xffffffffffffffff)) _desolexPanic(65);
                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            }
            require(success0, TransferFailed());
        }
        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        if (((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
        var_a = var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        (bool success1, bytes memory returnData1) = arg0.call(abi.encodeWithSelector(bytes4(0xa9059cbb), arg1, arg2)); // call transfer
        uint256 value0 = 0x60;
        if ((returnData1.length) != 0x0) {
            if (!(returnData1.length <= 0xffffffffffffffff)) _desolexPanic(65);
            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            value0 = var_a;
        }
        if (!success1) {
            require(!var_i);
            revert("SafeERC20: low-level call failed");
        } else {
            if (!var_i) {
                require(address(arg0).code.length != 0x0, "Address: call to non-contract");
                uint256 value1 = 0;
                uint256 value2 = 0;
                uint256 value3 = var_o;
                if (!(!(var_p))) {
                    require(!(((value0 + var_q) + 0x20) - (value0 + 0x20) < 0x20));
                    require(var_r != 0x0 == var_r);
                } else {
                    value1 = var_p;
                    value2 = value0;
                    value3 = !(var_p);
                }
                require(value3 != 0x0, "SafeERC20: ERC20 operation did not succeed");
            } else {
                uint256 value4 = 0;
                uint256 value5 = 0;
                uint256 value6 = var_o;
                if (!(!(var_p))) {
                    require(!(((value0 + var_q) + 0x20) - (value0 + 0x20) < 0x20));
                    require(var_r != 0x0 == var_r);
                } else {
                    value4 = var_p;
                    value5 = value0;
                    value6 = !(var_p);
                }
                require(value6 != 0x0, "SafeERC20: ERC20 operation did not succeed");
            }
        }
    }
    
    function Unknown_dd225095(bytes memory arg0) public payable {
        if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x20) {
            if (!(arg0.length > 0xffffffffffffffff)) {
                require(((0x04 + arg0) + 0x1f) < msg.data.length);
                require(((0x04 + arg0) + arg0 + 0x20) <= msg.data.length);
                if (whitelist[msg.sender]) {
                    if (!(0x05 > arg0.length)) {
                        if (0x05 <= ((((arg0 + 0x20) + 0x01) >> 0xe0) + 0x05)) {
                            if (arg0 >= ((((arg0 + 0x20) + 0x01) >> 0xe0) + 0x05)) {
                                if (0x05 <= (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0))) {
                                    require((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) <= arg0);
                                    if ((0xff & (arg0 + 0x20)) != 0x0) {
                                        if ((0xff & (arg0 + 0x20)) != 0x1) {
                                            if ((0xff & (arg0 + 0x20)) == 0x2) {
                                                tstore_d = 0;
                                                require(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb.code.length != 0x0);
                                                (bool success4, bytes memory returnData4) = address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb).flashLoan(address(msg.data[0x05 + ((0x04 + arg0) + 0x20)]), (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]), 0x60); // call
                                                uint256 var_c;
                                                if (success4) {
                                                    uint256 var_an;
                                                    if (!(success4)) {
                                                        if (0x05 <= (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0))) {
                                                            if ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) <= ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05)) {
                                                                if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) <= arg0) {
                                                                    if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) <= ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x05)) {
                                                                        if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x05) <= arg0) {
                                                                            if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) <= (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0))) {
                                                                                if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) <= (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0))) {
                                                                                    if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) <= arg0) {
                                                                                        if (bytes1((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)))) {
                                                                                            if (bytes1((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0))) != 0x01) {
                                                                                                if (0x02 == (bytes1((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0))))) {
                                                                                                    if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) - ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) >= 0x01) {
                                                                                                        tstore_c = 0x01;
                                                                                                        if (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) - ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                        if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) - ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) - ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) - ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        if (!(((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + ((0x04 + arg0) + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) - ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05)) > msg.data.length)) {
                                                                                                            var_e = msg.data[46:46];
                                                                                                            if (var_c.length >= 0x01) {
                                                                                                                if (0 == (var_e == 0xff)) {
                                                                                                                    if (var_e != 0x0) {
                                                                                                                        if (!(var_e > 0x64)) {
                                                                                                                            tstore_b = 0x01;
                                                                                                                            if (!(0 < var_e)) {
                                                                                                                                uint256 value5 = 0;
                                                                                                                                uint256 value6 = 0;
                                                                                                                                uint256 value7 = 0;
                                                                                                                                if ((0 != 0x0) && (0x01 < var_c.length)) {
                                                                                                                                    if (!((0x01 < var_ax))) _desolexPanic(50);
                                                                                                                                    require((0x01 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_ay >> 0xf8) * 0x58))) == var_c.length, DataTooShort());
                                                                                                                                } else {
                                                                                                                                    value5 = 0x01;
                                                                                                                                    value6 = var_c;
                                                                                                                                    value7 = var_c.length;
                                                                                                                                }
                                                                                                                                tstore_b = 0;
                                                                                                                                tstore_c = 0;
                                                                                                                                (bool success5, bytes memory returnData5) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).balanceOf(address(this)); // staticcall
                                                                                                                                if (success5) {
                                                                                                                                    uint256 value8 = 0;
                                                                                                                                    uint256 value9 = var_c.length;
                                                                                                                                    if (success5) {
                                                                                                                                        if (0x20 > returnData5.length) {
                                                                                                                                            if (((var_c + ((returnData5.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData5.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                            var_c = var_c + ((returnData5.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                            require(((var_c + returnData5.length) - var_c) >= 0x20);
                                                                                                                                        } else {
                                                                                                                                            if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                            var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                            require(!(((var_c + 0x20) - var_c) < 0x20));
                                                                                                                                        }
                                                                                                                                    } else {
                                                                                                                                        value8 = var_c;
                                                                                                                                        value9 = 0;
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                } else {
                                                                                                                    require(var_c.length >= 0x02, DataTooShort());
                                                                                                                    if (!(var_ba)) {
                                                                                                                        tstore_c = 0;
                                                                                                                        (bool success6, bytes memory returnData6) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).balanceOf(address(this)); // staticcall
                                                                                                                        require(success6);
                                                                                                                        uint256 value10 = 0;
                                                                                                                        uint256 value11;
                                                                                                                        if (success6) {
                                                                                                                            uint256 value30 = var_c.length;
                                                                                                                            if (0x20 > returnData6.length) {
                                                                                                                                if (((var_c + ((returnData6.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData6.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                var_c = var_c + ((returnData6.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                require(((var_c + returnData6.length) - var_c) >= 0x20);
                                                                                                                            } else {
                                                                                                                                if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                require(!(((var_c + 0x20) - var_c) < 0x20));
                                                                                                                                value30 = var_ad;
                                                                                                                            }
                                                                                                                            value11 = value30;
                                                                                                                        } else {
                                                                                                                            value10 = var_c;
                                                                                                                            value11 = 0;
                                                                                                                        }
                                                                                                                        if (value11 > 0x1) {
                                                                                                                            require(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.code.length != 0x0);
                                                                                                                            (bool success7, bytes memory returnData7) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).withdraw(value11 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                                                                            require(success7);
                                                                                                                            if (success7) {
                                                                                                                                if (((var_c + 0) > 0xffffffffffffffff) | ((var_c + 0) < var_c)) _desolexPanic(65);
                                                                                                                                var_c = var_c + 0;
                                                                                                                                require((var_c - var_c) >= 0);
                                                                                                                            }
                                                                                                                        }
                                                                                                                        require((((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x21) <= arg0, DataTooShort());
                                                                                                                        require((((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x21) <= arg0);
                                                                                                                        require(arg0 <= arg0);
                                                                                                                        require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                                        require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                                        if (!((arg0 + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                                        }
                                                                                                                    } else {
                                                                                                                        require(var_ba <= 0x64, InvalidActionCount());
                                                                                                                        tstore_b = 0x01;
                                                                                                                        if (0 < var_ba) {
                                                                                                                            require(0x18 <= var_c.length, DataTooShort());
                                                                                                                            uint256 value12 = (var_bb >> 0xf0) & (0x7fff);
                                                                                                                            uint256 value13 = (var_bb >> 0xf0) & (0x7fff);
                                                                                                                            if (0 != !(!((var_bb >> 0xf0) & (0x4000)))) {
                                                                                                                                require((var_bb >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                                                                                                value12 = (var_bb >> 0xf0) & (0x3fff);
                                                                                                                                value13 = (var_bb >> 0xf0) & (0x3fff);
                                                                                                                            }
                                                                                                                            require(((0x02 + value12) + 0x16) <= var_c.length, DataTooShort());
                                                                                                                            uint256 value24 = 0;
                                                                                                                            bool flag3 = !(!((var_bb >> 0xf0) & (0x4000)));
                                                                                                                            if (!((var_bb >> 0xf0) & (0x8000))) {
                                                                                                                                flag2 = !(!((var_bb >> 0xf0) & (0x4000)));
                                                                                                                                flag3 = !(!((var_bb >> 0xf0) & (0x8000)));
                                                                                                                            }
                                                                                                                            if (!flag3) {
                                                                                                                                if (!(!(!((var_bb >> 0xf0) & (0x8000))))) {
                                                                                                                                    if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                    if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                    var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                    if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                    if (0 < ((value13 + 0x1f) >> 0x05)) {
                                                                                                                                    } else {
                                                                                                                                        (bool success8, bytes memory returnData8) = address(var_bd >> 0x60).Unknown_(var_be); // delegatecall
                                                                                                                                        uint256 value14 = 0x60;
                                                                                                                                        if ((returnData8.length) != 0x0) {
                                                                                                                                            if (returnData8.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                            value14 = var_c;
                                                                                                                                        }
                                                                                                                                        if (!success8) {
                                                                                                                                            require(var_bf != 0x0, DelegatecallFailed());
                                                                                                                                            revert();
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                } else {
                                                                                                                                    if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                    if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                    var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                    if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                    if (0 < ((value13 + 0x1f) >> 0x05)) {
                                                                                                                                    } else {
                                                                                                                                        tstore_c = 0;
                                                                                                                                        tstore_a = var_bd >> 0x60;
                                                                                                                                        (bool success9, bytes memory returnData9) = address(var_bd >> 0x60).call(""); // call
                                                                                                                                        uint256 value15 = 0x60;
                                                                                                                                        if ((returnData9.length) != 0x0) {
                                                                                                                                            if (returnData9.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                            value15 = var_c;
                                                                                                                                        }
                                                                                                                                        tstore_a = 0;
                                                                                                                                        tstore_c = tstore_c;
                                                                                                                                        if (!success9) {
                                                                                                                                            require(var_bg != 0x0, DelegatecallFailed());
                                                                                                                                            revert();
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            } else {
                                                                                                                                require(value13 >= 0x20, CustomError_f0777cc7());
                                                                                                                                if ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                if ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                if (0 < ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                                                                                } else {
                                                                                                                                    tstore_c = 0;
                                                                                                                                    tstore_a = var_bd >> 0x60;
                                                                                                                                    (bool success10, bytes memory returnData10) = address(var_bd >> 0x60).cehbdjakgfi{ value: var_bi }(0x60, ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05), 0, var_an); // call
                                                                                                                                    uint256 value16 = 0x60;
                                                                                                                                    if ((returnData10.length) != 0x0) {
                                                                                                                                        if (returnData10.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                                        if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData10.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData10.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                        var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData10.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                        value16 = var_c;
                                                                                                                                    }
                                                                                                                                    tstore_a = 0;
                                                                                                                                    tstore_c = tstore_c;
                                                                                                                                    if (!success10) {
                                                                                                                                        require(var_bj != 0x0, DelegatecallFailed());
                                                                                                                                        revert();
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        } else {
                                                                                                                            uint256 value17 = 0;
                                                                                                                            uint256 value18 = 0;
                                                                                                                            uint256 value19 = 0;
                                                                                                                            if ((0x1 != 0x0) && (0x2 < var_bk)) {
                                                                                                                                if (!((0x02 < var_ax))) _desolexPanic(50);
                                                                                                                                require((0x02 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_bl >> 0xf8) * 0x58))) == var_c.length, DataTooShort());
                                                                                                                            } else {
                                                                                                                                value17 = 0x02;
                                                                                                                                value18 = var_c;
                                                                                                                                value19 = var_c.length;
                                                                                                                            }
                                                                                                                            tstore_b = 0;
                                                                                                                            tstore_c = 0;
                                                                                                                            (bool success11, bytes memory returnData11) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).balanceOf(address(this)); // staticcall
                                                                                                                            require(success11);
                                                                                                                            uint256 value20 = 0;
                                                                                                                            uint256 value21;
                                                                                                                            if (success11) {
                                                                                                                                uint256 value36 = var_c.length;
                                                                                                                                if (0x20 > returnData11.length) {
                                                                                                                                    if (((var_c + ((returnData11.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData11.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                    var_c = var_c + ((returnData11.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                    require(((var_c + returnData11.length) - var_c) >= 0x20);
                                                                                                                                } else {
                                                                                                                                    if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                                    var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                                    require(!(((var_c + 0x20) - var_c) < 0x20));
                                                                                                                                    value36 = var_ad;
                                                                                                                                }
                                                                                                                                value21 = value36;
                                                                                                                            } else {
                                                                                                                                value20 = var_c;
                                                                                                                                value21 = 0;
                                                                                                                            }
                                                                                                                            if (value21 > 0x1) {
                                                                                                                                require(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.code.length != 0x0);
                                                                                                                                (bool success12, bytes memory returnData12) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).withdraw(value21 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                                                                                require(success12);
                                                                                                                                if (success12) {
                                                                                                                                    if (((var_c + 0) > 0xffffffffffffffff) | ((var_c + 0) < var_c)) _desolexPanic(65);
                                                                                                                                    var_c = var_c + 0;
                                                                                                                                    require((var_c - var_c) >= 0);
                                                                                                                                }
                                                                                                                            }
                                                                                                                            require((((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x21) <= arg0, DataTooShort());
                                                                                                                            require((((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x21) <= arg0);
                                                                                                                            require(arg0 <= arg0);
                                                                                                                            require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                                            require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                                            if (!((arg0 + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                                require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                } else {
                                                                                                    require((((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x21) <= arg0, DataTooShort());
                                                                                                    require((((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0) + 0x21) <= arg0);
                                                                                                    require(arg0 <= arg0);
                                                                                                    require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                    require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                    if (!((arg0 + 0x20) + (((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x05) + (((arg0 + 0x20) + (0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                        require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            } else if ((0xff & (arg0 + 0x20)) == 0x3) {
                                                require(!((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05) - (0x05 + ((0x04 + arg0) + 0x20)) < 0x60));
                                                require(!(msg.data[0x05 + ((0x04 + arg0) + 0x20)] > 0xffffffffffffffff));
                                                require(((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)] + 0x1f) < ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05)));
                                                if (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] > 0xffffffffffffffff) _desolexPanic(65);
                                                if (((var_c + (((0x20 + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                var_c = var_c + (((0x20 + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                require(!(((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)] + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] << 0x05) + 0x20) > ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05))));
                                                if ((0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)])) < ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)] + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] << 0x05) + 0x20)) {
                                                    require(((msg.data[0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)])]) & 0xffffffffffffffffffffffffffffffffffffffff) == (msg.data[0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)])]));
                                                    if (((0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)])) + 0x20) < ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)] + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)]] << 0x05) + 0x20)) {
                                                        require(((msg.data[(0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)])) + 0x20]) & 0xffffffffffffffffffffffffffffffffffffffff) == (msg.data[(0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + msg.data[0x05 + ((0x04 + arg0) + 0x20)])) + 0x20]));
                                                    }
                                                }
                                                require(!(msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20] > 0xffffffffffffffff));
                                                require(((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]) + 0x1f) < ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05)));
                                                if (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] > 0xffffffffffffffff) _desolexPanic(65);
                                                if (((var_c + (((0x20 + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                var_c = var_c + (((0x20 + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                require(!(((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] << 0x05) + 0x20) > ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05))));
                                                if (((0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]))) < ((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] << 0x05) + 0x20)) && ((0x20 + (0x20 + ((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])))) < ((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20])] << 0x05) + 0x20))) {
                                                }
                                                require(!(msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40] > 0xffffffffffffffff));
                                                require(((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40]) + 0x1f) < ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05)));
                                                if (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])] > 0xffffffffffffffff) _desolexPanic(65);
                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])])))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])])))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])])))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                require(!(((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40]) + 0x20) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])]) > ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05))));
                                                bool flag0 = var_ae > 0x32;
                                                if (!(var_ae)) {
                                                    flag0 = !(var_ae);
                                                }
                                                require(!(flag0), CustomError_6ce5aa0c());
                                                tstore_d = 0x01;
                                                tstore_e = var_ae;
                                                if (0 < var_ae) {
                                                    tstore_f = var_af;
                                                    tstore_g = var_ag;
                                                } else {
                                                    tstore_h = var_ah;
                                                    if (0 < ((var_ah + 0x1f) >> 0x05)) {
                                                        tstore_i = var_ai;
                                                    }
                                                    if (!(var_ae)) _desolexPanic(50);
                                                    if (!(var_ak)) _desolexPanic(50);
                                                    if (((var_c + ((((var_c + 0x21) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((((var_c + 0x21) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                    var_c = var_c + ((((var_c + 0x21) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                    require(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb.code.length != 0x0);
                                                    var_an = address(var_al);
                                                    address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb).flashLoan(address(var_al), var_am, 0x60); // call
                                                }
                                            } else {
                                                require(0x4 == (0xff & (arg0 + 0x20)), CustomError_e7be8e74());
                                                require(!((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05) - (0x05 + ((0x04 + arg0) + 0x20)) < 0x60));
                                                require((msg.data[0x05 + ((0x04 + arg0) + 0x20)] & 0xffffffffffffffffffffffffffffffffffffffff) == msg.data[0x05 + ((0x04 + arg0) + 0x20)]);
                                                require(!(msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40] > 0xffffffffffffffff));
                                                require(((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40]) + 0x1f) < ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05)));
                                                if (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])] > 0xffffffffffffffff) _desolexPanic(65);
                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])])))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])])))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])])))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                require(!(((0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40]) + 0x20) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x40])]) > ((0x05 + ((0x04 + arg0) + 0x20)) + ((0x05 + (((arg0 + 0x20) + 0x01) >> 0xe0)) - 0x05))));
                                                (bool success0, bytes memory returnData0) = address(msg.data[0x05 + ((0x04 + arg0) + 0x20)]).balanceOf(0xba1333333333a1ba1108e8412f11850a5c319ba9); // staticcall
                                                require(success0);
                                                uint256 value0 = 0;
                                                uint256 value1;
                                                if (success0) {
                                                    uint256 value22 = var_c.length;
                                                    if (0x20 > returnData0.length) {
                                                        if (((var_c + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                        var_c = var_c + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(((var_c + returnData0.length) - var_c) >= 0x20);
                                                    } else {
                                                        if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                        var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(!(((var_c + 0x20) - var_c) < 0x20));
                                                        value22 = var_h;
                                                    }
                                                    value1 = value22;
                                                } else {
                                                    value0 = var_c;
                                                    value1 = 0;
                                                }
                                                uint256 value2 = msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20];
                                                if (!(value1 > (msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20]))) {
                                                    value2 = value1;
                                                }
                                                (bool success1, bytes memory returnData1) = address(msg.data[0x05 + ((0x04 + arg0) + 0x20)]).balanceOf(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb); // staticcall
                                                require(success1);
                                                uint256 value3 = 0;
                                                uint256 value4;
                                                if (success1) {
                                                    uint256 value23 = var_c.length;
                                                    if (0x20 > returnData1.length) {
                                                        if (((var_c + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                        var_c = var_c + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(((var_c + returnData1.length) - var_c) >= 0x20);
                                                    } else {
                                                        if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                        var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        require(!(((var_c + 0x20) - var_c) < 0x20));
                                                        value23 = var_k;
                                                    }
                                                    value4 = value23;
                                                } else {
                                                    value3 = var_c;
                                                    value4 = 0;
                                                }
                                                require(!((msg.data[(0x05 + ((0x04 + arg0) + 0x20)) + 0x20] - value2) > value4), CustomError_33e02f55());
                                                if (((var_c + (((((var_q + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) + ((var_c + 0x20) + 0x80) + 0x20) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((((var_q + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) + ((var_c + 0x20) + 0x80) + 0x20) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                var_c = var_c + (((((var_q + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) + ((var_c + 0x20) + 0x80) + 0x20) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                if (((var_c + (((((var_y + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) + ((var_c + 0x24) + 0x20) + 0x20) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((((var_y + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) + ((var_c + 0x24) + 0x20) + 0x20) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                var_c = var_c + (((((var_y + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) + ((var_c + 0x24) + 0x20) + 0x20) - var_c) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).unlock(0x20); // call
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_cb53bc22() public onlyOwner {
        stor_3_0_0 = true;
        emit Event_c6cf0ccc(0x01);
    }
    
    function swapCallback(uint256 arg0, uint256 arg1, bytes memory arg2) public {
        require(((0x04 + arg2) + 0x1f) < msg.data.length);
        require(((0x04 + arg2) + arg2 + 0x20) <= msg.data.length);
        require((msg.sender == tstore_a) & (tstore_b == 0x01) | (tstore_c == 0x01), "!cb");
        uint256 var_d;
        if (((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
        var_d = var_d + ((((var_d + 0x64) - var_d) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        (bool success0, bytes memory returnData0) = address((arg2 + 0x20) >> 0x60).transfer(msg.sender, arg0); // call
        uint256 value0 = 0x60;
        if ((returnData0.length) != 0x0) {
            if (returnData0.length > 0xffffffffffffffff) _desolexPanic(65);
            if (((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_d)) _desolexPanic(65);
            var_d = var_d + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            value0 = var_d;
        }
        uint256 value3 = 0;
        bool flag0;
        if (success0) {
            uint256 value4 = 0;
            uint256 value2 = 0;
            bool flag1 = !(var_g);
            if (var_h) {
                require(((value0 + var_h) + 0x20) - (value0 + 0x20) >= 0x20);
                require(var_g != 0x0 == var_g);
            } else {
                value1 = (var_h != 0x0) ? 1 : 0;
                value2 = value0;
                flag1 = var_h;
            }
            flag0 = flag1;
        } else {
            value3 = value0;
            flag0 = !success0;
        }
        require(!(flag0), TransferFailed());
    }
    
    function unlockCallback(bytes memory data) public {
        require(((0x04 + data) + 0x1f) < msg.data.length);
        require(((0x04 + data) + data + 0x20) <= msg.data.length);
        require(msg.sender == 0x04444c5dc75cb358380d2e3de08a90, "!pm");
        require((msg.sender == tstore_a) & (tstore_b == 0x01) | (tstore_c == 0x01), "!cb");
        if (0x100 != ((data + 0x20) + 0xe0)) {
            require(((0x04 + data) + 0x20) + data - ((0x04 + data) + 0x20) >= 0x0120);
            require(address(data + 0x20) == (data + 0x20));
            require(address((data + 0x20) + 0x20) == ((data + 0x20) + 0x20));
            require(((data + 0x20) + 0x40) == (uint24((data + 0x20) + 0x40)));
            require(((data + 0x20) + 0x60) == (int24((data + 0x20) + 0x60)));
            require(address((data + 0x20) + 0x80) == ((data + 0x20) + 0x80));
            require(address((data + 0x20) + 0xa0) == ((data + 0x20) + 0xa0));
            require(address((data + 0x20) + 0xe0) == ((data + 0x20) + 0xe0));
            require(((data + 0x20) + 0x0100) <= 0xffffffffffffffff);
            require((((0x04 + data) + 0x20) + ((data + 0x20) + 0x0100) + 0x1f) < (((0x04 + data) + 0x20) + data));
            if ((data + 0x20) + ((data + 0x20) + 0x0100) > 0xffffffffffffffff) _desolexPanic(65);
            uint256 var_a;
            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((data + 0x20) + ((data + 0x20) + 0x0100))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((data + 0x20) + ((data + 0x20) + 0x0100))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((data + 0x20) + ((data + 0x20) + 0x0100))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            require((((0x04 + data) + 0x20) + ((data + 0x20) + 0x0100) + 0x20) + ((data + 0x20) + ((data + 0x20) + 0x0100)) <= (((0x04 + data) + 0x20) + data));
            var_c = msg.data[68:68];
            if (((var_a + 0xa0) > 0xffffffffffffffff) | ((var_a + 0xa0) < var_a)) _desolexPanic(65);
            var_a = var_a + 0xa0;
            uint256 value1;
            if (!(address((data + 0x20) + 0xe0))) {
                uint256 value0 = 0xfffd8963efd1fc6a506488495d951d5263988d25;
                if (address((data + 0x20) + 0xa0) == (address(data + 0x20))) {
                    value0 = 0x01000276a4;
                }
                value1 = value0;
            } else {
                value1 = (data + 0x20) + 0xe0;
            }
            if (((var_a + 0x60) > 0xffffffffffffffff) | ((var_a + 0x60) < var_a)) _desolexPanic(65);
            var_a = var_a + 0x60;
            address(0x04444c5dc75cb358380d2e3de08a90).swap(address(var_a.length), address(var_aa), uint24(var_ab)); // call
        } else {
            require(((0x04 + data) + 0x20) + data - ((0x04 + data) + 0x20) >= 0x0100);
            require(address(data + 0x20) == (data + 0x20));
            require(address((data + 0x20) + 0x20) == ((data + 0x20) + 0x20));
            require(((data + 0x20) + 0x40) == (uint24((data + 0x20) + 0x40)));
            require(((data + 0x20) + 0x60) == (int24((data + 0x20) + 0x60)));
            require(address((data + 0x20) + 0x80) == ((data + 0x20) + 0x80));
            require(address((data + 0x20) + 0xa0) == ((data + 0x20) + 0xa0));
            require(((data + 0x20) + 0xe0) <= 0xffffffffffffffff);
            require((((0x04 + data) + 0x20) + ((data + 0x20) + 0xe0) + 0x1f) < (((0x04 + data) + 0x20) + data));
            if ((data + 0x20) + ((data + 0x20) + 0xe0) > 0xffffffffffffffff) _desolexPanic(65);
            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((data + 0x20) + ((data + 0x20) + 0xe0))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((data + 0x20) + ((data + 0x20) + 0xe0))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((data + 0x20) + ((data + 0x20) + 0xe0))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            require((((0x04 + data) + 0x20) + ((data + 0x20) + 0xe0) + 0x20) + ((data + 0x20) + ((data + 0x20) + 0xe0)) <= (((0x04 + data) + 0x20) + data));
            var_c = msg.data[68:68];
            if (((var_a + 0xa0) > 0xffffffffffffffff) | ((var_a + 0xa0) < var_a)) _desolexPanic(65);
            var_a = var_a + 0xa0;
            uint256 value3;
            uint256 value2 = 0xfffd8963efd1fc6a506488495d951d5263988d25;
            if (address((data + 0x20) + 0xa0) == (address(data + 0x20))) {
                value2 = 0x01000276a4;
            }
            value3 = value2;
            if (((var_a + 0x60) > 0xffffffffffffffff) | ((var_a + 0x60) < var_a)) _desolexPanic(65);
            var_a = var_a + 0x60;
            address(0x04444c5dc75cb358380d2e3de08a90).swap(address(var_a.length), address(var_aa), uint24(var_ab)); // call
        }
    }
    
    function Unknown_8eccac05() public view returns (bool) {
        return stor_3_0_0;
    }
    
    function Unknown_8e9b1220(bytes memory arg0) public payable {
        if (!(msg.value)) {
            if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x20) {
                if (!(arg0.length > 0xffffffffffffffff)) {
                    require(((0x04 + arg0) + 0x1f) < msg.data.length);
                    require(((0x04 + arg0) + arg0 + 0x20) <= msg.data.length);
                    if (msg.sender == 0xba1333333333a1ba1108e8412f11850a5c319ba9) {
                        if (((arg0 + 0x20) + 0x40) == 0x80) {
                            if (((0x04 + arg0) + 0x20) + arg0 - ((0x04 + arg0) + 0x20) >= 0x80) {
                                require(address(arg0 + 0x20) == (arg0 + 0x20));
                                if (((arg0 + 0x20) + 0x40) <= 0xffffffffffffffff) {
                                    require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x40) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
                                    if ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40) > 0xffffffffffffffff) _desolexPanic(65);
                                    uint256 var_a;
                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                    bytes var_b = (arg0 + 0x20) + ((arg0 + 0x20) + 0x40);
                                    require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x40) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40)) <= (((0x04 + arg0) + 0x20) + arg0));
                                    if (((arg0 + 0x20) + 0x60) <= 0xffffffffffffffff) {
                                        require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x60) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
                                        if ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60) > 0xffffffffffffffff) _desolexPanic(65);
                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                        require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x60) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60)) <= (((0x04 + arg0) + 0x20) + arg0));
                                        if (0xba1333333333a1ba1108e8412f11850a5c319ba9.code.length != 0x0) {
                                            (bool success0, bytes memory returnData0) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).sendTo(address(arg0 + 0x20), address(this), ((arg0 + 0x20) + 0x20)); // call
                                            if (success0) {
                                                uint256 value0 = 0;
                                                if (success0) {
                                                    if (((var_a + 0) > 0xffffffffffffffff) | ((var_a + 0) < var_a)) _desolexPanic(65);
                                                    var_a = var_a + 0;
                                                    require((var_a - var_a) >= 0);
                                                } else {
                                                    value0 = var_a;
                                                }
                                                if (var_i != 0x0) {
                                                    if (var_j != 0x0) {
                                                        if (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_k >> 0xf8)) {
                                                            require((0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_k >> 0xf8) * 0x58)) == var_i, DataTooShort());
                                                            if (0 >= bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_k >> 0xf8)) {
                                                                tstore_c = 0x01;
                                                                require(var_l >= 0x01, DataTooShort());
                                                                if (0 != (var_m == 0xff)) {
                                                                    require(var_l >= 0x02, DataTooShort());
                                                                    if (!(var_aj)) {
                                                                        tstore_c = 0;
                                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success13, bytes memory returnData13) = address(arg0 + 0x20).transfer(0xba1333333333a1ba1108e8412f11850a5c319ba9, ((arg0 + 0x20) + 0x20)); // call
                                                                        if (returnData13.length == 0) {
                                                                            uint256 value10 = 0;
                                                                            bool flag4;
                                                                            if (success13) {
                                                                                uint256 value8 = 0;
                                                                                uint256 value9 = 0;
                                                                                bool flag11 = !var_b;
                                                                                if (var_ai) {
                                                                                    require((((0x60 + var_ai) + 0x20) - 0x80) >= 0x20);
                                                                                    require(var_b == var_b);
                                                                                } else {
                                                                                    value8 = var_ai;
                                                                                    value9 = 0x60;
                                                                                    flag11 = var_ai;
                                                                                }
                                                                                flag4 = flag11;
                                                                            } else {
                                                                                value10 = 0x60;
                                                                                flag4 = !success13;
                                                                            }
                                                                            require(!(flag4), TransferFailed());
                                                                            address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                        } else {
                                                                            if (!(returnData13.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            uint256 value13 = 0;
                                                                            bool flag5;
                                                                            if (success13) {
                                                                                uint256 value11 = 0;
                                                                                uint256 value12 = 0;
                                                                                bool flag12 = !(var_c);
                                                                                if (var_a.length != 0) {
                                                                                    require(((var_a + var_a.length) + 0x20) - (var_a + 0x20) >= 0x20);
                                                                                    require((!(!(var_c))) == var_c);
                                                                                } else {
                                                                                    value11 = var_a.length;
                                                                                    value12 = var_a;
                                                                                    flag12 = var_a.length;
                                                                                }
                                                                                flag5 = flag12;
                                                                            } else {
                                                                                value13 = var_a;
                                                                                flag5 = !success13;
                                                                            }
                                                                            require(!(flag5), TransferFailed());
                                                                            address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                        }
                                                                        require(success13);
                                                                        if (0x20 <= returnData13.length) {
                                                                            if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                            require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                        }
                                                                        if (((var_a + ((returnData13.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData13.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((returnData13.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(!(((var_a + returnData13.length) - var_a) < 0x20));
                                                                    } else {
                                                                        require(var_aj <= 0x64, InvalidActionCount());
                                                                        tstore_b = 0x01;
                                                                        if (0 < var_aj) {
                                                                            require(0x18 <= var_l, DataTooShort());
                                                                            uint256 value14 = (var_ak >> 0xf0) & (0x7fff);
                                                                            uint256 value15 = (var_ak >> 0xf0) & (0x7fff);
                                                                            if (0 != !(!((var_ak >> 0xf0) & (0x4000)))) {
                                                                                require((var_ak >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                                                value14 = (var_ak >> 0xf0) & (0x3fff);
                                                                                value15 = (var_ak >> 0xf0) & (0x3fff);
                                                                            }
                                                                            require(((0x02 + value14) + 0x16) <= var_l, DataTooShort());
                                                                            uint256 value30 = 0;
                                                                            if (!((var_ak >> 0xf0) & (0x8000))) {
                                                                                flag6 = !(!((var_ak >> 0xf0) & (0x4000)));
                                                                            }
                                                                            if (!((SHR(0xf0, var_al) & 0x8000) != 0x0 && (SHR(0xf0, var_al) & 0x4000) != 0x0)) {
                                                                                if (!(!(!((var_ak >> 0xf0) & (0x8000))))) {
                                                                                    if (value15 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value15))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value15))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value15))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                    if (value15 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                    if (0 < ((value15 + 0x1f) >> 0x05)) {
                                                                                    } else {
                                                                                        (bool success16, bytes memory returnData16) = address(var_an >> 0x60).Unknown_(var_ao); // delegatecall
                                                                                        uint256 value16 = 0x60;
                                                                                        if ((returnData16.length) != 0x0) {
                                                                                            if (!(returnData16.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                            value16 = var_a;
                                                                                        }
                                                                                        if (!success16) {
                                                                                            require(var_ap != 0x0, DelegatecallFailed());
                                                                                            revert();
                                                                                        }
                                                                                    }
                                                                                } else {
                                                                                    if (value15 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value15))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value15))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value15))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                    if (value15 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                    if (0 < ((value15 + 0x1f) >> 0x05)) {
                                                                                    } else {
                                                                                        tstore_c = 0;
                                                                                        tstore_a = var_an >> 0x60;
                                                                                        (bool success17, bytes memory returnData17) = address(var_an >> 0x60).call(""); // call
                                                                                        uint256 value17 = 0x60;
                                                                                        if ((returnData17.length) != 0x0) {
                                                                                            if (!(returnData17.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData17.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData17.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData17.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                            value17 = var_a;
                                                                                        }
                                                                                        tstore_a = 0;
                                                                                        tstore_c = tstore_c;
                                                                                        if (!success17) {
                                                                                            require(var_aq != 0x0, DelegatecallFailed());
                                                                                            revert();
                                                                                        }
                                                                                    }
                                                                                }
                                                                            } else {
                                                                                require(value15 >= 0x20, CustomError_f0777cc7());
                                                                                if ((value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                if ((value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                var_c = msg.data[4:115792089237316195423570985008687907853269984665640564039457584007913129639908];
                                                                                if (0 < ((value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                                } else {
                                                                                    tstore_c = 0;
                                                                                    tstore_a = var_an >> 0x60;
                                                                                    (bool success18, bytes memory returnData18) = address(var_an >> 0x60).uWjK9{ value: var_as }(address(this)); // call
                                                                                    uint256 value18 = 0x60;
                                                                                    if ((returnData18.length) != 0x0) {
                                                                                        if (!(returnData18.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData18.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData18.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData18.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        value18 = var_a;
                                                                                    }
                                                                                    tstore_a = 0;
                                                                                    tstore_c = tstore_c;
                                                                                    if (!success18) {
                                                                                        require(var_at != 0x0, DelegatecallFailed());
                                                                                        revert();
                                                                                    }
                                                                                }
                                                                            }
                                                                        } else {
                                                                            uint256 value19 = 0;
                                                                            uint256 value20 = 0;
                                                                            uint256 value21 = 0;
                                                                            if ((0x1 != 0x0) && (0x2 < var_l)) {
                                                                                if (!(0x02 < var_l)) _desolexPanic(50);
                                                                                require((0x02 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_au >> 0xf8) * 0x58))) == var_l, DataTooShort());
                                                                            } else {
                                                                                value19 = 0x02;
                                                                                value20 = var_a;
                                                                                value21 = var_l;
                                                                            }
                                                                            tstore_b = 0;
                                                                            tstore_c = 0;
                                                                            if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            (bool success19, bytes memory returnData19) = address(arg0 + 0x20).transfer(0xba1333333333a1ba1108e8412f11850a5c319ba9, ((arg0 + 0x20) + 0x20)); // call
                                                                            if (returnData19.length == 0) {
                                                                                uint256 value24 = 0;
                                                                                bool flag9;
                                                                                if (success19) {
                                                                                    uint256 value22 = 0;
                                                                                    uint256 value23 = 0;
                                                                                    bool flag13 = !var_b;
                                                                                    if (var_ai) {
                                                                                        require((((0x60 + var_ai) + 0x20) - 0x80) >= 0x20);
                                                                                        require(var_b == var_b);
                                                                                    } else {
                                                                                        value22 = var_ai;
                                                                                        value23 = 0x60;
                                                                                        flag13 = var_ai;
                                                                                    }
                                                                                    flag9 = flag13;
                                                                                } else {
                                                                                    value24 = 0x60;
                                                                                    flag9 = !success19;
                                                                                }
                                                                                require(!(flag9), TransferFailed());
                                                                                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                            } else {
                                                                                if (!(returnData19.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData19.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData19.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData19.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                uint256 value27 = 0;
                                                                                bool flag10;
                                                                                if (success19) {
                                                                                    uint256 value25 = 0;
                                                                                    uint256 value26 = 0;
                                                                                    bool flag14 = !(var_c);
                                                                                    if (var_a.length != 0) {
                                                                                        require(((var_a + var_a.length) + 0x20) - (var_a + 0x20) >= 0x20);
                                                                                        require((!(!(var_c))) == var_c);
                                                                                    } else {
                                                                                        value25 = var_a.length;
                                                                                        value26 = var_a;
                                                                                        flag14 = var_a.length;
                                                                                    }
                                                                                    flag10 = flag14;
                                                                                } else {
                                                                                    value27 = var_a;
                                                                                    flag10 = !success19;
                                                                                }
                                                                                require(!(flag10), TransferFailed());
                                                                                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                            }
                                                                            require(success19);
                                                                            if (0x20 <= returnData19.length) {
                                                                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                                require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                            }
                                                                            if (((var_a + ((returnData19.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData19.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            require(!(((var_a + returnData19.length) - var_a) < 0x20));
                                                                        }
                                                                    }
                                                                } else if (var_m) {
                                                                    require(var_m <= 0x64, InvalidActionCount());
                                                                    tstore_b = 0x01;
                                                                    if (0 < var_m) {
                                                                        require(0x17 <= var_l, DataTooShort());
                                                                        uint256 value1 = (var_u >> 0xf0) & (0x7fff);
                                                                        uint256 value2 = (var_u >> 0xf0) & (0x7fff);
                                                                        if (0 != !(!((var_u >> 0xf0) & (0x4000)))) {
                                                                            require((var_u >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                                            value1 = (var_u >> 0xf0) & (0x3fff);
                                                                            value2 = (var_u >> 0xf0) & (0x3fff);
                                                                        }
                                                                        require(((0x01 + value1) + 0x16) <= var_l, DataTooShort());
                                                                        uint256 value28 = 0;
                                                                        if (!((var_u >> 0xf0) & (0x8000))) {
                                                                            flag0 = !(!((var_u >> 0xf0) & (0x4000)));
                                                                        }
                                                                        if (!((SHR(0xf0, var_v) & 0x8000) != 0x0 && (SHR(0xf0, var_v) & 0x4000) != 0x0)) {
                                                                            if (!(!(!((var_u >> 0xf0) & (0x8000))))) {
                                                                                if (value2 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value2))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value2))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value2))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                if (value2 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (0 < ((value2 + 0x1f) >> 0x05)) {
                                                                                } else {
                                                                                    (bool success3, bytes memory returnData3) = address(var_x >> 0x60).Unknown_(var_y); // delegatecall
                                                                                    uint256 value3 = 0x60;
                                                                                    if ((returnData3.length) != 0x0) {
                                                                                        if (!(returnData3.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        value3 = var_a;
                                                                                    }
                                                                                    if (!success3) {
                                                                                        require(var_z != 0x0, DelegatecallFailed());
                                                                                        revert();
                                                                                    }
                                                                                }
                                                                            } else {
                                                                                if (value2 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value2))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value2))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value2))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                if (value2 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (0 < ((value2 + 0x1f) >> 0x05)) {
                                                                                } else {
                                                                                    tstore_c = 0;
                                                                                    tstore_a = var_x >> 0x60;
                                                                                    (bool success4, bytes memory returnData4) = address(var_x >> 0x60).call(""); // call
                                                                                    uint256 value4 = 0x60;
                                                                                    if ((returnData4.length) != 0x0) {
                                                                                        if (!(returnData4.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                        value4 = var_a;
                                                                                    }
                                                                                    tstore_a = 0;
                                                                                    tstore_c = tstore_c;
                                                                                    if (!success4) {
                                                                                        require(var_aa != 0x0, DelegatecallFailed());
                                                                                        revert();
                                                                                    }
                                                                                }
                                                                            }
                                                                        } else {
                                                                            require(value2 >= 0x20, CustomError_f0777cc7());
                                                                            if ((value2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if ((value2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                            var_c = msg.data[4:115792089237316195423570985008687907853269984665640564039457584007913129639908];
                                                                            if (0 < ((value2 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                            } else {
                                                                                tstore_c = 0;
                                                                                tstore_a = var_x >> 0x60;
                                                                                (bool success5, bytes memory returnData5) = address(var_x >> 0x60).uWjK9{ value: var_ac }(address(this)); // call
                                                                                uint256 value5 = 0x60;
                                                                                if ((returnData5.length) != 0x0) {
                                                                                    if (!(returnData5.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                    value5 = var_a;
                                                                                }
                                                                                tstore_a = 0;
                                                                                tstore_c = tstore_c;
                                                                                if (!success5) {
                                                                                    require(var_ad != 0x0, DelegatecallFailed());
                                                                                    revert();
                                                                                }
                                                                            }
                                                                        }
                                                                    } else {
                                                                        uint256 value29 = 0;
                                                                        uint256 value6 = 0;
                                                                        uint256 value7 = 0;
                                                                        if ((0x0 != 0x0) && (0x1 < var_l)) {
                                                                            if (!((0x01 < var_ae))) _desolexPanic(50);
                                                                            require((0x01 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_af >> 0xf8) * 0x58))) == var_l, DataTooShort());
                                                                        } else {
                                                                            flag3 = true;
                                                                            value6 = var_a;
                                                                            value7 = var_l;
                                                                        }
                                                                        tstore_b = 0;
                                                                        tstore_c = 0;
                                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success6, bytes memory returnData6) = address(arg0 + 0x20).transfer(0xba1333333333a1ba1108e8412f11850a5c319ba9, ((arg0 + 0x20) + 0x20)); // call
                                                                        if (returnData6.length == 0) {
                                                                            if (!success6) {
                                                                                require(success6, TransferFailed());
                                                                                (bool success7, bytes memory returnData7) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                                require(success7);
                                                                                if (0x20 <= returnData7.length) {
                                                                                    if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + 0x20;
                                                                                    require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                                }
                                                                                if (((var_a + ((returnData7.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData7.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + ((returnData7.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(!(((var_a + returnData7.length) - var_a) < 0x20));
                                                                            }
                                                                            if (!var_ai) {
                                                                                (bool success8, bytes memory returnData8) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                                require(success8);
                                                                                if (0x20 <= returnData8.length) {
                                                                                    if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + 0x20;
                                                                                    require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                                }
                                                                                if (((var_a + ((returnData8.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData8.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + ((returnData8.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(!(((var_a + returnData8.length) - var_a) < 0x20));
                                                                            }
                                                                            require((((0x60 + var_ai) + 0x20) - 0x80) >= 0x20);
                                                                            require(var_b != 0x0 == var_b);
                                                                            require(var_b != 0x0, TransferFailed());
                                                                            address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                        } else {
                                                                            if (!(returnData6.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if (!success6) {
                                                                                require(success6, TransferFailed());
                                                                                (bool success10, bytes memory returnData10) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                                require(success10);
                                                                                if (0x20 <= returnData10.length) {
                                                                                    if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + 0x20;
                                                                                    require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                                }
                                                                                if (((var_a + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(!(((var_a + returnData10.length) - var_a) < 0x20));
                                                                            }
                                                                            if (var_a.length == 0) {
                                                                                (bool success11, bytes memory returnData11) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                                require(success11);
                                                                                if (0x20 <= returnData11.length) {
                                                                                    if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                                    var_a = var_a + 0x20;
                                                                                    require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                                }
                                                                                if (((var_a + ((returnData11.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData11.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + ((returnData11.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                require(!(((var_a + returnData11.length) - var_a) < 0x20));
                                                                            }
                                                                            require(((var_a + var_a.length) + 0x20) - (var_a + 0x20) >= 0x20);
                                                                            require(var_c != 0x0 == var_c);
                                                                            require(var_c != 0x0, TransferFailed());
                                                                            address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                        }
                                                                        require(success6);
                                                                        if (0x20 <= returnData6.length) {
                                                                            if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                            require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                        }
                                                                        if (((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(!(((var_a + returnData6.length) - var_a) < 0x20));
                                                                    }
                                                                } else {
                                                                    tstore_c = 0;
                                                                    if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    (bool success1, bytes memory returnData1) = address(arg0 + 0x20).transfer(0xba1333333333a1ba1108e8412f11850a5c319ba9, ((arg0 + 0x20) + 0x20)); // call
                                                                    if (returnData1.length != 0x0) {
                                                                        if (!(returnData1.length <= 0xffffffffffffffff)) _desolexPanic(65);
                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        if (!success1) {
                                                                            require(success1, TransferFailed());
                                                                            (bool success2, bytes memory returnData2) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
                                                                            require(success2);
                                                                            if (0x20 <= returnData2.length) {
                                                                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + 0x20;
                                                                                require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                            }
                                                                            if (((var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(!(((var_a + returnData2.length) - var_a) < 0x20));
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_8a57589a(bytes memory arg0) public payable {
        if (!(msg.value)) {
            if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x20) {
                if (!(arg0.length > 0xffffffffffffffff)) {
                    require(((0x04 + arg0) + 0x1f) < msg.data.length);
                    require(((0x04 + arg0) + arg0 + 0x20) <= msg.data.length);
                    if (msg.sender == 0xba1333333333a1ba1108e8412f11850a5c319ba9) {
                        uint256 value4 = 0;
                        uint256 var_a;
                        uint256 value5 = var_a;
                        uint256 value6 = var_a;
                        uint256 value7 = var_a;
                        uint256 value8 = var_a;
                        if ((arg0 + 0x20) == 0x80) {
                            require(((0x04 + arg0) + 0x20) + arg0 - ((0x04 + arg0) + 0x20) >= 0x80);
                            require((arg0 + 0x20) <= 0xffffffffffffffff);
                            require((((0x04 + arg0) + 0x20) + (arg0 + 0x20) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
                            if ((arg0 + 0x20) + (arg0 + 0x20) > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + ((arg0 + 0x20) + (arg0 + 0x20) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + ((arg0 + 0x20) + (arg0 + 0x20) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + ((arg0 + 0x20) + (arg0 + 0x20) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            require((((0x04 + arg0) + 0x20) + (arg0 + 0x20) + ((arg0 + 0x20) + (arg0 + 0x20) << 0x05) + 0x20) <= (((0x04 + arg0) + 0x20) + arg0));
                            uint256 value1 = var_a + 0x20;
                            uint256 value0 = 0x20 + (((0x04 + arg0) + 0x20) + (arg0 + 0x20));
                            while (true) {
                                if (value0 >= (((0x04 + arg0) + 0x20) + (arg0 + 0x20) + ((arg0 + 0x20) + (arg0 + 0x20) << 0x05) + 0x20)) {
                                    break;
                                }
                                require((msg.data[value0] & 0xffffffffffffffffffffffffffffffffffffffff) == msg.data[value0]);
                                value1 = value1 + 0x20;
                                value0 = value0 + 0x20;
                            }
                            require(((arg0 + 0x20) + 0x20) <= 0xffffffffffffffff);
                            require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x20) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
                            if ((arg0 + 0x20) + ((arg0 + 0x20) + 0x20) > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x20) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x20) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x20) << 0x05)) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x20) << 0x05) + 0x20) <= (((0x04 + arg0) + 0x20) + arg0));
                            uint256 value3 = var_a + 0x20;
                            uint256 value2 = 0x20 + (((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x20));
                            while (true) {
                                if (value2 >= (((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x20) << 0x05) + 0x20)) {
                                    break;
                                }
                                value3 = 0x20 + value3;
                                value2 = 0x20 + value2;
                            }
                            require(((arg0 + 0x20) + 0x40) <= 0xffffffffffffffff);
                            require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x40) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
                            if ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40) > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x40) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x40)) <= (((0x04 + arg0) + 0x20) + arg0));
                            require(((arg0 + 0x20) + 0x60) <= 0xffffffffffffffff);
                            require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x60) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
                            if ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60) > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x60) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60)) <= (((0x04 + arg0) + 0x20) + arg0));
                        } else {
                            value4 = arg0 + 0x20;
                            value5 = 0x60;
                            value6 = 0x60;
                            value7 = 0x60;
                            value8 = 0x60;
                        }
                        if (CALLDATALOAD(0x4 + arg0 + 0x20) == 0x80) {
                            if (0 >= var_h) {
                                if (var_i != 0x0) {
                                    if (var_i != 0x0) {
                                        if (!(bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_j >> 0xf8))) {
                                            tstore_c = 0x01;
                                            if (var_k >= 0x01) {
                                                if (0 != (var_l == 0xff)) {
                                                    if (var_k >= 0x02) {
                                                        if (var_m != 0x0) {
                                                            if (var_m <= 0x64) {
                                                                uint256 value9 = 0;
                                                                uint256 value10 = 0x01;
                                                                while (true) {
                                                                    tstore_b = 0x01;
                                                                    if (value9 >= var_l) {
                                                                        uint256 value11 = 0;
                                                                        uint256 value12 = 0;
                                                                        uint256 value13 = 0;
                                                                        if ((0x1 != 0x0) && (value10 < var_k)) {
                                                                            if (!(value10 < var_k)) _desolexPanic(50);
                                                                            require((value10 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_n >> 0xf8) * 0x58))) == var_k, DataTooShort());
                                                                        } else {
                                                                            value11 = value10;
                                                                            value12 = value6;
                                                                            value13 = var_k;
                                                                        }
                                                                        uint256 value14 = 0;
                                                                        while (true) {
                                                                            tstore_b = 0;
                                                                            tstore_c = 0;
                                                                            if (value14 >= var_h) {
                                                                                _desolexPanic(50);
                                                                                break;
                                                                            }
                                                                            if (!(value14 < var_q)) {
                                                                                _desolexPanic(50);
                                                                                break;
                                                                            }
                                                                            if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            (bool success0, bytes memory returnData0) = var_r.call(abi.encodeWithSelector(bytes4(0xa9059cbb), address(0xba1333333333a1ba1108e8412f11850a5c319ba9), var_s)); // call transfer
                                                                            uint256 value15 = 0x60;
                                                                            if ((returnData0.length) != 0x0) {
                                                                                if (returnData0.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value15 = var_a;
                                                                            }
                                                                            uint256 value18 = 0;
                                                                            bool flag2;
                                                                            if (success0) {
                                                                                uint256 value16 = 0;
                                                                                uint256 value17 = 0;
                                                                                bool flag13 = !(var_x);
                                                                                if (var_y) {
                                                                                    require(((value15 + var_y) + 0x20) - (value15 + 0x20) >= 0x20);
                                                                                    require(var_x != 0x0 == var_x);
                                                                                } else {
                                                                                    value16 = var_y;
                                                                                    value17 = value15;
                                                                                    flag13 = var_y;
                                                                                }
                                                                                flag2 = flag13;
                                                                            } else {
                                                                                value18 = value15;
                                                                                flag2 = !success0;
                                                                            }
                                                                            require(!(flag2), TransferFailed());
                                                                            if (!((value14 < var_z))) _desolexPanic(50);
                                                                            if (!(value14 < var_q)) {
                                                                                _desolexPanic(50);
                                                                                break;
                                                                            }
                                                                            (bool success1, bytes memory returnData1) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(var_aa), var_s); // call
                                                                            if (!success1) {
                                                                                revert();
                                                                                break;
                                                                            }
                                                                            if (success1) {
                                                                                if (0x20 > returnData1.length) {
                                                                                    if (((var_a + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) {
                                                                                        _desolexPanic(65);
                                                                                        break;
                                                                                    }
                                                                                    var_a = var_a + ((returnData1.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                    if (((var_a + returnData1.length) - var_a) < 0x20) {
                                                                                        revert();
                                                                                        break;
                                                                                    }
                                                                                } else {
                                                                                    if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) {
                                                                                        _desolexPanic(65);
                                                                                        break;
                                                                                    }
                                                                                    var_a = var_a + 0x20;
                                                                                    if (((var_a + 0x20) - var_a) < 0x20) {
                                                                                        revert();
                                                                                        break;
                                                                                    }
                                                                                }
                                                                            }
                                                                            value14 = value14 + 0x01;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        } else {
                                            require((0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_j >> 0xf8) * 0x58)) == var_i, DataTooShort());
                                            uint256 value20 = 0x01;
                                            uint256 value19 = 0;
                                            while (true) {
                                                if (value19 >= bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_j >> 0xf8)) {
                                                    break;
                                                }
                                                if (((var_a + ((((var_a + 0x80) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x80) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                var_a = var_a + ((((var_a + 0x80) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                transient_map_j[keccak256(abi.encode((var_ad >> 0x60), (var_af & (0xffffffff00000000000000000000000000000000000000000000000000000000)), (var_ah)))] = var_ai;
                                                value20 = value20 + 0x58;
                                                value19 = value19 + 0x01;
                                            }
                                            tstore_c = 0x01;
                                            require(var_k >= 0x01, DataTooShort());
                                            if (0 == (var_l == 0xff)) {
                                                if (!(var_l)) {
                                                    uint256 value14 = 0;
                                                    while (true) {
                                                        tstore_c = 0;
                                                        if (!(value14 < var_h)) _desolexPanic(50);
                                                        if (!(value14 < var_q)) _desolexPanic(50);
                                                        var_u = 0xba1333333333a1ba1108e8412f11850a5c319ba9;
                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        (bool success2, bytes memory returnData2) = var_r.call(abi.encodeWithSelector(bytes4(0xa9059cbb), 0xba1333333333a1ba1108e8412f11850a5c319ba9, var_s)); // call transfer
                                                        uint256 value21 = 0x60;
                                                        if ((returnData2.length) != 0x0) {
                                                            if (returnData2.length > 0xffffffffffffffff) _desolexPanic(65);
                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData2.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData2.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData2.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            value21 = var_a;
                                                        }
                                                        uint256 value24 = 0;
                                                        bool flag3;
                                                        if (success2) {
                                                            uint256 value22 = 0;
                                                            uint256 value23 = 0;
                                                            bool flag14 = !(var_ak);
                                                            if (var_aj) {
                                                                require(!(((value21 + var_aj) + 0x20) - (value21 + 0x20) < 0x20));
                                                                require(var_al != 0x0 == var_al);
                                                            } else {
                                                                value22 = var_aj;
                                                                value23 = value21;
                                                                flag14 = var_aj;
                                                            }
                                                            flag3 = flag14;
                                                        } else {
                                                            value24 = value21;
                                                            flag3 = !success2;
                                                        }
                                                        require(!(flag3), TransferFailed());
                                                        if (!(value14 < var_h)) _desolexPanic(50);
                                                        if (!(value14 < var_q)) _desolexPanic(50);
                                                        (bool success3, bytes memory returnData3) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(var_r), var_s); // call
                                                        if (!success3) {
                                                            revert();
                                                            break;
                                                        }
                                                        if (success3) {
                                                            if (0x20 > returnData3.length) {
                                                                if (((var_a + ((returnData3.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData3.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + ((returnData3.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (((var_a + returnData3.length) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            } else {
                                                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) {
                                                                    _desolexPanic(65);
                                                                    break;
                                                                }
                                                                var_a = var_a + 0x20;
                                                                if (((var_a + 0x20) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            }
                                                        }
                                                        value14 = value14 + 0x01;
                                                    }
                                                } else {
                                                    require(var_l <= 0x64, InvalidActionCount());
                                                    uint256 value9 = 0;
                                                    uint256 value10 = 0x01;
                                                    while (true) {
                                                        tstore_b = 0x01;
                                                        if (value9 >= var_l) {
                                                            break;
                                                        }
                                                        if ((value10 + 0x16) > var_k) {
                                                            revert DataTooShort();
                                                            break;
                                                        }
                                                        uint256 value25 = (var_am >> 0xf0) & (0x7fff);
                                                        uint256 value26 = (var_am >> 0xf0) & (0x7fff);
                                                        if (0 != !(!((var_am >> 0xf0) & (0x4000)))) {
                                                            require((var_am >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                            value25 = (var_am >> 0xf0) & (0x3fff);
                                                            value26 = (var_am >> 0xf0) & (0x3fff);
                                                        }
                                                        if (((value10 + value25) + 0x16) > var_k) {
                                                            revert DataTooShort();
                                                            break;
                                                        }
                                                        uint256 value56 = 0;
                                                        if (!((var_am >> 0xf0) & (0x8000))) {
                                                            flag4 = !(!((var_am >> 0xf0) & (0x4000)));
                                                        }
                                                        if (!((SHR(0xf0, var_an) & 0x8000) != 0x0 && (SHR(0xf0, var_an) & 0x4000) != 0x0)) {
                                                            if (!(!(!((var_am >> 0xf0) & (0x8000))))) {
                                                                if (value26 > 0xffffffffffffffff) _desolexPanic(65);
                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value26))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value26))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value26))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (value26 > 0xffffffffffffffff) _desolexPanic(65);
                                                                uint256 value27 = 0;
                                                                while (true) {
                                                                    if (value27 >= ((value26 + 0x1f) >> 0x05)) {
                                                                        break;
                                                                    }
                                                                    value27 = value27 + 0x01;
                                                                }
                                                                (bool success4, bytes memory returnData4) = address(var_ap >> 0x60).Unknown_(var_aq); // delegatecall
                                                                uint256 value28 = 0x60;
                                                                if ((returnData4.length) != 0x0) {
                                                                    if (returnData4.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    value28 = var_a;
                                                                }
                                                                if (!success4) {
                                                                    require(var_ar != 0x0, DelegatecallFailed());
                                                                    revert();
                                                                    break;
                                                                }
                                                            } else {
                                                                if (value26 > 0xffffffffffffffff) _desolexPanic(65);
                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value26))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value26))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value26))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (value26 > 0xffffffffffffffff) _desolexPanic(65);
                                                                uint256 value29 = 0;
                                                                while (true) {
                                                                    if (value29 >= ((value26 + 0x1f) >> 0x05)) {
                                                                        break;
                                                                    }
                                                                    value29 = value29 + 0x01;
                                                                }
                                                                tstore_c = 0;
                                                                tstore_a = var_ap >> 0x60;
                                                                (bool success5, bytes memory returnData5) = address(var_ap >> 0x60).call(""); // call
                                                                uint256 value30 = 0x60;
                                                                if ((returnData5.length) != 0x0) {
                                                                    if (returnData5.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    value30 = var_a;
                                                                }
                                                                tstore_a = 0;
                                                                tstore_c = tstore_c;
                                                                if (!success5) {
                                                                    require(var_at != 0x0, DelegatecallFailed());
                                                                    revert();
                                                                    break;
                                                                }
                                                            }
                                                        } else {
                                                            if (value26 < 0x20) {
                                                                revert CustomError_f0777cc7();
                                                                break;
                                                            }
                                                            if ((value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            if ((value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                            uint256 value31 = 0;
                                                            while (true) {
                                                                if (value31 >= ((value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                    break;
                                                                }
                                                                value31 = value31 + 0x01;
                                                            }
                                                            tstore_c = 0;
                                                            tstore_a = var_ap >> 0x60;
                                                            (bool success6, bytes memory returnData6) = address(var_ap >> 0x60).uWjK9{ value: var_av }(var_u); // call
                                                            uint256 value32 = 0x60;
                                                            if ((returnData6.length) != 0x0) {
                                                                if (returnData6.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                value32 = var_a;
                                                            }
                                                            tstore_a = 0;
                                                            tstore_c = tstore_c;
                                                            if (!success6) {
                                                                require(var_aw != 0x0, DelegatecallFailed());
                                                                revert();
                                                                break;
                                                            }
                                                        }
                                                        value9 = 0x01 + value9;
                                                        value10 = (value10 + value25) + 0x16;
                                                    }
                                                    uint256 value33 = 0;
                                                    uint256 value34 = 0;
                                                    uint256 value35 = 0;
                                                    if ((0x0 != 0x0) && (value10 < var_k)) {
                                                        if (!((value10 < var_ax))) _desolexPanic(50);
                                                        require((value10 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_ay >> 0xf8) * 0x58))) == var_k, DataTooShort());
                                                    } else {
                                                        value33 = value10;
                                                        value34 = value6;
                                                        value35 = var_k;
                                                    }
                                                    uint256 value14 = 0;
                                                    while (true) {
                                                        tstore_b = 0;
                                                        tstore_c = 0;
                                                        if (!(value14 < var_h)) _desolexPanic(50);
                                                        if (!(value14 < var_q)) _desolexPanic(50);
                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        (bool success7, bytes memory returnData7) = var_r.call(abi.encodeWithSelector(bytes4(0xa9059cbb), 0xba1333333333a1ba1108e8412f11850a5c319ba9, var_s)); // call transfer
                                                        uint256 value36 = 0x60;
                                                        if ((returnData7.length) != 0x0) {
                                                            if (returnData7.length > 0xffffffffffffffff) _desolexPanic(65);
                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            value36 = var_a;
                                                        }
                                                        uint256 value39 = 0;
                                                        bool flag7;
                                                        if (success7) {
                                                            uint256 value37 = 0;
                                                            uint256 value38 = 0;
                                                            bool flag15 = !(var_ba);
                                                            if (var_az) {
                                                                require(!(((value36 + var_az) + 0x20) - (value36 + 0x20) < 0x20));
                                                                require(var_al != 0x0 == var_al);
                                                            } else {
                                                                value37 = var_az;
                                                                value38 = value36;
                                                                flag15 = var_az;
                                                            }
                                                            flag7 = flag15;
                                                        } else {
                                                            value39 = value36;
                                                            flag7 = !success7;
                                                        }
                                                        require(!(flag7), TransferFailed());
                                                        if (!(value14 < var_h)) _desolexPanic(50);
                                                        if (!(value14 < var_q)) _desolexPanic(50);
                                                        (bool success8, bytes memory returnData8) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(var_r), var_s); // call
                                                        if (!success8) {
                                                            revert();
                                                            break;
                                                        }
                                                        if (success8) {
                                                            if (0x20 > returnData8.length) {
                                                                if (((var_a + ((returnData8.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData8.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + ((returnData8.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (((var_a + returnData8.length) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            } else {
                                                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) {
                                                                    _desolexPanic(65);
                                                                    break;
                                                                }
                                                                var_a = var_a + 0x20;
                                                                if (((var_a + 0x20) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            }
                                                        }
                                                        value14 = value14 + 0x01;
                                                    }
                                                }
                                            } else {
                                                require(var_k >= 0x02, DataTooShort());
                                                if (!(var_m)) {
                                                    uint256 value14 = 0;
                                                    while (true) {
                                                        tstore_c = 0;
                                                        if (value14 >= var_h) {
                                                            _desolexPanic(50);
                                                            break;
                                                        }
                                                        if (!(value14 < var_q)) {
                                                            _desolexPanic(50);
                                                            break;
                                                        }
                                                        var_u = address(0xba1333333333a1ba1108e8412f11850a5c319ba9);
                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        (bool success9, bytes memory returnData9) = var_r.call(abi.encodeWithSelector(bytes4(0xa9059cbb), address(0xba1333333333a1ba1108e8412f11850a5c319ba9), var_s)); // call transfer
                                                        uint256 value40 = 0x60;
                                                        if ((returnData9.length) != 0x0) {
                                                            if (returnData9.length > 0xffffffffffffffff) _desolexPanic(65);
                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            value40 = var_a;
                                                        }
                                                        uint256 value43 = 0;
                                                        bool flag8;
                                                        if (success9) {
                                                            uint256 value41 = 0;
                                                            uint256 value42 = 0;
                                                            bool flag16 = !(var_bb);
                                                            if (var_bc) {
                                                                require(((value40 + var_bc) + 0x20) - (value40 + 0x20) >= 0x20);
                                                                require(var_bb != 0x0 == var_bb);
                                                            } else {
                                                                value41 = var_bc;
                                                                value42 = value40;
                                                                flag16 = var_bc;
                                                            }
                                                            flag8 = flag16;
                                                        } else {
                                                            value43 = value40;
                                                            flag8 = !success9;
                                                        }
                                                        require(!(flag8), TransferFailed());
                                                        if (!((value14 < var_z))) _desolexPanic(50);
                                                        if (!(value14 < var_q)) {
                                                            _desolexPanic(50);
                                                            break;
                                                        }
                                                        (bool success10, bytes memory returnData10) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(var_aa), var_s); // call
                                                        if (!success10) {
                                                            revert();
                                                            break;
                                                        }
                                                        if (success10) {
                                                            if (0x20 > returnData10.length) {
                                                                if (((var_a + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) {
                                                                    _desolexPanic(65);
                                                                    break;
                                                                }
                                                                var_a = var_a + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (((var_a + returnData10.length) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            } else {
                                                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) {
                                                                    _desolexPanic(65);
                                                                    break;
                                                                }
                                                                var_a = var_a + 0x20;
                                                                if (((var_a + 0x20) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            }
                                                        }
                                                        value14 = value14 + 0x01;
                                                    }
                                                } else {
                                                    require(var_m <= 0x64, InvalidActionCount());
                                                    uint256 value9 = 0;
                                                    uint256 value10 = 0x01;
                                                    while (true) {
                                                        tstore_b = 0x01;
                                                        if (value9 >= var_l) {
                                                            break;
                                                        }
                                                        if ((value10 + 0x16) > var_k) {
                                                            revert DataTooShort();
                                                            break;
                                                        }
                                                        uint256 value44 = (var_am >> 0xf0) & (0x7fff);
                                                        uint256 value45 = (var_am >> 0xf0) & (0x7fff);
                                                        if (0 != !(!((var_am >> 0xf0) & (0x4000)))) {
                                                            require((var_am >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                            value44 = (var_am >> 0xf0) & (0x3fff);
                                                            value45 = (var_am >> 0xf0) & (0x3fff);
                                                        }
                                                        if (((value10 + value44) + 0x16) > var_k) {
                                                            revert DataTooShort();
                                                            break;
                                                        }
                                                        uint256 value57 = 0;
                                                        if (!((var_am >> 0xf0) & (0x8000))) {
                                                            flag9 = !(!((var_am >> 0xf0) & (0x4000)));
                                                        }
                                                        if (!((SHR(0xf0, var_an) & 0x8000) != 0x0 && (SHR(0xf0, var_an) & 0x4000) != 0x0)) {
                                                            if (!(!(!((var_am >> 0xf0) & (0x8000))))) {
                                                                if (value45 > 0xffffffffffffffff) _desolexPanic(65);
                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value45))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value45))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value45))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (value45 > 0xffffffffffffffff) _desolexPanic(65);
                                                                uint256 value27 = 0;
                                                                while (true) {
                                                                    if (value27 >= ((value26 + 0x1f) >> 0x05)) {
                                                                        break;
                                                                    }
                                                                    value27 = value27 + 0x01;
                                                                }
                                                                (bool success11, bytes memory returnData11) = address(var_ap >> 0x60).Unknown_(var_bd); // delegatecall
                                                                uint256 value46 = 0x60;
                                                                if ((returnData11.length) != 0x0) {
                                                                    if (returnData11.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    value46 = var_a;
                                                                }
                                                                if (!success11) {
                                                                    require(var_be != 0x0, DelegatecallFailed());
                                                                    revert();
                                                                    break;
                                                                }
                                                            } else {
                                                                if (value45 > 0xffffffffffffffff) _desolexPanic(65);
                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value45))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value45))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value45))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (value45 > 0xffffffffffffffff) _desolexPanic(65);
                                                                uint256 value29 = 0;
                                                                while (true) {
                                                                    if (value29 >= ((value26 + 0x1f) >> 0x05)) {
                                                                        break;
                                                                    }
                                                                    value29 = value29 + 0x01;
                                                                }
                                                                tstore_c = 0;
                                                                tstore_a = var_ap >> 0x60;
                                                                (bool success12, bytes memory returnData12) = address(var_ap >> 0x60).call(""); // call
                                                                uint256 value47 = 0x60;
                                                                if ((returnData12.length) != 0x0) {
                                                                    if (returnData12.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                    value47 = var_a;
                                                                }
                                                                tstore_a = 0;
                                                                tstore_c = tstore_c;
                                                                if (!success12) {
                                                                    require(var_bf != 0x0, DelegatecallFailed());
                                                                    revert();
                                                                    break;
                                                                }
                                                            }
                                                        } else {
                                                            if (value45 < 0x20) {
                                                                revert CustomError_f0777cc7();
                                                                break;
                                                            }
                                                            if ((value45 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value45 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value45 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value45 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            if ((value45 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                            uint256 value31 = 0;
                                                            while (true) {
                                                                if (value31 >= ((value26 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                    break;
                                                                }
                                                                value31 = value31 + 0x01;
                                                            }
                                                            tstore_c = 0;
                                                            tstore_a = var_ap >> 0x60;
                                                            (bool success13, bytes memory returnData13) = address(var_ap >> 0x60).uWjK9{ value: var_av }(var_u); // call
                                                            uint256 value48 = 0x60;
                                                            if ((returnData13.length) != 0x0) {
                                                                if (returnData13.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                value48 = var_a;
                                                            }
                                                            tstore_a = 0;
                                                            tstore_c = tstore_c;
                                                            if (!success13) {
                                                                require(var_bg != 0x0, DelegatecallFailed());
                                                                revert();
                                                                break;
                                                            }
                                                        }
                                                        value9 = 0x01 + value9;
                                                        value10 = (value10 + value44) + 0x16;
                                                    }
                                                    uint256 value49 = 0;
                                                    uint256 value50 = 0;
                                                    uint256 value51 = 0;
                                                    if ((0x1 != 0x0) && (value10 < var_k)) {
                                                        if (!(value10 < var_k)) _desolexPanic(50);
                                                        require((value10 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_n >> 0xf8) * 0x58))) == var_k, DataTooShort());
                                                    } else {
                                                        value49 = value10;
                                                        value50 = value6;
                                                        value51 = var_k;
                                                    }
                                                    uint256 value14 = 0;
                                                    while (true) {
                                                        tstore_b = 0;
                                                        tstore_c = 0;
                                                        if (value14 >= var_h) {
                                                            _desolexPanic(50);
                                                            break;
                                                        }
                                                        if (!(value14 < var_q)) {
                                                            _desolexPanic(50);
                                                            break;
                                                        }
                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                        (bool success14, bytes memory returnData14) = var_r.call(abi.encodeWithSelector(bytes4(0xa9059cbb), address(0xba1333333333a1ba1108e8412f11850a5c319ba9), var_s)); // call transfer
                                                        uint256 value52 = 0x60;
                                                        if ((returnData14.length) != 0x0) {
                                                            if (returnData14.length > 0xffffffffffffffff) _desolexPanic(65);
                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                            value52 = var_a;
                                                        }
                                                        uint256 value55 = 0;
                                                        bool flag12;
                                                        if (success14) {
                                                            uint256 value53 = 0;
                                                            uint256 value54 = 0;
                                                            bool flag17 = !(var_bh);
                                                            if (var_bi) {
                                                                require(((value52 + var_bi) + 0x20) - (value52 + 0x20) >= 0x20);
                                                                require(var_bh != 0x0 == var_bh);
                                                            } else {
                                                                value53 = var_bi;
                                                                value54 = value52;
                                                                flag17 = var_bi;
                                                            }
                                                            flag12 = flag17;
                                                        } else {
                                                            value55 = value52;
                                                            flag12 = !success14;
                                                        }
                                                        require(!(flag12), TransferFailed());
                                                        if (!((value14 < var_z))) _desolexPanic(50);
                                                        if (!(value14 < var_q)) {
                                                            _desolexPanic(50);
                                                            break;
                                                        }
                                                        (bool success15, bytes memory returnData15) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(var_aa), var_s); // call
                                                        if (!success15) {
                                                            revert();
                                                            break;
                                                        }
                                                        if (success15) {
                                                            if (0x20 > returnData15.length) {
                                                                if (((var_a + ((returnData15.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData15.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) {
                                                                    _desolexPanic(65);
                                                                    break;
                                                                }
                                                                var_a = var_a + ((returnData15.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                if (((var_a + returnData15.length) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            } else {
                                                                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) {
                                                                    _desolexPanic(65);
                                                                    break;
                                                                }
                                                                var_a = var_a + 0x20;
                                                                if (((var_a + 0x20) - var_a) < 0x20) {
                                                                    revert();
                                                                    break;
                                                                }
                                                            }
                                                        }
                                                        value14 = value14 + 0x01;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_7466e8ff(bytes memory arg0) public {
        require(((0x04 + arg0) + 0x1f) < msg.data.length);
        require(((0x04 + arg0) + arg0 + 0x20) <= msg.data.length);
        require(msg.sender == 0xba1333333333a1ba1108e8412f11850a5c319ba9, "!vault");
        require(((0x04 + arg0) + 0x20) + arg0 - ((0x04 + arg0) + 0x20) >= 0x80);
        require(address(arg0 + 0x20) == (arg0 + 0x20));
        require(((arg0 + 0x20) + 0x60) <= 0xffffffffffffffff);
        require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x60) + 0x1f) < (((0x04 + arg0) + 0x20) + arg0));
        if ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60) > 0xffffffffffffffff) _desolexPanic(65);
        uint256 var_a;
        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        require((((0x04 + arg0) + 0x20) + ((arg0 + 0x20) + 0x60) + 0x20) + ((arg0 + 0x20) + ((arg0 + 0x20) + 0x60)) <= (((0x04 + arg0) + 0x20) + arg0));
        var_c = msg.data[68:68];
        if (!(!((arg0 + 0x20) + 0x20))) {
            require(0xba1333333333a1ba1108e8412f11850a5c319ba9.code.length != 0x0);
            (bool success0, bytes memory returnData0) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).sendTo(address(arg0 + 0x20), address(this), ((arg0 + 0x20) + 0x20)); // call
            require(success0);
            uint256 value0 = 0;
            if (success0) {
                if (((var_a + 0) > 0xffffffffffffffff) | ((var_a + 0) < var_a)) _desolexPanic(65);
                var_a = var_a + 0;
                require((var_a - var_a) >= 0);
            } else {
                value0 = var_a;
            }
        }
        if (((arg0 + 0x20) + 0x40) != 0x0) {
            tstore_d = 0x02;
            require(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb.code.length != 0x0);
            (bool success1, bytes memory returnData1) = address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb).flashLoan(address(arg0 + 0x20), ((arg0 + 0x20) + 0x40), 0x60); // call
            require(success1);
            uint256 value1 = 0;
            if (success1) {
                if (((var_a + 0) > 0xffffffffffffffff) | ((var_a + 0) < var_a)) _desolexPanic(65);
                var_a = var_a + 0;
                require((var_a - var_a) >= 0);
            } else {
                value1 = var_a;
            }
            if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
            var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            (bool success2, bytes memory returnData2) = address(arg0 + 0x20).transfer(address(0xba1333333333a1ba1108e8412f11850a5c319ba9), ((arg0 + 0x20) + 0x20)); // call
            uint256 value2 = 0x60;
            if ((returnData2.length) != 0x0) {
                if (returnData2.length > 0xffffffffffffffff) _desolexPanic(65);
                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData2.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData2.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData2.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                value2 = var_a;
            }
            uint256 value5 = 0;
            bool flag0;
            if (success2) {
                uint256 value3 = 0;
                uint256 value4 = 0;
                bool flag15 = !(var_m);
                if (var_n) {
                    require(((value2 + var_n) + 0x20) - (value2 + 0x20) >= 0x20);
                    require(var_m != 0x0 == var_m);
                } else {
                    value3 = var_n;
                    value4 = value2;
                    flag15 = var_n;
                }
                flag0 = flag15;
            } else {
                value5 = value2;
                flag0 = !success2;
            }
            require(!(flag0), TransferFailed());
            (bool success3, bytes memory returnData3) = address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
            require(success3);
            if (0x20 <= returnData3.length) {
                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                var_a = var_a + 0x20;
                require(!(((var_a + 0x20) - var_a) < 0x20));
            }
            if (((var_a + ((returnData3.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData3.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
            var_a = var_a + ((returnData3.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
            require(!(((var_a + returnData3.length) - var_a) < 0x20));
        }
        tstore_c = 0x01;
        require(var_a.length >= 0x01, DataTooShort());
        if (0 == (var_c == 0xff)) {
            if (var_c == 0) {
                tstore_c = 0;
                if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                (bool success4, bytes memory returnData4) = address(arg0 + 0x20).transfer(0xba1333333333a1ba1108e8412f11850a5c319ba9, ((arg0 + 0x20) + 0x20)); // call
                uint256 value6 = 0x60;
                if ((returnData4.length) != 0x0) {
                    if (returnData4.length > 0xffffffffffffffff) _desolexPanic(65);
                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                    value6 = var_a;
                }
                uint256 value9 = 0;
                bool flag1;
                if (success4) {
                    uint256 value7 = 0;
                    uint256 value8 = 0;
                    bool flag11 = !(var_s);
                    if (var_r != 0) {
                        require(!(((value6 + var_r) + 0x20) - (value6 + 0x20) < 0x20));
                        require(var_t != 0x0 == var_t);
                    } else {
                        value7 = var_r;
                        value8 = value6;
                        flag11 = var_r;
                    }
                    flag1 = flag11;
                } else {
                    value9 = value6;
                    flag1 = !success4;
                }
                require(!(flag1), TransferFailed());
                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
            } else {
                require(var_c <= 0x64, InvalidActionCount());
                uint256 value10 = 0;
                uint256 value11 = 0x01;
                while (true) {
                    tstore_b = 0x01;
                    if (value10 >= var_c) {
                        break;
                    }
                    if ((value11 + 0x16) > var_a.length) {
                        revert DataTooShort();
                        break;
                    }
                    uint256 value12 = (var_v >> 0xf0) & (0x7fff);
                    uint256 value13 = (var_v >> 0xf0) & (0x7fff);
                    if (0 != !(!((var_v >> 0xf0) & (0x4000)))) {
                        require((var_v >> 0xf0) & (0x8000), CustomError_41e8e806());
                        value12 = (var_v >> 0xf0) & (0x3fff);
                        value13 = (var_v >> 0xf0) & (0x3fff);
                    }
                    if (((value11 + value12) + 0x16) > var_a.length) {
                        revert DataTooShort();
                        break;
                    }
                    uint256 value43 = 0;
                    bool flag3 = !(!((var_v >> 0xf0) & (0x4000)));
                    if (!((var_v >> 0xf0) & (0x8000))) {
                        flag2 = !(!((var_v >> 0xf0) & (0x4000)));
                        flag3 = !(!((var_v >> 0xf0) & (0x8000)));
                    }
                    if (!flag3) {
                        if (!(!(!((var_v >> 0xf0) & (0x8000))))) {
                            if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                            uint256 value14 = 0;
                            while (true) {
                                if (value14 >= ((value13 + 0x1f) >> 0x05)) {
                                    break;
                                }
                                value14 = value14 + 0x01;
                            }
                            (bool success6, bytes memory returnData6) = address(var_x >> 0x60).Unknown_(var_y); // delegatecall
                            uint256 value15 = 0x60;
                            if ((returnData6.length) != 0x0) {
                                if (returnData6.length > 0xffffffffffffffff) _desolexPanic(65);
                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                value15 = var_a;
                            }
                            if (!success6) {
                                require(var_z != 0x0, DelegatecallFailed());
                                revert();
                                break;
                            }
                        } else {
                            if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value13))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            if (value13 > 0xffffffffffffffff) _desolexPanic(65);
                            uint256 value16 = 0;
                            while (true) {
                                if (value16 >= ((value13 + 0x1f) >> 0x05)) {
                                    break;
                                }
                                value16 = value16 + 0x01;
                            }
                            tstore_c = 0;
                            tstore_a = var_x >> 0x60;
                            (bool success7, bytes memory returnData7) = address(var_x >> 0x60).call(""); // call
                            uint256 value17 = 0x60;
                            if ((returnData7.length) != 0x0) {
                                if (returnData7.length > 0xffffffffffffffff) _desolexPanic(65);
                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                value17 = var_a;
                            }
                            tstore_a = 0;
                            tstore_c = tstore_c;
                            if (!success7) {
                                require(var_ab != 0x0, DelegatecallFailed());
                                revert();
                                break;
                            }
                        }
                    } else {
                        if (value13 < 0x20) {
                            revert CustomError_f0777cc7();
                            break;
                        }
                        if ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                        if ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                        var_c = msg.data[4:115792089237316195423570985008687907853269984665640564039457584007913129639908];
                        uint256 value18 = 0;
                        while (true) {
                            if (value18 >= ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                break;
                            }
                            value18 = value18 + 0x01;
                        }
                        tstore_c = 0;
                        tstore_a = var_x >> 0x60;
                        (bool success8, bytes memory returnData8) = address(var_x >> 0x60).adfepixw{ value: var_ad }(); // call
                        uint256 value19 = 0x60;
                        if ((returnData8.length) != 0x0) {
                            if (returnData8.length > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            value19 = var_a;
                        }
                        tstore_a = 0;
                        tstore_c = tstore_c;
                        if (!success8) {
                            require(var_ae != 0x0, DelegatecallFailed());
                            revert();
                            break;
                        }
                    }
                    value10 = 0x01 + value10;
                    value11 = (value11 + value12) + 0x16;
                }
                uint256 value20 = 0;
                uint256 value21 = 0;
                uint256 value22 = 0;
                if ((0x0 != 0x0) && (value11 < var_af)) {
                    if (!((value11 < var_ag))) _desolexPanic(50);
                    require((value11 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_ah >> 0xf8) * 0x58))) == var_a.length, DataTooShort());
                } else {
                    value20 = value11;
                    value21 = var_a;
                    value22 = var_a.length;
                }
                tstore_b = 0;
                tstore_c = 0;
                if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                (bool success9, bytes memory returnData9) = address(arg0 + 0x20).transfer(0xba1333333333a1ba1108e8412f11850a5c319ba9, ((arg0 + 0x20) + 0x20)); // call
                uint256 value23 = 0x60;
                if ((returnData9.length) != 0x0) {
                    if (returnData9.length > 0xffffffffffffffff) _desolexPanic(65);
                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                    value23 = var_a;
                }
                uint256 value26 = 0;
                bool flag5;
                if (success9) {
                    uint256 value24 = 0;
                    uint256 value25 = 0;
                    bool flag12 = !(var_aj);
                    if (var_ai) {
                        require(!(((value23 + var_ai) + 0x20) - (value23 + 0x20) < 0x20));
                        require(var_t != 0x0 == var_t);
                    } else {
                        value24 = var_ai;
                        value25 = value23;
                        flag12 = var_ai;
                    }
                    flag5 = flag12;
                } else {
                    value26 = value23;
                    flag5 = !success9;
                }
                require(!(flag5), TransferFailed());
                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
            }
            require(success);
            if (0x20 <= ret0.length) {
                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                require(!(((var_a + 0x20) - var_a) < 0x20));
            }
            if (((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
            var_a = var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
        } else {
            require(var_a.length >= 0x02, DataTooShort());
            if (!(var_ak)) {
                tstore_c = 0;
                if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                (bool success11, bytes memory returnData11) = address(arg0 + 0x20).transfer(address(0xba1333333333a1ba1108e8412f11850a5c319ba9), ((arg0 + 0x20) + 0x20)); // call
                uint256 value27 = 0x60;
                if ((returnData11.length) != 0x0) {
                    if (returnData11.length > 0xffffffffffffffff) _desolexPanic(65);
                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                    value27 = var_a;
                }
                uint256 value30 = 0;
                bool flag6;
                if (success11) {
                    uint256 value28 = 0;
                    uint256 value29 = 0;
                    bool flag13 = !(var_al);
                    if (var_am) {
                        require(((value27 + var_am) + 0x20) - (value27 + 0x20) >= 0x20);
                        require(var_al != 0x0 == var_al);
                    } else {
                        value28 = var_am;
                        value29 = value27;
                        flag13 = var_am;
                    }
                    flag6 = flag13;
                } else {
                    value30 = value27;
                    flag6 = !success11;
                }
                require(!(flag6), TransferFailed());
                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
            } else {
                require(var_ak <= 0x64, InvalidActionCount());
                uint256 value10 = 0;
                uint256 value11 = 0x01;
                while (true) {
                    tstore_b = 0x01;
                    if (value10 >= var_c) {
                        break;
                    }
                    if ((value11 + 0x16) > var_a.length) {
                        revert DataTooShort();
                        break;
                    }
                    uint256 value31 = (var_v >> 0xf0) & (0x7fff);
                    uint256 value32 = (var_v >> 0xf0) & (0x7fff);
                    if (0 != !(!((var_v >> 0xf0) & (0x4000)))) {
                        require((var_v >> 0xf0) & (0x8000), CustomError_41e8e806());
                        value31 = (var_v >> 0xf0) & (0x3fff);
                        value32 = (var_v >> 0xf0) & (0x3fff);
                    }
                    if (((value11 + value31) + 0x16) > var_a.length) {
                        revert DataTooShort();
                        break;
                    }
                    uint256 value44 = 0;
                    bool flag8 = !(!((var_v >> 0xf0) & (0x4000)));
                    if (!((var_v >> 0xf0) & (0x8000))) {
                        flag7 = !(!((var_v >> 0xf0) & (0x4000)));
                        flag8 = !(!((var_v >> 0xf0) & (0x8000)));
                    }
                    if (!flag8) {
                        if (!(!(!((var_v >> 0xf0) & (0x8000))))) {
                            if (value32 > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value32))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value32))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value32))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            if (value32 > 0xffffffffffffffff) _desolexPanic(65);
                            uint256 value14 = 0;
                            while (true) {
                                if (value14 >= ((value13 + 0x1f) >> 0x05)) {
                                    break;
                                }
                                value14 = value14 + 0x01;
                            }
                            (bool success13, bytes memory returnData13) = address(var_x >> 0x60).Unknown_(var_an); // delegatecall
                            uint256 value33 = 0x60;
                            if ((returnData13.length) != 0x0) {
                                if (returnData13.length > 0xffffffffffffffff) _desolexPanic(65);
                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                value33 = var_a;
                            }
                            if (!success13) {
                                require(var_ao != 0x0, DelegatecallFailed());
                                revert();
                                break;
                            }
                        } else {
                            if (value32 > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value32))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value32))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value32))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            if (value32 > 0xffffffffffffffff) _desolexPanic(65);
                            uint256 value16 = 0;
                            while (true) {
                                if (value16 >= ((value13 + 0x1f) >> 0x05)) {
                                    break;
                                }
                                value16 = value16 + 0x01;
                            }
                            tstore_c = 0;
                            tstore_a = var_x >> 0x60;
                            (bool success14, bytes memory returnData14) = address(var_x >> 0x60).call(""); // call
                            uint256 value34 = 0x60;
                            if ((returnData14.length) != 0x0) {
                                if (returnData14.length > 0xffffffffffffffff) _desolexPanic(65);
                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                value34 = var_a;
                            }
                            tstore_a = 0;
                            tstore_c = tstore_c;
                            if (!success14) {
                                require(var_ap != 0x0, DelegatecallFailed());
                                revert();
                                break;
                            }
                        }
                    } else {
                        if (value32 < 0x20) {
                            revert CustomError_f0777cc7();
                            break;
                        }
                        if ((value32 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value32 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value32 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value32 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                        if ((value32 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                        uint256 value18 = 0;
                        while (true) {
                            if (value18 >= ((value13 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                break;
                            }
                            value18 = value18 + 0x01;
                        }
                        tstore_c = 0;
                        tstore_a = var_x >> 0x60;
                        (bool success15, bytes memory returnData15) = address(var_x >> 0x60).adfepixw{ value: var_ad }(); // call
                        uint256 value35 = 0x60;
                        if ((returnData15.length) != 0x0) {
                            if (returnData15.length > 0xffffffffffffffff) _desolexPanic(65);
                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                            value35 = var_a;
                        }
                        tstore_a = 0;
                        tstore_c = tstore_c;
                        if (!success15) {
                            require(var_aq != 0x0, DelegatecallFailed());
                            revert();
                            break;
                        }
                    }
                    value10 = 0x01 + value10;
                    value11 = (value11 + value31) + 0x16;
                }
                uint256 value36 = 0;
                uint256 value37 = 0;
                uint256 value38 = 0;
                if ((0x1 != 0x0) && (value11 < var_af)) {
                    if (!(value11 < var_a.length)) _desolexPanic(50);
                    require((value11 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_ar >> 0xf8) * 0x58))) == var_a.length, DataTooShort());
                } else {
                    value36 = value11;
                    value37 = var_a;
                    value38 = var_a.length;
                }
                tstore_b = 0;
                tstore_c = 0;
                if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                (bool success16, bytes memory returnData16) = address(arg0 + 0x20).transfer(address(0xba1333333333a1ba1108e8412f11850a5c319ba9), ((arg0 + 0x20) + 0x20)); // call
                uint256 value39 = 0x60;
                if ((returnData16.length) != 0x0) {
                    if (returnData16.length > 0xffffffffffffffff) _desolexPanic(65);
                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                    value39 = var_a;
                }
                uint256 value42 = 0;
                bool flag10;
                if (success16) {
                    uint256 value40 = 0;
                    uint256 value41 = 0;
                    bool flag14 = !(var_as);
                    if (var_at) {
                        require(((value39 + var_at) + 0x20) - (value39 + 0x20) >= 0x20);
                        require(var_as != 0x0 == var_as);
                    } else {
                        value40 = var_at;
                        value41 = value39;
                        flag14 = var_at;
                    }
                    flag10 = flag14;
                } else {
                    value42 = value39;
                    flag10 = !success16;
                }
                require(!(flag10), TransferFailed());
                address(0xba1333333333a1ba1108e8412f11850a5c319ba9).settle(address(arg0 + 0x20), ((arg0 + 0x20) + 0x20)); // call
            }
            require(success);
            if (0x20 <= ret0.length) {
                if (((var_a + 0x20) > 0xffffffffffffffff) | ((var_a + 0x20) < var_a)) _desolexPanic(65);
                require(!(((var_a + 0x20) - var_a) < 0x20));
            }
            if (((var_a + ((ret0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((ret0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
        }
        require(!(((var_a + ret0.length) - var_a) < 0x20));
    }
    
    function Unknown_728260d0(uint256 arg0) public onlyOwner {
        require(!(arg0 >= 0x0 && arg0 > 0x2710 || arg0 < 0x0), CustomError_27b29e2a());
        emit Event_0ef662bd(unresolved_d9dddc1b, arg0);
        unresolved_d9dddc1b = arg0;
    }
    
    function Unknown_3a77b95e(bytes memory arg0) public payable returns (uint256) {
        if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x20) {
            if (!(arg0.length > 0xffffffffffffffff)) {
                require(((0x04 + arg0) + 0x1f) < msg.data.length);
                require(((0x04 + arg0) + arg0 + 0x20) <= msg.data.length);
                if (whitelist[msg.sender]) {
                    if (!(arg0.length < 0x01)) {
                        if (!(BYTE(0x0, CALLDATALOAD(0x4 + arg0 + 0x20)) != 0x0 && BYTE(0x0, CALLDATALOAD(0x4 + arg0 + 0x20)) > 0x20 || BYTE(0x0, CALLDATALOAD(0x4 + arg0 + 0x20)) == 0x0)) {
                            if (0 >= (arg0 + 0x20)) {
                                if (!(0x06 > arg0.length)) {
                                    if (0x06 <= ((0x01 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x05)) {
                                        if (((0x01 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x05) <= arg0) {
                                            if (0x06 <= (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) {
                                                if (0x06 <= (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) {
                                                    if ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) <= arg0) {
                                                        if (bytes1((arg0 + 0x20) + 0x01)) {
                                                            if (bytes1((arg0 + 0x20) + 0x01) != 0x01) {
                                                                if (0x02 == (bytes1((arg0 + 0x20) + 0x01))) {
                                                                    if (((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) - 0x06) >= 0x01) {
                                                                        tstore_c = 0x01;
                                                                        if (((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) - 0x06) > 0xffffffffffffffff) _desolexPanic(65);
                                                                        uint256 var_c;
                                                                        if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) - 0x06)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) - 0x06)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                        var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) - 0x06)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        if (!((0x06 + ((0x04 + arg0) + 0x20)) + ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) - 0x06) > msg.data.length)) {
                                                                            var_e = msg.data[42:42];
                                                                            if (var_c.length >= 0x01) {
                                                                                if (0 != (var_e == 0xff)) {
                                                                                    if (var_c.length >= 0x02) {
                                                                                        if (!(var_g)) {
                                                                                            tstore_c = 0;
                                                                                            (bool success0, bytes memory returnData0) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).balanceOf(address(this)); // staticcall
                                                                                            if (success0) {
                                                                                                uint256 value0 = 0;
                                                                                                uint256 value1;
                                                                                                if (success0) {
                                                                                                    uint256 value24 = var_c.length;
                                                                                                    if (0x20 > returnData0.length) {
                                                                                                        if (((var_c + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + ((returnData0.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        require(((var_c + returnData0.length) - var_c) >= 0x20);
                                                                                                    } else {
                                                                                                        if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        require(!(((var_c + 0x20) - var_c) < 0x20));
                                                                                                        value24 = var_j;
                                                                                                    }
                                                                                                    value1 = value24;
                                                                                                } else {
                                                                                                    value0 = var_c;
                                                                                                    value1 = 0;
                                                                                                }
                                                                                                if (value1 > 0x1) {
                                                                                                    if (0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.code.length != 0x0) {
                                                                                                        (bool success1, bytes memory returnData1) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).withdraw(value1 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                                                        if (success1) {
                                                                                                            if (success1) {
                                                                                                                if (!(((var_c + 0) > 0xffffffffffffffff) | ((var_c + 0) < var_c))) {
                                                                                                                    var_c = var_c + 0;
                                                                                                                    if ((var_c - var_c) >= 0) {
                                                                                                                        if (0x06 <= (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) {
                                                                                                                            if ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) <= ((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21)) {
                                                                                                                                if (((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0) {
                                                                                                                                    if (((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0) {
                                                                                                                                        if (arg0 <= arg0) {
                                                                                                                                            if (address(this).balance > 0x01) {
                                                                                                                                                if ((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) {
                                                                                                                                                    if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                                                        require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                                                                    } else {
                                                                                                                                                        require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                                                                                                        if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                    if (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 == 0) {
                                                                                                                                                        if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                                                                                                            address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                                                                                                        } else {
                                                                                                                                                            return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                                                                                                        }
                                                                                                                                                    }
                                                                                                                                                }
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            } else {
                                                                                                                require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0, DataTooShort());
                                                                                                                require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0);
                                                                                                                require(arg0 <= arg0);
                                                                                                                require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                                require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                                if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                    require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                                } else {
                                                                                                                    require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                                                                    if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                        require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                                    }
                                                                                                                }
                                                                                                                if ((((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) != 0x0) {
                                                                                                                    (bool success3, bytes memory returnData3) = address(block.coinbase).call{ value: ((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 }(""); // call
                                                                                                                    uint256 value2 = 0x60;
                                                                                                                    if ((returnData3.length) != 0x0) {
                                                                                                                        if (returnData3.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                        if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                        var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                        value2 = var_c;
                                                                                                                    }
                                                                                                                } else {
                                                                                                                    if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                                                                        (bool success4, bytes memory returnData4) = address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                                                                        uint256 value3 = 0x60;
                                                                                                                        if ((returnData4.length) != 0x0) {
                                                                                                                            if (returnData4.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                            value3 = var_c;
                                                                                                                        }
                                                                                                                        require(success4, TransferFailed());
                                                                                                                    }
                                                                                                                    return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                } else {
                                                                                                    require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0, DataTooShort());
                                                                                                    require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0);
                                                                                                    require(arg0 <= arg0);
                                                                                                    require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                    require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                    if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                        require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                    } else {
                                                                                                        require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                                                        if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                        }
                                                                                                    }
                                                                                                    if ((((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) != 0x0) {
                                                                                                        (bool success5, bytes memory returnData5) = address(block.coinbase).call{ value: ((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 }(""); // call
                                                                                                        uint256 value4 = 0x60;
                                                                                                        if ((returnData5.length) != 0x0) {
                                                                                                            if (returnData5.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            value4 = var_c;
                                                                                                        }
                                                                                                    } else {
                                                                                                        if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                                                            (bool success6, bytes memory returnData6) = address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                                                            uint256 value5 = 0x60;
                                                                                                            if ((returnData6.length) != 0x0) {
                                                                                                                if (returnData6.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData6.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                value5 = var_c;
                                                                                                            }
                                                                                                            require(success6, TransferFailed());
                                                                                                        }
                                                                                                        return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        } else {
                                                                                            require(var_g <= 0x64, InvalidActionCount());
                                                                                            tstore_b = 0x01;
                                                                                            if (0 < var_g) {
                                                                                                require(0x18 <= var_c.length, DataTooShort());
                                                                                                uint256 value6 = (var_m >> 0xf0) & (0x7fff);
                                                                                                uint256 value7 = (var_m >> 0xf0) & (0x7fff);
                                                                                                if (0 != !(!((var_m >> 0xf0) & (0x4000)))) {
                                                                                                    require((var_m >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                                                                    value6 = (var_m >> 0xf0) & (0x3fff);
                                                                                                    value7 = (var_m >> 0xf0) & (0x3fff);
                                                                                                }
                                                                                                require(((0x02 + value6) + 0x16) <= var_c.length, DataTooShort());
                                                                                                uint256 value25 = 0;
                                                                                                bool flag2 = !(!((var_m >> 0xf0) & (0x4000)));
                                                                                                if (!((var_m >> 0xf0) & (0x8000))) {
                                                                                                    flag1 = !(!((var_m >> 0xf0) & (0x4000)));
                                                                                                    flag2 = !(!((var_m >> 0xf0) & (0x8000)));
                                                                                                }
                                                                                                if (!flag2) {
                                                                                                    if (!(!(!((var_m >> 0xf0) & (0x8000))))) {
                                                                                                        if (value7 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                        if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value7))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value7))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value7))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        if (value7 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                        if (0 < ((value7 + 0x1f) >> 0x05)) {
                                                                                                        } else {
                                                                                                            (bool success7, bytes memory returnData7) = address(var_o >> 0x60).Unknown_(var_p); // delegatecall
                                                                                                            uint256 value8 = 0x60;
                                                                                                            if ((returnData7.length) != 0x0) {
                                                                                                                if (returnData7.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                value8 = var_c;
                                                                                                            }
                                                                                                            if (!success7) {
                                                                                                                require(var_q != 0x0, DelegatecallFailed());
                                                                                                                revert();
                                                                                                            }
                                                                                                        }
                                                                                                    } else {
                                                                                                        if (value7 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                        if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value7))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value7))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value7))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        if (value7 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                        if (0 < ((value7 + 0x1f) >> 0x05)) {
                                                                                                        } else {
                                                                                                            tstore_c = 0;
                                                                                                            tstore_a = var_o >> 0x60;
                                                                                                            (bool success8, bytes memory returnData8) = address(var_o >> 0x60).call(""); // call
                                                                                                            uint256 value9 = 0x60;
                                                                                                            if ((returnData8.length) != 0x0) {
                                                                                                                if (returnData8.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                value9 = var_c;
                                                                                                            }
                                                                                                            tstore_a = 0;
                                                                                                            tstore_c = tstore_c;
                                                                                                            if (!success8) {
                                                                                                                require(var_r != 0x0, DelegatecallFailed());
                                                                                                                revert();
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                } else {
                                                                                                    require(value7 >= 0x20, CustomError_f0777cc7());
                                                                                                    if ((value7 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                    if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value7 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value7 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                    var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value7 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                    if ((value7 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                    if (0 < ((value7 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                                                    } else {
                                                                                                        tstore_c = 0;
                                                                                                        tstore_a = var_o >> 0x60;
                                                                                                        (bool success9, bytes memory returnData9) = address(var_o >> 0x60).adfepixw{ value: var_t }(); // call
                                                                                                        uint256 value10 = 0x60;
                                                                                                        if ((returnData9.length) != 0x0) {
                                                                                                            if (returnData9.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            value10 = var_c;
                                                                                                        }
                                                                                                        tstore_a = 0;
                                                                                                        tstore_c = tstore_c;
                                                                                                        if (!success9) {
                                                                                                            require(var_u != 0x0, DelegatecallFailed());
                                                                                                            revert();
                                                                                                        }
                                                                                                    }
                                                                                                }
                                                                                            } else {
                                                                                                uint256 value11 = 0;
                                                                                                uint256 value12 = 0;
                                                                                                uint256 value13 = 0;
                                                                                                if ((0x1 != 0x0) && (0x2 < var_v)) {
                                                                                                    if (!((0x02 < var_w))) _desolexPanic(50);
                                                                                                    require((0x02 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_x >> 0xf8) * 0x58))) == var_c.length, DataTooShort());
                                                                                                } else {
                                                                                                    value11 = 0x02;
                                                                                                    value12 = var_c;
                                                                                                    value13 = var_c.length;
                                                                                                }
                                                                                                tstore_b = 0;
                                                                                                tstore_c = 0;
                                                                                                (bool success10, bytes memory returnData10) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).balanceOf(address(this)); // staticcall
                                                                                                require(success10);
                                                                                                uint256 value14 = 0;
                                                                                                uint256 value15;
                                                                                                if (success10) {
                                                                                                    uint256 value30 = var_c.length;
                                                                                                    if (0x20 > returnData10.length) {
                                                                                                        if (((var_c + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + ((returnData10.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        require(((var_c + returnData10.length) - var_c) >= 0x20);
                                                                                                    } else {
                                                                                                        if (((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                        require(!(((var_c + 0x20) - var_c) < 0x20));
                                                                                                        value30 = var_j;
                                                                                                    }
                                                                                                    value15 = value30;
                                                                                                } else {
                                                                                                    value14 = var_c;
                                                                                                    value15 = 0;
                                                                                                }
                                                                                                if (value15 > 0x1) {
                                                                                                    require(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2.code.length != 0x0);
                                                                                                    (bool success11, bytes memory returnData11) = address(0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2).withdraw(value15 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                                                    require(success11);
                                                                                                    if (success11) {
                                                                                                        if (((var_c + 0) > 0xffffffffffffffff) | ((var_c + 0) < var_c)) _desolexPanic(65);
                                                                                                        var_c = var_c + 0;
                                                                                                        require((var_c - var_c) >= 0);
                                                                                                        require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0, DataTooShort());
                                                                                                        require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0);
                                                                                                        require(arg0 <= arg0);
                                                                                                        require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                        require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                        if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                        } else {
                                                                                                            require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                                                            if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                            }
                                                                                                        }
                                                                                                        if ((((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) != 0x0) {
                                                                                                            (bool success12, bytes memory returnData12) = address(block.coinbase).call{ value: ((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 }(""); // call
                                                                                                            uint256 value16 = 0x60;
                                                                                                            if ((returnData12.length) != 0x0) {
                                                                                                                if (returnData12.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                value16 = var_c;
                                                                                                            }
                                                                                                        } else {
                                                                                                            if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                                                                (bool success13, bytes memory returnData13) = address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                                                                uint256 value17 = 0x60;
                                                                                                                if ((returnData13.length) != 0x0) {
                                                                                                                    if (returnData13.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                    if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                    var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData13.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    value17 = var_c;
                                                                                                                }
                                                                                                                require(success13, TransferFailed());
                                                                                                            }
                                                                                                            return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                                                        }
                                                                                                    } else {
                                                                                                        require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0, DataTooShort());
                                                                                                        require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0);
                                                                                                        require(arg0 <= arg0);
                                                                                                        require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                        require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                        if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                        } else {
                                                                                                            require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                                                            if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                                require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                            }
                                                                                                        }
                                                                                                        if ((((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) != 0x0) {
                                                                                                            (bool success14, bytes memory returnData14) = address(block.coinbase).call{ value: ((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 }(""); // call
                                                                                                            uint256 value18 = 0x60;
                                                                                                            if ((returnData14.length) != 0x0) {
                                                                                                                if (returnData14.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                value18 = var_c;
                                                                                                            }
                                                                                                        } else {
                                                                                                            if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                                                                (bool success15, bytes memory returnData15) = address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                                                                uint256 value19 = 0x60;
                                                                                                                if ((returnData15.length) != 0x0) {
                                                                                                                    if (returnData15.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                    if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                    var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                    value19 = var_c;
                                                                                                                }
                                                                                                                require(success15, TransferFailed());
                                                                                                            }
                                                                                                            return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                                                        }
                                                                                                    }
                                                                                                } else {
                                                                                                    require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0, DataTooShort());
                                                                                                    require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0);
                                                                                                    require(arg0 <= arg0);
                                                                                                    require((address(this).balance > 0x01), InsufficientProfit());
                                                                                                    require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                                                    if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                        require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                    } else {
                                                                                                        require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                                                        if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                                                        }
                                                                                                    }
                                                                                                    if ((((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) != 0x0) {
                                                                                                        (bool success16, bytes memory returnData16) = address(block.coinbase).call{ value: ((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 }(""); // call
                                                                                                        uint256 value20 = 0x60;
                                                                                                        if ((returnData16.length) != 0x0) {
                                                                                                            if (returnData16.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                            value20 = var_c;
                                                                                                        }
                                                                                                    } else {
                                                                                                        if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                                                            (bool success17, bytes memory returnData17) = address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                                                            uint256 value21 = 0x60;
                                                                                                            if ((returnData17.length) != 0x0) {
                                                                                                                if (returnData17.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData17.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData17.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData17.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                                                value21 = var_c;
                                                                                                            }
                                                                                                            require(success17, TransferFailed());
                                                                                                        }
                                                                                                        return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                } else {
                                                                    require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0, DataTooShort());
                                                                    require(((0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x21) <= arg0);
                                                                    require(arg0 <= arg0);
                                                                    require((address(this).balance > 0x01), InsufficientProfit());
                                                                    require((address(this).balance + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) > ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))), InsufficientProfit());
                                                                    if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                        require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                    } else {
                                                                        require(((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20) <= 0x64, CustomError_27b29e2a());
                                                                        if (!((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)) + 0x20)) {
                                                                            require(unresolved_d9dddc1b >= 0, CustomError_27b29e2a());
                                                                        }
                                                                    }
                                                                    if ((((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) != 0x0) {
                                                                        (bool success18, bytes memory returnData18) = address(block.coinbase).call{ value: ((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710 }(""); // call
                                                                        uint256 value22 = 0x60;
                                                                        if ((returnData18.length) != 0x0) {
                                                                            if (returnData18.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData18.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData18.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                            var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData18.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value22 = var_c;
                                                                        }
                                                                    } else {
                                                                        if ((address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) != 0x0) {
                                                                            (bool success19, bytes memory returnData19) = address(msg.sender).call{ value: (address(this).balance - (((address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) * unresolved_d9dddc1b) / 0x2710)) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff }(""); // call
                                                                            uint256 value23 = 0x60;
                                                                            if ((returnData19.length) != 0x0) {
                                                                                if (returnData19.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData19.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData19.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
                                                                                var_c = var_c + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData19.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value23 = var_c;
                                                                            }
                                                                            require(success19, TransferFailed());
                                                                        }
                                                                        return (address(this).balance - ((arg0 + 0x20) + (0x06 + ((((arg0 + 0x20) + 0x01) + 0x01) >> 0xe0)))) + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function onMorphoFlashLoan(uint256 arg0, bytes memory arg1) public payable {
        if (!(msg.value)) {
            if ((msg.data.length + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc) >= 0x40) {
                if (!(arg1.length > 0xffffffffffffffff)) {
                    if (((0x04 + arg1) + 0x1f) < msg.data.length) {
                        if (!(arg1.length > 0xffffffffffffffff)) {
                            if (((0x04 + arg1) + arg1 + 0x20) <= msg.data.length) {
                                if (msg.sender == 0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb) {
                                    tstore_c = 0x01;
                                    if (!(tstore_d)) {
                                        if (((0x04 + arg1) + 0x20) + arg1 - ((0x04 + arg1) + 0x20) >= 0x60) {
                                            require(address(arg1 + 0x20) == (arg1 + 0x20));
                                            if (((arg1 + 0x20) + 0x40) <= 0xffffffffffffffff) {
                                                if ((((0x04 + arg1) + 0x20) + ((arg1 + 0x20) + 0x40) + 0x1f) < (((0x04 + arg1) + 0x20) + arg1)) {
                                                    if ((arg1 + 0x20) + ((arg1 + 0x20) + 0x40) > 0xffffffffffffffff) _desolexPanic(65);
                                                    uint256 var_a;
                                                    if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg1 + 0x20) + ((arg1 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg1 + 0x20) + ((arg1 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                    var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((arg1 + 0x20) + ((arg1 + 0x20) + 0x40))))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                    require((((0x04 + arg1) + 0x20) + ((arg1 + 0x20) + 0x40) + 0x20) + ((arg1 + 0x20) + ((arg1 + 0x20) + 0x40)) <= (((0x04 + arg1) + 0x20) + arg1));
                                                    var_c = msg.data[68:68];
                                                    if (var_a.length >= 0x01) {
                                                        if (0 == (var_c == 0xff)) {
                                                            if (var_c != 0x0) {
                                                                if (var_c <= 0x64) {
                                                                    uint256 value0 = 0;
                                                                    uint256 value1 = 0x01;
                                                                    while (true) {
                                                                        tstore_b = 0x01;
                                                                        if (value0 >= var_c) {
                                                                            break;
                                                                        }
                                                                        if ((value1 + 0x16) > var_a.length) {
                                                                            break;
                                                                        }
                                                                        uint256 value2 = (var_e >> 0xf0) & (0x7fff);
                                                                        uint256 value3 = (var_e >> 0xf0) & (0x7fff);
                                                                        if (0 != !(!((var_e >> 0xf0) & (0x4000)))) {
                                                                            require((var_e >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                                            value2 = (var_e >> 0xf0) & (0x3fff);
                                                                            value3 = (var_e >> 0xf0) & (0x3fff);
                                                                        }
                                                                        if (((value1 + value2) + 0x16) > var_a.length) {
                                                                            revert DataTooShort();
                                                                            break;
                                                                        }
                                                                        uint256 value89 = 0;
                                                                        bool flag1 = !(!((var_e >> 0xf0) & (0x4000)));
                                                                        if (!((var_e >> 0xf0) & (0x8000))) {
                                                                            flag0 = !(!((var_e >> 0xf0) & (0x4000)));
                                                                            flag1 = !(!((var_e >> 0xf0) & (0x8000)));
                                                                        }
                                                                        if (!flag1) {
                                                                            if (!(!(!((var_e >> 0xf0) & (0x8000))))) {
                                                                                if (value3 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value3))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value3))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value3))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                if (value3 > 0xffffffffffffffff) _desolexPanic(65);
                                                                                uint256 value4 = 0;
                                                                                while (true) {
                                                                                }
                                                                                break;
                                                                            }
                                                                            if (value3 > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value3))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value3))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value3))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if (value3 > 0xffffffffffffffff) _desolexPanic(65);
                                                                            uint256 value6 = 0;
                                                                            while (true) {
                                                                                if (value6 >= ((value3 + 0x1f) >> 0x05)) {
                                                                                    break;
                                                                                }
                                                                                value6 = value6 + 0x01;
                                                                            }
                                                                            tstore_c = 0;
                                                                            tstore_a = var_i >> 0x60;
                                                                            (bool success0, bytes memory returnData0) = address(var_i >> 0x60).call(""); // call
                                                                            uint256 value7 = 0x60;
                                                                            if ((returnData0.length) != 0x0) {
                                                                                if (returnData0.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData0.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value7 = var_a;
                                                                            }
                                                                            tstore_a = 0;
                                                                            tstore_c = tstore_c;
                                                                            if (!success0) {
                                                                                require(var_j != 0x0, DelegatecallFailed());
                                                                                revert();
                                                                                break;
                                                                            }
                                                                        } else {
                                                                            if (value3 < 0x20) {
                                                                                revert CustomError_f0777cc7();
                                                                                break;
                                                                            }
                                                                            if ((value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if ((value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                            var_c = msg.data[4:115792089237316195423570985008687907853269984665640564039457584007913129639908];
                                                                            uint256 value8 = 0;
                                                                            while (true) {
                                                                                if (value8 >= ((value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                                    break;
                                                                                }
                                                                                value8 = value8 + 0x01;
                                                                            }
                                                                            tstore_c = 0;
                                                                            tstore_a = var_i >> 0x60;
                                                                            (bool success1, bytes memory returnData1) = address(var_i >> 0x60).adfepixw{ value: var_l }(); // call
                                                                            uint256 value9 = 0x60;
                                                                            if ((returnData1.length) != 0x0) {
                                                                                if (returnData1.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData1.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value9 = var_a;
                                                                            }
                                                                            tstore_a = 0;
                                                                            tstore_c = tstore_c;
                                                                            if (!success1) {
                                                                                require(var_m != 0x0, DelegatecallFailed());
                                                                                revert();
                                                                                break;
                                                                            }
                                                                        }
                                                                        value0 = 0x01 + value0;
                                                                        value1 = (value1 + value2) + 0x16;
                                                                    }
                                                                    uint256 value10 = 0;
                                                                    uint256 value11 = 0;
                                                                    uint256 value12 = 0;
                                                                    if ((0x0 != 0x0) && (value1 < var_n)) {
                                                                        if (!((value1 < var_o))) _desolexPanic(50);
                                                                        require((value1 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_p >> 0xf8) * 0x58))) == var_a.length, DataTooShort());
                                                                    } else {
                                                                        value10 = value1;
                                                                        value11 = var_a;
                                                                        value12 = var_a.length;
                                                                    }
                                                                    tstore_b = 0;
                                                                    (bool success2, bytes memory returnData2) = address(arg1 + 0x20).allowance(address(this), 0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb); // staticcall
                                                                    require(success2);
                                                                    uint256 value13 = 0;
                                                                    uint256 value14;
                                                                    if (success2) {
                                                                        uint256 value86 = var_a.length;
                                                                        if (0x20 > returnData2.length) {
                                                                            if (((var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((returnData2.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(((var_a + returnData2.length) - var_a) >= 0x20);
                                                                        } else {
                                                                            if (((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                            value86 = var_t;
                                                                        }
                                                                        value14 = value86;
                                                                    } else {
                                                                        value13 = var_a;
                                                                        value14 = 0;
                                                                    }
                                                                    if (!(value14 >= arg0)) {
                                                                        if (((var_a + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((0x64 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success3, bytes memory returnData3) = address(arg1 + 0x20).approve(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                        uint256 value15 = 0x60;
                                                                        if ((returnData3.length) != 0x0) {
                                                                            if (returnData3.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData3.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value15 = var_a;
                                                                        }
                                                                        uint256 value19 = 0;
                                                                        uint256 value20;
                                                                        if (success3) {
                                                                            uint256 value90 = 0;
                                                                            uint256 value17 = 0;
                                                                            uint256 value18 = var_z;
                                                                            if (var_y) {
                                                                                require(!(((value15 + var_y) + 0x20) - (value15 + 0x20) < 0x20));
                                                                                require(var_aa != 0x0 == var_aa);
                                                                            } else {
                                                                                value16 = (var_y != 0x0) ? 1 : 0;
                                                                                value17 = value15;
                                                                                value18 = !var_y;
                                                                            }
                                                                            value20 = value18;
                                                                        } else {
                                                                            value19 = value15;
                                                                            value20 = success3;
                                                                        }
                                                                        if (((value20 != 0x0) && (CALLDATALOAD(0x4 + arg1 + 0x20).code.length == 0x0)) || ((value20 == 0x0) && (value20 == 0x0))) {
                                                                            if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if (((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            (bool success4, bytes memory returnData4) = address(arg1 + 0x20).approve(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb, 0); // call
                                                                            uint256 value21 = 0x60;
                                                                            if ((returnData4.length) != 0x0) {
                                                                                if (returnData4.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData4.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value21 = var_a;
                                                                            }
                                                                            if (!success4) {
                                                                                require(!var_ah);
                                                                                revert("SafeERC20: low-level call failed");
                                                                            } else {
                                                                                if (!var_ah) {
                                                                                    require(address(arg1 + 0x20).code.length != 0x0, "Address: call to non-contract");
                                                                                    uint256 value91 = 0;
                                                                                    uint256 value23 = 0;
                                                                                    uint256 value24 = var_am;
                                                                                    if (var_an != 0) {
                                                                                        require(!(((value21 + var_an) + 0x20) - (value21 + 0x20) < 0x20));
                                                                                        require(var_ao != 0x0 == var_ao);
                                                                                    } else {
                                                                                        value22 = (var_an != 0x0) ? 1 : 0;
                                                                                        value23 = value21;
                                                                                        value24 = !var_an;
                                                                                    }
                                                                                    require(value24 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                                } else {
                                                                                    uint256 value92 = 0;
                                                                                    uint256 value26 = 0;
                                                                                    uint256 value27 = var_am;
                                                                                    if (var_an != 0) {
                                                                                        require(!(((value21 + var_an) + 0x20) - (value21 + 0x20) < 0x20));
                                                                                        require(var_ao != 0x0 == var_ao);
                                                                                    } else {
                                                                                        value25 = (var_an != 0x0) ? 1 : 0;
                                                                                        value26 = value21;
                                                                                        value27 = !var_an;
                                                                                    }
                                                                                    require(value27 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                                }
                                                                            }
                                                                            if (((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            (bool success5, bytes memory returnData5) = address(arg1 + 0x20).approve(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                            uint256 value28 = 0x60;
                                                                            if ((returnData5.length) != 0x0) {
                                                                                if (returnData5.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData5.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value28 = var_a;
                                                                            }
                                                                            if (!success5) {
                                                                                require(!var_ah);
                                                                                revert("SafeERC20: low-level call failed");
                                                                            } else {
                                                                                if (!var_ah) {
                                                                                    require(address(arg1 + 0x20).code.length != 0x0, "Address: call to non-contract");
                                                                                    uint256 value29 = 0;
                                                                                    uint256 value30 = 0;
                                                                                    uint256 value31 = var_au;
                                                                                    if (!(!(var_av))) {
                                                                                        require(!(((value28 + var_at) + 0x20) - (value28 + 0x20) < 0x20));
                                                                                        require(var_ao != 0x0 == var_ao);
                                                                                    } else {
                                                                                        value29 = var_av;
                                                                                        value30 = value28;
                                                                                        value31 = !(var_av);
                                                                                    }
                                                                                    require(value31 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                                } else {
                                                                                    uint256 value32 = 0;
                                                                                    uint256 value33 = 0;
                                                                                    uint256 value34 = var_au;
                                                                                    if (!(!(var_av))) {
                                                                                        require(!(((value28 + var_at) + 0x20) - (value28 + 0x20) < 0x20));
                                                                                        require(var_ao != 0x0 == var_ao);
                                                                                    } else {
                                                                                        value32 = var_av;
                                                                                        value33 = value28;
                                                                                        value34 = !(var_av);
                                                                                    }
                                                                                    require(value34 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                    tstore_c = 0;
                                                                }
                                                            }
                                                        } else {
                                                            require(var_a.length >= 0x02, DataTooShort());
                                                            if (!(var_aw)) {
                                                                uint256 var_r = address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb);
                                                                (bool success6, bytes memory returnData6) = address(arg1 + 0x20).allowance(address(this), address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb)); // staticcall
                                                                require(success6);
                                                                uint256 value35 = 0;
                                                                uint256 value36;
                                                                if (success6) {
                                                                    uint256 value87 = var_a.length;
                                                                    if (0x20 > returnData6.length) {
                                                                        if (((var_a + ((returnData6.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData6.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((returnData6.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_a + returnData6.length) - var_a) >= 0x20);
                                                                    } else {
                                                                        if (((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                        value87 = var_s;
                                                                    }
                                                                    value36 = value87;
                                                                } else {
                                                                    value35 = var_a;
                                                                    value36 = 0;
                                                                }
                                                                if (!(value36 >= arg0)) {
                                                                    uint256 var_v = address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb);
                                                                    var_w = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff;
                                                                    if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + 0x80;
                                                                    (bool success7, bytes memory returnData7) = address(arg1 + 0x20).approve(address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                    uint256 value37 = 0x60;
                                                                    if ((returnData7.length) != 0x0) {
                                                                        if (returnData7.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData7.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        value37 = var_a;
                                                                    }
                                                                    uint256 value41 = 0;
                                                                    uint256 value42;
                                                                    if (success7) {
                                                                        uint256 value93 = 0;
                                                                        uint256 value39 = 0;
                                                                        uint256 value40 = var_ax;
                                                                        if (var_ay) {
                                                                            require(((value37 + var_ay) + 0x20) - (value37 + 0x20) >= 0x20);
                                                                            require(var_ax != 0x0 == var_ax);
                                                                        } else {
                                                                            value38 = (var_ay != 0x0) ? 1 : 0;
                                                                            value39 = value37;
                                                                            value40 = !var_ay;
                                                                        }
                                                                        value42 = value40;
                                                                    } else {
                                                                        value41 = value37;
                                                                        value42 = success7;
                                                                    }
                                                                    if (((value42 != 0x0) && ((address(arg1 + 0x20)).code.length == 0x0)) || ((value42 == 0x0) && (value42 == 0x0))) {
                                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        if (((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success8, bytes memory returnData8) = address(arg1 + 0x20).approve(address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb), 0); // call
                                                                        uint256 value43 = 0x60;
                                                                        if ((returnData8.length) != 0x0) {
                                                                            if (returnData8.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData8.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value43 = var_a;
                                                                        }
                                                                        if (!success8) {
                                                                            require(!var_ah);
                                                                            revert("SafeERC20: low-level call failed");
                                                                        } else {
                                                                            if (!var_ah) {
                                                                                require(address(arg1 + 0x20).code.length != 0x0, "Address: call to non-contract");
                                                                                uint256 value44 = 0;
                                                                                uint256 value45 = 0;
                                                                                uint256 value46 = var_ba;
                                                                                if (!(!(var_bb))) {
                                                                                    require(!(((value43 + var_bc) + 0x20) - (value43 + 0x20) < 0x20));
                                                                                    require(var_ao != 0x0 == var_ao);
                                                                                } else {
                                                                                    value44 = var_bb;
                                                                                    value45 = value43;
                                                                                    value46 = !(var_bb);
                                                                                }
                                                                                require(value46 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            } else {
                                                                                uint256 value47 = 0;
                                                                                uint256 value48 = 0;
                                                                                uint256 value49 = var_ba;
                                                                                if (!(!(var_bb))) {
                                                                                    require(!(((value43 + var_bc) + 0x20) - (value43 + 0x20) < 0x20));
                                                                                    require(var_ao != 0x0 == var_ao);
                                                                                } else {
                                                                                    value47 = var_bb;
                                                                                    value48 = value43;
                                                                                    value49 = !(var_bb);
                                                                                }
                                                                                require(value49 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            }
                                                                        }
                                                                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + 0x40;
                                                                        (bool success9, bytes memory returnData9) = address(arg1 + 0x20).approve(address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                        uint256 value50 = 0x60;
                                                                        if ((returnData9.length) != 0x0) {
                                                                            if (returnData9.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData9.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value50 = var_a;
                                                                        }
                                                                        if (!success9) {
                                                                            require(!var_ah);
                                                                            revert("SafeERC20: low-level call failed");
                                                                        } else {
                                                                            if (!var_ah) {
                                                                                require(address(arg1 + 0x20).code.length != 0x0, "Address: call to non-contract");
                                                                                uint256 value94 = 0;
                                                                                uint256 value52 = 0;
                                                                                uint256 value53 = var_bd;
                                                                                if (var_ah) {
                                                                                    require(!(((value21 + var_ah) + 0x20) - (value21 + 0x20) < 0x20));
                                                                                    require(var_bd != 0x0 == var_bd);
                                                                                } else {
                                                                                    value51 = (var_ah != 0x0) ? 1 : 0;
                                                                                    value52 = value21;
                                                                                    value53 = !var_ah;
                                                                                }
                                                                                require(value53 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            } else {
                                                                                uint256 value95 = 0;
                                                                                uint256 value55 = 0;
                                                                                uint256 value56 = var_bd;
                                                                                if (var_ah) {
                                                                                    require(!(((value21 + var_ah) + 0x20) - (value21 + 0x20) < 0x20));
                                                                                    require(var_bd != 0x0 == var_bd);
                                                                                } else {
                                                                                    value54 = (var_ah != 0x0) ? 1 : 0;
                                                                                    value55 = value21;
                                                                                    value56 = !var_ah;
                                                                                }
                                                                                require(value56 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            } else {
                                                                require(var_aw <= 0x64, InvalidActionCount());
                                                                uint256 value0 = 0;
                                                                uint256 value1 = 0x01;
                                                                while (true) {
                                                                    tstore_b = 0x01;
                                                                    if (value0 >= var_c) {
                                                                        break;
                                                                    }
                                                                    if ((value1 + 0x16) > var_a.length) {
                                                                        revert DataTooShort();
                                                                        break;
                                                                    }
                                                                    uint256 value57 = (var_e >> 0xf0) & (0x7fff);
                                                                    uint256 value5 = (var_e >> 0xf0) & (0x7fff);
                                                                    if (0 != !(!((var_e >> 0xf0) & (0x4000)))) {
                                                                        require((var_e >> 0xf0) & (0x8000), CustomError_41e8e806());
                                                                        value57 = (var_e >> 0xf0) & (0x3fff);
                                                                        value5 = (var_e >> 0xf0) & (0x3fff);
                                                                    }
                                                                    if (((value1 + value57) + 0x16) > var_a.length) {
                                                                        revert DataTooShort();
                                                                        break;
                                                                    }
                                                                    uint256 value96 = 0;
                                                                    bool flag6 = !(!((var_e >> 0xf0) & (0x4000)));
                                                                    if (!((var_e >> 0xf0) & (0x8000))) {
                                                                        flag5 = !(!((var_e >> 0xf0) & (0x4000)));
                                                                        flag6 = !(!((var_e >> 0xf0) & (0x8000)));
                                                                    }
                                                                    if (!flag6) {
                                                                        if (!(!(!((var_e >> 0xf0) & (0x8000))))) {
                                                                            if (value5 > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value5))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value5))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value5))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if (value5 > 0xffffffffffffffff) _desolexPanic(65);
                                                                            uint256 value4 = 0;
                                                                            while (true) {
                                                                                if (value4 >= ((value5 + 0x1f) >> 0x05)) {
                                                                                    break;
                                                                                }
                                                                                value4 = value4 + 0x01;
                                                                            }
                                                                            (bool success10, bytes memory returnData10) = address(var_i >> 0x60).Unknown_(var_bf); // delegatecall
                                                                            uint256 value58 = 0x60;
                                                                            if ((returnData10.length) != 0x0) {
                                                                                if (returnData10.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData10.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData10.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData10.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value58 = var_a;
                                                                            }
                                                                            if (!success10) {
                                                                                require(var_bg != 0x0, DelegatecallFailed());
                                                                                revert();
                                                                                break;
                                                                            }
                                                                        } else {
                                                                            if (value5 > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value5))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value5))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + value5))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            if (value5 > 0xffffffffffffffff) _desolexPanic(65);
                                                                            uint256 value6 = 0;
                                                                            while (true) {
                                                                                if (value6 >= ((value3 + 0x1f) >> 0x05)) {
                                                                                    break;
                                                                                }
                                                                                value6 = value6 + 0x01;
                                                                            }
                                                                            tstore_c = 0;
                                                                            tstore_a = var_i >> 0x60;
                                                                            (bool success11, bytes memory returnData11) = address(var_i >> 0x60).call(""); // call
                                                                            uint256 value59 = 0x60;
                                                                            if ((returnData11.length) != 0x0) {
                                                                                if (returnData11.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                                if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                                var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData11.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                                value59 = var_a;
                                                                            }
                                                                            tstore_a = 0;
                                                                            tstore_c = tstore_c;
                                                                            if (!success11) {
                                                                                require(var_bh != 0x0, DelegatecallFailed());
                                                                                revert();
                                                                                break;
                                                                            }
                                                                        }
                                                                    } else {
                                                                        if (value5 < 0x20) {
                                                                            revert CustomError_f0777cc7();
                                                                            break;
                                                                        }
                                                                        if ((value5 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value5 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value5 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + (value5 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0)))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        if ((value5 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0) > 0xffffffffffffffff) _desolexPanic(65);
                                                                        uint256 value8 = 0;
                                                                        while (true) {
                                                                            if (value8 >= ((value3 + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) >> 0x05)) {
                                                                                break;
                                                                            }
                                                                            value8 = value8 + 0x01;
                                                                        }
                                                                        tstore_c = 0;
                                                                        tstore_a = var_i >> 0x60;
                                                                        (bool success12, bytes memory returnData12) = address(var_i >> 0x60).cehbdjakgfi{ value: var_l }(var_r, var_v, var_w, var_bi); // call
                                                                        uint256 value60 = 0x60;
                                                                        if ((returnData12.length) != 0x0) {
                                                                            if (returnData12.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData12.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value60 = var_a;
                                                                        }
                                                                        tstore_a = 0;
                                                                        tstore_c = tstore_c;
                                                                        if (!success12) {
                                                                            require(var_bj != 0x0, DelegatecallFailed());
                                                                            revert();
                                                                            break;
                                                                        }
                                                                    }
                                                                    value0 = 0x01 + value0;
                                                                    value1 = (value1 + value57) + 0x16;
                                                                }
                                                                uint256 value61 = 0;
                                                                uint256 value62 = 0;
                                                                uint256 value63 = 0;
                                                                if ((0x1 != 0x0) && (value1 < var_n)) {
                                                                    if (!(value1 < var_a.length)) _desolexPanic(50);
                                                                    require((value1 + (0x01 + (bytes1(0xff00000000000000000000000000000000000000000000000000000000000000 & var_bk >> 0xf8) * 0x58))) == var_a.length, DataTooShort());
                                                                } else {
                                                                    value61 = value1;
                                                                    value62 = var_a;
                                                                    value63 = var_a.length;
                                                                }
                                                                tstore_b = 0;
                                                                (bool success13, bytes memory returnData13) = address(arg1 + 0x20).allowance(address(this), address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb)); // staticcall
                                                                require(success13);
                                                                uint256 value64 = 0;
                                                                uint256 value65;
                                                                if (success13) {
                                                                    uint256 value88 = var_a.length;
                                                                    if (0x20 > returnData13.length) {
                                                                        if (((var_a + ((returnData13.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((returnData13.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((returnData13.length + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(((var_a + returnData13.length) - var_a) >= 0x20);
                                                                    } else {
                                                                        if (((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((0x20 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        require(!(((var_a + 0x20) - var_a) < 0x20));
                                                                        value88 = var_s;
                                                                    }
                                                                    value65 = value88;
                                                                } else {
                                                                    value64 = var_a;
                                                                    value65 = 0;
                                                                }
                                                                if (!(value65 >= arg0)) {
                                                                    if (((var_a + 0x80) > 0xffffffffffffffff) | ((var_a + 0x80) < var_a)) _desolexPanic(65);
                                                                    var_a = var_a + 0x80;
                                                                    (bool success14, bytes memory returnData14) = address(arg1 + 0x20).approve(address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                    uint256 value66 = 0x60;
                                                                    if ((returnData14.length) != 0x0) {
                                                                        if (returnData14.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                        if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData14.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        value66 = var_a;
                                                                    }
                                                                    uint256 value70 = 0;
                                                                    uint256 value71;
                                                                    if (success14) {
                                                                        uint256 value97 = 0;
                                                                        uint256 value68 = 0;
                                                                        uint256 value69 = var_bl;
                                                                        if (var_bm) {
                                                                            require(((value66 + var_bm) + 0x20) - (value66 + 0x20) >= 0x20);
                                                                            require(var_bl != 0x0 == var_bl);
                                                                        } else {
                                                                            value67 = var_bm != 0x0;
                                                                            value68 = value66;
                                                                            value69 = !var_bm;
                                                                        }
                                                                        value71 = value69;
                                                                    } else {
                                                                        value70 = value66;
                                                                        value71 = success14;
                                                                    }
                                                                    if (((value71 != 0x0) && ((address(arg1 + 0x20)).code.length == 0x0)) || ((value71 == 0x0) && (value71 == 0x0))) {
                                                                        if (((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((((var_a + 0x64) - var_a) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        if (((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + ((0x40 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                        (bool success15, bytes memory returnData15) = address(arg1 + 0x20).approve(address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb), 0); // call
                                                                        uint256 value72 = 0x60;
                                                                        if ((returnData15.length) != 0x0) {
                                                                            if (returnData15.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData15.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value72 = var_a;
                                                                        }
                                                                        if (!success15) {
                                                                            require(!var_ah);
                                                                            revert("SafeERC20: low-level call failed");
                                                                        } else {
                                                                            if (!var_ah) {
                                                                                require(address(arg1 + 0x20).code.length != 0x0, "Address: call to non-contract");
                                                                                uint256 value73 = 0;
                                                                                uint256 value74 = 0;
                                                                                uint256 value75 = var_bo;
                                                                                if (!(!(var_bp))) {
                                                                                    require(!(((value72 + var_bq) + 0x20) - (value72 + 0x20) < 0x20));
                                                                                    require(var_ao != 0x0 == var_ao);
                                                                                } else {
                                                                                    value73 = var_bp;
                                                                                    value74 = value72;
                                                                                    value75 = !(var_bp);
                                                                                }
                                                                                require(value75 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            } else {
                                                                                uint256 value76 = 0;
                                                                                uint256 value77 = 0;
                                                                                uint256 value78 = var_bo;
                                                                                if (!(!(var_bp))) {
                                                                                    require(!(((value72 + var_bq) + 0x20) - (value72 + 0x20) < 0x20));
                                                                                    require(var_ao != 0x0 == var_ao);
                                                                                } else {
                                                                                    value76 = var_bp;
                                                                                    value77 = value72;
                                                                                    value78 = !(var_bp);
                                                                                }
                                                                                require(value78 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            }
                                                                        }
                                                                        if (((var_a + 0x40) > 0xffffffffffffffff) | ((var_a + 0x40) < var_a)) _desolexPanic(65);
                                                                        var_a = var_a + 0x40;
                                                                        (bool success16, bytes memory returnData16) = address(arg1 + 0x20).approve(address(0xbbbbbbbbbb9cc5e90e3b3af64bdaf62c37eeffcb), 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff); // call
                                                                        uint256 value79 = 0x60;
                                                                        if ((returnData16.length) != 0x0) {
                                                                            if (returnData16.length > 0xffffffffffffffff) _desolexPanic(65);
                                                                            if (((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a)) _desolexPanic(65);
                                                                            var_a = var_a + (((0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + returnData16.length))) + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
                                                                            value79 = var_a;
                                                                        }
                                                                        if (!success16) {
                                                                            require(!var_ah);
                                                                            revert("SafeERC20: low-level call failed");
                                                                        } else {
                                                                            if (!var_ah) {
                                                                                require(address(arg1 + 0x20).code.length != 0x0, "Address: call to non-contract");
                                                                                uint256 value98 = 0;
                                                                                uint256 value81 = 0;
                                                                                uint256 value82 = var_bd;
                                                                                if (var_ah) {
                                                                                    require(!(((value21 + var_ah) + 0x20) - (value21 + 0x20) < 0x20));
                                                                                    require(var_bd != 0x0 == var_bd);
                                                                                } else {
                                                                                    value80 = var_ah != 0x0;
                                                                                    value81 = value21;
                                                                                    value82 = !var_ah;
                                                                                }
                                                                                require(value82 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            } else {
                                                                                uint256 value99 = 0;
                                                                                uint256 value84 = 0;
                                                                                uint256 value85 = var_bd;
                                                                                if (var_ah) {
                                                                                    require(!(((value21 + var_ah) + 0x20) - (value21 + 0x20) < 0x20));
                                                                                    require(var_bd != 0x0 == var_bd);
                                                                                } else {
                                                                                    value83 = var_ah != 0x0;
                                                                                    value84 = value21;
                                                                                    value85 = !var_ah;
                                                                                }
                                                                                require(value85 != 0x0, "SafeERC20: ERC20 operation did not succeed");
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                            tstore_c = 0;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function Unknown_26d8bfb7() public onlyOwner {
        stor_3_0_0 = false;
        emit Event_c6cf0ccc(0);
    }
    
    function updateWhitelist(address arg0, bool arg1) public onlyOwner {
        whitelist[arg0] = arg1;
        emit WhitelistUpdated(arg0, whitelist[arg0]);
    }
    
    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.
    
    // 0x0d392cd9 => updateWhitelist(address,bool)
    // 0x158274a5 => balancerVault()
    // 0x23a69e75 => Unknown_23a69e75(uint256,uint256,bytes)
    // 0x26d8bfb7 => Unknown_26d8bfb7()
    // 0x2c8958f6 => Unknown_2c8958f6(uint256,uint256,bytes)
    // 0x31f57072 => onMorphoFlashLoan(uint256,bytes)
    // 0x3a77b95e => Unknown_3a77b95e(bytes)
    // 0x3fc8cef3 => weth()
    // 0x728260d0 => Unknown_728260d0(uint256)
    // 0x7466e8ff => Unknown_7466e8ff(bytes)
    // 0x8a57589a => Unknown_8a57589a(bytes)
    // 0x8da5cb5b => owner()
    // 0x8e9b1220 => Unknown_8e9b1220(bytes)
    // 0x8eccac05 => Unknown_8eccac05()
    // 0x91dd7346 => unlockCallback(bytes)
    // 0x923b8a2a => swapCallback(uint256,uint256,bytes)
    // 0x9b19251a => whitelist(address)
    // 0xcb53bc22 => Unknown_cb53bc22()
    // 0xd8fbc833 => morpho()
    // 0xd9dddc1b => unresolved_d9dddc1b()
    // 0xdc4c90d3 => poolManager()
    // 0xdd225095 => Unknown_dd225095(bytes)
    // 0xe63ea408 => emergencyWithdraw(address,address,uint256)
    // 0xfa461e33 => Unknown_fa461e33(uint256,uint256,bytes)
}
0x950fd5…b4a86f on Ethereum — Decompiled Solidity