Add segment coverage ledger and mid-project plan for Crusader decompilation

- Created `crusader_segment_coverage_ledger.csv` to track segment coverage status, types, and known functions.
- Introduced `plan-mid.md` as a mid-project tracker outlining progress, objectives, and implementation priorities for the decompilation effort.
- Added scripts in `pyghidra_plans` to assist with instruction window dumping and reference inspection for the object at `0x4588`.
- Implemented functionality to scan for instruction uses of specific targets related to the decompilation project.
This commit is contained in:
MaddoScientisto 2026-03-21 16:19:46 +01:00
commit 519af09912
42 changed files with 2444 additions and 3 deletions

View file

@ -0,0 +1,146 @@
"Segment","Type","FileOffset","Length","CoverageStatus","KnownSubsystem","KeyNamedFunctions","Blockers","NotesSource"
"1","code","0x37600","0x8400","Deep","Gameplay cursor/input/projectiles","cursor_update_hover; entity_fire_weapon; projectile_update_tick","Broader gameplay subsystem still spans adjacent segments","crusader_decompilation_notes.md; plan-mid.md"
"2","code","0x40000","0x2B0","None","","","","crusader_ne_segments.csv"
"3","code","0x40400","0x55A","None","","","","crusader_ne_segments.csv"
"4","code","0x40A00","0x10B1","Foothold","Reset/cache entry path","runtime_cache_reset_sequence","ASYLUM.24 and downstream reset callers still need tighter classification","crusader_decompilation_notes.md; plan-mid.md"
"5","code","0x41E00","0x8D7","None","","","","crusader_ne_segments.csv"
"6","code","0x42C00","0x75E","None","","","","crusader_ne_segments.csv"
"7","code","0x43600","0x484","None","","","","crusader_ne_segments.csv"
"8","code","0x43C00","0x1386","None","","","","crusader_ne_segments.csv"
"9","code","0x45400","0x495","None","","","","crusader_ne_segments.csv"
"10","code","0x45A00","0xD92","None","","","","crusader_ne_segments.csv"
"11","code","0x46E00","0x5B1","None","","","","crusader_ne_segments.csv"
"12","code","0x47600","0x94B","None","","","","crusader_ne_segments.csv"
"13","code","0x48200","0x1F6C","None","","","","crusader_ne_segments.csv"
"14","code","0x4AA00","0x526","None","","","","crusader_ne_segments.csv"
"15","code","0x4B200","0x1C68","None","","","","crusader_ne_segments.csv"
"16","code","0x4D400","0x677","None","","","","crusader_ne_segments.csv"
"17","code","0x4DC00","0x1A7","None","","","","crusader_ne_segments.csv"
"18","code","0x4E000","0x7E9","None","","","","crusader_ne_segments.csv"
"19","code","0x4EA00","0xB4D","None","","","","crusader_ne_segments.csv"
"20","code","0x4F800","0x878","None","","","","crusader_ne_segments.csv"
"21","code","0x50200","0x4486","Partial","Timer/event dispatch and entity counting","entity_count_by_type_a; input_keyboard_handler copy","Needs broader caller-driven expansion","crusader_decompilation_notes.md; plan-mid.md"
"22","code","0x55000","0x2BD6","None","","","","crusader_ne_segments.csv"
"23","code","0x58200","0x5D6","None","","","","crusader_ne_segments.csv"
"24","code","0x58A00","0x6D7","None","","","","crusader_ne_segments.csv"
"25","code","0x59200","0x1976","None","","","","crusader_ne_segments.csv"
"26","code","0x5AE00","0x4DE","None","","","","crusader_ne_segments.csv"
"27","code","0x5B400","0x57B","None","","","","crusader_ne_segments.csv"
"28","code","0x5BA00","0x788","None","","","","crusader_ne_segments.csv"
"29","code","0x5C400","0x190A","None","","","","crusader_ne_segments.csv"
"30","code","0x5E000","0x5071","None","","","","crusader_ne_segments.csv"
"31","code","0x64000","0x6EE","None","","","","crusader_ne_segments.csv"
"32","code","0x64800","0x56A","None","","","","crusader_ne_segments.csv"
"33","code","0x65000","0x10D7","None","","","","crusader_ne_segments.csv"
"34","code","0x66600","0x253A","None","","","","crusader_ne_segments.csv"
"35","code","0x69400","0xF67","None","","","","crusader_ne_segments.csv"
"36","code","0x6A600","0x69F","None","","","","crusader_ne_segments.csv"
"37","code","0x6AE00","0x636","None","","","","crusader_ne_segments.csv"
"38","code","0x6B600","0x2318","None","","","","crusader_ne_segments.csv"
"39","code","0x6E200","0x3416","None","","","","crusader_ne_segments.csv"
"40","code","0x72200","0x1E7A","None","","","","crusader_ne_segments.csv"
"41","code","0x74600","0x28D","None","","","","crusader_ne_segments.csv"
"42","code","0x74A00","0xC9C","None","","","","crusader_ne_segments.csv"
"43","code","0x75A00","0x336F","Partial","Gameplay targeting/facing repair cluster","entity_set_at_target_update_facing; seg043_func_0090; seg043_func_021c","Two repaired functions remain positional and thunk-heavy","crusader_decompilation_notes.md; plan-mid.md"
"44","code","0x79400","0x7F8","None","","","","crusader_ne_segments.csv"
"45","code","0x79E00","0x200","None","","","","crusader_ne_segments.csv"
"46","code","0x7A200","0x7DC","None","","","","crusader_ne_segments.csv"
"47","code","0x7AC00","0x9B4","None","","","","crusader_ne_segments.csv"
"48","code","0x7B800","0x63","None","","","","crusader_ne_segments.csv"
"49","code","0x7BA00","0x1E3F","None","","","","crusader_ne_segments.csv"
"50","code","0x7DE00","0x9C8","None","","","","crusader_ne_segments.csv"
"51","code","0x7EA00","0x1D02","None","","","","crusader_ne_segments.csv"
"52","code","0x80A00","0x1D65","None","","","","crusader_ne_segments.csv"
"53","code","0x82C00","0x10DE","None","","","","crusader_ne_segments.csv"
"54","code","0x84000","0x5","None","","","Short stub-sized segment","crusader_ne_segments.csv"
"55","code","0x84200","0xA06","None","","","","crusader_ne_segments.csv"
"56","code","0x85000","0x706","None","","","","crusader_ne_segments.csv"
"57","code","0x85A00","0x79B","None","","","","crusader_ne_segments.csv"
"58","code","0x86400","0x44B","None","","","","crusader_ne_segments.csv"
"59","code","0x86A00","0x4288","None","","","","crusader_ne_segments.csv"
"60","code","0x8B600","0x231","None","","","","crusader_ne_segments.csv"
"61","code","0x8BA00","0x1B6C","None","","","","crusader_ne_segments.csv"
"62","code","0x8DA00","0x85F","None","","","","crusader_ne_segments.csv"
"63","code","0x8E400","0x519","None","","","","crusader_ne_segments.csv"
"64","code","0x8EA00","0x3B1","None","","","","crusader_ne_segments.csv"
"65","code","0x8F000","0x5BD","None","","","","crusader_ne_segments.csv"
"66","code","0x8F800","0x4A9","None","","","","crusader_ne_segments.csv"
"67","code","0x8FE00","0x839","None","","","","crusader_ne_segments.csv"
"68","code","0x90800","0xB4A","None","","","","crusader_ne_segments.csv"
"69","code","0x91800","0x2A0","None","","","","crusader_ne_segments.csv"
"70","code","0x91C00","0xF24","None","","","","crusader_ne_segments.csv"
"71","code","0x92E00","0x6C2","None","","","","crusader_ne_segments.csv"
"72","code","0x93600","0xCA1","None","","","","crusader_ne_segments.csv"
"73","code","0x94600","0x9AA","None","","","","crusader_ne_segments.csv"
"74","code","0x95200","0x337","None","","","","crusader_ne_segments.csv"
"75","code","0x95600","0x1428","None","","","","crusader_ne_segments.csv"
"76","code","0x96E00","0x627","None","","","","crusader_ne_segments.csv"
"77","code","0x97600","0x616","None","","","","crusader_ne_segments.csv"
"78","code","0x97E00","0x634","None","","","","crusader_ne_segments.csv"
"79","code","0x98600","0x421","None","","","","crusader_ne_segments.csv"
"80","code","0x98C00","0xF27","Foothold","Conditional render/callback dispatch","entity_conditional_render_dispatch","0x4588 callback object still lacks a concrete subsystem name","crusader_decompilation_notes.md"
"81","code","0x99E00","0x320","None","","","","crusader_ne_segments.csv"
"82","code","0x9A200","0x1C8A","Partial","Allocator sweep and per-head allocation","allocator_head_try_alloc_block; allocator_head_free_block; public size wrapper","0x4588 object and finalize path still unresolved","crusader_decompilation_notes.md; plan-mid.md"
"83","code","0x9C400","0x31E","Foothold","Allocator node/header helpers","event_queue_push; packed size/header helpers","Mostly structural helper layer","crusader_decompilation_notes.md"
"84","code","0x9C800","0x1478","None","","","","crusader_ne_segments.csv"
"85","code","0x9E000","0x404","Foothold","Allocator work token helpers","token reserve/release and commit helpers","Needs clearer subsystem naming","crusader_decompilation_notes.md"
"86","code","0x9E600","0x40F6","None","","","","crusader_ne_segments.csv"
"87","code","0xA2800","0x50C","None","","","","crusader_ne_segments.csv"
"88","code","0xA2E00","0x523","None","","","","crusader_ne_segments.csv"
"89","code","0xA3400","0x373","None","","","","crusader_ne_segments.csv"
"90","code","0xA3800","0x9C6","None","","","","crusader_ne_segments.csv"
"91","code","0xA4400","0x6FA","Partial","Init/context and RNG helpers","seg091_func_00fd; seg091_func_014d; rng_set_seed; rng_next_modulo","00fd and 014d still positional","crusader_decompilation_notes.md; plan-mid.md"
"92","code","0xA4E00","0x59E","None","","","","crusader_ne_segments.csv"
"93","code","0xA5600","0x4F1","None","","","","crusader_ne_segments.csv"
"94","code","0xA5E00","0x606","Partial","Tracked handle table control","tracked_entity_handle_table_init; tracked_entity_handle_table_shutdown; tracked_entity_handle_table_clear_and_dispatch","Downstream dispatch tail still unresolved","crusader_decompilation_notes.md"
"95","code","0xA6600","0xC9F","Partial","Cache manager init/reset and 0x4588 runtime callback lifecycle","cache_init; cache_reset_runtime_state; cache_shutdown","Concrete 0x4588 callback object name and nearby no-function callers remain unresolved","crusader_decompilation_notes.md; plan-mid.md"
"96","code","0xA7600","0x582","None","","","","crusader_ne_segments.csv"
"97","code","0xA7E00","0xDB0","None","","","","crusader_ne_segments.csv"
"98","code","0xA8E00","0x68A","None","","","","crusader_ne_segments.csv"
"99","code","0xA9600","0x355","None","","","Possible raw 000e animation overlap mapping not yet normalized","crusader_ne_segments.csv"
"100","code","0xA9C00","0x697","None","","","Possible raw 000e animation overlap mapping not yet normalized","crusader_ne_segments.csv"
"101","code","0xAA400","0x17BC","None","","","Possible raw 000e animation overlap mapping not yet normalized","crusader_ne_segments.csv"
"102","code","0xAC000","0x73C","None","","","Possible raw 000e parser mapping not yet normalized","crusader_ne_segments.csv"
"103","code","0xACA00","0x16CD","None","","","Possible raw 000e parser mapping not yet normalized","crusader_ne_segments.csv"
"104","code","0xAE600","0x41B","None","","","","crusader_ne_segments.csv"
"105","code","0xAEC00","0x9F6","None","","","","crusader_ne_segments.csv"
"106","code","0xAF800","0x1795","None","","","","crusader_ne_segments.csv"
"107","code","0xB1400","0x40C","None","","","","crusader_ne_segments.csv"
"108","code","0xB1A00","0x113F","None","","","","crusader_ne_segments.csv"
"109","code","0xB2E00","0x1424","None","","","High-value gap around 000b:2e00 still unresolved","crusader_ne_segments.csv; crusader_decomp_progress.md"
"110","code","0xB4400","0x4C4","None","","","","crusader_ne_segments.csv"
"111","code","0xB4A00","0x489","None","","","","crusader_ne_segments.csv"
"112","code","0xB5000","0x1670","None","","","","crusader_ne_segments.csv"
"113","code","0xB6A00","0x4A6","None","","","","crusader_ne_segments.csv"
"114","code","0xB7000","0xDF1","None","","","","crusader_ne_segments.csv"
"115","code","0xB8000","0x978","None","","","","crusader_ne_segments.csv"
"116","code","0xB8C00","0xAA3","None","","","","crusader_ne_segments.csv"
"117","code","0xB9A00","0x3157","None","","","","crusader_ne_segments.csv"
"118","code","0xBD400","0xA0A","None","","","","crusader_ne_segments.csv"
"119","code","0xBE200","0x419","None","","","","crusader_ne_segments.csv"
"120","code","0xBE800","0x9AE","None","","","","crusader_ne_segments.csv"
"121","code","0xBF400","0xACE","None","","","","crusader_ne_segments.csv"
"122","code","0xC0200","0x3149","None","","","","crusader_ne_segments.csv"
"123","code","0xC3C00","0xE6D","None","","","","crusader_ne_segments.csv"
"124","code","0xC4E00","0x3DD","None","","","","crusader_ne_segments.csv"
"125","code","0xC5400","0x1A3E","None","","","","crusader_ne_segments.csv"
"126","code","0xC7400","0x402A","None","","","","crusader_ne_segments.csv"
"127","code","0xCC600","0x8F6","None","","","","crusader_ne_segments.csv"
"128","code","0xCD200","0x5D0","None","","","","crusader_ne_segments.csv"
"129","code","0xCDA00","0xD77","None","","","","crusader_ne_segments.csv"
"130","code","0xCEA00","0x47D","None","","","","crusader_ne_segments.csv"
"131","code","0xCF000","0x44D","None","","","","crusader_ne_segments.csv"
"132","code","0xCF600","0x3EB8","None","","","","crusader_ne_segments.csv"
"133","code","0xD3800","0x215A","None","","","","crusader_ne_segments.csv"
"134","code","0xD6000","0xEF0","None","","","","crusader_ne_segments.csv"
"135","code","0xD7000","0x3B7","None","","","","crusader_ne_segments.csv"
"136","code","0xD7600","0x5BD","None","","","","crusader_ne_segments.csv"
"137","code","0xD7E00","0xFBB","None","","","","crusader_ne_segments.csv"
"138","code","0xD9200","0x32E4","None","","","","crusader_ne_segments.csv"
"139","code","0xDCC00","0x984","None","","","","crusader_ne_segments.csv"
"140","code","0xDD800","0xC6F","None","","","","crusader_ne_segments.csv"
"141","code","0xDE600","0x2B","None","","","Short stub-sized segment","crusader_ne_segments.csv"
"142","code","0xDE800","0x4371","None","","","","crusader_ne_segments.csv"
"143","code","0xE3400","0x6F5","None","","","","crusader_ne_segments.csv"
"144","data","0xE3C00","0x8DBC","None","","","Large data segment not yet classified","crusader_ne_segments.csv"
"145","data","0x0","0x0","None","","","Zero-length data segment placeholder","crusader_ne_segments.csv"
1 Segment Type FileOffset Length CoverageStatus KnownSubsystem KeyNamedFunctions Blockers NotesSource
2 1 code 0x37600 0x8400 Deep Gameplay cursor/input/projectiles cursor_update_hover; entity_fire_weapon; projectile_update_tick Broader gameplay subsystem still spans adjacent segments crusader_decompilation_notes.md; plan-mid.md
3 2 code 0x40000 0x2B0 None crusader_ne_segments.csv
4 3 code 0x40400 0x55A None crusader_ne_segments.csv
5 4 code 0x40A00 0x10B1 Foothold Reset/cache entry path runtime_cache_reset_sequence ASYLUM.24 and downstream reset callers still need tighter classification crusader_decompilation_notes.md; plan-mid.md
6 5 code 0x41E00 0x8D7 None crusader_ne_segments.csv
7 6 code 0x42C00 0x75E None crusader_ne_segments.csv
8 7 code 0x43600 0x484 None crusader_ne_segments.csv
9 8 code 0x43C00 0x1386 None crusader_ne_segments.csv
10 9 code 0x45400 0x495 None crusader_ne_segments.csv
11 10 code 0x45A00 0xD92 None crusader_ne_segments.csv
12 11 code 0x46E00 0x5B1 None crusader_ne_segments.csv
13 12 code 0x47600 0x94B None crusader_ne_segments.csv
14 13 code 0x48200 0x1F6C None crusader_ne_segments.csv
15 14 code 0x4AA00 0x526 None crusader_ne_segments.csv
16 15 code 0x4B200 0x1C68 None crusader_ne_segments.csv
17 16 code 0x4D400 0x677 None crusader_ne_segments.csv
18 17 code 0x4DC00 0x1A7 None crusader_ne_segments.csv
19 18 code 0x4E000 0x7E9 None crusader_ne_segments.csv
20 19 code 0x4EA00 0xB4D None crusader_ne_segments.csv
21 20 code 0x4F800 0x878 None crusader_ne_segments.csv
22 21 code 0x50200 0x4486 Partial Timer/event dispatch and entity counting entity_count_by_type_a; input_keyboard_handler copy Needs broader caller-driven expansion crusader_decompilation_notes.md; plan-mid.md
23 22 code 0x55000 0x2BD6 None crusader_ne_segments.csv
24 23 code 0x58200 0x5D6 None crusader_ne_segments.csv
25 24 code 0x58A00 0x6D7 None crusader_ne_segments.csv
26 25 code 0x59200 0x1976 None crusader_ne_segments.csv
27 26 code 0x5AE00 0x4DE None crusader_ne_segments.csv
28 27 code 0x5B400 0x57B None crusader_ne_segments.csv
29 28 code 0x5BA00 0x788 None crusader_ne_segments.csv
30 29 code 0x5C400 0x190A None crusader_ne_segments.csv
31 30 code 0x5E000 0x5071 None crusader_ne_segments.csv
32 31 code 0x64000 0x6EE None crusader_ne_segments.csv
33 32 code 0x64800 0x56A None crusader_ne_segments.csv
34 33 code 0x65000 0x10D7 None crusader_ne_segments.csv
35 34 code 0x66600 0x253A None crusader_ne_segments.csv
36 35 code 0x69400 0xF67 None crusader_ne_segments.csv
37 36 code 0x6A600 0x69F None crusader_ne_segments.csv
38 37 code 0x6AE00 0x636 None crusader_ne_segments.csv
39 38 code 0x6B600 0x2318 None crusader_ne_segments.csv
40 39 code 0x6E200 0x3416 None crusader_ne_segments.csv
41 40 code 0x72200 0x1E7A None crusader_ne_segments.csv
42 41 code 0x74600 0x28D None crusader_ne_segments.csv
43 42 code 0x74A00 0xC9C None crusader_ne_segments.csv
44 43 code 0x75A00 0x336F Partial Gameplay targeting/facing repair cluster entity_set_at_target_update_facing; seg043_func_0090; seg043_func_021c Two repaired functions remain positional and thunk-heavy crusader_decompilation_notes.md; plan-mid.md
45 44 code 0x79400 0x7F8 None crusader_ne_segments.csv
46 45 code 0x79E00 0x200 None crusader_ne_segments.csv
47 46 code 0x7A200 0x7DC None crusader_ne_segments.csv
48 47 code 0x7AC00 0x9B4 None crusader_ne_segments.csv
49 48 code 0x7B800 0x63 None crusader_ne_segments.csv
50 49 code 0x7BA00 0x1E3F None crusader_ne_segments.csv
51 50 code 0x7DE00 0x9C8 None crusader_ne_segments.csv
52 51 code 0x7EA00 0x1D02 None crusader_ne_segments.csv
53 52 code 0x80A00 0x1D65 None crusader_ne_segments.csv
54 53 code 0x82C00 0x10DE None crusader_ne_segments.csv
55 54 code 0x84000 0x5 None Short stub-sized segment crusader_ne_segments.csv
56 55 code 0x84200 0xA06 None crusader_ne_segments.csv
57 56 code 0x85000 0x706 None crusader_ne_segments.csv
58 57 code 0x85A00 0x79B None crusader_ne_segments.csv
59 58 code 0x86400 0x44B None crusader_ne_segments.csv
60 59 code 0x86A00 0x4288 None crusader_ne_segments.csv
61 60 code 0x8B600 0x231 None crusader_ne_segments.csv
62 61 code 0x8BA00 0x1B6C None crusader_ne_segments.csv
63 62 code 0x8DA00 0x85F None crusader_ne_segments.csv
64 63 code 0x8E400 0x519 None crusader_ne_segments.csv
65 64 code 0x8EA00 0x3B1 None crusader_ne_segments.csv
66 65 code 0x8F000 0x5BD None crusader_ne_segments.csv
67 66 code 0x8F800 0x4A9 None crusader_ne_segments.csv
68 67 code 0x8FE00 0x839 None crusader_ne_segments.csv
69 68 code 0x90800 0xB4A None crusader_ne_segments.csv
70 69 code 0x91800 0x2A0 None crusader_ne_segments.csv
71 70 code 0x91C00 0xF24 None crusader_ne_segments.csv
72 71 code 0x92E00 0x6C2 None crusader_ne_segments.csv
73 72 code 0x93600 0xCA1 None crusader_ne_segments.csv
74 73 code 0x94600 0x9AA None crusader_ne_segments.csv
75 74 code 0x95200 0x337 None crusader_ne_segments.csv
76 75 code 0x95600 0x1428 None crusader_ne_segments.csv
77 76 code 0x96E00 0x627 None crusader_ne_segments.csv
78 77 code 0x97600 0x616 None crusader_ne_segments.csv
79 78 code 0x97E00 0x634 None crusader_ne_segments.csv
80 79 code 0x98600 0x421 None crusader_ne_segments.csv
81 80 code 0x98C00 0xF27 Foothold Conditional render/callback dispatch entity_conditional_render_dispatch 0x4588 callback object still lacks a concrete subsystem name crusader_decompilation_notes.md
82 81 code 0x99E00 0x320 None crusader_ne_segments.csv
83 82 code 0x9A200 0x1C8A Partial Allocator sweep and per-head allocation allocator_head_try_alloc_block; allocator_head_free_block; public size wrapper 0x4588 object and finalize path still unresolved crusader_decompilation_notes.md; plan-mid.md
84 83 code 0x9C400 0x31E Foothold Allocator node/header helpers event_queue_push; packed size/header helpers Mostly structural helper layer crusader_decompilation_notes.md
85 84 code 0x9C800 0x1478 None crusader_ne_segments.csv
86 85 code 0x9E000 0x404 Foothold Allocator work token helpers token reserve/release and commit helpers Needs clearer subsystem naming crusader_decompilation_notes.md
87 86 code 0x9E600 0x40F6 None crusader_ne_segments.csv
88 87 code 0xA2800 0x50C None crusader_ne_segments.csv
89 88 code 0xA2E00 0x523 None crusader_ne_segments.csv
90 89 code 0xA3400 0x373 None crusader_ne_segments.csv
91 90 code 0xA3800 0x9C6 None crusader_ne_segments.csv
92 91 code 0xA4400 0x6FA Partial Init/context and RNG helpers seg091_func_00fd; seg091_func_014d; rng_set_seed; rng_next_modulo 00fd and 014d still positional crusader_decompilation_notes.md; plan-mid.md
93 92 code 0xA4E00 0x59E None crusader_ne_segments.csv
94 93 code 0xA5600 0x4F1 None crusader_ne_segments.csv
95 94 code 0xA5E00 0x606 Partial Tracked handle table control tracked_entity_handle_table_init; tracked_entity_handle_table_shutdown; tracked_entity_handle_table_clear_and_dispatch Downstream dispatch tail still unresolved crusader_decompilation_notes.md
96 95 code 0xA6600 0xC9F Partial Cache manager init/reset and 0x4588 runtime callback lifecycle cache_init; cache_reset_runtime_state; cache_shutdown Concrete 0x4588 callback object name and nearby no-function callers remain unresolved crusader_decompilation_notes.md; plan-mid.md
97 96 code 0xA7600 0x582 None crusader_ne_segments.csv
98 97 code 0xA7E00 0xDB0 None crusader_ne_segments.csv
99 98 code 0xA8E00 0x68A None crusader_ne_segments.csv
100 99 code 0xA9600 0x355 None Possible raw 000e animation overlap mapping not yet normalized crusader_ne_segments.csv
101 100 code 0xA9C00 0x697 None Possible raw 000e animation overlap mapping not yet normalized crusader_ne_segments.csv
102 101 code 0xAA400 0x17BC None Possible raw 000e animation overlap mapping not yet normalized crusader_ne_segments.csv
103 102 code 0xAC000 0x73C None Possible raw 000e parser mapping not yet normalized crusader_ne_segments.csv
104 103 code 0xACA00 0x16CD None Possible raw 000e parser mapping not yet normalized crusader_ne_segments.csv
105 104 code 0xAE600 0x41B None crusader_ne_segments.csv
106 105 code 0xAEC00 0x9F6 None crusader_ne_segments.csv
107 106 code 0xAF800 0x1795 None crusader_ne_segments.csv
108 107 code 0xB1400 0x40C None crusader_ne_segments.csv
109 108 code 0xB1A00 0x113F None crusader_ne_segments.csv
110 109 code 0xB2E00 0x1424 None High-value gap around 000b:2e00 still unresolved crusader_ne_segments.csv; crusader_decomp_progress.md
111 110 code 0xB4400 0x4C4 None crusader_ne_segments.csv
112 111 code 0xB4A00 0x489 None crusader_ne_segments.csv
113 112 code 0xB5000 0x1670 None crusader_ne_segments.csv
114 113 code 0xB6A00 0x4A6 None crusader_ne_segments.csv
115 114 code 0xB7000 0xDF1 None crusader_ne_segments.csv
116 115 code 0xB8000 0x978 None crusader_ne_segments.csv
117 116 code 0xB8C00 0xAA3 None crusader_ne_segments.csv
118 117 code 0xB9A00 0x3157 None crusader_ne_segments.csv
119 118 code 0xBD400 0xA0A None crusader_ne_segments.csv
120 119 code 0xBE200 0x419 None crusader_ne_segments.csv
121 120 code 0xBE800 0x9AE None crusader_ne_segments.csv
122 121 code 0xBF400 0xACE None crusader_ne_segments.csv
123 122 code 0xC0200 0x3149 None crusader_ne_segments.csv
124 123 code 0xC3C00 0xE6D None crusader_ne_segments.csv
125 124 code 0xC4E00 0x3DD None crusader_ne_segments.csv
126 125 code 0xC5400 0x1A3E None crusader_ne_segments.csv
127 126 code 0xC7400 0x402A None crusader_ne_segments.csv
128 127 code 0xCC600 0x8F6 None crusader_ne_segments.csv
129 128 code 0xCD200 0x5D0 None crusader_ne_segments.csv
130 129 code 0xCDA00 0xD77 None crusader_ne_segments.csv
131 130 code 0xCEA00 0x47D None crusader_ne_segments.csv
132 131 code 0xCF000 0x44D None crusader_ne_segments.csv
133 132 code 0xCF600 0x3EB8 None crusader_ne_segments.csv
134 133 code 0xD3800 0x215A None crusader_ne_segments.csv
135 134 code 0xD6000 0xEF0 None crusader_ne_segments.csv
136 135 code 0xD7000 0x3B7 None crusader_ne_segments.csv
137 136 code 0xD7600 0x5BD None crusader_ne_segments.csv
138 137 code 0xD7E00 0xFBB None crusader_ne_segments.csv
139 138 code 0xD9200 0x32E4 None crusader_ne_segments.csv
140 139 code 0xDCC00 0x984 None crusader_ne_segments.csv
141 140 code 0xDD800 0xC6F None crusader_ne_segments.csv
142 141 code 0xDE600 0x2B None Short stub-sized segment crusader_ne_segments.csv
143 142 code 0xDE800 0x4371 None crusader_ne_segments.csv
144 143 code 0xE3400 0x6F5 None crusader_ne_segments.csv
145 144 data 0xE3C00 0x8DBC None Large data segment not yet classified crusader_ne_segments.csv
146 145 data 0x0 0x0 None Zero-length data segment placeholder crusader_ne_segments.csv