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 (0x313ce567 > var0) {
if (var0 == 0x06fdde03) {
// Dispatch table entry for name()
var var1 = 0x009c;
var1 =
func_01A6();
label_009C:
var temp0 = var1;
var1 = 0x00a9;
var var2 = temp0;
var var3 = memory[0x40:0x60];
var1 =
func_0575(var2, var3);
label_00A9:
var temp1 = memory[0x40:0x60];
return memory[temp1:temp1 + var1 - temp1];
} else if (var0 == 0x095ea7b3) {
// Dispatch table entry for approve(address,uint256)
var1 = 0x00c5;
var2 = 0x00c0;
var3 = msg.data.length;
var var4 = 0x04;
var2, var3 =
func_05DC(var3, var4);
var4 = 0x00;
var var5 = msg.sender;
var var6 = 0x0243;
var var7 = var5;
var var8 = var2;
var var9 = var3;
func_028E(var7, var8, var9);
label_0243:
var4 = 0x01;
var1 = var4;
// Error: Could not resolve jump destination!
} else if (var0 == 0x18160ddd) {
// Dispatch table entry for totalSupply()
var temp2 = memory[0x40:0x60];
memory[temp2:temp2 + 0x20] = storage[0x02];
var1 = temp2 + 0x20;
goto label_00A9;
} else if (var0 == 0x23b872dd) {
// Dispatch table entry for transferFrom(address,address,uint256)
var1 = 0x00c5;
var2 = 0x00f5;
var3 = msg.data.length;
var4 = 0x04;
var2, var3, var4 =
func_0604(var3, var4);
var1 =
func_00F5(var2, var3, var4);
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = !!var1;
var1 = temp3 + 0x20;
goto label_00A9;
} else { revert(memory[0x00:0x00]); }
} else if (var0 == 0x313ce567) {
// Dispatch table entry for decimals()
var temp4 = memory[0x40:0x60];
memory[temp4:temp4 + 0x20] = 0x0000000000000000000000000000000000000000000000000000000000000012 & 0xff;
var1 = temp4 + 0x20;
goto label_00A9;
} else if (var0 == 0x70a08231) {
// Dispatch table entry for balanceOf(address)
var1 = 0x00d9;
var2 = 0x0139;
var3 = msg.data.length;
var4 = 0x04;
var2 =
func_063D(var3, var4);
var1 =
func_0139(var2);
label_00D9:
var temp5 = memory[0x40:0x60];
memory[temp5:temp5 + 0x20] = var1;
var1 = temp5 + 0x20;
goto label_00A9;
} else if (var0 == 0x95d89b41) {
// Dispatch table entry for
symbol()
var1 = 0x009c;
var1 =
symbol();
goto label_009C;
} else if (var0 == 0xa9059cbb) {
// Dispatch table entry for transfer(address,uint256)
var1 = 0x00c5;
var2 = 0x0169;
var3 = msg.data.length;
var4 = 0x04;
var2, var3 =
func_05DC(var3, var4);
var4 = 0x00;
var5 = msg.sender;
var6 = 0x0243;
var7 = var5;
var8 = var2;
var9 = var3;
func_0320(var7, var8, var9);
goto label_0243;
} else if (var0 == 0xdd62ed3e) {
// Dispatch table entry for allowance(address,address)
var1 = 0x00d9;
var2 = 0x017c;
var3 = msg.data.length;
var4 = 0x04;
var2, var3 =
func_065D(var3, var4);
var1 =
func_017C(var2, var3);
goto label_00D9;
} else { revert(memory[0x00:0x00]); }
}
function func_00F5(var arg0, var arg1, var arg2) returns (var r0) {
var var0 = 0x00;
var var1 = msg.sender;
var var2 = 0x025c;
var var3 = arg0;
var var4 = var1;
var var5 = arg2;
func_02A0(var3, var4, var5);
var2 = 0x0267;
var3 = arg0;
var4 = arg1;
var5 = arg2;
func_0320(var3, var4, var5);
return 0x01;
}
function func_0139(var arg0) returns (var r0) {
memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01;
memory[0x20:0x40] = 0x00;
return storage[keccak256(memory[0x00:0x40])];
}
function func_017C(var arg0, var arg1) returns (var r0) {
var temp0 = (0x01 << 0xa0) - 0x01;
memory[0x00:0x20] = temp0 & arg0;
memory[0x20:0x40] = 0x01;
var temp1 = keccak256(memory[0x00:0x40]);
memory[0x00:0x20] = temp0 & arg1;
memory[0x20:0x40] = temp1;
return storage[keccak256(memory[0x00:0x40])];
}
function func_01A6() returns (var r0) {
var var0 = 0x60;
var var1 = 0x03;
var var2 = 0x01b5;
var var3 = storage[var1];
var2 =
func_068E(var3);
var temp0 = var2;
var temp1 = memory[0x40:0x60];
memory[0x40:0x60] = temp1 + (temp0 + 0x1f) / 0x20 * 0x20 + 0x20;
var temp2 = var1;
var1 = temp1;
var2 = temp2;
var3 = temp0;
memory[var1:var1 + 0x20] = var3;
var var4 = var1 + 0x20;
var var5 = var2;
var var6 = 0x01e1;
var var7 = storage[var5];
var6 =
func_068E(var7);
if (!var6) {
label_022C:
return var1;
} else if (0x1f < var6) {
var temp3 = var4;
var temp4 = temp3 + var6;
var4 = temp4;
memory[0x00:0x20] = var5;
var temp5 = keccak256(memory[0x00:0x20]);
memory[temp3:temp3 + 0x20] = storage[temp5];
var5 = temp5 + 0x01;
var6 = temp3 + 0x20;
if (var4 <= var6) { goto label_0223; }
label_020F:
var temp6 = var5;
var temp7 = var6;
memory[temp7:temp7 + 0x20] = storage[temp6];
var5 = temp6 + 0x01;
var6 = temp7 + 0x20;
if (var4 > var6) { goto label_020F; }
label_0223:
var temp8 = var4;
var temp9 = temp8 + (var6 - temp8 & 0x1f);
var6 = temp8;
var4 = temp9;
goto label_022C;
} else {
var temp10 = var4;
memory[temp10:temp10 + 0x20] = storage[var5] / 0x0100 * 0x0100;
var4 = temp10 + 0x20;
var6 = var6;
goto label_022C;
}
}
function symbol() returns (var r0) {
var var0 = 0x60;
var var1 = 0x04;
var var2 = 0x01b5;
var var3 = storage[var1];
var2 =
func_068E(var3);
var temp0 = var2;
var temp1 = memory[0x40:0x60];
memory[0x40:0x60] = temp1 + (temp0 + 0x1f) / 0x20 * 0x20 + 0x20;
var temp2 = var1;
var1 = temp1;
var2 = temp2;
var3 = temp0;
memory[var1:var1 + 0x20] = var3;
var var4 = var1 + 0x20;
var var5 = var2;
var var6 = 0x01e1;
var var7 = storage[var5];
var6 =
func_068E(var7);
if (!var6) {
label_022C:
return var1;
} else if (0x1f < var6) {
var temp3 = var4;
var temp4 = temp3 + var6;
var4 = temp4;
memory[0x00:0x20] = var5;
var temp5 = keccak256(memory[0x00:0x20]);
memory[temp3:temp3 + 0x20] = storage[temp5];
var5 = temp5 + 0x01;
var6 = temp3 + 0x20;
if (var4 <= var6) { goto label_0223; }
label_020F:
var temp6 = var5;
var temp7 = var6;
memory[temp7:temp7 + 0x20] = storage[temp6];
var5 = temp6 + 0x01;
var6 = temp7 + 0x20;
if (var4 > var6) { goto label_020F; }
label_0223:
var temp8 = var4;
var temp9 = temp8 + (var6 - temp8 & 0x1f);
var6 = temp8;
var4 = temp9;
goto label_022C;
} else {
var temp10 = var4;
memory[temp10:temp10 + 0x20] = storage[var5] / 0x0100 * 0x0100;
var4 = temp10 + 0x20;
var6 = var6;
goto label_022C;
}
}
function func_028E(var arg0, var arg1, var arg2) {
var var0 = 0x029b;
var var1 = arg0;
var var2 = arg1;
var var3 = arg2;
var var4 = 0x01;
func_037D(var1, var2, var3, var4);
}
function func_02A0(var arg0, var arg1, var arg2) {
var temp0 = (0x01 << 0xa0) - 0x01;
memory[0x00:0x20] = temp0 & arg0;
memory[0x20:0x40] = 0x01;
var temp1 = keccak256(memory[0x00:0x40]);
memory[0x00:0x20] = arg1 & temp0;
memory[0x20:0x40] = temp1;
var var0 = storage[keccak256(memory[0x00:0x40])];
if (var0 == ~0x00) {
label_031A:
return;
} else if (var0 >= arg2) {
var var1 = 0x031a;
var var2 = arg0;
var var3 = arg1;
var var4 = var0 - arg2;
var var5 = 0x00;
func_037D(var2, var3, var4, var5);
goto label_031A;
} else {
var temp2 = memory[0x40:0x60];
memory[temp2:temp2 + 0x20] = 0x7dc7a0d9 << 0xe1;
memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = arg1 & (0x01 << 0xa0) - 0x01;
memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = var0;
memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = arg2;
var1 = temp2 + 0x64;
var temp3 = memory[0x40:0x60];
revert(memory[temp3:temp3 + var1 - temp3]);
}
}
function func_0320(var arg0, var arg1, var arg2) {
if (!(arg0 & (0x01 << 0xa0) - 0x01)) {
var temp2 = memory[0x40:0x60];
memory[temp2:temp2 + 0x20] = 0x4b637e8f << 0xe1;
memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x00;
var0 = temp2 + 0x24;
goto label_0303;
} else if (arg1 & (0x01 << 0xa0) - 0x01) {
var var0 = 0x029b;
var var1 = arg0;
var var2 = arg1;
var var3 = arg2;
func_044F(var1, var2, var3);
return;
} else {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0xec442f05 << 0xe0;
memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = 0x00;
var0 = temp0 + 0x24;
label_0303:
var temp1 = memory[0x40:0x60];
revert(memory[temp1:temp1 + var0 - temp1]);
}
}
function func_037D(var arg0, var arg1, var arg2, var arg3) {
if (!(arg0 & (0x01 << 0xa0) - 0x01)) {
var temp6 = memory[0x40:0x60];
memory[temp6:temp6 + 0x20] = 0xe602df05 << 0xe0;
memory[temp6 + 0x04:temp6 + 0x04 + 0x20] = 0x00;
var0 = temp6 + 0x24;
goto label_0303;
} else if (arg1 & (0x01 << 0xa0) - 0x01) {
var temp0 = (0x01 << 0xa0) - 0x01;
memory[0x00:0x20] = arg0 & temp0;
memory[0x20:0x40] = 0x01;
var temp1 = keccak256(memory[0x00:0x40]);
memory[0x00:0x20] = arg1 & temp0;
memory[0x20:0x40] = temp1;
storage[keccak256(memory[0x00:0x40])] = arg2;
if (!arg3) { return; }
var var0 = arg1 & (0x01 << 0xa0) - 0x01;
var var1 = arg0 & (0x01 << 0xa0) - 0x01;
var var2 = 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925;
var temp2 = memory[0x40:0x60];
memory[temp2:temp2 + 0x20] = arg2;
var var3 = temp2 + 0x20;
var temp3 = memory[0x40:0x60];
log(memory[temp3:temp3 + var3 - temp3], [stack[-2], stack[-3], stack[-4]]);
return;
} else {
var temp4 = memory[0x40:0x60];
memory[temp4:temp4 + 0x20] = 0x4a1406b1 << 0xe1;
memory[temp4 + 0x04:temp4 + 0x04 + 0x20] = 0x00;
var0 = temp4 + 0x24;
label_0303:
var temp5 = memory[0x40:0x60];
revert(memory[temp5:temp5 + var0 - temp5]);
}
}
function func_044F(var arg0, var arg1, var arg2) {
if (arg0 & (0x01 << 0xa0) - 0x01) {
memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01;
memory[0x20:0x40] = 0x00;
var var0 = storage[keccak256(memory[0x00:0x40])];
if (var0 >= arg2) {
memory[0x00:0x20] = arg0 & (0x01 << 0xa0) - 0x01;
memory[0x20:0x40] = 0x00;
storage[keccak256(memory[0x00:0x40])] = var0 - arg2;
if (arg1 & (0x01 << 0xa0) - 0x01) {
label_0505:
var temp0 = arg1;
memory[0x00:0x20] = temp0 & (0x01 << 0xa0) - 0x01;
memory[0x20:0x40] = 0x00;
var temp1 = keccak256(memory[0x00:0x40]);
var temp2 = arg2;
storage[temp1] = temp2 + storage[temp1];
var0 = temp0 & (0x01 << 0xa0) - 0x01;
var var1 = arg0 & (0x01 << 0xa0) - 0x01;
var var2 = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = temp2;
var var3 = temp3 + 0x20;
label_0568:
var temp4 = memory[0x40:0x60];
log(memory[temp4:temp4 + var3 - temp4], [stack[-2], stack[-3], stack[-4]]);
return;
} else {
label_04F8:
storage[0x02] = storage[0x02] - arg2;
var0 = arg1 & (0x01 << 0xa0) - 0x01;
var1 = arg0 & (0x01 << 0xa0) - 0x01;
var2 = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef;
var temp5 = memory[0x40:0x60];
memory[temp5:temp5 + 0x20] = arg2;
var3 = temp5 + 0x20;
goto label_0568;
}
} else {
var temp6 = memory[0x40:0x60];
memory[temp6:temp6 + 0x20] = 0x391434e3 << 0xe2;
memory[temp6 + 0x04:temp6 + 0x04 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01;
memory[temp6 + 0x24:temp6 + 0x24 + 0x20] = var0;
memory[temp6 + 0x44:temp6 + 0x44 + 0x20] = arg2;
var1 = temp6 + 0x64;
var temp7 = memory[0x40:0x60];
revert(memory[temp7:temp7 + var1 - temp7]);
}
} else {
var0 = arg2;
var1 = 0x02;
var2 = 0x00;
var3 = 0x046e;
var var4 = var0;
var var5 = storage[var1];
var3 =
func_06C6(var4, var5);
storage[var1] = var3;
if (arg1 & (0x01 << 0xa0) - 0x01) { goto label_0505; }
else { goto label_04F8; }
}
}
function func_0575(var arg0, var arg1) returns (var r0) {
var var0 = 0x00;
var var1 = 0x20;
var temp0 = arg1;
memory[temp0:temp0 + 0x20] = var1;
var temp1 = memory[arg0:arg0 + 0x20];
var var2 = temp1;
memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = var2;
var var3 = 0x00;
if (var3 >= var2) {
label_05A1:
var temp2 = var2;
var temp3 = arg1;
memory[temp3 + temp2 + 0x40:temp3 + temp2 + 0x40 + 0x20] = 0x00;
return temp3 + (temp2 + 0x1f & ~0x1f) + 0x40;
} else {
label_058E:
var temp4 = var3;
var temp5 = var1;
memory[temp4 + arg1 + 0x40:temp4 + arg1 + 0x40 + 0x20] = memory[temp5 + temp4 + arg0:temp5 + temp4 + arg0 + 0x20];
var3 = temp5 + temp4;
if (var3 >= var2) { goto label_05A1; }
else { goto label_058E; }
}
}
function func_05C1(var arg0) returns (var r0) {
var temp0 = msg.data[arg0:arg0 + 0x20];
var var0 = temp0;
if (var0 == var0 & (0x01 << 0xa0) - 0x01) { return var0; }
else { revert(memory[0x00:0x00]); }
}
function func_05DC(var arg0, var arg1) returns (var r0, var arg0) {
var var0 = 0x00;
var var1 = var0;
if (arg0 - arg1 i< 0x40) { revert(memory[0x00:0x00]); }
var var2 = 0x05f6;
var var3 = arg1;
var2 =
func_05C1(var3);
r0 = var2;
arg0 = msg.data[arg1 + 0x20:arg1 + 0x20 + 0x20];
return r0, arg0;
}
function func_0604(var arg0, var arg1) returns (var r0, var arg0, var arg1) {
var var0 = 0x00;
var var1 = var0;
var var2 = 0x00;
if (arg0 - arg1 i< 0x60) { revert(memory[0x00:0x00]); }
var var3 = 0x061f;
var var4 = arg1;
var3 =
func_05C1(var4);
var0 = var3;
var3 = 0x062d;
var4 = arg1 + 0x20;
var3 =
func_05C1(var4);
arg1 = msg.data[arg1 + 0x40:arg1 + 0x40 + 0x20];
arg0 = var3;
r0 = var0;
return r0, arg0, arg1;
}
function func_063D(var arg0, var arg1) returns (var r0) {
var var0 = 0x00;
if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); }
var var1 = 0x0656;
var var2 = arg1;
return
func_05C1(var2);
}
function func_065D(var arg0, var arg1) returns (var r0, var arg0) {
var var0 = 0x00;
var var1 = var0;
if (arg0 - arg1 i< 0x40) { revert(memory[0x00:0x00]); }
var var2 = 0x0677;
var var3 = arg1;
var2 =
func_05C1(var3);
var0 = var2;
var2 = 0x0685;
var3 = arg1 + 0x20;
var2 =
func_05C1(var3);
arg0 = var2;
r0 = var0;
return r0, arg0;
}
function func_068E(var arg0) returns (var r0) {
var temp0 = arg0;
var var0 = temp0 >> 0x01;
var var1 = temp0 & 0x01;
if (!var1) {
var temp1 = var0 & 0x7f;
var0 = temp1;
if (var1 - (var0 < 0x20)) { goto label_06C0; }
else { goto label_06AD; }
} else if (var1 - (var0 < 0x20)) {
label_06C0:
return var0;
} else {
label_06AD:
memory[0x00:0x20] = 0x4e487b71 << 0xe0;
memory[0x04:0x24] = 0x22;
revert(memory[0x00:0x24]);
}
}
function func_06C6(var arg0, var arg1) returns (var r0) {
var temp0 = arg1;
var var0 = arg0 + temp0;
if (temp0 <= var0) { return var0; }
memory[0x00:0x20] = 0x4e487b71 << 0xe0;
memory[0x04:0x24] = 0x11;
revert(memory[0x00:0x24]);
}
}