Function at 0x54fed0
Capabilities:
Create udp socket
Get local ipv4 addresses
Get socket information
Send data
Send data on socket
Set socket configuration

Disassembly:
sub esp, 0x18c
push ebx
xor ebx, ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x1a0]
mov dword [esp + 0x24], ebx
mov eax, dword [edi + 4]
mov esi, 1
xor ebp, ebp
cmp eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x28], ebx
je 0x54fffd
cmp byte [eax], 0x2d
jne 0x54fffd
push 0x74
push eax
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x54ff35
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 4]
push 0x6e
push eax
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x54ff4b
mov dword [esp + 0x2c], esi
mov ecx, dword [edi + 4]
push 0x62
push ecx
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x54ff61
mov dword [esp + 0x18], esi
mov edx, dword [edi + 4]
push 0x6b
push edx
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x54ff77
mov dword [esp + 0x20], esi
mov eax, dword [edi + 4]
push 0x64
push eax
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x54ff8b
mov ebp, esi
mov ecx, dword [edi + 4]
push 0x7a
push ecx
call fcn.005d9b20
add esp, 8
test eax, eax
je 0x54ffa1
mov dword [esp + 0x3c], esi
cmp ebp, ebx
mov esi, 2
je 0x54fffd
mov eax, dword [edi + 8]
cmp eax, ebx
jne 0x54ffca
mov edx, dword [edi]
push ebx
push ebx
push edx
push ebx
call fcn.0048bd90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
push eax
call dword [sym.imp.WSOCK32.dll_inet_addr]
cmp eax, 0xffffffff
jne 0x54fff0
mov eax, dword [edi]
push 3
push ebx
push eax
push ebx
call fcn.0048bd90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
mov dword [esp + 0x10], 2
mov esi, 3
mov eax, dword [edi + esi*4]
cmp eax, ebx
jne 0x55001d
mov ecx, dword [edi]
push ebx
push ebx
push ecx
push ebx
call fcn.0048bd90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
mov dword [esp + 0x30], esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x550024
sub eax, edx
cmp eax, 0x100
jb 0x550071
push ebx
push 0x1452
call fcn.00424130
mov edx, dword [edi + esi*4]
push eax
push edx
push str.__sockudp:__s__s
push 0x643160
call fcn.005d9929
push 6
push ebx
push 0x643160
push ebx
call fcn.0048bd90
add esp, 0x28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18c
ret
mov eax, dword [edi + esi*4 + 4]
inc esi
push eax
mov dword [esp + 0x18], esi
call fcn.0051c210
add esp, 4
test eax, eax
je 0x5500bb
mov ecx, dword [edi + esi*4]
push ecx
call fcn.005d99cd
add esp, 4
cmp ax, bx
mov dword [esp + 0x1c], eax
ja 0x5500b6
mov edx, dword [edi]
push 3
push ebx
push edx
push ebx
call fcn.0048bd90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
inc esi
mov dword [esp + 0x14], esi
mov eax, dword [edi + esi*4]
cmp eax, ebx
je 0x5500fa
push eax
call dword [sym.imp.WSOCK32.dll_inet_addr]
cmp eax, 0xffffffff
mov dword [esp + 0x24], eax
je 0x54ffd6
mov eax, dword [edi + esi*4 + 4]
inc esi
cmp eax, ebx
je 0x550004
push eax
call fcn.005d99cd
add esp, 4
cmp ax, bx
mov dword [esp + 0x28], eax
jbe 0x55009c
inc esi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
mov eax, dword [edi + esi*4]
push eax
call fcn.0054fb80
mov ebp, eax
add esp, 4
cmp ebp, ebx
je 0x55018c
cmp dword [ebp + 0x4f4], ebx
jne 0x55012d
push ebx
push 0x1453
call fcn.00424130
mov ecx, dword [edi + esi*4]
push eax
push ecx
jmp 0x550044
mov ecx, dword [esp + 0x1c]
cmp cx, bx
je 0x55049b
mov ax, word [ebp + 0x396]
cmp ax, cx
je 0x55049b
movzx edx, ax
mov eax, dword [edi + esi*4]
push edx
push eax
push 0
push 0x1451
call fcn.00424130
add esp, 8
push eax
push 0x643160
call fcn.005d9929
push 6
push 0
push 0x643160
push 0
call fcn.0048bd90
add esp, 0x20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18c
ret
call fcn.0054f910
mov ebp, eax
cmp ebp, ebx
jne 0x5501b1
mov ecx, dword [edi]
push 2
push ebx
push ecx
push ebx
call fcn.0048bd90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
mov edx, dword [esp + 0x30]
mov eax, dword [edi + edx*4]
push eax
push 0x132
push ebp
call fcn.00425550
mov ebx, dword [esp + 0x1b8]
lea esi, [ebx + 0x4656]
push esi
lea ecx, [ebp + 0x132]
push 0x132
push ecx
call fcn.00425550
push esi
lea edx, [ebp + 0x264]
push 0x132
push edx
call fcn.00425550
mov ax, word [esp + 0x40]
lea esi, [ebp + 0x396]
push 0
mov word [esi], ax
mov dword [ebp + 0x4e8], 2
call fcn.005daa26
mov ecx, dword [esp + 0x48]
mov dword [ebp + 0x520], eax
mov dword [ebp + 0x524], eax
mov dword [ebp + 0x528], eax
mov ax, word [esp + 0x50]
mov dword [ebp + 0x4f8], ecx
mov ecx, dword [esp + 0x38]
mov dword [ebp + 0x4f4], 1
mov edx, dword [esp + 0x4c]
mov word [ebp + 0x500], ax
xor eax, eax
add esp, 0x28
cmp ecx, eax
mov dword [ebp + 0x4fc], edx
mov dword [ebp + 0x504], eax
mov word [ebp + 0x508], ax
je 0x550282
mov edx, dword [edi + ecx*4]
push edx
lea eax, [ebp + 0x398]
push 0x132
push eax
call fcn.00425550
add esp, 0xc
cmp word [esp + 0x1c], 0
mov dword [ebp + 0x548], ebx
jne 0x550356
push 0x687448
lea ecx, [esp + 0x6c]
push 0x132
push ecx
call fcn.00425550
mov al, byte [ebp + 0x398]
mov edx, dword [0x687440]
lea ebx, [ebp + 0x398]
add esp, 0xc
test al, al
mov dword [esp + 0x10], edx
je 0x5502e2
push ebx
push 0x132
push 0x687448
call fcn.00425550
add esp, 0xc
mov dword [0x687440], 2
push 0
xor eax, eax
mov ax, word [0x61a70c]
push 0
xor ecx, ecx
mov cx, word [0x61a708]
push 1
push esi
push eax
push ecx
call fcn.0052f8a0
lea edx, [esp + 0x80]
push edx
push 0x132
push 0x687448
mov dword [ebp + 0x544], eax
call fcn.00425550
mov eax, dword [esp + 0x34]
mov dword [0x687440], eax
mov eax, dword [ebp + 0x544]
add esp, 0x24
cmp eax, 0xffffffff
jne 0x55042c
push ebp
call fcn.0054fa70
push 0
push 0x1454
call fcn.00424130
push eax
push str.__sockudp:__s
jmp 0x550653
push 0
push 2
push 2
call dword [sym.imp.WSOCK32.dll_socket]
cmp eax, 0xffffffff
mov dword [ebp + 0x544], eax
jne 0x55038a
push ebp
call fcn.0054fa70
push 0
push 0x1455
call fcn.00424130
push eax
push str.__sockudp:__s
jmp 0x550653
push 0x687448
lea ecx, [esp + 0x6c]
push 0x132
push ecx
call fcn.00425550
mov al, byte [ebp + 0x398]
mov edx, dword [0x687440]
lea ebx, [ebp + 0x398]
add esp, 0xc
test al, al
mov dword [esp + 0x10], edx
je 0x5503d8
push ebx
push 0x132
push 0x687448
call fcn.00425550
add esp, 0xc
mov dword [0x687440], 2
mov ecx, dword [ebp + 0x544]
xor eax, eax
mov ax, word [esi]
push eax
push ecx
call fcn.0052f7d0
lea edx, [esp + 0x70]
push edx
push 0x132
push 0x687448
mov esi, eax
call fcn.00425550
mov eax, dword [esp + 0x24]
add esp, 0x14
test esi, esi
mov dword [0x687440], eax
jne 0x55042c
push ebp
call fcn.0054fa70
push esi
push 0x1456
call fcn.00424130
push eax
push str.__sockudp:__s
jmp 0x550653
mov ecx, dword [0x6a0f40]
mov edx, dword [ebp + 0x544]
push 0x23
push 0x8038
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov eax, dword [ebp + 0x544]
cmp eax, 0xffffffff
je 0x55049b
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x5c]
push edx
push eax
mov dword [esp + 0x2c], 0x10
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x55049b
mov eax, dword [esp + 0x5c]
push eax
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
push eax
push 0x132
push ebx
call fcn.00425550
mov ecx, dword [esp + 0x66]
add esp, 0xc
push ecx
call dword [sym.imp.WSOCK32.dll_ntohs]
mov word [ebp + 0x4ca], ax
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x14]
je 0x5504cc
mov eax, dword [edi + esi*4]
test eax, eax
je 0x5504cc
push eax
call fcn.005d9a55
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
jg 0x5504c7
mov dword [esp + 0x18], 0
inc esi
mov dword [esp + 0x14], esi
mov eax, dword [edi + esi*4]
test eax, eax
jne 0x55052e
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x5504fc
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x5504f0
mov eax, dword [ebp + 0x4f8]
test eax, eax
jmp 0x55088a
mov ebx, dword [esp + 0x1a4]
mov byte [ebx], 0
jmp 0x550517
mov ebx, dword [esp + 0x1a4]
mov ax, word [0x5f4c8c]
mov edx, ebx
mov word [edx], ax
mov cl, byte [0x5f4c8e]
mov byte [edx + 2], cl
mov esi, ebx
lea ecx, [ebx + 1]
lea esp, [esp]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x550520
sub ebx, ecx
jmp 0x550608
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x550589
cmp byte [eax], 0x26
jne 0x550589
mov edx, dword [esp + 0x1a8]
push edx
push eax
call fcn.00420030
add esp, 8
test eax, eax
jne 0x550579
mov eax, dword [ebp + 0x4f8]
test eax, eax
jne 0x550563
push ebp
call fcn.0054fa70
add esp, 4
push 0
push 0x1457
call fcn.00424130
push eax
mov eax, dword [edi + esi*4]
push eax
jmp 0x55064e
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
add ecx, edx
mov dword [esp + 0x10], ecx
jmp 0x5505f6
mov esi, dword [esp + 0x1a4]
mov ecx, dword [esp + 0x14]
push edi
push esi
push ecx
mov byte [esi], 0
call fcn.0051c470
mov eax, esi
add esp, 0xc
mov dword [esp + 0x10], esi
lea edx, [eax + 1]
jmp 0x5505b0
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5505b0
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x5505f6
cmp byte [ebx + esi - 1], 0xa
je 0x5505f6
dec esi
jmp 0x5505d0
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x5505d0
mov dx, word [0x5f4c8c]
mov edi, esi
mov word [edi], dx
mov al, byte [0x5f4c8e]
mov byte [edi + 2], al
mov edi, dword [esp + 0x1a0]
add ebx, 2
mov eax, dword [esp + 0x18]
test eax, eax
je 0x550604
cmp eax, ebx
jge 0x550604
mov ebx, eax
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x4dc]
test ecx, ecx
je 0x5506b4
mov edx, dword [ebp + 0x4e0]
lea eax, [ebx + edx]
cmp eax, 0x4000
jle 0x55067d
mov eax, dword [ebp + 0x4f8]
test eax, eax
jne 0x550639
push ebp
call fcn.0054fa70
add esp, 4
push 0
push 0x1458
call fcn.00424130
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [edi + eax*4]
push ecx
push str.__sockudp:__s__s
push 0x643160
call fcn.005d9929
push 6
push 0
push 0x643160
push 0
call fcn.0048bd90
add esp, 0x28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x18c
ret
add eax, 0xa
push eax
push ecx
call fcn.005dbd64
add esp, 8
test eax, eax
je 0x5506ca
mov edi, dword [ebp + 0x4e0]
mov dword [ebp + 0x4dc], eax
add edi, eax
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
add dword [ebp + 0x4e0], ebx
jmp 0x550711
lea ecx, [ebx + 0xa]
push ecx
call fcn.005d9f91
add esp, 4
test eax, eax
mov dword [ebp + 0x4dc], eax
jne 0x5506f9
mov eax, dword [ebp + 0x4f8]
test eax, eax
jne 0x5506dd
push ebp
call fcn.0054fa70
add esp, 4
mov edx, dword [edi]
push 2
push 0
push edx
push 0
call fcn.0048bd90
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18c
ret
mov ecx, ebx
mov edi, eax
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 0x4e0], ebx
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x40], edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x44], edx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x48], edx
xor edi, edi
push ecx
mov dword [esp + 0x58], edi
mov dword [esp + 0x50], edx
mov word [esp + 0x44], 2
mov dword [esp + 0x48], eax
call dword [sym.imp.WSOCK32.dll_htons]
mov edx, dword [esp + 0x50]
mov word [esp + 0x42], ax
mov eax, dword [edx]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x4e0]
cmp eax, 0x2000
jle 0x55076c
mov eax, 0x2000
mov edx, dword [ebp + 0x4dc]
push 0x10
lea ecx, [esp + 0x44]
push ecx
push edi
push eax
mov eax, dword [ebp + 0x544]
push edx
push eax
call dword [sym.imp.WSOCK32.dll_sendto]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x34], esi
jne 0x5507dd
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x550895
mov edx, dword [ebp + 0x544]
movzx ecx, ax
shl ecx, 0x10
or ecx, 2
push ecx
push edx
mov dword [ebp + 0x52c], eax
mov eax, dword [0x6a0f40]
push 0x8038
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18c
ret
push edi
call fcn.005daa26
add esp, 4
cmp esi, edi
mov dword [ebp + 0x524], eax
jle 0x55083e
fild dword [esp + 0x34]
mov eax, dword [ebp + 0x4e0]
cmp esi, eax
fstp qword [esp + 0x34]
fld qword [esp + 0x34]
fadd qword [ebp + 0x510]
fstp qword [ebp + 0x510]
jge 0x55083e
sub eax, esi
mov dword [ebp + 0x4e0], eax
mov ebp, dword [ebp + 0x4dc]
push eax
lea ecx, [esi + ebp]
push ecx
push ebp
call fcn.005daa60
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18c
ret
mov edx, dword [ebp + 0x4dc]
push edx
call fcn.005d9fa3
mov dword [ebp + 0x4dc], edi
mov dword [ebp + 0x4e0], edi
mov eax, dword [0x68758c]
add esp, 4
cmp eax, edi
je 0x550884
cmp dword [ebp + 0x4f8], edi
je 0x55088c
mov eax, dword [ebp + 0x4e4]
mov ecx, dword [0x6a0f40]
push ebp
push eax
push 0x803a
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
cmp dword [ebp + 0x4f8], edi
jne 0x550895
push ebp
call fcn.0054fa70
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x18c
ret