Online Solidity Decompiler

« Decompile another contract

Address

0x28e08d2eb66231b3b23fff90e85a9a165951029c [etherscan.io | etherchain.org]

Public Methods

No public methods detected.

Internal Methods

func_0299(arg0, arg1) returns (r0)
func_02C6(arg0) returns (r0)
func_02D0(arg0) returns (r0)
func_02F3() returns (r0)
func_034A() returns (r0)
func_03A9() returns (r0)
func_03F6() returns (r0)
func_0443() returns (r0)
func_047F() returns (r0)
func_04D5(arg0, arg1, arg2) returns (r0)
func_055B()
func_056A(arg0, arg1, arg2)
func_0596(arg0)
func_05E2() returns (r0)
func_05F1()
func_0619(arg0, arg1, arg2, arg3) returns (r0)
func_068E(arg0)
func_06DD(arg0)
func_07BD() returns (r0)
func_0864(arg0)
func_091D(arg0, arg1) returns (r0)
func_092E(arg0)
func_09A3(arg0) returns (r0)
func_09C6(arg0) returns (r0)
func_09E6() returns (r0)
func_09FA(arg0, arg1, arg2, arg3) returns (r0, r1)
func_0A3F(arg0) returns (r0)
func_0A5F(arg0) returns (r0)
func_0A71(arg0)
func_0A88(arg0, arg1) returns (r0)
func_0A9D(arg0, arg1) returns (r0)
func_0AD4(arg0) returns (r0)
func_0B14(arg0, arg1)
func_0B60(arg0) returns (r0)
func_0B91(arg0, arg1, arg2)
func_0BA0(arg0, arg1, arg2) returns (r0)
func_0BAE(arg0) returns (r0)
func_0BE2(arg0, arg1) returns (r0)
func_0C10(arg0, arg1) returns (r0, r1)
func_0C6C(arg0) returns (r0)
func_0C7E(arg0, arg1)
func_0C8D(arg0, arg1) returns (r0)
func_0CA8(arg0) returns (r0)
func_0CB3(arg0, arg1) returns (r0)
func_0CBE(arg0, arg1, arg2)
func_0CE8(arg0, arg1) returns (r0)
func_0D19(arg0, arg1) returns (r0)
func_0D30(arg0, arg1, arg2) returns (r0)
func_0D59(arg0)
func_0D82(arg0) returns (r0)
func_0DA5(arg0) returns (r0)
func_0DC5(arg0)
func_0E14(arg0) returns (r0)
func_0E37(arg0) returns (r0)
func_0E57(arg0) returns (r0)
func_0E62(arg0, arg1) returns (r0)
func_0E9B(arg0, arg1) returns (r0)
func_0EBD(arg0)
func_0F0C(arg0) returns (r0)
func_0F2F(arg0) returns (r0)

Decompilation

This might be constructor bytecode - to get at the deployed contract, go back and remove the constructor prefix, usually up to the next 6060 or 6080.
contract Contract { function main() { memory[0x40:0x60] = 0x80; if (msg.data.length) { var var0 = 0x001b; label_001D: var var1 = 0x0025; var1 = func_02F3(); if (msg.sender - (var1 & 0xffffffffffffffffffffffffffffffffffffffff)) { var1 = 0x0297; var var2 = 0x04c3; func_05F1(); var2 = 0x04d3; var var3 = 0x04ce; var3 = func_05E2(); var temp0 = msg.data.length; memory[0x00:0x00 + temp0] = msg.data[0x00:0x00 + temp0]; var temp1; temp1, memory[0x00:0x00] = address(var3).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]); var temp2 = returndata.length; memory[0x00:0x00 + temp2] = returndata[0x00:0x00 + temp2]; if (temp1 == 0x00) { revert(memory[0x00:0x00 + returndata.length]); } else { return memory[0x00:0x00 + returndata.length]; } } else { var1 = 0x60; var2 = msg.data[0x00:0x20] & 0xffffffff00000000000000000000000000000000000000000000000000000000; if (!((var2 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x3659cfe6 << 0xe0)))) { var3 = 0x00d5; var3 = func_034A(); var1 = var3; goto label_0287; } else if (!((var2 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x4f1ef286 << 0xe0)))) { var3 = 0x0130; var3 = func_03A9(); var1 = var3; goto label_0287; } else if (!((var2 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x8f283970 << 0xe0)))) { var3 = 0x018b; var3 = func_03F6(); var1 = var3; label_0287: var temp7 = var1; return memory[temp7 + 0x20:temp7 + 0x20 + memory[temp7:temp7 + 0x20]]; } else if (!((var2 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0xf851a440 << 0xe0)))) { var3 = 0x01e6; var3 = func_0443(); var1 = var3; var temp6 = var1; return memory[temp6 + 0x20:temp6 + 0x20 + memory[temp6:temp6 + 0x20]]; } else if ((var2 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x5c60da1b << 0xe0))) { var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var var4 = temp3 + 0x04; var3 = 0x027a; var3 = func_09C6(var4); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + var3 - temp4]); } else { var3 = 0x0241; var3 = func_047F(); var1 = var3; var temp5 = var1; return memory[temp5 + 0x20:temp5 + 0x20 + memory[temp5:temp5 + 0x20]]; } } } else { var0 = 0x0011; goto label_001D; } } function func_0299(var arg0, var arg1) returns (var r0) { var var0 = 0x60; var var1 = 0x02be; var var2 = arg0; var var3 = arg1; var temp0 = memory[0x40:0x60]; var var4 = temp0; memory[0x40:0x60] = var4 + 0x60; memory[var4:var4 + 0x20] = 0x27; memory[var4 + 0x20:var4 + 0x20 + 0x27] = code[0x0f50:0x0f77]; return func_04D5(var2, var3, var4); } function func_02C6(var arg0) returns (var r0) { return arg0; } function func_02D0(var arg0) returns (var r0) { return address(arg0 & 0xffffffffffffffffffffffffffffffffffffffff).code.length > 0x00; } function func_02F3() returns (var r0) { var var0 = 0x00; var var1 = 0x0321; var var2 = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 << 0x00; var1 = func_02C6(var2); return storage[var1] & 0xffffffffffffffffffffffffffffffffffffffff; } function func_034A() returns (var r0) { var var0 = 0x60; var var1 = 0x0354; func_055B(); var1 = 0x00; var var2 = 0x0369; var var3 = msg.data.length; var var4 = 0x04; var var6 = var1; var var5 = var3; var2, var3 = func_09FA(var3, var4, var5, var6); var temp0 = var2; var temp1 = temp0 + var3; var2 = 0x0376; var4 = temp0; var3 = temp1; var2 = func_0A9D(var3, var4); var temp2 = var2; var1 = temp2; var2 = 0x0393; var3 = var1; var temp3 = memory[0x40:0x60]; var4 = temp3; memory[0x40:0x60] = var4 + 0x20; memory[var4:var4 + 0x20] = 0x00; var5 = 0x00; func_056A(var3, var4, var5); var temp4 = memory[0x40:0x60]; memory[0x40:0x60] = temp4 + 0x20; memory[temp4:temp4 + 0x20] = 0x00; return temp4; } function func_03A9() returns (var r0) { var var0 = 0x60; var var1 = 0x00; var var2 = var1; var var3 = 0x03c2; var var4 = msg.data.length; var var5 = 0x04; var var7 = 0x00; var var6 = var4; var3, var4 = func_09FA(var4, var5, var6, var7); var temp0 = var3; var temp1 = temp0 + var4; var3 = 0x03cf; var5 = temp0; var4 = temp1; var3, var4 = func_0C10(var4, var5); var temp2 = var4; var2 = temp2; var temp3 = var3; var1 = temp3; var3 = 0x03df; var4 = var1; var5 = var2; var6 = 0x01; func_056A(var4, var5, var6); var temp4 = memory[0x40:0x60]; memory[0x40:0x60] = temp4 + 0x20; memory[temp4:temp4 + 0x20] = 0x00; return temp4; } function func_03F6() returns (var r0) { var var0 = 0x60; var var1 = 0x0400; func_055B(); var1 = 0x00; var var2 = 0x0415; var var3 = msg.data.length; var var4 = 0x04; var var6 = var1; var var5 = var3; var2, var3 = func_09FA(var3, var4, var5, var6); var temp0 = var2; var temp1 = temp0 + var3; var2 = 0x0422; var4 = temp0; var3 = temp1; var2 = func_0A9D(var3, var4); var temp2 = var2; var1 = temp2; var2 = 0x042d; var3 = var1; func_0596(var3); var temp3 = memory[0x40:0x60]; memory[0x40:0x60] = temp3 + 0x20; memory[temp3:temp3 + 0x20] = 0x00; return temp3; } function func_0443() returns (var r0) { var var0 = 0x60; var var1 = 0x044d; func_055B(); var1 = 0x00; var var2 = 0x0457; var2 = func_02F3(); var temp0 = var2; var1 = temp0; var2 = 0x046a; var var3 = var1; var var4 = memory[0x40:0x60] + 0x20; var2 = func_0C8D(var3, var4); var temp1 = memory[0x40:0x60]; var temp2 = var2; memory[temp1:temp1 + 0x20] = temp2 - temp1 - 0x20; memory[0x40:0x60] = temp2; return temp1; } function func_047F() returns (var r0) { var var0 = 0x60; var var1 = 0x0489; func_055B(); var1 = 0x00; var var2 = 0x0493; var2 = func_05E2(); var temp0 = var2; var1 = temp0; var2 = 0x04a6; var var3 = var1; var var4 = memory[0x40:0x60] + 0x20; var2 = func_0C8D(var3, var4); var temp1 = memory[0x40:0x60]; var temp2 = var2; memory[temp1:temp1 + 0x20] = temp2 - temp1 - 0x20; memory[0x40:0x60] = temp2; return temp1; } function func_04D5(var arg0, var arg1, var arg2) returns (var r0) { var var0 = 0x60; var var1 = 0x00; var var2 = var1; var var3 = arg0 & 0xffffffffffffffffffffffffffffffffffffffff; var var4 = 0x04ff; var var5 = arg1; var var6 = memory[0x40:0x60]; var4 = func_0D19(var5, var6); var temp0 = memory[0x40:0x60]; var temp1; temp1, memory[temp0:temp0 + 0x00] = address(var3).delegatecall.gas(msg.gas)(memory[temp0:temp0 + var4 - temp0]); var4 = returndata.length; var5 = var4; if (var5 == 0x00) { var2 = 0x60; var temp2 = var3; var1 = temp2; var3 = 0x0550; var4 = arg0; var5 = var1; var6 = var2; var var7 = arg2; var3 = func_0619(var4, var5, var6, var7); label_0550: return var3; } else { var temp3 = memory[0x40:0x60]; var4 = temp3; memory[0x40:0x60] = var4 + (returndata.length + 0x3f & ~0x1f); memory[var4:var4 + 0x20] = returndata.length; var temp4 = returndata.length; memory[var4 + 0x20:var4 + 0x20 + temp4] = returndata[0x00:0x00 + temp4]; var temp5 = var4; var2 = temp5; var temp6 = var3; var1 = temp6; var3 = 0x0550; var4 = arg0; var5 = var1; var6 = var2; var7 = arg2; var3 = func_0619(var4, var5, var6, var7); goto label_0550; } } function func_055B() { if (msg.value == 0x00) { return; } else { revert(memory[0x00:0x00]); } } function func_056A(var arg0, var arg1, var arg2) { var var0 = 0x0573; var var1 = arg0; func_068E(var1); var0 = memory[arg1:arg1 + 0x20] > 0x00; if (var0) { if (!var0) { label_0591: return; } else { label_0586: var0 = 0x058f; var1 = arg0; var var2 = arg1; var0 = func_0299(var1, var2); goto label_0591; } } else if (!arg2) { goto label_0591; } else { goto label_0586; } } function func_0596(var arg0) { var var0 = 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f; var var1 = 0x05bf; var1 = func_02F3(); var temp0 = var1; var1 = 0x05ce; var var2 = temp0; var var4 = memory[0x40:0x60]; var var3 = arg0; var1 = func_0D30(var2, var3, var4); var temp1 = memory[0x40:0x60]; log(memory[temp1:temp1 + var1 - temp1], [stack[-2]]); var0 = 0x05df; var1 = arg0; func_06DD(var1); } function func_05E2() returns (var r0) { var var0 = 0x00; var var1 = 0x05ec; return func_07BD(); } function func_05F1() {} function func_0619(var arg0, var arg1, var arg2, var arg3) returns (var r0) { var var0 = 0x60; if (!arg1) { var var1 = 0x0685; var var2 = arg2; var var3 = arg3; if (memory[var2:var2 + 0x20] <= 0x00) { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var var4 = 0x085b; var var6 = temp0 + 0x04; var var5 = var3; var4 = func_0E9B(var5, var6); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + var4 - temp1]); } else { var temp2 = var2; var4 = memory[temp2:temp2 + 0x20]; revert(memory[temp2 + 0x20:temp2 + 0x20 + var4]); } } else if (memory[arg2:arg2 + 0x20]) { label_0673: return arg2; } else { var1 = 0x0633; var2 = arg0; var1 = func_02D0(var2); if (var1) { goto label_0673; } var temp3 = memory[0x40:0x60]; memory[temp3:temp3 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var2 = temp3 + 0x04; var1 = 0x0669; var1 = func_0DA5(var2); var temp4 = memory[0x40:0x60]; revert(memory[temp4:temp4 + var1 - temp4]); } } function func_068E(var arg0) { var var0 = 0x0697; var var1 = arg0; func_0864(var1); var temp0 = memory[0x40:0x60]; log(memory[temp0:temp0 + memory[0x40:0x60] - temp0], [0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b, stack[-1] & 0xffffffffffffffffffffffffffffffffffffffff]); } function func_06DD(var arg0) { if (arg0 & 0xffffffffffffffffffffffffffffffffffffffff) { var var0 = arg0; var var1 = 0x0779; var var2 = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 << 0x00; var1 = func_02C6(var2); var temp0 = var1; storage[temp0] = (var0 & 0xffffffffffffffffffffffffffffffffffffffff) | (storage[temp0] & ~0xffffffffffffffffffffffffffffffffffffffff); return; } else { var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var1 = temp1 + 0x04; var0 = 0x0743; var0 = func_0E37(var1); var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + var0 - temp2]); } } function func_07BD() returns (var r0) { var var0 = 0x00; var var1 = 0x07eb; var var2 = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc << 0x00; var1 = func_02C6(var2); return storage[var1] & 0xffffffffffffffffffffffffffffffffffffffff; } function func_0864(var arg0) { var var0 = 0x086d; var var1 = arg0; var0 = func_02D0(var1); if (var0) { var0 = arg0; var1 = 0x08d9; var var2 = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc << 0x00; var1 = func_02C6(var2); var temp0 = var1; storage[temp0] = (var0 & 0xffffffffffffffffffffffffffffffffffffffff) | (storage[temp0] & ~0xffffffffffffffffffffffffffffffffffffffff); return; } else { var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var0 = 0x08a3; var1 = temp1 + 0x04; var0 = func_0F2F(var1); var temp2 = memory[0x40:0x60]; revert(memory[temp2:temp2 + var0 - temp2]); } } function func_091D(var arg0, var arg1) returns (var r0) { var temp0 = arg1; memory[temp0:temp0 + 0x20] = arg0; return temp0 + 0x20; } function func_092E(var arg0) { var temp0 = arg0; memory[temp0:temp0 + 0x20] = 0x5472616e73706172656e745570677261646561626c6550726f78793a2061646d; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267; memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = 0x6574000000000000000000000000000000000000000000000000000000000000; } function func_09A3(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x09b0; var var2 = 0x42; var var3 = arg0; var1 = func_091D(var2, var3); var temp0 = var1; arg0 = temp0; var1 = 0x09bb; var2 = arg0; func_092E(var2); return arg0 + 0x60; } function func_09C6(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x09df; var var2 = var0; return func_09A3(var2); } function func_09E6() returns (var r0) { return memory[0x40:0x60]; } function func_09FA(var arg0, var arg1, var arg2, var arg3) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg1 > arg0) { var2 = 0x0a0d; revert(memory[0x00:0x00]); } else if (arg0 <= arg2) { var temp0 = arg1; arg0 = arg0 - temp0; r0 = arg3 + temp0; return r0, arg0; } else { var var2 = 0x0a1e; revert(memory[0x00:0x00]); } } function func_0A3F(var arg0) returns (var r0) { return arg0 & 0xffffffffffffffffffffffffffffffffffffffff; } function func_0A5F(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0a6a; var var2 = arg0; return func_0A3F(var2); } function func_0A71(var arg0) { var var0 = 0x0a7a; var var1 = arg0; var0 = func_0A5F(var1); if (arg0 == var0) { return; } else { revert(memory[0x00:0x00]); } } function func_0A88(var arg0, var arg1) returns (var r0) { var var0 = msg.data[arg1:arg1 + 0x20]; var var1 = 0x0a97; var var2 = var0; func_0A71(var2); return var0; } function func_0A9D(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i>= 0x20) { var var1 = 0x00; var var2 = 0x0ac1; var var3 = arg0; var var4 = arg1 + var1; return func_0A88(var3, var4); } else { var1 = 0x0ab2; revert(memory[0x00:0x00]); } } function func_0AD4(var arg0) returns (var r0) { return arg0 + 0x1f & ~0x1f; } function func_0B14(var arg0, var arg1) { var var0 = 0x0b1d; var var1 = arg0; var0 = func_0AD4(var1); var temp0 = arg1; var temp1 = temp0 + var0; var0 = temp1; if (!((var0 > 0xffffffffffffffff) | (var0 < temp0))) { memory[0x40:0x60] = var0; return; } else { var1 = 0x0b3b; memory[0x00:0x20] = 0x4e487b7100000000000000000000000000000000000000000000000000000000; memory[0x04:0x24] = 0x41; revert(memory[0x00:0x24]); } } function func_0B60(var arg0) returns (var r0) { var var0 = 0x00; if (arg0 <= 0xffffffffffffffff) { var var1 = 0x0b84; var var2 = arg0; var1 = func_0AD4(var2); return var1 + 0x20; } else { var1 = 0x0b7a; memory[0x00:0x20] = 0x4e487b7100000000000000000000000000000000000000000000000000000000; memory[0x04:0x24] = 0x41; revert(memory[0x00:0x24]); } } function func_0B91(var arg0, var arg1, var arg2) { var temp0 = arg0; var temp1 = arg1; memory[temp1:temp1 + temp0] = msg.data[arg2:arg2 + temp0]; memory[temp1 + temp0:temp1 + temp0 + 0x20] = 0x00; } function func_0BA0(var arg0, var arg1, var arg2) returns (var r0) { var var0 = 0x00; var var1 = 0x0bb3; var var2 = 0x0bae; var var3 = arg1; var2 = func_0B60(var3); var1 = func_0BAE(var2); var temp0 = var1; var0 = temp0; var temp1 = arg1; memory[var0:var0 + 0x20] = temp1; var1 = var0 + 0x20; if (arg2 + temp1 <= arg0) { var2 = 0x0bda; var3 = arg1; var var4 = var1; var var5 = arg2; func_0B91(var3, var4, var5); return var0; } else { var2 = 0x0bce; revert(memory[0x00:0x00]); } } function func_0BAE(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0b4f; var1 = func_09E6(); var temp0 = var1; var0 = temp0; var1 = 0x0b5b; var var2 = arg0; var var3 = var0; func_0B14(var2, var3); return var0; } function func_0BE2(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg1 + 0x1f i< arg0) { var temp0 = arg1; var var1 = msg.data[temp0:temp0 + 0x20]; var var2 = 0x0c07; var var3 = arg0; var var4 = var1; var var5 = temp0 + 0x20; return func_0BA0(var3, var4, var5); } else { var1 = 0x0bf6; revert(memory[0x00:0x00]); } } function func_0C10(var arg0, var arg1) returns (var r0, var arg0) { var var0 = 0x00; var var1 = var0; if (arg0 - arg1 i>= 0x40) { var var2 = 0x00; var var3 = 0x0c35; var var4 = arg0; var var5 = arg1 + var2; var3 = func_0A88(var4, var5); var0 = var3; var2 = msg.data[arg1 + 0x20:arg1 + 0x20 + 0x20]; if (var2 <= 0xffffffffffffffff) { var3 = 0x0c62; var4 = arg0; var5 = arg1 + var2; var3 = func_0BE2(var4, var5); arg0 = var3; r0 = var0; return r0, arg0; } else { var3 = 0x0c55; revert(memory[0x00:0x00]); } } else { var2 = 0x0c26; revert(memory[0x00:0x00]); } } function func_0C6C(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0c77; var var2 = arg0; return func_0A3F(var2); } function func_0C7E(var arg0, var arg1) { var var0 = 0x0c87; var var1 = arg1; var0 = func_0C6C(var1); memory[arg0:arg0 + 0x20] = var0; } function func_0C8D(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = temp0 + 0x20; var var1 = 0x0ca2; var var2 = temp0; var var3 = arg0; func_0C7E(var2, var3); return var0; } function func_0CA8(var arg0) returns (var r0) { return memory[arg0:arg0 + 0x20]; } function func_0CB3(var arg0, var arg1) returns (var r0) { return arg1; } function func_0CBE(var arg0, var arg1, var arg2) { var var0 = 0x00; if (var0 >= arg0) { label_0CDC: memory[arg1 + arg0:arg1 + arg0 + 0x20] = 0x00; return; } else { label_0CCA: var temp0 = var0; memory[arg1 + temp0:arg1 + temp0 + 0x20] = memory[arg2 + temp0:arg2 + temp0 + 0x20]; var0 = temp0 + 0x20; if (var0 >= arg0) { goto label_0CDC; } else { goto label_0CCA; } } } function func_0CE8(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x0cf3; var var2 = arg1; var1 = func_0CA8(var2); var2 = 0x0cfd; var var3 = var1; var var4 = arg0; var2 = func_0CB3(var3, var4); var temp0 = var2; arg0 = temp0; var2 = 0x0d0d; var3 = var1; var4 = arg0; var var5 = arg1 + 0x20; func_0CBE(var3, var4, var5); return arg0 + var1; } function func_0D19(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x0d25; var var2 = arg1; var var3 = arg0; return func_0CE8(var2, var3); } function func_0D30(var arg0, var arg1, var arg2) returns (var r0) { var temp0 = arg2; var var0 = temp0 + 0x40; var var1 = 0x0d45; var var2 = temp0; var var3 = arg0; func_0C7E(var2, var3); var1 = 0x0d52; var2 = arg2 + 0x20; var3 = arg1; func_0C7E(var2, var3); return var0; } function func_0D59(var arg0) { memory[arg0:arg0 + 0x20] = 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000; } function func_0D82(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0d8f; var var2 = 0x1d; var var3 = arg0; var1 = func_091D(var2, var3); var temp0 = var1; arg0 = temp0; var1 = 0x0d9a; var2 = arg0; func_0D59(var2); return arg0 + 0x20; } function func_0DA5(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x0dbe; var var2 = var0; return func_0D82(var2); } function func_0DC5(var arg0) { var temp0 = arg0; memory[temp0:temp0 + 0x20] = 0x455243313936373a206e65772061646d696e20697320746865207a65726f2061; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x6464726573730000000000000000000000000000000000000000000000000000; } function func_0E14(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0e21; var var2 = 0x26; var var3 = arg0; var1 = func_091D(var2, var3); var temp0 = var1; arg0 = temp0; var1 = 0x0e2c; var2 = arg0; func_0DC5(var2); return arg0 + 0x40; } function func_0E37(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x0e50; var var2 = var0; return func_0E14(var2); } function func_0E57(var arg0) returns (var r0) { return memory[arg0:arg0 + 0x20]; } function func_0E62(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x0e6d; var var2 = arg1; var1 = func_0E57(var2); var2 = 0x0e77; var var3 = var1; var var4 = arg0; var2 = func_091D(var3, var4); var temp0 = var2; arg0 = temp0; var2 = 0x0e87; var3 = var1; var4 = arg0; var var5 = arg1 + 0x20; func_0CBE(var3, var4, var5); var2 = 0x0e90; var3 = var1; var2 = func_0AD4(var3); return arg0 + var2; } function func_0E9B(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x0eb5; var var2 = var0; var var3 = arg0; return func_0E62(var2, var3); } function func_0EBD(var arg0) { var temp0 = arg0; memory[temp0:temp0 + 0x20] = 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x6f74206120636f6e747261637400000000000000000000000000000000000000; } function func_0F0C(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0f19; var var2 = 0x2d; var var3 = arg0; var1 = func_091D(var2, var3); var temp0 = var1; arg0 = temp0; var1 = 0x0f24; var2 = arg0; func_0EBD(var2); return arg0 + 0x40; } function func_0F2F(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x0f48; var var2 = var0; return func_0F0C(var2); } }

Disassembly

label_0000: // Inputs[1] { @0005 msg.data.length } 0000 60 PUSH1 0x80 0002 60 PUSH1 0x40 0004 52 MSTORE 0005 36 CALLDATASIZE 0006 61 PUSH2 0x0013 0009 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0004 memory[0x40:0x60] = 0x80 } // Block ends with conditional jump to 0x0013, if msg.data.length label_000A: // Incoming jump from 0x0009, if not msg.data.length 000A 61 PUSH2 0x0011 000D 61 PUSH2 0x001d 0010 56 *JUMP // Stack delta = +1 // Outputs[1] { @000A stack[0] = 0x0011 } // Block ends with unconditional jump to 0x001d 0011 5B JUMPDEST 0012 00 *STOP label_0013: // Incoming jump from 0x0009, if msg.data.length 0013 5B JUMPDEST 0014 61 PUSH2 0x001b 0017 61 PUSH2 0x001d 001A 56 *JUMP // Stack delta = +1 // Outputs[1] { @0014 stack[0] = 0x001b } // Block ends with unconditional jump to 0x001d 001B 5B JUMPDEST 001C 00 *STOP label_001D: // Incoming jump from 0x0010 // Incoming jump from 0x001A 001D 5B JUMPDEST 001E 61 PUSH2 0x0025 0021 61 PUSH2 0x02f3 0024 56 *JUMP // Stack delta = +1 // Outputs[1] { @001E stack[0] = 0x0025 } // Block ends with call to 0x02f3, returns to 0x0025 label_0025: // Incoming return from call to 0x02F3 at 0x0024 // Inputs[2] // { // @003B stack[-1] // @003C msg.sender // } 0025 5B JUMPDEST 0026 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 003B 16 AND 003C 33 CALLER 003D 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0052 16 AND 0053 03 SUB 0054 61 PUSH2 0x028f 0057 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x028f, if (0xffffffffffffffffffffffffffffffffffffffff & msg.sender) - (0xffffffffffffffffffffffffffffffffffffffff & stack[-1]) label_0058: // Incoming jump from 0x0057, if not (0xffffffffffffffffffffffffffffffffffffffff & msg.sender) - (0xffffffffffffffffffffffffffffffffffffffff & stack[-1]) // Inputs[1] { @005D msg.data[0x00:0x20] } 0058 60 PUSH1 0x60 005A 60 PUSH1 0x00 005C 80 DUP1 005D 35 CALLDATALOAD 005E 7F PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000 007F 16 AND 0080 90 SWAP1 0081 50 POP 0082 63 PUSH4 0x3659cfe6 0087 60 PUSH1 0xe0 0089 1B SHL 008A 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00A7 19 NOT 00A8 16 AND 00A9 81 DUP2 00AA 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 00C7 19 NOT 00C8 16 AND 00C9 03 SUB 00CA 61 PUSH2 0x00dc 00CD 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0058 stack[0] = 0x60 // @0080 stack[1] = 0xffffffff00000000000000000000000000000000000000000000000000000000 & msg.data[0x00:0x20] // } // Block ends with conditional jump to 0x00dc, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & 0xffffffff00000000000000000000000000000000000000000000000000000000 & msg.data[0x00:0x20]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x3659cfe6 << 0xe0)) label_00CE: // Incoming jump from 0x00CD, if not (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & 0xffffffff00000000000000000000000000000000000000000000000000000000 & msg.data[0x00:0x20]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x3659cfe6 << 0xe0)) 00CE 61 PUSH2 0x00d5 00D1 61 PUSH2 0x034a 00D4 56 *JUMP // Stack delta = +1 // Outputs[1] { @00CE stack[0] = 0x00d5 } // Block ends with call to 0x034a, returns to 0x00D5 label_00D5: // Incoming return from call to 0x034A at 0x00D4 // Inputs[2] // { // @00D6 stack[-3] // @00D6 stack[-1] // } 00D5 5B JUMPDEST 00D6 91 SWAP2 00D7 50 POP 00D8 61 PUSH2 0x0287 00DB 56 *JUMP // Stack delta = -1 // Outputs[1] { @00D6 stack[-3] = stack[-1] } // Block ends with unconditional jump to 0x0287 label_00DC: // Incoming jump from 0x00CD, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & 0xffffffff00000000000000000000000000000000000000000000000000000000 & msg.data[0x00:0x20]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x3659cfe6 << 0xe0)) // Inputs[1] { @0104 stack[-1] } 00DC 5B JUMPDEST 00DD 63 PUSH4 0x4f1ef286 00E2 60 PUSH1 0xe0 00E4 1B SHL 00E5 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0102 19 NOT 0103 16 AND 0104 81 DUP2 0105 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0122 19 NOT 0123 16 AND 0124 03 SUB 0125 61 PUSH2 0x0137 0128 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0137, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x4f1ef286 << 0xe0)) label_0129: // Incoming jump from 0x0128, if not (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x4f1ef286 << 0xe0)) 0129 61 PUSH2 0x0130 012C 61 PUSH2 0x03a9 012F 56 *JUMP // Stack delta = +1 // Outputs[1] { @0129 stack[0] = 0x0130 } // Block ends with call to 0x03a9, returns to 0x0130 label_0130: // Incoming return from call to 0x03A9 at 0x012F // Inputs[2] // { // @0131 stack[-3] // @0131 stack[-1] // } 0130 5B JUMPDEST 0131 91 SWAP2 0132 50 POP 0133 61 PUSH2 0x0286 0136 56 *JUMP // Stack delta = -1 // Outputs[1] { @0131 stack[-3] = stack[-1] } // Block ends with unconditional jump to 0x0286 label_0137: // Incoming jump from 0x0128, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x4f1ef286 << 0xe0)) // Inputs[1] { @015F stack[-1] } 0137 5B JUMPDEST 0138 63 PUSH4 0x8f283970 013D 60 PUSH1 0xe0 013F 1B SHL 0140 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 015D 19 NOT 015E 16 AND 015F 81 DUP2 0160 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 017D 19 NOT 017E 16 AND 017F 03 SUB 0180 61 PUSH2 0x0192 0183 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0192, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x8f283970 << 0xe0)) label_0184: // Incoming jump from 0x0183, if not (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x8f283970 << 0xe0)) 0184 61 PUSH2 0x018b 0187 61 PUSH2 0x03f6 018A 56 *JUMP // Stack delta = +1 // Outputs[1] { @0184 stack[0] = 0x018b } // Block ends with call to 0x03f6, returns to 0x018B label_018B: // Incoming return from call to 0x03F6 at 0x018A // Inputs[2] // { // @018C stack[-3] // @018C stack[-1] // } 018B 5B JUMPDEST 018C 91 SWAP2 018D 50 POP 018E 61 PUSH2 0x0285 0191 56 *JUMP // Stack delta = -1 // Outputs[1] { @018C stack[-3] = stack[-1] } // Block ends with unconditional jump to 0x0285 label_0192: // Incoming jump from 0x0183, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x8f283970 << 0xe0)) // Inputs[1] { @01BA stack[-1] } 0192 5B JUMPDEST 0193 63 PUSH4 0xf851a440 0198 60 PUSH1 0xe0 019A 1B SHL 019B 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 01B8 19 NOT 01B9 16 AND 01BA 81 DUP2 01BB 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 01D8 19 NOT 01D9 16 AND 01DA 03 SUB 01DB 61 PUSH2 0x01ed 01DE 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x01ed, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0xf851a440 << 0xe0)) label_01DF: // Incoming jump from 0x01DE, if not (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0xf851a440 << 0xe0)) 01DF 61 PUSH2 0x01e6 01E2 61 PUSH2 0x0443 01E5 56 *JUMP // Stack delta = +1 // Outputs[1] { @01DF stack[0] = 0x01e6 } // Block ends with call to 0x0443, returns to 0x01E6 label_01E6: // Incoming return from call to 0x0443 at 0x01E5 // Inputs[2] // { // @01E7 stack[-1] // @01E7 stack[-3] // } 01E6 5B JUMPDEST 01E7 91 SWAP2 01E8 50 POP 01E9 61 PUSH2 0x0284 01EC 56 *JUMP // Stack delta = -1 // Outputs[1] { @01E7 stack[-3] = stack[-1] } // Block ends with unconditional jump to 0x0284 label_01ED: // Incoming jump from 0x01DE, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0xf851a440 << 0xe0)) // Inputs[1] { @0215 stack[-1] } 01ED 5B JUMPDEST 01EE 63 PUSH4 0x5c60da1b 01F3 60 PUSH1 0xe0 01F5 1B SHL 01F6 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0213 19 NOT 0214 16 AND 0215 81 DUP2 0216 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0233 19 NOT 0234 16 AND 0235 03 SUB 0236 61 PUSH2 0x0248 0239 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0248, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x5c60da1b << 0xe0)) label_023A: // Incoming jump from 0x0239, if not (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x5c60da1b << 0xe0)) 023A 61 PUSH2 0x0241 023D 61 PUSH2 0x047f 0240 56 *JUMP // Stack delta = +1 // Outputs[1] { @023A stack[0] = 0x0241 } // Block ends with call to 0x047f, returns to 0x0241 label_0241: // Incoming return from call to 0x047F at 0x0240 // Inputs[2] // { // @0242 stack[-3] // @0242 stack[-1] // } 0241 5B JUMPDEST 0242 91 SWAP2 0243 50 POP 0244 61 PUSH2 0x0283 0247 56 *JUMP // Stack delta = -1 // Outputs[1] { @0242 stack[-3] = stack[-1] } // Block ends with unconditional jump to 0x0283 label_0248: // Incoming jump from 0x0239, if (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & (0x5c60da1b << 0xe0)) // Inputs[1] { @024B memory[0x40:0x60] } 0248 5B JUMPDEST 0249 60 PUSH1 0x40 024B 51 MLOAD 024C 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 026D 81 DUP2 026E 52 MSTORE 026F 60 PUSH1 0x04 0271 01 ADD 0272 61 PUSH2 0x027a 0275 90 SWAP1 0276 61 PUSH2 0x09c6 0279 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @026E memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000 // @0275 stack[0] = 0x027a // @0275 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x09c6, returns to 0x027A label_027A: // Incoming return from call to 0x09C6 at 0x0279 // Inputs[3] // { // @027D memory[0x40:0x60] // @027F stack[-1] // @0282 memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 027A 5B JUMPDEST 027B 60 PUSH1 0x40 027D 51 MLOAD 027E 80 DUP1 027F 91 SWAP2 0280 03 SUB 0281 90 SWAP1 0282 FD *REVERT // Stack delta = -1 // Outputs[1] { @0282 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]); } // Block terminates label_0283: // Incoming jump from 0x0247 // Inputs[3] // { // @0288 stack[-2] // @0289 memory[stack[-2]:stack[-2] + 0x20] // @028E memory[stack[-2] + 0x20:stack[-2] + 0x20 + memory[stack[-2]:stack[-2] + 0x20]] // } 0283 5B JUMPDEST 0284 5B JUMPDEST 0285 5B JUMPDEST 0286 5B JUMPDEST 0287 5B JUMPDEST 0288 81 DUP2 0289 51 MLOAD 028A 60 PUSH1 0x20 028C 83 DUP4 028D 01 ADD 028E F3 *RETURN // Stack delta = +0 // Outputs[1] { @028E return memory[stack[-2] + 0x20:stack[-2] + 0x20 + memory[stack[-2]:stack[-2] + 0x20]]; } // Block terminates label_028F: // Incoming jump from 0x0057, if (0xffffffffffffffffffffffffffffffffffffffff & msg.sender) - (0xffffffffffffffffffffffffffffffffffffffff & stack[-1]) 028F 5B JUMPDEST 0290 61 PUSH2 0x0297 0293 61 PUSH2 0x04bb 0296 56 *JUMP // Stack delta = +1 // Outputs[1] { @0290 stack[0] = 0x0297 } // Block ends with unconditional jump to 0x04bb 0297 5B JUMPDEST 0298 56 *JUMP label_0299: // Incoming call from 0x058E, returns to 0x058F // Inputs[3] // { // @029F stack[-2] // @02A0 stack[-1] // @02A3 memory[0x40:0x60] // } 0299 5B JUMPDEST 029A 60 PUSH1 0x60 029C 61 PUSH2 0x02be 029F 83 DUP4 02A0 83 DUP4 02A1 60 PUSH1 0x40 02A3 51 MLOAD 02A4 80 DUP1 02A5 60 PUSH1 0x60 02A7 01 ADD 02A8 60 PUSH1 0x40 02AA 52 MSTORE 02AB 80 DUP1 02AC 60 PUSH1 0x27 02AE 81 DUP2 02AF 52 MSTORE 02B0 60 PUSH1 0x20 02B2 01 ADD 02B3 61 PUSH2 0x0f50 02B6 60 PUSH1 0x27 02B8 91 SWAP2 02B9 39 CODECOPY 02BA 61 PUSH2 0x04d5 02BD 56 *JUMP // Stack delta = +5 // Outputs[8] // { // @029A stack[0] = 0x60 // @029C stack[1] = 0x02be // @029F stack[2] = stack[-2] // @02A0 stack[3] = stack[-1] // @02A3 stack[4] = memory[0x40:0x60] // @02AA memory[0x40:0x60] = 0x60 + memory[0x40:0x60] // @02AF memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x27 // @02B9 memory[0x20 + memory[0x40:0x60]:0x20 + memory[0x40:0x60] + 0x27] = code[0x0f50:0x0f77] // } // Block ends with call to 0x04d5, returns to 0x02BE label_02BE: // Incoming return from call to 0x04D5 at 0x02BD // Inputs[4] // { // @02BF stack[-1] // @02BF stack[-2] // @02C1 stack[-5] // @02C2 stack[-4] // } 02BE 5B JUMPDEST 02BF 90 SWAP1 02C0 50 POP 02C1 92 SWAP3 02C2 91 SWAP2 02C3 50 POP 02C4 50 POP 02C5 56 *JUMP // Stack delta = -4 // Outputs[1] { @02C1 stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] label_02C6: // Incoming call from 0x07EA, returns to 0x07EB // Incoming call from 0x0320, returns to 0x0321 // Incoming call from 0x0778, returns to 0x0779 // Incoming call from 0x08D8, returns to 0x08D9 // Inputs[2] // { // @02C9 stack[-1] // @02CC stack[-2] // } 02C6 5B JUMPDEST 02C7 60 PUSH1 0x00 02C9 81 DUP2 02CA 90 SWAP1 02CB 50 POP 02CC 91 SWAP2 02CD 90 SWAP1 02CE 50 POP 02CF 56 *JUMP // Stack delta = -1 // Outputs[1] { @02CC stack[-2] = stack[-1] } // Block ends with unconditional jump to stack[-2] label_02D0: // Incoming call from 0x086C, returns to 0x086D // Incoming call from 0x0632, returns to 0x0633 // Inputs[3] // { // @02D4 stack[-1] // @02EB address(0xffffffffffffffffffffffffffffffffffffffff & stack[-1]).code.length // @02EF stack[-2] // } 02D0 5B JUMPDEST 02D1 60 PUSH1 0x00 02D3 80 DUP1 02D4 82 DUP3 02D5 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 02EA 16 AND 02EB 3B EXTCODESIZE 02EC 11 GT 02ED 90 SWAP1 02EE 50 POP 02EF 91 SWAP2 02F0 90 SWAP1 02F1 50 POP 02F2 56 *JUMP // Stack delta = -1 // Outputs[1] { @02EF stack[-2] = address(0xffffffffffffffffffffffffffffffffffffffff & stack[-1]).code.length > 0x00 } // Block ends with unconditional jump to stack[-2] label_02F3: // Incoming call from 0x0024, returns to 0x0025 // Incoming call from 0x0456, returns to 0x0457 // Incoming call from 0x05BE, returns to 0x05BF 02F3 5B JUMPDEST 02F4 60 PUSH1 0x00 02F6 61 PUSH2 0x0321 02F9 7F PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 031A 60 PUSH1 0x00 031C 1B SHL 031D 61 PUSH2 0x02c6 0320 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @02F4 stack[0] = 0x00 // @02F6 stack[1] = 0x0321 // @031C stack[2] = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 << 0x00 // } // Block ends with call to 0x02c6, returns to 0x0321 label_0321: // Incoming return from call to 0x02C6 at 0x0320 // Inputs[4] // { // @0324 stack[-1] // @0328 storage[0x00 + stack[-1]] // @0346 stack[-2] // @0348 stack[-3] // } 0321 5B JUMPDEST 0322 60 PUSH1 0x00 0324 01 ADD 0325 60 PUSH1 0x00 0327 90 SWAP1 0328 54 SLOAD 0329 90 SWAP1 032A 61 PUSH2 0x0100 032D 0A EXP 032E 90 SWAP1 032F 04 DIV 0330 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0345 16 AND 0346 90 SWAP1 0347 50 POP 0348 90 SWAP1 0349 56 *JUMP // Stack delta = -2 // Outputs[1] { @0348 stack[-3] = 0xffffffffffffffffffffffffffffffffffffffff & storage[0x00 + stack[-1]] / 0x0100 ** 0x00 } // Block ends with unconditional jump to stack[-3] label_034A: // Incoming call from 0x00D4, returns to 0x00D5 034A 5B JUMPDEST 034B 60 PUSH1 0x60 034D 61 PUSH2 0x0354 0350 61 PUSH2 0x055b 0353 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @034B stack[0] = 0x60 // @034D stack[1] = 0x0354 // } // Block ends with call to 0x055b, returns to 0x0354 label_0354: // Incoming return from call to 0x055B at 0x0353 // Inputs[1] { @0358 msg.data.length } 0354 5B JUMPDEST 0355 60 PUSH1 0x00 0357 80 DUP1 0358 36 CALLDATASIZE 0359 60 PUSH1 0x04 035B 90 SWAP1 035C 80 DUP1 035D 92 SWAP3 035E 61 PUSH2 0x0369 0361 93 SWAP4 0362 92 SWAP3 0363 91 SWAP2 0364 90 SWAP1 0365 61 PUSH2 0x09fa 0368 56 *JUMP // Stack delta = +6 // Outputs[6] // { // @0355 stack[0] = 0x00 // @0361 stack[1] = 0x0369 // @0362 stack[2] = msg.data.length // @0363 stack[3] = 0x04 // @0364 stack[4] = msg.data.length // @0364 stack[5] = 0x00 // } // Block ends with call to 0x09fa, returns to 0x0369 label_0369: // Incoming return from call to 0x09FA at 0x0368 // Inputs[2] // { // @036A stack[-2] // @036B stack[-1] // } 0369 5B JUMPDEST 036A 81 DUP2 036B 01 ADD 036C 90 SWAP1 036D 61 PUSH2 0x0376 0370 91 SWAP2 0371 90 SWAP1 0372 61 PUSH2 0x0a9d 0375 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @0370 stack[-2] = 0x0376 // @0371 stack[-1] = stack[-2] + stack[-1] // @0371 stack[0] = stack[-2] // } // Block ends with call to 0x0a9d, returns to 0x0376 label_0376: // Incoming return from call to 0x0A9D at 0x0375 // Inputs[3] // { // @0377 stack[-1] // @0377 stack[-2] // @037F memory[0x40:0x60] // } 0376 5B JUMPDEST 0377 90 SWAP1 0378 50 POP 0379 61 PUSH2 0x0393 037C 81 DUP2 037D 60 PUSH1 0x40 037F 51 MLOAD 0380 80 DUP1 0381 60 PUSH1 0x20 0383 01 ADD 0384 60 PUSH1 0x40 0386 52 MSTORE 0387 80 DUP1 0388 60 PUSH1 0x00 038A 81 DUP2 038B 52 MSTORE 038C 50 POP 038D 60 PUSH1 0x00 038F 61 PUSH2 0x056a 0392 56 *JUMP // Stack delta = +3 // Outputs[7] // { // @0377 stack[-2] = stack[-1] // @0379 stack[-1] = 0x0393 // @037C stack[0] = stack[-1] // @037F stack[1] = memory[0x40:0x60] // @0386 memory[0x40:0x60] = 0x20 + memory[0x40:0x60] // @038B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x00 // @038D stack[2] = 0x00 // } // Block ends with call to 0x056a, returns to 0x0393 label_0393: // Incoming return from call to 0x056A at 0x0392 // Inputs[3] // { // @0396 memory[0x40:0x60] // @03A4 stack[-2] // @03A7 stack[-3] // } 0393 5B JUMPDEST 0394 60 PUSH1 0x40 0396 51 MLOAD 0397 80 DUP1 0398 60 PUSH1 0x20 039A 01 ADD 039B 60 PUSH1 0x40 039D 52 MSTORE 039E 80 DUP1 039F 60 PUSH1 0x00 03A1 81 DUP2 03A2 52 MSTORE 03A3 50 POP 03A4 91 SWAP2 03A5 50 POP 03A6 50 POP 03A7 90 SWAP1 03A8 56 *JUMP // Stack delta = -2 // Outputs[3] // { // @039D memory[0x40:0x60] = 0x20 + memory[0x40:0x60] // @03A2 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x00 // @03A7 stack[-3] = memory[0x40:0x60] // } // Block ends with unconditional jump to stack[-3] label_03A9: // Incoming call from 0x012F, returns to 0x0130 // Inputs[1] { @03B1 msg.data.length } 03A9 5B JUMPDEST 03AA 60 PUSH1 0x60 03AC 60 PUSH1 0x00 03AE 80 DUP1 03AF 60 PUSH1 0x00 03B1 36 CALLDATASIZE 03B2 60 PUSH1 0x04 03B4 90 SWAP1 03B5 80 DUP1 03B6 92 SWAP3 03B7 61 PUSH2 0x03c2 03BA 93 SWAP4 03BB 92 SWAP3 03BC 91 SWAP2 03BD 90 SWAP1 03BE 61 PUSH2 0x09fa 03C1 56 *JUMP // Stack delta = +8 // Outputs[8] // { // @03AA stack[0] = 0x60 // @03AC stack[1] = 0x00 // @03AE stack[2] = 0x00 // @03BA stack[3] = 0x03c2 // @03BB stack[4] = msg.data.length // @03BC stack[5] = 0x04 // @03BD stack[6] = msg.data.length // @03BD stack[7] = 0x00 // } // Block ends with call to 0x09fa, returns to 0x03C2 label_03C2: // Incoming return from call to 0x09FA at 0x03C1 // Inputs[2] // { // @03C3 stack[-2] // @03C4 stack[-1] // } 03C2 5B JUMPDEST 03C3 81 DUP2 03C4 01 ADD 03C5 90 SWAP1 03C6 61 PUSH2 0x03cf 03C9 91 SWAP2 03CA 90 SWAP1 03CB 61 PUSH2 0x0c10 03CE 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @03C9 stack[-2] = 0x03cf // @03CA stack[-1] = stack[-2] + stack[-1] // @03CA stack[0] = stack[-2] // } // Block ends with call to 0x0c10, returns to 0x03CF label_03CF: // Incoming return from call to 0x0C10 at 0x03CE // Inputs[4] // { // @03D0 stack[-1] // @03D0 stack[-3] // @03D2 stack[-2] // @03D2 stack[-4] // } 03CF 5B JUMPDEST 03D0 91 SWAP2 03D1 50 POP 03D2 91 SWAP2 03D3 50 POP 03D4 61 PUSH2 0x03df 03D7 82 DUP3 03D8 82 DUP3 03D9 60 PUSH1 0x01 03DB 61 PUSH2 0x056a 03DE 56 *JUMP // Stack delta = +2 // Outputs[6] // { // @03D0 stack[-3] = stack[-1] // @03D2 stack[-4] = stack[-2] // @03D4 stack[-2] = 0x03df // @03D7 stack[-1] = stack[-2] // @03D8 stack[0] = stack[-1] // @03D9 stack[1] = 0x01 // } // Block ends with call to 0x056a, returns to 0x03DF label_03DF: // Incoming return from call to 0x056A at 0x03DE // Inputs[3] // { // @03E2 memory[0x40:0x60] // @03F0 stack[-3] // @03F4 stack[-4] // } 03DF 5B JUMPDEST 03E0 60 PUSH1 0x40 03E2 51 MLOAD 03E3 80 DUP1 03E4 60 PUSH1 0x20 03E6 01 ADD 03E7 60 PUSH1 0x40 03E9 52 MSTORE 03EA 80 DUP1 03EB 60 PUSH1 0x00 03ED 81 DUP2 03EE 52 MSTORE 03EF 50 POP 03F0 92 SWAP3 03F1 50 POP 03F2 50 POP 03F3 50 POP 03F4 90 SWAP1 03F5 56 *JUMP // Stack delta = -3 // Outputs[3] // { // @03E9 memory[0x40:0x60] = 0x20 + memory[0x40:0x60] // @03EE memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x00 // @03F4 stack[-4] = memory[0x40:0x60] // } // Block ends with unconditional jump to stack[-4] label_03F6: // Incoming call from 0x018A, returns to 0x018B 03F6 5B JUMPDEST 03F7 60 PUSH1 0x60 03F9 61 PUSH2 0x0400 03FC 61 PUSH2 0x055b 03FF 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @03F7 stack[0] = 0x60 // @03F9 stack[1] = 0x0400 // } // Block ends with call to 0x055b, returns to 0x0400 label_0400: // Incoming return from call to 0x055B at 0x03FF // Inputs[1] { @0404 msg.data.length } 0400 5B JUMPDEST 0401 60 PUSH1 0x00 0403 80 DUP1 0404 36 CALLDATASIZE 0405 60 PUSH1 0x04 0407 90 SWAP1 0408 80 DUP1 0409 92 SWAP3 040A 61 PUSH2 0x0415 040D 93 SWAP4 040E 92 SWAP3 040F 91 SWAP2 0410 90 SWAP1 0411 61 PUSH2 0x09fa 0414 56 *JUMP // Stack delta = +6 // Outputs[6] // { // @0401 stack[0] = 0x00 // @040D stack[1] = 0x0415 // @040E stack[2] = msg.data.length // @040F stack[3] = 0x04 // @0410 stack[4] = msg.data.length // @0410 stack[5] = 0x00 // } // Block ends with call to 0x09fa, returns to 0x0415 label_0415: // Incoming return from call to 0x09FA at 0x0414 // Inputs[2] // { // @0416 stack[-2] // @0417 stack[-1] // } 0415 5B JUMPDEST 0416 81 DUP2 0417 01 ADD 0418 90 SWAP1 0419 61 PUSH2 0x0422 041C 91 SWAP2 041D 90 SWAP1 041E 61 PUSH2 0x0a9d 0421 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @041C stack[-2] = 0x0422 // @041D stack[-1] = stack[-2] + stack[-1] // @041D stack[0] = stack[-2] // } // Block ends with call to 0x0a9d, returns to 0x0422 label_0422: // Incoming return from call to 0x0A9D at 0x0421 // Inputs[2] // { // @0423 stack[-1] // @0423 stack[-2] // } 0422 5B JUMPDEST 0423 90 SWAP1 0424 50 POP 0425 61 PUSH2 0x042d 0428 81 DUP2 0429 61 PUSH2 0x0596 042C 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @0423 stack[-2] = stack[-1] // @0425 stack[-1] = 0x042d // @0428 stack[0] = stack[-1] // } // Block ends with call to 0x0596, returns to 0x042D label_042D: // Incoming return from call to 0x0596 at 0x042C // Inputs[3] // { // @0430 memory[0x40:0x60] // @043E stack[-2] // @0441 stack[-3] // } 042D 5B JUMPDEST 042E 60 PUSH1 0x40 0430 51 MLOAD 0431 80 DUP1 0432 60 PUSH1 0x20 0434 01 ADD 0435 60 PUSH1 0x40 0437 52 MSTORE 0438 80 DUP1 0439 60 PUSH1 0x00 043B 81 DUP2 043C 52 MSTORE 043D 50 POP 043E 91 SWAP2 043F 50 POP 0440 50 POP 0441 90 SWAP1 0442 56 *JUMP // Stack delta = -2 // Outputs[3] // { // @0437 memory[0x40:0x60] = 0x20 + memory[0x40:0x60] // @043C memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x00 // @0441 stack[-3] = memory[0x40:0x60] // } // Block ends with unconditional jump to stack[-3] label_0443: // Incoming call from 0x01E5, returns to 0x01E6 0443 5B JUMPDEST 0444 60 PUSH1 0x60 0446 61 PUSH2 0x044d 0449 61 PUSH2 0x055b 044C 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0444 stack[0] = 0x60 // @0446 stack[1] = 0x044d // } // Block ends with call to 0x055b, returns to 0x044D label_044D: // Incoming return from call to 0x055B at 0x044C 044D 5B JUMPDEST 044E 60 PUSH1 0x00 0450 61 PUSH2 0x0457 0453 61 PUSH2 0x02f3 0456 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @044E stack[0] = 0x00 // @0450 stack[1] = 0x0457 // } // Block ends with call to 0x02f3, returns to 0x0457 label_0457: // Incoming return from call to 0x02F3 at 0x0456 // Inputs[3] // { // @0458 stack[-2] // @0458 stack[-1] // @045D memory[0x40:0x60] // } 0457 5B JUMPDEST 0458 90 SWAP1 0459 50 POP 045A 80 DUP1 045B 60 PUSH1 0x40 045D 51 MLOAD 045E 60 PUSH1 0x20 0460 01 ADD 0461 61 PUSH2 0x046a 0464 91 SWAP2 0465 90 SWAP1 0466 61 PUSH2 0x0c8d 0469 56 *JUMP // Stack delta = +2 // Outputs[4] // { // @0458 stack[-2] = stack[-1] // @0464 stack[-1] = 0x046a // @0465 stack[1] = 0x20 + memory[0x40:0x60] // @0465 stack[0] = stack[-1] // } // Block ends with call to 0x0c8d, returns to 0x046A label_046A: // Incoming return from call to 0x0C8D at 0x0469 // Inputs[4] // { // @046D memory[0x40:0x60] // @0471 stack[-1] // @047A stack[-3] // @047D stack[-4] // } 046A 5B JUMPDEST 046B 60 PUSH1 0x40 046D 51 MLOAD 046E 60 PUSH1 0x20 0470 81 DUP2 0471 83 DUP4 0472 03 SUB 0473 03 SUB 0474 81 DUP2 0475 52 MSTORE 0476 90 SWAP1 0477 60 PUSH1 0x40 0479 52 MSTORE 047A 91 SWAP2 047B 50 POP 047C 50 POP 047D 90 SWAP1 047E 56 *JUMP // Stack delta = -3 // Outputs[3] // { // @0475 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] - memory[0x40:0x60] - 0x20 // @0479 memory[0x40:0x60] = stack[-1] // @047D stack[-4] = memory[0x40:0x60] // } // Block ends with unconditional jump to stack[-4] label_047F: // Incoming call from 0x0240, returns to 0x0241 047F 5B JUMPDEST 0480 60 PUSH1 0x60 0482 61 PUSH2 0x0489 0485 61 PUSH2 0x055b 0488 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0480 stack[0] = 0x60 // @0482 stack[1] = 0x0489 // } // Block ends with call to 0x055b, returns to 0x0489 label_0489: // Incoming return from call to 0x055B at 0x0488 0489 5B JUMPDEST 048A 60 PUSH1 0x00 048C 61 PUSH2 0x0493 048F 61 PUSH2 0x05e2 0492 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @048A stack[0] = 0x00 // @048C stack[1] = 0x0493 // } // Block ends with call to 0x05e2, returns to 0x0493 label_0493: // Incoming return from call to 0x05E2 at 0x0492 // Inputs[3] // { // @0494 stack[-2] // @0494 stack[-1] // @0499 memory[0x40:0x60] // } 0493 5B JUMPDEST 0494 90 SWAP1 0495 50 POP 0496 80 DUP1 0497 60 PUSH1 0x40 0499 51 MLOAD 049A 60 PUSH1 0x20 049C 01 ADD 049D 61 PUSH2 0x04a6 04A0 91 SWAP2 04A1 90 SWAP1 04A2 61 PUSH2 0x0c8d 04A5 56 *JUMP // Stack delta = +2 // Outputs[4] // { // @0494 stack[-2] = stack[-1] // @04A0 stack[-1] = 0x04a6 // @04A1 stack[1] = 0x20 + memory[0x40:0x60] // @04A1 stack[0] = stack[-1] // } // Block ends with call to 0x0c8d, returns to 0x04A6 label_04A6: // Incoming return from call to 0x0C8D at 0x04A5 // Inputs[4] // { // @04A9 memory[0x40:0x60] // @04AD stack[-1] // @04B6 stack[-3] // @04B9 stack[-4] // } 04A6 5B JUMPDEST 04A7 60 PUSH1 0x40 04A9 51 MLOAD 04AA 60 PUSH1 0x20 04AC 81 DUP2 04AD 83 DUP4 04AE 03 SUB 04AF 03 SUB 04B0 81 DUP2 04B1 52 MSTORE 04B2 90 SWAP1 04B3 60 PUSH1 0x40 04B5 52 MSTORE 04B6 91 SWAP2 04B7 50 POP 04B8 50 POP 04B9 90 SWAP1 04BA 56 *JUMP // Stack delta = -3 // Outputs[3] // { // @04B1 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = stack[-1] - memory[0x40:0x60] - 0x20 // @04B5 memory[0x40:0x60] = stack[-1] // @04B9 stack[-4] = memory[0x40:0x60] // } // Block ends with unconditional jump to stack[-4] label_04BB: // Incoming jump from 0x0296 04BB 5B JUMPDEST 04BC 61 PUSH2 0x04c3 04BF 61 PUSH2 0x05f1 04C2 56 *JUMP // Stack delta = +1 // Outputs[1] { @04BC stack[0] = 0x04c3 } // Block ends with call to 0x05f1, returns to 0x04C3 label_04C3: // Incoming return from call to 0x05F1 at 0x04C2 04C3 5B JUMPDEST 04C4 61 PUSH2 0x04d3 04C7 61 PUSH2 0x04ce 04CA 61 PUSH2 0x05e2 04CD 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @04C4 stack[0] = 0x04d3 // @04C7 stack[1] = 0x04ce // } // Block ends with call to 0x05e2, returns to 0x04CE label_04CE: // Incoming return from call to 0x05E2 at 0x04CD 04CE 5B JUMPDEST 04CF 61 PUSH2 0x05f3 04D2 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x05f3 04D3 5B JUMPDEST 04D4 56 *JUMP label_04D5: // Incoming call from 0x02BD, returns to 0x02BE // Inputs[3] // { // @04DB stack[-3] // @04F2 stack[-2] // @04F5 memory[0x40:0x60] // } 04D5 5B JUMPDEST 04D6 60 PUSH1 0x60 04D8 60 PUSH1 0x00 04DA 80 DUP1 04DB 85 DUP6 04DC 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 04F1 16 AND 04F2 85 DUP6 04F3 60 PUSH1 0x40 04F5 51 MLOAD 04F6 61 PUSH2 0x04ff 04F9 91 SWAP2 04FA 90 SWAP1 04FB 61 PUSH2 0x0d19 04FE 56 *JUMP // Stack delta = +7 // Outputs[7] // { // @04D6 stack[0] = 0x60 // @04D8 stack[1] = 0x00 // @04DA stack[2] = 0x00 // @04F1 stack[3] = 0xffffffffffffffffffffffffffffffffffffffff & stack[-3] // @04F9 stack[4] = 0x04ff // @04FA stack[5] = stack[-2] // @04FA stack[6] = memory[0x40:0x60] // } // Block ends with call to 0x0d19, returns to 0x04FF label_04FF: // Incoming return from call to 0x0D19 at 0x04FE // Inputs[7] // { // @0504 memory[0x40:0x60] // @0506 stack[-1] // @0509 stack[-2] // @050A msg.gas // @050B memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // @050B address(stack[-2]).delegatecall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]) // @050F returndata.length // } 04FF 5B JUMPDEST 0500 60 PUSH1 0x00 0502 60 PUSH1 0x40 0504 51 MLOAD 0505 80 DUP1 0506 83 DUP4 0507 03 SUB 0508 81 DUP2 0509 85 DUP6 050A 5A GAS 050B F4 DELEGATECALL 050C 91 SWAP2 050D 50 POP 050E 50 POP 050F 3D RETURNDATASIZE 0510 80 DUP1 0511 60 PUSH1 0x00 0513 81 DUP2 0514 14 EQ 0515 61 PUSH2 0x053a 0518 57 *JUMPI // Stack delta = +1 // Outputs[4] // { // @050B memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00] = address(stack[-2]).delegatecall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]) // @050C stack[-2] = address(stack[-2]).delegatecall.gas(msg.gas)(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]) // @050F stack[-1] = returndata.length // @0510 stack[0] = returndata.length // } // Block ends with conditional jump to 0x053a, if returndata.length == 0x00 label_0519: // Incoming jump from 0x0518, if not returndata.length == 0x00 // Inputs[6] // { // @051B memory[0x40:0x60] // @051C stack[-2] // @0523 returndata.length // @052B returndata.length // @052E returndata.length // @0535 returndata[0x00:0x00 + returndata.length] // } 0519 60 PUSH1 0x40 051B 51 MLOAD 051C 91 SWAP2 051D 50 POP 051E 60 PUSH1 0x1f 0520 19 NOT 0521 60 PUSH1 0x3f 0523 3D RETURNDATASIZE 0524 01 ADD 0525 16 AND 0526 82 DUP3 0527 01 ADD 0528 60 PUSH1 0x40 052A 52 MSTORE 052B 3D RETURNDATASIZE 052C 82 DUP3 052D 52 MSTORE 052E 3D RETURNDATASIZE 052F 60 PUSH1 0x00 0531 60 PUSH1 0x20 0533 84 DUP5 0534 01 ADD 0535 3E RETURNDATACOPY 0536 61 PUSH2 0x053f 0539 56 *JUMP // Stack delta = +0 // Outputs[4] // { // @051C stack[-2] = memory[0x40:0x60] // @052A memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x3f & ~0x1f) // @052D memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = returndata.length // @0535 memory[memory[0x40:0x60] + 0x20:memory[0x40:0x60] + 0x20 + returndata.length] = returndata[0x00:0x00 + returndata.length] // } // Block ends with unconditional jump to 0x053f label_053A: // Incoming jump from 0x0518, if returndata.length == 0x00 // Inputs[6] // { // @053D stack[-2] // @0541 stack[-4] // @0543 stack[-5] // @0543 stack[-3] // @0548 stack[-9] // @054B stack[-7] // } 053A 5B JUMPDEST 053B 60 PUSH1 0x60 053D 91 SWAP2 053E 50 POP 053F 5B JUMPDEST 0540 50 POP 0541 91 SWAP2 0542 50 POP 0543 91 SWAP2 0544 50 POP 0545 61 PUSH2 0x0550 0548 86 DUP7 0549 83 DUP4 054A 83 DUP4 054B 87 DUP8 054C 61 PUSH2 0x0619 054F 56 *JUMP // Stack delta = +2 // Outputs[7] // { // @0541 stack[-4] = 0x60 // @0543 stack[-5] = stack[-3] // @0545 stack[-3] = 0x0550 // @0548 stack[-2] = stack[-9] // @0549 stack[-1] = stack[-3] // @054A stack[0] = 0x60 // @054B stack[1] = stack[-7] // } // Block ends with call to 0x0619, returns to 0x0550 label_0550: // Incoming return from call to 0x0619 at 0x054F // Incoming return from call to 0x0619 at 0x054F // Inputs[4] // { // @0551 stack[-4] // @0551 stack[-1] // @0555 stack[-8] // @0556 stack[-7] // } 0550 5B JUMPDEST 0551 92 SWAP3 0552 50 POP 0553 50 POP 0554 50 POP 0555 93 SWAP4 0556 92 SWAP3 0557 50 POP 0558 50 POP 0559 50 POP 055A 56 *JUMP // Stack delta = -7 // Outputs[1] { @0555 stack[-8] = stack[-1] } // Block ends with unconditional jump to stack[-8] label_055B: // Incoming call from 0x0353, returns to 0x0354 // Incoming call from 0x0488, returns to 0x0489 // Incoming call from 0x044C, returns to 0x044D // Incoming call from 0x03FF, returns to 0x0400 // Inputs[1] { @055E msg.value } 055B 5B JUMPDEST 055C 60 PUSH1 0x00 055E 34 CALLVALUE 055F 14 EQ 0560 61 PUSH2 0x0568 0563 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0568, if msg.value == 0x00 label_0564: // Incoming jump from 0x0563, if not msg.value == 0x00 // Inputs[1] { @0567 memory[0x00:0x00] } 0564 60 PUSH1 0x00 0566 80 DUP1 0567 FD *REVERT // Stack delta = +0 // Outputs[1] { @0567 revert(memory[0x00:0x00]); } // Block terminates label_0568: // Incoming jump from 0x0563, if msg.value == 0x00 // Inputs[1] { @0569 stack[-1] } 0568 5B JUMPDEST 0569 56 *JUMP // Stack delta = -1 // Block ends with unconditional jump to stack[-1] label_056A: // Incoming call from 0x03DE, returns to 0x03DF // Incoming call from 0x0392, returns to 0x0393 // Inputs[1] { @056E stack[-3] } 056A 5B JUMPDEST 056B 61 PUSH2 0x0573 056E 83 DUP4 056F 61 PUSH2 0x068e 0572 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @056B stack[0] = 0x0573 // @056E stack[1] = stack[-3] // } // Block ends with call to 0x068e, returns to 0x0573 label_0573: // Incoming return from call to 0x068E at 0x0572 // Inputs[2] // { // @0576 stack[-2] // @0577 memory[stack[-2]:stack[-2] + 0x20] // } 0573 5B JUMPDEST 0574 60 PUSH1 0x00 0576 82 DUP3 0577 51 MLOAD 0578 11 GT 0579 80 DUP1 057A 61 PUSH2 0x0580 057D 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0578 stack[0] = memory[stack[-2]:stack[-2] + 0x20] > 0x00 } // Block ends with conditional jump to 0x0580, if memory[stack[-2]:stack[-2] + 0x20] > 0x00 label_057E: // Incoming jump from 0x057D, if not memory[stack[-2]:stack[-2] + 0x20] > 0x00 // Inputs[1] { @057F stack[-2] } 057E 50 POP 057F 80 DUP1 0580 5B JUMPDEST 0581 15 ISZERO 0582 61 PUSH2 0x0591 0585 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x0591, if !stack[-2] label_0586: // Incoming jump from 0x0585, if not !stack[-2] // Incoming jump from 0x0585, if not !stack[-1] // Inputs[2] // { // @0589 stack[-3] // @058A stack[-2] // } 0586 61 PUSH2 0x058f 0589 83 DUP4 058A 83 DUP4 058B 61 PUSH2 0x0299 058E 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0586 stack[0] = 0x058f // @0589 stack[1] = stack[-3] // @058A stack[2] = stack[-2] // } // Block ends with call to 0x0299, returns to 0x058F label_058F: // Incoming return from call to 0x0299 at 0x058E 058F 5B JUMPDEST 0590 50 POP // Stack delta = -1 // Block continues label_0591: // Incoming jump from 0x0585, if !stack[-1] // Incoming jump from 0x0590 // Incoming jump from 0x0585, if !stack[-2] // Inputs[1] { @0595 stack[-4] } 0591 5B JUMPDEST 0592 50 POP 0593 50 POP 0594 50 POP 0595 56 *JUMP // Stack delta = -4 // Block ends with unconditional jump to stack[-4] label_0596: // Incoming call from 0x042C, returns to 0x042D 0596 5B JUMPDEST 0597 7F PUSH32 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f 05B8 61 PUSH2 0x05bf 05BB 61 PUSH2 0x02f3 05BE 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0597 stack[0] = 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f // @05B8 stack[1] = 0x05bf // } // Block ends with call to 0x02f3, returns to 0x05BF label_05BF: // Incoming return from call to 0x02F3 at 0x05BE // Inputs[3] // { // @05C0 stack[-3] // @05C3 memory[0x40:0x60] // @05C7 stack[-1] // } 05BF 5B JUMPDEST 05C0 82 DUP3 05C1 60 PUSH1 0x40 05C3 51 MLOAD 05C4 61 PUSH2 0x05ce 05C7 92 SWAP3 05C8 91 SWAP2 05C9 90 SWAP1 05CA 61 PUSH2 0x0d30 05CD 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @05C7 stack[-1] = 0x05ce // @05C8 stack[0] = stack[-1] // @05C9 stack[2] = memory[0x40:0x60] // @05C9 stack[1] = stack[-3] // } // Block ends with call to 0x0d30, returns to 0x05CE label_05CE: // Incoming return from call to 0x0D30 at 0x05CD // Inputs[5] // { // @05D1 memory[0x40:0x60] // @05D3 stack[-1] // @05D6 memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // @05D6 stack[-2] // @05DA stack[-3] // } 05CE 5B JUMPDEST 05CF 60 PUSH1 0x40 05D1 51 MLOAD 05D2 80 DUP1 05D3 91 SWAP2 05D4 03 SUB 05D5 90 SWAP1 05D6 A1 LOG1 05D7 61 PUSH2 0x05df 05DA 81 DUP2 05DB 61 PUSH2 0x06dd 05DE 56 *JUMP // Stack delta = +0 // Outputs[3] // { // @05D6 log(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]], [stack[-2]]); // @05D7 stack[-2] = 0x05df // @05DA stack[-1] = stack[-3] // } // Block ends with call to 0x06dd, returns to 0x05DF label_05DF: // Incoming return from call to 0x06DD at 0x05DE // Inputs[1] { @05E1 stack[-2] } 05DF 5B JUMPDEST 05E0 50 POP 05E1 56 *JUMP // Stack delta = -2 // Block ends with unconditional jump to stack[-2] label_05E2: // Incoming call from 0x0492, returns to 0x0493 // Incoming call from 0x04CD, returns to 0x04CE 05E2 5B JUMPDEST 05E3 60 PUSH1 0x00 05E5 61 PUSH2 0x05ec 05E8 61 PUSH2 0x07bd 05EB 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @05E3 stack[0] = 0x00 // @05E5 stack[1] = 0x05ec // } // Block ends with call to 0x07bd, returns to 0x05EC label_05EC: // Incoming return from call to 0x07BD at 0x05EB // Inputs[3] // { // @05ED stack[-1] // @05ED stack[-2] // @05EF stack[-3] // } 05EC 5B JUMPDEST 05ED 90 SWAP1 05EE 50 POP 05EF 90 SWAP1 05F0 56 *JUMP // Stack delta = -2 // Outputs[1] { @05EF stack[-3] = stack[-1] } // Block ends with unconditional jump to stack[-3] label_05F1: // Incoming call from 0x04C2, returns to 0x04C3 // Inputs[1] { @05F2 stack[-1] } 05F1 5B JUMPDEST 05F2 56 *JUMP // Stack delta = -1 // Block ends with unconditional jump to stack[-1] label_05F3: // Incoming jump from 0x04D2 // Inputs[9] // { // @05F4 msg.data.length // @05F8 msg.data[0x00:0x00 + msg.data.length] // @05FC msg.data.length // @05FF stack[-1] // @0600 msg.gas // @0601 memory[0x00:0x00 + msg.data.length] // @0601 address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @0602 returndata.length // @0606 returndata[0x00:0x00 + returndata.length] // } 05F3 5B JUMPDEST 05F4 36 CALLDATASIZE 05F5 60 PUSH1 0x00 05F7 80 DUP1 05F8 37 CALLDATACOPY 05F9 60 PUSH1 0x00 05FB 80 DUP1 05FC 36 CALLDATASIZE 05FD 60 PUSH1 0x00 05FF 84 DUP5 0600 5A GAS 0601 F4 DELEGATECALL 0602 3D RETURNDATASIZE 0603 60 PUSH1 0x00 0605 80 DUP1 0606 3E RETURNDATACOPY 0607 80 DUP1 0608 60 PUSH1 0x00 060A 81 DUP2 060B 14 EQ 060C 61 PUSH2 0x0614 060F 57 *JUMPI // Stack delta = +2 // Outputs[5] // { // @05F8 memory[0x00:0x00 + msg.data.length] = msg.data[0x00:0x00 + msg.data.length] // @0601 memory[0x00:0x00] = address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @0601 stack[0] = address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @0606 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0607 stack[1] = address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // } // Block ends with conditional jump to 0x0614, if address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) == 0x00 label_0610: // Incoming jump from 0x060F, if not address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) == 0x00 // Inputs[2] // { // @0610 returndata.length // @0613 memory[0x00:0x00 + returndata.length] // } 0610 3D RETURNDATASIZE 0611 60 PUSH1 0x00 0613 F3 *RETURN // Stack delta = +0 // Outputs[1] { @0613 return memory[0x00:0x00 + returndata.length]; } // Block terminates label_0614: // Incoming jump from 0x060F, if address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) == 0x00 // Inputs[2] // { // @0615 returndata.length // @0618 memory[0x00:0x00 + returndata.length] // } 0614 5B JUMPDEST 0615 3D RETURNDATASIZE 0616 60 PUSH1 0x00 0618 FD *REVERT // Stack delta = +0 // Outputs[1] { @0618 revert(memory[0x00:0x00 + returndata.length]); } // Block terminates label_0619: // Incoming call from 0x054F, returns to 0x0550 // Incoming call from 0x054F, returns to 0x0550 // Inputs[1] { @061C stack[-3] } 0619 5B JUMPDEST 061A 60 PUSH1 0x60 061C 83 DUP4 061D 15 ISZERO 061E 61 PUSH2 0x067b 0621 57 *JUMPI // Stack delta = +1 // Outputs[1] { @061A stack[0] = 0x60 } // Block ends with conditional jump to 0x067b, if !stack[-3] label_0622: // Incoming jump from 0x0621, if not !stack[-3] // Inputs[2] // { // @0624 stack[-3] // @0625 memory[stack[-3]:stack[-3] + 0x20] // } 0622 60 PUSH1 0x00 0624 83 DUP4 0625 51 MLOAD 0626 03 SUB 0627 61 PUSH2 0x0673 062A 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0673, if memory[stack[-3]:stack[-3] + 0x20] - 0x00 label_062B: // Incoming jump from 0x062A, if not memory[stack[-3]:stack[-3] + 0x20] - 0x00 // Inputs[1] { @062E stack[-5] } 062B 61 PUSH2 0x0633 062E 85 DUP6 062F 61 PUSH2 0x02d0 0632 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @062B stack[0] = 0x0633 // @062E stack[1] = stack[-5] // } // Block ends with call to 0x02d0, returns to 0x0633 label_0633: // Incoming return from call to 0x02D0 at 0x0632 // Inputs[1] { @0637 stack[-1] } 0633 5B JUMPDEST 0634 61 PUSH2 0x0672 0637 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x0672, if stack[-1] label_0638: // Incoming jump from 0x0637, if not stack[-1] // Inputs[1] { @063A memory[0x40:0x60] } 0638 60 PUSH1 0x40 063A 51 MLOAD 063B 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 065C 81 DUP2 065D 52 MSTORE 065E 60 PUSH1 0x04 0660 01 ADD 0661 61 PUSH2 0x0669 0664 90 SWAP1 0665 61 PUSH2 0x0da5 0668 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @065D memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000 // @0664 stack[0] = 0x0669 // @0664 stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x0da5, returns to 0x0669 label_0669: // Incoming return from call to 0x0DA5 at 0x0668 // Inputs[3] // { // @066C memory[0x40:0x60] // @066E stack[-1] // @0671 memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 0669 5B JUMPDEST 066A 60 PUSH1 0x40 066C 51 MLOAD 066D 80 DUP1 066E 91 SWAP2 066F 03 SUB 0670 90 SWAP1 0671 FD *REVERT // Stack delta = -1 // Outputs[1] { @0671 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]); } // Block terminates label_0672: // Incoming jump from 0x0637, if stack[-1] 0672 5B JUMPDEST // Stack delta = +0 // Block continues label_0673: // Incoming jump from 0x0672 // Incoming jump from 0x062A, if memory[stack[-3]:stack[-3] + 0x20] - 0x00 // Inputs[2] // { // @0674 stack[-3] // @0675 stack[-1] // } 0673 5B JUMPDEST 0674 82 DUP3 0675 90 SWAP1 0676 50 POP 0677 61 PUSH2 0x0686 067A 56 *JUMP // Stack delta = +0 // Outputs[1] { @0675 stack[-1] = stack[-3] } // Block ends with unconditional jump to 0x0686 label_067B: // Incoming jump from 0x0621, if !stack[-3] // Inputs[2] // { // @067F stack[-3] // @0680 stack[-2] // } 067B 5B JUMPDEST 067C 61 PUSH2 0x0685 067F 83 DUP4 0680 83 DUP4 0681 61 PUSH2 0x0814 0684 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @067C stack[0] = 0x0685 // @067F stack[1] = stack[-3] // @0680 stack[2] = stack[-2] // } // Block ends with unconditional jump to 0x0814 0685 5B JUMPDEST label_0686: // Incoming jump from 0x067A // Inputs[3] // { // @0687 stack[-6] // @0687 stack[-1] // @0688 stack[-5] // } 0686 5B JUMPDEST 0687 94 SWAP5 0688 93 SWAP4 0689 50 POP 068A 50 POP 068B 50 POP 068C 50 POP 068D 56 *JUMP // Stack delta = -5 // Outputs[1] { @0687 stack[-6] = stack[-1] } // Block ends with unconditional jump to stack[-6] label_068E: // Incoming call from 0x0572, returns to 0x0573 // Inputs[1] { @0692 stack[-1] } 068E 5B JUMPDEST 068F 61 PUSH2 0x0697 0692 81 DUP2 0693 61 PUSH2 0x0864 0696 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @068F stack[0] = 0x0697 // @0692 stack[1] = stack[-1] // } // Block ends with call to 0x0864, returns to 0x0697 label_0697: // Incoming return from call to 0x0864 at 0x0696 // Inputs[5] // { // @0698 stack[-1] // @06D2 memory[0x40:0x60] // @06D5 memory[0x40:0x60] // @06DA memory[memory[0x40:0x60]:memory[0x40:0x60] + memory[0x40:0x60] - memory[0x40:0x60]] // @06DC stack[-2] // } 0697 5B JUMPDEST 0698 80 DUP1 0699 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 06AE 16 AND 06AF 7F PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b 06D0 60 PUSH1 0x40 06D2 51 MLOAD 06D3 60 PUSH1 0x40 06D5 51 MLOAD 06D6 80 DUP1 06D7 91 SWAP2 06D8 03 SUB 06D9 90 SWAP1 06DA A2 LOG2 06DB 50 POP 06DC 56 *JUMP // Stack delta = -2 // Outputs[1] { @06DA log(memory[memory[0x40:0x60]:memory[0x40:0x60] + memory[0x40:0x60] - memory[0x40:0x60]], [0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b, stack[-1] & 0xffffffffffffffffffffffffffffffffffffffff]); } // Block ends with unconditional jump to stack[-2] label_06DD: // Incoming call from 0x05DE, returns to 0x05DF // Inputs[1] { @06F6 stack[-1] } 06DD 5B JUMPDEST 06DE 60 PUSH1 0x00 06E0 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 06F5 16 AND 06F6 81 DUP2 06F7 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 070C 16 AND 070D 03 SUB 070E 61 PUSH2 0x074c 0711 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x074c, if (0xffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (0xffffffffffffffffffffffffffffffffffffffff & 0x00) label_0712: // Incoming jump from 0x0711, if not (0xffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (0xffffffffffffffffffffffffffffffffffffffff & 0x00) // Inputs[1] { @0714 memory[0x40:0x60] } 0712 60 PUSH1 0x40 0714 51 MLOAD 0715 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0736 81 DUP2 0737 52 MSTORE 0738 60 PUSH1 0x04 073A 01 ADD 073B 61 PUSH2 0x0743 073E 90 SWAP1 073F 61 PUSH2 0x0e37 0742 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0737 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000 // @073E stack[0] = 0x0743 // @073E stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x0e37, returns to 0x0743 label_0743: // Incoming return from call to 0x0E37 at 0x0742 // Inputs[3] // { // @0746 memory[0x40:0x60] // @0748 stack[-1] // @074B memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 0743 5B JUMPDEST 0744 60 PUSH1 0x40 0746 51 MLOAD 0747 80 DUP1 0748 91 SWAP2 0749 03 SUB 074A 90 SWAP1 074B FD *REVERT // Stack delta = -1 // Outputs[1] { @074B revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]); } // Block terminates label_074C: // Incoming jump from 0x0711, if (0xffffffffffffffffffffffffffffffffffffffff & stack[-1]) - (0xffffffffffffffffffffffffffffffffffffffff & 0x00) // Inputs[1] { @074D stack[-1] } 074C 5B JUMPDEST 074D 80 DUP1 074E 61 PUSH2 0x0779 0751 7F PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 0772 60 PUSH1 0x00 0774 1B SHL 0775 61 PUSH2 0x02c6 0778 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @074D stack[0] = stack[-1] // @074E stack[1] = 0x0779 // @0774 stack[2] = 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103 << 0x00 // } // Block ends with call to 0x02c6, returns to 0x0779 label_0779: // Incoming return from call to 0x02C6 at 0x0778 // Inputs[4] // { // @077C stack[-1] // @0784 storage[0x00 + stack[-1]] // @079F stack[-2] // @07BC stack[-4] // } 0779 5B JUMPDEST 077A 60 PUSH1 0x00 077C 01 ADD 077D 60 PUSH1 0x00 077F 61 PUSH2 0x0100 0782 0A EXP 0783 81 DUP2 0784 54 SLOAD 0785 81 DUP2 0786 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 079B 02 MUL 079C 19 NOT 079D 16 AND 079E 90 SWAP1 079F 83 DUP4 07A0 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 07B5 16 AND 07B6 02 MUL 07B7 17 OR 07B8 90 SWAP1 07B9 55 SSTORE 07BA 50 POP 07BB 50 POP 07BC 56 *JUMP // Stack delta = -4 // Outputs[1] { @07B9 storage[0x00 + stack[-1]] = (0xffffffffffffffffffffffffffffffffffffffff & stack[-2]) * 0x0100 ** 0x00 | (~(0xffffffffffffffffffffffffffffffffffffffff * 0x0100 ** 0x00) & storage[0x00 + stack[-1]]) } // Block ends with unconditional jump to stack[-4] label_07BD: // Incoming call from 0x05EB, returns to 0x05EC 07BD 5B JUMPDEST 07BE 60 PUSH1 0x00 07C0 61 PUSH2 0x07eb 07C3 7F PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 07E4 60 PUSH1 0x00 07E6 1B SHL 07E7 61 PUSH2 0x02c6 07EA 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @07BE stack[0] = 0x00 // @07C0 stack[1] = 0x07eb // @07E6 stack[2] = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc << 0x00 // } // Block ends with call to 0x02c6, returns to 0x07EB label_07EB: // Incoming return from call to 0x02C6 at 0x07EA // Inputs[4] // { // @07EE stack[-1] // @07F2 storage[0x00 + stack[-1]] // @0810 stack[-2] // @0812 stack[-3] // } 07EB 5B JUMPDEST 07EC 60 PUSH1 0x00 07EE 01 ADD 07EF 60 PUSH1 0x00 07F1 90 SWAP1 07F2 54 SLOAD 07F3 90 SWAP1 07F4 61 PUSH2 0x0100 07F7 0A EXP 07F8 90 SWAP1 07F9 04 DIV 07FA 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 080F 16 AND 0810 90 SWAP1 0811 50 POP 0812 90 SWAP1 0813 56 *JUMP // Stack delta = -2 // Outputs[1] { @0812 stack[-3] = 0xffffffffffffffffffffffffffffffffffffffff & storage[0x00 + stack[-1]] / 0x0100 ** 0x00 } // Block ends with unconditional jump to stack[-3] label_0814: // Incoming jump from 0x0684 // Inputs[2] // { // @0817 stack[-2] // @0818 memory[stack[-2]:stack[-2] + 0x20] // } 0814 5B JUMPDEST 0815 60 PUSH1 0x00 0817 82 DUP3 0818 51 MLOAD 0819 11 GT 081A 15 ISZERO 081B 61 PUSH2 0x0827 081E 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0827, if !(memory[stack[-2]:stack[-2] + 0x20] > 0x00) label_081F: // Incoming jump from 0x081E, if not !(memory[stack[-2]:stack[-2] + 0x20] > 0x00) // Inputs[3] // { // @081F stack[-2] // @0820 memory[stack[-2]:stack[-2] + 0x20] // @0826 memory[0x20 + stack[-2]:0x20 + stack[-2] + memory[stack[-2]:stack[-2] + 0x20]] // } 081F 81 DUP2 0820 51 MLOAD 0821 80 DUP1 0822 83 DUP4 0823 60 PUSH1 0x20 0825 01 ADD 0826 FD *REVERT // Stack delta = +1 // Outputs[2] // { // @0820 stack[0] = memory[stack[-2]:stack[-2] + 0x20] // @0826 revert(memory[0x20 + stack[-2]:0x20 + stack[-2] + memory[stack[-2]:stack[-2] + 0x20]]); // } // Block terminates label_0827: // Incoming jump from 0x081E, if !(memory[stack[-2]:stack[-2] + 0x20] > 0x00) // Inputs[2] // { // @0828 stack[-1] // @082B memory[0x40:0x60] // } 0827 5B JUMPDEST 0828 80 DUP1 0829 60 PUSH1 0x40 082B 51 MLOAD 082C 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 084D 81 DUP2 084E 52 MSTORE 084F 60 PUSH1 0x04 0851 01 ADD 0852 61 PUSH2 0x085b 0855 91 SWAP2 0856 90 SWAP1 0857 61 PUSH2 0x0e9b 085A 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @084E memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000 // @0855 stack[0] = 0x085b // @0856 stack[1] = stack[-1] // @0856 stack[2] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x0e9b, returns to 0x085B label_085B: // Incoming return from call to 0x0E9B at 0x085A // Inputs[3] // { // @085E memory[0x40:0x60] // @0860 stack[-1] // @0863 memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 085B 5B JUMPDEST 085C 60 PUSH1 0x40 085E 51 MLOAD 085F 80 DUP1 0860 91 SWAP2 0861 03 SUB 0862 90 SWAP1 0863 FD *REVERT // Stack delta = -1 // Outputs[1] { @0863 revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]); } // Block terminates label_0864: // Incoming call from 0x0696, returns to 0x0697 // Inputs[1] { @0868 stack[-1] } 0864 5B JUMPDEST 0865 61 PUSH2 0x086d 0868 81 DUP2 0869 61 PUSH2 0x02d0 086C 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0865 stack[0] = 0x086d // @0868 stack[1] = stack[-1] // } // Block ends with call to 0x02d0, returns to 0x086D label_086D: // Incoming return from call to 0x02D0 at 0x086C // Inputs[1] { @0871 stack[-1] } 086D 5B JUMPDEST 086E 61 PUSH2 0x08ac 0871 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x08ac, if stack[-1] label_0872: // Incoming jump from 0x0871, if not stack[-1] // Inputs[1] { @0874 memory[0x40:0x60] } 0872 60 PUSH1 0x40 0874 51 MLOAD 0875 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000 0896 81 DUP2 0897 52 MSTORE 0898 60 PUSH1 0x04 089A 01 ADD 089B 61 PUSH2 0x08a3 089E 90 SWAP1 089F 61 PUSH2 0x0f2f 08A2 56 *JUMP // Stack delta = +2 // Outputs[3] // { // @0897 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000 // @089E stack[0] = 0x08a3 // @089E stack[1] = 0x04 + memory[0x40:0x60] // } // Block ends with call to 0x0f2f, returns to 0x08A3 label_08A3: // Incoming return from call to 0x0F2F at 0x08A2 // Inputs[3] // { // @08A6 memory[0x40:0x60] // @08A8 stack[-1] // @08AB memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]] // } 08A3 5B JUMPDEST 08A4 60 PUSH1 0x40 08A6 51 MLOAD 08A7 80 DUP1 08A8 91 SWAP2 08A9 03 SUB 08AA 90 SWAP1 08AB FD *REVERT // Stack delta = -1 // Outputs[1] { @08AB revert(memory[memory[0x40:0x60]:memory[0x40:0x60] + stack[-1] - memory[0x40:0x60]]); } // Block terminates label_08AC: // Incoming jump from 0x0871, if stack[-1] // Inputs[1] { @08AD stack[-1] } 08AC 5B JUMPDEST 08AD 80 DUP1 08AE 61 PUSH2 0x08d9 08B1 7F PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc 08D2 60 PUSH1 0x00 08D4 1B SHL 08D5 61 PUSH2 0x02c6 08D8 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @08AD stack[0] = stack[-1] // @08AE stack[1] = 0x08d9 // @08D4 stack[2] = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc << 0x00 // } // Block ends with call to 0x02c6, returns to 0x08D9 label_08D9: // Incoming return from call to 0x02C6 at 0x08D8 // Inputs[4] // { // @08DC stack[-1] // @08E4 storage[0x00 + stack[-1]] // @08FF stack[-2] // @091C stack[-4] // } 08D9 5B JUMPDEST 08DA 60 PUSH1 0x00 08DC 01 ADD 08DD 60 PUSH1 0x00 08DF 61 PUSH2 0x0100 08E2 0A EXP 08E3 81 DUP2 08E4 54 SLOAD 08E5 81 DUP2 08E6 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 08FB 02 MUL 08FC 19 NOT 08FD 16 AND 08FE 90 SWAP1 08FF 83 DUP4 0900 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0915 16 AND 0916 02 MUL 0917 17 OR 0918 90 SWAP1 0919 55 SSTORE 091A 50 POP 091B 50 POP 091C 56 *JUMP // Stack delta = -4 // Outputs[1] { @0919 storage[0x00 + stack[-1]] = (0xffffffffffffffffffffffffffffffffffffffff & stack[-2]) * 0x0100 ** 0x00 | (~(0xffffffffffffffffffffffffffffffffffffffff * 0x0100 ** 0x00) & storage[0x00 + stack[-1]]) } // Block ends with unconditional jump to stack[-4] label_091D: // Incoming call from 0x0F18, returns to 0x0F19 // Incoming call from 0x09AF, returns to 0x09B0 // Incoming call from 0x0E76, returns to 0x0E77 // Incoming call from 0x0D8E, returns to 0x0D8F // Incoming call from 0x0E20, returns to 0x0E21 // Inputs[3] // { // @0920 stack[-2] // @0921 stack[-1] // @0929 stack[-3] // } 091D 5B JUMPDEST 091E 60 PUSH1 0x00 0920 82 DUP3 0921 82 DUP3 0922 52 MSTORE 0923 60 PUSH1 0x20 0925 82 DUP3 0926 01 ADD 0927 90 SWAP1 0928 50 POP 0929 92 SWAP3 092A 91 SWAP2 092B 50 POP 092C 50 POP 092D 56 *JUMP // Stack delta = -2 // Outputs[2] // { // @0922 memory[stack[-1]:stack[-1] + 0x20] = stack[-2] // @0929 stack[-3] = stack[-1] + 0x20 // } // Block ends with unconditional jump to stack[-3] label_092E: // Incoming call from 0x09BA, returns to 0x09BB // Inputs[2] // { // @0952 stack[-1] // @09A2 stack[-2] // } 092E 5B JUMPDEST 092F 7F PUSH32 0x5472616e73706172656e745570677261646561626c6550726f78793a2061646d 0950 60 PUSH1 0x00 0952 82 DUP3 0953 01 ADD 0954 52 MSTORE 0955 7F PUSH32 0x696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267 0976 60 PUSH1 0x20 0978 82 DUP3 0979 01 ADD 097A 52 MSTORE 097B 7F PUSH32 0x6574000000000000000000000000000000000000000000000000000000000000 099C 60 PUSH1 0x40 099E 82 DUP3 099F 01 ADD 09A0 52 MSTORE 09A1 50 POP 09A2 56 *JUMP // Stack delta = -2 // Outputs[3] // { // @0954 memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = 0x5472616e73706172656e745570677261646561626c6550726f78793a2061646d // @097A memory[stack[-1] + 0x20:stack[-1] + 0x20 + 0x20] = 0x696e2063616e6e6f742066616c6c6261636b20746f2070726f78792074617267 // @09A0 memory[stack[-1] + 0x40:stack[-1] + 0x40 + 0x20] = 0x6574000000000000000000000000000000000000000000000000000000000000 // } // Block ends with unconditional jump to stack[-2] label_09A3: // Incoming call from 0x09DE, returns to 0x09DF // Inputs[1] { @09AB stack[-1] } 09A3 5B JUMPDEST 09A4 60 PUSH1 0x00 09A6 61 PUSH2 0x09b0 09A9 60 PUSH1 0x42 09AB 83 DUP4 09AC 61 PUSH2 0x091d 09AF 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @09A4 stack[0] = 0x00 // @09A6 stack[1] = 0x09b0 // @09A9 stack[2] = 0x42 // @09AB stack[3] = stack[-1] // } // Block ends with call to 0x091d, returns to 0x09B0 label_09B0: // Incoming return from call to 0x091D at 0x09AF // Inputs[2] // { // @09B1 stack[-3] // @09B1 stack[-1] // } 09B0 5B JUMPDEST 09B1 91 SWAP2 09B2 50 POP 09B3 61 PUSH2 0x09bb 09B6 82 DUP3 09B7 61 PUSH2 0x092e 09BA 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @09B1 stack[-3] = stack[-1] // @09B3 stack[-1] = 0x09bb // @09B6 stack[0] = stack[-1] // } // Block ends with call to 0x092e, returns to 0x09BB label_09BB: // Incoming return from call to 0x092E at 0x09BA // Inputs[3] // { // @09BE stack[-2] // @09C0 stack[-1] // @09C2 stack[-3] // } 09BB 5B JUMPDEST 09BC 60 PUSH1 0x60 09BE 82 DUP3 09BF 01 ADD 09C0 90 SWAP1 09C1 50 POP 09C2 91 SWAP2 09C3 90 SWAP1 09C4 50 POP 09C5 56 *JUMP // Stack delta = -2 // Outputs[1] { @09C2 stack[-3] = stack[-2] + 0x60 } // Block ends with unconditional jump to stack[-3] label_09C6: // Incoming call from 0x0279, returns to 0x027A // Inputs[1] { @09CB stack[-1] } 09C6 5B JUMPDEST 09C7 60 PUSH1 0x00 09C9 60 PUSH1 0x20 09CB 82 DUP3 09CC 01 ADD 09CD 90 SWAP1 09CE 50 POP 09CF 81 DUP2 09D0 81 DUP2 09D1 03 SUB 09D2 60 PUSH1 0x00 09D4 83 DUP4 09D5 01 ADD 09D6 52 MSTORE 09D7 61 PUSH2 0x09df 09DA 81 DUP2 09DB 61 PUSH2 0x09a3 09DE 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @09CD stack[0] = stack[-1] + 0x20 // @09D6 memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = (stack[-1] + 0x20) - stack[-1] // @09D7 stack[1] = 0x09df // @09DA stack[2] = stack[-1] + 0x20 // } // Block ends with call to 0x09a3, returns to 0x09DF label_09DF: // Incoming return from call to 0x09A3 at 0x09DE // Inputs[4] // { // @09E0 stack[-2] // @09E0 stack[-1] // @09E2 stack[-4] // @09E3 stack[-3] // } 09DF 5B JUMPDEST 09E0 90 SWAP1 09E1 50 POP 09E2 91 SWAP2 09E3 90 SWAP1 09E4 50 POP 09E5 56 *JUMP // Stack delta = -3 // Outputs[1] { @09E2 stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_09E6: // Incoming call from 0x0B4E, returns to 0x0B4F // Inputs[2] // { // @09EB memory[0x40:0x60] // @09EE stack[-1] // } 09E6 5B JUMPDEST 09E7 60 PUSH1 0x00 09E9 60 PUSH1 0x40 09EB 51 MLOAD 09EC 90 SWAP1 09ED 50 POP 09EE 90 SWAP1 09EF 56 *JUMP // Stack delta = +0 // Outputs[1] { @09EE stack[-1] = memory[0x40:0x60] } // Block ends with unconditional jump to stack[-1] label_09F0: // Incoming jump from 0x0A0C // Inputs[1] { @09F4 memory[0x00:0x00] } 09F0 5B JUMPDEST 09F1 60 PUSH1 0x00 09F3 80 DUP1 09F4 FD *REVERT // Stack delta = +0 // Outputs[1] { @09F4 revert(memory[0x00:0x00]); } // Block terminates label_09F5: // Incoming jump from 0x0A1D // Inputs[1] { @09F9 memory[0x00:0x00] } 09F5 5B JUMPDEST 09F6 60 PUSH1 0x00 09F8 80 DUP1 09F9 FD *REVERT // Stack delta = +0 // Outputs[1] { @09F9 revert(memory[0x00:0x00]); } // Block terminates label_09FA: // Incoming call from 0x0368, returns to 0x0369 // Incoming call from 0x03C1, returns to 0x03C2 // Incoming call from 0x0414, returns to 0x0415 // Inputs[2] // { // @09FE stack[-4] // @09FF stack[-3] // } 09FA 5B JUMPDEST 09FB 60 PUSH1 0x00 09FD 80 DUP1 09FE 85 DUP6 09FF 85 DUP6 0A00 11 GT 0A01 15 ISZERO 0A02 61 PUSH2 0x0a0e 0A05 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @09FB stack[0] = 0x00 // @09FD stack[1] = 0x00 // } // Block ends with conditional jump to 0x0a0e, if !(stack[-3] > stack[-4]) label_0A06: // Incoming jump from 0x0A05, if not !(stack[-3] > stack[-4]) 0A06 61 PUSH2 0x0a0d 0A09 61 PUSH2 0x09f0 0A0C 56 *JUMP // Stack delta = +1 // Outputs[1] { @0A06 stack[0] = 0x0a0d } // Block ends with unconditional jump to 0x09f0 0A0D 5B JUMPDEST label_0A0E: // Incoming jump from 0x0A05, if !(stack[-3] > stack[-4]) // Inputs[2] // { // @0A0F stack[-4] // @0A10 stack[-6] // } 0A0E 5B JUMPDEST 0A0F 83 DUP4 0A10 86 DUP7 0A11 11 GT 0A12 15 ISZERO 0A13 61 PUSH2 0x0a1f 0A16 57 *JUMPI // Stack delta = +0 // Block ends with conditional jump to 0x0a1f, if !(stack[-6] > stack[-4]) label_0A17: // Incoming jump from 0x0A16, if not !(stack[-6] > stack[-4]) 0A17 61 PUSH2 0x0a1e 0A1A 61 PUSH2 0x09f5 0A1D 56 *JUMP // Stack delta = +1 // Outputs[1] { @0A17 stack[0] = 0x0a1e } // Block ends with unconditional jump to 0x09f5 0A1E 5B JUMPDEST label_0A1F: // Incoming jump from 0x0A16, if !(stack[-6] > stack[-4]) // Inputs[6] // { // @0A22 stack[-5] // @0A24 stack[-3] // @0A26 stack[-2] // @0A29 stack[-6] // @0A2B stack[-1] // @0A2F stack[-7] // } 0A1F 5B JUMPDEST 0A20 60 PUSH1 0x01 0A22 85 DUP6 0A23 02 MUL 0A24 83 DUP4 0A25 01 ADD 0A26 91 SWAP2 0A27 50 POP 0A28 84 DUP5 0A29 86 DUP7 0A2A 03 SUB 0A2B 90 SWAP1 0A2C 50 POP 0A2D 94 SWAP5 0A2E 50 POP 0A2F 94 SWAP5 0A30 92 SWAP3 0A31 50 POP 0A32 50 POP 0A33 50 POP 0A34 56 *JUMP // Stack delta = -5 // Outputs[2] // { // @0A2D stack[-6] = stack[-6] - stack[-5] // @0A2F stack[-7] = stack[-3] + stack[-5] * 0x01 // } // Block ends with unconditional jump to stack[-7] label_0A35: // Incoming jump from 0x0C25 // Incoming jump from 0x0AB1 // Inputs[1] { @0A39 memory[0x00:0x00] } 0A35 5B JUMPDEST 0A36 60 PUSH1 0x00 0A38 80 DUP1 0A39 FD *REVERT // Stack delta = +0 // Outputs[1] { @0A39 revert(memory[0x00:0x00]); } // Block terminates label_0A3A: // Incoming jump from 0x0C54 // Inputs[1] { @0A3E memory[0x00:0x00] } 0A3A 5B JUMPDEST 0A3B 60 PUSH1 0x00 0A3D 80 DUP1 0A3E FD *REVERT // Stack delta = +0 // Outputs[1] { @0A3E revert(memory[0x00:0x00]); } // Block terminates label_0A3F: // Incoming call from 0x0C76, returns to 0x0C77 // Incoming call from 0x0A69, returns to 0x0A6A // Inputs[2] // { // @0A57 stack[-1] // @0A5B stack[-2] // } 0A3F 5B JUMPDEST 0A40 60 PUSH1 0x00 0A42 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff 0A57 82 DUP3 0A58 16 AND 0A59 90 SWAP1 0A5A 50 POP 0A5B 91 SWAP2 0A5C 90 SWAP1 0A5D 50 POP 0A5E 56 *JUMP // Stack delta = -1 // Outputs[1] { @0A5B stack[-2] = stack[-1] & 0xffffffffffffffffffffffffffffffffffffffff } // Block ends with unconditional jump to stack[-2] label_0A5F: // Incoming call from 0x0A79, returns to 0x0A7A // Inputs[1] { @0A65 stack[-1] } 0A5F 5B JUMPDEST 0A60 60 PUSH1 0x00 0A62 61 PUSH2 0x0a6a 0A65 82 DUP3 0A66 61 PUSH2 0x0a3f 0A69 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0A60 stack[0] = 0x00 // @0A62 stack[1] = 0x0a6a // @0A65 stack[2] = stack[-1] // } // Block ends with call to 0x0a3f, returns to 0x0A6A label_0A6A: // Incoming return from call to 0x0A3F at 0x0A69 // Inputs[4] // { // @0A6B stack[-1] // @0A6B stack[-2] // @0A6D stack[-4] // @0A6E stack[-3] // } 0A6A 5B JUMPDEST 0A6B 90 SWAP1 0A6C 50 POP 0A6D 91 SWAP2 0A6E 90 SWAP1 0A6F 50 POP 0A70 56 *JUMP // Stack delta = -3 // Outputs[1] { @0A6D stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0A71: // Incoming call from 0x0A96, returns to 0x0A97 // Inputs[1] { @0A75 stack[-1] } 0A71 5B JUMPDEST 0A72 61 PUSH2 0x0a7a 0A75 81 DUP2 0A76 61 PUSH2 0x0a5f 0A79 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0A72 stack[0] = 0x0a7a // @0A75 stack[1] = stack[-1] // } // Block ends with call to 0x0a5f, returns to 0x0A7A label_0A7A: // Incoming return from call to 0x0A5F at 0x0A79 // Inputs[2] // { // @0A7B stack[-2] // @0A7C stack[-1] // } 0A7A 5B JUMPDEST 0A7B 81 DUP2 0A7C 14 EQ 0A7D 61 PUSH2 0x0a85 0A80 57 *JUMPI // Stack delta = -1 // Block ends with conditional jump to 0x0a85, if stack[-2] == stack[-1] label_0A81: // Incoming jump from 0x0A80, if not stack[-2] == stack[-1] // Inputs[1] { @0A84 memory[0x00:0x00] } 0A81 60 PUSH1 0x00 0A83 80 DUP1 0A84 FD *REVERT // Stack delta = +0 // Outputs[1] { @0A84 revert(memory[0x00:0x00]); } // Block terminates label_0A85: // Incoming jump from 0x0A80, if stack[-2] == stack[-1] // Inputs[1] { @0A87 stack[-2] } 0A85 5B JUMPDEST 0A86 50 POP 0A87 56 *JUMP // Stack delta = -2 // Block ends with unconditional jump to stack[-2] label_0A88: // Incoming call from 0x0C34, returns to 0x0C35 // Incoming call from 0x0AC0, returns to 0x0AC1 // Inputs[2] // { // @0A8B stack[-1] // @0A8C msg.data[stack[-1]:stack[-1] + 0x20] // } 0A88 5B JUMPDEST 0A89 60 PUSH1 0x00 0A8B 81 DUP2 0A8C 35 CALLDATALOAD 0A8D 90 SWAP1 0A8E 50 POP 0A8F 61 PUSH2 0x0a97 0A92 81 DUP2 0A93 61 PUSH2 0x0a71 0A96 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0A8D stack[0] = msg.data[stack[-1]:stack[-1] + 0x20] // @0A8F stack[1] = 0x0a97 // @0A92 stack[2] = msg.data[stack[-1]:stack[-1] + 0x20] // } // Block ends with call to 0x0a71, returns to 0x0A97 label_0A97: // Incoming return from call to 0x0A71 at 0x0A96 // Inputs[3] // { // @0A98 stack[-1] // @0A98 stack[-4] // @0A99 stack[-3] // } 0A97 5B JUMPDEST 0A98 92 SWAP3 0A99 91 SWAP2 0A9A 50 POP 0A9B 50 POP 0A9C 56 *JUMP // Stack delta = -3 // Outputs[1] { @0A98 stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0A9D: // Incoming call from 0x0375, returns to 0x0376 // Incoming call from 0x0421, returns to 0x0422 // Inputs[2] // { // @0AA2 stack[-1] // @0AA3 stack[-2] // } 0A9D 5B JUMPDEST 0A9E 60 PUSH1 0x00 0AA0 60 PUSH1 0x20 0AA2 82 DUP3 0AA3 84 DUP5 0AA4 03 SUB 0AA5 12 SLT 0AA6 15 ISZERO 0AA7 61 PUSH2 0x0ab3 0AAA 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0A9E stack[0] = 0x00 } // Block ends with conditional jump to 0x0ab3, if !(stack[-2] - stack[-1] i< 0x20) label_0AAB: // Incoming jump from 0x0AAA, if not !(stack[-2] - stack[-1] i< 0x20) 0AAB 61 PUSH2 0x0ab2 0AAE 61 PUSH2 0x0a35 0AB1 56 *JUMP // Stack delta = +1 // Outputs[1] { @0AAB stack[0] = 0x0ab2 } // Block ends with unconditional jump to 0x0a35 0AB2 5B JUMPDEST label_0AB3: // Incoming jump from 0x0AAA, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[2] // { // @0AB9 stack[-3] // @0ABB stack[-2] // } 0AB3 5B JUMPDEST 0AB4 60 PUSH1 0x00 0AB6 61 PUSH2 0x0ac1 0AB9 84 DUP5 0ABA 82 DUP3 0ABB 85 DUP6 0ABC 01 ADD 0ABD 61 PUSH2 0x0a88 0AC0 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0AB4 stack[0] = 0x00 // @0AB6 stack[1] = 0x0ac1 // @0AB9 stack[2] = stack[-3] // @0ABC stack[3] = stack[-2] + 0x00 // } // Block ends with call to 0x0a88, returns to 0x0AC1 label_0AC1: // Incoming return from call to 0x0A88 at 0x0AC0 // Inputs[4] // { // @0AC2 stack[-3] // @0AC2 stack[-1] // @0AC5 stack[-6] // @0AC6 stack[-5] // } 0AC1 5B JUMPDEST 0AC2 91 SWAP2 0AC3 50 POP 0AC4 50 POP 0AC5 92 SWAP3 0AC6 91 SWAP2 0AC7 50 POP 0AC8 50 POP 0AC9 56 *JUMP // Stack delta = -5 // Outputs[1] { @0AC5 stack[-6] = stack[-1] } // Block ends with unconditional jump to stack[-6] label_0ACA: // Incoming jump from 0x0BF5 // Inputs[1] { @0ACE memory[0x00:0x00] } 0ACA 5B JUMPDEST 0ACB 60 PUSH1 0x00 0ACD 80 DUP1 0ACE FD *REVERT // Stack delta = +0 // Outputs[1] { @0ACE revert(memory[0x00:0x00]); } // Block terminates label_0ACF: // Incoming jump from 0x0BCD // Inputs[1] { @0AD3 memory[0x00:0x00] } 0ACF 5B JUMPDEST 0AD0 60 PUSH1 0x00 0AD2 80 DUP1 0AD3 FD *REVERT // Stack delta = +0 // Outputs[1] { @0AD3 revert(memory[0x00:0x00]); } // Block terminates label_0AD4: // Incoming call from 0x0B83, returns to 0x0B84 // Incoming call from 0x0E8F, returns to 0x0E90 // Incoming call from 0x0B1C, returns to 0x0B1D // Inputs[2] // { // @0ADC stack[-1] // @0AE1 stack[-2] // } 0AD4 5B JUMPDEST 0AD5 60 PUSH1 0x00 0AD7 60 PUSH1 0x1f 0AD9 19 NOT 0ADA 60 PUSH1 0x1f 0ADC 83 DUP4 0ADD 01 ADD 0ADE 16 AND 0ADF 90 SWAP1 0AE0 50 POP 0AE1 91 SWAP2 0AE2 90 SWAP1 0AE3 50 POP 0AE4 56 *JUMP // Stack delta = -1 // Outputs[1] { @0AE1 stack[-2] = stack[-1] + 0x1f & ~0x1f } // Block ends with unconditional jump to stack[-2] label_0AE5: // Incoming jump from 0x0B79 // Incoming jump from 0x0B3A // Inputs[1] { @0B13 memory[0x00:0x24] } 0AE5 5B JUMPDEST 0AE6 7F PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000 0B07 60 PUSH1 0x00 0B09 52 MSTORE 0B0A 60 PUSH1 0x41 0B0C 60 PUSH1 0x04 0B0E 52 MSTORE 0B0F 60 PUSH1 0x24 0B11 60 PUSH1 0x00 0B13 FD *REVERT // Stack delta = +0 // Outputs[3] // { // @0B09 memory[0x00:0x20] = 0x4e487b7100000000000000000000000000000000000000000000000000000000 // @0B0E memory[0x04:0x24] = 0x41 // @0B13 revert(memory[0x00:0x24]); // } // Block terminates label_0B14: // Incoming call from 0x0B5A, returns to 0x0B5B // Inputs[1] { @0B18 stack[-2] } 0B14 5B JUMPDEST 0B15 61 PUSH2 0x0b1d 0B18 82 DUP3 0B19 61 PUSH2 0x0ad4 0B1C 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0B15 stack[0] = 0x0b1d // @0B18 stack[1] = stack[-2] // } // Block ends with call to 0x0ad4, returns to 0x0B1D label_0B1D: // Incoming return from call to 0x0AD4 at 0x0B1C // Inputs[2] // { // @0B1E stack[-2] // @0B1F stack[-1] // } 0B1D 5B JUMPDEST 0B1E 81 DUP2 0B1F 01 ADD 0B20 81 DUP2 0B21 81 DUP2 0B22 10 LT 0B23 67 PUSH8 0xffffffffffffffff 0B2C 82 DUP3 0B2D 11 GT 0B2E 17 OR 0B2F 15 ISZERO 0B30 61 PUSH2 0x0b3c 0B33 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0B1F stack[-1] = stack[-2] + stack[-1] } // Block ends with conditional jump to 0x0b3c, if !((stack[-2] + stack[-1] > 0xffffffffffffffff) | (stack[-2] + stack[-1] < stack[-2])) label_0B34: // Incoming jump from 0x0B33, if not !((stack[-2] + stack[-1] > 0xffffffffffffffff) | (stack[-2] + stack[-1] < stack[-2])) 0B34 61 PUSH2 0x0b3b 0B37 61 PUSH2 0x0ae5 0B3A 56 *JUMP // Stack delta = +1 // Outputs[1] { @0B34 stack[0] = 0x0b3b } // Block ends with unconditional jump to 0x0ae5 0B3B 5B JUMPDEST label_0B3C: // Incoming jump from 0x0B33, if !((stack[-2] + stack[-1] > 0xffffffffffffffff) | (stack[-2] + stack[-1] < stack[-2])) // Inputs[2] // { // @0B3D stack[-1] // @0B44 stack[-4] // } 0B3C 5B JUMPDEST 0B3D 80 DUP1 0B3E 60 PUSH1 0x40 0B40 52 MSTORE 0B41 50 POP 0B42 50 POP 0B43 50 POP 0B44 56 *JUMP // Stack delta = -4 // Outputs[1] { @0B40 memory[0x40:0x60] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0B45: // Incoming jump from 0x0BB2 0B45 5B JUMPDEST 0B46 60 PUSH1 0x00 0B48 61 PUSH2 0x0b4f 0B4B 61 PUSH2 0x09e6 0B4E 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0B46 stack[0] = 0x00 // @0B48 stack[1] = 0x0b4f // } // Block ends with call to 0x09e6, returns to 0x0B4F label_0B4F: // Incoming return from call to 0x09E6 at 0x0B4E // Inputs[3] // { // @0B50 stack[-1] // @0B50 stack[-2] // @0B55 stack[-3] // } 0B4F 5B JUMPDEST 0B50 90 SWAP1 0B51 50 POP 0B52 61 PUSH2 0x0b5b 0B55 82 DUP3 0B56 82 DUP3 0B57 61 PUSH2 0x0b14 0B5A 56 *JUMP // Stack delta = +2 // Outputs[4] // { // @0B50 stack[-2] = stack[-1] // @0B52 stack[-1] = 0x0b5b // @0B55 stack[0] = stack[-3] // @0B56 stack[1] = stack[-1] // } // Block ends with call to 0x0b14, returns to 0x0B5B label_0B5B: // Incoming return from call to 0x0B14 at 0x0B5A // Inputs[3] // { // @0B5C stack[-1] // @0B5C stack[-3] // @0B5D stack[-2] // } 0B5B 5B JUMPDEST 0B5C 91 SWAP2 0B5D 90 SWAP1 0B5E 50 POP 0B5F 56 *JUMP // Stack delta = -2 // Outputs[1] { @0B5C stack[-3] = stack[-1] } // Block ends with unconditional jump to stack[-3] label_0B60: // Incoming call from 0x0BAD, returns to 0x0BAE // Inputs[1] { @0B6C stack[-1] } 0B60 5B JUMPDEST 0B61 60 PUSH1 0x00 0B63 67 PUSH8 0xffffffffffffffff 0B6C 82 DUP3 0B6D 11 GT 0B6E 15 ISZERO 0B6F 61 PUSH2 0x0b7b 0B72 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0B61 stack[0] = 0x00 } // Block ends with conditional jump to 0x0b7b, if !(stack[-1] > 0xffffffffffffffff) label_0B73: // Incoming jump from 0x0B72, if not !(stack[-1] > 0xffffffffffffffff) 0B73 61 PUSH2 0x0b7a 0B76 61 PUSH2 0x0ae5 0B79 56 *JUMP // Stack delta = +1 // Outputs[1] { @0B73 stack[0] = 0x0b7a } // Block ends with unconditional jump to 0x0ae5 0B7A 5B JUMPDEST label_0B7B: // Incoming jump from 0x0B72, if !(stack[-1] > 0xffffffffffffffff) // Inputs[1] { @0B7F stack[-2] } 0B7B 5B JUMPDEST 0B7C 61 PUSH2 0x0b84 0B7F 82 DUP3 0B80 61 PUSH2 0x0ad4 0B83 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0B7C stack[0] = 0x0b84 // @0B7F stack[1] = stack[-2] // } // Block ends with call to 0x0ad4, returns to 0x0B84 label_0B84: // Incoming return from call to 0x0AD4 at 0x0B83 // Inputs[4] // { // @0B85 stack[-1] // @0B85 stack[-2] // @0B8D stack[-4] // @0B8E stack[-3] // } 0B84 5B JUMPDEST 0B85 90 SWAP1 0B86 50 POP 0B87 60 PUSH1 0x20 0B89 81 DUP2 0B8A 01 ADD 0B8B 90 SWAP1 0B8C 50 POP 0B8D 91 SWAP2 0B8E 90 SWAP1 0B8F 50 POP 0B90 56 *JUMP // Stack delta = -3 // Outputs[1] { @0B8D stack[-4] = stack[-1] + 0x20 } // Block ends with unconditional jump to stack[-4] label_0B91: // Incoming call from 0x0BD9, returns to 0x0BDA // Inputs[5] // { // @0B92 stack[-3] // @0B93 stack[-1] // @0B94 stack[-2] // @0B95 msg.data[stack[-1]:stack[-1] + stack[-3]] // @0B9F stack[-4] // } 0B91 5B JUMPDEST 0B92 82 DUP3 0B93 81 DUP2 0B94 83 DUP4 0B95 37 CALLDATACOPY 0B96 60 PUSH1 0x00 0B98 83 DUP4 0B99 83 DUP4 0B9A 01 ADD 0B9B 52 MSTORE 0B9C 50 POP 0B9D 50 POP 0B9E 50 POP 0B9F 56 *JUMP // Stack delta = -4 // Outputs[2] // { // @0B95 memory[stack[-2]:stack[-2] + stack[-3]] = msg.data[stack[-1]:stack[-1] + stack[-3]] // @0B9B memory[stack[-2] + stack[-3]:stack[-2] + stack[-3] + 0x20] = 0x00 // } // Block ends with unconditional jump to stack[-4] label_0BA0: // Incoming call from 0x0C06, returns to 0x0C07 // Inputs[1] { @0BA9 stack[-2] } 0BA0 5B JUMPDEST 0BA1 60 PUSH1 0x00 0BA3 61 PUSH2 0x0bb3 0BA6 61 PUSH2 0x0bae 0BA9 84 DUP5 0BAA 61 PUSH2 0x0b60 0BAD 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0BA1 stack[0] = 0x00 // @0BA3 stack[1] = 0x0bb3 // @0BA6 stack[2] = 0x0bae // @0BA9 stack[3] = stack[-2] // } // Block ends with call to 0x0b60, returns to 0x0BAE label_0BAE: // Incoming return from call to 0x0B60 at 0x0BAD 0BAE 5B JUMPDEST 0BAF 61 PUSH2 0x0b45 0BB2 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x0b45 label_0BB3: // Incoming return from call to 0x0BAE at 0x0BAD // Inputs[5] // { // @0BB4 stack[-1] // @0BB4 stack[-2] // @0BB6 stack[-4] // @0BBD stack[-5] // @0BBF stack[-3] // } 0BB3 5B JUMPDEST 0BB4 90 SWAP1 0BB5 50 POP 0BB6 82 DUP3 0BB7 81 DUP2 0BB8 52 MSTORE 0BB9 60 PUSH1 0x20 0BBB 81 DUP2 0BBC 01 ADD 0BBD 84 DUP5 0BBE 84 DUP5 0BBF 84 DUP5 0BC0 01 ADD 0BC1 11 GT 0BC2 15 ISZERO 0BC3 61 PUSH2 0x0bcf 0BC6 57 *JUMPI // Stack delta = +0 // Outputs[3] // { // @0BB4 stack[-2] = stack[-1] // @0BB8 memory[stack[-1]:stack[-1] + 0x20] = stack[-4] // @0BBC stack[-1] = stack[-1] + 0x20 // } // Block ends with conditional jump to 0x0bcf, if !(stack[-3] + stack[-4] > stack[-5]) label_0BC7: // Incoming jump from 0x0BC6, if not !(stack[-3] + stack[-4] > stack[-5]) 0BC7 61 PUSH2 0x0bce 0BCA 61 PUSH2 0x0acf 0BCD 56 *JUMP // Stack delta = +1 // Outputs[1] { @0BC7 stack[0] = 0x0bce } // Block ends with unconditional jump to 0x0acf 0BCE 5B JUMPDEST label_0BCF: // Incoming jump from 0x0BC6, if !(stack[-3] + stack[-4] > stack[-5]) // Inputs[3] // { // @0BD3 stack[-4] // @0BD4 stack[-1] // @0BD5 stack[-3] // } 0BCF 5B JUMPDEST 0BD0 61 PUSH2 0x0bda 0BD3 84 DUP5 0BD4 82 DUP3 0BD5 85 DUP6 0BD6 61 PUSH2 0x0b91 0BD9 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0BD0 stack[0] = 0x0bda // @0BD3 stack[1] = stack[-4] // @0BD4 stack[2] = stack[-1] // @0BD5 stack[3] = stack[-3] // } // Block ends with call to 0x0b91, returns to 0x0BDA label_0BDA: // Incoming return from call to 0x0B91 at 0x0BD9 // Inputs[3] // { // @0BDC stack[-2] // @0BDC stack[-6] // @0BDD stack[-5] // } 0BDA 5B JUMPDEST 0BDB 50 POP 0BDC 93 SWAP4 0BDD 92 SWAP3 0BDE 50 POP 0BDF 50 POP 0BE0 50 POP 0BE1 56 *JUMP // Stack delta = -5 // Outputs[1] { @0BDC stack[-6] = stack[-2] } // Block ends with unconditional jump to stack[-6] label_0BE2: // Incoming call from 0x0C61, returns to 0x0C62 // Inputs[2] // { // @0BE5 stack[-2] // @0BE8 stack[-1] // } 0BE2 5B JUMPDEST 0BE3 60 PUSH1 0x00 0BE5 82 DUP3 0BE6 60 PUSH1 0x1f 0BE8 83 DUP4 0BE9 01 ADD 0BEA 12 SLT 0BEB 61 PUSH2 0x0bf7 0BEE 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0BE3 stack[0] = 0x00 } // Block ends with conditional jump to 0x0bf7, if stack[-1] + 0x1f i< stack[-2] label_0BEF: // Incoming jump from 0x0BEE, if not stack[-1] + 0x1f i< stack[-2] 0BEF 61 PUSH2 0x0bf6 0BF2 61 PUSH2 0x0aca 0BF5 56 *JUMP // Stack delta = +1 // Outputs[1] { @0BEF stack[0] = 0x0bf6 } // Block ends with unconditional jump to 0x0aca 0BF6 5B JUMPDEST label_0BF7: // Incoming jump from 0x0BEE, if stack[-1] + 0x1f i< stack[-2] // Inputs[3] // { // @0BF8 stack[-2] // @0BF9 msg.data[stack[-2]:stack[-2] + 0x20] // @0BFD stack[-3] // } 0BF7 5B JUMPDEST 0BF8 81 DUP2 0BF9 35 CALLDATALOAD 0BFA 61 PUSH2 0x0c07 0BFD 84 DUP5 0BFE 82 DUP3 0BFF 60 PUSH1 0x20 0C01 86 DUP7 0C02 01 ADD 0C03 61 PUSH2 0x0ba0 0C06 56 *JUMP // Stack delta = +5 // Outputs[5] // { // @0BF9 stack[0] = msg.data[stack[-2]:stack[-2] + 0x20] // @0BFA stack[1] = 0x0c07 // @0BFD stack[2] = stack[-3] // @0BFE stack[3] = msg.data[stack[-2]:stack[-2] + 0x20] // @0C02 stack[4] = stack[-2] + 0x20 // } // Block ends with call to 0x0ba0, returns to 0x0C07 label_0C07: // Incoming return from call to 0x0BA0 at 0x0C06 // Inputs[4] // { // @0C08 stack[-3] // @0C08 stack[-1] // @0C0B stack[-6] // @0C0C stack[-5] // } 0C07 5B JUMPDEST 0C08 91 SWAP2 0C09 50 POP 0C0A 50 POP 0C0B 92 SWAP3 0C0C 91 SWAP2 0C0D 50 POP 0C0E 50 POP 0C0F 56 *JUMP // Stack delta = -5 // Outputs[1] { @0C0B stack[-6] = stack[-1] } // Block ends with unconditional jump to stack[-6] label_0C10: // Incoming call from 0x03CE, returns to 0x03CF // Inputs[2] // { // @0C16 stack[-1] // @0C17 stack[-2] // } 0C10 5B JUMPDEST 0C11 60 PUSH1 0x00 0C13 80 DUP1 0C14 60 PUSH1 0x40 0C16 83 DUP4 0C17 85 DUP6 0C18 03 SUB 0C19 12 SLT 0C1A 15 ISZERO 0C1B 61 PUSH2 0x0c27 0C1E 57 *JUMPI // Stack delta = +2 // Outputs[2] // { // @0C11 stack[0] = 0x00 // @0C13 stack[1] = 0x00 // } // Block ends with conditional jump to 0x0c27, if !(stack[-2] - stack[-1] i< 0x40) label_0C1F: // Incoming jump from 0x0C1E, if not !(stack[-2] - stack[-1] i< 0x40) 0C1F 61 PUSH2 0x0c26 0C22 61 PUSH2 0x0a35 0C25 56 *JUMP // Stack delta = +1 // Outputs[1] { @0C1F stack[0] = 0x0c26 } // Block ends with unconditional jump to 0x0a35 0C26 5B JUMPDEST label_0C27: // Incoming jump from 0x0C1E, if !(stack[-2] - stack[-1] i< 0x40) // Inputs[2] // { // @0C2D stack[-4] // @0C2F stack[-3] // } 0C27 5B JUMPDEST 0C28 60 PUSH1 0x00 0C2A 61 PUSH2 0x0c35 0C2D 85 DUP6 0C2E 82 DUP3 0C2F 86 DUP7 0C30 01 ADD 0C31 61 PUSH2 0x0a88 0C34 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0C28 stack[0] = 0x00 // @0C2A stack[1] = 0x0c35 // @0C2D stack[2] = stack[-4] // @0C30 stack[3] = stack[-3] + 0x00 // } // Block ends with call to 0x0a88, returns to 0x0C35 label_0C35: // Incoming return from call to 0x0A88 at 0x0C34 // Inputs[4] // { // @0C36 stack[-1] // @0C36 stack[-4] // @0C3B stack[-5] // @0C3D msg.data[stack[-5] + 0x20:stack[-5] + 0x20 + 0x20] // } 0C35 5B JUMPDEST 0C36 92 SWAP3 0C37 50 POP 0C38 50 POP 0C39 60 PUSH1 0x20 0C3B 83 DUP4 0C3C 01 ADD 0C3D 35 CALLDATALOAD 0C3E 67 PUSH8 0xffffffffffffffff 0C47 81 DUP2 0C48 11 GT 0C49 15 ISZERO 0C4A 61 PUSH2 0x0c56 0C4D 57 *JUMPI // Stack delta = -1 // Outputs[2] // { // @0C36 stack[-4] = stack[-1] // @0C3D stack[-2] = msg.data[stack[-5] + 0x20:stack[-5] + 0x20 + 0x20] // } // Block ends with conditional jump to 0x0c56, if !(msg.data[stack[-5] + 0x20:stack[-5] + 0x20 + 0x20] > 0xffffffffffffffff) label_0C4E: // Incoming jump from 0x0C4D, if not !(msg.data[stack[-5] + 0x20:stack[-5] + 0x20 + 0x20] > 0xffffffffffffffff) 0C4E 61 PUSH2 0x0c55 0C51 61 PUSH2 0x0a3a 0C54 56 *JUMP // Stack delta = +1 // Outputs[1] { @0C4E stack[0] = 0x0c55 } // Block ends with unconditional jump to 0x0a3a 0C55 5B JUMPDEST label_0C56: // Incoming jump from 0x0C4D, if !(msg.data[stack[-5] + 0x20:stack[-5] + 0x20 + 0x20] > 0xffffffffffffffff) // Inputs[3] // { // @0C5A stack[-5] // @0C5B stack[-1] // @0C5C stack[-4] // } 0C56 5B JUMPDEST 0C57 61 PUSH2 0x0c62 0C5A 85 DUP6 0C5B 82 DUP3 0C5C 86 DUP7 0C5D 01 ADD 0C5E 61 PUSH2 0x0be2 0C61 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0C57 stack[0] = 0x0c62 // @0C5A stack[1] = stack[-5] // @0C5D stack[2] = stack[-4] + stack[-1] // } // Block ends with call to 0x0be2, returns to 0x0C62 label_0C62: // Incoming return from call to 0x0BE2 at 0x0C61 // Inputs[6] // { // @0C63 stack[-1] // @0C63 stack[-3] // @0C66 stack[-6] // @0C68 stack[-7] // @0C68 stack[-4] // @0C69 stack[-5] // } 0C62 5B JUMPDEST 0C63 91 SWAP2 0C64 50 POP 0C65 50 POP 0C66 92 SWAP3 0C67 50 POP 0C68 92 SWAP3 0C69 90 SWAP1 0C6A 50 POP 0C6B 56 *JUMP // Stack delta = -5 // Outputs[2] // { // @0C66 stack[-6] = stack[-1] // @0C68 stack[-7] = stack[-4] // } // Block ends with unconditional jump to stack[-7] label_0C6C: // Incoming call from 0x0C86, returns to 0x0C87 // Inputs[1] { @0C72 stack[-1] } 0C6C 5B JUMPDEST 0C6D 60 PUSH1 0x00 0C6F 61 PUSH2 0x0c77 0C72 82 DUP3 0C73 61 PUSH2 0x0a3f 0C76 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0C6D stack[0] = 0x00 // @0C6F stack[1] = 0x0c77 // @0C72 stack[2] = stack[-1] // } // Block ends with call to 0x0a3f, returns to 0x0C77 label_0C77: // Incoming return from call to 0x0A3F at 0x0C76 // Inputs[4] // { // @0C78 stack[-2] // @0C78 stack[-1] // @0C7A stack[-4] // @0C7B stack[-3] // } 0C77 5B JUMPDEST 0C78 90 SWAP1 0C79 50 POP 0C7A 91 SWAP2 0C7B 90 SWAP1 0C7C 50 POP 0C7D 56 *JUMP // Stack delta = -3 // Outputs[1] { @0C7A stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0C7E: // Incoming call from 0x0D44, returns to 0x0D45 // Incoming call from 0x0D51, returns to 0x0D52 // Incoming call from 0x0CA1, returns to 0x0CA2 // Inputs[1] { @0C82 stack[-1] } 0C7E 5B JUMPDEST 0C7F 61 PUSH2 0x0c87 0C82 81 DUP2 0C83 61 PUSH2 0x0c6c 0C86 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0C7F stack[0] = 0x0c87 // @0C82 stack[1] = stack[-1] // } // Block ends with call to 0x0c6c, returns to 0x0C87 label_0C87: // Incoming return from call to 0x0C6C at 0x0C86 // Inputs[3] // { // @0C88 stack[-3] // @0C89 stack[-1] // @0C8C stack[-4] // } 0C87 5B JUMPDEST 0C88 82 DUP3 0C89 52 MSTORE 0C8A 50 POP 0C8B 50 POP 0C8C 56 *JUMP // Stack delta = -4 // Outputs[1] { @0C89 memory[stack[-3]:stack[-3] + 0x20] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0C8D: // Incoming call from 0x04A5, returns to 0x04A6 // Incoming call from 0x0469, returns to 0x046A // Inputs[2] // { // @0C92 stack[-1] // @0C9D stack[-2] // } 0C8D 5B JUMPDEST 0C8E 60 PUSH1 0x00 0C90 60 PUSH1 0x20 0C92 82 DUP3 0C93 01 ADD 0C94 90 SWAP1 0C95 50 POP 0C96 61 PUSH2 0x0ca2 0C99 60 PUSH1 0x00 0C9B 83 DUP4 0C9C 01 ADD 0C9D 84 DUP5 0C9E 61 PUSH2 0x0c7e 0CA1 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0C94 stack[0] = stack[-1] + 0x20 // @0C96 stack[1] = 0x0ca2 // @0C9C stack[2] = stack[-1] + 0x00 // @0C9D stack[3] = stack[-2] // } // Block ends with call to 0x0c7e, returns to 0x0CA2 label_0CA2: // Incoming return from call to 0x0C7E at 0x0CA1 // Inputs[3] // { // @0CA3 stack[-4] // @0CA3 stack[-1] // @0CA4 stack[-3] // } 0CA2 5B JUMPDEST 0CA3 92 SWAP3 0CA4 91 SWAP2 0CA5 50 POP 0CA6 50 POP 0CA7 56 *JUMP // Stack delta = -3 // Outputs[1] { @0CA3 stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0CA8: // Incoming call from 0x0CF2, returns to 0x0CF3 // Inputs[3] // { // @0CAB stack[-1] // @0CAC memory[stack[-1]:stack[-1] + 0x20] // @0CAF stack[-2] // } 0CA8 5B JUMPDEST 0CA9 60 PUSH1 0x00 0CAB 81 DUP2 0CAC 51 MLOAD 0CAD 90 SWAP1 0CAE 50 POP 0CAF 91 SWAP2 0CB0 90 SWAP1 0CB1 50 POP 0CB2 56 *JUMP // Stack delta = -1 // Outputs[1] { @0CAF stack[-2] = memory[stack[-1]:stack[-1] + 0x20] } // Block ends with unconditional jump to stack[-2] label_0CB3: // Incoming call from 0x0CFC, returns to 0x0CFD // Inputs[3] // { // @0CB6 stack[-1] // @0CB9 stack[-3] // @0CBA stack[-2] // } 0CB3 5B JUMPDEST 0CB4 60 PUSH1 0x00 0CB6 81 DUP2 0CB7 90 SWAP1 0CB8 50 POP 0CB9 92 SWAP3 0CBA 91 SWAP2 0CBB 50 POP 0CBC 50 POP 0CBD 56 *JUMP // Stack delta = -2 // Outputs[1] { @0CB9 stack[-3] = stack[-1] } // Block ends with unconditional jump to stack[-3] label_0CBE: // Incoming call from 0x0D0C, returns to 0x0D0D // Incoming call from 0x0E86, returns to 0x0E87 // Inputs[1] { @0CC2 stack[-3] } 0CBE 5B JUMPDEST 0CBF 60 PUSH1 0x00 0CC1 5B JUMPDEST 0CC2 83 DUP4 0CC3 81 DUP2 0CC4 10 LT 0CC5 15 ISZERO 0CC6 61 PUSH2 0x0cdc 0CC9 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0CBF stack[0] = 0x00 } // Block ends with conditional jump to 0x0cdc, if !(0x00 < stack[-3]) label_0CCA: // Incoming jump from 0x0CC9, if not !(stack[-1] < stack[-4]) // Incoming jump from 0x0CC9, if not !(0x00 < stack[-3]) // Inputs[4] // { // @0CCA stack[-1] // @0CCB stack[-2] // @0CCD memory[stack[-2] + stack[-1]:stack[-2] + stack[-1] + 0x20] // @0CCF stack[-3] // } 0CCA 80 DUP1 0CCB 82 DUP3 0CCC 01 ADD 0CCD 51 MLOAD 0CCE 81 DUP2 0CCF 84 DUP5 0CD0 01 ADD 0CD1 52 MSTORE 0CD2 60 PUSH1 0x20 0CD4 81 DUP2 0CD5 01 ADD 0CD6 90 SWAP1 0CD7 50 POP 0CD8 61 PUSH2 0x0cc1 0CDB 56 *JUMP // Stack delta = +0 // Outputs[2] // { // @0CD1 memory[stack[-3] + stack[-1]:stack[-3] + stack[-1] + 0x20] = memory[stack[-2] + stack[-1]:stack[-2] + stack[-1] + 0x20] // @0CD6 stack[-1] = stack[-1] + 0x20 // } // Block ends with unconditional jump to 0x0cc1 label_0CDC: // Incoming jump from 0x0CC9, if !(stack[-1] < stack[-4]) // Incoming jump from 0x0CC9, if !(0x00 < stack[-3]) // Inputs[3] // { // @0CDF stack[-4] // @0CE0 stack[-3] // @0CE7 stack[-5] // } 0CDC 5B JUMPDEST 0CDD 60 PUSH1 0x00 0CDF 84 DUP5 0CE0 84 DUP5 0CE1 01 ADD 0CE2 52 MSTORE 0CE3 50 POP 0CE4 50 POP 0CE5 50 POP 0CE6 50 POP 0CE7 56 *JUMP // Stack delta = -5 // Outputs[1] { @0CE2 memory[stack[-3] + stack[-4]:stack[-3] + stack[-4] + 0x20] = 0x00 } // Block ends with unconditional jump to stack[-5] label_0CE8: // Incoming call from 0x0D24, returns to 0x0D25 // Inputs[1] { @0CEE stack[-1] } 0CE8 5B JUMPDEST 0CE9 60 PUSH1 0x00 0CEB 61 PUSH2 0x0cf3 0CEE 82 DUP3 0CEF 61 PUSH2 0x0ca8 0CF2 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0CE9 stack[0] = 0x00 // @0CEB stack[1] = 0x0cf3 // @0CEE stack[2] = stack[-1] // } // Block ends with call to 0x0ca8, returns to 0x0CF3 label_0CF3: // Incoming return from call to 0x0CA8 at 0x0CF2 // Inputs[2] // { // @0CF7 stack[-1] // @0CF8 stack[-4] // } 0CF3 5B JUMPDEST 0CF4 61 PUSH2 0x0cfd 0CF7 81 DUP2 0CF8 85 DUP6 0CF9 61 PUSH2 0x0cb3 0CFC 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0CF4 stack[0] = 0x0cfd // @0CF7 stack[1] = stack[-1] // @0CF8 stack[2] = stack[-4] // } // Block ends with call to 0x0cb3, returns to 0x0CFD label_0CFD: // Incoming return from call to 0x0CB3 at 0x0CFC // Inputs[4] // { // @0CFE stack[-5] // @0CFE stack[-1] // @0D03 stack[-2] // @0D07 stack[-4] // } 0CFD 5B JUMPDEST 0CFE 93 SWAP4 0CFF 50 POP 0D00 61 PUSH2 0x0d0d 0D03 81 DUP2 0D04 85 DUP6 0D05 60 PUSH1 0x20 0D07 86 DUP7 0D08 01 ADD 0D09 61 PUSH2 0x0cbe 0D0C 56 *JUMP // Stack delta = +3 // Outputs[5] // { // @0CFE stack[-5] = stack[-1] // @0D00 stack[-1] = 0x0d0d // @0D03 stack[0] = stack[-2] // @0D04 stack[1] = stack[-1] // @0D08 stack[2] = stack[-4] + 0x20 // } // Block ends with call to 0x0cbe, returns to 0x0D0D label_0D0D: // Incoming return from call to 0x0CBE at 0x0D0C // Inputs[4] // { // @0D0E stack[-1] // @0D0F stack[-4] // @0D11 stack[-2] // @0D14 stack[-5] // } 0D0D 5B JUMPDEST 0D0E 80 DUP1 0D0F 84 DUP5 0D10 01 ADD 0D11 91 SWAP2 0D12 50 POP 0D13 50 POP 0D14 92 SWAP3 0D15 91 SWAP2 0D16 50 POP 0D17 50 POP 0D18 56 *JUMP // Stack delta = -4 // Outputs[1] { @0D14 stack[-5] = stack[-4] + stack[-1] } // Block ends with unconditional jump to stack[-5] label_0D19: // Incoming call from 0x04FE, returns to 0x04FF // Inputs[2] // { // @0D1F stack[-1] // @0D20 stack[-2] // } 0D19 5B JUMPDEST 0D1A 60 PUSH1 0x00 0D1C 61 PUSH2 0x0d25 0D1F 82 DUP3 0D20 84 DUP5 0D21 61 PUSH2 0x0ce8 0D24 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0D1A stack[0] = 0x00 // @0D1C stack[1] = 0x0d25 // @0D1F stack[2] = stack[-1] // @0D20 stack[3] = stack[-2] // } // Block ends with call to 0x0ce8, returns to 0x0D25 label_0D25: // Incoming return from call to 0x0CE8 at 0x0D24 // Inputs[5] // { // @0D26 stack[-1] // @0D26 stack[-3] // @0D29 stack[-2] // @0D2B stack[-5] // @0D2C stack[-4] // } 0D25 5B JUMPDEST 0D26 91 SWAP2 0D27 50 POP 0D28 81 DUP2 0D29 90 SWAP1 0D2A 50 POP 0D2B 92 SWAP3 0D2C 91 SWAP2 0D2D 50 POP 0D2E 50 POP 0D2F 56 *JUMP // Stack delta = -4 // Outputs[1] { @0D2B stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] label_0D30: // Incoming call from 0x05CD, returns to 0x05CE // Inputs[2] // { // @0D35 stack[-1] // @0D40 stack[-3] // } 0D30 5B JUMPDEST 0D31 60 PUSH1 0x00 0D33 60 PUSH1 0x40 0D35 82 DUP3 0D36 01 ADD 0D37 90 SWAP1 0D38 50 POP 0D39 61 PUSH2 0x0d45 0D3C 60 PUSH1 0x00 0D3E 83 DUP4 0D3F 01 ADD 0D40 85 DUP6 0D41 61 PUSH2 0x0c7e 0D44 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0D37 stack[0] = stack[-1] + 0x40 // @0D39 stack[1] = 0x0d45 // @0D3F stack[2] = stack[-1] + 0x00 // @0D40 stack[3] = stack[-3] // } // Block ends with call to 0x0c7e, returns to 0x0D45 label_0D45: // Incoming return from call to 0x0C7E at 0x0D44 // Inputs[2] // { // @0D4B stack[-2] // @0D4D stack[-3] // } 0D45 5B JUMPDEST 0D46 61 PUSH2 0x0d52 0D49 60 PUSH1 0x20 0D4B 83 DUP4 0D4C 01 ADD 0D4D 84 DUP5 0D4E 61 PUSH2 0x0c7e 0D51 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0D46 stack[0] = 0x0d52 // @0D4C stack[1] = stack[-2] + 0x20 // @0D4D stack[2] = stack[-3] // } // Block ends with call to 0x0c7e, returns to 0x0D52 label_0D52: // Incoming return from call to 0x0C7E at 0x0D51 // Inputs[3] // { // @0D53 stack[-5] // @0D53 stack[-1] // @0D54 stack[-4] // } 0D52 5B JUMPDEST 0D53 93 SWAP4 0D54 92 SWAP3 0D55 50 POP 0D56 50 POP 0D57 50 POP 0D58 56 *JUMP // Stack delta = -4 // Outputs[1] { @0D53 stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] label_0D59: // Incoming call from 0x0D99, returns to 0x0D9A // Inputs[2] // { // @0D7D stack[-1] // @0D81 stack[-2] // } 0D59 5B JUMPDEST 0D5A 7F PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0D7B 60 PUSH1 0x00 0D7D 82 DUP3 0D7E 01 ADD 0D7F 52 MSTORE 0D80 50 POP 0D81 56 *JUMP // Stack delta = -2 // Outputs[1] { @0D7F memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 } // Block ends with unconditional jump to stack[-2] label_0D82: // Incoming call from 0x0DBD, returns to 0x0DBE // Inputs[1] { @0D8A stack[-1] } 0D82 5B JUMPDEST 0D83 60 PUSH1 0x00 0D85 61 PUSH2 0x0d8f 0D88 60 PUSH1 0x1d 0D8A 83 DUP4 0D8B 61 PUSH2 0x091d 0D8E 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0D83 stack[0] = 0x00 // @0D85 stack[1] = 0x0d8f // @0D88 stack[2] = 0x1d // @0D8A stack[3] = stack[-1] // } // Block ends with call to 0x091d, returns to 0x0D8F label_0D8F: // Incoming return from call to 0x091D at 0x0D8E // Inputs[2] // { // @0D90 stack[-3] // @0D90 stack[-1] // } 0D8F 5B JUMPDEST 0D90 91 SWAP2 0D91 50 POP 0D92 61 PUSH2 0x0d9a 0D95 82 DUP3 0D96 61 PUSH2 0x0d59 0D99 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @0D90 stack[-3] = stack[-1] // @0D92 stack[-1] = 0x0d9a // @0D95 stack[0] = stack[-1] // } // Block ends with call to 0x0d59, returns to 0x0D9A label_0D9A: // Incoming return from call to 0x0D59 at 0x0D99 // Inputs[3] // { // @0D9D stack[-2] // @0D9F stack[-1] // @0DA1 stack[-3] // } 0D9A 5B JUMPDEST 0D9B 60 PUSH1 0x20 0D9D 82 DUP3 0D9E 01 ADD 0D9F 90 SWAP1 0DA0 50 POP 0DA1 91 SWAP2 0DA2 90 SWAP1 0DA3 50 POP 0DA4 56 *JUMP // Stack delta = -2 // Outputs[1] { @0DA1 stack[-3] = stack[-2] + 0x20 } // Block ends with unconditional jump to stack[-3] label_0DA5: // Incoming call from 0x0668, returns to 0x0669 // Inputs[1] { @0DAA stack[-1] } 0DA5 5B JUMPDEST 0DA6 60 PUSH1 0x00 0DA8 60 PUSH1 0x20 0DAA 82 DUP3 0DAB 01 ADD 0DAC 90 SWAP1 0DAD 50 POP 0DAE 81 DUP2 0DAF 81 DUP2 0DB0 03 SUB 0DB1 60 PUSH1 0x00 0DB3 83 DUP4 0DB4 01 ADD 0DB5 52 MSTORE 0DB6 61 PUSH2 0x0dbe 0DB9 81 DUP2 0DBA 61 PUSH2 0x0d82 0DBD 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @0DAC stack[0] = stack[-1] + 0x20 // @0DB5 memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = (stack[-1] + 0x20) - stack[-1] // @0DB6 stack[1] = 0x0dbe // @0DB9 stack[2] = stack[-1] + 0x20 // } // Block ends with call to 0x0d82, returns to 0x0DBE label_0DBE: // Incoming return from call to 0x0D82 at 0x0DBD // Inputs[4] // { // @0DBF stack[-1] // @0DBF stack[-2] // @0DC1 stack[-4] // @0DC2 stack[-3] // } 0DBE 5B JUMPDEST 0DBF 90 SWAP1 0DC0 50 POP 0DC1 91 SWAP2 0DC2 90 SWAP1 0DC3 50 POP 0DC4 56 *JUMP // Stack delta = -3 // Outputs[1] { @0DC1 stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0DC5: // Incoming call from 0x0E2B, returns to 0x0E2C // Inputs[2] // { // @0DE9 stack[-1] // @0E13 stack[-2] // } 0DC5 5B JUMPDEST 0DC6 7F PUSH32 0x455243313936373a206e65772061646d696e20697320746865207a65726f2061 0DE7 60 PUSH1 0x00 0DE9 82 DUP3 0DEA 01 ADD 0DEB 52 MSTORE 0DEC 7F PUSH32 0x6464726573730000000000000000000000000000000000000000000000000000 0E0D 60 PUSH1 0x20 0E0F 82 DUP3 0E10 01 ADD 0E11 52 MSTORE 0E12 50 POP 0E13 56 *JUMP // Stack delta = -2 // Outputs[2] // { // @0DEB memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = 0x455243313936373a206e65772061646d696e20697320746865207a65726f2061 // @0E11 memory[stack[-1] + 0x20:stack[-1] + 0x20 + 0x20] = 0x6464726573730000000000000000000000000000000000000000000000000000 // } // Block ends with unconditional jump to stack[-2] label_0E14: // Incoming call from 0x0E4F, returns to 0x0E50 // Inputs[1] { @0E1C stack[-1] } 0E14 5B JUMPDEST 0E15 60 PUSH1 0x00 0E17 61 PUSH2 0x0e21 0E1A 60 PUSH1 0x26 0E1C 83 DUP4 0E1D 61 PUSH2 0x091d 0E20 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0E15 stack[0] = 0x00 // @0E17 stack[1] = 0x0e21 // @0E1A stack[2] = 0x26 // @0E1C stack[3] = stack[-1] // } // Block ends with call to 0x091d, returns to 0x0E21 label_0E21: // Incoming return from call to 0x091D at 0x0E20 // Inputs[2] // { // @0E22 stack[-1] // @0E22 stack[-3] // } 0E21 5B JUMPDEST 0E22 91 SWAP2 0E23 50 POP 0E24 61 PUSH2 0x0e2c 0E27 82 DUP3 0E28 61 PUSH2 0x0dc5 0E2B 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @0E22 stack[-3] = stack[-1] // @0E24 stack[-1] = 0x0e2c // @0E27 stack[0] = stack[-1] // } // Block ends with call to 0x0dc5, returns to 0x0E2C label_0E2C: // Incoming return from call to 0x0DC5 at 0x0E2B // Inputs[3] // { // @0E2F stack[-2] // @0E31 stack[-1] // @0E33 stack[-3] // } 0E2C 5B JUMPDEST 0E2D 60 PUSH1 0x40 0E2F 82 DUP3 0E30 01 ADD 0E31 90 SWAP1 0E32 50 POP 0E33 91 SWAP2 0E34 90 SWAP1 0E35 50 POP 0E36 56 *JUMP // Stack delta = -2 // Outputs[1] { @0E33 stack[-3] = stack[-2] + 0x40 } // Block ends with unconditional jump to stack[-3] label_0E37: // Incoming call from 0x0742, returns to 0x0743 // Inputs[1] { @0E3C stack[-1] } 0E37 5B JUMPDEST 0E38 60 PUSH1 0x00 0E3A 60 PUSH1 0x20 0E3C 82 DUP3 0E3D 01 ADD 0E3E 90 SWAP1 0E3F 50 POP 0E40 81 DUP2 0E41 81 DUP2 0E42 03 SUB 0E43 60 PUSH1 0x00 0E45 83 DUP4 0E46 01 ADD 0E47 52 MSTORE 0E48 61 PUSH2 0x0e50 0E4B 81 DUP2 0E4C 61 PUSH2 0x0e14 0E4F 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @0E3E stack[0] = stack[-1] + 0x20 // @0E47 memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = (stack[-1] + 0x20) - stack[-1] // @0E48 stack[1] = 0x0e50 // @0E4B stack[2] = stack[-1] + 0x20 // } // Block ends with call to 0x0e14, returns to 0x0E50 label_0E50: // Incoming return from call to 0x0E14 at 0x0E4F // Inputs[4] // { // @0E51 stack[-2] // @0E51 stack[-1] // @0E53 stack[-4] // @0E54 stack[-3] // } 0E50 5B JUMPDEST 0E51 90 SWAP1 0E52 50 POP 0E53 91 SWAP2 0E54 90 SWAP1 0E55 50 POP 0E56 56 *JUMP // Stack delta = -3 // Outputs[1] { @0E53 stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] label_0E57: // Incoming call from 0x0E6C, returns to 0x0E6D // Inputs[3] // { // @0E5A stack[-1] // @0E5B memory[stack[-1]:stack[-1] + 0x20] // @0E5E stack[-2] // } 0E57 5B JUMPDEST 0E58 60 PUSH1 0x00 0E5A 81 DUP2 0E5B 51 MLOAD 0E5C 90 SWAP1 0E5D 50 POP 0E5E 91 SWAP2 0E5F 90 SWAP1 0E60 50 POP 0E61 56 *JUMP // Stack delta = -1 // Outputs[1] { @0E5E stack[-2] = memory[stack[-1]:stack[-1] + 0x20] } // Block ends with unconditional jump to stack[-2] label_0E62: // Incoming call from 0x0EB4, returns to 0x0EB5 // Inputs[1] { @0E68 stack[-1] } 0E62 5B JUMPDEST 0E63 60 PUSH1 0x00 0E65 61 PUSH2 0x0e6d 0E68 82 DUP3 0E69 61 PUSH2 0x0e57 0E6C 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0E63 stack[0] = 0x00 // @0E65 stack[1] = 0x0e6d // @0E68 stack[2] = stack[-1] // } // Block ends with call to 0x0e57, returns to 0x0E6D label_0E6D: // Incoming return from call to 0x0E57 at 0x0E6C // Inputs[2] // { // @0E71 stack[-1] // @0E72 stack[-4] // } 0E6D 5B JUMPDEST 0E6E 61 PUSH2 0x0e77 0E71 81 DUP2 0E72 85 DUP6 0E73 61 PUSH2 0x091d 0E76 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0E6E stack[0] = 0x0e77 // @0E71 stack[1] = stack[-1] // @0E72 stack[2] = stack[-4] // } // Block ends with call to 0x091d, returns to 0x0E77 label_0E77: // Incoming return from call to 0x091D at 0x0E76 // Inputs[4] // { // @0E78 stack[-1] // @0E78 stack[-5] // @0E7D stack[-2] // @0E81 stack[-4] // } 0E77 5B JUMPDEST 0E78 93 SWAP4 0E79 50 POP 0E7A 61 PUSH2 0x0e87 0E7D 81 DUP2 0E7E 85 DUP6 0E7F 60 PUSH1 0x20 0E81 86 DUP7 0E82 01 ADD 0E83 61 PUSH2 0x0cbe 0E86 56 *JUMP // Stack delta = +3 // Outputs[5] // { // @0E78 stack[-5] = stack[-1] // @0E7A stack[-1] = 0x0e87 // @0E7D stack[0] = stack[-2] // @0E7E stack[1] = stack[-1] // @0E82 stack[2] = stack[-4] + 0x20 // } // Block ends with call to 0x0cbe, returns to 0x0E87 label_0E87: // Incoming return from call to 0x0CBE at 0x0E86 // Inputs[1] { @0E8B stack[-1] } 0E87 5B JUMPDEST 0E88 61 PUSH2 0x0e90 0E8B 81 DUP2 0E8C 61 PUSH2 0x0ad4 0E8F 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0E88 stack[0] = 0x0e90 // @0E8B stack[1] = stack[-1] // } // Block ends with call to 0x0ad4, returns to 0x0E90 label_0E90: // Incoming return from call to 0x0AD4 at 0x0E8F // Inputs[4] // { // @0E91 stack[-5] // @0E92 stack[-1] // @0E93 stack[-3] // @0E96 stack[-6] // } 0E90 5B JUMPDEST 0E91 84 DUP5 0E92 01 ADD 0E93 91 SWAP2 0E94 50 POP 0E95 50 POP 0E96 92 SWAP3 0E97 91 SWAP2 0E98 50 POP 0E99 50 POP 0E9A 56 *JUMP // Stack delta = -5 // Outputs[1] { @0E96 stack[-6] = stack[-5] + stack[-1] } // Block ends with unconditional jump to stack[-6] label_0E9B: // Incoming call from 0x085A, returns to 0x085B // Inputs[2] // { // @0EA0 stack[-1] // @0EB0 stack[-2] // } 0E9B 5B JUMPDEST 0E9C 60 PUSH1 0x00 0E9E 60 PUSH1 0x20 0EA0 82 DUP3 0EA1 01 ADD 0EA2 90 SWAP1 0EA3 50 POP 0EA4 81 DUP2 0EA5 81 DUP2 0EA6 03 SUB 0EA7 60 PUSH1 0x00 0EA9 83 DUP4 0EAA 01 ADD 0EAB 52 MSTORE 0EAC 61 PUSH2 0x0eb5 0EAF 81 DUP2 0EB0 84 DUP5 0EB1 61 PUSH2 0x0e62 0EB4 56 *JUMP // Stack delta = +4 // Outputs[5] // { // @0EA2 stack[0] = stack[-1] + 0x20 // @0EAB memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = (stack[-1] + 0x20) - stack[-1] // @0EAC stack[1] = 0x0eb5 // @0EAF stack[2] = stack[-1] + 0x20 // @0EB0 stack[3] = stack[-2] // } // Block ends with call to 0x0e62, returns to 0x0EB5 label_0EB5: // Incoming return from call to 0x0E62 at 0x0EB4 // Inputs[4] // { // @0EB6 stack[-1] // @0EB6 stack[-2] // @0EB8 stack[-5] // @0EB9 stack[-4] // } 0EB5 5B JUMPDEST 0EB6 90 SWAP1 0EB7 50 POP 0EB8 92 SWAP3 0EB9 91 SWAP2 0EBA 50 POP 0EBB 50 POP 0EBC 56 *JUMP // Stack delta = -4 // Outputs[1] { @0EB8 stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] label_0EBD: // Incoming call from 0x0F23, returns to 0x0F24 // Inputs[2] // { // @0EE1 stack[-1] // @0F0B stack[-2] // } 0EBD 5B JUMPDEST 0EBE 7F PUSH32 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e 0EDF 60 PUSH1 0x00 0EE1 82 DUP3 0EE2 01 ADD 0EE3 52 MSTORE 0EE4 7F PUSH32 0x6f74206120636f6e747261637400000000000000000000000000000000000000 0F05 60 PUSH1 0x20 0F07 82 DUP3 0F08 01 ADD 0F09 52 MSTORE 0F0A 50 POP 0F0B 56 *JUMP // Stack delta = -2 // Outputs[2] // { // @0EE3 memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = 0x455243313936373a206e657720696d706c656d656e746174696f6e206973206e // @0F09 memory[stack[-1] + 0x20:stack[-1] + 0x20 + 0x20] = 0x6f74206120636f6e747261637400000000000000000000000000000000000000 // } // Block ends with unconditional jump to stack[-2] label_0F0C: // Incoming call from 0x0F47, returns to 0x0F48 // Inputs[1] { @0F14 stack[-1] } 0F0C 5B JUMPDEST 0F0D 60 PUSH1 0x00 0F0F 61 PUSH2 0x0f19 0F12 60 PUSH1 0x2d 0F14 83 DUP4 0F15 61 PUSH2 0x091d 0F18 56 *JUMP // Stack delta = +4 // Outputs[4] // { // @0F0D stack[0] = 0x00 // @0F0F stack[1] = 0x0f19 // @0F12 stack[2] = 0x2d // @0F14 stack[3] = stack[-1] // } // Block ends with call to 0x091d, returns to 0x0F19 label_0F19: // Incoming return from call to 0x091D at 0x0F18 // Inputs[2] // { // @0F1A stack[-1] // @0F1A stack[-3] // } 0F19 5B JUMPDEST 0F1A 91 SWAP2 0F1B 50 POP 0F1C 61 PUSH2 0x0f24 0F1F 82 DUP3 0F20 61 PUSH2 0x0ebd 0F23 56 *JUMP // Stack delta = +1 // Outputs[3] // { // @0F1A stack[-3] = stack[-1] // @0F1C stack[-1] = 0x0f24 // @0F1F stack[0] = stack[-1] // } // Block ends with call to 0x0ebd, returns to 0x0F24 label_0F24: // Incoming return from call to 0x0EBD at 0x0F23 // Inputs[3] // { // @0F27 stack[-2] // @0F29 stack[-1] // @0F2B stack[-3] // } 0F24 5B JUMPDEST 0F25 60 PUSH1 0x40 0F27 82 DUP3 0F28 01 ADD 0F29 90 SWAP1 0F2A 50 POP 0F2B 91 SWAP2 0F2C 90 SWAP1 0F2D 50 POP 0F2E 56 *JUMP // Stack delta = -2 // Outputs[1] { @0F2B stack[-3] = stack[-2] + 0x40 } // Block ends with unconditional jump to stack[-3] label_0F2F: // Incoming call from 0x08A2, returns to 0x08A3 // Inputs[1] { @0F34 stack[-1] } 0F2F 5B JUMPDEST 0F30 60 PUSH1 0x00 0F32 60 PUSH1 0x20 0F34 82 DUP3 0F35 01 ADD 0F36 90 SWAP1 0F37 50 POP 0F38 81 DUP2 0F39 81 DUP2 0F3A 03 SUB 0F3B 60 PUSH1 0x00 0F3D 83 DUP4 0F3E 01 ADD 0F3F 52 MSTORE 0F40 61 PUSH2 0x0f48 0F43 81 DUP2 0F44 61 PUSH2 0x0f0c 0F47 56 *JUMP // Stack delta = +3 // Outputs[4] // { // @0F36 stack[0] = stack[-1] + 0x20 // @0F3F memory[stack[-1] + 0x00:stack[-1] + 0x00 + 0x20] = (stack[-1] + 0x20) - stack[-1] // @0F40 stack[1] = 0x0f48 // @0F43 stack[2] = stack[-1] + 0x20 // } // Block ends with call to 0x0f0c, returns to 0x0F48 label_0F48: // Incoming return from call to 0x0F0C at 0x0F47 // Inputs[4] // { // @0F49 stack[-1] // @0F49 stack[-2] // @0F4B stack[-4] // @0F4C stack[-3] // } 0F48 5B JUMPDEST 0F49 90 SWAP1 0F4A 50 POP 0F4B 91 SWAP2 0F4C 90 SWAP1 0F4D 50 POP 0F4E 56 *JUMP // Stack delta = -3 // Outputs[1] { @0F4B stack[-4] = stack[-1] } // Block ends with unconditional jump to stack[-4] 0F4F FE *ASSERT 0F50 41 COINBASE 0F51 64 PUSH5 0x6472657373 0F57 3A GASPRICE 0F58 20 SHA3 0F59 6C PUSH13 0x6f772d6c6576656c2064656c65 0F67 67 PUSH8 0x6174652063616c6c 0F70 20 SHA3 0F71 66 PUSH7 0x61696c6564a264 0F79 69 PUSH10 0x706673582212201dfdf1 0F84 B6 B6 0F85 88 DUP9 0F86 1F 1F 0F87 67 PUSH8 0xea42bcc0a7957649 0F90 B0 PUSH 0F91 28 28 0F92 A5 A5 0F93 E8 E8 0F94 91 SWAP2 0F95 BE BE 0F96 D1 D1 0F97 CC CC 0F98 B5 B5 0F99 BB BB 0F9A BD BD 0F9B FF *SELFDESTRUCT 0F9C 54 SLOAD 0F9D 1E 1E 0F9E 24 24 0F9F 83 DUP4 0FA0 3D RETURNDATASIZE 0FA1 64 PUSH5 0x736f6c6343 0FA7 00 *STOP 0FA8 08 ADDMOD 0FA9 12 SLT 0FAA 00 *STOP 0FAB 33 CALLER
Found this site useful?
Donations are greatly appreciated!
ETH: 0xB3F04f0c276fa1177c1779f6E1E156B2738ea392
Contact/hire: [email protected]