{
  "date": "2026-10-27",
  "author_scope": "a: reading_space, voice_input, text_selection, related location_bar candidate",
  "report_chapter_mapping": {
    "AI业务": [
      "voice_input",
      "text_selection"
    ],
    "原生业务": [
      "reading_space"
    ]
  },
  "target": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\Application\\1.18.21.0\\Tabbit.dll",
  "sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
  "method": "REA CLI execute-rizin-command -> Cutter Rizin/rz-ghidra; sequential helper batch concurrency=1; independent PE section ASCII/UTF16 decode corroborates datarefs.",
  "counts": {
    "rea_records": 35,
    "focused_function_records": 34,
    "unique_function_addresses": 34,
    "disassembly_only_records": 1,
    "failed_or_incomplete": 0,
    "empty_pseudocode": 0,
    "tail_jump_only": 0,
    "duplicate_function_addresses": 0,
    "meaning": "仅本轮抽样定向记录；不是业务函数总数或全覆盖百分比。"
  },
  "findings": [
    {
      "id": "a-voice-asr",
      "category": "AI业务",
      "family": "voice_input",
      "title": "云端实时 ASR 客户端与 Windows 平台启动",
      "functions": [
        {
          "label": "a-voice-speech-init",
          "address": "0x183676c50",
          "evidence_id": "ev_e85aaf88168e74de5f1d6e1af99d93996fbd2969956cd2d5dddc6f0ca9767ef0"
        },
        {
          "label": "a-voice-asr-parser",
          "address": "0x18367b8c0",
          "evidence_id": "ev_fb7380290e592c6d5fbc38340420f3691ce34aa18b06348b808e88a9dbec3f7c"
        },
        {
          "label": "a-voice-speech-result",
          "address": "0x18367a260",
          "evidence_id": "ev_3101d40c9e2e69feeedbe7cf78d44835a0a8fc23f8a20d4e4cae46f73d684ef0"
        },
        {
          "label": "a-voice-capture-device",
          "address": "0x18565fc70",
          "evidence_id": "ev_5bf0db5c2aa0e061dafdd813022428b4cda739a1c8dd90378f8a5333abb4ec68"
        }
      ],
      "observed_technical_path": [
        "0x183676c50 构造 /api/v0/asr/realtime_recognize?voice_format=pcm&engine_type=，按语言选择 16k_en/16k_zh 并追加 language。",
        "构造 start JSON：type=start、sample_rate=16000、channels=1、language、hotword_list；序列化后交给实时客户端发送函数。",
        "0x18367b8c0 处理 WebSocket 数据帧组装及 JSON type/text/message；0x18367a260 是连接完成回调。",
        "文件路径 speech_recognition_engine_win.cc 不能证明使用 Windows SAPI/WinRT 本地 ASR；本次恢复的识别路径显式连接远端服务。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增业务识别模块，借用浏览器 profile、网络服务/数据管道及媒体对象接入",
        "certainty": "高（远端请求与协议）；中（底层媒体接入）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "麦克风设备创建及 PCM 转换的最终底层 API/媒体函数名未恢复。",
        "真实服务 origin、ASR 后端供应商、认证握手内容及在线效果未知。",
        "没有完成 Chromium Web Speech API 实现的比较，不能排除其他共存路径。"
      ]
    },
    {
      "id": "a-voice-refine",
      "category": "AI业务",
      "family": "voice_input",
      "title": "独立 LLM 文本改写阶段",
      "functions": [
        {
          "label": "a-voice-refiner",
          "address": "0x18366d3e0",
          "evidence_id": "ev_da080f15f715b3453ba298bc6c19d0481149573c399d751d26524af6aad088eb"
        },
        {
          "label": "a-voice-refiner-endpoint",
          "address": "0x18366c5a0",
          "evidence_id": "ev_8e5dc5e7181bc3607cdf2a2bd04703af4f2407810a038ec22946779716402a54"
        },
        {
          "label": "a-voice-controller-result",
          "address": "0x183673330",
          "evidence_id": "ev_8370cea805119f685ea13e5a9f097c06997ed3a4256b8ea16e2fcd9e7d69f76e"
        },
        {
          "label": "a-voice-controller-finish",
          "address": "0x183673ae0",
          "evidence_id": "ev_77dde321d16dbbff6bf5f3abe5107d8c83d8ed0e27cdfd04426f5608ccf877f2"
        }
      ],
      "observed_technical_path": [
        "0x18366c5a0 从配置构造 /api/v0/asr/rewrite URL；0x18366d3e0 配置 application/json 和 Bearer Authorization。",
        "发送 text、mode=chat_input、language；空语言回退 zh-CN。",
        "OnRefined（0x183673330）选择非空成功改写结果，否则保留原文字；热键路径随后调用 0x183673ae0 收尾。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增业务模块，通过网络请求和控制器回调接入，模型改写在 ASR 后独立处理",
        "certainty": "高（请求与回退）；中（全链路回调归属）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "rewritten_text 只在邻近字符串中出现；响应解析函数本轮未反编译，不能把字段消费当作已证明。",
        "具体模型名称、提示词、后端 provider 未建立。"
      ]
    },
    {
      "id": "a-voice-native-seams",
      "category": "AI业务",
      "family": "voice_input",
      "title": "语音业务的浏览器热键、目标捕获与文字提交",
      "functions": [
        {
          "label": "a-voice-hotkey-install",
          "address": "0x1836759d0",
          "evidence_id": "ev_a3b27f8c034940a083372bc8a4e36710aec9a190e56cddd1bb08d8ed2714f416"
        },
        {
          "label": "a-voice-hotkey",
          "address": "0x183675cf0",
          "evidence_id": "ev_a6161a19a5a380c7c54009cc3a908cc2264b96c737aba74bd5d527804d05e49a"
        },
        {
          "label": "a-voice-controller-toggle",
          "address": "0x18366fbc0",
          "evidence_id": "ev_bf26f2d79840304a9605dd759e6b9117bba1e69f7769b145511f7134eac2b009"
        },
        {
          "label": "a-voice-injector",
          "address": "0x183674860",
          "evidence_id": "ev_6ba30e34597b59368c3f672d9e09468c9932831895067d2b916ad423ec9fe1ad"
        },
        {
          "label": "a-voice-inject-commit",
          "address": "0x183675390",
          "evidence_id": "ev_9d352001b0503b3dfbc8397bf4810944e628f4faad9b1123f8ae6b92580ec31f"
        },
        {
          "label": "a-voice-controller-finish",
          "address": "0x183673ae0",
          "evidence_id": "ev_77dde321d16dbbff6bf5f3abe5107d8c83d8ed0e27cdfd04426f5608ccf877f2"
        },
        {
          "label": "a-voice-frame-id-resolver",
          "address": "0x184770e70",
          "evidence_id": "ev_915f41c11974d8bf43ad5bb82029bd810385c6647d56f8ea3781c700fb929372"
        },
        {
          "label": "a-voice-controller-start",
          "address": "0x183670ec0",
          "evidence_id": "ev_12b142a0878cce9354272e4cb6c6fc100e3305041b0f03f440b6840f2879ebef"
        },
        {
          "label": "a-voice-controller-state",
          "address": "0x1836718d0",
          "evidence_id": "ev_3e72f38a959ce82cc62b14d9eea115226de383e6f4ffaaec56330eb2f23b682c"
        }
      ],
      "observed_technical_path": [
        "SetWindowsHookExW(WH_KEYBOARD_LL=0x0d, callback=0x183675cf0)；排除空/隐身 profile 和重复安装。",
        "hook 检查前台窗口属于当前进程，处理左右 Alt，500000 微秒内第二次按键启动听写；活动听写再按 Alt 停止。",
        "0x18366fbc0 查询 tabbit.voice_input.enabled 并调用 0x183674860 捕获网页目标。捕获器验证 browser、WebContents、可编辑元素、存活 frame、网页 scheme 和 widget，保存 GlobalRenderFrameHostId。",
        "0x183670ec0 处理识别结果、流式替换和气泡队列；原种子标签 start 并非真实角色。",
        "收尾函数 0x183673ae0 调用 0x183675390；提交函数重新解析 frame ID，取 widget，转 UTF16 后调用 widget 虚表 +0x40，随后清理目标。汇编 0x183675768..0x183675775 恢复了实际虚表取址，不能把 CFG 桩 0x185f59da0 当作提交实现。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增浏览器 controller + Windows hook + 输入适配层，在既有 WebContents/RenderFrameHost/widget 生命周期接口插入业务",
        "certainty": "高（hook/调用）；中（虚函数名称及最终 renderer 入口）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "widget +0x40 的原始函数名和最终 IPC/renderer 处理未认证；不能断言 ImeCommitText、SendInput 或 DOM JavaScript 注入。",
        "只核对本轮可见静态调用及回调绑定，不代表所有入口已恢复。"
      ]
    },
    {
      "id": "a-selection",
      "category": "AI业务",
      "family": "text_selection",
      "title": "选择文本的浏览器调度与新增 Mojo renderer 接口",
      "functions": [
        {
          "label": "a-selection-controller",
          "address": "0x183597050",
          "evidence_id": "ev_d8ed5f062bc4c55ba0da0822c86102849d0696b50c00082e2c170a181abca7c5"
        },
        {
          "label": "a-selection-update",
          "address": "0x183598130",
          "evidence_id": "ev_cdb090f95d3173735fe6f8cbdf9d3cddccc8ed210531fc287ad5eda5516017cc"
        },
        {
          "label": "a-selection-request",
          "address": "0x183598700",
          "evidence_id": "ev_922b5b054d0630e1071f14b92e881255ebc4daeae4c44a41edfb25f23f6e0e8d"
        },
        {
          "label": "a-selection-mojo-binding",
          "address": "0x183599ff0",
          "evidence_id": "ev_1eca38de0ac7d025cba590d11f5db8d594d3adcd1d42ec027be3121e69d6d8a2"
        },
        {
          "label": "a-selection-result-callback",
          "address": "0x183598a30",
          "evidence_id": "ev_f435ede65b39c6a1e99a9e77d57d0a6aba605f82318d778da113021c0321ee09"
        }
      ],
      "observed_technical_path": [
        "0x183597050 在 keyboard selection 分支查询 ExtensionRegistry 和扩展 ID iobiajbbjgoiehijaledajjiainhmafb，并有 /newtab 判断。此 ID 在函数中出现，不等于已证明是最终接收方。",
        "RequestPendingSelection（0x183598130）调度选择请求并进入 0x183598700；后者建立新 remote、安装 disconnect/代次回调并调用 0x18340d080。",
        "0x183599ff0 实际绑定 tab.mojom.TabTextSelectionAgent，通过 interface provider 对接 frame 的 remote；这是业务新增协议接缝的具体证据。",
        "0x183598a30 的 arg2 与 +0x178 generation 相等才清理 remote/状态并递增 generation；它是清理回调，不是已恢复的 selectedText payload 回调。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增浏览器选择控制器及业务 Mojo 接口，插入 frame/renderer 通信接缝；归 AI 章作为上下文输入支撑",
        "certainty": "高（新增接口与调度）；中（renderer 实际采集/AI 消费端）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "本轮未恢复 renderer 侧 TabTextSelectionAgent 的实现及 binding 注册函数；是否使用 Blink Selection、DOM Range、AX 获取文本未知。",
        "未追到 AI 对话最终消费；本章归类来自报告业务分类，不等于本函数调用模型。"
      ]
    },
    {
      "id": "a-reading-store",
      "category": "原生业务",
      "family": "reading_space",
      "title": "账户本地存储与 Chromium 任务/存储形状适配",
      "functions": [
        {
          "label": "a-reading-account-store",
          "address": "0x18336d6a0",
          "evidence_id": "ev_2dd29f5ed28d2bc9ec785f47d8a1547dfecb8382497c9982775c06e575a86c17"
        },
        {
          "label": "a-reading-store-backend",
          "address": "0x18336d9c0",
          "evidence_id": "ev_188ec411ada4a30deff3aab9a30d76075ae6b00ca843793ef5ffe3530952faf2"
        },
        {
          "label": "a-reading-store-adapter",
          "address": "0x18134a090",
          "evidence_id": "ev_aaa681c12bb6596b80a9f5617c31c10eb87eba8f2e09b90b16464517d525764d"
        },
        {
          "label": "a-reading-sync-init",
          "address": "0x183382320",
          "evidence_id": "ev_74ee9037bdef843155e15ae4272cd3ef29404316b338bb04d8255fbbf713580e"
        }
      ],
      "observed_technical_path": [
        "CreateStore（0x18336d6a0）只接受类型数值 0x3f，分后台任务与 reply callback；成功回调 0x18336d9c0 构造 0x18134a090 所代表的存储适配对象。",
        "对象保留 type/storage 字段、后台对象及序列 runner；引用 base/task/sequenced_task_runner.h。这与固定上游 DataTypeStoreImpl 的后台序列/前台回复结构相容，但不作原始符号认证。",
        "0x183382320 明确检查加密上下文，含 local initialization blocked: encryption unavailable 分支；这是可用性门控，未证明具体加密算法。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增账户存储包装与初始化门控，复用 Chromium 任务/存储接口形状的接入",
        "certainty": "高（包装/门控）；中（具体 sync store 类型）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "0x3f 未认证为原始 DataType 枚举；不能仅用数值认定扩展了 Chromium enum。",
        "数据库文件名、后端 LevelDB/SQLite、每记录加密算法未认证。"
      ]
    },
    {
      "id": "a-reading-sync",
      "category": "原生业务",
      "family": "reading_space",
      "title": "独立 Page catalog 与同步 bridge",
      "functions": [
        {
          "label": "a-reading-service",
          "address": "0x18337c280",
          "evidence_id": "ev_eb4b24a40e08a177ad8a6f4553238c877aa6aa681a3c1d1e7fdfd43963031945"
        },
        {
          "label": "a-reading-sync-read-metadata",
          "address": "0x183384070",
          "evidence_id": "ev_b8db6e098ab07fa7854a8714982ad98b47a8015ef5b3ebdcfdd56fac3ccdd339"
        },
        {
          "label": "a-reading-sync-local-commit",
          "address": "0x183392e00",
          "evidence_id": "ev_6895279c4edc0fdfcc570f1db7ebc6e6ce92d2862049113b093a40f0ca5cda13"
        },
        {
          "label": "a-reading-sync-apply",
          "address": "0x183398220",
          "evidence_id": "ev_c53fc585ebf99133aa734069fb709ab95d924965d7cca4585cb4c0bd0b6ac4c3"
        }
      ],
      "observed_technical_path": [
        "service 启动转发包含 session 序号和状态防重入；完整 delegate 虚调用名称未恢复。",
        "0x183384070 读完 sync metadata 后生成 control:page-catalog-v1:%02x 的 256 桶键及 control:page-local-state-v1，加载本地业务控制记录。",
        "0x183392e00 在 local mutation commit 完成后更新 catalog/generation、pending Page 状态；page: 是业务实体键前缀。",
        "0x183398220 处理远端 merge 所需的本地 Page 读取/核验，异常走 StoreError，成功构造合并状态并转入后续提交。",
        "tabReadingSpace schema 同时声明 Document、Note、TextAnchor、generation、expectedGeneration、contextToken/sourceToken、pending/synced/local_only_* 和 onAuthContextChanged/onSyncStatusChanged。schema 证明契约，不自动证明每个方法已实现。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增 Page 业务数据模型和 sync bridge；通过 Chromium 同步 controller/store/metadata 风格接口接入",
        "certainty": "高（自有 catalog/merge）；中（准确上游基类/注册接缝）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "没有逐函数 diff 原 Chromium reading-list 实现，不能声称“替换 Chromium 阅读列表”。",
        "同步 type 注册、EntitySpecifics 私有字段、协议服务器、冲突规则及配额值未恢复。",
        "邻近一致性修复日志是下一步线索，本轮未把它当成已经反编译的完整修复算法。"
      ]
    },
    {
      "id": "a-reading-ui",
      "category": "原生业务",
      "family": "reading_space",
      "title": "导航观察、page action 与库阅读器 UI delegate",
      "functions": [
        {
          "label": "a-reading-bubble",
          "address": "0x183281410",
          "evidence_id": "ev_4cb77bfbb684cc7c7a8b8141ca1766bdac210f7e651c76f336650eb7d46e9805"
        },
        {
          "label": "a-reading-page-action",
          "address": "0x183283a90",
          "evidence_id": "ev_240faba52e44a605ae0af381a0f17ef87fddc5da32994bab41dc016d787f07d5"
        },
        {
          "label": "a-reading-navigation",
          "address": "0x18336e860",
          "evidence_id": "ev_1b592964cec52b2d61b0e9777afa6f11841622ee056ec32ba1fed6fc10991079"
        },
        {
          "label": "a-reading-ui-delegate",
          "address": "0x183285440",
          "evidence_id": "ev_d1b7b2d0eca2777cd56463e23751000963f2054f7c1d86768bf3b51f9f2831df"
        }
      ],
      "observed_technical_path": [
        "导航 observer 针对目标 navigation 完成状态决定是否异步回调；page-action 的 DidFinishNavigation 路径也投递更新。",
        "库文档打开逻辑尝试 reader，就绪检查失败后记录 Reader was not ready after library document navigation 并投递 OpenLibraryReaderForTarget；目标失效气泡回调单独处理。",
        "tabReadingSpace.Extractor 契约列出 chromium-read-anything/custom；仅是契约及适配意图，本轮没有建立 Chromium Read Anything/DOM distillation 的实际调用。"
      ],
      "insertion_replacement_classification": {
        "classification": "新增 UI coordinator/delegate 和导航 observer，在浏览器页面动作与阅读表面生命周期插入接缝",
        "certainty": "高（observer/异步 UI）；中（最终 Read Anything 入口）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "阅读按钮 View 构造、side panel 注册、真实正文抽取器/渲染入口未追到。",
        "DidFinishNavigation 中几个虚调用不能未经核对命名为某个具体 NavigationHandle 方法。"
      ]
    },
    {
      "id": "a-reading-location-candidate",
      "category": "原生业务",
      "family": "reading_space",
      "title": "location_bar 邻近候选的排除性核对",
      "functions": [
        {
          "label": "a-reading-location-icon",
          "address": "0x1832869d0",
          "evidence_id": "ev_ef93bfe86574d9f5ab63ce98b595a060c762f06b37a580f77236dda7bb127890"
        }
      ],
      "observed_technical_path": [
        "0x1832869d0 实际是搜索引擎 favicon 映射，引用 Google/Bing/Baidu 等 IDR_TAB_SEARCH_ENGINE_* 和缺图标日志。",
        "不得因为路径邻近 reading_space 字符串就把它当成阅读入口；本轮阅读相关 location_bar view 接缝仍未解决。"
      ],
      "insertion_replacement_classification": {
        "classification": "可观察为新增搜索引擎图标资源逻辑；对“阅读地址栏接入”分类保持未解决",
        "certainty": "高（该函数职责）；未知（阅读按钮所在 view）",
        "replacement": "未建立对 Chromium 原实现的替换证明",
        "limits": [
          "静态反编译不等于观察到执行。",
          "接入分类为分析推断；没有同函数的上游二进制差分，不能据路径认定原实现被替换。",
          "没有启动 Tabbit、读取个人 profile 或执行服务请求。"
        ]
      },
      "unresolved_seams": [
        "精确 reading-space location_bar View/注册 caller 未定位，本候选不能用于证明它。"
      ]
    }
  ],
  "functions": [
    {
      "label": "a-reading-bubble",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183281410",
      "original_symbol": null,
      "role": "OnTargetInvalidated 的异步清理通知",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "持有目标弱引用，构造回调并通过任务 runner 投递；不能当作气泡创建主函数。",
      "evidence_id": "ev_4cb77bfbb684cc7c7a8b8141ca1766bdac210f7e651c76f336650eb7d46e9805",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-bubble.json",
      "rea_file_sha256": "c6fdcb867d94b3f25ec64cfd18ec5264bfb1b26a177cdefb7ad4cc95e9a6e3fd",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-bubble.txt",
      "function_size": 314,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183281410",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-page-action",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183283a90",
      "original_symbol": null,
      "role": "导航完成后的 page action 异步更新",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "引用 DidFinishNavigation 和 reading page-action 源路径，绑定更新回调。",
      "evidence_id": "ev_240faba52e44a605ae0af381a0f17ef87fddc5da32994bab41dc016d787f07d5",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-page-action.json",
      "rea_file_sha256": "9976a1bbc8f1a7e04163883bc0fef284c7d074ecf8606fe5b5f0975af2a9e6ce",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-page-action.txt",
      "function_size": 333,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: Variable defined which should be unmapped: var_50h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_78h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_91h"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183283a90",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-ui-delegate",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183285440",
      "original_symbol": null,
      "role": "库文档导航后尝试打开阅读器",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "先检查目标与 reader 可用性；不就绪时记录日志并投递 OpenLibraryReaderForTarget 重试回调。",
      "evidence_id": "ev_d1b7b2d0eca2777cd56463e23751000963f2054f7c1d86768bf3b51f9f2831df",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-ui-delegate.json",
      "rea_file_sha256": "60caf7303b6ffdaefb6a191ec740acaefdaa4c4c5a7c35352c93b0ecf2096386",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-ui-delegate.txt",
      "function_size": 982,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183285440",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-account-store",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x18336d6a0",
      "original_symbol": null,
      "role": "账户存储 CreateStore 入口",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "只接受数值类型 0x3f；构造后台任务和回复回调，调用 0x185549590。0x3f 的原始枚举名称未恢复。",
      "evidence_id": "ev_2dd29f5ed28d2bc9ec785f47d8a1547dfecb8382497c9982775c06e575a86c17",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-account-store.json",
      "rea_file_sha256": "327cf75d4fbf581d557b6640c9a43af24d991f9829936fee7a105bf4cc9c9963",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-account-store.txt",
      "function_size": 573,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18336d6a0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-navigation",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x18336e860",
      "original_symbol": null,
      "role": "阅读空间 DidFinishNavigation observer",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "比对导航目标和数个导航状态，经条件判定后解除观察并投递完成回调；虚调用名称未逐一恢复。",
      "evidence_id": "ev_1b592964cec52b2d61b0e9777afa6f11841622ee056ec32ba1fed6fc10991079",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-navigation.json",
      "rea_file_sha256": "4e8487fe5e0164c66effd4f6115a0608893f67dd65cd86e74a140bfa90d64f33",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-navigation.txt",
      "function_size": 476,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18336e860",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-service",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x18337c280",
      "original_symbol": null,
      "role": "同步控制器启动转发",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "比较会话/上下文状态，防止重复启动，递增 session 序号，绑定完成回调并转发；含 Sync controller start forwarded 日志。",
      "evidence_id": "ev_eb4b24a40e08a177ad8a6f4553238c877aa6aa681a3c1d1e7fdfd43963031945",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-service.json",
      "rea_file_sha256": "980b4494b971958a8639c704fbae0a9f1ba612868b9b272b628e996e878ae5c8",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-service.txt",
      "function_size": 1266,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_199h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1a0h"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18337c280",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-sync-init",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183382320",
      "original_symbol": null,
      "role": "加密状态与本地初始化门控",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "替换持有的加密上下文，检查键/状态映射，写入 0x163 处标志；不可用时发出 encryption unavailable 日志，继续进入状态化初始化检查。",
      "evidence_id": "ev_74ee9037bdef843155e15ae4272cd3ef29404316b338bb04d8255fbbf713580e",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-sync-init.json",
      "rea_file_sha256": "6077abb48725f4c305a16339bb2af1d973386a17adf1a81a8000c1e59500aa09",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-sync-init.txt",
      "function_size": 511,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183382320",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-sync-apply",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183398220",
      "original_symbol": null,
      "role": "远端 Page 合并的本地读取与核验回调",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "核对本地读取错误、缺失项和 Page 内容；以 page: 键构建合并状态，错误分支走 StoreError，成功后交给后续提交函数。",
      "evidence_id": "ev_c53fc585ebf99133aa734069fb709ab95d924965d7cca4585cb4c0bd0b6ac4c3",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-sync-apply.json",
      "rea_file_sha256": "056ca14338b4cd4db53ea1a5d705542643a21e3bbace3d761c1e8c6777cad18b",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-sync-apply.txt",
      "function_size": 2742,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_e1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_251h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1c1h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183398220",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-location-icon",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x1832869d0",
      "original_symbol": null,
      "role": "搜索引擎内置 favicon 选择",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "该候选引用 IDR_TAB_SEARCH_ENGINE_* 资源并处理 built_in_icon_missing；是地址栏搜索引擎图标，不是阅读按钮的证据。",
      "evidence_id": "ev_ef93bfe86574d9f5ab63ce98b595a060c762f06b37a580f77236dda7bb127890",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-location-icon.json",
      "rea_file_sha256": "c3b82b87f2ca33e81461b81a3fe532727ee80d5c332a9265e6f0419bc17523d3",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-location-icon.txt",
      "function_size": 6281,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_a8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_59h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_81h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_231h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_101h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_60h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_88h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.1832869d0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-refiner",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x18366d3e0",
      "original_symbol": null,
      "role": "带鉴权 JSON 文本改写请求",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "使用 rewrite URL，Content-Type application/json，Authorization Bearer；请求字段 text、mode=chat_input、language，语言空值回退 zh-CN。",
      "evidence_id": "ev_da080f15f715b3453ba298bc6c19d0481149573c399d751d26524af6aad088eb",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-refiner.json",
      "rea_file_sha256": "4448a0b666ed86c1f924463d9ab23d26aca6e28559c80d2900d69734ca247fe9",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-refiner.txt",
      "function_size": 3474,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_79h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_90h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1b1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1c9h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1e1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_a9h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_b0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_98h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_80h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_68h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1e8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1d0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1b8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1a0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_17h",
        "WARNING: [rz-ghidra] Removing arg arg_288h because it doesn't fit into ProtoModel",
        "WARNING: [rz-ghidra] Removing arg arg_afh because it doesn't fit into ProtoModel",
        "WARNING: [rz-ghidra] Removing arg arg_c7h because it doesn't fit into ProtoModel",
        "WARNING: [rz-ghidra] Detected overlap for variable var_201h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_e3h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_e4h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_e0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_198h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_208h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_d8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_10h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_27h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_20h",
        "WARNING: [rz-ghidra] Removing arg arg_3fh because it doesn't fit into ProtoModel",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18366d3e0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-controller-start",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183670ec0",
      "original_symbol": null,
      "role": "识别结果与增量文本处理（原种子名 start）",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "实际含 speech result、is_final、streaming replace 与气泡 delta 队列分支；调用 0x183674fc0 更新流式输入。",
      "evidence_id": "ev_12b142a0878cce9354272e4cb6c6fc100e3305041b0f03f440b6840f2879ebef",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-controller-start.json",
      "rea_file_sha256": "02bbd44c710274c1da16498104a197620ae978c1a489b206d4cf6b82220ca249",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-controller-start.txt",
      "function_size": 2562,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_191h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1c1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_198h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1e9h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_179h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_178h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183670ec0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-controller-state",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x1836718d0",
      "original_symbol": null,
      "role": "气泡文字显示更新",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "读取状态、可见性和文字长度，调用 overlay 相关对象；不是控制器总体状态机的完整恢复。",
      "evidence_id": "ev_3e72f38a959ce82cc62b14d9eea115226de383e6f4ffaaec56330eb2f23b682c",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-controller-state.json",
      "rea_file_sha256": "80dd7bba65e42fbf681a14c78c98b2524f302fcbe1666bc1a2063fe66c27048e",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-controller-state.txt",
      "function_size": 269,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.1836718d0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-controller-result",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183673330",
      "original_symbol": null,
      "role": "OnRefined 改写完成处理",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "成功且非空时选择改写文本，否则保留原文本；热键模式调用 InjectAndDismiss，其他模式显示失败反馈并可异步收尾。",
      "evidence_id": "ev_8370cea805119f685ea13e5a9f097c06997ed3a4256b8ea16e2fcd9e7d69f76e",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-controller-result.json",
      "rea_file_sha256": "94a32b2994b2f25fe191492449fe922e4dd095b096ef6c00ad715e72d051539c",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-controller-result.txt",
      "function_size": 1964,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_41h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_40h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_17ch",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183673330",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-injector",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183674860",
      "original_symbol": null,
      "role": "捕获网页编辑目标",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "检查活动 browser、WebContents、可编辑字段、live focused frame、网页 scheme 和 widget；保存 GlobalRenderFrameHostId。",
      "evidence_id": "ev_6ba30e34597b59368c3f672d9e09468c9932831895067d2b916ad423ec9fe1ad",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-injector.json",
      "rea_file_sha256": "fc1c79e78479ac50d492fb76892fbece5a695c79c74272d9cc15efa929fc7dbf",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-injector.txt",
      "function_size": 1705,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_f1h"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183674860",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-hotkey",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183675cf0",
      "original_symbol": null,
      "role": "Windows Alt hook 回调",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "前台窗口归属当前进程时处理 VK_MENU/VK_LMENU/VK_RMENU；500000 微秒双击窗口启动听写，活动时停止，未消费事件 CallNextHookEx。",
      "evidence_id": "ev_a6161a19a5a380c7c54009cc3a908cc2264b96c737aba74bd5d527804d05e49a",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-hotkey.json",
      "rea_file_sha256": "2e314deed810a42bfc6f7f2b9d9706f2d3a8fb3d69b106d917cc1cc1e0121a39",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-hotkey.txt",
      "function_size": 1663,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_61h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_e0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1b1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_251h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_d8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_211h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_e4h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_264h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_25ch",
        "WARNING: [rz-ghidra] Detected overlap for variable var_254h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_250h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_109h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_238h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_191h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1f1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_f1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_1d1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_121h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_c1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_f8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_110h",
        "WARNING: Could not recover jumptable at 0x000183675f6b. Too many branches",
        "WARNING: Treating indirect jump as call"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183675cf0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-speech-init",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183676c50",
      "original_symbol": null,
      "role": "Windows 实时 ASR 启动",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "创建 RealtimeAsrWebSocketClient，构造实时识别 URL 和 start JSON，16000 Hz、1 channel、语言和 hotword_list；并进入采集相关路径。",
      "evidence_id": "ev_e85aaf88168e74de5f1d6e1af99d93996fbd2969956cd2d5dddc6f0ca9767ef0",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-speech-init.json",
      "rea_file_sha256": "159dc0b520ab248b27e96129c8e4bcb7332df3182a1bdc9579e67bb4ca3d8c45",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-speech-init.txt",
      "function_size": 6028,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: Variable defined which should be unmapped: var_468h",
        "WARNING: Variable defined which should be unmapped: var_460h",
        "WARNING: Variable defined which should be unmapped: var_458h",
        "WARNING: Variable defined which should be unmapped: var_450h",
        "WARNING: Variable defined which should be unmapped: var_448h",
        "WARNING: Variable defined which should be unmapped: var_440h",
        "WARNING: Variable defined which should be unmapped: var_438h",
        "WARNING: Variable defined which should be unmapped: var_430h",
        "WARNING: Variable defined which should be unmapped: var_428h",
        "WARNING: Variable defined which should be unmapped: var_420h",
        "WARNING: Variable defined which should be unmapped: var_418h",
        "WARNING: Variable defined which should be unmapped: var_410h",
        "WARNING: Variable defined which should be unmapped: var_408h",
        "WARNING: Variable defined which should be unmapped: var_400h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3a3h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3a4h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_331h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3f8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3f4h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_391h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3a0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3e1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3c9h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_2d3h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_2d4h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3d0h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_178h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_189h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_190h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_141h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_3e8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_198h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183676c50",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-speech-result",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x18367a260",
      "original_symbol": null,
      "role": "WebSocket 连接完成回调（原种子名 result）",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "实际含 realtime ASR connected status 日志；更新连接和数据管道状态，不能当作文本识别结果解析器。",
      "evidence_id": "ev_3101d40c9e2e69feeedbe7cf78d44835a0a8fc23f8a20d4e4cae46f73d684ef0",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-speech-result.json",
      "rea_file_sha256": "b2e8193d071ba8293a6fdff323a96e0e7edcdffc7993eced545b04a0bfec404d",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-speech-result.txt",
      "function_size": 1664,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_189h"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18367a260",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-selection-controller",
      "family": "text_selection",
      "category": "AI业务",
      "address": "0x183597050",
      "original_symbol": null,
      "role": "键盘选择的调度入口",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "查询 ExtensionRegistry 和指定扩展 ID，检查来源/状态并投递 ScheduleKeyboardSelection；含 /newtab 条件。",
      "evidence_id": "ev_d8ed5f062bc4c55ba0da0822c86102849d0696b50c00082e2c170a181abca7c5",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-selection-controller.json",
      "rea_file_sha256": "da4e77b1230d37c4df2b953fe0f1a930380c7e512960f24aa3dae830cd7c1e59",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-selection-controller.txt",
      "function_size": 2112,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_58h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_50h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_84h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183597050",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-selection-update",
      "family": "text_selection",
      "category": "AI业务",
      "address": "0x183598130",
      "original_symbol": null,
      "role": "RequestPendingSelection 调度",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "检查 pending 状态和网页目标，构造弱引用/代次回调并调用 0x183598700 发起请求。",
      "evidence_id": "ev_cdb090f95d3173735fe6f8cbdf9d3cddccc8ed210531fc287ad5eda5516017cc",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-selection-update.json",
      "rea_file_sha256": "5936a049cad0fe445c86cf0ba12b593c48d269a0086b3c7f916b28c44c0f424b",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-selection-update.txt",
      "function_size": 1167,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_68h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183598130",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-store-backend",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x18336d9c0",
      "original_symbol": null,
      "role": "账户 CreateStore 的后台结果适配",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "接收后台结果，错误直接转发，成功包装对象；含 base/task/sequenced_task_runner.h，调用 0x18134a090。",
      "evidence_id": "ev_188ec411ada4a30deff3aab9a30d76075ae6b00ca843793ef5ffe3530952faf2",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-store-backend.json",
      "rea_file_sha256": "c6832517c8c6768fd844507f3f5ad122cfb4eea0c35189b7832b550d91667991",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-store-backend.txt",
      "function_size": 571,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18336d9c0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-sync-local-commit",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183392e00",
      "original_symbol": null,
      "role": "本地 mutation 持久化完成处理",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "失败走 commit local mutation 错误处理；成功更新 catalog 和 generation，按 page: 操作待同步状态并报告 documents/pending_pages。",
      "evidence_id": "ev_6895279c4edc0fdfcc570f1db7ebc6e6ce92d2862049113b093a40f0ca5cda13",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-sync-local-commit.json",
      "rea_file_sha256": "bab274c0eb445ddb7d3d4b9e9c8e234522406c855dd32087bebb090126f5b21b",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-sync-local-commit.txt",
      "function_size": 1906,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183392e00",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-sync-read-metadata",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x183384070",
      "original_symbol": null,
      "role": "读完同步元数据后加载控制记录",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "构造 256 个 control:page-catalog-v1:%02x 桶键及 control:page-local-state-v1，交给后续存储读取。",
      "evidence_id": "ev_b8db6e098ab07fa7854a8714982ad98b47a8015ef5b3ebdcfdd56fac3ccdd339",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-sync-read-metadata.json",
      "rea_file_sha256": "616d53a8a595e5540acb44e400493a44a557e3901a0be195e54181486c8d6cb1",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-sync-read-metadata.txt",
      "function_size": 1635,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_e1h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183384070",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-controller-toggle",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x18366fbc0",
      "original_symbol": null,
      "role": "浏览器热键控制入口",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "检查 tabbit.voice_input.enabled、controller 和活跃状态；调用目标捕获器，通过后设置热键模式。",
      "evidence_id": "ev_bf26f2d79840304a9605dd759e6b9117bba1e69f7769b145511f7134eac2b009",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-controller-toggle.json",
      "rea_file_sha256": "6787c0dc6596d928e2f45c772cd1508bcdbf124151a924e931346f02a5fd84d4",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-controller-toggle.txt",
      "function_size": 1272,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18366fbc0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-inject-commit",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183675390",
      "original_symbol": null,
      "role": "对已捕获目标提交文字并清理",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "重新解析 GlobalRenderFrameHostId，检查 frame 存活并获取 widget，转换为 UTF16 后调用对象 vtable +0x40；清除目标和 composing 状态。具体提交虚函数名称未恢复。",
      "evidence_id": "ev_9d352001b0503b3dfbc8397bf4810944e628f4faad9b1123f8ae6b92580ec31f",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-inject-commit.json",
      "rea_file_sha256": "acb44f8c68aaacacb81bb72a5256c944cd1dbb073ac74afa3ed568cf6bfc6fac",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-inject-commit.txt",
      "function_size": 1117,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183675390",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-hotkey-install",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x1836759d0",
      "original_symbol": null,
      "role": "安装 Windows 低级键盘 hook",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "排除空 profile 和 off-the-record 状态，避免重复安装；SetWindowsHookExW(0x0d,0x183675cf0,0,0)。",
      "evidence_id": "ev_a3b27f8c034940a083372bc8a4e36710aec9a190e56cddd1bb08d8ed2714f416",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-hotkey-install.json",
      "rea_file_sha256": "d6ff67d51a0bd9e60203978bb8e9a043c94e7dba835cc36f2aa0811c0d573add",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-hotkey-install.txt",
      "function_size": 790,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.1836759d0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-asr-parser",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x18367b8c0",
      "original_symbol": null,
      "role": "实时 ASR WebSocket 消息组帧与 JSON 解析",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "累积帧负载，解析 type；区分 error/final 及文字分支，读取 text/message，遇无效 JSON/缺 type/服务错误触发错误回调。",
      "evidence_id": "ev_fb7380290e592c6d5fbc38340420f3691ce34aa18b06348b808e88a9dbec3f7c",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-asr-parser.json",
      "rea_file_sha256": "35a9e4e8cb22cd383009c422031a81be8217a08a77101b21378e9141ce98ec2e",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-asr-parser.txt",
      "function_size": 2870,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_a1h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_12ch",
        "WARNING: [rz-ghidra] Detected overlap for variable var_e8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_128h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_4h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18367b8c0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-refiner-endpoint",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x18366c5a0",
      "original_symbol": null,
      "role": "构造文本改写 URL",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "配置得到的服务 origin 拼接 /api/v0/asr/rewrite，再生成 URL；服务真实 origin 与运行时配置未观察。",
      "evidence_id": "ev_8e5dc5e7181bc3607cdf2a2bd04703af4f2407810a038ec22946779716402a54",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-refiner-endpoint.json",
      "rea_file_sha256": "3c94d77253c3eef092386bb4b4cd2899b215996e5581b2dcd859ee6ff1e5dcf2",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-refiner-endpoint.txt",
      "function_size": 567,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_81h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_69h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_a8h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_70h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_88h"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18366c5a0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-selection-request",
      "family": "text_selection",
      "category": "AI业务",
      "address": "0x183598700",
      "original_symbol": null,
      "role": "请求选择用的 Mojo remote 建立与派发",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "清除前一 remote，绑定新 interface，安装带 generation 的回调，调用 0x18340d080 派发。",
      "evidence_id": "ev_922b5b054d0630e1071f14b92e881255ebc4daeae4c44a41edfb25f23f6e0e8d",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-selection-request.json",
      "rea_file_sha256": "b7121a9a52c877a18d86c8913167b36b90843ffb0adfac72ac7cc87aa3983ee7",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-selection-request.txt",
      "function_size": 450,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183598700",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-reading-store-adapter",
      "family": "reading_space",
      "category": "原生业务",
      "address": "0x18134a090",
      "original_symbol": null,
      "role": "序列任务上的存储适配对象构造",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "写入 vtable 0x18fd6c3b0、类型/存储字段、后台对象和 runner；与 Chromium DataTypeStoreImpl 构造形状相容，但尚非原始符号认证。",
      "evidence_id": "ev_aaa681c12bb6596b80a9f5617c31c10eb87eba8f2e09b90b16464517d525764d",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-reading-store-adapter.json",
      "rea_file_sha256": "0800c92dd1e1cdbcfcba342a340de90a768076a966ae0c4c1f4a84cb0983ceec",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-reading-store-adapter.txt",
      "function_size": 293,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18134a090",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-controller-finish",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x183673ae0",
      "original_symbol": null,
      "role": "InjectAndDismiss/Finalize 收尾",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "热键分支调用 0x183675390 提交并清理，含 streamed_length；其他分支使用回调完成 JS/overlay 路径。",
      "evidence_id": "ev_77dde321d16dbbff6bf5f3abe5107d8c83d8ed0e27cdfd04426f5608ccf877f2",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-controller-finish.json",
      "rea_file_sha256": "031d2acd83f7622c8d69f3fd19a58e4707d43c3b12a19e3d505b2c913d0896cf",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-controller-finish.txt",
      "function_size": 1072,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183673ae0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-capture-device",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x18565fc70",
      "original_symbol": null,
      "role": "ASR 启动所调用的媒体辅助函数",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "现有函数主要从对象取状态和构造辅助对象；缺直接采集 API 证据，不把它命名为已认证 microphone open。",
      "evidence_id": "ev_5bf0db5c2aa0e061dafdd813022428b4cda739a1c8dd90378f8a5333abb4ec68",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-capture-device.json",
      "rea_file_sha256": "6bc7d74109d769e1d7151f246f9e62afac205e083b0fc6d8298d9bd834652449",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-capture-device.txt",
      "function_size": 415,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_28h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_24h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_30h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_40h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_48h"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.18565fc70",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-voice-frame-id-resolver",
      "family": "voice_input",
      "category": "AI业务",
      "address": "0x184770e70",
      "original_symbol": null,
      "role": "frame 全局 ID 查表解析辅助",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "访问哈希表并包含 BrowserThread 检查；由 injector 使用，结合调用上下文推断为 frame ID resolver，原始符号未认证。",
      "evidence_id": "ev_915f41c11974d8bf43ad5bb82029bd810385c6647d56f8ea3781c700fb929372",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-frame-id-resolver.json",
      "rea_file_sha256": "c5649fc1b4bf7d70352604c1ab32e51c320b977540a0f7cb488dcc4eec83b443",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-voice-frame-id-resolver.txt",
      "function_size": 1134,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_48h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.184770e70",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-selection-mojo-binding",
      "family": "text_selection",
      "category": "AI业务",
      "address": "0x183599ff0",
      "original_symbol": null,
      "role": "绑定 TabTextSelectionAgent 接口",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "明确构造 tab.mojom.TabTextSelectionAgent 接口名并调用 interface provider 绑定。",
      "evidence_id": "ev_1eca38de0ac7d025cba590d11f5db8d594d3adcd1d42ec027be3121e69d6d8a2",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-selection-mojo-binding.json",
      "rea_file_sha256": "e79ab5e96ee47f6ba4f42c8c2e25d930b19e161ca2ac9b2d50d20223eee5c69f",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-selection-mojo-binding.txt",
      "function_size": 320,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_71h",
        "WARNING: [rz-ghidra] Detected overlap for variable var_78h",
        "WARNING: Does not return"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183599ff0",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    },
    {
      "label": "a-selection-result-callback",
      "family": "text_selection",
      "category": "AI业务",
      "address": "0x183598a30",
      "original_symbol": null,
      "role": "选择请求代次匹配及清理回调（原种子名 result）",
      "label_authority": "analyst-inferred; binary names are fcn.*",
      "observed_behavior": "只在 arg2 等于 +0x178 代次时清除 remote、递增代次并更新状态；未看到 selection text 参数，不能当成已恢复 payload 消费回调。",
      "evidence_id": "ev_f435ede65b39c6a1e99a9e77d57d0a6aba605f82318d778da113021c0321ee09",
      "rea_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-selection-result-callback.json",
      "rea_file_sha256": "79b9876eaf275603884323b428f003f9669706aa69f899c0c9b100edb2fc8ef4",
      "stdout_file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-selection-result-callback.txt",
      "function_size": 264,
      "status": "decompiled-with-limitations",
      "empty_pseudocode": false,
      "tail_jump_only": false,
      "duplicate_address": false,
      "stderr": "WARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0xfb71e00) exceeds max region size (0xa00000), skipping it.\r\nWARNING: bin_file_strings: search interval size (0x20fd400) exceeds max region size (0xa00000), skipping it.\r\n",
      "decompiler_warnings": [
        "WARNING: [rz-ghidra] Detected overlap for variable var_1ch"
      ],
      "limits": [
        "函数入口来自候选扫描后局部 af；边界/类型未由原始符号认证。",
        "afij 的 indegree 不能作为全程序调用者数量；间接调用和 CFG dispatcher 未解析。"
      ],
      "exit_code": 0,
      "output_truncated": false,
      "artifact_changed": false,
      "target_sha256": "a10ee34ead4a08c906e09f3dd4449042fb084a69ce59210b1c8cee815723bf3c",
      "native_analysis_label": "fcn.183598a30",
      "evidence_kind": "static-native-decompilation",
      "tail_jump_assessment": "本轮人工复核的局部函数体包含多步状态/对象操作，未识别为仅单一尾跳的 thunk；不是全程序尾跳图或原始函数边界认证。"
    }
  ],
  "caller_checks": {
    "evidence_id": "ev_fede8f1cc07f0a9c098321072fa3d31626fb456df1b4a156ba3209a5927ffdf9",
    "label": "a-voice-callers-check",
    "file": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\rea-a-voice-callers-check.json",
    "kind": "disassembly-only",
    "status": "completed",
    "sites": [
      {
        "site": "0x18366ff95",
        "from": "0x18366fbc0",
        "to": "0x183674860",
        "kind": "direct-call",
        "verified": true
      },
      {
        "site": "0x183673d4f",
        "from": "0x183673ae0",
        "to": "0x183675390",
        "kind": "direct-call",
        "verified": true
      },
      {
        "site": "0x1836761ff",
        "from": "0x183675cf0",
        "to": "0x18366fbc0",
        "kind": "direct-call",
        "verified": true
      },
      {
        "site": "0x1836734b6",
        "from": "0x183673330",
        "to": "0x183673ae0",
        "kind": "direct-call",
        "verified": true
      },
      {
        "site": "0x183598861",
        "from": "0x183598700",
        "to": "0x18340d080",
        "kind": "direct-call",
        "verified": true,
        "note": "callee body not expanded in this scope"
      },
      {
        "site": "0x1836755c7",
        "from": "0x183675390",
        "to": "frame vtable +0xa8",
        "kind": "CFG-indirect-call",
        "verified": true,
        "note": "object method name unverified"
      },
      {
        "site": "0x183675775",
        "from": "0x183675390",
        "to": "widget vtable +0x40",
        "kind": "CFG-indirect-call",
        "verified": true,
        "note": "0x185f59da0 is dispatcher, not business callee"
      }
    ],
    "limits": [
      "只核对列出 sites；不是完整 callers graph。",
      "0x183673d38 截取从指令中部开始的前两行忽略；0x183673d40 后经已有完整函数汇编 corroborate。",
      "伪代码行地址有时指向表达式准备指令，正式 call 地址以汇编为准。"
    ]
  },
  "quality_notes": [
    "全部函数记录有 stdout 函数体和 afij。未见 Ghidra Decompiler Error、非零退出、截断或目标变更；仍保留类型重叠/无效路径/未映射变量等反编译警告。",
    "stderr 的大区段字符串扫描跳过警告不等于函数反编译失败；它限制自动字符串全量枚举，本轮以 PE 文件字节补证。",
    "本轮无已识别纯尾跳函数、重复入口或空体；具体尾跳调用不据此声称不存在，未构造全程序尾跳图。",
    "0x183598a30 为代次清理回调，0x18565fc70 为未认证媒体辅助，不能把它们包装成已恢复选择 payload 或设备打开。",
    "未打开持久 REA native MCP session；每次 CLI 为单次读取，因此无待关闭的 active-target session。"
  ],
  "supporting_files": {
    "datarefs": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-decoded-datarefs.json",
    "candidates": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-seam-candidates.json",
    "source_regions": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-source-string-regions.txt",
    "api_schema": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\research-output\\evidence\\tabReadingSpace.api-schema.json",
    "api_schema_sha256": "70de6ea8a6b26a1e917085fb0f1e33e09926bff4dc5ba7c1251f2328811558e3",
    "primary_sources": "C:\\Users\\tjzhong\\AppData\\Local\\Tabbit\\business-research\\evidence\\a-primary-sources.json",
    "api_schema_compact_json_sha256": "644d57610fc4626f8ffc02106a8bdc082c262c5a8d373cdf8cae5519833a1841"
  },
  "upstream_comparison_limits": [
    "固定参照 refs/tags/154.0.8037.58。公开源是概念/接口参照，不是 Tabbit 原始源码。",
    "本轮新增读取仅 Chromium primary files；无第三方对实现的二手推断。",
    "DataTypeStoreImpl 结构相容不是函数等价证明；RenderWidgetHost/RenderFrameHost 公开方法存在不证明 +0x40/+0xa8 对应名称。"
  ],
  "unresolved_seams": [
    {
      "finding_id": "a-voice-asr",
      "question": "麦克风设备创建及 PCM 转换的最终底层 API/媒体函数名未恢复。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-voice-asr",
      "question": "真实服务 origin、ASR 后端供应商、认证握手内容及在线效果未知。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-voice-asr",
      "question": "没有完成 Chromium Web Speech API 实现的比较，不能排除其他共存路径。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-voice-refine",
      "question": "rewritten_text 只在邻近字符串中出现；响应解析函数本轮未反编译，不能把字段消费当作已证明。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-voice-refine",
      "question": "具体模型名称、提示词、后端 provider 未建立。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-voice-native-seams",
      "question": "widget +0x40 的原始函数名和最终 IPC/renderer 处理未认证；不能断言 ImeCommitText、SendInput 或 DOM JavaScript 注入。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-voice-native-seams",
      "question": "只核对本轮可见静态调用及回调绑定，不代表所有入口已恢复。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-selection",
      "question": "本轮未恢复 renderer 侧 TabTextSelectionAgent 的实现及 binding 注册函数；是否使用 Blink Selection、DOM Range、AX 获取文本未知。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-selection",
      "question": "未追到 AI 对话最终消费；本章归类来自报告业务分类，不等于本函数调用模型。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-store",
      "question": "0x3f 未认证为原始 DataType 枚举；不能仅用数值认定扩展了 Chromium enum。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-store",
      "question": "数据库文件名、后端 LevelDB/SQLite、每记录加密算法未认证。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-sync",
      "question": "没有逐函数 diff 原 Chromium reading-list 实现，不能声称“替换 Chromium 阅读列表”。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-sync",
      "question": "同步 type 注册、EntitySpecifics 私有字段、协议服务器、冲突规则及配额值未恢复。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-sync",
      "question": "邻近一致性修复日志是下一步线索，本轮未把它当成已经反编译的完整修复算法。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-ui",
      "question": "阅读按钮 View 构造、side panel 注册、真实正文抽取器/渲染入口未追到。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-ui",
      "question": "DidFinishNavigation 中几个虚调用不能未经核对命名为某个具体 NavigationHandle 方法。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    },
    {
      "finding_id": "a-reading-location-candidate",
      "question": "精确 reading-space location_bar View/注册 caller 未定位，本候选不能用于证明它。",
      "status": "unresolved",
      "required_probe": "后续定向静态分析或同版本上游差分；本轮按用户要求停止扩展。"
    }
  ]
}