Function at 0x404d50
Capabilities:
Check for time delay via gettickcount
Get socket status
Receive data
Receive data on socket

Disassembly:
mov eax, 0x5008
call fcn.004c6360
mov eax, dword [0x54e864]
xor eax, esp
mov dword [esp + 0x5004], eax
push esi
mov esi, ecx
cmp dword [esi], 0
jne 0x404d8b
call fcn.00403c50
pop esi
mov ecx, dword [esp + 0x5004]
xor ecx, esp
call fcn.004c6212
add esp, 0x5008
ret
push 0x54e98c
mov dword [0x54e888], 0
mov dword [0x54e98c], 0
mov dword [0x54e990], 0
mov eax, dword [esi]
push 0
mov dword [0x54e88c], eax
mov dword [0x54e888], 1
mov ecx, dword [esi]
push 0
push 0x54e888
inc ecx
push ecx
call dword [sym.imp.WSOCK32.dll_select]
test eax, eax
jle 0x404e74
mov edx, dword [esi]
push 0x54e888
push edx
call sub.WSOCK32.dll___WSAFDIsSet
test eax, eax
je 0x404e74
push 0x5000
lea eax, [esp + 0xc]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
lea ecx, [esp + 4]
push ecx
mov ecx, dword [esi]
lea edx, [esi + 0xa028]
push edx
push 0
push 0x5000
lea eax, [esp + 0x18]
push eax
push ecx
mov dword [esp + 0x1c], 0x10
call dword [sym.imp.WSOCK32.dll_recvfrom]
cmp eax, 0xffffffff
je 0x404e44
test eax, eax
je 0x404e5c
push eax
lea edx, [esp + 0xc]
push edx
mov ecx, esi
call fcn.00404bb0
jmp 0x404e74
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
push str.AMYC:_Error_leyendo_el_socket:__d
push 0
call fcn.0042a000
add esp, 0xc
jmp 0x404e6b
push str.AMYC:_Error_leyendo_el_socket._Cerrado
push 0
call fcn.0042a000
add esp, 8
push 1
mov ecx, esi
call fcn.00404330
cmp word [esi + 0xa040], 0
je 0x404eb2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0xa03c]
cmp eax, 0x5dc
jbe 0x404f33
mov ecx, esi
call fcn.004043f0
pop esi
mov ecx, dword [esp + 0x5004]
xor ecx, esp
call fcn.004c6212
add esp, 0x5008
ret
cmp word [esi + 0xa04e], 0
je 0x404f04
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movzx edx, word [esi + 0xa04e]
mov dword [esi + 0xa038], eax
mov eax, dword [esi + 0xf050]
push eax
lea ecx, [esi + 0xa050]
push ecx
push edx
mov ecx, esi
call fcn.00403dc0
xor eax, eax
mov word [esi + 0xa04e], ax
pop esi
mov ecx, dword [esp + 0x5004]
xor ecx, esp
call fcn.004c6212
add esp, 0x5008
ret
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, dword [esi + 0xa038]
cmp eax, 0x7d0
jbe 0x404f32
call edi
push 0
push 0
push 0x3a9e
mov ecx, esi
mov dword [esi + 0xa038], eax
call fcn.00403dc0
pop edi
mov ecx, dword [esp + 0x5008]
pop esi
xor ecx, esp
call fcn.004c6212
add esp, 0x5008
ret
sub esp, 0x14
mov eax, dword [0x54e864]
xor eax, esp
mov dword [esp + 0x10], eax
push esi
mov esi, ecx
call fcn.0044a8e0
test al, al
je 0x45a75f
push 0
mov ecx, esi
call fcn.0045a640
push 0
call fcn.0044a8f0
lea eax, [esp + 8]
push eax
call fcn.0044a8a0
add esp, 8
call fcn.0044a940
movzx ecx, ax
xor eax, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov edx, 2
mov dword [esi + 0x18], eax
push ecx
mov word [esi + 0xc], dx
call dword [sym.imp.WSOCK32.dll_htons]
mov word [esi + 0xe], ax
lea eax, [esp + 4]
push eax
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [esi + 0x10], eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, dword [esi + 0xfc]
cmp eax, 0x1d4c0
ja 0x45a78a
call edi
sub eax, dword [esi + 0xfc]
cmp eax, 0x3e8
jbe 0x45a7e2
cmp byte [esi + 8], 0
jne 0x45a7e2
call edi
mov ecx, esi
mov dword [esi + 0xfc], eax
call fcn.00459b70
test al, al
je 0x45a7d1
mov ecx, dword [esi]
push ecx
push str.Conexion_activa_con_GEWETE_::_ID_del_socket_::__d_::
push 0
call fcn.0042a000
mov edx, dword [esi]
add esp, 0xc
push 2
push edx
mov word [esi + 8], 1
call dword [sym.imp.WSOCK32.dll_shutdown]
mov eax, dword [esi]
push eax
call dword [sym.imp.WSOCK32.dll_closesocket]
mov dword [esi], 0xffffffff
jmp 0x45a7d7
mov word [esi + 8], 0
mov ecx, dword [0x55b998]
call fcn.004697e0
cmp byte [esi + 0x114], 0
pop edi
je 0x45a7f3
mov ecx, esi
call fcn.00459cb0
mov ecx, dword [esp + 0x14]
pop esi
xor ecx, esp
call fcn.004c6212
add esp, 0x14
ret
sub esp, 0x14
mov eax, dword [0x54e864]
xor eax, esp
mov dword [esp + 0x10], eax
push esi
mov esi, ecx
call fcn.0044a8e0
test al, al
je 0x4679af
push 0
mov ecx, esi
call fcn.004676e0
push 0
call fcn.0044a8f0
lea eax, [esp + 8]
push eax
call fcn.0044a8a0
add esp, 8
call fcn.0044a940
movzx ecx, ax
xor eax, eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov edx, 2
mov dword [esi + 0x18], eax
push ecx
mov word [esi + 0xc], dx
call dword [sym.imp.WSOCK32.dll_htons]
mov word [esi + 0xe], ax
lea eax, [esp + 4]
push eax
call dword [sym.imp.WSOCK32.dll_inet_addr]
mov dword [esi + 0x10], eax
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, dword [esi + 0x1158]
cmp eax, 0x1d4c0
ja 0x4679da
call edi
sub eax, dword [esi + 0x1158]
cmp eax, 0x3e8
jbe 0x467a32
cmp byte [esi + 8], 0
jne 0x467a32
call edi
mov ecx, esi
mov dword [esi + 0x1158], eax
call fcn.00466c00
test al, al
je 0x467a21
mov ecx, dword [esi]
push ecx
push str.Conexion_activa_con_PICMATIC_::_ID_del_socket_::__d_::
push 0
call fcn.0042a000
mov edx, dword [esi]
add esp, 0xc
push 2
push edx
mov word [esi + 8], 1
call dword [sym.imp.WSOCK32.dll_shutdown]
mov eax, dword [esi]
push eax
call dword [sym.imp.WSOCK32.dll_closesocket]
mov dword [esi], 0xffffffff
jmp 0x467a27
mov word [esi + 8], 0
mov ecx, dword [0x55b998]
call fcn.004697e0
cmp byte [esi + 0x1170], 0
pop edi
je 0x467a43
mov ecx, esi
call fcn.00466e50
mov ecx, dword [esp + 0x14]
pop esi
xor ecx, esp
call fcn.004c6212
add esp, 0x14
ret
push esi
mov esi, ecx
call fcn.0044a890
movsx eax, al
dec eax
je 0x46975c
dec eax
je 0x469750
dec eax
jne 0x469764
lea ecx, [esi + 0x101c8]
pop esi
jmp 0x45a6f0
lea ecx, [esi + 0xf054]
pop esi
jmp 0x467940
mov ecx, esi
pop esi
jmp 0x404d50
pop esi
ret