Function at 0x52f8a0
Capabilities:
Create udp socket
Get local ipv4 addresses
Get socket information

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x24
test eax, eax
push ebx
push ebp
push esi
push edi
je 0x52f8c7
cmp eax, 1
jne 0x52f8be
mov dword [esp + 0x10], 2
jmp 0x52f8cf
cmp eax, 2
jne 0x52fbf1
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x40]
test eax, eax
je 0x52f8dc
mov word [eax], 0
mov ebx, dword [esp + 0x38]
mov di, word [esp + 0x3c]
movzx ecx, bx
movzx eax, di
sub eax, ecx
mov dword [esp + 0x14], ecx
je 0x52f94e
mov ecx, dword [0x68743c]
test ecx, ecx
je 0x52f948
inc eax
test eax, eax
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
jge 0x52f910
fadd qword [0x5f53f0]
fstp qword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
push eax
push ecx
call fcn.0052f5c0
sub esp, 8
fstp qword [esp]
call fcn.005db1f0
fild dword [esp + 0x24]
add esp, 0x10
fstp qword [esp + 0x14]
fadd qword [esp + 0x14]
call fcn.005d98b4
mov esi, eax
mov ebp, esi
jmp 0x52f952
mov esi, ebx
mov ebp, esi
jmp 0x52f952
mov esi, ebx
mov ebp, ebx
cmp dword [esp + 0x48], 2
je 0x52f973
mov eax, dword [esp + 0x4c]
test eax, eax
mov eax, dword [0x61a704]
jne 0x52f96b
mov eax, dword [0x687438]
test eax, eax
je 0x52faea
mov dword [esp + 0x14], 0
jmp 0x52f980
mov eax, dword [esp + 0x14]
mov ecx, dword [0x634560]
inc eax
mov dword [esp + 0x14], eax
mov eax, ecx
test eax, eax
je 0x52f9c7
mov edx, dword [eax + 0x1408]
test edx, edx
je 0x52f9bd
cmp word [eax + 0x1406], si
jne 0x52f9bd
inc esi
cmp si, di
jbe 0x52f9b0
mov esi, ebx
cmp si, bp
je 0x52faea
mov eax, ecx
jmp 0x52f9c3
mov eax, dword [eax + 0x2104]
test eax, eax
jne 0x52f995
mov ecx, dword [0x68d418]
mov eax, ecx
test eax, eax
je 0x52fa05
mov edx, dword [eax + 0xc04]
test edx, edx
je 0x52f9fb
cmp word [eax + 0xc20], si
jne 0x52f9fb
inc esi
cmp si, di
jbe 0x52f9ee
mov esi, ebx
cmp si, bp
je 0x52faea
mov eax, ecx
jmp 0x52fa01
mov eax, dword [eax + 0xd1c]
test eax, eax
jne 0x52f9d3
mov ecx, dword [0x6696c8]
mov eax, ecx
test eax, eax
je 0x52fa43
mov edx, dword [eax + 0x1034]
test edx, edx
je 0x52fa39
cmp word [eax + 0x1048], si
jne 0x52fa39
inc esi
cmp si, di
jbe 0x52fa2c
mov esi, ebx
cmp si, bp
je 0x52faea
mov eax, ecx
jmp 0x52fa3f
mov eax, dword [eax + 0x1128]
test eax, eax
jne 0x52fa11
mov ecx, dword [0x69362c]
mov eax, ecx
test eax, eax
je 0x52fa78
nop
cmp word [eax + 0x396], si
jne 0x52fa6e
inc esi
cmp si, di
jbe 0x52fa61
mov esi, ebx
cmp si, bp
je 0x52faea
mov eax, ecx
jmp 0x52fa74
mov eax, dword [eax + 0x54c]
test eax, eax
jne 0x52fa50
push esi
call fcn.0052f6e0
add esp, 4
test eax, eax
jne 0x52fad1
mov edx, dword [esp + 0x10]
push eax
push edx
push 2
call dword [sym.imp.WSOCK32.dll_socket]
mov edi, eax
cmp edi, 0xffffffff
je 0x52faea
push esi
push edi
call fcn.0052f7d0
add esp, 8
test eax, eax
je 0x52fac5
mov eax, dword [esp + 0x44]
test eax, eax
jne 0x52fbaa
push 5
push edi
call dword [sym.imp.WSOCK32.dll_listen]
test eax, eax
je 0x52fbaa
push edi
call dword [sym.imp.WSOCK32.dll_closesocket]
mov di, word [esp + 0x3c]
inc esi
cmp si, di
jbe 0x52fad9
mov esi, ebx
cmp si, bp
je 0x52faea
cmp word [esp + 0x14], 0x32
jb 0x52f980
cmp dword [esp + 0x48], 2
je 0x52fbf1
mov eax, dword [esp + 0x10]
push 0
push eax
push 2
call dword [sym.imp.WSOCK32.dll_socket]
mov esi, eax
cmp esi, 0xffffffff
je 0x52fba0
mov edi, dword [esp + 0x44]
cmp edi, 1
je 0x52fb1d
cmp edi, 2
jne 0x52fb37
mov eax, dword [0x687440]
test eax, eax
je 0x52fb2f
mov al, byte [0x687448]
test al, al
jne 0x52fb37
mov eax, dword [esp + 0x40]
test eax, eax
je 0x52fba0
push 0
push esi
call fcn.0052f7d0
add esp, 8
test eax, eax
je 0x52fbea
cmp edi, 1
je 0x52fb6d
cmp edi, 2
je 0x52fb6d
test edi, edi
jne 0x52fbea
push 5
push esi
call dword [sym.imp.WSOCK32.dll_listen]
test eax, eax
jne 0x52fbea
mov edi, dword [esp + 0x40]
test edi, edi
je 0x52fba0
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
push edx
push esi
mov dword [esp + 0x28], 0x10
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x52fba0
mov eax, dword [esp + 0x26]
push eax
call dword [sym.imp.WSOCK32.dll_ntohs]
mov word [edi], ax
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x52fbe0
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
push ecx
push edi
mov word [ebx], si
mov dword [esp + 0x28], 0x10
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x52fbe0
mov edx, dword [esp + 0x26]
push edx
call dword [sym.imp.WSOCK32.dll_ntohs]
mov word [ebx], ax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
push esi
call dword [sym.imp.WSOCK32.dll_closesocket]
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x24
ret