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

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx]
mov rax, qword [rcx + 0x1e0]
cmp dword [rax + 0x18], 0
je 0x1400d7588
mov r8d, reloc.WS2_32.dll_listen
mov dword [rbx + 0x980], 0xd
mov dl, 1
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.1400d76a0
cmp byte [rcx + 0x566], 0
je 0x1400d75a0
xor edx, edx
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x1400d8170
cmp byte [rcx + 0x57e], 0
je 0x1400d7641
mov r8, qword [rbx + 0x958]
test r8, r8
jne 0x1400d75fb
mov r8, qword [rcx + 0x5d8]
test r8, r8
jne 0x1400d75de
cmp byte [rcx + 0x565], 0
lea rax, str.NLST
lea r8, str.LIST
cmovne r8, rax
lea rcx, [rbx + 0x8d8]
lea rdx, str.PRET__s
call fcn.1400e8e90
test eax, eax
je 0x1400d7631
add rsp, 0x20
pop rbx
ret
cmp byte [rcx + 0x571], 0
lea rcx, [rbx + 0x8d8]
je 0x1400d7621
lea rdx, str.PRET_STOR__s
call fcn.1400e8e90
test eax, eax
je 0x1400d7631
add rsp, 0x20
pop rbx
ret
lea rdx, str.PRET_RETR__s
call fcn.1400e8e90
test eax, eax
jne 0x1400d764e
mov dword [rbx + 0x980], 0x1d
add rsp, 0x20
pop rbx
ret
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.1400d80e0
add rsp, 0x20
pop rbx
ret
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x8f0]
sub rsp, 0x9f0
mov rax, qword [0x1403c86e8]
xor rax, rsp
mov qword [rbp + 0x8e0], rax
mov r14, qword [rcx]
mov esi, edx
mov rbx, rcx
mov qword [rsp + 0x40], r14
xor edx, edx
mov qword [rsp + 0x38], 0xffffffffffffffff
lea rcx, [rbp - 0x30]
mov r8d, 0x100
call fcn.14028bc50
mov rdi, qword [r14 + 0x608]
xor eax, eax
mov qword [rsp + 0x48], rax
mov r12d, eax
mov rcx, qword [r14 + 0x608]
movzx r13d, ax
mov word [rsp + 0x32], ax
mov r15d, eax
mov byte [rsp + 0x30], 1
test rcx, rcx
je 0x1400d83a7
or rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], r12b
jne 0x1400d8200
cmp rax, 1
jbe 0x1400d83a7
or rax, 0xffffffffffffffff
inc rax
cmp byte [rdi + rax], r12b
jne 0x1400d8217
cmp rax, 0x16
jae 0x1400d822d
mov ecx, reloc.WS2_32.dll_shutdown
jmp 0x1400d823a
or rcx, 0xffffffffffffffff
inc rcx
cmp byte [rdi + rcx], r12b
jne 0x1400d8231
inc rcx
mov edx, 1
call qword [fcn.14029af0c]
mov r15, rax
test rax, rax
jne 0x1400d8259
lea eax, [r15 + 0x1b]
jmp 0x1400d88ca
cmp byte [rdi], 0x3a
jne 0x1400d8263
mov r14, rdi
jmp 0x1400d8289
mov edx, Ordinal_60
mov rcx, rdi
call fcn.14028d778
mov r14, rax
mov rcx, r15
test rax, rax
je 0x1400d82f5
mov r8, rax
mov rdx, rdi
sub r8, rdi
call fcn.1402a9820
test r14, r14
je 0x1400d830e
mov edx, Ordinal_60
mov rcx, r14
call fcn.14028d778
mov rdi, rax
test rax, rax
je 0x1400d830e
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.1402a56d4
mov ecx, eax
call fcn.1400c9280
mov edx, Ordinal_46
mov rcx, rdi
movzx r14d, ax
call fcn.14028d778
test rax, rax
je 0x1400d82ef
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.1402a56d4
mov ecx, eax
call fcn.1400c9280
movzx r13d, ax
jmp 0x1400d8312
movzx r13d, r14w
jmp 0x1400d8312
sub rcx, rdi
nop dword [rax + rax]
movzx eax, byte [rdi]
mov byte [rcx + rdi], al
lea rdi, [rdi + 1]
test al, al
jne 0x1400d8300
movzx r14d, r12w
xor edi, edi
cmp r14w, r13w
cmovbe di, r13w
xor eax, eax
cmp r14w, r13w
cmovbe ax, r14w
movzx r14d, ax
mov word [rsp + 0x32], ax
cmp byte [r15], r12b
je 0x1400d8398
mov rcx, qword [rbx + 0x70]
mov rcx, qword [rcx + 0x20]
call fcn.1401c0000
mov r8d, dword [rbx + 0xb8]
lea rcx, [rbp + 0xd0]
mov edx, eax
mov dword [rsp + 0x28], 0x401
mov rax, qword [rbx + 0x70]
mov r9, r15
mov qword [rsp + 0x20], rcx
mov ecx, dword [rax + 4]
call fcn.1401c0000
test eax, eax
je 0x1400d838a
sub eax, 1
je 0x1400d88c5
cmp eax, 1
jne 0x1400d838d
lea r12, [rbp + 0xd0]
jmp 0x1400d838d
mov r12, r15
movzx r13d, di
test r12, r12
jne 0x1400d8414
jmp 0x1400d83a2
mov word [rsp + 0x32], r14w
movzx r13d, di
mov r14, qword [rsp + 0x40]
mov rcx, qword [rbx + 0x228]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x34], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x1400d83ec
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.1400cca00
mov r8, rax
lea rdx, str.getsockname___failed:__s
mov rcx, r14
jmp 0x1400d88b7
movzx ecx, word [rsp + 0x50]
lea r8, [rbp + 0xd0]
mov r9d, 0x401
lea rdx, [rsp + 0x54]
call fcn.1400cd3e0
lea r12, [rbp + 0xd0]
mov byte [rsp + 0x30], 0
lea r9, [rsp + 0x48]
xor r8d, r8d
mov rdx, r12
mov rcx, rbx
call fcn.1400b5ff0
cmp eax, 1
jne 0x1400d8439
lea rdx, [rsp + 0x48]
mov rcx, rbx
call fcn.1400b5440
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x1400d88a8
mov rcx, qword [rsp + 0x40]
mov r14, qword [rdx]
call fcn.1400b6190
test r14, r14
je 0x1400d88a8
mov rcx, r15
call qword [fcn.1402996a8]
xor edi, edi
mov qword [rsp + 0x38], 0xffffffffffffffff
lea r9, [rsp + 0x38]
xor r8d, r8d
mov rdx, r14
mov rcx, rbx
call fcn.1400c03a0
mov r15d, eax
test eax, eax
je 0x1400d849e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov r14, qword [r14 + 0x28]
mov edi, eax
test r14, r14
jne 0x1400d8471
jmp 0x1400d84a3
test r14, r14
jne 0x1400d84c6
mov edx, edi
mov rcx, rbx
call fcn.1400cca00
mov rcx, qword [rsp + 0x40]
lea rdx, str.socket_failure:__s
mov r8, rax
call fcn.1400befb0
jmp 0x1400d88c5
movsxd r8, dword [r14 + 0x10]
lea rcx, [rsp + 0x50]
mov rdx, qword [r14 + 0x20]
call fcn.14028b800
movzx r12d, word [rsp + 0x32]
mov eax, dword [r14 + 0x10]
movzx edi, r12w
mov dword [rsp + 0x34], eax
cmp r12w, r13w
ja 0x1400d85a6
cmp word [rsp + 0x50], 2
jne 0x1400d850a
movzx ecx, di
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x52], ax
mov r8d, dword [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x1400d8631
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp byte [rsp + 0x30], 0
je 0x1400d858d
cmp eax, 0x2741
jne 0x1400d858d
mov edx, eax
mov rcx, rbx
call fcn.1400cca00
movzx r8d, di
lea rdx, str.bind_port_hu__on_non_local_address_failed:__s_n
mov rdi, qword [rsp + 0x40]
mov r9, rax
mov rcx, rdi
call fcn.1400bf080
mov rcx, qword [rbx + 0x228]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x34], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x1400d85c9
movzx edi, r12w
mov byte [rsp + 0x30], al
jmp 0x1400d859c
cmp eax, 0x2740
je 0x1400d8599
cmp eax, 0xd
jne 0x1400d85fd
inc di
cmp di, r13w
jbe 0x1400d84f4
mov rcx, qword [rsp + 0x40]
lea rdx, str.bind___failed__we_ran_out_of_ports_
call fcn.1400befb0
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1400bfa30
jmp 0x1400d88c5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.1400cca00
mov rcx, rdi
lea rdx, str.getsockname___failed:__s
mov r8, rax
call fcn.1400befb0
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1400bfa30
jmp 0x1400d88c5
mov edx, eax
mov rcx, rbx
call fcn.1400cca00
mov rcx, qword [rsp + 0x40]
lea rdx, str.bind_port_hu__failed:__s
mov r9, rax
movzx r8d, di
call fcn.1400befb0
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1400bfa30
jmp 0x1400d88c5
cmp di, r13w
ja 0x1400d85a6
mov rcx, qword [rsp + 0x38]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x34], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x1400d8676
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.1400cca00
mov rcx, qword [rsp + 0x40]
jmp 0x1400d85dc
mov rcx, qword [rsp + 0x38]
mov edx, 1
call qword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x1400d86ab
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov rcx, rbx
call fcn.1400cca00
mov rcx, qword [rsp + 0x40]
lea rdx, str.socket_failure:__s
jmp 0x1400d85e3
mov r8d, 0x100
lea rdx, [rbp - 0x30]
mov rcx, r14
call fcn.1400b5fc0
cmp esi, 2
je 0x1400d8702
movzx eax, word [rsp + 0x50]
cmp byte [rbx + 0x555], 0
jne 0x1400d86d4
test esi, esi
je 0x1400d86fb
cmp ax, 2
jne 0x1400d86fb
movzx ecx, word [rsp + 0x52]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r8d, ax
test esi, esi
je 0x1400d881e
cmp esi, 1
je 0x1400d875e
movzx eax, word [rsp + 0x50]
inc esi
cmp esi, 2
jne 0x1400d86c7
lea rdi, [rbx + 0x8d8]
mov dword [rdi + 0x9c], esi
mov rdx, qword [rbx + 0x230]
cmp rdx, 0xffffffffffffffff
je 0x1400d872f
mov rcx, rbx
call fcn.1400bfa30
mov qword [rbx + 0x230], 0xffffffffffffffff
mov rax, qword [rsp + 0x38]
mov qword [rbx + 0x230], rax
mov eax, r15d
mov dword [rbx + 0x9d4], 0
mov byte [rbx + 0x54e], 1
mov dword [rbx + 0x980], 0x1c
jmp 0x1400d88ca
lea r10, [rbp + 0x4e0]
mov r9d, Ordinal_46
lea rdx, [rbp - 0x30]
nop
movzx ecx, byte [rdx]
test cl, cl
je 0x1400d878d
cmp cl, 0x2e
movzx eax, cl
cmove eax, r9d
mov byte [r10], al
inc r10
add rdx, 1
jne 0x1400d8770
movzx r9d, r8w
mov edx, reloc.WS2_32.dll_sendto
movzx eax, r9b
lea r8, str.__d__d
shr r9d, 8
mov rcx, r10
mov dword [rsp + 0x20], eax
mov byte [r10], 0
call fcn.1400ca620
lea rdi, [rbx + 0x8d8]
mov rcx, rdi
lea r9, [rbp + 0x4e0]
lea r8, str.PORT
lea rdx, [0x1402f8858]
call fcn.1400e8e90
mov r15d, eax
test eax, eax
je 0x1400d8709
mov ecx, eax
call fcn.1400ccb20
mov rcx, qword [rsp + 0x40]
lea rdx, str.Failure_sending_PORT_command:__s
mov r8, rax
call fcn.1400befb0
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1400bfa30
mov eax, r15d
mov dword [rbx + 0x980], 0
jmp 0x1400d88ca
xor r9d, r9d
movzx eax, r8w
cmp word [rsp + 0x50], 2
lea rdi, [rbx + 0x8d8]
mov dword [rsp + 0x28], eax
lea r8, str.EPRT
setne r9b
lea rax, [rbp - 0x30]
inc r9d
mov qword [rsp + 0x20], rax
lea rdx, str._s__d_s_hu
mov rcx, rdi
call fcn.1400e8e90
mov r15d, eax
test eax, eax
je 0x1400d8709
mov ecx, eax
call fcn.1400ccb20
mov rcx, qword [rsp + 0x40]
lea rdx, str.Failure_sending_EPRT_command:__s
mov r8, rax
call fcn.1400befb0
mov rdx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1400bfa30
mov dword [rdi + 0x9c], 1
mov eax, r15d
mov dword [rbx + 0x980], 0
jmp 0x1400d88ca
mov rcx, qword [rsp + 0x40]
lea rdx, str.failed_to_resolve_the_address_provided_to_PORT:__s
mov r8, r12
call fcn.1400befb0
mov rcx, r15
call qword [fcn.1402996a8]
mov eax, reloc.WLDAP32.dll_Ordinal_30
mov rcx, qword [rbp + 0x8e0]
xor rcx, rsp
call fcn.140286010
mov rbx, qword [rsp + 0xa40]
add rsp, 0x9f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret