Online Solidity Decompiler

« Decompile another contract

Address

0x04d1b2e3638cd67ffe1ff5097222743c440df269 [etherscan.io | etherchain.org]

Public Methods

No public methods detected.

Internal Methods

func_0067() returns (r0)
func_024C(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; var2 = temp3 + temp4; var3 = temp3; return func_024C(var2, var3); } else { var temp5 = returndata.length; memory[0x00:0x00 + temp5] = returndata[0x00:0x00 + temp5]; revert(memory[0x00:0x00 + returndata.length]); } } function func_024C(var arg0, var arg1) returns (var r0) { var var0 = 0x00; if (arg0 - arg1 i>= 0x20) { var temp0 = memory[arg1:arg1 + 0x20]; var var1 = temp0; if (var1 == var1 & (0x01 << 0xa0) - 0x01) { return var1; } var temp1 = var0; revert(memory[temp1:temp1 + temp1]); } else { var temp2 = var0; revert(memory[temp2:temp2 + temp2]); } } }

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 0x02f3 0046 60 PUSH1 0x27 0048 91 SWAP2 0049 39 CODECOPY 004A 61 PUSH2 0x0133 004D 56 *JUMP label_004E: // Incoming jump from 0x026F, if memory[stack[-2]:stack[-2] + 0x20] == memory[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // Inputs[3] // { // @004F stack[-1] // @004F stack[-5] // @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[-3] // @00D5 stack[-4] // @00D5 stack[-5] // @00D5 stack[-6] // @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[-2] // } 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 0x024c 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 0x024c, returns to 0x010A label_010A: // Incoming return from call to 0x024C 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 address(stack[-1]).delegatecall.gas(msg.gas)(memory[0x00:0x00 + msg.data.length]) // @011D 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 61 PUSH2 0x013e 0139 84 DUP5 013A 61 PUSH2 0x0055 013D 56 *JUMP 013E 5B JUMPDEST 013F 61 PUSH2 0x019e 0142 57 *JUMPI 0143 60 PUSH1 0x40 0145 51 MLOAD 0146 62 PUSH3 0x461bcd 014A 60 PUSH1 0xe5 014C 1B SHL 014D 81 DUP2 014E 52 MSTORE 014F 60 PUSH1 0x20 0151 60 PUSH1 0x04 0153 82 DUP3 0154 01 ADD 0155 52 MSTORE 0156 60 PUSH1 0x26 0158 60 PUSH1 0x24 015A 82 DUP3 015B 01 ADD 015C 52 MSTORE 015D 7F PUSH32 0x416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f 017E 60 PUSH1 0x44 0180 82 DUP3 0181 01 ADD 0182 52 MSTORE 0183 65 PUSH6 0x1b9d1c9858dd 018A 60 PUSH1 0xd2 018C 1B SHL 018D 60 PUSH1 0x64 018F 82 DUP3 0190 01 ADD 0191 52 MSTORE 0192 60 PUSH1 0x84 0194 01 ADD 0195 5B JUMPDEST 0196 60 PUSH1 0x40 0198 51 MLOAD 0199 80 DUP1 019A 91 SWAP2 019B 03 SUB 019C 90 SWAP1 019D FD *REVERT 019E 5B JUMPDEST 019F 60 PUSH1 0x00 01A1 80 DUP1 01A2 85 DUP6 01A3 60 PUSH1 0x01 01A5 60 PUSH1 0x01 01A7 60 PUSH1 0xa0 01A9 1B SHL 01AA 03 SUB 01AB 16 AND 01AC 85 DUP6 01AD 60 PUSH1 0x40 01AF 51 MLOAD 01B0 61 PUSH2 0x01b9 01B3 91 SWAP2 01B4 90 SWAP1 01B5 61 PUSH2 0x0273 01B8 56 *JUMP 01B9 5B JUMPDEST 01BA 60 PUSH1 0x00 01BC 60 PUSH1 0x40 01BE 51 MLOAD 01BF 80 DUP1 01C0 83 DUP4 01C1 03 SUB 01C2 81 DUP2 01C3 85 DUP6 01C4 5A GAS 01C5 F4 DELEGATECALL 01C6 91 SWAP2 01C7 50 POP 01C8 50 POP 01C9 3D RETURNDATASIZE 01CA 80 DUP1 01CB 60 PUSH1 0x00 01CD 81 DUP2 01CE 14 EQ 01CF 61 PUSH2 0x01f4 01D2 57 *JUMPI 01D3 60 PUSH1 0x40 01D5 51 MLOAD 01D6 91 SWAP2 01D7 50 POP 01D8 60 PUSH1 0x1f 01DA 19 NOT 01DB 60 PUSH1 0x3f 01DD 3D RETURNDATASIZE 01DE 01 ADD 01DF 16 AND 01E0 82 DUP3 01E1 01 ADD 01E2 60 PUSH1 0x40 01E4 52 MSTORE 01E5 3D RETURNDATASIZE 01E6 82 DUP3 01E7 52 MSTORE 01E8 3D RETURNDATASIZE 01E9 60 PUSH1 0x00 01EB 60 PUSH1 0x20 01ED 84 DUP5 01EE 01 ADD 01EF 3E RETURNDATACOPY 01F0 61 PUSH2 0x01f9 01F3 56 *JUMP 01F4 5B JUMPDEST 01F5 60 PUSH1 0x60 01F7 91 SWAP2 01F8 50 POP 01F9 5B JUMPDEST 01FA 50 POP 01FB 91 SWAP2 01FC 50 POP 01FD 91 SWAP2 01FE 50 POP 01FF 61 PUSH2 0x0209 0202 82 DUP3 0203 82 DUP3 0204 86 DUP7 0205 61 PUSH2 0x0213 0208 56 *JUMP 0209 5B JUMPDEST 020A 96 SWAP7 020B 95 SWAP6 020C 50 POP 020D 50 POP 020E 50 POP 020F 50 POP 0210 50 POP 0211 50 POP 0212 56 *JUMP 0213 5B JUMPDEST 0214 60 PUSH1 0x60 0216 83 DUP4 0217 15 ISZERO 0218 61 PUSH2 0x0222 021B 57 *JUMPI 021C 50 POP 021D 81 DUP2 021E 61 PUSH2 0x004e 0221 56 *JUMP 0222 5B JUMPDEST 0223 82 DUP3 0224 51 MLOAD 0225 15 ISZERO 0226 61 PUSH2 0x0232 0229 57 *JUMPI 022A 82 DUP3 022B 51 MLOAD 022C 80 DUP1 022D 84 DUP5 022E 60 PUSH1 0x20 0230 01 ADD 0231 FD *REVERT 0232 5B JUMPDEST 0233 81 DUP2 0234 60 PUSH1 0x40 0236 51 MLOAD 0237 62 PUSH3 0x461bcd 023B 60 PUSH1 0xe5 023D 1B SHL 023E 81 DUP2 023F 52 MSTORE 0240 60 PUSH1 0x04 0242 01 ADD 0243 61 PUSH2 0x0195 0246 91 SWAP2 0247 90 SWAP1 0248 61 PUSH2 0x028f 024B 56 *JUMP label_024C: // Incoming call from 0x0109, returns to 0x010A // Inputs[2] // { // @0251 stack[-1] // @0252 stack[-2] // } 024C 5B JUMPDEST 024D 60 PUSH1 0x00 024F 60 PUSH1 0x20 0251 82 DUP3 0252 84 DUP5 0253 03 SUB 0254 12 SLT 0255 15 ISZERO 0256 61 PUSH2 0x025d 0259 57 *JUMPI // Stack delta = +1 // Outputs[1] { @024D stack[0] = 0x00 } // Block ends with conditional jump to 0x025d, if !(stack[-2] - stack[-1] i< 0x20) label_025A: // Incoming jump from 0x0259, if not !(stack[-2] - stack[-1] i< 0x20) // Inputs[2] // { // @025A stack[-1] // @025C memory[stack[-1]:stack[-1] + stack[-1]] // } 025A 80 DUP1 025B 81 DUP2 025C FD *REVERT // Stack delta = +0 // Outputs[1] { @025C revert(memory[stack[-1]:stack[-1] + stack[-1]]); } // Block terminates label_025D: // Incoming jump from 0x0259, if !(stack[-2] - stack[-1] i< 0x20) // Inputs[2] // { // @025E stack[-2] // @025F memory[stack[-2]:stack[-2] + 0x20] // } 025D 5B JUMPDEST 025E 81 DUP2 025F 51 MLOAD 0260 60 PUSH1 0x01 0262 60 PUSH1 0x01 0264 60 PUSH1 0xa0 0266 1B SHL 0267 03 SUB 0268 81 DUP2 0269 16 AND 026A 81 DUP2 026B 14 EQ 026C 61 PUSH2 0x004e 026F 57 *JUMPI // Stack delta = +1 // Outputs[1] { @025F 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_0270: // Incoming jump from 0x026F, if not memory[stack[-2]:stack[-2] + 0x20] == memory[stack[-2]:stack[-2] + 0x20] & (0x01 << 0xa0) - 0x01 // Inputs[2] // { // @0270 stack[-2] // @0272 memory[stack[-2]:stack[-2] + stack[-2]] // } 0270 81 DUP2 0271 82 DUP3 0272 FD *REVERT // Stack delta = +0 // Outputs[1] { @0272 revert(memory[stack[-2]:stack[-2] + stack[-2]]); } // Block terminates 0273 5B JUMPDEST 0274 60 PUSH1 0x00 0276 82 DUP3 0277 51 MLOAD 0278 61 PUSH2 0x0285 027B 81 DUP2 027C 84 DUP5 027D 60 PUSH1 0x20 027F 87 DUP8 0280 01 ADD 0281 61 PUSH2 0x02c2 0284 56 *JUMP 0285 5B JUMPDEST 0286 91 SWAP2 0287 90 SWAP1 0288 91 SWAP2 0289 01 ADD 028A 92 SWAP3 028B 91 SWAP2 028C 50 POP 028D 50 POP 028E 56 *JUMP 028F 5B JUMPDEST 0290 60 PUSH1 0x20 0292 81 DUP2 0293 52 MSTORE 0294 60 PUSH1 0x00 0296 82 DUP3 0297 51 MLOAD 0298 80 DUP1 0299 60 PUSH1 0x20 029B 84 DUP5 029C 01 ADD 029D 52 MSTORE 029E 61 PUSH2 0x02ae 02A1 81 DUP2 02A2 60 PUSH1 0x40 02A4 85 DUP6 02A5 01 ADD 02A6 60 PUSH1 0x20 02A8 87 DUP8 02A9 01 ADD 02AA 61 PUSH2 0x02c2 02AD 56 *JUMP 02AE 5B JUMPDEST 02AF 60 PUSH1 0x1f 02B1 01 ADD 02B2 60 PUSH1 0x1f 02B4 19 NOT 02B5 16 AND 02B6 91 SWAP2 02B7 90 SWAP1 02B8 91 SWAP2 02B9 01 ADD 02BA 60 PUSH1 0x40 02BC 01 ADD 02BD 92 SWAP3 02BE 91 SWAP2 02BF 50 POP 02C0 50 POP 02C1 56 *JUMP 02C2 5B JUMPDEST 02C3 60 PUSH1 0x00 02C5 5B JUMPDEST 02C6 83 DUP4 02C7 81 DUP2 02C8 10 LT 02C9 15 ISZERO 02CA 61 PUSH2 0x02dd 02CD 57 *JUMPI 02CE 81 DUP2 02CF 81 DUP2 02D0 01 ADD 02D1 51 MLOAD 02D2 83 DUP4 02D3 82 DUP3 02D4 01 ADD 02D5 52 MSTORE 02D6 60 PUSH1 0x20 02D8 01 ADD 02D9 61 PUSH2 0x02c5 02DC 56 *JUMP 02DD 5B JUMPDEST 02DE 83 DUP4 02DF 81 DUP2 02E0 11 GT 02E1 15 ISZERO 02E2 61 PUSH2 0x02ec 02E5 57 *JUMPI 02E6 60 PUSH1 0x00 02E8 84 DUP5 02E9 84 DUP5 02EA 01 ADD 02EB 52 MSTORE 02EC 5B JUMPDEST 02ED 50 POP 02EE 50 POP 02EF 50 POP 02F0 50 POP 02F1 56 *JUMP 02F2 FE *ASSERT 02F3 41 COINBASE 02F4 64 PUSH5 0x6472657373 02FA 3A GASPRICE 02FB 20 SHA3 02FC 6C PUSH13 0x6f772d6c6576656c2064656c65 030A 67 PUSH8 0x6174652063616c6c 0313 20 SHA3 0314 66 PUSH7 0x61696c6564a264 031C 69 PUSH10 0x70667358221220fbac16 0327 13 SGT 0328 58 PC 0329 7F PUSH32 0xef1900a63ead27db058caa8c54c05018668e7323e1e05757a9c064736f6c6343 034A 00 *STOP 034B 08 ADDMOD 034C 04 DIV 034D 00 *STOP 034E 33 CALLER
Found this site useful?
Donations are greatly appreciated!
ETH: 0xB3F04f0c276fa1177c1779f6E1E156B2738ea392
Contact/hire: [email protected]