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 != 0xcfae3217) { revert(memory[0x00:0x00]); }
var var1 = 0x0035;
var var2 =
func_004B();
var temp0 = var2;
var2 = 0x0042;
var var3 = temp0;
var var4 = memory[0x40:0x60];
var2 =
func_0160(var3, var4);
var temp1 = memory[0x40:0x60];
return memory[temp1:temp1 + var2 - temp1];
}
function func_004B() returns (var r0) {
r0 = 0x00;
var var1 = 0x0057;
var var2 = storage[r0];
var1 =
func_01AD(var2);
var temp0 = var1;
var temp1 = memory[0x40:0x60];
memory[0x40:0x60] = temp1 + (temp0 + 0x1f) / 0x20 * 0x20 + 0x20;
var temp2 = r0;
r0 = temp1;
var1 = temp2;
var2 = temp0;
memory[r0:r0 + 0x20] = var2;
var var3 = r0 + 0x20;
var var4 = var1;
var var5 = 0x0083;
var var6 = storage[var4];
var5 =
func_01AD(var6);
if (!var5) {
label_00CE:
return r0;
} else if (0x1f < var5) {
var temp3 = var3;
var temp4 = temp3 + var5;
var3 = temp4;
memory[0x00:0x20] = var4;
var temp5 = keccak256(memory[0x00:0x20]);
memory[temp3:temp3 + 0x20] = storage[temp5];
var4 = temp5 + 0x01;
var5 = temp3 + 0x20;
if (var3 <= var5) { goto label_00C5; }
label_00B1:
var temp6 = var4;
var temp7 = var5;
memory[temp7:temp7 + 0x20] = storage[temp6];
var4 = temp6 + 0x01;
var5 = temp7 + 0x20;
if (var3 > var5) { goto label_00B1; }
label_00C5:
var temp8 = var3;
var temp9 = temp8 + (var5 - temp8 & 0x1f);
var5 = temp8;
var3 = temp9;
goto label_00CE;
} else {
var temp10 = var3;
memory[temp10:temp10 + 0x20] = storage[var4] / 0x0100 * 0x0100;
var3 = temp10 + 0x20;
var5 = var5;
goto label_00CE;
}
}
function func_00D6(var arg0) returns (var r0) { return memory[arg0:arg0 + 0x20]; }
function func_00E0(var arg0, var arg1) returns (var r0) {
var temp0 = arg1;
memory[temp0:temp0 + 0x20] = arg0;
return temp0 + 0x20;
}
function func_00F0(var arg0, var arg1, var arg2) {
var var0 = 0x00;
if (var0 >= arg0) {
label_010D:
memory[arg1 + arg0:arg1 + arg0 + 0x20] = 0x00;
return;
} else {
label_00FB:
var temp0 = var0;
memory[arg1 + temp0:arg1 + temp0 + 0x20] = memory[arg2 + temp0:arg2 + temp0 + 0x20];
var0 = temp0 + 0x20;
if (var0 >= arg0) { goto label_010D; }
else { goto label_00FB; }
}
}
function func_0118(var arg0) returns (var r0) { return arg0 + 0x1f & ~0x1f; }
function func_0128(var arg0, var arg1) returns (var r0) {
var var0 = 0x00;
var var1 = 0x0132;
var var2 = arg1;
var1 =
func_00D6(var2);
var2 = 0x013c;
var var3 = var1;
var var4 = arg0;
var2 =
func_00E0(var3, var4);
var temp0 = var2;
arg0 = temp0;
var2 = 0x014c;
var3 = var1;
var4 = arg0;
var var5 = arg1 + 0x20;
func_00F0(var3, var4, var5);
var2 = 0x0155;
var3 = var1;
var2 =
func_0118(var3);
return arg0 + var2;
}
function func_0160(var arg0, var arg1) returns (var r0) {
var temp0 = arg1;
var var0 = temp0 + 0x20;
memory[temp0:temp0 + 0x20] = var0 - temp0;
var var1 = 0x0178;
var var2 = var0;
var var3 = arg0;
return
func_0128(var2, var3);
}
function func_01AD(var arg0) returns (var r0) {
var temp0 = arg0;
var var0 = temp0 / 0x02;
var var1 = temp0 & 0x01;
if (!var1) {
var temp1 = var0 & 0x7f;
var0 = temp1;
if (var1 - (var0 < 0x20)) { goto label_01D7; }
else { goto label_01CF; }
} else if (var1 - (var0 < 0x20)) {
label_01D7:
return var0;
} else {
label_01CF:
var var2 = 0x01d6;
memory[0x00:0x20] = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
memory[0x04:0x24] = 0x22;
revert(memory[0x00:0x24]);
}
}
}