Add hook debug tooling and refine RT3 atlas

This commit is contained in:
Jan Petykiewicz 2026-04-08 16:31:33 -07:00
commit 57bf0666e0
38 changed files with 14437 additions and 873 deletions

View file

@ -1,7 +1,2 @@
query_address,function_address,name,size,calling_convention,signature,caller_count,callers,callee_count,callees,data_ref_count,data_refs,entry_excerpt
0x00595440,0x00595440,multiplayer_transport_init_selector_slot,100,cdecl,"fcn.00595440(int32_t arg_4h, int32_t arg_39ch, int32_t arg_59bh);",2,0x00593841@0x00593790:multiplayer_transport_handle_names_query_response; 0x00593b25@0x00593b00:multiplayer_transport_handle_selector_update_response,3,0x00595490->0x005951f0:multiplayer_transport_service_status_pump; 0x00595499->0x00596fc0:multiplayer_transport_submit_profile_key_query_bundle_default; 0x0059547f->0x005a18a0:string_copy_bounded_zerofill,1,0x0059544f->0x005c87a8," 595420: movl $0x89ffff98, %esp # imm = 0x89FFFF98 | 595425: movl $0x9a4, %esi # imm = 0x9A4 | 59542a: popl %edi | 59542b: popl %esi | 59542c: addl $0x190, %esp # imm = 0x190 | 595432: retl | 595433: nop | 595434: nop | 595435: nop | 595436: nop | 595437: nop | 595438: nop | 595439: nop | 59543a: nop | 59543b: nop | 59543c: nop | 59543d: nop | 59543e: nop | 59543f: nop | 595440: movl 0x4(%esp), %eax | 595444: testl %eax, %eax | 595446: pushl %ebp | 595447: pushl %esi | 595448: pushl %edi | 595449: movl %edx, %edi | 59544b: movl %ecx, %esi | 59544d: jne 0x595454 <.text+0x194454> | 59544f: movl $0x5c87a8, %eax # imm = 0x5C87A8 | 595454: movl %edi, %ecx | 595456: shll $0x9, %ecx | 595459: leal (%ecx,%esi), %ebp | 59545c: pushl $0x200 # imm = 0x200"
0x00596da0,0x00596da0,multiplayer_transport_submit_profile_key_query_bundle,497,cdecl,fcn.00596da0(uint_least32_t arg_4h);,2,0x00596faa@0x00596fa0:multiplayer_transport_submit_profile_key_query_bundle_with_context; 0x00596fc7@0x00596fc0:multiplayer_transport_submit_profile_key_query_bundle_default,13,0x00596eb6->0x0058ec50:multiplayer_transport_submit_getkey_command_and_wait; 0x00596f7a->0x0058ef20:multiplayer_transport_submit_setchankey_pair_list_command_and_wait; 0x00596e68->0x0058f380:tracked_heap_alloc_with_header; 0x00596f03->0x0058f380:tracked_heap_alloc_with_header; 0x00596ebf->0x0058f3c0:tracked_heap_free_with_header; 0x00596f83->0x0058f3c0:tracked_heap_free_with_header; 0x00596e56->0x0058f8f0:fcn.0058f8f0; 0x00596edf->0x0058f8f0:fcn.0058f8f0; 0x00596df0->0x0058f9c0:hashed_entry_table_lookup; 0x00596e22->0x0058f9c0:hashed_entry_table_lookup; 0x00596e36->0x0058f9c0:hashed_entry_table_lookup; 0x00596e8a->0x0058fa00:generic_callback_list_for_each; 0x00596f21->0x0058fa00:generic_callback_list_for_each,9,"0x00596e85->0x00596c80; 0x00596f1c->0x00596c80; 0x00596eaf->0x00596c90; 0x00596f67->0x00596ce0; 0x00596f6e->0x005e1e1c; 0x00596e1a->0x005e2260:""b_flags""; 0x00596f4d->0x005e2260:""b_flags""; 0x00596de8->0x005e22e8:""username""; 0x00596f32->0x005e22e8:""username"""," 596d80: calll 0x596b90 <.text+0x195b90> | 596d85: addl $0x4, %esi | 596d88: decl %ebx | 596d89: jne 0x596d70 <.text+0x195d70> | 596d8b: popl %edi | 596d8c: popl %esi | 596d8d: popl %ebp | 596d8e: popl %ebx | 596d8f: retl $0x18 | 596d92: nop | 596d93: nop | 596d94: nop | 596d95: nop | 596d96: nop | 596d97: nop | 596d98: nop | 596d99: nop | 596d9a: nop | 596d9b: nop | 596d9c: nop | 596d9d: nop | 596d9e: nop | 596d9f: nop | 596da0: subl $0x10, %esp | 596da3: pushl %ebp | 596da4: pushl %edi | 596da5: movl %eax, %edi | 596da7: movl 0x390(%esi,%edi,4), %eax | 596dae: xorl %ebp, %ebp | 596db0: cmpl %ebp, %eax | 596db2: jne 0x596dc1 <.text+0x195dc1> | 596db4: cmpl %ebp, 0x384(%esi,%edi,4) | 596dbb: je 0x596f89 <.text+0x195f89>"
0x00596fa0,0x00596fa0,multiplayer_transport_submit_profile_key_query_bundle_with_context,19,cdecl,fcn.00596fa0(int32_t arg_4h);,1,0x0059f935,1,0x00596faa->0x00596da0:multiplayer_transport_submit_profile_key_query_bundle,0,," 596f80: decl %esp | 596f81: andb $0x18, %al | 596f83: calll 0x58f3c0 <.text+0x18e3c0> | 596f88: popl %ebx | 596f89: popl %edi | 596f8a: popl %ebp | 596f8b: addl $0x10, %esp | 596f8e: retl $0x4 | 596f91: nop | 596f92: nop | 596f93: nop | 596f94: nop | 596f95: nop | 596f96: nop | 596f97: nop | 596f98: nop | 596f99: nop | 596f9a: nop | 596f9b: nop | 596f9c: nop | 596f9d: nop | 596f9e: nop | 596f9f: nop | 596fa0: pushl %esi | 596fa1: movl %edx, %eax | 596fa3: movl 0x8(%esp), %edx | 596fa7: pushl %edx | 596fa8: movl %ecx, %esi | 596faa: calll 0x596da0 <.text+0x195da0> | 596faf: popl %esi | 596fb0: retl $0x4 | 596fb3: nop | 596fb4: nop | 596fb5: nop | 596fb6: nop | 596fb7: nop | 596fb8: nop | 596fb9: nop | 596fba: nop | 596fbb: nop | 596fbc: nop | 596fbd: nop | 596fbe: nop | 596fbf: nop"
0x00596fc0,0x00596fc0,multiplayer_transport_submit_profile_key_query_bundle_default,14,cdecl,fcn.00596fc0();,2,0x00595499@0x00595440:multiplayer_transport_init_selector_slot; 0x0059fbb5,1,0x00596fc7->0x00596da0:multiplayer_transport_submit_profile_key_query_bundle,0,," 596fa0: pushl %esi | 596fa1: movl %edx, %eax | 596fa3: movl 0x8(%esp), %edx | 596fa7: pushl %edx | 596fa8: movl %ecx, %esi | 596faa: calll 0x596da0 <.text+0x195da0> | 596faf: popl %esi | 596fb0: retl $0x4 | 596fb3: nop | 596fb4: nop | 596fb5: nop | 596fb6: nop | 596fb7: nop | 596fb8: nop | 596fb9: nop | 596fba: nop | 596fbb: nop | 596fbc: nop | 596fbd: nop | 596fbe: nop | 596fbf: nop | 596fc0: pushl %esi | 596fc1: movl %edx, %eax | 596fc3: pushl $0x0 | 596fc5: movl %ecx, %esi | 596fc7: calll 0x596da0 <.text+0x195da0> | 596fcc: popl %esi | 596fcd: retl | 596fce: nop | 596fcf: nop | 596fd0: movl 0x4(%esp), %eax | 596fd4: pushl %esi | 596fd5: movl %edx, %esi | 596fd7: movl 0x398(%eax), %edx | 596fdd: testl %edx, %edx | 596fdf: pushl %edi"
0x00596fd0,0x00596fd0,multiplayer_transport_dispatch_status_route_event,219,cdecl,data.00596fd0(int32_t arg_4h);,0,,6,0x00597017->0x0058bce0:fcn.0058bce0; 0x00597054->0x0058bce0:fcn.0058bce0; 0x00597029->0x0058cd40:fcn.0058cd40; 0x0059703f->0x0058cd40:fcn.0058cd40; 0x0059706d->0x0058cd40:fcn.0058cd40; 0x00597084->0x0058cd40:fcn.0058cd40,3,"0x00597008->0x005970ac; 0x00597001->0x005970c4; 0x0059704d->0x005ce1c8:""openstaging"""," 596fb0: retl $0x4 | 596fb3: nop | 596fb4: nop | 596fb5: nop | 596fb6: nop | 596fb7: nop | 596fb8: nop | 596fb9: nop | 596fba: nop | 596fbb: nop | 596fbc: nop | 596fbd: nop | 596fbe: nop | 596fbf: nop | 596fc0: pushl %esi | 596fc1: movl %edx, %eax | 596fc3: pushl $0x0 | 596fc5: movl %ecx, %esi | 596fc7: calll 0x596da0 <.text+0x195da0> | 596fcc: popl %esi | 596fcd: retl | 596fce: nop | 596fcf: nop | 596fd0: movl 0x4(%esp), %eax | 596fd4: pushl %esi | 596fd5: movl %edx, %esi | 596fd7: movl 0x398(%eax), %edx | 596fdd: testl %edx, %edx | 596fdf: pushl %edi | 596fe0: je 0x597077 <.text+0x196077> | 596fe6: movl 0xb44(%eax), %edx | 596fec: testl %edx, %edx | 596fee: je 0x596ff9 <.text+0x195ff9>"
0x005973d0,0x005973d0,multiplayer_transport_try_connect_status_route,170,cdecl,fcn.005973d0(int32_t arg_4h);,2,0x0058daf1@0x0058dae0:fcn.0058dae0; 0x005965be@0x005965a0:multiplayer_transport_try_connect_status_route_once,4,0x00597460->0x0058bc90:fcn.0058bc90; 0x0059743c->0x0058c9b0:fcn.0058c9b0; 0x0059742d->0x0058cc40:fcn.0058cc40; 0x005973e7->0x00597350:multiplayer_transport_release_status_route,7,0x0059740f->0x00596fd0; 0x0059740a->0x005970e0; 0x00597405->0x00597180; 0x00597400->0x005971b0; 0x005973fb->0x00597270; 0x005973f6->0x005972c0; 0x0059745b->0x00597330," 5973b0: pushl %esi | 5973b1: movl %ecx, %esi | 5973b3: movl 0x1ecc(%esi), %ecx | 5973b9: testl %ecx, %ecx | 5973bb: je 0x5973cc <.text+0x1963cc> | 5973bd: calll 0x58cfd0 <.text+0x18bfd0> | 5973c2: movl $0x0, 0x1ecc(%esi) | 5973cc: popl %esi | 5973cd: retl | 5973ce: nop | 5973cf: nop | 5973d0: pushl %ebx | 5973d1: pushl %esi | 5973d2: movl %ecx, %esi | 5973d4: movl 0xaf0(%esi), %eax | 5973da: testl %eax, %eax | 5973dc: pushl %edi | 5973dd: leal 0xaf0(%esi), %edi | 5973e3: movl %edx, %ebx | 5973e5: je 0x5973ec <.text+0x1963ec> | 5973e7: calll 0x597350 <.text+0x196350> | 5973ec: cmpl $-0x1, %ebx | 5973ef: movl 0xb34(%esi), %eax"
0x004333f0,0x004333f0,shell_setup_build_file_list_records_from_current_root_and_pattern,676,cdecl,"fcn.004333f0(int32_t arg_8h, int32_t arg_c30h);",1,0x004336b8@0x004336a0:shell_setup_file_list_construct_and_scan_dataset,14,0x004334de->0x00433260:fcn.00433260; 0x004335b7->0x00433260:fcn.00433260; 0x00433409->0x004839b0:shell_setup_query_file_list_uses_map_extension_pattern; 0x0043344c->0x004839e0:shell_setup_query_file_list_root_dir_name; 0x00433433->0x00518de0:fcn.00518de0; 0x0043345e->0x00518de0:fcn.00518de0; 0x0043348b->0x00518de0:fcn.00518de0; 0x004334ae->0x00518de0:fcn.00518de0; 0x0043355a->0x00518de0:fcn.00518de0; 0x0043357d->0x00518de0:fcn.00518de0; 0x00433638->0x0051c920:localization_lookup_display_label_by_stem_or_fallback; 0x00433682->0x0051dc60:fcn.0051dc60; 0x004335f7->0x0051df90:fcn.0051df90; 0x0043350c->0x005a125d:fcn.005a125d,8,"0x004334b3->0x005c8190; 0x0043347f->0x005c9d08:""%s%s""; 0x0043354e->0x005c9d08:""%s%s""; 0x00433452->0x005c9d10; 0x0043342e->0x005c9d14:""*.gm*""; 0x00433427->0x005c9d1c:""*.smp""; 0x00433402->0x006cec74; 0x00433438->0x006cec74"," 4333d0: movl %ds, %edi | 4333d2: strw -0x29da1732(%ebx) | 4333d9: ltrw -0x75(%esi) | 4333dd: ldsl 0x5b(%ebp), %ebx | 4333e0: popl %edi | 4333e1: addl $0x404f4, %esp # imm = 0x404F4 | 4333e7: retl $0x4 | 4333ea: nop | 4333eb: nop | 4333ec: nop | 4333ed: nop | 4333ee: nop | 4333ef: nop | 4333f0: subl $0xcf8, %esp # imm = 0xCF8 | 4333f6: pushl %ebx | 4333f7: pushl %ebp | 4333f8: movl %ecx, %ebp | 4333fa: pushl %esi | 4333fb: movl $0x0, (%ebp) | 433402: movl 0x6cec74, %ecx | 433408: pushl %edi | 433409: calll 0x4839b0 <.text+0x829b0> | 43340e: testl %eax, %eax"

1 query_address function_address name size calling_convention signature caller_count callers callee_count callees data_ref_count data_refs entry_excerpt
2 0x00595440 0x004333f0 0x00595440 0x004333f0 multiplayer_transport_init_selector_slot shell_setup_build_file_list_records_from_current_root_and_pattern 100 676 cdecl fcn.00595440(int32_t arg_4h, int32_t arg_39ch, int32_t arg_59bh); fcn.004333f0(int32_t arg_8h, int32_t arg_c30h); 2 1 0x00593841@0x00593790:multiplayer_transport_handle_names_query_response; 0x00593b25@0x00593b00:multiplayer_transport_handle_selector_update_response 0x004336b8@0x004336a0:shell_setup_file_list_construct_and_scan_dataset 3 14 0x00595490->0x005951f0:multiplayer_transport_service_status_pump; 0x00595499->0x00596fc0:multiplayer_transport_submit_profile_key_query_bundle_default; 0x0059547f->0x005a18a0:string_copy_bounded_zerofill 0x004334de->0x00433260:fcn.00433260; 0x004335b7->0x00433260:fcn.00433260; 0x00433409->0x004839b0:shell_setup_query_file_list_uses_map_extension_pattern; 0x0043344c->0x004839e0:shell_setup_query_file_list_root_dir_name; 0x00433433->0x00518de0:fcn.00518de0; 0x0043345e->0x00518de0:fcn.00518de0; 0x0043348b->0x00518de0:fcn.00518de0; 0x004334ae->0x00518de0:fcn.00518de0; 0x0043355a->0x00518de0:fcn.00518de0; 0x0043357d->0x00518de0:fcn.00518de0; 0x00433638->0x0051c920:localization_lookup_display_label_by_stem_or_fallback; 0x00433682->0x0051dc60:fcn.0051dc60; 0x004335f7->0x0051df90:fcn.0051df90; 0x0043350c->0x005a125d:fcn.005a125d 1 8 0x0059544f->0x005c87a8 0x004334b3->0x005c8190; 0x0043347f->0x005c9d08:"%s%s"; 0x0043354e->0x005c9d08:"%s%s"; 0x00433452->0x005c9d10; 0x0043342e->0x005c9d14:"*.gm*"; 0x00433427->0x005c9d1c:"*.smp"; 0x00433402->0x006cec74; 0x00433438->0x006cec74 595420: movl $0x89ffff98, %esp # imm = 0x89FFFF98 | 595425: movl $0x9a4, %esi # imm = 0x9A4 | 59542a: popl %edi | 59542b: popl %esi | 59542c: addl $0x190, %esp # imm = 0x190 | 595432: retl | 595433: nop | 595434: nop | 595435: nop | 595436: nop | 595437: nop | 595438: nop | 595439: nop | 59543a: nop | 59543b: nop | 59543c: nop | 59543d: nop | 59543e: nop | 59543f: nop | 595440: movl 0x4(%esp), %eax | 595444: testl %eax, %eax | 595446: pushl %ebp | 595447: pushl %esi | 595448: pushl %edi | 595449: movl %edx, %edi | 59544b: movl %ecx, %esi | 59544d: jne 0x595454 <.text+0x194454> | 59544f: movl $0x5c87a8, %eax # imm = 0x5C87A8 | 595454: movl %edi, %ecx | 595456: shll $0x9, %ecx | 595459: leal (%ecx,%esi), %ebp | 59545c: pushl $0x200 # imm = 0x200 4333d0: movl %ds, %edi | 4333d2: strw -0x29da1732(%ebx) | 4333d9: ltrw -0x75(%esi) | 4333dd: ldsl 0x5b(%ebp), %ebx | 4333e0: popl %edi | 4333e1: addl $0x404f4, %esp # imm = 0x404F4 | 4333e7: retl $0x4 | 4333ea: nop | 4333eb: nop | 4333ec: nop | 4333ed: nop | 4333ee: nop | 4333ef: nop | 4333f0: subl $0xcf8, %esp # imm = 0xCF8 | 4333f6: pushl %ebx | 4333f7: pushl %ebp | 4333f8: movl %ecx, %ebp | 4333fa: pushl %esi | 4333fb: movl $0x0, (%ebp) | 433402: movl 0x6cec74, %ecx | 433408: pushl %edi | 433409: calll 0x4839b0 <.text+0x829b0> | 43340e: testl %eax, %eax
0x00596da0 0x00596da0 multiplayer_transport_submit_profile_key_query_bundle 497 cdecl fcn.00596da0(uint_least32_t arg_4h); 2 0x00596faa@0x00596fa0:multiplayer_transport_submit_profile_key_query_bundle_with_context; 0x00596fc7@0x00596fc0:multiplayer_transport_submit_profile_key_query_bundle_default 13 0x00596eb6->0x0058ec50:multiplayer_transport_submit_getkey_command_and_wait; 0x00596f7a->0x0058ef20:multiplayer_transport_submit_setchankey_pair_list_command_and_wait; 0x00596e68->0x0058f380:tracked_heap_alloc_with_header; 0x00596f03->0x0058f380:tracked_heap_alloc_with_header; 0x00596ebf->0x0058f3c0:tracked_heap_free_with_header; 0x00596f83->0x0058f3c0:tracked_heap_free_with_header; 0x00596e56->0x0058f8f0:fcn.0058f8f0; 0x00596edf->0x0058f8f0:fcn.0058f8f0; 0x00596df0->0x0058f9c0:hashed_entry_table_lookup; 0x00596e22->0x0058f9c0:hashed_entry_table_lookup; 0x00596e36->0x0058f9c0:hashed_entry_table_lookup; 0x00596e8a->0x0058fa00:generic_callback_list_for_each; 0x00596f21->0x0058fa00:generic_callback_list_for_each 9 0x00596e85->0x00596c80; 0x00596f1c->0x00596c80; 0x00596eaf->0x00596c90; 0x00596f67->0x00596ce0; 0x00596f6e->0x005e1e1c; 0x00596e1a->0x005e2260:"b_flags"; 0x00596f4d->0x005e2260:"b_flags"; 0x00596de8->0x005e22e8:"username"; 0x00596f32->0x005e22e8:"username" 596d80: calll 0x596b90 <.text+0x195b90> | 596d85: addl $0x4, %esi | 596d88: decl %ebx | 596d89: jne 0x596d70 <.text+0x195d70> | 596d8b: popl %edi | 596d8c: popl %esi | 596d8d: popl %ebp | 596d8e: popl %ebx | 596d8f: retl $0x18 | 596d92: nop | 596d93: nop | 596d94: nop | 596d95: nop | 596d96: nop | 596d97: nop | 596d98: nop | 596d99: nop | 596d9a: nop | 596d9b: nop | 596d9c: nop | 596d9d: nop | 596d9e: nop | 596d9f: nop | 596da0: subl $0x10, %esp | 596da3: pushl %ebp | 596da4: pushl %edi | 596da5: movl %eax, %edi | 596da7: movl 0x390(%esi,%edi,4), %eax | 596dae: xorl %ebp, %ebp | 596db0: cmpl %ebp, %eax | 596db2: jne 0x596dc1 <.text+0x195dc1> | 596db4: cmpl %ebp, 0x384(%esi,%edi,4) | 596dbb: je 0x596f89 <.text+0x195f89>
0x00596fa0 0x00596fa0 multiplayer_transport_submit_profile_key_query_bundle_with_context 19 cdecl fcn.00596fa0(int32_t arg_4h); 1 0x0059f935 1 0x00596faa->0x00596da0:multiplayer_transport_submit_profile_key_query_bundle 0 596f80: decl %esp | 596f81: andb $0x18, %al | 596f83: calll 0x58f3c0 <.text+0x18e3c0> | 596f88: popl %ebx | 596f89: popl %edi | 596f8a: popl %ebp | 596f8b: addl $0x10, %esp | 596f8e: retl $0x4 | 596f91: nop | 596f92: nop | 596f93: nop | 596f94: nop | 596f95: nop | 596f96: nop | 596f97: nop | 596f98: nop | 596f99: nop | 596f9a: nop | 596f9b: nop | 596f9c: nop | 596f9d: nop | 596f9e: nop | 596f9f: nop | 596fa0: pushl %esi | 596fa1: movl %edx, %eax | 596fa3: movl 0x8(%esp), %edx | 596fa7: pushl %edx | 596fa8: movl %ecx, %esi | 596faa: calll 0x596da0 <.text+0x195da0> | 596faf: popl %esi | 596fb0: retl $0x4 | 596fb3: nop | 596fb4: nop | 596fb5: nop | 596fb6: nop | 596fb7: nop | 596fb8: nop | 596fb9: nop | 596fba: nop | 596fbb: nop | 596fbc: nop | 596fbd: nop | 596fbe: nop | 596fbf: nop
0x00596fc0 0x00596fc0 multiplayer_transport_submit_profile_key_query_bundle_default 14 cdecl fcn.00596fc0(); 2 0x00595499@0x00595440:multiplayer_transport_init_selector_slot; 0x0059fbb5 1 0x00596fc7->0x00596da0:multiplayer_transport_submit_profile_key_query_bundle 0 596fa0: pushl %esi | 596fa1: movl %edx, %eax | 596fa3: movl 0x8(%esp), %edx | 596fa7: pushl %edx | 596fa8: movl %ecx, %esi | 596faa: calll 0x596da0 <.text+0x195da0> | 596faf: popl %esi | 596fb0: retl $0x4 | 596fb3: nop | 596fb4: nop | 596fb5: nop | 596fb6: nop | 596fb7: nop | 596fb8: nop | 596fb9: nop | 596fba: nop | 596fbb: nop | 596fbc: nop | 596fbd: nop | 596fbe: nop | 596fbf: nop | 596fc0: pushl %esi | 596fc1: movl %edx, %eax | 596fc3: pushl $0x0 | 596fc5: movl %ecx, %esi | 596fc7: calll 0x596da0 <.text+0x195da0> | 596fcc: popl %esi | 596fcd: retl | 596fce: nop | 596fcf: nop | 596fd0: movl 0x4(%esp), %eax | 596fd4: pushl %esi | 596fd5: movl %edx, %esi | 596fd7: movl 0x398(%eax), %edx | 596fdd: testl %edx, %edx | 596fdf: pushl %edi
0x00596fd0 0x00596fd0 multiplayer_transport_dispatch_status_route_event 219 cdecl data.00596fd0(int32_t arg_4h); 0 6 0x00597017->0x0058bce0:fcn.0058bce0; 0x00597054->0x0058bce0:fcn.0058bce0; 0x00597029->0x0058cd40:fcn.0058cd40; 0x0059703f->0x0058cd40:fcn.0058cd40; 0x0059706d->0x0058cd40:fcn.0058cd40; 0x00597084->0x0058cd40:fcn.0058cd40 3 0x00597008->0x005970ac; 0x00597001->0x005970c4; 0x0059704d->0x005ce1c8:"openstaging" 596fb0: retl $0x4 | 596fb3: nop | 596fb4: nop | 596fb5: nop | 596fb6: nop | 596fb7: nop | 596fb8: nop | 596fb9: nop | 596fba: nop | 596fbb: nop | 596fbc: nop | 596fbd: nop | 596fbe: nop | 596fbf: nop | 596fc0: pushl %esi | 596fc1: movl %edx, %eax | 596fc3: pushl $0x0 | 596fc5: movl %ecx, %esi | 596fc7: calll 0x596da0 <.text+0x195da0> | 596fcc: popl %esi | 596fcd: retl | 596fce: nop | 596fcf: nop | 596fd0: movl 0x4(%esp), %eax | 596fd4: pushl %esi | 596fd5: movl %edx, %esi | 596fd7: movl 0x398(%eax), %edx | 596fdd: testl %edx, %edx | 596fdf: pushl %edi | 596fe0: je 0x597077 <.text+0x196077> | 596fe6: movl 0xb44(%eax), %edx | 596fec: testl %edx, %edx | 596fee: je 0x596ff9 <.text+0x195ff9>
0x005973d0 0x005973d0 multiplayer_transport_try_connect_status_route 170 cdecl fcn.005973d0(int32_t arg_4h); 2 0x0058daf1@0x0058dae0:fcn.0058dae0; 0x005965be@0x005965a0:multiplayer_transport_try_connect_status_route_once 4 0x00597460->0x0058bc90:fcn.0058bc90; 0x0059743c->0x0058c9b0:fcn.0058c9b0; 0x0059742d->0x0058cc40:fcn.0058cc40; 0x005973e7->0x00597350:multiplayer_transport_release_status_route 7 0x0059740f->0x00596fd0; 0x0059740a->0x005970e0; 0x00597405->0x00597180; 0x00597400->0x005971b0; 0x005973fb->0x00597270; 0x005973f6->0x005972c0; 0x0059745b->0x00597330 5973b0: pushl %esi | 5973b1: movl %ecx, %esi | 5973b3: movl 0x1ecc(%esi), %ecx | 5973b9: testl %ecx, %ecx | 5973bb: je 0x5973cc <.text+0x1963cc> | 5973bd: calll 0x58cfd0 <.text+0x18bfd0> | 5973c2: movl $0x0, 0x1ecc(%esi) | 5973cc: popl %esi | 5973cd: retl | 5973ce: nop | 5973cf: nop | 5973d0: pushl %ebx | 5973d1: pushl %esi | 5973d2: movl %ecx, %esi | 5973d4: movl 0xaf0(%esi), %eax | 5973da: testl %eax, %eax | 5973dc: pushl %edi | 5973dd: leal 0xaf0(%esi), %edi | 5973e3: movl %edx, %ebx | 5973e5: je 0x5973ec <.text+0x1963ec> | 5973e7: calll 0x597350 <.text+0x196350> | 5973ec: cmpl $-0x1, %ebx | 5973ef: movl 0xb34(%esi), %eax

View file

@ -5,685 +5,108 @@
## Function Targets
### `0x00595440` -> `0x00595440` `multiplayer_transport_init_selector_slot`
### `0x004333f0` -> `0x004333f0` `shell_setup_build_file_list_records_from_current_root_and_pattern`
- Size: `100`
- Size: `676`
- Calling convention: `cdecl`
- Signature: `fcn.00595440(int32_t arg_4h, int32_t arg_39ch, int32_t arg_59bh);`
- Signature: `fcn.004333f0(int32_t arg_8h, int32_t arg_c30h);`
Entry excerpt:
```asm
595420: movl $0x89ffff98, %esp # imm = 0x89FFFF98
595425: movl $0x9a4, %esi # imm = 0x9A4
59542a: popl %edi
59542b: popl %esi
59542c: addl $0x190, %esp # imm = 0x190
595432: retl
595433: nop
595434: nop
595435: nop
595436: nop
595437: nop
595438: nop
595439: nop
59543a: nop
59543b: nop
59543c: nop
59543d: nop
59543e: nop
59543f: nop
595440: movl 0x4(%esp), %eax
595444: testl %eax, %eax
595446: pushl %ebp
595447: pushl %esi
595448: pushl %edi
595449: movl %edx, %edi
59544b: movl %ecx, %esi
59544d: jne 0x595454 <.text+0x194454>
59544f: movl $0x5c87a8, %eax # imm = 0x5C87A8
595454: movl %edi, %ecx
595456: shll $0x9, %ecx
595459: leal (%ecx,%esi), %ebp
59545c: pushl $0x200 # imm = 0x200
4333d0: movl %ds, %edi
4333d2: strw -0x29da1732(%ebx)
4333d9: ltrw -0x75(%esi)
4333dd: ldsl 0x5b(%ebp), %ebx
4333e0: popl %edi
4333e1: addl $0x404f4, %esp # imm = 0x404F4
4333e7: retl $0x4
4333ea: nop
4333eb: nop
4333ec: nop
4333ed: nop
4333ee: nop
4333ef: nop
4333f0: subl $0xcf8, %esp # imm = 0xCF8
4333f6: pushl %ebx
4333f7: pushl %ebp
4333f8: movl %ecx, %ebp
4333fa: pushl %esi
4333fb: movl $0x0, (%ebp)
433402: movl 0x6cec74, %ecx
433408: pushl %edi
433409: calll 0x4839b0 <.text+0x829b0>
43340e: testl %eax, %eax
```
Callers:
- `0x00593841` in `0x00593790` `multiplayer_transport_handle_names_query_response`
- `0x00593b25` in `0x00593b00` `multiplayer_transport_handle_selector_update_response`
- `0x004336b8` in `0x004336a0` `shell_setup_file_list_construct_and_scan_dataset`
Caller xref excerpts:
#### `0x00593841`
#### `0x004336b8`
```asm
593821: movl $0x1000000, %esp # imm = 0x1000000
593826: addb %al, (%eax)
593828: addb %ch, %bl
59382a: orb %bh, %al
59382c: xchgb %al, 0xb(%eax)
59382f: addb %al, (%eax)
593831: addl %eax, (%eax)
593833: addb %al, (%eax)
593835: movl 0x20(%edi), %edx
593838: pushl %ebx
593839: pushl %edx
59383a: movl $0x2, %edx
59383f: movl %esi, %ecx
593841: calll 0x595440 <.text+0x194440>
593846: movl 0x1c(%esp), %eax
59384a: cmpl %ebp, %eax
59384c: jle 0x59387f <.text+0x19287f>
59384e: movl 0x20(%esp), %ebx
593852: movl 0x24(%esp), %ebp
593856: subl %ebx, %ebp
593858: movl %eax, 0x28(%esp)
59385c: leal (%esp), %esp
593860: movl (%ebx,%ebp), %eax
```
#### `0x00593b25`
```asm
593b05: andb $0x20, %al
593b07: movl 0x38(%esi), %eax
593b0a: testl %eax, %eax
593b0c: movl (%esi), %ebx
593b0e: pushl %edi
593b0f: movl %edx, %edi
593b11: movl %edi, 0xc(%esp)
593b15: jne 0x593b93 <.text+0x192b93>
593b17: testl %edi, %edi
593b19: movl 0x1c(%esi), %edx
593b1c: movl %ebx, %ecx
593b1e: je 0x593b67 <.text+0x192b67>
593b20: pushl $0x5c87a8 # imm = 0x5C87A8
593b25: calll 0x595440 <.text+0x194440>
593b2a: movl 0x18(%esp), %eax
593b2e: testl %eax, %eax
593b30: jle 0x593b6e <.text+0x192b6e>
593b32: movl 0x1c(%esp), %edi
593b36: pushl %ebp
593b37: movl 0x24(%esp), %ebp
593b3b: subl %edi, %ebp
593b3d: movl %eax, 0x28(%esp)
593b41: movl (%edi,%ebp), %eax
593b44: movl 0x1c(%esi), %ecx
433698: nop
433699: nop
43369a: nop
43369b: nop
43369c: nop
43369d: nop
43369e: nop
43369f: nop
4336a0: movl 0x4(%esp), %eax
4336a4: pushl %esi
4336a5: movl %ecx, %esi
4336a7: pushl %eax
4336a8: movl %eax, 0x4(%esi)
4336ab: movl $0x0, 0x8(%esi)
4336b2: movl $0x0, (%esi)
4336b8: calll 0x4333f0 <.text+0x323f0>
4336bd: movl %esi, %eax
4336bf: popl %esi
4336c0: retl $0x4
4336c3: nop
4336c4: nop
4336c5: nop
4336c6: nop
4336c7: nop
4336c8: nop
4336c9: nop
4336ca: nop
4336cb: nop
4336cc: nop
4336cd: nop
4336ce: nop
4336cf: nop
4336d0: movl %ecx, %eax
4336d2: xorl %ecx, %ecx
4336d4: movl %ecx, 0x4cae(%eax)
```
Direct internal callees:
- `0x00595490` -> `0x005951f0` `multiplayer_transport_service_status_pump`
- `0x00595499` -> `0x00596fc0` `multiplayer_transport_submit_profile_key_query_bundle_default`
- `0x0059547f` -> `0x005a18a0` `string_copy_bounded_zerofill`
- `0x004334de` -> `0x00433260` `fcn.00433260`
- `0x004335b7` -> `0x00433260` `fcn.00433260`
- `0x00433409` -> `0x004839b0` `shell_setup_query_file_list_uses_map_extension_pattern`
- `0x0043344c` -> `0x004839e0` `shell_setup_query_file_list_root_dir_name`
- `0x00433433` -> `0x00518de0` `fcn.00518de0`
- `0x0043345e` -> `0x00518de0` `fcn.00518de0`
- `0x0043348b` -> `0x00518de0` `fcn.00518de0`
- `0x004334ae` -> `0x00518de0` `fcn.00518de0`
- `0x0043355a` -> `0x00518de0` `fcn.00518de0`
- `0x0043357d` -> `0x00518de0` `fcn.00518de0`
- `0x00433638` -> `0x0051c920` `localization_lookup_display_label_by_stem_or_fallback`
- `0x00433682` -> `0x0051dc60` `fcn.0051dc60`
- `0x004335f7` -> `0x0051df90` `fcn.0051df90`
- `0x0043350c` -> `0x005a125d` `fcn.005a125d`
Data refs:
- `0x0059544f` -> `0x005c87a8`
### `0x00596da0` -> `0x00596da0` `multiplayer_transport_submit_profile_key_query_bundle`
- Size: `497`
- Calling convention: `cdecl`
- Signature: `fcn.00596da0(uint_least32_t arg_4h);`
Entry excerpt:
```asm
596d80: calll 0x596b90 <.text+0x195b90>
596d85: addl $0x4, %esi
596d88: decl %ebx
596d89: jne 0x596d70 <.text+0x195d70>
596d8b: popl %edi
596d8c: popl %esi
596d8d: popl %ebp
596d8e: popl %ebx
596d8f: retl $0x18
596d92: nop
596d93: nop
596d94: nop
596d95: nop
596d96: nop
596d97: nop
596d98: nop
596d99: nop
596d9a: nop
596d9b: nop
596d9c: nop
596d9d: nop
596d9e: nop
596d9f: nop
596da0: subl $0x10, %esp
596da3: pushl %ebp
596da4: pushl %edi
596da5: movl %eax, %edi
596da7: movl 0x390(%esi,%edi,4), %eax
596dae: xorl %ebp, %ebp
596db0: cmpl %ebp, %eax
596db2: jne 0x596dc1 <.text+0x195dc1>
596db4: cmpl %ebp, 0x384(%esi,%edi,4)
596dbb: je 0x596f89 <.text+0x195f89>
```
Callers:
- `0x00596faa` in `0x00596fa0` `multiplayer_transport_submit_profile_key_query_bundle_with_context`
- `0x00596fc7` in `0x00596fc0` `multiplayer_transport_submit_profile_key_query_bundle_default`
Caller xref excerpts:
#### `0x00596faa`
```asm
596f8a: popl %ebp
596f8b: addl $0x10, %esp
596f8e: retl $0x4
596f91: nop
596f92: nop
596f93: nop
596f94: nop
596f95: nop
596f96: nop
596f97: nop
596f98: nop
596f99: nop
596f9a: nop
596f9b: nop
596f9c: nop
596f9d: nop
596f9e: nop
596f9f: nop
596fa0: pushl %esi
596fa1: movl %edx, %eax
596fa3: movl 0x8(%esp), %edx
596fa7: pushl %edx
596fa8: movl %ecx, %esi
596faa: calll 0x596da0 <.text+0x195da0>
596faf: popl %esi
596fb0: retl $0x4
596fb3: nop
596fb4: nop
596fb5: nop
596fb6: nop
596fb7: nop
596fb8: nop
596fb9: nop
596fba: nop
596fbb: nop
596fbc: nop
596fbd: nop
596fbe: nop
596fbf: nop
596fc0: pushl %esi
596fc1: movl %edx, %eax
596fc3: pushl $0x0
596fc5: movl %ecx, %esi
596fc7: calll 0x596da0 <.text+0x195da0>
```
#### `0x00596fc7`
```asm
596fa7: pushl %edx
596fa8: movl %ecx, %esi
596faa: calll 0x596da0 <.text+0x195da0>
596faf: popl %esi
596fb0: retl $0x4
596fb3: nop
596fb4: nop
596fb5: nop
596fb6: nop
596fb7: nop
596fb8: nop
596fb9: nop
596fba: nop
596fbb: nop
596fbc: nop
596fbd: nop
596fbe: nop
596fbf: nop
596fc0: pushl %esi
596fc1: movl %edx, %eax
596fc3: pushl $0x0
596fc5: movl %ecx, %esi
596fc7: calll 0x596da0 <.text+0x195da0>
596fcc: popl %esi
596fcd: retl
596fce: nop
596fcf: nop
596fd0: movl 0x4(%esp), %eax
596fd4: pushl %esi
596fd5: movl %edx, %esi
596fd7: movl 0x398(%eax), %edx
596fdd: testl %edx, %edx
596fdf: pushl %edi
596fe0: je 0x597077 <.text+0x196077>
596fe6: movl 0xb44(%eax), %edx
```
Direct internal callees:
- `0x00596eb6` -> `0x0058ec50` `multiplayer_transport_submit_getkey_command_and_wait`
- `0x00596f7a` -> `0x0058ef20` `multiplayer_transport_submit_setchankey_pair_list_command_and_wait`
- `0x00596e68` -> `0x0058f380` `tracked_heap_alloc_with_header`
- `0x00596f03` -> `0x0058f380` `tracked_heap_alloc_with_header`
- `0x00596ebf` -> `0x0058f3c0` `tracked_heap_free_with_header`
- `0x00596f83` -> `0x0058f3c0` `tracked_heap_free_with_header`
- `0x00596e56` -> `0x0058f8f0` `fcn.0058f8f0`
- `0x00596edf` -> `0x0058f8f0` `fcn.0058f8f0`
- `0x00596df0` -> `0x0058f9c0` `hashed_entry_table_lookup`
- `0x00596e22` -> `0x0058f9c0` `hashed_entry_table_lookup`
- `0x00596e36` -> `0x0058f9c0` `hashed_entry_table_lookup`
- `0x00596e8a` -> `0x0058fa00` `generic_callback_list_for_each`
- `0x00596f21` -> `0x0058fa00` `generic_callback_list_for_each`
Data refs:
- `0x00596e85` -> `0x00596c80`
- `0x00596f1c` -> `0x00596c80`
- `0x00596eaf` -> `0x00596c90`
- `0x00596f67` -> `0x00596ce0`
- `0x00596f6e` -> `0x005e1e1c`
- `0x00596e1a` -> `0x005e2260` "b_flags"
- `0x00596f4d` -> `0x005e2260` "b_flags"
- `0x00596de8` -> `0x005e22e8` "username"
- `0x00596f32` -> `0x005e22e8` "username"
### `0x00596fa0` -> `0x00596fa0` `multiplayer_transport_submit_profile_key_query_bundle_with_context`
- Size: `19`
- Calling convention: `cdecl`
- Signature: `fcn.00596fa0(int32_t arg_4h);`
Entry excerpt:
```asm
596f80: decl %esp
596f81: andb $0x18, %al
596f83: calll 0x58f3c0 <.text+0x18e3c0>
596f88: popl %ebx
596f89: popl %edi
596f8a: popl %ebp
596f8b: addl $0x10, %esp
596f8e: retl $0x4
596f91: nop
596f92: nop
596f93: nop
596f94: nop
596f95: nop
596f96: nop
596f97: nop
596f98: nop
596f99: nop
596f9a: nop
596f9b: nop
596f9c: nop
596f9d: nop
596f9e: nop
596f9f: nop
596fa0: pushl %esi
596fa1: movl %edx, %eax
596fa3: movl 0x8(%esp), %edx
596fa7: pushl %edx
596fa8: movl %ecx, %esi
596faa: calll 0x596da0 <.text+0x195da0>
596faf: popl %esi
596fb0: retl $0x4
596fb3: nop
596fb4: nop
596fb5: nop
596fb6: nop
596fb7: nop
596fb8: nop
596fb9: nop
596fba: nop
596fbb: nop
596fbc: nop
596fbd: nop
596fbe: nop
596fbf: nop
```
Callers:
- `0x0059f935`
Caller xref excerpts:
#### `0x0059f935`
```asm
59f915: <unknown>
59f917: testl %eax, %eax
59f919: je 0x59f92e <.text+0x19e92e>
59f91b: movl 0x10(%esp), %edx
59f91f: movl 0x8(%esp), %eax
59f923: pushl %edx
59f924: pushl %eax
59f925: movl %edi, %edx
59f927: movl %esi, %ecx
59f929: calll 0x594b60 <.text+0x193b60>
59f92e: movl 0x18(%esp), %edx
59f932: pushl %edi
59f933: movl %esi, %ecx
59f935: calll 0x596fa0 <.text+0x195fa0>
59f93a: movl 0x18(%esp), %edx
59f93e: pushl %edi
59f93f: movl %esi, %ecx
59f941: calll 0x592ee0 <.text+0x191ee0>
59f946: cmpl $0x2, 0x18(%esp)
59f94b: jne 0x59f9b1 <.text+0x19e9b1>
59f94d: movl 0xb54(%esi), %eax
59f953: testl %eax, %eax
```
Direct internal callees:
- `0x00596faa` -> `0x00596da0` `multiplayer_transport_submit_profile_key_query_bundle`
Data refs:
- none
### `0x00596fc0` -> `0x00596fc0` `multiplayer_transport_submit_profile_key_query_bundle_default`
- Size: `14`
- Calling convention: `cdecl`
- Signature: `fcn.00596fc0();`
Entry excerpt:
```asm
596fa0: pushl %esi
596fa1: movl %edx, %eax
596fa3: movl 0x8(%esp), %edx
596fa7: pushl %edx
596fa8: movl %ecx, %esi
596faa: calll 0x596da0 <.text+0x195da0>
596faf: popl %esi
596fb0: retl $0x4
596fb3: nop
596fb4: nop
596fb5: nop
596fb6: nop
596fb7: nop
596fb8: nop
596fb9: nop
596fba: nop
596fbb: nop
596fbc: nop
596fbd: nop
596fbe: nop
596fbf: nop
596fc0: pushl %esi
596fc1: movl %edx, %eax
596fc3: pushl $0x0
596fc5: movl %ecx, %esi
596fc7: calll 0x596da0 <.text+0x195da0>
596fcc: popl %esi
596fcd: retl
596fce: nop
596fcf: nop
596fd0: movl 0x4(%esp), %eax
596fd4: pushl %esi
596fd5: movl %edx, %esi
596fd7: movl 0x398(%eax), %edx
596fdd: testl %edx, %edx
596fdf: pushl %edi
```
Callers:
- `0x00595499` in `0x00595440` `multiplayer_transport_init_selector_slot`
- `0x0059fbb5`
Caller xref excerpts:
#### `0x00595499`
```asm
595479: addb %al, (%eax)
59547b: addb %al, (%eax)
59547d: addb %al, (%eax)
59547f: calll 0x5a18a0 <.text+0x1a08a0>
595484: addl $0xc, %esp
595487: movl %esi, %ecx
595489: movb $0x0, 0x59b(%ebp)
595490: calll 0x5951f0 <.text+0x1941f0>
595495: movl %edi, %edx
595497: movl %esi, %ecx
595499: calll 0x596fc0 <.text+0x195fc0>
59549e: popl %edi
59549f: popl %esi
5954a0: popl %ebp
5954a1: retl $0x4
5954a4: nop
5954a5: nop
5954a6: nop
5954a7: nop
5954a8: nop
5954a9: nop
5954aa: nop
5954ab: nop
5954ac: nop
5954ad: nop
5954ae: nop
5954af: nop
5954b0: pushl %ebx
5954b1: pushl %esi
5954b2: pushl %edi
5954b3: movl %edx, %edi
5954b5: movl %ecx, %esi
5954b7: movl 0x384(%esi,%edi,4), %eax
```
#### `0x0059fbb5`
```asm
59fb95: movl (%edi,%esi), %ecx
59fb98: movl 0x20(%esp), %edx
59fb9c: pushl %ecx
59fb9d: pushl %edx
59fb9e: movl (%esi), %edx
59fba0: movl %ebp, %ecx
59fba2: calll 0x594f20 <.text+0x193f20>
59fba7: addl $0x4, %esi
59fbaa: decl %ebx
59fbab: jne 0x59fb95 <.text+0x19eb95>
59fbad: popl %edi
59fbae: popl %esi
59fbaf: movl 0x18(%esp), %edx
59fbb3: movl %ebp, %ecx
59fbb5: calll 0x596fc0 <.text+0x195fc0>
59fbba: movl 0x18(%esp), %edx
59fbbe: movl %ebp, %ecx
59fbc0: calll 0x592fc0 <.text+0x191fc0>
59fbc5: popl %ebx
59fbc6: popl %ebp
59fbc7: retl $0x10
59fbca: nop
59fbcb: nop
59fbcc: nop
59fbcd: nop
59fbce: nop
59fbcf: nop
59fbd0: pushl %esi
59fbd1: movl 0x14(%esp), %esi
```
Direct internal callees:
- `0x00596fc7` -> `0x00596da0` `multiplayer_transport_submit_profile_key_query_bundle`
Data refs:
- none
### `0x00596fd0` -> `0x00596fd0` `multiplayer_transport_dispatch_status_route_event`
- Size: `219`
- Calling convention: `cdecl`
- Signature: `data.00596fd0(int32_t arg_4h);`
Entry excerpt:
```asm
596fb0: retl $0x4
596fb3: nop
596fb4: nop
596fb5: nop
596fb6: nop
596fb7: nop
596fb8: nop
596fb9: nop
596fba: nop
596fbb: nop
596fbc: nop
596fbd: nop
596fbe: nop
596fbf: nop
596fc0: pushl %esi
596fc1: movl %edx, %eax
596fc3: pushl $0x0
596fc5: movl %ecx, %esi
596fc7: calll 0x596da0 <.text+0x195da0>
596fcc: popl %esi
596fcd: retl
596fce: nop
596fcf: nop
596fd0: movl 0x4(%esp), %eax
596fd4: pushl %esi
596fd5: movl %edx, %esi
596fd7: movl 0x398(%eax), %edx
596fdd: testl %edx, %edx
596fdf: pushl %edi
596fe0: je 0x597077 <.text+0x196077>
596fe6: movl 0xb44(%eax), %edx
596fec: testl %edx, %edx
596fee: je 0x596ff9 <.text+0x195ff9>
```
Callers:
- none
Direct internal callees:
- `0x00597017` -> `0x0058bce0` `fcn.0058bce0`
- `0x00597054` -> `0x0058bce0` `fcn.0058bce0`
- `0x00597029` -> `0x0058cd40` `fcn.0058cd40`
- `0x0059703f` -> `0x0058cd40` `fcn.0058cd40`
- `0x0059706d` -> `0x0058cd40` `fcn.0058cd40`
- `0x00597084` -> `0x0058cd40` `fcn.0058cd40`
Data refs:
- `0x00597008` -> `0x005970ac`
- `0x00597001` -> `0x005970c4`
- `0x0059704d` -> `0x005ce1c8` "openstaging"
### `0x005973d0` -> `0x005973d0` `multiplayer_transport_try_connect_status_route`
- Size: `170`
- Calling convention: `cdecl`
- Signature: `fcn.005973d0(int32_t arg_4h);`
Entry excerpt:
```asm
5973b0: pushl %esi
5973b1: movl %ecx, %esi
5973b3: movl 0x1ecc(%esi), %ecx
5973b9: testl %ecx, %ecx
5973bb: je 0x5973cc <.text+0x1963cc>
5973bd: calll 0x58cfd0 <.text+0x18bfd0>
5973c2: movl $0x0, 0x1ecc(%esi)
5973cc: popl %esi
5973cd: retl
5973ce: nop
5973cf: nop
5973d0: pushl %ebx
5973d1: pushl %esi
5973d2: movl %ecx, %esi
5973d4: movl 0xaf0(%esi), %eax
5973da: testl %eax, %eax
5973dc: pushl %edi
5973dd: leal 0xaf0(%esi), %edi
5973e3: movl %edx, %ebx
5973e5: je 0x5973ec <.text+0x1963ec>
5973e7: calll 0x597350 <.text+0x196350>
5973ec: cmpl $-0x1, %ebx
5973ef: movl 0xb34(%esi), %eax
```
Callers:
- `0x0058daf1` in `0x0058dae0` `fcn.0058dae0`
- `0x005965be` in `0x005965a0` `multiplayer_transport_try_connect_status_route_once`
Caller xref excerpts:
#### `0x0058daf1`
```asm
58dad1: addb %bl, -0x3e(%esi)
58dad4: orb %al, (%eax)
58dad6: nop
58dad7: nop
58dad8: nop
58dad9: nop
58dada: nop
58dadb: nop
58dadc: nop
58dadd: nop
58dade: nop
58dadf: nop
58dae0: movb 0x60(%ecx), %al
58dae3: testb %al, %al
58dae5: jne 0x58daec <.text+0x18caec>
58dae7: xorl %eax, %eax
58dae9: retl $0x4
58daec: movl 0x4(%esp), %eax
58daf0: pushl %eax
58daf1: calll 0x5973d0 <.text+0x1963d0>
58daf6: negl %eax
58daf8: sbbl %eax, %eax
58dafa: negl %eax
58dafc: retl $0x4
58daff: nop
58db00: movb 0x60(%ecx), %al
58db03: testb %al, %al
58db05: je 0x58db16 <.text+0x18cb16>
58db07: movl $0x1, 0xb44(%ecx)
```
#### `0x005965be`
```asm
59659e: nop
59659f: nop
5965a0: movl 0xb40(%ecx), %eax
5965a6: testl %eax, %eax
5965a8: je 0x5965af <.text+0x1955af>
5965aa: xorl %eax, %eax
5965ac: retl $0x4
5965af: movl 0x4(%esp), %eax
5965b3: pushl %eax
5965b4: movl $0x1, 0xb40(%ecx)
5965be: calll 0x5973d0 <.text+0x1963d0>
5965c3: negl %eax
5965c5: sbbl %eax, %eax
5965c7: negl %eax
5965c9: retl $0x4
5965cc: nop
5965cd: nop
5965ce: nop
5965cf: nop
5965d0: testl %edx, %edx
5965d2: pushl %esi
5965d3: movl %ecx, %esi
5965d5: je 0x5965dc <.text+0x1955dc>
5965d7: calll 0x597350 <.text+0x196350>
5965dc: movl 0xb40(%esi), %eax
```
Direct internal callees:
- `0x00597460` -> `0x0058bc90` `fcn.0058bc90`
- `0x0059743c` -> `0x0058c9b0` `fcn.0058c9b0`
- `0x0059742d` -> `0x0058cc40` `fcn.0058cc40`
- `0x005973e7` -> `0x00597350` `multiplayer_transport_release_status_route`
Data refs:
- `0x0059740f` -> `0x00596fd0`
- `0x0059740a` -> `0x005970e0`
- `0x00597405` -> `0x00597180`
- `0x00597400` -> `0x005971b0`
- `0x005973fb` -> `0x00597270`
- `0x005973f6` -> `0x005972c0`
- `0x0059745b` -> `0x00597330`
- `0x004334b3` -> `0x005c8190`
- `0x0043347f` -> `0x005c9d08` "%s%s"
- `0x0043354e` -> `0x005c9d08` "%s%s"
- `0x00433452` -> `0x005c9d10`
- `0x0043342e` -> `0x005c9d14` "*.gm*"
- `0x00433427` -> `0x005c9d1c` "*.smp"
- `0x00433402` -> `0x006cec74`
- `0x00433438` -> `0x006cec74`

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,92 @@
digraph shell_load {
graph [rankdir=LR, labelloc="t", labeljust="l"];
label="Setup Window Dispatch Subgraph";
node [shape=box, style="rounded,filled", fillcolor="#f8f8f8", color="#555555", fontname="Helvetica"];
edge [color="#666666", fontname="Helvetica"];
subgraph cluster_bootstrap {
label="bootstrap";
color="#cccccc";
"0x00482ec0" [label="0x00482ec0\\nshell_transition_mode", fillcolor="#f8f8f8"];
"0x004840e0" [label="0x004840e0\\nbootstrap_init_shell_window_services", fillcolor="#f8f8f8"];
}
subgraph cluster_map {
label="map";
color="#cccccc";
"0x00434300" [label="0x00434300\\nworld_runtime_release_global_services", fillcolor="#f8f8f8"];
"0x004384d0" [label="0x004384d0\\nworld_run_post_load_generation_pipeline", fillcolor="#f8f8f8"];
"0x00438890" [label="0x00438890\\nshell_active_mode_run_profile_startup_and_load_dispatch", fillcolor="#f8f8f8"];
"0x00443a50" [label="0x00443a50\\nworld_entry_transition_and_runtime_bringup", fillcolor="#f8f8f8"];
"0x00445ac0" [label="0x00445ac0\\nshell_map_file_entry_coordinator", fillcolor="#f8f8f8"];
}
subgraph cluster_shell {
label="shell";
color="#cccccc";
"0x0046b780" [label="0x0046b780\\nmultiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync", fillcolor="#f8f8f8"];
"0x004b8dc0" [label="0x004b8dc0\\nshell_campaign_window_destroy", fillcolor="#f8f8f8"];
"0x004b8e60" [label="0x004b8e60\\nshell_campaign_window_construct", fillcolor="#f8f8f8"];
"0x004c7bc0" [label="0x004c7bc0\\nshell_credits_window_destroy", fillcolor="#f8f8f8"];
"0x004c7fc0" [label="0x004c7fc0\\nshell_credits_window_construct", fillcolor="#f8f8f8"];
"0x004dfbe0" [label="0x004dfbe0\\nshell_game_window_construct", fillcolor="#f8f8f8"];
"0x004dfd70" [label="0x004dfd70\\nshell_game_window_destroy", fillcolor="#f8f8f8"];
"0x004ea620" [label="0x004ea620\\nshell_load_screen_window_construct", fillcolor="#f8f8f8"];
"0x004ea730" [label="0x004ea730\\nshell_load_screen_window_destroy", fillcolor="#f8f8f8"];
"0x004ee3a0" [label="0x004ee3a0\\nmultiplayer_reset_tool_globals", fillcolor="#f8f8f8"];
"0x004efe80" [label="0x004efe80\\nmultiplayer_window_init_globals", fillcolor="#f8f8f8"];
"0x00502220" [label="0x00502220\\nshell_setup_window_publish_selected_profile_labels_and_preview_surface [seed]", fillcolor="#ffe9a8"];
"0x00502550" [label="0x00502550\\nshell_setup_window_refresh_selection_lists_and_summary_fields [seed]", fillcolor="#ffe9a8"];
"0x00502910" [label="0x00502910\\nshell_setup_window_refresh_mode_dependent_lists [seed]", fillcolor="#ffe9a8"];
"0x00502c00" [label="0x00502c00\\nshell_setup_window_select_launch_mode_and_apply_shell_state [seed]", fillcolor="#ffe9a8"];
"0x005033d0" [label="0x005033d0\\nshell_setup_window_handle_message [seed]", fillcolor="#ffe9a8"];
"0x00504010" [label="0x00504010\\nshell_setup_window_construct [seed]", fillcolor="#ffe9a8"];
"0x005174e0" [label="0x005174e0\\nshell_video_window_construct", fillcolor="#f8f8f8"];
"0x00517570" [label="0x00517570\\nshell_video_window_destroy", fillcolor="#f8f8f8"];
}
subgraph cluster_support {
label="support";
color="#cccccc";
"0x00559520" [label="0x00559520\\nsurface_init_rgba_pixel_buffer", fillcolor="#f8f8f8"];
}
"0x00434300" -> "0x00443a50";
"0x00434300" -> "0x00482ec0";
"0x00438890" -> "0x004384d0";
"0x00438890" -> "0x00445ac0";
"0x00438890" -> "0x005033d0";
"0x00443a50" -> "0x00438890";
"0x00443a50" -> "0x00482ec0";
"0x00445ac0" -> "0x00443a50";
"0x0046b780" -> "0x00438890";
"0x0046b780" -> "0x00445ac0";
"0x00482ec0" -> "0x00438890";
"0x00482ec0" -> "0x00443a50";
"0x00482ec0" -> "0x004840e0";
"0x00482ec0" -> "0x004b8dc0";
"0x00482ec0" -> "0x004b8e60";
"0x00482ec0" -> "0x004c7bc0";
"0x00482ec0" -> "0x004c7fc0";
"0x00482ec0" -> "0x004dfbe0";
"0x00482ec0" -> "0x004dfd70";
"0x00482ec0" -> "0x004ea620";
"0x00482ec0" -> "0x004ea730";
"0x00482ec0" -> "0x004efe80";
"0x00482ec0" -> "0x00504010";
"0x00482ec0" -> "0x005174e0";
"0x00482ec0" -> "0x00517570";
"0x004840e0" -> "0x00482ec0";
"0x004b8dc0" -> "0x004b8e60";
"0x004c7bc0" -> "0x004c7fc0";
"0x004dfbe0" -> "0x004dfd70";
"0x004ea620" -> "0x004ea730";
"0x004ea730" -> "0x004ea620";
"0x004ee3a0" -> "0x00482ec0";
"0x00502220" -> "0x00502c00";
"0x00502220" -> "0x00559520";
"0x00502910" -> "0x00502c00";
"0x00502c00" -> "0x00438890";
"0x00502c00" -> "0x005033d0";
"0x005033d0" -> "0x00502220";
"0x005033d0" -> "0x00502550";
"0x005033d0" -> "0x00502910";
"0x005033d0" -> "0x00502c00";
"0x005033d0" -> "0x00504010";
"0x00517570" -> "0x005174e0";
}

View file

@ -0,0 +1,102 @@
# Setup Window Dispatch Subgraph
- Nodes: `27`
- Edges: `43`
- Seeds: `0x00502220`, `0x00502550`, `0x00502910`, `0x00502c00`, `0x005033d0`, `0x00504010`
- Graphviz: `setup-window-subgraph.dot`
## Nodes
| Address | Name | Subsystem | Confidence |
| --- | --- | --- | --- |
| `0x00434300` | `world_runtime_release_global_services` | `map` | `3` |
| `0x004384d0` | `world_run_post_load_generation_pipeline` | `map` | `4` |
| `0x00438890` | `shell_active_mode_run_profile_startup_and_load_dispatch` | `map` | `4` |
| `0x00443a50` | `world_entry_transition_and_runtime_bringup` | `map` | `4` |
| `0x00445ac0` | `shell_map_file_entry_coordinator` | `map` | `4` |
| `0x0046b780` | `multiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync` | `shell` | `4` |
| `0x00482ec0` | `shell_transition_mode` | `bootstrap` | `4` |
| `0x004840e0` | `bootstrap_init_shell_window_services` | `bootstrap` | `4` |
| `0x004b8dc0` | `shell_campaign_window_destroy` | `shell` | `4` |
| `0x004b8e60` | `shell_campaign_window_construct` | `shell` | `4` |
| `0x004c7bc0` | `shell_credits_window_destroy` | `shell` | `4` |
| `0x004c7fc0` | `shell_credits_window_construct` | `shell` | `4` |
| `0x004dfbe0` | `shell_game_window_construct` | `shell` | `4` |
| `0x004dfd70` | `shell_game_window_destroy` | `shell` | `4` |
| `0x004ea620` | `shell_load_screen_window_construct` | `shell` | `4` |
| `0x004ea730` | `shell_load_screen_window_destroy` | `shell` | `4` |
| `0x004ee3a0` | `multiplayer_reset_tool_globals` | `shell` | `3` |
| `0x004efe80` | `multiplayer_window_init_globals` | `shell` | `4` |
| `0x00502220` | `shell_setup_window_publish_selected_profile_labels_and_preview_surface` | `shell` | `3` |
| `0x00502550` | `shell_setup_window_refresh_selection_lists_and_summary_fields` | `shell` | `3` |
| `0x00502910` | `shell_setup_window_refresh_mode_dependent_lists` | `shell` | `3` |
| `0x00502c00` | `shell_setup_window_select_launch_mode_and_apply_shell_state` | `shell` | `4` |
| `0x005033d0` | `shell_setup_window_handle_message` | `shell` | `3` |
| `0x00504010` | `shell_setup_window_construct` | `shell` | `4` |
| `0x005174e0` | `shell_video_window_construct` | `shell` | `4` |
| `0x00517570` | `shell_video_window_destroy` | `shell` | `4` |
| `0x00559520` | `surface_init_rgba_pixel_buffer` | `support` | `3` |
## Edges
- `0x00434300` `world_runtime_release_global_services`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00482ec0` `shell_transition_mode`
- `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
-> `0x00445ac0` `shell_map_file_entry_coordinator`
-> `0x005033d0` `shell_setup_window_handle_message`
- `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00482ec0` `shell_transition_mode`
- `0x00445ac0` `shell_map_file_entry_coordinator`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
- `0x0046b780` `multiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00445ac0` `shell_map_file_entry_coordinator`
- `0x00482ec0` `shell_transition_mode`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x004840e0` `bootstrap_init_shell_window_services`
-> `0x004b8dc0` `shell_campaign_window_destroy`
-> `0x004b8e60` `shell_campaign_window_construct`
-> `0x004c7bc0` `shell_credits_window_destroy`
-> `0x004c7fc0` `shell_credits_window_construct`
-> `0x004dfbe0` `shell_game_window_construct`
-> `0x004dfd70` `shell_game_window_destroy`
-> `0x004ea620` `shell_load_screen_window_construct`
-> `0x004ea730` `shell_load_screen_window_destroy`
-> `0x004efe80` `multiplayer_window_init_globals`
-> `0x00504010` `shell_setup_window_construct`
-> `0x005174e0` `shell_video_window_construct`
-> `0x00517570` `shell_video_window_destroy`
- `0x004840e0` `bootstrap_init_shell_window_services`
-> `0x00482ec0` `shell_transition_mode`
- `0x004b8dc0` `shell_campaign_window_destroy`
-> `0x004b8e60` `shell_campaign_window_construct`
- `0x004c7bc0` `shell_credits_window_destroy`
-> `0x004c7fc0` `shell_credits_window_construct`
- `0x004dfbe0` `shell_game_window_construct`
-> `0x004dfd70` `shell_game_window_destroy`
- `0x004ea620` `shell_load_screen_window_construct`
-> `0x004ea730` `shell_load_screen_window_destroy`
- `0x004ea730` `shell_load_screen_window_destroy`
-> `0x004ea620` `shell_load_screen_window_construct`
- `0x004ee3a0` `multiplayer_reset_tool_globals`
-> `0x00482ec0` `shell_transition_mode`
- `0x00502220` `shell_setup_window_publish_selected_profile_labels_and_preview_surface`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x00559520` `surface_init_rgba_pixel_buffer`
- `0x00502910` `shell_setup_window_refresh_mode_dependent_lists`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
- `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x005033d0` `shell_setup_window_handle_message`
- `0x005033d0` `shell_setup_window_handle_message`
-> `0x00502220` `shell_setup_window_publish_selected_profile_labels_and_preview_surface`
-> `0x00502550` `shell_setup_window_refresh_selection_lists_and_summary_fields`
-> `0x00502910` `shell_setup_window_refresh_mode_dependent_lists`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x00504010` `shell_setup_window_construct`
- `0x00517570` `shell_video_window_destroy`
-> `0x005174e0` `shell_video_window_construct`

View file

@ -0,0 +1,398 @@
digraph shell_load {
graph [rankdir=LR, labelloc="t", labeljust="l"];
label="Setup Window Submode Subgraph (Depth 5, Forward Only)";
node [shape=box, style="rounded,filled", fillcolor="#f8f8f8", color="#555555", fontname="Helvetica"];
edge [color="#666666", fontname="Helvetica"];
subgraph cluster_bootstrap {
label="bootstrap";
color="#cccccc";
"0x00482ec0" [label="0x00482ec0\\nshell_transition_mode", fillcolor="#f8f8f8"];
"0x004840e0" [label="0x004840e0\\nbootstrap_init_shell_window_services", fillcolor="#f8f8f8"];
}
subgraph cluster_map {
label="map";
color="#cccccc";
"0x00402cb0" [label="0x00402cb0\\ncity_connection_try_build_route_with_optional_direct_site_placement", fillcolor="#f8f8f8"];
"0x00404640" [label="0x00404640\\ncity_connection_bonus_try_compact_route_builder_from_region_entry", fillcolor="#f8f8f8"];
"0x004046a0" [label="0x004046a0\\ncity_connection_bonus_build_peer_route_candidate", fillcolor="#f8f8f8"];
"0x00404c60" [label="0x00404c60\\ncity_connection_try_build_route_between_region_entry_pair", fillcolor="#f8f8f8"];
"0x0040e360" [label="0x0040e360\\nplaced_structure_refresh_linked_site_anchor_position_triplet_for_local_runtime", fillcolor="#f8f8f8"];
"0x0040e450" [label="0x0040e450\\nplaced_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem", fillcolor="#f8f8f8"];
"0x0040ee10" [label="0x0040ee10\\nplaced_structure_refresh_local_runtime_position_triplet_and_linked_anchor_followon", fillcolor="#f8f8f8"];
"0x0040ef10" [label="0x0040ef10\\nplaced_structure_finalize_creation_or_rebuild_local_runtime_state", fillcolor="#f8f8f8"];
"0x00412ca0" [label="0x00412ca0\\nworld_region_pick_commercial_profile_label_by_region_rank", fillcolor="#f8f8f8"];
"0x004133b0" [label="0x004133b0\\nplaced_structure_collection_refresh_local_runtime_records_and_position_scalars", fillcolor="#f8f8f8"];
"0x004134d0" [label="0x004134d0\\nplaced_structure_collection_allocate_and_construct_entry", fillcolor="#f8f8f8"];
"0x00413f50" [label="0x00413f50\\nplaced_structure_local_runtime_site_id_queue_pop_next", fillcolor="#f8f8f8"];
"0x00414470" [label="0x00414470\\nplaced_structure_cache_projected_rect_profile_slot_id", fillcolor="#f8f8f8"];
"0x00414480" [label="0x00414480\\nplaced_structure_local_runtime_site_id_queue_count", fillcolor="#f8f8f8"];
"0x00415f20" [label="0x00415f20\\nplaced_structure_recursive_collect_connected_component_tile_bounds", fillcolor="#f8f8f8"];
"0x00416e20" [label="0x00416e20\\nindexed_collection_resolve_live_entry_id_by_stem_string", fillcolor="#f8f8f8"];
"0x00417840" [label="0x00417840\\nplaced_structure_project_candidate_grid_extent_offset_by_rotation", fillcolor="#f8f8f8"];
"0x00418a60" [label="0x00418a60\\nplaced_structure_clone_template_local_runtime_record_for_subject_and_refresh_component_bounds", fillcolor="#f8f8f8"];
"0x004197e0" [label="0x004197e0\\nplaced_structure_validate_projected_candidate_placement", fillcolor="#f8f8f8"];
"0x0041e220" [label="0x0041e220\\nstructure_candidate_is_enabled_for_current_year", fillcolor="#f8f8f8"];
"0x0041e2b0" [label="0x0041e2b0\\nstructure_candidate_rebuild_local_service_metrics", fillcolor="#f8f8f8"];
"0x0041ea50" [label="0x0041ea50\\nworld_setup_building_collection_phase", fillcolor="#f8f8f8"];
"0x0041f9b0" [label="0x0041f9b0\\nworld_region_count_structure_profiles_before_year_for_category", fillcolor="#f8f8f8"];
"0x0041fac0" [label="0x0041fac0\\nworld_region_read_structure_profile_label_and_weight_by_index", fillcolor="#f8f8f8"];
"0x00421b60" [label="0x00421b60\\nworld_region_collection_seed_default_regions", fillcolor="#f8f8f8"];
"0x00421c20" [label="0x00421c20\\nworld_region_collection_run_building_population_pass", fillcolor="#f8f8f8"];
"0x00422900" [label="0x00422900\\nworld_region_accumulate_structure_category_totals", fillcolor="#f8f8f8"];
"0x00422be0" [label="0x00422be0\\nworld_region_count_placed_structures_for_category", fillcolor="#f8f8f8"];
"0x00422ee0" [label="0x00422ee0\\nworld_region_try_place_candidate_structure", fillcolor="#f8f8f8"];
"0x004235c0" [label="0x004235c0\\nworld_region_balance_structure_demand_and_place_candidates", fillcolor="#f8f8f8"];
"0x00437220" [label="0x00437220\\nworld_build_chairman_profile_slot_records", fillcolor="#f8f8f8"];
"0x004377a0" [label="0x004377a0\\nworld_seed_default_chairman_profile_slots", fillcolor="#f8f8f8"];
"0x004384d0" [label="0x004384d0\\nworld_run_post_load_generation_pipeline", fillcolor="#f8f8f8"];
"0x00438890" [label="0x00438890\\nshell_active_mode_run_profile_startup_and_load_dispatch", fillcolor="#f8f8f8"];
"0x00443a50" [label="0x00443a50\\nworld_entry_transition_and_runtime_bringup", fillcolor="#f8f8f8"];
"0x00445ac0" [label="0x00445ac0\\nshell_map_file_entry_coordinator", fillcolor="#f8f8f8"];
"0x00446d40" [label="0x00446d40\\nworld_load_saved_runtime_state_bundle", fillcolor="#f8f8f8"];
"0x0044fb70" [label="0x0044fb70\\nworld_compute_transport_and_pricing_grid", fillcolor="#f8f8f8"];
"0x00477820" [label="0x00477820\\nprofile_collection_count_active_chairman_records", fillcolor="#f8f8f8"];
"0x00477860" [label="0x00477860\\nprofile_collection_get_nth_active_chairman_record", fillcolor="#f8f8f8"];
"0x0047d440" [label="0x0047d440\\nworld_conditionally_seed_named_starting_railroad_companies", fillcolor="#f8f8f8"];
"0x004882e0" [label="0x004882e0\\nworld_region_border_overlay_rebuild", fillcolor="#f8f8f8"];
"0x004a01a0" [label="0x004a01a0\\nroute_entry_collection_try_build_path_between_optional_endpoint_entries", fillcolor="#f8f8f8"];
"0x004a5280" [label="0x004a5280\\naux_route_entry_tracker_query_route_entry_pair_metric_via_weighted_recursive_search", fillcolor="#f8f8f8"];
"0x004a5900" [label="0x004a5900\\naux_route_entry_tracker_query_route_entry_pair_metric_via_recursive_neighbor_walk", fillcolor="#f8f8f8"];
"0x004a65b0" [label="0x004a65b0\\naux_route_entry_tracker_dispatch_route_entry_pair_metric_query", fillcolor="#f8f8f8"];
"0x004a6630" [label="0x004a6630\\naux_route_entry_tracker_query_best_route_entry_pair_metric_with_endpoint_fallbacks", fillcolor="#f8f8f8"];
"0x004c9da0" [label="0x004c9da0\\nmap_editor_chairman_slot_panel_format_slot_card", fillcolor="#f8f8f8"];
"0x004cc2d0" [label="0x004cc2d0\\nmap_editor_chairman_slot_panel_construct", fillcolor="#f8f8f8"];
}
subgraph cluster_shell {
label="shell";
color="#cccccc";
"0x0042a970" [label="0x0042a970\\nshell_open_file_dialog_copy_selected_path_and_restore_cwd", fillcolor="#f8f8f8"];
"0x004333f0" [label="0x004333f0\\nshell_setup_build_file_list_records_from_current_root_and_pattern", fillcolor="#f8f8f8"];
"0x004336a0" [label="0x004336a0\\nshell_setup_file_list_construct_and_scan_dataset", fillcolor="#f8f8f8"];
"0x00434050" [label="0x00434050\\nshell_has_auxiliary_preview_owner", fillcolor="#f8f8f8"];
"0x0046a6c0" [label="0x0046a6c0\\nmultiplayer_session_event_publish_registration_field", fillcolor="#f8f8f8"];
"0x004839b0" [label="0x004839b0\\nshell_setup_query_file_list_uses_map_extension_pattern", fillcolor="#f8f8f8"];
"0x004839e0" [label="0x004839e0\\nshell_setup_query_file_list_root_dir_name", fillcolor="#f8f8f8"];
"0x00484910" [label="0x00484910\\nshell_save_graphics_config", fillcolor="#f8f8f8"];
"0x004b8dc0" [label="0x004b8dc0\\nshell_campaign_window_destroy", fillcolor="#f8f8f8"];
"0x004b8e60" [label="0x004b8e60\\nshell_campaign_window_construct", fillcolor="#f8f8f8"];
"0x004b9a20" [label="0x004b9a20\\nshell_building_detail_refresh_flagged_service_capability_rows", fillcolor="#f8f8f8"];
"0x004ba3d0" [label="0x004ba3d0\\nshell_building_detail_refresh_subject_cargo_and_service_rows", fillcolor="#f8f8f8"];
"0x004bad20" [label="0x004bad20\\nshell_building_detail_refresh_subject_pair_value_rows", fillcolor="#f8f8f8"];
"0x004c2ca0" [label="0x004c2ca0\\nshell_company_detail_window_refresh_controls", fillcolor="#f8f8f8"];
"0x004c3890" [label="0x004c3890\\nshell_company_detail_issue_bond_offer_flow", fillcolor="#f8f8f8"];
"0x004c3f30" [label="0x004c3f30\\nshell_company_detail_issue_stock_offer_flow", fillcolor="#f8f8f8"];
"0x004c46d0" [label="0x004c46d0\\nshell_company_detail_buyback_stock_flow", fillcolor="#f8f8f8"];
"0x004c4c70" [label="0x004c4c70\\nshell_company_detail_setup_dividend_rate_adjust_controls", fillcolor="#f8f8f8"];
"0x004c4e30" [label="0x004c4e30\\nshell_company_detail_render_change_dividend_rate_dialog", fillcolor="#f8f8f8"];
"0x004c5140" [label="0x004c5140\\nshell_company_detail_handle_change_dividend_rate_dialog_message", fillcolor="#f8f8f8"];
"0x004c5360" [label="0x004c5360\\nshell_company_detail_change_dividend_rate_flow", fillcolor="#f8f8f8"];
"0x004c56a0" [label="0x004c56a0\\nshell_company_detail_window_handle_message", fillcolor="#f8f8f8"];
"0x004c5a0e" [label="0x004c5a0e\\nshell_company_detail_resign_chairmanship_flow", fillcolor="#f8f8f8"];
"0x004c5b99" [label="0x004c5b99\\nshell_company_detail_bankruptcy_flow", fillcolor="#f8f8f8"];
"0x004c5fc9" [label="0x004c5fc9\\nshell_company_detail_buy_territory_access_rights_flow", fillcolor="#f8f8f8"];
"0x004c7bc0" [label="0x004c7bc0\\nshell_credits_window_destroy", fillcolor="#f8f8f8"];
"0x004c7fc0" [label="0x004c7fc0\\nshell_credits_window_construct", fillcolor="#f8f8f8"];
"0x004c98a0" [label="0x004c98a0\\nshell_open_custom_modal_dialog_with_callbacks", fillcolor="#f8f8f8"];
"0x004dd010" [label="0x004dd010\\nshell_file_request_dialog_collect_target_path", fillcolor="#f8f8f8"];
"0x004ddbd0" [label="0x004ddbd0\\nshell_detail_panel_transition_manager", fillcolor="#f8f8f8"];
"0x004dfbe0" [label="0x004dfbe0\\nshell_game_window_construct", fillcolor="#f8f8f8"];
"0x004dfd70" [label="0x004dfd70\\nshell_game_window_destroy", fillcolor="#f8f8f8"];
"0x004e0ba0" [label="0x004e0ba0\\ngame_uppermost_window_handle_message", fillcolor="#f8f8f8"];
"0x004ea620" [label="0x004ea620\\nshell_load_screen_window_construct", fillcolor="#f8f8f8"];
"0x004ea730" [label="0x004ea730\\nshell_load_screen_window_destroy", fillcolor="#f8f8f8"];
"0x004eb0b0" [label="0x004eb0b0\\nshell_open_grayscale_map_tga_picker_and_stage_selection", fillcolor="#f8f8f8"];
"0x004ec640" [label="0x004ec640\\nshell_company_detail_attempt_merger_flow", fillcolor="#f8f8f8"];
"0x004ee0e0" [label="0x004ee0e0\\nmultiplayer_open_staged_text_entry_dialog", fillcolor="#f8f8f8"];
"0x004efe80" [label="0x004efe80\\nmultiplayer_window_init_globals", fillcolor="#f8f8f8"];
"0x004fe120" [label="0x004fe120\\nshell_has_settings_window", fillcolor="#f8f8f8"];
"0x00501e50" [label="0x00501e50\\nshell_open_settings_window", fillcolor="#f8f8f8"];
"0x00501f20" [label="0x00501f20\\nshell_query_registry_open_command_for_http_or_rtf_target", fillcolor="#f8f8f8"];
"0x00502030" [label="0x00502030\\nshell_setup_window_draw_table_driven_payload_category_row", fillcolor="#f8f8f8"];
"0x00502160" [label="0x00502160\\nshell_setup_window_set_first_persisted_selector_flag_or_index_and_save_config", fillcolor="#f8f8f8"];
"0x005021c0" [label="0x005021c0\\nshell_setup_window_set_second_persisted_selector_flag_or_index_and_save_config", fillcolor="#f8f8f8"];
"0x00502220" [label="0x00502220\\nshell_setup_window_publish_selected_profile_labels_and_preview_surface [seed]", fillcolor="#ffe9a8"];
"0x00502550" [label="0x00502550\\nshell_setup_window_refresh_selection_lists_and_summary_fields [seed]", fillcolor="#ffe9a8"];
"0x005027b0" [label="0x005027b0\\nshell_setup_window_refresh_file_backed_selection_list_panel [seed]", fillcolor="#ffe9a8"];
"0x00502910" [label="0x00502910\\nshell_setup_window_refresh_mode_dependent_lists [seed]", fillcolor="#ffe9a8"];
"0x00502c00" [label="0x00502c00\\nshell_setup_window_select_launch_mode_and_apply_shell_state [seed]", fillcolor="#ffe9a8"];
"0x005033d0" [label="0x005033d0\\nshell_setup_window_handle_message [seed]", fillcolor="#ffe9a8"];
"0x00504010" [label="0x00504010\\nshell_setup_window_construct [seed]", fillcolor="#ffe9a8"];
"0x0050ccc0" [label="0x0050ccc0\\nshell_company_detail_attempt_chairmanship_takeover_flow", fillcolor="#f8f8f8"];
"0x005174e0" [label="0x005174e0\\nshell_video_window_construct", fillcolor="#f8f8f8"];
"0x00517570" [label="0x00517570\\nshell_video_window_destroy", fillcolor="#f8f8f8"];
"0x0051c920" [label="0x0051c920\\nlocalization_lookup_display_label_by_stem_or_fallback", fillcolor="#f8f8f8"];
"0x0051eea0" [label="0x0051eea0\\nshell_save_display_runtime_config", fillcolor="#f8f8f8"];
"0x0053f830" [label="0x0053f830\\nshell_window_find_registered_child_control_by_id", fillcolor="#f8f8f8"];
"0x0053f9c0" [label="0x0053f9c0\\nshell_window_register_child_control_sorted_by_priority_and_optional_tag", fillcolor="#f8f8f8"];
"0x0053fa50" [label="0x0053fa50\\nshell_window_bind_resource_and_initialize_child_control_links", fillcolor="#f8f8f8"];
"0x005411c0" [label="0x005411c0\\nshell_query_tga_header_is_supported_truecolor_image", fillcolor="#f8f8f8"];
"0x00552560" [label="0x00552560\\nshell_queue_world_anchor_marker", fillcolor="#f8f8f8"];
"0x00558130" [label="0x00558130\\nshell_child_control_set_owner_resolve_caption_and_refresh", fillcolor="#f8f8f8"];
}
subgraph cluster_simulation {
label="simulation";
color="#cccccc";
"0x00404ce0" [label="0x00404ce0\\nsimulation_try_select_and_publish_company_start_or_city_connection_news", fillcolor="#f8f8f8"];
"0x00423d70" [label="0x00423d70\\ncompany_repay_bond_slot_and_compact_debt_table", fillcolor="#f8f8f8"];
"0x00426260" [label="0x00426260\\ncompany_compute_board_approved_dividend_rate_ceiling", fillcolor="#f8f8f8"];
"0x00426d60" [label="0x00426d60\\ncompany_deactivate_and_clear_chairman_share_links", fillcolor="#f8f8f8"];
"0x00437b20" [label="0x00437b20\\nsimulation_run_chunked_fast_forward_burst", fillcolor="#f8f8f8"];
"0x00482d10" [label="0x00482d10\\nruntime_query_cached_local_exe_version_float", fillcolor="#f8f8f8"];
"0x00482d80" [label="0x00482d80\\nruntime_query_cached_local_exe_version_string", fillcolor="#f8f8f8"];
"0x00482e00" [label="0x00482e00\\nruntime_query_hundredths_scaled_build_version", fillcolor="#f8f8f8"];
"0x00517d40" [label="0x00517d40\\nindexed_collection_entry_id_is_live", fillcolor="#f8f8f8"];
"0x00518140" [label="0x00518140\\nindexed_collection_resolve_live_entry_by_id", fillcolor="#f8f8f8"];
"0x00518380" [label="0x00518380\\nindexed_collection_get_nth_live_entry_id", fillcolor="#f8f8f8"];
}
subgraph cluster_support {
label="support";
color="#cccccc";
"0x00559520" [label="0x00559520\\nsurface_init_rgba_pixel_buffer", fillcolor="#f8f8f8"];
}
"0x00402cb0" -> "0x00404640";
"0x00402cb0" -> "0x004046a0";
"0x00402cb0" -> "0x00404c60";
"0x00402cb0" -> "0x00404ce0";
"0x00402cb0" -> "0x0040ef10";
"0x00402cb0" -> "0x004134d0";
"0x00402cb0" -> "0x00417840";
"0x00402cb0" -> "0x004197e0";
"0x00402cb0" -> "0x00482e00";
"0x00402cb0" -> "0x004a01a0";
"0x00404640" -> "0x00402cb0";
"0x00404640" -> "0x004046a0";
"0x004046a0" -> "0x00402cb0";
"0x004046a0" -> "0x00404640";
"0x00404c60" -> "0x00402cb0";
"0x00404c60" -> "0x00404ce0";
"0x00404ce0" -> "0x00404c60";
"0x0040e360" -> "0x0040ee10";
"0x0040e450" -> "0x004133b0";
"0x0040e450" -> "0x00414470";
"0x0040e450" -> "0x00416e20";
"0x0040e450" -> "0x00418a60";
"0x0040ee10" -> "0x0040e360";
"0x0040ee10" -> "0x004133b0";
"0x0040ee10" -> "0x00415f20";
"0x0040ee10" -> "0x00434050";
"0x00412ca0" -> "0x004235c0";
"0x004133b0" -> "0x0040e450";
"0x004133b0" -> "0x0040ee10";
"0x004133b0" -> "0x00413f50";
"0x004133b0" -> "0x00414480";
"0x004134d0" -> "0x00422ee0";
"0x00413f50" -> "0x004133b0";
"0x00414470" -> "0x0040e450";
"0x00414470" -> "0x00418a60";
"0x00414480" -> "0x004133b0";
"0x00415f20" -> "0x0040ee10";
"0x00416e20" -> "0x0040e450";
"0x00416e20" -> "0x00518140";
"0x00416e20" -> "0x00518380";
"0x00417840" -> "0x00402cb0";
"0x00417840" -> "0x004197e0";
"0x00418a60" -> "0x0040e450";
"0x004197e0" -> "0x00402cb0";
"0x004197e0" -> "0x00417840";
"0x0041e2b0" -> "0x0041e220";
"0x0041e2b0" -> "0x0041ea50";
"0x0041ea50" -> "0x0041e2b0";
"0x0041ea50" -> "0x00518140";
"0x0041ea50" -> "0x00518380";
"0x0041f9b0" -> "0x004235c0";
"0x00421b60" -> "0x004384d0";
"0x00421c20" -> "0x004235c0";
"0x00422900" -> "0x004235c0";
"0x00422be0" -> "0x004235c0";
"0x00422ee0" -> "0x004134d0";
"0x00422ee0" -> "0x004235c0";
"0x004235c0" -> "0x00412ca0";
"0x004235c0" -> "0x0041f9b0";
"0x004235c0" -> "0x0041fac0";
"0x004235c0" -> "0x00422900";
"0x004235c0" -> "0x00422be0";
"0x004235c0" -> "0x00422ee0";
"0x00426260" -> "0x004c5140";
"0x004333f0" -> "0x004336a0";
"0x004333f0" -> "0x004839b0";
"0x004333f0" -> "0x004839e0";
"0x004333f0" -> "0x0051c920";
"0x004336a0" -> "0x004333f0";
"0x004336a0" -> "0x00502c00";
"0x00437220" -> "0x004384d0";
"0x004377a0" -> "0x004cc2d0";
"0x00437b20" -> "0x004384d0";
"0x004384d0" -> "0x004133b0";
"0x004384d0" -> "0x0041ea50";
"0x004384d0" -> "0x00421b60";
"0x004384d0" -> "0x00421c20";
"0x004384d0" -> "0x00437220";
"0x004384d0" -> "0x004377a0";
"0x004384d0" -> "0x00437b20";
"0x004384d0" -> "0x0044fb70";
"0x004384d0" -> "0x0047d440";
"0x004384d0" -> "0x004882e0";
"0x00438890" -> "0x004384d0";
"0x00438890" -> "0x00445ac0";
"0x00438890" -> "0x005033d0";
"0x00443a50" -> "0x00438890";
"0x00443a50" -> "0x00482ec0";
"0x00445ac0" -> "0x00443a50";
"0x00445ac0" -> "0x00446d40";
"0x00445ac0" -> "0x004dd010";
"0x0046a6c0" -> "0x00482d80";
"0x00477820" -> "0x0047d440";
"0x00477860" -> "0x0047d440";
"0x0047d440" -> "0x004377a0";
"0x0047d440" -> "0x00477820";
"0x0047d440" -> "0x00477860";
"0x00482d10" -> "0x00482d80";
"0x00482d10" -> "0x00482e00";
"0x00482d80" -> "0x0046a6c0";
"0x00482d80" -> "0x00482d10";
"0x00482e00" -> "0x00402cb0";
"0x00482e00" -> "0x00482d10";
"0x00482e00" -> "0x004a65b0";
"0x00482ec0" -> "0x00438890";
"0x00482ec0" -> "0x00443a50";
"0x00482ec0" -> "0x004840e0";
"0x00482ec0" -> "0x004b8dc0";
"0x00482ec0" -> "0x004b8e60";
"0x00482ec0" -> "0x004c7bc0";
"0x00482ec0" -> "0x004c7fc0";
"0x00482ec0" -> "0x004dfbe0";
"0x00482ec0" -> "0x004dfd70";
"0x00482ec0" -> "0x004ea620";
"0x00482ec0" -> "0x004ea730";
"0x00482ec0" -> "0x004efe80";
"0x00482ec0" -> "0x00504010";
"0x00482ec0" -> "0x005174e0";
"0x00482ec0" -> "0x00517570";
"0x004839b0" -> "0x004333f0";
"0x004839e0" -> "0x004333f0";
"0x004840e0" -> "0x00482ec0";
"0x00484910" -> "0x0051eea0";
"0x004882e0" -> "0x004384d0";
"0x004a01a0" -> "0x00402cb0";
"0x004a01a0" -> "0x00518140";
"0x004a5280" -> "0x004a65b0";
"0x004a5900" -> "0x004a5280";
"0x004a5900" -> "0x004a65b0";
"0x004a65b0" -> "0x00482e00";
"0x004a65b0" -> "0x004a5280";
"0x004a65b0" -> "0x004a5900";
"0x004a65b0" -> "0x004a6630";
"0x004a6630" -> "0x004a65b0";
"0x004b8dc0" -> "0x004b8e60";
"0x004ba3d0" -> "0x004b9a20";
"0x004ba3d0" -> "0x004bad20";
"0x004ba3d0" -> "0x00517d40";
"0x004ba3d0" -> "0x00518140";
"0x004ba3d0" -> "0x0051c920";
"0x004bad20" -> "0x004ba3d0";
"0x004c2ca0" -> "0x004c56a0";
"0x004c3890" -> "0x004c56a0";
"0x004c3f30" -> "0x004c56a0";
"0x004c46d0" -> "0x004c56a0";
"0x004c4c70" -> "0x004c4e30";
"0x004c4c70" -> "0x004c5140";
"0x004c4c70" -> "0x004c5360";
"0x004c4c70" -> "0x0053f9c0";
"0x004c4e30" -> "0x004c5360";
"0x004c4e30" -> "0x004c98a0";
"0x004c5140" -> "0x00426260";
"0x004c5140" -> "0x004c5360";
"0x004c5140" -> "0x004c98a0";
"0x004c5360" -> "0x004c4c70";
"0x004c5360" -> "0x004c4e30";
"0x004c5360" -> "0x004c5140";
"0x004c5360" -> "0x004c56a0";
"0x004c56a0" -> "0x00423d70";
"0x004c56a0" -> "0x00426d60";
"0x004c56a0" -> "0x004c2ca0";
"0x004c56a0" -> "0x004c3890";
"0x004c56a0" -> "0x004c3f30";
"0x004c56a0" -> "0x004c46d0";
"0x004c56a0" -> "0x004c5360";
"0x004c56a0" -> "0x004c5a0e";
"0x004c56a0" -> "0x004c5b99";
"0x004c56a0" -> "0x004c5fc9";
"0x004c56a0" -> "0x004ddbd0";
"0x004c56a0" -> "0x004ec640";
"0x004c56a0" -> "0x0050ccc0";
"0x004c5a0e" -> "0x004c56a0";
"0x004c5b99" -> "0x004c56a0";
"0x004c5fc9" -> "0x004c56a0";
"0x004c7bc0" -> "0x004c7fc0";
"0x004c7fc0" -> "0x0053fa50";
"0x004c98a0" -> "0x004ee0e0";
"0x004cc2d0" -> "0x004c9da0";
"0x004dd010" -> "0x004839b0";
"0x004dfbe0" -> "0x004dfd70";
"0x004dfbe0" -> "0x0053fa50";
"0x004e0ba0" -> "0x0053f830";
"0x004ea620" -> "0x004ea730";
"0x004ea620" -> "0x0053fa50";
"0x004ea730" -> "0x004ea620";
"0x004ec640" -> "0x004c56a0";
"0x004ee0e0" -> "0x00484910";
"0x004ee0e0" -> "0x004c98a0";
"0x00502030" -> "0x00504010";
"0x00502030" -> "0x00552560";
"0x00502160" -> "0x00484910";
"0x00502160" -> "0x005021c0";
"0x00502160" -> "0x00504010";
"0x005021c0" -> "0x00484910";
"0x005021c0" -> "0x00502160";
"0x005021c0" -> "0x00504010";
"0x00502220" -> "0x00502c00";
"0x00502220" -> "0x0053f830";
"0x00502220" -> "0x00559520";
"0x005027b0" -> "0x004336a0";
"0x005027b0" -> "0x00502220";
"0x005027b0" -> "0x00502c00";
"0x00502910" -> "0x005027b0";
"0x00502910" -> "0x00502c00";
"0x00502c00" -> "0x004336a0";
"0x00502c00" -> "0x00438890";
"0x00502c00" -> "0x00482d80";
"0x00502c00" -> "0x004eb0b0";
"0x00502c00" -> "0x005027b0";
"0x00502c00" -> "0x00502910";
"0x00502c00" -> "0x005033d0";
"0x005033d0" -> "0x0042a970";
"0x005033d0" -> "0x00484910";
"0x005033d0" -> "0x004eb0b0";
"0x005033d0" -> "0x004fe120";
"0x005033d0" -> "0x00501e50";
"0x005033d0" -> "0x00501f20";
"0x005033d0" -> "0x00502220";
"0x005033d0" -> "0x00502550";
"0x005033d0" -> "0x00502910";
"0x005033d0" -> "0x00502c00";
"0x005033d0" -> "0x00504010";
"0x005033d0" -> "0x005411c0";
"0x00504010" -> "0x00502030";
"0x00504010" -> "0x00502160";
"0x00504010" -> "0x005021c0";
"0x00504010" -> "0x00502550";
"0x00504010" -> "0x00502910";
"0x00504010" -> "0x00502c00";
"0x00504010" -> "0x0053f830";
"0x00504010" -> "0x0053f9c0";
"0x00504010" -> "0x0053fa50";
"0x0050ccc0" -> "0x004c56a0";
"0x005174e0" -> "0x0053fa50";
"0x00517570" -> "0x00484910";
"0x00517570" -> "0x005174e0";
"0x00517d40" -> "0x004ba3d0";
"0x00517d40" -> "0x00518140";
"0x0051c920" -> "0x004ba3d0";
"0x0053f830" -> "0x004e0ba0";
"0x0053f830" -> "0x00502220";
"0x0053f830" -> "0x00504010";
"0x0053f9c0" -> "0x004c4c70";
"0x0053f9c0" -> "0x00558130";
"0x005411c0" -> "0x005033d0";
"0x00558130" -> "0x0053f9c0";
}

View file

@ -0,0 +1,486 @@
# Setup Window Submode Subgraph (Depth 5, Forward Only)
- Nodes: `126`
- Edges: `246`
- Seeds: `0x00502220`, `0x00502550`, `0x005027b0`, `0x00502910`, `0x00502c00`, `0x005033d0`, `0x00504010`
- Graphviz: `setup-window-submodes-depth5-forward-subgraph.dot`
## Nodes
| Address | Name | Subsystem | Confidence |
| --- | --- | --- | --- |
| `0x00402cb0` | `city_connection_try_build_route_with_optional_direct_site_placement` | `map` | `3` |
| `0x00404640` | `city_connection_bonus_try_compact_route_builder_from_region_entry` | `map` | `3` |
| `0x004046a0` | `city_connection_bonus_build_peer_route_candidate` | `map` | `4` |
| `0x00404c60` | `city_connection_try_build_route_between_region_entry_pair` | `map` | `3` |
| `0x00404ce0` | `simulation_try_select_and_publish_company_start_or_city_connection_news` | `simulation` | `3` |
| `0x0040e360` | `placed_structure_refresh_linked_site_anchor_position_triplet_for_local_runtime` | `map` | `2` |
| `0x0040e450` | `placed_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem` | `map` | `2` |
| `0x0040ee10` | `placed_structure_refresh_local_runtime_position_triplet_and_linked_anchor_followon` | `map` | `2` |
| `0x0040ef10` | `placed_structure_finalize_creation_or_rebuild_local_runtime_state` | `map` | `3` |
| `0x00412ca0` | `world_region_pick_commercial_profile_label_by_region_rank` | `map` | `4` |
| `0x004133b0` | `placed_structure_collection_refresh_local_runtime_records_and_position_scalars` | `map` | `2` |
| `0x004134d0` | `placed_structure_collection_allocate_and_construct_entry` | `map` | `3` |
| `0x00413f50` | `placed_structure_local_runtime_site_id_queue_pop_next` | `map` | `3` |
| `0x00414470` | `placed_structure_cache_projected_rect_profile_slot_id` | `map` | `3` |
| `0x00414480` | `placed_structure_local_runtime_site_id_queue_count` | `map` | `3` |
| `0x00415f20` | `placed_structure_recursive_collect_connected_component_tile_bounds` | `map` | `3` |
| `0x00416e20` | `indexed_collection_resolve_live_entry_id_by_stem_string` | `map` | `3` |
| `0x00417840` | `placed_structure_project_candidate_grid_extent_offset_by_rotation` | `map` | `3` |
| `0x00418a60` | `placed_structure_clone_template_local_runtime_record_for_subject_and_refresh_component_bounds` | `map` | `2` |
| `0x004197e0` | `placed_structure_validate_projected_candidate_placement` | `map` | `3` |
| `0x0041e220` | `structure_candidate_is_enabled_for_current_year` | `map` | `3` |
| `0x0041e2b0` | `structure_candidate_rebuild_local_service_metrics` | `map` | `3` |
| `0x0041ea50` | `world_setup_building_collection_phase` | `map` | `3` |
| `0x0041f9b0` | `world_region_count_structure_profiles_before_year_for_category` | `map` | `4` |
| `0x0041fac0` | `world_region_read_structure_profile_label_and_weight_by_index` | `map` | `4` |
| `0x00421b60` | `world_region_collection_seed_default_regions` | `map` | `4` |
| `0x00421c20` | `world_region_collection_run_building_population_pass` | `map` | `4` |
| `0x00422900` | `world_region_accumulate_structure_category_totals` | `map` | `3` |
| `0x00422be0` | `world_region_count_placed_structures_for_category` | `map` | `3` |
| `0x00422ee0` | `world_region_try_place_candidate_structure` | `map` | `4` |
| `0x004235c0` | `world_region_balance_structure_demand_and_place_candidates` | `map` | `4` |
| `0x00423d70` | `company_repay_bond_slot_and_compact_debt_table` | `simulation` | `4` |
| `0x00426260` | `company_compute_board_approved_dividend_rate_ceiling` | `simulation` | `4` |
| `0x00426d60` | `company_deactivate_and_clear_chairman_share_links` | `simulation` | `4` |
| `0x0042a970` | `shell_open_file_dialog_copy_selected_path_and_restore_cwd` | `shell` | `3` |
| `0x004333f0` | `shell_setup_build_file_list_records_from_current_root_and_pattern` | `shell` | `3` |
| `0x004336a0` | `shell_setup_file_list_construct_and_scan_dataset` | `shell` | `3` |
| `0x00434050` | `shell_has_auxiliary_preview_owner` | `shell` | `4` |
| `0x00437220` | `world_build_chairman_profile_slot_records` | `map` | `4` |
| `0x004377a0` | `world_seed_default_chairman_profile_slots` | `map` | `4` |
| `0x00437b20` | `simulation_run_chunked_fast_forward_burst` | `simulation` | `3` |
| `0x004384d0` | `world_run_post_load_generation_pipeline` | `map` | `4` |
| `0x00438890` | `shell_active_mode_run_profile_startup_and_load_dispatch` | `map` | `4` |
| `0x00443a50` | `world_entry_transition_and_runtime_bringup` | `map` | `4` |
| `0x00445ac0` | `shell_map_file_entry_coordinator` | `map` | `4` |
| `0x00446d40` | `world_load_saved_runtime_state_bundle` | `map` | `4` |
| `0x0044fb70` | `world_compute_transport_and_pricing_grid` | `map` | `3` |
| `0x0046a6c0` | `multiplayer_session_event_publish_registration_field` | `shell` | `3` |
| `0x00477820` | `profile_collection_count_active_chairman_records` | `map` | `4` |
| `0x00477860` | `profile_collection_get_nth_active_chairman_record` | `map` | `4` |
| `0x0047d440` | `world_conditionally_seed_named_starting_railroad_companies` | `map` | `4` |
| `0x00482d10` | `runtime_query_cached_local_exe_version_float` | `simulation` | `3` |
| `0x00482d80` | `runtime_query_cached_local_exe_version_string` | `simulation` | `3` |
| `0x00482e00` | `runtime_query_hundredths_scaled_build_version` | `simulation` | `3` |
| `0x00482ec0` | `shell_transition_mode` | `bootstrap` | `4` |
| `0x004839b0` | `shell_setup_query_file_list_uses_map_extension_pattern` | `shell` | `3` |
| `0x004839e0` | `shell_setup_query_file_list_root_dir_name` | `shell` | `3` |
| `0x004840e0` | `bootstrap_init_shell_window_services` | `bootstrap` | `4` |
| `0x00484910` | `shell_save_graphics_config` | `shell` | `4` |
| `0x004882e0` | `world_region_border_overlay_rebuild` | `map` | `4` |
| `0x004a01a0` | `route_entry_collection_try_build_path_between_optional_endpoint_entries` | `map` | `3` |
| `0x004a5280` | `aux_route_entry_tracker_query_route_entry_pair_metric_via_weighted_recursive_search` | `map` | `3` |
| `0x004a5900` | `aux_route_entry_tracker_query_route_entry_pair_metric_via_recursive_neighbor_walk` | `map` | `3` |
| `0x004a65b0` | `aux_route_entry_tracker_dispatch_route_entry_pair_metric_query` | `map` | `3` |
| `0x004a6630` | `aux_route_entry_tracker_query_best_route_entry_pair_metric_with_endpoint_fallbacks` | `map` | `3` |
| `0x004b8dc0` | `shell_campaign_window_destroy` | `shell` | `4` |
| `0x004b8e60` | `shell_campaign_window_construct` | `shell` | `4` |
| `0x004b9a20` | `shell_building_detail_refresh_flagged_service_capability_rows` | `shell` | `3` |
| `0x004ba3d0` | `shell_building_detail_refresh_subject_cargo_and_service_rows` | `shell` | `3` |
| `0x004bad20` | `shell_building_detail_refresh_subject_pair_value_rows` | `shell` | `3` |
| `0x004c2ca0` | `shell_company_detail_window_refresh_controls` | `shell` | `4` |
| `0x004c3890` | `shell_company_detail_issue_bond_offer_flow` | `shell` | `4` |
| `0x004c3f30` | `shell_company_detail_issue_stock_offer_flow` | `shell` | `4` |
| `0x004c46d0` | `shell_company_detail_buyback_stock_flow` | `shell` | `4` |
| `0x004c4c70` | `shell_company_detail_setup_dividend_rate_adjust_controls` | `shell` | `4` |
| `0x004c4e30` | `shell_company_detail_render_change_dividend_rate_dialog` | `shell` | `4` |
| `0x004c5140` | `shell_company_detail_handle_change_dividend_rate_dialog_message` | `shell` | `4` |
| `0x004c5360` | `shell_company_detail_change_dividend_rate_flow` | `shell` | `4` |
| `0x004c56a0` | `shell_company_detail_window_handle_message` | `shell` | `4` |
| `0x004c5a0e` | `shell_company_detail_resign_chairmanship_flow` | `shell` | `4` |
| `0x004c5b99` | `shell_company_detail_bankruptcy_flow` | `shell` | `4` |
| `0x004c5fc9` | `shell_company_detail_buy_territory_access_rights_flow` | `shell` | `4` |
| `0x004c7bc0` | `shell_credits_window_destroy` | `shell` | `4` |
| `0x004c7fc0` | `shell_credits_window_construct` | `shell` | `4` |
| `0x004c98a0` | `shell_open_custom_modal_dialog_with_callbacks` | `shell` | `4` |
| `0x004c9da0` | `map_editor_chairman_slot_panel_format_slot_card` | `map` | `4` |
| `0x004cc2d0` | `map_editor_chairman_slot_panel_construct` | `map` | `4` |
| `0x004dd010` | `shell_file_request_dialog_collect_target_path` | `shell` | `4` |
| `0x004ddbd0` | `shell_detail_panel_transition_manager` | `shell` | `3` |
| `0x004dfbe0` | `shell_game_window_construct` | `shell` | `4` |
| `0x004dfd70` | `shell_game_window_destroy` | `shell` | `4` |
| `0x004e0ba0` | `game_uppermost_window_handle_message` | `shell` | `4` |
| `0x004ea620` | `shell_load_screen_window_construct` | `shell` | `4` |
| `0x004ea730` | `shell_load_screen_window_destroy` | `shell` | `4` |
| `0x004eb0b0` | `shell_open_grayscale_map_tga_picker_and_stage_selection` | `shell` | `3` |
| `0x004ec640` | `shell_company_detail_attempt_merger_flow` | `shell` | `4` |
| `0x004ee0e0` | `multiplayer_open_staged_text_entry_dialog` | `shell` | `3` |
| `0x004efe80` | `multiplayer_window_init_globals` | `shell` | `4` |
| `0x004fe120` | `shell_has_settings_window` | `shell` | `4` |
| `0x00501e50` | `shell_open_settings_window` | `shell` | `4` |
| `0x00501f20` | `shell_query_registry_open_command_for_http_or_rtf_target` | `shell` | `3` |
| `0x00502030` | `shell_setup_window_draw_table_driven_payload_category_row` | `shell` | `3` |
| `0x00502160` | `shell_setup_window_set_first_persisted_selector_flag_or_index_and_save_config` | `shell` | `3` |
| `0x005021c0` | `shell_setup_window_set_second_persisted_selector_flag_or_index_and_save_config` | `shell` | `3` |
| `0x00502220` | `shell_setup_window_publish_selected_profile_labels_and_preview_surface` | `shell` | `3` |
| `0x00502550` | `shell_setup_window_refresh_selection_lists_and_summary_fields` | `shell` | `3` |
| `0x005027b0` | `shell_setup_window_refresh_file_backed_selection_list_panel` | `shell` | `3` |
| `0x00502910` | `shell_setup_window_refresh_mode_dependent_lists` | `shell` | `3` |
| `0x00502c00` | `shell_setup_window_select_launch_mode_and_apply_shell_state` | `shell` | `4` |
| `0x005033d0` | `shell_setup_window_handle_message` | `shell` | `3` |
| `0x00504010` | `shell_setup_window_construct` | `shell` | `4` |
| `0x0050ccc0` | `shell_company_detail_attempt_chairmanship_takeover_flow` | `shell` | `4` |
| `0x005174e0` | `shell_video_window_construct` | `shell` | `4` |
| `0x00517570` | `shell_video_window_destroy` | `shell` | `4` |
| `0x00517d40` | `indexed_collection_entry_id_is_live` | `simulation` | `4` |
| `0x00518140` | `indexed_collection_resolve_live_entry_by_id` | `simulation` | `4` |
| `0x00518380` | `indexed_collection_get_nth_live_entry_id` | `simulation` | `4` |
| `0x0051c920` | `localization_lookup_display_label_by_stem_or_fallback` | `shell` | `4` |
| `0x0051eea0` | `shell_save_display_runtime_config` | `shell` | `4` |
| `0x0053f830` | `shell_window_find_registered_child_control_by_id` | `shell` | `3` |
| `0x0053f9c0` | `shell_window_register_child_control_sorted_by_priority_and_optional_tag` | `shell` | `3` |
| `0x0053fa50` | `shell_window_bind_resource_and_initialize_child_control_links` | `shell` | `4` |
| `0x005411c0` | `shell_query_tga_header_is_supported_truecolor_image` | `shell` | `3` |
| `0x00552560` | `shell_queue_world_anchor_marker` | `shell` | `3` |
| `0x00558130` | `shell_child_control_set_owner_resolve_caption_and_refresh` | `shell` | `3` |
| `0x00559520` | `surface_init_rgba_pixel_buffer` | `support` | `3` |
## Edges
- `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x00404640` `city_connection_bonus_try_compact_route_builder_from_region_entry`
-> `0x004046a0` `city_connection_bonus_build_peer_route_candidate`
-> `0x00404c60` `city_connection_try_build_route_between_region_entry_pair`
-> `0x00404ce0` `simulation_try_select_and_publish_company_start_or_city_connection_news`
-> `0x0040ef10` `placed_structure_finalize_creation_or_rebuild_local_runtime_state`
-> `0x004134d0` `placed_structure_collection_allocate_and_construct_entry`
-> `0x00417840` `placed_structure_project_candidate_grid_extent_offset_by_rotation`
-> `0x004197e0` `placed_structure_validate_projected_candidate_placement`
-> `0x00482e00` `runtime_query_hundredths_scaled_build_version`
-> `0x004a01a0` `route_entry_collection_try_build_path_between_optional_endpoint_entries`
- `0x00404640` `city_connection_bonus_try_compact_route_builder_from_region_entry`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x004046a0` `city_connection_bonus_build_peer_route_candidate`
- `0x004046a0` `city_connection_bonus_build_peer_route_candidate`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x00404640` `city_connection_bonus_try_compact_route_builder_from_region_entry`
- `0x00404c60` `city_connection_try_build_route_between_region_entry_pair`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x00404ce0` `simulation_try_select_and_publish_company_start_or_city_connection_news`
- `0x00404ce0` `simulation_try_select_and_publish_company_start_or_city_connection_news`
-> `0x00404c60` `city_connection_try_build_route_between_region_entry_pair`
- `0x0040e360` `placed_structure_refresh_linked_site_anchor_position_triplet_for_local_runtime`
-> `0x0040ee10` `placed_structure_refresh_local_runtime_position_triplet_and_linked_anchor_followon`
- `0x0040e450` `placed_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem`
-> `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
-> `0x00414470` `placed_structure_cache_projected_rect_profile_slot_id`
-> `0x00416e20` `indexed_collection_resolve_live_entry_id_by_stem_string`
-> `0x00418a60` `placed_structure_clone_template_local_runtime_record_for_subject_and_refresh_component_bounds`
- `0x0040ee10` `placed_structure_refresh_local_runtime_position_triplet_and_linked_anchor_followon`
-> `0x0040e360` `placed_structure_refresh_linked_site_anchor_position_triplet_for_local_runtime`
-> `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
-> `0x00415f20` `placed_structure_recursive_collect_connected_component_tile_bounds`
-> `0x00434050` `shell_has_auxiliary_preview_owner`
- `0x00412ca0` `world_region_pick_commercial_profile_label_by_region_rank`
-> `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
- `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
-> `0x0040e450` `placed_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem`
-> `0x0040ee10` `placed_structure_refresh_local_runtime_position_triplet_and_linked_anchor_followon`
-> `0x00413f50` `placed_structure_local_runtime_site_id_queue_pop_next`
-> `0x00414480` `placed_structure_local_runtime_site_id_queue_count`
- `0x004134d0` `placed_structure_collection_allocate_and_construct_entry`
-> `0x00422ee0` `world_region_try_place_candidate_structure`
- `0x00413f50` `placed_structure_local_runtime_site_id_queue_pop_next`
-> `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
- `0x00414470` `placed_structure_cache_projected_rect_profile_slot_id`
-> `0x0040e450` `placed_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem`
-> `0x00418a60` `placed_structure_clone_template_local_runtime_record_for_subject_and_refresh_component_bounds`
- `0x00414480` `placed_structure_local_runtime_site_id_queue_count`
-> `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
- `0x00415f20` `placed_structure_recursive_collect_connected_component_tile_bounds`
-> `0x0040ee10` `placed_structure_refresh_local_runtime_position_triplet_and_linked_anchor_followon`
- `0x00416e20` `indexed_collection_resolve_live_entry_id_by_stem_string`
-> `0x0040e450` `placed_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem`
-> `0x00518140` `indexed_collection_resolve_live_entry_by_id`
-> `0x00518380` `indexed_collection_get_nth_live_entry_id`
- `0x00417840` `placed_structure_project_candidate_grid_extent_offset_by_rotation`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x004197e0` `placed_structure_validate_projected_candidate_placement`
- `0x00418a60` `placed_structure_clone_template_local_runtime_record_for_subject_and_refresh_component_bounds`
-> `0x0040e450` `placed_structure_refresh_cloned_local_runtime_record_from_current_candidate_stem`
- `0x004197e0` `placed_structure_validate_projected_candidate_placement`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x00417840` `placed_structure_project_candidate_grid_extent_offset_by_rotation`
- `0x0041e2b0` `structure_candidate_rebuild_local_service_metrics`
-> `0x0041e220` `structure_candidate_is_enabled_for_current_year`
-> `0x0041ea50` `world_setup_building_collection_phase`
- `0x0041ea50` `world_setup_building_collection_phase`
-> `0x0041e2b0` `structure_candidate_rebuild_local_service_metrics`
-> `0x00518140` `indexed_collection_resolve_live_entry_by_id`
-> `0x00518380` `indexed_collection_get_nth_live_entry_id`
- `0x0041f9b0` `world_region_count_structure_profiles_before_year_for_category`
-> `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
- `0x00421b60` `world_region_collection_seed_default_regions`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x00421c20` `world_region_collection_run_building_population_pass`
-> `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
- `0x00422900` `world_region_accumulate_structure_category_totals`
-> `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
- `0x00422be0` `world_region_count_placed_structures_for_category`
-> `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
- `0x00422ee0` `world_region_try_place_candidate_structure`
-> `0x004134d0` `placed_structure_collection_allocate_and_construct_entry`
-> `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
- `0x004235c0` `world_region_balance_structure_demand_and_place_candidates`
-> `0x00412ca0` `world_region_pick_commercial_profile_label_by_region_rank`
-> `0x0041f9b0` `world_region_count_structure_profiles_before_year_for_category`
-> `0x0041fac0` `world_region_read_structure_profile_label_and_weight_by_index`
-> `0x00422900` `world_region_accumulate_structure_category_totals`
-> `0x00422be0` `world_region_count_placed_structures_for_category`
-> `0x00422ee0` `world_region_try_place_candidate_structure`
- `0x00426260` `company_compute_board_approved_dividend_rate_ceiling`
-> `0x004c5140` `shell_company_detail_handle_change_dividend_rate_dialog_message`
- `0x004333f0` `shell_setup_build_file_list_records_from_current_root_and_pattern`
-> `0x004336a0` `shell_setup_file_list_construct_and_scan_dataset`
-> `0x004839b0` `shell_setup_query_file_list_uses_map_extension_pattern`
-> `0x004839e0` `shell_setup_query_file_list_root_dir_name`
-> `0x0051c920` `localization_lookup_display_label_by_stem_or_fallback`
- `0x004336a0` `shell_setup_file_list_construct_and_scan_dataset`
-> `0x004333f0` `shell_setup_build_file_list_records_from_current_root_and_pattern`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
- `0x00437220` `world_build_chairman_profile_slot_records`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x004377a0` `world_seed_default_chairman_profile_slots`
-> `0x004cc2d0` `map_editor_chairman_slot_panel_construct`
- `0x00437b20` `simulation_run_chunked_fast_forward_burst`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x004384d0` `world_run_post_load_generation_pipeline`
-> `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
-> `0x0041ea50` `world_setup_building_collection_phase`
-> `0x00421b60` `world_region_collection_seed_default_regions`
-> `0x00421c20` `world_region_collection_run_building_population_pass`
-> `0x00437220` `world_build_chairman_profile_slot_records`
-> `0x004377a0` `world_seed_default_chairman_profile_slots`
-> `0x00437b20` `simulation_run_chunked_fast_forward_burst`
-> `0x0044fb70` `world_compute_transport_and_pricing_grid`
-> `0x0047d440` `world_conditionally_seed_named_starting_railroad_companies`
-> `0x004882e0` `world_region_border_overlay_rebuild`
- `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
-> `0x00445ac0` `shell_map_file_entry_coordinator`
-> `0x005033d0` `shell_setup_window_handle_message`
- `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00482ec0` `shell_transition_mode`
- `0x00445ac0` `shell_map_file_entry_coordinator`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00446d40` `world_load_saved_runtime_state_bundle`
-> `0x004dd010` `shell_file_request_dialog_collect_target_path`
- `0x0046a6c0` `multiplayer_session_event_publish_registration_field`
-> `0x00482d80` `runtime_query_cached_local_exe_version_string`
- `0x00477820` `profile_collection_count_active_chairman_records`
-> `0x0047d440` `world_conditionally_seed_named_starting_railroad_companies`
- `0x00477860` `profile_collection_get_nth_active_chairman_record`
-> `0x0047d440` `world_conditionally_seed_named_starting_railroad_companies`
- `0x0047d440` `world_conditionally_seed_named_starting_railroad_companies`
-> `0x004377a0` `world_seed_default_chairman_profile_slots`
-> `0x00477820` `profile_collection_count_active_chairman_records`
-> `0x00477860` `profile_collection_get_nth_active_chairman_record`
- `0x00482d10` `runtime_query_cached_local_exe_version_float`
-> `0x00482d80` `runtime_query_cached_local_exe_version_string`
-> `0x00482e00` `runtime_query_hundredths_scaled_build_version`
- `0x00482d80` `runtime_query_cached_local_exe_version_string`
-> `0x0046a6c0` `multiplayer_session_event_publish_registration_field`
-> `0x00482d10` `runtime_query_cached_local_exe_version_float`
- `0x00482e00` `runtime_query_hundredths_scaled_build_version`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x00482d10` `runtime_query_cached_local_exe_version_float`
-> `0x004a65b0` `aux_route_entry_tracker_dispatch_route_entry_pair_metric_query`
- `0x00482ec0` `shell_transition_mode`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x004840e0` `bootstrap_init_shell_window_services`
-> `0x004b8dc0` `shell_campaign_window_destroy`
-> `0x004b8e60` `shell_campaign_window_construct`
-> `0x004c7bc0` `shell_credits_window_destroy`
-> `0x004c7fc0` `shell_credits_window_construct`
-> `0x004dfbe0` `shell_game_window_construct`
-> `0x004dfd70` `shell_game_window_destroy`
-> `0x004ea620` `shell_load_screen_window_construct`
-> `0x004ea730` `shell_load_screen_window_destroy`
-> `0x004efe80` `multiplayer_window_init_globals`
-> `0x00504010` `shell_setup_window_construct`
-> `0x005174e0` `shell_video_window_construct`
-> `0x00517570` `shell_video_window_destroy`
- `0x004839b0` `shell_setup_query_file_list_uses_map_extension_pattern`
-> `0x004333f0` `shell_setup_build_file_list_records_from_current_root_and_pattern`
- `0x004839e0` `shell_setup_query_file_list_root_dir_name`
-> `0x004333f0` `shell_setup_build_file_list_records_from_current_root_and_pattern`
- `0x004840e0` `bootstrap_init_shell_window_services`
-> `0x00482ec0` `shell_transition_mode`
- `0x00484910` `shell_save_graphics_config`
-> `0x0051eea0` `shell_save_display_runtime_config`
- `0x004882e0` `world_region_border_overlay_rebuild`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x004a01a0` `route_entry_collection_try_build_path_between_optional_endpoint_entries`
-> `0x00402cb0` `city_connection_try_build_route_with_optional_direct_site_placement`
-> `0x00518140` `indexed_collection_resolve_live_entry_by_id`
- `0x004a5280` `aux_route_entry_tracker_query_route_entry_pair_metric_via_weighted_recursive_search`
-> `0x004a65b0` `aux_route_entry_tracker_dispatch_route_entry_pair_metric_query`
- `0x004a5900` `aux_route_entry_tracker_query_route_entry_pair_metric_via_recursive_neighbor_walk`
-> `0x004a5280` `aux_route_entry_tracker_query_route_entry_pair_metric_via_weighted_recursive_search`
-> `0x004a65b0` `aux_route_entry_tracker_dispatch_route_entry_pair_metric_query`
- `0x004a65b0` `aux_route_entry_tracker_dispatch_route_entry_pair_metric_query`
-> `0x00482e00` `runtime_query_hundredths_scaled_build_version`
-> `0x004a5280` `aux_route_entry_tracker_query_route_entry_pair_metric_via_weighted_recursive_search`
-> `0x004a5900` `aux_route_entry_tracker_query_route_entry_pair_metric_via_recursive_neighbor_walk`
-> `0x004a6630` `aux_route_entry_tracker_query_best_route_entry_pair_metric_with_endpoint_fallbacks`
- `0x004a6630` `aux_route_entry_tracker_query_best_route_entry_pair_metric_with_endpoint_fallbacks`
-> `0x004a65b0` `aux_route_entry_tracker_dispatch_route_entry_pair_metric_query`
- `0x004b8dc0` `shell_campaign_window_destroy`
-> `0x004b8e60` `shell_campaign_window_construct`
- `0x004ba3d0` `shell_building_detail_refresh_subject_cargo_and_service_rows`
-> `0x004b9a20` `shell_building_detail_refresh_flagged_service_capability_rows`
-> `0x004bad20` `shell_building_detail_refresh_subject_pair_value_rows`
-> `0x00517d40` `indexed_collection_entry_id_is_live`
-> `0x00518140` `indexed_collection_resolve_live_entry_by_id`
-> `0x0051c920` `localization_lookup_display_label_by_stem_or_fallback`
- `0x004bad20` `shell_building_detail_refresh_subject_pair_value_rows`
-> `0x004ba3d0` `shell_building_detail_refresh_subject_cargo_and_service_rows`
- `0x004c2ca0` `shell_company_detail_window_refresh_controls`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c3890` `shell_company_detail_issue_bond_offer_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c3f30` `shell_company_detail_issue_stock_offer_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c46d0` `shell_company_detail_buyback_stock_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c4c70` `shell_company_detail_setup_dividend_rate_adjust_controls`
-> `0x004c4e30` `shell_company_detail_render_change_dividend_rate_dialog`
-> `0x004c5140` `shell_company_detail_handle_change_dividend_rate_dialog_message`
-> `0x004c5360` `shell_company_detail_change_dividend_rate_flow`
-> `0x0053f9c0` `shell_window_register_child_control_sorted_by_priority_and_optional_tag`
- `0x004c4e30` `shell_company_detail_render_change_dividend_rate_dialog`
-> `0x004c5360` `shell_company_detail_change_dividend_rate_flow`
-> `0x004c98a0` `shell_open_custom_modal_dialog_with_callbacks`
- `0x004c5140` `shell_company_detail_handle_change_dividend_rate_dialog_message`
-> `0x00426260` `company_compute_board_approved_dividend_rate_ceiling`
-> `0x004c5360` `shell_company_detail_change_dividend_rate_flow`
-> `0x004c98a0` `shell_open_custom_modal_dialog_with_callbacks`
- `0x004c5360` `shell_company_detail_change_dividend_rate_flow`
-> `0x004c4c70` `shell_company_detail_setup_dividend_rate_adjust_controls`
-> `0x004c4e30` `shell_company_detail_render_change_dividend_rate_dialog`
-> `0x004c5140` `shell_company_detail_handle_change_dividend_rate_dialog_message`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c56a0` `shell_company_detail_window_handle_message`
-> `0x00423d70` `company_repay_bond_slot_and_compact_debt_table`
-> `0x00426d60` `company_deactivate_and_clear_chairman_share_links`
-> `0x004c2ca0` `shell_company_detail_window_refresh_controls`
-> `0x004c3890` `shell_company_detail_issue_bond_offer_flow`
-> `0x004c3f30` `shell_company_detail_issue_stock_offer_flow`
-> `0x004c46d0` `shell_company_detail_buyback_stock_flow`
-> `0x004c5360` `shell_company_detail_change_dividend_rate_flow`
-> `0x004c5a0e` `shell_company_detail_resign_chairmanship_flow`
-> `0x004c5b99` `shell_company_detail_bankruptcy_flow`
-> `0x004c5fc9` `shell_company_detail_buy_territory_access_rights_flow`
-> `0x004ddbd0` `shell_detail_panel_transition_manager`
-> `0x004ec640` `shell_company_detail_attempt_merger_flow`
-> `0x0050ccc0` `shell_company_detail_attempt_chairmanship_takeover_flow`
- `0x004c5a0e` `shell_company_detail_resign_chairmanship_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c5b99` `shell_company_detail_bankruptcy_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c5fc9` `shell_company_detail_buy_territory_access_rights_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004c7bc0` `shell_credits_window_destroy`
-> `0x004c7fc0` `shell_credits_window_construct`
- `0x004c7fc0` `shell_credits_window_construct`
-> `0x0053fa50` `shell_window_bind_resource_and_initialize_child_control_links`
- `0x004c98a0` `shell_open_custom_modal_dialog_with_callbacks`
-> `0x004ee0e0` `multiplayer_open_staged_text_entry_dialog`
- `0x004cc2d0` `map_editor_chairman_slot_panel_construct`
-> `0x004c9da0` `map_editor_chairman_slot_panel_format_slot_card`
- `0x004dd010` `shell_file_request_dialog_collect_target_path`
-> `0x004839b0` `shell_setup_query_file_list_uses_map_extension_pattern`
- `0x004dfbe0` `shell_game_window_construct`
-> `0x004dfd70` `shell_game_window_destroy`
-> `0x0053fa50` `shell_window_bind_resource_and_initialize_child_control_links`
- `0x004e0ba0` `game_uppermost_window_handle_message`
-> `0x0053f830` `shell_window_find_registered_child_control_by_id`
- `0x004ea620` `shell_load_screen_window_construct`
-> `0x004ea730` `shell_load_screen_window_destroy`
-> `0x0053fa50` `shell_window_bind_resource_and_initialize_child_control_links`
- `0x004ea730` `shell_load_screen_window_destroy`
-> `0x004ea620` `shell_load_screen_window_construct`
- `0x004ec640` `shell_company_detail_attempt_merger_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x004ee0e0` `multiplayer_open_staged_text_entry_dialog`
-> `0x00484910` `shell_save_graphics_config`
-> `0x004c98a0` `shell_open_custom_modal_dialog_with_callbacks`
- `0x00502030` `shell_setup_window_draw_table_driven_payload_category_row`
-> `0x00504010` `shell_setup_window_construct`
-> `0x00552560` `shell_queue_world_anchor_marker`
- `0x00502160` `shell_setup_window_set_first_persisted_selector_flag_or_index_and_save_config`
-> `0x00484910` `shell_save_graphics_config`
-> `0x005021c0` `shell_setup_window_set_second_persisted_selector_flag_or_index_and_save_config`
-> `0x00504010` `shell_setup_window_construct`
- `0x005021c0` `shell_setup_window_set_second_persisted_selector_flag_or_index_and_save_config`
-> `0x00484910` `shell_save_graphics_config`
-> `0x00502160` `shell_setup_window_set_first_persisted_selector_flag_or_index_and_save_config`
-> `0x00504010` `shell_setup_window_construct`
- `0x00502220` `shell_setup_window_publish_selected_profile_labels_and_preview_surface`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x0053f830` `shell_window_find_registered_child_control_by_id`
-> `0x00559520` `surface_init_rgba_pixel_buffer`
- `0x005027b0` `shell_setup_window_refresh_file_backed_selection_list_panel`
-> `0x004336a0` `shell_setup_file_list_construct_and_scan_dataset`
-> `0x00502220` `shell_setup_window_publish_selected_profile_labels_and_preview_surface`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
- `0x00502910` `shell_setup_window_refresh_mode_dependent_lists`
-> `0x005027b0` `shell_setup_window_refresh_file_backed_selection_list_panel`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
- `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x004336a0` `shell_setup_file_list_construct_and_scan_dataset`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00482d80` `runtime_query_cached_local_exe_version_string`
-> `0x004eb0b0` `shell_open_grayscale_map_tga_picker_and_stage_selection`
-> `0x005027b0` `shell_setup_window_refresh_file_backed_selection_list_panel`
-> `0x00502910` `shell_setup_window_refresh_mode_dependent_lists`
-> `0x005033d0` `shell_setup_window_handle_message`
- `0x005033d0` `shell_setup_window_handle_message`
-> `0x0042a970` `shell_open_file_dialog_copy_selected_path_and_restore_cwd`
-> `0x00484910` `shell_save_graphics_config`
-> `0x004eb0b0` `shell_open_grayscale_map_tga_picker_and_stage_selection`
-> `0x004fe120` `shell_has_settings_window`
-> `0x00501e50` `shell_open_settings_window`
-> `0x00501f20` `shell_query_registry_open_command_for_http_or_rtf_target`
-> `0x00502220` `shell_setup_window_publish_selected_profile_labels_and_preview_surface`
-> `0x00502550` `shell_setup_window_refresh_selection_lists_and_summary_fields`
-> `0x00502910` `shell_setup_window_refresh_mode_dependent_lists`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x00504010` `shell_setup_window_construct`
-> `0x005411c0` `shell_query_tga_header_is_supported_truecolor_image`
- `0x00504010` `shell_setup_window_construct`
-> `0x00502030` `shell_setup_window_draw_table_driven_payload_category_row`
-> `0x00502160` `shell_setup_window_set_first_persisted_selector_flag_or_index_and_save_config`
-> `0x005021c0` `shell_setup_window_set_second_persisted_selector_flag_or_index_and_save_config`
-> `0x00502550` `shell_setup_window_refresh_selection_lists_and_summary_fields`
-> `0x00502910` `shell_setup_window_refresh_mode_dependent_lists`
-> `0x00502c00` `shell_setup_window_select_launch_mode_and_apply_shell_state`
-> `0x0053f830` `shell_window_find_registered_child_control_by_id`
-> `0x0053f9c0` `shell_window_register_child_control_sorted_by_priority_and_optional_tag`
-> `0x0053fa50` `shell_window_bind_resource_and_initialize_child_control_links`
- `0x0050ccc0` `shell_company_detail_attempt_chairmanship_takeover_flow`
-> `0x004c56a0` `shell_company_detail_window_handle_message`
- `0x005174e0` `shell_video_window_construct`
-> `0x0053fa50` `shell_window_bind_resource_and_initialize_child_control_links`
- `0x00517570` `shell_video_window_destroy`
-> `0x00484910` `shell_save_graphics_config`
-> `0x005174e0` `shell_video_window_construct`
- `0x00517d40` `indexed_collection_entry_id_is_live`
-> `0x004ba3d0` `shell_building_detail_refresh_subject_cargo_and_service_rows`
-> `0x00518140` `indexed_collection_resolve_live_entry_by_id`
- `0x0051c920` `localization_lookup_display_label_by_stem_or_fallback`
-> `0x004ba3d0` `shell_building_detail_refresh_subject_cargo_and_service_rows`
- `0x0053f830` `shell_window_find_registered_child_control_by_id`
-> `0x004e0ba0` `game_uppermost_window_handle_message`
-> `0x00502220` `shell_setup_window_publish_selected_profile_labels_and_preview_surface`
-> `0x00504010` `shell_setup_window_construct`
- `0x0053f9c0` `shell_window_register_child_control_sorted_by_priority_and_optional_tag`
-> `0x004c4c70` `shell_company_detail_setup_dividend_rate_adjust_controls`
-> `0x00558130` `shell_child_control_set_owner_resolve_caption_and_refresh`
- `0x005411c0` `shell_query_tga_header_is_supported_truecolor_image`
-> `0x005033d0` `shell_setup_window_handle_message`
- `0x00558130` `shell_child_control_set_owner_resolve_caption_and_refresh`
-> `0x0053f9c0` `shell_window_register_child_control_sorted_by_priority_and_optional_tag`

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,141 @@
digraph shell_load {
graph [rankdir=LR, labelloc="t", labeljust="l"];
label="Shell Load Startup Subgraph";
node [shape=box, style="rounded,filled", fillcolor="#f8f8f8", color="#555555", fontname="Helvetica"];
edge [color="#666666", fontname="Helvetica"];
subgraph cluster_bootstrap {
label="bootstrap";
color="#cccccc";
"0x00482ec0" [label="0x00482ec0\\nshell_transition_mode [seed]", fillcolor="#ffe9a8"];
"0x004840e0" [label="0x004840e0\\nbootstrap_init_shell_window_services", fillcolor="#f8f8f8"];
"0x00521390" [label="0x00521390\\nbootstrap_destroy_shell_service_bundle", fillcolor="#f8f8f8"];
}
subgraph cluster_map {
label="map";
color="#cccccc";
"0x004133b0" [label="0x004133b0\\nplaced_structure_collection_refresh_local_runtime_records_and_position_scalars", fillcolor="#f8f8f8"];
"0x0041ea50" [label="0x0041ea50\\nworld_setup_building_collection_phase", fillcolor="#f8f8f8"];
"0x00421b60" [label="0x00421b60\\nworld_region_collection_seed_default_regions", fillcolor="#f8f8f8"];
"0x00421c20" [label="0x00421c20\\nworld_region_collection_run_building_population_pass", fillcolor="#f8f8f8"];
"0x00434300" [label="0x00434300\\nworld_runtime_release_global_services", fillcolor="#f8f8f8"];
"0x00437220" [label="0x00437220\\nworld_build_chairman_profile_slot_records", fillcolor="#f8f8f8"];
"0x004377a0" [label="0x004377a0\\nworld_seed_default_chairman_profile_slots", fillcolor="#f8f8f8"];
"0x004384d0" [label="0x004384d0\\nworld_run_post_load_generation_pipeline", fillcolor="#f8f8f8"];
"0x00438890" [label="0x00438890\\nshell_active_mode_run_profile_startup_and_load_dispatch [seed]", fillcolor="#ffe9a8"];
"0x00443a50" [label="0x00443a50\\nworld_entry_transition_and_runtime_bringup", fillcolor="#f8f8f8"];
"0x00445ac0" [label="0x00445ac0\\nshell_map_file_entry_coordinator", fillcolor="#f8f8f8"];
"0x00446d40" [label="0x00446d40\\nworld_load_saved_runtime_state_bundle", fillcolor="#f8f8f8"];
"0x0044fb70" [label="0x0044fb70\\nworld_compute_transport_and_pricing_grid", fillcolor="#f8f8f8"];
"0x0047d440" [label="0x0047d440\\nworld_conditionally_seed_named_starting_railroad_companies", fillcolor="#f8f8f8"];
"0x004882e0" [label="0x004882e0\\nworld_region_border_overlay_rebuild", fillcolor="#f8f8f8"];
}
subgraph cluster_render {
label="render";
color="#cccccc";
"0x0043f640" [label="0x0043f640\\nworld_render_station_candidate_service_map_overlay", fillcolor="#f8f8f8"];
}
subgraph cluster_shell {
label="shell";
color="#cccccc";
"0x0046b780" [label="0x0046b780\\nmultiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync", fillcolor="#f8f8f8"];
"0x00483f70" [label="0x00483f70\\nshell_service_pump_iteration", fillcolor="#f8f8f8"];
"0x00484910" [label="0x00484910\\nshell_save_graphics_config", fillcolor="#f8f8f8"];
"0x004b8dc0" [label="0x004b8dc0\\nshell_campaign_window_destroy", fillcolor="#f8f8f8"];
"0x004b8e60" [label="0x004b8e60\\nshell_campaign_window_construct", fillcolor="#f8f8f8"];
"0x004c7bc0" [label="0x004c7bc0\\nshell_credits_window_destroy", fillcolor="#f8f8f8"];
"0x004c7fc0" [label="0x004c7fc0\\nshell_credits_window_construct", fillcolor="#f8f8f8"];
"0x004dd010" [label="0x004dd010\\nshell_file_request_dialog_collect_target_path", fillcolor="#f8f8f8"];
"0x004dfbe0" [label="0x004dfbe0\\nshell_game_window_construct", fillcolor="#f8f8f8"];
"0x004dfd70" [label="0x004dfd70\\nshell_game_window_destroy", fillcolor="#f8f8f8"];
"0x004dfdf0" [label="0x004dfdf0\\nshell_ensure_game_message_window", fillcolor="#f8f8f8"];
"0x004e3a80" [label="0x004e3a80\\nshell_load_screen_window_handle_message", fillcolor="#f8f8f8"];
"0x004e5300" [label="0x004e5300\\nshell_load_screen_render_player_detail_stock_holdings_panel", fillcolor="#f8f8f8"];
"0x004e5a80" [label="0x004e5a80\\nshell_render_company_overview_panel_header_and_optional_change_affordance", fillcolor="#f8f8f8"];
"0x004e5cf0" [label="0x004e5cf0\\nshell_format_company_governance_and_economy_status_panel", fillcolor="#f8f8f8"];
"0x004ea620" [label="0x004ea620\\nshell_load_screen_window_construct", fillcolor="#f8f8f8"];
"0x004ea720" [label="0x004ea720\\nshell_load_screen_window_is_open", fillcolor="#f8f8f8"];
"0x004ea730" [label="0x004ea730\\nshell_load_screen_window_destroy", fillcolor="#f8f8f8"];
"0x004ee3a0" [label="0x004ee3a0\\nmultiplayer_reset_tool_globals", fillcolor="#f8f8f8"];
"0x004ee950" [label="0x004ee950\\nmultiplayer_load_selected_map_preview_surface", fillcolor="#f8f8f8"];
"0x004efe80" [label="0x004efe80\\nmultiplayer_window_init_globals", fillcolor="#f8f8f8"];
"0x00502720" [label="0x00502720\\npaint_terrain_tool_init_globals", fillcolor="#f8f8f8"];
"0x00504010" [label="0x00504010\\nshell_setup_window_construct", fillcolor="#f8f8f8"];
"0x005174e0" [label="0x005174e0\\nshell_video_window_construct", fillcolor="#f8f8f8"];
"0x00517570" [label="0x00517570\\nshell_video_window_destroy", fillcolor="#f8f8f8"];
"0x005204b0" [label="0x005204b0\\nshell_flush_deferred_work_queues", fillcolor="#f8f8f8"];
}
subgraph cluster_simulation {
label="simulation";
color="#cccccc";
"0x00437b20" [label="0x00437b20\\nsimulation_run_chunked_fast_forward_burst", fillcolor="#f8f8f8"];
}
"0x00421b60" -> "0x004384d0";
"0x00434300" -> "0x00443a50";
"0x00434300" -> "0x00446d40";
"0x00434300" -> "0x00482ec0";
"0x00437220" -> "0x004384d0";
"0x00437b20" -> "0x004384d0";
"0x004384d0" -> "0x004133b0";
"0x004384d0" -> "0x0041ea50";
"0x004384d0" -> "0x00421b60";
"0x004384d0" -> "0x00421c20";
"0x004384d0" -> "0x00437220";
"0x004384d0" -> "0x004377a0";
"0x004384d0" -> "0x00437b20";
"0x004384d0" -> "0x0044fb70";
"0x004384d0" -> "0x0047d440";
"0x004384d0" -> "0x004882e0";
"0x00438890" -> "0x004384d0";
"0x00438890" -> "0x00445ac0";
"0x0043f640" -> "0x0046b780";
"0x00443a50" -> "0x00438890";
"0x00443a50" -> "0x00482ec0";
"0x00445ac0" -> "0x00443a50";
"0x00445ac0" -> "0x00446d40";
"0x00445ac0" -> "0x004dd010";
"0x0046b780" -> "0x00438890";
"0x0046b780" -> "0x00445ac0";
"0x0047d440" -> "0x004377a0";
"0x00482ec0" -> "0x00438890";
"0x00482ec0" -> "0x00443a50";
"0x00482ec0" -> "0x004840e0";
"0x00482ec0" -> "0x004b8dc0";
"0x00482ec0" -> "0x004b8e60";
"0x00482ec0" -> "0x004c7bc0";
"0x00482ec0" -> "0x004c7fc0";
"0x00482ec0" -> "0x004dfbe0";
"0x00482ec0" -> "0x004dfd70";
"0x00482ec0" -> "0x004ea620";
"0x00482ec0" -> "0x004ea730";
"0x00482ec0" -> "0x004efe80";
"0x00482ec0" -> "0x00504010";
"0x00482ec0" -> "0x005174e0";
"0x00482ec0" -> "0x00517570";
"0x004840e0" -> "0x00482ec0";
"0x004840e0" -> "0x00483f70";
"0x004840e0" -> "0x00521390";
"0x004882e0" -> "0x004384d0";
"0x004b8dc0" -> "0x004b8e60";
"0x004c7bc0" -> "0x004c7fc0";
"0x004dfbe0" -> "0x004dfd70";
"0x004dfbe0" -> "0x004dfdf0";
"0x004e3a80" -> "0x004e5300";
"0x004e3a80" -> "0x004e5a80";
"0x004e3a80" -> "0x004e5cf0";
"0x004e5a80" -> "0x004e5cf0";
"0x004ea620" -> "0x004e3a80";
"0x004ea620" -> "0x004e5300";
"0x004ea620" -> "0x004e5a80";
"0x004ea620" -> "0x004e5cf0";
"0x004ea620" -> "0x004ea720";
"0x004ea620" -> "0x004ea730";
"0x004ea720" -> "0x004ea620";
"0x004ea720" -> "0x004ea730";
"0x004ea730" -> "0x004ea620";
"0x004ee3a0" -> "0x00482ec0";
"0x004ee950" -> "0x004efe80";
"0x00502720" -> "0x004ee3a0";
"0x00517570" -> "0x00484910";
"0x00517570" -> "0x005174e0";
"0x005204b0" -> "0x00443a50";
}

View file

@ -0,0 +1,156 @@
# Shell Load Startup Subgraph
- Nodes: `46`
- Edges: `69`
- Seeds: `0x00438890`, `0x00482ec0`
- Graphviz: `shell-load-subgraph.dot`
## Nodes
| Address | Name | Subsystem | Confidence |
| --- | --- | --- | --- |
| `0x004133b0` | `placed_structure_collection_refresh_local_runtime_records_and_position_scalars` | `map` | `2` |
| `0x0041ea50` | `world_setup_building_collection_phase` | `map` | `3` |
| `0x00421b60` | `world_region_collection_seed_default_regions` | `map` | `4` |
| `0x00421c20` | `world_region_collection_run_building_population_pass` | `map` | `4` |
| `0x00434300` | `world_runtime_release_global_services` | `map` | `3` |
| `0x00437220` | `world_build_chairman_profile_slot_records` | `map` | `4` |
| `0x004377a0` | `world_seed_default_chairman_profile_slots` | `map` | `4` |
| `0x00437b20` | `simulation_run_chunked_fast_forward_burst` | `simulation` | `3` |
| `0x004384d0` | `world_run_post_load_generation_pipeline` | `map` | `4` |
| `0x00438890` | `shell_active_mode_run_profile_startup_and_load_dispatch` | `map` | `4` |
| `0x0043f640` | `world_render_station_candidate_service_map_overlay` | `render` | `4` |
| `0x00443a50` | `world_entry_transition_and_runtime_bringup` | `map` | `4` |
| `0x00445ac0` | `shell_map_file_entry_coordinator` | `map` | `4` |
| `0x00446d40` | `world_load_saved_runtime_state_bundle` | `map` | `4` |
| `0x0044fb70` | `world_compute_transport_and_pricing_grid` | `map` | `3` |
| `0x0046b780` | `multiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync` | `shell` | `4` |
| `0x0047d440` | `world_conditionally_seed_named_starting_railroad_companies` | `map` | `4` |
| `0x00482ec0` | `shell_transition_mode` | `bootstrap` | `4` |
| `0x00483f70` | `shell_service_pump_iteration` | `shell` | `4` |
| `0x004840e0` | `bootstrap_init_shell_window_services` | `bootstrap` | `4` |
| `0x00484910` | `shell_save_graphics_config` | `shell` | `4` |
| `0x004882e0` | `world_region_border_overlay_rebuild` | `map` | `4` |
| `0x004b8dc0` | `shell_campaign_window_destroy` | `shell` | `4` |
| `0x004b8e60` | `shell_campaign_window_construct` | `shell` | `4` |
| `0x004c7bc0` | `shell_credits_window_destroy` | `shell` | `4` |
| `0x004c7fc0` | `shell_credits_window_construct` | `shell` | `4` |
| `0x004dd010` | `shell_file_request_dialog_collect_target_path` | `shell` | `4` |
| `0x004dfbe0` | `shell_game_window_construct` | `shell` | `4` |
| `0x004dfd70` | `shell_game_window_destroy` | `shell` | `4` |
| `0x004dfdf0` | `shell_ensure_game_message_window` | `shell` | `4` |
| `0x004e3a80` | `shell_load_screen_window_handle_message` | `shell` | `4` |
| `0x004e5300` | `shell_load_screen_render_player_detail_stock_holdings_panel` | `shell` | `4` |
| `0x004e5a80` | `shell_render_company_overview_panel_header_and_optional_change_affordance` | `shell` | `4` |
| `0x004e5cf0` | `shell_format_company_governance_and_economy_status_panel` | `shell` | `4` |
| `0x004ea620` | `shell_load_screen_window_construct` | `shell` | `4` |
| `0x004ea720` | `shell_load_screen_window_is_open` | `shell` | `4` |
| `0x004ea730` | `shell_load_screen_window_destroy` | `shell` | `4` |
| `0x004ee3a0` | `multiplayer_reset_tool_globals` | `shell` | `3` |
| `0x004ee950` | `multiplayer_load_selected_map_preview_surface` | `shell` | `4` |
| `0x004efe80` | `multiplayer_window_init_globals` | `shell` | `4` |
| `0x00502720` | `paint_terrain_tool_init_globals` | `shell` | `4` |
| `0x00504010` | `shell_setup_window_construct` | `shell` | `4` |
| `0x005174e0` | `shell_video_window_construct` | `shell` | `4` |
| `0x00517570` | `shell_video_window_destroy` | `shell` | `4` |
| `0x005204b0` | `shell_flush_deferred_work_queues` | `shell` | `4` |
| `0x00521390` | `bootstrap_destroy_shell_service_bundle` | `bootstrap` | `4` |
## Edges
- `0x00421b60` `world_region_collection_seed_default_regions`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x00434300` `world_runtime_release_global_services`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00446d40` `world_load_saved_runtime_state_bundle`
-> `0x00482ec0` `shell_transition_mode`
- `0x00437220` `world_build_chairman_profile_slot_records`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x00437b20` `simulation_run_chunked_fast_forward_burst`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x004384d0` `world_run_post_load_generation_pipeline`
-> `0x004133b0` `placed_structure_collection_refresh_local_runtime_records_and_position_scalars`
-> `0x0041ea50` `world_setup_building_collection_phase`
-> `0x00421b60` `world_region_collection_seed_default_regions`
-> `0x00421c20` `world_region_collection_run_building_population_pass`
-> `0x00437220` `world_build_chairman_profile_slot_records`
-> `0x004377a0` `world_seed_default_chairman_profile_slots`
-> `0x00437b20` `simulation_run_chunked_fast_forward_burst`
-> `0x0044fb70` `world_compute_transport_and_pricing_grid`
-> `0x0047d440` `world_conditionally_seed_named_starting_railroad_companies`
-> `0x004882e0` `world_region_border_overlay_rebuild`
- `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
-> `0x00445ac0` `shell_map_file_entry_coordinator`
- `0x0043f640` `world_render_station_candidate_service_map_overlay`
-> `0x0046b780` `multiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync`
- `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00482ec0` `shell_transition_mode`
- `0x00445ac0` `shell_map_file_entry_coordinator`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x00446d40` `world_load_saved_runtime_state_bundle`
-> `0x004dd010` `shell_file_request_dialog_collect_target_path`
- `0x0046b780` `multiplayer_preview_dataset_service_launch_state_and_warn_out_of_sync`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00445ac0` `shell_map_file_entry_coordinator`
- `0x0047d440` `world_conditionally_seed_named_starting_railroad_companies`
-> `0x004377a0` `world_seed_default_chairman_profile_slots`
- `0x00482ec0` `shell_transition_mode`
-> `0x00438890` `shell_active_mode_run_profile_startup_and_load_dispatch`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`
-> `0x004840e0` `bootstrap_init_shell_window_services`
-> `0x004b8dc0` `shell_campaign_window_destroy`
-> `0x004b8e60` `shell_campaign_window_construct`
-> `0x004c7bc0` `shell_credits_window_destroy`
-> `0x004c7fc0` `shell_credits_window_construct`
-> `0x004dfbe0` `shell_game_window_construct`
-> `0x004dfd70` `shell_game_window_destroy`
-> `0x004ea620` `shell_load_screen_window_construct`
-> `0x004ea730` `shell_load_screen_window_destroy`
-> `0x004efe80` `multiplayer_window_init_globals`
-> `0x00504010` `shell_setup_window_construct`
-> `0x005174e0` `shell_video_window_construct`
-> `0x00517570` `shell_video_window_destroy`
- `0x004840e0` `bootstrap_init_shell_window_services`
-> `0x00482ec0` `shell_transition_mode`
-> `0x00483f70` `shell_service_pump_iteration`
-> `0x00521390` `bootstrap_destroy_shell_service_bundle`
- `0x004882e0` `world_region_border_overlay_rebuild`
-> `0x004384d0` `world_run_post_load_generation_pipeline`
- `0x004b8dc0` `shell_campaign_window_destroy`
-> `0x004b8e60` `shell_campaign_window_construct`
- `0x004c7bc0` `shell_credits_window_destroy`
-> `0x004c7fc0` `shell_credits_window_construct`
- `0x004dfbe0` `shell_game_window_construct`
-> `0x004dfd70` `shell_game_window_destroy`
-> `0x004dfdf0` `shell_ensure_game_message_window`
- `0x004e3a80` `shell_load_screen_window_handle_message`
-> `0x004e5300` `shell_load_screen_render_player_detail_stock_holdings_panel`
-> `0x004e5a80` `shell_render_company_overview_panel_header_and_optional_change_affordance`
-> `0x004e5cf0` `shell_format_company_governance_and_economy_status_panel`
- `0x004e5a80` `shell_render_company_overview_panel_header_and_optional_change_affordance`
-> `0x004e5cf0` `shell_format_company_governance_and_economy_status_panel`
- `0x004ea620` `shell_load_screen_window_construct`
-> `0x004e3a80` `shell_load_screen_window_handle_message`
-> `0x004e5300` `shell_load_screen_render_player_detail_stock_holdings_panel`
-> `0x004e5a80` `shell_render_company_overview_panel_header_and_optional_change_affordance`
-> `0x004e5cf0` `shell_format_company_governance_and_economy_status_panel`
-> `0x004ea720` `shell_load_screen_window_is_open`
-> `0x004ea730` `shell_load_screen_window_destroy`
- `0x004ea720` `shell_load_screen_window_is_open`
-> `0x004ea620` `shell_load_screen_window_construct`
-> `0x004ea730` `shell_load_screen_window_destroy`
- `0x004ea730` `shell_load_screen_window_destroy`
-> `0x004ea620` `shell_load_screen_window_construct`
- `0x004ee3a0` `multiplayer_reset_tool_globals`
-> `0x00482ec0` `shell_transition_mode`
- `0x004ee950` `multiplayer_load_selected_map_preview_surface`
-> `0x004efe80` `multiplayer_window_init_globals`
- `0x00502720` `paint_terrain_tool_init_globals`
-> `0x004ee3a0` `multiplayer_reset_tool_globals`
- `0x00517570` `shell_video_window_destroy`
-> `0x00484910` `shell_save_graphics_config`
-> `0x005174e0` `shell_video_window_construct`
- `0x005204b0` `shell_flush_deferred_work_queues`
-> `0x00443a50` `world_entry_transition_and_runtime_bringup`