Guest User

2/19 update

a guest
Feb 19th, 2022
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.90 KB | None | 0 0
  1. // 55 8B EC 8B 4D 04 81 EC ? ? ? ? 53 56 57
  2. int CL_SendMove()
  3. {
  4.   // [COLLAPSED LOCAL DECLARATIONS. PRESS KEYPAD CTRL-"+" TO EXPAND]
  5.  
  6.   ReturnAddresCheck(retaddr);
  7.   chockedCommand = *(_DWORD *)(CClientState[0] + 0x4D30);// ClientState->chokedcommands
  8.   nextcommandnr = chockedCommand + *(_DWORD *)(CClientState[0] + 0x4D2C) + 1;// ClientState->lastoutgoingcommand
  9.   result = (*((int (__thiscall **)(void **, _DWORD))off_1058CFC0 + 13))(&off_1058CFC0, 0);
  10.   if ( !(_BYTE)result )
  11.   {
  12.     *(_OWORD *)DataOut = xmmword_104E0D90;
  13.     v28 = 256;
  14.     v29 = 0;
  15.     __crt_strtox::big_integer::big_integer((__crt_strtox::big_integer *)v17);
  16.     v21 = 0;
  17.     is_chockedCommand_need_clamp = chockedCommand + 1 < 0;
  18.     nNewCommands = chockedCommand + 1;
  19.     v16[0] = (int)&CNetMessagePB<9,CCLCMsg_Move,11,0>::`vftable';
  20.    v5 = &dword_105BE01C;
  21.    v16[1] = (int)&CNetMessagePB<9,CCLCMsg_Move,11,0>::`vftable';
  22.     v20 = &dword_105BE01C;
  23.     v23 = 0;
  24.     v26 = 15;
  25.     v25 = 0;
  26.     v24 = 0;
  27.     DataOut[0] = data;
  28.     DataOut[1] = (void *)0xFA0;
  29.     DataOut[2] = (void *)0x7D00;
  30.     DataOut[3] = 0;
  31.     LOBYTE(v28) = 0;
  32.     if ( is_chockedCommand_need_clamp )
  33.     {
  34.       nNewCommands = 0;
  35.     }
  36.     else if ( nNewCommands > 15 )
  37.     {
  38.       nNewCommands = 15;
  39.     }
  40.     cmd_delta = nextcommandnr - nNewCommands;
  41.     v6 = 3;
  42.     v19 = nNewCommands;
  43.     from = -1;
  44.     bOK = 1;
  45.     to = nextcommandnr - nNewCommands - 1;      // <- in leaked src here is +1
  46.     v8 = 2;
  47.     v22 = 3;
  48.     if ( to > nextcommandnr )
  49.     {
  50.       v10 = data;
  51.     }
  52.     else
  53.     {
  54.       do
  55.       {
  56.         bOK = bOK
  57.            && (*(unsigned __int8 (__thiscall **)(int, _DWORD, void **, int, int, bool))(*(_DWORD *)VClient + 0x60))(
  58.                 VClient,
  59.                 0,
  60.                 DataOut,
  61.                 from,
  62.                 to,
  63.                 to >= cmd_delta + 1);           // <- isnewcmd
  64.                                                 // g_ClientDLL->WriteUsercmdDeltaToBuffer( i, &DataOut, from, to, isnewcmd );
  65.         from = to++;
  66.       }
  67.       while ( to <= nextcommandnr );
  68.       if ( !bOK )
  69.         goto END;
  70.       v10 = (char *)DataOut[0];
  71.       v6 = v22;
  72.       v5 = v20;
  73.     }
  74.     v22 = v6 | 4;
  75.     v11 = ((int)DataOut[3] + 7) >> 3;
  76.     if ( v5 == &dword_105BE01C )
  77.     {
  78.       v12 = (*(int (__thiscall **)(_DWORD, int))(*g_pMemAlloc + 4))(g_pMemAlloc, 24);
  79.       v13 = (int *)v12;
  80.       if ( v12 )
  81.       {
  82.         *(_DWORD *)(v12 + 20) = 15;
  83.         *(_DWORD *)(v12 + 16) = 0;
  84.         *(_BYTE *)v12 = 0;
  85.       }
  86.       else
  87.       {
  88.         v13 = 0;
  89.       }
  90.       v20 = v13;
  91.     }
  92.     sub_100A5F20(v10, v11);
  93.     v14 = *(_DWORD *)(CClientState[(*((int (__thiscall **)(void **))off_1058CFC0 + 5))(&off_1058CFC0)] + 156);
  94.     (*(void (__thiscall **)(int, int *, _DWORD, _DWORD))(*(_DWORD *)v14 + 160))(v14, v16, 0, 0);
  95. END:
  96.     result = sub_100DAE60(v16);
  97.   }
  98.   return result;
  99. }
Advertisement
Add Comment
Please, Sign In to add comment