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 |
|---|---|---|---|---|---|---|---|
| 0x4dc9b0 | 36 (+1 unwind) | contract_screens_news_offer_contract_action |
cdecl(int news_id_a, int news_id_b) ret 0 | Finds the news item and opens the contract negotiation screen for the player in slot 2, as the Offer Contract news button. | high | opus | |
| 0x4dca40 | 68 (+1 unwind) | contract_screens_news_transfer_request_respond_action |
cdecl(int news_id_a, int news_id_b) ret 0 | Finds the transfer request news item and opens the transfer request screen with the news ids, club and player as parameters. | high | opus | |
| 0x4dcb30 | 169 | contract_screens_build_transfer_request_screen |
cdecl(void) ret 0 | Builds the Transfer Request screen that asks whether to put the player on the transfer list at his own request. | high | opus | |
| 0x4dcd70 | 300 | contract_screens_handle_transfer_request_screen |
cdecl(short area_id) ret 0, returns int | Handles the Transfer Request screen buttons, listing the player and posting the news on yes or refusing and cutting his morale. | high | opus | |
| 0x4dd0f0 | 465 | contract_screens_offer_contract_to_staff |
cdecl(Staff* staff, TRANSFER_OFFER** transfer_offer or null, int open_negotiation, int force_role_screen) ret 0 | Chooses the squad status and job for a staff contract offer, then opens the Set Role At Club screen or the Offer Contract screen. | high | opus | |
| 0x4dd6c0 | 671 | contract_screens_build_set_role_screen |
cdecl(void) ret 0, reads screen params 0 to 6 | Builds the Set Role At Club screen with the squad status list, the job description list, board refusal notes and the Back and Set buttons. | high | opus | |
| 0x4ddf20 | 252 | contract_screens_handle_set_role_screen |
cdecl(short area_id) ret 0, returns int action code | Handles the Set Role At Club screen, storing the chosen squad status or job and opening the Offer Contract screen on Set. | high | opus | |
| 0x4de1f0 | 297 (+1 unwind) | contract_screens_open_offer_contract_screen |
cdecl(Staff* staff, char squad_status, char job, short tab) ret 0 | Opens the Offer Contract screen for a staff member and sets its parameters from the club transfer budget, the player value and the wage limits. | high | opus | |
| 0x4de5d0 | 393 (+1 unwind) | contract_screens_open_offer_contract_screen_for_transfer |
cdecl(TRANSFER_OFFER** transfer_offer or null, Staff* staff, char squad_status, char job, short tab) ret 0 | Opens the Offer Contract screen for a staff member linked to a transfer offer, taking the offer's clubs and fee off the transfer budget. | high | opus | |
| 0x4deac0 | 1723 (+9 unwind) | contract_screens_build_offer_contract_screen |
cdecl(void) ret 0, reads screen params | Builds the Offer Contract screen with the Basic, Bonuses and Clauses tabs, drawing the clauses tab itself and the Back, Cancel and Offer buttons. | high | opus | |
| 0x4e0180 | 29 | contract_screens_add_disabled_menu_item |
thiscall(ScreenManager *this, int area, const char *text) ret 8 | Adds a menu item with no link to a display area of the current screen, for release fee values above the allowed amount. | medium | opus | |
| 0x4e01e0 | 424 | contract_screens_handle_offer_contract_screen |
cdecl(short area_id) ret 0, returns int action code | Handles the Offer Contract screen tabs, rules, Cancel and Offer buttons, then passes other actions to the basic, bonuses and clauses tab handlers. | high | opus | |
| 0x4e06a0 | 19 | contract_screens_close_offer_contract_screen |
cdecl(void) ret 0 | Frees the player's demanded contract held in screen parameter 2 when the Offer Contract screen closes, and clears that parameter. | high | opus | |
| 0x4e06e0 | 2008 (+9 unwind) | contract_screens_build_basic_terms_tab |
cdecl(STAFF_CONTRACT* offer, STAFF_CONTRACT* demand, Staff* staff, int top, int bottom) ret 0 | Draws the Basic tab of the Offer Contract screen with wage, signing on fee, start and expiry dates and contract type, or the refusal reason. | high | opus | |
| 0x4e2070 | 31 | contract_screens_build_basic_terms_tab_fragment_4e2070 |
none, no real entry point, falls inside 0x4e06e0 | Marks a false function start inside the Basic tab builder, at the jump that draws the transfer window note as wrapped text. | high | opus | |
| 0x4e2280 | 1082 (+6 unwind) | contract_screens_handle_basic_terms_action |
cdecl(short area_id) ret 0, returns int action code or 0 | Handles the Basic tab actions of the Offer Contract screen, changing wage period, wage, expiry date, month to month, part time, squad status and job. | high | opus | user32.c |
| 0x4e30f0 | 678 (+5 unwind) | contract_screens_build_bonuses_tab |
cdecl(STAFF_CONTRACT* offer, STAFF_CONTRACT* demand, Staff* staff, int top, int bottom) ret 0 | Draws the Bonuses tab of the Offer Contract screen, one row a bonus type with its cash value, add and remove buttons and player requests. | high | opus | |
| 0x4e39c0 | 585 (+2 unwind) | contract_screens_handle_bonuses_action |
cdecl(short area_id) ret 0, returns int action code or 0 | Handles the Bonuses tab actions of the Offer Contract screen, stepping bonus values, setting them from popups and adding or clearing bonus slots. | high | opus | |
| 0x4e4160 | 440 (+2 unwind) | contract_screens_handle_clauses_action |
cdecl(short area_id) ret 0, returns int action code or 0 | Handles the Clauses tab actions of the Offer Contract screen, setting clause flags and stepping or choosing the release fee. | high | opus | |
| 0x4e4730 | 78 | contract_screens_open_staff_offer_contract_screen |
cdecl(TRANSFER_OFFER** transfer_offer or null, char p3, char job, int p5, int p7, char p6) ret 0 | Opens the staff Offer Contract confirm dialog and stores the transfer offer, its clubs and the offer settings as screen parameters. | high | opus | |
| 0x4e4820 | 489 (+3 unwind) | contract_screens_build_staff_offer_contract_screen |
cdecl(void) ret 0, reads screen params | Builds the confirm dialog that offers a contract to a staff member or withdraws the offer, with compensation fee and transfer window notes. | high | opus | |
| 0x4e4ea0 | 416 (+2 unwind) | contract_screens_handle_staff_offer_contract_screen |
cdecl(short area_id), returns int action code, ret 0 | Handles the staff Offer Contract dialog, withdrawing the offer when asked or adding the contract offer and any compensation transfer offer on confirm. | high | opus | |
| 0x4e53e0 | 16 | contract_screens_open_terminate_contract_screen |
cdecl(Staff* staff), ret 0 | Opens the Terminate Contract dialog with its builder and handler and stores the staff member as screen parameter 0. | high | opus | |
| 0x4e5420 | 148 | contract_screens_build_terminate_contract_screen |
cdecl(void), ret 0 | Builds the Terminate Contract dialog that asks whether to end the staff member's contract, with the staff picture and Yes and No buttons. | high | opus | |
| 0x4e5610 | 118 | contract_screens_handle_terminate_contract_screen |
cdecl(short area_id), returns int action code, ret 0 | Handles the Terminate Contract dialog, removing the contract, freeing the staff member and refreshing scouts or training on yes. | high | opus | |
| 0x4e5770 | 59 (+1 unwind) | contract_screens_news_negotiate_action |
cdecl(int news_id_a, int news_id_b), ret 0 | Opens contract negotiation for the staff member of a news item, passing the transfer offer of slot 7 for type 0xfa4 news. | high | opus | |
| 0x4e5850 | 79 | compare_squad_players_by_appearances_then_reputation |
cdecl(Staff** a, Staff** b), returns int, ret 0 | Orders squad members by appearances in stats category 6, most first, then by home reputation, for qsort. | high | opus | |
| 0x4e5920 | 25 | credits_screen_open |
cdecl(void), ret 0 | Opens the Game Credits screen with its builder and handler and clears screen parameters 0 to 2. | high | opus | 2026-10-13-screen-stack-inventory.md |
| 0x4e5970 | 1241 | credits_add_sports_interactive_rows |
cdecl(void), ret 0 | Adds the Sports Interactive heading and its staff roles and names, from Chairman to QA Manager, to the credits list. | high | opus | |
| 0x4e6a70 | 247 | credits_add_jask_xbox_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Jask Consultants heading and the Xbox Design and Programming credit to the credits list. | high | opus | |
| 0x4e6dc0 | 2708 | credits_add_research_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Research heading and one row per nation with its head researchers to the credits list. | high | opus | |
| 0x4e92f0 | 2299 | credits_add_testing_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Testing heading and the tester names in two columns to the credits list. | high | opus | |
| 0x4eb110 | 261 | credits_add_feral_rows |
cdecl(void), ret 0 | Adds the Feral Interactive heading and its producer credit to the credits list. | high | opus | |
| 0x4eb480 | 1776 | credits_add_eidos_rows |
cdecl(void), ret 0 | Adds the Eidos Interactive heading and its producer, marketing, localisation and mastering credits to the credits list. | high | opus | |
| 0x4eccd0 | 1003 | credits_add_translation_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Translation and Proof-Reading heading and each language with its translators to the credits list. | high | opus | |
| 0x4eda90 | 41320 | credits_add_additional_research_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Additional Research heading and several hundred contributor names in two columns to the credits list. | high | opus | |
| 0x4f2070 | 35754 | credits_add_additional_research_rows_fragment_4f2070 |
none, no real entry point, falls inside 0x4eda90 | Marks a false function start inside the Additional Research credits builder, where Chinese and Croatian researcher names are added. | high | opus | |
| 0x500030 | 17878 | credits_add_additional_research_rows_fragment_500030 |
none, no real entry point, falls inside 0x4eda90 | Marks a false function start inside the Additional Research credits builder, where Polish and Portuguese researcher names are added. | high | opus | |
| 0x502070 | 15297 | credits_add_additional_research_rows_fragment_502070 |
none, no real entry point, falls inside 0x4eda90 | Marks a false function start inside the Additional Research credits builder, where Portuguese and Russian researcher names are added. | high | opus | |
| 0x503a50 | 13239 | credits_add_additional_research_rows_fragment_503a50 |
none, no real entry point, falls inside 0x4eda90 | Marks a false function start inside the Additional Research credits builder, in the argument pushes of a row where Scottish researcher names are added. | high | opus | |
| 0x50e000 | 3907 | credits_add_additional_testing_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Additional Testing heading and the external tester names in two columns to the credits list. | high | opus | |
| 0x511320 | 1844 | credits_add_special_thanks_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Special Thanks heading, named helpers and the thanks to every CM fan in several languages to the credits list. | high | opus | |
| 0x512d40 | 309 | credits_add_best_wishes_rows |
cdecl(void), ret 0 (Ghidra shows an unused ECX value as fastcall) | Adds the Best Wishes To heading and the couples who got married to the credits list. | high | opus | |
| 0x513180 | 160 | credits_screen_build |
cdecl(void), ret 0 | Builds the Game Credits screen with title, back and next buttons and a scrolling list, then calls every credit section builder. | high | opus | |
| 0x5133c0 | 75 | credits_screen_handle_action |
cdecl(short area_id), returns int action code, ret 0 | Handles the Game Credits screen, storing the list selection and switching page on action 100, else passing the action to the menu bar. | high | opus | 2026-10-13-screen-stack-inventory.md |
| 0x5134c0 | 20 | web_sites_screen_open |
cdecl(void), ret 0 | Opens the Web Sites screen with its builder and clears screen parameters 0 and 1. | high | opus | 2026-10-13-screen-stack-inventory.md |
| 0x513500 | 181 | web_sites_add_publisher_rows |
cdecl(void), ret 0 | Adds the Eidos Interactive heading with The publishers and www.eidos.co.uk to the Web Sites list. | high | opus | |
| 0x513750 | 228 | web_sites_add_fan_club_links |
cdecl(void), ret 0 | Reads fancluburls.txt from the data folder and adds an Unofficial Sites heading and one row per listed http link. | high | opus | |
| 0x513a20 | 304 | web_sites_screen_build |
cdecl(void), ret 0 | Builds the Web Sites screen with the Sports Interactive and official messageboard links, then the publisher and fan club rows. | high | opus |