Skip to content

Instantly share code, notes, and snippets.

@leonardoalt
Created July 15, 2021 19:02
Show Gist options
  • Save leonardoalt/39511873f2750be5fd44fcf032ae6c97 to your computer and use it in GitHub Desktop.
Save leonardoalt/39511873f2750be5fd44fcf032ae6c97 to your computer and use it in GitHub Desktop.
.code
PUSH 80 contract Verifier {\n using...
PUSH 40 contract Verifier {\n using...
MSTORE contract Verifier {\n using...
CALLVALUE contract Verifier {\n using...
DUP1 contract Verifier {\n using...
ISZERO contract Verifier {\n using...
PUSH [tag] 1 contract Verifier {\n using...
JUMPI contract Verifier {\n using...
PUSH 0 contract Verifier {\n using...
DUP1 contract Verifier {\n using...
REVERT contract Verifier {\n using...
tag 1 contract Verifier {\n using...
JUMPDEST contract Verifier {\n using...
POP contract Verifier {\n using...
PUSH #[$] 0000000000000000000000000000000000000000000000000000000000000000 contract Verifier {\n using...
DUP1 contract Verifier {\n using...
PUSH [$] 0000000000000000000000000000000000000000000000000000000000000000 contract Verifier {\n using...
PUSH 0 contract Verifier {\n using...
CODECOPY contract Verifier {\n using...
PUSH 0 contract Verifier {\n using...
RETURN contract Verifier {\n using...
.data
0:
.code
PUSH 80 contract Verifier {\n using...
PUSH 40 contract Verifier {\n using...
MSTORE contract Verifier {\n using...
CALLVALUE contract Verifier {\n using...
DUP1 contract Verifier {\n using...
ISZERO contract Verifier {\n using...
PUSH [tag] 1 contract Verifier {\n using...
JUMPI contract Verifier {\n using...
PUSH 0 contract Verifier {\n using...
DUP1 contract Verifier {\n using...
REVERT contract Verifier {\n using...
tag 1 contract Verifier {\n using...
JUMPDEST contract Verifier {\n using...
POP contract Verifier {\n using...
PUSH 4 contract Verifier {\n using...
CALLDATASIZE contract Verifier {\n using...
LT contract Verifier {\n using...
PUSH [tag] 2 contract Verifier {\n using...
JUMPI contract Verifier {\n using...
PUSH 0 contract Verifier {\n using...
CALLDATALOAD contract Verifier {\n using...
PUSH E0 contract Verifier {\n using...
SHR contract Verifier {\n using...
DUP1 contract Verifier {\n using...
PUSH 415DF87C contract Verifier {\n using...
EQ contract Verifier {\n using...
PUSH [tag] 3 contract Verifier {\n using...
JUMPI contract Verifier {\n using...
tag 2 contract Verifier {\n using...
JUMPDEST contract Verifier {\n using...
PUSH 0 contract Verifier {\n using...
DUP1 contract Verifier {\n using...
REVERT contract Verifier {\n using...
tag 3 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
PUSH [tag] 4 function verifyTx(\n ...
PUSH 4 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
CALLDATASIZE function verifyTx(\n ...
SUB function verifyTx(\n ...
PUSH 160 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
LT function verifyTx(\n ...
ISZERO function verifyTx(\n ...
PUSH [tag] 5 function verifyTx(\n ...
JUMPI function verifyTx(\n ...
PUSH 0 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
REVERT function verifyTx(\n ...
tag 5 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
DUP2 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
ADD function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
DUP1 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
CALLDATACOPY function verifyTx(\n ...
PUSH 0 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
ADD function verifyTx(\n ...
MSTORE function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
NOT function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
DUP3 function verifyTx(\n ...
ADD function verifyTx(\n ...
AND function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
POP function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP4 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 80 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
ADD function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
DUP1 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH 0 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
tag 6 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
DUP3 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
LT function verifyTx(\n ...
ISZERO function verifyTx(\n ...
PUSH [tag] 7 function verifyTx(\n ...
JUMPI function verifyTx(\n ...
DUP4 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MUL function verifyTx(\n ...
ADD function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
ADD function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
DUP1 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
CALLDATACOPY function verifyTx(\n ...
PUSH 0 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
ADD function verifyTx(\n ...
MSTORE function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
NOT function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
DUP3 function verifyTx(\n ...
ADD function verifyTx(\n ...
AND function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
POP function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP4 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
DUP2 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH 1 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH [tag] 6 function verifyTx(\n ...
JUMP function verifyTx(\n ...
tag 7 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
ADD function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
DUP1 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
PUSH 2 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
CALLDATACOPY function verifyTx(\n ...
PUSH 0 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
ADD function verifyTx(\n ...
MSTORE function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
NOT function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
DUP3 function verifyTx(\n ...
ADD function verifyTx(\n ...
AND function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
POP function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP4 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 60 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
PUSH 3 function verifyTx(\n ...
DUP1 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
ADD function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
DUP1 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
PUSH 3 function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
MUL function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
CALLDATACOPY function verifyTx(\n ...
PUSH 0 function verifyTx(\n ...
DUP2 function verifyTx(\n ...
DUP5 function verifyTx(\n ...
ADD function verifyTx(\n ...
MSTORE function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
NOT function verifyTx(\n ...
PUSH 1F function verifyTx(\n ...
DUP3 function verifyTx(\n ...
ADD function verifyTx(\n ...
AND function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
POP function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP4 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SWAP3 function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
PUSH [tag] 8 function verifyTx(\n ...
JUMP [in] function verifyTx(\n ...
tag 4 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
DUP1 function verifyTx(\n ...
DUP3 function verifyTx(\n ...
ISZERO function verifyTx(\n ...
ISZERO function verifyTx(\n ...
DUP2 function verifyTx(\n ...
MSTORE function verifyTx(\n ...
PUSH 20 function verifyTx(\n ...
ADD function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
PUSH 40 function verifyTx(\n ...
MLOAD function verifyTx(\n ...
DUP1 function verifyTx(\n ...
SWAP2 function verifyTx(\n ...
SUB function verifyTx(\n ...
SWAP1 function verifyTx(\n ...
RETURN function verifyTx(\n ...
tag 8 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
PUSH 0 bool r
PUSH [tag] 10 Proof memory proof
PUSH [tag] 11 Proof memory proof
JUMP [in] Proof memory proof
tag 10 Proof memory proof
JUMPDEST Proof memory proof
PUSH 40 Pairing.G1Point(a[0], a[1])
MLOAD Pairing.G1Point(a[0], a[1])
DUP1 Pairing.G1Point(a[0], a[1])
PUSH 40 Pairing.G1Point(a[0], a[1])
ADD Pairing.G1Point(a[0], a[1])
PUSH 40 Pairing.G1Point(a[0], a[1])
MSTORE Pairing.G1Point(a[0], a[1])
DUP1 Pairing.G1Point(a[0], a[1])
DUP8 a
PUSH 0 0
PUSH 2 a[0]
DUP2 a[0]
LT a[0]
PUSH [tag] 12 a[0]
JUMPI a[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 a[0]
PUSH 0 a[0]
MSTORE a[0]
PUSH 32 a[0]
PUSH 4 a[0]
MSTORE a[0]
PUSH 24 a[0]
PUSH 0 a[0]
REVERT a[0]
tag 12 a[0]
JUMPDEST a[0]
PUSH 20 a[0]
MUL a[0]
ADD a[0]
MLOAD a[0]
DUP2 Pairing.G1Point(a[0], a[1])
MSTORE Pairing.G1Point(a[0], a[1])
PUSH 20 Pairing.G1Point(a[0], a[1])
ADD Pairing.G1Point(a[0], a[1])
DUP8 a
PUSH 1 1
PUSH 2 a[1]
DUP2 a[1]
LT a[1]
PUSH [tag] 13 a[1]
JUMPI a[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 a[1]
PUSH 0 a[1]
MSTORE a[1]
PUSH 32 a[1]
PUSH 4 a[1]
MSTORE a[1]
PUSH 24 a[1]
PUSH 0 a[1]
REVERT a[1]
tag 13 a[1]
JUMPDEST a[1]
PUSH 20 a[1]
MUL a[1]
ADD a[1]
MLOAD a[1]
DUP2 Pairing.G1Point(a[0], a[1])
MSTORE Pairing.G1Point(a[0], a[1])
POP Pairing.G1Point(a[0], a[1])
DUP2 proof
PUSH 0 proof.a
ADD proof.a
DUP2 proof.a = Pairing.G1Point(a[0]...
SWAP1 proof.a = Pairing.G1Point(a[0]...
MSTORE proof.a = Pairing.G1Point(a[0]...
POP proof.a = Pairing.G1Point(a[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
MLOAD Pairing.G2Point([b[0][0], b[0]...
DUP1 Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
ADD Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
DUP1 Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
MLOAD Pairing.G2Point([b[0][0], b[0]...
DUP1 Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
ADD Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
DUP1 Pairing.G2Point([b[0][0], b[0]...
DUP9 b
PUSH 0 0
PUSH 2 b[0]
DUP2 b[0]
LT b[0]
PUSH [tag] 14 b[0]
JUMPI b[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0]
PUSH 0 b[0]
MSTORE b[0]
PUSH 32 b[0]
PUSH 4 b[0]
MSTORE b[0]
PUSH 24 b[0]
PUSH 0 b[0]
REVERT b[0]
tag 14 b[0]
JUMPDEST b[0]
PUSH 20 b[0]
MUL b[0]
ADD b[0]
MLOAD b[0]
PUSH 0 0
PUSH 2 b[0][0]
DUP2 b[0][0]
LT b[0][0]
PUSH [tag] 15 b[0][0]
JUMPI b[0][0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0][0]
PUSH 0 b[0][0]
MSTORE b[0][0]
PUSH 32 b[0][0]
PUSH 4 b[0][0]
MSTORE b[0][0]
PUSH 24 b[0][0]
PUSH 0 b[0][0]
REVERT b[0][0]
tag 15 b[0][0]
JUMPDEST b[0][0]
PUSH 20 b[0][0]
MUL b[0][0]
ADD b[0][0]
MLOAD b[0][0]
DUP2 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
PUSH 20 Pairing.G2Point([b[0][0], b[0]...
ADD Pairing.G2Point([b[0][0], b[0]...
DUP9 b
PUSH 0 0
PUSH 2 b[0]
DUP2 b[0]
LT b[0]
PUSH [tag] 16 b[0]
JUMPI b[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0]
PUSH 0 b[0]
MSTORE b[0]
PUSH 32 b[0]
PUSH 4 b[0]
MSTORE b[0]
PUSH 24 b[0]
PUSH 0 b[0]
REVERT b[0]
tag 16 b[0]
JUMPDEST b[0]
PUSH 20 b[0]
MUL b[0]
ADD b[0]
MLOAD b[0]
PUSH 1 1
PUSH 2 b[0][1]
DUP2 b[0][1]
LT b[0][1]
PUSH [tag] 17 b[0][1]
JUMPI b[0][1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[0][1]
PUSH 0 b[0][1]
MSTORE b[0][1]
PUSH 32 b[0][1]
PUSH 4 b[0][1]
MSTORE b[0][1]
PUSH 24 b[0][1]
PUSH 0 b[0][1]
REVERT b[0][1]
tag 17 b[0][1]
JUMPDEST b[0][1]
PUSH 20 b[0][1]
MUL b[0][1]
ADD b[0][1]
MLOAD b[0][1]
DUP2 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
POP Pairing.G2Point([b[0][0], b[0]...
DUP2 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
PUSH 20 Pairing.G2Point([b[0][0], b[0]...
ADD Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
MLOAD Pairing.G2Point([b[0][0], b[0]...
DUP1 Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
ADD Pairing.G2Point([b[0][0], b[0]...
PUSH 40 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
DUP1 Pairing.G2Point([b[0][0], b[0]...
DUP9 b
PUSH 1 1
PUSH 2 b[1]
DUP2 b[1]
LT b[1]
PUSH [tag] 18 b[1]
JUMPI b[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1]
PUSH 0 b[1]
MSTORE b[1]
PUSH 32 b[1]
PUSH 4 b[1]
MSTORE b[1]
PUSH 24 b[1]
PUSH 0 b[1]
REVERT b[1]
tag 18 b[1]
JUMPDEST b[1]
PUSH 20 b[1]
MUL b[1]
ADD b[1]
MLOAD b[1]
PUSH 0 0
PUSH 2 b[1][0]
DUP2 b[1][0]
LT b[1][0]
PUSH [tag] 19 b[1][0]
JUMPI b[1][0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1][0]
PUSH 0 b[1][0]
MSTORE b[1][0]
PUSH 32 b[1][0]
PUSH 4 b[1][0]
MSTORE b[1][0]
PUSH 24 b[1][0]
PUSH 0 b[1][0]
REVERT b[1][0]
tag 19 b[1][0]
JUMPDEST b[1][0]
PUSH 20 b[1][0]
MUL b[1][0]
ADD b[1][0]
MLOAD b[1][0]
DUP2 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
PUSH 20 Pairing.G2Point([b[0][0], b[0]...
ADD Pairing.G2Point([b[0][0], b[0]...
DUP9 b
PUSH 1 1
PUSH 2 b[1]
DUP2 b[1]
LT b[1]
PUSH [tag] 20 b[1]
JUMPI b[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1]
PUSH 0 b[1]
MSTORE b[1]
PUSH 32 b[1]
PUSH 4 b[1]
MSTORE b[1]
PUSH 24 b[1]
PUSH 0 b[1]
REVERT b[1]
tag 20 b[1]
JUMPDEST b[1]
PUSH 20 b[1]
MUL b[1]
ADD b[1]
MLOAD b[1]
PUSH 1 1
PUSH 2 b[1][1]
DUP2 b[1][1]
LT b[1][1]
PUSH [tag] 21 b[1][1]
JUMPI b[1][1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 b[1][1]
PUSH 0 b[1][1]
MSTORE b[1][1]
PUSH 32 b[1][1]
PUSH 4 b[1][1]
MSTORE b[1][1]
PUSH 24 b[1][1]
PUSH 0 b[1][1]
REVERT b[1][1]
tag 21 b[1][1]
JUMPDEST b[1][1]
PUSH 20 b[1][1]
MUL b[1][1]
ADD b[1][1]
MLOAD b[1][1]
DUP2 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
POP Pairing.G2Point([b[0][0], b[0]...
DUP2 Pairing.G2Point([b[0][0], b[0]...
MSTORE Pairing.G2Point([b[0][0], b[0]...
POP Pairing.G2Point([b[0][0], b[0]...
DUP2 proof
PUSH 20 proof.b
ADD proof.b
DUP2 proof.b = Pairing.G2Point([b[0...
SWAP1 proof.b = Pairing.G2Point([b[0...
MSTORE proof.b = Pairing.G2Point([b[0...
POP proof.b = Pairing.G2Point([b[0...
PUSH 40 Pairing.G1Point(c[0], c[1])
MLOAD Pairing.G1Point(c[0], c[1])
DUP1 Pairing.G1Point(c[0], c[1])
PUSH 40 Pairing.G1Point(c[0], c[1])
ADD Pairing.G1Point(c[0], c[1])
PUSH 40 Pairing.G1Point(c[0], c[1])
MSTORE Pairing.G1Point(c[0], c[1])
DUP1 Pairing.G1Point(c[0], c[1])
DUP6 c
PUSH 0 0
PUSH 2 c[0]
DUP2 c[0]
LT c[0]
PUSH [tag] 22 c[0]
JUMPI c[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 c[0]
PUSH 0 c[0]
MSTORE c[0]
PUSH 32 c[0]
PUSH 4 c[0]
MSTORE c[0]
PUSH 24 c[0]
PUSH 0 c[0]
REVERT c[0]
tag 22 c[0]
JUMPDEST c[0]
PUSH 20 c[0]
MUL c[0]
ADD c[0]
MLOAD c[0]
DUP2 Pairing.G1Point(c[0], c[1])
MSTORE Pairing.G1Point(c[0], c[1])
PUSH 20 Pairing.G1Point(c[0], c[1])
ADD Pairing.G1Point(c[0], c[1])
DUP6 c
PUSH 1 1
PUSH 2 c[1]
DUP2 c[1]
LT c[1]
PUSH [tag] 23 c[1]
JUMPI c[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 c[1]
PUSH 0 c[1]
MSTORE c[1]
PUSH 32 c[1]
PUSH 4 c[1]
MSTORE c[1]
PUSH 24 c[1]
PUSH 0 c[1]
REVERT c[1]
tag 23 c[1]
JUMPDEST c[1]
PUSH 20 c[1]
MUL c[1]
ADD c[1]
MLOAD c[1]
DUP2 Pairing.G1Point(c[0], c[1])
MSTORE Pairing.G1Point(c[0], c[1])
POP Pairing.G1Point(c[0], c[1])
DUP2 proof
PUSH 40 proof.c
ADD proof.c
DUP2 proof.c = Pairing.G1Point(c[0]...
SWAP1 proof.c = Pairing.G1Point(c[0]...
MSTORE proof.c = Pairing.G1Point(c[0]...
POP proof.c = Pairing.G1Point(c[0]...
PUSH 0 uint[] memory inputValues
PUSH 3 3
PUSH FFFFFFFFFFFFFFFF new uint[](3)
DUP2 new uint[](3)
GT new uint[](3)
ISZERO new uint[](3)
PUSH [tag] 24 new uint[](3)
JUMPI new uint[](3)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new uint[](3)
PUSH 0 new uint[](3)
MSTORE new uint[](3)
PUSH 41 new uint[](3)
PUSH 4 new uint[](3)
MSTORE new uint[](3)
PUSH 24 new uint[](3)
PUSH 0 new uint[](3)
REVERT new uint[](3)
tag 24 new uint[](3)
JUMPDEST new uint[](3)
PUSH 40 new uint[](3)
MLOAD new uint[](3)
SWAP1 new uint[](3)
DUP1 new uint[](3)
DUP3 new uint[](3)
MSTORE new uint[](3)
DUP1 new uint[](3)
PUSH 20 new uint[](3)
MUL new uint[](3)
PUSH 20 new uint[](3)
ADD new uint[](3)
DUP3 new uint[](3)
ADD new uint[](3)
PUSH 40 new uint[](3)
MSTORE new uint[](3)
DUP1 new uint[](3)
ISZERO new uint[](3)
PUSH [tag] 25 new uint[](3)
JUMPI new uint[](3)
DUP2 new uint[](3)
PUSH 20 new uint[](3)
ADD new uint[](3)
PUSH 20 new uint[](3)
DUP3 new uint[](3)
MUL new uint[](3)
DUP1 new uint[](3)
CALLDATASIZE new uint[](3)
DUP4 new uint[](3)
CALLDATACOPY new uint[](3)
DUP1 new uint[](3)
DUP3 new uint[](3)
ADD new uint[](3)
SWAP2 new uint[](3)
POP new uint[](3)
POP new uint[](3)
SWAP1 new uint[](3)
POP new uint[](3)
tag 25 new uint[](3)
JUMPDEST new uint[](3)
POP new uint[](3)
SWAP1 uint[] memory inputValues = ne...
POP uint[] memory inputValues = ne...
PUSH 0 uint i
tag 26 for(uint i = 0; i < input.leng...
JUMPDEST for(uint i = 0; i < input.leng...
PUSH 3 input.length
DUP2 i
LT i < input.length
ISZERO for(uint i = 0; i < input.leng...
PUSH [tag] 27 for(uint i = 0; i < input.leng...
JUMPI for(uint i = 0; i < input.leng...
DUP5 input
DUP2 i
PUSH 3 input[i]
DUP2 input[i]
LT input[i]
PUSH [tag] 29 input[i]
JUMPI input[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i]
PUSH 0 input[i]
MSTORE input[i]
PUSH 32 input[i]
PUSH 4 input[i]
MSTORE input[i]
PUSH 24 input[i]
PUSH 0 input[i]
REVERT input[i]
tag 29 input[i]
JUMPDEST input[i]
PUSH 20 input[i]
MUL input[i]
ADD input[i]
MLOAD input[i]
DUP3 inputValues
DUP3 i
DUP2 inputValues[i]
MLOAD inputValues[i]
DUP2 inputValues[i]
LT inputValues[i]
PUSH [tag] 30 inputValues[i]
JUMPI inputValues[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 inputValues[i]
PUSH 0 inputValues[i]
MSTORE inputValues[i]
PUSH 32 inputValues[i]
PUSH 4 inputValues[i]
MSTORE inputValues[i]
PUSH 24 inputValues[i]
PUSH 0 inputValues[i]
REVERT inputValues[i]
tag 30 inputValues[i]
JUMPDEST inputValues[i]
PUSH 20 inputValues[i]
MUL inputValues[i]
PUSH 20 inputValues[i]
ADD inputValues[i]
ADD inputValues[i]
DUP2 inputValues[i] = input[i]
DUP2 inputValues[i] = input[i]
MSTORE inputValues[i] = input[i]
POP inputValues[i] = input[i]
POP inputValues[i] = input[i]
PUSH [tag] 31 i.inc()
DUP2 i
PUSH [tag] 32 i.inc
JUMP [in] i.inc()
tag 31 i.inc()
JUMPDEST i.inc()
SWAP1 i = i.inc()
POP i = i.inc()
PUSH [tag] 26 for(uint i = 0; i < input.leng...
JUMP for(uint i = 0; i < input.leng...
tag 27 for(uint i = 0; i < input.leng...
JUMPDEST for(uint i = 0; i < input.leng...
POP for(uint i = 0; i < input.leng...
PUSH 0 0
PUSH [tag] 33 verify(inputValues, proof)
DUP3 inputValues
DUP5 proof
PUSH [tag] 34 verify
JUMP [in] verify(inputValues, proof)
tag 33 verify(inputValues, proof)
JUMPDEST verify(inputValues, proof)
EQ verify(inputValues, proof) == ...
ISZERO if (verify(inputValues, proof)...
PUSH [tag] 35 if (verify(inputValues, proof)...
JUMPI if (verify(inputValues, proof)...
PUSH 1 true
SWAP3 return true
POP return true
POP return true
POP return true
PUSH [tag] 9 return true
JUMP return true
tag 35 if (verify(inputValues, proof)...
JUMPDEST if (verify(inputValues, proof)...
PUSH 0 false
SWAP3 return false
POP return false
POP return false
POP return false
tag 9 function verifyTx(\n ...
JUMPDEST function verifyTx(\n ...
SWAP5 function verifyTx(\n ...
SWAP4 function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
POP function verifyTx(\n ...
JUMP [out] function verifyTx(\n ...
tag 32 function inc(uint a) internal ...
JUMPDEST function inc(uint a) internal ...
PUSH 0 uint c
PUSH [tag] 38 add(a, 1)
DUP3 a
PUSH 1 1
PUSH [tag] 39 add
JUMP [in] add(a, 1)
tag 38 add(a, 1)
JUMPDEST add(a, 1)
SWAP1 return add(a, 1)
POP return add(a, 1)
SWAP2 function inc(uint a) internal ...
SWAP1 function inc(uint a) internal ...
POP function inc(uint a) internal ...
JUMP [out] function inc(uint a) internal ...
tag 34 function verify(uint[] memory ...
JUMPDEST function verify(uint[] memory ...
PUSH 0 uint
DUP1 uint256 snark_scalar_field
PUSH 30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 218882428718392752222464057452...
SWAP1 uint256 snark_scalar_field = 2...
POP uint256 snark_scalar_field = 2...
PUSH 0 VerifyingKey memory vk
PUSH [tag] 41 verifyingKey()
PUSH [tag] 42 verifyingKey
JUMP [in] verifyingKey()
tag 41 verifyingKey()
JUMPDEST verifyingKey()
SWAP1 VerifyingKey memory vk = verif...
POP VerifyingKey memory vk = verif...
DUP1 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
MLOAD vk.query.length
PUSH [tag] 43 input.length.inc()
DUP7 input
MLOAD input.length
PUSH [tag] 32 input.length.inc
JUMP [in] input.length.inc()
tag 43 input.length.inc()
JUMPDEST input.length.inc()
EQ input.length.inc() == vk.query...
PUSH [tag] 44 require(input.length.inc() == ...
JUMPI require(input.length.inc() == ...
PUSH 0 require(input.length.inc() == ...
DUP1 require(input.length.inc() == ...
REVERT require(input.length.inc() == ...
tag 44 require(input.length.inc() == ...
JUMPDEST require(input.length.inc() == ...
PUSH 0 Pairing.G1Point memory vk_x
PUSH 40 Pairing.G1Point(0, 0)
MLOAD Pairing.G1Point(0, 0)
DUP1 Pairing.G1Point(0, 0)
PUSH 40 Pairing.G1Point(0, 0)
ADD Pairing.G1Point(0, 0)
PUSH 40 Pairing.G1Point(0, 0)
MSTORE Pairing.G1Point(0, 0)
DUP1 Pairing.G1Point(0, 0)
PUSH 0 0
DUP2 Pairing.G1Point(0, 0)
MSTORE Pairing.G1Point(0, 0)
PUSH 20 Pairing.G1Point(0, 0)
ADD Pairing.G1Point(0, 0)
PUSH 0 0
DUP2 Pairing.G1Point(0, 0)
MSTORE Pairing.G1Point(0, 0)
POP Pairing.G1Point(0, 0)
SWAP1 Pairing.G1Point memory vk_x = ...
POP Pairing.G1Point memory vk_x = ...
PUSH 0 uint i
tag 45 for (uint i = 0; i < input.len...
JUMPDEST for (uint i = 0; i < input.len...
DUP7 input
MLOAD input.length
DUP2 i
LT i < input.length
ISZERO for (uint i = 0; i < input.len...
PUSH [tag] 46 for (uint i = 0; i < input.len...
JUMPI for (uint i = 0; i < input.len...
DUP4 snark_scalar_field
DUP8 input
DUP3 i
DUP2 input[i]
MLOAD input[i]
DUP2 input[i]
LT input[i]
PUSH [tag] 48 input[i]
JUMPI input[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i]
PUSH 0 input[i]
MSTORE input[i]
PUSH 32 input[i]
PUSH 4 input[i]
MSTORE input[i]
PUSH 24 input[i]
PUSH 0 input[i]
REVERT input[i]
tag 48 input[i]
JUMPDEST input[i]
PUSH 20 input[i]
MUL input[i]
PUSH 20 input[i]
ADD input[i]
ADD input[i]
MLOAD input[i]
LT input[i] < snark_scalar_field
PUSH [tag] 49 require(input[i] < snark_scala...
JUMPI require(input[i] < snark_scala...
PUSH 0 require(input[i] < snark_scala...
DUP1 require(input[i] < snark_scala...
REVERT require(input[i] < snark_scala...
tag 49 require(input[i] < snark_scala...
JUMPDEST require(input[i] < snark_scala...
PUSH [tag] 50 Pairing.addition(vk_x, Pairing...
DUP3 vk_x
PUSH [tag] 51 Pairing.scalar_mul(vk.query[i....
DUP6 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
PUSH [tag] 52 i.inc()
DUP6 i
PUSH [tag] 32 i.inc
JUMP [in] i.inc()
tag 52 i.inc()
JUMPDEST i.inc()
DUP2 vk.query[i.inc()]
MLOAD vk.query[i.inc()]
DUP2 vk.query[i.inc()]
LT vk.query[i.inc()]
PUSH [tag] 53 vk.query[i.inc()]
JUMPI vk.query[i.inc()]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[i.inc()]
PUSH 0 vk.query[i.inc()]
MSTORE vk.query[i.inc()]
PUSH 32 vk.query[i.inc()]
PUSH 4 vk.query[i.inc()]
MSTORE vk.query[i.inc()]
PUSH 24 vk.query[i.inc()]
PUSH 0 vk.query[i.inc()]
REVERT vk.query[i.inc()]
tag 53 vk.query[i.inc()]
JUMPDEST vk.query[i.inc()]
PUSH 20 vk.query[i.inc()]
MUL vk.query[i.inc()]
PUSH 20 vk.query[i.inc()]
ADD vk.query[i.inc()]
ADD vk.query[i.inc()]
MLOAD vk.query[i.inc()]
DUP11 input
DUP6 i
DUP2 input[i]
MLOAD input[i]
DUP2 input[i]
LT input[i]
PUSH [tag] 54 input[i]
JUMPI input[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i]
PUSH 0 input[i]
MSTORE input[i]
PUSH 32 input[i]
PUSH 4 input[i]
MSTORE input[i]
PUSH 24 input[i]
PUSH 0 input[i]
REVERT input[i]
tag 54 input[i]
JUMPDEST input[i]
PUSH 20 input[i]
MUL input[i]
PUSH 20 input[i]
ADD input[i]
ADD input[i]
MLOAD input[i]
PUSH [tag] 55 Pairing.scalar_mul
JUMP [in] Pairing.scalar_mul(vk.query[i....
tag 51 Pairing.scalar_mul(vk.query[i....
JUMPDEST Pairing.scalar_mul(vk.query[i....
PUSH [tag] 56 Pairing.addition
JUMP [in] Pairing.addition(vk_x, Pairing...
tag 50 Pairing.addition(vk_x, Pairing...
JUMPDEST Pairing.addition(vk_x, Pairing...
SWAP2 vk_x = Pairing.addition(vk_x, ...
POP vk_x = Pairing.addition(vk_x, ...
PUSH [tag] 57 i.inc()
DUP2 i
PUSH [tag] 32 i.inc
JUMP [in] i.inc()
tag 57 i.inc()
JUMPDEST i.inc()
SWAP1 i = i.inc()
POP i = i.inc()
PUSH [tag] 45 for (uint i = 0; i < input.len...
JUMP for (uint i = 0; i < input.len...
tag 46 for (uint i = 0; i < input.len...
JUMPDEST for (uint i = 0; i < input.len...
POP for (uint i = 0; i < input.len...
PUSH [tag] 58 Pairing.addition(vk_x, vk.quer...
DUP2 vk_x
DUP4 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
PUSH 0 0
DUP2 vk.query[0]
MLOAD vk.query[0]
DUP2 vk.query[0]
LT vk.query[0]
PUSH [tag] 59 vk.query[0]
JUMPI vk.query[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[0]
PUSH 0 vk.query[0]
MSTORE vk.query[0]
PUSH 32 vk.query[0]
PUSH 4 vk.query[0]
MSTORE vk.query[0]
PUSH 24 vk.query[0]
PUSH 0 vk.query[0]
REVERT vk.query[0]
tag 59 vk.query[0]
JUMPDEST vk.query[0]
PUSH 20 vk.query[0]
MUL vk.query[0]
PUSH 20 vk.query[0]
ADD vk.query[0]
ADD vk.query[0]
MLOAD vk.query[0]
PUSH [tag] 56 Pairing.addition
JUMP [in] Pairing.addition(vk_x, vk.quer...
tag 58 Pairing.addition(vk_x, vk.quer...
JUMPDEST Pairing.addition(vk_x, vk.quer...
SWAP1 vk_x = Pairing.addition(vk_x, ...
POP vk_x = Pairing.addition(vk_x, ...
PUSH [tag] 60 Pairing.pairingProd4(vk.g_alph...
DUP3 vk
PUSH 20 vk.g_alpha
ADD vk.g_alpha
MLOAD vk.g_alpha
DUP4 vk
PUSH 40 vk.h_beta
ADD vk.h_beta
MLOAD vk.h_beta
DUP4 vk_x
DUP6 vk
PUSH 80 vk.h_gamma
ADD vk.h_gamma
MLOAD vk.h_gamma
DUP10 proof
PUSH 40 proof.c
ADD proof.c
MLOAD proof.c
DUP8 vk
PUSH 0 vk.h
ADD vk.h
MLOAD vk.h
PUSH [tag] 61 Pairing.negate(Pairing.additio...
PUSH [tag] 62 Pairing.addition(proof.a, vk.g...
DUP14 proof
PUSH 0 proof.a
ADD proof.a
MLOAD proof.a
DUP12 vk
PUSH 20 vk.g_alpha
ADD vk.g_alpha
MLOAD vk.g_alpha
PUSH [tag] 56 Pairing.addition
JUMP [in] Pairing.addition(proof.a, vk.g...
tag 62 Pairing.addition(proof.a, vk.g...
JUMPDEST Pairing.addition(proof.a, vk.g...
PUSH [tag] 63 Pairing.negate
JUMP [in] Pairing.negate(Pairing.additio...
tag 61 Pairing.negate(Pairing.additio...
JUMPDEST Pairing.negate(Pairing.additio...
PUSH [tag] 64 Pairing.addition(proof.b, vk.h...
DUP14 proof
PUSH 20 proof.b
ADD proof.b
MLOAD proof.b
DUP12 vk
PUSH 40 vk.h_beta
ADD vk.h_beta
MLOAD vk.h_beta
PUSH [tag] 65 Pairing.addition
JUMP [in] Pairing.addition(proof.b, vk.h...
tag 64 Pairing.addition(proof.b, vk.h...
JUMPDEST Pairing.addition(proof.b, vk.h...
PUSH [tag] 66 Pairing.pairingProd4
JUMP [in] Pairing.pairingProd4(vk.g_alph...
tag 60 Pairing.pairingProd4(vk.g_alph...
JUMPDEST Pairing.pairingProd4(vk.g_alph...
PUSH [tag] 67 if (!Pairing.pairingProd4(vk.g...
JUMPI if (!Pairing.pairingProd4(vk.g...
PUSH 1 1
SWAP4 return 1
POP return 1
POP return 1
POP return 1
POP return 1
PUSH [tag] 40 return 1
JUMP return 1
tag 67 if (!Pairing.pairingProd4(vk.g...
JUMPDEST if (!Pairing.pairingProd4(vk.g...
PUSH [tag] 68 Pairing.pairingProd2(proof.a, ...
DUP6 proof
PUSH 0 proof.a
ADD proof.a
MLOAD proof.a
DUP4 vk
PUSH 80 vk.h_gamma
ADD vk.h_gamma
MLOAD vk.h_gamma
PUSH [tag] 69 Pairing.negate(vk.g_gamma)
DUP6 vk
PUSH 60 vk.g_gamma
ADD vk.g_gamma
MLOAD vk.g_gamma
PUSH [tag] 63 Pairing.negate
JUMP [in] Pairing.negate(vk.g_gamma)
tag 69 Pairing.negate(vk.g_gamma)
JUMPDEST Pairing.negate(vk.g_gamma)
DUP9 proof
PUSH 20 proof.b
ADD proof.b
MLOAD proof.b
PUSH [tag] 70 Pairing.pairingProd2
JUMP [in] Pairing.pairingProd2(proof.a, ...
tag 68 Pairing.pairingProd2(proof.a, ...
JUMPDEST Pairing.pairingProd2(proof.a, ...
PUSH [tag] 71 if (!Pairing.pairingProd2(proo...
JUMPI if (!Pairing.pairingProd2(proo...
PUSH 2 2
SWAP4 return 2
POP return 2
POP return 2
POP return 2
POP return 2
PUSH [tag] 40 return 2
JUMP return 2
tag 71 if (!Pairing.pairingProd2(proo...
JUMPDEST if (!Pairing.pairingProd2(proo...
PUSH 0 0
SWAP4 return 0
POP return 0
POP return 0
POP return 0
POP return 0
tag 40 function verify(uint[] memory ...
JUMPDEST function verify(uint[] memory ...
SWAP3 function verify(uint[] memory ...
SWAP2 function verify(uint[] memory ...
POP function verify(uint[] memory ...
POP function verify(uint[] memory ...
JUMP [out] function verify(uint[] memory ...
tag 39 function add(uint a, uint b) i...
JUMPDEST function add(uint a, uint b) i...
PUSH 0 uint c
DUP2 b
DUP4 a
ADD a + b
SWAP1 c = a + b
POP c = a + b
SWAP3 function add(uint a, uint b) i...
SWAP2 function add(uint a, uint b) i...
POP function add(uint a, uint b) i...
POP function add(uint a, uint b) i...
JUMP [out] function add(uint a, uint b) i...
tag 42 function verifyingKey() pure i...
JUMPDEST function verifyingKey() pure i...
PUSH [tag] 73 VerifyingKey memory vk
PUSH [tag] 74 VerifyingKey memory vk
JUMP [in] VerifyingKey memory vk
tag 73 VerifyingKey memory vk
JUMPDEST VerifyingKey memory vk
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MLOAD Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MLOAD Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH CE10097D5C6A0CF03C7FB606BABE12E12D6CFDE31BA1EC4B6FC93E72E5080CF 0x0ce10097d5c6a0cf03c7fb606bab...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
PUSH 20 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH BDBD8F805A60DD0B5C999CBA090CF05455C7C30556625D1DBE960D8BA7F82D3 0x0bdbd8f805a60dd0b5c999cba090...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
POP Pairing.G2Point([uint256(0x0ce...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
PUSH 20 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MLOAD Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 2836CE51D9F4B076E3A94F554ED10EE863B31A6E9F9702B998730464578690B3 0x2836ce51d9f4b076e3a94f554ed1...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
PUSH 20 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 1408687D2A7CFE83F01BC94BFC7CE3A43D92A95EC074F6D628210B412EE7AFF0 0x1408687d2a7cfe83f01bc94bfc7c...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
POP Pairing.G2Point([uint256(0x0ce...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
POP Pairing.G2Point([uint256(0x0ce...
DUP2 vk
PUSH 0 vk.h
ADD vk.h
DUP2 vk.h = Pairing.G2Point([uint25...
SWAP1 vk.h = Pairing.G2Point([uint25...
MSTORE vk.h = Pairing.G2Point([uint25...
POP vk.h = Pairing.G2Point([uint25...
PUSH 40 Pairing.G1Point(uint256(0x0524...
MLOAD Pairing.G1Point(uint256(0x0524...
DUP1 Pairing.G1Point(uint256(0x0524...
PUSH 40 Pairing.G1Point(uint256(0x0524...
ADD Pairing.G1Point(uint256(0x0524...
PUSH 40 Pairing.G1Point(uint256(0x0524...
MSTORE Pairing.G1Point(uint256(0x0524...
DUP1 Pairing.G1Point(uint256(0x0524...
PUSH 5246753074F70484BB47C60E869F92EBFDBF9D2BA5012874730973E9AF228D6 0x05246753074f70484bb47c60e869...
DUP2 Pairing.G1Point(uint256(0x0524...
MSTORE Pairing.G1Point(uint256(0x0524...
PUSH 20 Pairing.G1Point(uint256(0x0524...
ADD Pairing.G1Point(uint256(0x0524...
PUSH 177778527A6605BF6D2D9B3E0FE86ECC8E97BCEB23497692E043AD9BB3E4C9D3 0x177778527a6605bf6d2d9b3e0fe8...
DUP2 Pairing.G1Point(uint256(0x0524...
MSTORE Pairing.G1Point(uint256(0x0524...
POP Pairing.G1Point(uint256(0x0524...
DUP2 vk
PUSH 20 vk.g_alpha
ADD vk.g_alpha
DUP2 vk.g_alpha = Pairing.G1Point(u...
SWAP1 vk.g_alpha = Pairing.G1Point(u...
MSTORE vk.g_alpha = Pairing.G1Point(u...
POP vk.g_alpha = Pairing.G1Point(u...
PUSH 40 Pairing.G2Point([uint256(0x0da...
MLOAD Pairing.G2Point([uint256(0x0da...
DUP1 Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
ADD Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
DUP1 Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
MLOAD Pairing.G2Point([uint256(0x0da...
DUP1 Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
ADD Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
DUP1 Pairing.G2Point([uint256(0x0da...
PUSH DA415966FD2B4C39F5FCAC5091CBED6C0A2CF64162C2A672D61BD5784C73A59 0x0da415966fd2b4c39f5fcac5091c...
DUP2 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
PUSH 20 Pairing.G2Point([uint256(0x0da...
ADD Pairing.G2Point([uint256(0x0da...
PUSH C279BCF71893C6B2164491F691EF6A9003CE03FB443657718DBCCEE9C10CC99 0x0c279bcf71893c6b2164491f691e...
DUP2 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
POP Pairing.G2Point([uint256(0x0da...
DUP2 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
PUSH 20 Pairing.G2Point([uint256(0x0da...
ADD Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
MLOAD Pairing.G2Point([uint256(0x0da...
DUP1 Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
ADD Pairing.G2Point([uint256(0x0da...
PUSH 40 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
DUP1 Pairing.G2Point([uint256(0x0da...
PUSH 5DA6588AA911D1D73C2CBC146A7C50359C68FC20E302CC06A1F0FDCE77462CE 0x05da6588aa911d1d73c2cbc146a7...
DUP2 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
PUSH 20 Pairing.G2Point([uint256(0x0da...
ADD Pairing.G2Point([uint256(0x0da...
PUSH 2C24E4392C0535A23E84D08508126C8F255ECD1E98AD0A50B04EA1F500CF08E6 0x2c24e4392c0535a23e84d0850812...
DUP2 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
POP Pairing.G2Point([uint256(0x0da...
DUP2 Pairing.G2Point([uint256(0x0da...
MSTORE Pairing.G2Point([uint256(0x0da...
POP Pairing.G2Point([uint256(0x0da...
DUP2 vk
PUSH 40 vk.h_beta
ADD vk.h_beta
DUP2 vk.h_beta = Pairing.G2Point([u...
SWAP1 vk.h_beta = Pairing.G2Point([u...
MSTORE vk.h_beta = Pairing.G2Point([u...
POP vk.h_beta = Pairing.G2Point([u...
PUSH 40 Pairing.G1Point(uint256(0x145d...
MLOAD Pairing.G1Point(uint256(0x145d...
DUP1 Pairing.G1Point(uint256(0x145d...
PUSH 40 Pairing.G1Point(uint256(0x145d...
ADD Pairing.G1Point(uint256(0x145d...
PUSH 40 Pairing.G1Point(uint256(0x145d...
MSTORE Pairing.G1Point(uint256(0x145d...
DUP1 Pairing.G1Point(uint256(0x145d...
PUSH 145D6456AA166A2C03DB37F10CA96DD9F69AA2094DF52B5CD9AE2B4ACC54EE62 0x145d6456aa166a2c03db37f10ca9...
DUP2 Pairing.G1Point(uint256(0x145d...
MSTORE Pairing.G1Point(uint256(0x145d...
PUSH 20 Pairing.G1Point(uint256(0x145d...
ADD Pairing.G1Point(uint256(0x145d...
PUSH 7D69B903C13FC8AAA950A7B923188FDE64229E73A83EA2C0D75D7951D802126 0x07d69b903c13fc8aaa950a7b9231...
DUP2 Pairing.G1Point(uint256(0x145d...
MSTORE Pairing.G1Point(uint256(0x145d...
POP Pairing.G1Point(uint256(0x145d...
DUP2 vk
PUSH 60 vk.g_gamma
ADD vk.g_gamma
DUP2 vk.g_gamma = Pairing.G1Point(u...
SWAP1 vk.g_gamma = Pairing.G1Point(u...
MSTORE vk.g_gamma = Pairing.G1Point(u...
POP vk.g_gamma = Pairing.G1Point(u...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MLOAD Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MLOAD Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH CE10097D5C6A0CF03C7FB606BABE12E12D6CFDE31BA1EC4B6FC93E72E5080CF 0x0ce10097d5c6a0cf03c7fb606bab...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
PUSH 20 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH BDBD8F805A60DD0B5C999CBA090CF05455C7C30556625D1DBE960D8BA7F82D3 0x0bdbd8f805a60dd0b5c999cba090...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
POP Pairing.G2Point([uint256(0x0ce...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
PUSH 20 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MLOAD Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 40 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
DUP1 Pairing.G2Point([uint256(0x0ce...
PUSH 2836CE51D9F4B076E3A94F554ED10EE863B31A6E9F9702B998730464578690B3 0x2836ce51d9f4b076e3a94f554ed1...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
PUSH 20 Pairing.G2Point([uint256(0x0ce...
ADD Pairing.G2Point([uint256(0x0ce...
PUSH 1408687D2A7CFE83F01BC94BFC7CE3A43D92A95EC074F6D628210B412EE7AFF0 0x1408687d2a7cfe83f01bc94bfc7c...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
POP Pairing.G2Point([uint256(0x0ce...
DUP2 Pairing.G2Point([uint256(0x0ce...
MSTORE Pairing.G2Point([uint256(0x0ce...
POP Pairing.G2Point([uint256(0x0ce...
DUP2 vk
PUSH 80 vk.h_gamma
ADD vk.h_gamma
DUP2 vk.h_gamma = Pairing.G2Point([...
SWAP1 vk.h_gamma = Pairing.G2Point([...
MSTORE vk.h_gamma = Pairing.G2Point([...
POP vk.h_gamma = Pairing.G2Point([...
PUSH 4 4
PUSH FFFFFFFFFFFFFFFF new Pairing.G1Point[](4)
DUP2 new Pairing.G1Point[](4)
GT new Pairing.G1Point[](4)
ISZERO new Pairing.G1Point[](4)
PUSH [tag] 76 new Pairing.G1Point[](4)
JUMPI new Pairing.G1Point[](4)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new Pairing.G1Point[](4)
PUSH 0 new Pairing.G1Point[](4)
MSTORE new Pairing.G1Point[](4)
PUSH 41 new Pairing.G1Point[](4)
PUSH 4 new Pairing.G1Point[](4)
MSTORE new Pairing.G1Point[](4)
PUSH 24 new Pairing.G1Point[](4)
PUSH 0 new Pairing.G1Point[](4)
REVERT new Pairing.G1Point[](4)
tag 76 new Pairing.G1Point[](4)
JUMPDEST new Pairing.G1Point[](4)
PUSH 40 new Pairing.G1Point[](4)
MLOAD new Pairing.G1Point[](4)
SWAP1 new Pairing.G1Point[](4)
DUP1 new Pairing.G1Point[](4)
DUP3 new Pairing.G1Point[](4)
MSTORE new Pairing.G1Point[](4)
DUP1 new Pairing.G1Point[](4)
PUSH 20 new Pairing.G1Point[](4)
MUL new Pairing.G1Point[](4)
PUSH 20 new Pairing.G1Point[](4)
ADD new Pairing.G1Point[](4)
DUP3 new Pairing.G1Point[](4)
ADD new Pairing.G1Point[](4)
PUSH 40 new Pairing.G1Point[](4)
MSTORE new Pairing.G1Point[](4)
DUP1 new Pairing.G1Point[](4)
ISZERO new Pairing.G1Point[](4)
PUSH [tag] 77 new Pairing.G1Point[](4)
JUMPI new Pairing.G1Point[](4)
DUP2 new Pairing.G1Point[](4)
PUSH 20 new Pairing.G1Point[](4)
ADD new Pairing.G1Point[](4)
tag 78 new Pairing.G1Point[](4)
JUMPDEST new Pairing.G1Point[](4)
PUSH [tag] 79 new Pairing.G1Point[](4)
PUSH [tag] 80 new Pairing.G1Point[](4)
JUMP [in] new Pairing.G1Point[](4)
tag 79 new Pairing.G1Point[](4)
JUMPDEST new Pairing.G1Point[](4)
DUP2 new Pairing.G1Point[](4)
MSTORE new Pairing.G1Point[](4)
PUSH 20 new Pairing.G1Point[](4)
ADD new Pairing.G1Point[](4)
SWAP1 new Pairing.G1Point[](4)
PUSH 1 new Pairing.G1Point[](4)
SWAP1 new Pairing.G1Point[](4)
SUB new Pairing.G1Point[](4)
SWAP1 new Pairing.G1Point[](4)
DUP2 new Pairing.G1Point[](4)
PUSH [tag] 78 new Pairing.G1Point[](4)
JUMPI new Pairing.G1Point[](4)
SWAP1 new Pairing.G1Point[](4)
POP new Pairing.G1Point[](4)
tag 77 new Pairing.G1Point[](4)
JUMPDEST new Pairing.G1Point[](4)
POP new Pairing.G1Point[](4)
DUP2 vk
PUSH A0 vk.query
ADD vk.query
DUP2 vk.query = new Pairing.G1Point...
SWAP1 vk.query = new Pairing.G1Point...
MSTORE vk.query = new Pairing.G1Point...
POP vk.query = new Pairing.G1Point...
PUSH 40 Pairing.G1Point(uint256(0x1e6e...
MLOAD Pairing.G1Point(uint256(0x1e6e...
DUP1 Pairing.G1Point(uint256(0x1e6e...
PUSH 40 Pairing.G1Point(uint256(0x1e6e...
ADD Pairing.G1Point(uint256(0x1e6e...
PUSH 40 Pairing.G1Point(uint256(0x1e6e...
MSTORE Pairing.G1Point(uint256(0x1e6e...
DUP1 Pairing.G1Point(uint256(0x1e6e...
PUSH 1E6E68DEA497A5B44334557A5039BE4DEE9F61F577A2CF6F76F5234F41C12A0A 0x1e6e68dea497a5b44334557a5039...
DUP2 Pairing.G1Point(uint256(0x1e6e...
MSTORE Pairing.G1Point(uint256(0x1e6e...
PUSH 20 Pairing.G1Point(uint256(0x1e6e...
ADD Pairing.G1Point(uint256(0x1e6e...
PUSH C1BF41A806D1AB9D2D4DC0C4A975AE1A8842D76ADB3A87EE0E8DC8703BD2F8C 0x0c1bf41a806d1ab9d2d4dc0c4a97...
DUP2 Pairing.G1Point(uint256(0x1e6e...
MSTORE Pairing.G1Point(uint256(0x1e6e...
POP Pairing.G1Point(uint256(0x1e6e...
DUP2 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
PUSH 0 0
DUP2 vk.query[0]
MLOAD vk.query[0]
DUP2 vk.query[0]
LT vk.query[0]
PUSH [tag] 81 vk.query[0]
JUMPI vk.query[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[0]
PUSH 0 vk.query[0]
MSTORE vk.query[0]
PUSH 32 vk.query[0]
PUSH 4 vk.query[0]
MSTORE vk.query[0]
PUSH 24 vk.query[0]
PUSH 0 vk.query[0]
REVERT vk.query[0]
tag 81 vk.query[0]
JUMPDEST vk.query[0]
PUSH 20 vk.query[0]
MUL vk.query[0]
PUSH 20 vk.query[0]
ADD vk.query[0]
ADD vk.query[0]
DUP2 vk.query[0] = Pairing.G1Point(...
SWAP1 vk.query[0] = Pairing.G1Point(...
MSTORE vk.query[0] = Pairing.G1Point(...
POP vk.query[0] = Pairing.G1Point(...
PUSH 40 Pairing.G1Point(uint256(0x0b68...
MLOAD Pairing.G1Point(uint256(0x0b68...
DUP1 Pairing.G1Point(uint256(0x0b68...
PUSH 40 Pairing.G1Point(uint256(0x0b68...
ADD Pairing.G1Point(uint256(0x0b68...
PUSH 40 Pairing.G1Point(uint256(0x0b68...
MSTORE Pairing.G1Point(uint256(0x0b68...
DUP1 Pairing.G1Point(uint256(0x0b68...
PUSH B68155CA571B382E0CADCAE4BE90FC53C899A50954304E420832484EB259445 0x0b68155ca571b382e0cadcae4be9...
DUP2 Pairing.G1Point(uint256(0x0b68...
MSTORE Pairing.G1Point(uint256(0x0b68...
PUSH 20 Pairing.G1Point(uint256(0x0b68...
ADD Pairing.G1Point(uint256(0x0b68...
PUSH 2C337E2C12D4C40567FC57386A264BF980B7728AC5B92F9F33A717DEC817E809 0x2c337e2c12d4c40567fc57386a26...
DUP2 Pairing.G1Point(uint256(0x0b68...
MSTORE Pairing.G1Point(uint256(0x0b68...
POP Pairing.G1Point(uint256(0x0b68...
DUP2 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
PUSH 1 1
DUP2 vk.query[1]
MLOAD vk.query[1]
DUP2 vk.query[1]
LT vk.query[1]
PUSH [tag] 82 vk.query[1]
JUMPI vk.query[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[1]
PUSH 0 vk.query[1]
MSTORE vk.query[1]
PUSH 32 vk.query[1]
PUSH 4 vk.query[1]
MSTORE vk.query[1]
PUSH 24 vk.query[1]
PUSH 0 vk.query[1]
REVERT vk.query[1]
tag 82 vk.query[1]
JUMPDEST vk.query[1]
PUSH 20 vk.query[1]
MUL vk.query[1]
PUSH 20 vk.query[1]
ADD vk.query[1]
ADD vk.query[1]
DUP2 vk.query[1] = Pairing.G1Point(...
SWAP1 vk.query[1] = Pairing.G1Point(...
MSTORE vk.query[1] = Pairing.G1Point(...
POP vk.query[1] = Pairing.G1Point(...
PUSH 40 Pairing.G1Point(uint256(0x0845...
MLOAD Pairing.G1Point(uint256(0x0845...
DUP1 Pairing.G1Point(uint256(0x0845...
PUSH 40 Pairing.G1Point(uint256(0x0845...
ADD Pairing.G1Point(uint256(0x0845...
PUSH 40 Pairing.G1Point(uint256(0x0845...
MSTORE Pairing.G1Point(uint256(0x0845...
DUP1 Pairing.G1Point(uint256(0x0845...
PUSH 8454581770B4499BC77706FA8F4CC10E05B0A601C1400216E8E0A46F1940AFD 0x08454581770b4499bc77706fa8f4...
DUP2 Pairing.G1Point(uint256(0x0845...
MSTORE Pairing.G1Point(uint256(0x0845...
PUSH 20 Pairing.G1Point(uint256(0x0845...
ADD Pairing.G1Point(uint256(0x0845...
PUSH 8741809E693926211674D3D4CC627067352E8BD6C585CC67CF56E03034BC6BF 0x08741809e693926211674d3d4cc6...
DUP2 Pairing.G1Point(uint256(0x0845...
MSTORE Pairing.G1Point(uint256(0x0845...
POP Pairing.G1Point(uint256(0x0845...
DUP2 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
PUSH 2 2
DUP2 vk.query[2]
MLOAD vk.query[2]
DUP2 vk.query[2]
LT vk.query[2]
PUSH [tag] 83 vk.query[2]
JUMPI vk.query[2]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[2]
PUSH 0 vk.query[2]
MSTORE vk.query[2]
PUSH 32 vk.query[2]
PUSH 4 vk.query[2]
MSTORE vk.query[2]
PUSH 24 vk.query[2]
PUSH 0 vk.query[2]
REVERT vk.query[2]
tag 83 vk.query[2]
JUMPDEST vk.query[2]
PUSH 20 vk.query[2]
MUL vk.query[2]
PUSH 20 vk.query[2]
ADD vk.query[2]
ADD vk.query[2]
DUP2 vk.query[2] = Pairing.G1Point(...
SWAP1 vk.query[2] = Pairing.G1Point(...
MSTORE vk.query[2] = Pairing.G1Point(...
POP vk.query[2] = Pairing.G1Point(...
PUSH 40 Pairing.G1Point(uint256(0x17b9...
MLOAD Pairing.G1Point(uint256(0x17b9...
DUP1 Pairing.G1Point(uint256(0x17b9...
PUSH 40 Pairing.G1Point(uint256(0x17b9...
ADD Pairing.G1Point(uint256(0x17b9...
PUSH 40 Pairing.G1Point(uint256(0x17b9...
MSTORE Pairing.G1Point(uint256(0x17b9...
DUP1 Pairing.G1Point(uint256(0x17b9...
PUSH 17B931E52873060D110BA7E97AA8156D85EE8308602AE566FE0EA08E407251EC 0x17b931e52873060d110ba7e97aa8...
DUP2 Pairing.G1Point(uint256(0x17b9...
MSTORE Pairing.G1Point(uint256(0x17b9...
PUSH 20 Pairing.G1Point(uint256(0x17b9...
ADD Pairing.G1Point(uint256(0x17b9...
PUSH 2046E7222FE6416843CB0004E3E7428FC29300A5D7CA8EB54899E5844E1223C2 0x2046e7222fe6416843cb0004e3e7...
DUP2 Pairing.G1Point(uint256(0x17b9...
MSTORE Pairing.G1Point(uint256(0x17b9...
POP Pairing.G1Point(uint256(0x17b9...
DUP2 vk
PUSH A0 vk.query
ADD vk.query
MLOAD vk.query
PUSH 3 3
DUP2 vk.query[3]
MLOAD vk.query[3]
DUP2 vk.query[3]
LT vk.query[3]
PUSH [tag] 84 vk.query[3]
JUMPI vk.query[3]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 vk.query[3]
PUSH 0 vk.query[3]
MSTORE vk.query[3]
PUSH 32 vk.query[3]
PUSH 4 vk.query[3]
MSTORE vk.query[3]
PUSH 24 vk.query[3]
PUSH 0 vk.query[3]
REVERT vk.query[3]
tag 84 vk.query[3]
JUMPDEST vk.query[3]
PUSH 20 vk.query[3]
MUL vk.query[3]
PUSH 20 vk.query[3]
ADD vk.query[3]
ADD vk.query[3]
DUP2 vk.query[3] = Pairing.G1Point(...
SWAP1 vk.query[3] = Pairing.G1Point(...
MSTORE vk.query[3] = Pairing.G1Point(...
POP vk.query[3] = Pairing.G1Point(...
SWAP1 function verifyingKey() pure i...
JUMP [out] function verifyingKey() pure i...
tag 55 function scalar_mul(G1Point me...
JUMPDEST function scalar_mul(G1Point me...
PUSH [tag] 85 G1Point memory r
PUSH [tag] 80 G1Point memory r
JUMP [in] G1Point memory r
tag 85 G1Point memory r
JUMPDEST G1Point memory r
PUSH [tag] 87 uint[3] memory input
PUSH [tag] 88 uint[3] memory input
JUMP [in] uint[3] memory input
tag 87 uint[3] memory input
JUMPDEST uint[3] memory input
DUP4 p
PUSH 0 p.X
ADD p.X
MLOAD p.X
DUP2 input
PUSH 0 0
PUSH 3 input[0]
DUP2 input[0]
LT input[0]
PUSH [tag] 89 input[0]
JUMPI input[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[0]
PUSH 0 input[0]
MSTORE input[0]
PUSH 32 input[0]
PUSH 4 input[0]
MSTORE input[0]
PUSH 24 input[0]
PUSH 0 input[0]
REVERT input[0]
tag 89 input[0]
JUMPDEST input[0]
PUSH 20 input[0]
MUL input[0]
ADD input[0]
DUP2 input[0] = p.X
DUP2 input[0] = p.X
MSTORE input[0] = p.X
POP input[0] = p.X
POP input[0] = p.X
DUP4 p
PUSH 20 p.Y
ADD p.Y
MLOAD p.Y
DUP2 input
PUSH 1 1
PUSH 3 input[1]
DUP2 input[1]
LT input[1]
PUSH [tag] 90 input[1]
JUMPI input[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[1]
PUSH 0 input[1]
MSTORE input[1]
PUSH 32 input[1]
PUSH 4 input[1]
MSTORE input[1]
PUSH 24 input[1]
PUSH 0 input[1]
REVERT input[1]
tag 90 input[1]
JUMPDEST input[1]
PUSH 20 input[1]
MUL input[1]
ADD input[1]
DUP2 input[1] = p.Y
DUP2 input[1] = p.Y
MSTORE input[1] = p.Y
POP input[1] = p.Y
POP input[1] = p.Y
DUP3 s
DUP2 input
PUSH 2 2
PUSH 3 input[2]
DUP2 input[2]
LT input[2]
PUSH [tag] 91 input[2]
JUMPI input[2]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[2]
PUSH 0 input[2]
MSTORE input[2]
PUSH 32 input[2]
PUSH 4 input[2]
MSTORE input[2]
PUSH 24 input[2]
PUSH 0 input[2]
REVERT input[2]
tag 91 input[2]
JUMPDEST input[2]
PUSH 20 input[2]
MUL input[2]
ADD input[2]
DUP2 input[2] = s
DUP2 input[2] = s
MSTORE input[2] = s
POP input[2] = s
POP input[2] = s
PUSH 0 bool success
PUSH 60 0x60
DUP4 r
PUSH 80 0x80
DUP5 input
PUSH 7 7
PUSH 7D0 2000
GAS gas()
SUB sub(gas(), 2000)
STATICCALL staticcall(sub(gas(), 2000), 7...
SWAP1 success := staticcall(sub(gas(...
POP success := staticcall(sub(gas(...
DUP1 success
PUSH 0 0
DUP2 case 0 { invalid() }
EQ case 0 { invalid() }
PUSH [tag] 93 case 0 { invalid() }
JUMPI case 0 { invalid() }
PUSH [tag] 92 switch success case 0 { invali...
JUMP switch success case 0 { invali...
tag 93 case 0 { invalid() }
JUMPDEST case 0 { invalid() }
INVALID invalid()
tag 92 switch success case 0 { invali...
JUMPDEST switch success case 0 { invali...
POP switch success case 0 { invali...
DUP1 success
PUSH [tag] 94 require (success)
JUMPI require (success)
PUSH 0 require (success)
DUP1 require (success)
REVERT require (success)
tag 94 require (success)
JUMPDEST require (success)
POP function scalar_mul(G1Point me...
POP function scalar_mul(G1Point me...
SWAP3 function scalar_mul(G1Point me...
SWAP2 function scalar_mul(G1Point me...
POP function scalar_mul(G1Point me...
POP function scalar_mul(G1Point me...
JUMP [out] function scalar_mul(G1Point me...
tag 56 function addition(G1Point memo...
JUMPDEST function addition(G1Point memo...
PUSH [tag] 95 G1Point memory r
PUSH [tag] 80 G1Point memory r
JUMP [in] G1Point memory r
tag 95 G1Point memory r
JUMPDEST G1Point memory r
PUSH [tag] 97 uint[4] memory input
PUSH [tag] 98 uint[4] memory input
JUMP [in] uint[4] memory input
tag 97 uint[4] memory input
JUMPDEST uint[4] memory input
DUP4 p1
PUSH 0 p1.X
ADD p1.X
MLOAD p1.X
DUP2 input
PUSH 0 0
PUSH 4 input[0]
DUP2 input[0]
LT input[0]
PUSH [tag] 99 input[0]
JUMPI input[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[0]
PUSH 0 input[0]
MSTORE input[0]
PUSH 32 input[0]
PUSH 4 input[0]
MSTORE input[0]
PUSH 24 input[0]
PUSH 0 input[0]
REVERT input[0]
tag 99 input[0]
JUMPDEST input[0]
PUSH 20 input[0]
MUL input[0]
ADD input[0]
DUP2 input[0] = p1.X
DUP2 input[0] = p1.X
MSTORE input[0] = p1.X
POP input[0] = p1.X
POP input[0] = p1.X
DUP4 p1
PUSH 20 p1.Y
ADD p1.Y
MLOAD p1.Y
DUP2 input
PUSH 1 1
PUSH 4 input[1]
DUP2 input[1]
LT input[1]
PUSH [tag] 100 input[1]
JUMPI input[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[1]
PUSH 0 input[1]
MSTORE input[1]
PUSH 32 input[1]
PUSH 4 input[1]
MSTORE input[1]
PUSH 24 input[1]
PUSH 0 input[1]
REVERT input[1]
tag 100 input[1]
JUMPDEST input[1]
PUSH 20 input[1]
MUL input[1]
ADD input[1]
DUP2 input[1] = p1.Y
DUP2 input[1] = p1.Y
MSTORE input[1] = p1.Y
POP input[1] = p1.Y
POP input[1] = p1.Y
DUP3 p2
PUSH 0 p2.X
ADD p2.X
MLOAD p2.X
DUP2 input
PUSH 2 2
PUSH 4 input[2]
DUP2 input[2]
LT input[2]
PUSH [tag] 101 input[2]
JUMPI input[2]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[2]
PUSH 0 input[2]
MSTORE input[2]
PUSH 32 input[2]
PUSH 4 input[2]
MSTORE input[2]
PUSH 24 input[2]
PUSH 0 input[2]
REVERT input[2]
tag 101 input[2]
JUMPDEST input[2]
PUSH 20 input[2]
MUL input[2]
ADD input[2]
DUP2 input[2] = p2.X
DUP2 input[2] = p2.X
MSTORE input[2] = p2.X
POP input[2] = p2.X
POP input[2] = p2.X
DUP3 p2
PUSH 20 p2.Y
ADD p2.Y
MLOAD p2.Y
DUP2 input
PUSH 3 3
PUSH 4 input[3]
DUP2 input[3]
LT input[3]
PUSH [tag] 102 input[3]
JUMPI input[3]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[3]
PUSH 0 input[3]
MSTORE input[3]
PUSH 32 input[3]
PUSH 4 input[3]
MSTORE input[3]
PUSH 24 input[3]
PUSH 0 input[3]
REVERT input[3]
tag 102 input[3]
JUMPDEST input[3]
PUSH 20 input[3]
MUL input[3]
ADD input[3]
DUP2 input[3] = p2.Y
DUP2 input[3] = p2.Y
MSTORE input[3] = p2.Y
POP input[3] = p2.Y
POP input[3] = p2.Y
PUSH 0 bool success
PUSH 60 0x60
DUP4 r
PUSH C0 0xc0
DUP5 input
PUSH 6 6
PUSH 7D0 2000
GAS gas()
SUB sub(gas(), 2000)
STATICCALL staticcall(sub(gas(), 2000), 6...
SWAP1 success := staticcall(sub(gas(...
POP success := staticcall(sub(gas(...
DUP1 success
PUSH 0 0
DUP2 case 0 { invalid() }
EQ case 0 { invalid() }
PUSH [tag] 104 case 0 { invalid() }
JUMPI case 0 { invalid() }
PUSH [tag] 103 switch success case 0 { invali...
JUMP switch success case 0 { invali...
tag 104 case 0 { invalid() }
JUMPDEST case 0 { invalid() }
INVALID invalid()
tag 103 switch success case 0 { invali...
JUMPDEST switch success case 0 { invali...
POP switch success case 0 { invali...
DUP1 success
PUSH [tag] 105 require(success)
JUMPI require(success)
PUSH 0 require(success)
DUP1 require(success)
REVERT require(success)
tag 105 require(success)
JUMPDEST require(success)
POP function addition(G1Point memo...
POP function addition(G1Point memo...
SWAP3 function addition(G1Point memo...
SWAP2 function addition(G1Point memo...
POP function addition(G1Point memo...
POP function addition(G1Point memo...
JUMP [out] function addition(G1Point memo...
tag 63 function negate(G1Point memory...
JUMPDEST function negate(G1Point memory...
PUSH [tag] 106 G1Point memory
PUSH [tag] 80 G1Point memory
JUMP [in] G1Point memory
tag 106 G1Point memory
JUMPDEST G1Point memory
PUSH 0 uint q
PUSH 30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 218882428718392752222464057452...
SWAP1 uint q = 218882428718392752222...
POP uint q = 218882428718392752222...
PUSH 0 0
DUP4 p
PUSH 0 p.X
ADD p.X
MLOAD p.X
EQ p.X == 0
DUP1 p.X == 0 && p.Y == 0
ISZERO p.X == 0 && p.Y == 0
PUSH [tag] 108 p.X == 0 && p.Y == 0
JUMPI p.X == 0 && p.Y == 0
POP p.X == 0 && p.Y == 0
PUSH 0 0
DUP4 p
PUSH 20 p.Y
ADD p.Y
MLOAD p.Y
EQ p.Y == 0
tag 108 p.X == 0 && p.Y == 0
JUMPDEST p.X == 0 && p.Y == 0
ISZERO if (p.X == 0 && p.Y == 0)\n ...
PUSH [tag] 109 if (p.X == 0 && p.Y == 0)\n ...
JUMPI if (p.X == 0 && p.Y == 0)\n ...
PUSH 40 G1Point(0, 0)
MLOAD G1Point(0, 0)
DUP1 G1Point(0, 0)
PUSH 40 G1Point(0, 0)
ADD G1Point(0, 0)
PUSH 40 G1Point(0, 0)
MSTORE G1Point(0, 0)
DUP1 G1Point(0, 0)
PUSH 0 0
DUP2 G1Point(0, 0)
MSTORE G1Point(0, 0)
PUSH 20 G1Point(0, 0)
ADD G1Point(0, 0)
PUSH 0 0
DUP2 G1Point(0, 0)
MSTORE G1Point(0, 0)
POP G1Point(0, 0)
SWAP2 return G1Point(0, 0)
POP return G1Point(0, 0)
POP return G1Point(0, 0)
PUSH [tag] 107 return G1Point(0, 0)
JUMP return G1Point(0, 0)
tag 109 if (p.X == 0 && p.Y == 0)\n ...
JUMPDEST if (p.X == 0 && p.Y == 0)\n ...
PUSH 40 G1Point(p.X, q.sub(p.Y % q))
MLOAD G1Point(p.X, q.sub(p.Y % q))
DUP1 G1Point(p.X, q.sub(p.Y % q))
PUSH 40 G1Point(p.X, q.sub(p.Y % q))
ADD G1Point(p.X, q.sub(p.Y % q))
PUSH 40 G1Point(p.X, q.sub(p.Y % q))
MSTORE G1Point(p.X, q.sub(p.Y % q))
DUP1 G1Point(p.X, q.sub(p.Y % q))
DUP5 p
PUSH 0 p.X
ADD p.X
MLOAD p.X
DUP2 G1Point(p.X, q.sub(p.Y % q))
MSTORE G1Point(p.X, q.sub(p.Y % q))
PUSH 20 G1Point(p.X, q.sub(p.Y % q))
ADD G1Point(p.X, q.sub(p.Y % q))
PUSH [tag] 110 q.sub(p.Y % q)
DUP4 q
DUP7 p
PUSH 20 p.Y
ADD p.Y
MLOAD p.Y
PUSH [tag] 111 p.Y % q
SWAP2 p.Y % q
SWAP1 p.Y % q
PUSH [tag] 112 p.Y % q
JUMP [in] p.Y % q
tag 111 p.Y % q
JUMPDEST p.Y % q
DUP5 q
PUSH [tag] 113 q.sub
SWAP1 q.sub
SWAP2 q.sub(p.Y % q)
SWAP1 q.sub(p.Y % q)
PUSH FFFFFFFF q.sub(p.Y % q)
AND q.sub(p.Y % q)
JUMP [in] q.sub(p.Y % q)
tag 110 q.sub(p.Y % q)
JUMPDEST q.sub(p.Y % q)
DUP2 G1Point(p.X, q.sub(p.Y % q))
MSTORE G1Point(p.X, q.sub(p.Y % q))
POP G1Point(p.X, q.sub(p.Y % q))
SWAP2 return G1Point(p.X, q.sub(p.Y ...
POP return G1Point(p.X, q.sub(p.Y ...
POP return G1Point(p.X, q.sub(p.Y ...
tag 107 function negate(G1Point memory...
JUMPDEST function negate(G1Point memory...
SWAP2 function negate(G1Point memory...
SWAP1 function negate(G1Point memory...
POP function negate(G1Point memory...
JUMP [out] function negate(G1Point memory...
tag 65 function addition(G2Point memo...
JUMPDEST function addition(G2Point memo...
PUSH [tag] 114 G2Point memory r
PUSH [tag] 115 G2Point memory r
JUMP [in] G2Point memory r
tag 114 G2Point memory r
JUMPDEST G2Point memory r
PUSHLIB contracts/1_Storage.sol:BN256G2 BN256G2
PUSH 61A931EC BN256G2.ECTwistAdd
DUP5 p1
PUSH 0 p1.X
ADD p1.X
MLOAD p1.X
PUSH 0 0
PUSH 2 p1.X[0]
DUP2 p1.X[0]
LT p1.X[0]
PUSH [tag] 117 p1.X[0]
JUMPI p1.X[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.X[0]
PUSH 0 p1.X[0]
MSTORE p1.X[0]
PUSH 32 p1.X[0]
PUSH 4 p1.X[0]
MSTORE p1.X[0]
PUSH 24 p1.X[0]
PUSH 0 p1.X[0]
REVERT p1.X[0]
tag 117 p1.X[0]
JUMPDEST p1.X[0]
PUSH 20 p1.X[0]
MUL p1.X[0]
ADD p1.X[0]
MLOAD p1.X[0]
DUP6 p1
PUSH 0 p1.X
ADD p1.X
MLOAD p1.X
PUSH 1 1
PUSH 2 p1.X[1]
DUP2 p1.X[1]
LT p1.X[1]
PUSH [tag] 118 p1.X[1]
JUMPI p1.X[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.X[1]
PUSH 0 p1.X[1]
MSTORE p1.X[1]
PUSH 32 p1.X[1]
PUSH 4 p1.X[1]
MSTORE p1.X[1]
PUSH 24 p1.X[1]
PUSH 0 p1.X[1]
REVERT p1.X[1]
tag 118 p1.X[1]
JUMPDEST p1.X[1]
PUSH 20 p1.X[1]
MUL p1.X[1]
ADD p1.X[1]
MLOAD p1.X[1]
DUP7 p1
PUSH 20 p1.Y
ADD p1.Y
MLOAD p1.Y
PUSH 0 0
PUSH 2 p1.Y[0]
DUP2 p1.Y[0]
LT p1.Y[0]
PUSH [tag] 119 p1.Y[0]
JUMPI p1.Y[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.Y[0]
PUSH 0 p1.Y[0]
MSTORE p1.Y[0]
PUSH 32 p1.Y[0]
PUSH 4 p1.Y[0]
MSTORE p1.Y[0]
PUSH 24 p1.Y[0]
PUSH 0 p1.Y[0]
REVERT p1.Y[0]
tag 119 p1.Y[0]
JUMPDEST p1.Y[0]
PUSH 20 p1.Y[0]
MUL p1.Y[0]
ADD p1.Y[0]
MLOAD p1.Y[0]
DUP8 p1
PUSH 20 p1.Y
ADD p1.Y
MLOAD p1.Y
PUSH 1 1
PUSH 2 p1.Y[1]
DUP2 p1.Y[1]
LT p1.Y[1]
PUSH [tag] 120 p1.Y[1]
JUMPI p1.Y[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1.Y[1]
PUSH 0 p1.Y[1]
MSTORE p1.Y[1]
PUSH 32 p1.Y[1]
PUSH 4 p1.Y[1]
MSTORE p1.Y[1]
PUSH 24 p1.Y[1]
PUSH 0 p1.Y[1]
REVERT p1.Y[1]
tag 120 p1.Y[1]
JUMPDEST p1.Y[1]
PUSH 20 p1.Y[1]
MUL p1.Y[1]
ADD p1.Y[1]
MLOAD p1.Y[1]
DUP8 p2
PUSH 0 p2.X
ADD p2.X
MLOAD p2.X
PUSH 0 0
PUSH 2 p2.X[0]
DUP2 p2.X[0]
LT p2.X[0]
PUSH [tag] 121 p2.X[0]
JUMPI p2.X[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.X[0]
PUSH 0 p2.X[0]
MSTORE p2.X[0]
PUSH 32 p2.X[0]
PUSH 4 p2.X[0]
MSTORE p2.X[0]
PUSH 24 p2.X[0]
PUSH 0 p2.X[0]
REVERT p2.X[0]
tag 121 p2.X[0]
JUMPDEST p2.X[0]
PUSH 20 p2.X[0]
MUL p2.X[0]
ADD p2.X[0]
MLOAD p2.X[0]
DUP9 p2
PUSH 0 p2.X
ADD p2.X
MLOAD p2.X
PUSH 1 1
PUSH 2 p2.X[1]
DUP2 p2.X[1]
LT p2.X[1]
PUSH [tag] 122 p2.X[1]
JUMPI p2.X[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.X[1]
PUSH 0 p2.X[1]
MSTORE p2.X[1]
PUSH 32 p2.X[1]
PUSH 4 p2.X[1]
MSTORE p2.X[1]
PUSH 24 p2.X[1]
PUSH 0 p2.X[1]
REVERT p2.X[1]
tag 122 p2.X[1]
JUMPDEST p2.X[1]
PUSH 20 p2.X[1]
MUL p2.X[1]
ADD p2.X[1]
MLOAD p2.X[1]
DUP10 p2
PUSH 20 p2.Y
ADD p2.Y
MLOAD p2.Y
PUSH 0 0
PUSH 2 p2.Y[0]
DUP2 p2.Y[0]
LT p2.Y[0]
PUSH [tag] 123 p2.Y[0]
JUMPI p2.Y[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.Y[0]
PUSH 0 p2.Y[0]
MSTORE p2.Y[0]
PUSH 32 p2.Y[0]
PUSH 4 p2.Y[0]
MSTORE p2.Y[0]
PUSH 24 p2.Y[0]
PUSH 0 p2.Y[0]
REVERT p2.Y[0]
tag 123 p2.Y[0]
JUMPDEST p2.Y[0]
PUSH 20 p2.Y[0]
MUL p2.Y[0]
ADD p2.Y[0]
MLOAD p2.Y[0]
DUP11 p2
PUSH 20 p2.Y
ADD p2.Y
MLOAD p2.Y
PUSH 1 1
PUSH 2 p2.Y[1]
DUP2 p2.Y[1]
LT p2.Y[1]
PUSH [tag] 124 p2.Y[1]
JUMPI p2.Y[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2.Y[1]
PUSH 0 p2.Y[1]
MSTORE p2.Y[1]
PUSH 32 p2.Y[1]
PUSH 4 p2.Y[1]
MSTORE p2.Y[1]
PUSH 24 p2.Y[1]
PUSH 0 p2.Y[1]
REVERT p2.Y[1]
tag 124 p2.Y[1]
JUMPDEST p2.Y[1]
PUSH 20 p2.Y[1]
MUL p2.Y[1]
ADD p2.Y[1]
MLOAD p2.Y[1]
PUSH 40 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP10 BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH FFFFFFFF BN256G2.ECTwistAdd(p1.X[0],p1....
AND BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH E0 BN256G2.ECTwistAdd(p1.X[0],p1....
SHL BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 4 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP10 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP9 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP8 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP7 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP6 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP5 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP4 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP3 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
MSTORE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP9 BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 80 BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 40 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP4 BN256G2.ECTwistAdd(p1.X[0],p1....
SUB BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP7 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
EXTCODESIZE BN256G2.ECTwistAdd(p1.X[0],p1....
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH [tag] 125 BN256G2.ECTwistAdd(p1.X[0],p1....
JUMPI BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
REVERT BN256G2.ECTwistAdd(p1.X[0],p1....
tag 125 BN256G2.ECTwistAdd(p1.X[0],p1....
JUMPDEST BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
GAS BN256G2.ECTwistAdd(p1.X[0],p1....
DELEGATECALL BN256G2.ECTwistAdd(p1.X[0],p1....
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH [tag] 127 BN256G2.ECTwistAdd(p1.X[0],p1....
JUMPI BN256G2.ECTwistAdd(p1.X[0],p1....
RETURNDATASIZE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
RETURNDATACOPY BN256G2.ECTwistAdd(p1.X[0],p1....
RETURNDATASIZE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1....
REVERT BN256G2.ECTwistAdd(p1.X[0],p1....
tag 127 BN256G2.ECTwistAdd(p1.X[0],p1....
JUMPDEST BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 40 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
RETURNDATASIZE BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 80 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
LT BN256G2.ECTwistAdd(p1.X[0],p1....
ISZERO BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH [tag] 128 BN256G2.ECTwistAdd(p1.X[0],p1....
JUMPI BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 0 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
REVERT BN256G2.ECTwistAdd(p1.X[0],p1....
tag 128 BN256G2.ECTwistAdd(p1.X[0],p1....
JUMPDEST BN256G2.ECTwistAdd(p1.X[0],p1....
DUP2 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
DUP1 BN256G2.ECTwistAdd(p1.X[0],p1....
MLOAD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
PUSH 20 BN256G2.ECTwistAdd(p1.X[0],p1....
ADD BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP3 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP2 BN256G2.ECTwistAdd(p1.X[0],p1....
SWAP1 BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
POP BN256G2.ECTwistAdd(p1.X[0],p1....
DUP5 r
PUSH 0 r.X
ADD r.X
MLOAD r.X
PUSH 0 0
PUSH 2 r.X[0]
DUP2 r.X[0]
LT r.X[0]
PUSH [tag] 129 r.X[0]
JUMPI r.X[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.X[0]
PUSH 0 r.X[0]
MSTORE r.X[0]
PUSH 32 r.X[0]
PUSH 4 r.X[0]
MSTORE r.X[0]
PUSH 24 r.X[0]
PUSH 0 r.X[0]
REVERT r.X[0]
tag 129 r.X[0]
JUMPDEST r.X[0]
PUSH 20 r.X[0]
MUL r.X[0]
ADD r.X[0]
DUP6 r
PUSH 0 r.X
ADD r.X
MLOAD r.X
PUSH 1 1
PUSH 2 r.X[1]
DUP2 r.X[1]
LT r.X[1]
PUSH [tag] 130 r.X[1]
JUMPI r.X[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.X[1]
PUSH 0 r.X[1]
MSTORE r.X[1]
PUSH 32 r.X[1]
PUSH 4 r.X[1]
MSTORE r.X[1]
PUSH 24 r.X[1]
PUSH 0 r.X[1]
REVERT r.X[1]
tag 130 r.X[1]
JUMPDEST r.X[1]
PUSH 20 r.X[1]
MUL r.X[1]
ADD r.X[1]
DUP7 r
PUSH 20 r.Y
ADD r.Y
MLOAD r.Y
PUSH 0 0
PUSH 2 r.Y[0]
DUP2 r.Y[0]
LT r.Y[0]
PUSH [tag] 131 r.Y[0]
JUMPI r.Y[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.Y[0]
PUSH 0 r.Y[0]
MSTORE r.Y[0]
PUSH 32 r.Y[0]
PUSH 4 r.Y[0]
MSTORE r.Y[0]
PUSH 24 r.Y[0]
PUSH 0 r.Y[0]
REVERT r.Y[0]
tag 131 r.Y[0]
JUMPDEST r.Y[0]
PUSH 20 r.Y[0]
MUL r.Y[0]
ADD r.Y[0]
DUP8 r
PUSH 20 r.Y
ADD r.Y
MLOAD r.Y
PUSH 1 1
PUSH 2 r.Y[1]
DUP2 r.Y[1]
LT r.Y[1]
PUSH [tag] 132 r.Y[1]
JUMPI r.Y[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 r.Y[1]
PUSH 0 r.Y[1]
MSTORE r.Y[1]
PUSH 32 r.Y[1]
PUSH 4 r.Y[1]
MSTORE r.Y[1]
PUSH 24 r.Y[1]
PUSH 0 r.Y[1]
REVERT r.Y[1]
tag 132 r.Y[1]
JUMPDEST r.Y[1]
PUSH 20 r.Y[1]
MUL r.Y[1]
ADD r.Y[1]
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1...
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1...
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1...
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP5 (r.X[0], r.X[1], r.Y[0], r.Y[1...
DUP2 (r.X[0], r.X[1], r.Y[0], r.Y[1...
MSTORE (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
POP (r.X[0], r.X[1], r.Y[0], r.Y[1...
SWAP3 function addition(G2Point memo...
SWAP2 function addition(G2Point memo...
POP function addition(G2Point memo...
POP function addition(G2Point memo...
JUMP [out] function addition(G2Point memo...
tag 66 function pairingProd4(\n ...
JUMPDEST function pairingProd4(\n ...
PUSH 0 bool
DUP1 G1Point[] memory p1
PUSH 4 4
PUSH FFFFFFFFFFFFFFFF new G1Point[](4)
DUP2 new G1Point[](4)
GT new G1Point[](4)
ISZERO new G1Point[](4)
PUSH [tag] 134 new G1Point[](4)
JUMPI new G1Point[](4)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G1Point[](4)
PUSH 0 new G1Point[](4)
MSTORE new G1Point[](4)
PUSH 41 new G1Point[](4)
PUSH 4 new G1Point[](4)
MSTORE new G1Point[](4)
PUSH 24 new G1Point[](4)
PUSH 0 new G1Point[](4)
REVERT new G1Point[](4)
tag 134 new G1Point[](4)
JUMPDEST new G1Point[](4)
PUSH 40 new G1Point[](4)
MLOAD new G1Point[](4)
SWAP1 new G1Point[](4)
DUP1 new G1Point[](4)
DUP3 new G1Point[](4)
MSTORE new G1Point[](4)
DUP1 new G1Point[](4)
PUSH 20 new G1Point[](4)
MUL new G1Point[](4)
PUSH 20 new G1Point[](4)
ADD new G1Point[](4)
DUP3 new G1Point[](4)
ADD new G1Point[](4)
PUSH 40 new G1Point[](4)
MSTORE new G1Point[](4)
DUP1 new G1Point[](4)
ISZERO new G1Point[](4)
PUSH [tag] 135 new G1Point[](4)
JUMPI new G1Point[](4)
DUP2 new G1Point[](4)
PUSH 20 new G1Point[](4)
ADD new G1Point[](4)
tag 136 new G1Point[](4)
JUMPDEST new G1Point[](4)
PUSH [tag] 137 new G1Point[](4)
PUSH [tag] 80 new G1Point[](4)
JUMP [in] new G1Point[](4)
tag 137 new G1Point[](4)
JUMPDEST new G1Point[](4)
DUP2 new G1Point[](4)
MSTORE new G1Point[](4)
PUSH 20 new G1Point[](4)
ADD new G1Point[](4)
SWAP1 new G1Point[](4)
PUSH 1 new G1Point[](4)
SWAP1 new G1Point[](4)
SUB new G1Point[](4)
SWAP1 new G1Point[](4)
DUP2 new G1Point[](4)
PUSH [tag] 136 new G1Point[](4)
JUMPI new G1Point[](4)
SWAP1 new G1Point[](4)
POP new G1Point[](4)
tag 135 new G1Point[](4)
JUMPDEST new G1Point[](4)
POP new G1Point[](4)
SWAP1 G1Point[] memory p1 = new G1Po...
POP G1Point[] memory p1 = new G1Po...
PUSH 0 G2Point[] memory p2
PUSH 4 4
PUSH FFFFFFFFFFFFFFFF new G2Point[](4)
DUP2 new G2Point[](4)
GT new G2Point[](4)
ISZERO new G2Point[](4)
PUSH [tag] 138 new G2Point[](4)
JUMPI new G2Point[](4)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G2Point[](4)
PUSH 0 new G2Point[](4)
MSTORE new G2Point[](4)
PUSH 41 new G2Point[](4)
PUSH 4 new G2Point[](4)
MSTORE new G2Point[](4)
PUSH 24 new G2Point[](4)
PUSH 0 new G2Point[](4)
REVERT new G2Point[](4)
tag 138 new G2Point[](4)
JUMPDEST new G2Point[](4)
PUSH 40 new G2Point[](4)
MLOAD new G2Point[](4)
SWAP1 new G2Point[](4)
DUP1 new G2Point[](4)
DUP3 new G2Point[](4)
MSTORE new G2Point[](4)
DUP1 new G2Point[](4)
PUSH 20 new G2Point[](4)
MUL new G2Point[](4)
PUSH 20 new G2Point[](4)
ADD new G2Point[](4)
DUP3 new G2Point[](4)
ADD new G2Point[](4)
PUSH 40 new G2Point[](4)
MSTORE new G2Point[](4)
DUP1 new G2Point[](4)
ISZERO new G2Point[](4)
PUSH [tag] 139 new G2Point[](4)
JUMPI new G2Point[](4)
DUP2 new G2Point[](4)
PUSH 20 new G2Point[](4)
ADD new G2Point[](4)
tag 140 new G2Point[](4)
JUMPDEST new G2Point[](4)
PUSH [tag] 141 new G2Point[](4)
PUSH [tag] 115 new G2Point[](4)
JUMP [in] new G2Point[](4)
tag 141 new G2Point[](4)
JUMPDEST new G2Point[](4)
DUP2 new G2Point[](4)
MSTORE new G2Point[](4)
PUSH 20 new G2Point[](4)
ADD new G2Point[](4)
SWAP1 new G2Point[](4)
PUSH 1 new G2Point[](4)
SWAP1 new G2Point[](4)
SUB new G2Point[](4)
SWAP1 new G2Point[](4)
DUP2 new G2Point[](4)
PUSH [tag] 140 new G2Point[](4)
JUMPI new G2Point[](4)
SWAP1 new G2Point[](4)
POP new G2Point[](4)
tag 139 new G2Point[](4)
JUMPDEST new G2Point[](4)
POP new G2Point[](4)
SWAP1 G2Point[] memory p2 = new G2Po...
POP G2Point[] memory p2 = new G2Po...
DUP11 a1
DUP3 p1
PUSH 0 0
DUP2 p1[0]
MLOAD p1[0]
DUP2 p1[0]
LT p1[0]
PUSH [tag] 142 p1[0]
JUMPI p1[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[0]
PUSH 0 p1[0]
MSTORE p1[0]
PUSH 32 p1[0]
PUSH 4 p1[0]
MSTORE p1[0]
PUSH 24 p1[0]
PUSH 0 p1[0]
REVERT p1[0]
tag 142 p1[0]
JUMPDEST p1[0]
PUSH 20 p1[0]
MUL p1[0]
PUSH 20 p1[0]
ADD p1[0]
ADD p1[0]
DUP2 p1[0] = a1
SWAP1 p1[0] = a1
MSTORE p1[0] = a1
POP p1[0] = a1
DUP9 b1
DUP3 p1
PUSH 1 1
DUP2 p1[1]
MLOAD p1[1]
DUP2 p1[1]
LT p1[1]
PUSH [tag] 143 p1[1]
JUMPI p1[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[1]
PUSH 0 p1[1]
MSTORE p1[1]
PUSH 32 p1[1]
PUSH 4 p1[1]
MSTORE p1[1]
PUSH 24 p1[1]
PUSH 0 p1[1]
REVERT p1[1]
tag 143 p1[1]
JUMPDEST p1[1]
PUSH 20 p1[1]
MUL p1[1]
PUSH 20 p1[1]
ADD p1[1]
ADD p1[1]
DUP2 p1[1] = b1
SWAP1 p1[1] = b1
MSTORE p1[1] = b1
POP p1[1] = b1
DUP7 c1
DUP3 p1
PUSH 2 2
DUP2 p1[2]
MLOAD p1[2]
DUP2 p1[2]
LT p1[2]
PUSH [tag] 144 p1[2]
JUMPI p1[2]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[2]
PUSH 0 p1[2]
MSTORE p1[2]
PUSH 32 p1[2]
PUSH 4 p1[2]
MSTORE p1[2]
PUSH 24 p1[2]
PUSH 0 p1[2]
REVERT p1[2]
tag 144 p1[2]
JUMPDEST p1[2]
PUSH 20 p1[2]
MUL p1[2]
PUSH 20 p1[2]
ADD p1[2]
ADD p1[2]
DUP2 p1[2] = c1
SWAP1 p1[2] = c1
MSTORE p1[2] = c1
POP p1[2] = c1
DUP5 d1
DUP3 p1
PUSH 3 3
DUP2 p1[3]
MLOAD p1[3]
DUP2 p1[3]
LT p1[3]
PUSH [tag] 145 p1[3]
JUMPI p1[3]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[3]
PUSH 0 p1[3]
MSTORE p1[3]
PUSH 32 p1[3]
PUSH 4 p1[3]
MSTORE p1[3]
PUSH 24 p1[3]
PUSH 0 p1[3]
REVERT p1[3]
tag 145 p1[3]
JUMPDEST p1[3]
PUSH 20 p1[3]
MUL p1[3]
PUSH 20 p1[3]
ADD p1[3]
ADD p1[3]
DUP2 p1[3] = d1
SWAP1 p1[3] = d1
MSTORE p1[3] = d1
POP p1[3] = d1
DUP10 a2
DUP2 p2
PUSH 0 0
DUP2 p2[0]
MLOAD p2[0]
DUP2 p2[0]
LT p2[0]
PUSH [tag] 146 p2[0]
JUMPI p2[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[0]
PUSH 0 p2[0]
MSTORE p2[0]
PUSH 32 p2[0]
PUSH 4 p2[0]
MSTORE p2[0]
PUSH 24 p2[0]
PUSH 0 p2[0]
REVERT p2[0]
tag 146 p2[0]
JUMPDEST p2[0]
PUSH 20 p2[0]
MUL p2[0]
PUSH 20 p2[0]
ADD p2[0]
ADD p2[0]
DUP2 p2[0] = a2
SWAP1 p2[0] = a2
MSTORE p2[0] = a2
POP p2[0] = a2
DUP8 b2
DUP2 p2
PUSH 1 1
DUP2 p2[1]
MLOAD p2[1]
DUP2 p2[1]
LT p2[1]
PUSH [tag] 147 p2[1]
JUMPI p2[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[1]
PUSH 0 p2[1]
MSTORE p2[1]
PUSH 32 p2[1]
PUSH 4 p2[1]
MSTORE p2[1]
PUSH 24 p2[1]
PUSH 0 p2[1]
REVERT p2[1]
tag 147 p2[1]
JUMPDEST p2[1]
PUSH 20 p2[1]
MUL p2[1]
PUSH 20 p2[1]
ADD p2[1]
ADD p2[1]
DUP2 p2[1] = b2
SWAP1 p2[1] = b2
MSTORE p2[1] = b2
POP p2[1] = b2
DUP6 c2
DUP2 p2
PUSH 2 2
DUP2 p2[2]
MLOAD p2[2]
DUP2 p2[2]
LT p2[2]
PUSH [tag] 148 p2[2]
JUMPI p2[2]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[2]
PUSH 0 p2[2]
MSTORE p2[2]
PUSH 32 p2[2]
PUSH 4 p2[2]
MSTORE p2[2]
PUSH 24 p2[2]
PUSH 0 p2[2]
REVERT p2[2]
tag 148 p2[2]
JUMPDEST p2[2]
PUSH 20 p2[2]
MUL p2[2]
PUSH 20 p2[2]
ADD p2[2]
ADD p2[2]
DUP2 p2[2] = c2
SWAP1 p2[2] = c2
MSTORE p2[2] = c2
POP p2[2] = c2
DUP4 d2
DUP2 p2
PUSH 3 3
DUP2 p2[3]
MLOAD p2[3]
DUP2 p2[3]
LT p2[3]
PUSH [tag] 149 p2[3]
JUMPI p2[3]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[3]
PUSH 0 p2[3]
MSTORE p2[3]
PUSH 32 p2[3]
PUSH 4 p2[3]
MSTORE p2[3]
PUSH 24 p2[3]
PUSH 0 p2[3]
REVERT p2[3]
tag 149 p2[3]
JUMPDEST p2[3]
PUSH 20 p2[3]
MUL p2[3]
PUSH 20 p2[3]
ADD p2[3]
ADD p2[3]
DUP2 p2[3] = d2
SWAP1 p2[3] = d2
MSTORE p2[3] = d2
POP p2[3] = d2
PUSH [tag] 150 pairing(p1, p2)
DUP3 p1
DUP3 p2
PUSH [tag] 151 pairing
JUMP [in] pairing(p1, p2)
tag 150 pairing(p1, p2)
JUMPDEST pairing(p1, p2)
SWAP3 return pairing(p1, p2)
POP return pairing(p1, p2)
POP return pairing(p1, p2)
POP return pairing(p1, p2)
SWAP9 function pairingProd4(\n ...
SWAP8 function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
POP function pairingProd4(\n ...
JUMP [out] function pairingProd4(\n ...
tag 70 function pairingProd2(G1Point ...
JUMPDEST function pairingProd2(G1Point ...
PUSH 0 bool
DUP1 G1Point[] memory p1
PUSH 2 2
PUSH FFFFFFFFFFFFFFFF new G1Point[](2)
DUP2 new G1Point[](2)
GT new G1Point[](2)
ISZERO new G1Point[](2)
PUSH [tag] 153 new G1Point[](2)
JUMPI new G1Point[](2)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G1Point[](2)
PUSH 0 new G1Point[](2)
MSTORE new G1Point[](2)
PUSH 41 new G1Point[](2)
PUSH 4 new G1Point[](2)
MSTORE new G1Point[](2)
PUSH 24 new G1Point[](2)
PUSH 0 new G1Point[](2)
REVERT new G1Point[](2)
tag 153 new G1Point[](2)
JUMPDEST new G1Point[](2)
PUSH 40 new G1Point[](2)
MLOAD new G1Point[](2)
SWAP1 new G1Point[](2)
DUP1 new G1Point[](2)
DUP3 new G1Point[](2)
MSTORE new G1Point[](2)
DUP1 new G1Point[](2)
PUSH 20 new G1Point[](2)
MUL new G1Point[](2)
PUSH 20 new G1Point[](2)
ADD new G1Point[](2)
DUP3 new G1Point[](2)
ADD new G1Point[](2)
PUSH 40 new G1Point[](2)
MSTORE new G1Point[](2)
DUP1 new G1Point[](2)
ISZERO new G1Point[](2)
PUSH [tag] 154 new G1Point[](2)
JUMPI new G1Point[](2)
DUP2 new G1Point[](2)
PUSH 20 new G1Point[](2)
ADD new G1Point[](2)
tag 155 new G1Point[](2)
JUMPDEST new G1Point[](2)
PUSH [tag] 156 new G1Point[](2)
PUSH [tag] 80 new G1Point[](2)
JUMP [in] new G1Point[](2)
tag 156 new G1Point[](2)
JUMPDEST new G1Point[](2)
DUP2 new G1Point[](2)
MSTORE new G1Point[](2)
PUSH 20 new G1Point[](2)
ADD new G1Point[](2)
SWAP1 new G1Point[](2)
PUSH 1 new G1Point[](2)
SWAP1 new G1Point[](2)
SUB new G1Point[](2)
SWAP1 new G1Point[](2)
DUP2 new G1Point[](2)
PUSH [tag] 155 new G1Point[](2)
JUMPI new G1Point[](2)
SWAP1 new G1Point[](2)
POP new G1Point[](2)
tag 154 new G1Point[](2)
JUMPDEST new G1Point[](2)
POP new G1Point[](2)
SWAP1 G1Point[] memory p1 = new G1Po...
POP G1Point[] memory p1 = new G1Po...
PUSH 0 G2Point[] memory p2
PUSH 2 2
PUSH FFFFFFFFFFFFFFFF new G2Point[](2)
DUP2 new G2Point[](2)
GT new G2Point[](2)
ISZERO new G2Point[](2)
PUSH [tag] 157 new G2Point[](2)
JUMPI new G2Point[](2)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new G2Point[](2)
PUSH 0 new G2Point[](2)
MSTORE new G2Point[](2)
PUSH 41 new G2Point[](2)
PUSH 4 new G2Point[](2)
MSTORE new G2Point[](2)
PUSH 24 new G2Point[](2)
PUSH 0 new G2Point[](2)
REVERT new G2Point[](2)
tag 157 new G2Point[](2)
JUMPDEST new G2Point[](2)
PUSH 40 new G2Point[](2)
MLOAD new G2Point[](2)
SWAP1 new G2Point[](2)
DUP1 new G2Point[](2)
DUP3 new G2Point[](2)
MSTORE new G2Point[](2)
DUP1 new G2Point[](2)
PUSH 20 new G2Point[](2)
MUL new G2Point[](2)
PUSH 20 new G2Point[](2)
ADD new G2Point[](2)
DUP3 new G2Point[](2)
ADD new G2Point[](2)
PUSH 40 new G2Point[](2)
MSTORE new G2Point[](2)
DUP1 new G2Point[](2)
ISZERO new G2Point[](2)
PUSH [tag] 158 new G2Point[](2)
JUMPI new G2Point[](2)
DUP2 new G2Point[](2)
PUSH 20 new G2Point[](2)
ADD new G2Point[](2)
tag 159 new G2Point[](2)
JUMPDEST new G2Point[](2)
PUSH [tag] 160 new G2Point[](2)
PUSH [tag] 115 new G2Point[](2)
JUMP [in] new G2Point[](2)
tag 160 new G2Point[](2)
JUMPDEST new G2Point[](2)
DUP2 new G2Point[](2)
MSTORE new G2Point[](2)
PUSH 20 new G2Point[](2)
ADD new G2Point[](2)
SWAP1 new G2Point[](2)
PUSH 1 new G2Point[](2)
SWAP1 new G2Point[](2)
SUB new G2Point[](2)
SWAP1 new G2Point[](2)
DUP2 new G2Point[](2)
PUSH [tag] 159 new G2Point[](2)
JUMPI new G2Point[](2)
SWAP1 new G2Point[](2)
POP new G2Point[](2)
tag 158 new G2Point[](2)
JUMPDEST new G2Point[](2)
POP new G2Point[](2)
SWAP1 G2Point[] memory p2 = new G2Po...
POP G2Point[] memory p2 = new G2Po...
DUP7 a1
DUP3 p1
PUSH 0 0
DUP2 p1[0]
MLOAD p1[0]
DUP2 p1[0]
LT p1[0]
PUSH [tag] 161 p1[0]
JUMPI p1[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[0]
PUSH 0 p1[0]
MSTORE p1[0]
PUSH 32 p1[0]
PUSH 4 p1[0]
MSTORE p1[0]
PUSH 24 p1[0]
PUSH 0 p1[0]
REVERT p1[0]
tag 161 p1[0]
JUMPDEST p1[0]
PUSH 20 p1[0]
MUL p1[0]
PUSH 20 p1[0]
ADD p1[0]
ADD p1[0]
DUP2 p1[0] = a1
SWAP1 p1[0] = a1
MSTORE p1[0] = a1
POP p1[0] = a1
DUP5 b1
DUP3 p1
PUSH 1 1
DUP2 p1[1]
MLOAD p1[1]
DUP2 p1[1]
LT p1[1]
PUSH [tag] 162 p1[1]
JUMPI p1[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[1]
PUSH 0 p1[1]
MSTORE p1[1]
PUSH 32 p1[1]
PUSH 4 p1[1]
MSTORE p1[1]
PUSH 24 p1[1]
PUSH 0 p1[1]
REVERT p1[1]
tag 162 p1[1]
JUMPDEST p1[1]
PUSH 20 p1[1]
MUL p1[1]
PUSH 20 p1[1]
ADD p1[1]
ADD p1[1]
DUP2 p1[1] = b1
SWAP1 p1[1] = b1
MSTORE p1[1] = b1
POP p1[1] = b1
DUP6 a2
DUP2 p2
PUSH 0 0
DUP2 p2[0]
MLOAD p2[0]
DUP2 p2[0]
LT p2[0]
PUSH [tag] 163 p2[0]
JUMPI p2[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[0]
PUSH 0 p2[0]
MSTORE p2[0]
PUSH 32 p2[0]
PUSH 4 p2[0]
MSTORE p2[0]
PUSH 24 p2[0]
PUSH 0 p2[0]
REVERT p2[0]
tag 163 p2[0]
JUMPDEST p2[0]
PUSH 20 p2[0]
MUL p2[0]
PUSH 20 p2[0]
ADD p2[0]
ADD p2[0]
DUP2 p2[0] = a2
SWAP1 p2[0] = a2
MSTORE p2[0] = a2
POP p2[0] = a2
DUP4 b2
DUP2 p2
PUSH 1 1
DUP2 p2[1]
MLOAD p2[1]
DUP2 p2[1]
LT p2[1]
PUSH [tag] 164 p2[1]
JUMPI p2[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[1]
PUSH 0 p2[1]
MSTORE p2[1]
PUSH 32 p2[1]
PUSH 4 p2[1]
MSTORE p2[1]
PUSH 24 p2[1]
PUSH 0 p2[1]
REVERT p2[1]
tag 164 p2[1]
JUMPDEST p2[1]
PUSH 20 p2[1]
MUL p2[1]
PUSH 20 p2[1]
ADD p2[1]
ADD p2[1]
DUP2 p2[1] = b2
SWAP1 p2[1] = b2
MSTORE p2[1] = b2
POP p2[1] = b2
PUSH [tag] 165 pairing(p1, p2)
DUP3 p1
DUP3 p2
PUSH [tag] 151 pairing
JUMP [in] pairing(p1, p2)
tag 165 pairing(p1, p2)
JUMPDEST pairing(p1, p2)
SWAP3 return pairing(p1, p2)
POP return pairing(p1, p2)
POP return pairing(p1, p2)
POP return pairing(p1, p2)
SWAP5 function pairingProd2(G1Point ...
SWAP4 function pairingProd2(G1Point ...
POP function pairingProd2(G1Point ...
POP function pairingProd2(G1Point ...
POP function pairingProd2(G1Point ...
POP function pairingProd2(G1Point ...
JUMP [out] function pairingProd2(G1Point ...
tag 113 function sub(uint a, uint b) i...
JUMPDEST function sub(uint a, uint b) i...
PUSH 0 uint c
DUP2 b
DUP4 a
SUB a - b
SWAP1 c = a - b
POP c = a - b
SWAP3 function sub(uint a, uint b) i...
SWAP2 function sub(uint a, uint b) i...
POP function sub(uint a, uint b) i...
POP function sub(uint a, uint b) i...
JUMP [out] function sub(uint a, uint b) i...
tag 151 function pairing(G1Point[] mem...
JUMPDEST function pairing(G1Point[] mem...
PUSH 0 bool
DUP2 p2
MLOAD p2.length
DUP4 p1
MLOAD p1.length
EQ p1.length == p2.length
PUSH [tag] 168 require(p1.length == p2.length...
JUMPI require(p1.length == p2.length...
PUSH 0 require(p1.length == p2.length...
DUP1 require(p1.length == p2.length...
REVERT require(p1.length == p2.length...
tag 168 require(p1.length == p2.length...
JUMPDEST require(p1.length == p2.length...
PUSH 0 uint elements
DUP4 p1
MLOAD p1.length
SWAP1 uint elements = p1.length
POP uint elements = p1.length
PUSH 0 uint inputSize
PUSH [tag] 169 elements.mul(6)
PUSH 6 6
DUP4 elements
PUSH [tag] 170 elements.mul
SWAP1 elements.mul
SWAP2 elements.mul(6)
SWAP1 elements.mul(6)
PUSH FFFFFFFF elements.mul(6)
AND elements.mul(6)
JUMP [in] elements.mul(6)
tag 169 elements.mul(6)
JUMPDEST elements.mul(6)
SWAP1 uint inputSize = elements.mul(...
POP uint inputSize = elements.mul(...
PUSH 0 uint[] memory input
DUP2 inputSize
PUSH FFFFFFFFFFFFFFFF new uint[](inputSize)
DUP2 new uint[](inputSize)
GT new uint[](inputSize)
ISZERO new uint[](inputSize)
PUSH [tag] 171 new uint[](inputSize)
JUMPI new uint[](inputSize)
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 new uint[](inputSize)
PUSH 0 new uint[](inputSize)
MSTORE new uint[](inputSize)
PUSH 41 new uint[](inputSize)
PUSH 4 new uint[](inputSize)
MSTORE new uint[](inputSize)
PUSH 24 new uint[](inputSize)
PUSH 0 new uint[](inputSize)
REVERT new uint[](inputSize)
tag 171 new uint[](inputSize)
JUMPDEST new uint[](inputSize)
PUSH 40 new uint[](inputSize)
MLOAD new uint[](inputSize)
SWAP1 new uint[](inputSize)
DUP1 new uint[](inputSize)
DUP3 new uint[](inputSize)
MSTORE new uint[](inputSize)
DUP1 new uint[](inputSize)
PUSH 20 new uint[](inputSize)
MUL new uint[](inputSize)
PUSH 20 new uint[](inputSize)
ADD new uint[](inputSize)
DUP3 new uint[](inputSize)
ADD new uint[](inputSize)
PUSH 40 new uint[](inputSize)
MSTORE new uint[](inputSize)
DUP1 new uint[](inputSize)
ISZERO new uint[](inputSize)
PUSH [tag] 172 new uint[](inputSize)
JUMPI new uint[](inputSize)
DUP2 new uint[](inputSize)
PUSH 20 new uint[](inputSize)
ADD new uint[](inputSize)
PUSH 20 new uint[](inputSize)
DUP3 new uint[](inputSize)
MUL new uint[](inputSize)
DUP1 new uint[](inputSize)
CALLDATASIZE new uint[](inputSize)
DUP4 new uint[](inputSize)
CALLDATACOPY new uint[](inputSize)
DUP1 new uint[](inputSize)
DUP3 new uint[](inputSize)
ADD new uint[](inputSize)
SWAP2 new uint[](inputSize)
POP new uint[](inputSize)
POP new uint[](inputSize)
SWAP1 new uint[](inputSize)
POP new uint[](inputSize)
tag 172 new uint[](inputSize)
JUMPDEST new uint[](inputSize)
POP new uint[](inputSize)
SWAP1 uint[] memory input = new uint...
POP uint[] memory input = new uint...
PUSH 0 uint i
tag 173 for (uint i = 0; i < elements;...
JUMPDEST for (uint i = 0; i < elements;...
DUP4 elements
DUP2 i
LT i < elements
ISZERO for (uint i = 0; i < elements;...
PUSH [tag] 174 for (uint i = 0; i < elements;...
JUMPI for (uint i = 0; i < elements;...
DUP7 p1
DUP2 i
DUP2 p1[i]
MLOAD p1[i]
DUP2 p1[i]
LT p1[i]
PUSH [tag] 176 p1[i]
JUMPI p1[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[i]
PUSH 0 p1[i]
MSTORE p1[i]
PUSH 32 p1[i]
PUSH 4 p1[i]
MSTORE p1[i]
PUSH 24 p1[i]
PUSH 0 p1[i]
REVERT p1[i]
tag 176 p1[i]
JUMPDEST p1[i]
PUSH 20 p1[i]
MUL p1[i]
PUSH 20 p1[i]
ADD p1[i]
ADD p1[i]
MLOAD p1[i]
PUSH 0 p1[i].X
ADD p1[i].X
MLOAD p1[i].X
DUP3 input
PUSH [tag] 177 i.mul(6).add(0)
PUSH 0 0
PUSH [tag] 178 i.mul(6)
PUSH 6 6
DUP7 i
PUSH [tag] 170 i.mul
SWAP1 i.mul
SWAP2 i.mul(6)
SWAP1 i.mul(6)
PUSH FFFFFFFF i.mul(6)
AND i.mul(6)
JUMP [in] i.mul(6)
tag 178 i.mul(6)
JUMPDEST i.mul(6)
PUSH [tag] 39 i.mul(6).add
SWAP1 i.mul(6).add
SWAP2 i.mul(6).add(0)
SWAP1 i.mul(6).add(0)
PUSH FFFFFFFF i.mul(6).add(0)
AND i.mul(6).add(0)
JUMP [in] i.mul(6).add(0)
tag 177 i.mul(6).add(0)
JUMPDEST i.mul(6).add(0)
DUP2 input[i.mul(6).add(0)]
MLOAD input[i.mul(6).add(0)]
DUP2 input[i.mul(6).add(0)]
LT input[i.mul(6).add(0)]
PUSH [tag] 179 input[i.mul(6).add(0)]
JUMPI input[i.mul(6).add(0)]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(0)]
PUSH 0 input[i.mul(6).add(0)]
MSTORE input[i.mul(6).add(0)]
PUSH 32 input[i.mul(6).add(0)]
PUSH 4 input[i.mul(6).add(0)]
MSTORE input[i.mul(6).add(0)]
PUSH 24 input[i.mul(6).add(0)]
PUSH 0 input[i.mul(6).add(0)]
REVERT input[i.mul(6).add(0)]
tag 179 input[i.mul(6).add(0)]
JUMPDEST input[i.mul(6).add(0)]
PUSH 20 input[i.mul(6).add(0)]
MUL input[i.mul(6).add(0)]
PUSH 20 input[i.mul(6).add(0)]
ADD input[i.mul(6).add(0)]
ADD input[i.mul(6).add(0)]
DUP2 input[i.mul(6).add(0)] = p1[i]...
DUP2 input[i.mul(6).add(0)] = p1[i]...
MSTORE input[i.mul(6).add(0)] = p1[i]...
POP input[i.mul(6).add(0)] = p1[i]...
POP input[i.mul(6).add(0)] = p1[i]...
DUP7 p1
DUP2 i
DUP2 p1[i]
MLOAD p1[i]
DUP2 p1[i]
LT p1[i]
PUSH [tag] 180 p1[i]
JUMPI p1[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p1[i]
PUSH 0 p1[i]
MSTORE p1[i]
PUSH 32 p1[i]
PUSH 4 p1[i]
MSTORE p1[i]
PUSH 24 p1[i]
PUSH 0 p1[i]
REVERT p1[i]
tag 180 p1[i]
JUMPDEST p1[i]
PUSH 20 p1[i]
MUL p1[i]
PUSH 20 p1[i]
ADD p1[i]
ADD p1[i]
MLOAD p1[i]
PUSH 20 p1[i].Y
ADD p1[i].Y
MLOAD p1[i].Y
DUP3 input
PUSH [tag] 181 i.mul(6).add(1)
PUSH 1 1
PUSH [tag] 182 i.mul(6)
PUSH 6 6
DUP7 i
PUSH [tag] 170 i.mul
SWAP1 i.mul
SWAP2 i.mul(6)
SWAP1 i.mul(6)
PUSH FFFFFFFF i.mul(6)
AND i.mul(6)
JUMP [in] i.mul(6)
tag 182 i.mul(6)
JUMPDEST i.mul(6)
PUSH [tag] 39 i.mul(6).add
SWAP1 i.mul(6).add
SWAP2 i.mul(6).add(1)
SWAP1 i.mul(6).add(1)
PUSH FFFFFFFF i.mul(6).add(1)
AND i.mul(6).add(1)
JUMP [in] i.mul(6).add(1)
tag 181 i.mul(6).add(1)
JUMPDEST i.mul(6).add(1)
DUP2 input[i.mul(6).add(1)]
MLOAD input[i.mul(6).add(1)]
DUP2 input[i.mul(6).add(1)]
LT input[i.mul(6).add(1)]
PUSH [tag] 183 input[i.mul(6).add(1)]
JUMPI input[i.mul(6).add(1)]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(1)]
PUSH 0 input[i.mul(6).add(1)]
MSTORE input[i.mul(6).add(1)]
PUSH 32 input[i.mul(6).add(1)]
PUSH 4 input[i.mul(6).add(1)]
MSTORE input[i.mul(6).add(1)]
PUSH 24 input[i.mul(6).add(1)]
PUSH 0 input[i.mul(6).add(1)]
REVERT input[i.mul(6).add(1)]
tag 183 input[i.mul(6).add(1)]
JUMPDEST input[i.mul(6).add(1)]
PUSH 20 input[i.mul(6).add(1)]
MUL input[i.mul(6).add(1)]
PUSH 20 input[i.mul(6).add(1)]
ADD input[i.mul(6).add(1)]
ADD input[i.mul(6).add(1)]
DUP2 input[i.mul(6).add(1)] = p1[i]...
DUP2 input[i.mul(6).add(1)] = p1[i]...
MSTORE input[i.mul(6).add(1)] = p1[i]...
POP input[i.mul(6).add(1)] = p1[i]...
POP input[i.mul(6).add(1)] = p1[i]...
DUP6 p2
DUP2 i
DUP2 p2[i]
MLOAD p2[i]
DUP2 p2[i]
LT p2[i]
PUSH [tag] 184 p2[i]
JUMPI p2[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i]
PUSH 0 p2[i]
MSTORE p2[i]
PUSH 32 p2[i]
PUSH 4 p2[i]
MSTORE p2[i]
PUSH 24 p2[i]
PUSH 0 p2[i]
REVERT p2[i]
tag 184 p2[i]
JUMPDEST p2[i]
PUSH 20 p2[i]
MUL p2[i]
PUSH 20 p2[i]
ADD p2[i]
ADD p2[i]
MLOAD p2[i]
PUSH 0 p2[i].X
ADD p2[i].X
MLOAD p2[i].X
PUSH 1 1
PUSH 2 p2[i].X[1]
DUP2 p2[i].X[1]
LT p2[i].X[1]
PUSH [tag] 185 p2[i].X[1]
JUMPI p2[i].X[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].X[1]
PUSH 0 p2[i].X[1]
MSTORE p2[i].X[1]
PUSH 32 p2[i].X[1]
PUSH 4 p2[i].X[1]
MSTORE p2[i].X[1]
PUSH 24 p2[i].X[1]
PUSH 0 p2[i].X[1]
REVERT p2[i].X[1]
tag 185 p2[i].X[1]
JUMPDEST p2[i].X[1]
PUSH 20 p2[i].X[1]
MUL p2[i].X[1]
ADD p2[i].X[1]
MLOAD p2[i].X[1]
DUP3 input
PUSH [tag] 186 i.mul(6).add(2)
PUSH 2 2
PUSH [tag] 187 i.mul(6)
PUSH 6 6
DUP7 i
PUSH [tag] 170 i.mul
SWAP1 i.mul
SWAP2 i.mul(6)
SWAP1 i.mul(6)
PUSH FFFFFFFF i.mul(6)
AND i.mul(6)
JUMP [in] i.mul(6)
tag 187 i.mul(6)
JUMPDEST i.mul(6)
PUSH [tag] 39 i.mul(6).add
SWAP1 i.mul(6).add
SWAP2 i.mul(6).add(2)
SWAP1 i.mul(6).add(2)
PUSH FFFFFFFF i.mul(6).add(2)
AND i.mul(6).add(2)
JUMP [in] i.mul(6).add(2)
tag 186 i.mul(6).add(2)
JUMPDEST i.mul(6).add(2)
DUP2 input[i.mul(6).add(2)]
MLOAD input[i.mul(6).add(2)]
DUP2 input[i.mul(6).add(2)]
LT input[i.mul(6).add(2)]
PUSH [tag] 188 input[i.mul(6).add(2)]
JUMPI input[i.mul(6).add(2)]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(2)]
PUSH 0 input[i.mul(6).add(2)]
MSTORE input[i.mul(6).add(2)]
PUSH 32 input[i.mul(6).add(2)]
PUSH 4 input[i.mul(6).add(2)]
MSTORE input[i.mul(6).add(2)]
PUSH 24 input[i.mul(6).add(2)]
PUSH 0 input[i.mul(6).add(2)]
REVERT input[i.mul(6).add(2)]
tag 188 input[i.mul(6).add(2)]
JUMPDEST input[i.mul(6).add(2)]
PUSH 20 input[i.mul(6).add(2)]
MUL input[i.mul(6).add(2)]
PUSH 20 input[i.mul(6).add(2)]
ADD input[i.mul(6).add(2)]
ADD input[i.mul(6).add(2)]
DUP2 input[i.mul(6).add(2)] = p2[i]...
DUP2 input[i.mul(6).add(2)] = p2[i]...
MSTORE input[i.mul(6).add(2)] = p2[i]...
POP input[i.mul(6).add(2)] = p2[i]...
POP input[i.mul(6).add(2)] = p2[i]...
DUP6 p2
DUP2 i
DUP2 p2[i]
MLOAD p2[i]
DUP2 p2[i]
LT p2[i]
PUSH [tag] 189 p2[i]
JUMPI p2[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i]
PUSH 0 p2[i]
MSTORE p2[i]
PUSH 32 p2[i]
PUSH 4 p2[i]
MSTORE p2[i]
PUSH 24 p2[i]
PUSH 0 p2[i]
REVERT p2[i]
tag 189 p2[i]
JUMPDEST p2[i]
PUSH 20 p2[i]
MUL p2[i]
PUSH 20 p2[i]
ADD p2[i]
ADD p2[i]
MLOAD p2[i]
PUSH 0 p2[i].X
ADD p2[i].X
MLOAD p2[i].X
PUSH 0 0
PUSH 2 p2[i].X[0]
DUP2 p2[i].X[0]
LT p2[i].X[0]
PUSH [tag] 190 p2[i].X[0]
JUMPI p2[i].X[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].X[0]
PUSH 0 p2[i].X[0]
MSTORE p2[i].X[0]
PUSH 32 p2[i].X[0]
PUSH 4 p2[i].X[0]
MSTORE p2[i].X[0]
PUSH 24 p2[i].X[0]
PUSH 0 p2[i].X[0]
REVERT p2[i].X[0]
tag 190 p2[i].X[0]
JUMPDEST p2[i].X[0]
PUSH 20 p2[i].X[0]
MUL p2[i].X[0]
ADD p2[i].X[0]
MLOAD p2[i].X[0]
DUP3 input
PUSH [tag] 191 i.mul(6).add(3)
PUSH 3 3
PUSH [tag] 192 i.mul(6)
PUSH 6 6
DUP7 i
PUSH [tag] 170 i.mul
SWAP1 i.mul
SWAP2 i.mul(6)
SWAP1 i.mul(6)
PUSH FFFFFFFF i.mul(6)
AND i.mul(6)
JUMP [in] i.mul(6)
tag 192 i.mul(6)
JUMPDEST i.mul(6)
PUSH [tag] 39 i.mul(6).add
SWAP1 i.mul(6).add
SWAP2 i.mul(6).add(3)
SWAP1 i.mul(6).add(3)
PUSH FFFFFFFF i.mul(6).add(3)
AND i.mul(6).add(3)
JUMP [in] i.mul(6).add(3)
tag 191 i.mul(6).add(3)
JUMPDEST i.mul(6).add(3)
DUP2 input[i.mul(6).add(3)]
MLOAD input[i.mul(6).add(3)]
DUP2 input[i.mul(6).add(3)]
LT input[i.mul(6).add(3)]
PUSH [tag] 193 input[i.mul(6).add(3)]
JUMPI input[i.mul(6).add(3)]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(3)]
PUSH 0 input[i.mul(6).add(3)]
MSTORE input[i.mul(6).add(3)]
PUSH 32 input[i.mul(6).add(3)]
PUSH 4 input[i.mul(6).add(3)]
MSTORE input[i.mul(6).add(3)]
PUSH 24 input[i.mul(6).add(3)]
PUSH 0 input[i.mul(6).add(3)]
REVERT input[i.mul(6).add(3)]
tag 193 input[i.mul(6).add(3)]
JUMPDEST input[i.mul(6).add(3)]
PUSH 20 input[i.mul(6).add(3)]
MUL input[i.mul(6).add(3)]
PUSH 20 input[i.mul(6).add(3)]
ADD input[i.mul(6).add(3)]
ADD input[i.mul(6).add(3)]
DUP2 input[i.mul(6).add(3)] = p2[i]...
DUP2 input[i.mul(6).add(3)] = p2[i]...
MSTORE input[i.mul(6).add(3)] = p2[i]...
POP input[i.mul(6).add(3)] = p2[i]...
POP input[i.mul(6).add(3)] = p2[i]...
DUP6 p2
DUP2 i
DUP2 p2[i]
MLOAD p2[i]
DUP2 p2[i]
LT p2[i]
PUSH [tag] 194 p2[i]
JUMPI p2[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i]
PUSH 0 p2[i]
MSTORE p2[i]
PUSH 32 p2[i]
PUSH 4 p2[i]
MSTORE p2[i]
PUSH 24 p2[i]
PUSH 0 p2[i]
REVERT p2[i]
tag 194 p2[i]
JUMPDEST p2[i]
PUSH 20 p2[i]
MUL p2[i]
PUSH 20 p2[i]
ADD p2[i]
ADD p2[i]
MLOAD p2[i]
PUSH 20 p2[i].Y
ADD p2[i].Y
MLOAD p2[i].Y
PUSH 1 1
PUSH 2 p2[i].Y[1]
DUP2 p2[i].Y[1]
LT p2[i].Y[1]
PUSH [tag] 195 p2[i].Y[1]
JUMPI p2[i].Y[1]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].Y[1]
PUSH 0 p2[i].Y[1]
MSTORE p2[i].Y[1]
PUSH 32 p2[i].Y[1]
PUSH 4 p2[i].Y[1]
MSTORE p2[i].Y[1]
PUSH 24 p2[i].Y[1]
PUSH 0 p2[i].Y[1]
REVERT p2[i].Y[1]
tag 195 p2[i].Y[1]
JUMPDEST p2[i].Y[1]
PUSH 20 p2[i].Y[1]
MUL p2[i].Y[1]
ADD p2[i].Y[1]
MLOAD p2[i].Y[1]
DUP3 input
PUSH [tag] 196 i.mul(6).add(4)
PUSH 4 4
PUSH [tag] 197 i.mul(6)
PUSH 6 6
DUP7 i
PUSH [tag] 170 i.mul
SWAP1 i.mul
SWAP2 i.mul(6)
SWAP1 i.mul(6)
PUSH FFFFFFFF i.mul(6)
AND i.mul(6)
JUMP [in] i.mul(6)
tag 197 i.mul(6)
JUMPDEST i.mul(6)
PUSH [tag] 39 i.mul(6).add
SWAP1 i.mul(6).add
SWAP2 i.mul(6).add(4)
SWAP1 i.mul(6).add(4)
PUSH FFFFFFFF i.mul(6).add(4)
AND i.mul(6).add(4)
JUMP [in] i.mul(6).add(4)
tag 196 i.mul(6).add(4)
JUMPDEST i.mul(6).add(4)
DUP2 input[i.mul(6).add(4)]
MLOAD input[i.mul(6).add(4)]
DUP2 input[i.mul(6).add(4)]
LT input[i.mul(6).add(4)]
PUSH [tag] 198 input[i.mul(6).add(4)]
JUMPI input[i.mul(6).add(4)]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(4)]
PUSH 0 input[i.mul(6).add(4)]
MSTORE input[i.mul(6).add(4)]
PUSH 32 input[i.mul(6).add(4)]
PUSH 4 input[i.mul(6).add(4)]
MSTORE input[i.mul(6).add(4)]
PUSH 24 input[i.mul(6).add(4)]
PUSH 0 input[i.mul(6).add(4)]
REVERT input[i.mul(6).add(4)]
tag 198 input[i.mul(6).add(4)]
JUMPDEST input[i.mul(6).add(4)]
PUSH 20 input[i.mul(6).add(4)]
MUL input[i.mul(6).add(4)]
PUSH 20 input[i.mul(6).add(4)]
ADD input[i.mul(6).add(4)]
ADD input[i.mul(6).add(4)]
DUP2 input[i.mul(6).add(4)] = p2[i]...
DUP2 input[i.mul(6).add(4)] = p2[i]...
MSTORE input[i.mul(6).add(4)] = p2[i]...
POP input[i.mul(6).add(4)] = p2[i]...
POP input[i.mul(6).add(4)] = p2[i]...
DUP6 p2
DUP2 i
DUP2 p2[i]
MLOAD p2[i]
DUP2 p2[i]
LT p2[i]
PUSH [tag] 199 p2[i]
JUMPI p2[i]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i]
PUSH 0 p2[i]
MSTORE p2[i]
PUSH 32 p2[i]
PUSH 4 p2[i]
MSTORE p2[i]
PUSH 24 p2[i]
PUSH 0 p2[i]
REVERT p2[i]
tag 199 p2[i]
JUMPDEST p2[i]
PUSH 20 p2[i]
MUL p2[i]
PUSH 20 p2[i]
ADD p2[i]
ADD p2[i]
MLOAD p2[i]
PUSH 20 p2[i].Y
ADD p2[i].Y
MLOAD p2[i].Y
PUSH 0 0
PUSH 2 p2[i].Y[0]
DUP2 p2[i].Y[0]
LT p2[i].Y[0]
PUSH [tag] 200 p2[i].Y[0]
JUMPI p2[i].Y[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 p2[i].Y[0]
PUSH 0 p2[i].Y[0]
MSTORE p2[i].Y[0]
PUSH 32 p2[i].Y[0]
PUSH 4 p2[i].Y[0]
MSTORE p2[i].Y[0]
PUSH 24 p2[i].Y[0]
PUSH 0 p2[i].Y[0]
REVERT p2[i].Y[0]
tag 200 p2[i].Y[0]
JUMPDEST p2[i].Y[0]
PUSH 20 p2[i].Y[0]
MUL p2[i].Y[0]
ADD p2[i].Y[0]
MLOAD p2[i].Y[0]
DUP3 input
PUSH [tag] 201 i.mul(6).add(5)
PUSH 5 5
PUSH [tag] 202 i.mul(6)
PUSH 6 6
DUP7 i
PUSH [tag] 170 i.mul
SWAP1 i.mul
SWAP2 i.mul(6)
SWAP1 i.mul(6)
PUSH FFFFFFFF i.mul(6)
AND i.mul(6)
JUMP [in] i.mul(6)
tag 202 i.mul(6)
JUMPDEST i.mul(6)
PUSH [tag] 39 i.mul(6).add
SWAP1 i.mul(6).add
SWAP2 i.mul(6).add(5)
SWAP1 i.mul(6).add(5)
PUSH FFFFFFFF i.mul(6).add(5)
AND i.mul(6).add(5)
JUMP [in] i.mul(6).add(5)
tag 201 i.mul(6).add(5)
JUMPDEST i.mul(6).add(5)
DUP2 input[i.mul(6).add(5)]
MLOAD input[i.mul(6).add(5)]
DUP2 input[i.mul(6).add(5)]
LT input[i.mul(6).add(5)]
PUSH [tag] 203 input[i.mul(6).add(5)]
JUMPI input[i.mul(6).add(5)]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 input[i.mul(6).add(5)]
PUSH 0 input[i.mul(6).add(5)]
MSTORE input[i.mul(6).add(5)]
PUSH 32 input[i.mul(6).add(5)]
PUSH 4 input[i.mul(6).add(5)]
MSTORE input[i.mul(6).add(5)]
PUSH 24 input[i.mul(6).add(5)]
PUSH 0 input[i.mul(6).add(5)]
REVERT input[i.mul(6).add(5)]
tag 203 input[i.mul(6).add(5)]
JUMPDEST input[i.mul(6).add(5)]
PUSH 20 input[i.mul(6).add(5)]
MUL input[i.mul(6).add(5)]
PUSH 20 input[i.mul(6).add(5)]
ADD input[i.mul(6).add(5)]
ADD input[i.mul(6).add(5)]
DUP2 input[i.mul(6).add(5)] = p2[i]...
DUP2 input[i.mul(6).add(5)] = p2[i]...
MSTORE input[i.mul(6).add(5)] = p2[i]...
POP input[i.mul(6).add(5)] = p2[i]...
POP input[i.mul(6).add(5)] = p2[i]...
PUSH [tag] 204 i.inc()
DUP2 i
PUSH [tag] 32 i.inc
JUMP [in] i.inc()
tag 204 i.inc()
JUMPDEST i.inc()
SWAP1 i = i.inc()
POP i = i.inc()
PUSH [tag] 173 for (uint i = 0; i < elements;...
JUMP for (uint i = 0; i < elements;...
tag 174 for (uint i = 0; i < elements;...
JUMPDEST for (uint i = 0; i < elements;...
POP for (uint i = 0; i < elements;...
PUSH [tag] 205 uint[1] memory out
PUSH [tag] 206 uint[1] memory out
JUMP [in] uint[1] memory out
tag 205 uint[1] memory out
JUMPDEST uint[1] memory out
PUSH 0 bool success
PUSH 20 0x20
DUP3 out
PUSH 20 0x20
DUP7 inputSize
MUL mul(inputSize, 0x20)
PUSH 20 0x20
DUP7 input
ADD add(input, 0x20)
PUSH 8 8
PUSH 7D0 2000
GAS gas()
SUB sub(gas(), 2000)
STATICCALL staticcall(sub(gas(), 2000), 8...
SWAP1 success := staticcall(sub(gas(...
POP success := staticcall(sub(gas(...
DUP1 success
PUSH 0 0
DUP2 case 0 { invalid() }
EQ case 0 { invalid() }
PUSH [tag] 208 case 0 { invalid() }
JUMPI case 0 { invalid() }
PUSH [tag] 207 switch success case 0 { invali...
JUMP switch success case 0 { invali...
tag 208 case 0 { invalid() }
JUMPDEST case 0 { invalid() }
INVALID invalid()
tag 207 switch success case 0 { invali...
JUMPDEST switch success case 0 { invali...
POP switch success case 0 { invali...
DUP1 success
PUSH [tag] 209 require(success)
JUMPI require(success)
PUSH 0 require(success)
DUP1 require(success)
REVERT require(success)
tag 209 require(success)
JUMPDEST require(success)
PUSH 0 0
DUP3 out
PUSH 0 0
PUSH 1 out[0]
DUP2 out[0]
LT out[0]
PUSH [tag] 210 out[0]
JUMPI out[0]
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 out[0]
PUSH 0 out[0]
MSTORE out[0]
PUSH 32 out[0]
PUSH 4 out[0]
MSTORE out[0]
PUSH 24 out[0]
PUSH 0 out[0]
REVERT out[0]
tag 210 out[0]
JUMPDEST out[0]
PUSH 20 out[0]
MUL out[0]
ADD out[0]
MLOAD out[0]
EQ out[0] != 0
ISZERO out[0] != 0
SWAP6 return out[0] != 0
POP return out[0] != 0
POP return out[0] != 0
POP return out[0] != 0
POP return out[0] != 0
POP return out[0] != 0
POP return out[0] != 0
SWAP3 function pairing(G1Point[] mem...
SWAP2 function pairing(G1Point[] mem...
POP function pairing(G1Point[] mem...
POP function pairing(G1Point[] mem...
JUMP [out] function pairing(G1Point[] mem...
tag 170 function mul(uint a, uint b) i...
JUMPDEST function mul(uint a, uint b) i...
PUSH 0 uint c
DUP2 b
DUP4 a
MUL a * b
SWAP1 c = a * b
POP c = a * b
SWAP3 function mul(uint a, uint b) i...
SWAP2 function mul(uint a, uint b) i...
POP function mul(uint a, uint b) i...
POP function mul(uint a, uint b) i...
JUMP [out] function mul(uint a, uint b) i...
tag 11
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 60
ADD
PUSH 40
MSTORE
DUP1
PUSH [tag] 212
PUSH [tag] 80
JUMP [in]
tag 212
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 213
PUSH [tag] 115
JUMP [in]
tag 213
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 214
PUSH [tag] 80
JUMP [in]
tag 214
JUMPDEST
DUP2
MSTORE
POP
SWAP1
JUMP [out]
tag 74
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH C0
ADD
PUSH 40
MSTORE
DUP1
PUSH [tag] 215
PUSH [tag] 115
JUMP [in]
tag 215
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 216
PUSH [tag] 80
JUMP [in]
tag 216
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 217
PUSH [tag] 115
JUMP [in]
tag 217
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 218
PUSH [tag] 80
JUMP [in]
tag 218
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 219
PUSH [tag] 115
JUMP [in]
tag 219
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH 60
DUP2
MSTORE
POP
SWAP1
JUMP [out]
tag 80
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 40
ADD
PUSH 40
MSTORE
DUP1
PUSH 0
DUP2
MSTORE
PUSH 20
ADD
PUSH 0
DUP2
MSTORE
POP
SWAP1
JUMP [out]
tag 88
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 60
ADD
PUSH 40
MSTORE
DUP1
PUSH 3
SWAP1
PUSH 20
DUP3
MUL
DUP1
CALLDATASIZE
DUP4
CALLDATACOPY
DUP1
DUP3
ADD
SWAP2
POP
POP
SWAP1
POP
POP
SWAP1
JUMP [out]
tag 98
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 80
ADD
PUSH 40
MSTORE
DUP1
PUSH 4
SWAP1
PUSH 20
DUP3
MUL
DUP1
CALLDATASIZE
DUP4
CALLDATACOPY
DUP1
DUP3
ADD
SWAP2
POP
POP
SWAP1
POP
POP
SWAP1
JUMP [out]
tag 115
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 40
ADD
PUSH 40
MSTORE
DUP1
PUSH [tag] 220
PUSH [tag] 221
JUMP [in]
tag 220
JUMPDEST
DUP2
MSTORE
PUSH 20
ADD
PUSH [tag] 222
PUSH [tag] 221
JUMP [in]
tag 222
JUMPDEST
DUP2
MSTORE
POP
SWAP1
JUMP [out]
tag 206
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 20
ADD
PUSH 40
MSTORE
DUP1
PUSH 1
SWAP1
PUSH 20
DUP3
MUL
DUP1
CALLDATASIZE
DUP4
CALLDATACOPY
DUP1
DUP3
ADD
SWAP2
POP
POP
SWAP1
POP
POP
SWAP1
JUMP [out]
tag 221
JUMPDEST
PUSH 40
MLOAD
DUP1
PUSH 40
ADD
PUSH 40
MSTORE
DUP1
PUSH 2
SWAP1
PUSH 20
DUP3
MUL
DUP1
CALLDATASIZE
DUP4
CALLDATACOPY
DUP1
DUP3
ADD
SWAP2
POP
POP
SWAP1
POP
POP
SWAP1
JUMP [out]
tag 224 -License-Identifier: LGPL-3.0-...
JUMPDEST -License-Identifier: LGPL-3.0-...
PUSH 0 -License-Identifier: LGPL-3.0-...
DUP2 \n//pr
SWAP1 3 Licensed\n\n//pr
POP 3 Licensed\n\n//pr
SWAP2 le is LGPL3 Licensed\n\n//prag...
SWAP1 le is LGPL3 Licensed\n\n//prag...
POP le is LGPL3 Licensed\n\n//prag...
JUMP [out] le is LGPL3 Licensed\n\n//prag...
tag 112 y ^0.8.0;\npragma abicoder v1;...
JUMPDEST y ^0.8.0;\npragma abicoder v1;...
PUSH 0 y ^0.8.0;\npragma abicoder v1;...
PUSH [tag] 227 {\n function add(
DUP3 d
PUSH [tag] 224 {\n function add(
JUMP [in] {\n function add(
tag 227 {\n function add(
JUMPDEST {\n function add(
SWAP2 eMath {\n function add(
POP eMath {\n function add(
PUSH [tag] 228 ) internal pure retu
DUP4 t
PUSH [tag] 224 ) internal pure retu
JUMP [in] ) internal pure retu
tag 228 ) internal pure retu
JUMPDEST ) internal pure retu
SWAP3 int b) internal pure retu
POP int b) internal pure retu
DUP3
PUSH [tag] 229 c
JUMPI c
PUSH [tag] 230 unchecked { c = a
PUSH [tag] 231 unchecked { c = a
JUMP [in] unchecked { c = a
tag 230 unchecked { c = a
JUMPDEST unchecked { c = a
tag 229 c
JUMPDEST c
DUP3 i
DUP3 n
MOD functio
SWAP1 }\n\n functio
POP }\n\n functio
SWAP3 rary UnsafeMath {\n functio...
SWAP2 rary UnsafeMath {\n functio...
POP rary UnsafeMath {\n functio...
POP rary UnsafeMath {\n functio...
JUMP [out] rary UnsafeMath {\n functio...
tag 231 ) internal pure returns (uint ...
JUMPDEST ) internal pure returns (uint ...
PUSH 4E487B7100000000000000000000000000000000000000000000000000000000 n add(a, 1);\n }\n\n fun...
PUSH 0 t
MSTORE return add(a, 1);\n }\...
PUSH 12 heck
PUSH 4 u
MSTORE unchecke
PUSH 24 }\n
PUSH 0 \n
REVERT - b; }\n }\n\n
.data
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment