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

Disassembly:
sub esp, 0xb8
push ebx
xor ebx, ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xcc]
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 + 0x38], ebx
mov dword [esp + 0x28], ebx
je 0x54749d
cmp byte [eax], 0x2d
jne 0x54749d
push 0x74
push eax
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5473d5
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 4]
push 0x6e
push eax
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x5473eb
mov dword [esp + 0x2c], esi
mov ecx, dword [edi + 4]
push 0x62
push ecx
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x547401
mov dword [esp + 0x18], esi
mov edx, dword [edi + 4]
push 0x6b
push edx
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x547417
mov dword [esp + 0x20], esi
mov eax, dword [edi + 4]
push 0x64
push eax
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x54742b
mov ebp, esi
mov ecx, dword [edi + 4]
push 0x7a
push ecx
call fcn.005cbf10
add esp, 8
test eax, eax
je 0x547441
mov dword [esp + 0x38], esi
cmp ebp, ebx
mov esi, 2
je 0x54749d
mov eax, dword [edi + 8]
cmp eax, ebx
jne 0x54746a
mov edx, dword [edi]
push ebx
push ebx
push edx
push ebx
call fcn.0048a440
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
push eax
call dword [sym.imp.WSOCK32.dll_inet_addr]
cmp eax, 0xffffffff
jne 0x547490
mov eax, dword [edi]
push 3
push ebx
push eax
push ebx
call fcn.0048a440
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
mov dword [esp + 0x10], 2
mov esi, 3
mov eax, dword [edi + esi*4]
cmp eax, ebx
jne 0x5474bd
mov ecx, dword [edi]
push ebx
push ebx
push ecx
push ebx
call fcn.0048a440
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
mov dword [esp + 0x30], esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5474c4
sub eax, edx
cmp eax, 0x5a
jbe 0x547510
push ebx
push 0x1452
call fcn.00421db0
mov edx, dword [edi + esi*4]
push eax
push edx
push str.__sockudp:__s__s
push 0x615410
call dword [sym.imp.USER32.dll_wsprintfA]
push 6
push ebx
push 0x615410
push ebx
call fcn.0048a440
add esp, 0x28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8
ret
mov eax, dword [edi + esi*4 + 4]
inc esi
push eax
mov dword [esp + 0x18], esi
call fcn.005157e0
add esp, 4
test eax, eax
je 0x54755a
mov ecx, dword [edi + esi*4]
push ecx
call fcn.005cbdc9
add esp, 4
cmp ax, bx
mov dword [esp + 0x1c], eax
ja 0x547555
mov edx, dword [edi]
push 3
push ebx
push edx
push ebx
call fcn.0048a440
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
inc esi
mov dword [esp + 0x14], esi
mov eax, dword [edi + esi*4]
cmp eax, ebx
je 0x547599
push eax
call dword [sym.imp.WSOCK32.dll_inet_addr]
cmp eax, 0xffffffff
mov dword [esp + 0x24], eax
je 0x547476
mov eax, dword [edi + esi*4 + 4]
inc esi
cmp eax, ebx
je 0x5474a4
push eax
call fcn.005cbdc9
add esp, 4
cmp ax, bx
mov dword [esp + 0x28], eax
jbe 0x54753b
inc esi
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x30]
mov eax, dword [edi + esi*4]
push eax
call fcn.00547030
mov ebp, eax
add esp, 4
cmp ebp, ebx
je 0x54762c
cmp dword [ebp + 0x1bc], ebx
jne 0x5475cc
push ebx
push 0x1453
call fcn.00421db0
mov ecx, dword [edi + esi*4]
push eax
push ecx
jmp 0x5474e2
mov ecx, dword [esp + 0x1c]
cmp cx, bx
je 0x547924
mov ax, word [ebp + 0x12c]
cmp ax, cx
je 0x547924
movzx edx, ax
mov eax, dword [edi + esi*4]
push edx
push eax
push 0
push 0x1451
call fcn.00421db0
add esp, 8
push eax
push 0x615410
call dword [sym.imp.USER32.dll_wsprintfA]
push 6
push 0
push 0x615410
push 0
call fcn.0048a440
add esp, 0x20
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8
ret
call fcn.00546dd0
mov ebp, eax
cmp ebp, ebx
jne 0x547651
mov ecx, dword [edi]
push 2
push ebx
push ecx
push ebx
call fcn.0048a440
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
ret
mov edx, dword [esp + 0x30]
mov eax, dword [edi + edx*4]
push eax
push 0x64
push ebp
call fcn.00423900
mov ebx, dword [esp + 0xe4]
lea esi, [ebx + 0x15d4]
push esi
lea ecx, [ebp + 0x64]
push 0x64
push ecx
call fcn.00423900
push esi
lea edx, [ebp + 0xc8]
push 0x64
push edx
call fcn.00423900
mov ax, word [esp + 0x40]
lea esi, [ebp + 0x12c]
push 0
mov word [esi], ax
mov dword [ebp + 0x1b0], 2
call fcn.005cce76
mov ecx, dword [esp + 0x48]
mov dword [ebp + 0x1dc], eax
mov dword [ebp + 0x1e0], eax
mov dword [ebp + 0x1e4], eax
mov ax, word [esp + 0x50]
mov dword [ebp + 0x1c0], ecx
mov ecx, dword [esp + 0x38]
mov dword [ebp + 0x1bc], 1
mov edx, dword [esp + 0x4c]
mov word [ebp + 0x1c8], ax
xor eax, eax
add esp, 0x28
cmp ecx, eax
mov dword [ebp + 0x1c4], edx
mov dword [ebp + 0x1cc], eax
mov word [ebp + 0x1d0], ax
je 0x547713
mov edx, dword [edi + ecx*4]
push edx
lea eax, [ebp + 0x12e]
push 0x64
push eax
call fcn.00423900
add esp, 0xc
cmp word [esp + 0x1c], 0
mov dword [ebp + 0x204], ebx
jne 0x5477d0
push 0x63fb20
lea ecx, [esp + 0x68]
push 0x64
push ecx
call fcn.00423900
mov al, byte [ebp + 0x12e]
mov edx, dword [0x63fb18]
lea ebx, [ebp + 0x12e]
add esp, 0xc
test al, al
mov dword [esp + 0x10], edx
je 0x54776d
push ebx
push 0x64
push 0x63fb20
call fcn.00423900
add esp, 0xc
mov dword [0x63fb18], 2
push 0
xor eax, eax
mov ax, word [0x609e28]
push 0
xor ecx, ecx
mov cx, word [0x609e24]
push 1
push esi
push eax
push ecx
call fcn.005285b0
lea edx, [esp + 0x7c]
push edx
push 0x64
push 0x63fb20
mov dword [ebp + 0x200], eax
call fcn.00423900
mov eax, dword [esp + 0x34]
mov dword [0x63fb18], eax
mov eax, dword [ebp + 0x200]
add esp, 0x24
cmp eax, 0xffffffff
jne 0x5478b8
push ebp
call fcn.00546f20
push 0
push 0x1454
jmp 0x547882
push 0
push 2
push 2
call dword [sym.imp.WSOCK32.dll_socket]
cmp eax, 0xffffffff
mov dword [ebp + 0x200], eax
jne 0x5477f9
push ebp
call fcn.00546f20
push 0
push 0x1455
jmp 0x547882
push 0x63fb20
lea ecx, [esp + 0x68]
push 0x64
push ecx
call fcn.00423900
mov al, byte [ebp + 0x12e]
mov edx, dword [0x63fb18]
lea ebx, [ebp + 0x12e]
add esp, 0xc
test al, al
mov dword [esp + 0x10], edx
je 0x547841
push ebx
push 0x64
push 0x63fb20
call fcn.00423900
add esp, 0xc
mov dword [0x63fb18], 2
mov ecx, dword [ebp + 0x200]
xor eax, eax
mov ax, word [esi]
push eax
push ecx
call fcn.005284e0
lea edx, [esp + 0x6c]
push edx
push 0x64
push 0x63fb20
mov esi, eax
call fcn.00423900
mov eax, dword [esp + 0x24]
add esp, 0x14
test esi, esi
mov dword [0x63fb18], eax
jne 0x5478b8
push ebp
call fcn.00546f20
push esi
push 0x1456
call fcn.00421db0
push eax
push str.__sockudp:__s
push 0x615410
call dword [sym.imp.USER32.dll_wsprintfA]
push 6
push 0
push 0x615410
push 0
call fcn.0048a440
add esp, 0x28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8
ret
mov ecx, dword [0x645324]
mov edx, dword [ebp + 0x200]
push 0x23
push 0x8038
push ecx
push edx
call dword [sym.imp.WSOCK32.dll_WSAAsyncSelect]
mov eax, dword [ebp + 0x200]
cmp eax, 0xffffffff
je 0x547924
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x58]
push edx
push eax
mov dword [esp + 0x2c], 0x10
call dword [sym.imp.WSOCK32.dll_getsockname]
test eax, eax
jne 0x547924
mov eax, dword [esp + 0x58]
push eax
call dword [sym.imp.WSOCK32.dll_inet_ntoa]
push eax
push 0x64
push ebx
call fcn.00423900
mov ecx, dword [esp + 0x62]
add esp, 0xc
push ecx
call dword [sym.imp.WSOCK32.dll_ntohs]
mov word [ebp + 0x192], ax
mov eax, dword [esp + 0x18]
test eax, eax
mov esi, dword [esp + 0x14]
je 0x547955
mov eax, dword [edi + esi*4]
test eax, eax
je 0x547955
push eax
call fcn.005cbe51
add esp, 4
test eax, eax
mov dword [esp + 0x18], eax
jg 0x547950
mov dword [esp + 0x18], 0
inc esi
mov dword [esp + 0x14], esi
mov eax, dword [edi + esi*4]
test eax, eax
jne 0x5479b3
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x547985
mov eax, dword [esp + 0x38]
test eax, eax
jne 0x547979
mov eax, dword [ebp + 0x1c0]
test eax, eax
jmp 0x547d2d
mov ebx, dword [esp + 0xd0]
mov byte [ebx], 0
jmp 0x5479a0
mov ebx, dword [esp + 0xd0]
mov ax, word [0x5e6c94]
mov edx, ebx
mov word [edx], ax
mov cl, byte [0x5e6c96]
mov byte [edx + 2], cl
mov esi, ebx
lea ecx, [ebx + 1]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x5479a5
sub ebx, ecx
jmp 0x547ab8
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x547a41
cmp byte [eax], 0x26
jne 0x547a41
mov edx, dword [esp + 0xd4]
push edx
push eax
call fcn.0041fed0
add esp, 8
test eax, eax
jne 0x547a31
mov eax, dword [ebp + 0x1c0]
test eax, eax
jne 0x5479f0
push ebp
call fcn.00546f20
add esp, 4
push 0
push 0x1457
call fcn.00421db0
push eax
mov eax, dword [edi + esi*4]
push eax
push str.__sockudp:__s__s
push 0x615410
call dword [sym.imp.USER32.dll_wsprintfA]
push 6
push 0
push 0x615410
push 0
call fcn.0048a440
add esp, 0x28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8
ret
mov ecx, dword [eax + 0xc]
mov edx, dword [eax]
mov ebx, dword [eax + 8]
add ecx, edx
mov dword [esp + 0x10], ecx
jmp 0x547aa6
mov esi, dword [esp + 0xd0]
mov ecx, dword [esp + 0x14]
push edi
push esi
push ecx
mov byte [esi], 0
call fcn.00515990
mov eax, esi
add esp, 0xc
mov dword [esp + 0x10], esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x547a63
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x547aa6
cmp byte [ebx + esi - 1], 0xa
je 0x547aa6
dec esi
mov edi, edi
mov al, byte [esi + 1]
inc esi
test al, al
jne 0x547a80
mov dx, word [0x5e6c94]
mov edi, esi
mov word [edi], dx
mov al, byte [0x5e6c96]
mov byte [edi + 2], al
mov edi, dword [esp + 0xcc]
add ebx, 2
mov eax, dword [esp + 0x18]
test eax, eax
je 0x547ab4
cmp eax, ebx
jge 0x547ab4
mov ebx, eax
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x1a4]
test ecx, ecx
je 0x547b65
mov edx, dword [ebp + 0x1a8]
lea eax, [ebx + edx]
cmp eax, 0x4000
jle 0x547b2e
mov eax, dword [ebp + 0x1c0]
test eax, eax
jne 0x547ae9
push ebp
call fcn.00546f20
add esp, 4
push 0
push 0x1458
call fcn.00421db0
push eax
mov eax, dword [esp + 0x3c]
mov ecx, dword [edi + eax*4]
push ecx
push str.__sockudp:__s__s
push 0x615410
call dword [sym.imp.USER32.dll_wsprintfA]
push 6
push 0
push 0x615410
push 0
call fcn.0048a440
add esp, 0x28
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xb8
ret
add eax, 0xa
push eax
push ecx
call fcn.005ce1f4
add esp, 8
test eax, eax
je 0x547b7b
mov edi, dword [ebp + 0x1a8]
mov dword [ebp + 0x1a4], 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 + 0x1a8], ebx
jmp 0x547bc2
lea ecx, [ebx + 0xa]
push ecx
call fcn.005cc381
add esp, 4
test eax, eax
mov dword [ebp + 0x1a4], eax
jne 0x547baa
mov eax, dword [ebp + 0x1c0]
test eax, eax
jne 0x547b8e
push ebp
call fcn.00546f20
add esp, 4
mov edx, dword [edi]
push 2
push 0
push edx
push 0
call fcn.0048a440
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb8
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 + 0x1a8], ebx
mov eax, dword [esp + 0x24]
xor edx, edx
mov dword [esp + 0x3c], edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x40], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x44], edx
xor edi, edi
push ecx
mov dword [esp + 0x54], edi
mov dword [esp + 0x4c], edx
mov word [esp + 0x40], 2
mov dword [esp + 0x44], eax
call dword [sym.imp.WSOCK32.dll_htons]
mov edx, dword [esp + 0x4c]
mov word [esp + 0x3e], ax
mov eax, dword [edx]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x1a8]
cmp eax, 0x2000
jle 0x547c1d
mov eax, 0x2000
mov edx, dword [ebp + 0x1a4]
push 0x10
lea ecx, [esp + 0x40]
push ecx
push edi
push eax
mov eax, dword [ebp + 0x200]
push edx
push eax
call dword [sym.imp.WSOCK32.dll_sendto]
mov esi, eax
cmp esi, 0xffffffff
jne 0x547c8a
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x547d38
mov edx, dword [ebp + 0x200]
movzx ecx, ax
shl ecx, 0x10
or ecx, 2
push ecx
push edx
mov dword [ebp + 0x1e8], eax
mov eax, dword [0x645324]
push 0x8038
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xb8
ret
push edi
call fcn.005cce76
add esp, 4
cmp esi, edi
mov dword [ebp + 0x1e0], eax
jle 0x547ce1
mov edx, dword [ebp + 0x1d4]
mov eax, dword [ebp + 0x1a8]
add edx, esi
cmp esi, eax
mov dword [ebp + 0x1d4], edx
jge 0x547ce1
sub eax, esi
mov dword [ebp + 0x1a8], eax
mov ebp, dword [ebp + 0x1a4]
push eax
lea ecx, [esi + ebp]
push ecx
push ebp
call fcn.005cceb0
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xb8
ret
mov edx, dword [ebp + 0x1a4]
push edx
call fcn.005cc393
mov dword [ebp + 0x1a4], edi
mov dword [ebp + 0x1a8], edi
mov eax, dword [0x63fb90]
add esp, 4
cmp eax, edi
je 0x547d27
cmp dword [ebp + 0x1c0], edi
je 0x547d2f
mov eax, dword [ebp + 0x1ac]
mov ecx, dword [0x645324]
push ebp
push eax
push 0x803a
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
cmp dword [ebp + 0x1c0], edi
jne 0x547d38
push ebp
call fcn.00546f20
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xb8
ret