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 = 0x013c;
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 & 0x6148378844e5b192a768e4c31b266276dae08c01;
var var6 = 0x005f;
var var7 = var0;
var var9 = memory[0x40:0x60];
var var8 = var1;
var6 =
func_0158(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_010F:
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] = 0x31;
memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x4974656d206973204c6f636b65642e205669736974207765627369746520746f;
memory[temp3 + 0x64:temp3 + 0x64 + 0x20] = 0x102ab73637b1b5903a34329034ba32b697 << 0x79;
var temp4 = memory[0x40:0x60];
revert(memory[temp4:temp4 + (temp3 + 0x84) - 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_010F; }
else { goto label_00AA; }
}
} else { stop(); }
}
function func_0158(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 0x011c
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 0x6148378844e5b192a768e4c31b266276dae08c01
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 0x0158
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 0x010f
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 0x31
00BF 60 PUSH1 0x24
00C1 82 DUP3
00C2 01 ADD
00C3 52 MSTORE
00C4 7F PUSH32 0x4974656d206973204c6f636b65642e205669736974207765627369746520746f
00E5 60 PUSH1 0x44
00E7 82 DUP3
00E8 01 ADD
00E9 52 MSTORE
00EA 70 PUSH17 0x102ab73637b1b5903a34329034ba32b697
00FC 60 PUSH1 0x79
00FE 1B SHL
00FF 60 PUSH1 0x64
0101 82 DUP3
0102 01 ADD
0103 52 MSTORE
0104 60 PUSH1 0x84
0106 01 ADD
0107 60 PUSH1 0x40
0109 51 MLOAD
010A 80 DUP1
010B 91 SWAP2
010C 03 SUB
010D 90 SWAP1
010E FD *REVERT
label_010F:
010F 5B JUMPDEST
0110 80 DUP1
0111 51 MLOAD
0112 94 SWAP5
0113 50 POP
0114 60 PUSH1 0x20
0116 01 ADD
0117 92 SWAP3
0118 50 POP
0119 50 POP
011A 50 POP
011B F3 *RETURN
label_011C:
011C 5B JUMPDEST
011D 34 CALLVALUE
011E 80 DUP1
011F 15 ISZERO
0120 61 PUSH2 0x0128
0123 57 *JUMPI
label_0124:
0124 60 PUSH1 0x00
0126 80 DUP1
0127 FD *REVERT
label_0128:
0128 5B JUMPDEST
0129 50 POP
012A 60 PUSH1 0x00
012C 54 SLOAD
012D 61 PUSH2 0x013c
0130 90 SWAP1
0131 60 PUSH1 0x01
0133 60 PUSH1 0x01
0135 60 PUSH1 0xa0
0137 1B SHL
0138 03 SUB
0139 16 AND
013A 81 DUP2
013B 56 *JUMP
label_013C:
013C 5B JUMPDEST
013D 60 PUSH1 0x40
013F 51 MLOAD
0140 60 PUSH1 0x01
0142 60 PUSH1 0x01
0144 60 PUSH1 0xa0
0146 1B SHL
0147 03 SUB
0148 90 SWAP1
0149 91 SWAP2
014A 16 AND
014B 81 DUP2
014C 52 MSTORE
014D 60 PUSH1 0x20
014F 01 ADD
0150 60 PUSH1 0x40
0152 51 MLOAD
0153 80 DUP1
0154 91 SWAP2
0155 03 SUB
0156 90 SWAP1
0157 F3 *RETURN
label_0158:
0158 5B JUMPDEST
0159 81 DUP2
015A 83 DUP4
015B 82 DUP3
015C 37 CALLDATACOPY
015D 60 PUSH1 0x00
015F 91 SWAP2
0160 01 ADD
0161 90 SWAP1
0162 81 DUP2
0163 52 MSTORE
0164 91 SWAP2
0165 90 SWAP1
0166 50 POP
0167 56 *JUMP
0168 FE *ASSERT
0169 A2 LOG2
016A 64 PUSH5 0x6970667358
0170 22 22
0171 12 SLT
0172 20 SHA3
0173 78 PUSH25 0x86e98c265623a177ae698a5807605514d0bbac96aa0366bf8c
018D 7B PUSH28 0x5a6af213004f590aeb4e5600080d0033