contract Contract {
function main() {
memory[0x40:0x60] = 0x80;
if (msg.data.length < 0x04) { revert(memory[0x00:0x00]); }
var var0 = msg.data[0x00:0x20] / 0x0100000000000000000000000000000000000000000000000000000000 & 0xffffffff;
if (var0 == 0x3ccfd60b) {
// Dispatch table entry for
withdraw()
var var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x0065;
withdraw();
stop();
} else if (var0 == 0x590e1ae3) {
// Dispatch table entry for
refund()
var1 = msg.value;
if (var1) { revert(memory[0x00:0x00]); }
var1 = 0x0065;
refund();
stop();
} else { revert(memory[0x00:0x00]); }
}
function withdraw() {
if (msg.sender != storage[0x00] & 0xffffffffffffffffffffffffffffffffffffffff) { revert(memory[0x00:0x00]); }
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;
memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = storage[0x02] & 0xffffffffffffffffffffffffffffffffffffffff;
memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = storage[0x04];
var var0 = storage[0x06] & 0xffffffffffffffffffffffffffffffffffffffff;
var var1 = 0xa9059cbb;
var var2 = temp0 + 0x44;
var var3 = 0x20;
var var4 = memory[0x40:0x60];
var var5 = temp0 - var4 + 0x44;
var var6 = var4;
var var7 = 0x00;
var var8 = var0;
var var9 = !address(var8).code.length;
if (var9) { revert(memory[0x00:0x00]); }
var temp1;
temp1, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
var3 = !temp1;
if (!var3) {
var0 = memory[0x40:0x60];
var1 = returndata.length;
if (var1 >= 0x20) { return; }
else { revert(memory[0x00:0x00]); }
} else {
var temp2 = returndata.length;
memory[0x00:0x00 + temp2] = returndata[0x00:0x00 + temp2];
revert(memory[0x00:0x00 + returndata.length]);
}
}
function refund() {
if (msg.sender != storage[0x00] & 0xffffffffffffffffffffffffffffffffffffffff) { revert(memory[0x00:0x00]); }
var temp0 = memory[0x40:0x60];
memory[temp0:temp0 + 0x20] = 0xa9059cbb00000000000000000000000000000000000000000000000000000000;
memory[temp0 + 0x04:temp0 + 0x04 + 0x20] = storage[0x01] & 0xffffffffffffffffffffffffffffffffffffffff;
memory[temp0 + 0x24:temp0 + 0x24 + 0x20] = storage[0x04];
var var0 = storage[0x06] & 0xffffffffffffffffffffffffffffffffffffffff;
var var1 = 0xa9059cbb;
var var2 = temp0 + 0x44;
var var3 = 0x20;
var var4 = memory[0x40:0x60];
var var5 = temp0 - var4 + 0x44;
var var6 = var4;
var var7 = 0x00;
var var8 = var0;
var var9 = !address(var8).code.length;
if (var9) { revert(memory[0x00:0x00]); }
var temp1;
temp1, memory[var4:var4 + var3] = address(var8).call.gas(msg.gas).value(var7)(memory[var6:var6 + var5]);
var3 = !temp1;
if (!var3) {
var0 = memory[0x40:0x60];
var1 = returndata.length;
if (var1 >= 0x20) { return; }
else { revert(memory[0x00:0x00]); }
} else {
var temp2 = returndata.length;
memory[0x00:0x00 + temp2] = returndata[0x00:0x00 + temp2];
revert(memory[0x00:0x00 + returndata.length]);
}
}
}
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 0x004b
000C 57 *JUMPI
label_000D:
000D 63 PUSH4 0xffffffff
0012 7C PUSH29 0x0100000000000000000000000000000000000000000000000000000000
0030 60 PUSH1 0x00
0032 35 CALLDATALOAD
0033 04 DIV
0034 16 AND
0035 63 PUSH4 0x3ccfd60b
003A 81 DUP2
003B 14 EQ
003C 61 PUSH2 0x0050
003F 57 *JUMPI
label_0040:
0040 80 DUP1
0041 63 PUSH4 0x590e1ae3
0046 14 EQ
0047 61 PUSH2 0x0067
004A 57 *JUMPI
label_004B:
004B 5B JUMPDEST
004C 60 PUSH1 0x00
004E 80 DUP1
004F FD *REVERT
label_0050:
0050 5B JUMPDEST
0051 34 CALLVALUE
0052 80 DUP1
0053 15 ISZERO
0054 61 PUSH2 0x005c
0057 57 *JUMPI
label_0058:
0058 60 PUSH1 0x00
005A 80 DUP1
005B FD *REVERT
label_005C:
005C 5B JUMPDEST
005D 50 POP
005E 61 PUSH2 0x0065
0061 61 PUSH2 0x007c
0064 56 *JUMP
label_0065:
0065 5B JUMPDEST
0066 00 *STOP
label_0067:
0067 5B JUMPDEST
0068 34 CALLVALUE
0069 80 DUP1
006A 15 ISZERO
006B 61 PUSH2 0x0073
006E 57 *JUMPI
label_006F:
006F 60 PUSH1 0x00
0071 80 DUP1
0072 FD *REVERT
label_0073:
0073 5B JUMPDEST
0074 50 POP
0075 61 PUSH2 0x0065
0078 61 PUSH2 0x0153
007B 56 *JUMP
label_007C:
007C 5B JUMPDEST
007D 60 PUSH1 0x00
007F 54 SLOAD
0080 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0095 16 AND
0096 33 CALLER
0097 14 EQ
0098 61 PUSH2 0x00a0
009B 57 *JUMPI
label_009C:
009C 60 PUSH1 0x00
009E 80 DUP1
009F FD *REVERT
label_00A0:
00A0 5B JUMPDEST
00A1 60 PUSH1 0x06
00A3 54 SLOAD
00A4 60 PUSH1 0x02
00A6 54 SLOAD
00A7 60 PUSH1 0x04
00A9 80 DUP1
00AA 54 SLOAD
00AB 60 PUSH1 0x40
00AD 80 DUP1
00AE 51 MLOAD
00AF 7F PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
00D0 81 DUP2
00D1 52 MSTORE
00D2 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00E7 94 SWAP5
00E8 85 DUP6
00E9 16 AND
00EA 93 SWAP4
00EB 81 DUP2
00EC 01 ADD
00ED 93 SWAP4
00EE 90 SWAP1
00EF 93 SWAP4
00F0 52 MSTORE
00F1 60 PUSH1 0x24
00F3 83 DUP4
00F4 01 ADD
00F5 91 SWAP2
00F6 90 SWAP1
00F7 91 SWAP2
00F8 52 MSTORE
00F9 51 MLOAD
00FA 91 SWAP2
00FB 90 SWAP1
00FC 92 SWAP3
00FD 16 AND
00FE 91 SWAP2
00FF 63 PUSH4 0xa9059cbb
0104 91 SWAP2
0105 60 PUSH1 0x44
0107 80 DUP1
0108 83 DUP4
0109 01 ADD
010A 92 SWAP3
010B 60 PUSH1 0x20
010D 92 SWAP3
010E 91 SWAP2
010F 90 SWAP1
0110 82 DUP3
0111 90 SWAP1
0112 03 SUB
0113 01 ADD
0114 81 DUP2
0115 60 PUSH1 0x00
0117 87 DUP8
0118 80 DUP1
0119 3B EXTCODESIZE
011A 15 ISZERO
011B 80 DUP1
011C 15 ISZERO
011D 61 PUSH2 0x0125
0120 57 *JUMPI
label_0121:
0121 60 PUSH1 0x00
0123 80 DUP1
0124 FD *REVERT
label_0125:
0125 5B JUMPDEST
0126 50 POP
0127 5A GAS
0128 F1 CALL
0129 15 ISZERO
012A 80 DUP1
012B 15 ISZERO
012C 61 PUSH2 0x0139
012F 57 *JUMPI
label_0130:
0130 3D RETURNDATASIZE
0131 60 PUSH1 0x00
0133 80 DUP1
0134 3E RETURNDATACOPY
0135 3D RETURNDATASIZE
0136 60 PUSH1 0x00
0138 FD *REVERT
label_0139:
0139 5B JUMPDEST
013A 50 POP
013B 50 POP
013C 50 POP
013D 50 POP
013E 60 PUSH1 0x40
0140 51 MLOAD
0141 3D RETURNDATASIZE
0142 60 PUSH1 0x20
0144 81 DUP2
0145 10 LT
0146 15 ISZERO
0147 61 PUSH2 0x014f
014A 57 *JUMPI
label_014B:
014B 60 PUSH1 0x00
014D 80 DUP1
014E FD *REVERT
label_014F:
014F 5B JUMPDEST
0150 50 POP
0151 50 POP
0152 56 *JUMP
label_0153:
0153 5B JUMPDEST
0154 60 PUSH1 0x00
0156 54 SLOAD
0157 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
016C 16 AND
016D 33 CALLER
016E 14 EQ
016F 61 PUSH2 0x0177
0172 57 *JUMPI
label_0173:
0173 60 PUSH1 0x00
0175 80 DUP1
0176 FD *REVERT
label_0177:
0177 5B JUMPDEST
0178 60 PUSH1 0x06
017A 54 SLOAD
017B 60 PUSH1 0x01
017D 54 SLOAD
017E 60 PUSH1 0x04
0180 80 DUP1
0181 54 SLOAD
0182 60 PUSH1 0x40
0184 80 DUP1
0185 51 MLOAD
0186 7F PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
01A7 81 DUP2
01A8 52 MSTORE
01A9 73 PUSH20 0xffffffffffffffffffffffffffffffffffffffff
01BE 94 SWAP5
01BF 85 DUP6
01C0 16 AND
01C1 93 SWAP4
01C2 81 DUP2
01C3 01 ADD
01C4 93 SWAP4
01C5 90 SWAP1
01C6 93 SWAP4
01C7 52 MSTORE
01C8 60 PUSH1 0x24
01CA 83 DUP4
01CB 01 ADD
01CC 91 SWAP2
01CD 90 SWAP1
01CE 91 SWAP2
01CF 52 MSTORE
01D0 51 MLOAD
01D1 91 SWAP2
01D2 90 SWAP1
01D3 92 SWAP3
01D4 16 AND
01D5 91 SWAP2
01D6 63 PUSH4 0xa9059cbb
01DB 91 SWAP2
01DC 60 PUSH1 0x44
01DE 80 DUP1
01DF 83 DUP4
01E0 01 ADD
01E1 92 SWAP3
01E2 60 PUSH1 0x20
01E4 92 SWAP3
01E5 91 SWAP2
01E6 90 SWAP1
01E7 82 DUP3
01E8 90 SWAP1
01E9 03 SUB
01EA 01 ADD
01EB 81 DUP2
01EC 60 PUSH1 0x00
01EE 87 DUP8
01EF 80 DUP1
01F0 3B EXTCODESIZE
01F1 15 ISZERO
01F2 80 DUP1
01F3 15 ISZERO
01F4 61 PUSH2 0x0125
01F7 57 *JUMPI
label_01F8:
01F8 60 PUSH1 0x00
01FA 80 DUP1
01FB FD *REVERT
01FC 00 *STOP
01FD A1 LOG1
01FE 65 PUSH6 0x627a7a723058
0205 20 SHA3
0206 C5 C5
0207 CA CA
0208 F1 CALL
0209 E4 E4
020A D5 D5
020B 86 DUP7
020C DD DD
020D C8 C8
020E 67 PUSH8 0x6544469586912d62
0217 C2 C2
0218 01 ADD
0219 64 PUSH5 0x83fb249f03
021F 10 LT
0220 E2 E2
0221 1B SHL
0222 43 NUMBER
0223 CC CC
0224 2B 2B
0225 A2 LOG2
0226 00 *STOP
0227 29 29