Function at 0x54c912
Capabilities:
Create udp socket
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0x1c]
shr eax, 3
and al, 1
push ebx
mov byte [ebp + 0x1f], al
mov eax, dword [0x672cf8]
push esi
xor ebx, ebx
xor esi, esi
cmp eax, ebx
mov dword [ebp - 8], esi
mov ecx, 0x773d88
jbe 0x54c94e
mov edx, ecx
cmp byte [edx], bl
je 0x54c94e
inc esi
add edx, 0x9a8
cmp esi, eax
mov dword [ebp - 8], esi
jb 0x54c93c
cmp esi, eax
jne 0x54c97f
push 0x2728
call fcn.0054d799
mov dword [esp], str.too_many_RML_sockets_open
push str.RMLSocket
push str._s_failed:__s_n
push 0x32
call fcn.004f1757
add esp, 0x10
or eax, 0xffffffff
jmp 0x54cee5
push edi
imul esi, esi, 0x9a8
mov edi, dword [ebp + 8]
push 0x14
add esi, ecx
or dword [esi + 4], 0xffffffff
or dword [esi + 0x6f0], 0xffffffff
push ebx
push ebx
push 0x11
push 2
push edi
mov dword [esi + 0x75c], ebx
mov dword [esi + 0x760], ebx
mov dword [esi + 0x628], ebx
mov dword [esi + 0x5f8], ebx
mov dword [esi + 0x5fc], ebx
mov dword [esi + 0x6b8], ebx
mov dword [esi + 0x690], ebx
mov dword [esi + 0x6e8], ebx
mov dword [esi + 0x6ec], ebx
mov byte [esi + 0x6f8], bl
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
jne 0x54ca0d
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0054d799
push edi
call fcn.004f1822
push eax
push str.WSASocket
push str...RMLStAll.cpp:307
jmp 0x54cebe
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x10], eax
lea eax, [esi + 0x50]
lea ecx, [esi + 0x24]
push 0x1bf300
push esi
mov dword [esi + 8], edi
mov byte [esi + 0x14], bl
mov byte [esi + 0x15], bl
mov byte [esi + 0x1c], 1
mov dword [esi + 0x18], ebx
mov dword [esi + 0x34], eax
mov dword [esi + 0x5ec], ecx
mov dword [esi + 0x5e8], 0xd
mov dword [esi + 0x5f4], eax
mov dword [esi + 0x5f0], 0x597
call fcn.0054ecf8
test al, al
pop ecx
pop ecx
jne 0x54ca90
push esi
call fcn.0054fc7c
mov dword [esp], 0x2747
call fcn.0054d799
mov dword [esp], str...RMLStAll.cpp:335
push str._s:_malloc_failed_n
push 0x32
call fcn.004f1757
add esp, 0xc
jmp 0x54ced3
push dword [esi + 0x62c]
push str.RML_socket_send_buffer_size_set_to__lu_n
push 0x14
call fcn.004f1757
mov eax, 0xeac6
push eax
xor edi, edi
inc edi
push str.Setting_UDP_socket_receive_buffer_size_to__d_n
push 0x14
mov dword [esi + 0x630], edi
mov dword [esi + 0x634], edi
mov dword [esi + 0x638], ebx
mov dword [esi + 0x698], ebx
mov dword [ebp - 4], eax
call fcn.004f1757
add esp, 0x18
push 4
lea eax, [ebp - 4]
push eax
push 0x1002
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x54cb17
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0054d799
push edi
call fcn.004f1822
push eax
push str.setsockopt
push str...RMLStAll.cpp:358
jmp 0x54cebe
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 4]
push eax
push 0x1002
push 0xffff
push dword [esi + 4]
mov dword [ebp - 0xc], 4
call dword [sym.imp.WS2_32.dll_getsockopt]
cmp eax, 0xffffffff
jne 0x54cb62
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0054d799
push edi
call fcn.004f1822
push eax
push str.getsockopt
push str...RMLStAll.cpp:371
jmp 0x54cebe
push dword [ebp - 4]
push str.UDP_socket_receive_buffer_size_set_to__d_n
push 0x14
call fcn.004f1757
mov ecx, dword [ebp - 4]
mov eax, dword [0x6f0dfc]
lea edx, [ecx - 0xb2e]
add esp, 0xc
cmp edx, eax
jge 0x54cb94
add ecx, 0xfffff4d2
mov dword [esi + 0x5fc], ecx
jmp 0x54cb9a
mov dword [esi + 0x5fc], eax
push dword [esi + 0x5fc]
push str.RML_socket_receive_buffer_size_set_to__lu_n
push 0x14
call fcn.004f1757
add esp, 0xc
push 4
lea eax, [ebp - 4]
push eax
push 0x1001
push 0xffff
push dword [esi + 4]
mov dword [ebp - 4], 0x20000
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x54cbf8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0054d799
push edi
call fcn.004f1822
push eax
push str.setsockopt
push str...RMLStAll.cpp:406
jmp 0x54cebe
push 0x10
push dword [esi + 0x5fc]
push esi
call fcn.0054f221
add esp, 0xc
cmp eax, 0xffffffff
jne 0x54cc1a
push esi
call fcn.0054fc7c
pop ecx
jmp 0x54ced3
mov byte [esi + 0x730], bl
mov byte [esi + 0x731], bl
mov byte [esi + 0x732], bl
mov byte [esi + 0x733], bl
mov byte [esi + 0x738], bl
mov byte [esi + 0x739], bl
mov byte [esi + 0x6ac], bl
mov byte [esi + 0x6ad], bl
mov dword [esi + 0x6b4], 0xea60
call fcn.0054c8fb
or dword [esi + 0x654], 0xffffffff
lea ecx, [eax + 1]
add eax, eax
push 0x10
mov dword [esi + 0x6e4], eax
lea eax, [esi + 0x73c]
shr ecx, 1
push ebx
push eax
mov dword [esi + 0x68c], ecx
mov dword [esi + 0x6fc], ebx
mov dword [esi + 0x700], ebx
mov dword [esi + 0x704], ebx
mov dword [esi + 0x708], ebx
mov dword [esi + 0x70c], ebx
mov dword [esi + 0x710], ebx
mov dword [esi + 0x714], ebx
mov dword [esi + 0x718], ebx
mov dword [esi + 0x71c], ebx
mov dword [esi + 0x720], ebx
mov dword [esi + 0x724], ebx
mov dword [esi + 0x728], ebx
mov dword [esi + 0x72c], ebx
mov dword [esi + 0x640], edi
mov dword [esi + 0x644], edi
mov dword [esi + 0x648], edi
mov dword [esi + 0x63c], edi
mov dword [esi + 0x64c], edi
mov dword [esi + 0x650], 0x597
mov dword [esi + 0x658], ebx
mov dword [esi + 0x65c], ebx
mov dword [esi + 0x6e0], 0x3e8
mov dword [esi + 0x674], ebx
mov dword [esi + 0x678], 0x18
mov byte [esi + 0x67c], bl
mov dword [esi + 0x680], ebx
mov byte [esi + 0x660], bl
mov dword [esi + 0x670], ebx
mov byte [esi + 0x668], bl
call fcn.00408660
add esp, 0xc
cmp byte [ebp + 0x1f], bl
mov dword [esi + 0x6a8], ebx
mov byte [esi + 0x6a4], bl
mov dword [esi + 0x6a0], ebx
mov byte [esi + 0x9a0], bl
mov dword [esi + 0x9a4], ebx
je 0x54ce05
push 0x70
mov dword [esi + 0x20], 2
call fcn.0040b899
cmp eax, ebx
pop ecx
mov dword [esi + 0x75c], eax
jne 0x54cd95
push 0x2747
call fcn.0054d799
mov dword [esp], str...RMLStAll.cpp:500
jmp 0x54ce2b
mov dword [eax + 8], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 4], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x18], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x10], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x14], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x1c], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x20], ebx
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x24], ebx
mov eax, dword [esi + 0x75c]
mov byte [eax + 0x28], bl
mov eax, dword [esi + 0x75c]
mov dword [eax + 0x6c], ebx
push esi
mov dword [esi + 0x764], ebx
mov dword [esi + 0x99c], ebx
call fcn.0054dcc1
push esi
call fcn.0054dc04
pop ecx
pop ecx
jmp 0x54ce5d
push 0x10
mov dword [esi + 0x20], ebx
call fcn.0040b899
cmp eax, ebx
pop ecx
mov dword [esi + 0x760], eax
jne 0x54ce45
push 0x2747
call fcn.0054d799
mov dword [esp], str...RMLStAll.cpp:528
push str._s:_malloc_failed_n
push 0x32
call fcn.004f1757
push esi
call fcn.0054fc7c
add esp, 0x10
jmp 0x54ced3
push ebx
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esi + 0x760]
mov dword [ecx], eax
mov eax, dword [esi + 0x760]
mov dword [eax + 0xc], edi
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esi + 0x6b8], eax
jne 0x54ce8e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0054d799
push edi
call fcn.004f1822
push eax
push 0x6632f8
push str...RMLStAll.cpp:540
jmp 0x54cebe
push 3
push eax
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
jne 0x54ced8
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.0054d799
push edi
call fcn.004f1822
push eax
push 0x6630a4
push str...RMLStAll.cpp:551
push str._s:__s_failed:__s_n
push 0x32
call fcn.004f1757
push esi
call fcn.0054fc7c
add esp, 0x20
or eax, 0xffffffff
jmp 0x54cee4
mov eax, dword [ebp - 8]
mov byte [esi + 0x6bd], bl
mov byte [esi], 1
pop edi
pop esi
pop ebx
leave
ret