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

Analysis Run

019bb004-ada8-702d-bcbd-170d7291368c

complete
Chain ID
1
Address
Block Number
Created
Mon, Jan 12, 2026 2:24 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
Verified
Review Backing
Not yet
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
39454 artifact.fetch complete 1 / 3 3 months ago
39455 proxy.resolve complete 1 / 3 3 months ago
39456 tool.cast_disasm complete 1 / 3 3 months ago
39457 analysis.bundle complete 1 / 3 3 months ago
39458 capability.graph complete 1 / 3 3 months ago
39459 detector.run complete 1 / 3 3 months ago
39460 validation.fork complete 1 / 3 3 months ago
39524 report.consolidate complete 1 / 6 3 months ago
39525 tool.slither complete 1 / 2 3 months ago

Artifact

Runtime bytecode: available
Creation TX:
Deployer:
Proxy: no not_proxy
Implementation:
Verified Source: yes
Proxy evidence
{
    "status": "not_proxy"
}

Slither

tool.slither
Status
complete
Attempts
1 / 2
Findings
0
Solc
0.8.23 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-diyb_43m)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-diyb_43m)

FeeCollector.setOperator(address).newOperator (contracts/FeeCollector.sol#32) lacks a zero-check on :
		- operator = newOperator (contracts/FeeCollector.sol#35)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

Modifier BalanceManager.onlyOwner() (contracts/BalanceManager.sol#27) does not always execute _; or revert
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-modifier

BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58) has external calls inside a loop: (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
	Calls stack containing the loop:
		BalanceManager.arbitraryCalls(address[],bytes[])
BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58) has external calls inside a loop: (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58) has external calls inside a loop: (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
	Calls stack containing the loop:
		BalanceManager.arbitraryCallsWithEthCheck(address[],bytes[],uint256)
		BalanceManager.arbitraryCallsWithEthCheck(address[],bytes[],uint256[],uint256)
BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58) has external calls inside a loop: (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
	Calls stack containing the loop:
		BalanceManager.arbitraryCallsWithEthCheck(address[],bytes[],uint256[],uint256)
BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58) has external calls inside a loop: (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
	Calls stack containing the loop:
		BalanceManager.arbitraryCallsWithTokenCheck(address[],bytes[],IERC20,uint256)
		BalanceManager.arbitraryCallsWithTokenCheck(address[],bytes[],uint256[],IERC20,uint256)
BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58) has external calls inside a loop: (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
	Calls stack containing the loop:
		BalanceManager.arbitraryCallsWithTokenCheck(address[],bytes[],uint256[],IERC20,uint256)
BalanceManager.estimateArbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#138-150) has external calls inside a loop: (statuses[i],results[i]) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#146)
	Calls stack containing the loop:
		BalanceManager.estimateArbitraryCalls(address[],bytes[])
BalanceManager.estimateArbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#138-150) has external calls inside a loop: (statuses[i],results[i]) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#146)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation/#calls-inside-a-loop

ECDSA.recover(bytes32,uint8,bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#34-53) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#40-52)
ECDSA.recover(bytes32,bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#63-82) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#68-81)
ECDSA.recover(bytes32,bytes) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#97-130) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#98-129)
ECDSA.isValidSignature(address,bytes32,bytes) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#228-248) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#236-247)
ECDSA.isValidSignature(address,bytes32,uint8,bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#260-282) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#268-281)
ECDSA.isValidSignature(address,bytes32,bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#293-315) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#302-314)
ECDSA.isValidSignature65(address,bytes32,bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#325-348) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#334-347)
ECDSA.toEthSignedMessageHash(bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#356-364) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#359-363)
ECDSA.toTypedDataHash(bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#373-382) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#375-381)
RevertReasonForwarder.reRevert() (@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol#14-21) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol#16-20)
RevertReasonForwarder.reReason() (@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol#28-36) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol#29-35)
SafeERC20.safeBalanceOf(IERC20,address) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#44-61) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#49-60)
SafeERC20.safeTransferFrom(IERC20,address,address,uint256) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#99-126) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#107-124)
SafeERC20.safeTransferFromPermit2(IERC20,address,address,uint256) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#138-161) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#147-159)
SafeERC20.tryPermit(IERC20,address,address,bytes) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#300-402) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#306-401)
SafeERC20._makeCall(IERC20,bytes4,address,uint256) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#414-437) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#420-436)
SafeERC20.safeDeposit(IWETH,uint256) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#444-456) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#447-454)
SafeERC20.safeWithdraw(IWETH,uint256) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#464-475) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#466-474)
SafeERC20.safeWithdrawTo(IWETH,uint256,address) (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#484-495) uses assembly
	- INLINE ASM (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#487-493)
BalanceManager.arbitraryCalls(address[],bytes[]) (contracts/BalanceManager.sol#34-42) uses assembly
	- INLINE ASM (contracts/BalanceManager.sol#37-40)
BalanceManager.arbitraryCallsWithEthCheck(address[],bytes[],uint256) (contracts/BalanceManager.sol#63-71) uses assembly
	- INLINE ASM (contracts/BalanceManager.sol#66-69)
BalanceManager.arbitraryCallsWithTokenCheck(address[],bytes[],IERC20,uint256) (contracts/BalanceManager.sol#91-104) uses assembly
	- INLINE ASM (contracts/BalanceManager.sol#99-102)
BalanceManager.estimateArbitraryCalls(address[],bytes[]) (contracts/BalanceManager.sol#125-133) uses assembly
	- INLINE ASM (contracts/BalanceManager.sol#128-131)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

4 different versions of Solidity are used:
	- Version constraint ^0.8.0 is used by:
		-^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol#3)
		-^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IERC7597Permit.sol#3)
		-^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IPermit2.sol#3)
		-^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IWETH.sol#3)
		-^0.8.0 (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#3)
		-^0.8.0 (@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol#3)
		-^0.8.0 (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#3)
	- Version constraint 0.8.23 is used by:
		-0.8.23 (contracts/BalanceManager.sol#3)
		-0.8.23 (contracts/FeeCollector.sol#3)
		-0.8.23 (contracts/interfaces/IBalanceManager.sol#3)
	- Version constraint >=0.5.0 is used by:
		->=0.5.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol#4)
	- Version constraint >=0.4.16 is used by:
		->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
		->=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#different-pragma-directives-are-used

Version constraint ^0.8.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- FullInlinerNonExpressionSplitArgumentEvaluationOrder
	- MissingSideEffectsOnSelectorAccess
	- AbiReencodingHeadOverflowWithStaticArrayCleanup
	- DirtyBytesArrayToStorage
	- DataLocationChangeInInternalOverride
	- NestedCalldataArrayAbiReencodingSizeValidation
	- SignedImmutables
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching.
It is used by:
	- ^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol#3)
	- ^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IERC7597Permit.sol#3)
	- ^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IPermit2.sol#3)
	- ^0.8.0 (@1inch/solidity-utils/contracts/interfaces/IWETH.sol#3)
	- ^0.8.0 (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#3)
	- ^0.8.0 (@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol#3)
	- ^0.8.0 (@1inch/solidity-utils/contracts/libraries/SafeERC20.sol#3)
Version constraint >=0.5.0 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor
	- IncorrectEventSignatureInLibraries
	- ABIEncoderV2PackedStorage.
It is used by:
	- >=0.5.0 (lib/openzeppelin-contracts/contracts/interfaces/IERC1271.sol#4)
Version constraint >=0.4.16 contains known severe issues (https://solidity.readthedocs.io/en/latest/bugs.html)
	- DirtyBytesArrayToStorage
	- ABIDecodeTwoDimensionalArrayMemory
	- KeccakCaching
	- EmptyByteArrayCopy
	- DynamicArrayCleanup
	- ImplicitConstructorCallvalueCheck
	- TupleAssignmentMultiStackSlotComponents
	- MemoryArrayCreationOverflow
	- privateCanBeOverridden
	- SignedArrayStorageCopy
	- ABIEncoderV2StorageArrayWithMultiSlotElement
	- DynamicConstructorArgumentsClippedABIV2
	- UninitializedFunctionPointerInConstructor_0.4.x
	- IncorrectEventSignatureInLibraries_0.4.x
	- ExpExponentCleanup
	- NestedArrayFunctionCallDecoder
	- ZeroFunctionSelector.
It is used by:
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol#4)
	- >=0.4.16 (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol#4)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Low level call in BalanceManager.arbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#47-58):
	- (success,None) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#54)
Low level call in BalanceManager.estimateArbitraryCalls(address[],bytes[],uint256[]) (contracts/BalanceManager.sol#138-150):
	- (statuses[i],results[i]) = targets[i].call{value: values[i]}(arguments[i]) (contracts/BalanceManager.sol#146)
Low level call in BalanceManager.rescueEther() (contracts/BalanceManager.sol#205-208):
	- (success,None) = address(msg.sender).call{value: address(this).balance}() (contracts/BalanceManager.sol#206)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#low-level-calls

Variable BalanceManager._WETH (contracts/BalanceManager.sol#19) is not in mixedCase
Variable FeeCollector._OWNER (contracts/FeeCollector.sol#11) is not in mixedCase
Variable FeeCollector._LIMIT_ORDER_PROTOCOL (contracts/FeeCollector.sol#12) is not in mixedCase
Function IERC20Permit.DOMAIN_SEPARATOR() (lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol#89) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

ECDSA.toEthSignedMessageHash(bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#356-364) uses literals with too many digits:
	- mstore(uint256,uint256)(0,0x19457468657265756d205369676e6564204d6573736167653a0a333200000000) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#360)
ECDSA.toTypedDataHash(bytes32,bytes32) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#373-382) uses literals with too many digits:
	- mstore(uint256,uint256)(ptr_toTypedDataHash_asm_0,0x1901000000000000000000000000000000000000000000000000000000000000) (@1inch/solidity-utils/contracts/libraries/ECDSA.sol#377)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#too-many-digits
. analyzed (13 contracts with 100 detectors), 46 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.8.23",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.8.23",
        "install_stderr": null,
        "install_stdout": "Version '0.8.23' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-diyb_43m --include-path /tmp/slither-diyb_43m/lib --include-path /tmp/slither-diyb_43m/lib/openzeppelin-contracts --allow-paths /tmp/slither-diyb_43m,/tmp/slither-diyb_43m/lib,/tmp/slither-diyb_43m/lib/openzeppelin-contracts,/tmp/slither-diyb_43m/src",
    "remappings": [
        "openzeppelin-contracts/=lib/openzeppelin-contracts/",
        "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"
    ],
    "source_files": [
        "@1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol",
        "@1inch/solidity-utils/contracts/interfaces/IERC7597Permit.sol",
        "@1inch/solidity-utils/contracts/interfaces/IPermit2.sol",
        "@1inch/solidity-utils/contracts/interfaces/IWETH.sol",
        "@1inch/solidity-utils/contracts/libraries/ECDSA.sol",
        "@1inch/solidity-utils/contracts/libraries/RevertReasonForwarder.sol",
        "@1inch/solidity-utils/contracts/libraries/SafeERC20.sol",
        "@openzeppelin/contracts/interfaces/IERC1271.sol",
        "@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol",
        "@openzeppelin/contracts/token/ERC20/IERC20.sol",
        "contracts/BalanceManager.sol",
        "contracts/FeeCollector.sol",
        "contracts/interfaces/IBalanceManager.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 46,
    "workspace_hash": "6cca174414bd0e15bc0cc38cd1e416dba46a87fa3719490ff2419fd1930ae8bf",
    "duration_seconds": 0.8599865436553955,
    "solc_version_requested": "0.8.23"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
0
No findings?
yes
Summary
Reviewed BalanceManager/FeeCollector and related interfaces; all external-call entrypoints are gated by operator/owner and no exploitable reentrancy, access control, or signature validation flaws were identified in first-party code.
View stdout
{"no_findings":true,"summary":"Reviewed BalanceManager/FeeCollector and related interfaces; all external-call entrypoints are gated by operator/owner and no exploitable reentrancy, access control, or signature validation flaws were identified in first-party code.","findings":[]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-hnbmo3dv
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019bb043-7011-7702-89c6-285dba7d5cba
--------
user
You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.

Scope rules:
- You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party Solidity sources in this workspace.
- Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
- If there are only dependency files and no first-party sources, set no_findings=true and explain in summary.

Output MUST be valid JSON matching the provided schema.
- If you find nothing meaningful: set no_findings=true and findings=[].
- Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.

Output constraints (IMPORTANT):
- severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
- category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
Keep summary short and concrete.
mcp startup: no servers

thinking
**Reading audit bundle**
exec
/bin/bash -lc ls in /tmp/codex-hnbmo3dv succeeded in 7ms:
@1inch
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
@openzeppelin
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-hnbmo3dv succeeded in 6ms:
This file concatenates the full contents of first-party Solidity sources for auditing.
Do not treat dependency code under lib/ or @openzeppelin/ as first-party.

================================================================================
FILE: @1inch/solidity-utils/contracts/interfaces/IDaiLikePermit.sol
================================================================================
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @title IDaiLikePermit
 * @dev Interface for Dai-like permit function allowing token spending via signatures.
 */
interface IDaiLikePermit {
    /**
     * @notice Approves spending of tokens via off-chain signatures.
     * @param holder Token holder's address.
     * @param spender Spender's address.
     * @param nonce Current nonce of the holder.

thinking
**Reviewing BalanceManager and FeeCollector security**

I've carefully analyzed BalanceManager, FeeCollector, and their interfaces, focusing on owner/operator access control, reentrancy risks, and signature validation. Although some minor risks like operator being unset or zero exist, overall, functions gated by onlyOwner appear secure with no exploitable vulnerabilities or delegatecalls. The signature verification aligns with expectations, and no proxy or upgrade issues surface. I'll conclude no findings for this audit.
codex
{"no_findings":true,"summary":"Reviewed BalanceManager/FeeCollector and related interfaces; all external-call entrypoints are gated by operator/owner and no exploitable reentrancy, access control, or signature validation flaws were identified in first-party code.","findings":[]}
tokens used
20,776
Metadata
{
    "codex": {
        "ran_at": "2026-01-12T03:33:39.372227+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 13,
        "import_count": 14,
        "first_party_contracts_count": 10
    },
    "summary": "Reviewed BalanceManager/FeeCollector and related interfaces; all external-call entrypoints are gated by operator/owner and no exploitable reentrancy, access control, or signature validation flaws were identified in first-party code.",
    "raw_final": {
        "summary": "Reviewed BalanceManager/FeeCollector and related interfaces; all external-call entrypoints are gated by operator/owner and no exploitable reentrancy, access control, or signature validation flaws were identified in first-party code.",
        "findings": [],
        "no_findings": true
    },
    "no_findings": true,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
15
EXT*/BALANCE
4
Total opcodes
3397
Flags
call_family_heavy
View cast disassembly output
00000000: PUSH1 0x40
00000002: PUSH1 0x80
00000004: DUP2
00000005: MSTORE
00000006: PUSH1 0x04
00000008: DUP1
00000009: CALLDATASIZE
0000000a: LT
0000000b: ISZERO
0000000c: PUSH2 0x001e
0000000f: JUMPI
00000010: JUMPDEST
00000011: POP
00000012: POP
00000013: CALLDATASIZE
00000014: ISZERO
00000015: PUSH2 0x001c
00000018: JUMPI
00000019: PUSH0
0000001a: DUP1
0000001b: REVERT
0000001c: JUMPDEST
0000001d: STOP
0000001e: JUMPDEST
0000001f: PUSH0
00000020: CALLDATALOAD
00000021: PUSH1 0xe0
00000023: SHR
00000024: DUP1
00000025: PUSH4 0x038ec2ab
0000002a: EQ
0000002b: PUSH2 0x10ed
0000002e: JUMPI
0000002f: DUP1
00000030: PUSH4 0x10a890af
00000035: EQ
00000036: PUSH2 0x0fb1
00000039: JUMPI
0000003a: DUP1
0000003b: PUSH4 0x1626ba7e
00000040: EQ
00000041: PUSH2 0x0e43
00000044: JUMPI
00000045: DUP1
00000046: PUSH4 0x1f3177ba
0000004b: EQ
0000004c: PUSH2 0x0dac
0000004f: JUMPI
00000050: DUP1
00000051: PUSH4 0x20969d07
00000056: EQ
00000057: PUSH2 0x0cfa
0000005a: JUMPI
0000005b: DUP1
0000005c: PUSH4 0x295861b1
00000061: EQ
00000062: PUSH2 0x0a4a
00000065: JUMPI
00000066: DUP1
00000067: PUSH4 0x343590a4
0000006c: EQ
0000006d: PUSH2 0x095e
00000070: JUMPI
00000071: DUP1
00000072: PUSH4 0x3a9d666f
00000077: EQ
00000078: PUSH2 0x08c7
0000007b: JUMPI
0000007c: DUP1
0000007d: PUSH4 0x3d006abd
00000082: EQ
00000083: PUSH2 0x0854
00000086: JUMPI
00000087: DUP1
00000088: PUSH4 0x4cbdf31c
0000008d: EQ
0000008e: PUSH2 0x07c8
00000091: JUMPI
00000092: DUP1
00000093: PUSH4 0x570ca735
00000098: EQ
00000099: PUSH2 0x0777
0000009c: JUMPI
0000009d: DUP1
0000009e: PUSH4 0x7e5465ba
000000a3: EQ
000000a4: PUSH2 0x070e
000000a7: JUMPI
000000a8: DUP1
000000a9: PUSH4 0x85c01438
000000ae: EQ
000000af: PUSH2 0x061e
000000b2: JUMPI
000000b3: DUP1
000000b4: PUSH4 0xb3ab15fb
000000b9: EQ
000000ba: PUSH2 0x0528
000000bd: JUMPI
000000be: DUP1
000000bf: PUSH4 0xbdbb216a
000000c4: EQ
000000c5: PUSH2 0x027c
000000c8: JUMPI
000000c9: DUP1
000000ca: PUSH4 0xbeabacc8
000000cf: EQ
000000d0: PUSH2 0x01e6
000000d3: JUMPI
000000d4: PUSH4 0xc12ea3ca
000000d9: SUB
000000da: PUSH2 0x0010
000000dd: JUMPI
000000de: CALLVALUE
000000df: PUSH2 0x01e2
000000e2: JUMPI
000000e3: DUP2
000000e4: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000105: CALLDATASIZE
00000106: ADD
00000107: SLT
00000108: PUSH2 0x01e2
0000010b: JUMPI
0000010c: DUP1
0000010d: CALLDATALOAD
0000010e: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000123: SWAP2
00000124: DUP3
00000125: DUP3
00000126: AND
00000127: DUP1
00000128: SWAP3
00000129: SUB
0000012a: PUSH2 0x01e2
0000012d: JUMPI
0000012e: PUSH1 0x24
00000130: CALLDATALOAD
00000131: SWAP3
00000132: PUSH0
00000133: SLOAD
00000134: AND
00000135: CALLER
00000136: SUB
00000137: PUSH2 0x01bb
0000013a: JUMPI
0000013b: DUP3
0000013c: SWAP1
0000013d: PUSH32 0x2e1a7d4d00000000000000000000000000000000000000000000000000000000
0000015e: PUSH0
0000015f: MSTORE
00000160: MSTORE
00000161: PUSH0
00000162: DUP1
00000163: PUSH1 0x24
00000165: DUP2
00000166: DUP1
00000167: PUSH32 0x000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2
00000188: GAS
00000189: CALL
0000018a: ISZERO
0000018b: PUSH2 0x01b1
0000018e: JUMPI
0000018f: ADDRESS
00000190: DUP2
00000191: SUB
00000192: PUSH2 0x0197
00000195: JUMPI
00000196: STOP
00000197: JUMPDEST
00000198: PUSH0
00000199: DUP1
0000019a: DUP1
0000019b: SWAP4
0000019c: DUP2
0000019d: SWAP4
0000019e: PUSH2 0x1388
000001a1: CALL
000001a2: ISZERO
000001a3: PUSH2 0x01a8
000001a6: JUMPI
000001a7: STOP
000001a8: JUMPDEST
000001a9: MLOAD
000001aa: RETURNDATASIZE
000001ab: PUSH0
000001ac: DUP3
000001ad: RETURNDATACOPY
000001ae: RETURNDATASIZE
000001af: SWAP1
000001b0: REVERT
000001b1: JUMPDEST
000001b2: DUP3
000001b3: MLOAD
000001b4: RETURNDATASIZE
000001b5: PUSH0
000001b6: DUP3
000001b7: RETURNDATACOPY
000001b8: RETURNDATASIZE
000001b9: SWAP1
000001ba: REVERT
000001bb: JUMPDEST
000001bc: DUP4
000001bd: MLOAD
000001be: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
000001df: DUP2
000001e0: MSTORE
000001e1: REVERT
000001e2: JUMPDEST
000001e3: PUSH0
000001e4: DUP1
000001e5: REVERT
000001e6: JUMPDEST
000001e7: POP
000001e8: SWAP1
000001e9: CALLVALUE
000001ea: PUSH2 0x01e2
000001ed: JUMPI
000001ee: PUSH1 0x60
000001f0: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000211: CALLDATASIZE
00000212: ADD
00000213: SLT
00000214: PUSH2 0x01e2
00000217: JUMPI
00000218: PUSH2 0x021f
0000021b: PUSH2 0x11ca
0000021e: JUMP
0000021f: JUMPDEST
00000220: SWAP1
00000221: PUSH2 0x0228
00000224: PUSH2 0x1304
00000227: JUMP
00000228: JUMPDEST
00000229: SWAP1
0000022a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000023f: PUSH0
00000240: SLOAD
00000241: AND
00000242: CALLER
00000243: SUB
00000244: PUSH2 0x0254
00000247: JUMPI
00000248: PUSH2 0x001c
0000024b: PUSH1 0x44
0000024d: CALLDATALOAD
0000024e: DUP4
0000024f: DUP6
00000250: PUSH2 0x18bd
00000253: JUMP
00000254: JUMPDEST
00000255: DUP4
00000256: SWAP1
00000257: MLOAD
00000258: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
00000279: DUP2
0000027a: MSTORE
0000027b: REVERT
0000027c: JUMPDEST
0000027d: POP
0000027e: PUSH2 0x0286
00000281: CALLDATASIZE
00000282: PUSH2 0x121b
00000285: JUMP
00000286: JUMPDEST
00000287: SWAP1
00000288: SWAP3
00000289: SWAP2
0000028a: SWAP4
0000028b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000002a0: PUSH0
000002a1: SLOAD
000002a2: AND
000002a3: CALLER
000002a4: SUB
000002a5: PUSH2 0x0501
000002a8: JUMPI
000002a9: DUP2
000002aa: DUP6
000002ab: SUB
000002ac: PUSH2 0x04da
000002af: JUMPI
000002b0: SWAP5
000002b1: SWAP4
000002b2: SWAP3
000002b3: SWAP1
000002b4: PUSH2 0x02bc
000002b7: DUP5
000002b8: PUSH2 0x16aa
000002bb: JUMP
000002bc: JUMPDEST
000002bd: SWAP6
000002be: PUSH2 0x02c9
000002c1: DUP7
000002c2: MLOAD
000002c3: SWAP8
000002c4: DUP9
000002c5: PUSH2 0x1327
000002c8: JUMP
000002c9: JUMPDEST
000002ca: DUP5
000002cb: DUP8
000002cc: MSTORE
000002cd: PUSH2 0x02d5
000002d0: DUP6
000002d1: PUSH2 0x16aa
000002d4: JUMP
000002d5: JUMPDEST
000002d6: SWAP4
000002d7: PUSH1 0x20
000002d9: SWAP3
000002da: DUP4
000002db: DUP10
000002dc: ADD
000002dd: SWAP5
000002de: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
000002ff: DUP1
00000300: SWAP8
00000301: ADD
00000302: CALLDATASIZE
00000303: DUP8
00000304: CALLDATACOPY
00000305: PUSH2 0x030d
00000308: DUP9
00000309: PUSH2 0x16aa
0000030c: JUMP
0000030d: JUMPDEST
0000030e: SWAP8
0000030f: PUSH2 0x031a
00000312: DUP11
00000313: MLOAD
00000314: SWAP10
00000315: DUP11
00000316: PUSH2 0x1327
00000319: JUMP
0000031a: JUMPDEST
0000031b: DUP1
0000031c: DUP10
0000031d: MSTORE
0000031e: DUP8
0000031f: PUSH2 0x0327
00000322: DUP3
00000323: PUSH2 0x16aa
00000326: JUMP
00000327: JUMPDEST
00000328: ADD
00000329: PUSH0
0000032a: JUMPDEST
0000032b: DUP2
0000032c: DUP2
0000032d: LT
0000032e: PUSH2 0x04cb
00000331: JUMPI
00000332: POP
00000333: POP
00000334: PUSH0
00000335: JUMPDEST
00000336: DUP2
00000337: DUP2
00000338: LT
00000339: PUSH2 0x0453
0000033c: JUMPI
0000033d: POP
0000033e: POP
0000033f: POP
00000340: POP
00000341: POP
00000342: DUP6
00000343: MLOAD
00000344: SWAP7
00000345: DUP8
00000346: SWAP7
00000347: PUSH32 0x9cb0e09d00000000000000000000000000000000000000000000000000000000
00000368: DUP9
00000369: MSTORE
0000036a: PUSH1 0x44
0000036c: DUP9
0000036d: ADD
0000036e: SWAP3
0000036f: DUP9
00000370: ADD
00000371: MSTORE
00000372: MLOAD
00000373: DUP1
00000374: SWAP2
00000375: MSTORE
00000376: PUSH1 0x64
00000378: DUP7
00000379: ADD
0000037a: SWAP3
0000037b: SWAP1
0000037c: PUSH0
0000037d: JUMPDEST
0000037e: DUP2
0000037f: DUP2
00000380: LT
00000381: PUSH2 0x043a
00000384: JUMPI
00000385: POP
00000386: POP
00000387: POP
00000388: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000003a9: DUP6
000003aa: DUP4
000003ab: SUB
000003ac: ADD
000003ad: PUSH1 0x24
000003af: DUP7
000003b0: ADD
000003b1: MSTORE
000003b2: DUP4
000003b3: MLOAD
000003b4: SWAP1
000003b5: DUP2
000003b6: DUP4
000003b7: MSTORE
000003b8: DUP1
000003b9: DUP4
000003ba: ADD
000003bb: SWAP3
000003bc: DUP2
000003bd: DUP1
000003be: DUP5
000003bf: PUSH1 0x05
000003c1: SHL
000003c2: DUP4
000003c3: ADD
000003c4: ADD
000003c5: SWAP7
000003c6: ADD
000003c7: SWAP5
000003c8: PUSH0
000003c9: SWAP2
000003ca: JUMPDEST
000003cb: DUP5
000003cc: DUP4
000003cd: LT
000003ce: PUSH2 0x03d7
000003d1: JUMPI
000003d2: DUP9
000003d3: DUP9
000003d4: SUB
000003d5: DUP10
000003d6: REVERT
000003d7: JUMPDEST
000003d8: SWAP2
000003d9: SWAP4
000003da: SWAP6
000003db: SWAP8
000003dc: POP
000003dd: SWAP2
000003de: SWAP4
000003df: SWAP6
000003e0: DUP3
000003e1: DUP3
000003e2: DUP3
000003e3: SUB
000003e4: ADD
000003e5: DUP8
000003e6: MSTORE
000003e7: DUP5
000003e8: DUP4
000003e9: DUP10
000003ea: MLOAD
000003eb: DUP1
000003ec: MLOAD
000003ed: SWAP1
000003ee: DUP2
000003ef: DUP6
000003f0: MSTORE
000003f1: PUSH0
000003f2: JUMPDEST
000003f3: DUP3
000003f4: DUP2
000003f5: LT
000003f6: PUSH2 0x0423
000003f9: JUMPI
000003fa: POP
000003fb: POP
000003fc: DUP4
000003fd: DUP4
000003fe: SWAP3
000003ff: PUSH1 0x1f
00000401: DUP4
00000402: PUSH0
00000403: DUP7
00000404: DUP1
00000405: SWAP7
00000406: PUSH1 0x01
00000408: SWAP11
00000409: ADD
0000040a: ADD
0000040b: MSTORE
0000040c: ADD
0000040d: AND
0000040e: ADD
0000040f: ADD
00000410: SWAP10
00000411: ADD
00000412: SWAP8
00000413: ADD
00000414: SWAP4
00000415: ADD
00000416: SWAP1
00000417: SWAP2
00000418: DUP9
00000419: SWAP8
0000041a: SWAP7
0000041b: SWAP6
0000041c: SWAP4
0000041d: SWAP5
0000041e: SWAP3
0000041f: PUSH2 0x03ca
00000422: JUMP
00000423: JUMPDEST
00000424: DUP2
00000425: DUP2
00000426: ADD
00000427: DUP6
00000428: ADD
00000429: MLOAD
0000042a: DUP7
0000042b: DUP3
0000042c: ADD
0000042d: DUP7
0000042e: ADD
0000042f: MSTORE
00000430: DUP10
00000431: SWAP5
00000432: DUP9
00000433: SWAP5
00000434: POP
00000435: ADD
00000436: PUSH2 0x03f2
00000439: JUMP
0000043a: JUMPDEST
0000043b: DUP3
0000043c: MLOAD
0000043d: ISZERO
0000043e: ISZERO
0000043f: DUP6
00000440: MSTORE
00000441: DUP9
00000442: SWAP8
00000443: POP
00000444: SWAP4
00000445: DUP4
00000446: ADD
00000447: SWAP4
00000448: SWAP2
00000449: DUP4
0000044a: ADD
0000044b: SWAP2
0000044c: PUSH1 0x01
0000044e: ADD
0000044f: PUSH2 0x037d
00000452: JUMP
00000453: JUMPDEST
00000454: DUP1
00000455: PUSH0
00000456: DUP1
00000457: DUP14
00000458: SWAP15
00000459: SWAP9
0000045a: SWAP10
0000045b: SWAP11
0000045c: SWAP13
0000045d: SWAP14
0000045e: PUSH2 0x0472
00000461: PUSH2 0x046d
00000464: PUSH1 0x01
00000466: SWAP7
00000467: DUP9
00000468: DUP13
00000469: PUSH2 0x16c2
0000046c: JUMP
0000046d: JUMPDEST
0000046e: PUSH2 0x16ff
00000471: JUMP
00000472: JUMPDEST
00000473: SWAP1
00000474: PUSH2 0x047e
00000477: DUP6
00000478: DUP11
00000479: CALLDATASIZE
0000047a: PUSH2 0x16c2
0000047d: JUMP
0000047e: JUMPDEST
0000047f: CALLDATALOAD
00000480: PUSH2 0x048a
00000483: DUP7
00000484: DUP12
00000485: DUP12
00000486: PUSH2 0x1720
00000489: JUMP
0000048a: JUMPDEST
0000048b: DUP1
0000048c: SWAP4
0000048d: MLOAD
0000048e: SWAP4
0000048f: DUP5
00000490: SWAP3
00000491: DUP4
00000492: CALLDATACOPY
00000493: DUP2
00000494: ADD
00000495: DUP6
00000496: DUP2
00000497: MSTORE
00000498: SUB
00000499: SWAP3
0000049a: GAS
0000049b: CALL
0000049c: DUP13
0000049d: PUSH2 0x04ae
000004a0: DUP4
000004a1: PUSH2 0x04a8
000004a4: PUSH2 0x164d
000004a7: JUMP
000004a8: JUMPDEST
000004a9: SWAP3
000004aa: PUSH2 0x1780
000004ad: JUMP
000004ae: JUMPDEST
000004af: MSTORE
000004b0: PUSH2 0x04b9
000004b3: DUP3
000004b4: DUP10
000004b5: PUSH2 0x1780
000004b8: JUMP
000004b9: JUMPDEST
000004ba: SWAP1
000004bb: ISZERO
000004bc: ISZERO
000004bd: SWAP1
000004be: MSTORE
000004bf: ADD
000004c0: SWAP11
000004c1: SWAP10
000004c2: SWAP9
000004c3: SWAP7
000004c4: SWAP6
000004c5: SWAP5
000004c6: SWAP11
000004c7: PUSH2 0x0335
000004ca: JUMP
000004cb: JUMPDEST
000004cc: PUSH1 0x60
000004ce: DUP12
000004cf: DUP3
000004d0: ADD
000004d1: DUP10
000004d2: ADD
000004d3: MSTORE
000004d4: DUP8
000004d5: ADD
000004d6: PUSH2 0x032a
000004d9: JUMP
000004da: JUMPDEST
000004db: DUP6
000004dc: MLOAD
000004dd: PUSH32 0xff633a3800000000000000000000000000000000000000000000000000000000
000004fe: DUP2
000004ff: MSTORE
00000500: REVERT
00000501: JUMPDEST
00000502: DUP6
00000503: MLOAD
00000504: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
00000525: DUP2
00000526: MSTORE
00000527: REVERT
00000528: JUMPDEST
00000529: POP
0000052a: SWAP1
0000052b: CALLVALUE
0000052c: PUSH2 0x01e2
0000052f: JUMPI
00000530: PUSH1 0x20
00000532: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000553: CALLDATASIZE
00000554: ADD
00000555: SLT
00000556: PUSH2 0x01e2
00000559: JUMPI
0000055a: PUSH2 0x0561
0000055d: PUSH2 0x11ca
00000560: JUMP
00000561: JUMPDEST
00000562: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000577: SWAP3
00000578: DUP4
00000579: PUSH32 0x0000000000000000000000009f8102b1bb05785bad2874f2c7b1aaea4c6d976a
0000059a: AND
0000059b: CALLER
0000059c: SUB
0000059d: PUSH2 0x05f7
000005a0: JUMPI
000005a1: PUSH32 0x4721129e0e676ed6a92909bb24e853ccdd63ad72280cc2e974e38e480e0e6e54
000005c2: PUSH1 0x20
000005c4: DUP5
000005c5: DUP7
000005c6: DUP6
000005c7: AND
000005c8: SWAP1
000005c9: DUP2
000005ca: PUSH32 0xffffffffffffffffffffffff0000000000000000000000000000000000000000
000005eb: PUSH0
000005ec: SLOAD
000005ed: AND
000005ee: OR
000005ef: PUSH0
000005f0: SSTORE
000005f1: MLOAD
000005f2: SWAP1
000005f3: DUP2
000005f4: MSTORE
000005f5: LOG1
000005f6: STOP
000005f7: JUMPDEST
000005f8: DUP3
000005f9: MLOAD
000005fa: PUSH32 0x4ca8886700000000000000000000000000000000000000000000000000000000
0000061b: DUP2
0000061c: MSTORE
0000061d: REVERT
0000061e: JUMPDEST
0000061f: POP
00000620: PUSH2 0x0628
00000623: CALLDATASIZE
00000624: PUSH2 0x1284
00000627: JUMP
00000628: JUMPDEST
00000629: SWAP6
0000062a: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000063f: PUSH0
00000640: SWAP7
00000641: SWAP6
00000642: SWAP3
00000643: SWAP5
00000644: SWAP4
00000645: SWAP7
00000646: SLOAD
00000647: AND
00000648: CALLER
00000649: SUB
0000064a: PUSH2 0x06e7
0000064d: JUMPI
0000064e: DUP6
0000064f: DUP3
00000650: SUB
00000651: PUSH2 0x06c0
00000654: JUMPI
00000655: DUP7
00000656: DUP3
00000657: SUB
00000658: PUSH2 0x06c0
0000065b: JUMPI
0000065c: POP
0000065d: PUSH0
0000065e: JUMPDEST
0000065f: DUP2
00000660: DUP2
00000661: LT
00000662: PUSH2 0x0667
00000665: JUMPI
00000666: STOP
00000667: JUMPDEST
00000668: PUSH0
00000669: DUP1
0000066a: PUSH2 0x0677
0000066d: PUSH2 0x046d
00000670: DUP5
00000671: DUP7
00000672: DUP11
00000673: PUSH2 0x16c2
00000676: JUMP
00000677: JUMPDEST
00000678: DUP11
00000679: PUSH2 0x0683
0000067c: DUP6
0000067d: DUP13
0000067e: DUP11
0000067f: PUSH2 0x16c2
00000682: JUMP
00000683: JUMPDEST
00000684: CALLDATALOAD
00000685: PUSH2 0x068f
00000688: DUP7
00000689: DUP13
0000068a: DUP11
0000068b: PUSH2 0x1720
0000068e: JUMP
0000068f: JUMPDEST
00000690: DUP1
00000691: SWAP4
00000692: MLOAD
00000693: SWAP4
00000694: DUP5
00000695: SWAP3
00000696: DUP4
00000697: CALLDATACOPY
00000698: DUP2
00000699: ADD
0000069a: DUP6
0000069b: DUP2
0000069c: MSTORE
0000069d: SUB
0000069e: SWAP3
0000069f: GAS
000006a0: CALL
000006a1: PUSH2 0x06a8
000006a4: PUSH2 0x164d
000006a7: JUMP
000006a8: JUMPDEST
000006a9: POP
000006aa: ISZERO
000006ab: PUSH2 0x06b6
000006ae: JUMPI
000006af: PUSH1 0x01
000006b1: ADD
000006b2: PUSH2 0x065e
000006b5: JUMP
000006b6: JUMPDEST
000006b7: DUP8
000006b8: MLOAD
000006b9: RETURNDATASIZE
000006ba: PUSH0
000006bb: DUP3
000006bc: RETURNDATACOPY
000006bd: RETURNDATASIZE
000006be: SWAP1
000006bf: REVERT
000006c0: JUMPDEST
000006c1: DUP8
000006c2: MLOAD
000006c3: PUSH32 0xff633a3800000000000000000000000000000000000000000000000000000000
000006e4: DUP2
000006e5: MSTORE
000006e6: REVERT
000006e7: JUMPDEST
000006e8: DUP8
000006e9: MLOAD
000006ea: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
0000070b: DUP2
0000070c: MSTORE
0000070d: REVERT
0000070e: JUMPDEST
0000070f: POP
00000710: SWAP1
00000711: CALLVALUE
00000712: PUSH2 0x01e2
00000715: JUMPI
00000716: DUP1
00000717: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000738: CALLDATASIZE
00000739: ADD
0000073a: SLT
0000073b: PUSH2 0x01e2
0000073e: JUMPI
0000073f: PUSH2 0x0746
00000742: PUSH2 0x11ca
00000745: JUMP
00000746: JUMPDEST
00000747: PUSH2 0x074e
0000074a: PUSH2 0x1304
0000074d: JUMP
0000074e: JUMPDEST
0000074f: SWAP2
00000750: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000765: PUSH0
00000766: SLOAD
00000767: AND
00000768: CALLER
00000769: SUB
0000076a: PUSH2 0x0254
0000076d: JUMPI
0000076e: PUSH2 0x001c
00000771: DUP4
00000772: DUP4
00000773: PUSH2 0x1a23
00000776: JUMP
00000777: JUMPDEST
00000778: DUP3
00000779: CALLVALUE
0000077a: PUSH2 0x01e2
0000077d: JUMPI
0000077e: PUSH0
0000077f: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000007a0: CALLDATASIZE
000007a1: ADD
000007a2: SLT
000007a3: PUSH2 0x01e2
000007a6: JUMPI
000007a7: PUSH1 0x20
000007a9: SWAP1
000007aa: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000007bf: PUSH0
000007c0: SLOAD
000007c1: AND
000007c2: SWAP1
000007c3: MLOAD
000007c4: SWAP1
000007c5: DUP2
000007c6: MSTORE
000007c7: RETURN
000007c8: JUMPDEST
000007c9: POP
000007ca: PUSH1 0x80
000007cc: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000007ed: CALLDATASIZE
000007ee: ADD
000007ef: SLT
000007f0: PUSH2 0x01e2
000007f3: JUMPI
000007f4: PUSH8 0xffffffffffffffff
000007fd: DUP2
000007fe: CALLDATALOAD
000007ff: DUP2
00000800: DUP2
00000801: GT
00000802: PUSH2 0x01e2
00000805: JUMPI
00000806: PUSH2 0x0812
00000809: SWAP1
0000080a: CALLDATASIZE
0000080b: SWAP1
0000080c: DUP5
0000080d: ADD
0000080e: PUSH2 0x1199
00000811: JUMP
00000812: JUMPDEST
00000813: PUSH1 0x24
00000815: SWAP3
00000816: SWAP2
00000817: SWAP3
00000818: CALLDATALOAD
00000819: DUP3
0000081a: DUP2
0000081b: GT
0000081c: PUSH2 0x01e2
0000081f: JUMPI
00000820: PUSH2 0x082c
00000823: SWAP1
00000824: CALLDATASIZE
00000825: SWAP1
00000826: DUP7
00000827: ADD
00000828: PUSH2 0x1199
0000082b: JUMP
0000082c: JUMPDEST
0000082d: SWAP1
0000082e: SWAP3
0000082f: PUSH1 0x44
00000831: CALLDATALOAD
00000832: SWAP1
00000833: DUP2
00000834: GT
00000835: PUSH2 0x01e2
00000838: JUMPI
00000839: PUSH2 0x001c
0000083c: SWAP6
0000083d: PUSH2 0x0848
00000840: SWAP2
00000841: CALLDATASIZE
00000842: SWAP2
00000843: ADD
00000844: PUSH2 0x1199
00000847: JUMP
00000848: JUMPDEST
00000849: SWAP4
0000084a: SWAP1
0000084b: SWAP3
0000084c: PUSH1 0x64
0000084e: CALLDATALOAD
0000084f: SWAP6
00000850: PUSH2 0x1794
00000853: JUMP
00000854: JUMPDEST
00000855: POP
00000856: PUSH1 0x60
00000858: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000879: CALLDATASIZE
0000087a: ADD
0000087b: SLT
0000087c: PUSH2 0x01e2
0000087f: JUMPI
00000880: PUSH8 0xffffffffffffffff
00000889: DUP2
0000088a: CALLDATALOAD
0000088b: DUP2
0000088c: DUP2
0000088d: GT
0000088e: PUSH2 0x01e2
00000891: JUMPI
00000892: PUSH2 0x089e
00000895: SWAP1
00000896: CALLDATASIZE
00000897: SWAP1
00000898: DUP5
00000899: ADD
0000089a: PUSH2 0x1199
0000089d: JUMP
0000089e: JUMPDEST
0000089f: SWAP2
000008a0: PUSH1 0x24
000008a2: CALLDATALOAD
000008a3: SWAP1
000008a4: DUP2
000008a5: GT
000008a6: PUSH2 0x01e2
000008a9: JUMPI
000008aa: PUSH2 0x001c
000008ad: SWAP4
000008ae: PUSH2 0x08b9
000008b1: SWAP2
000008b2: CALLDATASIZE
000008b3: SWAP2
000008b4: ADD
000008b5: PUSH2 0x1199
000008b8: JUMP
000008b9: JUMPDEST
000008ba: DUP1
000008bb: SWAP3
000008bc: SWAP2
000008bd: PUSH1 0x44
000008bf: CALLDATALOAD
000008c0: SWAP5
000008c1: CALLDATASIZE
000008c2: SWAP4
000008c3: PUSH2 0x1794
000008c6: JUMP
000008c7: JUMPDEST
000008c8: POP
000008c9: PUSH1 0x80
000008cb: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000008ec: CALLDATASIZE
000008ed: ADD
000008ee: SLT
000008ef: PUSH2 0x01e2
000008f2: JUMPI
000008f3: PUSH8 0xffffffffffffffff
000008fc: DUP2
000008fd: CALLDATALOAD
000008fe: DUP2
000008ff: DUP2
00000900: GT
00000901: PUSH2 0x01e2
00000904: JUMPI
00000905: PUSH2 0x0911
00000908: SWAP1
00000909: CALLDATASIZE
0000090a: SWAP1
0000090b: DUP5
0000090c: ADD
0000090d: PUSH2 0x1199
00000910: JUMP
00000911: JUMPDEST
00000912: SWAP2
00000913: SWAP1
00000914: SWAP3
00000915: PUSH1 0x24
00000917: CALLDATALOAD
00000918: SWAP2
00000919: DUP3
0000091a: GT
0000091b: PUSH2 0x01e2
0000091e: JUMPI
0000091f: PUSH2 0x092a
00000922: SWAP2
00000923: CALLDATASIZE
00000924: SWAP2
00000925: ADD
00000926: PUSH2 0x1199
00000929: JUMP
0000092a: JUMPDEST
0000092b: PUSH1 0x44
0000092d: SWAP4
0000092e: SWAP2
0000092f: SWAP4
00000930: CALLDATALOAD
00000931: SWAP2
00000932: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000947: DUP4
00000948: AND
00000949: DUP4
0000094a: SUB
0000094b: PUSH2 0x01e2
0000094e: JUMPI
0000094f: DUP2
00000950: PUSH2 0x001c
00000953: SWAP6
00000954: PUSH1 0x64
00000956: CALLDATALOAD
00000957: SWAP6
00000958: CALLDATASIZE
00000959: SWAP4
0000095a: PUSH2 0x13cf
0000095d: JUMP
0000095e: JUMPDEST
0000095f: POP
00000960: CALLVALUE
00000961: PUSH2 0x01e2
00000964: JUMPI
00000965: PUSH1 0x20
00000967: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000988: CALLDATASIZE
00000989: ADD
0000098a: SLT
0000098b: PUSH2 0x01e2
0000098e: JUMPI
0000098f: DUP1
00000990: CALLDATALOAD
00000991: PUSH8 0xffffffffffffffff
0000099a: DUP2
0000099b: GT
0000099c: PUSH2 0x01e2
0000099f: JUMPI
000009a0: PUSH2 0x09ac
000009a3: SWAP1
000009a4: CALLDATASIZE
000009a5: SWAP1
000009a6: DUP4
000009a7: ADD
000009a8: PUSH2 0x11ed
000009ab: JUMP
000009ac: JUMPDEST
000009ad: SWAP2
000009ae: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000009c3: PUSH0
000009c4: SLOAD
000009c5: AND
000009c6: CALLER
000009c7: SUB
000009c8: PUSH2 0x01bb
000009cb: JUMPI
000009cc: PUSH1 0x28
000009ce: SWAP4
000009cf: PUSH1 0x28
000009d1: DUP5
000009d2: MOD
000009d3: PUSH2 0x0a24
000009d6: JUMPI
000009d7: POP
000009d8: POP
000009d9: PUSH0
000009da: JUMPDEST
000009db: DUP3
000009dc: DUP2
000009dd: LT
000009de: PUSH2 0x09e3
000009e1: JUMPI
000009e2: STOP
000009e3: JUMPDEST
000009e4: DUP1
000009e5: PUSH2 0x0a1e
000009e8: PUSH1 0x14
000009ea: DUP7
000009eb: SWAP4
000009ec: ADD
000009ed: PUSH2 0x0a01
000009f0: PUSH2 0x09fb
000009f3: DUP3
000009f4: DUP6
000009f5: DUP10
000009f6: DUP10
000009f7: PUSH2 0x15f1
000009fa: JUMP
000009fb: JUMPDEST
000009fc: SWAP1
000009fd: PUSH2 0x1609
00000a00: JUMP
00000a01: JUMPDEST
00000a02: PUSH2 0x0a15
00000a05: PUSH2 0x09fb
00000a08: PUSH1 0x60
00000a0a: SWAP4
00000a0b: DUP8
00000a0c: DUP8
00000a0d: ADD
00000a0e: SWAP1
00000a0f: DUP11
00000a10: DUP11
00000a11: PUSH2 0x15f1
00000a14: JUMP
00000a15: JUMPDEST
00000a16: DUP3
00000a17: SHR
00000a18: SWAP2
00000a19: SHR
00000a1a: PUSH2 0x1a23
00000a1d: JUMP
00000a1e: JUMPDEST
00000a1f: ADD
00000a20: PUSH2 0x09da
00000a23: JUMP
00000a24: JUMPDEST
00000a25: MLOAD
00000a26: PUSH32 0x947d5a8400000000000000000000000000000000000000000000000000000000
00000a47: DUP2
00000a48: MSTORE
00000a49: REVERT
00000a4a: JUMPDEST
00000a4b: POP
00000a4c: PUSH2 0x0a54
00000a4f: CALLDATASIZE
00000a50: PUSH2 0x1284
00000a53: JUMP
00000a54: JUMPDEST
00000a55: SWAP5
00000a56: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000a6b: PUSH0
00000a6c: SWAP8
00000a6d: SWAP4
00000a6e: SWAP5
00000a6f: SWAP6
00000a70: SWAP8
00000a71: SLOAD
00000a72: AND
00000a73: CALLER
00000a74: SUB
00000a75: PUSH2 0x0cd2
00000a78: JUMPI
00000a79: DUP4
00000a7a: DUP8
00000a7b: SUB
00000a7c: PUSH2 0x0caa
00000a7f: JUMPI
00000a80: PUSH2 0x0a8e
00000a83: DUP8
00000a84: SWAP7
00000a85: SWAP5
00000a86: SWAP4
00000a87: SWAP3
00000a88: SWAP9
00000a89: SWAP8
00000a8a: PUSH2 0x16aa
00000a8d: JUMP
00000a8e: JUMPDEST
00000a8f: SWAP8
00000a90: PUSH2 0x0a9b
00000a93: DUP9
00000a94: MLOAD
00000a95: SWAP10
00000a96: DUP11
00000a97: PUSH2 0x1327
00000a9a: JUMP
00000a9b: JUMPDEST
00000a9c: DUP7
00000a9d: DUP10
00000a9e: MSTORE
00000a9f: PUSH2 0x0aa7
00000aa2: DUP8
00000aa3: PUSH2 0x16aa
00000aa6: JUMP
00000aa7: JUMPDEST
00000aa8: SWAP6
00000aa9: PUSH1 0x20
00000aab: SWAP5
00000aac: DUP6
00000aad: DUP12
00000aae: ADD
00000aaf: SWAP7
00000ab0: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
00000ad1: DUP1
00000ad2: SWAP10
00000ad3: ADD
00000ad4: CALLDATASIZE
00000ad5: DUP10
00000ad6: CALLDATACOPY
00000ad7: PUSH2 0x0adf
00000ada: DUP11
00000adb: PUSH2 0x16aa
00000ade: JUMP
00000adf: JUMPDEST
00000ae0: SWAP10
00000ae1: PUSH2 0x0aec
00000ae4: DUP13
00000ae5: MLOAD
00000ae6: SWAP12
00000ae7: DUP13
00000ae8: PUSH2 0x1327
00000aeb: JUMP
00000aec: JUMPDEST
00000aed: DUP1
00000aee: DUP12
00000aef: MSTORE
00000af0: DUP10
00000af1: PUSH2 0x0af9
00000af4: DUP3
00000af5: PUSH2 0x16aa
00000af8: JUMP
00000af9: JUMPDEST
00000afa: ADD
00000afb: PUSH0
00000afc: JUMPDEST
00000afd: DUP2
00000afe: DUP2
00000aff: LT
00000b00: PUSH2 0x0c9b
00000b03: JUMPI
00000b04: POP
00000b05: POP
00000b06: PUSH0
00000b07: JUMPDEST
00000b08: DUP2
00000b09: DUP2
00000b0a: LT
00000b0b: PUSH2 0x0c27
00000b0e: JUMPI
00000b0f: POP
00000b10: POP
00000b11: POP
00000b12: POP
00000b13: POP
00000b14: POP
00000b15: POP
00000b16: DUP6
00000b17: MLOAD
00000b18: SWAP7
00000b19: DUP8
00000b1a: SWAP7
00000b1b: PUSH32 0x9cb0e09d00000000000000000000000000000000000000000000000000000000
00000b3c: DUP9
00000b3d: MSTORE
00000b3e: PUSH1 0x44
00000b40: DUP9
00000b41: ADD
00000b42: SWAP3
00000b43: DUP9
00000b44: ADD
00000b45: MSTORE
00000b46: MLOAD
00000b47: DUP1
00000b48: SWAP2
00000b49: MSTORE
00000b4a: PUSH1 0x64
00000b4c: DUP7
00000b4d: ADD
00000b4e: SWAP3
00000b4f: SWAP1
00000b50: PUSH0
00000b51: JUMPDEST
00000b52: DUP2
00000b53: DUP2
00000b54: LT
00000b55: PUSH2 0x0c0e
00000b58: JUMPI
00000b59: POP
00000b5a: POP
00000b5b: POP
00000b5c: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000b7d: DUP6
00000b7e: DUP4
00000b7f: SUB
00000b80: ADD
00000b81: PUSH1 0x24
00000b83: DUP7
00000b84: ADD
00000b85: MSTORE
00000b86: DUP4
00000b87: MLOAD
00000b88: SWAP1
00000b89: DUP2
00000b8a: DUP4
00000b8b: MSTORE
00000b8c: DUP1
00000b8d: DUP4
00000b8e: ADD
00000b8f: SWAP3
00000b90: DUP2
00000b91: DUP1
00000b92: DUP5
00000b93: PUSH1 0x05
00000b95: SHL
00000b96: DUP4
00000b97: ADD
00000b98: ADD
00000b99: SWAP7
00000b9a: ADD
00000b9b: SWAP5
00000b9c: PUSH0
00000b9d: SWAP2
00000b9e: JUMPDEST
00000b9f: DUP5
00000ba0: DUP4
00000ba1: LT
00000ba2: PUSH2 0x0bab
00000ba5: JUMPI
00000ba6: DUP9
00000ba7: DUP9
00000ba8: SUB
00000ba9: DUP10
00000baa: REVERT
00000bab: JUMPDEST
00000bac: SWAP2
00000bad: SWAP4
00000bae: SWAP6
00000baf: SWAP8
00000bb0: POP
00000bb1: SWAP2
00000bb2: SWAP4
00000bb3: SWAP6
00000bb4: DUP3
00000bb5: DUP3
00000bb6: DUP3
00000bb7: SUB
00000bb8: ADD
00000bb9: DUP8
00000bba: MSTORE
00000bbb: DUP5
00000bbc: DUP4
00000bbd: DUP10
00000bbe: MLOAD
00000bbf: DUP1
00000bc0: MLOAD
00000bc1: SWAP1
00000bc2: DUP2
00000bc3: DUP6
00000bc4: MSTORE
00000bc5: PUSH0
00000bc6: JUMPDEST
00000bc7: DUP3
00000bc8: DUP2
00000bc9: LT
00000bca: PUSH2 0x0bf7
00000bcd: JUMPI
00000bce: POP
00000bcf: POP
00000bd0: DUP4
00000bd1: DUP4
00000bd2: SWAP3
00000bd3: PUSH1 0x1f
00000bd5: DUP4
00000bd6: PUSH0
00000bd7: DUP7
00000bd8: DUP1
00000bd9: SWAP7
00000bda: PUSH1 0x01
00000bdc: SWAP11
00000bdd: ADD
00000bde: ADD
00000bdf: MSTORE
00000be0: ADD
00000be1: AND
00000be2: ADD
00000be3: ADD
00000be4: SWAP10
00000be5: ADD
00000be6: SWAP8
00000be7: ADD
00000be8: SWAP4
00000be9: ADD
00000bea: SWAP1
00000beb: SWAP2
00000bec: DUP9
00000bed: SWAP8
00000bee: SWAP7
00000bef: SWAP6
00000bf0: SWAP4
00000bf1: SWAP5
00000bf2: SWAP3
00000bf3: PUSH2 0x0b9e
00000bf6: JUMP
00000bf7: JUMPDEST
00000bf8: DUP2
00000bf9: DUP2
00000bfa: ADD
00000bfb: DUP6
00000bfc: ADD
00000bfd: MLOAD
00000bfe: DUP7
00000bff: DUP3
00000c00: ADD
00000c01: DUP7
00000c02: ADD
00000c03: MSTORE
00000c04: DUP10
00000c05: SWAP5
00000c06: DUP9
00000c07: SWAP5
00000c08: POP
00000c09: ADD
00000c0a: PUSH2 0x0bc6
00000c0d: JUMP
00000c0e: JUMPDEST
00000c0f: DUP3
00000c10: MLOAD
00000c11: ISZERO
00000c12: ISZERO
00000c13: DUP6
00000c14: MSTORE
00000c15: DUP9
00000c16: SWAP8
00000c17: POP
00000c18: SWAP4
00000c19: DUP4
00000c1a: ADD
00000c1b: SWAP4
00000c1c: SWAP2
00000c1d: DUP4
00000c1e: ADD
00000c1f: SWAP2
00000c20: PUSH1 0x01
00000c22: ADD
00000c23: PUSH2 0x0b51
00000c26: JUMP
00000c27: JUMPDEST
00000c28: DUP1
00000c29: DUP13
00000c2a: DUP15
00000c2b: SWAP16
00000c2c: SWAP10
00000c2d: SWAP11
00000c2e: SWAP12
00000c2f: SWAP14
00000c30: SWAP15
00000c31: PUSH0
00000c32: DUP10
00000c33: DUP2
00000c34: SWAP3
00000c35: DUP11
00000c36: PUSH2 0x0c60
00000c39: DUP8
00000c3a: DUP16
00000c3b: PUSH2 0x0c59
00000c3e: DUP3
00000c3f: DUP16
00000c40: SWAP3
00000c41: DUP16
00000c42: SWAP1
00000c43: DUP16
00000c44: PUSH1 0x01
00000c46: SWAP16
00000c47: PUSH2 0x046d
00000c4a: SWAP2
00000c4b: PUSH2 0x0c53
00000c4e: SWAP4
00000c4f: PUSH2 0x16c2
00000c52: JUMP
00000c53: JUMPDEST
00000c54: SWAP9
00000c55: PUSH2 0x16c2
00000c58: JUMP
00000c59: JUMPDEST
00000c5a: CALLDATALOAD
00000c5b: SWAP4
00000c5c: PUSH2 0x1720
00000c5f: JUMP
00000c60: JUMPDEST
00000c61: DUP1
00000c62: SWAP4
00000c63: MLOAD
00000c64: SWAP4
00000c65: DUP5
00000c66: SWAP3
00000c67: DUP4
00000c68: CALLDATACOPY
00000c69: DUP2
00000c6a: ADD
00000c6b: DUP6
00000c6c: DUP2
00000c6d: MSTORE
00000c6e: SUB
00000c6f: SWAP3
00000c70: GAS
00000c71: CALL
00000c72: SWAP1
00000c73: PUSH2 0x0c7e
00000c76: DUP4
00000c77: PUSH2 0x04a8
00000c7a: PUSH2 0x164d
00000c7d: JUMP
00000c7e: JUMPDEST
00000c7f: MSTORE
00000c80: PUSH2 0x0c89
00000c83: DUP3
00000c84: DUP12
00000c85: PUSH2 0x1780
00000c88: JUMP
00000c89: JUMPDEST
00000c8a: SWAP1
00000c8b: ISZERO
00000c8c: ISZERO
00000c8d: SWAP1
00000c8e: MSTORE
00000c8f: ADD
00000c90: SWAP13
00000c91: SWAP12
00000c92: SWAP11
00000c93: SWAP9
00000c94: SWAP8
00000c95: SWAP7
00000c96: SWAP13
00000c97: PUSH2 0x0b07
00000c9a: JUMP
00000c9b: JUMPDEST
00000c9c: PUSH1 0x60
00000c9e: DUP14
00000c9f: DUP3
00000ca0: ADD
00000ca1: DUP12
00000ca2: ADD
00000ca3: MSTORE
00000ca4: DUP10
00000ca5: ADD
00000ca6: PUSH2 0x0afc
00000ca9: JUMP
00000caa: JUMPDEST
00000cab: DUP3
00000cac: DUP9
00000cad: MLOAD
00000cae: PUSH32 0xff633a3800000000000000000000000000000000000000000000000000000000
00000ccf: DUP2
00000cd0: MSTORE
00000cd1: REVERT
00000cd2: JUMPDEST
00000cd3: DUP3
00000cd4: DUP9
00000cd5: MLOAD
00000cd6: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
00000cf7: DUP2
00000cf8: MSTORE
00000cf9: REVERT
00000cfa: JUMPDEST
00000cfb: POP
00000cfc: SWAP1
00000cfd: CALLVALUE
00000cfe: PUSH2 0x01e2
00000d01: JUMPI
00000d02: PUSH0
00000d03: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000d24: CALLDATASIZE
00000d25: ADD
00000d26: SLT
00000d27: PUSH2 0x01e2
00000d2a: JUMPI
00000d2b: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000d40: PUSH0
00000d41: SLOAD
00000d42: AND
00000d43: CALLER
00000d44: SUB
00000d45: PUSH2 0x0d86
00000d48: JUMPI
00000d49: PUSH0
00000d4a: DUP1
00000d4b: DUP1
00000d4c: DUP1
00000d4d: SELFBALANCE
00000d4e: CALLER
00000d4f: GAS
00000d50: CALL
00000d51: PUSH2 0x0d58
00000d54: PUSH2 0x164d
00000d57: JUMP
00000d58: JUMPDEST
00000d59: POP
00000d5a: ISZERO
00000d5b: PUSH2 0x0d60
00000d5e: JUMPI
00000d5f: STOP
00000d60: JUMPDEST
00000d61: MLOAD
00000d62: PUSH32 0xb12d13eb00000000000000000000000000000000000000000000000000000000
00000d83: DUP2
00000d84: MSTORE
00000d85: REVERT
00000d86: JUMPDEST
00000d87: MLOAD
00000d88: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
00000da9: DUP2
00000daa: MSTORE
00000dab: REVERT
00000dac: JUMPDEST
00000dad: POP
00000dae: PUSH2 0x0db6
00000db1: CALLDATASIZE
00000db2: PUSH2 0x121b
00000db5: JUMP
00000db6: JUMPDEST
00000db7: SWAP1
00000db8: SWAP4
00000db9: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000dce: PUSH0
00000dcf: SLOAD
00000dd0: AND
00000dd1: CALLER
00000dd2: SUB
00000dd3: PUSH2 0x0501
00000dd6: JUMPI
00000dd7: DUP2
00000dd8: DUP4
00000dd9: SUB
00000dda: PUSH2 0x04da
00000ddd: JUMPI
00000dde: POP
00000ddf: PUSH0
00000de0: JUMPDEST
00000de1: DUP3
00000de2: DUP2
00000de3: LT
00000de4: PUSH2 0x0de9
00000de7: JUMPI
00000de8: STOP
00000de9: JUMPDEST
00000dea: PUSH0
00000deb: DUP1
00000dec: PUSH2 0x0df9
00000def: PUSH2 0x046d
00000df2: DUP5
00000df3: DUP8
00000df4: DUP10
00000df5: PUSH2 0x16c2
00000df8: JUMP
00000df9: JUMPDEST
00000dfa: PUSH2 0x0e04
00000dfd: DUP5
00000dfe: DUP7
00000dff: CALLDATASIZE
00000e00: PUSH2 0x16c2
00000e03: JUMP
00000e04: JUMPDEST
00000e05: CALLDATALOAD
00000e06: PUSH2 0x0e10
00000e09: DUP6
00000e0a: DUP8
00000e0b: DUP12
00000e0c: PUSH2 0x1720
00000e0f: JUMP
00000e10: JUMPDEST
00000e11: SWAP2
00000e12: SWAP1
00000e13: DUP3
00000e14: DUP13
00000e15: MLOAD
00000e16: SWAP4
00000e17: DUP5
00000e18: SWAP3
00000e19: DUP4
00000e1a: CALLDATACOPY
00000e1b: DUP2
00000e1c: ADD
00000e1d: DUP6
00000e1e: DUP2
00000e1f: MSTORE
00000e20: SUB
00000e21: SWAP3
00000e22: GAS
00000e23: CALL
00000e24: PUSH2 0x0e2b
00000e27: PUSH2 0x164d
00000e2a: JUMP
00000e2b: JUMPDEST
00000e2c: POP
00000e2d: ISZERO
00000e2e: PUSH2 0x0e39
00000e31: JUMPI
00000e32: PUSH1 0x01
00000e34: ADD
00000e35: PUSH2 0x0de0
00000e38: JUMP
00000e39: JUMPDEST
00000e3a: DUP6
00000e3b: MLOAD
00000e3c: RETURNDATASIZE
00000e3d: PUSH0
00000e3e: DUP3
00000e3f: RETURNDATACOPY
00000e40: RETURNDATASIZE
00000e41: SWAP1
00000e42: REVERT
00000e43: JUMPDEST
00000e44: POP
00000e45: CALLVALUE
00000e46: PUSH2 0x01e2
00000e49: JUMPI
00000e4a: DUP2
00000e4b: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000e6c: CALLDATASIZE
00000e6d: ADD
00000e6e: SLT
00000e6f: PUSH2 0x01e2
00000e72: JUMPI
00000e73: DUP1
00000e74: CALLDATALOAD
00000e75: SWAP2
00000e76: PUSH8 0xffffffffffffffff
00000e7f: PUSH1 0x24
00000e81: CALLDATALOAD
00000e82: DUP2
00000e83: DUP2
00000e84: GT
00000e85: PUSH2 0x01e2
00000e88: JUMPI
00000e89: PUSH2 0x0e95
00000e8c: SWAP1
00000e8d: CALLDATASIZE
00000e8e: SWAP1
00000e8f: DUP6
00000e90: ADD
00000e91: PUSH2 0x11ed
00000e94: JUMP
00000e95: JUMPDEST
00000e96: SWAP5
00000e97: PUSH0
00000e98: SWAP5
00000e99: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00000eae: SWAP4
00000eaf: CALLER
00000eb0: PUSH32 0x000000000000000000000000111111125421ca6dc452d289314280a0f8842a65
00000ed1: DUP7
00000ed2: AND
00000ed3: SUB
00000ed4: PUSH2 0x0f45
00000ed7: JUMPI
00000ed8: POP
00000ed9: POP
00000eda: SWAP5
00000edb: PUSH2 0x0ee6
00000ede: SWAP2
00000edf: PUSH1 0x20
00000ee1: SWAP7
00000ee2: PUSH2 0x1955
00000ee5: JUMP
00000ee6: JUMPDEST
00000ee7: SWAP1
00000ee8: JUMPDEST
00000ee9: DUP1
00000eea: PUSH0
00000eeb: SLOAD
00000eec: AND
00000eed: SWAP2
00000eee: AND
00000eef: EQ
00000ef0: PUSH2 0x0f1d
00000ef3: JUMPI
00000ef4: JUMPDEST
00000ef5: PUSH32 0xffffffff00000000000000000000000000000000000000000000000000000000
00000f16: SWAP1
00000f17: MLOAD
00000f18: SWAP2
00000f19: AND
00000f1a: DUP2
00000f1b: MSTORE
00000f1c: RETURN
00000f1d: JUMPDEST
00000f1e: PUSH32 0x1626ba7e00000000000000000000000000000000000000000000000000000000
00000f3f: SWAP2
00000f40: POP
00000f41: PUSH2 0x0ef4
00000f44: JUMP
00000f45: JUMPDEST
00000f46: DUP6
00000f47: MLOAD
00000f48: SWAP2
00000f49: PUSH1 0x20
00000f4b: DUP4
00000f4c: ADD
00000f4d: SWAP4
00000f4e: DUP5
00000f4f: MSTORE
00000f50: ADDRESS
00000f51: PUSH1 0x60
00000f53: SHL
00000f54: DUP8
00000f55: DUP5
00000f56: ADD
00000f57: MSTORE
00000f58: PUSH1 0x34
00000f5a: DUP4
00000f5b: MSTORE
00000f5c: PUSH1 0x60
00000f5e: DUP4
00000f5f: ADD
00000f60: SWAP2
00000f61: DUP4
00000f62: DUP4
00000f63: LT
00000f64: SWAP1
00000f65: DUP4
00000f66: GT
00000f67: OR
00000f68: PUSH2 0x0f85
00000f6b: JUMPI
00000f6c: POP
00000f6d: DUP6
00000f6e: MSTORE
00000f6f: MLOAD
00000f70: SWAP1
00000f71: KECCAK256
00000f72: PUSH1 0x20
00000f74: SWAP6
00000f75: PUSH2 0x0f7f
00000f78: SWAP3
00000f79: SWAP1
00000f7a: SWAP2
00000f7b: PUSH2 0x1955
00000f7e: JUMP
00000f7f: JUMPDEST
00000f80: SWAP1
00000f81: PUSH2 0x0ee8
00000f84: JUMP
00000f85: JUMPDEST
00000f86: PUSH1 0x41
00000f88: SWAP1
00000f89: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
00000faa: PUSH0
00000fab: MSTORE
00000fac: MSTORE
00000fad: PUSH1 0x24
00000faf: PUSH0
00000fb0: REVERT
00000fb1: JUMPDEST
00000fb2: POP
00000fb3: CALLVALUE
00000fb4: PUSH2 0x01e2
00000fb7: JUMPI
00000fb8: PUSH1 0x20
00000fba: SWAP1
00000fbb: PUSH1 0x20
00000fbd: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00000fde: CALLDATASIZE
00000fdf: ADD
00000fe0: SLT
00000fe1: PUSH2 0x01e2
00000fe4: JUMPI
00000fe5: DUP1
00000fe6: CALLDATALOAD
00000fe7: PUSH8 0xffffffffffffffff
00000ff0: DUP2
00000ff1: GT
00000ff2: PUSH2 0x01e2
00000ff5: JUMPI
00000ff6: PUSH2 0x1002
00000ff9: SWAP1
00000ffa: CALLDATASIZE
00000ffb: SWAP1
00000ffc: DUP4
00000ffd: ADD
00000ffe: PUSH2 0x11ed
00001001: JUMP
00001002: JUMPDEST
00001003: SWAP3
00001004: SWAP1
00001005: SWAP2
00001006: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000101b: PUSH0
0000101c: SLOAD
0000101d: AND
0000101e: CALLER
0000101f: SUB
00001020: PUSH2 0x10c6
00001023: JUMPI
00001024: PUSH1 0x48
00001026: SWAP5
00001027: PUSH1 0x48
00001029: DUP6
0000102a: MOD
0000102b: PUSH2 0x0a24
0000102e: JUMPI
0000102f: POP
00001030: POP
00001031: PUSH0
00001032: JUMPDEST
00001033: DUP4
00001034: DUP2
00001035: LT
00001036: PUSH2 0x103b
00001039: JUMPI
0000103a: STOP
0000103b: JUMPDEST
0000103c: DUP1
0000103d: PUSH2 0x108e
00001040: PUSH1 0x14
00001042: DUP8
00001043: SWAP4
00001044: ADD
00001045: PUSH2 0x1053
00001048: PUSH2 0x09fb
0000104b: DUP3
0000104c: DUP6
0000104d: DUP11
0000104e: DUP11
0000104f: PUSH2 0x15f1
00001052: JUMP
00001053: JUMPDEST
00001054: SWAP1
00001055: PUSH1 0x60
00001057: SWAP2
00001058: PUSH2 0x107b
0000105b: PUSH2 0x106d
0000105e: PUSH2 0x09fb
00001061: PUSH1 0x28
00001063: DUP9
00001064: ADD
00001065: DUP1
00001066: SWAP6
00001067: DUP14
00001068: DUP14
00001069: PUSH2 0x15f1
0000106c: JUMP
0000106d: JUMPDEST
0000106e: DUP5
0000106f: SHR
00001070: SWAP3
00001071: DUP8
00001072: DUP8
00001073: ADD
00001074: SWAP1
00001075: DUP12
00001076: DUP12
00001077: PUSH2 0x15f1
0000107a: JUMP
0000107b: JUMPDEST
0000107c: SWAP4
0000107d: SWAP1
0000107e: CALLDATALOAD
0000107f: SWAP4
00001080: DUP9
00001081: DUP2
00001082: LT
00001083: PUSH2 0x1094
00001086: JUMPI
00001087: JUMPDEST
00001088: POP
00001089: SHR
0000108a: PUSH2 0x18bd
0000108d: JUMP
0000108e: JUMPDEST
0000108f: ADD
00001090: PUSH2 0x1032
00001093: JUMP
00001094: JUMPDEST
00001095: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000010b6: SWAP1
000010b7: DUP10
000010b8: SUB
000010b9: PUSH1 0x03
000010bb: SHL
000010bc: SHL
000010bd: SWAP1
000010be: SWAP4
000010bf: AND
000010c0: SWAP3
000010c1: PUSH0
000010c2: PUSH2 0x1087
000010c5: JUMP
000010c6: JUMPDEST
000010c7: DUP5
000010c8: MLOAD
000010c9: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
000010ea: DUP2
000010eb: MSTORE
000010ec: REVERT
000010ed: JUMPDEST
000010ee: POP
000010ef: PUSH1 0xa0
000010f1: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
00001112: CALLDATASIZE
00001113: ADD
00001114: SLT
00001115: PUSH2 0x01e2
00001118: JUMPI
00001119: PUSH8 0xffffffffffffffff
00001122: DUP2
00001123: CALLDATALOAD
00001124: DUP2
00001125: DUP2
00001126: GT
00001127: PUSH2 0x01e2
0000112a: JUMPI
0000112b: PUSH2 0x1137
0000112e: SWAP1
0000112f: CALLDATASIZE
00001130: SWAP1
00001131: DUP5
00001132: ADD
00001133: PUSH2 0x1199
00001136: JUMP
00001137: JUMPDEST
00001138: SWAP3
00001139: SWAP1
0000113a: SWAP2
0000113b: PUSH1 0x24
0000113d: CALLDATALOAD
0000113e: DUP2
0000113f: DUP2
00001140: GT
00001141: PUSH2 0x01e2
00001144: JUMPI
00001145: PUSH2 0x1151
00001148: SWAP1
00001149: CALLDATASIZE
0000114a: SWAP1
0000114b: DUP5
0000114c: ADD
0000114d: PUSH2 0x1199
00001150: JUMP
00001151: JUMPDEST
00001152: SWAP2
00001153: SWAP1
00001154: SWAP3
00001155: PUSH1 0x44
00001157: CALLDATALOAD
00001158: SWAP2
00001159: DUP3
0000115a: GT
0000115b: PUSH2 0x01e2
0000115e: JUMPI
0000115f: PUSH2 0x116a
00001162: SWAP2
00001163: CALLDATASIZE
00001164: SWAP2
00001165: ADD
00001166: PUSH2 0x1199
00001169: JUMP
0000116a: JUMPDEST
0000116b: SWAP2
0000116c: PUSH1 0x64
0000116e: CALLDATALOAD
0000116f: SWAP4
00001170: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001185: DUP6
00001186: AND
00001187: DUP6
00001188: SUB
00001189: PUSH2 0x01e2
0000118c: JUMPI
0000118d: PUSH2 0x001c
00001190: SWAP7
00001191: PUSH1 0x84
00001193: CALLDATALOAD
00001194: SWAP7
00001195: PUSH2 0x13cf
00001198: JUMP
00001199: JUMPDEST
0000119a: SWAP2
0000119b: DUP2
0000119c: PUSH1 0x1f
0000119e: DUP5
0000119f: ADD
000011a0: SLT
000011a1: ISZERO
000011a2: PUSH2 0x01e2
000011a5: JUMPI
000011a6: DUP3
000011a7: CALLDATALOAD
000011a8: SWAP2
000011a9: PUSH8 0xffffffffffffffff
000011b2: DUP4
000011b3: GT
000011b4: PUSH2 0x01e2
000011b7: JUMPI
000011b8: PUSH1 0x20
000011ba: DUP1
000011bb: DUP6
000011bc: ADD
000011bd: SWAP5
000011be: DUP5
000011bf: PUSH1 0x05
000011c1: SHL
000011c2: ADD
000011c3: ADD
000011c4: GT
000011c5: PUSH2 0x01e2
000011c8: JUMPI
000011c9: JUMP
000011ca: JUMPDEST
000011cb: PUSH1 0x04
000011cd: CALLDATALOAD
000011ce: SWAP1
000011cf: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000011e4: DUP3
000011e5: AND
000011e6: DUP3
000011e7: SUB
000011e8: PUSH2 0x01e2
000011eb: JUMPI
000011ec: JUMP
000011ed: JUMPDEST
000011ee: SWAP2
000011ef: DUP2
000011f0: PUSH1 0x1f
000011f2: DUP5
000011f3: ADD
000011f4: SLT
000011f5: ISZERO
000011f6: PUSH2 0x01e2
000011f9: JUMPI
000011fa: DUP3
000011fb: CALLDATALOAD
000011fc: SWAP2
000011fd: PUSH8 0xffffffffffffffff
00001206: DUP4
00001207: GT
00001208: PUSH2 0x01e2
0000120b: JUMPI
0000120c: PUSH1 0x20
0000120e: DUP4
0000120f: DUP2
00001210: DUP7
00001211: ADD
00001212: SWAP6
00001213: ADD
00001214: ADD
00001215: GT
00001216: PUSH2 0x01e2
00001219: JUMPI
0000121a: JUMP
0000121b: JUMPDEST
0000121c: PUSH1 0x40
0000121e: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
0000123f: DUP3
00001240: ADD
00001241: SLT
00001242: PUSH2 0x01e2
00001245: JUMPI
00001246: PUSH8 0xffffffffffffffff
0000124f: SWAP2
00001250: PUSH1 0x04
00001252: CALLDATALOAD
00001253: DUP4
00001254: DUP2
00001255: GT
00001256: PUSH2 0x01e2
00001259: JUMPI
0000125a: DUP3
0000125b: PUSH2 0x1266
0000125e: SWAP2
0000125f: PUSH1 0x04
00001261: ADD
00001262: PUSH2 0x1199
00001265: JUMP
00001266: JUMPDEST
00001267: SWAP4
00001268: SWAP1
00001269: SWAP4
0000126a: SWAP3
0000126b: PUSH1 0x24
0000126d: CALLDATALOAD
0000126e: SWAP2
0000126f: DUP3
00001270: GT
00001271: PUSH2 0x01e2
00001274: JUMPI
00001275: PUSH2 0x1280
00001278: SWAP2
00001279: PUSH1 0x04
0000127b: ADD
0000127c: PUSH2 0x1199
0000127f: JUMP
00001280: JUMPDEST
00001281: SWAP1
00001282: SWAP2
00001283: JUMP
00001284: JUMPDEST
00001285: SWAP1
00001286: PUSH1 0x60
00001288: PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc
000012a9: DUP4
000012aa: ADD
000012ab: SLT
000012ac: PUSH2 0x01e2
000012af: JUMPI
000012b0: PUSH8 0xffffffffffffffff
000012b9: PUSH1 0x04
000012bb: CALLDATALOAD
000012bc: DUP2
000012bd: DUP2
000012be: GT
000012bf: PUSH2 0x01e2
000012c2: JUMPI
000012c3: DUP4
000012c4: PUSH2 0x12cf
000012c7: SWAP2
000012c8: PUSH1 0x04
000012ca: ADD
000012cb: PUSH2 0x1199
000012ce: JUMP
000012cf: JUMPDEST
000012d0: SWAP4
000012d1: SWAP1
000012d2: SWAP4
000012d3: SWAP3
000012d4: PUSH1 0x24
000012d6: CALLDATALOAD
000012d7: DUP4
000012d8: DUP2
000012d9: GT
000012da: PUSH2 0x01e2
000012dd: JUMPI
000012de: DUP3
000012df: PUSH2 0x12ea
000012e2: SWAP2
000012e3: PUSH1 0x04
000012e5: ADD
000012e6: PUSH2 0x1199
000012e9: JUMP
000012ea: JUMPDEST
000012eb: SWAP4
000012ec: SWAP1
000012ed: SWAP4
000012ee: SWAP3
000012ef: PUSH1 0x44
000012f1: CALLDATALOAD
000012f2: SWAP2
000012f3: DUP3
000012f4: GT
000012f5: PUSH2 0x01e2
000012f8: JUMPI
000012f9: PUSH2 0x1280
000012fc: SWAP2
000012fd: PUSH1 0x04
000012ff: ADD
00001300: PUSH2 0x1199
00001303: JUMP
00001304: JUMPDEST
00001305: PUSH1 0x24
00001307: CALLDATALOAD
00001308: SWAP1
00001309: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000131e: DUP3
0000131f: AND
00001320: DUP3
00001321: SUB
00001322: PUSH2 0x01e2
00001325: JUMPI
00001326: JUMP
00001327: JUMPDEST
00001328: SWAP1
00001329: PUSH1 0x1f
0000132b: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000134c: SWAP2
0000134d: ADD
0000134e: AND
0000134f: DUP2
00001350: ADD
00001351: SWAP1
00001352: DUP2
00001353: LT
00001354: PUSH8 0xffffffffffffffff
0000135d: DUP3
0000135e: GT
0000135f: OR
00001360: PUSH2 0x1368
00001363: JUMPI
00001364: PUSH1 0x40
00001366: MSTORE
00001367: JUMP
00001368: JUMPDEST
00001369: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
0000138a: PUSH0
0000138b: MSTORE
0000138c: PUSH1 0x41
0000138e: PUSH1 0x04
00001390: MSTORE
00001391: PUSH1 0x24
00001393: PUSH0
00001394: REVERT
00001395: JUMPDEST
00001396: SWAP2
00001397: SWAP1
00001398: DUP3
00001399: ADD
0000139a: DUP1
0000139b: SWAP3
0000139c: GT
0000139d: PUSH2 0x13a2
000013a0: JUMPI
000013a1: JUMP
000013a2: JUMPDEST
000013a3: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000013c4: PUSH0
000013c5: MSTORE
000013c6: PUSH1 0x11
000013c8: PUSH1 0x04
000013ca: MSTORE
000013cb: PUSH1 0x24
000013cd: PUSH0
000013ce: REVERT
000013cf: JUMPDEST
000013d0: SWAP7
000013d1: SWAP5
000013d2: SWAP1
000013d3: SWAP7
000013d4: SWAP6
000013d5: SWAP4
000013d6: SWAP2
000013d7: SWAP6
000013d8: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000013ed: DUP1
000013ee: SWAP6
000013ef: AND
000013f0: SWAP3
000013f1: PUSH1 0x40
000013f3: SWAP8
000013f4: DUP9
000013f5: MLOAD
000013f6: SWAP6
000013f7: PUSH32 0x70a0823100000000000000000000000000000000000000000000000000000000
00001418: SWAP5
00001419: DUP6
0000141a: DUP9
0000141b: MSTORE
0000141c: PUSH1 0x04
0000141e: SWAP12
0000141f: ADDRESS
00001420: DUP14
00001421: DUP11
00001422: ADD
00001423: MSTORE
00001424: PUSH1 0x20
00001426: SWAP10
00001427: DUP11
00001428: DUP11
00001429: PUSH1 0x24
0000142b: DUP2
0000142c: DUP13
0000142d: GAS
0000142e: STATICCALL
0000142f: SWAP10
00001430: DUP11
00001431: ISZERO
00001432: PUSH2 0x15e7
00001435: JUMPI
00001436: PUSH0
00001437: SWAP11
00001438: PUSH2 0x15b8
0000143b: JUMPI
0000143c: JUMPDEST
0000143d: POP
0000143e: PUSH0
0000143f: SLOAD
00001440: AND
00001441: CALLER
00001442: SUB
00001443: PUSH2 0x1590
00001446: JUMPI
00001447: DUP3
00001448: DUP2
00001449: SUB
0000144a: PUSH2 0x1568
0000144d: JUMPI
0000144e: DUP2
0000144f: DUP2
00001450: SUB
00001451: PUSH2 0x1568
00001454: JUMPI
00001455: SWAP1
00001456: DUP10
00001457: SWAP7
00001458: SWAP6
00001459: SWAP5
0000145a: SWAP4
0000145b: SWAP3
0000145c: SWAP2
0000145d: PUSH0
0000145e: JUMPDEST
0000145f: DUP14
00001460: DUP3
00001461: DUP3
00001462: LT
00001463: PUSH2 0x14fa
00001466: JUMPI
00001467: SWAP6
00001468: POP
00001469: POP
0000146a: POP
0000146b: POP
0000146c: POP
0000146d: POP
0000146e: PUSH1 0x24
00001470: SWAP2
00001471: POP
00001472: MLOAD
00001473: DUP1
00001474: SWAP5
00001475: DUP2
00001476: SWAP4
00001477: DUP3
00001478: MSTORE
00001479: ADDRESS
0000147a: DUP12
0000147b: DUP4
0000147c: ADD
0000147d: MSTORE
0000147e: GAS
0000147f: STATICCALL
00001480: SWAP3
00001481: DUP4
00001482: ISZERO
00001483: PUSH2 0x0e39
00001486: JUMPI
00001487: PUSH0
00001488: SWAP4
00001489: PUSH2 0x14c8
0000148c: JUMPI
0000148d: JUMPDEST
0000148e: POP
0000148f: POP
00001490: PUSH2 0x1499
00001493: SWAP2
00001494: SWAP3
00001495: PUSH2 0x1395
00001498: JUMP
00001499: JUMPDEST
0000149a: GT
0000149b: PUSH2 0x14a2
0000149e: JUMPI
0000149f: POP
000014a0: POP
000014a1: JUMP
000014a2: JUMPDEST
000014a3: MLOAD
000014a4: PUSH32 0x3b5c308800000000000000000000000000000000000000000000000000000000
000014c5: DUP2
000014c6: MSTORE
000014c7: REVERT
000014c8: JUMPDEST
000014c9: SWAP1
000014ca: DUP1
000014cb: SWAP4
000014cc: POP
000014cd: DUP2
000014ce: RETURNDATASIZE
000014cf: DUP4
000014d0: GT
000014d1: PUSH2 0x14f3
000014d4: JUMPI
000014d5: JUMPDEST
000014d6: PUSH2 0x14df
000014d9: DUP2
000014da: DUP4
000014db: PUSH2 0x1327
000014de: JUMP
000014df: JUMPDEST
000014e0: DUP2
000014e1: ADD
000014e2: SUB
000014e3: SLT
000014e4: PUSH2 0x01e2
000014e7: JUMPI
000014e8: PUSH2 0x1499
000014eb: SWAP2
000014ec: MLOAD
000014ed: SWAP2
000014ee: PUSH0
000014ef: PUSH2 0x148d
000014f2: JUMP
000014f3: JUMPDEST
000014f4: POP
000014f5: RETURNDATASIZE
000014f6: PUSH2 0x14d5
000014f9: JUMP
000014fa: JUMPDEST
000014fb: DUP8
000014fc: SWAP9
000014fd: SWAP10
000014fe: POP
000014ff: PUSH0
00001500: SWAP2
00001501: SWAP3
00001502: SWAP4
00001503: SWAP5
00001504: SWAP6
00001505: SWAP7
00001506: SWAP8
00001507: SWAP1
00001508: PUSH2 0x1516
0000150b: PUSH2 0x046d
0000150e: DUP6
0000150f: DUP8
00001510: DUP7
00001511: SWAP6
00001512: PUSH2 0x16c2
00001515: JUMP
00001516: JUMPDEST
00001517: SWAP1
00001518: PUSH2 0x1522
0000151b: DUP6
0000151c: DUP9
0000151d: DUP13
0000151e: PUSH2 0x16c2
00001521: JUMP
00001522: JUMPDEST
00001523: CALLDATALOAD
00001524: PUSH2 0x152e
00001527: DUP7
00001528: DUP11
00001529: DUP13
0000152a: PUSH2 0x1720
0000152d: JUMP
0000152e: JUMPDEST
0000152f: DUP1
00001530: SWAP4
00001531: MLOAD
00001532: SWAP4
00001533: DUP5
00001534: SWAP3
00001535: DUP4
00001536: CALLDATACOPY
00001537: DUP2
00001538: ADD
00001539: DUP6
0000153a: DUP2
0000153b: MSTORE
0000153c: SUB
0000153d: SWAP3
0000153e: GAS
0000153f: CALL
00001540: PUSH2 0x1547
00001543: PUSH2 0x164d
00001546: JUMP
00001547: JUMPDEST
00001548: POP
00001549: ISZERO
0000154a: PUSH2 0x155e
0000154d: JUMPI
0000154e: PUSH1 0x01
00001550: ADD
00001551: SWAP1
00001552: DUP11
00001553: SWAP8
00001554: SWAP7
00001555: SWAP6
00001556: SWAP5
00001557: SWAP4
00001558: SWAP3
00001559: SWAP2
0000155a: PUSH2 0x145e
0000155d: JUMP
0000155e: JUMPDEST
0000155f: DUP13
00001560: MLOAD
00001561: RETURNDATASIZE
00001562: PUSH0
00001563: DUP3
00001564: RETURNDATACOPY
00001565: RETURNDATASIZE
00001566: SWAP1
00001567: REVERT
00001568: JUMPDEST
00001569: DUP13
0000156a: DUP13
0000156b: MLOAD
0000156c: PUSH32 0xff633a3800000000000000000000000000000000000000000000000000000000
0000158d: DUP2
0000158e: MSTORE
0000158f: REVERT
00001590: JUMPDEST
00001591: DUP13
00001592: DUP13
00001593: MLOAD
00001594: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
000015b5: DUP2
000015b6: MSTORE
000015b7: REVERT
000015b8: JUMPDEST
000015b9: SWAP1
000015ba: SWAP10
000015bb: POP
000015bc: DUP11
000015bd: DUP2
000015be: DUP2
000015bf: RETURNDATASIZE
000015c0: DUP4
000015c1: GT
000015c2: PUSH2 0x15e0
000015c5: JUMPI
000015c6: JUMPDEST
000015c7: PUSH2 0x15d0
000015ca: DUP2
000015cb: DUP4
000015cc: PUSH2 0x1327
000015cf: JUMP
000015d0: JUMPDEST
000015d1: DUP2
000015d2: ADD
000015d3: SUB
000015d4: SLT
000015d5: PUSH2 0x01e2
000015d8: JUMPI
000015d9: MLOAD
000015da: SWAP9
000015db: PUSH0
000015dc: PUSH2 0x143c
000015df: JUMP
000015e0: JUMPDEST
000015e1: POP
000015e2: RETURNDATASIZE
000015e3: PUSH2 0x15c6
000015e6: JUMP
000015e7: JUMPDEST
000015e8: DUP14
000015e9: MLOAD
000015ea: RETURNDATASIZE
000015eb: PUSH0
000015ec: DUP3
000015ed: RETURNDATACOPY
000015ee: RETURNDATASIZE
000015ef: SWAP1
000015f0: REVERT
000015f1: JUMPDEST
000015f2: SWAP1
000015f3: SWAP4
000015f4: SWAP3
000015f5: SWAP4
000015f6: DUP5
000015f7: DUP4
000015f8: GT
000015f9: PUSH2 0x01e2
000015fc: JUMPI
000015fd: DUP5
000015fe: GT
000015ff: PUSH2 0x01e2
00001602: JUMPI
00001603: DUP2
00001604: ADD
00001605: SWAP3
00001606: SUB
00001607: SWAP1
00001608: JUMP
00001609: JUMPDEST
0000160a: PUSH32 0xffffffffffffffffffffffffffffffffffffffff000000000000000000000000
0000162b: SWAP1
0000162c: CALLDATALOAD
0000162d: DUP2
0000162e: DUP2
0000162f: AND
00001630: SWAP4
00001631: SWAP3
00001632: PUSH1 0x14
00001634: DUP2
00001635: LT
00001636: PUSH2 0x163e
00001639: JUMPI
0000163a: POP
0000163b: POP
0000163c: POP
0000163d: JUMP
0000163e: JUMPDEST
0000163f: PUSH1 0x14
00001641: SUB
00001642: PUSH1 0x03
00001644: SHL
00001645: DUP3
00001646: SWAP1
00001647: SHL
00001648: AND
00001649: AND
0000164a: SWAP2
0000164b: POP
0000164c: JUMP
0000164d: JUMPDEST
0000164e: RETURNDATASIZE
0000164f: ISZERO
00001650: PUSH2 0x16a5
00001653: JUMPI
00001654: RETURNDATASIZE
00001655: SWAP1
00001656: PUSH8 0xffffffffffffffff
0000165f: DUP3
00001660: GT
00001661: PUSH2 0x1368
00001664: JUMPI
00001665: PUSH1 0x40
00001667: MLOAD
00001668: SWAP2
00001669: PUSH2 0x169a
0000166c: PUSH1 0x20
0000166e: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0
0000168f: PUSH1 0x1f
00001691: DUP5
00001692: ADD
00001693: AND
00001694: ADD
00001695: DUP5
00001696: PUSH2 0x1327
00001699: JUMP
0000169a: JUMPDEST
0000169b: DUP3
0000169c: MSTORE
0000169d: RETURNDATASIZE
0000169e: PUSH0
0000169f: PUSH1 0x20
000016a1: DUP5
000016a2: ADD
000016a3: RETURNDATACOPY
000016a4: JUMP
000016a5: JUMPDEST
000016a6: PUSH1 0x60
000016a8: SWAP1
000016a9: JUMP
000016aa: JUMPDEST
000016ab: PUSH8 0xffffffffffffffff
000016b4: DUP2
000016b5: GT
000016b6: PUSH2 0x1368
000016b9: JUMPI
000016ba: PUSH1 0x05
000016bc: SHL
000016bd: PUSH1 0x20
000016bf: ADD
000016c0: SWAP1
000016c1: JUMP
000016c2: JUMPDEST
000016c3: SWAP2
000016c4: SWAP1
000016c5: DUP2
000016c6: LT
000016c7: ISZERO
000016c8: PUSH2 0x16d2
000016cb: JUMPI
000016cc: PUSH1 0x05
000016ce: SHL
000016cf: ADD
000016d0: SWAP1
000016d1: JUMP
000016d2: JUMPDEST
000016d3: PUSH32 0x4e487b7100000000000000000000000000000000000000000000000000000000
000016f4: PUSH0
000016f5: MSTORE
000016f6: PUSH1 0x32
000016f8: PUSH1 0x04
000016fa: MSTORE
000016fb: PUSH1 0x24
000016fd: PUSH0
000016fe: REVERT
000016ff: JUMPDEST
00001700: CALLDATALOAD
00001701: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001716: DUP2
00001717: AND
00001718: DUP2
00001719: SUB
0000171a: PUSH2 0x01e2
0000171d: JUMPI
0000171e: SWAP1
0000171f: JUMP
00001720: JUMPDEST
00001721: SWAP2
00001722: SWAP1
00001723: DUP2
00001724: LT
00001725: ISZERO
00001726: PUSH2 0x16d2
00001729: JUMPI
0000172a: PUSH1 0x05
0000172c: SHL
0000172d: DUP2
0000172e: ADD
0000172f: CALLDATALOAD
00001730: SWAP1
00001731: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1
00001752: DUP2
00001753: CALLDATASIZE
00001754: SUB
00001755: ADD
00001756: DUP3
00001757: SLT
00001758: ISZERO
00001759: PUSH2 0x01e2
0000175c: JUMPI
0000175d: ADD
0000175e: SWAP1
0000175f: DUP2
00001760: CALLDATALOAD
00001761: SWAP2
00001762: PUSH8 0xffffffffffffffff
0000176b: DUP4
0000176c: GT
0000176d: PUSH2 0x01e2
00001770: JUMPI
00001771: PUSH1 0x20
00001773: ADD
00001774: DUP3
00001775: CALLDATASIZE
00001776: SUB
00001777: DUP2
00001778: SGT
00001779: PUSH2 0x01e2
0000177c: JUMPI
0000177d: SWAP2
0000177e: SWAP1
0000177f: JUMP
00001780: JUMPDEST
00001781: DUP1
00001782: MLOAD
00001783: DUP3
00001784: LT
00001785: ISZERO
00001786: PUSH2 0x16d2
00001789: JUMPI
0000178a: PUSH1 0x20
0000178c: SWAP2
0000178d: PUSH1 0x05
0000178f: SHL
00001790: ADD
00001791: ADD
00001792: SWAP1
00001793: JUMP
00001794: JUMPDEST
00001795: SWAP3
00001796: SWAP1
00001797: SWAP5
00001798: SWAP4
00001799: SWAP2
0000179a: SWAP4
0000179b: SELFBALANCE
0000179c: SWAP6
0000179d: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000017b2: PUSH0
000017b3: SLOAD
000017b4: AND
000017b5: CALLER
000017b6: SUB
000017b7: PUSH2 0x1893
000017ba: JUMPI
000017bb: DUP3
000017bc: DUP2
000017bd: SUB
000017be: PUSH2 0x1869
000017c1: JUMPI
000017c2: DUP2
000017c3: DUP2
000017c4: SUB
000017c5: PUSH2 0x1869
000017c8: JUMPI
000017c9: PUSH0
000017ca: JUMPDEST
000017cb: DUP2
000017cc: DUP2
000017cd: LT
000017ce: PUSH2 0x1814
000017d1: JUMPI
000017d2: POP
000017d3: POP
000017d4: POP
000017d5: POP
000017d6: POP
000017d7: POP
000017d8: POP
000017d9: PUSH2 0x17e3
000017dc: SWAP1
000017dd: SELFBALANCE
000017de: SWAP3
000017df: PUSH2 0x1395
000017e2: JUMP
000017e3: JUMPDEST
000017e4: GT
000017e5: PUSH2 0x17ea
000017e8: JUMPI
000017e9: JUMP
000017ea: JUMPDEST
000017eb: PUSH1 0x04
000017ed: PUSH1 0x40
000017ef: MLOAD
000017f0: PUSH32 0x3b5c308800000000000000000000000000000000000000000000000000000000
00001811: DUP2
00001812: MSTORE
00001813: REVERT
00001814: JUMPDEST
00001815: PUSH2 0x1822
00001818: PUSH2 0x046d
0000181b: DUP3
0000181c: DUP5
0000181d: DUP10
0000181e: PUSH2 0x16c2
00001821: JUMP
00001822: JUMPDEST
00001823: PUSH0
00001824: DUP1
00001825: PUSH2 0x182f
00001828: DUP5
00001829: DUP8
0000182a: DUP11
0000182b: PUSH2 0x16c2
0000182e: JUMP
0000182f: JUMPDEST
00001830: CALLDATALOAD
00001831: SWAP3
00001832: PUSH2 0x183c
00001835: DUP6
00001836: DUP10
00001837: DUP14
00001838: PUSH2 0x1720
0000183b: JUMP
0000183c: JUMPDEST
0000183d: SWAP1
0000183e: SWAP5
0000183f: PUSH1 0x40
00001841: SWAP6
00001842: DUP3
00001843: DUP8
00001844: MLOAD
00001845: SWAP4
00001846: DUP5
00001847: SWAP3
00001848: DUP4
00001849: CALLDATACOPY
0000184a: DUP2
0000184b: ADD
0000184c: DUP6
0000184d: DUP2
0000184e: MSTORE
0000184f: SUB
00001850: SWAP3
00001851: GAS
00001852: CALL
00001853: PUSH2 0x185a
00001856: PUSH2 0x164d
00001859: JUMP
0000185a: JUMPDEST
0000185b: POP
0000185c: ISZERO
0000185d: PUSH2 0x01a8
00001860: JUMPI
00001861: POP
00001862: PUSH1 0x01
00001864: ADD
00001865: PUSH2 0x17ca
00001868: JUMP
00001869: JUMPDEST
0000186a: PUSH1 0x04
0000186c: PUSH1 0x40
0000186e: MLOAD
0000186f: PUSH32 0xff633a3800000000000000000000000000000000000000000000000000000000
00001890: DUP2
00001891: MSTORE
00001892: REVERT
00001893: JUMPDEST
00001894: PUSH1 0x04
00001896: PUSH1 0x40
00001898: MLOAD
00001899: PUSH32 0x5fc483c500000000000000000000000000000000000000000000000000000000
000018ba: DUP2
000018bb: MSTORE
000018bc: REVERT
000018bd: JUMPDEST
000018be: SWAP2
000018bf: PUSH1 0x44
000018c1: PUSH1 0x20
000018c3: SWAP3
000018c4: PUSH0
000018c5: SWAP3
000018c6: PUSH1 0x40
000018c8: MLOAD
000018c9: SWAP2
000018ca: PUSH32 0xa9059cbb00000000000000000000000000000000000000000000000000000000
000018eb: DUP4
000018ec: MSTORE
000018ed: PUSH1 0x04
000018ef: DUP4
000018f0: ADD
000018f1: MSTORE
000018f2: PUSH1 0x24
000018f4: DUP3
000018f5: ADD
000018f6: MSTORE
000018f7: DUP3
000018f8: DUP6
000018f9: GAS
000018fa: CALL
000018fb: SWAP1
000018fc: DUP2
000018fd: PUSH2 0x1933
00001900: JUMPI
00001901: JUMPDEST
00001902: POP
00001903: ISZERO
00001904: PUSH2 0x1909
00001907: JUMPI
00001908: JUMP
00001909: JUMPDEST
0000190a: PUSH1 0x04
0000190c: PUSH1 0x40
0000190e: MLOAD
0000190f: PUSH32 0xfb7f507900000000000000000000000000000000000000000000000000000000
00001930: DUP2
00001931: MSTORE
00001932: REVERT
00001933: JUMPDEST
00001934: SWAP1
00001935: POP
00001936: RETURNDATASIZE
00001937: ISZERO
00001938: PUSH2 0x194d
0000193b: JUMPI
0000193c: POP
0000193d: PUSH1 0x01
0000193f: PUSH0
00001940: MLOAD
00001941: EQ
00001942: PUSH1 0x1f
00001944: RETURNDATASIZE
00001945: GT
00001946: AND
00001947: JUMPDEST
00001948: PUSH0
00001949: PUSH2 0x1901
0000194c: JUMP
0000194d: JUMPDEST
0000194e: EXTCODESIZE
0000194f: ISZERO
00001950: ISZERO
00001951: PUSH2 0x1947
00001954: JUMP
00001955: JUMPDEST
00001956: PUSH1 0x40
00001958: MLOAD
00001959: PUSH0
0000195a: SWAP5
0000195b: SWAP4
0000195c: SWAP1
0000195d: SWAP3
0000195e: SWAP1
0000195f: DUP4
00001960: PUSH1 0x41
00001962: DUP3
00001963: EQ
00001964: PUSH2 0x1a0a
00001967: JUMPI
00001968: POP
00001969: PUSH1 0x40
0000196b: EQ
0000196c: PUSH2 0x19c5
0000196f: JUMPI
00001970: POP
00001971: PUSH0
00001972: SWAP2
00001973: POP
00001974: DUP2
00001975: JUMPDEST
00001976: PUSH2 0x197d
00001979: JUMPI
0000197a: POP
0000197b: POP
0000197c: JUMP
0000197d: JUMPDEST
0000197e: PUSH32 0x7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a1
0000199f: PUSH1 0x60
000019a1: DUP4
000019a2: ADD
000019a3: MLOAD
000019a4: LT
000019a5: PUSH2 0x19ac
000019a8: JUMPI
000019a9: POP
000019aa: POP
000019ab: JUMP
000019ac: JUMPDEST
000019ad: PUSH1 0x20
000019af: SWAP3
000019b0: SWAP4
000019b1: POP
000019b2: DUP2
000019b3: PUSH1 0x80
000019b5: SWAP2
000019b6: PUSH0
000019b7: SWAP4
000019b8: MSTORE
000019b9: DUP3
000019ba: DUP1
000019bb: MSTORE
000019bc: PUSH1 0x01
000019be: GAS
000019bf: STATICCALL
000019c0: POP
000019c1: PUSH0
000019c2: MLOAD
000019c3: SWAP1
000019c4: JUMP
000019c5: JUMPDEST
000019c6: PUSH32 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
000019e7: DUP2
000019e8: PUSH1 0x20
000019ea: DUP1
000019eb: DUP7
000019ec: SWAP5
000019ed: ADD
000019ee: CALLDATALOAD
000019ef: SWAP2
000019f0: DUP3
000019f1: PUSH1 0xff
000019f3: SHR
000019f4: PUSH1 0x1b
000019f6: ADD
000019f7: DUP3
000019f8: DUP7
000019f9: ADD
000019fa: MSTORE
000019fb: PUSH1 0x40
000019fd: DUP6
000019fe: ADD
000019ff: CALLDATACOPY
00001a00: AND
00001a01: PUSH1 0x60
00001a03: DUP3
00001a04: ADD
00001a05: MSTORE
00001a06: PUSH2 0x1975
00001a09: JUMP
00001a0a: JUMPDEST
00001a0b: SWAP2
00001a0c: PUSH1 0x40
00001a0e: DUP1
00001a0f: SWAP3
00001a10: POP
00001a11: DUP2
00001a12: ADD
00001a13: CALLDATALOAD
00001a14: PUSH0
00001a15: BYTE
00001a16: PUSH1 0x20
00001a18: DUP5
00001a19: ADD
00001a1a: MSTORE
00001a1b: DUP2
00001a1c: DUP4
00001a1d: ADD
00001a1e: CALLDATACOPY
00001a1f: PUSH2 0x1975
00001a22: JUMP
00001a23: JUMPDEST
00001a24: SWAP1
00001a25: PUSH2 0x1a2e
00001a28: DUP2
00001a29: DUP4
00001a2a: PUSH2 0x1ae4
00001a2d: JUMP
00001a2e: JUMPDEST
00001a2f: ISZERO
00001a30: PUSH2 0x1a37
00001a33: JUMPI
00001a34: POP
00001a35: POP
00001a36: JUMP
00001a37: JUMPDEST
00001a38: PUSH1 0x20
00001a3a: PUSH0
00001a3b: PUSH1 0x44
00001a3d: PUSH1 0x40
00001a3f: MLOAD
00001a40: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00001a61: DUP2
00001a62: MSTORE
00001a63: DUP5
00001a64: PUSH1 0x04
00001a66: DUP3
00001a67: ADD
00001a68: MSTORE
00001a69: DUP3
00001a6a: PUSH1 0x24
00001a6c: DUP3
00001a6d: ADD
00001a6e: MSTORE
00001a6f: DUP3
00001a70: DUP7
00001a71: GAS
00001a72: CALL
00001a73: DUP1
00001a74: PUSH2 0x1ac5
00001a77: JUMPI
00001a78: JUMPDEST
00001a79: ISZERO
00001a7a: SWAP2
00001a7b: DUP3
00001a7c: ISZERO
00001a7d: PUSH2 0x1ab3
00001a80: JUMPI
00001a81: JUMPDEST
00001a82: POP
00001a83: POP
00001a84: PUSH2 0x1a89
00001a87: JUMPI
00001a88: JUMP
00001a89: JUMPDEST
00001a8a: PUSH1 0x04
00001a8c: PUSH1 0x40
00001a8e: MLOAD
00001a8f: PUSH32 0x19be9a9000000000000000000000000000000000000000000000000000000000
00001ab0: DUP2
00001ab1: MSTORE
00001ab2: REVERT
00001ab3: JUMPDEST
00001ab4: PUSH2 0x1abd
00001ab7: SWAP3
00001ab8: POP
00001ab9: PUSH2 0x1ae4
00001abc: JUMP
00001abd: JUMPDEST
00001abe: ISZERO
00001abf: PUSH0
00001ac0: DUP1
00001ac1: PUSH2 0x1a81
00001ac4: JUMP
00001ac5: JUMPDEST
00001ac6: POP
00001ac7: RETURNDATASIZE
00001ac8: ISZERO
00001ac9: PUSH2 0x1adb
00001acc: JUMPI
00001acd: PUSH1 0x01
00001acf: PUSH0
00001ad0: MLOAD
00001ad1: EQ
00001ad2: PUSH1 0x1f
00001ad4: RETURNDATASIZE
00001ad5: GT
00001ad6: AND
00001ad7: PUSH2 0x1a78
00001ada: JUMP
00001adb: JUMPDEST
00001adc: DUP2
00001add: EXTCODESIZE
00001ade: ISZERO
00001adf: ISZERO
00001ae0: PUSH2 0x1a78
00001ae3: JUMP
00001ae4: JUMPDEST
00001ae5: SWAP2
00001ae6: SWAP1
00001ae7: PUSH0
00001ae8: PUSH1 0x44
00001aea: PUSH1 0x20
00001aec: SWAP3
00001aed: PUSH1 0x40
00001aef: MLOAD
00001af0: SWAP1
00001af1: PUSH32 0x095ea7b300000000000000000000000000000000000000000000000000000000
00001b12: DUP3
00001b13: MSTORE
00001b14: PUSH1 0x04
00001b16: DUP3
00001b17: ADD
00001b18: MSTORE
00001b19: PUSH32 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
00001b3a: PUSH1 0x24
00001b3c: DUP3
00001b3d: ADD
00001b3e: MSTORE
00001b3f: DUP3
00001b40: DUP7
00001b41: GAS
00001b42: CALL
00001b43: SWAP2
00001b44: DUP3
00001b45: PUSH2 0x1b4b
00001b48: JUMPI
00001b49: POP
00001b4a: JUMP
00001b4b: JUMPDEST
00001b4c: SWAP1
00001b4d: SWAP2
00001b4e: POP
00001b4f: RETURNDATASIZE
00001b50: ISZERO
00001b51: PUSH2 0x1b62
00001b54: JUMPI
00001b55: POP
00001b56: PUSH1 0x01
00001b58: PUSH0
00001b59: MLOAD
00001b5a: EQ
00001b5b: PUSH1 0x1f
00001b5d: RETURNDATASIZE
00001b5e: GT
00001b5f: AND
00001b60: SWAP1
00001b61: JUMP
00001b62: JUMPDEST
00001b63: EXTCODESIZE
00001b64: ISZERO
00001b65: ISZERO
00001b66: SWAP1
00001b67: JUMP
00001b68: INVALID
00001b69: LOG2
00001b6a: PUSH5 0x6970667358
00001b70: UNKNOWN(0x22)
00001b71: SLT
00001b72: KECCAK256
00001b73: UNKNOWN(0x4C)
00001b74: UNKNOWN(0xBB)
00001b75: RETURNDATASIZE
00001b76: INVALID
00001b77: BALANCE
00001b78: POP
00001b79: MLOAD
00001b7a: ORIGIN
00001b7b: UNKNOWN(0xAC)
00001b7c: UNKNOWN(0xC9)
00001b7d: UNKNOWN(0xA6)
00001b7e: PUSH10 0x238f9a8ba44b9beb10c8
00001b89: UNKNOWN(0xDC)
00001b8a: UNKNOWN(0x4B)
00001b8b: UNKNOWN(0x4B)
00001b8c: PUSH29

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": "0x038ec2ab",
            "selector": "0x038ec2ab",
            "calldata_variants": [
                "0x038ec2ab",
                "0x038ec2ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a890af",
            "selector": "0x10a890af",
            "calldata_variants": [
                "0x10a890af",
                "0x10a890af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1626ba7e",
            "selector": "0x1626ba7e",
            "calldata_variants": [
                "0x1626ba7e",
                "0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1f3177ba",
            "selector": "0x1f3177ba",
            "calldata_variants": [
                "0x1f3177ba",
                "0x1f3177ba0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x20969d07",
            "selector": "0x20969d07",
            "calldata_variants": [
                "0x20969d07",
                "0x20969d070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x295861b1",
            "selector": "0x295861b1",
            "calldata_variants": [
                "0x295861b1",
                "0x295861b10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x343590a4",
            "selector": "0x343590a4",
            "calldata_variants": [
                "0x343590a4",
                "0x343590a40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3a9d666f",
            "selector": "0x3a9d666f",
            "calldata_variants": [
                "0x3a9d666f",
                "0x3a9d666f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "guards_detected": [
        {
            "pc": 7034,
            "type": "tx_origin_used"
        }
    ]
}
medium other detector Untrusted CALL target/value reachable 45 no no
view
trace_id: 0x0c154690400d4e15e3443f86adb860413aaabd69288ea17652746f82cc604320
call_targets: 0x544e62df13d6273e64b06ac1afd925c8dcbc6569
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0c154690400d4e15e3443f86adb860413aaabd69288ea17652746f82cc604320",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x544e62df13d6273e64b06ac1afd925c8dcbc6569"
    ],
    "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": "0x038ec2ab",
            "selector": "0x038ec2ab",
            "calldata_variants": [
                "0x038ec2ab",
                "0x038ec2ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a890af",
            "selector": "0x10a890af",
            "calldata_variants": [
                "0x10a890af",
                "0x10a890af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1626ba7e",
            "selector": "0x1626ba7e",
            "calldata_variants": [
                "0x1626ba7e",
                "0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1f3177ba",
            "selector": "0x1f3177ba",
            "calldata_variants": [
                "0x1f3177ba",
                "0x1f3177ba0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x20969d07",
            "selector": "0x20969d07",
            "calldata_variants": [
                "0x20969d07",
                "0x20969d070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x295861b1",
            "selector": "0x295861b1",
            "calldata_variants": [
                "0x295861b1",
                "0x295861b10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x343590a4",
            "selector": "0x343590a4",
            "calldata_variants": [
                "0x343590a4",
                "0x343590a40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3a9d666f",
            "selector": "0x3a9d666f",
            "calldata_variants": [
                "0x3a9d666f",
                "0x3a9d666f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 393,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 417,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1179,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 12,
    "guards_detected": [
        {
            "pc": 7034,
            "type": "tx_origin_used"
        }
    ],
    "untrusted_call_count": 12
}
medium other detector ETH value transfer possible 40 no no
view
trace_id: 0x0c154690400d4e15e3443f86adb860413aaabd69288ea17652746f82cc604320
call_targets: 0x544e62df13d6273e64b06ac1afd925c8dcbc6569
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x0c154690400d4e15e3443f86adb860413aaabd69288ea17652746f82cc604320",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0x544e62df13d6273e64b06ac1afd925c8dcbc6569"
    ],
    "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": "0x038ec2ab",
            "selector": "0x038ec2ab",
            "calldata_variants": [
                "0x038ec2ab",
                "0x038ec2ab0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10a890af",
            "selector": "0x10a890af",
            "calldata_variants": [
                "0x10a890af",
                "0x10a890af0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1626ba7e",
            "selector": "0x1626ba7e",
            "calldata_variants": [
                "0x1626ba7e",
                "0x1626ba7e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x1f3177ba",
            "selector": "0x1f3177ba",
            "calldata_variants": [
                "0x1f3177ba",
                "0x1f3177ba0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x20969d07",
            "selector": "0x20969d07",
            "calldata_variants": [
                "0x20969d07",
                "0x20969d070000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x295861b1",
            "selector": "0x295861b1",
            "calldata_variants": [
                "0x295861b1",
                "0x295861b10000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x343590a4",
            "selector": "0x343590a4",
            "calldata_variants": [
                "0x343590a4",
                "0x343590a40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x3a9d666f",
            "selector": "0x3a9d666f",
            "calldata_variants": [
                "0x3a9d666f",
                "0x3a9d666f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 393,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 417,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 1179,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 12,
    "guards_detected": [
        {
            "pc": 7034,
            "type": "tx_origin_used"
        }
    ]
}
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": 15
}