TW
Tripwire
Find contracts. Test them. Review real vulns.

Analysis Run

b3a1ceb2-01ee-4bdb-a95e-7486ad0194a2

complete
Chain ID
1
Address
Block Number
Created
Tue, Dec 30, 2025 1:54 AM
Review Summary

What survived the funnel

Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?

Confirmed
0
Validated
0
Source
Bytecode only
Review Backing
Present
Best current signal
Authorization based on tx.origin
crit 0 high 0 direct contract
Review Checklist
1. Read the findings table first. Ignore raw jobs until the result looks real.
2. Confirm attacker control, not just the existence of a sink.
3. Confirm money or privilege impact.
4. Keep it if the behavior is real. Kill it if this is normal proxy, admin, or upgrade plumbing.

Processing Jobs

Status & attempts
ID Type Status Attempts Heartbeat
30653 report.consolidate complete 1 / 1 3 months ago
74914 artifact.fetch complete 1 / 3 1 week ago
74915 tool.cast_disasm complete 1 / 3 1 week ago
74916 analysis.bundle complete 1 / 3 1 week ago
74917 capability.graph complete 1 / 3 1 week ago
74918 detector.run complete 1 / 3 1 week ago
74919 validation.fork complete 1 / 3 1 week ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no
Implementation:
Verified Source: no

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
1
No findings?
no
Summary
Identified a tx.origin-based authorization check in the runtime bytecode, which can be bypassed via phishing through a malicious contract.
View stderr
[codex:578800] OpenAI Codex v0.77.0 (research preview)
[codex:578800] --------
[codex:578800] workdir: /tmp/codex-multi-impca108
[codex:578800] model: gpt-5.2-codex
[codex:578800] provider: openai
[codex:578800] approval: never
[codex:578800] sandbox: read-only
[codex:578800] reasoning effort: xhigh
[codex:578800] reasoning summaries: auto
[codex:578800] session id: 019b6cf5-891a-7130-b490-8597bebb9443
[codex:578800] --------
[codex:578800] user
[codex:578800] You are a security auditor. You are given EVM runtime bytecode (and possibly a disassembly) for a contract with NO verified source.
[codex:578800] This is best-effort. Do not hallucinate: only flag issues when there's a concrete, explainable angle from bytecode/disasm patterns.
[codex:578800] 
[codex:578800] You MUST read the full `BYTECODE_BUNDLE.txt` before concluding.
[codex:578800] 
[codex:578800] Output MUST be valid JSON matching the provided schema.
[codex:578800] - If you cannot identify a concrete issue from bytecode/disasm alone: set no_findings=true and findings=[].
[codex:578800] - Otherwise: include findings with severity/category/title/evidence and point locations to BYTECODE_BUNDLE.txt line ranges when possible.
[codex:578800] 
[codex:578800] Output constraints (IMPORTANT):
[codex:578800] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:578800] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:578800] mcp startup: no servers
[codex:578800] 
[codex:578800] thinking
[codex:578800] **Preparing to read BYTECODE_BUNDLE.txt**
[codex:578800] exec
[codex:578800] /bin/bash -lc ls in /tmp/codex-multi-impca108 succeeded in 5ms:
[codex:578800] BYTECODE_BUNDLE.txt
[codex:578800] codex-output-schema.json
[codex:578800] exec
[codex:578800] /bin/bash -lc 'cat BYTECODE_BUNDLE.txt' in /tmp/codex-multi-impca108 succeeded in 6ms:
[codex:578800] Runtime bytecode bundle for best-effort auditing.
[codex:578800] Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:578800] 
[codex:578800] FILE: runtime_bytecode.hex
[codex:578800] 0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630d4794e2146100515780632ea3932514610066578063b8a2ad7514610079578063daddcc931461008c575b600080fd5b61006461005f366004610bba565b61009f565b005b610064610074366004610c33565b6101c3565b610064610087366004610bea565b61060b565b61006461009a366004610a5a565b61092b565b6000546001600160a01b031633146100b657600080fd5b6005546006546040516370a0823160e01b81526001600160a01b03928316926338ed17399216906370a08231906100f1903090600401610c8b565b60206040518083038186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610bd2565b8360083042603c016040518663ffffffff1660e01b8152600401610169959493929190610d7e565b600060405180830381600087803b15801561018357600080fd5b505af1158015610197573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101bf9190810190610ae9565b5050565b6000546001600160a01b031632146101da57600080fd5b6001831515141561035957600254604051635320bf6b60e11b81526001600160a01b039091169063a6417ed690610229906000906001908a9068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b50506007546040516370a0823160e01b8152600093506001600160a01b0390911691506370a082319061028e903090600401610c8b565b60206040518083038186803b1580156102a657600080fd5b505afa1580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de9190610bd2565b60038054604051635320bf6b60e11b81529293506001600160a01b03169163a6417ed69161032191600090869068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b15801561033b57600080fd5b505af115801561034f573d6000803e3d6000fd5b50505050506104c9565b60038054604051635320bf6b60e11b81526001600160a01b039091169163a6417ed69161039b916000918a9068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b50506007546040516370a0823160e01b8152600093506001600160a01b0390911691506370a0823190610400903090600401610c8b565b60206040518083038186803b15801561041857600080fd5b505afa15801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190610bd2565b600254604051635320bf6b60e11b81529192506001600160a01b03169063a6417ed69061049590600190600090869068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b1580156104af57600080fd5b505af11580156104c3573d6000803e3d6000fd5b50505050505b6006546040516370a0823160e01b81526000916001600160a01b0316906370a08231906104fa903090600401610c8b565b60206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190610bd2565b90508486018110156105775760405162461bcd60e51b815260040161056e90610d63565b60405180910390fd5b60065460015460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926105b09291169060028b0190600401610c9f565b602060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106029190610b97565b50505050505050565b6000546001600160a01b0316321461062257600080fd5b60005a905060008060018515151415610747576002546040516307211ef760e01b81526001600160a01b03909116906307211ef79061066b906000906001908c90600401610d22565b60206040518083038186803b15801561068357600080fd5b505afa158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb9190610bd2565b600380546040516307211ef760e01b81529294506001600160a01b0316916307211ef7916106f0916000908790600401610d22565b60206040518083038186803b15801561070857600080fd5b505afa15801561071c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107409190610bd2565b9050610855565b600380546040516307211ef760e01b81526001600160a01b03909116916307211ef79161077b916000918c90600401610d22565b60206040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb9190610bd2565b6002546040516307211ef760e01b81529193506001600160a01b0316906307211ef790610802906001906000908790600401610d22565b60206040518083038186803b15801561081a57600080fd5b505afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190610bd2565b90505b858701811115610917576001546006546040516001600160a01b0392831692636e2246a79216908a90632ea3932560e01b9061089d9083908d908d908b908b90602401610df1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b90921682526108e4939291600401610cb8565b600060405180830381600087803b1580156108fe57600080fd5b505af1158015610912573d6000803e3d6000fd5b505050505b60018415151415610602576106028361099a565b6000546001600160a01b0316331461094257600080fd5b836001600160a01b031683838360405161095d929190610c7b565b60006040518083038185875af1925050503d8060008114610602576040519150601f19603f3d011682016040523d82523d6000602084013e610602565b60005a905061a0aa81830361374a010460006175308310610a545750611b6c616c3d19840104808211156109cc578091505b6004805460005460405163079d229f60e01b81526001600160a01b039283169363079d229f93610a00931691879101610c9f565b602060405180830381600087803b158015610a1a57600080fd5b505af1158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190610bd2565b505b50505050565b60008060008060608587031215610a6f578384fd5b84356001600160a01b0381168114610a85578485fd5b935060208501359250604085013567ffffffffffffffff80821115610aa8578384fd5b818701915087601f830112610abb578384fd5b813581811115610ac9578485fd5b886020828501011115610ada578485fd5b95989497505060200194505050565b60006020808385031215610afb578182fd5b825167ffffffffffffffff80821115610b12578384fd5b818501915085601f830112610b25578384fd5b815181811115610b3157fe5b83810260405185828201018181108582111715610b4a57fe5b604052828152858101935084860182860187018a1015610b68578788fd5b8795505b83861015610b8a578051855260019590950194938601938601610b6c565b5098975050505050505050565b600060208284031215610ba8578081fd5b8151610bb381610e14565b9392505050565b600060208284031215610bcb578081fd5b5035919050565b600060208284031215610be3578081fd5b5051919050565b60008060008060808587031215610bff578384fd5b84359350602085013592506040850135610c1881610e14565b91506060850135610c2881610e14565b939692955090935050565b600080600080600060a08688031215610c4a578081fd5b85359450602086013593506040860135610c6381610e14565b94979396509394606081013594506080013592915050565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b81811015610cf957858101830151858201608001528201610cdd565b81811115610d0a5783608083870101525b50601f01601f19169290920160800195945050505050565b600f93840b81529190920b6020820152604081019190915260600190565b600f94850b81529290930b60208301526040820152606081019190915260800190565b6020808252600190820152602360f81b604082015260600190565b600060a082018783526020878185015260a0604085015281875480845260c0860191508885528285209350845b81811015610dd05784546001600160a01b031683526001948501949284019201610dab565b50506001600160a01b03969096166060850152505050608001529392505050565b948552602085019390935290151560408401526060830152608082015260a00190565b8015158114610e2257600080fd5b5056fea26469706673582212207ec132f9e87265f89fa1d5d9b7df69153296ba78c9d31a96c5580651e02092b764736f6c63430007060033
[codex:578800] 
[codex:578800] thinking
[codex:578800] **Analyzing bytecode for vulnerabilities**
[codex:578800] exec
[codex:578800] /bin/bash -lc 'nl -ba BYTECODE_BUNDLE.txt' in /tmp/codex-multi-impca108 succeeded in 5ms:
[codex:578800]      1	Runtime bytecode bundle for best-effort auditing.
[codex:578800]      2	Note: without verified source, conclusions are low-confidence unless a concrete pattern is visible.
[codex:578800]      3	
[codex:578800]      4	FILE: runtime_bytecode.hex
[codex:578800]      5	0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630d4794e2146100515780632ea3932514610066578063b8a2ad7514610079578063daddcc931461008c575b600080fd5b61006461005f366004610bba565b61009f565b005b610064610074366004610c33565b6101c3565b610064610087366004610bea565b61060b565b61006461009a366004610a5a565b61092b565b6000546001600160a01b031633146100b657600080fd5b6005546006546040516370a0823160e01b81526001600160a01b03928316926338ed17399216906370a08231906100f1903090600401610c8b565b60206040518083038186803b15801561010957600080fd5b505afa15801561011d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101419190610bd2565b8360083042603c016040518663ffffffff1660e01b8152600401610169959493929190610d7e565b600060405180830381600087803b15801561018357600080fd5b505af1158015610197573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526101bf9190810190610ae9565b5050565b6000546001600160a01b031632146101da57600080fd5b6001831515141561035957600254604051635320bf6b60e11b81526001600160a01b039091169063a6417ed690610229906000906001908a9068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b15801561024357600080fd5b505af1158015610257573d6000803e3d6000fd5b50506007546040516370a0823160e01b8152600093506001600160a01b0390911691506370a082319061028e903090600401610c8b565b60206040518083038186803b1580156102a657600080fd5b505afa1580156102ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102de9190610bd2565b60038054604051635320bf6b60e11b81529293506001600160a01b03169163a6417ed69161032191600090869068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b15801561033b57600080fd5b505af115801561034f573d6000803e3d6000fd5b50505050506104c9565b60038054604051635320bf6b60e11b81526001600160a01b039091169163a6417ed69161039b916000918a9068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b1580156103b557600080fd5b505af11580156103c9573d6000803e3d6000fd5b50506007546040516370a0823160e01b8152600093506001600160a01b0390911691506370a0823190610400903090600401610c8b565b60206040518083038186803b15801561041857600080fd5b505afa15801561042c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104509190610bd2565b600254604051635320bf6b60e11b81529192506001600160a01b03169063a6417ed69061049590600190600090869068056bc75e2d630fffff19890190600401610d40565b600060405180830381600087803b1580156104af57600080fd5b505af11580156104c3573d6000803e3d6000fd5b50505050505b6006546040516370a0823160e01b81526000916001600160a01b0316906370a08231906104fa903090600401610c8b565b60206040518083038186803b15801561051257600080fd5b505afa158015610526573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061054a9190610bd2565b90508486018110156105775760405162461bcd60e51b815260040161056e90610d63565b60405180910390fd5b60065460015460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926105b09291169060028b0190600401610c9f565b602060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106029190610b97565b50505050505050565b6000546001600160a01b0316321461062257600080fd5b60005a905060008060018515151415610747576002546040516307211ef760e01b81526001600160a01b03909116906307211ef79061066b906000906001908c90600401610d22565b60206040518083038186803b15801561068357600080fd5b505afa158015610697573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bb9190610bd2565b600380546040516307211ef760e01b81529294506001600160a01b0316916307211ef7916106f0916000908790600401610d22565b60206040518083038186803b15801561070857600080fd5b505afa15801561071c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107409190610bd2565b9050610855565b600380546040516307211ef760e01b81526001600160a01b03909116916307211ef79161077b916000918c90600401610d22565b60206040518083038186803b15801561079357600080fd5b505afa1580156107a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107cb9190610bd2565b6002546040516307211ef760e01b81529193506001600160a01b0316906307211ef790610802906001906000908790600401610d22565b60206040518083038186803b15801561081a57600080fd5b505afa15801561082e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108529190610bd2565b90505b858701811115610917576001546006546040516001600160a01b0392831692636e2246a79216908a90632ea3932560e01b9061089d9083908d908d908b908b90602401610df1565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199485161790525160e086901b90921682526108e4939291600401610cb8565b600060405180830381600087803b1580156108fe57600080fd5b505af1158015610912573d6000803e3d6000fd5b505050505b60018415151415610602576106028361099a565b6000546001600160a01b0316331461094257600080fd5b836001600160a01b031683838360405161095d929190610c7b565b60006040518083038185875af1925050503d8060008114610602576040519150601f19603f3d011682016040523d82523d6000602084013e610602565b60005a905061a0aa81830361374a010460006175308310610a545750611b6c616c3d19840104808211156109cc578091505b6004805460005460405163079d229f60e01b81526001600160a01b039283169363079d229f93610a00931691879101610c9f565b602060405180830381600087803b158015610a1a57600080fd5b505af1158015610a2e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a529190610bd2565b505b50505050565b60008060008060608587031215610a6f578384fd5b84356001600160a01b0381168114610a85578485fd5b935060208501359250604085013567ffffffffffffffff80821115610aa8578384fd5b818701915087601f830112610abb578384fd5b813581811115610ac9578485fd5b886020828501011115610ada578485fd5b95989497505060200194505050565b60006020808385031215610afb578182fd5b825167ffffffffffffffff80821115610b12578384fd5b818501915085601f830112610b25578384fd5b815181811115610b3157fe5b83810260405185828201018181108582111715610b4a57fe5b604052828152858101935084860182860187018a1015610b68578788fd5b8795505b83861015610b8a578051855260019590950194938601938601610b6c565b5098975050505050505050565b600060208284031215610ba8578081fd5b8151610bb381610e14565b9392505050565b600060208284031215610bcb578081fd5b5035919050565b600060208284031215610be3578081fd5b5051919050565b60008060008060808587031215610bff578384fd5b84359350602085013592506040850135610c1881610e14565b91506060850135610c2881610e14565b939692955090935050565b600080600080600060a08688031215610c4a578081fd5b85359450602086013593506040860135610c6381610e14565b94979396509394606081013594506080013592915050565b6000828483379101908152919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b81811015610cf957858101830151858201608001528201610cdd565b81811115610d0a5783608083870101525b50601f01601f19169290920160800195945050505050565b600f93840b81529190920b6020820152604081019190915260600190565b600f94850b81529290930b60208301526040820152606081019190915260800190565b6020808252600190820152602360f81b604082015260600190565b600060a082018783526020878185015260a0604085015281875480845260c0860191508885528285209350845b81811015610dd05784546001600160a01b031683526001948501949284019201610dab565b50506001600160a01b03969096166060850152505050608001529392505050565b948552602085019390935290151560408401526060830152608082015260a00190565b8015158114610e2257600080fd5b5056fea26469706673582212207ec132f9e87265f89fa1d5d9b7df69153296ba78c9d31a96c5580651e02092b764736f6c63430007060033
[codex:578800] 
[codex:578800] thinking
[codex:578800] **Identifying tx.origin vulnerability in bytecode**
[codex:578800] 
[codex:578800] I’m analyzing the bytecode around line 5 in BYTECODE_BUNDLE.txt to confirm that an authorization check relies on `tx.origin` instead of `msg.sender`. The opcode sequence clearly does an `AND` with `ORIGIN` and compares it to an owner value, which poses a known security risk by allowing malicious contracts to trick the owner into unauthorized calls. I plan to report this as a medium severity access control issue, with evidence grounded in the exact bytecode snippet and explain the exploit scenario along with a clear recommendation.
[codex:578800] codex
[codex:578800] {"no_findings":false,"summary":"Identified a tx.origin-based authorization check in the runtime bytecode, which can be bypassed via phishing through a malicious contract.","findings":[{"severity":"medium","category":"access_control","title":"Authorization uses tx.origin instead of msg.sender","exploit_scenario":"An attacker deploys a malicious contract and tricks the privileged EOA into calling it. The malicious contract then calls the protected function in this contract; because the check uses tx.origin, the call passes even though msg.sender is the attacker contract, enabling unauthorized execution of privileged logic.","recommendation":"Replace tx.origin checks with msg.sender for access control. If already deployed, consider gating via additional checks (e.g., msg.sender allowlist) or migrating to a fixed contract.","evidence":"Opcode sequence includes `...6000546001600160a01b03163214...` which compares the masked owner (slot 0) against ORIGIN (opcode 0x32), indicating a tx.origin-based authorization check.","locations":["BYTECODE_BUNDLE.txt:5"]}]}
[codex:578800] tokens used
[codex:578800] 15,099
[codex:578800] {"no_findings":false,"summary":"Identified a tx.origin-based authorization check in the runtime bytecode, which can be bypassed via phishing through a malicious contract.","findings":[{"severity":"medium","category":"access_control","title":"Authorization uses tx.origin instead of msg.sender","exploit_scenario":"An attacker deploys a malicious contract and tricks the privileged EOA into calling it. The malicious contract then calls the protected function in this contract; because the check uses tx.origin, the call passes even though msg.sender is the attacker contract, enabling unauthorized execution of privileged logic.","recommendation":"Replace tx.origin checks with msg.sender for access control. If already deployed, consider gating via additional checks (e.g., msg.sender allowlist) or migrating to a fixed contract.","evidence":"Opcode sequence includes `...6000546001600160a01b03163214...` which compares the masked owner (slot 0) against ORIGIN (opcode 0x32), indicating a tx.origin-based authorization check.","locations":["BYTECODE_BUNDLE.txt:5"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-30T01:54:26.906757+00:00",
        "returncode": 0
    },
    "summary": "Identified a tx.origin-based authorization check in the runtime bytecode, which can be bypassed via phishing through a malicious contract.",
    "raw_final": {
        "summary": "Identified a tx.origin-based authorization check in the runtime bytecode, which can be bypassed via phishing through a malicious contract.",
        "findings": [
            {
                "title": "Authorization uses tx.origin instead of msg.sender",
                "category": "access_control",
                "evidence": "Opcode sequence includes `...6000546001600160a01b03163214...` which compares the masked owner (slot 0) against ORIGIN (opcode 0x32), indicating a tx.origin-based authorization check.",
                "severity": "medium",
                "locations": [
                    "BYTECODE_BUNDLE.txt:5"
                ],
                "recommendation": "Replace tx.origin checks with msg.sender for access control. If already deployed, consider gating via additional checks (e.g., msg.sender allowlist) or migrating to a fixed contract.",
                "exploit_scenario": "An attacker deploys a malicious contract and tricks the privileged EOA into calling it. The malicious contract then calls the protected function in this contract; because the check uses tx.origin, the call passes even though msg.sender is the attacker contract, enabling unauthorized execution of privileged logic."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
17
EXT*/BALANCE
16
Total opcodes
2674
Flags
heavy_ext_balance_usage call_family_heavy
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: CALLVALUE
00000006: DUP1
00000007: ISZERO
00000008: PUSH2 0x0010
0000000b: JUMPI
0000000c: PUSH1 0x00
0000000e: DUP1
0000000f: REVERT
00000010: JUMPDEST
00000011: POP
00000012: PUSH1 0x04
00000014: CALLDATASIZE
00000015: LT
00000016: PUSH2 0x004c
00000019: JUMPI
0000001a: PUSH1 0x00
0000001c: CALLDATALOAD
0000001d: PUSH1 0xe0
0000001f: SHR
00000020: DUP1
00000021: PUSH4 0x0d4794e2
00000026: EQ
00000027: PUSH2 0x0051
0000002a: JUMPI
0000002b: DUP1
0000002c: PUSH4 0x2ea39325
00000031: EQ
00000032: PUSH2 0x0066
00000035: JUMPI
00000036: DUP1
00000037: PUSH4 0xb8a2ad75
0000003c: EQ
0000003d: PUSH2 0x0079
00000040: JUMPI
00000041: DUP1
00000042: PUSH4 0xdaddcc93
00000047: EQ
00000048: PUSH2 0x008c
0000004b: JUMPI
0000004c: JUMPDEST
0000004d: PUSH1 0x00
0000004f: DUP1
00000050: REVERT
00000051: JUMPDEST
00000052: PUSH2 0x0064
00000055: PUSH2 0x005f
00000058: CALLDATASIZE
00000059: PUSH1 0x04
0000005b: PUSH2 0x0bba
0000005e: JUMP
0000005f: JUMPDEST
00000060: PUSH2 0x009f
00000063: JUMP
00000064: JUMPDEST
00000065: STOP
00000066: JUMPDEST
00000067: PUSH2 0x0064
0000006a: PUSH2 0x0074
0000006d: CALLDATASIZE
0000006e: PUSH1 0x04
00000070: PUSH2 0x0c33
00000073: JUMP
00000074: JUMPDEST
00000075: PUSH2 0x01c3
00000078: JUMP
00000079: JUMPDEST
0000007a: PUSH2 0x0064
0000007d: PUSH2 0x0087
00000080: CALLDATASIZE
00000081: PUSH1 0x04
00000083: PUSH2 0x0bea
00000086: JUMP
00000087: JUMPDEST
00000088: PUSH2 0x060b
0000008b: JUMP
0000008c: JUMPDEST
0000008d: PUSH2 0x0064
00000090: PUSH2 0x009a
00000093: CALLDATASIZE
00000094: PUSH1 0x04
00000096: PUSH2 0x0a5a
00000099: JUMP
0000009a: JUMPDEST
0000009b: PUSH2 0x092b
0000009e: JUMP
0000009f: JUMPDEST
000000a0: PUSH1 0x00
000000a2: SLOAD
000000a3: PUSH1 0x01
000000a5: PUSH1 0x01
000000a7: PUSH1 0xa0
000000a9: SHL
000000aa: SUB
000000ab: AND
000000ac: CALLER
000000ad: EQ
000000ae: PUSH2 0x00b6
000000b1: JUMPI
000000b2: PUSH1 0x00
000000b4: DUP1
000000b5: REVERT
000000b6: JUMPDEST
000000b7: PUSH1 0x05
000000b9: SLOAD
000000ba: PUSH1 0x06
000000bc: SLOAD
000000bd: PUSH1 0x40
000000bf: MLOAD
000000c0: PUSH4 0x70a08231
000000c5: PUSH1 0xe0
000000c7: SHL
000000c8: DUP2
000000c9: MSTORE
000000ca: PUSH1 0x01
000000cc: PUSH1 0x01
000000ce: PUSH1 0xa0
000000d0: SHL
000000d1: SUB
000000d2: SWAP3
000000d3: DUP4
000000d4: AND
000000d5: SWAP3
000000d6: PUSH4 0x38ed1739
000000db: SWAP3
000000dc: AND
000000dd: SWAP1
000000de: PUSH4 0x70a08231
000000e3: SWAP1
000000e4: PUSH2 0x00f1
000000e7: SWAP1
000000e8: ADDRESS
000000e9: SWAP1
000000ea: PUSH1 0x04
000000ec: ADD
000000ed: PUSH2 0x0c8b
000000f0: JUMP
000000f1: JUMPDEST
000000f2: PUSH1 0x20
000000f4: PUSH1 0x40
000000f6: MLOAD
000000f7: DUP1
000000f8: DUP4
000000f9: SUB
000000fa: DUP2
000000fb: DUP7
000000fc: DUP1
000000fd: EXTCODESIZE
000000fe: ISZERO
000000ff: DUP1
00000100: ISZERO
00000101: PUSH2 0x0109
00000104: JUMPI
00000105: PUSH1 0x00
00000107: DUP1
00000108: REVERT
00000109: JUMPDEST
0000010a: POP
0000010b: GAS
0000010c: STATICCALL
0000010d: ISZERO
0000010e: DUP1
0000010f: ISZERO
00000110: PUSH2 0x011d
00000113: JUMPI
00000114: RETURNDATASIZE
00000115: PUSH1 0x00
00000117: DUP1
00000118: RETURNDATACOPY
00000119: RETURNDATASIZE
0000011a: PUSH1 0x00
0000011c: REVERT
0000011d: JUMPDEST
0000011e: POP
0000011f: POP
00000120: POP
00000121: POP
00000122: PUSH1 0x40
00000124: MLOAD
00000125: RETURNDATASIZE
00000126: PUSH1 0x1f
00000128: NOT
00000129: PUSH1 0x1f
0000012b: DUP3
0000012c: ADD
0000012d: AND
0000012e: DUP3
0000012f: ADD
00000130: DUP1
00000131: PUSH1 0x40
00000133: MSTORE
00000134: POP
00000135: DUP2
00000136: ADD
00000137: SWAP1
00000138: PUSH2 0x0141
0000013b: SWAP2
0000013c: SWAP1
0000013d: PUSH2 0x0bd2
00000140: JUMP
00000141: JUMPDEST
00000142: DUP4
00000143: PUSH1 0x08
00000145: ADDRESS
00000146: TIMESTAMP
00000147: PUSH1 0x3c
00000149: ADD
0000014a: PUSH1 0x40
0000014c: MLOAD
0000014d: DUP7
0000014e: PUSH4 0xffffffff
00000153: AND
00000154: PUSH1 0xe0
00000156: SHL
00000157: DUP2
00000158: MSTORE
00000159: PUSH1 0x04
0000015b: ADD
0000015c: PUSH2 0x0169
0000015f: SWAP6
00000160: SWAP5
00000161: SWAP4
00000162: SWAP3
00000163: SWAP2
00000164: SWAP1
00000165: PUSH2 0x0d7e
00000168: JUMP
00000169: JUMPDEST
0000016a: PUSH1 0x00
0000016c: PUSH1 0x40
0000016e: MLOAD
0000016f: DUP1
00000170: DUP4
00000171: SUB
00000172: DUP2
00000173: PUSH1 0x00
00000175: DUP8
00000176: DUP1
00000177: EXTCODESIZE
00000178: ISZERO
00000179: DUP1
0000017a: ISZERO
0000017b: PUSH2 0x0183
0000017e: JUMPI
0000017f: PUSH1 0x00
00000181: DUP1
00000182: REVERT
00000183: JUMPDEST
00000184: POP
00000185: GAS
00000186: CALL
00000187: ISZERO
00000188: DUP1
00000189: ISZERO
0000018a: PUSH2 0x0197
0000018d: JUMPI
0000018e: RETURNDATASIZE
0000018f: PUSH1 0x00
00000191: DUP1
00000192: RETURNDATACOPY
00000193: RETURNDATASIZE
00000194: PUSH1 0x00
00000196: REVERT
00000197: JUMPDEST
00000198: POP
00000199: POP
0000019a: POP
0000019b: POP
0000019c: PUSH1 0x40
0000019e: MLOAD
0000019f: RETURNDATASIZE
000001a0: PUSH1 0x00
000001a2: DUP3
000001a3: RETURNDATACOPY
000001a4: PUSH1 0x1f
000001a6: RETURNDATASIZE
000001a7: SWAP1
000001a8: DUP2
000001a9: ADD
000001aa: PUSH1 0x1f
000001ac: NOT
000001ad: AND
000001ae: DUP3
000001af: ADD
000001b0: PUSH1 0x40
000001b2: MSTORE
000001b3: PUSH2 0x01bf
000001b6: SWAP2
000001b7: SWAP1
000001b8: DUP2
000001b9: ADD
000001ba: SWAP1
000001bb: PUSH2 0x0ae9
000001be: JUMP
000001bf: JUMPDEST
000001c0: POP
000001c1: POP
000001c2: JUMP
000001c3: JUMPDEST
000001c4: PUSH1 0x00
000001c6: SLOAD
000001c7: PUSH1 0x01
000001c9: PUSH1 0x01
000001cb: PUSH1 0xa0
000001cd: SHL
000001ce: SUB
000001cf: AND
000001d0: ORIGIN
000001d1: EQ
000001d2: PUSH2 0x01da
000001d5: JUMPI
000001d6: PUSH1 0x00
000001d8: DUP1
000001d9: REVERT
000001da: JUMPDEST
000001db: PUSH1 0x01
000001dd: DUP4
000001de: ISZERO
000001df: ISZERO
000001e0: EQ
000001e1: ISZERO
000001e2: PUSH2 0x0359
000001e5: JUMPI
000001e6: PUSH1 0x02
000001e8: SLOAD
000001e9: PUSH1 0x40
000001eb: MLOAD
000001ec: PUSH4 0x5320bf6b
000001f1: PUSH1 0xe1
000001f3: SHL
000001f4: DUP2
000001f5: MSTORE
000001f6: PUSH1 0x01
000001f8: PUSH1 0x01
000001fa: PUSH1 0xa0
000001fc: SHL
000001fd: SUB
000001fe: SWAP1
000001ff: SWAP2
00000200: AND
00000201: SWAP1
00000202: PUSH4 0xa6417ed6
00000207: SWAP1
00000208: PUSH2 0x0229
0000020b: SWAP1
0000020c: PUSH1 0x00
0000020e: SWAP1
0000020f: PUSH1 0x01
00000211: SWAP1
00000212: DUP11
00000213: SWAP1
00000214: PUSH9 0x056bc75e2d630fffff
0000021e: NOT
0000021f: DUP10
00000220: ADD
00000221: SWAP1
00000222: PUSH1 0x04
00000224: ADD
00000225: PUSH2 0x0d40
00000228: JUMP
00000229: JUMPDEST
0000022a: PUSH1 0x00
0000022c: PUSH1 0x40
0000022e: MLOAD
0000022f: DUP1
00000230: DUP4
00000231: SUB
00000232: DUP2
00000233: PUSH1 0x00
00000235: DUP8
00000236: DUP1
00000237: EXTCODESIZE
00000238: ISZERO
00000239: DUP1
0000023a: ISZERO
0000023b: PUSH2 0x0243
0000023e: JUMPI
0000023f: PUSH1 0x00
00000241: DUP1
00000242: REVERT
00000243: JUMPDEST
00000244: POP
00000245: GAS
00000246: CALL
00000247: ISZERO
00000248: DUP1
00000249: ISZERO
0000024a: PUSH2 0x0257
0000024d: JUMPI
0000024e: RETURNDATASIZE
0000024f: PUSH1 0x00
00000251: DUP1
00000252: RETURNDATACOPY
00000253: RETURNDATASIZE
00000254: PUSH1 0x00
00000256: REVERT
00000257: JUMPDEST
00000258: POP
00000259: POP
0000025a: PUSH1 0x07
0000025c: SLOAD
0000025d: PUSH1 0x40
0000025f: MLOAD
00000260: PUSH4 0x70a08231
00000265: PUSH1 0xe0
00000267: SHL
00000268: DUP2
00000269: MSTORE
0000026a: PUSH1 0x00
0000026c: SWAP4
0000026d: POP
0000026e: PUSH1 0x01
00000270: PUSH1 0x01
00000272: PUSH1 0xa0
00000274: SHL
00000275: SUB
00000276: SWAP1
00000277: SWAP2
00000278: AND
00000279: SWAP2
0000027a: POP
0000027b: PUSH4 0x70a08231
00000280: SWAP1
00000281: PUSH2 0x028e
00000284: SWAP1
00000285: ADDRESS
00000286: SWAP1
00000287: PUSH1 0x04
00000289: ADD
0000028a: PUSH2 0x0c8b
0000028d: JUMP
0000028e: JUMPDEST
0000028f: PUSH1 0x20
00000291: PUSH1 0x40
00000293: MLOAD
00000294: DUP1
00000295: DUP4
00000296: SUB
00000297: DUP2
00000298: DUP7
00000299: DUP1
0000029a: EXTCODESIZE
0000029b: ISZERO
0000029c: DUP1
0000029d: ISZERO
0000029e: PUSH2 0x02a6
000002a1: JUMPI
000002a2: PUSH1 0x00
000002a4: DUP1
000002a5: REVERT
000002a6: JUMPDEST
000002a7: POP
000002a8: GAS
000002a9: STATICCALL
000002aa: ISZERO
000002ab: DUP1
000002ac: ISZERO
000002ad: PUSH2 0x02ba
000002b0: JUMPI
000002b1: RETURNDATASIZE
000002b2: PUSH1 0x00
000002b4: DUP1
000002b5: RETURNDATACOPY
000002b6: RETURNDATASIZE
000002b7: PUSH1 0x00
000002b9: REVERT
000002ba: JUMPDEST
000002bb: POP
000002bc: POP
000002bd: POP
000002be: POP
000002bf: PUSH1 0x40
000002c1: MLOAD
000002c2: RETURNDATASIZE
000002c3: PUSH1 0x1f
000002c5: NOT
000002c6: PUSH1 0x1f
000002c8: DUP3
000002c9: ADD
000002ca: AND
000002cb: DUP3
000002cc: ADD
000002cd: DUP1
000002ce: PUSH1 0x40
000002d0: MSTORE
000002d1: POP
000002d2: DUP2
000002d3: ADD
000002d4: SWAP1
000002d5: PUSH2 0x02de
000002d8: SWAP2
000002d9: SWAP1
000002da: PUSH2 0x0bd2
000002dd: JUMP
000002de: JUMPDEST
000002df: PUSH1 0x03
000002e1: DUP1
000002e2: SLOAD
000002e3: PUSH1 0x40
000002e5: MLOAD
000002e6: PUSH4 0x5320bf6b
000002eb: PUSH1 0xe1
000002ed: SHL
000002ee: DUP2
000002ef: MSTORE
000002f0: SWAP3
000002f1: SWAP4
000002f2: POP
000002f3: PUSH1 0x01
000002f5: PUSH1 0x01
000002f7: PUSH1 0xa0
000002f9: SHL
000002fa: SUB
000002fb: AND
000002fc: SWAP2
000002fd: PUSH4 0xa6417ed6
00000302: SWAP2
00000303: PUSH2 0x0321
00000306: SWAP2
00000307: PUSH1 0x00
00000309: SWAP1
0000030a: DUP7
0000030b: SWAP1
0000030c: PUSH9 0x056bc75e2d630fffff
00000316: NOT
00000317: DUP10
00000318: ADD
00000319: SWAP1
0000031a: PUSH1 0x04
0000031c: ADD
0000031d: PUSH2 0x0d40
00000320: JUMP
00000321: JUMPDEST
00000322: PUSH1 0x00
00000324: PUSH1 0x40
00000326: MLOAD
00000327: DUP1
00000328: DUP4
00000329: SUB
0000032a: DUP2
0000032b: PUSH1 0x00
0000032d: DUP8
0000032e: DUP1
0000032f: EXTCODESIZE
00000330: ISZERO
00000331: DUP1
00000332: ISZERO
00000333: PUSH2 0x033b
00000336: JUMPI
00000337: PUSH1 0x00
00000339: DUP1
0000033a: REVERT
0000033b: JUMPDEST
0000033c: POP
0000033d: GAS
0000033e: CALL
0000033f: ISZERO
00000340: DUP1
00000341: ISZERO
00000342: PUSH2 0x034f
00000345: JUMPI
00000346: RETURNDATASIZE
00000347: PUSH1 0x00
00000349: DUP1
0000034a: RETURNDATACOPY
0000034b: RETURNDATASIZE
0000034c: PUSH1 0x00
0000034e: REVERT
0000034f: JUMPDEST
00000350: POP
00000351: POP
00000352: POP
00000353: POP
00000354: POP
00000355: PUSH2 0x04c9
00000358: JUMP
00000359: JUMPDEST
0000035a: PUSH1 0x03
0000035c: DUP1
0000035d: SLOAD
0000035e: PUSH1 0x40
00000360: MLOAD
00000361: PUSH4 0x5320bf6b
00000366: PUSH1 0xe1
00000368: SHL
00000369: DUP2
0000036a: MSTORE
0000036b: PUSH1 0x01
0000036d: PUSH1 0x01
0000036f: PUSH1 0xa0
00000371: SHL
00000372: SUB
00000373: SWAP1
00000374: SWAP2
00000375: AND
00000376: SWAP2
00000377: PUSH4 0xa6417ed6
0000037c: SWAP2
0000037d: PUSH2 0x039b
00000380: SWAP2
00000381: PUSH1 0x00
00000383: SWAP2
00000384: DUP11
00000385: SWAP1
00000386: PUSH9 0x056bc75e2d630fffff
00000390: NOT
00000391: DUP10
00000392: ADD
00000393: SWAP1
00000394: PUSH1 0x04
00000396: ADD
00000397: PUSH2 0x0d40
0000039a: JUMP
0000039b: JUMPDEST
0000039c: PUSH1 0x00
0000039e: PUSH1 0x40
000003a0: MLOAD
000003a1: DUP1
000003a2: DUP4
000003a3: SUB
000003a4: DUP2
000003a5: PUSH1 0x00
000003a7: DUP8
000003a8: DUP1
000003a9: EXTCODESIZE
000003aa: ISZERO
000003ab: DUP1
000003ac: ISZERO
000003ad: PUSH2 0x03b5
000003b0: JUMPI
000003b1: PUSH1 0x00
000003b3: DUP1
000003b4: REVERT
000003b5: JUMPDEST
000003b6: POP
000003b7: GAS
000003b8: CALL
000003b9: ISZERO
000003ba: DUP1
000003bb: ISZERO
000003bc: PUSH2 0x03c9
000003bf: JUMPI
000003c0: RETURNDATASIZE
000003c1: PUSH1 0x00
000003c3: DUP1
000003c4: RETURNDATACOPY
000003c5: RETURNDATASIZE
000003c6: PUSH1 0x00
000003c8: REVERT
000003c9: JUMPDEST
000003ca: POP
000003cb: POP
000003cc: PUSH1 0x07
000003ce: SLOAD
000003cf: PUSH1 0x40
000003d1: MLOAD
000003d2: PUSH4 0x70a08231
000003d7: PUSH1 0xe0
000003d9: SHL
000003da: DUP2
000003db: MSTORE
000003dc: PUSH1 0x00
000003de: SWAP4
000003df: POP
000003e0: PUSH1 0x01
000003e2: PUSH1 0x01
000003e4: PUSH1 0xa0
000003e6: SHL
000003e7: SUB
000003e8: SWAP1
000003e9: SWAP2
000003ea: AND
000003eb: SWAP2
000003ec: POP
000003ed: PUSH4 0x70a08231
000003f2: SWAP1
000003f3: PUSH2 0x0400
000003f6: SWAP1
000003f7: ADDRESS
000003f8: SWAP1
000003f9: PUSH1 0x04
000003fb: ADD
000003fc: PUSH2 0x0c8b
000003ff: JUMP
00000400: JUMPDEST
00000401: PUSH1 0x20
00000403: PUSH1 0x40
00000405: MLOAD
00000406: DUP1
00000407: DUP4
00000408: SUB
00000409: DUP2
0000040a: DUP7
0000040b: DUP1
0000040c: EXTCODESIZE
0000040d: ISZERO
0000040e: DUP1
0000040f: ISZERO
00000410: PUSH2 0x0418
00000413: JUMPI
00000414: PUSH1 0x00
00000416: DUP1
00000417: REVERT
00000418: JUMPDEST
00000419: POP
0000041a: GAS
0000041b: STATICCALL
0000041c: ISZERO
0000041d: DUP1
0000041e: ISZERO
0000041f: PUSH2 0x042c
00000422: JUMPI
00000423: RETURNDATASIZE
00000424: PUSH1 0x00
00000426: DUP1
00000427: RETURNDATACOPY
00000428: RETURNDATASIZE
00000429: PUSH1 0x00
0000042b: REVERT
0000042c: JUMPDEST
0000042d: POP
0000042e: POP
0000042f: POP
00000430: POP
00000431: PUSH1 0x40
00000433: MLOAD
00000434: RETURNDATASIZE
00000435: PUSH1 0x1f
00000437: NOT
00000438: PUSH1 0x1f
0000043a: DUP3
0000043b: ADD
0000043c: AND
0000043d: DUP3
0000043e: ADD
0000043f: DUP1
00000440: PUSH1 0x40
00000442: MSTORE
00000443: POP
00000444: DUP2
00000445: ADD
00000446: SWAP1
00000447: PUSH2 0x0450
0000044a: SWAP2
0000044b: SWAP1
0000044c: PUSH2 0x0bd2
0000044f: JUMP
00000450: JUMPDEST
00000451: PUSH1 0x02
00000453: SLOAD
00000454: PUSH1 0x40
00000456: MLOAD
00000457: PUSH4 0x5320bf6b
0000045c: PUSH1 0xe1
0000045e: SHL
0000045f: DUP2
00000460: MSTORE
00000461: SWAP2
00000462: SWAP3
00000463: POP
00000464: PUSH1 0x01
00000466: PUSH1 0x01
00000468: PUSH1 0xa0
0000046a: SHL
0000046b: SUB
0000046c: AND
0000046d: SWAP1
0000046e: PUSH4 0xa6417ed6
00000473: SWAP1
00000474: PUSH2 0x0495
00000477: SWAP1
00000478: PUSH1 0x01
0000047a: SWAP1
0000047b: PUSH1 0x00
0000047d: SWAP1
0000047e: DUP7
0000047f: SWAP1
00000480: PUSH9 0x056bc75e2d630fffff
0000048a: NOT
0000048b: DUP10
0000048c: ADD
0000048d: SWAP1
0000048e: PUSH1 0x04
00000490: ADD
00000491: PUSH2 0x0d40
00000494: JUMP
00000495: JUMPDEST
00000496: PUSH1 0x00
00000498: PUSH1 0x40
0000049a: MLOAD
0000049b: DUP1
0000049c: DUP4
0000049d: SUB
0000049e: DUP2
0000049f: PUSH1 0x00
000004a1: DUP8
000004a2: DUP1
000004a3: EXTCODESIZE
000004a4: ISZERO
000004a5: DUP1
000004a6: ISZERO
000004a7: PUSH2 0x04af
000004aa: JUMPI
000004ab: PUSH1 0x00
000004ad: DUP1
000004ae: REVERT
000004af: JUMPDEST
000004b0: POP
000004b1: GAS
000004b2: CALL
000004b3: ISZERO
000004b4: DUP1
000004b5: ISZERO
000004b6: PUSH2 0x04c3
000004b9: JUMPI
000004ba: RETURNDATASIZE
000004bb: PUSH1 0x00
000004bd: DUP1
000004be: RETURNDATACOPY
000004bf: RETURNDATASIZE
000004c0: PUSH1 0x00
000004c2: REVERT
000004c3: JUMPDEST
000004c4: POP
000004c5: POP
000004c6: POP
000004c7: POP
000004c8: POP
000004c9: JUMPDEST
000004ca: PUSH1 0x06
000004cc: SLOAD
000004cd: PUSH1 0x40
000004cf: MLOAD
000004d0: PUSH4 0x70a08231
000004d5: PUSH1 0xe0
000004d7: SHL
000004d8: DUP2
000004d9: MSTORE
000004da: PUSH1 0x00
000004dc: SWAP2
000004dd: PUSH1 0x01
000004df: PUSH1 0x01
000004e1: PUSH1 0xa0
000004e3: SHL
000004e4: SUB
000004e5: AND
000004e6: SWAP1
000004e7: PUSH4 0x70a08231
000004ec: SWAP1
000004ed: PUSH2 0x04fa
000004f0: SWAP1
000004f1: ADDRESS
000004f2: SWAP1
000004f3: PUSH1 0x04
000004f5: ADD
000004f6: PUSH2 0x0c8b
000004f9: JUMP
000004fa: JUMPDEST
000004fb: PUSH1 0x20
000004fd: PUSH1 0x40
000004ff: MLOAD
00000500: DUP1
00000501: DUP4
00000502: SUB
00000503: DUP2
00000504: DUP7
00000505: DUP1
00000506: EXTCODESIZE
00000507: ISZERO
00000508: DUP1
00000509: ISZERO
0000050a: PUSH2 0x0512
0000050d: JUMPI
0000050e: PUSH1 0x00
00000510: DUP1
00000511: REVERT
00000512: JUMPDEST
00000513: POP
00000514: GAS
00000515: STATICCALL
00000516: ISZERO
00000517: DUP1
00000518: ISZERO
00000519: PUSH2 0x0526
0000051c: JUMPI
0000051d: RETURNDATASIZE
0000051e: PUSH1 0x00
00000520: DUP1
00000521: RETURNDATACOPY
00000522: RETURNDATASIZE
00000523: PUSH1 0x00
00000525: REVERT
00000526: JUMPDEST
00000527: POP
00000528: POP
00000529: POP
0000052a: POP
0000052b: PUSH1 0x40
0000052d: MLOAD
0000052e: RETURNDATASIZE
0000052f: PUSH1 0x1f
00000531: NOT
00000532: PUSH1 0x1f
00000534: DUP3
00000535: ADD
00000536: AND
00000537: DUP3
00000538: ADD
00000539: DUP1
0000053a: PUSH1 0x40
0000053c: MSTORE
0000053d: POP
0000053e: DUP2
0000053f: ADD
00000540: SWAP1
00000541: PUSH2 0x054a
00000544: SWAP2
00000545: SWAP1
00000546: PUSH2 0x0bd2
00000549: JUMP
0000054a: JUMPDEST
0000054b: SWAP1
0000054c: POP
0000054d: DUP5
0000054e: DUP7
0000054f: ADD
00000550: DUP2
00000551: LT
00000552: ISZERO
00000553: PUSH2 0x0577
00000556: JUMPI
00000557: PUSH1 0x40
00000559: MLOAD
0000055a: PUSH3 0x461bcd
0000055e: PUSH1 0xe5
00000560: SHL
00000561: DUP2
00000562: MSTORE
00000563: PUSH1 0x04
00000565: ADD
00000566: PUSH2 0x056e
00000569: SWAP1
0000056a: PUSH2 0x0d63
0000056d: JUMP
0000056e: JUMPDEST
0000056f: PUSH1 0x40
00000571: MLOAD
00000572: DUP1
00000573: SWAP2
00000574: SUB
00000575: SWAP1
00000576: REVERT
00000577: JUMPDEST
00000578: PUSH1 0x06
0000057a: SLOAD
0000057b: PUSH1 0x01
0000057d: SLOAD
0000057e: PUSH1 0x40
00000580: MLOAD
00000581: PUSH4 0xa9059cbb
00000586: PUSH1 0xe0
00000588: SHL
00000589: DUP2
0000058a: MSTORE
0000058b: PUSH1 0x01
0000058d: PUSH1 0x01
0000058f: PUSH1 0xa0
00000591: SHL
00000592: SUB
00000593: SWAP3
00000594: DUP4
00000595: AND
00000596: SWAP3
00000597: PUSH4 0xa9059cbb
0000059c: SWAP3
0000059d: PUSH2 0x05b0
000005a0: SWAP3
000005a1: SWAP2
000005a2: AND
000005a3: SWAP1
000005a4: PUSH1 0x02
000005a6: DUP12
000005a7: ADD
000005a8: SWAP1
000005a9: PUSH1 0x04
000005ab: ADD
000005ac: PUSH2 0x0c9f
000005af: JUMP
000005b0: JUMPDEST
000005b1: PUSH1 0x20
000005b3: PUSH1 0x40
000005b5: MLOAD
000005b6: DUP1
000005b7: DUP4
000005b8: SUB
000005b9: DUP2
000005ba: PUSH1 0x00
000005bc: DUP8
000005bd: DUP1
000005be: EXTCODESIZE
000005bf: ISZERO
000005c0: DUP1
000005c1: ISZERO
000005c2: PUSH2 0x05ca
000005c5: JUMPI
000005c6: PUSH1 0x00
000005c8: DUP1
000005c9: REVERT
000005ca: JUMPDEST
000005cb: POP
000005cc: GAS
000005cd: CALL
000005ce: ISZERO
000005cf: DUP1
000005d0: ISZERO
000005d1: PUSH2 0x05de
000005d4: JUMPI
000005d5: RETURNDATASIZE
000005d6: PUSH1 0x00
000005d8: DUP1
000005d9: RETURNDATACOPY
000005da: RETURNDATASIZE
000005db: PUSH1 0x00
000005dd: REVERT
000005de: JUMPDEST
000005df: POP
000005e0: POP
000005e1: POP
000005e2: POP
000005e3: PUSH1 0x40
000005e5: MLOAD
000005e6: RETURNDATASIZE
000005e7: PUSH1 0x1f
000005e9: NOT
000005ea: PUSH1 0x1f
000005ec: DUP3
000005ed: ADD
000005ee: AND
000005ef: DUP3
000005f0: ADD
000005f1: DUP1
000005f2: PUSH1 0x40
000005f4: MSTORE
000005f5: POP
000005f6: DUP2
000005f7: ADD
000005f8: SWAP1
000005f9: PUSH2 0x0602
000005fc: SWAP2
000005fd: SWAP1
000005fe: PUSH2 0x0b97
00000601: JUMP
00000602: JUMPDEST
00000603: POP
00000604: POP
00000605: POP
00000606: POP
00000607: POP
00000608: POP
00000609: POP
0000060a: JUMP
0000060b: JUMPDEST
0000060c: PUSH1 0x00
0000060e: SLOAD
0000060f: PUSH1 0x01
00000611: PUSH1 0x01
00000613: PUSH1 0xa0
00000615: SHL
00000616: SUB
00000617: AND
00000618: ORIGIN
00000619: EQ
0000061a: PUSH2 0x0622
0000061d: JUMPI
0000061e: PUSH1 0x00
00000620: DUP1
00000621: REVERT
00000622: JUMPDEST
00000623: PUSH1 0x00
00000625: GAS
00000626: SWAP1
00000627: POP
00000628: PUSH1 0x00
0000062a: DUP1
0000062b: PUSH1 0x01
0000062d: DUP6
0000062e: ISZERO
0000062f: ISZERO
00000630: EQ
00000631: ISZERO
00000632: PUSH2 0x0747
00000635: JUMPI
00000636: PUSH1 0x02
00000638: SLOAD
00000639: PUSH1 0x40
0000063b: MLOAD
0000063c: PUSH4 0x07211ef7
00000641: PUSH1 0xe0
00000643: SHL
00000644: DUP2
00000645: MSTORE
00000646: PUSH1 0x01
00000648: PUSH1 0x01
0000064a: PUSH1 0xa0
0000064c: SHL
0000064d: SUB
0000064e: SWAP1
0000064f: SWAP2
00000650: AND
00000651: SWAP1
00000652: PUSH4 0x07211ef7
00000657: SWAP1
00000658: PUSH2 0x066b
0000065b: SWAP1
0000065c: PUSH1 0x00
0000065e: SWAP1
0000065f: PUSH1 0x01
00000661: SWAP1
00000662: DUP13
00000663: SWAP1
00000664: PUSH1 0x04
00000666: ADD
00000667: PUSH2 0x0d22
0000066a: JUMP
0000066b: JUMPDEST
0000066c: PUSH1 0x20
0000066e: PUSH1 0x40
00000670: MLOAD
00000671: DUP1
00000672: DUP4
00000673: SUB
00000674: DUP2
00000675: DUP7
00000676: DUP1
00000677: EXTCODESIZE
00000678: ISZERO
00000679: DUP1
0000067a: ISZERO
0000067b: PUSH2 0x0683
0000067e: JUMPI
0000067f: PUSH1 0x00
00000681: DUP1
00000682: REVERT
00000683: JUMPDEST
00000684: POP
00000685: GAS
00000686: STATICCALL
00000687: ISZERO
00000688: DUP1
00000689: ISZERO
0000068a: PUSH2 0x0697
0000068d: JUMPI
0000068e: RETURNDATASIZE
0000068f: PUSH1 0x00
00000691: DUP1
00000692: RETURNDATACOPY
00000693: RETURNDATASIZE
00000694: PUSH1 0x00
00000696: REVERT
00000697: JUMPDEST
00000698: POP
00000699: POP
0000069a: POP
0000069b: POP
0000069c: PUSH1 0x40
0000069e: MLOAD
0000069f: RETURNDATASIZE
000006a0: PUSH1 0x1f
000006a2: NOT
000006a3: PUSH1 0x1f
000006a5: DUP3
000006a6: ADD
000006a7: AND
000006a8: DUP3
000006a9: ADD
000006aa: DUP1
000006ab: PUSH1 0x40
000006ad: MSTORE
000006ae: POP
000006af: DUP2
000006b0: ADD
000006b1: SWAP1
000006b2: PUSH2 0x06bb
000006b5: SWAP2
000006b6: SWAP1
000006b7: PUSH2 0x0bd2
000006ba: JUMP
000006bb: JUMPDEST
000006bc: PUSH1 0x03
000006be: DUP1
000006bf: SLOAD
000006c0: PUSH1 0x40
000006c2: MLOAD
000006c3: PUSH4 0x07211ef7
000006c8: PUSH1 0xe0
000006ca: SHL
000006cb: DUP2
000006cc: MSTORE
000006cd: SWAP3
000006ce: SWAP5
000006cf: POP
000006d0: PUSH1 0x01
000006d2: PUSH1 0x01
000006d4: PUSH1 0xa0
000006d6: SHL
000006d7: SUB
000006d8: AND
000006d9: SWAP2
000006da: PUSH4 0x07211ef7
000006df: SWAP2
000006e0: PUSH2 0x06f0
000006e3: SWAP2
000006e4: PUSH1 0x00
000006e6: SWAP1
000006e7: DUP8
000006e8: SWAP1
000006e9: PUSH1 0x04
000006eb: ADD
000006ec: PUSH2 0x0d22
000006ef: JUMP
000006f0: JUMPDEST
000006f1: PUSH1 0x20
000006f3: PUSH1 0x40
000006f5: MLOAD
000006f6: DUP1
000006f7: DUP4
000006f8: SUB
000006f9: DUP2
000006fa: DUP7
000006fb: DUP1
000006fc: EXTCODESIZE
000006fd: ISZERO
000006fe: DUP1
000006ff: ISZERO
00000700: PUSH2 0x0708
00000703: JUMPI
00000704: PUSH1 0x00
00000706: DUP1
00000707: REVERT
00000708: JUMPDEST
00000709: POP
0000070a: GAS
0000070b: STATICCALL
0000070c: ISZERO
0000070d: DUP1
0000070e: ISZERO
0000070f: PUSH2 0x071c
00000712: JUMPI
00000713: RETURNDATASIZE
00000714: PUSH1 0x00
00000716: DUP1
00000717: RETURNDATACOPY
00000718: RETURNDATASIZE
00000719: PUSH1 0x00
0000071b: REVERT
0000071c: JUMPDEST
0000071d: POP
0000071e: POP
0000071f: POP
00000720: POP
00000721: PUSH1 0x40
00000723: MLOAD
00000724: RETURNDATASIZE
00000725: PUSH1 0x1f
00000727: NOT
00000728: PUSH1 0x1f
0000072a: DUP3
0000072b: ADD
0000072c: AND
0000072d: DUP3
0000072e: ADD
0000072f: DUP1
00000730: PUSH1 0x40
00000732: MSTORE
00000733: POP
00000734: DUP2
00000735: ADD
00000736: SWAP1
00000737: PUSH2 0x0740
0000073a: SWAP2
0000073b: SWAP1
0000073c: PUSH2 0x0bd2
0000073f: JUMP
00000740: JUMPDEST
00000741: SWAP1
00000742: POP
00000743: PUSH2 0x0855
00000746: JUMP
00000747: JUMPDEST
00000748: PUSH1 0x03
0000074a: DUP1
0000074b: SLOAD
0000074c: PUSH1 0x40
0000074e: MLOAD
0000074f: PUSH4 0x07211ef7
00000754: PUSH1 0xe0
00000756: SHL
00000757: DUP2
00000758: MSTORE
00000759: PUSH1 0x01
0000075b: PUSH1 0x01
0000075d: PUSH1 0xa0
0000075f: SHL
00000760: SUB
00000761: SWAP1
00000762: SWAP2
00000763: AND
00000764: SWAP2
00000765: PUSH4 0x07211ef7
0000076a: SWAP2
0000076b: PUSH2 0x077b
0000076e: SWAP2
0000076f: PUSH1 0x00
00000771: SWAP2
00000772: DUP13
00000773: SWAP1
00000774: PUSH1 0x04
00000776: ADD
00000777: PUSH2 0x0d22
0000077a: JUMP
0000077b: JUMPDEST
0000077c: PUSH1 0x20
0000077e: PUSH1 0x40
00000780: MLOAD
00000781: DUP1
00000782: DUP4
00000783: SUB
00000784: DUP2
00000785: DUP7
00000786: DUP1
00000787: EXTCODESIZE
00000788: ISZERO
00000789: DUP1
0000078a: ISZERO
0000078b: PUSH2 0x0793
0000078e: JUMPI
0000078f: PUSH1 0x00
00000791: DUP1
00000792: REVERT
00000793: JUMPDEST
00000794: POP
00000795: GAS
00000796: STATICCALL
00000797: ISZERO
00000798: DUP1
00000799: ISZERO
0000079a: PUSH2 0x07a7
0000079d: JUMPI
0000079e: RETURNDATASIZE
0000079f: PUSH1 0x00
000007a1: DUP1
000007a2: RETURNDATACOPY
000007a3: RETURNDATASIZE
000007a4: PUSH1 0x00
000007a6: REVERT
000007a7: JUMPDEST
000007a8: POP
000007a9: POP
000007aa: POP
000007ab: POP
000007ac: PUSH1 0x40
000007ae: MLOAD
000007af: RETURNDATASIZE
000007b0: PUSH1 0x1f
000007b2: NOT
000007b3: PUSH1 0x1f
000007b5: DUP3
000007b6: ADD
000007b7: AND
000007b8: DUP3
000007b9: ADD
000007ba: DUP1
000007bb: PUSH1 0x40
000007bd: MSTORE
000007be: POP
000007bf: DUP2
000007c0: ADD
000007c1: SWAP1
000007c2: PUSH2 0x07cb
000007c5: SWAP2
000007c6: SWAP1
000007c7: PUSH2 0x0bd2
000007ca: JUMP
000007cb: JUMPDEST
000007cc: PUSH1 0x02
000007ce: SLOAD
000007cf: PUSH1 0x40
000007d1: MLOAD
000007d2: PUSH4 0x07211ef7
000007d7: PUSH1 0xe0
000007d9: SHL
000007da: DUP2
000007db: MSTORE
000007dc: SWAP2
000007dd: SWAP4
000007de: POP
000007df: PUSH1 0x01
000007e1: PUSH1 0x01
000007e3: PUSH1 0xa0
000007e5: SHL
000007e6: SUB
000007e7: AND
000007e8: SWAP1
000007e9: PUSH4 0x07211ef7
000007ee: SWAP1
000007ef: PUSH2 0x0802
000007f2: SWAP1
000007f3: PUSH1 0x01
000007f5: SWAP1
000007f6: PUSH1 0x00
000007f8: SWAP1
000007f9: DUP8
000007fa: SWAP1
000007fb: PUSH1 0x04
000007fd: ADD
000007fe: PUSH2 0x0d22
00000801: JUMP
00000802: JUMPDEST
00000803: PUSH1 0x20
00000805: PUSH1 0x40
00000807: MLOAD
00000808: DUP1
00000809: DUP4
0000080a: SUB
0000080b: DUP2
0000080c: DUP7
0000080d: DUP1
0000080e: EXTCODESIZE
0000080f: ISZERO
00000810: DUP1
00000811: ISZERO
00000812: PUSH2 0x081a
00000815: JUMPI
00000816: PUSH1 0x00
00000818: DUP1
00000819: REVERT
0000081a: JUMPDEST
0000081b: POP
0000081c: GAS
0000081d: STATICCALL
0000081e: ISZERO
0000081f: DUP1
00000820: ISZERO
00000821: PUSH2 0x082e
00000824: JUMPI
00000825: RETURNDATASIZE
00000826: PUSH1 0x00
00000828: DUP1
00000829: RETURNDATACOPY
0000082a: RETURNDATASIZE
0000082b: PUSH1 0x00
0000082d: REVERT
0000082e: JUMPDEST
0000082f: POP
00000830: POP
00000831: POP
00000832: POP
00000833: PUSH1 0x40
00000835: MLOAD
00000836: RETURNDATASIZE
00000837: PUSH1 0x1f
00000839: NOT
0000083a: PUSH1 0x1f
0000083c: DUP3
0000083d: ADD
0000083e: AND
0000083f: DUP3
00000840: ADD
00000841: DUP1
00000842: PUSH1 0x40
00000844: MSTORE
00000845: POP
00000846: DUP2
00000847: ADD
00000848: SWAP1
00000849: PUSH2 0x0852
0000084c: SWAP2
0000084d: SWAP1
0000084e: PUSH2 0x0bd2
00000851: JUMP
00000852: JUMPDEST
00000853: SWAP1
00000854: POP
00000855: JUMPDEST
00000856: DUP6
00000857: DUP8
00000858: ADD
00000859: DUP2
0000085a: GT
0000085b: ISZERO
0000085c: PUSH2 0x0917
0000085f: JUMPI
00000860: PUSH1 0x01
00000862: SLOAD
00000863: PUSH1 0x06
00000865: SLOAD
00000866: PUSH1 0x40
00000868: MLOAD
00000869: PUSH1 0x01
0000086b: PUSH1 0x01
0000086d: PUSH1 0xa0
0000086f: SHL
00000870: SUB
00000871: SWAP3
00000872: DUP4
00000873: AND
00000874: SWAP3
00000875: PUSH4 0x6e2246a7
0000087a: SWAP3
0000087b: AND
0000087c: SWAP1
0000087d: DUP11
0000087e: SWAP1
0000087f: PUSH4 0x2ea39325
00000884: PUSH1 0xe0
00000886: SHL
00000887: SWAP1
00000888: PUSH2 0x089d
0000088b: SWAP1
0000088c: DUP4
0000088d: SWAP1
0000088e: DUP14
0000088f: SWAP1
00000890: DUP14
00000891: SWAP1
00000892: DUP12
00000893: SWAP1
00000894: DUP12
00000895: SWAP1
00000896: PUSH1 0x24
00000898: ADD
00000899: PUSH2 0x0df1
0000089c: JUMP
0000089d: JUMPDEST
0000089e: PUSH1 0x40
000008a0: DUP1
000008a1: MLOAD
000008a2: PUSH1 0x1f
000008a4: NOT
000008a5: DUP2
000008a6: DUP5
000008a7: SUB
000008a8: ADD
000008a9: DUP2
000008aa: MSTORE
000008ab: SWAP2
000008ac: DUP2
000008ad: MSTORE
000008ae: PUSH1 0x20
000008b0: DUP3
000008b1: ADD
000008b2: DUP1
000008b3: MLOAD
000008b4: PUSH1 0x01
000008b6: PUSH1 0x01
000008b8: PUSH1 0xe0
000008ba: SHL
000008bb: SUB
000008bc: AND
000008bd: PUSH1 0x01
000008bf: PUSH1 0x01
000008c1: PUSH1 0xe0
000008c3: SHL
000008c4: SUB
000008c5: NOT
000008c6: SWAP5
000008c7: DUP6
000008c8: AND
000008c9: OR
000008ca: SWAP1
000008cb: MSTORE
000008cc: MLOAD
000008cd: PUSH1 0xe0
000008cf: DUP7
000008d0: SWAP1
000008d1: SHL
000008d2: SWAP1
000008d3: SWAP3
000008d4: AND
000008d5: DUP3
000008d6: MSTORE
000008d7: PUSH2 0x08e4
000008da: SWAP4
000008db: SWAP3
000008dc: SWAP2
000008dd: PUSH1 0x04
000008df: ADD
000008e0: PUSH2 0x0cb8
000008e3: JUMP
000008e4: JUMPDEST
000008e5: PUSH1 0x00
000008e7: PUSH1 0x40
000008e9: MLOAD
000008ea: DUP1
000008eb: DUP4
000008ec: SUB
000008ed: DUP2
000008ee: PUSH1 0x00
000008f0: DUP8
000008f1: DUP1
000008f2: EXTCODESIZE
000008f3: ISZERO
000008f4: DUP1
000008f5: ISZERO
000008f6: PUSH2 0x08fe
000008f9: JUMPI
000008fa: PUSH1 0x00
000008fc: DUP1
000008fd: REVERT
000008fe: JUMPDEST
000008ff: POP
00000900: GAS
00000901: CALL
00000902: ISZERO
00000903: DUP1
00000904: ISZERO
00000905: PUSH2 0x0912
00000908: JUMPI
00000909: RETURNDATASIZE
0000090a: PUSH1 0x00
0000090c: DUP1
0000090d: RETURNDATACOPY
0000090e: RETURNDATASIZE
0000090f: PUSH1 0x00
00000911: REVERT
00000912: JUMPDEST
00000913: POP
00000914: POP
00000915: POP
00000916: POP
00000917: JUMPDEST
00000918: PUSH1 0x01
0000091a: DUP5
0000091b: ISZERO
0000091c: ISZERO
0000091d: EQ
0000091e: ISZERO
0000091f: PUSH2 0x0602
00000922: JUMPI
00000923: PUSH2 0x0602
00000926: DUP4
00000927: PUSH2 0x099a
0000092a: JUMP
0000092b: JUMPDEST
0000092c: PUSH1 0x00
0000092e: SLOAD
0000092f: PUSH1 0x01
00000931: PUSH1 0x01
00000933: PUSH1 0xa0
00000935: SHL
00000936: SUB
00000937: AND
00000938: CALLER
00000939: EQ
0000093a: PUSH2 0x0942
0000093d: JUMPI
0000093e: PUSH1 0x00
00000940: DUP1
00000941: REVERT
00000942: JUMPDEST
00000943: DUP4
00000944: PUSH1 0x01
00000946: PUSH1 0x01
00000948: PUSH1 0xa0
0000094a: SHL
0000094b: SUB
0000094c: AND
0000094d: DUP4
0000094e: DUP4
0000094f: DUP4
00000950: PUSH1 0x40
00000952: MLOAD
00000953: PUSH2 0x095d
00000956: SWAP3
00000957: SWAP2
00000958: SWAP1
00000959: PUSH2 0x0c7b
0000095c: JUMP
0000095d: JUMPDEST
0000095e: PUSH1 0x00
00000960: PUSH1 0x40
00000962: MLOAD
00000963: DUP1
00000964: DUP4
00000965: SUB
00000966: DUP2
00000967: DUP6
00000968: DUP8
00000969: GAS
0000096a: CALL
0000096b: SWAP3
0000096c: POP
0000096d: POP
0000096e: POP
0000096f: RETURNDATASIZE
00000970: DUP1
00000971: PUSH1 0x00
00000973: DUP2
00000974: EQ
00000975: PUSH2 0x0602
00000978: JUMPI
00000979: PUSH1 0x40
0000097b: MLOAD
0000097c: SWAP2
0000097d: POP
0000097e: PUSH1 0x1f
00000980: NOT
00000981: PUSH1 0x3f
00000983: RETURNDATASIZE
00000984: ADD
00000985: AND
00000986: DUP3
00000987: ADD
00000988: PUSH1 0x40
0000098a: MSTORE
0000098b: RETURNDATASIZE
0000098c: DUP3
0000098d: MSTORE
0000098e: RETURNDATASIZE
0000098f: PUSH1 0x00
00000991: PUSH1 0x20
00000993: DUP5
00000994: ADD
00000995: RETURNDATACOPY
00000996: PUSH2 0x0602
00000999: JUMP
0000099a: JUMPDEST
0000099b: PUSH1 0x00
0000099d: GAS
0000099e: SWAP1
0000099f: POP
000009a0: PUSH2 0xa0aa
000009a3: DUP2
000009a4: DUP4
000009a5: SUB
000009a6: PUSH2 0x374a
000009a9: ADD
000009aa: DIV
000009ab: PUSH1 0x00
000009ad: PUSH2 0x7530
000009b0: DUP4
000009b1: LT
000009b2: PUSH2 0x0a54
000009b5: JUMPI
000009b6: POP
000009b7: PUSH2 0x1b6c
000009ba: PUSH2 0x6c3d
000009bd: NOT
000009be: DUP5
000009bf: ADD
000009c0: DIV
000009c1: DUP1
000009c2: DUP3
000009c3: GT
000009c4: ISZERO
000009c5: PUSH2 0x09cc
000009c8: JUMPI
000009c9: DUP1
000009ca: SWAP2
000009cb: POP
000009cc: JUMPDEST
000009cd: PUSH1 0x04
000009cf: DUP1
000009d0: SLOAD
000009d1: PUSH1 0x00
000009d3: SLOAD
000009d4: PUSH1 0x40
000009d6: MLOAD
000009d7: PUSH4 0x079d229f
000009dc: PUSH1 0xe0
000009de: SHL
000009df: DUP2
000009e0: MSTORE
000009e1: PUSH1 0x01
000009e3: PUSH1 0x01
000009e5: PUSH1 0xa0
000009e7: SHL
000009e8: SUB
000009e9: SWAP3
000009ea: DUP4
000009eb: AND
000009ec: SWAP4
000009ed: PUSH4 0x079d229f
000009f2: SWAP4
000009f3: PUSH2 0x0a00
000009f6: SWAP4
000009f7: AND
000009f8: SWAP2
000009f9: DUP8
000009fa: SWAP2
000009fb: ADD
000009fc: PUSH2 0x0c9f
000009ff: JUMP
00000a00: JUMPDEST
00000a01: PUSH1 0x20
00000a03: PUSH1 0x40
00000a05: MLOAD
00000a06: DUP1
00000a07: DUP4
00000a08: SUB
00000a09: DUP2
00000a0a: PUSH1 0x00
00000a0c: DUP8
00000a0d: DUP1
00000a0e: EXTCODESIZE
00000a0f: ISZERO
00000a10: DUP1
00000a11: ISZERO
00000a12: PUSH2 0x0a1a
00000a15: JUMPI
00000a16: PUSH1 0x00
00000a18: DUP1
00000a19: REVERT
00000a1a: JUMPDEST
00000a1b: POP
00000a1c: GAS
00000a1d: CALL
00000a1e: ISZERO
00000a1f: DUP1
00000a20: ISZERO
00000a21: PUSH2 0x0a2e
00000a24: JUMPI
00000a25: RETURNDATASIZE
00000a26: PUSH1 0x00
00000a28: DUP1
00000a29: RETURNDATACOPY
00000a2a: RETURNDATASIZE
00000a2b: PUSH1 0x00
00000a2d: REVERT
00000a2e: JUMPDEST
00000a2f: POP
00000a30: POP
00000a31: POP
00000a32: POP
00000a33: PUSH1 0x40
00000a35: MLOAD
00000a36: RETURNDATASIZE
00000a37: PUSH1 0x1f
00000a39: NOT
00000a3a: PUSH1 0x1f
00000a3c: DUP3
00000a3d: ADD
00000a3e: AND
00000a3f: DUP3
00000a40: ADD
00000a41: DUP1
00000a42: PUSH1 0x40
00000a44: MSTORE
00000a45: POP
00000a46: DUP2
00000a47: ADD
00000a48: SWAP1
00000a49: PUSH2 0x0a52
00000a4c: SWAP2
00000a4d: SWAP1
00000a4e: PUSH2 0x0bd2
00000a51: JUMP
00000a52: JUMPDEST
00000a53: POP
00000a54: JUMPDEST
00000a55: POP
00000a56: POP
00000a57: POP
00000a58: POP
00000a59: JUMP
00000a5a: JUMPDEST
00000a5b: PUSH1 0x00
00000a5d: DUP1
00000a5e: PUSH1 0x00
00000a60: DUP1
00000a61: PUSH1 0x60
00000a63: DUP6
00000a64: DUP8
00000a65: SUB
00000a66: SLT
00000a67: ISZERO
00000a68: PUSH2 0x0a6f
00000a6b: JUMPI
00000a6c: DUP4
00000a6d: DUP5
00000a6e: REVERT
00000a6f: JUMPDEST
00000a70: DUP5
00000a71: CALLDATALOAD
00000a72: PUSH1 0x01
00000a74: PUSH1 0x01
00000a76: PUSH1 0xa0
00000a78: SHL
00000a79: SUB
00000a7a: DUP2
00000a7b: AND
00000a7c: DUP2
00000a7d: EQ
00000a7e: PUSH2 0x0a85
00000a81: JUMPI
00000a82: DUP5
00000a83: DUP6
00000a84: REVERT
00000a85: JUMPDEST
00000a86: SWAP4
00000a87: POP
00000a88: PUSH1 0x20
00000a8a: DUP6
00000a8b: ADD
00000a8c: CALLDATALOAD
00000a8d: SWAP3
00000a8e: POP
00000a8f: PUSH1 0x40
00000a91: DUP6
00000a92: ADD
00000a93: CALLDATALOAD
00000a94: PUSH8 0xffffffffffffffff
00000a9d: DUP1
00000a9e: DUP3
00000a9f: GT
00000aa0: ISZERO
00000aa1: PUSH2 0x0aa8
00000aa4: JUMPI
00000aa5: DUP4
00000aa6: DUP5
00000aa7: REVERT
00000aa8: JUMPDEST
00000aa9: DUP2
00000aaa: DUP8
00000aab: ADD
00000aac: SWAP2
00000aad: POP
00000aae: DUP8
00000aaf: PUSH1 0x1f
00000ab1: DUP4
00000ab2: ADD
00000ab3: SLT
00000ab4: PUSH2 0x0abb
00000ab7: JUMPI
00000ab8: DUP4
00000ab9: DUP5
00000aba: REVERT
00000abb: JUMPDEST
00000abc: DUP2
00000abd: CALLDATALOAD
00000abe: DUP2
00000abf: DUP2
00000ac0: GT
00000ac1: ISZERO
00000ac2: PUSH2 0x0ac9
00000ac5: JUMPI
00000ac6: DUP5
00000ac7: DUP6
00000ac8: REVERT
00000ac9: JUMPDEST
00000aca: DUP9
00000acb: PUSH1 0x20
00000acd: DUP3
00000ace: DUP6
00000acf: ADD
00000ad0: ADD
00000ad1: GT
00000ad2: ISZERO
00000ad3: PUSH2 0x0ada
00000ad6: JUMPI
00000ad7: DUP5
00000ad8: DUP6
00000ad9: REVERT
00000ada: JUMPDEST
00000adb: SWAP6
00000adc: SWAP9
00000add: SWAP5
00000ade: SWAP8
00000adf: POP
00000ae0: POP
00000ae1: PUSH1 0x20
00000ae3: ADD
00000ae4: SWAP5
00000ae5: POP
00000ae6: POP
00000ae7: POP
00000ae8: JUMP
00000ae9: JUMPDEST
00000aea: PUSH1 0x00
00000aec: PUSH1 0x20
00000aee: DUP1
00000aef: DUP4
00000af0: DUP6
00000af1: SUB
00000af2: SLT
00000af3: ISZERO
00000af4: PUSH2 0x0afb
00000af7: JUMPI
00000af8: DUP2
00000af9: DUP3
00000afa: REVERT
00000afb: JUMPDEST
00000afc: DUP3
00000afd: MLOAD
00000afe: PUSH8 0xffffffffffffffff
00000b07: DUP1
00000b08: DUP3
00000b09: GT
00000b0a: ISZERO
00000b0b: PUSH2 0x0b12
00000b0e: JUMPI
00000b0f: DUP4
00000b10: DUP5
00000b11: REVERT
00000b12: JUMPDEST
00000b13: DUP2
00000b14: DUP6
00000b15: ADD
00000b16: SWAP2
00000b17: POP
00000b18: DUP6
00000b19: PUSH1 0x1f
00000b1b: DUP4
00000b1c: ADD
00000b1d: SLT
00000b1e: PUSH2 0x0b25
00000b21: JUMPI
00000b22: DUP4
00000b23: DUP5
00000b24: REVERT
00000b25: JUMPDEST
00000b26: DUP2
00000b27: MLOAD
00000b28: DUP2
00000b29: DUP2
00000b2a: GT
00000b2b: ISZERO
00000b2c: PUSH2 0x0b31
00000b2f: JUMPI
00000b30: INVALID
00000b31: JUMPDEST
00000b32: DUP4
00000b33: DUP2
00000b34: MUL
00000b35: PUSH1 0x40
00000b37: MLOAD
00000b38: DUP6
00000b39: DUP3
00000b3a: DUP3
00000b3b: ADD
00000b3c: ADD
00000b3d: DUP2
00000b3e: DUP2
00000b3f: LT
00000b40: DUP6
00000b41: DUP3
00000b42: GT
00000b43: OR
00000b44: ISZERO
00000b45: PUSH2 0x0b4a
00000b48: JUMPI
00000b49: INVALID
00000b4a: JUMPDEST
00000b4b: PUSH1 0x40
00000b4d: MSTORE
00000b4e: DUP3
00000b4f: DUP2
00000b50: MSTORE
00000b51: DUP6
00000b52: DUP2
00000b53: ADD
00000b54: SWAP4
00000b55: POP
00000b56: DUP5
00000b57: DUP7
00000b58: ADD
00000b59: DUP3
00000b5a: DUP7
00000b5b: ADD
00000b5c: DUP8
00000b5d: ADD
00000b5e: DUP11
00000b5f: LT
00000b60: ISZERO
00000b61: PUSH2 0x0b68
00000b64: JUMPI
00000b65: DUP8
00000b66: DUP9
00000b67: REVERT
00000b68: JUMPDEST
00000b69: DUP8
00000b6a: SWAP6
00000b6b: POP
00000b6c: JUMPDEST
00000b6d: DUP4
00000b6e: DUP7
00000b6f: LT
00000b70: ISZERO
00000b71: PUSH2 0x0b8a
00000b74: JUMPI
00000b75: DUP1
00000b76: MLOAD
00000b77: DUP6
00000b78: MSTORE
00000b79: PUSH1 0x01
00000b7b: SWAP6
00000b7c: SWAP1
00000b7d: SWAP6
00000b7e: ADD
00000b7f: SWAP5
00000b80: SWAP4
00000b81: DUP7
00000b82: ADD
00000b83: SWAP4
00000b84: DUP7
00000b85: ADD
00000b86: PUSH2 0x0b6c
00000b89: JUMP
00000b8a: JUMPDEST
00000b8b: POP
00000b8c: SWAP9
00000b8d: SWAP8
00000b8e: POP
00000b8f: POP
00000b90: POP
00000b91: POP
00000b92: POP
00000b93: POP
00000b94: POP
00000b95: POP
00000b96: JUMP
00000b97: JUMPDEST
00000b98: PUSH1 0x00
00000b9a: PUSH1 0x20
00000b9c: DUP3
00000b9d: DUP5
00000b9e: SUB
00000b9f: SLT
00000ba0: ISZERO
00000ba1: PUSH2 0x0ba8
00000ba4: JUMPI
00000ba5: DUP1
00000ba6: DUP2
00000ba7: REVERT
00000ba8: JUMPDEST
00000ba9: DUP2
00000baa: MLOAD
00000bab: PUSH2 0x0bb3
00000bae: DUP2
00000baf: PUSH2 0x0e14
00000bb2: JUMP
00000bb3: JUMPDEST
00000bb4: SWAP4
00000bb5: SWAP3
00000bb6: POP
00000bb7: POP
00000bb8: POP
00000bb9: JUMP
00000bba: JUMPDEST
00000bbb: PUSH1 0x00
00000bbd: PUSH1 0x20
00000bbf: DUP3
00000bc0: DUP5
00000bc1: SUB
00000bc2: SLT
00000bc3: ISZERO
00000bc4: PUSH2 0x0bcb
00000bc7: JUMPI
00000bc8: DUP1
00000bc9: DUP2
00000bca: REVERT
00000bcb: JUMPDEST
00000bcc: POP
00000bcd: CALLDATALOAD
00000bce: SWAP2
00000bcf: SWAP1
00000bd0: POP
00000bd1: JUMP
00000bd2: JUMPDEST
00000bd3: PUSH1 0x00
00000bd5: PUSH1 0x20
00000bd7: DUP3
00000bd8: DUP5
00000bd9: SUB
00000bda: SLT
00000bdb: ISZERO
00000bdc: PUSH2 0x0be3
00000bdf: JUMPI
00000be0: DUP1
00000be1: DUP2
00000be2: REVERT
00000be3: JUMPDEST
00000be4: POP
00000be5: MLOAD
00000be6: SWAP2
00000be7: SWAP1
00000be8: POP
00000be9: JUMP
00000bea: JUMPDEST
00000beb: PUSH1 0x00
00000bed: DUP1
00000bee: PUSH1 0x00
00000bf0: DUP1
00000bf1: PUSH1 0x80
00000bf3: DUP6
00000bf4: DUP8
00000bf5: SUB
00000bf6: SLT
00000bf7: ISZERO
00000bf8: PUSH2 0x0bff
00000bfb: JUMPI
00000bfc: DUP4
00000bfd: DUP5
00000bfe: REVERT
00000bff: JUMPDEST
00000c00: DUP5
00000c01: CALLDATALOAD
00000c02: SWAP4
00000c03: POP
00000c04: PUSH1 0x20
00000c06: DUP6
00000c07: ADD
00000c08: CALLDATALOAD
00000c09: SWAP3
00000c0a: POP
00000c0b: PUSH1 0x40
00000c0d: DUP6
00000c0e: ADD
00000c0f: CALLDATALOAD
00000c10: PUSH2 0x0c18
00000c13: DUP2
00000c14: PUSH2 0x0e14
00000c17: JUMP
00000c18: JUMPDEST
00000c19: SWAP2
00000c1a: POP
00000c1b: PUSH1 0x60
00000c1d: DUP6
00000c1e: ADD
00000c1f: CALLDATALOAD
00000c20: PUSH2 0x0c28
00000c23: DUP2
00000c24: PUSH2 0x0e14
00000c27: JUMP
00000c28: JUMPDEST
00000c29: SWAP4
00000c2a: SWAP7
00000c2b: SWAP3
00000c2c: SWAP6
00000c2d: POP
00000c2e: SWAP1
00000c2f: SWAP4
00000c30: POP
00000c31: POP
00000c32: JUMP
00000c33: JUMPDEST
00000c34: PUSH1 0x00
00000c36: DUP1
00000c37: PUSH1 0x00
00000c39: DUP1
00000c3a: PUSH1 0x00
00000c3c: PUSH1 0xa0
00000c3e: DUP7
00000c3f: DUP9
00000c40: SUB
00000c41: SLT
00000c42: ISZERO
00000c43: PUSH2 0x0c4a
00000c46: JUMPI
00000c47: DUP1
00000c48: DUP2
00000c49: REVERT
00000c4a: JUMPDEST
00000c4b: DUP6
00000c4c: CALLDATALOAD
00000c4d: SWAP5
00000c4e: POP
00000c4f: PUSH1 0x20
00000c51: DUP7
00000c52: ADD
00000c53: CALLDATALOAD
00000c54: SWAP4
00000c55: POP
00000c56: PUSH1 0x40
00000c58: DUP7
00000c59: ADD
00000c5a: CALLDATALOAD
00000c5b: PUSH2 0x0c63
00000c5e: DUP2
00000c5f: PUSH2 0x0e14
00000c62: JUMP
00000c63: JUMPDEST
00000c64: SWAP5
00000c65: SWAP8
00000c66: SWAP4
00000c67: SWAP7
00000c68: POP
00000c69: SWAP4
00000c6a: SWAP5
00000c6b: PUSH1 0x60
00000c6d: DUP2
00000c6e: ADD
00000c6f: CALLDATALOAD
00000c70: SWAP5
00000c71: POP
00000c72: PUSH1 0x80
00000c74: ADD
00000c75: CALLDATALOAD
00000c76: SWAP3
00000c77: SWAP2
00000c78: POP
00000c79: POP
00000c7a: JUMP
00000c7b: JUMPDEST
00000c7c: PUSH1 0x00
00000c7e: DUP3
00000c7f: DUP5
00000c80: DUP4
00000c81: CALLDATACOPY
00000c82: SWAP2
00000c83: ADD
00000c84: SWAP1
00000c85: DUP2
00000c86: MSTORE
00000c87: SWAP2
00000c88: SWAP1
00000c89: POP
00000c8a: JUMP
00000c8b: JUMPDEST
00000c8c: PUSH1 0x01
00000c8e: PUSH1 0x01
00000c90: PUSH1 0xa0
00000c92: SHL
00000c93: SUB
00000c94: SWAP2
00000c95: SWAP1
00000c96: SWAP2
00000c97: AND
00000c98: DUP2
00000c99: MSTORE
00000c9a: PUSH1 0x20
00000c9c: ADD
00000c9d: SWAP1
00000c9e: JUMP
00000c9f: JUMPDEST
00000ca0: PUSH1 0x01
00000ca2: PUSH1 0x01
00000ca4: PUSH1 0xa0
00000ca6: SHL
00000ca7: SUB
00000ca8: SWAP3
00000ca9: SWAP1
00000caa: SWAP3
00000cab: AND
00000cac: DUP3
00000cad: MSTORE
00000cae: PUSH1 0x20
00000cb0: DUP3
00000cb1: ADD
00000cb2: MSTORE
00000cb3: PUSH1 0x40
00000cb5: ADD
00000cb6: SWAP1
00000cb7: JUMP
00000cb8: JUMPDEST
00000cb9: PUSH1 0x00
00000cbb: PUSH1 0x01
00000cbd: DUP1
00000cbe: PUSH1 0xa0
00000cc0: SHL
00000cc1: SUB
00000cc2: DUP6
00000cc3: AND
00000cc4: DUP3
00000cc5: MSTORE
00000cc6: PUSH1 0x20
00000cc8: DUP5
00000cc9: DUP2
00000cca: DUP5
00000ccb: ADD
00000ccc: MSTORE
00000ccd: PUSH1 0x60
00000ccf: PUSH1 0x40
00000cd1: DUP5
00000cd2: ADD
00000cd3: MSTORE
00000cd4: DUP4
00000cd5: MLOAD
00000cd6: DUP1
00000cd7: PUSH1 0x60
00000cd9: DUP6
00000cda: ADD
00000cdb: MSTORE
00000cdc: DUP3
00000cdd: JUMPDEST
00000cde: DUP2
00000cdf: DUP2
00000ce0: LT
00000ce1: ISZERO
00000ce2: PUSH2 0x0cf9
00000ce5: JUMPI
00000ce6: DUP6
00000ce7: DUP2
00000ce8: ADD
00000ce9: DUP4
00000cea: ADD
00000ceb: MLOAD
00000cec: DUP6
00000ced: DUP3
00000cee: ADD
00000cef: PUSH1 0x80
00000cf1: ADD
00000cf2: MSTORE
00000cf3: DUP3
00000cf4: ADD
00000cf5: PUSH2 0x0cdd
00000cf8: JUMP
00000cf9: JUMPDEST
00000cfa: DUP2
00000cfb: DUP2
00000cfc: GT
00000cfd: ISZERO
00000cfe: PUSH2 0x0d0a
00000d01: JUMPI
00000d02: DUP4
00000d03: PUSH1 0x80
00000d05: DUP4
00000d06: DUP8
00000d07: ADD
00000d08: ADD
00000d09: MSTORE
00000d0a: JUMPDEST
00000d0b: POP
00000d0c: PUSH1 0x1f
00000d0e: ADD
00000d0f: PUSH1 0x1f
00000d11: NOT
00000d12: AND
00000d13: SWAP3
00000d14: SWAP1
00000d15: SWAP3
00000d16: ADD
00000d17: PUSH1 0x80
00000d19: ADD
00000d1a: SWAP6
00000d1b: SWAP5
00000d1c: POP
00000d1d: POP
00000d1e: POP
00000d1f: POP
00000d20: POP
00000d21: JUMP
00000d22: JUMPDEST
00000d23: PUSH1 0x0f
00000d25: SWAP4
00000d26: DUP5
00000d27: SIGNEXTEND
00000d28: DUP2
00000d29: MSTORE
00000d2a: SWAP2
00000d2b: SWAP1
00000d2c: SWAP3
00000d2d: SIGNEXTEND
00000d2e: PUSH1 0x20
00000d30: DUP3
00000d31: ADD
00000d32: MSTORE
00000d33: PUSH1 0x40
00000d35: DUP2
00000d36: ADD
00000d37: SWAP2
00000d38: SWAP1
00000d39: SWAP2
00000d3a: MSTORE
00000d3b: PUSH1 0x60
00000d3d: ADD
00000d3e: SWAP1
00000d3f: JUMP
00000d40: JUMPDEST
00000d41: PUSH1 0x0f
00000d43: SWAP5
00000d44: DUP6
00000d45: SIGNEXTEND
00000d46: DUP2
00000d47: MSTORE
00000d48: SWAP3
00000d49: SWAP1
00000d4a: SWAP4
00000d4b: SIGNEXTEND
00000d4c: PUSH1 0x20
00000d4e: DUP4
00000d4f: ADD
00000d50: MSTORE
00000d51: PUSH1 0x40
00000d53: DUP3
00000d54: ADD
00000d55: MSTORE
00000d56: PUSH1 0x60
00000d58: DUP2
00000d59: ADD
00000d5a: SWAP2
00000d5b: SWAP1
00000d5c: SWAP2
00000d5d: MSTORE
00000d5e: PUSH1 0x80
00000d60: ADD
00000d61: SWAP1
00000d62: JUMP
00000d63: JUMPDEST
00000d64: PUSH1 0x20
00000d66: DUP1
00000d67: DUP3
00000d68: MSTORE
00000d69: PUSH1 0x01
00000d6b: SWAP1
00000d6c: DUP3
00000d6d: ADD
00000d6e: MSTORE
00000d6f: PUSH1 0x23
00000d71: PUSH1 0xf8
00000d73: SHL
00000d74: PUSH1 0x40
00000d76: DUP3
00000d77: ADD
00000d78: MSTORE
00000d79: PUSH1 0x60
00000d7b: ADD
00000d7c: SWAP1
00000d7d: JUMP
00000d7e: JUMPDEST
00000d7f: PUSH1 0x00
00000d81: PUSH1 0xa0
00000d83: DUP3
00000d84: ADD
00000d85: DUP8
00000d86: DUP4
00000d87: MSTORE
00000d88: PUSH1 0x20
00000d8a: DUP8
00000d8b: DUP2
00000d8c: DUP6
00000d8d: ADD
00000d8e: MSTORE
00000d8f: PUSH1 0xa0
00000d91: PUSH1 0x40
00000d93: DUP6
00000d94: ADD
00000d95: MSTORE
00000d96: DUP2
00000d97: DUP8
00000d98: SLOAD
00000d99: DUP1
00000d9a: DUP5
00000d9b: MSTORE
00000d9c: PUSH1 0xc0
00000d9e: DUP7
00000d9f: ADD
00000da0: SWAP2
00000da1: POP
00000da2: DUP9
00000da3: DUP6
00000da4: MSTORE
00000da5: DUP3
00000da6: DUP6
00000da7: KECCAK256
00000da8: SWAP4
00000da9: POP
00000daa: DUP5
00000dab: JUMPDEST
00000dac: DUP2
00000dad: DUP2
00000dae: LT
00000daf: ISZERO
00000db0: PUSH2 0x0dd0
00000db3: JUMPI
00000db4: DUP5
00000db5: SLOAD
00000db6: PUSH1 0x01
00000db8: PUSH1 0x01
00000dba: PUSH1 0xa0
00000dbc: SHL
00000dbd: SUB
00000dbe: AND
00000dbf: DUP4
00000dc0: MSTORE
00000dc1: PUSH1 0x01
00000dc3: SWAP5
00000dc4: DUP6
00000dc5: ADD
00000dc6: SWAP5
00000dc7: SWAP3
00000dc8: DUP5
00000dc9: ADD
00000dca: SWAP3
00000dcb: ADD
00000dcc: PUSH2 0x0dab
00000dcf: JUMP
00000dd0: JUMPDEST
00000dd1: POP
00000dd2: POP
00000dd3: PUSH1 0x01
00000dd5: PUSH1 0x01
00000dd7: PUSH1 0xa0
00000dd9: SHL
00000dda: SUB
00000ddb: SWAP7
00000ddc: SWAP1
00000ddd: SWAP7
00000dde: AND
00000ddf: PUSH1 0x60
00000de1: DUP6
00000de2: ADD
00000de3: MSTORE
00000de4: POP
00000de5: POP
00000de6: POP
00000de7: PUSH1 0x80
00000de9: ADD
00000dea: MSTORE
00000deb: SWAP4
00000dec: SWAP3
00000ded: POP
00000dee: POP
00000def: POP
00000df0: JUMP
00000df1: JUMPDEST
00000df2: SWAP5
00000df3: DUP6
00000df4: MSTORE
00000df5: PUSH1 0x20
00000df7: DUP6
00000df8: ADD
00000df9: SWAP4
00000dfa: SWAP1
00000dfb: SWAP4
00000dfc: MSTORE
00000dfd: SWAP1
00000dfe: ISZERO
00000dff: ISZERO
00000e00: PUSH1 0x40
00000e02: DUP5
00000e03: ADD
00000e04: MSTORE
00000e05: PUSH1 0x60
00000e07: DUP4
00000e08: ADD
00000e09: MSTORE
00000e0a: PUSH1 0x80
00000e0c: DUP3
00000e0d: ADD
00000e0e: MSTORE
00000e0f: PUSH1 0xa0
00000e11: ADD
00000e12: SWAP1
00000e13: JUMP
00000e14: JUMPDEST
00000e15: DUP1
00000e16: ISZERO
00000e17: ISZERO
00000e18: DUP2
00000e19: EQ
00000e1a: PUSH2 0x0e22
00000e1d: JUMPI
00000e1e: PUSH1 0x00
00000e20: DUP1
00000e21: REVERT
00000e22: JUMPDEST
00000e23: POP
00000e24: JUMP
00000e25: INVALID
00000e26: LOG2
00000e27: PUSH5 0x6970667358
00000e2d: UNKNOWN(0x22)
00000e2e: SLT
00000e2f: KECCAK256
00000e30: PUSH31 0xc132f9e87265f89fa1d5d9b7df69153296ba78c9d31a96c5580651e02092b7
00000e50: PUSH5 0x736f6c6343
00000e56: STOP
00000e57: SMOD
00000e58: MOD
00000e59: STOP
00000e5a: CALLER

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high auth detector Authorization based on tx.origin 70 no
view
validation_json
{
    "reason": "missing sink mapping",
    "status": "no_sink"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0d4794e2",
            "selector": "0x0d4794e2",
            "calldata_variants": [
                "0x0d4794e2",
                "0x0d4794e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2ea39325",
            "selector": "0x2ea39325",
            "calldata_variants": [
                "0x2ea39325",
                "0x2ea393250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb8a2ad75",
            "selector": "0xb8a2ad75",
            "calldata_variants": [
                "0xb8a2ad75",
                "0xb8a2ad750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdaddcc93",
            "selector": "0xdaddcc93",
            "calldata_variants": [
                "0xdaddcc93",
                "0xdaddcc930000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 465,
            "type": "tx_origin_used"
        },
        {
            "pc": 1561,
            "type": "tx_origin_used"
        },
        {
            "pc": 464,
            "type": "tx_origin_used"
        },
        {
            "pc": 1560,
            "type": "tx_origin_used"
        }
    ]
}
medium access_control codex Authorization uses tx.origin instead of msg.sender 75 no
view
evidence_json
{
    "evidence": "Opcode sequence includes `...6000546001600160a01b03163214...` which compares the masked owner (slot 0) against ORIGIN (opcode 0x32), indicating a tx.origin-based authorization check.",
    "locations": [
        "BYTECODE_BUNDLE.txt:5"
    ],
    "recommendation": "Replace tx.origin checks with msg.sender for access control. If already deployed, consider gating via additional checks (e.g., msg.sender allowlist) or migrating to a fixed contract.",
    "exploit_scenario": "An attacker deploys a malicious contract and tricks the privileged EOA into calling it. The malicious contract then calls the protected function in this contract; because the check uses tx.origin, the call passes even though msg.sender is the attacker contract, enabling unauthorized execution of privileged logic."
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x7727f422d46053c78fbfe7b605d05e11df754f5769c1cb3c7801165c2328a62f
call_targets: 0x089af8339c47cfbeab37d115325fc3d2b02f4a1e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x7727f422d46053c78fbfe7b605d05e11df754f5769c1cb3c7801165c2328a62f",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x089af8339c47cfbeab37d115325fc3d2b02f4a1e"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0d4794e2",
            "selector": "0x0d4794e2",
            "calldata_variants": [
                "0x0d4794e2",
                "0x0d4794e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2ea39325",
            "selector": "0x2ea39325",
            "calldata_variants": [
                "0x2ea39325",
                "0x2ea393250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb8a2ad75",
            "selector": "0xb8a2ad75",
            "calldata_variants": [
                "0xb8a2ad75",
                "0xb8a2ad750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdaddcc93",
            "selector": "0xdaddcc93",
            "calldata_variants": [
                "0xdaddcc93",
                "0xdaddcc930000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 390,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 582,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 830,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 9,
    "guards_detected": [
        {
            "pc": 465,
            "type": "tx_origin_used"
        },
        {
            "pc": 1561,
            "type": "tx_origin_used"
        },
        {
            "pc": 464,
            "type": "tx_origin_used"
        },
        {
            "pc": 1560,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 9
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x7727f422d46053c78fbfe7b605d05e11df754f5769c1cb3c7801165c2328a62f
call_targets: 0x089af8339c47cfbeab37d115325fc3d2b02f4a1e
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x7727f422d46053c78fbfe7b605d05e11df754f5769c1cb3c7801165c2328a62f",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x089af8339c47cfbeab37d115325fc3d2b02f4a1e"
    ],
    "matched_probe": null,
    "target_varies": false,
    "classification": "constant_target"
}
witness_json
{
    "notes": "heuristic witness; entrypoints are best-effort selectors with zeroed calldata",
    "constraints": [],
    "entrypoints": [
        {
            "calldata": "0x0d4794e2",
            "selector": "0x0d4794e2",
            "calldata_variants": [
                "0x0d4794e2",
                "0x0d4794e20000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x2ea39325",
            "selector": "0x2ea39325",
            "calldata_variants": [
                "0x2ea39325",
                "0x2ea393250000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xb8a2ad75",
            "selector": "0xb8a2ad75",
            "calldata_variants": [
                "0xb8a2ad75",
                "0xb8a2ad750000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xdaddcc93",
            "selector": "0xdaddcc93",
            "calldata_variants": [
                "0xdaddcc93",
                "0xdaddcc930000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 390,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 582,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 830,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 9,
    "guards_detected": [
        {
            "pc": 465,
            "type": "tx_origin_used"
        },
        {
            "pc": 1561,
            "type": "tx_origin_used"
        },
        {
            "pc": 464,
            "type": "tx_origin_used"
        },
        {
            "pc": 1560,
            "type": "tx_origin_used"
        }
    ]
}
info other cast Heavy EXTCODE*/BALANCE usage 55 no
view
evidence_json
{
    "notes": "frequent external code or balance checks; may indicate introspection or validation logic",
    "ext_balance_count": 16
}
info other cast Heavy CALL-family usage 55 no
view
evidence_json
{
    "notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
    "call_family_count": 17
}