Function at 0x405600
Capabilities:
Accept command line arguments
Create udp socket
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x412066
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x9bc
push esi
push edi
push 1
push 0
push 0
push 0xffffffffffffffff
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
push 0x11
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x14], 0
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
xor edx, edx
push 0x18e
mov edi, eax
push edx
lea eax, [esp + 0x3a]
push eax
mov word [esp + 0x3c], dx
call fcn.0040d8c0
add esp, 0xc
lea ecx, [esp + 0x30]
push ecx
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp eax, 0xffffffff
jne 0x40568f
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0
push 2
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esp + 8], eax
mov dword [esp + 0x9cc], 0
cmp dword [esp + 8], 0
je 0x4056cf
lea esi, [esp + 8]
call fcn.00401370
mov eax, dword [esp + 8]
test eax, eax
je 0x4056c9
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, dword [esp + 0x10]
cmp eax, 3
je 0x4056dd
cmp eax, 2
jne 0x4056e1
test edi, edi
jne 0x405719
mov dword [esp + 0x9cc], 0xffffffff
mov eax, dword [esp + 8]
test eax, eax
je 0x4056fb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WS2_32.dll_WSACleanup]
xor eax, eax
mov ecx, dword [esp + 0x9c4]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
call fcn.00401620
cmp dword [esp + 0x10], 3
jne 0x405767
mov esi, dword [edi + 4]
call fcn.00405590
mov esi, eax
mov dword [esp + 0x9cc], 0xffffffff
mov eax, dword [esp + 8]
test eax, eax
je 0x405749
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov eax, esi
mov ecx, dword [esp + 0x9c4]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov edx, dword [edi]
mov eax, dword [edi + 4]
push edx
push eax
call fcn.00404230
add esp, 8
test eax, eax
jne 0x405826
xor ecx, ecx
push 0x7fe
push ecx
lea edx, [esp + 0x1ca]
push edx
mov word [esp + 0x1cc], cx
call fcn.0040d8c0
mov eax, dword [edi + 4]
lea edx, [esp + 0x1cc]
add esp, 0xc
sub edx, eax
lea ebx, [ebx]
movzx ecx, word [eax]
mov word [edx + eax], cx
add eax, 2
test cx, cx
jne 0x4057b0
lea esi, [esp + 0xc]
call fcn.004013f0
mov byte [esp + 0x9cc], 1
cmp dword [esp + 0xc], 0
je 0x4057eb
call fcn.00401370
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4057eb
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov esi, dword [sym.imp.WS2_32.dll_WSACleanup]
call esi
lea eax, [esp + 0x1c0]
call fcn.00405530
lea eax, [esp + 0x1c0]
push eax
call dword [0x41bea4]
mov byte [esp + 0x9cc], 0
mov eax, dword [esp + 0xc]
test eax, eax
je 0x405824
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
mov dword [esp + 0x9cc], 0xffffffff
mov eax, dword [esp + 8]
test eax, eax
je 0x405840
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov ecx, dword [esp + 0x9c4]
pop edi
mov eax, 1
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret 0x10