Function map of cm0102.exe 3.9.68. Generated from the Bosman Edition repo. Do not edit by hand: report a wrong name as an issue.
AI agents named each function from its code, and a review checked every medium and low name. Treat a medium or low name as a hint and read the code before you rely on it. "Cited in" lists research docs of the Bosman Edition repo that name the address.
| Address | Size | Name | Convention | Purpose | Confidence | Model | Cited in |
|---|---|---|---|---|---|---|---|
| 0x48c580 | 30 | Comp::Comp |
thiscall(Comp* this), ret 0 | Constructs the Comp base object, installs the Comp vtable and sets default stage links, flags and the ruling body byte. | high | opus | 2026-10-16-sweep-rulebooks.md |
| 0x48c5f0 | 2 | Comp::get_match_importance |
thiscall(Comp* this, 3 args ignored), returns 20, ret 0xc | Default match importance of a competition, always 20. | high | opus | |
| 0x48c600 | 24 | Comp::scalar_deleting_destructor |
thiscall(Comp* this, byte flags), ret 4 | Restores the Comp vtable, frees the two owned buffers at +0x14 and +0x18 and frees the object when bit 0 of flags is set. | high | opus | |
| 0x48c650 | 18 | Comp::~Comp |
thiscall(Comp* this), ret 0 | Destroys the Comp base object, restores its vtable and frees the owned buffers at +0x14 and +0x18. | high | opus | |
| 0x48c690 | 2 | Comp::add_result |
thiscall(Comp* this, Fixture* fixture, int arg), returns 1, ret 8 | Default result handler of a competition that accepts the result and does nothing else. | high | opus | |
| 0x48c6a0 | 2 | Comp::create_schedule |
thiscall(Comp* this, int stage, short* count, short* extra, int* is_league), returns 0, ret 0x10 | Default schedule query of a competition that returns no schedule. | high | opus | |
| 0x48c6b0 | 2 | Comp::announce_team_status |
thiscall(Comp* this, 5 args ignored), returns 0, ret 0x14 | Default team status announcement of a competition that does nothing. | high | opus | |
| 0x48c6c0 | 2 | Comp::update_staff_records_for_status |
thiscall(Comp* this, 6 args ignored), returns 0, ret 0x18 | Default staff record update for a club's competition status that does nothing. | high | opus | |
| 0x48c6d0 | 330 | Comp::build_fate_news_text |
thiscall(Comp* this, int club_index, char fate, ..., int cup_result, ..., int full_sentence, ...) ret 0x28 | Builds the news headline or sentence for a club that wins, gains promotion, reaches or drops into play-offs, or gets relegated. | high | opus | |
| 0x48cab0 | 133 | Comp::write_progress_text |
thiscall(Comp* this, char* out, int round, short comp_id, short group_id, char status, Comp* stage), ret 0x18 | Writes a club's progress text in a competition, such as Group Stage, Winners, Runners Up or the round name. | high | opus | 2026-10-16-sweep-europe.md |
| 0x48cc70 | 135 | Comp::find_club_progress |
thiscall(Comp* this, Club* club, short* out_stage_code, short* out_round_code, char* out_status), ret 0x10 | Searches the stages from last to first for a club and returns the stage code, its status byte and, in a cup, the round it reached. | medium | opus | |
| 0x48ce10 | 35 | Comp::all_stages_complete |
thiscall(Comp* this), returns bool, ret 0 | Returns true when this head competition and every stage linked after it report complete. | high | opus | 2026-10-16-crash-fixes.md, 2026-10-16-sweep-season-end.md |
| 0x48ce60 | 2 | Comp::check_complete |
thiscall(Comp* this, int arg1, int arg2), returns false, ret 8 | Default completion test of a competition that always reports not complete. | high | opus | |
| 0x48ce70 | 2 | shared_return_zero |
no arguments read, returns 0, ret 0. Used as a thiscall vtable slot and as cdecl(a, b) with the caller cleaning the stack | Shared body that returns 0, used as the default season reset test of competitions and as a test in the kit choice code. | high | opus | |
| 0x48ce80 | 2 | Comp::update_for_date |
thiscall(Comp* this, int arg1, int arg2), returns true, ret 8 | Default daily update of a competition that does nothing and reports success. | high | opus | |
| 0x48ce90 | 2 | shared_return_one |
no arguments read, returns 1, ret 0. Used as a thiscall vtable slot and as cdecl(a, b) with the caller cleaning the stack | Shared body that returns 1, used as the default rule set-up of competitions and as a call in the kit choice code. | high | opus | |
| 0x48cea0 | 1 | shared_noop_ret4_48cea0 |
one stack argument ignored, no return value, ret 4 | Shared empty body that drops one argument, used for default competition save slots and one awards slot. | high | opus | |
| 0x48ceb0 | 2 | shared_return_zero_ret4 |
one stack argument ignored, returns 0, ret 4 | Shared body that drops one argument and returns 0, used for the default competition load slots. | high | opus | |
| 0x48cec0 | 263 | Comp::get_current_stage |
thiscall(Comp* this), returns Comp* stage, ret 0 | Returns the first stage that is not complete, stepping back to the start of a group set when a cup stage has not begun. | medium | opus | |
| 0x48d200 | 43 | Comp::get_stage |
thiscall(Comp* this, int index), returns Comp*, ret 4 | Returns the stage at an index, this object for index -1, or asserts when the index is out of range. | medium | opus | |
| 0x48d2b0 | 108 | Comp::get_first_stage_of_group |
thiscall(Comp* this, int index), returns int index, ret 4 | Walks back from a stage index while the stages map to the same group competition and returns the first such index. | medium | opus | |
| 0x48d410 | 64 | Comp::are_round_fixtures_known |
thiscall(Comp* this, int stage, int round), returns bool, ret 8 | Returns true when a stage is a league, or the round is before the current cup round, or is the current last round with code 0x8c. | medium | opus | |
| 0x48d500 | 412 (+5 unwind) | Comp::build_match_date_list |
thiscall(Comp* this, int* out_count), returns 20-byte entry array, ret 4 | Builds a date sorted list of all match days of every stage, with stage, round and date in each 20-byte entry. | medium | opus | 2026-10-14-widescreen-inventory.md |
| 0x48da90 | 93 | comp_compare_fixture_list_entries |
cdecl(const Entry* a, const Entry* b) returns int, ret 0 | Orders two 0x14-byte fixture list entries by date, then by competition record word +0x69 descending, then by the stage label text. | high | opus | |
| 0x48db80 | 123 | Comp::includes_club |
thiscall(Comp* this, Club* club) returns bool, ret 4 | Returns true when a club takes part in the competition, by its division and nation, else by a scan of each stage team list. | medium | opus | |
| 0x48dcd0 | 41 | comp_key_nation_entry_from_active_index |
cdecl(char active_index) returns int entry index, ret 0 | Returns the key nation table entry whose active index byte matches the argument, else shows a version error and returns 3. | high | opus | |
| 0x48dd70 | 137 | comp_active_key_nation_of_fixture |
cdecl(ClubComp* comp, Fixture* fixture) returns char active index, ret 0 | Returns the active key nation index that owns a fixture, from the competition nation or, for friendlies, from the nations of both clubs. | high | sonnet | 2026-10-15-holiday-next-match-inventory.md |
| 0x48dee0 | 36 | comp_active_key_nation_of_club |
cdecl(Club* club) returns char active index, ret 0 | Returns the active key nation index of a club nation, or 0 for a national team and 3 when its nation has no active entry. | high | opus | 2026-10-15-holiday-next-match-inventory.md, 2026-10-16-foreign-and-tactics-positions.md |
| 0x48df40 | 32 | comp_active_key_nation_of_stadium |
cdecl(Stadium* stadium) returns char active index, ret 0 | Returns the active key nation index of the nation of the stadium's city, or 3 when no active key nation matches. | medium | opus | |
| 0x48dfa0 | 164 | Comp::get_club_label_text |
thiscall(Comp* this, char* out, Club* club, int stage_index) returns char*, ret 0xc | Writes a short label for a club into a buffer, as its league position ordinal in a table stage, else its division or nation code. | medium | opus | |
| 0x48e180 | 2 | Comp::get_table_layout_type |
thiscall(Comp* this) returns char 2, ret 0 | Returns 2 as the default layout code that the competition history screens read to add the Winners tab and choose its columns. | medium | opus | |
| 0x48e190 | 17 | Comp::get_fixture_match_importance |
thiscall(Comp* this, Fixture* fixture, int arg1, int arg2), ret 0xc | Picks the stage of a fixture from its stage byte and forwards the match importance query to that stage object. | high | opus | |
| 0x48e1c0 | 132 | Comp::collect_club_list |
thiscall(Comp* this, Club*** out_list) returns short count, ret 8 | Allocates an array and fills it with up to 200 distinct clubs from all stages of the competition, returning the count. | high | opus | 2026-10-14-widescreen-inventory.md, 2026-10-16-sweep-europe.md |
| 0x48e360 | 9 | Comp::counts_for_fixture_clash |
thiscall(Comp* this, Fixture* fixture, Fixture* other) returns bool, ret 8 | Returns true when a fixture round id has round digit 0 or is 1000 or more, so the checker records a clash. | medium | opus | 2026-10-16-sweep-europe.md |
| 0x48e380 | 30 | Comp::set_club_progress |
thiscall(Comp* this, Club* club, int arg, char code1, char code2, char code3), ret 0x14 | Stores the three stage codes of a club in its Comp_Stats entry, or forwards the call to the parent competition object. | high | opus | |
| 0x48e3e0 | 134 (+1 unwind) | Comp::send_prize_money_news |
thiscall(Comp* this, Club* club, int64 cash, char position, short round, Fixture* fixture, char kind), ret 0x1c | Sends a news item of type 0x1a to a human manager when the prize money for a club reaches fifty times its reputation. | high | opus | |
| 0x48e590 | 379 (+2 unwind) | Comp::write_prize_money_news_text |
thiscall(Comp* this, NewsItem* item, int full_text), ret 0xc | Writes the headline or body text of a prize money news item for a final position, a round, a title, runners up or a match. | high | opus | |
| 0x48ea40 | 52 (+1 unwind) | Comp::send_tv_rights_news |
thiscall(Comp* this, Club* club, int cash), ret 8 | Sends a news item of type 0x1f with the TV rights money of a club to its human manager. | high | opus | |
| 0x48eb00 | 155 (+2 unwind) | Comp::write_tv_rights_news_text |
thiscall(Comp* this, NewsItem* item, int full_text), ret 0xc | Writes the headline or the body text of a news item about the TV rights money a club receives for a season. | high | opus | |
| 0x48ece0 | 98 (+1 unwind) | Comp::send_promotion_relegation_override_news |
thiscall(Comp* this, Comp* other_comp, Club* club, Club* parent_club, char kind), ret 0x10 | Posts a news item of type 0x23 for a club forced down by its parent club or refused promotion, to this and the other competition. | high | opus | |
| 0x48ee40 | 259 | Comp::write_promotion_relegation_override_news_text |
thiscall(Comp* this, NewsItem* item, int full_text), ret 0xc | Writes the text of a news item for a reserve club relegated because of its parent club, or a promotion cancelled for the stadium. | high | opus | 2026-10-16-stadium-research.md |
| 0x48f150 | 140 | Comp::is_club_still_in_contention |
thiscall(Comp* this, Club* club) returns bool, ret 4 | Returns true while a club is still in contention in a competitive competition, false once its stats or league status show it is out. | medium | opus | |
| 0x48f2d0 | 34 | Comp::set_fixture_substitutes |
thiscall(Comp* this, Fixture* fixture), ret 4 | Packs the named and used substitute counts of the competition into the substitutes word of a fixture, or defers to the parent competition. | high | opus | 2026-10-16-research-name-check.md, 2026-10-16-sweep-season-end.md |
| 0x48f340 | 65 (+1 unwind) | Comp::get_first_schedule_date |
thiscall(Comp* this, Date* out) returns Date*, ret 4 | Builds the schedule of the competition, returns the date of its first entry offset by the season year, and frees the schedule. | medium | opus | |
| 0x48f410 | 20 | comp_compare_average_rows |
cdecl(const AvgRow* a, const AvgRow* b) returns int, ret 0 | Orders two 0x13-byte relegation average rows by the float points average descending, then by the club pointer. | medium | opus | |
| 0x48f450 | 29 | comp_compare_average_rows_by_season |
cdecl(const AvgRow* a, const AvgRow* b) returns int, ret 0 | Orders two 0x13-byte relegation average rows by the points of the season column that a global index selects, descending, then by club. | medium | opus |