contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); }
var var0 = msg.data[0x00:0x20] >> 0xe0;
if (0x9623609d > var0) {
if (var0 == 0x204e1c7a) {
// Dispatch table entry for getProxyImplementation(address)
var var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00a0;
var var2 = 0x009b;
var var3 = msg.data.length;
var var4 = 0x04;
var2 =
getProxyAdmin(var3, var4);
var3 = 0x00;
var4 = var3;
var var5 = 0x00;
var var6 = var2 & (0x01 << 0xa0) - 0x01;
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x5c60da1b << 0xe0;
var var7 = temp0 + 0x04;
label_01AA:
var temp1 = memory[0x40:0x60];
var temp2;
temp2, memory[temp1:temp1 + 0x00] = address(var6).staticcall.gas(msg.gas)(memory[temp1:temp1 + var7 - temp1]);
var7 = returndata.length;
var var8 = var7;
if (var8 == 0x00) {
var5 = 0x60;
var4 = var6;
if (!var4) { revert(memory[0x00:0x00]); }
label_01F9:
var temp3 = var5;
var6 = 0x020d;
var7 = temp3 + 0x20 + memory[temp3:temp3 + 0x20];
var8 = temp3 + 0x20;
var var9 = 0x00;
if (var7 - var8 i>= 0x20) {
var var10 = memory[var8:var8 + 0x20];
var var11 = 0x0531;
var var12 = var10;
func_070B(var12);
var6 = var10;
// Error: Could not resolve jump destination!
} else {
var temp4 = var9;
revert(memory[temp4:temp4 + temp4]);
}
} else {
var temp5 = memory[0x40:0x60];
var7 = temp5;
memory[0x40:0x60] = var7 + (returndata.length + 0x3f & ~0x1f);
memory[var7:var7 + 0x20] = returndata.length;
var temp6 = returndata.length;
memory[var7 + 0x20:var7 + 0x20 + temp6] = returndata[0x00:0x00 + temp6];
var5 = var7;
var4 = var6;
if (var4) { goto label_01F9; }
else { revert(memory[0x00:0x00]); }
}
} else if (var0 == 0x715018a6) {
// Dispatch table entry for
renounceOwnership()
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00d1;
renounceOwnership();
stop();
} else if (var0 == 0x7eff275e) {
// Dispatch table entry for changeProxyAdmin(address,address)
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00d1;
var2 = 0x00ee;
var3 = msg.data.length;
var4 = 0x04;
var2, var3 =
func_0554(var3, var4);
func_00EE(var2, var3);
stop();
} else if (var0 == 0x8da5cb5b) {
// Dispatch table entry for owner()
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = storage[0x00] & (0x01 << 0xa0) - 0x01;
var temp7 = memory[0x40:0x60];
memory[temp7:temp7 + 0x20] = var1 & (0x01 << 0xa0) - 0x01;
var temp8 = memory[0x40:0x60];
return memory[temp8:temp8 + (temp7 + 0x20) - temp8];
} else { revert(memory[0x00:0x00]); }
} else if (var0 == 0x9623609d) {
// Dispatch table entry for upgradeAndCall(address,address,bytes)
var1 = 0x00d1;
var2 = 0x011f;
var3 = msg.data.length;
var4 = 0x04;
var2, var3, var4 =
func_058C(var3, var4);
func_011F(var2, var3, var4);
stop();
} else if (var0 == 0x99a88ec4) {
// Dispatch table entry for upgrade(address,address)
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00d1;
var2 = 0x013f;
var3 = msg.data.length;
var4 = 0x04;
var2, var3 =
func_0554(var3, var4);
func_013F(var2, var3);
stop();
} else if (var0 == 0xf2fde38b) {
// Dispatch table entry for transferOwnership(address)
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00d1;
var2 = 0x015f;
var3 = msg.data.length;
var4 = 0x04;
var2 =
getProxyAdmin(var3, var4);
func_015F(var2);
stop();
} else if (var0 == 0xf3b7dead) {
// Dispatch table entry for
getProxyAdmin(address)
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00a0;
var2 = 0x017f;
var3 = msg.data.length;
var4 = 0x04;
var2 =
getProxyAdmin(var3, var4);
var3 = 0x00;
var4 = var3;
var5 = 0x00;
var6 = var2 & (0x01 << 0xa0) - 0x01;
var temp9 = memory[0x40:0x60];
memory[temp9:temp9 + 0x20] = 0x03e14691 << 0xe6;
var7 = temp9 + 0x04;
goto label_01AA;
} else { revert(memory[0x00:0x00]); }
}
function func_00EE(var arg0, var arg1) {
if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x08f28397 << 0xe4;
var temp1 = (0x01 << 0xa0) - 0x01;
memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg1;
var var0 = arg0 & temp1;
var var1 = 0x8f283970;
var var2 = temp0 + 0x24;
var var3 = 0x00;
var var4 = memory[0x40:0x60];
var var5 = var2 - var4;
var var6 = var4;
var var7 = 0x00;
var var8 = var0;
var var9 = !address(var8).code.length;
if (var9) { revert(memory[0x00:0x00]); }
var temp2;
temp2, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
var3 = !temp2;
if (!var3) { return; }
var temp3 = returndata.length;
memory[0x00:0x00 + temp3] = returndata[0x00:0x00 + temp3];
revert(memory[0x00:0x00 + returndata.length]);
} else {
var temp4 = memory[0x40:0x60];
memory[temp4:temp4 + 0x20] = 0x461bcd << 0xe5;
var0 = 0x023f;
var1 = temp4 + 0x04;
var0 =
func_06C0(var1);
var temp5 = memory[0x40:0x60];
revert(memory[temp5:temp5 + var0 - temp5]);
}
}
function func_011F(var arg0, var arg1, var arg2) {
if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x278f7943 << 0xe1;
var var0 = arg0 & (0x01 << 0xa0) - 0x01;
var var1 = 0x4f1ef286;
var var2 = msg.value;
var var3 = 0x0376;
var var4 = arg1;
var var5 = arg2;
var var6 = temp0 + 0x04;
var3 =
func_065D(var4, var5, var6);
var4 = 0x00;
var5 = memory[0x40:0x60];
var6 = var3 - var5;
var var7 = var5;
var var8 = var2;
var var9 = var0;
var var10 = !address(var9).code.length;
if (var10) { revert(memory[0x00:0x00]); }
var temp1;
temp1, memory[var5:var5 + var4] = address(var9).call.gas(msg.gas).value(var8)(memory[var7:var7 + var6]);
var4 = !temp1;
if (!var4) { return; }
var temp2 = returndata.length;
memory[0x00:0x00 + temp2] = returndata[0x00:0x00 + temp2];
revert(memory[0x00:0x00 + returndata.length]);
} else {
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5;
var1 = temp3 + 0x04;
var0 = 0x023f;
var0 =
func_06C0(var1);
var temp4 = memory[0x40:0x60];
revert(memory[temp4:temp4 + var0 - temp4]);
}
}
function func_013F(var arg0, var arg1) {
if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x1b2ce7f3 << 0xe1;
var temp1 = (0x01 << 0xa0) - 0x01;
memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = temp1 & arg1;
var var0 = arg0 & temp1;
var var1 = 0x3659cfe6;
var var2 = temp0 + 0x24;
var var3 = 0x00;
var var4 = memory[0x40:0x60];
var var5 = var2 - var4;
var var6 = var4;
var var7 = 0x00;
var var8 = var0;
var var9 = !address(var8).code.length;
if (var9) { revert(memory[0x00:0x00]); }
var temp2;
temp2, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
var3 = !temp2;
if (!var3) { return; }
var temp3 = returndata.length;
memory[0x00:0x00 + temp3] = returndata[0x00:0x00 + temp3];
revert(memory[0x00:0x00 + returndata.length]);
} else {
var temp4 = memory[0x40:0x60];
memory[temp4:temp4 + 0x20] = 0x461bcd << 0xe5;
var1 = temp4 + 0x04;
var0 = 0x023f;
var0 =
func_06C0(var1);
var temp5 = memory[0x40:0x60];
revert(memory[temp5:temp5 + var0 - temp5]);
}
}
function func_015F(var arg0) {
if (msg.sender != storage[0x00] & (0x01 << 0xa0) - 0x01) {
var temp4 = memory[0x40:0x60];
memory[temp4:temp4 + 0x20] = 0x461bcd << 0xe5;
var0 = 0x023f;
var var1 = temp4 + 0x04;
var0 =
func_06C0(var1);
goto label_023F;
} else if (arg0 & (0x01 << 0xa0) - 0x01) {
var temp0 = (0x01 << 0xa0) - 0x01;
var temp1 = arg0;
log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, storage[0x00] & (0x01 << 0xa0) - 0x01, stack[-1] & (0x01 << 0xa0) - 0x01]);
storage[0x00] = (temp1 & (0x01 << 0xa0) - 0x01) | (storage[0x00] & ~((0x01 << 0xa0) - 0x01));
return;
} else {
var temp2 = memory[0x40:0x60];
memory[temp2:temp2 + 0x20] = 0x461bcd << 0xe5;
memory[temp2 + 0x04:temp2 + 0x04 + 0x20] = 0x20;
memory[temp2 + 0x24:temp2 + 0x24 + 0x20] = 0x26;
memory[temp2 + 0x44:temp2 + 0x44 + 0x20] = 0x4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061;
memory[temp2 + 0x64:temp2 + 0x64 + 0x20] = 0x646472657373 << 0xd0;
var var0 = temp2 + 0x84;
label_023F:
var temp3 = memory[0x40:0x60];
revert(memory[temp3:temp3 + var0 - temp3]);
}
}
function renounceOwnership() {
if (msg.sender == storage[0x00] & (0x01 << 0xa0) - 0x01) {
log(memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x00], [0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0, storage[0x00] & (0x01 << 0xa0) - 0x01, 0x00]);
storage[0x00] = storage[0x00] & ~((0x01 << 0xa0) - 0x01);
return;
} else {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x461bcd << 0xe5;
var var1 = temp0 + 0x04;
var var0 = 0x023f;
var0 =
func_06C0(var1);
var temp1 = memory[0x40:0x60];
revert(memory[temp1:temp1 + var0 - temp1]);
}
}
function getProxyAdmin(var arg0, var arg1) returns (var r0) {
var var0 = 0x00;
if (arg0 - arg1 i>= 0x20) {
var var1 = msg.data[arg1:arg1 + 0x20];
var var2 = 0x0531;
var var3 = var1;
func_070B(var3);
return var1;
} else {
var temp0 = var0;
revert(memory[temp0:temp0 + temp0]);
}
}
function func_0554(var arg0, var arg1) returns (var r0, var arg0) {
var var0 = 0x00;
var var1 = var0;
if (arg0 - arg1 i>= 0x40) {
var var2 = msg.data[arg1:arg1 + 0x20];
var var3 = 0x0571;
var var4 = var2;
func_070B(var4);
var0 = var2;
var2 = msg.data[arg1 + 0x20:arg1 + 0x20 + 0x20];
var3 = 0x0581;
var4 = var2;
func_070B(var4);
arg0 = var2;
r0 = var0;
return r0, arg0;
} else {
var temp0 = var1;
revert(memory[temp0:temp0 + temp0]);
}
}
function func_058C(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) {
var var3 = msg.data[arg1:arg1 + 0x20];
var var4 = 0x05ab;
var var5 = var3;
func_070B(var5);
var0 = var3;
var3 = msg.data[arg1 + 0x20:arg1 + 0x20 + 0x20];
var4 = 0x05bb;
var5 = var3;
func_070B(var5);
var1 = var3;
var3 = msg.data[arg1 + 0x40:arg1 + 0x40 + 0x20];
var4 = 0xffffffffffffffff;
if (var3 <= var4) {
var temp0 = arg1 + var3;
var3 = temp0;
if (var3 + 0x1f i< arg0) {
var5 = msg.data[var3:var3 + 0x20];
if (var5 <= var4) {
var temp1 = memory[0x40:0x60];
var temp2 = ~0x1f;
var temp3 = temp1 + ((temp2 & var5 + 0x1f) + 0x3f & temp2);
var var6 = temp3;
var var7 = temp1;
if (!((var6 < var7) | (var6 > var4))) {
memory[0x40:0x60] = var6;
var temp4 = var5;
memory[var7:var7 + 0x20] = temp4;
if (var3 + temp4 + 0x20 <= arg0) {
var temp5 = var5;
var temp6 = var7;
memory[temp6 + 0x20:temp6 + 0x20 + temp5] = msg.data[var3 + 0x20:var3 + 0x20 + temp5];
memory[temp6 + temp5 + 0x20:temp6 + temp5 + 0x20 + 0x20] = var2;
arg1 = temp6;
arg0 = var1;
r0 = var0;
return r0, arg0, arg1;
} else {
var temp7 = var2;
revert(memory[temp7:temp7 + temp7]);
}
} else {
var var8 = 0x0624;
label_06F5:
memory[0x00:0x20] = 0x4e487b71 << 0xe0;
memory[0x04:0x24] = 0x41;
revert(memory[0x00:0x24]);
}
} else {
var6 = 0x05fc;
goto label_06F5;
}
} else {
var temp8 = var2;
revert(memory[temp8:temp8 + temp8]);
}
} else {
var temp9 = var2;
revert(memory[temp9:temp9 + temp9]);
}
} else {
var temp10 = var2;
revert(memory[temp10:temp10 + temp10]);
}
}
function func_065D(var arg0, var arg1, var arg2) returns (var r0) {
var var0 = 0x00;
var temp0 = arg2;
memory[temp0:temp0 + 0x20] = arg0 & (0x01 << 0xa0) - 0x01;
var var1 = 0x20;
memory[temp0 + var1:temp0 + var1 + 0x20] = 0x40;
var temp1 = memory[arg1:arg1 + 0x20];
var var2 = temp1;
memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = var2;
var var3 = var0;
if (var3 >= var2) {
label_0698:
if (var3 <= var2) { return (var2 + 0x1f & ~0x1f) + arg2 + 0x60; }
var temp2 = var2;
var temp3 = arg2;
memory[temp3 + temp2 + 0x60:temp3 + temp2 + 0x60 + 0x20] = var0;
return (temp2 + 0x1f & ~0x1f) + temp3 + 0x60;
} else {
label_0685:
var temp4 = var3;
var temp5 = var1;
memory[temp4 + arg2 + 0x60:temp4 + arg2 + 0x60 + 0x20] = memory[temp5 + temp4 + arg1:temp5 + temp4 + arg1 + 0x20];
var3 = temp5 + temp4;
if (var3 >= var2) { goto label_0698; }
else { goto label_0685; }
}
}
function func_06C0(var arg0) returns (var r0) {
var temp0 = arg0;
memory[temp0:temp0 + 0x20] = 0x20;
memory[temp0 + 0x20:temp0 + 0x20 + 0x20] = 0x20;
memory[temp0 + 0x40:temp0 + 0x40 + 0x20] = 0x4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572;
return temp0 + 0x60;
}
function func_070B(var arg0) {
var temp0 = arg0;
if (temp0 == temp0 & (0x01 << 0xa0) - 0x01) { return; }
else { revert(memory[0x00:0x00]); }
}
}