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 = 0x0110;
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 & 0x159a1f9ef9c2455a11e45ecbdd93ceac8157adbd;
var var6 = 0x005f;
var var7 = var0;
var var9 = memory[0x40:0x60];
var var8 = var1;
var6 =
func_012C(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_00E3:
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] = 0x0b;
memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x4c6f636b6564204974656d << 0xa8;
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_00E3; }
else { goto label_00AA; }
}
} else { stop(); }
}
function func_012C(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 0x00f0
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 0x159a1f9ef9c2455a11e45ecbdd93ceac8157adbd
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 0x012c
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 0x00e3
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 0x0b
00BF 60 PUSH1 0x24
00C1 82 DUP3
00C2 01 ADD
00C3 52 MSTORE
00C4 6A PUSH11 0x4c6f636b6564204974656d
00D0 60 PUSH1 0xa8
00D2 1B SHL
00D3 60 PUSH1 0x44
00D5 82 DUP3
00D6 01 ADD
00D7 52 MSTORE
00D8 60 PUSH1 0x64
00DA 01 ADD
00DB 60 PUSH1 0x40
00DD 51 MLOAD
00DE 80 DUP1
00DF 91 SWAP2
00E0 03 SUB
00E1 90 SWAP1
00E2 FD *REVERT
label_00E3:
00E3 5B JUMPDEST
00E4 80 DUP1
00E5 51 MLOAD
00E6 94 SWAP5
00E7 50 POP
00E8 60 PUSH1 0x20
00EA 01 ADD
00EB 92 SWAP3
00EC 50 POP
00ED 50 POP
00EE 50 POP
00EF F3 *RETURN
label_00F0:
00F0 5B JUMPDEST
00F1 34 CALLVALUE
00F2 80 DUP1
00F3 15 ISZERO
00F4 61 PUSH2 0x00fc
00F7 57 *JUMPI
label_00F8:
00F8 60 PUSH1 0x00
00FA 80 DUP1
00FB FD *REVERT
label_00FC:
00FC 5B JUMPDEST
00FD 50 POP
00FE 60 PUSH1 0x00
0100 54 SLOAD
0101 61 PUSH2 0x0110
0104 90 SWAP1
0105 60 PUSH1 0x01
0107 60 PUSH1 0x01
0109 60 PUSH1 0xa0
010B 1B SHL
010C 03 SUB
010D 16 AND
010E 81 DUP2
010F 56 *JUMP
label_0110:
0110 5B JUMPDEST
0111 60 PUSH1 0x40
0113 51 MLOAD
0114 60 PUSH1 0x01
0116 60 PUSH1 0x01
0118 60 PUSH1 0xa0
011A 1B SHL
011B 03 SUB
011C 90 SWAP1
011D 91 SWAP2
011E 16 AND
011F 81 DUP2
0120 52 MSTORE
0121 60 PUSH1 0x20
0123 01 ADD
0124 60 PUSH1 0x40
0126 51 MLOAD
0127 80 DUP1
0128 91 SWAP2
0129 03 SUB
012A 90 SWAP1
012B F3 *RETURN
label_012C:
012C 5B JUMPDEST
012D 81 DUP2
012E 83 DUP4
012F 82 DUP3
0130 37 CALLDATACOPY
0131 60 PUSH1 0x00
0133 91 SWAP2
0134 01 ADD
0135 90 SWAP1
0136 81 DUP2
0137 52 MSTORE
0138 91 SWAP2
0139 90 SWAP1
013A 50 POP
013B 56 *JUMP
013C FE *ASSERT
013D A2 LOG2
013E 64 PUSH5 0x6970667358
0144 22 22
0145 12 SLT
0146 20 SHA3
0147 97 SWAP8
0148 07 SMOD
0149 ED ED
014A C6 C6
014B BE BE
014C 1B SHL
014D AC AC
014E 60 PUSH1 0x31
0150 30 ADDRESS
0151 0F 0F
0152 F9 F9
0153 16 AND
0154 D6 D6
0155 39 CODECOPY
0156 C1 C1
0157 95 SWAP6
0158 B7 B7
0159 EE EE
015A F7 F7
015B DB DB
015C 67 PUSH8 0x4ab87ae243c7d9d4
0165 F8 F8
0166 4A 4A
0167 64 PUSH5 0x736f6c6343
016D 00 *STOP
016E 08 ADDMOD
016F 0D 0D
0170 00 *STOP
0171 33 CALLER