OPCODE DISASSEMBLY
Init Code Opcodes
Complete instruction-by-instruction disassembly of the 654-byte init code.
Every EVM opcode decoded and explained.
424 instructions|654 bytes|7 sections|32 annotated
EtherscanOffsetHexOpcodeOperandDescription
0x00006080PUSH10x80Push 1 byte onto stack
0x80
0x00026040PUSH10x40Push 1 byte onto stack
0x40
0x000452MSTORE—Store 32 bytes to memory
0x000534CALLVALUE—Get msg.value (ETH sent)
0x000680DUP1—Duplicate 1st stack item
0x000715ISZERO—Is zero? (a == 0)
0x000862000011PUSH30x000011Push 3 bytes onto stack
0x000011
0x000c57JUMPI—Conditional jump
0x000d6000PUSH10x00Push 1 byte onto stack
0x00
0x000f80DUP1—Duplicate 1st stack item
0x0010fdREVERT—Revert with data
0x00115bJUMPDEST—Valid jump destination
0x001250POP—Remove top stack item
0x001333CALLER—Get msg.sender
0x00146040PUSH10x40Push 1 byte onto stack
0x40
0x001651MLOAD—Load 32 bytes from memory
0x001780DUP1—Duplicate 1st stack item
0x00186040PUSH10x40Push 1 byte onto stack
0x40
0x001a01ADD—Addition (a + b)
0x001b6040PUSH10x40Push 1 byte onto stack
0x40
0x001d52MSTORE—Store 32 bytes to memory
0x001e80DUP1—Duplicate 1st stack item
0x001f600cPUSH10x0cPush 1 byte onto stack
0x0c
0x002181DUP2—Duplicate 2nd stack item
0x002252MSTORE—Store 32 bytes to memory
0x00236020PUSH10x20Push 1 byte onto stack
0x20
0x002501ADD—Addition (a + b)
0x00266b22b33337b93a10...PUSH120x22b333...b2b7Push 12 bytes onto stack
0x22b33337b93a102a37b5b2b7
0x003360a1PUSH10xa1Push 1 byte onto stack
0xa1
0x00351bSHL—Shift left
0x003681DUP2—Duplicate 2nd stack item
0x003752MSTORE—Store 32 bytes to memory
0x003850POP—Remove top stack item
0x00396040PUSH10x40Push 1 byte onto stack
0x40
0x003b51MLOAD—Load 32 bytes from memory
0x003c80DUP1—Duplicate 1st stack item
0x003d6040PUSH10x40Push 1 byte onto stack
0x40
0x003f01ADD—Addition (a + b)
0x00406040PUSH10x40Push 1 byte onto stack
0x40
0x004252MSTORE—Store 32 bytes to memory
0x004380DUP1—Duplicate 1st stack item
0x00446006PUSH10x06Push 1 byte onto stack
0x06
0x004681DUP2—Duplicate 2nd stack item
0x004752MSTORE—Store 32 bytes to memory
0x00486020PUSH10x20Push 1 byte onto stack
0x20
0x004a01ADD—Addition (a + b)
0x004b6511519193d495PUSH60x11519193d495Push 6 bytes onto stack
0x11519193d495
0x005260d2PUSH10xd2Push 1 byte onto stack
0xd2
0x00541bSHL—Shift left
0x005581DUP2—Duplicate 2nd stack item
0x005652MSTORE—Store 32 bytes to memory
0x005750POP—Remove top stack item
0x005881DUP2—Duplicate 2nd stack item
0x00596003PUSH10x03Push 1 byte onto stack
0x03
0x005b90SWAP1—Swap top with 2nd stack item
0x005c81DUP2—Duplicate 2nd stack item
0x005d62000068PUSH30x000068Push 3 bytes onto stack
0x000068
0x006191SWAP2—Swap top with 3rd stack item
0x006290SWAP1—Swap top with 2nd stack item
0x0063620001b2PUSH30x0001b2Push 3 bytes onto stack
0x0001b2
0x006756JUMP—Unconditional jump
0x00685bJUMPDEST—Valid jump destination
0x006950POP—Remove top stack item
0x006a6004PUSH10x04Push 1 byte onto stack
0x04
0x006c62000077PUSH30x000077Push 3 bytes onto stack
0x000077
0x007082DUP3—Duplicate 3rd stack item
0x007182DUP3—Duplicate 3rd stack item
0x0072620001b2PUSH30x0001b2Push 3 bytes onto stack
0x0001b2
0x007656JUMP—Unconditional jump
0x00775bJUMPDEST—Valid jump destination
0x007850POP—Remove top stack item
0x007950POP—Remove top stack item
0x007a50POP—Remove top stack item
0x007b6001PUSH10x01Push 1 byte onto stack
0x01
0x007d6001PUSH10x01Push 1 byte onto stack
0x01
0x007f60a0PUSH10xa0Push 1 byte onto stack
0xa0
0x00811bSHL—Shift left
0x008203SUB—Subtraction (a - b)
0x008381DUP2—Duplicate 2nd stack item
0x008416AND—Bitwise AND
0x0085620000a9PUSH30x0000a9Push 3 bytes onto stack
0x0000a9
0x008957JUMPI—Conditional jump
0x008a6040PUSH10x40Push 1 byte onto stack
0x40
0x008c51MLOAD—Load 32 bytes from memory
0x008d631e4fbdf7PUSH40x1e4fbdf7Push 4 bytes onto stack
0x1e4fbdf7
0x009260e0PUSH10xe0Push 1 byte onto stack
0xe0
0x00941bSHL—Shift left
0x009581DUP2—Duplicate 2nd stack item
0x009652MSTORE—Store 32 bytes to memory
0x00976000PUSH10x00Push 1 byte onto stack
0x00
0x00996004PUSH10x04Push 1 byte onto stack
0x04
0x009b82DUP3—Duplicate 3rd stack item
0x009c01ADD—Addition (a + b)
0x009d52MSTORE—Store 32 bytes to memory
0x009e6024PUSH10x24Push 1 byte onto stack
0x24
0x00a001ADD—Addition (a + b)
0x00a16040PUSH10x40Push 1 byte onto stack
0x40
0x00a351MLOAD—Load 32 bytes from memory
0x00a480DUP1—Duplicate 1st stack item
0x00a591SWAP2—Swap top with 3rd stack item
0x00a603SUB—Subtraction (a - b)
0x00a790SWAP1—Swap top with 2nd stack item
0x00a8fdREVERT—Revert with data
0x00a95bJUMPDEST—Valid jump destination
0x00aa620000b4PUSH30x0000b4Push 3 bytes onto stack
0x0000b4
0x00ae81DUP2—Duplicate 2nd stack item
0x00af620000bbPUSH30x0000bbPush 3 bytes onto stack
0x0000bb
0x00b356JUMP—Unconditional jump
0x00b45bJUMPDEST—Valid jump destination
0x00b550POP—Remove top stack item
0x00b66200027ePUSH30x00027ePush 3 bytes onto stack
0x00027e
0x00ba56JUMP—Unconditional jump
0x00bb5bJUMPDEST—Valid jump destination
0x00bc6005PUSH10x05Push 1 byte onto stack
0x05
0x00be80DUP1—Duplicate 1st stack item
0x00bf54SLOAD—Load from storage
0x00c06001PUSH10x01Push 1 byte onto stack
0x01
0x00c26001PUSH10x01Push 1 byte onto stack
0x01
0x00c460a0PUSH10xa0Push 1 byte onto stack
0xa0
0x00c61bSHL—Shift left
0x00c703SUB—Subtraction (a - b)
0x00c883DUP4—Duplicate 4th stack item
0x00c981DUP2—Duplicate 2nd stack item
0x00ca16AND—Bitwise AND
0x00cb6001PUSH10x01Push 1 byte onto stack
0x01
0x00cd6001PUSH10x01Push 1 byte onto stack
0x01
0x00cf60a0PUSH10xa0Push 1 byte onto stack
0xa0
0x00d11bSHL—Shift left
0x00d203SUB—Subtraction (a - b)
0x00d319NOT—Bitwise NOT
0x00d483DUP4—Duplicate 4th stack item
0x00d516AND—Bitwise AND
0x00d681DUP2—Duplicate 2nd stack item
0x00d717OR—Bitwise OR
0x00d890SWAP1—Swap top with 2nd stack item
0x00d993SWAP4—Swap top with 5th stack item
0x00da55SSTORE—Store to storage
0x00db6040PUSH10x40Push 1 byte onto stack
0x40
0x00dd51MLOAD—Load 32 bytes from memory
0x00de91SWAP2—Swap top with 3rd stack item
0x00df16AND—Bitwise AND
0x00e091SWAP2—Swap top with 3rd stack item
0x00e190SWAP1—Swap top with 2nd stack item
0x00e282DUP3—Duplicate 3rd stack item
0x00e390SWAP1—Swap top with 2nd stack item
0x00e47f8be0079c531659...PUSH320x8be007...57e0Push 32 bytes onto stack
0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0
0x010590SWAP1—Swap top with 2nd stack item
0x01066000PUSH10x00Push 1 byte onto stack
0x00
0x010890SWAP1—Swap top with 2nd stack item
0x0109a3LOG3—Emit log with 3 topics
0x010a50POP—Remove top stack item
0x010b50POP—Remove top stack item
0x010c56JUMP—Unconditional jump
0x010d5bJUMPDEST—Valid jump destination
0x010e634e487b71PUSH40x4e487b71Push 4 bytes onto stack
0x4e487b71
0x011360e0PUSH10xe0Push 1 byte onto stack
0xe0
0x01151bSHL—Shift left
0x01166000PUSH10x00Push 1 byte onto stack
0x00
0x011852MSTORE—Store 32 bytes to memory
0x01196041PUSH10x41Push 1 byte onto stack
0x41
0x011b6004PUSH10x04Push 1 byte onto stack
0x04
0x011d52MSTORE—Store 32 bytes to memory
0x011e6024PUSH10x24Push 1 byte onto stack
0x24
0x01206000PUSH10x00Push 1 byte onto stack
0x00
0x0122fdREVERT—Revert with data
0x01235bJUMPDEST—Valid jump destination
0x01246001PUSH10x01Push 1 byte onto stack
0x01
0x012681DUP2—Duplicate 2nd stack item
0x012781DUP2—Duplicate 2nd stack item
0x01281cSHR—Shift right (logical)
0x012990SWAP1—Swap top with 2nd stack item
0x012a82DUP3—Duplicate 3rd stack item
0x012b16AND—Bitwise AND
0x012c80DUP1—Duplicate 1st stack item
0x012d62000138PUSH30x000138Push 3 bytes onto stack
0x000138
0x013157JUMPI—Conditional jump
0x0132607fPUSH10x7fPush 1 byte onto stack
0x7f
0x013482DUP3—Duplicate 3rd stack item
0x013516AND—Bitwise AND
0x013691SWAP2—Swap top with 3rd stack item
0x013750POP—Remove top stack item
0x01385bJUMPDEST—Valid jump destination
0x01396020PUSH10x20Push 1 byte onto stack
0x20
0x013b82DUP3—Duplicate 3rd stack item
0x013c10LT—Less than (a < b)
0x013d81DUP2—Duplicate 2nd stack item
0x013e03SUB—Subtraction (a - b)
0x013f62000159PUSH30x000159Push 3 bytes onto stack
0x000159
0x014357JUMPI—Conditional jump
0x0144634e487b71PUSH40x4e487b71Push 4 bytes onto stack
0x4e487b71
0x014960e0PUSH10xe0Push 1 byte onto stack
0xe0
0x014b1bSHL—Shift left
0x014c6000PUSH10x00Push 1 byte onto stack
0x00
0x014e52MSTORE—Store 32 bytes to memory
0x014f6022PUSH10x22Push 1 byte onto stack
0x22
0x01516004PUSH10x04Push 1 byte onto stack
0x04
0x015352MSTORE—Store 32 bytes to memory
0x01546024PUSH10x24Push 1 byte onto stack
0x24
0x01566000PUSH10x00Push 1 byte onto stack
0x00
0x0158fdREVERT—Revert with data
0x01595bJUMPDEST—Valid jump destination
0x015a50POP—Remove top stack item
0x015b91SWAP2—Swap top with 3rd stack item
0x015c90SWAP1—Swap top with 2nd stack item
0x015d50POP—Remove top stack item
0x015e56JUMP—Unconditional jump
0x015f5bJUMPDEST—Valid jump destination
0x0160601fPUSH10x1fPush 1 byte onto stack
0x1f
0x016282DUP3—Duplicate 3rd stack item
0x016311GT—Greater than (a > b)
0x016415ISZERO—Is zero? (a == 0)
0x0165620001adPUSH30x0001adPush 3 bytes onto stack
0x0001ad
0x016957JUMPI—Conditional jump
0x016a6000PUSH10x00Push 1 byte onto stack
0x00
0x016c81DUP2—Duplicate 2nd stack item
0x016d81DUP2—Duplicate 2nd stack item
0x016e52MSTORE—Store 32 bytes to memory
0x016f6020PUSH10x20Push 1 byte onto stack
0x20
0x017181DUP2—Duplicate 2nd stack item
0x017220KECCAK256—Compute Keccak-256 hash
0x0173601fPUSH10x1fPush 1 byte onto stack
0x1f
0x017585DUP6—Duplicate 6th stack item
0x017601ADD—Addition (a + b)
0x01776005PUSH10x05Push 1 byte onto stack
0x05
0x01791cSHR—Shift right (logical)
0x017a81DUP2—Duplicate 2nd stack item
0x017b01ADD—Addition (a + b)
0x017c6020PUSH10x20Push 1 byte onto stack
0x20
0x017e86DUP7—Duplicate 7th stack item
0x017f10LT—Less than (a < b)
0x018015ISZERO—Is zero? (a == 0)
0x018162000188PUSH30x000188Push 3 bytes onto stack
0x000188
0x018557JUMPI—Conditional jump
0x018650POP—Remove top stack item
0x018780DUP1—Duplicate 1st stack item
0x01885bJUMPDEST—Valid jump destination
0x0189601fPUSH10x1fPush 1 byte onto stack
0x1f
0x018b85DUP6—Duplicate 6th stack item
0x018c01ADD—Addition (a + b)
0x018d6005PUSH10x05Push 1 byte onto stack
0x05
0x018f1cSHR—Shift right (logical)
0x019082DUP3—Duplicate 3rd stack item
0x019101ADD—Addition (a + b)
0x019291SWAP2—Swap top with 3rd stack item
0x019350POP—Remove top stack item
0x01945bJUMPDEST—Valid jump destination
0x019581DUP2—Duplicate 2nd stack item
0x019681DUP2—Duplicate 2nd stack item
0x019710LT—Less than (a < b)
0x019815ISZERO—Is zero? (a == 0)
0x0199620001a9PUSH30x0001a9Push 3 bytes onto stack
0x0001a9
0x019d57JUMPI—Conditional jump
0x019e82DUP3—Duplicate 3rd stack item
0x019f81DUP2—Duplicate 2nd stack item
0x01a055SSTORE—Store to storage
0x01a16001PUSH10x01Push 1 byte onto stack
0x01
0x01a301ADD—Addition (a + b)
0x01a462000194PUSH30x000194Push 3 bytes onto stack
0x000194
0x01a856JUMP—Unconditional jump
0x01a95bJUMPDEST—Valid jump destination
0x01aa50POP—Remove top stack item
0x01ab50POP—Remove top stack item
0x01ac50POP—Remove top stack item
0x01ad5bJUMPDEST—Valid jump destination
0x01ae50POP—Remove top stack item
0x01af50POP—Remove top stack item
0x01b050POP—Remove top stack item
0x01b156JUMP—Unconditional jump
0x01b25bJUMPDEST—Valid jump destination
0x01b381DUP2—Duplicate 2nd stack item
0x01b451MLOAD—Load 32 bytes from memory
0x01b56001PUSH10x01Push 1 byte onto stack
0x01
0x01b76001PUSH10x01Push 1 byte onto stack
0x01
0x01b96040PUSH10x40Push 1 byte onto stack
0x40
0x01bb1bSHL—Shift left
0x01bc03SUB—Subtraction (a - b)
0x01bd81DUP2—Duplicate 2nd stack item
0x01be11GT—Greater than (a > b)
0x01bf15ISZERO—Is zero? (a == 0)
0x01c0620001cePUSH30x0001cePush 3 bytes onto stack
0x0001ce
0x01c457JUMPI—Conditional jump
0x01c5620001cePUSH30x0001cePush 3 bytes onto stack
0x0001ce
0x01c96200010dPUSH30x00010dPush 3 bytes onto stack
0x00010d
0x01cd56JUMP—Unconditional jump
0x01ce5bJUMPDEST—Valid jump destination
0x01cf620001e6PUSH30x0001e6Push 3 bytes onto stack
0x0001e6
0x01d381DUP2—Duplicate 2nd stack item
0x01d4620001dfPUSH30x0001dfPush 3 bytes onto stack
0x0001df
0x01d884DUP5—Duplicate 5th stack item
0x01d954SLOAD—Load from storage
0x01da62000123PUSH30x000123Push 3 bytes onto stack
0x000123
0x01de56JUMP—Unconditional jump
0x01df5bJUMPDEST—Valid jump destination
0x01e084DUP5—Duplicate 5th stack item
0x01e16200015fPUSH30x00015fPush 3 bytes onto stack
0x00015f
0x01e556JUMP—Unconditional jump
0x01e65bJUMPDEST—Valid jump destination
0x01e76020PUSH10x20Push 1 byte onto stack
0x20
0x01e980DUP1—Duplicate 1st stack item
0x01ea601fPUSH10x1fPush 1 byte onto stack
0x1f
0x01ec83DUP4—Duplicate 4th stack item
0x01ed11GT—Greater than (a > b)
0x01ee6001PUSH10x01Push 1 byte onto stack
0x01
0x01f081DUP2—Duplicate 2nd stack item
0x01f114EQ—Equality check (a == b)
0x01f26200021ePUSH30x00021ePush 3 bytes onto stack
0x00021e
0x01f657JUMPI—Conditional jump
0x01f76000PUSH10x00Push 1 byte onto stack
0x00
0x01f984DUP5—Duplicate 5th stack item
0x01fa15ISZERO—Is zero? (a == 0)
0x01fb62000205PUSH30x000205Push 3 bytes onto stack
0x000205
0x01ff57JUMPI—Conditional jump
0x020050POP—Remove top stack item
0x020185DUP6—Duplicate 6th stack item
0x020283DUP4—Duplicate 4th stack item
0x020301ADD—Addition (a + b)
0x020451MLOAD—Load 32 bytes from memory
0x02055bJUMPDEST—Valid jump destination
0x02066000PUSH10x00Push 1 byte onto stack
0x00
0x020819NOT—Bitwise NOT
0x02096003PUSH10x03Push 1 byte onto stack
0x03
0x020b86DUP7—Duplicate 7th stack item
0x020c90SWAP1—Swap top with 2nd stack item
0x020d1bSHL—Shift left
0x020e1cSHR—Shift right (logical)
0x020f19NOT—Bitwise NOT
0x021016AND—Bitwise AND
0x02116001PUSH10x01Push 1 byte onto stack
0x01
0x021385DUP6—Duplicate 6th stack item
0x021490SWAP1—Swap top with 2nd stack item
0x02151bSHL—Shift left
0x021617OR—Bitwise OR
0x021785DUP6—Duplicate 6th stack item
0x021855SSTORE—Store to storage
0x0219620001a9PUSH30x0001a9Push 3 bytes onto stack
0x0001a9
0x021d56JUMP—Unconditional jump
0x021e5bJUMPDEST—Valid jump destination
0x021f6000PUSH10x00Push 1 byte onto stack
0x00
0x022185DUP6—Duplicate 6th stack item
0x022281DUP2—Duplicate 2nd stack item
0x022352MSTORE—Store 32 bytes to memory
0x02246020PUSH10x20Push 1 byte onto stack
0x20
0x022681DUP2—Duplicate 2nd stack item
0x022720KECCAK256—Compute Keccak-256 hash
0x0228601fPUSH10x1fPush 1 byte onto stack
0x1f
0x022a19NOT—Bitwise NOT
0x022b86DUP7—Duplicate 7th stack item
0x022c16AND—Bitwise AND
0x022d91SWAP2—Swap top with 3rd stack item
0x022e5bJUMPDEST—Valid jump destination
0x022f82DUP3—Duplicate 3rd stack item
0x023081DUP2—Duplicate 2nd stack item
0x023110LT—Less than (a < b)
0x023215ISZERO—Is zero? (a == 0)
0x02336200024fPUSH30x00024fPush 3 bytes onto stack
0x00024f
0x023757JUMPI—Conditional jump
0x023888DUP9—Duplicate 9th stack item
0x023986DUP7—Duplicate 7th stack item
0x023a01ADD—Addition (a + b)
0x023b51MLOAD—Load 32 bytes from memory
0x023c82DUP3—Duplicate 3rd stack item
0x023d55SSTORE—Store to storage
0x023e94SWAP5—Swap top with 6th stack item
0x023f84DUP5—Duplicate 5th stack item
0x024001ADD—Addition (a + b)
0x024194SWAP5—Swap top with 6th stack item
0x02426001PUSH10x01Push 1 byte onto stack
0x01
0x024490SWAP1—Swap top with 2nd stack item
0x024591SWAP2—Swap top with 3rd stack item
0x024601ADD—Addition (a + b)
0x024790SWAP1—Swap top with 2nd stack item
0x024884DUP5—Duplicate 5th stack item
0x024901ADD—Addition (a + b)
0x024a6200022ePUSH30x00022ePush 3 bytes onto stack
0x00022e
0x024e56JUMP—Unconditional jump
0x024f5bJUMPDEST—Valid jump destination
0x025050POP—Remove top stack item
0x025185DUP6—Duplicate 6th stack item
0x025282DUP3—Duplicate 3rd stack item
0x025310LT—Less than (a < b)
0x025415ISZERO—Is zero? (a == 0)
0x02556200026ePUSH30x00026ePush 3 bytes onto stack
0x00026e
0x025957JUMPI—Conditional jump
0x025a87DUP8—Duplicate 8th stack item
0x025b85DUP6—Duplicate 6th stack item
0x025c01ADD—Addition (a + b)
0x025d51MLOAD—Load 32 bytes from memory
0x025e6000PUSH10x00Push 1 byte onto stack
0x00
0x026019NOT—Bitwise NOT
0x02616003PUSH10x03Push 1 byte onto stack
0x03
0x026388DUP9—Duplicate 9th stack item
0x026490SWAP1—Swap top with 2nd stack item
0x02651bSHL—Shift left
0x026660f8PUSH10xf8Push 1 byte onto stack
0xf8
0x026816AND—Bitwise AND
0x02691cSHR—Shift right (logical)
0x026a19NOT—Bitwise NOT
0x026b16AND—Bitwise AND
0x026c81DUP2—Duplicate 2nd stack item
0x026d55SSTORE—Store to storage
0x026e5bJUMPDEST—Valid jump destination
0x026f50POP—Remove top stack item
0x027050POP—Remove top stack item
0x027150POP—Remove top stack item
0x027250POP—Remove top stack item
0x027350POP—Remove top stack item
0x02746001PUSH10x01Push 1 byte onto stack
0x01
0x027690SWAP1—Swap top with 2nd stack item
0x027781DUP2—Duplicate 2nd stack item
0x02781bSHL—Shift left
0x027901ADD—Addition (a + b)
0x027a90SWAP1—Swap top with 2nd stack item
0x027b55SSTORE—Store to storage
0x027c50POP—Remove top stack item
0x027d56JUMP—Unconditional jump
0x027e5bJUMPDEST—Valid jump destination
0x027f610f1cPUSH20x0f1cPush 2 bytes onto stack
0x0f1c
0x028280DUP1—Duplicate 1st stack item
0x02836200028ePUSH30x00028ePush 3 bytes onto stack
0x00028e
0x02876000PUSH10x00Push 1 byte onto stack
0x00
0x028939CODECOPY—Copy code to memory
0x028a6000PUSH10x00Push 1 byte onto stack
0x00
0x028cf3RETURN—Return data from call
0x028dfeINVALID—Invalid instruction
Click annotated rows for detailed explanationsOpcode | Operand | Description
EffortToken Init Code — 424 instructions, 654 bytes