Function at 0x403c3e
Capabilities:
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x13ec
call fcn.00430610
mov eax, dword [0x449654]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
and dword [ebp - 0x13cc], 0
and dword [ebp - 0x13c0], 0
push ebx
mov dword [ebp - 0x13c8], eax
mov eax, dword [ebp + 0xc]
push esi
push edi
mov dword [ebp - 0x13e4], eax
lea eax, [ebp - 0x13a8]
push eax
push 0x202
mov edi, ecx
mov ebx, edx
mov dword [ebp - 0x13dc], 0xbb8
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0x11
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 0x13bc], eax
test eax, eax
je 0x403f96
cmp eax, 0xffffffff
je 0x403f96
push 4
lea ecx, [ebp - 0x13dc]
push ecx
push 0x1006
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
mov esi, dword [sym.imp.WS2_32.dll_htons]
push 2
pop eax
push 0x35
mov word [ebp - 0x1218], ax
call esi
push ebx
mov word [ebp - 0x1216], ax
call dword [sym.imp.WS2_32.dll_inet_addr]
mov dword [ebp - 0x1214], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movzx eax, ax
push eax
mov dword [ebp - 0x13b8], eax
call esi
push 1
mov word [ebp - 0x13d8], ax
mov byte [ebp - 0x13d6], 1
mov byte [ebp - 0x13d5], 0
call esi
mov word [ebp - 0x13d4], ax
xor eax, eax
mov word [ebp - 0x13d2], ax
mov word [ebp - 0x13d0], ax
mov word [ebp - 0x13ce], ax
lea eax, [ebp - 0x200]
push eax
push edi
call fcn.00403bae
pop ecx
pop ecx
mov edi, eax
push 1
mov dword [ebp - 0x13c4], edi
call esi
push 1
mov word [ebp - 0x13ac], ax
call esi
mov word [ebp - 0x13aa], ax
lea eax, [edi + 0x10]
push eax
mov dword [ebp - 0x13b0], eax
call fcn.00419894
mov ebx, eax
lea esi, [ebp - 0x13d8]
mov edi, ebx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp - 0x13c4]
push esi
lea eax, [ebp - 0x200]
push eax
lea eax, [ebx + 0xc]
push eax
call fcn.00422d00
mov eax, dword [ebp - 0x13ac]
add esp, 0x10
push 0x10
mov dword [ebx + esi + 0xc], eax
pop esi
push esi
lea eax, [ebp - 0x1218]
push eax
push 0
push dword [ebp - 0x13b0]
push ebx
push dword [ebp - 0x13bc]
call dword [sym.imp.WS2_32.dll_sendto]
test eax, eax
jl 0x403f96
lea eax, [ebp - 0x13e0]
push eax
lea eax, [ebp - 0x1218]
push eax
push 0
push 0x1000
lea eax, [ebp - 0x1208]
push eax
push dword [ebp - 0x13bc]
mov dword [ebp - 0x13e0], esi
call dword [sym.imp.WS2_32.dll_recvfrom]
mov dword [ebp - 0x13b4], eax
test eax, eax
jl 0x403f96
push dword [ebp - 0x1208]
mov esi, dword [sym.imp.WS2_32.dll_ntohs]
call esi
cmp ax, word [ebp - 0x13b8]
jne 0x403f96
push dword [ebp - 0x1202]
call esi
and dword [ebp - 0x13ac], 0
mov esi, dword [ebp - 0x13b0]
movzx eax, ax
mov dword [ebp - 0x13e8], eax
test eax, eax
jle 0x403f8c
mov eax, dword [ebp - 0x13c8]
mov dword [ebp - 0x13b0], 4
sub dword [ebp - 0x13b0], eax
mov dword [ebp - 0x13c4], eax
cmp esi, dword [ebp - 0x13b4]
jae 0x403f8c
lea eax, [ebp - 0x13b8]
push eax
lea eax, [ebp - 0x208]
push eax
push dword [ebp - 0x13b4]
mov ecx, esi
lea edx, [ebp - 0x1208]
call fcn.00403ab0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x403f96
add esi, edi
cmp esi, dword [ebp - 0x13b4]
jae 0x403f96
lea ebx, [ebp + esi - 0x1208]
add esi, 0xa
cmp esi, dword [ebp - 0x13b4]
jae 0x403f96
movzx eax, word [ebx]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, ax
mov dword [ebp - 0x13b8], eax
cmp eax, 1
jne 0x403f3f
movzx eax, word [ebx + 8]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx edi, ax
lea eax, [edi + esi]
cmp eax, dword [ebp - 0x13b4]
ja 0x403f96
cmp dword [ebp - 0x13c8], 0
je 0x403f72
cmp edi, 4
jne 0x403f72
mov ecx, dword [ebp - 0x13b0]
mov eax, dword [ebp - 0x13c4]
add ecx, eax
cmp ecx, 0x28
ja 0x403f72
mov ecx, dword [ebp + esi - 0x1208]
add dword [ebp - 0x13c0], edi
mov dword [eax], ecx
add eax, edi
mov dword [ebp - 0x13c4], eax
cmp dword [ebp - 0x13b8], 5
jne 0x403f72
lea eax, [ebp - 0x13b8]
push eax
lea eax, [ebp - 0x208]
push eax
push dword [ebp - 0x13b4]
mov ecx, esi
lea edx, [ebp - 0x1208]
call fcn.00403ab0
mov edi, eax
add esp, 0xc
test edi, edi
je 0x403f96
add esi, edi
inc dword [ebp - 0x13ac]
mov eax, dword [ebp - 0x13ac]
cmp eax, dword [ebp - 0x13e8]
jl 0x403e74
mov dword [ebp - 0x13cc], 1
mov edx, dword [ebp - 0x13c8]
test edx, edx
je 0x403fb8
mov ecx, dword [ebp - 0x13c0]
lea eax, [ecx + 1]
cmp eax, 0x28
ja 0x403fb8
mov byte [edx + ecx], 0
mov dword [ebp - 0x13c0], eax
mov eax, dword [ebp - 0x13e4]
test eax, eax
je 0x403fca
mov ecx, dword [ebp - 0x13c0]
mov dword [eax], ecx
cmp dword [ebp - 0x13bc], 0
je 0x403fe8
cmp dword [ebp - 0x13bc], 0xffffffff
je 0x403fe8
push dword [ebp - 0x13bc]
call dword [sym.imp.WS2_32.dll_closesocket]
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x13cc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041cb1b
leave
ret