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

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x528]
sub rsp, 0x628
mov rax, qword [0x14100f500]
xor rax, rsp
mov qword [rbp + 0x500], rax
mov rsi, qword [rbp + 0x580]
xorps xmm0, xmm0
mov r14, rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], r8
lea rdx, [rbp + 0x20]
mov qword [rsp + 0x60], rdx
mov r13, r8
mov dword [rsp + 0x54], r9d
mov r12d, r9d
mov qword [rsp + 0x78], rcx
mov r8, rcx
mov dword [rsp + 0x58], 0x80
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm0
movups xmmword [rbp + 0x40], xmm0
movups xmmword [rbp + 0x50], xmm0
movups xmmword [rbp + 0x60], xmm0
movups xmmword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x80], xmm0
movups xmmword [rbp + 0x90], xmm0
test r14, r14
je 0x140cc017d
lea rax, [r14 + 0x358]
mov qword [rsp + 0x60], rax
mov ecx, dword [rbp + 0x588]
mov edx, 1
mov qword [rsp + 0x620], rbx
mov eax, 2
mov qword [rsp + 0x618], rdi
mov r15, 0xffffffffffffffff
sub ecx, edx
je 0x140cc0414
sub ecx, edx
je 0x140cc03c2
cmp ecx, 0x15
jne 0x140cc0491
xor eax, eax
mov ebx, reloc.WS2_32.dll_socket
mov qword [rbp - 0x60], rax
mov dword [rbp - 0x58], eax
movups xmmword [rbp - 0x70], xmm0
mov word [rbp - 0x70], bx
test rsi, rsi
je 0x140cc03a6
mov rax, qword [r8 + 0x1e8]
xor r12d, r12d
test byte [rax + 0x870], 0x20
jne 0x140cc01fb
test byte [r8 + 0x1e0], 0x20
mov ecx, edx
je 0x140cc01fe
mov ecx, r12d
mov r9d, 0x1c
lea r8, [rbp - 0x70]
mov rdx, rsi
call fcn.140cc5d30
cmp eax, 0xfffffffe
je 0x140cc03ee
cmp eax, r15d
je 0x140cc0491
mov rcx, rsi
mov dword [rsp + 0x50], r12d
mov r15, r12
call qword [sym.imp.IPHLPAPI.DLL_if_nametoindex]
mov r13d, eax
test eax, eax
jne 0x140cc0384
mov r13d, r12d
mov edi, r12d
nop dword [rax]
nop dword [rax + rax]
lea rax, [rsp + 0x50]
mov r9, r15
xor r8d, r8d
mov qword [rsp + 0x20], rax
mov edx, reloc.WS2_32.dll_recv
mov ecx, ebx
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
mov ebx, eax
test eax, eax
je 0x140cc02f1
cmp eax, 0xe8
je 0x140cc0377
test r15, r15
je 0x140cc028b
mov rcx, r15
call fcn.140ceb430
cmp ebx, 0x6f
jne 0x140cc02ad
mov ecx, dword [rsp + 0x50]
call fcn.140cf2d70
inc edi
mov r15, rax
mov ebx, reloc.WS2_32.dll_socket
cmp edi, 5
jb 0x140cc0250
jmp 0x140cc0377
mov rcx, r14
mov r15, r12
call fcn.140ca7dc0
mov rcx, rax
mov dword [rsp + 0x30], ebx
lea rax, str.Get_IPv6_ads_table_fail___d_
mov r9d, 1
mov qword [rsp + 0x28], rax
lea rdx, [0x140ca7400]
lea rax, str.lws_get_addr_scope
mov r8, r14
mov qword [rsp + 0x20], rax
call fcn.140ca8530
jmp 0x140cc0377
test r15, r15
je 0x140cc0384
mov r14, r15
nop dword [rax]
test r12d, r12d
jne 0x140cc037c
mov rbx, qword [r14 + 0x18]
test rbx, rbx
je 0x140cc036e
nop
mov rdi, qword [rbx + 0x10]
cmp word [rdi], 0x17
jne 0x140cc0359
lea rdx, [rdi + 8]
mov r9d, 0x401
lea r8, [rbp + 0xf0]
mov ecx, reloc.WS2_32.dll_socket
call fcn.140cc5e60
lea rax, [rbp + 0xf0]
mov r8, rsi
sub r8, rax
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140cc0355
inc rax
test ecx, ecx
jne 0x140cc0342
test edx, edx
je 0x140cc0364
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x140cc0310
jmp 0x140cc036e
mov r13d, dword [rdi + 0x18]
mov r12d, 1
mov r14, qword [r14 + 8]
test r14, r14
jne 0x140cc0300
test r15, r15
je 0x140cc0384
mov rcx, r15
call fcn.140ceb430
mov ecx, r13d
call qword [sym.imp.WS2_32.dll_htonl]
mov r14, qword [rsp + 0x68]
mov r15, 0xffffffffffffffff
mov r12d, dword [rsp + 0x54]
mov r13, qword [rsp + 0x70]
mov dword [rbp - 0x58], eax
movzx ecx, r12w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x6e], ax
mov ebx, 0x1c
lea rdi, [rbp - 0x70]
jmp 0x140cc0512
lea rdi, [rbp - 0x80]
mov ebx, reloc.WS2_32.dll_recv
movups xmmword [rbp - 0x80], xmm0
mov word [rbp - 0x80], ax
test rsi, rsi
je 0x140cc0401
mov r9d, ebx
lea r8, [rbp - 0x80]
mov rdx, rsi
xor ecx, ecx
call fcn.140cc5d30
cmp eax, 0xfffffffe
jne 0x140cc03f8
mov eax, 0xfffffffe
jmp 0x140cc0494
cmp eax, r15d
je 0x140cc0491
movzx ecx, r12w
call qword [sym.imp.WS2_32.dll_htons]
mov word [rbp - 0x7e], ax
jmp 0x140cc0512
xor eax, eax
mov word [rbp - 0x50], dx
mov qword [rbp + 0x12], rax
lea rdi, [rbp - 0x50]
mov dword [rbp + 0x1a], eax
movups xmmword [rbp - 0x4e], xmm0
movups xmmword [rbp - 0x3e], xmm0
movups xmmword [rbp - 0x2e], xmm0
movups xmmword [rbp - 0x1e], xmm0
movups xmmword [rbp - 0xe], xmm0
movups xmmword [rbp + 2], xmm0
test rsi, rsi
je 0x140cc0491
mov rax, r15
inc rax
cmp byte [rsi + rax], 0
jne 0x140cc0445
cmp rax, 0x6c
jb 0x140cc04c5
mov rcx, r14
call fcn.140ca7dc0
mov rcx, rax
mov qword [rsp + 0x30], rsi
lea rax, str.__s__too_long_for_UNIX_domain_socket
mov r9d, 1
mov qword [rsp + 0x28], rax
lea rdi, str.lws_socket_bind
mov r8, r14
mov qword [rsp + 0x20], rdi
lea rdx, [0x140ca7400]
call fcn.140ca8530
mov eax, r15d
mov rdi, qword [rsp + 0x618]
mov rbx, qword [rsp + 0x620]
mov rcx, qword [rbp + 0x500]
xor rcx, rsp
call fcn.140cd9320
add rsp, 0x628
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret
mov rax, r15
nop dword [rax + rax]
cmp byte [rsi + rax + 1], 0
lea rax, [rax + 1]
jne 0x140cc04d0
lea rdx, [rbp - 0x4e]
mov rcx, rsi
sub rdx, rsi
lea ebx, [rax + 2]
nop dword [rax + rax]
movzx eax, byte [rcx]
mov byte [rcx + rdx], al
lea rcx, [rcx + 1]
test al, al
jne 0x140cc04f0
cmp byte [rbp - 0x4e], 0x40
jne 0x140cc0509
mov byte [rbp - 0x4e], al
jmp 0x140cc0512
lea rcx, [rbp - 0x4e]
call fcn.140d02440
cmp r13, 0xffffffffffffffff
jne 0x140cc051f
xor eax, eax
jmp 0x140cc0494
mov r8d, ebx
mov rdx, rdi
mov rcx, r13
call qword [sym.imp.WS2_32.dll_bind]
mov edi, eax
test eax, eax
jns 0x140cc05cc
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, r14
mov ebx, eax
call fcn.140ca7dc0
mov r9d, 1
mov dword [rsp + 0x48], ebx
lea rdx, [0x140ca7400]
mov dword [rsp + 0x40], edi
lea rdi, str.lws_socket_bind
mov rcx, rax
mov r8, r14
cmp dword [rbp + 0x588], r9d
jne 0x140cc0598
mov qword [rsp + 0x38], rsi
lea rax, str.ERROR_on_binding_fd__d_to___s____d__d_
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.140ca8530
jmp 0x140cc0491
mov dword [rsp + 0x38], r12d
lea rax, str.ERROR_on_binding_fd__d_to_port__d___d__d_
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.140ca8530
cmp ebx, 0x2740
mov eax, 0xfffffffd
cmove r15d, eax
jmp 0x140cc0491
mov rsi, qword [rsp + 0x60]
lea r8, [rsp + 0x58]
mov rdx, rsi
mov rcx, r13
call qword [sym.imp.WS2_32.dll_getsockname]
lea rdi, str.lws_socket_bind
cmp eax, 0xffffffff
jne 0x140cc0636
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, eax
call fcn.140cfb87c
mov rcx, r14
mov rbx, rax
call fcn.140ca7dc0
mov rcx, rax
mov qword [rsp + 0x30], rbx
lea rax, str.getsockname:__s
mov r9d, 2
mov qword [rsp + 0x28], rax
lea rdx, [0x140ca7400]
mov r8, r14
mov qword [rsp + 0x20], rdi
call fcn.140ca8530
jmp 0x140cc0644
movzx ecx, word [rsi + 2]
call qword [sym.imp.WS2_32.dll_ntohs]
movzx r12d, ax
mov r8d, 0x48
lea rdx, [rbp + 0xa0]
mov rcx, rsi
call fcn.140cc0020
mov rcx, qword [rsp + 0x78]
call fcn.140cab560
mov r8, qword [rsp + 0x78]
lea rdx, [0x140caa5b0]
mov rcx, rax
mov r9d, 4
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x30], rax
lea rax, str.source_ads__s
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdi
call fcn.140ca8530
mov eax, r12d
jmp 0x140cc0494