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
This result is permanently available athttps://decompiler.exvul.com/bsc/0x7fbc1ff9617d554d1902a3431a9c29dc2edaf1be
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)}