contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
if (msg.data.length < 0x04) { stop(); }
var var0 = msg.data[0x00:0x20] / 0x0100000000000000000000000000000000000000000000000000000000 & 0xffffffff;
if (var0 == 0x4b64e492) {
// Dispatch table entry for execute(address)
var var1 = 0x0082;
var var2 = msg.data[0x04:0x24] & 0xffffffffffffffffffffffffffffffffffffffff;
var var3 = 0x00;
var var4 = var3;
var var5 = 0x0099;
var5 =
func_0494();
var var6 = !!0x00;
var var7 = var2 & 0xffffffffffffffffffffffffffffffffffffffff;
var temp0 = memory[0x40:0x60] + 0x24;
var temp1 = memory[0x40:0x60];
memory[temp1:temp1 + 0x20] = temp0 - temp1 - 0x20;
memory[0x40:0x60] = temp0;
var var8 = temp1;
var temp2 = var8 + 0x20;
memory[temp2:temp2 + 0x20] = (memory[temp2:temp2 + 0x20] & 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) | (~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff & 0x0100000000000000000000000000000000000000000000000000000000 * 0x4b64e492);
var var9 = memory[0x40:0x60];
var var10 = var9;
var var11 = var8 + 0x20;
var var12 = memory[var8:var8 + 0x20];
var var13 = var12;
var var14 = var10;
var var15 = var11;
var var16 = 0x00;
if (var16 >= var13) {
label_0168:
var temp3 = var12;
var10 = temp3 + var10;
var11 = temp3 & 0x1f;
if (!var11) {
var temp4 = memory[0x40:0x60];
var temp5;
temp5, memory[temp4:temp4 + 0x00] = address(var7).delegatecall.gas(msg.gas)(memory[temp4:temp4 + var10 - temp4]);
if (!!temp5 == var6) {
label_021F:
var6 = 0x0227;
var6, var7 =
func_043D();
var4 = var7;
var3 = var6;
var temp6 = memory[0x40:0x60];
memory[temp6:temp6 + 0x20] = 0x66696674682875696e7432353629000000000000000000000000000000000000;
var temp7 = memory[0x40:0x60];
if (var3 & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff != keccak256(memory[temp7:temp7 + (temp6 + 0x0e) - temp7]) & ~0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { revert(memory[0x00:0x00]); }
var temp8 = var5;
memory[temp8:temp8 + 0x20] = 0xffffffffffffffff & 0xffffffffffffffff & 0x048a;
memory[temp8:temp8 + 0x20] = memory[temp8:temp8 + 0x20] - var4;
var6 = 0x02e8;
// Error: Could not resolve jump destination!
} else {
label_01B2:
var temp9 = memory[0x40:0x60];
memory[temp9:temp9 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var temp10 = temp9 + 0x04;
var temp11 = temp10 + 0x20;
memory[temp10:temp10 + 0x20] = temp11 - temp10;
memory[temp11:temp11 + 0x20] = 0x10;
var temp12 = temp11 + 0x20;
memory[temp12:temp12 + 0x20] = 0x756e7361666520657865637574696f6e00000000000000000000000000000000;
var temp13 = memory[0x40:0x60];
revert(memory[temp13:temp13 + (temp12 + 0x20) - temp13]);
}
} else {
var temp14 = var11;
var temp15 = var10 - temp14;
memory[temp15:temp15 + 0x20] = ~(0x0100 ** (0x20 - temp14) - 0x01) & memory[temp15:temp15 + 0x20];
var temp16 = memory[0x40:0x60];
var temp17;
temp17, memory[temp16:temp16 + 0x00] = address(var7).delegatecall.gas(msg.gas)(memory[temp16:temp16 + (temp15 + 0x20) - temp16]);
if (!!temp17 == var6) { goto label_021F; }
else { goto label_01B2; }
}
} else {
label_0156:
var temp18 = var16;
memory[var14 + temp18:var14 + temp18 + 0x20] = memory[var15 + temp18:var15 + temp18 + 0x20];
var16 = temp18 + 0x20;
if (var16 >= var13) { goto label_0168; }
else { goto label_0156; }
}
} else if (var0 == 0x80e10aa5) {
// Dispatch table entry for payforflag()
var1 = 0x008c;
if (msg.sender != storage[0x00] & 0xffffffffffffffffffffffffffffffffffffffff) { revert(memory[0x00:0x00]); }
if (msg.value == 0x01) {
var temp19 = memory[0x40:0x60];
memory[temp19:temp19 + 0x20] = msg.sender;
var temp20 = memory[0x40:0x60];
log(memory[temp20:temp20 + (temp19 + 0x20) - temp20], [0x2d3bd82a572c860ef85a36e8d4873a9deed3f76b9fddbf13fbe4fe8a97c4a579]);
selfdestruct(msg.sender);
} else {
var temp21 = memory[0x40:0x60];
memory[temp21:temp21 + 0x20] = 0x08c379a000000000000000000000000000000000000000000000000000000000;
var temp22 = temp21 + 0x04;
var temp23 = temp22 + 0x20;
memory[temp22:temp22 + 0x20] = temp23 - temp22;
memory[temp23:temp23 + 0x20] = 0x1b;
var temp24 = temp23 + 0x20;
memory[temp24:temp24 + 0x20] = 0x49206f6e6c79206e6565642061206c6974746c65206d6f6e6579210000000000;
var temp25 = memory[0x40:0x60];
revert(memory[temp25:temp25 + (temp24 + 0x20) - temp25]);
}
} else { stop(); }
}
function func_043D() returns (var r0, var r1) {
r1 = 0x00;
var var1 = r1;
if (returndata.length != 0x24) { revert(memory[0x00:0x00]); }
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x24] = returndata[0x00:0x24];
r1 = memory[temp0 + 0x04:temp0 + 0x04 + 0x20];
r0 = memory[temp0:temp0 + 0x20] & 0xffffffff00000000000000000000000000000000000000000000000000000000;
return r0, r1;
}
function func_0494() returns (var r0) {
var temp0 = memory[0x40:0x60];
memory[0x40:0x60] = temp0 + 0x20;
memory[temp0:temp0 + 0x20] = 0x04a9;
return temp0;
}
}
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 0x004c
000C 57 *JUMPI
label_000D:
000D 60 PUSH1 0x00
000F 35 CALLDATALOAD
0010 7C PUSH29 0x0100000000000000000000000000000000000000000000000000000000
002E 90 SWAP1
002F 04 DIV
0030 63 PUSH4 0xffffffff
0035 16 AND
0036 80 DUP1
0037 63 PUSH4 0x4b64e492
003C 14 EQ
003D 61 PUSH2 0x004e
0040 57 *JUMPI
label_0041:
0041 80 DUP1
0042 63 PUSH4 0x80e10aa5
0047 14 EQ
0048 61 PUSH2 0x0084
004B 57 *JUMPI
label_004C:
004C 5B JUMPDEST
004D 00 *STOP
label_004E:
004E 5B JUMPDEST
004F 61 PUSH2 0x0082
0052 60 PUSH1 0x04
0054 80 DUP1
0055 36 CALLDATASIZE
0056 03 SUB
0057 81 DUP2
0058 01 ADD
0059 90 SWAP1
005A 80 DUP1
005B 80 DUP1
005C 35 CALLDATALOAD
005D 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0072 16 AND
0073 90 SWAP1
0074 60 PUSH1 0x20
0076 01 ADD
0077 90 SWAP1
0078 92 SWAP3
0079 91 SWAP2
007A 90 SWAP1
007B 50 POP
007C 50 POP
007D 50 POP
007E 61 PUSH2 0x008e
0081 56 *JUMP
0082 5B JUMPDEST
0083 00 *STOP
label_0084:
0084 5B JUMPDEST
0085 61 PUSH2 0x008c
0088 61 PUSH2 0x02ee
008B 56 *JUMP
008C 5B JUMPDEST
008D 00 *STOP
label_008E:
008E 5B JUMPDEST
008F 60 PUSH1 0x00
0091 80 DUP1
0092 61 PUSH2 0x0099
0095 61 PUSH2 0x0494
0098 56 *JUMP
label_0099:
0099 5B JUMPDEST
009A 60 PUSH1 0x00
009C 15 ISZERO
009D 15 ISZERO
009E 84 DUP5
009F 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00B4 16 AND
00B5 63 PUSH4 0x4b64e492
00BA 7C PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00D8 02 MUL
00D9 60 PUSH1 0x40
00DB 51 MLOAD
00DC 60 PUSH1 0x24
00DE 01 ADD
00DF 60 PUSH1 0x40
00E1 51 MLOAD
00E2 60 PUSH1 0x20
00E4 81 DUP2
00E5 83 DUP4
00E6 03 SUB
00E7 03 SUB
00E8 81 DUP2
00E9 52 MSTORE
00EA 90 SWAP1
00EB 60 PUSH1 0x40
00ED 52 MSTORE
00EE 90 SWAP1
00EF 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
010C 19 NOT
010D 16 AND
010E 60 PUSH1 0x20
0110 82 DUP3
0111 01 ADD
0112 80 DUP1
0113 51 MLOAD
0114 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0131 83 DUP4
0132 81 DUP2
0133 83 DUP4
0134 16 AND
0135 17 OR
0136 83 DUP4
0137 52 MSTORE
0138 50 POP
0139 50 POP
013A 50 POP
013B 50 POP
013C 60 PUSH1 0x40
013E 51 MLOAD
013F 80 DUP1
0140 82 DUP3
0141 80 DUP1
0142 51 MLOAD
0143 90 SWAP1
0144 60 PUSH1 0x20
0146 01 ADD
0147 90 SWAP1
0148 80 DUP1
0149 83 DUP4
014A 83 DUP4
014B 60 PUSH1 0x00
014D 5B JUMPDEST
014E 83 DUP4
014F 81 DUP2
0150 10 LT
0151 15 ISZERO
0152 61 PUSH2 0x0168
0155 57 *JUMPI
label_0156:
0156 80 DUP1
0157 82 DUP3
0158 01 ADD
0159 51 MLOAD
015A 81 DUP2
015B 84 DUP5
015C 01 ADD
015D 52 MSTORE
015E 60 PUSH1 0x20
0160 81 DUP2
0161 01 ADD
0162 90 SWAP1
0163 50 POP
0164 61 PUSH2 0x014d
0167 56 *JUMP
label_0168:
0168 5B JUMPDEST
0169 50 POP
016A 50 POP
016B 50 POP
016C 50 POP
016D 90 SWAP1
016E 50 POP
016F 90 SWAP1
0170 81 DUP2
0171 01 ADD
0172 90 SWAP1
0173 60 PUSH1 0x1f
0175 16 AND
0176 80 DUP1
0177 15 ISZERO
0178 61 PUSH2 0x0195
017B 57 *JUMPI
label_017C:
017C 80 DUP1
017D 82 DUP3
017E 03 SUB
017F 80 DUP1
0180 51 MLOAD
0181 60 PUSH1 0x01
0183 83 DUP4
0184 60 PUSH1 0x20
0186 03 SUB
0187 61 PUSH2 0x0100
018A 0A EXP
018B 03 SUB
018C 19 NOT
018D 16 AND
018E 81 DUP2
018F 52 MSTORE
0190 60 PUSH1 0x20
0192 01 ADD
0193 91 SWAP2
0194 50 POP
0195 5B JUMPDEST
0196 50 POP
0197 91 SWAP2
0198 50 POP
0199 50 POP
019A 60 PUSH1 0x00
019C 60 PUSH1 0x40
019E 51 MLOAD
019F 80 DUP1
01A0 83 DUP4
01A1 03 SUB
01A2 81 DUP2
01A3 85 DUP6
01A4 5A GAS
01A5 F4 DELEGATECALL
01A6 91 SWAP2
01A7 50 POP
01A8 50 POP
01A9 15 ISZERO
01AA 15 ISZERO
01AB 14 EQ
01AC 15 ISZERO
01AD 15 ISZERO
01AE 61 PUSH2 0x021f
01B1 57 *JUMPI
label_01B2:
01B2 60 PUSH1 0x40
01B4 51 MLOAD
01B5 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
01D6 81 DUP2
01D7 52 MSTORE
01D8 60 PUSH1 0x04
01DA 01 ADD
01DB 80 DUP1
01DC 80 DUP1
01DD 60 PUSH1 0x20
01DF 01 ADD
01E0 82 DUP3
01E1 81 DUP2
01E2 03 SUB
01E3 82 DUP3
01E4 52 MSTORE
01E5 60 PUSH1 0x10
01E7 81 DUP2
01E8 52 MSTORE
01E9 60 PUSH1 0x20
01EB 01 ADD
01EC 80 DUP1
01ED 7F PUSH32 0x756e7361666520657865637574696f6e00000000000000000000000000000000
020E 81 DUP2
020F 52 MSTORE
0210 50 POP
0211 60 PUSH1 0x20
0213 01 ADD
0214 91 SWAP2
0215 50 POP
0216 50 POP
0217 60 PUSH1 0x40
0219 51 MLOAD
021A 80 DUP1
021B 91 SWAP2
021C 03 SUB
021D 90 SWAP1
021E FD *REVERT
label_021F:
021F 5B JUMPDEST
0220 61 PUSH2 0x0227
0223 61 PUSH2 0x043d
0226 56 *JUMP
label_0227:
0227 5B JUMPDEST
0228 80 DUP1
0229 93 SWAP4
022A 50 POP
022B 81 DUP2
022C 94 SWAP5
022D 50 POP
022E 50 POP
022F 50 POP
0230 60 PUSH1 0x40
0232 51 MLOAD
0233 80 DUP1
0234 80 DUP1
0235 7F PUSH32 0x66696674682875696e7432353629000000000000000000000000000000000000
0256 81 DUP2
0257 52 MSTORE
0258 50 POP
0259 60 PUSH1 0x0e
025B 01 ADD
025C 90 SWAP1
025D 50 POP
025E 60 PUSH1 0x40
0260 51 MLOAD
0261 80 DUP1
0262 91 SWAP2
0263 03 SUB
0264 90 SWAP1
0265 20 SHA3
0266 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
0283 19 NOT
0284 16 AND
0285 83 DUP4
0286 7B PUSH28 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffff
02A3 19 NOT
02A4 16 AND
02A5 14 EQ
02A6 15 ISZERO
02A7 15 ISZERO
02A8 61 PUSH2 0x02b0
02AB 57 *JUMPI
label_02AC:
02AC 60 PUSH1 0x00
02AE 80 DUP1
02AF FD *REVERT
label_02B0:
02B0 5B JUMPDEST
02B1 61 PUSH2 0x048a
02B4 81 DUP2
02B5 60 PUSH1 0x00
02B7 01 ADD
02B8 90 SWAP1
02B9 67 PUSH8 0xffffffffffffffff
02C2 16 AND
02C3 90 SWAP1
02C4 81 DUP2
02C5 67 PUSH8 0xffffffffffffffff
02CE 16 AND
02CF 81 DUP2
02D0 52 MSTORE
02D1 50 POP
02D2 50 POP
02D3 81 DUP2
02D4 81 DUP2
02D5 51 MLOAD
02D6 03 SUB
02D7 81 DUP2
02D8 52 MSTORE
02D9 61 PUSH2 0x02e8
02DC 81 DUP2
02DD 60 PUSH1 0x00
02DF 01 ADD
02E0 51 MLOAD
02E1 63 PUSH4 0xffffffff
02E6 16 AND
02E7 56 *JUMP
02E8 5B JUMPDEST
02E9 50 POP
02EA 50 POP
02EB 50 POP
02EC 50 POP
02ED 56 *JUMP
label_02EE:
02EE 5B JUMPDEST
02EF 60 PUSH1 0x00
02F1 80 DUP1
02F2 90 SWAP1
02F3 54 SLOAD
02F4 90 SWAP1
02F5 61 PUSH2 0x0100
02F8 0A EXP
02F9 90 SWAP1
02FA 04 DIV
02FB 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0310 16 AND
0311 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0326 16 AND
0327 33 CALLER
0328 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
033D 16 AND
033E 14 EQ
033F 15 ISZERO
0340 15 ISZERO
0341 61 PUSH2 0x0349
0344 57 *JUMPI
label_0345:
0345 60 PUSH1 0x00
0347 80 DUP1
0348 FD *REVERT
label_0349:
0349 5B JUMPDEST
034A 60 PUSH1 0x01
034C 34 CALLVALUE
034D 14 EQ
034E 15 ISZERO
034F 15 ISZERO
0350 61 PUSH2 0x03c1
0353 57 *JUMPI
label_0354:
0354 60 PUSH1 0x40
0356 51 MLOAD
0357 7F PUSH32 0x08c379a000000000000000000000000000000000000000000000000000000000
0378 81 DUP2
0379 52 MSTORE
037A 60 PUSH1 0x04
037C 01 ADD
037D 80 DUP1
037E 80 DUP1
037F 60 PUSH1 0x20
0381 01 ADD
0382 82 DUP3
0383 81 DUP2
0384 03 SUB
0385 82 DUP3
0386 52 MSTORE
0387 60 PUSH1 0x1b
0389 81 DUP2
038A 52 MSTORE
038B 60 PUSH1 0x20
038D 01 ADD
038E 80 DUP1
038F 7F PUSH32 0x49206f6e6c79206e6565642061206c6974746c65206d6f6e6579210000000000
03B0 81 DUP2
03B1 52 MSTORE
03B2 50 POP
03B3 60 PUSH1 0x20
03B5 01 ADD
03B6 91 SWAP2
03B7 50 POP
03B8 50 POP
03B9 60 PUSH1 0x40
03BB 51 MLOAD
03BC 80 DUP1
03BD 91 SWAP2
03BE 03 SUB
03BF 90 SWAP1
03C0 FD *REVERT
label_03C1:
03C1 5B JUMPDEST
03C2 7F PUSH32 0x2d3bd82a572c860ef85a36e8d4873a9deed3f76b9fddbf13fbe4fe8a97c4a579
03E3 33 CALLER
03E4 60 PUSH1 0x40
03E6 51 MLOAD
03E7 80 DUP1
03E8 82 DUP3
03E9 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
03FE 16 AND
03FF 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0414 16 AND
0415 81 DUP2
0416 52 MSTORE
0417 60 PUSH1 0x20
0419 01 ADD
041A 91 SWAP2
041B 50 POP
041C 50 POP
041D 60 PUSH1 0x40
041F 51 MLOAD
0420 80 DUP1
0421 91 SWAP2
0422 03 SUB
0423 90 SWAP1
0424 A1 LOG1
0425 33 CALLER
0426 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
043B 16 AND
043C FF *SELFDESTRUCT
label_043D:
043D 5B JUMPDEST
043E 60 PUSH1 0x00
0440 80 DUP1
0441 60 PUSH1 0x24
0443 3D RETURNDATASIZE
0444 14 EQ
0445 15 ISZERO
0446 15 ISZERO
0447 61 PUSH2 0x044f
044A 57 *JUMPI
label_044B:
044B 60 PUSH1 0x00
044D 80 DUP1
044E FD *REVERT
label_044F:
044F 5B JUMPDEST
0450 60 PUSH1 0x40
0452 51 MLOAD
0453 60 PUSH1 0x24
0455 60 PUSH1 0x00
0457 82 DUP3
0458 3E RETURNDATACOPY
0459 7F PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
047A 81 DUP2
047B 51 MLOAD
047C 16 AND
047D 92 SWAP3
047E 50 POP
047F 80 DUP1
0480 60 PUSH1 0x04
0482 01 ADD
0483 51 MLOAD
0484 91 SWAP2
0485 50 POP
0486 50 POP
0487 90 SWAP1
0488 91 SWAP2
0489 56 *JUMP
048A 5B JUMPDEST
048B 61 PUSH2 0x0492
048E 61 PUSH2 0x02ee
0491 56 *JUMP
0492 5B JUMPDEST
0493 56 *JUMP
label_0494:
0494 5B JUMPDEST
0495 60 PUSH1 0x20
0497 60 PUSH1 0x40
0499 51 MLOAD
049A 90 SWAP1
049B 81 DUP2
049C 01 ADD
049D 60 PUSH1 0x40
049F 52 MSTORE
04A0 80 DUP1
04A1 61 PUSH2 0x04a9
04A4 81 DUP2
04A5 52 MSTORE
04A6 50 POP
04A7 90 SWAP1
04A8 56 *JUMP
04A9 5B JUMPDEST
04AA FE *ASSERT
04AB 00 *STOP
04AC A1 LOG1
04AD 65 PUSH6 0x627a7a723058
04B4 20 SHA3
04B5 9E SWAP15
04B6 FD *REVERT
04B7 A9 A9
04B8 63 PUSH4 0x40c6046a
04BD 79 PUSH26 0x1f59d6e47c7102a30046674783f5bad575b2e7dfefe99d0029