Function at 0x4509bb
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x80
mov eax, dword [0x493bd0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
xor ebx, ebx
cmp byte [0x49a540], bl
push edi
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x54], ebx
jne 0x450a1c
push 0x276d
call fcn.0044b267
mov dword [esp], str.RML_not_initialised
push str.RMLAccept
push str._s_failed:__s_n
push 0x32
call fcn.00451d25
add esp, 0x10
or eax, 0xffffffff
jmp 0x4511b4
push ebx
push dword [ebp + 8]
call fcn.0044bd73
test eax, eax
pop ecx
pop ecx
je 0x450a3e
push 0x273d
call fcn.0044b267
mov dword [esp], str.accepting_is_not_support_on_leaf_sockets
jmp 0x450a00
push esi
push dword [ebp + 8]
call fcn.0044c7a5
mov esi, eax
cmp esi, ebx
pop ecx
jne 0x450a61
push 0x2736
call fcn.0044b267
mov dword [esp], str.argument_is_not_an_RML_socket
jmp 0x450a99
cmp dword [esi + 0x18], 1
je 0x450a7a
push 0x2726
call fcn.0044b267
mov dword [esp], str.socket_is_not_listening
jmp 0x450a99
cmp dword [ebp - 0x5c], ebx
je 0x450ab2
cmp edi, ebx
je 0x450ab2
cmp dword [edi], 0x10
jge 0x450ab2
push 0x271e
call fcn.0044b267
mov dword [esp], str.addrlen_too_small
push str.RMLAccept
push str._s_failed:__s_n
push 0x32
call fcn.00451d25
add esp, 0x10
jmp 0x450f23
push ebx
push esi
call fcn.0044ec9e
cmp eax, 0xffffffff
pop ecx
pop ecx
je 0x450f23
jmp 0x450eb9
mov eax, dword [esi + 0x774]
cmp dword [eax + 4], ebx
jne 0x450afb
cmp byte [esi + 0x1c], bl
je 0x450f2b
push 0xffffffffffffffff
push esi
call fcn.0044ec9e
cmp eax, 0xffffffff
pop ecx
pop ecx
je 0x450f23
mov eax, dword [esi + 0x774]
cmp dword [eax + 4], ebx
je 0x450add
mov eax, dword [esi + 0x774]
mov edi, dword [eax + 8]
mov eax, dword [edi + 0x654]
lea eax, [eax + edi + 0x14]
push eax
lea eax, [edi + 0x14]
push eax
call fcn.00451a3c
cmp dword [ebp - 0x6c], ebx
pop ecx
pop ecx
mov dword [ebp - 0x54], eax
je 0x450b5a
push eax
call fcn.00451aa5
push dword [ebp - 0x54]
mov dword [ebp - 0x78], eax
call fcn.00451ab8
pop ecx
pop ecx
push dword [ebp + 0x18]
mov dword [ebp - 0x7c], eax
push ebx
push ebx
push ebx
push ebx
push ebx
lea eax, [ebp - 0x7c]
push eax
push ebx
call dword [ebp - 0x6c]
cmp eax, 1
je 0x450f43
cmp eax, 2
je 0x450f9b
mov eax, dword [esi + 0x774]
mov dword [eax + 0xc], edi
mov eax, dword [esi + 0x774]
mov ecx, dword [edi]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x774]
dec dword [eax + 4]
mov eax, dword [esi + 0x774]
cmp dword [eax + 0x1c], ebx
mov byte [ebp - 0x60], 3
jne 0x450b8a
mov byte [ebp - 0x60], 0x13
push 0x10
lea eax, [esi + 0x754]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004555f0
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0xc]
add eax, 4
push 0x10
push eax
lea eax, [ebp - 0x30]
push eax
call fcn.004555f0
mov eax, dword [esi + 0x644]
mov edi, dword [sym.imp.WS2_32.dll_htonl]
add esp, 0x18
shr eax, 1
push eax
call edi
push 0x10
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00452b30
add esp, 0xc
push 0xe04d0100
mov word [ebp - 0x14], 2
call edi
push dword [ebp - 0x54]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0xc]
mov ax, word [eax + 6]
mov word [ebp - 0x12], ax
call fcn.00451aa5
push dword [ebp - 0x54]
call fcn.004508b3
cmp byte [esi + 0x9b8], 1
pop ecx
pop ecx
jne 0x450c1c
mov al, byte [esi + 0x9bc]
cmp al, 1
mov byte [ebp - 0x18], al
jne 0x450c58
push str.Setting_UDP_Socket_to_allow_broadcasts_n
push 0x14
call fcn.00451d25
pop ecx
pop ecx
push 4
lea ecx, [ebp - 0x74]
push ecx
push 0x20
mov dword [ebp - 0x74], 1
mov eax, dword [esi + 4]
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x450fd0
push dword [ebp - 0x18]
call fcn.00450882
add esp, 4
push eax
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0xc]
push dword [eax + 8]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.Telling_client___s__to_use__s_data_transfer_mode_n
push 0x14
call fcn.00451d25
add esp, 0x10
cmp byte [ebp - 0x18], bl
mov dword [ebp - 0x20], ebx
jne 0x450e2b
mov eax, dword [esi + 0x774]
cmp dword [eax + 0x6c], ebx
jne 0x450d18
cmp dword [0x49a544], ebx
mov dword [ebp - 0x58], ebx
jbe 0x450d18
mov edi, dword [ebp - 0x58]
lea edi, [edi*4 + 0x49a500]
mov eax, dword [edi]
mov dword [ebp - 0x64], eax
lea eax, [ebp - 0x64]
push eax
push dword [esi + 4]
call fcn.00450805
cmp eax, 0xffffffff
pop ecx
pop ecx
jne 0x450cf2
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
call fcn.00451df8
push eax
push str.ws2SetMulticastInterface
push str...RMLStSrv.cpp:429
push str._s:__s_failed:__s_n
push 0x1e
call fcn.00451d25
add esp, 0x18
jmp 0x450d0a
mov eax, dword [esi + 0x774]
mov ecx, dword [eax + 0x6c]
mov edx, dword [edi]
mov dword [eax + ecx*4 + 0x2c], edx
mov eax, dword [esi + 0x774]
inc dword [eax + 0x6c]
inc dword [ebp - 0x58]
mov eax, dword [ebp - 0x58]
cmp eax, dword [0x49a544]
jb 0x450ca8
mov eax, dword [esi + 0x774]
cmp dword [eax + 0x6c], 1
jbe 0x450e2b
mov eax, dword [eax + 0xc]
push ebx
push ebx
lea ecx, [ebp - 0x80]
push ecx
push 0x10
lea ecx, [ebp - 0x50]
push ecx
push 0x10
add eax, 4
push eax
push 0xc8000014
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_WSAIoctl]
cmp eax, 0xffffffff
jne 0x450e0e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
call fcn.00451df8
push eax
push str.WSAIoctl_SIO_ROUTING_INTERFACE_QUERY_
push str...RMLStSrv.cpp:455
push str._s:__s_failed:__s_n
push 0x1e
call fcn.00451d25
mov eax, dword [esi + 0x774]
add esp, 0x18
xor edi, edi
cmp dword [eax + 0x6c], ebx
jbe 0x450e2b
mov dword [ebp - 0x58], 0x2c
mov eax, dword [esi + 0x774]
mov ecx, dword [ebp - 0x58]
mov eax, dword [ecx + eax]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x70]
push eax
push dword [esi + 4]
call fcn.00450805
cmp eax, 0xffffffff
pop ecx
pop ecx
je 0x451009
push 0x29
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0x60]
push dword [esi + 0x614]
push 1
push ebx
push esi
call fcn.0044c2d6
add esp, 0x20
cmp eax, 0xffffffff
je 0x451009
push dword [ebp - 0x70]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.Sent_second_packet_multicast_via__s_n
push 0x14
call fcn.00451d25
mov eax, dword [esi + 0x774]
add dword [ebp - 0x58], 4
add esp, 0xc
inc edi
cmp edi, dword [eax + 0x6c]
jb 0x450d92
jmp 0x450e6a
mov eax, dword [ebp - 0x4c]
push eax
mov dword [ebp - 0x20], eax
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.Determined_multicast_interface_via_IOCTL__s_n
push 0x14
call fcn.00451d25
add esp, 0xc
push 0x29
lea eax, [ebp - 0x40]
push eax
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0xc]
add eax, 4
push eax
push dword [ebp - 0x60]
push dword [esi + 0x614]
push 1
push ebx
push esi
call fcn.0044c2d6
add esp, 0x20
cmp eax, 0xffffffff
je 0x451009
push str.Sent_second_packet_unicast_n
push 0x14
call fcn.00451d25
pop ecx
pop ecx
push 3
push esi
call fcn.0044c03f
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x6d8], eax
jmp 0x450e95
push 0xffffffffffffffff
push esi
call fcn.0044ec9e
cmp eax, 0xffffffff
pop ecx
pop ecx
je 0x451026
cmp dword [esi + 0x18], 3
je 0x450e82
cmp dword [esi + 0x18], 4
je 0x450eb9
mov eax, dword [esi + 0x774]
push dword [eax + 0xc]
call fcn.00401990
mov eax, dword [esi + 0x774]
pop ecx
mov dword [eax + 0xc], ebx
cmp dword [esi + 0x18], 1
je 0x450ac9
mov eax, dword [esi + 0x774]
cmp dword [eax + 0xc], ebx
je 0x450f23
push 1
push esi
call fcn.0044c03f
push 0x54
call fcn.0040196a
mov edi, eax
add esp, 0xc
cmp edi, ebx
jne 0x45104a
mov eax, dword [esi + 0x774]
push dword [eax + 0xc]
call fcn.00401990
mov eax, dword [esi + 0x774]
mov dword [eax + 0xc], ebx
mov dword [esp], 0x2747
call fcn.0044b267
mov dword [esp], str...RMLStSrv.cpp:548
push str._s:_malloc_failed_n
push 0x32
call fcn.00451d25
add esp, 0xc
or eax, 0xffffffff
jmp 0x4511b3
and dword [esi + 0x700], 0xfffffff7
or dword [esi + 0x708], 8
push 0x2733
jmp 0x450fc5
lea eax, [edi + 4]
push eax
push 3
push 1
push ebx
push esi
call fcn.0044c722
mov eax, dword [esi + 0x774]
mov ecx, dword [edi]
mov dword [eax + 8], ecx
mov eax, dword [esi + 0x774]
dec dword [eax + 4]
push edi
call fcn.00401990
mov eax, dword [esi + 0x774]
or dword [esi + 0x708], 8
add esp, 0x18
cmp dword [eax + 4], ebx
jne 0x450f8a
and dword [esi + 0x700], 0xfffffff7
jmp 0x450f94
push 8
push esi
call fcn.0044b66a
pop ecx
pop ecx
push 0x274d
jmp 0x450fc5
mov eax, dword [esi + 0x774]
or dword [esi + 0x708], 8
cmp dword [eax + 4], ebx
jne 0x450fb6
and dword [esi + 0x700], 0xfffffff7
jmp 0x450fc0
push 8
push esi
call fcn.0044b66a
pop ecx
pop ecx
push 0x2afa
call fcn.0044b267
pop ecx
jmp 0x450f23
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0044b267
push edi
call fcn.00451df8
push eax
push str.gh_setsockopt
push str...RMLStSrv.cpp:401
push str._s:__s_failed:__s_n
push 0x32
call fcn.00451d25
push esi
call fcn.0044d7f8
add esp, 0x20
jmp 0x450f23
mov eax, dword [esi + 0x774]
push dword [eax + 0xc]
call fcn.00401990
mov eax, dword [esi + 0x774]
pop ecx
mov dword [eax + 0xc], ebx
jmp 0x450f23
mov eax, dword [esi + 0x774]
push dword [eax + 0xc]
call fcn.00401990
mov eax, dword [esi + 0x774]
push 1
push esi
mov dword [eax + 0xc], ebx
call fcn.0044c03f
jmp 0x450f20
mov eax, dword [0x49a4fc]
dec dword [0x49a4fc]
mov dword [edi + 0x14], eax
mov ecx, dword [esi + 0x774]
mov ecx, dword [ecx + 0xc]
push 0x10
add ecx, 4
mov dword [ebp - 0x64], eax
lea eax, [edi + 4]
push ecx
push eax
call fcn.004555f0
or dword [edi + 0x2c], 0xffffffff
mov dword [edi + 0x18], 4
mov byte [edi + 0x1c], bl
mov byte [edi + 0x1d], bl
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
mov dword [edi + 0x28], ebx
mov byte [edi + 0x30], bl
mov dword [edi + 0x34], 1
movzx eax, byte [ebp - 0x18]
mov dword [edi + 0x38], eax
push 0x10
lea eax, [esi + 0x754]
push eax
lea eax, [edi + 0x3c]
push eax
call fcn.004555f0
mov eax, dword [edi + 0x38]
add esp, 0x18
sub eax, ebx
mov dword [edi + 0x4c], ebx
je 0x4510db
dec eax
je 0x4510c8
dec eax
jne 0x4510ed
mov eax, dword [edi + 8]
jmp 0x4510d6
lea eax, [edi + 4]
push eax
push dword [ebp - 0x54]
call fcn.0045091c
pop ecx
pop ecx
mov dword [edi + 0x40], eax
jmp 0x4510ed
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 0x658]
mov dword [edi + 0x4c], eax
mov eax, dword [esi + 0x774]
cmp dword [eax + 0x1c], ebx
jne 0x451101
test byte [esi + 0x48], 0x40
je 0x451101
mov dword [eax + 0x1c], edi
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0x18]
mov dword [edi], eax
mov eax, dword [esi + 0x774]
mov dword [eax + 0x18], edi
mov eax, dword [esi + 0x774]
inc dword [eax + 0x10]
cmp dword [ebp - 0x5c], ebx
mov byte [esi + 0x6bc], bl
je 0x45114f
cmp dword [ebp - 0x68], ebx
je 0x45114f
mov ecx, dword [ebp - 0x68]
push 0x10
pop eax
push eax
mov dword [ecx], eax
mov eax, dword [esi + 0x774]
mov eax, dword [eax + 0xc]
add eax, 4
push eax
push dword [ebp - 0x5c]
call fcn.004555f0
add esp, 0xc
mov eax, dword [esi + 0x774]
push dword [eax + 0xc]
call fcn.00401990
mov eax, dword [esi + 0x774]
mov dword [eax + 0xc], ebx
mov eax, dword [esi + 0x774]
cmp dword [eax + 0x10], 1
pop ecx
jne 0x45117d
push 2
push esi
call fcn.0044b66a
pop ecx
pop ecx
mov eax, dword [esi + 0x774]
or dword [esi + 0x708], 8
cmp dword [eax + 4], ebx
jne 0x451198
and dword [esi + 0x700], 0xfffffff7
jmp 0x4511a2
push 8
push esi
call fcn.0044b66a
pop ecx
pop ecx
cmp dword [ebp - 0x54], ebx
je 0x4511b0
push dword [ebp - 0x54]
call fcn.00451a8e
pop ecx
mov eax, dword [ebp - 0x64]
pop esi
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004533e4
leave
ret