b3a1ceb2-01ee-4bdb-a95e-7486ad0194a2
Open this run to answer one question: is this real attacker-relevant behavior with real impact, or just normal contract plumbing?
| 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 |
No slither job recorded yet.
[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"]}]}
{
"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
}
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
| Severity | Category | Tool | Title | Confidence | Validated | Confirmed | Details |
|---|---|---|---|---|---|---|---|
| high | auth | detector | Authorization based on tx.origin | 70 | no | — |
viewvalidation_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 | — |
viewevidence_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 |
viewtrace_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 |
viewtrace_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 | — |
viewevidence_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 | — |
viewevidence_json{
"notes": "large number of CALL/CALLCODE/STATICCALL opcodes; review external call patterns",
"call_family_count": 17
}
|