contract Contract {
function main() {
memory[0x40:0x60] = 0x60;
var var0 = msg.data[0x00:0x20] / 0x0100000000000000000000000000000000000000000000000000000000;
if (var0 != 0x0f59f83a) { stop(); }
var var1 = 0x0044;
var1 =
func_00B2();
var temp0 = memory[0x40:0x60];
var var2 = temp0;
var var3 = var2;
var temp1 = var3 + 0x20;
memory[var3:var3 + 0x20] = temp1 - var3;
var temp2 = var1;
memory[temp1:temp1 + 0x20] = memory[temp2:temp2 + 0x20];
var temp3 = temp1 + 0x20;
var temp4 = memory[temp2:temp2 + 0x20];
memory[temp3:temp3 + temp4] = address(0x04).call.gas((temp4 + 0x1f) / 0x20 * 0x03 + 0x0f)(memory[temp2 + 0x20:temp2 + 0x20 + temp4]);
var var4 = temp4 + temp3;
var var5 = temp4 & 0x1f;
if (!var5) {
var temp5 = memory[0x40:0x60];
return memory[temp5:temp5 + var4 - temp5];
} else {
var temp6 = var5;
var temp7 = var4 - temp6;
memory[temp7:temp7 + 0x20] = ~(0x0100 ** (0x20 - temp6) - 0x01) & memory[temp7:temp7 + 0x20];
var temp8 = memory[0x40:0x60];
return memory[temp8:temp8 + (temp7 + 0x20) - temp8];
}
}
function func_00B2() returns (var r0) {
var temp0 = memory[0x40:0x60];
memory[0x40:0x60] = temp0 + 0x20;
memory[temp0:temp0 + 0x20] = 0x00;
var temp1 = memory[0x40:0x60];
memory[0x40:0x60] = temp1 + 0x40;
memory[temp1:temp1 + 0x20] = 0x03;
memory[temp1 + 0x20:temp1 + 0x20 + 0x20] = 0x6574680000000000000000000000000000000000000000000000000000000000;
var var0 = temp1;
return var0;
}
}
label_0000:
0000 60 PUSH1 0x60
0002 60 PUSH1 0x40
0004 52 MSTORE
0005 60 PUSH1 0x00
0007 35 CALLDATALOAD
0008 7C PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0026 90 SWAP1
0027 04 DIV
0028 80 DUP1
0029 63 PUSH4 0x0f59f83a
002E 14 EQ
002F 61 PUSH2 0x0039
0032 57 *JUMPI
label_0033:
0033 61 PUSH2 0x0037
0036 56 *JUMP
label_0037:
0037 5B JUMPDEST
0038 00 *STOP
label_0039:
0039 5B JUMPDEST
003A 61 PUSH2 0x0044
003D 60 PUSH1 0x04
003F 50 POP
0040 61 PUSH2 0x00b2
0043 56 *JUMP
label_0044:
0044 5B JUMPDEST
0045 60 PUSH1 0x40
0047 51 MLOAD
0048 80 DUP1
0049 80 DUP1
004A 60 PUSH1 0x20
004C 01 ADD
004D 82 DUP3
004E 81 DUP2
004F 03 SUB
0050 82 DUP3
0051 52 MSTORE
0052 83 DUP4
0053 81 DUP2
0054 81 DUP2
0055 51 MLOAD
0056 81 DUP2
0057 52 MSTORE
0058 60 PUSH1 0x20
005A 01 ADD
005B 91 SWAP2
005C 50 POP
005D 80 DUP1
005E 51 MLOAD
005F 90 SWAP1
0060 60 PUSH1 0x20
0062 01 ADD
0063 90 SWAP1
0064 80 DUP1
0065 83 DUP4
0066 83 DUP4
0067 82 DUP3
0068 90 SWAP1
0069 60 PUSH1 0x00
006B 60 PUSH1 0x04
006D 60 PUSH1 0x20
006F 84 DUP5
0070 60 PUSH1 0x1f
0072 01 ADD
0073 04 DIV
0074 60 PUSH1 0x03
0076 02 MUL
0077 60 PUSH1 0x0f
0079 01 ADD
007A F1 CALL
007B 50 POP
007C 90 SWAP1
007D 50 POP
007E 90 SWAP1
007F 81 DUP2
0080 01 ADD
0081 90 SWAP1
0082 60 PUSH1 0x1f
0084 16 AND
0085 80 DUP1
0086 15 ISZERO
0087 61 PUSH2 0x00a4
008A 57 *JUMPI
label_008B:
008B 80 DUP1
008C 82 DUP3
008D 03 SUB
008E 80 DUP1
008F 51 MLOAD
0090 60 PUSH1 0x01
0092 83 DUP4
0093 60 PUSH1 0x20
0095 03 SUB
0096 61 PUSH2 0x0100
0099 0A EXP
009A 03 SUB
009B 19 NOT
009C 16 AND
009D 81 DUP2
009E 52 MSTORE
009F 60 PUSH1 0x20
00A1 01 ADD
00A2 91 SWAP2
00A3 50 POP
00A4 5B JUMPDEST
00A5 50 POP
00A6 92 SWAP3
00A7 50 POP
00A8 50 POP
00A9 50 POP
00AA 60 PUSH1 0x40
00AC 51 MLOAD
00AD 80 DUP1
00AE 91 SWAP2
00AF 03 SUB
00B0 90 SWAP1
00B1 F3 *RETURN
label_00B2:
00B2 5B JUMPDEST
00B3 60 PUSH1 0x20
00B5 60 PUSH1 0x40
00B7 51 MLOAD
00B8 90 SWAP1
00B9 81 DUP2
00BA 01 ADD
00BB 60 PUSH1 0x40
00BD 52 MSTORE
00BE 80 DUP1
00BF 60 PUSH1 0x00
00C1 81 DUP2
00C2 52 MSTORE
00C3 60 PUSH1 0x20
00C5 01 ADD
00C6 50 POP
00C7 60 PUSH1 0x40
00C9 60 PUSH1 0x40
00CB 51 MLOAD
00CC 90 SWAP1
00CD 81 DUP2
00CE 01 ADD
00CF 60 PUSH1 0x40
00D1 52 MSTORE
00D2 80 DUP1
00D3 60 PUSH1 0x03
00D5 81 DUP2
00D6 52 MSTORE
00D7 60 PUSH1 0x20
00D9 01 ADD
00DA 7F PUSH32 0x6574680000000000000000000000000000000000000000000000000000000000
00FB 81 DUP2
00FC 52 MSTORE
00FD 60 PUSH1 0x20
00FF 01 ADD
0100 50 POP
0101 90 SWAP1
0102 50 POP
0103 61 PUSH2 0x0107
0106 56 *JUMP
label_0107:
0107 5B JUMPDEST
0108 90 SWAP1
0109 56 *JUMP