BNB Chain

0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be

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

Decompilation outputBNB Chain · 0x7fbc1ff9…2edaf1be22.5 KB60.9 s
Share
2,745 lines · Click a variable or keyword to highlight its references · Click a line number to copy its link; Shift-click to copy a block link
//decompiled by exvvul decompiler tool [email protected] https://x.com/exvulsec// Decompilation incomplete: symbolic execution reached a configured deadline for 1 of 58 entry points (170000 ms contract budget): 1794bb3c// SPDX-License-Identifier: MITpragma solidity >=0.8.0;interface IDesolexERC20 {    function balanceOf(address account) external view returns (uint256 balance);}contract DesolexContract {    uint256 public constant ROLE_DEPLOYER = 15401461587264014987088299456492872389203471158215787603820474057381961267334;    uint256 public constant PANCAKE_FACTORY = 1153667454655315432277308296129700421378034175091;    address public constant WBNB = address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c);    uint256 public constant ROLE_OPERATOR = 77004243493949886454833046899514430293631690005442620178459349163872799911335;    uint256 public constant DEFAULT_ADMIN_ROLE = 0;    uint256 public constant PANCAKE_ROUTER = 96635033217071433185869069577301221175488545358;        uint256 stor_0; // STORAGE[0x0]    address public owner; // STORAGE[0x33]    mapping(bytes32 => mapping(address => bool)) public hasRole; // STORAGE[0xfb]    bytes32 stor_12d; // STORAGE[0x12d]    address public signer; // STORAGE[0x15f]    mapping(uint256 => bool) mapping_160; // STORAGE[0x160]    address public _feeRecipient; // STORAGE[0x161]    uint256 public _launchFee; // STORAGE[0x162]    uint256 public _tradeFeeRate; // STORAGE[0x163]    uint256 public _minTradeFee; // STORAGE[0x164]    bool stor_165; // STORAGE[0x165]    uint256 public _tokenCount; // STORAGE[0x166]    mapping(uint256 => address) public _tokens; // STORAGE[0x167]    mapping(bytes32 => bytes32) mapping_168; // STORAGE[0x168] // DESOLEX_RAW_STORAGE: mapping key 0: address [VerifiedAbi] vs bool [VerifiedAbi] (ambiguous)    bytes32 stor_4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143; // STORAGE[0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143]    uint256 stor_expr_ab;    uint256 stor_expr_ac;    bytes32 stor_expr_ae;    bytes32 stor_expr_af;    bytes32 stor_expr_ai;    bytes32 stor_expr_an; // DESOLEX_RAW_STORAGE: whole slot: address [LegacyInference] vs uint256 [LegacyInference] (ambiguous)    uint256 stor_expr_aq;    uint256 stor_expr_ar;    uint256 stor_expr_av;    uint256 stor_expr_ax;    bytes32 stor_expr_az; // DESOLEX_RAW_STORAGE: whole slot: address [LegacyInference] vs uint256 [LegacyInference] (ambiguous)    uint256 stor_expr_ba;    uint256 stor_expr_bb;    uint256 stor_expr_bd;    bytes32 stor_expr_bf;    bytes32 stor_expr_bg;    uint256 stor_expr_bl;    bytes32 stor_expr_bm;    bytes32 stor_expr_bn;    bytes32 stor_expr_bq;    uint256 stor_expr_bt;    uint256 stor_expr_bu;    uint256 stor_expr_bv;    uint256 stor_expr_bw;    uint256 stor_expr_bx;    uint256 stor_expr_by;    uint256 stor_expr_e;    uint256 stor_expr_f;    uint256 stor_expr_k;    uint256 stor_expr_n;    bytes32 roleAdmin;    uint256 stor_expr_y;    uint256 stor_expr_z;        event RoleAdminChanged(bytes32 indexed, bytes32 indexed, bytes32 indexed);    event RoleRevoked(bytes32 indexed, address indexed, address indexed);    event TokenSale2(uint256);    event RoleGranted(bytes32 indexed, address indexed, address indexed);    event Upgraded(address indexed);    event TokenSale(address, address, uint256, uint256, uint256);    event Initialized(uint8);    event OwnershipTransferred(address indexed, address indexed);    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, "Ownable: caller is not the owner");        _;    }    fallback() external {        // Synthetic compatibility routes preserve original selectors for unresolved names.        if ((msg.data.length >= 4) && (msg.sig == 0x0d6ebdee)) {            // Route to Unknown_0d6ebdee(uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0xa5d4f451));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x2b8e6a58)) {            // Route to Unknown_2b8e6a58(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x4ae28351));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0x92e00ada)) {            // Route to Unknown_92e00ada(uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x1ba2369f));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0xa34aa3d2)) {            // Route to Unknown_a34aa3d2(address) after replacing only msg.sig.            __desolexSelectorShim(uint32(0xd6a4288e));            return;        }        if ((msg.data.length >= 4) && (msg.sig == 0xecfc7b02)) {            // Route to Unknown_ecfc7b02(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) after replacing only msg.sig.            __desolexSelectorShim(uint32(0x35e7730f));            return;        }        revert();    }            function purchaseToken(address arg0, uint256 arg1, uint256 arg2) public payable {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_e), "Token has not been launched yet");        require(bytes1(stor_expr_f) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_f / 0x010000)), "Trading is halted");        if (!(var_l)) {            if (var_m != 0x0) {                require(!((var_y - ((0x0de0b6b3a7640000 * var_z) / (var_m + ((0x0de0b6b3a7640000 * var_z) / var_y)))) - ((var_y - ((0x0de0b6b3a7640000 * var_z) / (var_m + ((0x0de0b6b3a7640000 * var_z) / var_y)))) % 0x3b9aca00) < var_aa), "Purchase amount is below the minimum required");            }        } else {            require(!(var_ab % 0x3b9aca00), "GWEI");        }        require(address(var_ac) != 0x0, "ZERO");        require((0xffffffffffffffffffffffffffffffffffffffff & var_i) != (0xffffffffffffffffffffffffffffffffffffffff & 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c), "PancakeLibrary: IDENTICAL_ADDRESSES");        uint256 value0 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        uint256 value1 = var_i;        if (!(address(var_i) < (address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c)))) {            value0 = var_i;            value1 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        }        require((value1 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "PancakeLibrary: ZERO_ADDRESS");        require(address(var_aj) != (address(keccak256(abi.encode(0xff00000000000000000000000000000000000000000000000000000000000000, (keccak256(abi.encode(0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 & (value1 << 0x60), ((value0 << 0x60) & (0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))))), 0xfb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5)))), "PAIR");        if (var_ab > stor_expr_n) {        }        uint256 value2 = (_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l))) / 0x2710;        if (!(((_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l))) / 0x2710) > _minTradeFee)) {            value2 = _minTradeFee;        }        require(!(msg.value < (value2 + ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l)))), "Insufficient BNB sent");    }        function supportsInterface(bytes4 interfaceId) public pure returns (bool) {        require(interfaceId == (interfaceId & 0xffffffff00000000000000000000000000000000000000000000000000000000));        bool flag0 = 0x7965db0b00000000000000000000000000000000000000000000000000000000 == (interfaceId & 0xffffffff00000000000000000000000000000000000000000000000000000000);        if (0x7965db0b00000000000000000000000000000000000000000000000000000000 != (interfaceId & 0xffffffff00000000000000000000000000000000000000000000000000000000)) {            flag0 = (interfaceId & 0xffffffff00000000000000000000000000000000000000000000000000000000) == 0x1ffc9a700000000000000000000000000000000000000000000000000000000;        }        return flag0;    }        function _tradingHalt() public view returns (bool) {        return !(!(bytes1(stor_165)));    }        function Unknown_0d6ebdee(uint256 arg0) public {        internal_c66(arg0);    }        function initialize(address arg0, address arg1, uint256 arg2) public view {        bool flag0 = !(bytes1(stor_0 / 0x0100));        if (!(bytes1(stor_0 / 0x0100))) {            flag0 = (bytes1(stor_0)) < 0x01;        }        bool flag1 = flag0;        if (!(flag0)) {            bool flag2 = address(this).code.length == 0x0;            if (address(this).code.length == 0) {                flag2 = 0x01 == (bytes1(stor_0));            }            flag1 = flag2;        }    }        function withdrawEth(address arg0, uint256 arg1) public onlyOwner {        require(!(address(this).balance < arg1), "Address: insufficient balance");        (bool success0, bytes memory returnData0) = arg0.call{ value: arg1 }(""); // call        uint256 value0 = 0x60;        if (returnData0.length != 0) {            uint256 var_a;            var_a = var_a + ((returnData0.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            value0 = var_a;        }        require(success0, "Address: unable to send value, recipient may have reverted");    }        function setRoleAdmin(bytes32 arg0, bytes32 arg1) public onlyOwner {        emit RoleAdminChanged(arg0, roleAdmin, arg1);        roleAdmin = arg1;    }        function saleToken(uint256 arg0, address arg1, address arg2, uint256 arg3, uint256 arg4, uint256 arg5, address arg6) public {        internal_dd9(arg6, arg5, arg4, arg3, arg2, arg1, arg0);    }        function purchaseTokenAMAP(uint256 arg0, address arg1, address arg2, uint256 arg3, uint256 arg4) public payable {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_e), "Token has not been launched yet");        require(bytes1(stor_expr_f) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_f / 0x010000)), "Trading is halted");        if (!(var_l)) {            if (var_m != 0x0) {                require(!((var_y - ((0x0de0b6b3a7640000 * var_z) / (var_m + ((0x0de0b6b3a7640000 * var_z) / var_y)))) - ((var_y - ((0x0de0b6b3a7640000 * var_z) / (var_m + ((0x0de0b6b3a7640000 * var_z) / var_y)))) % 0x3b9aca00) < var_aa), "Purchase amount is below the minimum required");            }        } else {            require(!(var_ab % 0x3b9aca00), "GWEI");        }        require(address(var_ac) != 0x0, "ZERO");        require((0xffffffffffffffffffffffffffffffffffffffff & var_i) != (0xffffffffffffffffffffffffffffffffffffffff & 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c), "PancakeLibrary: IDENTICAL_ADDRESSES");        uint256 value0 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        uint256 value1 = var_i;        if (!(address(var_i) < (address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c)))) {            value0 = var_i;            value1 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        }        require((value1 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "PancakeLibrary: ZERO_ADDRESS");        require(address(var_aj) != (address(keccak256(abi.encode(0xff00000000000000000000000000000000000000000000000000000000000000, (keccak256(abi.encode(0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 & (value1 << 0x60), ((value0 << 0x60) & (0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))))), 0xfb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5)))), "PAIR");        if (var_ab > stor_expr_n) {        }        uint256 value2 = (_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l))) / 0x2710;        if (!(((_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l))) / 0x2710) > _minTradeFee)) {            value2 = _minTradeFee;        }        require(!(msg.value < (value2 + ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l)))), "Insufficient BNB sent");    }        function getRoleAdmin(bytes32 role) public view returns (uint256) {        return stor_expr_ae;    }        function setTradeFeeRate(uint256 arg0) public {        internal_f0d(arg0);    }        function Unknown_2b8e6a58(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4, uint256 arg5, uint256 arg6, uint256 arg7, uint256 arg8, uint256 arg9) public pure returns (uint256) {        require(!((msg.data.length - 0x04) < 0x0120));        uint256 var_a;        if (((var_a + 0x0120) < var_a) | ((var_a + 0x0120) > 0xffffffffffffffff)) _desolexPanic(65);        var_a = var_a + 0x0120;        require(arg0 == (arg0 != 0x0));        require(arg6 == (arg6 != 0x0));        require(arg7 == (arg7 != 0x0));        require(arg8 == (arg8 != 0x0));        return ((0x0de0b6b3a7640000 * var_k) / var_l) - ((0x0de0b6b3a7640000 * var_k) / (arg9 + var_l));    }        function revokeDeployer(address arg0) public {        var_a = var_a;        if ((hasRole[stor_expr_af][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = __desolex_internal_39d7_34fb_arg0;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (__desolex_internal_17ab_3506_arg0 != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (__desolex_internal_17ab_3506_arg0 != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = __desolex_internal_17ab_3506_arg0;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_aa + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if (bytes1(hasRole[var_a][arg0])) {            hasRole[var_a][arg0] = false;            emit RoleRevoked(var_a, arg0, msg.sender);        }    }        function grantRole(bytes32 role, address account) public {        internal_fb9(account, role);    }        function renounceRole(bytes32 role, address account) public {        require(msg.sender == account, "AccessControl: can only renounce roles for self");        if (bytes1(hasRole[role][account])) {            hasRole[role][account] = false;            emit RoleRevoked(role, account, msg.sender);        }    }        function upgradeTo(address newImplementation) public {        require(address(this) != 0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be, "Function must be called through delegatecall");        require(address(stor_expr_an) == 0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be, "Function must be called through active proxy");        require(msg.sender == owner, "Ownable: caller is not the owner");        uint256 var_c;        var_c = var_c + 0x20;        if (!(bytes1(stor_4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143))) {            (bool success0, bytes memory returnData0) = newImplementation.proxiableUUID(); // staticcall            if (!success0) {                require(success0, "ERC1967Upgrade: new implementation is not UUPS");                var_a = var_a;                require(0 == var_a, "ERC1967Upgrade: unsupported proxiableUUID");                require((0x0fb6 & 0xffffffffffffffffffffffffffffffffffffffff).code.length != 0x0, "ERC1967: new implementation is not a contract");                stor_expr_an = (address(0x0fb6)) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & stor_expr_an);                emit Upgraded(address(0x0fb6));                uint256 value0 = (var_e > 0) ? 1 : 0;                if (var_e <= 0) {                    value0 = var_c;                }                if (!(value0 == 0x0)) {                    var_c = 0x60 + var_c;                    uint256 value1 = 0;                    while (true) {                        if (value1 >= var_g) {                            break;                        }                        value1 = 0x20 + value1;                        (bool success1, bytes memory returnData1) = address(0x0fb6).Unknown_(var_j); // delegatecall                        uint256 value2 = 0x60;                        if (returnData1.length != 0) {                            var_c = var_c + ((returnData1.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            value2 = var_c;                        }                        if (success1 && 0 == var_k) {                            require(0xfb6.code.length != 0x0, "Address: call to non-contract");                        }                        require(!var_k);                        uint256 value1 = 0;                        while (true) {                            if (value1 >= var_c.length) {                                break;                            }                            value1 = 0x20 + value1;                            revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                        }                    }                }            } else {                var_c = var_c + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (returnData0.length + 0x1f));                require((var_c + returnData0.length) - var_c >= 0x20);                require(0x01 != 0x0, "ERC1967Upgrade: new implementation is not UUPS");                var_a = var_a;                require(var_c.length == var_a, "ERC1967Upgrade: unsupported proxiableUUID");                require((0x0fb6 & 0xffffffffffffffffffffffffffffffffffffffff).code.length != 0x0, "ERC1967: new implementation is not a contract");                stor_expr_an = (address(0x0fb6)) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & stor_expr_an);                emit Upgraded(newImplementation);                uint256 value4 = (var_r > 0) ? 1 : 0;                if (var_r <= 0) {                    value4 = 0;                }                if (!(value4 == 0x0)) {                    var_c = 0x60 + var_c;                    uint256 value1 = 0;                    while (true) {                        if (value1 >= var_g) {                            break;                        }                        value1 = 0x20 + value1;                        (bool success2, bytes memory returnData2) = newImplementation.Unknown_(var_u); // delegatecall                        uint256 value5 = 0x60;                        if (returnData2.length != 0) {                            var_c = var_c + ((returnData2.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            value5 = var_c;                        }                        if (!success2) {                            require(!var_v);                            uint256 value1 = 0;                            while (true) {                                if (value1 >= var_c.length) {                                    break;                                }                                value1 = 0x20 + value1;                                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                            }                        } else {                            if (0x0 == var_v) {                                require(newImplementation.code.length != 0x0, "Address: call to non-contract");                            }                        }                    }                }            }        } else {            require(newImplementation.code.length != 0x0, "ERC1967: new implementation is not a contract");            stor_expr_an = newImplementation | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & stor_expr_an);        }    }        function purchaseToken(uint256 arg0, address arg1, address arg2, uint256 arg3, uint256 arg4) public payable {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_aq), "Token has not been launched yet");        require(bytes1(stor_expr_ar) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_ar / 0x010000)), "Trading is halted");        if (!(var_l)) {            if (var_m != 0x0) {            }        } else {            require(!(var_x % 0x3b9aca00), "GWEI");        }        require(address(var_y) != 0x0, "ZERO");        require((0xffffffffffffffffffffffffffffffffffffffff & var_i) != (0xffffffffffffffffffffffffffffffffffffffff & 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c), "PancakeLibrary: IDENTICAL_ADDRESSES");        uint256 value0 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        uint256 value1 = var_i;        if (!(address(var_i) < (address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c)))) {            value0 = var_i;            value1 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        }        require((value1 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "PancakeLibrary: ZERO_ADDRESS");        require(address(var_w) != (address(keccak256(abi.encode(0xff00000000000000000000000000000000000000000000000000000000000000, (keccak256(abi.encode(0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 & (value1 << 0x60), ((value0 << 0x60) & (0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))))), 0xfb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5)))), "PAIR");        if (var_x > stor_expr_ax) {        }    }        function purchaseTokenAMAP(address arg0, uint256 arg1, uint256 arg2) public payable {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_e), "Token has not been launched yet");        require(bytes1(stor_expr_f) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_f / 0x010000)), "Trading is halted");        if (!(var_l)) {            if (var_m != 0x0) {            }        } else {            require(!(var_y % 0x3b9aca00), "GWEI");        }        require(address(var_z) != 0x0, "ZERO");        require((0xffffffffffffffffffffffffffffffffffffffff & var_i) != (0xffffffffffffffffffffffffffffffffffffffff & 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c), "PancakeLibrary: IDENTICAL_ADDRESSES");        uint256 value0 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        uint256 value1 = var_i;        if (!(address(var_i) < (address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c)))) {            value0 = var_i;            value1 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        }        require((value1 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "PancakeLibrary: ZERO_ADDRESS");        require(address(var_ag) != (address(keccak256(abi.encode(0xff00000000000000000000000000000000000000000000000000000000000000, (keccak256(abi.encode(0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 & (value1 << 0x60), ((value0 << 0x60) & (0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))))), 0xfb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5)))), "PAIR");        if (var_y > stor_expr_ax) {        }    }        function createToken(uint256 arg0, string memory arg1, string memory arg2, uint256 arg3, uint256 arg4, uint256 arg5, uint256 arg6, uint256 arg7, bytes memory arg8) public payable {        if (arg1.length > 0xffffffffffffffff) _desolexPanic(65);        uint256 var_a;        if (((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg1.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a) | ((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg1.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) _desolexPanic(65);        var_a = var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg1.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        require(!(((0x04 + arg1) + arg1 + 0x20) > msg.data.length));        if (arg2.length > 0xffffffffffffffff) _desolexPanic(65);        if (((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg2.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a) | ((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg2.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) _desolexPanic(65);        var_a = var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg2.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        require(!(((0x04 + arg2) + arg2 + 0x20) > msg.data.length));        if (arg8.length > 0xffffffffffffffff) _desolexPanic(65);        if (((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg8.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a) | ((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg8.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) _desolexPanic(65);        var_a = var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (arg8.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        require(!(((0x04 + arg8) + arg8 + 0x20) > msg.data.length));        require(!mapping_160[arg0], "RequestTracing: executed request");        mapping_160[arg0] = true;        require((block.timestamp - arg7) < 0x5a, "Signature Expired");    }        function upgradeToAndCall(address newImplementation, bytes memory data) public payable {        if (data.length > 0xffffffffffffffff) _desolexPanic(65);        uint256 var_a;        if (((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (data.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_a) | ((var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (data.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff)) _desolexPanic(65);        var_a = var_a + ((0x3f + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (data.length + 0x1f))) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));        require(!(((0x04 + data) + data + 0x20) > msg.data.length));        require(address(this) != 0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be, "Function must be called through delegatecall");        require(address(stor_expr_az) == 0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be, "Function must be called through active proxy");        require(msg.sender == owner, "Ownable: caller is not the owner");        if (!(bytes1(stor_4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143))) {            (bool success0, bytes memory returnData0) = newImplementation.proxiableUUID(); // staticcall            if (!success0) {                require(success0, "ERC1967Upgrade: new implementation is not UUPS");                var_e = var_e;                require(0x01 == var_e, "ERC1967Upgrade: unsupported proxiableUUID");                require((0x0dbf & 0xffffffffffffffffffffffffffffffffffffffff).code.length != 0x0, "ERC1967: new implementation is not a contract");                stor_expr_az = (address(0x0dbf)) | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & stor_expr_az);                emit Upgraded(address(0x0dbf));                uint256 value0 = (var_f > 0) ? 1 : 0;                if (var_f <= 0) {                    value0 = var_a;                }                if (!(value0 == 0x0)) {                    var_a = 0x60 + var_a;                    uint256 value1 = 0;                    while (true) {                        uint256 value2 = value1;                        if (value1 >= var_h) {                            break;                        }                        if (0x20 + value1 >= var_h) {                            break;                        }                        value1 = 0x20 + (0x20 + value1);                        value2 = 0x20 + value1;                    }                    address(0x0dbf).Unknown_(var_m); // delegatecall                }            } else {                var_a = var_a + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (returnData0.length + 0x1f));                require((var_a + returnData0.length) - var_a >= 0x20);                require(0x01 != 0x0, "ERC1967Upgrade: new implementation is not UUPS");                var_e = var_e;                require(var_o == var_e, "ERC1967Upgrade: unsupported proxiableUUID");                require((newImplementation & 0xffffffffffffffffffffffffffffffffffffffff).code.length != 0x0, "ERC1967: new implementation is not a contract");                stor_expr_az = newImplementation | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & stor_expr_az);                emit Upgraded(newImplementation);                uint256 value4 = (var_p > 0) ? 1 : 0;                if (var_p <= 0) {                    value4 = 0x01;                }                if (!(value4 == 0x0)) {                    var_a = 0x60 + var_a;                    uint256 value1 = 0;                    while (true) {                        if (value1 >= var_h) {                            break;                        }                        value1 = 0x20 + value1;                        (bool success2, bytes memory returnData2) = newImplementation.Unknown_(var_r); // delegatecall                        uint256 value5 = 0x60;                        if (returnData2.length != 0) {                            var_a = var_a + ((returnData2.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                            value5 = var_a;                        }                        if (!success2) {                            require(!var_s);                            uint256 value1 = 0;                            while (true) {                                if (value1 >= var_a.length) {                                    break;                                }                                value1 = 0x20 + value1;                                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                            }                        } else {                            if (0x0 == var_s) {                                require(newImplementation.code.length != 0x0, "Address: call to non-contract");                            }                        }                    }                }            }        } else {            require(newImplementation.code.length != 0x0, "ERC1967: new implementation is not a contract");            stor_expr_az = newImplementation | (0xffffffffffffffffffffffff0000000000000000000000000000000000000000 & stor_expr_az);        }    }        function proxiableUUID() public pure returns (uint256) {        require(address(0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be) == address(this), "UUPSUpgradeable: must not be called through delegatecall");        var_a = var_a;        return var_a;    }        function setLaunchFee(uint256 arg0) public {        internal_14ad(arg0);    }        function setSigner(address newAddress) public {        var_a = var_a;        if ((hasRole[var_a][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (var_a != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (var_a != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = var_a;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        signer = newAddress;    }        function renounceOwnership() public onlyOwner {        emit OwnershipTransferred(owner, address(0));        owner = address(0);    }        function saleToken(uint256 arg0, address arg1, uint256 arg2) public {        require(!((msg.data.length - 0x04) < 0x60));        require(msg.data[0x24] == (address(msg.data[0x24])));        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        uint256 var_a;        var_a = 0xe0 + var_a;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_y), "Token has not been launched yet");        require(bytes1(stor_expr_z) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_z / 0x010000)), "Trading is halted");        require(!(var_l % 0x3b9aca00), "GWEI");        require(!(var_m > 0x01f4), "FR");        var_a = var_a + 0x0120;        uint256 value0 = (_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)))) / 0x2710;        if (!(((_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)))) / 0x2710) > _minTradeFee)) {            value0 = _minTradeFee;        }        require((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) > value0, "Order size is too small");        bool flag0 = !(var_ab);        if (var_ab != 0x0) {            flag0 = !((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) < var_ac);        }        require(flag0, "Price is too low");        require(address(var_af).code.length != 0x0);        (bool success0, bytes memory returnData0) = address(var_af).setMode(0x02); // call        require(success0);        var_a = 0x84 + var_a;        require(!(address(this).balance < __desolex_internal_3cb4_3c3c_arg1), "Address: insufficient balance for call");        uint256 value1 = 0;        while (true) {            uint256 value2 = value1;            if (value1 >= __desolex_internal_43b5_487e_arg2) {                break;            }            if (0x20 + value1 >= __desolex_internal_43b5_487e_arg2) {                break;            }            value1 = 0x20 + (0x20 + value1);            value2 = 0x20 + value1;        }        (bool success1, bytes memory returnData1) = address(__desolex_internal_3cb4_3c3c_arg3).pisnfmc{ value: __desolex_internal_3cb4_3c3c_arg1 }(var_at, var_au, var_av); // call        uint256 value3 = 0x60;        if (returnData1.length != 0) {            var_a = var_a + ((returnData1.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));            value3 = var_a;        }        if (!__desolex_internal_3d93_3d88_arg2) {            require(!var_aw);            uint256 value1 = 0;            while (true) {                if (!(value1 < var_ax)) {                    break;                }                if (!((0x20 + value1) < var_ax)) {                    revert("SafeERC20: low-level call failed");                    break;                }                value1 = 0x20 + (0x20 + value1);            }            revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");        } else {            if (0x0 == var_aw) {                require(__desolex_internal_3d93_3d88_arg3.code.length != 0x0, "Address: call to non-contract");            }            uint256 value4 = (0 == var_ba) ? 1 : 0;            if (0 != var_ba) {                require(__desolex_internal_484d_3a68_arg1 - __desolex_internal_484d_3a68_arg0 >= 0x20);                require(__desolex_internal_405d_1873_arg0 == (__desolex_internal_405d_1873_arg0 != 0x0));                value4 = var_bb;            }            require(value4 != 0x0, "SafeERC20: ERC20 operation did not succeed");            require(address(var_af).code.length != 0x0);            (bool success2, bytes memory returnData2) = address(var_af).setMode(0x01); // call            require(success2);            uint256 value5 = 0;            if (var_bc != 0x0) {                value5 = (var_m * ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)))) / 0x2710;            }            require(!(address(this).balance < (((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) - value0) - value5)), "Address: insufficient balance");            (bool success3, bytes memory returnData3) = address(var_bd).call{ value: (((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) - value0) - value5) }(""); // call            uint256 value6 = 0x60;            if (returnData3.length != 0) {                var_a = var_a + ((returnData3.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value6 = var_a;            }            require(success3, "Address: unable to send value, recipient may have reverted");            require(!(address(this).balance < value0), "Address: insufficient balance");            (bool success4, bytes memory returnData4) = address(_feeRecipient).call{ value: value0 }(""); // call            uint256 value7 = 0x60;            if (returnData4.length != 0) {                var_a = var_a + ((returnData4.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value7 = var_a;            }            require(success4, "Address: unable to send value, recipient may have reverted");            if (value5 != 0x0) {                require(!(address(this).balance < value5), "Address: insufficient balance");                (bool success5, bytes memory returnData5) = address(var_be).call{ value: value5 }(""); // call                uint256 value8 = 0x60;                if (returnData5.length != 0) {                    var_a = var_a + ((returnData5.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    value8 = var_a;                }                require(success5, "Address: unable to send value, recipient may have reverted");            }            stor_expr_ba = var_l + stor_expr_ba;            stor_expr_av = var_w + stor_expr_av;            stor_expr_bb = stor_expr_bb - ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)));            emit TokenSale(address(var_af), address(var_bd), var_w, ((0x0de0b6b3a7640000 * var_z) / var_aa) - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)), value0);            emit TokenSale2(var_bi);            stor_12d = 0x01;        }    }        function suspendTrading(address arg0, bool arg1) public {        internal_1594(arg1, arg0);    }        function purchaseTokenAMAP(uint256 arg0, address arg1, uint256 arg2, uint256 arg3) public payable {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_e), "Token has not been launched yet");        require(bytes1(stor_expr_f) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_f / 0x010000)), "Trading is halted");        if (!(var_l)) {            if (var_m != 0x0) {            }        } else {            require(!(var_y % 0x3b9aca00), "GWEI");        }        require(address(var_z) != 0x0, "ZERO");        require((0xffffffffffffffffffffffffffffffffffffffff & var_i) != (0xffffffffffffffffffffffffffffffffffffffff & 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c), "PancakeLibrary: IDENTICAL_ADDRESSES");        uint256 value0 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        uint256 value1 = var_i;        if (!(address(var_i) < (address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c)))) {            value0 = var_i;            value1 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        }        require((value1 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "PancakeLibrary: ZERO_ADDRESS");        require(address(var_ag) != (address(keccak256(abi.encode(0xff00000000000000000000000000000000000000000000000000000000000000, (keccak256(abi.encode(0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 & (value1 << 0x60), ((value0 << 0x60) & (0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))))), 0xfb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5)))), "PAIR");        if (var_y > stor_expr_ax) {        }    }        function initialize() public {        bool flag0 = !(bytes1(stor_0 / 0x0100));        if (!(bytes1(stor_0 / 0x0100))) {            flag0 = (bytes1(stor_0)) < 0x01;        }        require((flag0 || (address(this).code.length == 0x0 && 0x1 == (0xff & stor_0))), "Initializable: contract is already initialized");        stor_0 = 0x01 | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00 & stor_0);        if (!(bytes1(stor_0 / 0x0100))) {            stor_0 = 0x0100 | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff & stor_0);        }        require(bytes1(stor_0 / 0x0100) != 0x0, "Initializable: contract is not initializing");        require(bytes1(stor_0 / 0x0100) != 0x0, "Initializable: contract is not initializing");        emit OwnershipTransferred(owner, msg.sender);        owner = msg.sender;        require(bytes1(stor_0 / 0x0100) != 0x0, "Initializable: contract is not initializing");        require(bytes1(stor_0 / 0x0100) != 0x0, "Initializable: contract is not initializing");        require(bytes1(stor_0 / 0x0100) != 0x0, "Initializable: contract is not initializing");        require(bytes1(stor_0 / 0x0100) != 0x0, "Initializable: contract is not initializing");        stor_12d = 0x01;        emit RoleAdminChanged(__desolex_internal_1f61_16dd_arg1, stor_expr_bf, __desolex_internal_1f61_16dd_arg0);        stor_expr_bf = __desolex_internal_1f61_16dd_arg0;        emit RoleAdminChanged(__desolex_internal_1f61_1705_arg1, stor_expr_bg, __desolex_internal_1f61_1705_arg0);        stor_expr_bg = __desolex_internal_1f61_1705_arg0;        if (!(bytes1(hasRole[__desolex_internal_2a84_171f_arg1][__desolex_internal_2a84_171f_arg0]))) {            hasRole[__desolex_internal_2a84_171f_arg1][__desolex_internal_2a84_171f_arg0] = true;            emit RoleGranted(__desolex_internal_2ac9_400_arg2, __desolex_internal_2ac9_400_arg1, __desolex_internal_2ac9_400_arg0);            if (!(bytes1(hasRole[__desolex_internal_2a84_1739_arg1][__desolex_internal_2a84_1739_arg0]))) {                hasRole[__desolex_internal_2a84_1739_arg1][__desolex_internal_2a84_1739_arg0] = true;                emit RoleGranted(__desolex_internal_2ac9_400_arg2, __desolex_internal_2ac9_400_arg1, __desolex_internal_2ac9_400_arg0);                if (__desolex_internal_2ac9_400_arg4 != 0x0) {                    stor_0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff) & stor_0;                    emit Initialized(0x01);                }            }            if (__desolex_internal_2ac9_400_arg4 != 0x0) {                stor_0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff) & stor_0;                emit Initialized(0x01);            }        }        if (!(bytes1(hasRole[__desolex_internal_2a84_1739_arg1][__desolex_internal_2a84_1739_arg0]))) {            hasRole[__desolex_internal_2a84_1739_arg1][__desolex_internal_2a84_1739_arg0] = true;            emit RoleGranted(__desolex_internal_2ac9_400_arg2, __desolex_internal_2ac9_400_arg1, __desolex_internal_2ac9_400_arg0);            if (__desolex_internal_1739_400_arg0 != 0x0) {                stor_0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff) & stor_0;                emit Initialized(0x01);            }        }        if (!(bytes1(stor_0 / 0x0100))) {            stor_0 = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff) & stor_0;            emit Initialized(0x01);        }    }        function Unknown_92e00ada(uint256 arg0) public pure returns (bytes memory) {        var_a = var_a;        if (arg0 != var_a) {            var_a = var_a;            uint256 var_c;            if (arg0 != var_a) {                if (!(0x42 <= 0xffffffffffffffff)) _desolexPanic(65);                var_c = var_c + 0x80;                uint256 value0 = 0x42;                if (0x42 != 0) {                    value0 = 0x42 + (var_c + 0x20);                }                if (!(0 < var_c.length)) _desolexPanic(50);                if (!(0x01 < var_c.length)) _desolexPanic(50);                uint256 value1 = 0x41;                uint256 value2 = arg0;                while (true) {                    if (value1 <= 0x1) {                        break;                    }                    if (!((0xf & value2) < 0x10)) _desolexPanic(50);                    if (!(value1 < var_c.length)) _desolexPanic(50);                    value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                    value2 = value2 >> 0x04;                }                require(value2 == 0x0, "Strings: hex length insufficient");                uint256 value3 = 0;                while (true) {                    if (value3 >= var_c.length) {                        break;                    }                    value3 = 0x20 + value3;                    return abi.encodePacked(0x20, var_c.length, var_k);                }            } else {                var_c = 0x40 + var_c;                uint256 value3 = 0;                while (true) {                    if (value3 >= var_c.length) {                        break;                    }                    value3 = 0x20 + value3;                    return abi.encodePacked(0x20, var_c.length, var_k);                }            }        } else {            var_c = 0x40 + var_c;            uint256 value3 = 0;            while (true) {                if (value3 >= var_c.length) {                    break;                }                value3 = 0x20 + value3;                return abi.encodePacked(0x20, var_c.length, var_k);            }        }    }        function calcTradeFee(uint256 arg0) public view returns (uint256) {        uint256 value0 = (_tradeFeeRate * arg0) / 0x2710;        if (((_tradeFeeRate * arg0) / 0x2710) <= _minTradeFee) {            value0 = _minTradeFee;        }        return value0;    }        function saleToken(address arg0, uint256 arg1) public {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        uint256 var_a;        var_a = 0xe0 + var_a;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_y), "Token has not been launched yet");        require(bytes1(stor_expr_z) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_z / 0x010000)), "Trading is halted");        require(!(var_l % 0x3b9aca00), "GWEI");        require(!(var_m > 0x01f4), "FR");        var_a = var_a + 0x0120;        uint256 value0 = (_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)))) / 0x2710;        if (!(((_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)))) / 0x2710) > _minTradeFee)) {            value0 = _minTradeFee;        }        require((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) > value0, "Order size is too small");        bool flag0 = !(var_ab);        if (var_ab != 0x0) {            flag0 = !((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) < var_ac);        }        require(flag0, "Price is too low");        require(address(var_af).code.length != 0x0);        (bool success0, bytes memory returnData0) = address(var_af).setMode(0x02); // call        require(success0);        var_a = 0x84 + var_a;        require(!(address(this).balance < __desolex_internal_3cb4_3c3c_arg1), "Address: insufficient balance for call");        uint256 value1 = 0;        while (true) {            if (value1 >= __desolex_internal_43b5_487e_arg2) {                break;            }            value1 = 0x20 + value1;            (bool success1, bytes memory returnData1) = address(__desolex_internal_3cb4_3c3c_arg3).pisnfmc{ value: __desolex_internal_3cb4_3c3c_arg1 }(var_aq, var_ar, var_as); // call            uint256 value2 = 0x60;            if (returnData1.length != 0) {                var_a = var_a + ((returnData1.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value2 = var_a;            }            if (!__desolex_internal_3d93_3d88_arg2) {                require(!var_at);                uint256 value1 = 0;                while (true) {                    if (!(value1 < var_au)) {                        break;                    }                    value1 = 0x20 + value1;                }                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            } else {                if (0x0 == var_at) {                    require(__desolex_internal_3d93_3d88_arg3.code.length != 0x0, "Address: call to non-contract");                }                uint256 value3 = (0 == var_ax) ? 1 : 0;                if (0 != var_ax) {                    require(__desolex_internal_484d_3a68_arg1 - __desolex_internal_484d_3a68_arg0 >= 0x20);                    require(__desolex_internal_405d_1873_arg0 == (__desolex_internal_405d_1873_arg0 != 0x0));                    value3 = var_ay;                }                require(value3 != 0x0, "SafeERC20: ERC20 operation did not succeed");                require(address(var_af).code.length != 0x0);                (bool success2, bytes memory returnData2) = address(var_af).setMode(0x01); // call                require(success2);                uint256 value4 = 0;                if (var_az != 0x0) {                    value4 = (var_m * ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)))) / 0x2710;                }                require(!(address(this).balance < (((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) - value0) - value4)), "Address: insufficient balance");                (bool success3, bytes memory returnData3) = address(var_ba).call{ value: (((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)) - value0) - value4) }(""); // call                uint256 value5 = 0x60;                if (returnData3.length != 0) {                    var_a = var_a + ((returnData3.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    value5 = var_a;                }                require(success3, "Address: unable to send value, recipient may have reverted");                require(!(address(this).balance < value0), "Address: insufficient balance");                (bool success4, bytes memory returnData4) = address(_feeRecipient).call{ value: value0 }(""); // call                uint256 value6 = 0x60;                if (returnData4.length != 0) {                    var_a = var_a + ((returnData4.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    value6 = var_a;                }                require(success4, "Address: unable to send value, recipient may have reverted");                if (value4 != 0x0) {                    require(!(address(this).balance < value4), "Address: insufficient balance");                    (bool success5, bytes memory returnData5) = address(var_bb).call{ value: value4 }(""); // call                    uint256 value7 = 0x60;                    if (returnData5.length != 0) {                        var_a = var_a + ((returnData5.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                        value7 = var_a;                    }                    require(success5, "Address: unable to send value, recipient may have reverted");                }                stor_expr_ba = var_l + stor_expr_ba;                stor_expr_av = var_w + stor_expr_av;                stor_expr_bb = stor_expr_bb - ((0x0de0b6b3a7640000 * var_z) / var_aa - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)));                emit TokenSale(address(var_af), address(var_ba), var_w, ((0x0de0b6b3a7640000 * var_z) / var_aa) - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_aa)), value0);                emit TokenSale2(var_bg);                stor_12d = 0x01;            }        }    }        function Unknown_a34aa3d2(address token) public {        var_a = var_a;        if ((hasRole[var_a][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (var_a != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (var_a != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = var_a;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        require(bytes1(mapping_168[token]) != 0x0, "T");        require(!(bytes1(stor_expr_bl / 0x0100)), "L");        require(token.code.length != 0x0);        (bool success0, bytes memory returnData0) = token.setMode(0); // call        require(success0);        stor_expr_bl = (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00) & stor_expr_bl;        uint256 accountBalance = IDesolexERC20(token).balanceOf(address(this));        require(address(0xaecac6359bdf87c9ea73a1d3aaf0ed11add19b92).code.length != 0x0);        (bool success2, bytes memory returnData2) = address(0xaecac6359bdf87c9ea73a1d3aaf0ed11add19b92).addLiquidity(token, 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c, accountBalance, stor_expr_bm); // delegatecall        require(success2);        stor_expr_bl = 0x0100 | (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff & stor_expr_bl);    }        function saleToken(uint256 arg0, address arg1, uint256 arg2, uint256 arg3, uint256 arg4, address arg5) public {        internal_1ae5(arg5, arg4, arg3, arg2, arg1, arg0);    }        function revokeRole(bytes32 role, address account) public {        internal_1b62(account, role);    }        function grantDeployer(address arg0) public {        var_a = var_a;        if ((hasRole[stor_expr_bq][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = __desolex_internal_39d7_34fb_arg0;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (__desolex_internal_17ab_3506_arg0 != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (__desolex_internal_17ab_3506_arg0 != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = __desolex_internal_17ab_3506_arg0;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_aa + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if (!(bytes1(hasRole[var_a][arg0]) != 0x0)) {            hasRole[var_a][arg0] = true;            emit RoleGranted(var_a, arg0, msg.sender);        }    }        function grantOperator(address arg0) public {        var_a = var_a;        if ((hasRole[stor_expr_bq][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = __desolex_internal_39d7_34fb_arg0;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (__desolex_internal_17ab_3506_arg0 != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (__desolex_internal_17ab_3506_arg0 != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = __desolex_internal_17ab_3506_arg0;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_aa + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if (!(bytes1(hasRole[var_a][arg0]) != 0x0)) {            hasRole[var_a][arg0] = true;            emit RoleGranted(var_a, arg0, msg.sender);        }    }        function _tokenInfos(address account) public view returns (bool) {        return abi.encodePacked(!(!(bytes1(mapping_168[account]))), stor_expr_bt, stor_expr_bu, stor_expr_bv, stor_expr_bw, stor_expr_bx, !(!(bytes1(stor_expr_by))), !(!(bytes1(stor_expr_by / 0x0100))), !(!(bytes1(stor_expr_by / 0x010000))));    }        function setFeeRecipient(address newAddress) public onlyOwner {        require(newAddress != address(0));        _feeRecipient = newAddress;    }        function Unknown_ecfc7b02(uint256 arg0, uint256 arg1, uint256 arg2, uint256 arg3, uint256 arg4, uint256 arg5, uint256 arg6, uint256 arg7, uint256 arg8, uint256 arg9) public pure returns (uint256) {        require(!((msg.data.length - 0x04) < 0x0120));        uint256 var_a;        if (((var_a + 0x0120) < var_a) | ((var_a + 0x0120) > 0xffffffffffffffff)) _desolexPanic(65);        var_a = var_a + 0x0120;        require(arg0 == (arg0 != 0x0));        require(arg6 == (arg6 != 0x0));        require(arg7 == (arg7 != 0x0));        require(arg8 == (arg8 != 0x0));        return ((0x0de0b6b3a7640000 * var_k) / (var_l - arg9)) - ((0x0de0b6b3a7640000 * var_k) / var_l);    }        function transferOwnership(address newOwner) public onlyOwner {        require(newOwner != address(0), "Ownable: new owner is the zero address");        emit OwnershipTransferred(owner, newOwner);        owner = newOwner;    }        function lastPrice(address account) public view returns (uint256) {        return (0x0de0b6b3a7640000 * ((0x0de0b6b3a7640000 * stor_expr_bu) / var_m)) / var_m;    }        function revokeOperator(address arg0) public {        var_a = var_a;        if ((hasRole[stor_expr_af][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = __desolex_internal_39d7_34fb_arg0;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (__desolex_internal_17ab_3506_arg0 != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (__desolex_internal_17ab_3506_arg0 != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = __desolex_internal_17ab_3506_arg0;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_480e_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_4841_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_aa + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                if (0x20 + value9 >= __desolex_internal_43b5_43f2_arg2) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if (bytes1(hasRole[var_a][arg0])) {            hasRole[var_a][arg0] = false;            emit RoleRevoked(var_a, arg0, msg.sender);        }    }        function purchaseToken(uint256 arg0, address arg1, uint256 arg2, uint256 arg3) public payable {        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_e), "Token has not been launched yet");        require(bytes1(stor_expr_f) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_f / 0x010000)), "Trading is halted");        if (!(var_l)) {            if (var_m != 0x0) {                require(!((var_y - ((0x0de0b6b3a7640000 * var_z) / (var_m + ((0x0de0b6b3a7640000 * var_z) / var_y)))) - ((var_y - ((0x0de0b6b3a7640000 * var_z) / (var_m + ((0x0de0b6b3a7640000 * var_z) / var_y)))) % 0x3b9aca00) < var_aa), "Purchase amount is below the minimum required");            }        } else {            require(!(var_ab % 0x3b9aca00), "GWEI");        }        require(address(var_ac) != 0x0, "ZERO");        require((0xffffffffffffffffffffffffffffffffffffffff & var_i) != (0xffffffffffffffffffffffffffffffffffffffff & 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c), "PancakeLibrary: IDENTICAL_ADDRESSES");        uint256 value0 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        uint256 value1 = var_i;        if (!(address(var_i) < (address(0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c)))) {            value0 = var_i;            value1 = 0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c;        }        require((value1 & 0xffffffffffffffffffffffffffffffffffffffff) != 0x0, "PancakeLibrary: ZERO_ADDRESS");        require(address(var_aj) != (address(keccak256(abi.encode(0xff00000000000000000000000000000000000000000000000000000000000000, (keccak256(abi.encode(0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000 & (value1 << 0x60), ((value0 << 0x60) & (0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000))))), 0xfb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5)))), "PAIR");        if (var_ab > stor_expr_n) {        }        uint256 value2 = (_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l))) / 0x2710;        if (!(((_tradeFeeRate * ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l))) / 0x2710) > _minTradeFee)) {            value2 = _minTradeFee;        }        require(!(msg.value < (value2 + ((0x0de0b6b3a7640000 * var_z) / (var_l - var_l) - ((0x0de0b6b3a7640000 * var_z) / var_l)))), "Insufficient BNB sent");    }        function internal_c66(uint256 arg0) private {        // Decompilation incomplete: helper effect provenance is conservative.        var_a = var_a;        if ((hasRole[var_a][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (var_a != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (var_a != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = var_a;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= var_p) {                    break;                }                if (0x20 + value9 >= var_p) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= var_v) {                    break;                }                if (0x20 + value9 >= var_v) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        _minTradeFee = arg0;    }        function internal_dd9(address arg0, uint256 arg1, uint256 arg2, address arg3, address arg4, address arg5, uint256 arg6) private {        // Decompilation incomplete: helper effect provenance is conservative.        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        require(arg4 == tx.origin, "Not holder");        uint256 var_a;        var_a = 0xe0 + var_a;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_y), "Token has not been launched yet");        require(bytes1(stor_expr_z) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_z / 0x010000)), "Trading is halted");        require(!((var_l % 0x3b9aca00)), "GWEI");        require(!(var_m > 0x01f4), "FR");        var_a = var_a + 0x0120;        uint256 value0 = (_tradeFeeRate * (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))))) / 0x2710;        if (!(((_tradeFeeRate * (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))))) / 0x2710) > _minTradeFee)) {            value0 = _minTradeFee;        }        require(((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) > value0, "Order size is too small");        bool flag0 = !(var_aa);        if (var_aa != 0x0) {            flag0 = !(((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) < var_ab);        }        require(flag0, "Price is too low");        require(address(var_ae).code.length != 0x0);        (bool success0, bytes memory returnData0) = address(var_ae).setMode(0x02); // call        require(success0);        var_a = 0x84 + var_a;        var_a = 0x40 + var_a;        require(!(address(this).balance < __desolex_internal_3cb4_3c3c_arg1), "Address: insufficient balance for call");        uint256 value1 = 0;        while (true) {            if (value1 >= __desolex_internal_43b5_487e_arg2) {                break;            }            value1 = 0x20 + value1;            (bool success1, bytes memory returnData1) = address(__desolex_internal_3cb4_3c3c_arg3).pisnfmc{ value: __desolex_internal_3cb4_3c3c_arg1 }(var_ao, var_ap, var_aq); // call            uint256 value2 = 0x60;            if (returnData1.length != 0) {                var_a = var_a + ((returnData1.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value2 = var_a;            }            if (!__desolex_internal_3d93_3d88_arg2) {                require(!var_ar);                uint256 value1 = 0;                while (true) {                    if (value1 >= __desolex_internal_43b5_43f2_arg2) {                        break;                    }                    value1 = 0x20 + value1;                    revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                }            } else {                if (0x0 == var_ar) {                    require(__desolex_internal_3d93_3d88_arg3.code.length != 0x0, "Address: call to non-contract");                }            }            uint256 value3 = (0 == var_av) ? 1 : 0;            if (0 != var_av) {                require(((0x20 + value2) + var_av) - (0x20 + value2) >= 0x20);                require(__desolex_internal_405d_1873_arg0 == (__desolex_internal_405d_1873_arg0 != 0x0));                value3 = var_ax;            }            require(value3 != 0x0, "SafeERC20: ERC20 operation did not succeed");            require(address(var_ae).code.length != 0x0);            (bool success2, bytes memory returnData2) = address(var_ae).setMode(0x01); // call            require(success2);            uint256 value4 = 0;            if (var_ay != 0x0) {                value4 = ((var_az * (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))))) / 0x2710);            }            require(!(address(this).balance < (((((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) - value0) - value4))), "Address: insufficient balance");            (bool success3, bytes memory returnData3) = address(var_ba).call{ value: (((((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) - value0) - value4)) }(""); // call            uint256 value5 = 0x60;            if (returnData3.length != 0) {                var_a = var_a + ((returnData3.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value5 = var_a;            }            require(success3, "Address: unable to send value, recipient may have reverted");            require(!(address(this).balance < value0), "Address: insufficient balance");            (bool success4, bytes memory returnData4) = address(_feeRecipient).call{ value: (value0) }(""); // call            uint256 value6 = 0x60;            if (returnData4.length != 0) {                var_a = var_a + ((returnData4.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value6 = var_a;            }            require(success4, "Address: unable to send value, recipient may have reverted");            if (value4 != 0x0) {                require(!(address(this).balance < value4), "Address: insufficient balance");                (bool success5, bytes memory returnData5) = address(var_bb).call{ value: value4 }(""); // call                uint256 value7 = 0x60;                if (returnData5.length != 0) {                    var_a = var_a + ((returnData5.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    value7 = var_a;                }                require(success5, "Address: unable to send value, recipient may have reverted");            }            stor_expr_ab = (var_l + stor_expr_ab);            stor_expr_k = (var_w + stor_expr_k);            stor_expr_ac = (stor_expr_ac - (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w)))));            emit TokenSale(address(var_ae), address(var_bd), var_w, ((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))), value0);            emit TokenSale2(var_a.length);            stor_12d = 0x01;        }    }        function internal_f0d(uint256 arg0) private {        // Decompilation incomplete: helper effect provenance is conservative.        var_a = var_a;        if ((hasRole[var_a][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (var_a != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (var_a != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = var_a;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= var_p) {                    break;                }                if (0x20 + value9 >= var_p) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= var_v) {                    break;                }                if (0x20 + value9 >= var_v) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        require(arg0 <= 0x2710);        _tradeFeeRate = arg0;    }        function internal_fb9(address arg0, bytes32 arg1) private {        // Decompilation incomplete: helper effect provenance is conservative.        if ((hasRole[stor_expr_ai][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (stor_expr_ai != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (stor_expr_ai != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = stor_expr_ai;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= var_p) {                    break;                }                if (0x20 + value9 >= var_p) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= var_v) {                    break;                }                if (0x20 + value9 >= var_v) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if (!((bytes1(hasRole[arg1][arg0])) != 0x0)) {            hasRole[arg1][arg0] = true;            emit RoleGranted(arg1, arg0, msg.sender);        }    }        function internal_14ad(uint256 arg0) private {        // Decompilation incomplete: helper effect provenance is conservative.        var_a = var_a;        if ((hasRole[var_a][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (var_a != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (var_a != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = var_a;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= var_p) {                    break;                }                if (0x20 + value9 >= var_p) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= var_v) {                    break;                }                if (0x20 + value9 >= var_v) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        _launchFee = arg0;    }        function internal_1594(uint256 arg0, address arg1) private {        // Decompilation incomplete: helper effect provenance is conservative.        var_a = var_a;        if ((hasRole[var_a][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (var_a != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (var_a != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = var_a;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= var_p) {                    break;                }                if (0x20 + value9 >= var_p) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= var_v) {                    break;                }                if (0x20 + value9 >= var_v) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if (arg1 != address(0)) {            require(bytes1(mapping_168[arg1]) != 0x0);            stor_expr_bd = (stor_expr_bd & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff)) | (0x010000 * arg0);        } else {            stor_165 = (stor_165 & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)) | arg0;        }    }        function internal_1ae5(address arg0, uint256 arg1, uint256 arg2, address arg3, address arg4, uint256 arg5) private {        // Decompilation incomplete: helper effect provenance is conservative.        require(stor_12d != 0x2, "ReentrancyGuard: reentrant call");        stor_12d = 0x02;        uint256 var_a;        var_a = 0xe0 + var_a;        require(!(bytes1(stor_165)), "Trading is halted");        require(bytes1(mapping_168[address(var_i)]) != 0x0, "Invalid token address");        require(!(block.timestamp < stor_expr_y), "Token has not been launched yet");        require(bytes1(stor_expr_z) != 0x0, "Trading is disabled");        require(!(bytes1(stor_expr_z / 0x010000)), "Trading is halted");        require(!((var_l % 0x3b9aca00)), "GWEI");        require(!(var_m > 0x01f4), "FR");        var_a = var_a + 0x0120;        uint256 value0 = (_tradeFeeRate * (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))))) / 0x2710;        if (!(((_tradeFeeRate * (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))))) / 0x2710) > _minTradeFee)) {            value0 = _minTradeFee;        }        require(((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) > value0, "Order size is too small");        bool flag0 = !(var_aa);        if (var_aa != 0x0) {            flag0 = !(((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) < var_ab);        }        require(flag0, "Price is too low");        require(address(var_ae).code.length != 0x0);        (bool success0, bytes memory returnData0) = address(var_ae).setMode(0x02); // call        require(success0);        var_a = 0x84 + var_a;        var_a = 0x40 + var_a;        require(!(address(this).balance < __desolex_internal_3cb4_3c3c_arg1), "Address: insufficient balance for call");        uint256 value1 = 0;        while (true) {            if (value1 >= __desolex_internal_43b5_487e_arg2) {                break;            }            value1 = 0x20 + value1;            (bool success1, bytes memory returnData1) = address(__desolex_internal_3cb4_3c3c_arg3).pisnfmc{ value: __desolex_internal_3cb4_3c3c_arg1 }(var_ao, var_ap, var_aq); // call            uint256 value2 = 0x60;            if (returnData1.length != 0) {                var_a = var_a + ((returnData1.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value2 = var_a;            }            if (!__desolex_internal_3d93_3d88_arg2) {                require(!var_ar);                uint256 value1 = 0;                while (true) {                    if (value1 >= __desolex_internal_43b5_43f2_arg2) {                        break;                    }                    value1 = 0x20 + value1;                    revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");                }            } else {                if (0x0 == var_ar) {                    require(__desolex_internal_3d93_3d88_arg3.code.length != 0x0, "Address: call to non-contract");                }            }            uint256 value3 = (0 == var_av) ? 1 : 0;            if (0 != var_av) {                require(((0x20 + value2) + var_av) - (0x20 + value2) >= 0x20);                require(__desolex_internal_405d_1873_arg0 == (__desolex_internal_405d_1873_arg0 != 0x0));                value3 = var_ax;            }            require(value3 != 0x0, "SafeERC20: ERC20 operation did not succeed");            require(address(var_ae).code.length != 0x0);            (bool success2, bytes memory returnData2) = address(var_ae).setMode(0x01); // call            require(success2);            uint256 value4 = 0;            if (var_ay != 0x0) {                value4 = ((var_az * (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))))) / 0x2710);            }            require(!(address(this).balance < (((((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) - value0) - value4))), "Address: insufficient balance");            (bool success3, bytes memory returnData3) = address(var_ba).call{ value: (((((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))) - value0) - value4)) }(""); // call            uint256 value5 = 0x60;            if (returnData3.length != 0) {                var_a = var_a + ((returnData3.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value5 = var_a;            }            require(success3, "Address: unable to send value, recipient may have reverted");            require(!(address(this).balance < value0), "Address: insufficient balance");            (bool success4, bytes memory returnData4) = address(_feeRecipient).call{ value: (value0) }(""); // call            uint256 value6 = 0x60;            if (returnData4.length != 0) {                var_a = var_a + ((returnData4.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                value6 = var_a;            }            require(success4, "Address: unable to send value, recipient may have reverted");            if (value4 != 0x0) {                require(!(address(this).balance < value4), "Address: insufficient balance");                (bool success5, bytes memory returnData5) = address(var_bb).call{ value: value4 }(""); // call                uint256 value7 = 0x60;                if (returnData5.length != 0) {                    var_a = var_a + ((returnData5.length + 0x3f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));                    value7 = var_a;                }                require(success5, "Address: unable to send value, recipient may have reverted");            }            stor_expr_ab = (var_l + stor_expr_ab);            stor_expr_k = (var_w + stor_expr_k);            stor_expr_ac = (stor_expr_ac - (((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w)))));            emit TokenSale(address(var_ae), address(var_bd), var_w, ((0x0de0b6b3a7640000 * var_z) / var_w - ((0x0de0b6b3a7640000 * var_z) / (var_w + var_w))), value0);            emit TokenSale2(var_a.length);            stor_12d = 0x01;        }    }        function internal_1b62(address arg0, bytes32 arg1) private {        // Decompilation incomplete: helper effect provenance is conservative.        if ((hasRole[stor_expr_bn][msg.sender] == 0x0) && (owner != msg.sender)) {            if (!(0x14 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);            uint256 var_d;            var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x14 * 0x02) + 0x02))));            uint256 value0 = (0x14 * 0x02) + 0x02;            if (0x14 * 0x2 + 0x2 != 0x0) {                value0 = ((0x14 * 0x02) + 0x02) + (var_d + 0x20);            }            if (!(0 < var_d.length)) _desolexPanic(50);            if (!(0x01 < var_d.length)) _desolexPanic(50);            uint256 value1 = (0x14 * 0x02) + 0x01;            uint256 value2 = msg.sender;            uint256 value4;            while (true) {                uint256 value3 = value1;                value4 = value2;                if (value1 <= 0x1) {                    break;                }                if (!((0xf & value2) < 0x10)) _desolexPanic(50);                if (!(value1 < var_d.length)) _desolexPanic(50);                if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                    break;                }                if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                value2 = (value2 >> 0x04) >> 0x04;                value3 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                value4 = value2 >> 0x04;            }            require(value4 == 0x0, "Strings: hex length insufficient");            var_a = var_a;            uint256 value8;            if (stor_expr_bn != var_a) {                var_a = var_a;                uint256 value12 = var_d;                if (stor_expr_bn != var_a) {                    if (!(0x20 * 0x2 + 0x2 <= 0xffffffffffffffff)) _desolexPanic(65);                    var_d = var_d + (0x20 + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0 & (0x1f + ((0x20 * 0x02) + 0x02))));                    uint256 value5 = (0x20 * 0x02) + 0x02;                    if (0x20 * 0x2 + 0x2 != 0x0) {                        value5 = ((0x20 * 0x02) + 0x02) + (var_d + 0x20);                    }                    if (!(0 < var_d.length)) _desolexPanic(50);                    if (!(0x01 < var_d.length)) _desolexPanic(50);                    uint256 value1 = (0x20 * 0x02) + 0x01;                    uint256 value2 = stor_expr_bn;                    uint256 value7;                    while (true) {                        uint256 value6 = value1;                        value7 = value2;                        if (value1 <= 0x1) {                            break;                        }                        if (!((0xf & value2) < 0x10)) _desolexPanic(50);                        if (!(value1 < var_d.length)) _desolexPanic(50);                        if (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1 <= 0x1) {                            break;                        }                        if (!(0x0f & (value2 >> 0x04) < 0x10)) _desolexPanic(50);                        if (!((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1) < var_d.length)) _desolexPanic(50);                        value1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1);                        value2 = (value2 >> 0x04) >> 0x04;                        value6 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + value1;                        value7 = value2 >> 0x04;                    }                    require(value7 == 0x0, "Strings: hex length insufficient");                } else {                    var_d = 0x40 + var_d;                    value12 = var_d;                }                value8 = value12;            } else {                var_d = 0x40 + var_d;                value8 = var_d;            }            uint256 value9 = 0;            while (true) {                uint256 value10 = value9;                if (value9 >= var_p) {                    break;                }                if (0x20 + value9 >= var_p) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value10 = 0x20 + value9;            }            value9 = 0;            while (true) {                uint256 value11 = value9;                if (value9 >= var_v) {                    break;                }                if (0x20 + value9 >= var_v) {                    break;                }                value9 = 0x20 + (0x20 + value9);                value11 = 0x20 + value9;            }            var_d = 0x2d + (var_ac + ((0x20 + var_d) + var_d.length));            value9 = 0;            while (true) {                if (value9 >= var_d.length) {                    break;                }                if (0x20 + value9 >= var_d.length) {                    break;                }                value9 = 0x20 + (0x20 + value9);                revert("\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");            }        }        if ((bytes1(hasRole[arg1][arg0]))) {            hasRole[arg1][arg0] = false;            emit RoleRevoked(arg1, arg0, msg.sender);        }    }        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.        // 0x009523a2 => _launchFee()    // 0x01966256 => purchaseToken(address,uint256,uint256)    // 0x01ffc9a7 => supportsInterface(bytes4)    // 0x088c5d0b => _tradingHalt()    // 0x0d6ebdee => Unknown_0d6ebdee(uint256)    // 0x1794bb3c => initialize(address,address,uint256)    // 0x1b9a91a4 => withdrawEth(address,uint256)    // 0x1e4e0091 => setRoleAdmin(bytes32,bytes32)    // 0x1eef9d2c => _tokenCount()    // 0x217d5eca => _minTradeFee()    // 0x2237b0e8 => saleToken(uint256,address,address,uint256,uint256,uint256,address)    // 0x230bf0ac => purchaseTokenAMAP(uint256,address,address,uint256,uint256)    // 0x238ac933 => signer()    // 0x248a9ca3 => getRoleAdmin(bytes32)    // 0x2730d1f9 => setTradeFeeRate(uint256)    // 0x2b8e6a58 => Unknown_2b8e6a58(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)    // 0x2e4934dd => revokeDeployer(address)    // 0x2ee7cbad => ROLE_DEPLOYER()    // 0x2f2ff15d => grantRole(bytes32,address)    // 0x36568abe => renounceRole(bytes32,address)    // 0x3659cfe6 => upgradeTo(address)    // 0x3da68762 => purchaseToken(uint256,address,address,uint256,uint256)    // 0x3deec419 => purchaseTokenAMAP(address,uint256,uint256)    // 0x470d871e => createToken(uint256,string,string,uint256,uint256,uint256,uint256,uint256,bytes)    // 0x4f1ef286 => upgradeToAndCall(address,bytes)    // 0x52d1902d => proxiableUUID()    // 0x5313be2c => setLaunchFee(uint256)    // 0x6c19e783 => setSigner(address)    // 0x715018a6 => renounceOwnership()    // 0x7ad3e026 => saleToken(uint256,address,uint256)    // 0x7ad4c7ab => suspendTrading(address,bool)    // 0x7f0d7ce8 => purchaseTokenAMAP(uint256,address,uint256,uint256)    // 0x8129fc1c => initialize()    // 0x8b985795 => PANCAKE_FACTORY()    // 0x8da5cb5b => owner()    // 0x8dd95002 => WBNB()    // 0x91d14854 => hasRole(bytes32,address)    // 0x92e00ada => Unknown_92e00ada(uint256)    // 0x960e1c1e => calcTradeFee(uint256)    // 0x98a1b397 => ROLE_OPERATOR()    // 0x9b911b5e => saleToken(address,uint256)    // 0xa217fddf => DEFAULT_ADMIN_ROLE()    // 0xa342f238 => _feeRecipient()    // 0xa34aa3d2 => Unknown_a34aa3d2(address)    // 0xbe822dec => saleToken(uint256,address,uint256,uint256,uint256,address)    // 0xc0b25557 => _tradeFeeRate()    // 0xd547741f => revokeRole(bytes32,address)    // 0xd83722f0 => grantDeployer(address)    // 0xe08836dd => PANCAKE_ROUTER()    // 0xe348da13 => grantOperator(address)    // 0xe684626b => _tokenInfos(address)    // 0xe74b981b => setFeeRecipient(address)    // 0xecfc7b02 => Unknown_ecfc7b02(uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256)    // 0xed70554d => _tokens(uint256)    // 0xf2fde38b => transferOwnership(address)    // 0xf5a6ba2e => lastPrice(address)    // 0xfad8b32a => revokeOperator(address)    // 0xff1e13ae => purchaseToken(uint256,address,uint256,uint256)}
0x7fbc1f…daf1be on BNB Chain — Decompiled Solidity