Skip to main content

Anti-Cheat Messages: Send Message to the connected Game Server

Test

_BYTE *__fastcall R5::BuildAnticheatMsg3(__int64 a1)
{
  _BYTE *result; // rax
  unsigned int v3; // ebx
  __int64 v4; // rbp
  int v5; // edi
  __int64 v6; // r8
  char v7; // al
  const char *v8; // rax
  __int64 v9; // rcx
  char v10; // dl
  int v11; // eax
  _BYTE *v12; // rax
  char v13[16]; // [rsp+20h] [rbp-858h] BYREF
  __int64 (__fastcall **v14)(); // [rsp+30h] [rbp-848h] BYREF
  int v15; // [rsp+38h] [rbp-840h]
  char v16; // [rsp+3Ch] [rbp-83Ch]
  __int64 v17; // [rsp+40h] [rbp-838h]
  __int16 *v18; // [rsp+50h] [rbp-828h]
  int v19; // [rsp+58h] [rbp-820h]
  __int16 v20[512]; // [rsp+460h] [rbp-418h] BYREF
  int i; // [rsp+880h] [rbp+8h] BYREF
  int v22; // [rsp+888h] [rbp+10h] BYREF

  result = *(_BYTE **)a1;
  if ( !*(_QWORD *)a1 || !*result )
    return result;
  v3 = 0;
  v4 = gpNetChan;
  if ( gpNetChan )
  {
    v14 = vft::CLC_AntiCheatMsg;
    v15 = 0;
    v17 = 0i64;
    v5 = 5;
    v16 = 1;
    // send all of them in bulk
    for ( i = 0; (unsigned __int8)R5AC::PopAnticheatMsg(v20, &i); --v5 )
    {
      if ( !v5 )
        break;
      v18 = v20;
      v19 = i;
      C_NetChan::SendNetMsg(v4, &v14, 0, 0);
      C_NetChan::SendDatagram(v4, 0i64);
    }
  }