BNB Chain
0x06a24a4f4d803e8845db1f42ba9d542af21b92a5
Decompiled Solidity recovered from this contract's runtime bytecode. Best-effort reconstruction — confirm behaviour against on-chain state.
Decompilation outputBNB Chain · 0x06a24a4f…f21b92a510.9 KB66.8 s
This result is permanently available athttps://decompiler.exvul.com/bsc/0x06a24a4f4d803e8845db1f42ba9d542af21b92a5
//decompiled by exvvul decompiler tool contact@exvul.com https://x.com/exvulsec
// Decompilation incomplete: symbolic execution reached a configured deadline for 1 of 14 entry points (170000 ms contract budget): 2238a2ae
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;
contract DesolexContract {
uint256 public constant MAX_DEADLINE_WINDOW = 1800;
bool public constant unresolved_a4213afc = false;
address public constant protocolRegistry = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593);
uint256 public constant unresolved_69da1c46 = 30000;
address public constant lpToken = address(0xbc4df56bb74a06a5a19965adea7833d6b4d9070);
uint256 public constant moduleKey = 21272385633371373653527431313729810203549031575206028310125400910954682959166;
address public constant usdc = address(0x55d398326f99059ff775485246999027b3197955);
uint256 public constant interfaceVersion = 1;
address public constant protocolToken = address(0x61e91daf03a49ecec334bffbf5008860cfb33333);
uint256 public constant totalLiability = 0;
uint256 public constant protocolReceiver = 1029826448719675405611422076806224983999605739031;
bytes32 stor_0; // STORAGE[0x0]
error CustomError_4e645682();
error SafeERC20FailedOperation(address);
event Event_f5a60b1c(address indexed, uint256, uint256, uint256);
error CustomError_b072117c();
error ReentrancyGuardReentrantCall();
function _desolexPanic(uint256 code) private pure {
assembly ("memory-safe") {
mstore(0x00, shl(224, 0x4e487b71))
mstore(0x04, code)
revert(0x00, 0x24)
}
}
fallback() external payable {
// Synthetic compatibility routes preserve original selectors for unresolved names.
if ((msg.data.length >= 4) && (msg.sig == 0x2238a2ae)) {
// Route to Unknown_2238a2ae(address) after replacing only msg.sig.
__desolexSelectorShim(uint32(0xe77a1963));
return;
}
if ((msg.data.length >= 4) && (msg.sig == 0x3e30ffe3)) {
// Route to Unknown_3e30ffe3() after replacing only msg.sig.
__desolexSelectorShim(uint32(0x78196dac));
return;
}
revert();
}
function hasOpenPositions() public returns (bool) {
(bool success0, bytes memory returnData0) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
require(success0);
uint256 value1 = msg.data[0] >> 0xe0;
uint256 var_c;
uint256 value2 = var_c.length;
if (success0) {
uint256 value0 = returnData0.length;
if (0x20 <= returnData0.length) {
value0 = 0x20;
}
if (((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value0) - var_c) >= 0x20);
} else {
value1 = var_c;
value2 = 0;
}
bool flag1 = var_c.length;
if (value2 == 0x0) {
(bool success1, bytes memory returnData1) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
require(success1);
if (!(success1)) {
bool flag0 = var_c.length;
(bool success2, bytes memory returnData2) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success2);
if (!(success2)) {
return false;
}
uint256 value3 = returnData2.length;
if (0x20 <= returnData2.length) {
value3 = 0x20;
}
if (((var_c + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value3) - var_c) >= 0x20);
return flag0;
}
uint256 value4 = returnData1.length;
if (0x20 <= returnData1.length) {
value4 = 0x20;
}
if (((var_c + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value4 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value4) - var_c) >= 0x20);
} else {
flag1 = value2 != 0x0;
}
bool flag2 = var_c.length;
if (!flag1) {
(bool success3, bytes memory returnData3) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success3);
if (!(success3)) {
return false;
}
uint256 value5 = returnData3.length;
if (0x20 <= returnData3.length) {
value5 = 0x20;
}
if (((var_c + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value5) - var_c) >= 0x20);
} else {
flag2 = flag1;
}
return flag2;
}
function Unknown_3e30ffe3() public {
require(stor_0 != 0x02, ReentrancyGuardReentrantCall());
stor_0 = 0x02;
(bool success0, bytes memory returnData0) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).activeAddress(0x06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb7); // staticcall
require(success0);
uint256 value1 = msg.data[0] >> 0xe0;
uint256 var_c;
uint256 value2 = var_c.length;
if (success0) {
uint256 value0 = returnData0.length;
if (0x20 <= returnData0.length) {
value0 = 0x20;
}
if (((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value0 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value0) - var_c) >= 0x20);
require(var_c.length == (address(var_c.length)));
} else {
value1 = var_c;
value2 = 0;
}
uint256 value22 = msg.data[0] >> 0xe0;
bool flag6 = !var_c.length;
if (address(value2).code.length != 0x0) {
(bool success1, bytes memory returnData1) = address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).isActive(0x06aa03964db1f7257357ef09714a5f0ca3633723df419e97015e0c7a3e83edb7, address(value2)); // staticcall
require(success1);
if (!(success1)) {
require(0, CustomError_4e645682());
(bool success2, bytes memory returnData2) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
require(success2);
uint256 value4 = msg.data[0] >> 0xe0;
uint256 value6 = var_c.length;
if (success2) {
uint256 value3 = returnData2.length;
if (0x20 <= returnData2.length) {
value3 = 0x20;
}
if (((var_c + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value3 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value3) - var_c) >= 0x20);
} else {
value4 = var_c;
value6 = 0;
}
(bool success3, bytes memory returnData3) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
require(success3);
uint256 value7 = msg.data[0] >> 0xe0;
uint256 value8 = var_c.length;
if (success3) {
uint256 value5 = returnData3.length;
if (0x20 <= returnData3.length) {
value5 = 0x20;
}
if (((var_c + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value5 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value5) - var_c) >= 0x20);
} else {
value7 = var_c;
value8 = 0;
}
(bool success4, bytes memory returnData4) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success4);
uint256 value10 = 0x20;
uint256 value11 = var_c.length;
if (success4) {
uint256 value9 = returnData4.length;
if (0x20 <= returnData4.length) {
value9 = 0x20;
}
if (((var_c + ((value9 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value9 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value9 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value9) - var_c) >= 0x20);
} else {
value10 = var_c;
value11 = 0;
}
if (value6 != 0x0) {
if (((var_c + 0x80) > 0xffffffffffffffff) | ((var_c + 0x80) < var_c)) _desolexPanic(65);
var_c = var_c + 0x80;
(bool success5, bytes memory returnData5) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transfer(address(value2), value6); // call
require(success5);
bool flag0 = !(0x01 == var_n);
if (returnData5.length == 0) {
flag0 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
}
require(!(flag0), SafeERC20FailedOperation());
}
if (value8 != 0x0) {
if (((var_c + 0x80) > 0xffffffffffffffff) | ((var_c + 0x80) < var_c)) _desolexPanic(65);
var_c = var_c + 0x80;
(bool success6, bytes memory returnData6) = address(0x55d398326f99059ff775485246999027b3197955).transfer(address(value2), value8); // call
require(success6);
bool flag1 = !(0x01 == var_n);
if (returnData6.length == 0) {
flag1 = !(address(0x55d398326f99059ff775485246999027b3197955).code.length);
}
require(!(flag1), SafeERC20FailedOperation());
}
if (value11 != 0x0) {
if (((var_c + 0x80) > 0xffffffffffffffff) | ((var_c + 0x80) < var_c)) _desolexPanic(65);
var_c = var_c + 0x80;
(bool success7, bytes memory returnData7) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).transfer(address(value2), value11); // call
require(success7);
bool flag2 = !(0x01 == var_n);
if (returnData7.length == 0) {
flag2 = !(address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).code.length);
}
require(!(flag2), SafeERC20FailedOperation());
}
(bool success8, bytes memory returnData8) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
require(success8);
uint256 value13 = msg.data[0] >> 0xe0;
uint256 value14 = var_c.length;
if (success8) {
uint256 value12 = returnData8.length;
if (0x20 <= returnData8.length) {
value12 = 0x20;
}
if (((var_c + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value12 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value12) - var_c) >= 0x20);
} else {
value13 = var_c;
value14 = 0;
}
uint256 value18 = msg.data[0] >> 0xe0;
bool flag4 = var_c.length;
if (value14 == 0x0) {
(bool success9, bytes memory returnData9) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
require(success9);
if (!(success9)) {
uint256 value16 = msg.data[0] >> 0xe0;
bool flag3 = var_c.length;
(bool success10, bytes memory returnData10) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success10);
if (!(success10)) {
require(0x0 == 0x0, CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value6, value8, value11);
stor_0 = 0x01;
}
uint256 value15 = returnData10.length;
if (0x20 <= returnData10.length) {
value15 = 0x20;
}
if (((var_c + ((value15 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value15 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value15 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value15) - var_c) >= 0x20);
require(!(flag3), CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value6, value8, value11);
stor_0 = 0x01;
}
uint256 value17 = returnData9.length;
if (0x20 <= returnData9.length) {
value17 = 0x20;
}
if (((var_c + ((value17 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value17 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value17 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value17) - var_c) >= 0x20);
} else {
value18 = 0x55d398326f99059ff775485246999027b3197955;
flag4 = value14 != 0x0;
}
uint256 value20 = msg.data[0] >> 0xe0;
bool flag5 = var_c.length;
if (!flag4) {
(bool success11, bytes memory returnData11) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success11);
if (!(success11)) {
require(0x0 == 0x0, CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value6, value8, value11);
stor_0 = 0x01;
}
uint256 value19 = returnData11.length;
if (0x20 <= returnData11.length) {
value19 = 0x20;
}
if (((var_c + ((value19 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value19 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value19 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value19) - var_c) >= 0x20);
} else {
value20 = 0x0bc4df56bb74a06a5a19965adea7833d6b4d9070;
flag5 = flag4;
}
require(!(flag5), CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value6, value8, value11);
stor_0 = 0x01;
}
uint256 value21 = returnData1.length;
if (0x20 <= returnData1.length) {
value21 = 0x20;
}
if (((var_c + ((value21 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value21 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value21 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value21) - var_c) >= 0x20);
require(var_c.length == var_c.length);
} else {
value22 = 0xfd89fb9faf9de258c2148b2d0ec14da16ee42593;
flag6 = value2.code.length == 0x0;
}
require(!(flag6), CustomError_4e645682());
(bool success12, bytes memory returnData12) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
require(success12);
uint256 value24 = msg.data[0] >> 0xe0;
uint256 value26 = var_c.length;
if (success12) {
uint256 value23 = returnData12.length;
if (0x20 <= returnData12.length) {
value23 = 0x20;
}
if (((var_c + ((value23 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value23 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value23 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value23) - var_c) >= 0x20);
} else {
value24 = var_c;
value26 = 0;
}
(bool success13, bytes memory returnData13) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
require(success13);
uint256 value27 = msg.data[0] >> 0xe0;
uint256 value28 = var_c.length;
if (success13) {
uint256 value25 = returnData13.length;
if (0x20 <= returnData13.length) {
value25 = 0x20;
}
if (((var_c + ((value25 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value25 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value25 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value25) - var_c) >= 0x20);
} else {
value27 = var_c;
value28 = 0;
}
(bool success14, bytes memory returnData14) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success14);
uint256 value30 = 0x20;
uint256 value31 = var_c.length;
if (success14) {
uint256 value29 = returnData14.length;
if (0x20 <= returnData14.length) {
value29 = 0x20;
}
if (((var_c + ((value29 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value29 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value29 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value29) - var_c) >= 0x20);
} else {
value30 = var_c;
value31 = 0;
}
if (value26 != 0x0) {
if (((var_c + 0x80) > 0xffffffffffffffff) | ((var_c + 0x80) < var_c)) _desolexPanic(65);
var_c = var_c + 0x80;
(bool success15, bytes memory returnData15) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).transfer(address(value2), value26); // call
require(success15);
bool flag7 = !(0x01 == var_n);
if (returnData15.length == 0) {
flag7 = !(address(0x61e91daf03a49ecec334bffbf5008860cfb33333).code.length);
}
require(!(flag7), SafeERC20FailedOperation());
}
if (value28 != 0x0) {
if (((var_c + 0x80) > 0xffffffffffffffff) | ((var_c + 0x80) < var_c)) _desolexPanic(65);
var_c = var_c + 0x80;
(bool success16, bytes memory returnData16) = address(0x55d398326f99059ff775485246999027b3197955).transfer(address(value2), value28); // call
require(success16);
bool flag8 = !(0x01 == var_n);
if (returnData16.length == 0) {
flag8 = !(address(0x55d398326f99059ff775485246999027b3197955).code.length);
}
require(!(flag8), SafeERC20FailedOperation());
}
if (value31 != 0x0) {
if (((var_c + 0x80) > 0xffffffffffffffff) | ((var_c + 0x80) < var_c)) _desolexPanic(65);
var_c = var_c + 0x80;
(bool success17, bytes memory returnData17) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).transfer(address(value2), value31); // call
require(success17);
bool flag9 = !(0x01 == var_n);
if (returnData17.length == 0) {
flag9 = !(address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).code.length);
}
require(!(flag9), SafeERC20FailedOperation());
}
(bool success18, bytes memory returnData18) = address(0x61e91daf03a49ecec334bffbf5008860cfb33333).balanceOf(address(this)); // staticcall
require(success18);
uint256 value33 = msg.data[0] >> 0xe0;
uint256 value34 = var_c.length;
if (success18) {
uint256 value32 = returnData18.length;
if (0x20 <= returnData18.length) {
value32 = 0x20;
}
if (((var_c + ((value32 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value32 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value32 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value32) - var_c) >= 0x20);
} else {
value33 = var_c;
value34 = 0;
}
uint256 value38 = msg.data[0] >> 0xe0;
bool flag11 = var_c.length;
if (value34 == 0x0) {
(bool success19, bytes memory returnData19) = address(0x55d398326f99059ff775485246999027b3197955).balanceOf(address(this)); // staticcall
require(success19);
if (!(success19)) {
uint256 value36 = msg.data[0] >> 0xe0;
bool flag10 = var_c.length;
(bool success20, bytes memory returnData20) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success20);
if (!(success20)) {
require(0x0 == 0x0, CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value26, value28, value31);
stor_0 = 0x01;
}
uint256 value35 = returnData20.length;
if (0x20 <= returnData20.length) {
value35 = 0x20;
}
if (((var_c + ((value35 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value35 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value35 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value35) - var_c) >= 0x20);
require(!(flag10), CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value26, value28, value31);
stor_0 = 0x01;
}
uint256 value37 = returnData19.length;
if (0x20 <= returnData19.length) {
value37 = 0x20;
}
if (((var_c + ((value37 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value37 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value37 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value37) - var_c) >= 0x20);
} else {
value38 = 0x55d398326f99059ff775485246999027b3197955;
flag11 = value34 != 0x0;
}
uint256 value40 = msg.data[0] >> 0xe0;
bool flag12 = var_c.length;
if (!flag11) {
(bool success21, bytes memory returnData21) = address(0x0bc4df56bb74a06a5a19965adea7833d6b4d9070).balanceOf(address(this)); // staticcall
require(success21);
if (!(success21)) {
require(0x0 == 0x0, CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value26, value28, value31);
stor_0 = 0x01;
}
uint256 value39 = returnData21.length;
if (0x20 <= returnData21.length) {
value39 = 0x20;
}
if (((var_c + ((value39 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) > 0xffffffffffffffff) | ((var_c + ((value39 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0))) < var_c)) _desolexPanic(65);
var_c = var_c + ((value39 + 0x1f) & (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0));
require(((var_c + value39) - var_c) >= 0x20);
} else {
value40 = 0x0bc4df56bb74a06a5a19965adea7833d6b4d9070;
flag12 = flag11;
}
require(!(flag12), CustomError_b072117c());
emit Event_f5a60b1c(address(value2), value26, value28, value31);
stor_0 = 0x01;
}
function Unknown_2238a2ae(address arg0) public payable {
if (!(msg.value) && !((0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc + msg.data.length) < 0xc0) && arg0 == arg0) {
require((0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc + msg.data.length) >= 0xa0);
if (((var_a + 0x0140) > 0xffffffffffffffff) | ((var_a + 0x0140) < var_a)) _desolexPanic(65);
if (stor_0 != 0x02) {
stor_0 = 0x02;
address(0xfd89fb9faf9de258c2148b2d0ec14da16ee42593).isActive(0x2f07be5c4f9af7c6230f784f19332431b638fed28e5100d31a51b4e3fe04c53e, address(this)); // staticcall
}
}
}
function __desolexSelectorShim(uint32 rewrittenSelector) private {
assembly {
let input := mload(0x40)
calldatacopy(input, 0, calldatasize())
mstore(input, or(and(mload(input), 0x00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff), shl(224, and(rewrittenSelector, 0xffffffff))))
let success := delegatecall(gas(), address(), input, calldatasize(), 0, 0)
let size := returndatasize()
returndatacopy(input, 0, size)
switch success
case 0 { revert(input, size) }
default { return(input, size) }
}
}
// Note: This selector table is synthetic and is not part of the original Solidity source.
// It records the recovered selector-to-signature mapping without executable behavior.
// 0x0f51728e => protocolReceiver()
// 0x0fc29349 => totalLiability()
// 0x1a465fe1 => protocolToken()
// 0x1d8ffa4d => interfaceVersion()
// 0x2238a2ae => Unknown_2238a2ae(address)
// 0x3e30ffe3 => Unknown_3e30ffe3()
// 0x3e413bee => usdc()
// 0x55fd7fa0 => moduleKey()
// 0x5fcbd285 => lpToken()
// 0x69da1c46 => unresolved_69da1c46()
// 0x7656419f => protocolRegistry()
// 0x9ce6dd9f => hasOpenPositions()
// 0xa4213afc => unresolved_a4213afc()
// 0xc2b86d60 => MAX_DEADLINE_WINDOW()
}