char __cdecl sub_2064C920(int a1, int a2)
{
  int v2; // eax
  int v3; // eax
  int v4; // esi
  wchar_t *v5; // eax
  void (__cdecl *v6)(char *, wchar_t *); // ebx
  int v7; // eax
  int v8; // eax
  void (__cdecl *v9)(char *, int, int); // ebx
  int v10; // eax
  char *v11; // ecx
  int v12; // eax
  void (__thiscall *v13)(char *, int, int); // esi
  UEngine *v14; // eax
  int v15; // ecx
  bool v16; // zf
  const wchar_t *v17; // esi
  int v18; // ecx
  const wchar_t *v19; // eax
  int v21; // [esp+0h] [ebp-B74h] BYREF
  int v22; // [esp+4h] [ebp-B70h]
  char v23[2048]; // [esp+Ch] [ebp-B68h] BYREF
  char v24[128]; // [esp+80Ch] [ebp-368h] BYREF
  char v25[128]; // [esp+88Ch] [ebp-2E8h] BYREF
  char v26[128]; // [esp+90Ch] [ebp-268h] BYREF
  char v27[128]; // [esp+98Ch] [ebp-1E8h] BYREF
  char v28[128]; // [esp+A0Ch] [ebp-168h] BYREF
  char v29[96]; // [esp+A8Ch] [ebp-E8h] BYREF
  char v30[12]; // [esp+AF4h] [ebp-80h] BYREF
  char v31[12]; // [esp+B00h] [ebp-74h] BYREF
  char v32[12]; // [esp+B0Ch] [ebp-68h] BYREF
  char v33[12]; // [esp+B1Ch] [ebp-58h] BYREF
  unsigned int v34; // [esp+B2Ch] [ebp-48h] BYREF
  unsigned int v35; // [esp+B30h] [ebp-44h] BYREF
  char v36[20]; // [esp+B34h] [ebp-40h] BYREF
  int v37; // [esp+B48h] [ebp-2Ch] BYREF
  int v38; // [esp+B4Ch] [ebp-28h] BYREF
  int sender_getObjectId; // [esp+B50h] [ebp-24h] BYREF
  unsigned int v40; // [esp+B54h] [ebp-20h] BYREF
  int chatType_getClientId; // [esp+B58h] [ebp-1Ch] BYREF
  char v42; // [esp+B5Fh] [ebp-15h] BYREF
  char v43; // [esp+B60h] [ebp-14h] BYREF
  char v44; // [esp+B61h] [ebp-13h] BYREF
  char v45; // [esp+B62h] [ebp-12h] BYREF
  char v46; // [esp+B63h] [ebp-11h] BYREF
  int *v47; // [esp+B64h] [ebp-10h]
  int v48; // [esp+B70h] [ebp-4h]

  v47 = &v21;
  v48 = 0;
  sender_getObjectId = 0;
  chatType_getClientId = 0;
  sub_20535240(v29, 0, 96);
  sub_20535240(v23, 0, 2048);
  v46 = 0;
  v45 = -1;
  v44 = 0;
  v43 = 0;
  v42 = -1;
  v38 = 0;
  v37 = 0;
  v2 = sub_205DC6E0(*(_DWORD *)(a1 + 72), a2, "dd", &sender_getObjectId, &chatType_getClientId);
  switch ( chatType_getClientId )
  {
    case 26:
      chatType_getClientId = 4;
      break;
    case 27:
      chatType_getClientId = 9;
      break;
    case 11:
      v4 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v2, "dd", &v35, &v34);
      if ( v35 > 0x4E1F )
        v5 = &dword_20BA8BC0;
      else
        v5 = (wchar_t *)FString::operator*(12 * v35 + 558698496);
      v6 = (void (__cdecl *)(char *, wchar_t *))appStrcpy;
      appStrcpy(v29, v5);
      if ( v34 > 0x4E1F )
      {
        v6(v23, &dword_20BA8BC0);
      }
      else
      {
        v7 = FString::operator*(&dword_21223280[35 * v34]);
        v6(v23, (wchar_t *)v7);
      }
      goto LABEL_27;
  }
  v3 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v2, "Sd", 96, v29, &v40);
  if ( v40 == -1 )
  {
    v4 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v3, L"S", 2048, v23);
    if ( chatType_getClientId == 2 )
    {
      v4 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v4, L"c", &v46);
      if ( (v46 & 0x10) != 0 )
        v45 = 0;
      else
        v4 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v4, L"c", &v45);
    }
    else if ( chatType_getClientId == 4 || chatType_getClientId == 9 )
    {
      v4 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v4, L"c", &v46);
      if ( (v46 & 0x40) != 0 )
        v45 = 0;
    }
  }
  else
  {
    v4 = sub_205DC6E0(*(_DWORD *)(a1 + 72), v3, "SSSSS", 128, v28, 128, v24, 128, v25, 128, v26, 128, v27);
    if ( chatType_getClientId == 24 )
    {
      FString::FString(v32, v28);
      LOBYTE(v48) = 1;
      FL2GameData::ConvertWorldIDToWorldStr(GL2GameData, v31, v32);
      LOBYTE(v48) = 3;
      FString::~FString(v32, v21, v22);
      v8 = FString::operator*(v31);
      v9 = (void (__cdecl *)(char *, int, int))appStrncpy;
      appStrncpy(v28, v8, 63);
      FString::FString(v33);
      LOBYTE(v48) = 4;
      if ( v40 <= 0x4E1F )
        FString::operator*(&dword_21223280[35 * v40]);
      sub_20662810(v28, v24, v25, v26, v27);
      v10 = FString::operator*(v33);
      v9(v23, v10, 1023);
      LOBYTE(v48) = 3;
      FString::~FString(v33, v21, v22);
      LOBYTE(v48) = 0;
      v11 = v31;
    }
    else
    {
      sub_20661A20(v28, v24, v25, v26, v27);
      LOBYTE(v48) = 5;
      v12 = FString::operator*(v30);
      appStrncpy(v23, v12, 1023);
      LOBYTE(v48) = 0;
      v11 = v30;
    }
    FString::~FString(v11, v21, v22);
  }
LABEL_27:
  sub_205DC6E0(*(_DWORD *)(a1 + 72), v4, "ccdcd", &v44, &v43, &v37, &v42, &v38);
  L2ParamStack::L2ParamStack(v36);
  LOBYTE(v48) = 6;
  v13 = (void (__thiscall *)(char *, int, int))L2ParamStack::PushBack;
  L2ParamStack::PushBack(v36, sender_getObjectId, sender_getObjectId >> 31);
  v13(v36, chatType_getClientId, chatType_getClientId >> 31);
  v13(v36, (int)v29, (int)v29 >> 31);
  v13(v36, (int)v23, (int)v23 >> 31);
  if ( chatType_getClientId == 2 || chatType_getClientId == 4 || chatType_getClientId == 9 )
  {
    v13(v36, v46, (unsigned __int64)v46 >> 32);
    v13(v36, v45, (unsigned __int64)v45 >> 32);
  }
  v13(v36, v44, (unsigned __int64)v44 >> 32);
  v13(v36, v43, (unsigned __int64)v43 >> 32);
  v13(v36, v42, (unsigned __int64)v42 >> 32);
  v13(v36, v38, v38 >> 31);
  v13(v36, v37, v37 >> 31);
  (*(void (__thiscall **)(UL2ConsoleWnd *, char *))(*(_DWORD *)GL2Console + 1136))(GL2Console, v36);
  if ( *(_DWORD *)GNetworkLog )
  {
    v14 = dword_211A902C;
    if ( dword_211A902C
      && (v15 = *((_DWORD *)dword_211A902C + 26)) != 0
      && (v16 = (*(int (__thiscall **)(int))(*(_DWORD *)v15 + 208))(v15) == 0, v14 = dword_211A902C, !v16) )
    {
      v17 = (const wchar_t *)(*(int (__thiscall **)(_DWORD))(**((_DWORD **)dword_211A902C + 26) + 208))(*((_DWORD *)dword_211A902C + 26));
      v14 = dword_211A902C;
    }
    else
    {
      v17 = L"NONE";
    }
    if ( v14 && (v18 = *((_DWORD *)v14 + 26)) != 0 )
      v19 = (const wchar_t *)(*(int (__thiscall **)(int))(*(_DWORD *)v18 + 2276))(v18);
    else
      v19 = L"(None)";
    FOutputDevice::Logf(
      *(_DWORD *)GNetworkLog,
      L"%s[%s] %sTEXT(\"ID : %d Name : %s Say Msg:%s Type:%d\")",
      v19,
      v17,
      L"SayPacket2",
      sender_getObjectId,
      v29,
      v23,
      chatType_getClientId);
  }
  LOBYTE(v48) = 0;
  L2ParamStack::~L2ParamStack(v36);
  return 0;
}

Дай всем переменным "v" корректные имена, соответствующие их логике и сделай рефакторинг когда, чтобы он был читабелен