Function at 0x401c00
Capabilities:
Create udp socket
Get socket status
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdc4
push ebx
push esi
push edi
push 0
push 2
push 2
call sub.WSOCK32.DLL_socket
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x401c26
or eax, 0xffffffff
jmp 0x401ebd
push 0x10
push 0
lea edx, [ebp - 0x138]
push edx
call fcn.0045b10c
add esp, 0xc
mov word [ebp - 0x138], 2
push 0
call sub.WSOCK32.DLL_htonl
mov dword [ebp - 0x134], eax
push 0xc7b
call sub.WSOCK32.DLL_htons
mov word [ebp - 0x136], ax
lea ecx, [ebp - 4]
mov dword [ebp - 4], 1
push 4
push ecx
push 0x20
push 0xffff
push ebx
call sub.WSOCK32.DLL_setsockopt
mov esi, eax
inc esi
jne 0x401c8f
push ebx
call sub.WSOCK32.DLL_closesocket
mov eax, 0xfffffffe
jmp 0x401ebd
mov dword [ebp - 4], 1
push 4
lea edx, [ebp - 4]
push edx
push 0x10
push 0xffff
push ebx
call sub.WSOCK32.DLL_setsockopt
mov esi, eax
inc esi
jne 0x401cbe
push ebx
call sub.WSOCK32.DLL_closesocket
mov eax, 0xfffffffd
jmp 0x401ebd
push 0x10
lea edx, [ebp - 0x138]
push edx
push ebx
call sub.WSOCK32.DLL_bind
inc eax
jne 0x401ce0
push ebx
call sub.WSOCK32.DLL_closesocket
mov eax, 0xfffffffc
jmp 0x401ebd
push 0x10
push 0
lea edx, [ebp - 0x128]
push edx
call fcn.0045b10c
add esp, 0xc
mov word [ebp - 0x128], 2
push 0xffffffffffffffff
call sub.WSOCK32.DLL_htonl
mov dword [ebp - 0x124], eax
push 0xc7b
call sub.WSOCK32.DLL_htons
mov word [ebp - 0x126], ax
lea edi, [ebp - 0x118]
mov eax, edi
mov esi, 0x468416
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [ebp - 0x111], 1
lea edx, [ebp - 0x128]
push 0x10
push edx
push 0
lea ecx, [ebp - 0x118]
push 8
push ecx
push ebx
call sub.WSOCK32.DLL_sendto
mov esi, eax
inc esi
jne 0x401d5f
push ebx
call sub.WSOCK32.DLL_closesocket
mov eax, 0xfffffffb
jmp 0x401ebd
mov edx, dword [ebp + 0x14]
xor ecx, ecx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0xc], 1
mov eax, dword [ebp + 0xc]
mov byte [eax], 0
xor edx, edx
mov dword [ebp - 0x23c], edx
xor eax, eax
lea edx, [ebp - 0x238]
jmp 0x401d91
cmp ebx, dword [edx]
je 0x401d99
inc eax
add edx, 4
cmp eax, dword [ebp - 0x23c]
jb 0x401d89
mov edx, dword [ebp - 0x23c]
cmp eax, edx
jne 0x401db5
cmp edx, 0x40
jae 0x401db5
mov dword [ebp + eax*4 - 0x238], ebx
inc dword [ebp - 0x23c]
lea eax, [ebp - 0x14]
lea ecx, [ebp - 0x23c]
push eax
push 0
push 0
push ecx
push 0x40
call sub.WSOCK32.DLL_select
mov esi, eax
test esi, esi
jle 0x401eaf
lea eax, [ebp - 0x23c]
push eax
push ebx
call sub.WSOCK32.DLL___WSAFDIsSet
test eax, eax
je 0x401d77
mov dword [ebp - 8], 0x10
push 0x101
push 0
lea edx, [ebp - 0x118]
push edx
call fcn.0045b10c
add esp, 0xc
lea ecx, [ebp - 8]
lea eax, [ebp - 0x128]
lea edx, [ebp - 0x118]
push ecx
push eax
push 0
push 0x100
push edx
push ebx
call sub.WSOCK32.DLL_recvfrom
mov esi, eax
cmp esi, 8
jle 0x401d77
sub esi, 8
push 7
push 0x46841e
lea eax, [ebp - 0x118]
push eax
call fcn.0045b2e0
add esp, 0xc
test eax, eax
jne 0x401d77
cmp byte [ebp - 0x111], 1
jne 0x401d77
mov edx, dword [ebp - 0xc]
mov edi, esi
add edx, edi
add edx, 2
cmp edx, dword [ebp + 0x10]
jbe 0x401e71
mov eax, 0xfffffffa
jmp 0x401ebd
mov edx, dword [ebp + 0xc]
inc byte [edx]
mov edx, esi
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp - 0xc]
mov byte [ecx + eax], dl
lea ecx, [ebp - 0x110]
inc dword [ebp - 0xc]
push edi
push ecx
mov eax, dword [ebp + 0xc]
add eax, dword [ebp - 0xc]
push eax
call fcn.0045b09c
add esp, 0xc
add dword [ebp - 0xc], edi
xor edx, edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x10], 0x61a80
jmp 0x401d77
push ebx
call sub.WSOCK32.DLL_closesocket
mov ecx, dword [ebp + 0xc]
movsx esi, byte [ecx]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret