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

Disassembly:
sub esp, 0x9ac
mov eax, dword [0x4b8914]
xor eax, esp
mov dword [esp + 0x9a8], eax
mov eax, dword [esp + 0x9b0]
push ebx
push ebp
mov ebp, dword [edi]
push esi
xor ebx, ebx
push 0xff
lea ecx, [esp + 0xb5]
push ebx
push ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x18], 0xffffffff
mov byte [esp + 0xbc], bl
call fcn.00473a10
mov esi, dword [ebp + 0x404]
mov dword [esp + 0x30], ebx
mov eax, dword [ebp + 0x404]
add esp, 0xc
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x28], 1
cmp eax, ebx
je 0x457008
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456eb0
sub eax, edx
cmp eax, 1
jbe 0x457008
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456ec7
sub eax, edx
cmp eax, 0x41
jae 0x456edc
mov eax, 0x41
jmp 0x456eea
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x456ee1
sub eax, edx
inc eax
push 1
push eax
call dword [0x4b85a8]
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x456f18
pop esi
pop ebp
lea eax, [ebx + 0x1b]
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
mov al, byte [esi]
cmp al, 0x5b
jne 0x457073
lea edx, [esi + 1]
push 0x5d
push esi
mov dword [esp + 0x28], edx
call fcn.00473d10
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x456fbc
mov eax, dword [esp + 0x20]
mov ecx, ebp
sub ecx, eax
push ecx
push eax
push ebx
call fcn.00477cd0
add esp, 0xc
test ebp, ebp
je 0x456fbc
push 0x3a
push ebp
call fcn.00473d10
mov esi, eax
add esp, 8
test esi, esi
je 0x456fbc
push 0xa
lea ecx, [esi + 1]
push 0
push ecx
call fcn.00475fa7
push eax
call fcn.00445390
movzx ebp, ax
push 0x2d
push esi
mov dword [esp + 0x34], ebp
call fcn.00473d10
xor esi, esi
add esp, 0x18
cmp eax, esi
je 0x4570e3
push 0xa
inc eax
push esi
push eax
call fcn.00475fa7
push eax
call fcn.00445390
movzx eax, ax
add esp, 0x10
mov dword [esp + 0x18], eax
cmp bp, ax
jbe 0x456fbc
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], esi
cmp byte [ebx], 0
je 0x457008
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x4c]
push 0x401
lea eax, [esp + 0x1b4]
push eax
mov eax, dword [edx + 0x18]
push ebx
push ecx
push eax
call fcn.00465490
mov ecx, dword [edi + 0x4c]
mov edx, dword [ecx + 4]
add esp, 4
push eax
push edx
call fcn.00428c40
add esp, 0x18
sub eax, 0
je 0x4570ef
dec eax
je 0x457056
dec eax
je 0x457131
mov edx, dword [edi + 0x168]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
push ecx
push edx
mov dword [esp + 0x20], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x4570f3
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.00447800
push eax
mov eax, dword [esp + 0x1c]
push str.getsockname___failed:__s
push eax
call fcn.004418e0
push ebx
call dword [0x4b859c]
add esp, 0x18
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
cmp al, 0x3a
jne 0x45707e
mov ebp, esi
jmp 0x456f51
push 0x3a
push esi
call fcn.00473d10
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x4570ce
lea edx, [esp + 0x30]
push edx
push esi
push 0x17
call fcn.00448250
add esp, 0xc
cmp eax, 1
jne 0x4570c3
xor eax, eax
mov edx, ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4570b4
jmp 0x456fbc
mov eax, ebp
sub eax, esi
push eax
push esi
jmp 0x456f48
mov edx, ebx
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4570d4
jmp 0x456fbc
movzx edx, bp
mov dword [esp + 0x18], edx
jmp 0x456fbc
mov esi, ebx
jmp 0x457138
movzx eax, word [esp + 0x30]
push 0x401
cmp eax, 0x17
je 0x457112
lea ecx, [esp + 0x1b4]
push ecx
lea edx, [esp + 0x3c]
push edx
push eax
jmp 0x457121
lea eax, [esp + 0x1b4]
push eax
lea ecx, [esp + 0x40]
push ecx
push 0x17
call fcn.0044bc20
add esp, 0x10
mov dword [esp + 0x28], 0
lea esi, [esp + 0x1b0]
lea edx, [esp + 0x24]
push edx
push 0
push esi
push edi
call fcn.004375e0
add esp, 0x10
cmp eax, 1
jne 0x45715c
lea eax, [esp + 0x24]
push eax
push edi
call fcn.004362b0
add esp, 8
mov eax, dword [esp + 0x24]
test eax, eax
je 0x457178
mov ecx, dword [esp + 0x10]
mov ebp, dword [eax]
push eax
push ecx
call fcn.00437ab0
add esp, 8
test ebp, ebp
jne 0x4571af
mov edx, dword [esp + 0x10]
push esi
push str.failed_to_resolve_the_address_provided_to_PORT:__s
push edx
call fcn.004418e0
push ebx
call dword [0x4b859c]
add esp, 0x10
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
push ebx
call dword [0x4b859c]
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
add esp, 4
mov dword [esp + 0xc], 0xffffffff
xor esi, esi
lea esp, [esp]
lea eax, [esp + 0xc]
push eax
push 0
push ebp
push edi
call fcn.00444650
add esp, 0x10
mov dword [esp + 0x20], eax
test eax, eax
je 0x4571f6
call ebx
mov ebp, dword [ebp + 0x1c]
mov esi, eax
test ebp, ebp
jne 0x4571d0
jmp 0x4571fa
test ebp, ebp
jne 0x457231
push esi
push edi
call fcn.00447800
mov ecx, dword [esp + 0x18]
push eax
push str.socket_failure:__s
push ecx
call fcn.004418e0
add esp, 0x14
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x18]
push edx
push eax
lea ecx, [esp + 0x38]
push ecx
call fcn.00471540
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x10]
add esp, 0xc
mov dword [esp + 0x14], edx
movzx esi, ax
cmp ax, word [esp + 0x18]
ja 0x457395
mov ebx, dword [esp + 0x28]
push esi
call dword [sym.imp.WS2_32.dll_htons]
mov edx, dword [esp + 0xc]
mov word [esp + 0x32], ax
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x45738e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test ebx, ebx
je 0x4572e7
cmp eax, 0x2741
jne 0x4572e7
push eax
push edi
call fcn.00447800
push eax
movzx eax, si
mov esi, dword [esp + 0x1c]
push eax
push str.bind_port_hu__on_non_local_address_failed:__s_n
push esi
call fcn.00441850
mov eax, dword [edi + 0x168]
add esp, 0x18
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
mov dword [esp + 0x20], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x457304
movzx esi, word [esp + 0x1c]
xor ebx, ebx
jmp 0x4572f4
cmp eax, 0x2740
je 0x4572f3
cmp eax, 0xd
jne 0x457348
inc esi
cmp si, word [esp + 0x18]
jbe 0x457263
jmp 0x457395
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.00447800
push eax
push str.getsockname___failed:__s
push esi
call fcn.004418e0
mov ecx, dword [esp + 0x20]
push ecx
push edi
call fcn.004445f0
add esp, 0x1c
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
push eax
push edi
call fcn.00447800
push eax
mov eax, dword [esp + 0x1c]
movzx edx, si
push edx
push str.bind_port_hu__failed:__s
push eax
call fcn.004418e0
mov ecx, dword [esp + 0x24]
push ecx
push edi
call fcn.004445f0
add esp, 0x20
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
cmp si, word [esp + 0x18]
jbe 0x4573cf
mov edx, dword [esp + 0x10]
push str.bind___failed__we_ran_out_of_ports_
push edx
call fcn.004418e0
mov eax, dword [esp + 0x14]
push eax
push edi
call fcn.004445f0
add esp, 0x10
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x34]
push edx
push eax
mov dword [esp + 0x20], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x457438
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.00447800
push eax
push str.getsockname___failed:__s
mov ecx, dword [esp + 0x20]
push ecx
call fcn.004418e0
mov edx, dword [esp + 0x20]
push edx
push edi
call fcn.004445f0
add esp, 0x1c
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a8]
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
mov eax, dword [esp + 0xc]
push 1
push eax
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x45745e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.00447800
push eax
push str.socket_failure:__s
jmp 0x457403
push 0x100
lea eax, [esp + 0xb4]
push eax
push ebp
call fcn.00437290
add esp, 0xc
cmp dword [edi + 0x2fc], 0
jne 0x457490
cmp dword [edi + 0x2d4], 0
je 0x457490
mov dword [edi + 0x2fc], 1
mov ebp, dword [esp + 0x2c]
cmp ebp, 2
je 0x4574f2
mov ebx, dword [sym.imp.WS2_32.dll_ntohs]
mov cx, word [esp + 0x30]
cmp dword [edi + 0x2fc], 0
jne 0x4574b1
test ebp, ebp
je 0x4574ec
cmp ebp, 1
jne 0x4574bc
cmp cx, 2
jne 0x4574ec
movzx eax, cx
sub eax, 2
je 0x4574d0
sub eax, 0x15
jne 0x4574ec
mov ecx, dword [esp + 0x32]
push ecx
jmp 0x4574d5
mov edx, dword [esp + 0x32]
push edx
call ebx
movzx esi, ax
test ebp, ebp
je 0x45755d
cmp ebp, 1
je 0x4575d3
mov cx, word [esp + 0x30]
inc ebp
cmp ebp, 2
jne 0x4574a4
mov ebx, dword [esp + 0x20]
mov dword [edi + 0x5d0], ebp
mov eax, dword [edi + 0x16c]
cmp eax, 0xffffffff
je 0x45751b
push eax
push edi
call fcn.004445f0
add esp, 8
mov dword [edi + 0x16c], 0xffffffff
mov eax, dword [esp + 0xc]
mov dword [edi + 0x62c], 0
mov dword [edi + 0x16c], eax
mov dword [edi + 0x2e0], 1
mov dword [edi + 0x5dc], 0x1c
mov ecx, dword [esp + 0x9b4]
pop esi
pop ebp
mov eax, ebx
pop ebx
xor ecx, esp
call fcn.00471528
add esp, 0x9ac
ret
xor edx, edx
cmp word [esp + 0x30], 2
movzx eax, si
setne dl
push eax
lea ecx, [esp + 0xb4]
push ecx
lea esi, [edi + 0x568]
inc edx
push edx
push str.EPRT
push str._s__d_s_hu
push esi
call fcn.00467690
mov ebx, eax
add esp, 0x18
test ebx, ebx
je 0x4574f6
push ebx
call fcn.00446e60
push eax
mov eax, dword [esp + 0x18]
push str.Failure_sending_EPRT_command:__s
push eax
call fcn.004418e0
mov ecx, dword [esp + 0x1c]
push ecx
push edi
call fcn.004445f0
mov dword [esi + 0x68], 1
add esp, 0x18
mov dword [edi + 0x5dc], 0
jmp 0x457543
lea ecx, [esp + 0x5b4]
lea edx, [esp + 0xb0]
mov al, byte [edx]
test al, al
je 0x4575f6
cmp al, 0x2e
jne 0x4575f0
mov byte [ecx], 0x2c
jmp 0x4575f2
mov byte [ecx], al
inc ecx
inc edx
jne 0x4575e1
movzx eax, si
mov edx, eax
and edx, 0xff
push edx
shr eax, 8
push eax
push str.__d__d
push 0x14
push ecx
mov byte [ecx], 0
call fcn.00445be0
lea eax, [esp + 0x5c8]
push eax
push str.PORT
lea eax, [edi + 0x568]
push 0x49ebdc
push eax
call fcn.00467690
mov ebx, eax
add esp, 0x24
test ebx, ebx
je 0x4574f6
push ebx
call fcn.00446e60
mov ecx, dword [esp + 0x14]
push eax
push str.Failure_sending_PORT_command:__s
push ecx
call fcn.004418e0
mov edx, dword [esp + 0x1c]
push edx
push edi
call fcn.004445f0
add esp, 0x18
mov dword [edi + 0x5dc], 0
jmp 0x457543