# Analysis Context - Target binary: `/home/jan/projects/rrt/rt3_wineprefix/drive_c/rt3/RT3.exe` - Function names prefer the curated ledger when a committed mapping exists. ## Function Targets ### `0x00595440` -> `0x00595440` `multiplayer_transport_init_selector_slot` - Size: `100` - Calling convention: `cdecl` - Signature: `fcn.00595440(int32_t arg_4h, int32_t arg_39ch, int32_t arg_59bh);` 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 ``` Callers: - `0x00593841` in `0x00593790` `multiplayer_transport_handle_names_query_response` - `0x00593b25` in `0x00593b00` `multiplayer_transport_handle_selector_update_response` Caller xref excerpts: #### `0x00593841` ```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 ``` 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` 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: 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`