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

Analysis Run

019c0ea9-0817-7365-836d-3522c390767e

complete
Chain ID
1
Address
Block Number
Created
Fri, Jan 30, 2026 11:28 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
Present
Best current signal
Untrusted CALL target/value reachable
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
41746 artifact.fetch complete 1 / 3 2 months ago
41747 proxy.resolve complete 1 / 3 2 months ago
41748 tool.cast_disasm complete 1 / 3 2 months ago
41749 analysis.bundle complete 1 / 3 2 months ago
41750 capability.graph complete 1 / 3 2 months ago
41751 detector.run complete 1 / 3 2 months ago
41752 validation.fork complete 1 / 3 2 months ago
42311 report.consolidate complete 1 / 6 2 months ago
42312 tool.slither complete 1 / 2 2 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.4.20 (solc-select)
View stderr
'forge clean' running (wd: /tmp/slither-2po_fql8)
'forge config --json' running
'forge build --build-info --skip ./test/** ./script/** --force' running (wd: /tmp/slither-2po_fql8)

Eightherbank.isContract(address) (contracts/Contract.sol#416-424) is declared view but contains assembly code
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#constant-functions-using-assembly-code

Eightherbank.sell(uint256) (contracts/Contract.sol#315-348) performs a multiplication on the result of a division:
	- _dividends = SafeMath.div(SafeMath.mul(_ethereum,dividendFee_),100) (contracts/Contract.sol#328-333)
	- profitPerShare_ = SafeMath.add(profitPerShare_,(_dividends * magnitude) / tokenSupply_) (contracts/Contract.sol#345-346)
Eightherbank.purchaseTokens(address,uint256,address) (contracts/Contract.sol#626-714) performs a multiplication on the result of a division:
	- _undividedDividends = SafeMath.div(SafeMath.mul(_incomingEthereum,dividendFee_),100) (contracts/Contract.sol#634-635)
	- _referralBonus = SafeMath.div(SafeMath.mul(_undividedDividends,refferalFee_),100) (contracts/Contract.sol#635-636)
Eightherbank.purchaseTokens(address,uint256,address) (contracts/Contract.sol#626-714) performs a multiplication on the result of a division:
	- _fee = _fee - (_fee - (_amountOfTokens * (_dividends * magnitude / (tokenSupply_)))) (contracts/Contract.sol#687-688)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#divide-before-multiply

Eightherbank.setAdministrator(address) (contracts/Contract.sol#451-454) should emit an event for: 
	- owner = newowner (contracts/Contract.sol#453-454) 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-access-control

Eightherbank.setStakingRequirement(uint256) (contracts/Contract.sol#457-463) should emit an event for: 
	- stakingRequirement = _amountOfTokens (contracts/Contract.sol#460-462) 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-events-arithmetic

Eightherbank.withdraw()._customerAddress (contracts/Contract.sol#293-294) lacks a zero-check on :
		- _customerAddress.transfer(_dividends) (contracts/Contract.sol#310-311)
Eightherbank.changePartner(address)._partnerAddress (contracts/Contract.sol#432-434) lacks a zero-check on :
		- partnerFeeAddress = _partnerAddress (contracts/Contract.sol#435-436)
Eightherbank.changePromoter(address)._promotorAddress (contracts/Contract.sol#438-439) lacks a zero-check on :
		- promoFeeAddress = _promotorAddress (contracts/Contract.sol#442-445)
Eightherbank.changeDev(address)._devAddress (contracts/Contract.sol#446) lacks a zero-check on :
		- devFeeAddress = _devAddress (contracts/Contract.sol#448)
Eightherbank.setAdministrator(address).newowner (contracts/Contract.sol#452) lacks a zero-check on :
		- owner = newowner (contracts/Contract.sol#453-454)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#missing-zero-address-validation

Eightherbank.isContract(address) (contracts/Contract.sol#416-424) uses assembly
	- INLINE ASM (contracts/Contract.sol#420-424)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#assembly-usage

Eightherbank.transferAndCall(address,uint256,bytes) (contracts/Contract.sol#398-414) compares to a boolean constant:
	-require(bool)(canAcceptTokens_[_to] == true) (contracts/Contract.sol#406)
Eightherbank.antiEarlyWhale(uint256) (contracts/Contract.sol#149-170) compares to a boolean constant:
	-require(bool)((ambassadors_[msg.sender] == true && (ambassadorAccumulatedQuota_[msg.sender] + _amountOfEthereum) <= ambassadorMaxPurchase_)) (contracts/Contract.sol#155-164)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#boolean-equality

Version constraint ^0.4.20 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
	- ABIEncoderV2PackedStorage_0.4.x
	- ExpExponentCleanup
	- EventStructWrongData
	- NestedArrayFunctionCallDecoder.
It is used by:
	- ^0.4.20 (contracts/Contract.sol#1)
solc-0.4.20 is an outdated solc version. Use a more recent version (at least 0.8.0), if possible.
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#incorrect-versions-of-solidity

Event Eightherbank.onTokenPurchase(address,uint256,uint256,address) (contracts/Contract.sol#65-70) is not in CapWords
Event Eightherbank.onTokenSell(address,uint256,uint256) (contracts/Contract.sol#70-75) is not in CapWords
Event Eightherbank.onReinvestment(address,uint256,uint256) (contracts/Contract.sol#76-81) is not in CapWords
Event Eightherbank.onWithdraw(address,uint256) (contracts/Contract.sol#82-86) is not in CapWords
Parameter Eightherbank.buyFor(address,address)._customerAddress (contracts/Contract.sol#228-229) is not in mixedCase
Parameter Eightherbank.buyFor(address,address)._referredBy (contracts/Contract.sol#229) is not in mixedCase
Parameter Eightherbank.buy(address)._referredBy (contracts/Contract.sol#234-235) is not in mixedCase
Parameter Eightherbank.sell(uint256)._amountOfTokens (contracts/Contract.sol#315-316) is not in mixedCase
Parameter Eightherbank.transfer(address,uint256)._toAddress (contracts/Contract.sol#352) is not in mixedCase
Parameter Eightherbank.transfer(address,uint256)._amountOfTokens (contracts/Contract.sol#352) is not in mixedCase
Parameter Eightherbank.transferAndCall(address,uint256,bytes)._to (contracts/Contract.sol#400) is not in mixedCase
Parameter Eightherbank.transferAndCall(address,uint256,bytes)._value (contracts/Contract.sol#400-401) is not in mixedCase
Parameter Eightherbank.transferAndCall(address,uint256,bytes)._data (contracts/Contract.sol#401-402) is not in mixedCase
Parameter Eightherbank.changePartner(address)._partnerAddress (contracts/Contract.sol#432-434) is not in mixedCase
Parameter Eightherbank.changePromoter(address)._promotorAddress (contracts/Contract.sol#438-439) is not in mixedCase
Parameter Eightherbank.changeDev(address)._devAddress (contracts/Contract.sol#446) is not in mixedCase
Parameter Eightherbank.setStakingRequirement(uint256)._amountOfTokens (contracts/Contract.sol#458) is not in mixedCase
Parameter Eightherbank.setCanAcceptTokens(address,bool)._address (contracts/Contract.sol#467) is not in mixedCase
Parameter Eightherbank.setCanAcceptTokens(address,bool)._value (contracts/Contract.sol#467-468) is not in mixedCase
Parameter Eightherbank.setName(string)._name (contracts/Contract.sol#476) is not in mixedCase
Parameter Eightherbank.setSymbol(string)._symbol (contracts/Contract.sol#484) is not in mixedCase
Parameter Eightherbank.myDividends(bool)._includeReferralBonus (contracts/Contract.sol#542-543) is not in mixedCase
Parameter Eightherbank.balanceOf(address)._customerAddress (contracts/Contract.sol#554) is not in mixedCase
Parameter Eightherbank.dividendsOf(address)._customerAddress (contracts/Contract.sol#560-562) is not in mixedCase
Parameter Eightherbank.calculateTokensReceived(uint256)._ethereumToSpend (contracts/Contract.sol#585) is not in mixedCase
Parameter Eightherbank.calculateEthereumReceived(uint256)._tokensToSell (contracts/Contract.sol#611) is not in mixedCase
Parameter Eightherbank.purchaseTokens(address,uint256,address)._customerAddress (contracts/Contract.sol#626-628) is not in mixedCase
Parameter Eightherbank.purchaseTokens(address,uint256,address)._incomingEthereum (contracts/Contract.sol#628) is not in mixedCase
Parameter Eightherbank.purchaseTokens(address,uint256,address)._referredBy (contracts/Contract.sol#628) is not in mixedCase
Parameter Eightherbank.ethereumToTokens_(uint256)._ethereum (contracts/Contract.sol#721) is not in mixedCase
Parameter Eightherbank.tokensToEthereum_(uint256)._tokens (contracts/Contract.sol#726-729) is not in mixedCase
Constant Eightherbank.dividendFee_ (contracts/Contract.sol#103-104) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Eightherbank.transferFee_ (contracts/Contract.sol#104-105) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Eightherbank.refferalFee_ (contracts/Contract.sol#105-106) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Eightherbank.tokenPriceInitial_ (contracts/Contract.sol#106-108) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Eightherbank.magnitude (contracts/Contract.sol#109) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Eightherbank.ambassadorMaxPurchase_ (contracts/Contract.sol#126-129) is not in UPPER_CASE_WITH_UNDERSCORES
Constant Eightherbank.ambassadorQuota_ (contracts/Contract.sol#129-130) is not in UPPER_CASE_WITH_UNDERSCORES
Variable Eightherbank.ACTIVATION_TIME (contracts/Contract.sol#148-149) is not in mixedCase
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#conformance-to-solidity-naming-conventions

Reentrancy in Eightherbank.reinvest() (contracts/Contract.sol#251-276):
	External calls:
	- _tokens = purchaseTokens(_customerAddress,_dividends,0x0) (contracts/Contract.sol#272-274)
		- serverFeeAddress.transfer(SafeMath.div(SafeMath.mul(_incomingEthereum,1),100)) (contracts/Contract.sol#708-710)
		- partnerFeeAddress.transfer(SafeMath.div(SafeMath.mul(_incomingEthereum,1),100)) (contracts/Contract.sol#710)
		- promoFeeAddress.transfer(SafeMath.div(SafeMath.mul(_incomingEthereum,1),200)) (contracts/Contract.sol#710-712)
		- devFeeAddress.transfer(SafeMath.div(SafeMath.mul(_incomingEthereum,1),200)) (contracts/Contract.sol#712-713)
	Event emitted after the call(s):
	- onReinvestment(_customerAddress,_dividends,_tokens) (contracts/Contract.sol#275-276)
Reentrancy in Eightherbank.withdraw() (contracts/Contract.sol#291-313):
	External calls:
	- _customerAddress.transfer(_dividends) (contracts/Contract.sol#310-311)
	Event emitted after the call(s):
	- onWithdraw(_customerAddress,_dividends) (contracts/Contract.sol#312)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#reentrancy-vulnerabilities-4

AcceptsEighterbank (contracts/Contract.sol#2-23) does not implement functions:
	- AcceptsEighterbank.tokenFallback(address,uint256,bytes) (contracts/Contract.sol#21-23)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unimplemented-functions

Eightherbank.tokenPriceInitial_ (contracts/Contract.sol#106-108) is never used in Eightherbank (contracts/Contract.sol#23-731)
Eightherbank.ambassadorQuota_ (contracts/Contract.sol#129-130) is never used in Eightherbank (contracts/Contract.sol#23-731)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#unused-state-variable

Eightherbank.ACTIVATION_TIME (contracts/Contract.sol#148-149) should be constant 
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#state-variables-that-could-be-declared-constant

setName(string) should be declared external:
	- Eightherbank.setName(string) (contracts/Contract.sol#476-479)
setSymbol(string) should be declared external:
	- Eightherbank.setSymbol(string) (contracts/Contract.sol#483-486)
Reference: https://github.com/crytic/slither/wiki/Detector-Documentation#public-function-that-could-be-declared-external
. analyzed (3 contracts with 100 detectors), 63 result(s) found
Metadata
{
    "solc": {
        "status": "ok",
        "use_rc": 0,
        "version": "0.4.20",
        "strategy": "solc-select",
        "solc_path": "/var/www/tripwire/.venv/bin/solc",
        "install_rc": 0,
        "use_stderr": null,
        "use_stdout": "Switched global version to 0.4.20",
        "install_stderr": null,
        "install_stdout": "Version '0.4.20' is already installed, skipping..."
    },
    "solc_args": "--base-path /tmp/slither-2po_fql8 --allow-paths /tmp/slither-2po_fql8,/tmp/slither-2po_fql8/lib,/tmp/slither-2po_fql8/src",
    "remappings": [],
    "source_files": [
        "contracts/Contract.sol"
    ],
    "contract_count": 0,
    "contract_names": [],
    "detector_count": 63,
    "workspace_hash": "8d64b0a5eb9f9a145fc1464c10788ea38e7b2c6ab53ab51960fc24eedbe593dc",
    "duration_seconds": 1.4263255596160889,
    "solc_version_requested": "0.4.20"
}

Codex

report.consolidate
Job Status
complete
Attempts
1 / 6
Findings
1
No findings?
no
Summary
Found a denial-of-service risk in the purchase flow due to hard fee transfers to external recipients.
View stdout
{"no_findings":false,"summary":"Found a denial-of-service risk in the purchase flow due to hard fee transfers to external recipients.","findings":[{"severity":"medium","category":"other","title":"Fee recipient transfers can permanently block buys/reinvests","exploit_scenario":"Each purchase/reinvest sends four fee transfers. If any fee recipient is a contract that reverts or needs more than 2300 gas in its fallback, every buy/buyFor/fallback/reinvest reverts, freezing the protocol. A malicious or compromised fee recipient can intentionally revert to halt all deposits.","recommendation":"Use a pull-payment pattern (accrue fees and let recipients withdraw) or `call` with failure handling so fee payouts cannot block core user flows; ensure fee addresses are EOAs or enforce changeability for all fee addresses.","evidence":"purchaseTokens transfers fees via `.transfer` after state updates, and any revert in these transfers reverts the whole purchase.","locations":["contracts/Contract.sol:720","contracts/Contract.sol:721","contracts/Contract.sol:722","contracts/Contract.sol:723","contracts/Contract.sol:724"]}]}
View stderr
OpenAI Codex v0.77.0 (research preview)
--------
workdir: /tmp/codex-ahttqgft
model: gpt-5.2-codex
provider: openai
approval: never
sandbox: read-only
reasoning effort: high
reasoning summaries: auto
session id: 019c0f0b-5c0d-7dc2-b7cb-69ab71f1389a
--------
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
exec
/bin/bash -lc ls in /tmp/codex-ahttqgft succeeded in 9ms:
AUDIT_BUNDLE.txt
codex-output-schema.json
contracts
exec
/bin/bash -lc 'cat AUDIT_BUNDLE.txt' in /tmp/codex-ahttqgft succeeded in 10ms:
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: contracts/Contract.sol
================================================================================
pragma solidity ^0.4.20;


contract AcceptsEighterbank {
    Eightherbank public tokenContract;

    function AcceptsEighterbank(address _tokenContract) public {
        tokenContract = Eightherbank(_tokenContract);
    }

    modifier onlyTokenContract {
        require(msg.sender == address(tokenContract));
        _;
    }
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '200,420p'" in /tmp/codex-ahttqgft succeeded in 15ms:
   200	    {
   201	        // add administrators here
   202	        owner = msg.sender;
   203	        name = "8therbank";
   204	        symbol = "8TH";
   205	        decimals = 18;
   206	
   207	        // The full ambassador list.
   208	        // This does not mean that everyone actually participates in the ambassador phase. This is the same for the maximum amount.
   209	
   210	        ambassadors_[0x60bc6fa49588bbB9e3273E1fc421f383393E2fc3] = true; // Negan
   211	        ambassadors_[0x074F21a36217d7615d0202faA926aEFEBB5a9999] = true; // Lordshill
   212	        ambassadors_[0xEe54D208f62368B4efFe176CB548A317dcAe963F] = true; // Crypto Grandad
   213	        ambassadors_[0x843f2C19bc6df9E32B482E2F9ad6C078001088b1] = true; // Tony
   214	        ambassadors_[0xE377f23F3C2238FE9EB59776549Ec785CbF42e1b] = true; // Graig Grant
   215	        ambassadors_[0xACa4E2730b57dA82476D6d1fA2a85A8f686F108b] = true; // Cherry Blossom
   216	        ambassadors_[0x24B23bB643082026227e945C7833B81426057b10] = true; // Trevon James  
   217	        ambassadors_[0x5138240E96360ad64010C27eB0c685A8b2eDE4F2] = true; // Sniped
   218	        ambassadors_[0xAFC1a5cB605bBd1aa5F6415458BC45cD7554d08b] = true; // Jedi Masternode
   219	        ambassadors_[0xAA7A7C2DECB180f68F11E975e6D92B5Dc06083A6] = true; // NumberOfThings
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '420,520p'" in /tmp/codex-ahttqgft succeeded in 9ms:
   420	      }
   421	      return true;
   422	    }
   423	    /**
   424	     * Additional check that the game address we are sending tokens to is a contract
   425	     * assemble the given address bytecode. If bytecode exists then the _addr is a contract.
   426	     */
   427	     function isContract(address _addr) private constant returns (bool is_contract) {
   428	       // retrieve the size of the code on target address, this needs assembly
   429	       uint length;
   430	       assembly { length := extcodesize(_addr) }
   431	       return length > 0;
   432	     }
   433	    
   434	    /*----------  ADMINISTRATOR ONLY FUNCTIONS  ----------*/
   435	    /**
   436	     * In case the amassador quota is not met, the administrator can manually disable the ambassador phase.
   437	     */
   438	    function disableInitialStage()
   439	        onlyAdministrator()
exec
/bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '620,780p'" in /tmp/codex-ahttqgft succeeded in 6ms:
   620	        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
   621	        
   622	        return _amountOfTokens;
   623	    }
   624	    
   625	    /**
   626	     * Function for the frontend to dynamically retrieve the price scaling of sell orders.
   627	     */
   628	    function calculateEthereumReceived(uint256 _tokensToSell) 
   629	        public 
   630	        view 
   631	        returns(uint256)
   632	    {
   633	        require(_tokensToSell <= tokenSupply_);
   634	        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
   635	        uint256 _dividends = SafeMath.div(SafeMath.mul(_ethereum, dividendFee_), 100);
   636	        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
   637	        return _taxedEthereum;
   638	    }
   639	    
codex
{"no_findings":false,"summary":"Found a denial-of-service risk in the purchase flow due to hard fee transfers to external recipients.","findings":[{"severity":"medium","category":"other","title":"Fee recipient transfers can permanently block buys/reinvests","exploit_scenario":"Each purchase/reinvest sends four fee transfers. If any fee recipient is a contract that reverts or needs more than 2300 gas in its fallback, every buy/buyFor/fallback/reinvest reverts, freezing the protocol. A malicious or compromised fee recipient can intentionally revert to halt all deposits.","recommendation":"Use a pull-payment pattern (accrue fees and let recipients withdraw) or `call` with failure handling so fee payouts cannot block core user flows; ensure fee addresses are EOAs or enforce changeability for all fee addresses.","evidence":"purchaseTokens transfers fees via `.transfer` after state updates, and any revert in these transfers reverts the whole purchase.","locations":["contracts/Contract.sol:720","contracts/Contract.sol:721","contracts/Contract.sol:722","contracts/Contract.sol:723","contracts/Contract.sol:724"]}]}
tokens used
35,061
Metadata
{
    "codex": {
        "ran_at": "2026-01-30T13:21:19.521546+00:00",
        "returncode": 0
    },
    "project": {
        "mode": "source",
        "file_count": 1,
        "import_count": 0,
        "first_party_contracts_count": 1
    },
    "summary": "Found a denial-of-service risk in the purchase flow due to hard fee transfers to external recipients.",
    "raw_final": {
        "summary": "Found a denial-of-service risk in the purchase flow due to hard fee transfers to external recipients.",
        "findings": [
            {
                "title": "Fee recipient transfers can permanently block buys/reinvests",
                "category": "other",
                "evidence": "purchaseTokens transfers fees via `.transfer` after state updates, and any revert in these transfers reverts the whole purchase.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:720",
                    "contracts/Contract.sol:721",
                    "contracts/Contract.sol:722",
                    "contracts/Contract.sol:723",
                    "contracts/Contract.sol:724"
                ],
                "recommendation": "Use a pull-payment pattern (accrue fees and let recipients withdraw) or `call` with failure handling so fee payouts cannot block core user flows; ensure fee addresses are EOAs or enforce changeability for all fee addresses.",
                "exploit_scenario": "Each purchase/reinvest sends four fee transfers. If any fee recipient is a contract that reverts or needs more than 2300 gas in its fallback, every buy/buyFor/fallback/reinvest reverts, freezing the protocol. A malicious or compromised fee recipient can intentionally revert to halt all deposits."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
10
EXT*/BALANCE
3
Total opcodes
4596
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x60
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x01b5
0000000c: JUMPI
0000000d: PUSH4 0xffffffff
00000012: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00000030: PUSH1 0x00
00000032: CALLDATALOAD
00000033: DIV
00000034: AND
00000035: PUSH3 0x65318b
00000039: DUP2
0000003a: EQ
0000003b: PUSH2 0x01c4
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0x06fdde03
00000045: EQ
00000046: PUSH2 0x01f5
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0x0f34dc16
00000050: EQ
00000051: PUSH2 0x027f
00000054: JUMPI
00000055: DUP1
00000056: PUSH4 0x10d0ffdd
0000005b: EQ
0000005c: PUSH2 0x02b2
0000005f: JUMPI
00000060: DUP1
00000061: PUSH4 0x18160ddd
00000066: EQ
00000067: PUSH2 0x02c8
0000006a: JUMPI
0000006b: DUP1
0000006c: PUSH4 0x22609373
00000071: EQ
00000072: PUSH2 0x02db
00000075: JUMPI
00000076: DUP1
00000077: PUSH4 0x27defa1f
0000007c: EQ
0000007d: PUSH2 0x02f1
00000080: JUMPI
00000081: DUP1
00000082: PUSH4 0x294205b4
00000087: EQ
00000088: PUSH2 0x0304
0000008b: JUMPI
0000008c: DUP1
0000008d: PUSH4 0x313ce567
00000092: EQ
00000093: PUSH2 0x032a
00000096: JUMPI
00000097: DUP1
00000098: PUSH4 0x392efb52
0000009d: EQ
0000009e: PUSH2 0x0353
000000a1: JUMPI
000000a2: DUP1
000000a3: PUSH4 0x3ccfd60b
000000a8: EQ
000000a9: PUSH2 0x0369
000000ac: JUMPI
000000ad: DUP1
000000ae: PUSH4 0x4000aea0
000000b3: EQ
000000b4: PUSH2 0x037c
000000b7: JUMPI
000000b8: DUP1
000000b9: PUSH4 0x4411b711
000000be: EQ
000000bf: PUSH2 0x03ab
000000c2: JUMPI
000000c3: DUP1
000000c4: PUSH4 0x4b750334
000000c9: EQ
000000ca: PUSH2 0x03ca
000000cd: JUMPI
000000ce: DUP1
000000cf: PUSH4 0x56d399e8
000000d4: EQ
000000d5: PUSH2 0x03dd
000000d8: JUMPI
000000d9: DUP1
000000da: PUSH4 0x688abbf7
000000df: EQ
000000e0: PUSH2 0x03f0
000000e3: JUMPI
000000e4: DUP1
000000e5: PUSH4 0x6b2f4632
000000ea: EQ
000000eb: PUSH2 0x0408
000000ee: JUMPI
000000ef: DUP1
000000f0: PUSH4 0x70a08231
000000f5: EQ
000000f6: PUSH2 0x041b
000000f9: JUMPI
000000fa: DUP1
000000fb: PUSH4 0x8328b610
00000100: EQ
00000101: PUSH2 0x043a
00000104: JUMPI
00000105: DUP1
00000106: PUSH4 0x8620410b
0000010b: EQ
0000010c: PUSH2 0x0450
0000010f: JUMPI
00000110: DUP1
00000111: PUSH4 0x88a8c95c
00000116: EQ
00000117: PUSH2 0x0463
0000011a: JUMPI
0000011b: DUP1
0000011c: PUSH4 0x8da5cb5b
00000121: EQ
00000122: PUSH2 0x0482
00000125: JUMPI
00000126: DUP1
00000127: PUSH4 0x949e8acd
0000012c: EQ
0000012d: PUSH2 0x04b1
00000130: JUMPI
00000131: DUP1
00000132: PUSH4 0x95d89b41
00000137: EQ
00000138: PUSH2 0x04c4
0000013b: JUMPI
0000013c: DUP1
0000013d: PUSH4 0xa8e04f34
00000142: EQ
00000143: PUSH2 0x04d7
00000146: JUMPI
00000147: DUP1
00000148: PUSH4 0xa9059cbb
0000014d: EQ
0000014e: PUSH2 0x04ea
00000151: JUMPI
00000152: DUP1
00000153: PUSH4 0xab1eedb2
00000158: EQ
00000159: PUSH2 0x050c
0000015c: JUMPI
0000015d: DUP1
0000015e: PUSH4 0xb84c8246
00000163: EQ
00000164: PUSH2 0x052b
00000167: JUMPI
00000168: DUP1
00000169: PUSH4 0xc47f0027
0000016e: EQ
0000016f: PUSH2 0x057c
00000172: JUMPI
00000173: DUP1
00000174: PUSH4 0xcaa877e7
00000179: EQ
0000017a: PUSH2 0x05cd
0000017d: JUMPI
0000017e: DUP1
0000017f: PUSH4 0xdf8089ef
00000184: EQ
00000185: PUSH2 0x05e7
00000188: JUMPI
00000189: DUP1
0000018a: PUSH4 0xe4849b32
0000018f: EQ
00000190: PUSH2 0x0606
00000193: JUMPI
00000194: DUP1
00000195: PUSH4 0xe9fad8ee
0000019a: EQ
0000019b: PUSH2 0x061c
0000019e: JUMPI
0000019f: DUP1
000001a0: PUSH4 0xf088d547
000001a5: EQ
000001a6: PUSH2 0x062f
000001a9: JUMPI
000001aa: DUP1
000001ab: PUSH4 0xfdb5a03e
000001b0: EQ
000001b1: PUSH2 0x0643
000001b4: JUMPI
000001b5: JUMPDEST
000001b6: PUSH2 0x01c1
000001b9: CALLER
000001ba: CALLVALUE
000001bb: PUSH1 0x00
000001bd: PUSH2 0x0656
000001c0: JUMP
000001c1: JUMPDEST
000001c2: POP
000001c3: STOP
000001c4: JUMPDEST
000001c5: CALLVALUE
000001c6: ISZERO
000001c7: PUSH2 0x01cf
000001ca: JUMPI
000001cb: PUSH1 0x00
000001cd: DUP1
000001ce: REVERT
000001cf: JUMPDEST
000001d0: PUSH2 0x01e3
000001d3: PUSH1 0x01
000001d5: PUSH1 0xa0
000001d7: PUSH1 0x02
000001d9: EXP
000001da: SUB
000001db: PUSH1 0x04
000001dd: CALLDATALOAD
000001de: AND
000001df: PUSH2 0x0e37
000001e2: JUMP
000001e3: JUMPDEST
000001e4: PUSH1 0x40
000001e6: MLOAD
000001e7: SWAP1
000001e8: DUP2
000001e9: MSTORE
000001ea: PUSH1 0x20
000001ec: ADD
000001ed: PUSH1 0x40
000001ef: MLOAD
000001f0: DUP1
000001f1: SWAP2
000001f2: SUB
000001f3: SWAP1
000001f4: RETURN
000001f5: JUMPDEST
000001f6: CALLVALUE
000001f7: ISZERO
000001f8: PUSH2 0x0200
000001fb: JUMPI
000001fc: PUSH1 0x00
000001fe: DUP1
000001ff: REVERT
00000200: JUMPDEST
00000201: PUSH2 0x0208
00000204: PUSH2 0x0e6f
00000207: JUMP
00000208: JUMPDEST
00000209: PUSH1 0x40
0000020b: MLOAD
0000020c: PUSH1 0x20
0000020e: DUP1
0000020f: DUP3
00000210: MSTORE
00000211: DUP2
00000212: SWAP1
00000213: DUP2
00000214: ADD
00000215: DUP4
00000216: DUP2
00000217: DUP2
00000218: MLOAD
00000219: DUP2
0000021a: MSTORE
0000021b: PUSH1 0x20
0000021d: ADD
0000021e: SWAP2
0000021f: POP
00000220: DUP1
00000221: MLOAD
00000222: SWAP1
00000223: PUSH1 0x20
00000225: ADD
00000226: SWAP1
00000227: DUP1
00000228: DUP4
00000229: DUP4
0000022a: PUSH1 0x00
0000022c: JUMPDEST
0000022d: DUP4
0000022e: DUP2
0000022f: LT
00000230: ISZERO
00000231: PUSH2 0x0244
00000234: JUMPI
00000235: DUP1
00000236: DUP3
00000237: ADD
00000238: MLOAD
00000239: DUP4
0000023a: DUP3
0000023b: ADD
0000023c: MSTORE
0000023d: PUSH1 0x20
0000023f: ADD
00000240: PUSH2 0x022c
00000243: JUMP
00000244: JUMPDEST
00000245: POP
00000246: POP
00000247: POP
00000248: POP
00000249: SWAP1
0000024a: POP
0000024b: SWAP1
0000024c: DUP2
0000024d: ADD
0000024e: SWAP1
0000024f: PUSH1 0x1f
00000251: AND
00000252: DUP1
00000253: ISZERO
00000254: PUSH2 0x0271
00000257: JUMPI
00000258: DUP1
00000259: DUP3
0000025a: SUB
0000025b: DUP1
0000025c: MLOAD
0000025d: PUSH1 0x01
0000025f: DUP4
00000260: PUSH1 0x20
00000262: SUB
00000263: PUSH2 0x0100
00000266: EXP
00000267: SUB
00000268: NOT
00000269: AND
0000026a: DUP2
0000026b: MSTORE
0000026c: PUSH1 0x20
0000026e: ADD
0000026f: SWAP2
00000270: POP
00000271: JUMPDEST
00000272: POP
00000273: SWAP3
00000274: POP
00000275: POP
00000276: POP
00000277: PUSH1 0x40
00000279: MLOAD
0000027a: DUP1
0000027b: SWAP2
0000027c: SUB
0000027d: SWAP1
0000027e: RETURN
0000027f: JUMPDEST
00000280: CALLVALUE
00000281: ISZERO
00000282: PUSH2 0x028a
00000285: JUMPI
00000286: PUSH1 0x00
00000288: DUP1
00000289: REVERT
0000028a: JUMPDEST
0000028b: PUSH2 0x029e
0000028e: PUSH1 0x01
00000290: PUSH1 0xa0
00000292: PUSH1 0x02
00000294: EXP
00000295: SUB
00000296: PUSH1 0x04
00000298: CALLDATALOAD
00000299: AND
0000029a: PUSH2 0x0f0d
0000029d: JUMP
0000029e: JUMPDEST
0000029f: PUSH1 0x40
000002a1: MLOAD
000002a2: SWAP1
000002a3: ISZERO
000002a4: ISZERO
000002a5: DUP2
000002a6: MSTORE
000002a7: PUSH1 0x20
000002a9: ADD
000002aa: PUSH1 0x40
000002ac: MLOAD
000002ad: DUP1
000002ae: SWAP2
000002af: SUB
000002b0: SWAP1
000002b1: RETURN
000002b2: JUMPDEST
000002b3: CALLVALUE
000002b4: ISZERO
000002b5: PUSH2 0x02bd
000002b8: JUMPI
000002b9: PUSH1 0x00
000002bb: DUP1
000002bc: REVERT
000002bd: JUMPDEST
000002be: PUSH2 0x01e3
000002c1: PUSH1 0x04
000002c3: CALLDATALOAD
000002c4: PUSH2 0x0f22
000002c7: JUMP
000002c8: JUMPDEST
000002c9: CALLVALUE
000002ca: ISZERO
000002cb: PUSH2 0x02d3
000002ce: JUMPI
000002cf: PUSH1 0x00
000002d1: DUP1
000002d2: REVERT
000002d3: JUMPDEST
000002d4: PUSH2 0x01e3
000002d7: PUSH2 0x0f55
000002da: JUMP
000002db: JUMPDEST
000002dc: CALLVALUE
000002dd: ISZERO
000002de: PUSH2 0x02e6
000002e1: JUMPI
000002e2: PUSH1 0x00
000002e4: DUP1
000002e5: REVERT
000002e6: JUMPDEST
000002e7: PUSH2 0x01e3
000002ea: PUSH1 0x04
000002ec: CALLDATALOAD
000002ed: PUSH2 0x0f5c
000002f0: JUMP
000002f1: JUMPDEST
000002f2: CALLVALUE
000002f3: ISZERO
000002f4: PUSH2 0x02fc
000002f7: JUMPI
000002f8: PUSH1 0x00
000002fa: DUP1
000002fb: REVERT
000002fc: JUMPDEST
000002fd: PUSH2 0x029e
00000300: PUSH2 0x0f98
00000303: JUMP
00000304: JUMPDEST
00000305: CALLVALUE
00000306: ISZERO
00000307: PUSH2 0x030f
0000030a: JUMPI
0000030b: PUSH1 0x00
0000030d: DUP1
0000030e: REVERT
0000030f: JUMPDEST
00000310: PUSH2 0x0328
00000313: PUSH1 0x01
00000315: PUSH1 0xa0
00000317: PUSH1 0x02
00000319: EXP
0000031a: SUB
0000031b: PUSH1 0x04
0000031d: CALLDATALOAD
0000031e: AND
0000031f: PUSH1 0x24
00000321: CALLDATALOAD
00000322: ISZERO
00000323: ISZERO
00000324: PUSH2 0x0fa1
00000327: JUMP
00000328: JUMPDEST
00000329: STOP
0000032a: JUMPDEST
0000032b: CALLVALUE
0000032c: ISZERO
0000032d: PUSH2 0x0335
00000330: JUMPI
00000331: PUSH1 0x00
00000333: DUP1
00000334: REVERT
00000335: JUMPDEST
00000336: PUSH2 0x033d
00000339: PUSH2 0x0fe9
0000033c: JUMP
0000033d: JUMPDEST
0000033e: PUSH1 0x40
00000340: MLOAD
00000341: PUSH1 0xff
00000343: SWAP1
00000344: SWAP2
00000345: AND
00000346: DUP2
00000347: MSTORE
00000348: PUSH1 0x20
0000034a: ADD
0000034b: PUSH1 0x40
0000034d: MLOAD
0000034e: DUP1
0000034f: SWAP2
00000350: SUB
00000351: SWAP1
00000352: RETURN
00000353: JUMPDEST
00000354: CALLVALUE
00000355: ISZERO
00000356: PUSH2 0x035e
00000359: JUMPI
0000035a: PUSH1 0x00
0000035c: DUP1
0000035d: REVERT
0000035e: JUMPDEST
0000035f: PUSH2 0x029e
00000362: PUSH1 0x04
00000364: CALLDATALOAD
00000365: PUSH2 0x0ff2
00000368: JUMP
00000369: JUMPDEST
0000036a: CALLVALUE
0000036b: ISZERO
0000036c: PUSH2 0x0374
0000036f: JUMPI
00000370: PUSH1 0x00
00000372: DUP1
00000373: REVERT
00000374: JUMPDEST
00000375: PUSH2 0x0328
00000378: PUSH2 0x1007
0000037b: JUMP
0000037c: JUMPDEST
0000037d: CALLVALUE
0000037e: ISZERO
0000037f: PUSH2 0x0387
00000382: JUMPI
00000383: PUSH1 0x00
00000385: DUP1
00000386: REVERT
00000387: JUMPDEST
00000388: PUSH2 0x029e
0000038b: PUSH1 0x04
0000038d: DUP1
0000038e: CALLDATALOAD
0000038f: PUSH1 0x01
00000391: PUSH1 0xa0
00000393: PUSH1 0x02
00000395: EXP
00000396: SUB
00000397: AND
00000398: SWAP1
00000399: PUSH1 0x24
0000039b: DUP1
0000039c: CALLDATALOAD
0000039d: SWAP2
0000039e: PUSH1 0x44
000003a0: CALLDATALOAD
000003a1: SWAP2
000003a2: DUP3
000003a3: ADD
000003a4: SWAP2
000003a5: ADD
000003a6: CALLDATALOAD
000003a7: PUSH2 0x10ce
000003aa: JUMP
000003ab: JUMPDEST
000003ac: CALLVALUE
000003ad: ISZERO
000003ae: PUSH2 0x03b6
000003b1: JUMPI
000003b2: PUSH1 0x00
000003b4: DUP1
000003b5: REVERT
000003b6: JUMPDEST
000003b7: PUSH2 0x0328
000003ba: PUSH1 0x01
000003bc: PUSH1 0xa0
000003be: PUSH1 0x02
000003c0: EXP
000003c1: SUB
000003c2: PUSH1 0x04
000003c4: CALLDATALOAD
000003c5: AND
000003c6: PUSH2 0x1206
000003c9: JUMP
000003ca: JUMPDEST
000003cb: CALLVALUE
000003cc: ISZERO
000003cd: PUSH2 0x03d5
000003d0: JUMPI
000003d1: PUSH1 0x00
000003d3: DUP1
000003d4: REVERT
000003d5: JUMPDEST
000003d6: PUSH2 0x0208
000003d9: PUSH2 0x1250
000003dc: JUMP
000003dd: JUMPDEST
000003de: CALLVALUE
000003df: ISZERO
000003e0: PUSH2 0x03e8
000003e3: JUMPI
000003e4: PUSH1 0x00
000003e6: DUP1
000003e7: REVERT
000003e8: JUMPDEST
000003e9: PUSH2 0x01e3
000003ec: PUSH2 0x1291
000003ef: JUMP
000003f0: JUMPDEST
000003f1: CALLVALUE
000003f2: ISZERO
000003f3: PUSH2 0x03fb
000003f6: JUMPI
000003f7: PUSH1 0x00
000003f9: DUP1
000003fa: REVERT
000003fb: JUMPDEST
000003fc: PUSH2 0x01e3
000003ff: PUSH1 0x04
00000401: CALLDATALOAD
00000402: ISZERO
00000403: ISZERO
00000404: PUSH2 0x1297
00000407: JUMP
00000408: JUMPDEST
00000409: CALLVALUE
0000040a: ISZERO
0000040b: PUSH2 0x0413
0000040e: JUMPI
0000040f: PUSH1 0x00
00000411: DUP1
00000412: REVERT
00000413: JUMPDEST
00000414: PUSH2 0x01e3
00000417: PUSH2 0x12da
0000041a: JUMP
0000041b: JUMPDEST
0000041c: CALLVALUE
0000041d: ISZERO
0000041e: PUSH2 0x0426
00000421: JUMPI
00000422: PUSH1 0x00
00000424: DUP1
00000425: REVERT
00000426: JUMPDEST
00000427: PUSH2 0x01e3
0000042a: PUSH1 0x01
0000042c: PUSH1 0xa0
0000042e: PUSH1 0x02
00000430: EXP
00000431: SUB
00000432: PUSH1 0x04
00000434: CALLDATALOAD
00000435: AND
00000436: PUSH2 0x12e8
00000439: JUMP
0000043a: JUMPDEST
0000043b: CALLVALUE
0000043c: ISZERO
0000043d: PUSH2 0x0445
00000440: JUMPI
00000441: PUSH1 0x00
00000443: DUP1
00000444: REVERT
00000445: JUMPDEST
00000446: PUSH2 0x0328
00000449: PUSH1 0x04
0000044b: CALLDATALOAD
0000044c: PUSH2 0x1303
0000044f: JUMP
00000450: JUMPDEST
00000451: CALLVALUE
00000452: ISZERO
00000453: PUSH2 0x045b
00000456: JUMPI
00000457: PUSH1 0x00
00000459: DUP1
0000045a: REVERT
0000045b: JUMPDEST
0000045c: PUSH2 0x0208
0000045f: PUSH2 0x1325
00000462: JUMP
00000463: JUMPDEST
00000464: CALLVALUE
00000465: ISZERO
00000466: PUSH2 0x046e
00000469: JUMPI
0000046a: PUSH1 0x00
0000046c: DUP1
0000046d: REVERT
0000046e: JUMPDEST
0000046f: PUSH2 0x0328
00000472: PUSH1 0x01
00000474: PUSH1 0xa0
00000476: PUSH1 0x02
00000478: EXP
00000479: SUB
0000047a: PUSH1 0x04
0000047c: CALLDATALOAD
0000047d: AND
0000047e: PUSH2 0x1366
00000481: JUMP
00000482: JUMPDEST
00000483: CALLVALUE
00000484: ISZERO
00000485: PUSH2 0x048d
00000488: JUMPI
00000489: PUSH1 0x00
0000048b: DUP1
0000048c: REVERT
0000048d: JUMPDEST
0000048e: PUSH2 0x0495
00000491: PUSH2 0x13b0
00000494: JUMP
00000495: JUMPDEST
00000496: PUSH1 0x40
00000498: MLOAD
00000499: PUSH1 0x01
0000049b: PUSH1 0xa0
0000049d: PUSH1 0x02
0000049f: EXP
000004a0: SUB
000004a1: SWAP1
000004a2: SWAP2
000004a3: AND
000004a4: DUP2
000004a5: MSTORE
000004a6: PUSH1 0x20
000004a8: ADD
000004a9: PUSH1 0x40
000004ab: MLOAD
000004ac: DUP1
000004ad: SWAP2
000004ae: SUB
000004af: SWAP1
000004b0: RETURN
000004b1: JUMPDEST
000004b2: CALLVALUE
000004b3: ISZERO
000004b4: PUSH2 0x04bc
000004b7: JUMPI
000004b8: PUSH1 0x00
000004ba: DUP1
000004bb: REVERT
000004bc: JUMPDEST
000004bd: PUSH2 0x01e3
000004c0: PUSH2 0x13bf
000004c3: JUMP
000004c4: JUMPDEST
000004c5: CALLVALUE
000004c6: ISZERO
000004c7: PUSH2 0x04cf
000004ca: JUMPI
000004cb: PUSH1 0x00
000004cd: DUP1
000004ce: REVERT
000004cf: JUMPDEST
000004d0: PUSH2 0x0208
000004d3: PUSH2 0x13d2
000004d6: JUMP
000004d7: JUMPDEST
000004d8: CALLVALUE
000004d9: ISZERO
000004da: PUSH2 0x04e2
000004dd: JUMPI
000004de: PUSH1 0x00
000004e0: DUP1
000004e1: REVERT
000004e2: JUMPDEST
000004e3: PUSH2 0x0328
000004e6: PUSH2 0x143d
000004e9: JUMP
000004ea: JUMPDEST
000004eb: CALLVALUE
000004ec: ISZERO
000004ed: PUSH2 0x04f5
000004f0: JUMPI
000004f1: PUSH1 0x00
000004f3: DUP1
000004f4: REVERT
000004f5: JUMPDEST
000004f6: PUSH2 0x029e
000004f9: PUSH1 0x01
000004fb: PUSH1 0xa0
000004fd: PUSH1 0x02
000004ff: EXP
00000500: SUB
00000501: PUSH1 0x04
00000503: CALLDATALOAD
00000504: AND
00000505: PUSH1 0x24
00000507: CALLDATALOAD
00000508: PUSH2 0x1466
0000050b: JUMP
0000050c: JUMPDEST
0000050d: CALLVALUE
0000050e: ISZERO
0000050f: PUSH2 0x0517
00000512: JUMPI
00000513: PUSH1 0x00
00000515: DUP1
00000516: REVERT
00000517: JUMPDEST
00000518: PUSH2 0x0328
0000051b: PUSH1 0x01
0000051d: PUSH1 0xa0
0000051f: PUSH1 0x02
00000521: EXP
00000522: SUB
00000523: PUSH1 0x04
00000525: CALLDATALOAD
00000526: AND
00000527: PUSH2 0x1602
0000052a: JUMP
0000052b: JUMPDEST
0000052c: CALLVALUE
0000052d: ISZERO
0000052e: PUSH2 0x0536
00000531: JUMPI
00000532: PUSH1 0x00
00000534: DUP1
00000535: REVERT
00000536: JUMPDEST
00000537: PUSH2 0x0328
0000053a: PUSH1 0x04
0000053c: PUSH1 0x24
0000053e: DUP2
0000053f: CALLDATALOAD
00000540: DUP2
00000541: DUP2
00000542: ADD
00000543: SWAP1
00000544: DUP4
00000545: ADD
00000546: CALLDATALOAD
00000547: DUP1
00000548: PUSH1 0x20
0000054a: PUSH1 0x1f
0000054c: DUP3
0000054d: ADD
0000054e: DUP2
0000054f: SWAP1
00000550: DIV
00000551: DUP2
00000552: MUL
00000553: ADD
00000554: PUSH1 0x40
00000556: MLOAD
00000557: SWAP1
00000558: DUP2
00000559: ADD
0000055a: PUSH1 0x40
0000055c: MSTORE
0000055d: DUP2
0000055e: DUP2
0000055f: MSTORE
00000560: SWAP3
00000561: SWAP2
00000562: SWAP1
00000563: PUSH1 0x20
00000565: DUP5
00000566: ADD
00000567: DUP4
00000568: DUP4
00000569: DUP1
0000056a: DUP3
0000056b: DUP5
0000056c: CALLDATACOPY
0000056d: POP
0000056e: SWAP5
0000056f: SWAP7
00000570: POP
00000571: PUSH2 0x164c
00000574: SWAP6
00000575: POP
00000576: POP
00000577: POP
00000578: POP
00000579: POP
0000057a: POP
0000057b: JUMP
0000057c: JUMPDEST
0000057d: CALLVALUE
0000057e: ISZERO
0000057f: PUSH2 0x0587
00000582: JUMPI
00000583: PUSH1 0x00
00000585: DUP1
00000586: REVERT
00000587: JUMPDEST
00000588: PUSH2 0x0328
0000058b: PUSH1 0x04
0000058d: PUSH1 0x24
0000058f: DUP2
00000590: CALLDATALOAD
00000591: DUP2
00000592: DUP2
00000593: ADD
00000594: SWAP1
00000595: DUP4
00000596: ADD
00000597: CALLDATALOAD
00000598: DUP1
00000599: PUSH1 0x20
0000059b: PUSH1 0x1f
0000059d: DUP3
0000059e: ADD
0000059f: DUP2
000005a0: SWAP1
000005a1: DIV
000005a2: DUP2
000005a3: MUL
000005a4: ADD
000005a5: PUSH1 0x40
000005a7: MLOAD
000005a8: SWAP1
000005a9: DUP2
000005aa: ADD
000005ab: PUSH1 0x40
000005ad: MSTORE
000005ae: DUP2
000005af: DUP2
000005b0: MSTORE
000005b1: SWAP3
000005b2: SWAP2
000005b3: SWAP1
000005b4: PUSH1 0x20
000005b6: DUP5
000005b7: ADD
000005b8: DUP4
000005b9: DUP4
000005ba: DUP1
000005bb: DUP3
000005bc: DUP5
000005bd: CALLDATACOPY
000005be: POP
000005bf: SWAP5
000005c0: SWAP7
000005c1: POP
000005c2: PUSH2 0x1680
000005c5: SWAP6
000005c6: POP
000005c7: POP
000005c8: POP
000005c9: POP
000005ca: POP
000005cb: POP
000005cc: JUMP
000005cd: JUMPDEST
000005ce: PUSH2 0x01e3
000005d1: PUSH1 0x01
000005d3: PUSH1 0xa0
000005d5: PUSH1 0x02
000005d7: EXP
000005d8: SUB
000005d9: PUSH1 0x04
000005db: CALLDATALOAD
000005dc: DUP2
000005dd: AND
000005de: SWAP1
000005df: PUSH1 0x24
000005e1: CALLDATALOAD
000005e2: AND
000005e3: PUSH2 0x16af
000005e6: JUMP
000005e7: JUMPDEST
000005e8: CALLVALUE
000005e9: ISZERO
000005ea: PUSH2 0x05f2
000005ed: JUMPI
000005ee: PUSH1 0x00
000005f0: DUP1
000005f1: REVERT
000005f2: JUMPDEST
000005f3: PUSH2 0x0328
000005f6: PUSH1 0x01
000005f8: PUSH1 0xa0
000005fa: PUSH1 0x02
000005fc: EXP
000005fd: SUB
000005fe: PUSH1 0x04
00000600: CALLDATALOAD
00000601: AND
00000602: PUSH2 0x16c3
00000605: JUMP
00000606: JUMPDEST
00000607: CALLVALUE
00000608: ISZERO
00000609: PUSH2 0x0611
0000060c: JUMPI
0000060d: PUSH1 0x00
0000060f: DUP1
00000610: REVERT
00000611: JUMPDEST
00000612: PUSH2 0x0328
00000615: PUSH1 0x04
00000617: CALLDATALOAD
00000618: PUSH2 0x170f
0000061b: JUMP
0000061c: JUMPDEST
0000061d: CALLVALUE
0000061e: ISZERO
0000061f: PUSH2 0x0627
00000622: JUMPI
00000623: PUSH1 0x00
00000625: DUP1
00000626: REVERT
00000627: JUMPDEST
00000628: PUSH2 0x0328
0000062b: PUSH2 0x1865
0000062e: JUMP
0000062f: JUMPDEST
00000630: PUSH2 0x01e3
00000633: PUSH1 0x01
00000635: PUSH1 0xa0
00000637: PUSH1 0x02
00000639: EXP
0000063a: SUB
0000063b: PUSH1 0x04
0000063d: CALLDATALOAD
0000063e: AND
0000063f: PUSH2 0x189c
00000642: JUMP
00000643: JUMPDEST
00000644: CALLVALUE
00000645: ISZERO
00000646: PUSH2 0x064e
00000649: JUMPI
0000064a: PUSH1 0x00
0000064c: DUP1
0000064d: REVERT
0000064e: JUMPDEST
0000064f: PUSH2 0x0328
00000652: PUSH2 0x18a9
00000655: JUMP
00000656: JUMPDEST
00000657: PUSH1 0x00
00000659: DUP1
0000065a: PUSH1 0x00
0000065c: DUP1
0000065d: PUSH1 0x00
0000065f: DUP1
00000660: PUSH1 0x00
00000662: DUP1
00000663: DUP10
00000664: PUSH1 0x0f
00000666: SLOAD
00000667: TIMESTAMP
00000668: LT
00000669: ISZERO
0000066a: ISZERO
0000066b: PUSH2 0x0679
0000066e: JUMPI
0000066f: PUSH1 0x0e
00000671: DUP1
00000672: SLOAD
00000673: PUSH1 0xff
00000675: NOT
00000676: AND
00000677: SWAP1
00000678: SSTORE
00000679: JUMPDEST
0000067a: PUSH1 0x0e
0000067c: SLOAD
0000067d: PUSH1 0xff
0000067f: AND
00000680: ISZERO
00000681: PUSH2 0x0aa8
00000684: JUMPI
00000685: PUSH1 0x01
00000687: PUSH1 0xa0
00000689: PUSH1 0x02
0000068b: EXP
0000068c: SUB
0000068d: CALLER
0000068e: AND
0000068f: PUSH1 0x00
00000691: SWAP1
00000692: DUP2
00000693: MSTORE
00000694: PUSH1 0x09
00000696: PUSH1 0x20
00000698: MSTORE
00000699: PUSH1 0x40
0000069b: SWAP1
0000069c: KECCAK256
0000069d: SLOAD
0000069e: PUSH1 0xff
000006a0: AND
000006a1: ISZERO
000006a2: ISZERO
000006a3: PUSH1 0x01
000006a5: EQ
000006a6: DUP1
000006a7: ISZERO
000006a8: PUSH2 0x06d4
000006ab: JUMPI
000006ac: POP
000006ad: PUSH1 0x01
000006af: PUSH1 0xa0
000006b1: PUSH1 0x02
000006b3: EXP
000006b4: SUB
000006b5: CALLER
000006b6: AND
000006b7: PUSH1 0x00
000006b9: SWAP1
000006ba: DUP2
000006bb: MSTORE
000006bc: PUSH1 0x0d
000006be: PUSH1 0x20
000006c0: MSTORE
000006c1: PUSH1 0x40
000006c3: SWAP1
000006c4: KECCAK256
000006c5: SLOAD
000006c6: PUSH8 0x0de0b6b3a7640000
000006cf: SWAP1
000006d0: DUP3
000006d1: ADD
000006d2: GT
000006d3: ISZERO
000006d4: JUMPDEST
000006d5: ISZERO
000006d6: ISZERO
000006d7: PUSH2 0x06df
000006da: JUMPI
000006db: PUSH1 0x00
000006dd: DUP1
000006de: REVERT
000006df: JUMPDEST
000006e0: PUSH1 0x01
000006e2: PUSH1 0xa0
000006e4: PUSH1 0x02
000006e6: EXP
000006e7: SUB
000006e8: CALLER
000006e9: AND
000006ea: PUSH1 0x00
000006ec: SWAP1
000006ed: DUP2
000006ee: MSTORE
000006ef: PUSH1 0x0d
000006f1: PUSH1 0x20
000006f3: MSTORE
000006f4: PUSH1 0x40
000006f6: SWAP1
000006f7: KECCAK256
000006f8: SLOAD
000006f9: PUSH2 0x0702
000006fc: SWAP1
000006fd: DUP3
000006fe: PUSH2 0x1961
00000701: JUMP
00000702: JUMPDEST
00000703: PUSH1 0x01
00000705: PUSH1 0xa0
00000707: PUSH1 0x02
00000709: EXP
0000070a: SUB
0000070b: CALLER
0000070c: AND
0000070d: PUSH1 0x00
0000070f: SWAP1
00000710: DUP2
00000711: MSTORE
00000712: PUSH1 0x0d
00000714: PUSH1 0x20
00000716: MSTORE
00000717: PUSH1 0x40
00000719: SWAP1
0000071a: KECCAK256
0000071b: SSTORE
0000071c: PUSH2 0x0730
0000071f: PUSH2 0x0729
00000722: DUP13
00000723: PUSH1 0x0a
00000725: PUSH2 0x197b
00000728: JUMP
00000729: JUMPDEST
0000072a: PUSH1 0x64
0000072c: PUSH2 0x19a6
0000072f: JUMP
00000730: JUMPDEST
00000731: SWAP8
00000732: POP
00000733: PUSH2 0x0740
00000736: PUSH2 0x0729
00000739: DUP10
0000073a: PUSH1 0x21
0000073c: PUSH2 0x197b
0000073f: JUMP
00000740: JUMPDEST
00000741: SWAP7
00000742: POP
00000743: PUSH2 0x074c
00000746: DUP9
00000747: DUP9
00000748: PUSH2 0x19bd
0000074b: JUMP
0000074c: JUMPDEST
0000074d: SWAP6
0000074e: POP
0000074f: PUSH2 0x0758
00000752: DUP12
00000753: DUP10
00000754: PUSH2 0x19bd
00000757: JUMP
00000758: JUMPDEST
00000759: SWAP5
0000075a: POP
0000075b: PUSH2 0x0771
0000075e: DUP6
0000075f: PUSH2 0x076c
00000762: PUSH2 0x0729
00000765: DUP15
00000766: PUSH1 0x01
00000768: PUSH2 0x197b
0000076b: JUMP
0000076c: JUMPDEST
0000076d: PUSH2 0x19bd
00000770: JUMP
00000771: JUMPDEST
00000772: SWAP5
00000773: POP
00000774: PUSH2 0x0785
00000777: DUP6
00000778: PUSH2 0x076c
0000077b: PUSH2 0x0729
0000077e: DUP15
0000077f: PUSH1 0x01
00000781: PUSH2 0x197b
00000784: JUMP
00000785: JUMPDEST
00000786: SWAP5
00000787: POP
00000788: PUSH2 0x07a0
0000078b: DUP6
0000078c: PUSH2 0x076c
0000078f: PUSH2 0x0799
00000792: DUP15
00000793: PUSH1 0x01
00000795: PUSH2 0x197b
00000798: JUMP
00000799: JUMPDEST
0000079a: PUSH1 0xc8
0000079c: PUSH2 0x19a6
0000079f: JUMP
000007a0: JUMPDEST
000007a1: SWAP5
000007a2: POP
000007a3: PUSH2 0x07b4
000007a6: DUP6
000007a7: PUSH2 0x076c
000007aa: PUSH2 0x0799
000007ad: DUP15
000007ae: PUSH1 0x01
000007b0: PUSH2 0x197b
000007b3: JUMP
000007b4: JUMPDEST
000007b5: SWAP5
000007b6: POP
000007b7: PUSH2 0x07bf
000007ba: DUP6
000007bb: PUSH2 0x19cf
000007be: JUMP
000007bf: JUMPDEST
000007c0: SWAP4
000007c1: POP
000007c2: PUSH1 0x40
000007c4: PUSH1 0x02
000007c6: EXP
000007c7: DUP7
000007c8: MUL
000007c9: SWAP3
000007ca: POP
000007cb: PUSH1 0x00
000007cd: DUP5
000007ce: GT
000007cf: DUP1
000007d0: ISZERO
000007d1: PUSH2 0x07e4
000007d4: JUMPI
000007d5: POP
000007d6: PUSH1 0x10
000007d8: SLOAD
000007d9: PUSH2 0x07e2
000007dc: DUP6
000007dd: DUP3
000007de: PUSH2 0x1961
000007e1: JUMP
000007e2: JUMPDEST
000007e3: GT
000007e4: JUMPDEST
000007e5: ISZERO
000007e6: ISZERO
000007e7: PUSH2 0x07ef
000007ea: JUMPI
000007eb: PUSH1 0x00
000007ed: DUP1
000007ee: REVERT
000007ef: JUMPDEST
000007f0: PUSH1 0x01
000007f2: PUSH1 0xa0
000007f4: PUSH1 0x02
000007f6: EXP
000007f7: SUB
000007f8: DUP11
000007f9: AND
000007fa: ISZERO
000007fb: DUP1
000007fc: ISZERO
000007fd: SWAP1
000007fe: PUSH2 0x0819
00000801: JUMPI
00000802: POP
00000803: DUP12
00000804: PUSH1 0x01
00000806: PUSH1 0xa0
00000808: PUSH1 0x02
0000080a: EXP
0000080b: SUB
0000080c: AND
0000080d: DUP11
0000080e: PUSH1 0x01
00000810: PUSH1 0xa0
00000812: PUSH1 0x02
00000814: EXP
00000815: SUB
00000816: AND
00000817: EQ
00000818: ISZERO
00000819: JUMPDEST
0000081a: DUP1
0000081b: ISZERO
0000081c: PUSH2 0x083f
0000081f: JUMPI
00000820: POP
00000821: PUSH1 0x04
00000823: SLOAD
00000824: PUSH1 0x01
00000826: PUSH1 0xa0
00000828: PUSH1 0x02
0000082a: EXP
0000082b: SUB
0000082c: DUP12
0000082d: AND
0000082e: PUSH1 0x00
00000830: SWAP1
00000831: DUP2
00000832: MSTORE
00000833: PUSH1 0x0a
00000835: PUSH1 0x20
00000837: MSTORE
00000838: PUSH1 0x40
0000083a: SWAP1
0000083b: KECCAK256
0000083c: SLOAD
0000083d: LT
0000083e: ISZERO
0000083f: JUMPDEST
00000840: ISZERO
00000841: PUSH2 0x0885
00000844: JUMPI
00000845: PUSH1 0x01
00000847: PUSH1 0xa0
00000849: PUSH1 0x02
0000084b: EXP
0000084c: SUB
0000084d: DUP11
0000084e: AND
0000084f: PUSH1 0x00
00000851: SWAP1
00000852: DUP2
00000853: MSTORE
00000854: PUSH1 0x0b
00000856: PUSH1 0x20
00000858: MSTORE
00000859: PUSH1 0x40
0000085b: SWAP1
0000085c: KECCAK256
0000085d: SLOAD
0000085e: PUSH2 0x0867
00000861: SWAP1
00000862: DUP9
00000863: PUSH2 0x1961
00000866: JUMP
00000867: JUMPDEST
00000868: PUSH1 0x01
0000086a: PUSH1 0xa0
0000086c: PUSH1 0x02
0000086e: EXP
0000086f: SUB
00000870: DUP12
00000871: AND
00000872: PUSH1 0x00
00000874: SWAP1
00000875: DUP2
00000876: MSTORE
00000877: PUSH1 0x0b
00000879: PUSH1 0x20
0000087b: MSTORE
0000087c: PUSH1 0x40
0000087e: SWAP1
0000087f: KECCAK256
00000880: SSTORE
00000881: PUSH2 0x089b
00000884: JUMP
00000885: JUMPDEST
00000886: PUSH2 0x088f
00000889: DUP7
0000088a: DUP9
0000088b: PUSH2 0x1961
0000088e: JUMP
0000088f: JUMPDEST
00000890: SWAP6
00000891: POP
00000892: PUSH1 0x40
00000894: PUSH1 0x02
00000896: EXP
00000897: DUP7
00000898: MUL
00000899: SWAP3
0000089a: POP
0000089b: JUMPDEST
0000089c: PUSH1 0x00
0000089e: PUSH1 0x10
000008a0: SLOAD
000008a1: GT
000008a2: ISZERO
000008a3: PUSH2 0x08f5
000008a6: JUMPI
000008a7: PUSH2 0x08b2
000008aa: PUSH1 0x10
000008ac: SLOAD
000008ad: DUP6
000008ae: PUSH2 0x1961
000008b1: JUMP
000008b2: JUMPDEST
000008b3: PUSH1 0x10
000008b5: DUP2
000008b6: SWAP1
000008b7: SSTORE
000008b8: PUSH1 0x40
000008ba: PUSH1 0x02
000008bc: EXP
000008bd: DUP8
000008be: MUL
000008bf: DUP2
000008c0: ISZERO
000008c1: ISZERO
000008c2: PUSH2 0x08c7
000008c5: JUMPI
000008c6: INVALID
000008c7: JUMPDEST
000008c8: PUSH1 0x11
000008ca: DUP1
000008cb: SLOAD
000008cc: SWAP3
000008cd: SWAP1
000008ce: SWAP2
000008cf: DIV
000008d0: SWAP1
000008d1: SWAP2
000008d2: ADD
000008d3: SWAP1
000008d4: SSTORE
000008d5: PUSH1 0x10
000008d7: SLOAD
000008d8: PUSH1 0x40
000008da: PUSH1 0x02
000008dc: EXP
000008dd: DUP8
000008de: MUL
000008df: DUP2
000008e0: ISZERO
000008e1: ISZERO
000008e2: PUSH2 0x08e7
000008e5: JUMPI
000008e6: INVALID
000008e7: JUMPDEST
000008e8: DIV
000008e9: DUP5
000008ea: MUL
000008eb: DUP4
000008ec: SUB
000008ed: DUP4
000008ee: SUB
000008ef: SWAP3
000008f0: POP
000008f1: PUSH2 0x08fb
000008f4: JUMP
000008f5: JUMPDEST
000008f6: PUSH1 0x10
000008f8: DUP5
000008f9: SWAP1
000008fa: SSTORE
000008fb: JUMPDEST
000008fc: PUSH1 0x01
000008fe: PUSH1 0xa0
00000900: PUSH1 0x02
00000902: EXP
00000903: SUB
00000904: DUP13
00000905: AND
00000906: PUSH1 0x00
00000908: SWAP1
00000909: DUP2
0000090a: MSTORE
0000090b: PUSH1 0x0a
0000090d: PUSH1 0x20
0000090f: MSTORE
00000910: PUSH1 0x40
00000912: SWAP1
00000913: KECCAK256
00000914: SLOAD
00000915: PUSH2 0x091e
00000918: SWAP1
00000919: DUP6
0000091a: PUSH2 0x1961
0000091d: JUMP
0000091e: JUMPDEST
0000091f: PUSH1 0x01
00000921: PUSH1 0xa0
00000923: PUSH1 0x02
00000925: EXP
00000926: SUB
00000927: DUP1
00000928: DUP15
00000929: AND
0000092a: PUSH1 0x00
0000092c: DUP2
0000092d: DUP2
0000092e: MSTORE
0000092f: PUSH1 0x0a
00000931: PUSH1 0x20
00000933: SWAP1
00000934: DUP2
00000935: MSTORE
00000936: PUSH1 0x40
00000938: DUP1
00000939: DUP4
0000093a: KECCAK256
0000093b: SWAP6
0000093c: SWAP1
0000093d: SWAP6
0000093e: SSTORE
0000093f: PUSH1 0x11
00000941: SLOAD
00000942: PUSH1 0x0c
00000944: SWAP1
00000945: SWAP2
00000946: MSTORE
00000947: SWAP1
00000948: DUP5
00000949: SWAP1
0000094a: KECCAK256
0000094b: DUP1
0000094c: SLOAD
0000094d: SWAP2
0000094e: DUP10
0000094f: MUL
00000950: DUP9
00000951: SWAP1
00000952: SUB
00000953: SWAP2
00000954: DUP3
00000955: ADD
00000956: SWAP1
00000957: SSTORE
00000958: SWAP5
00000959: POP
0000095a: SWAP1
0000095b: DUP13
0000095c: AND
0000095d: SWAP2
0000095e: PUSH32 0x022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5
0000097f: SWAP1
00000980: DUP15
00000981: SWAP1
00000982: DUP9
00000983: SWAP1
00000984: MLOAD
00000985: SWAP2
00000986: DUP3
00000987: MSTORE
00000988: PUSH1 0x20
0000098a: DUP3
0000098b: ADD
0000098c: MSTORE
0000098d: PUSH1 0x40
0000098f: SWAP1
00000990: DUP2
00000991: ADD
00000992: SWAP1
00000993: MLOAD
00000994: DUP1
00000995: SWAP2
00000996: SUB
00000997: SWAP1
00000998: LOG3
00000999: PUSH1 0x05
0000099b: SLOAD
0000099c: PUSH1 0x01
0000099e: PUSH1 0xa0
000009a0: PUSH1 0x02
000009a2: EXP
000009a3: SUB
000009a4: AND
000009a5: PUSH2 0x08fc
000009a8: PUSH2 0x09b5
000009ab: PUSH2 0x0729
000009ae: DUP15
000009af: PUSH1 0x01
000009b1: PUSH2 0x197b
000009b4: JUMP
000009b5: JUMPDEST
000009b6: SWAP1
000009b7: DUP2
000009b8: ISZERO
000009b9: MUL
000009ba: SWAP1
000009bb: PUSH1 0x40
000009bd: MLOAD
000009be: PUSH1 0x00
000009c0: PUSH1 0x40
000009c2: MLOAD
000009c3: DUP1
000009c4: DUP4
000009c5: SUB
000009c6: DUP2
000009c7: DUP6
000009c8: DUP9
000009c9: DUP9
000009ca: CALL
000009cb: SWAP4
000009cc: POP
000009cd: POP
000009ce: POP
000009cf: POP
000009d0: ISZERO
000009d1: ISZERO
000009d2: PUSH2 0x09da
000009d5: JUMPI
000009d6: PUSH1 0x00
000009d8: DUP1
000009d9: REVERT
000009da: JUMPDEST
000009db: PUSH1 0x06
000009dd: SLOAD
000009de: PUSH1 0x01
000009e0: PUSH1 0xa0
000009e2: PUSH1 0x02
000009e4: EXP
000009e5: SUB
000009e6: AND
000009e7: PUSH2 0x08fc
000009ea: PUSH2 0x09f7
000009ed: PUSH2 0x0729
000009f0: DUP15
000009f1: PUSH1 0x01
000009f3: PUSH2 0x197b
000009f6: JUMP
000009f7: JUMPDEST
000009f8: SWAP1
000009f9: DUP2
000009fa: ISZERO
000009fb: MUL
000009fc: SWAP1
000009fd: PUSH1 0x40
000009ff: MLOAD
00000a00: PUSH1 0x00
00000a02: PUSH1 0x40
00000a04: MLOAD
00000a05: DUP1
00000a06: DUP4
00000a07: SUB
00000a08: DUP2
00000a09: DUP6
00000a0a: DUP9
00000a0b: DUP9
00000a0c: CALL
00000a0d: SWAP4
00000a0e: POP
00000a0f: POP
00000a10: POP
00000a11: POP
00000a12: ISZERO
00000a13: ISZERO
00000a14: PUSH2 0x0a1c
00000a17: JUMPI
00000a18: PUSH1 0x00
00000a1a: DUP1
00000a1b: REVERT
00000a1c: JUMPDEST
00000a1d: PUSH1 0x07
00000a1f: SLOAD
00000a20: PUSH1 0x01
00000a22: PUSH1 0xa0
00000a24: PUSH1 0x02
00000a26: EXP
00000a27: SUB
00000a28: AND
00000a29: PUSH2 0x08fc
00000a2c: PUSH2 0x0a39
00000a2f: PUSH2 0x0799
00000a32: DUP15
00000a33: PUSH1 0x01
00000a35: PUSH2 0x197b
00000a38: JUMP
00000a39: JUMPDEST
00000a3a: SWAP1
00000a3b: DUP2
00000a3c: ISZERO
00000a3d: MUL
00000a3e: SWAP1
00000a3f: PUSH1 0x40
00000a41: MLOAD
00000a42: PUSH1 0x00
00000a44: PUSH1 0x40
00000a46: MLOAD
00000a47: DUP1
00000a48: DUP4
00000a49: SUB
00000a4a: DUP2
00000a4b: DUP6
00000a4c: DUP9
00000a4d: DUP9
00000a4e: CALL
00000a4f: SWAP4
00000a50: POP
00000a51: POP
00000a52: POP
00000a53: POP
00000a54: ISZERO
00000a55: ISZERO
00000a56: PUSH2 0x0a5e
00000a59: JUMPI
00000a5a: PUSH1 0x00
00000a5c: DUP1
00000a5d: REVERT
00000a5e: JUMPDEST
00000a5f: PUSH1 0x08
00000a61: SLOAD
00000a62: PUSH1 0x01
00000a64: PUSH1 0xa0
00000a66: PUSH1 0x02
00000a68: EXP
00000a69: SUB
00000a6a: AND
00000a6b: PUSH2 0x08fc
00000a6e: PUSH2 0x0a7b
00000a71: PUSH2 0x0799
00000a74: DUP15
00000a75: PUSH1 0x01
00000a77: PUSH2 0x197b
00000a7a: JUMP
00000a7b: JUMPDEST
00000a7c: SWAP1
00000a7d: DUP2
00000a7e: ISZERO
00000a7f: MUL
00000a80: SWAP1
00000a81: PUSH1 0x40
00000a83: MLOAD
00000a84: PUSH1 0x00
00000a86: PUSH1 0x40
00000a88: MLOAD
00000a89: DUP1
00000a8a: DUP4
00000a8b: SUB
00000a8c: DUP2
00000a8d: DUP6
00000a8e: DUP9
00000a8f: DUP9
00000a90: CALL
00000a91: SWAP4
00000a92: POP
00000a93: POP
00000a94: POP
00000a95: POP
00000a96: ISZERO
00000a97: ISZERO
00000a98: PUSH2 0x0aa0
00000a9b: JUMPI
00000a9c: PUSH1 0x00
00000a9e: DUP1
00000a9f: REVERT
00000aa0: JUMPDEST
00000aa1: DUP4
00000aa2: SWAP9
00000aa3: POP
00000aa4: PUSH2 0x0e28
00000aa7: JUMP
00000aa8: JUMPDEST
00000aa9: PUSH1 0x0e
00000aab: DUP1
00000aac: SLOAD
00000aad: PUSH1 0xff
00000aaf: NOT
00000ab0: AND
00000ab1: SWAP1
00000ab2: SSTORE
00000ab3: PUSH2 0x0ac0
00000ab6: PUSH2 0x0729
00000ab9: DUP13
00000aba: PUSH1 0x0a
00000abc: PUSH2 0x197b
00000abf: JUMP
00000ac0: JUMPDEST
00000ac1: SWAP8
00000ac2: POP
00000ac3: PUSH2 0x0ad0
00000ac6: PUSH2 0x0729
00000ac9: DUP10
00000aca: PUSH1 0x21
00000acc: PUSH2 0x197b
00000acf: JUMP
00000ad0: JUMPDEST
00000ad1: SWAP7
00000ad2: POP
00000ad3: PUSH2 0x0adc
00000ad6: DUP9
00000ad7: DUP9
00000ad8: PUSH2 0x19bd
00000adb: JUMP
00000adc: JUMPDEST
00000add: SWAP6
00000ade: POP
00000adf: PUSH2 0x0ae8
00000ae2: DUP12
00000ae3: DUP10
00000ae4: PUSH2 0x19bd
00000ae7: JUMP
00000ae8: JUMPDEST
00000ae9: SWAP5
00000aea: POP
00000aeb: PUSH2 0x0afc
00000aee: DUP6
00000aef: PUSH2 0x076c
00000af2: PUSH2 0x0729
00000af5: DUP15
00000af6: PUSH1 0x01
00000af8: PUSH2 0x197b
00000afb: JUMP
00000afc: JUMPDEST
00000afd: SWAP5
00000afe: POP
00000aff: PUSH2 0x0b10
00000b02: DUP6
00000b03: PUSH2 0x076c
00000b06: PUSH2 0x0729
00000b09: DUP15
00000b0a: PUSH1 0x01
00000b0c: PUSH2 0x197b
00000b0f: JUMP
00000b10: JUMPDEST
00000b11: SWAP5
00000b12: POP
00000b13: PUSH2 0x0b24
00000b16: DUP6
00000b17: PUSH2 0x076c
00000b1a: PUSH2 0x0799
00000b1d: DUP15
00000b1e: PUSH1 0x01
00000b20: PUSH2 0x197b
00000b23: JUMP
00000b24: JUMPDEST
00000b25: SWAP5
00000b26: POP
00000b27: PUSH2 0x0b38
00000b2a: DUP6
00000b2b: PUSH2 0x076c
00000b2e: PUSH2 0x0799
00000b31: DUP15
00000b32: PUSH1 0x01
00000b34: PUSH2 0x197b
00000b37: JUMP
00000b38: JUMPDEST
00000b39: SWAP5
00000b3a: POP
00000b3b: PUSH2 0x0b43
00000b3e: DUP6
00000b3f: PUSH2 0x19cf
00000b42: JUMP
00000b43: JUMPDEST
00000b44: SWAP4
00000b45: POP
00000b46: PUSH1 0x40
00000b48: PUSH1 0x02
00000b4a: EXP
00000b4b: DUP7
00000b4c: MUL
00000b4d: SWAP3
00000b4e: POP
00000b4f: PUSH1 0x00
00000b51: DUP5
00000b52: GT
00000b53: DUP1
00000b54: ISZERO
00000b55: PUSH2 0x0b68
00000b58: JUMPI
00000b59: POP
00000b5a: PUSH1 0x10
00000b5c: SLOAD
00000b5d: PUSH2 0x0b66
00000b60: DUP6
00000b61: DUP3
00000b62: PUSH2 0x1961
00000b65: JUMP
00000b66: JUMPDEST
00000b67: GT
00000b68: JUMPDEST
00000b69: ISZERO
00000b6a: ISZERO
00000b6b: PUSH2 0x0b73
00000b6e: JUMPI
00000b6f: PUSH1 0x00
00000b71: DUP1
00000b72: REVERT
00000b73: JUMPDEST
00000b74: PUSH1 0x01
00000b76: PUSH1 0xa0
00000b78: PUSH1 0x02
00000b7a: EXP
00000b7b: SUB
00000b7c: DUP11
00000b7d: AND
00000b7e: ISZERO
00000b7f: DUP1
00000b80: ISZERO
00000b81: SWAP1
00000b82: PUSH2 0x0b9d
00000b85: JUMPI
00000b86: POP
00000b87: DUP12
00000b88: PUSH1 0x01
00000b8a: PUSH1 0xa0
00000b8c: PUSH1 0x02
00000b8e: EXP
00000b8f: SUB
00000b90: AND
00000b91: DUP11
00000b92: PUSH1 0x01
00000b94: PUSH1 0xa0
00000b96: PUSH1 0x02
00000b98: EXP
00000b99: SUB
00000b9a: AND
00000b9b: EQ
00000b9c: ISZERO
00000b9d: JUMPDEST
00000b9e: DUP1
00000b9f: ISZERO
00000ba0: PUSH2 0x0bc3
00000ba3: JUMPI
00000ba4: POP
00000ba5: PUSH1 0x04
00000ba7: SLOAD
00000ba8: PUSH1 0x01
00000baa: PUSH1 0xa0
00000bac: PUSH1 0x02
00000bae: EXP
00000baf: SUB
00000bb0: DUP12
00000bb1: AND
00000bb2: PUSH1 0x00
00000bb4: SWAP1
00000bb5: DUP2
00000bb6: MSTORE
00000bb7: PUSH1 0x0a
00000bb9: PUSH1 0x20
00000bbb: MSTORE
00000bbc: PUSH1 0x40
00000bbe: SWAP1
00000bbf: KECCAK256
00000bc0: SLOAD
00000bc1: LT
00000bc2: ISZERO
00000bc3: JUMPDEST
00000bc4: ISZERO
00000bc5: PUSH2 0x0c09
00000bc8: JUMPI
00000bc9: PUSH1 0x01
00000bcb: PUSH1 0xa0
00000bcd: PUSH1 0x02
00000bcf: EXP
00000bd0: SUB
00000bd1: DUP11
00000bd2: AND
00000bd3: PUSH1 0x00
00000bd5: SWAP1
00000bd6: DUP2
00000bd7: MSTORE
00000bd8: PUSH1 0x0b
00000bda: PUSH1 0x20
00000bdc: MSTORE
00000bdd: PUSH1 0x40
00000bdf: SWAP1
00000be0: KECCAK256
00000be1: SLOAD
00000be2: PUSH2 0x0beb
00000be5: SWAP1
00000be6: DUP9
00000be7: PUSH2 0x1961
00000bea: JUMP
00000beb: JUMPDEST
00000bec: PUSH1 0x01
00000bee: PUSH1 0xa0
00000bf0: PUSH1 0x02
00000bf2: EXP
00000bf3: SUB
00000bf4: DUP12
00000bf5: AND
00000bf6: PUSH1 0x00
00000bf8: SWAP1
00000bf9: DUP2
00000bfa: MSTORE
00000bfb: PUSH1 0x0b
00000bfd: PUSH1 0x20
00000bff: MSTORE
00000c00: PUSH1 0x40
00000c02: SWAP1
00000c03: KECCAK256
00000c04: SSTORE
00000c05: PUSH2 0x0c1f
00000c08: JUMP
00000c09: JUMPDEST
00000c0a: PUSH2 0x0c13
00000c0d: DUP7
00000c0e: DUP9
00000c0f: PUSH2 0x1961
00000c12: JUMP
00000c13: JUMPDEST
00000c14: SWAP6
00000c15: POP
00000c16: PUSH1 0x40
00000c18: PUSH1 0x02
00000c1a: EXP
00000c1b: DUP7
00000c1c: MUL
00000c1d: SWAP3
00000c1e: POP
00000c1f: JUMPDEST
00000c20: PUSH1 0x00
00000c22: PUSH1 0x10
00000c24: SLOAD
00000c25: GT
00000c26: ISZERO
00000c27: PUSH2 0x0c79
00000c2a: JUMPI
00000c2b: PUSH2 0x0c36
00000c2e: PUSH1 0x10
00000c30: SLOAD
00000c31: DUP6
00000c32: PUSH2 0x1961
00000c35: JUMP
00000c36: JUMPDEST
00000c37: PUSH1 0x10
00000c39: DUP2
00000c3a: SWAP1
00000c3b: SSTORE
00000c3c: PUSH1 0x40
00000c3e: PUSH1 0x02
00000c40: EXP
00000c41: DUP8
00000c42: MUL
00000c43: DUP2
00000c44: ISZERO
00000c45: ISZERO
00000c46: PUSH2 0x0c4b
00000c49: JUMPI
00000c4a: INVALID
00000c4b: JUMPDEST
00000c4c: PUSH1 0x11
00000c4e: DUP1
00000c4f: SLOAD
00000c50: SWAP3
00000c51: SWAP1
00000c52: SWAP2
00000c53: DIV
00000c54: SWAP1
00000c55: SWAP2
00000c56: ADD
00000c57: SWAP1
00000c58: SSTORE
00000c59: PUSH1 0x10
00000c5b: SLOAD
00000c5c: PUSH1 0x40
00000c5e: PUSH1 0x02
00000c60: EXP
00000c61: DUP8
00000c62: MUL
00000c63: DUP2
00000c64: ISZERO
00000c65: ISZERO
00000c66: PUSH2 0x0c6b
00000c69: JUMPI
00000c6a: INVALID
00000c6b: JUMPDEST
00000c6c: DIV
00000c6d: DUP5
00000c6e: MUL
00000c6f: DUP4
00000c70: SUB
00000c71: DUP4
00000c72: SUB
00000c73: SWAP3
00000c74: POP
00000c75: PUSH2 0x0c7f
00000c78: JUMP
00000c79: JUMPDEST
00000c7a: PUSH1 0x10
00000c7c: DUP5
00000c7d: SWAP1
00000c7e: SSTORE
00000c7f: JUMPDEST
00000c80: PUSH1 0x01
00000c82: PUSH1 0xa0
00000c84: PUSH1 0x02
00000c86: EXP
00000c87: SUB
00000c88: DUP13
00000c89: AND
00000c8a: PUSH1 0x00
00000c8c: SWAP1
00000c8d: DUP2
00000c8e: MSTORE
00000c8f: PUSH1 0x0a
00000c91: PUSH1 0x20
00000c93: MSTORE
00000c94: PUSH1 0x40
00000c96: SWAP1
00000c97: KECCAK256
00000c98: SLOAD
00000c99: PUSH2 0x0ca2
00000c9c: SWAP1
00000c9d: DUP6
00000c9e: PUSH2 0x1961
00000ca1: JUMP
00000ca2: JUMPDEST
00000ca3: PUSH1 0x01
00000ca5: PUSH1 0xa0
00000ca7: PUSH1 0x02
00000ca9: EXP
00000caa: SUB
00000cab: DUP1
00000cac: DUP15
00000cad: AND
00000cae: PUSH1 0x00
00000cb0: DUP2
00000cb1: DUP2
00000cb2: MSTORE
00000cb3: PUSH1 0x0a
00000cb5: PUSH1 0x20
00000cb7: SWAP1
00000cb8: DUP2
00000cb9: MSTORE
00000cba: PUSH1 0x40
00000cbc: DUP1
00000cbd: DUP4
00000cbe: KECCAK256
00000cbf: SWAP6
00000cc0: SWAP1
00000cc1: SWAP6
00000cc2: SSTORE
00000cc3: PUSH1 0x11
00000cc5: SLOAD
00000cc6: PUSH1 0x0c
00000cc8: SWAP1
00000cc9: SWAP2
00000cca: MSTORE
00000ccb: SWAP1
00000ccc: DUP5
00000ccd: SWAP1
00000cce: KECCAK256
00000ccf: DUP1
00000cd0: SLOAD
00000cd1: SWAP2
00000cd2: DUP10
00000cd3: MUL
00000cd4: DUP9
00000cd5: SWAP1
00000cd6: SUB
00000cd7: SWAP2
00000cd8: DUP3
00000cd9: ADD
00000cda: SWAP1
00000cdb: SSTORE
00000cdc: SWAP5
00000cdd: POP
00000cde: SWAP1
00000cdf: DUP13
00000ce0: AND
00000ce1: SWAP2
00000ce2: PUSH32 0x022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d5
00000d03: SWAP1
00000d04: DUP15
00000d05: SWAP1
00000d06: DUP9
00000d07: SWAP1
00000d08: MLOAD
00000d09: SWAP2
00000d0a: DUP3
00000d0b: MSTORE
00000d0c: PUSH1 0x20
00000d0e: DUP3
00000d0f: ADD
00000d10: MSTORE
00000d11: PUSH1 0x40
00000d13: SWAP1
00000d14: DUP2
00000d15: ADD
00000d16: SWAP1
00000d17: MLOAD
00000d18: DUP1
00000d19: SWAP2
00000d1a: SUB
00000d1b: SWAP1
00000d1c: LOG3
00000d1d: PUSH1 0x05
00000d1f: SLOAD
00000d20: PUSH1 0x01
00000d22: PUSH1 0xa0
00000d24: PUSH1 0x02
00000d26: EXP
00000d27: SUB
00000d28: AND
00000d29: PUSH2 0x08fc
00000d2c: PUSH2 0x0d39
00000d2f: PUSH2 0x0729
00000d32: DUP15
00000d33: PUSH1 0x01
00000d35: PUSH2 0x197b
00000d38: JUMP
00000d39: JUMPDEST
00000d3a: SWAP1
00000d3b: DUP2
00000d3c: ISZERO
00000d3d: MUL
00000d3e: SWAP1
00000d3f: PUSH1 0x40
00000d41: MLOAD
00000d42: PUSH1 0x00
00000d44: PUSH1 0x40
00000d46: MLOAD
00000d47: DUP1
00000d48: DUP4
00000d49: SUB
00000d4a: DUP2
00000d4b: DUP6
00000d4c: DUP9
00000d4d: DUP9
00000d4e: CALL
00000d4f: SWAP4
00000d50: POP
00000d51: POP
00000d52: POP
00000d53: POP
00000d54: ISZERO
00000d55: ISZERO
00000d56: PUSH2 0x0d5e
00000d59: JUMPI
00000d5a: PUSH1 0x00
00000d5c: DUP1
00000d5d: REVERT
00000d5e: JUMPDEST
00000d5f: PUSH1 0x06
00000d61: SLOAD
00000d62: PUSH1 0x01
00000d64: PUSH1 0xa0
00000d66: PUSH1 0x02
00000d68: EXP
00000d69: SUB
00000d6a: AND
00000d6b: PUSH2 0x08fc
00000d6e: PUSH2 0x0d7b
00000d71: PUSH2 0x0729
00000d74: DUP15
00000d75: PUSH1 0x01
00000d77: PUSH2 0x197b
00000d7a: JUMP
00000d7b: JUMPDEST
00000d7c: SWAP1
00000d7d: DUP2
00000d7e: ISZERO
00000d7f: MUL
00000d80: SWAP1
00000d81: PUSH1 0x40
00000d83: MLOAD
00000d84: PUSH1 0x00
00000d86: PUSH1 0x40
00000d88: MLOAD
00000d89: DUP1
00000d8a: DUP4
00000d8b: SUB
00000d8c: DUP2
00000d8d: DUP6
00000d8e: DUP9
00000d8f: DUP9
00000d90: CALL
00000d91: SWAP4
00000d92: POP
00000d93: POP
00000d94: POP
00000d95: POP
00000d96: ISZERO
00000d97: ISZERO
00000d98: PUSH2 0x0da0
00000d9b: JUMPI
00000d9c: PUSH1 0x00
00000d9e: DUP1
00000d9f: REVERT
00000da0: JUMPDEST
00000da1: PUSH1 0x07
00000da3: SLOAD
00000da4: PUSH1 0x01
00000da6: PUSH1 0xa0
00000da8: PUSH1 0x02
00000daa: EXP
00000dab: SUB
00000dac: AND
00000dad: PUSH2 0x08fc
00000db0: PUSH2 0x0dbd
00000db3: PUSH2 0x0799
00000db6: DUP15
00000db7: PUSH1 0x01
00000db9: PUSH2 0x197b
00000dbc: JUMP
00000dbd: JUMPDEST
00000dbe: SWAP1
00000dbf: DUP2
00000dc0: ISZERO
00000dc1: MUL
00000dc2: SWAP1
00000dc3: PUSH1 0x40
00000dc5: MLOAD
00000dc6: PUSH1 0x00
00000dc8: PUSH1 0x40
00000dca: MLOAD
00000dcb: DUP1
00000dcc: DUP4
00000dcd: SUB
00000dce: DUP2
00000dcf: DUP6
00000dd0: DUP9
00000dd1: DUP9
00000dd2: CALL
00000dd3: SWAP4
00000dd4: POP
00000dd5: POP
00000dd6: POP
00000dd7: POP
00000dd8: ISZERO
00000dd9: ISZERO
00000dda: PUSH2 0x0de2
00000ddd: JUMPI
00000dde: PUSH1 0x00
00000de0: DUP1
00000de1: REVERT
00000de2: JUMPDEST
00000de3: PUSH1 0x08
00000de5: SLOAD
00000de6: PUSH1 0x01
00000de8: PUSH1 0xa0
00000dea: PUSH1 0x02
00000dec: EXP
00000ded: SUB
00000dee: AND
00000def: PUSH2 0x08fc
00000df2: PUSH2 0x0dff
00000df5: PUSH2 0x0799
00000df8: DUP15
00000df9: PUSH1 0x01
00000dfb: PUSH2 0x197b
00000dfe: JUMP
00000dff: JUMPDEST
00000e00: SWAP1
00000e01: DUP2
00000e02: ISZERO
00000e03: MUL
00000e04: SWAP1
00000e05: PUSH1 0x40
00000e07: MLOAD
00000e08: PUSH1 0x00
00000e0a: PUSH1 0x40
00000e0c: MLOAD
00000e0d: DUP1
00000e0e: DUP4
00000e0f: SUB
00000e10: DUP2
00000e11: DUP6
00000e12: DUP9
00000e13: DUP9
00000e14: CALL
00000e15: SWAP4
00000e16: POP
00000e17: POP
00000e18: POP
00000e19: POP
00000e1a: ISZERO
00000e1b: ISZERO
00000e1c: PUSH2 0x0e24
00000e1f: JUMPI
00000e20: PUSH1 0x00
00000e22: DUP1
00000e23: REVERT
00000e24: JUMPDEST
00000e25: DUP4
00000e26: SWAP9
00000e27: POP
00000e28: JUMPDEST
00000e29: POP
00000e2a: POP
00000e2b: POP
00000e2c: POP
00000e2d: POP
00000e2e: POP
00000e2f: POP
00000e30: POP
00000e31: SWAP4
00000e32: SWAP3
00000e33: POP
00000e34: POP
00000e35: POP
00000e36: JUMP
00000e37: JUMPDEST
00000e38: PUSH1 0x01
00000e3a: PUSH1 0xa0
00000e3c: PUSH1 0x02
00000e3e: EXP
00000e3f: SUB
00000e40: DUP2
00000e41: AND
00000e42: PUSH1 0x00
00000e44: SWAP1
00000e45: DUP2
00000e46: MSTORE
00000e47: PUSH1 0x0c
00000e49: PUSH1 0x20
00000e4b: SWAP1
00000e4c: DUP2
00000e4d: MSTORE
00000e4e: PUSH1 0x40
00000e50: DUP1
00000e51: DUP4
00000e52: KECCAK256
00000e53: SLOAD
00000e54: PUSH1 0x0a
00000e56: SWAP1
00000e57: SWAP3
00000e58: MSTORE
00000e59: DUP3
00000e5a: KECCAK256
00000e5b: SLOAD
00000e5c: PUSH1 0x11
00000e5e: SLOAD
00000e5f: PUSH1 0x40
00000e61: PUSH1 0x02
00000e63: EXP
00000e64: SWAP3
00000e65: SWAP2
00000e66: MUL
00000e67: SUB
00000e68: JUMPDEST
00000e69: DIV
00000e6a: SWAP3
00000e6b: SWAP2
00000e6c: POP
00000e6d: POP
00000e6e: JUMP
00000e6f: JUMPDEST
00000e70: PUSH1 0x01
00000e72: DUP1
00000e73: SLOAD
00000e74: PUSH1 0x01
00000e76: DUP2
00000e77: PUSH1 0x01
00000e79: AND
00000e7a: ISZERO
00000e7b: PUSH2 0x0100
00000e7e: MUL
00000e7f: SUB
00000e80: AND
00000e81: PUSH1 0x02
00000e83: SWAP1
00000e84: DIV
00000e85: DUP1
00000e86: PUSH1 0x1f
00000e88: ADD
00000e89: PUSH1 0x20
00000e8b: DUP1
00000e8c: SWAP2
00000e8d: DIV
00000e8e: MUL
00000e8f: PUSH1 0x20
00000e91: ADD
00000e92: PUSH1 0x40
00000e94: MLOAD
00000e95: SWAP1
00000e96: DUP2
00000e97: ADD
00000e98: PUSH1 0x40
00000e9a: MSTORE
00000e9b: DUP1
00000e9c: SWAP3
00000e9d: SWAP2
00000e9e: SWAP1
00000e9f: DUP2
00000ea0: DUP2
00000ea1: MSTORE
00000ea2: PUSH1 0x20
00000ea4: ADD
00000ea5: DUP3
00000ea6: DUP1
00000ea7: SLOAD
00000ea8: PUSH1 0x01
00000eaa: DUP2
00000eab: PUSH1 0x01
00000ead: AND
00000eae: ISZERO
00000eaf: PUSH2 0x0100
00000eb2: MUL
00000eb3: SUB
00000eb4: AND
00000eb5: PUSH1 0x02
00000eb7: SWAP1
00000eb8: DIV
00000eb9: DUP1
00000eba: ISZERO
00000ebb: PUSH2 0x0f05
00000ebe: JUMPI
00000ebf: DUP1
00000ec0: PUSH1 0x1f
00000ec2: LT
00000ec3: PUSH2 0x0eda
00000ec6: JUMPI
00000ec7: PUSH2 0x0100
00000eca: DUP1
00000ecb: DUP4
00000ecc: SLOAD
00000ecd: DIV
00000ece: MUL
00000ecf: DUP4
00000ed0: MSTORE
00000ed1: SWAP2
00000ed2: PUSH1 0x20
00000ed4: ADD
00000ed5: SWAP2
00000ed6: PUSH2 0x0f05
00000ed9: JUMP
00000eda: JUMPDEST
00000edb: DUP3
00000edc: ADD
00000edd: SWAP2
00000ede: SWAP1
00000edf: PUSH1 0x00
00000ee1: MSTORE
00000ee2: PUSH1 0x20
00000ee4: PUSH1 0x00
00000ee6: KECCAK256
00000ee7: SWAP1
00000ee8: JUMPDEST
00000ee9: DUP2
00000eea: SLOAD
00000eeb: DUP2
00000eec: MSTORE
00000eed: SWAP1
00000eee: PUSH1 0x01
00000ef0: ADD
00000ef1: SWAP1
00000ef2: PUSH1 0x20
00000ef4: ADD
00000ef5: DUP1
00000ef6: DUP4
00000ef7: GT
00000ef8: PUSH2 0x0ee8
00000efb: JUMPI
00000efc: DUP3
00000efd: SWAP1
00000efe: SUB
00000eff: PUSH1 0x1f
00000f01: AND
00000f02: DUP3
00000f03: ADD
00000f04: SWAP2
00000f05: JUMPDEST
00000f06: POP
00000f07: POP
00000f08: POP
00000f09: POP
00000f0a: POP
00000f0b: DUP2
00000f0c: JUMP
00000f0d: JUMPDEST
00000f0e: PUSH1 0x13
00000f10: PUSH1 0x20
00000f12: MSTORE
00000f13: PUSH1 0x00
00000f15: SWAP1
00000f16: DUP2
00000f17: MSTORE
00000f18: PUSH1 0x40
00000f1a: SWAP1
00000f1b: KECCAK256
00000f1c: SLOAD
00000f1d: PUSH1 0xff
00000f1f: AND
00000f20: DUP2
00000f21: JUMP
00000f22: JUMPDEST
00000f23: PUSH1 0x00
00000f25: DUP1
00000f26: DUP1
00000f27: DUP1
00000f28: PUSH2 0x0f35
00000f2b: PUSH2 0x0729
00000f2e: DUP7
00000f2f: PUSH1 0x0a
00000f31: PUSH2 0x197b
00000f34: JUMP
00000f35: JUMPDEST
00000f36: SWAP3
00000f37: POP
00000f38: PUSH2 0x0f41
00000f3b: DUP6
00000f3c: DUP5
00000f3d: PUSH2 0x19bd
00000f40: JUMP
00000f41: JUMPDEST
00000f42: SWAP2
00000f43: POP
00000f44: PUSH2 0x0f4c
00000f47: DUP3
00000f48: PUSH2 0x19cf
00000f4b: JUMP
00000f4c: JUMPDEST
00000f4d: SWAP6
00000f4e: SWAP5
00000f4f: POP
00000f50: POP
00000f51: POP
00000f52: POP
00000f53: POP
00000f54: JUMP
00000f55: JUMPDEST
00000f56: PUSH1 0x10
00000f58: SLOAD
00000f59: JUMPDEST
00000f5a: SWAP1
00000f5b: JUMP
00000f5c: JUMPDEST
00000f5d: PUSH1 0x00
00000f5f: DUP1
00000f60: PUSH1 0x00
00000f62: DUP1
00000f63: PUSH1 0x10
00000f65: SLOAD
00000f66: DUP6
00000f67: GT
00000f68: ISZERO
00000f69: ISZERO
00000f6a: ISZERO
00000f6b: PUSH2 0x0f73
00000f6e: JUMPI
00000f6f: PUSH1 0x00
00000f71: DUP1
00000f72: REVERT
00000f73: JUMPDEST
00000f74: PUSH2 0x0f7c
00000f77: DUP6
00000f78: PUSH2 0x19d6
00000f7b: JUMP
00000f7c: JUMPDEST
00000f7d: SWAP3
00000f7e: POP
00000f7f: PUSH2 0x0f8c
00000f82: PUSH2 0x0729
00000f85: DUP5
00000f86: PUSH1 0x0a
00000f88: PUSH2 0x197b
00000f8b: JUMP
00000f8c: JUMPDEST
00000f8d: SWAP2
00000f8e: POP
00000f8f: PUSH2 0x0f4c
00000f92: DUP4
00000f93: DUP4
00000f94: PUSH2 0x19bd
00000f97: JUMP
00000f98: JUMPDEST
00000f99: PUSH1 0x0e
00000f9b: SLOAD
00000f9c: PUSH1 0xff
00000f9e: AND
00000f9f: DUP2
00000fa0: JUMP
00000fa1: JUMPDEST
00000fa2: PUSH1 0x00
00000fa4: SLOAD
00000fa5: CALLER
00000fa6: SWAP1
00000fa7: PUSH1 0x01
00000fa9: PUSH1 0xa0
00000fab: PUSH1 0x02
00000fad: EXP
00000fae: SUB
00000faf: DUP1
00000fb0: DUP4
00000fb1: AND
00000fb2: SWAP2
00000fb3: AND
00000fb4: EQ
00000fb5: PUSH2 0x0fbd
00000fb8: JUMPI
00000fb9: PUSH1 0x00
00000fbb: DUP1
00000fbc: REVERT
00000fbd: JUMPDEST
00000fbe: POP
00000fbf: PUSH1 0x01
00000fc1: PUSH1 0xa0
00000fc3: PUSH1 0x02
00000fc5: EXP
00000fc6: SUB
00000fc7: SWAP2
00000fc8: SWAP1
00000fc9: SWAP2
00000fca: AND
00000fcb: PUSH1 0x00
00000fcd: SWAP1
00000fce: DUP2
00000fcf: MSTORE
00000fd0: PUSH1 0x13
00000fd2: PUSH1 0x20
00000fd4: MSTORE
00000fd5: PUSH1 0x40
00000fd7: SWAP1
00000fd8: KECCAK256
00000fd9: DUP1
00000fda: SLOAD
00000fdb: PUSH1 0xff
00000fdd: NOT
00000fde: AND
00000fdf: SWAP2
00000fe0: ISZERO
00000fe1: ISZERO
00000fe2: SWAP2
00000fe3: SWAP1
00000fe4: SWAP2
00000fe5: OR
00000fe6: SWAP1
00000fe7: SSTORE
00000fe8: JUMP
00000fe9: JUMPDEST
00000fea: PUSH1 0x03
00000fec: SLOAD
00000fed: PUSH1 0xff
00000fef: AND
00000ff0: DUP2
00000ff1: JUMP
00000ff2: JUMPDEST
00000ff3: PUSH1 0x12
00000ff5: PUSH1 0x20
00000ff7: MSTORE
00000ff8: PUSH1 0x00
00000ffa: SWAP1
00000ffb: DUP2
00000ffc: MSTORE
00000ffd: PUSH1 0x40
00000fff: SWAP1
00001000: KECCAK256
00001001: SLOAD
00001002: PUSH1 0xff
00001004: AND
00001005: DUP2
00001006: JUMP
00001007: JUMPDEST
00001008: PUSH1 0x00
0000100a: DUP1
0000100b: PUSH1 0x00
0000100d: PUSH2 0x1016
00001010: PUSH1 0x01
00001012: PUSH2 0x1297
00001015: JUMP
00001016: JUMPDEST
00001017: GT
00001018: PUSH2 0x1020
0000101b: JUMPI
0000101c: PUSH1 0x00
0000101e: DUP1
0000101f: REVERT
00001020: JUMPDEST
00001021: CALLER
00001022: SWAP2
00001023: POP
00001024: PUSH2 0x102d
00001027: PUSH1 0x00
00001029: PUSH2 0x1297
0000102c: JUMP
0000102d: JUMPDEST
0000102e: PUSH1 0x01
00001030: PUSH1 0xa0
00001032: PUSH1 0x02
00001034: EXP
00001035: SUB
00001036: DUP4
00001037: AND
00001038: PUSH1 0x00
0000103a: DUP2
0000103b: DUP2
0000103c: MSTORE
0000103d: PUSH1 0x0c
0000103f: PUSH1 0x20
00001041: SWAP1
00001042: DUP2
00001043: MSTORE
00001044: PUSH1 0x40
00001046: DUP1
00001047: DUP4
00001048: KECCAK256
00001049: DUP1
0000104a: SLOAD
0000104b: PUSH1 0x40
0000104d: PUSH1 0x02
0000104f: EXP
00001050: DUP8
00001051: MUL
00001052: ADD
00001053: SWAP1
00001054: SSTORE
00001055: PUSH1 0x0b
00001057: SWAP1
00001058: SWAP2
00001059: MSTORE
0000105a: DUP1
0000105b: DUP3
0000105c: KECCAK256
0000105d: DUP1
0000105e: SLOAD
0000105f: SWAP3
00001060: SWAP1
00001061: SSTORE
00001062: SWAP3
00001063: ADD
00001064: SWAP3
00001065: POP
00001066: SWAP1
00001067: DUP3
00001068: ISZERO
00001069: PUSH2 0x08fc
0000106c: MUL
0000106d: SWAP1
0000106e: DUP4
0000106f: SWAP1
00001070: MLOAD
00001071: PUSH1 0x00
00001073: PUSH1 0x40
00001075: MLOAD
00001076: DUP1
00001077: DUP4
00001078: SUB
00001079: DUP2
0000107a: DUP6
0000107b: DUP9
0000107c: DUP9
0000107d: CALL
0000107e: SWAP4
0000107f: POP
00001080: POP
00001081: POP
00001082: POP
00001083: ISZERO
00001084: ISZERO
00001085: PUSH2 0x108d
00001088: JUMPI
00001089: PUSH1 0x00
0000108b: DUP1
0000108c: REVERT
0000108d: JUMPDEST
0000108e: DUP2
0000108f: PUSH1 0x01
00001091: PUSH1 0xa0
00001093: PUSH1 0x02
00001095: EXP
00001096: SUB
00001097: AND
00001098: PUSH32 0xccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc
000010b9: DUP3
000010ba: PUSH1 0x40
000010bc: MLOAD
000010bd: SWAP1
000010be: DUP2
000010bf: MSTORE
000010c0: PUSH1 0x20
000010c2: ADD
000010c3: PUSH1 0x40
000010c5: MLOAD
000010c6: DUP1
000010c7: SWAP2
000010c8: SUB
000010c9: SWAP1
000010ca: LOG2
000010cb: POP
000010cc: POP
000010cd: JUMP
000010ce: JUMPDEST
000010cf: PUSH1 0x00
000010d1: DUP1
000010d2: PUSH1 0x01
000010d4: PUSH1 0xa0
000010d6: PUSH1 0x02
000010d8: EXP
000010d9: SUB
000010da: DUP7
000010db: AND
000010dc: ISZERO
000010dd: ISZERO
000010de: PUSH2 0x10e6
000010e1: JUMPI
000010e2: PUSH1 0x00
000010e4: DUP1
000010e5: REVERT
000010e6: JUMPDEST
000010e7: PUSH1 0x01
000010e9: PUSH1 0xa0
000010eb: PUSH1 0x02
000010ed: EXP
000010ee: SUB
000010ef: DUP7
000010f0: AND
000010f1: PUSH1 0x00
000010f3: SWAP1
000010f4: DUP2
000010f5: MSTORE
000010f6: PUSH1 0x13
000010f8: PUSH1 0x20
000010fa: MSTORE
000010fb: PUSH1 0x40
000010fd: SWAP1
000010fe: KECCAK256
000010ff: SLOAD
00001100: PUSH1 0xff
00001102: AND
00001103: ISZERO
00001104: ISZERO
00001105: PUSH1 0x01
00001107: EQ
00001108: PUSH2 0x1110
0000110b: JUMPI
0000110c: PUSH1 0x00
0000110e: DUP1
0000110f: REVERT
00001110: JUMPDEST
00001111: PUSH2 0x111a
00001114: DUP7
00001115: DUP7
00001116: PUSH2 0x1466
00001119: JUMP
0000111a: JUMPDEST
0000111b: ISZERO
0000111c: ISZERO
0000111d: PUSH2 0x1125
00001120: JUMPI
00001121: PUSH1 0x00
00001123: DUP1
00001124: REVERT
00001125: JUMPDEST
00001126: PUSH2 0x112e
00001129: DUP7
0000112a: PUSH2 0x19e1
0000112d: JUMP
0000112e: JUMPDEST
0000112f: ISZERO
00001130: PUSH2 0x11fa
00001133: JUMPI
00001134: POP
00001135: DUP5
00001136: PUSH1 0x01
00001138: PUSH1 0xa0
0000113a: PUSH1 0x02
0000113c: EXP
0000113d: SUB
0000113e: DUP2
0000113f: AND
00001140: PUSH4 0xc0ee0b8a
00001145: CALLER
00001146: DUP8
00001147: DUP8
00001148: DUP8
00001149: PUSH1 0x00
0000114b: PUSH1 0x40
0000114d: MLOAD
0000114e: PUSH1 0x20
00001150: ADD
00001151: MSTORE
00001152: PUSH1 0x40
00001154: MLOAD
00001155: PUSH29 0x0100000000000000000000000000000000000000000000000000000000
00001173: PUSH4 0xffffffff
00001178: DUP8
00001179: AND
0000117a: MUL
0000117b: DUP2
0000117c: MSTORE
0000117d: PUSH1 0x01
0000117f: PUSH1 0xa0
00001181: PUSH1 0x02
00001183: EXP
00001184: SUB
00001185: DUP6
00001186: AND
00001187: PUSH1 0x04
00001189: DUP3
0000118a: ADD
0000118b: SWAP1
0000118c: DUP2
0000118d: MSTORE
0000118e: PUSH1 0x24
00001190: DUP3
00001191: ADD
00001192: DUP6
00001193: SWAP1
00001194: MSTORE
00001195: PUSH1 0x60
00001197: PUSH1 0x44
00001199: DUP4
0000119a: ADD
0000119b: SWAP1
0000119c: DUP2
0000119d: MSTORE
0000119e: PUSH1 0x64
000011a0: DUP4
000011a1: ADD
000011a2: DUP5
000011a3: SWAP1
000011a4: MSTORE
000011a5: SWAP1
000011a6: SWAP2
000011a7: PUSH1 0x84
000011a9: ADD
000011aa: DUP5
000011ab: DUP5
000011ac: DUP1
000011ad: DUP3
000011ae: DUP5
000011af: CALLDATACOPY
000011b0: DUP3
000011b1: ADD
000011b2: SWAP2
000011b3: POP
000011b4: POP
000011b5: SWAP6
000011b6: POP
000011b7: POP
000011b8: POP
000011b9: POP
000011ba: POP
000011bb: POP
000011bc: PUSH1 0x20
000011be: PUSH1 0x40
000011c0: MLOAD
000011c1: DUP1
000011c2: DUP4
000011c3: SUB
000011c4: DUP2
000011c5: PUSH1 0x00
000011c7: DUP8
000011c8: DUP1
000011c9: EXTCODESIZE
000011ca: ISZERO
000011cb: ISZERO
000011cc: PUSH2 0x11d4
000011cf: JUMPI
000011d0: PUSH1 0x00
000011d2: DUP1
000011d3: REVERT
000011d4: JUMPDEST
000011d5: PUSH2 0x02c6
000011d8: GAS
000011d9: SUB
000011da: CALL
000011db: ISZERO
000011dc: ISZERO
000011dd: PUSH2 0x11e5
000011e0: JUMPI
000011e1: PUSH1 0x00
000011e3: DUP1
000011e4: REVERT
000011e5: JUMPDEST
000011e6: POP
000011e7: POP
000011e8: POP
000011e9: PUSH1 0x40
000011eb: MLOAD
000011ec: DUP1
000011ed: MLOAD
000011ee: SWAP1
000011ef: POP
000011f0: ISZERO
000011f1: ISZERO
000011f2: PUSH2 0x11fa
000011f5: JUMPI
000011f6: PUSH1 0x00
000011f8: DUP1
000011f9: REVERT
000011fa: JUMPDEST
000011fb: POP
000011fc: PUSH1 0x01
000011fe: SWAP6
000011ff: SWAP5
00001200: POP
00001201: POP
00001202: POP
00001203: POP
00001204: POP
00001205: JUMP
00001206: JUMPDEST
00001207: PUSH1 0x00
00001209: SLOAD
0000120a: CALLER
0000120b: PUSH1 0x01
0000120d: PUSH1 0xa0
0000120f: PUSH1 0x02
00001211: EXP
00001212: SUB
00001213: SWAP1
00001214: DUP2
00001215: AND
00001216: SWAP2
00001217: AND
00001218: EQ
00001219: PUSH2 0x1221
0000121c: JUMPI
0000121d: PUSH1 0x00
0000121f: DUP1
00001220: REVERT
00001221: JUMPDEST
00001222: PUSH1 0x07
00001224: DUP1
00001225: SLOAD
00001226: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000123b: NOT
0000123c: AND
0000123d: PUSH1 0x01
0000123f: PUSH1 0xa0
00001241: PUSH1 0x02
00001243: EXP
00001244: SUB
00001245: SWAP3
00001246: SWAP1
00001247: SWAP3
00001248: AND
00001249: SWAP2
0000124a: SWAP1
0000124b: SWAP2
0000124c: OR
0000124d: SWAP1
0000124e: SSTORE
0000124f: JUMP
00001250: JUMPDEST
00001251: PUSH2 0x1258
00001254: PUSH2 0x19e9
00001257: JUMP
00001258: JUMPDEST
00001259: PUSH1 0x40
0000125b: DUP1
0000125c: MLOAD
0000125d: SWAP1
0000125e: DUP2
0000125f: ADD
00001260: PUSH1 0x40
00001262: MSTORE
00001263: PUSH1 0x07
00001265: DUP2
00001266: MSTORE
00001267: PUSH32 0x302e303030303500000000000000000000000000000000000000000000000000
00001288: PUSH1 0x20
0000128a: DUP3
0000128b: ADD
0000128c: MSTORE
0000128d: SWAP1
0000128e: POP
0000128f: SWAP1
00001290: JUMP
00001291: JUMPDEST
00001292: PUSH1 0x04
00001294: SLOAD
00001295: DUP2
00001296: JUMP
00001297: JUMPDEST
00001298: PUSH1 0x00
0000129a: CALLER
0000129b: DUP3
0000129c: PUSH2 0x12ad
0000129f: JUMPI
000012a0: PUSH2 0x12a8
000012a3: DUP2
000012a4: PUSH2 0x0e37
000012a7: JUMP
000012a8: JUMPDEST
000012a9: PUSH2 0x12d1
000012ac: JUMP
000012ad: JUMPDEST
000012ae: PUSH1 0x01
000012b0: PUSH1 0xa0
000012b2: PUSH1 0x02
000012b4: EXP
000012b5: SUB
000012b6: DUP2
000012b7: AND
000012b8: PUSH1 0x00
000012ba: SWAP1
000012bb: DUP2
000012bc: MSTORE
000012bd: PUSH1 0x0b
000012bf: PUSH1 0x20
000012c1: MSTORE
000012c2: PUSH1 0x40
000012c4: SWAP1
000012c5: KECCAK256
000012c6: SLOAD
000012c7: PUSH2 0x12cf
000012ca: DUP3
000012cb: PUSH2 0x0e37
000012ce: JUMP
000012cf: JUMPDEST
000012d0: ADD
000012d1: JUMPDEST
000012d2: SWAP2
000012d3: POP
000012d4: JUMPDEST
000012d5: POP
000012d6: SWAP2
000012d7: SWAP1
000012d8: POP
000012d9: JUMP
000012da: JUMPDEST
000012db: PUSH1 0x01
000012dd: PUSH1 0xa0
000012df: PUSH1 0x02
000012e1: EXP
000012e2: SUB
000012e3: ADDRESS
000012e4: AND
000012e5: BALANCE
000012e6: SWAP1
000012e7: JUMP
000012e8: JUMPDEST
000012e9: PUSH1 0x01
000012eb: PUSH1 0xa0
000012ed: PUSH1 0x02
000012ef: EXP
000012f0: SUB
000012f1: AND
000012f2: PUSH1 0x00
000012f4: SWAP1
000012f5: DUP2
000012f6: MSTORE
000012f7: PUSH1 0x0a
000012f9: PUSH1 0x20
000012fb: MSTORE
000012fc: PUSH1 0x40
000012fe: SWAP1
000012ff: KECCAK256
00001300: SLOAD
00001301: SWAP1
00001302: JUMP
00001303: JUMPDEST
00001304: PUSH1 0x00
00001306: SLOAD
00001307: CALLER
00001308: SWAP1
00001309: PUSH1 0x01
0000130b: PUSH1 0xa0
0000130d: PUSH1 0x02
0000130f: EXP
00001310: SUB
00001311: DUP1
00001312: DUP4
00001313: AND
00001314: SWAP2
00001315: AND
00001316: EQ
00001317: PUSH2 0x131f
0000131a: JUMPI
0000131b: PUSH1 0x00
0000131d: DUP1
0000131e: REVERT
0000131f: JUMPDEST
00001320: POP
00001321: PUSH1 0x04
00001323: SSTORE
00001324: JUMP
00001325: JUMPDEST
00001326: PUSH2 0x132d
00001329: PUSH2 0x19e9
0000132c: JUMP
0000132d: JUMPDEST
0000132e: PUSH1 0x40
00001330: DUP1
00001331: MLOAD
00001332: SWAP1
00001333: DUP2
00001334: ADD
00001335: PUSH1 0x40
00001337: MSTORE
00001338: PUSH1 0x0a
0000133a: DUP2
0000133b: MSTORE
0000133c: PUSH32 0x302e303030303535353600000000000000000000000000000000000000000000
0000135d: PUSH1 0x20
0000135f: DUP3
00001360: ADD
00001361: MSTORE
00001362: SWAP1
00001363: POP
00001364: SWAP1
00001365: JUMP
00001366: JUMPDEST
00001367: PUSH1 0x00
00001369: SLOAD
0000136a: CALLER
0000136b: PUSH1 0x01
0000136d: PUSH1 0xa0
0000136f: PUSH1 0x02
00001371: EXP
00001372: SUB
00001373: SWAP1
00001374: DUP2
00001375: AND
00001376: SWAP2
00001377: AND
00001378: EQ
00001379: PUSH2 0x1381
0000137c: JUMPI
0000137d: PUSH1 0x00
0000137f: DUP1
00001380: REVERT
00001381: JUMPDEST
00001382: PUSH1 0x08
00001384: DUP1
00001385: SLOAD
00001386: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
0000139b: NOT
0000139c: AND
0000139d: PUSH1 0x01
0000139f: PUSH1 0xa0
000013a1: PUSH1 0x02
000013a3: EXP
000013a4: SUB
000013a5: SWAP3
000013a6: SWAP1
000013a7: SWAP3
000013a8: AND
000013a9: SWAP2
000013aa: SWAP1
000013ab: SWAP2
000013ac: OR
000013ad: SWAP1
000013ae: SSTORE
000013af: JUMP
000013b0: JUMPDEST
000013b1: PUSH1 0x00
000013b3: SLOAD
000013b4: PUSH1 0x01
000013b6: PUSH1 0xa0
000013b8: PUSH1 0x02
000013ba: EXP
000013bb: SUB
000013bc: AND
000013bd: DUP2
000013be: JUMP
000013bf: JUMPDEST
000013c0: PUSH1 0x00
000013c2: CALLER
000013c3: PUSH2 0x13cb
000013c6: DUP2
000013c7: PUSH2 0x12e8
000013ca: JUMP
000013cb: JUMPDEST
000013cc: SWAP2
000013cd: POP
000013ce: JUMPDEST
000013cf: POP
000013d0: SWAP1
000013d1: JUMP
000013d2: JUMPDEST
000013d3: PUSH1 0x02
000013d5: DUP1
000013d6: SLOAD
000013d7: PUSH1 0x01
000013d9: DUP2
000013da: PUSH1 0x01
000013dc: AND
000013dd: ISZERO
000013de: PUSH2 0x0100
000013e1: MUL
000013e2: SUB
000013e3: AND
000013e4: PUSH1 0x02
000013e6: SWAP1
000013e7: DIV
000013e8: DUP1
000013e9: PUSH1 0x1f
000013eb: ADD
000013ec: PUSH1 0x20
000013ee: DUP1
000013ef: SWAP2
000013f0: DIV
000013f1: MUL
000013f2: PUSH1 0x20
000013f4: ADD
000013f5: PUSH1 0x40
000013f7: MLOAD
000013f8: SWAP1
000013f9: DUP2
000013fa: ADD
000013fb: PUSH1 0x40
000013fd: MSTORE
000013fe: DUP1
000013ff: SWAP3
00001400: SWAP2
00001401: SWAP1
00001402: DUP2
00001403: DUP2
00001404: MSTORE
00001405: PUSH1 0x20
00001407: ADD
00001408: DUP3
00001409: DUP1
0000140a: SLOAD
0000140b: PUSH1 0x01
0000140d: DUP2
0000140e: PUSH1 0x01
00001410: AND
00001411: ISZERO
00001412: PUSH2 0x0100
00001415: MUL
00001416: SUB
00001417: AND
00001418: PUSH1 0x02
0000141a: SWAP1
0000141b: DIV
0000141c: DUP1
0000141d: ISZERO
0000141e: PUSH2 0x0f05
00001421: JUMPI
00001422: DUP1
00001423: PUSH1 0x1f
00001425: LT
00001426: PUSH2 0x0eda
00001429: JUMPI
0000142a: PUSH2 0x0100
0000142d: DUP1
0000142e: DUP4
0000142f: SLOAD
00001430: DIV
00001431: MUL
00001432: DUP4
00001433: MSTORE
00001434: SWAP2
00001435: PUSH1 0x20
00001437: ADD
00001438: SWAP2
00001439: PUSH2 0x0f05
0000143c: JUMP
0000143d: JUMPDEST
0000143e: PUSH1 0x00
00001440: SLOAD
00001441: CALLER
00001442: SWAP1
00001443: PUSH1 0x01
00001445: PUSH1 0xa0
00001447: PUSH1 0x02
00001449: EXP
0000144a: SUB
0000144b: DUP1
0000144c: DUP4
0000144d: AND
0000144e: SWAP2
0000144f: AND
00001450: EQ
00001451: PUSH2 0x1459
00001454: JUMPI
00001455: PUSH1 0x00
00001457: DUP1
00001458: REVERT
00001459: JUMPDEST
0000145a: POP
0000145b: PUSH1 0x0e
0000145d: DUP1
0000145e: SLOAD
0000145f: PUSH1 0xff
00001461: NOT
00001462: AND
00001463: SWAP1
00001464: SSTORE
00001465: JUMP
00001466: JUMPDEST
00001467: PUSH1 0x00
00001469: DUP1
0000146a: PUSH1 0x00
0000146c: DUP1
0000146d: PUSH1 0x00
0000146f: DUP1
00001470: PUSH2 0x1477
00001473: PUSH2 0x13bf
00001476: JUMP
00001477: JUMPDEST
00001478: GT
00001479: PUSH2 0x1481
0000147c: JUMPI
0000147d: PUSH1 0x00
0000147f: DUP1
00001480: REVERT
00001481: JUMPDEST
00001482: PUSH1 0x0e
00001484: SLOAD
00001485: CALLER
00001486: SWAP5
00001487: POP
00001488: PUSH1 0xff
0000148a: AND
0000148b: ISZERO
0000148c: DUP1
0000148d: ISZERO
0000148e: PUSH2 0x14af
00001491: JUMPI
00001492: POP
00001493: PUSH1 0x01
00001495: PUSH1 0xa0
00001497: PUSH1 0x02
00001499: EXP
0000149a: SUB
0000149b: DUP5
0000149c: AND
0000149d: PUSH1 0x00
0000149f: SWAP1
000014a0: DUP2
000014a1: MSTORE
000014a2: PUSH1 0x0a
000014a4: PUSH1 0x20
000014a6: MSTORE
000014a7: PUSH1 0x40
000014a9: SWAP1
000014aa: KECCAK256
000014ab: SLOAD
000014ac: DUP7
000014ad: GT
000014ae: ISZERO
000014af: JUMPDEST
000014b0: ISZERO
000014b1: ISZERO
000014b2: PUSH2 0x14ba
000014b5: JUMPI
000014b6: PUSH1 0x00
000014b8: DUP1
000014b9: REVERT
000014ba: JUMPDEST
000014bb: PUSH2 0x14c8
000014be: PUSH2 0x0729
000014c1: DUP8
000014c2: PUSH1 0x05
000014c4: PUSH2 0x197b
000014c7: JUMP
000014c8: JUMPDEST
000014c9: SWAP3
000014ca: POP
000014cb: PUSH2 0x14d4
000014ce: DUP7
000014cf: DUP5
000014d0: PUSH2 0x19bd
000014d3: JUMP
000014d4: JUMPDEST
000014d5: SWAP2
000014d6: POP
000014d7: PUSH2 0x14df
000014da: DUP4
000014db: PUSH2 0x19d6
000014de: JUMP
000014df: JUMPDEST
000014e0: SWAP1
000014e1: POP
000014e2: PUSH2 0x14ed
000014e5: PUSH1 0x10
000014e7: SLOAD
000014e8: DUP5
000014e9: PUSH2 0x19bd
000014ec: JUMP
000014ed: JUMPDEST
000014ee: PUSH1 0x10
000014f0: SSTORE
000014f1: PUSH1 0x01
000014f3: PUSH1 0xa0
000014f5: PUSH1 0x02
000014f7: EXP
000014f8: SUB
000014f9: DUP5
000014fa: AND
000014fb: PUSH1 0x00
000014fd: SWAP1
000014fe: DUP2
000014ff: MSTORE
00001500: PUSH1 0x0a
00001502: PUSH1 0x20
00001504: MSTORE
00001505: PUSH1 0x40
00001507: SWAP1
00001508: KECCAK256
00001509: SLOAD
0000150a: PUSH2 0x1513
0000150d: SWAP1
0000150e: DUP8
0000150f: PUSH2 0x19bd
00001512: JUMP
00001513: JUMPDEST
00001514: PUSH1 0x01
00001516: PUSH1 0xa0
00001518: PUSH1 0x02
0000151a: EXP
0000151b: SUB
0000151c: DUP1
0000151d: DUP7
0000151e: AND
0000151f: PUSH1 0x00
00001521: SWAP1
00001522: DUP2
00001523: MSTORE
00001524: PUSH1 0x0a
00001526: PUSH1 0x20
00001528: MSTORE
00001529: PUSH1 0x40
0000152b: DUP1
0000152c: DUP3
0000152d: KECCAK256
0000152e: SWAP4
0000152f: SWAP1
00001530: SWAP4
00001531: SSTORE
00001532: SWAP1
00001533: DUP10
00001534: AND
00001535: DUP2
00001536: MSTORE
00001537: KECCAK256
00001538: SLOAD
00001539: PUSH2 0x1542
0000153c: SWAP1
0000153d: DUP4
0000153e: PUSH2 0x1961
00001541: JUMP
00001542: JUMPDEST
00001543: PUSH1 0x01
00001545: PUSH1 0xa0
00001547: PUSH1 0x02
00001549: EXP
0000154a: SUB
0000154b: DUP9
0000154c: DUP2
0000154d: AND
0000154e: PUSH1 0x00
00001550: DUP2
00001551: DUP2
00001552: MSTORE
00001553: PUSH1 0x0a
00001555: PUSH1 0x20
00001557: SWAP1
00001558: DUP2
00001559: MSTORE
0000155a: PUSH1 0x40
0000155c: DUP1
0000155d: DUP4
0000155e: KECCAK256
0000155f: SWAP6
00001560: SWAP1
00001561: SWAP6
00001562: SSTORE
00001563: PUSH1 0x11
00001565: DUP1
00001566: SLOAD
00001567: SWAP5
00001568: DUP11
00001569: AND
0000156a: DUP4
0000156b: MSTORE
0000156c: PUSH1 0x0c
0000156e: SWAP1
0000156f: SWAP2
00001570: MSTORE
00001571: DUP5
00001572: DUP3
00001573: KECCAK256
00001574: DUP1
00001575: SLOAD
00001576: SWAP5
00001577: DUP13
00001578: MUL
00001579: SWAP1
0000157a: SWAP5
0000157b: SUB
0000157c: SWAP1
0000157d: SWAP4
0000157e: SSTORE
0000157f: DUP3
00001580: SLOAD
00001581: SWAP2
00001582: DUP2
00001583: MSTORE
00001584: SWAP3
00001585: SWAP1
00001586: SWAP3
00001587: KECCAK256
00001588: DUP1
00001589: SLOAD
0000158a: SWAP3
0000158b: DUP6
0000158c: MUL
0000158d: SWAP1
0000158e: SWAP3
0000158f: ADD
00001590: SWAP1
00001591: SWAP2
00001592: SSTORE
00001593: SLOAD
00001594: PUSH1 0x10
00001596: SLOAD
00001597: PUSH2 0x15b1
0000159a: SWAP2
0000159b: SWAP1
0000159c: PUSH1 0x40
0000159e: PUSH1 0x02
000015a0: EXP
000015a1: DUP5
000015a2: MUL
000015a3: DUP2
000015a4: ISZERO
000015a5: ISZERO
000015a6: PUSH2 0x15ab
000015a9: JUMPI
000015aa: INVALID
000015ab: JUMPDEST
000015ac: DIV
000015ad: PUSH2 0x1961
000015b0: JUMP
000015b1: JUMPDEST
000015b2: PUSH1 0x11
000015b4: SSTORE
000015b5: PUSH1 0x01
000015b7: PUSH1 0xa0
000015b9: PUSH1 0x02
000015bb: EXP
000015bc: SUB
000015bd: DUP1
000015be: DUP9
000015bf: AND
000015c0: SWAP1
000015c1: DUP6
000015c2: AND
000015c3: PUSH32 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef
000015e4: DUP5
000015e5: PUSH1 0x40
000015e7: MLOAD
000015e8: SWAP1
000015e9: DUP2
000015ea: MSTORE
000015eb: PUSH1 0x20
000015ed: ADD
000015ee: PUSH1 0x40
000015f0: MLOAD
000015f1: DUP1
000015f2: SWAP2
000015f3: SUB
000015f4: SWAP1
000015f5: LOG3
000015f6: POP
000015f7: PUSH1 0x01
000015f9: SWAP7
000015fa: SWAP6
000015fb: POP
000015fc: POP
000015fd: POP
000015fe: POP
000015ff: POP
00001600: POP
00001601: JUMP
00001602: JUMPDEST
00001603: PUSH1 0x00
00001605: SLOAD
00001606: CALLER
00001607: PUSH1 0x01
00001609: PUSH1 0xa0
0000160b: PUSH1 0x02
0000160d: EXP
0000160e: SUB
0000160f: SWAP1
00001610: DUP2
00001611: AND
00001612: SWAP2
00001613: AND
00001614: EQ
00001615: PUSH2 0x161d
00001618: JUMPI
00001619: PUSH1 0x00
0000161b: DUP1
0000161c: REVERT
0000161d: JUMPDEST
0000161e: PUSH1 0x06
00001620: DUP1
00001621: SLOAD
00001622: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
00001637: NOT
00001638: AND
00001639: PUSH1 0x01
0000163b: PUSH1 0xa0
0000163d: PUSH1 0x02
0000163f: EXP
00001640: SUB
00001641: SWAP3
00001642: SWAP1
00001643: SWAP3
00001644: AND
00001645: SWAP2
00001646: SWAP1
00001647: SWAP2
00001648: OR
00001649: SWAP1
0000164a: SSTORE
0000164b: JUMP
0000164c: JUMPDEST
0000164d: PUSH1 0x00
0000164f: SLOAD
00001650: CALLER
00001651: SWAP1
00001652: PUSH1 0x01
00001654: PUSH1 0xa0
00001656: PUSH1 0x02
00001658: EXP
00001659: SUB
0000165a: DUP1
0000165b: DUP4
0000165c: AND
0000165d: SWAP2
0000165e: AND
0000165f: EQ
00001660: PUSH2 0x1668
00001663: JUMPI
00001664: PUSH1 0x00
00001666: DUP1
00001667: REVERT
00001668: JUMPDEST
00001669: PUSH1 0x02
0000166b: DUP3
0000166c: DUP1
0000166d: MLOAD
0000166e: PUSH2 0x167b
00001671: SWAP3
00001672: SWAP2
00001673: PUSH1 0x20
00001675: ADD
00001676: SWAP1
00001677: PUSH2 0x19fb
0000167a: JUMP
0000167b: JUMPDEST
0000167c: POP
0000167d: POP
0000167e: POP
0000167f: JUMP
00001680: JUMPDEST
00001681: PUSH1 0x00
00001683: SLOAD
00001684: CALLER
00001685: SWAP1
00001686: PUSH1 0x01
00001688: PUSH1 0xa0
0000168a: PUSH1 0x02
0000168c: EXP
0000168d: SUB
0000168e: DUP1
0000168f: DUP4
00001690: AND
00001691: SWAP2
00001692: AND
00001693: EQ
00001694: PUSH2 0x169c
00001697: JUMPI
00001698: PUSH1 0x00
0000169a: DUP1
0000169b: REVERT
0000169c: JUMPDEST
0000169d: PUSH1 0x01
0000169f: DUP3
000016a0: DUP1
000016a1: MLOAD
000016a2: PUSH2 0x167b
000016a5: SWAP3
000016a6: SWAP2
000016a7: PUSH1 0x20
000016a9: ADD
000016aa: SWAP1
000016ab: PUSH2 0x19fb
000016ae: JUMP
000016af: JUMPDEST
000016b0: PUSH1 0x00
000016b2: PUSH2 0x16bc
000016b5: DUP4
000016b6: CALLVALUE
000016b7: DUP5
000016b8: PUSH2 0x0656
000016bb: JUMP
000016bc: JUMPDEST
000016bd: SWAP4
000016be: SWAP3
000016bf: POP
000016c0: POP
000016c1: POP
000016c2: JUMP
000016c3: JUMPDEST
000016c4: PUSH1 0x00
000016c6: SLOAD
000016c7: CALLER
000016c8: SWAP1
000016c9: PUSH1 0x01
000016cb: PUSH1 0xa0
000016cd: PUSH1 0x02
000016cf: EXP
000016d0: SUB
000016d1: DUP1
000016d2: DUP4
000016d3: AND
000016d4: SWAP2
000016d5: AND
000016d6: EQ
000016d7: PUSH2 0x16df
000016da: JUMPI
000016db: PUSH1 0x00
000016dd: DUP1
000016de: REVERT
000016df: JUMPDEST
000016e0: POP
000016e1: PUSH1 0x00
000016e3: DUP1
000016e4: SLOAD
000016e5: PUSH20 0xffffffffffffffffffffffffffffffffffffffff
000016fa: NOT
000016fb: AND
000016fc: PUSH1 0x01
000016fe: PUSH1 0xa0
00001700: PUSH1 0x02
00001702: EXP
00001703: SUB
00001704: SWAP3
00001705: SWAP1
00001706: SWAP3
00001707: AND
00001708: SWAP2
00001709: SWAP1
0000170a: SWAP2
0000170b: OR
0000170c: SWAP1
0000170d: SSTORE
0000170e: JUMP
0000170f: JUMPDEST
00001710: PUSH1 0x00
00001712: DUP1
00001713: PUSH1 0x00
00001715: DUP1
00001716: PUSH1 0x00
00001718: DUP1
00001719: PUSH1 0x00
0000171b: PUSH2 0x1722
0000171e: PUSH2 0x13bf
00001721: JUMP
00001722: JUMPDEST
00001723: GT
00001724: PUSH2 0x172c
00001727: JUMPI
00001728: PUSH1 0x00
0000172a: DUP1
0000172b: REVERT
0000172c: JUMPDEST
0000172d: CALLER
0000172e: PUSH1 0x01
00001730: PUSH1 0xa0
00001732: PUSH1 0x02
00001734: EXP
00001735: SUB
00001736: DUP2
00001737: AND
00001738: PUSH1 0x00
0000173a: SWAP1
0000173b: DUP2
0000173c: MSTORE
0000173d: PUSH1 0x0a
0000173f: PUSH1 0x20
00001741: MSTORE
00001742: PUSH1 0x40
00001744: SWAP1
00001745: KECCAK256
00001746: SLOAD
00001747: SWAP1
00001748: SWAP7
00001749: POP
0000174a: DUP8
0000174b: GT
0000174c: ISZERO
0000174d: PUSH2 0x1755
00001750: JUMPI
00001751: PUSH1 0x00
00001753: DUP1
00001754: REVERT
00001755: JUMPDEST
00001756: DUP7
00001757: SWAP5
00001758: POP
00001759: PUSH2 0x1761
0000175c: DUP6
0000175d: PUSH2 0x19d6
00001760: JUMP
00001761: JUMPDEST
00001762: SWAP4
00001763: POP
00001764: PUSH2 0x1771
00001767: PUSH2 0x0729
0000176a: DUP6
0000176b: PUSH1 0x0a
0000176d: PUSH2 0x197b
00001770: JUMP
00001771: JUMPDEST
00001772: SWAP3
00001773: POP
00001774: PUSH2 0x177d
00001777: DUP5
00001778: DUP5
00001779: PUSH2 0x19bd
0000177c: JUMP
0000177d: JUMPDEST
0000177e: SWAP2
0000177f: POP
00001780: PUSH2 0x178b
00001783: PUSH1 0x10
00001785: SLOAD
00001786: DUP7
00001787: PUSH2 0x19bd
0000178a: JUMP
0000178b: JUMPDEST
0000178c: PUSH1 0x10
0000178e: SSTORE
0000178f: PUSH1 0x01
00001791: PUSH1 0xa0
00001793: PUSH1 0x02
00001795: EXP
00001796: SUB
00001797: DUP7
00001798: AND
00001799: PUSH1 0x00
0000179b: SWAP1
0000179c: DUP2
0000179d: MSTORE
0000179e: PUSH1 0x0a
000017a0: PUSH1 0x20
000017a2: MSTORE
000017a3: PUSH1 0x40
000017a5: SWAP1
000017a6: KECCAK256
000017a7: SLOAD
000017a8: PUSH2 0x17b1
000017ab: SWAP1
000017ac: DUP7
000017ad: PUSH2 0x19bd
000017b0: JUMP
000017b1: JUMPDEST
000017b2: PUSH1 0x01
000017b4: PUSH1 0xa0
000017b6: PUSH1 0x02
000017b8: EXP
000017b9: SUB
000017ba: DUP8
000017bb: AND
000017bc: PUSH1 0x00
000017be: SWAP1
000017bf: DUP2
000017c0: MSTORE
000017c1: PUSH1 0x0a
000017c3: PUSH1 0x20
000017c5: SWAP1
000017c6: DUP2
000017c7: MSTORE
000017c8: PUSH1 0x40
000017ca: DUP1
000017cb: DUP4
000017cc: KECCAK256
000017cd: SWAP4
000017ce: SWAP1
000017cf: SWAP4
000017d0: SSTORE
000017d1: PUSH1 0x11
000017d3: SLOAD
000017d4: PUSH1 0x0c
000017d6: SWAP1
000017d7: SWAP2
000017d8: MSTORE
000017d9: SWAP2
000017da: DUP2
000017db: KECCAK256
000017dc: DUP1
000017dd: SLOAD
000017de: SWAP3
000017df: DUP9
000017e0: MUL
000017e1: PUSH1 0x40
000017e3: PUSH1 0x02
000017e5: EXP
000017e6: DUP7
000017e7: MUL
000017e8: ADD
000017e9: SWAP3
000017ea: DUP4
000017eb: SWAP1
000017ec: SUB
000017ed: SWAP1
000017ee: SSTORE
000017ef: PUSH1 0x10
000017f1: SLOAD
000017f2: SWAP2
000017f3: SWAP3
000017f4: POP
000017f5: SWAP1
000017f6: GT
000017f7: ISZERO
000017f8: PUSH2 0x1818
000017fb: JUMPI
000017fc: PUSH2 0x1814
000017ff: PUSH1 0x11
00001801: SLOAD
00001802: PUSH1 0x10
00001804: SLOAD
00001805: PUSH1 0x40
00001807: PUSH1 0x02
00001809: EXP
0000180a: DUP7
0000180b: MUL
0000180c: DUP2
0000180d: ISZERO
0000180e: ISZERO
0000180f: PUSH2 0x15ab
00001812: JUMPI
00001813: INVALID
00001814: JUMPDEST
00001815: PUSH1 0x11
00001817: SSTORE
00001818: JUMPDEST
00001819: DUP6
0000181a: PUSH1 0x01
0000181c: PUSH1 0xa0
0000181e: PUSH1 0x02
00001820: EXP
00001821: SUB
00001822: AND
00001823: PUSH32 0xc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a31139
00001844: DUP7
00001845: DUP5
00001846: PUSH1 0x40
00001848: MLOAD
00001849: SWAP2
0000184a: DUP3
0000184b: MSTORE
0000184c: PUSH1 0x20
0000184e: DUP3
0000184f: ADD
00001850: MSTORE
00001851: PUSH1 0x40
00001853: SWAP1
00001854: DUP2
00001855: ADD
00001856: SWAP1
00001857: MLOAD
00001858: DUP1
00001859: SWAP2
0000185a: SUB
0000185b: SWAP1
0000185c: LOG2
0000185d: POP
0000185e: POP
0000185f: POP
00001860: POP
00001861: POP
00001862: POP
00001863: POP
00001864: JUMP
00001865: JUMPDEST
00001866: CALLER
00001867: PUSH1 0x01
00001869: PUSH1 0xa0
0000186b: PUSH1 0x02
0000186d: EXP
0000186e: SUB
0000186f: DUP2
00001870: AND
00001871: PUSH1 0x00
00001873: SWAP1
00001874: DUP2
00001875: MSTORE
00001876: PUSH1 0x0a
00001878: PUSH1 0x20
0000187a: MSTORE
0000187b: PUSH1 0x40
0000187d: DUP2
0000187e: KECCAK256
0000187f: SLOAD
00001880: SWAP1
00001881: DUP2
00001882: GT
00001883: ISZERO
00001884: PUSH2 0x1890
00001887: JUMPI
00001888: PUSH2 0x1890
0000188b: DUP2
0000188c: PUSH2 0x170f
0000188f: JUMP
00001890: JUMPDEST
00001891: PUSH2 0x1898
00001894: PUSH2 0x1007
00001897: JUMP
00001898: JUMPDEST
00001899: POP
0000189a: POP
0000189b: JUMP
0000189c: JUMPDEST
0000189d: PUSH1 0x00
0000189f: PUSH2 0x12d4
000018a2: CALLER
000018a3: CALLVALUE
000018a4: DUP5
000018a5: PUSH2 0x0656
000018a8: JUMP
000018a9: JUMPDEST
000018aa: PUSH1 0x00
000018ac: DUP1
000018ad: PUSH1 0x00
000018af: DUP1
000018b0: PUSH2 0x18b9
000018b3: PUSH1 0x01
000018b5: PUSH2 0x1297
000018b8: JUMP
000018b9: JUMPDEST
000018ba: GT
000018bb: PUSH2 0x18c3
000018be: JUMPI
000018bf: PUSH1 0x00
000018c1: DUP1
000018c2: REVERT
000018c3: JUMPDEST
000018c4: PUSH2 0x18cd
000018c7: PUSH1 0x00
000018c9: PUSH2 0x1297
000018cc: JUMP
000018cd: JUMPDEST
000018ce: CALLER
000018cf: PUSH1 0x01
000018d1: PUSH1 0xa0
000018d3: PUSH1 0x02
000018d5: EXP
000018d6: SUB
000018d7: DUP2
000018d8: AND
000018d9: PUSH1 0x00
000018db: SWAP1
000018dc: DUP2
000018dd: MSTORE
000018de: PUSH1 0x0c
000018e0: PUSH1 0x20
000018e2: SWAP1
000018e3: DUP2
000018e4: MSTORE
000018e5: PUSH1 0x40
000018e7: DUP1
000018e8: DUP4
000018e9: KECCAK256
000018ea: DUP1
000018eb: SLOAD
000018ec: PUSH1 0x40
000018ee: PUSH1 0x02
000018f0: EXP
000018f1: DUP8
000018f2: MUL
000018f3: ADD
000018f4: SWAP1
000018f5: SSTORE
000018f6: PUSH1 0x0b
000018f8: SWAP1
000018f9: SWAP2
000018fa: MSTORE
000018fb: DUP2
000018fc: KECCAK256
000018fd: DUP1
000018fe: SLOAD
000018ff: SWAP1
00001900: DUP3
00001901: SWAP1
00001902: SSTORE
00001903: SWAP1
00001904: SWAP3
00001905: ADD
00001906: SWAP5
00001907: POP
00001908: SWAP3
00001909: POP
0000190a: PUSH2 0x1916
0000190d: SWAP1
0000190e: DUP4
0000190f: SWAP1
00001910: DUP6
00001911: SWAP1
00001912: PUSH2 0x0656
00001915: JUMP
00001916: JUMPDEST
00001917: SWAP1
00001918: POP
00001919: DUP2
0000191a: PUSH1 0x01
0000191c: PUSH1 0xa0
0000191e: PUSH1 0x02
00001920: EXP
00001921: SUB
00001922: AND
00001923: PUSH32 0xbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab3615326458
00001944: DUP5
00001945: DUP4
00001946: PUSH1 0x40
00001948: MLOAD
00001949: SWAP2
0000194a: DUP3
0000194b: MSTORE
0000194c: PUSH1 0x20
0000194e: DUP3
0000194f: ADD
00001950: MSTORE
00001951: PUSH1 0x40
00001953: SWAP1
00001954: DUP2
00001955: ADD
00001956: SWAP1
00001957: MLOAD
00001958: DUP1
00001959: SWAP2
0000195a: SUB
0000195b: SWAP1
0000195c: LOG2
0000195d: POP
0000195e: POP
0000195f: POP
00001960: JUMP
00001961: JUMPDEST
00001962: PUSH1 0x00
00001964: DUP3
00001965: DUP3
00001966: ADD
00001967: DUP4
00001968: DUP2
00001969: LT
0000196a: ISZERO
0000196b: PUSH2 0x1970
0000196e: JUMPI
0000196f: INVALID
00001970: JUMPDEST
00001971: DUP1
00001972: SWAP2
00001973: POP
00001974: JUMPDEST
00001975: POP
00001976: SWAP3
00001977: SWAP2
00001978: POP
00001979: POP
0000197a: JUMP
0000197b: JUMPDEST
0000197c: PUSH1 0x00
0000197e: DUP1
0000197f: DUP4
00001980: ISZERO
00001981: ISZERO
00001982: PUSH2 0x198e
00001985: JUMPI
00001986: PUSH1 0x00
00001988: SWAP2
00001989: POP
0000198a: PUSH2 0x1974
0000198d: JUMP
0000198e: JUMPDEST
0000198f: POP
00001990: DUP3
00001991: DUP3
00001992: MUL
00001993: DUP3
00001994: DUP5
00001995: DUP3
00001996: DUP2
00001997: ISZERO
00001998: ISZERO
00001999: PUSH2 0x199e
0000199c: JUMPI
0000199d: INVALID
0000199e: JUMPDEST
0000199f: DIV
000019a0: EQ
000019a1: PUSH2 0x1970
000019a4: JUMPI
000019a5: INVALID
000019a6: JUMPDEST
000019a7: PUSH1 0x00
000019a9: DUP1
000019aa: DUP3
000019ab: DUP5
000019ac: DUP2
000019ad: ISZERO
000019ae: ISZERO
000019af: PUSH2 0x19b4
000019b2: JUMPI
000019b3: INVALID
000019b4: JUMPDEST
000019b5: DIV
000019b6: SWAP5
000019b7: SWAP4
000019b8: POP
000019b9: POP
000019ba: POP
000019bb: POP
000019bc: JUMP
000019bd: JUMPDEST
000019be: PUSH1 0x00
000019c0: DUP3
000019c1: DUP3
000019c2: GT
000019c3: ISZERO
000019c4: PUSH2 0x19c9
000019c7: JUMPI
000019c8: INVALID
000019c9: JUMPDEST
000019ca: POP
000019cb: SWAP1
000019cc: SUB
000019cd: SWAP1
000019ce: JUMP
000019cf: JUMPDEST
000019d0: PUSH2 0x4e20
000019d3: MUL
000019d4: SWAP1
000019d5: JUMP
000019d6: JUMPDEST
000019d7: PUSH1 0x00
000019d9: PUSH2 0x4e20
000019dc: DUP3
000019dd: PUSH2 0x0e68
000019e0: JUMP
000019e1: JUMPDEST
000019e2: PUSH1 0x00
000019e4: SWAP1
000019e5: EXTCODESIZE
000019e6: GT
000019e7: SWAP1
000019e8: JUMP
000019e9: JUMPDEST
000019ea: PUSH1 0x20
000019ec: PUSH1 0x40
000019ee: MLOAD
000019ef: SWAP1
000019f0: DUP2
000019f1: ADD
000019f2: PUSH1 0x40
000019f4: MSTORE
000019f5: PUSH1 0x00
000019f7: DUP2
000019f8: MSTORE
000019f9: SWAP1
000019fa: JUMP
000019fb: JUMPDEST
000019fc: DUP3
000019fd: DUP1
000019fe: SLOAD
000019ff: PUSH1 0x01
00001a01: DUP2
00001a02: PUSH1 0x01
00001a04: AND
00001a05: ISZERO
00001a06: PUSH2 0x0100
00001a09: MUL
00001a0a: SUB
00001a0b: AND
00001a0c: PUSH1 0x02
00001a0e: SWAP1
00001a0f: DIV
00001a10: SWAP1
00001a11: PUSH1 0x00
00001a13: MSTORE
00001a14: PUSH1 0x20
00001a16: PUSH1 0x00
00001a18: KECCAK256
00001a19: SWAP1
00001a1a: PUSH1 0x1f
00001a1c: ADD
00001a1d: PUSH1 0x20
00001a1f: SWAP1
00001a20: DIV
00001a21: DUP2
00001a22: ADD
00001a23: SWAP3
00001a24: DUP3
00001a25: PUSH1 0x1f
00001a27: LT
00001a28: PUSH2 0x1a3c
00001a2b: JUMPI
00001a2c: DUP1
00001a2d: MLOAD
00001a2e: PUSH1 0xff
00001a30: NOT
00001a31: AND
00001a32: DUP4
00001a33: DUP1
00001a34: ADD
00001a35: OR
00001a36: DUP6
00001a37: SSTORE
00001a38: PUSH2 0x1a69
00001a3b: JUMP
00001a3c: JUMPDEST
00001a3d: DUP3
00001a3e: DUP1
00001a3f: ADD
00001a40: PUSH1 0x01
00001a42: ADD
00001a43: DUP6
00001a44: SSTORE
00001a45: DUP3
00001a46: ISZERO
00001a47: PUSH2 0x1a69
00001a4a: JUMPI
00001a4b: SWAP2
00001a4c: DUP3
00001a4d: ADD
00001a4e: JUMPDEST
00001a4f: DUP3
00001a50: DUP2
00001a51: GT
00001a52: ISZERO
00001a53: PUSH2 0x1a69
00001a56: JUMPI
00001a57: DUP3
00001a58: MLOAD
00001a59: DUP3
00001a5a: SSTORE
00001a5b: SWAP2
00001a5c: PUSH1 0x20
00001a5e: ADD
00001a5f: SWAP2
00001a60: SWAP1
00001a61: PUSH1 0x01
00001a63: ADD
00001a64: SWAP1
00001a65: PUSH2 0x1a4e
00001a68: JUMP
00001a69: JUMPDEST
00001a6a: POP
00001a6b: PUSH2 0x13ce
00001a6e: SWAP3
00001a6f: PUSH2 0x0f59
00001a72: SWAP3
00001a73: POP
00001a74: SWAP1
00001a75: JUMPDEST
00001a76: DUP1
00001a77: DUP3
00001a78: GT
00001a79: ISZERO
00001a7a: PUSH2 0x13ce
00001a7d: JUMPI
00001a7e: PUSH1 0x00
00001a80: DUP2
00001a81: SSTORE
00001a82: PUSH1 0x01
00001a84: ADD
00001a85: PUSH2 0x1a75
00001a88: JUMP
00001a89: STOP
00001a8a: LOG1
00001a8b: PUSH6 0x627a7a723058
00001a92: KECCAK256
00001a93: SIGNEXTEND
00001a94: CODECOPY
00001a95: UNKNOWN(0xEB)
00001a96: UNKNOWN(0x2C)
00001a97: UNKNOWN(0xCA)
00001a98: BLOBHASH
00001a99: UNKNOWN(0xE5)
00001a9a: UNKNOWN(0xE7)
00001a9b: CALLVALUE
00001a9c: UNKNOWN(0xDE)
00001a9d: UNKNOWN(0xEC)
00001a9e: SLT
00001a9f: SSTORE
00001aa0: UNKNOWN(0xCF)
00001aa1: UNKNOWN(0xCE)
00001aa2: UNKNOWN(0x21)
00001aa3: UNKNOWN(0x22)
00001aa4: SELFBALANCE
00001aa5: UNKNOWN(0xBB)
00001aa6: DUP3
00001aa7: PUSH2 0xc7d1
00001aaa: PUSH18

Findings

validated = confirmed for call sinks; sink observed for others
Severity Category Tool Title Confidence Validated Confirmed Details
high other detector Untrusted CALL target/value reachable 60 no no
view
trace_id: 0x28479f3b4bf746ef3e6c12d1eafab412fa65ee649f155bc3f1280ef1100f7b89
call_targets: 0xc6e5e9c6f4f3d1667df6086e91637cc7c64a13eb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x28479f3b4bf746ef3e6c12d1eafab412fa65ee649f155bc3f1280ef1100f7b89",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc6e5e9c6f4f3d1667df6086e91637cc7c64a13eb"
    ],
    "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": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f34dc16",
            "selector": "0x0f34dc16",
            "calldata_variants": [
                "0x0f34dc16",
                "0x0f34dc160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10d0ffdd",
            "selector": "0x10d0ffdd",
            "calldata_variants": [
                "0x10d0ffdd",
                "0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22609373",
            "selector": "0x22609373",
            "calldata_variants": [
                "0x22609373",
                "0x226093730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27defa1f",
            "selector": "0x27defa1f",
            "calldata_variants": [
                "0x27defa1f",
                "0x27defa1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x294205b4",
            "selector": "0x294205b4",
            "calldata_variants": [
                "0x294205b4",
                "0x294205b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2506,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2572,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2638,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 10,
    "guards_detected": [],
    "untrusted_call_count": 10
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x28479f3b4bf746ef3e6c12d1eafab412fa65ee649f155bc3f1280ef1100f7b89
call_targets: 0xc6e5e9c6f4f3d1667df6086e91637cc7c64a13eb
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x28479f3b4bf746ef3e6c12d1eafab412fa65ee649f155bc3f1280ef1100f7b89",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc6e5e9c6f4f3d1667df6086e91637cc7c64a13eb"
    ],
    "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": "0x06fdde03",
            "selector": "0x06fdde03",
            "calldata_variants": [
                "0x06fdde03",
                "0x06fdde030000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x0f34dc16",
            "selector": "0x0f34dc16",
            "calldata_variants": [
                "0x0f34dc16",
                "0x0f34dc160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x10d0ffdd",
            "selector": "0x10d0ffdd",
            "calldata_variants": [
                "0x10d0ffdd",
                "0x10d0ffdd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x18160ddd",
            "selector": "0x18160ddd",
            "calldata_variants": [
                "0x18160ddd",
                "0x18160ddd0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x22609373",
            "selector": "0x22609373",
            "calldata_variants": [
                "0x22609373",
                "0x226093730000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x27defa1f",
            "selector": "0x27defa1f",
            "calldata_variants": [
                "0x27defa1f",
                "0x27defa1f0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x294205b4",
            "selector": "0x294205b4",
            "calldata_variants": [
                "0x294205b4",
                "0x294205b40000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x313ce567",
            "selector": "0x313ce567",
            "calldata_variants": [
                "0x313ce567",
                "0x313ce5670000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 2506,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2572,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2638,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 10,
    "guards_detected": []
}
medium other codex Fee recipient transfers can permanently block buys/reinvests 75 no
view
evidence_json
{
    "evidence": "purchaseTokens transfers fees via `.transfer` after state updates, and any revert in these transfers reverts the whole purchase.",
    "locations": [
        "contracts/Contract.sol:720",
        "contracts/Contract.sol:721",
        "contracts/Contract.sol:722",
        "contracts/Contract.sol:723",
        "contracts/Contract.sol:724"
    ],
    "recommendation": "Use a pull-payment pattern (accrue fees and let recipients withdraw) or `call` with failure handling so fee payouts cannot block core user flows; ensure fee addresses are EOAs or enforce changeability for all fee addresses.",
    "exploit_scenario": "Each purchase/reinvest sends four fee transfers. If any fee recipient is a contract that reverts or needs more than 2300 gas in its fallback, every buy/buyFor/fallback/reinvest reverts, freezing the protocol. A malicious or compromised fee recipient can intentionally revert to halt all deposits."
}