Function at 0x404920
Capabilities:
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push 0xffffffffffffffff
push 0x417266
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x134
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x20], esi
mov ecx, 0x21
xor eax, eax
lea edi, [esp + 0x38]
xor ebp, ebp
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x158]
push ebp
lea eax, [esp + 0x3c]
push 0x84
mov ebx, 1
push eax
push ecx
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x28], ebx
call dword [sym.imp.WSOCK32.dll_recv]
test eax, eax
jg 0x40498a
mov dword [esp + 0x18], ebp
jmp 0x404bc7
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_3
mov edi, dword [esp + 0x38]
lea edx, [esp + 0x10]
push ebx
push edx
lea ecx, [esp + 0x15c]
mov byte [esp + 0x154], 2
mov dword [esp + 0x24], edi
call sub.MFC42.DLL_CString::Right
mov eax, dword [eax]
push 0x42108c
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call sub.MFC42.DLL_CString::CString
test bl, bl
je 0x4049e9
push 0x42108c
lea ecx, [esp + 0x158]
call sub.MFC42.DLL_CString::operator
mov ecx, dword [esp + 0x154]
lea eax, [esp + 0x3c]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._s_s
push edx
call sub.MFC42.DLL_CString::Format
mov eax, dword [esp + 0x24]
add esp, 0x10
lea ecx, [esp + 0x24]
push 0x9001
push eax
call sub.MFC42.DLL_CFile::CFile
push ebp
push ebp
lea ecx, [esp + 0x2c]
mov byte [esp + 0x154], 3
call sub.MFC42.DLL_CFile::Seek
mov eax, dword [esp + 0x160]
mov dword [esp + 0x10], ebp
test eax, eax
je 0x404aea
mov ecx, dword [esp + 0x15c]
mov edx, dword [ecx - 8]
test edx, edx
je 0x404aea
push eax
push ecx
lea edx, [esp + 0x164]
mov ecx, esp
mov dword [esp + 0x3c], esp
push edx
call sub.MFC42.DLL_CString::CString_1
mov ecx, esi
call fcn.00404670
mov ebp, eax
test ebp, ebp
je 0x404aea
lea eax, [esp + 0x3c]
lea ecx, [esp + 0xc4]
push eax
push 0x4211d4
push ecx
mov dword [esp + 0xc8], 0x1c9b
mov dword [esp + 0xcc], edi
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0xc
lea edx, [esp + 0xbc]
mov ecx, esi
push 0x88
push edx
push ebp
call fcn.00404800
test eax, eax
jne 0x404ac7
push ebp
call dword [sym.imp.WSOCK32.dll_closesocket]
jmp 0x404ba5
push 0
lea eax, [esp + 0x3c]
push 0x84
push eax
push ebp
call dword [sym.imp.WSOCK32.dll_send]
test eax, eax
jg 0x404aea
push ebp
call dword [sym.imp.WSOCK32.dll_closesocket]
jmp 0x404ba5
test edi, edi
jbe 0x404b9c
jmp 0x404af8
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov esi, edi
sub esi, ecx
cmp esi, 0x1000
jbe 0x404b0d
mov esi, 0x1000
push esi
call sub.MFC42.DLL_operatornew
mov ecx, dword [esp + 0x15c]
mov ebx, dword [esp + 0x24]
add esp, 4
mov edi, eax
push esi
push edi
push ecx
mov ecx, ebx
call fcn.004048b0
test eax, eax
je 0x404b8b
test ebp, ebp
je 0x404b4c
push ebp
push esi
push edi
mov ecx, ebx
call fcn.00404850
test eax, eax
jne 0x404b4c
push ebp
call dword [sym.imp.WSOCK32.dll_closesocket]
xor ebp, ebp
mov ebx, dword [esp + 0x10]
push 0
push ebx
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CFile::Seek
push esi
push edi
lea ecx, [esp + 0x2c]
call sub.MFC42.DLL_CFile::Write
add ebx, esi
push edi
mov dword [esp + 0x14], ebx
call sub.MFC42.DLL_operatordelete
mov eax, dword [0x422d04]
add esp, 4
test eax, eax
jne 0x404b94
cmp ebx, dword [esp + 0x1c]
jb 0x404af4
jmp 0x404b9c
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [esp + 0x18], 0
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CFile::Close
lea ecx, [esp + 0x24]
mov byte [esp + 0x14c], 2
call fcn.0041631e
lea ecx, [esp + 0x14]
mov byte [esp + 0x14c], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x154]
mov byte [esp + 0x14c], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x15c]
mov dword [esp + 0x14c], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x144]
mov eax, dword [esp + 0x18]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x140
ret 0x10