Untitled

mail@pastecode.io avatar
unknown
c_cpp
2 years ago
2.6 kB
6
Indexable
Never
int __userpurge CLogin::OnWorldInformation@<eax>(int a1@<ebp>, int a2@<edi>, int a3)
{
  int v3; // edi
  int v4; // ecx
  int v5; // esi
  int v6; // ebx
  int v7; // eax
  unsigned int *v8; // eax
  int result; // eax
  int v10; // esi
  void **v11; // eax
  void **v12; // eax
  int v13; // esi
  void **v14; // eax
  bool v15; // zf

  SEHSetup();
  v3 = *(_DWORD *)(a1 + 8);
  v5 = v4;
  v6 = CInPacket::Decode1(v3);
  if ( v6 >= 0 )
  {
    v10 = sub_4D03EC(-1);
    *(_DWORD *)v10 = v6;
    v11 = CInPacket::DecodeStr(a1, a1 + 8);
    *(_DWORD *)(a1 - 4) = 2;
    ZXString_char_::operator_((void **)(v10 + 4), v11);
    *(_DWORD *)(a1 - 4) = -1;
    ZXString_char_::_Release((LONG *)(a1 + 8));
    *(_DWORD *)(v10 + 8) = (unsigned __int8)CInPacket::Decode1(v3);
    v12 = CInPacket::DecodeStr(a1, a1 + 8);
    *(_DWORD *)(a1 - 4) = 3;
    ZXString_char_::operator_((void **)(v10 + 12), v12);
    *(_DWORD *)(a1 - 4) = -1;
    ZXString_char_::_Release((LONG *)(a1 + 8));
    *(_DWORD *)(v10 + 16) = (unsigned __int8)CInPacket::Decode1(v3);
    result = (unsigned __int8)CInPacket::Decode1(v3);
    if ( (_BYTE)result )
    {
      *(_DWORD *)(a1 - 16) = v10 + 20;
      *(_DWORD *)(a1 + 8) = (unsigned __int8)result;
      do
      {
        v13 = sub_4D032A(-1);
        v14 = CInPacket::DecodeStr(a1, a1 - 20);
        *(_DWORD *)(a1 - 4) = 4;
        ZXString_char_::operator_((void **)v13, v14);
        *(_DWORD *)(a1 - 4) = -1;
        ZXString_char_::_Release((LONG *)(a1 - 20));
        *(_DWORD *)(v13 + 4) = CInPacket::Decode4(v3);
        *(_DWORD *)(v13 + 8) = (unsigned __int8)CInPacket::Decode1(v3);
        *(_DWORD *)(v13 + 12) = (unsigned __int8)CInPacket::Decode1(v3);
        LOBYTE(result) = CInPacket::Decode1(v3);
        v15 = (*(_DWORD *)(a1 + 8))-- == 1;
        result = (unsigned __int8)result;
        *(_DWORD *)(v13 + 16) = (unsigned __int8)result;
      }
      while ( !v15 );
    }
  }
  else
  {
    if ( *(_BYTE *)(v5 + 264) == 1 && sub_4D783A(30, 0) && !*(_DWORD *)(v5 + 208) )
    {
      v7 = *(_DWORD *)StringPool::GetString(a1 + 8, 8);
      *(_DWORD *)(a1 - 4) = 0;
      sub_62E601(v7, 0, a2);
      *(_DWORD *)(a1 - 4) = -1;
      ZXString_char_::_Release((LONG *)(a1 + 8));
    }
    if ( dword_7433D8 )
    {
      sub_4E4C8F();
    }
    else
    {
      v8 = ZAllocEx_ZAllocAnonSelector_::Alloc(a1, 296);
      *(_DWORD *)(a1 + 8) = v8;
      *(_DWORD *)(a1 - 4) = 1;
      if ( v8 )
        sub_4E48B9(v5);
      *(_DWORD *)(a1 - 4) = -1;
    }
    return sub_4CC8FA(a1, v5, 1);
  }
  return result;
}