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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x9bc
mov eax, dword [0x4a0590]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [eax]
push edi
lea ecx, [eax + 0x3f0]
push 0xff
mov dword [ebp - 0x998], eax
xor edi, edi
lea eax, [ebp - 0x107]
push edi
push eax
mov dword [ebp - 0x9b0], ecx
mov dword [ebp - 0x9a0], esi
mov byte [ebp - 0x108], 0
call fcn.0045f360
mov esi, dword [esi + 0x3a4]
xor ebx, ebx
inc ebx
add esp, 0xc
mov dword [ebp - 0x99c], edi
mov dword [ebp - 0x9ac], edi
mov dword [ebp - 0x9a4], edi
mov dword [ebp - 0x9b8], ebx
mov dword [ebp - 0x994], edi
cmp esi, edi
je 0x41507e
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414f6e
sub eax, edx
cmp eax, ebx
jbe 0x41507e
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414f84
sub eax, edx
cmp eax, 0x16
jae 0x414f97
push 0x16
pop eax
jmp 0x414fa5
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x414f9c
sub eax, edx
inc eax
push ebx
push eax
call dword [0x4a184c]
pop ecx
pop ecx
mov dword [ebp - 0x994], eax
cmp eax, edi
jne 0x414fc2
push 0x1b
pop eax
jmp 0x4154d7
cmp byte [esi], 0x3a
jne 0x414fcb
mov ebx, esi
jmp 0x415001
push 0x3a
push esi
call fcn.00453c70
mov ebx, eax
pop ecx
pop ecx
cmp ebx, edi
je 0x414fef
sub eax, esi
push eax
push esi
push dword [ebp - 0x994]
call fcn.00457980
add esp, 0xc
jmp 0x415001
mov ecx, dword [ebp - 0x994]
sub ecx, esi
mov al, byte [esi]
mov byte [ecx + esi], al
inc esi
test al, al
jne 0x414ff7
cmp ebx, edi
je 0x415067
push 0x3a
push ebx
call fcn.00453c70
mov esi, eax
pop ecx
pop ecx
cmp esi, edi
je 0x415067
push 0xa
lea eax, [esi + 1]
push edi
push eax
call fcn.00457114
add esp, 0xc
movzx ebx, ax
push 0x2d
push esi
mov dword [ebp - 0x9ac], ebx
call fcn.00453c70
pop ecx
pop ecx
cmp eax, edi
je 0x41504d
push 0xa
inc eax
push edi
push eax
call fcn.00457114
add esp, 0xc
movzx eax, ax
jmp 0x415050
movzx eax, bx
mov dword [ebp - 0x9a4], eax
cmp bx, ax
jbe 0x415067
mov dword [ebp - 0x9a4], edi
mov dword [ebp - 0x9ac], edi
mov eax, dword [ebp - 0x994]
movsx ebx, byte [eax]
neg ebx
sbb ebx, ebx
and ebx, eax
cmp ebx, edi
jne 0x415128
mov esi, dword [ebp - 0x998]
lea eax, [ebp - 0x9a8]
push eax
lea eax, [ebp - 0x990]
push eax
push dword [esi + 0x150]
mov dword [ebp - 0x9a8], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x4150eb
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push esi
mov edi, eax
call fcn.0042cb77
mov esi, dword [ebp - 0x9a0]
pop ecx
push eax
push str.getsockname___failed:__s
call fcn.00429149
cmp dword [ebp - 0x994], 0
pop ecx
pop ecx
je 0x4150e4
push dword [ebp - 0x994]
call dword [0x4a1840]
pop ecx
push 0x1e
jmp 0x414fbc
movzx eax, word [ebp - 0x990]
dec eax
dec eax
je 0x415103
push 0x273f
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x41511c
lea eax, [ebp - 0x98c]
push 0x401
push eax
lea esi, [ebp - 0x510]
call fcn.00420e48
pop ecx
pop ecx
lea ebx, [ebp - 0x510]
mov dword [ebp - 0x9b8], edi
lea eax, [ebp - 0x99c]
push eax
push edi
push ebx
push dword [ebp - 0x998]
call fcn.0041a196
add esp, 0x10
cmp eax, 1
jne 0x415155
mov esi, dword [ebp - 0x998]
lea eax, [ebp - 0x99c]
call fcn.0040e25f
mov eax, dword [ebp - 0x99c]
cmp eax, edi
je 0x415178
mov ecx, dword [eax]
mov esi, dword [ebp - 0x9a0]
mov edi, eax
mov dword [ebp - 0x99c], ecx
call fcn.0041a31d
xor edi, edi
jmp 0x41517e
mov dword [ebp - 0x99c], edi
cmp dword [ebp - 0x99c], edi
jne 0x4151a2
mov esi, dword [ebp - 0x9a0]
push ebx
push str.failed_to_resolve_the_address_provided_to_PORT:__s
call fcn.00429149
cmp dword [ebp - 0x994], edi
jmp 0x4150d3
cmp dword [ebp - 0x994], edi
je 0x4151b7
push dword [ebp - 0x994]
call dword [0x4a1840]
pop ecx
mov edi, dword [ebp - 0x99c]
or dword [ebp - 0x994], 0xffffffff
xor esi, esi
mov dword [ebp - 0x99c], edi
mov ecx, dword [ebp - 0x998]
push edi
lea ebx, [ebp - 0x994]
xor edx, edx
call fcn.0040f9c0
pop ecx
mov dword [ebp - 0x9b4], eax
test eax, eax
je 0x415200
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edi, dword [edi + 0x1c]
mov esi, eax
mov dword [ebp - 0x99c], edi
test edi, edi
jne 0x4151cc
test edi, edi
jne 0x415229
push dword [ebp - 0x998]
mov edi, esi
call fcn.0042cb77
mov esi, dword [ebp - 0x9a0]
pop ecx
push eax
push str.socket_failure:__s
call fcn.00429149
pop ecx
jmp 0x4150e3
push dword [edi + 0x10]
lea eax, [ebp - 0x990]
push dword [edi + 0x18]
push eax
call fcn.0045b860
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x9a8], eax
mov eax, dword [ebp - 0x9ac]
add esp, 0xc
movzx esi, ax
cmp ax, word [ebp - 0x9a4]
ja 0x415338
cmp word [ebp - 0x990], 2
jne 0x415275
push esi
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x98e], ax
push dword [ebp - 0x9a8]
lea eax, [ebp - 0x990]
push eax
push dword [ebp - 0x994]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x41532f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [ebp - 0x9b8], 0
je 0x415315
cmp eax, 0x2741
jne 0x415315
push dword [ebp - 0x998]
mov edi, eax
call fcn.0042cb77
pop ecx
push eax
movzx eax, si
mov esi, dword [ebp - 0x9a0]
push eax
push str.bind_port_hu__on_non_local_address_failed:__s_n
call fcn.004290d9
mov ebx, dword [ebp - 0x998]
add esp, 0xc
lea eax, [ebp - 0x9a8]
push eax
lea eax, [ebp - 0x990]
push eax
push dword [ebx + 0x150]
mov dword [ebp - 0x9a8], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x41534b
movzx esi, word [ebp - 0x9ac]
and dword [ebp - 0x9b8], eax
mov edi, dword [ebp - 0x99c]
jmp 0x415322
cmp eax, 0x2740
je 0x415321
cmp eax, 0xd
jne 0x415379
inc esi
cmp si, word [ebp - 0x9a4]
jbe 0x41525d
cmp si, word [ebp - 0x9a4]
jbe 0x4153ad
mov esi, dword [ebp - 0x9a0]
push str.bind___failed__we_ran_out_of_ports_
call fcn.00429149
pop ecx
jmp 0x41539f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push ebx
mov edi, eax
call fcn.0042cb77
pop ecx
push eax
push str.getsockname___failed:__s
call fcn.00429149
mov esi, dword [ebp - 0x994]
pop ecx
pop ecx
mov eax, ebx
call fcn.0040f97c
jmp 0x4150e4
push dword [ebp - 0x998]
mov edi, eax
call fcn.0042cb77
pop ecx
push eax
movzx eax, si
mov esi, dword [ebp - 0x9a0]
push eax
push str.bind_port_hu__failed:__s
call fcn.00429149
add esp, 0xc
mov esi, dword [ebp - 0x994]
mov eax, dword [ebp - 0x998]
jmp 0x41536f
mov ebx, dword [ebp - 0x994]
lea eax, [ebp - 0x9a8]
push eax
lea eax, [ebp - 0x990]
push eax
push ebx
mov dword [ebp - 0x9a8], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x415401
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push dword [ebp - 0x998]
mov edi, eax
call fcn.0042cb77
pop ecx
push eax
push str.getsockname___failed:__s
mov esi, dword [ebp - 0x9a0]
call fcn.00429149
pop ecx
pop ecx
mov esi, ebx
jmp 0x4153a5
push 1
push ebx
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x41542a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push dword [ebp - 0x998]
mov edi, eax
call fcn.0042cb77
pop ecx
push eax
push str.socket_failure:__s
jmp 0x4153f0
push 0x100
lea esi, [ebp - 0x108]
mov ecx, edi
call fcn.00419f91
mov esi, dword [ebp + 0xc]
pop ecx
push 2
pop ebx
jmp 0x41548e
mov eax, dword [ebp - 0x998]
cmp dword [eax + 0x20c], 0
jne 0x415458
test esi, esi
je 0x41548d
cmp esi, 1
jne 0x415466
cmp word [ebp - 0x990], bx
jne 0x41548d
movzx eax, word [ebp - 0x990]
sub eax, ebx
jne 0x41548d
push dword [ebp - 0x98e]
call dword [sym.imp.WS2_32.dll_ntohs]
movzx edi, ax
test esi, esi
je 0x4154e6
cmp esi, 1
je 0x415572
inc esi
cmp esi, ebx
jne 0x415445
mov edi, dword [ebp - 0x998]
mov eax, dword [ebp - 0x9b0]
lea ebx, [edi + 0x154]
mov dword [eax + 0x68], esi
mov esi, dword [ebx]
cmp esi, 0xffffffff
je 0x4154b5
mov eax, edi
call fcn.0040f97c
mov eax, dword [ebp - 0x994]
mov dword [ebx], eax
mov eax, dword [ebp - 0x9b4]
mov dword [edi + 0x1f0], 1
mov dword [edi + 0x464], 0x1c
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00453655
leave
ret
mov ebx, dword [ebp - 0x9b0]
movzx eax, di
push eax
lea eax, [ebp - 0x108]
push eax
xor eax, eax
cmp word [ebp - 0x990], 2
setne al
inc eax
push eax
push str.EPRT
push str._s__d_s_hu
call fcn.00425710
mov edi, eax
add esp, 0x14
mov dword [ebp - 0x9b4], edi
test edi, edi
je 0x415492
push edi
call sym.stella.exe_curl_easy_strerror
mov esi, dword [ebp - 0x9a0]
add esp, 4
push eax
push str.Failure_sending_EPRT_command:__s
call fcn.00429149
mov ebx, dword [ebp - 0x998]
mov esi, dword [ebp - 0x994]
pop ecx
pop ecx
mov eax, ebx
call fcn.0040f97c
mov eax, dword [ebp - 0x9b0]
mov dword [eax + 0x68], 1
and dword [ebx + 0x464], 0
mov eax, edi
jmp 0x4154d7
lea ecx, [ebp - 0x910]
lea edx, [ebp - 0x108]
mov al, byte [edx]
test al, al
je 0x415593
cmp al, 0x2e
jne 0x41558d
mov byte [ecx], 0x2c
jmp 0x41558f
mov byte [ecx], al
inc ecx
inc edx
jne 0x41557e
movzx eax, di
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 sym.stella.exe_curl_msnprintf
mov ebx, dword [ebp - 0x9b0]
add esp, 0x14
lea eax, [ebp - 0x910]
push eax
push str.PORT
push str._s__s
call fcn.00425710
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x9b4], edi
test edi, edi
je 0x415492
push edi
call sym.stella.exe_curl_easy_strerror
mov esi, dword [ebp - 0x9a0]
add esp, 4
push eax
push str.Failure_sending_PORT_command:__s
call fcn.00429149
mov ebx, dword [ebp - 0x998]
mov esi, dword [ebp - 0x994]
pop ecx
pop ecx
mov eax, ebx
call fcn.0040f97c
jmp 0x415564