contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
var var0 = 0x00;
var var1 = msg.data.length;
var var2 = 0x60;
var var3 = 0x00;
var var4 = var3;
var var5 = (0x01 << 0xa0) - 0x01 & 0xb44b05af428c9dd5895a20531953349c321361c7;
var var6 = 0x38;
var var7 = var0;
var var9 = memory[0x40:0x60];
var var8 = var1;
var6 =
func_00C0(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_00B3:
var temp2 = var4;
return memory[temp2 + 0x20:temp2 + 0x20 + memory[temp2:temp2 + 0x20]];
} else {
label_0080:
var temp3 = memory[0x40:0x60];
memory[temp3:temp3 + 0x20] = 0x461bcd << 0xe5;
memory[temp3 + 0x04:temp3 + 0x04 + 0x20] = 0x20;
memory[temp3 + 0x24:temp3 + 0x24 + 0x20] = 0x05;
memory[temp3 + 0x44:temp3 + 0x44 + 0x20] = 0x32b93937b9 << 0xd9;
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_00B3; }
else { goto label_0080; }
}
}
function func_00C0(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 0x00
0007 36 CALLDATASIZE
0008 60 PUSH1 0x60
000A 60 PUSH1 0x00
000C 80 DUP1
000D 73 PUSH20 0xb44b05af428c9dd5895a20531953349c321361c7
0022 60 PUSH1 0x01
0024 60 PUSH1 0x01
0026 60 PUSH1 0xa0
0028 1B SHL
0029 03 SUB
002A 16 AND
002B 85 DUP6
002C 85 DUP6
002D 60 PUSH1 0x40
002F 51 MLOAD
0030 60 PUSH1 0x38
0032 92 SWAP3
0033 91 SWAP2
0034 90 SWAP1
0035 60 PUSH1 0xc0
0037 56 *JUMP
label_0038:
0038 5B JUMPDEST
0039 60 PUSH1 0x00
003B 60 PUSH1 0x40
003D 51 MLOAD
003E 80 DUP1
003F 83 DUP4
0040 03 SUB
0041 81 DUP2
0042 85 DUP6
0043 5A GAS
0044 F4 DELEGATECALL
0045 91 SWAP2
0046 50 POP
0047 50 POP
0048 3D RETURNDATASIZE
0049 80 DUP1
004A 60 PUSH1 0x00
004C 81 DUP2
004D 14 EQ
004E 60 PUSH1 0x71
0050 57 *JUMPI
label_0051:
0051 60 PUSH1 0x40
0053 51 MLOAD
0054 91 SWAP2
0055 50 POP
0056 60 PUSH1 0x1f
0058 19 NOT
0059 60 PUSH1 0x3f
005B 3D RETURNDATASIZE
005C 01 ADD
005D 16 AND
005E 82 DUP3
005F 01 ADD
0060 60 PUSH1 0x40
0062 52 MSTORE
0063 3D RETURNDATASIZE
0064 82 DUP3
0065 52 MSTORE
0066 3D RETURNDATASIZE
0067 60 PUSH1 0x00
0069 60 PUSH1 0x20
006B 84 DUP5
006C 01 ADD
006D 3E RETURNDATACOPY
006E 60 PUSH1 0x76
0070 56 *JUMP
label_0071:
0071 5B JUMPDEST
0072 60 PUSH1 0x60
0074 91 SWAP2
0075 50 POP
0076 5B JUMPDEST
0077 50 POP
0078 91 SWAP2
0079 50 POP
007A 91 SWAP2
007B 50 POP
007C 81 DUP2
007D 60 PUSH1 0xb3
007F 57 *JUMPI
label_0080:
0080 60 PUSH1 0x40
0082 51 MLOAD
0083 62 PUSH3 0x461bcd
0087 60 PUSH1 0xe5
0089 1B SHL
008A 81 DUP2
008B 52 MSTORE
008C 60 PUSH1 0x20
008E 60 PUSH1 0x04
0090 82 DUP3
0091 01 ADD
0092 52 MSTORE
0093 60 PUSH1 0x05
0095 60 PUSH1 0x24
0097 82 DUP3
0098 01 ADD
0099 52 MSTORE
009A 64 PUSH5 0x32b93937b9
00A0 60 PUSH1 0xd9
00A2 1B SHL
00A3 60 PUSH1 0x44
00A5 82 DUP3
00A6 01 ADD
00A7 52 MSTORE
00A8 60 PUSH1 0x64
00AA 01 ADD
00AB 60 PUSH1 0x40
00AD 51 MLOAD
00AE 80 DUP1
00AF 91 SWAP2
00B0 03 SUB
00B1 90 SWAP1
00B2 FD *REVERT
label_00B3:
00B3 5B JUMPDEST
00B4 80 DUP1
00B5 51 MLOAD
00B6 94 SWAP5
00B7 50 POP
00B8 60 PUSH1 0x20
00BA 01 ADD
00BB 92 SWAP3
00BC 50 POP
00BD 50 POP
00BE 50 POP
00BF F3 *RETURN
label_00C0:
00C0 5B JUMPDEST
00C1 81 DUP2
00C2 83 DUP4
00C3 82 DUP3
00C4 37 CALLDATACOPY
00C5 60 PUSH1 0x00
00C7 91 SWAP2
00C8 01 ADD
00C9 90 SWAP1
00CA 81 DUP2
00CB 52 MSTORE
00CC 91 SWAP2
00CD 90 SWAP1
00CE 50 POP
00CF 56 *JUMP
00D0 FE *ASSERT
00D1 A2 LOG2
00D2 64 PUSH5 0x6970667358
00D8 22 22
00D9 12 SLT
00DA 20 SHA3
00DB D9 D9
00DC 04 DIV
00DD 1B SHL
00DE 32 ORIGIN
00DF FB FB
00E0 E5 E5
00E1 E1 E1
00E2 D4 D4
00E3 58 PC
00E4 52 MSTORE
00E5 80 DUP1
00E6 28 28
00E7 6B PUSH12 0x6a1118bb537468ee91f1be07
00F4 4C 4C
00F5 2B 2B
00F6 38 CODESIZE
00F7 8E DUP15
00F8 E0 E0
00F9 A7 A7
00FA 9E SWAP15
00FB 64 PUSH5 0x736f6c6343
0101 00 *STOP
0102 08 ADDMOD
0103 0D 0D
0104 00 *STOP
0105 33 CALLER