# Cold-vs-cold result — Phase C+13 (2026-05-14) | canary_tid | ours_tid | matched | first_divergence | event-kind at divergence | |---|---|---|---|---| | 6 | 1 | **104574** | 104574 | `import.call`: canary=RtlEnterCriticalSection (ord 293) / ours=RtlLeaveCriticalSection (ord 304) — NEW divergence, surfaced by C+13 fix | | 4 | 11 | 9 | — | no divergence in 9 events — unchanged from C+12 | | 7 | 2 | 29 | — | no divergence in 29 events — unchanged from C+12 | | 12 | 7 | 2 | 2 | pre-existing KeWaitForSingleObject TIMEOUT/SUCCESS — unchanged | | 14 | 9 | 39 | 39 | pre-existing XAudio init — unchanged | | 15 | 10 | 15 | — | no divergence in 15 events — unchanged | Main matched-prefix advance: **+712 events** (103,862 → 104,574). ## New cold digest baseline `e1dfcb1559f987b35012a7f2dc6d93f5` (was `ad4f74ee324fdedb0bfdd4cc4c6468e9`). Stable-counter delta vs C+12 (digest-cold-stable-1.json): ``` instructions: 50000002 → 50000007 (+5) imports: 40447 → 40390 (-57) unimpl: 0 → 0 draws: 0 → 0 swaps: 1 → 1 unique_render_targets: 0 → 0 shader_blobs_live: 0 → 0 texture_cache_entries: 0 → 0 ``` The `imports` drop is the expected signature of the fix: where ours previously synth-empty'd missing disc paths (emitting an extra kernel.call/return pair), it now returns NOT_FOUND inline. The net `imports` delta (-57) suggests roughly ~57 missing-disc-file probes per cold boot were previously masked. ## Phase B `image_loaded_sha256` `ea8d160e9369328a5b922258a92113efb8d7ce3e1a5c12cc521e375985c91c18` (unchanged from C+12 / C+11.1 / C+11 — the engine fix is observation- only on the loaded image bytes). ## Verification of the divergence resolution at idx 103862 Ours (post-fix) emission at idx 103862: ```json { "kind": "kernel.return", "tid": 1, "tid_event_idx": 103862, "payload": { "name": "NtCreateFile", "return_value": 18446744072635809844, "status": "0xc0000034", "side_effects": [] } } ``` Canary (oracle) emission at idx 103862: ```json { "kind": "kernel.return", "tid": 6, "tid_event_idx": 103862, "payload": { "name": "NtCreateFile", "return_value": 18446744072635809844, "status": "0xc0000034", "side_effects": [] } } ``` Bit-identical match — `STATUS_OBJECT_NAME_NOT_FOUND` (0xC0000034) on both sides for the missing `game:\dat\files.tbl` open. ## New first divergence (next target) `tid_event_idx=104574`: ordinal-of-call mismatch in a tight `RtlEnterCriticalSection` / `RtlLeaveCriticalSection` sequence. Pre-context (last 5 matching events both engines): ``` [104569] kernel.call RtlLeaveCriticalSection [104570] kernel.return RtlLeaveCriticalSection [104571] import.call RtlEnterCriticalSection [104572] kernel.call RtlEnterCriticalSection [104573] kernel.return RtlEnterCriticalSection ``` Divergent event: ``` canary: [104574] import.call RtlEnterCriticalSection ours: [104574] import.call RtlLeaveCriticalSection ``` Reading: canary does **two** sequential `RtlEnterCriticalSection` calls (nested-lock pattern around the NOT_FOUND error-handling path); ours does **one** Enter followed by a Leave (single-lock pattern). This is downstream code branching differently — likely an error-handling path in the boot validator that takes a double-lock when a disc lookup misses. Investigate the function on whose path Sylpheed is at `pc` 104574 in ours.