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

Analysis Run

ecbd4a63-528c-4904-a826-66055a86935c

complete
Chain ID
1
Address
Block Number
Created
Mon, Dec 29, 2025 11:04 PM
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
30603 report.consolidate complete 1 / 1 3 months ago
104477 artifact.fetch complete 1 / 3 1 week ago
104478 tool.cast_disasm complete 1 / 3 1 week ago
104479 analysis.bundle complete 1 / 3 1 week ago
104480 capability.graph complete 1 / 3 1 week ago
104481 detector.run complete 1 / 3 1 week ago
104482 validation.fork complete 1 / 3 1 week ago

Artifact

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

Slither

tool.slither

No slither job recorded yet.

Codex

report.consolidate
Job Status
complete
Attempts
1 / 1
Findings
3
No findings?
no
Summary
Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.
View stderr
[codex:496194] OpenAI Codex v0.77.0 (research preview)
[codex:496194] --------
[codex:496194] workdir: /tmp/codex-multi-92ikqhf5
[codex:496194] model: gpt-5.2-codex
[codex:496194] provider: openai
[codex:496194] approval: never
[codex:496194] sandbox: read-only
[codex:496194] reasoning effort: xhigh
[codex:496194] reasoning summaries: auto
[codex:496194] session id: 019b6c58-9a34-7a23-8131-55fa7b7231c3
[codex:496194] --------
[codex:496194] user
[codex:496194] You are a security auditor. Audit this Solidity codebase for exploitable vulnerabilities.
[codex:496194] Focus on: reentrancy, access control, upgradeability/proxy issues, signature validation, oracle manipulation,
[codex:496194] accounting/invariant breaks, external call patterns, unchecked return values, and dangerous delegatecall.
[codex:496194] 
[codex:496194] Scope rules:
[codex:496194] - You MUST fully read `AUDIT_BUNDLE.txt` before concluding. It contains the complete contents of all first-party `contracts/**/*.sol` files.
[codex:496194] - Treat `lib/` and `@openzeppelin/` as third-party dependencies; skip them unless there is a concrete misuse angle in first-party code.
[codex:496194] 
[codex:496194] Output MUST be valid JSON matching the provided schema.
[codex:496194] - If you find nothing meaningful: set no_findings=true and findings=[].
[codex:496194] - Otherwise: set no_findings=false and include findings with severity/category/title and file/line locations when possible.
[codex:496194] 
[codex:496194] Output constraints (IMPORTANT):
[codex:496194] - severity MUST be exactly one of: info, low, medium, high, critical (lowercase).
[codex:496194] - category MUST be exactly one of: access_control, reentrancy, math, oracle, upgradeability, auth, other.
[codex:496194] mcp startup: no servers
[codex:496194] 
[codex:496194] thinking
[codex:496194] **Planning to read audit instructions**
[codex:496194] exec
[codex:496194] /bin/bash -lc ls in /tmp/codex-multi-92ikqhf5 succeeded in 5ms:
[codex:496194] AUDIT_BUNDLE.txt
[codex:496194] codex-output-schema.json
[codex:496194] contracts
[codex:496194] exec
[codex:496194] /bin/bash -lc 'wc -l AUDIT_BUNDLE.txt' in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194] 351 AUDIT_BUNDLE.txt
[codex:496194] exec
[codex:496194] /bin/bash -lc "sed -n '1,200p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194] This file concatenates the full contents of first-party Solidity sources for auditing.
[codex:496194] 
[codex:496194] ================================================================================
[codex:496194] FILE: contracts/Contract.sol
[codex:496194] ================================================================================
[codex:496194] // Dependency file: contracts/ETH/libraries/SafeMath.sol
[codex:496194] 
[codex:496194] // SPDX-License-Identifier: MIT
[codex:496194] 
[codex:496194] // pragma solidity >=0.6.0;
[codex:496194] 
[codex:496194] /**
[codex:496194]  * @dev Wrappers over Solidity's arithmetic operations with added overflow
[codex:496194]  * checks.
[codex:496194]  *
[codex:496194]  * Arithmetic operations in Solidity wrap on overflow. This can easily result
[codex:496194]  * in bugs, because programmers usually assume that an overflow raises an
[codex:496194]  * error, which is the standard behavior in high level programming languages.
[codex:496194]  * `SafeMath` restores this intuition by reverting the transaction when an
[codex:496194]  * operation overflows.
[codex:496194] 
[codex:496194] thinking
[codex:496194] **Continuing file review**
[codex:496194] exec
[codex:496194] /bin/bash -lc "sed -n '200,400p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-92ikqhf5 succeeded in 5ms:
[codex:496194] 
[codex:496194] // Root file: contracts/ETH/ETHBurgerTransit.sol
[codex:496194] 
[codex:496194] // SPDX-License-Identifier: MIT
[codex:496194] pragma solidity >=0.5.16;
[codex:496194] 
[codex:496194] // import 'contracts/ETH/libraries/SafeMath.sol';
[codex:496194] // import 'contracts/ETH/libraries/TransferHelper.sol';
[codex:496194] 
[codex:496194] interface IWETH {
[codex:496194]     function deposit() external payable;
[codex:496194]     function withdraw(uint) external;
[codex:496194] }
[codex:496194] 
[codex:496194] contract ETHBurgerTransit {
[codex:496194]     using SafeMath for uint;
[codex:496194]     
[codex:496194]     address public owner;
[codex:496194]     address public signWallet;
[codex:496194]     address public developWallet;
[codex:496194] 
[codex:496194] 
[codex:496194] thinking
[codex:496194] **Analyzing bridge contract vulnerabilities**
[codex:496194] thinking
[codex:496194] **Identifying signature and token transfer risks**
[codex:496194] 
[codex:496194] I'll highlight missing domain separation causing cross-contract replay of signatures, and the risk with fee-on-transfer tokens where the contract may misaccount resulting in potential deficits. I'll also note the signature validation risks if signWallet is zero and touch on fee collection reentrancy concerns.
[codex:496194] exec
[codex:496194] /bin/bash -lc "sed -n '400,500p' AUDIT_BUNDLE.txt" in /tmp/codex-multi-92ikqhf5 succeeded in 5ms:
[codex:496194] 
[codex:496194] 
[codex:496194] thinking
[codex:496194] **Preparing to extract line numbers for findings**
[codex:496194] exec
[codex:496194] /bin/bash -lc 'rg -n "contract ETHBurgerTransit" -n contracts -S' in /tmp/codex-multi-92ikqhf5 succeeded in 8ms:
[codex:496194] contracts/Contract.sol:209:contract ETHBurgerTransit {
[codex:496194] 
[codex:496194] thinking
[codex:496194] **Examining Contract.sol file**
[codex:496194] exec
[codex:496194] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '200,340p'" in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194]    200	
[codex:496194]    201	// import 'contracts/ETH/libraries/SafeMath.sol';
[codex:496194]    202	// import 'contracts/ETH/libraries/TransferHelper.sol';
[codex:496194]    203	
[codex:496194]    204	interface IWETH {
[codex:496194]    205	    function deposit() external payable;
[codex:496194]    206	    function withdraw(uint) external;
[codex:496194]    207	}
[codex:496194]    208	
[codex:496194]    209	contract ETHBurgerTransit {
[codex:496194]    210	    using SafeMath for uint;
[codex:496194]    211	    
[codex:496194]    212	    address public owner;
[codex:496194]    213	    address public signWallet;
[codex:496194]    214	    address public developWallet;
[codex:496194]    215	    address public WETH;
[codex:496194]    216	    
[codex:496194]    217	    uint public totalFee;
[codex:496194]    218	    uint public developFee;
[codex:496194]    219	    
[codex:496194] exec
[codex:496194] /bin/bash -lc "nl -ba contracts/Contract.sol | sed -n '340,420p'" in /tmp/codex-multi-92ikqhf5 succeeded in 6ms:
[codex:496194]    340	    
[codex:496194]    341	    function _countSignatures(bytes memory _signatures) pure internal returns (uint)
[codex:496194]    342	    {
[codex:496194]    343	        return _signatures.length % 65 == 0 ? _signatures.length / 65 : 0;
[codex:496194]    344	    }
[codex:496194]    345	}
[codex:496194] 
[codex:496194] thinking
[codex:496194] **Composing detailed audit findings JSON**
[codex:496194] 
[codex:496194] I’m wrapping up the audit by carefully structuring a JSON output that follows the specified schema. It will include a summary and three findings about signature replay risk, fee-on-transfer token accounting issues, and signer zero-address misconfiguration—all with severity levels, categories, exploit scenarios, recommendations, evidence, and exact contract locations. I’ll ensure the JSON is well-formed and matches the user's requirements precisely.
[codex:496194] codex
[codex:496194] {"no_findings":false,"summary":"Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.","findings":[{"severity":"medium","category":"auth","title":"Withdrawal signatures lack domain separation, enabling cross-contract/chain replay","exploit_scenario":"If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity.","recommendation":"Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.","evidence":"The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.","locations":["contracts/Contract.sol:289","contracts/Contract.sol:303","contracts/Contract.sol:306"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can be over-credited during transit","exploit_scenario":"An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity.","recommendation":"Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.","evidence":"transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.","locations":["contracts/Contract.sol:270","contracts/Contract.sol:272","contracts/Contract.sol:273"]},{"severity":"low","category":"auth","title":"Signer can be set to zero address, weakening signature validation","exploit_scenario":"If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization.","recommendation":"Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.","evidence":"signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.","locations":["contracts/Contract.sol:236","contracts/Contract.sol:238","contracts/Contract.sol:247","contracts/Contract.sol:249","contracts/Contract.sol:303","contracts/Contract.sol:306"]}]}
[codex:496194] tokens used
[codex:496194] 19,184
[codex:496194] {"no_findings":false,"summary":"Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.","findings":[{"severity":"medium","category":"auth","title":"Withdrawal signatures lack domain separation, enabling cross-contract/chain replay","exploit_scenario":"If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity.","recommendation":"Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.","evidence":"The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.","locations":["contracts/Contract.sol:289","contracts/Contract.sol:303","contracts/Contract.sol:306"]},{"severity":"medium","category":"other","title":"Fee-on-transfer tokens can be over-credited during transit","exploit_scenario":"An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity.","recommendation":"Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.","evidence":"transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.","locations":["contracts/Contract.sol:270","contracts/Contract.sol:272","contracts/Contract.sol:273"]},{"severity":"low","category":"auth","title":"Signer can be set to zero address, weakening signature validation","exploit_scenario":"If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization.","recommendation":"Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.","evidence":"signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.","locations":["contracts/Contract.sol:236","contracts/Contract.sol:238","contracts/Contract.sol:247","contracts/Contract.sol:249","contracts/Contract.sol:303","contracts/Contract.sol:306"]}]}
Metadata
{
    "codex": {
        "ran_at": "2025-12-29T23:04:41.456259+00:00",
        "returncode": 0
    },
    "summary": "Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.",
    "raw_final": {
        "summary": "Identified 3 issues: cross-deployment signature replay risk, fee-on-transfer token accounting mismatch, and signer zero-address misconfiguration risk.",
        "findings": [
            {
                "title": "Withdrawal signatures lack domain separation, enabling cross-contract/chain replay",
                "category": "auth",
                "evidence": "The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:289",
                    "contracts/Contract.sol:303",
                    "contracts/Contract.sol:306"
                ],
                "recommendation": "Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.",
                "exploit_scenario": "If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity."
            },
            {
                "title": "Fee-on-transfer tokens can be over-credited during transit",
                "category": "other",
                "evidence": "transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.",
                "severity": "medium",
                "locations": [
                    "contracts/Contract.sol:270",
                    "contracts/Contract.sol:272",
                    "contracts/Contract.sol:273"
                ],
                "recommendation": "Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.",
                "exploit_scenario": "An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity."
            },
            {
                "title": "Signer can be set to zero address, weakening signature validation",
                "category": "auth",
                "evidence": "signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.",
                "severity": "low",
                "locations": [
                    "contracts/Contract.sol:236",
                    "contracts/Contract.sol:238",
                    "contracts/Contract.sol:247",
                    "contracts/Contract.sol:249",
                    "contracts/Contract.sol:303",
                    "contracts/Contract.sol:306"
                ],
                "recommendation": "Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.",
                "exploit_scenario": "If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization."
            }
        ],
        "no_findings": false
    },
    "no_findings": false,
    "schema_version": 1
}

Opcode Heuristics

tool.cast_disasm
Delegatecall
0
Selfdestruct
0
CREATE2
0
CALL-family (heavy)
6
EXT*/BALANCE
2
Total opcodes
2994
Flags
No heuristic flags raised.
View cast disassembly output
00000000: PUSH1 0x80
00000002: PUSH1 0x40
00000004: MSTORE
00000005: PUSH1 0x04
00000007: CALLDATASIZE
00000008: LT
00000009: PUSH2 0x00e1
0000000c: JUMPI
0000000d: PUSH1 0x00
0000000f: CALLDATALOAD
00000010: PUSH1 0xe0
00000012: SHR
00000013: DUP1
00000014: PUSH4 0xabc05a9d
00000019: GT
0000001a: PUSH2 0x007f
0000001d: JUMPI
0000001e: DUP1
0000001f: PUSH4 0xd07d6716
00000024: GT
00000025: PUSH2 0x0059
00000028: JUMPI
00000029: DUP1
0000002a: PUSH4 0xd07d6716
0000002f: EQ
00000030: PUSH2 0x02c8
00000033: JUMPI
00000034: DUP1
00000035: PUSH4 0xd4d5d32a
0000003a: EQ
0000003b: PUSH2 0x02fb
0000003e: JUMPI
0000003f: DUP1
00000040: PUSH4 0xe3f7764e
00000045: EQ
00000046: PUSH2 0x0310
00000049: JUMPI
0000004a: DUP1
0000004b: PUSH4 0xf9aebda0
00000050: EQ
00000051: PUSH2 0x0318
00000054: JUMPI
00000055: PUSH2 0x00fc
00000058: JUMP
00000059: JUMPDEST
0000005a: DUP1
0000005b: PUSH4 0xabc05a9d
00000060: EQ
00000061: PUSH2 0x0289
00000064: JUMPI
00000065: DUP1
00000066: PUSH4 0xad5c4648
0000006b: EQ
0000006c: PUSH2 0x029e
0000006f: JUMPI
00000070: DUP1
00000071: PUSH4 0xc3505005
00000076: EQ
00000077: PUSH2 0x02b3
0000007a: JUMPI
0000007b: PUSH2 0x00fc
0000007e: JUMP
0000007f: JUMPDEST
00000080: DUP1
00000081: PUSH4 0x8b5bdada
00000086: GT
00000087: PUSH2 0x00bb
0000008a: JUMPI
0000008b: DUP1
0000008c: PUSH4 0x8b5bdada
00000091: EQ
00000092: PUSH2 0x01de
00000095: JUMPI
00000096: DUP1
00000097: PUSH4 0x8da5cb5b
0000009c: EQ
0000009d: PUSH2 0x0217
000000a0: JUMPI
000000a1: DUP1
000000a2: PUSH4 0x9bcbbd57
000000a7: EQ
000000a8: PUSH2 0x022c
000000ab: JUMPI
000000ac: DUP1
000000ad: PUSH4 0xaad2b723
000000b2: EQ
000000b3: PUSH2 0x0256
000000b6: JUMPI
000000b7: PUSH2 0x00fc
000000ba: JUMP
000000bb: JUMPDEST
000000bc: DUP1
000000bd: PUSH4 0x1df4ccfc
000000c2: EQ
000000c3: PUSH2 0x0101
000000c6: JUMPI
000000c7: DUP1
000000c8: PUSH4 0x3463abb2
000000cd: EQ
000000ce: PUSH2 0x0128
000000d1: JUMPI
000000d2: DUP1
000000d3: PUSH4 0x4ce74859
000000d8: EQ
000000d9: PUSH2 0x01ad
000000dc: JUMPI
000000dd: PUSH2 0x00fc
000000e0: JUMP
000000e1: JUMPDEST
000000e2: CALLDATASIZE
000000e3: PUSH2 0x00fc
000000e6: JUMPI
000000e7: PUSH1 0x03
000000e9: SLOAD
000000ea: PUSH1 0x01
000000ec: PUSH1 0x01
000000ee: PUSH1 0xa0
000000f0: SHL
000000f1: SUB
000000f2: AND
000000f3: CALLER
000000f4: EQ
000000f5: PUSH2 0x00fa
000000f8: JUMPI
000000f9: INVALID
000000fa: JUMPDEST
000000fb: STOP
000000fc: JUMPDEST
000000fd: PUSH1 0x00
000000ff: DUP1
00000100: REVERT
00000101: JUMPDEST
00000102: CALLVALUE
00000103: DUP1
00000104: ISZERO
00000105: PUSH2 0x010d
00000108: JUMPI
00000109: PUSH1 0x00
0000010b: DUP1
0000010c: REVERT
0000010d: JUMPDEST
0000010e: POP
0000010f: PUSH2 0x0116
00000112: PUSH2 0x0356
00000115: JUMP
00000116: JUMPDEST
00000117: PUSH1 0x40
00000119: DUP1
0000011a: MLOAD
0000011b: SWAP2
0000011c: DUP3
0000011d: MSTORE
0000011e: MLOAD
0000011f: SWAP1
00000120: DUP2
00000121: SWAP1
00000122: SUB
00000123: PUSH1 0x20
00000125: ADD
00000126: SWAP1
00000127: RETURN
00000128: JUMPDEST
00000129: PUSH2 0x00fa
0000012c: PUSH1 0x04
0000012e: DUP1
0000012f: CALLDATASIZE
00000130: SUB
00000131: PUSH1 0x80
00000133: DUP2
00000134: LT
00000135: ISZERO
00000136: PUSH2 0x013e
00000139: JUMPI
0000013a: PUSH1 0x00
0000013c: DUP1
0000013d: REVERT
0000013e: JUMPDEST
0000013f: DUP2
00000140: ADD
00000141: SWAP1
00000142: PUSH1 0x20
00000144: DUP2
00000145: ADD
00000146: DUP2
00000147: CALLDATALOAD
00000148: PUSH5 0x0100000000
0000014e: DUP2
0000014f: GT
00000150: ISZERO
00000151: PUSH2 0x0159
00000154: JUMPI
00000155: PUSH1 0x00
00000157: DUP1
00000158: REVERT
00000159: JUMPDEST
0000015a: DUP3
0000015b: ADD
0000015c: DUP4
0000015d: PUSH1 0x20
0000015f: DUP3
00000160: ADD
00000161: GT
00000162: ISZERO
00000163: PUSH2 0x016b
00000166: JUMPI
00000167: PUSH1 0x00
00000169: DUP1
0000016a: REVERT
0000016b: JUMPDEST
0000016c: DUP1
0000016d: CALLDATALOAD
0000016e: SWAP1
0000016f: PUSH1 0x20
00000171: ADD
00000172: SWAP2
00000173: DUP5
00000174: PUSH1 0x01
00000176: DUP4
00000177: MUL
00000178: DUP5
00000179: ADD
0000017a: GT
0000017b: PUSH5 0x0100000000
00000181: DUP4
00000182: GT
00000183: OR
00000184: ISZERO
00000185: PUSH2 0x018d
00000188: JUMPI
00000189: PUSH1 0x00
0000018b: DUP1
0000018c: REVERT
0000018d: JUMPDEST
0000018e: SWAP2
0000018f: SWAP4
00000190: POP
00000191: SWAP2
00000192: POP
00000193: DUP1
00000194: CALLDATALOAD
00000195: SWAP1
00000196: PUSH1 0x01
00000198: PUSH1 0x01
0000019a: PUSH1 0xa0
0000019c: SHL
0000019d: SUB
0000019e: PUSH1 0x20
000001a0: DUP3
000001a1: ADD
000001a2: CALLDATALOAD
000001a3: AND
000001a4: SWAP1
000001a5: PUSH1 0x40
000001a7: ADD
000001a8: CALLDATALOAD
000001a9: PUSH2 0x035c
000001ac: JUMP
000001ad: JUMPDEST
000001ae: CALLVALUE
000001af: DUP1
000001b0: ISZERO
000001b1: PUSH2 0x01b9
000001b4: JUMPI
000001b5: PUSH1 0x00
000001b7: DUP1
000001b8: REVERT
000001b9: JUMPDEST
000001ba: POP
000001bb: PUSH2 0x01c2
000001be: PUSH2 0x0677
000001c1: JUMP
000001c2: JUMPDEST
000001c3: PUSH1 0x40
000001c5: DUP1
000001c6: MLOAD
000001c7: PUSH1 0x01
000001c9: PUSH1 0x01
000001cb: PUSH1 0xa0
000001cd: SHL
000001ce: SUB
000001cf: SWAP1
000001d0: SWAP3
000001d1: AND
000001d2: DUP3
000001d3: MSTORE
000001d4: MLOAD
000001d5: SWAP1
000001d6: DUP2
000001d7: SWAP1
000001d8: SUB
000001d9: PUSH1 0x20
000001db: ADD
000001dc: SWAP1
000001dd: RETURN
000001de: JUMPDEST
000001df: CALLVALUE
000001e0: DUP1
000001e1: ISZERO
000001e2: PUSH2 0x01ea
000001e5: JUMPI
000001e6: PUSH1 0x00
000001e8: DUP1
000001e9: REVERT
000001ea: JUMPDEST
000001eb: POP
000001ec: PUSH2 0x00fa
000001ef: PUSH1 0x04
000001f1: DUP1
000001f2: CALLDATASIZE
000001f3: SUB
000001f4: PUSH1 0x40
000001f6: DUP2
000001f7: LT
000001f8: ISZERO
000001f9: PUSH2 0x0201
000001fc: JUMPI
000001fd: PUSH1 0x00
000001ff: DUP1
00000200: REVERT
00000201: JUMPDEST
00000202: POP
00000203: PUSH1 0x01
00000205: PUSH1 0x01
00000207: PUSH1 0xa0
00000209: SHL
0000020a: SUB
0000020b: DUP2
0000020c: CALLDATALOAD
0000020d: AND
0000020e: SWAP1
0000020f: PUSH1 0x20
00000211: ADD
00000212: CALLDATALOAD
00000213: PUSH2 0x0686
00000216: JUMP
00000217: JUMPDEST
00000218: CALLVALUE
00000219: DUP1
0000021a: ISZERO
0000021b: PUSH2 0x0223
0000021e: JUMPI
0000021f: PUSH1 0x00
00000221: DUP1
00000222: REVERT
00000223: JUMPDEST
00000224: POP
00000225: PUSH2 0x01c2
00000228: PUSH2 0x071c
0000022b: JUMP
0000022c: JUMPDEST
0000022d: CALLVALUE
0000022e: DUP1
0000022f: ISZERO
00000230: PUSH2 0x0238
00000233: JUMPI
00000234: PUSH1 0x00
00000236: DUP1
00000237: REVERT
00000238: JUMPDEST
00000239: POP
0000023a: PUSH2 0x00fa
0000023d: PUSH1 0x04
0000023f: DUP1
00000240: CALLDATASIZE
00000241: SUB
00000242: PUSH1 0x20
00000244: DUP2
00000245: LT
00000246: ISZERO
00000247: PUSH2 0x024f
0000024a: JUMPI
0000024b: PUSH1 0x00
0000024d: DUP1
0000024e: REVERT
0000024f: JUMPDEST
00000250: POP
00000251: CALLDATALOAD
00000252: PUSH2 0x072b
00000255: JUMP
00000256: JUMPDEST
00000257: CALLVALUE
00000258: DUP1
00000259: ISZERO
0000025a: PUSH2 0x0262
0000025d: JUMPI
0000025e: PUSH1 0x00
00000260: DUP1
00000261: REVERT
00000262: JUMPDEST
00000263: POP
00000264: PUSH2 0x00fa
00000267: PUSH1 0x04
00000269: DUP1
0000026a: CALLDATASIZE
0000026b: SUB
0000026c: PUSH1 0x20
0000026e: DUP2
0000026f: LT
00000270: ISZERO
00000271: PUSH2 0x0279
00000274: JUMPI
00000275: PUSH1 0x00
00000277: DUP1
00000278: REVERT
00000279: JUMPDEST
0000027a: POP
0000027b: CALLDATALOAD
0000027c: PUSH1 0x01
0000027e: PUSH1 0x01
00000280: PUSH1 0xa0
00000282: SHL
00000283: SUB
00000284: AND
00000285: PUSH2 0x078f
00000288: JUMP
00000289: JUMPDEST
0000028a: CALLVALUE
0000028b: DUP1
0000028c: ISZERO
0000028d: PUSH2 0x0295
00000290: JUMPI
00000291: PUSH1 0x00
00000293: DUP1
00000294: REVERT
00000295: JUMPDEST
00000296: POP
00000297: PUSH2 0x0116
0000029a: PUSH2 0x0810
0000029d: JUMP
0000029e: JUMPDEST
0000029f: CALLVALUE
000002a0: DUP1
000002a1: ISZERO
000002a2: PUSH2 0x02aa
000002a5: JUMPI
000002a6: PUSH1 0x00
000002a8: DUP1
000002a9: REVERT
000002aa: JUMPDEST
000002ab: POP
000002ac: PUSH2 0x01c2
000002af: PUSH2 0x0816
000002b2: JUMP
000002b3: JUMPDEST
000002b4: CALLVALUE
000002b5: DUP1
000002b6: ISZERO
000002b7: PUSH2 0x02bf
000002ba: JUMPI
000002bb: PUSH1 0x00
000002bd: DUP1
000002be: REVERT
000002bf: JUMPDEST
000002c0: POP
000002c1: PUSH2 0x01c2
000002c4: PUSH2 0x0825
000002c7: JUMP
000002c8: JUMPDEST
000002c9: CALLVALUE
000002ca: DUP1
000002cb: ISZERO
000002cc: PUSH2 0x02d4
000002cf: JUMPI
000002d0: PUSH1 0x00
000002d2: DUP1
000002d3: REVERT
000002d4: JUMPDEST
000002d5: POP
000002d6: PUSH2 0x00fa
000002d9: PUSH1 0x04
000002db: DUP1
000002dc: CALLDATASIZE
000002dd: SUB
000002de: PUSH1 0x20
000002e0: DUP2
000002e1: LT
000002e2: ISZERO
000002e3: PUSH2 0x02eb
000002e6: JUMPI
000002e7: PUSH1 0x00
000002e9: DUP1
000002ea: REVERT
000002eb: JUMPDEST
000002ec: POP
000002ed: CALLDATALOAD
000002ee: PUSH1 0x01
000002f0: PUSH1 0x01
000002f2: PUSH1 0xa0
000002f4: SHL
000002f5: SUB
000002f6: AND
000002f7: PUSH2 0x0834
000002fa: JUMP
000002fb: JUMPDEST
000002fc: CALLVALUE
000002fd: DUP1
000002fe: ISZERO
000002ff: PUSH2 0x0307
00000302: JUMPI
00000303: PUSH1 0x00
00000305: DUP1
00000306: REVERT
00000307: JUMPDEST
00000308: POP
00000309: PUSH2 0x00fa
0000030c: PUSH2 0x08b5
0000030f: JUMP
00000310: JUMPDEST
00000311: PUSH2 0x00fa
00000314: PUSH2 0x09b4
00000317: JUMP
00000318: JUMPDEST
00000319: CALLVALUE
0000031a: DUP1
0000031b: ISZERO
0000031c: PUSH2 0x0324
0000031f: JUMPI
00000320: PUSH1 0x00
00000322: DUP1
00000323: REVERT
00000324: JUMPDEST
00000325: POP
00000326: PUSH2 0x0342
00000329: PUSH1 0x04
0000032b: DUP1
0000032c: CALLDATASIZE
0000032d: SUB
0000032e: PUSH1 0x20
00000330: DUP2
00000331: LT
00000332: ISZERO
00000333: PUSH2 0x033b
00000336: JUMPI
00000337: PUSH1 0x00
00000339: DUP1
0000033a: REVERT
0000033b: JUMPDEST
0000033c: POP
0000033d: CALLDATALOAD
0000033e: PUSH2 0x0aa9
00000341: JUMP
00000342: JUMPDEST
00000343: PUSH1 0x40
00000345: DUP1
00000346: MLOAD
00000347: SWAP2
00000348: ISZERO
00000349: ISZERO
0000034a: DUP3
0000034b: MSTORE
0000034c: MLOAD
0000034d: SWAP1
0000034e: DUP2
0000034f: SWAP1
00000350: SUB
00000351: PUSH1 0x20
00000353: ADD
00000354: SWAP1
00000355: RETURN
00000356: JUMPDEST
00000357: PUSH1 0x04
00000359: SLOAD
0000035a: DUP2
0000035b: JUMP
0000035c: JUMPDEST
0000035d: PUSH1 0x07
0000035f: SLOAD
00000360: PUSH1 0x01
00000362: EQ
00000363: PUSH2 0x039c
00000366: JUMPI
00000367: PUSH1 0x40
00000369: DUP1
0000036a: MLOAD
0000036b: PUSH3 0x461bcd
0000036f: PUSH1 0xe5
00000371: SHL
00000372: DUP2
00000373: MSTORE
00000374: PUSH1 0x20
00000376: PUSH1 0x04
00000378: DUP3
00000379: ADD
0000037a: MSTORE
0000037b: PUSH1 0x06
0000037d: PUSH1 0x24
0000037f: DUP3
00000380: ADD
00000381: MSTORE
00000382: PUSH6 0x131bd8dad959
00000389: PUSH1 0xd2
0000038b: SHL
0000038c: PUSH1 0x44
0000038e: DUP3
0000038f: ADD
00000390: MSTORE
00000391: SWAP1
00000392: MLOAD
00000393: SWAP1
00000394: DUP2
00000395: SWAP1
00000396: SUB
00000397: PUSH1 0x64
00000399: ADD
0000039a: SWAP1
0000039b: REVERT
0000039c: JUMPDEST
0000039d: PUSH1 0x00
0000039f: PUSH1 0x07
000003a1: DUP2
000003a2: SWAP1
000003a3: SSTORE
000003a4: DUP4
000003a5: DUP2
000003a6: MSTORE
000003a7: PUSH1 0x06
000003a9: PUSH1 0x20
000003ab: MSTORE
000003ac: PUSH1 0x40
000003ae: SWAP1
000003af: KECCAK256
000003b0: SLOAD
000003b1: PUSH1 0xff
000003b3: AND
000003b4: ISZERO
000003b5: PUSH2 0x03f8
000003b8: JUMPI
000003b9: PUSH1 0x40
000003bb: DUP1
000003bc: MLOAD
000003bd: PUSH3 0x461bcd
000003c1: PUSH1 0xe5
000003c3: SHL
000003c4: DUP2
000003c5: MSTORE
000003c6: PUSH1 0x20
000003c8: PUSH1 0x04
000003ca: DUP3
000003cb: ADD
000003cc: MSTORE
000003cd: PUSH1 0x10
000003cf: PUSH1 0x24
000003d1: DUP3
000003d2: ADD
000003d3: MSTORE
000003d4: PUSH16 0x1053149150511657d1561150d5551151
000003e5: PUSH1 0x82
000003e7: SHL
000003e8: PUSH1 0x44
000003ea: DUP3
000003eb: ADD
000003ec: MSTORE
000003ed: SWAP1
000003ee: MLOAD
000003ef: SWAP1
000003f0: DUP2
000003f1: SWAP1
000003f2: SUB
000003f3: PUSH1 0x64
000003f5: ADD
000003f6: SWAP1
000003f7: REVERT
000003f8: JUMPDEST
000003f9: PUSH1 0x00
000003fb: DUP4
000003fc: DUP2
000003fd: MSTORE
000003fe: PUSH1 0x06
00000400: PUSH1 0x20
00000402: MSTORE
00000403: PUSH1 0x40
00000405: SWAP1
00000406: KECCAK256
00000407: DUP1
00000408: SLOAD
00000409: PUSH1 0xff
0000040b: NOT
0000040c: AND
0000040d: PUSH1 0x01
0000040f: OR
00000410: SWAP1
00000411: SSTORE
00000412: DUP1
00000413: PUSH2 0x0459
00000416: JUMPI
00000417: PUSH1 0x40
00000419: DUP1
0000041a: MLOAD
0000041b: PUSH3 0x461bcd
0000041f: PUSH1 0xe5
00000421: SHL
00000422: DUP2
00000423: MSTORE
00000424: PUSH1 0x20
00000426: PUSH1 0x04
00000428: DUP3
00000429: ADD
0000042a: MSTORE
0000042b: PUSH1 0x13
0000042d: PUSH1 0x24
0000042f: DUP3
00000430: ADD
00000431: MSTORE
00000432: PUSH19 0x4e4f5448494e475f544f5f5749544844524157
00000446: PUSH1 0x68
00000448: SHL
00000449: PUSH1 0x44
0000044b: DUP3
0000044c: ADD
0000044d: MSTORE
0000044e: SWAP1
0000044f: MLOAD
00000450: SWAP1
00000451: DUP2
00000452: SWAP1
00000453: SUB
00000454: PUSH1 0x64
00000456: ADD
00000457: SWAP1
00000458: REVERT
00000459: JUMPDEST
0000045a: PUSH1 0x05
0000045c: SLOAD
0000045d: CALLVALUE
0000045e: EQ
0000045f: PUSH2 0x04a4
00000462: JUMPI
00000463: PUSH1 0x40
00000465: DUP1
00000466: MLOAD
00000467: PUSH3 0x461bcd
0000046b: PUSH1 0xe5
0000046d: SHL
0000046e: DUP2
0000046f: MSTORE
00000470: PUSH1 0x20
00000472: PUSH1 0x04
00000474: DUP3
00000475: ADD
00000476: MSTORE
00000477: PUSH1 0x12
00000479: PUSH1 0x24
0000047b: DUP3
0000047c: ADD
0000047d: MSTORE
0000047e: PUSH18 0x494e53554646494349454e545f56414c5545
00000491: PUSH1 0x70
00000493: SHL
00000494: PUSH1 0x44
00000496: DUP3
00000497: ADD
00000498: MSTORE
00000499: SWAP1
0000049a: MLOAD
0000049b: SWAP1
0000049c: DUP2
0000049d: SWAP1
0000049e: SUB
0000049f: PUSH1 0x64
000004a1: ADD
000004a2: SWAP1
000004a3: REVERT
000004a4: JUMPDEST
000004a5: PUSH1 0x40
000004a7: DUP1
000004a8: MLOAD
000004a9: PUSH1 0x20
000004ab: DUP1
000004ac: DUP3
000004ad: ADD
000004ae: DUP7
000004af: SWAP1
000004b0: MSTORE
000004b1: PUSH12 0xffffffffffffffffffffffff
000004be: NOT
000004bf: PUSH1 0x60
000004c1: DUP7
000004c2: DUP2
000004c3: SHL
000004c4: SWAP2
000004c5: SWAP1
000004c6: SWAP2
000004c7: AND
000004c8: DUP4
000004c9: DUP6
000004ca: ADD
000004cb: MSTORE
000004cc: CALLER
000004cd: SWAP1
000004ce: SHL
000004cf: PUSH1 0x54
000004d1: DUP4
000004d2: ADD
000004d3: MSTORE
000004d4: PUSH1 0x68
000004d6: DUP1
000004d7: DUP4
000004d8: ADD
000004d9: DUP6
000004da: SWAP1
000004db: MSTORE
000004dc: DUP4
000004dd: MLOAD
000004de: DUP1
000004df: DUP5
000004e0: SUB
000004e1: SWAP1
000004e2: SWAP2
000004e3: ADD
000004e4: DUP2
000004e5: MSTORE
000004e6: PUSH1 0x88
000004e8: DUP4
000004e9: ADD
000004ea: DUP1
000004eb: DUP6
000004ec: MSTORE
000004ed: DUP2
000004ee: MLOAD
000004ef: SWAP2
000004f0: DUP4
000004f1: ADD
000004f2: SWAP2
000004f3: SWAP1
000004f4: SWAP2
000004f5: KECCAK256
000004f6: PUSH1 0xa8
000004f8: PUSH1 0x1f
000004fa: DUP11
000004fb: ADD
000004fc: DUP5
000004fd: SWAP1
000004fe: DIV
000004ff: SWAP1
00000500: SWAP4
00000501: MUL
00000502: DUP5
00000503: ADD
00000504: DUP4
00000505: ADD
00000506: SWAP1
00000507: SWAP5
00000508: MSTORE
00000509: DUP8
0000050a: DUP2
0000050b: MSTORE
0000050c: PUSH2 0x0530
0000050f: SWAP3
00000510: DUP5
00000511: SWAP3
00000512: DUP11
00000513: SWAP2
00000514: DUP11
00000515: SWAP2
00000516: DUP3
00000517: SWAP2
00000518: ADD
00000519: DUP4
0000051a: DUP3
0000051b: DUP1
0000051c: DUP3
0000051d: DUP5
0000051e: CALLDATACOPY
0000051f: PUSH1 0x00
00000521: SWAP3
00000522: ADD
00000523: SWAP2
00000524: SWAP1
00000525: SWAP2
00000526: MSTORE
00000527: POP
00000528: PUSH2 0x0abe
0000052b: SWAP3
0000052c: POP
0000052d: POP
0000052e: POP
0000052f: JUMP
00000530: JUMPDEST
00000531: PUSH2 0x0575
00000534: JUMPI
00000535: PUSH1 0x40
00000537: DUP1
00000538: MLOAD
00000539: PUSH3 0x461bcd
0000053d: PUSH1 0xe5
0000053f: SHL
00000540: DUP2
00000541: MSTORE
00000542: PUSH1 0x20
00000544: PUSH1 0x04
00000546: DUP3
00000547: ADD
00000548: MSTORE
00000549: PUSH1 0x11
0000054b: PUSH1 0x24
0000054d: DUP3
0000054e: ADD
0000054f: MSTORE
00000550: PUSH17 0x494e56414c49445f5349474e4154555245
00000562: PUSH1 0x78
00000564: SHL
00000565: PUSH1 0x44
00000567: DUP3
00000568: ADD
00000569: MSTORE
0000056a: SWAP1
0000056b: MLOAD
0000056c: SWAP1
0000056d: DUP2
0000056e: SWAP1
0000056f: SUB
00000570: PUSH1 0x64
00000572: ADD
00000573: SWAP1
00000574: REVERT
00000575: JUMPDEST
00000576: PUSH1 0x03
00000578: SLOAD
00000579: PUSH1 0x01
0000057b: PUSH1 0x01
0000057d: PUSH1 0xa0
0000057f: SHL
00000580: SUB
00000581: DUP5
00000582: DUP2
00000583: AND
00000584: SWAP2
00000585: AND
00000586: EQ
00000587: ISZERO
00000588: PUSH2 0x05ff
0000058b: JUMPI
0000058c: PUSH1 0x03
0000058e: SLOAD
0000058f: PUSH1 0x40
00000591: DUP1
00000592: MLOAD
00000593: PUSH4 0x2e1a7d4d
00000598: PUSH1 0xe0
0000059a: SHL
0000059b: DUP2
0000059c: MSTORE
0000059d: PUSH1 0x04
0000059f: DUP2
000005a0: ADD
000005a1: DUP6
000005a2: SWAP1
000005a3: MSTORE
000005a4: SWAP1
000005a5: MLOAD
000005a6: PUSH1 0x01
000005a8: PUSH1 0x01
000005aa: PUSH1 0xa0
000005ac: SHL
000005ad: SUB
000005ae: SWAP1
000005af: SWAP3
000005b0: AND
000005b1: SWAP2
000005b2: PUSH4 0x2e1a7d4d
000005b7: SWAP2
000005b8: PUSH1 0x24
000005ba: DUP1
000005bb: DUP3
000005bc: ADD
000005bd: SWAP3
000005be: PUSH1 0x00
000005c0: SWAP3
000005c1: SWAP1
000005c2: SWAP2
000005c3: SWAP1
000005c4: DUP3
000005c5: SWAP1
000005c6: SUB
000005c7: ADD
000005c8: DUP2
000005c9: DUP4
000005ca: DUP8
000005cb: DUP1
000005cc: EXTCODESIZE
000005cd: ISZERO
000005ce: DUP1
000005cf: ISZERO
000005d0: PUSH2 0x05d8
000005d3: JUMPI
000005d4: PUSH1 0x00
000005d6: DUP1
000005d7: REVERT
000005d8: JUMPDEST
000005d9: POP
000005da: GAS
000005db: CALL
000005dc: ISZERO
000005dd: DUP1
000005de: ISZERO
000005df: PUSH2 0x05ec
000005e2: JUMPI
000005e3: RETURNDATASIZE
000005e4: PUSH1 0x00
000005e6: DUP1
000005e7: RETURNDATACOPY
000005e8: RETURNDATASIZE
000005e9: PUSH1 0x00
000005eb: REVERT
000005ec: JUMPDEST
000005ed: POP
000005ee: POP
000005ef: POP
000005f0: POP
000005f1: PUSH2 0x05fa
000005f4: CALLER
000005f5: DUP4
000005f6: PUSH2 0x0b11
000005f9: JUMP
000005fa: JUMPDEST
000005fb: PUSH2 0x060a
000005fe: JUMP
000005ff: JUMPDEST
00000600: PUSH2 0x060a
00000603: DUP4
00000604: CALLER
00000605: DUP5
00000606: PUSH2 0x0c09
00000609: JUMP
0000060a: JUMPDEST
0000060b: PUSH1 0x05
0000060d: SLOAD
0000060e: PUSH1 0x04
00000610: SLOAD
00000611: PUSH2 0x061f
00000614: SWAP2
00000615: PUSH4 0xffffffff
0000061a: PUSH2 0x0d73
0000061d: AND
0000061e: JUMP
0000061f: JUMPDEST
00000620: PUSH1 0x04
00000622: SSTORE
00000623: PUSH1 0x40
00000625: DUP1
00000626: MLOAD
00000627: DUP6
00000628: DUP2
00000629: MSTORE
0000062a: PUSH1 0x20
0000062c: DUP2
0000062d: ADD
0000062e: DUP5
0000062f: SWAP1
00000630: MSTORE
00000631: DUP2
00000632: MLOAD
00000633: PUSH1 0x01
00000635: PUSH1 0x01
00000637: PUSH1 0xa0
00000639: SHL
0000063a: SUB
0000063b: DUP7
0000063c: AND
0000063d: SWAP3
0000063e: CALLER
0000063f: SWAP3
00000640: PUSH32 0xcd6ac346191b4b7531743e58f243dd4d350a52a9186641c1e5eac22b95aaedbe
00000661: SWAP3
00000662: SWAP1
00000663: DUP2
00000664: SWAP1
00000665: SUB
00000666: SWAP1
00000667: SWAP2
00000668: ADD
00000669: SWAP1
0000066a: LOG3
0000066b: POP
0000066c: POP
0000066d: PUSH1 0x01
0000066f: PUSH1 0x07
00000671: SSTORE
00000672: POP
00000673: POP
00000674: POP
00000675: POP
00000676: JUMP
00000677: JUMPDEST
00000678: PUSH1 0x01
0000067a: SLOAD
0000067b: PUSH1 0x01
0000067d: PUSH1 0x01
0000067f: PUSH1 0xa0
00000681: SHL
00000682: SUB
00000683: AND
00000684: DUP2
00000685: JUMP
00000686: JUMPDEST
00000687: PUSH1 0x00
00000689: DUP2
0000068a: GT
0000068b: PUSH2 0x06cc
0000068e: JUMPI
0000068f: PUSH1 0x40
00000691: DUP1
00000692: MLOAD
00000693: PUSH3 0x461bcd
00000697: PUSH1 0xe5
00000699: SHL
0000069a: DUP2
0000069b: MSTORE
0000069c: PUSH1 0x20
0000069e: PUSH1 0x04
000006a0: DUP3
000006a1: ADD
000006a2: MSTORE
000006a3: PUSH1 0x0e
000006a5: PUSH1 0x24
000006a7: DUP3
000006a8: ADD
000006a9: MSTORE
000006aa: PUSH14 0x1253959053125117d05353d55395
000006b9: PUSH1 0x92
000006bb: SHL
000006bc: PUSH1 0x44
000006be: DUP3
000006bf: ADD
000006c0: MSTORE
000006c1: SWAP1
000006c2: MLOAD
000006c3: SWAP1
000006c4: DUP2
000006c5: SWAP1
000006c6: SUB
000006c7: PUSH1 0x64
000006c9: ADD
000006ca: SWAP1
000006cb: REVERT
000006cc: JUMPDEST
000006cd: PUSH2 0x06d8
000006d0: DUP3
000006d1: CALLER
000006d2: ADDRESS
000006d3: DUP5
000006d4: PUSH2 0x0dd4
000006d7: JUMP
000006d8: JUMPDEST
000006d9: PUSH1 0x40
000006db: DUP1
000006dc: MLOAD
000006dd: DUP3
000006de: DUP2
000006df: MSTORE
000006e0: SWAP1
000006e1: MLOAD
000006e2: PUSH1 0x01
000006e4: PUSH1 0x01
000006e6: PUSH1 0xa0
000006e8: SHL
000006e9: SUB
000006ea: DUP5
000006eb: AND
000006ec: SWAP2
000006ed: CALLER
000006ee: SWAP2
000006ef: PUSH32 0x63e35e92cba2f74cf881dc0d3cd0bb0d2d410f99203dce687272133843fef406
00000710: SWAP2
00000711: DUP2
00000712: SWAP1
00000713: SUB
00000714: PUSH1 0x20
00000716: ADD
00000717: SWAP1
00000718: LOG3
00000719: POP
0000071a: POP
0000071b: JUMP
0000071c: JUMPDEST
0000071d: PUSH1 0x00
0000071f: SLOAD
00000720: PUSH1 0x01
00000722: PUSH1 0x01
00000724: PUSH1 0xa0
00000726: SHL
00000727: SUB
00000728: AND
00000729: DUP2
0000072a: JUMP
0000072b: JUMPDEST
0000072c: PUSH1 0x00
0000072e: SLOAD
0000072f: PUSH1 0x01
00000731: PUSH1 0x01
00000733: PUSH1 0xa0
00000735: SHL
00000736: SUB
00000737: AND
00000738: CALLER
00000739: EQ
0000073a: PUSH2 0x078a
0000073d: JUMPI
0000073e: PUSH1 0x40
00000740: DUP1
00000741: MLOAD
00000742: PUSH3 0x461bcd
00000746: PUSH1 0xe5
00000748: SHL
00000749: DUP2
0000074a: MSTORE
0000074b: PUSH1 0x20
0000074d: PUSH1 0x04
0000074f: DUP3
00000750: ADD
00000751: MSTORE
00000752: PUSH1 0x1c
00000754: PUSH1 0x24
00000756: DUP3
00000757: ADD
00000758: MSTORE
00000759: PUSH32 0x4348414e47455f444556454c4f505f4645455f464f5242494444454e00000000
0000077a: PUSH1 0x44
0000077c: DUP3
0000077d: ADD
0000077e: MSTORE
0000077f: SWAP1
00000780: MLOAD
00000781: SWAP1
00000782: DUP2
00000783: SWAP1
00000784: SUB
00000785: PUSH1 0x64
00000787: ADD
00000788: SWAP1
00000789: REVERT
0000078a: JUMPDEST
0000078b: PUSH1 0x05
0000078d: SSTORE
0000078e: JUMP
0000078f: JUMPDEST
00000790: PUSH1 0x00
00000792: SLOAD
00000793: PUSH1 0x01
00000795: PUSH1 0x01
00000797: PUSH1 0xa0
00000799: SHL
0000079a: SUB
0000079b: AND
0000079c: CALLER
0000079d: EQ
0000079e: PUSH2 0x07ee
000007a1: JUMPI
000007a2: PUSH1 0x40
000007a4: DUP1
000007a5: MLOAD
000007a6: PUSH3 0x461bcd
000007aa: PUSH1 0xe5
000007ac: SHL
000007ad: DUP2
000007ae: MSTORE
000007af: PUSH1 0x20
000007b1: PUSH1 0x04
000007b3: DUP3
000007b4: ADD
000007b5: MSTORE
000007b6: PUSH1 0x17
000007b8: PUSH1 0x24
000007ba: DUP3
000007bb: ADD
000007bc: MSTORE
000007bd: PUSH32 0x4348414e47455f5349474e45525f464f5242494444454e000000000000000000
000007de: PUSH1 0x44
000007e0: DUP3
000007e1: ADD
000007e2: MSTORE
000007e3: SWAP1
000007e4: MLOAD
000007e5: SWAP1
000007e6: DUP2
000007e7: SWAP1
000007e8: SUB
000007e9: PUSH1 0x64
000007eb: ADD
000007ec: SWAP1
000007ed: REVERT
000007ee: JUMPDEST
000007ef: PUSH1 0x01
000007f1: DUP1
000007f2: SLOAD
000007f3: PUSH1 0x01
000007f5: PUSH1 0x01
000007f7: PUSH1 0xa0
000007f9: SHL
000007fa: SUB
000007fb: NOT
000007fc: AND
000007fd: PUSH1 0x01
000007ff: PUSH1 0x01
00000801: PUSH1 0xa0
00000803: SHL
00000804: SUB
00000805: SWAP3
00000806: SWAP1
00000807: SWAP3
00000808: AND
00000809: SWAP2
0000080a: SWAP1
0000080b: SWAP2
0000080c: OR
0000080d: SWAP1
0000080e: SSTORE
0000080f: JUMP
00000810: JUMPDEST
00000811: PUSH1 0x05
00000813: SLOAD
00000814: DUP2
00000815: JUMP
00000816: JUMPDEST
00000817: PUSH1 0x03
00000819: SLOAD
0000081a: PUSH1 0x01
0000081c: PUSH1 0x01
0000081e: PUSH1 0xa0
00000820: SHL
00000821: SUB
00000822: AND
00000823: DUP2
00000824: JUMP
00000825: JUMPDEST
00000826: PUSH1 0x02
00000828: SLOAD
00000829: PUSH1 0x01
0000082b: PUSH1 0x01
0000082d: PUSH1 0xa0
0000082f: SHL
00000830: SUB
00000831: AND
00000832: DUP2
00000833: JUMP
00000834: JUMPDEST
00000835: PUSH1 0x00
00000837: SLOAD
00000838: PUSH1 0x01
0000083a: PUSH1 0x01
0000083c: PUSH1 0xa0
0000083e: SHL
0000083f: SUB
00000840: AND
00000841: CALLER
00000842: EQ
00000843: PUSH2 0x0893
00000846: JUMPI
00000847: PUSH1 0x40
00000849: DUP1
0000084a: MLOAD
0000084b: PUSH3 0x461bcd
0000084f: PUSH1 0xe5
00000851: SHL
00000852: DUP2
00000853: MSTORE
00000854: PUSH1 0x20
00000856: PUSH1 0x04
00000858: DUP3
00000859: ADD
0000085a: MSTORE
0000085b: PUSH1 0x1f
0000085d: PUSH1 0x24
0000085f: DUP3
00000860: ADD
00000861: MSTORE
00000862: PUSH32 0x4348414e47455f444556454c4f505f57414c4c45545f464f5242494444454e00
00000883: PUSH1 0x44
00000885: DUP3
00000886: ADD
00000887: MSTORE
00000888: SWAP1
00000889: MLOAD
0000088a: SWAP1
0000088b: DUP2
0000088c: SWAP1
0000088d: SUB
0000088e: PUSH1 0x64
00000890: ADD
00000891: SWAP1
00000892: REVERT
00000893: JUMPDEST
00000894: PUSH1 0x02
00000896: DUP1
00000897: SLOAD
00000898: PUSH1 0x01
0000089a: PUSH1 0x01
0000089c: PUSH1 0xa0
0000089e: SHL
0000089f: SUB
000008a0: NOT
000008a1: AND
000008a2: PUSH1 0x01
000008a4: PUSH1 0x01
000008a6: PUSH1 0xa0
000008a8: SHL
000008a9: SUB
000008aa: SWAP3
000008ab: SWAP1
000008ac: SWAP3
000008ad: AND
000008ae: SWAP2
000008af: SWAP1
000008b0: SWAP2
000008b1: OR
000008b2: SWAP1
000008b3: SSTORE
000008b4: JUMP
000008b5: JUMPDEST
000008b6: PUSH1 0x00
000008b8: SLOAD
000008b9: PUSH1 0x01
000008bb: PUSH1 0x01
000008bd: PUSH1 0xa0
000008bf: SHL
000008c0: SUB
000008c1: AND
000008c2: CALLER
000008c3: EQ
000008c4: PUSH2 0x0900
000008c7: JUMPI
000008c8: PUSH1 0x40
000008ca: DUP1
000008cb: MLOAD
000008cc: PUSH3 0x461bcd
000008d0: PUSH1 0xe5
000008d2: SHL
000008d3: DUP2
000008d4: MSTORE
000008d5: PUSH1 0x20
000008d7: PUSH1 0x04
000008d9: DUP3
000008da: ADD
000008db: MSTORE
000008dc: PUSH1 0x09
000008de: PUSH1 0x24
000008e0: DUP3
000008e1: ADD
000008e2: MSTORE
000008e3: PUSH9 0x2327a92124a22222a7
000008ed: PUSH1 0xb9
000008ef: SHL
000008f0: PUSH1 0x44
000008f2: DUP3
000008f3: ADD
000008f4: MSTORE
000008f5: SWAP1
000008f6: MLOAD
000008f7: SWAP1
000008f8: DUP2
000008f9: SWAP1
000008fa: SUB
000008fb: PUSH1 0x64
000008fd: ADD
000008fe: SWAP1
000008ff: REVERT
00000900: JUMPDEST
00000901: PUSH1 0x02
00000903: SLOAD
00000904: PUSH1 0x01
00000906: PUSH1 0x01
00000908: PUSH1 0xa0
0000090a: SHL
0000090b: SUB
0000090c: AND
0000090d: PUSH2 0x0954
00000910: JUMPI
00000911: PUSH1 0x40
00000913: DUP1
00000914: MLOAD
00000915: PUSH3 0x461bcd
00000919: PUSH1 0xe5
0000091b: SHL
0000091c: DUP2
0000091d: MSTORE
0000091e: PUSH1 0x20
00000920: PUSH1 0x04
00000922: DUP3
00000923: ADD
00000924: MSTORE
00000925: PUSH1 0x14
00000927: PUSH1 0x24
00000929: DUP3
0000092a: ADD
0000092b: MSTORE
0000092c: PUSH20 0x14d155155417d11155915313d417d5d053131155
00000941: PUSH1 0x62
00000943: SHL
00000944: PUSH1 0x44
00000946: DUP3
00000947: ADD
00000948: MSTORE
00000949: SWAP1
0000094a: MLOAD
0000094b: SWAP1
0000094c: DUP2
0000094d: SWAP1
0000094e: SUB
0000094f: PUSH1 0x64
00000951: ADD
00000952: SWAP1
00000953: REVERT
00000954: JUMPDEST
00000955: PUSH1 0x00
00000957: PUSH1 0x04
00000959: SLOAD
0000095a: GT
0000095b: PUSH2 0x0994
0000095e: JUMPI
0000095f: PUSH1 0x40
00000961: DUP1
00000962: MLOAD
00000963: PUSH3 0x461bcd
00000967: PUSH1 0xe5
00000969: SHL
0000096a: DUP2
0000096b: MSTORE
0000096c: PUSH1 0x20
0000096e: PUSH1 0x04
00000970: DUP3
00000971: ADD
00000972: MSTORE
00000973: PUSH1 0x06
00000975: PUSH1 0x24
00000977: DUP3
00000978: ADD
00000979: MSTORE
0000097a: PUSH6 0x4e4f5f464545
00000981: PUSH1 0xd0
00000983: SHL
00000984: PUSH1 0x44
00000986: DUP3
00000987: ADD
00000988: MSTORE
00000989: SWAP1
0000098a: MLOAD
0000098b: SWAP1
0000098c: DUP2
0000098d: SWAP1
0000098e: SUB
0000098f: PUSH1 0x64
00000991: ADD
00000992: SWAP1
00000993: REVERT
00000994: JUMPDEST
00000995: PUSH1 0x02
00000997: SLOAD
00000998: PUSH1 0x04
0000099a: SLOAD
0000099b: PUSH2 0x09ad
0000099e: SWAP2
0000099f: PUSH1 0x01
000009a1: PUSH1 0x01
000009a3: PUSH1 0xa0
000009a5: SHL
000009a6: SUB
000009a7: AND
000009a8: SWAP1
000009a9: PUSH2 0x0b11
000009ac: JUMP
000009ad: JUMPDEST
000009ae: PUSH1 0x00
000009b0: PUSH1 0x04
000009b2: SSTORE
000009b3: JUMP
000009b4: JUMPDEST
000009b5: PUSH1 0x00
000009b7: CALLVALUE
000009b8: GT
000009b9: PUSH2 0x09fa
000009bc: JUMPI
000009bd: PUSH1 0x40
000009bf: DUP1
000009c0: MLOAD
000009c1: PUSH3 0x461bcd
000009c5: PUSH1 0xe5
000009c7: SHL
000009c8: DUP2
000009c9: MSTORE
000009ca: PUSH1 0x20
000009cc: PUSH1 0x04
000009ce: DUP3
000009cf: ADD
000009d0: MSTORE
000009d1: PUSH1 0x0e
000009d3: PUSH1 0x24
000009d5: DUP3
000009d6: ADD
000009d7: MSTORE
000009d8: PUSH14 0x1253959053125117d05353d55395
000009e7: PUSH1 0x92
000009e9: SHL
000009ea: PUSH1 0x44
000009ec: DUP3
000009ed: ADD
000009ee: MSTORE
000009ef: SWAP1
000009f0: MLOAD
000009f1: SWAP1
000009f2: DUP2
000009f3: SWAP1
000009f4: SUB
000009f5: PUSH1 0x64
000009f7: ADD
000009f8: SWAP1
000009f9: REVERT
000009fa: JUMPDEST
000009fb: PUSH1 0x03
000009fd: PUSH1 0x00
000009ff: SWAP1
00000a00: SLOAD
00000a01: SWAP1
00000a02: PUSH2 0x0100
00000a05: EXP
00000a06: SWAP1
00000a07: DIV
00000a08: PUSH1 0x01
00000a0a: PUSH1 0x01
00000a0c: PUSH1 0xa0
00000a0e: SHL
00000a0f: SUB
00000a10: AND
00000a11: PUSH1 0x01
00000a13: PUSH1 0x01
00000a15: PUSH1 0xa0
00000a17: SHL
00000a18: SUB
00000a19: AND
00000a1a: PUSH4 0xd0e30db0
00000a1f: CALLVALUE
00000a20: PUSH1 0x40
00000a22: MLOAD
00000a23: DUP3
00000a24: PUSH4 0xffffffff
00000a29: AND
00000a2a: PUSH1 0xe0
00000a2c: SHL
00000a2d: DUP2
00000a2e: MSTORE
00000a2f: PUSH1 0x04
00000a31: ADD
00000a32: PUSH1 0x00
00000a34: PUSH1 0x40
00000a36: MLOAD
00000a37: DUP1
00000a38: DUP4
00000a39: SUB
00000a3a: DUP2
00000a3b: DUP6
00000a3c: DUP9
00000a3d: DUP1
00000a3e: EXTCODESIZE
00000a3f: ISZERO
00000a40: DUP1
00000a41: ISZERO
00000a42: PUSH2 0x0a4a
00000a45: JUMPI
00000a46: PUSH1 0x00
00000a48: DUP1
00000a49: REVERT
00000a4a: JUMPDEST
00000a4b: POP
00000a4c: GAS
00000a4d: CALL
00000a4e: ISZERO
00000a4f: DUP1
00000a50: ISZERO
00000a51: PUSH2 0x0a5e
00000a54: JUMPI
00000a55: RETURNDATASIZE
00000a56: PUSH1 0x00
00000a58: DUP1
00000a59: RETURNDATACOPY
00000a5a: RETURNDATASIZE
00000a5b: PUSH1 0x00
00000a5d: REVERT
00000a5e: JUMPDEST
00000a5f: POP
00000a60: POP
00000a61: PUSH1 0x03
00000a63: SLOAD
00000a64: PUSH1 0x40
00000a66: DUP1
00000a67: MLOAD
00000a68: CALLVALUE
00000a69: DUP2
00000a6a: MSTORE
00000a6b: SWAP1
00000a6c: MLOAD
00000a6d: PUSH1 0x01
00000a6f: PUSH1 0x01
00000a71: PUSH1 0xa0
00000a73: SHL
00000a74: SUB
00000a75: SWAP1
00000a76: SWAP3
00000a77: AND
00000a78: SWAP5
00000a79: POP
00000a7a: CALLER
00000a7b: SWAP4
00000a7c: POP
00000a7d: PUSH32 0x63e35e92cba2f74cf881dc0d3cd0bb0d2d410f99203dce687272133843fef406
00000a9e: SWAP3
00000a9f: POP
00000aa0: DUP2
00000aa1: SWAP1
00000aa2: SUB
00000aa3: PUSH1 0x20
00000aa5: ADD
00000aa6: SWAP1
00000aa7: LOG3
00000aa8: JUMP
00000aa9: JUMPDEST
00000aaa: PUSH1 0x06
00000aac: PUSH1 0x20
00000aae: MSTORE
00000aaf: PUSH1 0x00
00000ab1: SWAP1
00000ab2: DUP2
00000ab3: MSTORE
00000ab4: PUSH1 0x40
00000ab6: SWAP1
00000ab7: KECCAK256
00000ab8: SLOAD
00000ab9: PUSH1 0xff
00000abb: AND
00000abc: DUP2
00000abd: JUMP
00000abe: JUMPDEST
00000abf: PUSH1 0x00
00000ac1: DUP1
00000ac2: PUSH2 0x0aca
00000ac5: DUP5
00000ac6: PUSH2 0x0f31
00000ac9: JUMP
00000aca: JUMPDEST
00000acb: SWAP1
00000acc: POP
00000acd: PUSH1 0x60
00000acf: PUSH2 0x0ad8
00000ad2: DUP3
00000ad3: DUP6
00000ad4: PUSH2 0x0f82
00000ad7: JUMP
00000ad8: JUMPDEST
00000ad9: PUSH1 0x01
00000adb: SLOAD
00000adc: DUP2
00000add: MLOAD
00000ade: SWAP2
00000adf: SWAP3
00000ae0: POP
00000ae1: PUSH1 0x01
00000ae3: PUSH1 0x01
00000ae5: PUSH1 0xa0
00000ae7: SHL
00000ae8: SUB
00000ae9: AND
00000aea: SWAP1
00000aeb: DUP3
00000aec: SWAP1
00000aed: PUSH1 0x00
00000aef: SWAP1
00000af0: PUSH2 0x0af5
00000af3: JUMPI
00000af4: INVALID
00000af5: JUMPDEST
00000af6: PUSH1 0x20
00000af8: MUL
00000af9: PUSH1 0x20
00000afb: ADD
00000afc: ADD
00000afd: MLOAD
00000afe: PUSH1 0x01
00000b00: PUSH1 0x01
00000b02: PUSH1 0xa0
00000b04: SHL
00000b05: SUB
00000b06: AND
00000b07: EQ
00000b08: SWAP3
00000b09: POP
00000b0a: POP
00000b0b: POP
00000b0c: SWAP3
00000b0d: SWAP2
00000b0e: POP
00000b0f: POP
00000b10: JUMP
00000b11: JUMPDEST
00000b12: PUSH1 0x40
00000b14: DUP1
00000b15: MLOAD
00000b16: PUSH1 0x00
00000b18: DUP1
00000b19: DUP3
00000b1a: MSTORE
00000b1b: PUSH1 0x20
00000b1d: DUP3
00000b1e: ADD
00000b1f: SWAP1
00000b20: SWAP3
00000b21: MSTORE
00000b22: PUSH1 0x01
00000b24: PUSH1 0x01
00000b26: PUSH1 0xa0
00000b28: SHL
00000b29: SUB
00000b2a: DUP5
00000b2b: AND
00000b2c: SWAP1
00000b2d: DUP4
00000b2e: SWAP1
00000b2f: PUSH1 0x40
00000b31: MLOAD
00000b32: DUP1
00000b33: DUP3
00000b34: DUP1
00000b35: MLOAD
00000b36: SWAP1
00000b37: PUSH1 0x20
00000b39: ADD
00000b3a: SWAP1
00000b3b: DUP1
00000b3c: DUP4
00000b3d: DUP4
00000b3e: JUMPDEST
00000b3f: PUSH1 0x20
00000b41: DUP4
00000b42: LT
00000b43: PUSH2 0x0b5d
00000b46: JUMPI
00000b47: DUP1
00000b48: MLOAD
00000b49: DUP3
00000b4a: MSTORE
00000b4b: PUSH1 0x1f
00000b4d: NOT
00000b4e: SWAP1
00000b4f: SWAP3
00000b50: ADD
00000b51: SWAP2
00000b52: PUSH1 0x20
00000b54: SWAP2
00000b55: DUP3
00000b56: ADD
00000b57: SWAP2
00000b58: ADD
00000b59: PUSH2 0x0b3e
00000b5c: JUMP
00000b5d: JUMPDEST
00000b5e: PUSH1 0x01
00000b60: DUP4
00000b61: PUSH1 0x20
00000b63: SUB
00000b64: PUSH2 0x0100
00000b67: EXP
00000b68: SUB
00000b69: DUP1
00000b6a: NOT
00000b6b: DUP3
00000b6c: MLOAD
00000b6d: AND
00000b6e: DUP2
00000b6f: DUP5
00000b70: MLOAD
00000b71: AND
00000b72: DUP1
00000b73: DUP3
00000b74: OR
00000b75: DUP6
00000b76: MSTORE
00000b77: POP
00000b78: POP
00000b79: POP
00000b7a: POP
00000b7b: POP
00000b7c: POP
00000b7d: SWAP1
00000b7e: POP
00000b7f: ADD
00000b80: SWAP2
00000b81: POP
00000b82: POP
00000b83: PUSH1 0x00
00000b85: PUSH1 0x40
00000b87: MLOAD
00000b88: DUP1
00000b89: DUP4
00000b8a: SUB
00000b8b: DUP2
00000b8c: DUP6
00000b8d: DUP8
00000b8e: GAS
00000b8f: CALL
00000b90: SWAP3
00000b91: POP
00000b92: POP
00000b93: POP
00000b94: RETURNDATASIZE
00000b95: DUP1
00000b96: PUSH1 0x00
00000b98: DUP2
00000b99: EQ
00000b9a: PUSH2 0x0bbf
00000b9d: JUMPI
00000b9e: PUSH1 0x40
00000ba0: MLOAD
00000ba1: SWAP2
00000ba2: POP
00000ba3: PUSH1 0x1f
00000ba5: NOT
00000ba6: PUSH1 0x3f
00000ba8: RETURNDATASIZE
00000ba9: ADD
00000baa: AND
00000bab: DUP3
00000bac: ADD
00000bad: PUSH1 0x40
00000baf: MSTORE
00000bb0: RETURNDATASIZE
00000bb1: DUP3
00000bb2: MSTORE
00000bb3: RETURNDATASIZE
00000bb4: PUSH1 0x00
00000bb6: PUSH1 0x20
00000bb8: DUP5
00000bb9: ADD
00000bba: RETURNDATACOPY
00000bbb: PUSH2 0x0bc4
00000bbe: JUMP
00000bbf: JUMPDEST
00000bc0: PUSH1 0x60
00000bc2: SWAP2
00000bc3: POP
00000bc4: JUMPDEST
00000bc5: POP
00000bc6: POP
00000bc7: SWAP1
00000bc8: POP
00000bc9: DUP1
00000bca: PUSH2 0x0c04
00000bcd: JUMPI
00000bce: PUSH1 0x40
00000bd0: MLOAD
00000bd1: PUSH3 0x461bcd
00000bd5: PUSH1 0xe5
00000bd7: SHL
00000bd8: DUP2
00000bd9: MSTORE
00000bda: PUSH1 0x04
00000bdc: ADD
00000bdd: DUP1
00000bde: DUP1
00000bdf: PUSH1 0x20
00000be1: ADD
00000be2: DUP3
00000be3: DUP2
00000be4: SUB
00000be5: DUP3
00000be6: MSTORE
00000be7: PUSH1 0x23
00000be9: DUP2
00000bea: MSTORE
00000beb: PUSH1 0x20
00000bed: ADD
00000bee: DUP1
00000bef: PUSH2 0x110e
00000bf2: PUSH1 0x23
00000bf4: SWAP2
00000bf5: CODECOPY
00000bf6: PUSH1 0x40
00000bf8: ADD
00000bf9: SWAP2
00000bfa: POP
00000bfb: POP
00000bfc: PUSH1 0x40
00000bfe: MLOAD
00000bff: DUP1
00000c00: SWAP2
00000c01: SUB
00000c02: SWAP1
00000c03: REVERT
00000c04: JUMPDEST
00000c05: POP
00000c06: POP
00000c07: POP
00000c08: JUMP
00000c09: JUMPDEST
00000c0a: PUSH1 0x40
00000c0c: DUP1
00000c0d: MLOAD
00000c0e: PUSH1 0x01
00000c10: PUSH1 0x01
00000c12: PUSH1 0xa0
00000c14: SHL
00000c15: SUB
00000c16: DUP5
00000c17: DUP2
00000c18: AND
00000c19: PUSH1 0x24
00000c1b: DUP4
00000c1c: ADD
00000c1d: MSTORE
00000c1e: PUSH1 0x44
00000c20: DUP1
00000c21: DUP4
00000c22: ADD
00000c23: DUP6
00000c24: SWAP1
00000c25: MSTORE
00000c26: DUP4
00000c27: MLOAD
00000c28: DUP1
00000c29: DUP5
00000c2a: SUB
00000c2b: SWAP1
00000c2c: SWAP2
00000c2d: ADD
00000c2e: DUP2
00000c2f: MSTORE
00000c30: PUSH1 0x64
00000c32: SWAP1
00000c33: SWAP3
00000c34: ADD
00000c35: DUP4
00000c36: MSTORE
00000c37: PUSH1 0x20
00000c39: DUP3
00000c3a: ADD
00000c3b: DUP1
00000c3c: MLOAD
00000c3d: PUSH1 0x01
00000c3f: PUSH1 0x01
00000c41: PUSH1 0xe0
00000c43: SHL
00000c44: SUB
00000c45: AND
00000c46: PUSH4 0xa9059cbb
00000c4b: PUSH1 0xe0
00000c4d: SHL
00000c4e: OR
00000c4f: DUP2
00000c50: MSTORE
00000c51: SWAP3
00000c52: MLOAD
00000c53: DUP3
00000c54: MLOAD
00000c55: PUSH1 0x00
00000c57: SWAP5
00000c58: PUSH1 0x60
00000c5a: SWAP5
00000c5b: SWAP4
00000c5c: DUP10
00000c5d: AND
00000c5e: SWAP4
00000c5f: SWAP3
00000c60: SWAP2
00000c61: DUP3
00000c62: SWAP2
00000c63: SWAP1
00000c64: DUP1
00000c65: DUP4
00000c66: DUP4
00000c67: JUMPDEST
00000c68: PUSH1 0x20
00000c6a: DUP4
00000c6b: LT
00000c6c: PUSH2 0x0c86
00000c6f: JUMPI
00000c70: DUP1
00000c71: MLOAD
00000c72: DUP3
00000c73: MSTORE
00000c74: PUSH1 0x1f
00000c76: NOT
00000c77: SWAP1
00000c78: SWAP3
00000c79: ADD
00000c7a: SWAP2
00000c7b: PUSH1 0x20
00000c7d: SWAP2
00000c7e: DUP3
00000c7f: ADD
00000c80: SWAP2
00000c81: ADD
00000c82: PUSH2 0x0c67
00000c85: JUMP
00000c86: JUMPDEST
00000c87: PUSH1 0x01
00000c89: DUP4
00000c8a: PUSH1 0x20
00000c8c: SUB
00000c8d: PUSH2 0x0100
00000c90: EXP
00000c91: SUB
00000c92: DUP1
00000c93: NOT
00000c94: DUP3
00000c95: MLOAD
00000c96: AND
00000c97: DUP2
00000c98: DUP5
00000c99: MLOAD
00000c9a: AND
00000c9b: DUP1
00000c9c: DUP3
00000c9d: OR
00000c9e: DUP6
00000c9f: MSTORE
00000ca0: POP
00000ca1: POP
00000ca2: POP
00000ca3: POP
00000ca4: POP
00000ca5: POP
00000ca6: SWAP1
00000ca7: POP
00000ca8: ADD
00000ca9: SWAP2
00000caa: POP
00000cab: POP
00000cac: PUSH1 0x00
00000cae: PUSH1 0x40
00000cb0: MLOAD
00000cb1: DUP1
00000cb2: DUP4
00000cb3: SUB
00000cb4: DUP2
00000cb5: PUSH1 0x00
00000cb7: DUP7
00000cb8: GAS
00000cb9: CALL
00000cba: SWAP2
00000cbb: POP
00000cbc: POP
00000cbd: RETURNDATASIZE
00000cbe: DUP1
00000cbf: PUSH1 0x00
00000cc1: DUP2
00000cc2: EQ
00000cc3: PUSH2 0x0ce8
00000cc6: JUMPI
00000cc7: PUSH1 0x40
00000cc9: MLOAD
00000cca: SWAP2
00000ccb: POP
00000ccc: PUSH1 0x1f
00000cce: NOT
00000ccf: PUSH1 0x3f
00000cd1: RETURNDATASIZE
00000cd2: ADD
00000cd3: AND
00000cd4: DUP3
00000cd5: ADD
00000cd6: PUSH1 0x40
00000cd8: MSTORE
00000cd9: RETURNDATASIZE
00000cda: DUP3
00000cdb: MSTORE
00000cdc: RETURNDATASIZE
00000cdd: PUSH1 0x00
00000cdf: PUSH1 0x20
00000ce1: DUP5
00000ce2: ADD
00000ce3: RETURNDATACOPY
00000ce4: PUSH2 0x0ced
00000ce7: JUMP
00000ce8: JUMPDEST
00000ce9: PUSH1 0x60
00000ceb: SWAP2
00000cec: POP
00000ced: JUMPDEST
00000cee: POP
00000cef: SWAP2
00000cf0: POP
00000cf1: SWAP2
00000cf2: POP
00000cf3: DUP2
00000cf4: DUP1
00000cf5: ISZERO
00000cf6: PUSH2 0x0d1b
00000cf9: JUMPI
00000cfa: POP
00000cfb: DUP1
00000cfc: MLOAD
00000cfd: ISZERO
00000cfe: DUP1
00000cff: PUSH2 0x0d1b
00000d02: JUMPI
00000d03: POP
00000d04: DUP1
00000d05: DUP1
00000d06: PUSH1 0x20
00000d08: ADD
00000d09: SWAP1
00000d0a: MLOAD
00000d0b: PUSH1 0x20
00000d0d: DUP2
00000d0e: LT
00000d0f: ISZERO
00000d10: PUSH2 0x0d18
00000d13: JUMPI
00000d14: PUSH1 0x00
00000d16: DUP1
00000d17: REVERT
00000d18: JUMPDEST
00000d19: POP
00000d1a: MLOAD
00000d1b: JUMPDEST
00000d1c: PUSH2 0x0d6c
00000d1f: JUMPI
00000d20: PUSH1 0x40
00000d22: DUP1
00000d23: MLOAD
00000d24: PUSH3 0x461bcd
00000d28: PUSH1 0xe5
00000d2a: SHL
00000d2b: DUP2
00000d2c: MSTORE
00000d2d: PUSH1 0x20
00000d2f: PUSH1 0x04
00000d31: DUP3
00000d32: ADD
00000d33: MSTORE
00000d34: PUSH1 0x1f
00000d36: PUSH1 0x24
00000d38: DUP3
00000d39: ADD
00000d3a: MSTORE
00000d3b: PUSH32 0x5472616e7366657248656c7065723a205452414e534645525f4641494c454400
00000d5c: PUSH1 0x44
00000d5e: DUP3
00000d5f: ADD
00000d60: MSTORE
00000d61: SWAP1
00000d62: MLOAD
00000d63: SWAP1
00000d64: DUP2
00000d65: SWAP1
00000d66: SUB
00000d67: PUSH1 0x64
00000d69: ADD
00000d6a: SWAP1
00000d6b: REVERT
00000d6c: JUMPDEST
00000d6d: POP
00000d6e: POP
00000d6f: POP
00000d70: POP
00000d71: POP
00000d72: JUMP
00000d73: JUMPDEST
00000d74: PUSH1 0x00
00000d76: DUP3
00000d77: DUP3
00000d78: ADD
00000d79: DUP4
00000d7a: DUP2
00000d7b: LT
00000d7c: ISZERO
00000d7d: PUSH2 0x0dcd
00000d80: JUMPI
00000d81: PUSH1 0x40
00000d83: DUP1
00000d84: MLOAD
00000d85: PUSH3 0x461bcd
00000d89: PUSH1 0xe5
00000d8b: SHL
00000d8c: DUP2
00000d8d: MSTORE
00000d8e: PUSH1 0x20
00000d90: PUSH1 0x04
00000d92: DUP3
00000d93: ADD
00000d94: MSTORE
00000d95: PUSH1 0x1b
00000d97: PUSH1 0x24
00000d99: DUP3
00000d9a: ADD
00000d9b: MSTORE
00000d9c: PUSH32 0x536166654d6174683a206164646974696f6e206f766572666c6f770000000000
00000dbd: PUSH1 0x44
00000dbf: DUP3
00000dc0: ADD
00000dc1: MSTORE
00000dc2: SWAP1
00000dc3: MLOAD
00000dc4: SWAP1
00000dc5: DUP2
00000dc6: SWAP1
00000dc7: SUB
00000dc8: PUSH1 0x64
00000dca: ADD
00000dcb: SWAP1
00000dcc: REVERT
00000dcd: JUMPDEST
00000dce: SWAP4
00000dcf: SWAP3
00000dd0: POP
00000dd1: POP
00000dd2: POP
00000dd3: JUMP
00000dd4: JUMPDEST
00000dd5: PUSH1 0x40
00000dd7: DUP1
00000dd8: MLOAD
00000dd9: PUSH1 0x01
00000ddb: PUSH1 0x01
00000ddd: PUSH1 0xa0
00000ddf: SHL
00000de0: SUB
00000de1: DUP6
00000de2: DUP2
00000de3: AND
00000de4: PUSH1 0x24
00000de6: DUP4
00000de7: ADD
00000de8: MSTORE
00000de9: DUP5
00000dea: DUP2
00000deb: AND
00000dec: PUSH1 0x44
00000dee: DUP4
00000def: ADD
00000df0: MSTORE
00000df1: PUSH1 0x64
00000df3: DUP1
00000df4: DUP4
00000df5: ADD
00000df6: DUP6
00000df7: SWAP1
00000df8: MSTORE
00000df9: DUP4
00000dfa: MLOAD
00000dfb: DUP1
00000dfc: DUP5
00000dfd: SUB
00000dfe: SWAP1
00000dff: SWAP2
00000e00: ADD
00000e01: DUP2
00000e02: MSTORE
00000e03: PUSH1 0x84
00000e05: SWAP1
00000e06: SWAP3
00000e07: ADD
00000e08: DUP4
00000e09: MSTORE
00000e0a: PUSH1 0x20
00000e0c: DUP3
00000e0d: ADD
00000e0e: DUP1
00000e0f: MLOAD
00000e10: PUSH1 0x01
00000e12: PUSH1 0x01
00000e14: PUSH1 0xe0
00000e16: SHL
00000e17: SUB
00000e18: AND
00000e19: PUSH4 0x23b872dd
00000e1e: PUSH1 0xe0
00000e20: SHL
00000e21: OR
00000e22: DUP2
00000e23: MSTORE
00000e24: SWAP3
00000e25: MLOAD
00000e26: DUP3
00000e27: MLOAD
00000e28: PUSH1 0x00
00000e2a: SWAP5
00000e2b: PUSH1 0x60
00000e2d: SWAP5
00000e2e: SWAP4
00000e2f: DUP11
00000e30: AND
00000e31: SWAP4
00000e32: SWAP3
00000e33: SWAP2
00000e34: DUP3
00000e35: SWAP2
00000e36: SWAP1
00000e37: DUP1
00000e38: DUP4
00000e39: DUP4
00000e3a: JUMPDEST
00000e3b: PUSH1 0x20
00000e3d: DUP4
00000e3e: LT
00000e3f: PUSH2 0x0e59
00000e42: JUMPI
00000e43: DUP1
00000e44: MLOAD
00000e45: DUP3
00000e46: MSTORE
00000e47: PUSH1 0x1f
00000e49: NOT
00000e4a: SWAP1
00000e4b: SWAP3
00000e4c: ADD
00000e4d: SWAP2
00000e4e: PUSH1 0x20
00000e50: SWAP2
00000e51: DUP3
00000e52: ADD
00000e53: SWAP2
00000e54: ADD
00000e55: PUSH2 0x0e3a
00000e58: JUMP
00000e59: JUMPDEST
00000e5a: PUSH1 0x01
00000e5c: DUP4
00000e5d: PUSH1 0x20
00000e5f: SUB
00000e60: PUSH2 0x0100
00000e63: EXP
00000e64: SUB
00000e65: DUP1
00000e66: NOT
00000e67: DUP3
00000e68: MLOAD
00000e69: AND
00000e6a: DUP2
00000e6b: DUP5
00000e6c: MLOAD
00000e6d: AND
00000e6e: DUP1
00000e6f: DUP3
00000e70: OR
00000e71: DUP6
00000e72: MSTORE
00000e73: POP
00000e74: POP
00000e75: POP
00000e76: POP
00000e77: POP
00000e78: POP
00000e79: SWAP1
00000e7a: POP
00000e7b: ADD
00000e7c: SWAP2
00000e7d: POP
00000e7e: POP
00000e7f: PUSH1 0x00
00000e81: PUSH1 0x40
00000e83: MLOAD
00000e84: DUP1
00000e85: DUP4
00000e86: SUB
00000e87: DUP2
00000e88: PUSH1 0x00
00000e8a: DUP7
00000e8b: GAS
00000e8c: CALL
00000e8d: SWAP2
00000e8e: POP
00000e8f: POP
00000e90: RETURNDATASIZE
00000e91: DUP1
00000e92: PUSH1 0x00
00000e94: DUP2
00000e95: EQ
00000e96: PUSH2 0x0ebb
00000e99: JUMPI
00000e9a: PUSH1 0x40
00000e9c: MLOAD
00000e9d: SWAP2
00000e9e: POP
00000e9f: PUSH1 0x1f
00000ea1: NOT
00000ea2: PUSH1 0x3f
00000ea4: RETURNDATASIZE
00000ea5: ADD
00000ea6: AND
00000ea7: DUP3
00000ea8: ADD
00000ea9: PUSH1 0x40
00000eab: MSTORE
00000eac: RETURNDATASIZE
00000ead: DUP3
00000eae: MSTORE
00000eaf: RETURNDATASIZE
00000eb0: PUSH1 0x00
00000eb2: PUSH1 0x20
00000eb4: DUP5
00000eb5: ADD
00000eb6: RETURNDATACOPY
00000eb7: PUSH2 0x0ec0
00000eba: JUMP
00000ebb: JUMPDEST
00000ebc: PUSH1 0x60
00000ebe: SWAP2
00000ebf: POP
00000ec0: JUMPDEST
00000ec1: POP
00000ec2: SWAP2
00000ec3: POP
00000ec4: SWAP2
00000ec5: POP
00000ec6: DUP2
00000ec7: DUP1
00000ec8: ISZERO
00000ec9: PUSH2 0x0eee
00000ecc: JUMPI
00000ecd: POP
00000ece: DUP1
00000ecf: MLOAD
00000ed0: ISZERO
00000ed1: DUP1
00000ed2: PUSH2 0x0eee
00000ed5: JUMPI
00000ed6: POP
00000ed7: DUP1
00000ed8: DUP1
00000ed9: PUSH1 0x20
00000edb: ADD
00000edc: SWAP1
00000edd: MLOAD
00000ede: PUSH1 0x20
00000ee0: DUP2
00000ee1: LT
00000ee2: ISZERO
00000ee3: PUSH2 0x0eeb
00000ee6: JUMPI
00000ee7: PUSH1 0x00
00000ee9: DUP1
00000eea: REVERT
00000eeb: JUMPDEST
00000eec: POP
00000eed: MLOAD
00000eee: JUMPDEST
00000eef: PUSH2 0x0f29
00000ef2: JUMPI
00000ef3: PUSH1 0x40
00000ef5: MLOAD
00000ef6: PUSH3 0x461bcd
00000efa: PUSH1 0xe5
00000efc: SHL
00000efd: DUP2
00000efe: MSTORE
00000eff: PUSH1 0x04
00000f01: ADD
00000f02: DUP1
00000f03: DUP1
00000f04: PUSH1 0x20
00000f06: ADD
00000f07: DUP3
00000f08: DUP2
00000f09: SUB
00000f0a: DUP3
00000f0b: MSTORE
00000f0c: PUSH1 0x24
00000f0e: DUP2
00000f0f: MSTORE
00000f10: PUSH1 0x20
00000f12: ADD
00000f13: DUP1
00000f14: PUSH2 0x1131
00000f17: PUSH1 0x24
00000f19: SWAP2
00000f1a: CODECOPY
00000f1b: PUSH1 0x40
00000f1d: ADD
00000f1e: SWAP2
00000f1f: POP
00000f20: POP
00000f21: PUSH1 0x40
00000f23: MLOAD
00000f24: DUP1
00000f25: SWAP2
00000f26: SUB
00000f27: SWAP1
00000f28: REVERT
00000f29: JUMPDEST
00000f2a: POP
00000f2b: POP
00000f2c: POP
00000f2d: POP
00000f2e: POP
00000f2f: POP
00000f30: JUMP
00000f31: JUMPDEST
00000f32: PUSH1 0x40
00000f34: DUP1
00000f35: MLOAD
00000f36: PUSH32 0x19457468657265756d205369676e6564204d6573736167653a0a333200000000
00000f57: PUSH1 0x20
00000f59: DUP1
00000f5a: DUP4
00000f5b: ADD
00000f5c: SWAP2
00000f5d: SWAP1
00000f5e: SWAP2
00000f5f: MSTORE
00000f60: PUSH1 0x3c
00000f62: DUP1
00000f63: DUP4
00000f64: ADD
00000f65: SWAP5
00000f66: SWAP1
00000f67: SWAP5
00000f68: MSTORE
00000f69: DUP3
00000f6a: MLOAD
00000f6b: DUP1
00000f6c: DUP4
00000f6d: SUB
00000f6e: SWAP1
00000f6f: SWAP5
00000f70: ADD
00000f71: DUP5
00000f72: MSTORE
00000f73: PUSH1 0x5c
00000f75: SWAP1
00000f76: SWAP2
00000f77: ADD
00000f78: SWAP1
00000f79: SWAP2
00000f7a: MSTORE
00000f7b: DUP2
00000f7c: MLOAD
00000f7d: SWAP2
00000f7e: ADD
00000f7f: KECCAK256
00000f80: SWAP1
00000f81: JUMP
00000f82: JUMPDEST
00000f83: PUSH1 0x60
00000f85: PUSH1 0x00
00000f87: DUP1
00000f88: PUSH1 0x00
00000f8a: DUP1
00000f8b: PUSH2 0x0f93
00000f8e: DUP7
00000f8f: PUSH2 0x108e
00000f92: JUMP
00000f93: JUMPDEST
00000f94: SWAP1
00000f95: POP
00000f96: DUP1
00000f97: PUSH8 0xffffffffffffffff
00000fa0: DUP2
00000fa1: GT
00000fa2: DUP1
00000fa3: ISZERO
00000fa4: PUSH2 0x0fac
00000fa7: JUMPI
00000fa8: PUSH1 0x00
00000faa: DUP1
00000fab: REVERT
00000fac: JUMPDEST
00000fad: POP
00000fae: PUSH1 0x40
00000fb0: MLOAD
00000fb1: SWAP1
00000fb2: DUP1
00000fb3: DUP3
00000fb4: MSTORE
00000fb5: DUP1
00000fb6: PUSH1 0x20
00000fb8: MUL
00000fb9: PUSH1 0x20
00000fbb: ADD
00000fbc: DUP3
00000fbd: ADD
00000fbe: PUSH1 0x40
00000fc0: MSTORE
00000fc1: DUP1
00000fc2: ISZERO
00000fc3: PUSH2 0x0fd6
00000fc6: JUMPI
00000fc7: DUP2
00000fc8: PUSH1 0x20
00000fca: ADD
00000fcb: PUSH1 0x20
00000fcd: DUP3
00000fce: MUL
00000fcf: DUP1
00000fd0: CALLDATASIZE
00000fd1: DUP4
00000fd2: CALLDATACOPY
00000fd3: ADD
00000fd4: SWAP1
00000fd5: POP
00000fd6: JUMPDEST
00000fd7: POP
00000fd8: SWAP5
00000fd9: POP
00000fda: PUSH1 0x00
00000fdc: JUMPDEST
00000fdd: DUP2
00000fde: DUP2
00000fdf: LT
00000fe0: ISZERO
00000fe1: PUSH2 0x1083
00000fe4: JUMPI
00000fe5: PUSH2 0x0fee
00000fe8: DUP8
00000fe9: DUP3
00000fea: PUSH2 0x10bb
00000fed: JUMP
00000fee: JUMPDEST
00000fef: PUSH1 0x40
00000ff1: DUP1
00000ff2: MLOAD
00000ff3: PUSH1 0x00
00000ff5: DUP2
00000ff6: MSTORE
00000ff7: PUSH1 0x20
00000ff9: DUP1
00000ffa: DUP3
00000ffb: ADD
00000ffc: DUP1
00000ffd: DUP5
00000ffe: MSTORE
00000fff: DUP15
00001000: SWAP1
00001001: MSTORE
00001002: PUSH1 0xff
00001004: DUP7
00001005: AND
00001006: DUP3
00001007: DUP5
00001008: ADD
00001009: MSTORE
0000100a: PUSH1 0x60
0000100c: DUP3
0000100d: ADD
0000100e: DUP6
0000100f: SWAP1
00001010: MSTORE
00001011: PUSH1 0x80
00001013: DUP3
00001014: ADD
00001015: DUP5
00001016: SWAP1
00001017: MSTORE
00001018: SWAP2
00001019: MLOAD
0000101a: SWAP5
0000101b: SWAP10
0000101c: POP
0000101d: SWAP3
0000101e: SWAP8
0000101f: POP
00001020: SWAP1
00001021: SWAP6
00001022: POP
00001023: PUSH1 0x01
00001025: SWAP3
00001026: PUSH1 0xa0
00001028: DUP1
00001029: DUP5
0000102a: ADD
0000102b: SWAP4
0000102c: PUSH1 0x1f
0000102e: NOT
0000102f: DUP4
00001030: ADD
00001031: SWAP3
00001032: SWAP1
00001033: DUP2
00001034: SWAP1
00001035: SUB
00001036: SWAP1
00001037: SWAP2
00001038: ADD
00001039: SWAP1
0000103a: DUP6
0000103b: GAS
0000103c: STATICCALL
0000103d: ISZERO
0000103e: DUP1
0000103f: ISZERO
00001040: PUSH2 0x104d
00001043: JUMPI
00001044: RETURNDATASIZE
00001045: PUSH1 0x00
00001047: DUP1
00001048: RETURNDATACOPY
00001049: RETURNDATASIZE
0000104a: PUSH1 0x00
0000104c: REVERT
0000104d: JUMPDEST
0000104e: POP
0000104f: POP
00001050: POP
00001051: PUSH1 0x20
00001053: PUSH1 0x40
00001055: MLOAD
00001056: SUB
00001057: MLOAD
00001058: DUP7
00001059: DUP3
0000105a: DUP2
0000105b: MLOAD
0000105c: DUP2
0000105d: LT
0000105e: PUSH2 0x1063
00001061: JUMPI
00001062: INVALID
00001063: JUMPDEST
00001064: PUSH1 0x01
00001066: PUSH1 0x01
00001068: PUSH1 0xa0
0000106a: SHL
0000106b: SUB
0000106c: SWAP1
0000106d: SWAP3
0000106e: AND
0000106f: PUSH1 0x20
00001071: SWAP3
00001072: DUP4
00001073: MUL
00001074: SWAP2
00001075: SWAP1
00001076: SWAP2
00001077: ADD
00001078: SWAP1
00001079: SWAP2
0000107a: ADD
0000107b: MSTORE
0000107c: PUSH1 0x01
0000107e: ADD
0000107f: PUSH2 0x0fdc
00001082: JUMP
00001083: JUMPDEST
00001084: POP
00001085: POP
00001086: POP
00001087: POP
00001088: POP
00001089: SWAP3
0000108a: SWAP2
0000108b: POP
0000108c: POP
0000108d: JUMP
0000108e: JUMPDEST
0000108f: PUSH1 0x00
00001091: PUSH1 0x41
00001093: DUP3
00001094: MLOAD
00001095: DUP2
00001096: PUSH2 0x109b
00001099: JUMPI
0000109a: INVALID
0000109b: JUMPDEST
0000109c: MOD
0000109d: ISZERO
0000109e: PUSH2 0x10a8
000010a1: JUMPI
000010a2: PUSH1 0x00
000010a4: PUSH2 0x10b5
000010a7: JUMP
000010a8: JUMPDEST
000010a9: PUSH1 0x41
000010ab: DUP3
000010ac: MLOAD
000010ad: DUP2
000010ae: PUSH2 0x10b3
000010b1: JUMPI
000010b2: INVALID
000010b3: JUMPDEST
000010b4: DIV
000010b5: JUMPDEST
000010b6: SWAP3
000010b7: SWAP2
000010b8: POP
000010b9: POP
000010ba: JUMP
000010bb: JUMPDEST
000010bc: PUSH1 0x41
000010be: DUP1
000010bf: DUP3
000010c0: MUL
000010c1: DUP4
000010c2: DUP2
000010c3: ADD
000010c4: PUSH1 0x20
000010c6: DUP2
000010c7: ADD
000010c8: MLOAD
000010c9: PUSH1 0x40
000010cb: DUP3
000010cc: ADD
000010cd: MLOAD
000010ce: SWAP2
000010cf: SWAP1
000010d0: SWAP4
000010d1: ADD
000010d2: MLOAD
000010d3: PUSH1 0xff
000010d5: AND
000010d6: SWAP3
000010d7: SWAP2
000010d8: PUSH1 0x1b
000010da: DUP5
000010db: LT
000010dc: ISZERO
000010dd: PUSH2 0x10e7
000010e0: JUMPI
000010e1: PUSH1 0x1b
000010e3: DUP5
000010e4: ADD
000010e5: SWAP4
000010e6: POP
000010e7: JUMPDEST
000010e8: DUP4
000010e9: PUSH1 0xff
000010eb: AND
000010ec: PUSH1 0x1b
000010ee: EQ
000010ef: DUP1
000010f0: PUSH2 0x10fc
000010f3: JUMPI
000010f4: POP
000010f5: DUP4
000010f6: PUSH1 0xff
000010f8: AND
000010f9: PUSH1 0x1c
000010fb: EQ
000010fc: JUMPDEST
000010fd: PUSH2 0x1105
00001100: JUMPI
00001101: PUSH1 0x00
00001103: DUP1
00001104: REVERT
00001105: JUMPDEST
00001106: POP
00001107: SWAP3
00001108: POP
00001109: SWAP3
0000110a: POP
0000110b: SWAP3
0000110c: JUMP
0000110d: INVALID
0000110e: SLOAD
0000110f: PUSH19 0x616e7366657248656c7065723a204554485f54
00001123: MSTORE
00001124: COINBASE
00001125: UNKNOWN(0x4E)
00001126: MSTORE8
00001127: CHAINID
00001128: GASLIMIT
00001129: MSTORE
0000112a: PUSH0
0000112b: CHAINID
0000112c: COINBASE
0000112d: BLOBHASH
0000112e: UNKNOWN(0x4C)
0000112f: GASLIMIT
00001130: DIFFICULTY
00001131: SLOAD
00001132: PUSH19 0x616e7366657248656c7065723a205452414e53
00001146: CHAINID
00001147: GASLIMIT
00001148: MSTORE
00001149: PUSH0
0000114a: CHAINID
0000114b: MSTORE
0000114c: UNKNOWN(0x4F)
0000114d: UNKNOWN(0x4D)
0000114e: PUSH0
0000114f: CHAINID
00001150: COINBASE
00001151: BLOBHASH
00001152: UNKNOWN(0x4C)
00001153: GASLIMIT
00001154: DIFFICULTY
00001155: LOG2
00001156: PUSH5 0x6970667358
0000115c: UNKNOWN(0x22)
0000115d: SLT
0000115e: KECCAK256
0000115f: UNKNOWN(0xC5)
00001160: COINBASE
00001161: DUP1
00001162: UNKNOWN(0xCD)
00001163: UNKNOWN(0xEA)
00001164: UNKNOWN(0xFC)
00001165: UNKNOWN(0xDF)
00001166: LOG3
00001167: UNKNOWN(0x2B)
00001168: UNKNOWN(0x22)
00001169: UNKNOWN(0xA7)
0000116a: UNKNOWN(0xF7)
0000116b: BYTE
0000116c: UNKNOWN(0xED)
0000116d: PUSH21 0xab8116d3c9187849dce7d564c135f83e4764736f6c
00001183: PUSH4 0x43000606
00001188: STOP
00001189: CALLER

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: 0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344
call_targets: 0xc8c1b41713761281a520b7ad81544197bc85a4ce
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc8c1b41713761281a520b7ad81544197bc85a4ce"
    ],
    "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": "0xd07d6716",
            "selector": "0xd07d6716",
            "calldata_variants": [
                "0xd07d6716",
                "0xd07d67160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4d5d32a",
            "selector": "0xd4d5d32a",
            "calldata_variants": [
                "0xd4d5d32a",
                "0xd4d5d32a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe3f7764e",
            "selector": "0xe3f7764e",
            "calldata_variants": [
                "0xe3f7764e",
                "0xe3f7764e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9aebda0",
            "selector": "0xf9aebda0",
            "calldata_variants": [
                "0xf9aebda0",
                "0xf9aebda00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xabc05a9d",
            "selector": "0xabc05a9d",
            "calldata_variants": [
                "0xabc05a9d",
                "0xabc05a9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3505005",
            "selector": "0xc3505005",
            "calldata_variants": [
                "0xc3505005",
                "0xc35050050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8b5bdada",
            "selector": "0x8b5bdada",
            "calldata_variants": [
                "0x8b5bdada",
                "0x8b5bdada0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1499,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2637,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2959,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "call_count": 5,
    "guards_detected": [],
    "untrusted_call_count": 5
}
high other detector ETH value transfer possible 55 no no
view
trace_id: 0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344
call_targets: 0xc8c1b41713761281a520b7ad81544197bc85a4ce
target_varies: no
classification: constant_target
validation_json
{
    "sink": "CALL",
    "errors": 0,
    "status": "sink_reached",
    "attempts": 1,
    "trace_id": "0x33848e748aed0ae57ed8ce805b034942cf7ec3671627fec2e6f01a5b136c3344",
    "confirmed": false,
    "trace_mode": "callTracer",
    "call_targets": [
        "0xc8c1b41713761281a520b7ad81544197bc85a4ce"
    ],
    "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": "0xd07d6716",
            "selector": "0xd07d6716",
            "calldata_variants": [
                "0xd07d6716",
                "0xd07d67160000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xd4d5d32a",
            "selector": "0xd4d5d32a",
            "calldata_variants": [
                "0xd4d5d32a",
                "0xd4d5d32a0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xe3f7764e",
            "selector": "0xe3f7764e",
            "calldata_variants": [
                "0xe3f7764e",
                "0xe3f7764e0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xf9aebda0",
            "selector": "0xf9aebda0",
            "calldata_variants": [
                "0xf9aebda0",
                "0xf9aebda00000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xabc05a9d",
            "selector": "0xabc05a9d",
            "calldata_variants": [
                "0xabc05a9d",
                "0xabc05a9d0000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xad5c4648",
            "selector": "0xad5c4648",
            "calldata_variants": [
                "0xad5c4648",
                "0xad5c46480000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0xc3505005",
            "selector": "0xc3505005",
            "calldata_variants": [
                "0xc3505005",
                "0xc35050050000000000000000000000000000000000000000000000000000000000000000"
            ]
        },
        {
            "calldata": "0x8b5bdada",
            "selector": "0x8b5bdada",
            "calldata_variants": [
                "0x8b5bdada",
                "0x8b5bdada0000000000000000000000000000000000000000000000000000000000000000"
            ]
        }
    ]
}
evidence_json
{
    "examples": [
        {
            "pc": 1499,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2637,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        },
        {
            "pc": 2959,
            "opcode": "CALL",
            "returndata_checked": null,
            "value_expression_category": "computed",
            "target_expression_category": "computed"
        }
    ],
    "eth_value_calls": 5,
    "guards_detected": []
}
medium auth codex Withdrawal signatures lack domain separation, enabling cross-contract/chain replay 75 no
view
evidence_json
{
    "evidence": "The signed message is keccak256(abi.encodePacked(_paybackId, _token, msg.sender, _amount)) and is verified without any contract/chain domain separation.",
    "locations": [
        "contracts/Contract.sol:289",
        "contracts/Contract.sol:303",
        "contracts/Contract.sol:306"
    ],
    "recommendation": "Include address(this) and chain ID in the signed message (or use EIP-712 typed data with a domain separator) so signatures are bound to a specific contract and chain.",
    "exploit_scenario": "If the same signer key is used for multiple ETHBurgerTransit deployments or chains, a user can reuse a valid signature from one deployment to withdraw from another because the signed message omits address(this) and chain ID. This can double-spend the same paybackId on another instance that has liquidity."
}
medium other codex Fee-on-transfer tokens can be over-credited during transit 75 no
view
evidence_json
{
    "evidence": "transitForBSC emits _amount directly after safeTransferFrom without checking actual received amount.",
    "locations": [
        "contracts/Contract.sol:270",
        "contracts/Contract.sol:272",
        "contracts/Contract.sol:273"
    ],
    "recommendation": "Measure the token balance before/after transfer and emit/use the actual received amount, or restrict supported tokens to non-fee-on-transfer assets.",
    "exploit_scenario": "An attacker deposits a fee-on-transfer/deflationary token via transitForBSC. The contract receives less than _amount, but the Transit event records the full _amount. If the off-chain bridge credits based on the event, the attacker can withdraw more on BSC than actually locked, draining liquidity."
}
low auth codex Signer can be set to zero address, weakening signature validation 65 no
view
evidence_json
{
    "evidence": "signWallet is set without nonzero checks and _verify only compares recovered address to signWallet.",
    "locations": [
        "contracts/Contract.sol:236",
        "contracts/Contract.sol:238",
        "contracts/Contract.sol:247",
        "contracts/Contract.sol:249",
        "contracts/Contract.sol:303",
        "contracts/Contract.sol:306"
    ],
    "recommendation": "Require non-zero signer in the constructor/changeSigner and reject recovered address(0) in _verify.",
    "exploit_scenario": "If the owner deploys with signWallet=address(0) or later sets it to zero, _verify accepts any signature that recovers to address(0) (including malformed signatures), allowing arbitrary withdrawals without valid authorization."
}