contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
if (msg.data.length >= 0x04) {
var0 = msg.data[0x00:0x20] >> 0xe0;
if (var0 == 0x3659cfe6) {
// Dispatch table entry for
upgradeTo(address)
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x00b6;
var2 = 0x04;
var var3 = msg.data.length - var2;
if (var3 < 0x20) { revert(memory[0x00:0x00]); }
upgradeTo(var2, var3);
stop();
} else if (var0 == 0x4f1ef286) {
// Dispatch table entry for
upgradeToAndCall(address,bytes)
var1 = 0x014f;
var2 = 0x04;
var3 = msg.data.length - var2;
if (var3 < 0x40) { revert(memory[0x00:0x00]); }
upgradeToAndCall(var2, var3);
stop();
} else if (var0 == 0x5c60da1b) {
// Dispatch table entry for
implementation()
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x0166;
var1 =
implementation();
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = var1 & 0xffffffffffffffffffffffffffffffffffffffff;
var temp4 = memory[0x40:0x60];
return memory[temp4:temp4 + (temp3 + 0x20) - temp4];
} else if (var0 == 0x8f283970) {
// Dispatch table entry for
changeAdmin(address)
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x01f7;
var2 = 0x04;
var3 = msg.data.length - var2;
if (var3 < 0x20) { revert(memory[0x00:0x00]); }
changeAdmin(var2, var3);
stop();
} else if (var0 == 0xf851a440) {
// Dispatch table entry for admin()
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x020e;
var1 =
func_0566();
var temp5 = memory[0x40:0x60];
memory[temp5:temp5 + 0x20] = var1 & 0xffffffffffffffffffffffffffffffffffffffff;
var temp6 = memory[0x40:0x60];
return memory[temp6:temp6 + (temp5 + 0x20) - temp6];
} else { goto label_005D; }
} else if (msg.data.length) {
label_005D:
var var0 = 0x0065;
label_0250:
var var1 = 0x0258;
func_05D1();
var1 = 0x0268;
var var2 = 0x0263;
var2 =
func_0667();
var temp0 = msg.data.length;
memory[0x00:0x00 + temp0] = msg.data[0x00:0x00 + temp0];
var temp1;
temp1, memory[0x00:0x00] = address(var2).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 {
var0 = 0x005b;
goto label_0250;
}
}
function upgradeTo(var arg0, var arg1) {
arg0 = msg.data[arg0:arg0 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffff;
arg1 = 0x0272;
arg1 =
func_06BE();
if (msg.sender != arg1 & 0xffffffffffffffffffffffffffffffffffffffff) {
arg1 = 0x02bb;
var var0 = 0x0258;
func_05D1();
var0 = 0x0268;
var var1 = 0x0263;
var1 =
func_0667();
var temp0 = msg.data.length;
memory[0x00:0x00 + temp0] = msg.data[0x00:0x00 + temp0];
var temp1;
temp1, memory[0x00:0x00] = address(var1).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 {
arg1 = 0x02ae;
var0 = arg0;
func_06EF(var0);
return;
}
}
function upgradeToAndCall(var arg0, var arg1) {
var temp0 = arg0;
var temp1 = temp0 + 0x20;
arg0 = msg.data[temp0:temp0 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffff;
arg1 = temp0 + arg1;
var var0 = temp0;
var var1 = temp1 + 0x20;
var var2 = msg.data[temp1:temp1 + 0x20];
if (var2 > 0x0100000000) { revert(memory[0x00:0x00]); }
var temp2 = var0 + var2;
var2 = temp2;
if (var2 + 0x20 > arg1) { revert(memory[0x00:0x00]); }
var temp3 = var2;
var temp4 = msg.data[temp3:temp3 + 0x20];
var2 = temp4;
var temp5 = var1;
var1 = temp3 + 0x20;
var var3 = temp5;
if ((var2 > 0x0100000000) | (var1 + var2 > arg1)) { revert(memory[0x00:0x00]); }
var0 = var2;
arg1 = var1;
var1 = 0x02c7;
var1 =
func_06BE();
if (msg.sender != var1 & 0xffffffffffffffffffffffffffffffffffffffff) {
var1 = 0x038f;
var2 = 0x0258;
func_05D1();
var2 = 0x0268;
var3 = 0x0263;
var3 =
func_0667();
var temp6 = msg.data.length;
memory[0x00:0x00 + temp6] = msg.data[0x00:0x00 + temp6];
var temp7;
temp7, memory[0x00:0x00] = address(var3).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]);
var temp8 = returndata.length;
memory[0x00:0x00 + temp8] = returndata[0x00:0x00 + temp8];
if (temp7 == 0x00) { revert(memory[0x00:0x00 + returndata.length]); }
else { return memory[0x00:0x00 + returndata.length]; }
} else {
var1 = 0x0303;
var2 = arg0;
func_06EF(var2);
var1 = 0x00;
var temp9 = var0;
var temp10 = memory[0x40:0x60];
memory[temp10:temp10 + temp9] = msg.data[arg1:arg1 + temp9];
var temp11 = memory[0x40:0x60];
var temp12;
temp12, memory[temp11:temp11 + 0x00] = address(arg0 & 0xffffffffffffffffffffffffffffffffffffffff).delegatecall.gas(msg.gas)(memory[temp11:temp11 + (temp10 + temp9) - temp11]);
var3 = returndata.length;
var var4 = var3;
if (var4 == 0x00) {
var1 = var2;
if (!var1) { revert(memory[0x00:0x00]); }
label_0381:
return;
} else {
var temp13 = memory[0x40:0x60];
var3 = temp13;
memory[0x40:0x60] = var3 + (returndata.length + 0x3f & ~0x1f);
memory[var3:var3 + 0x20] = returndata.length;
var temp14 = returndata.length;
memory[var3 + 0x20:var3 + 0x20 + temp14] = returndata[0x00:0x00 + temp14];
var1 = var2;
if (var1) { goto label_0381; }
else { revert(memory[0x00:0x00]); }
}
}
}
function changeAdmin(var arg0, var arg1) {
arg0 = msg.data[arg0:arg0 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffff;
arg1 = 0x03f5;
arg1 =
func_06BE();
if (msg.sender != arg1 & 0xffffffffffffffffffffffffffffffffffffffff) {
arg1 = 0x0562;
var var0 = 0x0258;
func_05D1();
var0 = 0x0268;
var var1 = 0x0263;
var1 =
func_0667();
var temp0 = msg.data.length;
memory[0x00:0x00 + temp0] = msg.data[0x00:0x00 + temp0];
var temp1;
temp1, memory[0x00:0x00] = address(var1).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 if (arg0 & 0xffffffffffffffffffffffffffffffffffffffff != 0xffffffffffffffffffffffffffffffffffffffff & 0x00) {
arg1 = 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f;
var0 = 0x04d7;
var0 =
func_06BE();
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = var0 & 0xffffffffffffffffffffffffffffffffffffffff;
var temp4 = temp3 + 0x20;
memory[temp4:temp4 + 0x20] = arg0 & 0xffffffffffffffffffffffffffffffffffffffff;
var temp5 = memory[0x40:0x60];
log(memory[temp5:temp5 + (temp4 + 0x20) - temp5], [stack[-2]]);
arg1 = 0x0555;
var0 = arg0;
func_073E(var0);
return;
} else {
var temp6 = memory[0x40:0x60];
memory[temp6:temp6 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var temp7 = temp6 + 0x04;
var temp8 = temp7 + 0x20;
memory[temp7:temp7 + 0x20] = temp8 - temp7;
memory[temp8:temp8 + 0x20] = 0x36;
var temp9 = temp8 + 0x20;
memory[temp9:temp9 + 0x36] = code[0x082f:0x0865];
var temp10 = memory[0x40:0x60];
revert(memory[temp10:temp10 + (temp9 + 0x40) - temp10]);
}
}
function implementation() returns (var r0) {
var var0 = 0x00;
var var1 = 0x039f;
var1 =
func_06BE();
if (msg.sender != var1 & 0xffffffffffffffffffffffffffffffffffffffff) {
var1 = 0x03e9;
var var2 = 0x0258;
func_05D1();
var2 = 0x0268;
var var3 = 0x0263;
var3 =
func_0667();
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 = 0x03da;
return
func_0667();
}
}
function func_0566() returns (var r0) {
var var0 = 0x00;
var var1 = 0x0570;
var1 =
func_06BE();
if (msg.sender != var1 & 0xffffffffffffffffffffffffffffffffffffffff) {
var1 = 0x05ba;
var var2 = 0x0258;
func_05D1();
var2 = 0x0268;
var var3 = 0x0263;
var3 =
func_0667();
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 = 0x05ab;
return
func_06BE();
}
}
function func_05BE(var arg0) returns (var r0) { return address(arg0).code.length > 0x00; }
function func_05D1() {
var var0 = 0x05d9;
var0 =
func_06BE();
if (msg.sender != var0 & 0xffffffffffffffffffffffffffffffffffffffff) {
var0 = 0x0665;
func_076D();
return;
} else {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var temp1 = temp0 + 0x04;
var temp2 = temp1 + 0x20;
memory[temp1:temp1 + 0x20] = temp2 - temp1;
memory[temp2:temp2 + 0x20] = 0x32;
var temp3 = temp2 + 0x20;
memory[temp3:temp3 + 0x32] = code[0x07fd:0x082f];
var temp4 = memory[0x40:0x60];
revert(memory[temp4:temp4 + (temp3 + 0x40) - temp4]);
}
}
function func_0667() returns (var r0) { return storage[0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc]; }
function func_06BE() returns (var r0) { return storage[0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103]; }
function func_06EF(var arg0) {
var var0 = 0x06f8;
var var1 = arg0;
func_076F(var1);
var temp0 = memory[0x40:0x60];
log(memory[temp0:temp0 + memory[0x40:0x60] - temp0], [0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b, stack[-1] & 0xffffffffffffffffffffffffffffffffffffffff]);
}
function func_073E(var arg0) {
storage[0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103] = arg0;
}
function func_076D() {}
function func_076F(var arg0) {
var var0 = 0x0778;
var var1 = arg0;
var0 =
func_05BE(var1);
if (var0) {
storage[0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc] = arg0;
return;
} else {
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var temp1 = temp0 + 0x04;
var temp2 = temp1 + 0x20;
memory[temp1:temp1 + 0x20] = temp2 - temp1;
memory[temp2:temp2 + 0x20] = 0x3b;
var temp3 = temp2 + 0x20;
memory[temp3:temp3 + 0x3b] = code[0x0865:0x08a0];
var temp4 = memory[0x40:0x60];
revert(memory[temp4:temp4 + (temp3 + 0x40) - temp4]);
}
}
}
label_0000:
0000 60 PUSH1 0x80
0002 60 PUSH1 0x40
0004 52 MSTORE
0005 60 PUSH1 0x04
0007 36 CALLDATASIZE
0008 10 LT
0009 61 PUSH2 0x004e
000C 57 *JUMPI
label_000D:
000D 60 PUSH1 0x00
000F 35 CALLDATALOAD
0010 60 PUSH1 0xe0
0012 1C SHR
0013 80 DUP1
0014 63 PUSH4 0x3659cfe6
0019 14 EQ
001A 61 PUSH2 0x0067
001D 57 *JUMPI
label_001E:
001E 80 DUP1
001F 63 PUSH4 0x4f1ef286
0024 14 EQ
0025 61 PUSH2 0x00b8
0028 57 *JUMPI
label_0029:
0029 80 DUP1
002A 63 PUSH4 0x5c60da1b
002F 14 EQ
0030 61 PUSH2 0x0151
0033 57 *JUMPI
label_0034:
0034 80 DUP1
0035 63 PUSH4 0x8f283970
003A 14 EQ
003B 61 PUSH2 0x01a8
003E 57 *JUMPI
label_003F:
003F 80 DUP1
0040 63 PUSH4 0xf851a440
0045 14 EQ
0046 61 PUSH2 0x01f9
0049 57 *JUMPI
label_004A:
004A 61 PUSH2 0x005d
004D 56 *JUMP
label_004E:
004E 5B JUMPDEST
004F 36 CALLDATASIZE
0050 61 PUSH2 0x005d
0053 57 *JUMPI
label_0054:
0054 61 PUSH2 0x005b
0057 61 PUSH2 0x0250
005A 56 *JUMP
005B 5B JUMPDEST
005C 00 *STOP
label_005D:
005D 5B JUMPDEST
005E 61 PUSH2 0x0065
0061 61 PUSH2 0x0250
0064 56 *JUMP
0065 5B JUMPDEST
0066 00 *STOP
label_0067:
0067 5B JUMPDEST
0068 34 CALLVALUE
0069 80 DUP1
006A 15 ISZERO
006B 61 PUSH2 0x0073
006E 57 *JUMPI
label_006F:
006F 60 PUSH1 0x00
0071 80 DUP1
0072 FD *REVERT
label_0073:
0073 5B JUMPDEST
0074 50 POP
0075 61 PUSH2 0x00b6
0078 60 PUSH1 0x04
007A 80 DUP1
007B 36 CALLDATASIZE
007C 03 SUB
007D 60 PUSH1 0x20
007F 81 DUP2
0080 10 LT
0081 15 ISZERO
0082 61 PUSH2 0x008a
0085 57 *JUMPI
label_0086:
0086 60 PUSH1 0x00
0088 80 DUP1
0089 FD *REVERT
label_008A:
008A 5B JUMPDEST
008B 81 DUP2
008C 01 ADD
008D 90 SWAP1
008E 80 DUP1
008F 80 DUP1
0090 35 CALLDATALOAD
0091 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00A6 16 AND
00A7 90 SWAP1
00A8 60 PUSH1 0x20
00AA 01 ADD
00AB 90 SWAP1
00AC 92 SWAP3
00AD 91 SWAP2
00AE 90 SWAP1
00AF 50 POP
00B0 50 POP
00B1 50 POP
00B2 61 PUSH2 0x026a
00B5 56 *JUMP
label_00B6:
00B6 5B JUMPDEST
00B7 00 *STOP
label_00B8:
00B8 5B JUMPDEST
00B9 61 PUSH2 0x014f
00BC 60 PUSH1 0x04
00BE 80 DUP1
00BF 36 CALLDATASIZE
00C0 03 SUB
00C1 60 PUSH1 0x40
00C3 81 DUP2
00C4 10 LT
00C5 15 ISZERO
00C6 61 PUSH2 0x00ce
00C9 57 *JUMPI
label_00CA:
00CA 60 PUSH1 0x00
00CC 80 DUP1
00CD FD *REVERT
label_00CE:
00CE 5B JUMPDEST
00CF 81 DUP2
00D0 01 ADD
00D1 90 SWAP1
00D2 80 DUP1
00D3 80 DUP1
00D4 35 CALLDATALOAD
00D5 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00EA 16 AND
00EB 90 SWAP1
00EC 60 PUSH1 0x20
00EE 01 ADD
00EF 90 SWAP1
00F0 92 SWAP3
00F1 91 SWAP2
00F2 90 SWAP1
00F3 80 DUP1
00F4 35 CALLDATALOAD
00F5 90 SWAP1
00F6 60 PUSH1 0x20
00F8 01 ADD
00F9 90 SWAP1
00FA 64 PUSH5 0x0100000000
0100 81 DUP2
0101 11 GT
0102 15 ISZERO
0103 61 PUSH2 0x010b
0106 57 *JUMPI
label_0107:
0107 60 PUSH1 0x00
0109 80 DUP1
010A FD *REVERT
label_010B:
010B 5B JUMPDEST
010C 82 DUP3
010D 01 ADD
010E 83 DUP4
010F 60 PUSH1 0x20
0111 82 DUP3
0112 01 ADD
0113 11 GT
0114 15 ISZERO
0115 61 PUSH2 0x011d
0118 57 *JUMPI
label_0119:
0119 60 PUSH1 0x00
011B 80 DUP1
011C FD *REVERT
label_011D:
011D 5B JUMPDEST
011E 80 DUP1
011F 35 CALLDATALOAD
0120 90 SWAP1
0121 60 PUSH1 0x20
0123 01 ADD
0124 91 SWAP2
0125 84 DUP5
0126 60 PUSH1 0x01
0128 83 DUP4
0129 02 MUL
012A 84 DUP5
012B 01 ADD
012C 11 GT
012D 64 PUSH5 0x0100000000
0133 83 DUP4
0134 11 GT
0135 17 OR
0136 15 ISZERO
0137 61 PUSH2 0x013f
013A 57 *JUMPI
label_013B:
013B 60 PUSH1 0x00
013D 80 DUP1
013E FD *REVERT
label_013F:
013F 5B JUMPDEST
0140 90 SWAP1
0141 91 SWAP2
0142 92 SWAP3
0143 93 SWAP4
0144 91 SWAP2
0145 92 SWAP3
0146 93 SWAP4
0147 90 SWAP1
0148 50 POP
0149 50 POP
014A 50 POP
014B 61 PUSH2 0x02bf
014E 56 *JUMP
label_014F:
014F 5B JUMPDEST
0150 00 *STOP
label_0151:
0151 5B JUMPDEST
0152 34 CALLVALUE
0153 80 DUP1
0154 15 ISZERO
0155 61 PUSH2 0x015d
0158 57 *JUMPI
label_0159:
0159 60 PUSH1 0x00
015B 80 DUP1
015C FD *REVERT
label_015D:
015D 5B JUMPDEST
015E 50 POP
015F 61 PUSH2 0x0166
0162 61 PUSH2 0x0395
0165 56 *JUMP
label_0166:
0166 5B JUMPDEST
0167 60 PUSH1 0x40
0169 51 MLOAD
016A 80 DUP1
016B 82 DUP3
016C 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0181 16 AND
0182 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0197 16 AND
0198 81 DUP2
0199 52 MSTORE
019A 60 PUSH1 0x20
019C 01 ADD
019D 91 SWAP2
019E 50 POP
019F 50 POP
01A0 60 PUSH1 0x40
01A2 51 MLOAD
01A3 80 DUP1
01A4 91 SWAP2
01A5 03 SUB
01A6 90 SWAP1
01A7 F3 *RETURN
label_01A8:
01A8 5B JUMPDEST
01A9 34 CALLVALUE
01AA 80 DUP1
01AB 15 ISZERO
01AC 61 PUSH2 0x01b4
01AF 57 *JUMPI
label_01B0:
01B0 60 PUSH1 0x00
01B2 80 DUP1
01B3 FD *REVERT
label_01B4:
01B4 5B JUMPDEST
01B5 50 POP
01B6 61 PUSH2 0x01f7
01B9 60 PUSH1 0x04
01BB 80 DUP1
01BC 36 CALLDATASIZE
01BD 03 SUB
01BE 60 PUSH1 0x20
01C0 81 DUP2
01C1 10 LT
01C2 15 ISZERO
01C3 61 PUSH2 0x01cb
01C6 57 *JUMPI
label_01C7:
01C7 60 PUSH1 0x00
01C9 80 DUP1
01CA FD *REVERT
label_01CB:
01CB 5B JUMPDEST
01CC 81 DUP2
01CD 01 ADD
01CE 90 SWAP1
01CF 80 DUP1
01D0 80 DUP1
01D1 35 CALLDATALOAD
01D2 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
01E7 16 AND
01E8 90 SWAP1
01E9 60 PUSH1 0x20
01EB 01 ADD
01EC 90 SWAP1
01ED 92 SWAP3
01EE 91 SWAP2
01EF 90 SWAP1
01F0 50 POP
01F1 50 POP
01F2 50 POP
01F3 61 PUSH2 0x03ed
01F6 56 *JUMP
label_01F7:
01F7 5B JUMPDEST
01F8 00 *STOP
label_01F9:
01F9 5B JUMPDEST
01FA 34 CALLVALUE
01FB 80 DUP1
01FC 15 ISZERO
01FD 61 PUSH2 0x0205
0200 57 *JUMPI
label_0201:
0201 60 PUSH1 0x00
0203 80 DUP1
0204 FD *REVERT
label_0205:
0205 5B JUMPDEST
0206 50 POP
0207 61 PUSH2 0x020e
020A 61 PUSH2 0x0566
020D 56 *JUMP
label_020E:
020E 5B JUMPDEST
020F 60 PUSH1 0x40
0211 51 MLOAD
0212 80 DUP1
0213 82 DUP3
0214 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0229 16 AND
022A 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
023F 16 AND
0240 81 DUP2
0241 52 MSTORE
0242 60 PUSH1 0x20
0244 01 ADD
0245 91 SWAP2
0246 50 POP
0247 50 POP
0248 60 PUSH1 0x40
024A 51 MLOAD
024B 80 DUP1
024C 91 SWAP2
024D 03 SUB
024E 90 SWAP1
024F F3 *RETURN
label_0250:
0250 5B JUMPDEST
0251 61 PUSH2 0x0258
0254 61 PUSH2 0x05d1
0257 56 *JUMP
label_0258:
0258 5B JUMPDEST
0259 61 PUSH2 0x0268
025C 61 PUSH2 0x0263
025F 61 PUSH2 0x0667
0262 56 *JUMP
label_0263:
0263 5B JUMPDEST
0264 61 PUSH2 0x0698
0267 56 *JUMP
0268 5B JUMPDEST
0269 56 *JUMP
label_026A:
026A 5B JUMPDEST
026B 61 PUSH2 0x0272
026E 61 PUSH2 0x06be
0271 56 *JUMP
label_0272:
0272 5B JUMPDEST
0273 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0288 16 AND
0289 33 CALLER
028A 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
029F 16 AND
02A0 14 EQ
02A1 15 ISZERO
02A2 61 PUSH2 0x02b3
02A5 57 *JUMPI
label_02A6:
02A6 61 PUSH2 0x02ae
02A9 81 DUP2
02AA 61 PUSH2 0x06ef
02AD 56 *JUMP
label_02AE:
02AE 5B JUMPDEST
02AF 61 PUSH2 0x02bc
02B2 56 *JUMP
label_02B3:
02B3 5B JUMPDEST
02B4 61 PUSH2 0x02bb
02B7 61 PUSH2 0x0250
02BA 56 *JUMP
02BB 5B JUMPDEST
label_02BC:
02BC 5B JUMPDEST
02BD 50 POP
02BE 56 *JUMP
label_02BF:
02BF 5B JUMPDEST
02C0 61 PUSH2 0x02c7
02C3 61 PUSH2 0x06be
02C6 56 *JUMP
label_02C7:
02C7 5B JUMPDEST
02C8 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
02DD 16 AND
02DE 33 CALLER
02DF 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
02F4 16 AND
02F5 14 EQ
02F6 15 ISZERO
02F7 61 PUSH2 0x0387
02FA 57 *JUMPI
label_02FB:
02FB 61 PUSH2 0x0303
02FE 83 DUP4
02FF 61 PUSH2 0x06ef
0302 56 *JUMP
label_0303:
0303 5B JUMPDEST
0304 60 PUSH1 0x00
0306 83 DUP4
0307 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
031C 16 AND
031D 83 DUP4
031E 83 DUP4
031F 60 PUSH1 0x40
0321 51 MLOAD
0322 80 DUP1
0323 83 DUP4
0324 83 DUP4
0325 80 DUP1
0326 82 DUP3
0327 84 DUP5
0328 37 CALLDATACOPY
0329 80 DUP1
032A 83 DUP4
032B 01 ADD
032C 92 SWAP3
032D 50 POP
032E 50 POP
032F 50 POP
0330 92 SWAP3
0331 50 POP
0332 50 POP
0333 50 POP
0334 60 PUSH1 0x00
0336 60 PUSH1 0x40
0338 51 MLOAD
0339 80 DUP1
033A 83 DUP4
033B 03 SUB
033C 81 DUP2
033D 85 DUP6
033E 5A GAS
033F F4 DELEGATECALL
0340 91 SWAP2
0341 50 POP
0342 50 POP
0343 3D RETURNDATASIZE
0344 80 DUP1
0345 60 PUSH1 0x00
0347 81 DUP2
0348 14 EQ
0349 61 PUSH2 0x036e
034C 57 *JUMPI
label_034D:
034D 60 PUSH1 0x40
034F 51 MLOAD
0350 91 SWAP2
0351 50 POP
0352 60 PUSH1 0x1f
0354 19 NOT
0355 60 PUSH1 0x3f
0357 3D RETURNDATASIZE
0358 01 ADD
0359 16 AND
035A 82 DUP3
035B 01 ADD
035C 60 PUSH1 0x40
035E 52 MSTORE
035F 3D RETURNDATASIZE
0360 82 DUP3
0361 52 MSTORE
0362 3D RETURNDATASIZE
0363 60 PUSH1 0x00
0365 60 PUSH1 0x20
0367 84 DUP5
0368 01 ADD
0369 3E RETURNDATACOPY
036A 61 PUSH2 0x0373
036D 56 *JUMP
label_036E:
036E 5B JUMPDEST
036F 60 PUSH1 0x60
0371 91 SWAP2
0372 50 POP
0373 5B JUMPDEST
0374 50 POP
0375 50 POP
0376 90 SWAP1
0377 50 POP
0378 80 DUP1
0379 61 PUSH2 0x0381
037C 57 *JUMPI
label_037D:
037D 60 PUSH1 0x00
037F 80 DUP1
0380 FD *REVERT
label_0381:
0381 5B JUMPDEST
0382 50 POP
0383 61 PUSH2 0x0390
0386 56 *JUMP
label_0387:
0387 5B JUMPDEST
0388 61 PUSH2 0x038f
038B 61 PUSH2 0x0250
038E 56 *JUMP
038F 5B JUMPDEST
label_0390:
0390 5B JUMPDEST
0391 50 POP
0392 50 POP
0393 50 POP
0394 56 *JUMP
label_0395:
0395 5B JUMPDEST
0396 60 PUSH1 0x00
0398 61 PUSH2 0x039f
039B 61 PUSH2 0x06be
039E 56 *JUMP
label_039F:
039F 5B JUMPDEST
03A0 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
03B5 16 AND
03B6 33 CALLER
03B7 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
03CC 16 AND
03CD 14 EQ
03CE 15 ISZERO
03CF 61 PUSH2 0x03e1
03D2 57 *JUMPI
label_03D3:
03D3 61 PUSH2 0x03da
03D6 61 PUSH2 0x0667
03D9 56 *JUMP
label_03DA:
03DA 5B JUMPDEST
03DB 90 SWAP1
03DC 50 POP
03DD 61 PUSH2 0x03ea
03E0 56 *JUMP
label_03E1:
03E1 5B JUMPDEST
03E2 61 PUSH2 0x03e9
03E5 61 PUSH2 0x0250
03E8 56 *JUMP
03E9 5B JUMPDEST
label_03EA:
03EA 5B JUMPDEST
03EB 90 SWAP1
03EC 56 *JUMP
label_03ED:
03ED 5B JUMPDEST
03EE 61 PUSH2 0x03f5
03F1 61 PUSH2 0x06be
03F4 56 *JUMP
label_03F5:
03F5 5B JUMPDEST
03F6 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
040B 16 AND
040C 33 CALLER
040D 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0422 16 AND
0423 14 EQ
0424 15 ISZERO
0425 61 PUSH2 0x055a
0428 57 *JUMPI
label_0429:
0429 60 PUSH1 0x00
042B 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0440 16 AND
0441 81 DUP2
0442 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0457 16 AND
0458 14 EQ
0459 15 ISZERO
045A 61 PUSH2 0x04ae
045D 57 *JUMPI
label_045E:
045E 60 PUSH1 0x40
0460 51 MLOAD
0461 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0482 81 DUP2
0483 52 MSTORE
0484 60 PUSH1 0x04
0486 01 ADD
0487 80 DUP1
0488 80 DUP1
0489 60 PUSH1 0x20
048B 01 ADD
048C 82 DUP3
048D 81 DUP2
048E 03 SUB
048F 82 DUP3
0490 52 MSTORE
0491 60 PUSH1 0x36
0493 81 DUP2
0494 52 MSTORE
0495 60 PUSH1 0x20
0497 01 ADD
0498 80 DUP1
0499 61 PUSH2 0x082f
049C 60 PUSH1 0x36
049E 91 SWAP2
049F 39 CODECOPY
04A0 60 PUSH1 0x40
04A2 01 ADD
04A3 91 SWAP2
04A4 50 POP
04A5 50 POP
04A6 60 PUSH1 0x40
04A8 51 MLOAD
04A9 80 DUP1
04AA 91 SWAP2
04AB 03 SUB
04AC 90 SWAP1
04AD FD *REVERT
label_04AE:
04AE 5B JUMPDEST
04AF 7F PUSH32 0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f
04D0 61 PUSH2 0x04d7
04D3 61 PUSH2 0x06be
04D6 56 *JUMP
label_04D7:
04D7 5B JUMPDEST
04D8 82 DUP3
04D9 60 PUSH1 0x40
04DB 51 MLOAD
04DC 80 DUP1
04DD 83 DUP4
04DE 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
04F3 16 AND
04F4 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0509 16 AND
050A 81 DUP2
050B 52 MSTORE
050C 60 PUSH1 0x20
050E 01 ADD
050F 82 DUP3
0510 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0525 16 AND
0526 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
053B 16 AND
053C 81 DUP2
053D 52 MSTORE
053E 60 PUSH1 0x20
0540 01 ADD
0541 92 SWAP3
0542 50 POP
0543 50 POP
0544 50 POP
0545 60 PUSH1 0x40
0547 51 MLOAD
0548 80 DUP1
0549 91 SWAP2
054A 03 SUB
054B 90 SWAP1
054C A1 LOG1
054D 61 PUSH2 0x0555
0550 81 DUP2
0551 61 PUSH2 0x073e
0554 56 *JUMP
label_0555:
0555 5B JUMPDEST
0556 61 PUSH2 0x0563
0559 56 *JUMP
label_055A:
055A 5B JUMPDEST
055B 61 PUSH2 0x0562
055E 61 PUSH2 0x0250
0561 56 *JUMP
0562 5B JUMPDEST
label_0563:
0563 5B JUMPDEST
0564 50 POP
0565 56 *JUMP
label_0566:
0566 5B JUMPDEST
0567 60 PUSH1 0x00
0569 61 PUSH2 0x0570
056C 61 PUSH2 0x06be
056F 56 *JUMP
label_0570:
0570 5B JUMPDEST
0571 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0586 16 AND
0587 33 CALLER
0588 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
059D 16 AND
059E 14 EQ
059F 15 ISZERO
05A0 61 PUSH2 0x05b2
05A3 57 *JUMPI
label_05A4:
05A4 61 PUSH2 0x05ab
05A7 61 PUSH2 0x06be
05AA 56 *JUMP
label_05AB:
05AB 5B JUMPDEST
05AC 90 SWAP1
05AD 50 POP
05AE 61 PUSH2 0x05bb
05B1 56 *JUMP
label_05B2:
05B2 5B JUMPDEST
05B3 61 PUSH2 0x05ba
05B6 61 PUSH2 0x0250
05B9 56 *JUMP
05BA 5B JUMPDEST
label_05BB:
05BB 5B JUMPDEST
05BC 90 SWAP1
05BD 56 *JUMP
label_05BE:
05BE 5B JUMPDEST
05BF 60 PUSH1 0x00
05C1 80 DUP1
05C2 82 DUP3
05C3 3B EXTCODESIZE
05C4 90 SWAP1
05C5 50 POP
05C6 60 PUSH1 0x00
05C8 81 DUP2
05C9 11 GT
05CA 91 SWAP2
05CB 50 POP
05CC 50 POP
05CD 91 SWAP2
05CE 90 SWAP1
05CF 50 POP
05D0 56 *JUMP
label_05D1:
05D1 5B JUMPDEST
05D2 61 PUSH2 0x05d9
05D5 61 PUSH2 0x06be
05D8 56 *JUMP
label_05D9:
05D9 5B JUMPDEST
05DA 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
05EF 16 AND
05F0 33 CALLER
05F1 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0606 16 AND
0607 14 EQ
0608 15 ISZERO
0609 61 PUSH2 0x065d
060C 57 *JUMPI
label_060D:
060D 60 PUSH1 0x40
060F 51 MLOAD
0610 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0631 81 DUP2
0632 52 MSTORE
0633 60 PUSH1 0x04
0635 01 ADD
0636 80 DUP1
0637 80 DUP1
0638 60 PUSH1 0x20
063A 01 ADD
063B 82 DUP3
063C 81 DUP2
063D 03 SUB
063E 82 DUP3
063F 52 MSTORE
0640 60 PUSH1 0x32
0642 81 DUP2
0643 52 MSTORE
0644 60 PUSH1 0x20
0646 01 ADD
0647 80 DUP1
0648 61 PUSH2 0x07fd
064B 60 PUSH1 0x32
064D 91 SWAP2
064E 39 CODECOPY
064F 60 PUSH1 0x40
0651 01 ADD
0652 91 SWAP2
0653 50 POP
0654 50 POP
0655 60 PUSH1 0x40
0657 51 MLOAD
0658 80 DUP1
0659 91 SWAP2
065A 03 SUB
065B 90 SWAP1
065C FD *REVERT
label_065D:
065D 5B JUMPDEST
065E 61 PUSH2 0x0665
0661 61 PUSH2 0x076d
0664 56 *JUMP
label_0665:
0665 5B JUMPDEST
0666 56 *JUMP
label_0667:
0667 5B JUMPDEST
0668 60 PUSH1 0x00
066A 80 DUP1
066B 7F PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
068C 60 PUSH1 0x00
068E 1B SHL
068F 90 SWAP1
0690 50 POP
0691 80 DUP1
0692 54 SLOAD
0693 91 SWAP2
0694 50 POP
0695 50 POP
0696 90 SWAP1
0697 56 *JUMP
label_0698:
0698 5B JUMPDEST
0699 36 CALLDATASIZE
069A 60 PUSH1 0x00
069C 80 DUP1
069D 37 CALLDATACOPY
069E 60 PUSH1 0x00
06A0 80 DUP1
06A1 36 CALLDATASIZE
06A2 60 PUSH1 0x00
06A4 84 DUP5
06A5 5A GAS
06A6 F4 DELEGATECALL
06A7 3D RETURNDATASIZE
06A8 60 PUSH1 0x00
06AA 80 DUP1
06AB 3E RETURNDATACOPY
06AC 80 DUP1
06AD 60 PUSH1 0x00
06AF 81 DUP2
06B0 14 EQ
06B1 61 PUSH2 0x06b9
06B4 57 *JUMPI
label_06B5:
06B5 3D RETURNDATASIZE
06B6 60 PUSH1 0x00
06B8 F3 *RETURN
label_06B9:
06B9 5B JUMPDEST
06BA 3D RETURNDATASIZE
06BB 60 PUSH1 0x00
06BD FD *REVERT
label_06BE:
06BE 5B JUMPDEST
06BF 60 PUSH1 0x00
06C1 80 DUP1
06C2 7F PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
06E3 60 PUSH1 0x00
06E5 1B SHL
06E6 90 SWAP1
06E7 50 POP
06E8 80 DUP1
06E9 54 SLOAD
06EA 91 SWAP2
06EB 50 POP
06EC 50 POP
06ED 90 SWAP1
06EE 56 *JUMP
label_06EF:
06EF 5B JUMPDEST
06F0 61 PUSH2 0x06f8
06F3 81 DUP2
06F4 61 PUSH2 0x076f
06F7 56 *JUMP
label_06F8:
06F8 5B JUMPDEST
06F9 80 DUP1
06FA 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
070F 16 AND
0710 7F PUSH32 0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b
0731 60 PUSH1 0x40
0733 51 MLOAD
0734 60 PUSH1 0x40
0736 51 MLOAD
0737 80 DUP1
0738 91 SWAP2
0739 03 SUB
073A 90 SWAP1
073B A2 LOG2
073C 50 POP
073D 56 *JUMP
label_073E:
073E 5B JUMPDEST
073F 60 PUSH1 0x00
0741 7F PUSH32 0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103
0762 60 PUSH1 0x00
0764 1B SHL
0765 90 SWAP1
0766 50 POP
0767 81 DUP2
0768 81 DUP2
0769 55 SSTORE
076A 50 POP
076B 50 POP
076C 56 *JUMP
label_076D:
076D 5B JUMPDEST
076E 56 *JUMP
label_076F:
076F 5B JUMPDEST
0770 61 PUSH2 0x0778
0773 81 DUP2
0774 61 PUSH2 0x05be
0777 56 *JUMP
label_0778:
0778 5B JUMPDEST
0779 61 PUSH2 0x07cd
077C 57 *JUMPI
label_077D:
077D 60 PUSH1 0x40
077F 51 MLOAD
0780 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
07A1 81 DUP2
07A2 52 MSTORE
07A3 60 PUSH1 0x04
07A5 01 ADD
07A6 80 DUP1
07A7 80 DUP1
07A8 60 PUSH1 0x20
07AA 01 ADD
07AB 82 DUP3
07AC 81 DUP2
07AD 03 SUB
07AE 82 DUP3
07AF 52 MSTORE
07B0 60 PUSH1 0x3b
07B2 81 DUP2
07B3 52 MSTORE
07B4 60 PUSH1 0x20
07B6 01 ADD
07B7 80 DUP1
07B8 61 PUSH2 0x0865
07BB 60 PUSH1 0x3b
07BD 91 SWAP2
07BE 39 CODECOPY
07BF 60 PUSH1 0x40
07C1 01 ADD
07C2 91 SWAP2
07C3 50 POP
07C4 50 POP
07C5 60 PUSH1 0x40
07C7 51 MLOAD
07C8 80 DUP1
07C9 91 SWAP2
07CA 03 SUB
07CB 90 SWAP1
07CC FD *REVERT
label_07CD:
07CD 5B JUMPDEST
07CE 60 PUSH1 0x00
07D0 7F PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
07F1 60 PUSH1 0x00
07F3 1B SHL
07F4 90 SWAP1
07F5 50 POP
07F6 81 DUP2
07F7 81 DUP2
07F8 55 SSTORE
07F9 50 POP
07FA 50 POP
07FB 56 *JUMP
07FC FE *ASSERT
07FD 43 NUMBER
07FE 61 PUSH2 0x6e6e
0801 6F PUSH16 0x742063616c6c2066616c6c6261636b20
0812 66 PUSH7 0x756e6374696f6e
081A 20 SHA3
081B 66 PUSH7 0x726f6d20746865
0823 20 SHA3
0824 70 PUSH17 0x726f78792061646d696e43616e6e6f7420
0836 63 PUSH4 0x68616e67
083B 65 PUSH6 0x207468652061
0842 64 PUSH5 0x6d696e206f
0848 66 PUSH7 0x20612070726f78
0850 79 PUSH26 0x20746f20746865207a65726f206164647265737343616e6e6f74
086B 20 SHA3
086C 73 PUSH20 0x657420612070726f787920696d706c656d656e74
0881 61 PUSH2 0x7469
0884 6F PUSH16 0x6e20746f2061206e6f6e2d636f6e7472
0895 61 PUSH2 0x6374
0898 20 SHA3
0899 61 PUSH2 0x6464
089C 72 PUSH19 0x657373a2646970667358221220b0503c23d64d
08B0 00 *STOP
08B1 87 DUP8
08B2 2F 2F
08B3 30 ADDRESS
08B4 9A SWAP11
08B5 F6 F6
08B6 EB EB
08B7 C4 C4
08B8 39 CODECOPY
08B9 40 BLOCKHASH
08BA 1F 1F
08BB 4A 4A
08BC 3A GASPRICE
08BD 52 MSTORE
08BE 89 DUP10
08BF BB BB
08C0 B6 B6
08C1 98 SWAP9
08C2 FA STATICCALL
08C3 4E 4E
08C4 5A GAS
08C5 AB AB
08C6 D7 D7
08C7 47 SELFBALANCE
08C8 64 PUSH5 0x2664736f6c
08CE 63 PUSH4 0x43000608
08D3 00 *STOP
08D4 33 CALLER