Function at 0x586460
Capabilities:
Create udp socket
Send data
Send data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1a
push 0
push 0
dec ecx
jne 0x586468
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x586cb4
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.00585f0c
test al, al
je 0x586c79
push 0x11
push 2
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0xffffffff
je 0x586c38
xor eax, eax
push ebp
push 0x586c31
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x72]
mov edx, 0x66
call fcn.00408684
lea eax, [ebp - 0x72]
mov ecx, 0xff
mov edx, 6
call fcn.004038ec
xor esi, esi
mov eax, ebx
call fcn.00405204
cmp eax, 0x11
jne 0x586817
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0x88]
call fcn.004051a8
mov eax, dword [ebp - 0x88]
call fcn.0040c3cc
mov edi, esi
add edi, edi
lea edi, [edi + edi*2]
add edi, 6
mov byte [ebp + edi - 0x72], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 3]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 4]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0x98]
call fcn.004051a8
mov eax, dword [ebp - 0x98]
call fcn.0040c3cc
mov byte [ebp + edi - 0x71], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 6]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 7]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0x9c]
call fcn.004051a8
mov eax, dword [ebp - 0x9c]
call fcn.0040c3cc
mov byte [ebp + edi - 0x70], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 9]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0xa]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xa0]
call fcn.004051a8
mov eax, dword [ebp - 0xa0]
call fcn.0040c3cc
mov byte [ebp + edi - 0x6f], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0xc]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0xd]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xa4]
call fcn.004051a8
mov eax, dword [ebp - 0xa4]
call fcn.0040c3cc
mov byte [ebp + edi - 0x6e], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0xf]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0x10]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xa8]
call fcn.004051a8
mov eax, dword [ebp - 0xa8]
call fcn.0040c3cc
mov byte [ebp + edi - 0x6d], al
jmp 0x586b66
mov eax, ebx
call fcn.00405204
cmp eax, 0xc
jne 0x586b50
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 1]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xac]
call fcn.004051a8
mov eax, dword [ebp - 0xac]
call fcn.0040c3cc
mov edi, esi
add edi, edi
lea edi, [edi + edi*2]
add edi, 6
mov byte [ebp + edi - 0x72], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 2]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 3]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xb0]
call fcn.004051a8
mov eax, dword [ebp - 0xb0]
call fcn.0040c3cc
mov byte [ebp + edi - 0x71], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 4]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 5]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xb4]
call fcn.004051a8
mov eax, dword [ebp - 0xb4]
call fcn.0040c3cc
mov byte [ebp + edi - 0x70], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 6]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 7]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xb8]
call fcn.004051a8
mov eax, dword [ebp - 0xb8]
call fcn.0040c3cc
mov byte [ebp + edi - 0x6f], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 8]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 9]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xbc]
call fcn.004051a8
mov eax, dword [ebp - 0xbc]
call fcn.0040c3cc
mov byte [ebp + edi - 0x6e], al
mov edx, 0x586cc4
lea eax, [ebp - 0x8c]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0xa]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x8c]
mov cl, 2
call fcn.004037a0
lea edx, [ebp - 0x8c]
lea eax, [ebp - 0x94]
call fcn.004037d0
lea eax, [ebp - 0x90]
mov dl, byte [ebx + 0xb]
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x90]
lea eax, [ebp - 0x94]
mov cl, 3
call fcn.004037a0
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xc0]
call fcn.004051a8
mov eax, dword [ebp - 0xc0]
call fcn.0040c3cc
mov byte [ebp + edi - 0x6d], al
jmp 0x586b66
mov ecx, 0x586cd0
mov dl, 1
mov eax, dword [0x40ad48]
call fcn.0040fe50
call fcn.004048a4
inc esi
cmp esi, 0x10
jne 0x5864db
lea eax, [ebp - 0x84]
mov edx, 0x10
call fcn.00408684
mov word [ebp - 0x84], 2
push 0x7530
call sub.wsock32.dll_htons
mov word [ebp - 0x82], ax
mov dword [ebp - 0x80], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
push 4
lea eax, [ebp - 0xc]
push eax
push 0x20
push 0xffff
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_setsockopt
push 0x10
lea eax, [ebp - 0x84]
push eax
push 0
push 0x66
lea eax, [ebp - 0x72]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_sendto
inc eax
jne 0x586c1a
push 0x10
push 0
call sub.wsock32.dll_WSAGetLastError
lea edx, [ebp - 0xc8]
call fcn.00585418
mov ecx, dword [ebp - 0xc8]
lea eax, [ebp - 0xc4]
mov edx, 0x586cf4
call fcn.00405250
mov eax, dword [ebp - 0xc4]
call fcn.00405404
push eax
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_MessageBoxA_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x586c8b
mov eax, dword [ebp - 8]
push eax
call sub.wsock32.dll_closesocket
ret
push 0x10
push 0
call sub.wsock32.dll_WSAGetLastError
lea edx, [ebp - 0xd0]
call fcn.00585418
mov ecx, dword [ebp - 0xd0]
lea eax, [ebp - 0xcc]
mov edx, 0x586d14
call fcn.00405250
mov eax, dword [ebp - 0xcc]
call fcn.00405404
push eax
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_MessageBoxA_1
jmp 0x586c8b
push 0x10
push 0
push 0x586d30
mov eax, dword [ebp - 4]
push eax
call sub.user32.dll_MessageBoxA_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x586cbb
lea eax, [ebp - 0xd0]
mov edx, 0xf
call fcn.00404f58
lea eax, [ebp - 0x88]
call fcn.00404f34
ret