contract Contract { function main() { memory[0x40:0x60] = 0x80; var var0 = msg.value; if (var0) { revert(memory[0x00:0x00]); } if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); } var0 = msg.data[0x00:0x20] >> 0xe0; if (var0 == 0x95d89b41) { // Dispatch table entry for symbol() var var1 = 0x0059; var1 = func_00B3(); var temp0 = var1; var1 = 0x0066; var var2 = temp0; var var3 = memory[0x40:0x60]; var1 = func_0A33(var2, var3); var temp1 = memory[0x40:0x60]; return memory[temp1:temp1 + var1 - temp1]; } else if (var0 == 0xb8e010de) { // Dispatch table entry for set() var1 = 0x0077; set(); stop(); } else if (var0 == 0xd48e983d) { // Dispatch table entry for 0xd48e983d (unknown) var1 = 0x0093; var2 = 0x008e; var3 = msg.data.length - 0x04 + 0x04; var var4 = 0x04; var2 = func_0712(var3, var4); func_008E(var2); stop(); } else if (var0 == 0xfc0c546a) { // Dispatch table entry for token() var1 = 0x009d; var2 = func_02C3(); var temp2 = var2; var2 = 0x00aa; var3 = temp2; var4 = memory[0x40:0x60]; var2 = func_0996(var3, var4); var temp3 = memory[0x40:0x60]; return memory[temp3:temp3 + var2 - temp3]; } else { revert(memory[0x00:0x00]); } } function func_008E(var arg0) { var var0 = 0x00; if (var0 >= memory[arg0:arg0 + 0x20]) { label_02BF: return; } else { label_01DF: var var1 = arg0; var var2 = var0; if (var2 >= memory[var1:var1 + 0x20]) { assert(); } storage[0x00] = (memory[memory[var2 * 0x20 + 0x20 + var1:var2 * 0x20 + 0x20 + var1 + 0x20] + 0x40:memory[var2 * 0x20 + 0x20 + var1:var2 * 0x20 + 0x20 + var1 + 0x20] + 0x40 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffff) | (storage[0x00] & ~0xffffffffffffffffffffffffffffffffffffffff); var1 = 0x02b2; var2 = arg0; var var3 = var0; if (var3 >= memory[var2:var2 + 0x20]) { assert(); } func_0244(arg0, var0, var2, var3); var0 = var0 + 0x01; if (var0 >= memory[arg0:arg0 + 0x20]) { goto label_02BF; } else { goto label_01DF; } } } function func_00B3() returns (var r0) { var var0 = 0x00; var var1 = storage[var0] & 0xffffffffffffffffffffffffffffffffffffffff; var var2 = 0x18160ddd; var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = (var2 & 0xffffffff) << 0xe0; var var3 = temp0 + 0x04; var var4 = 0x20; var var5 = memory[0x40:0x60]; var var6 = var3 - var5; var var7 = var5; var var8 = var1; var var9 = !address(var8).code.length; if (var9) { revert(memory[0x00:0x00]); } var temp1; temp1, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]); var4 = !temp1; if (!var4) { var temp2 = memory[0x40:0x60]; var temp3 = returndata.length; memory[0x40:0x60] = temp2 + (temp3 + 0x1f & ~0x1f); var1 = 0x0154; var2 = temp2 + temp3; var3 = temp2; return func_077C(var2, var3); } else { var temp4 = returndata.length; memory[0x00:0x00 + temp4] = returndata[0x00:0x00 + temp4]; revert(memory[0x00:0x00 + returndata.length]); } } function set() { var var0 = 0x01d0; var var1 = storage[0x00] & 0xffffffffffffffffffffffffffffffffffffffff; var var2 = 0x21a31ee1afc51d94c2efccaa2092ad1028285549; var var3 = 0x2198a67fb302a467154271b10ee2ceaf94585549; var var4 = 0x00; func_02E7(var1, var2, var3, var4); } function func_0244(var arg0, var arg1, var arg2, var arg3) { arg2 = memory[memory[arg3 * 0x20 + 0x20 + arg2:arg3 * 0x20 + 0x20 + arg2 + 0x20]:memory[arg3 * 0x20 + 0x20 + arg2:arg3 * 0x20 + 0x20 + arg2 + 0x20] + 0x20]; arg3 = arg0; var var0 = arg1; if (var0 >= memory[arg3:arg3 + 0x20]) { assert(); } var temp0 = memory[memory[var0 * 0x20 + 0x20 + arg3:var0 * 0x20 + 0x20 + arg3 + 0x20] + 0x20:memory[var0 * 0x20 + 0x20 + arg3:var0 * 0x20 + 0x20 + arg3 + 0x20] + 0x20 + 0x20]; var temp1 = arg2; arg2 = storage[0x00] & 0xffffffffffffffffffffffffffffffffffffffff; arg3 = temp1; var0 = temp0; var var1 = 0x00; func_02E7(arg2, arg3, var0, var1); // Error: Could not resolve method call return address! } function func_02C3() returns (var r0) { return storage[0x00] & 0xffffffffffffffffffffffffffffffffffffffff; } function func_02E7(var arg0, var arg1, var arg2, var arg3) { var var0 = 0x036a; var var1 = arg0; var var2 = 0x23b872dd << 0xe0; var var3 = 0x0308; var var4 = arg1; var var5 = arg2; var var6 = arg3; var var7 = memory[0x40:0x60] + 0x24; var3 = func_095F(var4, var5, var6, var7); func_0308(var1, var2, var3); } function func_0308(var arg0, var arg1, var arg2) { var temp0 = memory[0x40:0x60]; var temp1 = arg2; memory[temp0:temp0 + 0x20] = temp1 - temp0 - 0x20; memory[0x40:0x60] = temp1; var temp2 = arg1; arg1 = temp0; var temp3 = arg1 + 0x20; memory[temp3:temp3 + 0x20] = (memory[temp3:temp3 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) | (temp2 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff); arg2 = 0x00; var var0 = 0x03d2; var temp4 = memory[0x40:0x60]; memory[0x40:0x60] = temp4 + 0x40; memory[temp4:temp4 + 0x20] = 0x20; memory[temp4 + 0x20:temp4 + 0x20 + 0x20] = 0x5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564; var var1 = arg0 & 0xffffffffffffffffffffffffffffffffffffffff; var var2 = arg1; var var3 = temp4; var0 = func_0437(var1, var2, var3); arg2 = var0; if (memory[arg2:arg2 + 0x20] <= 0x00) { label_0432: return; } else { var temp5 = arg2; var0 = 0x03f2; var2 = temp5 + 0x20; var1 = var2 + memory[temp5:temp5 + 0x20]; var0 = func_0753(var1, var2); if (var0) { goto label_0432; } var temp6 = memory[0x40:0x60]; memory[temp6:temp6 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var1 = temp6 + 0x04; var0 = 0x0428; var0 = func_0A13(var1); var temp7 = memory[0x40:0x60]; revert(memory[temp7:temp7 + var0 - temp7]); } } function func_0437(var arg0, var arg1, var arg2) returns (var r0) { var var0 = 0x60; var var1 = 0x0446; var var2 = arg0; var var3 = arg1; var var4 = 0x00; var var5 = arg2; return func_044F(var2, var3, var4, var5); } function func_044F(var arg0, var arg1, var arg2, var arg3) returns (var r0) { var var0 = 0x60; if (address(this).balance >= arg2) { var var1 = 0x049d; var var2 = arg0; var1 = func_0563(var2); if (var1) { var1 = 0x00; var2 = var1; var var3 = arg0 & 0xffffffffffffffffffffffffffffffffffffffff; var var4 = arg2; var var5 = 0x0505; var var7 = memory[0x40:0x60]; var var6 = arg1; var5 = func_0948(var6, var7); var temp0 = memory[0x40:0x60]; var temp1; temp1, memory[temp0:temp0 + 0x00] = address(var3).call.gas(msg.gas).value(var4)(memory[temp0:temp0 + var5 - temp0]); var4 = returndata.length; var5 = var4; if (var5 == 0x00) { var2 = 0x60; var temp2 = var3; var1 = temp2; var3 = 0x0557; var4 = var1; var5 = var2; var6 = arg3; var3 = func_0576(var4, var5, var6); label_0557: 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 = 0x0557; var4 = var1; var5 = var2; var6 = arg3; var3 = func_0576(var4, var5, var6); goto label_0557; } } else { var temp7 = memory[0x40:0x60]; memory[temp7:temp7 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var1 = 0x04d3; var2 = temp7 + 0x04; var1 = func_09F3(var2); var temp8 = memory[0x40:0x60]; revert(memory[temp8:temp8 + var1 - temp8]); } } else { var temp9 = memory[0x40:0x60]; memory[temp9:temp9 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var1 = 0x048b; var2 = temp9 + 0x04; var1 = func_09D3(var2); var temp10 = memory[0x40:0x60]; revert(memory[temp10:temp10 + var1 - temp10]); } } function func_0563(var arg0) returns (var r0) { return address(arg0).code.length > 0x00; } function func_0576(var arg0, var arg1, var arg2) returns (var r0) { var var0 = 0x60; if (arg0) { return arg1; } if (memory[arg1:arg1 + 0x20] <= 0x00) { var temp0 = memory[0x40:0x60]; memory[temp0:temp0 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000; var var1 = 0x05cd; var var2 = arg2; var var3 = temp0 + 0x04; var1 = func_09B1(var2, var3); var temp1 = memory[0x40:0x60]; revert(memory[temp1:temp1 + var1 - temp1]); } else { var temp2 = arg1; var1 = memory[temp2:temp2 + 0x20]; revert(memory[temp2 + 0x20:temp2 + 0x20 + var1]); } } function func_05DD(var arg0, var arg1, var arg2) returns (var r0) { var var0 = 0x00; var var1 = 0x05f0; var var2 = 0x05eb; var var3 = arg1; var2 = func_0A7F(var3); var1 = func_05EB(var2); var temp0 = var1; var0 = temp0; var temp1 = arg1; memory[var0:var0 + 0x20] = temp1; var1 = var0 + 0x20; var2 = arg2; if (var2 + temp1 * 0x60 > arg0) { revert(memory[0x00:0x00]); } var3 = 0x00; if (var3 >= arg1) { label_063F: return var0; } else { label_061B: var var4 = var2; var var5 = 0x0625; var var6 = arg0; var var7 = var4; var5 = func_069D(var6, var7); var temp2 = var1; memory[temp2:temp2 + 0x20] = var5; var1 = temp2 + 0x20; var2 = var2 + 0x60; var3 = var3 + 0x01; if (var3 >= arg1) { goto label_063F; } else { goto label_061B; } } } function func_05EB(var arg0) returns (var r0) { r0 = func_0A4E(arg0); // Error: Could not resolve method call return address! } function func_0649(var arg0, var arg1) returns (var r0) { var var0 = msg.data[arg1:arg1 + 0x20]; var var1 = 0x0658; var var2 = var0; func_0B8F(var2); return var0; } function func_065E(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg1 + 0x1f i>= arg0) { revert(memory[0x00:0x00]); } var temp0 = arg1; var var1 = msg.data[temp0:temp0 + 0x20]; var var2 = 0x067f; var var3 = arg0; var var4 = var1; var var5 = temp0 + 0x20; return func_05DD(var3, var4, var5); } function func_0688(var arg0, var arg1) returns (var r0) { var var0 = memory[arg1:arg1 + 0x20]; var var1 = 0x0697; var var2 = var0; func_0BA6(var2); return var0; } function func_069D(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x60) { revert(memory[0x00:0x00]); } var var1 = 0x06b9; var var2 = 0x60; var1 = func_0A4E(var2); var0 = var1; var1 = 0x00; var2 = 0x06c9; var var3 = arg0; var var4 = arg1 + var1; var2 = func_0649(var3, var4); memory[var0:var0 + 0x20] = var2; var1 = 0x20; var2 = 0x06dd; var3 = arg0; var4 = arg1 + var1; var2 = func_0649(var3, var4); memory[var0 + 0x20:var0 + 0x20 + 0x20] = var2; var1 = 0x40; var2 = 0x06f1; var3 = arg0; var4 = arg1 + var1; var2 = func_0649(var3, var4); memory[var0 + 0x40:var0 + 0x40 + 0x20] = var2; return var0; } function func_06FD(var arg0, var arg1) returns (var r0) { var var0 = memory[arg1:arg1 + 0x20]; var var1 = 0x070c; var var2 = var0; func_0BBD(var2); return var0; } function func_0712(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); } var var1 = msg.data[arg1:arg1 + 0x20]; if (var1 > 0xffffffffffffffff) { revert(memory[0x00:0x00]); } var var2 = 0x074a; var var3 = arg0; var var4 = arg1 + var1; return func_065E(var3, var4); } function func_0753(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); } var var1 = 0x00; var var2 = 0x0773; var var3 = arg0; var var4 = arg1 + var1; return func_0688(var3, var4); } function func_077C(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); } var var1 = 0x00; var var2 = 0x079c; var var3 = arg0; var var4 = arg1 + var1; return func_06FD(var3, var4); } function func_07A5(var arg0, var arg1) { var var0 = 0x07ae; var var1 = arg1; var0 = func_0ADD(var1); memory[arg0:arg0 + 0x20] = var0; } function func_07B4(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x07bf; var var2 = arg1; var1 = func_0AAB(var2); var2 = 0x07c9; var var3 = var1; var var4 = arg0; var2 = func_0AC1(var3, var4); var temp0 = var2; arg0 = temp0; var2 = 0x07d9; var3 = var1; var4 = arg0; var var5 = arg1 + 0x20; func_0B49(var3, var4, var5); return arg0 + var1; } function func_07E5(var arg0, var arg1) { var var0 = 0x07ee; var var1 = arg1; var0 = func_0B25(var1); memory[arg0:arg0 + 0x20] = var0; } function func_07F4(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x07ff; var var2 = arg1; var1 = func_0AB6(var2); var2 = 0x0809; var var3 = var1; var var4 = arg0; var2 = func_0ACC(var3, var4); var temp0 = var2; arg0 = temp0; var2 = 0x0819; var3 = var1; var4 = arg0; var var5 = arg1 + 0x20; func_0B49(var3, var4, var5); var2 = 0x0822; var3 = var1; var2 = func_0B7E(var3); return arg0 + var2; } function func_082D(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x083a; var var2 = 0x26; var var3 = arg0; var1 = func_0ACC(var2, var3); var temp0 = var1; memory[temp0:temp0 + 0x20] = 0x416464726573733a20696e73756666696369656e742062616c616e636520666f; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x722063616c6c0000000000000000000000000000000000000000000000000000; return temp0 + 0x40; } function func_0893(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x08a0; var var2 = 0x1d; var var3 = arg0; var1 = func_0ACC(var2, var3); var temp0 = var1; memory[temp0:temp0 + 0x20] = 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000; return temp0 + 0x20; } function func_08D3(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x08e0; var var2 = 0x2a; var var3 = arg0; var1 = func_0ACC(var2, var3); var temp0 = var1; memory[temp0:temp0 + 0x20] = 0x5361666545524332303a204552433230206f7065726174696f6e20646964206e; memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x6f74207375636365656400000000000000000000000000000000000000000000; return temp0 + 0x40; } function func_0939(var arg0, var arg1) { var var0 = 0x0942; var var1 = arg1; var0 = func_0B1B(var1); memory[arg0:arg0 + 0x20] = var0; } function func_0948(var arg0, var arg1) returns (var r0) { var var0 = 0x00; var var1 = 0x0954; var var2 = arg1; var var3 = arg0; return func_07B4(var2, var3); } function func_095F(var arg0, var arg1, var arg2, var arg3) returns (var r0) { var temp0 = arg3; var var0 = temp0 + 0x60; var var1 = 0x0974; var var2 = temp0; var var3 = arg0; func_07A5(var2, var3); var1 = 0x0981; var2 = arg3 + 0x20; var3 = arg1; func_07A5(var2, var3); var1 = 0x098e; var2 = arg3 + 0x40; var3 = arg2; func_0939(var2, var3); return var0; } function func_0996(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = temp0 + 0x20; var var1 = 0x09ab; var var2 = temp0; var var3 = arg0; func_07E5(var2, var3); return var0; } function func_09B1(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x09cb; var var2 = var0; var var3 = arg0; return func_07F4(var2, var3); } function func_09D3(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x09ec; var var2 = var0; return func_082D(var2); } function func_09F3(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x0a0c; var var2 = var0; return func_0893(var2); } function func_0A13(var arg0) returns (var r0) { var temp0 = arg0; var var0 = temp0 + 0x20; memory[temp0:temp0 + 0x20] = var0 - temp0; var var1 = 0x0a2c; var var2 = var0; return func_08D3(var2); } function func_0A33(var arg0, var arg1) returns (var r0) { var temp0 = arg1; var var0 = temp0 + 0x20; var var1 = 0x0a48; var var2 = temp0; var var3 = arg0; func_0939(var2, var3); return var0; } function func_0A4E(var arg0) returns (var r0) { var temp0 = memory[0x40:0x60]; var var0 = temp0; var temp1 = var0 + arg0; var var1 = temp1; if (!((var1 > 0xffffffffffffffff) | (var1 < var0))) { memory[0x40:0x60] = var1; return var0; } else { var var2 = 0x0a74; assert(); } } function func_0A7F(var arg0) returns (var r0) { var var0 = 0x00; if (arg0 <= 0xffffffffffffffff) { return arg0 * 0x20 + 0x20; } var var1 = 0x0a99; assert(); } function func_0AAB(var arg0) returns (var r0) { return memory[arg0:arg0 + 0x20]; } function func_0AB6(var arg0) returns (var r0) { return memory[arg0:arg0 + 0x20]; } function func_0AC1(var arg0, var arg1) returns (var r0) { return arg1; } function func_0ACC(var arg0, var arg1) returns (var r0) { var temp0 = arg1; memory[temp0:temp0 + 0x20] = arg0; return temp0 + 0x20; } function func_0ADD(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0ae8; var var2 = arg0; return func_0AFB(var2); } function func_0AEF(var arg0) returns (var r0) { return !!arg0; } function func_0AFB(var arg0) returns (var r0) { return arg0 & 0xffffffffffffffffffffffffffffffffffffffff; } function func_0B1B(var arg0) returns (var r0) { return arg0; } function func_0B25(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0b30; var var2 = arg0; return func_0B37(var2); } function func_0B37(var arg0) returns (var r0) { var var0 = 0x00; var var1 = 0x0b42; var var2 = arg0; return func_0AFB(var2); } function func_0B49(var arg0, var arg1, var arg2) { var var0 = 0x00; if (var0 >= arg0) { label_0B67: if (var0 <= arg0) { return; } memory[arg1 + arg0:arg1 + arg0 + 0x20] = 0x00; return; } else { label_0B55: var temp0 = var0; memory[arg1 + temp0:arg1 + temp0 + 0x20] = memory[arg2 + temp0:arg2 + temp0 + 0x20]; var0 = temp0 + 0x20; if (var0 >= arg0) { goto label_0B67; } else { goto label_0B55; } } } function func_0B7E(var arg0) returns (var r0) { return arg0 + 0x1f & ~0x1f; } function func_0B8F(var arg0) { var var0 = 0x0b98; var var1 = arg0; var0 = func_0ADD(var1); if (arg0 == var0) { return; } else { revert(memory[0x00:0x00]); } } function func_0BA6(var arg0) { var var0 = 0x0baf; var var1 = arg0; var0 = func_0AEF(var1); if (arg0 == var0) { return; } else { revert(memory[0x00:0x00]); } } function func_0BBD(var arg0) { var var0 = 0x0bc6; var var1 = arg0; var0 = func_0B1B(var1); if (arg0 == var0) { return; } else { revert(memory[0x00:0x00]); } } }