Function at 0x1400b9e90
Capabilities:
Get local ipv4 addresses
Get socket information
Set socket configuration

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [0x14020cc08]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rbx, rcx
call fcn.1400b8cb0
cmp dword [rbx + 0xd0], 0
jne 0x1400ba0af
mov edx, 1
lea ecx, [rdx + 1]
lea r8d, [rdx + 5]
call qword [sym.imp.WS2_32.dll_socket]
cmp rax, 0xffffffffffffffff
mov qword [rbx + 0x1d8], rax
je 0x1400ba0a0
lea r9, [rsp + 0x40]
mov edx, 0xffff
mov r8d, 1
mov rcx, rax
mov dword [rsp + 0x40], 1
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
mov rdx, qword [0x14020e0e8]
mov rcx, qword [rbx + 0x1d8]
mov rdx, qword [rdx + 0x20]
mov r9d, 0x28
mov r8d, 0x402
call qword [sym.imp.WS2_32.dll_WSAAsyncSelect]
mov rcx, qword [rbx + 0x1d8]
xor r11d, r11d
mov qword [rsp + 0x48], r11
lea r8d, [r11 + 0x10]
lea rdx, [rsp + 0x48]
mov qword [rsp + 0x50], r11
mov word [rsp + 0x48], 2
mov dword [rsp + 0x4c], r11d
mov word [rsp + 0x4a], r11w
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
je 0x1400ba091
mov rcx, qword [rbx + 0x1d8]
mov edx, 0x7fffffff
call qword [sym.imp.WS2_32.dll_listen]
cmp eax, 0xffffffff
je 0x1400ba082
mov rcx, qword [rbx + 8]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x40], reloc.WS2_32.dll_recv
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1400ba073
movzx eax, word [rsp + 0x48]
cmp ax, 2
jne 0x1400ba066
mov rcx, qword [rbx + 0x1d8]
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0x58]
mov dword [rsp + 0x44], reloc.WS2_32.dll_recv
call qword [sym.imp.WS2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1400ba057
movzx eax, word [rsp + 0x58]
mov rcx, rbx
cmp ax, 2
jne 0x1400ba04a
movzx eax, word [rsp + 0x5a]
movzx r10d, byte [rsp + 0x4e]
movzx r9d, byte [rsp + 0x4d]
movzx r8d, byte [rsp + 0x4c]
movzx edx, al
mov r11d, eax
movzx eax, byte [rsp + 0x4f]
shr r11d, 8
mov dword [rbx + 0x1cc], 2
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0x30], edx
mov dword [rsp + 0x28], eax
lea rdx, str.227_Entering_Passive_Mode.___d__d__d__d__d__d__r_n
mov dword [rsp + 0x20], r10d
call fcn.1400b82d0
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401a8fd0
add rsp, 0x70
pop rbx
ret
movsx r8d, ax
lea rdx, str.500_Failed_to_enter_passive_mode__invalid_pasv_family__d_r_n
jmp 0x1400ba0c2
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.500_Failed_to_enter_passive_mode__pasv_getsockname_error__d_r_n
jmp 0x1400ba0bc
movsx r8d, ax
lea rdx, str.500_Failed_to_enter_passive_mode__invalid_control_family__d_r_n
jmp 0x1400ba0bf
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.500_Failed_to_enter_passive_mode__control_getsockname_error__d_r_n
jmp 0x1400ba0bc
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.500_Failed_to_enter_passive_mode__listen_error__d_r_n
jmp 0x1400ba0bc
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.500_Failed_to_enter_passive_mode__bind_error__d_r_n
jmp 0x1400ba0bc
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.500_Failed_to_enter_passive_mode__socket_error__d._r_n
jmp 0x1400ba0bc
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rdx, str.500_PASV_is_not_available_when_using_IPv6__please_use_IPv4_or_EPSV._r_n
mov r8d, eax
mov rcx, rbx
call fcn.1400b82d0
mov rcx, rbx
call fcn.1400b8cb0
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401a8fd0
add rsp, 0x70
pop rbx
ret