Function at 0x4b7350
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9ac
mov eax, dword [0x530630]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [esi]
push edi
push 0xff
lea ecx, [ebp - 0x103]
push 0
push ecx
mov dword [ebp - 0x9a0], eax
mov dword [ebp - 0x994], ebx
mov dword [ebp - 0x98c], 0xffffffff
mov byte [ebp - 0x104], 0
call fcn.004ca820
mov edi, dword [ebx + 0x364]
xor ecx, ecx
mov dword [ebp - 0x9a8], ecx
mov eax, dword [ebx + 0x364]
add esp, 0xc
mov dword [ebp - 0x9a4], ecx
mov dword [ebp - 0x99c], ecx
mov dword [ebp - 0x9ac], 1
mov dword [ebp - 0x990], ecx
cmp eax, ecx
je 0x4b754a
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b73d8
sub eax, edx
cmp eax, 1
jbe 0x4b754a
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b73f0
sub eax, edx
cmp eax, 0x16
jae 0x4b7405
mov eax, 0x16
jmp 0x4b7419
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4b7410
sub eax, edx
inc eax
push 1
push eax
call dword [0x5305ac]
add esp, 8
mov dword [ebp - 0x990], eax
test eax, eax
jne 0x4b7445
pop edi
mov eax, 0x1b
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
cmp byte [edi], 0x3a
jne 0x4b74fb
mov ebx, edi
test ebx, ebx
je 0x4b74c3
push 0x3a
push ebx
call fcn.004d3100
mov edi, eax
add esp, 8
test edi, edi
je 0x4b74c3
push 0xa
lea ecx, [edi + 1]
push 0
push ecx
call fcn.004d1e7d
push eax
call fcn.004c2480
movzx ebx, ax
push 0x2d
push edi
mov dword [ebp - 0x9a4], ebx
call fcn.004d3100
xor edi, edi
add esp, 0x18
cmp eax, edi
je 0x4b753c
push 0xa
inc eax
push edi
push eax
call fcn.004d1e7d
push eax
call fcn.004c2480
movzx eax, ax
add esp, 0x10
mov dword [ebp - 0x99c], eax
cmp bx, ax
jbe 0x4b74c3
mov dword [ebp - 0x99c], edi
mov dword [ebp - 0x9a4], edi
mov eax, dword [ebp - 0x990]
cmp byte [eax], 0
je 0x4b754a
mov edx, dword [esi + 0x3c]
push 0x401
lea ecx, [ebp - 0x508]
push ecx
mov ebx, eax
mov eax, dword [edx + 4]
push ebx
push eax
call fcn.004c6500
add esp, 0x10
test eax, eax
jne 0x4b75f1
mov edi, ebx
jmp 0x4b75f7
push 0x3a
push edi
call fcn.004d3100
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4b7526
mov eax, dword [ebp - 0x990]
mov edx, ebx
sub edx, edi
push edx
push edi
push eax
call fcn.004d2780
add esp, 0xc
jmp 0x4b7450
mov edx, dword [ebp - 0x990]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4b7530
jmp 0x4b74c3
movzx edx, bx
mov dword [ebp - 0x99c], edx
jmp 0x4b74c3
mov eax, dword [esi + 0x130]
lea ecx, [ebp - 0x998]
push ecx
lea edx, [ebp - 0x988]
push edx
push eax
mov dword [ebp - 0x998], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x4b75be
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push esi
call fcn.004acfe0
mov ecx, dword [ebp - 0x994]
push eax
push str.getsockname___failed:__s
push ecx
call fcn.004a9660
mov eax, dword [ebp - 0x990]
add esp, 0x14
test eax, eax
je 0x4b75a9
push eax
call dword [0x5305a0]
add esp, 4
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
movzx ecx, word [ebp - 0x988]
push 0x401
lea edx, [ebp - 0x508]
push edx
lea eax, [ebp - 0x984]
push eax
push ecx
call fcn.004adf00
mov ebx, dword [ebp - 0x990]
add esp, 0x10
mov dword [ebp - 0x9ac], 0
lea edi, [ebp - 0x508]
lea edx, [ebp - 0x9a8]
push edx
push 0
push edi
push esi
call fcn.0049f6a0
add esp, 0x10
cmp eax, 1
jne 0x4b761f
lea eax, [ebp - 0x9a8]
push eax
push esi
call fcn.0049f0a0
add esp, 8
mov eax, dword [ebp - 0x9a8]
test eax, eax
je 0x4b7645
mov ecx, dword [ebp - 0x994]
mov ebx, dword [eax]
push eax
push ecx
call fcn.0049f870
add esp, 8
test ebx, ebx
jne 0x4b7681
mov ebx, dword [ebp - 0x990]
mov edx, dword [ebp - 0x994]
push edi
push str.failed_to_resolve_the_address_provided_to_PORT:__s
push edx
call fcn.004a9660
add esp, 0xc
test ebx, ebx
je 0x4b75a9
push ebx
call dword [0x5305a0]
add esp, 4
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x990]
test eax, eax
je 0x4b7695
push eax
call dword [0x5305a0]
add esp, 4
mov dword [ebp - 0x98c], 0xffffffff
xor edi, edi
lea eax, [ebp - 0x98c]
push eax
push 0
push ebx
push esi
call fcn.004aa470
add esp, 0x10
mov dword [ebp - 0x990], eax
test eax, eax
je 0x4b76cf
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebx, dword [ebx + 0x1c]
mov edi, eax
test ebx, ebx
jne 0x4b76a1
jmp 0x4b76d3
test ebx, ebx
jne 0x4b7704
push edi
push esi
call fcn.004acfe0
mov ecx, dword [ebp - 0x994]
push eax
push str.socket_failure:__s
push ecx
call fcn.004a9660
add esp, 0x14
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 0x18]
push edx
push eax
lea ecx, [ebp - 0x988]
push ecx
call fcn.004ca090
mov eax, dword [ebp - 0x9a4]
mov edx, dword [ebx + 0x10]
add esp, 0xc
mov dword [ebp - 0x998], edx
movzx edi, ax
cmp ax, word [ebp - 0x99c]
ja 0x4b7897
lea ebx, [ebx]
cmp word [ebp - 0x988], 2
jne 0x4b7758
push edi
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x986], ax
mov eax, dword [ebp - 0x998]
mov edx, dword [ebp - 0x98c]
push eax
lea ecx, [ebp - 0x988]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x4b788e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [ebp - 0x9ac], 0
je 0x4b77e9
cmp eax, 0x2741
jne 0x4b77e9
push eax
push esi
call fcn.004acfe0
mov ecx, dword [ebp - 0x994]
push eax
movzx eax, di
push eax
push str.bind_port_hu__on_non_local_address_failed:__s_n
push ecx
call fcn.004a95e0
mov ecx, dword [esi + 0x130]
add esp, 0x18
lea edx, [ebp - 0x998]
push edx
lea eax, [ebp - 0x988]
push eax
push ecx
mov dword [ebp - 0x998], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x4b7808
movzx edi, word [ebp - 0x9a4]
mov dword [ebp - 0x9ac], eax
jmp 0x4b77f6
cmp eax, 0x2740
je 0x4b77f5
cmp eax, 0xd
jne 0x4b784c
inc edi
cmp di, word [ebp - 0x99c]
jbe 0x4b7740
jmp 0x4b7897
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push esi
call fcn.004acfe0
mov edx, dword [ebp - 0x994]
push eax
push str.getsockname___failed:__s
push edx
call fcn.004a9660
mov eax, dword [ebp - 0x98c]
push eax
push esi
call fcn.004aa420
add esp, 0x1c
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
push eax
push esi
call fcn.004acfe0
mov edx, dword [ebp - 0x994]
push eax
movzx ecx, di
push ecx
push str.bind_port_hu__failed:__s
push edx
call fcn.004a9660
mov eax, dword [ebp - 0x98c]
push eax
push esi
call fcn.004aa420
add esp, 0x20
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
cmp di, word [ebp - 0x99c]
jbe 0x4b78cd
mov ecx, dword [ebp - 0x994]
push str.bind___failed__we_ran_out_of_ports_
push ecx
call fcn.004a9660
mov edx, dword [ebp - 0x98c]
push edx
push esi
call fcn.004aa420
add esp, 0x10
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x98c]
lea eax, [ebp - 0x998]
push eax
lea ecx, [ebp - 0x988]
push ecx
push edx
mov dword [ebp - 0x998], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x4b793a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push esi
call fcn.004acfe0
push eax
push str.getsockname___failed:__s
mov eax, dword [ebp - 0x994]
push eax
call fcn.004a9660
mov ecx, dword [ebp - 0x98c]
push ecx
push esi
call fcn.004aa420
add esp, 0x1c
pop edi
mov eax, 0x1e
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cab85
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp - 0x98c]
push 1
push edx
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x4b7962
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push esi
call fcn.004acfe0
push eax
push str.socket_failure:__s
jmp 0x4b7909
push 0x100
lea edx, [ebp - 0x104]
push edx
push ebx
call fcn.0049f3f0
mov edi, dword [ebp - 0x9a0]
add esp, 0xc
cmp edi, 2
je 0x4b79da
mov cx, word [ebp - 0x988]
lea esp, [esp]
cmp dword [esi + 0x1e4], 0
jne 0x4b799d
test edi, edi
je 0x4b79d4
cmp edi, 1
jne 0x4b79a8
cmp cx, 2
jne 0x4b79d4
movzx eax, cx
sub eax, 2
jne 0x4b79d4
mov eax, dword [ebp - 0x986]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
movzx ebx, ax
test edi, edi
je 0x4b79e5
cmp edi, 1
je 0x4b7a5b
mov cx, word [ebp - 0x988]
inc edi
cmp edi, 2
jne 0x4b7990
mov ebx, dword [ebp - 0x990]
jmp 0x4b7af3
xor eax, eax
cmp word [ebp - 0x988], 2
push ebx
setne al
lea edx, [ebp - 0x104]
push edx
mov dword [ebp - 0x9a0], edi
lea edi, [esi + 0x3d0]
inc eax
push eax
push str.EPRT
push str._s__d_s_hu
push edi
call fcn.004c46f0
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x4b7aed
push ebx
call fcn.004ac620
mov ecx, dword [ebp - 0x994]
push eax
push str.Failure_sending_EPRT_command:__s
push ecx
call fcn.004a9660
mov edx, dword [ebp - 0x98c]
push edx
push esi
call fcn.004aa420
add esp, 0x18
mov dword [edi + 0x68], 1
xor eax, eax
jmp 0x4b7b29
lea ecx, [ebp - 0x908]
lea edx, [ebp - 0x104]
mov al, byte [edx]
test al, al
je 0x4b7a7c
cmp al, 0x2e
jne 0x4b7a76
mov byte [ecx], 0x2c
jmp 0x4b7a78
mov byte [ecx], al
inc ecx
inc edx
jne 0x4b7a67
mov eax, ebx
mov edx, ebx
and edx, 0xff
push edx
shr eax, 8
push eax
push str.__d__d
push 0x14
push ecx
mov byte [ecx], 0
call fcn.004ab950
lea eax, [ebp - 0x908]
push eax
push str.PORT
lea eax, [esi + 0x3d0]
push str._s__s
push eax
call fcn.004c46f0
mov ebx, eax
add esp, 0x24
test ebx, ebx
je 0x4b7af3
push ebx
call fcn.004ac620
mov ecx, dword [ebp - 0x994]
push eax
push str.Failure_sending_PORT_command:__s
push ecx
call fcn.004a9660
mov edx, dword [ebp - 0x98c]
push edx
push esi
call fcn.004aa420
add esp, 0x18
xor eax, eax
jmp 0x4b7b29
mov edi, dword [ebp - 0x9a0]
mov dword [esi + 0x438], edi
mov eax, dword [esi + 0x134]
cmp eax, 0xffffffff
je 0x4b7b0e
push eax
push esi
call fcn.004aa420
add esp, 8
mov eax, dword [ebp - 0x98c]
mov dword [esi + 0x134], eax
mov dword [esi + 0x1c8], 1
mov eax, 0x1c
mov ecx, esi
call fcn.004b7260
mov ecx, dword [ebp - 4]
pop edi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.004cab85
mov esp, ebp
pop ebp
ret