Function at 0x404a70
Capabilities:
Receive data
Receive data on socket

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, dword [esp + 0x34]
push edi
xor edi, edi
cmp dword [esi + 0x234], edi
mov dword [esp + 0x14], edi
jne 0x404a9d
mov eax, dword [esp + 0x3c]
mov dword [eax + 4], edi
mov dword [eax + 8], edi
mov dword [eax], edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
xor eax, eax
mov dword [esp + 0x18], eax
push edi
mov dword [esp + 0x20], eax
mov byte [esp + 0x1c], al
mov byte [esp + 0x1d], 9
call dword [sym.imp.WS2_32.dll_htons]
push edi
mov word [esp + 0x1e], ax
call dword [sym.imp.WS2_32.dll_htonl]
mov edx, dword [esi + 0x228]
mov dword [esp + 0x1c], eax
lea ebp, [esi + 0x108]
push 0x100
push ebp
mov eax, 8
lea ecx, [esp + 0x20]
call fcn.004066b0
add esp, 8
test eax, eax
jne 0x404c66
mov esi, dword [esi + 0x228]
mov ebx, dword [sym.imp.WS2_32.dll_recv]
mov edi, edi
push 0
mov eax, 8
sub eax, edi
push eax
lea ecx, [esp + edi + 0x20]
push ecx
push esi
call ebx
cmp eax, 0xffffffff
je 0x404b72
test eax, eax
je 0x404b88
add edi, eax
cmp edi, 8
jne 0x404b00
mov esi, dword [esp + 0x38]
mov eax, dword [esi + 0x228]
push 0
push 1
push 0x89
lea edx, [esp + 0x24]
push edx
push eax
mov ecx, ebp
call fcn.004056b0
add esp, 0x14
cmp eax, 0x89
je 0x404bc7
cmp eax, 0xfffffffd
jl 0x404baf
test eax, eax
jl 0x404c66
cmp eax, 1
jne 0x404baf
mov ecx, dword [esp + 0x1c]
push ecx
call dword [sym.imp.WS2_32.dll_ntohl]
mov dword [esp + 0x14], eax
jmp 0x404c66
mov ebx, 0x100
mov esi, ebp
mov edi, str.recv__:
call fcn.00406290
jmp 0x404c66
test ebp, ebp
je 0x404c66
push str.The_other_host_terminated_the_connection.
push 0x100
push ebp
call fcn.0040722a
add esp, 0xc
mov byte [ebp + 0xff], 0
jmp 0x404c66
push str.Internal_error
push 0x100
push ebp
call fcn.0040722a
add esp, 0xc
jmp 0x404c66
mov esi, dword [esi + 0x228]
xor edi, edi
nop
push 0
mov edx, 0x10
sub edx, edi
push edx
lea eax, [esp + edi + 0x28]
push eax
push esi
call ebx
cmp eax, 0xffffffff
je 0x404ca7
test eax, eax
je 0x404cc0
add edi, eax
cmp edi, 0x10
jne 0x404bd0
mov esi, edi
cmp esi, 0xffffffff
mov dword [esp + 0x14], esi
je 0x404c66
mov ecx, dword [esp + 0x28]
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
push ecx
call edi
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
push edx
mov dword [ebx + 4], eax
call edi
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x20]
push eax
call edi
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [ebx], eax
call edi
cmp esi, eax
je 0x404ce6
mov edx, dword [esp + 0x1c]
push 0
push 0
push edx
call edi
mov ecx, eax
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x228]
sub ecx, esi
push edx
call fcn.004067a0
add esp, 0xc
cmp eax, 1
jne 0x404ce6
mov eax, dword [esp + 0x1c]
mov edi, dword [sym.imp.WS2_32.dll_ntohl]
push eax
call edi
mov esi, dword [esp + 0x14]
cmp esi, eax
je 0x404c9d
mov ecx, dword [esp + 0x1c]
push 0
push 0
push ecx
call edi
mov edx, dword [esp + 0x40]
mov ecx, eax
mov eax, dword [edx + 0x228]
sub ecx, esi
push eax
call fcn.004067a0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ebx, 0x100
mov esi, ebp
mov edi, str.recv__:
call fcn.00406290
or esi, 0xffffffff
jmp 0x404bfc
test ebp, ebp
je 0x404cde
push str.The_other_host_terminated_the_connection.
push 0x100
push ebp
call fcn.0040722a
add esp, 0xc
mov byte [ebp + 0xff], 0
or esi, 0xffffffff
jmp 0x404bfc
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x24
ret