contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
if (msg.data.length >= 0x04) {
var0 = msg.data[0x00:0x20] >> 0xe0;
if (var0 != 0x8da5cb5b) { goto label_0029; }
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x0114;
var2 = storage[0x00] & (0x01 << 0xa0) - 0x01;
var temp7 = memory[0x40:0x60];
memory[temp7:temp7 + 0x20] = var2 & (0x01 << 0xa0) - 0x01;
var temp8 = memory[0x40:0x60];
return memory[temp8:temp8 + (temp7 + 0x20) - temp8];
} else if (msg.data.length) {
label_0029:
var var0 = 0x00;
var var1 = msg.data.length;
var var2 = 0x60;
var var3 = 0x00;
var var4 = var3;
var var5 = (0x01 << 0xa0) - 0x01 & 0x59bee5a7e3a52b78513161f1158c7770eb7b28e3;
var var6 = 0x005f;
var var7 = var0;
var var9 = memory[0x40:0x60];
var var8 = var1;
var6 =
func_0130(var7, var8, var9);
var temp0 = memory[0x40:0x60];
var temp1;
temp1, memory[temp0:temp0 + 0x00] = address(var5).delegatecall.gas(msg.gas)(memory[temp0:temp0 + var6 - temp0]);
var6 = returndata.length;
var7 = var6;
if (var7 == 0x00) {
var4 = 0x60;
var3 = var5;
if (var3) {
label_00E7:
var temp2 = var4;
return memory[temp2 + 0x20:temp2 + 0x20 + memory[temp2:temp2 + 0x20]];
} else {
label_00AA:
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5;
memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20;
memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x0f;
memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x24ba32b69034b9902637b1b5b2b217 << 0x89;
var temp4 = memory[0x40:0x60];
revert(memory[temp4:temp4 + (temp3 + 0x64) - temp4]);
}
} else {
var temp5 = memory[0x40:0x60];
var6 = temp5;
memory[0x40:0x60] = var6 + (returndata.length + 0x3f & ~0x1f);
memory[var6:var6 + 0x20] = returndata.length;
var temp6 = returndata.length;
memory[var6 + 0x20:var6 + 0x20 + temp6] = returndata[0x00:0x00 + temp6];
var4 = var6;
var3 = var5;
if (var3) { goto label_00E7; }
else { goto label_00AA; }
}
} else { stop(); }
}
function func_0130(var arg0, var arg1, var arg2) returns (var r0) {
var temp0 = arg1;
var temp1 = arg2;
memory[temp1:temp1 + temp0] = msg.data[arg0:arg0 + temp0];
memory[temp0 + temp1:temp0 + temp1 + 0x20] = 0x00;
return temp0 + temp1;
}
}
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 0x0022
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 0x8da5cb5b
0019 14 EQ
001A 61 PUSH2 0x00f4
001D 57 *JUMPI
label_001E:
001E 61 PUSH2 0x0029
0021 56 *JUMP
label_0022:
0022 5B JUMPDEST
0023 36 CALLDATASIZE
0024 61 PUSH2 0x0029
0027 57 *JUMPI
label_0028:
0028 00 *STOP
label_0029:
0029 5B JUMPDEST
002A 60 PUSH1 0x00
002C 36 CALLDATASIZE
002D 60 PUSH1 0x60
002F 60 PUSH1 0x00
0031 80 DUP1
0032 73 PUSH20 0x59bee5a7e3a52b78513161f1158c7770eb7b28e3
0047 60 PUSH1 0x01
0049 60 PUSH1 0x01
004B 60 PUSH1 0xa0
004D 1B SHL
004E 03 SUB
004F 16 AND
0050 85 DUP6
0051 85 DUP6
0052 60 PUSH1 0x40
0054 51 MLOAD
0055 61 PUSH2 0x005f
0058 92 SWAP3
0059 91 SWAP2
005A 90 SWAP1
005B 61 PUSH2 0x0130
005E 56 *JUMP
label_005F:
005F 5B JUMPDEST
0060 60 PUSH1 0x00
0062 60 PUSH1 0x40
0064 51 MLOAD
0065 80 DUP1
0066 83 DUP4
0067 03 SUB
0068 81 DUP2
0069 85 DUP6
006A 5A GAS
006B F4 DELEGATECALL
006C 91 SWAP2
006D 50 POP
006E 50 POP
006F 3D RETURNDATASIZE
0070 80 DUP1
0071 60 PUSH1 0x00
0073 81 DUP2
0074 14 EQ
0075 61 PUSH2 0x009a
0078 57 *JUMPI
label_0079:
0079 60 PUSH1 0x40
007B 51 MLOAD
007C 91 SWAP2
007D 50 POP
007E 60 PUSH1 0x1f
0080 19 NOT
0081 60 PUSH1 0x3f
0083 3D RETURNDATASIZE
0084 01 ADD
0085 16 AND
0086 82 DUP3
0087 01 ADD
0088 60 PUSH1 0x40
008A 52 MSTORE
008B 3D RETURNDATASIZE
008C 82 DUP3
008D 52 MSTORE
008E 3D RETURNDATASIZE
008F 60 PUSH1 0x00
0091 60 PUSH1 0x20
0093 84 DUP5
0094 01 ADD
0095 3E RETURNDATACOPY
0096 61 PUSH2 0x009f
0099 56 *JUMP
label_009A:
009A 5B JUMPDEST
009B 60 PUSH1 0x60
009D 91 SWAP2
009E 50 POP
009F 5B JUMPDEST
00A0 50 POP
00A1 91 SWAP2
00A2 50 POP
00A3 91 SWAP2
00A4 50 POP
00A5 81 DUP2
00A6 61 PUSH2 0x00e7
00A9 57 *JUMPI
label_00AA:
00AA 60 PUSH1 0x40
00AC 51 MLOAD
00AD 62 PUSH3 0x461bcd
00B1 60 PUSH1 0xe5
00B3 1B SHL
00B4 81 DUP2
00B5 52 MSTORE
00B6 60 PUSH1 0x20
00B8 60 PUSH1 0x04
00BA 82 DUP3
00BB 01 ADD
00BC 52 MSTORE
00BD 60 PUSH1 0x0f
00BF 60 PUSH1 0x24
00C1 82 DUP3
00C2 01 ADD
00C3 52 MSTORE
00C4 6E PUSH15 0x24ba32b69034b9902637b1b5b2b217
00D4 60 PUSH1 0x89
00D6 1B SHL
00D7 60 PUSH1 0x44
00D9 82 DUP3
00DA 01 ADD
00DB 52 MSTORE
00DC 60 PUSH1 0x64
00DE 01 ADD
00DF 60 PUSH1 0x40
00E1 51 MLOAD
00E2 80 DUP1
00E3 91 SWAP2
00E4 03 SUB
00E5 90 SWAP1
00E6 FD *REVERT
label_00E7:
00E7 5B JUMPDEST
00E8 80 DUP1
00E9 51 MLOAD
00EA 94 SWAP5
00EB 50 POP
00EC 60 PUSH1 0x20
00EE 01 ADD
00EF 92 SWAP3
00F0 50 POP
00F1 50 POP
00F2 50 POP
00F3 F3 *RETURN
label_00F4:
00F4 5B JUMPDEST
00F5 34 CALLVALUE
00F6 80 DUP1
00F7 15 ISZERO
00F8 61 PUSH2 0x0100
00FB 57 *JUMPI
label_00FC:
00FC 60 PUSH1 0x00
00FE 80 DUP1
00FF FD *REVERT
label_0100:
0100 5B JUMPDEST
0101 50 POP
0102 60 PUSH1 0x00
0104 54 SLOAD
0105 61 PUSH2 0x0114
0108 90 SWAP1
0109 60 PUSH1 0x01
010B 60 PUSH1 0x01
010D 60 PUSH1 0xa0
010F 1B SHL
0110 03 SUB
0111 16 AND
0112 81 DUP2
0113 56 *JUMP
label_0114:
0114 5B JUMPDEST
0115 60 PUSH1 0x40
0117 51 MLOAD
0118 60 PUSH1 0x01
011A 60 PUSH1 0x01
011C 60 PUSH1 0xa0
011E 1B SHL
011F 03 SUB
0120 90 SWAP1
0121 91 SWAP2
0122 16 AND
0123 81 DUP2
0124 52 MSTORE
0125 60 PUSH1 0x20
0127 01 ADD
0128 60 PUSH1 0x40
012A 51 MLOAD
012B 80 DUP1
012C 91 SWAP2
012D 03 SUB
012E 90 SWAP1
012F F3 *RETURN
label_0130:
0130 5B JUMPDEST
0131 81 DUP2
0132 83 DUP4
0133 82 DUP3
0134 37 CALLDATACOPY
0135 60 PUSH1 0x00
0137 91 SWAP2
0138 01 ADD
0139 90 SWAP1
013A 81 DUP2
013B 52 MSTORE
013C 91 SWAP2
013D 90 SWAP1
013E 50 POP
013F 56 *JUMP
0140 FE *ASSERT
0141 A2 LOG2
0142 64 PUSH5 0x6970667358
0148 22 22
0149 12 SLT
014A 20 SHA3
014B A2 LOG2
014C 54 SLOAD
014D 1F 1F
014E 79 PUSH26 0x7917701c2970368f2115d861766a3d4de447963c5d1ed22ce7eb
0169 2C 2C
016A 01 ADD
016B 64 PUSH5 0x736f6c6343
0171 00 *STOP
0172 08 ADDMOD
0173 0D 0D
0174 00 *STOP
0175 33 CALLER