Function at 0x4a92e0
Capabilities:
Connect socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov ecx, dword [0x6bc7a0]
call fcn.00474cf0
and eax, 0xff
test eax, eax
je 0x4a931d
mov dword [ebp - 0x38], 4
lea eax, [ebp - 0x38]
push eax
mov ecx, dword [ebp - 4]
call fcn.004a7ec0
mov al, 1
jmp 0x4a973a
mov dword [ebp - 8], 0
mov ecx, 5
mov esi, str.CMccInfo::TryConnect
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
xor ecx, ecx
mov cl, byte [0x783bc0]
and ecx, 1
test ecx, ecx
jne 0x4a9361
mov dl, byte [0x783bc0]
or dl, 1
mov byte [0x783bc0], dl
call fcn.00435e20
add eax, 0x3e8
mov dword [0x783bbc], eax
mov dword [ebp - 0x24], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0x1388
jb 0x4a9381
call fcn.00435e20
cmp eax, dword [0x783bbc]
jae 0x4a9388
xor al, al
jmp 0x4a973a
call fcn.00435e20
add eax, 0x1388
mov dword [0x783bbc], eax
push 0x10
push 0
lea ecx, [ebp - 0x34]
push ecx
call fcn.005b3bb0
add esp, 0xc
mov word [ebp - 0x34], 2
mov edx, dword [ebp - 4]
mov ax, word [edx + 0x18]
push eax
call dword [sym.imp.WS2_32.dll_htons]
and eax, 0xffff
mov dword [ebp - 0x24], eax
mov cx, word [ebp - 0x24]
mov word [ebp - 0x32], cx
mov edx, dword [ebp - 4]
add edx, 4
push edx
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x30], eax
push 0x10
lea eax, [ebp - 0x34]
push eax
mov ecx, dword [ebp - 4]
mov edx, dword [ecx]
push edx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4a940c
mov dword [ebp - 0x3c], 1
lea eax, [ebp - 0x3c]
push eax
mov ecx, dword [ebp - 4]
call fcn.004a7ec0
xor al, al
jmp 0x4a973a
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x20]
add edx, 1
mov eax, dword [ebp - 4]
mov dword [eax + 0x20], edx
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x44], 0
mov edx, dword [ebp - 4]
mov dword [edx + 0x805b4], 0
mov eax, dword [ebp - 4]
cmp dword [eax + 0x20], 2
jl 0x4a95b2
mov ecx, dword [ebp - 4]
mov edx, dword [ecx + 0x20]
push edx
mov ecx, dword [ebp - 4]
call fcn.004a9770
push eax
push str.Reconnect_To_Mcc__s__Ok__Continue_Game___d_
push 0x9fff
mov eax, dword [ebp - 4]
add eax, 0x8a5b8
push eax
call fcn.005b6070
add esp, 0x14
mov ecx, dword [ebp - 4]
mov byte [ecx + 0x945b7], 0
xor edx, edx
mov dl, byte [0x5f1374]
test edx, edx
je 0x4a95ad
push 0x694638
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [0x6bc77c]
jne 0x4a94af
mov dword [0x784bd4], 0x6a8650
jmp 0x4a94d0
mov ecx, dword [ebp - 8]
cmp ecx, dword [0x6bc780]
jne 0x4a94c6
mov dword [0x784bd4], 0x694650
jmp 0x4a94d0
mov dword [0x784bd4], 0x69e650
mov edx, dword [ebp - 4]
add edx, 0x8a5b8
push edx
call fcn.005b3b30
add esp, 4
cmp eax, 0xa000
jb 0x4a9553
push str.D:BF_ServerBFServer_vcMccSrvMccInfo.cpp
movsx eax, word [0x5f1818]
add eax, 0x2d
push eax
mov ecx, dword [ebp - 4]
add ecx, 0x8a5b8
push ecx
call fcn.005b3b30
add esp, 4
push eax
lea edx, [ebp - 0x20]
push edx
push str.__s__Too_long_msg_length_d_in_Line_d_of__s
mov eax, dword [0x784bd4]
push eax
call fcn.005b5240
add esp, 0x18
xor ecx, ecx
mov cl, byte [0x5f1374]
test ecx, ecx
je 0x4a9541
mov edx, dword [0x784bd4]
push edx
mov ecx, dword [0x6bc794]
call fcn.00430430
mov eax, dword [0x784bd4]
push eax
mov ecx, 0x6905e8
call fcn.004025e0
jmp 0x4a95a2
mov ecx, dword [ebp - 4]
add ecx, 0x8a5b8
push ecx
lea edx, [ebp - 0x20]
push edx
push str.__s___s
mov eax, dword [0x784bd4]
push eax
call fcn.005b5240
add esp, 0x10
xor ecx, ecx
mov cl, byte [0x5f1374]
test ecx, ecx
je 0x4a9592
mov edx, dword [0x784bd4]
push edx
mov ecx, dword [0x6bc794]
call fcn.004302f0
mov eax, dword [0x784bd4]
push eax
mov ecx, 0x692610
call fcn.004025e0
push 0x694638
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x4a971a
mov ecx, dword [ebp - 4]
call fcn.004a9770
push eax
push str._Connect_To_Mcc__s__OK_
push 0x9fff
mov ecx, dword [ebp - 4]
add ecx, 0x8a5b8
push ecx
call fcn.005b6070
add esp, 0x10
mov edx, dword [ebp - 4]
mov byte [edx + 0x945b7], 0
xor eax, eax
mov al, byte [0x5f1374]
test eax, eax
je 0x4a971a
push 0x694638
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [0x6bc77c]
jne 0x4a961b
mov dword [0x784bd4], 0x6a8650
jmp 0x4a963c
mov edx, dword [ebp - 8]
cmp edx, dword [0x6bc780]
jne 0x4a9632
mov dword [0x784bd4], 0x694650
jmp 0x4a963c
mov dword [0x784bd4], 0x69e650
mov eax, dword [ebp - 4]
add eax, 0x8a5b8
push eax
call fcn.005b3b30
add esp, 4
cmp eax, 0xa000
jb 0x4a96bf
push str.D:BF_ServerBFServer_vcMccSrvMccInfo.cpp
movsx ecx, word [0x5f1818]
add ecx, 0x38
push ecx
mov edx, dword [ebp - 4]
add edx, 0x8a5b8
push edx
call fcn.005b3b30
add esp, 4
push eax
lea eax, [ebp - 0x20]
push eax
push str.__s__Too_long_msg_length_d_in_Line_d_of__s
mov ecx, dword [0x784bd4]
push ecx
call fcn.005b5240
add esp, 0x18
xor edx, edx
mov dl, byte [0x5f1374]
test edx, edx
je 0x4a96ac
mov eax, dword [0x784bd4]
push eax
mov ecx, dword [0x6bc794]
call fcn.00430430
mov ecx, dword [0x784bd4]
push ecx
mov ecx, 0x6905e8
call fcn.004025e0
jmp 0x4a970f
mov edx, dword [ebp - 4]
add edx, 0x8a5b8
push edx
lea eax, [ebp - 0x20]
push eax
push str.__s___s
mov ecx, dword [0x784bd4]
push ecx
call fcn.005b5240
add esp, 0x10
xor edx, edx
mov dl, byte [0x5f1374]
test edx, edx
je 0x4a96fe
mov eax, dword [0x784bd4]
push eax
mov ecx, dword [0x6bc794]
call fcn.004302f0
mov ecx, dword [0x784bd4]
push ecx
mov ecx, 0x692610
call fcn.004025e0
push 0x694638
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x6bc7a0]
call fcn.004a9750
mov dword [ebp - 0x40], 4
lea edx, [ebp - 0x40]
push edx
mov ecx, dword [ebp - 4]
call fcn.004a7ec0
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret