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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa3c
mov eax, dword [0x100e7260]
xor eax, ebp
mov dword [ebp - 4], eax
and dword [ebp - 0x9ac], 0
mov eax, dword [ebp + 8]
add eax, 0x618
mov dword [ebp - 0x9ec], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ebp - 0x990], eax
or dword [ebp - 0x998], 0xffffffff
mov al, byte [0x100f631f]
mov byte [ebp - 0x104], al
push 0xff
push 0
lea eax, [ebp - 0x103]
push eax
call fcn.1003e130
add esp, 0xc
lea eax, [ebp - 0x988]
mov dword [ebp - 0x9a4], eax
mov eax, dword [ebp - 0x9a4]
mov dword [ebp - 0xa04], eax
and dword [ebp - 0x9bc], 0
push 4
pop eax
imul eax, eax, 0xc
mov ecx, dword [ebp - 0x990]
mov eax, dword [ecx + eax + 0x3c0]
mov dword [ebp - 0x9b8], eax
and dword [ebp - 0x9dc], 0
xor eax, eax
mov word [ebp - 0x99c], ax
xor eax, eax
mov word [ebp - 0x98c], ax
mov byte [ebp - 0x991], 1
and dword [ebp - 0x9b0], 0
push 4
pop eax
imul eax, eax, 0xc
mov ecx, dword [ebp - 0x990]
cmp dword [ecx + eax + 0x3c0], 0
je 0x100abe67
push 4
pop eax
imul eax, eax, 0xc
mov ecx, dword [ebp - 0x990]
mov eax, dword [ecx + eax + 0x3c0]
mov dword [ebp - 0x9e4], eax
mov eax, dword [ebp - 0x9e4]
inc eax
mov dword [ebp - 0xa1c], eax
mov eax, dword [ebp - 0x9e4]
mov al, byte [eax]
mov byte [ebp - 0x9c6], al
inc dword [ebp - 0x9e4]
cmp byte [ebp - 0x9c6], 0
jne 0x100abb00
mov eax, dword [ebp - 0x9e4]
sub eax, dword [ebp - 0xa1c]
mov dword [ebp - 0xa24], eax
cmp dword [ebp - 0xa24], 1
jbe 0x100abe67
mov eax, dword [ebp - 0x9b8]
mov dword [ebp - 0x9d8], eax
mov eax, dword [ebp - 0x9d8]
inc eax
mov dword [ebp - 0xa2c], eax
mov eax, dword [ebp - 0x9d8]
mov al, byte [eax]
mov byte [ebp - 0x9c5], al
inc dword [ebp - 0x9d8]
cmp byte [ebp - 0x9c5], 0
jne 0x100abb55
mov eax, dword [ebp - 0x9d8]
sub eax, dword [ebp - 0xa2c]
mov dword [ebp - 0xa34], eax
cmp dword [ebp - 0xa34], 0x16
jae 0x100abb99
mov dword [ebp - 0xa0c], 0x16
jmp 0x100abbed
mov eax, dword [ebp - 0x9b8]
mov dword [ebp - 0x9e0], eax
mov eax, dword [ebp - 0x9e0]
inc eax
mov dword [ebp - 0xa18], eax
mov eax, dword [ebp - 0x9e0]
mov al, byte [eax]
mov byte [ebp - 0x9c7], al
inc dword [ebp - 0x9e0]
cmp byte [ebp - 0x9c7], 0
jne 0x100abbb2
mov eax, dword [ebp - 0x9e0]
sub eax, dword [ebp - 0xa18]
mov dword [ebp - 0xa10], eax
mov eax, dword [ebp - 0xa10]
mov dword [ebp - 0xa0c], eax
mov eax, dword [ebp - 0xa0c]
mov dword [ebp - 0xa28], eax
mov eax, dword [ebp - 0x9b8]
mov dword [ebp - 0xa20], eax
and dword [ebp - 0x9d4], 0
and dword [ebp - 0x9f0], 0
and dword [ebp - 0x9f4], 0
push 1
mov eax, dword [ebp - 0xa28]
inc eax
push eax
call dword [0x100e8670]
pop ecx
pop ecx
mov dword [ebp - 0x9b0], eax
cmp dword [ebp - 0x9b0], 0
jne 0x100abc43
push 0x1b
pop eax
jmp 0x100ac634
mov eax, dword [ebp - 0x9b8]
movsx eax, byte [eax]
cmp eax, 0x3a
jne 0x100abc62
mov eax, dword [ebp - 0x9b8]
mov dword [ebp - 0x9d4], eax
jmp 0x100abd06
push 0x3a
push dword [ebp - 0x9b8]
call fcn.1003f3a0
pop ecx
pop ecx
mov dword [ebp - 0x9d4], eax
cmp dword [ebp - 0x9d4], 0
je 0x100abca3
mov eax, dword [ebp - 0x9d4]
sub eax, dword [ebp - 0xa20]
push eax
push dword [ebp - 0x9b8]
push dword [ebp - 0x9b0]
call fcn.1003f780
add esp, 0xc
jmp 0x100abd06
mov eax, dword [ebp - 0x9b8]
mov dword [ebp - 0xa00], eax
mov eax, dword [ebp - 0x9b0]
mov dword [ebp - 0x9e8], eax
mov eax, dword [ebp - 0x9e8]
mov dword [ebp - 0xa38], eax
mov eax, dword [ebp - 0xa00]
mov al, byte [eax]
mov byte [ebp - 0x9a5], al
mov eax, dword [ebp - 0x9e8]
mov cl, byte [ebp - 0x9a5]
mov byte [eax], cl
mov eax, dword [ebp - 0xa00]
inc eax
mov dword [ebp - 0xa00], eax
mov eax, dword [ebp - 0x9e8]
inc eax
mov dword [ebp - 0x9e8], eax
cmp byte [ebp - 0x9a5], 0
jne 0x100abcc7
cmp dword [ebp - 0x9d4], 0
je 0x100abda3
push 0x3a
push dword [ebp - 0x9d4]
call fcn.1003f3a0
pop ecx
pop ecx
mov dword [ebp - 0x9f0], eax
cmp dword [ebp - 0x9f0], 0
je 0x100abda3
push 0xa
push 0
mov eax, dword [ebp - 0x9f0]
inc eax
push eax
call fcn.1003f751
add esp, 0xc
push eax
call fcn.10095a56
pop ecx
mov word [ebp - 0x99c], ax
push 0x2d
push dword [ebp - 0x9f0]
call fcn.1003f3a0
pop ecx
pop ecx
mov dword [ebp - 0x9f4], eax
cmp dword [ebp - 0x9f4], 0
je 0x100abd95
push 0xa
push 0
mov eax, dword [ebp - 0x9f4]
inc eax
push eax
call fcn.1003f751
add esp, 0xc
push eax
call fcn.10095a56
pop ecx
mov word [ebp - 0x98c], ax
jmp 0x100abda3
mov ax, word [ebp - 0x99c]
mov word [ebp - 0x98c], ax
movzx eax, word [ebp - 0x99c]
movzx ecx, word [ebp - 0x98c]
cmp eax, ecx
jle 0x100abdcc
xor eax, eax
mov word [ebp - 0x98c], ax
mov ax, word [ebp - 0x98c]
mov word [ebp - 0x99c], ax
mov eax, dword [ebp - 0x9b0]
movsx eax, byte [eax]
test eax, eax
je 0x100abe60
push 0x401
lea eax, [ebp - 0x508]
push eax
push dword [ebp - 0x9b0]
mov eax, dword [ebp + 8]
push dword [eax + 0x90]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x54]
push dword [eax + 0x18]
call fcn.100b287b
pop ecx
push eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x54]
push dword [eax + 4]
call fcn.100b2882
add esp, 0x18
mov dword [ebp - 0x9f8], eax
cmp dword [ebp - 0x9f8], 0
je 0x100abe3c
cmp dword [ebp - 0x9f8], 1
je 0x100abe4a
cmp dword [ebp - 0x9f8], 2
je 0x100abe52
jmp 0x100abe5e
mov eax, dword [ebp - 0x9b0]
mov dword [ebp - 0x9bc], eax
jmp 0x100abe5e
push 0x1e
pop eax
jmp 0x100ac634
lea eax, [ebp - 0x508]
mov dword [ebp - 0x9bc], eax
jmp 0x100abe67
and dword [ebp - 0x9bc], 0
cmp dword [ebp - 0x9bc], 0
jne 0x100abf29
mov dword [ebp - 0x9c4], 0x80
lea eax, [ebp - 0x9c4]
push eax
push dword [ebp - 0x9a4]
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp + 8]
push dword [ecx + eax + 0x1a8]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x100abedf
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
push 0x100edd08
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x9b0]
call dword [0x100e8674]
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
mov eax, dword [ebp - 0x9a4]
movzx eax, word [eax]
mov dword [ebp - 0xa3c], eax
push 0x401
lea eax, [ebp - 0x508]
push eax
mov eax, dword [ebp - 0xa04]
add eax, 4
push eax
mov eax, dword [ebp - 0x9a4]
movzx eax, word [eax]
push eax
call fcn.100b283e
add esp, 0x10
lea eax, [ebp - 0x508]
mov dword [ebp - 0x9bc], eax
mov byte [ebp - 0x991], 0
lea eax, [ebp - 0x9dc]
push eax
push 0
push dword [ebp - 0x9bc]
push dword [ebp + 8]
call fcn.100815bd
add esp, 0x10
mov dword [ebp - 0xa30], eax
cmp dword [ebp - 0xa30], 1
jne 0x100abf63
lea eax, [ebp - 0x9dc]
push eax
push dword [ebp + 8]
call fcn.10082081
pop ecx
pop ecx
cmp dword [ebp - 0x9dc], 0
je 0x100abf8f
mov eax, dword [ebp - 0x9dc]
mov eax, dword [eax]
mov dword [ebp - 0x9fc], eax
push dword [ebp - 0x9dc]
push dword [ebp - 0x990]
call fcn.10081903
pop ecx
pop ecx
jmp 0x100abf96
and dword [ebp - 0x9fc], 0
cmp dword [ebp - 0x9fc], 0
jne 0x100abfcd
push dword [ebp - 0x9bc]
push str.failed_to_resolve_the_address_provided_to_PORT:__s
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x9b0]
call dword [0x100e8674]
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
push dword [ebp - 0x9b0]
call dword [0x100e8674]
pop ecx
and dword [ebp - 0x9bc], 0
or dword [ebp - 0x998], 0xffffffff
and dword [ebp - 0x9c0], 0
mov eax, dword [ebp - 0x9fc]
mov dword [ebp - 0x9b4], eax
jmp 0x100ac00c
mov eax, dword [ebp - 0x9b4]
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x9b4], eax
cmp dword [ebp - 0x9b4], 0
je 0x100ac050
lea eax, [ebp - 0x998]
push eax
push 0
push dword [ebp - 0x9b4]
push dword [ebp + 8]
call fcn.1007f07d
add esp, 0x10
mov dword [ebp - 0x9ac], eax
cmp dword [ebp - 0x9ac], 0
je 0x100ac04c
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x9c0], eax
jmp 0x100abffd
jmp 0x100ac050
cmp dword [ebp - 0x9b4], 0
jne 0x100ac085
push dword [ebp - 0x9c0]
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
push 0x100edd58
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push 0x1e
pop eax
jmp 0x100ac634
mov eax, dword [ebp - 0x9b4]
push dword [eax + 0x10]
mov eax, dword [ebp - 0x9b4]
push dword [eax + 0x18]
push dword [ebp - 0x9a4]
call fcn.1003dae0
add esp, 0xc
mov eax, dword [ebp - 0x9b4]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x9c4], eax
mov ax, word [ebp - 0x99c]
mov word [ebp - 0x9a0], ax
movzx eax, word [ebp - 0x9a0]
movzx ecx, word [ebp - 0x98c]
cmp eax, ecx
jg 0x100ac26f
mov eax, dword [ebp - 0x9a4]
movzx eax, word [eax]
cmp eax, 2
jne 0x100ac0fc
push dword [ebp - 0x9a0]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0xa04]
mov word [ecx + 2], ax
push dword [ebp - 0x9c4]
push dword [ebp - 0x9a4]
push dword [ebp - 0x998]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x100ac256
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x9c0], eax
movzx eax, byte [ebp - 0x991]
test eax, eax
je 0x100ac1fb
cmp dword [ebp - 0x9c0], 0x2741
jne 0x100ac1fb
push dword [ebp - 0x9c0]
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
movzx eax, word [ebp - 0x9a0]
push eax
push str.bind_port_hu__on_non_local_address_failed:__s_n
push dword [ebp - 0x990]
call fcn.100837f8
add esp, 0x10
mov dword [ebp - 0x9c4], 0x80
lea eax, [ebp - 0x9c4]
push eax
push dword [ebp - 0x9a4]
push 4
pop eax
imul eax, eax, 0
mov ecx, dword [ebp + 8]
push dword [ecx + eax + 0x1a8]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x100ac1e1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
push 0x100edd9c
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
mov ax, word [ebp - 0x99c]
mov word [ebp - 0x9a0], ax
mov byte [ebp - 0x991], 0
jmp 0x100ac0c2
cmp dword [ebp - 0x9c0], 0x2740
je 0x100ac254
cmp dword [ebp - 0x9c0], 0xd
je 0x100ac254
push dword [ebp - 0x9c0]
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
movzx eax, word [ebp - 0x9a0]
push eax
push str.bind_port_hu__failed:__s
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0x10
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
jmp 0x100ac258
jmp 0x100ac26f
mov ax, word [ebp - 0x9a0]
add ax, 1
mov word [ebp - 0x9a0], ax
jmp 0x100ac0c2
movzx eax, word [ebp - 0x9a0]
movzx ecx, word [ebp - 0x98c]
cmp eax, ecx
jle 0x100ac2ab
push str.bind___failed__we_ran_out_of_ports_
push dword [ebp - 0x990]
call fcn.10083b69
pop ecx
pop ecx
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
mov dword [ebp - 0x9c4], 0x80
lea eax, [ebp - 0x9c4]
push eax
push dword [ebp - 0x9a4]
push dword [ebp - 0x998]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x100ac30f
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
push str.getsockname___failed:__s
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
push 1
push dword [ebp - 0x998]
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x100ac35e
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push dword [ebp + 8]
call fcn.100b3c46
pop ecx
pop ecx
push eax
push str.socket_failure:__s
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
push 0x1e
pop eax
jmp 0x100ac634
push 0x100
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 0x9b4]
call fcn.1008154e
add esp, 0xc
jmp 0x100ac381
mov eax, dword [ebp + 0xc]
inc eax
mov dword [ebp + 0xc], eax
cmp dword [ebp + 0xc], 2
je 0x100ac5e6
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 0x3a1]
test eax, eax
jne 0x100ac3a1
cmp dword [ebp + 0xc], 0
jne 0x100ac3a1
jmp 0x100ac37a
cmp dword [ebp + 0xc], 1
jne 0x100ac3b7
mov eax, dword [ebp - 0x9a4]
movzx eax, word [eax]
cmp eax, 2
je 0x100ac3b7
jmp 0x100ac37a
mov eax, dword [ebp - 0x9a4]
movzx eax, word [eax]
mov dword [ebp - 0xa14], eax
cmp dword [ebp - 0xa14], 2
je 0x100ac3d1
jmp 0x100ac3eb
mov eax, dword [ebp - 0xa04]
movzx eax, word [eax + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [ebp - 0x9a0], ax
jmp 0x100ac3ed
jmp 0x100ac37a
cmp dword [ebp + 0xc], 0
jne 0x100ac4b5
mov eax, dword [ebp - 0x9a4]
movzx eax, word [eax]
cmp eax, 2
jne 0x100ac411
mov dword [ebp - 0xa08], 1
jmp 0x100ac41b
mov dword [ebp - 0xa08], 2
movzx eax, word [ebp - 0x9a0]
push eax
lea eax, [ebp - 0x104]
push eax
push dword [ebp - 0xa08]
imul eax, dword [ebp + 0xc], 5
add eax, str.EPRT
push eax
push str._s__d_s_hu
push dword [ebp - 0x9ec]
call fcn.100bea76
add esp, 0x18
mov dword [ebp - 0x9ac], eax
cmp dword [ebp - 0x9ac], 0
je 0x100ac4b0
push dword [ebp - 0x9ac]
call fcn.100b3796
pop ecx
push eax
push str.Failure_sending_EPRT_command:__s
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
mov eax, dword [ebp - 0x9ec]
mov dword [eax + 0x68], 1
push 0
push dword [ebp + 8]
call fcn.100ac956
pop ecx
pop ecx
mov eax, dword [ebp - 0x9ac]
jmp 0x100ac634
jmp 0x100ac5e6
cmp dword [ebp + 0xc], 1
jne 0x100ac5e1
lea eax, [ebp - 0x104]
mov dword [ebp - 0x9d0], eax
lea eax, [ebp - 0x908]
mov dword [ebp - 0x9cc], eax
cmp dword [ebp - 0x9d0], 0
je 0x100ac532
mov eax, dword [ebp - 0x9d0]
movsx eax, byte [eax]
test eax, eax
je 0x100ac532
mov eax, dword [ebp - 0x9d0]
movsx eax, byte [eax]
cmp eax, 0x2e
jne 0x100ac506
mov eax, dword [ebp - 0x9cc]
mov byte [eax], 0x2c
jmp 0x100ac516
mov eax, dword [ebp - 0x9cc]
mov ecx, dword [ebp - 0x9d0]
mov cl, byte [ecx]
mov byte [eax], cl
mov eax, dword [ebp - 0x9cc]
inc eax
mov dword [ebp - 0x9cc], eax
mov eax, dword [ebp - 0x9d0]
inc eax
mov dword [ebp - 0x9d0], eax
jmp 0x100ac4d7
mov eax, dword [ebp - 0x9cc]
mov byte [eax], 0
movzx eax, word [ebp - 0x9a0]
and eax, 0xff
push eax
movzx eax, word [ebp - 0x9a0]
sar eax, 8
push eax
push str.__d__d
push 0x14
push dword [ebp - 0x9cc]
call fcn.100990ee
add esp, 0x14
lea eax, [ebp - 0x908]
push eax
imul eax, dword [ebp + 0xc], 5
add eax, str.EPRT
push eax
push 0x100ede64
push dword [ebp - 0x9ec]
call fcn.100bea76
add esp, 0x10
mov dword [ebp - 0x9ac], eax
cmp dword [ebp - 0x9ac], 0
je 0x100ac5df
push dword [ebp - 0x9ac]
call fcn.100b3796
pop ecx
push eax
push str.Failure_sending_PORT_command:__s
push dword [ebp - 0x990]
call fcn.10083b69
add esp, 0xc
push dword [ebp - 0x998]
push dword [ebp + 8]
call fcn.100801b1
pop ecx
pop ecx
push 0
push dword [ebp + 8]
call fcn.100ac956
pop ecx
pop ecx
mov eax, dword [ebp - 0x9ac]
jmp 0x100ac634
jmp 0x100ac5e6
jmp 0x100ac37a
mov eax, dword [ebp - 0x9ec]
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x68], ecx
push dword [ebp + 8]
call fcn.100ad29f
pop ecx
push 4
pop eax
shl eax, 0
mov ecx, dword [ebp + 8]
mov edx, dword [ebp - 0x998]
mov dword [ecx + eax + 0x1a8], edx
xor eax, eax
inc eax
shl eax, 0
mov ecx, dword [ebp + 8]
mov byte [ecx + eax + 0x399], 1
push 0x1c
push dword [ebp + 8]
call fcn.100ac956
pop ecx
pop ecx
mov eax, dword [ebp - 0x9ac]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.1003d588
mov esp, ebp
pop ebp
ret