Function at 0x430930
Capabilities:
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x278
mov eax, dword [0x4f4214]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov eax, 2
xor edi, edi
push edi
mov esi, ecx
mov word [ebp - 0x140], ax
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [esi + 0xc]
mov word [ebp - 0x13e], ax
mov edx, dword [ecx]
mov eax, dword [edx]
mov dword [ebp - 0x13c], eax
mov word [ebp - 0x30], 8
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov word [ebp - 0x2c], ax
mov eax, 0x30303030
xor ecx, ecx
mov word [ebp - 0x2a], cx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], eax
xor esi, esi
mov dword [ebp - 0x260], edi
mov dword [ebp - 0x268], 0x10
mov dword [ebp - 0x25c], edi
mov dword [ebp - 0x264], edi
jmp 0x4309d6
mov esi, dword [ebp - 0x26c]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov word [ebp - 0x2e], dx
call edi
mov word [ebp - 0x2a], si
inc esi
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x26c], esi
lea eax, [ebp - 0x30]
xor ecx, ecx
mov edx, 0x16
lea esp, [esp]
movzx esi, word [eax]
add ecx, esi
add eax, 2
dec edx
jne 0x430a00
mov eax, ecx
and ecx, 0xffff
sar eax, 0x10
add eax, ecx
push 0x10
mov ecx, eax
lea edx, [ebp - 0x140]
push edx
sar ecx, 0x10
push 0
add ecx, eax
push 0x2c
lea eax, [ebp - 0x30]
push eax
not ecx
push ebx
mov word [ebp - 0x2e], cx
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, 0xffffffff
je 0x430b7d
lea ecx, [ebp - 0x274]
push ecx
push 0
push 0
lea edx, [ebp - 0x248]
push edx
lea eax, [ebx + 1]
push eax
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x248], 1
mov dword [ebp - 0x274], 1
mov dword [ebp - 0x270], 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
jg 0x430a9c
push str.select_timeout
call fcn.00487d90
add esp, 4
jmp 0x430b65
lea ecx, [ebp - 0x268]
push ecx
lea edx, [ebp - 0x258]
push edx
push 0
push 0x100
lea eax, [ebp - 0x130]
push eax
push ebx
call dword [sym.imp.WS2_32.dll_recvfrom]
mov esi, eax
cmp esi, 0xffffffff
jle 0x430b93
call edi
mov edi, eax
cmp esi, 0x1d
jae 0x430af0
mov ecx, dword [ebp - 0x254]
push ecx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str._Too_few_bytes_from__s_n
call fcn.00487d90
add esp, 8
jmp 0x430b65
mov al, byte [ebp - 0x11c]
test al, al
je 0x430b0d
movzx edx, al
push edx
push str._nonecho_type__d_recvd_n
call fcn.00487d90
add esp, 8
jmp 0x430b65
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
movzx ecx, word [ebp - 0x118]
cmp ecx, eax
je 0x430b2d
push str._someone_elses_packet__n
call fcn.00487d90
add esp, 4
jmp 0x430b65
mov edx, dword [ebp - 0x254]
inc dword [ebp - 0x25c]
mov eax, edi
sub eax, dword [ebp - 0x114]
add dword [ebp - 0x260], eax
push eax
push edx
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
movzx eax, word [ebp - 0x116]
push eax
push str.__d:_bytes_from__s:time__d__n
call fcn.00487d90
add esp, 0x10
mov eax, dword [ebp - 0x264]
inc eax
mov dword [ebp - 0x264], eax
cmp eax, 3
jl 0x4309d0
jmp 0x430ba0
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str._sendto___failed:__d_n
call fcn.00487d90
add esp, 8
jmp 0x430ba0
push str.recvfrom_fail
call fcn.00487d90
add esp, 4
mov ecx, dword [ebp - 0x25c]
test ecx, ecx
jne 0x430bbd
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0049c72a
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x260]
xor edx, edx
div ecx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.0049c72a
mov esp, ebp
pop ebp
ret