contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
if (msg.data.length >= 0x04) {
var0 = msg.data[0x00:0x20] >> 0xe0;
if (var0 != 0x5c60da1b) { goto label_002B; }
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x43;
var1 =
func_0097();
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = var1 & (0x01 << 0xa0) - 0x01;
var temp4 = memory[0x40:0x60];
return memory[temp4:temp4 + (temp3 + 0x20) - temp4];
} else if (msg.data.length) {
label_002B:
var var0 = 0x29;
label_005F:
var var1 = 0x95;
var var2 = storage[0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc] & (0x01 << 0xa0) - 0x01;
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) { revert(memory[0x00:0x00 + returndata.length]); }
else { return memory[0x00:0x00 + returndata.length]; }
} else {
var0 = 0x29;
goto label_005F;
}
}
function func_0097() returns (var r0) {
var var0 = 0x00;
var var1 = storage[0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc] & (0x01 << 0xa0) - 0x01;
return var1;
}
}
label_0000:
0000 60 PUSH1 0x80
0002 60 PUSH1 0x40
0004 52 MSTORE
0005 60 PUSH1 0x04
0007 36 CALLDATASIZE
0008 10 LT
0009 60 PUSH1 0x1f
000B 57 *JUMPI
label_000C:
000C 60 PUSH1 0x00
000E 35 CALLDATALOAD
000F 60 PUSH1 0xe0
0011 1C SHR
0012 80 DUP1
0013 63 PUSH4 0x5c60da1b
0018 14 EQ
0019 60 PUSH1 0x31
001B 57 *JUMPI
label_001C:
001C 60 PUSH1 0x2b
001E 56 *JUMP
label_001F:
001F 5B JUMPDEST
0020 36 CALLDATASIZE
0021 60 PUSH1 0x2b
0023 57 *JUMPI
label_0024:
0024 60 PUSH1 0x29
0026 60 PUSH1 0x5f
0028 56 *JUMP
0029 5B JUMPDEST
002A 00 *STOP
label_002B:
002B 5B JUMPDEST
002C 60 PUSH1 0x29
002E 60 PUSH1 0x5f
0030 56 *JUMP
label_0031:
0031 5B JUMPDEST
0032 34 CALLVALUE
0033 80 DUP1
0034 15 ISZERO
0035 60 PUSH1 0x3c
0037 57 *JUMPI
label_0038:
0038 60 PUSH1 0x00
003A 80 DUP1
003B FD *REVERT
label_003C:
003C 5B JUMPDEST
003D 50 POP
003E 60 PUSH1 0x43
0040 60 PUSH1 0x97
0042 56 *JUMP
label_0043:
0043 5B JUMPDEST
0044 60 PUSH1 0x40
0046 51 MLOAD
0047 60 PUSH1 0x01
0049 60 PUSH1 0x01
004B 60 PUSH1 0xa0
004D 1B SHL
004E 03 SUB
004F 90 SWAP1
0050 91 SWAP2
0051 16 AND
0052 81 DUP2
0053 52 MSTORE
0054 60 PUSH1 0x20
0056 01 ADD
0057 60 PUSH1 0x40
0059 51 MLOAD
005A 80 DUP1
005B 91 SWAP2
005C 03 SUB
005D 90 SWAP1
005E F3 *RETURN
label_005F:
005F 5B JUMPDEST
0060 60 PUSH1 0x95
0062 60 PUSH1 0x91
0064 7F PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
0085 54 SLOAD
0086 60 PUSH1 0x01
0088 60 PUSH1 0x01
008A 60 PUSH1 0xa0
008C 1B SHL
008D 03 SUB
008E 16 AND
008F 90 SWAP1
0090 56 *JUMP
label_0091:
0091 5B JUMPDEST
0092 60 PUSH1 0xd1
0094 56 *JUMP
0095 5B JUMPDEST
0096 56 *JUMP
label_0097:
0097 5B JUMPDEST
0098 60 PUSH1 0x00
009A 60 PUSH1 0xc9
009C 7F PUSH32 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc
00BD 54 SLOAD
00BE 60 PUSH1 0x01
00C0 60 PUSH1 0x01
00C2 60 PUSH1 0xa0
00C4 1B SHL
00C5 03 SUB
00C6 16 AND
00C7 90 SWAP1
00C8 56 *JUMP
label_00C9:
00C9 5B JUMPDEST
00CA 90 SWAP1
00CB 50 POP
00CC 90 SWAP1
00CD 56 *JUMP
00CE 5B JUMPDEST
00CF 90 SWAP1
00D0 56 *JUMP
label_00D1:
00D1 5B JUMPDEST
00D2 36 CALLDATASIZE
00D3 60 PUSH1 0x00
00D5 80 DUP1
00D6 37 CALLDATACOPY
00D7 60 PUSH1 0x00
00D9 80 DUP1
00DA 36 CALLDATASIZE
00DB 60 PUSH1 0x00
00DD 84 DUP5
00DE 5A GAS
00DF F4 DELEGATECALL
00E0 3D RETURNDATASIZE
00E1 60 PUSH1 0x00
00E3 80 DUP1
00E4 3E RETURNDATACOPY
00E5 80 DUP1
00E6 80 DUP1
00E7 15 ISZERO
00E8 60 PUSH1 0xef
00EA 57 *JUMPI
label_00EB:
00EB 3D RETURNDATASIZE
00EC 60 PUSH1 0x00
00EE F3 *RETURN
label_00EF:
00EF 5B JUMPDEST
00F0 3D RETURNDATASIZE
00F1 60 PUSH1 0x00
00F3 FD *REVERT
00F4 FE *ASSERT
00F5 A2 LOG2
00F6 64 PUSH5 0x6970667358
00FC 22 22
00FD 12 SLT
00FE 20 SHA3
00FF 72 PUSH19 0xfb091d4e9eec6a411eba8bfecf5e05ae9bdb3c
0113 27 27
0114 59 MSIZE
0115 1A BYTE
0116 D1 D1
0117 6B PUSH12 0x30aa6f2082e20a64736f6c63
0124 43 NUMBER
0125 00 *STOP
0126 08 ADDMOD
0127 11 GT
0128 00 *STOP
0129 33 CALLER