Function at 0x612d67
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 [0x70f720]
push esi
xor ebx, ebx
xor esi, esi
cmp eax, ebx
mov dword [ebp - 8], esi
mov ecx, 0x829540
jbe 0x612da3
mov edx, ecx
cmp byte [edx], bl
je 0x612da3
inc esi
add edx, 0x9c0
cmp esi, eax
mov dword [ebp - 8], esi
jb 0x612d91
cmp esi, eax
jne 0x612dd4
push 0x2728
call fcn.00613bfc
mov dword [esp], str.too_many_RML_sockets_open
push str.RMLSocket
push str._s_failed:__s_n
push 0x32
call fcn.005a6bee
add esp, 0x10
or eax, 0xffffffff
jmp 0x613346
push edi
imul esi, esi, 0x9c0
mov edi, dword [ebp + 8]
push 0x14
add esi, ecx
or dword [esi + 4], 0xffffffff
or dword [esi + 0x708], 0xffffffff
push ebx
push ebx
push 0x11
push 2
push edi
mov dword [esi + 0x774], ebx
mov dword [esi + 0x778], ebx
mov dword [esi + 0x640], ebx
mov dword [esi + 0x610], ebx
mov dword [esi + 0x614], ebx
mov dword [esi + 0x6d0], ebx
mov dword [esi + 0x6a8], ebx
mov dword [esi + 0x700], ebx
mov dword [esi + 0x704], ebx
mov byte [esi + 0x710], bl
call dword [sym.imp.WS2_32.dll_WSASocketA]
cmp eax, 0xffffffff
mov dword [esi + 4], eax
jne 0x612e62
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00613bfc
push edi
call fcn.005a6cc1
push eax
push str.WSASocket
push str...RMLStAll.cpp:320
jmp 0x61331f
mov eax, dword [ebp + 0xc]
mov dword [esi + 0xc], eax
mov eax, dword [ebp + 0x10]
mov dword [esi + 0x10], eax
lea eax, [esi + 0x68]
lea ecx, [esi + 0x3c]
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 + 0x4c], eax
mov dword [esi + 0x604], ecx
mov dword [esi + 0x600], 0xd
mov dword [esi + 0x60c], eax
mov dword [esi + 0x608], 0x597
call fcn.0061515b
test al, al
pop ecx
pop ecx
jne 0x612ee5
push esi
call fcn.0061618d
mov dword [esp], 0x2747
call fcn.00613bfc
mov dword [esp], str...RMLStAll.cpp:348
push str._s:_malloc_failed_n
push 0x32
call fcn.005a6bee
add esp, 0xc
jmp 0x613334
push dword [esi + 0x644]
push str.RML_socket_send_buffer_size_set_to__lu_n
push 0x14
call fcn.005a6bee
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 + 0x648], edi
mov dword [esi + 0x64c], edi
mov dword [esi + 0x650], ebx
mov dword [esi + 0x6b0], ebx
mov dword [ebp - 4], eax
mov dword [esi + 0x34], eax
call fcn.005a6bee
mov eax, dword [esi + 4]
add esp, 0x18
push 4
lea ecx, [ebp - 4]
push ecx
push 0x1002
push 0xffff
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x612f70
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00613bfc
push edi
call fcn.005a6cc1
push eax
push str.gh_setsockopt
push str...RMLStAll.cpp:373
jmp 0x61331f
mov eax, dword [esi + 4]
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebp - 4]
push ecx
push 0x1002
push 0xffff
push eax
mov dword [ebp - 0xc], 4
call dword [sym.imp.WS2_32.dll_getsockopt]
cmp eax, 0xffffffff
jne 0x612fbc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00613bfc
push edi
call fcn.005a6cc1
push eax
push str.gh_getsockopt
push str...RMLStAll.cpp:389
jmp 0x61331f
push dword [ebp - 4]
push str.UDP_socket_receive_buffer_size_set_to__d_n
push 0x14
call fcn.005a6bee
mov ecx, dword [ebp - 4]
lea edx, [ecx - 0xb2e]
mov eax, 0xdf98
add esp, 0xc
cmp edx, eax
jge 0x612fee
add ecx, 0xfffff4d2
mov dword [esi + 0x614], ecx
jmp 0x612ff4
mov dword [esi + 0x614], eax
push dword [esi + 0x614]
push str.RML_socket_receive_buffer_size_set_to__lu_n
push 0x14
call fcn.005a6bee
mov eax, dword [esi + 4]
add esp, 0xc
push 4
lea ecx, [ebp - 4]
push ecx
push 0x1001
push 0xffff
push eax
mov dword [ebp - 4], 0x20000
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x613053
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00613bfc
push edi
call fcn.005a6cc1
push eax
push str.gh_setsockopt
push str...RMLStAll.cpp:424
jmp 0x61331f
mov eax, dword [ebp - 4]
push 0x10
push dword [esi + 0x614]
mov dword [esi + 0x38], eax
push esi
call fcn.00615685
add esp, 0xc
cmp eax, 0xffffffff
jne 0x61307b
push esi
call fcn.0061618d
pop ecx
jmp 0x613334
mov byte [esi + 0x748], bl
mov byte [esi + 0x749], bl
mov byte [esi + 0x74a], bl
mov byte [esi + 0x74b], bl
mov byte [esi + 0x750], bl
mov byte [esi + 0x751], bl
mov byte [esi + 0x6c4], bl
mov byte [esi + 0x6c5], bl
mov dword [esi + 0x6cc], 0xea60
call fcn.00612d50
or dword [esi + 0x66c], 0xffffffff
lea ecx, [eax + 1]
add eax, eax
push 0x10
mov dword [esi + 0x6fc], eax
lea eax, [esi + 0x754]
shr ecx, 1
push ebx
push eax
mov dword [esi + 0x6a4], ecx
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 + 0x730], ebx
mov dword [esi + 0x734], ebx
mov dword [esi + 0x738], ebx
mov dword [esi + 0x73c], ebx
mov dword [esi + 0x740], ebx
mov dword [esi + 0x744], ebx
mov dword [esi + 0x658], edi
mov dword [esi + 0x65c], edi
mov dword [esi + 0x660], edi
mov dword [esi + 0x654], edi
mov dword [esi + 0x664], edi
mov dword [esi + 0x668], 0x597
mov dword [esi + 0x670], ebx
mov dword [esi + 0x674], ebx
mov dword [esi + 0x6f8], 0x3e8
mov dword [esi + 0x68c], ebx
mov dword [esi + 0x690], 0x18
mov byte [esi + 0x694], bl
mov dword [esi + 0x698], ebx
mov byte [esi + 0x678], bl
mov dword [esi + 0x688], ebx
mov byte [esi + 0x680], bl
call fcn.006455e0
add esp, 0xc
cmp byte [ebp + 0x1f], bl
mov dword [esi + 0x6c0], ebx
mov byte [esi + 0x6bc], bl
mov dword [esi + 0x6b8], ebx
mov byte [esi + 0x9b8], bl
mov dword [esi + 0x9bc], ebx
je 0x613266
push 0x70
mov dword [esi + 0x20], 2
call fcn.0040b555
cmp eax, ebx
pop ecx
mov dword [esi + 0x774], eax
jne 0x6131f6
push 0x2747
call fcn.00613bfc
mov dword [esp], str...RMLStAll.cpp:520
jmp 0x61328c
mov dword [eax + 8], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 4], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 0x18], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 0x10], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 0x14], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 0x1c], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 0x20], ebx
mov eax, dword [esi + 0x774]
mov dword [eax + 0x24], ebx
mov eax, dword [esi + 0x774]
mov byte [eax + 0x28], bl
mov eax, dword [esi + 0x774]
mov dword [eax + 0x6c], ebx
push esi
mov dword [esi + 0x77c], ebx
mov dword [esi + 0x9b4], ebx
call fcn.00614124
push esi
call fcn.00614067
pop ecx
pop ecx
jmp 0x6132be
push 0x10
mov dword [esi + 0x20], ebx
call fcn.0040b555
cmp eax, ebx
pop ecx
mov dword [esi + 0x778], eax
jne 0x6132a6
push 0x2747
call fcn.00613bfc
mov dword [esp], str...RMLStAll.cpp:548
push str._s:_malloc_failed_n
push 0x32
call fcn.005a6bee
push esi
call fcn.0061618d
add esp, 0x10
jmp 0x613334
push ebx
call dword [sym.imp.WS2_32.dll_htonl]
mov ecx, dword [esi + 0x778]
mov dword [ecx], eax
mov eax, dword [esi + 0x778]
mov dword [eax + 0xc], edi
call dword [sym.imp.WS2_32.dll_WSACreateEvent]
cmp eax, ebx
mov dword [esi + 0x6d0], eax
jne 0x6132ef
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00613bfc
push edi
call fcn.005a6cc1
push eax
push 0x6bb600
push str...RMLStAll.cpp:560
jmp 0x61331f
push 3
push eax
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_WSAEventSelect]
cmp eax, 0xffffffff
jne 0x613339
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, eax
push edi
call fcn.00613bfc
push edi
call fcn.005a6cc1
push eax
push 0x6bb378
push str...RMLStAll.cpp:571
push str._s:__s_failed:__s_n
push 0x32
call fcn.005a6bee
push esi
call fcn.0061618d
add esp, 0x20
or eax, 0xffffffff
jmp 0x613345
mov eax, dword [ebp - 8]
mov byte [esi + 0x6d5], bl
mov byte [esi], 1
pop edi
pop esi
pop ebx
leave
ret