Online Solidity Decompiler

« Decompile another contract

Address

0x03ecf0d22f9ccd21144a7d492cf63b471916497a [etherscan.io | etherchain.org]

Public Methods

Method names cached from 4byte.directory.
0x0ad7bb6c lockedBalance(uint256)
0x1aab9a9f holderCount()
0x1fc93aa6 holderIndex()
0x2a11ced0 holders(uint256)
0x6198e339 unlock(uint256)
0x6b8357ac collect(address,uint256)
0x8da5cb5b owner()
0x9251f020 Unknown
0xa23154f8 Unknown
0xb99f6e6c Unknown
0xc3375ca5 Unknown
0xf2fde38b transferOwnership(address)

Internal Methods

func_00C7(arg0) returns (r0)
func_00FF(arg1) returns (r0)
func_012A(arg0)
func_013F(arg0, arg1)
func_0165(arg0, arg1, arg2)
func_0178(arg0, arg1, arg2, arg3, arg4)
func_018B(arg0, arg1)
func_019E(arg0, arg1)
func_01B1(arg0)
func_01B6(arg0) returns (r0)
func_0615(arg0, arg1, arg2, arg3, arg4, arg5, arg6)
func_0AFB(arg0, arg1)
func_0CBC(arg0, arg1, arg2)
func_0D41(arg0) returns (r0)
func_0D4E(arg0, arg1) returns (r0)
func_0D67(arg0) returns (r0)
func_0D83(arg0, arg1) returns (r0, r1)
func_0DC3(arg0) returns (r0)
func_0DF4(arg0, arg1) returns (r0)
func_0E64(arg0, arg1) returns (r0, r1, r2)
func_0EBB(arg0, arg1) returns (r0, r1)
func_0F07(arg0, arg1) returns (r0, r1, r2, r3, r4)
func_101D(arg0, arg1) returns (r0, r1)
func_106B(arg0, arg1) returns (r0, r1)
func_108D(arg0, arg1) returns (r0)
func_10C5(arg0, arg1) returns (r0)
func_10DE(arg0) returns (r0)
func_1118(arg0) returns (r0)
func_1131(arg0, arg1) returns (r0)
func_1144(arg0, arg1) returns (r0)
func_1157(arg0, arg1) returns (r0)
func_1179(arg0, arg1, arg2)
func_119D(arg0, arg1) returns (r0)
func_11B9(arg0, arg1, arg2) returns (r0)

Decompilation

contract Contract { function main() { memory[0x40:0x60] = 0x80; var var0 = msg.value; if (var0) { revert(memory[0x00:0x00]); } if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); } var0 = msg.data[0x00:0x20] >> 0xe0; if (0x8da5cb5b > var0) { if (var0 == 0x0ad7bb6c) { // Dispatch table entry for lockedBalance(uint256) var var1 = 0x00cc; var var2 = 0x00c7; var var3 = msg.data.length; var var4 = 0x04; var2 = func_0D4E(var3, var4); var1 = func_00C7(var2); label_00CC: var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = var1; var temp1 = memory[0x40:0x60]; return memory[temp1:temp1 + (temp0 + 0x20) - temp1]; } else if (var0 == 0x1aab9a9f) { // Dispatch table entry for holderCount() var1 = 0x00cc; var2 = storage[0x03]; goto label_00CC; } else if (var0 == 0x1fc93aa6) { // Dispatch table entry for holderIndex() var1 = 0x00cc; var2 = storage[0x02]; goto label_00CC; } else if (var0 == 0x2a11ced0) { // Dispatch table entry for holders(uint256) var1 = 0x0104; var2 = 0x00ff; var3 = msg.data.length; var4 = 0x04; var2 = func_0D4E(var3, var4); var2 = func_00FF(var2); label_0104: var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = var2 & (0x01 << 0xa0) - 0x01; var2 = temp2 + 0x20; var temp3 = memory[0x40:0x60]; return memory[temp3:temp3 + var2 - temp3]; } else if (var0 == 0x6198e339) { // Dispatch table entry for unlock(uint256) var1 = 0x012f; var2 = 0x012a; var3 = msg.data.length; var4 = 0x04; var2 = func_0D4E(var3, var4); func_012A(var2); stop(); } else if (var0 == 0x6b8357ac) { // Dispatch table entry for collect(address,uint256) var1 = 0x012f; var2 = 0x013f; var3 = msg.data.length; var4 = 0x04; var2, var3 = func_0D83(var3, var4); func_013F(var2, var3); stop(); } else { revert(memory[0x00:0x00]); } } else if (var0 == 0x8da5cb5b) { // Dispatch table entry for owner() var1 = 0x0104; var2 = storage[0x00] & (0x01 << 0xa0) - 0x01; goto label_0104; } else if (var0 == 0x9251f020) { // Dispatch table entry for 0x9251f020 (unknown) var1 = 0x012f; var2 = 0x0165; var3 = msg.data.length; var4 = 0x04; var2, var3, var4 = func_0E64(var3, var4); func_0165(var2, var3, var4); stop(); } else if (var0 == 0xa23154f8) { // Dispatch table entry for 0xa23154f8 (unknown) var1 = 0x012f; var2 = 0x0178; var3 = msg.data.length; var4 = 0x04; var var5; var var6; var2, var3, var4, var5, var6 = func_0F07(var3, var4); func_0178(var2, var3, var4, var5, var6); stop(); } else if (var0 == 0xb99f6e6c) { // Dispatch table entry for 0xb99f6e6c (unknown) var1 = 0x012f; var2 = 0x018b; var3 = msg.data.length; var4 = 0x04; var2, var3 = func_101D(var3, var4); func_018B(var2, var3); stop(); } else if (var0 == 0xc3375ca5) { // Dispatch table entry for 0xc3375ca5 (unknown) var1 = 0x012f; var2 = 0x019e; var3 = msg.data.length; var4 = 0x04; var2, var3 = func_106B(var3, var4); func_019E(var2, var3); stop(); } else if (var0 == 0xf2fde38b) { // Dispatch table entry for transferOwnership(address) var1 = 0x012f; var2 = 0x01b1; var3 = msg.data.length; var4 = 0x04; var2 = func_108D(var3, var4); func_01B1(var2); stop(); } else { revert(memory[0x00:0x00]); } } function func_00C7(var arg0) returns (var r0) { r0 = func_01B6(arg0); // Error: Could not resolve method call return address! } function func_00FF(var arg0) returns (var arg0) { var var0 = 0x01; var var1 = arg0; if (var1 >= storage[var0]) { revert(memory[0x00:0x00]); } memory[0x00:0x20] = var0; return storage[keccak256(memory[0x00:0x20]) + var1] & (0x01 << 0xa0) - 0x01; } function func_012A(var arg0) { if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) { var var0 = arg0; var var1 = var0 > 0x00; if (var1) { goto label_02DE; } label_02E6: if (!var1) { label_0374: return; } else { label_02EC: var1 = 0x00; var var2 = 0x02f8; var var3 = storage[0x02]; var2 = func_01B6(var3); var1 = var2; if (!(0x00 - var1)) { var2 = 0x02; var3 = 0x00; var4 = 0x0311; var5 = storage[var2]; var4 = func_1118(var5); storage[var2] = var4; goto label_02D3; } else if (var0 < var1) { var2 = var0; var var4 = storage[0x02]; var3 = 0x036c; var var5 = var2; func_0AFB(var4, var5); label_02D3: var1 = var0 > 0x00; if (!var1) { goto label_02E6; } label_02DE: if (storage[0x02] >= storage[0x03]) { goto label_0374; } else { goto label_02EC; } } else { var2 = var1; var4 = storage[0x02]; var3 = 0x0332; var5 = var2; func_0AFB(var4, var5); var3 = 0x033c; var4 = var2; var5 = var0; var3 = func_1131(var4, var5); var0 = var3; var3 = 0x01; var4 = 0x02; var5 = 0x00; var var6 = 0x0351; var var8 = storage[var4]; var var7 = var3; var6 = func_1144(var7, var8); storage[var4] = var6; goto label_02D3; } } } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5; var0 = 0x02c8; var1 = temp0 + 0x04; var0 = func_10DE(var1); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + var0 - temp1]); } } function func_013F(var arg0, var arg1) { if (msg.sender != storage[0x00] & (0x01 << 0xa0) - 0x01) { var temp21 = memory[0x40:0x60]; memory[temp21:temp21 + 0x20] = 0x461bcd << 0xe5; var1 = temp21 + 0x04; var0 = 0x02c8; var0 = func_10DE(var1); goto label_02C8; } else if (!(arg0 & (0x01 << 0xa0) - 0x01)) { var0 = address(this).balance; var1 = 0x00; var2 = storage[var1] & (0x01 << 0xa0) - 0x01; if (var0 < arg1) { var temp13 = memory[0x40:0x60]; var temp14; temp14, memory[temp13:temp13 + 0x00] = address(var2).call.gas(msg.gas).value(var0)(memory[temp13:temp13 + 0x00]); var3 = returndata.length; var4 = var3; if (var4 == 0x00) { label_040B: var1 = var2; if (var1) { goto label_0459; } label_041A: var temp15 = memory[0x40:0x60]; memory[temp15:temp15 + 0x20] = 0x461bcd << 0xe5; memory[temp15 + 0x04:temp15 + 0x04 + 0x20] = 0x20; memory[temp15 + 0x24:temp15 + 0x24 + 0x20] = 0x15; memory[temp15 + 0x44:temp15 + 0x44 + 0x20] = 0x1d985b1d59481d1c985b9cd9995c8819985a5b1959 << 0x5a; var2 = temp15 + 0x64; label_02C8: var temp16 = memory[0x40:0x60]; revert(memory[temp16:temp16 + var2 - temp16]); } else { label_03EA: var temp17 = memory[0x40:0x60]; var3 = temp17; memory[0x40:0x60] = var3 + (returndata.length + 0x3f & ~0x1f); memory[var3:var3 + 0x20] = returndata.length; var temp18 = returndata.length; memory[var3 + 0x20:var3 + 0x20 + temp18] = returndata[0x00:0x00 + temp18]; var1 = var2; if (var1) { goto label_0459; } else { goto label_041A; } } } else { var3 = arg1; var temp19 = memory[0x40:0x60]; var temp20; temp20, memory[temp19:temp19 + 0x00] = address(var2).call.gas(msg.gas).value(var3)(memory[temp19:temp19 + 0x00]); var3 = returndata.length; var4 = var3; if (var4 == 0x00) { goto label_040B; } else { goto label_03EA; } } } else if ((arg0 & (0x01 << 0xa0) - 0x01) - ((0x01 << 0xa0) - 0x01 & 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c)) { return; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x70a08231 << 0xe0; memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = address(this); var var0 = 0x00; var var1 = arg0 & (0x01 << 0xa0) - 0x01; var var2 = 0x70a08231; var var3 = temp0 + 0x24; var temp1 = memory[0x40:0x60]; var temp2; temp2, memory[temp1:temp1 + 0x20] = address(var1).staticcall.gas(msg.gas)(memory[temp1:temp1 + var3 - temp1]); var var4 = !temp2; if (!var4) { var temp3 = memory[0x40:0x60]; var temp4 = returndata.length; memory[0x40:0x60] = temp3 + (temp4 + 0x1f & ~0x1f); var1 = 0x0503; var3 = temp3; var2 = var3 + temp4; var1 = func_10C5(var2, var3); var0 = var1; if (arg1 <= var0) { label_051A: var temp5 = memory[0x40:0x60]; memory[temp5:temp5 + 0x20] = 0xa9059cbb << 0xe0; var temp6 = (0x01 << 0xa0) - 0x01; memory[temp5 + 0x04:temp5 + 0x04 + 0x20] = temp6 & storage[0x00]; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = arg1; var1 = arg0 & temp6; var2 = 0xa9059cbb; var3 = temp5 + 0x44; var temp7 = memory[0x40:0x60]; var temp8; temp8, memory[temp7:temp7 + 0x20] = address(var1).call.gas(msg.gas)(memory[temp7:temp7 + var3 - temp7]); var4 = !temp8; if (!var4) { var temp9 = memory[0x40:0x60]; var temp10 = returndata.length; memory[0x40:0x60] = temp9 + (temp10 + 0x1f & ~0x1f); var1 = 0x0459; var3 = temp9; var2 = var3 + temp10; var1 = func_1157(var2, var3); label_0459: return; } else { var temp11 = returndata.length; memory[0x00:0x00 + temp11] = returndata[0x00:0x00 + temp11]; revert(memory[0x00:0x00 + returndata.length]); } } else { var1 = 0x051a; var2 = 0x012a; var3 = var0; var4 = arg1; var2 = func_1131(var3, var4); func_012A(var2); goto label_051A; } } else { var temp12 = returndata.length; memory[0x00:0x00 + temp12] = returndata[0x00:0x00 + temp12]; revert(memory[0x00:0x00 + returndata.length]); } } } function func_0165(var arg0, var arg1, var arg2) { if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) { var var0 = 0x05c6; var var1 = arg0; var var2 = arg1; var var3 = arg2; func_0CBC(var1, var2, var3); return; } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5; var0 = 0x02c8; var1 = temp0 + 0x04; var0 = func_10DE(var1); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + var0 - temp1]); } } function func_0178(var arg0, var arg1, var arg2, var arg3, var arg4) { if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) { var var0 = 0x00; if (var0 >= arg1) { label_0672: return; } else { label_0601: var var1 = 0x0662; var var2 = arg0; var var3 = arg1; var var4 = var0; if (var4 < var3) { func_0615(arg2, arg3, arg4, var0, var2, var3, var4); var1 = 0x066b; var2 = var0; var1 = func_1118(var2); var0 = var1; if (var0 >= arg1) { goto label_0672; } else { goto label_0601; } } else { var var5 = 0x0615; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x32; revert(memory[0x00:0x24]); } } } else { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5; var1 = temp0 + 0x04; var0 = 0x02c8; var0 = func_10DE(var1); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + var0 - temp1]); } } function func_018B(var arg0, var arg1) { if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) { var var0 = 0x00; var var1 = arg0 & (0x01 << 0xa0) - 0x01; var var2 = 0x06be; var var4 = memory[0x40:0x60]; var var3 = arg1; var2 = func_119D(var3, var4); var temp0 = memory[0x40:0x60]; var temp1; temp1, memory[temp0:temp0 + 0x00] = address(var1).call.gas(msg.gas)(memory[temp0:temp0 + var2 - temp0]); var2 = returndata.length; var3 = var2; if (var3 == 0x00) { var0 = var1; if (!var0) { revert(memory[0x00:0x00]); } label_05C6: return; } else { var temp2 = memory[0x40:0x60]; var2 = temp2; memory[0x40:0x60] = var2 + (returndata.length + 0x3f & ~0x1f); memory[var2:var2 + 0x20] = returndata.length; var temp3 = returndata.length; memory[var2 + 0x20:var2 + 0x20 + temp3] = returndata[0x00:0x00 + temp3]; var0 = var1; if (var0) { goto label_05C6; } else { revert(memory[0x00:0x00]); } } } else { var temp4 = memory[0x40:0x60]; memory[temp4:temp4 + 0x20] = 0x461bcd << 0xe5; var0 = 0x02c8; var1 = temp4 + 0x04; var0 = func_10DE(var1); var temp5 = memory[0x40:0x60]; revert(memory[temp5:temp5 + var0 - temp5]); } } function func_019E(var arg0, var arg1) { if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) { var temp0 = memory[0x40:0x60]; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce & (0x01 << 0xa0) - 0x01; var temp1 = arg1; memory[temp0 + 0x44:temp0 + 0x44 + 0x20] = temp1; var temp2 = memory[0x40:0x60]; memory[temp2:temp2 + 0x20] = temp0 - temp2 + 0x44; memory[0x40:0x60] = temp0 + 0x64; var temp3 = temp2 + 0x20; var temp4 = (0x01 << 0xe0) - 0x01; memory[temp3:temp3 + 0x20] = (temp4 & memory[temp3:temp3 + 0x20]) | (0x095ea7b3 << 0xe0); var temp5 = memory[0x40:0x60]; memory[temp5 + 0x24:temp5 + 0x24 + 0x20] = temp1; var temp6 = memory[0x40:0x60]; memory[temp6:temp6 + 0x20] = temp5 - temp6 + 0x24; memory[0x40:0x60] = temp5 + 0x44; var temp7 = temp6 + 0x20; memory[temp7:temp7 + 0x20] = (temp4 & memory[temp7:temp7 + 0x20]) | (0x16a884d9 << 0xe3); var var1 = temp6; var var0 = temp2; var var2 = 0x00; if (var2 >= arg0) { label_0A1A: return; } else { label_07DE: var var3 = 0x00; var var4 = 0x07eb; var var5 = memory[0x40:0x60]; var4 = func_0D41(var5); var temp8 = memory[0x40:0x60]; var temp9 = new(memory[temp8:temp8 + var4 - temp8]).value(0x00)(); var4 = temp9; var5 = !var4; if (!var5) { var temp10 = memory[0x40:0x60]; memory[temp10:temp10 + 0x20] = 0x23b872dd << 0xe0; var temp11 = (0x01 << 0xa0) - 0x01; memory[temp10 + 0x04:temp10 + 0x04 + 0x20] = temp11 & storage[0x00]; memory[temp10 + 0x24:temp10 + 0x24 + 0x20] = var4 & temp11; memory[temp10 + 0x44:temp10 + 0x44 + 0x20] = arg1; var3 = var4; var4 = temp11 & 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c; var5 = 0x23b872dd; var var6 = temp10 + 0x64; var temp12 = memory[0x40:0x60]; var temp13; temp13, memory[temp12:temp12 + 0x20] = address(var4).call.gas(msg.gas)(memory[temp12:temp12 + var6 - temp12]); var var7 = !temp13; if (!var7) { var temp14 = memory[0x40:0x60]; var temp15 = returndata.length; memory[0x40:0x60] = temp14 + (temp15 + 0x1f & ~0x1f); var4 = 0x08a9; var6 = temp14; var5 = var6 + temp15; var4 = func_1157(var5, var6); var temp16 = memory[0x40:0x60]; memory[temp16:temp16 + 0x20] = 0x49e9d3db << 0xe1; var4 = var3 & (0x01 << 0xa0) - 0x01; var5 = 0x93d3a7b6; var6 = 0x08f8; var7 = 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c; var var8 = var0; var var9 = temp16 + 0x04; var6 = func_11B9(var7, var8, var9); var7 = 0x00; var8 = memory[0x40:0x60]; var9 = var6 - var8; var var10 = var8; var var11 = 0x00; var var12 = var4; var var13 = !address(var12).code.length; if (var13) { revert(memory[0x00:0x00]); } var temp17; temp17, memory[var8:var8 + var7] = address(var12).call.gas(msg.gas).value(var11)(memory[var10:var10 + var9]); var7 = !temp17; if (!var7) { var temp18 = memory[0x40:0x60]; memory[temp18:temp18 + 0x20] = 0x49e9d3db << 0xe1; var4 = var3 & (0x01 << 0xa0) - 0x01; var5 = 0x93d3a7b6; var6 = 0x0978; var7 = 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce; var8 = var1; var9 = temp18 + 0x04; var6 = func_11B9(var7, var8, var9); var7 = 0x00; var8 = memory[0x40:0x60]; var9 = var6 - var8; var10 = var8; var11 = 0x00; var12 = var4; var13 = !address(var12).code.length; if (var13) { revert(memory[0x00:0x00]); } var temp19; temp19, memory[var8:var8 + var7] = address(var12).call.gas(msg.gas).value(var11)(memory[var10:var10 + var9]); var7 = !temp19; if (!var7) { var temp20 = storage[0x01]; storage[0x01] = temp20 + 0x01; memory[0x00:0x20] = 0x01; var temp21 = temp20 + 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6; storage[temp21] = (var3 & (0x01 << 0xa0) - 0x01) | (storage[temp21] & ~((0x01 << 0xa0) - 0x01)); var4 = 0x03; var5 = 0x00; var7 = storage[var4]; var6 = 0x0a04; var6 = func_1118(var7); storage[var4] = var6; var3 = 0x0a13; var4 = var2; var3 = func_1118(var4); var2 = var3; if (var2 >= arg0) { goto label_0A1A; } else { goto label_07DE; } } else { var temp22 = returndata.length; memory[0x00:0x00 + temp22] = returndata[0x00:0x00 + temp22]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp23 = returndata.length; memory[0x00:0x00 + temp23] = returndata[0x00:0x00 + temp23]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp24 = returndata.length; memory[0x00:0x00 + temp24] = returndata[0x00:0x00 + temp24]; revert(memory[0x00:0x00 + returndata.length]); } } else { var temp25 = returndata.length; memory[0x00:0x00 + temp25] = returndata[0x00:0x00 + temp25]; revert(memory[0x00:0x00 + returndata.length]); } } } else { var temp26 = memory[0x40:0x60]; memory[temp26:temp26 + 0x20] = 0x461bcd << 0xe5; var0 = 0x02c8; var1 = temp26 + 0x04; var0 = func_10DE(var1); var temp27 = memory[0x40:0x60]; revert(memory[temp27:temp27 + var0 - temp27]); } } function func_01B1(var arg0) { if (msg.sender != storage[0x00] & (0x01 << 0xa0) - 0x01) { var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5; var0 = 0x02c8; var var1 = temp3 + 0x04; var0 = func_10DE(var1); goto label_02C8; } else if (arg0 & (0x01 << 0xa0) - 0x01) { var temp0 = arg0 & (0x01 << 0xa0) - 0x01; storage[0x00] = temp0 | (storage[0x00] & ~((0x01 << 0xa0) - 0x01)); log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, msg.sender, stack[-1] & (0x01 << 0xa0) - 0x01]); return; } else { var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x461bcd << 0xe5; memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = 0x20; memory[temp1 + 0x24:temp1 + 0x24 + 0x20] = 0x26; memory[temp1 + 0x44:temp1 + 0x44 + 0x20] = 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061; memory[temp1 + 0x64:temp1 + 0x64 + 0x20] = 0x646472657373 << 0xd0; var var0 = temp1 + 0x84; label_02C8: var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + var0 - temp2]); } } function func_01B6(var arg0) returns (var r0) { var var0 = 0x00; var var1 = (0x01 << 0xa0) - 0x01 & 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce; var var2 = 0x9ae697bf; var var3 = 0x01; var var4 = arg0; if (var4 < storage[var3]) { memory[0x00:0x20] = var3; var temp0 = storage[keccak256(memory[0x00:0x20]) + var4]; var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = (var2 << 0xe0) & ~((0x01 << 0xe0) - 0x01); memory[temp1 + 0x04:temp1 + 0x04 + 0x20] = temp0 & (0x01 << 0xa0) - 0x01; var3 = temp1 + 0x24; var temp2 = memory[0x40:0x60]; var temp3; temp3, memory[temp2:temp2 + 0x20] = address(var1).staticcall.gas(msg.gas)(memory[temp2:temp2 + var3 - temp2]); var4 = !temp3; if (!var4) { var temp4 = memory[0x40:0x60]; var temp5 = returndata.length; memory[0x40:0x60] = temp4 + (temp5 + 0x1f & ~0x1f); var1 = 0x026e; var3 = temp4; var2 = var3 + temp5; return func_10C5(var2, var3); } else { var temp6 = returndata.length; memory[0x00:0x00 + temp6] = returndata[0x00:0x00 + temp6]; revert(memory[0x00:0x00 + returndata.length]); } } else { var var5 = 0x01fa; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x32; revert(memory[0x00:0x24]); } } function func_0615(var arg0, var arg1, var arg2, var arg3, var arg4, var arg5, var arg6) { arg4 = msg.data[arg6 * 0x20 + arg4:arg6 * 0x20 + arg4 + 0x20]; arg5 = arg0; arg6 = arg1; var var0 = arg3; if (var0 < arg6) { var temp0 = var0 * 0x20 + arg5; var temp1 = temp0 + 0x20; arg5 = 0x0643; var0 = temp0; arg6 = temp1; arg5 = func_108D(arg6, var0); arg6 = arg2; var0 = arg3; if (var0 < memory[arg6:arg6 + 0x20]) { arg6 = memory[var0 * 0x20 + 0x20 + arg6:var0 * 0x20 + 0x20 + arg6 + 0x20]; func_0CBC(arg4, arg5, arg6); // Error: Could not resolve method call return address! } else { var var1 = 0x0655; label_10AF: memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x32; revert(memory[0x00:0x24]); } } else { var1 = 0x062e; goto label_10AF; } } function func_0AFB(var arg0, var arg1) { var temp0 = memory[0x40:0x60]; memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = arg1; var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = temp0 - temp1 + 0x24; var var0 = temp1; memory[0x40:0x60] = temp0 + 0x44; var temp2 = var0 + 0x20; memory[temp2:temp2 + 0x20] = (memory[temp2:temp2 + 0x20] & (0x01 << 0xe0) - 0x01) | (0x6198e339 << 0xe0); var var1 = 0x01; var var2 = arg0; if (var2 < storage[var1]) { memory[0x00:0x20] = var1; var temp3 = storage[keccak256(memory[0x00:0x20]) + var2]; var temp4 = memory[0x40:0x60]; memory[temp4:temp4 + 0x20] = 0x49e9d3db << 0xe1; var1 = temp3 & (0x01 << 0xa0) - 0x01; var2 = 0x93d3a7b6; var var3 = 0x0ba2; var var4 = 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce; var var5 = var0; var var6 = temp4 + 0x04; var3 = func_11B9(var4, var5, var6); var4 = 0x00; var5 = memory[0x40:0x60]; var6 = var3 - var5; var var7 = var5; var var8 = 0x00; var var9 = var1; var var10 = !address(var9).code.length; if (var10) { revert(memory[0x00:0x00]); } var temp5; temp5, memory[var5:var5 + var4] = address(var9).call.gas(msg.gas).value(var8)(memory[var7:var7 + var6]); var4 = !temp5; if (!var4) { var temp6 = memory[0x40:0x60]; memory[temp6 + 0x24:temp6 + 0x24 + 0x20] = address(this); memory[temp6 + 0x44:temp6 + 0x44 + 0x20] = arg1; var temp7 = memory[0x40:0x60]; memory[temp7:temp7 + 0x20] = temp6 - temp7 + 0x44; memory[0x40:0x60] = temp6 + 0x64; var temp8 = temp7 + 0x20; memory[temp8:temp8 + 0x20] = (memory[temp8:temp8 + 0x20] & (0x01 << 0xe0) - 0x01) | (0xa9059cbb << 0xe0); var1 = temp7; var2 = 0x01; var3 = arg0; if (var3 < storage[var2]) { memory[0x00:0x20] = var2; var temp9 = storage[keccak256(memory[0x00:0x20]) + var3]; var temp10 = memory[0x40:0x60]; memory[temp10:temp10 + 0x20] = 0x49e9d3db << 0xe1; var2 = temp9 & (0x01 << 0xa0) - 0x01; var3 = 0x93d3a7b6; var4 = 0x0c84; var5 = 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c; var6 = var1; var7 = temp10 + 0x04; var4 = func_11B9(var5, var6, var7); var5 = 0x00; var6 = memory[0x40:0x60]; var7 = var4 - var6; var8 = var6; var9 = 0x00; var10 = var2; var var11 = !address(var10).code.length; if (var11) { revert(memory[0x00:0x00]); } var temp11; temp11, memory[var6:var6 + var5] = address(var10).call.gas(msg.gas).value(var9)(memory[var8:var8 + var7]); var5 = !temp11; if (!var5) { return; } var temp12 = returndata.length; memory[0x00:0x00 + temp12] = returndata[0x00:0x00 + temp12]; revert(memory[0x00:0x00 + returndata.length]); } else { var4 = 0x0c29; label_10AF: memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x32; revert(memory[0x00:0x24]); } } else { var temp13 = returndata.length; memory[0x00:0x00 + temp13] = returndata[0x00:0x00 + temp13]; revert(memory[0x00:0x00 + returndata.length]); } } else { var3 = 0x0b47; goto label_10AF; } } function func_0CBC(var arg0, var arg1, var arg2) { var var0 = 0x01; var var1 = arg0; if (var1 < storage[var0]) { memory[0x00:0x20] = var0; var temp0 = storage[keccak256(memory[0x00:0x20]) + var1]; var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x49e9d3db << 0xe1; var0 = temp0 & (0x01 << 0xa0) - 0x01; var1 = 0x93d3a7b6; var var2 = 0x0d0a; var var3 = arg1; var var4 = arg2; var var5 = temp1 + 0x04; var2 = func_11B9(var3, var4, var5); var3 = 0x00; var4 = memory[0x40:0x60]; var5 = var2 - var4; var var6 = var4; var var7 = 0x00; var var8 = var0; var var9 = !address(var8).code.length; if (var9) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]); var3 = !temp2; if (!var3) { return; } var temp3 = returndata.length; memory[0x00:0x00 + temp3] = returndata[0x00:0x00 + temp3]; revert(memory[0x00:0x00 + returndata.length]); } else { var2 = 0x0ccf; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x32; revert(memory[0x00:0x24]); } } function func_0D41(var arg0) returns (var r0) { var temp0 = arg0; memory[temp0:temp0 + 0x01d7] = code[0x11fc:0x13d3]; return temp0 + 0x01d7; } function func_0D4E(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i>= 0x20) { return msg.data[arg1:arg1 + 0x20]; } else { revert(memory[0x00:0x00]); } } function func_0D67(var arg0) returns (var r0) { var temp0 = msg.data[arg0:arg0 + 0x20]; var var0 = temp0; if (var0 == var0 & (0x01 << 0xa0) - 0x01) { return var0; } else { revert(memory[0x00:0x00]); } } function func_0D83(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg0 - arg1 i< 0x40) { revert(memory[0x00:0x00]); } var var2 = 0x0d9f; var var3 = arg1; var2 = func_0D67(var3); r0 = var2; arg0 = msg.data[arg1 + 0x20:arg1 + 0x20 + 0x20]; return r0, arg0; } function func_0DC3(var arg0) returns (var r0) { var temp0 = memory[0x40:0x60]; var var0 = temp0; var temp1 = var0 + (arg0 + 0x1f & ~0x1f); var var1 = temp1; if (!((var1 < var0) | (var1 > 0xffffffffffffffff))) { memory[0x40:0x60] = var1; return var0; } else { var var2 = 0x0dec; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x41; revert(memory[0x00:0x24]); } } function func_0DF4(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg1 + 0x1f i>= arg0) { revert(memory[0x00:0x00]); } var var1 = msg.data[arg1:arg1 + 0x20]; if (var1 <= 0xffffffffffffffff) { var var2 = 0x0e32; var var3 = (var1 + 0x1f & ~0x1f) + 0x20; var2 = func_0DC3(var3); var temp0 = var1; memory[var2:var2 + 0x20] = temp0; if (arg1 + temp0 + 0x20 > arg0) { revert(memory[0x00:0x00]); } var temp1 = var1; var temp2 = var2; memory[temp2 + 0x20:temp2 + 0x20 + temp1] = msg.data[arg1 + 0x20:arg1 + 0x20 + temp1]; memory[temp2 + temp1 + 0x20:temp2 + temp1 + 0x20 + 0x20] = 0x00; return temp2; } else { var2 = 0x0e1f; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x41; revert(memory[0x00:0x24]); } } function func_0E64(var arg0, var arg1) returns (var r0, var arg0, var arg1) { var var0 = 0x00; var var1 = var0; var var2 = 0x00; if (arg0 - arg1 i< 0x60) { revert(memory[0x00:0x00]); } var temp0 = arg1; var0 = msg.data[temp0:temp0 + 0x20]; var var3 = 0x0e89; var var4 = temp0 + 0x20; var3 = func_0D67(var4); var1 = var3; var3 = msg.data[arg1 + 0x40:arg1 + 0x40 + 0x20]; if (var3 > 0xffffffffffffffff) { revert(memory[0x00:0x00]); } var4 = 0x0eb1; var var5 = arg0; var var6 = arg1 + var3; var4 = func_0DF4(var5, var6); arg1 = var4; arg0 = var1; r0 = var0; return r0, arg0, arg1; } function func_0EBB(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg1 + 0x1f i>= arg0) { revert(memory[0x00:0x00]); } var1 = msg.data[arg1:arg1 + 0x20]; if (var1 > 0xffffffffffffffff) { revert(memory[0x00:0x00]); } var temp0 = arg1; var0 = temp0 + 0x20; if (temp0 + (var1 << 0x05) + 0x20 > arg0) { revert(memory[0x00:0x00]); } arg0 = var1; r0 = var0; return r0, arg0; } function func_0F07(var arg0, var arg1) returns (var r0, var arg0, var arg1, var r3, var r4) { r3 = 0x00; r4 = r3; var var2 = 0x00; var var3 = var2; var var4 = 0x00; if (arg0 - arg1 i< 0x60) { revert(memory[0x00:0x00]); } var var5 = msg.data[arg1:arg1 + 0x20]; var var6 = 0xffffffffffffffff; if (var5 > var6) { revert(memory[0x00:0x00]); } var var7 = 0x0f43; var var8 = arg0; var var9 = arg1 + var5; var7, var8 = func_0EBB(var8, var9); r3 = var7; r4 = var8; var5 = 0x20; var7 = msg.data[var5 + arg1:var5 + arg1 + 0x20]; if (var7 > var6) { revert(memory[0x00:0x00]); } var8 = 0x0f69; var9 = arg0; var var10 = arg1 + var7; var8, var9 = func_0EBB(var9, var10); var2 = var8; var3 = var9; var7 = msg.data[arg1 + 0x40:arg1 + 0x40 + 0x20]; if (var7 > var6) { revert(memory[0x00:0x00]); } var temp0 = arg1 + var7; var7 = temp0; if (arg0 i<= var7 + 0x1f) { revert(memory[0x00:0x00]); } var8 = msg.data[var7:var7 + 0x20]; if (var8 <= var6) { var9 = var8 << 0x05; var10 = 0x0fb3; var var11 = var9 + var5; var10 = func_0DC3(var11); var temp1 = var10; memory[temp1:temp1 + 0x20] = var8; var temp2 = var5; var8 = temp2 + var9 + var7; var10 = temp1 + temp2; var11 = temp1; if (var8 > arg0) { revert(memory[0x00:0x00]); } var9 = var7 + var5; if (var9 >= var8) { label_1009: var temp3 = r4; r4 = var11; arg0 = temp3; var temp4 = r3; r3 = var3; r0 = temp4; arg1 = var2; return r0, arg0, arg1, r3, r4; } else { label_0FDC: var var12 = msg.data[var9:var9 + 0x20]; if (var12 <= var6) { var var13 = 0x0ff9; var var14 = arg0; var var15 = var7 + var12 + var5; var13 = func_0DF4(var14, var15); var temp5 = var10; memory[temp5:temp5 + 0x20] = var13; var temp6 = var5; var9 = temp6 + var9; var11 = var11; var10 = temp6 + temp5; if (var9 >= var8) { goto label_1009; } else { goto label_0FDC; } } else { var13 = 0x00; revert(memory[var13:var13 + var13]); } } } else { var9 = 0x0fa4; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x41; revert(memory[0x00:0x24]); } } function func_101D(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg0 - arg1 i< 0x40) { revert(memory[0x00:0x00]); } var var2 = 0x1039; var var3 = arg1; var2 = func_0D67(var3); var0 = var2; var2 = msg.data[arg1 + 0x20:arg1 + 0x20 + 0x20]; if (var2 > 0xffffffffffffffff) { revert(memory[0x00:0x00]); } var3 = 0x1061; var var4 = arg0; var var5 = arg1 + var2; var3 = func_0DF4(var4, var5); arg0 = var3; r0 = var0; return r0, arg0; } function func_106B(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg0 - arg1 i< 0x40) { revert(memory[0x00:0x00]); } var temp0 = arg1; r0 = msg.data[temp0:temp0 + 0x20]; arg0 = msg.data[temp0 + 0x20:temp0 + 0x20 + 0x20]; return r0, arg0; } function func_108D(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); } var var1 = 0x10a8; var var2 = arg1; return func_0D67(var2); } function func_10C5(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i>= 0x20) { return memory[arg1:arg1 + 0x20]; } else { revert(memory[0x00:0x00]); } } function func_10DE(var arg0) returns (var r0) { var temp0 = arg0; memory[temp0:temp0 + 0x20] = 0x20; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x0a; memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = 0x37b7363c9037bbb732b9 << 0xb1; return temp0 + 0x60; } function func_1118(var arg0) returns (var r0) { var var0 = 0x00; if (arg0 + 0x01) { return arg0 + 0x01; } var var1 = 0x112a; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x11; revert(memory[0x00:0x24]); } function func_1131(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = temp0 - arg0; if (var0 <= temp0) { return var0; } var var1 = 0x026e; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x11; revert(memory[0x00:0x24]); } function func_1144(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = arg0 + temp0; if (temp0 <= var0) { return var0; } var var1 = 0x026e; memory[0x00:0x20] = 0x4e487b71 << 0xe0; memory[0x04:0x24] = 0x11; revert(memory[0x00:0x24]); } function func_1157(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); } var temp0 = memory[arg1:arg1 + 0x20]; var var1 = temp0; if (var1 == !!var1) { return var1; } else { revert(memory[0x00:0x00]); } } function func_1179(var arg0, var arg1, var arg2) { var var0 = 0x00; if (var0 >= arg0) { label_1194: memory[arg0 + arg1:arg0 + arg1 + 0x20] = 0x00; return; } else { label_1185: var temp0 = var0; memory[temp0 + arg1:temp0 + arg1 + 0x20] = memory[temp0 + arg2:temp0 + arg2 + 0x20]; var0 = temp0 + 0x20; if (var0 >= arg0) { goto label_1194; } else { goto label_1185; } } } function func_119D(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var temp0 = arg0; var var1 = memory[temp0:temp0 + 0x20]; var var2 = 0x11af; var var3 = var1; var var4 = arg1; var var5 = temp0 + 0x20; func_1179(var3, var4, var5); return var1 + arg1; } function func_11B9(var arg0, var arg1, var arg2) returns (var r0) { var temp0 = arg2; memory[temp0:temp0 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x40; var var0 = 0x00; var temp1 = arg1; var temp2 = memory[temp1:temp1 + 0x20]; var var1 = temp2; memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = var1; var var2 = 0x11e6; var var3 = var1; var var4 = temp0 + 0x60; var var5 = temp1 + 0x20; func_1179(var3, var4, var5); return (var1 + 0x1f & ~0x1f) + arg2 + 0x60; } }

Disassembly

label_0000: // Inputs[1] { @0005 msg.value } 0000 60 PUSH1 0x80 0002 60 PUSH1 0x40 0004 52 MSTORE 0005 34 CALLVALUE 0006 80 DUP1 0007 15 ISZERO 0008 61 PUSH2 0x0010 000B 57 *JUMPI // Stack delta = +1 // Outputs[2] // { // @0004 memory[0x40:0x60] = 0x80 // @0005 stack[0] = msg.value // } // Block ends with conditional jump to 0x0010, if !msg.value label_000C: // Incoming jump from 0x000B, if not !msg.value // Inputs[1] { @000F memory[0x00:0x00] } 000C 60 PUSH1 0x00 000E 80 DUP1 000F FD *REVERT // Stack delta = +0 // Outputs[1] { @000F revert(memory[0x00:0x00]); } // Block terminates label_0010: // Incoming jump from 0x000B, if !msg.value // Inputs[1] { @0014 msg.data.length } 0010 5B JUMPDEST 0011 50 POP 0012 60 PUSH1 0x04 0014 36 CALLDATASIZE 0015 10 LT 0016 61 PUSH2 0x00b4 0019 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x00b4, if msg.data.length < 0x04 label_001A: // Incoming jump from 0x0019, if not msg.data.length < 0x04 // Inputs[1] { @001C msg.data[0x00:0x20] } 001A 60 PUSH1 0x00 001C 35 CALLDATALOAD 001D 60 PUSH1 0xe0 001F 1C SHR 0020 80 DUP1 0021 63 PUSH4 0x8da5cb5b 0026 11 GT 0027 61 PUSH2 0x0071 002A 57 *JUMPI // Stack delta = +1 // Outputs[1] { @001F stack[0] = msg.data[0x00:0x20] >> 0xe0 } // Block ends with conditional jump to 0x0071, if 0x8da5cb5b > msg.data[0x00:0x20] >> 0xe0 label_002B: // Incoming jump from 0x002A, if not 0x8da5cb5b > msg.data[0x00:0x20] >> 0xe0 // Inputs[1] { @002B stack[-1] } 002B 80 DUP1 002C 63 PUSH4 0x8da5cb5b 0031 14 EQ 0032 61 PUSH2 0x0144 0035 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0144, if 0x8da5cb5b == stack[-1] label_0036: // Incoming jump from 0x0035, if not 0x8da5cb5b == stack[-1] // Inputs[1] { @0036 stack[-1] } 0036 80 DUP1 0037 63 PUSH4 0x9251f020 003C 14 EQ 003D 61 PUSH2 0x0157 0040 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0157, if 0x9251f020 == stack[-1] label_0041: // Incoming jump from 0x0040, if not 0x9251f020 == stack[-1] // Inputs[1] { @0041 stack[-1] } 0041 80 DUP1 0042 63 PUSH4 0xa23154f8 0047 14 EQ 0048 61 PUSH2 0x016a 004B 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x016a, if 0xa23154f8 == stack[-1] label_004C: // Incoming jump from 0x004B, if not 0xa23154f8 == stack[-1] // Inputs[1] { @004C stack[-1] } 004C 80 DUP1 004D 63 PUSH4 0xb99f6e6c 0052 14 EQ 0053 61 PUSH2 0x017d 0056 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x017d, if 0xb99f6e6c == stack[-1] label_0057: // Incoming jump from 0x0056, if not 0xb99f6e6c == stack[-1] // Inputs[1] { @0057 stack[-1] } 0057 80 DUP1 0058 63 PUSH4 0xc3375ca5 005D 14 EQ 005E 61 PUSH2 0x0190 0061 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0190, if 0xc3375ca5 == stack[-1] label_0062: // Incoming jump from 0x0061, if not 0xc3375ca5 == stack[-1] // Inputs[1] { @0062 stack[-1] } 0062 80 DUP1 0063 63 PUSH4 0xf2fde38b 0068 14 EQ 0069 61 PUSH2 0x01a3 006C 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x01a3, if 0xf2fde38b == stack[-1] label_006D: // Incoming jump from 0x006C, if not 0xf2fde38b == stack[-1] // Inputs[1] { @0070 memory[0x00:0x00] } 006D 60 PUSH1 0x00 006F 80 DUP1 0070 FD *REVERT // Stack delta = +0 // Outputs[1] { @0070 revert(memory[0x00:0x00]); } // Block terminates label_0071: // Incoming jump from 0x002A, if 0x8da5cb5b > msg.data[0x00:0x20] >> 0xe0 // Inputs[1] { @0072 stack[-1] } 0071 5B JUMPDEST 0072 80 DUP1 0073 63 PUSH4 0x0ad7bb6c 0078 14 EQ 0079 61 PUSH2 0x00b9 007C 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x00b9, if 0x0ad7bb6c == stack[-1] label_007D: // Incoming jump from 0x007C, if not 0x0ad7bb6c == stack[-1] // Inputs[1] { @007D stack[-1] } 007D 80 DUP1 007E 63 PUSH4 0x1aab9a9f 0083 14 EQ 0084 61 PUSH2 0x00df 0087 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x00df, if 0x1aab9a9f == stack[-1] label_0088: // Incoming jump from 0x0087, if not 0x1aab9a9f == stack[-1] // Inputs[1] { @0088 stack[-1] } 0088 80 DUP1 0089 63 PUSH4 0x1fc93aa6 008E 14 EQ 008F 61 PUSH2 0x00e8 0092 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x00e8, if 0x1fc93aa6 == stack[-1] label_0093: // Incoming jump from 0x0092, if not 0x1fc93aa6 == stack[-1] // Inputs[1] { @0093 stack[-1] } 0093 80 DUP1 0094 63 PUSH4 0x2a11ced0 0099 14 EQ 009A 61 PUSH2 0x00f1 009D 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x00f1, if 0x2a11ced0 == stack[-1] label_009E: // Incoming jump from 0x009D, if not 0x2a11ced0 == stack[-1] // Inputs[1] { @009E stack[-1] } 009E 80 DUP1 009F 63 PUSH4 0x6198e339 00A4 14 EQ 00A5 61 PUSH2 0x011c 00A8 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x011c, if 0x6198e339 == stack[-1] label_00A9: // Incoming jump from 0x00A8, if not 0x6198e339 == stack[-1] // Inputs[1] { @00A9 stack[-1] } 00A9 80 DUP1 00AA 63 PUSH4 0x6b8357ac 00AF 14 EQ 00B0 61 PUSH2 0x0131 00B3 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0131, if 0x6b8357ac == stack[-1] label_00B4: // Incoming jump from 0x0019, if msg.data.length < 0x04 // Incoming jump from 0x00B3, if not 0x6b8357ac == stack[-1] // Inputs[1] { @00B8 memory[0x00:0x00] } 00B4 5B JUMPDEST 00B5 60 PUSH1 0x00 00B7 80 DUP1 00B8 FD *REVERT // Stack delta = +0 // Outputs[1] { @00B8 revert(memory[0x00:0x00]); } // Block terminates label_00B9: // Incoming jump from 0x007C, if 0x0ad7bb6c == stack[-1] // Inputs[1] { @00C0 msg.data.length } 00B9 5B JUMPDEST 00BA 61 PUSH2 0x00cc 00BD 61 PUSH2 0x00c7 00C0 36 CALLDATASIZE 00C1 60 PUSH1 0x04 00C3 61 PUSH2 0x0d4e 00C6 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @00BA stack[0] = 0x00cc // @00BD stack[1] = 0x00c7 // @00C0 stack[2] = msg.data.length // @00C1 stack[3] = 0x04 // } // Block ends with call to 0x0d4e, returns to 0x00C7 label_00C7: // Incoming return from call to 0x0D4E at 0x00C6 00C7 5B JUMPDEST 00C8 61 PUSH2 0x01b6 00CB 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x01b6 label_00CC: // Incoming jump from 0x00E7 // Incoming return from call to 0x00C7 at 0x00C6 // Incoming jump from 0x00F0 // Inputs[4] // { // @00CF memory[0x40:0x60] // @00D0 stack[-1] // @00D9 memory[0x40:0x60] // @00DE memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x20 + memory[0x40:0x60]) - memory[0x40:0x60]] // } 00CC 5B JUMPDEST 00CD 60 PUSH1 0x40 00CF 51 MLOAD 00D0 90 SWAP1 00D1 81 DUP2 00D2 52 MSTORE 00D3 60 PUSH1 0x20 00D5 01 ADD 00D6 5B JUMPDEST 00D7 60 PUSH1 0x40 00D9 51 MLOAD 00DA 80 DUP1 00DB 91 SWAP2 00DC 03 SUB 00DD 90 SWAP1 00DE F3 *RETURN // Stack delta = -1 // Outputs[2] // { // @00D2 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] // @00DE return memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x20 + memory[0x40:0x60]) - memory[0x40:0x60]]; // } // Block terminates label_00DF: // Incoming jump from 0x0087, if 0x1aab9a9f == stack[-1] // Inputs[1] { @00E5 storage[0x03] } 00DF 5B JUMPDEST 00E0 61 PUSH2 0x00cc 00E3 60 PUSH1 0x03 00E5 54 SLOAD 00E6 81 DUP2 00E7 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @00E0 stack[0] = 0x00cc // @00E5 stack[1] = storage[0x03] // } // Block ends with unconditional jump to 0x00cc label_00E8: // Incoming jump from 0x0092, if 0x1fc93aa6 == stack[-1] // Inputs[1] { @00EE storage[0x02] } 00E8 5B JUMPDEST 00E9 61 PUSH2 0x00cc 00EC 60 PUSH1 0x02 00EE 54 SLOAD 00EF 81 DUP2 00F0 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @00E9 stack[0] = 0x00cc // @00EE stack[1] = storage[0x02] // } // Block ends with unconditional jump to 0x00cc label_00F1: // Incoming jump from 0x009D, if 0x2a11ced0 == stack[-1] // Inputs[1] { @00F8 msg.data.length } 00F1 5B JUMPDEST 00F2 61 PUSH2 0x0104 00F5 61 PUSH2 0x00ff 00F8 36 CALLDATASIZE 00F9 60 PUSH1 0x04 00FB 61 PUSH2 0x0d4e 00FE 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @00F2 stack[0] = 0x0104 // @00F5 stack[1] = 0x00ff // @00F8 stack[2] = msg.data.length // @00F9 stack[3] = 0x04 // } // Block ends with call to 0x0d4e, returns to 0x00FF label_00FF: // Incoming return from call to 0x0D4E at 0x00FE 00FF 5B JUMPDEST 0100 61 PUSH2 0x0274 0103 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0274 label_0104: // Incoming jump from 0x0156 // Incoming return from call to 0x00FF at 0x00FE // Inputs[2] // { // @0107 memory[0x40:0x60] // @0111 stack[-1] // } 0104 5B JUMPDEST 0105 60 PUSH1 0x40 0107 51 MLOAD 0108 60 PUSH1 0x01 010A 60 PUSH1 0x01 010C 60 PUSH1 0xa0 010E 1B SHL 010F 03 SUB 0110 90 SWAP1 0111 91 SWAP2 0112 16 AND 0113 81 DUP2 0114 52 MSTORE 0115 60 PUSH1 0x20 0117 01 ADD 0118 61 PUSH2 0x00d6 011B 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @0114 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] & (0x01 << 0xa0) - 0x01 // @0117 stack[-1] = 0x20 + memory[0x40:0x60] // } // Block ends with unconditional jump to 0x00d6 label_011C: // Incoming jump from 0x00A8, if 0x6198e339 == stack[-1] // Inputs[1] { @0123 msg.data.length } 011C 5B JUMPDEST 011D 61 PUSH2 0x012f 0120 61 PUSH2 0x012a 0123 36 CALLDATASIZE 0124 60 PUSH1 0x04 0126 61 PUSH2 0x0d4e 0129 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @011D stack[0] = 0x012f // @0120 stack[1] = 0x012a // @0123 stack[2] = msg.data.length // @0124 stack[3] = 0x04 // } // Block ends with call to 0x0d4e, returns to 0x012A label_012A: // Incoming return from call to 0x0D4E at 0x0129 // Incoming return from call to 0x1131 at 0x0519 012A 5B JUMPDEST 012B 61 PUSH2 0x029e 012E 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x029e label_012F: // Incoming return from call to 0x013F at 0x013E // Incoming return from call to 0x012A at 0x0129 // Incoming return from call to 0x0165 at 0x0164 // Incoming return from call to 0x018B at 0x018A // Incoming return from call to 0x0178 at 0x0177 // Incoming return from call to 0x01B1 at 0x01B0 // Incoming return from call to 0x019E at 0x019D 012F 5B JUMPDEST 0130 00 *STOP // Stack delta = +0 // Outputs[1] { @0130 stop(); } // Block terminates label_0131: // Incoming jump from 0x00B3, if 0x6b8357ac == stack[-1] // Inputs[1] { @0138 msg.data.length } 0131 5B JUMPDEST 0132 61 PUSH2 0x012f 0135 61 PUSH2 0x013f 0138 36 CALLDATASIZE 0139 60 PUSH1 0x04 013B 61 PUSH2 0x0d83 013E 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0132 stack[0] = 0x012f // @0135 stack[1] = 0x013f // @0138 stack[2] = msg.data.length // @0139 stack[3] = 0x04 // } // Block ends with call to 0x0d83, returns to 0x013F label_013F: // Incoming return from call to 0x0D83 at 0x013E 013F 5B JUMPDEST 0140 61 PUSH2 0x0378 0143 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0378 label_0144: // Incoming jump from 0x0035, if 0x8da5cb5b == stack[-1] // Inputs[1] { @0147 storage[0x00] } 0144 5B JUMPDEST 0145 60 PUSH1 0x00 0147 54 SLOAD 0148 61 PUSH2 0x0104 014B 90 SWAP1 014C 60 PUSH1 0x01 014E 60 PUSH1 0x01 0150 60 PUSH1 0xa0 0152 1B SHL 0153 03 SUB 0154 16 AND 0155 81 DUP2 0156 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @014B stack[0] = 0x0104 // @0154 stack[1] = (0x01 << 0xa0) - 0x01 & storage[0x00] // } // Block ends with unconditional jump to 0x0104 label_0157: // Incoming jump from 0x0040, if 0x9251f020 == stack[-1] // Inputs[1] { @015E msg.data.length } 0157 5B JUMPDEST 0158 61 PUSH2 0x012f 015B 61 PUSH2 0x0165 015E 36 CALLDATASIZE 015F 60 PUSH1 0x04 0161 61 PUSH2 0x0e64 0164 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0158 stack[0] = 0x012f // @015B stack[1] = 0x0165 // @015E stack[2] = msg.data.length // @015F stack[3] = 0x04 // } // Block ends with call to 0x0e64, returns to 0x0165 label_0165: // Incoming return from call to 0x0E64 at 0x0164 0165 5B JUMPDEST 0166 61 PUSH2 0x0591 0169 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0591 label_016A: // Incoming jump from 0x004B, if 0xa23154f8 == stack[-1] // Inputs[1] { @0171 msg.data.length } 016A 5B JUMPDEST 016B 61 PUSH2 0x012f 016E 61 PUSH2 0x0178 0171 36 CALLDATASIZE 0172 60 PUSH1 0x04 0174 61 PUSH2 0x0f07 0177 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @016B stack[0] = 0x012f // @016E stack[1] = 0x0178 // @0171 stack[2] = msg.data.length // @0172 stack[3] = 0x04 // } // Block ends with call to 0x0f07, returns to 0x0178 label_0178: // Incoming return from call to 0x0F07 at 0x0177 0178 5B JUMPDEST 0179 61 PUSH2 0x05cb 017C 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x05cb label_017D: // Incoming jump from 0x0056, if 0xb99f6e6c == stack[-1] // Inputs[1] { @0184 msg.data.length } 017D 5B JUMPDEST 017E 61 PUSH2 0x012f 0181 61 PUSH2 0x018b 0184 36 CALLDATASIZE 0185 60 PUSH1 0x04 0187 61 PUSH2 0x101d 018A 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @017E stack[0] = 0x012f // @0181 stack[1] = 0x018b // @0184 stack[2] = msg.data.length // @0185 stack[3] = 0x04 // } // Block ends with call to 0x101d, returns to 0x018B label_018B: // Incoming return from call to 0x101D at 0x018A 018B 5B JUMPDEST 018C 61 PUSH2 0x067a 018F 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x067a label_0190: // Incoming jump from 0x0061, if 0xc3375ca5 == stack[-1] // Inputs[1] { @0197 msg.data.length } 0190 5B JUMPDEST 0191 61 PUSH2 0x012f 0194 61 PUSH2 0x019e 0197 36 CALLDATASIZE 0198 60 PUSH1 0x04 019A 61 PUSH2 0x106b 019D 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0191 stack[0] = 0x012f // @0194 stack[1] = 0x019e // @0197 stack[2] = msg.data.length // @0198 stack[3] = 0x04 // } // Block ends with call to 0x106b, returns to 0x019E label_019E: // Incoming return from call to 0x106B at 0x019D 019E 5B JUMPDEST 019F 61 PUSH2 0x070e 01A2 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x070e label_01A3: // Incoming jump from 0x006C, if 0xf2fde38b == stack[-1] // Inputs[1] { @01AA msg.data.length } 01A3 5B JUMPDEST 01A4 61 PUSH2 0x012f 01A7 61 PUSH2 0x01b1 01AA 36 CALLDATASIZE 01AB 60 PUSH1 0x04 01AD 61 PUSH2 0x108d 01B0 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @01A4 stack[0] = 0x012f // @01A7 stack[1] = 0x01b1 // @01AA stack[2] = msg.data.length // @01AB stack[3] = 0x04 // } // Block ends with call to 0x108d, returns to 0x01B1 label_01B1: // Incoming return from call to 0x108D at 0x01B0 01B1 5B JUMPDEST 01B2 61 PUSH2 0x0a21 01B5 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0a21 label_01B6: // Incoming jump from 0x00CB // Incoming call from 0x02F7, returns to 0x02F8 // Inputs[2] // { // @01EA stack[-1] // @01EC storage[0x01] // } 01B6 5B JUMPDEST 01B7 60 PUSH1 0x00 01B9 7F PUSH32 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce 01DA 60 PUSH1 0x01 01DC 60 PUSH1 0x01 01DE 60 PUSH1 0xa0 01E0 1B SHL 01E1 03 SUB 01E2 16 AND 01E3 63 PUSH4 0x9ae697bf 01E8 60 PUSH1 0x01 01EA 84 DUP5 01EB 81 DUP2 01EC 54 SLOAD 01ED 81 DUP2 01EE 10 LT 01EF 61 PUSH2 0x01fa 01F2 57 *JUMPI // Stack delta = +5 // Outputs[5] // { // @01B7 stack[0] = 0x00 // @01E2 stack[1] = (0x01 << 0xa0) - 0x01 & 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce // @01E3 stack[2] = 0x9ae697bf // @01E8 stack[3] = 0x01 // @01EA stack[4] = stack[-1] // } // Block ends with conditional jump to 0x01fa, if stack[-1] < storage[0x01] label_01F3: // Incoming jump from 0x01F2, if not stack[-1] < storage[0x01] 01F3 61 PUSH2 0x01fa 01F6 61 PUSH2 0x10af 01F9 56 *JUMP // Stack delta = +1 // Outputs[1] { @01F3 stack[0] = 0x01fa } // Block ends with unconditional jump to 0x10af label_01FA: // Incoming jump from 0x01F2, if stack[-1] < storage[0x01] // Inputs[11] // { // @01FD stack[-2] // @0202 stack[-1] // @0204 memory[0x00:0x20] // @0206 storage[keccak256(memory[0x00:0x20]) + stack[-1]] // @0209 memory[0x40:0x60] // @020C stack[-3] // @0232 memory[0x40:0x60] // @0237 stack[-4] // @0238 msg.gas // @0239 memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]] // @0239 address(stack[-4]).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // } 01FA 5B JUMPDEST 01FB 60 PUSH1 0x00 01FD 91 SWAP2 01FE 82 DUP3 01FF 52 MSTORE 0200 60 PUSH1 0x20 0202 90 SWAP1 0203 91 SWAP2 0204 20 SHA3 0205 01 ADD 0206 54 SLOAD 0207 60 PUSH1 0x40 0209 51 MLOAD 020A 60 PUSH1 0xe0 020C 83 DUP4 020D 90 SWAP1 020E 1B SHL 020F 60 PUSH1 0x01 0211 60 PUSH1 0x01 0213 60 PUSH1 0xe0 0215 1B SHL 0216 03 SUB 0217 19 NOT 0218 16 AND 0219 81 DUP2 021A 52 MSTORE 021B 60 PUSH1 0x01 021D 60 PUSH1 0x01 021F 60 PUSH1 0xa0 0221 1B SHL 0222 03 SUB 0223 90 SWAP1 0224 91 SWAP2 0225 16 AND 0226 60 PUSH1 0x04 0228 82 DUP3 0229 01 ADD 022A 52 MSTORE 022B 60 PUSH1 0x24 022D 01 ADD 022E 60 PUSH1 0x20 0230 60 PUSH1 0x40 0232 51 MLOAD 0233 80 DUP1 0234 83 DUP4 0235 03 SUB 0236 81 DUP2 0237 86 DUP7 0238 5A GAS 0239 FA STATICCALL 023A 15 ISZERO 023B 80 DUP1 023C 15 ISZERO 023D 61 PUSH2 0x024a 0240 57 *JUMPI // Stack delta = +0 // Outputs[6] // { // @01FF memory[0x00:0x20] = stack[-2] // @021A memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = ~((0x01 << 0xe0) - 0x01) & (stack[-3] << 0xe0) // @022A memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = storage[keccak256(memory[0x00:0x20]) + stack[-1]] & (0x01 << 0xa0) - 0x01 // @022D stack[-2] = 0x24 + memory[0x40:0x60] // @0239 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = address(stack[-4]).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @023A stack[-1] = !address(stack[-4]).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // } // Block ends with conditional jump to 0x024a, if !!address(stack[-4]).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) label_0241: // Incoming jump from 0x0240, if not !!address(stack[-4]).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[4] // { // @0241 returndata.length // @0245 returndata[0x00:0x00 + returndata.length] // @0246 returndata.length // @0249 memory[0x00:0x00 + returndata.length] // } 0241 3D RETURNDATASIZE 0242 60 PUSH1 0x00 0244 80 DUP1 0245 3E RETURNDATACOPY 0246 3D RETURNDATASIZE 0247 60 PUSH1 0x00 0249 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0245 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0249 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_024A: // Incoming jump from 0x0240, if !!address(stack[-4]).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[2] // { // @0251 memory[0x40:0x60] // @0252 returndata.length // } 024A 5B JUMPDEST 024B 50 POP 024C 50 POP 024D 50 POP 024E 50 POP 024F 60 PUSH1 0x40 0251 51 MLOAD 0252 3D RETURNDATASIZE 0253 60 PUSH1 0x1f 0255 19 NOT 0256 60 PUSH1 0x1f 0258 82 DUP3 0259 01 ADD 025A 16 AND 025B 82 DUP3 025C 01 ADD 025D 80 DUP1 025E 60 PUSH1 0x40 0260 52 MSTORE 0261 50 POP 0262 81 DUP2 0263 01 ADD 0264 90 SWAP1 0265 61 PUSH2 0x026e 0268 91 SWAP2 0269 90 SWAP1 026A 61 PUSH2 0x10c5 026D 56 *JUMP // Stack delta = -1 // Outputs[4] // { // @0260 memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x1f & ~0x1f) // @0268 stack[-4] = 0x026e // @0269 stack[-2] = memory[0x40:0x60] // @0269 stack[-3] = memory[0x40:0x60] + returndata.length // } // Block ends with call to 0x10c5, returns to 0x026E label_026E: // Incoming return from call to 0x10C5 at 0x026D // Incoming jump from 0x113C, if !(stack[-1] - stack[-2] > stack[-1]) // Incoming jump from 0x114F, if !(stack[-1] > stack[-2] + stack[-1]) // Inputs[3] // { // @026F stack[-4] // @026F stack[-1] // @0270 stack[-3] // } 026E 5B JUMPDEST 026F 92 SWAP3 0270 91 SWAP2 0271 50 POP 0272 50 POP 0273 56 *JUMP // Stack delta = -3 // Outputs[1] { @026F stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0274: // Incoming jump from 0x0103 // Inputs[2] // { // @0277 stack[-1] // @0279 storage[0x01] // } 0274 5B JUMPDEST 0275 60 PUSH1 0x01 0277 81 DUP2 0278 81 DUP2 0279 54 SLOAD 027A 81 DUP2 027B 10 LT 027C 61 PUSH2 0x0284 027F 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0275 stack[0] = 0x01 // @0277 stack[1] = stack[-1] // } // Block ends with conditional jump to 0x0284, if stack[-1] < storage[0x01] label_0280: // Incoming jump from 0x027F, if not stack[-1] < storage[0x01] // Inputs[1] { @0283 memory[0x00:0x00] } 0280 60 PUSH1 0x00 0282 80 DUP1 0283 FD *REVERT // Stack delta = +0 // Outputs[1] { @0283 revert(memory[0x00:0x00]); } // Block terminates label_0284: // Incoming jump from 0x027F, if stack[-1] < storage[0x01] // Inputs[6] // { // @0287 stack[-2] // @028C stack[-1] // @028E memory[0x00:0x20] // @0290 storage[keccak256(memory[0x00:0x20]) + stack[-1]] // @029A stack[-3] // @029C stack[-4] // } 0284 5B JUMPDEST 0285 60 PUSH1 0x00 0287 91 SWAP2 0288 82 DUP3 0289 52 MSTORE 028A 60 PUSH1 0x20 028C 90 SWAP1 028D 91 SWAP2 028E 20 SHA3 028F 01 ADD 0290 54 SLOAD 0291 60 PUSH1 0x01 0293 60 PUSH1 0x01 0295 60 PUSH1 0xa0 0297 1B SHL 0298 03 SUB 0299 16 AND 029A 90 SWAP1 029B 50 POP 029C 81 DUP2 029D 56 *JUMP // Stack delta = -2 // Outputs[2] // { // @0289 memory[0x00:0x20] = stack[-2] // @029A stack[-3] = (0x01 << 0xa0) - 0x01 & storage[keccak256(memory[0x00:0x20]) + stack[-1]] // } // Block ends with unconditional jump to stack[-4] label_029E: // Incoming jump from 0x012E // Inputs[2] // { // @02A1 storage[0x00] // @02AB msg.sender // } 029E 5B JUMPDEST 029F 60 PUSH1 0x00 02A1 54 SLOAD 02A2 60 PUSH1 0x01 02A4 60 PUSH1 0x01 02A6 60 PUSH1 0xa0 02A8 1B SHL 02A9 03 SUB 02AA 16 AND 02AB 33 CALLER 02AC 14 EQ 02AD 61 PUSH2 0x02d1 02B0 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x02d1, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_02B1: // Incoming jump from 0x02B0, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @02B3 memory[0x40:0x60] } 02B1 60 PUSH1 0x40 02B3 51 MLOAD 02B4 62 PUSH3 0x461bcd 02B8 60 PUSH1 0xe5 02BA 1B SHL 02BB 81 DUP2 02BC 52 MSTORE 02BD 60 PUSH1 0x04 02BF 01 ADD 02C0 61 PUSH2 0x02c8 02C3 90 SWAP1 02C4 61 PUSH2 0x10de 02C7 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @02BC memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @02C3 stack[0] = 0x02c8 // @02C3 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_02C8: // Incoming return from call to 0x10DE at 0x05F4 // Incoming jump from 0x0AAF // Incoming return from call to 0x10DE at 0x0737 // Incoming return from call to 0x10DE at 0x02C7 // Incoming return from call to 0x10DE at 0x06A3 // Incoming return from call to 0x10DE at 0x0A4A // Incoming return from call to 0x10DE at 0x03A1 // Incoming jump from 0x0458 // Incoming return from call to 0x10DE at 0x05BA // Inputs[3] // { // @02CB memory[0x40:0x60] // @02CD stack[-1] // @02D0 memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 02C8 5B JUMPDEST 02C9 60 PUSH1 0x40 02CB 51 MLOAD 02CC 80 DUP1 02CD 91 SWAP2 02CE 03 SUB 02CF 90 SWAP1 02D0 FD *REVERT // Stack delta = -1 // Outputs[1] { @02D0 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]); } // Block terminates label_02D1: // Incoming jump from 0x02B0, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @02D2 stack[-1] } 02D1 5B JUMPDEST 02D2 80 DUP1 02D3 5B JUMPDEST 02D4 60 PUSH1 0x00 02D6 81 DUP2 02D7 11 GT 02D8 80 DUP1 02D9 15 ISZERO 02DA 61 PUSH2 0x02e6 02DD 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @02D2 stack[0] = stack[-1] // @02D7 stack[1] = stack[-1] > 0x00 // } // Block ends with conditional jump to 0x02e6, if !(stack[-1] > 0x00) label_02DE: // Incoming jump from 0x02DD, if not !(stack[-1] > 0x00) // Incoming jump from 0x02DD, if not !(stack[-1] > 0x00) // Inputs[2] // { // @02E1 storage[0x03] // @02E4 storage[0x02] // } 02DE 50 POP 02DF 60 PUSH1 0x03 02E1 54 SLOAD 02E2 60 PUSH1 0x02 02E4 54 SLOAD 02E5 10 LT 02E6 5B JUMPDEST 02E7 15 ISZERO 02E8 61 PUSH2 0x0374 02EB 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x0374, if !(storage[0x02] < storage[0x03]) label_02EC: // Incoming jump from 0x02EB, if not !stack[-1] // Incoming jump from 0x02EB, if not !(storage[0x02] < storage[0x03]) // Inputs[1] { @02F3 storage[0x02] } 02EC 60 PUSH1 0x00 02EE 61 PUSH2 0x02f8 02F1 60 PUSH1 0x02 02F3 54 SLOAD 02F4 61 PUSH2 0x01b6 02F7 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @02EC stack[0] = 0x00 // @02EE stack[1] = 0x02f8 // @02F3 stack[2] = storage[0x02] // } // Block ends with call to 0x01b6, returns to 0x02F8 label_02F8: // Incoming return from call to 0x01B6 at 0x02F7 // Inputs[2] // { // @02F9 stack[-2] // @02F9 stack[-1] // } 02F8 5B JUMPDEST 02F9 90 SWAP1 02FA 50 POP 02FB 80 DUP1 02FC 60 PUSH1 0x00 02FE 03 SUB 02FF 61 PUSH2 0x031c 0302 57 *JUMPI // Stack delta = -1 // Outputs[1] { @02F9 stack[-2] = stack[-1] } // Block ends with conditional jump to 0x031c, if 0x00 - stack[-1] label_0303: // Incoming jump from 0x0302, if not 0x00 - stack[-1] // Inputs[1] { @0308 storage[0x02] } 0303 60 PUSH1 0x02 0305 60 PUSH1 0x00 0307 81 DUP2 0308 54 SLOAD 0309 61 PUSH2 0x0311 030C 90 SWAP1 030D 61 PUSH2 0x1118 0310 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0303 stack[0] = 0x02 // @0305 stack[1] = 0x00 // @030C stack[2] = 0x0311 // @030C stack[3] = storage[0x02] // } // Block ends with call to 0x1118, returns to 0x0311 label_0311: // Incoming return from call to 0x1118 at 0x0310 // Inputs[4] // { // @0312 stack[-1] // @0312 stack[-2] // @0313 stack[-3] // @0319 stack[-4] // } 0311 5B JUMPDEST 0312 90 SWAP1 0313 91 SWAP2 0314 55 SSTORE 0315 50 POP 0316 61 PUSH2 0x02d3 0319 90 SWAP1 031A 50 POP 031B 56 *JUMP // Stack delta = -4 // Outputs[1] { @0314 storage[stack[-3]] = stack[-1] } // Block ends with unconditional jump to 0x02d3 label_031C: // Incoming jump from 0x0302, if 0x00 - stack[-1] // Inputs[2] // { // @031D stack[-1] // @031E stack[-2] // } 031C 5B JUMPDEST 031D 80 DUP1 031E 82 DUP3 031F 10 LT 0320 61 PUSH2 0x035d 0323 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x035d, if stack[-2] < stack[-1] label_0324: // Incoming jump from 0x0323, if not stack[-2] < stack[-1] // Inputs[2] // { // @0326 storage[0x02] // @0327 stack[-1] // } 0324 60 PUSH1 0x02 0326 54 SLOAD 0327 81 DUP2 0328 90 SWAP1 0329 61 PUSH2 0x0332 032C 90 SWAP1 032D 82 DUP3 032E 61 PUSH2 0x0afb 0331 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0328 stack[0] = stack[-1] // @032C stack[1] = 0x0332 // @032C stack[2] = storage[0x02] // @032D stack[3] = stack[-1] // } // Block ends with call to 0x0afb, returns to 0x0332 label_0332: // Incoming return from call to 0x0AFB at 0x0331 // Inputs[2] // { // @0336 stack[-1] // @0337 stack[-3] // } 0332 5B JUMPDEST 0333 61 PUSH2 0x033c 0336 81 DUP2 0337 84 DUP5 0338 61 PUSH2 0x1131 033B 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0333 stack[0] = 0x033c // @0336 stack[1] = stack[-1] // @0337 stack[2] = stack[-3] // } // Block ends with call to 0x1131, returns to 0x033C label_033C: // Incoming return from call to 0x1131 at 0x033B // Inputs[3] // { // @033D stack[-4] // @033D stack[-1] // @0347 storage[0x02] // } 033C 5B JUMPDEST 033D 92 SWAP3 033E 50 POP 033F 60 PUSH1 0x01 0341 60 PUSH1 0x02 0343 60 PUSH1 0x00 0345 82 DUP3 0346 82 DUP3 0347 54 SLOAD 0348 61 PUSH2 0x0351 034B 91 SWAP2 034C 90 SWAP1 034D 61 PUSH2 0x1144 0350 56 *JUMP // Stack delta = +5 // Outputs[7] // { // @033D stack[-4] = stack[-1] // @033F stack[-1] = 0x01 // @0341 stack[0] = 0x02 // @0343 stack[1] = 0x00 // @034B stack[2] = 0x0351 // @034C stack[4] = storage[0x02] // @034C stack[3] = 0x01 // } // Block ends with call to 0x1144, returns to 0x0351 label_0351: // Incoming return from call to 0x1144 at 0x0350 // Inputs[4] // { // @0352 stack[-2] // @0352 stack[-1] // @0353 stack[-3] // @0359 stack[-5] // } 0351 5B JUMPDEST 0352 90 SWAP1 0353 91 SWAP2 0354 55 SSTORE 0355 50 POP 0356 61 PUSH2 0x036e 0359 91 SWAP2 035A 50 POP 035B 50 POP 035C 56 *JUMP // Stack delta = -5 // Outputs[1] { @0354 storage[stack[-3]] = stack[-1] } // Block ends with unconditional jump to 0x036e label_035D: // Incoming jump from 0x0323, if stack[-2] < stack[-1] // Inputs[2] // { // @0360 storage[0x02] // @0361 stack[-2] // } 035D 5B JUMPDEST 035E 60 PUSH1 0x02 0360 54 SLOAD 0361 82 DUP3 0362 90 SWAP1 0363 61 PUSH2 0x036c 0366 90 SWAP1 0367 82 DUP3 0368 61 PUSH2 0x0afb 036B 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0362 stack[0] = stack[-2] // @0366 stack[1] = 0x036c // @0366 stack[2] = storage[0x02] // @0367 stack[3] = stack[-2] // } // Block ends with call to 0x0afb, returns to 0x036C label_036C: // Incoming return from call to 0x0AFB at 0x036B 036C 5B JUMPDEST 036D 50 POP 036E 5B JUMPDEST 036F 50 POP 0370 61 PUSH2 0x02d3 0373 56 *JUMP // Stack delta = -2 // Block ends with unconditional jump to 0x02d3 label_0374: // Incoming jump from 0x02EB, if !stack[-1] // Incoming jump from 0x02EB, if !(storage[0x02] < storage[0x03]) // Incoming jump from 0x0498, if ((0x01 << 0xa0) - 0x01 & stack[-2]) - ((0x01 << 0xa0) - 0x01 & 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c) // Inputs[1] { @0377 stack[-3] } 0374 5B JUMPDEST 0375 50 POP 0376 50 POP 0377 56 *JUMP // Stack delta = -3 // Block ends with unconditional jump to stack[-3] label_0378: // Incoming jump from 0x0143 // Inputs[2] // { // @037B storage[0x00] // @0385 msg.sender // } 0378 5B JUMPDEST 0379 60 PUSH1 0x00 037B 54 SLOAD 037C 60 PUSH1 0x01 037E 60 PUSH1 0x01 0380 60 PUSH1 0xa0 0382 1B SHL 0383 03 SUB 0384 16 AND 0385 33 CALLER 0386 14 EQ 0387 61 PUSH2 0x03a2 038A 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x03a2, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_038B: // Incoming jump from 0x038A, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @038D memory[0x40:0x60] } 038B 60 PUSH1 0x40 038D 51 MLOAD 038E 62 PUSH3 0x461bcd 0392 60 PUSH1 0xe5 0394 1B SHL 0395 81 DUP2 0396 52 MSTORE 0397 60 PUSH1 0x04 0399 01 ADD 039A 61 PUSH2 0x02c8 039D 90 SWAP1 039E 61 PUSH2 0x10de 03A1 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0396 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @039D stack[0] = 0x02c8 // @039D stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_03A2: // Incoming jump from 0x038A, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @03AB stack[-2] } 03A2 5B JUMPDEST 03A3 60 PUSH1 0x01 03A5 60 PUSH1 0x01 03A7 60 PUSH1 0xa0 03A9 1B SHL 03AA 03 SUB 03AB 82 DUP3 03AC 16 AND 03AD 61 PUSH2 0x045f 03B0 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x045f, if stack[-2] & (0x01 << 0xa0) - 0x01 label_03B1: // Incoming jump from 0x03B0, if not stack[-2] & (0x01 << 0xa0) - 0x01 // Inputs[4] // { // @03B4 storage[0x00] // @03B5 address(this) // @03B5 address(this).balance // @03C1 stack[-1] // } 03B1 60 PUSH1 0x00 03B3 80 DUP1 03B4 54 SLOAD 03B5 47 SELFBALANCE 03B6 91 SWAP2 03B7 90 SWAP1 03B8 60 PUSH1 0x01 03BA 60 PUSH1 0x01 03BC 60 PUSH1 0xa0 03BE 1B SHL 03BF 03 SUB 03C0 16 AND 03C1 83 DUP4 03C2 83 DUP4 03C3 10 LT 03C4 61 PUSH2 0x03cd 03C7 57 *JUMPI // Stack delta = +3 // Outputs[3] // { // @03B6 stack[0] = address(this).balance // @03B7 stack[1] = 0x00 // @03C0 stack[2] = (0x01 << 0xa0) - 0x01 & storage[0x00] // } // Block ends with conditional jump to 0x03cd, if address(this).balance < stack[-1] label_03C8: // Incoming jump from 0x03C7, if not address(this).balance < stack[-1] // Inputs[1] { @03C8 stack[-4] } 03C8 83 DUP4 03C9 61 PUSH2 0x03cf 03CC 56 *JUMP // Stack delta = +1 // Outputs[1] { @03C8 stack[0] = stack[-4] } // Block ends with unconditional jump to 0x03cf label_03CD: // Incoming jump from 0x03C7, if address(this).balance < stack[-1] // Inputs[7] // { // @03CE stack[-3] // @03D2 memory[0x40:0x60] // @03D9 stack[-1] // @03DA msg.gas // @03DB address(stack[-1]).call.gas(msg.gas).value(stack[-3])(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00]) // @03DB memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00] // @03E0 returndata.length // } 03CD 5B JUMPDEST 03CE 82 DUP3 03CF 5B JUMPDEST 03D0 60 PUSH1 0x40 03D2 51 MLOAD 03D3 60 PUSH1 0x00 03D5 81 DUP2 03D6 81 DUP2 03D7 81 DUP2 03D8 85 DUP6 03D9 87 DUP8 03DA 5A GAS 03DB F1 CALL 03DC 92 SWAP3 03DD 50 POP 03DE 50 POP 03DF 50 POP 03E0 3D RETURNDATASIZE 03E1 80 DUP1 03E2 60 PUSH1 0x00 03E4 81 DUP2 03E5 14 EQ 03E6 61 PUSH2 0x040b 03E9 57 *JUMPI // Stack delta = +2 // Outputs[4] // { // @03DB memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00] = address(stack[-1]).call.gas(msg.gas).value(stack[-3])(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00]) // @03DC stack[-1] = address(stack[-1]).call.gas(msg.gas).value(stack[-3])(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00]) // @03E0 stack[0] = returndata.length // @03E1 stack[1] = returndata.length // } // Block ends with conditional jump to 0x040b, if returndata.length == 0x00 label_03EA: // Incoming jump from 0x03E9, if not returndata.length == 0x00 // Incoming jump from 0x03E9, if not returndata.length == 0x00 // Inputs[6] // { // @03EC memory[0x40:0x60] // @03ED stack[-2] // @03F4 returndata.length // @03FC returndata.length // @03FF returndata.length // @0406 returndata[0x00:0x00 + returndata.length] // } 03EA 60 PUSH1 0x40 03EC 51 MLOAD 03ED 91 SWAP2 03EE 50 POP 03EF 60 PUSH1 0x1f 03F1 19 NOT 03F2 60 PUSH1 0x3f 03F4 3D RETURNDATASIZE 03F5 01 ADD 03F6 16 AND 03F7 82 DUP3 03F8 01 ADD 03F9 60 PUSH1 0x40 03FB 52 MSTORE 03FC 3D RETURNDATASIZE 03FD 82 DUP3 03FE 52 MSTORE 03FF 3D RETURNDATASIZE 0400 60 PUSH1 0x00 0402 60 PUSH1 0x20 0404 84 DUP5 0405 01 ADD 0406 3E RETURNDATACOPY 0407 61 PUSH2 0x0410 040A 56 *JUMP // Stack delta = +0 // Outputs[4] // { // @03ED stack[-2] = memory[0x40:0x60] // @03FB memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x3f & ~0x1f) // @03FE memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = returndata.length // @0406 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + returndata.length] = returndata[0x00:0x00 + returndata.length] // } // Block ends with unconditional jump to 0x0410 label_040B: // Incoming jump from 0x03E9, if returndata.length == 0x00 // Incoming jump from 0x03E9, if returndata.length == 0x00 // Inputs[3] // { // @040E stack[-2] // @0413 stack[-3] // @0413 stack[-4] // } 040B 5B JUMPDEST 040C 60 PUSH1 0x60 040E 91 SWAP2 040F 50 POP 0410 5B JUMPDEST 0411 50 POP 0412 50 POP 0413 90 SWAP1 0414 50 POP 0415 80 DUP1 0416 61 PUSH2 0x0459 0419 57 *JUMPI // Stack delta = -3 // Outputs[1] { @0413 stack[-4] = stack[-3] } // Block ends with conditional jump to 0x0459, if stack[-3] label_041A: // Incoming jump from 0x0419, if not stack[-3] // Incoming jump from 0x0419, if not stack[-3] // Inputs[1] { @041C memory[0x40:0x60] } 041A 60 PUSH1 0x40 041C 51 MLOAD 041D 62 PUSH3 0x461bcd 0421 60 PUSH1 0xe5 0423 1B SHL 0424 81 DUP2 0425 52 MSTORE 0426 60 PUSH1 0x20 0428 60 PUSH1 0x04 042A 82 DUP3 042B 01 ADD 042C 52 MSTORE 042D 60 PUSH1 0x15 042F 60 PUSH1 0x24 0431 82 DUP3 0432 01 ADD 0433 52 MSTORE 0434 74 PUSH21 0x1d985b1d59481d1c985b9cd9995c8819985a5b1959 044A 60 PUSH1 0x5a 044C 1B SHL 044D 60 PUSH1 0x44 044F 82 DUP3 0450 01 ADD 0451 52 MSTORE 0452 60 PUSH1 0x64 0454 01 ADD 0455 61 PUSH2 0x02c8 0458 56 *JUMP // Stack delta = +1 // Outputs[5] // { // @0425 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @042C memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0433 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x15 // @0451 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x1d985b1d59481d1c985b9cd9995c8819985a5b1959 << 0x5a // @0454 stack[0] = 0x64 + memory[0x40:0x60] // } // Block ends with unconditional jump to 0x02c8 label_0459: // Incoming jump from 0x0419, if stack[-3] // Incoming jump from 0x0419, if stack[-3] // Incoming return from call to 0x1157 at 0x0590 // Inputs[1] { @045E stack[-5] } 0459 5B JUMPDEST 045A 50 POP 045B 50 POP 045C 50 POP 045D 50 POP 045E 56 *JUMP // Stack delta = -5 // Block ends with unconditional jump to stack[-5] label_045F: // Incoming jump from 0x03B0, if stack[-2] & (0x01 << 0xa0) - 0x01 // Inputs[1] { @048A stack[-2] } 045F 5B JUMPDEST 0460 7F PUSH32 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c 0481 60 PUSH1 0x01 0483 60 PUSH1 0x01 0485 60 PUSH1 0xa0 0487 1B SHL 0488 03 SUB 0489 16 AND 048A 82 DUP3 048B 60 PUSH1 0x01 048D 60 PUSH1 0x01 048F 60 PUSH1 0xa0 0491 1B SHL 0492 03 SUB 0493 16 AND 0494 03 SUB 0495 61 PUSH2 0x0374 0498 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0374, if ((0x01 << 0xa0) - 0x01 & stack[-2]) - ((0x01 << 0xa0) - 0x01 & 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c) label_0499: // Incoming jump from 0x0498, if not ((0x01 << 0xa0) - 0x01 & stack[-2]) - ((0x01 << 0xa0) - 0x01 & 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c) // Inputs[7] // { // @049B memory[0x40:0x60] // @04A6 address(this) // @04B7 stack[-2] // @04C7 memory[0x40:0x60] // @04CD msg.gas // @04CE address(stack[-2] & (0x01 << 0xa0) - 0x01).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @04CE memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]] // } 0499 60 PUSH1 0x40 049B 51 MLOAD 049C 63 PUSH4 0x70a08231 04A1 60 PUSH1 0xe0 04A3 1B SHL 04A4 81 DUP2 04A5 52 MSTORE 04A6 30 ADDRESS 04A7 60 PUSH1 0x04 04A9 82 DUP3 04AA 01 ADD 04AB 52 MSTORE 04AC 60 PUSH1 0x00 04AE 90 SWAP1 04AF 60 PUSH1 0x01 04B1 60 PUSH1 0x01 04B3 60 PUSH1 0xa0 04B5 1B SHL 04B6 03 SUB 04B7 84 DUP5 04B8 16 AND 04B9 90 SWAP1 04BA 63 PUSH4 0x70a08231 04BF 90 SWAP1 04C0 60 PUSH1 0x24 04C2 01 ADD 04C3 60 PUSH1 0x20 04C5 60 PUSH1 0x40 04C7 51 MLOAD 04C8 80 DUP1 04C9 83 DUP4 04CA 03 SUB 04CB 81 DUP2 04CC 86 DUP7 04CD 5A GAS 04CE FA STATICCALL 04CF 15 ISZERO 04D0 80 DUP1 04D1 15 ISZERO 04D2 61 PUSH2 0x04df 04D5 57 *JUMPI // Stack delta = +5 // Outputs[8] // { // @04A5 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x70a08231 << 0xe0 // @04AB memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = address(this) // @04AE stack[0] = 0x00 // @04B9 stack[1] = stack[-2] & (0x01 << 0xa0) - 0x01 // @04BF stack[2] = 0x70a08231 // @04C2 stack[3] = 0x24 + memory[0x40:0x60] // @04CE memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = address(stack[-2] & (0x01 << 0xa0) - 0x01).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @04CF stack[4] = !address(stack[-2] & (0x01 << 0xa0) - 0x01).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // } // Block ends with conditional jump to 0x04df, if !!address(stack[-2] & (0x01 << 0xa0) - 0x01).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) label_04D6: // Incoming jump from 0x04D5, if not !!address(stack[-2] & (0x01 << 0xa0) - 0x01).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[4] // { // @04D6 returndata.length // @04DA returndata[0x00:0x00 + returndata.length] // @04DB returndata.length // @04DE memory[0x00:0x00 + returndata.length] // } 04D6 3D RETURNDATASIZE 04D7 60 PUSH1 0x00 04D9 80 DUP1 04DA 3E RETURNDATACOPY 04DB 3D RETURNDATASIZE 04DC 60 PUSH1 0x00 04DE FD *REVERT // Stack delta = +0 // Outputs[2] // { // @04DA memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @04DE revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_04DF: // Incoming jump from 0x04D5, if !!address(stack[-2] & (0x01 << 0xa0) - 0x01).staticcall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x24 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[2] // { // @04E6 memory[0x40:0x60] // @04E7 returndata.length // } 04DF 5B JUMPDEST 04E0 50 POP 04E1 50 POP 04E2 50 POP 04E3 50 POP 04E4 60 PUSH1 0x40 04E6 51 MLOAD 04E7 3D RETURNDATASIZE 04E8 60 PUSH1 0x1f 04EA 19 NOT 04EB 60 PUSH1 0x1f 04ED 82 DUP3 04EE 01 ADD 04EF 16 AND 04F0 82 DUP3 04F1 01 ADD 04F2 80 DUP1 04F3 60 PUSH1 0x40 04F5 52 MSTORE 04F6 50 POP 04F7 81 DUP2 04F8 01 ADD 04F9 90 SWAP1 04FA 61 PUSH2 0x0503 04FD 91 SWAP2 04FE 90 SWAP1 04FF 61 PUSH2 0x10c5 0502 56 *JUMP // Stack delta = -1 // Outputs[4] // { // @04F5 memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x1f & ~0x1f) // @04FD stack[-4] = 0x0503 // @04FE stack[-2] = memory[0x40:0x60] // @04FE stack[-3] = memory[0x40:0x60] + returndata.length // } // Block ends with call to 0x10c5, returns to 0x0503 label_0503: // Incoming return from call to 0x10C5 at 0x0502 // Inputs[3] // { // @0504 stack[-1] // @0504 stack[-2] // @0507 stack[-3] // } 0503 5B JUMPDEST 0504 90 SWAP1 0505 50 POP 0506 80 DUP1 0507 82 DUP3 0508 11 GT 0509 15 ISZERO 050A 61 PUSH2 0x051a 050D 57 *JUMPI // Stack delta = -1 // Outputs[1] { @0504 stack[-2] = stack[-1] } // Block ends with conditional jump to 0x051a, if !(stack[-3] > stack[-1]) label_050E: // Incoming jump from 0x050D, if not !(stack[-3] > stack[-1]) // Inputs[2] // { // @0514 stack[-1] // @0515 stack[-2] // } 050E 61 PUSH2 0x051a 0511 61 PUSH2 0x012a 0514 82 DUP3 0515 84 DUP5 0516 61 PUSH2 0x1131 0519 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @050E stack[0] = 0x051a // @0511 stack[1] = 0x012a // @0514 stack[2] = stack[-1] // @0515 stack[3] = stack[-2] // } // Block ends with call to 0x1131, returns to 0x012A label_051A: // Incoming return from call to 0x012A at 0x0519 // Incoming jump from 0x050D, if !(stack[-3] > stack[-1]) // Inputs[8] // { // @051D storage[0x00] // @0520 memory[0x40:0x60] // @053F stack[-2] // @0543 stack[-3] // @0553 memory[0x40:0x60] // @055B msg.gas // @055C address(stack[-3] & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @055C memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]] // } 051A 5B JUMPDEST 051B 60 PUSH1 0x00 051D 54 SLOAD 051E 60 PUSH1 0x40 0520 51 MLOAD 0521 63 PUSH4 0xa9059cbb 0526 60 PUSH1 0xe0 0528 1B SHL 0529 81 DUP2 052A 52 MSTORE 052B 60 PUSH1 0x01 052D 60 PUSH1 0x01 052F 60 PUSH1 0xa0 0531 1B SHL 0532 03 SUB 0533 91 SWAP2 0534 82 DUP3 0535 16 AND 0536 60 PUSH1 0x04 0538 82 DUP3 0539 01 ADD 053A 52 MSTORE 053B 60 PUSH1 0x24 053D 81 DUP2 053E 01 ADD 053F 84 DUP5 0540 90 SWAP1 0541 52 MSTORE 0542 90 SWAP1 0543 84 DUP5 0544 16 AND 0545 90 SWAP1 0546 63 PUSH4 0xa9059cbb 054B 90 SWAP1 054C 60 PUSH1 0x44 054E 01 ADD 054F 60 PUSH1 0x20 0551 60 PUSH1 0x40 0553 51 MLOAD 0554 80 DUP1 0555 83 DUP4 0556 03 SUB 0557 81 DUP2 0558 60 PUSH1 0x00 055A 87 DUP8 055B 5A GAS 055C F1 CALL 055D 15 ISZERO 055E 80 DUP1 055F 15 ISZERO 0560 61 PUSH2 0x056d 0563 57 *JUMPI // Stack delta = +4 // Outputs[8] // { // @052A memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0xa9059cbb << 0xe0 // @053A memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = (0x01 << 0xa0) - 0x01 & storage[0x00] // @0541 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = stack[-2] // @0545 stack[0] = stack[-3] & (0x01 << 0xa0) - 0x01 // @054B stack[1] = 0xa9059cbb // @054E stack[2] = 0x44 + memory[0x40:0x60] // @055C memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = address(stack[-3] & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @055D stack[3] = !address(stack[-3] & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]]) // } // Block ends with conditional jump to 0x056d, if !!address(stack[-3] & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]]) label_0564: // Incoming jump from 0x0563, if not !!address(stack[-3] & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[4] // { // @0564 returndata.length // @0568 returndata[0x00:0x00 + returndata.length] // @0569 returndata.length // @056C memory[0x00:0x00 + returndata.length] // } 0564 3D RETURNDATASIZE 0565 60 PUSH1 0x00 0567 80 DUP1 0568 3E RETURNDATACOPY 0569 3D RETURNDATASIZE 056A 60 PUSH1 0x00 056C FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0568 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @056C revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_056D: // Incoming jump from 0x0563, if !!address(stack[-3] & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x44 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[2] // { // @0574 memory[0x40:0x60] // @0575 returndata.length // } 056D 5B JUMPDEST 056E 50 POP 056F 50 POP 0570 50 POP 0571 50 POP 0572 60 PUSH1 0x40 0574 51 MLOAD 0575 3D RETURNDATASIZE 0576 60 PUSH1 0x1f 0578 19 NOT 0579 60 PUSH1 0x1f 057B 82 DUP3 057C 01 ADD 057D 16 AND 057E 82 DUP3 057F 01 ADD 0580 80 DUP1 0581 60 PUSH1 0x40 0583 52 MSTORE 0584 50 POP 0585 81 DUP2 0586 01 ADD 0587 90 SWAP1 0588 61 PUSH2 0x0459 058B 91 SWAP2 058C 90 SWAP1 058D 61 PUSH2 0x1157 0590 56 *JUMP // Stack delta = -1 // Outputs[4] // { // @0583 memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x1f & ~0x1f) // @058B stack[-4] = 0x0459 // @058C stack[-2] = memory[0x40:0x60] // @058C stack[-3] = memory[0x40:0x60] + returndata.length // } // Block ends with call to 0x1157, returns to 0x0459 label_0591: // Incoming jump from 0x0169 // Inputs[2] // { // @0594 storage[0x00] // @059E msg.sender // } 0591 5B JUMPDEST 0592 60 PUSH1 0x00 0594 54 SLOAD 0595 60 PUSH1 0x01 0597 60 PUSH1 0x01 0599 60 PUSH1 0xa0 059B 1B SHL 059C 03 SUB 059D 16 AND 059E 33 CALLER 059F 14 EQ 05A0 61 PUSH2 0x05bb 05A3 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x05bb, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_05A4: // Incoming jump from 0x05A3, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @05A6 memory[0x40:0x60] } 05A4 60 PUSH1 0x40 05A6 51 MLOAD 05A7 62 PUSH3 0x461bcd 05AB 60 PUSH1 0xe5 05AD 1B SHL 05AE 81 DUP2 05AF 52 MSTORE 05B0 60 PUSH1 0x04 05B2 01 ADD 05B3 61 PUSH2 0x02c8 05B6 90 SWAP1 05B7 61 PUSH2 0x10de 05BA 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @05AF memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @05B6 stack[0] = 0x02c8 // @05B6 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_05BB: // Incoming jump from 0x05A3, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[3] // { // @05BF stack[-3] // @05C0 stack[-2] // @05C1 stack[-1] // } 05BB 5B JUMPDEST 05BC 61 PUSH2 0x05c6 05BF 83 DUP4 05C0 83 DUP4 05C1 83 DUP4 05C2 61 PUSH2 0x0cbc 05C5 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @05BC stack[0] = 0x05c6 // @05BF stack[1] = stack[-3] // @05C0 stack[2] = stack[-2] // @05C1 stack[3] = stack[-1] // } // Block ends with call to 0x0cbc, returns to 0x05C6 label_05C6: // Incoming jump from 0x0709, if stack[-3] // Incoming return from call to 0x0CBC at 0x05C5 // Incoming jump from 0x0709, if stack[-3] // Inputs[1] { @05CA stack[-4] } 05C6 5B JUMPDEST 05C7 50 POP 05C8 50 POP 05C9 50 POP 05CA 56 *JUMP // Stack delta = -4 // Block ends with unconditional jump to stack[-4] label_05CB: // Incoming jump from 0x017C // Inputs[2] // { // @05CE storage[0x00] // @05D8 msg.sender // } 05CB 5B JUMPDEST 05CC 60 PUSH1 0x00 05CE 54 SLOAD 05CF 60 PUSH1 0x01 05D1 60 PUSH1 0x01 05D3 60 PUSH1 0xa0 05D5 1B SHL 05D6 03 SUB 05D7 16 AND 05D8 33 CALLER 05D9 14 EQ 05DA 61 PUSH2 0x05f5 05DD 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x05f5, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_05DE: // Incoming jump from 0x05DD, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @05E0 memory[0x40:0x60] } 05DE 60 PUSH1 0x40 05E0 51 MLOAD 05E1 62 PUSH3 0x461bcd 05E5 60 PUSH1 0xe5 05E7 1B SHL 05E8 81 DUP2 05E9 52 MSTORE 05EA 60 PUSH1 0x04 05EC 01 ADD 05ED 61 PUSH2 0x02c8 05F0 90 SWAP1 05F1 61 PUSH2 0x10de 05F4 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @05E9 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @05F0 stack[0] = 0x02c8 // @05F0 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_05F5: // Incoming jump from 0x05DD, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @05F9 stack[-4] } 05F5 5B JUMPDEST 05F6 60 PUSH1 0x00 05F8 5B JUMPDEST 05F9 84 DUP5 05FA 81 DUP2 05FB 10 LT 05FC 15 ISZERO 05FD 61 PUSH2 0x0672 0600 57 *JUMPI // Stack delta = +1 // Outputs[1] { @05F6 stack[0] = 0x00 } // Block ends with conditional jump to 0x0672, if !(0x00 < stack[-4]) label_0601: // Incoming jump from 0x0600, if not !(stack[-1] < stack[-5]) // Incoming jump from 0x0600, if not !(0x00 < stack[-4]) // Inputs[3] // { // @0604 stack[-6] // @0605 stack[-5] // @0606 stack[-1] // } 0601 61 PUSH2 0x0662 0604 86 DUP7 0605 86 DUP7 0606 83 DUP4 0607 81 DUP2 0608 81 DUP2 0609 10 LT 060A 61 PUSH2 0x0615 060D 57 *JUMPI // Stack delta = +4 // Outputs[4] // { // @0601 stack[0] = 0x0662 // @0604 stack[1] = stack[-6] // @0605 stack[2] = stack[-5] // @0606 stack[3] = stack[-1] // } // Block ends with conditional call to 0x0615, returns to 0x0662, if stack[-1] < stack[-5] label_060E: // Incoming jump from 0x060D, if not stack[-1] < stack[-5] 060E 61 PUSH2 0x0615 0611 61 PUSH2 0x10af 0614 56 *JUMP // Stack delta = +1 // Outputs[1] { @060E stack[0] = 0x0615 } // Block ends with unconditional jump to 0x10af label_0615: // Incoming call from 0x060D, returns to 0x0662, if stack[-1] < stack[-5] // Inputs[7] // { // @0616 stack[-2] // @0616 stack[-1] // @061B stack[-3] // @061C msg.data[0x20 * stack[-1] + stack[-3]:0x20 * stack[-1] + stack[-3] + 0x20] // @061D stack[-8] // @061E stack[-7] // @061F stack[-5] // } 0615 5B JUMPDEST 0616 90 SWAP1 0617 50 POP 0618 60 PUSH1 0x20 061A 02 MUL 061B 01 ADD 061C 35 CALLDATALOAD 061D 85 DUP6 061E 85 DUP6 061F 84 DUP5 0620 81 DUP2 0621 81 DUP2 0622 10 LT 0623 61 PUSH2 0x062e 0626 57 *JUMPI // Stack delta = +1 // Outputs[4] // { // @061C stack[-3] = msg.data[0x20 * stack[-1] + stack[-3]:0x20 * stack[-1] + stack[-3] + 0x20] // @061D stack[-2] = stack[-8] // @061E stack[-1] = stack[-7] // @061F stack[0] = stack[-5] // } // Block ends with conditional jump to 0x062e, if stack[-5] < stack[-7] label_0627: // Incoming jump from 0x0626, if not stack[-5] < stack[-7] 0627 61 PUSH2 0x062e 062A 61 PUSH2 0x10af 062D 56 *JUMP // Stack delta = +1 // Outputs[1] { @0627 stack[0] = 0x062e } // Block ends with unconditional jump to 0x10af label_062E: // Incoming jump from 0x0626, if stack[-5] < stack[-7] // Inputs[3] // { // @062F stack[-1] // @062F stack[-2] // @0634 stack[-3] // } 062E 5B JUMPDEST 062F 90 SWAP1 0630 50 POP 0631 60 PUSH1 0x20 0633 02 MUL 0634 01 ADD 0635 60 PUSH1 0x20 0637 81 DUP2 0638 01 ADD 0639 90 SWAP1 063A 61 PUSH2 0x0643 063D 91 SWAP2 063E 90 SWAP1 063F 61 PUSH2 0x108d 0642 56 *JUMP // Stack delta = +0 // Outputs[3] // { // @063D stack[-3] = 0x0643 // @063E stack[-1] = 0x20 * stack[-1] + stack[-3] // @063E stack[-2] = 0x20 * stack[-1] + stack[-3] + 0x20 // } // Block ends with call to 0x108d, returns to 0x0643 label_0643: // Incoming return from call to 0x108D at 0x0642 // Inputs[3] // { // @0644 stack[-5] // @0645 stack[-4] // @0647 memory[stack[-5]:stack[-5] + 0x20] // } 0643 5B JUMPDEST 0644 84 DUP5 0645 84 DUP5 0646 81 DUP2 0647 51 MLOAD 0648 81 DUP2 0649 10 LT 064A 61 PUSH2 0x0655 064D 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0644 stack[0] = stack[-5] // @0645 stack[1] = stack[-4] // } // Block ends with conditional jump to 0x0655, if stack[-4] < memory[stack[-5]:stack[-5] + 0x20] label_064E: // Incoming jump from 0x064D, if not stack[-4] < memory[stack[-5]:stack[-5] + 0x20] 064E 61 PUSH2 0x0655 0651 61 PUSH2 0x10af 0654 56 *JUMP // Stack delta = +1 // Outputs[1] { @064E stack[0] = 0x0655 } // Block ends with unconditional jump to 0x10af label_0655: // Incoming jump from 0x064D, if stack[-4] < memory[stack[-5]:stack[-5] + 0x20] // Inputs[3] // { // @0658 stack[-1] // @065C stack[-2] // @065D memory[0x20 + 0x20 * stack[-1] + stack[-2]:0x20 + 0x20 * stack[-1] + stack[-2] + 0x20] // } 0655 5B JUMPDEST 0656 60 PUSH1 0x20 0658 02 MUL 0659 60 PUSH1 0x20 065B 01 ADD 065C 01 ADD 065D 51 MLOAD 065E 61 PUSH2 0x0cbc 0661 56 *JUMP // Stack delta = -1 // Outputs[1] { @065D stack[-2] = memory[0x20 + 0x20 * stack[-1] + stack[-2]:0x20 + 0x20 * stack[-1] + stack[-2] + 0x20] } // Block ends with unconditional jump to 0x0cbc label_0662: // Incoming return from call to 0x0615 at 0x060D // Inputs[1] { @0666 stack[-1] } 0662 5B JUMPDEST 0663 61 PUSH2 0x066b 0666 81 DUP2 0667 61 PUSH2 0x1118 066A 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0663 stack[0] = 0x066b // @0666 stack[1] = stack[-1] // } // Block ends with call to 0x1118, returns to 0x066B label_066B: // Incoming return from call to 0x1118 at 0x066A // Inputs[2] // { // @066C stack[-1] // @066C stack[-2] // } 066B 5B JUMPDEST 066C 90 SWAP1 066D 50 POP 066E 61 PUSH2 0x05f8 0671 56 *JUMP // Stack delta = -1 // Outputs[1] { @066C stack[-2] = stack[-1] } // Block ends with unconditional jump to 0x05f8 label_0672: // Incoming jump from 0x0600, if !(stack[-1] < stack[-5]) // Incoming jump from 0x0600, if !(0x00 < stack[-4]) // Inputs[1] { @0679 stack[-7] } 0672 5B JUMPDEST 0673 50 POP 0674 50 POP 0675 50 POP 0676 50 POP 0677 50 POP 0678 50 POP 0679 56 *JUMP // Stack delta = -7 // Block ends with unconditional jump to stack[-7] label_067A: // Incoming jump from 0x018F // Inputs[2] // { // @067D storage[0x00] // @0687 msg.sender // } 067A 5B JUMPDEST 067B 60 PUSH1 0x00 067D 54 SLOAD 067E 60 PUSH1 0x01 0680 60 PUSH1 0x01 0682 60 PUSH1 0xa0 0684 1B SHL 0685 03 SUB 0686 16 AND 0687 33 CALLER 0688 14 EQ 0689 61 PUSH2 0x06a4 068C 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x06a4, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_068D: // Incoming jump from 0x068C, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @068F memory[0x40:0x60] } 068D 60 PUSH1 0x40 068F 51 MLOAD 0690 62 PUSH3 0x461bcd 0694 60 PUSH1 0xe5 0696 1B SHL 0697 81 DUP2 0698 52 MSTORE 0699 60 PUSH1 0x04 069B 01 ADD 069C 61 PUSH2 0x02c8 069F 90 SWAP1 06A0 61 PUSH2 0x10de 06A3 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0698 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @069F stack[0] = 0x02c8 // @069F stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_06A4: // Incoming jump from 0x068C, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[3] // { // @06A7 stack[-2] // @06B1 stack[-1] // @06B4 memory[0x40:0x60] // } 06A4 5B JUMPDEST 06A5 60 PUSH1 0x00 06A7 82 DUP3 06A8 60 PUSH1 0x01 06AA 60 PUSH1 0x01 06AC 60 PUSH1 0xa0 06AE 1B SHL 06AF 03 SUB 06B0 16 AND 06B1 82 DUP3 06B2 60 PUSH1 0x40 06B4 51 MLOAD 06B5 61 PUSH2 0x06be 06B8 91 SWAP2 06B9 90 SWAP1 06BA 61 PUSH2 0x119d 06BD 56 *JUMP // Stack delta = +5 // Outputs[5] // { // @06A5 stack[0] = 0x00 // @06B0 stack[1] = (0x01 << 0xa0) - 0x01 & stack[-2] // @06B8 stack[2] = 0x06be // @06B9 stack[3] = stack[-1] // @06B9 stack[4] = memory[0x40:0x60] // } // Block ends with call to 0x119d, returns to 0x06BE label_06BE: // Incoming return from call to 0x119D at 0x06BD // Inputs[7] // { // @06C3 memory[0x40:0x60] // @06C5 stack[-1] // @06CA stack[-2] // @06CB msg.gas // @06CC memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // @06CC address(stack[-2]).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]) // @06D0 returndata.length // } 06BE 5B JUMPDEST 06BF 60 PUSH1 0x00 06C1 60 PUSH1 0x40 06C3 51 MLOAD 06C4 80 DUP1 06C5 83 DUP4 06C6 03 SUB 06C7 81 DUP2 06C8 60 PUSH1 0x00 06CA 86 DUP7 06CB 5A GAS 06CC F1 CALL 06CD 91 SWAP2 06CE 50 POP 06CF 50 POP 06D0 3D RETURNDATASIZE 06D1 80 DUP1 06D2 60 PUSH1 0x00 06D4 81 DUP2 06D5 14 EQ 06D6 61 PUSH2 0x06fb 06D9 57 *JUMPI // Stack delta = +1 // Outputs[4] // { // @06CC memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00] = address(stack[-2]).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]) // @06CD stack[-2] = address(stack[-2]).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]) // @06D0 stack[-1] = returndata.length // @06D1 stack[0] = returndata.length // } // Block ends with conditional jump to 0x06fb, if returndata.length == 0x00 label_06DA: // Incoming jump from 0x06D9, if not returndata.length == 0x00 // Inputs[6] // { // @06DC memory[0x40:0x60] // @06DD stack[-2] // @06E4 returndata.length // @06EC returndata.length // @06EF returndata.length // @06F6 returndata[0x00:0x00 + returndata.length] // } 06DA 60 PUSH1 0x40 06DC 51 MLOAD 06DD 91 SWAP2 06DE 50 POP 06DF 60 PUSH1 0x1f 06E1 19 NOT 06E2 60 PUSH1 0x3f 06E4 3D RETURNDATASIZE 06E5 01 ADD 06E6 16 AND 06E7 82 DUP3 06E8 01 ADD 06E9 60 PUSH1 0x40 06EB 52 MSTORE 06EC 3D RETURNDATASIZE 06ED 82 DUP3 06EE 52 MSTORE 06EF 3D RETURNDATASIZE 06F0 60 PUSH1 0x00 06F2 60 PUSH1 0x20 06F4 84 DUP5 06F5 01 ADD 06F6 3E RETURNDATACOPY 06F7 61 PUSH2 0x0700 06FA 56 *JUMP // Stack delta = +0 // Outputs[4] // { // @06DD stack[-2] = memory[0x40:0x60] // @06EB memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x3f & ~0x1f) // @06EE memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = returndata.length // @06F6 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + returndata.length] = returndata[0x00:0x00 + returndata.length] // } // Block ends with unconditional jump to 0x0700 label_06FB: // Incoming jump from 0x06D9, if returndata.length == 0x00 // Inputs[3] // { // @06FE stack[-2] // @0703 stack[-4] // @0703 stack[-3] // } 06FB 5B JUMPDEST 06FC 60 PUSH1 0x60 06FE 91 SWAP2 06FF 50 POP 0700 5B JUMPDEST 0701 50 POP 0702 50 POP 0703 90 SWAP1 0704 50 POP 0705 80 DUP1 0706 61 PUSH2 0x05c6 0709 57 *JUMPI // Stack delta = -3 // Outputs[1] { @0703 stack[-4] = stack[-3] } // Block ends with conditional jump to 0x05c6, if stack[-3] label_070A: // Incoming jump from 0x0709, if not stack[-3] // Incoming jump from 0x0709, if not stack[-3] // Inputs[1] { @070D memory[0x00:0x00] } 070A 60 PUSH1 0x00 070C 80 DUP1 070D FD *REVERT // Stack delta = +0 // Outputs[1] { @070D revert(memory[0x00:0x00]); } // Block terminates label_070E: // Incoming jump from 0x01A2 // Inputs[2] // { // @0711 storage[0x00] // @071B msg.sender // } 070E 5B JUMPDEST 070F 60 PUSH1 0x00 0711 54 SLOAD 0712 60 PUSH1 0x01 0714 60 PUSH1 0x01 0716 60 PUSH1 0xa0 0718 1B SHL 0719 03 SUB 071A 16 AND 071B 33 CALLER 071C 14 EQ 071D 61 PUSH2 0x0738 0720 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0738, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_0721: // Incoming jump from 0x0720, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @0723 memory[0x40:0x60] } 0721 60 PUSH1 0x40 0723 51 MLOAD 0724 62 PUSH3 0x461bcd 0728 60 PUSH1 0xe5 072A 1B SHL 072B 81 DUP2 072C 52 MSTORE 072D 60 PUSH1 0x04 072F 01 ADD 0730 61 PUSH2 0x02c8 0733 90 SWAP1 0734 61 PUSH2 0x10de 0737 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @072C memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @0733 stack[0] = 0x02c8 // @0733 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_0738: // Incoming jump from 0x0720, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[8] // { // @073C memory[0x40:0x60] // @0775 stack[-1] // @0779 memory[0x40:0x60] // @078E memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] // @07A7 memory[0x40:0x60] // @07AF memory[0x40:0x60] // @07C2 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] // @07D6 stack[-2] // } 0738 5B JUMPDEST 0739 60 PUSH1 0x40 073B 80 DUP1 073C 51 MLOAD 073D 60 PUSH1 0x01 073F 60 PUSH1 0x01 0741 60 PUSH1 0xa0 0743 1B SHL 0744 03 SUB 0745 7F PUSH32 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce 0766 16 AND 0767 60 PUSH1 0x24 0769 80 DUP1 076A 83 DUP4 076B 01 ADD 076C 91 SWAP2 076D 90 SWAP1 076E 91 SWAP2 076F 52 MSTORE 0770 60 PUSH1 0x44 0772 80 DUP1 0773 83 DUP4 0774 01 ADD 0775 85 DUP6 0776 90 SWAP1 0777 52 MSTORE 0778 83 DUP4 0779 51 MLOAD 077A 80 DUP1 077B 84 DUP5 077C 03 SUB 077D 82 DUP3 077E 01 ADD 077F 81 DUP2 0780 52 MSTORE 0781 60 PUSH1 0x64 0783 90 SWAP1 0784 93 SWAP4 0785 01 ADD 0786 84 DUP5 0787 52 MSTORE 0788 60 PUSH1 0x20 078A 80 DUP1 078B 84 DUP5 078C 01 ADD 078D 80 DUP1 078E 51 MLOAD 078F 63 PUSH4 0x095ea7b3 0794 60 PUSH1 0xe0 0796 1B SHL 0797 60 PUSH1 0x01 0799 60 PUSH1 0x01 079B 60 PUSH1 0xe0 079D 1B SHL 079E 03 SUB 079F 91 SWAP2 07A0 82 DUP3 07A1 16 AND 07A2 17 OR 07A3 90 SWAP1 07A4 91 SWAP2 07A5 52 MSTORE 07A6 85 DUP6 07A7 51 MLOAD 07A8 80 DUP1 07A9 85 DUP6 07AA 01 ADD 07AB 88 DUP9 07AC 90 SWAP1 07AD 52 MSTORE 07AE 86 DUP7 07AF 51 MLOAD 07B0 80 DUP1 07B1 82 DUP3 07B2 03 SUB 07B3 90 SWAP1 07B4 95 SWAP6 07B5 01 ADD 07B6 85 DUP6 07B7 52 MSTORE 07B8 90 SWAP1 07B9 92 SWAP3 07BA 01 ADD 07BB 90 SWAP1 07BC 94 SWAP5 07BD 52 MSTORE 07BE 92 SWAP3 07BF 81 DUP2 07C0 01 ADD 07C1 80 DUP1 07C2 51 MLOAD 07C3 90 SWAP1 07C4 93 SWAP4 07C5 16 AND 07C6 63 PUSH4 0x16a884d9 07CB 60 PUSH1 0xe3 07CD 1B SHL 07CE 17 OR 07CF 90 SWAP1 07D0 92 SWAP3 07D1 52 MSTORE 07D2 90 SWAP1 07D3 60 PUSH1 0x00 07D5 5B JUMPDEST 07D6 84 DUP5 07D7 81 DUP2 07D8 10 LT 07D9 15 ISZERO 07DA 61 PUSH2 0x0a1a 07DD 57 *JUMPI // Stack delta = +3 // Outputs[12] // { // @076F memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce & (0x01 << 0xa0) - 0x01 // @0777 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = stack[-1] // @0780 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x44 + (memory[0x40:0x60] - memory[0x40:0x60]) // @0787 memory[0x40:0x60] = memory[0x40:0x60] + 0x64 // @07A5 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] = ((0x01 << 0xe0) - 0x01 & memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20]) | (0x095ea7b3 << 0xe0) // @07AD memory[0x24 + memory[0x40:0x60]:0x24 + memory[0x40:0x60] + 0x20] = stack[-1] // @07B7 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x24 + (memory[0x40:0x60] - memory[0x40:0x60]) // @07BD memory[0x40:0x60] = 0x44 + memory[0x40:0x60] // @07D1 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] = (0x16a884d9 << 0xe3) | ((0x01 << 0xe0) - 0x01 & memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20]) // @07D2 stack[0] = memory[0x40:0x60] // @07D2 stack[1] = memory[0x40:0x60] // @07D3 stack[2] = 0x00 // } // Block ends with conditional jump to 0x0a1a, if !(0x00 < stack[-2]) label_07DE: // Incoming jump from 0x07DD, if not !(0x00 < stack[-2]) // Incoming jump from 0x07DD, if not !(stack[-1] < stack[-5]) // Inputs[1] { @07E2 memory[0x40:0x60] } 07DE 60 PUSH1 0x00 07E0 60 PUSH1 0x40 07E2 51 MLOAD 07E3 61 PUSH2 0x07eb 07E6 90 SWAP1 07E7 61 PUSH2 0x0d41 07EA 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @07DE stack[0] = 0x00 // @07E6 stack[1] = 0x07eb // @07E6 stack[2] = memory[0x40:0x60] // } // Block ends with call to 0x0d41, returns to 0x07EB label_07EB: // Incoming return from call to 0x0D41 at 0x07EA // Inputs[4] // { // @07EE memory[0x40:0x60] // @07F0 stack[-1] // @07F5 new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() // @07F5 memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 07EB 5B JUMPDEST 07EC 60 PUSH1 0x40 07EE 51 MLOAD 07EF 80 DUP1 07F0 91 SWAP2 07F1 03 SUB 07F2 90 SWAP1 07F3 60 PUSH1 0x00 07F5 F0 CREATE 07F6 80 DUP1 07F7 15 ISZERO 07F8 80 DUP1 07F9 15 ISZERO 07FA 61 PUSH2 0x0807 07FD 57 *JUMPI // Stack delta = +1 // Outputs[3] // { // @07F5 new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() // @07F5 stack[-1] = new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() // @07F7 stack[0] = !new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() // } // Block ends with conditional jump to 0x0807, if !!new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() label_07FE: // Incoming jump from 0x07FD, if not !!new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() // Inputs[4] // { // @07FE returndata.length // @0802 returndata[0x00:0x00 + returndata.length] // @0803 returndata.length // @0806 memory[0x00:0x00 + returndata.length] // } 07FE 3D RETURNDATASIZE 07FF 60 PUSH1 0x00 0801 80 DUP1 0802 3E RETURNDATACOPY 0803 3D RETURNDATASIZE 0804 60 PUSH1 0x00 0806 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0802 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0806 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0807: // Incoming jump from 0x07FD, if !!new(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]).value(0x00)() // Inputs[9] // { // @080B storage[0x00] // @080E memory[0x40:0x60] // @082A stack[-2] // @0835 stack[-7] // @0839 stack[-3] // @086B memory[0x40:0x60] // @0873 msg.gas // @0874 address(0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @0874 memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]] // } 0807 5B JUMPDEST 0808 50 POP 0809 60 PUSH1 0x00 080B 54 SLOAD 080C 60 PUSH1 0x40 080E 51 MLOAD 080F 63 PUSH4 0x23b872dd 0814 60 PUSH1 0xe0 0816 1B SHL 0817 81 DUP2 0818 52 MSTORE 0819 60 PUSH1 0x01 081B 60 PUSH1 0x01 081D 60 PUSH1 0xa0 081F 1B SHL 0820 03 SUB 0821 91 SWAP2 0822 82 DUP3 0823 16 AND 0824 60 PUSH1 0x04 0826 82 DUP3 0827 01 ADD 0828 52 MSTORE 0829 81 DUP2 082A 83 DUP4 082B 16 AND 082C 60 PUSH1 0x24 082E 82 DUP3 082F 01 ADD 0830 52 MSTORE 0831 60 PUSH1 0x44 0833 81 DUP2 0834 01 ADD 0835 88 DUP9 0836 90 SWAP1 0837 52 MSTORE 0838 91 SWAP2 0839 92 SWAP3 083A 50 POP 083B 7F PUSH32 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c 085C 16 AND 085D 90 SWAP1 085E 63 PUSH4 0x23b872dd 0863 90 SWAP1 0864 60 PUSH1 0x64 0866 01 ADD 0867 60 PUSH1 0x20 0869 60 PUSH1 0x40 086B 51 MLOAD 086C 80 DUP1 086D 83 DUP4 086E 03 SUB 086F 81 DUP2 0870 60 PUSH1 0x00 0872 87 DUP8 0873 5A GAS 0874 F1 CALL 0875 15 ISZERO 0876 80 DUP1 0877 15 ISZERO 0878 61 PUSH2 0x0885 087B 57 *JUMPI // Stack delta = +2 // Outputs[10] // { // @0818 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x23b872dd << 0xe0 // @0828 memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = (0x01 << 0xa0) - 0x01 & storage[0x00] // @0830 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = stack[-2] & (0x01 << 0xa0) - 0x01 // @0837 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = stack[-7] // @0839 stack[-3] = stack[-2] // @085D stack[-2] = 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01 // @0863 stack[-1] = 0x23b872dd // @0866 stack[0] = 0x64 + memory[0x40:0x60] // @0874 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = address(0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]]) // @0875 stack[1] = !address(0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]]) // } // Block ends with conditional jump to 0x0885, if !!address(0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]]) label_087C: // Incoming jump from 0x087B, if not !!address(0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[4] // { // @087C returndata.length // @0880 returndata[0x00:0x00 + returndata.length] // @0881 returndata.length // @0884 memory[0x00:0x00 + returndata.length] // } 087C 3D RETURNDATASIZE 087D 60 PUSH1 0x00 087F 80 DUP1 0880 3E RETURNDATACOPY 0881 3D RETURNDATASIZE 0882 60 PUSH1 0x00 0884 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0880 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0884 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0885: // Incoming jump from 0x087B, if !!address(0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c & (0x01 << 0xa0) - 0x01).call.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + (0x64 + memory[0x40:0x60]) - memory[0x40:0x60]]) // Inputs[2] // { // @088C memory[0x40:0x60] // @088D returndata.length // } 0885 5B JUMPDEST 0886 50 POP 0887 50 POP 0888 50 POP 0889 50 POP 088A 60 PUSH1 0x40 088C 51 MLOAD 088D 3D RETURNDATASIZE 088E 60 PUSH1 0x1f 0890 19 NOT 0891 60 PUSH1 0x1f 0893 82 DUP3 0894 01 ADD 0895 16 AND 0896 82 DUP3 0897 01 ADD 0898 80 DUP1 0899 60 PUSH1 0x40 089B 52 MSTORE 089C 50 POP 089D 81 DUP2 089E 01 ADD 089F 90 SWAP1 08A0 61 PUSH2 0x08a9 08A3 91 SWAP2 08A4 90 SWAP1 08A5 61 PUSH2 0x1157 08A8 56 *JUMP // Stack delta = -1 // Outputs[4] // { // @089B memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x1f & ~0x1f) // @08A3 stack[-4] = 0x08a9 // @08A4 stack[-2] = memory[0x40:0x60] // @08A4 stack[-3] = memory[0x40:0x60] + returndata.length // } // Block ends with call to 0x1157, returns to 0x08A9 label_08A9: // Incoming return from call to 0x1157 at 0x08A8 // Inputs[3] // { // @08AD memory[0x40:0x60] // @08C0 stack[-2] // @08EF stack[-5] // } 08A9 5B JUMPDEST 08AA 50 POP 08AB 60 PUSH1 0x40 08AD 51 MLOAD 08AE 63 PUSH4 0x49e9d3db 08B3 60 PUSH1 0xe1 08B5 1B SHL 08B6 81 DUP2 08B7 52 MSTORE 08B8 60 PUSH1 0x01 08BA 60 PUSH1 0x01 08BC 60 PUSH1 0xa0 08BE 1B SHL 08BF 03 SUB 08C0 82 DUP3 08C1 16 AND 08C2 90 SWAP1 08C3 63 PUSH4 0x93d3a7b6 08C8 90 SWAP1 08C9 61 PUSH2 0x08f8 08CC 90 SWAP1 08CD 7F PUSH32 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c 08EE 90 SWAP1 08EF 88 DUP9 08F0 90 SWAP1 08F1 60 PUSH1 0x04 08F3 01 ADD 08F4 61 PUSH2 0x11b9 08F7 56 *JUMP // Stack delta = +5 // Outputs[7] // { // @08B7 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x49e9d3db << 0xe1 // @08C2 stack[-1] = stack[-2] & (0x01 << 0xa0) - 0x01 // @08C8 stack[0] = 0x93d3a7b6 // @08CC stack[1] = 0x08f8 // @08EE stack[2] = 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c // @08F0 stack[3] = stack[-5] // @08F3 stack[4] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x11b9, returns to 0x08F8 label_08F8: // Incoming return from call to 0x11B9 at 0x08F7 // Inputs[4] // { // @08FD memory[0x40:0x60] // @08FF stack[-1] // @0904 stack[-3] // @0906 address(stack[-3]).code.length // } 08F8 5B JUMPDEST 08F9 60 PUSH1 0x00 08FB 60 PUSH1 0x40 08FD 51 MLOAD 08FE 80 DUP1 08FF 83 DUP4 0900 03 SUB 0901 81 DUP2 0902 60 PUSH1 0x00 0904 87 DUP8 0905 80 DUP1 0906 3B EXTCODESIZE 0907 15 ISZERO 0908 80 DUP1 0909 15 ISZERO 090A 61 PUSH2 0x0912 090D 57 *JUMPI // Stack delta = +7 // Outputs[7] // { // @08F9 stack[0] = 0x00 // @08FD stack[1] = memory[0x40:0x60] // @0900 stack[2] = stack[-1] - memory[0x40:0x60] // @0901 stack[3] = memory[0x40:0x60] // @0902 stack[4] = 0x00 // @0904 stack[5] = stack[-3] // @0907 stack[6] = !address(stack[-3]).code.length // } // Block ends with conditional jump to 0x0912, if !!address(stack[-3]).code.length label_090E: // Incoming jump from 0x090D, if not !!address(stack[-3]).code.length // Inputs[1] { @0911 memory[0x00:0x00] } 090E 60 PUSH1 0x00 0910 80 DUP1 0911 FD *REVERT // Stack delta = +0 // Outputs[1] { @0911 revert(memory[0x00:0x00]); } // Block terminates label_0912: // Incoming jump from 0x090D, if !!address(stack[-3]).code.length // Inputs[9] // { // @0914 msg.gas // @0915 stack[-4] // @0915 stack[-3] // @0915 stack[-2] // @0915 memory[stack[-4]:stack[-4] + stack[-5]] // @0915 address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0915 stack[-6] // @0915 stack[-7] // @0915 stack[-5] // } 0912 5B JUMPDEST 0913 50 POP 0914 5A GAS 0915 F1 CALL 0916 15 ISZERO 0917 80 DUP1 0918 15 ISZERO 0919 61 PUSH2 0x0926 091C 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @0915 memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0916 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x0926, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_091D: // Incoming jump from 0x091C, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @091D returndata.length // @0921 returndata[0x00:0x00 + returndata.length] // @0922 returndata.length // @0925 memory[0x00:0x00 + returndata.length] // } 091D 3D RETURNDATASIZE 091E 60 PUSH1 0x00 0920 80 DUP1 0921 3E RETURNDATACOPY 0922 3D RETURNDATASIZE 0923 60 PUSH1 0x00 0925 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0921 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0925 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0926: // Incoming jump from 0x091C, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[5] // { // @092B memory[0x40:0x60] // @093E stack[-5] // @0940 stack[-4] // @0947 stack[-3] // @096F stack[-7] // } 0926 5B JUMPDEST 0927 50 POP 0928 50 POP 0929 60 PUSH1 0x40 092B 51 MLOAD 092C 63 PUSH4 0x49e9d3db 0931 60 PUSH1 0xe1 0933 1B SHL 0934 81 DUP2 0935 52 MSTORE 0936 60 PUSH1 0x01 0938 60 PUSH1 0x01 093A 60 PUSH1 0xa0 093C 1B SHL 093D 03 SUB 093E 84 DUP5 093F 16 AND 0940 92 SWAP3 0941 50 POP 0942 63 PUSH4 0x93d3a7b6 0947 91 SWAP2 0948 50 POP 0949 61 PUSH2 0x0978 094C 90 SWAP1 094D 7F PUSH32 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce 096E 90 SWAP1 096F 87 DUP8 0970 90 SWAP1 0971 60 PUSH1 0x04 0973 01 ADD 0974 61 PUSH2 0x11b9 0977 56 *JUMP // Stack delta = +2 // Outputs[7] // { // @0935 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x49e9d3db << 0xe1 // @0940 stack[-4] = stack[-5] & (0x01 << 0xa0) - 0x01 // @0947 stack[-3] = 0x93d3a7b6 // @094C stack[-2] = 0x0978 // @096E stack[-1] = 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce // @0970 stack[0] = stack[-7] // @0973 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x11b9, returns to 0x0978 label_0978: // Incoming return from call to 0x11B9 at 0x0977 // Inputs[4] // { // @097D memory[0x40:0x60] // @097F stack[-1] // @0984 stack[-3] // @0986 address(stack[-3]).code.length // } 0978 5B JUMPDEST 0979 60 PUSH1 0x00 097B 60 PUSH1 0x40 097D 51 MLOAD 097E 80 DUP1 097F 83 DUP4 0980 03 SUB 0981 81 DUP2 0982 60 PUSH1 0x00 0984 87 DUP8 0985 80 DUP1 0986 3B EXTCODESIZE 0987 15 ISZERO 0988 80 DUP1 0989 15 ISZERO 098A 61 PUSH2 0x0992 098D 57 *JUMPI // Stack delta = +7 // Outputs[7] // { // @0979 stack[0] = 0x00 // @097D stack[1] = memory[0x40:0x60] // @0980 stack[2] = stack[-1] - memory[0x40:0x60] // @0981 stack[3] = memory[0x40:0x60] // @0982 stack[4] = 0x00 // @0984 stack[5] = stack[-3] // @0987 stack[6] = !address(stack[-3]).code.length // } // Block ends with conditional jump to 0x0992, if !!address(stack[-3]).code.length label_098E: // Incoming jump from 0x098D, if not !!address(stack[-3]).code.length // Inputs[1] { @0991 memory[0x00:0x00] } 098E 60 PUSH1 0x00 0990 80 DUP1 0991 FD *REVERT // Stack delta = +0 // Outputs[1] { @0991 revert(memory[0x00:0x00]); } // Block terminates label_0992: // Incoming jump from 0x098D, if !!address(stack[-3]).code.length // Inputs[9] // { // @0994 msg.gas // @0995 stack[-4] // @0995 stack[-7] // @0995 address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0995 stack[-6] // @0995 stack[-5] // @0995 stack[-3] // @0995 stack[-2] // @0995 memory[stack[-4]:stack[-4] + stack[-5]] // } 0992 5B JUMPDEST 0993 50 POP 0994 5A GAS 0995 F1 CALL 0996 15 ISZERO 0997 80 DUP1 0998 15 ISZERO 0999 61 PUSH2 0x09a6 099C 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @0995 memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0996 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x09a6, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_099D: // Incoming jump from 0x099C, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @099D returndata.length // @09A1 returndata[0x00:0x00 + returndata.length] // @09A2 returndata.length // @09A5 memory[0x00:0x00 + returndata.length] // } 099D 3D RETURNDATASIZE 099E 60 PUSH1 0x00 09A0 80 DUP1 09A1 3E RETURNDATACOPY 09A2 3D RETURNDATASIZE 09A3 60 PUSH1 0x00 09A5 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @09A1 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @09A5 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_09A6: // Incoming jump from 0x099C, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[6] // { // @09AC storage[0x01] // @09DA storage[0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 + storage[0x01]] // @09ED stack[-5] // @09F5 storage[0x03] // @09F7 stack[-4] // @09FA stack[-3] // } 09A6 5B JUMPDEST 09A7 50 POP 09A8 50 POP 09A9 60 PUSH1 0x01 09AB 80 DUP1 09AC 54 SLOAD 09AD 80 DUP1 09AE 82 DUP3 09AF 01 ADD 09B0 82 DUP3 09B1 55 SSTORE 09B2 60 PUSH1 0x00 09B4 91 SWAP2 09B5 82 DUP3 09B6 52 MSTORE 09B7 7F PUSH32 0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 09D8 01 ADD 09D9 80 DUP1 09DA 54 SLOAD 09DB 60 PUSH1 0x01 09DD 60 PUSH1 0x01 09DF 60 PUSH1 0xa0 09E1 1B SHL 09E2 03 SUB 09E3 19 NOT 09E4 16 AND 09E5 60 PUSH1 0x01 09E7 60 PUSH1 0x01 09E9 60 PUSH1 0xa0 09EB 1B SHL 09EC 03 SUB 09ED 86 DUP7 09EE 16 AND 09EF 17 OR 09F0 90 SWAP1 09F1 55 SSTORE 09F2 60 PUSH1 0x03 09F4 80 DUP1 09F5 54 SLOAD 09F6 90 SWAP1 09F7 93 SWAP4 09F8 50 POP 09F9 90 SWAP1 09FA 91 SWAP2 09FB 50 POP 09FC 61 PUSH2 0x0a04 09FF 90 SWAP1 0A00 61 PUSH2 0x1118 0A03 56 *JUMP // Stack delta = +0 // Outputs[7] // { // @09B1 storage[0x01] = 0x01 + storage[0x01] // @09B6 memory[0x00:0x20] = 0x01 // @09F1 storage[0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 + storage[0x01]] = (stack[-5] & (0x01 << 0xa0) - 0x01) | (~((0x01 << 0xa0) - 0x01) & storage[0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6 + storage[0x01]]) // @09F7 stack[-4] = 0x03 // @09FA stack[-3] = 0x00 // @09FF stack[-1] = storage[0x03] // @09FF stack[-2] = 0x0a04 // } // Block ends with call to 0x1118, returns to 0x0A04 label_0A04: // Incoming return from call to 0x1118 at 0x0A03 // Inputs[5] // { // @0A05 stack[-2] // @0A05 stack[-1] // @0A06 stack[-3] // @0A0C stack[-4] // @0A0E stack[-5] // } 0A04 5B JUMPDEST 0A05 90 SWAP1 0A06 91 SWAP2 0A07 55 SSTORE 0A08 50 POP 0A09 61 PUSH2 0x0a13 0A0C 90 SWAP1 0A0D 50 POP 0A0E 81 DUP2 0A0F 61 PUSH2 0x1118 0A12 56 *JUMP // Stack delta = -2 // Outputs[3] // { // @0A07 storage[stack[-3]] = stack[-1] // @0A0C stack[-4] = 0x0a13 // @0A0E stack[-3] = stack[-5] // } // Block ends with call to 0x1118, returns to 0x0A13 label_0A13: // Incoming return from call to 0x1118 at 0x0A12 // Inputs[2] // { // @0A14 stack[-2] // @0A14 stack[-1] // } 0A13 5B JUMPDEST 0A14 90 SWAP1 0A15 50 POP 0A16 61 PUSH2 0x07d5 0A19 56 *JUMP // Stack delta = -1 // Outputs[1] { @0A14 stack[-2] = stack[-1] } // Block ends with unconditional jump to 0x07d5 label_0A1A: // Incoming jump from 0x07DD, if !(0x00 < stack[-2]) // Incoming jump from 0x07DD, if !(stack[-1] < stack[-5]) // Inputs[1] { @0A20 stack[-6] } 0A1A 5B JUMPDEST 0A1B 50 POP 0A1C 50 POP 0A1D 50 POP 0A1E 50 POP 0A1F 50 POP 0A20 56 *JUMP // Stack delta = -6 // Block ends with unconditional jump to stack[-6] label_0A21: // Incoming jump from 0x01B5 // Inputs[2] // { // @0A24 storage[0x00] // @0A2E msg.sender // } 0A21 5B JUMPDEST 0A22 60 PUSH1 0x00 0A24 54 SLOAD 0A25 60 PUSH1 0x01 0A27 60 PUSH1 0x01 0A29 60 PUSH1 0xa0 0A2B 1B SHL 0A2C 03 SUB 0A2D 16 AND 0A2E 33 CALLER 0A2F 14 EQ 0A30 61 PUSH2 0x0a4b 0A33 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0a4b, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] label_0A34: // Incoming jump from 0x0A33, if not msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @0A36 memory[0x40:0x60] } 0A34 60 PUSH1 0x40 0A36 51 MLOAD 0A37 62 PUSH3 0x461bcd 0A3B 60 PUSH1 0xe5 0A3D 1B SHL 0A3E 81 DUP2 0A3F 52 MSTORE 0A40 60 PUSH1 0x04 0A42 01 ADD 0A43 61 PUSH2 0x02c8 0A46 90 SWAP1 0A47 61 PUSH2 0x10de 0A4A 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0A3F memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @0A46 stack[0] = 0x02c8 // @0A46 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x10de, returns to 0x02C8 label_0A4B: // Incoming jump from 0x0A33, if msg.sender == (0x01 << 0xa0) - 0x01 & storage[0x00] // Inputs[1] { @0A54 stack[-1] } 0A4B 5B JUMPDEST 0A4C 60 PUSH1 0x01 0A4E 60 PUSH1 0x01 0A50 60 PUSH1 0xa0 0A52 1B SHL 0A53 03 SUB 0A54 81 DUP2 0A55 16 AND 0A56 61 PUSH2 0x0ab0 0A59 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0ab0, if stack[-1] & (0x01 << 0xa0) - 0x01 label_0A5A: // Incoming jump from 0x0A59, if not stack[-1] & (0x01 << 0xa0) - 0x01 // Inputs[1] { @0A5C memory[0x40:0x60] } 0A5A 60 PUSH1 0x40 0A5C 51 MLOAD 0A5D 62 PUSH3 0x461bcd 0A61 60 PUSH1 0xe5 0A63 1B SHL 0A64 81 DUP2 0A65 52 MSTORE 0A66 60 PUSH1 0x20 0A68 60 PUSH1 0x04 0A6A 82 DUP3 0A6B 01 ADD 0A6C 52 MSTORE 0A6D 60 PUSH1 0x26 0A6F 60 PUSH1 0x24 0A71 82 DUP3 0A72 01 ADD 0A73 52 MSTORE 0A74 7F PUSH32 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 0A95 60 PUSH1 0x44 0A97 82 DUP3 0A98 01 ADD 0A99 52 MSTORE 0A9A 65 PUSH6 0x646472657373 0AA1 60 PUSH1 0xd0 0AA3 1B SHL 0AA4 60 PUSH1 0x64 0AA6 82 DUP3 0AA7 01 ADD 0AA8 52 MSTORE 0AA9 60 PUSH1 0x84 0AAB 01 ADD 0AAC 61 PUSH2 0x02c8 0AAF 56 *JUMP // Stack delta = +1 // Outputs[6] // { // @0A65 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x461bcd << 0xe5 // @0A6C memory[memory[0x40:0x60] + 0x04:memory[0x40:0x60] + 0x04 + 0x20] = 0x20 // @0A73 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = 0x26 // @0A99 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061 // @0AA8 memory[memory[0x40:0x60] + 0x64:memory[0x40:0x60] + 0x64 + 0x20] = 0x646472657373 << 0xd0 // @0AAB stack[0] = 0x84 + memory[0x40:0x60] // } // Block ends with unconditional jump to 0x02c8 label_0AB0: // Incoming jump from 0x0A59, if stack[-1] & (0x01 << 0xa0) - 0x01 // Inputs[6] // { // @0AB4 storage[0x00] // @0AC7 stack[-1] // @0AD0 memory[0x40:0x60] // @0AD3 msg.sender // @0AF8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00] // @0AFA stack[-2] // } 0AB0 5B JUMPDEST 0AB1 60 PUSH1 0x00 0AB3 80 DUP1 0AB4 54 SLOAD 0AB5 60 PUSH1 0x01 0AB7 60 PUSH1 0x01 0AB9 60 PUSH1 0xa0 0ABB 1B SHL 0ABC 03 SUB 0ABD 19 NOT 0ABE 16 AND 0ABF 60 PUSH1 0x01 0AC1 60 PUSH1 0x01 0AC3 60 PUSH1 0xa0 0AC5 1B SHL 0AC6 03 SUB 0AC7 83 DUP4 0AC8 16 AND 0AC9 90 SWAP1 0ACA 81 DUP2 0ACB 17 OR 0ACC 82 DUP3 0ACD 55 SSTORE 0ACE 60 PUSH1 0x40 0AD0 51 MLOAD 0AD1 90 SWAP1 0AD2 91 SWAP2 0AD3 33 CALLER 0AD4 91 SWAP2 0AD5 7F PUSH32 0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0 0AF6 91 SWAP2 0AF7 90 SWAP1 0AF8 A3 LOG3 0AF9 50 POP 0AFA 56 *JUMP // Stack delta = -2 // Outputs[2] // { // @0ACD storage[0x00] = (stack[-1] & (0x01 << 0xa0) - 0x01) | (~((0x01 << 0xa0) - 0x01) & storage[0x00]) // @0AF8 log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, msg.sender, stack[-1] & (0x01 << 0xa0) - 0x01]); // } // Block ends with unconditional jump to stack[-2] label_0AFB: // Incoming call from 0x036B, returns to 0x036C // Incoming call from 0x0331, returns to 0x0332 // Inputs[6] // { // @0AFF memory[0x40:0x60] // @0B05 stack[-1] // @0B09 memory[0x40:0x60] // @0B1F memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] // @0B37 storage[0x01] // @0B38 stack[-2] // } 0AFB 5B JUMPDEST 0AFC 60 PUSH1 0x40 0AFE 80 DUP1 0AFF 51 MLOAD 0B00 60 PUSH1 0x24 0B02 80 DUP1 0B03 82 DUP3 0B04 01 ADD 0B05 84 DUP5 0B06 90 SWAP1 0B07 52 MSTORE 0B08 82 DUP3 0B09 51 MLOAD 0B0A 80 DUP1 0B0B 83 DUP4 0B0C 03 SUB 0B0D 90 SWAP1 0B0E 91 SWAP2 0B0F 01 ADD 0B10 81 DUP2 0B11 52 MSTORE 0B12 60 PUSH1 0x44 0B14 90 SWAP1 0B15 91 SWAP2 0B16 01 ADD 0B17 90 SWAP1 0B18 91 SWAP2 0B19 52 MSTORE 0B1A 60 PUSH1 0x20 0B1C 81 DUP2 0B1D 01 ADD 0B1E 80 DUP1 0B1F 51 MLOAD 0B20 60 PUSH1 0x01 0B22 60 PUSH1 0x01 0B24 60 PUSH1 0xe0 0B26 1B SHL 0B27 03 SUB 0B28 16 AND 0B29 63 PUSH4 0x6198e339 0B2E 60 PUSH1 0xe0 0B30 1B SHL 0B31 17 OR 0B32 90 SWAP1 0B33 52 MSTORE 0B34 60 PUSH1 0x01 0B36 80 DUP1 0B37 54 SLOAD 0B38 84 DUP5 0B39 90 SWAP1 0B3A 81 DUP2 0B3B 10 LT 0B3C 61 PUSH2 0x0b47 0B3F 57 *JUMPI // Stack delta = +3 // Outputs[7] // { // @0B07 memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = stack[-1] // @0B11 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x24 + (memory[0x40:0x60] - memory[0x40:0x60]) // @0B18 stack[0] = memory[0x40:0x60] // @0B19 memory[0x40:0x60] = memory[0x40:0x60] + 0x44 // @0B33 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] = (0x6198e339 << 0xe0) | ((0x01 << 0xe0) - 0x01 & memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20]) // @0B34 stack[1] = 0x01 // @0B39 stack[2] = stack[-2] // } // Block ends with conditional jump to 0x0b47, if stack[-2] < storage[0x01] label_0B40: // Incoming jump from 0x0B3F, if not stack[-2] < storage[0x01] 0B40 61 PUSH2 0x0b47 0B43 61 PUSH2 0x10af 0B46 56 *JUMP // Stack delta = +1 // Outputs[1] { @0B40 stack[0] = 0x0b47 } // Block ends with unconditional jump to 0x10af label_0B47: // Incoming jump from 0x0B3F, if stack[-2] < storage[0x01] // Inputs[6] // { // @0B4A stack[-2] // @0B4F stack[-1] // @0B51 memory[0x00:0x20] // @0B53 storage[keccak256(memory[0x00:0x20]) + stack[-1]] // @0B56 memory[0x40:0x60] // @0B99 stack[-3] // } 0B47 5B JUMPDEST 0B48 60 PUSH1 0x00 0B4A 91 SWAP2 0B4B 82 DUP3 0B4C 52 MSTORE 0B4D 60 PUSH1 0x20 0B4F 90 SWAP1 0B50 91 SWAP2 0B51 20 SHA3 0B52 01 ADD 0B53 54 SLOAD 0B54 60 PUSH1 0x40 0B56 51 MLOAD 0B57 63 PUSH4 0x49e9d3db 0B5C 60 PUSH1 0xe1 0B5E 1B SHL 0B5F 81 DUP2 0B60 52 MSTORE 0B61 60 PUSH1 0x01 0B63 60 PUSH1 0x01 0B65 60 PUSH1 0xa0 0B67 1B SHL 0B68 03 SUB 0B69 90 SWAP1 0B6A 91 SWAP2 0B6B 16 AND 0B6C 90 SWAP1 0B6D 63 PUSH4 0x93d3a7b6 0B72 90 SWAP1 0B73 61 PUSH2 0x0ba2 0B76 90 SWAP1 0B77 7F PUSH32 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce 0B98 90 SWAP1 0B99 85 DUP6 0B9A 90 SWAP1 0B9B 60 PUSH1 0x04 0B9D 01 ADD 0B9E 61 PUSH2 0x11b9 0BA1 56 *JUMP // Stack delta = +4 // Outputs[8] // { // @0B4C memory[0x00:0x20] = stack[-2] // @0B60 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x49e9d3db << 0xe1 // @0B6C stack[-2] = storage[keccak256(memory[0x00:0x20]) + stack[-1]] & (0x01 << 0xa0) - 0x01 // @0B72 stack[-1] = 0x93d3a7b6 // @0B76 stack[0] = 0x0ba2 // @0B98 stack[1] = 0x0000000000000000000000005efda50f22d34f262c29268506c5fa42cb56a1ce // @0B9A stack[2] = stack[-3] // @0B9D stack[3] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x11b9, returns to 0x0BA2 label_0BA2: // Incoming return from call to 0x11B9 at 0x0BA1 // Inputs[4] // { // @0BA7 memory[0x40:0x60] // @0BA9 stack[-1] // @0BAE stack[-3] // @0BB0 address(stack[-3]).code.length // } 0BA2 5B JUMPDEST 0BA3 60 PUSH1 0x00 0BA5 60 PUSH1 0x40 0BA7 51 MLOAD 0BA8 80 DUP1 0BA9 83 DUP4 0BAA 03 SUB 0BAB 81 DUP2 0BAC 60 PUSH1 0x00 0BAE 87 DUP8 0BAF 80 DUP1 0BB0 3B EXTCODESIZE 0BB1 15 ISZERO 0BB2 80 DUP1 0BB3 15 ISZERO 0BB4 61 PUSH2 0x0bbc 0BB7 57 *JUMPI // Stack delta = +7 // Outputs[7] // { // @0BA3 stack[0] = 0x00 // @0BA7 stack[1] = memory[0x40:0x60] // @0BAA stack[2] = stack[-1] - memory[0x40:0x60] // @0BAB stack[3] = memory[0x40:0x60] // @0BAC stack[4] = 0x00 // @0BAE stack[5] = stack[-3] // @0BB1 stack[6] = !address(stack[-3]).code.length // } // Block ends with conditional jump to 0x0bbc, if !!address(stack[-3]).code.length label_0BB8: // Incoming jump from 0x0BB7, if not !!address(stack[-3]).code.length // Inputs[1] { @0BBB memory[0x00:0x00] } 0BB8 60 PUSH1 0x00 0BBA 80 DUP1 0BBB FD *REVERT // Stack delta = +0 // Outputs[1] { @0BBB revert(memory[0x00:0x00]); } // Block terminates label_0BBC: // Incoming jump from 0x0BB7, if !!address(stack[-3]).code.length // Inputs[9] // { // @0BBE msg.gas // @0BBF stack[-6] // @0BBF stack[-5] // @0BBF stack[-4] // @0BBF stack[-3] // @0BBF memory[stack[-4]:stack[-4] + stack[-5]] // @0BBF stack[-7] // @0BBF stack[-2] // @0BBF address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } 0BBC 5B JUMPDEST 0BBD 50 POP 0BBE 5A GAS 0BBF F1 CALL 0BC0 15 ISZERO 0BC1 80 DUP1 0BC2 15 ISZERO 0BC3 61 PUSH2 0x0bd0 0BC6 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @0BBF memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0BC0 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x0bd0, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_0BC7: // Incoming jump from 0x0BC6, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @0BC7 returndata.length // @0BCB returndata[0x00:0x00 + returndata.length] // @0BCC returndata.length // @0BCF memory[0x00:0x00 + returndata.length] // } 0BC7 3D RETURNDATASIZE 0BC8 60 PUSH1 0x00 0BCA 80 DUP1 0BCB 3E RETURNDATACOPY 0BCC 3D RETURNDATASIZE 0BCD 60 PUSH1 0x00 0BCF FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0BCB memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0BCF revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0BD0: // Incoming jump from 0x0BC6, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[9] // { // @0BD6 memory[0x40:0x60] // @0BD7 address(this) // @0BE2 stack[-6] // @0BE6 memory[0x40:0x60] // @0BFC memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] // @0C14 storage[0x01] // @0C16 stack[-4] // @0C18 stack[-3] // @0C1A stack[-7] // } 0BD0 5B JUMPDEST 0BD1 50 POP 0BD2 50 POP 0BD3 60 PUSH1 0x40 0BD5 80 DUP1 0BD6 51 MLOAD 0BD7 30 ADDRESS 0BD8 60 PUSH1 0x24 0BDA 82 DUP3 0BDB 01 ADD 0BDC 52 MSTORE 0BDD 60 PUSH1 0x44 0BDF 80 DUP1 0BE0 82 DUP3 0BE1 01 ADD 0BE2 87 DUP8 0BE3 90 SWAP1 0BE4 52 MSTORE 0BE5 82 DUP3 0BE6 51 MLOAD 0BE7 80 DUP1 0BE8 83 DUP4 0BE9 03 SUB 0BEA 90 SWAP1 0BEB 91 SWAP2 0BEC 01 ADD 0BED 81 DUP2 0BEE 52 MSTORE 0BEF 60 PUSH1 0x64 0BF1 90 SWAP1 0BF2 91 SWAP2 0BF3 01 ADD 0BF4 90 SWAP1 0BF5 91 SWAP2 0BF6 52 MSTORE 0BF7 60 PUSH1 0x20 0BF9 81 DUP2 0BFA 01 ADD 0BFB 80 DUP1 0BFC 51 MLOAD 0BFD 60 PUSH1 0x01 0BFF 60 PUSH1 0x01 0C01 60 PUSH1 0xe0 0C03 1B SHL 0C04 03 SUB 0C05 16 AND 0C06 63 PUSH4 0xa9059cbb 0C0B 60 PUSH1 0xe0 0C0D 1B SHL 0C0E 17 OR 0C0F 90 SWAP1 0C10 52 MSTORE 0C11 60 PUSH1 0x01 0C13 80 DUP1 0C14 54 SLOAD 0C15 91 SWAP2 0C16 93 SWAP4 0C17 50 POP 0C18 91 SWAP2 0C19 50 POP 0C1A 85 DUP6 0C1B 90 SWAP1 0C1C 81 DUP2 0C1D 10 LT 0C1E 61 PUSH2 0x0c29 0C21 57 *JUMPI // Stack delta = -1 // Outputs[8] // { // @0BDC memory[memory[0x40:0x60] + 0x24:memory[0x40:0x60] + 0x24 + 0x20] = address(this) // @0BE4 memory[memory[0x40:0x60] + 0x44:memory[0x40:0x60] + 0x44 + 0x20] = stack[-6] // @0BEE memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x44 + (memory[0x40:0x60] - memory[0x40:0x60]) // @0BF6 memory[0x40:0x60] = memory[0x40:0x60] + 0x64 // @0C10 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20] = (0xa9059cbb << 0xe0) | ((0x01 << 0xe0) - 0x01 & memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + 0x20]) // @0C16 stack[-4] = memory[0x40:0x60] // @0C18 stack[-3] = 0x01 // @0C1B stack[-2] = stack[-7] // } // Block ends with conditional jump to 0x0c29, if stack[-7] < storage[0x01] label_0C22: // Incoming jump from 0x0C21, if not stack[-7] < storage[0x01] 0C22 61 PUSH2 0x0c29 0C25 61 PUSH2 0x10af 0C28 56 *JUMP // Stack delta = +1 // Outputs[1] { @0C22 stack[0] = 0x0c29 } // Block ends with unconditional jump to 0x10af label_0C29: // Incoming jump from 0x0C21, if stack[-7] < storage[0x01] // Inputs[6] // { // @0C2C stack[-2] // @0C31 stack[-1] // @0C33 memory[0x00:0x20] // @0C35 storage[keccak256(memory[0x00:0x20]) + stack[-1]] // @0C38 memory[0x40:0x60] // @0C7B stack[-3] // } 0C29 5B JUMPDEST 0C2A 60 PUSH1 0x00 0C2C 91 SWAP2 0C2D 82 DUP3 0C2E 52 MSTORE 0C2F 60 PUSH1 0x20 0C31 90 SWAP1 0C32 91 SWAP2 0C33 20 SHA3 0C34 01 ADD 0C35 54 SLOAD 0C36 60 PUSH1 0x40 0C38 51 MLOAD 0C39 63 PUSH4 0x49e9d3db 0C3E 60 PUSH1 0xe1 0C40 1B SHL 0C41 81 DUP2 0C42 52 MSTORE 0C43 60 PUSH1 0x01 0C45 60 PUSH1 0x01 0C47 60 PUSH1 0xa0 0C49 1B SHL 0C4A 03 SUB 0C4B 90 SWAP1 0C4C 91 SWAP2 0C4D 16 AND 0C4E 90 SWAP1 0C4F 63 PUSH4 0x93d3a7b6 0C54 90 SWAP1 0C55 61 PUSH2 0x0c84 0C58 90 SWAP1 0C59 7F PUSH32 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c 0C7A 90 SWAP1 0C7B 85 DUP6 0C7C 90 SWAP1 0C7D 60 PUSH1 0x04 0C7F 01 ADD 0C80 61 PUSH2 0x11b9 0C83 56 *JUMP // Stack delta = +4 // Outputs[8] // { // @0C2E memory[0x00:0x20] = stack[-2] // @0C42 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x49e9d3db << 0xe1 // @0C4E stack[-2] = storage[keccak256(memory[0x00:0x20]) + stack[-1]] & (0x01 << 0xa0) - 0x01 // @0C54 stack[-1] = 0x93d3a7b6 // @0C58 stack[0] = 0x0c84 // @0C7A stack[1] = 0x00000000000000000000000077777feddddffc19ff86db637967013e6c6a116c // @0C7C stack[2] = stack[-3] // @0C7F stack[3] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x11b9, returns to 0x0C84 label_0C84: // Incoming return from call to 0x11B9 at 0x0C83 // Inputs[4] // { // @0C89 memory[0x40:0x60] // @0C8B stack[-1] // @0C90 stack[-3] // @0C92 address(stack[-3]).code.length // } 0C84 5B JUMPDEST 0C85 60 PUSH1 0x00 0C87 60 PUSH1 0x40 0C89 51 MLOAD 0C8A 80 DUP1 0C8B 83 DUP4 0C8C 03 SUB 0C8D 81 DUP2 0C8E 60 PUSH1 0x00 0C90 87 DUP8 0C91 80 DUP1 0C92 3B EXTCODESIZE 0C93 15 ISZERO 0C94 80 DUP1 0C95 15 ISZERO 0C96 61 PUSH2 0x0c9e 0C99 57 *JUMPI // Stack delta = +7 // Outputs[7] // { // @0C85 stack[0] = 0x00 // @0C89 stack[1] = memory[0x40:0x60] // @0C8C stack[2] = stack[-1] - memory[0x40:0x60] // @0C8D stack[3] = memory[0x40:0x60] // @0C8E stack[4] = 0x00 // @0C90 stack[5] = stack[-3] // @0C93 stack[6] = !address(stack[-3]).code.length // } // Block ends with conditional jump to 0x0c9e, if !!address(stack[-3]).code.length label_0C9A: // Incoming jump from 0x0C99, if not !!address(stack[-3]).code.length // Inputs[1] { @0C9D memory[0x00:0x00] } 0C9A 60 PUSH1 0x00 0C9C 80 DUP1 0C9D FD *REVERT // Stack delta = +0 // Outputs[1] { @0C9D revert(memory[0x00:0x00]); } // Block terminates label_0C9E: // Incoming jump from 0x0C99, if !!address(stack[-3]).code.length // Inputs[9] // { // @0CA0 msg.gas // @0CA1 stack[-7] // @0CA1 stack[-3] // @0CA1 stack[-6] // @0CA1 memory[stack[-4]:stack[-4] + stack[-5]] // @0CA1 stack[-4] // @0CA1 stack[-2] // @0CA1 address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0CA1 stack[-5] // } 0C9E 5B JUMPDEST 0C9F 50 POP 0CA0 5A GAS 0CA1 F1 CALL 0CA2 15 ISZERO 0CA3 80 DUP1 0CA4 15 ISZERO 0CA5 61 PUSH2 0x0cb2 0CA8 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @0CA1 memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0CA2 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x0cb2, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_0CA9: // Incoming jump from 0x0CA8, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @0CA9 returndata.length // @0CAD returndata[0x00:0x00 + returndata.length] // @0CAE returndata.length // @0CB1 memory[0x00:0x00 + returndata.length] // } 0CA9 3D RETURNDATASIZE 0CAA 60 PUSH1 0x00 0CAC 80 DUP1 0CAD 3E RETURNDATACOPY 0CAE 3D RETURNDATASIZE 0CAF 60 PUSH1 0x00 0CB1 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0CAD memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0CB1 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0CB2: // Incoming jump from 0x0CA8, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[1] { @0CBB stack[-9] } 0CB2 5B JUMPDEST 0CB3 50 POP 0CB4 50 POP 0CB5 50 POP 0CB6 50 POP 0CB7 50 POP 0CB8 50 POP 0CB9 50 POP 0CBA 50 POP 0CBB 56 *JUMP // Stack delta = -9 // Block ends with unconditional jump to stack[-9] label_0CBC: // Incoming call from 0x05C5, returns to 0x05C6 // Incoming jump from 0x0661 // Inputs[2] // { // @0CBF stack[-3] // @0CC1 storage[0x01] // } 0CBC 5B JUMPDEST 0CBD 60 PUSH1 0x01 0CBF 83 DUP4 0CC0 81 DUP2 0CC1 54 SLOAD 0CC2 81 DUP2 0CC3 10 LT 0CC4 61 PUSH2 0x0ccf 0CC7 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0CBD stack[0] = 0x01 // @0CBF stack[1] = stack[-3] // } // Block ends with conditional jump to 0x0ccf, if stack[-3] < storage[0x01] label_0CC8: // Incoming jump from 0x0CC7, if not stack[-3] < storage[0x01] 0CC8 61 PUSH2 0x0ccf 0CCB 61 PUSH2 0x10af 0CCE 56 *JUMP // Stack delta = +1 // Outputs[1] { @0CC8 stack[0] = 0x0ccf } // Block ends with unconditional jump to 0x10af label_0CCF: // Incoming jump from 0x0CC7, if stack[-3] < storage[0x01] // Inputs[7] // { // @0CD2 stack[-2] // @0CD7 stack[-1] // @0CD9 memory[0x00:0x20] // @0CDB storage[keccak256(memory[0x00:0x20]) + stack[-1]] // @0CDE memory[0x40:0x60] // @0CFF stack[-4] // @0D01 stack[-3] // } 0CCF 5B JUMPDEST 0CD0 60 PUSH1 0x00 0CD2 91 SWAP2 0CD3 82 DUP3 0CD4 52 MSTORE 0CD5 60 PUSH1 0x20 0CD7 90 SWAP1 0CD8 91 SWAP2 0CD9 20 SHA3 0CDA 01 ADD 0CDB 54 SLOAD 0CDC 60 PUSH1 0x40 0CDE 51 MLOAD 0CDF 63 PUSH4 0x49e9d3db 0CE4 60 PUSH1 0xe1 0CE6 1B SHL 0CE7 81 DUP2 0CE8 52 MSTORE 0CE9 60 PUSH1 0x01 0CEB 60 PUSH1 0x01 0CED 60 PUSH1 0xa0 0CEF 1B SHL 0CF0 03 SUB 0CF1 90 SWAP1 0CF2 91 SWAP2 0CF3 16 AND 0CF4 90 SWAP1 0CF5 63 PUSH4 0x93d3a7b6 0CFA 90 SWAP1 0CFB 61 PUSH2 0x0d0a 0CFE 90 SWAP1 0CFF 85 DUP6 0D00 90 SWAP1 0D01 85 DUP6 0D02 90 SWAP1 0D03 60 PUSH1 0x04 0D05 01 ADD 0D06 61 PUSH2 0x11b9 0D09 56 *JUMP // Stack delta = +4 // Outputs[8] // { // @0CD4 memory[0x00:0x20] = stack[-2] // @0CE8 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x49e9d3db << 0xe1 // @0CF4 stack[-2] = storage[keccak256(memory[0x00:0x20]) + stack[-1]] & (0x01 << 0xa0) - 0x01 // @0CFA stack[-1] = 0x93d3a7b6 // @0CFE stack[0] = 0x0d0a // @0D00 stack[1] = stack[-4] // @0D02 stack[2] = stack[-3] // @0D05 stack[3] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x11b9, returns to 0x0D0A label_0D0A: // Incoming return from call to 0x11B9 at 0x0D09 // Inputs[4] // { // @0D0F memory[0x40:0x60] // @0D11 stack[-1] // @0D16 stack[-3] // @0D18 address(stack[-3]).code.length // } 0D0A 5B JUMPDEST 0D0B 60 PUSH1 0x00 0D0D 60 PUSH1 0x40 0D0F 51 MLOAD 0D10 80 DUP1 0D11 83 DUP4 0D12 03 SUB 0D13 81 DUP2 0D14 60 PUSH1 0x00 0D16 87 DUP8 0D17 80 DUP1 0D18 3B EXTCODESIZE 0D19 15 ISZERO 0D1A 80 DUP1 0D1B 15 ISZERO 0D1C 61 PUSH2 0x0d24 0D1F 57 *JUMPI // Stack delta = +7 // Outputs[7] // { // @0D0B stack[0] = 0x00 // @0D0F stack[1] = memory[0x40:0x60] // @0D12 stack[2] = stack[-1] - memory[0x40:0x60] // @0D13 stack[3] = memory[0x40:0x60] // @0D14 stack[4] = 0x00 // @0D16 stack[5] = stack[-3] // @0D19 stack[6] = !address(stack[-3]).code.length // } // Block ends with conditional jump to 0x0d24, if !!address(stack[-3]).code.length label_0D20: // Incoming jump from 0x0D1F, if not !!address(stack[-3]).code.length // Inputs[1] { @0D23 memory[0x00:0x00] } 0D20 60 PUSH1 0x00 0D22 80 DUP1 0D23 FD *REVERT // Stack delta = +0 // Outputs[1] { @0D23 revert(memory[0x00:0x00]); } // Block terminates label_0D24: // Incoming jump from 0x0D1F, if !!address(stack[-3]).code.length // Inputs[9] // { // @0D26 msg.gas // @0D27 stack[-6] // @0D27 stack[-4] // @0D27 stack[-7] // @0D27 stack[-3] // @0D27 stack[-5] // @0D27 memory[stack[-4]:stack[-4] + stack[-5]] // @0D27 stack[-2] // @0D27 address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } 0D24 5B JUMPDEST 0D25 50 POP 0D26 5A GAS 0D27 F1 CALL 0D28 15 ISZERO 0D29 80 DUP1 0D2A 15 ISZERO 0D2B 61 PUSH2 0x0d38 0D2E 57 *JUMPI // Stack delta = -6 // Outputs[2] // { // @0D27 memory[stack[-6]:stack[-6] + stack[-7]] = address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // @0D28 stack[-7] = !address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // } // Block ends with conditional jump to 0x0d38, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) label_0D2F: // Incoming jump from 0x0D2E, if not !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[4] // { // @0D2F returndata.length // @0D33 returndata[0x00:0x00 + returndata.length] // @0D34 returndata.length // @0D37 memory[0x00:0x00 + returndata.length] // } 0D2F 3D RETURNDATASIZE 0D30 60 PUSH1 0x00 0D32 80 DUP1 0D33 3E RETURNDATACOPY 0D34 3D RETURNDATASIZE 0D35 60 PUSH1 0x00 0D37 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @0D33 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0D37 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_0D38: // Incoming jump from 0x0D2E, if !!address(stack[-2]).call.gas(msg.gas).value(stack[-3])(memory[stack[-4]:stack[-4] + stack[-5]]) // Inputs[1] { @0D40 stack[-8] } 0D38 5B JUMPDEST 0D39 50 POP 0D3A 50 POP 0D3B 50 POP 0D3C 50 POP 0D3D 50 POP 0D3E 50 POP 0D3F 50 POP 0D40 56 *JUMP // Stack delta = -8 // Block ends with unconditional jump to stack[-8] label_0D41: // Incoming call from 0x07EA, returns to 0x07EB // Inputs[2] // { // @0D49 stack[-1] // @0D4C stack[-2] // } 0D41 5B JUMPDEST 0D42 61 PUSH2 0x01d7 0D45 80 DUP1 0D46 61 PUSH2 0x11fc 0D49 83 DUP4 0D4A 39 CODECOPY 0D4B 01 ADD 0D4C 90 SWAP1 0D4D 56 *JUMP // Stack delta = -1 // Outputs[2] // { // @0D4A memory[stack[-1]:stack[-1] + 0x01d7] = code[0x11fc:0x13d3] // @0D4C stack[-2] = 0x01d7 + stack[-1] // } // Block ends with unconditional jump to stack[-2] label_0D4E: // Incoming call from 0x00FE, returns to 0x00FF // Incoming call from 0x00C6, returns to 0x00C7 // Incoming call from 0x0129, returns to 0x012A // Inputs[2] // { // @0D53 stack[-1] // @0D54 stack[-2] // } 0D4E 5B JUMPDEST 0D4F 60 PUSH1 0x00 0D51 60 PUSH1 0x20 0D53 82 DUP3 0D54 84 DUP5 0D55 03 SUB 0D56 12 SLT 0D57 15 ISZERO 0D58 61 PUSH2 0x0d60 0D5B 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0D4F stack[0] = 0x00 } // Block ends with conditional jump to 0x0d60, if !(stack[-2] - stack[-1] i< 0x20) label_0D5C: // Incoming jump from 0x0D5B, if not !(stack[-2] - stack[-1] i< 0x20) // Inputs[1] { @0D5F memory[0x00:0x00] } 0D5C 60 PUSH1 0x00 0D5E 80 DUP1 0D5F FD *REVERT // Stack delta = +0 // Outputs[1] { @0D5F revert(memory[0x00:0x00]); } // Block terminates label_0D60: // Incoming jump from 0x0D5B, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[4] // { // @0D62 msg.data[stack[-2]:stack[-2] + 0x20] // @0D62 stack[-2] // @0D63 stack[-4] // @0D64 stack[-3] // } 0D60 5B JUMPDEST 0D61 50 POP 0D62 35 CALLDATALOAD 0D63 91 SWAP2 0D64 90 SWAP1 0D65 50 POP 0D66 56 *JUMP // Stack delta = -3 // Outputs[1] { @0D63 stack[-4] = msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to stack[-4] label_0D67: // Incoming call from 0x1038, returns to 0x1039 // Incoming call from 0x0D9E, returns to 0x0D9F // Incoming call from 0x10A7, returns to 0x10A8 // Incoming call from 0x0E88, returns to 0x0E89 // Inputs[2] // { // @0D68 stack[-1] // @0D69 msg.data[stack[-1]:stack[-1] + 0x20] // } 0D67 5B JUMPDEST 0D68 80 DUP1 0D69 35 CALLDATALOAD 0D6A 60 PUSH1 0x01 0D6C 60 PUSH1 0x01 0D6E 60 PUSH1 0xa0 0D70 1B SHL 0D71 03 SUB 0D72 81 DUP2 0D73 16 AND 0D74 81 DUP2 0D75 14 EQ 0D76 61 PUSH2 0x0d7e 0D79 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0D69 stack[0] = msg.data[stack[-1]:stack[-1] + 0x20] } // Block ends with conditional jump to 0x0d7e, if msg.data[stack[-1]:stack[-1] + 0x20] == msg.data[stack[-1]:stack[-1] + 0x20] & (0x01 << 0xa0) - 0x01 label_0D7A: // Incoming jump from 0x0D79, if not msg.data[stack[-1]:stack[-1] + 0x20] == msg.data[stack[-1]:stack[-1] + 0x20] & (0x01 << 0xa0) - 0x01 // Inputs[1] { @0D7D memory[0x00:0x00] } 0D7A 60 PUSH1 0x00 0D7C 80 DUP1 0D7D FD *REVERT // Stack delta = +0 // Outputs[1] { @0D7D revert(memory[0x00:0x00]); } // Block terminates label_0D7E: // Incoming jump from 0x0D79, if msg.data[stack[-1]:stack[-1] + 0x20] == msg.data[stack[-1]:stack[-1] + 0x20] & (0x01 << 0xa0) - 0x01 // Inputs[3] // { // @0D7F stack[-3] // @0D7F stack[-1] // @0D80 stack[-2] // } 0D7E 5B JUMPDEST 0D7F 91 SWAP2 0D80 90 SWAP1 0D81 50 POP 0D82 56 *JUMP // Stack delta = -2 // Outputs[1] { @0D7F stack[-3] = stack[-1] } // Block ends with unconditional jump to stack[-3] label_0D83: // Incoming call from 0x013E, returns to 0x013F // Inputs[2] // { // @0D89 stack[-1] // @0D8A stack[-2] // } 0D83 5B JUMPDEST 0D84 60 PUSH1 0x00 0D86 80 DUP1 0D87 60 PUSH1 0x40 0D89 83 DUP4 0D8A 85 DUP6 0D8B 03 SUB 0D8C 12 SLT 0D8D 15 ISZERO 0D8E 61 PUSH2 0x0d96 0D91 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0D84 stack[0] = 0x00 // @0D86 stack[1] = 0x00 // } // Block ends with conditional jump to 0x0d96, if !(stack[-2] - stack[-1] i< 0x40) label_0D92: // Incoming jump from 0x0D91, if not !(stack[-2] - stack[-1] i< 0x40) // Inputs[1] { @0D95 memory[0x00:0x00] } 0D92 60 PUSH1 0x00 0D94 80 DUP1 0D95 FD *REVERT // Stack delta = +0 // Outputs[1] { @0D95 revert(memory[0x00:0x00]); } // Block terminates label_0D96: // Incoming jump from 0x0D91, if !(stack[-2] - stack[-1] i< 0x40) // Inputs[1] { @0D9A stack[-3] } 0D96 5B JUMPDEST 0D97 61 PUSH2 0x0d9f 0D9A 83 DUP4 0D9B 61 PUSH2 0x0d67 0D9E 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0D97 stack[0] = 0x0d9f // @0D9A stack[1] = stack[-3] // } // Block ends with call to 0x0d67, returns to 0x0D9F label_0D9F: // Incoming return from call to 0x0D67 at 0x0D9E // Inputs[5] // { // @0DA0 stack[-1] // @0DA0 stack[-6] // @0DA3 stack[-4] // @0DA7 msg.data[0x20 + stack[-4]:0x20 + stack[-4] + 0x20] // @0DA8 stack[-5] // } 0D9F 5B JUMPDEST 0DA0 94 SWAP5 0DA1 60 PUSH1 0x20 0DA3 93 SWAP4 0DA4 90 SWAP1 0DA5 93 SWAP4 0DA6 01 ADD 0DA7 35 CALLDATALOAD 0DA8 93 SWAP4 0DA9 50 POP 0DAA 50 POP 0DAB 50 POP 0DAC 56 *JUMP // Stack delta = -4 // Outputs[2] // { // @0DA0 stack[-6] = stack[-1] // @0DA8 stack[-5] = msg.data[0x20 + stack[-4]:0x20 + stack[-4] + 0x20] // } // Block ends with unconditional jump to stack[-6] label_0DAD: // Incoming jump from 0x0E1E // Incoming jump from 0x0DEB // Incoming jump from 0x0FA3 // Inputs[1] { @0DC2 memory[0x00:0x24] } 0DAD 5B JUMPDEST 0DAE 63 PUSH4 0x4e487b71 0DB3 60 PUSH1 0xe0 0DB5 1B SHL 0DB6 60 PUSH1 0x00 0DB8 52 MSTORE 0DB9 60 PUSH1 0x41 0DBB 60 PUSH1 0x04 0DBD 52 MSTORE 0DBE 60 PUSH1 0x24 0DC0 60 PUSH1 0x00 0DC2 FD *REVERT // Stack delta = +0 // Outputs[3] // { // @0DB8 memory[0x00:0x20] = 0x4e487b71 << 0xe0 // @0DBD memory[0x04:0x24] = 0x41 // @0DC2 revert(memory[0x00:0x24]); // } // Block terminates label_0DC3: // Incoming call from 0x0E31, returns to 0x0E32 // Incoming call from 0x0FB2, returns to 0x0FB3 // Inputs[2] // { // @0DC6 memory[0x40:0x60] // @0DC9 stack[-1] // } 0DC3 5B JUMPDEST 0DC4 60 PUSH1 0x40 0DC6 51 MLOAD 0DC7 60 PUSH1 0x1f 0DC9 82 DUP3 0DCA 01 ADD 0DCB 60 PUSH1 0x1f 0DCD 19 NOT 0DCE 16 AND 0DCF 81 DUP2 0DD0 01 ADD 0DD1 67 PUSH8 0xffffffffffffffff 0DDA 81 DUP2 0DDB 11 GT 0DDC 82 DUP3 0DDD 82 DUP3 0DDE 10 LT 0DDF 17 OR 0DE0 15 ISZERO 0DE1 61 PUSH2 0x0dec 0DE4 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0DC6 stack[0] = memory[0x40:0x60] // @0DD0 stack[1] = memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) // } // Block ends with conditional jump to 0x0dec, if !((memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) < memory[0x40:0x60]) | (memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) > 0xffffffffffffffff)) label_0DE5: // Incoming jump from 0x0DE4, if not !((memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) < memory[0x40:0x60]) | (memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) > 0xffffffffffffffff)) 0DE5 61 PUSH2 0x0dec 0DE8 61 PUSH2 0x0dad 0DEB 56 *JUMP // Stack delta = +1 // Outputs[1] { @0DE5 stack[0] = 0x0dec } // Block ends with unconditional jump to 0x0dad label_0DEC: // Incoming jump from 0x0DE4, if !((memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) < memory[0x40:0x60]) | (memory[0x40:0x60] + (~0x1f & stack[-1] + 0x1f) > 0xffffffffffffffff)) // Inputs[4] // { // @0DEF stack[-1] // @0DF0 stack[-4] // @0DF0 stack[-2] // @0DF1 stack[-3] // } 0DEC 5B JUMPDEST 0DED 60 PUSH1 0x40 0DEF 52 MSTORE 0DF0 91 SWAP2 0DF1 90 SWAP1 0DF2 50 POP 0DF3 56 *JUMP // Stack delta = -3 // Outputs[2] // { // @0DEF memory[0x40:0x60] = stack[-1] // @0DF0 stack[-4] = stack[-2] // } // Block ends with unconditional jump to stack[-4] label_0DF4: // Incoming call from 0x0FF8, returns to 0x0FF9 // Incoming call from 0x1060, returns to 0x1061 // Incoming call from 0x0EB0, returns to 0x0EB1 // Inputs[2] // { // @0DF7 stack[-2] // @0DFA stack[-1] // } 0DF4 5B JUMPDEST 0DF5 60 PUSH1 0x00 0DF7 82 DUP3 0DF8 60 PUSH1 0x1f 0DFA 83 DUP4 0DFB 01 ADD 0DFC 12 SLT 0DFD 61 PUSH2 0x0e05 0E00 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0DF5 stack[0] = 0x00 } // Block ends with conditional jump to 0x0e05, if stack[-1] + 0x1f i< stack[-2] label_0E01: // Incoming jump from 0x0E00, if not stack[-1] + 0x1f i< stack[-2] // Inputs[1] { @0E04 memory[0x00:0x00] } 0E01 60 PUSH1 0x00 0E03 80 DUP1 0E04 FD *REVERT // Stack delta = +0 // Outputs[1] { @0E04 revert(memory[0x00:0x00]); } // Block terminates label_0E05: // Incoming jump from 0x0E00, if stack[-1] + 0x1f i< stack[-2] // Inputs[2] // { // @0E06 stack[-2] // @0E07 msg.data[stack[-2]:stack[-2] + 0x20] // } 0E05 5B JUMPDEST 0E06 81 DUP2 0E07 35 CALLDATALOAD 0E08 67 PUSH8 0xffffffffffffffff 0E11 81 DUP2 0E12 11 GT 0E13 15 ISZERO 0E14 61 PUSH2 0x0e1f 0E17 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0E07 stack[0] = msg.data[stack[-2]:stack[-2] + 0x20] } // Block ends with conditional jump to 0x0e1f, if !(msg.data[stack[-2]:stack[-2] + 0x20] > 0xffffffffffffffff) label_0E18: // Incoming jump from 0x0E17, if not !(msg.data[stack[-2]:stack[-2] + 0x20] > 0xffffffffffffffff) 0E18 61 PUSH2 0x0e1f 0E1B 61 PUSH2 0x0dad 0E1E 56 *JUMP // Stack delta = +1 // Outputs[1] { @0E18 stack[0] = 0x0e1f } // Block ends with unconditional jump to 0x0dad label_0E1F: // Incoming jump from 0x0E17, if !(msg.data[stack[-2]:stack[-2] + 0x20] > 0xffffffffffffffff) // Inputs[1] { @0E25 stack[-1] } 0E1F 5B JUMPDEST 0E20 61 PUSH2 0x0e32 0E23 60 PUSH1 0x1f 0E25 82 DUP3 0E26 01 ADD 0E27 60 PUSH1 0x1f 0E29 19 NOT 0E2A 16 AND 0E2B 60 PUSH1 0x20 0E2D 01 ADD 0E2E 61 PUSH2 0x0dc3 0E31 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0E20 stack[0] = 0x0e32 // @0E2D stack[1] = 0x20 + (~0x1f & stack[-1] + 0x1f) // } // Block ends with call to 0x0dc3, returns to 0x0E32 label_0E32: // Incoming return from call to 0x0DC3 at 0x0E31 // Inputs[4] // { // @0E33 stack[-2] // @0E34 stack[-1] // @0E36 stack[-5] // @0E3A stack[-4] // } 0E32 5B JUMPDEST 0E33 81 DUP2 0E34 81 DUP2 0E35 52 MSTORE 0E36 84 DUP5 0E37 60 PUSH1 0x20 0E39 83 DUP4 0E3A 86 DUP7 0E3B 01 ADD 0E3C 01 ADD 0E3D 11 GT 0E3E 15 ISZERO 0E3F 61 PUSH2 0x0e47 0E42 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0E35 memory[stack[-1]:stack[-1] + 0x20] = stack[-2] } // Block ends with conditional jump to 0x0e47, if !(stack[-4] + stack[-2] + 0x20 > stack[-5]) label_0E43: // Incoming jump from 0x0E42, if not !(stack[-4] + stack[-2] + 0x20 > stack[-5]) // Inputs[1] { @0E46 memory[0x00:0x00] } 0E43 60 PUSH1 0x00 0E45 80 DUP1 0E46 FD *REVERT // Stack delta = +0 // Outputs[1] { @0E46 revert(memory[0x00:0x00]); } // Block terminates label_0E47: // Incoming jump from 0x0E42, if !(stack[-4] + stack[-2] + 0x20 > stack[-5]) // Inputs[6] // { // @0E48 stack[-2] // @0E4B stack[-4] // @0E4F stack[-1] // @0E51 msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + stack[-2]] // @0E5E stack[-6] // @0E5F stack[-5] // } 0E47 5B JUMPDEST 0E48 81 DUP2 0E49 60 PUSH1 0x20 0E4B 85 DUP6 0E4C 01 ADD 0E4D 60 PUSH1 0x20 0E4F 83 DUP4 0E50 01 ADD 0E51 37 CALLDATACOPY 0E52 60 PUSH1 0x00 0E54 91 SWAP2 0E55 81 DUP2 0E56 01 ADD 0E57 60 PUSH1 0x20 0E59 01 ADD 0E5A 91 SWAP2 0E5B 90 SWAP1 0E5C 91 SWAP2 0E5D 52 MSTORE 0E5E 93 SWAP4 0E5F 92 SWAP3 0E60 50 POP 0E61 50 POP 0E62 50 POP 0E63 56 *JUMP // Stack delta = -5 // Outputs[3] // { // @0E51 memory[stack[-1] + 0x20:stack[-1] + 0x20 + stack[-2]] = msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + stack[-2]] // @0E5D memory[0x20 + stack[-1] + stack[-2]:0x20 + stack[-1] + stack[-2] + 0x20] = 0x00 // @0E5E stack[-6] = stack[-1] // } // Block ends with unconditional jump to stack[-6] label_0E64: // Incoming call from 0x0164, returns to 0x0165 // Inputs[2] // { // @0E6C stack[-1] // @0E6D stack[-2] // } 0E64 5B JUMPDEST 0E65 60 PUSH1 0x00 0E67 80 DUP1 0E68 60 PUSH1 0x00 0E6A 60 PUSH1 0x60 0E6C 84 DUP5 0E6D 86 DUP7 0E6E 03 SUB 0E6F 12 SLT 0E70 15 ISZERO 0E71 61 PUSH2 0x0e79 0E74 57 *JUMPI // Stack delta = +3 // Outputs[3] // { // @0E65 stack[0] = 0x00 // @0E67 stack[1] = 0x00 // @0E68 stack[2] = 0x00 // } // Block ends with conditional jump to 0x0e79, if !(stack[-2] - stack[-1] i< 0x60) label_0E75: // Incoming jump from 0x0E74, if not !(stack[-2] - stack[-1] i< 0x60) // Inputs[1] { @0E78 memory[0x00:0x00] } 0E75 60 PUSH1 0x00 0E77 80 DUP1 0E78 FD *REVERT // Stack delta = +0 // Outputs[1] { @0E78 revert(memory[0x00:0x00]); } // Block terminates label_0E79: // Incoming jump from 0x0E74, if !(stack[-2] - stack[-1] i< 0x60) // Inputs[3] // { // @0E7A stack[-4] // @0E7B msg.data[stack[-4]:stack[-4] + 0x20] // @0E7C stack[-3] // } 0E79 5B JUMPDEST 0E7A 83 DUP4 0E7B 35 CALLDATALOAD 0E7C 92 SWAP3 0E7D 50 POP 0E7E 61 PUSH2 0x0e89 0E81 60 PUSH1 0x20 0E83 85 DUP6 0E84 01 ADD 0E85 61 PUSH2 0x0d67 0E88 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0E7C stack[-3] = msg.data[stack[-4]:stack[-4] + 0x20] // @0E7E stack[0] = 0x0e89 // @0E84 stack[1] = stack[-4] + 0x20 // } // Block ends with call to 0x0d67, returns to 0x0E89 label_0E89: // Incoming return from call to 0x0D67 at 0x0E88 // Inputs[4] // { // @0E8A stack[-3] // @0E8A stack[-1] // @0E8E stack[-5] // @0E90 msg.data[stack[-5] + 0x40:stack[-5] + 0x40 + 0x20] // } 0E89 5B JUMPDEST 0E8A 91 SWAP2 0E8B 50 POP 0E8C 60 PUSH1 0x40 0E8E 84 DUP5 0E8F 01 ADD 0E90 35 CALLDATALOAD 0E91 67 PUSH8 0xffffffffffffffff 0E9A 81 DUP2 0E9B 11 GT 0E9C 15 ISZERO 0E9D 61 PUSH2 0x0ea5 0EA0 57 *JUMPI // Stack delta = +0 // Outputs[2] // { // @0E8A stack[-3] = stack[-1] // @0E90 stack[-1] = msg.data[stack[-5] + 0x40:stack[-5] + 0x40 + 0x20] // } // Block ends with conditional jump to 0x0ea5, if !(msg.data[stack[-5] + 0x40:stack[-5] + 0x40 + 0x20] > 0xffffffffffffffff) label_0EA1: // Incoming jump from 0x0EA0, if not !(msg.data[stack[-5] + 0x40:stack[-5] + 0x40 + 0x20] > 0xffffffffffffffff) // Inputs[1] { @0EA4 memory[0x00:0x00] } 0EA1 60 PUSH1 0x00 0EA3 80 DUP1 0EA4 FD *REVERT // Stack delta = +0 // Outputs[1] { @0EA4 revert(memory[0x00:0x00]); } // Block terminates label_0EA5: // Incoming jump from 0x0EA0, if !(msg.data[stack[-5] + 0x40:stack[-5] + 0x40 + 0x20] > 0xffffffffffffffff) // Inputs[3] // { // @0EA9 stack[-6] // @0EAA stack[-1] // @0EAB stack[-5] // } 0EA5 5B JUMPDEST 0EA6 61 PUSH2 0x0eb1 0EA9 86 DUP7 0EAA 82 DUP3 0EAB 87 DUP8 0EAC 01 ADD 0EAD 61 PUSH2 0x0df4 0EB0 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0EA6 stack[0] = 0x0eb1 // @0EA9 stack[1] = stack[-6] // @0EAC stack[2] = stack[-5] + stack[-1] // } // Block ends with call to 0x0df4, returns to 0x0EB1 label_0EB1: // Incoming return from call to 0x0DF4 at 0x0EB0 // Inputs[7] // { // @0EB2 stack[-3] // @0EB2 stack[-1] // @0EB5 stack[-6] // @0EB7 stack[-7] // @0EB7 stack[-4] // @0EB9 stack[-5] // @0EB9 stack[-8] // } 0EB1 5B JUMPDEST 0EB2 91 SWAP2 0EB3 50 POP 0EB4 50 POP 0EB5 92 SWAP3 0EB6 50 POP 0EB7 92 SWAP3 0EB8 50 POP 0EB9 92 SWAP3 0EBA 56 *JUMP // Stack delta = -5 // Outputs[3] // { // @0EB5 stack[-6] = stack[-1] // @0EB7 stack[-7] = stack[-4] // @0EB9 stack[-8] = stack[-5] // } // Block ends with unconditional jump to stack[-8] label_0EBB: // Incoming call from 0x0F68, returns to 0x0F69 // Incoming call from 0x0F42, returns to 0x0F43 // Inputs[2] // { // @0EBF stack[-2] // @0EC2 stack[-1] // } 0EBB 5B JUMPDEST 0EBC 60 PUSH1 0x00 0EBE 80 DUP1 0EBF 83 DUP4 0EC0 60 PUSH1 0x1f 0EC2 84 DUP5 0EC3 01 ADD 0EC4 12 SLT 0EC5 61 PUSH2 0x0ecd 0EC8 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0EBC stack[0] = 0x00 // @0EBE stack[1] = 0x00 // } // Block ends with conditional jump to 0x0ecd, if stack[-1] + 0x1f i< stack[-2] label_0EC9: // Incoming jump from 0x0EC8, if not stack[-1] + 0x1f i< stack[-2] // Inputs[1] { @0ECC memory[0x00:0x00] } 0EC9 60 PUSH1 0x00 0ECB 80 DUP1 0ECC FD *REVERT // Stack delta = +0 // Outputs[1] { @0ECC revert(memory[0x00:0x00]); } // Block terminates label_0ECD: // Incoming jump from 0x0EC8, if stack[-1] + 0x1f i< stack[-2] // Inputs[2] // { // @0ECF stack[-3] // @0ED0 msg.data[stack[-3]:stack[-3] + 0x20] // } 0ECD 5B JUMPDEST 0ECE 50 POP 0ECF 81 DUP2 0ED0 35 CALLDATALOAD 0ED1 67 PUSH8 0xffffffffffffffff 0EDA 81 DUP2 0EDB 11 GT 0EDC 15 ISZERO 0EDD 61 PUSH2 0x0ee5 0EE0 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0ED0 stack[-1] = msg.data[stack[-3]:stack[-3] + 0x20] } // Block ends with conditional jump to 0x0ee5, if !(msg.data[stack[-3]:stack[-3] + 0x20] > 0xffffffffffffffff) label_0EE1: // Incoming jump from 0x0EE0, if not !(msg.data[stack[-3]:stack[-3] + 0x20] > 0xffffffffffffffff) // Inputs[1] { @0EE4 memory[0x00:0x00] } 0EE1 60 PUSH1 0x00 0EE3 80 DUP1 0EE4 FD *REVERT // Stack delta = +0 // Outputs[1] { @0EE4 revert(memory[0x00:0x00]); } // Block terminates label_0EE5: // Incoming jump from 0x0EE0, if !(msg.data[stack[-3]:stack[-3] + 0x20] > 0xffffffffffffffff) // Inputs[4] // { // @0EE8 stack[-3] // @0EEA stack[-2] // @0EEC stack[-4] // @0EEF stack[-1] // } 0EE5 5B JUMPDEST 0EE6 60 PUSH1 0x20 0EE8 83 DUP4 0EE9 01 ADD 0EEA 91 SWAP2 0EEB 50 POP 0EEC 83 DUP4 0EED 60 PUSH1 0x20 0EEF 82 DUP3 0EF0 60 PUSH1 0x05 0EF2 1B SHL 0EF3 85 DUP6 0EF4 01 ADD 0EF5 01 ADD 0EF6 11 GT 0EF7 15 ISZERO 0EF8 61 PUSH2 0x0f00 0EFB 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0EEA stack[-2] = stack[-3] + 0x20 } // Block ends with conditional jump to 0x0f00, if !(stack[-3] + (stack[-1] << 0x05) + 0x20 > stack[-4]) label_0EFC: // Incoming jump from 0x0EFB, if not !(stack[-3] + (stack[-1] << 0x05) + 0x20 > stack[-4]) // Inputs[1] { @0EFF memory[0x00:0x00] } 0EFC 60 PUSH1 0x00 0EFE 80 DUP1 0EFF FD *REVERT // Stack delta = +0 // Outputs[1] { @0EFF revert(memory[0x00:0x00]); } // Block terminates label_0F00: // Incoming jump from 0x0EFB, if !(stack[-3] + (stack[-1] << 0x05) + 0x20 > stack[-4]) // Inputs[5] // { // @0F01 stack[-4] // @0F01 stack[-1] // @0F03 stack[-2] // @0F03 stack[-5] // @0F04 stack[-3] // } 0F00 5B JUMPDEST 0F01 92 SWAP3 0F02 50 POP 0F03 92 SWAP3 0F04 90 SWAP1 0F05 50 POP 0F06 56 *JUMP // Stack delta = -3 // Outputs[2] // { // @0F01 stack[-4] = stack[-1] // @0F03 stack[-5] = stack[-2] // } // Block ends with unconditional jump to stack[-5] label_0F07: // Incoming call from 0x0177, returns to 0x0178 // Inputs[2] // { // @0F12 stack[-1] // @0F13 stack[-2] // } 0F07 5B JUMPDEST 0F08 60 PUSH1 0x00 0F0A 80 DUP1 0F0B 60 PUSH1 0x00 0F0D 80 DUP1 0F0E 60 PUSH1 0x00 0F10 60 PUSH1 0x60 0F12 86 DUP7 0F13 88 DUP9 0F14 03 SUB 0F15 12 SLT 0F16 15 ISZERO 0F17 61 PUSH2 0x0f1f 0F1A 57 *JUMPI // Stack delta = +5 // Outputs[5] // { // @0F08 stack[0] = 0x00 // @0F0A stack[1] = 0x00 // @0F0B stack[2] = 0x00 // @0F0D stack[3] = 0x00 // @0F0E stack[4] = 0x00 // } // Block ends with conditional jump to 0x0f1f, if !(stack[-2] - stack[-1] i< 0x60) label_0F1B: // Incoming jump from 0x0F1A, if not !(stack[-2] - stack[-1] i< 0x60) // Inputs[1] { @0F1E memory[0x00:0x00] } 0F1B 60 PUSH1 0x00 0F1D 80 DUP1 0F1E FD *REVERT // Stack delta = +0 // Outputs[1] { @0F1E revert(memory[0x00:0x00]); } // Block terminates label_0F1F: // Incoming jump from 0x0F1A, if !(stack[-2] - stack[-1] i< 0x60) // Inputs[2] // { // @0F20 stack[-6] // @0F21 msg.data[stack[-6]:stack[-6] + 0x20] // } 0F1F 5B JUMPDEST 0F20 85 DUP6 0F21 35 CALLDATALOAD 0F22 67 PUSH8 0xffffffffffffffff 0F2B 80 DUP1 0F2C 82 DUP3 0F2D 11 GT 0F2E 15 ISZERO 0F2F 61 PUSH2 0x0f37 0F32 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0F21 stack[0] = msg.data[stack[-6]:stack[-6] + 0x20] // @0F22 stack[1] = 0xffffffffffffffff // } // Block ends with conditional jump to 0x0f37, if !(msg.data[stack[-6]:stack[-6] + 0x20] > 0xffffffffffffffff) label_0F33: // Incoming jump from 0x0F32, if not !(msg.data[stack[-6]:stack[-6] + 0x20] > 0xffffffffffffffff) // Inputs[1] { @0F36 memory[0x00:0x00] } 0F33 60 PUSH1 0x00 0F35 80 DUP1 0F36 FD *REVERT // Stack delta = +0 // Outputs[1] { @0F36 revert(memory[0x00:0x00]); } // Block terminates label_0F37: // Incoming jump from 0x0F32, if !(msg.data[stack[-6]:stack[-6] + 0x20] > 0xffffffffffffffff) // Inputs[3] // { // @0F3B stack[-9] // @0F3C stack[-2] // @0F3D stack[-8] // } 0F37 5B JUMPDEST 0F38 61 PUSH2 0x0f43 0F3B 89 DUP10 0F3C 83 DUP4 0F3D 8A DUP11 0F3E 01 ADD 0F3F 61 PUSH2 0x0ebb 0F42 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0F38 stack[0] = 0x0f43 // @0F3B stack[1] = stack[-9] // @0F3E stack[2] = stack[-8] + stack[-2] // } // Block ends with call to 0x0ebb, returns to 0x0F43 label_0F43: // Incoming return from call to 0x0EBB at 0x0F42 // Inputs[8] // { // @0F44 stack[-1] // @0F44 stack[-2] // @0F45 stack[-9] // @0F47 stack[-8] // @0F4B stack[-4] // @0F4D stack[-10] // @0F50 msg.data[0x20 + stack[-10]:0x20 + stack[-10] + 0x20] // @0F51 stack[-3] // } 0F43 5B JUMPDEST 0F44 90 SWAP1 0F45 97 SWAP8 0F46 50 POP 0F47 95 SWAP6 0F48 50 POP 0F49 60 PUSH1 0x20 0F4B 91 SWAP2 0F4C 50 POP 0F4D 87 DUP8 0F4E 82 DUP3 0F4F 01 ADD 0F50 35 CALLDATALOAD 0F51 81 DUP2 0F52 81 DUP2 0F53 11 GT 0F54 15 ISZERO 0F55 61 PUSH2 0x0f5d 0F58 57 *JUMPI // Stack delta = -1 // Outputs[4] // { // @0F45 stack[-9] = stack[-2] // @0F47 stack[-8] = stack[-1] // @0F4B stack[-4] = 0x20 // @0F50 stack[-2] = msg.data[0x20 + stack[-10]:0x20 + stack[-10] + 0x20] // } // Block ends with conditional jump to 0x0f5d, if !(msg.data[0x20 + stack[-10]:0x20 + stack[-10] + 0x20] > stack[-3]) label_0F59: // Incoming jump from 0x0F58, if not !(msg.data[0x20 + stack[-10]:0x20 + stack[-10] + 0x20] > stack[-3]) // Inputs[1] { @0F5C memory[0x00:0x00] } 0F59 60 PUSH1 0x00 0F5B 80 DUP1 0F5C FD *REVERT // Stack delta = +0 // Outputs[1] { @0F5C revert(memory[0x00:0x00]); } // Block terminates label_0F5D: // Incoming jump from 0x0F58, if !(msg.data[0x20 + stack[-10]:0x20 + stack[-10] + 0x20] > stack[-3]) // Inputs[3] // { // @0F61 stack[-10] // @0F62 stack[-1] // @0F63 stack[-9] // } 0F5D 5B JUMPDEST 0F5E 61 PUSH2 0x0f69 0F61 8A DUP11 0F62 82 DUP3 0F63 8B DUP12 0F64 01 ADD 0F65 61 PUSH2 0x0ebb 0F68 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0F5E stack[0] = 0x0f69 // @0F61 stack[1] = stack[-10] // @0F64 stack[2] = stack[-9] + stack[-1] // } // Block ends with call to 0x0ebb, returns to 0x0F69 label_0F69: // Incoming return from call to 0x0EBB at 0x0F68 // Inputs[7] // { // @0F6A stack[-1] // @0F6A stack[-2] // @0F6B stack[-8] // @0F6D stack[-7] // @0F72 stack[-11] // @0F74 msg.data[stack[-11] + 0x40:stack[-11] + 0x40 + 0x20] // @0F75 stack[-4] // } 0F69 5B JUMPDEST 0F6A 90 SWAP1 0F6B 96 SWAP7 0F6C 50 POP 0F6D 94 SWAP5 0F6E 50 POP 0F6F 50 POP 0F70 60 PUSH1 0x40 0F72 88 DUP9 0F73 01 ADD 0F74 35 CALLDATALOAD 0F75 81 DUP2 0F76 81 DUP2 0F77 11 GT 0F78 15 ISZERO 0F79 61 PUSH2 0x0f81 0F7C 57 *JUMPI // Stack delta = -2 // Outputs[3] // { // @0F6B stack[-8] = stack[-2] // @0F6D stack[-7] = stack[-1] // @0F74 stack[-3] = msg.data[stack[-11] + 0x40:stack[-11] + 0x40 + 0x20] // } // Block ends with conditional jump to 0x0f81, if !(msg.data[stack[-11] + 0x40:stack[-11] + 0x40 + 0x20] > stack[-4]) label_0F7D: // Incoming jump from 0x0F7C, if not !(msg.data[stack[-11] + 0x40:stack[-11] + 0x40 + 0x20] > stack[-4]) // Inputs[1] { @0F80 memory[0x00:0x00] } 0F7D 60 PUSH1 0x00 0F7F 80 DUP1 0F80 FD *REVERT // Stack delta = +0 // Outputs[1] { @0F80 revert(memory[0x00:0x00]); } // Block terminates label_0F81: // Incoming jump from 0x0F7C, if !(msg.data[stack[-11] + 0x40:stack[-11] + 0x40 + 0x20] > stack[-4]) // Inputs[3] // { // @0F82 stack[-9] // @0F83 stack[-1] // @0F88 stack[-10] // } 0F81 5B JUMPDEST 0F82 88 DUP9 0F83 01 ADD 0F84 60 PUSH1 0x1f 0F86 81 DUP2 0F87 01 ADD 0F88 8A DUP11 0F89 13 SGT 0F8A 61 PUSH2 0x0f92 0F8D 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0F83 stack[-1] = stack[-9] + stack[-1] } // Block ends with conditional jump to 0x0f92, if stack[-10] i> stack[-9] + stack[-1] + 0x1f label_0F8E: // Incoming jump from 0x0F8D, if not stack[-10] i> stack[-9] + stack[-1] + 0x1f // Inputs[1] { @0F91 memory[0x00:0x00] } 0F8E 60 PUSH1 0x00 0F90 80 DUP1 0F91 FD *REVERT // Stack delta = +0 // Outputs[1] { @0F91 revert(memory[0x00:0x00]); } // Block terminates label_0F92: // Incoming jump from 0x0F8D, if stack[-10] i> stack[-9] + stack[-1] + 0x1f // Inputs[3] // { // @0F93 stack[-1] // @0F94 msg.data[stack[-1]:stack[-1] + 0x20] // @0F95 stack[-2] // } 0F92 5B JUMPDEST 0F93 80 DUP1 0F94 35 CALLDATALOAD 0F95 82 DUP3 0F96 81 DUP2 0F97 11 GT 0F98 15 ISZERO 0F99 61 PUSH2 0x0fa4 0F9C 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0F94 stack[0] = msg.data[stack[-1]:stack[-1] + 0x20] } // Block ends with conditional jump to 0x0fa4, if !(msg.data[stack[-1]:stack[-1] + 0x20] > stack[-2]) label_0F9D: // Incoming jump from 0x0F9C, if not !(msg.data[stack[-1]:stack[-1] + 0x20] > stack[-2]) 0F9D 61 PUSH2 0x0fa4 0FA0 61 PUSH2 0x0dad 0FA3 56 *JUMP // Stack delta = +1 // Outputs[1] { @0F9D stack[0] = 0x0fa4 } // Block ends with unconditional jump to 0x0dad label_0FA4: // Incoming jump from 0x0F9C, if !(msg.data[stack[-1]:stack[-1] + 0x20] > stack[-2]) // Inputs[2] // { // @0FA5 stack[-1] // @0FAC stack[-4] // } 0FA4 5B JUMPDEST 0FA5 80 DUP1 0FA6 60 PUSH1 0x05 0FA8 1B SHL 0FA9 61 PUSH2 0x0fb3 0FAC 85 DUP6 0FAD 82 DUP3 0FAE 01 ADD 0FAF 61 PUSH2 0x0dc3 0FB2 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0FA8 stack[0] = stack[-1] << 0x05 // @0FA9 stack[1] = 0x0fb3 // @0FAE stack[2] = (stack[-1] << 0x05) + stack[-4] // } // Block ends with call to 0x0dc3, returns to 0x0FB3 label_0FB3: // Incoming return from call to 0x0DC3 at 0x0FB2 // Inputs[6] // { // @0FB4 stack[-1] // @0FB4 stack[-3] // @0FB7 stack[-4] // @0FB8 stack[-2] // @0FBA stack[-6] // @0FC1 stack[-13] // } 0FB3 5B JUMPDEST 0FB4 91 SWAP2 0FB5 82 DUP3 0FB6 52 MSTORE 0FB7 82 DUP3 0FB8 81 DUP2 0FB9 01 ADD 0FBA 85 DUP6 0FBB 01 ADD 0FBC 91 SWAP2 0FBD 85 DUP6 0FBE 81 DUP2 0FBF 01 ADD 0FC0 90 SWAP1 0FC1 8D DUP14 0FC2 84 DUP5 0FC3 11 GT 0FC4 15 ISZERO 0FC5 61 PUSH2 0x0fcd 0FC8 57 *JUMPI // Stack delta = +1 // Outputs[4] // { // @0FB6 memory[stack[-1]:stack[-1] + 0x20] = stack[-3] // @0FBC stack[-3] = stack[-6] + stack[-2] + stack[-4] // @0FC0 stack[-1] = stack[-1] + stack[-6] // @0FC0 stack[0] = stack[-1] // } // Block ends with conditional jump to 0x0fcd, if !(stack[-6] + stack[-2] + stack[-4] > stack[-13]) label_0FC9: // Incoming jump from 0x0FC8, if not !(stack[-6] + stack[-2] + stack[-4] > stack[-13]) // Inputs[1] { @0FCC memory[0x00:0x00] } 0FC9 60 PUSH1 0x00 0FCB 80 DUP1 0FCC FD *REVERT // Stack delta = +0 // Outputs[1] { @0FCC revert(memory[0x00:0x00]); } // Block terminates label_0FCD: // Incoming jump from 0x0FC8, if !(stack[-6] + stack[-2] + stack[-4] > stack[-13]) // Inputs[4] // { // @0FCE stack[-7] // @0FCF stack[-5] // @0FD1 stack[-3] // @0FD4 stack[-4] // } 0FCD 5B JUMPDEST 0FCE 86 DUP7 0FCF 85 DUP6 0FD0 01 ADD 0FD1 92 SWAP3 0FD2 50 POP 0FD3 5B JUMPDEST 0FD4 83 DUP4 0FD5 83 DUP4 0FD6 10 LT 0FD7 15 ISZERO 0FD8 61 PUSH2 0x1009 0FDB 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0FD1 stack[-3] = stack[-5] + stack[-7] } // Block ends with conditional jump to 0x1009, if !(stack[-5] + stack[-7] < stack[-4]) label_0FDC: // Incoming jump from 0x0FDB, if not !(stack[-5] + stack[-7] < stack[-4]) // Incoming jump from 0x0FDB, if not !(stack[-3] < stack[-4]) // Inputs[3] // { // @0FDC stack[-3] // @0FDD msg.data[stack[-3]:stack[-3] + 0x20] // @0FDE stack[-6] // } 0FDC 82 DUP3 0FDD 35 CALLDATALOAD 0FDE 86 DUP7 0FDF 81 DUP2 0FE0 11 GT 0FE1 15 ISZERO 0FE2 61 PUSH2 0x0feb 0FE5 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0FDD stack[0] = msg.data[stack[-3]:stack[-3] + 0x20] } // Block ends with conditional jump to 0x0feb, if !(msg.data[stack[-3]:stack[-3] + 0x20] > stack[-6]) label_0FE6: // Incoming jump from 0x0FE5, if not !(msg.data[stack[-3]:stack[-3] + 0x20] > stack[-6]) // Inputs[1] { @0FEA memory[0x00:0x00] } 0FE6 60 PUSH1 0x00 0FE8 80 DUP1 0FE9 81 DUP2 0FEA FD *REVERT // Stack delta = +1 // Outputs[2] // { // @0FE6 stack[0] = 0x00 // @0FEA revert(memory[0x00:0x00]); // } // Block terminates label_0FEB: // Incoming jump from 0x0FE5, if !(msg.data[stack[-3]:stack[-3] + 0x20] > stack[-6]) // Inputs[4] // { // @0FEF stack[-15] // @0FF0 stack[-8] // @0FF1 stack[-1] // @0FF2 stack[-6] // } 0FEB 5B JUMPDEST 0FEC 61 PUSH2 0x0ff9 0FEF 8F DUP16 0FF0 89 DUP10 0FF1 83 DUP4 0FF2 89 DUP10 0FF3 01 ADD 0FF4 01 ADD 0FF5 61 PUSH2 0x0df4 0FF8 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0FEC stack[0] = 0x0ff9 // @0FEF stack[1] = stack[-15] // @0FF4 stack[2] = stack[-6] + stack[-1] + stack[-8] // } // Block ends with call to 0x0df4, returns to 0x0FF9 label_0FF9: // Incoming return from call to 0x0DF4 at 0x0FF8 // Inputs[5] // { // @0FFA stack[-4] // @0FFB stack[-1] // @0FFD stack[-3] // @0FFD stack[-5] // @0FFE stack[-9] // } 0FF9 5B JUMPDEST 0FFA 83 DUP4 0FFB 52 MSTORE 0FFC 50 POP 0FFD 91 SWAP2 0FFE 86 DUP7 0FFF 01 ADD 1000 91 SWAP2 1001 90 SWAP1 1002 86 DUP7 1003 01 ADD 1004 90 SWAP1 1005 61 PUSH2 0x0fd3 1008 56 *JUMP // Stack delta = -2 // Outputs[4] // { // @0FFB memory[stack[-4]:stack[-4] + 0x20] = stack[-1] // @1000 stack[-5] = stack[-9] + stack[-5] // @1004 stack[-4] = stack[-9] + stack[-4] // @1004 stack[-3] = stack[-3] // } // Block ends with unconditional jump to 0x0fd3 label_1009: // Incoming jump from 0x0FDB, if !(stack[-5] + stack[-7] < stack[-4]) // Incoming jump from 0x0FDB, if !(stack[-3] < stack[-4]) // Inputs[9] // { // @100A stack[-1] // @100B stack[-8] // @1014 stack[-11] // @1015 stack[-14] // @1017 stack[-9] // @1017 stack[-12] // @1018 stack[-15] // @1019 stack[-10] // @101A stack[-13] // } 1009 5B JUMPDEST 100A 80 DUP1 100B 97 SWAP8 100C 50 POP 100D 50 POP 100E 50 POP 100F 50 POP 1010 50 POP 1011 50 POP 1012 50 POP 1013 50 POP 1014 92 SWAP3 1015 95 SWAP6 1016 50 POP 1017 92 SWAP3 1018 95 SWAP6 1019 90 SWAP1 101A 93 SWAP4 101B 50 POP 101C 56 *JUMP // Stack delta = -10 // Outputs[5] // { // @1014 stack[-11] = stack[-1] // @1015 stack[-14] = stack[-11] // @1017 stack[-12] = stack[-9] // @1018 stack[-15] = stack[-12] // @101A stack[-13] = stack[-10] // } // Block ends with unconditional jump to stack[-15] label_101D: // Incoming call from 0x018A, returns to 0x018B // Inputs[2] // { // @1023 stack[-1] // @1024 stack[-2] // } 101D 5B JUMPDEST 101E 60 PUSH1 0x00 1020 80 DUP1 1021 60 PUSH1 0x40 1023 83 DUP4 1024 85 DUP6 1025 03 SUB 1026 12 SLT 1027 15 ISZERO 1028 61 PUSH2 0x1030 102B 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @101E stack[0] = 0x00 // @1020 stack[1] = 0x00 // } // Block ends with conditional jump to 0x1030, if !(stack[-2] - stack[-1] i< 0x40) label_102C: // Incoming jump from 0x102B, if not !(stack[-2] - stack[-1] i< 0x40) // Inputs[1] { @102F memory[0x00:0x00] } 102C 60 PUSH1 0x00 102E 80 DUP1 102F FD *REVERT // Stack delta = +0 // Outputs[1] { @102F revert(memory[0x00:0x00]); } // Block terminates label_1030: // Incoming jump from 0x102B, if !(stack[-2] - stack[-1] i< 0x40) // Inputs[1] { @1034 stack[-3] } 1030 5B JUMPDEST 1031 61 PUSH2 0x1039 1034 83 DUP4 1035 61 PUSH2 0x0d67 1038 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @1031 stack[0] = 0x1039 // @1034 stack[1] = stack[-3] // } // Block ends with call to 0x0d67, returns to 0x1039 label_1039: // Incoming return from call to 0x0D67 at 0x1038 // Inputs[4] // { // @103A stack[-3] // @103A stack[-1] // @103E stack[-4] // @1040 msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + 0x20] // } 1039 5B JUMPDEST 103A 91 SWAP2 103B 50 POP 103C 60 PUSH1 0x20 103E 83 DUP4 103F 01 ADD 1040 35 CALLDATALOAD 1041 67 PUSH8 0xffffffffffffffff 104A 81 DUP2 104B 11 GT 104C 15 ISZERO 104D 61 PUSH2 0x1055 1050 57 *JUMPI // Stack delta = +0 // Outputs[2] // { // @103A stack[-3] = stack[-1] // @1040 stack[-1] = msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + 0x20] // } // Block ends with conditional jump to 0x1055, if !(msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + 0x20] > 0xffffffffffffffff) label_1051: // Incoming jump from 0x1050, if not !(msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + 0x20] > 0xffffffffffffffff) // Inputs[1] { @1054 memory[0x00:0x00] } 1051 60 PUSH1 0x00 1053 80 DUP1 1054 FD *REVERT // Stack delta = +0 // Outputs[1] { @1054 revert(memory[0x00:0x00]); } // Block terminates label_1055: // Incoming jump from 0x1050, if !(msg.data[stack[-4] + 0x20:stack[-4] + 0x20 + 0x20] > 0xffffffffffffffff) // Inputs[3] // { // @1059 stack[-5] // @105A stack[-1] // @105B stack[-4] // } 1055 5B JUMPDEST 1056 61 PUSH2 0x1061 1059 85 DUP6 105A 82 DUP3 105B 86 DUP7 105C 01 ADD 105D 61 PUSH2 0x0df4 1060 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @1056 stack[0] = 0x1061 // @1059 stack[1] = stack[-5] // @105C stack[2] = stack[-4] + stack[-1] // } // Block ends with call to 0x0df4, returns to 0x1061 label_1061: // Incoming return from call to 0x0DF4 at 0x1060 // Inputs[6] // { // @1062 stack[-1] // @1062 stack[-3] // @1065 stack[-6] // @1067 stack[-4] // @1067 stack[-7] // @1068 stack[-5] // } 1061 5B JUMPDEST 1062 91 SWAP2 1063 50 POP 1064 50 POP 1065 92 SWAP3 1066 50 POP 1067 92 SWAP3 1068 90 SWAP1 1069 50 POP 106A 56 *JUMP // Stack delta = -5 // Outputs[2] // { // @1065 stack[-6] = stack[-1] // @1067 stack[-7] = stack[-4] // } // Block ends with unconditional jump to stack[-7] label_106B: // Incoming call from 0x019D, returns to 0x019E // Inputs[2] // { // @1071 stack[-1] // @1072 stack[-2] // } 106B 5B JUMPDEST 106C 60 PUSH1 0x00 106E 80 DUP1 106F 60 PUSH1 0x40 1071 83 DUP4 1072 85 DUP6 1073 03 SUB 1074 12 SLT 1075 15 ISZERO 1076 61 PUSH2 0x107e 1079 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @106C stack[0] = 0x00 // @106E stack[1] = 0x00 // } // Block ends with conditional jump to 0x107e, if !(stack[-2] - stack[-1] i< 0x40) label_107A: // Incoming jump from 0x1079, if not !(stack[-2] - stack[-1] i< 0x40) // Inputs[1] { @107D memory[0x00:0x00] } 107A 60 PUSH1 0x00 107C 80 DUP1 107D FD *REVERT // Stack delta = +0 // Outputs[1] { @107D revert(memory[0x00:0x00]); } // Block terminates label_107E: // Incoming jump from 0x1079, if !(stack[-2] - stack[-1] i< 0x40) // Inputs[5] // { // @1081 stack[-3] // @1082 msg.data[stack[-3]:stack[-3] + 0x20] // @1083 stack[-5] // @1089 msg.data[stack[-3] + 0x20:stack[-3] + 0x20 + 0x20] // @108A stack[-4] // } 107E 5B JUMPDEST 107F 50 POP 1080 50 POP 1081 80 DUP1 1082 35 CALLDATALOAD 1083 92 SWAP3 1084 60 PUSH1 0x20 1086 90 SWAP1 1087 91 SWAP2 1088 01 ADD 1089 35 CALLDATALOAD 108A 91 SWAP2 108B 50 POP 108C 56 *JUMP // Stack delta = -3 // Outputs[2] // { // @1083 stack[-5] = msg.data[stack[-3]:stack[-3] + 0x20] // @108A stack[-4] = msg.data[stack[-3] + 0x20:stack[-3] + 0x20 + 0x20] // } // Block ends with unconditional jump to stack[-5] label_108D: // Incoming call from 0x0642, returns to 0x0643 // Incoming call from 0x01B0, returns to 0x01B1 // Inputs[2] // { // @1092 stack[-1] // @1093 stack[-2] // } 108D 5B JUMPDEST 108E 60 PUSH1 0x00 1090 60 PUSH1 0x20 1092 82 DUP3 1093 84 DUP5 1094 03 SUB 1095 12 SLT 1096 15 ISZERO 1097 61 PUSH2 0x109f 109A 57 *JUMPI // Stack delta = +1 // Outputs[1] { @108E stack[0] = 0x00 } // Block ends with conditional jump to 0x109f, if !(stack[-2] - stack[-1] i< 0x20) label_109B: // Incoming jump from 0x109A, if not !(stack[-2] - stack[-1] i< 0x20) // Inputs[1] { @109E memory[0x00:0x00] } 109B 60 PUSH1 0x00 109D 80 DUP1 109E FD *REVERT // Stack delta = +0 // Outputs[1] { @109E revert(memory[0x00:0x00]); } // Block terminates label_109F: // Incoming jump from 0x109A, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[1] { @10A3 stack[-2] } 109F 5B JUMPDEST 10A0 61 PUSH2 0x10a8 10A3 82 DUP3 10A4 61 PUSH2 0x0d67 10A7 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @10A0 stack[0] = 0x10a8 // @10A3 stack[1] = stack[-2] // } // Block ends with call to 0x0d67, returns to 0x10A8 label_10A8: // Incoming return from call to 0x0D67 at 0x10A7 // Incoming jump from 0x1174, if memory[stack[-2]:stack[-2] + 0x20] == !!memory[stack[-2]:stack[-2] + 0x20] // Inputs[3] // { // @10A9 stack[-1] // @10A9 stack[-5] // @10AA stack[-4] // } 10A8 5B JUMPDEST 10A9 93 SWAP4 10AA 92 SWAP3 10AB 50 POP 10AC 50 POP 10AD 50 POP 10AE 56 *JUMP // Stack delta = -4 // Outputs[1] { @10A9 stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] label_10AF: // Incoming jump from 0x062D // Incoming jump from 0x0C28 // Incoming jump from 0x0CCE // Incoming jump from 0x0B46 // Incoming jump from 0x01F9 // Incoming jump from 0x0614 // Incoming jump from 0x0654 // Inputs[1] { @10C4 memory[0x00:0x24] } 10AF 5B JUMPDEST 10B0 63 PUSH4 0x4e487b71 10B5 60 PUSH1 0xe0 10B7 1B SHL 10B8 60 PUSH1 0x00 10BA 52 MSTORE 10BB 60 PUSH1 0x32 10BD 60 PUSH1 0x04 10BF 52 MSTORE 10C0 60 PUSH1 0x24 10C2 60 PUSH1 0x00 10C4 FD *REVERT // Stack delta = +0 // Outputs[3] // { // @10BA memory[0x00:0x20] = 0x4e487b71 << 0xe0 // @10BF memory[0x04:0x24] = 0x32 // @10C4 revert(memory[0x00:0x24]); // } // Block terminates label_10C5: // Incoming call from 0x0502, returns to 0x0503 // Incoming call from 0x026D, returns to 0x026E // Inputs[2] // { // @10CA stack[-1] // @10CB stack[-2] // } 10C5 5B JUMPDEST 10C6 60 PUSH1 0x00 10C8 60 PUSH1 0x20 10CA 82 DUP3 10CB 84 DUP5 10CC 03 SUB 10CD 12 SLT 10CE 15 ISZERO 10CF 61 PUSH2 0x10d7 10D2 57 *JUMPI // Stack delta = +1 // Outputs[1] { @10C6 stack[0] = 0x00 } // Block ends with conditional jump to 0x10d7, if !(stack[-2] - stack[-1] i< 0x20) label_10D3: // Incoming jump from 0x10D2, if not !(stack[-2] - stack[-1] i< 0x20) // Inputs[1] { @10D6 memory[0x00:0x00] } 10D3 60 PUSH1 0x00 10D5 80 DUP1 10D6 FD *REVERT // Stack delta = +0 // Outputs[1] { @10D6 revert(memory[0x00:0x00]); } // Block terminates label_10D7: // Incoming jump from 0x10D2, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[4] // { // @10D9 stack[-2] // @10D9 memory[stack[-2]:stack[-2] + 0x20] // @10DA stack[-4] // @10DB stack[-3] // } 10D7 5B JUMPDEST 10D8 50 POP 10D9 51 MLOAD 10DA 91 SWAP2 10DB 90 SWAP1 10DC 50 POP 10DD 56 *JUMP // Stack delta = -3 // Outputs[1] { @10DA stack[-4] = memory[stack[-2]:stack[-2] + 0x20] } // Block ends with unconditional jump to stack[-4] label_10DE: // Incoming call from 0x0737, returns to 0x02C8 // Incoming call from 0x02C7, returns to 0x02C8 // Incoming call from 0x06A3, returns to 0x02C8 // Incoming call from 0x03A1, returns to 0x02C8 // Incoming call from 0x05BA, returns to 0x02C8 // Incoming call from 0x0A4A, returns to 0x02C8 // Incoming call from 0x05F4, returns to 0x02C8 // Inputs[2] // { // @10E2 stack[-1] // @1100 stack[-2] // } 10DE 5B JUMPDEST 10DF 60 PUSH1 0x20 10E1 80 DUP1 10E2 82 DUP3 10E3 52 MSTORE 10E4 60 PUSH1 0x0a 10E6 90 SWAP1 10E7 82 DUP3 10E8 01 ADD 10E9 52 MSTORE 10EA 69 PUSH10 0x37b7363c9037bbb732b9 10F5 60 PUSH1 0xb1 10F7 1B SHL 10F8 60 PUSH1 0x40 10FA 82 DUP3 10FB 01 ADD 10FC 52 MSTORE 10FD 60 PUSH1 0x60 10FF 01 ADD 1100 90 SWAP1 1101 56 *JUMP // Stack delta = -1 // Outputs[4] // { // @10E3 memory[stack[-1]:stack[-1] + 0x20] = 0x20 // @10E9 memory[stack[-1] + 0x20:stack[-1] + 0x20 + 0x20] = 0x0a // @10FC memory[stack[-1] + 0x40:stack[-1] + 0x40 + 0x20] = 0x37b7363c9037bbb732b9 << 0xb1 // @1100 stack[-2] = 0x60 + stack[-1] // } // Block ends with unconditional jump to stack[-2] label_1102: // Incoming jump from 0x1156 // Incoming jump from 0x1129 // Incoming jump from 0x1143 // Inputs[1] { @1117 memory[0x00:0x24] } 1102 5B JUMPDEST 1103 63 PUSH4 0x4e487b71 1108 60 PUSH1 0xe0 110A 1B SHL 110B 60 PUSH1 0x00 110D 52 MSTORE 110E 60 PUSH1 0x11 1110 60 PUSH1 0x04 1112 52 MSTORE 1113 60 PUSH1 0x24 1115 60 PUSH1 0x00 1117 FD *REVERT // Stack delta = +0 // Outputs[3] // { // @110D memory[0x00:0x20] = 0x4e487b71 << 0xe0 // @1112 memory[0x04:0x24] = 0x11 // @1117 revert(memory[0x00:0x24]); // } // Block terminates label_1118: // Incoming call from 0x0A03, returns to 0x0A04 // Incoming call from 0x0A12, returns to 0x0A13 // Incoming call from 0x066A, returns to 0x066B // Incoming call from 0x0310, returns to 0x0311 // Inputs[1] { @111D stack[-1] } 1118 5B JUMPDEST 1119 60 PUSH1 0x00 111B 60 PUSH1 0x01 111D 82 DUP3 111E 01 ADD 111F 61 PUSH2 0x112a 1122 57 *JUMPI // Stack delta = +1 // Outputs[1] { @1119 stack[0] = 0x00 } // Block ends with conditional jump to 0x112a, if stack[-1] + 0x01 label_1123: // Incoming jump from 0x1122, if not stack[-1] + 0x01 1123 61 PUSH2 0x112a 1126 61 PUSH2 0x1102 1129 56 *JUMP // Stack delta = +1 // Outputs[1] { @1123 stack[0] = 0x112a } // Block ends with unconditional jump to 0x1102 label_112A: // Incoming jump from 0x1122, if stack[-1] + 0x01 // Inputs[2] // { // @112E stack[-2] // @112F stack[-3] // } 112A 5B JUMPDEST 112B 50 POP 112C 60 PUSH1 0x01 112E 01 ADD 112F 90 SWAP1 1130 56 *JUMP // Stack delta = -2 // Outputs[1] { @112F stack[-3] = 0x01 + stack[-2] } // Block ends with unconditional jump to stack[-3] label_1131: // Incoming call from 0x033B, returns to 0x033C // Incoming call from 0x0519, returns to 0x012A // Inputs[2] // { // @1132 stack[-2] // @1133 stack[-1] // } 1131 5B JUMPDEST 1132 81 DUP2 1133 81 DUP2 1134 03 SUB 1135 81 DUP2 1136 81 DUP2 1137 11 GT 1138 15 ISZERO 1139 61 PUSH2 0x026e 113C 57 *JUMPI // Stack delta = +1 // Outputs[1] { @1134 stack[0] = stack[-1] - stack[-2] } // Block ends with conditional jump to 0x026e, if !(stack[-1] - stack[-2] > stack[-1]) label_113D: // Incoming jump from 0x113C, if not !(stack[-1] - stack[-2] > stack[-1]) 113D 61 PUSH2 0x026e 1140 61 PUSH2 0x1102 1143 56 *JUMP // Stack delta = +1 // Outputs[1] { @113D stack[0] = 0x026e } // Block ends with unconditional jump to 0x1102 label_1144: // Incoming call from 0x0350, returns to 0x0351 // Inputs[2] // { // @1145 stack[-1] // @1146 stack[-2] // } 1144 5B JUMPDEST 1145 80 DUP1 1146 82 DUP3 1147 01 ADD 1148 80 DUP1 1149 82 DUP3 114A 11 GT 114B 15 ISZERO 114C 61 PUSH2 0x026e 114F 57 *JUMPI // Stack delta = +1 // Outputs[1] { @1147 stack[0] = stack[-2] + stack[-1] } // Block ends with conditional jump to 0x026e, if !(stack[-1] > stack[-2] + stack[-1]) label_1150: // Incoming jump from 0x114F, if not !(stack[-1] > stack[-2] + stack[-1]) 1150 61 PUSH2 0x026e 1153 61 PUSH2 0x1102 1156 56 *JUMP // Stack delta = +1 // Outputs[1] { @1150 stack[0] = 0x026e } // Block ends with unconditional jump to 0x1102 label_1157: // Incoming call from 0x0590, returns to 0x0459 // Incoming call from 0x08A8, returns to 0x08A9 // Inputs[2] // { // @115C stack[-1] // @115D stack[-2] // } 1157 5B JUMPDEST 1158 60 PUSH1 0x00 115A 60 PUSH1 0x20 115C 82 DUP3 115D 84 DUP5 115E 03 SUB 115F 12 SLT 1160 15 ISZERO 1161 61 PUSH2 0x1169 1164 57 *JUMPI // Stack delta = +1 // Outputs[1] { @1158 stack[0] = 0x00 } // Block ends with conditional jump to 0x1169, if !(stack[-2] - stack[-1] i< 0x20) label_1165: // Incoming jump from 0x1164, if not !(stack[-2] - stack[-1] i< 0x20) // Inputs[1] { @1168 memory[0x00:0x00] } 1165 60 PUSH1 0x00 1167 80 DUP1 1168 FD *REVERT // Stack delta = +0 // Outputs[1] { @1168 revert(memory[0x00:0x00]); } // Block terminates label_1169: // Incoming jump from 0x1164, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[2] // { // @116A stack[-2] // @116B memory[stack[-2]:stack[-2] + 0x20] // } 1169 5B JUMPDEST 116A 81 DUP2 116B 51 MLOAD 116C 80 DUP1 116D 15 ISZERO 116E 15 ISZERO 116F 81 DUP2 1170 14 EQ 1171 61 PUSH2 0x10a8 1174 57 *JUMPI // Stack delta = +1 // Outputs[1] { @116B stack[0] = memory[stack[-2]:stack[-2] + 0x20] } // Block ends with conditional jump to 0x10a8, if memory[stack[-2]:stack[-2] + 0x20] == !!memory[stack[-2]:stack[-2] + 0x20] label_1175: // Incoming jump from 0x1174, if not memory[stack[-2]:stack[-2] + 0x20] == !!memory[stack[-2]:stack[-2] + 0x20] // Inputs[1] { @1178 memory[0x00:0x00] } 1175 60 PUSH1 0x00 1177 80 DUP1 1178 FD *REVERT // Stack delta = +0 // Outputs[1] { @1178 revert(memory[0x00:0x00]); } // Block terminates label_1179: // Incoming call from 0x11AE, returns to 0x11AF // Incoming call from 0x11E5, returns to 0x11E6 // Inputs[1] { @117D stack[-3] } 1179 5B JUMPDEST 117A 60 PUSH1 0x00 117C 5B JUMPDEST 117D 83 DUP4 117E 81 DUP2 117F 10 LT 1180 15 ISZERO 1181 61 PUSH2 0x1194 1184 57 *JUMPI // Stack delta = +1 // Outputs[1] { @117A stack[0] = 0x00 } // Block ends with conditional jump to 0x1194, if !(0x00 < stack[-3]) label_1185: // Incoming jump from 0x1184, if not !(0x00 < stack[-3]) // Incoming jump from 0x1184, if not !(stack[-1] < stack[-4]) // Inputs[4] // { // @1185 stack[-2] // @1186 stack[-1] // @1188 memory[stack[-1] + stack[-2]:stack[-1] + stack[-2] + 0x20] // @1189 stack[-3] // } 1185 81 DUP2 1186 81 DUP2 1187 01 ADD 1188 51 MLOAD 1189 83 DUP4 118A 82 DUP3 118B 01 ADD 118C 52 MSTORE 118D 60 PUSH1 0x20 118F 01 ADD 1190 61 PUSH2 0x117c 1193 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @118C memory[stack[-1] + stack[-3]:stack[-1] + stack[-3] + 0x20] = memory[stack[-1] + stack[-2]:stack[-1] + stack[-2] + 0x20] // @118F stack[-1] = 0x20 + stack[-1] // } // Block ends with unconditional jump to 0x117c label_1194: // Incoming jump from 0x1184, if !(0x00 < stack[-3]) // Incoming jump from 0x1184, if !(stack[-1] < stack[-4]) // Inputs[3] // { // @1199 stack[-4] // @119A stack[-3] // @119C stack[-5] // } 1194 5B JUMPDEST 1195 50 POP 1196 50 POP 1197 60 PUSH1 0x00 1199 91 SWAP2 119A 01 ADD 119B 52 MSTORE 119C 56 *JUMP // Stack delta = -5 // Outputs[1] { @119B memory[stack[-4] + stack[-3]:stack[-4] + stack[-3] + 0x20] = 0x00 } // Block ends with unconditional jump to stack[-5] label_119D: // Incoming call from 0x06BD, returns to 0x06BE // Inputs[3] // { // @11A0 stack[-2] // @11A1 memory[stack[-2]:stack[-2] + 0x20] // @11A6 stack[-1] // } 119D 5B JUMPDEST 119E 60 PUSH1 0x00 11A0 82 DUP3 11A1 51 MLOAD 11A2 61 PUSH2 0x11af 11A5 81 DUP2 11A6 84 DUP5 11A7 60 PUSH1 0x20 11A9 87 DUP8 11AA 01 ADD 11AB 61 PUSH2 0x1179 11AE 56 *JUMP // Stack delta = +6 // Outputs[6] // { // @119E stack[0] = 0x00 // @11A1 stack[1] = memory[stack[-2]:stack[-2] + 0x20] // @11A2 stack[2] = 0x11af // @11A5 stack[3] = memory[stack[-2]:stack[-2] + 0x20] // @11A6 stack[4] = stack[-1] // @11AA stack[5] = stack[-2] + 0x20 // } // Block ends with call to 0x1179, returns to 0x11AF label_11AF: // Incoming return from call to 0x1179 at 0x11AE // Inputs[5] // { // @11B0 stack[-1] // @11B0 stack[-3] // @11B1 stack[-2] // @11B4 stack[-5] // @11B5 stack[-4] // } 11AF 5B JUMPDEST 11B0 91 SWAP2 11B1 90 SWAP1 11B2 91 SWAP2 11B3 01 ADD 11B4 92 SWAP3 11B5 91 SWAP2 11B6 50 POP 11B7 50 POP 11B8 56 *JUMP // Stack delta = -4 // Outputs[1] { @11B4 stack[-5] = stack[-1] + stack[-3] } // Block ends with unconditional jump to stack[-5] label_11B9: // Incoming call from 0x08F7, returns to 0x08F8 // Incoming call from 0x0BA1, returns to 0x0BA2 // Incoming call from 0x0977, returns to 0x0978 // Incoming call from 0x0D09, returns to 0x0D0A // Incoming call from 0x0C83, returns to 0x0C84 // Inputs[4] // { // @11C1 stack[-3] // @11C3 stack[-1] // @11CE stack[-2] // @11CF memory[stack[-2]:stack[-2] + 0x20] // } 11B9 5B JUMPDEST 11BA 60 PUSH1 0x01 11BC 80 DUP1 11BD 60 PUSH1 0xa0 11BF 1B SHL 11C0 03 SUB 11C1 83 DUP4 11C2 16 AND 11C3 81 DUP2 11C4 52 MSTORE 11C5 60 PUSH1 0x40 11C7 60 PUSH1 0x20 11C9 82 DUP3 11CA 01 ADD 11CB 52 MSTORE 11CC 60 PUSH1 0x00 11CE 82 DUP3 11CF 51 MLOAD 11D0 80 DUP1 11D1 60 PUSH1 0x40 11D3 84 DUP5 11D4 01 ADD 11D5 52 MSTORE 11D6 61 PUSH2 0x11e6 11D9 81 DUP2 11DA 60 PUSH1 0x60 11DC 85 DUP6 11DD 01 ADD 11DE 60 PUSH1 0x20 11E0 87 DUP8 11E1 01 ADD 11E2 61 PUSH2 0x1179 11E5 56 *JUMP // Stack delta = +6 // Outputs[9] // { // @11C4 memory[stack[-1]:stack[-1] + 0x20] = stack[-3] & (0x01 << 0xa0) - 0x01 // @11CB memory[stack[-1] + 0x20:stack[-1] + 0x20 + 0x20] = 0x40 // @11CC stack[0] = 0x00 // @11CF stack[1] = memory[stack[-2]:stack[-2] + 0x20] // @11D5 memory[stack[-1] + 0x40:stack[-1] + 0x40 + 0x20] = memory[stack[-2]:stack[-2] + 0x20] // @11D6 stack[2] = 0x11e6 // @11D9 stack[3] = memory[stack[-2]:stack[-2] + 0x20] // @11DD stack[4] = stack[-1] + 0x60 // @11E1 stack[5] = stack[-2] + 0x20 // } // Block ends with call to 0x1179, returns to 0x11E6 label_11E6: // Incoming return from call to 0x1179 at 0x11E5 // Inputs[5] // { // @11E9 stack[-1] // @11EE stack[-3] // @11EF stack[-2] // @11F5 stack[-6] // @11F6 stack[-5] // } 11E6 5B JUMPDEST 11E7 60 PUSH1 0x1f 11E9 01 ADD 11EA 60 PUSH1 0x1f 11EC 19 NOT 11ED 16 AND 11EE 91 SWAP2 11EF 90 SWAP1 11F0 91 SWAP2 11F1 01 ADD 11F2 60 PUSH1 0x60 11F4 01 ADD 11F5 93 SWAP4 11F6 92 SWAP3 11F7 50 POP 11F8 50 POP 11F9 50 POP 11FA 56 *JUMP // Stack delta = -5 // Outputs[1] { @11F5 stack[-6] = 0x60 + (~0x1f & 0x1f + stack[-1]) + stack[-3] } // Block ends with unconditional jump to stack[-6] 11FB FE *ASSERT 11FC 60 PUSH1 0x80 11FE 60 PUSH1 0x40 1200 52 MSTORE 1201 34 CALLVALUE 1202 80 DUP1 1203 15 ISZERO 1204 61 PUSH2 0x0010 1207 57 *JUMPI 1208 60 PUSH1 0x00 120A 80 DUP1 120B FD *REVERT 120C 5B JUMPDEST 120D 50 POP 120E 60 PUSH1 0x00 1210 80 DUP1 1211 54 SLOAD 1212 60 PUSH1 0x01 1214 60 PUSH1 0x01 1216 60 PUSH1 0xa0 1218 1B SHL 1219 03 SUB 121A 19 NOT 121B 16 AND 121C 33 CALLER 121D 17 OR 121E 90 SWAP1 121F 55 SSTORE 1220 61 PUSH2 0x01a5 1223 80 DUP1 1224 61 PUSH2 0x0032 1227 60 PUSH1 0x00 1229 39 CODECOPY 122A 60 PUSH1 0x00 122C F3 *RETURN 122D FE *ASSERT 122E 60 PUSH1 0x80 1230 60 PUSH1 0x40 1232 52 MSTORE 1233 34 CALLVALUE 1234 80 DUP1 1235 15 ISZERO 1236 61 PUSH2 0x0010 1239 57 *JUMPI 123A 60 PUSH1 0x00 123C 80 DUP1 123D FD *REVERT 123E 5B JUMPDEST 123F 50 POP 1240 60 PUSH1 0x04 1242 36 CALLDATASIZE 1243 10 LT 1244 61 PUSH2 0x002b 1247 57 *JUMPI 1248 60 PUSH1 0x00 124A 35 CALLDATALOAD 124B 60 PUSH1 0xe0 124D 1C SHR 124E 80 DUP1 124F 63 PUSH4 0x93d3a7b6 1254 14 EQ 1255 61 PUSH2 0x0030 1258 57 *JUMPI 1259 5B JUMPDEST 125A 60 PUSH1 0x00 125C 80 DUP1 125D FD *REVERT 125E 5B JUMPDEST 125F 61 PUSH2 0x0043 1262 61 PUSH2 0x003e 1265 36 CALLDATASIZE 1266 60 PUSH1 0x04 1268 61 PUSH2 0x00ce 126B 56 *JUMP 126C 5B JUMPDEST 126D 61 PUSH2 0x0045 1270 56 *JUMP 1271 5B JUMPDEST 1272 00 *STOP 1273 5B JUMPDEST 1274 60 PUSH1 0x00 1276 54 SLOAD 1277 60 PUSH1 0x01 1279 60 PUSH1 0x01 127B 60 PUSH1 0xa0 127D 1B SHL 127E 03 SUB 127F 16 AND 1280 33 CALLER 1281 14 EQ 1282 61 PUSH2 0x005c 1285 57 *JUMPI 1286 60 PUSH1 0x00 1288 80 DUP1 1289 FD *REVERT 128A 5B JUMPDEST 128B 60 PUSH1 0x00 128D 83 DUP4 128E 60 PUSH1 0x01 1290 60 PUSH1 0x01 1292 60 PUSH1 0xa0 1294 1B SHL 1295 03 SUB 1296 16 AND 1297 83 DUP4 1298 83 DUP4 1299 60 PUSH1 0x40 129B 51 MLOAD 129C 61 PUSH2 0x0078 129F 92 SWAP3 12A0 91 SWAP2 12A1 90 SWAP1 12A2 61 PUSH2 0x015f 12A5 56 *JUMP 12A6 5B JUMPDEST 12A7 60 PUSH1 0x00 12A9 60 PUSH1 0x40 12AB 51 MLOAD 12AC 80 DUP1 12AD 83 DUP4 12AE 03 SUB 12AF 81 DUP2 12B0 60 PUSH1 0x00 12B2 86 DUP7 12B3 5A GAS 12B4 F1 CALL 12B5 91 SWAP2 12B6 50 POP 12B7 50 POP 12B8 3D RETURNDATASIZE 12B9 80 DUP1 12BA 60 PUSH1 0x00 12BC 81 DUP2 12BD 14 EQ 12BE 61 PUSH2 0x00b5 12C1 57 *JUMPI 12C2 60 PUSH1 0x40 12C4 51 MLOAD 12C5 91 SWAP2 12C6 50 POP 12C7 60 PUSH1 0x1f 12C9 19 NOT 12CA 60 PUSH1 0x3f 12CC 3D RETURNDATASIZE 12CD 01 ADD 12CE 16 AND 12CF 82 DUP3 12D0 01 ADD 12D1 60 PUSH1 0x40 12D3 52 MSTORE 12D4 3D RETURNDATASIZE 12D5 82 DUP3 12D6 52 MSTORE 12D7 3D RETURNDATASIZE 12D8 60 PUSH1 0x00 12DA 60 PUSH1 0x20 12DC 84 DUP5 12DD 01 ADD 12DE 3E RETURNDATACOPY 12DF 61 PUSH2 0x00ba 12E2 56 *JUMP 12E3 5B JUMPDEST 12E4 60 PUSH1 0x60 12E6 91 SWAP2 12E7 50 POP 12E8 5B JUMPDEST 12E9 50 POP 12EA 50 POP 12EB 90 SWAP1 12EC 50 POP 12ED 80 DUP1 12EE 61 PUSH2 0x00c8 12F1 57 *JUMPI 12F2 60 PUSH1 0x00 12F4 80 DUP1 12F5 FD *REVERT 12F6 5B JUMPDEST 12F7 50 POP 12F8 50 POP 12F9 50 POP 12FA 50 POP 12FB 56 *JUMP 12FC 5B JUMPDEST 12FD 60 PUSH1 0x00 12FF 80 DUP1 1300 60 PUSH1 0x00 1302 60 PUSH1 0x40 1304 84 DUP5 1305 86 DUP7 1306 03 SUB 1307 12 SLT 1308 15 ISZERO 1309 61 PUSH2 0x00e3 130C 57 *JUMPI 130D 60 PUSH1 0x00 130F 80 DUP1 1310 FD *REVERT 1311 5B JUMPDEST 1312 83 DUP4 1313 35 CALLDATALOAD 1314 60 PUSH1 0x01 1316 60 PUSH1 0x01 1318 60 PUSH1 0xa0 131A 1B SHL 131B 03 SUB 131C 81 DUP2 131D 16 AND 131E 81 DUP2 131F 14 EQ 1320 61 PUSH2 0x00fa 1323 57 *JUMPI 1324 60 PUSH1 0x00 1326 80 DUP1 1327 FD *REVERT 1328 5B JUMPDEST 1329 92 SWAP3 132A 50 POP 132B 60 PUSH1 0x20 132D 84 DUP5 132E 01 ADD 132F 35 CALLDATALOAD 1330 67 PUSH8 0xffffffffffffffff 1339 80 DUP1 133A 82 DUP3 133B 11 GT 133C 15 ISZERO 133D 61 PUSH2 0x0117 1340 57 *JUMPI 1341 60 PUSH1 0x00 1343 80 DUP1 1344 FD *REVERT 1345 5B JUMPDEST 1346 81 DUP2 1347 86 DUP7 1348 01 ADD 1349 91 SWAP2 134A 50 POP 134B 86 DUP7 134C 60 PUSH1 0x1f 134E 83 DUP4 134F 01 ADD 1350 12 SLT 1351 61 PUSH2 0x012b 1354 57 *JUMPI 1355 60 PUSH1 0x00 1357 80 DUP1 1358 FD *REVERT 1359 5B JUMPDEST 135A 81 DUP2 135B 35 CALLDATALOAD 135C 81 DUP2 135D 81 DUP2 135E 11 GT 135F 15 ISZERO 1360 61 PUSH2 0x013a 1363 57 *JUMPI 1364 60 PUSH1 0x00 1366 80 DUP1 1367 FD *REVERT 1368 5B JUMPDEST 1369 87 DUP8 136A 60 PUSH1 0x20 136C 82 DUP3 136D 85 DUP6 136E 01 ADD 136F 01 ADD 1370 11 GT 1371 15 ISZERO 1372 61 PUSH2 0x014c 1375 57 *JUMPI 1376 60 PUSH1 0x00 1378 80 DUP1 1379 FD *REVERT 137A 5B JUMPDEST 137B 60 PUSH1 0x20 137D 83 DUP4 137E 01 ADD 137F 94 SWAP5 1380 50 POP 1381 80 DUP1 1382 93 SWAP4 1383 50 POP 1384 50 POP 1385 50 POP 1386 50 POP 1387 92 SWAP3 1388 50 POP 1389 92 SWAP3 138A 50 POP 138B 92 SWAP3 138C 56 *JUMP 138D 5B JUMPDEST 138E 81 DUP2 138F 83 DUP4 1390 82 DUP3 1391 37 CALLDATACOPY 1392 60 PUSH1 0x00 1394 91 SWAP2 1395 01 ADD 1396 90 SWAP1 1397 81 DUP2 1398 52 MSTORE 1399 91 SWAP2 139A 90 SWAP1 139B 50 POP 139C 56 *JUMP 139D FE *ASSERT 139E A2 LOG2 139F 64 PUSH5 0x6970667358 13A5 22 22 13A6 12 SLT 13A7 20 SHA3 13A8 13 SGT 13A9 1A BYTE 13AA 39 CODECOPY 13AB 3B EXTCODESIZE 13AC CD CD 13AD AE AE 13AE 2A 2A 13AF 86 DUP7 13B0 1E 1E 13B1 5B JUMPDEST 13B2 87 DUP8 13B3 9A SWAP11 13B4 D8 D8 13B5 82 DUP3 13B6 06 MOD 13B7 1B SHL 13B8 A5 A5 13B9 03 SUB 13BA CE CE 13BB 46 CHAINID 13BC F4 DELEGATECALL 13BD E2 E2 13BE F7 F7 13BF 1E 1E 13C0 2F 2F 13C1 76 PUSH23 0x655abf63040564736f6c63430008130033a26469706673 13D9 58 PC 13DA 22 22 13DB 12 SLT 13DC 20 SHA3 13DD 5E 5E 13DE B7 B7 13DF 9D SWAP14 13E0 DD DD 13E1 20 SHA3 13E2 7F PUSH32 0x5613d2ab869e4a2480bb4fd5102b88858c8f829055033d183cce64736f6c6343 1403 00 *STOP 1404 08 ADDMOD 1405 13 SGT 1406 00 *STOP 1407 33 CALLER
Found this site useful?
Donations are greatly appreciated!
ETH: 0xB3F04f0c276fa1177c1779f6E1E156B2738ea392
Contact/hire: [email protected]