Function at 0x589c60
Capabilities:
Create udp socket
Receive data
Receive data on socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
mov eax, dword [0x6480b4]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x378], 0
jne 0x589c94
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0x14
call edi
cmp dword [esi + 0x378], 0
je 0x589c87
lea eax, [ebp - 0x220]
mov dword [esi + 0x3f8], 0
push eax
mov dword [ebp - 0x230], 1
mov dword [ebp - 0x220], 0x114
call dword [0x648e54]
cmp dword [ebp - 0x210], 2
jne 0x589cd8
cmp dword [ebp - 0x21c], 6
mov byte [ebp - 0x221], 0
jae 0x589cdf
mov byte [ebp - 0x221], 1
push dword [esi + 0x3f0]
call fcn.00479f2b
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x58a16a
push dword [esi + 0x3f4]
lea ecx, [esi + 0x388]
call fcn.0058b990
lea ecx, [ebp - 0x104]
push ecx
lea eax, [esi + 0x2c1]
push 0
push eax
call fcn.00570ea0
add esp, 0xc
test al, al
jne 0x589d38
push str.Invalid_multicast_address._n
push 9
call fcn.004da370
add esp, 8
jmp 0x58a152
movzx eax, word [ebp - 0x104]
push 0
push 2
push eax
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 0x380], eax
cmp eax, 0xffffffff
jne 0x589d66
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Socket_error__u_n
jmp 0x58a148
mov edi, dword [sym.imp.WS2_32.dll_setsockopt]
lea ecx, [ebp - 0x230]
push 4
push ecx
push 4
push 0xffff
push eax
call edi
cmp eax, 0xffffffff
jne 0x589d95
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Unable_to_share_address.___u__n
jmp 0x58a148
mov dword [ebp - 0x228], 0xffff7
nop
push 4
lea eax, [ebp - 0x228]
push eax
push 0x1002
push 0xffff
push dword [esi + 0x380]
call edi
cmp eax, 0xffffffff
jne 0x589df4
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [ebp - 0x228]
push str.Unable_to_configure_receive_buffer_to__u.___u__n
push 9
call fcn.004da370
mov eax, dword [ebp - 0x228]
add esp, 0x10
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x228], eax
cmp eax, 0x8000
jg 0x589da0
push 0x7c
lea eax, [ebp - 0x80]
mov dword [ebp - 0x10c], 0
push 0
push eax
call fcn.005c9220
mov ax, word [ebp - 0x104]
add esp, 0xc
mov word [ebp - 0x84], ax
movzx eax, word [esi + 0x2f4]
push eax
call dword [sym.imp.WS2_32.dll_htons]
cmp word [ebp - 0x84], 2
mov word [ebp - 0x82], ax
jne 0x589e48
push 0
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [ebp - 0x80], eax
jmp 0x589e53
movups xmm0, xmmword [0x640758]
movups xmmword [ebp - 0x7c], xmm0
cmp byte [ebp - 0x221], 0
xorps xmm0, xmm0
movlpd qword [ebp - 0x238], xmm0
je 0x589e88
lea eax, [esi + 0x2c1]
push eax
call dword [sym.imp.WS2_32.dll_inet_addr]
push 0
mov dword [ebp - 0x238], eax
call dword [sym.imp.WS2_32.dll_htonl]
mov dword [ebp - 0x234], eax
push 0x80
lea eax, [ebp - 0x84]
push eax
push dword [esi + 0x380]
call dword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x589eb6
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.bind_error__u_n
jmp 0x58a148
cmp byte [ebp - 0x221], 0
je 0x589eea
push 8
lea eax, [ebp - 0x238]
push eax
push 0xc
push 0
push dword [esi + 0x380]
call edi
cmp eax, 0xffffffff
jne 0x589f27
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Unable_to_join_IPv4_multicast_group.__The_network_interface_may_not_support_multicast.___u__n
jmp 0x58a148
push 0x88
lea eax, [ebp - 0x10c]
push eax
movzx eax, word [ebp - 0x104]
push 0x29
push eax
call fcn.00570e80
add esp, 4
push eax
push dword [esi + 0x380]
call edi
cmp eax, 0xffffffff
jne 0x589f27
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.Unable_to_join_multicast_group.__The_network_interface_may_not_support_multicast.___u__n
jmp 0x58a148
lea eax, [ebp - 0x22c]
mov byte [ebp - 0x228], 0
push eax
lea eax, [ebp - 0x84]
mov dword [ebp - 0x22c], 0x80
push eax
push 0
push dword [esi + 0x3f0]
push ebx
push dword [esi + 0x380]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov ecx, eax
cmp ecx, 0xffffffff
je 0x58a13c
test ecx, ecx
je 0x58a191
cmp byte [esi + 0x350], 0
je 0x589f95
mov eax, dword [esi + 0x344]
cmp eax, dword [ebx + 4]
ja 0x589f95
jb 0x589f8e
mov eax, dword [esi + 0x340]
cmp eax, dword [ebx]
ja 0x589f95
mov byte [esi + 0x350], 0
mov edi, dword [ebx]
mov eax, edi
mov edx, dword [ebx + 4]
and eax, edx
cmp eax, 0xffffffff
jne 0x589fda
cmp ecx, 0x10
jne 0x58a104
mov eax, dword [esi + 0x3e0]
or eax, dword [esi + 0x3e4]
jne 0x58a104
push dword [ebx + 0xc]
lea ecx, [esi + 0x388]
mov byte [ebp - 0x228], al
push dword [ebx + 8]
call fcn.0058ba70
jmp 0x58a0f7
cmp edi, 0xfffffffe
jne 0x58a0e2
cmp edx, 0xffffffff
jne 0x58a0e2
cmp ecx, 0x1c
jne 0x58a104
cmp byte [ebp - 0x228], 0
jne 0x58a104
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 0x340]
jne 0x58a104
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x344]
jne 0x58a104
lea edi, [esi + 0x35c]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 8]
mov dword [esi + 0x340], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 0x344], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x348], eax
mov eax, dword [ebx + 0x14]
push edi
mov dword [esi + 0x34c], eax
mov word [esi + 0x350], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push dword [ebx + 0xc]
lea ecx, [esi + 0x388]
push dword [ebx + 8]
call fcn.0058ba20
lea eax, [esi + 0x254]
mov ecx, 0xfffff5ff
lock and dword [eax], ecx
push 0x80
mov ecx, esi
call fcn.0058a310
mov ecx, dword [ebp - 0x228]
test eax, eax
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [ebp - 0x228], ecx
call fcn.004afdf0
push eax
call fcn.005d28cc
mov edi, dword [ebx + 0x18]
mov eax, 0x28
cmp edi, 0x28
cmova edi, eax
call fcn.005d28ab
xor edx, edx
div edi
add edx, 0xa
push edx
push str.Max_buffers_before_wait:__u_n
push 9
mov dword [esi + 0x33c], edx
call fcn.004da370
add esp, 0x10
jmp 0x58a104
lea eax, [ecx - 8]
push eax
lea eax, [ebx + 8]
push eax
push edx
push edi
lea ecx, [esi + 0x388]
call fcn.0058b420
test eax, eax
jne 0x58a104
push 4
mov ecx, esi
call fcn.00515980
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x22c], 0x80
push eax
lea eax, [ebp - 0x84]
push eax
push 0
push dword [esi + 0x3f0]
push ebx
push dword [esi + 0x380]
call dword [sym.imp.WS2_32.dll_recvfrom]
mov ecx, eax
cmp ecx, 0xffffffff
jne 0x589f66
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push str.recvfrom_error__u_n
push 9
call fcn.004da370
add esp, 0xc
push 0
push 0
lea ecx, [esi + 0x388]
call fcn.0058ba20
push ebx
call fcn.0058bb5f
add esp, 4
push accept
mov ecx, esi
call fcn.00515980
mov ecx, dword [ebp - 4]
pop edi
mov dword [esi + 0x374], 1
xor ecx, ebp
pop esi
pop ebx
call fcn.0058bb64
mov esp, ebp
pop ebp
ret
push str.disconnected_n
push 9
call fcn.004da370
add esp, 8
jmp 0x58a152