Online Solidity Decompiler

« Decompile another contract

Address

0x97e15f4cd0b9063233a0c664a3873446fedb926e [etherscan.io | etherchain.org]

Public Methods

No public methods detected.

Internal Methods

func_0067() returns (r0)
func_0256(arg0, arg1) returns (r0)

Decompilation

This might be constructor bytecode - to get at the deployed contract, go back and remove the constructor prefix, usually up to the next 6060 or 6080.
contract Contract { function main() { memory[0x40:0x60] = 0x80; if (msg.data.length) { var var0 = 0x0011; var var1 = 0x0027; var var2 = 0x0022; var2 = func_0067(); label_0022: 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 = 0x0011; var1 = 0x0027; var2 = 0x0022; var2 = func_0067(); goto label_0022; } } function func_0067() returns (var r0) { var var0 = 0x00; var var1 = storage[0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50] & (0x01 << 0xa0) - 0x01; var temp0 = var1 & (0x01 << 0xa0) - 0x01; var1 = temp0; var var2 = 0x5c60da1b; var temp1 = memory[0x40:0x60]; memory[temp1:temp1 + 0x20] = (var2 & 0xffffffff) << 0xe0; var var3 = temp1 + 0x04; var var4 = 0x20; var var5 = memory[0x40:0x60]; var var6 = var3 - var5; var var7 = var5; var var8 = var1; var var9 = !address(var8).code.length; if (var9) { revert(memory[0x00:0x00]); } var temp2; temp2, memory[var5:var5 + var4] = address(var8).staticcall.gas(msg.gas)(memory[var7:var7 + var6]); var4 = !temp2; if (!var4) { var temp3 = memory[0x40:0x60]; var temp4 = returndata.length; memory[0x40:0x60] = temp3 + (temp4 + 0x1f & ~0x1f); var1 = 0x010a; var3 = temp3; var2 = var3 + temp4; return func_0256(var2, var3); } else { var temp5 = returndata.length; memory[0x00:0x00 + temp5] = returndata[0x00:0x00 + temp5]; revert(memory[0x00:0x00 + returndata.length]); } } function func_0256(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i< 0x20) { revert(memory[0x00:0x00]); } var temp0 = memory[arg1:arg1 + 0x20]; var var1 = temp0; if (var1 == var1 & (0x01 << 0xa0) - 0x01) { return var1; } else { revert(memory[0x00:0x00]); } } }

Disassembly

label_0000: // Inputs[1] { @0005 msg.data.length } 0000 60 PUSH1 0x80 0002 60 PUSH1 0x40 0004 52 MSTORE 0005 36 CALLDATASIZE 0006 61 PUSH2 0x0013 0009 57 *JUMPI // Stack delta = +0 // Outputs[1] { @0004 memory[0x40:0x60] = 0x80 } // Block ends with conditional jump to 0x0013, if msg.data.length label_000A: // Incoming jump from 0x0009, if not msg.data.length 000A 61 PUSH2 0x0011 000D 61 PUSH2 0x0017 0010 56 *JUMP // Stack delta = +1 // Outputs[1] { @000A stack[0] = 0x0011 } // Block ends with unconditional jump to 0x0017 0011 5B JUMPDEST 0012 00 *STOP label_0013: // Incoming jump from 0x0009, if msg.data.length 0013 5B JUMPDEST 0014 61 PUSH2 0x0011 0017 5B JUMPDEST 0018 61 PUSH2 0x0027 001B 61 PUSH2 0x0022 001E 61 PUSH2 0x0067 0021 56 *JUMP // Stack delta = +3 // Outputs[3] // { // @0014 stack[0] = 0x0011 // @0018 stack[1] = 0x0027 // @001B stack[2] = 0x0022 // } // Block ends with call to 0x0067, returns to 0x0022 label_0022: // Incoming return from call to 0x0067 at 0x0021 // Incoming return from call to 0x0067 at 0x0021 0022 5B JUMPDEST 0023 61 PUSH2 0x010f 0026 56 *JUMP // Stack delta = +0 // Block ends with unconditional jump to 0x010f 0027 5B JUMPDEST 0028 56 *JUMP 0029 5B JUMPDEST 002A 60 PUSH1 0x60 002C 61 PUSH2 0x004e 002F 83 DUP4 0030 83 DUP4 0031 60 PUSH1 0x40 0033 51 MLOAD 0034 80 DUP1 0035 60 PUSH1 0x60 0037 01 ADD 0038 60 PUSH1 0x40 003A 52 MSTORE 003B 80 DUP1 003C 60 PUSH1 0x27 003E 81 DUP2 003F 52 MSTORE 0040 60 PUSH1 0x20 0042 01 ADD 0043 61 PUSH2 0x02ff 0046 60 PUSH1 0x27 0048 91 SWAP2 0049 39 CODECOPY 004A 61 PUSH2 0x0133 004D 56 *JUMP label_004E: // Incoming jump from 0x027A, if memory[stack[-2]:stack[-2] + 0x20] == memory[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // Inputs[3] // { // @004F stack[-5] // @004F stack[-1] // @0050 stack[-4] // } 004E 5B JUMPDEST 004F 93 SWAP4 0050 92 SWAP3 0051 50 POP 0052 50 POP 0053 50 POP 0054 56 *JUMP // Stack delta = -4 // Outputs[1] { @004F stack[-5] = stack[-1] } // Block ends with unconditional jump to stack[-5] 0055 5B JUMPDEST 0056 60 PUSH1 0x01 0058 60 PUSH1 0x01 005A 60 PUSH1 0xa0 005C 1B SHL 005D 03 SUB 005E 16 AND 005F 3B EXTCODESIZE 0060 15 ISZERO 0061 15 ISZERO 0062 90 SWAP1 0063 56 *JUMP 0064 5B JUMPDEST 0065 90 SWAP1 0066 56 *JUMP label_0067: // Incoming call from 0x0021, returns to 0x0022 // Incoming call from 0x0021, returns to 0x0022 // Inputs[1] { @008E storage[0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50] } 0067 5B JUMPDEST 0068 60 PUSH1 0x00 006A 61 PUSH2 0x009a 006D 7F PUSH32 0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50 008E 54 SLOAD 008F 60 PUSH1 0x01 0091 60 PUSH1 0x01 0093 60 PUSH1 0xa0 0095 1B SHL 0096 03 SUB 0097 16 AND 0098 90 SWAP1 0099 56 *JUMP // Stack delta = +2 // Outputs[2] // { // @0068 stack[0] = 0x00 // @0098 stack[1] = (0x01 << 0xa0) - 0x01 & storage[0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50] // } // Block ends with unconditional jump to 0x009a label_009A: // Incoming jump from 0x0099 // Inputs[4] // { // @00A3 stack[-1] // @00AB memory[0x40:0x60] // @00BF memory[0x40:0x60] // @00C6 address((0x01 << 0xa0) - 0x01 & stack[-1]).code.length // } 009A 5B JUMPDEST 009B 60 PUSH1 0x01 009D 60 PUSH1 0x01 009F 60 PUSH1 0xa0 00A1 1B SHL 00A2 03 SUB 00A3 16 AND 00A4 63 PUSH4 0x5c60da1b 00A9 60 PUSH1 0x40 00AB 51 MLOAD 00AC 81 DUP2 00AD 63 PUSH4 0xffffffff 00B2 16 AND 00B3 60 PUSH1 0xe0 00B5 1B SHL 00B6 81 DUP2 00B7 52 MSTORE 00B8 60 PUSH1 0x04 00BA 01 ADD 00BB 60 PUSH1 0x20 00BD 60 PUSH1 0x40 00BF 51 MLOAD 00C0 80 DUP1 00C1 83 DUP4 00C2 03 SUB 00C3 81 DUP2 00C4 86 DUP7 00C5 80 DUP1 00C6 3B EXTCODESIZE 00C7 15 ISZERO 00C8 80 DUP1 00C9 15 ISZERO 00CA 61 PUSH2 0x00d2 00CD 57 *JUMPI // Stack delta = +8 // Outputs[10] // { // @00A3 stack[-1] = (0x01 << 0xa0) - 0x01 & stack[-1] // @00A4 stack[0] = 0x5c60da1b // @00B7 memory[memory[0x40:0x60]:memory[0x40:0x60] + 0x20] = (0xffffffff & 0x5c60da1b) << 0xe0 // @00BA stack[1] = 0x04 + memory[0x40:0x60] // @00BB stack[2] = 0x20 // @00BF stack[3] = memory[0x40:0x60] // @00C2 stack[4] = (0x04 + memory[0x40:0x60]) - memory[0x40:0x60] // @00C3 stack[5] = memory[0x40:0x60] // @00C4 stack[6] = (0x01 << 0xa0) - 0x01 & stack[-1] // @00C7 stack[7] = !address((0x01 << 0xa0) - 0x01 & stack[-1]).code.length // } // Block ends with conditional jump to 0x00d2, if !!address((0x01 << 0xa0) - 0x01 & stack[-1]).code.length label_00CE: // Incoming jump from 0x00CD, if not !!address((0x01 << 0xa0) - 0x01 & stack[-1]).code.length // Inputs[1] { @00D1 memory[0x00:0x00] } 00CE 60 PUSH1 0x00 00D0 80 DUP1 00D1 FD *REVERT // Stack delta = +0 // Outputs[1] { @00D1 revert(memory[0x00:0x00]); } // Block terminates label_00D2: // Incoming jump from 0x00CD, if !!address((0x01 << 0xa0) - 0x01 & stack[-1]).code.length // Inputs[8] // { // @00D4 msg.gas // @00D5 stack[-6] // @00D5 stack[-3] // @00D5 stack[-5] // @00D5 stack[-2] // @00D5 address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // @00D5 memory[stack[-3]:stack[-3] + stack[-4]] // @00D5 stack[-4] // } 00D2 5B JUMPDEST 00D3 50 POP 00D4 5A GAS 00D5 FA STATICCALL 00D6 15 ISZERO 00D7 80 DUP1 00D8 15 ISZERO 00D9 61 PUSH2 0x00e6 00DC 57 *JUMPI // Stack delta = -5 // Outputs[2] // { // @00D5 memory[stack[-5]:stack[-5] + stack[-6]] = address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // @00D6 stack[-6] = !address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // } // Block ends with conditional jump to 0x00e6, if !!address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) label_00DD: // Incoming jump from 0x00DC, if not !!address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // Inputs[4] // { // @00DD returndata.length // @00E1 returndata[0x00:0x00 + returndata.length] // @00E2 returndata.length // @00E5 memory[0x00:0x00 + returndata.length] // } 00DD 3D RETURNDATASIZE 00DE 60 PUSH1 0x00 00E0 80 DUP1 00E1 3E RETURNDATACOPY 00E2 3D RETURNDATASIZE 00E3 60 PUSH1 0x00 00E5 FD *REVERT // Stack delta = +0 // Outputs[2] // { // @00E1 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @00E5 revert(memory[0x00:0x00 + returndata.length]); // } // Block terminates label_00E6: // Incoming jump from 0x00DC, if !!address(stack[-2]).staticcall.gas(msg.gas)(memory[stack[-3]:stack[-3] + stack[-4]]) // Inputs[2] // { // @00ED memory[0x40:0x60] // @00EE returndata.length // } 00E6 5B JUMPDEST 00E7 50 POP 00E8 50 POP 00E9 50 POP 00EA 50 POP 00EB 60 PUSH1 0x40 00ED 51 MLOAD 00EE 3D RETURNDATASIZE 00EF 60 PUSH1 0x1f 00F1 19 NOT 00F2 60 PUSH1 0x1f 00F4 82 DUP3 00F5 01 ADD 00F6 16 AND 00F7 82 DUP3 00F8 01 ADD 00F9 80 DUP1 00FA 60 PUSH1 0x40 00FC 52 MSTORE 00FD 50 POP 00FE 81 DUP2 00FF 01 ADD 0100 90 SWAP1 0101 61 PUSH2 0x010a 0104 91 SWAP2 0105 90 SWAP1 0106 61 PUSH2 0x0256 0109 56 *JUMP // Stack delta = -1 // Outputs[4] // { // @00FC memory[0x40:0x60] = memory[0x40:0x60] + (returndata.length + 0x1f & ~0x1f) // @0104 stack[-4] = 0x010a // @0105 stack[-2] = memory[0x40:0x60] // @0105 stack[-3] = memory[0x40:0x60] + returndata.length // } // Block ends with call to 0x0256, returns to 0x010A label_010A: // Incoming return from call to 0x0256 at 0x0109 // Inputs[3] // { // @010B stack[-2] // @010B stack[-1] // @010D stack[-3] // } 010A 5B JUMPDEST 010B 90 SWAP1 010C 50 POP 010D 90 SWAP1 010E 56 *JUMP // Stack delta = -2 // Outputs[1] { @010D stack[-3] = stack[-1] } // Block ends with unconditional jump to stack[-3] label_010F: // Incoming jump from 0x0026 // Inputs[9] // { // @0110 msg.data.length // @0114 msg.data[0x00:0x00 + msg.data.length] // @0118 msg.data.length // @011B stack[-1] // @011C msg.gas // @011D memory[0x00:0x00 + msg.data.length] // @011D address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @011E returndata.length // @0122 returndata[0x00:0x00 + returndata.length] // } 010F 5B JUMPDEST 0110 36 CALLDATASIZE 0111 60 PUSH1 0x00 0113 80 DUP1 0114 37 CALLDATACOPY 0115 60 PUSH1 0x00 0117 80 DUP1 0118 36 CALLDATASIZE 0119 60 PUSH1 0x00 011B 84 DUP5 011C 5A GAS 011D F4 DELEGATECALL 011E 3D RETURNDATASIZE 011F 60 PUSH1 0x00 0121 80 DUP1 0122 3E RETURNDATACOPY 0123 80 DUP1 0124 80 DUP1 0125 15 ISZERO 0126 61 PUSH2 0x012e 0129 57 *JUMPI // Stack delta = +2 // Outputs[5] // { // @0114 memory[0x00:0x00 + msg.data.length] = msg.data[0x00:0x00 + msg.data.length] // @011D memory[0x00:0x00] = address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @011D stack[0] = address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @0122 memory[0x00:0x00 + returndata.length] = returndata[0x00:0x00 + returndata.length] // @0123 stack[1] = address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // } // Block ends with conditional jump to 0x012e, if !address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) label_012A: // Incoming jump from 0x0129, if not !address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // Inputs[2] // { // @012A returndata.length // @012D memory[0x00:0x00 + returndata.length] // } 012A 3D RETURNDATASIZE 012B 60 PUSH1 0x00 012D F3 *RETURN // Stack delta = +0 // Outputs[1] { @012D return memory[0x00:0x00 + returndata.length]; } // Block terminates label_012E: // Incoming jump from 0x0129, if !address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // Inputs[2] // { // @012F returndata.length // @0132 memory[0x00:0x00 + returndata.length] // } 012E 5B JUMPDEST 012F 3D RETURNDATASIZE 0130 60 PUSH1 0x00 0132 FD *REVERT // Stack delta = +0 // Outputs[1] { @0132 revert(memory[0x00:0x00 + returndata.length]); } // Block terminates 0133 5B JUMPDEST 0134 60 PUSH1 0x60 0136 60 PUSH1 0x00 0138 80 DUP1 0139 85 DUP6 013A 60 PUSH1 0x01 013C 60 PUSH1 0x01 013E 60 PUSH1 0xa0 0140 1B SHL 0141 03 SUB 0142 16 AND 0143 85 DUP6 0144 60 PUSH1 0x40 0146 51 MLOAD 0147 61 PUSH2 0x0150 014A 91 SWAP2 014B 90 SWAP1 014C 61 PUSH2 0x027f 014F 56 *JUMP 0150 5B JUMPDEST 0151 60 PUSH1 0x00 0153 60 PUSH1 0x40 0155 51 MLOAD 0156 80 DUP1 0157 83 DUP4 0158 03 SUB 0159 81 DUP2 015A 85 DUP6 015B 5A GAS 015C F4 DELEGATECALL 015D 91 SWAP2 015E 50 POP 015F 50 POP 0160 3D RETURNDATASIZE 0161 80 DUP1 0162 60 PUSH1 0x00 0164 81 DUP2 0165 14 EQ 0166 61 PUSH2 0x018b 0169 57 *JUMPI 016A 60 PUSH1 0x40 016C 51 MLOAD 016D 91 SWAP2 016E 50 POP 016F 60 PUSH1 0x1f 0171 19 NOT 0172 60 PUSH1 0x3f 0174 3D RETURNDATASIZE 0175 01 ADD 0176 16 AND 0177 82 DUP3 0178 01 ADD 0179 60 PUSH1 0x40 017B 52 MSTORE 017C 3D RETURNDATASIZE 017D 82 DUP3 017E 52 MSTORE 017F 3D RETURNDATASIZE 0180 60 PUSH1 0x00 0182 60 PUSH1 0x20 0184 84 DUP5 0185 01 ADD 0186 3E RETURNDATACOPY 0187 61 PUSH2 0x0190 018A 56 *JUMP 018B 5B JUMPDEST 018C 60 PUSH1 0x60 018E 91 SWAP2 018F 50 POP 0190 5B JUMPDEST 0191 50 POP 0192 91 SWAP2 0193 50 POP 0194 91 SWAP2 0195 50 POP 0196 61 PUSH2 0x01a1 0199 86 DUP7 019A 83 DUP4 019B 83 DUP4 019C 87 DUP8 019D 61 PUSH2 0x01ab 01A0 56 *JUMP 01A1 5B JUMPDEST 01A2 96 SWAP7 01A3 95 SWAP6 01A4 50 POP 01A5 50 POP 01A6 50 POP 01A7 50 POP 01A8 50 POP 01A9 50 POP 01AA 56 *JUMP 01AB 5B JUMPDEST 01AC 60 PUSH1 0x60 01AE 83 DUP4 01AF 15 ISZERO 01B0 61 PUSH2 0x021a 01B3 57 *JUMPI 01B4 82 DUP3 01B5 51 MLOAD 01B6 61 PUSH2 0x0213 01B9 57 *JUMPI 01BA 61 PUSH2 0x01c2 01BD 85 DUP6 01BE 61 PUSH2 0x0055 01C1 56 *JUMP 01C2 5B JUMPDEST 01C3 61 PUSH2 0x0213 01C6 57 *JUMPI 01C7 60 PUSH1 0x40 01C9 51 MLOAD 01CA 62 PUSH3 0x461bcd 01CE 60 PUSH1 0xe5 01D0 1B SHL 01D1 81 DUP2 01D2 52 MSTORE 01D3 60 PUSH1 0x20 01D5 60 PUSH1 0x04 01D7 82 DUP3 01D8 01 ADD 01D9 52 MSTORE 01DA 60 PUSH1 0x1d 01DC 60 PUSH1 0x24 01DE 82 DUP3 01DF 01 ADD 01E0 52 MSTORE 01E1 7F PUSH32 0x416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000 0202 60 PUSH1 0x44 0204 82 DUP3 0205 01 ADD 0206 52 MSTORE 0207 60 PUSH1 0x64 0209 01 ADD 020A 5B JUMPDEST 020B 60 PUSH1 0x40 020D 51 MLOAD 020E 80 DUP1 020F 91 SWAP2 0210 03 SUB 0211 90 SWAP1 0212 FD *REVERT 0213 5B JUMPDEST 0214 50 POP 0215 81 DUP2 0216 61 PUSH2 0x0224 0219 56 *JUMP 021A 5B JUMPDEST 021B 61 PUSH2 0x0224 021E 83 DUP4 021F 83 DUP4 0220 61 PUSH2 0x022c 0223 56 *JUMP 0224 5B JUMPDEST 0225 94 SWAP5 0226 93 SWAP4 0227 50 POP 0228 50 POP 0229 50 POP 022A 50 POP 022B 56 *JUMP 022C 5B JUMPDEST 022D 81 DUP2 022E 51 MLOAD 022F 15 ISZERO 0230 61 PUSH2 0x023c 0233 57 *JUMPI 0234 81 DUP2 0235 51 MLOAD 0236 80 DUP1 0237 83 DUP4 0238 60 PUSH1 0x20 023A 01 ADD 023B FD *REVERT 023C 5B JUMPDEST 023D 80 DUP1 023E 60 PUSH1 0x40 0240 51 MLOAD 0241 62 PUSH3 0x461bcd 0245 60 PUSH1 0xe5 0247 1B SHL 0248 81 DUP2 0249 52 MSTORE 024A 60 PUSH1 0x04 024C 01 ADD 024D 61 PUSH2 0x020a 0250 91 SWAP2 0251 90 SWAP1 0252 61 PUSH2 0x029b 0255 56 *JUMP label_0256: // Incoming call from 0x0109, returns to 0x010A // Inputs[2] // { // @025B stack[-1] // @025C stack[-2] // } 0256 5B JUMPDEST 0257 60 PUSH1 0x00 0259 60 PUSH1 0x20 025B 82 DUP3 025C 84 DUP5 025D 03 SUB 025E 12 SLT 025F 15 ISZERO 0260 61 PUSH2 0x0268 0263 57 *JUMPI // Stack delta = +1 // Outputs[1] { @0257 stack[0] = 0x00 } // Block ends with conditional jump to 0x0268, if !(stack[-2] - stack[-1] i< 0x20) label_0264: // Incoming jump from 0x0263, if not !(stack[-2] - stack[-1] i< 0x20) // Inputs[1] { @0267 memory[0x00:0x00] } 0264 60 PUSH1 0x00 0266 80 DUP1 0267 FD *REVERT // Stack delta = +0 // Outputs[1] { @0267 revert(memory[0x00:0x00]); } // Block terminates label_0268: // Incoming jump from 0x0263, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[2] // { // @0269 stack[-2] // @026A memory[stack[-2]:stack[-2] + 0x20] // } 0268 5B JUMPDEST 0269 81 DUP2 026A 51 MLOAD 026B 60 PUSH1 0x01 026D 60 PUSH1 0x01 026F 60 PUSH1 0xa0 0271 1B SHL 0272 03 SUB 0273 81 DUP2 0274 16 AND 0275 81 DUP2 0276 14 EQ 0277 61 PUSH2 0x004e 027A 57 *JUMPI // Stack delta = +1 // Outputs[1] { @026A stack[0] = memory[stack[-2]:stack[-2] + 0x20] } // Block ends with conditional jump to 0x004e, if memory[stack[-2]:stack[-2] + 0x20] == memory[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 label_027B: // Incoming jump from 0x027A, if not memory[stack[-2]:stack[-2] + 0x20] == memory[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // Inputs[1] { @027E memory[0x00:0x00] } 027B 60 PUSH1 0x00 027D 80 DUP1 027E FD *REVERT // Stack delta = +0 // Outputs[1] { @027E revert(memory[0x00:0x00]); } // Block terminates 027F 5B JUMPDEST 0280 60 PUSH1 0x00 0282 82 DUP3 0283 51 MLOAD 0284 61 PUSH2 0x0291 0287 81 DUP2 0288 84 DUP5 0289 60 PUSH1 0x20 028B 87 DUP8 028C 01 ADD 028D 61 PUSH2 0x02ce 0290 56 *JUMP 0291 5B JUMPDEST 0292 91 SWAP2 0293 90 SWAP1 0294 91 SWAP2 0295 01 ADD 0296 92 SWAP3 0297 91 SWAP2 0298 50 POP 0299 50 POP 029A 56 *JUMP 029B 5B JUMPDEST 029C 60 PUSH1 0x20 029E 81 DUP2 029F 52 MSTORE 02A0 60 PUSH1 0x00 02A2 82 DUP3 02A3 51 MLOAD 02A4 80 DUP1 02A5 60 PUSH1 0x20 02A7 84 DUP5 02A8 01 ADD 02A9 52 MSTORE 02AA 61 PUSH2 0x02ba 02AD 81 DUP2 02AE 60 PUSH1 0x40 02B0 85 DUP6 02B1 01 ADD 02B2 60 PUSH1 0x20 02B4 87 DUP8 02B5 01 ADD 02B6 61 PUSH2 0x02ce 02B9 56 *JUMP 02BA 5B JUMPDEST 02BB 60 PUSH1 0x1f 02BD 01 ADD 02BE 60 PUSH1 0x1f 02C0 19 NOT 02C1 16 AND 02C2 91 SWAP2 02C3 90 SWAP1 02C4 91 SWAP2 02C5 01 ADD 02C6 60 PUSH1 0x40 02C8 01 ADD 02C9 92 SWAP3 02CA 91 SWAP2 02CB 50 POP 02CC 50 POP 02CD 56 *JUMP 02CE 5B JUMPDEST 02CF 60 PUSH1 0x00 02D1 5B JUMPDEST 02D2 83 DUP4 02D3 81 DUP2 02D4 10 LT 02D5 15 ISZERO 02D6 61 PUSH2 0x02e9 02D9 57 *JUMPI 02DA 81 DUP2 02DB 81 DUP2 02DC 01 ADD 02DD 51 MLOAD 02DE 83 DUP4 02DF 82 DUP3 02E0 01 ADD 02E1 52 MSTORE 02E2 60 PUSH1 0x20 02E4 01 ADD 02E5 61 PUSH2 0x02d1 02E8 56 *JUMP 02E9 5B JUMPDEST 02EA 83 DUP4 02EB 81 DUP2 02EC 11 GT 02ED 15 ISZERO 02EE 61 PUSH2 0x02f8 02F1 57 *JUMPI 02F2 60 PUSH1 0x00 02F4 84 DUP5 02F5 84 DUP5 02F6 01 ADD 02F7 52 MSTORE 02F8 5B JUMPDEST 02F9 50 POP 02FA 50 POP 02FB 50 POP 02FC 50 POP 02FD 56 *JUMP 02FE FE *ASSERT 02FF 41 COINBASE 0300 64 PUSH5 0x6472657373 0306 3A GASPRICE 0307 20 SHA3 0308 6C PUSH13 0x6f772d6c6576656c2064656c65 0316 67 PUSH8 0x6174652063616c6c 031F 20 SHA3 0320 66 PUSH7 0x61696c6564a164 0328 73 PUSH20 0x6f6c6343000807000a
Found this site useful?
Donations are greatly appreciated!
ETH: 0xB3F04f0c276fa1177c1779f6E1E156B2738ea392
Contact/hire: [email protected]