L L4D2node

CBaseClientState::ConnectionStart

0x000fd010 · 3996 bytes · __thiscall

_ZN16CBaseClientState15ConnectionStartEP11INetChannel

Decompiled

undefined (2 params)

/* CBaseClientState::ConnectionStart(INetChannel*) */

void __thiscall CBaseClientState::ConnectionStart(CBaseClientState *this,INetChannel *param_1)

{
  undefined4 *puVar1;
  NET_SplitScreenUser *this_00;
  undefined4 *puVar2;
  SVC_CreateStringTable *this_01;
  SVC_CmdKeyValues *this_02;
  int iVar3;
  CBaseClientState *pCVar4;
  byte bVar5;
  uint in_stack_ffffffd8;
  
  bVar5 = 0;
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x58,in_stack_ffffffd8);
  puVar1[3] = 0;
  pCVar4 = this + 8;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  puVar1[2] = 0;
  *puVar1 = &PTR__NET_Tick_002a1b28;
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x14] = 0;
  puVar1[0x15] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x450,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__NET_StringCmd_002a17c8;
  puVar1[0x13] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x60,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__NET_SetConVar_002a1ca8;
  puVar1[0x13] = 0;
  puVar1[0x14] = 0;
  puVar1[0x15] = 0;
  puVar1[0x16] = 0;
  puVar1[0x17] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x80,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__NET_SignonState_002a1888;
  puVar1[0x16] = 0;
  puVar1[0x17] = 0;
  puVar1[0x18] = 0;
  puVar1[0x19] = 0;
  puVar1[0x1a] = 0;
  puVar1[0x1b] = 0;
  puVar1[0x1c] = 0;
  puVar1[0x1d] = 0;
  puVar1[0x1e] = 0;
  puVar1[0x1f] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  this_00 = CNetMessage::operator_new((CNetMessage *)0x50,(uint)puVar1);
                    /* try { // try from 000fd2f9 to 000fd2fd has its CatchHandler @ 000fdfac */
  NET_SplitScreenUser::NET_SplitScreenUser(this_00);
  *(CBaseClientState **)(this_00 + 0x48) = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x850,(uint)this_00);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_Print_002a1768;
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x13] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x6a4,(uint)puVar1);
  puVar1 = puVar2;
  for (iVar3 = 0x1a9; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_ServerInfo_002a1828;
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x90,(uint)puVar2);
  puVar1 = puVar2;
  for (iVar3 = 0x24; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_SendTable_002a1fa8;
  puVar2[0x17] = 0xffffffff;
                    /* try { // try from 000fd460 to 000fd464 has its CatchHandler @ 000fe0b1 */
  bf_write::bf_write((bf_write *)(puVar2 + 0x1e));
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x68,(uint)puVar2);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_ClassInfo_002a1ee8;
  puVar1[0x14] = 0;
  puVar1[0x15] = 0;
  puVar1[0x16] = 0;
  puVar1[0x17] = 0;
  puVar1[0x18] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x50,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_SetPause_002a1c48;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  this_01 = CNetMessage::operator_new((CNetMessage *)0x1ac,(uint)puVar1);
                    /* try { // try from 000fd5cf to 000fd5d3 has its CatchHandler @ 000fe09f */
  SVC_CreateStringTable::SVC_CreateStringTable(this_01);
  *(CBaseClientState **)(this_01 + 0x48) = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x94,(uint)this_01);
  puVar1 = puVar2;
  for (iVar3 = 0x25; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_UpdateStringTable_002a1d08;
  puVar2[0x18] = 0xffffffff;
                    /* try { // try from 000fd641 to 000fd645 has its CatchHandler @ 000fe084 */
  bf_write::bf_write((bf_write *)(puVar2 + 0x1f));
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x158,(uint)puVar2);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_VoiceInit_002a1a68;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x8c,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_VoiceData_002a1ac8;
  *(undefined1 *)(puVar1 + 0x1a) = 0;
  puVar1[0x19] = 0;
  puVar1[0x1b] = 0xffffffff;
  puVar1[0x1c] = 0;
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x94,(uint)puVar1);
  puVar1 = puVar2;
  for (iVar3 = 0x25; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_Sounds_002a1dc8;
  puVar2[0x18] = 0xffffffff;
                    /* try { // try from 000fd7f3 to 000fd7f7 has its CatchHandler @ 000fe069 */
  bf_write::bf_write((bf_write *)(puVar2 + 0x1f));
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x50,(uint)puVar2);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_SetView_002a1948;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x5c,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_FixAngle_002a19a8;
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x58,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_CrosshairAngle_002a1a08;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x68,(uint)puVar1);
  puVar1 = puVar2;
  for (iVar3 = 0x1a; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_BSPDecal_002a18e8;
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x8c,(uint)puVar2);
  puVar1 = puVar2;
  for (iVar3 = 0x23; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_GameEvent_002a1f48;
  puVar2[0x16] = 0xffffffff;
                    /* try { // try from 000fda7a to 000fda7e has its CatchHandler @ 000fe04e */
  bf_write::bf_write((bf_write *)(puVar2 + 0x1d));
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0xa0,(uint)puVar2);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_UserMessage_002a1be8;
  *(undefined1 *)(puVar1 + 0x16) = 0;
  puVar1[0x15] = 0;
  puVar1[0x17] = 0xffffffff;
  puVar1[0x18] = 0;
                    /* try { // try from 000fdb36 to 000fdb48 has its CatchHandler @ 000fe036 */
  bf_write::bf_write((bf_write *)(puVar1 + 0x1e));
  CUtlString::CUtlString((CUtlString *)(puVar1 + 0x24));
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x94,(uint)puVar1);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_EntityMessage_002a2008;
  *(undefined1 *)(puVar1 + 0x17) = 0;
  puVar1[0x16] = 0;
  puVar1[0x18] = 0xffffffff;
  puVar1[0x19] = 0;
                    /* try { // try from 000fdc01 to 000fdc05 has its CatchHandler @ 000fe01e */
  bf_write::bf_write((bf_write *)(puVar1 + 0x1f));
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0xa0,(uint)puVar1);
  puVar1 = puVar2;
  for (iVar3 = 0x28; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_PacketEntities_002a2068;
  puVar2[0x1b] = 0xffffffff;
                    /* try { // try from 000fdc7a to 000fdc7e has its CatchHandler @ 000fe003 */
  bf_write::bf_write((bf_write *)(puVar2 + 0x22));
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x90,(uint)puVar2);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_TempEntities_002a1e88;
  *(undefined1 *)(puVar1 + 0x16) = 0;
  puVar1[0x15] = 0;
  puVar1[0x17] = 0xffffffff;
  puVar1[0x18] = 0;
                    /* try { // try from 000fdd36 to 000fdd3a has its CatchHandler @ 000fdfeb */
  bf_write::bf_write((bf_write *)(puVar1 + 0x1e));
  *(undefined1 *)(puVar1 + 1) = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x50,(uint)puVar1);
  puVar1 = puVar2;
  for (iVar3 = 0x14; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_Prefetch_002a1e28;
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar1 = CNetMessage::operator_new((CNetMessage *)0x58,(uint)puVar2);
  puVar1[3] = 0;
  puVar1[4] = 0;
  puVar1[5] = 0;
  puVar1[6] = 0;
  puVar1[7] = 0;
  puVar1[8] = 0;
  puVar1[9] = 0;
  puVar1[10] = 0;
  puVar1[0xb] = 0;
  puVar1[0xc] = 0;
  *(undefined1 *)(puVar1 + 0xd) = 0;
  puVar1[0xe] = 0;
  puVar1[0xf] = 0;
  puVar1[0x10] = 0;
  puVar1[0x11] = 0;
  *(undefined1 *)(puVar1 + 1) = 1;
  puVar1[2] = 0;
  *puVar1 = &PTR__SVC_Menu_002a20c8;
  puVar1[0x14] = 1;
  puVar1[0x13] = 0;
  puVar1[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x90,(uint)puVar1);
  puVar1 = puVar2;
  for (iVar3 = 0x24; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_GameEventList_002a2128;
  puVar2[0x17] = 0xffffffff;
                    /* try { // try from 000fdea8 to 000fdeac has its CatchHandler @ 000fdfd0 */
  bf_write::bf_write((bf_write *)(puVar2 + 0x1e));
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x154,(uint)puVar2);
  puVar1 = puVar2;
  for (iVar3 = 0x55; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_GetCvarValue_002a21e8;
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  puVar2 = CNetMessage::operator_new((CNetMessage *)0x58,(uint)puVar2);
  puVar1 = puVar2;
  for (iVar3 = 0x16; iVar3 != 0; iVar3 = iVar3 + -1) {
    *puVar1 = 0;
    puVar1 = puVar1 + (uint)bVar5 * -2 + 1;
  }
  puVar2[5] = 0;
  puVar2[6] = 0;
  puVar2[9] = 0;
  puVar2[10] = 0;
  puVar2[0xe] = 0;
  puVar2[0xf] = 0;
  *(undefined1 *)(puVar2 + 1) = 1;
  *puVar2 = &PTR__SVC_SplitScreen_002a2188;
  puVar2[0x12] = pCVar4;
  (**(code **)(*(int *)param_1 + 0x78))(param_1);
  this_02 = CNetMessage::operator_new((CNetMessage *)0x50,(uint)puVar2);
                    /* try { // try from 000fdf90 to 000fdf94 has its CatchHandler @ 000fdfbe */
  SVC_CmdKeyValues::SVC_CmdKeyValues(this_02,(KeyValues *)0x0);
  *(CBaseClientState **)(this_02 + 0x4c) = pCVar4;
                    /* WARNING: Could not recover jumptable at 0x000fdfaa. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(*(int *)param_1 + 0x78))();
  return;
}

SourceMod gamedata

paste into addons/sourcemod/gamedata/<your_plugin>.txt
used as the SourceMod key — change to fit your plugin's convention
SourceMod library name (server / engine / matchmaking)

Just a Signatures{} block, ready to drop into a gamedata file. Wire it up in your plugin however you like - SDKCall, DHooks, raw memory ops, or anything else.



        

        

          

Type inference is best-effort from the C signature - sanity-check the DHooks types before shipping.

Return-type handling cheatsheet (DHookReturn)