19 KiB
19 KiB
Pending-Template Store Management
- Target binary:
/home/jan/projects/rrt/rt3_wineprefix/drive_c/rt3/RT3.exe - Scope: companion pending-template dispatch store and its adjacent management helpers.
Init
0x0059b710 multiplayer_transport_init_pending_template_dispatch_store
- Size:
40 - Calling convention:
cdecl - Callers: 0x0058f1e0@0x0058f110:multiplayer_transport_worker_init
- Direct callees: 0x0059b722->0x0059e0b0:fcn.0059e0b0
- Data refs: 0x0059b713->0x0059b2d0
- Key constants: 0x00000080; 0x00000018
- Key strings: none
Entry excerpt:
59b6f0: subb -0x4ab8ffa7(%ebp), %dh
59b6f6: popl %ecx
59b6f7: addb %cl, -0x46ffa64b(%ebp)
59b6fd: movb $0x59, %ch
59b6ff: addb %cl, (%esi,%esi,4)
59b702: popl %ecx
59b703: addb %ch, 0x59(%esi,%esi,4)
59b707: addb %dl, -0x6f6f6f70(%eax)
59b70d: nop
59b70e: nop
59b70f: nop
59b710: pushl %esi
59b711: movl %ecx, %esi
59b713: pushl $0x59b2d0 # imm = 0x59B2D0
59b718: movl $0x80, %edx
59b71d: movl $0x18, %ecx
59b722: calll 0x59e0b0 <.text+0x19d0b0>
59b727: xorl %ecx, %ecx
59b729: testl %eax, %eax
59b72b: setne %cl
59b72e: movl %eax, 0x55c(%esi)
0x0059c5b0 growable_text_buffer_init
- Size:
40 - Calling convention:
cdecl - Callers: 0x0059c68e@0x0059c670:multiplayer_transport_text_stream_init; 0x0059c69d@0x0059c670:multiplayer_transport_text_stream_init
- Direct callees: 0x0059c5c3->0x0058f380:tracked_heap_alloc_with_header
- Data refs: none
- Key constants: 0x00002001; 0x00002000
- Key strings: none
Entry excerpt:
59c590: pushl %edi
59c591: pushl %edx
59c592: movl %ecx, %edi
59c594: calll 0x59c540 <.text+0x19b540>
59c599: xorl %ecx, %ecx
59c59b: cmpl $-0x1, %eax
59c59e: setne %cl
59c5a1: popl %edi
59c5a2: movl %ecx, %eax
59c5a4: retl
59c5a5: nop
59c5a6: nop
59c5a7: nop
59c5a8: nop
59c5a9: nop
59c5aa: nop
59c5ab: nop
59c5ac: nop
59c5ad: nop
59c5ae: nop
59c5af: nop
59c5b0: movl $0x2001, %ecx # imm = 0x2001
59c5b5: movl $0x0, 0x4(%esi)
59c5bc: movl $0x2000, 0x8(%esi) # imm = 0x2000
59c5c3: calll 0x58f380 <.text+0x18e380>
59c5c8: testl %eax, %eax
59c5ca: movl %eax, (%esi)
59c5cc: jne 0x59c5cf <.text+0x19b5cf>
59c5ce: retl
59c5cf: movb $0x0, (%eax)
Destroy
0x0059b2e0 multiplayer_transport_destroy_pending_template_dispatch_record
- Size:
929 - Calling convention:
cdecl - Callers: 0x0059b76f@0x0059b740:multiplayer_transport_destroy_pending_template_dispatch_store; 0x0059c245@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c259@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c275@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c295@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c2b9@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c2d1@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c2e5@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c309@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c33a@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c356@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c382@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c3a2@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c3ca@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c3e2@0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c4c1@0x0059c470:multiplayer_transport_service_pending_template_dispatch_store
- Direct callees: 0x0059b2f9->0x0058f3c0:tracked_heap_free_with_header; 0x0059b30d->0x0058f3c0:tracked_heap_free_with_header; 0x0059b321->0x0058f3c0:tracked_heap_free_with_header; 0x0059b333->0x0058f3c0:tracked_heap_free_with_header; 0x0059b33b->0x0058f3c0:tracked_heap_free_with_header; 0x0059b343->0x0058f3c0:tracked_heap_free_with_header; 0x0059b357->0x0058f3c0:tracked_heap_free_with_header; 0x0059b35f->0x0058f3c0:tracked_heap_free_with_header; 0x0059b373->0x0058f3c0:tracked_heap_free_with_header; 0x0059b388->0x0058f3c0:tracked_heap_free_with_header; 0x0059b390->0x0058f3c0:tracked_heap_free_with_header; 0x0059b3b6->0x0058f3c0:tracked_heap_free_with_header; 0x0059b3c1->0x0058f3c0:tracked_heap_free_with_header; 0x0059b3d9->0x0058f3c0:tracked_heap_free_with_header; 0x0059b3ee->0x0058f3c0:tracked_heap_free_with_header; 0x0059b3f6->0x0058f3c0:tracked_heap_free_with_header; 0x0059b40b->0x0058f3c0:tracked_heap_free_with_header; 0x0059b426->0x0058f3c0:tracked_heap_free_with_header; 0x0059b436->0x0058f3c0:tracked_heap_free_with_header; 0x0059b43e->0x0058f3c0:tracked_heap_free_with_header; 0x0059b453->0x0058f3c0:tracked_heap_free_with_header; 0x0059b45b->0x0058f3c0:tracked_heap_free_with_header; 0x0059b463->0x0058f3c0:tracked_heap_free_with_header; 0x0059b46b->0x0058f3c0:tracked_heap_free_with_header; 0x0059b486->0x0058f3c0:tracked_heap_free_with_header; 0x0059b496->0x0058f3c0:tracked_heap_free_with_header; 0x0059b4b3->0x0058f3c0:tracked_heap_free_with_header; 0x0059b4bb->0x0058f3c0:tracked_heap_free_with_header; 0x0059b4c3->0x0058f3c0:tracked_heap_free_with_header; 0x0059b4cb->0x0058f3c0:tracked_heap_free_with_header; 0x0059b4e0->0x0058f3c0:tracked_heap_free_with_header; 0x0059b4f6->0x0058f3c0:tracked_heap_free_with_header; 0x0059b506->0x0058f3c0:tracked_heap_free_with_header; 0x0059b51b->0x0058f3c0:tracked_heap_free_with_header; 0x0059b530->0x0058f3c0:tracked_heap_free_with_header; 0x0059b538->0x0058f3c0:tracked_heap_free_with_header; 0x0059b54c->0x0058f3c0:tracked_heap_free_with_header; 0x0059b566->0x0058f3c0:tracked_heap_free_with_header; 0x0059b576->0x0058f3c0:tracked_heap_free_with_header; 0x0059b57e->0x0058f3c0:tracked_heap_free_with_header; 0x0059b592->0x0058f3c0:tracked_heap_free_with_header; 0x0059b59a->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5a2->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5aa->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5bf->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5d6->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5e5->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5f5->0x0058f3c0:tracked_heap_free_with_header; 0x0059b5fd->0x0058f3c0:tracked_heap_free_with_header; 0x0059b612->0x0058f3c0:tracked_heap_free_with_header; 0x0059b61a->0x0058f3c0:tracked_heap_free_with_header; 0x0059b636->0x0058f3c0:tracked_heap_free_with_header; 0x0059b645->0x0058f3c0:tracked_heap_free_with_header; 0x0059b655->0x0058f3c0:tracked_heap_free_with_header; 0x0059b65d->0x0058f3c0:tracked_heap_free_with_header; 0x0059b672->0x0058f3c0:tracked_heap_free_with_header
- Data refs: 0x0059b2ed->0x0059b684
- Key constants: 0x00000020
- Key strings: none
Entry excerpt:
59b2c0: incl %ebx
59b2c2: nop
59b2c3: nop
59b2c4: nop
59b2c5: nop
59b2c6: nop
59b2c7: nop
59b2c8: nop
59b2c9: nop
59b2ca: nop
59b2cb: nop
59b2cc: nop
59b2cd: nop
59b2ce: nop
59b2cf: nop
59b2d0: movl 0x14(%ecx), %ecx
59b2d3: jmp 0x58f3c0 <.text+0x18e3c0>
59b2d8: nop
59b2d9: nop
59b2da: nop
59b2db: nop
59b2dc: nop
59b2dd: nop
59b2de: nop
59b2df: nop
59b2e0: movl (%esi), %eax
59b2e2: cmpl $0x20, %eax
59b2e5: pushl %edi
59b2e6: ja 0x59b678 <.text+0x19a678>
59b2ec: pushl %ebx
59b2ed: jmpl *0x59b684(,%eax,4)
59b2f4: movl 0x8(%esi), %eax
59b2f7: movl (%eax), %ecx
59b2f9: calll 0x58f3c0 <.text+0x18e3c0>
59b2fe: movl 0x8(%esi), %ecx
0x0059b740 multiplayer_transport_destroy_pending_template_dispatch_store
- Size:
74 - Calling convention:
cdecl - Callers: 0x0058e4cf@0x0058e480:multiplayer_transport_worker_shutdown_gracefully; 0x0058f214@0x0058f110:multiplayer_transport_worker_init
- Direct callees: 0x0059b76f->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059b74f->0x0059e110:generic_vector_count; 0x0059b768->0x0059e120:generic_vector_index_ptr
- Data refs: none
- Key constants: none
- Key strings: none
Entry excerpt:
59b720: addb %al, (%eax)
59b722: calll 0x59e0b0 <.text+0x19d0b0>
59b727: xorl %ecx, %ecx
59b729: testl %eax, %eax
59b72b: setne %cl
59b72e: movl %eax, 0x55c(%esi)
59b734: popl %esi
59b735: movl %ecx, %eax
59b737: retl
59b738: nop
59b739: nop
59b73a: nop
59b73b: nop
59b73c: nop
59b73d: nop
59b73e: nop
59b73f: nop
59b740: pushl %ebp
59b741: movl %ecx, %ebp
59b743: movl 0x55c(%ebp), %ecx
59b749: testl %ecx, %ecx
59b74b: je 0x59b788 <.text+0x19a788>
59b74d: pushl %ebx
59b74e: pushl %edi
59b74f: calll 0x59e110 <.text+0x19d110>
59b754: movl %eax, %ebx
59b756: xorl %edi, %edi
59b758: testl %ebx, %ebx
59b75a: jle 0x59b77a <.text+0x19a77a>
59b75c: pushl %esi
59b75d: leal (%ecx), %ecx
0x0059c5e0 growable_text_buffer_free
- Size:
7 - Calling convention:
cdecl - Callers: 0x0059c6a8@0x0059c670:multiplayer_transport_text_stream_init; 0x0059c7b8@0x0059c790:multiplayer_transport_text_stream_destroy; 0x0059c7c3@0x0059c790:multiplayer_transport_text_stream_destroy
- Direct callees: none
- Data refs: none
- Key constants: none
- Key strings: none
Entry excerpt:
59c5c0: andb %al, (%eax)
59c5c2: addb %ch, %al
59c5c4: movl $0x85ffff2d, %eax # imm = 0x85FFFF2D
59c5c9: rorb $0xc6, -0x3cfe8afa(%ecx)
59c5d0: addb %al, (%eax)
59c5d2: movl $0x1, %eax
59c5d7: retl
59c5d8: nop
59c5d9: nop
59c5da: nop
59c5db: nop
59c5dc: nop
59c5dd: nop
59c5de: nop
59c5df: nop
59c5e0: movl (%eax), %ecx
59c5e2: jmp 0x58f3c0 <.text+0x18e3c0>
59c5e7: nop
59c5e8: nop
59c5e9: nop
59c5ea: nop
59c5eb: nop
59c5ec: nop
59c5ed: nop
59c5ee: nop
59c5ef: nop
59c5f0: movl 0x8(%edi), %eax
59c5f3: pushl %esi
59c5f4: movl 0x4(%edi), %esi
59c5f7: addl %ecx, %esi
59c5f9: cmpl %eax, %esi
59c5fb: jle 0x59c62a <.text+0x19b62a>
59c5fd: addl $0x2000, %esi # imm = 0x2000
Lookup
0x0059c540 multiplayer_transport_find_pending_template_dispatch_record_index
- Size:
72 - Calling convention:
cdecl - Callers: 0x0059c594@0x0059c590:multiplayer_transport_has_pending_template_dispatch_record
- Direct callees: 0x0059c54d->0x0059e110:generic_vector_count; 0x0059c568->0x0059e120:generic_vector_index_ptr
- Data refs: none
- Key constants: 0x000000ff
- Key strings: none
Entry excerpt:
59c520: movl 0x55c(%ebx), %ecx
59c526: calll 0x59e110 <.text+0x19d110>
59c52b: cmpl %ebp, %eax
59c52d: jg 0x59c4a0 <.text+0x19b4a0>
59c533: popl %esi
59c534: popl %edi
59c535: popl %ebp
59c536: popl %ebx
59c537: addl $0x1c, %esp
59c53a: retl
59c53b: nop
59c53c: nop
59c53d: nop
59c53e: nop
59c53f: nop
59c540: movl 0x55c(%edi), %ecx
59c546: pushl %ebx
59c547: pushl %ebp
59c548: movl 0xc(%esp), %ebp
59c54c: pushl %esi
59c54d: calll 0x59e110 <.text+0x19d110>
59c552: movl %eax, %ebx
59c554: xorl %esi, %esi
59c556: testl %ebx, %ebx
59c558: jle 0x59c577 <.text+0x19b577>
59c55a: leal (%ebx), %ebx
0x0059c590 multiplayer_transport_has_pending_template_dispatch_record
- Size:
21 - Calling convention:
cdecl - Callers: 0x0058e381@0x0058e370:multiplayer_transport_is_request_pending
- Direct callees: 0x0059c594->0x0059c540:multiplayer_transport_find_pending_template_dispatch_record_index
- Data refs: none
- Key constants: none
- Key strings: none
Entry excerpt:
59c570: je 0x59c580 <.text+0x19b580>
59c572: incl %esi
59c573: cmpl %ebx, %esi
59c575: jl 0x59c560 <.text+0x19b560>
59c577: popl %esi
59c578: popl %ebp
59c579: orl $-0x1, %eax
59c57c: popl %ebx
59c57d: retl $0x4
59c580: movl %esi, %eax
59c582: popl %esi
59c583: popl %ebp
59c584: popl %ebx
59c585: retl $0x4
59c588: nop
59c589: nop
59c58a: nop
59c58b: nop
59c58c: nop
59c58d: nop
59c58e: nop
59c58f: nop
59c590: pushl %edi
59c591: pushl %edx
59c592: movl %ecx, %edi
59c594: calll 0x59c540 <.text+0x19b540>
59c599: xorl %ecx, %ecx
59c59b: cmpl $-0x1, %eax
59c59e: setne %cl
59c5a1: popl %edi
59c5a2: movl %ecx, %eax
59c5a4: retl
59c5a5: nop
59c5a6: nop
59c5a7: nop
59c5a8: nop
59c5a9: nop
59c5aa: nop
59c5ab: nop
59c5ac: nop
59c5ad: nop
59c5ae: nop
59c5af: nop
Prune / Remove
0x0059c470 multiplayer_transport_service_pending_template_dispatch_store
- Size:
203 - Calling convention:
cdecl - Callers: 0x0058e470@0x0058e3f0:multiplayer_transport_drain_request_text_queue
- Direct callees: 0x0059c4c1->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c511->0x0059c220:multiplayer_transport_dispatch_pending_template_dispatch_record; 0x0059c4b8->0x0059d8d0:multiplayer_transport_has_registered_name; 0x0059c4de->0x0059d9e0:multiplayer_transport_get_registered_name_dirty; 0x0059c486->0x0059e110:generic_vector_count; 0x0059c526->0x0059e110:generic_vector_count; 0x0059c4a8->0x0059e120:generic_vector_index_ptr; 0x0059c4ce->0x0059e3d0:generic_vector_erase_with_callback; 0x0059c506->0x0059e3d0:generic_vector_erase_with_callback
- Data refs: none
- Key constants: 0x0000001c
- Key strings: none
Entry excerpt:
59c450: movl %ebx, %eax
59c452: popl %ecx
59c453: addb %dl, %bl
59c455: retl
59c456: popl %ecx
59c457: addb %ah, -0x3e(%edx)
59c45a: popl %ecx
59c45b: addb %cl, 0x7e0059c3(%ebx)
59c461: retl $0x59
59c464: sahf
59c465: retl $0x59
59c468: stosl %eax, %es:(%edi)
59c469: retl
59c46a: popl %ecx
59c46b: addb %dl, %bl
59c46d: retl
59c46e: popl %ecx
59c46f: addb %al, 0x55531cec(%ebx)
59c475: pushl %edi
59c476: movl %ecx, %ebx
59c478: movl 0x55c(%ebx), %ecx
59c47e: movl %edx, %edi
59c480: movl %edi, 0xc(%esp)
59c484: xorl %ebp, %ebp
59c486: calll 0x59e110 <.text+0x19d110>
59c48b: testl %eax, %eax
59c48d: jle 0x59c534 <.text+0x19b534>
Dispatch / Update
0x0059c220 multiplayer_transport_dispatch_pending_template_dispatch_record
- Size:
459 - Calling convention:
cdecl - Callers: 0x0059c511@0x0059c470:multiplayer_transport_service_pending_template_dispatch_store
- Direct callees: 0x0059c245->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c259->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c275->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c295->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c2b9->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c2d1->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c2e5->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c309->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c33a->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c356->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c382->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c3a2->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c3ca->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c3e2->0x0059b2e0:multiplayer_transport_destroy_pending_template_dispatch_record; 0x0059c322->0x0059d9c0:multiplayer_transport_mark_registered_name_dirty
- Data refs: 0x0059c233->0x0059c3ec
- Key constants: 0x00000020; 0x00000018
- Key strings: none
Entry excerpt:
59c200: xchgl %edi, %eax
59c201: movl $0xc1800059, %ebp # imm = 0xC1800059
59c206: popl %ecx
59c207: addb %bh, 0x610059be
59c20d: movl $0xbf1d0059, %esi # imm = 0xBF1D0059
59c212: popl %ecx
59c213: addb %al, -0x41(%eax)
59c216: popl %ecx
59c217: addb %dl, -0x40(%eax)
59c21a: popl %ecx
59c21b: addb %al, 0x510059c1(%eax)
59c221: pushl %ebx
59c222: pushl %esi
59c223: movl %eax, %esi
59c225: movl (%esi), %eax
59c227: cmpl $0x20, %eax
59c22a: movl 0xc(%esi), %ebx
59c22d: ja 0x59c3e2 <.text+0x19b3e2>
59c233: jmpl *0x59c3ec(,%eax,4)
59c23a: movl 0x8(%esi), %eax
59c23d: movl (%eax), %edx
59c23f: pushl %ebx
0x0059c5f0 growable_text_buffer_reserve_append
- Size:
65 - Calling convention:
cdecl - Callers: 0x0059ca47@0x0059ca10:multiplayer_transport_text_stream_recv_pump; 0x0059cb31@0x0059caf0:multiplayer_transport_text_stream_append_crlf_line
- Direct callees: 0x0059c61a->0x0058f3f0:tracked_heap_resize_with_header
- Data refs: none
- Key constants: 0x00002000
- Key strings: none
Entry excerpt:
59c5d0: addb %al, (%eax)
59c5d2: movl $0x1, %eax
59c5d7: retl
59c5d8: nop
59c5d9: nop
59c5da: nop
59c5db: nop
59c5dc: nop
59c5dd: nop
59c5de: nop
59c5df: nop
59c5e0: movl (%eax), %ecx
59c5e2: jmp 0x58f3c0 <.text+0x18e3c0>
59c5e7: nop
59c5e8: nop
59c5e9: nop
59c5ea: nop
59c5eb: nop
59c5ec: nop
59c5ed: nop
59c5ee: nop
59c5ef: nop
59c5f0: movl 0x8(%edi), %eax
59c5f3: pushl %esi
59c5f4: movl 0x4(%edi), %esi
59c5f7: addl %ecx, %esi
59c5f9: cmpl %eax, %esi
59c5fb: jle 0x59c62a <.text+0x19b62a>
59c5fd: addl $0x2000, %esi # imm = 0x2000
59c603: movl %esi, %eax
59c605: andl $0x80001fff, %eax # imm = 0x80001FFF
59c60a: jns 0x59c613 <.text+0x19b613>
59c60c: decl %eax
59c60d: orl $0xffffe000, %eax # imm = 0xFFFFE000